[Rt-commit] rt branch, 4.2/update-ckeditor, created. rt-4.1.6-243-g02bb636
? sunnavy
sunnavy at bestpractical.com
Mon Feb 11 19:31:47 EST 2013
The branch, 4.2/update-ckeditor has been created
at 02bb63619b4d84221166bab70a0eac753eac8b21 (commit)
- Log -----------------------------------------------------------------
commit a2cff714b3edb40e051ae2d6f94ba75599b172ac
Author: sunnavy <sunnavy at bestpractical.com>
Date: Tue Feb 12 07:44:38 2013 +0800
update ckeditor to 4.0.1
note that now ckeditor has a builder in http://http://ckeditor.com/builder
current config is in devel/third-party/ckeditor/build-config.js
diff --git a/devel/third-party/README b/devel/third-party/README
index 0d4145d..53cbffe 100644
--- a/devel/third-party/README
+++ b/devel/third-party/README
@@ -1,5 +1,5 @@
ckeditor
-http://download.cksource.com/CKEditor/CKEditor/CKEditor%203.4.1/ckeditor_3.4.1.tar.gz
+http://ckeditor.com/builder
The JS and CSS source files distributed with the version of ckeditor bundled in RT.
jquery-1.4.2.js
diff --git a/devel/third-party/ckeditor/LICENSE.md b/devel/third-party/ckeditor/LICENSE.md
new file mode 100644
index 0000000..4ee3f3b
--- /dev/null
+++ b/devel/third-party/ckeditor/LICENSE.md
@@ -0,0 +1,1274 @@
+Software License Agreement
+==========================
+
+CKEditor - The text editor for Internet - http://ckeditor.com
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+ http://www.gnu.org/licenses/gpl.html
+ (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ http://www.gnu.org/licenses/lgpl.html
+ (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+ http://www.mozilla.org/MPL/MPL-1.1.html
+ (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Sources of Intellectual Property Included in CKEditor
+-----------------------------------------------------
+
+Where not otherwise indicated, all CKEditor content is authored by
+CKSource engineers and consists of CKSource-owned intellectual
+property. In some specific instances, CKEditor will incorporate work
+done by developers outside of CKSource with their express permission.
+
+(Ignore this line: %REMOVE_START%)
+
+Software available at our repository and developer version only:
+
+JavaScript Lint: At _dev/_thirdparty/jsl can be found the executable
+files of JavaScript Lint, which are licensed under the terms of the
+Mozilla Public License Version 1.1 (http://www.mozilla.org/MPL/).
+JavaScript Lint is Copyright (c) 2006 Matthias Miller.
+
+(Ignore this line: %REMOVE_END%)
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
+and product names are trademarks, registered trademarks or service
+marks of their respective holders.
+
+---
+
+Appendix A: The GPL License
+---------------------------
+
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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 B: The LGPL License
+----------------------------
+
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software-to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages-typically libraries-of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+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 and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, 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 library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
+Library.
+
+ 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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+ If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be 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.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+ 9. 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 Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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 with
+this License.
+
+ 11. 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 Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+
+Appendix C: The MPL License
+---------------------------
+
+MOZILLA PUBLIC LICENSE
+Version 1.1
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the Modifications
+ made by that particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+ accepted in the software development community for the electronic
+ transfer of data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+ Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by Exhibit
+ A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files, a
+ Modification is:
+ A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+ previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A as
+ Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+ making modifications to it, including all modules it contains, plus
+ any associated interface definition files, scripts used to control
+ compilation and installation of an Executable, or source code
+ differential comparisons against either the Original Code or another
+ well known, available Covered Code of the Contributor's choice. The
+ Source Code can be in a compressed or archival form, provided the
+ appropriate decompression or de-archiving software is widely available
+ for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of, this
+ License or a future version of this License issued under Section 6.1.
+ For legal entities, "You" includes any entity which controls, is
+ controlled by, or is under common control with You. For purposes of
+ this definition, "control" means (a) the power, direct or indirect,
+ to cause the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty percent
+ (50%) of the outstanding shares or beneficial ownership of such
+ entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license, subject to third party intellectual property
+ claims:
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use, reproduce,
+ modify, display, perform, sublicense and distribute the Original
+ Code (or portions thereof) with or without Modifications, and/or
+ as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+
+ (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: 1) for code that You delete from the Original Code; 2)
+ separate from the Original Code; or 3) for infringements caused
+ by: i) the modification of the Original Code or ii) the
+ combination of the Original Code with other software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+ hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce, modify,
+ display, perform, sublicense and distribute the Modifications
+ created by such Contributor (or portions thereof) either on an
+ unmodified basis, with other Modifications, as Covered Code
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either alone
+ and/or in combination with its Contributor Version (or portions
+ of such combination), to make, use, sell, offer for sale, have
+ made, and/or otherwise dispose of: 1) Modifications made by that
+ Contributor (or portions thereof); and 2) the combination of
+ Modifications made by that Contributor with its Contributor
+ Version (or portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use of
+ the Covered Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: 1) for any code that Contributor has deleted from the
+ Contributor Version; 2) separate from the Contributor Version;
+ 3) for infringements caused by: i) third party modifications of
+ Contributor Version or ii) the combination of Modifications made
+ by that Contributor with other software (except as part of the
+ Contributor Version) or other devices; or 4) under Patent Claims
+ infringed by Covered Code in the absence of Modifications made by
+ that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+ governed by the terms of this License, including without limitation
+ Section 2.2. The Source Code version of Covered Code may be
+ distributed only under the terms of this License or a future version
+ of this License released under Section 6.1, and You must include a
+ copy of this License with every copy of the Source Code You
+ distribute. You may not offer or impose any terms on any Source Code
+ version that alters or restricts the applicable version of this
+ License or the recipients' rights hereunder. However, You may include
+ an additional document offering the additional rights described in
+ Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+ made available in Source Code form under the terms of this License
+ either on the same media as an Executable version or via an accepted
+ Electronic Distribution Mechanism to anyone to whom you made an
+ Executable version available; and if made available via Electronic
+ Distribution Mechanism, must remain available for at least twelve (12)
+ months after the date it initially became available, or at least six
+ (6) months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible for
+ ensuring that the Source Code version remains available even if the
+ Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+ file documenting the changes You made to create that Covered Code and
+ the date of any change. You must include a prominent statement that
+ the Modification is derived, directly or indirectly, from Original
+ Code provided by the Initial Developer and including the name of the
+ Initial Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe the
+ origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+ intellectual property rights is required to exercise the rights
+ granted by such Contributor under Sections 2.1 or 2.2,
+ Contributor must include a text file with the Source Code
+ distribution titled "LEGAL" which describes the claim and the
+ party making the claim in sufficient detail that a recipient will
+ know whom to contact. If Contributor obtains such knowledge after
+ the Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all copies
+ Contributor makes available thereafter and shall take other steps
+ (such as notifying appropriate mailing lists or newsgroups)
+ reasonably calculated to inform those who received the Covered
+ Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+ interface and Contributor has knowledge of patent licenses which
+ are reasonably necessary to implement that API, Contributor must
+ also include this information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+ Section 3.4(a) above, Contributor believes that Contributor's
+ Modifications are Contributor's original creation(s) and/or
+ Contributor has sufficient rights to grant the rights conveyed by
+ this License.
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+ Code. If it is not possible to put such notice in a particular Source
+ Code file due to its structure, then You must include such notice in a
+ location (such as a relevant directory) where a user would be likely
+ to look for such a notice. If You created one or more Modification(s)
+ You may add your name as a Contributor to the notice described in
+ Exhibit A. You must also duplicate this License in any documentation
+ for the Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However, You
+ may do so only on Your own behalf, and not on behalf of the Initial
+ Developer or any Contributor. You must make it absolutely clear than
+ any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+ requirements of Section 3.1-3.5 have been met for that Covered Code,
+ and if You include a notice stating that the Source Code version of
+ the Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligations of Section 3.2. The notice must be conspicuously included
+ in any notice in an Executable version, related documentation or
+ collateral in which You describe recipients' rights relating to the
+ Covered Code. You may distribute the Executable version of Covered
+ Code or ownership rights under a license of Your choice, which may
+ contain terms different from this License, provided that You are in
+ compliance with the terms of this License and that the license for the
+ Executable version does not attempt to limit or alter the recipient's
+ rights in the Source Code version from the rights set forth in this
+ License. If You distribute the Executable version under a different
+ license You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred by
+ the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+ not governed by the terms of this License and distribute the Larger
+ Work as a single product. In such a case, You must make sure the
+ requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Code due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description
+ must be included in the LEGAL file described in Section 3.4 and must
+ be included with all distributions of the Source Code. Except to the
+ extent prohibited by statute or regulation, such description must be
+ sufficiently detailed for a recipient of ordinary skill to be able to
+ understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has
+ attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+ and/or new versions of the License from time to time. Each version
+ will be given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+ License, You may always continue to use it under the terms of that
+ version. You may also choose to use such Covered Code under the terms
+ of any subsequent version of the License published by Netscape. No one
+ other than Netscape has the right to modify the terms applicable to
+ Covered Code created under this License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+ only do in order to apply it to code which is not already Covered Code
+ governed by this License), You must (a) rename Your license so that
+ the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+ "MPL", "NPL" or any confusingly similar phrase do not appear in your
+ license (except to note that your license differs from this License)
+ and (b) otherwise make it clear that Your version of the license
+ contains terms which differ from the Mozilla Public License and
+ Netscape Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+ DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+ IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+ YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+ COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+ OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to cure
+ such breach within 30 days of becoming aware of the breach. All
+ sublicenses to the Covered Code which are properly granted shall
+ survive any termination of this License. Provisions which, by their
+ nature, must remain in effect beyond the termination of this License
+ shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+ claim (excluding declatory judgment actions) against Initial Developer
+ or a Contributor (the Initial Developer or Contributor against whom
+ You file such action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+ infringes any patent, then any and all rights granted by such
+ Participant to You under Sections 2.1 and/or 2.2 of this License
+ shall, upon 60 days notice from Participant terminate prospectively,
+ unless if within 60 days after receipt of notice You either: (i)
+ agree in writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made by such
+ Participant, or (ii) withdraw Your litigation claim with respect to
+ the Contributor Version against such Participant. If within 60 days
+ of notice, a reasonable royalty and payment arrangement are not
+ mutually agreed upon in writing by the parties or the litigation claim
+ is not withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+ the 60 day notice period specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+ Contributor Version, directly or indirectly infringes any patent, then
+ any rights granted to You by such Participant under Sections 2.1(b)
+ and 2.2(b) are revoked effective as of the date You first made, used,
+ sold, distributed, or had made, Modifications made by that
+ Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+ alleging that such Participant's Contributor Version directly or
+ indirectly infringes any patent where such claim is resolved (such as
+ by license or settlement) prior to the initiation of patent
+ infringement litigation, then the reasonable value of the licenses
+ granted by such Participant under Sections 2.1 or 2.2 shall be taken
+ into account in determining the amount or value of any payment or
+ license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and resellers)
+ which have been validly granted by You or any distributor hereunder
+ prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+ DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+ OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+ ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+ CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+ WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+ RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+ THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in
+ 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+ software" and "commercial computer software documentation," as such
+ terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+ C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+ all U.S. Government End Users acquire Covered Code with only those
+ rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed by
+ California law provisions (except to the extent applicable law, if
+ any, provides otherwise), excluding its conflict-of-law provisions.
+ With respect to disputes in which at least one party is a citizen of,
+ or an entity chartered or registered to do business in the United
+ States of America, any litigation relating to this License shall be
+ subject to the jurisdiction of the Federal Courts of the Northern
+ District of California, with venue lying in Santa Clara County,
+ California, with the losing party responsible for costs, including
+ without limitation, court costs and reasonable attorneys' fees and
+ expenses. The application of the United Nations Convention on
+ Contracts for the International Sale of Goods is expressly excluded.
+ Any law or regulation which provides that the language of a contract
+ shall be construed against the drafter shall not apply to this
+ License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or indirectly,
+ out of its utilization of rights under this License and You agree to
+ work with Initial Developer and Contributors to distribute such
+ responsibility on an equitable basis. Nothing herein is intended or
+ shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+ "Multiple-Licensed". "Multiple-Licensed" means that the Initial
+ Developer permits you to utilize portions of the Covered Code under
+ Your choice of the NPL or the alternative licenses, if any, specified
+ by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+ Portions created by ______________________ are Copyright (C) ______
+ _______________________. All Rights Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms
+ of the _____ license (the "[___] License"), in which case the
+ provisions of [______] License are applicable instead of those
+ above. If you wish to allow use of your version of this file only
+ under the terms of the [____] License and not to allow others to use
+ your version of this file under the MPL, indicate your decision by
+ deleting the provisions above and replace them with the notice and
+ other provisions required by the [___] License. If you do not delete
+ the provisions above, a recipient may use your version of this file
+ under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+ the notices in the Source Code files of the Original Code. You should
+ use the text of this Exhibit A rather than the text found in the
+ Original Code Source Code for Your Modifications.]
diff --git a/devel/third-party/ckeditor/adapters/jquery.js b/devel/third-party/ckeditor/adapters/jquery.js
deleted file mode 100644
index e633758..0000000
--- a/devel/third-party/ckeditor/adapters/jquery.js
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview jQuery adapter provides easy use of basic CKEditor functions
- * and access to internal API. It also integrates some aspects of CKEditor with
- * jQuery framework.
- *
- * Every TEXTAREA, DIV and P elements can be converted to working editor.
- *
- * Plugin exposes some of editor's event to jQuery event system. All of those are namespaces inside
- * ".ckeditor" namespace and can be binded/listened on supported textarea, div and p nodes.
- *
- * Available jQuery events:
- * - instanceReady.ckeditor( editor, rootNode )
- * Triggered when new instance is ready.
- * - destroy.ckeditor( editor )
- * Triggered when instance is destroyed.
- * - getData.ckeditor( editor, eventData )
- * Triggered when getData event is fired inside editor. It can change returned data using eventData reference.
- * - setData.ckeditor( editor )
- * Triggered when getData event is fired inside editor.
- *
- * @example
- * <script src="jquery.js"></script>
- * <script src="ckeditor.js"></script>
- * <script src="adapters/jquery/adapter.js"></script>
- */
-
-(function()
-{
- /**
- * Allow CKEditor to override jQuery.fn.val(). This results in ability to use val()
- * function on textareas as usual and having those calls synchronized with CKEditor
- * Rich Text Editor component.
- *
- * This config option is global and executed during plugin load.
- * Can't be customized across editor instances.
- *
- * @type Boolean
- * @example
- * $( 'textarea' ).ckeditor();
- * // ...
- * $( 'textarea' ).val( 'New content' );
- */
- CKEDITOR.config.jqueryOverrideVal = typeof CKEDITOR.config.jqueryOverrideVal == 'undefined'
- ? true : CKEDITOR.config.jqueryOverrideVal;
-
- var jQuery = window.jQuery;
-
- if ( typeof jQuery == 'undefined' )
- return;
-
- // jQuery object methods.
- jQuery.extend( jQuery.fn,
- /** @lends jQuery.fn */
- {
- /**
- * Return existing CKEditor instance for first matched element.
- * Allows to easily use internal API. Doesn't return jQuery object.
- *
- * Raised exception if editor doesn't exist or isn't ready yet.
- *
- * @name jQuery.ckeditorGet
- * @return CKEDITOR.editor
- * @see CKEDITOR.editor
- */
- ckeditorGet: function()
- {
- var instance = this.eq( 0 ).data( 'ckeditorInstance' );
- if ( !instance )
- throw "CKEditor not yet initialized, use ckeditor() with callback.";
- return instance;
- },
- /**
- * Triggers creation of CKEditor in all matched elements (reduced to DIV, P and TEXTAREAs).
- * Binds callback to instanceReady event of all instances. If editor is already created, than
- * callback is fired right away.
- *
- * Mixed parameter order allowed.
- *
- * @param callback Function to be run on editor instance. Passed parameters: [ textarea ].
- * Callback is fiered in "this" scope being ckeditor instance and having source textarea as first param.
- *
- * @param config Configuration options for new instance(s) if not already created.
- * See URL
- *
- * @example
- * $( 'textarea' ).ckeditor( function( textarea ) {
- * $( textarea ).val( this.getData() )
- * } );
- *
- * @name jQuery.fn.ckeditor
- * @return jQuery.fn
- */
- ckeditor: function( callback, config )
- {
- if ( !jQuery.isFunction( callback ))
- {
- var tmp = config;
- config = callback;
- callback = tmp;
- }
- config = config || {};
-
- this.filter( 'textarea, div, p' ).each( function()
- {
- var $element = jQuery( this ),
- editor = $element.data( 'ckeditorInstance' ),
- instanceLock = $element.data( '_ckeditorInstanceLock' ),
- element = this;
-
- if ( editor && !instanceLock )
- {
- if ( callback )
- callback.apply( editor, [ this ] );
- }
- else if ( !instanceLock )
- {
- // CREATE NEW INSTANCE
-
- // Handle config.autoUpdateElement inside this plugin if desired.
- if ( config.autoUpdateElement
- || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) )
- {
- config.autoUpdateElementJquery = true;
- }
-
- // Always disable config.autoUpdateElement.
- config.autoUpdateElement = false;
- $element.data( '_ckeditorInstanceLock', true );
-
- // Set instance reference in element's data.
- editor = CKEDITOR.replace( element, config );
- $element.data( 'ckeditorInstance', editor );
-
- // Register callback.
- editor.on( 'instanceReady', function( event )
- {
- var editor = event.editor;
- setTimeout( function()
- {
- // Delay bit more if editor is still not ready.
- if ( !editor.element )
- {
- setTimeout( arguments.callee, 100 );
- return;
- }
-
- // Remove this listener.
- event.removeListener( 'instanceReady', this.callee );
-
- // Forward setData on dataReady.
- editor.on( 'dataReady', function()
- {
- $element.trigger( 'setData' + '.ckeditor', [ editor ] );
- });
-
- // Forward getData.
- editor.on( 'getData', function( event ) {
- $element.trigger( 'getData' + '.ckeditor', [ editor, event.data ] );
- }, 999 );
-
- // Forward destroy event.
- editor.on( 'destroy', function()
- {
- $element.trigger( 'destroy.ckeditor', [ editor ] );
- });
-
- // Integrate with form submit.
- if ( editor.config.autoUpdateElementJquery && $element.is( 'textarea' ) && $element.parents( 'form' ).length )
- {
- var onSubmit = function()
- {
- $element.ckeditor( function()
- {
- editor.updateElement();
- });
- };
-
- // Bind to submit event.
- $element.parents( 'form' ).submit( onSubmit );
-
- // Bind to form-pre-serialize from jQuery Forms plugin.
- $element.parents( 'form' ).bind( 'form-pre-serialize', onSubmit );
-
- // Unbind when editor destroyed.
- $element.bind( 'destroy.ckeditor', function()
- {
- $element.parents( 'form' ).unbind( 'submit', onSubmit );
- $element.parents( 'form' ).unbind( 'form-pre-serialize', onSubmit );
- });
- }
-
- // Garbage collect on destroy.
- editor.on( 'destroy', function()
- {
- $element.data( 'ckeditorInstance', null );
- });
-
- // Remove lock.
- $element.data( '_ckeditorInstanceLock', null );
-
- // Fire instanceReady event.
- $element.trigger( 'instanceReady.ckeditor', [ editor ] );
-
- // Run given (first) code.
- if ( callback )
- callback.apply( editor, [ element ] );
- }, 0 );
- }, null, null, 9999);
- }
- else
- {
- // Editor is already during creation process, bind our code to the event.
- CKEDITOR.on( 'instanceReady', function( event )
- {
- var editor = event.editor;
- setTimeout( function()
- {
- // Delay bit more if editor is still not ready.
- if ( !editor.element )
- {
- setTimeout( arguments.callee, 100 );
- return;
- }
-
- if ( editor.element.$ == element )
- {
- // Run given code.
- if ( callback )
- callback.apply( editor, [ element ] );
- }
- }, 0 );
- }, null, null, 9999);
- }
- });
- return this;
- }
- });
-
- // New val() method for objects.
- if ( CKEDITOR.config.jqueryOverrideVal )
- {
- jQuery.fn.val = CKEDITOR.tools.override( jQuery.fn.val, function( oldValMethod )
- {
- /**
- * CKEditor-aware val() method.
- *
- * Acts same as original jQuery val(), but for textareas which have CKEditor instances binded to them, method
- * returns editor's content. It also works for settings values.
- *
- * @param oldValMethod
- * @name jQuery.fn.val
- */
- return function( newValue, forceNative )
- {
- var isSetter = typeof newValue != 'undefined',
- result;
-
- this.each( function()
- {
- var $this = jQuery( this ),
- editor = $this.data( 'ckeditorInstance' );
-
- if ( !forceNative && $this.is( 'textarea' ) && editor )
- {
- if ( isSetter )
- editor.setData( newValue );
- else
- {
- result = editor.getData();
- // break;
- return null;
- }
- }
- else
- {
- if ( isSetter )
- oldValMethod.call( $this, newValue );
- else
- {
- result = oldValMethod.call( $this );
- // break;
- return null;
- }
- }
-
- return true;
- });
- return isSetter ? this : result;
- };
- });
- }
-})();
diff --git a/devel/third-party/ckeditor/build-config.js b/devel/third-party/ckeditor/build-config.js
new file mode 100644
index 0000000..515fd80
--- /dev/null
+++ b/devel/third-party/ckeditor/build-config.js
@@ -0,0 +1,161 @@
+
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time at http://ckeditor.com/builder to build CKEditor again.
+ *
+ * NOTE:
+ * This file is not used by CKEditor, you may remove it.
+ * Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+ skin: 'kama',
+ preset: 'full',
+ ignore: [
+ 'dev',
+ '.gitignore',
+ '.gitattributes',
+ 'README.md',
+ '.mailmap'
+ ],
+ plugins : {
+ 'about' : 1,
+ 'a11yhelp' : 1,
+ 'dialogadvtab' : 1,
+ 'basicstyles' : 1,
+ 'bidi' : 1,
+ 'blockquote' : 1,
+ 'clipboard' : 1,
+ 'colorbutton' : 1,
+ 'colordialog' : 1,
+ 'templates' : 1,
+ 'contextmenu' : 1,
+ 'div' : 1,
+ 'resize' : 1,
+ 'toolbar' : 1,
+ 'elementspath' : 1,
+ 'enterkey' : 1,
+ 'entities' : 1,
+ 'filebrowser' : 1,
+ 'find' : 1,
+ 'flash' : 1,
+ 'floatingspace' : 1,
+ 'font' : 1,
+ 'forms' : 1,
+ 'format' : 1,
+ 'htmlwriter' : 1,
+ 'horizontalrule' : 1,
+ 'iframe' : 1,
+ 'wysiwygarea' : 1,
+ 'image' : 1,
+ 'indent' : 1,
+ 'smiley' : 1,
+ 'justify' : 1,
+ 'link' : 1,
+ 'list' : 1,
+ 'liststyle' : 1,
+ 'magicline' : 1,
+ 'maximize' : 1,
+ 'newpage' : 1,
+ 'pagebreak' : 1,
+ 'pastetext' : 1,
+ 'pastefromword' : 1,
+ 'preview' : 1,
+ 'print' : 1,
+ 'removeformat' : 1,
+ 'save' : 1,
+ 'selectall' : 1,
+ 'showblocks' : 1,
+ 'showborders' : 1,
+ 'sourcearea' : 1,
+ 'specialchar' : 1,
+ 'scayt' : 1,
+ 'stylescombo' : 1,
+ 'tab' : 1,
+ 'table' : 1,
+ 'tabletools' : 1,
+ 'undo' : 1,
+ 'wsc' : 1,
+ 'dialog' : 1,
+ 'dialogui' : 1,
+ 'panelbutton' : 1,
+ 'button' : 1,
+ 'floatpanel' : 1,
+ 'panel' : 1,
+ 'menu' : 1,
+ 'popup' : 1,
+ 'fakeobjects' : 1,
+ 'richcombo' : 1,
+ 'listblock' : 1,
+ 'menubutton' : 1
+ },
+ languages : {
+ 'af' : 1,
+ 'ar' : 1,
+ 'eu' : 1,
+ 'bn' : 1,
+ 'bs' : 1,
+ 'bg' : 1,
+ 'ca' : 1,
+ 'zh-cn' : 1,
+ 'zh' : 1,
+ 'hr' : 1,
+ 'cs' : 1,
+ 'da' : 1,
+ 'nl' : 1,
+ 'en' : 1,
+ 'en-au' : 1,
+ 'en-ca' : 1,
+ 'en-gb' : 1,
+ 'eo' : 1,
+ 'et' : 1,
+ 'fo' : 1,
+ 'fi' : 1,
+ 'fr' : 1,
+ 'fr-ca' : 1,
+ 'gl' : 1,
+ 'ka' : 1,
+ 'de' : 1,
+ 'el' : 1,
+ 'gu' : 1,
+ 'he' : 1,
+ 'hi' : 1,
+ 'hu' : 1,
+ 'is' : 1,
+ 'it' : 1,
+ 'ja' : 1,
+ 'km' : 1,
+ 'ko' : 1,
+ 'ku' : 1,
+ 'lv' : 1,
+ 'lt' : 1,
+ 'mk' : 1,
+ 'ms' : 1,
+ 'mn' : 1,
+ 'no' : 1,
+ 'nb' : 1,
+ 'fa' : 1,
+ 'pl' : 1,
+ 'pt-br' : 1,
+ 'pt' : 1,
+ 'ro' : 1,
+ 'ru' : 1,
+ 'sr' : 1,
+ 'sr-latn' : 1,
+ 'sk' : 1,
+ 'sl' : 1,
+ 'es' : 1,
+ 'sv' : 1,
+ 'th' : 1,
+ 'tr' : 1,
+ 'ug' : 1,
+ 'uk' : 1,
+ 'vi' : 1,
+ 'cy' : 1,
+ }
+};
\ No newline at end of file
diff --git a/devel/third-party/ckeditor/ckeditor.js b/devel/third-party/ckeditor/ckeditor.js
new file mode 100644
index 0000000..3fbe4c4
--- /dev/null
+++ b/devel/third-party/ckeditor/ckeditor.js
@@ -0,0 +1,42 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+// Compressed version of core/ckeditor_base.js. See original for instructions.
+/*jsl:ignore*/
+window.CKEDITOR||(window.CKEDITOR=function(){var b={timestamp:"",version:"4.0.1",revision:"d02739be4b",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var b=document.getElementsByTagName("script"),c=0;c<b.length;c++){var d=b[c].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(d){a=d[1];break}}-1==a.indexOf(":/")&&(a=0===a.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+a:location.href.match(/^[^\?]*\/(?:)/)[0]+a);if(!a)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return a}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(doc
ument.removeEventListener("DOMContentLoaded",a,!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(d){}}function b(){for(var a;a=c.shift();)a()}var c=[];return function(b){c.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==c.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(e){}if(document.documentElement.doScroll&&b){var f=function(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(f,1);return}a()};f()}}}}()},e=window.CKEDITOR_GETURL;if(e){var g=b.url;b.url=function(a){return e.call(b,a)||g.call(b,a)}}return b}());
+/*jsl:end*/
+
+if ( CKEDITOR.loader )
+ CKEDITOR.loader.load( 'ckeditor' );
+else {
+ // Set the script name to be loaded by the loader.
+ CKEDITOR._autoLoad = 'ckeditor';
+
+ // Include the loader script.
+ if ( document.body && ( !document.readyState || document.readyState == 'complete' ) ) {
+ var script = document.createElement( 'script' );
+ script.type = 'text/javascript';
+ script.src = CKEDITOR.getUrl( 'core/loader.js' );
+ document.body.appendChild( script );
+ } else {
+ document.write( '<script type="text/javascript" src="' + CKEDITOR.getUrl( 'core/loader.js' ) + '"></script>' );
+ }
+}
+
+/**
+ * The skin to load for all created instances, it may be the name of the skin
+ * folder inside the editor installation path, or the name and the path separated
+ * by a comma.
+ *
+ * **Note:** This is a global configuration that applies to all instances.
+ *
+ * CKEDITOR.skinName = 'moono';
+ *
+ * CKEDITOR.skinName = 'myskin,/customstuff/myskin/';
+ *
+ * @cfg {String} [skinName='moono']
+ * @member CKEDITOR
+ */
+CKEDITOR.skinName = 'moono';
diff --git a/devel/third-party/ckeditor/ckeditor_basic_source.js b/devel/third-party/ckeditor/ckeditor_basic_source.js
deleted file mode 100644
index 10efe0e..0000000
--- a/devel/third-party/ckeditor/ckeditor_basic_source.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-// Compressed version of core/ckeditor_base.js. See original for instructions.
-/*jsl:ignore*/
-if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.4.1',revision:'5892',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf('://')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf('://')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
-/*jsl:end*/
-
-// Uncomment the following line to have a new timestamp generated for each
-// request, having clear cache load of the editor code.
-// CKEDITOR.timestamp = ( new Date() ).valueOf();
-
-// Set the script name to be loaded by the loader.
-CKEDITOR._autoLoad = 'core/ckeditor_basic';
-
-// Include the loader script.
-document.write(
- '<script type="text/javascript" src="' + CKEDITOR.getUrl( '_source/core/loader.js' ) + '"></script>' );
diff --git a/devel/third-party/ckeditor/ckeditor_source.js b/devel/third-party/ckeditor/ckeditor_source.js
deleted file mode 100644
index 0c0da07..0000000
--- a/devel/third-party/ckeditor/ckeditor_source.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-// Compressed version of core/ckeditor_base.js. See original for instructions.
-/*jsl:ignore*/
-if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.4.1',revision:'5892',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf('://')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf('://')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
-/*jsl:end*/
-
-// Uncomment the following line to have a new timestamp generated for each
-// request, having clear cache load of the editor code.
-// CKEDITOR.timestamp = ( new Date() ).valueOf();
-
-if ( CKEDITOR.loader )
- CKEDITOR.loader.load( 'core/ckeditor' );
-else
-{
- // Set the script name to be loaded by the loader.
- CKEDITOR._autoLoad = 'core/ckeditor';
-
- // Include the loader script.
- document.write(
- '<script type="text/javascript" src="' + CKEDITOR.getUrl( '_source/core/loader.js' ) + '"></script>' );
-}
diff --git a/devel/third-party/ckeditor/config.js b/devel/third-party/ckeditor/config.js
new file mode 100644
index 0000000..d03b3fb
--- /dev/null
+++ b/devel/third-party/ckeditor/config.js
@@ -0,0 +1,17 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.editorConfig = function( config ) {
+
+ // %REMOVE_START%
+ // The configuration options below are needed when running CKEditor from source files.
+ config.plugins = 'dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,colordialog,templates,menu,contextmenu,div,resize,toolbar,elementspath,list,indent,enterkey,entities,popup,filebrowser,find,fakeobjects,flash,floatingspace,listblock,richcombo,font,forms,format,htmlwriter,horizontalrule,iframe,wysiwygarea,image,smiley,justify,link,liststyle,magicline,maximize,newpage,pagebreak,pastetext,pastefromword,preview,print,removeformat,save,selectall,showblocks,showborders,sourcearea,specialchar,menubutton,scayt,stylescombo,tab,table,tabletools,undo,wsc';
+ config.skin = 'kama';
+ // %REMOVE_END%
+
+ // Define changes to default configuration here. For example:
+ // config.language = 'fr';
+ // config.uiColor = '#AADC6E';
+};
diff --git a/devel/third-party/ckeditor/contents.css b/devel/third-party/ckeditor/contents.css
new file mode 100644
index 0000000..fa9aeeb
--- /dev/null
+++ b/devel/third-party/ckeditor/contents.css
@@ -0,0 +1,99 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+body
+{
+ /* Font */
+ font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
+ font-size: 12px;
+
+ /* Text color */
+ color: #333;
+
+ /* Remove the background color to make it transparent */
+ background-color: #fff;
+
+ margin: 20px;
+}
+
+.cke_editable
+{
+ font-size: 13px;
+ line-height: 1.6em;
+}
+
+blockquote
+{
+ font-style: italic;
+ font-family: Georgia, Times, "Times New Roman", serif;
+ padding: 2px 0;
+ border-style: solid;
+ border-color: #ccc;
+ border-width: 0;
+}
+
+.cke_contents_ltr blockquote
+{
+ padding-left: 20px;
+ padding-right: 8px;
+ border-left-width: 5px;
+}
+
+.cke_contents_rtl blockquote
+{
+ padding-left: 8px;
+ padding-right: 20px;
+ border-right-width: 5px;
+}
+
+a
+{
+ color: #0782C1;
+}
+
+ol,ul,dl
+{
+ /* IE7: reset rtl list margin. (#7334) */
+ *margin-right: 0px;
+ /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
+ padding: 0 40px;
+}
+
+h1,h2,h3,h4,h5,h6
+{
+ font-weight: normal;
+ line-height: 1.2em;
+}
+
+hr
+{
+ border: 0px;
+ border-top: 1px solid #ccc;
+}
+
+img.right {
+ border: 1px solid #ccc;
+ float: right;
+ margin-left: 15px;
+ padding: 5px;
+}
+
+img.left {
+ border: 1px solid #ccc;
+ float: left;
+ margin-right: 15px;
+ padding: 5px;
+}
+
+img:hover {
+ opacity: .9;
+ filter: alpha(opacity = 90);
+}
+
+pre
+{
+ white-space: pre-wrap; /* CSS 2.1 */
+ word-wrap: break-word; /* IE7 */
+}
\ No newline at end of file
diff --git a/devel/third-party/ckeditor/core/_bootstrap.js b/devel/third-party/ckeditor/core/_bootstrap.js
index f351ce6..6bfbb14 100644
--- a/devel/third-party/ckeditor/core/_bootstrap.js
+++ b/devel/third-party/ckeditor/core/_bootstrap.js
@@ -1,91 +1,69 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview API initialization code.
- */
-
-(function()
-{
- // Disable HC detaction in WebKit. (#5429)
- if ( CKEDITOR.env.webkit )
- {
- CKEDITOR.env.hc = false;
- return;
- }
-
- // Check is High Contrast is active by creating a temporary element with a
- // background image.
-
- var useSpacer = CKEDITOR.env.ie && CKEDITOR.env.version < 7,
- useBlank = CKEDITOR.env.ie && CKEDITOR.env.version == 7;
-
- var backgroundImageUrl = useSpacer ? ( CKEDITOR.basePath + 'images/spacer.gif' ) :
- useBlank ? 'about:blank' : 'data:image/png;base64,';
-
- var hcDetect = CKEDITOR.dom.element.createFromHtml(
- '<div style="width:0px;height:0px;' +
- 'position:absolute;left:-10000px;' +
- 'background-image:url(' + backgroundImageUrl + ')"></div>', CKEDITOR.document );
-
- hcDetect.appendTo( CKEDITOR.document.getHead() );
-
- // Update CKEDITOR.env.
- // Catch exception needed sometimes for FF. (#4230)
- try
- {
- CKEDITOR.env.hc = ( hcDetect.getComputedStyle( 'background-image' ) == 'none' );
- }
- catch (e)
- {
- CKEDITOR.env.hc = false;
- }
-
- if ( CKEDITOR.env.hc )
- CKEDITOR.env.cssClass += ' cke_hc';
-
- hcDetect.remove();
-})();
-
-// Load core plugins.
-CKEDITOR.plugins.load( CKEDITOR.config.corePlugins.split( ',' ), function()
- {
- CKEDITOR.status = 'loaded';
- CKEDITOR.fire( 'loaded' );
-
- // Process all instances created by the "basic" implementation.
- var pending = CKEDITOR._.pending;
- if ( pending )
- {
- delete CKEDITOR._.pending;
-
- for ( var i = 0 ; i < pending.length ; i++ )
- CKEDITOR.add( pending[ i ] );
- }
- });
-
-/*
-TODO: Enable the following and check if effective.
-
-if ( CKEDITOR.env.ie )
-{
- // Remove IE mouse flickering on IE6 because of background images.
- try
- {
- document.execCommand( 'BackgroundImageCache', false, true );
- }
- catch (e)
- {
- // We have been reported about loading problems caused by the above
- // line. For safety, let's just ignore errors.
- }
-}
-*/
-
-/**
- * Fired when a CKEDITOR core object is fully loaded and ready for interaction.
- * @name CKEDITOR#loaded
- * @event
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview API initialization code.
+ */
+
+(function() {
+ // Disable HC detection in WebKit. (#5429)
+ if ( CKEDITOR.env.webkit )
+ CKEDITOR.env.hc = false;
+ else {
+ // Check whether high contrast is active by creating a colored border.
+ var hcDetect = CKEDITOR.dom.element.createFromHtml( '<div style="width:0px;height:0px;position:absolute;left:-10000px;' +
+ 'border: 1px solid;border-color: red blue;"></div>', CKEDITOR.document );
+
+ hcDetect.appendTo( CKEDITOR.document.getHead() );
+
+ // Update CKEDITOR.env.
+ // Catch exception needed sometimes for FF. (#4230)
+ try {
+ CKEDITOR.env.hc = hcDetect.getComputedStyle( 'border-top-color' ) == hcDetect.getComputedStyle( 'border-right-color' );
+ } catch ( e ) {
+ CKEDITOR.env.hc = false;
+ }
+
+ hcDetect.remove();
+ }
+
+ if ( CKEDITOR.env.hc )
+ CKEDITOR.env.cssClass += ' cke_hc';
+
+ // Initially hide UI spaces when relevant skins are loading, later restored by skin css.
+ CKEDITOR.document.appendStyleText( '.cke{visibility:hidden;}' );
+
+ // Mark the editor as fully loaded.
+ CKEDITOR.status = 'loaded';
+ CKEDITOR.fireOnce( 'loaded' );
+
+ // Process all instances created by the "basic" implementation.
+ var pending = CKEDITOR._.pending;
+ if ( pending ) {
+ delete CKEDITOR._.pending;
+
+ for ( var i = 0; i < pending.length; i++ ) {
+ CKEDITOR.editor.prototype.constructor.apply( pending[ i ][ 0 ], pending[ i ][ 1 ] );
+ CKEDITOR.add( pending[ i ][ 0 ] );
+ }
+ }
+})();
+
+/**
+ * Indicates that CKEditor is running on a High Contrast environment.
+ *
+ * if ( CKEDITOR.env.hc )
+ * alert( 'You\'re running on High Contrast mode. The editor interface will get adapted to provide you a better experience.' );
+ *
+ * @property {Boolean} hc
+ * @member CKEDITOR.env
+ */
+
+/**
+ * Fired when a CKEDITOR core object is fully loaded and ready for interaction.
+ *
+ * @event loaded
+ * @member CKEDITOR
+ */
diff --git a/devel/third-party/ckeditor/core/ajax.js b/devel/third-party/ckeditor/core/ajax.js
deleted file mode 100644
index 078c15a..0000000
--- a/devel/third-party/ckeditor/core/ajax.js
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.ajax} object, which holds ajax methods for
- * data loading.
- */
-
-/**
- * Ajax methods for data loading.
- * @namespace
- * @example
- */
-CKEDITOR.ajax = (function()
-{
- var createXMLHttpRequest = function()
- {
- // In IE, using the native XMLHttpRequest for local files may throw
- // "Access is Denied" errors.
- if ( !CKEDITOR.env.ie || location.protocol != 'file:' )
- try { return new XMLHttpRequest(); } catch(e) {}
-
- try { return new ActiveXObject( 'Msxml2.XMLHTTP' ); } catch (e) {}
- try { return new ActiveXObject( 'Microsoft.XMLHTTP' ); } catch (e) {}
-
- return null;
- };
-
- var checkStatus = function( xhr )
- {
- // HTTP Status Codes:
- // 2xx : Success
- // 304 : Not Modified
- // 0 : Returned when running locally (file://)
- // 1223 : IE may change 204 to 1223 (see http://dev.jquery.com/ticket/1450)
-
- return ( xhr.readyState == 4 &&
- ( ( xhr.status >= 200 && xhr.status < 300 ) ||
- xhr.status == 304 ||
- xhr.status === 0 ||
- xhr.status == 1223 ) );
- };
-
- var getResponseText = function( xhr )
- {
- if ( checkStatus( xhr ) )
- return xhr.responseText;
- return null;
- };
-
- var getResponseXml = function( xhr )
- {
- if ( checkStatus( xhr ) )
- {
- var xml = xhr.responseXML;
- return new CKEDITOR.xml( xml && xml.firstChild ? xml : xhr.responseText );
- }
- return null;
- };
-
- var load = function( url, callback, getResponseFn )
- {
- var async = !!callback;
-
- var xhr = createXMLHttpRequest();
-
- if ( !xhr )
- return null;
-
- xhr.open( 'GET', url, async );
-
- if ( async )
- {
- // TODO: perform leak checks on this closure.
- /** @ignore */
- xhr.onreadystatechange = function()
- {
- if ( xhr.readyState == 4 )
- {
- callback( getResponseFn( xhr ) );
- xhr = null;
- }
- };
- }
-
- xhr.send(null);
-
- return async ? '' : getResponseFn( xhr );
- };
-
- return /** @lends CKEDITOR.ajax */ {
-
- /**
- * Loads data from an URL as plain text.
- * @param {String} url The URL from which load data.
- * @param {Function} [callback] A callback function to be called on
- * data load. If not provided, the data will be loaded
- * asynchronously, passing the data value the function on load.
- * @returns {String} The loaded data. For asynchronous requests, an
- * empty string. For invalid requests, null.
- * @example
- * // Load data synchronously.
- * var data = CKEDITOR.ajax.load( 'somedata.txt' );
- * alert( data );
- * @example
- * // Load data asynchronously.
- * var data = CKEDITOR.ajax.load( 'somedata.txt', function( data )
- * {
- * alert( data );
- * } );
- */
- load : function( url, callback )
- {
- return load( url, callback, getResponseText );
- },
-
- /**
- * Loads data from an URL as XML.
- * @param {String} url The URL from which load data.
- * @param {Function} [callback] A callback function to be called on
- * data load. If not provided, the data will be loaded
- * asynchronously, passing the data value the function on load.
- * @returns {CKEDITOR.xml} An XML object holding the loaded data. For asynchronous requests, an
- * empty string. For invalid requests, null.
- * @example
- * // Load XML synchronously.
- * var xml = CKEDITOR.ajax.loadXml( 'somedata.xml' );
- * alert( xml.getInnerXml( '//' ) );
- * @example
- * // Load XML asynchronously.
- * var data = CKEDITOR.ajax.loadXml( 'somedata.xml', function( xml )
- * {
- * alert( xml.getInnerXml( '//' ) );
- * } );
- */
- loadXml : function( url, callback )
- {
- return load( url, callback, getResponseXml );
- }
- };
-})();
diff --git a/devel/third-party/ckeditor/core/ckeditor.js b/devel/third-party/ckeditor/core/ckeditor.js
index 068da31..7cf8dc2 100644
--- a/devel/third-party/ckeditor/core/ckeditor.js
+++ b/devel/third-party/ckeditor/core/ckeditor.js
@@ -1,113 +1,204 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Contains the third and last part of the {@link CKEDITOR} object
- * definition.
- */
-
-// Remove the CKEDITOR.loadFullCore reference defined on ckeditor_basic.
-delete CKEDITOR.loadFullCore;
-
-/**
- * Holds references to all editor instances created. The name of the properties
- * in this object correspond to instance names, and their values contains the
- * {@link CKEDITOR.editor} object representing them.
- * @type {Object}
- * @example
- * alert( <b>CKEDITOR.instances</b>.editor1.name ); // "editor1"
- */
-CKEDITOR.instances = {};
-
-/**
- * The document of the window holding the CKEDITOR object.
- * @type {CKEDITOR.dom.document}
- * @example
- * alert( <b>CKEDITOR.document</b>.getBody().getName() ); // "body"
- */
-CKEDITOR.document = new CKEDITOR.dom.document( document );
-
-/**
- * Adds an editor instance to the global {@link CKEDITOR} object. This function
- * is available for internal use mainly.
- * @param {CKEDITOR.editor} editor The editor instance to be added.
- * @example
- */
-CKEDITOR.add = function( editor )
-{
- CKEDITOR.instances[ editor.name ] = editor;
-
- editor.on( 'focus', function()
- {
- if ( CKEDITOR.currentInstance != editor )
- {
- CKEDITOR.currentInstance = editor;
- CKEDITOR.fire( 'currentInstance' );
- }
- });
-
- editor.on( 'blur', function()
- {
- if ( CKEDITOR.currentInstance == editor )
- {
- CKEDITOR.currentInstance = null;
- CKEDITOR.fire( 'currentInstance' );
- }
- });
-};
-
-/**
- * Removes and editor instance from the global {@link CKEDITOR} object. his function
- * is available for internal use mainly.
- * @param {CKEDITOR.editor} editor The editor instance to be added.
- * @example
- */
-CKEDITOR.remove = function( editor )
-{
- delete CKEDITOR.instances[ editor.name ];
-};
-
-/**
- * Perform global clean up to free as much memory as possible
- * when there are no instances left
- */
-CKEDITOR.on( 'instanceDestroyed', function ()
- {
- if ( CKEDITOR.tools.isEmpty( this.instances ) )
- CKEDITOR.fire( 'reset' );
- });
-
-// Load the bootstrap script.
-CKEDITOR.loader.load( 'core/_bootstrap' ); // @Packager.RemoveLine
-
-// Tri-state constants.
-
-/**
- * Used to indicate the ON or ACTIVE state.
- * @constant
- * @example
- */
-CKEDITOR.TRISTATE_ON = 1;
-
-/**
- * Used to indicate the OFF or NON ACTIVE state.
- * @constant
- * @example
- */
-CKEDITOR.TRISTATE_OFF = 2;
-
-/**
- * Used to indicate DISABLED state.
- * @constant
- * @example
- */
-CKEDITOR.TRISTATE_DISABLED = 0;
-
-/**
- * Fired when the CKEDITOR.currentInstance object reference changes. This may
- * happen when setting the focus on different editor instances in the page.
- * @name CKEDITOR#currentInstance
- * @event
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Contains the third and last part of the {@link CKEDITOR} object
+ * definition.
+ */
+
+/** @class CKEDITOR */
+
+// Remove the CKEDITOR.loadFullCore reference defined on ckeditor_basic.
+delete CKEDITOR.loadFullCore;
+
+/**
+ * Holds references to all editor instances created. The name of the properties
+ * in this object correspond to instance names, and their values contains the
+ * {@link CKEDITOR.editor} object representing them.
+ *
+ * alert( CKEDITOR.instances.editor1.name ); // 'editor1'
+ *
+ * @property {Object}
+ */
+CKEDITOR.instances = {};
+
+/**
+ * The document of the window holding the CKEDITOR object.
+ *
+ * alert( CKEDITOR.document.getBody().getName() ); // 'body'
+ *
+ * @property {CKEDITOR.dom.document}
+ */
+CKEDITOR.document = new CKEDITOR.dom.document( document );
+
+/**
+ * Adds an editor instance to the global {@link CKEDITOR} object. This function
+ * is available for internal use mainly.
+ *
+ * @param {CKEDITOR.editor} editor The editor instance to be added.
+ */
+CKEDITOR.add = function( editor ) {
+ CKEDITOR.instances[ editor.name ] = editor;
+
+ editor.on( 'focus', function() {
+ if ( CKEDITOR.currentInstance != editor ) {
+ CKEDITOR.currentInstance = editor;
+ CKEDITOR.fire( 'currentInstance' );
+ }
+ });
+
+ editor.on( 'blur', function() {
+ if ( CKEDITOR.currentInstance == editor ) {
+ CKEDITOR.currentInstance = null;
+ CKEDITOR.fire( 'currentInstance' );
+ }
+ });
+
+ CKEDITOR.fire( 'instance', null, editor );
+};
+
+/**
+ * Removes an editor instance from the global {@link CKEDITOR} object. This function
+ * is available for internal use only. External code must use {@link CKEDITOR.editor#method-destroy}.
+ *
+ * @private
+ * @param {CKEDITOR.editor} editor The editor instance to be removed.
+ */
+CKEDITOR.remove = function( editor ) {
+ delete CKEDITOR.instances[ editor.name ];
+};
+
+(function() {
+ var tpls = {};
+
+ /**
+ * Add a named {@link CKEDITOR.template} instance to be reused among all editors,
+ * it will returns the existed one if template with same name is already
+ * defined, additionally fires the "template" event to allow template source customization.
+ *
+ * @param {String} name The name which identify one UI template.
+ * @param {String} source The source string for constructing this template.
+ * @returns {CKEDITOR.template} The created template instance.
+ */
+ CKEDITOR.addTemplate = function( name, source ) {
+ var tpl = tpls[ name ];
+ if ( tpl )
+ return tpl;
+
+ // Make it possible to customize the template through event.
+ var params = { name: name, source: source };
+ CKEDITOR.fire( 'template', params );
+
+ return ( tpls[ name ] = new CKEDITOR.template( params.source ) );
+ };
+
+ /**
+ * Retrieve a defined template created with {@link CKEDITOR#addTemplate}.
+ *
+ * @param {String} name The template name.
+ */
+ CKEDITOR.getTemplate = function( name ) {
+ return tpls[ name ];
+ };
+})();
+
+(function() {
+ var styles = [];
+
+ /**
+ * Append a trunk of css to be appended to the editor document.
+ * This method is mostly used by plugins to add custom styles to the editor
+ * document. For basic contents styling the contents.css file should be
+ * used instead.
+ *
+ * **Note:** This function should be called before the creation of editor instances.
+ *
+ * // Add styles for all headings inside of editable contents.
+ * CKEDITOR.addCss( '.cke_editable h1,.cke_editable h2,.cke_editable h3 { border-bottom: 1px dotted red }' );
+ *
+ * @param {String} css The style rules to be appended.
+ * @see CKEDITOR.config#contentsCss
+ */
+ CKEDITOR.addCss = function( css ) {
+ styles.push( css );
+ };
+
+ /**
+ * Returns a string will all CSS rules passes to the {@link CKEDITOR#addCss} method.
+ *
+ * @returns {String} A string containing CSS rules.
+ */
+ CKEDITOR.getCss = function() {
+ return styles.join( '\n' );
+ };
+})();
+
+// Perform global clean up to free as much memory as possible
+// when there are no instances left
+CKEDITOR.on( 'instanceDestroyed', function() {
+ if ( CKEDITOR.tools.isEmpty( this.instances ) )
+ CKEDITOR.fire( 'reset' );
+});
+
+// Load the bootstrap script.
+CKEDITOR.loader.load( '_bootstrap' ); // %REMOVE_LINE%
+
+// Tri-state constants.
+/**
+ * Used to indicate the ON or ACTIVE state.
+ *
+ * @readonly
+ * @property {Number} [=1]
+ */
+CKEDITOR.TRISTATE_ON = 1;
+
+/**
+ * Used to indicate the OFF or NON ACTIVE state.
+ *
+ * @readonly
+ * @property {Number} [=2]
+ */
+CKEDITOR.TRISTATE_OFF = 2;
+
+/**
+ * Used to indicate DISABLED state.
+ *
+ * @readonly
+ * @property {Number} [=0]
+ */
+CKEDITOR.TRISTATE_DISABLED = 0;
+
+/**
+ * The editor which is currently active (have user focus).
+ *
+ * function showCurrentEditorName() {
+ * if ( CKEDITOR.currentInstance )
+ * alert( CKEDITOR.currentInstance.name );
+ * else
+ * alert( 'Please focus an editor first.' );
+ * }
+ *
+ * @property {CKEDITOR.editor} currentInstance
+ * @see CKEDITOR#event-currentInstance
+ */
+
+/**
+ * Fired when the CKEDITOR.currentInstance object reference changes. This may
+ * happen when setting the focus on different editor instances in the page.
+ *
+ * var editor; // Variable to hold a reference to the current editor.
+ * CKEDITOR.on( 'currentInstance', function() {
+ * editor = CKEDITOR.currentInstance;
+ * } );
+ *
+ * @event currentInstance
+ */
+
+/**
+ * Fired when the last instance has been destroyed. This event is used to perform
+ * global memory clean up.
+ *
+ * @event reset
+ */
diff --git a/devel/third-party/ckeditor/core/ckeditor_base.js b/devel/third-party/ckeditor/core/ckeditor_base.js
index 75d2d0e..bcb9877 100644
--- a/devel/third-party/ckeditor/core/ckeditor_base.js
+++ b/devel/third-party/ckeditor/core/ckeditor_base.js
@@ -1,193 +1,317 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Contains the first and essential part of the {@link CKEDITOR}
- * object definition.
- */
-
-// #### Compressed Code
-// Must be updated on changes in the script, as well as updated in the
-// ckeditor_source.js and ckeditor_basic_source.js files.
-
-// if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'3.4.1',rev:'5892',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf('://')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf('://')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();
-
-// #### Raw code
-// ATTENTION: read the above "Compressed Code" notes when changing this code.
-
-if ( !window.CKEDITOR )
-{
- /**
- * This is the API entry point. The entire CKEditor code runs under this object.
- * @name CKEDITOR
- * @namespace
- * @example
- */
- window.CKEDITOR = (function()
- {
- var CKEDITOR =
- /** @lends CKEDITOR */
- {
-
- /**
- * A constant string unique for each release of CKEditor. Its value
- * is used, by default, to build the URL for all resources loaded
- * by the editor code, guaranteing clean cache results when
- * upgrading.
- * @type String
- * @example
- * alert( CKEDITOR.timestamp ); // e.g. '87dm'
- */
- // The production implementation contains a fixed timestamp, unique
- // for each release, generated by the releaser.
- // (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
- timestamp : 'A8LE4JO',
-
- /**
- * Contains the CKEditor version number.
- * @type String
- * @example
- * alert( CKEDITOR.version ); // e.g. 'CKEditor 3.0 Beta'
- */
- version : '3.4.1',
-
- /**
- * Contains the CKEditor revision number.
- * Revision number is incremented automatically after each modification of CKEditor source code.
- * @type String
- * @example
- * alert( CKEDITOR.revision ); // e.g. '3975'
- */
- revision : '5892',
-
- /**
- * Private object used to hold core stuff. It should not be used out of
- * the API code as properties defined here may change at any time
- * without notice.
- * @private
- */
- _ : {},
-
- /**
- * Indicates the API loading status. The following status are available:
- * <ul>
- * <li><b>unloaded</b>: the API is not yet loaded.</li>
- * <li><b>basic_loaded</b>: the basic API features are available.</li>
- * <li><b>basic_ready</b>: the basic API is ready to load the full core code.</li>
- * <li><b>loading</b>: the full API is being loaded.</li>
- * <li><b>ready</b>: the API can be fully used.</li>
- * </ul>
- * @type String
- * @example
- * if ( <b>CKEDITOR.status</b> == 'ready' )
- * {
- * // The API can now be fully used.
- * }
- */
- status : 'unloaded',
-
- /**
- * Contains the full URL for the CKEditor installation directory.
- * It's possible to manually provide the base path by setting a
- * global variable named CKEDITOR_BASEPATH. This global variable
- * must be set "before" the editor script loading.
- * @type String
- * @example
- * alert( <b>CKEDITOR.basePath</b> ); // "http://www.example.com/ckeditor/" (e.g.)
- */
- basePath : (function()
- {
- // ATTENTION: fixes on this code must be ported to
- // var basePath in "core/loader.js".
-
- // Find out the editor directory path, based on its <script> tag.
- var path = window.CKEDITOR_BASEPATH || '';
-
- if ( !path )
- {
- var scripts = document.getElementsByTagName( 'script' );
-
- for ( var i = 0 ; i < scripts.length ; i++ )
- {
- var match = scripts[i].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i );
-
- if ( match )
- {
- path = match[1];
- break;
- }
- }
- }
-
- // In IE (only) the script.src string is the raw valued entered in the
- // HTML. Other browsers return the full resolved URL instead.
- if ( path.indexOf('://') == -1 )
- {
- // Absolute path.
- if ( path.indexOf( '/' ) === 0 )
- path = location.href.match( /^.*?:\/\/[^\/]*/ )[0] + path;
- // Relative path.
- else
- path = location.href.match( /^[^\?]*\/(?:)/ )[0] + path;
- }
-
- if ( !path )
- throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';
-
- return path;
- })(),
-
- /**
- * Gets the full URL for CKEditor resources. By default, URLs
- * returned by this function contains a querystring parameter ("t")
- * set to the {@link CKEDITOR.timestamp} value.
- * It's possible to provide a custom implementation to this
- * function by setting a global variable named CKEDITOR_GETURL.
- * This global variable must be set "before" the editor script
- * loading. If the custom implementation returns nothing, the
- * default implementation is used.
- * @returns {String} The full URL.
- * @example
- * // e.g. http://www.example.com/ckeditor/skins/default/editor.css?t=87dm
- * alert( CKEDITOR.getUrl( 'skins/default/editor.css' ) );
- * @example
- * // e.g. http://www.example.com/skins/default/editor.css?t=87dm
- * alert( CKEDITOR.getUrl( '/skins/default/editor.css' ) );
- * @example
- * // e.g. http://www.somesite.com/skins/default/editor.css?t=87dm
- * alert( CKEDITOR.getUrl( 'http://www.somesite.com/skins/default/editor.css' ) );
- */
- getUrl : function( resource )
- {
- // If this is not a full or absolute path.
- if ( resource.indexOf('://') == -1 && resource.indexOf( '/' ) !== 0 )
- resource = this.basePath + resource;
-
- // Add the timestamp, except for directories.
- if ( this.timestamp && resource.charAt( resource.length - 1 ) != '/' && !(/[&?]t=/).test( resource ) )
- resource += ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) + 't=' + this.timestamp;
-
- return resource;
- }
- };
-
- // Make it possible to override the getUrl function with a custom
- // implementation pointing to a global named CKEDITOR_GETURL.
- var newGetUrl = window.CKEDITOR_GETURL;
- if ( newGetUrl )
- {
- var originalGetUrl = CKEDITOR.getUrl;
- CKEDITOR.getUrl = function ( resource )
- {
- return newGetUrl.call( CKEDITOR, resource ) ||
- originalGetUrl.call( CKEDITOR, resource );
- };
- }
-
- return CKEDITOR;
- })();
-}
-
-// PACKAGER_RENAME( CKEDITOR )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Contains the first and essential part of the {@link CKEDITOR}
+ * object definition.
+ */
+
+// #### Compressed Code
+// Must be updated on changes in the script as well as updated in the
+// ckeditor_source.js and ckeditor_basic_source.js files.
+
+// window.CKEDITOR||(window.CKEDITOR=function(){var c={timestamp:"",version:"%VERSION%",revision:"%REV%",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var d=document.getElementsByTagName("script"),b=0;b<d.length;b++){var e=d[b].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(e){a=e[1];break}}-1==a.indexOf(":/")&&(a=0===a.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+a:location.href.match(/^[^\?]*\/(?:)/)[0]+ a);if(!a)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return a}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?d
ocument.removeEventListener("DOMContentLoaded",a, !1):document.attachEvent&&document.detachEvent("onreadystatechange",a)}catch(b){}for(var e;e=d.shift();)e()}var d=[];return function(b){d.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==d.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);b=!1;try{b=!window.frameElement}catch(e){}if(document.documentElement.doScroll&& b){var c=function(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(c,1);return}a()};c()}}}}()},f=window.CKEDITOR_GETURL;if(f){var g=c.url;c.url=function(a){return f.call(c,a)||g.call(c,a)}}return c}());
+
+// The Closure Compiler online service should be used when updating this manually:
+// http://closure-compiler.appspot.com/
+
+// #### Raw code
+// ATTENTION: read the above "Compressed Code" notes when changing this code.
+
+if ( !window.CKEDITOR ) {
+ /**
+ * This is the API entry point. The entire CKEditor code runs under this object.
+ * @class CKEDITOR
+ * @singleton
+ */
+ window.CKEDITOR = (function() {
+ var CKEDITOR = {
+
+ /**
+ * A constant string unique for each release of CKEditor. Its value
+ * is used, by default, to build the URL for all resources loaded
+ * by the editor code, guaranteeing clean cache results when
+ * upgrading.
+ *
+ * alert( CKEDITOR.timestamp ); // e.g. '87dm'
+ */
+ timestamp: '', // %REMOVE_LINE%
+ /* // %REMOVE_LINE%
+ // The production implementation contains a fixed timestamp, unique
+ // for each release and generated by the releaser.
+ // (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
+ timestamp: '%TIMESTAMP%',
+ */ // %REMOVE_LINE%
+
+ /**
+ * Contains the CKEditor version number.
+ *
+ * alert( CKEDITOR.version ); // e.g. 'CKEditor 3.4.1'
+ */
+ version: '%VERSION%',
+
+ /**
+ * Contains the CKEditor revision number.
+ * The revision number is incremented automatically, following each
+ * modification to the CKEditor source code.
+ *
+ * alert( CKEDITOR.revision ); // e.g. '3975'
+ */
+ revision: '%REV%',
+
+ /**
+ * A 3-digit random integer, valid for the entire life of the CKEDITOR object.
+ *
+ * alert( CKEDITOR.rnd ); // e.g. 319
+ *
+ * @property {Number}
+ */
+ rnd: Math.floor( Math.random() * ( 999 /*Max*/ - 100 /*Min*/ + 1 ) ) + 100 /*Min*/,
+
+ /**
+ * Private object used to hold core stuff. It should not be used outside of
+ * the API code as properties defined here may change at any time
+ * without notice.
+ *
+ * @private
+ */
+ _: {
+ pending: []
+ },
+
+ /**
+ * Indicates the API loading status. The following statuses are available:
+ *
+ * * **unloaded**: the API is not yet loaded.
+ * * **basic_loaded**: the basic API features are available.
+ * * **basic_ready**: the basic API is ready to load the full core code.
+ * * **loaded**: the API can be fully used.
+ *
+ * Example:
+ *
+ * if ( CKEDITOR.status == 'loaded' ) {
+ * // The API can now be fully used.
+ * doSomething();
+ * } else {
+ * // Wait for the full core to be loaded and fire its loading.
+ * CKEDITOR.on( 'load', doSomething );
+ * CKEDITOR.loadFullCore && CKEDITOR.loadFullCore();
+ * }
+ */
+ status: 'unloaded',
+
+ /**
+ * The full URL for the CKEditor installation directory.
+ * It is possible to manually provide the base path by setting a
+ * global variable named `CKEDITOR_BASEPATH`. This global variable
+ * must be set **before** the editor script loading.
+ *
+ * alert( CKEDITOR.basePath ); // e.g. 'http://www.example.com/ckeditor/'
+ *
+ * @property {String}
+ */
+ basePath: (function() {
+ // ATTENTION: fixes to this code must be ported to
+ // var basePath in "core/loader.js".
+
+ // Find out the editor directory path, based on its <script> tag.
+ var path = window.CKEDITOR_BASEPATH || '';
+
+ if ( !path ) {
+ var scripts = document.getElementsByTagName( 'script' );
+
+ for ( var i = 0; i < scripts.length; i++ ) {
+ var match = scripts[ i ].src.match( /(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i );
+
+ if ( match ) {
+ path = match[ 1 ];
+ break;
+ }
+ }
+ }
+
+ // In IE (only) the script.src string is the raw value entered in the
+ // HTML source. Other browsers return the full resolved URL instead.
+ if ( path.indexOf( ':/' ) == -1 ) {
+ // Absolute path.
+ if ( path.indexOf( '/' ) === 0 )
+ path = location.href.match( /^.*?:\/\/[^\/]*/ )[ 0 ] + path;
+ // Relative path.
+ else
+ path = location.href.match( /^[^\?]*\/(?:)/ )[ 0 ] + path;
+ }
+
+ if ( !path )
+ throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';
+
+ return path;
+ })(),
+
+ /**
+ * Gets the full URL for CKEditor resources. By default, URLs
+ * returned by this function contain a querystring parameter ("t")
+ * set to the {@link CKEDITOR#timestamp} value.
+ *
+ * It is possible to provide a custom implementation of this
+ * function by setting a global variable named `CKEDITOR_GETURL`.
+ * This global variable must be set **before** the editor script
+ * loading. If the custom implementation returns nothing (`==null`), the
+ * default implementation is used.
+ *
+ * // e.g. 'http://www.example.com/ckeditor/skins/default/editor.css?t=87dm'
+ * alert( CKEDITOR.getUrl( 'skins/default/editor.css' ) );
+ *
+ * // e.g. 'http://www.example.com/skins/default/editor.css?t=87dm'
+ * alert( CKEDITOR.getUrl( '/skins/default/editor.css' ) );
+ *
+ * // e.g. 'http://www.somesite.com/skins/default/editor.css?t=87dm'
+ * alert( CKEDITOR.getUrl( 'http://www.somesite.com/skins/default/editor.css' ) );
+ *
+ * @param {String} resource The resource whose full URL we want to get.
+ * It may be a full, absolute, or relative URL.
+ * @returns {String} The full URL.
+ */
+ getUrl: function( resource ) {
+ // If this is not a full or absolute path.
+ if ( resource.indexOf( ':/' ) == -1 && resource.indexOf( '/' ) !== 0 )
+ resource = this.basePath + resource;
+
+ // Add the timestamp, except for directories.
+ if ( this.timestamp && resource.charAt( resource.length - 1 ) != '/' && !( /[&?]t=/ ).test( resource ) )
+ resource += ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) + 't=' + this.timestamp;
+
+ return resource;
+ },
+
+ /**
+ * Specify a function to execute when the DOM is fully loaded.
+ *
+ * If called after the DOM has been initialized, the function passed in will
+ * be executed immediately.
+ *
+ * @method
+ * @todo
+ */
+ domReady: (function() {
+ // Based on the original jQuery code.
+
+ var callbacks = [];
+
+ function onReady() {
+ try {
+ // Cleanup functions for the document ready method
+ if ( document.addEventListener ) {
+ document.removeEventListener( 'DOMContentLoaded', onReady, false );
+ executeCallbacks();
+ }
+ // Make sure body exists, at least, in case IE gets a little overzealous.
+ else if ( document.attachEvent && document.readyState === 'complete' ) {
+ document.detachEvent( 'onreadystatechange', onReady );
+ executeCallbacks();
+ }
+ } catch ( er ) {}
+ }
+
+ function executeCallbacks() {
+ var i;
+ while ( ( i = callbacks.shift() ) )
+ i();
+ }
+
+ return function( fn ) {
+ callbacks.push( fn );
+
+ // Catch cases where this is called after the
+ // browser event has already occurred.
+ if ( document.readyState === 'complete' )
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
+ setTimeout( onReady, 1 );
+
+ // Run below once on demand only.
+ if ( callbacks.length != 1 )
+ return;
+
+ // For IE>8, Firefox, Opera and Webkit.
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( 'DOMContentLoaded', onReady, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( 'load', onReady, false );
+
+ }
+ // If old IE event model is used
+ else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent( 'onreadystatechange', onReady );
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( 'onload', onReady );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ // use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ var toplevel = false;
+
+ try {
+ toplevel = !window.frameElement;
+ } catch ( e ) {}
+
+ if ( document.documentElement.doScroll && toplevel ) {
+ function scrollCheck() {
+ try {
+ document.documentElement.doScroll( 'left' );
+ } catch ( e ) {
+ setTimeout( scrollCheck, 1 );
+ return;
+ }
+ onReady();
+ }
+ scrollCheck();
+ }
+ }
+ };
+
+ })()
+ };
+
+ // Make it possible to override the "url" function with a custom
+ // implementation pointing to a global named CKEDITOR_GETURL.
+ var newGetUrl = window.CKEDITOR_GETURL;
+ if ( newGetUrl ) {
+ var originalGetUrl = CKEDITOR.url;
+ CKEDITOR.url = function( resource ) {
+ return newGetUrl.call( CKEDITOR, resource ) || originalGetUrl.call( CKEDITOR, resource );
+ };
+ }
+
+ return CKEDITOR;
+ })();
+}
+
+/**
+ * Function called upon loading a custom configuration file that can
+ * modify the editor instance configuration ({@link CKEDITOR.editor#config}).
+ * It is usually defined inside the custom configuration files that can
+ * include developer defined settings.
+ *
+ * // This is supposed to be placed in the config.js file.
+ * CKEDITOR.editorConfig = function( config ) {
+ * // Define changes to default configuration here. For example:
+ * config.language = 'fr';
+ * config.uiColor = '#AADC6E';
+ * };
+ *
+ * @method editorConfig
+ * @param {CKEDITOR.config} config A configuration object containing the
+ * settings defined for a {@link CKEDITOR.editor} instance up to this
+ * function call. Note that not all settings may still be available. See
+ * [Configuration Loading Order](http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Setting_Configurations#Configuration_Loading_Order)
+ * for details.
+ */
+
+// PACKAGER_RENAME( CKEDITOR )
diff --git a/devel/third-party/ckeditor/core/ckeditor_basic.js b/devel/third-party/ckeditor/core/ckeditor_basic.js
index 239aca0..6c0d778 100644
--- a/devel/third-party/ckeditor/core/ckeditor_basic.js
+++ b/devel/third-party/ckeditor/core/ckeditor_basic.js
@@ -1,242 +1,94 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Contains the second part of the {@link CKEDITOR} object
- * definition, which defines the basic editor features to be available in
- * the root ckeditor_basic.js file.
- */
-
-if ( CKEDITOR.status == 'unloaded' )
-{
- (function()
- {
- CKEDITOR.event.implementOn( CKEDITOR );
-
- /**
- * Forces the full CKEditor core code, in the case only the basic code has been
- * loaded (ckeditor_basic.js). This method self-destroys (becomes undefined) in
- * the first call or as soon as the full code is available.
- * @example
- * // Check if the full core code has been loaded and load it.
- * if ( CKEDITOR.loadFullCore )
- * <b>CKEDITOR.loadFullCore()</b>;
- */
- CKEDITOR.loadFullCore = function()
- {
- // If not the basic code is not ready it, just mark it to be loaded.
- if ( CKEDITOR.status != 'basic_ready' )
- {
- CKEDITOR.loadFullCore._load = true;
- return;
- }
-
- // Destroy this function.
- delete CKEDITOR.loadFullCore;
-
- // Append the script to the head.
- var script = document.createElement( 'script' );
- script.type = 'text/javascript';
- script.src = CKEDITOR.basePath + 'ckeditor.js';
-
- document.getElementsByTagName( 'head' )[0].appendChild( script );
- };
-
- /**
- * The time to wait (in seconds) to load the full editor code after the
- * page load, if the "ckeditor_basic" file is used. If set to zero, the
- * editor is loaded on demand, as soon as an instance is created.
- *
- * This value must be set on the page before the page load completion.
- * @type Number
- * @default 0 (zero)
- * @example
- * // Loads the full source after five seconds.
- * CKEDITOR.loadFullCoreTimeout = 5;
- */
- CKEDITOR.loadFullCoreTimeout = 0;
-
- /**
- * The class name used to identify <textarea> elements to be replace
- * by CKEditor instances.
- * @type String
- * @default 'ckeditor'
- * @example
- * <b>CKEDITOR.replaceClass</b> = 'rich_editor';
- */
- CKEDITOR.replaceClass = 'ckeditor';
-
- /**
- * Enables the replacement of all textareas with class name matching
- * {@link CKEDITOR.replaceClass}.
- * @type Boolean
- * @default true
- * @example
- * // Disable the auto-replace feature.
- * <b>CKEDITOR.replaceByClassEnabled</b> = false;
- */
- CKEDITOR.replaceByClassEnabled = true;
-
- var createInstance = function( elementOrIdOrName, config, creationFunction, data )
- {
- if ( CKEDITOR.env.isCompatible )
- {
- // Load the full core.
- if ( CKEDITOR.loadFullCore )
- CKEDITOR.loadFullCore();
-
- var editor = creationFunction( elementOrIdOrName, config, data );
- CKEDITOR.add( editor );
- return editor;
- }
-
- return null;
- };
-
- /**
- * Replaces a <textarea> or a DOM element (DIV) with a CKEditor
- * instance. For textareas, the initial value in the editor will be the
- * textarea value. For DOM elements, their innerHTML will be used
- * instead. We recommend using TEXTAREA and DIV elements only.
- * @param {Object|String} elementOrIdOrName The DOM element (textarea), its
- * ID or name.
- * @param {Object} [config] The specific configurations to apply to this
- * editor instance. Configurations set here will override global CKEditor
- * settings.
- * @returns {CKEDITOR.editor} The editor instance created.
- * @example
- * <textarea id="myfield" name="myfield"><:/textarea>
- * ...
- * <b>CKEDITOR.replace( 'myfield' )</b>;
- * @example
- * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
- * <b>CKEDITOR.replace( textarea )</b>;
- */
- CKEDITOR.replace = function( elementOrIdOrName, config )
- {
- return createInstance( elementOrIdOrName, config, CKEDITOR.editor.replace );
- };
-
- /**
- * Creates a new editor instance inside a specific DOM element.
- * @param {Object|String} elementOrId The DOM element or its ID.
- * @param {Object} [config] The specific configurations to apply to this
- * editor instance. Configurations set here will override global CKEditor
- * settings.
- * @param {String} [data] Since 3.3. Initial value for the instance.
- * @returns {CKEDITOR.editor} The editor instance created.
- * @example
- * <div id="editorSpace"><:/div>
- * ...
- * <b>CKEDITOR.appendTo( 'editorSpace' )</b>;
- */
- CKEDITOR.appendTo = function( elementOrId, config, data )
- {
- return createInstance( elementOrId, config, CKEDITOR.editor.appendTo, data );
- };
-
- /**
- * @ignore
- * Documented at ckeditor.js.
- */
- CKEDITOR.add = function( editor )
- {
- // For now, just put the editor in the pending list. It will be
- // processed as soon as the full code gets loaded.
- var pending = this._.pending || ( this._.pending = [] );
- pending.push( editor );
- };
-
- /**
- * Replace all <textarea> elements available in the document with
- * editor instances.
- * @example
- * // Replace all <textarea> elements in the page.
- * CKEDITOR.replaceAll();
- * @example
- * // Replace all <textarea class="myClassName"> elements in the page.
- * CKEDITOR.replaceAll( 'myClassName' );
- * @example
- * // Selectively replace <textarea> elements, based on custom assertions.
- * CKEDITOR.replaceAll( function( textarea, config )
- * {
- * // Custom code to evaluate the replace, returning false
- * // if it must not be done.
- * // It also passes the "config" parameter, so the
- * // developer can customize the instance.
- * } );
- */
- CKEDITOR.replaceAll = function()
- {
- var textareas = document.getElementsByTagName( 'textarea' );
-
- for ( var i = 0 ; i < textareas.length ; i++ )
- {
- var config = null;
- var textarea = textareas[i];
- var name = textarea.name;
-
- // The "name" and/or "id" attribute must exist.
- if ( !textarea.name && !textarea.id )
- continue;
-
- if ( typeof arguments[0] == 'string' )
- {
- // The textarea class name could be passed as the function
- // parameter.
-
- var classRegex = new RegExp( '(?:^|\\s)' + arguments[0] + '(?:$|\\s)' );
-
- if ( !classRegex.test( textarea.className ) )
- continue;
- }
- else if ( typeof arguments[0] == 'function' )
- {
- // An assertion function could be passed as the function parameter.
- // It must explicitly return "false" to ignore a specific <textarea>.
- config = {};
- if ( arguments[0]( textarea, config ) === false )
- continue;
- }
-
- this.replace( textarea, config );
- }
- };
-
- (function()
- {
- var onload = function()
- {
- var loadFullCore = CKEDITOR.loadFullCore,
- loadFullCoreTimeout = CKEDITOR.loadFullCoreTimeout;
-
- // Replace all textareas with the default class name.
- if ( CKEDITOR.replaceByClassEnabled )
- CKEDITOR.replaceAll( CKEDITOR.replaceClass );
-
- CKEDITOR.status = 'basic_ready';
-
- if ( loadFullCore && loadFullCore._load )
- loadFullCore();
- else if ( loadFullCoreTimeout )
- {
- setTimeout( function()
- {
- if ( CKEDITOR.loadFullCore )
- CKEDITOR.loadFullCore();
- }
- , loadFullCoreTimeout * 1000 );
- }
- };
-
- if ( window.addEventListener )
- window.addEventListener( 'load', onload, false );
- else if ( window.attachEvent )
- window.attachEvent( 'onload', onload );
- })();
-
- CKEDITOR.status = 'basic_loaded';
- })();
-}
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Contains the second part of the {@link CKEDITOR} object
+ * definition, which defines the basic editor features to be available in
+ * the root ckeditor_basic.js file.
+ */
+
+if ( CKEDITOR.status == 'unloaded' ) {
+ (function() {
+ CKEDITOR.event.implementOn( CKEDITOR );
+
+ /**
+ * Forces the full CKEditor core code, in the case only the basic code has been
+ * loaded (`ckeditor_basic.js`). This method self-destroys (becomes undefined) in
+ * the first call or as soon as the full code is available.
+ *
+ * // Check if the full core code has been loaded and load it.
+ * if ( CKEDITOR.loadFullCore )
+ * CKEDITOR.loadFullCore();
+ *
+ * @member CKEDITOR
+ */
+ CKEDITOR.loadFullCore = function() {
+ // If the basic code is not ready, just mark it to be loaded.
+ if ( CKEDITOR.status != 'basic_ready' ) {
+ CKEDITOR.loadFullCore._load = 1;
+ return;
+ }
+
+ // Destroy this function.
+ delete CKEDITOR.loadFullCore;
+
+ // Append the script to the head.
+ var script = document.createElement( 'script' );
+ script.type = 'text/javascript';
+ script.src = CKEDITOR.basePath + 'ckeditor.js';
+ script.src = CKEDITOR.basePath + 'ckeditor_source.js'; // %REMOVE_LINE%
+
+ document.getElementsByTagName( 'head' )[ 0 ].appendChild( script );
+ };
+
+ /**
+ * The time to wait (in seconds) to load the full editor code after the
+ * page load, if the "ckeditor_basic" file is used. If set to zero, the
+ * editor is loaded on demand, as soon as an instance is created.
+ *
+ * This value must be set on the page before the page load completion.
+ *
+ * // Loads the full source after five seconds.
+ * CKEDITOR.loadFullCoreTimeout = 5;
+ *
+ * @property
+ * @member CKEDITOR
+ */
+ CKEDITOR.loadFullCoreTimeout = 0;
+
+ // Documented at ckeditor.js.
+ CKEDITOR.add = function( editor ) {
+ // For now, just put the editor in the pending list. It will be
+ // processed as soon as the full code gets loaded.
+ var pending = this._.pending || ( this._.pending = [] );
+ pending.push( editor );
+ };
+
+ (function() {
+ var onload = function() {
+ var loadFullCore = CKEDITOR.loadFullCore,
+ loadFullCoreTimeout = CKEDITOR.loadFullCoreTimeout;
+
+ if ( !loadFullCore )
+ return;
+
+ CKEDITOR.status = 'basic_ready';
+
+ if ( loadFullCore && loadFullCore._load )
+ loadFullCore();
+ else if ( loadFullCoreTimeout ) {
+ setTimeout( function() {
+ if ( CKEDITOR.loadFullCore )
+ CKEDITOR.loadFullCore();
+ }, loadFullCoreTimeout * 1000 );
+ }
+ };
+
+ CKEDITOR.domReady( onload );
+ })();
+
+ CKEDITOR.status = 'basic_loaded';
+ })();
+}
diff --git a/devel/third-party/ckeditor/core/command.js b/devel/third-party/ckeditor/core/command.js
index 0a8d098..fe853e6 100644
--- a/devel/third-party/ckeditor/core/command.js
+++ b/devel/third-party/ckeditor/core/command.js
@@ -1,73 +1,237 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.command = function( editor, commandDefinition )
-{
- this.uiItems = [];
-
- this.exec = function( data )
- {
- if ( this.state == CKEDITOR.TRISTATE_DISABLED )
- return false;
-
- if ( this.editorFocus ) // Give editor focus if necessary (#4355).
- editor.focus();
-
- return ( commandDefinition.exec.call( this, editor, data ) !== false );
- };
-
- CKEDITOR.tools.extend( this, commandDefinition,
- // Defaults
- {
- modes : { wysiwyg : 1 },
- editorFocus : true,
- state : CKEDITOR.TRISTATE_OFF
- });
-
- // Call the CKEDITOR.event constructor to initialize this instance.
- CKEDITOR.event.call( this );
-};
-
-CKEDITOR.command.prototype =
-{
- enable : function()
- {
- if ( this.state == CKEDITOR.TRISTATE_DISABLED )
- this.setState( ( !this.preserveState || ( typeof this.previousState == 'undefined' ) ) ? CKEDITOR.TRISTATE_OFF : this.previousState );
- },
-
- disable : function()
- {
- this.setState( CKEDITOR.TRISTATE_DISABLED );
- },
-
- setState : function( newState )
- {
- // Do nothing if there is no state change.
- if ( this.state == newState )
- return false;
-
- this.previousState = this.state;
-
- // Set the new state.
- this.state = newState;
-
- // Fire the "state" event, so other parts of the code can react to the
- // change.
- this.fire( 'state' );
-
- return true;
- },
-
- toggleState : function()
- {
- if ( this.state == CKEDITOR.TRISTATE_OFF )
- this.setState( CKEDITOR.TRISTATE_ON );
- else if ( this.state == CKEDITOR.TRISTATE_ON )
- this.setState( CKEDITOR.TRISTATE_OFF );
- }
-};
-
-CKEDITOR.event.implementOn( CKEDITOR.command.prototype, true );
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Represents a command that can be executed on an editor instance.
+ *
+ * var command = new CKEDITOR.command( editor, {
+ * exec: function( editor ) {
+ * alert( editor.document.getBody().getHtml() );
+ * }
+ * } );
+ *
+ * @class
+ * @mixins CKEDITOR.event
+ * @constructor Creates a command class instance.
+ * @param {CKEDITOR.editor} editor The editor instance this command will be
+ * related to.
+ * @param {CKEDITOR.commandDefinition} commandDefinition The command
+ * definition.
+ */
+CKEDITOR.command = function( editor, commandDefinition ) {
+ /**
+ * Lists UI items that are associated to this command. This list can be
+ * used to interact with the UI on command execution (by the execution code
+ * itself, for example).
+ *
+ * alert( 'Number of UI items associated to this command: ' + command.uiItems.length );
+ */
+ this.uiItems = [];
+
+ /**
+ * Executes the command.
+ *
+ * command.exec(); // The command gets executed.
+ *
+ * @param {Object} [data] Any data to pass to the command. Depends on the
+ * command implementation and requirements.
+ * @returns {Boolean} A boolean indicating that the command has been successfully executed.
+ */
+ this.exec = function( data ) {
+ if ( this.state == CKEDITOR.TRISTATE_DISABLED )
+ return false;
+
+ if ( this.editorFocus ) // Give editor focus if necessary (#4355).
+ editor.focus();
+
+ if ( this.fire( 'exec' ) === false )
+ return true;
+
+ return ( commandDefinition.exec.call( this, editor, data ) !== false );
+ };
+
+ /**
+ * Explicitly update the status of the command, by firing the {@link CKEDITOR.command#event-refresh} event,
+ * as well as invoke the {@link CKEDITOR.command#method-refresh} method if defined, this method
+ * is to allow different parts of the editor code to contribute in command status resolution.
+ *
+ * @todo
+ */
+ this.refresh = function( editor, path ) {
+ // Do nothing is we're on read-only and this command doesn't support it.
+ // We don't need to disabled the command explicitely here, because this
+ // is already done by the "readOnly" event listener.
+ if ( !this.readOnly && editor.readOnly )
+ return true;
+
+ // Disable commands that are not allowed in the current selection path context.
+ if ( this.context && !path.isContextFor( this.context ) ) {
+ this.disable();
+ return true;
+ }
+
+ // Make the "enabled" state as basis.
+ this.enable();
+
+ if ( this.fire( 'refresh', { editor: editor, path: path } ) === false )
+ return true;
+
+ return ( commandDefinition.refresh && commandDefinition.refresh.apply( this, arguments ) !== false );
+ };
+
+ CKEDITOR.tools.extend( this, commandDefinition, {
+ /**
+ * The editor modes within which the command can be executed. The
+ * execution will have no action if the current mode is not listed
+ * in this property.
+ *
+ * // Enable the command in both WYSIWYG and Source modes.
+ * command.modes = { wysiwyg:1,source:1 };
+ *
+ * // Enable the command in Source mode only.
+ * command.modes = { source:1 };
+ *
+ * @see CKEDITOR.editor#mode
+ */
+ modes: { wysiwyg:1 },
+
+ /**
+ * Indicates that the editor will get the focus before executing
+ * the command.
+ *
+ * // Do not force the editor to have focus when executing the command.
+ * command.editorFocus = false;
+ *
+ * @property {Boolean} [=true]
+ */
+ editorFocus: 1,
+
+ /**
+ * Indicates that this command is sensible to the selection context.
+ * If `true`, the {@link CKEDITOR.command#method-refresh} method will be
+ * called for this command on the {@link CKEDITOR.editor#event-selectionChange} event.
+ *
+ * @property {Boolean} [=false]
+ */
+ contextSensitive: !!commandDefinition.context,
+
+ /**
+ * Indicates the editor state. Possible values are:
+ *
+ * * {@link CKEDITOR#TRISTATE_DISABLED}: the command is
+ * disabled. It's execution will have no effect. Same as {@link #disable}.
+ * * {@link CKEDITOR#TRISTATE_ON}: the command is enabled
+ * and currently active in the editor (for context sensitive commands, for example).
+ * * {@link CKEDITOR#TRISTATE_OFF}: the command is enabled
+ * and currently inactive in the editor (for context sensitive commands, for example).
+ *
+ * Do not set this property directly, using the {@link #setState} method instead.
+ *
+ * if ( command.state == CKEDITOR.TRISTATE_DISABLED )
+ * alert( 'This command is disabled' );
+ *
+ * @property {Number} [=CKEDITOR.TRISTATE_OFF]
+ */
+ state: CKEDITOR.TRISTATE_OFF
+ });
+
+ // Call the CKEDITOR.event constructor to initialize this instance.
+ CKEDITOR.event.call( this );
+};
+
+CKEDITOR.command.prototype = {
+ /**
+ * Enables the command for execution. The command state (see
+ * {@link CKEDITOR.command#property-state}) available before disabling it is restored.
+ *
+ * command.enable();
+ * command.exec(); // Execute the command.
+ */
+ enable: function() {
+ if ( this.state == CKEDITOR.TRISTATE_DISABLED )
+ this.setState( ( !this.preserveState || ( typeof this.previousState == 'undefined' ) ) ? CKEDITOR.TRISTATE_OFF : this.previousState );
+ },
+
+ /**
+ * Disables the command for execution. The command state (see
+ * {@link CKEDITOR.command#property-state}) will be set to {@link CKEDITOR#TRISTATE_DISABLED}.
+ *
+ * command.disable();
+ * command.exec(); // "false" - Nothing happens.
+ */
+ disable: function() {
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
+ },
+
+ /**
+ * Sets the command state.
+ *
+ * command.setState( CKEDITOR.TRISTATE_ON );
+ * command.exec(); // Execute the command.
+ * command.setState( CKEDITOR.TRISTATE_DISABLED );
+ * command.exec(); // 'false' - Nothing happens.
+ * command.setState( CKEDITOR.TRISTATE_OFF );
+ * command.exec(); // Execute the command.
+ *
+ * @param {Number} newState The new state. See {@link #property-state}.
+ * @returns {Boolean} Returns `true` if the command state changed.
+ */
+ setState: function( newState ) {
+ // Do nothing if there is no state change.
+ if ( this.state == newState )
+ return false;
+
+ this.previousState = this.state;
+
+ // Set the new state.
+ this.state = newState;
+
+ // Fire the "state" event, so other parts of the code can react to the
+ // change.
+ this.fire( 'state' );
+
+ return true;
+ },
+
+ /**
+ * Toggles the on/off (active/inactive) state of the command. This is
+ * mainly used internally by context sensitive commands.
+ *
+ * command.toggleState();
+ */
+ toggleState: function() {
+ if ( this.state == CKEDITOR.TRISTATE_OFF )
+ this.setState( CKEDITOR.TRISTATE_ON );
+ else if ( this.state == CKEDITOR.TRISTATE_ON )
+ this.setState( CKEDITOR.TRISTATE_OFF );
+ }
+};
+
+CKEDITOR.event.implementOn( CKEDITOR.command.prototype );
+
+/**
+ * Indicates the previous command state.
+ *
+ * alert( command.previousState );
+ *
+ * @property {Number} previousState
+ * @see #state
+ */
+
+/**
+ * Fired when the command state changes.
+ *
+ * command.on( 'state', function() {
+ * // Alerts the new state.
+ * alert( this.state );
+ * } );
+ *
+ * @event state
+ */
+
+ /**
+ * @event refresh
+ * @todo
+ */
diff --git a/devel/third-party/ckeditor/core/commanddefinition.js b/devel/third-party/ckeditor/core/commanddefinition.js
index c451274..d1177ed 100644
--- a/devel/third-party/ckeditor/core/commanddefinition.js
+++ b/devel/third-party/ckeditor/core/commanddefinition.js
@@ -1,102 +1,139 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class,
- * which contains the defintion of a command. This file is for
- * documentation purposes only.
- */
-
-/**
- * (Virtual Class) Do not call this constructor. This class is not really part
- * of the API. It just illustrates the features of command objects to be
- * passed to the {@link CKEDITOR.editor.prototype.addCommand} function.
- * @name CKEDITOR.commandDefinition
- * @constructor
- * @example
- */
-
- /**
- * Executes the command.
- * @name CKEDITOR.commandDefinition.prototype.exec
- * @function
- * @param {CKEDITOR.editor} editor The editor within which run the command.
- * @param {Object} [data] Additional data to be used to execute the command.
- * @returns {Boolean} Whether the command has been successfully executed.
- * Defaults to "true", if nothing is returned.
- * @example
- * editorInstance.addCommand( 'sample',
- * {
- * exec : function( editor )
- * {
- * alert( 'Executing a command for the editor name "' + editor.name + '"!' );
- * }
- * });
- */
-
-/**
- * Whether the command need to be hooked into the redo/undo system.
- * @name CKEDITOR.commandDefinition.canUndo
- * @type {Boolean} If not defined or 'true' both hook into undo system, set it
- * to 'false' explicitly keep it out.
- * @field
- * @example
- * editorInstance.addCommand( 'alertName',
- * {
- * exec : function( editor )
- * {
- * alert( editor.name );
- * },
- * canUndo : false // No support for undo/redo
- * });
- */
-
-/**
- * Whether the command is asynchronous, which means the 'afterCommandExec' event
- * will be fired by the command itself manually, and the 'exec' function return value
- * of this command is not to be returned.
- * @name CKEDITOR.commandDefinition.async
- * @type {Boolean} If defined as 'true', the command is asynchronous.
- * @example
- * editorInstance.addCommand( 'alertName',
- * {
- * exec : function( editor )
- * {
- * // Asynchronous operation below.
- * CKEDITOR.ajax.loadXml( 'data.xml' );
- * },
- * async : true // The command need some time to complete after exec function returns.
- * });
- */
-
-/**
- * Whether the command should give focus to the editor before execution.
- * @name CKEDITOR.commandDefinition.editorFocus
- * @type {Boolean}
- * @example
- * editorInstance.addCommand( 'maximize',
- * {
- * exec : function( editor )
- * {
- * },
- * editorFocus : false // The command doesn't require focusing the editing document.
- * });
- */
-
-
-/**
- * Whether the command state should be set to {@link CKEDITOR.TRISTATE_DISABLED} on startup.
- * @name CKEDITOR.commandDefinition.startDisabled
- * @type {Boolean}
- * @default false
- * @example
- * editorInstance.addCommand( 'unlink',
- * {
- * exec : function( editor )
- * {
- * },
- * startDisabled : true // Command is unavailable until selection is inside a link.
- * });
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.commandDefinition} class,
+ * which contains the defintion of a command. This file is for
+ * documentation purposes only.
+ */
+
+/**
+ * Virtual class that illustrates the features of command objects to be
+ * passed to the {@link CKEDITOR.editor#addCommand} function.
+ *
+ * @class CKEDITOR.commandDefinition
+ * @abstract
+ */
+
+/**
+ * The function to be fired when the commend is executed.
+ *
+ * editorInstance.addCommand( 'sample', {
+ * exec: function( editor ) {
+ * alert( 'Executing a command for the editor name "' + editor.name + '"!' );
+ * }
+ * } );
+ *
+ * @method exec
+ * @param {CKEDITOR.editor} editor The editor within which run the command.
+ * @param {Object} [data] Additional data to be used to execute the command.
+ * @returns {Boolean} Whether the command has been successfully executed.
+ * Defaults to `true`, if nothing is returned.
+ */
+
+/**
+ * Whether the command need to be hooked into the redo/undo system.
+ *
+ * editorInstance.addCommand( 'alertName', {
+ * exec: function( editor ) {
+ * alert( editor.name );
+ * },
+ * canUndo: false // No support for undo/redo.
+ * } );
+ *
+ * @property {Boolean} [canUndo=true]
+ */
+
+/**
+ * Whether the command is asynchronous, which means that the
+ * {@link CKEDITOR.editor#event-afterCommandExec} event will be fired by the
+ * command itself manually, and that the return value of this command is not to
+ * be returned by the {@link #exec} function.
+ *
+ * editorInstance.addCommand( 'loadOptions', {
+ * exec: function( editor ) {
+ * // Asynchronous operation below.
+ * CKEDITOR.ajax.loadXml( 'data.xml', function() {
+ * editor.fire( 'afterCommandExec' );
+ * } );
+ * },
+ * async: true // The command need some time to complete after exec function returns.
+ * } );
+ *
+ * @property {Boolean} [async=false]
+ */
+
+/**
+ * Whether the command should give focus to the editor before execution.
+ *
+ * editorInstance.addCommand( 'maximize', {
+ * exec: function( editor ) {
+ * // ...
+ * },
+ * editorFocus: false // The command doesn't require focusing the editing document.
+ * } );
+ *
+ * @property {Boolean} [editorFocus=true]
+ * @see CKEDITOR.command#editorFocus
+ */
+
+
+/**
+ * Whether the command state should be set to {@link CKEDITOR#TRISTATE_DISABLED} on startup.
+ *
+ * editorInstance.addCommand( 'unlink', {
+ * exec: function( editor ) {
+ * // ...
+ * },
+ * startDisabled: true // Command is unavailable until selection is inside a link.
+ * } );
+ *
+ * @property {Boolean} [startDisabled=false]
+ */
+
+/**
+ * Indicates that this command is sensible to the selection context.
+ * If `true`, the {@link CKEDITOR.command#method-refresh} method will be
+ * called for this command on selection changes, with a single parameter
+ * representing the current elements path.
+ *
+ * @property {Boolean} [contextSensitive=true]
+ */
+
+/**
+ * Defined by command definition a function to determinate the command state, it will be invoked
+ * when editor has it's `states` or `selection` changed.
+ *
+ * **Note:** The function provided must be calling {@link CKEDITOR.command#setState} in all circumstance,
+ * if it is intended to update the command state.
+ *
+ * @method refresh
+ * @param {CKEDITOR.editor} editor
+ * @param {CKEDITOR.dom.elementPath} path
+ */
+
+/**
+ * Sets the element name used to reflect the command state on selection changes.
+ * If the selection is in a place where the element is not allowed, the command
+ * will be disabled.
+ * Setting this property overrides {@link #contextSensitive} to `true`.
+ *
+ * @property {Boolean} [context=true]
+ */
+
+/**
+ * The editor modes within which the command can be executed. The execution
+ * will have no action if the current mode is not listed in this property.
+ *
+ * editorInstance.addCommand( 'link', {
+ * exec: function( editor ) {
+ * // ...
+ * },
+ * modes: { wysiwyg:1 } // Command is available in wysiwyg mode only.
+ * } );
+ *
+ * @property {Object} [modes={ wysiwyg:1 }]
+ * @see CKEDITOR.command#modes
+ */
diff --git a/devel/third-party/ckeditor/core/config.js b/devel/third-party/ckeditor/core/config.js
index f18c50b..6155f1f 100644
--- a/devel/third-party/ckeditor/core/config.js
+++ b/devel/third-party/ckeditor/core/config.js
@@ -1,405 +1,363 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.config} object, which holds the
- * default configuration settings.
- */
-
-CKEDITOR.ENTER_P = 1;
-CKEDITOR.ENTER_BR = 2;
-CKEDITOR.ENTER_DIV = 3;
-
-/**
- * Holds the default configuration settings. Changes to this object are
- * reflected in all editor instances, if not specificaly specified for those
- * instances.
- * @namespace
- * @example
- * // All editor created after the following setting will not load custom
- * // configuration files.
- * CKEDITOR.config.customConfig = '';
- */
-CKEDITOR.config =
-{
- /**
- * The URL path for the custom configuration file to be loaded. If not
- * overloaded with inline configurations, it defaults to the "config.js"
- * file present in the root of the CKEditor installation directory.<br /><br />
- *
- * CKEditor will recursively load custom configuration files defined inside
- * other custom configuration files.
- * @type String
- * @default '<CKEditor folder>/config.js'
- * @example
- * // Load a specific configuration file.
- * CKEDITOR.replace( 'myfiled', { customConfig : '/myconfig.js' } );
- * @example
- * // Do not load any custom configuration file.
- * CKEDITOR.replace( 'myfiled', { customConfig : '' } );
- */
- customConfig : 'config.js',
-
- /**
- * Whether the replaced element (usually a textarea) is to be updated
- * automatically when posting the form containing the editor.
- * @type Boolean
- * @default true
- * @example
- * config.autoUpdateElement = true;
- */
- autoUpdateElement : true,
-
- /**
- * The base href URL used to resolve relative and absolute URLs in the
- * editor content.
- * @type String
- * @default '' (empty string)
- * @example
- * config.baseHref = 'http://www.example.com/path/';
- */
- baseHref : '',
-
- /**
- * The CSS file(s) to be used to apply style to the contents. It should
- * reflect the CSS used in the final pages where the contents are to be
- * used.
- * @type String|Array
- * @default '<CKEditor folder>/contents.css'
- * @example
- * config.contentsCss = '/css/mysitestyles.css';
- * config.contentsCss = ['/css/mysitestyles.css', '/css/anotherfile.css'];
- */
- contentsCss : CKEDITOR.basePath + 'contents.css',
-
- /**
- * The writting direction of the language used to write the editor
- * contents. Allowed values are:
- * <ul>
- * <li>'ui' - which indicate content direction will be the same with the user interface language direction;</li>
- * <li>'ltr' - for Left-To-Right language (like English);</li>
- * <li>'rtl' - for Right-To-Left languages (like Arabic).</li>
- * </ul>
- * @default 'ui'
- * @type String
- * @example
- * config.contentsLangDirection = 'rtl';
- */
- contentsLangDirection : 'ui',
-
- /**
- * Language code of the writting language which is used to author the editor
- * contents.
- * @default Same value with editor's UI language.
- * @type String
- * @example
- * config.contentsLanguage = 'fr';
- */
- contentsLanguage : '',
-
- /**
- * The user interface language localization to use. If empty, the editor
- * automatically localize the editor to the user language, if supported,
- * otherwise the {@link CKEDITOR.config.defaultLanguage} language is used.
- * @default '' (empty)
- * @type String
- * @example
- * // Load the German interface.
- * config.language = 'de';
- */
- language : '',
-
- /**
- * The language to be used if {@link CKEDITOR.config.language} is left empty and it's not
- * possible to localize the editor to the user language.
- * @default 'en'
- * @type String
- * @example
- * config.defaultLanguage = 'it';
- */
- defaultLanguage : 'en',
-
- /**
- * Sets the behavior for the ENTER key. It also dictates other behaviour
- * rules in the editor, like whether the <br> element is to be used
- * as a paragraph separator when indenting text.
- * The allowed values are the following constants, and their relative
- * behavior:
- * <ul>
- * <li>{@link CKEDITOR.ENTER_P} (1): new <p> paragraphs are created;</li>
- * <li>{@link CKEDITOR.ENTER_BR} (2): lines are broken with <br> elements;</li>
- * <li>{@link CKEDITOR.ENTER_DIV} (3): new <div> blocks are created.</li>
- * </ul>
- * <strong>Note</strong>: It's recommended to use the
- * {@link CKEDITOR.ENTER_P} value because of its semantic value and
- * correctness. The editor is optimized for this value.
- * @type Number
- * @default {@link CKEDITOR.ENTER_P}
- * @example
- * // Not recommended.
- * config.enterMode = CKEDITOR.ENTER_BR;
- */
- enterMode : CKEDITOR.ENTER_P,
-
- /**
- * Force the respect of {@link CKEDITOR.config.enterMode} as line break regardless of the context,
- * E.g. If {@link CKEDITOR.config.enterMode} is set to {@link CKEDITOR.ENTER_P},
- * press enter key inside a 'div' will create a new paragraph with 'p' instead of 'div'.
- * @since 3.2.1
- * @default false
- * @example
- * // Not recommended.
- * config.forceEnterMode = true;
- */
- forceEnterMode : false,
-
- /**
- * Just like the {@link CKEDITOR.config.enterMode} setting, it defines the behavior for the SHIFT+ENTER key.
- * The allowed values are the following constants, and their relative
- * behavior:
- * <ul>
- * <li>{@link CKEDITOR.ENTER_P} (1): new <p> paragraphs are created;</li>
- * <li>{@link CKEDITOR.ENTER_BR} (2): lines are broken with <br> elements;</li>
- * <li>{@link CKEDITOR.ENTER_DIV} (3): new <div> blocks are created.</li>
- * </ul>
- * @type Number
- * @default {@link CKEDITOR.ENTER_BR}
- * @example
- * config.shiftEnterMode = CKEDITOR.ENTER_P;
- */
- shiftEnterMode : CKEDITOR.ENTER_BR,
-
- /**
- * A comma separated list of plugins that are not related to editor
- * instances. Reserved to plugins that extend the core code only.<br /><br />
- *
- * There are no ways to override this setting, except by editing the source
- * code of CKEditor (_source/core/config.js).
- * @type String
- * @example
- */
- corePlugins : '',
-
- /**
- * Sets the doctype to be used when loading the editor content as HTML.
- * @type String
- * @default '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
- * @example
- * // Set the doctype to the HTML 4 (quirks) mode.
- * config.docType = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
- */
- docType : '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
-
- /**
- * Sets the "id" attribute to be used on the body element of the editing
- * area.
- * @since 3.1
- * @type String
- * @default ''
- */
- bodyId : '',
-
- /**
- * Sets the "class" attribute to be used on the body element of the editing
- * area.
- * @since 3.1
- * @type String
- * @default ''
- */
- bodyClass : '',
-
- /**
- * Indicates whether the contents to be edited are being inputted as a full
- * HTML page. A full page includes the <html>, <head> and
- * <body> tags. The final output will also reflect this setting,
- * including the <body> contents only if this setting is disabled.
- * @since 3.1
- * @type Boolean
- * @default false
- * @example
- * config.fullPage = true;
- */
- fullPage : false,
-
- /**
- * The height of editing area( content ), in relative or absolute, e.g. 30px, 5em.
- * Note: Percentage unit is not supported yet. e.g. 30%.
- * @type Number|String
- * @default '200'
- * @example
- * config.height = 500;
- * config.height = '25em';
- * config.height = '300px';
- */
- height : 200,
-
- /**
- * Comma separated list of plugins to load and initialize for an editor
- * instance. This should be rarely changed, using instead the
- * {@link CKEDITOR.config.extraPlugins} and
- * {@link CKEDITOR.config.removePlugins} for customizations.
- * @type String
- * @example
- */
- plugins :
- 'about,' +
- 'a11yhelp,' +
- 'basicstyles,' +
- 'bidi,' +
- 'blockquote,' +
- 'button,' +
- 'clipboard,' +
- 'colorbutton,' +
- 'colordialog,' +
- 'contextmenu,' +
- 'dialogadvtab,' +
- 'div,' +
- 'elementspath,' +
- 'enterkey,' +
- 'entities,' +
- 'filebrowser,' +
- 'find,' +
- 'flash,' +
- 'font,' +
- 'format,' +
- 'forms,' +
- 'horizontalrule,' +
- 'htmldataprocessor,' +
- 'image,' +
- 'indent,' +
- 'justify,' +
- 'keystrokes,' +
- 'link,' +
- 'list,' +
- 'liststyle,' +
- 'maximize,' +
- 'newpage,' +
- 'pagebreak,' +
- 'pastefromword,' +
- 'pastetext,' +
- 'popup,' +
- 'preview,' +
- 'print,' +
- 'removeformat,' +
- 'resize,' +
- 'save,' +
- 'scayt,' +
- 'smiley,' +
- 'showblocks,' +
- 'showborders,' +
- 'sourcearea,' +
- 'stylescombo,' +
- 'table,' +
- 'tabletools,' +
- 'specialchar,' +
- 'tab,' +
- 'templates,' +
- 'toolbar,' +
- 'undo,' +
- 'wysiwygarea,' +
- 'wsc',
-
- /**
- * List of additional plugins to be loaded. This is a tool setting which
- * makes it easier to add new plugins, whithout having to touch and
- * possibly breaking the {@link CKEDITOR.config.plugins} setting.
- * @type String
- * @example
- * config.extraPlugins = 'myplugin,anotherplugin';
- */
- extraPlugins : '',
-
- /**
- * List of plugins that must not be loaded. This is a tool setting which
- * makes it easier to avoid loading plugins definied in the
- * {@link CKEDITOR.config.plugins} setting, whithout having to touch it and
- * potentially breaking it.
- * @type String
- * @example
- * config.removePlugins = 'elementspath,save,font';
- */
- removePlugins : '',
-
- /**
- * List of regular expressions to be executed over the input HTML,
- * indicating code that must stay untouched.
- * @type Array
- * @default [] (empty array)
- * @example
- * config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP Code
- * config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP Code
- * config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net Code
- */
- protectedSource : [],
-
- /**
- * The editor tabindex value.
- * @type Number
- * @default 0 (zero)
- * @example
- * config.tabIndex = 1;
- */
- tabIndex : 0,
-
- /**
- * The theme to be used to build the UI.
- * @type String
- * @default 'default'
- * @see CKEDITOR.config.skin
- * @example
- * config.theme = 'default';
- */
- theme : 'default',
-
- /**
- * The skin to load. It may be the name of the skin folder inside the
- * editor installation path, or the name and the path separated by a comma.
- * @type String
- * @default 'default'
- * @example
- * config.skin = 'v2';
- * @example
- * config.skin = 'myskin,/customstuff/myskin/';
- */
- skin : 'kama',
-
- /**
- * The editor width in CSS size format or pixel integer.
- * @type String|Number
- * @default '' (empty)
- * @example
- * config.width = 850;
- * @example
- * config.width = '75%';
- */
- width : '',
-
- /**
- * The base Z-index for floating dialogs and popups.
- * @type Number
- * @default 10000
- * @example
- * config.baseFloatZIndex = 2000
- */
- baseFloatZIndex : 10000
-};
-
-/**
- * Indicates that some of the editor features, like alignement and text
- * direction, should used the "computed value" of the feature to indicate it's
- * on/off state, instead of using the "real value".
- *
- * If enabled, in a left to right written document, the "Left Justify"
- * alignment button will show as active, even if the aligment style is not
- * explicitly applied to the current paragraph in the editor.
- * @name CKEDITOR.config.useComputedState
- * @type Boolean
- * @default true
- * @since 3.4
- * @example
- * config.useComputedState = false;
- */
-
-// PACKAGER_RENAME( CKEDITOR.config )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.config} object that stores the
+ * default configuration settings.
+ */
+
+/**
+ * Used in conjunction with {@link CKEDITOR.config#enterMode}
+ * and {@link CKEDITOR.config#shiftEnterMode} configuration
+ * settings to make the editor produce `<p>` tags when
+ * using the *Enter* key.
+ *
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
+ */
+CKEDITOR.ENTER_P = 1;
+
+/**
+ * Used in conjunction with {@link CKEDITOR.config#enterMode}
+ * and {@link CKEDITOR.config#shiftEnterMode} configuration
+ * settings to make the editor produce `<br>` tags when
+ * using the *Enter* key.
+ *
+ * @readonly
+ * @property {Number} [=2]
+ * @member CKEDITOR
+ */
+CKEDITOR.ENTER_BR = 2;
+
+/**
+ * Used in conjunction with {@link CKEDITOR.config#enterMode}
+ * and {@link CKEDITOR.config#shiftEnterMode} configuration
+ * settings to make the editor produce `<div>` tags when
+ * using the *Enter* key.
+ *
+ * @readonly
+ * @property {Number} [=3]
+ * @member CKEDITOR
+ */
+CKEDITOR.ENTER_DIV = 3;
+
+/**
+ * Stores default configuration settings. Changes to this object are
+ * reflected in all editor instances, if not specified otherwise for a particular
+ * instance.
+ *
+ * @class
+ * @singleton
+ */
+CKEDITOR.config = {
+ /**
+ * The URL path for the custom configuration file to be loaded. If not
+ * overloaded with inline configuration, it defaults to the `config.js`
+ * file present in the root of the CKEditor installation directory.
+ *
+ * CKEditor will recursively load custom configuration files defined inside
+ * other custom configuration files.
+ *
+ * // Load a specific configuration file.
+ * CKEDITOR.replace( 'myfield', { customConfig: '/myconfig.js' } );
+ *
+ * // Do not load any custom configuration file.
+ * CKEDITOR.replace( 'myfield', { customConfig: '' } );
+ *
+ * @cfg {String} [="<CKEditor folder>/config.js"]
+ */
+ customConfig: 'config.js',
+
+ /**
+ * Whether the replaced element (usually a `<textarea>`)
+ * is to be updated automatically when posting the form containing the editor.
+ *
+ * @cfg
+ */
+ autoUpdateElement: true,
+
+ /**
+ * The user interface language localization to use. If left empty, the editor
+ * will automatically be localized to the user language. If the user language is not supported,
+ * the language specified in the {@link CKEDITOR.config#defaultLanguage}
+ * configuration setting is used.
+ *
+ * // Load the German interface.
+ * config.language = 'de';
+ *
+ * @cfg
+ */
+ language: '',
+
+ /**
+ * The language to be used if the {@link CKEDITOR.config#language}
+ * setting is left empty and it is not possible to localize the editor to the user language.
+ *
+ * config.defaultLanguage = 'it';
+ *
+ * @cfg
+ */
+ defaultLanguage: 'en',
+
+ /**
+ * The writting direction of the language used to write the editor
+ * contents. Allowed values are:
+ *
+ * * `''` (empty string) - indicate content direction will be the same with either the editor
+ * UI direction or page element direction depending on the creators:
+ * * Themed UI: The same with user interface language direction;
+ * * Inline: The same with the editable element text direction;
+ * * `'ltr'` - for Left-To-Right language (like English);
+ * * `'rtl'` - for Right-To-Left languages (like Arabic).
+ *
+ * Example:
+ *
+ * config.contentsLangDirection = 'rtl';
+ *
+ * @cfg
+ */
+ contentsLangDirection: '',
+
+ /**
+ * Sets the behavior of the *Enter* key. It also determines other behavior
+ * rules of the editor, like whether the `<br>` element is to be used
+ * as a paragraph separator when indenting text.
+ * The allowed values are the following constants that cause the behavior outlined below:
+ *
+ * * {@link CKEDITOR#ENTER_P} (1) – new `<p>` paragraphs are created;
+ * * {@link CKEDITOR#ENTER_BR} (2) – lines are broken with `<br>` elements;
+ * * {@link CKEDITOR#ENTER_DIV} (3) – new `<div>` blocks are created.
+ *
+ * **Note**: It is recommended to use the {@link CKEDITOR#ENTER_P} setting because of
+ * its semantic value and correctness. The editor is optimized for this setting.
+ *
+ * // Not recommended.
+ * config.enterMode = CKEDITOR.ENTER_BR;
+ *
+ * @cfg {Number} [=CKEDITOR.ENTER_P]
+ */
+ enterMode: CKEDITOR.ENTER_P,
+
+ /**
+ * Force the use of {@link CKEDITOR.config#enterMode} as line break regardless
+ * of the context. If, for example, {@link CKEDITOR.config#enterMode} is set
+ * to {@link CKEDITOR#ENTER_P}, pressing the *Enter* key inside a
+ * `<div>` element will create a new paragraph with `<p>`
+ * instead of a `<div>`.
+ *
+ * // Not recommended.
+ * config.forceEnterMode = true;
+ *
+ * @since 3.2.1
+ * @cfg
+ */
+ forceEnterMode: false,
+
+ /**
+ * Similarly to the {@link CKEDITOR.config#enterMode} setting, it defines the behavior
+ * of the *Shift+Enter* key combination.
+ *
+ * The allowed values are the following constants the behavior outlined below:
+ *
+ * * {@link CKEDITOR#ENTER_P} (1) – new `<p>` paragraphs are created;
+ * * {@link CKEDITOR#ENTER_BR} (2) – lines are broken with `<br>` elements;
+ * * {@link CKEDITOR#ENTER_DIV} (3) – new `<div>` blocks are created.
+ *
+ * Example:
+ *
+ * config.shiftEnterMode = CKEDITOR.ENTER_P;
+ *
+ * @cfg {Number} [=CKEDITOR.ENTER_BR]
+ */
+ shiftEnterMode: CKEDITOR.ENTER_BR,
+
+ /**
+ * Sets the `DOCTYPE` to be used when loading the editor content as HTML.
+ *
+ * // Set the DOCTYPE to the HTML 4 (Quirks) mode.
+ * config.docType = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
+ *
+ * @cfg
+ */
+ docType: '<!DOCTYPE html>',
+
+ /**
+ * Sets the `id` attribute to be used on the `body` element
+ * of the editing area. This can be useful when you intend to reuse the original CSS
+ * file you are using on your live website and want to assign the editor the same ID
+ * as the section that will include the contents. In this way ID-specific CSS rules will
+ * be enabled.
+ *
+ * config.bodyId = 'contents_id';
+ *
+ * @since 3.1
+ * @cfg
+ */
+ bodyId: '',
+
+ /**
+ * Sets the `class` attribute to be used on the `body` element
+ * of the editing area. This can be useful when you intend to reuse the original CSS
+ * file you are using on your live website and want to assign the editor the same class
+ * as the section that will include the contents. In this way class-specific CSS rules will
+ * be enabled.
+ *
+ * config.bodyClass = 'contents';
+ *
+ * @since 3.1
+ * @cfg
+ */
+ bodyClass: '',
+
+ /**
+ * Indicates whether the contents to be edited are being input as a full HTML page.
+ * A full page includes the `<html>`, `<head>`, and `<body>` elements.
+ * The final output will also reflect this setting, including the
+ * `<body>` contents only if this setting is disabled.
+ *
+ * config.fullPage = true;
+ *
+ * @since 3.1
+ * @cfg
+ */
+ fullPage: false,
+
+ /**
+ * The height of the editing area (that includes the editor content). This
+ * can be an integer, for pixel sizes, or any CSS-defined length unit.
+ *
+ * **Note:** Percent units (%) are not supported.
+ *
+ * config.height = 500; // 500 pixels.
+ * config.height = '25em'; // CSS length.
+ * config.height = '300px'; // CSS length.
+ *
+ * @cfg {Number/String}
+ */
+ height: 200,
+
+ /**
+ * Comma separated list of plugins to be used for an editor instance,
+ * besides, the actual plugins that to be loaded could be still affected by two other settings:
+ * {@link CKEDITOR.config#extraPlugins} and {@link CKEDITOR.config#removePlugins}.
+ *
+ * @cfg {String} [="<default list of plugins>"]
+ */
+ plugins: '', // %REMOVE_LINE%
+
+ /**
+ * A list of additional plugins to be loaded. This setting makes it easier
+ * to add new plugins without having to touch {@link CKEDITOR.config#plugins} setting.
+ *
+ * config.extraPlugins = 'myplugin,anotherplugin';
+ *
+ * @cfg
+ */
+ extraPlugins: '',
+
+ /**
+ * A list of plugins that must not be loaded. This setting makes it possible
+ * to avoid loading some plugins defined in the {@link CKEDITOR.config#plugins}
+ * setting, without having to touch it.
+ *
+ * **Note:** Plugin required by other plugin cannot be removed (error will be thrown).
+ * So e.g. if `contextmenu` is required by `tabletools`, then it can be removed
+ * only if `tabletools` isn't loaded.
+ *
+ * config.removePlugins = 'elementspath,save,font';
+ *
+ * @cfg
+ */
+ removePlugins: '',
+
+ /**
+ * List of regular expressions to be executed on input HTML,
+ * indicating HTML source code that when matched, must **not** be available in the WYSIWYG
+ * mode for editing.
+ *
+ * config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // PHP code
+ * config.protectedSource.push( /<%[\s\S]*?%>/g ); // ASP code
+ * config.protectedSource.push( /(<asp:[^\>]+>[\s|\S]*?<\/asp:[^\>]+>)|(<asp:[^\>]+\/>)/gi ); // ASP.Net code
+ *
+ * @cfg
+ */
+ protectedSource: [],
+
+ /**
+ * The editor `tabindex` value.
+ *
+ * config.tabIndex = 1;
+ *
+ * @cfg
+ */
+ tabIndex: 0,
+
+ /**
+ * The editor UI outer width. This can be an integer, for pixel sizes, or
+ * any CSS-defined unit.
+ *
+ * Unlike the {@link CKEDITOR.config#height} setting, this
+ * one will set the outer width of the entire editor UI, not for the
+ * editing area only.
+ *
+ * config.width = 850; // 850 pixels wide.
+ * config.width = '75%'; // CSS unit.
+ *
+ * @cfg {String/Number}
+ */
+ width: '',
+
+ /**
+ * The base Z-index for floating dialog windows and popups.
+ *
+ * config.baseFloatZIndex = 2000;
+ *
+ * @cfg
+ */
+ baseFloatZIndex: 10000,
+
+ /**
+ * The keystrokes that are blocked by default as the browser implementation
+ * is buggy. These default keystrokes are handled by the editor.
+ *
+ * @cfg {Array} [=[ CKEDITOR.CTRL + 66, CKEDITOR.CTRL + 73, CKEDITOR.CTRL + 85 ] // CTRL+B,I,U]
+ */
+ blockedKeystrokes: [
+ CKEDITOR.CTRL + 66, // CTRL+B
+ CKEDITOR.CTRL + 73, // CTRL+I
+ CKEDITOR.CTRL + 85 // CTRL+U
+ ]
+};
+
+/**
+ * Indicates that some of the editor features, like alignment and text
+ * direction, should use the "computed value" of the feature to indicate its
+ * on/off state instead of using the "real value".
+ *
+ * If enabled in a Left-To-Right written document, the "Left Justify"
+ * alignment button will be shown as active, even if the alignment style is not
+ * explicitly applied to the current paragraph in the editor.
+ *
+ * config.useComputedState = false;
+ *
+ * @since 3.4
+ * @cfg {Boolean} [useComputedState=true]
+ */
+
+/**
+ * The base user interface color to be used by the editor. Not all skins are
+ * compatible with this setting.
+ *
+ * // Using a color code.
+ * config.uiColor = '#AADC6E';
+ *
+ * // Using an HTML color name.
+ * config.uiColor = 'Gold';
+ *
+ * @cfg {String} uiColor
+ */
+
+// PACKAGER_RENAME( CKEDITOR.config )
diff --git a/devel/third-party/ckeditor/core/creators/inline.js b/devel/third-party/ckeditor/core/creators/inline.js
new file mode 100644
index 0000000..fc9cc49
--- /dev/null
+++ b/devel/third-party/ckeditor/core/creators/inline.js
@@ -0,0 +1,118 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ /** @class CKEDITOR */
+
+ /**
+ * Turn a DOM element with `contenteditable` attribute set to `true` into a
+ * CKEditor instance, check {@link CKEDITOR.dtd#$editable} for the list of
+ * allowed element names.
+ *
+ * <div contenteditable="true" id="content"></textarea>
+ * ...
+ * CKEDITOR.inline( 'content' );
+ *
+ * @param {Object/String} element The DOM element (`<textarea>`), its ID or name.
+ * @param {Object} [instanceConfig] The specific configurations to apply to this editor instance.
+ * See {@link CKEDITOR.config}.
+ * @returns {CKEDITOR.editor} The editor instance created.
+ */
+ CKEDITOR.inline = function( element, instanceConfig ) {
+ if ( !CKEDITOR.env.isCompatible )
+ return null;
+
+ element = CKEDITOR.dom.element.get( element );
+
+ // Avoid multiple inline editor instances on the same element.
+ if ( element.getEditor() )
+ throw 'The editor instance "' + element.getEditor().name + '" is already attached to the provided element.';
+
+ var editor = new CKEDITOR.editor( instanceConfig, element, CKEDITOR.ELEMENT_MODE_INLINE );
+
+ // Initial editor data is simply loaded from the page element content to make
+ // data retrieval possible immediately after the editor creation.
+ editor.setData( element.getHtml(), null, true );
+
+ // Once the editor is loaded, start the UI.
+ editor.on( 'loaded', function() {
+ editor.fire( 'uiReady' );
+
+ // Enable editing on the element.
+ editor.editable( element );
+
+ // Editable itself is the outermost element.
+ editor.container = element;
+
+ // Load and process editor data.
+ editor.setData( editor.getData( 1 ) );
+
+ editor.fire( 'contentDom' );
+ // Inline editing defaults to "wysiwyg" mode, so plugins don't
+ // need to make special handling for this "mode-less" environment.
+ editor.mode = 'wysiwyg';
+ editor.fire( 'mode' );
+
+ // The editor is completely loaded for interaction.
+ editor.fireOnce( 'instanceReady' );
+ CKEDITOR.fire( 'instanceReady', null, editor );
+
+ // Clean on startup.
+ editor.resetDirty();
+
+ // give priority to plugins that relay on editor#loaded for bootstrapping.
+ }, null, null, 10000 );
+
+ // Handle editor destroying.
+ editor.on( 'destroy', function() {
+ editor.element.clearCustomData();
+ delete editor.element;
+ });
+
+ return editor;
+ };
+
+ /**
+ * Call {@link CKEDITOR#inline} with all page elements with
+ * `contenteditable` attribute set to `true`.
+ *
+ */
+ CKEDITOR.inlineAll = function() {
+ var el, data;
+
+ for ( var name in CKEDITOR.dtd.$editable ) {
+ var elements = CKEDITOR.document.getElementsByTag( name );
+
+ for ( var i = 0, len = elements.count(); i < len; i++ ) {
+ el = elements.getItem( i );
+
+ if ( el.getAttribute( 'contenteditable' ) == 'true' ) {
+ // Fire the "inline" event, making it possible to customize
+ // the instance settings and eventually cancel the creation.
+
+ data = {
+ element: el, config: {} };
+
+ if ( CKEDITOR.fire( 'inline', data ) !== false )
+ CKEDITOR.inline( el, data.config );
+ }
+ }
+ }
+ };
+
+ CKEDITOR.domReady( function() {
+ !CKEDITOR.disableAutoInline && CKEDITOR.inlineAll();
+ });
+})();
+
+
+/**
+ * Avoid creating editor automatically on element which has attribute
+ * `contenteditable` set to the value `true`.
+ *
+ * CKEDITOR.disableAutoInline = true;
+ *
+ * @cfg {Boolean} [disableAutoInline=false]
+ */
diff --git a/devel/third-party/ckeditor/core/creators/themedui.js b/devel/third-party/ckeditor/core/creators/themedui.js
new file mode 100644
index 0000000..28ed21d
--- /dev/null
+++ b/devel/third-party/ckeditor/core/creators/themedui.js
@@ -0,0 +1,457 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+ /** @class CKEDITOR */
+
+/**
+ * The class name used to identify `<textarea>` elements to be replace
+ * by CKEditor instances. Set it to empty/null to disable this feature.
+ *
+ * CKEDITOR.replaceClass = 'rich_editor';
+ *
+ * @cfg {String} [replaceClass='ckeditor']
+ */
+CKEDITOR.replaceClass = 'ckeditor';
+
+(function() {
+ /**
+ * Replaces a `<textarea>` or a DOM element (`<div>`) with a CKEditor
+ * instance. For textareas, the initial value in the editor will be the
+ * textarea value. For DOM elements, their innerHTML will be used
+ * instead. We recommend using `<textarea>` and `<div>` elements only.
+ *
+ * <textarea id="myfield" name="myfield"></textarea>
+ * ...
+ * CKEDITOR.replace( 'myfield' );
+ *
+ * var textarea = document.body.appendChild( document.createElement( 'textarea' ) );
+ * CKEDITOR.replace( textarea );
+ *
+ * @param {Object/String} element The DOM element (textarea), its ID or name.
+ * @param {Object} [config] The specific configurations to apply to this
+ * editor instance. Configurations set here will override global CKEditor settings (see {@link CKEDITOR.config}).
+ * @returns {CKEDITOR.editor} The editor instance created.
+ */
+ CKEDITOR.replace = function( element, config ) {
+ return createInstance( element, config, null, CKEDITOR.ELEMENT_MODE_REPLACE );
+ };
+
+ /**
+ * Creates a new editor at the end of a specific DOM element.
+ *
+ * <div id="editorSpace"></div>
+ * ...
+ * CKEDITOR.appendTo( 'editorSpace' );
+ *
+ * @param {Object/String} element The DOM element, its ID or name.
+ * @param {Object} [config] The specific configurations to apply to this
+ * editor instance. Configurations set here will override global CKEditor settings.
+ * @param {String} [data] Since 3.3. Initial value for the instance.
+ * @returns {CKEDITOR.editor} The editor instance created.
+ */
+ CKEDITOR.appendTo = function( element, config, data )
+ {
+ return createInstance( element, config, data, CKEDITOR.ELEMENT_MODE_APPENDTO );
+ };
+
+ /**
+ * Replace all `<textarea>` elements available in the document with
+ * editor instances.
+ *
+ * // Replace all <textarea> elements in the page.
+ * CKEDITOR.replaceAll();
+ *
+ * // Replace all <textarea class="myClassName"> elements in the page.
+ * CKEDITOR.replaceAll( 'myClassName' );
+ *
+ * // Selectively replace <textarea> elements, based on custom assertions.
+ * CKEDITOR.replaceAll( function( textarea, config ) {
+ * // Custom code to evaluate the replace, returning false
+ * // if it must not be done.
+ * // It also passes the "config" parameter, so the
+ * // developer can customize the instance.
+ * } );
+ */
+ CKEDITOR.replaceAll = function() {
+ var textareas = document.getElementsByTagName( 'textarea' );
+
+ for ( var i = 0; i < textareas.length; i++ ) {
+ var config = null,
+ textarea = textareas[ i ];
+
+ // The "name" and/or "id" attribute must exist.
+ if ( !textarea.name && !textarea.id )
+ continue;
+
+ if ( typeof arguments[ 0 ] == 'string' ) {
+ // The textarea class name could be passed as the function
+ // parameter.
+
+ var classRegex = new RegExp( '(?:^|\\s)' + arguments[ 0 ] + '(?:$|\\s)' );
+
+ if ( !classRegex.test( textarea.className ) )
+ continue;
+ } else if ( typeof arguments[ 0 ] == 'function' ) {
+ // An assertion function could be passed as the function parameter.
+ // It must explicitly return "false" to ignore a specific <textarea>.
+ config = {};
+ if ( arguments[ 0 ]( textarea, config ) === false )
+ continue;
+ }
+
+ this.replace( textarea, config );
+ }
+ };
+
+ /** @class CKEDITOR.editor */
+
+ /**
+ * Registers an editing mode. This function is to be used mainly by plugins.
+ *
+ * @param {String} mode The mode name.
+ * @param {Function} exec Function that perform the actual mode change.
+ */
+ CKEDITOR.editor.prototype.addMode = function( mode, exec ) {
+ ( this._.modes || ( this._.modes = {} ) )[ mode ] = exec;
+ };
+
+ /**
+ * Change the editing mode of this editor instance.
+ *
+ * **Note:** The mode switch could be asynchronous depending on the mode provider,
+ * use the `callback` to hook subsequent code.
+ *
+ * // Switch to "source" view.
+ * CKEDITOR.instances.editor1.setMode( 'source' );
+ * // Switch to "wysiwyg" and be noticed on completed.
+ * CKEDITOR.instances.editor1.setMode( 'wysiwyg', function() { alert( 'wysiwyg mode loaded!' ); } );
+ *
+ * @param {String} [newMode] If not specified the {@link CKEDITOR.config#startupMode} will be used.
+ * @param {Function} [callback] Optional callback function which invoked once the mode switch has succeeded.
+ */
+ CKEDITOR.editor.prototype.setMode = function( newMode, callback ) {
+ var editor = this;
+
+ var modes = this._.modes;
+
+ // Mode loading quickly fails.
+ if ( newMode == editor.mode || !modes || !modes[ newMode ] )
+ return;
+
+ editor.fire( 'beforeSetMode', newMode );
+
+ if ( editor.mode ) {
+ var isDirty = editor.checkDirty();
+
+ editor._.previousMode = editor.mode;
+
+ editor.fire( 'beforeModeUnload' );
+
+ // Detach the current editable.
+ editor.editable( 0 );
+
+ // Clear up the mode space.
+ editor.ui.space( 'contents' ).setHtml( '' );
+
+ editor.mode = '';
+ }
+
+ // Fire the mode handler.
+ this._.modes[ newMode ]( function() {
+ // Set the current mode.
+ editor.mode = newMode;
+
+ if ( isDirty !== undefined ) {
+ // The editor data "may be dirty" after this point.
+ editor.mayBeDirty = true;
+ !isDirty && editor.resetDirty();
+ }
+
+ // Delay to avoid race conditions (setMode inside setMode).
+ setTimeout( function() {
+ editor.fire( 'mode' );
+ callback && callback.call( editor );
+ }, 0);
+ });
+ };
+
+ /**
+ * Resizes the editor interface.
+ *
+ * editor.resize( 900, 300 );
+ *
+ * editor.resize( '100%', 450, true );
+ *
+ * @param {Number/String} width The new width. It can be an pixels integer or a
+ * CSS size value.
+ * @param {Number/String} height The new height. It can be an pixels integer or
+ * a CSS size value.
+ * @param {Boolean} [isContentHeight] Indicates that the provided height is to
+ * be applied to the editor contents space, not to the entire editor
+ * interface. Defaults to false.
+ * @param {Boolean} [resizeInner] Indicates that the first inner interface
+ * element must receive the size, not the outer element. The default theme
+ * defines the interface inside a pair of span elements
+ * (`<span><span>...</span></span>`). By default the
+ * first span element receives the sizes. If this parameter is set to
+ * true, the second span is sized instead.
+ */
+ CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, resizeInner ) {
+ var container = this.container,
+ contents = this.ui.space( 'contents' ),
+ contentsFrame = CKEDITOR.env.webkit && this.document && this.document.getWindow().$.frameElement,
+ outer = resizeInner ? container.getChild( 1 ) : container;
+
+ // Set as border box width. (#5353)
+ outer.setSize( 'width', width, true );
+
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (#8348)
+ contentsFrame && ( contentsFrame.style.width = '1%' );
+
+ // Get the height delta between the outer table and the content area.
+ // If we're setting the content area's height, then we don't need the delta.
+ var delta = isContentHeight ? 0 : ( outer.$.offsetHeight || 0 ) - ( contents.$.clientHeight || 0 );
+ contents.setStyle( 'height', Math.max( height - delta, 0 ) + 'px' );
+
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (#8348)
+ contentsFrame && ( contentsFrame.style.width = '100%' );
+
+ // Emit a resize event.
+ this.fire( 'resize' );
+ };
+
+ /**
+ * Gets the element that can be freely used to check the editor size. This method
+ * is mainly used by the resize plugin, which adds a UI handle that can be used
+ * to resize the editor.
+ *
+ * @param {Boolean} forContents Whether to return the "contents" part of the theme instead of the container.
+ * @returns {CKEDITOR.dom.element} The resizable element.
+ */
+ CKEDITOR.editor.prototype.getResizable = function( forContents ) {
+ return forContents ? this.ui.space( 'contents' ) : this.container;
+ };
+
+ function createInstance( element, config, data, mode ) {
+ if ( !CKEDITOR.env.isCompatible )
+ return null;
+
+ element = CKEDITOR.dom.element.get( element );
+
+ // Avoid multiple inline editor instances on the same element.
+ if ( element.getEditor() )
+ throw 'The editor instance "' + element.getEditor().name + '" is already attached to the provided element.';
+
+ // Create the editor instance.
+ var editor = new CKEDITOR.editor( config, element, mode );
+
+ // Do not replace the textarea right now, just hide it. The effective
+ // replacement will be done later in the editor creation lifecycle.
+ if ( mode == CKEDITOR.ELEMENT_MODE_REPLACE )
+ element.setStyle( 'visibility', 'hidden' );
+
+ data && editor.setData( data, null, true );
+
+ // Once the editor is loaded, start the UI.
+ editor.on( 'loaded', function() {
+ loadTheme( editor );
+
+ if ( mode == CKEDITOR.ELEMENT_MODE_REPLACE && editor.config.autoUpdateElement )
+ attachToForm( editor );
+
+ editor.setMode( editor.config.startupMode, function() {
+ // Editor is completely loaded for interaction.
+ editor.fireOnce( 'instanceReady' );
+ CKEDITOR.fire( 'instanceReady', null, editor );
+
+ // Clean on startup.
+ editor.resetDirty();
+ });
+ });
+
+ editor.on( 'destroy', destroy );
+ return editor;
+ }
+
+ function destroy() {
+ var editor = this,
+ container = editor.container,
+ element = editor.element;
+
+ if ( container ) {
+ container.clearCustomData();
+ container.remove();
+ }
+
+ if ( element ) {
+ element.clearCustomData();
+ editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.show();
+ delete editor.element;
+ }
+ }
+
+ var themedTpl;
+
+ function loadTheme( editor ) {
+ var name = editor.name,
+ element = editor.element,
+ elementMode = editor.elementMode;
+
+ // Get the HTML for the predefined spaces.
+ var topHtml = editor.fire( 'uiSpace', { space: 'top', html: '' } ).html;
+ var bottomHtml = editor.fireOnce( 'uiSpace', { space: 'bottom', html: '' } ).html;
+
+ if ( !themedTpl ) {
+ themedTpl = CKEDITOR.addTemplate( 'maincontainer', '<{outerEl}' +
+ ' id="cke_{name}"' +
+ ' class="{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} ' + CKEDITOR.env.cssClass + '" ' +
+ ' dir="{langDir}"' +
+ ' lang="{langCode}"' +
+ ' role="application"' +
+ ' aria-labelledby="cke_{name}_arialbl">' +
+ '<span id="cke_{name}_arialbl" class="cke_voice_label">{voiceLabel}</span>' +
+ '<{outerEl} class="cke_inner cke_reset" role="presentation">' +
+ '{topHtml}' +
+ '<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation"></{outerEl}>' +
+ '{bottomHtml}' +
+ '</{outerEl}>' +
+ '</{outerEl}>' );
+ }
+
+ var container = CKEDITOR.dom.element.createFromHtml( themedTpl.output({
+ id: editor.id,
+ name: name,
+ langDir: editor.lang.dir,
+ langCode: editor.langCode,
+ voiceLabel: editor.lang.editor,
+ topHtml: topHtml ? '<span id="' + editor.ui.spaceId( 'top' ) + '" class="cke_top cke_reset_all" role="presentation" style="height:auto">' + topHtml + '</span>' : '',
+ contentId: editor.ui.spaceId( 'contents' ),
+ bottomHtml: bottomHtml ? '<span id="' + editor.ui.spaceId( 'bottom' ) + '" class="cke_bottom cke_reset_all" role="presentation">' + bottomHtml + '</span>' : '',
+ outerEl: CKEDITOR.env.ie ? 'span' : 'div' // #9571
+ }));
+
+ if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) {
+ element.hide();
+ container.insertAfter( element );
+ } else
+ element.append( container );
+
+ editor.container = container;
+
+ // Make top and bottom spaces unelectable, but not content space,
+ // otherwise the editable area would be affected.
+ topHtml && editor.ui.space( 'top' ).unselectable();
+ bottomHtml && editor.ui.space( 'bottom' ).unselectable();
+
+ var width = editor.config.width, height = editor.config.height;
+ if ( width )
+ container.setStyle( 'width', CKEDITOR.tools.cssLength( width ) );
+
+ // The editor height is applied to the contents space.
+ if ( height )
+ editor.ui.space( 'contents' ).setStyle( 'height', CKEDITOR.tools.cssLength( height ) );
+
+ // Disable browser context menu for editor's chrome.
+ container.disableContextMenu();
+
+ // Redirect the focus into editor for webkit. (#5713)
+ CKEDITOR.env.webkit && container.on( 'focus', function() {
+ editor.focus();
+ });
+
+ editor.fireOnce( 'uiReady' );
+ }
+
+ function attachToForm( editor ) {
+ var element = editor.element;
+
+ // If are replacing a textarea, we must
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.is( 'textarea' ) ) {
+ var form = element.$.form && new CKEDITOR.dom.element( element.$.form );
+ if ( form ) {
+ function onSubmit() {
+ editor.updateElement();
+ }
+ form.on( 'submit', onSubmit );
+
+ // Setup the submit function because it doesn't fire the
+ // "submit" event.
+ if ( !form.$.submit.nodeName && !form.$.submit.length ) {
+ form.$.submit = CKEDITOR.tools.override( form.$.submit, function( originalSubmit ) {
+ return function() {
+ editor.updateElement();
+
+ // For IE, the DOM submit function is not a
+ // function, so we need third check.
+ if ( originalSubmit.apply )
+ originalSubmit.apply( this, arguments );
+ else
+ originalSubmit();
+ };
+ });
+ }
+
+ // Remove 'submit' events registered on form element before destroying.(#3988)
+ editor.on( 'destroy', function() {
+ form.removeListener( 'submit', onSubmit );
+ });
+ }
+ }
+ }
+
+ // Replace all textareas with the default class name.
+ CKEDITOR.domReady( function() {
+ CKEDITOR.replaceClass && CKEDITOR.replaceAll( CKEDITOR.replaceClass );
+ });
+})();
+
+/**
+ * The current editing mode. An editing mode basically provides
+ * different ways of editing or viewing the contents.
+ *
+ * alert( CKEDITOR.instances.editor1.mode ); // (e.g.) 'wysiwyg'
+ *
+ * @property {String} mode
+ */
+
+/**
+ * The mode to load at the editor startup. It depends on the plugins
+ * loaded. By default, the `wysiwyg` and `source` modes are available.
+ *
+ * config.startupMode = 'source';
+ *
+ * @cfg {String} [startupMode='wysiwyg']
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.startupMode = 'wysiwyg';
+
+/**
+ * Fired after the editor instance is resized through
+ * the {@link CKEDITOR.editor#method-resize} method.
+ *
+ * @event resize
+ */
+
+/**
+ * Event fired before changing the editing mode. See also
+ * {@link #beforeSetMode} and {@link #event-mode}.
+ *
+ * @event beforeModeUnload
+ */
+
+/**
+ * Event fired before the editor mode is set. See also
+ * {@link #event-mode} and {@link #beforeModeUnload}.
+ *
+ * @since 3.5.3
+ * @event beforeSetMode
+ * @param {String} data The name of the mode which is about to be set.
+ */
+
+/**
+ * Fired after setting the editing mode. See also {@link #beforeSetMode} and {@link #beforeModeUnload}
+ *
+ * @event mode
+ */
diff --git a/devel/third-party/ckeditor/core/dataprocessor.js b/devel/third-party/ckeditor/core/dataprocessor.js
index cb8fcba..e9f61b3 100644
--- a/devel/third-party/ckeditor/core/dataprocessor.js
+++ b/devel/third-party/ckeditor/core/dataprocessor.js
@@ -1,66 +1,70 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the "virtual" {@link CKEDITOR.dataProcessor} class, which
- * defines the basic structure of data processor objects to be
- * set to {@link CKEDITOR.editor.dataProcessor}.
- */
-
-/**
- * If defined, points to the data processor which is responsible to translate
- * and transform the editor data on input and output.
- * Generaly it will point to an instance of {@link CKEDITOR.htmlDataProcessor},
- * which handles HTML data. The editor may also handle other data formats by
- * using different data processors provided by specific plugins.
- * @name CKEDITOR.editor.dataProcessor
- * @type CKEDITOR.dataProcessor
- */
-
-/**
- * Represents a data processor, which is responsible to translate and transform
- * the editor data on input and output.
- * This class is not really part of the API. It's here for documentation
- * purposes, and serves as the base ("interface") for data processors
- * implementation.
- * @name CKEDITOR.dataProcessor
- * @contructor
- * @example
- */
-
-/**
- * Transforms input data into HTML to be loaded in the editor.
- * While the editor is able to handle non HTML data (like BBCode), at runtime
- * it can handle HTML data only. The role of the data processor is transforming
- * the input data into HTML through this function.
- * @name CKEDITOR.dataProcessor.prototype.toHtml
- * @function
- * @param {String} data The input data to be transformed.
- * @param {String} [fixForBody] The tag name to be used if the data must be
- * fixed because it is supposed to be loaded direcly into the <body>
- * tag. This is generally not used by non-HTML data processors.
- * @example
- * // Tranforming BBCode data, having a custom BBCode data processor.
- * var data = 'This is [b]an example[/b].';
- * var html = editor.dataProcessor.toHtml( data ); // '<p>This is <b>an example</b>.</p>'
- */
-
-/**
- * Transforms HTML into data to be outputted by the editor, in the format
- * expected by the data processor.
- * While the editor is able to handle non HTML data (like BBCode), at runtime
- * it can handle HTML data only. The role of the data processor is transforming
- * the HTML data containined by the editor into a specific data format through
- * this function.
- * @name CKEDITOR.dataProcessor.prototype.toDataFormat
- * @function
- * @param {String} html The HTML to be transformed.
- * @param {String} fixForBody The tag name to be used if the output data is
- * coming from <body> and may be eventually fixed for it. This is
- * generally not used by non-HTML data processors.
- * // Tranforming into BBCode data, having a custom BBCode data processor.
- * var html = '<p>This is <b>an example</b>.</p>';
- * var data = editor.dataProcessor.toDataFormat( html ); // 'This is [b]an example[/b].'
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.dataProcessor} class, which
+ * defines the basic structure of data processor objects to be
+ * set to {@link CKEDITOR.editor.dataProcessor}.
+ */
+
+/**
+ * If defined, points to the data processor which is responsible to translate
+ * and transform the editor data on input and output.
+ * Generaly it will point to an instance of {@link CKEDITOR.htmlDataProcessor},
+ * which handles HTML data. The editor may also handle other data formats by
+ * using different data processors provided by specific plugins.
+ *
+ * @property {CKEDITOR.dataProcessor} dataProcessor
+ * @member CKEDITOR.editor
+ */
+
+/**
+ * Represents a data processor, which is responsible to translate and
+ * transform the editor data on input and output.
+ *
+ * This class is here for documentation purposes only and is not really part of
+ * the API. It serves as the base ("interface") for data processors implementation.
+ *
+ * @class CKEDITOR.dataProcessor
+ * @abstract
+ */
+
+/**
+ * Transforms input data into HTML to be loaded in the editor.
+ * While the editor is able to handle non HTML data (like BBCode), at runtime
+ * it can handle HTML data only. The role of the data processor is transforming
+ * the input data into HTML through this function.
+ *
+ * // Tranforming BBCode data, having a custom BBCode data processor.
+ * var data = 'This is [b]an example[/b].';
+ * var html = editor.dataProcessor.toHtml( data ); // '<p>This is <b>an example</b>.</p>'
+ *
+ * @method toHtml
+ * @param {String} data The input data to be transformed.
+ * @param {String} [fixForBody] The tag name to be used if the data must be
+ * fixed because it is supposed to be loaded direcly into the `<body>`
+ * tag. This is generally not used by non-HTML data processors.
+ * @todo fixForBody type - compare to htmlDataProcessor.
+ */
+
+/**
+ * Transforms HTML into data to be outputted by the editor, in the format
+ * expected by the data processor.
+ *
+ * While the editor is able to handle non HTML data (like BBCode), at runtime
+ * it can handle HTML data only. The role of the data processor is transforming
+ * the HTML data containined by the editor into a specific data format through
+ * this function.
+ *
+ * // Tranforming into BBCode data, having a custom BBCode data processor.
+ * var html = '<p>This is <b>an example</b>.</p>';
+ * var data = editor.dataProcessor.toDataFormat( html ); // 'This is [b]an example[/b].'
+ *
+ * @method toDataFormat
+ * @param {String} html The HTML to be transformed.
+ * @param {String} fixForBody The tag name to be used if the output data is
+ * coming from `<body>` and may be eventually fixed for it. This is
+ * generally not used by non-HTML data processors.
+ */
diff --git a/devel/third-party/ckeditor/core/dom.js b/devel/third-party/ckeditor/core/dom.js
index e56f71f..89988e1 100644
--- a/devel/third-party/ckeditor/core/dom.js
+++ b/devel/third-party/ckeditor/core/dom.js
@@ -1,21 +1,13 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom} object, which contains DOM
- * manipulation objects and function.
- */
-
-/**
- * DOM manipulation objects and function.<br /><br />
- * @see CKEDITOR.dom.element
- * @see CKEDITOR.dom.node
- * @namespace
- * @example
- */
-CKEDITOR.dom =
-{};
-
-// PACKAGER_RENAME( CKEDITOR.dom )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom} object, which contains DOM
+ * manipulation objects and function.
+ */
+
+CKEDITOR.dom = {};
+
+// PACKAGER_RENAME( CKEDITOR.dom )
diff --git a/devel/third-party/ckeditor/core/dom/comment.js b/devel/third-party/ckeditor/core/dom/comment.js
index 3daf537..5408d18 100644
--- a/devel/third-party/ckeditor/core/dom/comment.js
+++ b/devel/third-party/ckeditor/core/dom/comment.js
@@ -1,32 +1,53 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.comment} class, which represents
- * a DOM comment node.
- */
-
-CKEDITOR.dom.comment = CKEDITOR.tools.createClass(
-{
- base : CKEDITOR.dom.node,
-
- $ : function( text, ownerDocument )
- {
- if ( typeof text == 'string' )
- text = ( ownerDocument ? ownerDocument.$ : document ).createComment( text );
-
- this.base( text );
- },
-
- proto :
- {
- type : CKEDITOR.NODE_COMMENT,
-
- getOuterHtml : function()
- {
- return '<!--' + this.$.nodeValue + '-->';
- }
- }
-});
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.comment} class, which represents
+ * a DOM comment node.
+ */
+
+/**
+ * Represents a DOM comment node.
+ *
+ * var nativeNode = document.createComment( 'Example' );
+ * var comment = new CKEDITOR.dom.comment( nativeNode );
+ *
+ * var comment = new CKEDITOR.dom.comment( 'Example' );
+ *
+ * @class
+ * @extends CKEDITOR.dom.node
+ * @constructor Creates a comment class instance.
+ * @param {Object/String} comment A native DOM comment node or a string containing
+ * the text to use to create a new comment node.
+ * @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
+ * the node in case of new node creation. Defaults to the current document.
+ */
+CKEDITOR.dom.comment = function( comment, ownerDocument ) {
+ if ( typeof comment == 'string' )
+ comment = ( ownerDocument ? ownerDocument.$ : document ).createComment( comment );
+
+ CKEDITOR.dom.domObject.call( this, comment );
+};
+
+CKEDITOR.dom.comment.prototype = new CKEDITOR.dom.node();
+
+CKEDITOR.tools.extend( CKEDITOR.dom.comment.prototype, {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_COMMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_COMMENT]
+ */
+ type: CKEDITOR.NODE_COMMENT,
+
+ /**
+ * Gets the outer HTML of this comment.
+ *
+ * @returns {String} The HTML `<!-- comment value -->`.
+ */
+ getOuterHtml: function() {
+ return '<!--' + this.$.nodeValue + '-->';
+ }
+});
diff --git a/devel/third-party/ckeditor/core/dom/document.js b/devel/third-party/ckeditor/core/dom/document.js
index bd8c18c..ec7e6d5 100644
--- a/devel/third-party/ckeditor/core/dom/document.js
+++ b/devel/third-party/ckeditor/core/dom/document.js
@@ -1,224 +1,269 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
- * represents a DOM document.
- */
-
-/**
- * Represents a DOM document.
- * @constructor
- * @augments CKEDITOR.dom.domObject
- * @param {Object} domDocument A native DOM document.
- * @example
- * var document = new CKEDITOR.dom.document( document );
- */
-CKEDITOR.dom.document = function( domDocument )
-{
- CKEDITOR.dom.domObject.call( this, domDocument );
-};
-
-// PACKAGER_RENAME( CKEDITOR.dom.document )
-
-CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject();
-
-CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype,
- /** @lends CKEDITOR.dom.document.prototype */
- {
- /**
- * Appends a CSS file to the document.
- * @param {String} cssFileUrl The CSS file URL.
- * @example
- * <b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )</b>;
- */
- appendStyleSheet : function( cssFileUrl )
- {
- if ( this.$.createStyleSheet )
- this.$.createStyleSheet( cssFileUrl );
- else
- {
- var link = new CKEDITOR.dom.element( 'link' );
- link.setAttributes(
- {
- rel :'stylesheet',
- type : 'text/css',
- href : cssFileUrl
- });
-
- this.getHead().append( link );
- }
- },
-
- appendStyleText : function( cssStyleText )
- {
- if ( this.$.createStyleSheet )
- {
- var styleSheet = this.$.createStyleSheet( "" );
- styleSheet.cssText = cssStyleText ;
- }
- else
- {
- var style = new CKEDITOR.dom.element( 'style', this );
- style.append( new CKEDITOR.dom.text( cssStyleText, this ) );
- this.getHead().append( style );
- }
- },
-
- createElement : function( name, attribsAndStyles )
- {
- var element = new CKEDITOR.dom.element( name, this );
-
- if ( attribsAndStyles )
- {
- if ( attribsAndStyles.attributes )
- element.setAttributes( attribsAndStyles.attributes );
-
- if ( attribsAndStyles.styles )
- element.setStyles( attribsAndStyles.styles );
- }
-
- return element;
- },
-
- createText : function( text )
- {
- return new CKEDITOR.dom.text( text, this );
- },
-
- focus : function()
- {
- this.getWindow().focus();
- },
-
- /**
- * Gets and element based on its id.
- * @param {String} elementId The element id.
- * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
- * @example
- * var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
- * alert( element.getId() ); // "myElement"
- */
- getById : function( elementId )
- {
- var $ = this.$.getElementById( elementId );
- return $ ? new CKEDITOR.dom.element( $ ) : null;
- },
-
- getByAddress : function( address, normalized )
- {
- var $ = this.$.documentElement;
-
- for ( var i = 0 ; $ && i < address.length ; i++ )
- {
- var target = address[ i ];
-
- if ( !normalized )
- {
- $ = $.childNodes[ target ];
- continue;
- }
-
- var currentIndex = -1;
-
- for (var j = 0 ; j < $.childNodes.length ; j++ )
- {
- var candidate = $.childNodes[ j ];
-
- if ( normalized === true &&
- candidate.nodeType == 3 &&
- candidate.previousSibling &&
- candidate.previousSibling.nodeType == 3 )
- {
- continue;
- }
-
- currentIndex++;
-
- if ( currentIndex == target )
- {
- $ = candidate;
- break;
- }
- }
- }
-
- return $ ? new CKEDITOR.dom.node( $ ) : null;
- },
-
- getElementsByTag : function( tagName, namespace )
- {
- if ( !CKEDITOR.env.ie && namespace )
- tagName = namespace + ':' + tagName;
- return new CKEDITOR.dom.nodeList( this.$.getElementsByTagName( tagName ) );
- },
-
- /**
- * Gets the <head> element for this document.
- * @returns {CKEDITOR.dom.element} The <head> element.
- * @example
- * var element = <b>CKEDITOR.document.getHead()</b>;
- * alert( element.getName() ); // "head"
- */
- getHead : function()
- {
- var head = this.$.getElementsByTagName( 'head' )[0];
- head = new CKEDITOR.dom.element( head );
-
- return (
- this.getHead = function()
- {
- return head;
- })();
- },
-
- /**
- * Gets the <body> element for this document.
- * @returns {CKEDITOR.dom.element} The <body> element.
- * @example
- * var element = <b>CKEDITOR.document.getBody()</b>;
- * alert( element.getName() ); // "body"
- */
- getBody : function()
- {
- var body = new CKEDITOR.dom.element( this.$.body );
-
- return (
- this.getBody = function()
- {
- return body;
- })();
- },
-
- /**
- * Gets the DOM document element for this document.
- * @returns {CKEDITOR.dom.element} The DOM document element.
- */
- getDocumentElement : function()
- {
- var documentElement = new CKEDITOR.dom.element( this.$.documentElement );
-
- return (
- this.getDocumentElement = function()
- {
- return documentElement;
- })();
- },
-
- /**
- * Gets the window object that holds this document.
- * @returns {CKEDITOR.dom.window} The window object.
- */
- getWindow : function()
- {
- var win = new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
-
- return (
- this.getWindow = function()
- {
- return win;
- })();
- }
- });
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
+ * represents a DOM document.
+ */
+
+/**
+ * Represents a DOM document.
+ *
+ * var document = new CKEDITOR.dom.document( document );
+ *
+ * @class
+ * @extends CKEDITOR.dom.domObject
+ * @constructor Creates a document class instance.
+ * @param {Object} domDocument A native DOM document.
+ */
+CKEDITOR.dom.document = function( domDocument ) {
+ CKEDITOR.dom.domObject.call( this, domDocument );
+};
+
+// PACKAGER_RENAME( CKEDITOR.dom.document )
+
+CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject();
+
+CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype, {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_DOCUMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_DOCUMENT]
+ */
+ type: CKEDITOR.NODE_DOCUMENT,
+
+ /**
+ * Appends a CSS file to the document.
+ *
+ * CKEDITOR.document.appendStyleSheet( '/mystyles.css' );
+ *
+ * @param {String} cssFileUrl The CSS file URL.
+ */
+ appendStyleSheet: function( cssFileUrl ) {
+ if ( this.$.createStyleSheet )
+ this.$.createStyleSheet( cssFileUrl );
+ else {
+ var link = new CKEDITOR.dom.element( 'link' );
+ link.setAttributes({
+ rel: 'stylesheet',
+ type: 'text/css',
+ href: cssFileUrl
+ });
+
+ this.getHead().append( link );
+ }
+ },
+
+ /**
+ * Creates a CSS style sheet and inserts it into the document.
+ *
+ * @param cssStyleText {String} CSS style text.
+ * @returns {Object} The created DOM native style sheet object.
+ */
+ appendStyleText: function( cssStyleText ) {
+ if ( this.$.createStyleSheet ) {
+ var styleSheet = this.$.createStyleSheet( "" );
+ styleSheet.cssText = cssStyleText;
+ } else {
+ var style = new CKEDITOR.dom.element( 'style', this );
+ style.append( new CKEDITOR.dom.text( cssStyleText, this ) );
+ this.getHead().append( style );
+ }
+
+ return styleSheet || style.$.sheet;
+ },
+
+ /**
+ * Creates {@link CKEDITOR.dom.element} instance in this document.
+ *
+ * @returns {CKEDITOR.dom.element}
+ * @todo
+ */
+ createElement: function( name, attribsAndStyles ) {
+ var element = new CKEDITOR.dom.element( name, this );
+
+ if ( attribsAndStyles ) {
+ if ( attribsAndStyles.attributes )
+ element.setAttributes( attribsAndStyles.attributes );
+
+ if ( attribsAndStyles.styles )
+ element.setStyles( attribsAndStyles.styles );
+ }
+
+ return element;
+ },
+
+ /**
+ * Creates {@link CKEDITOR.dom.text} instance in this document.
+ *
+ * @param {String} text Value of the text node.
+ * @returns {CKEDITOR.dom.element}
+ */
+ createText: function( text ) {
+ return new CKEDITOR.dom.text( text, this );
+ },
+
+ /**
+ * Moves the selection focus to this document's window.
+ */
+ focus: function() {
+ this.getWindow().focus();
+ },
+
+ /**
+ * Returns the element that is currently designated as the active element in the document.
+ *
+ * **Note:** Only one element can be active at a time in a document.
+ * An active element does not necessarily have focus,
+ * but an element with focus is always the active element in a document.
+ *
+ * @returns {CKEDITOR.dom.element}
+ */
+ getActive: function() {
+ return new CKEDITOR.dom.element( this.$.activeElement );
+ },
+
+ /**
+ * Gets an element based on its id.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * alert( element.getId() ); // 'myElement'
+ *
+ * @param {String} elementId The element id.
+ * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
+ */
+ getById: function( elementId ) {
+ var $ = this.$.getElementById( elementId );
+ return $ ? new CKEDITOR.dom.element( $ ) : null;
+ },
+
+ /**
+ * Gets a node based on its address. See {@link CKEDITOR.dom.node#getAddress}.
+ *
+ * @param {Array} address
+ * @param {Boolean} [normalized=false]
+ */
+ getByAddress: function( address, normalized ) {
+ var $ = this.$.documentElement;
+
+ for ( var i = 0; $ && i < address.length; i++ ) {
+ var target = address[ i ];
+
+ if ( !normalized ) {
+ $ = $.childNodes[ target ];
+ continue;
+ }
+
+ var currentIndex = -1;
+
+ for ( var j = 0; j < $.childNodes.length; j++ ) {
+ var candidate = $.childNodes[ j ];
+
+ if ( normalized === true && candidate.nodeType == 3 && candidate.previousSibling && candidate.previousSibling.nodeType == 3 ) {
+ continue;
+ }
+
+ currentIndex++;
+
+ if ( currentIndex == target ) {
+ $ = candidate;
+ break;
+ }
+ }
+ }
+
+ return $ ? new CKEDITOR.dom.node( $ ) : null;
+ },
+
+ /**
+ * Gets elements list based on given tag name.
+ *
+ * @param {String} tagName The element tag name.
+ * @returns {CKEDITOR.dom.nodeList} The nodes list.
+ */
+ getElementsByTag: function( tagName, namespace ) {
+ if ( !( CKEDITOR.env.ie && !( document.documentMode > 8 ) ) && namespace )
+ tagName = namespace + ':' + tagName;
+ return new CKEDITOR.dom.nodeList( this.$.getElementsByTagName( tagName ) );
+ },
+
+ /**
+ * Gets the `<head>` element for this document.
+ *
+ * var element = CKEDITOR.document.getHead();
+ * alert( element.getName() ); // 'head'
+ *
+ * @returns {CKEDITOR.dom.element} The `<head>` element.
+ */
+ getHead: function() {
+ var head = this.$.getElementsByTagName( 'head' )[ 0 ];
+ if ( !head )
+ head = this.getDocumentElement().append( new CKEDITOR.dom.element( 'head' ), true );
+ else
+ head = new CKEDITOR.dom.element( head );
+
+ return head;
+ },
+
+ /**
+ * Gets the `<body>` element for this document.
+ *
+ * var element = CKEDITOR.document.getBody();
+ * alert( element.getName() ); // 'body'
+ *
+ * @returns {CKEDITOR.dom.element} The `<body>` element.
+ */
+ getBody: function() {
+ return new CKEDITOR.dom.element( this.$.body );
+ },
+
+ /**
+ * Gets the DOM document element for this document.
+ *
+ * @returns {CKEDITOR.dom.element} The DOM document element.
+ */
+ getDocumentElement: function() {
+ return new CKEDITOR.dom.element( this.$.documentElement );
+ },
+
+ /**
+ * Gets the window object that holds this document.
+ *
+ * @returns {CKEDITOR.dom.window} The window object.
+ */
+ getWindow: function() {
+ var win = new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
+
+ return ( this.getWindow = function() {
+ return win;
+ })();
+ },
+
+ /**
+ * Defines the document contents through document.write. Note that the
+ * previous document contents will be lost (cleaned).
+ *
+ * document.write(
+ * '<html>' +
+ * '<head><title>Sample Doc</title></head>' +
+ * '<body>Document contents created by code</body>' +
+ * '</html>'
+ * );
+ *
+ * @since 3.5
+ * @param {String} html The HTML defining the document contents.
+ */
+ write: function( html ) {
+ // Don't leave any history log in IE. (#5657)
+ this.$.open( 'text/html', 'replace' );
+
+ // Support for custom document.domain in IE.
+ CKEDITOR.env.isCustomDomain() && ( this.$.domain = document.domain );
+
+ this.$.write( html );
+ this.$.close();
+ }
+});
diff --git a/devel/third-party/ckeditor/core/dom/documentfragment.js b/devel/third-party/ckeditor/core/dom/documentfragment.js
index f075562..966b00b 100644
--- a/devel/third-party/ckeditor/core/dom/documentfragment.js
+++ b/devel/third-party/ckeditor/core/dom/documentfragment.js
@@ -1,49 +1,45 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-/**
- * DocumentFragment is a "lightweight" or "minimal" Document object. It is
- * commonly used to extract a portion of a document's tree or to create a new
- * fragment of a document. Various operations may take DocumentFragment objects
- * as arguments and results in all the child nodes of the DocumentFragment being
- * moved to the child list of this node.
- *
- * @param {Object} ownerDocument
- */
-CKEDITOR.dom.documentFragment = function( ownerDocument )
-{
- ownerDocument = ownerDocument || CKEDITOR.document;
- this.$ = ownerDocument.$.createDocumentFragment();
-};
-
-CKEDITOR.tools.extend( CKEDITOR.dom.documentFragment.prototype,
- CKEDITOR.dom.element.prototype,
- {
- type : CKEDITOR.NODE_DOCUMENT_FRAGMENT,
- insertAfterNode : function( node )
- {
- node = node.$;
- node.parentNode.insertBefore( this.$, node.nextSibling );
- }
- },
- true,
- {
- 'append' : 1,
- 'appendBogus' : 1,
- 'getFirst' : 1,
- 'getLast' : 1,
- 'appendTo' : 1,
- 'moveChildren' : 1,
- 'insertBefore' : 1,
- 'insertAfterNode' : 1,
- 'replace' : 1,
- 'trim' : 1,
- 'type' : 1,
- 'ltrim' : 1,
- 'rtrim' : 1,
- 'getDocument' : 1,
- 'getChildCount' : 1,
- 'getChild' : 1,
- 'getChildren' : 1
- } );
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * DocumentFragment is a "lightweight" or "minimal" Document object. It is
+ * commonly used to extract a portion of a document's tree or to create a new
+ * fragment of a document. Various operations may take DocumentFragment objects
+ * as arguments and results in all the child nodes of the DocumentFragment being
+ * moved to the child list of this node.
+ *
+ * @class
+ * @constructor Creates a document fragment class instance.
+ * @param {Object} nodeOrDoc
+ * @todo example and param doc
+ */
+CKEDITOR.dom.documentFragment = function( nodeOrDoc ) {
+ nodeOrDoc = nodeOrDoc || CKEDITOR.document;
+
+ if ( nodeOrDoc.type == CKEDITOR.NODE_DOCUMENT )
+ this.$ = nodeOrDoc.$.createDocumentFragment();
+ else
+ this.$ = nodeOrDoc;
+};
+
+CKEDITOR.tools.extend( CKEDITOR.dom.documentFragment.prototype, CKEDITOR.dom.element.prototype, {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_DOCUMENT_FRAGMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_DOCUMENT_FRAGMENT]
+ */
+ type: CKEDITOR.NODE_DOCUMENT_FRAGMENT,
+
+ /**
+ * Inserts document fragment's contents after specified node.
+ *
+ * @param {CKEDITOR.dom.node} node
+ */
+ insertAfterNode: function( node ) {
+ node = node.$;
+ node.parentNode.insertBefore( this.$, node.nextSibling );
+ }
+}, true, { 'append':1,'appendBogus':1,'getFirst':1,'getLast':1,'getParent':1,'getNext':1,'getPrevious':1,'appendTo':1,'moveChildren':1,'insertBefore':1,'insertAfterNode':1,'replace':1,'trim':1,'type':1,'ltrim':1,'rtrim':1,'getDocument':1,'getChildCount':1,'getChild':1,'getChildren':1 } );
diff --git a/devel/third-party/ckeditor/core/dom/domobject.js b/devel/third-party/ckeditor/core/dom/domobject.js
index f10db99..f58d45f 100644
--- a/devel/third-party/ckeditor/core/dom/domobject.js
+++ b/devel/third-party/ckeditor/core/dom/domobject.js
@@ -1,251 +1,258 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.editor} class, which is the base
- * for other classes representing DOM objects.
- */
-
-/**
- * Represents a DOM object. This class is not intended to be used directly. It
- * serves as the base class for other classes representing specific DOM
- * objects.
- * @constructor
- * @param {Object} nativeDomObject A native DOM object.
- * @augments CKEDITOR.event
- * @example
- */
-CKEDITOR.dom.domObject = function( nativeDomObject )
-{
- if ( nativeDomObject )
- {
- /**
- * The native DOM object represented by this class instance.
- * @type Object
- * @example
- * var element = new CKEDITOR.dom.element( 'span' );
- * alert( element.$.nodeType ); // "1"
- */
- this.$ = nativeDomObject;
- }
-};
-
-CKEDITOR.dom.domObject.prototype = (function()
-{
- // Do not define other local variables here. We want to keep the native
- // listener closures as clean as possible.
-
- var getNativeListener = function( domObject, eventName )
- {
- return function( domEvent )
- {
- // In FF, when reloading the page with the editor focused, it may
- // throw an error because the CKEDITOR global is not anymore
- // available. So, we check it here first. (#2923)
- if ( typeof CKEDITOR != 'undefined' )
- domObject.fire( eventName, new CKEDITOR.dom.event( domEvent ) );
- };
- };
-
- return /** @lends CKEDITOR.dom.domObject.prototype */ {
-
- getPrivate : function()
- {
- var priv;
-
- // Get the main private function from the custom data. Create it if not
- // defined.
- if ( !( priv = this.getCustomData( '_' ) ) )
- this.setCustomData( '_', ( priv = {} ) );
-
- return priv;
- },
-
- /** @ignore */
- on : function( eventName )
- {
- // We customize the "on" function here. The basic idea is that we'll have
- // only one listener for a native event, which will then call all listeners
- // set to the event.
-
- // Get the listeners holder object.
- var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
-
- if ( !nativeListeners )
- {
- nativeListeners = {};
- this.setCustomData( '_cke_nativeListeners', nativeListeners );
- }
-
- // Check if we have a listener for that event.
- if ( !nativeListeners[ eventName ] )
- {
- var listener = nativeListeners[ eventName ] = getNativeListener( this, eventName );
-
- if ( this.$.addEventListener )
- this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture );
- else if ( this.$.attachEvent )
- this.$.attachEvent( 'on' + eventName, listener );
- }
-
- // Call the original implementation.
- return CKEDITOR.event.prototype.on.apply( this, arguments );
- },
-
- /** @ignore */
- removeListener : function( eventName )
- {
- // Call the original implementation.
- CKEDITOR.event.prototype.removeListener.apply( this, arguments );
-
- // If we don't have listeners for this event, clean the DOM up.
- if ( !this.hasListeners( eventName ) )
- {
- var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
- var listener = nativeListeners && nativeListeners[ eventName ];
- if ( listener )
- {
- if ( this.$.removeEventListener )
- this.$.removeEventListener( eventName, listener, false );
- else if ( this.$.detachEvent )
- this.$.detachEvent( 'on' + eventName, listener );
-
- delete nativeListeners[ eventName ];
- }
- }
- },
-
- /**
- * Removes any listener set on this object.
- * To avoid memory leaks we must assure that there are no
- * references left after the object is no longer needed.
- */
- removeAllListeners : function()
- {
- var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
- for ( var eventName in nativeListeners )
- {
- var listener = nativeListeners[ eventName ];
- if ( this.$.removeEventListener )
- this.$.removeEventListener( eventName, listener, false );
- else if ( this.$.detachEvent )
- this.$.detachEvent( 'on' + eventName, listener );
-
- delete nativeListeners[ eventName ];
- }
- }
- };
-})();
-
-(function( domObjectProto )
-{
- var customData = {};
-
- CKEDITOR.on( 'reset', function()
- {
- customData = {};
- });
-
- /**
- * Determines whether the specified object is equal to the current object.
- * @name CKEDITOR.dom.domObject.prototype.equals
- * @function
- * @param {Object} object The object to compare with the current object.
- * @returns {Boolean} "true" if the object is equal.
- * @example
- * var doc = new CKEDITOR.dom.document( document );
- * alert( doc.equals( CKEDITOR.document ) ); // "true"
- * alert( doc == CKEDITOR.document ); // "false"
- */
- domObjectProto.equals = function( object )
- {
- return ( object && object.$ === this.$ );
- };
-
- /**
- * Sets a data slot value for this object. These values are shared by all
- * instances pointing to that same DOM object.
- * @name CKEDITOR.dom.domObject.prototype.setCustomData
- * @function
- * @param {String} key A key used to identify the data slot.
- * @param {Object} value The value to set to the data slot.
- * @returns {CKEDITOR.dom.domObject} This DOM object instance.
- * @see CKEDITOR.dom.domObject.prototype.getCustomData
- * @example
- * var element = new CKEDITOR.dom.element( 'span' );
- * element.setCustomData( 'hasCustomData', true );
- */
- domObjectProto.setCustomData = function( key, value )
- {
- var expandoNumber = this.getUniqueId(),
- dataSlot = customData[ expandoNumber ] || ( customData[ expandoNumber ] = {} );
-
- dataSlot[ key ] = value;
-
- return this;
- };
-
- /**
- * Gets the value set to a data slot in this object.
- * @name CKEDITOR.dom.domObject.prototype.getCustomData
- * @function
- * @param {String} key The key used to identify the data slot.
- * @returns {Object} This value set to the data slot.
- * @see CKEDITOR.dom.domObject.prototype.setCustomData
- * @example
- * var element = new CKEDITOR.dom.element( 'span' );
- * alert( element.getCustomData( 'hasCustomData' ) ); // e.g. 'true'
- */
- domObjectProto.getCustomData = function( key )
- {
- var expandoNumber = this.$._cke_expando,
- dataSlot = expandoNumber && customData[ expandoNumber ];
-
- return dataSlot && dataSlot[ key ];
- };
-
- /**
- * @name CKEDITOR.dom.domObject.prototype.removeCustomData
- */
- domObjectProto.removeCustomData = function( key )
- {
- var expandoNumber = this.$._cke_expando,
- dataSlot = expandoNumber && customData[ expandoNumber ],
- retval = dataSlot && dataSlot[ key ];
-
- if ( typeof retval != 'undefined' )
- delete dataSlot[ key ];
-
- return retval || null;
- };
-
- /**
- * Removes any data stored on this object.
- * To avoid memory leaks we must assure that there are no
- * references left after the object is no longer needed.
- * @name CKEDITOR.dom.domObject.prototype.clearCustomData
- * @function
- */
- domObjectProto.clearCustomData = function()
- {
- // Clear all event listeners
- this.removeAllListeners();
-
- var expandoNumber = this.$._cke_expando;
- expandoNumber && delete customData[ expandoNumber ];
- };
-
- /**
- * @name CKEDITOR.dom.domObject.prototype.getCustomData
- */
- domObjectProto.getUniqueId = function()
- {
- return this.$._cke_expando || ( this.$._cke_expando = CKEDITOR.tools.getNextNumber() );
- };
-
- // Implement CKEDITOR.event.
- CKEDITOR.event.implementOn( domObjectProto );
-
-})( CKEDITOR.dom.domObject.prototype );
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.editor} class, which is the base
+ * for other classes representing DOM objects.
+ */
+
+/**
+ * Represents a DOM object. This class is not intended to be used directly. It
+ * serves as the base class for other classes representing specific DOM
+ * objects.
+ *
+ * @class
+ * @mixins CKEDITOR.event
+ * @constructor Creates a domObject class instance.
+ * @param {Object} nativeDomObject A native DOM object.
+ */
+CKEDITOR.dom.domObject = function( nativeDomObject ) {
+ if ( nativeDomObject ) {
+ /**
+ * The native DOM object represented by this class instance.
+ *
+ * var element = new CKEDITOR.dom.element( 'span' );
+ * alert( element.$.nodeType ); // '1'
+ *
+ * @readonly
+ * @property {Object}
+ */
+ this.$ = nativeDomObject;
+ }
+};
+
+CKEDITOR.dom.domObject.prototype = (function() {
+ // Do not define other local variables here. We want to keep the native
+ // listener closures as clean as possible.
+
+ var getNativeListener = function( domObject, eventName ) {
+ return function( domEvent ) {
+ // In FF, when reloading the page with the editor focused, it may
+ // throw an error because the CKEDITOR global is not anymore
+ // available. So, we check it here first. (#2923)
+ if ( typeof CKEDITOR != 'undefined' )
+ domObject.fire( eventName, new CKEDITOR.dom.event( domEvent ) );
+ };
+ };
+
+ return {
+
+ /**
+ * Get the private `_` object which is bound to the native
+ * DOM object using {@link #getCustomData}.
+ *
+ * var elementA = new CKEDITOR.dom.element( nativeElement );
+ * elementA.getPrivate().value = 1;
+ * ...
+ * var elementB = new CKEDITOR.dom.element( nativeElement );
+ * elementB.getPrivate().value; // 1
+ *
+ * @returns {Object} The private object.
+ */
+ getPrivate: function() {
+ var priv;
+
+ // Get the main private object from the custom data. Create it if not defined.
+ if ( !( priv = this.getCustomData( '_' ) ) )
+ this.setCustomData( '_', ( priv = {} ) );
+
+ return priv;
+ },
+
+ // Docs inherited from event.
+ on: function( eventName ) {
+ // We customize the "on" function here. The basic idea is that we'll have
+ // only one listener for a native event, which will then call all listeners
+ // set to the event.
+
+ // Get the listeners holder object.
+ var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
+
+ if ( !nativeListeners ) {
+ nativeListeners = {};
+ this.setCustomData( '_cke_nativeListeners', nativeListeners );
+ }
+
+ // Check if we have a listener for that event.
+ if ( !nativeListeners[ eventName ] ) {
+ var listener = nativeListeners[ eventName ] = getNativeListener( this, eventName );
+
+ if ( this.$.addEventListener )
+ this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture );
+ else if ( this.$.attachEvent )
+ this.$.attachEvent( 'on' + eventName, listener );
+ }
+
+ // Call the original implementation.
+ return CKEDITOR.event.prototype.on.apply( this, arguments );
+ },
+
+ // Docs inherited from event.
+ removeListener: function( eventName ) {
+ // Call the original implementation.
+ CKEDITOR.event.prototype.removeListener.apply( this, arguments );
+
+ // If we don't have listeners for this event, clean the DOM up.
+ if ( !this.hasListeners( eventName ) ) {
+ var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
+ var listener = nativeListeners && nativeListeners[ eventName ];
+ if ( listener ) {
+ if ( this.$.removeEventListener )
+ this.$.removeEventListener( eventName, listener, false );
+ else if ( this.$.detachEvent )
+ this.$.detachEvent( 'on' + eventName, listener );
+
+ delete nativeListeners[ eventName ];
+ }
+ }
+ },
+
+ /**
+ * Removes any listener set on this object.
+ *
+ * To avoid memory leaks we must assure that there are no
+ * references left after the object is no longer needed.
+ */
+ removeAllListeners: function() {
+ var nativeListeners = this.getCustomData( '_cke_nativeListeners' );
+ for ( var eventName in nativeListeners ) {
+ var listener = nativeListeners[ eventName ];
+ if ( this.$.detachEvent )
+ this.$.detachEvent( 'on' + eventName, listener );
+ else if ( this.$.removeEventListener )
+ this.$.removeEventListener( eventName, listener, false );
+
+ delete nativeListeners[ eventName ];
+ }
+ }
+ };
+})();
+
+(function( domObjectProto ) {
+ var customData = {};
+
+ CKEDITOR.on( 'reset', function() {
+ customData = {};
+ });
+
+ /**
+ * Determines whether the specified object is equal to the current object.
+ *
+ * var doc = new CKEDITOR.dom.document( document );
+ * alert( doc.equals( CKEDITOR.document ) ); // true
+ * alert( doc == CKEDITOR.document ); // false
+ *
+ * @param {Object} object The object to compare with the current object.
+ * @returns {Boolean} `true` if the object is equal.
+ */
+ domObjectProto.equals = function( object ) {
+ // Try/Catch to avoid IE permission error when object is from different document.
+ try {
+ return ( object && object.$ === this.$ );
+ } catch ( er ) {
+ return false;
+ }
+ };
+
+ /**
+ * Sets a data slot value for this object. These values are shared by all
+ * instances pointing to that same DOM object.
+ *
+ * **Note:** The created data slot is only guarantied to be available on this unique dom node,
+ * thus any wish to continue access it from other element clones (either created by
+ * clone node or from `innerHtml`) will fail, for such usage, please use
+ * {@link CKEDITOR.dom.element#setAttribute} instead.
+ *
+ * var element = new CKEDITOR.dom.element( 'span' );
+ * element.setCustomData( 'hasCustomData', true );
+ *
+ * @param {String} key A key used to identify the data slot.
+ * @param {Object} value The value to set to the data slot.
+ * @returns {CKEDITOR.dom.domObject} This DOM object instance.
+ * @chainable
+ */
+ domObjectProto.setCustomData = function( key, value ) {
+ var expandoNumber = this.getUniqueId(),
+ dataSlot = customData[ expandoNumber ] || ( customData[ expandoNumber ] = {} );
+
+ dataSlot[ key ] = value;
+
+ return this;
+ };
+
+ /**
+ * Gets the value set to a data slot in this object.
+ *
+ * var element = new CKEDITOR.dom.element( 'span' );
+ * alert( element.getCustomData( 'hasCustomData' ) ); // e.g. 'true'
+ * alert( element.getCustomData( 'nonExistingKey' ) ); // null
+ *
+ * @param {String} key The key used to identify the data slot.
+ * @returns {Object} This value set to the data slot.
+ */
+ domObjectProto.getCustomData = function( key ) {
+ var expandoNumber = this.$[ 'data-cke-expando' ],
+ dataSlot = expandoNumber && customData[ expandoNumber ];
+
+ return ( dataSlot && key in dataSlot ) ? dataSlot[ key ] : null;
+ };
+
+ /**
+ * Removes the value in data slot under given `key`.
+ *
+ * @param {String} key
+ * @returns {Object} Removed value or `null` if not found.
+ */
+ domObjectProto.removeCustomData = function( key ) {
+ var expandoNumber = this.$[ 'data-cke-expando' ],
+ dataSlot = expandoNumber && customData[ expandoNumber ],
+ retval, hadKey;
+
+ if ( dataSlot ) {
+ retval = dataSlot[ key ];
+ hadKey = key in dataSlot;
+ delete dataSlot[ key ];
+ }
+
+ return hadKey ? retval : null;
+ };
+
+ /**
+ * Removes any data stored on this object.
+ * To avoid memory leaks we must assure that there are no
+ * references left after the object is no longer needed.
+ */
+ domObjectProto.clearCustomData = function() {
+ // Clear all event listeners
+ this.removeAllListeners();
+
+ var expandoNumber = this.$[ 'data-cke-expando' ];
+ expandoNumber && delete customData[ expandoNumber ];
+ };
+
+ /**
+ * Gets an ID that can be used to identiquely identify this DOM object in
+ * the running session.
+ *
+ * @returns {Number} A unique ID.
+ */
+ domObjectProto.getUniqueId = function() {
+ return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() );
+ };
+
+ // Implement CKEDITOR.event.
+ CKEDITOR.event.implementOn( domObjectProto );
+
+})( CKEDITOR.dom.domObject.prototype );
diff --git a/devel/third-party/ckeditor/core/dom/element.js b/devel/third-party/ckeditor/core/dom/element.js
index 77031f0..1000572 100644
--- a/devel/third-party/ckeditor/core/dom/element.js
+++ b/devel/third-party/ckeditor/core/dom/element.js
@@ -1,1556 +1,1869 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.element} class, which
- * represents a DOM element.
- */
-
-/**
- * Represents a DOM element.
- * @constructor
- * @augments CKEDITOR.dom.node
- * @param {Object|String} element A native DOM element or the element name for
- * new elements.
- * @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
- * the element in case of element creation.
- * @example
- * // Create a new <span> element.
- * var element = new CKEDITOR.dom.element( 'span' );
- * @example
- * // Create an element based on a native DOM element.
- * var element = new CKEDITOR.dom.element( document.getElementById( 'myId' ) );
- */
-CKEDITOR.dom.element = function( element, ownerDocument )
-{
- if ( typeof element == 'string' )
- element = ( ownerDocument ? ownerDocument.$ : document ).createElement( element );
-
- // Call the base constructor (we must not call CKEDITOR.dom.node).
- CKEDITOR.dom.domObject.call( this, element );
-};
-
-// PACKAGER_RENAME( CKEDITOR.dom.element )
-
-/**
- * The the {@link CKEDITOR.dom.element} representing and element. If the
- * element is a native DOM element, it will be transformed into a valid
- * CKEDITOR.dom.element object.
- * @returns {CKEDITOR.dom.element} The transformed element.
- * @example
- * var element = new CKEDITOR.dom.element( 'span' );
- * alert( element == <b>CKEDITOR.dom.element.get( element )</b> ); "true"
- * @example
- * var element = document.getElementById( 'myElement' );
- * alert( <b>CKEDITOR.dom.element.get( element )</b>.getName() ); e.g. "p"
- */
-CKEDITOR.dom.element.get = function( element )
-{
- return element && ( element.$ ? element : new CKEDITOR.dom.element( element ) );
-};
-
-CKEDITOR.dom.element.prototype = new CKEDITOR.dom.node();
-
-/**
- * Creates an instance of the {@link CKEDITOR.dom.element} class based on the
- * HTML representation of an element.
- * @param {String} html The element HTML. It should define only one element in
- * the "root" level. The "root" element can have child nodes, but not
- * siblings.
- * @returns {CKEDITOR.dom.element} The element instance.
- * @example
- * var element = <b>CKEDITOR.dom.element.createFromHtml( '<strong class="anyclass">My element</strong>' )</b>;
- * alert( element.getName() ); // "strong"
- */
-CKEDITOR.dom.element.createFromHtml = function( html, ownerDocument )
-{
- var temp = new CKEDITOR.dom.element( 'div', ownerDocument );
- temp.setHtml( html );
-
- // When returning the node, remove it from its parent to detach it.
- return temp.getFirst().remove();
-};
-
-CKEDITOR.dom.element.setMarker = function( database, element, name, value )
-{
- var id = element.getCustomData( 'list_marker_id' ) ||
- ( element.setCustomData( 'list_marker_id', CKEDITOR.tools.getNextNumber() ).getCustomData( 'list_marker_id' ) ),
- markerNames = element.getCustomData( 'list_marker_names' ) ||
- ( element.setCustomData( 'list_marker_names', {} ).getCustomData( 'list_marker_names' ) );
- database[id] = element;
- markerNames[name] = 1;
-
- return element.setCustomData( name, value );
-};
-
-CKEDITOR.dom.element.clearAllMarkers = function( database )
-{
- for ( var i in database )
- CKEDITOR.dom.element.clearMarkers( database, database[i], true );
-};
-
-CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatabase )
-{
- var names = element.getCustomData( 'list_marker_names' ),
- id = element.getCustomData( 'list_marker_id' );
- for ( var i in names )
- element.removeCustomData( i );
- element.removeCustomData( 'list_marker_names' );
- if ( removeFromDatabase )
- {
- element.removeCustomData( 'list_marker_id' );
- delete database[id];
- }
-};
-
-CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype,
- /** @lends CKEDITOR.dom.element.prototype */
- {
- /**
- * The node type. This is a constant value set to
- * {@link CKEDITOR.NODE_ELEMENT}.
- * @type Number
- * @example
- */
- type : CKEDITOR.NODE_ELEMENT,
-
- /**
- * Adds a CSS class to the element. It appends the class to the
- * already existing names.
- * @param {String} className The name of the class to be added.
- * @example
- * var element = new CKEDITOR.dom.element( 'div' );
- * element.addClass( 'classA' ); // <div class="classA">
- * element.addClass( 'classB' ); // <div class="classA classB">
- * element.addClass( 'classA' ); // <div class="classA classB">
- */
- addClass : function( className )
- {
- var c = this.$.className;
- if ( c )
- {
- var regex = new RegExp( '(?:^|\\s)' + className + '(?:\\s|$)', '' );
- if ( !regex.test( c ) )
- c += ' ' + className;
- }
- this.$.className = c || className;
- },
-
- /**
- * Removes a CSS class name from the elements classes. Other classes
- * remain untouched.
- * @param {String} className The name of the class to remove.
- * @example
- * var element = new CKEDITOR.dom.element( 'div' );
- * element.addClass( 'classA' ); // <div class="classA">
- * element.addClass( 'classB' ); // <div class="classA classB">
- * element.removeClass( 'classA' ); // <div class="classB">
- * element.removeClass( 'classB' ); // <div>
- */
- removeClass : function( className )
- {
- var c = this.getAttribute( 'class' );
- if ( c )
- {
- var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', 'i' );
- if ( regex.test( c ) )
- {
- c = c.replace( regex, '' ).replace( /^\s+/, '' );
-
- if ( c )
- this.setAttribute( 'class', c );
- else
- this.removeAttribute( 'class' );
- }
- }
- },
-
- hasClass : function( className )
- {
- var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', '' );
- return regex.test( this.getAttribute('class') );
- },
-
- /**
- * Append a node as a child of this element.
- * @param {CKEDITOR.dom.node|String} node The node or element name to be
- * appended.
- * @param {Boolean} [toStart] Indicates that the element is to be
- * appended at the start.
- * @returns {CKEDITOR.dom.node} The appended node.
- * @example
- * var p = new CKEDITOR.dom.element( 'p' );
- *
- * var strong = new CKEDITOR.dom.element( 'strong' );
- * <b>p.append( strong );</b>
- *
- * var em = <b>p.append( 'em' );</b>
- *
- * // result: "<p><strong></strong><em></em></p>"
- */
- append : function( node, toStart )
- {
- if ( typeof node == 'string' )
- node = this.getDocument().createElement( node );
-
- if ( toStart )
- this.$.insertBefore( node.$, this.$.firstChild );
- else
- this.$.appendChild( node.$ );
-
- return node;
- },
-
- appendHtml : function( html )
- {
- if ( !this.$.childNodes.length )
- this.setHtml( html );
- else
- {
- var temp = new CKEDITOR.dom.element( 'div', this.getDocument() );
- temp.setHtml( html );
- temp.moveChildren( this );
- }
- },
-
- /**
- * Append text to this element.
- * @param {String} text The text to be appended.
- * @returns {CKEDITOR.dom.node} The appended node.
- * @example
- * var p = new CKEDITOR.dom.element( 'p' );
- * p.appendText( 'This is' );
- * p.appendText( ' some text' );
- *
- * // result: "<p>This is some text</p>"
- */
- appendText : function( text )
- {
- if ( this.$.text != undefined )
- this.$.text += text;
- else
- this.append( new CKEDITOR.dom.text( text ) );
- },
-
- appendBogus : function()
- {
- var lastChild = this.getLast() ;
-
- // Ignore empty/spaces text.
- while ( lastChild && lastChild.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.rtrim( lastChild.getText() ) )
- lastChild = lastChild.getPrevious();
- if ( !lastChild || !lastChild.is || !lastChild.is( 'br' ) )
- {
- var bogus = CKEDITOR.env.opera ?
- this.getDocument().createText('') :
- this.getDocument().createElement( 'br' );
-
- CKEDITOR.env.gecko && bogus.setAttribute( 'type', '_moz' );
-
- this.append( bogus );
- }
- },
-
- /**
- * Breaks one of the ancestor element in the element position, moving
- * this element between the broken parts.
- * @param {CKEDITOR.dom.element} parent The anscestor element to get broken.
- * @example
- * // Before breaking:
- * // <b>This <i>is some<span /> sample</i> test text</b>
- * // If "element" is <span /> and "parent" is <i>:
- * // <b>This <i>is some</i><span /><i> sample</i> test text</b>
- * element.breakParent( parent );
- * @example
- * // Before breaking:
- * // <b>This <i>is some<span /> sample</i> test text</b>
- * // If "element" is <span /> and "parent" is <b>:
- * // <b>This <i>is some</i></b><span /><b><i> sample</i> test text</b>
- * element.breakParent( parent );
- */
- breakParent : function( parent )
- {
- var range = new CKEDITOR.dom.range( this.getDocument() );
-
- // We'll be extracting part of this element, so let's use our
- // range to get the correct piece.
- range.setStartAfter( this );
- range.setEndAfter( parent );
-
- // Extract it.
- var docFrag = range.extractContents();
-
- // Move the element outside the broken element.
- range.insertNode( this.remove() );
-
- // Re-insert the extracted piece after the element.
- docFrag.insertAfterNode( this );
- },
-
- contains :
- CKEDITOR.env.ie || CKEDITOR.env.webkit ?
- function( node )
- {
- var $ = this.$;
-
- return node.type != CKEDITOR.NODE_ELEMENT ?
- $.contains( node.getParent().$ ) :
- $ != node.$ && $.contains( node.$ );
- }
- :
- function( node )
- {
- return !!( this.$.compareDocumentPosition( node.$ ) & 16 );
- },
-
- /**
- * Moves the selection focus to this element.
- * @example
- * var element = CKEDITOR.document.getById( 'myTextarea' );
- * <b>element.focus()</b>;
- */
- focus : function()
- {
- // IE throws error if the element is not visible.
- try
- {
- this.$.focus();
- }
- catch (e)
- {}
- },
-
- /**
- * Gets the inner HTML of this element.
- * @returns {String} The inner HTML of this element.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b></div>' );
- * alert( <b>p.getHtml()</b> ); // "<b>Example</b>"
- */
- getHtml : function()
- {
- var retval = this.$.innerHTML;
- // Strip <?xml:namespace> tags in IE. (#3341).
- return CKEDITOR.env.ie ? retval.replace( /<\?[^>]*>/g, '' ) : retval;
- },
-
- getOuterHtml : function()
- {
- if ( this.$.outerHTML )
- {
- // IE includes the <?xml:namespace> tag in the outerHTML of
- // namespaced element. So, we must strip it here. (#3341)
- return this.$.outerHTML.replace( /<\?[^>]*>/, '' );
- }
-
- var tmpDiv = this.$.ownerDocument.createElement( 'div' );
- tmpDiv.appendChild( this.$.cloneNode( true ) );
- return tmpDiv.innerHTML;
- },
-
- /**
- * Sets the inner HTML of this element.
- * @param {String} html The HTML to be set for this element.
- * @returns {String} The inserted HTML.
- * @example
- * var p = new CKEDITOR.dom.element( 'p' );
- * <b>p.setHtml( '<b>Inner</b> HTML' );</b>
- *
- * // result: "<p><b>Inner</b> HTML</p>"
- */
- setHtml : function( html )
- {
- return ( this.$.innerHTML = html );
- },
-
- /**
- * Sets the element contents as plain text.
- * @param {String} text The text to be set.
- * @returns {String} The inserted text.
- * @example
- * var element = new CKEDITOR.dom.element( 'div' );
- * element.setText( 'A > B & C < D' );
- * alert( element.innerHTML ); // "A > B & C < D"
- */
- setText : function( text )
- {
- CKEDITOR.dom.element.prototype.setText = ( this.$.innerText != undefined ) ?
- function ( text )
- {
- return this.$.innerText = text;
- } :
- function ( text )
- {
- return this.$.textContent = text;
- };
-
- return this.setText( text );
- },
-
- /**
- * Gets the value of an element attribute.
- * @function
- * @param {String} name The attribute name.
- * @returns {String} The attribute value or null if not defined.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<input type="text" />' );
- * alert( <b>element.getAttribute( 'type' )</b> ); // "text"
- */
- getAttribute : (function()
- {
- var standard = function( name )
- {
- return this.$.getAttribute( name, 2 );
- };
-
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
- {
- return function( name )
- {
- switch ( name )
- {
- case 'class':
- name = 'className';
- break;
-
- case 'tabindex':
- var tabIndex = standard.call( this, name );
-
- // IE returns tabIndex=0 by default for all
- // elements. For those elements,
- // getAtrribute( 'tabindex', 2 ) returns 32768
- // instead. So, we must make this check to give a
- // uniform result among all browsers.
- if ( tabIndex !== 0 && this.$.tabIndex === 0 )
- tabIndex = null;
-
- return tabIndex;
- break;
-
- case 'checked':
- {
- var attr = this.$.attributes.getNamedItem( name ),
- attrValue = attr.specified ? attr.nodeValue // For value given by parser.
- : this.$.checked; // For value created via DOM interface.
-
- return attrValue ? 'checked' : null;
- }
-
- case 'hspace':
- return this.$.hspace;
-
- case 'style':
- // IE does not return inline styles via getAttribute(). See #2947.
- return this.$.style.cssText;
- }
-
- return standard.call( this, name );
- };
- }
- else
- return standard;
- })(),
-
- getChildren : function()
- {
- return new CKEDITOR.dom.nodeList( this.$.childNodes );
- },
-
- /**
- * Gets the current computed value of one of the element CSS style
- * properties.
- * @function
- * @param {String} propertyName The style property name.
- * @returns {String} The property value.
- * @example
- * var element = new CKEDITOR.dom.element( 'span' );
- * alert( <b>element.getComputedStyle( 'display' )</b> ); // "inline"
- */
- getComputedStyle :
- CKEDITOR.env.ie ?
- function( propertyName )
- {
- return this.$.currentStyle[ CKEDITOR.tools.cssStyleToDomStyle( propertyName ) ];
- }
- :
- function( propertyName )
- {
- return this.getWindow().$.getComputedStyle( this.$, '' ).getPropertyValue( propertyName );
- },
-
- /**
- * Gets the DTD entries for this element.
- * @returns {Object} An object containing the list of elements accepted
- * by this element.
- */
- getDtd : function()
- {
- var dtd = CKEDITOR.dtd[ this.getName() ];
-
- this.getDtd = function()
- {
- return dtd;
- };
-
- return dtd;
- },
-
- getElementsByTag : CKEDITOR.dom.document.prototype.getElementsByTag,
-
- /**
- * Gets the computed tabindex for this element.
- * @function
- * @returns {Number} The tabindex value.
- * @example
- * var element = CKEDITOR.document.getById( 'myDiv' );
- * alert( <b>element.getTabIndex()</b> ); // e.g. "-1"
- */
- getTabIndex :
- CKEDITOR.env.ie ?
- function()
- {
- var tabIndex = this.$.tabIndex;
-
- // IE returns tabIndex=0 by default for all elements. In
- // those cases we must check that the element really has
- // the tabindex attribute set to zero, or it is one of
- // those element that should have zero by default.
- if ( tabIndex === 0 && !CKEDITOR.dtd.$tabIndex[ this.getName() ] && parseInt( this.getAttribute( 'tabindex' ), 10 ) !== 0 )
- tabIndex = -1;
-
- return tabIndex;
- }
- : CKEDITOR.env.webkit ?
- function()
- {
- var tabIndex = this.$.tabIndex;
-
- // Safari returns "undefined" for elements that should not
- // have tabindex (like a div). So, we must try to get it
- // from the attribute.
- // https://bugs.webkit.org/show_bug.cgi?id=20596
- if ( tabIndex == undefined )
- {
- tabIndex = parseInt( this.getAttribute( 'tabindex' ), 10 );
-
- // If the element don't have the tabindex attribute,
- // then we should return -1.
- if ( isNaN( tabIndex ) )
- tabIndex = -1;
- }
-
- return tabIndex;
- }
- :
- function()
- {
- return this.$.tabIndex;
- },
-
- /**
- * Gets the text value of this element.
- *
- * Only in IE (which uses innerText), <br> will cause linebreaks,
- * and sucessive whitespaces (including line breaks) will be reduced to
- * a single space. This behavior is ok for us, for now. It may change
- * in the future.
- * @returns {String} The text value.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div>Same <i>text</i>.</div>' );
- * alert( <b>element.getText()</b> ); // "Sample text."
- */
- getText : function()
- {
- return this.$.textContent || this.$.innerText || '';
- },
-
- /**
- * Gets the window object that contains this element.
- * @returns {CKEDITOR.dom.window} The window object.
- * @example
- */
- getWindow : function()
- {
- return this.getDocument().getWindow();
- },
-
- /**
- * Gets the value of the "id" attribute of this element.
- * @returns {String} The element id, or null if not available.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<p id="myId"></p>' );
- * alert( <b>element.getId()</b> ); // "myId"
- */
- getId : function()
- {
- return this.$.id || null;
- },
-
- /**
- * Gets the value of the "name" attribute of this element.
- * @returns {String} The element name, or null if not available.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<input name="myName"></input>' );
- * alert( <b>element.getNameAtt()</b> ); // "myName"
- */
- getNameAtt : function()
- {
- return this.$.name || null;
- },
-
- /**
- * Gets the element name (tag name). The returned name is guaranteed to
- * be always full lowercased.
- * @returns {String} The element name.
- * @example
- * var element = new CKEDITOR.dom.element( 'span' );
- * alert( <b>element.getName()</b> ); // "span"
- */
- getName : function()
- {
- // Cache the lowercased name inside a closure.
- var nodeName = this.$.nodeName.toLowerCase();
-
- if ( CKEDITOR.env.ie )
- {
- var scopeName = this.$.scopeName;
- if ( scopeName != 'HTML' )
- nodeName = scopeName.toLowerCase() + ':' + nodeName;
- }
-
- return (
- this.getName = function()
- {
- return nodeName;
- })();
- },
-
- /**
- * Gets the value set to this element. This value is usually available
- * for form field elements.
- * @returns {String} The element value.
- */
- getValue : function()
- {
- return this.$.value;
- },
-
- /**
- * Gets the first child node of this element.
- * @param {Function} evaluator Filtering the result node.
- * @returns {CKEDITOR.dom.node} The first child node or null if not
- * available.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b></div>' );
- * var first = <b>element.getFirst()</b>;
- * alert( first.getName() ); // "b"
- */
- getFirst : function( evaluator )
- {
- var first = this.$.firstChild,
- retval = first && new CKEDITOR.dom.node( first );
- if ( retval && evaluator && !evaluator( retval ) )
- retval = retval.getNext( evaluator );
-
- return retval;
- },
-
- /**
- * @param {Function} evaluator Filtering the result node.
- */
- getLast : function( evaluator )
- {
- var last = this.$.lastChild,
- retval = last && new CKEDITOR.dom.node( last );
- if ( retval && evaluator && !evaluator( retval ) )
- retval = retval.getPrevious( evaluator );
-
- return retval;
- },
-
- getStyle : function( name )
- {
- return this.$.style[ CKEDITOR.tools.cssStyleToDomStyle( name ) ];
- },
-
- /**
- * Checks if the element name matches one or more names.
- * @param {String} name[,name[,...]] One or more names to be checked.
- * @returns {Boolean} true if the element name matches any of the names.
- * @example
- * var element = new CKEDITOR.element( 'span' );
- * alert( <b>element.is( 'span' )</b> ); "true"
- * alert( <b>element.is( 'p', 'span' )</b> ); "true"
- * alert( <b>element.is( 'p' )</b> ); "false"
- * alert( <b>element.is( 'p', 'div' )</b> ); "false"
- */
- is : function()
- {
- var name = this.getName();
- for ( var i = 0 ; i < arguments.length ; i++ )
- {
- if ( arguments[ i ] == name )
- return true;
- }
- return false;
- },
-
- isEditable : function()
- {
- // Get the element name.
- var name = this.getName();
-
- // Get the element DTD (defaults to span for unknown elements).
- var dtd = !CKEDITOR.dtd.$nonEditable[ name ]
- && ( CKEDITOR.dtd[ name ] || CKEDITOR.dtd.span );
-
- // In the DTD # == text node.
- return ( dtd && dtd['#'] );
- },
-
- isIdentical : function( otherElement )
- {
- if ( this.getName() != otherElement.getName() )
- return false;
-
- var thisAttribs = this.$.attributes,
- otherAttribs = otherElement.$.attributes;
-
- var thisLength = thisAttribs.length,
- otherLength = otherAttribs.length;
-
- if ( !CKEDITOR.env.ie && thisLength != otherLength )
- return false;
-
- for ( var i = 0 ; i < thisLength ; i++ )
- {
- var attribute = thisAttribs[ i ];
-
- if ( ( !CKEDITOR.env.ie || ( attribute.specified && attribute.nodeName != '_cke_expando' ) ) && attribute.nodeValue != otherElement.getAttribute( attribute.nodeName ) )
- return false;
- }
-
- // For IE, we have to for both elements, because it's difficult to
- // know how the atttibutes collection is organized in its DOM.
- if ( CKEDITOR.env.ie )
- {
- for ( i = 0 ; i < otherLength ; i++ )
- {
- attribute = otherAttribs[ i ];
- if ( attribute.specified && attribute.nodeName != '_cke_expando'
- && attribute.nodeValue != this.getAttribute( attribute.nodeName ) )
- return false;
- }
- }
-
- return true;
- },
-
- /**
- * Checks if this element is visible. May not work if the element is
- * child of an element with visibility set to "hidden", but works well
- * on the great majority of cases.
- * @return {Boolean} True if the element is visible.
- */
- isVisible : function()
- {
- var isVisible = !!this.$.offsetHeight && this.getComputedStyle( 'visibility' ) != 'hidden',
- elementWindow,
- elementWindowFrame;
-
- // Webkit and Opera report non-zero offsetHeight despite that
- // element is inside an invisible iframe. (#4542)
- if ( isVisible && ( CKEDITOR.env.webkit || CKEDITOR.env.opera ) )
- {
- elementWindow = this.getWindow();
-
- if ( !elementWindow.equals( CKEDITOR.document.getWindow() )
- && ( elementWindowFrame = elementWindow.$.frameElement ) )
- {
- isVisible = new CKEDITOR.dom.element( elementWindowFrame ).isVisible();
- }
- }
-
- return isVisible;
- },
-
- /**
- * Whether it's an empty inline elements which has no visual impact when removed.
- */
- isEmptyInlineRemoveable : function()
- {
- if ( !CKEDITOR.dtd.$removeEmpty[ this.getName() ] )
- return false;
-
- var children = this.getChildren();
- for ( var i = 0, count = children.count(); i < count; i++ )
- {
- var child = children.getItem( i );
-
- if ( child.type == CKEDITOR.NODE_ELEMENT && child.getAttribute( '_cke_bookmark' ) )
- continue;
-
- if ( child.type == CKEDITOR.NODE_ELEMENT && !child.isEmptyInlineRemoveable()
- || child.type == CKEDITOR.NODE_TEXT && CKEDITOR.tools.trim( child.getText() ) )
- {
- return false;
- }
- }
- return true;
- },
-
- /**
- * Indicates that the element has defined attributes.
- * @returns {Boolean} True if the element has attributes.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div title="Test">Example</div>' );
- * alert( <b>element.hasAttributes()</b> ); "true"
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div>Example</div>' );
- * alert( <b>element.hasAttributes()</b> ); "false"
- */
- hasAttributes :
- CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) ?
- function()
- {
- var attributes = this.$.attributes;
-
- for ( var i = 0 ; i < attributes.length ; i++ )
- {
- var attribute = attributes[i];
-
- switch ( attribute.nodeName )
- {
- case 'class' :
- // IE has a strange bug. If calling removeAttribute('className'),
- // the attributes collection will still contain the "class"
- // attribute, which will be marked as "specified", even if the
- // outerHTML of the element is not displaying the class attribute.
- // Note : I was not able to reproduce it outside the editor,
- // but I've faced it while working on the TC of #1391.
- if ( this.getAttribute( 'class' ) )
- return true;
-
- // Attributes to be ignored.
- case '_cke_expando' :
- continue;
-
- /*jsl:fallthru*/
-
- default :
- if ( attribute.specified )
- return true;
- }
- }
-
- return false;
- }
- :
- function()
- {
- var attrs = this.$.attributes,
- attrsNum = attrs.length;
-
- // The _moz_dirty attribute might get into the element after pasting (#5455)
- var execludeAttrs = { _cke_expando : 1, _moz_dirty : 1 };
-
- return attrsNum > 0 &&
- ( attrsNum > 2 ||
- !execludeAttrs[ attrs[0].nodeName ] ||
- ( attrsNum == 2 && !execludeAttrs[ attrs[1].nodeName ] ) );
- },
-
- /**
- * Indicates whether a specified attribute is defined for this element.
- * @returns {Boolean} True if the specified attribute is defined.
- * @param (String) name The attribute name.
- * @example
- */
- hasAttribute : function( name )
- {
- var $attr = this.$.attributes.getNamedItem( name );
- return !!( $attr && $attr.specified );
- },
-
- /**
- * Hides this element (display:none).
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.hide()</b>;
- */
- hide : function()
- {
- this.setStyle( 'display', 'none' );
- },
-
- moveChildren : function( target, toStart )
- {
- var $ = this.$;
- target = target.$;
-
- if ( $ == target )
- return;
-
- var child;
-
- if ( toStart )
- {
- while ( ( child = $.lastChild ) )
- target.insertBefore( $.removeChild( child ), target.firstChild );
- }
- else
- {
- while ( ( child = $.firstChild ) )
- target.appendChild( $.removeChild( child ) );
- }
- },
-
- mergeSiblings : ( function()
- {
- function mergeElements( element, sibling, isNext )
- {
- if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT )
- {
- // Jumping over bookmark nodes and empty inline elements, e.g. <b><i></i></b>,
- // queuing them to be moved later. (#5567)
- var pendingNodes = [];
-
- while ( sibling.getAttribute( '_cke_bookmark' )
- || sibling.isEmptyInlineRemoveable() )
- {
- pendingNodes.push( sibling );
- sibling = isNext ? sibling.getNext() : sibling.getPrevious();
- if ( !sibling || sibling.type != CKEDITOR.NODE_ELEMENT )
- return;
- }
-
- if ( element.isIdentical( sibling ) )
- {
- // Save the last child to be checked too, to merge things like
- // <b><i></i></b><b><i></i></b> => <b><i></i></b>
- var innerSibling = isNext ? element.getLast() : element.getFirst();
-
- // Move pending nodes first into the target element.
- while( pendingNodes.length )
- pendingNodes.shift().move( element, !isNext );
-
- sibling.moveChildren( element, !isNext );
- sibling.remove();
-
- // Now check the last inner child (see two comments above).
- if ( innerSibling && innerSibling.type == CKEDITOR.NODE_ELEMENT )
- innerSibling.mergeSiblings();
- }
- }
- }
-
- return function()
- {
- // Merge empty links and anchors also. (#5567)
- if ( !( CKEDITOR.dtd.$removeEmpty[ this.getName() ] || this.is( 'a' ) ) )
- return;
-
- mergeElements( this, this.getNext(), true );
- mergeElements( this, this.getPrevious() );
- };
- } )(),
-
- /**
- * Shows this element (display it).
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.show()</b>;
- */
- show : function()
- {
- this.setStyles(
- {
- display : '',
- visibility : ''
- });
- },
-
- /**
- * Sets the value of an element attribute.
- * @param {String} name The name of the attribute.
- * @param {String} value The value to be set to the attribute.
- * @function
- * @returns {CKEDITOR.dom.element} This element instance.
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.setAttribute( 'class', 'myClass' )</b>;
- * <b>element.setAttribute( 'title', 'This is an example' )</b>;
- */
- setAttribute : (function()
- {
- var standard = function( name, value )
- {
- this.$.setAttribute( name, value );
- return this;
- };
-
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
- {
- return function( name, value )
- {
- if ( name == 'class' )
- this.$.className = value;
- else if ( name == 'style' )
- this.$.style.cssText = value;
- else if ( name == 'tabindex' ) // Case sensitive.
- this.$.tabIndex = value;
- else if ( name == 'checked' )
- this.$.checked = value;
- else
- standard.apply( this, arguments );
- return this;
- };
- }
- else
- return standard;
- })(),
-
- /**
- * Sets the value of several element attributes.
- * @param {Object} attributesPairs An object containing the names and
- * values of the attributes.
- * @returns {CKEDITOR.dom.element} This element instance.
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.setAttributes({
- * 'class' : 'myClass',
- * 'title' : 'This is an example' })</b>;
- */
- setAttributes : function( attributesPairs )
- {
- for ( var name in attributesPairs )
- this.setAttribute( name, attributesPairs[ name ] );
- return this;
- },
-
- /**
- * Sets the element value. This function is usually used with form
- * field element.
- * @param {String} value The element value.
- * @returns {CKEDITOR.dom.element} This element instance.
- */
- setValue : function( value )
- {
- this.$.value = value;
- return this;
- },
-
- /**
- * Removes an attribute from the element.
- * @param {String} name The attribute name.
- * @function
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA"></div>' );
- * element.removeAttribute( 'class' );
- */
- removeAttribute : (function()
- {
- var standard = function( name )
- {
- this.$.removeAttribute( name );
- };
-
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
- {
- return function( name )
- {
- if ( name == 'class' )
- name = 'className';
- else if ( name == 'tabindex' )
- name = 'tabIndex';
- standard.call( this, name );
- };
- }
- else
- return standard;
- })(),
-
- removeAttributes : function ( attributes )
- {
- if ( CKEDITOR.tools.isArray( attributes ) )
- {
- for ( var i = 0 ; i < attributes.length ; i++ )
- this.removeAttribute( attributes[ i ] );
- }
- else
- {
- for ( var attr in attributes )
- attributes.hasOwnProperty( attr ) && this.removeAttribute( attr );
- }
- },
-
- /**
- * Removes a style from the element.
- * @param {String} name The style name.
- * @function
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div style="display:none"></div>' );
- * element.removeStyle( 'display' );
- */
- removeStyle : function( name )
- {
- this.setStyle( name, '' );
- if ( this.$.style.removeAttribute )
- this.$.style.removeAttribute( CKEDITOR.tools.cssStyleToDomStyle( name ) );
-
- if ( !this.$.style.cssText )
- this.removeAttribute( 'style' );
- },
-
- /**
- * Sets the value of an element style.
- * @param {String} name The name of the style. The CSS naming notation
- * must be used (e.g. "background-color").
- * @param {String} value The value to be set to the style.
- * @returns {CKEDITOR.dom.element} This element instance.
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.setStyle( 'background-color', '#ff0000' )</b>;
- * <b>element.setStyle( 'margin-top', '10px' )</b>;
- * <b>element.setStyle( 'float', 'right' )</b>;
- */
- setStyle : function( name, value )
- {
- this.$.style[ CKEDITOR.tools.cssStyleToDomStyle( name ) ] = value;
- return this;
- },
-
- /**
- * Sets the value of several element styles.
- * @param {Object} stylesPairs An object containing the names and
- * values of the styles.
- * @returns {CKEDITOR.dom.element} This element instance.
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.setStyles({
- * 'position' : 'absolute',
- * 'float' : 'right' })</b>;
- */
- setStyles : function( stylesPairs )
- {
- for ( var name in stylesPairs )
- this.setStyle( name, stylesPairs[ name ] );
- return this;
- },
-
- /**
- * Sets the opacity of an element.
- * @param {Number} opacity A number within the range [0.0, 1.0].
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * <b>element.setOpacity( 0.75 )</b>;
- */
- setOpacity : function( opacity )
- {
- if ( CKEDITOR.env.ie )
- {
- opacity = Math.round( opacity * 100 );
- this.setStyle( 'filter', opacity >= 100 ? '' : 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ')' );
- }
- else
- this.setStyle( 'opacity', opacity );
- },
-
- /**
- * Makes the element and its children unselectable.
- * @function
- * @example
- * var element = CKEDITOR.dom.element.getById( 'myElement' );
- * element.unselectable();
- */
- unselectable :
- CKEDITOR.env.gecko ?
- function()
- {
- this.$.style.MozUserSelect = 'none';
- this.on( 'dragstart', function (evt) { evt.data.preventDefault(); } );
- }
- : CKEDITOR.env.webkit ?
- function()
- {
- this.$.style.KhtmlUserSelect = 'none';
- this.on( 'dragstart', function (evt) { evt.data.preventDefault(); } );
- }
- :
- function()
- {
- if ( CKEDITOR.env.ie || CKEDITOR.env.opera )
- {
- var element = this.$,
- e,
- i = 0;
-
- element.unselectable = 'on';
-
- while ( ( e = element.all[ i++ ] ) )
- {
- switch ( e.tagName.toLowerCase() )
- {
- case 'iframe' :
- case 'textarea' :
- case 'input' :
- case 'select' :
- /* Ignore the above tags */
- break;
- default :
- e.unselectable = 'on';
- }
- }
- }
- },
-
- getPositionedAncestor : function()
- {
- var current = this;
- while ( current.getName() != 'html' )
- {
- if ( current.getComputedStyle( 'position' ) != 'static' )
- return current;
-
- current = current.getParent();
- }
- return null;
- },
-
- getDocumentPosition : function( refDocument )
- {
- var x = 0, y = 0,
- body = this.getDocument().getBody(),
- quirks = this.getDocument().$.compatMode == 'BackCompat';
-
- var doc = this.getDocument();
-
- if ( document.documentElement[ "getBoundingClientRect" ] )
- {
- var box = this.$.getBoundingClientRect(),
- $doc = doc.$,
- $docElem = $doc.documentElement;
-
- var clientTop = $docElem.clientTop || body.$.clientTop || 0,
- clientLeft = $docElem.clientLeft || body.$.clientLeft || 0,
- needAdjustScrollAndBorders = true;
-
- /*
- * #3804: getBoundingClientRect() works differently on IE and non-IE
- * browsers, regarding scroll positions.
- *
- * On IE, the top position of the <html> element is always 0, no matter
- * how much you scrolled down.
- *
- * On other browsers, the top position of the <html> element is negative
- * scrollTop.
- */
- if ( CKEDITOR.env.ie )
- {
- var inDocElem = doc.getDocumentElement().contains( this ),
- inBody = doc.getBody().contains( this );
-
- needAdjustScrollAndBorders = ( quirks && inBody ) || ( !quirks && inDocElem );
- }
-
- if ( needAdjustScrollAndBorders )
- {
- x = box.left + ( !quirks && $docElem.scrollLeft || body.$.scrollLeft );
- x -= clientLeft;
- y = box.top + ( !quirks && $docElem.scrollTop || body.$.scrollTop );
- y -= clientTop;
- }
- }
- else
- {
- var current = this, previous = null, offsetParent;
- while ( current && !( current.getName() == 'body' || current.getName() == 'html' ) )
- {
- x += current.$.offsetLeft - current.$.scrollLeft;
- y += current.$.offsetTop - current.$.scrollTop;
-
- // Opera includes clientTop|Left into offsetTop|Left.
- if ( !current.equals( this ) )
- {
- x += ( current.$.clientLeft || 0 );
- y += ( current.$.clientTop || 0 );
- }
-
- var scrollElement = previous;
- while ( scrollElement && !scrollElement.equals( current ) )
- {
- x -= scrollElement.$.scrollLeft;
- y -= scrollElement.$.scrollTop;
- scrollElement = scrollElement.getParent();
- }
-
- previous = current;
- current = ( offsetParent = current.$.offsetParent ) ?
- new CKEDITOR.dom.element( offsetParent ) : null;
- }
- }
-
- if ( refDocument )
- {
- var currentWindow = this.getWindow(),
- refWindow = refDocument.getWindow();
-
- if ( !currentWindow.equals( refWindow ) && currentWindow.$.frameElement )
- {
- var iframePosition = ( new CKEDITOR.dom.element( currentWindow.$.frameElement ) ).getDocumentPosition( refDocument );
-
- x += iframePosition.x;
- y += iframePosition.y;
- }
- }
-
- if ( !document.documentElement[ "getBoundingClientRect" ] )
- {
- // In Firefox, we'll endup one pixel before the element positions,
- // so we must add it here.
- if ( CKEDITOR.env.gecko && !quirks )
- {
- x += this.$.clientLeft ? 1 : 0;
- y += this.$.clientTop ? 1 : 0;
- }
- }
-
- return { x : x, y : y };
- },
-
- scrollIntoView : function( alignTop )
- {
- // Get the element window.
- var win = this.getWindow(),
- winHeight = win.getViewPaneSize().height;
-
- // Starts from the offset that will be scrolled with the negative value of
- // the visible window height.
- var offset = winHeight * -1;
-
- // Append the view pane's height if align to top.
- // Append element height if we are aligning to the bottom.
- if ( alignTop )
- offset += winHeight;
- else
- {
- offset += this.$.offsetHeight || 0;
-
- // Consider the margin in the scroll, which is ok for our current needs, but
- // needs investigation if we will be using this function in other places.
- offset += parseInt( this.getComputedStyle( 'marginBottom' ) || 0, 10 ) || 0;
- }
-
- // Append the offsets for the entire element hierarchy.
- var elementPosition = this.getDocumentPosition();
- offset += elementPosition.y;
-
- // offset value might be out of range(nagative), fix it(#3692).
- offset = offset < 0 ? 0 : offset;
-
- // Scroll the window to the desired position, if not already visible(#3795).
- var currentScroll = win.getScrollPosition().y;
- if ( offset > currentScroll || offset < currentScroll - winHeight )
- win.$.scrollTo( 0, offset );
- },
-
- setState : function( state )
- {
- switch ( state )
- {
- case CKEDITOR.TRISTATE_ON :
- this.addClass( 'cke_on' );
- this.removeClass( 'cke_off' );
- this.removeClass( 'cke_disabled' );
- break;
- case CKEDITOR.TRISTATE_DISABLED :
- this.addClass( 'cke_disabled' );
- this.removeClass( 'cke_off' );
- this.removeClass( 'cke_on' );
- break;
- default :
- this.addClass( 'cke_off' );
- this.removeClass( 'cke_on' );
- this.removeClass( 'cke_disabled' );
- break;
- }
- },
-
- /**
- * Returns the inner document of this IFRAME element.
- * @returns {CKEDITOR.dom.document} The inner document.
- */
- getFrameDocument : function()
- {
- var $ = this.$;
-
- try
- {
- // In IE, with custom document.domain, it may happen that
- // the iframe is not yet available, resulting in "Access
- // Denied" for the following property access.
- $.contentWindow.document;
- }
- catch ( e )
- {
- // Trick to solve this issue, forcing the iframe to get ready
- // by simply setting its "src" property.
- $.src = $.src;
-
- // In IE6 though, the above is not enough, so we must pause the
- // execution for a while, giving it time to think.
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )
- {
- window.showModalDialog(
- 'javascript:document.write("' +
- '<script>' +
- 'window.setTimeout(' +
- 'function(){window.close();}' +
- ',50);' +
- '</script>")' );
- }
- }
-
- return $ && new CKEDITOR.dom.document( $.contentWindow.document );
- },
-
- /**
- * Copy all the attributes from one node to the other, kinda like a clone
- * skipAttributes is an object with the attributes that must NOT be copied.
- * @param {CKEDITOR.dom.element} dest The destination element.
- * @param {Object} skipAttributes A dictionary of attributes to skip.
- * @example
- */
- copyAttributes : function( dest, skipAttributes )
- {
- var attributes = this.$.attributes;
- skipAttributes = skipAttributes || {};
-
- for ( var n = 0 ; n < attributes.length ; n++ )
- {
- var attribute = attributes[n];
-
- // Lowercase attribute name hard rule is broken for
- // some attribute on IE, e.g. CHECKED.
- var attrName = attribute.nodeName.toLowerCase(),
- attrValue;
-
- // We can set the type only once, so do it with the proper value, not copying it.
- if ( attrName in skipAttributes )
- continue;
-
- if ( attrName == 'checked' && ( attrValue = this.getAttribute( attrName ) ) )
- dest.setAttribute( attrName, attrValue );
- // IE BUG: value attribute is never specified even if it exists.
- else if ( attribute.specified ||
- ( CKEDITOR.env.ie && attribute.nodeValue && attrName == 'value' ) )
- {
- attrValue = this.getAttribute( attrName );
- if ( attrValue === null )
- attrValue = attribute.nodeValue;
-
- dest.setAttribute( attrName, attrValue );
- }
- }
-
- // The style:
- if ( this.$.style.cssText !== '' )
- dest.$.style.cssText = this.$.style.cssText;
- },
-
- /**
- * Changes the tag name of the current element.
- * @param {String} newTag The new tag for the element.
- */
- renameNode : function( newTag )
- {
- // If it's already correct exit here.
- if ( this.getName() == newTag )
- return;
-
- var doc = this.getDocument();
-
- // Create the new node.
- var newNode = new CKEDITOR.dom.element( newTag, doc );
-
- // Copy all attributes.
- this.copyAttributes( newNode );
-
- // Move children to the new node.
- this.moveChildren( newNode );
-
- // Replace the node.
- this.getParent() && this.$.parentNode.replaceChild( newNode.$, this.$ );
- newNode.$._cke_expando = this.$._cke_expando;
- this.$ = newNode.$;
- },
-
- /**
- * Gets a DOM tree descendant under the current node.
- * @param {Array|Number} indices The child index or array of child indices under the node.
- * @returns {CKEDITOR.dom.node} The specified DOM child under the current node. Null if child does not exist.
- * @example
- * var strong = p.getChild(0);
- */
- getChild : function( indices )
- {
- var rawNode = this.$;
-
- if ( !indices.slice )
- rawNode = rawNode.childNodes[ indices ];
- else
- {
- while ( indices.length > 0 && rawNode )
- rawNode = rawNode.childNodes[ indices.shift() ];
- }
-
- return rawNode ? new CKEDITOR.dom.node( rawNode ) : null;
- },
-
- getChildCount : function()
- {
- return this.$.childNodes.length;
- },
-
- disableContextMenu : function()
- {
- this.on( 'contextmenu', function( event )
- {
- // Cancel the browser context menu.
- if ( !event.data.getTarget().hasClass( 'cke_enable_context_menu' ) )
- event.data.preventDefault();
- } );
- },
-
- /**
- * Update the element's size with box model awareness.
- * @name CKEDITOR.dom.element.setSize
- * @param {String} type [width|height]
- * @param {Number} size The length unit in px.
- * @param isBorderBox Apply the {@param width} and {@param height} based on border box model.
- */
- setSize : ( function()
- {
- var sides = {
- width : [ "border-left-width", "border-right-width","padding-left", "padding-right" ],
- height : [ "border-top-width", "border-bottom-width", "padding-top", "padding-bottom" ]
- };
-
- return function( type, size, isBorderBox )
- {
- if ( typeof size == 'number' )
- {
- if ( isBorderBox && !( CKEDITOR.env.ie && CKEDITOR.env.quirks ) )
- {
- var adjustment = 0;
- for ( var i = 0, len = sides [ type ].length; i < len; i++ )
- adjustment += parseInt( this.getComputedStyle( sides [ type ][ i ] ) || 0, 10 );
- size -= adjustment;
- }
- this.setStyle( type, size + 'px' );
- }
- };
- })()
- });
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.element} class, which
+ * represents a DOM element.
+ */
+
+/**
+ * Represents a DOM element.
+ *
+ * // Create a new <span> element.
+ * var element = new CKEDITOR.dom.element( 'span' );
+ *
+ * // Create an element based on a native DOM element.
+ * var element = new CKEDITOR.dom.element( document.getElementById( 'myId' ) );
+ *
+ * @class
+ * @extends CKEDITOR.dom.node
+ * @constructor Creates an element class instance.
+ * @param {Object/String} element A native DOM element or the element name for
+ * new elements.
+ * @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
+ * the element in case of element creation.
+ */
+CKEDITOR.dom.element = function( element, ownerDocument ) {
+ if ( typeof element == 'string' )
+ element = ( ownerDocument ? ownerDocument.$ : document ).createElement( element );
+
+ // Call the base constructor (we must not call CKEDITOR.dom.node).
+ CKEDITOR.dom.domObject.call( this, element );
+};
+
+// PACKAGER_RENAME( CKEDITOR.dom.element )
+/**
+ * The the {@link CKEDITOR.dom.element} representing and element. If the
+ * element is a native DOM element, it will be transformed into a valid
+ * CKEDITOR.dom.element object.
+ *
+ * var element = new CKEDITOR.dom.element( 'span' );
+ * alert( element == CKEDITOR.dom.element.get( element ) ); // true
+ *
+ * var element = document.getElementById( 'myElement' );
+ * alert( CKEDITOR.dom.element.get( element ).getName() ); // (e.g.) 'p'
+ *
+ * @static
+ * @param {String/Object} element Element's id or name or native DOM element.
+ * @returns {CKEDITOR.dom.element} The transformed element.
+ */
+CKEDITOR.dom.element.get = function( element ) {
+ var el = typeof element == 'string' ? document.getElementById( element ) || document.getElementsByName( element )[ 0 ] : element;
+
+ return el && ( el.$ ? el : new CKEDITOR.dom.element( el ) );
+};
+
+CKEDITOR.dom.element.prototype = new CKEDITOR.dom.node();
+
+/**
+ * Creates an instance of the {@link CKEDITOR.dom.element} class based on the
+ * HTML representation of an element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<strong class="anyclass">My element</strong>' );
+ * alert( element.getName() ); // 'strong'
+ *
+ * @static
+ * @param {String} html The element HTML. It should define only one element in
+ * the "root" level. The "root" element can have child nodes, but not siblings.
+ * @returns {CKEDITOR.dom.element} The element instance.
+ */
+CKEDITOR.dom.element.createFromHtml = function( html, ownerDocument ) {
+ var temp = new CKEDITOR.dom.element( 'div', ownerDocument );
+ temp.setHtml( html );
+
+ // When returning the node, remove it from its parent to detach it.
+ return temp.getFirst().remove();
+};
+
+/**
+ * @static
+ * @todo
+ */
+CKEDITOR.dom.element.setMarker = function( database, element, name, value ) {
+ var id = element.getCustomData( 'list_marker_id' ) || ( element.setCustomData( 'list_marker_id', CKEDITOR.tools.getNextNumber() ).getCustomData( 'list_marker_id' ) ),
+ markerNames = element.getCustomData( 'list_marker_names' ) || ( element.setCustomData( 'list_marker_names', {} ).getCustomData( 'list_marker_names' ) );
+ database[ id ] = element;
+ markerNames[ name ] = 1;
+
+ return element.setCustomData( name, value );
+};
+
+/**
+ * @static
+ * @todo
+ */
+CKEDITOR.dom.element.clearAllMarkers = function( database ) {
+ for ( var i in database )
+ CKEDITOR.dom.element.clearMarkers( database, database[ i ], 1 );
+};
+
+/**
+ * @static
+ * @todo
+ */
+CKEDITOR.dom.element.clearMarkers = function( database, element, removeFromDatabase ) {
+ var names = element.getCustomData( 'list_marker_names' ),
+ id = element.getCustomData( 'list_marker_id' );
+ for ( var i in names )
+ element.removeCustomData( i );
+ element.removeCustomData( 'list_marker_names' );
+ if ( removeFromDatabase ) {
+ element.removeCustomData( 'list_marker_id' );
+ delete database[ id ];
+ }
+};
+( function() {
+
+CKEDITOR.tools.extend( CKEDITOR.dom.element.prototype, {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_ELEMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_ELEMENT]
+ */
+ type: CKEDITOR.NODE_ELEMENT,
+
+ /**
+ * Adds a CSS class to the element. It appends the class to the
+ * already existing names.
+ *
+ * var element = new CKEDITOR.dom.element( 'div' );
+ * element.addClass( 'classA' ); // <div class="classA">
+ * element.addClass( 'classB' ); // <div class="classA classB">
+ * element.addClass( 'classA' ); // <div class="classA classB">
+ *
+ * @param {String} className The name of the class to be added.
+ */
+ addClass: function( className ) {
+ var c = this.$.className;
+ if ( c ) {
+ var regex = new RegExp( '(?:^|\\s)' + className + '(?:\\s|$)', '' );
+ if ( !regex.test( c ) )
+ c += ' ' + className;
+ }
+ this.$.className = c || className;
+ },
+
+ /**
+ * Removes a CSS class name from the elements classes. Other classes
+ * remain untouched.
+ *
+ * var element = new CKEDITOR.dom.element( 'div' );
+ * element.addClass( 'classA' ); // <div class="classA">
+ * element.addClass( 'classB' ); // <div class="classA classB">
+ * element.removeClass( 'classA' ); // <div class="classB">
+ * element.removeClass( 'classB' ); // <div>
+ *
+ * @chainable
+ * @param {String} className The name of the class to remove.
+ */
+ removeClass: function( className ) {
+ var c = this.getAttribute( 'class' );
+ if ( c ) {
+ var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', 'i' );
+ if ( regex.test( c ) ) {
+ c = c.replace( regex, '' ).replace( /^\s+/, '' );
+
+ if ( c )
+ this.setAttribute( 'class', c );
+ else
+ this.removeAttribute( 'class' );
+ }
+ }
+
+ return this;
+ },
+
+ /**
+ * Checks if element has class name.
+ *
+ * @param {String} className
+ * @returns {Boolean}
+ */
+ hasClass: function( className ) {
+ var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', '' );
+ return regex.test( this.getAttribute( 'class' ) );
+ },
+
+ /**
+ * Append a node as a child of this element.
+ *
+ * var p = new CKEDITOR.dom.element( 'p' );
+ *
+ * var strong = new CKEDITOR.dom.element( 'strong' );
+ * p.append( strong );
+ *
+ * var em = p.append( 'em' );
+ *
+ * // Result: '<p><strong></strong><em></em></p>'
+ *
+ * @param {CKEDITOR.dom.node/String} node The node or element name to be appended.
+ * @param {Boolean} [toStart=false] Indicates that the element is to be appended at the start.
+ * @returns {CKEDITOR.dom.node} The appended node.
+ */
+ append: function( node, toStart ) {
+ if ( typeof node == 'string' )
+ node = this.getDocument().createElement( node );
+
+ if ( toStart )
+ this.$.insertBefore( node.$, this.$.firstChild );
+ else
+ this.$.appendChild( node.$ );
+
+ return node;
+ },
+
+ /**
+ * Append HTML as a child(ren) of this element.
+ *
+ * @param {String} html
+ */
+ appendHtml: function( html ) {
+ if ( !this.$.childNodes.length )
+ this.setHtml( html );
+ else {
+ var temp = new CKEDITOR.dom.element( 'div', this.getDocument() );
+ temp.setHtml( html );
+ temp.moveChildren( this );
+ }
+ },
+
+ /**
+ * Append text to this element.
+ *
+ * var p = new CKEDITOR.dom.element( 'p' );
+ * p.appendText( 'This is' );
+ * p.appendText( ' some text' );
+ *
+ * // Result: '<p>This is some text</p>'
+ *
+ * @param {String} text The text to be appended.
+ * @returns {CKEDITOR.dom.node} The appended node.
+ */
+ appendText: function( text ) {
+ if ( this.$.text != undefined )
+ this.$.text += text;
+ else
+ this.append( new CKEDITOR.dom.text( text ) );
+ },
+
+ /**
+ * @todo
+ */
+ appendBogus: function() {
+ var lastChild = this.getLast();
+
+ // Ignore empty/spaces text.
+ while ( lastChild && lastChild.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.rtrim( lastChild.getText() ) )
+ lastChild = lastChild.getPrevious();
+ if ( !lastChild || !lastChild.is || !lastChild.is( 'br' ) ) {
+ var bogus = CKEDITOR.env.opera ? this.getDocument().createText( '' ) : this.getDocument().createElement( 'br' );
+
+ CKEDITOR.env.gecko && bogus.setAttribute( 'type', '_moz' );
+
+ this.append( bogus );
+ }
+ },
+
+ /**
+ * Breaks one of the ancestor element in the element position, moving
+ * this element between the broken parts.
+ *
+ * // Before breaking:
+ * // <b>This <i>is some<span /> sample</i> test text</b>
+ * // If "element" is <span /> and "parent" is <i>:
+ * // <b>This <i>is some</i><span /><i> sample</i> test text</b>
+ * element.breakParent( parent );
+ *
+ * // Before breaking:
+ * // <b>This <i>is some<span /> sample</i> test text</b>
+ * // If "element" is <span /> and "parent" is <b>:
+ * // <b>This <i>is some</i></b><span /><b><i> sample</i> test text</b>
+ * element.breakParent( parent );
+ *
+ * @param {CKEDITOR.dom.element} parent The anscestor element to get broken.
+ */
+ breakParent: function( parent ) {
+ var range = new CKEDITOR.dom.range( this.getDocument() );
+
+ // We'll be extracting part of this element, so let's use our
+ // range to get the correct piece.
+ range.setStartAfter( this );
+ range.setEndAfter( parent );
+
+ // Extract it.
+ var docFrag = range.extractContents();
+
+ // Move the element outside the broken element.
+ range.insertNode( this.remove() );
+
+ // Re-insert the extracted piece after the element.
+ docFrag.insertAfterNode( this );
+ },
+
+ /**
+ * Checks if this element contains given node.
+ *
+ * @method
+ * @param {CKEDITOR.dom.node} node
+ * @returns {Boolean}
+ */
+ contains: CKEDITOR.env.ie || CKEDITOR.env.webkit ?
+ function( node ) {
+ var $ = this.$;
+
+ return node.type != CKEDITOR.NODE_ELEMENT ? $.contains( node.getParent().$ ) : $ != node.$ && $.contains( node.$ );
+ } : function( node ) {
+ return !!( this.$.compareDocumentPosition( node.$ ) & 16 );
+ },
+
+ /**
+ * Moves the selection focus to this element.
+ *
+ * var element = CKEDITOR.document.getById( 'myTextarea' );
+ * element.focus();
+ *
+ * @method
+ * @param {Boolean} defer Whether to asynchronously defer the
+ * execution by 100 ms.
+ */
+ focus: (function() {
+ function exec() {
+ // IE throws error if the element is not visible.
+ try {
+ this.$.focus();
+ } catch ( e ) {}
+ }
+
+ return function( defer ) {
+ if ( defer )
+ CKEDITOR.tools.setTimeout( exec, 100, this );
+ else
+ exec.call( this );
+ };
+ })(),
+
+ /**
+ * Gets the inner HTML of this element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b></div>' );
+ * alert( element.getHtml() ); // '<b>Example</b>'
+ *
+ * @returns {String} The inner HTML of this element.
+ */
+ getHtml: function() {
+ var retval = this.$.innerHTML;
+ // Strip <?xml:namespace> tags in IE. (#3341).
+ return CKEDITOR.env.ie ? retval.replace( /<\?[^>]*>/g, '' ) : retval;
+ },
+
+ /**
+ * Gets the outer (inner plus tags) HTML of this element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div class="bold"><b>Example</b></div>' );
+ * alert( element.getOuterHtml() ); // '<div class="bold"><b>Example</b></div>'
+ *
+ * @returns {String} The outer HTML of this element.
+ */
+ getOuterHtml: function() {
+ if ( this.$.outerHTML ) {
+ // IE includes the <?xml:namespace> tag in the outerHTML of
+ // namespaced element. So, we must strip it here. (#3341)
+ return this.$.outerHTML.replace( /<\?[^>]*>/, '' );
+ }
+
+ var tmpDiv = this.$.ownerDocument.createElement( 'div' );
+ tmpDiv.appendChild( this.$.cloneNode( true ) );
+ return tmpDiv.innerHTML;
+ },
+
+ /**
+ * Retrieve the bounding rectangle of the current element, in pixels,
+ * relative to the upper-left corner of the browser's client area.
+ *
+ * @returns {Object} The dimensions of the DOM element including
+ * `left`, `top`, `right`, `bottom`, `width` and `height`.
+ */
+ getClientRect: function() {
+ // http://help.dottoro.com/ljvmcrrn.php
+ var rect = CKEDITOR.tools.extend( {}, this.$.getBoundingClientRect() );
+
+ !rect.width && ( rect.width = rect.right - rect.left );
+ !rect.height && ( rect.height = rect.bottom - rect.top );
+
+ return rect;
+ },
+
+ /**
+ * Sets the inner HTML of this element.
+ *
+ * var p = new CKEDITOR.dom.element( 'p' );
+ * p.setHtml( '<b>Inner</b> HTML' );
+ *
+ * // Result: '<p><b>Inner</b> HTML</p>'
+ *
+ * @method
+ * @param {String} html The HTML to be set for this element.
+ * @returns {String} The inserted HTML.
+ */
+ setHtml: (function() {
+ var standard = function( html ) {
+ return ( this.$.innerHTML = html );
+ };
+
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {
+ // old IEs throws error on HTML manipulation (through the "innerHTML" property)
+ // on the element which resides in an DTD invalid position, e.g. <span><div></div></span>
+ // fortunately it can be worked around with DOM manipulation.
+ return function( html ) {
+ try { return standard.call( this, html ); }
+ catch ( e ) {
+ this.$.innerHTML = '';
+
+ var temp = new CKEDITOR.dom.element( 'body', this.getDocument() );
+ temp.$.innerHTML = html;
+
+ var children = temp.getChildren();
+ while( children.count() )
+ this.append( children.getItem( 0 ) );
+
+ return html;
+ }
+ };
+ } else
+ return standard;
+ })(),
+
+ /**
+ * Sets the element contents as plain text.
+ *
+ * var element = new CKEDITOR.dom.element( 'div' );
+ * element.setText( 'A > B & C < D' );
+ * alert( element.innerHTML ); // 'A > B & C < D'
+ *
+ * @param {String} text The text to be set.
+ * @returns {String} The inserted text.
+ */
+ setText: function( text ) {
+ CKEDITOR.dom.element.prototype.setText = ( this.$.innerText != undefined ) ?
+ function( text ) {
+ return this.$.innerText = text;
+ } : function( text ) {
+ return this.$.textContent = text;
+ };
+
+ return this.setText( text );
+ },
+
+ /**
+ * Gets the value of an element attribute.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<input type="text" />' );
+ * alert( element.getAttribute( 'type' ) ); // 'text'
+ *
+ * @method
+ * @param {String} name The attribute name.
+ * @returns {String} The attribute value or null if not defined.
+ */
+ getAttribute: (function() {
+ var standard = function( name ) {
+ return this.$.getAttribute( name, 2 );
+ };
+
+ if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) ) {
+ return function( name ) {
+ switch ( name ) {
+ case 'class':
+ name = 'className';
+ break;
+
+ case 'http-equiv':
+ name = 'httpEquiv';
+ break;
+
+ case 'name':
+ return this.$.name;
+
+ case 'tabindex':
+ var tabIndex = standard.call( this, name );
+
+ // IE returns tabIndex=0 by default for all
+ // elements. For those elements,
+ // getAtrribute( 'tabindex', 2 ) returns 32768
+ // instead. So, we must make this check to give a
+ // uniform result among all browsers.
+ if ( tabIndex !== 0 && this.$.tabIndex === 0 )
+ tabIndex = null;
+
+ return tabIndex;
+ break;
+
+ case 'checked':
+ {
+ var attr = this.$.attributes.getNamedItem( name ),
+ attrValue = attr.specified ? attr.nodeValue // For value given by parser.
+ : this.$.checked; // For value created via DOM interface.
+
+ return attrValue ? 'checked' : null;
+ }
+
+ case 'hspace':
+ case 'value':
+ return this.$[ name ];
+
+ case 'style':
+ // IE does not return inline styles via getAttribute(). See #2947.
+ return this.$.style.cssText;
+
+ case 'contenteditable':
+ case 'contentEditable':
+ return this.$.attributes.getNamedItem( 'contentEditable' ).specified ? this.$.getAttribute( 'contentEditable' ) : null;
+ }
+
+ return standard.call( this, name );
+ };
+ } else
+ return standard;
+ })(),
+
+ /**
+ * Gets the nodes list containing all children of this element.
+ *
+ * @returns {CKEDITOR.dom.nodeList}
+ */
+ getChildren: function() {
+ return new CKEDITOR.dom.nodeList( this.$.childNodes );
+ },
+
+ /**
+ * Gets the current computed value of one of the element CSS style
+ * properties.
+ *
+ * var element = new CKEDITOR.dom.element( 'span' );
+ * alert( element.getComputedStyle( 'display' ) ); // 'inline'
+ *
+ * @method
+ * @param {String} propertyName The style property name.
+ * @returns {String} The property value.
+ */
+ getComputedStyle: CKEDITOR.env.ie ?
+ function( propertyName ) {
+ return this.$.currentStyle[ CKEDITOR.tools.cssStyleToDomStyle( propertyName ) ];
+ } : function( propertyName ) {
+ var style = this.getWindow().$.getComputedStyle( this.$, null );
+ // Firefox may return null if we call the above on a hidden iframe. (#9117)
+ return style ? style.getPropertyValue( propertyName ) : '';
+ },
+
+ /**
+ * Gets the DTD entries for this element.
+ *
+ * @returns {Object} An object containing the list of elements accepted
+ * by this element.
+ */
+ getDtd: function() {
+ var dtd = CKEDITOR.dtd[ this.getName() ];
+
+ this.getDtd = function() {
+ return dtd;
+ };
+
+ return dtd;
+ },
+
+ /**
+ * Gets all this element's descendants having given tag name.
+ *
+ * @method
+ * @param {String} tagName
+ */
+ getElementsByTag: CKEDITOR.dom.document.prototype.getElementsByTag,
+
+ /**
+ * Gets the computed tabindex for this element.
+ *
+ * var element = CKEDITOR.document.getById( 'myDiv' );
+ * alert( element.getTabIndex() ); // (e.g.) '-1'
+ *
+ * @method
+ * @returns {Number} The tabindex value.
+ */
+ getTabIndex: CKEDITOR.env.ie ?
+ function() {
+ var tabIndex = this.$.tabIndex;
+
+ // IE returns tabIndex=0 by default for all elements. In
+ // those cases we must check that the element really has
+ // the tabindex attribute set to zero, or it is one of
+ // those element that should have zero by default.
+ if ( tabIndex === 0 && !CKEDITOR.dtd.$tabIndex[ this.getName() ] && parseInt( this.getAttribute( 'tabindex' ), 10 ) !== 0 )
+ tabIndex = -1;
+
+ return tabIndex;
+ } : CKEDITOR.env.webkit ?
+ function() {
+ var tabIndex = this.$.tabIndex;
+
+ // Safari returns "undefined" for elements that should not
+ // have tabindex (like a div). So, we must try to get it
+ // from the attribute.
+ // https://bugs.webkit.org/show_bug.cgi?id=20596
+ if ( tabIndex == undefined ) {
+ tabIndex = parseInt( this.getAttribute( 'tabindex' ), 10 );
+
+ // If the element don't have the tabindex attribute,
+ // then we should return -1.
+ if ( isNaN( tabIndex ) )
+ tabIndex = -1;
+ }
+
+ return tabIndex;
+ } : function() {
+ return this.$.tabIndex;
+ },
+
+ /**
+ * Gets the text value of this element.
+ *
+ * Only in IE (which uses innerText), `<br>` will cause linebreaks,
+ * and sucessive whitespaces (including line breaks) will be reduced to
+ * a single space. This behavior is ok for us, for now. It may change
+ * in the future.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div>Sample <i>text</i>.</div>' );
+ * alert( <b>element.getText()</b> ); // 'Sample text.'
+ *
+ * @returns {String} The text value.
+ */
+ getText: function() {
+ return this.$.textContent || this.$.innerText || '';
+ },
+
+ /**
+ * Gets the window object that contains this element.
+ *
+ * @returns {CKEDITOR.dom.window} The window object.
+ */
+ getWindow: function() {
+ return this.getDocument().getWindow();
+ },
+
+ /**
+ * Gets the value of the `id` attribute of this element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<p id="myId"></p>' );
+ * alert( element.getId() ); // 'myId'
+ *
+ * @returns {String} The element id, or null if not available.
+ */
+ getId: function() {
+ return this.$.id || null;
+ },
+
+ /**
+ * Gets the value of the `name` attribute of this element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<input name="myName"></input>' );
+ * alert( <b>element.getNameAtt()</b> ); // 'myName'
+ *
+ * @returns {String} The element name, or null if not available.
+ */
+ getNameAtt: function() {
+ return this.$.name || null;
+ },
+
+ /**
+ * Gets the element name (tag name). The returned name is guaranteed to
+ * be always full lowercased.
+ *
+ * var element = new CKEDITOR.dom.element( 'span' );
+ * alert( element.getName() ); // 'span'
+ *
+ * @returns {String} The element name.
+ */
+ getName: function() {
+ // Cache the lowercased name inside a closure.
+ var nodeName = this.$.nodeName.toLowerCase();
+
+ if ( CKEDITOR.env.ie && !( document.documentMode > 8 ) ) {
+ var scopeName = this.$.scopeName;
+ if ( scopeName != 'HTML' )
+ nodeName = scopeName.toLowerCase() + ':' + nodeName;
+ }
+
+ return ( this.getName = function() {
+ return nodeName;
+ })();
+ },
+
+ /**
+ * Gets the value set to this element. This value is usually available
+ * for form field elements.
+ *
+ * @returns {String} The element value.
+ */
+ getValue: function() {
+ return this.$.value;
+ },
+
+ /**
+ * Gets the first child node of this element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b></div>' );
+ * var first = element.getFirst();
+ * alert( first.getName() ); // 'b'
+ *
+ * @param {Function} evaluator Filtering the result node.
+ * @returns {CKEDITOR.dom.node} The first child node or null if not available.
+ */
+ getFirst: function( evaluator ) {
+ var first = this.$.firstChild,
+ retval = first && new CKEDITOR.dom.node( first );
+ if ( retval && evaluator && !evaluator( retval ) )
+ retval = retval.getNext( evaluator );
+
+ return retval;
+ },
+
+ /**
+ * See {@link #getFirst}.
+ *
+ * @param {Function} evaluator Filtering the result node.
+ * @retunrs {CKEDITOR.dom.node}
+ */
+ getLast: function( evaluator ) {
+ var last = this.$.lastChild,
+ retval = last && new CKEDITOR.dom.node( last );
+ if ( retval && evaluator && !evaluator( retval ) )
+ retval = retval.getPrevious( evaluator );
+
+ return retval;
+ },
+
+ /**
+ * Gets CSS style value.
+ *
+ * @param {String} name The CSS property name.
+ * @returns {String} Style value.
+ */
+ getStyle: function( name ) {
+ return this.$.style[ CKEDITOR.tools.cssStyleToDomStyle( name ) ];
+ },
+
+ /**
+ * Checks if the element name matches the specified criteria.
+ *
+ * var element = new CKEDITOR.element( 'span' );
+ * alert( element.is( 'span' ) ); // true
+ * alert( element.is( 'p', 'span' ) ); // true
+ * alert( element.is( 'p' ) ); // false
+ * alert( element.is( 'p', 'div' ) ); // false
+ * alert( element.is( { p:1,span:1 } ) ); // true
+ *
+ * @param {String.../Object} name One or more names to be checked, or a {@link CKEDITOR.dtd} object.
+ * @returns {Boolean} `true` if the element name matches any of the names.
+ */
+ is: function() {
+ var name = this.getName();
+
+ // Check against the specified DTD liternal.
+ if ( typeof arguments[ 0 ] == 'object' )
+ return !!arguments[ 0 ][ name ];
+
+ // Check for tag names
+ for ( var i = 0; i < arguments.length; i++ ) {
+ if ( arguments[ i ] == name )
+ return true;
+ }
+ return false;
+ },
+
+ /**
+ * Decide whether one element is able to receive cursor.
+ *
+ * @param {Boolean} [textCursor=true] Only consider element that could receive text child.
+ */
+ isEditable: function( textCursor ) {
+ var name = this.getName();
+
+ if ( this.isReadOnly() || this.getComputedStyle( 'display' ) == 'none' ||
+ this.getComputedStyle( 'visibility' ) == 'hidden' ||
+ CKEDITOR.dtd.$nonEditable[ name ] ||
+ CKEDITOR.dtd.$empty[ name ] ||
+ ( this.is( 'a' ) &&
+ ( this.data( 'cke-saved-name' ) || this.hasAttribute( 'name' ) ) &&
+ !this.getChildCount()
+ ) )
+ {
+ return false;
+ }
+
+ if ( textCursor !== false ) {
+ // Get the element DTD (defaults to span for unknown elements).
+ var dtd = CKEDITOR.dtd[ name ] || CKEDITOR.dtd.span;
+ // In the DTD # == text node.
+ return !!( dtd && dtd[ '#' ] );
+ }
+
+ return true;
+ },
+
+ /**
+ * Compare this element's inner html, tag name, attributes, etc. with other one.
+ *
+ * See [W3C's DOM Level 3 spec - node#isEqualNode](http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isEqualNode)
+ * for more details.
+ *
+ * @param {CKEDITOR.dom.element} otherElement Element to compare.
+ * @returns {Boolean}
+ */
+ isIdentical: function( otherElement ) {
+ // do shallow clones, but with IDs
+ var thisEl = this.clone( 0, 1 ),
+ otherEl = otherElement.clone( 0, 1 );
+
+ // Remove distractions.
+ thisEl.removeAttributes( [ '_moz_dirty', 'data-cke-expando', 'data-cke-saved-href', 'data-cke-saved-name' ] );
+ otherEl.removeAttributes( [ '_moz_dirty', 'data-cke-expando', 'data-cke-saved-href', 'data-cke-saved-name' ] );
+
+ // Native comparison available.
+ if ( thisEl.$.isEqualNode ) {
+ // Styles order matters.
+ thisEl.$.style.cssText = CKEDITOR.tools.normalizeCssText( thisEl.$.style.cssText );
+ otherEl.$.style.cssText = CKEDITOR.tools.normalizeCssText( otherEl.$.style.cssText );
+ return thisEl.$.isEqualNode( otherEl.$ );
+ } else {
+ thisEl = thisEl.getOuterHtml();
+ otherEl = otherEl.getOuterHtml();
+
+ // Fix tiny difference between link href in older IEs.
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 && this.is( 'a' ) ) {
+ var parent = this.getParent();
+ if ( parent.type == CKEDITOR.NODE_ELEMENT ) {
+ var el = parent.clone();
+ el.setHtml( thisEl ), thisEl = el.getHtml();
+ el.setHtml( otherEl ), otherEl = el.getHtml();
+ }
+ }
+
+ return thisEl == otherEl;
+ }
+ },
+
+ /**
+ * Checks if this element is visible. May not work if the element is
+ * child of an element with visibility set to `hidden`, but works well
+ * on the great majority of cases.
+ *
+ * @returns {Boolean} True if the element is visible.
+ */
+ isVisible: function() {
+ var isVisible = ( this.$.offsetHeight || this.$.offsetWidth ) && this.getComputedStyle( 'visibility' ) != 'hidden',
+ elementWindow, elementWindowFrame;
+
+ // Webkit and Opera report non-zero offsetHeight despite that
+ // element is inside an invisible iframe. (#4542)
+ if ( isVisible && ( CKEDITOR.env.webkit || CKEDITOR.env.opera ) ) {
+ elementWindow = this.getWindow();
+
+ if ( !elementWindow.equals( CKEDITOR.document.getWindow() ) && ( elementWindowFrame = elementWindow.$.frameElement ) ) {
+ isVisible = new CKEDITOR.dom.element( elementWindowFrame ).isVisible();
+ }
+ }
+
+ return !!isVisible;
+ },
+
+ /**
+ * Whether it's an empty inline elements which has no visual impact when removed.
+ *
+ * @returns {Boolean}
+ */
+ isEmptyInlineRemoveable: function() {
+ if ( !CKEDITOR.dtd.$removeEmpty[ this.getName() ] )
+ return false;
+
+ var children = this.getChildren();
+ for ( var i = 0, count = children.count(); i < count; i++ ) {
+ var child = children.getItem( i );
+
+ if ( child.type == CKEDITOR.NODE_ELEMENT && child.data( 'cke-bookmark' ) )
+ continue;
+
+ if ( child.type == CKEDITOR.NODE_ELEMENT && !child.isEmptyInlineRemoveable() || child.type == CKEDITOR.NODE_TEXT && CKEDITOR.tools.trim( child.getText() ) ) {
+ return false;
+ }
+ }
+ return true;
+ },
+
+ /**
+ * Checks if the element has any defined attributes.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div title="Test">Example</div>' );
+ * alert( element.hasAttributes() ); // true
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div>Example</div>' );
+ * alert( element.hasAttributes() ); // false
+ *
+ * @method
+ * @returns {Boolean} True if the element has attributes.
+ */
+ hasAttributes: CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) ?
+ function() {
+ var attributes = this.$.attributes;
+
+ for ( var i = 0; i < attributes.length; i++ ) {
+ var attribute = attributes[ i ];
+
+ switch ( attribute.nodeName ) {
+ case 'class':
+ // IE has a strange bug. If calling removeAttribute('className'),
+ // the attributes collection will still contain the "class"
+ // attribute, which will be marked as "specified", even if the
+ // outerHTML of the element is not displaying the class attribute.
+ // Note : I was not able to reproduce it outside the editor,
+ // but I've faced it while working on the TC of #1391.
+ if ( this.getAttribute( 'class' ) )
+ return true;
+
+ // Attributes to be ignored.
+ case 'data-cke-expando':
+ continue;
+
+ /*jsl:fallthru*/
+
+ default:
+ if ( attribute.specified )
+ return true;
+ }
+ }
+
+ return false;
+ } : function() {
+ var attrs = this.$.attributes,
+ attrsNum = attrs.length;
+
+ // The _moz_dirty attribute might get into the element after pasting (#5455)
+ var execludeAttrs = { 'data-cke-expando':1,_moz_dirty:1 };
+
+ return attrsNum > 0 && ( attrsNum > 2 || !execludeAttrs[ attrs[ 0 ].nodeName ] || ( attrsNum == 2 && !execludeAttrs[ attrs[ 1 ].nodeName ] ) );
+ },
+
+ /**
+ * Checks if the specified attribute is defined for this element.
+ *
+ * @method
+ * @param {String} name The attribute name.
+ * @returns {Boolean} `true` if the specified attribute is defined.
+ */
+ hasAttribute: (function() {
+ function standard( name ) {
+ var $attr = this.$.attributes.getNamedItem( name );
+ return !!( $attr && $attr.specified );
+ }
+
+ return ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) ?
+ function( name ) {
+ // On IE < 8 the name attribute cannot be retrieved
+ // right after the element creation and setting the
+ // name with setAttribute.
+ if ( name == 'name' )
+ return !!this.$.name;
+
+ return standard.call( this, name );
+ } : standard;
+ })(),
+
+ /**
+ * Hides this element (sets `display: none`).
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.hide();
+ */
+ hide: function() {
+ this.setStyle( 'display', 'none' );
+ },
+
+ /**
+ * Moves this element's children to the target element.
+ *
+ * @param {CKEDITOR.dom.element} target
+ * @param {Boolean} [toStart=false] Insert moved children at the
+ * beginning of the target element.
+ */
+ moveChildren: function( target, toStart ) {
+ var $ = this.$;
+ target = target.$;
+
+ if ( $ == target )
+ return;
+
+ var child;
+
+ if ( toStart ) {
+ while ( ( child = $.lastChild ) )
+ target.insertBefore( $.removeChild( child ), target.firstChild );
+ } else {
+ while ( ( child = $.firstChild ) )
+ target.appendChild( $.removeChild( child ) );
+ }
+ },
+
+ /**
+ * Merges sibling elements that are identical to this one.
+ *
+ * Identical child elements are also merged. For example:
+ *
+ * <b><i></i></b><b><i></i></b> => <b><i></i></b>
+ *
+ * @method
+ * @param {Boolean} [inlineOnly=true] Allow only inline elements to be merged.
+ */
+ mergeSiblings: (function() {
+ function mergeElements( element, sibling, isNext ) {
+ if ( sibling && sibling.type == CKEDITOR.NODE_ELEMENT ) {
+ // Jumping over bookmark nodes and empty inline elements, e.g. <b><i></i></b>,
+ // queuing them to be moved later. (#5567)
+ var pendingNodes = [];
+
+ while ( sibling.data( 'cke-bookmark' ) || sibling.isEmptyInlineRemoveable() ) {
+ pendingNodes.push( sibling );
+ sibling = isNext ? sibling.getNext() : sibling.getPrevious();
+ if ( !sibling || sibling.type != CKEDITOR.NODE_ELEMENT )
+ return;
+ }
+
+ if ( element.isIdentical( sibling ) ) {
+ // Save the last child to be checked too, to merge things like
+ // <b><i></i></b><b><i></i></b> => <b><i></i></b>
+ var innerSibling = isNext ? element.getLast() : element.getFirst();
+
+ // Move pending nodes first into the target element.
+ while ( pendingNodes.length )
+ pendingNodes.shift().move( element, !isNext );
+
+ sibling.moveChildren( element, !isNext );
+ sibling.remove();
+
+ // Now check the last inner child (see two comments above).
+ if ( innerSibling && innerSibling.type == CKEDITOR.NODE_ELEMENT )
+ innerSibling.mergeSiblings();
+ }
+ }
+ }
+
+ return function( inlineOnly ) {
+ if ( !( inlineOnly === false || CKEDITOR.dtd.$removeEmpty[ this.getName() ] || this.is( 'a' ) ) ) // Merge empty links and anchors also. (#5567)
+ {
+ return;
+ }
+
+ mergeElements( this, this.getNext(), true );
+ mergeElements( this, this.getPrevious() );
+ };
+ })(),
+
+ /**
+ * Shows this element (displays it).
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.show();
+ */
+ show: function() {
+ this.setStyles({
+ display: '',
+ visibility: ''
+ });
+ },
+
+ /**
+ * Sets the value of an element attribute.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.setAttribute( 'class', 'myClass' );
+ * element.setAttribute( 'title', 'This is an example' );
+ *
+ * @method
+ * @param {String} name The name of the attribute.
+ * @param {String} value The value to be set to the attribute.
+ * @returns {CKEDITOR.dom.element} This element instance.
+ */
+ setAttribute: (function() {
+ var standard = function( name, value ) {
+ this.$.setAttribute( name, value );
+ return this;
+ };
+
+ if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) ) {
+ return function( name, value ) {
+ if ( name == 'class' )
+ this.$.className = value;
+ else if ( name == 'style' )
+ this.$.style.cssText = value;
+ else if ( name == 'tabindex' ) // Case sensitive.
+ this.$.tabIndex = value;
+ else if ( name == 'checked' )
+ this.$.checked = value;
+ else if ( name == 'contenteditable' )
+ standard.call( this, 'contentEditable', value );
+ else
+ standard.apply( this, arguments );
+ return this;
+ };
+ } else if ( CKEDITOR.env.ie8Compat && CKEDITOR.env.secure ) {
+ return function( name, value ) {
+ // IE8 throws error when setting src attribute to non-ssl value. (#7847)
+ if ( name == 'src' && value.match( /^http:\/\// ) )
+ try {
+ standard.apply( this, arguments );
+ } catch ( e ) {} else
+ standard.apply( this, arguments );
+ return this;
+ };
+ } else
+ return standard;
+ })(),
+
+ /**
+ * Sets the value of several element attributes.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.setAttributes( {
+ * 'class': 'myClass',
+ * title: 'This is an example'
+ * } );
+ *
+ * @chainable
+ * @param {Object} attributesPairs An object containing the names and
+ * values of the attributes.
+ * @returns {CKEDITOR.dom.element} This element instance.
+ */
+ setAttributes: function( attributesPairs ) {
+ for ( var name in attributesPairs )
+ this.setAttribute( name, attributesPairs[ name ] );
+ return this;
+ },
+
+ /**
+ * Sets the element value. This function is usually used with form
+ * field element.
+ *
+ * @chainable
+ * @param {String} value The element value.
+ * @returns {CKEDITOR.dom.element} This element instance.
+ */
+ setValue: function( value ) {
+ this.$.value = value;
+ return this;
+ },
+
+ /**
+ * Removes an attribute from the element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div class="classA"></div>' );
+ * element.removeAttribute( 'class' );
+ *
+ * @method
+ * @param {String} name The attribute name.
+ */
+ removeAttribute: (function() {
+ var standard = function( name ) {
+ this.$.removeAttribute( name );
+ };
+
+ if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) ) {
+ return function( name ) {
+ if ( name == 'class' )
+ name = 'className';
+ else if ( name == 'tabindex' )
+ name = 'tabIndex';
+ else if ( name == 'contenteditable' )
+ name = 'contentEditable';
+ standard.call( this, name );
+ };
+ } else
+ return standard;
+ })(),
+
+ /**
+ * Removes all element's attributes or just given ones.
+ *
+ * @param {Array} [attributes] The array with attributes names.
+ */
+ removeAttributes: function( attributes ) {
+ if ( CKEDITOR.tools.isArray( attributes ) ) {
+ for ( var i = 0; i < attributes.length; i++ )
+ this.removeAttribute( attributes[ i ] );
+ } else {
+ for ( var attr in attributes )
+ attributes.hasOwnProperty( attr ) && this.removeAttribute( attr );
+ }
+ },
+
+ /**
+ * Removes a style from the element.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div style="display:none"></div>' );
+ * element.removeStyle( 'display' );
+ *
+ * @method
+ * @param {String} name The style name.
+ */
+ removeStyle: function( name ) {
+ // Removes the specified property from the current style object.
+ var $ = this.$.style;
+
+ // "removeProperty" need to be specific on the following styles.
+ if ( !$.removeProperty && ( name == 'border' || name == 'margin' || name == 'padding' ) ) {
+ var names = expandedRules( name );
+ for ( var i = 0 ; i < names.length ; i++ )
+ this.removeStyle( names[ i ] );
+ return;
+ }
+
+ $.removeProperty ? $.removeProperty( name ) : $.removeAttribute( CKEDITOR.tools.cssStyleToDomStyle( name ) );
+
+ // Eventually remove empty style attribute.
+ if ( !this.$.style.cssText )
+ this.removeAttribute( 'style' );
+ },
+
+ /**
+ * Sets the value of an element style.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.setStyle( 'background-color', '#ff0000' );
+ * element.setStyle( 'margin-top', '10px' );
+ * element.setStyle( 'float', 'right' );
+ *
+ * @param {String} name The name of the style. The CSS naming notation
+ * must be used (e.g. `background-color`).
+ * @param {String} value The value to be set to the style.
+ * @returns {CKEDITOR.dom.element} This element instance.
+ */
+ setStyle: function( name, value ) {
+ this.$.style[ CKEDITOR.tools.cssStyleToDomStyle( name ) ] = value;
+ return this;
+ },
+
+ /**
+ * Sets the value of several element styles.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.setStyles( {
+ * position: 'absolute',
+ * float: 'right'
+ * } );
+ *
+ * @param {Object} stylesPairs An object containing the names and
+ * values of the styles.
+ * @returns {CKEDITOR.dom.element} This element instance.
+ */
+ setStyles: function( stylesPairs ) {
+ for ( var name in stylesPairs )
+ this.setStyle( name, stylesPairs[ name ] );
+ return this;
+ },
+
+ /**
+ * Sets the opacity of an element.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.setOpacity( 0.75 );
+ *
+ * @param {Number} opacity A number within the range `[0.0, 1.0]`.
+ */
+ setOpacity: function( opacity ) {
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {
+ opacity = Math.round( opacity * 100 );
+ this.setStyle( 'filter', opacity >= 100 ? '' : 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ')' );
+ } else
+ this.setStyle( 'opacity', opacity );
+ },
+
+ /**
+ * Makes the element and its children unselectable.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.unselectable();
+ *
+ * @method
+ */
+ unselectable: function() {
+ // CSS unselectable.
+ this.setStyles( CKEDITOR.tools.cssVendorPrefix( 'user-select', 'none' ) );
+
+ // For IE/Opera which doesn't support for the above CSS style,
+ // the unselectable="on" attribute only specifies the selection
+ // process cannot start in the element itself, and it doesn't inherit.
+ if ( CKEDITOR.env.ie || CKEDITOR.env.opera ) {
+ this.setAttribute( 'unselectable', 'on' );
+
+ var element,
+ elements = this.getElementsByTag( "*" );
+
+ for ( var i = 0, count = elements.count() ; i < count ; i++ ) {
+ element = elements.getItem( i );
+ element.setAttribute( 'unselectable', 'on' );
+ }
+ }
+ },
+
+ /**
+ * Gets closest positioned (`position != static`) ancestor.
+ *
+ * @returns {CKEDITOR.dom.element} Positioned ancestor or `null`.
+ */
+ getPositionedAncestor: function() {
+ var current = this;
+ while ( current.getName() != 'html' ) {
+ if ( current.getComputedStyle( 'position' ) != 'static' )
+ return current;
+
+ current = current.getParent();
+ }
+ return null;
+ },
+
+ /**
+ * Gets this element's position in document.
+ *
+ * @param {CKEDITOR.dom.document} [refDocument]
+ * @returns {Object} Element's position.
+ * @returns {Number} return.x
+ * @returns {Number} return.y
+ * @todo refDocument
+ */
+ getDocumentPosition: function( refDocument ) {
+ var x = 0,
+ y = 0,
+ doc = this.getDocument(),
+ body = doc.getBody(),
+ quirks = doc.$.compatMode == 'BackCompat';
+
+ if ( document.documentElement[ "getBoundingClientRect" ] ) {
+ var box = this.$.getBoundingClientRect(),
+ $doc = doc.$,
+ $docElem = $doc.documentElement;
+
+ var clientTop = $docElem.clientTop || body.$.clientTop || 0,
+ clientLeft = $docElem.clientLeft || body.$.clientLeft || 0,
+ needAdjustScrollAndBorders = true;
+
+ // #3804: getBoundingClientRect() works differently on IE and non-IE
+ // browsers, regarding scroll positions.
+ //
+ // On IE, the top position of the <html> element is always 0, no matter
+ // how much you scrolled down.
+ //
+ // On other browsers, the top position of the <html> element is negative
+ // scrollTop.
+ if ( CKEDITOR.env.ie ) {
+ var inDocElem = doc.getDocumentElement().contains( this ),
+ inBody = doc.getBody().contains( this );
+
+ needAdjustScrollAndBorders = ( quirks && inBody ) || ( !quirks && inDocElem );
+ }
+
+ if ( needAdjustScrollAndBorders ) {
+ x = box.left + ( !quirks && $docElem.scrollLeft || body.$.scrollLeft );
+ x -= clientLeft;
+ y = box.top + ( !quirks && $docElem.scrollTop || body.$.scrollTop );
+ y -= clientTop;
+ }
+ } else {
+ var current = this,
+ previous = null,
+ offsetParent;
+ while ( current && !( current.getName() == 'body' || current.getName() == 'html' ) ) {
+ x += current.$.offsetLeft - current.$.scrollLeft;
+ y += current.$.offsetTop - current.$.scrollTop;
+
+ // Opera includes clientTop|Left into offsetTop|Left.
+ if ( !current.equals( this ) ) {
+ x += ( current.$.clientLeft || 0 );
+ y += ( current.$.clientTop || 0 );
+ }
+
+ var scrollElement = previous;
+ while ( scrollElement && !scrollElement.equals( current ) ) {
+ x -= scrollElement.$.scrollLeft;
+ y -= scrollElement.$.scrollTop;
+ scrollElement = scrollElement.getParent();
+ }
+
+ previous = current;
+ current = ( offsetParent = current.$.offsetParent ) ? new CKEDITOR.dom.element( offsetParent ) : null;
+ }
+ }
+
+ if ( refDocument ) {
+ var currentWindow = this.getWindow(),
+ refWindow = refDocument.getWindow();
+
+ if ( !currentWindow.equals( refWindow ) && currentWindow.$.frameElement ) {
+ var iframePosition = ( new CKEDITOR.dom.element( currentWindow.$.frameElement ) ).getDocumentPosition( refDocument );
+
+ x += iframePosition.x;
+ y += iframePosition.y;
+ }
+ }
+
+ if ( !document.documentElement[ "getBoundingClientRect" ] ) {
+ // In Firefox, we'll endup one pixel before the element positions,
+ // so we must add it here.
+ if ( CKEDITOR.env.gecko && !quirks ) {
+ x += this.$.clientLeft ? 1 : 0;
+ y += this.$.clientTop ? 1 : 0;
+ }
+ }
+
+ return { x: x, y: y };
+ },
+
+ /**
+ * Make any page element visible inside the browser viewport.
+ *
+ * @param {Boolean} [alignToTop=false]
+ */
+ scrollIntoView: function( alignToTop ) {
+ var parent = this.getParent();
+ if ( !parent )
+ return;
+
+ // Scroll the element into parent container from the inner out.
+ do {
+ // Check ancestors that overflows.
+ var overflowed =
+ parent.$.clientWidth && parent.$.clientWidth < parent.$.scrollWidth ||
+ parent.$.clientHeight && parent.$.clientHeight < parent.$.scrollHeight;
+
+ // Skip body element, which will report wrong clientHeight when containing
+ // floated content. (#9523)
+ if ( overflowed && !parent.is( 'body' ) )
+ this.scrollIntoParent( parent, alignToTop, 1 );
+
+ // Walk across the frame.
+ if ( parent.is( 'html' ) ) {
+ var win = parent.getWindow();
+
+ // Avoid security error.
+ try {
+ var iframe = win.$.frameElement;
+ iframe && ( parent = new CKEDITOR.dom.element( iframe ) );
+ } catch ( er ) {}
+ }
+ }
+ while ( ( parent = parent.getParent() ) );
+ },
+
+ /**
+ * Make any page element visible inside one of the ancestors by scrolling the parent.
+ *
+ * @param {CKEDITOR.dom.element/CKEDITOR.dom.window} parent The container to scroll into.
+ * @param {Boolean} [alignToTop] Align the element's top side with the container's
+ * when `true` is specified; align the bottom with viewport bottom when
+ * `false` is specified. Otherwise scroll on either side with the minimum
+ * amount to show the element.
+ * @param {Boolean} [hscroll] Whether horizontal overflow should be considered.
+ */
+ scrollIntoParent: function( parent, alignToTop, hscroll ) {
+ !parent && ( parent = this.getWindow() );
+
+ var doc = parent.getDocument();
+ var isQuirks = doc.$.compatMode == 'BackCompat';
+
+ // On window <html> is scrolled while quirks scrolls <body>.
+ if ( parent instanceof CKEDITOR.dom.window )
+ parent = isQuirks ? doc.getBody() : doc.getDocumentElement();
+
+ // Scroll the parent by the specified amount.
+ function scrollBy( x, y ) {
+ // Webkit doesn't support "scrollTop/scrollLeft"
+ // on documentElement/body element.
+ if ( /body|html/.test( parent.getName() ) )
+ parent.getWindow().$.scrollBy( x, y );
+ else {
+ parent.$[ 'scrollLeft' ] += x;
+ parent.$[ 'scrollTop' ] += y;
+ }
+ }
+
+ // Figure out the element position relative to the specified window.
+ function screenPos( element, refWin ) {
+ var pos = { x: 0, y: 0 };
+
+ if ( !( element.is( isQuirks ? 'body' : 'html' ) ) ) {
+ var box = element.$.getBoundingClientRect();
+ pos.x = box.left, pos.y = box.top;
+ }
+
+ var win = element.getWindow();
+ if ( !win.equals( refWin ) ) {
+ var outerPos = screenPos( CKEDITOR.dom.element.get( win.$.frameElement ), refWin );
+ pos.x += outerPos.x, pos.y += outerPos.y;
+ }
+
+ return pos;
+ }
+
+ // calculated margin size.
+ function margin( element, side ) {
+ return parseInt( element.getComputedStyle( 'margin-' + side ) || 0, 10 ) || 0;
+ }
+
+ var win = parent.getWindow();
+
+ var thisPos = screenPos( this, win ),
+ parentPos = screenPos( parent, win ),
+ eh = this.$.offsetHeight,
+ ew = this.$.offsetWidth,
+ ch = parent.$.clientHeight,
+ cw = parent.$.clientWidth,
+ lt, br;
+
+ // Left-top margins.
+ lt = {
+ x: thisPos.x - margin( this, 'left' ) - parentPos.x || 0,
+ y: thisPos.y - margin( this, 'top' ) - parentPos.y || 0
+ };
+
+ // Bottom-right margins.
+ br = {
+ x: thisPos.x + ew + margin( this, 'right' ) - ( ( parentPos.x ) + cw ) || 0,
+ y: thisPos.y + eh + margin( this, 'bottom' ) - ( ( parentPos.y ) + ch ) || 0
+ };
+
+ // 1. Do the specified alignment as much as possible;
+ // 2. Otherwise be smart to scroll only the minimum amount;
+ // 3. Never cut at the top;
+ // 4. DO NOT scroll when already visible.
+ if ( lt.y < 0 || br.y > 0 ) {
+ scrollBy( 0, alignToTop === true ? lt.y : alignToTop === false ? br.y : lt.y < 0 ? lt.y : br.y );
+ }
+
+ if ( hscroll && ( lt.x < 0 || br.x > 0 ) )
+ scrollBy( lt.x < 0 ? lt.x : br.x, 0 );
+ },
+
+ /**
+ * Switch the `class` attribute to reflect one of the triple states of an
+ * element in one of {@link CKEDITOR#TRISTATE_ON}, {@link CKEDITOR#TRISTATE_OFF}
+ * or {@link CKEDITOR#TRISTATE_DISABLED}.
+ *
+ * link.setState( CKEDITOR.TRISTATE_ON );
+ * // <a class="cke_on" aria-pressed="true">...</a>
+ * link.setState( CKEDITOR.TRISTATE_OFF );
+ * // <a class="cke_off">...</a>
+ * link.setState( CKEDITOR.TRISTATE_DISABLED );
+ * // <a class="cke_disabled" aria-disabled="true">...</a>
+ *
+ * span.setState( CKEDITOR.TRISTATE_ON, 'cke_button' );
+ * // <span class="cke_button_on">...</span>
+ *
+ * @param {Number} state Indicate the element state. One of {@link CKEDITOR#TRISTATE_ON},
+ * {@link CKEDITOR#TRISTATE_OFF}, {@link CKEDITOR#TRISTATE_DISABLED}.
+ * @param [base='cke'] The prefix apply to each of the state class name.
+ * @param [useAria=true] Whether toggle the ARIA state attributes besides of class name change.
+ */
+ setState: function( state, base, useAria ) {
+ base = base || 'cke';
+
+ switch ( state ) {
+ case CKEDITOR.TRISTATE_ON:
+ this.addClass( base + '_on' );
+ this.removeClass( base + '_off' );
+ this.removeClass( base + '_disabled' );
+ useAria && this.setAttribute( 'aria-pressed', true );
+ useAria && this.removeAttribute( 'aria-disabled' );
+ break;
+
+ case CKEDITOR.TRISTATE_DISABLED:
+ this.addClass( base + '_disabled' );
+ this.removeClass( base + '_off' );
+ this.removeClass( base + '_on' );
+ useAria && this.setAttribute( 'aria-disabled', true );
+ useAria && this.removeAttribute( 'aria-pressed' );
+ break;
+
+ default:
+ this.addClass( base + '_off' );
+ this.removeClass( base + '_on' );
+ this.removeClass( base + '_disabled' );
+ useAria && this.removeAttribute( 'aria-pressed' );
+ useAria && this.removeAttribute( 'aria-disabled' );
+ break;
+ }
+ },
+
+ /**
+ * Returns the inner document of this `<iframe>` element.
+ *
+ * @returns {CKEDITOR.dom.document} The inner document.
+ */
+ getFrameDocument: function() {
+ var $ = this.$;
+
+ try {
+ // In IE, with custom document.domain, it may happen that
+ // the iframe is not yet available, resulting in "Access
+ // Denied" for the following property access.
+ $.contentWindow.document;
+ } catch ( e ) {
+ // Trick to solve this issue, forcing the iframe to get ready
+ // by simply setting its "src" property.
+ $.src = $.src;
+ }
+
+ return $ && new CKEDITOR.dom.document( $.contentWindow.document );
+ },
+
+ /**
+ * Copy all the attributes from one node to the other, kinda like a clone
+ * skipAttributes is an object with the attributes that must **not** be copied.
+ *
+ * @param {CKEDITOR.dom.element} dest The destination element.
+ * @param {Object} skipAttributes A dictionary of attributes to skip.
+ */
+ copyAttributes: function( dest, skipAttributes ) {
+ var attributes = this.$.attributes;
+ skipAttributes = skipAttributes || {};
+
+ for ( var n = 0; n < attributes.length; n++ ) {
+ var attribute = attributes[ n ];
+
+ // Lowercase attribute name hard rule is broken for
+ // some attribute on IE, e.g. CHECKED.
+ var attrName = attribute.nodeName.toLowerCase(),
+ attrValue;
+
+ // We can set the type only once, so do it with the proper value, not copying it.
+ if ( attrName in skipAttributes )
+ continue;
+
+ if ( attrName == 'checked' && ( attrValue = this.getAttribute( attrName ) ) )
+ dest.setAttribute( attrName, attrValue );
+ // IE BUG: value attribute is never specified even if it exists.
+ else if ( attribute.specified || ( CKEDITOR.env.ie && attribute.nodeValue && attrName == 'value' ) ) {
+ attrValue = this.getAttribute( attrName );
+ if ( attrValue === null )
+ attrValue = attribute.nodeValue;
+
+ dest.setAttribute( attrName, attrValue );
+ }
+ }
+
+ // The style:
+ if ( this.$.style.cssText !== '' )
+ dest.$.style.cssText = this.$.style.cssText;
+ },
+
+ /**
+ * Changes the tag name of the current element.
+ *
+ * @param {String} newTag The new tag for the element.
+ */
+ renameNode: function( newTag ) {
+ // If it's already correct exit here.
+ if ( this.getName() == newTag )
+ return;
+
+ var doc = this.getDocument();
+
+ // Create the new node.
+ var newNode = new CKEDITOR.dom.element( newTag, doc );
+
+ // Copy all attributes.
+ this.copyAttributes( newNode );
+
+ // Move children to the new node.
+ this.moveChildren( newNode );
+
+ // Replace the node.
+ this.getParent() && this.$.parentNode.replaceChild( newNode.$, this.$ );
+ newNode.$[ 'data-cke-expando' ] = this.$[ 'data-cke-expando' ];
+ this.$ = newNode.$;
+ },
+
+ /**
+ * Gets a DOM tree descendant under the current node.
+ *
+ * var strong = p.getChild( 0 );
+ *
+ * @method
+ * @param {Array/Number} indices The child index or array of child indices under the node.
+ * @returns {CKEDITOR.dom.node} The specified DOM child under the current node. Null if child does not exist.
+ */
+ getChild: (function() {
+ function getChild( rawNode, index ) {
+ var childNodes = rawNode.childNodes;
+
+ if ( index >= 0 && index < childNodes.length )
+ return childNodes[ index ];
+ }
+
+ return function( indices ) {
+ var rawNode = this.$;
+
+ if ( !indices.slice )
+ rawNode = getChild( rawNode, indices );
+ else {
+ while ( indices.length > 0 && rawNode )
+ rawNode = getChild( rawNode, indices.shift() );
+ }
+
+ return rawNode ? new CKEDITOR.dom.node( rawNode ) : null;
+ };
+ })(),
+
+ /**
+ * Gets number of element's children.
+ *
+ * @returns {Number}
+ */
+ getChildCount: function() {
+ return this.$.childNodes.length;
+ },
+
+ /**
+ * Disables browser's context menu in this element.
+ */
+ disableContextMenu: function() {
+ this.on( 'contextmenu', function( event ) {
+ // Cancel the browser context menu.
+ if ( !event.data.getTarget().hasClass( 'cke_enable_context_menu' ) )
+ event.data.preventDefault();
+ });
+ },
+
+ /**
+ * Gets element's direction. Supports both CSS `direction` prop and `dir` attr.
+ */
+ getDirection: function( useComputed ) {
+ if ( useComputed ) {
+ return this.getComputedStyle( 'direction' ) ||
+ this.getDirection() ||
+ this.getParent() && this.getParent().getDirection( 1 ) ||
+ this.getDocument().$.dir ||
+ 'ltr';
+ }
+ else
+ return this.getStyle( 'direction' ) || this.getAttribute( 'dir' );
+ },
+
+ /**
+ * Gets, sets and removes custom data to be stored as HTML5 data-* attributes.
+ *
+ * element.data( 'extra-info', 'test' ); // Appended the attribute data-extra-info="test" to the element.
+ * alert( element.data( 'extra-info' ) ); // 'test'
+ * element.data( 'extra-info', false ); // Remove the data-extra-info attribute from the element.
+ *
+ * @param {String} name The name of the attribute, excluding the `data-` part.
+ * @param {String} [value] The value to set. If set to false, the attribute will be removed.
+ */
+ data: function( name, value ) {
+ name = 'data-' + name;
+ if ( value === undefined )
+ return this.getAttribute( name );
+ else if ( value === false )
+ this.removeAttribute( name );
+ else
+ this.setAttribute( name, value );
+
+ return null;
+ },
+
+ /**
+ * Retrieves an editor instance which is based on this element (if any).
+ * It basically loops over {@link CKEDITOR#instances} in search for an instance
+ * that uses the element.
+ *
+ * var element = new CKEDITOR.dom.element( 'div' );
+ * element.appendTo( CKEDITOR.document.getBody() );
+ * CKEDITOR.replace( element );
+ * alert( element.getEditor().name ); // 'editor1'
+ *
+ * @returns {CKEDITOR.editor} An editor instance or null if nothing has been found.
+ */
+ getEditor: function() {
+ var instances = CKEDITOR.instances,
+ name, instance;
+
+ for ( name in instances ) {
+ instance = instances[ name ];
+
+ if ( instance.element.equals( this ) && instance.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO )
+ return instance;
+ }
+
+ return null;
+ }
+});
+
+ var sides = {
+ width: [ 'border-left-width', 'border-right-width', 'padding-left', 'padding-right' ],
+ height: [ 'border-top-width', 'border-bottom-width', 'padding-top', 'padding-bottom' ]
+ };
+
+ // Generate list of specific style rules, applicable to margin/padding/border.
+ function expandedRules( style ) {
+ var sides = [ 'top', 'left', 'right', 'bottom' ], components;
+
+ if ( style == 'border' )
+ components = [ 'color', 'style', 'width' ];
+
+ var styles = [];
+ for ( var i = 0 ; i < sides.length ; i++ ) {
+
+ if ( components ) {
+ for ( var j = 0 ; j < components.length ; j++ )
+ styles.push( [ style, sides[ i ], components[j] ].join( '-' ) );
+ }
+ else
+ styles.push( [ style, sides[ i ] ].join( '-' ) );
+ }
+
+ return styles;
+ }
+
+ function marginAndPaddingSize( type ) {
+ var adjustment = 0;
+ for ( var i = 0, len = sides[ type ].length; i < len; i++ )
+ adjustment += parseInt( this.getComputedStyle( sides[ type ][ i ] ) || 0, 10 ) || 0;
+ return adjustment;
+ }
+
+ /**
+ * Sets the element size considering the box model.
+ *
+ * @param {'width'/'height'} type The dimension to set.
+ * @param {Number} size The length unit in px.
+ * @param {Boolean} isBorderBox Apply the size based on the border box model.
+ */
+ CKEDITOR.dom.element.prototype.setSize = function( type, size, isBorderBox ) {
+ if ( typeof size == 'number' ) {
+ if ( isBorderBox && !( CKEDITOR.env.ie && CKEDITOR.env.quirks ) )
+ size -= marginAndPaddingSize.call( this, type );
+
+ this.setStyle( type, size + 'px' );
+ }
+ };
+
+ /**
+ * Gets the element size, possibly considering the box model.
+ *
+ * @param {'width'/'height'} type The dimension to get.
+ * @param {Boolean} isBorderBox Get the size based on the border box model.
+ */
+ CKEDITOR.dom.element.prototype.getSize = function( type, isBorderBox ) {
+ var size = Math.max( this.$[ 'offset' + CKEDITOR.tools.capitalize( type ) ], this.$[ 'client' + CKEDITOR.tools.capitalize( type ) ] ) || 0;
+
+ if ( isBorderBox )
+ size -= marginAndPaddingSize.call( this, type );
+
+ return size;
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/dom/elementpath.js b/devel/third-party/ckeditor/core/dom/elementpath.js
index 3c74a92..533011b 100644
--- a/devel/third-party/ckeditor/core/dom/elementpath.js
+++ b/devel/third-party/ckeditor/core/dom/elementpath.js
@@ -1,116 +1,222 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- // Elements that may be considered the "Block boundary" in an element path.
- var pathBlockElements = { address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1 };
-
- // Elements that may be considered the "Block limit" in an element path.
- var pathBlockLimitElements = { body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:1,form:1 };
-
- // Check if an element contains any block element.
- var checkHasBlock = function( element )
- {
- var childNodes = element.getChildren();
-
- for ( var i = 0, count = childNodes.count() ; i < count ; i++ )
- {
- var child = childNodes.getItem( i );
-
- if ( child.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$block[ child.getName() ] )
- return true;
- }
-
- return false;
- };
-
- CKEDITOR.dom.elementPath = function( lastNode )
- {
- var block = null;
- var blockLimit = null;
- var elements = [];
-
- var e = lastNode;
-
- while ( e )
- {
- if ( e.type == CKEDITOR.NODE_ELEMENT )
- {
- if ( !this.lastElement )
- this.lastElement = e;
-
- var elementName = e.getName();
- if ( CKEDITOR.env.ie && e.$.scopeName != 'HTML' )
- elementName = e.$.scopeName.toLowerCase() + ':' + elementName;
-
- if ( !blockLimit )
- {
- if ( !block && pathBlockElements[ elementName ] )
- block = e;
-
- if ( pathBlockLimitElements[ elementName ] )
- {
- // DIV is considered the Block, if no block is available (#525)
- // and if it doesn't contain other blocks.
- if ( !block && elementName == 'div' && !checkHasBlock( e ) )
- block = e;
- else
- blockLimit = e;
- }
- }
-
- elements.push( e );
-
- if ( elementName == 'body' )
- break;
- }
- e = e.getParent();
- }
-
- this.block = block;
- this.blockLimit = blockLimit;
- this.elements = elements;
- };
-})();
-
-CKEDITOR.dom.elementPath.prototype =
-{
- /**
- * Compares this element path with another one.
- * @param {CKEDITOR.dom.elementPath} otherPath The elementPath object to be
- * compared with this one.
- * @returns {Boolean} "true" if the paths are equal, containing the same
- * number of elements and the same elements in the same order.
- */
- compare : function( otherPath )
- {
- var thisElements = this.elements;
- var otherElements = otherPath && otherPath.elements;
-
- if ( !otherElements || thisElements.length != otherElements.length )
- return false;
-
- for ( var i = 0 ; i < thisElements.length ; i++ )
- {
- if ( !thisElements[ i ].equals( otherElements[ i ] ) )
- return false;
- }
-
- return true;
- },
-
- contains : function( tagNames )
- {
- var elements = this.elements;
- for ( var i = 0 ; i < elements.length ; i++ )
- {
- if ( elements[ i ].getName() in tagNames )
- return elements[ i ];
- }
-
- return null;
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ // Elements that are considered the "Block limit" in an element path.
+ var pathBlockLimitElements = {};
+ for ( var tag in CKEDITOR.dtd.$blockLimit ) {
+ // Exclude from list roots.
+ if ( !( tag in CKEDITOR.dtd.$list ) )
+ pathBlockLimitElements[ tag ] = 1;
+ }
+
+ // Elements that are considered the "End level Block" in an element path.
+ var pathBlockElements = {};
+
+ for ( tag in CKEDITOR.dtd.$block ) {
+ // Exclude block limits, and empty block element, e.g. hr.
+ if ( !( tag in CKEDITOR.dtd.$blockLimit || tag in CKEDITOR.dtd.$empty ) )
+ pathBlockElements[ tag ] = 1;
+ }
+
+ // Check if an element contains any block element.
+ var checkHasBlock = function( element ) {
+ var childNodes = element.getChildren();
+
+ for ( var i = 0, count = childNodes.count(); i < count; i++ ) {
+ var child = childNodes.getItem( i );
+
+ if ( child.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$block[ child.getName() ] )
+ return true;
+ }
+
+ return false;
+ };
+
+ /**
+ * Retrieve the list of nodes walked from the start node up to the editable element of the editor.
+ *
+ * @class
+ * @constructor Creates a element path class instance.
+ * @param {CKEDITOR.dom.element} startNode From which the path should start.
+ * @param {CKEDITOR.dom.element} root To which element the path should stop, default to the body element.
+ */
+ CKEDITOR.dom.elementPath = function( startNode, root ) {
+ var block = null;
+ var blockLimit = null;
+ var elements = [];
+
+ // Backward compact.
+ root = root || startNode.getDocument().getBody();
+
+ var e = startNode;
+
+ do {
+ if ( e.type == CKEDITOR.NODE_ELEMENT ) {
+ elements.push( e );
+
+ if ( !this.lastElement ) {
+ this.lastElement = e;
+
+ // If a table is fully selected at the end of the element path,
+ // it must not become the block limit.
+ if ( e.is( CKEDITOR.dtd.$object ) )
+ continue;
+ }
+
+ var elementName = e.getName();
+
+ if ( !blockLimit ) {
+ if ( !block && pathBlockElements[ elementName ] )
+ block = e;
+
+ if ( pathBlockLimitElements[ elementName ] ) {
+ // End level DIV is considered as the block, if no block is available. (#525)
+ // But it must NOT be as the root element.
+ if ( !block && elementName == 'div' && !checkHasBlock( e ) && !e.equals( root ) ) {
+ block = e;
+ } else
+ blockLimit = e;
+ }
+ }
+
+ if ( e.equals( root ) )
+ break;
+ }
+ }
+ while ( ( e = e.getParent() ) );
+
+ /**
+ * @property {CKEDITOR.dom.element}
+ * @todo
+ */
+ this.block = block;
+
+ /**
+ * @property {CKEDITOR.dom.element}
+ * @todo
+ */
+ this.blockLimit = blockLimit;
+
+ /**
+ * The root of the elements path - `startNode` argument passed to class constructor or body element.
+ *
+ * @property {CKEDITOR.dom.element}
+ * @todo
+ */
+ this.root = root;
+
+ /**
+ * @property {CKEDITOR.dom.element[]}
+ * @todo
+ */
+ this.elements = elements;
+ };
+
+})();
+
+CKEDITOR.dom.elementPath.prototype = {
+ /**
+ * Compares this element path with another one.
+ *
+ * @param {CKEDITOR.dom.elementPath} otherPath The elementPath object to be
+ * compared with this one.
+ * @returns {Boolean} `true` if the paths are equal, containing the same
+ * number of elements and the same elements in the same order.
+ */
+ compare: function( otherPath ) {
+ var thisElements = this.elements;
+ var otherElements = otherPath && otherPath.elements;
+
+ if ( !otherElements || thisElements.length != otherElements.length )
+ return false;
+
+ for ( var i = 0; i < thisElements.length; i++ ) {
+ if ( !thisElements[ i ].equals( otherElements[ i ] ) )
+ return false;
+ }
+
+ return true;
+ },
+
+ /**
+ * Search the path elements that meets the specified criteria.
+ *
+ * @param {String/Array/Function/Object/CKEDITOR.dom.element} query The criteria that can be
+ * either a tag name, list (array and object) of tag names, element or an node evaluator function.
+ * @param {Boolean} excludeRoot Not taking path root element into consideration.
+ * @param {Boolean} fromTop Search start from the topmost element instead of bottom.
+ * @returns {CKEDITOR.dom.element} The first matched dom element or `null`.
+ */
+ contains: function( query, excludeRoot, fromTop ) {
+ var evaluator;
+ if ( typeof query == 'string' )
+ evaluator = function( node ) {
+ return node.getName() == query;
+ };
+ if ( query instanceof CKEDITOR.dom.element )
+ evaluator = function( node ) {
+ return node.equals( query );
+ };
+ else if ( CKEDITOR.tools.isArray( query ) )
+ evaluator = function( node ) {
+ return CKEDITOR.tools.indexOf( query, node.getName() ) > -1;
+ };
+ else if ( typeof query == 'function' )
+ evaluator = query;
+ else if ( typeof query == 'object' )
+ evaluator = function( node ) {
+ return node.getName() in query;
+ };
+
+ var elements = this.elements,
+ length = elements.length;
+ excludeRoot && length--;
+
+ if ( fromTop ) {
+ elements = Array.prototype.slice.call( elements, 0 );
+ elements.reverse();
+ }
+
+ for ( var i = 0; i < length; i++ ) {
+ if ( evaluator( elements[ i ] ) )
+ return elements[ i ];
+ }
+
+ return null;
+ },
+
+ /**
+ * Check whether the elements path is the proper context for the specified
+ * tag name in the DTD.
+ *
+ * @param {String} tag The tag name.
+ * @returns {Boolean}
+ */
+ isContextFor: function( tag ) {
+ var holder;
+
+ // Check for block context.
+ if ( tag in CKEDITOR.dtd.$block ) {
+ // Indeterminate elements which are not subjected to be splitted or surrounded must be checked first.
+ var inter = this.contains( CKEDITOR.dtd.$intermediate );
+ holder = inter || ( this.root.equals( this.block ) && this.block ) || this.blockLimit;
+ return !!holder.getDtd()[ tag ];
+ }
+
+ return true;
+
+ },
+
+ /**
+ * Retrieve the text direction for this elements path.
+ *
+ * @returns {'ltr'/'rtl'}
+ */
+ direction: function() {
+ var directionNode = this.block || this.blockLimit || this.root;
+ return directionNode.getDirection( 1 );
+ }
+};
diff --git a/devel/third-party/ckeditor/core/dom/event.js b/devel/third-party/ckeditor/core/dom/event.js
index cf7d66c..f9b549e 100644
--- a/devel/third-party/ckeditor/core/dom/event.js
+++ b/devel/third-party/ckeditor/core/dom/event.js
@@ -1,142 +1,206 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.event} class, which
- * represents the a native DOM event object.
- */
-
-/**
- * Represents a native DOM event object.
- * @constructor
- * @param {Object} domEvent A native DOM event object.
- * @example
- */
-CKEDITOR.dom.event = function( domEvent )
-{
- /**
- * The native DOM event object represented by this class instance.
- * @type Object
- * @example
- */
- this.$ = domEvent;
-};
-
-CKEDITOR.dom.event.prototype =
-{
- /**
- * Gets the key code associated to the event.
- * @returns {Number} The key code.
- * @example
- * alert( event.getKey() ); "65" is "a" has been pressed
- */
- getKey : function()
- {
- return this.$.keyCode || this.$.which;
- },
-
- /**
- * Gets a number represeting the combination of the keys pressed during the
- * event. It is the sum with the current key code and the {@link CKEDITOR.CTRL},
- * {@link CKEDITOR.SHIFT} and {@link CKEDITOR.ALT} constants.
- * @returns {Number} The number representing the keys combination.
- * @example
- * alert( event.getKeystroke() == 65 ); // "a" key
- * alert( event.getKeystroke() == CKEDITOR.CTRL + 65 ); // CTRL + "a" key
- * alert( event.getKeystroke() == CKEDITOR.CTRL + CKEDITOR.SHIFT + 65 ); // CTRL + SHIFT + "a" key
- */
- getKeystroke : function()
- {
- var keystroke = this.getKey();
-
- if ( this.$.ctrlKey || this.$.metaKey )
- keystroke += CKEDITOR.CTRL;
-
- if ( this.$.shiftKey )
- keystroke += CKEDITOR.SHIFT;
-
- if ( this.$.altKey )
- keystroke += CKEDITOR.ALT;
-
- return keystroke;
- },
-
- /**
- * Prevents the original behavior of the event to happen. It can optionally
- * stop propagating the event in the event chain.
- * @param {Boolean} [stopPropagation] Stop propagating this event in the
- * event chain.
- * @example
- * var element = CKEDITOR.document.getById( 'myElement' );
- * element.on( 'click', function( ev )
- * {
- * // The DOM event object is passed by the "data" property.
- * var domEvent = ev.data;
- * // Prevent the click to chave any effect in the element.
- * domEvent.preventDefault();
- * });
- */
- preventDefault : function( stopPropagation )
- {
- var $ = this.$;
- if ( $.preventDefault )
- $.preventDefault();
- else
- $.returnValue = false;
-
- if ( stopPropagation )
- this.stopPropagation();
- },
-
- stopPropagation : function()
- {
- var $ = this.$;
- if ( $.stopPropagation )
- $.stopPropagation();
- else
- $.cancelBubble = true;
- },
-
- /**
- * Returns the DOM node where the event was targeted to.
- * @returns {CKEDITOR.dom.node} The target DOM node.
- * @example
- * var element = CKEDITOR.document.getById( 'myElement' );
- * element.on( 'click', function( ev )
- * {
- * // The DOM event object is passed by the "data" property.
- * var domEvent = ev.data;
- * // Add a CSS class to the event target.
- * domEvent.getTarget().addClass( 'clicked' );
- * });
- */
-
- getTarget : function()
- {
- var rawNode = this.$.target || this.$.srcElement;
- return rawNode ? new CKEDITOR.dom.node( rawNode ) : null;
- }
-};
-
-/**
- * CTRL key (1000).
- * @constant
- * @example
- */
-CKEDITOR.CTRL = 1000;
-
-/**
- * SHIFT key (2000).
- * @constant
- * @example
- */
-CKEDITOR.SHIFT = 2000;
-
-/**
- * ALT key (4000).
- * @constant
- * @example
- */
-CKEDITOR.ALT = 4000;
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.event} class, which
+ * represents the a native DOM event object.
+ */
+
+/**
+ * Represents a native DOM event object.
+ *
+ * @class
+ * @constructor Creates an event class instance.
+ * @param {Object} domEvent A native DOM event object.
+ */
+CKEDITOR.dom.event = function( domEvent ) {
+ /**
+ * The native DOM event object represented by this class instance.
+ *
+ * @readonly
+ */
+ this.$ = domEvent;
+};
+
+CKEDITOR.dom.event.prototype = {
+ /**
+ * Gets the key code associated to the event.
+ *
+ * alert( event.getKey() ); // '65' is 'a' has been pressed
+ *
+ * @returns {Number} The key code.
+ */
+ getKey: function() {
+ return this.$.keyCode || this.$.which;
+ },
+
+ /**
+ * Gets a number represeting the combination of the keys pressed during the
+ * event. It is the sum with the current key code and the {@link CKEDITOR#CTRL},
+ * {@link CKEDITOR#SHIFT} and {@link CKEDITOR#ALT} constants.
+ *
+ * alert( event.getKeystroke() == 65 ); // 'a' key
+ * alert( event.getKeystroke() == CKEDITOR.CTRL + 65 ); // CTRL + 'a' key
+ * alert( event.getKeystroke() == CKEDITOR.CTRL + CKEDITOR.SHIFT + 65 ); // CTRL + SHIFT + 'a' key
+ *
+ * @returns {Number} The number representing the keys combination.
+ */
+ getKeystroke: function() {
+ var keystroke = this.getKey();
+
+ if ( this.$.ctrlKey || this.$.metaKey )
+ keystroke += CKEDITOR.CTRL;
+
+ if ( this.$.shiftKey )
+ keystroke += CKEDITOR.SHIFT;
+
+ if ( this.$.altKey )
+ keystroke += CKEDITOR.ALT;
+
+ return keystroke;
+ },
+
+ /**
+ * Prevents the original behavior of the event to happen. It can optionally
+ * stop propagating the event in the event chain.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.on( 'click', function( ev ) {
+ * // The DOM event object is passed by the 'data' property.
+ * var domEvent = ev.data;
+ * // Prevent the click to chave any effect in the element.
+ * domEvent.preventDefault();
+ * } );
+ *
+ * @param {Boolean} [stopPropagation=false] Stop propagating this event in the
+ * event chain.
+ */
+ preventDefault: function( stopPropagation ) {
+ var $ = this.$;
+ if ( $.preventDefault )
+ $.preventDefault();
+ else
+ $.returnValue = false;
+
+ if ( stopPropagation )
+ this.stopPropagation();
+ },
+
+ /**
+ * Stops this event propagation in the event chain.
+ */
+ stopPropagation: function() {
+ var $ = this.$;
+ if ( $.stopPropagation )
+ $.stopPropagation();
+ else
+ $.cancelBubble = true;
+ },
+
+ /**
+ * Returns the DOM node where the event was targeted to.
+ *
+ * var element = CKEDITOR.document.getById( 'myElement' );
+ * element.on( 'click', function( ev ) {
+ * // The DOM event object is passed by the 'data' property.
+ * var domEvent = ev.data;
+ * // Add a CSS class to the event target.
+ * domEvent.getTarget().addClass( 'clicked' );
+ * } );
+ *
+ * @returns {CKEDITOR.dom.node} The target DOM node.
+ */
+ getTarget: function() {
+ var rawNode = this.$.target || this.$.srcElement;
+ return rawNode ? new CKEDITOR.dom.node( rawNode ) : null;
+ },
+
+ /**
+ * Returns an integer value that indicates the current processing phase of an event.
+ * For browsers that doesn't support event phase, {@link CKEDITOR#EVENT_PHASE_AT_TARGET} is always returned.
+ *
+ * @returns {Number} One of {@link CKEDITOR#EVENT_PHASE_CAPTURING},
+ * {@link CKEDITOR#EVENT_PHASE_AT_TARGET}, or {@link CKEDITOR#EVENT_PHASE_BUBBLING}.
+ */
+ getPhase: function() {
+ return this.$.eventPhase || 2;
+ },
+
+ /**
+ * Retrieves the coordinates of the mouse pointer relative to the top-left
+ * corner of the document, in mouse related event.
+ * @returns {Object} The object contains the position.
+ * @example
+ * element.on( 'mousemouse', function( ev )
+ * {
+ * var pageOffset = ev.data.getPageOffset();
+ * alert( pageOffset.x ); // page offset X
+ * alert( pageOffset.y ); // page offset Y
+ * });
+ */
+ getPageOffset : function() {
+ var doc = this.getTarget().getDocument().$;
+ var pageX = this.$.pageX || this.$.clientX + ( doc.documentElement.scrollLeft || doc.body.scrollLeft );
+ var pageY = this.$.pageY || this.$.clientY + ( doc.documentElement.scrollTop || doc.body.scrollTop );
+ return { x : pageX, y : pageY };
+ }
+};
+
+// For the followind constants, we need to go over the Unicode boundaries
+// (0x10FFFF) to avoid collision.
+
+/**
+ * CTRL key (0x110000).
+ *
+ * @readonly
+ * @property {Number} [=0x110000]
+ * @member CKEDITOR
+ */
+CKEDITOR.CTRL = 0x110000;
+
+/**
+ * SHIFT key (0x220000).
+ *
+ * @readonly
+ * @property {Number} [=0x220000]
+ * @member CKEDITOR
+ */
+CKEDITOR.SHIFT = 0x220000;
+
+/**
+ * ALT key (0x440000).
+ *
+ * @readonly
+ * @property {Number} [=0x440000]
+ * @member CKEDITOR
+ */
+CKEDITOR.ALT = 0x440000;
+
+/**
+ * Capturing phase.
+ *
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
+ */
+CKEDITOR.EVENT_PHASE_CAPTURING = 1;
+
+/**
+ * Event at target.
+ *
+ * @readonly
+ * @property {Number} [=2]
+ * @member CKEDITOR
+ */
+CKEDITOR.EVENT_PHASE_AT_TARGET = 2;
+
+/**
+ * Bubbling phase.
+ *
+ * @readonly
+ * @property {Number} [=3]
+ * @member CKEDITOR
+ */
+CKEDITOR.EVENT_PHASE_BUBBLING = 3;
diff --git a/devel/third-party/ckeditor/core/dom/iterator.js b/devel/third-party/ckeditor/core/dom/iterator.js
new file mode 100644
index 0000000..d449d46
--- /dev/null
+++ b/devel/third-party/ckeditor/core/dom/iterator.js
@@ -0,0 +1,335 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @ignore
+ * File overview: DOM iterator, which iterates over list items, lines and paragraphs.
+ */
+
+(function() {
+ /**
+ * Represents iterator class.
+ *
+ * @class CKEDITOR.dom.iterator
+ * @constructor Creates an iterator class instance.
+ * @param {CKEDITOR.dom.range} range
+ * @todo
+ */
+ function iterator( range ) {
+ if ( arguments.length < 1 )
+ return;
+
+ this.range = range;
+ this.forceBrBreak = 0;
+
+ // Whether include <br>s into the enlarged range.(#3730).
+ this.enlargeBr = 1;
+ this.enforceRealBlocks = 0;
+
+ this._ || ( this._ = {} );
+ }
+
+ var beginWhitespaceRegex = /^[\r\n\t ]+$/,
+ // Ignore bookmark nodes.(#3783)
+ bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
+ whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
+ skipGuard = function( node ) {
+ return bookmarkGuard( node ) && whitespacesGuard( node );
+ };
+
+ // Get a reference for the next element, bookmark nodes are skipped.
+ function getNextSourceNode( node, startFromSibling, lastNode ) {
+ var next = node.getNextSourceNode( startFromSibling, null, lastNode );
+ while ( !bookmarkGuard( next ) )
+ next = next.getNextSourceNode( startFromSibling, null, lastNode );
+ return next;
+ }
+
+ iterator.prototype = {
+ /**
+ * @todo
+ */
+ getNextParagraph: function( blockTag ) {
+ blockTag = blockTag || 'p';
+
+ // Block-less range should be checked first.
+ if ( !CKEDITOR.dtd[ this.range.root.getName() ][ blockTag ] )
+ return null;
+
+ // The block element to be returned.
+ var block;
+
+ // The range object used to identify the paragraph contents.
+ var range;
+
+ // Indicats that the current element in the loop is the last one.
+ var isLast;
+
+ // Indicate at least one of the range boundaries is inside a preformat block.
+ var touchPre;
+
+ // Instructs to cleanup remaining BRs.
+ var removePreviousBr, removeLastBr;
+
+ // This is the first iteration. Let's initialize it.
+ if ( !this._.started ) {
+ range = this.range.clone();
+
+ // Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
+ range.shrink( CKEDITOR.NODE_ELEMENT, true );
+
+ touchPre = range.endContainer.hasAscendant( 'pre', true ) || range.startContainer.hasAscendant( 'pre', true );
+
+ range.enlarge( this.forceBrBreak && !touchPre || !this.enlargeBr ? CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
+
+ if ( !range.collapsed ) {
+ var walker = new CKEDITOR.dom.walker( range.clone() ),
+ ignoreBookmarkTextEvaluator = CKEDITOR.dom.walker.bookmark( true, true );
+ // Avoid anchor inside bookmark inner text.
+ walker.evaluator = ignoreBookmarkTextEvaluator;
+ this._.nextNode = walker.next();
+ // TODO: It's better to have walker.reset() used here.
+ walker = new CKEDITOR.dom.walker( range.clone() );
+ walker.evaluator = ignoreBookmarkTextEvaluator;
+ var lastNode = walker.previous();
+ this._.lastNode = lastNode.getNextSourceNode( true );
+
+ // We may have an empty text node at the end of block due to [3770].
+ // If that node is the lastNode, it would cause our logic to leak to the
+ // next block.(#3887)
+ if ( this._.lastNode && this._.lastNode.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim( this._.lastNode.getText() ) && this._.lastNode.getParent().isBlockBoundary() ) {
+ var testRange = this.range.clone();
+ testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
+ if ( testRange.checkEndOfBlock() ) {
+ var path = new CKEDITOR.dom.elementPath( testRange.endContainer, testRange.root );
+ var lastBlock = path.block || path.blockLimit;
+ this._.lastNode = lastBlock.getNextSourceNode( true );
+ }
+ }
+
+ // Probably the document end is reached, we need a marker node.
+ if ( !this._.lastNode ) {
+ this._.lastNode = this._.docEndMarker = range.document.createText( '' );
+ this._.lastNode.insertAfter( lastNode );
+ }
+
+ // Let's reuse this variable.
+ range = null;
+ }
+
+ this._.started = 1;
+ }
+
+ var currentNode = this._.nextNode;
+ lastNode = this._.lastNode;
+
+ this._.nextNode = null;
+ while ( currentNode ) {
+ // closeRange indicates that a paragraph boundary has been found,
+ // so the range can be closed.
+ var closeRange = 0,
+ parentPre = currentNode.hasAscendant( 'pre' );
+
+ // includeNode indicates that the current node is good to be part
+ // of the range. By default, any non-element node is ok for it.
+ var includeNode = ( currentNode.type != CKEDITOR.NODE_ELEMENT ),
+ continueFromSibling = 0;
+
+ // If it is an element node, let's check if it can be part of the
+ // range.
+ if ( !includeNode ) {
+ var nodeName = currentNode.getName();
+
+ if ( currentNode.isBlockBoundary( this.forceBrBreak && !parentPre && { br:1 } ) ) {
+ // <br> boundaries must be part of the range. It will
+ // happen only if ForceBrBreak.
+ if ( nodeName == 'br' )
+ includeNode = 1;
+ else if ( !range && !currentNode.getChildCount() && nodeName != 'hr' ) {
+ // If we have found an empty block, and haven't started
+ // the range yet, it means we must return this block.
+ block = currentNode;
+ isLast = currentNode.equals( lastNode );
+ break;
+ }
+
+ // The range must finish right before the boundary,
+ // including possibly skipped empty spaces. (#1603)
+ if ( range ) {
+ range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
+
+ // The found boundary must be set as the next one at this
+ // point. (#1717)
+ if ( nodeName != 'br' )
+ this._.nextNode = currentNode;
+ }
+
+ closeRange = 1;
+ } else {
+ // If we have child nodes, let's check them.
+ if ( currentNode.getFirst() ) {
+ // If we don't have a range yet, let's start it.
+ if ( !range ) {
+ range = this.range.clone();
+ range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
+ }
+
+ currentNode = currentNode.getFirst();
+ continue;
+ }
+ includeNode = 1;
+ }
+ } else if ( currentNode.type == CKEDITOR.NODE_TEXT ) {
+ // Ignore normal whitespaces (i.e. not including or
+ // other unicode whitespaces) before/after a block node.
+ if ( beginWhitespaceRegex.test( currentNode.getText() ) )
+ includeNode = 0;
+ }
+
+ // The current node is good to be part of the range and we are
+ // starting a new range, initialize it first.
+ if ( includeNode && !range ) {
+ range = this.range.clone();
+ range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
+ }
+
+ // The last node has been found.
+ isLast = ( ( !closeRange || includeNode ) && currentNode.equals( lastNode ) );
+
+ // If we are in an element boundary, let's check if it is time
+ // to close the range, otherwise we include the parent within it.
+ if ( range && !closeRange ) {
+ while ( !currentNode.getNext( skipGuard ) && !isLast ) {
+ var parentNode = currentNode.getParent();
+
+ if ( parentNode.isBlockBoundary( this.forceBrBreak && !parentPre && { br:1 } ) ) {
+ closeRange = 1;
+ includeNode = 0;
+ isLast = isLast || ( parentNode.equals( lastNode ) );
+ // Make sure range includes bookmarks at the end of the block. (#7359)
+ range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
+ break;
+ }
+
+ currentNode = parentNode;
+ includeNode = 1;
+ isLast = ( currentNode.equals( lastNode ) );
+ continueFromSibling = 1;
+ }
+ }
+
+ // Now finally include the node.
+ if ( includeNode )
+ range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
+
+ currentNode = getNextSourceNode( currentNode, continueFromSibling, lastNode );
+ isLast = !currentNode;
+
+ // We have found a block boundary. Let's close the range and move out of the
+ // loop.
+ if ( isLast || ( closeRange && range ) )
+ break;
+ }
+
+ // Now, based on the processed range, look for (or create) the block to be returned.
+ if ( !block ) {
+ // If no range has been found, this is the end.
+ if ( !range ) {
+ this._.docEndMarker && this._.docEndMarker.remove();
+ this._.nextNode = null;
+ return null;
+ }
+
+ var startPath = new CKEDITOR.dom.elementPath( range.startContainer, range.root );
+ var startBlockLimit = startPath.blockLimit,
+ checkLimits = { div:1,th:1,td:1 };
+ block = startPath.block;
+
+ if ( !block && startBlockLimit && !this.enforceRealBlocks && checkLimits[ startBlockLimit.getName() ] && range.checkStartOfBlock() && range.checkEndOfBlock() && !startBlockLimit.equals( range.root ) )
+ block = startBlockLimit;
+ else if ( !block || ( this.enforceRealBlocks && block.getName() == 'li' ) ) {
+ // Create the fixed block.
+ block = this.range.document.createElement( blockTag );
+
+ // Move the contents of the temporary range to the fixed block.
+ range.extractContents().appendTo( block );
+ block.trim();
+
+ // Insert the fixed block into the DOM.
+ range.insertNode( block );
+
+ removePreviousBr = removeLastBr = true;
+ } else if ( block.getName() != 'li' ) {
+ // If the range doesn't includes the entire contents of the
+ // block, we must split it, isolating the range in a dedicated
+ // block.
+ if ( !range.checkStartOfBlock() || !range.checkEndOfBlock() ) {
+ // The resulting block will be a clone of the current one.
+ block = block.clone( false );
+
+ // Extract the range contents, moving it to the new block.
+ range.extractContents().appendTo( block );
+ block.trim();
+
+ // Split the block. At this point, the range will be in the
+ // right position for our intents.
+ var splitInfo = range.splitBlock();
+
+ removePreviousBr = !splitInfo.wasStartOfBlock;
+ removeLastBr = !splitInfo.wasEndOfBlock;
+
+ // Insert the new block into the DOM.
+ range.insertNode( block );
+ }
+ } else if ( !isLast ) {
+ // LIs are returned as is, with all their children (due to the
+ // nested lists). But, the next node is the node right after
+ // the current range, which could be an <li> child (nested
+ // lists) or the next sibling <li>.
+
+ this._.nextNode = ( block.equals( lastNode ) ? null : getNextSourceNode( range.getBoundaryNodes().endNode, 1, lastNode ) );
+ }
+ }
+
+ if ( removePreviousBr ) {
+ var previousSibling = block.getPrevious();
+ if ( previousSibling && previousSibling.type == CKEDITOR.NODE_ELEMENT ) {
+ if ( previousSibling.getName() == 'br' )
+ previousSibling.remove();
+ else if ( previousSibling.getLast() && previousSibling.getLast().$.nodeName.toLowerCase() == 'br' )
+ previousSibling.getLast().remove();
+ }
+ }
+
+ if ( removeLastBr ) {
+ var lastChild = block.getLast();
+ if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.getName() == 'br' ) {
+ // Take care not to remove the block expanding <br> in non-IE browsers.
+ if ( CKEDITOR.env.ie || lastChild.getPrevious( bookmarkGuard ) || lastChild.getNext( bookmarkGuard ) )
+ lastChild.remove();
+ }
+ }
+
+ // Get a reference for the next element. This is important because the
+ // above block can be removed or changed, so we can rely on it for the
+ // next interation.
+ if ( !this._.nextNode ) {
+ this._.nextNode = ( isLast || block.equals( lastNode ) || !lastNode ) ? null : getNextSourceNode( block, 1, lastNode );
+ }
+
+ return block;
+ }
+ };
+
+ /**
+ * Creates {CKEDITOR.dom.iterator} instance for this range.
+ *
+ * @member CKEDITOR.dom.range
+ * @returns {CKEDITOR.dom.iterator}
+ */
+ CKEDITOR.dom.range.prototype.createIterator = function() {
+ return new iterator( this );
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/dom/node.js b/devel/third-party/ckeditor/core/dom/node.js
index 02a726c..c08bcd3 100644
--- a/devel/third-party/ckeditor/core/dom/node.js
+++ b/devel/third-party/ckeditor/core/dom/node.js
@@ -1,683 +1,737 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.node} class, which is the base
- * class for classes that represent DOM nodes.
- */
-
-/**
- * Base class for classes representing DOM nodes. This constructor may return
- * and instance of classes that inherits this class, like
- * {@link CKEDITOR.dom.element} or {@link CKEDITOR.dom.text}.
- * @augments CKEDITOR.dom.domObject
- * @param {Object} domNode A native DOM node.
- * @constructor
- * @see CKEDITOR.dom.element
- * @see CKEDITOR.dom.text
- * @example
- */
-CKEDITOR.dom.node = function( domNode )
-{
- if ( domNode )
- {
- switch ( domNode.nodeType )
- {
- // Safari don't consider document as element node type. (#3389)
- case CKEDITOR.NODE_DOCUMENT :
- return new CKEDITOR.dom.document( domNode );
-
- case CKEDITOR.NODE_ELEMENT :
- return new CKEDITOR.dom.element( domNode );
-
- case CKEDITOR.NODE_TEXT :
- return new CKEDITOR.dom.text( domNode );
- }
-
- // Call the base constructor.
- CKEDITOR.dom.domObject.call( this, domNode );
- }
-
- return this;
-};
-
-CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject();
-
-/**
- * Element node type.
- * @constant
- * @example
- */
-CKEDITOR.NODE_ELEMENT = 1;
-
-/**
- * Document node type.
- * @constant
- * @example
- */
-CKEDITOR.NODE_DOCUMENT = 9;
-
-/**
- * Text node type.
- * @constant
- * @example
- */
-CKEDITOR.NODE_TEXT = 3;
-
-/**
- * Comment node type.
- * @constant
- * @example
- */
-CKEDITOR.NODE_COMMENT = 8;
-
-CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11;
-
-CKEDITOR.POSITION_IDENTICAL = 0;
-CKEDITOR.POSITION_DISCONNECTED = 1;
-CKEDITOR.POSITION_FOLLOWING = 2;
-CKEDITOR.POSITION_PRECEDING = 4;
-CKEDITOR.POSITION_IS_CONTAINED = 8;
-CKEDITOR.POSITION_CONTAINS = 16;
-
-CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype,
- /** @lends CKEDITOR.dom.node.prototype */
- {
- /**
- * Makes this node child of another element.
- * @param {CKEDITOR.dom.element} element The target element to which append
- * this node.
- * @returns {CKEDITOR.dom.element} The target element.
- * @example
- * var p = new CKEDITOR.dom.element( 'p' );
- * var strong = new CKEDITOR.dom.element( 'strong' );
- * strong.appendTo( p );
- *
- * // result: "<p><strong></strong></p>"
- */
- appendTo : function( element, toStart )
- {
- element.append( this, toStart );
- return element;
- },
-
- clone : function( includeChildren, cloneId )
- {
- var $clone = this.$.cloneNode( includeChildren );
-
- if ( !cloneId )
- {
- var removeIds = function( node )
- {
- if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
- return;
-
- node.removeAttribute( 'id', false ) ;
- node.removeAttribute( '_cke_expando', false ) ;
-
- var childs = node.childNodes;
- for ( var i=0 ; i < childs.length ; i++ )
- removeIds( childs[ i ] );
- };
-
- // The "id" attribute should never be cloned to avoid duplication.
- removeIds( $clone );
- }
-
- return new CKEDITOR.dom.node( $clone );
- },
-
- hasPrevious : function()
- {
- return !!this.$.previousSibling;
- },
-
- hasNext : function()
- {
- return !!this.$.nextSibling;
- },
-
- /**
- * Inserts this element after a node.
- * @param {CKEDITOR.dom.node} node The that will preceed this element.
- * @returns {CKEDITOR.dom.node} The node preceeding this one after
- * insertion.
- * @example
- * var em = new CKEDITOR.dom.element( 'em' );
- * var strong = new CKEDITOR.dom.element( 'strong' );
- * strong.insertAfter( em );
- *
- * // result: "<em></em><strong></strong>"
- */
- insertAfter : function( node )
- {
- node.$.parentNode.insertBefore( this.$, node.$.nextSibling );
- return node;
- },
-
- /**
- * Inserts this element before a node.
- * @param {CKEDITOR.dom.node} node The that will be after this element.
- * @returns {CKEDITOR.dom.node} The node being inserted.
- * @example
- * var em = new CKEDITOR.dom.element( 'em' );
- * var strong = new CKEDITOR.dom.element( 'strong' );
- * strong.insertBefore( em );
- *
- * // result: "<strong></strong><em></em>"
- */
- insertBefore : function( node )
- {
- node.$.parentNode.insertBefore( this.$, node.$ );
- return node;
- },
-
- insertBeforeMe : function( node )
- {
- this.$.parentNode.insertBefore( node.$, this.$ );
- return node;
- },
-
- /**
- * Retrieves a uniquely identifiable tree address for this node.
- * The tree address returns is an array of integers, with each integer
- * indicating a child index of a DOM node, starting from
- * document.documentElement.
- *
- * For example, assuming <body> is the second child from <html> (<head>
- * being the first), and we'd like to address the third child under the
- * fourth child of body, the tree address returned would be:
- * [1, 3, 2]
- *
- * The tree address cannot be used for finding back the DOM tree node once
- * the DOM tree structure has been modified.
- */
- getAddress : function( normalized )
- {
- var address = [];
- var $documentElement = this.getDocument().$.documentElement;
- var node = this.$;
-
- while ( node && node != $documentElement )
- {
- var parentNode = node.parentNode;
- var currentIndex = -1;
-
- if ( parentNode )
- {
- for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )
- {
- var candidate = parentNode.childNodes[i];
-
- if ( normalized &&
- candidate.nodeType == 3 &&
- candidate.previousSibling &&
- candidate.previousSibling.nodeType == 3 )
- {
- continue;
- }
-
- currentIndex++;
-
- if ( candidate == node )
- break;
- }
-
- address.unshift( currentIndex );
- }
-
- node = parentNode;
- }
-
- return address;
- },
-
- /**
- * Gets the document containing this element.
- * @returns {CKEDITOR.dom.document} The document.
- * @example
- * var element = CKEDITOR.document.getById( 'example' );
- * alert( <b>element.getDocument().equals( CKEDITOR.document )</b> ); // "true"
- */
- getDocument : function()
- {
- var document = new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument );
-
- return (
- this.getDocument = function()
- {
- return document;
- })();
- },
-
- getIndex : function()
- {
- var $ = this.$;
-
- var currentNode = $.parentNode && $.parentNode.firstChild;
- var currentIndex = -1;
-
- while ( currentNode )
- {
- currentIndex++;
-
- if ( currentNode == $ )
- return currentIndex;
-
- currentNode = currentNode.nextSibling;
- }
-
- return -1;
- },
-
- getNextSourceNode : function( startFromSibling, nodeType, guard )
- {
- // If "guard" is a node, transform it in a function.
- if ( guard && !guard.call )
- {
- var guardNode = guard;
- guard = function( node )
- {
- return !node.equals( guardNode );
- };
- }
-
- var node = ( !startFromSibling && this.getFirst && this.getFirst() ),
- parent;
-
- // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
- // send the 'moving out' signal even we don't actually dive into.
- if ( !node )
- {
- if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
- return null;
- node = this.getNext();
- }
-
- while ( !node && ( parent = ( parent || this ).getParent() ) )
- {
- // The guard check sends the "true" paramenter to indicate that
- // we are moving "out" of the element.
- if ( guard && guard( parent, true ) === false )
- return null;
-
- node = parent.getNext();
- }
-
- if ( !node )
- return null;
-
- if ( guard && guard( node ) === false )
- return null;
-
- if ( nodeType && nodeType != node.type )
- return node.getNextSourceNode( false, nodeType, guard );
-
- return node;
- },
-
- getPreviousSourceNode : function( startFromSibling, nodeType, guard )
- {
- if ( guard && !guard.call )
- {
- var guardNode = guard;
- guard = function( node )
- {
- return !node.equals( guardNode );
- };
- }
-
- var node = ( !startFromSibling && this.getLast && this.getLast() ),
- parent;
-
- // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
- // send the 'moving out' signal even we don't actually dive into.
- if ( !node )
- {
- if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
- return null;
- node = this.getPrevious();
- }
-
- while ( !node && ( parent = ( parent || this ).getParent() ) )
- {
- // The guard check sends the "true" paramenter to indicate that
- // we are moving "out" of the element.
- if ( guard && guard( parent, true ) === false )
- return null;
-
- node = parent.getPrevious();
- }
-
- if ( !node )
- return null;
-
- if ( guard && guard( node ) === false )
- return null;
-
- if ( nodeType && node.type != nodeType )
- return node.getPreviousSourceNode( false, nodeType, guard );
-
- return node;
- },
-
- getPrevious : function( evaluator )
- {
- var previous = this.$, retval;
- do
- {
- previous = previous.previousSibling;
- retval = previous && new CKEDITOR.dom.node( previous );
- }
- while ( retval && evaluator && !evaluator( retval ) )
- return retval;
- },
-
- /**
- * Gets the node that follows this element in its parent's child list.
- * @param {Function} evaluator Filtering the result node.
- * @returns {CKEDITOR.dom.node} The next node or null if not available.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b> <i>next</i></div>' );
- * var first = <b>element.getFirst().getNext()</b>;
- * alert( first.getName() ); // "i"
- */
- getNext : function( evaluator )
- {
- var next = this.$, retval;
- do
- {
- next = next.nextSibling;
- retval = next && new CKEDITOR.dom.node( next );
- }
- while ( retval && evaluator && !evaluator( retval ) )
- return retval;
- },
-
- /**
- * Gets the parent element for this node.
- * @returns {CKEDITOR.dom.element} The parent element.
- * @example
- * var node = editor.document.getBody().getFirst();
- * var parent = node.<b>getParent()</b>;
- * alert( node.getName() ); // "body"
- */
- getParent : function()
- {
- var parent = this.$.parentNode;
- return ( parent && parent.nodeType == 1 ) ? new CKEDITOR.dom.node( parent ) : null;
- },
-
- getParents : function( closerFirst )
- {
- var node = this;
- var parents = [];
-
- do
- {
- parents[ closerFirst ? 'push' : 'unshift' ]( node );
- }
- while ( ( node = node.getParent() ) )
-
- return parents;
- },
-
- getCommonAncestor : function( node )
- {
- if ( node.equals( this ) )
- return this;
-
- if ( node.contains && node.contains( this ) )
- return node;
-
- var start = this.contains ? this : this.getParent();
-
- do
- {
- if ( start.contains( node ) )
- return start;
- }
- while ( ( start = start.getParent() ) );
-
- return null;
- },
-
- getPosition : function( otherNode )
- {
- var $ = this.$;
- var $other = otherNode.$;
-
- if ( $.compareDocumentPosition )
- return $.compareDocumentPosition( $other );
-
- // IE and Safari have no support for compareDocumentPosition.
-
- if ( $ == $other )
- return CKEDITOR.POSITION_IDENTICAL;
-
- // Only element nodes support contains and sourceIndex.
- if ( this.type == CKEDITOR.NODE_ELEMENT && otherNode.type == CKEDITOR.NODE_ELEMENT )
- {
- if ( $.contains )
- {
- if ( $.contains( $other ) )
- return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING;
-
- if ( $other.contains( $ ) )
- return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
- }
-
- if ( 'sourceIndex' in $ )
- {
- return ( $.sourceIndex < 0 || $other.sourceIndex < 0 ) ? CKEDITOR.POSITION_DISCONNECTED :
- ( $.sourceIndex < $other.sourceIndex ) ? CKEDITOR.POSITION_PRECEDING :
- CKEDITOR.POSITION_FOLLOWING;
- }
- }
-
- // For nodes that don't support compareDocumentPosition, contains
- // or sourceIndex, their "address" is compared.
-
- var addressOfThis = this.getAddress(),
- addressOfOther = otherNode.getAddress(),
- minLevel = Math.min( addressOfThis.length, addressOfOther.length );
-
- // Determinate preceed/follow relationship.
- for ( var i = 0 ; i <= minLevel - 1 ; i++ )
- {
- if ( addressOfThis[ i ] != addressOfOther[ i ] )
- {
- if ( i < minLevel )
- {
- return addressOfThis[ i ] < addressOfOther[ i ] ?
- CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
- }
- break;
- }
- }
-
- // Determinate contains/contained relationship.
- return ( addressOfThis.length < addressOfOther.length ) ?
- CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING :
- CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
- },
-
- /**
- * Gets the closes ancestor node of a specified node name.
- * @param {String} name Node name of ancestor node.
- * @param {Boolean} includeSelf (Optional) Whether to include the current
- * node in the calculation or not.
- * @returns {CKEDITOR.dom.node} Ancestor node.
- */
- getAscendant : function( name, includeSelf )
- {
- var $ = this.$;
-
- if ( !includeSelf )
- $ = $.parentNode;
-
- while ( $ )
- {
- if ( $.nodeName && $.nodeName.toLowerCase() == name )
- return new CKEDITOR.dom.node( $ );
-
- $ = $.parentNode;
- }
- return null;
- },
-
- hasAscendant : function( name, includeSelf )
- {
- var $ = this.$;
-
- if ( !includeSelf )
- $ = $.parentNode;
-
- while ( $ )
- {
- if ( $.nodeName && $.nodeName.toLowerCase() == name )
- return true;
-
- $ = $.parentNode;
- }
- return false;
- },
-
- move : function( target, toStart )
- {
- target.append( this.remove(), toStart );
- },
-
- /**
- * Removes this node from the document DOM.
- * @param {Boolean} [preserveChildren] Indicates that the children
- * elements must remain in the document, removing only the outer
- * tags.
- * @example
- * var element = CKEDITOR.dom.element.getById( 'MyElement' );
- * <b>element.remove()</b>;
- */
- remove : function( preserveChildren )
- {
- var $ = this.$;
- var parent = $.parentNode;
-
- if ( parent )
- {
- if ( preserveChildren )
- {
- // Move all children before the node.
- for ( var child ; ( child = $.firstChild ) ; )
- {
- parent.insertBefore( $.removeChild( child ), $ );
- }
- }
-
- parent.removeChild( $ );
- }
-
- return this;
- },
-
- replace : function( nodeToReplace )
- {
- this.insertBefore( nodeToReplace );
- nodeToReplace.remove();
- },
-
- trim : function()
- {
- this.ltrim();
- this.rtrim();
- },
-
- ltrim : function()
- {
- var child;
- while ( this.getFirst && ( child = this.getFirst() ) )
- {
- if ( child.type == CKEDITOR.NODE_TEXT )
- {
- var trimmed = CKEDITOR.tools.ltrim( child.getText() ),
- originalLength = child.getLength();
-
- if ( !trimmed )
- {
- child.remove();
- continue;
- }
- else if ( trimmed.length < originalLength )
- {
- child.split( originalLength - trimmed.length );
-
- // IE BUG: child.remove() may raise JavaScript errors here. (#81)
- this.$.removeChild( this.$.firstChild );
- }
- }
- break;
- }
- },
-
- rtrim : function()
- {
- var child;
- while ( this.getLast && ( child = this.getLast() ) )
- {
- if ( child.type == CKEDITOR.NODE_TEXT )
- {
- var trimmed = CKEDITOR.tools.rtrim( child.getText() ),
- originalLength = child.getLength();
-
- if ( !trimmed )
- {
- child.remove();
- continue;
- }
- else if ( trimmed.length < originalLength )
- {
- child.split( trimmed.length );
-
- // IE BUG: child.getNext().remove() may raise JavaScript errors here.
- // (#81)
- this.$.lastChild.parentNode.removeChild( this.$.lastChild );
- }
- }
- break;
- }
-
- if ( !CKEDITOR.env.ie && !CKEDITOR.env.opera )
- {
- child = this.$.lastChild;
-
- if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' )
- {
- // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
- child.parentNode.removeChild( child ) ;
- }
- }
- },
-
- isReadOnly : function()
- {
- var current = this;
- while( current )
- {
- if ( current.type == CKEDITOR.NODE_ELEMENT )
- {
- if ( current.is( 'body' ) || current.getCustomData( '_cke_notReadOnly' ) )
- break;
-
- if ( current.getAttribute( 'contentEditable' ) == 'false' )
- return current;
- else if ( current.getAttribute( 'contentEditable' ) == 'true' )
- break;
- }
- current = current.getParent();
- }
-
- return false;
- }
- }
-);
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.node} class which is the base
+ * class for classes that represent DOM nodes.
+ */
+
+/**
+ * Base class for classes representing DOM nodes. This constructor may return
+ * an instance of a class that inherits from this class, like
+ * {@link CKEDITOR.dom.element} or {@link CKEDITOR.dom.text}.
+ *
+ * @class
+ * @extends CKEDITOR.dom.domObject
+ * @constructor Creates a node class instance.
+ * @param {Object} domNode A native DOM node.
+ * @see CKEDITOR.dom.element
+ * @see CKEDITOR.dom.text
+ */
+CKEDITOR.dom.node = function( domNode ) {
+ if ( domNode ) {
+ var type = domNode.nodeType == CKEDITOR.NODE_DOCUMENT ? 'document' : domNode.nodeType == CKEDITOR.NODE_ELEMENT ? 'element' : domNode.nodeType == CKEDITOR.NODE_TEXT ? 'text' : domNode.nodeType == CKEDITOR.NODE_COMMENT ? 'comment' : domNode.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT ? 'documentFragment' : 'domObject'; // Call the base constructor otherwise.
+
+ return new CKEDITOR.dom[ type ]( domNode );
+ }
+
+ return this;
+};
+
+CKEDITOR.dom.node.prototype = new CKEDITOR.dom.domObject();
+
+/**
+ * Element node type.
+ *
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
+ */
+CKEDITOR.NODE_ELEMENT = 1;
+
+/**
+ * Document node type.
+ *
+ * @readonly
+ * @property {Number} [=9]
+ * @member CKEDITOR
+ */
+CKEDITOR.NODE_DOCUMENT = 9;
+
+/**
+ * Text node type.
+ *
+ * @readonly
+ * @property {Number} [=3]
+ * @member CKEDITOR
+ */
+CKEDITOR.NODE_TEXT = 3;
+
+/**
+ * Comment node type.
+ *
+ * @readonly
+ * @property {Number} [=8]
+ * @member CKEDITOR
+ */
+CKEDITOR.NODE_COMMENT = 8;
+
+/**
+ * Document fragment node type.
+ *
+ * @readonly
+ * @property {Number} [=11]
+ * @member CKEDITOR
+ */
+CKEDITOR.NODE_DOCUMENT_FRAGMENT = 11;
+
+CKEDITOR.POSITION_IDENTICAL = 0;
+CKEDITOR.POSITION_DISCONNECTED = 1;
+CKEDITOR.POSITION_FOLLOWING = 2;
+CKEDITOR.POSITION_PRECEDING = 4;
+CKEDITOR.POSITION_IS_CONTAINED = 8;
+CKEDITOR.POSITION_CONTAINS = 16;
+
+CKEDITOR.tools.extend( CKEDITOR.dom.node.prototype, {
+ /**
+ * Makes this node a child of another element.
+ *
+ * var p = new CKEDITOR.dom.element( 'p' );
+ * var strong = new CKEDITOR.dom.element( 'strong' );
+ * strong.appendTo( p );
+ *
+ * // Result: '<p><strong></strong></p>'.
+ *
+ * @param {CKEDITOR.dom.element} element The target element to which this node will be appended.
+ * @returns {CKEDITOR.dom.element} The target element.
+ */
+ appendTo: function( element, toStart ) {
+ element.append( this, toStart );
+ return element;
+ },
+
+ /**
+ * Clone this node.
+ *
+ * **Note**: Values set by {#setCustomData} won't be available in the clone.
+ *
+ * @param {Boolean} [includeChildren=false] If `true` then all node's
+ * children will be cloned recursively.
+ * @param {Boolean} [cloneId=false] Whether ID attributes should be cloned too.
+ * @returns {CKEDITOR.dom.node} Clone of this node.
+ */
+ clone: function( includeChildren, cloneId ) {
+ var $clone = this.$.cloneNode( includeChildren );
+
+ var removeIds = function( node ) {
+ // Reset data-cke-expando only when has been cloned (IE and only for some types of objects).
+ if ( node['data-cke-expando'] )
+ node['data-cke-expando'] = false;
+
+ if ( node.nodeType != CKEDITOR.NODE_ELEMENT )
+ return;
+ if ( !cloneId )
+ node.removeAttribute( 'id', false );
+
+ if ( includeChildren ) {
+ var childs = node.childNodes;
+ for ( var i = 0; i < childs.length; i++ )
+ removeIds( childs[ i ] );
+ }
+ };
+
+ // The "id" attribute should never be cloned to avoid duplication.
+ removeIds( $clone );
+
+ return new CKEDITOR.dom.node( $clone );
+ },
+
+ /**
+ * Check if node is preceded by any sibling.
+ *
+ * @returns {Boolean}
+ */
+ hasPrevious: function() {
+ return !!this.$.previousSibling;
+ },
+
+ /**
+ * Check if node is succeeded by any sibling.
+ *
+ * @returns {Boolean}
+ */
+ hasNext: function() {
+ return !!this.$.nextSibling;
+ },
+
+ /**
+ * Inserts this element after a node.
+ *
+ * var em = new CKEDITOR.dom.element( 'em' );
+ * var strong = new CKEDITOR.dom.element( 'strong' );
+ * strong.insertAfter( em );
+ *
+ * // Result: '<em></em><strong></strong>'
+ *
+ * @param {CKEDITOR.dom.node} node The node that will precede this element.
+ * @returns {CKEDITOR.dom.node} The node preceding this one after insertion.
+ */
+ insertAfter: function( node ) {
+ node.$.parentNode.insertBefore( this.$, node.$.nextSibling );
+ return node;
+ },
+
+ /**
+ * Inserts this element before a node.
+ *
+ * var em = new CKEDITOR.dom.element( 'em' );
+ * var strong = new CKEDITOR.dom.element( 'strong' );
+ * strong.insertBefore( em );
+ *
+ * // result: '<strong></strong><em></em>'
+ *
+ * @param {CKEDITOR.dom.node} node The node that will succeed this element.
+ * @returns {CKEDITOR.dom.node} The node being inserted.
+ */
+ insertBefore: function( node ) {
+ node.$.parentNode.insertBefore( this.$, node.$ );
+ return node;
+ },
+
+ /**
+ * Inserts node before this node.
+ *
+ * var em = new CKEDITOR.dom.element( 'em' );
+ * var strong = new CKEDITOR.dom.element( 'strong' );
+ * strong.insertBeforeMe( em );
+ *
+ * // result: '<em></em><strong></strong>'
+ *
+ * @param {CKEDITOR.dom.node} node The node that will preceed this element.
+ * @returns {CKEDITOR.dom.node} The node being inserted.
+ */
+ insertBeforeMe: function( node ) {
+ this.$.parentNode.insertBefore( node.$, this.$ );
+ return node;
+ },
+
+ /**
+ * Retrieves a uniquely identifiable tree address for this node.
+ * The tree address returned is an array of integers, with each integer
+ * indicating a child index of a DOM node, starting from
+ * `document.documentElement`.
+ *
+ * For example, assuming `<body>` is the second child
+ * of `<html>` (`<head>` being the first),
+ * and we would like to address the third child under the
+ * fourth child of `<body>`, the tree address returned would be:
+ * `[1, 3, 2]`.
+ *
+ * The tree address cannot be used for finding back the DOM tree node once
+ * the DOM tree structure has been modified.
+ *
+ * @param {Boolean} [normalized=false] See {@link #getIndex}.
+ * @returns {Array} The address.
+ */
+ getAddress: function( normalized ) {
+ var address = [];
+ var $documentElement = this.getDocument().$.documentElement;
+ var node = this.$;
+
+ while ( node && node != $documentElement ) {
+ var parentNode = node.parentNode;
+
+ if ( parentNode ) {
+ // Get the node index. For performance, call getIndex
+ // directly, instead of creating a new node object.
+ address.unshift( this.getIndex.call({ $: node }, normalized ) );
+ }
+
+ node = parentNode;
+ }
+
+ return address;
+ },
+
+ /**
+ * Gets the document containing this element.
+ *
+ * var element = CKEDITOR.document.getById( 'example' );
+ * alert( element.getDocument().equals( CKEDITOR.document ) ); // true
+ *
+ * @returns {CKEDITOR.dom.document} The document.
+ */
+ getDocument: function() {
+ return new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument );
+ },
+
+ /**
+ * Get index of a node in an array of its parent.childNodes.
+ *
+ * Let's assume having childNodes array:
+ *
+ * [ emptyText, element1, text, text, element2 ]
+ * element1.getIndex(); // 1
+ * element1.getIndex( true ); // 0
+ * element2.getIndex(); // 4
+ * element2.getIndex( true ); // 2
+ *
+ * @param {Boolean} normalized When `true` empty text nodes and one followed
+ * by another one text node are not counted in.
+ * @returns {Number} Index of a node.
+ */
+ getIndex: function( normalized ) {
+ // Attention: getAddress depends on this.$
+ // getIndex is called on a plain object: { $ : node }
+
+ var current = this.$,
+ index = -1,
+ isNormalizing;
+
+ if ( !this.$.parentNode )
+ return index;
+
+ do {
+ // Bypass blank node and adjacent text nodes.
+ if ( normalized && current != this.$ && current.nodeType == CKEDITOR.NODE_TEXT && ( isNormalizing || !current.nodeValue ) ) {
+ continue;
+ }
+
+ index++;
+ isNormalizing = current.nodeType == CKEDITOR.NODE_TEXT;
+ }
+ while ( ( current = current.previousSibling ) )
+
+ return index;
+ },
+
+ /**
+ * @todo
+ */
+ getNextSourceNode: function( startFromSibling, nodeType, guard ) {
+ // If "guard" is a node, transform it in a function.
+ if ( guard && !guard.call ) {
+ var guardNode = guard;
+ guard = function( node ) {
+ return !node.equals( guardNode );
+ };
+ }
+
+ var node = ( !startFromSibling && this.getFirst && this.getFirst() ),
+ parent;
+
+ // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
+ // send the 'moving out' signal even we don't actually dive into.
+ if ( !node ) {
+ if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
+ return null;
+ node = this.getNext();
+ }
+
+ while ( !node && ( parent = ( parent || this ).getParent() ) ) {
+ // The guard check sends the "true" paramenter to indicate that
+ // we are moving "out" of the element.
+ if ( guard && guard( parent, true ) === false )
+ return null;
+
+ node = parent.getNext();
+ }
+
+ if ( !node )
+ return null;
+
+ if ( guard && guard( node ) === false )
+ return null;
+
+ if ( nodeType && nodeType != node.type )
+ return node.getNextSourceNode( false, nodeType, guard );
+
+ return node;
+ },
+
+ /**
+ * @todo
+ */
+ getPreviousSourceNode: function( startFromSibling, nodeType, guard ) {
+ if ( guard && !guard.call ) {
+ var guardNode = guard;
+ guard = function( node ) {
+ return !node.equals( guardNode );
+ };
+ }
+
+ var node = ( !startFromSibling && this.getLast && this.getLast() ),
+ parent;
+
+ // Guarding when we're skipping the current element( no children or 'startFromSibling' ).
+ // send the 'moving out' signal even we don't actually dive into.
+ if ( !node ) {
+ if ( this.type == CKEDITOR.NODE_ELEMENT && guard && guard( this, true ) === false )
+ return null;
+ node = this.getPrevious();
+ }
+
+ while ( !node && ( parent = ( parent || this ).getParent() ) ) {
+ // The guard check sends the "true" paramenter to indicate that
+ // we are moving "out" of the element.
+ if ( guard && guard( parent, true ) === false )
+ return null;
+
+ node = parent.getPrevious();
+ }
+
+ if ( !node )
+ return null;
+
+ if ( guard && guard( node ) === false )
+ return null;
+
+ if ( nodeType && node.type != nodeType )
+ return node.getPreviousSourceNode( false, nodeType, guard );
+
+ return node;
+ },
+
+ /**
+ * Gets the node that preceed this element in its parent's child list.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div><i>prev</i><b>Example</b></div>' );
+ * var first = element.getLast().getPrev();
+ * alert( first.getName() ); // 'i'
+ *
+ * @param {Function} [evaluator] Filtering the result node.
+ * @returns {CKEDITOR.dom.node} The previous node or null if not available.
+ */
+ getPrevious: function( evaluator ) {
+ var previous = this.$,
+ retval;
+ do {
+ previous = previous.previousSibling;
+
+ // Avoid returning the doc type node.
+ // http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-412266927
+ retval = previous && previous.nodeType != 10 && new CKEDITOR.dom.node( previous );
+ }
+ while ( retval && evaluator && !evaluator( retval ) )
+ return retval;
+ },
+
+ /**
+ * Gets the node that follows this element in its parent's child list.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<div><b>Example</b><i>next</i></div>' );
+ * var last = element.getFirst().getNext();
+ * alert( last.getName() ); // 'i'
+ *
+ * @param {Function} [evaluator] Filtering the result node.
+ * @returns {CKEDITOR.dom.node} The next node or null if not available.
+ */
+ getNext: function( evaluator ) {
+ var next = this.$,
+ retval;
+ do {
+ next = next.nextSibling;
+ retval = next && new CKEDITOR.dom.node( next );
+ }
+ while ( retval && evaluator && !evaluator( retval ) )
+ return retval;
+ },
+
+ /**
+ * Gets the parent element for this node.
+ *
+ * var node = editor.document.getBody().getFirst();
+ * var parent = node.getParent();
+ * alert( node.getName() ); // 'body'
+ *
+ * @param {Boolean} [allowFragmentParent=false] Consider also parent node that is of
+ * fragment type {@link CKEDITOR#NODE_DOCUMENT_FRAGMENT}.
+ * @returns {CKEDITOR.dom.element} The parent element.
+ */
+ getParent: function( allowFragmentParent ) {
+ var parent = this.$.parentNode;
+ return ( parent && ( parent.nodeType == CKEDITOR.NODE_ELEMENT || allowFragmentParent && parent.nodeType == CKEDITOR.NODE_DOCUMENT_FRAGMENT ) ) ? new CKEDITOR.dom.node( parent ) : null;
+ },
+
+ /**
+ * @todo
+ */
+ getParents: function( closerFirst ) {
+ var node = this;
+ var parents = [];
+
+ do {
+ parents[ closerFirst ? 'push' : 'unshift' ]( node );
+ }
+ while ( ( node = node.getParent() ) )
+
+ return parents;
+ },
+
+ /**
+ * @todo
+ */
+ getCommonAncestor: function( node ) {
+ if ( node.equals( this ) )
+ return this;
+
+ if ( node.contains && node.contains( this ) )
+ return node;
+
+ var start = this.contains ? this : this.getParent();
+
+ do {
+ if ( start.contains( node ) ) return start;
+ }
+ while ( ( start = start.getParent() ) );
+
+ return null;
+ },
+
+ /**
+ * @todo
+ */
+ getPosition: function( otherNode ) {
+ var $ = this.$;
+ var $other = otherNode.$;
+
+ if ( $.compareDocumentPosition )
+ return $.compareDocumentPosition( $other );
+
+ // IE and Safari have no support for compareDocumentPosition.
+
+ if ( $ == $other )
+ return CKEDITOR.POSITION_IDENTICAL;
+
+ // Only element nodes support contains and sourceIndex.
+ if ( this.type == CKEDITOR.NODE_ELEMENT && otherNode.type == CKEDITOR.NODE_ELEMENT ) {
+ if ( $.contains ) {
+ if ( $.contains( $other ) )
+ return CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING;
+
+ if ( $other.contains( $ ) )
+ return CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
+ }
+
+ if ( 'sourceIndex' in $ ) {
+ return ( $.sourceIndex < 0 || $other.sourceIndex < 0 ) ? CKEDITOR.POSITION_DISCONNECTED : ( $.sourceIndex < $other.sourceIndex ) ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
+ }
+ }
+
+ // For nodes that don't support compareDocumentPosition, contains
+ // or sourceIndex, their "address" is compared.
+
+ var addressOfThis = this.getAddress(),
+ addressOfOther = otherNode.getAddress(),
+ minLevel = Math.min( addressOfThis.length, addressOfOther.length );
+
+ // Determinate preceed/follow relationship.
+ for ( var i = 0; i <= minLevel - 1; i++ ) {
+ if ( addressOfThis[ i ] != addressOfOther[ i ] ) {
+ if ( i < minLevel ) {
+ return addressOfThis[ i ] < addressOfOther[ i ] ? CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_FOLLOWING;
+ }
+ break;
+ }
+ }
+
+ // Determinate contains/contained relationship.
+ return ( addressOfThis.length < addressOfOther.length ) ? CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_PRECEDING : CKEDITOR.POSITION_IS_CONTAINED + CKEDITOR.POSITION_FOLLOWING;
+ },
+
+ /**
+ * Gets the closest ancestor node of this node, specified by its name.
+ *
+ * // Suppose we have the following HTML structure:
+ * // <div id="outer"><div id="inner"><p><b>Some text</b></p></div></div>
+ * // If node == <b>
+ * ascendant = node.getAscendant( 'div' ); // ascendant == <div id="inner">
+ * ascendant = node.getAscendant( 'b' ); // ascendant == null
+ * ascendant = node.getAscendant( 'b', true ); // ascendant == <b>
+ * ascendant = node.getAscendant( { div:1,p:1 } ); // Searches for the first 'div' or 'p': ascendant == <div id="inner">
+ *
+ * @since 3.6.1
+ * @param {String} reference The name of the ancestor node to search or
+ * an object with the node names to search for.
+ * @param {Boolean} [includeSelf] Whether to include the current
+ * node in the search.
+ * @returns {CKEDITOR.dom.node} The located ancestor node or null if not found.
+ */
+ getAscendant: function( reference, includeSelf ) {
+ var $ = this.$,
+ name;
+
+ if ( !includeSelf )
+ $ = $.parentNode;
+
+ while ( $ ) {
+ if ( $.nodeName && ( name = $.nodeName.toLowerCase(), ( typeof reference == 'string' ? name == reference : name in reference ) ) )
+ return new CKEDITOR.dom.node( $ );
+
+ $ = $.parentNode;
+ }
+ return null;
+ },
+
+ /**
+ * @todo
+ */
+ hasAscendant: function( name, includeSelf ) {
+ var $ = this.$;
+
+ if ( !includeSelf )
+ $ = $.parentNode;
+
+ while ( $ ) {
+ if ( $.nodeName && $.nodeName.toLowerCase() == name )
+ return true;
+
+ $ = $.parentNode;
+ }
+ return false;
+ },
+
+ /**
+ * @todo
+ */
+ move: function( target, toStart ) {
+ target.append( this.remove(), toStart );
+ },
+
+ /**
+ * Removes this node from the document DOM.
+ *
+ * var element = CKEDITOR.document.getById( 'MyElement' );
+ * element.remove();
+ *
+ * @param {Boolean} [preserveChildren=false] Indicates that the children
+ * elements must remain in the document, removing only the outer tags.
+ */
+ remove: function( preserveChildren ) {
+ var $ = this.$;
+ var parent = $.parentNode;
+
+ if ( parent ) {
+ if ( preserveChildren ) {
+ // Move all children before the node.
+ for ( var child;
+ ( child = $.firstChild ); ) {
+ parent.insertBefore( $.removeChild( child ), $ );
+ }
+ }
+
+ parent.removeChild( $ );
+ }
+
+ return this;
+ },
+
+ /**
+ * @todo
+ */
+ replace: function( nodeToReplace ) {
+ this.insertBefore( nodeToReplace );
+ nodeToReplace.remove();
+ },
+
+ /**
+ * @todo
+ */
+ trim: function() {
+ this.ltrim();
+ this.rtrim();
+ },
+
+ /**
+ * @todo
+ */
+ ltrim: function() {
+ var child;
+ while ( this.getFirst && ( child = this.getFirst() ) ) {
+ if ( child.type == CKEDITOR.NODE_TEXT ) {
+ var trimmed = CKEDITOR.tools.ltrim( child.getText() ),
+ originalLength = child.getLength();
+
+ if ( !trimmed ) {
+ child.remove();
+ continue;
+ } else if ( trimmed.length < originalLength ) {
+ child.split( originalLength - trimmed.length );
+
+ // IE BUG: child.remove() may raise JavaScript errors here. (#81)
+ this.$.removeChild( this.$.firstChild );
+ }
+ }
+ break;
+ }
+ },
+
+ /**
+ * @todo
+ */
+ rtrim: function() {
+ var child;
+ while ( this.getLast && ( child = this.getLast() ) ) {
+ if ( child.type == CKEDITOR.NODE_TEXT ) {
+ var trimmed = CKEDITOR.tools.rtrim( child.getText() ),
+ originalLength = child.getLength();
+
+ if ( !trimmed ) {
+ child.remove();
+ continue;
+ } else if ( trimmed.length < originalLength ) {
+ child.split( trimmed.length );
+
+ // IE BUG: child.getNext().remove() may raise JavaScript errors here.
+ // (#81)
+ this.$.lastChild.parentNode.removeChild( this.$.lastChild );
+ }
+ }
+ break;
+ }
+
+ if ( !CKEDITOR.env.ie && !CKEDITOR.env.opera ) {
+ child = this.$.lastChild;
+
+ if ( child && child.type == 1 && child.nodeName.toLowerCase() == 'br' ) {
+ // Use "eChildNode.parentNode" instead of "node" to avoid IE bug (#324).
+ child.parentNode.removeChild( child );
+ }
+ }
+ },
+
+ /**
+ * Checks if this node is read-only (should not be changed).
+ *
+ * **Note:** When `attributeCheck` is not used, this method only work for elements
+ * that are already presented in the document, otherwise the result
+ * is not guaranteed, it's mainly for performance consideration.
+ *
+ * // For the following HTML:
+ * // <div contenteditable="false">Some <b>text</b></div>
+ *
+ * // If "ele" is the above <div>
+ * element.isReadOnly(); // true
+ *
+ * @since 3.5
+ * @returns {Boolean}
+ */
+ isReadOnly: function() {
+ var element = this;
+ if ( this.type != CKEDITOR.NODE_ELEMENT )
+ element = this.getParent();
+
+ if ( element && typeof element.$.isContentEditable != 'undefined' )
+ return !( element.$.isContentEditable || element.data( 'cke-editable' ) );
+ else {
+ // Degrade for old browsers which don't support "isContentEditable", e.g. FF3
+
+ while ( element ) {
+ if ( element.data( 'cke-editable' ) )
+ break;
+
+ if ( element.getAttribute( 'contentEditable' ) == 'false' )
+ return true;
+ else if ( element.getAttribute( 'contentEditable' ) == 'true' )
+ break;
+
+ element = element.getParent();
+ }
+
+ // Reached the root of DOM tree, no editable found.
+ return !element;
+ }
+ }
+});
diff --git a/devel/third-party/ckeditor/core/dom/nodelist.js b/devel/third-party/ckeditor/core/dom/nodelist.js
index 7e82ba1..7fe0525 100644
--- a/devel/third-party/ckeditor/core/dom/nodelist.js
+++ b/devel/third-party/ckeditor/core/dom/nodelist.js
@@ -1,23 +1,43 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dom.nodeList = function( nativeList )
-{
- this.$ = nativeList;
-};
-
-CKEDITOR.dom.nodeList.prototype =
-{
- count : function()
- {
- return this.$.length;
- },
-
- getItem : function( index )
- {
- var $node = this.$[ index ];
- return $node ? new CKEDITOR.dom.node( $node ) : null;
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Represents a list of {@link CKEDITOR.dom.node} objects.
+ * It's a wrapper for native nodes list.
+ *
+ * var nodeList = CKEDITOR.document.getBody().getChildren();
+ * alert( nodeList.count() ); // number [0;N]
+ *
+ * @class
+ * @constructor Creates a document class instance.
+ * @param {Object} nativeList
+ */
+CKEDITOR.dom.nodeList = function( nativeList ) {
+ this.$ = nativeList;
+};
+
+CKEDITOR.dom.nodeList.prototype = {
+ /**
+ * Get count of nodes in this list.
+ *
+ * @returns {Number}
+ */
+ count: function() {
+ return this.$.length;
+ },
+
+ /**
+ * Get node from the list.
+ *
+ * @returns {CKEDITOR.dom.node}
+ */
+ getItem: function( index ) {
+ if ( index < 0 || index >= this.$.length )
+ return null;
+
+ var $node = this.$[ index ];
+ return $node ? new CKEDITOR.dom.node( $node ) : null;
+ }
+};
diff --git a/devel/third-party/ckeditor/core/dom/range.js b/devel/third-party/ckeditor/core/dom/range.js
index 5846484..62aff45 100644
--- a/devel/third-party/ckeditor/core/dom/range.js
+++ b/devel/third-party/ckeditor/core/dom/range.js
@@ -1,1880 +1,2194 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dom.range = function( document )
-{
- this.startContainer = null;
- this.startOffset = null;
- this.endContainer = null;
- this.endOffset = null;
- this.collapsed = true;
-
- this.document = document;
-};
-
-(function()
-{
- // Updates the "collapsed" property for the given range object.
- var updateCollapsed = function( range )
- {
- range.collapsed = (
- range.startContainer &&
- range.endContainer &&
- range.startContainer.equals( range.endContainer ) &&
- range.startOffset == range.endOffset );
- };
-
- // This is a shared function used to delete, extract and clone the range
- // contents.
- // V2
- var execContentsAction = function( range, action, docFrag )
- {
- range.optimizeBookmark();
-
- var startNode = range.startContainer;
- var endNode = range.endContainer;
-
- var startOffset = range.startOffset;
- var endOffset = range.endOffset;
-
- var removeStartNode;
- var removeEndNode;
-
- // For text containers, we must simply split the node and point to the
- // second part. The removal will be handled by the rest of the code .
- if ( endNode.type == CKEDITOR.NODE_TEXT )
- endNode = endNode.split( endOffset );
- else
- {
- // If the end container has children and the offset is pointing
- // to a child, then we should start from it.
- if ( endNode.getChildCount() > 0 )
- {
- // If the offset points after the last node.
- if ( endOffset >= endNode.getChildCount() )
- {
- // Let's create a temporary node and mark it for removal.
- endNode = endNode.append( range.document.createText( '' ) );
- removeEndNode = true;
- }
- else
- endNode = endNode.getChild( endOffset );
- }
- }
-
- // For text containers, we must simply split the node. The removal will
- // be handled by the rest of the code .
- if ( startNode.type == CKEDITOR.NODE_TEXT )
- {
- startNode.split( startOffset );
-
- // In cases the end node is the same as the start node, the above
- // splitting will also split the end, so me must move the end to
- // the second part of the split.
- if ( startNode.equals( endNode ) )
- endNode = startNode.getNext();
- }
- else
- {
- // If the start container has children and the offset is pointing
- // to a child, then we should start from its previous sibling.
-
- // If the offset points to the first node, we don't have a
- // sibling, so let's use the first one, but mark it for removal.
- if ( !startOffset )
- {
- // Let's create a temporary node and mark it for removal.
- startNode = startNode.getFirst().insertBeforeMe( range.document.createText( '' ) );
- removeStartNode = true;
- }
- else if ( startOffset >= startNode.getChildCount() )
- {
- // Let's create a temporary node and mark it for removal.
- startNode = startNode.append( range.document.createText( '' ) );
- removeStartNode = true;
- }
- else
- startNode = startNode.getChild( startOffset ).getPrevious();
- }
-
- // Get the parent nodes tree for the start and end boundaries.
- var startParents = startNode.getParents();
- var endParents = endNode.getParents();
-
- // Compare them, to find the top most siblings.
- var i, topStart, topEnd;
-
- for ( i = 0 ; i < startParents.length ; i++ )
- {
- topStart = startParents[ i ];
- topEnd = endParents[ i ];
-
- // The compared nodes will match until we find the top most
- // siblings (different nodes that have the same parent).
- // "i" will hold the index in the parents array for the top
- // most element.
- if ( !topStart.equals( topEnd ) )
- break;
- }
-
- var clone = docFrag, levelStartNode, levelClone, currentNode, currentSibling;
-
- // Remove all successive sibling nodes for every node in the
- // startParents tree.
- for ( var j = i ; j < startParents.length ; j++ )
- {
- levelStartNode = startParents[j];
-
- // For Extract and Clone, we must clone this level.
- if ( clone && !levelStartNode.equals( startNode ) ) // action = 0 = Delete
- levelClone = clone.append( levelStartNode.clone() );
-
- currentNode = levelStartNode.getNext();
-
- while ( currentNode )
- {
- // Stop processing when the current node matches a node in the
- // endParents tree or if it is the endNode.
- if ( currentNode.equals( endParents[ j ] ) || currentNode.equals( endNode ) )
- break;
-
- // Cache the next sibling.
- currentSibling = currentNode.getNext();
-
- // If cloning, just clone it.
- if ( action == 2 ) // 2 = Clone
- clone.append( currentNode.clone( true ) );
- else
- {
- // Both Delete and Extract will remove the node.
- currentNode.remove();
-
- // When Extracting, move the removed node to the docFrag.
- if ( action == 1 ) // 1 = Extract
- clone.append( currentNode );
- }
-
- currentNode = currentSibling;
- }
-
- if ( clone )
- clone = levelClone;
- }
-
- clone = docFrag;
-
- // Remove all previous sibling nodes for every node in the
- // endParents tree.
- for ( var k = i ; k < endParents.length ; k++ )
- {
- levelStartNode = endParents[ k ];
-
- // For Extract and Clone, we must clone this level.
- if ( action > 0 && !levelStartNode.equals( endNode ) ) // action = 0 = Delete
- levelClone = clone.append( levelStartNode.clone() );
-
- // The processing of siblings may have already been done by the parent.
- if ( !startParents[ k ] || levelStartNode.$.parentNode != startParents[ k ].$.parentNode )
- {
- currentNode = levelStartNode.getPrevious();
-
- while ( currentNode )
- {
- // Stop processing when the current node matches a node in the
- // startParents tree or if it is the startNode.
- if ( currentNode.equals( startParents[ k ] ) || currentNode.equals( startNode ) )
- break;
-
- // Cache the next sibling.
- currentSibling = currentNode.getPrevious();
-
- // If cloning, just clone it.
- if ( action == 2 ) // 2 = Clone
- clone.$.insertBefore( currentNode.$.cloneNode( true ), clone.$.firstChild ) ;
- else
- {
- // Both Delete and Extract will remove the node.
- currentNode.remove();
-
- // When Extracting, mode the removed node to the docFrag.
- if ( action == 1 ) // 1 = Extract
- clone.$.insertBefore( currentNode.$, clone.$.firstChild );
- }
-
- currentNode = currentSibling;
- }
- }
-
- if ( clone )
- clone = levelClone;
- }
-
- if ( action == 2 ) // 2 = Clone.
- {
- // No changes in the DOM should be done, so fix the split text (if any).
-
- var startTextNode = range.startContainer;
- if ( startTextNode.type == CKEDITOR.NODE_TEXT )
- {
- startTextNode.$.data += startTextNode.$.nextSibling.data;
- startTextNode.$.parentNode.removeChild( startTextNode.$.nextSibling );
- }
-
- var endTextNode = range.endContainer;
- if ( endTextNode.type == CKEDITOR.NODE_TEXT && endTextNode.$.nextSibling )
- {
- endTextNode.$.data += endTextNode.$.nextSibling.data;
- endTextNode.$.parentNode.removeChild( endTextNode.$.nextSibling );
- }
- }
- else
- {
- // Collapse the range.
-
- // If a node has been partially selected, collapse the range between
- // topStart and topEnd. Otherwise, simply collapse it to the start. (W3C specs).
- if ( topStart && topEnd && ( startNode.$.parentNode != topStart.$.parentNode || endNode.$.parentNode != topEnd.$.parentNode ) )
- {
- var endIndex = topEnd.getIndex();
-
- // If the start node is to be removed, we must correct the
- // index to reflect the removal.
- if ( removeStartNode && topEnd.$.parentNode == startNode.$.parentNode )
- endIndex--;
-
- range.setStart( topEnd.getParent(), endIndex );
- }
-
- // Collapse it to the start.
- range.collapse( true );
- }
-
- // Cleanup any marked node.
- if ( removeStartNode )
- startNode.remove();
-
- if ( removeEndNode && endNode.$.parentNode )
- endNode.remove();
- };
-
- var inlineChildReqElements = { abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 };
-
- // Creates the appropriate node evaluator for the dom walker used inside
- // check(Start|End)OfBlock.
- function getCheckStartEndBlockEvalFunction( isStart )
- {
- var hadBr = false, bookmarkEvaluator = CKEDITOR.dom.walker.bookmark( true );
- return function( node )
- {
- // First ignore bookmark nodes.
- if ( bookmarkEvaluator( node ) )
- return true;
-
- if ( node.type == CKEDITOR.NODE_TEXT )
- {
- // If there's any visible text, then we're not at the start.
- if ( CKEDITOR.tools.trim( node.getText() ).length )
- return false;
- }
- else if ( node.type == CKEDITOR.NODE_ELEMENT )
- {
- // If there are non-empty inline elements (e.g. <img />), then we're not
- // at the start.
- if ( !inlineChildReqElements[ node.getName() ] )
- {
- // If we're working at the end-of-block, forgive the first <br /> in non-IE
- // browsers.
- if ( !isStart && !CKEDITOR.env.ie && node.getName() == 'br' && !hadBr )
- hadBr = true;
- else
- return false;
- }
- }
- return true;
- };
- }
-
- // Evaluator for CKEDITOR.dom.element::checkBoundaryOfElement, reject any
- // text node and non-empty elements unless it's being bookmark text.
- function elementBoundaryEval( node )
- {
- // Reject any text node unless it's being bookmark
- // OR it's spaces. (#3883)
- return node.type != CKEDITOR.NODE_TEXT
- && node.getName() in CKEDITOR.dtd.$removeEmpty
- || !CKEDITOR.tools.trim( node.getText() )
- || node.getParent().hasAttribute( '_cke_bookmark' );
- }
-
- var whitespaceEval = new CKEDITOR.dom.walker.whitespaces(),
- bookmarkEval = new CKEDITOR.dom.walker.bookmark();
-
- function nonWhitespaceOrBookmarkEval( node )
- {
- // Whitespaces and bookmark nodes are to be ignored.
- return !whitespaceEval( node ) && !bookmarkEval( node );
- }
-
- CKEDITOR.dom.range.prototype =
- {
- clone : function()
- {
- var clone = new CKEDITOR.dom.range( this.document );
-
- clone.startContainer = this.startContainer;
- clone.startOffset = this.startOffset;
- clone.endContainer = this.endContainer;
- clone.endOffset = this.endOffset;
- clone.collapsed = this.collapsed;
-
- return clone;
- },
-
- collapse : function( toStart )
- {
- if ( toStart )
- {
- this.endContainer = this.startContainer;
- this.endOffset = this.startOffset;
- }
- else
- {
- this.startContainer = this.endContainer;
- this.startOffset = this.endOffset;
- }
-
- this.collapsed = true;
- },
-
- // The selection may be lost when cloning (due to the splitText() call).
- cloneContents : function()
- {
- var docFrag = new CKEDITOR.dom.documentFragment( this.document );
-
- if ( !this.collapsed )
- execContentsAction( this, 2, docFrag );
-
- return docFrag;
- },
-
- deleteContents : function()
- {
- if ( this.collapsed )
- return;
-
- execContentsAction( this, 0 );
- },
-
- extractContents : function()
- {
- var docFrag = new CKEDITOR.dom.documentFragment( this.document );
-
- if ( !this.collapsed )
- execContentsAction( this, 1, docFrag );
-
- return docFrag;
- },
-
- /**
- * Creates a bookmark object, which can be later used to restore the
- * range by using the moveToBookmark function.
- * This is an "intrusive" way to create a bookmark. It includes <span> tags
- * in the range boundaries. The advantage of it is that it is possible to
- * handle DOM mutations when moving back to the bookmark.
- * Attention: the inclusion of nodes in the DOM is a design choice and
- * should not be changed as there are other points in the code that may be
- * using those nodes to perform operations. See GetBookmarkNode.
- * @param {Boolean} [serializable] Indicates that the bookmark nodes
- * must contain ids, which can be used to restore the range even
- * when these nodes suffer mutations (like a clonation or innerHTML
- * change).
- * @returns {Object} And object representing a bookmark.
- */
- createBookmark : function( serializable )
- {
- var startNode, endNode;
- var baseId;
- var clone;
- var collapsed = this.collapsed;
-
- startNode = this.document.createElement( 'span' );
- startNode.setAttribute( '_cke_bookmark', 1 );
- startNode.setStyle( 'display', 'none' );
-
- // For IE, it must have something inside, otherwise it may be
- // removed during DOM operations.
- startNode.setHtml( ' ' );
-
- if ( serializable )
- {
- baseId = 'cke_bm_' + CKEDITOR.tools.getNextNumber();
- startNode.setAttribute( 'id', baseId + 'S' );
- }
-
- // If collapsed, the endNode will not be created.
- if ( !collapsed )
- {
- endNode = startNode.clone();
- endNode.setHtml( ' ' );
-
- if ( serializable )
- endNode.setAttribute( 'id', baseId + 'E' );
-
- clone = this.clone();
- clone.collapse();
- clone.insertNode( endNode );
- }
-
- clone = this.clone();
- clone.collapse( true );
- clone.insertNode( startNode );
-
- // Update the range position.
- if ( endNode )
- {
- this.setStartAfter( startNode );
- this.setEndBefore( endNode );
- }
- else
- this.moveToPosition( startNode, CKEDITOR.POSITION_AFTER_END );
-
- return {
- startNode : serializable ? baseId + 'S' : startNode,
- endNode : serializable ? baseId + 'E' : endNode,
- serializable : serializable,
- collapsed : collapsed
- };
- },
-
- /**
- * Creates a "non intrusive" and "mutation sensible" bookmark. This
- * kind of bookmark should be used only when the DOM is supposed to
- * remain stable after its creation.
- * @param {Boolean} [normalized] Indicates that the bookmark must
- * normalized. When normalized, the successive text nodes are
- * considered a single node. To sucessful load a normalized
- * bookmark, the DOM tree must be also normalized before calling
- * moveToBookmark.
- * @returns {Object} An object representing the bookmark.
- */
- createBookmark2 : function( normalized )
- {
- var startContainer = this.startContainer,
- endContainer = this.endContainer;
-
- var startOffset = this.startOffset,
- endOffset = this.endOffset;
-
- var collapsed = this.collapsed;
-
- var child, previous;
-
- // If there is no range then get out of here.
- // It happens on initial load in Safari #962 and if the editor it's
- // hidden also in Firefox
- if ( !startContainer || !endContainer )
- return { start : 0, end : 0 };
-
- if ( normalized )
- {
- // Find out if the start is pointing to a text node that will
- // be normalized.
- if ( startContainer.type == CKEDITOR.NODE_ELEMENT )
- {
- child = startContainer.getChild( startOffset );
-
- // In this case, move the start information to that text
- // node.
- if ( child && child.type == CKEDITOR.NODE_TEXT
- && startOffset > 0 && child.getPrevious().type == CKEDITOR.NODE_TEXT )
- {
- startContainer = child;
- startOffset = 0;
- }
- }
-
- // Normalize the start.
- while ( startContainer.type == CKEDITOR.NODE_TEXT
- && ( previous = startContainer.getPrevious() )
- && previous.type == CKEDITOR.NODE_TEXT )
- {
- startContainer = previous;
- startOffset += previous.getLength();
- }
-
- // Process the end only if not normalized.
- if ( !collapsed )
- {
- // Find out if the start is pointing to a text node that
- // will be normalized.
- if ( endContainer.type == CKEDITOR.NODE_ELEMENT )
- {
- child = endContainer.getChild( endOffset );
-
- // In this case, move the start information to that
- // text node.
- if ( child && child.type == CKEDITOR.NODE_TEXT
- && endOffset > 0 && child.getPrevious().type == CKEDITOR.NODE_TEXT )
- {
- endContainer = child;
- endOffset = 0;
- }
- }
-
- // Normalize the end.
- while ( endContainer.type == CKEDITOR.NODE_TEXT
- && ( previous = endContainer.getPrevious() )
- && previous.type == CKEDITOR.NODE_TEXT )
- {
- endContainer = previous;
- endOffset += previous.getLength();
- }
- }
- }
-
- return {
- start : startContainer.getAddress( normalized ),
- end : collapsed ? null : endContainer.getAddress( normalized ),
- startOffset : startOffset,
- endOffset : endOffset,
- normalized : normalized,
- collapsed : collapsed,
- is2 : true // It's a createBookmark2 bookmark.
- };
- },
-
- moveToBookmark : function( bookmark )
- {
- if ( bookmark.is2 ) // Created with createBookmark2().
- {
- // Get the start information.
- var startContainer = this.document.getByAddress( bookmark.start, bookmark.normalized ),
- startOffset = bookmark.startOffset;
-
- // Get the end information.
- var endContainer = bookmark.end && this.document.getByAddress( bookmark.end, bookmark.normalized ),
- endOffset = bookmark.endOffset;
-
- // Set the start boundary.
- this.setStart( startContainer, startOffset );
-
- // Set the end boundary. If not available, collapse it.
- if ( endContainer )
- this.setEnd( endContainer, endOffset );
- else
- this.collapse( true );
- }
- else // Created with createBookmark().
- {
- var serializable = bookmark.serializable,
- startNode = serializable ? this.document.getById( bookmark.startNode ) : bookmark.startNode,
- endNode = serializable ? this.document.getById( bookmark.endNode ) : bookmark.endNode;
-
- // Set the range start at the bookmark start node position.
- this.setStartBefore( startNode );
-
- // Remove it, because it may interfere in the setEndBefore call.
- startNode.remove();
-
- // Set the range end at the bookmark end node position, or simply
- // collapse it if it is not available.
- if ( endNode )
- {
- this.setEndBefore( endNode );
- endNode.remove();
- }
- else
- this.collapse( true );
- }
- },
-
- getBoundaryNodes : function()
- {
- var startNode = this.startContainer,
- endNode = this.endContainer,
- startOffset = this.startOffset,
- endOffset = this.endOffset,
- childCount;
-
- if ( startNode.type == CKEDITOR.NODE_ELEMENT )
- {
- childCount = startNode.getChildCount();
- if ( childCount > startOffset )
- startNode = startNode.getChild( startOffset );
- else if ( childCount < 1 )
- startNode = startNode.getPreviousSourceNode();
- else // startOffset > childCount but childCount is not 0
- {
- // Try to take the node just after the current position.
- startNode = startNode.$;
- while ( startNode.lastChild )
- startNode = startNode.lastChild;
- startNode = new CKEDITOR.dom.node( startNode );
-
- // Normally we should take the next node in DFS order. But it
- // is also possible that we've already reached the end of
- // document.
- startNode = startNode.getNextSourceNode() || startNode;
- }
- }
- if ( endNode.type == CKEDITOR.NODE_ELEMENT )
- {
- childCount = endNode.getChildCount();
- if ( childCount > endOffset )
- endNode = endNode.getChild( endOffset ).getPreviousSourceNode( true );
- else if ( childCount < 1 )
- endNode = endNode.getPreviousSourceNode();
- else // endOffset > childCount but childCount is not 0
- {
- // Try to take the node just before the current position.
- endNode = endNode.$;
- while ( endNode.lastChild )
- endNode = endNode.lastChild;
- endNode = new CKEDITOR.dom.node( endNode );
- }
- }
-
- // Sometimes the endNode will come right before startNode for collapsed
- // ranges. Fix it. (#3780)
- if ( startNode.getPosition( endNode ) & CKEDITOR.POSITION_FOLLOWING )
- startNode = endNode;
-
- return { startNode : startNode, endNode : endNode };
- },
-
- /**
- * Find the node which fully contains the range.
- * @param includeSelf
- * @param {Boolean} ignoreTextNode Whether ignore CKEDITOR.NODE_TEXT type.
- */
- getCommonAncestor : function( includeSelf , ignoreTextNode )
- {
- var start = this.startContainer,
- end = this.endContainer,
- ancestor;
-
- if ( start.equals( end ) )
- {
- if ( includeSelf
- && start.type == CKEDITOR.NODE_ELEMENT
- && this.startOffset == this.endOffset - 1 )
- ancestor = start.getChild( this.startOffset );
- else
- ancestor = start;
- }
- else
- ancestor = start.getCommonAncestor( end );
-
- return ignoreTextNode && !ancestor.is ? ancestor.getParent() : ancestor;
- },
-
- /**
- * Transforms the startContainer and endContainer properties from text
- * nodes to element nodes, whenever possible. This is actually possible
- * if either of the boundary containers point to a text node, and its
- * offset is set to zero, or after the last char in the node.
- */
- optimize : function()
- {
- var container = this.startContainer;
- var offset = this.startOffset;
-
- if ( container.type != CKEDITOR.NODE_ELEMENT )
- {
- if ( !offset )
- this.setStartBefore( container );
- else if ( offset >= container.getLength() )
- this.setStartAfter( container );
- }
-
- container = this.endContainer;
- offset = this.endOffset;
-
- if ( container.type != CKEDITOR.NODE_ELEMENT )
- {
- if ( !offset )
- this.setEndBefore( container );
- else if ( offset >= container.getLength() )
- this.setEndAfter( container );
- }
- },
-
- /**
- * Move the range out of bookmark nodes if they'd been the container.
- */
- optimizeBookmark: function()
- {
- var startNode = this.startContainer,
- endNode = this.endContainer;
-
- if ( startNode.is && startNode.is( 'span' )
- && startNode.hasAttribute( '_cke_bookmark' ) )
- this.setStartAt( startNode, CKEDITOR.POSITION_BEFORE_START );
- if ( endNode && endNode.is && endNode.is( 'span' )
- && endNode.hasAttribute( '_cke_bookmark' ) )
- this.setEndAt( endNode, CKEDITOR.POSITION_AFTER_END );
- },
-
- trim : function( ignoreStart, ignoreEnd )
- {
- var startContainer = this.startContainer,
- startOffset = this.startOffset,
- collapsed = this.collapsed;
- if ( ( !ignoreStart || collapsed )
- && startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
- {
- // If the offset is zero, we just insert the new node before
- // the start.
- if ( !startOffset )
- {
- startOffset = startContainer.getIndex();
- startContainer = startContainer.getParent();
- }
- // If the offset is at the end, we'll insert it after the text
- // node.
- else if ( startOffset >= startContainer.getLength() )
- {
- startOffset = startContainer.getIndex() + 1;
- startContainer = startContainer.getParent();
- }
- // In other case, we split the text node and insert the new
- // node at the split point.
- else
- {
- var nextText = startContainer.split( startOffset );
-
- startOffset = startContainer.getIndex() + 1;
- startContainer = startContainer.getParent();
-
- // Check all necessity of updating the end boundary.
- if ( this.startContainer.equals( this.endContainer ) )
- this.setEnd( nextText, this.endOffset - this.startOffset );
- else if ( startContainer.equals( this.endContainer ) )
- this.endOffset += 1;
- }
-
- this.setStart( startContainer, startOffset );
-
- if ( collapsed )
- {
- this.collapse( true );
- return;
- }
- }
-
- var endContainer = this.endContainer;
- var endOffset = this.endOffset;
-
- if ( !( ignoreEnd || collapsed )
- && endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
- {
- // If the offset is zero, we just insert the new node before
- // the start.
- if ( !endOffset )
- {
- endOffset = endContainer.getIndex();
- endContainer = endContainer.getParent();
- }
- // If the offset is at the end, we'll insert it after the text
- // node.
- else if ( endOffset >= endContainer.getLength() )
- {
- endOffset = endContainer.getIndex() + 1;
- endContainer = endContainer.getParent();
- }
- // In other case, we split the text node and insert the new
- // node at the split point.
- else
- {
- endContainer.split( endOffset );
-
- endOffset = endContainer.getIndex() + 1;
- endContainer = endContainer.getParent();
- }
-
- this.setEnd( endContainer, endOffset );
- }
- },
-
- enlarge : function( unit )
- {
- switch ( unit )
- {
- case CKEDITOR.ENLARGE_ELEMENT :
-
- if ( this.collapsed )
- return;
-
- // Get the common ancestor.
- var commonAncestor = this.getCommonAncestor();
-
- var body = this.document.getBody();
-
- // For each boundary
- // a. Depending on its position, find out the first node to be checked (a sibling) or, if not available, to be enlarge.
- // b. Go ahead checking siblings and enlarging the boundary as much as possible until the common ancestor is not reached. After reaching the common ancestor, just save the enlargeable node to be used later.
-
- var startTop, endTop;
-
- var enlargeable, sibling, commonReached;
-
- // Indicates that the node can be added only if whitespace
- // is available before it.
- var needsWhiteSpace = false;
- var isWhiteSpace;
- var siblingText;
-
- // Process the start boundary.
-
- var container = this.startContainer;
- var offset = this.startOffset;
-
- if ( container.type == CKEDITOR.NODE_TEXT )
- {
- if ( offset )
- {
- // Check if there is any non-space text before the
- // offset. Otherwise, container is null.
- container = !CKEDITOR.tools.trim( container.substring( 0, offset ) ).length && container;
-
- // If we found only whitespace in the node, it
- // means that we'll need more whitespace to be able
- // to expand. For example, <i> can be expanded in
- // "A <i> [B]</i>", but not in "A<i> [B]</i>".
- needsWhiteSpace = !!container;
- }
-
- if ( container )
- {
- if ( !( sibling = container.getPrevious() ) )
- enlargeable = container.getParent();
- }
- }
- else
- {
- // If we have offset, get the node preceeding it as the
- // first sibling to be checked.
- if ( offset )
- sibling = container.getChild( offset - 1 ) || container.getLast();
-
- // If there is no sibling, mark the container to be
- // enlarged.
- if ( !sibling )
- enlargeable = container;
- }
-
- while ( enlargeable || sibling )
- {
- if ( enlargeable && !sibling )
- {
- // If we reached the common ancestor, mark the flag
- // for it.
- if ( !commonReached && enlargeable.equals( commonAncestor ) )
- commonReached = true;
-
- if ( !body.contains( enlargeable ) )
- break;
-
- // If we don't need space or this element breaks
- // the line, then enlarge it.
- if ( !needsWhiteSpace || enlargeable.getComputedStyle( 'display' ) != 'inline' )
- {
- needsWhiteSpace = false;
-
- // If the common ancestor has been reached,
- // we'll not enlarge it immediately, but just
- // mark it to be enlarged later if the end
- // boundary also enlarges it.
- if ( commonReached )
- startTop = enlargeable;
- else
- this.setStartBefore( enlargeable );
- }
-
- sibling = enlargeable.getPrevious();
- }
-
- // Check all sibling nodes preceeding the enlargeable
- // node. The node wil lbe enlarged only if none of them
- // blocks it.
- while ( sibling )
- {
- // This flag indicates that this node has
- // whitespaces at the end.
- isWhiteSpace = false;
-
- if ( sibling.type == CKEDITOR.NODE_TEXT )
- {
- siblingText = sibling.getText();
-
- if ( /[^\s\ufeff]/.test( siblingText ) )
- sibling = null;
-
- isWhiteSpace = /[\s\ufeff]$/.test( siblingText );
- }
- else
- {
- // If this is a visible element.
- // We need to check for the bookmark attribute because IE insists on
- // rendering the display:none nodes we use for bookmarks. (#3363)
- if ( sibling.$.offsetWidth > 0 && !sibling.getAttribute( '_cke_bookmark' ) )
- {
- // We'll accept it only if we need
- // whitespace, and this is an inline
- // element with whitespace only.
- if ( needsWhiteSpace && CKEDITOR.dtd.$removeEmpty[ sibling.getName() ] )
- {
- // It must contains spaces and inline elements only.
-
- siblingText = sibling.getText();
-
- if ( (/[^\s\ufeff]/).test( siblingText ) ) // Spaces + Zero Width No-Break Space (U+FEFF)
- sibling = null;
- else
- {
- var allChildren = sibling.$.all || sibling.$.getElementsByTagName( '*' );
- for ( var i = 0, child ; child = allChildren[ i++ ] ; )
- {
- if ( !CKEDITOR.dtd.$removeEmpty[ child.nodeName.toLowerCase() ] )
- {
- sibling = null;
- break;
- }
- }
- }
-
- if ( sibling )
- isWhiteSpace = !!siblingText.length;
- }
- else
- sibling = null;
- }
- }
-
- // A node with whitespaces has been found.
- if ( isWhiteSpace )
- {
- // Enlarge the last enlargeable node, if we
- // were waiting for spaces.
- if ( needsWhiteSpace )
- {
- if ( commonReached )
- startTop = enlargeable;
- else if ( enlargeable )
- this.setStartBefore( enlargeable );
- }
- else
- needsWhiteSpace = true;
- }
-
- if ( sibling )
- {
- var next = sibling.getPrevious();
-
- if ( !enlargeable && !next )
- {
- // Set the sibling as enlargeable, so it's
- // parent will be get later outside this while.
- enlargeable = sibling;
- sibling = null;
- break;
- }
-
- sibling = next;
- }
- else
- {
- // If sibling has been set to null, then we
- // need to stop enlarging.
- enlargeable = null;
- }
- }
-
- if ( enlargeable )
- enlargeable = enlargeable.getParent();
- }
-
- // Process the end boundary. This is basically the same
- // code used for the start boundary, with small changes to
- // make it work in the oposite side (to the right). This
- // makes it difficult to reuse the code here. So, fixes to
- // the above code are likely to be replicated here.
-
- container = this.endContainer;
- offset = this.endOffset;
-
- // Reset the common variables.
- enlargeable = sibling = null;
- commonReached = needsWhiteSpace = false;
-
- if ( container.type == CKEDITOR.NODE_TEXT )
- {
- // Check if there is any non-space text after the
- // offset. Otherwise, container is null.
- container = !CKEDITOR.tools.trim( container.substring( offset ) ).length && container;
-
- // If we found only whitespace in the node, it
- // means that we'll need more whitespace to be able
- // to expand. For example, <i> can be expanded in
- // "A <i> [B]</i>", but not in "A<i> [B]</i>".
- needsWhiteSpace = !( container && container.getLength() );
-
- if ( container )
- {
- if ( !( sibling = container.getNext() ) )
- enlargeable = container.getParent();
- }
- }
- else
- {
- // Get the node right after the boudary to be checked
- // first.
- sibling = container.getChild( offset );
-
- if ( !sibling )
- enlargeable = container;
- }
-
- while ( enlargeable || sibling )
- {
- if ( enlargeable && !sibling )
- {
- if ( !commonReached && enlargeable.equals( commonAncestor ) )
- commonReached = true;
-
- if ( !body.contains( enlargeable ) )
- break;
-
- if ( !needsWhiteSpace || enlargeable.getComputedStyle( 'display' ) != 'inline' )
- {
- needsWhiteSpace = false;
-
- if ( commonReached )
- endTop = enlargeable;
- else if ( enlargeable )
- this.setEndAfter( enlargeable );
- }
-
- sibling = enlargeable.getNext();
- }
-
- while ( sibling )
- {
- isWhiteSpace = false;
-
- if ( sibling.type == CKEDITOR.NODE_TEXT )
- {
- siblingText = sibling.getText();
-
- if ( /[^\s\ufeff]/.test( siblingText ) )
- sibling = null;
-
- isWhiteSpace = /^[\s\ufeff]/.test( siblingText );
- }
- else
- {
- // If this is a visible element.
- // We need to check for the bookmark attribute because IE insists on
- // rendering the display:none nodes we use for bookmarks. (#3363)
- if ( sibling.$.offsetWidth > 0 && !sibling.getAttribute( '_cke_bookmark' ) )
- {
- // We'll accept it only if we need
- // whitespace, and this is an inline
- // element with whitespace only.
- if ( needsWhiteSpace && CKEDITOR.dtd.$removeEmpty[ sibling.getName() ] )
- {
- // It must contains spaces and inline elements only.
-
- siblingText = sibling.getText();
-
- if ( (/[^\s\ufeff]/).test( siblingText ) )
- sibling = null;
- else
- {
- allChildren = sibling.$.all || sibling.$.getElementsByTagName( '*' );
- for ( i = 0 ; child = allChildren[ i++ ] ; )
- {
- if ( !CKEDITOR.dtd.$removeEmpty[ child.nodeName.toLowerCase() ] )
- {
- sibling = null;
- break;
- }
- }
- }
-
- if ( sibling )
- isWhiteSpace = !!siblingText.length;
- }
- else
- sibling = null;
- }
- }
-
- if ( isWhiteSpace )
- {
- if ( needsWhiteSpace )
- {
- if ( commonReached )
- endTop = enlargeable;
- else
- this.setEndAfter( enlargeable );
- }
- }
-
- if ( sibling )
- {
- next = sibling.getNext();
-
- if ( !enlargeable && !next )
- {
- enlargeable = sibling;
- sibling = null;
- break;
- }
-
- sibling = next;
- }
- else
- {
- // If sibling has been set to null, then we
- // need to stop enlarging.
- enlargeable = null;
- }
- }
-
- if ( enlargeable )
- enlargeable = enlargeable.getParent();
- }
-
- // If the common ancestor can be enlarged by both boundaries, then include it also.
- if ( startTop && endTop )
- {
- commonAncestor = startTop.contains( endTop ) ? endTop : startTop;
-
- this.setStartBefore( commonAncestor );
- this.setEndAfter( commonAncestor );
- }
- break;
-
- case CKEDITOR.ENLARGE_BLOCK_CONTENTS:
- case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:
-
- // Enlarging the start boundary.
- var walkerRange = new CKEDITOR.dom.range( this.document );
-
- body = this.document.getBody();
-
- walkerRange.setStartAt( body, CKEDITOR.POSITION_AFTER_START );
- walkerRange.setEnd( this.startContainer, this.startOffset );
-
- var walker = new CKEDITOR.dom.walker( walkerRange ),
- blockBoundary, // The node on which the enlarging should stop.
- tailBr, // In case BR as block boundary.
- notBlockBoundary = CKEDITOR.dom.walker.blockBoundary(
- ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) ? { br : 1 } : null ),
- // Record the encountered 'blockBoundary' for later use.
- boundaryGuard = function( node )
- {
- var retval = notBlockBoundary( node );
- if ( !retval )
- blockBoundary = node;
- return retval;
- },
- // Record the encounted 'tailBr' for later use.
- tailBrGuard = function( node )
- {
- var retval = boundaryGuard( node );
- if ( !retval && node.is && node.is( 'br' ) )
- tailBr = node;
- return retval;
- };
-
- walker.guard = boundaryGuard;
-
- enlargeable = walker.lastBackward();
-
- // It's the body which stop the enlarging if no block boundary found.
- blockBoundary = blockBoundary || body;
-
- // Start the range either after the end of found block (<p>...</p>[text)
- // or at the start of block (<p>[text...), by comparing the document position
- // with 'enlargeable' node.
- this.setStartAt(
- blockBoundary,
- !blockBoundary.is( 'br' ) &&
- ( !enlargeable && this.checkStartOfBlock()
- || enlargeable && blockBoundary.contains( enlargeable ) ) ?
- CKEDITOR.POSITION_AFTER_START :
- CKEDITOR.POSITION_AFTER_END );
-
- // Enlarging the end boundary.
- walkerRange = this.clone();
- walkerRange.collapse();
- walkerRange.setEndAt( body, CKEDITOR.POSITION_BEFORE_END );
- walker = new CKEDITOR.dom.walker( walkerRange );
-
- // tailBrGuard only used for on range end.
- walker.guard = ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) ?
- tailBrGuard : boundaryGuard;
- blockBoundary = null;
- // End the range right before the block boundary node.
-
- enlargeable = walker.lastForward();
-
- // It's the body which stop the enlarging if no block boundary found.
- blockBoundary = blockBoundary || body;
-
- // Close the range either before the found block start (text]<p>...</p>) or at the block end (...text]</p>)
- // by comparing the document position with 'enlargeable' node.
- this.setEndAt(
- blockBoundary,
- ( !enlargeable && this.checkEndOfBlock()
- || enlargeable && blockBoundary.contains( enlargeable ) ) ?
- CKEDITOR.POSITION_BEFORE_END :
- CKEDITOR.POSITION_BEFORE_START );
- // We must include the <br> at the end of range if there's
- // one and we're expanding list item contents
- if ( tailBr )
- this.setEndAfter( tailBr );
- }
- },
-
- /**
- * Descrease the range to make sure that boundaries
- * always anchor beside text nodes or innermost element.
- * @param {Number} mode ( CKEDITOR.SHRINK_ELEMENT | CKEDITOR.SHRINK_TEXT ) The shrinking mode.
- * <dl>
- * <dt>CKEDITOR.SHRINK_ELEMENT</dt>
- * <dd>Shrink the range boundaries to the edge of the innermost element.</dd>
- * <dt>CKEDITOR.SHRINK_TEXT</dt>
- * <dd>Shrink the range boudaries to anchor by the side of enclosed text node, range remains if there's no text nodes on boundaries at all.</dd>
- * </dl>
- * @param {Boolean} selectContents Whether result range anchors at the inner OR outer boundary of the node.
- */
- shrink : function( mode, selectContents )
- {
- // Unable to shrink a collapsed range.
- if ( !this.collapsed )
- {
- mode = mode || CKEDITOR.SHRINK_TEXT;
-
- var walkerRange = this.clone();
-
- var startContainer = this.startContainer,
- endContainer = this.endContainer,
- startOffset = this.startOffset,
- endOffset = this.endOffset,
- collapsed = this.collapsed;
-
- // Whether the start/end boundary is moveable.
- var moveStart = 1,
- moveEnd = 1;
-
- if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
- {
- if ( !startOffset )
- walkerRange.setStartBefore( startContainer );
- else if ( startOffset >= startContainer.getLength( ) )
- walkerRange.setStartAfter( startContainer );
- else
- {
- // Enlarge the range properly to avoid walker making
- // DOM changes caused by triming the text nodes later.
- walkerRange.setStartBefore( startContainer );
- moveStart = 0;
- }
- }
-
- if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
- {
- if ( !endOffset )
- walkerRange.setEndBefore( endContainer );
- else if ( endOffset >= endContainer.getLength( ) )
- walkerRange.setEndAfter( endContainer );
- else
- {
- walkerRange.setEndAfter( endContainer );
- moveEnd = 0;
- }
- }
-
- var walker = new CKEDITOR.dom.walker( walkerRange );
-
- walker.evaluator = function( node )
- {
- return node.type == ( mode == CKEDITOR.SHRINK_ELEMENT ?
- CKEDITOR.NODE_ELEMENT : CKEDITOR.NODE_TEXT );
- };
-
- var currentElement;
- walker.guard = function( node, movingOut )
- {
- // Stop when we're shrink in element mode while encountering a text node.
- if ( mode == CKEDITOR.SHRINK_ELEMENT && node.type == CKEDITOR.NODE_TEXT )
- return false;
-
- // Stop when we've already walked "through" an element.
- if ( movingOut && node.equals( currentElement ) )
- return false;
-
- if ( !movingOut && node.type == CKEDITOR.NODE_ELEMENT )
- currentElement = node;
-
- return true;
- };
-
- if ( moveStart )
- {
- var textStart = walker[ mode == CKEDITOR.SHRINK_ELEMENT ? 'lastForward' : 'next']();
- textStart && this.setStartAt( textStart, selectContents ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_START );
- }
-
- if ( moveEnd )
- {
- walker.reset();
- var textEnd = walker[ mode == CKEDITOR.SHRINK_ELEMENT ? 'lastBackward' : 'previous']();
- textEnd && this.setEndAt( textEnd, selectContents ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.POSITION_AFTER_END );
- }
-
- return !!( moveStart || moveEnd );
- }
- },
-
- /**
- * Inserts a node at the start of the range. The range will be expanded
- * the contain the node.
- */
- insertNode : function( node )
- {
- this.optimizeBookmark();
- this.trim( false, true );
-
- var startContainer = this.startContainer;
- var startOffset = this.startOffset;
-
- var nextNode = startContainer.getChild( startOffset );
-
- if ( nextNode )
- node.insertBefore( nextNode );
- else
- startContainer.append( node );
-
- // Check if we need to update the end boundary.
- if ( node.getParent().equals( this.endContainer ) )
- this.endOffset++;
-
- // Expand the range to embrace the new node.
- this.setStartBefore( node );
- },
-
- moveToPosition : function( node, position )
- {
- this.setStartAt( node, position );
- this.collapse( true );
- },
-
- selectNodeContents : function( node )
- {
- this.setStart( node, 0 );
- this.setEnd( node, node.type == CKEDITOR.NODE_TEXT ? node.getLength() : node.getChildCount() );
- },
-
- /**
- * Sets the start position of a Range.
- * @param {CKEDITOR.dom.node} startNode The node to start the range.
- * @param {Number} startOffset An integer greater than or equal to zero
- * representing the offset for the start of the range from the start
- * of startNode.
- */
- setStart : function( startNode, startOffset )
- {
- // W3C requires a check for the new position. If it is after the end
- // boundary, the range should be collapsed to the new start. It seams
- // we will not need this check for our use of this class so we can
- // ignore it for now.
-
- // Fixing invalid range start inside dtd empty elements.
- if( startNode.type == CKEDITOR.NODE_ELEMENT
- && CKEDITOR.dtd.$empty[ startNode.getName() ] )
- startNode = startNode.getParent(), startOffset = startNode.getIndex();
-
- this.startContainer = startNode;
- this.startOffset = startOffset;
-
- if ( !this.endContainer )
- {
- this.endContainer = startNode;
- this.endOffset = startOffset;
- }
-
- updateCollapsed( this );
- },
-
- /**
- * Sets the end position of a Range.
- * @param {CKEDITOR.dom.node} endNode The node to end the range.
- * @param {Number} endOffset An integer greater than or equal to zero
- * representing the offset for the end of the range from the start
- * of endNode.
- */
- setEnd : function( endNode, endOffset )
- {
- // W3C requires a check for the new position. If it is before the start
- // boundary, the range should be collapsed to the new end. It seams we
- // will not need this check for our use of this class so we can ignore
- // it for now.
-
- // Fixing invalid range end inside dtd empty elements.
- if( endNode.type == CKEDITOR.NODE_ELEMENT
- && CKEDITOR.dtd.$empty[ endNode.getName() ] )
- endNode = endNode.getParent(), endOffset = endNode.getIndex() + 1;
-
- this.endContainer = endNode;
- this.endOffset = endOffset;
-
- if ( !this.startContainer )
- {
- this.startContainer = endNode;
- this.startOffset = endOffset;
- }
-
- updateCollapsed( this );
- },
-
- setStartAfter : function( node )
- {
- this.setStart( node.getParent(), node.getIndex() + 1 );
- },
-
- setStartBefore : function( node )
- {
- this.setStart( node.getParent(), node.getIndex() );
- },
-
- setEndAfter : function( node )
- {
- this.setEnd( node.getParent(), node.getIndex() + 1 );
- },
-
- setEndBefore : function( node )
- {
- this.setEnd( node.getParent(), node.getIndex() );
- },
-
- setStartAt : function( node, position )
- {
- switch( position )
- {
- case CKEDITOR.POSITION_AFTER_START :
- this.setStart( node, 0 );
- break;
-
- case CKEDITOR.POSITION_BEFORE_END :
- if ( node.type == CKEDITOR.NODE_TEXT )
- this.setStart( node, node.getLength() );
- else
- this.setStart( node, node.getChildCount() );
- break;
-
- case CKEDITOR.POSITION_BEFORE_START :
- this.setStartBefore( node );
- break;
-
- case CKEDITOR.POSITION_AFTER_END :
- this.setStartAfter( node );
- }
-
- updateCollapsed( this );
- },
-
- setEndAt : function( node, position )
- {
- switch( position )
- {
- case CKEDITOR.POSITION_AFTER_START :
- this.setEnd( node, 0 );
- break;
-
- case CKEDITOR.POSITION_BEFORE_END :
- if ( node.type == CKEDITOR.NODE_TEXT )
- this.setEnd( node, node.getLength() );
- else
- this.setEnd( node, node.getChildCount() );
- break;
-
- case CKEDITOR.POSITION_BEFORE_START :
- this.setEndBefore( node );
- break;
-
- case CKEDITOR.POSITION_AFTER_END :
- this.setEndAfter( node );
- }
-
- updateCollapsed( this );
- },
-
- fixBlock : function( isStart, blockTag )
- {
- var bookmark = this.createBookmark(),
- fixedBlock = this.document.createElement( blockTag );
-
- this.collapse( isStart );
-
- this.enlarge( CKEDITOR.ENLARGE_BLOCK_CONTENTS );
-
- this.extractContents().appendTo( fixedBlock );
- fixedBlock.trim();
-
- if ( !CKEDITOR.env.ie )
- fixedBlock.appendBogus();
-
- this.insertNode( fixedBlock );
-
- this.moveToBookmark( bookmark );
-
- return fixedBlock;
- },
-
- splitBlock : function( blockTag )
- {
- var startPath = new CKEDITOR.dom.elementPath( this.startContainer ),
- endPath = new CKEDITOR.dom.elementPath( this.endContainer );
-
- var startBlockLimit = startPath.blockLimit,
- endBlockLimit = endPath.blockLimit;
-
- var startBlock = startPath.block,
- endBlock = endPath.block;
-
- var elementPath = null;
- // Do nothing if the boundaries are in different block limits.
- if ( !startBlockLimit.equals( endBlockLimit ) )
- return null;
-
- // Get or fix current blocks.
- if ( blockTag != 'br' )
- {
- if ( !startBlock )
- {
- startBlock = this.fixBlock( true, blockTag );
- endBlock = new CKEDITOR.dom.elementPath( this.endContainer ).block;
- }
-
- if ( !endBlock )
- endBlock = this.fixBlock( false, blockTag );
- }
-
- // Get the range position.
- var isStartOfBlock = startBlock && this.checkStartOfBlock(),
- isEndOfBlock = endBlock && this.checkEndOfBlock();
-
- // Delete the current contents.
- // TODO: Why is 2.x doing CheckIsEmpty()?
- this.deleteContents();
-
- if ( startBlock && startBlock.equals( endBlock ) )
- {
- if ( isEndOfBlock )
- {
- elementPath = new CKEDITOR.dom.elementPath( this.startContainer );
- this.moveToPosition( endBlock, CKEDITOR.POSITION_AFTER_END );
- endBlock = null;
- }
- else if ( isStartOfBlock )
- {
- elementPath = new CKEDITOR.dom.elementPath( this.startContainer );
- this.moveToPosition( startBlock, CKEDITOR.POSITION_BEFORE_START );
- startBlock = null;
- }
- else
- {
- endBlock = this.splitElement( startBlock );
-
- // In Gecko, the last child node must be a bogus <br>.
- // Note: bogus <br> added under <ul> or <ol> would cause
- // lists to be incorrectly rendered.
- if ( !CKEDITOR.env.ie && !startBlock.is( 'ul', 'ol') )
- startBlock.appendBogus() ;
- }
- }
-
- return {
- previousBlock : startBlock,
- nextBlock : endBlock,
- wasStartOfBlock : isStartOfBlock,
- wasEndOfBlock : isEndOfBlock,
- elementPath : elementPath
- };
- },
-
- /**
- * Branch the specified element from the collapsed range position and
- * place the caret between the two result branches.
- * Note: The range must be collapsed and been enclosed by this element.
- * @param {CKEDITOR.dom.element} element
- * @return {CKEDITOR.dom.element} Root element of the new branch after the split.
- */
- splitElement : function( toSplit )
- {
- if ( !this.collapsed )
- return null;
-
- // Extract the contents of the block from the selection point to the end
- // of its contents.
- this.setEndAt( toSplit, CKEDITOR.POSITION_BEFORE_END );
- var documentFragment = this.extractContents();
-
- // Duplicate the element after it.
- var clone = toSplit.clone( false );
-
- // Place the extracted contents into the duplicated element.
- documentFragment.appendTo( clone );
- clone.insertAfter( toSplit );
- this.moveToPosition( toSplit, CKEDITOR.POSITION_AFTER_END );
- return clone;
- },
-
- /**
- * Check whether a range boundary is at the inner boundary of a given
- * element.
- * @param {CKEDITOR.dom.element} element The target element to check.
- * @param {Number} checkType The boundary to check for both the range
- * and the element. It can be CKEDITOR.START or CKEDITOR.END.
- * @returns {Boolean} "true" if the range boundary is at the inner
- * boundary of the element.
- */
- checkBoundaryOfElement : function( element, checkType )
- {
- var checkStart = ( checkType == CKEDITOR.START );
-
- // Create a copy of this range, so we can manipulate it for our checks.
- var walkerRange = this.clone();
-
- // Collapse the range at the proper size.
- walkerRange.collapse( checkStart );
-
- // Expand the range to element boundary.
- walkerRange[ checkStart ? 'setStartAt' : 'setEndAt' ]
- ( element, checkStart ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_END );
-
- // Create the walker, which will check if we have anything useful
- // in the range.
- var walker = new CKEDITOR.dom.walker( walkerRange );
- walker.evaluator = elementBoundaryEval;
-
- return walker[ checkStart ? 'checkBackward' : 'checkForward' ]();
- },
-
- // Calls to this function may produce changes to the DOM. The range may
- // be updated to reflect such changes.
- checkStartOfBlock : function()
- {
- var startContainer = this.startContainer,
- startOffset = this.startOffset;
-
- // If the starting node is a text node, and non-empty before the offset,
- // then we're surely not at the start of block.
- if ( startOffset && startContainer.type == CKEDITOR.NODE_TEXT )
- {
- var textBefore = CKEDITOR.tools.ltrim( startContainer.substring( 0, startOffset ) );
- if ( textBefore.length )
- return false;
- }
-
- // Antecipate the trim() call here, so the walker will not make
- // changes to the DOM, which would not get reflected into this
- // range otherwise.
- this.trim();
-
- // We need to grab the block element holding the start boundary, so
- // let's use an element path for it.
- var path = new CKEDITOR.dom.elementPath( this.startContainer );
-
- // Creates a range starting at the block start until the range start.
- var walkerRange = this.clone();
- walkerRange.collapse( true );
- walkerRange.setStartAt( path.block || path.blockLimit, CKEDITOR.POSITION_AFTER_START );
-
- var walker = new CKEDITOR.dom.walker( walkerRange );
- walker.evaluator = getCheckStartEndBlockEvalFunction( true );
-
- return walker.checkBackward();
- },
-
- checkEndOfBlock : function()
- {
- var endContainer = this.endContainer,
- endOffset = this.endOffset;
-
- // If the ending node is a text node, and non-empty after the offset,
- // then we're surely not at the end of block.
- if ( endContainer.type == CKEDITOR.NODE_TEXT )
- {
- var textAfter = CKEDITOR.tools.rtrim( endContainer.substring( endOffset ) );
- if ( textAfter.length )
- return false;
- }
-
- // Antecipate the trim() call here, so the walker will not make
- // changes to the DOM, which would not get reflected into this
- // range otherwise.
- this.trim();
-
- // We need to grab the block element holding the start boundary, so
- // let's use an element path for it.
- var path = new CKEDITOR.dom.elementPath( this.endContainer );
-
- // Creates a range starting at the block start until the range start.
- var walkerRange = this.clone();
- walkerRange.collapse( false );
- walkerRange.setEndAt( path.block || path.blockLimit, CKEDITOR.POSITION_BEFORE_END );
-
- var walker = new CKEDITOR.dom.walker( walkerRange );
- walker.evaluator = getCheckStartEndBlockEvalFunction( false );
-
- return walker.checkForward();
- },
-
- /**
- * Moves the range boundaries to the first/end editing point inside an
- * element. For example, in an element tree like
- * "<p><b><i></i></b> Text</p>", the start editing point is
- * "<p><b><i>^</i></b> Text</p>" (inside <i>).
- * @param {CKEDITOR.dom.element} el The element into which look for the
- * editing spot.
- * @param {Boolean} isMoveToEnd Whether move to the end editable position.
- */
- moveToElementEditablePosition : function( el, isMoveToEnd )
- {
- var isEditable;
-
- // Empty elements are rejected.
- if ( CKEDITOR.dtd.$empty[ el.getName() ] )
- return false;
-
- while ( el && el.type == CKEDITOR.NODE_ELEMENT )
- {
- isEditable = el.isEditable();
-
- // If an editable element is found, move inside it.
- if ( isEditable )
- this.moveToPosition( el, isMoveToEnd ?
- CKEDITOR.POSITION_BEFORE_END :
- CKEDITOR.POSITION_AFTER_START );
- // Stop immediately if we've found a non editable inline element (e.g <img>).
- else if ( CKEDITOR.dtd.$inline[ el.getName() ] )
- {
- this.moveToPosition( el, isMoveToEnd ?
- CKEDITOR.POSITION_AFTER_END :
- CKEDITOR.POSITION_BEFORE_START );
- return true;
- }
-
- // Non-editable non-inline elements are to be bypassed, getting the next one.
- if ( CKEDITOR.dtd.$empty[ el.getName() ] )
- el = el[ isMoveToEnd ? 'getPrevious' : 'getNext' ]( nonWhitespaceOrBookmarkEval );
- else
- el = el[ isMoveToEnd ? 'getLast' : 'getFirst' ]( nonWhitespaceOrBookmarkEval );
-
- // Stop immediately if we've found a text node.
- if ( el && el.type == CKEDITOR.NODE_TEXT )
- {
- this.moveToPosition( el, isMoveToEnd ?
- CKEDITOR.POSITION_AFTER_END :
- CKEDITOR.POSITION_BEFORE_START );
- return true;
- }
- }
-
- return isEditable;
- },
-
- /**
- *@see {CKEDITOR.dom.range.moveToElementEditablePosition}
- */
- moveToElementEditStart : function( target )
- {
- return this.moveToElementEditablePosition( target );
- },
-
- /**
- *@see {CKEDITOR.dom.range.moveToElementEditablePosition}
- */
- moveToElementEditEnd : function( target )
- {
- return this.moveToElementEditablePosition( target, true );
- },
-
- /**
- * Get the single node enclosed within the range if there's one.
- */
- getEnclosedNode : function()
- {
- var walkerRange = this.clone();
-
- // Optimize and analyze the range to avoid DOM destructive nature of walker. (#5780)
- walkerRange.optimize();
- if ( walkerRange.startContainer.type != CKEDITOR.NODE_ELEMENT
- || walkerRange.endContainer.type != CKEDITOR.NODE_ELEMENT )
- return null;
-
- var walker = new CKEDITOR.dom.walker( walkerRange ),
- isNotBookmarks = CKEDITOR.dom.walker.bookmark( true ),
- isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
- evaluator = function( node )
- {
- return isNotWhitespaces( node ) && isNotBookmarks( node );
- };
- walkerRange.evaluator = evaluator;
- var node = walker.next();
- walker.reset();
- return node && node.equals( walker.previous() ) ? node : null;
- },
-
- getTouchedStartNode : function()
- {
- var container = this.startContainer ;
-
- if ( this.collapsed || container.type != CKEDITOR.NODE_ELEMENT )
- return container ;
-
- return container.getChild( this.startOffset ) || container ;
- },
-
- getTouchedEndNode : function()
- {
- var container = this.endContainer ;
-
- if ( this.collapsed || container.type != CKEDITOR.NODE_ELEMENT )
- return container ;
-
- return container.getChild( this.endOffset - 1 ) || container ;
- }
- };
-})();
-
-CKEDITOR.POSITION_AFTER_START = 1; // <element>^contents</element> "^text"
-CKEDITOR.POSITION_BEFORE_END = 2; // <element>contents^</element> "text^"
-CKEDITOR.POSITION_BEFORE_START = 3; // ^<element>contents</element> ^"text"
-CKEDITOR.POSITION_AFTER_END = 4; // <element>contents</element>^ "text"
-
-CKEDITOR.ENLARGE_ELEMENT = 1;
-CKEDITOR.ENLARGE_BLOCK_CONTENTS = 2;
-CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS = 3;
-
-/**
- * Check boundary types.
- * @see CKEDITOR.dom.range.prototype.checkBoundaryOfElement
- */
-CKEDITOR.START = 1;
-CKEDITOR.END = 2;
-CKEDITOR.STARTEND = 3;
-
-/**
- * Shrink range types.
- * @see CKEDITOR.dom.range.prototype.shrink
- */
-CKEDITOR.SHRINK_ELEMENT = 1;
-CKEDITOR.SHRINK_TEXT = 2;
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Represents a delimited piece of content in a DOM Document.
+ * It is contiguous in the sense that it can be characterized as selecting all
+ * of the content between a pair of boundary-points.
+ *
+ * This class shares much of the W3C
+ * [Document Object Model Range](http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html)
+ * ideas and features, adding several range manipulation tools to it, but it's
+ * not intended to be compatible with it.
+ *
+ * // Create a range for the entire contents of the editor document body.
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * // Delete the contents.
+ * range.deleteContents();
+ *
+ * @class
+ * @constructor Creates a {@link CKEDITOR.dom.range} instance that can be used inside a specific DOM Document.
+ * @param {CKEDITOR.dom.document/CKEDITOR.dom.element} root The document or element
+ * within which the range will be scoped.
+ * @todo global "TODO" - precise algorithms descriptions needed for the most complex methods like #enlarge.
+ */
+CKEDITOR.dom.range = function( root ) {
+ /**
+ * Node within which the range begins.
+ * One of {@link CKEDITOR#NODE_ELEMENT}, {@link CKEDITOR#NODE_TEXT}
+ *
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * alert( range.startContainer.getName() ); // 'body'
+ *
+ * @property {Number}
+ */
+ this.startContainer = null;
+
+ /**
+ * Offset within the starting node of the range.
+ *
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * alert( range.startOffset ); // 0
+ *
+ * @property {Number}
+ */
+ this.startOffset = null;
+
+ /**
+ * Node within which the range ends.
+ * One of {@link CKEDITOR#NODE_ELEMENT}, {@link CKEDITOR#NODE_TEXT}
+ *
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * alert( range.endContainer.getName() ); // 'body'
+ *
+ * @property {Number}
+ */
+ this.endContainer = null;
+
+ /**
+ * Offset within the ending node of the range.
+ *
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * alert( range.endOffset ); // == editor.document.getBody().getChildCount()
+ *
+ * @property {Number}
+ */
+ this.endOffset = null;
+
+ /**
+ * Indicates that this is a collapsed range. A collapsed range has it's
+ * start and end boudaries at the very same point so nothing is contained
+ * in it.
+ *
+ * var range = new CKEDITOR.dom.range( editor.document );
+ * range.selectNodeContents( editor.document.getBody() );
+ * alert( range.collapsed ); // false
+ * range.collapse();
+ * alert( range.collapsed ); // true
+ */
+ this.collapsed = true;
+
+ var isDocRoot = root instanceof CKEDITOR.dom.document;
+ /**
+ * The document within which the range can be used.
+ *
+ * // Selects the body contents of the range document.
+ * range.selectNodeContents( range.document.getBody() );
+ *
+ * @property {CKEDITOR.dom.document}
+ */
+ this.document = isDocRoot ? root : root.getDocument();
+
+ /**
+ * The ancestor DOM element within which the range manipulation are limited.
+ *
+ * @property {CKEDITOR.dom.element}
+ */
+ this.root = isDocRoot ? root.getBody() : root;
+};
+
+(function() {
+ // Updates the "collapsed" property for the given range object.
+ var updateCollapsed = function( range ) {
+ range.collapsed = ( range.startContainer && range.endContainer && range.startContainer.equals( range.endContainer ) && range.startOffset == range.endOffset );
+ };
+
+ // This is a shared function used to delete, extract and clone the range
+ // contents.
+ // V2
+ var execContentsAction = function( range, action, docFrag, mergeThen ) {
+ range.optimizeBookmark();
+
+ var startNode = range.startContainer;
+ var endNode = range.endContainer;
+
+ var startOffset = range.startOffset;
+ var endOffset = range.endOffset;
+
+ var removeStartNode;
+ var removeEndNode;
+
+ // For text containers, we must simply split the node and point to the
+ // second part. The removal will be handled by the rest of the code .
+ if ( endNode.type == CKEDITOR.NODE_TEXT )
+ endNode = endNode.split( endOffset );
+ else {
+ // If the end container has children and the offset is pointing
+ // to a child, then we should start from it.
+ if ( endNode.getChildCount() > 0 ) {
+ // If the offset points after the last node.
+ if ( endOffset >= endNode.getChildCount() ) {
+ // Let's create a temporary node and mark it for removal.
+ endNode = endNode.append( range.document.createText( '' ) );
+ removeEndNode = true;
+ } else
+ endNode = endNode.getChild( endOffset );
+ }
+ }
+
+ // For text containers, we must simply split the node. The removal will
+ // be handled by the rest of the code .
+ if ( startNode.type == CKEDITOR.NODE_TEXT ) {
+ startNode.split( startOffset );
+
+ // In cases the end node is the same as the start node, the above
+ // splitting will also split the end, so me must move the end to
+ // the second part of the split.
+ if ( startNode.equals( endNode ) )
+ endNode = startNode.getNext();
+ } else {
+ // If the start container has children and the offset is pointing
+ // to a child, then we should start from its previous sibling.
+
+ // If the offset points to the first node, we don't have a
+ // sibling, so let's use the first one, but mark it for removal.
+ if ( !startOffset ) {
+ // Let's create a temporary node and mark it for removal.
+ startNode = startNode.append( range.document.createText( '' ), 1 );
+ removeStartNode = true;
+ } else if ( startOffset >= startNode.getChildCount() ) {
+ // Let's create a temporary node and mark it for removal.
+ startNode = startNode.append( range.document.createText( '' ) );
+ removeStartNode = true;
+ } else
+ startNode = startNode.getChild( startOffset ).getPrevious();
+ }
+
+ // Get the parent nodes tree for the start and end boundaries.
+ var startParents = startNode.getParents();
+ var endParents = endNode.getParents();
+
+ // Compare them, to find the top most siblings.
+ var i, topStart, topEnd;
+
+ for ( i = 0; i < startParents.length; i++ ) {
+ topStart = startParents[ i ];
+ topEnd = endParents[ i ];
+
+ // The compared nodes will match until we find the top most
+ // siblings (different nodes that have the same parent).
+ // "i" will hold the index in the parents array for the top
+ // most element.
+ if ( !topStart.equals( topEnd ) )
+ break;
+ }
+
+ var clone = docFrag,
+ levelStartNode, levelClone, currentNode, currentSibling;
+
+ // Remove all successive sibling nodes for every node in the
+ // startParents tree.
+ for ( var j = i; j < startParents.length; j++ ) {
+ levelStartNode = startParents[ j ];
+
+ // For Extract and Clone, we must clone this level.
+ if ( clone && !levelStartNode.equals( startNode ) ) // action = 0 = Delete
+ levelClone = clone.append( levelStartNode.clone() );
+
+ currentNode = levelStartNode.getNext();
+
+ while ( currentNode ) {
+ // Stop processing when the current node matches a node in the
+ // endParents tree or if it is the endNode.
+ if ( currentNode.equals( endParents[ j ] ) || currentNode.equals( endNode ) )
+ break;
+
+ // Cache the next sibling.
+ currentSibling = currentNode.getNext();
+
+ // If cloning, just clone it.
+ if ( action == 2 ) // 2 = Clone
+ clone.append( currentNode.clone( true ) );
+ else {
+ // Both Delete and Extract will remove the node.
+ currentNode.remove();
+
+ // When Extracting, move the removed node to the docFrag.
+ if ( action == 1 ) // 1 = Extract
+ clone.append( currentNode );
+ }
+
+ currentNode = currentSibling;
+ }
+
+ if ( clone )
+ clone = levelClone;
+ }
+
+ clone = docFrag;
+
+ // Remove all previous sibling nodes for every node in the
+ // endParents tree.
+ for ( var k = i; k < endParents.length; k++ ) {
+ levelStartNode = endParents[ k ];
+
+ // For Extract and Clone, we must clone this level.
+ if ( action > 0 && !levelStartNode.equals( endNode ) ) // action = 0 = Delete
+ levelClone = clone.append( levelStartNode.clone() );
+
+ // The processing of siblings may have already been done by the parent.
+ if ( !startParents[ k ] || levelStartNode.$.parentNode != startParents[ k ].$.parentNode ) {
+ currentNode = levelStartNode.getPrevious();
+
+ while ( currentNode ) {
+ // Stop processing when the current node matches a node in the
+ // startParents tree or if it is the startNode.
+ if ( currentNode.equals( startParents[ k ] ) || currentNode.equals( startNode ) )
+ break;
+
+ // Cache the next sibling.
+ currentSibling = currentNode.getPrevious();
+
+ // If cloning, just clone it.
+ if ( action == 2 ) // 2 = Clone
+ clone.$.insertBefore( currentNode.$.cloneNode( true ), clone.$.firstChild );
+ else {
+ // Both Delete and Extract will remove the node.
+ currentNode.remove();
+
+ // When Extracting, mode the removed node to the docFrag.
+ if ( action == 1 ) // 1 = Extract
+ clone.$.insertBefore( currentNode.$, clone.$.firstChild );
+ }
+
+ currentNode = currentSibling;
+ }
+ }
+
+ if ( clone )
+ clone = levelClone;
+ }
+
+ if ( action == 2 ) // 2 = Clone.
+ {
+ // No changes in the DOM should be done, so fix the split text (if any).
+
+ var startTextNode = range.startContainer;
+ if ( startTextNode.type == CKEDITOR.NODE_TEXT ) {
+ startTextNode.$.data += startTextNode.$.nextSibling.data;
+ startTextNode.$.parentNode.removeChild( startTextNode.$.nextSibling );
+ }
+
+ var endTextNode = range.endContainer;
+ if ( endTextNode.type == CKEDITOR.NODE_TEXT && endTextNode.$.nextSibling ) {
+ endTextNode.$.data += endTextNode.$.nextSibling.data;
+ endTextNode.$.parentNode.removeChild( endTextNode.$.nextSibling );
+ }
+ } else {
+ // Collapse the range.
+
+ // If a node has been partially selected, collapse the range between
+ // topStart and topEnd. Otherwise, simply collapse it to the start. (W3C specs).
+ if ( topStart && topEnd && ( startNode.$.parentNode != topStart.$.parentNode || endNode.$.parentNode != topEnd.$.parentNode ) ) {
+ var endIndex = topEnd.getIndex();
+
+ // If the start node is to be removed, we must correct the
+ // index to reflect the removal.
+ if ( removeStartNode && topEnd.$.parentNode == startNode.$.parentNode )
+ endIndex--;
+
+ // Merge splitted parents.
+ if ( mergeThen && topStart.type == CKEDITOR.NODE_ELEMENT ) {
+ var span = CKEDITOR.dom.element.createFromHtml( '<span ' +
+ 'data-cke-bookmark="1" style="display:none"> </span>', range.document );
+ span.insertAfter( topStart );
+ topStart.mergeSiblings( false );
+ range.moveToBookmark({ startNode: span } );
+ } else
+ range.setStart( topEnd.getParent(), endIndex );
+ }
+
+ // Collapse it to the start.
+ range.collapse( true );
+ }
+
+ // Cleanup any marked node.
+ if ( removeStartNode )
+ startNode.remove();
+
+ if ( removeEndNode && endNode.$.parentNode )
+ endNode.remove();
+ };
+
+ var inlineChildReqElements = { abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 };
+
+ // Creates the appropriate node evaluator for the dom walker used inside
+ // check(Start|End)OfBlock.
+ function getCheckStartEndBlockEvalFunction() {
+ var skipBogus = false,
+ whitespaces = CKEDITOR.dom.walker.whitespaces(),
+ bookmarkEvaluator = CKEDITOR.dom.walker.bookmark( true ),
+ isBogus = CKEDITOR.dom.walker.bogus();
+
+ return function( node ) {
+ // First skip empty nodes
+ if ( bookmarkEvaluator( node ) || whitespaces( node ) )
+ return true;
+
+ // Skip the bogus node at the end of block.
+ if ( isBogus( node ) && !skipBogus ) {
+ skipBogus = true;
+ return true;
+ }
+
+ // If there's any visible text, then we're not at the start.
+ if ( node.type == CKEDITOR.NODE_TEXT &&
+ ( node.hasAscendant( 'pre' ) ||
+ CKEDITOR.tools.trim( node.getText() ).length ) )
+ return false;
+
+ // If there are non-empty inline elements (e.g. <img />), then we're not
+ // at the start.
+ if ( node.type == CKEDITOR.NODE_ELEMENT && !node.is( inlineChildReqElements ) )
+ return false;
+
+ return true;
+ };
+ }
+
+
+ var isBogus = CKEDITOR.dom.walker.bogus();
+ // Evaluator for CKEDITOR.dom.element::checkBoundaryOfElement, reject any
+ // text node and non-empty elements unless it's being bookmark text.
+ function elementBoundaryEval( checkStart ) {
+ var whitespaces = CKEDITOR.dom.walker.whitespaces(),
+ bookmark = CKEDITOR.dom.walker.bookmark( 1 );
+
+ return function( node ) {
+ // First skip empty nodes.
+ if ( bookmark( node ) || whitespaces( node ) )
+ return true;
+
+ // Tolerant bogus br when checking at the end of block.
+ // Reject any text node unless it's being bookmark
+ // OR it's spaces.
+ // Reject any element unless it's being invisible empty. (#3883)
+ return !checkStart && isBogus( node ) ||
+ node.type == CKEDITOR.NODE_ELEMENT &&
+ node.is( CKEDITOR.dtd.$removeEmpty );
+ };
+ }
+
+ var whitespaceEval = new CKEDITOR.dom.walker.whitespaces(),
+ bookmarkEval = new CKEDITOR.dom.walker.bookmark(),
+ nbspRegExp = /^[\t\r\n ]*(?: |\xa0)$/;
+
+ function nonWhitespaceOrBookmarkEval( node ) {
+ // Whitespaces and bookmark nodes are to be ignored.
+ return !whitespaceEval( node ) && !bookmarkEval( node );
+ }
+
+ CKEDITOR.dom.range.prototype = {
+ /**
+ * Clones this range.
+ *
+ * @returns {CKEDITOR.dom.range}
+ */
+ clone: function() {
+ var clone = new CKEDITOR.dom.range( this.root );
+
+ clone.startContainer = this.startContainer;
+ clone.startOffset = this.startOffset;
+ clone.endContainer = this.endContainer;
+ clone.endOffset = this.endOffset;
+ clone.collapsed = this.collapsed;
+
+ return clone;
+ },
+
+ /**
+ * Makes range collapsed by moving its start point (or end point if `toStart==true`)
+ * to the second end.
+ *
+ * @param {Boolean} toStart Collapse range "to start".
+ */
+ collapse: function( toStart ) {
+ if ( toStart ) {
+ this.endContainer = this.startContainer;
+ this.endOffset = this.startOffset;
+ } else {
+ this.startContainer = this.endContainer;
+ this.startOffset = this.endOffset;
+ }
+
+ this.collapsed = true;
+ },
+
+ /**
+ * The content nodes of the range are cloned and added to a document fragment, which is returned.
+ *
+ * **Note:** Text selection may lost after invoking this method (caused by text node splitting).
+ *
+ * @returns {CKEDITOR.dom.documentFragment} Document fragment containing clone of range's content.
+ */
+ cloneContents: function() {
+ var docFrag = new CKEDITOR.dom.documentFragment( this.document );
+
+ if ( !this.collapsed )
+ execContentsAction( this, 2, docFrag );
+
+ return docFrag;
+ },
+
+ /**
+ * Deletes the content nodes of the range permanently from the DOM tree.
+ *
+ * @param {Boolean} [mergeThen] Merge any splitted elements result in DOM true due to partial selection.
+ */
+ deleteContents: function( mergeThen ) {
+ if ( this.collapsed )
+ return;
+
+ execContentsAction( this, 0, null, mergeThen );
+ },
+
+ /**
+ * The content nodes of the range are cloned and added to a document fragment,
+ * meanwhile they are removed permanently from the DOM tree.
+ *
+ * @param {Boolean} [mergeThen] Merge any splitted elements result in DOM true due to partial selection.
+ * @returns {CKEDITOR.dom.documentFragment} Document fragment containing extracted content.
+ */
+ extractContents: function( mergeThen ) {
+ var docFrag = new CKEDITOR.dom.documentFragment( this.document );
+
+ if ( !this.collapsed )
+ execContentsAction( this, 1, docFrag, mergeThen );
+
+ return docFrag;
+ },
+
+ /**
+ * Creates a bookmark object, which can be later used to restore the
+ * range by using the {@link #moveToBookmark} function.
+ *
+ * This is an "intrusive" way to create a bookmark. It includes `<span>` tags
+ * in the range boundaries. The advantage of it is that it is possible to
+ * handle DOM mutations when moving back to the bookmark.
+ *
+ * **Note:** the inclusion of nodes in the DOM is a design choice and
+ * should not be changed as there are other points in the code that may be
+ * using those nodes to perform operations.
+ *
+ * @param {Boolean} [serializable] Indicates that the bookmark nodes
+ * must contain ids, which can be used to restore the range even
+ * when these nodes suffer mutations (like a clonation or `innerHTML` change).
+ * @returns {Object} And object representing a bookmark.
+ * @returns {CKEDITOR.dom.node/String} return.startNode Node or element id.
+ * @returns {CKEDITOR.dom.node/String} return.endNode Node or element id.
+ * @returns {Boolean} return.serializable
+ * @returns {Boolean} return.collapsed
+ */
+ createBookmark: function( serializable ) {
+ var startNode, endNode;
+ var baseId;
+ var clone;
+ var collapsed = this.collapsed;
+
+ startNode = this.document.createElement( 'span' );
+ startNode.data( 'cke-bookmark', 1 );
+ startNode.setStyle( 'display', 'none' );
+
+ // For IE, it must have something inside, otherwise it may be
+ // removed during DOM operations.
+ startNode.setHtml( ' ' );
+
+ if ( serializable ) {
+ baseId = 'cke_bm_' + CKEDITOR.tools.getNextNumber();
+ startNode.setAttribute( 'id', baseId + ( collapsed ? 'C' : 'S' ) );
+ }
+
+ // If collapsed, the endNode will not be created.
+ if ( !collapsed ) {
+ endNode = startNode.clone();
+ endNode.setHtml( ' ' );
+
+ if ( serializable )
+ endNode.setAttribute( 'id', baseId + 'E' );
+
+ clone = this.clone();
+ clone.collapse();
+ clone.insertNode( endNode );
+ }
+
+ clone = this.clone();
+ clone.collapse( true );
+ clone.insertNode( startNode );
+
+ // Update the range position.
+ if ( endNode ) {
+ this.setStartAfter( startNode );
+ this.setEndBefore( endNode );
+ } else
+ this.moveToPosition( startNode, CKEDITOR.POSITION_AFTER_END );
+
+ return {
+ startNode: serializable ? baseId + ( collapsed ? 'C' : 'S' ) : startNode,
+ endNode: serializable ? baseId + 'E' : endNode,
+ serializable: serializable,
+ collapsed: collapsed
+ };
+ },
+
+ /**
+ * Creates a "non intrusive" and "mutation sensible" bookmark. This
+ * kind of bookmark should be used only when the DOM is supposed to
+ * remain stable after its creation.
+ *
+ * @param {Boolean} [normalized] Indicates that the bookmark must
+ * normalized. When normalized, the successive text nodes are
+ * considered a single node. To sucessful load a normalized
+ * bookmark, the DOM tree must be also normalized before calling
+ * {@link #moveToBookmark}.
+ * @returns {Object} An object representing the bookmark.
+ * @returns {Array} return.start Start container's address (see {@link CKEDITOR.dom.node#getAddress}).
+ * @returns {Array} return.end Start container's address.
+ * @returns {Number} return.startOffset
+ * @returns {Number} return.endOffset
+ * @returns {Boolean} return.collapsed
+ * @returns {Boolean} return.normalized
+ * @returns {Boolean} return.is2 This is "bookmark2".
+ */
+ createBookmark2: function( normalized ) {
+ var startContainer = this.startContainer,
+ endContainer = this.endContainer;
+
+ var startOffset = this.startOffset,
+ endOffset = this.endOffset;
+
+ var collapsed = this.collapsed;
+
+ var child, previous;
+
+ // If there is no range then get out of here.
+ // It happens on initial load in Safari #962 and if the editor it's
+ // hidden also in Firefox
+ if ( !startContainer || !endContainer )
+ return { start: 0, end: 0 };
+
+ if ( normalized ) {
+ // Find out if the start is pointing to a text node that will
+ // be normalized.
+ if ( startContainer.type == CKEDITOR.NODE_ELEMENT ) {
+ child = startContainer.getChild( startOffset );
+
+ // In this case, move the start information to that text
+ // node.
+ if ( child && child.type == CKEDITOR.NODE_TEXT && startOffset > 0 && child.getPrevious().type == CKEDITOR.NODE_TEXT ) {
+ startContainer = child;
+ startOffset = 0;
+ }
+
+ // Get the normalized offset.
+ if ( child && child.type == CKEDITOR.NODE_ELEMENT )
+ startOffset = child.getIndex( 1 );
+ }
+
+ // Normalize the start.
+ while ( startContainer.type == CKEDITOR.NODE_TEXT && ( previous = startContainer.getPrevious() ) && previous.type == CKEDITOR.NODE_TEXT ) {
+ startContainer = previous;
+ startOffset += previous.getLength();
+ }
+
+ // Process the end only if not normalized.
+ if ( !collapsed ) {
+ // Find out if the start is pointing to a text node that
+ // will be normalized.
+ if ( endContainer.type == CKEDITOR.NODE_ELEMENT ) {
+ child = endContainer.getChild( endOffset );
+
+ // In this case, move the start information to that
+ // text node.
+ if ( child && child.type == CKEDITOR.NODE_TEXT && endOffset > 0 && child.getPrevious().type == CKEDITOR.NODE_TEXT ) {
+ endContainer = child;
+ endOffset = 0;
+ }
+
+ // Get the normalized offset.
+ if ( child && child.type == CKEDITOR.NODE_ELEMENT )
+ endOffset = child.getIndex( 1 );
+ }
+
+ // Normalize the end.
+ while ( endContainer.type == CKEDITOR.NODE_TEXT && ( previous = endContainer.getPrevious() ) && previous.type == CKEDITOR.NODE_TEXT ) {
+ endContainer = previous;
+ endOffset += previous.getLength();
+ }
+ }
+ }
+
+ return {
+ start: startContainer.getAddress( normalized ),
+ end: collapsed ? null : endContainer.getAddress( normalized ),
+ startOffset: startOffset,
+ endOffset: endOffset,
+ normalized: normalized,
+ collapsed: collapsed,
+ is2: true // It's a createBookmark2 bookmark.
+ };
+ },
+
+ /**
+ * Moves this range to the given bookmark. See {@link #createBookmark} and {@link #createBookmark2}.
+ *
+ * If serializable bookmark passed, then its `<span>` markers will be removed.
+ *
+ * @param {Object} bookmark
+ */
+ moveToBookmark: function( bookmark ) {
+ if ( bookmark.is2 ) // Created with createBookmark2().
+ {
+ // Get the start information.
+ var startContainer = this.document.getByAddress( bookmark.start, bookmark.normalized ),
+ startOffset = bookmark.startOffset;
+
+ // Get the end information.
+ var endContainer = bookmark.end && this.document.getByAddress( bookmark.end, bookmark.normalized ),
+ endOffset = bookmark.endOffset;
+
+ // Set the start boundary.
+ this.setStart( startContainer, startOffset );
+
+ // Set the end boundary. If not available, collapse it.
+ if ( endContainer )
+ this.setEnd( endContainer, endOffset );
+ else
+ this.collapse( true );
+ } else // Created with createBookmark().
+ {
+ var serializable = bookmark.serializable,
+ startNode = serializable ? this.document.getById( bookmark.startNode ) : bookmark.startNode,
+ endNode = serializable ? this.document.getById( bookmark.endNode ) : bookmark.endNode;
+
+ // Set the range start at the bookmark start node position.
+ this.setStartBefore( startNode );
+
+ // Remove it, because it may interfere in the setEndBefore call.
+ startNode.remove();
+
+ // Set the range end at the bookmark end node position, or simply
+ // collapse it if it is not available.
+ if ( endNode ) {
+ this.setEndBefore( endNode );
+ endNode.remove();
+ } else
+ this.collapse( true );
+ }
+ },
+
+ /**
+ * Returns two nodes which are on the boundaries of this range.
+ *
+ * @returns {Object}
+ * @returns {CKEDITOR.dom.node} return.startNode
+ * @returns {CKEDITOR.dom.node} return.endNode
+ * @todo precise desc/algorithm
+ */
+ getBoundaryNodes: function() {
+ var startNode = this.startContainer,
+ endNode = this.endContainer,
+ startOffset = this.startOffset,
+ endOffset = this.endOffset,
+ childCount;
+
+ if ( startNode.type == CKEDITOR.NODE_ELEMENT ) {
+ childCount = startNode.getChildCount();
+ if ( childCount > startOffset )
+ startNode = startNode.getChild( startOffset );
+ else if ( childCount < 1 )
+ startNode = startNode.getPreviousSourceNode();
+ else // startOffset > childCount but childCount is not 0
+ {
+ // Try to take the node just after the current position.
+ startNode = startNode.$;
+ while ( startNode.lastChild )
+ startNode = startNode.lastChild;
+ startNode = new CKEDITOR.dom.node( startNode );
+
+ // Normally we should take the next node in DFS order. But it
+ // is also possible that we've already reached the end of
+ // document.
+ startNode = startNode.getNextSourceNode() || startNode;
+ }
+ }
+ if ( endNode.type == CKEDITOR.NODE_ELEMENT ) {
+ childCount = endNode.getChildCount();
+ if ( childCount > endOffset )
+ endNode = endNode.getChild( endOffset ).getPreviousSourceNode( true );
+ else if ( childCount < 1 )
+ endNode = endNode.getPreviousSourceNode();
+ else // endOffset > childCount but childCount is not 0
+ {
+ // Try to take the node just before the current position.
+ endNode = endNode.$;
+ while ( endNode.lastChild )
+ endNode = endNode.lastChild;
+ endNode = new CKEDITOR.dom.node( endNode );
+ }
+ }
+
+ // Sometimes the endNode will come right before startNode for collapsed
+ // ranges. Fix it. (#3780)
+ if ( startNode.getPosition( endNode ) & CKEDITOR.POSITION_FOLLOWING )
+ startNode = endNode;
+
+ return { startNode: startNode, endNode: endNode };
+ },
+
+ /**
+ * Find the node which fully contains the range.
+ *
+ * @param {Boolean} [includeSelf=false]
+ * @param {Boolean} [ignoreTextNode=false] Whether ignore {@link CKEDITOR#NODE_TEXT} type.
+ * @returns {CKEDITOR.dom.element}
+ */
+ getCommonAncestor: function( includeSelf, ignoreTextNode ) {
+ var start = this.startContainer,
+ end = this.endContainer,
+ ancestor;
+
+ if ( start.equals( end ) ) {
+ if ( includeSelf && start.type == CKEDITOR.NODE_ELEMENT && this.startOffset == this.endOffset - 1 )
+ ancestor = start.getChild( this.startOffset );
+ else
+ ancestor = start;
+ } else
+ ancestor = start.getCommonAncestor( end );
+
+ return ignoreTextNode && !ancestor.is ? ancestor.getParent() : ancestor;
+ },
+
+ /**
+ * Transforms the {@link #startContainer} and {@link #endContainer} properties from text
+ * nodes to element nodes, whenever possible. This is actually possible
+ * if either of the boundary containers point to a text node, and its
+ * offset is set to zero, or after the last char in the node.
+ */
+ optimize: function() {
+ var container = this.startContainer;
+ var offset = this.startOffset;
+
+ if ( container.type != CKEDITOR.NODE_ELEMENT ) {
+ if ( !offset )
+ this.setStartBefore( container );
+ else if ( offset >= container.getLength() )
+ this.setStartAfter( container );
+ }
+
+ container = this.endContainer;
+ offset = this.endOffset;
+
+ if ( container.type != CKEDITOR.NODE_ELEMENT ) {
+ if ( !offset )
+ this.setEndBefore( container );
+ else if ( offset >= container.getLength() )
+ this.setEndAfter( container );
+ }
+ },
+
+ /**
+ * Move the range out of bookmark nodes if they'd been the container.
+ */
+ optimizeBookmark: function() {
+ var startNode = this.startContainer,
+ endNode = this.endContainer;
+
+ if ( startNode.is && startNode.is( 'span' ) && startNode.data( 'cke-bookmark' ) )
+ this.setStartAt( startNode, CKEDITOR.POSITION_BEFORE_START );
+ if ( endNode && endNode.is && endNode.is( 'span' ) && endNode.data( 'cke-bookmark' ) )
+ this.setEndAt( endNode, CKEDITOR.POSITION_AFTER_END );
+ },
+
+ /**
+ * @param {Boolean} [ignoreStart=false]
+ * @param {Boolean} [ignoreEnd=false]
+ * @todo precise desc/algorithm
+ */
+ trim: function( ignoreStart, ignoreEnd ) {
+ var startContainer = this.startContainer,
+ startOffset = this.startOffset,
+ collapsed = this.collapsed;
+ if ( ( !ignoreStart || collapsed ) && startContainer && startContainer.type == CKEDITOR.NODE_TEXT ) {
+ // If the offset is zero, we just insert the new node before
+ // the start.
+ if ( !startOffset ) {
+ startOffset = startContainer.getIndex();
+ startContainer = startContainer.getParent();
+ }
+ // If the offset is at the end, we'll insert it after the text
+ // node.
+ else if ( startOffset >= startContainer.getLength() ) {
+ startOffset = startContainer.getIndex() + 1;
+ startContainer = startContainer.getParent();
+ }
+ // In other case, we split the text node and insert the new
+ // node at the split point.
+ else {
+ var nextText = startContainer.split( startOffset );
+
+ startOffset = startContainer.getIndex() + 1;
+ startContainer = startContainer.getParent();
+
+ // Check all necessity of updating the end boundary.
+ if ( this.startContainer.equals( this.endContainer ) )
+ this.setEnd( nextText, this.endOffset - this.startOffset );
+ else if ( startContainer.equals( this.endContainer ) )
+ this.endOffset += 1;
+ }
+
+ this.setStart( startContainer, startOffset );
+
+ if ( collapsed ) {
+ this.collapse( true );
+ return;
+ }
+ }
+
+ var endContainer = this.endContainer;
+ var endOffset = this.endOffset;
+
+ if ( !( ignoreEnd || collapsed ) && endContainer && endContainer.type == CKEDITOR.NODE_TEXT ) {
+ // If the offset is zero, we just insert the new node before
+ // the start.
+ if ( !endOffset ) {
+ endOffset = endContainer.getIndex();
+ endContainer = endContainer.getParent();
+ }
+ // If the offset is at the end, we'll insert it after the text
+ // node.
+ else if ( endOffset >= endContainer.getLength() ) {
+ endOffset = endContainer.getIndex() + 1;
+ endContainer = endContainer.getParent();
+ }
+ // In other case, we split the text node and insert the new
+ // node at the split point.
+ else {
+ endContainer.split( endOffset );
+
+ endOffset = endContainer.getIndex() + 1;
+ endContainer = endContainer.getParent();
+ }
+
+ this.setEnd( endContainer, endOffset );
+ }
+ },
+
+ /**
+ * Expands the range so that partial units are completely contained.
+ *
+ * @param unit {Number} The unit type to expand with.
+ * @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
+ */
+ enlarge: function( unit, excludeBrs ) {
+ switch ( unit ) {
+ case CKEDITOR.ENLARGE_INLINE:
+ var enlargeInlineOnly = 1;
+ /*jsl:fallthru*/
+ case CKEDITOR.ENLARGE_ELEMENT:
+
+ if ( this.collapsed )
+ return;
+
+ // Get the common ancestor.
+ var commonAncestor = this.getCommonAncestor();
+
+ var boundary = this.root;
+
+ // For each boundary
+ // a. Depending on its position, find out the first node to be checked (a sibling) or, if not available, to be enlarge.
+ // b. Go ahead checking siblings and enlarging the boundary as much as possible until the common ancestor is not reached. After reaching the common ancestor, just save the enlargeable node to be used later.
+
+ var startTop, endTop;
+
+ var enlargeable, sibling, commonReached;
+
+ // Indicates that the node can be added only if whitespace
+ // is available before it.
+ var needsWhiteSpace = false;
+ var isWhiteSpace;
+ var siblingText;
+
+ // Process the start boundary.
+
+ var container = this.startContainer;
+ var offset = this.startOffset;
+
+ if ( container.type == CKEDITOR.NODE_TEXT ) {
+ if ( offset ) {
+ // Check if there is any non-space text before the
+ // offset. Otherwise, container is null.
+ container = !CKEDITOR.tools.trim( container.substring( 0, offset ) ).length && container;
+
+ // If we found only whitespace in the node, it
+ // means that we'll need more whitespace to be able
+ // to expand. For example, <i> can be expanded in
+ // "A <i> [B]</i>", but not in "A<i> [B]</i>".
+ needsWhiteSpace = !!container;
+ }
+
+ if ( container ) {
+ if ( !( sibling = container.getPrevious() ) )
+ enlargeable = container.getParent();
+ }
+ } else {
+ // If we have offset, get the node preceeding it as the
+ // first sibling to be checked.
+ if ( offset )
+ sibling = container.getChild( offset - 1 ) || container.getLast();
+
+ // If there is no sibling, mark the container to be
+ // enlarged.
+ if ( !sibling )
+ enlargeable = container;
+ }
+
+ while ( enlargeable || sibling ) {
+ if ( enlargeable && !sibling ) {
+ // If we reached the common ancestor, mark the flag
+ // for it.
+ if ( !commonReached && enlargeable.equals( commonAncestor ) )
+ commonReached = true;
+
+ if ( enlargeInlineOnly ? enlargeable.isBlockBoundary() : !boundary.contains( enlargeable ) )
+ break;
+
+ // If we don't need space or this element breaks
+ // the line, then enlarge it.
+ if ( !needsWhiteSpace || enlargeable.getComputedStyle( 'display' ) != 'inline' ) {
+ needsWhiteSpace = false;
+
+ // If the common ancestor has been reached,
+ // we'll not enlarge it immediately, but just
+ // mark it to be enlarged later if the end
+ // boundary also enlarges it.
+ if ( commonReached )
+ startTop = enlargeable;
+ else
+ this.setStartBefore( enlargeable );
+ }
+
+ sibling = enlargeable.getPrevious();
+ }
+
+ // Check all sibling nodes preceeding the enlargeable
+ // node. The node wil lbe enlarged only if none of them
+ // blocks it.
+ while ( sibling ) {
+ // This flag indicates that this node has
+ // whitespaces at the end.
+ isWhiteSpace = false;
+
+ if ( sibling.type == CKEDITOR.NODE_COMMENT ) {
+ sibling = sibling.getPrevious();
+ continue;
+ } else if ( sibling.type == CKEDITOR.NODE_TEXT ) {
+ siblingText = sibling.getText();
+
+ if ( /[^\s\ufeff]/.test( siblingText ) )
+ sibling = null;
+
+ isWhiteSpace = /[\s\ufeff]$/.test( siblingText );
+ } else {
+ // If this is a visible element.
+ // We need to check for the bookmark attribute because IE insists on
+ // rendering the display:none nodes we use for bookmarks. (#3363)
+ // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+ if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) ) {
+ // We'll accept it only if we need
+ // whitespace, and this is an inline
+ // element with whitespace only.
+ if ( needsWhiteSpace && CKEDITOR.dtd.$removeEmpty[ sibling.getName() ] ) {
+ // It must contains spaces and inline elements only.
+
+ siblingText = sibling.getText();
+
+ if ( ( /[^\s\ufeff]/ ).test( siblingText ) ) // Spaces + Zero Width No-Break Space (U+FEFF)
+ sibling = null;
+ else {
+ var allChildren = sibling.$.getElementsByTagName( '*' );
+ for ( var i = 0, child; child = allChildren[ i++ ]; ) {
+ if ( !CKEDITOR.dtd.$removeEmpty[ child.nodeName.toLowerCase() ] ) {
+ sibling = null;
+ break;
+ }
+ }
+ }
+
+ if ( sibling )
+ isWhiteSpace = !!siblingText.length;
+ } else
+ sibling = null;
+ }
+ }
+
+ // A node with whitespaces has been found.
+ if ( isWhiteSpace ) {
+ // Enlarge the last enlargeable node, if we
+ // were waiting for spaces.
+ if ( needsWhiteSpace ) {
+ if ( commonReached )
+ startTop = enlargeable;
+ else if ( enlargeable )
+ this.setStartBefore( enlargeable );
+ } else
+ needsWhiteSpace = true;
+ }
+
+ if ( sibling ) {
+ var next = sibling.getPrevious();
+
+ if ( !enlargeable && !next ) {
+ // Set the sibling as enlargeable, so it's
+ // parent will be get later outside this while.
+ enlargeable = sibling;
+ sibling = null;
+ break;
+ }
+
+ sibling = next;
+ } else {
+ // If sibling has been set to null, then we
+ // need to stop enlarging.
+ enlargeable = null;
+ }
+ }
+
+ if ( enlargeable )
+ enlargeable = enlargeable.getParent();
+ }
+
+ // Process the end boundary. This is basically the same
+ // code used for the start boundary, with small changes to
+ // make it work in the oposite side (to the right). This
+ // makes it difficult to reuse the code here. So, fixes to
+ // the above code are likely to be replicated here.
+
+ container = this.endContainer;
+ offset = this.endOffset;
+
+ // Reset the common variables.
+ enlargeable = sibling = null;
+ commonReached = needsWhiteSpace = false;
+
+ if ( container.type == CKEDITOR.NODE_TEXT ) {
+ // Check if there is any non-space text after the
+ // offset. Otherwise, container is null.
+ container = !CKEDITOR.tools.trim( container.substring( offset ) ).length && container;
+
+ // If we found only whitespace in the node, it
+ // means that we'll need more whitespace to be able
+ // to expand. For example, <i> can be expanded in
+ // "A <i> [B]</i>", but not in "A<i> [B]</i>".
+ needsWhiteSpace = !( container && container.getLength() );
+
+ if ( container ) {
+ if ( !( sibling = container.getNext() ) )
+ enlargeable = container.getParent();
+ }
+ } else {
+ // Get the node right after the boudary to be checked
+ // first.
+ sibling = container.getChild( offset );
+
+ if ( !sibling )
+ enlargeable = container;
+ }
+
+ while ( enlargeable || sibling ) {
+ if ( enlargeable && !sibling ) {
+ if ( !commonReached && enlargeable.equals( commonAncestor ) )
+ commonReached = true;
+
+ if ( enlargeInlineOnly ? enlargeable.isBlockBoundary() : !boundary.contains( enlargeable ) )
+ break;
+
+ if ( !needsWhiteSpace || enlargeable.getComputedStyle( 'display' ) != 'inline' ) {
+ needsWhiteSpace = false;
+
+ if ( commonReached )
+ endTop = enlargeable;
+ else if ( enlargeable )
+ this.setEndAfter( enlargeable );
+ }
+
+ sibling = enlargeable.getNext();
+ }
+
+ while ( sibling ) {
+ isWhiteSpace = false;
+
+ if ( sibling.type == CKEDITOR.NODE_TEXT ) {
+ siblingText = sibling.getText();
+
+ if ( /[^\s\ufeff]/.test( siblingText ) )
+ sibling = null;
+
+ isWhiteSpace = /^[\s\ufeff]/.test( siblingText );
+ } else if ( sibling.type == CKEDITOR.NODE_ELEMENT ) {
+ // If this is a visible element.
+ // We need to check for the bookmark attribute because IE insists on
+ // rendering the display:none nodes we use for bookmarks. (#3363)
+ // Line-breaks (br) are rendered with zero width, which we don't want to include. (#7041)
+ if ( ( sibling.$.offsetWidth > 0 || excludeBrs && sibling.is( 'br' ) ) && !sibling.data( 'cke-bookmark' ) ) {
+ // We'll accept it only if we need
+ // whitespace, and this is an inline
+ // element with whitespace only.
+ if ( needsWhiteSpace && CKEDITOR.dtd.$removeEmpty[ sibling.getName() ] ) {
+ // It must contains spaces and inline elements only.
+
+ siblingText = sibling.getText();
+
+ if ( ( /[^\s\ufeff]/ ).test( siblingText ) )
+ sibling = null;
+ else {
+ allChildren = sibling.$.getElementsByTagName( '*' );
+ for ( i = 0; child = allChildren[ i++ ]; ) {
+ if ( !CKEDITOR.dtd.$removeEmpty[ child.nodeName.toLowerCase() ] ) {
+ sibling = null;
+ break;
+ }
+ }
+ }
+
+ if ( sibling )
+ isWhiteSpace = !!siblingText.length;
+ } else
+ sibling = null;
+ }
+ } else
+ isWhiteSpace = 1;
+
+ if ( isWhiteSpace ) {
+ if ( needsWhiteSpace ) {
+ if ( commonReached )
+ endTop = enlargeable;
+ else
+ this.setEndAfter( enlargeable );
+ }
+ }
+
+ if ( sibling ) {
+ next = sibling.getNext();
+
+ if ( !enlargeable && !next ) {
+ enlargeable = sibling;
+ sibling = null;
+ break;
+ }
+
+ sibling = next;
+ } else {
+ // If sibling has been set to null, then we
+ // need to stop enlarging.
+ enlargeable = null;
+ }
+ }
+
+ if ( enlargeable )
+ enlargeable = enlargeable.getParent();
+ }
+
+ // If the common ancestor can be enlarged by both boundaries, then include it also.
+ if ( startTop && endTop ) {
+ commonAncestor = startTop.contains( endTop ) ? endTop : startTop;
+
+ this.setStartBefore( commonAncestor );
+ this.setEndAfter( commonAncestor );
+ }
+ break;
+
+ case CKEDITOR.ENLARGE_BLOCK_CONTENTS:
+ case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:
+
+ // Enlarging the start boundary.
+ var walkerRange = new CKEDITOR.dom.range( this.root );
+
+ boundary = this.root;
+
+ walkerRange.setStartAt( boundary, CKEDITOR.POSITION_AFTER_START );
+ walkerRange.setEnd( this.startContainer, this.startOffset );
+
+ var walker = new CKEDITOR.dom.walker( walkerRange ),
+ blockBoundary, // The node on which the enlarging should stop.
+ tailBr, // In case BR as block boundary.
+ notBlockBoundary = CKEDITOR.dom.walker.blockBoundary(
+ ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) ? { br:1 } : null ),
+ // Record the encountered 'blockBoundary' for later use.
+ boundaryGuard = function( node ) {
+ var retval = notBlockBoundary( node );
+ if ( !retval )
+ blockBoundary = node;
+ return retval;
+ },
+ // Record the encounted 'tailBr' for later use.
+ tailBrGuard = function( node ) {
+ var retval = boundaryGuard( node );
+ if ( !retval && node.is && node.is( 'br' ) )
+ tailBr = node;
+ return retval;
+ };
+
+ walker.guard = boundaryGuard;
+
+ enlargeable = walker.lastBackward();
+
+ // It's the body which stop the enlarging if no block boundary found.
+ blockBoundary = blockBoundary || boundary;
+
+ // Start the range either after the end of found block (<p>...</p>[text)
+ // or at the start of block (<p>[text...), by comparing the document position
+ // with 'enlargeable' node.
+ this.setStartAt( blockBoundary, !blockBoundary.is( 'br' ) && ( !enlargeable && this.checkStartOfBlock() || enlargeable && blockBoundary.contains( enlargeable ) ) ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_AFTER_END );
+
+ // Avoid enlarging the range further when end boundary spans right after the BR. (#7490)
+ if ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) {
+ var theRange = this.clone();
+ walker = new CKEDITOR.dom.walker( theRange );
+
+ var whitespaces = CKEDITOR.dom.walker.whitespaces(),
+ bookmark = CKEDITOR.dom.walker.bookmark();
+
+ walker.evaluator = function( node ) {
+ return !whitespaces( node ) && !bookmark( node );
+ };
+ var previous = walker.previous();
+ if ( previous && previous.type == CKEDITOR.NODE_ELEMENT && previous.is( 'br' ) )
+ return;
+ }
+
+
+ // Enlarging the end boundary.
+ walkerRange = this.clone();
+ walkerRange.collapse();
+ walkerRange.setEndAt( boundary, CKEDITOR.POSITION_BEFORE_END );
+ walker = new CKEDITOR.dom.walker( walkerRange );
+
+ // tailBrGuard only used for on range end.
+ walker.guard = ( unit == CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS ) ? tailBrGuard : boundaryGuard;
+ blockBoundary = null;
+ // End the range right before the block boundary node.
+
+ enlargeable = walker.lastForward();
+
+ // It's the body which stop the enlarging if no block boundary found.
+ blockBoundary = blockBoundary || boundary;
+
+ // Close the range either before the found block start (text]<p>...</p>) or at the block end (...text]</p>)
+ // by comparing the document position with 'enlargeable' node.
+ this.setEndAt( blockBoundary, ( !enlargeable && this.checkEndOfBlock() || enlargeable && blockBoundary.contains( enlargeable ) ) ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.POSITION_BEFORE_START );
+ // We must include the <br> at the end of range if there's
+ // one and we're expanding list item contents
+ if ( tailBr )
+ this.setEndAfter( tailBr );
+ }
+ },
+
+ /**
+ * Descrease the range to make sure that boundaries
+ * always anchor beside text nodes or innermost element.
+ *
+ * @param {Number} mode The shrinking mode ({@link CKEDITOR#SHRINK_ELEMENT} or {@link CKEDITOR#SHRINK_TEXT}).
+ *
+ * * {@link CKEDITOR#SHRINK_ELEMENT} - Shrink the range boundaries to the edge of the innermost element.
+ * * {@link CKEDITOR#SHRINK_TEXT} - Shrink the range boudaries to anchor by the side of enclosed text
+ * node, range remains if there's no text nodes on boundaries at all.
+ *
+ * @param {Boolean} selectContents Whether result range anchors at the inner OR outer boundary of the node.
+ */
+ shrink: function( mode, selectContents, shrinkOnBlockBoundary ) {
+ // Unable to shrink a collapsed range.
+ if ( !this.collapsed ) {
+ mode = mode || CKEDITOR.SHRINK_TEXT;
+
+ var walkerRange = this.clone();
+
+ var startContainer = this.startContainer,
+ endContainer = this.endContainer,
+ startOffset = this.startOffset,
+ endOffset = this.endOffset,
+ collapsed = this.collapsed;
+
+ // Whether the start/end boundary is moveable.
+ var moveStart = 1,
+ moveEnd = 1;
+
+ if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT ) {
+ if ( !startOffset )
+ walkerRange.setStartBefore( startContainer );
+ else if ( startOffset >= startContainer.getLength() )
+ walkerRange.setStartAfter( startContainer );
+ else {
+ // Enlarge the range properly to avoid walker making
+ // DOM changes caused by triming the text nodes later.
+ walkerRange.setStartBefore( startContainer );
+ moveStart = 0;
+ }
+ }
+
+ if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT ) {
+ if ( !endOffset )
+ walkerRange.setEndBefore( endContainer );
+ else if ( endOffset >= endContainer.getLength() )
+ walkerRange.setEndAfter( endContainer );
+ else {
+ walkerRange.setEndAfter( endContainer );
+ moveEnd = 0;
+ }
+ }
+
+ var walker = new CKEDITOR.dom.walker( walkerRange ),
+ isBookmark = CKEDITOR.dom.walker.bookmark();
+
+ walker.evaluator = function( node ) {
+ return node.type == ( mode == CKEDITOR.SHRINK_ELEMENT ? CKEDITOR.NODE_ELEMENT : CKEDITOR.NODE_TEXT );
+ };
+
+ var currentElement;
+ walker.guard = function( node, movingOut ) {
+ if ( isBookmark( node ) )
+ return true;
+
+ // Stop when we're shrink in element mode while encountering a text node.
+ if ( mode == CKEDITOR.SHRINK_ELEMENT && node.type == CKEDITOR.NODE_TEXT )
+ return false;
+
+ // Stop when we've already walked "through" an element.
+ if ( movingOut && node.equals( currentElement ) )
+ return false;
+
+ if ( shrinkOnBlockBoundary === false && node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary() )
+ return false;
+
+ if ( !movingOut && node.type == CKEDITOR.NODE_ELEMENT )
+ currentElement = node;
+
+ return true;
+ };
+
+ if ( moveStart ) {
+ var textStart = walker[ mode == CKEDITOR.SHRINK_ELEMENT ? 'lastForward' : 'next' ]();
+ textStart && this.setStartAt( textStart, selectContents ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_START );
+ }
+
+ if ( moveEnd ) {
+ walker.reset();
+ var textEnd = walker[ mode == CKEDITOR.SHRINK_ELEMENT ? 'lastBackward' : 'previous' ]();
+ textEnd && this.setEndAt( textEnd, selectContents ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.POSITION_AFTER_END );
+ }
+
+ return !!( moveStart || moveEnd );
+ }
+ },
+
+ /**
+ * Inserts a node at the start of the range. The range will be expanded
+ * the contain the node.
+ *
+ * @param {CKEDITOR.dom.node} node
+ */
+ insertNode: function( node ) {
+ this.optimizeBookmark();
+ this.trim( false, true );
+
+ var startContainer = this.startContainer;
+ var startOffset = this.startOffset;
+
+ var nextNode = startContainer.getChild( startOffset );
+
+ if ( nextNode )
+ node.insertBefore( nextNode );
+ else
+ startContainer.append( node );
+
+ // Check if we need to update the end boundary.
+ if ( node.getParent() && node.getParent().equals( this.endContainer ) )
+ this.endOffset++;
+
+ // Expand the range to embrace the new node.
+ this.setStartBefore( node );
+ },
+
+ /**
+ * @todo
+ */
+ moveToPosition: function( node, position ) {
+ this.setStartAt( node, position );
+ this.collapse( true );
+ },
+
+ /**
+ * @todo
+ */
+ moveToRange: function( range ) {
+ this.setStart( range.startContainer, range.startOffset );
+ this.setEnd( range.endContainer, range.endOffset );
+ },
+
+ /**
+ * Select nodes content. Range will start and end inside this node.
+ *
+ * @param {CKEDITOR.dom.node} node
+ */
+ selectNodeContents: function( node ) {
+ this.setStart( node, 0 );
+ this.setEnd( node, node.type == CKEDITOR.NODE_TEXT ? node.getLength() : node.getChildCount() );
+ },
+
+ /**
+ * Sets the start position of a range.
+ *
+ * @param {CKEDITOR.dom.node} startNode The node to start the range.
+ * @param {Number} startOffset An integer greater than or equal to zero
+ * representing the offset for the start of the range from the start
+ * of `startNode`.
+ */
+ setStart: function( startNode, startOffset ) {
+ // W3C requires a check for the new position. If it is after the end
+ // boundary, the range should be collapsed to the new start. It seams
+ // we will not need this check for our use of this class so we can
+ // ignore it for now.
+
+ // Fixing invalid range start inside dtd empty elements.
+ if ( startNode.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$empty[ startNode.getName() ] )
+ startOffset = startNode.getIndex(), startNode = startNode.getParent();
+
+ this.startContainer = startNode;
+ this.startOffset = startOffset;
+
+ if ( !this.endContainer ) {
+ this.endContainer = startNode;
+ this.endOffset = startOffset;
+ }
+
+ updateCollapsed( this );
+ },
+
+ /**
+ * Sets the end position of a Range.
+ *
+ * @param {CKEDITOR.dom.node} endNode The node to end the range.
+ * @param {Number} endOffset An integer greater than or equal to zero
+ * representing the offset for the end of the range from the start
+ * of `endNode`.
+ */
+ setEnd: function( endNode, endOffset ) {
+ // W3C requires a check for the new position. If it is before the start
+ // boundary, the range should be collapsed to the new end. It seams we
+ // will not need this check for our use of this class so we can ignore
+ // it for now.
+
+ // Fixing invalid range end inside dtd empty elements.
+ if ( endNode.type == CKEDITOR.NODE_ELEMENT && CKEDITOR.dtd.$empty[ endNode.getName() ] )
+ endOffset = endNode.getIndex() + 1, endNode = endNode.getParent();
+
+ this.endContainer = endNode;
+ this.endOffset = endOffset;
+
+ if ( !this.startContainer ) {
+ this.startContainer = endNode;
+ this.startOffset = endOffset;
+ }
+
+ updateCollapsed( this );
+ },
+
+ /**
+ * @todo
+ */
+ setStartAfter: function( node ) {
+ this.setStart( node.getParent(), node.getIndex() + 1 );
+ },
+
+ /**
+ * @todo
+ */
+ setStartBefore: function( node ) {
+ this.setStart( node.getParent(), node.getIndex() );
+ },
+
+ /**
+ * @todo
+ */
+ setEndAfter: function( node ) {
+ this.setEnd( node.getParent(), node.getIndex() + 1 );
+ },
+
+ /**
+ * @todo
+ */
+ setEndBefore: function( node ) {
+ this.setEnd( node.getParent(), node.getIndex() );
+ },
+
+ /**
+ * @todo
+ */
+ setStartAt: function( node, position ) {
+ switch ( position ) {
+ case CKEDITOR.POSITION_AFTER_START:
+ this.setStart( node, 0 );
+ break;
+
+ case CKEDITOR.POSITION_BEFORE_END:
+ if ( node.type == CKEDITOR.NODE_TEXT )
+ this.setStart( node, node.getLength() );
+ else
+ this.setStart( node, node.getChildCount() );
+ break;
+
+ case CKEDITOR.POSITION_BEFORE_START:
+ this.setStartBefore( node );
+ break;
+
+ case CKEDITOR.POSITION_AFTER_END:
+ this.setStartAfter( node );
+ }
+
+ updateCollapsed( this );
+ },
+
+ /**
+ * @todo
+ */
+ setEndAt: function( node, position ) {
+ switch ( position ) {
+ case CKEDITOR.POSITION_AFTER_START:
+ this.setEnd( node, 0 );
+ break;
+
+ case CKEDITOR.POSITION_BEFORE_END:
+ if ( node.type == CKEDITOR.NODE_TEXT )
+ this.setEnd( node, node.getLength() );
+ else
+ this.setEnd( node, node.getChildCount() );
+ break;
+
+ case CKEDITOR.POSITION_BEFORE_START:
+ this.setEndBefore( node );
+ break;
+
+ case CKEDITOR.POSITION_AFTER_END:
+ this.setEndAfter( node );
+ }
+
+ updateCollapsed( this );
+ },
+
+ /**
+ * @todo
+ */
+ fixBlock: function( isStart, blockTag ) {
+ var bookmark = this.createBookmark(),
+ fixedBlock = this.document.createElement( blockTag );
+
+ this.collapse( isStart );
+
+ this.enlarge( CKEDITOR.ENLARGE_BLOCK_CONTENTS );
+
+ this.extractContents().appendTo( fixedBlock );
+ fixedBlock.trim();
+
+ if ( !CKEDITOR.env.ie )
+ fixedBlock.appendBogus();
+
+ this.insertNode( fixedBlock );
+
+ this.moveToBookmark( bookmark );
+
+ return fixedBlock;
+ },
+
+ /**
+ * @todo
+ */
+ splitBlock: function( blockTag ) {
+ var startPath = new CKEDITOR.dom.elementPath( this.startContainer, this.root ),
+ endPath = new CKEDITOR.dom.elementPath( this.endContainer, this.root );
+
+ var startBlockLimit = startPath.blockLimit,
+ endBlockLimit = endPath.blockLimit;
+
+ var startBlock = startPath.block,
+ endBlock = endPath.block;
+
+ var elementPath = null;
+ // Do nothing if the boundaries are in different block limits.
+ if ( !startBlockLimit.equals( endBlockLimit ) )
+ return null;
+
+ // Get or fix current blocks.
+ if ( blockTag != 'br' ) {
+ if ( !startBlock ) {
+ startBlock = this.fixBlock( true, blockTag );
+ endBlock = new CKEDITOR.dom.elementPath( this.endContainer, this.root ).block;
+ }
+
+ if ( !endBlock )
+ endBlock = this.fixBlock( false, blockTag );
+ }
+
+ // Get the range position.
+ var isStartOfBlock = startBlock && this.checkStartOfBlock(),
+ isEndOfBlock = endBlock && this.checkEndOfBlock();
+
+ // Delete the current contents.
+ // TODO: Why is 2.x doing CheckIsEmpty()?
+ this.deleteContents();
+
+ if ( startBlock && startBlock.equals( endBlock ) ) {
+ if ( isEndOfBlock ) {
+ elementPath = new CKEDITOR.dom.elementPath( this.startContainer, this.root );
+ this.moveToPosition( endBlock, CKEDITOR.POSITION_AFTER_END );
+ endBlock = null;
+ } else if ( isStartOfBlock ) {
+ elementPath = new CKEDITOR.dom.elementPath( this.startContainer, this.root );
+ this.moveToPosition( startBlock, CKEDITOR.POSITION_BEFORE_START );
+ startBlock = null;
+ } else {
+ endBlock = this.splitElement( startBlock );
+
+ // In Gecko, the last child node must be a bogus <br>.
+ // Note: bogus <br> added under <ul> or <ol> would cause
+ // lists to be incorrectly rendered.
+ if ( !CKEDITOR.env.ie && !startBlock.is( 'ul', 'ol' ) )
+ startBlock.appendBogus();
+ }
+ }
+
+ return {
+ previousBlock: startBlock,
+ nextBlock: endBlock,
+ wasStartOfBlock: isStartOfBlock,
+ wasEndOfBlock: isEndOfBlock,
+ elementPath: elementPath
+ };
+ },
+
+ /**
+ * Branch the specified element from the collapsed range position and
+ * place the caret between the two result branches.
+ *
+ * **Note:** The range must be collapsed and been enclosed by this element.
+ *
+ * @param {CKEDITOR.dom.element} element
+ * @returns {CKEDITOR.dom.element} Root element of the new branch after the split.
+ */
+ splitElement: function( toSplit ) {
+ if ( !this.collapsed )
+ return null;
+
+ // Extract the contents of the block from the selection point to the end
+ // of its contents.
+ this.setEndAt( toSplit, CKEDITOR.POSITION_BEFORE_END );
+ var documentFragment = this.extractContents();
+
+ // Duplicate the element after it.
+ var clone = toSplit.clone( false );
+
+ // Place the extracted contents into the duplicated element.
+ documentFragment.appendTo( clone );
+ clone.insertAfter( toSplit );
+ this.moveToPosition( toSplit, CKEDITOR.POSITION_AFTER_END );
+ return clone;
+ },
+
+ /**
+ * Recursively remove any empty path blocks at the range boundary.
+ *
+ * @method
+ * @param {Boolean} atEnd Removal to perform at the end boundary,
+ * otherwise to perform at the start.
+ */
+ removeEmptyBlocksAtEnd: (function() {
+
+ var whitespace = CKEDITOR.dom.walker.whitespaces(),
+ bookmark = CKEDITOR.dom.walker.bookmark( false );
+
+ function childEval( parent ) {
+ return function( node ) {
+
+ // whitespace, bookmarks, empty inlines.
+ if ( whitespace( node ) || bookmark( node ) ||
+ node.type == CKEDITOR.NODE_ELEMENT &&
+ node.isEmptyInlineRemoveable() )
+ return false;
+ else if ( parent.is( 'table' ) && node.is( 'caption' ) )
+ return false;
+
+ return true;
+ };
+ }
+
+ return function( atEnd ) {
+
+ var bm = this.createBookmark();
+ var path = this[ atEnd ? 'endPath' : 'startPath' ]();
+ var block = path.block || path.blockLimit, parent;
+
+ // Remove any childless block, including list and table.
+ while ( block && !block.equals( path.root ) &&
+ !block.getFirst( childEval( block ) ) )
+ {
+ parent = block.getParent();
+ this[ atEnd ? 'setEndAt' : 'setStartAt' ]( block, CKEDITOR.POSITION_AFTER_END );
+ block.remove( 1 );
+ block = parent;
+ }
+
+ this.moveToBookmark( bm );
+ };
+
+ })(),
+
+ /**
+ * Gets {@link CKEDITOR.dom.elementPath} for the {@link #startContainer}.
+ *
+ * @returns {CKEDITOR.dom.elementPath}
+ */
+ startPath: function() {
+ return new CKEDITOR.dom.elementPath( this.startContainer, this.root );
+ },
+
+ /**
+ * Gets {@link CKEDITOR.dom.elementPath} for the {@link #endContainer}.
+ *
+ * @returns {CKEDITOR.dom.elementPath}
+ */
+ endPath: function() {
+ return new CKEDITOR.dom.elementPath( this.endContainer, this.root );
+ },
+
+ /**
+ * Check whether a range boundary is at the inner boundary of a given
+ * element.
+ *
+ * @param {CKEDITOR.dom.element} element The target element to check.
+ * @param {Number} checkType The boundary to check for both the range
+ * and the element. It can be {@link CKEDITOR#START} or {@link CKEDITOR#END}.
+ * @returns {Boolean} `true` if the range boundary is at the inner
+ * boundary of the element.
+ */
+ checkBoundaryOfElement: function( element, checkType ) {
+ var checkStart = ( checkType == CKEDITOR.START );
+
+ // Create a copy of this range, so we can manipulate it for our checks.
+ var walkerRange = this.clone();
+
+ // Collapse the range at the proper size.
+ walkerRange.collapse( checkStart );
+
+ // Expand the range to element boundary.
+ walkerRange[ checkStart ? 'setStartAt' : 'setEndAt' ]
+ ( element, checkStart ? CKEDITOR.POSITION_AFTER_START : CKEDITOR.POSITION_BEFORE_END );
+
+ // Create the walker, which will check if we have anything useful
+ // in the range.
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = elementBoundaryEval( checkStart );
+
+ return walker[ checkStart ? 'checkBackward' : 'checkForward' ]();
+ },
+
+ /**
+ * **Note:** Calls to this function may produce changes to the DOM. The range may
+ * be updated to reflect such changes.
+ *
+ * @returns {Boolean}
+ * @todo
+ */
+ checkStartOfBlock: function() {
+ var startContainer = this.startContainer,
+ startOffset = this.startOffset;
+
+ // [IE] Special handling for range start in text with a leading NBSP,
+ // we it to be isolated, for bogus check.
+ if ( CKEDITOR.env.ie && startOffset && startContainer.type == CKEDITOR.NODE_TEXT )
+ {
+ var textBefore = CKEDITOR.tools.ltrim( startContainer.substring( 0, startOffset ) );
+ if ( nbspRegExp.test( textBefore ) )
+ this.trim( 0, 1 );
+ }
+
+ // Antecipate the trim() call here, so the walker will not make
+ // changes to the DOM, which would not get reflected into this
+ // range otherwise.
+ this.trim();
+
+ // We need to grab the block element holding the start boundary, so
+ // let's use an element path for it.
+ var path = new CKEDITOR.dom.elementPath( this.startContainer, this.root );
+
+ // Creates a range starting at the block start until the range start.
+ var walkerRange = this.clone();
+ walkerRange.collapse( true );
+ walkerRange.setStartAt( path.block || path.blockLimit, CKEDITOR.POSITION_AFTER_START );
+
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = getCheckStartEndBlockEvalFunction();
+
+ return walker.checkBackward();
+ },
+
+ /**
+ * **Note:** Calls to this function may produce changes to the DOM. The range may
+ * be updated to reflect such changes.
+ *
+ * @returns {Boolean}
+ * @todo
+ */
+ checkEndOfBlock: function() {
+ var endContainer = this.endContainer,
+ endOffset = this.endOffset;
+
+ // [IE] Special handling for range end in text with a following NBSP,
+ // we it to be isolated, for bogus check.
+ if ( CKEDITOR.env.ie && endContainer.type == CKEDITOR.NODE_TEXT )
+ {
+ var textAfter = CKEDITOR.tools.rtrim( endContainer.substring( endOffset ) );
+ if ( nbspRegExp.test( textAfter ) )
+ this.trim( 1, 0 );
+ }
+
+ // Antecipate the trim() call here, so the walker will not make
+ // changes to the DOM, which would not get reflected into this
+ // range otherwise.
+ this.trim();
+
+ // We need to grab the block element holding the start boundary, so
+ // let's use an element path for it.
+ var path = new CKEDITOR.dom.elementPath( this.endContainer, this.root );
+
+ // Creates a range starting at the block start until the range start.
+ var walkerRange = this.clone();
+ walkerRange.collapse( false );
+ walkerRange.setEndAt( path.block || path.blockLimit, CKEDITOR.POSITION_BEFORE_END );
+
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = getCheckStartEndBlockEvalFunction();
+
+ return walker.checkForward();
+ },
+
+ /**
+ * Traverse with {@link CKEDITOR.dom.walker} to retrieve the previous element before the range start.
+ * @param {Function} evaluator Function used as the walker's evaluator.
+ * @param {Function} [guard] Function used as the walker's guard.
+ * @param {CKEDITOR.dom.element} [boundary] A range ancestor element in which the traversal is limited,
+ * default to the root editable if not defined.
+ *
+ * @return {CKEDITOR.dom.element|null} The returned node from the traversal.
+ */
+ getPreviousNode : function( evaluator, guard, boundary ) {
+ var walkerRange = this.clone();
+ walkerRange.collapse( 1 );
+ walkerRange.setStartAt( boundary || this.root, CKEDITOR.POSITION_AFTER_START );
+
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = evaluator;
+ walker.guard = guard;
+ return walker.previous();
+ },
+
+ /**
+ * Traverse with {@link CKEDITOR.dom.walker} to retrieve the next element before the range start.
+ * @param {Function} evaluator Function used as the walker's evaluator.
+ * @param {Function} [guard] Function used as the walker's guard.
+ * @param {CKEDITOR.dom.element} [boundary] A range ancestor element in which the traversal is limited,
+ * default to the root editable if not defined.
+ *
+ * @return {CKEDITOR.dom.element|null} The returned node from the traversal.
+ */
+ getNextNode: function( evaluator, guard, boundary ) {
+ var walkerRange = this.clone();
+ walkerRange.collapse();
+ walkerRange.setEndAt( boundary || this.root, CKEDITOR.POSITION_BEFORE_END );
+
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = evaluator;
+ walker.guard = guard;
+ return walker.next();
+ },
+
+ /**
+ * Check if elements at which the range boundaries anchor are read-only,
+ * with respect to `contenteditable` attribute.
+ *
+ * @returns {Boolean}
+ */
+ checkReadOnly: (function() {
+ function checkNodesEditable( node, anotherEnd ) {
+ while ( node ) {
+ if ( node.type == CKEDITOR.NODE_ELEMENT ) {
+ if ( node.getAttribute( 'contentEditable' ) == 'false' && !node.data( 'cke-editable' ) ) {
+ return 0;
+ }
+ // Range enclosed entirely in an editable element.
+ else if ( node.is( 'html' ) || node.getAttribute( 'contentEditable' ) == 'true' && ( node.contains( anotherEnd ) || node.equals( anotherEnd ) ) ) {
+ break;
+ }
+ }
+ node = node.getParent();
+ }
+
+ return 1;
+ }
+
+ return function() {
+ var startNode = this.startContainer,
+ endNode = this.endContainer;
+
+ // Check if elements path at both boundaries are editable.
+ return !( checkNodesEditable( startNode, endNode ) && checkNodesEditable( endNode, startNode ) );
+ };
+ })(),
+
+ /**
+ * Moves the range boundaries to the first/end editing point inside an
+ * element.
+ *
+ * For example, in an element tree like
+ * `<p><b><i></i></b> Text</p>`, the start editing point is
+ * `<p><b><i>^</i></b> Text</p>` (inside `<i>`).
+ *
+ * @param {CKEDITOR.dom.element} el The element into which look for the
+ * editing spot.
+ * @param {Boolean} isMoveToEnd Whether move to the end editable position.
+ * @returns {Boolean} Whether range was moved.
+ */
+ moveToElementEditablePosition: function( el, isMoveToEnd ) {
+
+ function nextDFS( node, childOnly ) {
+ var next;
+
+ if ( node.type == CKEDITOR.NODE_ELEMENT && node.isEditable( false ) )
+ next = node[ isMoveToEnd ? 'getLast' : 'getFirst' ]( nonWhitespaceOrBookmarkEval );
+
+ if ( !childOnly && !next )
+ next = node[ isMoveToEnd ? 'getPrevious' : 'getNext' ]( nonWhitespaceOrBookmarkEval );
+
+ return next;
+ }
+
+ // Handle non-editable element e.g. HR.
+ if ( el.type == CKEDITOR.NODE_ELEMENT && !el.isEditable( false ) ) {
+ this.moveToPosition( el, isMoveToEnd ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START );
+ return true;
+ }
+
+ var found = 0;
+
+ while ( el ) {
+ // Stop immediately if we've found a text node.
+ if ( el.type == CKEDITOR.NODE_TEXT ) {
+ // Put cursor before block filler.
+ if ( isMoveToEnd && this.checkEndOfBlock() && nbspRegExp.test( el.getText() ) )
+ this.moveToPosition( el, CKEDITOR.POSITION_BEFORE_START );
+ else
+ this.moveToPosition( el, isMoveToEnd ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START );
+ found = 1;
+ break;
+ }
+
+ // If an editable element is found, move inside it, but not stop the searching.
+ if ( el.type == CKEDITOR.NODE_ELEMENT ) {
+ if ( el.isEditable() ) {
+ this.moveToPosition( el, isMoveToEnd ? CKEDITOR.POSITION_BEFORE_END : CKEDITOR.POSITION_AFTER_START );
+ found = 1;
+ }
+ // Put cursor before padding block br.
+ else if ( isMoveToEnd && el.is( 'br' ) && this.checkEndOfBlock() )
+ this.moveToPosition( el, CKEDITOR.POSITION_BEFORE_START );
+ }
+
+ el = nextDFS( el, found );
+ }
+
+ return !!found;
+ },
+
+ /**
+ * See {@link #moveToElementEditablePosition}.
+ *
+ * @returns {Boolean} Whether range was moved.
+ */
+ moveToElementEditStart: function( target ) {
+ return this.moveToElementEditablePosition( target );
+ },
+
+ /**
+ * See {@link #moveToElementEditablePosition}.
+ *
+ * @returns {Boolean} Whether range was moved.
+ */
+ moveToElementEditEnd: function( target ) {
+ return this.moveToElementEditablePosition( target, true );
+ },
+
+ /**
+ * Get the single node enclosed within the range if there's one.
+ *
+ * @returns {CKEDITOR.dom.node}
+ */
+ getEnclosedNode: function() {
+ var walkerRange = this.clone();
+
+ // Optimize and analyze the range to avoid DOM destructive nature of walker. (#5780)
+ walkerRange.optimize();
+ if ( walkerRange.startContainer.type != CKEDITOR.NODE_ELEMENT || walkerRange.endContainer.type != CKEDITOR.NODE_ELEMENT )
+ return null;
+
+ var walker = new CKEDITOR.dom.walker( walkerRange ),
+ isNotBookmarks = CKEDITOR.dom.walker.bookmark( false, true ),
+ isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true );
+
+ walker.evaluator = function( node ) {
+ return isNotWhitespaces( node ) && isNotBookmarks( node );
+ };
+ var node = walker.next();
+ walker.reset();
+ return node && node.equals( walker.previous() ) ? node : null;
+ },
+
+ /**
+ * Get the node adjacent to the range start or {@link #startContainer}.
+ *
+ * @returns {CKEDITOR.dom.node}
+ */
+ getTouchedStartNode: function() {
+ var container = this.startContainer;
+
+ if ( this.collapsed || container.type != CKEDITOR.NODE_ELEMENT )
+ return container;
+
+ return container.getChild( this.startOffset ) || container;
+ },
+
+ /**
+ * Get the node adjacent to the range end or {@link #endContainer}.
+ *
+ * @returns {CKEDITOR.dom.node}
+ */
+ getTouchedEndNode: function() {
+ var container = this.endContainer;
+
+ if ( this.collapsed || container.type != CKEDITOR.NODE_ELEMENT )
+ return container;
+
+ return container.getChild( this.endOffset - 1 ) || container;
+ },
+
+ /**
+ * Scrolls the start of current range into view.
+ */
+ scrollIntoView: function() {
+
+ // The reference element contains a zero-width space to avoid
+ // a premature removal. The view is to be scrolled with respect
+ // to this element.
+ var reference = new CKEDITOR.dom.element.createFromHtml( '<span> </span>', this.document ),
+ afterCaretNode, startContainerText, isStartText;
+
+ var range = this.clone();
+
+ // Work with the range to obtain a proper caret position.
+ range.optimize();
+
+ // Currently in a text node, so we need to split it into two
+ // halves and put the reference between.
+ if ( isStartText = range.startContainer.type == CKEDITOR.NODE_TEXT ) {
+ // Keep the original content. It will be restored.
+ startContainerText = range.startContainer.getText();
+
+ // Split the startContainer at the this position.
+ afterCaretNode = range.startContainer.split( range.startOffset );
+
+ // Insert the reference between two text nodes.
+ reference.insertAfter( range.startContainer );
+ }
+
+ // If not in a text node, simply insert the reference into the range.
+ else
+ range.insertNode( reference );
+
+ // Scroll with respect to the reference element.
+ reference.scrollIntoView();
+
+ // Get rid of split parts if "in a text node" case.
+ // Revert the original text of the startContainer.
+ if ( isStartText ) {
+ range.startContainer.setText( startContainerText );
+ afterCaretNode.remove();
+ }
+
+ // Get rid of the reference node. It is no longer necessary.
+ reference.remove();
+ }
+ };
+})();
+
+CKEDITOR.POSITION_AFTER_START = 1; // <element>^contents</element> "^text"
+CKEDITOR.POSITION_BEFORE_END = 2; // <element>contents^</element> "text^"
+CKEDITOR.POSITION_BEFORE_START = 3; // ^<element>contents</element> ^"text"
+CKEDITOR.POSITION_AFTER_END = 4; // <element>contents</element>^ "text"
+
+CKEDITOR.ENLARGE_ELEMENT = 1;
+CKEDITOR.ENLARGE_BLOCK_CONTENTS = 2;
+CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS = 3;
+CKEDITOR.ENLARGE_INLINE = 4;
+
+// Check boundary types.
+
+/**
+ * See {@link CKEDITOR.dom.range#checkBoundaryOfElement}.
+ *
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=1]
+ */
+CKEDITOR.START = 1;
+
+/**
+ * See {@link CKEDITOR.dom.range#checkBoundaryOfElement}.
+ *
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=2]
+ */
+CKEDITOR.END = 2;
+
+// Shrink range types.
+
+/**
+ * See {@link CKEDITOR.dom.range#shrink}.
+ *
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=1]
+ */
+CKEDITOR.SHRINK_ELEMENT = 1;
+
+/**
+ * See {@link CKEDITOR.dom.range#shrink}.
+ *
+ * @readonly
+ * @member CKEDITOR
+ * @property {Number} [=2]
+ */
+CKEDITOR.SHRINK_TEXT = 2;
diff --git a/devel/third-party/ckeditor/core/dom/rangelist.js b/devel/third-party/ckeditor/core/dom/rangelist.js
index 9c12e48..0955b73 100644
--- a/devel/third-party/ckeditor/core/dom/rangelist.js
+++ b/devel/third-party/ckeditor/core/dom/rangelist.js
@@ -1,163 +1,201 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- /**
- * Represents a list os CKEDITOR.dom.range objects, which can be easily
- * iterated sequentially.
- * @constructor
- * @param {CKEDITOR.dom.range|Array} [ranges] The ranges contained on this list.
- * Note that, if an array of ranges is specified, the range sequence
- * should match its DOM order. This class will not help to sort them.
- */
- CKEDITOR.dom.rangeList = function( ranges )
- {
- if ( ranges instanceof CKEDITOR.dom.rangeList )
- return ranges;
-
- if ( !ranges )
- ranges = [];
- else if ( ranges instanceof CKEDITOR.dom.range )
- ranges = [ ranges ];
-
- return CKEDITOR.tools.extend( ranges, mixins );
- };
-
- var mixins =
- /** @lends CKEDITOR.dom.rangeList.prototype */
- {
- /**
- * Creates an instance of the rangeList iterator, it should be used
- * only when the ranges processing could be DOM intrusive, which
- * means it may pollute and break other ranges in this list.
- * Otherwise, it's enough to just iterate over this array in a for loop.
- * @returns {CKEDITOR.dom.rangeListIterator}
- */
- createIterator : function()
- {
- var rangeList = this,
- bookmarks = [],
- current;
-
- /**
- * @lends CKEDITOR.dom.rangeListIterator.prototype
- */
- return {
-
- /**
- * Retrieves the next range in the list.
- */
- getNextRange : function()
- {
- current = current == undefined ? 0 : current + 1;
-
- var range = rangeList[ current ];
-
- // Multiple ranges might be mangled by each other.
- if ( range && rangeList.length > 1 )
- {
- // Bookmarking all other ranges on the first iteration,
- // the range correctness after it doesn't matter since we'll
- // restore them before the next iteration.
- if ( !current )
- {
- // Make sure bookmark correctness by reverse processing.
- for ( var i = rangeList.length - 1; i > 0; i-- )
- bookmarks.unshift( rangeList[ i ].createBookmark( true ) );
- }
- else
- range.moveToBookmark( bookmarks.shift() );
- }
-
- return range;
- }
- };
- },
-
- createBookmarks : function( serializable )
- {
- var retval = [], bookmark;
- for ( var i = 0; i < this.length ; i++ )
- {
- retval.push( bookmark = this[ i ].createBookmark( serializable, true) );
-
- // Updating the container & offset values for ranges
- // that have been touched.
- for ( var j = i + 1; j < this.length; j++ )
- {
- this[ j ] = updateDirtyRange( bookmark, this[ j ] );
- this[ j ] = updateDirtyRange( bookmark, this[ j ], true );
- }
- }
- return retval;
- },
-
- createBookmarks2 : function( normalized )
- {
- var bookmarks = [];
-
- for ( var i = 0 ; i < this.length ; i++ )
- bookmarks.push( this[ i ].createBookmark2( normalized ) );
-
- return bookmarks;
- },
-
- /**
- * Move each range in the list to the position specified by a list of bookmarks.
- * @param {Array} bookmarks The list of bookmarks, each one matching a range in the list.
- */
- moveToBookmarks : function( bookmarks )
- {
- for ( var i = 0 ; i < this.length ; i++ )
- this[ i ].moveToBookmark( bookmarks[ i ] );
- }
- };
-
- // Update the specified range which has been mangled by previous insertion of
- // range bookmark nodes.(#3256)
- function updateDirtyRange( bookmark, dirtyRange, checkEnd )
- {
- var serializable = bookmark.serializable,
- container = dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ],
- offset = checkEnd ? 'endOffset' : 'startOffset';
-
- var bookmarkStart = serializable ?
- dirtyRange.document.getById( bookmark.startNode )
- : bookmark.startNode;
-
- var bookmarkEnd = serializable ?
- dirtyRange.document.getById( bookmark.endNode )
- : bookmark.endNode;
-
- if ( container.equals( bookmarkStart.getPrevious() ) )
- {
- dirtyRange.startOffset = dirtyRange.startOffset
- - container.getLength()
- - bookmarkEnd.getPrevious().getLength();
- container = bookmarkEnd.getNext();
- }
- else if ( container.equals( bookmarkEnd.getPrevious() ) )
- {
- dirtyRange.startOffset = dirtyRange.startOffset - container.getLength();
- container = bookmarkEnd.getNext();
- }
-
- container.equals( bookmarkStart.getParent() ) && dirtyRange[ offset ]++;
- container.equals( bookmarkEnd.getParent() ) && dirtyRange[ offset ]++;
-
- // Update and return this range.
- dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ] = container;
- return dirtyRange;
- }
-})();
-
-/**
- * (Virtual Class) Do not call this constructor. This class is not really part
- * of the API. It just describes the return type of {@link CKEDITOR.dom.rangeList#createIterator}.
- * @name CKEDITOR.dom.rangeListIterator
- * @constructor
- * @example
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ /**
+ * Represents a list os CKEDITOR.dom.range objects, which can be easily
+ * iterated sequentially.
+ *
+ * @class
+ * @extends Array
+ * @constructor Creates a rangeList class instance.
+ * @param {CKEDITOR.dom.range/CKEDITOR.dom.range[]} [ranges] The ranges contained on this list.
+ * Note that, if an array of ranges is specified, the range sequence
+ * should match its DOM order. This class will not help to sort them.
+ */
+ CKEDITOR.dom.rangeList = function( ranges ) {
+ if ( ranges instanceof CKEDITOR.dom.rangeList )
+ return ranges;
+
+ if ( !ranges )
+ ranges = [];
+ else if ( ranges instanceof CKEDITOR.dom.range )
+ ranges = [ ranges ];
+
+ return CKEDITOR.tools.extend( ranges, mixins );
+ };
+
+ var mixins = {
+ /**
+ * Creates an instance of the rangeList iterator, it should be used
+ * only when the ranges processing could be DOM intrusive, which
+ * means it may pollute and break other ranges in this list.
+ * Otherwise, it's enough to just iterate over this array in a for loop.
+ *
+ * @returns {CKEDITOR.dom.rangeListIterator}
+ */
+ createIterator: function() {
+ var rangeList = this,
+ bookmark = CKEDITOR.dom.walker.bookmark(),
+ guard = function( node ) {
+ return !( node.is && node.is( 'tr' ) );
+ },
+ bookmarks = [],
+ current;
+
+ return {
+ /**
+ * Retrieves the next range in the list.
+ *
+ * @member CKEDITOR.dom.rangeListIterator
+ * @param {Boolean} [mergeConsequent=false] Whether join two adjacent
+ * ranges into single, e.g. consequent table cells.
+ */
+ getNextRange: function( mergeConsequent ) {
+ current = current == undefined ? 0 : current + 1;
+
+ var range = rangeList[ current ];
+
+ // Multiple ranges might be mangled by each other.
+ if ( range && rangeList.length > 1 ) {
+ // Bookmarking all other ranges on the first iteration,
+ // the range correctness after it doesn't matter since we'll
+ // restore them before the next iteration.
+ if ( !current ) {
+ // Make sure bookmark correctness by reverse processing.
+ for ( var i = rangeList.length - 1; i >= 0; i-- )
+ bookmarks.unshift( rangeList[ i ].createBookmark( true ) );
+ }
+
+ if ( mergeConsequent ) {
+ // Figure out how many ranges should be merged.
+ var mergeCount = 0;
+ while ( rangeList[ current + mergeCount + 1 ] ) {
+ var doc = range.document,
+ found = 0,
+ left = doc.getById( bookmarks[ mergeCount ].endNode ),
+ right = doc.getById( bookmarks[ mergeCount + 1 ].startNode ),
+ next;
+
+ // Check subsequent range.
+ while ( 1 ) {
+ next = left.getNextSourceNode( false );
+ if ( !right.equals( next ) ) {
+ // This could be yet another bookmark or
+ // walking across block boundaries.
+ if ( bookmark( next ) || ( next.type == CKEDITOR.NODE_ELEMENT && next.isBlockBoundary() ) ) {
+ left = next;
+ continue;
+ }
+ } else
+ found = 1;
+
+ break;
+ }
+
+ if ( !found )
+ break;
+
+ mergeCount++;
+ }
+ }
+
+ range.moveToBookmark( bookmarks.shift() );
+
+ // Merge ranges finally after moving to bookmarks.
+ while ( mergeCount-- ) {
+ next = rangeList[ ++current ];
+ next.moveToBookmark( bookmarks.shift() );
+ range.setEnd( next.endContainer, next.endOffset );
+ }
+ }
+
+ return range;
+ }
+ };
+ },
+
+ /**
+ * Create bookmarks for all ranges. See {@link CKEDITOR.dom.range#createBookmark}.
+ *
+ * @param {Boolean} [serializable=false] See {@link CKEDITOR.dom.range#createBookmark}.
+ * @returns {Array} Array of bookmarks.
+ */
+ createBookmarks: function( serializable ) {
+ var retval = [],
+ bookmark;
+ for ( var i = 0; i < this.length; i++ ) {
+ retval.push( bookmark = this[ i ].createBookmark( serializable, true ) );
+
+ // Updating the container & offset values for ranges
+ // that have been touched.
+ for ( var j = i + 1; j < this.length; j++ ) {
+ this[ j ] = updateDirtyRange( bookmark, this[ j ] );
+ this[ j ] = updateDirtyRange( bookmark, this[ j ], true );
+ }
+ }
+ return retval;
+ },
+
+ /**
+ * Create "unobtrusive" bookmarks for all ranges. See {@link CKEDITOR.dom.range#createBookmark2}.
+ *
+ * @param {Boolean} [normalized=false] See {@link CKEDITOR.dom.range#createBookmark2}.
+ * @returns {Array} Array of bookmarks.
+ */
+ createBookmarks2: function( normalized ) {
+ var bookmarks = [];
+
+ for ( var i = 0; i < this.length; i++ )
+ bookmarks.push( this[ i ].createBookmark2( normalized ) );
+
+ return bookmarks;
+ },
+
+ /**
+ * Move each range in the list to the position specified by a list of bookmarks.
+ *
+ * @param {Array} bookmarks The list of bookmarks, each one matching a range in the list.
+ */
+ moveToBookmarks: function( bookmarks ) {
+ for ( var i = 0; i < this.length; i++ )
+ this[ i ].moveToBookmark( bookmarks[ i ] );
+ }
+ };
+
+ // Update the specified range which has been mangled by previous insertion of
+ // range bookmark nodes.(#3256)
+ function updateDirtyRange( bookmark, dirtyRange, checkEnd ) {
+ var serializable = bookmark.serializable,
+ container = dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ],
+ offset = checkEnd ? 'endOffset' : 'startOffset';
+
+ var bookmarkStart = serializable ? dirtyRange.document.getById( bookmark.startNode ) : bookmark.startNode;
+
+ var bookmarkEnd = serializable ? dirtyRange.document.getById( bookmark.endNode ) : bookmark.endNode;
+
+ if ( container.equals( bookmarkStart.getPrevious() ) ) {
+ dirtyRange.startOffset = dirtyRange.startOffset - container.getLength() - bookmarkEnd.getPrevious().getLength();
+ container = bookmarkEnd.getNext();
+ } else if ( container.equals( bookmarkEnd.getPrevious() ) ) {
+ dirtyRange.startOffset = dirtyRange.startOffset - container.getLength();
+ container = bookmarkEnd.getNext();
+ }
+
+ container.equals( bookmarkStart.getParent() ) && dirtyRange[ offset ]++;
+ container.equals( bookmarkEnd.getParent() ) && dirtyRange[ offset ]++;
+
+ // Update and return this range.
+ dirtyRange[ checkEnd ? 'endContainer' : 'startContainer' ] = container;
+ return dirtyRange;
+ }
+})();
+
+/**
+ * (Virtual Class) Do not call this constructor. This class is not really part
+ * of the API. It just describes the return type of {@link CKEDITOR.dom.rangeList#createIterator}.
+ *
+ * @class CKEDITOR.dom.rangeListIterator
+ */
diff --git a/devel/third-party/ckeditor/core/dom/text.js b/devel/third-party/ckeditor/core/dom/text.js
index a1eb690..67550eb 100644
--- a/devel/third-party/ckeditor/core/dom/text.js
+++ b/devel/third-party/ckeditor/core/dom/text.js
@@ -1,123 +1,139 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.text} class, which represents
- * a DOM text node.
- */
-
-/**
- * Represents a DOM text node.
- * @constructor
- * @augments CKEDITOR.dom.node
- * @param {Object|String} text A native DOM text node or a string containing
- * the text to use to create a new text node.
- * @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
- * the node in case of new node creation. Defaults to the current document.
- * @example
- * var nativeNode = document.createTextNode( 'Example' );
- * var text = CKEDITOR.dom.text( nativeNode );
- * @example
- * var text = CKEDITOR.dom.text( 'Example' );
- */
-CKEDITOR.dom.text = function( text, ownerDocument )
-{
- if ( typeof text == 'string' )
- text = ( ownerDocument ? ownerDocument.$ : document ).createTextNode( text );
-
- // Theoretically, we should call the base constructor here
- // (not CKEDITOR.dom.node though). But, IE doesn't support expando
- // properties on text node, so the features provided by domObject will not
- // work for text nodes (which is not a big issue for us).
- //
- // CKEDITOR.dom.domObject.call( this, element );
-
- /**
- * The native DOM text node represented by this class instance.
- * @type Object
- * @example
- * var element = new CKEDITOR.dom.text( 'Example' );
- * alert( element.$.nodeType ); // "3"
- */
- this.$ = text;
-};
-
-CKEDITOR.dom.text.prototype = new CKEDITOR.dom.node();
-
-CKEDITOR.tools.extend( CKEDITOR.dom.text.prototype,
- /** @lends CKEDITOR.dom.text.prototype */
- {
- /**
- * The node type. This is a constant value set to
- * {@link CKEDITOR.NODE_TEXT}.
- * @type Number
- * @example
- */
- type : CKEDITOR.NODE_TEXT,
-
- getLength : function()
- {
- return this.$.nodeValue.length;
- },
-
- getText : function()
- {
- return this.$.nodeValue;
- },
-
- /**
- * Breaks this text node into two nodes at the specified offset,
- * keeping both in the tree as siblings. This node then only contains
- * all the content up to the offset point. A new text node, which is
- * inserted as the next sibling of this node, contains all the content
- * at and after the offset point. When the offset is equal to the
- * length of this node, the new node has no data.
- * @param {Number} The position at which to split, starting from zero.
- * @returns {CKEDITOR.dom.text} The new text node.
- */
- split : function( offset )
- {
- // If the offset is after the last char, IE creates the text node
- // on split, but don't include it into the DOM. So, we have to do
- // that manually here.
- if ( CKEDITOR.env.ie && offset == this.getLength() )
- {
- var next = this.getDocument().createText( '' );
- next.insertAfter( this );
- return next;
- }
-
- var doc = this.getDocument();
- var retval = new CKEDITOR.dom.text( this.$.splitText( offset ), doc );
-
- // IE BUG: IE8 does not update the childNodes array in DOM after splitText(),
- // we need to make some DOM changes to make it update. (#3436)
- if ( CKEDITOR.env.ie8 )
- {
- var workaround = new CKEDITOR.dom.text( '', doc );
- workaround.insertAfter( retval );
- workaround.remove();
- }
-
- return retval;
- },
-
- /**
- * Extracts characters from indexA up to but not including indexB.
- * @param {Number} indexA An integer between 0 and one less than the
- * length of the text.
- * @param {Number} [indexB] An integer between 0 and the length of the
- * string. If omitted, extracts characters to the end of the text.
- */
- substring : function( indexA, indexB )
- {
- // We need the following check due to a Firefox bug
- // https://bugzilla.mozilla.org/show_bug.cgi?id=458886
- if ( typeof indexB != 'number' )
- return this.$.nodeValue.substr( indexA );
- else
- return this.$.nodeValue.substring( indexA, indexB );
- }
- });
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.text} class, which represents
+ * a DOM text node.
+ */
+
+/**
+ * Represents a DOM text node.
+ *
+ * var nativeNode = document.createTextNode( 'Example' );
+ * var text = CKEDITOR.dom.text( nativeNode );
+ *
+ * var text = CKEDITOR.dom.text( 'Example' );
+ *
+ * @class
+ * @extends CKEDITOR.dom.node
+ * @constructor Creates a text class instance.
+ * @param {Object/String} text A native DOM text node or a string containing
+ * the text to use to create a new text node.
+ * @param {CKEDITOR.dom.document} [ownerDocument] The document that will contain
+ * the node in case of new node creation. Defaults to the current document.
+ */
+CKEDITOR.dom.text = function( text, ownerDocument ) {
+ if ( typeof text == 'string' )
+ text = ( ownerDocument ? ownerDocument.$ : document ).createTextNode( text );
+
+ // Theoretically, we should call the base constructor here
+ // (not CKEDITOR.dom.node though). But, IE doesn't support expando
+ // properties on text node, so the features provided by domObject will not
+ // work for text nodes (which is not a big issue for us).
+ //
+ // CKEDITOR.dom.domObject.call( this, element );
+
+ this.$ = text;
+};
+
+CKEDITOR.dom.text.prototype = new CKEDITOR.dom.node();
+
+CKEDITOR.tools.extend( CKEDITOR.dom.text.prototype, {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_TEXT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_TEXT]
+ */
+ type: CKEDITOR.NODE_TEXT,
+
+ /**
+ * Gets length of node's value.
+ *
+ * @returns {Number}
+ */
+ getLength: function() {
+ return this.$.nodeValue.length;
+ },
+
+ /**
+ * Gets node's value.
+ *
+ * @returns {String}
+ */
+ getText: function() {
+ return this.$.nodeValue;
+ },
+
+ /**
+ * Sets node's value.
+ *
+ * @param {String} text
+ */
+ setText: function( text ) {
+ this.$.nodeValue = text;
+ },
+
+ /**
+ * Breaks this text node into two nodes at the specified offset,
+ * keeping both in the tree as siblings. This node then only contains
+ * all the content up to the offset point. A new text node, which is
+ * inserted as the next sibling of this node, contains all the content
+ * at and after the offset point. When the offset is equal to the
+ * length of this node, the new node has no data.
+ *
+ * @param {Number} The position at which to split, starting from zero.
+ * @returns {CKEDITOR.dom.text} The new text node.
+ */
+ split: function( offset ) {
+
+ // Saved the children count and text length beforehand.
+ var parent = this.$.parentNode,
+ count = parent.childNodes.length,
+ length = this.getLength();
+
+ var doc = this.getDocument();
+ var retval = new CKEDITOR.dom.text( this.$.splitText( offset ), doc );
+
+ if ( parent.childNodes.length == count )
+ {
+ // If the offset is after the last char, IE creates the text node
+ // on split, but don't include it into the DOM. So, we have to do
+ // that manually here.
+ if ( offset >= length )
+ {
+ retval = doc.createText( '' );
+ retval.insertAfter( this );
+ }
+ else
+ {
+ // IE BUG: IE8+ does not update the childNodes array in DOM after splitText(),
+ // we need to make some DOM changes to make it update. (#3436)
+ var workaround = doc.createText( '' );
+ workaround.insertAfter( retval );
+ workaround.remove();
+ }
+ }
+
+ return retval;
+ },
+
+ /**
+ * Extracts characters from indexA up to but not including `indexB`.
+ *
+ * @param {Number} indexA An integer between `0` and one less than the
+ * length of the text.
+ * @param {Number} [indexB] An integer between `0` and the length of the
+ * string. If omitted, extracts characters to the end of the text.
+ */
+ substring: function( indexA, indexB ) {
+ // We need the following check due to a Firefox bug
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=458886
+ if ( typeof indexB != 'number' )
+ return this.$.nodeValue.substr( indexA );
+ else
+ return this.$.nodeValue.substring( indexA, indexB );
+ }
+});
diff --git a/devel/third-party/ckeditor/core/dom/walker.js b/devel/third-party/ckeditor/core/dom/walker.js
index 1bf0eab..0f360e0 100644
--- a/devel/third-party/ckeditor/core/dom/walker.js
+++ b/devel/third-party/ckeditor/core/dom/walker.js
@@ -1,445 +1,477 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- // This function is to be called under a "walker" instance scope.
- function iterate( rtl, breakOnFalse )
- {
- // Return null if we have reached the end.
- if ( this._.end )
- return null;
-
- var node,
- range = this.range,
- guard,
- userGuard = this.guard,
- type = this.type,
- getSourceNodeFn = ( rtl ? 'getPreviousSourceNode' : 'getNextSourceNode' );
-
- // This is the first call. Initialize it.
- if ( !this._.start )
- {
- this._.start = 1;
-
- // Trim text nodes and optmize the range boundaries. DOM changes
- // may happen at this point.
- range.trim();
-
- // A collapsed range must return null at first call.
- if ( range.collapsed )
- {
- this.end();
- return null;
- }
- }
-
- // Create the LTR guard function, if necessary.
- if ( !rtl && !this._.guardLTR )
- {
- // Gets the node that stops the walker when going LTR.
- var limitLTR = range.endContainer,
- blockerLTR = limitLTR.getChild( range.endOffset );
-
- this._.guardLTR = function( node, movingOut )
- {
- return ( ( !movingOut || !limitLTR.equals( node ) )
- && ( !blockerLTR || !node.equals( blockerLTR ) )
- && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || node.getName() != 'body' ) );
- };
- }
-
- // Create the RTL guard function, if necessary.
- if ( rtl && !this._.guardRTL )
- {
- // Gets the node that stops the walker when going LTR.
- var limitRTL = range.startContainer,
- blockerRTL = ( range.startOffset > 0 ) && limitRTL.getChild( range.startOffset - 1 );
-
- this._.guardRTL = function( node, movingOut )
- {
- return ( ( !movingOut || !limitRTL.equals( node ) )
- && ( !blockerRTL || !node.equals( blockerRTL ) )
- && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || node.getName() != 'body' ) );
- };
- }
-
- // Define which guard function to use.
- var stopGuard = rtl ? this._.guardRTL : this._.guardLTR;
-
- // Make the user defined guard function participate in the process,
- // otherwise simply use the boundary guard.
- if ( userGuard )
- {
- guard = function( node, movingOut )
- {
- if ( stopGuard( node, movingOut ) === false )
- return false;
-
- return userGuard( node, movingOut );
- };
- }
- else
- guard = stopGuard;
-
- if ( this.current )
- node = this.current[ getSourceNodeFn ]( false, type, guard );
- else
- {
- // Get the first node to be returned.
-
- if ( rtl )
- {
- node = range.endContainer;
-
- if ( range.endOffset > 0 )
- {
- node = node.getChild( range.endOffset - 1 );
- if ( guard( node ) === false )
- node = null;
- }
- else
- node = ( guard ( node, true ) === false ) ?
- null : node.getPreviousSourceNode( true, type, guard );
- }
- else
- {
- node = range.startContainer;
- node = node.getChild( range.startOffset );
-
- if ( node )
- {
- if ( guard( node ) === false )
- node = null;
- }
- else
- node = ( guard ( range.startContainer, true ) === false ) ?
- null : range.startContainer.getNextSourceNode( true, type, guard ) ;
- }
- }
-
- while ( node && !this._.end )
- {
- this.current = node;
-
- if ( !this.evaluator || this.evaluator( node ) !== false )
- {
- if ( !breakOnFalse )
- return node;
- }
- else if ( breakOnFalse && this.evaluator )
- return false;
-
- node = node[ getSourceNodeFn ]( false, type, guard );
- }
-
- this.end();
- return this.current = null;
- }
-
- function iterateToLast( rtl )
- {
- var node, last = null;
-
- while ( ( node = iterate.call( this, rtl ) ) )
- last = node;
-
- return last;
- }
-
- CKEDITOR.dom.walker = CKEDITOR.tools.createClass(
- {
- /**
- * Utility class to "walk" the DOM inside a range boundaries. If
- * necessary, partially included nodes (text nodes) are broken to
- * reflect the boundaries limits, so DOM and range changes may happen.
- * Outside changes to the range may break the walker.
- *
- * The walker may return nodes that are not totaly included into the
- * range boundaires. Let's take the following range representation,
- * where the square brackets indicate the boundaries:
- *
- * [<p>Some <b>sample] text</b>
- *
- * While walking forward into the above range, the following nodes are
- * returned: <p>, "Some ", <b> and "sample". Going
- * backwards instead we have: "sample" and "Some ". So note that the
- * walker always returns nodes when "entering" them, but not when
- * "leaving" them. The guard function is instead called both when
- * entering and leaving nodes.
- *
- * @constructor
- * @param {CKEDITOR.dom.range} range The range within which walk.
- */
- $ : function( range )
- {
- this.range = range;
-
- /**
- * A function executed for every matched node, to check whether
- * it's to be considered into the walk or not. If not provided, all
- * matched nodes are considered good.
- * If the function returns "false" the node is ignored.
- * @name CKEDITOR.dom.walker.prototype.evaluator
- * @property
- * @type Function
- */
- // this.evaluator = null;
-
- /**
- * A function executed for every node the walk pass by to check
- * whether the walk is to be finished. It's called when both
- * entering and exiting nodes, as well as for the matched nodes.
- * If this function returns "false", the walking ends and no more
- * nodes are evaluated.
- * @name CKEDITOR.dom.walker.prototype.guard
- * @property
- * @type Function
- */
- // this.guard = null;
-
- /** @private */
- this._ = {};
- },
-
-// statics :
-// {
-// /* Creates a CKEDITOR.dom.walker instance to walk inside DOM boundaries set by nodes.
-// * @param {CKEDITOR.dom.node} startNode The node from wich the walk
-// * will start.
-// * @param {CKEDITOR.dom.node} [endNode] The last node to be considered
-// * in the walk. No more nodes are retrieved after touching or
-// * passing it. If not provided, the walker stops at the
-// * <body> closing boundary.
-// * @returns {CKEDITOR.dom.walker} A DOM walker for the nodes between the
-// * provided nodes.
-// */
-// createOnNodes : function( startNode, endNode, startInclusive, endInclusive )
-// {
-// var range = new CKEDITOR.dom.range();
-// if ( startNode )
-// range.setStartAt( startNode, startInclusive ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_END ) ;
-// else
-// range.setStartAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_AFTER_START ) ;
-//
-// if ( endNode )
-// range.setEndAt( endNode, endInclusive ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START ) ;
-// else
-// range.setEndAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_BEFORE_END ) ;
-//
-// return new CKEDITOR.dom.walker( range );
-// }
-// },
-//
- proto :
- {
- /**
- * Stop walking. No more nodes are retrieved if this function gets
- * called.
- */
- end : function()
- {
- this._.end = 1;
- },
-
- /**
- * Retrieves the next node (at right).
- * @returns {CKEDITOR.dom.node} The next node or null if no more
- * nodes are available.
- */
- next : function()
- {
- return iterate.call( this );
- },
-
- /**
- * Retrieves the previous node (at left).
- * @returns {CKEDITOR.dom.node} The previous node or null if no more
- * nodes are available.
- */
- previous : function()
- {
- return iterate.call( this, true );
- },
-
- /**
- * Check all nodes at right, executing the evaluation fuction.
- * @returns {Boolean} "false" if the evaluator function returned
- * "false" for any of the matched nodes. Otherwise "true".
- */
- checkForward : function()
- {
- return iterate.call( this, false, true ) !== false;
- },
-
- /**
- * Check all nodes at left, executing the evaluation fuction.
- * @returns {Boolean} "false" if the evaluator function returned
- * "false" for any of the matched nodes. Otherwise "true".
- */
- checkBackward : function()
- {
- return iterate.call( this, true, true ) !== false;
- },
-
- /**
- * Executes a full walk forward (to the right), until no more nodes
- * are available, returning the last valid node.
- * @returns {CKEDITOR.dom.node} The last node at the right or null
- * if no valid nodes are available.
- */
- lastForward : function()
- {
- return iterateToLast.call( this );
- },
-
- /**
- * Executes a full walk backwards (to the left), until no more nodes
- * are available, returning the last valid node.
- * @returns {CKEDITOR.dom.node} The last node at the left or null
- * if no valid nodes are available.
- */
- lastBackward : function()
- {
- return iterateToLast.call( this, true );
- },
-
- reset : function()
- {
- delete this.current;
- this._ = {};
- }
-
- }
- });
-
- /*
- * Anything whose display computed style is block, list-item, table,
- * table-row-group, table-header-group, table-footer-group, table-row,
- * table-column-group, table-column, table-cell, table-caption, or whose node
- * name is hr, br (when enterMode is br only) is a block boundary.
- */
- var blockBoundaryDisplayMatch =
- {
- block : 1,
- 'list-item' : 1,
- table : 1,
- 'table-row-group' : 1,
- 'table-header-group' : 1,
- 'table-footer-group' : 1,
- 'table-row' : 1,
- 'table-column-group' : 1,
- 'table-column' : 1,
- 'table-cell' : 1,
- 'table-caption' : 1
- },
- blockBoundaryNodeNameMatch = { hr : 1 };
-
- CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames )
- {
- var nodeNameMatches = CKEDITOR.tools.extend( {},
- blockBoundaryNodeNameMatch, customNodeNames || {} );
-
- return blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] ||
- nodeNameMatches[ this.getName() ];
- };
-
- CKEDITOR.dom.walker.blockBoundary = function( customNodeNames )
- {
- return function( node , type )
- {
- return ! ( node.type == CKEDITOR.NODE_ELEMENT
- && node.isBlockBoundary( customNodeNames ) );
- };
- };
-
- CKEDITOR.dom.walker.listItemBoundary = function()
- {
- return this.blockBoundary( { br : 1 } );
- };
-
- /**
- * Whether the to-be-evaluated node is a bookmark node OR bookmark node
- * inner contents.
- * @param {Boolean} contentOnly Whether only test againt the text content of
- * bookmark node instead of the element itself(default).
- * @param {Boolean} isReject Whether should return 'false' for the bookmark
- * node instead of 'true'(default).
- */
- CKEDITOR.dom.walker.bookmark = function( contentOnly, isReject )
- {
- function isBookmarkNode( node )
- {
- return ( node && node.getName
- && node.getName() == 'span'
- && node.hasAttribute('_cke_bookmark') );
- }
-
- return function( node )
- {
- var isBookmark, parent;
- // Is bookmark inner text node?
- isBookmark = ( node && !node.getName && ( parent = node.getParent() )
- && isBookmarkNode( parent ) );
- // Is bookmark node?
- isBookmark = contentOnly ? isBookmark : isBookmark || isBookmarkNode( node );
- return isReject ^ isBookmark;
- };
- };
-
- /**
- * Whether the node is a text node containing only whitespaces characters.
- * @param isReject
- */
- CKEDITOR.dom.walker.whitespaces = function( isReject )
- {
- return function( node )
- {
- var isWhitespace = node && ( node.type == CKEDITOR.NODE_TEXT )
- && !CKEDITOR.tools.trim( node.getText() );
- return isReject ^ isWhitespace;
- };
- };
-
- /**
- * Whether the node is invisible in wysiwyg mode.
- * @param isReject
- */
- CKEDITOR.dom.walker.invisible = function( isReject )
- {
- var whitespace = CKEDITOR.dom.walker.whitespaces();
- return function( node )
- {
- // Nodes that take no spaces in wysiwyg:
- // 1. White-spaces but not including NBSP;
- // 2. Empty inline elements, e.g. <b></b> we're checking here
- // 'offsetHeight' instead of 'offsetWidth' for properly excluding
- // all sorts of empty paragraph, e.g. <br />.
- var isInvisible = whitespace( node ) || node.is && !node.$.offsetHeight;
- return isReject ^ isInvisible;
- };
- };
-
- var tailNbspRegex = /^[\t\r\n ]*(?: |\xa0)$/,
- isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
- isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true ),
- fillerEvaluator = function( element )
- {
- return isNotBookmark( element ) && isNotWhitespaces( element );
- };
-
- // Check if there's a filler node at the end of an element, and return it.
- CKEDITOR.dom.element.prototype.getBogus = function ()
- {
- var tail = this.getLast( fillerEvaluator );
- if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' )
- : tail.getText && tailNbspRegex.test( tail.getText() ) ) )
- {
- return tail;
- }
- return false;
- };
-
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ // This function is to be called under a "walker" instance scope.
+ function iterate( rtl, breakOnFalse ) {
+ var range = this.range;
+
+ // Return null if we have reached the end.
+ if ( this._.end )
+ return null;
+
+ // This is the first call. Initialize it.
+ if ( !this._.start ) {
+ this._.start = 1;
+
+ // A collapsed range must return null at first call.
+ if ( range.collapsed ) {
+ this.end();
+ return null;
+ }
+
+ // Move outside of text node edges.
+ range.optimize();
+ }
+
+ var node,
+ startCt = range.startContainer,
+ endCt = range.endContainer,
+ startOffset = range.startOffset,
+ endOffset = range.endOffset,
+ guard,
+ userGuard = this.guard,
+ type = this.type,
+ getSourceNodeFn = ( rtl ? 'getPreviousSourceNode' : 'getNextSourceNode' );
+
+ // Create the LTR guard function, if necessary.
+ if ( !rtl && !this._.guardLTR ) {
+ // The node that stops walker from moving up.
+ var limitLTR = endCt.type == CKEDITOR.NODE_ELEMENT ? endCt : endCt.getParent();
+
+ // The node that stops the walker from going to next.
+ var blockerLTR = endCt.type == CKEDITOR.NODE_ELEMENT ? endCt.getChild( endOffset ) : endCt.getNext();
+
+ this._.guardLTR = function( node, movingOut ) {
+ return ( ( !movingOut || !limitLTR.equals( node ) ) && ( !blockerLTR || !node.equals( blockerLTR ) ) && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || !node.equals( range.root ) ) );
+ };
+ }
+
+ // Create the RTL guard function, if necessary.
+ if ( rtl && !this._.guardRTL ) {
+ // The node that stops walker from moving up.
+ var limitRTL = startCt.type == CKEDITOR.NODE_ELEMENT ? startCt : startCt.getParent();
+
+ // The node that stops the walker from going to next.
+ var blockerRTL = startCt.type == CKEDITOR.NODE_ELEMENT ? startOffset ? startCt.getChild( startOffset - 1 ) : null : startCt.getPrevious();
+
+ this._.guardRTL = function( node, movingOut ) {
+ return ( ( !movingOut || !limitRTL.equals( node ) ) && ( !blockerRTL || !node.equals( blockerRTL ) ) && ( node.type != CKEDITOR.NODE_ELEMENT || !movingOut || !node.equals( range.root ) ) );
+ };
+ }
+
+ // Define which guard function to use.
+ var stopGuard = rtl ? this._.guardRTL : this._.guardLTR;
+
+ // Make the user defined guard function participate in the process,
+ // otherwise simply use the boundary guard.
+ if ( userGuard ) {
+ guard = function( node, movingOut ) {
+ if ( stopGuard( node, movingOut ) === false )
+ return false;
+
+ return userGuard( node, movingOut );
+ };
+ } else
+ guard = stopGuard;
+
+ if ( this.current )
+ node = this.current[ getSourceNodeFn ]( false, type, guard );
+ else {
+ // Get the first node to be returned.
+ if ( rtl ) {
+ node = endCt;
+
+ if ( node.type == CKEDITOR.NODE_ELEMENT ) {
+ if ( endOffset > 0 )
+ node = node.getChild( endOffset - 1 );
+ else
+ node = ( guard( node, true ) === false ) ? null : node.getPreviousSourceNode( true, type, guard );
+ }
+ } else {
+ node = startCt;
+
+ if ( node.type == CKEDITOR.NODE_ELEMENT ) {
+ if ( !( node = node.getChild( startOffset ) ) )
+ node = ( guard( startCt, true ) === false ) ? null : startCt.getNextSourceNode( true, type, guard );
+ }
+ }
+
+ if ( node && guard( node ) === false )
+ node = null;
+ }
+
+ while ( node && !this._.end ) {
+ this.current = node;
+
+ if ( !this.evaluator || this.evaluator( node ) !== false ) {
+ if ( !breakOnFalse )
+ return node;
+ } else if ( breakOnFalse && this.evaluator )
+ return false;
+
+ node = node[ getSourceNodeFn ]( false, type, guard );
+ }
+
+ this.end();
+ return this.current = null;
+ }
+
+ function iterateToLast( rtl ) {
+ var node,
+ last = null;
+
+ while ( ( node = iterate.call( this, rtl ) ) )
+ last = node;
+
+ return last;
+ }
+
+ /**
+ * Utility class to "walk" the DOM inside a range boundaries. If
+ * necessary, partially included nodes (text nodes) are broken to
+ * reflect the boundaries limits, so DOM and range changes may happen.
+ * Outside changes to the range may break the walker.
+ *
+ * The walker may return nodes that are not totaly included into the
+ * range boundaires. Let's take the following range representation,
+ * where the square brackets indicate the boundaries:
+ *
+ * [<p>Some <b>sample] text</b>
+ *
+ * While walking forward into the above range, the following nodes are
+ * returned: `<p>`, `"Some "`, `<b>` and `"sample"`. Going
+ * backwards instead we have: `"sample"` and `"Some "`. So note that the
+ * walker always returns nodes when "entering" them, but not when
+ * "leaving" them. The guard function is instead called both when
+ * entering and leaving nodes.
+ *
+ * @class
+ */
+ CKEDITOR.dom.walker = CKEDITOR.tools.createClass({
+ /**
+ * Creates a walker class instance.
+ *
+ * @constructor
+ * @param {CKEDITOR.dom.range} range The range within which walk.
+ */
+ $: function( range ) {
+ this.range = range;
+
+ /**
+ * A function executed for every matched node, to check whether
+ * it's to be considered into the walk or not. If not provided, all
+ * matched nodes are considered good.
+ *
+ * If the function returns `false` the node is ignored.
+ *
+ * @property {Function} evaluator
+ */
+ // this.evaluator = null;
+
+ /**
+ * A function executed for every node the walk pass by to check
+ * whether the walk is to be finished. It's called when both
+ * entering and exiting nodes, as well as for the matched nodes.
+ *
+ * If this function returns `false`, the walking ends and no more
+ * nodes are evaluated.
+
+ * @property {Function} guard
+ */
+ // this.guard = null;
+
+ /** @private */
+ this._ = {};
+ },
+
+ // statics :
+ // {
+ // /* Creates a CKEDITOR.dom.walker instance to walk inside DOM boundaries set by nodes.
+ // * @param {CKEDITOR.dom.node} startNode The node from wich the walk
+ // * will start.
+ // * @param {CKEDITOR.dom.node} [endNode] The last node to be considered
+ // * in the walk. No more nodes are retrieved after touching or
+ // * passing it. If not provided, the walker stops at the
+ // * <body> closing boundary.
+ // * @returns {CKEDITOR.dom.walker} A DOM walker for the nodes between the
+ // * provided nodes.
+ // */
+ // createOnNodes : function( startNode, endNode, startInclusive, endInclusive )
+ // {
+ // var range = new CKEDITOR.dom.range();
+ // if ( startNode )
+ // range.setStartAt( startNode, startInclusive ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_END ) ;
+ // else
+ // range.setStartAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_AFTER_START ) ;
+ //
+ // if ( endNode )
+ // range.setEndAt( endNode, endInclusive ? CKEDITOR.POSITION_AFTER_END : CKEDITOR.POSITION_BEFORE_START ) ;
+ // else
+ // range.setEndAt( startNode.getDocument().getBody(), CKEDITOR.POSITION_BEFORE_END ) ;
+ //
+ // return new CKEDITOR.dom.walker( range );
+ // }
+ // },
+ //
+ proto: {
+ /**
+ * Stops walking. No more nodes are retrieved if this function gets called.
+ */
+ end: function() {
+ this._.end = 1;
+ },
+
+ /**
+ * Retrieves the next node (at right).
+ *
+ * @returns {CKEDITOR.dom.node} The next node or null if no more
+ * nodes are available.
+ */
+ next: function() {
+ return iterate.call( this );
+ },
+
+ /**
+ * Retrieves the previous node (at left).
+ *
+ * @returns {CKEDITOR.dom.node} The previous node or null if no more
+ * nodes are available.
+ */
+ previous: function() {
+ return iterate.call( this, 1 );
+ },
+
+ /**
+ * Check all nodes at right, executing the evaluation fuction.
+ *
+ * @returns {Boolean} `false` if the evaluator function returned
+ * `false` for any of the matched nodes. Otherwise `true`.
+ */
+ checkForward: function() {
+ return iterate.call( this, 0, 1 ) !== false;
+ },
+
+ /**
+ * Check all nodes at left, executing the evaluation fuction.
+ *
+ * @returns {Boolean} `false` if the evaluator function returned
+ * `false` for any of the matched nodes. Otherwise `true`.
+ */
+ checkBackward: function() {
+ return iterate.call( this, 1, 1 ) !== false;
+ },
+
+ /**
+ * Executes a full walk forward (to the right), until no more nodes
+ * are available, returning the last valid node.
+ *
+ * @returns {CKEDITOR.dom.node} The last node at the right or null
+ * if no valid nodes are available.
+ */
+ lastForward: function() {
+ return iterateToLast.call( this );
+ },
+
+ /**
+ * Executes a full walk backwards (to the left), until no more nodes
+ * are available, returning the last valid node.
+ *
+ * @returns {CKEDITOR.dom.node} The last node at the left or null
+ * if no valid nodes are available.
+ */
+ lastBackward: function() {
+ return iterateToLast.call( this, 1 );
+ },
+
+ /**
+ * Resets walker.
+ */
+ reset: function() {
+ delete this.current;
+ this._ = {};
+ }
+
+ }
+ });
+
+ // Anything whose display computed style is block, list-item, table,
+ // table-row-group, table-header-group, table-footer-group, table-row,
+ // table-column-group, table-column, table-cell, table-caption, or whose node
+ // name is hr, br (when enterMode is br only) is a block boundary.
+ var blockBoundaryDisplayMatch = { block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1 };
+
+ /**
+ * @member CKEDITOR.dom.element
+ * @todo
+ */
+ CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames ) {
+ var nodeNameMatches = customNodeNames ? CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$block, customNodeNames || {} ) : CKEDITOR.dtd.$block;
+
+ // Don't consider floated formatting as block boundary, fall back to dtd check in that case. (#6297)
+ return this.getComputedStyle( 'float' ) == 'none' && blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] || nodeNameMatches[ this.getName() ];
+ };
+
+ /**
+ * @static
+ * @todo
+ */
+ CKEDITOR.dom.walker.blockBoundary = function( customNodeNames ) {
+ return function( node, type ) {
+ return !( node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary( customNodeNames ) );
+ };
+ };
+
+ /**
+ * @static
+ * @todo
+ */
+ CKEDITOR.dom.walker.listItemBoundary = function() {
+ return this.blockBoundary( { br:1 } );
+ };
+
+ /**
+ * Whether the to-be-evaluated node is a bookmark node OR bookmark node
+ * inner contents.
+ *
+ * @static
+ * @param {Boolean} [contentOnly=false] Whether only test against the text content of
+ * bookmark node instead of the element itself (default).
+ * @param {Boolean} [isReject=false] Whether should return `false` for the bookmark
+ * node instead of `true` (default).
+ * @returns {Function}
+ */
+ CKEDITOR.dom.walker.bookmark = function( contentOnly, isReject ) {
+ function isBookmarkNode( node ) {
+ return ( node && node.getName && node.getName() == 'span' && node.data( 'cke-bookmark' ) );
+ }
+
+ return function( node ) {
+ var isBookmark, parent;
+ // Is bookmark inner text node?
+ isBookmark = ( node && node.type != CKEDITOR.NODE_ELEMENT && ( parent = node.getParent() ) && isBookmarkNode( parent ) );
+ // Is bookmark node?
+ isBookmark = contentOnly ? isBookmark : isBookmark || isBookmarkNode( node );
+ return !!( isReject ^ isBookmark );
+ };
+ };
+
+ /**
+ * Whether the node is a text node containing only whitespaces characters.
+ *
+ * @static
+ * @param {Boolean} [isReject=false]
+ * @returns {Function}
+ */
+ CKEDITOR.dom.walker.whitespaces = function( isReject ) {
+ return function( node ) {
+ var isWhitespace;
+ if ( node && node.type == CKEDITOR.NODE_TEXT ) {
+ // whitespace, as well as the text cursor filler node we used in Webkit. (#9384)
+ isWhitespace = !CKEDITOR.tools.trim( node.getText() ) ||
+ CKEDITOR.env.webkit && node.getText() == '\u200b';
+ }
+
+ return !! ( isReject ^ isWhitespace );
+ };
+ };
+
+ /**
+ * Whether the node is invisible in wysiwyg mode.
+ *
+ * @static
+ * @param {Boolean} [isReject=false]
+ * @returns {Function}
+ */
+ CKEDITOR.dom.walker.invisible = function( isReject ) {
+ var whitespace = CKEDITOR.dom.walker.whitespaces();
+ return function( node ) {
+ var invisible;
+
+ if ( whitespace( node ) )
+ invisible = 1;
+ else {
+ // Visibility should be checked on element.
+ if ( node.type == CKEDITOR.NODE_TEXT )
+ node = node.getParent();
+
+ // Nodes that take no spaces in wysiwyg:
+ // 1. White-spaces but not including NBSP;
+ // 2. Empty inline elements, e.g. <b></b> we're checking here
+ // 'offsetHeight' instead of 'offsetWidth' for properly excluding
+ // all sorts of empty paragraph, e.g. <br />.
+ invisible = !node.$.offsetHeight;
+ }
+
+ return !!( isReject ^ invisible );
+ };
+ };
+
+ /**
+ * @static
+ * @param {Number} type
+ * @param {Boolean} [isReject=false]
+ * @returns {Function}
+ * @todo
+ */
+ CKEDITOR.dom.walker.nodeType = function( type, isReject ) {
+ return function( node ) {
+ return !!( isReject ^ ( node.type == type ) );
+ };
+ };
+
+ /**
+ * @static
+ * @param {Boolean} [isReject=false]
+ * @returns {Function}
+ * @todo
+ */
+ CKEDITOR.dom.walker.bogus = function( isReject ) {
+ function nonEmpty( node ) {
+ return !isWhitespaces( node ) && !isBookmark( node );
+ }
+
+ return function( node ) {
+ var isBogus = !CKEDITOR.env.ie ? node.is && node.is( 'br' ) : node.getText && tailNbspRegex.test( node.getText() );
+
+ if ( isBogus ) {
+ var parent = node.getParent(),
+ next = node.getNext( nonEmpty );
+
+ isBogus = parent.isBlockBoundary() && ( !next || next.type == CKEDITOR.NODE_ELEMENT && next.isBlockBoundary() );
+ }
+
+ return !!( isReject ^ isBogus );
+ };
+ };
+
+ var tailNbspRegex = /^[\t\r\n ]*(?: |\xa0)$/,
+ isWhitespaces = CKEDITOR.dom.walker.whitespaces(),
+ isBookmark = CKEDITOR.dom.walker.bookmark(),
+ toSkip = function( node ) {
+ return isBookmark( node ) || isWhitespaces( node ) || node.type == CKEDITOR.NODE_ELEMENT && node.getName() in CKEDITOR.dtd.$inline && !( node.getName() in CKEDITOR.dtd.$empty );
+ };
+
+ /**
+ * Check if there's a filler node at the end of an element, and return it.
+ *
+ * @member CKEDITOR.dom.element
+ * @returns {Boolean}
+ */
+ CKEDITOR.dom.element.prototype.getBogus = function() {
+ // Bogus are not always at the end, e.g. <p><a>text<br /></a></p> (#7070).
+ var tail = this;
+ do {
+ tail = tail.getPreviousSourceNode();
+ }
+ while ( toSkip( tail ) )
+
+ if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' ) : tail.getText && tailNbspRegex.test( tail.getText() ) ) ) {
+ return tail;
+ }
+ return false;
+ };
+
+})();
diff --git a/devel/third-party/ckeditor/core/dom/window.js b/devel/third-party/ckeditor/core/dom/window.js
index 01e2d58..af0ce83 100644
--- a/devel/third-party/ckeditor/core/dom/window.js
+++ b/devel/third-party/ckeditor/core/dom/window.js
@@ -1,96 +1,95 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
- * represents a DOM document.
- */
-
-/**
- * Represents a DOM window.
- * @constructor
- * @augments CKEDITOR.dom.domObject
- * @param {Object} domWindow A native DOM window.
- * @example
- * var document = new CKEDITOR.dom.window( window );
- */
-CKEDITOR.dom.window = function( domWindow )
-{
- CKEDITOR.dom.domObject.call( this, domWindow );
-};
-
-CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject();
-
-CKEDITOR.tools.extend( CKEDITOR.dom.window.prototype,
- /** @lends CKEDITOR.dom.window.prototype */
- {
- /**
- * Moves the selection focus to this window.
- * @function
- * @example
- * var win = new CKEDITOR.dom.window( window );
- * <b>win.focus()</b>;
- */
- focus : function()
- {
- // Webkit is sometimes failed to focus iframe, blur it first(#3835).
- if ( CKEDITOR.env.webkit && this.$.parent )
- this.$.parent.focus();
- this.$.focus();
- },
-
- /**
- * Gets the width and height of this window's viewable area.
- * @function
- * @returns {Object} An object with the "width" and "height"
- * properties containing the size.
- * @example
- * var win = new CKEDITOR.dom.window( window );
- * var size = <b>win.getViewPaneSize()</b>;
- * alert( size.width );
- * alert( size.height );
- */
- getViewPaneSize : function()
- {
- var doc = this.$.document,
- stdMode = doc.compatMode == 'CSS1Compat';
- return {
- width : ( stdMode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0,
- height : ( stdMode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0
- };
- },
-
- /**
- * Gets the current position of the window's scroll.
- * @function
- * @returns {Object} An object with the "x" and "y" properties
- * containing the scroll position.
- * @example
- * var win = new CKEDITOR.dom.window( window );
- * var pos = <b>win.getScrollPosition()</b>;
- * alert( pos.x );
- * alert( pos.y );
- */
- getScrollPosition : function()
- {
- var $ = this.$;
-
- if ( 'pageXOffset' in $ )
- {
- return {
- x : $.pageXOffset || 0,
- y : $.pageYOffset || 0
- };
- }
- else
- {
- var doc = $.document;
- return {
- x : doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
- y : doc.documentElement.scrollTop || doc.body.scrollTop || 0
- };
- }
- }
- });
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
+ * represents a DOM document.
+ */
+
+/**
+ * Represents a DOM window.
+ *
+ * var document = new CKEDITOR.dom.window( window );
+ *
+ * @class
+ * @extends CKEDITOR.dom.domObject
+ * @constructor Creates a window class instance.
+ * @param {Object} domWindow A native DOM window.
+ */
+CKEDITOR.dom.window = function( domWindow ) {
+ CKEDITOR.dom.domObject.call( this, domWindow );
+};
+
+CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject();
+
+CKEDITOR.tools.extend( CKEDITOR.dom.window.prototype, {
+ /**
+ * Moves the selection focus to this window.
+ *
+ * var win = new CKEDITOR.dom.window( window );
+ * win.focus();
+ */
+ focus: function() {
+ this.$.focus();
+ },
+
+ /**
+ * Gets the width and height of this window's viewable area.
+ *
+ * var win = new CKEDITOR.dom.window( window );
+ * var size = win.getViewPaneSize();
+ * alert( size.width );
+ * alert( size.height );
+ *
+ * @returns {Object} An object with the `width` and `height`
+ * properties containing the size.
+ */
+ getViewPaneSize: function() {
+ var doc = this.$.document,
+ stdMode = doc.compatMode == 'CSS1Compat';
+ return {
+ width: ( stdMode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0,
+ height: ( stdMode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0
+ };
+ },
+
+ /**
+ * Gets the current position of the window's scroll.
+ *
+ * var win = new CKEDITOR.dom.window( window );
+ * var pos = win.getScrollPosition();
+ * alert( pos.x );
+ * alert( pos.y );
+ *
+ * @returns {Object} An object with the `x` and `y` properties
+ * containing the scroll position.
+ */
+ getScrollPosition: function() {
+ var $ = this.$;
+
+ if ( 'pageXOffset' in $ ) {
+ return {
+ x: $.pageXOffset || 0,
+ y: $.pageYOffset || 0
+ };
+ } else {
+ var doc = $.document;
+ return {
+ x: doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
+ y: doc.documentElement.scrollTop || doc.body.scrollTop || 0
+ };
+ }
+ },
+
+ /**
+ * Gets the frame element containing this window context.
+ *
+ * @returns {CKEDITOR.dom.element} The frame element or `null` if not in a frame context.
+ */
+ getFrame: function() {
+ var iframe = this.$.frameElement;
+ return iframe ? new CKEDITOR.dom.element.get( iframe ) : null;
+ }
+});
diff --git a/devel/third-party/ckeditor/core/dtd.js b/devel/third-party/ckeditor/core/dtd.js
index d5af5bf..0d86e55 100644
--- a/devel/third-party/ckeditor/core/dtd.js
+++ b/devel/third-party/ckeditor/core/dtd.js
@@ -1,233 +1,302 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD
- * mapping for XHTML 1.0 Transitional. This file was automatically
- * generated from the file: xhtml1-transitional.dtd.
- */
-
-/**
- * Holds and object representation of the HTML DTD to be used by the editor in
- * its internal operations.
- *
- * Each element in the DTD is represented by a
- * property in this object. Each property contains the list of elements that
- * can be contained by the element. Text is represented by the "#" property.
- *
- * Several special grouping properties are also available. Their names start
- * with the "$" character.
- * @namespace
- * @example
- * // Check if "div" can be contained in a "p" element.
- * alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] ); "false"
- * @example
- * // Check if "p" can be contained in a "div" element.
- * alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] ); "true"
- * @example
- * // Check if "p" is a block element.
- * alert( !!CKEDITOR.dtd.$block[ 'p' ] ); "true"
- */
-CKEDITOR.dtd = (function()
-{
- var X = CKEDITOR.tools.extend,
-
- A = {isindex:1,fieldset:1},
- B = {input:1,button:1,select:1,textarea:1,label:1},
- C = X({a:1},B),
- D = X({iframe:1},C),
- E = {hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1},
- F = {ins:1,del:1,script:1,style:1},
- G = X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F),
- H = X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G),
- I = X({p:1},H),
- J = X({iframe:1},H,B),
- K = {img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1},
-
- L = X({a:1},J),
- M = {tr:1},
- N = {'#':1},
- O = X({param:1},K),
- P = X({form:1},A,D,E,I),
- Q = {li:1},
- R = {style:1,script:1},
- S = {base:1,link:1,meta:1,title:1},
- T = X(S,R),
- U = {head:1,body:1},
- V = {html:1};
-
- var block = {address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1};
-
- return /** @lends CKEDITOR.dtd */ {
-
- // The "$" items have been added manually.
-
- // List of elements living outside body.
- $nonBodyContent: X(V,U,S),
-
- /**
- * List of block elements, like "p" or "div".
- * @type Object
- * @example
- */
- $block : block,
-
- /**
- * List of block limit elements.
- * @type Object
- * @example
- */
- $blockLimit : { body:1,div:1,td:1,th:1,caption:1,form:1 },
-
- $inline : L, // Just like span.
-
- $body : X({script:1,style:1}, block),
-
- $cdata : {script:1,style:1},
-
- /**
- * List of empty (self-closing) elements, like "br" or "img".
- * @type Object
- * @example
- */
- $empty : {area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1},
-
- /**
- * List of list item elements, like "li" or "dd".
- * @type Object
- * @example
- */
- $listItem : {dd:1,dt:1,li:1},
-
- /**
- * List of list root elements.
- * @type Object
- * @example
- */
- $list: { ul:1,ol:1,dl:1},
-
- /**
- * Elements that accept text nodes, but are not possible to edit into
- * the browser.
- * @type Object
- * @example
- */
- $nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1,param:1},
-
- /**
- * List of elements that can be ignored if empty, like "b" or "span".
- * @type Object
- * @example
- */
- $removeEmpty : {abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1},
-
- /**
- * List of elements that have tabindex set to zero by default.
- * @type Object
- * @example
- */
- $tabIndex : {a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},
-
- /**
- * List of elements used inside the "table" element, like "tbody" or "td".
- * @type Object
- * @example
- */
- $tableContent : {caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},
-
- html: U,
- head: T,
- style: N,
- script: N,
- body: P,
- base: {},
- link: {},
- meta: {},
- title: N,
- col : {},
- tr : {td:1,th:1},
- img : {},
- colgroup : {col:1},
- noscript : P,
- td : P,
- br : {},
- th : P,
- center : P,
- kbd : L,
- button : X(I,E),
- basefont : {},
- h5 : L,
- h4 : L,
- samp : L,
- h6 : L,
- ol : Q,
- h1 : L,
- h3 : L,
- option : N,
- h2 : L,
- form : X(A,D,E,I),
- select : {optgroup:1,option:1},
- font : L,
- ins : L,
- menu : Q,
- abbr : L,
- label : L,
- table : {thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},
- code : L,
- script : N,
- tfoot : M,
- cite : L,
- li : P,
- input : {},
- iframe : P,
- strong : L,
- textarea : N,
- noframes : P,
- big : L,
- small : L,
- span : L,
- hr : {},
- dt : L,
- sub : L,
- optgroup : {option:1},
- param : {},
- bdo : L,
- 'var' : L,
- div : P,
- object : O,
- sup : L,
- dd : P,
- strike : L,
- area : {},
- dir : Q,
- map : X({area:1,form:1,p:1},A,F,E),
- applet : O,
- dl : {dt:1,dd:1},
- del : L,
- isindex : {},
- fieldset : X({legend:1},K),
- thead : M,
- ul : Q,
- acronym : L,
- b : L,
- a : J,
- blockquote : P,
- caption : L,
- i : L,
- u : L,
- tbody : M,
- s : L,
- address : X(D,I),
- tt : L,
- legend : L,
- q : L,
- pre : X(G,C),
- p : L,
- em : L,
- dfn : L
- };
-})();
-
-// PACKAGER_RENAME( CKEDITOR.dtd )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD
+ * mapping for XHTML 1.0 Transitional. This file was automatically
+ * generated from the file: xhtml1-transitional.dtd.
+ */
+
+/**
+ * Holds and object representation of the HTML DTD to be used by the
+ * editor in its internal operations.
+ *
+ * Each element in the DTD is represented by a property in this object. Each
+ * property contains the list of elements that can be contained by the element.
+ * Text is represented by the `#` property.
+ *
+ * Several special grouping properties are also available. Their names start
+ * with the `$` character.
+ *
+ * // Check if <div> can be contained in a <p> element.
+ * alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] ); // false
+ *
+ * // Check if <p> can be contained in a <div> element.
+ * alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] ); // true
+ *
+ * // Check if <p> is a block element.
+ * alert( !!CKEDITOR.dtd.$block[ 'p' ] ); // true
+ *
+ * @class CKEDITOR.dtd
+ * @singleton
+ */
+CKEDITOR.dtd = (function() {
+ 'use strict';
+
+ var X = CKEDITOR.tools.extend,
+ // Subtraction rest of sets, from the first set.
+ Y = function( source, removed ) {
+ var substracted = CKEDITOR.tools.clone( source );
+ for ( var i = 1; i < arguments.length; i++ ) {
+ removed = arguments[ i ];
+ for( var name in removed )
+ delete substracted[ name ];
+ }
+ return substracted;
+ };
+
+ // Phrasing elements.
+ // P = { a:1,em:1,strong:1,small:1,abbr:1,dfn:1,i:1,b:1,s:1,u:1,code:1,'var':1,samp:1,kbd:1,sup:1,sub:1,q:1,cite:1,span:1,bdo:1,bdi:1,br:1,wbr:1,ins:1,del:1,img:1,embed:1,object:1,iframe:1,map:1,area:1,script:1,noscript:1,ruby:1,video:1,audio:1,input:1,textarea:1,select:1,button:1,label:1,output:1,keygen:1,progress:1,command:1,canvas:1,time:1,meter:1,detalist:1 },
+
+ // Flow elements.
+ // F = { a:1,p:1,hr:1,pre:1,ul:1,ol:1,dl:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hgroup:1,address:1,blockquote:1,ins:1,del:1,object:1,map:1,noscript:1,section:1,nav:1,article:1,aside:1,header:1,footer:1,video:1,audio:1,figure:1,table:1,form:1,fieldset:1,menu:1,canvas:1,details:1 },
+
+ // Text can be everywhere.
+ // X( P, T );
+ // Flow elements set consists of phrasing elements set.
+ // X( F, P );
+
+ var P = {}, F = {},
+ // Intersection of flow elements set and phrasing elements set.
+ PF = { a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,'var':1,video:1,wbr:1 },
+ // F - PF (Flow Only).
+ FO = { address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1 },
+ // Metadata elements.
+ M = { command:1,link:1,meta:1,noscript:1,script:1,style:1 },
+ // Empty.
+ E = {},
+ // Text.
+ T = { '#':1 },
+
+ // Deprecated phrasing elements.
+ DP = { acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1 }, // TODO remove "style".
+ // Deprecated flow only elements.
+ DFO = { center:1,dir:1,noframes:1 };
+
+ // Phrasing elements := PF + T + DP
+ X( P, PF, T, DP );
+ // Flow elements := FO + P + DFO
+ X( F, FO, P, DFO );
+
+ var dtd = {
+ a: Y( P, { a:1,button:1 } ), // Treat as normal inline element (not a transparent one).
+ abbr: P,
+ address: F,
+ area: E,
+ article: X( { style:1 }, F ),
+ aside: X( { style:1 }, F ),
+ audio: X( { source:1,track:1 }, F ),
+ b: P,
+ base: E,
+ bdi: P,
+ bdo: P,
+ blockquote: F,
+ body: F,
+ br: E,
+ button: Y( P, { a:1,button:1 } ),
+ canvas: P, // Treat as normal inline element (not a transparent one).
+ caption: F,
+ cite: P,
+ code: P,
+ col: E,
+ colgroup: { col:1 },
+ command: E,
+ datalist: X( { option:1 }, P ),
+ dd: F,
+ del: P, // Treat as normal inline element (not a transparent one).
+ details: X( { summary:1 }, F ),
+ dfn: P,
+ div: X( { style:1 }, F ),
+ dl: { dt:1,dd:1 },
+ dt: F,
+ em: P,
+ embed: E,
+ fieldset: X( { legend:1 }, F ),
+ figcaption: F,
+ figure: X( { figcaption:1 }, F ),
+ footer: F,
+ form: F,
+ h1: P,
+ h2: P,
+ h3: P,
+ h4: P,
+ h5: P,
+ h6: P,
+ head: X( { title:1,base:1 }, M ),
+ header: F,
+ hgroup: { h1:1,h2:1,h3:1,h4:1,h5:1,h6:1 },
+ hr: E,
+ html: X( { head:1,body:1 }, F, M ), // Head and body are optional...
+ i: P,
+ iframe: T,
+ img: E,
+ input: E,
+ ins: P, // Treat as normal inline element (not a transparent one).
+ kbd: P,
+ keygen: E,
+ label: P,
+ legend: P,
+ li: F,
+ link: E,
+ map: F,
+ mark: P, // Treat as normal inline element (not a transparent one).
+ menu: X( { li:1 }, F ),
+ meta: E,
+ meter: Y( P, { meter:1 } ),
+ nav: F,
+ noscript: X( { link:1,meta:1,style:1 }, P ), // Treat as normal inline element (not a transparent one).
+ object: X( { param:1 }, P ), // Treat as normal inline element (not a transparent one).
+ ol: { li:1 },
+ optgroup: { option:1 },
+ option: T,
+ output: P,
+ p: P,
+ param: E,
+ pre: P,
+ progress: Y( P, { progress:1 } ),
+ q: P,
+ rp: P,
+ rt: P,
+ ruby: X( { rp:1,rt:1 }, P ),
+ s: P,
+ samp: P,
+ script: T,
+ section: X( { style:1 }, F ),
+ select: { optgroup:1,option:1 },
+ small: P,
+ source: E,
+ span: P,
+ strong: P,
+ style: T,
+ sub: P,
+ summary: P,
+ sup: P,
+ table: { caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1 },
+ tbody: { tr:1 },
+ td: F,
+ textarea: T,
+ tfoot: { tr:1 },
+ th: F,
+ thead: { tr:1 },
+ time: Y( P, { time:1 } ),
+ title: T,
+ tr: { th:1,td:1 },
+ track: E,
+ u: P,
+ ul: { li:1 },
+ 'var': P,
+ video: X( { source:1,track:1 }, F ),
+ wbr: E,
+
+ // Deprecated tags.
+ acronym: P,
+ applet: X( { param:1 }, F ),
+ basefont: E,
+ big: P,
+ center: F,
+ dialog: E,
+ dir: { li:1 },
+ font: P,
+ isindex: E,
+ noframes: F,
+ strike: P,
+ tt: P
+ };
+
+ X( dtd, {
+ /**
+ * List of block elements, like `<p>` or `<div>`.
+ */
+ $block: X( { audio:1,dd:1,dt:1,li:1,video:1 }, FO, DFO ),
+
+ /**
+ * List of elements that contains other blocks, in which block-level operations should be limited,
+ * this property is not intended to be checked directly, use {@link CKEDITOR.dom.elementPath#blockLimit} instead.
+ *
+ * Some examples of editor behaviors that are impacted by block limits:
+ *
+ * * Enter key never split a block-limit element;
+ * * Style application is constraint by the block limit of the current selection.
+ * * Pasted html will be inserted into the block limit of the current selection.
+ *
+ * **Note:** As an exception `<li>` is not considered as a block limit, as it's generally used as a text block.
+ */
+ $blockLimit: { article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,header:1,hgroup:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1 },
+
+ /**
+ * List of elements that contain character data.
+ */
+ $cdata: { script:1,style:1 },
+
+ /**
+ * List of elements that are accepted as inline editing hosts.
+ */
+ $editable: { address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,nav:1,p:1,pre:1,section:1 },
+
+ /**
+ * List of empty (self-closing) elements, like `<br>` or `<img>`.
+ */
+ $empty: { area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1 },
+
+ /**
+ * List of inline (`<span>` like) elements.
+ */
+ $inline: P,
+
+ /**
+ * List of list root elements.
+ */
+ $list: { dl:1,ol:1,ul:1 },
+
+ /**
+ * List of list item elements, like `<li>` or `<dd>`.
+ */
+ $listItem: { dd:1,dt:1,li:1 },
+
+ /**
+ * List of elements which may live outside body.
+ */
+ $nonBodyContent: X( { body:1,head:1,html:1 }, dtd.head ),
+
+ /**
+ * Elements that accept text nodes, but are not possible to edit into the browser.
+ */
+ $nonEditable: { applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1 },
+
+ /**
+ * Elements that are considered objects, therefore selected as a whole in the editor.
+ */
+ $object: { applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1 },
+
+ /**
+ * List of elements that can be ignored if empty, like `<b>` or `<span>`.
+ */
+ $removeEmpty: { abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,'var':1 },
+
+ /**
+ * List of elements that have tabindex set to zero by default.
+ */
+ $tabIndex: { a:1,area:1,button:1,input:1,object:1,select:1,textarea:1 },
+
+ /**
+ * List of elements used inside the `<table>` element, like `<tbody>` or `<td>`.
+ */
+ $tableContent: { caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1 },
+
+ /**
+ * List of "transparent" elements. See [W3C's definition of "transparent" element](http://dev.w3.org/html5/markup/terminology.html#transparent).
+ */
+ $transparent: { a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1 },
+
+ /**
+ * List of elements that are not to exist standalone that must live under it's parent element.
+ */
+ $intermediate: { caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1 }
+ } );
+
+ return dtd;
+})();
+
+// PACKAGER_RENAME( CKEDITOR.dtd )
diff --git a/devel/third-party/ckeditor/core/editable.js b/devel/third-party/ckeditor/core/editable.js
new file mode 100644
index 0000000..f32b9b6
--- /dev/null
+++ b/devel/third-party/ckeditor/core/editable.js
@@ -0,0 +1,1662 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ /**
+ * Editable class which provides all editing related activities by
+ * the `contenteditable` element, dynamically get attached to editor instance.
+ *
+ * @class CKEDITOR.editable
+ * @extends CKEDITOR.dom.element
+ */
+ CKEDITOR.editable = CKEDITOR.tools.createClass({
+ base: CKEDITOR.dom.element,
+ /**
+ * The constructor hold only generic editable creation logic that are commonly shared among all different editable elements.
+ *
+ * @constructor Creates an editable class instance.
+ * @param {CKEDITOR.editor} editor The editor instance on which the editable operates.
+ * @param {HTMLElement/CKEDITOR.dom.element} element Any DOM element that been used as the editor's
+ * editing container, e.g. it could be either an HTML element with the `contenteditable` attribute
+ * set to the true that handles wysiwyg editing or a `<textarea>` element that handles source editing.
+ */
+ $: function( editor, element ) {
+ // Transform the element into a CKEDITOR.dom.element instance.
+ this.base( element.$ || element );
+
+ this.editor = editor;
+
+ /**
+ * Indicate whether the editable element has gained focus.
+ *
+ * @property {Boolean} hasFocus
+ */
+ this.hasFocus = false;
+
+ // The bootstrapping logic.
+ this.setup();
+ },
+ proto: {
+
+ focus: function() {
+ // [IE] Use instead "setActive" method to focus the editable if it belongs to
+ // the host page document, to avoid bringing an unexpected scroll.
+ this.$[ CKEDITOR.env.ie && this.getDocument().equals( CKEDITOR.document ) ? 'setActive' : 'focus' ]();
+
+ // Remedy if Safari doens't applies focus properly. (#279)
+ if ( CKEDITOR.env.safari && !this.isInline() ) {
+ var active = CKEDITOR.document.getActive();
+ if ( !active.equals( this.getWindow().getFrame() ) ) {
+ this.getWindow().focus();
+ }
+ }
+ },
+
+ /**
+ * Overrides {@link CKEDITOR.dom.element#on} to have special `focus/blur` handling.
+ * The `focusin/focusout` events are used in IE to replace regular `focus/blur` events
+ * because we want to avoid the asynchronous nature of later ones.
+ */
+ on: function( name, fn ) {
+ var args = Array.prototype.slice.call( arguments, 0 );
+
+ if ( CKEDITOR.env.ie && ( /^focus|blur$/ ).exec( name ) ) {
+ name = name == 'focus' ? 'focusin' : 'focusout';
+
+ // The "focusin/focusout" events bubbled, e.g. If there are elements with layout
+ // they fire this event when clicking in to edit them but it must be ignored
+ // to allow edit their contents. (#4682)
+ fn = isNotBubbling( fn, this );
+ args[ 0 ] = name;
+ args[ 1 ] = fn;
+ }
+
+ return CKEDITOR.dom.element.prototype.on.apply( this, args );
+ },
+
+ /**
+ * Registers an event listener that needs to be removed on detaching.
+ *
+ * @see CKEDITOR.event#on
+ */
+ attachListener: function( obj, event, fn, scope, listenerData, priority ) {
+ !this._.listeners && ( this._.listeners = [] );
+ // Register the listener.
+ var args = Array.prototype.slice.call( arguments, 1 );
+ this._.listeners.push( obj.on.apply( obj, args ) );
+ },
+
+ /**
+ * Remove all event listeners registered from {@link #attachListener}.
+ */
+ clearListeners: function() {
+ var listeners = this._.listeners;
+ // Don't get broken by this.
+ try {
+ while ( listeners.length )
+ listeners.pop().removeListener();
+ } catch ( e ) {}
+ },
+
+ /**
+ * Restore all attribution changes made by {@link #changeAttr }.
+ */
+ restoreAttrs : function() {
+ var changes = this._.attrChanges, orgVal;
+ for ( var attr in changes )
+ {
+ if ( changes.hasOwnProperty( attr ) )
+ {
+ orgVal = changes[ attr ];
+ // Restore original attribute.
+ orgVal !== null ? this.setAttribute( attr, orgVal ) : this.removeAttribute( attr );
+ }
+ }
+ },
+
+ /**
+ * Adds a CSS class name to this editable that needs to be removed on detaching.
+ *
+ * @param {String} className The class name to be added.
+ * @see CKEDITOR.dom.element#addClass
+ */
+ attachClass: function( cls ) {
+ var classes = this.getCustomData( 'classes' );
+ if ( !this.hasClass( cls ) ) {
+ !classes && ( classes = [] ), classes.push( cls );
+ this.setCustomData( 'classes', classes );
+ this.addClass( cls );
+ }
+ },
+
+ /**
+ * Make an attribution change that would be reverted on editable detaching.
+ * @param {String} attr The attribute name to be changed.
+ * @param {String} val The value of specified attribute.
+ */
+ changeAttr : function( attr, val ) {
+
+ var orgVal = this.getAttribute( attr );
+ if ( val !== orgVal )
+ {
+ !this._.attrChanges && ( this._.attrChanges = {} );
+
+ // Saved the original attribute val.
+ if ( !( attr in this._.attrChanges ) )
+ this._.attrChanges[ attr ] = orgVal;
+
+ this.setAttribute( attr, val );
+ }
+ },
+
+ /**
+ * @see CKEDITOR.editor#insertHtml
+ */
+ insertHtml: function( data, mode ) {
+ beforeInsert( this );
+ // Default mode is 'html'.
+ insert( this, mode == 'text' ? 'text' : 'html', data );
+ },
+
+ /**
+ * @see CKEDITOR.editor#insertText
+ */
+ insertText: function( text ) {
+ beforeInsert( this );
+
+ var editor = this.editor,
+ mode = editor.getSelection().getStartElement().hasAscendant( 'pre', true ) ? CKEDITOR.ENTER_BR : editor.config.enterMode,
+ isEnterBrMode = mode == CKEDITOR.ENTER_BR,
+ tools = CKEDITOR.tools;
+
+ // CRLF -> LF
+ var html = tools.htmlEncode( text.replace( /\r\n/g, '\n' ) );
+
+ // Tab ->   x 4;
+ html = html.replace( /\t/g, ' ' );
+
+ var paragraphTag = mode == CKEDITOR.ENTER_P ? 'p' : 'div';
+
+ // Two line-breaks create one paragraphing block.
+ if ( !isEnterBrMode ) {
+ var duoLF = /\n{2}/g;
+ if ( duoLF.test( html ) )
+ {
+ var openTag = '<' + paragraphTag + '>', endTag = '</' + paragraphTag + '>';
+ html = openTag + html.replace( duoLF, function() { return endTag + openTag; } ) + endTag;
+ }
+ }
+
+ // One <br> per line-break.
+ html = html.replace( /\n/g, '<br>' );
+
+ // Compensate padding <br> at the end of block, avoid loosing them during insertion.
+ if ( !isEnterBrMode ) {
+ html = html.replace( new RegExp( '<br>(?=</' + paragraphTag + '>)' ), function( match ) {
+ return tools.repeat( match, 2 );
+ });
+ }
+
+ // Preserve spaces at the ends, so they won't be lost after insertion (merged with adjacent ones).
+ html = html.replace( /^ | $/g, ' ' );
+
+ // Finally, preserve whitespaces that are to be lost.
+ html = html.replace( /(>|\s) /g, function( match, before ) {
+ return before + ' ';
+ } ).replace( / (?=<)/g, ' ' );
+
+ insert( this, 'text', html );
+ },
+
+ /**
+ * @see CKEDITOR.editor#insertElement
+ */
+ insertElement: function( element ) {
+ beforeInsert( this );
+
+ var editor = this.editor,
+ enterMode = editor.config.enterMode,
+ selection = editor.getSelection(),
+ ranges = selection.getRanges(),
+ elementName = element.getName(),
+ isBlock = CKEDITOR.dtd.$block[ elementName ];
+
+ var range, clone, lastElement;
+
+ for ( var i = ranges.length - 1; i >= 0; i-- ) {
+ range = ranges[ i ];
+
+ if ( !range.checkReadOnly() ) {
+ // Remove the original contents, merge split nodes.
+ range.deleteContents( 1 );
+
+ clone = !i && element || element.clone( 1 );
+
+ // If we're inserting a block at dtd-violated position, split
+ // the parent blocks until we reach blockLimit.
+ var current, dtd;
+ if ( isBlock ) {
+ while ( ( current = range.getCommonAncestor( 0, 1 ) ) &&
+ ( dtd = CKEDITOR.dtd[ current.getName() ] ) &&
+ !( dtd && dtd[ elementName ] ) ) {
+ // Split up inline elements.
+ if ( current.getName() in CKEDITOR.dtd.span )
+ range.splitElement( current );
+ // If we're in an empty block which indicate a new paragraph,
+ // simply replace it with the inserting block.(#3664)
+ else if ( range.checkStartOfBlock() && range.checkEndOfBlock() ) {
+ range.setStartBefore( current );
+ range.collapse( true );
+ current.remove();
+ } else
+ range.splitBlock( enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p', editor.editable() );
+ }
+ }
+
+ // Insert the new node.
+ range.insertNode( clone );
+
+ // Save the last element reference so we can make the
+ // selection later.
+ if ( !lastElement )
+ lastElement = clone;
+ }
+ }
+
+ if ( lastElement ) {
+ range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
+
+ // If we're inserting a block element, the new cursor position must be
+ // optimized. (#3100,#5436,#8950)
+ if ( isBlock ) {
+
+ var next = lastElement.getNext( isNotEmpty );
+
+ if ( next && next.type == CKEDITOR.NODE_ELEMENT &&
+ next.is( CKEDITOR.dtd.$block ) ) {
+
+ // If the next one is a text block, move cursor to the start of it's content.
+ if ( next.getDtd()[ '#' ] )
+ range.moveToElementEditStart( next );
+ // Otherwise move cursor to the before end of the last element.
+ else
+ range.moveToElementEditEnd( lastElement );
+ }
+ // Open a new line if the block is inserted at the end of parent.
+ else if ( !next && enterMode != CKEDITOR.ENTER_BR ) {
+ next = range.fixBlock( true, enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' );
+ range.moveToElementEditStart( next );
+ }
+ }
+ }
+
+ selection.selectRanges( [ range ] );
+
+ // Do not scroll after inserting, because Opera may fail on certain element (e.g. iframe/iframe.html).
+ afterInsert( this, CKEDITOR.env.opera );
+ },
+
+ /**
+ * @see CKEDITOR.editor#setData
+ */
+ setData: function( data, isSnapshot ) {
+ if ( !isSnapshot && this.editor.dataProcessor )
+ data = this.editor.dataProcessor.toHtml( data );
+
+ this.setHtml( data );
+ this.editor.fire( 'dataReady' );
+ },
+
+ /**
+ * @see CKEDITOR.editor#getData
+ */
+ getData: function( isSnapshot ) {
+ var data = this.getHtml();
+
+ if ( !isSnapshot && this.editor.dataProcessor )
+ data = this.editor.dataProcessor.toDataFormat( data );
+
+ return data;
+ },
+
+ /**
+ * Change the read-only state on this editable.
+ *
+ * @param {Boolean} isReadOnly
+ */
+ setReadOnly: function( isReadOnly ) {
+ this.setAttribute( 'contenteditable', !isReadOnly );
+ },
+
+ /**
+ * Detach this editable object from the DOM (remove classes, listeners, etc.)
+ */
+ detach: function() {
+ // Cleanup the element.
+ this.removeClass( 'cke_editable' );
+
+ // Save the editor reference which will be lost after
+ // calling detach from super class.
+ var editor = this.editor;
+
+ this._.detach();
+
+ delete editor.document;
+ delete editor.window;
+ },
+
+ /**
+ * Check if the editable is one of the host page element, indicates the
+ * an inline editing environment.
+ *
+ * @returns {Boolean}
+ */
+ isInline : function () {
+ return this.getDocument().equals( CKEDITOR.document );
+ },
+
+ /**
+ * Editable element bootstrapping.
+ *
+ * @private
+ */
+ setup: function() {
+ var editor = this.editor;
+
+ // Handle the load/read of editor data/snapshot.
+ this.attachListener( editor, 'beforeGetData', function() {
+ var data = this.getData();
+
+ // Post processing html output of wysiwyg editable.
+ if ( !this.is( 'textarea' ) ) {
+ // Reset empty if the document contains only one empty paragraph.
+ if ( editor.config.ignoreEmptyParagraph !== false )
+ data = data.replace( emptyParagraphRegexp, function( match, lookback ) { return lookback; } );
+ }
+
+ editor.setData( data, null, 1 );
+ }, this );
+
+ this.attachListener( editor, 'getSnapshot', function( evt ) {
+ evt.data = this.getData( 1 );
+ }, this );
+
+ this.attachListener( editor, 'afterSetData', function() {
+ this.setData( editor.getData( 1 ) );
+ }, this );
+ this.attachListener( editor, 'loadSnapshot', function( evt ) {
+ this.setData( evt.data, 1 );
+ }, this );
+
+ // Delegate editor focus/blur to editable.
+ this.attachListener( editor, 'beforeFocus', function() {
+ var sel = editor.getSelection(),
+ ieSel = sel && sel.getNative();
+
+ // IE considers control-type element as separate
+ // focus host when selected, avoid destroying the
+ // selection in such case. (#5812) (#8949)
+ if ( ieSel && ieSel.type == 'Control' )
+ return;
+
+ this.focus();
+ }, this );
+
+ this.attachListener( editor, 'insertHtml', function( evt ) {
+ this.insertHtml( evt.data.dataValue, evt.data.mode );
+ }, this );
+ this.attachListener( editor, 'insertElement', function( evt ) {
+ this.insertElement( evt.data );
+ }, this );
+ this.attachListener( editor, 'insertText', function( evt ) {
+ this.insertText( evt.data );
+ }, this );
+
+ // Update editable state.
+ this.setReadOnly( editor.readOnly );
+
+ // The editable class.
+ this.attachClass( 'cke_editable' );
+
+ // The element mode css class.
+ this.attachClass( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ?
+ 'cke_editable_inline' :
+ editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ||
+ editor.elementMode == CKEDITOR.ELEMENT_MODE_APPENDTO ?
+ 'cke_editable_themed' : ''
+ );
+
+ this.attachClass( 'cke_contents_' + editor.config.contentsLangDirection );
+
+ // Setup editor keystroke handlers on this element.
+ var keystrokeHandler = editor.keystrokeHandler;
+ keystrokeHandler.blockedKeystrokes[ 8 ] = editor.readOnly;
+ editor.keystrokeHandler.attach( this );
+
+ // Update focus states.
+ this.on( 'blur', function( evt ) {
+ // Opera might raise undesired blur event on editable, check if it's
+ // really blurred, otherwise cancel the event. (#9459)
+ if ( CKEDITOR.env.opera ) {
+ var active = CKEDITOR.document.getActive();
+ if ( active.equals( this.isInline() ? this : this.getWindow().getFrame() ) ) {
+ evt.cancel();
+ return;
+ }
+ }
+
+ this.hasFocus = false;
+ }, null, null, -1 );
+
+ this.on( 'focus', function() {
+ this.hasFocus = true;
+ }, null, null, -1 );
+
+ // Register to focus manager.
+ editor.focusManager.add( this );
+
+ // Inherit the initial focus on editable element.
+ if ( this.equals( CKEDITOR.document.getActive() ) ) {
+ this.hasFocus = true;
+ // Pending until this editable has attached.
+ editor.once( 'contentDom', function() {
+ editor.focusManager.focus();
+ });
+ }
+
+ // Apply tab index on demand, with original direction saved.
+ if ( this.isInline() ) {
+
+ // tabIndex of the editable is different than editor's one.
+ // Update the attribute of the editable.
+ this.changeAttr( 'tabindex', editor.tabIndex );
+ }
+
+ // The above is all we'll be doing for a <textarea> editable.
+ if ( this.is( 'textarea' ) )
+ return;
+
+ // The DOM document which the editing acts upon.
+ editor.document = this.getDocument();
+ editor.window = this.getWindow();
+
+ var doc = editor.document;
+
+ this.changeAttr( 'spellcheck', !editor.config.disableNativeSpellChecker );
+
+ // Apply contents direction on demand, with original direction saved.
+ var dir = editor.config.contentsLangDirection;
+ if ( this.getDirection( 1 ) != dir )
+ this.changeAttr( 'dir', dir );
+
+ // Create the content stylesheet for this document.
+ var styles = CKEDITOR.getCss();
+ if ( styles ) {
+ var head = doc.getHead();
+ if ( !head.getCustomData( 'stylesheet' ) ) {
+ var sheet = doc.appendStyleText( styles );
+ sheet = new CKEDITOR.dom.element( sheet.ownerNode || sheet.owningElement );
+ head.setCustomData( 'stylesheet', sheet );
+ sheet.data( 'cke-temp', 1 );
+ }
+ }
+
+ // Update the stylesheet sharing count.
+ var ref = doc.getCustomData( 'stylesheet_ref' ) || 0;
+ doc.setCustomData( 'stylesheet_ref', ref + 1 );
+
+ // Pass this configuration to styles system.
+ this.setCustomData( 'cke_includeReadonly', !editor.config.disableReadonlyStyling );
+
+ // Prevent the browser opening read-only links. (#6032)
+ this.attachListener( this, 'click', function( ev ) {
+ ev = ev.data;
+ var target = ev.getTarget();
+ if ( target.is( 'a' ) && ev.$.button != 2 && target.isReadOnly() )
+ ev.preventDefault();
+ });
+
+ // Override keystrokes which should have deletion behavior
+ // on fully selected element . (#4047) (#7645)
+ this.attachListener( editor, 'key', function( evt ) {
+ if ( editor.readOnly )
+ return true;
+
+ var keyCode = evt.data.keyCode, isHandled;
+
+ // Backspace OR Delete.
+ if ( keyCode in { 8:1,46:1 } ) {
+ var sel = editor.getSelection(),
+ selected,
+ range = sel.getRanges()[ 0 ],
+ path = range.startPath(),
+ block,
+ parent,
+ next,
+ rtl = keyCode == 8;
+
+ // Remove the entire list/table on fully selected content. (#7645)
+ if ( ( selected = getSelectedTableList( sel ) ) ) {
+ // Make undo snapshot.
+ editor.fire( 'saveSnapshot' );
+
+ // Delete any element that 'hasLayout' (e.g. hr,table) in IE8 will
+ // break up the selection, safely manage it here. (#4795)
+ range.moveToPosition( selected, CKEDITOR.POSITION_BEFORE_START );
+ // Remove the control manually.
+ selected.remove();
+ range.select();
+
+ editor.fire( 'saveSnapshot' );
+
+ isHandled = 1;
+ }
+ else if ( range.collapsed )
+ {
+ // Handle the following special cases: (#6217)
+ // 1. Del/Backspace key before/after table;
+ // 2. Backspace Key after start of table.
+ if ( ( block = path.block ) &&
+ range[ rtl ? 'checkStartOfBlock' : 'checkEndOfBlock' ]() &&
+ ( next = block[ rtl ? 'getPrevious' : 'getNext' ]( isNotWhitespace ) ) &&
+ next.is( 'table' ) )
+ {
+ editor.fire( 'saveSnapshot' );
+
+ // Remove the current empty block.
+ if ( range[ rtl ? 'checkEndOfBlock' : 'checkStartOfBlock' ]() )
+ block.remove();
+
+ // Move cursor to the beginning/end of table cell.
+ range[ 'moveToElementEdit' + ( rtl ? 'End' : 'Start' ) ]( next );
+ range.select();
+
+ editor.fire( 'saveSnapshot' );
+
+ isHandled = 1;
+ }
+ else if ( path.blockLimit && path.blockLimit.is( 'td' ) &&
+ ( parent = path.blockLimit.getAscendant( 'table' ) ) &&
+ range.checkBoundaryOfElement( parent, rtl ? CKEDITOR.START : CKEDITOR.END ) &&
+ ( next = parent[ rtl ? 'getPrevious' : 'getNext' ]( isNotWhitespace ) ) )
+ {
+ editor.fire( 'saveSnapshot' );
+
+ // Move cursor to the end of previous block.
+ range[ 'moveToElementEdit' + ( rtl ? 'End' : 'Start' ) ]( next );
+
+ // Remove any previous empty block.
+ if ( range.checkStartOfBlock() && range.checkEndOfBlock() )
+ next.remove();
+ else
+ range.select();
+
+ editor.fire( 'saveSnapshot' );
+
+ isHandled = 1;
+ }
+ // BACKSPACE/DEL pressed at the start/end of table cell.
+ else if ( ( parent = path.contains( [ 'td', 'th', 'caption' ] ) ) &&
+ range.checkBoundaryOfElement( parent, rtl ? CKEDITOR.START : CKEDITOR.END ) ) {
+ next = parent[ rtl ? 'getPreviousSourceNode' : 'getNextSourceNode' ]( 1, CKEDITOR.NODE_ELEMENT );
+ if ( next && !next.isReadOnly() && range.root.contains( next ) ) {
+ range[ rtl ? 'moveToElementEditEnd' : 'moveToElementEditStart' ]( next );
+ range.select();
+ isHandled = 1;
+ }
+ }
+ }
+
+ }
+
+ return !isHandled;
+ });
+
+ // Prevent automatic submission in IE #6336
+ CKEDITOR.env.ie && this.attachListener( this, 'click', blockInputClick );
+
+ // Gecko/Webkit need some help when selecting control type elements. (#3448)
+ if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera ) ) {
+ this.attachListener( this, 'mousedown', function( ev ) {
+ var control = ev.data.getTarget();
+ if ( control.is( 'img', 'hr', 'input', 'textarea', 'select' ) ) {
+ editor.getSelection().selectElement( control );
+
+ // Prevent focus from stealing from the editable. (#9515)
+ if ( control.is( 'input', 'textarea', 'select' ) )
+ ev.data.preventDefault();
+ }
+ });
+ }
+
+ // Prevent right click from selecting an empty block even
+ // when selection is anchored inside it. (#5845)
+ if ( CKEDITOR.env.gecko ) {
+ this.attachListener( this, 'mouseup', function( ev ) {
+ if ( ev.data.$.button == 2 ) {
+ var target = ev.data.getTarget();
+
+ if ( !target.getOuterHtml().replace( emptyParagraphRegexp, '' ) ) {
+ var range = editor.createRange();
+ range.moveToElementEditStart( target );
+ range.select( true );
+ }
+ }
+ });
+ }
+
+ // Webkit: avoid from editing form control elements content.
+ if ( CKEDITOR.env.webkit ) {
+ // Prevent from tick checkbox/radiobox/select
+ this.attachListener( this, 'click', function( ev ) {
+ if ( ev.data.getTarget().is( 'input', 'select' ) )
+ ev.data.preventDefault();
+ });
+
+ // Prevent from editig textfield/textarea value.
+ this.attachListener( this, 'mouseup', function( ev ) {
+ if ( ev.data.getTarget().is( 'input', 'textarea' ) )
+ ev.data.preventDefault();
+ });
+ }
+ }
+ },
+
+ _: {
+ detach: function() {
+ // Update the editor cached data with current data.
+ this.editor.setData( this.editor.getData(), 0, 1 );
+
+ this.clearListeners();
+ this.restoreAttrs();
+
+ // Cleanup our custom classes.
+ var classes;
+ if ( ( classes = this.removeCustomData( 'classes' ) ) ) {
+ while ( classes.length )
+ this.removeClass( classes.pop() );
+ }
+
+ // Remove contents stylesheet from document if it's the last usage.
+ var doc = this.getDocument(),
+ head = doc.getHead();
+ if ( head.getCustomData( 'stylesheet' ) ) {
+ var refs = doc.getCustomData( 'stylesheet_ref' );
+ if ( !( --refs ) ) {
+ doc.removeCustomData( 'stylesheet_ref' );
+ var sheet = head.removeCustomData( 'stylesheet' );
+ sheet.remove();
+ } else
+ doc.setCustomData( 'stylesheet_ref', refs );
+ }
+
+ // Free up the editor reference.
+ delete this.editor;
+ }
+ }
+ });
+
+ /**
+ * Create, retrieve or detach an editable element of the editor,
+ * this method should always be used instead of calling directly {@link CKEDITOR.editable}.
+ *
+ * @method editable
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.dom.element/CKEDITOR.editable} elementOrEditable The
+ * DOM element to become the editable or a {@link CKEDITOR.editable} object.
+ */
+ CKEDITOR.editor.prototype.editable = function( element ) {
+ var editable = this._.editable;
+
+ // This editor has already associated with
+ // an editable element, silently fails.
+ if ( editable && element )
+ return 0;
+
+ if ( arguments.length ) {
+ editable = this._.editable = element ? ( element instanceof CKEDITOR.editable ? element : new CKEDITOR.editable( this, element ) ) :
+ // Detach the editable from editor.
+ ( editable && editable.detach(), null );
+ }
+
+ // Just retrieve the editable.
+ return editable;
+ };
+
+ // Auto-fixing block-less content by wrapping paragraph (#3190), prevent
+ // non-exitable-block by padding extra br.(#3189)
+ // Returns truly value when dom was changed, falsy otherwise.
+ function fixDom( evt ) {
+ var editor = evt.editor,
+ editable = editor.editable(),
+ path = evt.data.path,
+ blockLimit = path.blockLimit,
+ selection = evt.data.selection,
+ range = selection.getRanges()[ 0 ],
+ enterMode = editor.config.enterMode;
+
+ if ( CKEDITOR.env.gecko ) {
+ // v3: check if this is needed.
+ // activateEditing( editor );
+
+ // Ensure bogus br could help to move cursor (out of styles) to the end of block. (#7041)
+ var pathBlock = path.block || path.blockLimit || path.root,
+ lastNode = pathBlock && pathBlock.getLast( isNotEmpty );
+
+ // Check some specialities of the current path block:
+ // 1. It is really displayed as block; (#7221)
+ // 2. It doesn't end with one inner block; (#7467)
+ // 3. It doesn't have bogus br yet.
+ if ( pathBlock && pathBlock.isBlockBoundary() &&
+ !( lastNode && lastNode.type == CKEDITOR.NODE_ELEMENT && lastNode.isBlockBoundary() ) &&
+ !pathBlock.is( 'pre' ) && !pathBlock.getBogus() ) {
+
+ pathBlock.appendBogus();
+ }
+ }
+
+ // When we're in block enter mode, a new paragraph will be established
+ // to encapsulate inline contents inside editable. (#3657)
+ if ( editor.config.autoParagraph !== false &&
+ enterMode != CKEDITOR.ENTER_BR && range.collapsed &&
+ editable.equals( blockLimit ) && !path.block ) {
+
+ var testRng = range.clone();
+ testRng.enlarge( CKEDITOR.ENLARGE_BLOCK_CONTENTS );
+ var walker = new CKEDITOR.dom.walker( testRng );
+ walker.guard = function( node ) {
+ return !isNotEmpty( node ) ||
+ node.type == CKEDITOR.NODE_COMMENT ||
+ node.isReadOnly();
+ };
+
+ // 1. Inline content discovered under cursor;
+ // 2. Empty editable.
+ if ( !walker.checkForward() ||
+ testRng.checkStartOfBlock() && testRng.checkEndOfBlock() ) {
+
+ var fixedBlock = range.fixBlock( true, editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' );
+
+ // For IE, we should remove any filler node which was introduced before.
+ if ( CKEDITOR.env.ie ) {
+ var first = fixedBlock.getFirst( isNotEmpty );
+ if ( first && isNbsp( first ) ) {
+ first.remove();
+ }
+ }
+
+ range.select();
+ // Cancel this selection change in favor of the next (correct). (#6811)
+ evt.cancel();
+ }
+ }
+ }
+
+ function blockInputClick( evt ) {
+ var element = evt.data.getTarget();
+ if ( element.is( 'input' ) ) {
+ var type = element.getAttribute( 'type' );
+ if ( type == 'submit' || type == 'reset' )
+ evt.data.preventDefault();
+ }
+ }
+
+ function isBlankParagraph( block ) {
+ return block.getOuterHtml().match( emptyParagraphRegexp );
+ }
+
+ function isNotEmpty( node ) {
+ return isNotWhitespace( node ) && isNotBookmark( node );
+ }
+
+ function isNbsp( node ) {
+ return node.type == CKEDITOR.NODE_TEXT && CKEDITOR.tools.trim( node.getText() ).match( /^(?: |\xa0)$/ );
+ }
+
+ // Elements that could blink the cursor anchoring beside it, like hr, page-break. (#6554)
+ function nonEditable( element ) {
+ return element.isBlockBoundary() && CKEDITOR.dtd.$empty[ element.getName() ];
+ }
+
+ function isNotBubbling( fn, src ) {
+ return function( evt ) {
+ var other = CKEDITOR.dom.element.get( evt.data.$.toElement || evt.data.$.fromElement || evt.data.$.relatedTarget );
+ if ( ! ( other && ( src.equals( other ) || src.contains( other ) ) ) )
+ fn.call( this, evt );
+ };
+ }
+
+ // Check if the entire table/list contents is selected.
+ function getSelectedTableList( sel ) {
+ var selected,
+ range = sel.getRanges()[ 0 ],
+ editable = sel.root,
+ path = range.startPath(),
+ structural = { table:1,ul:1,ol:1,dl:1 };
+
+ var isBogus = CKEDITOR.dom.walker.bogus();
+
+ if ( path.contains( structural ) ) {
+ // Enlarging the start boundary.
+ var walkerRng = range.clone();
+ walkerRng.collapse( 1 );
+ walkerRng.setStartAt( editable, CKEDITOR.POSITION_AFTER_START );
+
+ var walker = new CKEDITOR.dom.walker( walkerRng ),
+ // Check the range is at the inner boundary of the structural element.
+ guard = function( walker, isEnd ) {
+ return function( node, isWalkOut ) {
+ if ( isWalkOut && node.type == CKEDITOR.NODE_ELEMENT && node.is( structural ) )
+ selected = node;
+
+ if ( isNotEmpty( node ) && !isWalkOut && !( isEnd && isBogus( node ) ) )
+ return false;
+ };
+ };
+
+ walker.guard = guard( walker );
+ walker.checkBackward();
+ if ( selected ) {
+ walkerRng = range.clone();
+ walkerRng.collapse();
+ walkerRng.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );
+ walker = new CKEDITOR.dom.walker( walkerRng );
+ walker.guard = guard( walker, 1 );
+ selected = 0;
+ walker.checkForward();
+ return selected;
+ }
+ }
+
+ return null;
+ }
+
+
+ // Matching an empty paragraph at the end of document.
+ var emptyParagraphRegexp = /(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi;
+
+ var isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
+ isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true );
+
+ CKEDITOR.on( 'instanceLoaded', function( evt ) {
+ var editor = evt.editor;
+
+ // and flag that the element was locked by our code so it'll be editable by the editor functions (#6046).
+ editor.on( 'insertElement', function( evt ) {
+ var element = evt.data;
+ if ( element.type == CKEDITOR.NODE_ELEMENT && ( element.is( 'input' ) || element.is( 'textarea' ) ) ) {
+ // // The element is still not inserted yet, force attribute-based check.
+ if ( element.getAttribute( 'contentEditable' ) != "false" )
+ element.data( 'cke-editable', element.hasAttribute( 'contenteditable' ) ? 'true' : '1' );
+ element.setAttribute( 'contentEditable', false );
+ }
+ });
+
+ editor.on( 'selectionChange', function( evt ) {
+ if ( editor.readOnly )
+ return;
+
+ // Auto fixing on some document structure weakness to enhance usabilities. (#3190 and #3189)
+ var sel = editor.getSelection();
+ // Do it only when selection is not locked. (#8222)
+ if ( sel && !sel.isLocked ) {
+ var isDirty = editor.checkDirty();
+
+ // Lock undoM before touching DOM to prevent
+ // recording these changes as separate snapshot.
+ editor.fire( 'lockSnapshot' );
+ fixDom( evt );
+ editor.fire( 'unlockSnapshot' );
+
+ !isDirty && editor.resetDirty();
+ }
+ });
+ });
+
+
+ CKEDITOR.on( 'instanceCreated', function( evt ) {
+ var editor = evt.editor;
+
+ editor.on( 'mode', function() {
+
+ var editable = editor.editable();
+
+ // Setup proper ARIA roles and properties for inline editable, framed
+ // editable is instead handled by plugin.
+ if ( editable && editable.isInline() ) {
+
+ var ariaLabel = this.lang.editor + ', ' + this.name;
+
+ editable.changeAttr( 'role', 'textbox' );
+ editable.changeAttr( 'aria-label', ariaLabel );
+ editable.changeAttr( 'title', ariaLabel );
+
+ // Put the voice label in different spaces, depending on element mode, so
+ // the DOM element get auto detached on mode reload or editor destroy.
+ var ct = this.ui.space( this.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? 'top' : 'contents' );
+ if ( ct ) {
+ var ariaDescId = CKEDITOR.tools.getNextId(),
+ desc = CKEDITOR.dom.element.createFromHtml( '<span id="' + ariaDescId + '" class="cke_voice_label">' + this.lang.common.editorHelp + '</span>' );
+ ct.append( desc );
+ editable.changeAttr( 'aria-describedby', ariaDescId );
+ }
+ }
+ });
+ });
+
+ // #9222: Show text cursor in Gecko.
+ // Show default cursor over control elements on all non-IEs.
+ CKEDITOR.addCss( '.cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}' );
+
+ //
+ // Functions related to insertXXX methods
+ //
+ var insert = (function() {
+ 'use strict';
+
+ var DTD = CKEDITOR.dtd;
+
+ // Inserts the given (valid) HTML into the range position (with range content deleted),
+ // guarantee it's result to be a valid DOM tree.
+ function insert( editable, type, data ) {
+ var editor = editable.editor,
+ doc = editable.getDocument(),
+ selection = editor.getSelection(),
+ // HTML insertion only considers the first range.
+ // Note: getRanges will be overwritten for tests since we want to test
+ // custom ranges and bypass native selections.
+ // TODO what should we do with others? Remove?
+ range = selection.getRanges()[ 0 ];
+
+ // Check range spans in non-editable.
+ if ( range.checkReadOnly() )
+ return;
+
+ // RANGE PREPARATIONS
+
+ var path = new CKEDITOR.dom.elementPath( range.startContainer, range.root ),
+ // Let root be the nearest block that's impossible to be split
+ // during html processing.
+ blockLimit = path.blockLimit || range.root,
+ // The "state" value.
+ that = {
+ type: type,
+ editable: editable,
+ editor: editor,
+ range: range,
+ blockLimit: blockLimit,
+ // During pre-processing / preparations startContainer of affectedRange should be placed
+ // in this element in which inserted or moved (in case when we merge blocks) content
+ // could create situation that will need merging inline elements.
+ // Examples:
+ // <div><b>A</b>^B</div> + <b>C</b> => <div><b>A</b><b>C</b>B</div> - affected container is <div>.
+ // <p><b>A[B</b></p><p><b>C]D</b></p> + E => <p><b>AE</b></p><p><b>D</b></p> =>
+ // <p><b>AE</b><b>D</b></p> - affected container is <p> (in text mode).
+ mergeCandidates: [],
+ zombies: []
+ };
+
+ prepareRangeToDataInsertion( that );
+
+ // DATA PROCESSING
+
+ // Select range and stop execution.
+ if ( data ) {
+ processDataForInsertion( that, data );
+
+ // DATA INSERTION
+ insertDataIntoRange( that );
+ }
+
+ // FINAL CLEANUP
+ // Set final range position and clean up.
+
+ cleanupAfterInsertion( that );
+
+ // Make the final range selection.
+ range.select();
+
+ afterInsert( editable );
+ }
+
+ // Prepare range to its data deletion.
+ // Delete its contents.
+ // Prepare it to insertion.
+ function prepareRangeToDataInsertion( that ) {
+ var range = that.range,
+ mergeCandidates = that.mergeCandidates,
+ node, marker, path, startPath, endPath, previous, bm;
+
+ // If range starts in inline element then insert a marker, so empty
+ // inline elements won't be removed while range.deleteContents
+ // and we will be able to move range back into this element.
+ // E.g. 'aa<b>[bb</b>]cc' -> (after deleting) 'aa<b><span/></b>cc'
+ if ( that.type == 'text' && range.shrink( CKEDITOR.SHRINK_ELEMENT, true, false ) ) {
+ marker = CKEDITOR.dom.element.createFromHtml( '<span> </span>', range.document );
+ range.insertNode( marker );
+ range.setStartAfter( marker );
+ }
+
+ // By using path we can recover in which element was startContainer
+ // before deleting contents.
+ // Start and endPathElements will be used to squash selected blocks, after removing
+ // selection contents. See rule 5.
+ startPath = new CKEDITOR.dom.elementPath( range.startContainer );
+ that.endPath = endPath = new CKEDITOR.dom.elementPath( range.endContainer );
+
+ if ( !range.collapsed ) {
+ // Anticipate the possibly empty block at the end of range after deletion.
+ node = endPath.block || endPath.blockLimit;
+ var ancestor = range.getCommonAncestor();
+ if ( node && !( node.equals( ancestor ) || node.contains( ancestor ) ) &&
+ range.checkEndOfBlock() ) {
+ that.zombies.push( node );
+ }
+
+ range.deleteContents();
+ }
+
+ // Rule 4.
+ // Move range into the previous block.
+ while ( ( previous = getRangePrevious( range ) ) && checkIfElement( previous ) && previous.isBlockBoundary() &&
+ // Check if previousNode was parent of range's startContainer before deleteContents.
+ startPath.contains( previous ) ) {
+ range.moveToPosition( previous, CKEDITOR.POSITION_BEFORE_END );
+ }
+
+ // Rule 5.
+ mergeAncestorElementsOfSelectionEnds( range, that.blockLimit, startPath, endPath );
+
+ // Rule 1.
+ if ( marker ) {
+ // If marker was created then move collapsed range into its place.
+ range.setEndBefore( marker );
+ range.collapse();
+ marker.remove();
+ }
+
+ // Split inline elements so HTML will be inserted with its own styles.
+ path = range.startPath();
+ if ( ( node = path.contains( isInline, false, 1 ) ) ) {
+ range.splitElement( node );
+ that.inlineStylesRoot = node;
+ that.inlineStylesPeak = path.lastElement;
+ }
+
+ // Record inline merging candidates for later cleanup in place.
+ bm = range.createBookmark();
+
+ // 1. Inline siblings.
+ node = bm.startNode.getPrevious( isNotEmpty );
+ node && checkIfElement( node ) && isInline( node ) && mergeCandidates.push( node );
+ node = bm.startNode.getNext( isNotEmpty );
+ node && checkIfElement( node ) && isInline( node ) && mergeCandidates.push( node );
+
+ // 2. Inline parents.
+ node = bm.startNode;
+ while ( ( node = node.getParent() ) && isInline( node ) )
+ mergeCandidates.push( node );
+
+ range.moveToBookmark( bm );
+ }
+
+ function processDataForInsertion( that, data ) {
+ var range = that.range;
+
+ // Rule 8. - wrap entire data in inline styles.
+ // (e.g. <p><b>x^z</b></p> + <p>a</p><p>b</p> -> <b><p>a</p><p>b</p></b>)
+ // Incorrect tags order will be fixed by htmlDataProcessor.
+ if ( that.type == 'text' && that.inlineStylesRoot )
+ data = wrapDataWithInlineStyles( data, that );
+
+
+ var context = that.blockLimit.getName();
+
+ // Wrap data to be inserted, to avoid loosing leading whitespaces
+ // when going through the below procedure.
+ if ( /^\s+|\s+$/.test( data ) && 'span' in CKEDITOR.dtd[ context ] ) {
+ var protect = '<span data-cke-marker="1"> </span>';
+ data = protect + data + protect;
+ }
+
+ // Process the inserted html, in context of the insertion root.
+ // Don't use the "fix for body" feature as auto paragraphing must
+ // be handled during insertion.
+ data = that.editor.dataProcessor.toHtml( data, null, false );
+
+
+ // Build the node list for insertion.
+ var doc = range.document,
+ wrapper = doc.createElement( 'body' );
+
+ wrapper.setHtml( data );
+
+ // Eventually remove the temporaries.
+ if ( protect ) {
+ wrapper.getFirst().remove();
+ wrapper.getLast().remove();
+ }
+
+ // Rule 7.
+ var block = range.startPath().block;
+ if ( block && // Apply when there exists path block after deleting selection's content...
+ !( block.getChildCount() == 1 && block.getBogus() ) ) { // ... and the only content of this block isn't a bogus.
+ stripBlockTagIfSingleLine( wrapper );
+ }
+
+ that.dataWrapper = wrapper;
+ }
+
+ function insertDataIntoRange( that ) {
+ var range = that.range,
+ doc = range.document,
+ path,
+ blockLimit = that.blockLimit,
+ nodesData, nodeData, node,
+ nodeIndex = 0,
+ bogus,
+ bogusNeededBlocks = [],
+ pathBlock, fixBlock,
+ splittingContainer = 0,
+ dontMoveCaret = 0,
+ insertionContainer, toSplit, newContainer,
+ startContainer = range.startContainer,
+ endContainer = that.endPath.elements[ 0 ],
+ filteredNodes,
+ // If endContainer was merged into startContainer: <p>a[b</p><p>c]d</p>
+ // or it's equal to startContainer: <p>a^b</p>
+ // or different situation happened :P
+ // then there's no separate container for the end of selection.
+ pos = endContainer.getPosition( startContainer ),
+ separateEndContainer = !!endContainer.getCommonAncestor( startContainer ) // endC is not detached.
+ && pos != CKEDITOR.POSITION_IDENTICAL && !( pos & CKEDITOR.POSITION_CONTAINS + CKEDITOR.POSITION_IS_CONTAINED ); // endC & endS are in separate branches.
+
+ nodesData = extractNodesData( that.dataWrapper, that );
+
+ removeBrsAdjacentToPastedBlocks( nodesData, range );
+
+ for ( ; nodeIndex < nodesData.length; nodeIndex++ ) {
+ nodeData = nodesData[ nodeIndex ];
+
+ // Ignore trailing <brs>
+ if ( nodeData.isLineBreak && splitOnLineBreak( range, blockLimit, nodeData ) ) {
+ // Do not move caret towards the text (in cleanupAfterInsertion),
+ // because caret was placed after a line break.
+ dontMoveCaret = nodeIndex > 0;
+ continue;
+ }
+
+ path = range.startPath();
+
+ // Auto paragraphing.
+ if ( !nodeData.isBlock && ( fixBlock = autoParagraphTag( that.editor.config ) ) && !path.block && path.blockLimit && path.blockLimit.equals( range.root ) ) {
+ fixBlock = doc.createElement( fixBlock );
+ !CKEDITOR.env.ie && fixBlock.appendBogus();
+ range.insertNode( fixBlock );
+ if ( !CKEDITOR.env.ie && ( bogus = fixBlock.getBogus() ) )
+ bogus.remove();
+ range.moveToPosition( fixBlock, CKEDITOR.POSITION_BEFORE_END );
+ }
+
+ node = range.startPath().block;
+
+ // Remove any bogus element on the current path block for now, and mark
+ // it for later compensation.
+ if ( node && !node.equals( pathBlock ) ) {
+ bogus = node.getBogus();
+ if ( bogus ) {
+ bogus.remove();
+ bogusNeededBlocks.push( node );
+ }
+
+ pathBlock = node;
+ }
+
+ // First not allowed node reached - start splitting original container
+ if ( nodeData.firstNotAllowed )
+ splittingContainer = 1;
+
+ if ( splittingContainer && nodeData.isElement ) {
+ insertionContainer = range.startContainer;
+ toSplit = null;
+
+ // Find the first ancestor that can contain current node.
+ // This one won't be split.
+ while ( insertionContainer && !DTD[ insertionContainer.getName() ][ nodeData.name ] ) {
+ if ( insertionContainer.equals( blockLimit ) ) {
+ insertionContainer = null;
+ break;
+ }
+
+ toSplit = insertionContainer;
+ insertionContainer = insertionContainer.getParent();
+ }
+
+ // If split has to be done - do it and mark both ends as a possible zombies.
+ if ( insertionContainer ) {
+ if ( toSplit ) {
+ newContainer = range.splitElement( toSplit );
+ that.zombies.push( newContainer );
+ that.zombies.push( toSplit );
+ }
+ }
+ // Unable to make the insertion happen in place, resort to the content filter.
+ else {
+ // If everything worked fine insertionContainer == blockLimit here.
+ filteredNodes = filterElement( nodeData.node, blockLimit.getName(), !nodeIndex, nodeIndex == nodesData.length - 1 );
+ }
+ }
+
+ if ( filteredNodes ) {
+ while ( ( node = filteredNodes.pop() ) )
+ range.insertNode( node );
+ filteredNodes = 0;
+ } else
+ // Insert current node at the start of range.
+ range.insertNode( nodeData.node );
+
+ // Move range to the endContainer for the final allowed elements.
+ if ( nodeData.lastNotAllowed && nodeIndex < nodesData.length - 1 ) {
+ // If separateEndContainer exists move range there.
+ // Otherwise try to move range to container created during splitting.
+ // If this doesn't work - don't move range.
+ newContainer = separateEndContainer ? endContainer : newContainer;
+ newContainer && range.setEndAt( newContainer, CKEDITOR.POSITION_AFTER_START );
+ splittingContainer = 0;
+ }
+
+ // Collapse range after insertion to end.
+ range.collapse();
+ }
+
+ that.dontMoveCaret = dontMoveCaret;
+ that.bogusNeededBlocks = bogusNeededBlocks;
+ }
+
+ function cleanupAfterInsertion( that ) {
+ var range = that.range,
+ node, testRange, parent, movedIntoInline,
+ bogusNeededBlocks = that.bogusNeededBlocks,
+ // Create a bookmark to defend against the following range deconstructing operations.
+ bm = range.createBookmark();
+
+ // Remove all elements that could be created while splitting nodes
+ // with ranges at its start|end.
+ // E.g. remove <div><p></p></div>
+ // But not <div><p> </p></div>
+ // And replace <div><p><span data="cke-bookmark"/></p></div> with found bookmark.
+ while ( ( node = that.zombies.pop() ) ) {
+ // Detached element.
+ if ( !node.getParent() )
+ continue;
+
+ testRange = range.clone();
+ testRange.moveToElementEditStart( node );
+ testRange.removeEmptyBlocksAtEnd();
+ }
+
+ if ( bogusNeededBlocks ) {
+ // Bring back all block bogus nodes.
+ while ( ( node = bogusNeededBlocks.pop() ) ) {
+ node.append( CKEDITOR.env.ie ? range.document.createText( '\u00a0' ) : range.document.createElement( 'br' ) );
+ }
+ }
+
+ // Eventually merge identical inline elements.
+ while ( ( node = that.mergeCandidates.pop() ) )
+ node.mergeSiblings();
+
+ range.moveToBookmark( bm );
+
+ // Rule 3.
+ // Shrink range to the BEFOREEND of previous innermost editable node in source order.
+
+ if ( !that.dontMoveCaret ) {
+ node = getRangePrevious( range );
+
+ while ( node && checkIfElement( node ) && !node.is( DTD.$empty ) ) {
+ if ( node.isBlockBoundary() )
+ range.moveToPosition( node, CKEDITOR.POSITION_BEFORE_END );
+ else {
+ // Don't move into inline element (which ends with a text node)
+ // found which contains white-space at its end.
+ // If not - move range's end to the end of this element.
+ if ( isInline( node ) && node.getHtml().match( /(\s| )$/g ) ) {
+ movedIntoInline = null;
+ break;
+ }
+
+ movedIntoInline = range.clone();
+ movedIntoInline.moveToPosition( node, CKEDITOR.POSITION_BEFORE_END );
+ }
+
+ node = node.getLast( isNotEmpty );
+ }
+
+ movedIntoInline && range.moveToRange( movedIntoInline );
+ }
+
+ }
+
+ //
+ // HELPERS ------------------------------------------------------------
+ //
+
+ function autoParagraphTag( config ) {
+ return ( config.enterMode != CKEDITOR.ENTER_BR && config.autoParagraph !== false ) ? config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false;
+ }
+
+ function checkIfElement( node ) {
+ return node.type == CKEDITOR.NODE_ELEMENT;
+ }
+
+ function extractNodesData( dataWrapper, that ) {
+ var node, sibling, nodeName, allowed,
+ nodesData = [],
+ startContainer = that.range.startContainer,
+ path = that.range.startPath(),
+ allowedNames = DTD[ startContainer.getName() ],
+ nodeIndex = 0,
+ nodesList = dataWrapper.getChildren(),
+ nodesCount = nodesList.count(),
+ firstNotAllowed = -1,
+ lastNotAllowed = -1,
+ lineBreak = 0,
+ blockSibling;
+
+ // Selection start within a list.
+ var insideOfList = path.contains( DTD.$list );
+
+ for ( ; nodeIndex < nodesCount; ++nodeIndex ) {
+ node = nodesList.getItem( nodeIndex );
+
+ if ( checkIfElement( node ) ) {
+ nodeName = node.getName();
+
+ // Extract only the list items, when insertion happens
+ // inside of a list, reads as rearrange list items. (#7957)
+ if ( insideOfList && nodeName in CKEDITOR.dtd.$list ) {
+ nodesData = nodesData.concat( extractNodesData( node, that ) );
+ continue;
+ }
+
+ allowed = !!allowedNames[ nodeName ];
+
+ // Mark <brs data-cke-eol="1"> at the beginning and at the end.
+ if ( nodeName == 'br' && node.data( 'cke-eol' ) && ( !nodeIndex || nodeIndex == nodesCount - 1 ) ) {
+ sibling = nodeIndex ? nodesData[ nodeIndex - 1 ].node : nodesList.getItem( nodeIndex + 1 );
+
+ // Line break has to have sibling which is not an <br>.
+ lineBreak = sibling && ( !checkIfElement( sibling ) || !sibling.is( 'br' ) );
+ // Line break has block element as a sibling.
+ blockSibling = sibling && checkIfElement( sibling ) && DTD.$block[ sibling.getName() ];
+ }
+
+ if ( firstNotAllowed == -1 && !allowed )
+ firstNotAllowed = nodeIndex;
+ if ( !allowed )
+ lastNotAllowed = nodeIndex;
+
+ nodesData.push({
+ isElement: 1,
+ isLineBreak: lineBreak,
+ isBlock: node.isBlockBoundary(),
+ hasBlockSibling: blockSibling,
+ node: node,
+ name: nodeName,
+ allowed: allowed
+ });
+
+ lineBreak = 0;
+ blockSibling = 0;
+ } else
+ nodesData.push( { isElement:0,node:node,allowed:1 } );
+ }
+
+ // Mark first node that cannot be inserted directly into startContainer
+ // and last node for which startContainer has to be split.
+ if ( firstNotAllowed > -1 )
+ nodesData[ firstNotAllowed ].firstNotAllowed = 1;
+ if ( lastNotAllowed > -1 )
+ nodesData[ lastNotAllowed ].lastNotAllowed = 1;
+
+ return nodesData;
+ }
+
+ // TODO: Review content transformation rules on filtering element.
+ function filterElement( element, parentName, isFirst, isLast ) {
+ var nodes = filterElementInner( element, parentName ),
+ nodes2 = [],
+ nodesCount = nodes.length,
+ nodeIndex = 0,
+ node,
+ afterSpace = 0,
+ lastSpaceIndex = -1;
+
+ // Remove duplicated spaces and spaces at the:
+ // * beginnig if filtered element isFirst (isFirst that's going to be inserted)
+ // * end if filtered element isLast.
+ for ( ; nodeIndex < nodesCount; nodeIndex++ ) {
+ node = nodes[ nodeIndex ];
+
+ if ( node == ' ' ) {
+ // Don't push doubled space and if it's leading space for insertion.
+ if ( !afterSpace && !( isFirst && !nodeIndex ) ) {
+ nodes2.push( new CKEDITOR.dom.text( ' ' ) );
+ lastSpaceIndex = nodes2.length;
+ }
+ afterSpace = 1;
+ } else {
+ nodes2.push( node );
+ afterSpace = 0;
+ }
+ }
+
+ // Remove trailing space.
+ if ( isLast && lastSpaceIndex == nodes2.length )
+ nodes2.pop();
+
+ return nodes2;
+ }
+
+ function filterElementInner( element, parentName ) {
+ var nodes = [],
+ children = element.getChildren(),
+ childrenCount = children.count(),
+ child,
+ childIndex = 0,
+ allowedNames = DTD[ parentName ],
+ surroundBySpaces = !element.is( DTD.$inline ) || element.is( 'br' );
+
+ if ( surroundBySpaces )
+ nodes.push( ' ' );
+
+ for ( ; childIndex < childrenCount; childIndex++ ) {
+ child = children.getItem( childIndex );
+
+ if ( checkIfElement( child ) && !child.is( allowedNames ) )
+ nodes = nodes.concat( filterElementInner( child, parentName ) );
+ else
+ nodes.push( child );
+ }
+
+ if ( surroundBySpaces )
+ nodes.push( ' ' );
+
+ return nodes;
+ }
+
+ function getRangePrevious( range ) {
+ return checkIfElement( range.startContainer ) && range.startContainer.getChild( range.startOffset - 1 );
+ }
+
+ function isInline( node ) {
+ return node && checkIfElement( node ) && ( node.is( DTD.$removeEmpty ) || node.is( 'a' ) && !node.isBlockBoundary() );
+ }
+
+ var blockMergedTags = { p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1 };
+
+ // See rule 5. in TCs.
+ // Initial situation:
+ // <ul><li>AA^</li></ul><ul><li>BB</li></ul>
+ // We're looking for 2nd <ul>, comparing with 1st <ul> and merging.
+ // We're not merging if caret is between these elements.
+ function mergeAncestorElementsOfSelectionEnds( range, blockLimit, startPath, endPath ) {
+ var walkerRange = range.clone(),
+ walker, nextNode, previousNode;
+
+ walkerRange.setEndAt( blockLimit, CKEDITOR.POSITION_BEFORE_END );
+ walker = new CKEDITOR.dom.walker( walkerRange );
+
+ if ( ( nextNode = walker.next() ) // Find next source node
+ && checkIfElement( nextNode ) // which is an element
+ && blockMergedTags[ nextNode.getName() ] // that can be merged.
+ && ( previousNode = nextNode.getPrevious() ) // Take previous one
+ && checkIfElement( previousNode ) // which also has to be an element.
+ && !previousNode.getParent().equals( range.startContainer ) // Fail if caret is on the same level.
+ // This means that caret is between these nodes.
+ && startPath.contains( previousNode ) // Elements path of start of selection has
+ && endPath.contains( nextNode ) // to contain prevNode and vice versa.
+ && nextNode.isIdentical( previousNode ) ) // Check if elements are identical.
+ {
+ // Merge blocks and repeat.
+ nextNode.moveChildren( previousNode );
+ nextNode.remove();
+ mergeAncestorElementsOfSelectionEnds( range, blockLimit, startPath, endPath );
+ }
+ }
+
+ // If last node that will be inserted is a block (but not a <br>)
+ // and it will be inserted right before <br> remove this <br>.
+ // Do the same for the first element that will be inserted and preceding <br>.
+ function removeBrsAdjacentToPastedBlocks( nodesData, range ) {
+ var succeedingNode = range.endContainer.getChild( range.endOffset ),
+ precedingNode = range.endContainer.getChild( range.endOffset - 1 );
+
+ if ( succeedingNode ) {
+ remove( succeedingNode, nodesData[ nodesData.length - 1 ] );
+ }
+ if ( precedingNode && remove( precedingNode, nodesData[ 0 ] ) ) {
+ // If preceding <br> was removed - move range left.
+ range.setEnd( range.endContainer, range.endOffset - 1 );
+ range.collapse();
+ }
+
+ function remove( maybeBr, maybeBlockData ) {
+ if ( maybeBlockData.isBlock && maybeBlockData.isElement && !maybeBlockData.node.is( 'br' ) &&
+ checkIfElement( maybeBr ) && maybeBr.is( 'br' ) ) {
+ maybeBr.remove();
+ return 1;
+ }
+ }
+ }
+
+ // Return 1 if <br> should be skipped when inserting, 0 otherwise.
+ function splitOnLineBreak( range, blockLimit, nodeData ) {
+ var firstBlockAscendant, pos;
+
+ if ( nodeData.hasBlockSibling )
+ return 1;
+
+ firstBlockAscendant = range.startContainer.getAscendant( DTD.$block, 1 );
+ if ( !firstBlockAscendant || !firstBlockAscendant.is( { div:1,p:1 } ) )
+ return 0;
+
+ pos = firstBlockAscendant.getPosition( blockLimit );
+
+ if ( pos == CKEDITOR.POSITION_IDENTICAL || pos == CKEDITOR.POSITION_CONTAINS )
+ return 0;
+
+ var newContainer = range.splitElement( firstBlockAscendant );
+ range.moveToPosition( newContainer, CKEDITOR.POSITION_AFTER_START );
+
+ return 1;
+ }
+
+ var stripSingleBlockTags = { p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1 },
+ inlineButNotBr = CKEDITOR.tools.extend( {}, DTD.$inline );
+ delete inlineButNotBr.br;
+
+ // Rule 7.
+ function stripBlockTagIfSingleLine( dataWrapper ) {
+ var block, children;
+
+ if ( dataWrapper.getChildCount() == 1 && // Only one node bein inserted.
+ checkIfElement( block = dataWrapper.getFirst() ) && // And it's an element.
+ block.is( stripSingleBlockTags ) ) // That's <p> or <div> or header.
+ {
+ // Check children not containing block.
+ children = block.getElementsByTag( '*' );
+ for ( var i = 0, child, count = children.count(); i < count; i++ ) {
+ child = children.getItem( i );
+ if ( !child.is( inlineButNotBr ) )
+ return;
+ }
+
+ block.moveChildren( block.getParent( 1 ) );
+ block.remove();
+ }
+ }
+
+ function wrapDataWithInlineStyles( data, that ) {
+ var element = that.inlineStylesPeak,
+ doc = element.getDocument(),
+ wrapper = doc.createText( '{cke-peak}' ),
+ limit = that.inlineStylesRoot.getParent();
+
+ while ( !element.equals( limit ) ) {
+ wrapper = wrapper.appendTo( element.clone() );
+ element = element.getParent();
+ }
+
+ return wrapper.getOuterHtml().replace( '{cke-peak}', data );
+ }
+
+ return insert;
+ })();
+
+ function beforeInsert( editable ) {
+ // TODO: For unknown reason we must call directly on the editable to put the focus immediately.
+ editable.editor.focus();
+
+ editable.editor.fire( 'saveSnapshot' );
+ }
+
+ function afterInsert( editable, noScroll ) {
+ var editor = editable.editor;
+
+ // Scroll using selection, not ranges, to affect native pastes.
+ !noScroll && editor.getSelection().scrollIntoView();
+
+ // Save snaps after the whole execution completed.
+ // This's a workaround for make DOM modification's happened after
+ // 'insertElement' to be included either, e.g. Form-based dialogs' 'commitContents'
+ // call.
+ setTimeout( function() {
+ editor.fire( 'saveSnapshot' );
+ }, 0 );
+ }
+
+})();
+
+/**
+ * Whether the editor must output an empty value (`''`) if it's contents is made
+ * by an empty paragraph only.
+ *
+ * config.ignoreEmptyParagraph = false;
+ *
+ * @cfg {Boolean} [ignoreEmptyParagraph=true]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * @event focus
+ * @todo
+ */
+
+ /**
+ * @event blur
+ * @todo
+ */
diff --git a/devel/third-party/ckeditor/core/editor.js b/devel/third-party/ckeditor/core/editor.js
index 0b373f7..a8193cc 100644
--- a/devel/third-party/ckeditor/core/editor.js
+++ b/devel/third-party/ckeditor/core/editor.js
@@ -1,759 +1,1296 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.editor} class, which represents an
- * editor instance.
- */
-
-(function()
-{
- // The counter for automatic instance names.
- var nameCounter = 0;
-
- var getNewName = function()
- {
- var name = 'editor' + ( ++nameCounter );
- return ( CKEDITOR.instances && CKEDITOR.instances[ name ] ) ? getNewName() : name;
- };
-
- // ##### START: Config Privates
-
- // These function loads custom configuration files and cache the
- // CKEDITOR.editorConfig functions defined on them, so there is no need to
- // download them more than once for several instances.
- var loadConfigLoaded = {};
- var loadConfig = function( editor )
- {
- var customConfig = editor.config.customConfig;
-
- // Check if there is a custom config to load.
- if ( !customConfig )
- return false;
-
- customConfig = CKEDITOR.getUrl( customConfig );
-
- var loadedConfig = loadConfigLoaded[ customConfig ] || ( loadConfigLoaded[ customConfig ] = {} );
-
- // If the custom config has already been downloaded, reuse it.
- if ( loadedConfig.fn )
- {
- // Call the cached CKEDITOR.editorConfig defined in the custom
- // config file for the editor instance depending on it.
- loadedConfig.fn.call( editor, editor.config );
-
- // If there is no other customConfig in the chain, fire the
- // "configLoaded" event.
- if ( CKEDITOR.getUrl( editor.config.customConfig ) == customConfig || !loadConfig( editor ) )
- editor.fireOnce( 'customConfigLoaded' );
- }
- else
- {
- // Load the custom configuration file.
- CKEDITOR.scriptLoader.load( customConfig, function()
- {
- // If the CKEDITOR.editorConfig function has been properly
- // defined in the custom configuration file, cache it.
- if ( CKEDITOR.editorConfig )
- loadedConfig.fn = CKEDITOR.editorConfig;
- else
- loadedConfig.fn = function(){};
-
- // Call the load config again. This time the custom
- // config is already cached and so it will get loaded.
- loadConfig( editor );
- });
- }
-
- return true;
- };
-
- var initConfig = function( editor, instanceConfig )
- {
- // Setup the lister for the "customConfigLoaded" event.
- editor.on( 'customConfigLoaded', function()
- {
- if ( instanceConfig )
- {
- // Register the events that may have been set at the instance
- // configuration object.
- if ( instanceConfig.on )
- {
- for ( var eventName in instanceConfig.on )
- {
- editor.on( eventName, instanceConfig.on[ eventName ] );
- }
- }
-
- // Overwrite the settings from the in-page config.
- CKEDITOR.tools.extend( editor.config, instanceConfig, true );
-
- delete editor.config.on;
- }
-
- onConfigLoaded( editor );
- });
-
- // The instance config may override the customConfig setting to avoid
- // loading the default ~/config.js file.
- if ( instanceConfig && instanceConfig.customConfig != undefined )
- editor.config.customConfig = instanceConfig.customConfig;
-
- // Load configs from the custom configuration files.
- if ( !loadConfig( editor ) )
- editor.fireOnce( 'customConfigLoaded' );
- };
-
- // ##### END: Config Privates
-
- var onConfigLoaded = function( editor )
- {
- // Set config related properties.
-
- var skin = editor.config.skin.split( ',' ),
- skinName = skin[ 0 ],
- skinPath = CKEDITOR.getUrl( skin[ 1 ] || (
- '_source/' + // @Packager.RemoveLine
- 'skins/' + skinName + '/' ) );
-
- editor.skinName = skinName;
- editor.skinPath = skinPath;
- editor.skinClass = 'cke_skin_' + skinName;
-
- editor.tabIndex = editor.config.tabIndex || editor.element.getAttribute( 'tabindex' ) || 0;
-
- // Fire the "configLoaded" event.
- editor.fireOnce( 'configLoaded' );
-
- // Load language file.
- loadSkin( editor );
- };
-
- var loadLang = function( editor )
- {
- CKEDITOR.lang.load( editor.config.language, editor.config.defaultLanguage, function( languageCode, lang )
- {
- editor.langCode = languageCode;
-
- // As we'll be adding plugin specific entries that could come
- // from different language code files, we need a copy of lang,
- // not a direct reference to it.
- editor.lang = CKEDITOR.tools.prototypedCopy( lang );
-
- // We're not able to support RTL in Firefox 2 at this time.
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 && editor.lang.dir == 'rtl' )
- editor.lang.dir = 'ltr';
-
- var config = editor.config;
- config.contentsLangDirection == 'ui' && ( config.contentsLangDirection = editor.lang.dir );
-
- loadPlugins( editor );
- });
- };
-
- var loadPlugins = function( editor )
- {
- var config = editor.config,
- plugins = config.plugins,
- extraPlugins = config.extraPlugins,
- removePlugins = config.removePlugins;
-
- if ( extraPlugins )
- {
- // Remove them first to avoid duplications.
- var removeRegex = new RegExp( '(?:^|,)(?:' + extraPlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)' , 'g' );
- plugins = plugins.replace( removeRegex, '' );
-
- plugins += ',' + extraPlugins;
- }
-
- if ( removePlugins )
- {
- removeRegex = new RegExp( '(?:^|,)(?:' + removePlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)' , 'g' );
- plugins = plugins.replace( removeRegex, '' );
- }
-
- // Load all plugins defined in the "plugins" setting.
- CKEDITOR.plugins.load( plugins.split( ',' ), function( plugins )
- {
- // The list of plugins.
- var pluginsArray = [];
-
- // The language code to get loaded for each plugin. Null
- // entries will be appended for plugins with no language files.
- var languageCodes = [];
-
- // The list of URLs to language files.
- var languageFiles = [];
-
- // Cache the loaded plugin names.
- editor.plugins = plugins;
-
- // Loop through all plugins, to build the list of language
- // files to get loaded.
- for ( var pluginName in plugins )
- {
- var plugin = plugins[ pluginName ],
- pluginLangs = plugin.lang,
- pluginPath = CKEDITOR.plugins.getPath( pluginName ),
- lang = null;
-
- // Set the plugin path in the plugin.
- plugin.path = pluginPath;
-
- // If the plugin has "lang".
- if ( pluginLangs )
- {
- // Resolve the plugin language. If the current language
- // is not available, get the first one (default one).
- lang = ( CKEDITOR.tools.indexOf( pluginLangs, editor.langCode ) >= 0 ? editor.langCode : pluginLangs[ 0 ] );
-
- if ( !plugin.lang[ lang ] )
- {
- // Put the language file URL into the list of files to
- // get downloaded.
- languageFiles.push( CKEDITOR.getUrl( pluginPath + 'lang/' + lang + '.js' ) );
- }
- else
- {
- CKEDITOR.tools.extend( editor.lang, plugin.lang[ lang ] );
- lang = null;
- }
- }
-
- // Save the language code, so we know later which
- // language has been resolved to this plugin.
- languageCodes.push( lang );
-
- pluginsArray.push( plugin );
- }
-
- // Load all plugin specific language files in a row.
- CKEDITOR.scriptLoader.load( languageFiles, function()
- {
- // Initialize all plugins that have the "beforeInit" and "init" methods defined.
- var methods = [ 'beforeInit', 'init', 'afterInit' ];
- for ( var m = 0 ; m < methods.length ; m++ )
- {
- for ( var i = 0 ; i < pluginsArray.length ; i++ )
- {
- var plugin = pluginsArray[ i ];
-
- // Uses the first loop to update the language entries also.
- if ( m === 0 && languageCodes[ i ] && plugin.lang )
- CKEDITOR.tools.extend( editor.lang, plugin.lang[ languageCodes[ i ] ] );
-
- // Call the plugin method (beforeInit and init).
- if ( plugin[ methods[ m ] ] )
- plugin[ methods[ m ] ]( editor );
- }
- }
-
- // Load the editor skin.
- editor.fire( 'pluginsLoaded' );
- loadTheme( editor );
- });
- });
- };
-
- var loadSkin = function( editor )
- {
- CKEDITOR.skins.load( editor, 'editor', function()
- {
- loadLang( editor );
- });
- };
-
- var loadTheme = function( editor )
- {
- var theme = editor.config.theme;
- CKEDITOR.themes.load( theme, function()
- {
- var editorTheme = editor.theme = CKEDITOR.themes.get( theme );
- editorTheme.path = CKEDITOR.themes.getPath( theme );
- editorTheme.build( editor );
-
- if ( editor.config.autoUpdateElement )
- attachToForm( editor );
- });
- };
-
- var attachToForm = function( editor )
- {
- var element = editor.element;
-
- // If are replacing a textarea, we must
- if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.is( 'textarea' ) )
- {
- var form = element.$.form && new CKEDITOR.dom.element( element.$.form );
- if ( form )
- {
- function onSubmit()
- {
- editor.updateElement();
- }
- form.on( 'submit',onSubmit );
-
- // Setup the submit function because it doesn't fire the
- // "submit" event.
- if ( !form.$.submit.nodeName )
- {
- form.$.submit = CKEDITOR.tools.override( form.$.submit, function( originalSubmit )
- {
- return function()
- {
- editor.updateElement();
-
- // For IE, the DOM submit function is not a
- // function, so we need thid check.
- if ( originalSubmit.apply )
- originalSubmit.apply( this, arguments );
- else
- originalSubmit();
- };
- });
- }
-
- // Remove 'submit' events registered on form element before destroying.(#3988)
- editor.on( 'destroy', function()
- {
- form.removeListener( 'submit', onSubmit );
- } );
- }
- }
- };
-
- function updateCommandsMode()
- {
- var command,
- commands = this._.commands,
- mode = this.mode;
-
- for ( var name in commands )
- {
- command = commands[ name ];
- command[ command.startDisabled ? 'disable' : command.modes[ mode ] ? 'enable' : 'disable' ]();
- }
- }
-
- /**
- * Initializes the editor instance. This function is called by the editor
- * contructor (editor_basic.js).
- * @private
- */
- CKEDITOR.editor.prototype._init = function()
- {
- // Get the properties that have been saved in the editor_base
- // implementation.
- var element = CKEDITOR.dom.element.get( this._.element ),
- instanceConfig = this._.instanceConfig;
- delete this._.element;
- delete this._.instanceConfig;
-
- this._.commands = {};
- this._.styles = [];
-
- /**
- * The DOM element that has been replaced by this editor instance. This
- * element holds the editor data on load and post.
- * @name CKEDITOR.editor.prototype.element
- * @type CKEDITOR.dom.element
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * alert( <b>editor.element</b>.getName() ); "textarea"
- */
- this.element = element;
-
- /**
- * The editor instance name. It hay be the replaced element id, name or
- * a default name using a progressive counter (editor1, editor2, ...).
- * @name CKEDITOR.editor.prototype.name
- * @type String
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * alert( <b>editor.name</b> ); "editor1"
- */
- this.name = ( element && ( this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- && ( element.getId() || element.getNameAtt() ) )
- || getNewName();
-
- if ( this.name in CKEDITOR.instances )
- throw '[CKEDITOR.editor] The instance "' + this.name + '" already exists.';
-
- /**
- * The configurations for this editor instance. It inherits all
- * settings defined in (@link CKEDITOR.config}, combined with settings
- * loaded from custom configuration files and those defined inline in
- * the page when creating the editor.
- * @name CKEDITOR.editor.prototype.config
- * @type Object
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * alert( <b>editor.config.theme</b> ); "default" e.g.
- */
- this.config = CKEDITOR.tools.prototypedCopy( CKEDITOR.config );
-
- /**
- * Namespace containing UI features related to this editor instance.
- * @name CKEDITOR.editor.prototype.ui
- * @type CKEDITOR.ui
- * @example
- */
- this.ui = new CKEDITOR.ui( this );
-
- /**
- * Controls the focus state of this editor instance. This property
- * is rarely used for normal API operations. It is mainly
- * destinated to developer adding UI elements to the editor interface.
- * @name CKEDITOR.editor.prototype.focusManager
- * @type CKEDITOR.focusManager
- * @example
- */
- this.focusManager = new CKEDITOR.focusManager( this );
-
- CKEDITOR.fire( 'instanceCreated', null, this );
-
- this.on( 'mode', updateCommandsMode, null, null, 1 );
-
- initConfig( this, instanceConfig );
- };
-})();
-
-CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
- /** @lends CKEDITOR.editor.prototype */
- {
- /**
- * Adds a command definition to the editor instance. Commands added with
- * this function can be later executed with {@link #execCommand}.
- * @param {String} commandName The indentifier name of the command.
- * @param {CKEDITOR.commandDefinition} commandDefinition The command definition.
- * @example
- * editorInstance.addCommand( 'sample',
- * {
- * exec : function( editor )
- * {
- * alert( 'Executing a command for the editor name "' + editor.name + '"!' );
- * }
- * });
- */
- addCommand : function( commandName, commandDefinition )
- {
- return this._.commands[ commandName ] = new CKEDITOR.command( this, commandDefinition );
- },
-
- /**
- * Add a trunk of css text to the editor which will be applied to the wysiwyg editing document.
- * Note: This function should be called before editor is loaded to take effect.
- * @param css {String} CSS text.
- * @example
- * editorInstance.addCss( 'body { background-color: grey; }' );
- */
- addCss : function( css )
- {
- this._.styles.push( css );
- },
-
- /**
- * Destroys the editor instance, releasing all resources used by it.
- * If the editor replaced an element, the element will be recovered.
- * @param {Boolean} [noUpdate] If the instance is replacing a DOM
- * element, this parameter indicates whether or not to update the
- * element with the instance contents.
- * @example
- * alert( CKEDITOR.instances.editor1 ); e.g "object"
- * <b>CKEDITOR.instances.editor1.destroy()</b>;
- * alert( CKEDITOR.instances.editor1 ); "undefined"
- */
- destroy : function( noUpdate )
- {
- if ( !noUpdate )
- this.updateElement();
-
- if ( this.mode )
- {
- // -> currentMode.unload( holderElement );
- this._.modes[ this.mode ].unload( this.getThemeSpace( 'contents' ) );
- }
-
- this.theme.destroy( this );
-
- var toolbars,
- index = 0,
- j,
- items,
- instance;
-
- if ( this.toolbox )
- {
- toolbars = this.toolbox.toolbars;
- for ( ; index < toolbars.length ; index++ )
- {
- items = toolbars[ index ].items;
- for ( j = 0 ; j < items.length ; j++ )
- {
- instance = items[ j ];
- if ( instance.clickFn ) CKEDITOR.tools.removeFunction( instance.clickFn );
- if ( instance.keyDownFn ) CKEDITOR.tools.removeFunction( instance.keyDownFn );
-
- if ( instance.index ) CKEDITOR.ui.button._.instances[ instance.index ] = null;
- }
- }
- }
-
- if ( this.contextMenu )
- CKEDITOR.tools.removeFunction( this.contextMenu._.functionId );
-
- if ( this._.filebrowserFn )
- CKEDITOR.tools.removeFunction( this._.filebrowserFn );
-
- this.fire( 'destroy' );
- CKEDITOR.remove( this );
- CKEDITOR.fire( 'instanceDestroyed', null, this );
- },
-
- /**
- * Executes a command.
- * @param {String} commandName The indentifier name of the command.
- * @param {Object} [data] Data to be passed to the command
- * @returns {Boolean} "true" if the command has been successfuly
- * executed, otherwise "false".
- * @example
- * editorInstance.execCommand( 'Bold' );
- */
- execCommand : function( commandName, data )
- {
- var command = this.getCommand( commandName );
-
- var eventData =
- {
- name: commandName,
- commandData: data,
- command: command
- };
-
- if ( command && command.state != CKEDITOR.TRISTATE_DISABLED )
- {
- if ( this.fire( 'beforeCommandExec', eventData ) !== true )
- {
- eventData.returnValue = command.exec( eventData.commandData );
-
- // Fire the 'afterCommandExec' immediately if command is synchronous.
- if ( !command.async && this.fire( 'afterCommandExec', eventData ) !== true )
- return eventData.returnValue;
- }
- }
-
- // throw 'Unknown command name "' + commandName + '"';
- return false;
- },
-
- /**
- * Gets one of the registered commands. Note that, after registering a
- * command definition with addCommand, it is transformed internally
- * into an instance of {@link CKEDITOR.command}, which will be then
- * returned by this function.
- * @param {String} commandName The name of the command to be returned.
- * This is the same used to register the command with addCommand.
- * @returns {CKEDITOR.command} The command object identified by the
- * provided name.
- */
- getCommand : function( commandName )
- {
- return this._.commands[ commandName ];
- },
-
- /**
- * Gets the editor data. The data will be in raw format. It is the same
- * data that is posted by the editor.
- * @type String
- * @returns (String) The editor data.
- * @example
- * if ( CKEDITOR.instances.editor1.<b>getData()</b> == '' )
- * alert( 'There is no data available' );
- */
- getData : function()
- {
- this.fire( 'beforeGetData' );
-
- var eventData = this._.data;
-
- if ( typeof eventData != 'string' )
- {
- var element = this.element;
- if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- eventData = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
- else
- eventData = '';
- }
-
- eventData = { dataValue : eventData };
-
- // Fire "getData" so data manipulation may happen.
- this.fire( 'getData', eventData );
-
- return eventData.dataValue;
- },
-
- getSnapshot : function()
- {
- var data = this.fire( 'getSnapshot' );
-
- if ( typeof data != 'string' )
- {
- var element = this.element;
- if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- data = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
- }
-
- return data;
- },
-
- loadSnapshot : function( snapshot )
- {
- this.fire( 'loadSnapshot', snapshot );
- },
-
- /**
- * Sets the editor data. The data must be provided in raw format (HTML).<br />
- * <br />
- * Note that this menthod is asynchronous. The "callback" parameter must
- * be used if interaction with the editor is needed after setting the data.
- * @param {String} data HTML code to replace the curent content in the
- * editor.
- * @param {Function} callback Function to be called after the setData
- * is completed.
- * @example
- * CKEDITOR.instances.editor1.<b>setData</b>( '<p>This is the editor data.</p>' );
- * @example
- * CKEDITOR.instances.editor1.<b>setData</b>( '<p>Some other editor data.</p>', function()
- * {
- * this.checkDirty(); // true
- * });
- */
- setData : function( data , callback )
- {
- if( callback )
- {
- this.on( 'dataReady', function( evt )
- {
- evt.removeListener();
- callback.call( evt.editor );
- } );
- }
-
- // Fire "setData" so data manipulation may happen.
- var eventData = { dataValue : data };
- this.fire( 'setData', eventData );
-
- this._.data = eventData.dataValue;
-
- this.fire( 'afterSetData', eventData );
- },
-
- /**
- * Inserts HTML into the currently selected position in the editor.
- * @param {String} data HTML code to be inserted into the editor.
- * @example
- * CKEDITOR.instances.editor1.<b>insertHtml( '<p>This is a new paragraph.</p>' )</b>;
- */
- insertHtml : function( data )
- {
- this.fire( 'insertHtml', data );
- },
-
- /**
- * Inserts an element into the currently selected position in the
- * editor.
- * @param {CKEDITOR.dom.element} element The element to be inserted
- * into the editor.
- * @example
- * var element = CKEDITOR.dom.element.createFromHtml( '<img src="hello.png" border="0" title="Hello" />' );
- * CKEDITOR.instances.editor1.<b>insertElement( element )</b>;
- */
- insertElement : function( element )
- {
- this.fire( 'insertElement', element );
- },
-
- checkDirty : function()
- {
- return ( this.mayBeDirty && this._.previousValue !== this.getSnapshot() );
- },
-
- resetDirty : function()
- {
- if ( this.mayBeDirty )
- this._.previousValue = this.getSnapshot();
- },
-
- /**
- * Updates the <textarea> element that has been replaced by the editor with
- * the current data available in the editor.
- * @example
- * CKEDITOR.instances.editor1.updateElement();
- * alert( document.getElementById( 'editor1' ).value ); // The current editor data.
- */
- updateElement : function()
- {
- var element = this.element;
- if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- {
- var data = this.getData();
-
- if ( this.config.htmlEncodeOutput )
- data = CKEDITOR.tools.htmlEncode( data );
-
- if ( element.is( 'textarea' ) )
- element.setValue( data );
- else
- element.setHtml( data );
- }
- }
- });
-
-CKEDITOR.on( 'loaded', function()
- {
- // Run the full initialization for pending editors.
- var pending = CKEDITOR.editor._pending;
- if ( pending )
- {
- delete CKEDITOR.editor._pending;
-
- for ( var i = 0 ; i < pending.length ; i++ )
- pending[ i ]._init();
- }
- });
-
-/**
- * Whether escape HTML when editor update original input element.
- * @name CKEDITOR.config.htmlEncodeOutput
- * @since 3.1
- * @type Boolean
- * @default false
- * @example
- * config.htmlEncodeOutput = true;
- */
-
-/**
- * Fired when a CKEDITOR instance is created, but still before initializing it.
- * To interact with a fully initialized instance, use the
- * {@link CKEDITOR#instanceReady} event instead.
- * @name CKEDITOR#instanceCreated
- * @event
- * @param {CKEDITOR.editor} editor The editor instance that has been created.
- */
-
-/**
- * Fired when a CKEDITOR instance is destroyed.
- * @name CKEDITOR#instanceDestroyed
- * @event
- * @param {CKEDITOR.editor} editor The editor instance that has been destroyed.
- */
-
-/**
- * Fired when all plugins are loaded and initialized into the editor instance.
- * @name CKEDITOR#pluginsLoaded
- * @event
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.editor} class, which represents an
+ * editor instance.
+ */
+
+(function() {
+ // Override the basic constructor defined at editor_basic.js.
+ Editor.prototype = CKEDITOR.editor.prototype;
+ CKEDITOR.editor = Editor;
+
+ /**
+ * Represents an editor instance. This constructor should be rarely
+ * used, in favor of the {@link CKEDITOR} editor creation functions.
+ *
+ * @class CKEDITOR.editor
+ * @mixins CKEDITOR.event
+ * @constructor Creates an editor class instance.
+ * @param {Object} [instanceConfig] Configuration values for this specific instance.
+ * @param {CKEDITOR.dom.element} [element] The DOM element upon which this editor
+ * will be created.
+ * @param {Number} [mode] The element creation mode to be used by this editor.
+ * will be created.
+ */
+ function Editor( instanceConfig, element, mode ) {
+ // Call the CKEDITOR.event constructor to initialize this instance.
+ CKEDITOR.event.call( this );
+
+ // Make a clone of the config object, to avoid having it touched by our code. (#9636)
+ instanceConfig = instanceConfig && CKEDITOR.tools.clone( instanceConfig );
+
+ // if editor is created off one page element.
+ if ( element !== undefined ) {
+ // Asserting element and mode not null.
+ if ( !( element instanceof CKEDITOR.dom.element ) )
+ throw new Error( 'Expect element of type CKEDITOR.dom.element.' );
+ else if ( !mode )
+ throw new Error( 'One of the element mode must be specified.' );
+
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && mode == CKEDITOR.ELEMENT_MODE_INLINE ) {
+ throw new Error( 'Inline element mode is not supported on IE quirks.' );
+ }
+
+ // Asserting element DTD depending on mode.
+ if ( mode == CKEDITOR.ELEMENT_MODE_INLINE && !element.is( CKEDITOR.dtd.$editable ) || mode == CKEDITOR.ELEMENT_MODE_REPLACE && element.is( CKEDITOR.dtd.$nonBodyContent ) )
+ throw new Error( 'The specified element mode is not supported on element: "' + element.getName() + '".' );
+
+
+ /**
+ * The original host page element upon which the editor is created, it's only
+ * supposed to be provided by the concrete editor creator and is not subjected to
+ * be modified.
+ *
+ * @property {CKEDITOR.dom.element}
+ */
+ this.element = element;
+
+ /**
+ * This property indicate the way how this instance is associated with the {@link #element}.
+ *
+ * @property {Number}
+ * @see CKEDITOR#ELEMENT_MODE_INLINE
+ * @see CKEDITOR#ELEMENT_MODE_REPLACE
+ */
+ this.elementMode = mode;
+
+ this.name = ( this.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO ) && ( element.getId() || element.getNameAtt() );
+ }
+ else
+ this.elementMode = CKEDITOR.ELEMENT_MODE_NONE;
+
+ // Declare the private namespace.
+ this._ = {};
+
+ this.commands = {};
+
+ /**
+ * Contains all UI templates created for this editor instance.
+ *
+ * @property {Object}
+ */
+ this.templates = {};
+
+ /**
+ * A unique identifier of this editor instance.
+ *
+ * **Note:** It will be originated from the ID or name
+ * attribute of the {@link #element}, otherwise a name pattern of
+ * `'editor{n}'` will be used.
+ *
+ * @property {String}
+ */
+ this.name = this.name || genEditorName();
+
+ /**
+ * A unique random string assigned to each editor instance in the page.
+ *
+ * @property {String}
+ */
+ this.id = CKEDITOR.tools.getNextId();
+
+ /**
+ * The configurations for this editor instance. It inherits all
+ * settings defined in {@link CKEDITOR.config}, combined with settings
+ * loaded from custom configuration files and those defined inline in
+ * the page when creating the editor.
+ *
+ * var editor = CKEDITOR.instances.editor1;
+ * alert( editor.config.skin ); // e.g. 'moono'
+ *
+ * @property {CKEDITOR.config}
+ */
+ this.config = CKEDITOR.tools.prototypedCopy( CKEDITOR.config );
+
+ /**
+ * Namespace containing UI features related to this editor instance.
+ *
+ * @property {CKEDITOR.ui}
+ */
+ this.ui = new CKEDITOR.ui( this );
+
+ /**
+ * Controls the focus state of this editor instance. This property
+ * is rarely used for normal API operations. It is mainly
+ * destinated to developer adding UI elements to the editor interface.
+ *
+ * @property {CKEDITOR.focusManager}
+ */
+ this.focusManager = new CKEDITOR.focusManager( this );
+
+ /**
+ * Controls keystrokes typing in this editor instance.
+ *
+ * @property {CKEDITOR.keystrokeHandler}
+ */
+ this.keystrokeHandler = new CKEDITOR.keystrokeHandler( this );
+
+ // Make the editor update its command states on mode change.
+ this.on( 'mode', updateCommands );
+ this.on( 'readOnly', updateCommands );
+ this.on( 'selectionChange', updateCommandsContext );
+
+ // Handle startup focus.
+ this.on( 'instanceReady', function() {
+ this.config.startupFocus && this.focus();
+ });
+
+ CKEDITOR.fire( 'instanceCreated', null, this );
+
+ // Add this new editor to the CKEDITOR.instances collections.
+ CKEDITOR.add( this );
+
+ // Return the editor instance immediately to enable early stage event registrations.
+ CKEDITOR.tools.setTimeout( function() {
+ initConfig( this, instanceConfig );
+ }, 0, this );
+ }
+
+ var nameCounter = 0;
+
+ function genEditorName() {
+ do {
+ var name = 'editor' + ( ++nameCounter );
+ }
+ while ( CKEDITOR.instances[ name ] )
+
+ return name;
+ }
+
+ function updateCommands() {
+ var command,
+ commands = this.commands,
+ mode = this.mode;
+
+ if ( !mode )
+ return;
+
+ for ( var name in commands ) {
+ command = commands[ name ];
+ command[ command.startDisabled ? 'disable' : this.readOnly && !command.readOnly ? 'disable' : command.modes[ mode ] ? 'enable' : 'disable' ]();
+ }
+ }
+
+ function updateCommandsContext( ev ) {
+ var command,
+ commands = this.commands,
+ editor = ev.editor,
+ path = ev.data.path;
+
+ for ( var name in commands ) {
+ command = commands[ name ];
+
+ if ( command.contextSensitive )
+ command.refresh( editor, path );
+ }
+ }
+
+ // ##### START: Config Privates
+
+ // These function loads custom configuration files and cache the
+ // CKEDITOR.editorConfig functions defined on them, so there is no need to
+ // download them more than once for several instances.
+ var loadConfigLoaded = {};
+
+ function loadConfig( editor ) {
+ var customConfig = editor.config.customConfig;
+
+ // Check if there is a custom config to load.
+ if ( !customConfig )
+ return false;
+
+ customConfig = CKEDITOR.getUrl( customConfig );
+
+ var loadedConfig = loadConfigLoaded[ customConfig ] || ( loadConfigLoaded[ customConfig ] = {} );
+
+ // If the custom config has already been downloaded, reuse it.
+ if ( loadedConfig.fn ) {
+ // Call the cached CKEDITOR.editorConfig defined in the custom
+ // config file for the editor instance depending on it.
+ loadedConfig.fn.call( editor, editor.config );
+
+ // If there is no other customConfig in the chain, fire the
+ // "configLoaded" event.
+ if ( CKEDITOR.getUrl( editor.config.customConfig ) == customConfig || !loadConfig( editor ) )
+ editor.fireOnce( 'customConfigLoaded' );
+ } else {
+ // Load the custom configuration file.
+ CKEDITOR.scriptLoader.load( customConfig, function() {
+ // If the CKEDITOR.editorConfig function has been properly
+ // defined in the custom configuration file, cache it.
+ if ( CKEDITOR.editorConfig )
+ loadedConfig.fn = CKEDITOR.editorConfig;
+ else
+ loadedConfig.fn = function() {};
+
+ // Call the load config again. This time the custom
+ // config is already cached and so it will get loaded.
+ loadConfig( editor );
+ });
+ }
+
+ return true;
+ }
+
+ function initConfig( editor, instanceConfig ) {
+ // Setup the lister for the "customConfigLoaded" event.
+ editor.on( 'customConfigLoaded', function() {
+ if ( instanceConfig ) {
+ // Register the events that may have been set at the instance
+ // configuration object.
+ if ( instanceConfig.on ) {
+ for ( var eventName in instanceConfig.on ) {
+ editor.on( eventName, instanceConfig.on[ eventName ] );
+ }
+ }
+
+ // Overwrite the settings from the in-page config.
+ CKEDITOR.tools.extend( editor.config, instanceConfig, true );
+
+ delete editor.config.on;
+ }
+
+ onConfigLoaded( editor );
+ });
+
+ // The instance config may override the customConfig setting to avoid
+ // loading the default ~/config.js file.
+ if ( instanceConfig && instanceConfig.customConfig != undefined )
+ editor.config.customConfig = instanceConfig.customConfig;
+
+ // Load configs from the custom configuration files.
+ if ( !loadConfig( editor ) )
+ editor.fireOnce( 'customConfigLoaded' );
+ }
+
+ // ##### END: Config Privates
+
+ function onConfigLoaded( editor ) {
+ // Set config related properties.
+ /**
+ * Indicates the read-only state of this editor. This is a read-only property.
+ *
+ * @property {Boolean}
+ * @since 3.6
+ * @see CKEDITOR.editor#setReadOnly
+ */
+ editor.readOnly = !!( editor.config.readOnly || ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? editor.element.isReadOnly() : editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ? editor.element.getAttribute( 'disabled' ) : false ) );
+
+ /**
+ * Indicates that the editor is running into an environment where
+ * no block elements are accepted inside the content.
+ *
+ * @property {Boolean}
+ */
+ editor.blockless = editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE && !CKEDITOR.dtd[ editor.element.getName() ][ 'p' ];
+
+ /**
+ * The [tabbing navigation](http://en.wikipedia.org/wiki/Tabbing_navigation) order determined for this editor instance.
+ * This can be set by the <code>{@link CKEDITOR.config#tabIndex}</code>
+ * setting or taken from the `tabindex` attribute of the
+ * {@link #element} associated with the editor.
+ *
+ * alert( editor.tabIndex ); // e.g. 0
+ *
+ * @property {Number} [=0]
+ */
+ editor.tabIndex = editor.config.tabIndex || editor.element && editor.element.getAttribute( 'tabindex' ) || 0;
+
+ // Set CKEDITOR.skinName. Note that it is not possible to have
+ // different skins on the same page, so the last one to set it "wins".
+ if ( editor.config.skin )
+ CKEDITOR.skinName = editor.config.skin;
+
+ // Fire the "configLoaded" event.
+ editor.fireOnce( 'configLoaded' );
+
+ initComponents( editor );
+ }
+
+ // Various other core components that read editor configuration.
+ function initComponents( editor ) {
+ // Documented in dataprocessor.js.
+ editor.dataProcessor = new CKEDITOR.htmlDataProcessor( editor );
+ loadSkin( editor );
+ }
+
+ function loadSkin( editor ) {
+ CKEDITOR.skin.loadPart( 'editor', function() {
+ loadLang( editor );
+ });
+ }
+
+ function loadLang( editor ) {
+ CKEDITOR.lang.load( editor.config.language, editor.config.defaultLanguage, function( languageCode, lang ) {
+ /**
+ * The code for the language resources that have been loaded
+ * for the user interface elements of this editor instance.
+ *
+ * alert( editor.langCode ); // e.g. 'en'
+ *
+ * @property {String}
+ */
+ editor.langCode = languageCode;
+
+ /**
+ * An object that contains all language strings used by the editor interface.
+ *
+ * alert( editor.lang.basicstyles.bold ); // e.g. 'Negrito' (if the language is set to Portuguese)
+ *
+ * @property {Object} lang
+ */
+ // As we'll be adding plugin specific entries that could come
+ // from different language code files, we need a copy of lang,
+ // not a direct reference to it.
+ editor.lang = CKEDITOR.tools.prototypedCopy( lang );
+
+ // We're not able to support RTL in Firefox 2 at this time.
+ if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 && editor.lang.dir == 'rtl' )
+ editor.lang.dir = 'ltr';
+
+ if ( !editor.config.contentsLangDirection ) {
+ // Fallback to either the editable element direction or editor UI direction depending on creators.
+ editor.config.contentsLangDirection = editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ? editor.element.getDirection( 1 ) : editor.lang.dir;
+ }
+
+ editor.fire( 'langLoaded' );
+
+ loadPlugins( editor );
+ });
+ }
+
+ function loadPlugins( editor ) {
+ var config = editor.config,
+ plugins = config.plugins,
+ extraPlugins = config.extraPlugins,
+ removePlugins = config.removePlugins;
+
+ if ( extraPlugins ) {
+ // Remove them first to avoid duplications.
+ var extraRegex = new RegExp( '(?:^|,)(?:' + extraPlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)', 'g' );
+ plugins = plugins.replace( extraRegex, '' );
+
+ plugins += ',' + extraPlugins;
+ }
+
+ if ( removePlugins ) {
+ var removeRegex = new RegExp( '(?:^|,)(?:' + removePlugins.replace( /\s*,\s*/g, '|' ) + ')(?=,|$)', 'g' );
+ plugins = plugins.replace( removeRegex, '' );
+ }
+
+ // Load the Adobe AIR plugin conditionally.
+ CKEDITOR.env.air && ( plugins += ',adobeair' );
+
+ // Load all plugins defined in the "plugins" setting.
+ CKEDITOR.plugins.load( plugins.split( ',' ), function( plugins ) {
+ // The list of plugins.
+ var pluginsArray = [];
+
+ // The language code to get loaded for each plugin. Null
+ // entries will be appended for plugins with no language files.
+ var languageCodes = [];
+
+ // The list of URLs to language files.
+ var languageFiles = [];
+
+ /**
+ * An object that contains references to all plugins used by this
+ * editor instance.
+ *
+ * alert( editor.plugins.dialog.path ); // e.g. 'http://example.com/ckeditor/plugins/dialog/'
+ *
+ * // Check if a plugin is available.
+ * if ( editor.plugins.image ) {
+ * ...
+ * }
+ *
+ * @property {Object}
+ */
+ editor.plugins = plugins;
+
+ // Loop through all plugins, to build the list of language
+ // files to get loaded.
+ //
+ // Check also whether any of loaded plugins doesn't require plugins
+ // defined in config.removePlugins. Throw non-blocking error if this happens.
+ for ( var pluginName in plugins ) {
+ var plugin = plugins[ pluginName ],
+ pluginLangs = plugin.lang,
+ lang = null,
+ requires = plugin.requires,
+ match, name;
+
+ // Transform it into a string, if it's not one.
+ if ( CKEDITOR.tools.isArray( requires ) )
+ requires = requires.join( ',' );
+
+ if ( requires && ( match = requires.match( removeRegex ) ) ) {
+ while ( ( name = match.pop() ) ) {
+ CKEDITOR.tools.setTimeout( function( name, pluginName ) {
+ throw new Error( 'Plugin "' + name.replace( ',', '' ) + '" cannot be removed from the plugins list, because it\'s required by "' + pluginName + '" plugin.');
+ }, 0, null, [ name, pluginName ] );
+ }
+ }
+
+ // If the plugin has "lang".
+ if ( pluginLangs && !editor.lang[ pluginName ] ) {
+ // Trasnform the plugin langs into an array, if it's not one.
+ if ( pluginLangs.split )
+ pluginLangs = pluginLangs.split( ',' );
+
+ // Resolve the plugin language. If the current language
+ // is not available, get English or the first one.
+ if ( CKEDITOR.tools.indexOf( pluginLangs, editor.langCode ) >= 0 )
+ lang = editor.langCode;
+ else {
+ // The language code may have the locale information (zh-cn).
+ // Fall back to locale-less in that case (zh).
+ var langPart = editor.langCode.replace( /-.*/, '' );
+ if ( langPart != editor.langCode && CKEDITOR.tools.indexOf( pluginLangs, langPart ) >= 0 )
+ lang = langPart;
+ // Try the only "generic" option we have: English.
+ else if ( CKEDITOR.tools.indexOf( pluginLangs, 'en' ) >= 0 )
+ lang = 'en';
+ else
+ lang = pluginLangs[ 0 ];
+ }
+
+ if ( !plugin.langEntries || !plugin.langEntries[ lang ] ) {
+ // Put the language file URL into the list of files to
+ // get downloaded.
+ languageFiles.push( CKEDITOR.getUrl( plugin.path + 'lang/' + lang + '.js' ) );
+ } else {
+ editor.lang[ pluginName ] = plugin.langEntries[ lang ];
+ lang = null;
+ }
+ }
+
+ // Save the language code, so we know later which
+ // language has been resolved to this plugin.
+ languageCodes.push( lang );
+
+ pluginsArray.push( plugin );
+ }
+
+ // Load all plugin specific language files in a row.
+ CKEDITOR.scriptLoader.load( languageFiles, function() {
+ // Initialize all plugins that have the "beforeInit" and "init" methods defined.
+ var methods = [ 'beforeInit', 'init', 'afterInit' ];
+ for ( var m = 0; m < methods.length; m++ ) {
+ for ( var i = 0; i < pluginsArray.length; i++ ) {
+ var plugin = pluginsArray[ i ];
+
+ // Uses the first loop to update the language entries also.
+ if ( m === 0 && languageCodes[ i ] && plugin.lang && plugin.langEntries )
+ editor.lang[ plugin.name ] = plugin.langEntries[ languageCodes[ i ] ];
+
+ // Call the plugin method (beforeInit and init).
+ if ( plugin[ methods[ m ] ] )
+ plugin[ methods[ m ] ]( editor );
+ }
+ }
+
+ editor.fireOnce( 'pluginsLoaded' );
+
+ // Setup the configured keystrokes.
+ config.keystrokes && editor.setKeystroke( editor.config.keystrokes );
+
+ // Setup the configured blocked keystrokes.
+ for ( i = 0; i < editor.config.blockedKeystrokes.length; i++ )
+ editor.keystrokeHandler.blockedKeystrokes[ editor.config.blockedKeystrokes[ i ] ] = 1;
+
+ editor.fireOnce( 'loaded' );
+ CKEDITOR.fire( 'instanceLoaded', null, editor );
+ });
+ });
+ }
+
+ // Send to data output back to editor's associated element.
+ function updateEditorElement() {
+ var element = this.element;
+
+ // Some editor creation mode will not have the
+ // associated element.
+ if ( element && this.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO ) {
+ var data = this.getData();
+
+ if ( this.config.htmlEncodeOutput )
+ data = CKEDITOR.tools.htmlEncode( data );
+
+ if ( element.is( 'textarea' ) )
+ element.setValue( data );
+ else
+ element.setHtml( data );
+
+ return true;
+ }
+ return false;
+ }
+
+ CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
+ /**
+ * Adds a command definition to the editor instance. Commands added with
+ * this function can be executed later with the <code>{@link #execCommand}</code> method.
+ *
+ * editorInstance.addCommand( 'sample', {
+ * exec: function( editor ) {
+ * alert( 'Executing a command for the editor name "' + editor.name + '"!' );
+ * }
+ * } );
+ *
+ * @param {String} commandName The indentifier name of the command.
+ * @param {CKEDITOR.commandDefinition} commandDefinition The command definition.
+ */
+ addCommand: function( commandName, commandDefinition ) {
+ return this.commands[ commandName ] = new CKEDITOR.command( this, commandDefinition );
+ },
+
+ /**
+ * Destroys the editor instance, releasing all resources used by it.
+ * If the editor replaced an element, the element will be recovered.
+ *
+ * alert( CKEDITOR.instances.editor1 ); // e.g. object
+ * CKEDITOR.instances.editor1.destroy();
+ * alert( CKEDITOR.instances.editor1 ); // undefined
+ *
+ * @param {Boolean} [noUpdate] If the instance is replacing a DOM
+ * element, this parameter indicates whether or not to update the
+ * element with the instance contents.
+ */
+ destroy: function( noUpdate ) {
+ this.fire( 'beforeDestroy' );
+
+ !noUpdate && updateEditorElement.call( this );
+
+ this.editable( null );
+
+ this.fire( 'destroy' );
+
+ // Plug off all listeners to prevent any further events firing.
+ this.removeAllListeners();
+
+ CKEDITOR.remove( this );
+ CKEDITOR.fire( 'instanceDestroyed', null, this );
+ },
+
+ /**
+ * @param {CKEDITOR.dom.node} [startNode] From which the path should start, if not specified default to editor selection's
+ * start element yield by {@link CKEDITOR.dom.selection#getStartElement}.
+ * @returns {CKEDITOR.dom.elementPath}
+ * @see CKEDITOR.dom.elementPath
+ */
+ elementPath: function( startNode ) {
+ startNode = startNode || this.getSelection().getStartElement();
+ return startNode ? new CKEDITOR.dom.elementPath( startNode, this.editable() ) : null;
+ },
+
+ /**
+ * Shortcut to create a {@link CKEDITOR.dom.range} instance from the editable element.
+ *
+ * @returns {CKEDITOR.dom.range} The dom range created if the editable has presented.
+ * @see CKEDITOR.dom.range
+ */
+ createRange: function() {
+ var editable = this.editable();
+ return editable ? new CKEDITOR.dom.range( editable ) : null;
+ },
+
+ /**
+ * Executes a command associated with the editor.
+ *
+ * editorInstance.execCommand( 'bold' );
+ *
+ * @param {String} commandName The indentifier name of the command.
+ * @param {Object} [data] Data to be passed to the command.
+ * @returns {Boolean} `true` if the command was executed
+ * successfully, otherwise `false`.
+ * @see CKEDITOR.editor#addCommand
+ */
+ execCommand: function( commandName, data ) {
+ var command = this.getCommand( commandName );
+
+ var eventData = {
+ name: commandName,
+ commandData: data,
+ command: command
+ };
+
+ if ( command && command.state != CKEDITOR.TRISTATE_DISABLED ) {
+ if ( this.fire( 'beforeCommandExec', eventData ) !== true ) {
+ eventData.returnValue = command.exec( eventData.commandData );
+
+ // Fire the 'afterCommandExec' immediately if command is synchronous.
+ if ( !command.async && this.fire( 'afterCommandExec', eventData ) !== true )
+ return eventData.returnValue;
+ }
+ }
+
+ // throw 'Unknown command name "' + commandName + '"';
+ return false;
+ },
+
+ /**
+ * Gets one of the registered commands. Note that after registering a
+ * command definition with {@link #addCommand}, it is
+ * transformed internally into an instance of
+ * {@link CKEDITOR.command}, which will then be returned by this function.
+ *
+ * @param {String} commandName The name of the command to be returned.
+ * This is the same name that is used to register the command with `addCommand`.
+ * @returns {CKEDITOR.command} The command object identified by the provided name.
+ */
+ getCommand: function( commandName ) {
+ return this.commands[ commandName ];
+ },
+
+ /**
+ * Gets the editor data. The data will be in raw format. It is the same
+ * data that is posted by the editor.
+ *
+ * if ( CKEDITOR.instances.editor1.getData() == '' )
+ * alert( 'There is no data available' );
+ *
+ * @returns {String} The editor data.
+ */
+ getData: function( noEvents ) {
+ !noEvents && this.fire( 'beforeGetData' );
+
+ var eventData = this._.data;
+
+ if ( typeof eventData != 'string' ) {
+ var element = this.element;
+ if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
+ eventData = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
+ else
+ eventData = '';
+ }
+
+ eventData = { dataValue: eventData };
+
+ // Fire "getData" so data manipulation may happen.
+ !noEvents && this.fire( 'getData', eventData );
+
+ return eventData.dataValue;
+ },
+
+ /**
+ * Gets the "raw data" currently available in the editor. This is a
+ * fast method which returns the data as is, without processing, so it is
+ * not recommended to use it on resulting pages. Instead it can be used
+ * combined with the {@link #method-loadSnapshot} method in order
+ * to be able to automatically save the editor data from time to time
+ * while the user is using the editor, to avoid data loss, without risking
+ * performance issues.
+ *
+ * alert( editor.getSnapshot() );
+ *
+ * @see CKEDITOR.editor#getData
+ */
+ getSnapshot: function() {
+ var data = this.fire( 'getSnapshot' );
+
+ if ( typeof data != 'string' ) {
+ var element = this.element;
+ if ( element && this.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
+ data = element.is( 'textarea' ) ? element.getValue() : element.getHtml();
+ }
+
+ return data;
+ },
+
+ /**
+ * Loads "raw data" into the editor. The data is loaded with processing
+ * straight to the editing area. It should not be used as a way to load
+ * any kind of data, but instead in combination with
+ * {@link #method-getSnapshot} produced data.
+ *
+ * var data = editor.getSnapshot();
+ * editor.loadSnapshot( data );
+ *
+ * @see CKEDITOR.editor#setData
+ */
+ loadSnapshot: function( snapshot ) {
+ this.fire( 'loadSnapshot', snapshot );
+ },
+
+ /**
+ * Sets the editor data. The data must be provided in the raw format (HTML).
+ *
+ * Note that this method is asynchronous. The `callback` parameter must
+ * be used if interaction with the editor is needed after setting the data.
+ *
+ * CKEDITOR.instances.editor1.setData( '<p>This is the editor data.</p>' );
+ *
+ * CKEDITOR.instances.editor1.setData( '<p>Some other editor data.</p>', function() {
+ * this.checkDirty(); // true
+ * });
+ *
+ * @param {String} data HTML code to replace the curent content in the editor.
+ * @param {Function} callback Function to be called after the `setData` is completed.
+ * @param {Boolean} internal Whether to suppress any event firing when copying data internally inside the editor.
+ */
+ setData: function( data, callback, internal ) {
+ if ( callback ) {
+ this.on( 'dataReady', function( evt ) {
+ evt.removeListener();
+ callback.call( evt.editor );
+ });
+ }
+
+ // Fire "setData" so data manipulation may happen.
+ var eventData = { dataValue: data };
+ !internal && this.fire( 'setData', eventData );
+
+ this._.data = eventData.dataValue;
+
+ !internal && this.fire( 'afterSetData', eventData );
+ },
+
+ /**
+ * Puts or restores the editor into read-only state. When in read-only,
+ * the user is not able to change the editor contents, but can still use
+ * some editor features. This function sets the {@link #property-readOnly}
+ * property of the editor, firing the {@link #event-readOnly} event.
+ *
+ * **Note:** the current editing area will be reloaded.
+ *
+ * @since 3.6
+ * @param {Boolean} [isReadOnly] Indicates that the editor must go
+ * read-only (`true`, default) or be restored and made editable (`false`).
+ */
+ setReadOnly: function( isReadOnly ) {
+ isReadOnly = ( isReadOnly == undefined ) || isReadOnly;
+
+ if ( this.readOnly != isReadOnly ) {
+ this.readOnly = isReadOnly;
+
+ this.editable().setReadOnly( isReadOnly );
+
+ // Fire the readOnly event so the editor features can update
+ // their state accordingly.
+ this.fire( 'readOnly' );
+ }
+ },
+
+ /**
+ * Inserts HTML code into the currently selected position in the editor in WYSIWYG mode.
+ *
+ * * `"html"` - content being inserted will completely override styles
+ * of selected position.
+ * * `"text"` - content being inserted will inherit styles applied in
+ * selected position. This mode should be used when inserting "htmlified" plain text
+ * (HTML without inline styles and styling elements like
+ * `<b/>, <strong/>, <span style="..."/>`).
+ *
+ * Example:
+ *
+ * CKEDITOR.instances.editor1.insertHtml( '<p>This is a new paragraph.</p>' );
+ *
+ * @param {String} html HTML code to be inserted into the editor.
+ * @param {String} [mode='html'] Mode in which HTML will be inserted.
+ */
+ insertHtml: function( html, mode ) {
+ this.fire( 'insertHtml', { dataValue: html, mode: mode } );
+ },
+
+ /**
+ * Insert text content into the currently selected position in the
+ * editor in WYSIWYG mode. The styles of the selected element will be applied to the inserted text.
+ * Spaces around the text will be leaving untouched.
+ *
+ * CKEDITOR.instances.editor1.insertText( ' line1 \n\n line2' );
+ *
+ * @since 3.5
+ * @param {String} text Text to be inserted into the editor.
+ */
+ insertText: function( text ) {
+ this.fire( 'insertText', text );
+ },
+
+ /**
+ * Inserts an element into the currently selected position in the
+ * editor in WYSIWYG mode.
+ *
+ * var element = CKEDITOR.dom.element.createFromHtml( '<img src="hello.png" border="0" title="Hello" />' );
+ * CKEDITOR.instances.editor1.insertElement( element );
+ *
+ * @param {CKEDITOR.dom.element} element The element to be inserted
+ * into the editor.
+ */
+ insertElement: function( element ) {
+ this.fire( 'insertElement', element );
+ },
+
+ /**
+ * Moves the selection focus to the editing area space in the editor.
+ */
+ focus: function() {
+ this.fire( 'beforeFocus' );
+ },
+
+ /**
+ * Checks whether the current editor contents present changes when
+ * compared to the contents loaded into the editor at startup, or to
+ * the contents available in the editor when {@link #resetDirty}
+ * was called.
+ *
+ * function beforeUnload( evt ) {
+ * if ( CKEDITOR.instances.editor1.checkDirty() )
+ * return e.returnValue = "You will lose the changes made in the editor.";
+ * }
+ *
+ * if ( window.addEventListener )
+ * window.addEventListener( 'beforeunload', beforeUnload, false );
+ * else
+ * window.attachEvent( 'onbeforeunload', beforeUnload );
+ *
+ * @returns {Boolean} `true` if the contents contain changes.
+ */
+ checkDirty: function() {
+ return this._.previousValue !== this.getSnapshot();
+ },
+
+ /**
+ * Resets the "dirty state" of the editor so subsequent calls to
+ * {@link #checkDirty} will return `false` if the user will not
+ * have made further changes to the contents.
+ *
+ * alert( editor.checkDirty() ); // e.g. true
+ * editor.resetDirty();
+ * alert( editor.checkDirty() ); // false
+ */
+ resetDirty: function() {
+ this._.previousValue = this.getSnapshot();
+ },
+
+ /**
+ * Updates the <code><textarea></code> element that was replaced by the editor with
+ * the current data available in the editor.
+ *
+ * **Note:** This method will only affect those editor instances created
+ * with {@link CKEDITOR#ELEMENT_MODE_REPLACE} element mode.
+ *
+ * CKEDITOR.instances.editor1.updateElement();
+ * alert( document.getElementById( 'editor1' ).value ); // The current editor data.
+ *
+ * @see CKEDITOR.editor#element
+ */
+ updateElement: function() {
+ return updateEditorElement.call( this );
+ },
+
+ /**
+ * Assigns keystrokes associated to editor commands.
+ *
+ * editor.setKeystroke( CKEDITOR.CTRL + 115, 'save' ); // Assigned CTRL+S to "save" command.
+ * editor.setKeystroke( CKEDITOR.CTRL + 115, false ); // Disabled CTRL+S keystroke assignment.
+ * editor.setKeystroke( [
+ * [ CKEDITOR.ALT + 122, false ],
+ * [ CKEDITOR.CTRL + 121, 'link' ],
+ * [ CKEDITOR.SHIFT + 120, 'bold' ]
+ * ] );
+ *
+ * This method may be used in the following cases:
+ *
+ * * By plugins (like `link` or `basicstyles`) to set their keystrokes when plugins are being loaded.
+ * * During the runtime to modify existing keystrokes.
+ *
+ * The editor handles keystroke configuration in the following order:
+ *
+ * 1. Plugins use this method to define default keystrokes.
+ * 2. Editor extends default keystrokes with {@link CKEDITOR.config#keystrokes}.
+ * 3. Editor blocks keystrokes defined in {@link CKEDITOR.config#blockedKeystrokes}.
+ *
+ * After all, you can still set new keystrokes using this method during the runtime.
+ *
+ * @since 4.0
+ * @param {Number/Array} keystroke Keystroke or an array of keystroke definitions.
+ * @param {String/Boolean} [behavior] A command to be executed on the keystroke.
+ */
+ setKeystroke: function() {
+ var keystrokes = this.keystrokeHandler.keystrokes,
+ newKeystrokes = CKEDITOR.tools.isArray( arguments[ 0 ] ) ? arguments[ 0 ] : [ [].slice.call( arguments, 0 ) ],
+ keystroke, behavior;
+
+ for ( var i = newKeystrokes.length; i--; ) {
+ keystroke = newKeystrokes[ i ];
+ behavior = 0;
+
+ // It may be a pair of: [ key, command ]
+ if ( CKEDITOR.tools.isArray( keystroke ) ) {
+ behavior = keystroke[ 1 ];
+ keystroke = keystroke[ 0 ];
+ }
+
+ if ( behavior )
+ keystrokes[ keystroke ] = behavior;
+ else
+ delete keystrokes[ keystroke ];
+ }
+ }
+ });
+})();
+
+/**
+ * The editor has no associated element.
+ *
+ * @readonly
+ * @property {Number} [=0]
+ * @member CKEDITOR
+ */
+CKEDITOR.ELEMENT_MODE_NONE = 0;
+
+/**
+ * The element is to be replaced by the editor instance.
+ *
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
+ */
+CKEDITOR.ELEMENT_MODE_REPLACE = 1;
+
+/**
+ * The editor is to be created inside the element.
+ *
+ * @readonly
+ * @property {Number} [=2]
+ * @member CKEDITOR
+ */
+CKEDITOR.ELEMENT_MODE_APPENDTO = 2;
+
+/**
+ * The editor is to be attached to the element, using it as the editing block.
+ *
+ * @readonly
+ * @property {Number} [=3]
+ * @member CKEDITOR
+ */
+CKEDITOR.ELEMENT_MODE_INLINE = 3;
+
+/**
+ * Whether to escape HTML when the editor updates the original input element.
+ *
+ * config.htmlEncodeOutput = true;
+ *
+ * @since 3.1
+ * @cfg {Boolean} [htmlEncodeOutput=false]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * If `true`, makes the editor start in read-only state. Otherwise, it will check
+ * if the linked `<textarea>` element has the `disabled` attribute.
+ *
+ * config.readOnly = true;
+ *
+ * @since 3.6
+ * @cfg {Boolean} [readOnly=false]
+ * @member CKEDITOR.config
+ * @see CKEDITOR.editor#setReadOnly
+ */
+
+/**
+ * Sets whether the editable should have the focus when editor is loading for the first time.
+ *
+ * config.startupFocus = true;
+ *
+ * @cfg {Boolean} [startupFocus=false]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Sets listeners on editor's events.
+ *
+ * **Note:** This property can be set only in `config` object passed directly
+ * to the {@link CKEDITOR#replace}, {@link CKEDITOR#inline} and other creators.
+ *
+ * CKEDITOR.replace( 'editor1', {
+ * on: {
+ * instanceReady: function() {
+ * alert( this.name ); // 'editor1'
+ * },
+ *
+ * key: function() {
+ * // ...
+ * }
+ * }
+ * } );
+ *
+ * @cfg {Object} on
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The outer most element in the DOM tree in which the editable element resides, it's provided
+ * by the concrete editor creator after editor UI is created and is not subjected to
+ * be modified.
+ *
+ * var editor = CKEDITOR.instances.editor1;
+ * alert( editor.container.getName() ); // 'span'
+ *
+ * @property {CKEDITOR.dom.element} container
+ */
+
+/**
+ * Fired when a CKEDITOR instance is created, but still before initializing it.
+ * To interact with a fully initialized instance, use the
+ * {@link CKEDITOR#instanceReady} event instead.
+ *
+ * @event instanceCreated
+ * @member CKEDITOR
+ * @param {CKEDITOR.editor} editor The editor instance that has been created.
+ */
+
+/**
+ * Fired when a CKEDITOR instance is destroyed.
+ *
+ * @event instanceDestroyed
+ * @member CKEDITOR
+ * @param {CKEDITOR.editor} editor The editor instance that has been destroyed.
+ */
+
+/**
+ * Fired when a CKEDITOR instance is created, fully initialized and ready for interaction.
+ *
+ * @event instanceReady
+ * @member CKEDITOR
+ * @param {CKEDITOR.editor} editor The editor instance that has been created.
+ */
+
+/**
+ * Fired when the language is loaded into the editor instance.
+ *
+ * @since 3.6.1
+ * @event langLoaded
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired when all plugins are loaded and initialized into the editor instance.
+ *
+ * @event pluginsLoaded
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired before the command execution when {@link #execCommand} is called.
+ *
+ * @event beforeCommandExec
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.name The command name.
+ * @param {Object} data.commandData The data to be sent to the command. This
+ * can be manipulated by the event listener.
+ * @param {CKEDITOR.command} data.command The command itself.
+ */
+
+/**
+ * Fired after the command execution when {@link #execCommand} is called.
+ *
+ * @event afterCommandExec
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.name The command name.
+ * @param {Object} data.commandData The data sent to the command.
+ * @param {CKEDITOR.command} data.command The command itself.
+ * @param {Object} data.returnValue The value returned by the command execution.
+ */
+
+/**
+ * Fired when the custom configuration file is loaded, before the final
+ * configurations initialization.
+ *
+ * Custom configuration files can be loaded thorugh the
+ * {@link CKEDITOR.config#customConfig} setting. Several files can be loaded
+ * by changing this setting.
+ *
+ * @event customConfigLoaded
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired once the editor configuration is ready (loaded and processed).
+ *
+ * @event configLoaded
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired when this editor instance is destroyed. The editor at this
+ * point is not usable and this event should be used to perform the clean-up
+ * in any plugin.
+ *
+ * @event destroy
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Internal event to get the current data.
+ *
+ * @event beforeGetData
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Internal event to perform the {@link #method-getSnapshot} call.
+ *
+ * @event getSnapshot
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Internal event to perform the {@link #method-loadSnapshot} call.
+ *
+ * @event loadSnapshot
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data The data that will be used.
+ */
+
+/**
+ * Event fired before the {@link #method-getData} call returns allowing additional manipulation.
+ *
+ * @event getData
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.dataValue The data that will be returned.
+ */
+
+/**
+ * Event fired before the {@link #method-setData} call is executed allowing additional manipulation.
+ *
+ * @event setData
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.dataValue The data that will be used.
+ */
+
+/**
+ * Event fired at the end of the {@link #method-setData} call execution. Usually it is better to use the
+ * {@link #dataReady} event.
+ *
+ * @event afterSetData
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.dataValue The data that has been set.
+ */
+
+/**
+ * Fired as an indicator of the editor data loading. It may be the result of
+ * calling {@link #method-setData} explicitly or an internal
+ * editor function, like the editor editing mode switching (move to Source and back).
+ *
+ * @event dataReady
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired when the CKEDITOR instance is completely created, fully initialized
+ * and ready for interaction.
+ *
+ * @event instanceReady
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Internal event to perform the {@link #method-insertHtml} call.
+ *
+ * @event insertHtml
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.mode Mode in which data is inserted (see {@link #method-insertHtml}).
+ * @param {String} data.dataValue The HTML to insert.
+ */
+
+/**
+ * Internal event to perform the {@link #method-insertText} call.
+ *
+ * @event insertText
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data The text to insert.
+ */
+
+/**
+ * Internal event to perform the {@link #method-insertElement} call.
+ *
+ * @event insertElement
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {CKEDITOR.dom.element} data The element to insert.
+ */
+
+/**
+ * Event fired after the {@link #property-readOnly} property changes.
+ *
+ * @since 3.6
+ * @event readOnly
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Event fired when an UI template is added to the editor instance. It makes
+ * it possible to bring customizations to the template source.
+ *
+ * @event template
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.name The template name.
+ * @param {String} data.source The source data for this template.
+ */
+
+/**
+ * Fired when content of the editor (its DOM structure) is ready.
+ * It is similar to native DOMContentLoaded event, but it concerns
+ * editor's content. It is also a first event fired after
+ * {@link CKEDITOR.editable} is initialized.
+ *
+ * This event is particularly important for framed editor, because
+ * on editor initialization and every time data are set
+ * (by {@link CKEDITOR.editor#method-setData}) contents DOM structure
+ * is rebuilt. Thus, e.g. you need to attach DOM events listeners
+ * on editable one more time.
+ *
+ * On inline editor this event is fired only once - when editor
+ * is initialized for the first time. That's because setting
+ * editor's content doesn't cause editable destruction and creation.
+ *
+ * {@link #contentDom} goes along with {@link #contentDomUnload} which
+ * is fired before contents DOM structure is destroyed. This is the
+ * right moment to detach content DOM events listener. Otherwise
+ * browsers like IE or Opera may throw exceptions when accessing
+ * elements from detached document.
+ *
+ * **Note:** {@link CKEDITOR.editable#attachListener} is a convenient
+ * way to attach listeners that will be detached on {@link #contentDomUnload}.
+ *
+ * editor.on( 'contentDom', function() {
+ * var editable = editor.editable();
+ *
+ * editable.attachListener( editable, 'click', function() {
+ * console.log( 'Editable has been clicked' );
+ * });
+ * });
+ *
+ * @event contentDom
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired before contents DOM structure is destroyed.
+ * See {@link #contentDom} documentation for more details.
+ *
+ * @event contentDomUnload
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
\ No newline at end of file
diff --git a/devel/third-party/ckeditor/core/editor_basic.js b/devel/third-party/ckeditor/core/editor_basic.js
index ec90bf7..8c54b8f 100644
--- a/devel/third-party/ckeditor/core/editor_basic.js
+++ b/devel/third-party/ckeditor/core/editor_basic.js
@@ -1,182 +1,36 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-if ( !CKEDITOR.editor )
-{
- /**
- * No element is linked to the editor instance.
- * @constant
- * @example
- */
- CKEDITOR.ELEMENT_MODE_NONE = 0;
-
- /**
- * The element is to be replaced by the editor instance.
- * @constant
- * @example
- */
- CKEDITOR.ELEMENT_MODE_REPLACE = 1;
-
- /**
- * The editor is to be created inside the element.
- * @constant
- * @example
- */
- CKEDITOR.ELEMENT_MODE_APPENDTO = 2;
-
- /**
- * Represents an editor instance. This constructor should be rarely used,
- * being the {@link CKEDITOR} methods preferible.
- * @constructor
- * @param {Object} instanceConfig Configuration values for this specific
- * instance.
- * @param {CKEDITOR.dom.element} [element] The element linked to this
- * instance.
- * @param {Number} [mode] The mode in which the element is linked to this
- * instance.
- * @param {String} [data] Since 3.3. Initial value for the instance.
- * @augments CKEDITOR.event
- * @example
- */
- CKEDITOR.editor = function( instanceConfig, element, mode, data )
- {
- this._ =
- {
- // Save the config to be processed later by the full core code.
- instanceConfig : instanceConfig,
- element : element,
- data : data
- };
-
- /**
- * The mode in which the {@link #element} is linked to this editor
- * instance. It can be any of the following values:
- * <ul>
- * <li><b>CKEDITOR.ELEMENT_MODE_NONE</b>: No element is linked to the
- * editor instance.</li>
- * <li><b>CKEDITOR.ELEMENT_MODE_REPLACE</b>: The element is to be
- * replaced by the editor instance.</li>
- * <li><b>CKEDITOR.ELEMENT_MODE_APPENDTO</b>: The editor is to be
- * created inside the element.</li>
- * </ul>
- * @name CKEDITOR.editor.prototype.elementMode
- * @type Number
- * @example
- * var editor = CKEDITOR.replace( 'editor1' );
- * alert( <b>editor.elementMode</b> ); "1"
- */
- this.elementMode = mode || CKEDITOR.ELEMENT_MODE_NONE;
-
- // Call the CKEDITOR.event constructor to initialize this instance.
- CKEDITOR.event.call( this );
-
- this._init();
- };
-
- /**
- * Replaces a <textarea> or a DOM element (DIV) with a CKEditor
- * instance. For textareas, the initial value in the editor will be the
- * textarea value. For DOM elements, their innerHTML will be used
- * instead. We recommend using TEXTAREA and DIV elements only. Do not use
- * this function directly. Use {@link CKEDITOR.replace} instead.
- * @param {Object|String} elementOrIdOrName The DOM element (textarea), its
- * ID or name.
- * @param {Object} [config] The specific configurations to apply to this
- * editor instance. Configurations set here will override global CKEditor
- * settings.
- * @returns {CKEDITOR.editor} The editor instance created.
- * @example
- */
- CKEDITOR.editor.replace = function( elementOrIdOrName, config )
- {
- var element = elementOrIdOrName;
-
- if ( typeof element != 'object' )
- {
- // Look for the element by id. We accept any kind of element here.
- element = document.getElementById( elementOrIdOrName );
-
- // If not found, look for elements by name. In this case we accept only
- // textareas.
- if ( !element )
- {
- var i = 0,
- textareasByName = document.getElementsByName( elementOrIdOrName );
-
- while ( ( element = textareasByName[ i++ ] ) && element.tagName.toLowerCase() != 'textarea' )
- { /*jsl:pass*/ }
- }
-
- if ( !element )
- throw '[CKEDITOR.editor.replace] The element with id or name "' + elementOrIdOrName + '" was not found.';
- }
-
- // Do not replace the textarea right now, just hide it. The effective
- // replacement will be done by the _init function.
- element.style.visibility = 'hidden';
-
- // Create the editor instance.
- return new CKEDITOR.editor( config, element, CKEDITOR.ELEMENT_MODE_REPLACE );
- };
-
- /**
- * Creates a new editor instance inside a specific DOM element. Do not use
- * this function directly. Use {@link CKEDITOR.appendTo} instead.
- * @param {Object|String} elementOrId The DOM element or its ID.
- * @param {Object} [config] The specific configurations to apply to this
- * editor instance. Configurations set here will override global CKEditor
- * settings.
- * @param {String} [data] Since 3.3. Initial value for the instance.
- * @returns {CKEDITOR.editor} The editor instance created.
- * @example
- */
- CKEDITOR.editor.appendTo = function( elementOrId, config, data )
- {
- var element = elementOrId;
- if ( typeof element != 'object' )
- {
- element = document.getElementById( elementOrId );
-
- if ( !element )
- throw '[CKEDITOR.editor.appendTo] The element with id "' + elementOrId + '" was not found.';
- }
-
- // Create the editor instance.
- return new CKEDITOR.editor( config, element, CKEDITOR.ELEMENT_MODE_APPENDTO, data );
- };
-
- CKEDITOR.editor.prototype =
- {
- /**
- * Initializes the editor instance. This function will be overriden by the
- * full CKEDITOR.editor implementation (editor.js).
- * @private
- */
- _init : function()
- {
- var pending = CKEDITOR.editor._pending || ( CKEDITOR.editor._pending = [] );
- pending.push( this );
- },
-
- // Both fire and fireOnce will always pass this editor instance as the
- // "editor" param in CKEDITOR.event.fire. So, we override it to do that
- // automaticaly.
-
- /** @ignore */
- fire : function( eventName, data )
- {
- return CKEDITOR.event.prototype.fire.call( this, eventName, data, this );
- },
-
- /** @ignore */
- fireOnce : function( eventName, data )
- {
- return CKEDITOR.event.prototype.fireOnce.call( this, eventName, data, this );
- }
- };
-
- // "Inherit" (copy actually) from CKEDITOR.event.
- CKEDITOR.event.implementOn( CKEDITOR.editor.prototype, true );
-}
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+if ( !CKEDITOR.editor ) {
+ // Documented at editor.js.
+ CKEDITOR.editor = function() {
+ // Push this editor to the pending list. It'll be processed later once
+ // the full editor code is loaded.
+ CKEDITOR._.pending.push( [ this, arguments ] );
+
+ // Call the CKEDITOR.event constructor to initialize this instance.
+ CKEDITOR.event.call( this );
+ };
+
+ // Both fire and fireOnce will always pass this editor instance as the
+ // "editor" param in CKEDITOR.event.fire. So, we override it to do that
+ // automaticaly.
+ CKEDITOR.editor.prototype.fire = function( eventName, data ) {
+ if ( eventName in { instanceReady:1,loaded:1 } )
+ this[ eventName ] = true;
+
+ return CKEDITOR.event.prototype.fire.call( this, eventName, data, this );
+ };
+
+ CKEDITOR.editor.prototype.fireOnce = function( eventName, data ) {
+ if ( eventName in { instanceReady:1,loaded:1 } )
+ this[ eventName ] = true;
+
+ return CKEDITOR.event.prototype.fireOnce.call( this, eventName, data, this );
+ };
+
+ // "Inherit" (copy actually) from CKEDITOR.event.
+ CKEDITOR.event.implementOn( CKEDITOR.editor.prototype );
+}
diff --git a/devel/third-party/ckeditor/core/env.js b/devel/third-party/ckeditor/core/env.js
index a0ae465..95a157f 100644
--- a/devel/third-party/ckeditor/core/env.js
+++ b/devel/third-party/ckeditor/core/env.js
@@ -1,229 +1,314 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.env} object, which constains
- * environment and browser information.
- */
-
-if ( !CKEDITOR.env )
-{
- /**
- * Environment and browser information.
- * @namespace
- * @example
- */
- CKEDITOR.env = (function()
- {
- var agent = navigator.userAgent.toLowerCase();
- var opera = window.opera;
-
- var env =
- /** @lends CKEDITOR.env */
- {
- /**
- * Indicates that CKEditor is running on Internet Explorer.
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.ie )
- * alert( "I'm on IE!" );
- */
- ie : /*@cc_on!@*/false,
-
- /**
- * Indicates that CKEditor is running on Opera.
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.opera )
- * alert( "I'm on Opera!" );
- */
- opera : ( !!opera && opera.version ),
-
- /**
- * Indicates that CKEditor is running on a WebKit based browser, like
- * Safari.
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.webkit )
- * alert( "I'm on WebKit!" );
- */
- webkit : ( agent.indexOf( ' applewebkit/' ) > -1 ),
-
- /**
- * Indicates that CKEditor is running on Adobe AIR.
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.air )
- * alert( "I'm on AIR!" );
- */
- air : ( agent.indexOf( ' adobeair/' ) > -1 ),
-
- /**
- * Indicates that CKEditor is running on Macintosh.
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.mac )
- * alert( "I love apples!" );
- */
- mac : ( agent.indexOf( 'macintosh' ) > -1 ),
-
- quirks : ( document.compatMode == 'BackCompat' ),
-
- mobile : ( agent.indexOf( 'mobile' ) > -1 ),
-
- isCustomDomain : function()
- {
- if ( !this.ie )
- return false;
-
- var domain = document.domain,
- hostname = window.location.hostname;
-
- return domain != hostname &&
- domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
- }
- };
-
- /**
- * Indicates that CKEditor is running on a Gecko based browser, like
- * Firefox.
- * @name CKEDITOR.env.gecko
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.gecko )
- * alert( "I'm riding a gecko!" );
- */
- env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera );
-
- var version = 0;
-
- // Internet Explorer 6.0+
- if ( env.ie )
- {
- version = parseFloat( agent.match( /msie (\d+)/ )[1] );
-
- /**
- * Indicate IE8 browser.
- */
- env.ie8 = !!document.documentMode;
-
- /**
- * Indicte IE8 document mode.
- */
- env.ie8Compat = document.documentMode == 8;
-
- /**
- * Indicates that CKEditor is running on an IE7-like environment, which
- * includes IE7 itself and IE8's IE7 document mode.
- * @type Boolean
- */
- env.ie7Compat = ( ( version == 7 && !document.documentMode )
- || document.documentMode == 7 );
-
- /**
- * Indicates that CKEditor is running on an IE6-like environment, which
- * includes IE6 itself and IE7 and IE8 quirks mode.
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.ie6Compat )
- * alert( "I'm on IE6 or quirks mode!" );
- */
- env.ie6Compat = ( version < 7 || env.quirks );
-
- }
-
- // Gecko.
- if ( env.gecko )
- {
- var geckoRelease = agent.match( /rv:([\d\.]+)/ );
- if ( geckoRelease )
- {
- geckoRelease = geckoRelease[1].split( '.' );
- version = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 ) * 1;
- }
- }
-
- // Opera 9.50+
- if ( env.opera )
- version = parseFloat( opera.version() );
-
- // Adobe AIR 1.0+
- // Checked before Safari because AIR have the WebKit rich text editor
- // features from Safari 3.0.4, but the version reported is 420.
- if ( env.air )
- version = parseFloat( agent.match( / adobeair\/(\d+)/ )[1] );
-
- // WebKit 522+ (Safari 3+)
- if ( env.webkit )
- version = parseFloat( agent.match( / applewebkit\/(\d+)/ )[1] );
-
- /**
- * Contains the browser version.
- *
- * For gecko based browsers (like Firefox) it contains the revision
- * number with first three parts concatenated with a padding zero
- * (e.g. for revision 1.9.0.2 we have 10900).
- *
- * For webkit based browser (like Safari and Chrome) it contains the
- * WebKit build version (e.g. 522).
- * @name CKEDITOR.env.version
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.ie && <b>CKEDITOR.env.version</b> <= 6 )
- * alert( "Ouch!" );
- */
- env.version = version;
-
- /**
- * Indicates that CKEditor is running on a compatible browser.
- * @name CKEDITOR.env.isCompatible
- * @type Boolean
- * @example
- * if ( CKEDITOR.env.isCompatible )
- * alert( "Your browser is pretty cool!" );
- */
- env.isCompatible =
- !env.mobile && (
- ( env.ie && version >= 6 ) ||
- ( env.gecko && version >= 10801 ) ||
- ( env.opera && version >= 9.5 ) ||
- ( env.air && version >= 1 ) ||
- ( env.webkit && version >= 522 ) ||
- false );
-
- // The CSS class to be appended on the main UI containers, making it
- // easy to apply browser specific styles to it.
- env.cssClass =
- 'cke_browser_' + (
- env.ie ? 'ie' :
- env.gecko ? 'gecko' :
- env.opera ? 'opera' :
- env.air ? 'air' :
- env.webkit ? 'webkit' :
- 'unknown' );
-
- if ( env.quirks )
- env.cssClass += ' cke_browser_quirks';
-
- if ( env.ie )
- {
- env.cssClass += ' cke_browser_ie' + (
- env.version < 7 ? '6' :
- env.version >= 8 ? '8' :
- '7' );
-
- if ( env.quirks )
- env.cssClass += ' cke_browser_iequirks';
- }
-
- if ( env.gecko && version < 10900 )
- env.cssClass += ' cke_browser_gecko18';
-
- return env;
- })();
-}
-
-// PACKAGER_RENAME( CKEDITOR.env )
-// PACKAGER_RENAME( CKEDITOR.env.ie )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.env} object, which constains
+ * environment and browser information.
+ */
+
+if ( !CKEDITOR.env ) {
+ /**
+ * Environment and browser information.
+ *
+ * @class CKEDITOR.env
+ * @singleton
+ */
+ CKEDITOR.env = (function() {
+ var agent = navigator.userAgent.toLowerCase();
+ var opera = window.opera;
+
+ var env = {
+ /**
+ * Indicates that CKEditor is running on Internet Explorer.
+ *
+ * if ( CKEDITOR.env.ie )
+ * alert( 'I\'m on IE!' );
+ *
+ * @property {Boolean}
+ */
+ ie: eval( '/*@cc_on!@*/false' ),
+ // Use eval to preserve conditional comment when compiling with Google Closure Compiler (#93).
+
+ /**
+ * Indicates that CKEditor is running on Opera.
+ *
+ * if ( CKEDITOR.env.opera )
+ * alert( 'I\'m on Opera!' );
+ *
+ * @property {Boolean}
+ */
+ opera: ( !!opera && opera.version ),
+
+ /**
+ * Indicates that CKEditor is running on a WebKit based browser, like Safari.
+ *
+ * if ( CKEDITOR.env.webkit )
+ * alert( 'I\'m on WebKit!' );
+ *
+ * @property {Boolean}
+ */
+ webkit: ( agent.indexOf( ' applewebkit/' ) > -1 ),
+
+ /**
+ * Indicates that CKEditor is running on Adobe AIR.
+ *
+ * if ( CKEDITOR.env.air )
+ * alert( 'I\'m on AIR!' );
+ *
+ * @property {Boolean}
+ */
+ air: ( agent.indexOf( ' adobeair/' ) > -1 ),
+
+ /**
+ * Indicates that CKEditor is running on Macintosh.
+ *
+ * if ( CKEDITOR.env.mac )
+ * alert( 'I love apples!'' );
+ *
+ * @property {Boolean}
+ */
+ mac: ( agent.indexOf( 'macintosh' ) > -1 ),
+
+ /**
+ * Indicates that CKEditor is running on a quirks mode environemnt.
+ *
+ * if ( CKEDITOR.env.quirks )
+ * alert( 'Nooooo!' );
+ *
+ * @property {Boolean}
+ */
+ quirks: ( document.compatMode == 'BackCompat' ),
+
+ /**
+ * Indicates that CKEditor is running on a mobile like environemnt.
+ *
+ * if ( CKEDITOR.env.mobile )
+ * alert( 'I\'m running with CKEditor today!' );
+ *
+ * @property {Boolean}
+ */
+ mobile: ( agent.indexOf( 'mobile' ) > -1 ),
+
+ /**
+ * Indicates that CKEditor is running on Apple iPhone/iPad/iPod devices.
+ *
+ * if ( CKEDITOR.env.iOS )
+ * alert( 'I like little apples!' );
+ *
+ * @property {Boolean}
+ */
+ iOS: /(ipad|iphone|ipod)/.test( agent ),
+
+ /**
+ * Indicates that the browser has a custom domain enabled. This has
+ * been set with `document.domain`.
+ *
+ * if ( CKEDITOR.env.isCustomDomain() )
+ * alert( 'I\'m in a custom domain!' );
+ *
+ * @returns {Boolean} `true` if a custom domain is enabled.
+ */
+ isCustomDomain: function() {
+ if ( !this.ie )
+ return false;
+
+ var domain = document.domain,
+ hostname = window.location.hostname;
+
+ return domain != hostname && domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)
+ },
+
+ /**
+ * Indicates that page is running under an encrypted connection.
+ *
+ * if ( CKEDITOR.env.secure )
+ * alert( 'I\'m in SSL!' );
+ *
+ * @returns {Boolean} `true` if the page has an encrypted connection.
+ */
+ secure: location.protocol == 'https:'
+ };
+
+ /**
+ * Indicates that CKEditor is running on a Gecko based browser, like
+ * Firefox.
+ *
+ * if ( CKEDITOR.env.gecko )
+ * alert( 'I\'m riding a gecko!' );
+ *
+ * @property {Boolean}
+ */
+ env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera );
+
+ /**
+ * Indicates that CKEditor is running on Chrome.
+ *
+ * if ( CKEDITOR.env.chrome )
+ * alert( 'I\'m riding Chrome!' );
+ *
+ * @property {Boolean} chrome
+ */
+
+ /**
+ * Indicates that CKEditor is running on Safari (including mobile version).
+ *
+ * if ( CKEDITOR.env.safari )
+ * alert( 'I\'m riding Safari!' );
+ *
+ * @property {Boolean} safari
+ */
+ if ( env.webkit ) {
+ if ( agent.indexOf( 'chrome' ) > -1 )
+ env.chrome = true;
+ else
+ env.safari = true;
+ }
+
+ var version = 0;
+
+ // Internet Explorer 6.0+
+ if ( env.ie ) {
+ // We use env.version for feature detection, so set it properly.
+ if ( env.quirks || !document.documentMode )
+ version = parseFloat( agent.match( /msie (\d+)/ )[ 1 ] );
+ else
+ version = document.documentMode;
+
+ // Deprecated features available just for backwards compatibility.
+ env.ie9Compat = version == 9;
+ env.ie8Compat = version == 8;
+ env.ie7Compat = version == 7;
+ env.ie6Compat = version < 7 || env.quirks;
+
+ /**
+ * Indicates that CKEditor is running on an IE6-like environment, which
+ * includes IE6 itself and IE7 and IE8 quirks mode.
+ *
+ * @deprecated
+ * @property {Boolean} ie6Compat
+ */
+
+ /**
+ * Indicates that CKEditor is running on an IE7-like environment, which
+ * includes IE7 itself and IE8's IE7 document mode.
+ *
+ * @deprecated
+ * @property {Boolean} ie7Compat
+ */
+
+ /**
+ * Indicates that CKEditor is running on Internet Explorer 8 on
+ * standards mode.
+ *
+ * @deprecated
+ * @property {Boolean} ie8Compat
+ */
+
+ /**
+ * Indicates that CKEditor is running on Internet Explorer 9's standards mode.
+ *
+ * @deprecated
+ * @property {Boolean} ie9Compat
+ */
+ }
+
+ // Gecko.
+ if ( env.gecko ) {
+ var geckoRelease = agent.match( /rv:([\d\.]+)/ );
+ if ( geckoRelease ) {
+ geckoRelease = geckoRelease[ 1 ].split( '.' );
+ version = geckoRelease[ 0 ] * 10000 + ( geckoRelease[ 1 ] || 0 ) * 100 + ( geckoRelease[ 2 ] || 0 ) * 1;
+ }
+ }
+
+ // Opera 9.50+
+ if ( env.opera )
+ version = parseFloat( opera.version() );
+
+ // Adobe AIR 1.0+
+ // Checked before Safari because AIR have the WebKit rich text editor
+ // features from Safari 3.0.4, but the version reported is 420.
+ if ( env.air )
+ version = parseFloat( agent.match( / adobeair\/(\d+)/ )[ 1 ] );
+
+ // WebKit 522+ (Safari 3+)
+ if ( env.webkit )
+ version = parseFloat( agent.match( / applewebkit\/(\d+)/ )[ 1 ] );
+
+ /**
+ * Contains the browser version.
+ *
+ * For gecko based browsers (like Firefox) it contains the revision
+ * number with first three parts concatenated with a padding zero
+ * (e.g. for revision 1.9.0.2 we have 10900).
+ *
+ * For webkit based browser (like Safari and Chrome) it contains the
+ * WebKit build version (e.g. 522).
+ *
+ * For IE browsers, it matches the "document mode".
+ *
+ * if ( CKEDITOR.env.ie && CKEDITOR.env.version <= 6 )
+ * alert( 'Ouch!' );
+ *
+ * @property {Number}
+ */
+ env.version = version;
+
+ /**
+ * Indicates that CKEditor is running on a compatible browser.
+ *
+ * if ( CKEDITOR.env.isCompatible )
+ * alert( 'Your browser is pretty cool!' );
+ *
+ * @property {Boolean}
+ */
+ env.isCompatible =
+ // White list of mobile devices that supports.
+ env.iOS && version >= 534 ||
+ !env.mobile && (
+ ( env.ie && version > 6 ) ||
+ ( env.gecko && version >= 10801 ) ||
+ ( env.opera && version >= 9.5 ) ||
+ ( env.air && version >= 1 ) ||
+ ( env.webkit && version >= 522 ) ||
+ false
+ );
+
+ /**
+ * The CSS class to be appended on the main UI containers, making it
+ * easy to apply browser specific styles to it.
+ *
+ * myDiv.className = CKEDITOR.env.cssClass;
+ *
+ * @property {String}
+ */
+ env.cssClass = 'cke_browser_' + ( env.ie ? 'ie' : env.gecko ? 'gecko' : env.opera ? 'opera' : env.webkit ? 'webkit' : 'unknown' );
+
+ if ( env.quirks )
+ env.cssClass += ' cke_browser_quirks';
+
+ if ( env.ie ) {
+ env.cssClass += ' cke_browser_ie' + ( env.quirks || env.version < 7 ? '6' : env.version );
+
+ if ( env.quirks )
+ env.cssClass += ' cke_browser_iequirks';
+ }
+
+ if ( env.gecko ) {
+ if ( version < 10900 )
+ env.cssClass += ' cke_browser_gecko18';
+ else if ( version <= 11000 )
+ env.cssClass += ' cke_browser_gecko19';
+ }
+
+ if ( env.air )
+ env.cssClass += ' cke_browser_air';
+
+ return env;
+ })();
+}
+
+// PACKAGER_RENAME( CKEDITOR.env )
+// PACKAGER_RENAME( CKEDITOR.env.ie )
diff --git a/devel/third-party/ckeditor/core/event.js b/devel/third-party/ckeditor/core/event.js
index 8668a3d..fb4c541 100644
--- a/devel/third-party/ckeditor/core/event.js
+++ b/devel/third-party/ckeditor/core/event.js
@@ -1,336 +1,387 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.event} class, which serves as the
- * base for classes and objects that require event handling features.
- */
-
-if ( !CKEDITOR.event )
-{
- /**
- * This is a base class for classes and objects that require event handling
- * features.
- * @constructor
- * @example
- */
- CKEDITOR.event = function()
- {};
-
- /**
- * Implements the {@link CKEDITOR.event} features in an object.
- * @param {Object} targetObject The object in which implement the features.
- * @example
- * var myObject = { message : 'Example' };
- * <b>CKEDITOR.event.implementOn( myObject }</b>;
- * myObject.on( 'testEvent', function()
- * {
- * alert( this.message ); // "Example"
- * });
- * myObject.fire( 'testEvent' );
- */
- CKEDITOR.event.implementOn = function( targetObject, isTargetPrototype )
- {
- var eventProto = CKEDITOR.event.prototype;
-
- for ( var prop in eventProto )
- {
- if ( targetObject[ prop ] == undefined )
- targetObject[ prop ] = eventProto[ prop ];
- }
- };
-
- CKEDITOR.event.prototype = (function()
- {
- // Returns the private events object for a given object.
- var getPrivate = function( obj )
- {
- var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
- return _.events || ( _.events = {} );
- };
-
- var eventEntry = function( eventName )
- {
- this.name = eventName;
- this.listeners = [];
- };
-
- eventEntry.prototype =
- {
- // Get the listener index for a specified function.
- // Returns -1 if not found.
- getListenerIndex : function( listenerFunction )
- {
- for ( var i = 0, listeners = this.listeners ; i < listeners.length ; i++ )
- {
- if ( listeners[i].fn == listenerFunction )
- return i;
- }
- return -1;
- }
- };
-
- return /** @lends CKEDITOR.event.prototype */ {
- /**
- * Registers a listener to a specific event in the current object.
- * @param {String} eventName The event name to which listen.
- * @param {Function} listenerFunction The function listening to the
- * event. A single {@link CKEDITOR.eventInfo} object instanced
- * is passed to this function containing all the event data.
- * @param {Object} [scopeObj] The object used to scope the listener
- * call (the this object. If omitted, the current object is used.
- * @param {Object} [listenerData] Data to be sent as the
- * {@link CKEDITOR.eventInfo#listenerData} when calling the
- * listener.
- * @param {Number} [priority] The listener priority. Lower priority
- * listeners are called first. Listeners with the same priority
- * value are called in registration order. Defaults to 10.
- * @example
- * someObject.on( 'someEvent', function()
- * {
- * alert( this == someObject ); // "true"
- * });
- * @example
- * someObject.on( 'someEvent', function()
- * {
- * alert( this == anotherObject ); // "true"
- * }
- * , anotherObject );
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * alert( event.listenerData ); // "Example"
- * }
- * , null, 'Example' );
- * @example
- * someObject.on( 'someEvent', function() { ... } ); // 2nd called
- * someObject.on( 'someEvent', function() { ... }, null, null, 100 ); // 3rd called
- * someObject.on( 'someEvent', function() { ... }, null, null, 1 ); // 1st called
- */
- on : function( eventName, listenerFunction, scopeObj, listenerData, priority )
- {
- // Get the event entry (create it if needed).
- var events = getPrivate( this ),
- event = events[ eventName ] || ( events[ eventName ] = new eventEntry( eventName ) );
-
- if ( event.getListenerIndex( listenerFunction ) < 0 )
- {
- // Get the listeners.
- var listeners = event.listeners;
-
- // Fill the scope.
- if ( !scopeObj )
- scopeObj = this;
-
- // Default the priority, if needed.
- if ( isNaN( priority ) )
- priority = 10;
-
- var me = this;
-
- // Create the function to be fired for this listener.
- var listenerFirer = function( editor, publisherData, stopFn, cancelFn )
- {
- var ev =
- {
- name : eventName,
- sender : this,
- editor : editor,
- data : publisherData,
- listenerData : listenerData,
- stop : stopFn,
- cancel : cancelFn,
- removeListener : function()
- {
- me.removeListener( eventName, listenerFunction );
- }
- };
-
- listenerFunction.call( scopeObj, ev );
-
- return ev.data;
- };
- listenerFirer.fn = listenerFunction;
- listenerFirer.priority = priority;
-
- // Search for the right position for this new listener, based on its
- // priority.
- for ( var i = listeners.length - 1 ; i >= 0 ; i-- )
- {
- // Find the item which should be before the new one.
- if ( listeners[ i ].priority <= priority )
- {
- // Insert the listener in the array.
- listeners.splice( i + 1, 0, listenerFirer );
- return;
- }
- }
-
- // If no position has been found (or zero length), put it in
- // the front of list.
- listeners.unshift( listenerFirer );
- }
- },
-
- /**
- * Fires an specific event in the object. All registered listeners are
- * called at this point.
- * @function
- * @param {String} eventName The event name to fire.
- * @param {Object} [data] Data to be sent as the
- * {@link CKEDITOR.eventInfo#data} when calling the
- * listeners.
- * @param {CKEDITOR.editor} [editor] The editor instance to send as the
- * {@link CKEDITOR.eventInfo#editor} when calling the
- * listener.
- * @returns {Boolean|Object} A booloan indicating that the event is to be
- * canceled, or data returned by one of the listeners.
- * @example
- * someObject.on( 'someEvent', function() { ... } );
- * someObject.on( 'someEvent', function() { ... } );
- * <b>someObject.fire( 'someEvent' )</b>; // both listeners are called
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * alert( event.data ); // "Example"
- * });
- * <b>someObject.fire( 'someEvent', 'Example' )</b>;
- */
- fire : (function()
- {
- // Create the function that marks the event as stopped.
- var stopped = false;
- var stopEvent = function()
- {
- stopped = true;
- };
-
- // Create the function that marks the event as canceled.
- var canceled = false;
- var cancelEvent = function()
- {
- canceled = true;
- };
-
- return function( eventName, data, editor )
- {
- // Get the event entry.
- var event = getPrivate( this )[ eventName ];
-
- // Save the previous stopped and cancelled states. We may
- // be nesting fire() calls.
- var previousStopped = stopped,
- previousCancelled = canceled;
-
- // Reset the stopped and canceled flags.
- stopped = canceled = false;
-
- if ( event )
- {
- var listeners = event.listeners;
-
- if ( listeners.length )
- {
- // As some listeners may remove themselves from the
- // event, the original array length is dinamic. So,
- // let's make a copy of all listeners, so we are
- // sure we'll call all of them.
- listeners = listeners.slice( 0 );
-
- // Loop through all listeners.
- for ( var i = 0 ; i < listeners.length ; i++ )
- {
- // Call the listener, passing the event data.
- var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
-
- if ( typeof retData != 'undefined' )
- data = retData;
-
- // No further calls is stopped or canceled.
- if ( stopped || canceled )
- break;
- }
- }
- }
-
- var ret = canceled || ( typeof data == 'undefined' ? false : data );
-
- // Restore the previous stopped and canceled states.
- stopped = previousStopped;
- canceled = previousCancelled;
-
- return ret;
- };
- })(),
-
- /**
- * Fires an specific event in the object, releasing all listeners
- * registered to that event. The same listeners are not called again on
- * successive calls of it or of {@link #fire}.
- * @param {String} eventName The event name to fire.
- * @param {Object} [data] Data to be sent as the
- * {@link CKEDITOR.eventInfo#data} when calling the
- * listeners.
- * @param {CKEDITOR.editor} [editor] The editor instance to send as the
- * {@link CKEDITOR.eventInfo#editor} when calling the
- * listener.
- * @returns {Boolean|Object} A booloan indicating that the event is to be
- * canceled, or data returned by one of the listeners.
- * @example
- * someObject.on( 'someEvent', function() { ... } );
- * someObject.fire( 'someEvent' ); // above listener called
- * <b>someObject.fireOnce( 'someEvent' )</b>; // above listener called
- * someObject.fire( 'someEvent' ); // no listeners called
- */
- fireOnce : function( eventName, data, editor )
- {
- var ret = this.fire( eventName, data, editor );
- delete getPrivate( this )[ eventName ];
- return ret;
- },
-
- /**
- * Unregisters a listener function from being called at the specified
- * event. No errors are thrown if the listener has not been
- * registered previously.
- * @param {String} eventName The event name.
- * @param {Function} listenerFunction The listener function to unregister.
- * @example
- * var myListener = function() { ... };
- * someObject.on( 'someEvent', myListener );
- * someObject.fire( 'someEvent' ); // myListener called
- * <b>someObject.removeListener( 'someEvent', myListener )</b>;
- * someObject.fire( 'someEvent' ); // myListener not called
- */
- removeListener : function( eventName, listenerFunction )
- {
- // Get the event entry.
- var event = getPrivate( this )[ eventName ];
-
- if ( event )
- {
- var index = event.getListenerIndex( listenerFunction );
- if ( index >= 0 )
- event.listeners.splice( index, 1 );
- }
- },
-
- /**
- * Checks if there is any listener registered to a given event.
- * @param {String} eventName The event name.
- * @example
- * var myListener = function() { ... };
- * someObject.on( 'someEvent', myListener );
- * alert( someObject.<b>hasListeners( 'someEvent' )</b> ); // "true"
- * alert( someObject.<b>hasListeners( 'noEvent' )</b> ); // "false"
- */
- hasListeners : function( eventName )
- {
- var event = getPrivate( this )[ eventName ];
- return ( event && event.listeners.length > 0 ) ;
- }
- };
- })();
-}
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.event} class, which serves as the
+ * base for classes and objects that require event handling features.
+ */
+
+if ( !CKEDITOR.event ) {
+ /**
+ * Creates an event class instance. This constructor is rearely used, being
+ * the {@link #implementOn} function used in class prototypes directly
+ * instead.
+ *
+ * This is a base class for classes and objects that require event
+ * handling features.
+ *
+ * Do not confuse this class with {@link CKEDITOR.dom.event} which is
+ * instead used for DOM events. The CKEDITOR.event class implements the
+ * internal event system used by the CKEditor to fire API related events.
+ *
+ * @class
+ * @constructor Creates an event class instance.
+ */
+ CKEDITOR.event = function() {};
+
+ /**
+ * Implements the {@link CKEDITOR.event} features in an object.
+ *
+ * var myObject = { message: 'Example' };
+ * CKEDITOR.event.implementOn( myObject );
+ *
+ * myObject.on( 'testEvent', function() {
+ * alert( this.message );
+ * } );
+ * myObject.fire( 'testEvent' ); // 'Example'
+ *
+ * @static
+ * @param {Object} targetObject The object into which implement the features.
+ */
+ CKEDITOR.event.implementOn = function( targetObject ) {
+ var eventProto = CKEDITOR.event.prototype;
+
+ for ( var prop in eventProto ) {
+ if ( targetObject[ prop ] == undefined )
+ targetObject[ prop ] = eventProto[ prop ];
+ }
+ };
+
+ CKEDITOR.event.prototype = (function() {
+ // Returns the private events object for a given object.
+ var getPrivate = function( obj ) {
+ var _ = ( obj.getPrivate && obj.getPrivate() ) || obj._ || ( obj._ = {} );
+ return _.events || ( _.events = {} );
+ };
+
+ var eventEntry = function( eventName ) {
+ this.name = eventName;
+ this.listeners = [];
+ };
+
+ eventEntry.prototype = {
+ // Get the listener index for a specified function.
+ // Returns -1 if not found.
+ getListenerIndex: function( listenerFunction ) {
+ for ( var i = 0, listeners = this.listeners; i < listeners.length; i++ ) {
+ if ( listeners[ i ].fn == listenerFunction )
+ return i;
+ }
+ return -1;
+ }
+ };
+
+ // Retrieve the event entry on the event host (create it if needed).
+ function getEntry( name ) {
+ // Get the event entry (create it if needed).
+ var events = getPrivate( this );
+ return events[ name ] || ( events[ name ] = new eventEntry( name ) );
+ }
+
+ return {
+ /**
+ * Predefine some intrinsic properties on a specific event name.
+ *
+ * @param {String} name The event name
+ * @param meta
+ * @param [meta.errorProof=false] Whether the event firing should catch error thrown from a per listener call.
+ */
+ define: function( name, meta ) {
+ var entry = getEntry.call( this, name );
+ CKEDITOR.tools.extend( entry, meta, true );
+ },
+
+ /**
+ * Registers a listener to a specific event in the current object.
+ *
+ * someObject.on( 'someEvent', function() {
+ * alert( this == someObject ); // true
+ * } );
+ *
+ * someObject.on( 'someEvent', function() {
+ * alert( this == anotherObject ); // true
+ * }, anotherObject );
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * alert( event.listenerData ); // 'Example'
+ * }, null, 'Example' );
+ *
+ * someObject.on( 'someEvent', function() { ... } ); // 2nd called
+ * someObject.on( 'someEvent', function() { ... }, null, null, 100 ); // 3rd called
+ * someObject.on( 'someEvent', function() { ... }, null, null, 1 ); // 1st called
+ *
+ * @param {String} eventName The event name to which listen.
+ * @param {Function} listenerFunction The function listening to the
+ * event. A single {@link CKEDITOR.eventInfo} object instanced
+ * is passed to this function containing all the event data.
+ * @param {Object} [scopeObj] The object used to scope the listener
+ * call (the `this` object). If omitted, the current object is used.
+ * @param {Object} [listenerData] Data to be sent as the
+ * {@link CKEDITOR.eventInfo#listenerData} when calling the
+ * listener.
+ * @param {Number} [priority=10] The listener priority. Lower priority
+ * listeners are called first. Listeners with the same priority
+ * value are called in registration order.
+ * @returns {Object} An object containing the `removeListener`
+ * function, which can be used to remove the listener at any time.
+ */
+ on: function( eventName, listenerFunction, scopeObj, listenerData, priority ) {
+ // Create the function to be fired for this listener.
+ function listenerFirer( editor, publisherData, stopFn, cancelFn ) {
+ var ev = {
+ name: eventName,
+ sender: this,
+ editor: editor,
+ data: publisherData,
+ listenerData: listenerData,
+ stop: stopFn,
+ cancel: cancelFn,
+ removeListener: removeListener
+ };
+
+ var ret = listenerFunction.call( scopeObj, ev );
+
+ return ret === false ? false : ev.data;
+ }
+
+ function removeListener() {
+ me.removeListener( eventName, listenerFunction );
+ }
+
+ var event = getEntry.call( this, eventName );
+
+ if ( event.getListenerIndex( listenerFunction ) < 0 ) {
+ // Get the listeners.
+ var listeners = event.listeners;
+
+ // Fill the scope.
+ if ( !scopeObj )
+ scopeObj = this;
+
+ // Default the priority, if needed.
+ if ( isNaN( priority ) )
+ priority = 10;
+
+ var me = this;
+
+ listenerFirer.fn = listenerFunction;
+ listenerFirer.priority = priority;
+
+ // Search for the right position for this new listener, based on its
+ // priority.
+ for ( var i = listeners.length - 1; i >= 0; i-- ) {
+ // Find the item which should be before the new one.
+ if ( listeners[ i ].priority <= priority ) {
+ // Insert the listener in the array.
+ listeners.splice( i + 1, 0, listenerFirer );
+ return { removeListener: removeListener };
+ }
+ }
+
+ // If no position has been found (or zero length), put it in
+ // the front of list.
+ listeners.unshift( listenerFirer );
+ }
+
+ return { removeListener: removeListener };
+ },
+
+ /**
+ * Similiar with {@link #on} but the listener will be called only once upon the next event firing.
+ *
+ * @see CKEDITOR.event#on
+ */
+ once: function() {
+ var fn = arguments[ 1 ];
+
+ arguments[ 1 ] = function( evt ) {
+ evt.removeListener();
+ return fn.apply( this, arguments );
+ };
+
+ return this.on.apply( this, arguments );
+ },
+
+ /**
+ * @static
+ * @property {Boolean} useCapture
+ * @todo
+ */
+
+ /**
+ * Register event handler under the capturing stage on supported target.
+ */
+ capture: function() {
+ CKEDITOR.event.useCapture = 1;
+ var retval = this.on.apply( this, arguments );
+ CKEDITOR.event.useCapture = 0;
+ return retval;
+ },
+
+ /**
+ * Fires an specific event in the object. All registered listeners are
+ * called at this point.
+ *
+ * someObject.on( 'someEvent', function() { ... } );
+ * someObject.on( 'someEvent', function() { ... } );
+ * someObject.fire( 'someEvent' ); // Both listeners are called.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * alert( event.data ); // 'Example'
+ * } );
+ * someObject.fire( 'someEvent', 'Example' );
+ *
+ * @method
+ * @param {String} eventName The event name to fire.
+ * @param {Object} [data] Data to be sent as the
+ * {@link CKEDITOR.eventInfo#data} when calling the listeners.
+ * @param {CKEDITOR.editor} [editor] The editor instance to send as the
+ * {@link CKEDITOR.eventInfo#editor} when calling the listener.
+ * @returns {Boolean/Object} A boolean indicating that the event is to be
+ * canceled, or data returned by one of the listeners.
+ */
+ fire: (function() {
+ // Create the function that marks the event as stopped.
+ var stopped = 0;
+ var stopEvent = function() {
+ stopped = 1;
+ };
+
+ // Create the function that marks the event as canceled.
+ var canceled = 0;
+ var cancelEvent = function() {
+ canceled = 1;
+ };
+
+ return function( eventName, data, editor ) {
+ // Get the event entry.
+ var event = getPrivate( this )[ eventName ];
+
+ // Save the previous stopped and cancelled states. We may
+ // be nesting fire() calls.
+ var previousStopped = stopped,
+ previousCancelled = canceled;
+
+ // Reset the stopped and canceled flags.
+ stopped = canceled = 0;
+
+ if ( event ) {
+ var listeners = event.listeners;
+
+ if ( listeners.length ) {
+ // As some listeners may remove themselves from the
+ // event, the original array length is dinamic. So,
+ // let's make a copy of all listeners, so we are
+ // sure we'll call all of them.
+ listeners = listeners.slice( 0 );
+
+ var retData;
+ // Loop through all listeners.
+ for ( var i = 0; i < listeners.length; i++ ) {
+ // Call the listener, passing the event data.
+ if ( event.errorProof ) {
+ try {
+ retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
+ } catch ( er ) {}
+ } else
+ retData = listeners[ i ].call( this, editor, data, stopEvent, cancelEvent );
+
+ if ( retData === false )
+ canceled = 1;
+ else if ( typeof retData != 'undefined' )
+ data = retData;
+
+ // No further calls is stopped or canceled.
+ if ( stopped || canceled )
+ break;
+ }
+ }
+ }
+
+ var ret = canceled ? false : ( typeof data == 'undefined' ? true : data );
+
+ // Restore the previous stopped and canceled states.
+ stopped = previousStopped;
+ canceled = previousCancelled;
+
+ return ret;
+ };
+ })(),
+
+ /**
+ * Fires an specific event in the object, releasing all listeners
+ * registered to that event. The same listeners are not called again on
+ * successive calls of it or of {@link #fire}.
+ *
+ * someObject.on( 'someEvent', function() { ... } );
+ * someObject.fire( 'someEvent' ); // Above listener called.
+ * someObject.fireOnce( 'someEvent' ); // Above listener called.
+ * someObject.fire( 'someEvent' ); // No listeners called.
+ *
+ * @param {String} eventName The event name to fire.
+ * @param {Object} [data] Data to be sent as the
+ * {@link CKEDITOR.eventInfo#data} when calling the listeners.
+ * @param {CKEDITOR.editor} [editor] The editor instance to send as the
+ * {@link CKEDITOR.eventInfo#editor} when calling the listener.
+ * @returns {Boolean/Object} A booloan indicating that the event is to be
+ * canceled, or data returned by one of the listeners.
+ */
+ fireOnce: function( eventName, data, editor ) {
+ var ret = this.fire( eventName, data, editor );
+ delete getPrivate( this )[ eventName ];
+ return ret;
+ },
+
+ /**
+ * Unregisters a listener function from being called at the specified
+ * event. No errors are thrown if the listener has not been registered previously.
+ *
+ * var myListener = function() { ... };
+ * someObject.on( 'someEvent', myListener );
+ * someObject.fire( 'someEvent' ); // myListener called.
+ * someObject.removeListener( 'someEvent', myListener );
+ * someObject.fire( 'someEvent' ); // myListener not called.
+ *
+ * @param {String} eventName The event name.
+ * @param {Function} listenerFunction The listener function to unregister.
+ */
+ removeListener: function( eventName, listenerFunction ) {
+ // Get the event entry.
+ var event = getPrivate( this )[ eventName ];
+
+ if ( event ) {
+ var index = event.getListenerIndex( listenerFunction );
+ if ( index >= 0 )
+ event.listeners.splice( index, 1 );
+ }
+ },
+
+ /**
+ * Remove all existing listeners on this object, for cleanup purpose.
+ */
+ removeAllListeners: function() {
+ var events = getPrivate( this );
+ for ( var i in events )
+ delete events[ i ];
+ },
+
+ /**
+ * Checks if there is any listener registered to a given event.
+ *
+ * var myListener = function() { ... };
+ * someObject.on( 'someEvent', myListener );
+ * alert( someObject.hasListeners( 'someEvent' ) ); // true
+ * alert( someObject.hasListeners( 'noEvent' ) ); // false
+ *
+ * @param {String} eventName The event name.
+ * @returns {Boolean}
+ */
+ hasListeners: function( eventName ) {
+ var event = getPrivate( this )[ eventName ];
+ return ( event && event.listeners.length > 0 );
+ }
+ };
+ })();
+}
diff --git a/devel/third-party/ckeditor/core/eventInfo.js b/devel/third-party/ckeditor/core/eventInfo.js
index dbeca5c..4119aff 100644
--- a/devel/third-party/ckeditor/core/eventInfo.js
+++ b/devel/third-party/ckeditor/core/eventInfo.js
@@ -1,120 +1,115 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the "virtual" {@link CKEDITOR.eventInfo} class, which
- * contains the defintions of the event object passed to event listeners.
- * This file is for documentation purposes only.
- */
-
-/**
- * This class is not really part of the API. It just illustrates the features
- * of the event object passed to event listeners by a {@link CKEDITOR.event}
- * based object.
- * @name CKEDITOR.eventInfo
- * @constructor
- * @example
- * // Do not do this.
- * var myEvent = new CKEDITOR.eventInfo(); // Error: CKEDITOR.eventInfo is undefined
- */
-
-/**
- * The event name.
- * @name CKEDITOR.eventInfo.prototype.name
- * @field
- * @type String
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * alert( <b>event.name</b> ); // "someEvent"
- * });
- * someObject.fire( 'someEvent' );
- */
-
-/**
- * The object that publishes (sends) the event.
- * @name CKEDITOR.eventInfo.prototype.sender
- * @field
- * @type Object
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * alert( <b>event.sender</b> == someObject ); // "true"
- * });
- * someObject.fire( 'someEvent' );
- */
-
-/**
- * The editor instance that holds the sender. May be the same as sender. May be
- * null if the sender is not part of an editor instance, like a component
- * running in standalone mode.
- * @name CKEDITOR.eventInfo.prototype.editor
- * @field
- * @type CKEDITOR.editor
- * @example
- * myButton.on( 'someEvent', function( event )
- * {
- * alert( <b>event.editor</b> == myEditor ); // "true"
- * });
- * myButton.fire( 'someEvent', null, <b>myEditor</b> );
- */
-
-/**
- * Any kind of additional data. Its format and usage is event dependent.
- * @name CKEDITOR.eventInfo.prototype.data
- * @field
- * @type Object
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * alert( <b>event.data</b> ); // "Example"
- * });
- * someObject.fire( 'someEvent', <b>'Example'</b> );
- */
-
-/**
- * Any extra data appended during the listener registration.
- * @name CKEDITOR.eventInfo.prototype.listenerData
- * @field
- * @type Object
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * alert( <b>event.listenerData</b> ); // "Example"
- * }
- * , null, <b>'Example'</b> );
- */
-
-/**
- * Indicates that no further listeners are to be called.
- * @name CKEDITOR.eventInfo.prototype.stop
- * @function
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * <b>event.stop()</b>;
- * });
- * someObject.on( 'someEvent', function( event )
- * {
- * // This one will not be called.
- * });
- * alert( someObject.fire( 'someEvent' ) ); // "false"
- */
-
-/**
- * Indicates that the event is to be cancelled (if cancelable).
- * @name CKEDITOR.eventInfo.prototype.cancel
- * @function
- * @example
- * someObject.on( 'someEvent', function( event )
- * {
- * <b>event.cancel()</b>;
- * });
- * someObject.on( 'someEvent', function( event )
- * {
- * // This one will not be called.
- * });
- * alert( someObject.fire( 'someEvent' ) ); // "true"
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.eventInfo} class, which
+ * contains the defintions of the event object passed to event listeners.
+ * This file is for documentation purposes only.
+ */
+
+/**
+ * Virtual class that illustrates the features of the event object to be
+ * passed to event listeners by a {@link CKEDITOR.event} based object.
+ *
+ * This class is not really part of the API.
+ *
+ * @class CKEDITOR.eventInfo
+ * @abstract
+ */
+
+/**
+ * The event name.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * alert( event.name ); // 'someEvent'
+ * } );
+ * someObject.fire( 'someEvent' );
+ *
+ * @property {String} name
+ */
+
+/**
+ * The object that publishes (sends) the event.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * alert( event.sender == someObject ); // true
+ * } );
+ * someObject.fire( 'someEvent' );
+ *
+ * @property sender
+ */
+
+/**
+ * The editor instance that holds the sender. May be the same as sender. May be
+ * null if the sender is not part of an editor instance, like a component
+ * running in standalone mode.
+ *
+ * myButton.on( 'someEvent', function( event ) {
+ * alert( event.editor == myEditor ); // true
+ * } );
+ * myButton.fire( 'someEvent', null, myEditor );
+ *
+ * @property {CKEDITOR.editor} editor
+ */
+
+/**
+ * Any kind of additional data. Its format and usage is event dependent.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * alert( event.data ); // 'Example'
+ * } );
+ * someObject.fire( 'someEvent', 'Example' );
+ *
+ * @property data
+ */
+
+/**
+ * Any extra data appended during the listener registration.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * alert( event.listenerData ); // 'Example'
+ * }, null, 'Example' );
+ *
+ * @property listenerData
+ */
+
+/**
+ * Indicates that no further listeners are to be called.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * event.stop();
+ * } );
+ * someObject.on( 'someEvent', function( event ) {
+ * // This one will not be called.
+ * } );
+ * alert( someObject.fire( 'someEvent' ) ); // false
+ *
+ * @method stop
+ */
+
+/**
+ * Indicates that the event is to be cancelled (if cancelable).
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * event.cancel();
+ * } );
+ * someObject.on( 'someEvent', function( event ) {
+ * // This one will not be called.
+ * } );
+ * alert( someObject.fire( 'someEvent' ) ); // true
+ *
+ * @method cancel
+ */
+
+/**
+ * Removes the current listener.
+ *
+ * someObject.on( 'someEvent', function( event ) {
+ * event.removeListener();
+ * // Now this function won't be called again by 'someEvent'.
+ * } );
+ *
+ * @method removeListener
+ */
diff --git a/devel/third-party/ckeditor/core/focusmanager.js b/devel/third-party/ckeditor/core/focusmanager.js
index 933c3cf..51b20dc 100644
--- a/devel/third-party/ckeditor/core/focusmanager.js
+++ b/devel/third-party/ckeditor/core/focusmanager.js
@@ -1,137 +1,253 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.focusManager} class, which is used
- * to handle the focus on editor instances..
- */
-
-/**
- * Manages the focus activity in an editor instance. This class is to be used
- * mainly by UI elements coders when adding interface elements to CKEditor.
- * @constructor
- * @param {CKEDITOR.editor} editor The editor instance.
- * @example
- */
-CKEDITOR.focusManager = function( editor )
-{
- if ( editor.focusManager )
- return editor.focusManager;
-
- /**
- * Indicates that the editor instance has focus.
- * @type Boolean
- * @example
- * alert( CKEDITOR.instances.editor1.focusManager.hasFocus ); // e.g "true"
- */
- this.hasFocus = false;
-
- /**
- * Object used to hold private stuff.
- * @private
- */
- this._ =
- {
- editor : editor
- };
-
- return this;
-};
-
-CKEDITOR.focusManager.prototype =
-{
- /**
- * Indicates that the editor instance has the focus.
- *
- * This function is not used to set the focus in the editor. Use
- * {@link CKEDITOR.editor#focus} for it instead.
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * <b>editor.focusManager.focus()</b>;
- */
- focus : function()
- {
- if ( this._.timer )
- clearTimeout( this._.timer );
-
- if ( !this.hasFocus )
- {
- // If another editor has the current focus, we first "blur" it. In
- // this way the events happen in a more logical sequence, like:
- // "focus 1" > "blur 1" > "focus 2"
- // ... instead of:
- // "focus 1" > "focus 2" > "blur 1"
- if ( CKEDITOR.currentInstance )
- CKEDITOR.currentInstance.focusManager.forceBlur();
-
- var editor = this._.editor;
-
- editor.container.getChild( 1 ).addClass( 'cke_focus' );
-
- this.hasFocus = true;
- editor.fire( 'focus' );
- }
- },
-
- /**
- * Indicates that the editor instance has lost the focus. Note that this
- * functions acts asynchronously with a delay of 100ms to avoid subsequent
- * blur/focus effects. If you want the "blur" to happen immediately, use
- * the {@link #forceBlur} function instead.
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * <b>editor.focusManager.blur()</b>;
- */
- blur : function()
- {
- var focusManager = this;
-
- if ( focusManager._.timer )
- clearTimeout( focusManager._.timer );
-
- focusManager._.timer = setTimeout(
- function()
- {
- delete focusManager._.timer;
- focusManager.forceBlur();
- }
- , 100 );
- },
-
- /**
- * Indicates that the editor instance has lost the focus. Unlike
- * {@link #blur}, this function is synchronous, marking the instance as
- * "blured" immediately.
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * <b>editor.focusManager.forceBlur()</b>;
- */
- forceBlur : function()
- {
- if ( this.hasFocus )
- {
- var editor = this._.editor;
-
- editor.container.getChild( 1 ).removeClass( 'cke_focus' );
-
- this.hasFocus = false;
- editor.fire( 'blur' );
- }
- }
-};
-
-/**
- * Fired when the editor instance receives the input focus.
- * @name CKEDITOR.editor#focus
- * @event
- * @param {CKEDITOR.editor} editor The editor instance.
- */
-
-/**
- * Fired when the editor instance loses the input focus.
- * @name CKEDITOR.editor#blur
- * @event
- * @param {CKEDITOR.editor} editor The editor instance.
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.focusManager} class, which is used
+ * to handle the focus on editor instances..
+ */
+
+(function() {
+ /**
+ * Manages the focus activity in an editor instance. This class is to be
+ * used mainly by UI elements coders when adding interface elements that need
+ * to set the focus state of the editor.
+ *
+ * var focusManager = new CKEDITOR.focusManager( editor );
+ * focusManager.focus();
+ *
+ * @class
+ * @constructor Creates a focusManager class instance.
+ * @param {CKEDITOR.editor} editor The editor instance.
+ */
+ CKEDITOR.focusManager = function( editor ) {
+ if ( editor.focusManager )
+ return editor.focusManager;
+
+ /**
+ * Indicates that the editor instance has focus.
+ *
+ * alert( CKEDITOR.instances.editor1.focusManager.hasFocus ); // e.g. true
+ */
+ this.hasFocus = false;
+
+ /**
+ * Indicate the currently focused DOM element that makes the editor activated.
+ *
+ * @property {CKEDITOR.dom.domObject}
+ */
+ this.currentActive = null;
+
+ /**
+ * Object used to hold private stuff.
+ *
+ * @private
+ */
+ this._ = {
+ editor: editor
+ };
+
+ return this;
+ };
+
+ var SLOT_NAME = 'focusmanager',
+ SLOT_NAME_LISTENERS = 'focusmanager_handlers';
+
+ CKEDITOR.focusManager._ = {
+ /**
+ * The delay (in milliseconds) to deactivate the editor when UI dom element has lost focus.
+ *
+ * @private
+ * @static
+ * @property {Number} [_.blurDelay=200]
+ */
+ blurDelay: 200
+ };
+
+ CKEDITOR.focusManager.prototype = {
+
+ /**
+ * Indicate this editor instance is activated (due to DOM focus change),
+ * the `activated` state is a symbolic indicator of an active user
+ * interaction session.
+ *
+ * **Note:** This method will not introduce UI focus
+ * impact on DOM, it's here to record editor UI focus state internally.
+ * If you want to make the cursor blink inside of the editable, use
+ * {@link CKEDITOR.editor#method-focus} instead.
+ *
+ * var editor = CKEDITOR.instances.editor1;
+ * editor.focusManage.focus( editor.editable() );
+ */
+ focus: function() {
+ if ( this._.timer )
+ clearTimeout( this._.timer );
+
+ if ( ! ( this.hasFocus || this._.locked ) ) {
+ // If another editor has the current focus, we first "blur" it. In
+ // this way the events happen in a more logical sequence, like:
+ // "focus 1" > "blur 1" > "focus 2"
+ // ... instead of:
+ // "focus 1" > "focus 2" > "blur 1"
+ var current = CKEDITOR.currentInstance;
+ current && current.focusManager.blur( 1 );
+
+ this.hasFocus = true;
+
+ var ct = this._.editor.container;
+ ct && ct.addClass( 'cke_focus' );
+ this._.editor.fire( 'focus' );
+ }
+ },
+
+ /**
+ * Prevent from changing the focus manager state until next {@link #unlock} is called.
+ */
+ lock: function() {
+ this._.locked = 1;
+ },
+
+ /**
+ * Restore the automatic focus management, if {@link #lock} is called.
+ */
+ unlock: function() {
+ delete this._.locked;
+ },
+
+ /**
+ * Used to indicate that the editor instance has been deactivated by the specified
+ * element which has just lost focus.
+ *
+ * **Note:** that this functions acts asynchronously with a delay of 100ms to
+ * avoid temporary deactivation. Use instead the `noDelay` parameter
+ * to deactivate immediately.
+ *
+ * var editor = CKEDITOR.instances.editor1;
+ * editor.focusManager.blur();
+ *
+ * @param {Boolean} [noDelay=false] Deactivate immediately the editor instance synchronously.
+ */
+ blur: function( noDelay ) {
+ if ( this._.locked )
+ return;
+
+ function doBlur() {
+ if ( this.hasFocus ) {
+ this.hasFocus = false;
+
+ var ct = this._.editor.container;
+ ct && ct.removeClass( 'cke_focus' );
+ this._.editor.fire( 'blur' );
+ }
+ }
+
+ if ( this._.timer )
+ clearTimeout( this._.timer );
+
+ var delay = CKEDITOR.focusManager._.blurDelay;
+ if ( noDelay || !delay ) {
+ doBlur.call( this );
+ } else {
+ this._.timer = CKEDITOR.tools.setTimeout( function() {
+ delete this._.timer;
+ doBlur.call( this );
+ }, delay, this );
+ }
+ },
+
+ /**
+ * Register an UI DOM element to the focus manager, which will make the focus manager "hasFocus"
+ * once input focus is relieved on the element, it's to be used by plugins to expand the jurisdiction of the editor focus.
+ *
+ * @param {CKEDITOR.dom.element} element The container (top most) element of one UI part.
+ * @param {Boolean} isCapture If specified {@link CKEDITOR.event#useCapture} will be used when listening to the focus event.
+ */
+ add: function( element, isCapture ) {
+ var fm = element.getCustomData( SLOT_NAME );
+ if ( !fm || fm != this ) {
+ // If this element is already taken by another instance, dismiss it first.
+ fm && fm.remove( element );
+
+ var focusEvent = 'focus',
+ blurEvent = 'blur';
+
+ // Bypass the element's internal DOM focus change.
+ if ( isCapture ) {
+
+ // Use "focusin/focusout" events instead of capture phase in IEs,
+ // which fires synchronously.
+ if ( CKEDITOR.env.ie ) {
+ focusEvent = 'focusin';
+ blurEvent = 'focusout';
+ } else
+ CKEDITOR.event.useCapture = 1;
+ }
+
+ var listeners = {
+ blur: function() {
+ if ( element.equals( this.currentActive ) )
+ this.blur();
+ },
+ focus: function() {
+ this.currentActive = element;
+ this.focus();
+ }
+ };
+
+
+ element.on( focusEvent, listeners.focus, this );
+ element.on( blurEvent, listeners.blur, this );
+
+ if ( isCapture )
+ CKEDITOR.event.useCapture = 0;
+
+ element.setCustomData( SLOT_NAME, this );
+ element.setCustomData( SLOT_NAME_LISTENERS, listeners );
+ }
+ },
+
+ /**
+ * Dismiss an element from the the focus manager delegations added by {@link #add}.
+ *
+ * @param {CKEDITOR.dom.element} element The element to be removed from the focusmanager.
+ */
+ remove: function( element ) {
+ element.removeCustomData( SLOT_NAME );
+ var listeners = element.removeCustomData( SLOT_NAME_LISTENERS );
+ element.removeListener( 'blur', listeners.blur );
+ element.removeListener( 'focus', listeners.focus );
+ }
+
+ };
+
+})();
+
+/**
+ * Fired when the editor instance receives the input focus.
+ *
+ * editor.on( 'focus', function( e ) {
+ * alert( 'The editor named ' + e.editor.name + ' is now focused' );
+ * } );
+ *
+ * @event focus
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor The editor instance.
+ */
+
+/**
+ * Fired when the editor instance loses the input focus.
+ *
+ * **Note:** This event will **NOT** be triggered when focus is moved internally, e.g. from
+ * the editable to other part of the editor UI like dialog.
+ * If you're interested on only the editable focus state listen to the {@link CKEDITOR.editable#event-focus}
+ * and {@link CKEDITOR.editable#blur} events instead.
+ *
+ * editor.on( 'blur', function( e ) {
+ * alert( 'The editor named ' + e.editor.name + ' lost the focus' );
+ * } );
+ *
+ * @event blur
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor The editor instance.
+ */
diff --git a/devel/third-party/ckeditor/core/htmldataprocessor.js b/devel/third-party/ckeditor/core/htmldataprocessor.js
new file mode 100644
index 0000000..dfe5b1c
--- /dev/null
+++ b/devel/third-party/ckeditor/core/htmldataprocessor.js
@@ -0,0 +1,765 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ /**
+ * Represents an HTML data processor, which is responsible to translate and
+ * transform the editor data on input and output.
+ *
+ * @class
+ * @extends CKEDITOR.dataProcessor
+ * @constructor Creates a htmlDataProcessor class instance.
+ * @param {CKEDITOR.editor} editor
+ */
+ CKEDITOR.htmlDataProcessor = function( editor ) {
+ var dataFilter, htmlFilter;
+
+ this.editor = editor;
+
+ this.dataFilter = dataFilter = new CKEDITOR.htmlParser.filter();
+ this.htmlFilter = htmlFilter = new CKEDITOR.htmlParser.filter();
+
+ /**
+ * The HTML writer used by this data processor to format the output.
+ * @type {CKEDITOR.htmlParser.basicWriter}
+ */
+ this.writer = new CKEDITOR.htmlParser.basicWriter();
+
+ dataFilter.addRules( defaultDataFilterRules );
+ dataFilter.addRules( createBogusAndFillerRules( editor, 'data' ) );
+ htmlFilter.addRules( defaultHtmlFilterRules );
+ htmlFilter.addRules( createBogusAndFillerRules( editor, 'html' ) );
+ };
+
+ CKEDITOR.htmlDataProcessor.prototype = {
+ /**
+ * Process the input (potentially malformed) HTML to a purified form which
+ * is suitable to be used in the wysiwyg editable.
+ *
+ * @param {String} data The raw data.
+ * @param {String} [context] The tag name of a context element within which
+ * the input is to be processed, default to be the editable element.
+ * @param {Boolean} [fixForBody] Whether trigger the auto paragraph for non-block contents.
+ * @returns {String}
+ */
+ toHtml: function( data, context, fixForBody ) {
+
+ // The source data is already HTML, but we need to clean
+ // it up and apply the filter.
+
+ data = protectSource( data, this.editor );
+
+ // Before anything, we must protect the URL attributes as the
+ // browser may changing them when setting the innerHTML later in
+ // the code.
+ data = protectAttributes( data );
+
+ // Protect elements than can't be set inside a DIV. E.g. IE removes
+ // style tags from innerHTML. (#3710)
+ data = protectElements( data );
+
+ // Certain elements has problem to go through DOM operation, protect
+ // them by prefixing 'cke' namespace. (#3591)
+ data = protectElementsNames( data );
+
+ // All none-IE browsers ignore self-closed custom elements,
+ // protecting them into open-close. (#3591)
+ data = protectSelfClosingElements( data );
+
+ // Compensate one leading line break after <pre> open as browsers
+ // eat it up. (#5789)
+ data = protectPreFormatted( data );
+
+ var editable = this.editor.editable(),
+ isPre;
+
+ // Fall back to the editable as context if not specified.
+ if ( !context && context !== null )
+ context = editable.getName();
+
+ var fixBin = context || editable.getName();
+
+ // Old IEs loose formats when load html into <pre>.
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 && fixBin == 'pre' ) {
+ fixBin = 'div';
+ data = '<pre>' + data + '</pre>';
+ isPre = 1;
+ }
+
+ // Call the browser to help us fixing a possibly invalid HTML
+ // structure.
+ var el = this.editor.document.createElement( fixBin );
+ // Add fake character to workaround IE comments bug. (#3801)
+ el.setHtml( 'a' + data );
+ data = el.getHtml().substr( 1 );
+
+ // Restore shortly protected attribute names.
+ data = data.replace( new RegExp( ' data-cke-' + CKEDITOR.rnd + '-', 'ig' ), ' ' );
+
+ isPre && ( data = data.replace( /^<pre>|<\/pre>$/gi, '' ) );
+
+ // Unprotect "some" of the protected elements at this point.
+ data = unprotectElementNames( data );
+
+ data = unprotectElements( data );
+
+ // Restore the comments that have been protected, in this way they
+ // can be properly filtered.
+ data = unprotectRealComments( data );
+
+ // Now use our parser to make further fixes to the structure, as
+ // well as apply the filter.
+ var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data, context, fixForBody === false ? false : getFixBodyTag( this.editor.config ) );
+
+ var writer = new CKEDITOR.htmlParser.basicWriter();
+
+ fragment.writeChildrenHtml( writer, this.dataFilter, 1 );
+ data = writer.getHtml( true );
+
+ // Protect the real comments again.
+ data = protectRealComments( data );
+
+ return data;
+ },
+
+ /**
+ * See {@link CKEDITOR.dataProcessor#toDataFormat}.
+ *
+ * @param {String} html
+ * @returns {String}
+ */
+ toDataFormat: function( html ) {
+ // The parent element will always be the editable.
+ var editable = this.editor.editable(),
+ writer = this.writer;
+
+ var fragment = CKEDITOR.htmlParser.fragment.fromHtml( html, editable.getName(), getFixBodyTag( this.editor.config ) );
+
+ writer.reset();
+
+ fragment.writeChildrenHtml( writer, this.htmlFilter, 1 );
+
+ var data = writer.getHtml( true );
+
+ // Restore those non-HTML protected source. (#4475,#4880)
+ data = unprotectRealComments( data );
+ data = unprotectSource( data, this.editor );
+
+ return data;
+ }
+ };
+
+ // Produce a set of filtering rules that handles bogus and filler node at the
+ // end of block/pseudo block, in the following consequence:
+ // 1. elements:<block> - this filter removes any bogus node, then check
+ // if it's an empty block that requires a filler.
+ // 2. elements:<br> - After cleaned with bogus, this filter checks the real
+ // line-break BR to compensate a filler after it.
+ //
+ // Terms definitions:
+ // filler: An element that's either <BR> or &NBSP; at the end of block that established line height.
+ // bogus: Whenever a filler is proceeded with inline content, it becomes a bogus which is subjected to be removed.
+ //
+ // Various forms of the filler:
+ // In output HTML: Filler should be consistently &NBSP; <BR> at the end of block is always considered as bogus.
+ // In Wysiwyg HTML: Browser dependent - Filler is either BR for non-IE, or &NBSP; for IE, <BR> is NEVER considered as bogus for IE.
+ function createBogusAndFillerRules( editor, type ) {
+ function createFiller( isOutput ) {
+ return isOutput || CKEDITOR.env.ie ?
+ new CKEDITOR.htmlParser.text( '\xa0' ) :
+ new CKEDITOR.htmlParser.element( 'br', { 'data-cke-bogus': 1 } );
+ }
+
+ // This text block filter, remove any bogus and create the filler on demand.
+ function blockFilter( isOutput, fillEmptyBlock ) {
+
+ return function( block ) {
+
+ // DO NOT apply the filer if it's a fragment node.
+ if ( block.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT )
+ return;
+
+ cleanBogus( block );
+
+ // [Opera] it's mandatory for the filler to present inside of empty block when in WYSIWYG.
+ if ( ( ( CKEDITOR.env.opera && !isOutput ) ||
+ ( typeof fillEmptyBlock == 'function' ? fillEmptyBlock( block ) !== false : fillEmptyBlock ) ) &&
+ isEmptyBlockNeedFiller( block ) )
+ {
+ block.add( createFiller( isOutput ) );
+ }
+ };
+ }
+
+ // Append a filler right after the last line-break BR, found at the end of block.
+ function brFilter( isOutput ) {
+ return function ( br ) {
+
+ // DO NOT apply the filer if parent's a fragment node.
+ if ( br.parent.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT )
+ return;
+
+ var attrs = br.attributes;
+ // Dismiss BRs that are either bogus or eol marker.
+ if ( 'data-cke-bogus' in attrs ||
+ 'data-cke-eol' in attrs ) {
+ delete attrs [ 'data-cke-bogus' ];
+ return;
+ }
+
+ // Judge the tail line-break BR, and to insert bogus after it.
+ var next = getNext( br ), previous = getPrevious( br );
+
+ if ( !next && isBlockBoundary( br.parent ) )
+ append( br.parent, createFiller( isOutput ) );
+ else if ( isBlockBoundary( next ) && previous && !isBlockBoundary( previous ) ) {
+ insertBefore( next, createFiller( isOutput ) );
+ }
+ };
+ }
+
+ // Determinate whether this node is potentially a bogus node.
+ function maybeBogus( node, atBlockEnd ) {
+
+ // BR that's not from IE DOM, except for a EOL marker.
+ if ( !( isOutput && CKEDITOR.env.ie ) &&
+ node.type == CKEDITOR.NODE_ELEMENT && node.name == 'br' &&
+ !node.attributes[ 'data-cke-eol' ] )
+ return true;
+
+ var match;
+ // NBSP, possibly.
+ if ( node.type == CKEDITOR.NODE_TEXT &&
+ ( match = node.value.match( tailNbspRegex ) ) )
+ {
+ // We need to separate tail NBSP out of a text node, for later removal.
+ if ( match.index ) {
+ insertBefore( node, new CKEDITOR.htmlParser.text( node.value.substring( 0, match.index ) ) );
+ node.value = match[ 0 ];
+ }
+
+ // From IE DOM, at the end of a text block, or before block boundary.
+ if ( CKEDITOR.env.ie && isOutput && ( !atBlockEnd || node.parent.name in textBlockTags ) )
+ return true;
+
+ // From the output.
+ if ( !isOutput ) {
+ var previous = node.previous;
+
+ // Following a line-break at the end of block.
+ if ( previous && previous.name == 'br' )
+ return true;
+
+ // Or a single NBSP between two blocks.
+ if ( !previous || isBlockBoundary( previous ) )
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ // Removes all bogus inside of this block, and to convert fillers into the proper form.
+ function cleanBogus( block ) {
+ var bogus = [];
+ var last = getLast( block ), node, previous;
+ if ( last ) {
+
+ // Check for bogus at the end of this block.
+ // e.g. <p>foo<br /></p>
+ maybeBogus( last, 1 ) && bogus.push( last );
+
+ while ( last ) {
+
+ // Check for bogus at the end of any pseudo block contained.
+ if ( isBlockBoundary( last ) &&
+ ( node = getPrevious( last ) ) &&
+ maybeBogus( node ) )
+ {
+ // Bogus must have inline proceeding, instead single BR between two blocks,
+ // is considered as filler, e.g. <hr /><br /><hr />
+ if ( ( previous = getPrevious( node ) ) && !isBlockBoundary( previous ) )
+ bogus.push( node );
+ // Convert the filler into appropriate form.
+ else {
+ insertAfter( node, createFiller( isOutput ) );
+ removeFromParent( node );
+ }
+ }
+
+ last = last.previous;
+ }
+ }
+
+ // Now remove all bogus collected from above.
+ for ( var i = 0 ; i < bogus.length ; i++ )
+ removeFromParent( bogus[ i ] );
+ }
+
+ // Judge whether it's an empty block that requires a filler node.
+ function isEmptyBlockNeedFiller( block ) {
+
+ // DO NOT fill empty editable in IE.
+ if ( !isOutput && CKEDITOR.env.ie && block.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT )
+ return false;
+
+ // 1. For IE version >=8, empty blocks are displayed correctly themself in wysiwiyg;
+ // 2. For the rest, at least table cell and list item need no filler space. (#6248)
+ if ( !isOutput && CKEDITOR.env.ie &&
+ ( document.documentMode > 7 ||
+ block.name in CKEDITOR.dtd.tr ||
+ block.name in CKEDITOR.dtd.$listItem ) ) {
+ return false;
+ }
+
+ var last = getLast( block );
+ return !last || block.name == 'form' && last.name == 'input' ;
+ }
+
+ var rules = { elements: {} };
+ var isOutput = type == 'html';
+
+ // Build the list of text blocks.
+ var textBlockTags = CKEDITOR.tools.extend( {}, blockLikeTags );
+ for ( var i in textBlockTags ) {
+ if ( !( '#' in dtd[ i ] ) )
+ delete textBlockTags[ i ];
+ }
+
+ for ( i in textBlockTags )
+ rules.elements[ i ] = blockFilter( isOutput, editor.config.fillEmptyBlocks !== false );
+
+ // Editable element is to be checked separately.
+ rules.root = blockFilter( isOutput );
+ rules.elements.br = brFilter( isOutput );
+ return rules;
+ }
+
+ function getFixBodyTag( config ) {
+ return ( config.enterMode != CKEDITOR.ENTER_BR && config.autoParagraph !== false ) ? config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false;
+ }
+
+ // Regex to scan for at the end of blocks, which are actually placeholders.
+ // Safari transforms the to \xa0. (#4172)
+ var tailNbspRegex = /(?: |\xa0)$/;
+
+ var protectedSourceMarker = '{cke_protected}';
+
+ function getLast( node ) {
+ var last = node.children[ node.children.length - 1 ];
+ while ( last && isEmpty( last ) )
+ last = last.previous;
+ return last;
+ }
+
+ function getNext( node ) {
+ var next = node.next;
+ while ( next && isEmpty( next ) )
+ next = next.next;
+ return next;
+ }
+
+ function getPrevious( node ) {
+ var previous = node.previous;
+ while ( previous && isEmpty( previous ) )
+ previous = previous.previous;
+ return previous;
+ }
+
+ // Judge whether the node is an ghost node to be ignored, when traversing.
+ function isEmpty( node ) {
+ return node.type == CKEDITOR.NODE_TEXT &&
+ !CKEDITOR.tools.trim( node.value ) ||
+ node.type == CKEDITOR.NODE_ELEMENT &&
+ node.attributes[ 'data-cke-bookmark' ];
+ }
+
+ // Judge whether the node is a block-like element.
+ function isBlockBoundary( node ) {
+ return node &&
+ ( node.type == CKEDITOR.NODE_ELEMENT && node.name in blockLikeTags ||
+ node.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT );
+ }
+
+ function insertAfter( node, insertion ) {
+ var children = node.parent.children;
+ var index = CKEDITOR.tools.indexOf( children, node );
+ children.splice( index + 1, 0, insertion );
+ var next = node.next;
+ node.next = insertion;
+ insertion.previous = node;
+ insertion.parent = node.parent;
+ insertion.next = next;
+ }
+
+ function insertBefore( node, insertion ) {
+ var children = node.parent.children;
+ var index = CKEDITOR.tools.indexOf( children, node );
+ children.splice( index, 0, insertion );
+ var prev = node.previous;
+ node.previous = insertion;
+ insertion.next = node;
+ insertion.parent = node.parent;
+ if ( prev ) {
+ insertion.previous = prev;
+ prev.next = insertion;
+ }
+ }
+
+ function append( parent, node ) {
+ var last = parent.children[ parent.children.length -1 ];
+ parent.children.push( node );
+ node.parent = parent;
+ if ( last ) {
+ last.next = node;
+ node.previous = last;
+ }
+ }
+
+ function removeFromParent( node ) {
+ var children = node.parent.children;
+ var index = CKEDITOR.tools.indexOf( children, node );
+ var previous = node.previous, next = node.next;
+ previous && ( previous.next = next );
+ next && ( next.previous = previous );
+ children.splice( index, 1 );
+ }
+
+ function getNodeIndex( node ) {
+ var parent = node.parent;
+ return parent ? CKEDITOR.tools.indexOf( parent.children, node ) : -1;
+ }
+
+ var dtd = CKEDITOR.dtd;
+
+ // Define orders of table elements.
+ var tableOrder = [ 'caption', 'colgroup', 'col', 'thead', 'tfoot', 'tbody' ];
+
+ // List of all block elements.
+ var blockLikeTags = CKEDITOR.tools.extend( {}, dtd.$blockLimit, dtd.$block );
+
+ var defaultDataFilterRules = {
+ elements: {},
+ attributeNames: [
+ // Event attributes (onXYZ) must not be directly set. They can become
+ // active in the editing area (IE|WebKit).
+ [ ( /^on/ ), 'data-cke-pa-on' ]
+ ]
+ };
+
+ var defaultHtmlFilterRules = {
+ elementNames: [
+ // Remove the "cke:" namespace prefix.
+ [ ( /^cke:/ ), '' ],
+
+ // Ignore <?xml:namespace> tags.
+ [ ( /^\?xml:namespace$/ ), '' ]
+ ],
+
+ attributeNames: [
+ // Attributes saved for changes and protected attributes.
+ [ ( /^data-cke-(saved|pa)-/ ), '' ],
+
+ // All "data-cke-" attributes are to be ignored.
+ [ ( /^data-cke-.*/ ), '' ],
+
+ [ 'hidefocus', '' ]
+ ],
+
+ elements: {
+ $: function( element ) {
+ var attribs = element.attributes;
+
+ if ( attribs ) {
+ // Elements marked as temporary are to be ignored.
+ if ( attribs[ 'data-cke-temp' ] )
+ return false;
+
+ // Remove duplicated attributes - #3789.
+ var attributeNames = [ 'name', 'href', 'src' ],
+ savedAttributeName;
+ for ( var i = 0; i < attributeNames.length; i++ ) {
+ savedAttributeName = 'data-cke-saved-' + attributeNames[ i ];
+ savedAttributeName in attribs && ( delete attribs[ attributeNames[ i ] ] );
+ }
+ }
+
+ return element;
+ },
+
+ // The contents of table should be in correct order (#4809).
+ table: function( element ) {
+ // Clone the array as it would become empty during the sort call.
+ var children = element.children.slice( 0 );
+ children.sort( function ( node1, node2 ) {
+ var index1, index2;
+
+ // Compare in the predefined order.
+ if ( node1.type == CKEDITOR.NODE_ELEMENT &&
+ node2.type == node1.type ) {
+ index1 = CKEDITOR.tools.indexOf( tableOrder, node1.name );
+ index2 = CKEDITOR.tools.indexOf( tableOrder, node2.name );
+ }
+
+ // Make sure the sort is stable, if no order can be established above.
+ if ( !( index1 > -1 && index2 > -1 && index1 != index2 ) ) {
+ index1 = getNodeIndex( node1 );
+ index2 = getNodeIndex( node2 );
+ }
+
+ return index1 > index2 ? 1 : -1;
+ });
+ },
+
+ embed: function( element ) {
+ var parent = element.parent;
+
+ // If the <embed> is child of a <object>, copy the width
+ // and height attributes from it.
+ if ( parent && parent.name == 'object' ) {
+ var parentWidth = parent.attributes.width,
+ parentHeight = parent.attributes.height;
+ parentWidth && ( element.attributes.width = parentWidth );
+ parentHeight && ( element.attributes.height = parentHeight );
+ }
+ },
+ // Restore param elements into self-closing.
+ param: function( param ) {
+ param.children = [];
+ param.isEmpty = true;
+ return param;
+ },
+
+ // Remove empty link but not empty anchor.(#3829)
+ a: function( element ) {
+ if ( !( element.children.length || element.attributes.name || element.attributes[ 'data-cke-saved-name' ] ) ) {
+ return false;
+ }
+ },
+
+ // Remove dummy span in webkit.
+ span: function( element ) {
+ if ( element.attributes[ 'class' ] == 'Apple-style-span' )
+ delete element.name;
+ },
+
+ html: function( element ) {
+ delete element.attributes.contenteditable;
+ delete element.attributes[ 'class' ];
+ },
+
+ body: function( element ) {
+ delete element.attributes.spellcheck;
+ delete element.attributes.contenteditable;
+ },
+
+ style: function( element ) {
+ var child = element.children[ 0 ];
+ child && child.value && ( child.value = CKEDITOR.tools.trim( child.value ) );
+
+ if ( !element.attributes.type )
+ element.attributes.type = 'text/css';
+ },
+
+ title: function( element ) {
+ var titleText = element.children[ 0 ];
+ titleText && ( titleText.value = element.attributes[ 'data-cke-title' ] || '' );
+ }
+ },
+
+ attributes: {
+ 'class': function( value, element ) {
+ // Remove all class names starting with "cke_".
+ return CKEDITOR.tools.ltrim( value.replace( /(?:^|\s+)cke_[^\s]*/g, '' ) ) || false;
+ }
+ }
+ };
+
+ if ( CKEDITOR.env.ie ) {
+ // IE outputs style attribute in capital letters. We should convert
+ // them back to lower case, while not hurting the values (#5930)
+ defaultHtmlFilterRules.attributes.style = function( value, element ) {
+ return value.replace( /(^|;)([^\:]+)/g, function( match ) {
+ return match.toLowerCase();
+ });
+ };
+ }
+
+ function protectReadOnly( element ) {
+ var attrs = element.attributes;
+
+ // We should flag that the element was locked by our code so
+ // it'll be editable by the editor functions (#6046).
+ if ( attrs.contenteditable != "false" )
+ attrs[ 'data-cke-editable' ] = attrs.contenteditable ? 'true' : 1;
+
+ attrs.contenteditable = "false";
+ }
+
+ function unprotectReadyOnly( element ) {
+ var attrs = element.attributes;
+ switch ( attrs[ 'data-cke-editable' ] ) {
+ case 'true':
+ attrs.contenteditable = 'true';
+ break;
+ case '1':
+ delete attrs.contenteditable;
+ break;
+ }
+ }
+ // Disable form elements editing mode provided by some browers. (#5746)
+ for ( var i in { input:1,textarea:1 } ) {
+ defaultDataFilterRules.elements[ i ] = protectReadOnly;
+ defaultHtmlFilterRules.elements[ i ] = unprotectReadyOnly;
+ }
+
+ var protectElementRegex = /<(a|area|img|input|source)\b([^>]*)>/gi,
+ protectAttributeRegex = /\b(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi;
+
+ var protectElementsRegex = /(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
+ encodedElementsRegex = /<cke:encoded>([^<]*)<\/cke:encoded>/gi;
+
+ var protectElementNamesRegex = /(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,
+ unprotectElementNamesRegex = /(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi;
+
+ var protectSelfClosingRegex = /<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;
+
+ function protectAttributes( html ) {
+ return html.replace( protectElementRegex, function( element, tag, attributes ) {
+ return '<' + tag + attributes.replace( protectAttributeRegex, function( fullAttr, attrName ) {
+ // Avoid corrupting the inline event attributes (#7243).
+ // We should not rewrite the existed protected attributes, e.g. clipboard content from editor. (#5218)
+ if ( !( /^on/ ).test( attrName ) && attributes.indexOf( 'data-cke-saved-' + attrName ) == -1 )
+ return ' data-cke-saved-' + fullAttr + ' data-cke-' + CKEDITOR.rnd + '-' + fullAttr;
+
+ return fullAttr;
+ }) + '>';
+ });
+ }
+
+ function protectElements( html ) {
+ return html.replace( protectElementsRegex, function( match ) {
+ return '<cke:encoded>' + encodeURIComponent( match ) + '</cke:encoded>';
+ });
+ }
+
+ function unprotectElements( html ) {
+ return html.replace( encodedElementsRegex, function( match, encoded ) {
+ return decodeURIComponent( encoded );
+ });
+ }
+
+ function protectElementsNames( html ) {
+ return html.replace( protectElementNamesRegex, '$1cke:$2' );
+ }
+
+ function unprotectElementNames( html ) {
+ return html.replace( unprotectElementNamesRegex, '$1$2' );
+ }
+
+ function protectSelfClosingElements( html ) {
+ return html.replace( protectSelfClosingRegex, '<cke:$1$2></cke:$1>' );
+ }
+
+ function protectPreFormatted( html ) {
+ return CKEDITOR.env.opera ? html : html.replace( /(<pre\b[^>]*>)(\r\n|\n)/g, '$1$2$2' );
+ }
+
+ function protectRealComments( html ) {
+ return html.replace( /<!--(?!{cke_protected})[\s\S]+?-->/g, function( match ) {
+ return '<!--' + protectedSourceMarker +
+ '{C}' +
+ encodeURIComponent( match ).replace( /--/g, '%2D%2D' ) +
+ '-->';
+ });
+ }
+
+ function unprotectRealComments( html ) {
+ return html.replace( /<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g, function( match, data ) {
+ return decodeURIComponent( data );
+ });
+ }
+
+ function unprotectSource( html, editor ) {
+ var store = editor._.dataStore;
+
+ return html.replace( /<!--\{cke_protected\}([\s\S]+?)-->/g, function( match, data ) {
+ return decodeURIComponent( data );
+ }).replace( /\{cke_protected_(\d+)\}/g, function( match, id ) {
+ return store && store[ id ] || '';
+ });
+ }
+
+ function protectSource( data, editor ) {
+ var protectedHtml = [],
+ protectRegexes = editor.config.protectedSource,
+ store = editor._.dataStore || ( editor._.dataStore = { id:1 } ),
+ tempRegex = /<\!--\{cke_temp(comment)?\}(\d*?)-->/g;
+
+ var regexes = [
+ // Script tags will also be forced to be protected, otherwise
+ // IE will execute them.
+ ( /<script[\s\S]*?<\/script>/gi ),
+
+ // <noscript> tags (get lost in IE and messed up in FF).
+ /<noscript[\s\S]*?<\/noscript>/gi
+ ].concat( protectRegexes );
+
+ // First of any other protection, we must protect all comments
+ // to avoid loosing them (of course, IE related).
+ // Note that we use a different tag for comments, as we need to
+ // transform them when applying filters.
+ data = data.replace( ( /<!--[\s\S]*?-->/g ), function( match ) {
+ return '<!--{cke_tempcomment}' + ( protectedHtml.push( match ) - 1 ) + '-->';
+ });
+
+ for ( var i = 0; i < regexes.length; i++ ) {
+ data = data.replace( regexes[ i ], function( match ) {
+ match = match.replace( tempRegex, // There could be protected source inside another one. (#3869).
+ function( $, isComment, id ) {
+ return protectedHtml[ id ];
+ });
+
+ // Avoid protecting over protected, e.g. /\{.*?\}/
+ return ( /cke_temp(comment)?/ ).test( match ) ? match : '<!--{cke_temp}' + ( protectedHtml.push( match ) - 1 ) + '-->';
+ });
+ }
+ data = data.replace( tempRegex, function( $, isComment, id ) {
+ return '<!--' + protectedSourceMarker +
+ ( isComment ? '{C}' : '' ) +
+ encodeURIComponent( protectedHtml[ id ] ).replace( /--/g, '%2D%2D' ) +
+ '-->';
+ });
+
+ // Different protection pattern is used for those that
+ // live in attributes to avoid from being HTML encoded.
+ return data.replace( /(['"]).*?\1/g, function( match ) {
+ return match.replace( /<!--\{cke_protected\}([\s\S]+?)-->/g, function( match, data ) {
+ store[ store.id ] = decodeURIComponent( data );
+ return '{cke_protected_' + ( store.id++ ) + '}';
+ });
+ });
+ }
+})();
+
+/**
+ * Whether a filler text (non-breaking space entity - ` `) will be
+ * inserted into empty block elements in HTML output,
+ * this is used to render block elements properly with `line-height`
+ * When a function is instead specified, it'll be passed a {@link CKEDITOR.htmlParser.element}
+ * to decide whether adding the filler text by expecting a boolean return value.
+ *
+ * config.fillEmptyBlocks = false; // Prevent filler nodes in all empty blocks.
+ *
+ * // Prevent filler node only in float cleaners.
+ * config.fillEmptyBlocks = function( element ) {
+ * if ( element.attributes[ 'class' ].indexOf( 'clear-both' ) != -1 )
+ * return false;
+ * };
+ *
+ * @since 3.5
+ * @cfg {Boolean} [fillEmptyBlocks=true]
+ * @member CKEDITOR.config
+ */
diff --git a/devel/third-party/ckeditor/core/htmlparser.js b/devel/third-party/ckeditor/core/htmlparser.js
index acd5ef5..76bd2d0 100644
--- a/devel/third-party/ckeditor/core/htmlparser.js
+++ b/devel/third-party/ckeditor/core/htmlparser.js
@@ -1,218 +1,207 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * HTML text parser.
- * @constructor
- * @example
- */
-CKEDITOR.htmlParser = function()
-{
- this._ =
- {
- htmlPartsRegex : new RegExp( '<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:[^"\'>]+)|(?:"[^"]*")|(?:\'[^\']*\'))*)\\/?>))', 'g' )
- };
-};
-
-(function()
-{
- var attribsRegex = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
- emptyAttribs = {checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};
-
- CKEDITOR.htmlParser.prototype =
- {
- /**
- * Function to be fired when a tag opener is found. This function
- * should be overriden when using this class.
- * @param {String} tagName The tag name. The name is guarantted to be
- * lowercased.
- * @param {Object} attributes An object containing all tag attributes. Each
- * property in this object represent and attribute name and its
- * value is the attribute value.
- * @param {Boolean} selfClosing true if the tag closes itself, false if the
- * tag doesn't.
- * @example
- * var parser = new CKEDITOR.htmlParser();
- * parser.onTagOpen = function( tagName, attributes, selfClosing )
- * {
- * alert( tagName ); // e.g. "b"
- * });
- * parser.parse( "<!-- Example --><b>Hello</b>" );
- */
- onTagOpen : function() {},
-
- /**
- * Function to be fired when a tag closer is found. This function
- * should be overriden when using this class.
- * @param {String} tagName The tag name. The name is guarantted to be
- * lowercased.
- * @example
- * var parser = new CKEDITOR.htmlParser();
- * parser.onTagClose = function( tagName )
- * {
- * alert( tagName ); // e.g. "b"
- * });
- * parser.parse( "<!-- Example --><b>Hello</b>" );
- */
- onTagClose : function() {},
-
- /**
- * Function to be fired when text is found. This function
- * should be overriden when using this class.
- * @param {String} text The text found.
- * @example
- * var parser = new CKEDITOR.htmlParser();
- * parser.onText = function( text )
- * {
- * alert( text ); // e.g. "Hello"
- * });
- * parser.parse( "<!-- Example --><b>Hello</b>" );
- */
- onText : function() {},
-
- /**
- * Function to be fired when CDATA section is found. This function
- * should be overriden when using this class.
- * @param {String} cdata The CDATA been found.
- * @example
- * var parser = new CKEDITOR.htmlParser();
- * parser.onCDATA = function( cdata )
- * {
- * alert( cdata ); // e.g. "var hello;"
- * });
- * parser.parse( "<script>var hello;</script>" );
- */
- onCDATA : function() {},
-
- /**
- * Function to be fired when a commend is found. This function
- * should be overriden when using this class.
- * @param {String} comment The comment text.
- * @example
- * var parser = new CKEDITOR.htmlParser();
- * parser.onText = function( comment )
- * {
- * alert( comment ); // e.g. " Example "
- * });
- * parser.parse( "<!-- Example --><b>Hello</b>" );
- */
- onComment : function() {},
-
- /**
- * Parses text, looking for HTML tokens, like tag openers or closers,
- * or comments. This function fires the onTagOpen, onTagClose, onText
- * and onComment function during its execution.
- * @param {String} html The HTML to be parsed.
- * @example
- * var parser = new CKEDITOR.htmlParser();
- * // The onTagOpen, onTagClose, onText and onComment should be overriden
- * // at this point.
- * parser.parse( "<!-- Example --><b>Hello</b>" );
- */
- parse : function( html )
- {
- var parts,
- tagName,
- nextIndex = 0,
- cdata; // The collected data inside a CDATA section.
-
- while ( ( parts = this._.htmlPartsRegex.exec( html ) ) )
- {
- var tagIndex = parts.index;
- if ( tagIndex > nextIndex )
- {
- var text = html.substring( nextIndex, tagIndex );
-
- if ( cdata )
- cdata.push( text );
- else
- this.onText( text );
- }
-
- nextIndex = this._.htmlPartsRegex.lastIndex;
-
- /*
- "parts" is an array with the following items:
- 0 : The entire match for opening/closing tags and comments.
- 1 : Group filled with the tag name for closing tags.
- 2 : Group filled with the comment text.
- 3 : Group filled with the tag name for opening tags.
- 4 : Group filled with the attributes part of opening tags.
- */
-
- // Closing tag
- if ( ( tagName = parts[ 1 ] ) )
- {
- tagName = tagName.toLowerCase();
-
- if ( cdata && CKEDITOR.dtd.$cdata[ tagName ] )
- {
- // Send the CDATA data.
- this.onCDATA( cdata.join('') );
- cdata = null;
- }
-
- if ( !cdata )
- {
- this.onTagClose( tagName );
- continue;
- }
- }
-
- // If CDATA is enabled, just save the raw match.
- if ( cdata )
- {
- cdata.push( parts[ 0 ] );
- continue;
- }
-
- // Opening tag
- if ( ( tagName = parts[ 3 ] ) )
- {
- tagName = tagName.toLowerCase();
-
- // There are some tag names that can break things, so let's
- // simply ignore them when parsing. (#5224)
- if ( /="/.test( tagName ) )
- continue;
-
- var attribs = {},
- attribMatch,
- attribsPart = parts[ 4 ],
- selfClosing = !!( attribsPart && attribsPart.charAt( attribsPart.length - 1 ) == '/' );
-
- if ( attribsPart )
- {
- while ( ( attribMatch = attribsRegex.exec( attribsPart ) ) )
- {
- var attName = attribMatch[1].toLowerCase(),
- attValue = attribMatch[2] || attribMatch[3] || attribMatch[4] || '';
-
- if ( !attValue && emptyAttribs[ attName ] )
- attribs[ attName ] = attName;
- else
- attribs[ attName ] = attValue;
- }
- }
-
- this.onTagOpen( tagName, attribs, selfClosing );
-
- // Open CDATA mode when finding the appropriate tags.
- if ( !cdata && CKEDITOR.dtd.$cdata[ tagName ] )
- cdata = [];
-
- continue;
- }
-
- // Comment
- if ( ( tagName = parts[ 2 ] ) )
- this.onComment( tagName );
- }
-
- if ( html.length > nextIndex )
- this.onText( html.substring( nextIndex, html.length ) );
- }
- };
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Provides an "event like" system to parse strings of HTML data.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * parser.onTagOpen = function( tagName, attributes, selfClosing ) {
+ * alert( tagName );
+ * };
+ * parser.parse( '<p>Some <b>text</b>.</p>' ); // Alerts 'p', 'b'.
+ *
+ * @class
+ * @constructor Creates a htmlParser class instance.
+ */
+CKEDITOR.htmlParser = function() {
+ this._ = {
+ htmlPartsRegex: new RegExp( '<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:"[^"]*")|(?:\'[^\']*\')|[^"\'>])*)\\/?>))', 'g' )
+ };
+};
+
+(function() {
+ var attribsRegex = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,
+ emptyAttribs = { checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1 };
+
+ CKEDITOR.htmlParser.prototype = {
+ /**
+ * Function to be fired when a tag opener is found. This function
+ * should be overriden when using this class.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * parser.onTagOpen = function( tagName, attributes, selfClosing ) {
+ * alert( tagName ); // e.g. 'b'
+ * } );
+ * parser.parse( '<!-- Example --><b>Hello</b>' );
+ *
+ * @param {String} tagName The tag name. The name is guarantted to be lowercased.
+ * @param {Object} attributes An object containing all tag attributes. Each
+ * property in this object represent and attribute name and its value is the attribute value.
+ * @param {Boolean} selfClosing `true` if the tag closes itself, false if the tag doesn't.
+ */
+ onTagOpen: function() {},
+
+ /**
+ * Function to be fired when a tag closer is found. This function
+ * should be overriden when using this class.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * parser.onTagClose = function( tagName ) {
+ * alert( tagName ); // 'b'
+ * } );
+ * parser.parse( '<!-- Example --><b>Hello</b>' );
+ *
+ * @param {String} tagName The tag name. The name is guarantted to be lowercased.
+ */
+ onTagClose: function() {},
+
+ /**
+ * Function to be fired when text is found. This function
+ * should be overriden when using this class.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * parser.onText = function( text ) {
+ * alert( text ); // 'Hello'
+ * } );
+ * parser.parse( '<!-- Example --><b>Hello</b>' );
+ *
+ * @param {String} text The text found.
+ */
+ onText: function() {},
+
+ /**
+ * Function to be fired when CDATA section is found. This function
+ * should be overriden when using this class.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * parser.onCDATA = function( cdata ) {
+ * alert( cdata ); // 'var hello;'
+ * } );
+ * parser.parse( '<script>var hello;</script>' );
+ *
+ * @param {String} cdata The CDATA been found.
+ */
+ onCDATA: function() {},
+
+ /**
+ * Function to be fired when a commend is found. This function
+ * should be overriden when using this class.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * parser.onComment = function( comment ) {
+ * alert( comment ); // ' Example '
+ * } );
+ * parser.parse( '<!-- Example --><b>Hello</b>' );
+ *
+ * @param {String} comment The comment text.
+ */
+ onComment: function() {},
+
+ /**
+ * Parses text, looking for HTML tokens, like tag openers or closers,
+ * or comments. This function fires the onTagOpen, onTagClose, onText
+ * and onComment function during its execution.
+ *
+ * var parser = new CKEDITOR.htmlParser();
+ * // The onTagOpen, onTagClose, onText and onComment should be overriden
+ * // at this point.
+ * parser.parse( '<!-- Example --><b>Hello</b>' );
+ *
+ * @param {String} html The HTML to be parsed.
+ */
+ parse: function( html ) {
+ var parts, tagName,
+ nextIndex = 0,
+ cdata; // The collected data inside a CDATA section.
+
+ while ( ( parts = this._.htmlPartsRegex.exec( html ) ) ) {
+ var tagIndex = parts.index;
+ if ( tagIndex > nextIndex ) {
+ var text = html.substring( nextIndex, tagIndex );
+
+ if ( cdata )
+ cdata.push( text );
+ else
+ this.onText( text );
+ }
+
+ nextIndex = this._.htmlPartsRegex.lastIndex;
+
+ /*
+ "parts" is an array with the following items:
+ 0 : The entire match for opening/closing tags and comments.
+ 1 : Group filled with the tag name for closing tags.
+ 2 : Group filled with the comment text.
+ 3 : Group filled with the tag name for opening tags.
+ 4 : Group filled with the attributes part of opening tags.
+ */
+
+ // Closing tag
+ if ( ( tagName = parts[ 1 ] ) ) {
+ tagName = tagName.toLowerCase();
+
+ if ( cdata && CKEDITOR.dtd.$cdata[ tagName ] ) {
+ // Send the CDATA data.
+ this.onCDATA( cdata.join( '' ) );
+ cdata = null;
+ }
+
+ if ( !cdata ) {
+ this.onTagClose( tagName );
+ continue;
+ }
+ }
+
+ // If CDATA is enabled, just save the raw match.
+ if ( cdata ) {
+ cdata.push( parts[ 0 ] );
+ continue;
+ }
+
+ // Opening tag
+ if ( ( tagName = parts[ 3 ] ) ) {
+ tagName = tagName.toLowerCase();
+
+ // There are some tag names that can break things, so let's
+ // simply ignore them when parsing. (#5224)
+ if ( /="/.test( tagName ) )
+ continue;
+
+ var attribs = {},
+ attribMatch,
+ attribsPart = parts[ 4 ],
+ selfClosing = !!( attribsPart && attribsPart.charAt( attribsPart.length - 1 ) == '/' );
+
+ if ( attribsPart ) {
+ while ( ( attribMatch = attribsRegex.exec( attribsPart ) ) ) {
+ var attName = attribMatch[ 1 ].toLowerCase(),
+ attValue = attribMatch[ 2 ] || attribMatch[ 3 ] || attribMatch[ 4 ] || '';
+
+ if ( !attValue && emptyAttribs[ attName ] )
+ attribs[ attName ] = attName;
+ else
+ attribs[ attName ] = attValue;
+ }
+ }
+
+ this.onTagOpen( tagName, attribs, selfClosing );
+
+ // Open CDATA mode when finding the appropriate tags.
+ if ( !cdata && CKEDITOR.dtd.$cdata[ tagName ] )
+ cdata = [];
+
+ continue;
+ }
+
+ // Comment
+ if ( ( tagName = parts[ 2 ] ) )
+ this.onComment( tagName );
+ }
+
+ if ( html.length > nextIndex )
+ this.onText( html.substring( nextIndex, html.length ) );
+ }
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/htmlparser/basicwriter.js b/devel/third-party/ckeditor/core/htmlparser/basicwriter.js
index 3a0231c..54f19cd 100644
--- a/devel/third-party/ckeditor/core/htmlparser/basicwriter.js
+++ b/devel/third-party/ckeditor/core/htmlparser/basicwriter.js
@@ -1,145 +1,152 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass(
-{
- $ : function()
- {
- this._ =
- {
- output : []
- };
- },
-
- proto :
- {
- /**
- * Writes the tag opening part for a opener tag.
- * @param {String} tagName The element name for this tag.
- * @param {Object} attributes The attributes defined for this tag. The
- * attributes could be used to inspect the tag.
- * @example
- * // Writes "<p".
- * writer.openTag( 'p', { class : 'MyClass', id : 'MyId' } );
- */
- openTag : function( tagName, attributes )
- {
- this._.output.push( '<', tagName );
- },
-
- /**
- * Writes the tag closing part for a opener tag.
- * @param {String} tagName The element name for this tag.
- * @param {Boolean} isSelfClose Indicates that this is a self-closing tag,
- * like "br" or "img".
- * @example
- * // Writes ">".
- * writer.openTagClose( 'p', false );
- * @example
- * // Writes " />".
- * writer.openTagClose( 'br', true );
- */
- openTagClose : function( tagName, isSelfClose )
- {
- if ( isSelfClose )
- this._.output.push( ' />' );
- else
- this._.output.push( '>' );
- },
-
- /**
- * Writes an attribute. This function should be called after opening the
- * tag with {@link #openTagClose}.
- * @param {String} attName The attribute name.
- * @param {String} attValue The attribute value.
- * @example
- * // Writes ' class="MyClass"'.
- * writer.attribute( 'class', 'MyClass' );
- */
- attribute : function( attName, attValue )
- {
- // Browsers don't always escape special character in attribute values. (#4683, #4719).
- if ( typeof attValue == 'string' )
- attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );
-
- this._.output.push( ' ', attName, '="', attValue, '"' );
- },
-
- /**
- * Writes a closer tag.
- * @param {String} tagName The element name for this tag.
- * @example
- * // Writes "</p>".
- * writer.closeTag( 'p' );
- */
- closeTag : function( tagName )
- {
- this._.output.push( '</', tagName, '>' );
- },
-
- /**
- * Writes text.
- * @param {String} text The text value
- * @example
- * // Writes "Hello Word".
- * writer.text( 'Hello Word' );
- */
- text : function( text )
- {
- this._.output.push( text );
- },
-
- /**
- * Writes a comment.
- * @param {String} comment The comment text.
- * @example
- * // Writes "<!-- My comment -->".
- * writer.comment( ' My comment ' );
- */
- comment : function( comment )
- {
- this._.output.push( '<!--', comment, '-->' );
- },
-
- /**
- * Writes any kind of data to the ouput.
- * @example
- * writer.write( 'This is an <b>example</b>.' );
- */
- write : function( data )
- {
- this._.output.push( data );
- },
-
- /**
- * Empties the current output buffer.
- * @example
- * writer.reset();
- */
- reset : function()
- {
- this._.output = [];
- this._.indent = false;
- },
-
- /**
- * Empties the current output buffer.
- * @param {Boolean} reset Indicates that the {@link reset} function is to
- * be automatically called after retrieving the HTML.
- * @returns {String} The HTML written to the writer so far.
- * @example
- * var html = writer.getHtml();
- */
- getHtml : function( reset )
- {
- var html = this._.output.join( '' );
-
- if ( reset )
- this.reset();
-
- return html;
- }
- }
-});
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * TODO
+ *
+ * @class
+ * @todo
+ */
+CKEDITOR.htmlParser.basicWriter = CKEDITOR.tools.createClass({
+ /**
+ * Creates a basicWriter class instance.
+ *
+ * @constructor
+ */
+ $: function() {
+ this._ = {
+ output: []
+ };
+ },
+
+ proto: {
+ /**
+ * Writes the tag opening part for a opener tag.
+ *
+ * // Writes '<p'.
+ * writer.openTag( 'p', { class : 'MyClass', id : 'MyId' } );
+ *
+ * @param {String} tagName The element name for this tag.
+ * @param {Object} attributes The attributes defined for this tag. The
+ * attributes could be used to inspect the tag.
+ */
+ openTag: function( tagName, attributes ) {
+ this._.output.push( '<', tagName );
+ },
+
+ /**
+ * Writes the tag closing part for a opener tag.
+ *
+ * // Writes '>'.
+ * writer.openTagClose( 'p', false );
+ *
+ * // Writes ' />'.
+ * writer.openTagClose( 'br', true );
+ *
+ * @param {String} tagName The element name for this tag.
+ * @param {Boolean} isSelfClose Indicates that this is a self-closing tag,
+ * like `<br>` or `<img>`.
+ */
+ openTagClose: function( tagName, isSelfClose ) {
+ if ( isSelfClose )
+ this._.output.push( ' />' );
+ else
+ this._.output.push( '>' );
+ },
+
+ /**
+ * Writes an attribute. This function should be called after opening the
+ * tag with {@link #openTagClose}.
+ *
+ * // Writes ' class="MyClass"'.
+ * writer.attribute( 'class', 'MyClass' );
+ *
+ * @param {String} attName The attribute name.
+ * @param {String} attValue The attribute value.
+ */
+ attribute: function( attName, attValue ) {
+ // Browsers don't always escape special character in attribute values. (#4683, #4719).
+ if ( typeof attValue == 'string' )
+ attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );
+
+ this._.output.push( ' ', attName, '="', attValue, '"' );
+ },
+
+ /**
+ * Writes a closer tag.
+ *
+ * // Writes '</p>'.
+ * writer.closeTag( 'p' );
+ *
+ * @param {String} tagName The element name for this tag.
+ */
+ closeTag: function( tagName ) {
+ this._.output.push( '</', tagName, '>' );
+ },
+
+ /**
+ * Writes text.
+ *
+ * // Writes 'Hello Word'.
+ * writer.text( 'Hello Word' );
+ *
+ * @param {String} text The text value.
+ */
+ text: function( text ) {
+ this._.output.push( text );
+ },
+
+ /**
+ * Writes a comment.
+ *
+ * // Writes '<!-- My comment -->'.
+ * writer.comment( ' My comment ' );
+ *
+ * @param {String} comment The comment text.
+ */
+ comment: function( comment ) {
+ this._.output.push( '<!--', comment, '-->' );
+ },
+
+ /**
+ * Writes any kind of data to the ouput.
+ *
+ * writer.write( 'This is an <b>example</b>.' );
+ *
+ * @param {String} data
+ */
+ write: function( data ) {
+ this._.output.push( data );
+ },
+
+ /**
+ * Empties the current output buffer.
+ *
+ * writer.reset();
+ */
+ reset: function() {
+ this._.output = [];
+ this._.indent = false;
+ },
+
+ /**
+ * Empties the current output buffer.
+ *
+ * var html = writer.getHtml();
+ *
+ * @param {Boolean} reset Indicates that the {@link #reset} method is to
+ * be automatically called after retrieving the HTML.
+ * @returns {String} The HTML written to the writer so far.
+ */
+ getHtml: function( reset ) {
+ var html = this._.output.join( '' );
+
+ if ( reset )
+ this.reset();
+
+ return html;
+ }
+ }
+});
diff --git a/devel/third-party/ckeditor/core/htmlparser/cdata.js b/devel/third-party/ckeditor/core/htmlparser/cdata.js
index ff2f227..9992155 100644
--- a/devel/third-party/ckeditor/core/htmlparser/cdata.js
+++ b/devel/third-party/ckeditor/core/htmlparser/cdata.js
@@ -1,43 +1,43 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
-
- /**
- * A lightweight representation of HTML text.
- * @constructor
- * @example
- */
- CKEDITOR.htmlParser.cdata = function( value )
- {
- /**
- * The CDATA value.
- * @type String
- * @example
- */
- this.value = value;
- };
-
- CKEDITOR.htmlParser.cdata.prototype =
- {
- /**
- * CDATA has the same type as {@link CKEDITOR.htmlParser.text} This is
- * a constant value set to {@link CKEDITOR.NODE_TEXT}.
- * @type Number
- * @example
- */
- type : CKEDITOR.NODE_TEXT,
-
- /**
- * Writes write the CDATA with no special manipulations.
- * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
- */
- writeHtml : function( writer )
- {
- writer.write( this.value );
- }
- };
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+
+ /**
+ * A lightweight representation of HTML text.
+ *
+ * @class
+ * @constructor Creates a cdata class instance.
+ * @param {String} value The CDATA section value.
+ */
+ CKEDITOR.htmlParser.cdata = function( value ) {
+ /**
+ * The CDATA value.
+ *
+ * @property {String}
+ */
+ this.value = value;
+ };
+
+ CKEDITOR.htmlParser.cdata.prototype = {
+ /**
+ * CDATA has the same type as {@link CKEDITOR.htmlParser.text} This is
+ * a constant value set to {@link CKEDITOR#NODE_TEXT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_TEXT]
+ */
+ type: CKEDITOR.NODE_TEXT,
+
+ /**
+ * Writes the CDATA with no special manipulations.
+ *
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ */
+ writeHtml: function( writer ) {
+ writer.write( this.value );
+ }
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/htmlparser/comment.js b/devel/third-party/ckeditor/core/htmlparser/comment.js
index 67830d9..29d3cf6 100644
--- a/devel/third-party/ckeditor/core/htmlparser/comment.js
+++ b/devel/third-party/ckeditor/core/htmlparser/comment.js
@@ -1,60 +1,57 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * A lightweight representation of an HTML comment.
- * @constructor
- * @example
- */
-CKEDITOR.htmlParser.comment = function( value )
-{
- /**
- * The comment text.
- * @type String
- * @example
- */
- this.value = value;
-
- /** @private */
- this._ =
- {
- isBlockLike : false
- };
-};
-
-CKEDITOR.htmlParser.comment.prototype =
-{
- /**
- * The node type. This is a constant value set to {@link CKEDITOR.NODE_COMMENT}.
- * @type Number
- * @example
- */
- type : CKEDITOR.NODE_COMMENT,
-
- /**
- * Writes the HTML representation of this comment to a CKEDITOR.htmlWriter.
- * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
- * @example
- */
- writeHtml : function( writer, filter )
- {
- var comment = this.value;
-
- if ( filter )
- {
- if ( !( comment = filter.onComment( comment, this ) ) )
- return;
-
- if ( typeof comment != 'string' )
- {
- comment.parent = this.parent;
- comment.writeHtml( writer, filter );
- return;
- }
- }
-
- writer.comment( comment );
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * A lightweight representation of an HTML comment.
+ *
+ * @class
+ * @constructor Creates a comment class instance.
+ * @param {String} value The comment text value.
+ */
+CKEDITOR.htmlParser.comment = function( value ) {
+ /**
+ * The comment text.
+ *
+ * @property {String}
+ */
+ this.value = value;
+
+ /** @private */
+ this._ = {
+ isBlockLike: false
+ };
+};
+
+CKEDITOR.htmlParser.comment.prototype = {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_COMMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_COMMENT]
+ */
+ type: CKEDITOR.NODE_COMMENT,
+
+ /**
+ * Writes the HTML representation of this comment to a CKEDITOR.htmlWriter.
+ *
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ */
+ writeHtml: function( writer, filter ) {
+ var comment = this.value;
+
+ if ( filter ) {
+ if ( !( comment = filter.onComment( comment, this ) ) )
+ return;
+
+ if ( typeof comment != 'string' ) {
+ comment.parent = this.parent;
+ comment.writeHtml( writer, filter );
+ return;
+ }
+ }
+
+ writer.comment( comment );
+ }
+};
diff --git a/devel/third-party/ckeditor/core/htmlparser/element.js b/devel/third-party/ckeditor/core/htmlparser/element.js
index 69bacda..971504d 100644
--- a/devel/third-party/ckeditor/core/htmlparser/element.js
+++ b/devel/third-party/ckeditor/core/htmlparser/element.js
@@ -1,240 +1,284 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * A lightweight representation of an HTML element.
- * @param {String} name The element name.
- * @param {Object} attributes And object holding all attributes defined for
- * this element.
- * @constructor
- * @example
- */
-CKEDITOR.htmlParser.element = function( name, attributes )
-{
- /**
- * The element name.
- * @type String
- * @example
- */
- this.name = name;
-
- /**
- * Holds the attributes defined for this element.
- * @type Object
- * @example
- */
- this.attributes = attributes || ( attributes = {} );
-
- /**
- * The nodes that are direct children of this element.
- * @type Array
- * @example
- */
- this.children = [];
-
- var tagName = attributes._cke_real_element_type || name;
-
- var dtd = CKEDITOR.dtd,
- isBlockLike = !!( dtd.$nonBodyContent[ tagName ] || dtd.$block[ tagName ] || dtd.$listItem[ tagName ] || dtd.$tableContent[ tagName ] || dtd.$nonEditable[ tagName ] || tagName == 'br' ),
- isEmpty = !!dtd.$empty[ name ];
-
- this.isEmpty = isEmpty;
- this.isUnknown = !dtd[ name ];
-
- /** @private */
- this._ =
- {
- isBlockLike : isBlockLike,
- hasInlineStarted : isEmpty || !isBlockLike
- };
-};
-
-(function()
-{
- // Used to sort attribute entries in an array, where the first element of
- // each object is the attribute name.
- var sortAttribs = function( a, b )
- {
- a = a[0];
- b = b[0];
- return a < b ? -1 : a > b ? 1 : 0;
- };
-
- CKEDITOR.htmlParser.element.prototype =
- {
- /**
- * The node type. This is a constant value set to {@link CKEDITOR.NODE_ELEMENT}.
- * @type Number
- * @example
- */
- type : CKEDITOR.NODE_ELEMENT,
-
- /**
- * Adds a node to the element children list.
- * @param {Object} node The node to be added. It can be any of of the
- * following types: {@link CKEDITOR.htmlParser.element},
- * {@link CKEDITOR.htmlParser.text} and
- * {@link CKEDITOR.htmlParser.comment}.
- * @function
- * @example
- */
- add : CKEDITOR.htmlParser.fragment.prototype.add,
-
- /**
- * Clone this element.
- * @returns {CKEDITOR.htmlParser.element} The element clone.
- * @example
- */
- clone : function()
- {
- return new CKEDITOR.htmlParser.element( this.name, this.attributes );
- },
-
- /**
- * Writes the element HTML to a CKEDITOR.htmlWriter.
- * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
- * @example
- */
- writeHtml : function( writer, filter )
- {
- var attributes = this.attributes;
-
- // Ignore cke: prefixes when writing HTML.
- var element = this,
- writeName = element.name,
- a, newAttrName, value;
-
- var isChildrenFiltered;
-
- /**
- * Providing an option for bottom-up filtering order ( element
- * children to be pre-filtered before the element itself ).
- */
- element.filterChildren = function()
- {
- if ( !isChildrenFiltered )
- {
- var writer = new CKEDITOR.htmlParser.basicWriter();
- CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call( element, writer, filter );
- element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml() ).children;
- isChildrenFiltered = 1;
- }
- };
-
- if ( filter )
- {
- while ( true )
- {
- if ( !( writeName = filter.onElementName( writeName ) ) )
- return;
-
- element.name = writeName;
-
- if ( !( element = filter.onElement( element ) ) )
- return;
-
- element.parent = this.parent;
-
- if ( element.name == writeName )
- break;
-
- // If the element has been replaced with something of a
- // different type, then make the replacement write itself.
- if ( element.type != CKEDITOR.NODE_ELEMENT )
- {
- element.writeHtml( writer, filter );
- return;
- }
-
- writeName = element.name;
-
- // This indicate that the element has been dropped by
- // filter but not the children.
- if ( !writeName )
- {
- this.writeChildrenHtml.call( element, writer, isChildrenFiltered ? null : filter );
- return;
- }
- }
-
- // The element may have been changed, so update the local
- // references.
- attributes = element.attributes;
- }
-
- // Open element tag.
- writer.openTag( writeName, attributes );
-
- // Copy all attributes to an array.
- var attribsArray = [];
- // Iterate over the attributes twice since filters may alter
- // other attributes.
- for ( var i = 0 ; i < 2; i++ )
- {
- for ( a in attributes )
- {
- newAttrName = a;
- value = attributes[ a ];
- if ( i == 1 )
- attribsArray.push( [ a, value ] );
- else if ( filter )
- {
- while ( true )
- {
- if ( !( newAttrName = filter.onAttributeName( a ) ) )
- {
- delete attributes[ a ];
- break;
- }
- else if ( newAttrName != a )
- {
- delete attributes[ a ];
- a = newAttrName;
- continue;
- }
- else
- break;
- }
- if ( newAttrName )
- {
- if ( ( value = filter.onAttribute( element, newAttrName, value ) ) === false )
- delete attributes[ newAttrName ];
- else
- attributes [ newAttrName ] = value;
- }
- }
- }
- }
- // Sort the attributes by name.
- if ( writer.sortAttributes )
- attribsArray.sort( sortAttribs );
-
- // Send the attributes.
- var len = attribsArray.length;
- for ( i = 0 ; i < len ; i++ )
- {
- var attrib = attribsArray[ i ];
- writer.attribute( attrib[0], attrib[1] );
- }
-
- // Close the tag.
- writer.openTagClose( writeName, element.isEmpty );
-
- if ( !element.isEmpty )
- {
- this.writeChildrenHtml.call( element, writer, isChildrenFiltered ? null : filter );
- // Close the element.
- writer.closeTag( writeName );
- }
- },
-
- writeChildrenHtml : function( writer, filter )
- {
- // Send children.
- CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.apply( this, arguments );
-
- }
- };
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * A lightweight representation of an HTML element.
+ *
+ * @class
+ * @constructor Creates an element class instance.
+ * @param {String} name The element name.
+ * @param {Object} attributes And object holding all attributes defined for
+ * this element.
+ */
+CKEDITOR.htmlParser.element = function( name, attributes ) {
+ /**
+ * The element name.
+ *
+ * @property {String}
+ */
+ this.name = name;
+
+ /**
+ * Holds the attributes defined for this element.
+ *
+ * @property {Object}
+ */
+ this.attributes = attributes || {};
+
+ /**
+ * The nodes that are direct children of this element.
+ */
+ this.children = [];
+
+ // Reveal the real semantic of our internal custom tag name (#6639),
+ // when resolving whether it's block like.
+ var realName = name || '',
+ prefixed = realName.match( /^cke:(.*)/ );
+ prefixed && ( realName = prefixed[ 1 ] );
+
+ var isBlockLike = !!( CKEDITOR.dtd.$nonBodyContent[ realName ] || CKEDITOR.dtd.$block[ realName ] || CKEDITOR.dtd.$listItem[ realName ] || CKEDITOR.dtd.$tableContent[ realName ] || CKEDITOR.dtd.$nonEditable[ realName ] || realName == 'br' );
+
+ this.isEmpty = !!CKEDITOR.dtd.$empty[ name ];
+ this.isUnknown = !CKEDITOR.dtd[ name ];
+
+ /** @private */
+ this._ = {
+ isBlockLike: isBlockLike,
+ hasInlineStarted: this.isEmpty || !isBlockLike
+ };
+};
+
+/**
+ * Object presentation of CSS style declaration text.
+ *
+ * @class
+ * @constructor Creates a cssStyle class instance.
+ * @param {CKEDITOR.htmlParser.element/String} elementOrStyleText
+ * A html parser element or the inline style text.
+ */
+CKEDITOR.htmlParser.cssStyle = function() {
+ var styleText,
+ arg = arguments[ 0 ],
+ rules = {};
+
+ styleText = arg instanceof CKEDITOR.htmlParser.element ? arg.attributes.style : arg;
+
+ // html-encoded quote might be introduced by 'font-family'
+ // from MS-Word which confused the following regexp. e.g.
+ //'font-family: "Lucida, Console"'
+ // TODO reuse CSS methods from tools.
+ ( styleText || '' ).replace( /"/g, '"' ).replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value ) {
+ name == 'font-family' && ( value = value.replace( /["']/g, '' ) );
+ rules[ name.toLowerCase() ] = value;
+ });
+
+ return {
+
+ rules: rules,
+
+ /**
+ * Apply the styles onto the specified element or object.
+ *
+ * @param {CKEDITOR.htmlParser.element/CKEDITOR.dom.element/Object} obj
+ */
+ populate: function( obj ) {
+ var style = this.toString();
+ if ( style ) {
+ obj instanceof CKEDITOR.dom.element ? obj.setAttribute( 'style', style ) : obj instanceof CKEDITOR.htmlParser.element ? obj.attributes.style = style : obj.style = style;
+ }
+ },
+
+ /**
+ * Serialize CSS style declaration to string.
+ *
+ * @returns {String}
+ */
+ toString: function() {
+ var output = [];
+ for ( var i in rules )
+ rules[ i ] && output.push( i, ':', rules[ i ], ';' );
+ return output.join( '' );
+ }
+ };
+};
+
+(function() {
+ // Used to sort attribute entries in an array, where the first element of
+ // each object is the attribute name.
+ var sortAttribs = function( a, b ) {
+ a = a[ 0 ];
+ b = b[ 0 ];
+ return a < b ? -1 : a > b ? 1 : 0;
+ };
+
+ CKEDITOR.htmlParser.element.prototype = {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_ELEMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_ELEMENT]
+ */
+ type: CKEDITOR.NODE_ELEMENT,
+
+ /**
+ * Adds a node to the element children list.
+ *
+ * @method
+ * @param {CKEDITOR.htmlParser.element/CKEDITOR.htmlParser.text/CKEDITOR.htmlParser.comment} node
+ * The node to be added.
+ */
+ add: CKEDITOR.htmlParser.fragment.prototype.add,
+
+ /**
+ * Clone this element.
+ *
+ * @returns {CKEDITOR.htmlParser.element} The element clone.
+ */
+ clone: function() {
+ return new CKEDITOR.htmlParser.element( this.name, this.attributes );
+ },
+
+ /**
+ * Writes the element HTML to a CKEDITOR.htmlWriter.
+ *
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ * @param {CKEDITOR.htmlParser.filter} filter
+ */
+ writeHtml: function( writer, filter ) {
+ var attributes = this.attributes;
+
+ // Ignore cke: prefixes when writing HTML.
+ var element = this,
+ writeName = element.name,
+ a, newAttrName, value;
+
+ var isChildrenFiltered;
+
+ /**
+ * Providing an option for bottom-up filtering order (element
+ * children to be pre-filtered before the element itself).
+ */
+ element.filterChildren = function() {
+ if ( !isChildrenFiltered ) {
+ var writer = new CKEDITOR.htmlParser.basicWriter();
+ CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call( element, writer, filter );
+ element.children = new CKEDITOR.htmlParser.fragment.fromHtml( writer.getHtml(), element.clone(), 0 ).children;
+ isChildrenFiltered = 1;
+ }
+ };
+
+ if ( filter ) {
+
+ // Filtering if it's the root node.
+ if ( !this.parent )
+ filter.onRoot( this );
+
+ while ( true ) {
+ if ( !( writeName = filter.onElementName( writeName ) ) )
+ return;
+
+ element.name = writeName;
+
+ if ( !( element = filter.onElement( element ) ) )
+ return;
+
+ element.parent = this.parent;
+
+ if ( element.name == writeName )
+ break;
+
+ // If the element has been replaced with something of a
+ // different type, then make the replacement write itself.
+ if ( element.type != CKEDITOR.NODE_ELEMENT ) {
+ element.writeHtml( writer, filter );
+ return;
+ }
+
+ writeName = element.name;
+
+ // This indicate that the element has been dropped by
+ // filter but not the children.
+ if ( !writeName ) {
+ // Fix broken parent refs.
+ for ( var c = 0, length = this.children.length; c < length; c++ )
+ this.children[ c ].parent = element.parent;
+
+ this.writeChildrenHtml.call( element, writer, isChildrenFiltered ? null : filter );
+ return;
+ }
+ }
+
+ // The element may have been changed, so update the local
+ // references.
+ attributes = element.attributes;
+ }
+
+ // Open element tag.
+ writer.openTag( writeName, attributes );
+
+ // Copy all attributes to an array.
+ var attribsArray = [];
+ // Iterate over the attributes twice since filters may alter
+ // other attributes.
+ for ( var i = 0; i < 2; i++ ) {
+ for ( a in attributes ) {
+ newAttrName = a;
+ value = attributes[ a ];
+ if ( i == 1 )
+ attribsArray.push( [ a, value ] );
+ else if ( filter ) {
+ while ( true ) {
+ if ( !( newAttrName = filter.onAttributeName( a ) ) ) {
+ delete attributes[ a ];
+ break;
+ } else if ( newAttrName != a ) {
+ delete attributes[ a ];
+ a = newAttrName;
+ continue;
+ } else
+ break;
+ }
+ if ( newAttrName ) {
+ if ( ( value = filter.onAttribute( element, newAttrName, value ) ) === false )
+ delete attributes[ newAttrName ];
+ else
+ attributes[ newAttrName ] = value;
+ }
+ }
+ }
+ }
+ // Sort the attributes by name.
+ if ( writer.sortAttributes )
+ attribsArray.sort( sortAttribs );
+
+ // Send the attributes.
+ var len = attribsArray.length;
+ for ( i = 0; i < len; i++ ) {
+ var attrib = attribsArray[ i ];
+ writer.attribute( attrib[ 0 ], attrib[ 1 ] );
+ }
+
+ // Close the tag.
+ writer.openTagClose( writeName, element.isEmpty );
+
+ if ( !element.isEmpty ) {
+ this.writeChildrenHtml.call( element, writer, isChildrenFiltered ? null : filter );
+ // Close the element.
+ writer.closeTag( writeName );
+ }
+ },
+
+ /**
+ * Send children of this element to the writer.
+ *
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ * @param {CKEDITOR.htmlParser.filter} filter
+ */
+ writeChildrenHtml: function( writer, filter ) {
+ // Send children.
+ CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.apply( this, arguments );
+ }
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/htmlparser/filter.js b/devel/third-party/ckeditor/core/htmlparser/filter.js
index 5d16292..e462695 100644
--- a/devel/third-party/ckeditor/core/htmlparser/filter.js
+++ b/devel/third-party/ckeditor/core/htmlparser/filter.js
@@ -1,288 +1,251 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- CKEDITOR.htmlParser.filter = CKEDITOR.tools.createClass(
- {
- $ : function( rules )
- {
- this._ =
- {
- elementNames : [],
- attributeNames : [],
- elements : { $length : 0 },
- attributes : { $length : 0 }
- };
-
- if ( rules )
- this.addRules( rules, 10 );
- },
-
- proto :
- {
- addRules : function( rules, priority )
- {
- if ( typeof priority != 'number' )
- priority = 10;
-
- // Add the elementNames.
- addItemsToList( this._.elementNames, rules.elementNames, priority );
-
- // Add the attributeNames.
- addItemsToList( this._.attributeNames, rules.attributeNames, priority );
-
- // Add the elements.
- addNamedItems( this._.elements, rules.elements, priority );
-
- // Add the attributes.
- addNamedItems( this._.attributes, rules.attributes, priority );
-
- // Add the text.
- this._.text = transformNamedItem( this._.text, rules.text, priority ) || this._.text;
-
- // Add the comment.
- this._.comment = transformNamedItem( this._.comment, rules.comment, priority ) || this._.comment;
-
- // Add root fragment.
- this._.root = transformNamedItem( this._.root, rules.root, priority ) || this._.root;
- },
-
- onElementName : function( name )
- {
- return filterName( name, this._.elementNames );
- },
-
- onAttributeName : function( name )
- {
- return filterName( name, this._.attributeNames );
- },
-
- onText : function( text )
- {
- var textFilter = this._.text;
- return textFilter ? textFilter.filter( text ) : text;
- },
-
- onComment : function( commentText, comment )
- {
- var textFilter = this._.comment;
- return textFilter ? textFilter.filter( commentText, comment ) : commentText;
- },
-
- onFragment : function( element )
- {
- var rootFilter = this._.root;
- return rootFilter ? rootFilter.filter( element ) : element;
- },
-
- onElement : function( element )
- {
- // We must apply filters set to the specific element name as
- // well as those set to the generic $ name. So, add both to an
- // array and process them in a small loop.
- var filters = [ this._.elements[ '^' ], this._.elements[ element.name ], this._.elements.$ ],
- filter, ret;
-
- for ( var i = 0 ; i < 3 ; i++ )
- {
- filter = filters[ i ];
- if ( filter )
- {
- ret = filter.filter( element, this );
-
- if ( ret === false )
- return null;
-
- if ( ret && ret != element )
- return this.onNode( ret );
-
- // The non-root element has been dismissed by one of the filters.
- if ( element.parent && !element.name )
- break;
- }
- }
-
- return element;
- },
-
- onNode : function( node )
- {
- var type = node.type;
-
- return type == CKEDITOR.NODE_ELEMENT ? this.onElement( node ) :
- type == CKEDITOR.NODE_TEXT ? new CKEDITOR.htmlParser.text( this.onText( node.value ) ) :
- type == CKEDITOR.NODE_COMMENT ? new CKEDITOR.htmlParser.comment( this.onComment( node.value ) ):
- null;
- },
-
- onAttribute : function( element, name, value )
- {
- var filter = this._.attributes[ name ];
-
- if ( filter )
- {
- var ret = filter.filter( value, element, this );
-
- if ( ret === false )
- return false;
-
- if ( typeof ret != 'undefined' )
- return ret;
- }
-
- return value;
- }
- }
- });
-
- function filterName( name, filters )
- {
- for ( var i = 0 ; name && i < filters.length ; i++ )
- {
- var filter = filters[ i ];
- name = name.replace( filter[ 0 ], filter[ 1 ] );
- }
- return name;
- }
-
- function addItemsToList( list, items, priority )
- {
- if ( typeof items == 'function' )
- items = [ items ];
-
- var i, j,
- listLength = list.length,
- itemsLength = items && items.length;
-
- if ( itemsLength )
- {
- // Find the index to insert the items at.
- for ( i = 0 ; i < listLength && list[ i ].pri < priority ; i++ )
- { /*jsl:pass*/ }
-
- // Add all new items to the list at the specific index.
- for ( j = itemsLength - 1 ; j >= 0 ; j-- )
- {
- var item = items[ j ];
- if ( item )
- {
- item.pri = priority;
- list.splice( i, 0, item );
- }
- }
- }
- }
-
- function addNamedItems( hashTable, items, priority )
- {
- if ( items )
- {
- for ( var name in items )
- {
- var current = hashTable[ name ];
-
- hashTable[ name ] =
- transformNamedItem(
- current,
- items[ name ],
- priority );
-
- if ( !current )
- hashTable.$length++;
- }
- }
- }
-
- function transformNamedItem( current, item, priority )
- {
- if ( item )
- {
- item.pri = priority;
-
- if ( current )
- {
- // If the current item is not an Array, transform it.
- if ( !current.splice )
- {
- if ( current.pri > priority )
- current = [ item, current ];
- else
- current = [ current, item ];
-
- current.filter = callItems;
- }
- else
- addItemsToList( current, item, priority );
-
- return current;
- }
- else
- {
- item.filter = item;
- return item;
- }
- }
- }
-
- // Invoke filters sequentially on the array, break the iteration
- // when it doesn't make sense to continue anymore.
- function callItems( currentEntry )
- {
- var isNode = currentEntry.type
- || currentEntry instanceof CKEDITOR.htmlParser.fragment;
-
- for ( var i = 0 ; i < this.length ; i++ )
- {
- // Backup the node info before filtering.
- if ( isNode )
- {
- var orgType = currentEntry.type,
- orgName = currentEntry.name;
- }
-
- var item = this[ i ],
- ret = item.apply( window, arguments );
-
- if ( ret === false )
- return ret;
-
- // We're filtering node (element/fragment).
- if ( isNode )
- {
- // No further filtering if it's not anymore
- // fitable for the subsequent filters.
- if ( ret && ( ret.name != orgName
- || ret.type != orgType ) )
- {
- return ret;
- }
- }
- // Filtering value (nodeName/textValue/attrValue).
- else
- {
- // No further filtering if it's not
- // any more values.
- if ( typeof ret != 'string' )
- return ret;
- }
-
- ret != undefined && ( currentEntry = ret );
- }
-
- return currentEntry;
- }
-})();
-
-// "entities" plugin
-/*
-{
- text : function( text )
- {
- // TODO : Process entities.
- return text.toUpperCase();
- }
-};
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ /**
+ * TODO
+ *
+ * @class
+ * @todo we need examples...
+ */
+ CKEDITOR.htmlParser.filter = CKEDITOR.tools.createClass({
+ /**
+ * @constructor Creates a filter class instance.
+ * @todo param
+ */
+ $: function( rules ) {
+ this._ = {
+ elementNames: [],
+ attributeNames: [],
+ elements: { $length: 0 },
+ attributes: { $length: 0 }
+ };
+
+ if ( rules )
+ this.addRules( rules, 10 );
+ },
+
+ proto: {
+ addRules: function( rules, priority ) {
+ if ( typeof priority != 'number' )
+ priority = 10;
+
+ // Add the elementNames.
+ addItemsToList( this._.elementNames, rules.elementNames, priority );
+
+ // Add the attributeNames.
+ addItemsToList( this._.attributeNames, rules.attributeNames, priority );
+
+ // Add the elements.
+ addNamedItems( this._.elements, rules.elements, priority );
+
+ // Add the attributes.
+ addNamedItems( this._.attributes, rules.attributes, priority );
+
+ // Add the text.
+ this._.text = transformNamedItem( this._.text, rules.text, priority ) || this._.text;
+
+ // Add the comment.
+ this._.comment = transformNamedItem( this._.comment, rules.comment, priority ) || this._.comment;
+
+ // Add root node rules.
+ this._.root = transformNamedItem( this._.root, rules.root, priority ) || this._.root;
+ },
+
+ onElementName: function( name ) {
+ return filterName( name, this._.elementNames );
+ },
+
+ onAttributeName: function( name ) {
+ return filterName( name, this._.attributeNames );
+ },
+
+ onText: function( text ) {
+ var textFilter = this._.text;
+ return textFilter ? textFilter.filter( text ) : text;
+ },
+
+ onComment: function( commentText, comment ) {
+ var textFilter = this._.comment;
+ return textFilter ? textFilter.filter( commentText, comment ) : commentText;
+ },
+
+ onRoot: function( element ) {
+ var rootFilter = this._.root;
+ return rootFilter ? rootFilter.filter( element ) : element;
+ },
+
+ onElement: function( element ) {
+ // We must apply filters set to the specific element name as
+ // well as those set to the generic $ name. So, add both to an
+ // array and process them in a small loop.
+ var filters = [ this._.elements[ '^' ], this._.elements[ element.name ], this._.elements.$ ],
+ filter, ret;
+
+ for ( var i = 0; i < 3; i++ ) {
+ filter = filters[ i ];
+ if ( filter ) {
+ ret = filter.filter( element, this );
+
+ if ( ret === false )
+ return null;
+
+ if ( ret && ret != element )
+ return this.onNode( ret );
+
+ // The non-root element has been dismissed by one of the filters.
+ if ( element.parent && !element.name )
+ break;
+ }
+ }
+
+ return element;
+ },
+
+ onNode: function( node ) {
+ var type = node.type;
+
+ return type == CKEDITOR.NODE_ELEMENT ? this.onElement( node ) : type == CKEDITOR.NODE_TEXT ? new CKEDITOR.htmlParser.text( this.onText( node.value ) ) : type == CKEDITOR.NODE_COMMENT ? new CKEDITOR.htmlParser.comment( this.onComment( node.value ) ) : null;
+ },
+
+ onAttribute: function( element, name, value ) {
+ var filter = this._.attributes[ name ];
+
+ if ( filter ) {
+ var ret = filter.filter( value, element, this );
+
+ if ( ret === false )
+ return false;
+
+ if ( typeof ret != 'undefined' )
+ return ret;
+ }
+
+ return value;
+ }
+ }
+ });
+
+ function filterName( name, filters ) {
+ for ( var i = 0; name && i < filters.length; i++ ) {
+ var filter = filters[ i ];
+ name = name.replace( filter[ 0 ], filter[ 1 ] );
+ }
+ return name;
+ }
+
+ function addItemsToList( list, items, priority ) {
+ if ( typeof items == 'function' )
+ items = [ items ];
+
+ var i, j,
+ listLength = list.length,
+ itemsLength = items && items.length;
+
+ if ( itemsLength ) {
+ // Find the index to insert the items at.
+ for ( i = 0; i < listLength && list[ i ].pri < priority; i++ ) {
+ /*jsl:pass*/
+ }
+
+ // Add all new items to the list at the specific index.
+ for ( j = itemsLength - 1; j >= 0; j-- ) {
+ var item = items[ j ];
+ if ( item ) {
+ item.pri = priority;
+ list.splice( i, 0, item );
+ }
+ }
+ }
+ }
+
+ function addNamedItems( hashTable, items, priority ) {
+ if ( items ) {
+ for ( var name in items ) {
+ var current = hashTable[ name ];
+
+ hashTable[ name ] = transformNamedItem( current, items[ name ], priority );
+
+ if ( !current )
+ hashTable.$length++;
+ }
+ }
+ }
+
+ function transformNamedItem( current, item, priority ) {
+ if ( item ) {
+ item.pri = priority;
+
+ if ( current ) {
+ // If the current item is not an Array, transform it.
+ if ( !current.splice ) {
+ if ( current.pri > priority )
+ current = [ item, current ];
+ else
+ current = [ current, item ];
+
+ current.filter = callItems;
+ } else
+ addItemsToList( current, item, priority );
+
+ return current;
+ } else {
+ item.filter = item;
+ return item;
+ }
+ }
+ }
+
+ // Invoke filters sequentially on the array, break the iteration
+ // when it doesn't make sense to continue anymore.
+ function callItems( currentEntry ) {
+ var isNode = currentEntry.type || currentEntry instanceof CKEDITOR.htmlParser.fragment;
+
+ for ( var i = 0; i < this.length; i++ ) {
+ // Backup the node info before filtering.
+ if ( isNode ) {
+ var orgType = currentEntry.type,
+ orgName = currentEntry.name;
+ }
+
+ var item = this[ i ],
+ ret = item.apply( window, arguments );
+
+ if ( ret === false )
+ return ret;
+
+ // We're filtering node (element/fragment).
+ if ( isNode ) {
+ // No further filtering if it's not anymore
+ // fitable for the subsequent filters.
+ if ( ret && ( ret.name != orgName || ret.type != orgType ) ) {
+ return ret;
+ }
+ }
+ // Filtering value (nodeName/textValue/attrValue).
+ else {
+ // No further filtering if it's not
+ // any more values.
+ if ( typeof ret != 'string' )
+ return ret;
+ }
+
+ ret != undefined && ( currentEntry = ret );
+ }
+
+ return currentEntry;
+ }
+})();
+
+// "entities" plugin
+/*
+{
+ text : function( text )
+ {
+ // TODO : Process entities.
+ return text.toUpperCase();
+ }
+};
+*/
diff --git a/devel/third-party/ckeditor/core/htmlparser/fragment.js b/devel/third-party/ckeditor/core/htmlparser/fragment.js
index d31b050..a11b00a 100644
--- a/devel/third-party/ckeditor/core/htmlparser/fragment.js
+++ b/devel/third-party/ckeditor/core/htmlparser/fragment.js
@@ -1,497 +1,527 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * A lightweight representation of an HTML DOM structure.
- * @constructor
- * @example
- */
-CKEDITOR.htmlParser.fragment = function()
-{
- /**
- * The nodes contained in the root of this fragment.
- * @type Array
- * @example
- * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<b>Sample</b> Text' );
- * alert( fragment.children.length ); "2"
- */
- this.children = [];
-
- /**
- * Get the fragment parent. Should always be null.
- * @type Object
- * @default null
- * @example
- */
- this.parent = null;
-
- /** @private */
- this._ =
- {
- isBlockLike : true,
- hasInlineStarted : false
- };
-};
-
-(function()
-{
- // Elements which the end tag is marked as optional in the HTML 4.01 DTD
- // (expect empty elements).
- var optionalClose = {colgroup:1,dd:1,dt:1,li:1,option:1,p:1,td:1,tfoot:1,th:1,thead:1,tr:1};
-
- // Block-level elements whose internal structure should be respected during
- // parser fixing.
- var nonBreakingBlocks = CKEDITOR.tools.extend(
- {table:1,ul:1,ol:1,dl:1},
- CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl ),
- listBlocks = CKEDITOR.dtd.$list, listItems = CKEDITOR.dtd.$listItem;
-
- /**
- * Creates a {@link CKEDITOR.htmlParser.fragment} from an HTML string.
- * @param {String} fragmentHtml The HTML to be parsed, filling the fragment.
- * @param {Number} [fixForBody=false] Wrap body with specified element if needed.
- * @returns CKEDITOR.htmlParser.fragment The fragment created.
- * @example
- * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<b>Sample</b> Text' );
- * alert( fragment.children[0].name ); "b"
- * alert( fragment.children[1].value ); " Text"
- */
- CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, fixForBody )
- {
- var parser = new CKEDITOR.htmlParser(),
- html = [],
- fragment = new CKEDITOR.htmlParser.fragment(),
- pendingInline = [],
- pendingBRs = [],
- currentNode = fragment,
- // Indicate we're inside a <pre> element, spaces should be touched differently.
- inPre = false,
- returnPoint;
-
- function checkPending( newTagName )
- {
- var pendingBRsSent;
-
- if ( pendingInline.length > 0 )
- {
- for ( var i = 0 ; i < pendingInline.length ; i++ )
- {
- var pendingElement = pendingInline[ i ],
- pendingName = pendingElement.name,
- pendingDtd = CKEDITOR.dtd[ pendingName ],
- currentDtd = currentNode.name && CKEDITOR.dtd[ currentNode.name ];
-
- if ( ( !currentDtd || currentDtd[ pendingName ] ) && ( !newTagName || !pendingDtd || pendingDtd[ newTagName ] || !CKEDITOR.dtd[ newTagName ] ) )
- {
- if ( !pendingBRsSent )
- {
- sendPendingBRs();
- pendingBRsSent = 1;
- }
-
- // Get a clone for the pending element.
- pendingElement = pendingElement.clone();
-
- // Add it to the current node and make it the current,
- // so the new element will be added inside of it.
- pendingElement.parent = currentNode;
- currentNode = pendingElement;
-
- // Remove the pending element (back the index by one
- // to properly process the next entry).
- pendingInline.splice( i, 1 );
- i--;
- }
- }
- }
- }
-
- function sendPendingBRs( brsToIgnore )
- {
- while ( pendingBRs.length - ( brsToIgnore || 0 ) > 0 )
- currentNode.add( pendingBRs.shift() );
- }
-
- function addElement( element, target, enforceCurrent )
- {
- target = target || currentNode || fragment;
-
- // If the target is the fragment and this element can't go inside
- // body (if fixForBody).
- if ( fixForBody && !target.type )
- {
- var elementName, realElementName;
- if ( element.attributes
- && ( realElementName =
- element.attributes[ '_cke_real_element_type' ] ) )
- elementName = realElementName;
- else
- elementName = element.name;
- if ( elementName
- && !( elementName in CKEDITOR.dtd.$body )
- && !( elementName in CKEDITOR.dtd.$nonBodyContent ) )
- {
- var savedCurrent = currentNode;
-
- // Create a <p> in the fragment.
- currentNode = target;
- parser.onTagOpen( fixForBody, {} );
-
- // The new target now is the <p>.
- target = currentNode;
-
- if ( enforceCurrent )
- currentNode = savedCurrent;
- }
- }
-
- // Rtrim empty spaces on block end boundary. (#3585)
- if ( element._.isBlockLike
- && element.name != 'pre' )
- {
-
- var length = element.children.length,
- lastChild = element.children[ length - 1 ],
- text;
- if ( lastChild && lastChild.type == CKEDITOR.NODE_TEXT )
- {
- if ( !( text = CKEDITOR.tools.rtrim( lastChild.value ) ) )
- element.children.length = length -1;
- else
- lastChild.value = text;
- }
- }
-
- target.add( element );
-
- if ( element.returnPoint )
- {
- currentNode = element.returnPoint;
- delete element.returnPoint;
- }
- }
-
- parser.onTagOpen = function( tagName, attributes, selfClosing )
- {
- var element = new CKEDITOR.htmlParser.element( tagName, attributes );
-
- // "isEmpty" will be always "false" for unknown elements, so we
- // must force it if the parser has identified it as a selfClosing tag.
- if ( element.isUnknown && selfClosing )
- element.isEmpty = true;
-
- // This is a tag to be removed if empty, so do not add it immediately.
- if ( CKEDITOR.dtd.$removeEmpty[ tagName ] )
- {
- pendingInline.push( element );
- return;
- }
- else if ( tagName == 'pre' )
- inPre = true;
- else if ( tagName == 'br' && inPre )
- {
- currentNode.add( new CKEDITOR.htmlParser.text( '\n' ) );
- return;
- }
-
- if ( tagName == 'br' )
- {
- pendingBRs.push( element );
- return;
- }
-
- var currentName = currentNode.name;
-
- var currentDtd = currentName
- && ( CKEDITOR.dtd[ currentName ]
- || ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) );
-
- // If the element cannot be child of the current element.
- if ( currentDtd // Fragment could receive any elements.
- && !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] )
- {
-
- var reApply = false,
- addPoint; // New position to start adding nodes.
-
- // Fixing malformed nested lists by moving it into a previous list item. (#3828)
- if ( tagName in listBlocks
- && currentName in listBlocks )
- {
- var children = currentNode.children,
- lastChild = children[ children.length - 1 ];
-
- // Establish the list item if it's not existed.
- if ( !( lastChild && lastChild.name in listItems ) )
- addElement( ( lastChild = new CKEDITOR.htmlParser.element( 'li' ) ), currentNode );
-
- returnPoint = currentNode, addPoint = lastChild;
- }
- // If the element name is the same as the current element name,
- // then just close the current one and append the new one to the
- // parent. This situation usually happens with <p>, <li>, <dt> and
- // <dd>, specially in IE. Do not enter in this if block in this case.
- else if ( tagName == currentName )
- {
- addElement( currentNode, currentNode.parent );
- }
- else
- {
- if ( nonBreakingBlocks[ currentName ] )
- {
- if ( !returnPoint )
- returnPoint = currentNode;
- }
- else
- {
- addElement( currentNode, currentNode.parent, true );
-
- if ( !optionalClose[ currentName ] )
- {
- // The current element is an inline element, which
- // cannot hold the new one. Put it in the pending list,
- // and try adding the new one after it.
- pendingInline.unshift( currentNode );
- }
- }
-
- reApply = true;
- }
-
- if ( addPoint )
- currentNode = addPoint;
- // Try adding it to the return point, or the parent element.
- else
- currentNode = currentNode.returnPoint || currentNode.parent;
-
- if ( reApply )
- {
- parser.onTagOpen.apply( this, arguments );
- return;
- }
- }
-
- checkPending( tagName );
- sendPendingBRs();
-
- element.parent = currentNode;
- element.returnPoint = returnPoint;
- returnPoint = 0;
-
- if ( element.isEmpty )
- addElement( element );
- else
- currentNode = element;
- };
-
- parser.onTagClose = function( tagName )
- {
- // Check if there is any pending tag to be closed.
- for ( var i = pendingInline.length - 1 ; i >= 0 ; i-- )
- {
- // If found, just remove it from the list.
- if ( tagName == pendingInline[ i ].name )
- {
- pendingInline.splice( i, 1 );
- return;
- }
- }
-
- var pendingAdd = [],
- newPendingInline = [],
- candidate = currentNode;
-
- while ( candidate.type && candidate.name != tagName )
- {
- // If this is an inline element, add it to the pending list, if we're
- // really closing one of the parents element later, they will continue
- // after it.
- if ( !candidate._.isBlockLike )
- newPendingInline.unshift( candidate );
-
- // This node should be added to it's parent at this point. But,
- // it should happen only if the closing tag is really closing
- // one of the nodes. So, for now, we just cache it.
- pendingAdd.push( candidate );
-
- candidate = candidate.parent;
- }
-
- if ( candidate.type )
- {
- // Add all elements that have been found in the above loop.
- for ( i = 0 ; i < pendingAdd.length ; i++ )
- {
- var node = pendingAdd[ i ];
- addElement( node, node.parent );
- }
-
- currentNode = candidate;
-
- if ( currentNode.name == 'pre' )
- inPre = false;
-
- if ( candidate._.isBlockLike )
- sendPendingBRs();
-
- addElement( candidate, candidate.parent );
-
- // The parent should start receiving new nodes now, except if
- // addElement changed the currentNode.
- if ( candidate == currentNode )
- currentNode = currentNode.parent;
-
- pendingInline = pendingInline.concat( newPendingInline );
- }
-
- if ( tagName == 'body' )
- fixForBody = false;
- };
-
- parser.onText = function( text )
- {
- // Trim empty spaces at beginning of element contents except <pre>.
- if ( !currentNode._.hasInlineStarted && !inPre )
- {
- text = CKEDITOR.tools.ltrim( text );
-
- if ( text.length === 0 )
- return;
- }
-
- sendPendingBRs();
- checkPending();
-
- if ( fixForBody
- && ( !currentNode.type || currentNode.name == 'body' )
- && CKEDITOR.tools.trim( text ) )
- {
- this.onTagOpen( fixForBody, {} );
- }
-
- // Shrinking consequential spaces into one single for all elements
- // text contents.
- if ( !inPre )
- text = text.replace( /[\t\r\n ]{2,}|[\t\r\n]/g, ' ' );
-
- currentNode.add( new CKEDITOR.htmlParser.text( text ) );
- };
-
- parser.onCDATA = function( cdata )
- {
- currentNode.add( new CKEDITOR.htmlParser.cdata( cdata ) );
- };
-
- parser.onComment = function( comment )
- {
- currentNode.add( new CKEDITOR.htmlParser.comment( comment ) );
- };
-
- // Parse it.
- parser.parse( fragmentHtml );
-
- // Send all pending BRs except one, which we consider a unwanted bogus. (#5293)
- sendPendingBRs( !CKEDITOR.env.ie && 1 );
-
- // Close all pending nodes.
- while ( currentNode.type )
- {
- var parent = currentNode.parent,
- node = currentNode;
-
- if ( fixForBody
- && ( !parent.type || parent.name == 'body' )
- && !CKEDITOR.dtd.$body[ node.name ] )
- {
- currentNode = parent;
- parser.onTagOpen( fixForBody, {} );
- parent = currentNode;
- }
-
- parent.add( node );
- currentNode = parent;
- }
-
- return fragment;
- };
-
- CKEDITOR.htmlParser.fragment.prototype =
- {
- /**
- * Adds a node to this fragment.
- * @param {Object} node The node to be added. It can be any of of the
- * following types: {@link CKEDITOR.htmlParser.element},
- * {@link CKEDITOR.htmlParser.text} and
- * {@link CKEDITOR.htmlParser.comment}.
- * @example
- */
- add : function( node )
- {
- var len = this.children.length,
- previous = len > 0 && this.children[ len - 1 ] || null;
-
- if ( previous )
- {
- // If the block to be appended is following text, trim spaces at
- // the right of it.
- if ( node._.isBlockLike && previous.type == CKEDITOR.NODE_TEXT )
- {
- previous.value = CKEDITOR.tools.rtrim( previous.value );
-
- // If we have completely cleared the previous node.
- if ( previous.value.length === 0 )
- {
- // Remove it from the list and add the node again.
- this.children.pop();
- this.add( node );
- return;
- }
- }
-
- previous.next = node;
- }
-
- node.previous = previous;
- node.parent = this;
-
- this.children.push( node );
-
- this._.hasInlineStarted = node.type == CKEDITOR.NODE_TEXT || ( node.type == CKEDITOR.NODE_ELEMENT && !node._.isBlockLike );
- },
-
- /**
- * Writes the fragment HTML to a CKEDITOR.htmlWriter.
- * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
- * @example
- * var writer = new CKEDITOR.htmlWriter();
- * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<P><B>Example' );
- * fragment.writeHtml( writer )
- * alert( writer.getHtml() ); "<p><b>Example</b></p>"
- */
- writeHtml : function( writer, filter )
- {
- var isChildrenFiltered;
- this.filterChildren = function()
- {
- var writer = new CKEDITOR.htmlParser.basicWriter();
- this.writeChildrenHtml.call( this, writer, filter, true );
- var html = writer.getHtml();
- this.children = new CKEDITOR.htmlParser.fragment.fromHtml( html ).children;
- isChildrenFiltered = 1;
- };
-
- // Filtering the root fragment before anything else.
- !this.name && filter && filter.onFragment( this );
-
- this.writeChildrenHtml( writer, isChildrenFiltered ? null : filter );
- },
-
- writeChildrenHtml : function( writer, filter )
- {
- for ( var i = 0 ; i < this.children.length ; i++ )
- this.children[i].writeHtml( writer, filter );
- }
- };
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * A lightweight representation of an HTML DOM structure.
+ *
+ * @class
+ * @constructor Creates a fragment class instance.
+ */
+CKEDITOR.htmlParser.fragment = function() {
+ /**
+ * The nodes contained in the root of this fragment.
+ *
+ * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<b>Sample</b> Text' );
+ * alert( fragment.children.length ); // 2
+ */
+ this.children = [];
+
+ /**
+ * Get the fragment parent. Should always be null.
+ *
+ * @property {Object} [=null]
+ */
+ this.parent = null;
+
+ /** @private */
+ this._ = {
+ isBlockLike: true,
+ hasInlineStarted: false
+ };
+};
+
+(function() {
+ // Block-level elements whose internal structure should be respected during
+ // parser fixing.
+ var nonBreakingBlocks = CKEDITOR.tools.extend( { table:1,ul:1,ol:1,dl:1 }, CKEDITOR.dtd.table, CKEDITOR.dtd.ul, CKEDITOR.dtd.ol, CKEDITOR.dtd.dl );
+
+ var listBlocks = { ol:1,ul:1 };
+
+ // Dtd of the fragment element, basically it accept anything except for intermediate structure, e.g. orphan <li>.
+ var rootDtd = CKEDITOR.tools.extend( {}, { html:1 }, CKEDITOR.dtd.html, CKEDITOR.dtd.body, CKEDITOR.dtd.head, { style:1,script:1 } );
+
+ function isRemoveEmpty( node ) {
+ // Empty link is to be removed when empty but not anchor. (#7894)
+ return node.name == 'a' && node.attributes.href || CKEDITOR.dtd.$removeEmpty[ node.name ];
+ }
+
+ /**
+ * Creates a {@link CKEDITOR.htmlParser.fragment} from an HTML string.
+ *
+ * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<b>Sample</b> Text' );
+ * alert( fragment.children[ 0 ].name ); // 'b'
+ * alert( fragment.children[ 1 ].value ); // ' Text'
+ *
+ * @static
+ * @param {String} fragmentHtml The HTML to be parsed, filling the fragment.
+ * @param {CKEDITOR.htmlParser.element/String} [parent] Optional contextual
+ * element which makes the content been parsed as the content of this element.
+ * @param {String/Boolean} [fixingBlock] When `parent` is a block limit element,
+ * and the param is a string value other than `false`, it is to
+ * avoid having block-less content as the direct children of parent by wrapping
+ * the content with a block element of the specified tag, e.g.
+ * when `fixingBlock` specified as `p`, the content `<body><i>foo</i></body>`
+ * will be fixed into `<body><p><i>foo</i></p></body>`.
+ * @returns CKEDITOR.htmlParser.fragment The fragment created.
+ */
+ CKEDITOR.htmlParser.fragment.fromHtml = function( fragmentHtml, parent, fixingBlock ) {
+ var parser = new CKEDITOR.htmlParser();
+
+ var root = parent instanceof CKEDITOR.htmlParser.element ? parent : typeof parent == 'string' ? new CKEDITOR.htmlParser.element( parent ) : new CKEDITOR.htmlParser.fragment();
+
+ var pendingInline = [],
+ pendingBRs = [],
+ currentNode = root,
+ // Indicate we're inside a <textarea> element, spaces should be touched differently.
+ inTextarea = root.name == 'textarea',
+ // Indicate we're inside a <pre> element, spaces should be touched differently.
+ inPre = root.name == 'pre';
+
+ function checkPending( newTagName ) {
+ var pendingBRsSent;
+
+ if ( pendingInline.length > 0 ) {
+ for ( var i = 0; i < pendingInline.length; i++ ) {
+ var pendingElement = pendingInline[ i ],
+ pendingName = pendingElement.name,
+ pendingDtd = CKEDITOR.dtd[ pendingName ],
+ currentDtd = currentNode.name && CKEDITOR.dtd[ currentNode.name ];
+
+ if ( ( !currentDtd || currentDtd[ pendingName ] ) && ( !newTagName || !pendingDtd || pendingDtd[ newTagName ] || !CKEDITOR.dtd[ newTagName ] ) ) {
+ if ( !pendingBRsSent ) {
+ sendPendingBRs();
+ pendingBRsSent = 1;
+ }
+
+ // Get a clone for the pending element.
+ pendingElement = pendingElement.clone();
+
+ // Add it to the current node and make it the current,
+ // so the new element will be added inside of it.
+ pendingElement.parent = currentNode;
+ currentNode = pendingElement;
+
+ // Remove the pending element (back the index by one
+ // to properly process the next entry).
+ pendingInline.splice( i, 1 );
+ i--;
+ } else {
+ // Some element of the same type cannot be nested, flat them,
+ // e.g. <a href="#">foo<a href="#">bar</a></a>. (#7894)
+ if ( pendingName == currentNode.name )
+ addElement( currentNode, currentNode.parent, 1 ), i--;
+ }
+ }
+ }
+ }
+
+ function sendPendingBRs() {
+ while ( pendingBRs.length )
+ addElement( pendingBRs.shift(), currentNode );
+ }
+
+ // Rtrim empty spaces on block end boundary. (#3585)
+ function removeTailWhitespace( element ) {
+ if ( element._.isBlockLike && element.name != 'pre' && element.name != 'textarea' ) {
+
+ var length = element.children.length,
+ lastChild = element.children[ length - 1 ],
+ text;
+ if ( lastChild && lastChild.type == CKEDITOR.NODE_TEXT ) {
+ if ( !( text = CKEDITOR.tools.rtrim( lastChild.value ) ) )
+ element.children.length = length - 1;
+ else
+ lastChild.value = text;
+ }
+ }
+ }
+
+ // Beside of simply append specified element to target, this function also takes
+ // care of other dirty lifts like forcing block in body, trimming spaces at
+ // the block boundaries etc.
+ //
+ // @param {Element} element The element to be added as the last child of {@link target}.
+ // @param {Element} target The parent element to relieve the new node.
+ // @param {Boolean} [moveCurrent=false] Don't change the "currentNode" global unless
+ // there's a return point node specified on the element, otherwise move current onto {@link target} node.
+ //
+ function addElement( element, target, moveCurrent ) {
+ target = target || currentNode || root;
+
+ // Current element might be mangled by fix body below,
+ // save it for restore later.
+ var savedCurrent = currentNode;
+
+ // Ignore any element that has already been added.
+ if ( element.previous === undefined ) {
+ if ( checkAutoParagraphing( target, element ) ) {
+ // Create a <p> in the fragment.
+ currentNode = target;
+ parser.onTagOpen( fixingBlock, {} );
+
+ // The new target now is the <p>.
+ element.returnPoint = target = currentNode;
+ }
+
+ removeTailWhitespace( element );
+
+ // Avoid adding empty inline.
+ if ( !( isRemoveEmpty( element ) && !element.children.length ) )
+ target.add( element );
+
+ if ( element.name == 'pre' )
+ inPre = false;
+
+ if ( element.name == 'textarea' )
+ inTextarea = false;
+ }
+
+ if ( element.returnPoint ) {
+ currentNode = element.returnPoint;
+ delete element.returnPoint;
+ } else
+ currentNode = moveCurrent ? target : savedCurrent;
+ }
+
+ // Auto paragraphing should happen when inline content enters the root element.
+ function checkAutoParagraphing( parent, node ) {
+
+ // Check for parent that can contain block.
+ if ( ( parent == root || parent.name == 'body' ) && fixingBlock &&
+ ( !parent.name || CKEDITOR.dtd[ parent.name ][ fixingBlock ] ) )
+ {
+ var name, realName;
+ if ( node.attributes && ( realName = node.attributes[ 'data-cke-real-element-type' ] ) )
+ name = realName;
+ else
+ name = node.name;
+
+ // Text node, inline elements are subjected, except for <script>/<style>.
+ return name && name in CKEDITOR.dtd.$inline &&
+ !( name in CKEDITOR.dtd.head ) &&
+ !node.isOrphan ||
+ node.type == CKEDITOR.NODE_TEXT;
+ }
+ }
+
+ // Judge whether two element tag names are likely the siblings from the same
+ // structural element.
+ function possiblySibling( tag1, tag2 ) {
+
+ if ( tag1 in CKEDITOR.dtd.$listItem || tag1 in CKEDITOR.dtd.$tableContent )
+ return tag1 == tag2 || tag1 == 'dt' && tag2 == 'dd' || tag1 == 'dd' && tag2 == 'dt';
+
+ return false;
+ }
+
+ parser.onTagOpen = function( tagName, attributes, selfClosing, optionalClose ) {
+ var element = new CKEDITOR.htmlParser.element( tagName, attributes );
+
+ // "isEmpty" will be always "false" for unknown elements, so we
+ // must force it if the parser has identified it as a selfClosing tag.
+ if ( element.isUnknown && selfClosing )
+ element.isEmpty = true;
+
+ // Check for optional closed elements, including browser quirks and manually opened blocks.
+ element.isOptionalClose = optionalClose;
+
+ // This is a tag to be removed if empty, so do not add it immediately.
+ if ( isRemoveEmpty( element ) ) {
+ pendingInline.push( element );
+ return;
+ } else if ( tagName == 'pre' )
+ inPre = true;
+ else if ( tagName == 'br' && inPre ) {
+ currentNode.add( new CKEDITOR.htmlParser.text( '\n' ) );
+ return;
+ } else if ( tagName == 'textarea' )
+ inTextarea = true;
+
+ if ( tagName == 'br' ) {
+ pendingBRs.push( element );
+ return;
+ }
+
+ while ( 1 ) {
+ var currentName = currentNode.name;
+
+ var currentDtd = currentName ? ( CKEDITOR.dtd[ currentName ] || ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) ) : rootDtd;
+
+ // If the element cannot be child of the current element.
+ if ( !element.isUnknown && !currentNode.isUnknown && !currentDtd[ tagName ] ) {
+ // Current node doesn't have a close tag, time for a close
+ // as this element isn't fit in. (#7497)
+ if ( currentNode.isOptionalClose )
+ parser.onTagClose( currentName );
+ // Fixing malformed nested lists by moving it into a previous list item. (#3828)
+ else if ( tagName in listBlocks && currentName in listBlocks ) {
+ var children = currentNode.children,
+ lastChild = children[ children.length - 1 ];
+
+ // Establish the list item if it's not existed.
+ if ( !( lastChild && lastChild.name == 'li' ) )
+ addElement( ( lastChild = new CKEDITOR.htmlParser.element( 'li' ) ), currentNode );
+
+ !element.returnPoint && ( element.returnPoint = currentNode );
+ currentNode = lastChild;
+ }
+ // Establish new list root for orphan list items, but NOT to create
+ // new list for the following ones, fix them instead. (#6975)
+ // <dl><dt>foo<dd>bar</dl>
+ // <ul><li>foo<li>bar</ul>
+ else if ( tagName in CKEDITOR.dtd.$listItem &&
+ !possiblySibling( tagName, currentName ) ) {
+ parser.onTagOpen( tagName == 'li' ? 'ul' : 'dl', {}, 0, 1 );
+ }
+ // We're inside a structural block like table and list, AND the incoming element
+ // is not of the same type (e.g. <td>td1<td>td2</td>), we simply add this new one before it,
+ // and most importantly, return back to here once this element is added,
+ // e.g. <table><tr><td>td1</td><p>p1</p><td>td2</td></tr></table>
+ else if ( currentName in nonBreakingBlocks &&
+ !possiblySibling( tagName, currentName ) ) {
+ !element.returnPoint && ( element.returnPoint = currentNode );
+ currentNode = currentNode.parent;
+ } else {
+ // The current element is an inline element, which
+ // need to be continued even after the close, so put
+ // it in the pending list.
+ if ( currentName in CKEDITOR.dtd.$inline )
+ pendingInline.unshift( currentNode );
+
+ // The most common case where we just need to close the
+ // current one and append the new one to the parent.
+ if ( currentNode.parent )
+ addElement( currentNode, currentNode.parent, 1 );
+ // We've tried our best to fix the embarrassment here, while
+ // this element still doesn't find it's parent, mark it as
+ // orphan and show our tolerance to it.
+ else {
+ element.isOrphan = 1;
+ break;
+ }
+ }
+ } else
+ break;
+ }
+
+ checkPending( tagName );
+ sendPendingBRs();
+
+ element.parent = currentNode;
+
+ if ( element.isEmpty )
+ addElement( element );
+ else
+ currentNode = element;
+ };
+
+ parser.onTagClose = function( tagName ) {
+ // Check if there is any pending tag to be closed.
+ for ( var i = pendingInline.length - 1; i >= 0; i-- ) {
+ // If found, just remove it from the list.
+ if ( tagName == pendingInline[ i ].name ) {
+ pendingInline.splice( i, 1 );
+ return;
+ }
+ }
+
+ var pendingAdd = [],
+ newPendingInline = [],
+ candidate = currentNode;
+
+ while ( candidate != root && candidate.name != tagName ) {
+ // If this is an inline element, add it to the pending list, if we're
+ // really closing one of the parents element later, they will continue
+ // after it.
+ if ( !candidate._.isBlockLike )
+ newPendingInline.unshift( candidate );
+
+ // This node should be added to it's parent at this point. But,
+ // it should happen only if the closing tag is really closing
+ // one of the nodes. So, for now, we just cache it.
+ pendingAdd.push( candidate );
+
+ // Make sure return point is properly restored.
+ candidate = candidate.returnPoint || candidate.parent;
+ }
+
+ if ( candidate != root ) {
+ // Add all elements that have been found in the above loop.
+ for ( i = 0; i < pendingAdd.length; i++ ) {
+ var node = pendingAdd[ i ];
+ addElement( node, node.parent );
+ }
+
+ currentNode = candidate;
+
+ if ( candidate._.isBlockLike )
+ sendPendingBRs();
+
+ addElement( candidate, candidate.parent );
+
+ // The parent should start receiving new nodes now, except if
+ // addElement changed the currentNode.
+ if ( candidate == currentNode )
+ currentNode = currentNode.parent;
+
+ pendingInline = pendingInline.concat( newPendingInline );
+ }
+
+ if ( tagName == 'body' )
+ fixingBlock = false;
+ };
+
+ parser.onText = function( text ) {
+ // Trim empty spaces at beginning of text contents except <pre> and <textarea>.
+ if ( ( !currentNode._.hasInlineStarted || pendingBRs.length ) && !inPre && !inTextarea ) {
+ text = CKEDITOR.tools.ltrim( text );
+
+ if ( text.length === 0 )
+ return;
+ }
+
+ var currentName = currentNode.name,
+ currentDtd = currentName ? ( CKEDITOR.dtd[ currentName ] || ( currentNode._.isBlockLike ? CKEDITOR.dtd.div : CKEDITOR.dtd.span ) ) : rootDtd;
+
+ // Fix orphan text in list/table. (#8540) (#8870)
+ if ( !inTextarea && !currentDtd[ '#' ] && currentName in nonBreakingBlocks ) {
+ parser.onTagOpen( currentName in listBlocks ? 'li' : currentName == 'dl' ? 'dd' : currentName == 'table' ? 'tr' : currentName == 'tr' ? 'td' : '' );
+ parser.onText( text );
+ return;
+ }
+
+ sendPendingBRs();
+ checkPending();
+
+ // Shrinking consequential spaces into one single for all elements
+ // text contents.
+ if ( !inPre && !inTextarea )
+ text = text.replace( /[\t\r\n ]{2,}|[\t\r\n]/g, ' ' );
+
+ text = new CKEDITOR.htmlParser.text( text );
+
+
+ if ( checkAutoParagraphing( currentNode, text ) )
+ this.onTagOpen( fixingBlock, {}, 0, 1 );
+
+ currentNode.add( text );
+ };
+
+ parser.onCDATA = function( cdata ) {
+ currentNode.add( new CKEDITOR.htmlParser.cdata( cdata ) );
+ };
+
+ parser.onComment = function( comment ) {
+ sendPendingBRs();
+ checkPending();
+ currentNode.add( new CKEDITOR.htmlParser.comment( comment ) );
+ };
+
+ // Parse it.
+ parser.parse( fragmentHtml );
+
+ // Send all pending BRs except one, which we consider a unwanted bogus. (#5293)
+ sendPendingBRs( !CKEDITOR.env.ie && 1 );
+
+ // Close all pending nodes, make sure return point is properly restored.
+ while ( currentNode != root )
+ addElement( currentNode, currentNode.parent, 1 );
+
+ removeTailWhitespace( root );
+
+ return root;
+ };
+
+ CKEDITOR.htmlParser.fragment.prototype = {
+
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_DOCUMENT_FRAGMENT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_DOCUMENT_FRAGMENT]
+ */
+ type: CKEDITOR.NODE_DOCUMENT_FRAGMENT,
+
+ /**
+ * Adds a node to this fragment.
+ *
+ * @param {CKEDITOR.htmlParser.element/CKEDITOR.htmlParser.text/CKEDITOR.htmlParser.comment} node
+ * The node to be added.
+ * @param {Number} [index] From where the insertion happens.
+ */
+ add: function( node, index ) {
+ isNaN( index ) && ( index = this.children.length );
+
+ var previous = index > 0 ? this.children[ index - 1 ] : null;
+ if ( previous ) {
+ // If the block to be appended is following text, trim spaces at
+ // the right of it.
+ if ( node._.isBlockLike && previous.type == CKEDITOR.NODE_TEXT ) {
+ previous.value = CKEDITOR.tools.rtrim( previous.value );
+
+ // If we have completely cleared the previous node.
+ if ( previous.value.length === 0 ) {
+ // Remove it from the list and add the node again.
+ this.children.pop();
+ this.add( node );
+ return;
+ }
+ }
+
+ previous.next = node;
+ }
+
+ node.previous = previous;
+ node.parent = this;
+
+ this.children.splice( index, 0, node );
+
+ if ( !this._.hasInlineStarted )
+ this._.hasInlineStarted = node.type == CKEDITOR.NODE_TEXT || ( node.type == CKEDITOR.NODE_ELEMENT && !node._.isBlockLike );
+ },
+
+ /**
+ * Writes the fragment HTML to a {@link CKEDITOR.htmlParser.basicWriter}.
+ *
+ * var writer = new CKEDITOR.htmlWriter();
+ * var fragment = CKEDITOR.htmlParser.fragment.fromHtml( '<P><B>Example' );
+ * fragment.writeHtml( writer );
+ * alert( writer.getHtml() ); // '<p><b>Example</b></p>'
+ *
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ */
+ writeHtml: function( writer, filter ) {
+ var isChildrenFiltered;
+ this.filterChildren = function() {
+ var writer = new CKEDITOR.htmlParser.basicWriter();
+ this.writeChildrenHtml.call( this, writer, filter );
+ var html = writer.getHtml();
+ this.children = new CKEDITOR.htmlParser.fragment.fromHtml( html ).children;
+ isChildrenFiltered = 1;
+ };
+
+ // Apply the root filter.
+ filter && filter.onRoot( this );
+
+ this.writeChildrenHtml( writer, isChildrenFiltered ? null : filter );
+ },
+
+ /**
+ * Write and filtering the child nodes of this fragment.
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ * @param {CKEDITOR.htmlParser.filter} filter The filter to use when writing the HTML.
+ * @param {Boolean} [filterRoot] Whether to apply the "root" filter rule specified in the `filter`.
+ */
+ writeChildrenHtml: function( writer, filter, filterRoot ) {
+
+ // Filtering root if enforced.
+ if ( filterRoot && !this.parent && filter )
+ filter.onRoot( this );
+
+ for ( var i = 0; i < this.children.length; i++ )
+ this.children[ i ].writeHtml( writer, filter );
+ }
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/htmlparser/text.js b/devel/third-party/ckeditor/core/htmlparser/text.js
index 0d63ac9..e24aef8 100644
--- a/devel/third-party/ckeditor/core/htmlparser/text.js
+++ b/devel/third-party/ckeditor/core/htmlparser/text.js
@@ -1,55 +1,52 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var spacesRegex = /[\t\r\n ]{2,}|[\t\r\n]/g;
-
- /**
- * A lightweight representation of HTML text.
- * @constructor
- * @example
- */
- CKEDITOR.htmlParser.text = function( value )
- {
- /**
- * The text value.
- * @type String
- * @example
- */
- this.value = value;
-
- /** @private */
- this._ =
- {
- isBlockLike : false
- };
- };
-
- CKEDITOR.htmlParser.text.prototype =
- {
- /**
- * The node type. This is a constant value set to {@link CKEDITOR.NODE_TEXT}.
- * @type Number
- * @example
- */
- type : CKEDITOR.NODE_TEXT,
-
- /**
- * Writes the HTML representation of this text to a CKEDITOR.htmlWriter.
- * @param {CKEDITOR.htmlWriter} writer The writer to which write the HTML.
- * @example
- */
- writeHtml : function( writer, filter )
- {
- var text = this.value;
-
- if ( filter && !( text = filter.onText( text, this ) ) )
- return;
-
- writer.text( text );
- }
- };
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ /**
+ * A lightweight representation of HTML text.
+ *
+ * @class
+ * @constructor Creates a text class instance.
+ * @param {String} value The text node value.
+ */
+ CKEDITOR.htmlParser.text = function( value ) {
+ /**
+ * The text value.
+ *
+ * @property {String}
+ */
+ this.value = value;
+
+ /** @private */
+ this._ = {
+ isBlockLike: false
+ };
+ };
+
+ CKEDITOR.htmlParser.text.prototype = {
+ /**
+ * The node type. This is a constant value set to {@link CKEDITOR#NODE_TEXT}.
+ *
+ * @readonly
+ * @property {Number} [=CKEDITOR.NODE_TEXT]
+ */
+ type: CKEDITOR.NODE_TEXT,
+
+ /**
+ * Writes the HTML representation of this text to a {CKEDITOR.htmlParser.basicWriter}.
+ *
+ * @param {CKEDITOR.htmlParser.basicWriter} writer The writer to which write the HTML.
+ * @param {CKEDITOR.htmlParser.filter} filter
+ */
+ writeHtml: function( writer, filter ) {
+ var text = this.value;
+
+ if ( filter && !( text = filter.onText( text, this ) ) )
+ return;
+
+ writer.text( text );
+ }
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/imagecacher.js b/devel/third-party/ckeditor/core/imagecacher.js
deleted file mode 100644
index 0704556..0000000
--- a/devel/third-party/ckeditor/core/imagecacher.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var loaded = {};
-
- var loadImage = function( image, callback )
- {
- var doCallback = function()
- {
- img.removeAllListeners();
- loaded[ image ] = 1;
- callback();
- };
-
- var img = new CKEDITOR.dom.element( 'img' );
- img.on( 'load', doCallback );
- img.on( 'error', doCallback );
- img.setAttribute( 'src', image );
- };
-
- /**
- * Load images into the browser cache.
- * @namespace
- * @example
- */
- CKEDITOR.imageCacher =
- {
- /**
- * Loads one or more images.
- * @param {Array} images The URLs for the images to be loaded.
- * @param {Function} callback The function to be called once all images
- * are loaded.
- */
- load : function( images, callback )
- {
- var pendingCount = images.length;
-
- var checkPending = function()
- {
- if ( --pendingCount === 0 )
- callback();
- };
-
- for ( var i = 0 ; i < images.length ; i++ )
- {
- var image = images[ i ];
-
- if ( loaded[ image ] )
- checkPending();
- else
- loadImage( image, checkPending );
- }
- }
- };
-})();
diff --git a/devel/third-party/ckeditor/core/keystrokehandler.js b/devel/third-party/ckeditor/core/keystrokehandler.js
new file mode 100644
index 0000000..8a77691
--- /dev/null
+++ b/devel/third-party/ckeditor/core/keystrokehandler.js
@@ -0,0 +1,153 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Controls keystrokes typing in an editor instance.
+ *
+ * @class
+ * @constructor Creates a keystrokeHandler class instance.
+ * @param {CKEDITOR.editor} editor The editor instance.
+ */
+CKEDITOR.keystrokeHandler = function( editor ) {
+ if ( editor.keystrokeHandler )
+ return editor.keystrokeHandler;
+
+ /**
+ * List of keystrokes associated to commands. Each entry points to the
+ * command to be executed.
+ *
+ * Since CKEditor 4 there's no need to modify this property directly during the runtime.
+ * Use {@link CKEDITOR.editor#setKeystroke} instead.
+ */
+ this.keystrokes = {};
+
+ /**
+ * List of keystrokes that should be blocked if not defined at
+ * {@link #keystrokes}. In this way it is possible to block the default
+ * browser behavior for those keystrokes.
+ */
+ this.blockedKeystrokes = {};
+
+ this._ = {
+ editor: editor
+ };
+
+ return this;
+};
+
+(function() {
+ var cancel;
+
+ var onKeyDown = function( event ) {
+ // The DOM event object is passed by the "data" property.
+ event = event.data;
+
+ var keyCombination = event.getKeystroke();
+ var command = this.keystrokes[ keyCombination ];
+ var editor = this._.editor;
+
+ cancel = ( editor.fire( 'key', { keyCode: keyCombination } ) === false );
+
+ if ( !cancel ) {
+ if ( command ) {
+ var data = { from: 'keystrokeHandler' };
+ cancel = ( editor.execCommand( command, data ) !== false );
+ }
+
+ if ( !cancel )
+ cancel = !!this.blockedKeystrokes[ keyCombination ];
+ }
+
+ if ( cancel )
+ event.preventDefault( true );
+
+ return !cancel;
+ };
+
+ var onKeyPress = function( event ) {
+ if ( cancel ) {
+ cancel = false;
+ event.data.preventDefault( true );
+ }
+ };
+
+ CKEDITOR.keystrokeHandler.prototype = {
+ /**
+ * Attaches this keystroke handle to a DOM object. Keystrokes typed
+ * over this object will get handled by this keystrokeHandler.
+ *
+ * @param {CKEDITOR.dom.domObject} domObject The DOM object to attach to.
+ */
+ attach: function( domObject ) {
+ // For most browsers, it is enough to listen to the keydown event
+ // only.
+ domObject.on( 'keydown', onKeyDown, this );
+
+ // Some browsers instead, don't cancel key events in the keydown, but in the
+ // keypress. So we must do a longer trip in those cases.
+ if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
+ domObject.on( 'keypress', onKeyPress, this );
+ }
+ };
+})();
+
+/**
+ * A list associating keystrokes to editor commands. Each element in the list
+ * is an array where the first item is the keystroke, and the second is the
+ * name of the command to be executed.
+ *
+ * This setting should be used to define (as well as to overwrite or remove) keystrokes
+ * set by plugins (like `link` and `basicstyles`). If you want to set a keystroke
+ * for your plugin or during the runtime, use {@link CKEDITOR.editor#setKeystroke} instead.
+ *
+ * Since default keystrokes are set by {@link CKEDITOR.editor#setKeystroke}
+ * method, by default `config.keystrokes` is an empty array.
+ *
+ * See {@link CKEDITOR.editor#setKeystroke} documentation for more details
+ * regarding the start up order.
+ *
+ * // Change default CTRL + L keystroke for 'link' command to CTRL + SHIFT + L.
+ * config.keystrokes = [
+ * ...
+ * [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 76, 'link' ], // CTRL + SHIFT + L
+ * ...
+ * ];
+ *
+ * To reset a particular keystroke, the following approach can be used:
+ *
+ * // Disable default CTRL + L keystroke which executes link command by default.
+ * config.keystrokes = [
+ * ...
+ * [ CKEDITOR.CTRL + 76, null ], // CTRL + L
+ * ...
+ * ];
+ *
+ * To reset all default keystrokes an {@link CKEDITOR#instanceReady} callback should be
+ * used. This is since editor defaults are merged rather than overwritten by
+ * user keystrokes.
+ *
+ * **Note**: This can be potentially harmful for an editor. Avoid this unless you're
+ * aware of the consequences.
+ *
+ * // Reset all default keystrokes.
+ * config.on.instanceReady = function() {
+ * this.keystrokeHandler.keystrokes = [];
+ * };
+ *
+ * @cfg {Array} [keystrokes=[]]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Fired when any keyboard key (or combination) is pressed into the editing area.
+ *
+ * @event key
+ * @member CKEDITOR.editor
+ * @param data
+ * @param {Number} data.keyCode A number representing the key code (or combination).
+ * It is the sum of the current key code and the {@link CKEDITOR#CTRL}, {@link CKEDITOR#SHIFT}
+ * and {@link CKEDITOR#ALT} constants, if those are pressed.
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
diff --git a/devel/third-party/ckeditor/core/lang.js b/devel/third-party/ckeditor/core/lang.js
index add9982..044000c 100644
--- a/devel/third-party/ckeditor/core/lang.js
+++ b/devel/third-party/ckeditor/core/lang.js
@@ -1,152 +1,89 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var loadedLangs = {};
-
- CKEDITOR.lang =
- {
- /**
- * The list of languages available in the editor core.
- * @type Object
- * @example
- * alert( CKEDITOR.lang.en ); // "true"
- */
- languages :
- {
- 'af' : 1,
- 'ar' : 1,
- 'bg' : 1,
- 'bn' : 1,
- 'bs' : 1,
- 'ca' : 1,
- 'cs' : 1,
- 'cy' : 1,
- 'da' : 1,
- 'de' : 1,
- 'el' : 1,
- 'en-au' : 1,
- 'en-ca' : 1,
- 'en-gb' : 1,
- 'en' : 1,
- 'eo' : 1,
- 'es' : 1,
- 'et' : 1,
- 'eu' : 1,
- 'fa' : 1,
- 'fi' : 1,
- 'fo' : 1,
- 'fr-ca' : 1,
- 'fr' : 1,
- 'gl' : 1,
- 'gu' : 1,
- 'he' : 1,
- 'hi' : 1,
- 'hr' : 1,
- 'hu' : 1,
- 'is' : 1,
- 'it' : 1,
- 'ja' : 1,
- 'km' : 1,
- 'ko' : 1,
- 'lt' : 1,
- 'lv' : 1,
- 'mn' : 1,
- 'ms' : 1,
- 'nb' : 1,
- 'nl' : 1,
- 'no' : 1,
- 'pl' : 1,
- 'pt-br' : 1,
- 'pt' : 1,
- 'ro' : 1,
- 'ru' : 1,
- 'sk' : 1,
- 'sl' : 1,
- 'sr-latn' : 1,
- 'sr' : 1,
- 'sv' : 1,
- 'th' : 1,
- 'tr' : 1,
- 'uk' : 1,
- 'vi' : 1,
- 'zh-cn' : 1,
- 'zh' : 1
- },
-
- /**
- * Loads a specific language file, or auto detect it. A callback is
- * then called when the file gets loaded.
- * @param {String} languageCode The code of the language file to be
- * loaded. If "autoDetect" is set to true, this language will be
- * used as the default one, if the detect language is not
- * available in the core.
- * @param {Boolean} autoDetect Indicates that the function must try to
- * detect the user language and load it instead.
- * @param {Function} callback The function to be called once the
- * language file is loaded. Two parameters are passed to this
- * function: the language code and the loaded language entries.
- * @example
- */
- load : function( languageCode, defaultLanguage, callback )
- {
- // If no languageCode - fallback to browser or default.
- // If languageCode - fallback to no-localized version or default.
- if ( !languageCode || !CKEDITOR.lang.languages[ languageCode ] )
- languageCode = this.detect( defaultLanguage, languageCode );
-
- if ( !this[ languageCode ] )
- {
- CKEDITOR.scriptLoader.load( CKEDITOR.getUrl(
- '_source/' + // @Packager.RemoveLine
- 'lang/' + languageCode + '.js' ),
- function()
- {
- callback( languageCode, this[ languageCode ] );
- }
- , this );
- }
- else
- callback( languageCode, this[ languageCode ] );
- },
-
- /**
- * Returns the language that best fit the user language. For example,
- * suppose that the user language is "pt-br". If this language is
- * supported by the editor, it is returned. Otherwise, if only "pt" is
- * supported, it is returned instead. If none of the previous are
- * supported, a default language is then returned.
- * @param {String} defaultLanguage The default language to be returned
- * if the user language is not supported.
- * @returns {String} The detected language code.
- * @example
- * alert( CKEDITOR.lang.detect( 'en' ) ); // e.g., in a German browser: "de"
- */
- detect : function( defaultLanguage, probeLanguage )
- {
- var languages = this.languages;
- probeLanguage = probeLanguage || navigator.userLanguage || navigator.language;
-
- var parts = probeLanguage
- .toLowerCase()
- .match( /([a-z]+)(?:-([a-z]+))?/ ),
- lang = parts[1],
- locale = parts[2];
-
- if ( languages[ lang + '-' + locale ] )
- lang = lang + '-' + locale;
- else if ( !languages[ lang ] )
- lang = null;
-
- CKEDITOR.lang.detect = lang ?
- function() { return lang; } :
- function( defaultLanguage ) { return defaultLanguage; };
-
- return lang || defaultLanguage;
- }
- };
-
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var loadedLangs = {};
+
+ /**
+ * Holds language related functions.
+ *
+ * @class
+ * @singleton
+ */
+ CKEDITOR.lang = {
+ /**
+ * The list of languages available in the editor core.
+ *
+ * alert( CKEDITOR.lang.en ); // 1
+ */
+ languages: { 'af':1,'ar':1,'bg':1,'bn':1,'bs':1,'ca':1,'cs':1,'cy':1,'da':1,'de':1,'el':1,'en-au':1,'en-ca':1,'en-gb':1,'en':1,'eo':1,'es':1,'et':1,'eu':1,'fa':1,'fi':1,'fo':1,'fr-ca':1,'fr':1,'gl':1,'gu':1,'he':1,'hi':1,'hr':1,'hu':1,'is':1,'it':1,'ja':1,'ka':1,'km':1,'ko':1,'ku':1,'lt':1,'lv':1,'mn':1,'ms':1,'nb':1,'nl':1,'no':1,'pl':1,'pt-br':1,'pt':1,'ro':1,'ru':1,'sk':1,'sl':1,'sr-latn':1,'sr':1,'sv':1,'th':1,'tr':1,'uk':1,'vi':1,'zh-cn':1,'zh':1 },
+
+ /**
+ * Loads a specific language file, or auto detect it. A callback is
+ * then called when the file gets loaded.
+ *
+ * @param {String} languageCode The code of the language file to be
+ * loaded. If null or empty, autodetection will be performed. The
+ * same happens if the language is not supported.
+ * @param {String} defaultLanguage The language to be used if
+ * languageCode is not supported or if the autodetection fails.
+ * @param {Function} callback A function to be called once the
+ * language file is loaded. Two parameters are passed to this
+ * function: the language code and the loaded language entries.
+ */
+ load: function( languageCode, defaultLanguage, callback ) {
+ // If no languageCode - fallback to browser or default.
+ // If languageCode - fallback to no-localized version or default.
+ if ( !languageCode || !CKEDITOR.lang.languages[ languageCode ] )
+ languageCode = this.detect( defaultLanguage, languageCode );
+
+ if ( !this[ languageCode ] ) {
+ CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( 'lang/' + languageCode + '.js' ), function() {
+ callback( languageCode, this[ languageCode ] );
+ }, this );
+ } else
+ callback( languageCode, this[ languageCode ] );
+ },
+
+ /**
+ * Returns the language that best fit the user language. For example,
+ * suppose that the user language is "pt-br". If this language is
+ * supported by the editor, it is returned. Otherwise, if only "pt" is
+ * supported, it is returned instead. If none of the previous are
+ * supported, a default language is then returned.
+ *
+ * alert( CKEDITOR.lang.detect( 'en' ) ); // e.g., in a German browser: 'de'
+ *
+ * @param {String} defaultLanguage The default language to be returned
+ * if the user language is not supported.
+ * @param {String} [probeLanguage] A language code to try to use,
+ * instead of the browser based autodetection.
+ * @returns {String} The detected language code.
+ */
+ detect: function( defaultLanguage, probeLanguage ) {
+ var languages = this.languages;
+ probeLanguage = probeLanguage || navigator.userLanguage || navigator.language || defaultLanguage;
+
+ var parts = probeLanguage.toLowerCase().match( /([a-z]+)(?:-([a-z]+))?/ ),
+ lang = parts[ 1 ],
+ locale = parts[ 2 ];
+
+ if ( languages[ lang + '-' + locale ] )
+ lang = lang + '-' + locale;
+ else if ( !languages[ lang ] )
+ lang = null;
+
+ CKEDITOR.lang.detect = lang ?
+ function() {
+ return lang;
+ } : function( defaultLanguage ) {
+ return defaultLanguage;
+ };
+
+ return lang || defaultLanguage;
+ }
+ };
+
+})();
diff --git a/devel/third-party/ckeditor/core/loader.js b/devel/third-party/ckeditor/core/loader.js
index abeda48..be3b1e8 100644
--- a/devel/third-party/ckeditor/core/loader.js
+++ b/devel/third-party/ckeditor/core/loader.js
@@ -1,243 +1,244 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.loader} objects, which is used to
- * load core scripts and their dependencies from _source.
- */
-
-if ( typeof CKEDITOR == 'undefined' )
- CKEDITOR = {};
-
-if ( !CKEDITOR.loader )
-{
- /**
- * Load core scripts and their dependencies from _source.
- * @namespace
- * @example
- */
- CKEDITOR.loader = (function()
- {
- // Table of script names and their dependencies.
- var scripts =
- {
- 'core/_bootstrap' : [ 'core/config', 'core/ckeditor', 'core/plugins', 'core/scriptloader', 'core/tools', /* The following are entries that we want to force loading at the end to avoid dependence recursion */ 'core/dom/comment', 'core/dom/elementpath', 'core/dom/text', 'core/dom/rangelist' ],
- 'core/ajax' : [ 'core/xml' ],
- 'core/ckeditor' : [ 'core/ckeditor_basic', 'core/dom', 'core/dtd', 'core/dom/document', 'core/dom/element', 'core/editor', 'core/event', 'core/htmlparser', 'core/htmlparser/element', 'core/htmlparser/fragment', 'core/htmlparser/filter', 'core/htmlparser/basicwriter', 'core/tools' ],
- 'core/ckeditor_base' : [],
- 'core/ckeditor_basic' : [ 'core/editor_basic', 'core/env', 'core/event' ],
- 'core/command' : [],
- 'core/config' : [ 'core/ckeditor_base' ],
- 'core/dom' : [],
- 'core/dom/comment' : [ 'core/dom/node' ],
- 'core/dom/document' : [ 'core/dom', 'core/dom/domobject', 'core/dom/window' ],
- 'core/dom/documentfragment' : [ 'core/dom/element' ],
- 'core/dom/element' : [ 'core/dom', 'core/dom/document', 'core/dom/domobject', 'core/dom/node', 'core/dom/nodelist', 'core/tools' ],
- 'core/dom/elementpath' : [ 'core/dom/element' ],
- 'core/dom/event' : [],
- 'core/dom/node' : [ 'core/dom/domobject', 'core/tools' ],
- 'core/dom/nodelist' : [ 'core/dom/node' ],
- 'core/dom/domobject' : [ 'core/dom/event' ],
- 'core/dom/range' : [ 'core/dom/document', 'core/dom/documentfragment', 'core/dom/element', 'core/dom/walker' ],
- 'core/dom/rangelist' : [ 'core/dom/range' ],
- 'core/dom/text' : [ 'core/dom/node', 'core/dom/domobject' ],
- 'core/dom/walker' : [ 'core/dom/node' ],
- 'core/dom/window' : [ 'core/dom/domobject' ],
- 'core/dtd' : [ 'core/tools' ],
- 'core/editor' : [ 'core/command', 'core/config', 'core/editor_basic', 'core/focusmanager', 'core/lang', 'core/plugins', 'core/skins', 'core/themes', 'core/tools', 'core/ui' ],
- 'core/editor_basic' : [ 'core/event' ],
- 'core/env' : [],
- 'core/event' : [],
- 'core/focusmanager' : [],
- 'core/htmlparser' : [],
- 'core/htmlparser/comment' : [ 'core/htmlparser' ],
- 'core/htmlparser/element' : [ 'core/htmlparser', 'core/htmlparser/fragment' ],
- 'core/htmlparser/fragment' : [ 'core/htmlparser', 'core/htmlparser/comment', 'core/htmlparser/text', 'core/htmlparser/cdata' ],
- 'core/htmlparser/text' : [ 'core/htmlparser' ],
- 'core/htmlparser/cdata' : [ 'core/htmlparser' ],
- 'core/htmlparser/filter' : [ 'core/htmlparser' ],
- 'core/htmlparser/basicwriter': [ 'core/htmlparser' ],
- 'core/imagecacher' : [ 'core/dom/element' ],
- 'core/lang' : [],
- 'core/plugins' : [ 'core/resourcemanager' ],
- 'core/resourcemanager' : [ 'core/scriptloader', 'core/tools' ],
- 'core/scriptloader' : [ 'core/dom/element', 'core/env' ],
- 'core/skins' : [ 'core/imagecacher', 'core/scriptloader' ],
- 'core/themes' : [ 'core/resourcemanager' ],
- 'core/tools' : [ 'core/env' ],
- 'core/ui' : [],
- 'core/xml' : [ 'core/env' ]
- };
-
- var basePath = (function()
- {
- // This is a copy of CKEDITOR.basePath, but requires the script having
- // "_source/core/loader.js".
- if ( CKEDITOR && CKEDITOR.basePath )
- return CKEDITOR.basePath;
-
- // Find out the editor directory path, based on its <script> tag.
- var path = '';
- var scripts = document.getElementsByTagName( 'script' );
-
- for ( var i = 0 ; i < scripts.length ; i++ )
- {
- var match = scripts[i].src.match( /(^|.*?[\\\/])(?:_source\/)?core\/loader.js(?:\?.*)?$/i );
-
- if ( match )
- {
- path = match[1];
- break;
- }
- }
-
- // In IE (only) the script.src string is the raw valued entered in the
- // HTML. Other browsers return the full resolved URL instead.
- if ( path.indexOf('://') == -1 )
- {
- // Absolute path.
- if ( path.indexOf( '/' ) === 0 )
- path = location.href.match( /^.*?:\/\/[^\/]*/ )[0] + path;
- // Relative path.
- else
- path = location.href.match( /^[^\?]*\// )[0] + path;
- }
-
- return path;
- })();
-
- var timestamp = 'A8LE4JO';
-
- var getUrl = function( resource )
- {
- if ( CKEDITOR && CKEDITOR.getUrl )
- return CKEDITOR.getUrl( resource );
-
- return basePath + resource +
- ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) +
- 't=' + timestamp;
- };
-
- var pendingLoad = [];
-
- /** @lends CKEDITOR.loader */
- return {
- /**
- * The list of loaded scripts in their loading order.
- * @type Array
- * @example
- * // Alert the loaded script names.
- * alert( <b>CKEDITOR.loader.loadedScripts</b> );
- */
- loadedScripts : [],
-
- loadPending : function()
- {
- var scriptName = pendingLoad.shift();
-
- if ( !scriptName )
- return;
-
- var scriptSrc = getUrl( '_source/' + scriptName + '.js' );
-
- var script = document.createElement( 'script' );
- script.type = 'text/javascript';
- script.src = scriptSrc;
-
- function onScriptLoaded()
- {
- // Append this script to the list of loaded scripts.
- CKEDITOR.loader.loadedScripts.push( scriptName );
-
- // Load the next.
- CKEDITOR.loader.loadPending();
- }
-
- // We must guarantee the execution order of the scripts, so we
- // need to load them one by one. (#4145)
- // The following if/else block has been taken from the scriptloader core code.
- if ( typeof(script.onreadystatechange) !== "undefined" )
- {
- /** @ignore */
- script.onreadystatechange = function()
- {
- if ( script.readyState == 'loaded' || script.readyState == 'complete' )
- {
- script.onreadystatechange = null;
- onScriptLoaded();
- }
- };
- }
- else
- {
- /** @ignore */
- script.onload = function()
- {
- // Some browsers, such as Safari, may call the onLoad function
- // immediately. Which will break the loading sequence. (#3661)
- setTimeout( function() { onScriptLoaded( scriptName ); }, 0 );
- };
- }
-
- document.body.appendChild( script );
- },
-
- /**
- * Loads a specific script, including its dependencies. This is not a
- * synchronous loading, which means that the code to be loaded will
- * not necessarily be available after this call.
- * @example
- * CKEDITOR.loader.load( 'core/dom/element' );
- */
- load : function( scriptName, defer )
- {
- // Check if the script has already been loaded.
- if ( scriptName in this.loadedScripts )
- return;
-
- // Get the script dependencies list.
- var dependencies = scripts[ scriptName ];
- if ( !dependencies )
- throw 'The script name"' + scriptName + '" is not defined.';
-
- // Mark the script as loaded, even before really loading it, to
- // avoid cross references recursion.
- this.loadedScripts[ scriptName ] = true;
-
- // Load all dependencies first.
- for ( var i = 0 ; i < dependencies.length ; i++ )
- this.load( dependencies[ i ], true );
-
- var scriptSrc = getUrl( '_source/' + scriptName + '.js' );
-
- // Append the <script> element to the DOM.
- // If the page is fully loaded, we can't use document.write
- // but if the script is run while the body is loading then it's safe to use it
- // Unfortunately, Firefox <3.6 doesn't support document.readyState, so it won't get this improvement
- if ( document.body && (!document.readyState || document.readyState == 'complete') )
- {
- pendingLoad.push( scriptName );
-
- if ( !defer )
- this.loadPending();
- }
- else
- {
- // Append this script to the list of loaded scripts.
- this.loadedScripts.push( scriptName );
-
- document.write( '<script src="' + scriptSrc + '" type="text/javascript"><\/script>' );
- }
- }
- };
- })();
-}
-
-// Check if any script has been defined for autoload.
-if ( CKEDITOR._autoLoad )
-{
- CKEDITOR.loader.load( CKEDITOR._autoLoad );
- delete CKEDITOR._autoLoad;
-}
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.loader} objects, which is used to
+ * load core scripts and their dependencies from _source.
+ */
+
+if ( typeof CKEDITOR == 'undefined' )
+ CKEDITOR = {};
+
+if ( !CKEDITOR.loader ) {
+ /**
+ * Load core scripts and their dependencies from _source.
+ *
+ * @class
+ * @singleton
+ */
+ CKEDITOR.loader = (function() {
+ // Table of script names and their dependencies.
+ var scripts = {
+ '_bootstrap': [ 'config', 'creators/inline', 'creators/themedui', 'editable', 'ckeditor', 'plugins', 'scriptloader', 'style', 'tools', /* The following are entries that we want to force loading at the end to avoid dependence recursion */ 'dom/comment', 'dom/elementpath', 'dom/text', 'dom/rangelist', 'skin' ],
+ 'ckeditor': [ 'ckeditor_basic', 'dom', 'dtd', 'dom/document', 'dom/element', 'dom/iterator', 'editor', 'event', 'htmldataprocessor', 'htmlparser', 'htmlparser/element', 'htmlparser/fragment', 'htmlparser/filter', 'htmlparser/basicwriter', 'template', 'tools' ],
+ 'ckeditor_base': [],
+ 'ckeditor_basic': [ 'editor_basic', 'env', 'event' ],
+ 'command': [],
+ 'config': [ 'ckeditor_base' ],
+ 'dom': [],
+ 'dom/comment': [ 'dom/node' ],
+ 'dom/document': [ 'dom/node', 'dom/window' ],
+ 'dom/documentfragment': [ 'dom/element' ],
+ 'dom/element': [ 'dom', 'dom/document', 'dom/domobject', 'dom/node', 'dom/nodelist', 'tools' ],
+ 'dom/elementpath': [ 'dom/element' ],
+ 'dom/event': [],
+ 'dom/iterator': [ 'dom/range' ],
+ 'dom/node': [ 'dom/domobject', 'tools' ],
+ 'dom/nodelist': [ 'dom/node' ],
+ 'dom/domobject': [ 'dom/event' ],
+ 'dom/range': [ 'dom/document', 'dom/documentfragment', 'dom/element', 'dom/walker' ],
+ 'dom/rangelist': [ 'dom/range' ],
+ 'dom/text': [ 'dom/node', 'dom/domobject' ],
+ 'dom/walker': [ 'dom/node' ],
+ 'dom/window': [ 'dom/domobject' ],
+ 'dtd': [ 'tools' ],
+ 'editable': [ 'editor', 'tools' ],
+ 'editor': [ 'command', 'config', 'editor_basic', 'focusmanager', 'keystrokehandler', 'lang', 'plugins', 'tools', 'ui' ],
+ 'editor_basic': [ 'event' ],
+ 'env': [],
+ 'event': [],
+ 'focusmanager': [],
+ 'htmldataprocessor': [ 'htmlparser', 'htmlparser/basicwriter', 'htmlparser/fragment', 'htmlparser/filter' ],
+ 'htmlparser': [],
+ 'htmlparser/comment': [ 'htmlparser' ],
+ 'htmlparser/element': [ 'htmlparser', 'htmlparser/fragment' ],
+ 'htmlparser/fragment': [ 'htmlparser', 'htmlparser/comment', 'htmlparser/text', 'htmlparser/cdata' ],
+ 'htmlparser/text': [ 'htmlparser' ],
+ 'htmlparser/cdata': [ 'htmlparser' ],
+ 'htmlparser/filter': [ 'htmlparser' ],
+ 'htmlparser/basicwriter': [ 'htmlparser' ],
+ 'keystrokehandler': [ 'event' ],
+ 'lang': [],
+ 'plugins': [ 'resourcemanager' ],
+ 'resourcemanager': [ 'scriptloader', 'tools' ],
+ 'scriptloader': [ 'dom/element', 'env' ],
+ 'selection': [ 'dom/range', 'dom/walker' ],
+ 'skin': [],
+ 'style': [ 'selection' ],
+ 'template': [],
+ 'tools': [ 'env' ],
+ 'ui': [],
+ 'creators/themedui': [],
+ 'creators/inline': []
+ };
+
+ var basePath = (function() {
+ // This is a copy of CKEDITOR.basePath, but requires the script having
+ // "_source/loader.js".
+ if ( CKEDITOR && CKEDITOR.basePath )
+ return CKEDITOR.basePath;
+
+ // Find out the editor directory path, based on its <script> tag.
+ var path = '';
+ var scripts = document.getElementsByTagName( 'script' );
+
+ for ( var i = 0; i < scripts.length; i++ ) {
+ var match = scripts[ i ].src.match( /(^|.*?[\\\/])(?:_source\/)?core\/loader.js(?:\?.*)?$/i );
+
+ if ( match ) {
+ path = match[ 1 ];
+ break;
+ }
+ }
+
+ // In IE (only) the script.src string is the raw valued entered in the
+ // HTML. Other browsers return the full resolved URL instead.
+ if ( path.indexOf( '://' ) == -1 ) {
+ // Absolute path.
+ if ( path.indexOf( '/' ) === 0 )
+ path = location.href.match( /^.*?:\/\/[^\/]*/ )[ 0 ] + path;
+ // Relative path.
+ else
+ path = location.href.match( /^[^\?]*\// )[ 0 ] + path;
+ }
+
+ return path;
+ })();
+
+ var timestamp = ( CKEDITOR && CKEDITOR.timestamp ) || ( new Date() ).valueOf(); // %REMOVE_LINE%
+ /* // %REMOVE_LINE%
+ * The production implementation contains a fixed timestamp // %REMOVE_LINE%
+ * generated by the releaser // %REMOVE_LINE%
+ var timestamp = '%TIMESTAMP%';
+ */ // %REMOVE_LINE%
+
+ var getUrl = function( resource ) {
+ if ( CKEDITOR && CKEDITOR.getUrl )
+ return CKEDITOR.getUrl( resource );
+
+ return basePath + resource + ( resource.indexOf( '?' ) >= 0 ? '&' : '?' ) + 't=' + timestamp;
+ };
+
+ var pendingLoad = [];
+
+ return {
+ /**
+ * The list of loaded scripts in their loading order.
+ *
+ * // Alert the loaded script names.
+ * alert( CKEDITOR.loader.loadedScripts );
+ */
+ loadedScripts: [],
+ /**
+ * Table of script names and their dependencies.
+ *
+ * @property {Array}
+ */
+ scripts: scripts,
+
+ /**
+ * @todo
+ */
+ loadPending: function() {
+ var scriptName = pendingLoad.shift();
+
+ if ( !scriptName )
+ return;
+
+ var scriptSrc = getUrl( 'core/' + scriptName + '.js' );
+
+ var script = document.createElement( 'script' );
+ script.type = 'text/javascript';
+ script.src = scriptSrc;
+
+ function onScriptLoaded() {
+ // Append this script to the list of loaded scripts.
+ CKEDITOR.loader.loadedScripts.push( scriptName );
+
+ // Load the next.
+ CKEDITOR.loader.loadPending();
+ }
+
+ // We must guarantee the execution order of the scripts, so we
+ // need to load them one by one. (#4145)
+ // The following if/else block has been taken from the scriptloader core code.
+ if ( typeof( script.onreadystatechange ) !== "undefined" ) {
+ /** @ignore */
+ script.onreadystatechange = function() {
+ if ( script.readyState == 'loaded' || script.readyState == 'complete' ) {
+ script.onreadystatechange = null;
+ onScriptLoaded();
+ }
+ };
+ } else {
+ /** @ignore */
+ script.onload = function() {
+ // Some browsers, such as Safari, may call the onLoad function
+ // immediately. Which will break the loading sequence. (#3661)
+ setTimeout( function() {
+ onScriptLoaded( scriptName );
+ }, 0 );
+ };
+ }
+
+ document.body.appendChild( script );
+ },
+
+ /**
+ * Loads a specific script, including its dependencies. This is not a
+ * synchronous loading, which means that the code to be loaded will
+ * not necessarily be available after this call.
+ *
+ * CKEDITOR.loader.load( 'dom/element' );
+ *
+ * @param {String} scriptName
+ * @param {Boolean} [defer=false]
+ * @todo params
+ */
+ load: function( scriptName, defer ) {
+ // Check if the script has already been loaded.
+ if ( scriptName in this.loadedScripts )
+ return;
+
+ // Get the script dependencies list.
+ var dependencies = scripts[ scriptName ];
+ if ( !dependencies )
+ throw 'The script name"' + scriptName + '" is not defined.';
+
+ // Mark the script as loaded, even before really loading it, to
+ // avoid cross references recursion.
+ this.loadedScripts[ scriptName ] = true;
+
+ // Load all dependencies first.
+ for ( var i = 0; i < dependencies.length; i++ )
+ this.load( dependencies[ i ], true );
+
+ var scriptSrc = getUrl( 'core/' + scriptName + '.js' );
+
+ // Append the <script> element to the DOM.
+ // If the page is fully loaded, we can't use document.write
+ // but if the script is run while the body is loading then it's safe to use it
+ // Unfortunately, Firefox <3.6 doesn't support document.readyState, so it won't get this improvement
+ if ( document.body && ( !document.readyState || document.readyState == 'complete' ) ) {
+ pendingLoad.push( scriptName );
+
+ if ( !defer )
+ this.loadPending();
+ } else {
+ // Append this script to the list of loaded scripts.
+ this.loadedScripts.push( scriptName );
+
+ document.write( '<script src="' + scriptSrc + '" type="text/javascript"><\/script>' );
+ }
+ }
+ };
+ })();
+}
+
+// Check if any script has been defined for autoload.
+if ( CKEDITOR._autoLoad ) {
+ CKEDITOR.loader.load( CKEDITOR._autoLoad );
+ delete CKEDITOR._autoLoad;
+}
diff --git a/devel/third-party/ckeditor/core/plugindefinition.js b/devel/third-party/ckeditor/core/plugindefinition.js
index 2a78d28..b0e8944 100644
--- a/devel/third-party/ckeditor/core/plugindefinition.js
+++ b/devel/third-party/ckeditor/core/plugindefinition.js
@@ -1,66 +1,79 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the "virtual" {@link CKEDITOR.pluginDefinition} class, which
- * contains the defintion of a plugin. This file is for documentation
- * purposes only.
- */
-
-/**
- * (Virtual Class) Do not call this constructor. This class is not really part
- * of the API. It just illustrates the features of plugin objects to be
- * passed to the {@link CKEDITOR.plugins.add} function.
- * @name CKEDITOR.pluginDefinition
- * @constructor
- * @example
- */
-
-/**
- * A list of plugins that are required by this plugin. Note that this property
- * doesn't guarantee the loading order of the plugins.
- * @name CKEDITOR.pluginDefinition.prototype.requires
- * @type Array
- * @example
- * CKEDITOR.plugins.add( 'sample',
- * {
- * requires : [ 'button', 'selection' ]
- * });
- */
-
- /**
- * Function called on initialization of every editor instance created in the
- * page before the init() call task. The beforeInit function will be called for
- * all plugins, after that the init function is called for all of them. This
- * feature makes it possible to initialize things that could be used in the
- * init function of other plugins.
- * @name CKEDITOR.pluginDefinition.prototype.beforeInit
- * @function
- * @param {CKEDITOR.editor} editor The editor instance being initialized.
- * @example
- * CKEDITOR.plugins.add( 'sample',
- * {
- * beforeInit : function( editor )
- * {
- * alert( 'Editor "' + editor.name + '" is to be initialized!' );
- * }
- * });
- */
-
- /**
- * Function called on initialization of every editor instance created in the
- * page.
- * @name CKEDITOR.pluginDefinition.prototype.init
- * @function
- * @param {CKEDITOR.editor} editor The editor instance being initialized.
- * @example
- * CKEDITOR.plugins.add( 'sample',
- * {
- * init : function( editor )
- * {
- * alert( 'Editor "' + editor.name + '" is being initialized!' );
- * }
- * });
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.pluginDefinition} class, which
+ * contains the defintion of a plugin. This file is for documentation
+ * purposes only.
+ */
+
+/**
+ * Virtual class which just illustrates the features of plugin objects to be
+ * passed to the {@link CKEDITOR.plugins#add} method.
+ *
+ * This class is not really part of the API, so don't call its constructor.
+ *
+ * @class CKEDITOR.pluginDefinition
+ * @abstract
+ */
+
+/**
+ * A list of plugins that are required by this plugin. Note that this property
+ * doesn't guarantee the loading order of the plugins.
+ *
+ * CKEDITOR.plugins.add( 'sample', {
+ * requires: [ 'button', 'selection' ]
+ * } );
+ *
+ * @property {Array} requires
+ */
+
+/**
+ * A list of language files available for this plugin. These files are stored inside
+ * the `lang` directory, which is inside the plugin directory, follow the name
+ * pattern of `langCode.js`, and contain a language definition created with
+ * {@link CKEDITOR.plugins#setLang}.
+ *
+ * While the plugin is being loaded, the editor checks this list to see if
+ * a language file of the current editor language ({@link CKEDITOR.editor#langCode})
+ * is available, and if so, loads it. Otherwise, the file represented by the first list item
+ * in the list is loaded.
+ *
+ * CKEDITOR.plugins.add( 'sample', {
+ * lang: [ 'en', 'fr' ]
+ * } );
+ *
+ * @property {Array} lang
+ */
+
+/**
+ * Function called on initialization of every editor instance created in the
+ * page before the `init()` call task. The beforeInit function will be called for
+ * all plugins, after that the init function is called for all of them. This
+ * feature makes it possible to initialize things that could be used in the
+ * init function of other plugins.
+ *
+ * CKEDITOR.plugins.add( 'sample', {
+ * beforeInit: function( editor ) {
+ * alert( 'Editor "' + editor.name + '" is to be initialized!' );
+ * }
+ * } );
+ *
+ * @method beforeInit
+ * @param {CKEDITOR.editor} editor The editor instance being initialized.
+ */
+
+/**
+ * Function called on initialization of every editor instance created in the page.
+ *
+ * CKEDITOR.plugins.add( 'sample', {
+ * init: function( editor ) {
+ * alert( 'Editor "' + editor.name + '" is being initialized!' );
+ * }
+ * } );
+ *
+ * @method init
+ * @param {CKEDITOR.editor} editor The editor instance being initialized.
+ */
diff --git a/devel/third-party/ckeditor/core/plugins.js b/devel/third-party/ckeditor/core/plugins.js
index 77f04a4..9393cab 100644
--- a/devel/third-party/ckeditor/core/plugins.js
+++ b/devel/third-party/ckeditor/core/plugins.js
@@ -1,85 +1,114 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.plugins} object, which is used to
- * manage plugins registration and loading.
- */
-
-/**
- * Manages plugins registration and loading.
- * @namespace
- * @augments CKEDITOR.resourceManager
- * @example
- */
-CKEDITOR.plugins = new CKEDITOR.resourceManager(
- '_source/' + // @Packager.RemoveLine
- 'plugins/', 'plugin' );
-
-// PACKAGER_RENAME( CKEDITOR.plugins )
-
-CKEDITOR.plugins.load = CKEDITOR.tools.override( CKEDITOR.plugins.load, function( originalLoad )
- {
- return function( name, callback, scope )
- {
- var allPlugins = {};
-
- var loadPlugins = function( names )
- {
- originalLoad.call( this, names, function( plugins )
- {
- CKEDITOR.tools.extend( allPlugins, plugins );
-
- var requiredPlugins = [];
- for ( var pluginName in plugins )
- {
- var plugin = plugins[ pluginName ],
- requires = plugin && plugin.requires;
-
- if ( requires )
- {
- for ( var i = 0 ; i < requires.length ; i++ )
- {
- if ( !allPlugins[ requires[ i ] ] )
- requiredPlugins.push( requires[ i ] );
- }
- }
- }
-
- if ( requiredPlugins.length )
- loadPlugins.call( this, requiredPlugins );
- else
- {
- // Call the "onLoad" function for all plugins.
- for ( pluginName in allPlugins )
- {
- plugin = allPlugins[ pluginName ];
- if ( plugin.onLoad && !plugin.onLoad._called )
- {
- plugin.onLoad();
- plugin.onLoad._called = 1;
- }
- }
-
- // Call the callback.
- if ( callback )
- callback.call( scope || window, allPlugins );
- }
- }
- , this);
-
- };
-
- loadPlugins.call( this, name );
- };
- });
-
-CKEDITOR.plugins.setLang = function( pluginName, languageCode, languageEntries )
-{
- var plugin = this.get( pluginName ),
- pluginLang = plugin.lang || ( plugin.lang = {} );
-
- pluginLang[ languageCode ] = languageEntries;
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.plugins} object, which is used to
+ * manage plugins registration and loading.
+ */
+
+/**
+ * Manages plugins registration and loading.
+ *
+ * @class
+ * @extends CKEDITOR.resourceManager
+ * @singleton
+ */
+CKEDITOR.plugins = new CKEDITOR.resourceManager( 'plugins/', 'plugin' );
+
+// PACKAGER_RENAME( CKEDITOR.plugins )
+
+CKEDITOR.plugins.load = CKEDITOR.tools.override( CKEDITOR.plugins.load, function( originalLoad ) {
+ var initialized = {};
+
+ return function( name, callback, scope ) {
+ var allPlugins = {};
+
+ var loadPlugins = function( names ) {
+ originalLoad.call( this, names, function( plugins ) {
+ CKEDITOR.tools.extend( allPlugins, plugins );
+
+ var requiredPlugins = [];
+ for ( var pluginName in plugins ) {
+ var plugin = plugins[ pluginName ],
+ requires = plugin && plugin.requires;
+
+ if ( !initialized[ pluginName ] ) {
+ // Register all icons eventually defined by this plugin.
+ if ( plugin.icons ) {
+ var icons = plugin.icons.split( ',' );
+ for ( var ic = 0 ; ic < icons.length ; ic++ ) {
+ CKEDITOR.skin.addIcon( icons[ ic ], plugin.path + 'icons/' + icons[ ic ] + '.png' );
+ }
+ }
+ initialized[ pluginName ] = 1;
+ }
+
+ if ( requires ) {
+ // Trasnform it into an array, if it's not one.
+ if ( requires.split )
+ requires = requires.split( ',' );
+
+ for ( var i = 0; i < requires.length; i++ ) {
+ if ( !allPlugins[ requires[ i ] ] )
+ requiredPlugins.push( requires[ i ] );
+ }
+ }
+ }
+
+ if ( requiredPlugins.length )
+ loadPlugins.call( this, requiredPlugins );
+ else {
+ // Call the "onLoad" function for all plugins.
+ for ( pluginName in allPlugins ) {
+ plugin = allPlugins[ pluginName ];
+ if ( plugin.onLoad && !plugin.onLoad._called ) {
+ // Make it possible to return false from plugin::onLoad to disable it.
+ if ( plugin.onLoad() === false )
+ delete allPlugins[ pluginName ];
+
+ plugin.onLoad._called = 1;
+ }
+ }
+
+ // Call the callback.
+ if ( callback )
+ callback.call( scope || window, allPlugins );
+ }
+ }, this );
+
+ };
+
+ loadPlugins.call( this, name );
+ };
+});
+
+/**
+ * Loads a specific language file, or auto detect it. A callback is
+ * then called when the file gets loaded.
+ *
+ * CKEDITOR.plugins.setLang( 'myPlugin', 'en', {
+ * title: 'My plugin',
+ * selectOption: 'Please select an option'
+ * } );
+ *
+ * @param {String} pluginName The name of the plugin to which the provided translation
+ * should be attached.
+ * @param {String} languageCode The code of the language translation provided.
+ * @param {Object} languageEntries An object that contains pairs of label and
+ * the respective translation.
+ */
+CKEDITOR.plugins.setLang = function( pluginName, languageCode, languageEntries ) {
+ var plugin = this.get( pluginName ),
+ pluginLangEntries = plugin.langEntries || ( plugin.langEntries = {} ),
+ pluginLang = plugin.lang || ( plugin.lang = [] );
+
+ if ( pluginLang.split )
+ pluginLang = pluginLang.split( ',' );
+
+ if ( CKEDITOR.tools.indexOf( pluginLang, languageCode ) == -1 )
+ pluginLang.push( languageCode );
+
+ pluginLangEntries[ languageCode ] = languageEntries;
+};
diff --git a/devel/third-party/ckeditor/core/resourcemanager.js b/devel/third-party/ckeditor/core/resourcemanager.js
index a38433e..bce061c 100644
--- a/devel/third-party/ckeditor/core/resourcemanager.js
+++ b/devel/third-party/ckeditor/core/resourcemanager.js
@@ -1,238 +1,215 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.resourceManager} class, which is
- * the base for resource managers, like plugins and themes.
- */
-
- /**
- * Base class for resource managers, like plugins and themes. This class is not
- * intended to be used out of the CKEditor core code.
- * @param {String} basePath The path for the resources folder.
- * @param {String} fileName The name used for resource files.
- * @namespace
- * @example
- */
-CKEDITOR.resourceManager = function( basePath, fileName )
-{
- /**
- * The base directory containing all resources.
- * @name CKEDITOR.resourceManager.prototype.basePath
- * @type String
- * @example
- */
- this.basePath = basePath;
-
- /**
- * The name used for resource files.
- * @name CKEDITOR.resourceManager.prototype.fileName
- * @type String
- * @example
- */
- this.fileName = fileName;
-
- /**
- * Contains references to all resources that have already been registered
- * with {@link #add}.
- * @name CKEDITOR.resourceManager.prototype.registered
- * @type Object
- * @example
- */
- this.registered = {};
-
- /**
- * Contains references to all resources that have already been loaded
- * with {@link #load}.
- * @name CKEDITOR.resourceManager.prototype.loaded
- * @type Object
- * @example
- */
- this.loaded = {};
-
- /**
- * Contains references to all resources that have already been registered
- * with {@link #addExternal}.
- * @name CKEDITOR.resourceManager.prototype.externals
- * @type Object
- * @example
- */
- this.externals = {};
-
- /**
- * @private
- */
- this._ =
- {
- // List of callbacks waiting for plugins to be loaded.
- waitingList : {}
- };
-};
-
-CKEDITOR.resourceManager.prototype =
-{
- /**
- * Registers a resource.
- * @param {String} name The resource name.
- * @param {Object} [definition] The resource definition.
- * @example
- * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
- * @see CKEDITOR.pluginDefinition
- */
- add : function( name, definition )
- {
- if ( this.registered[ name ] )
- throw '[CKEDITOR.resourceManager.add] The resource name "' + name + '" is already registered.';
-
- CKEDITOR.fire( name + CKEDITOR.tools.capitalize( this.fileName ) + 'Ready',
- this.registered[ name ] = definition || {} );
- },
-
- /**
- * Gets the definition of a specific resource.
- * @param {String} name The resource name.
- * @type Object
- * @example
- * var definition = <b>CKEDITOR.plugins.get( 'sample' )</b>;
- */
- get : function( name )
- {
- return this.registered[ name ] || null;
- },
-
- /**
- * Get the folder path for a specific loaded resource.
- * @param {String} name The resource name.
- * @type String
- * @example
- * alert( <b>CKEDITOR.plugins.getPath( 'sample' )</b> ); // "<editor path>/plugins/sample/"
- */
- getPath : function( name )
- {
- var external = this.externals[ name ];
- return CKEDITOR.getUrl( ( external && external.dir ) || this.basePath + name + '/' );
- },
-
- /**
- * Get the file path for a specific loaded resource.
- * @param {String} name The resource name.
- * @type String
- * @example
- * alert( <b>CKEDITOR.plugins.getFilePath( 'sample' )</b> ); // "<editor path>/plugins/sample/plugin.js"
- */
- getFilePath : function( name )
- {
- var external = this.externals[ name ];
- return CKEDITOR.getUrl(
- this.getPath( name ) +
- ( ( external && ( typeof external.file == 'string' ) ) ? external.file : this.fileName + '.js' ) );
- },
-
- /**
- * Registers one or more resources to be loaded from an external path
- * instead of the core base path.
- * @param {String} names The resource names, separated by commas.
- * @param {String} path The path of the folder containing the resource.
- * @param {String} [fileName] The resource file name. If not provided, the
- * default name is used; If provided with a empty string, will implicitly indicates that {@param path}
- * is already the full path.
- * @example
- * // Loads a plugin from '/myplugin/samples/plugin.js'.
- * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
- * @example
- * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
- * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );
- * @example
- * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
- * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/my_plugin.js', '' );
- */
- addExternal : function( names, path, fileName )
- {
- names = names.split( ',' );
- for ( var i = 0 ; i < names.length ; i++ )
- {
- var name = names[ i ];
-
- this.externals[ name ] =
- {
- dir : path,
- file : fileName
- };
- }
- },
-
- /**
- * Loads one or more resources.
- * @param {String|Array} name The name of the resource to load. It may be a
- * string with a single resource name, or an array with several names.
- * @param {Function} callback A function to be called when all resources
- * are loaded. The callback will receive an array containing all
- * loaded names.
- * @param {Object} [scope] The scope object to be used for the callback
- * call.
- * @example
- * <b>CKEDITOR.plugins.load</b>( 'myplugin', function( plugins )
- * {
- * alert( plugins['myplugin'] ); // "object"
- * });
- */
- load : function( names, callback, scope )
- {
- // Ensure that we have an array of names.
- if ( !CKEDITOR.tools.isArray( names ) )
- names = names ? [ names ] : [];
-
- var loaded = this.loaded,
- registered = this.registered,
- urls = [],
- urlsNames = {},
- resources = {};
-
- // Loop through all names.
- for ( var i = 0 ; i < names.length ; i++ )
- {
- var name = names[ i ];
-
- if ( !name )
- continue;
-
- // If not available yet.
- if ( !loaded[ name ] && !registered[ name ] )
- {
- var url = this.getFilePath( name );
- urls.push( url );
- if ( !( url in urlsNames ) )
- urlsNames[ url ] = [];
- urlsNames[ url ].push( name );
- }
- else
- resources[ name ] = this.get( name );
- }
-
- CKEDITOR.scriptLoader.load( urls, function( completed, failed )
- {
- if ( failed.length )
- {
- throw '[CKEDITOR.resourceManager.load] Resource name "' + urlsNames[ failed[ 0 ] ].join( ',' )
- + '" was not found at "' + failed[ 0 ] + '".';
- }
-
- for ( var i = 0 ; i < completed.length ; i++ )
- {
- var nameList = urlsNames[ completed[ i ] ];
- for ( var j = 0 ; j < nameList.length ; j++ )
- {
- var name = nameList[ j ];
- resources[ name ] = this.get( name );
-
- loaded[ name ] = 1;
- }
- }
-
- callback.call( scope, resources );
- }
- , this);
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.resourceManager} class, which is
+ * the base for resource managers, like plugins.
+ */
+
+/**
+ * Base class for resource managers, like plugins. This class is not
+ * intended to be used out of the CKEditor core code.
+ *
+ * @class
+ * @constructor Creates a resourceManager class instance.
+ * @param {String} basePath The path for the resources folder.
+ * @param {String} fileName The name used for resource files.
+ */
+CKEDITOR.resourceManager = function( basePath, fileName ) {
+ /**
+ * The base directory containing all resources.
+ *
+ * @property {String}
+ */
+ this.basePath = basePath;
+
+ /**
+ * The name used for resource files.
+ *
+ * @property {String}
+ */
+ this.fileName = fileName;
+
+ /**
+ * Contains references to all resources that have already been registered
+ * with {@link #add}.
+ */
+ this.registered = {};
+
+ /**
+ * Contains references to all resources that have already been loaded
+ * with {@link #load}.
+ */
+ this.loaded = {};
+
+ /**
+ * Contains references to all resources that have already been registered
+ * with {@link #addExternal}.
+ */
+ this.externals = {};
+
+ /**
+ * @private
+ */
+ this._ = {
+ // List of callbacks waiting for plugins to be loaded.
+ waitingList: {}
+ };
+};
+
+CKEDITOR.resourceManager.prototype = {
+ /**
+ * Registers a resource.
+ *
+ * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
+ *
+ * @param {String} name The resource name.
+ * @param {Object} [definition] The resource definition.
+ * @see CKEDITOR.pluginDefinition
+ */
+ add: function( name, definition ) {
+ if ( this.registered[ name ] )
+ throw '[CKEDITOR.resourceManager.add] The resource name "' + name + '" is already registered.';
+
+ var resource = this.registered[ name ] = definition || {};
+ resource.name = name;
+ resource.path = this.getPath( name );
+
+ CKEDITOR.fire( name + CKEDITOR.tools.capitalize( this.fileName ) + 'Ready', resource );
+
+ return this.get( name );
+ },
+
+ /**
+ * Gets the definition of a specific resource.
+ *
+ * var definition = CKEDITOR.plugins.get( 'sample' );
+ *
+ * @param {String} name The resource name.
+ * @returns {Object} The registered object.
+ */
+ get: function( name ) {
+ return this.registered[ name ] || null;
+ },
+
+ /**
+ * Get the folder path for a specific loaded resource.
+ *
+ * alert( CKEDITOR.plugins.getPath( 'sample' ) ); // '<editor path>/plugins/sample/'
+ *
+ * @param {String} name The resource name.
+ * @returns {String}
+ */
+ getPath: function( name ) {
+ var external = this.externals[ name ];
+ return CKEDITOR.getUrl( ( external && external.dir ) || this.basePath + name + '/' );
+ },
+
+ /**
+ * Get the file path for a specific loaded resource.
+ *
+ * alert( CKEDITOR.plugins.getFilePath( 'sample' ) ); // '<editor path>/plugins/sample/plugin.js'
+ *
+ * @param {String} name The resource name.
+ * @returns {String}
+ */
+ getFilePath: function( name ) {
+ var external = this.externals[ name ];
+ return CKEDITOR.getUrl( this.getPath( name ) + ( ( external && ( typeof external.file == 'string' ) ) ? external.file : this.fileName + '.js' ) );
+ },
+
+ /**
+ * Registers one or more resources to be loaded from an external path
+ * instead of the core base path.
+ *
+ * // Loads a plugin from '/myplugin/samples/plugin.js'.
+ * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
+ *
+ * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
+ * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );
+ *
+ * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
+ * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/my_plugin.js', '' );
+ *
+ * @param {String} names The resource names, separated by commas.
+ * @param {String} path The path of the folder containing the resource.
+ * @param {String} [fileName] The resource file name. If not provided, the
+ * default name is used. If provided with a empty string, will implicitly indicates that `path` argument
+ * is already the full path.
+ */
+ addExternal: function( names, path, fileName ) {
+ names = names.split( ',' );
+ for ( var i = 0; i < names.length; i++ ) {
+ var name = names[ i ];
+
+ this.externals[ name ] = {
+ dir: path,
+ file: fileName
+ };
+ }
+ },
+
+ /**
+ * Loads one or more resources.
+ *
+ * CKEDITOR.plugins.load( 'myplugin', function( plugins ) {
+ * alert( plugins[ 'myplugin' ] ); // object
+ * } );
+ *
+ * @param {String/Array} name The name of the resource to load. It may be a
+ * string with a single resource name, or an array with several names.
+ * @param {Function} callback A function to be called when all resources
+ * are loaded. The callback will receive an array containing all loaded names.
+ * @param {Object} [scope] The scope object to be used for the callback call.
+ */
+ load: function( names, callback, scope ) {
+ // Ensure that we have an array of names.
+ if ( !CKEDITOR.tools.isArray( names ) )
+ names = names ? [ names ] : [];
+
+ var loaded = this.loaded,
+ registered = this.registered,
+ urls = [],
+ urlsNames = {},
+ resources = {};
+
+ // Loop through all names.
+ for ( var i = 0; i < names.length; i++ ) {
+ var name = names[ i ];
+
+ if ( !name )
+ continue;
+
+ // If not available yet.
+ if ( !loaded[ name ] && !registered[ name ] ) {
+ var url = this.getFilePath( name );
+ urls.push( url );
+ if ( !( url in urlsNames ) )
+ urlsNames[ url ] = [];
+ urlsNames[ url ].push( name );
+ } else
+ resources[ name ] = this.get( name );
+ }
+
+ CKEDITOR.scriptLoader.load( urls, function( completed, failed ) {
+ if ( failed.length ) {
+ throw '[CKEDITOR.resourceManager.load] Resource name "' + urlsNames[ failed[ 0 ] ].join( ',' )
+ + '" was not found at "' + failed[ 0 ] + '".';
+ }
+
+ for ( var i = 0; i < completed.length; i++ ) {
+ var nameList = urlsNames[ completed[ i ] ];
+ for ( var j = 0; j < nameList.length; j++ ) {
+ var name = nameList[ j ];
+ resources[ name ] = this.get( name );
+
+ loaded[ name ] = 1;
+ }
+ }
+
+ callback.call( scope, resources );
+ }, this );
+ }
+};
diff --git a/devel/third-party/ckeditor/core/scriptloader.js b/devel/third-party/ckeditor/core/scriptloader.js
index 0ad7d86..1602052 100644
--- a/devel/third-party/ckeditor/core/scriptloader.js
+++ b/devel/third-party/ckeditor/core/scriptloader.js
@@ -1,198 +1,157 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.scriptLoader} object, used to load scripts
- * asynchronously.
- */
-
-/**
- * Load scripts asynchronously.
- * @namespace
- * @example
- */
-CKEDITOR.scriptLoader = (function()
-{
- var uniqueScripts = {};
- var waitingList = {};
-
- return /** @lends CKEDITOR.scriptLoader */ {
- /**
- * Loads one or more external script checking if not already loaded
- * previously by this function.
- * @param {String|Array} scriptUrl One or more URLs pointing to the
- * scripts to be loaded.
- * @param {Function} [callback] A function to be called when the script
- * is loaded and executed. If a string is passed to "scriptUrl", a
- * boolean parameter is passed to the callback, indicating the
- * success of the load. If an array is passed instead, two array
- * parameters are passed to the callback; the first contains the
- * URLs that have been properly loaded, and the second the failed
- * ones.
- * @param {Object} [scope] The scope ("this" reference) to be used for
- * the callback call. Default to {@link CKEDITOR}.
- * @param {Boolean} [noCheck] Indicates that the script must be loaded
- * anyway, not checking if it has already loaded.
- * @example
- * CKEDITOR.scriptLoader.load( '/myscript.js' );
- * @example
- * CKEDITOR.scriptLoader.load( '/myscript.js', function( success )
- * {
- * // Alerts "true" if the script has been properly loaded.
- * // HTTP error 404 should return "false".
- * alert( success );
- * });
- * @example
- * CKEDITOR.scriptLoader.load( [ '/myscript1.js', '/myscript2.js' ], function( completed, failed )
- * {
- * alert( 'Number of scripts loaded: ' + completed.length );
- * alert( 'Number of failures: ' + failed.length );
- * });
- */
- load : function( scriptUrl, callback, scope, noCheck, showBusy )
- {
- var isString = ( typeof scriptUrl == 'string' );
-
- if ( isString )
- scriptUrl = [ scriptUrl ];
-
- if ( !scope )
- scope = CKEDITOR;
-
- var scriptCount = scriptUrl.length,
- completed = [],
- failed = [];
-
- var doCallback = function( success )
- {
- if ( callback )
- {
- if ( isString )
- callback.call( scope, success );
- else
- callback.call( scope, completed, failed );
- }
- };
-
- if ( scriptCount === 0 )
- {
- doCallback( true );
- return;
- }
-
- var checkLoaded = function( url, success )
- {
- ( success ? completed : failed ).push( url );
-
- if ( --scriptCount <= 0 )
- {
- showBusy && CKEDITOR.document.getDocumentElement().removeStyle( 'cursor' );
- doCallback( success );
- }
- };
-
- var onLoad = function( url, success )
- {
- // Mark this script as loaded.
- uniqueScripts[ url ] = 1;
-
- // Get the list of callback checks waiting for this file.
- var waitingInfo = waitingList[ url ];
- delete waitingList[ url ];
-
- // Check all callbacks waiting for this file.
- for ( var i = 0 ; i < waitingInfo.length ; i++ )
- waitingInfo[ i ]( url, success );
- };
-
- var loadScript = function( url )
- {
- if ( noCheck !== true && uniqueScripts[ url ] )
- {
- checkLoaded( url, true );
- return;
- }
-
- var waitingInfo = waitingList[ url ] || ( waitingList[ url ] = [] );
- waitingInfo.push( checkLoaded );
-
- // Load it only for the first request.
- if ( waitingInfo.length > 1 )
- return;
-
- // Create the <script> element.
- var script = new CKEDITOR.dom.element( 'script' );
- script.setAttributes( {
- type : 'text/javascript',
- src : url } );
-
- if ( callback )
- {
- if ( CKEDITOR.env.ie )
- {
- // FIXME: For IE, we are not able to return false on error (like 404).
-
- /** @ignore */
- script.$.onreadystatechange = function ()
- {
- if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' )
- {
- script.$.onreadystatechange = null;
- onLoad( url, true );
- }
- };
- }
- else
- {
- /** @ignore */
- script.$.onload = function()
- {
- // Some browsers, such as Safari, may call the onLoad function
- // immediately. Which will break the loading sequence. (#3661)
- setTimeout( function() { onLoad( url, true ); }, 0 );
- };
-
- // FIXME: Opera and Safari will not fire onerror.
-
- /** @ignore */
- script.$.onerror = function()
- {
- onLoad( url, false );
- };
- }
- }
-
- // Append it to <head>.
- script.appendTo( CKEDITOR.document.getHead() );
-
- CKEDITOR.fire( 'download', url ); // @Packager.RemoveLine
- };
-
- showBusy && CKEDITOR.document.getDocumentElement().setStyle( 'cursor', 'wait' );
- for ( var i = 0 ; i < scriptCount ; i++ )
- {
- loadScript( scriptUrl[ i ] );
- }
- },
-
- /**
- * Executes a JavaScript code into the current document.
- * @param {String} code The code to be executed.
- * @example
- * CKEDITOR.scriptLoader.loadCode( 'var x = 10;' );
- * alert( x ); // "10"
- */
- loadCode : function( code )
- {
- // Create the <script> element.
- var script = new CKEDITOR.dom.element( 'script' );
- script.setAttribute( 'type', 'text/javascript' );
- script.appendText( code );
-
- // Append it to <head>.
- script.appendTo( CKEDITOR.document.getHead() );
- }
- };
-})();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.scriptLoader} object, used to load scripts
+ * asynchronously.
+ */
+
+/**
+ * Load scripts asynchronously.
+ *
+ * @class
+ * @singleton
+ */
+CKEDITOR.scriptLoader = (function() {
+ var uniqueScripts = {},
+ waitingList = {};
+
+ return {
+ /**
+ * Loads one or more external script checking if not already loaded
+ * previously by this function.
+ *
+ * CKEDITOR.scriptLoader.load( '/myscript.js' );
+ *
+ * CKEDITOR.scriptLoader.load( '/myscript.js', function( success ) {
+ * // Alerts true if the script has been properly loaded.
+ * // HTTP error 404 should return false.
+ * alert( success );
+ * } );
+ *
+ * CKEDITOR.scriptLoader.load( [ '/myscript1.js', '/myscript2.js' ], function( completed, failed ) {
+ * alert( 'Number of scripts loaded: ' + completed.length );
+ * alert( 'Number of failures: ' + failed.length );
+ * } );
+ *
+ * @param {String/Array} scriptUrl One or more URLs pointing to the
+ * scripts to be loaded.
+ * @param {Function} [callback] A function to be called when the script
+ * is loaded and executed. If a string is passed to `scriptUrl`, a
+ * boolean parameter is passed to the callback, indicating the
+ * success of the load. If an array is passed instead, two arrays
+ * parameters are passed to the callback - the first contains the
+ * URLs that have been properly loaded and the second the failed ones.
+ * @param {Object} [scope] The scope (`this` reference) to be used for
+ * the callback call. Defaults to {@link CKEDITOR}.
+ * @param {Boolean} [showBusy] Changes the cursor of the document while
+ * the script is loaded.
+ */
+ load: function( scriptUrl, callback, scope, showBusy ) {
+ var isString = ( typeof scriptUrl == 'string' );
+
+ if ( isString )
+ scriptUrl = [ scriptUrl ];
+
+ if ( !scope )
+ scope = CKEDITOR;
+
+ var scriptCount = scriptUrl.length,
+ completed = [],
+ failed = [];
+
+ var doCallback = function( success ) {
+ if ( callback ) {
+ if ( isString )
+ callback.call( scope, success );
+ else
+ callback.call( scope, completed, failed );
+ }
+ };
+
+ if ( scriptCount === 0 ) {
+ doCallback( true );
+ return;
+ }
+
+ var checkLoaded = function( url, success ) {
+ ( success ? completed : failed ).push( url );
+
+ if ( --scriptCount <= 0 ) {
+ showBusy && CKEDITOR.document.getDocumentElement().removeStyle( 'cursor' );
+ doCallback( success );
+ }
+ };
+
+ var onLoad = function( url, success ) {
+ // Mark this script as loaded.
+ uniqueScripts[ url ] = 1;
+
+ // Get the list of callback checks waiting for this file.
+ var waitingInfo = waitingList[ url ];
+ delete waitingList[ url ];
+
+ // Check all callbacks waiting for this file.
+ for ( var i = 0; i < waitingInfo.length; i++ )
+ waitingInfo[ i ]( url, success );
+ };
+
+ var loadScript = function( url ) {
+ if ( uniqueScripts[ url ] ) {
+ checkLoaded( url, true );
+ return;
+ }
+
+ var waitingInfo = waitingList[ url ] || ( waitingList[ url ] = [] );
+ waitingInfo.push( checkLoaded );
+
+ // Load it only for the first request.
+ if ( waitingInfo.length > 1 )
+ return;
+
+ // Create the <script> element.
+ var script = new CKEDITOR.dom.element( 'script' );
+ script.setAttributes({
+ type: 'text/javascript',
+ src: url } );
+
+ if ( callback ) {
+ if ( CKEDITOR.env.ie ) {
+ // FIXME: For IE, we are not able to return false on error (like 404).
+ script.$.onreadystatechange = function() {
+ if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' ) {
+ script.$.onreadystatechange = null;
+ onLoad( url, true );
+ }
+ };
+ } else {
+ script.$.onload = function() {
+ // Some browsers, such as Safari, may call the onLoad function
+ // immediately. Which will break the loading sequence. (#3661)
+ setTimeout( function() {
+ onLoad( url, true );
+ }, 0 );
+ };
+
+ // FIXME: Opera and Safari will not fire onerror.
+ script.$.onerror = function() {
+ onLoad( url, false );
+ };
+ }
+ }
+
+ // Append it to <head>.
+ script.appendTo( CKEDITOR.document.getHead() );
+
+ CKEDITOR.fire( 'download', url ); // %REMOVE_LINE%
+ };
+
+ showBusy && CKEDITOR.document.getDocumentElement().setStyle( 'cursor', 'wait' );
+ for ( var i = 0; i < scriptCount; i++ ) {
+ loadScript( scriptUrl[ i ] );
+ }
+ }
+ };
+})();
diff --git a/devel/third-party/ckeditor/core/selection.js b/devel/third-party/ckeditor/core/selection.js
new file mode 100644
index 0000000..6740d60
--- /dev/null
+++ b/devel/third-party/ckeditor/core/selection.js
@@ -0,0 +1,1658 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ // #### checkSelectionChange : START
+
+ // The selection change check basically saves the element parent tree of
+ // the current node and check it on successive requests. If there is any
+ // change on the tree, then the selectionChange event gets fired.
+ function checkSelectionChange() {
+ // Editor may have no selection at all.
+ var sel = this.getSelection( 1 );
+ if ( sel.getType() == CKEDITOR.SELECTION_NONE )
+ return;
+
+ this.fire( 'selectionCheck', sel );
+
+ var currentPath = this.elementPath();
+ if ( !currentPath.compare( this._.selectionPreviousPath ) ) {
+ this._.selectionPreviousPath = currentPath;
+ this.fire( 'selectionChange', { selection: sel, path: currentPath } );
+ }
+ }
+
+ var checkSelectionChangeTimer, checkSelectionChangeTimeoutPending;
+
+ function checkSelectionChangeTimeout() {
+ // Firing the "OnSelectionChange" event on every key press started to
+ // be too slow. This function guarantees that there will be at least
+ // 200ms delay between selection checks.
+
+ checkSelectionChangeTimeoutPending = true;
+
+ if ( checkSelectionChangeTimer )
+ return;
+
+ checkSelectionChangeTimeoutExec.call( this );
+
+ checkSelectionChangeTimer = CKEDITOR.tools.setTimeout( checkSelectionChangeTimeoutExec, 200, this );
+ }
+
+ function checkSelectionChangeTimeoutExec() {
+ checkSelectionChangeTimer = null;
+
+ if ( checkSelectionChangeTimeoutPending ) {
+ // Call this with a timeout so the browser properly moves the
+ // selection after the mouseup. It happened that the selection was
+ // being moved after the mouseup when clicking inside selected text
+ // with Firefox.
+ CKEDITOR.tools.setTimeout( checkSelectionChange, 0, this );
+
+ checkSelectionChangeTimeoutPending = false;
+ }
+ }
+
+ // #### checkSelectionChange : END
+
+ var isVisible = CKEDITOR.dom.walker.invisible( 1 );
+ function rangeRequiresFix( range ) {
+ function isTextCt( node, isAtEnd ) {
+ if ( !node || node.type == CKEDITOR.NODE_TEXT )
+ return false;
+
+ var testRng = range.clone();
+ return testRng[ 'moveToElementEdit' + ( isAtEnd ? 'End' : 'Start' ) ]( node );
+ }
+
+ // Range root must be the editable element, it's to avoid creating filler char
+ // on any temporary internal selection.
+ if ( !( range.root instanceof CKEDITOR.editable ) ) {
+ return false;
+ }
+
+ var ct = range.startContainer;
+
+ var previous = range.getPreviousNode( isVisible, null, ct ),
+ next = range.getNextNode( isVisible, null, ct );
+
+ // Any adjacent text container may absorb the cursor, e.g.
+ // <p><strong>text</strong>^foo</p>
+ // <p>foo^<strong>text</strong></p>
+ // <div>^<p>foo</p></div>
+ if ( isTextCt( previous ) || isTextCt( next, 1 ) )
+ return true;
+
+ // Empty block/inline element is also affected. <span>^</span>, <p>^</p> (#7222)
+ if ( !( previous || next ) && !( ct.type == CKEDITOR.NODE_ELEMENT && ct.isBlockBoundary() && ct.getBogus() ) )
+ return true;
+
+ return false;
+ }
+
+ function createFillingChar( element ) {
+ removeFillingChar( element, false );
+
+ var fillingChar = element.getDocument().createText( '\u200B' );
+ element.setCustomData( 'cke-fillingChar', fillingChar );
+
+ return fillingChar;
+ }
+
+ function getFillingChar( element ) {
+ return element.getCustomData( 'cke-fillingChar' );
+ }
+
+ // Checks if a filling char has been used, eventualy removing it (#1272).
+ function checkFillingChar( element ) {
+ var fillingChar = getFillingChar( element );
+ if ( fillingChar ) {
+ // Use this flag to avoid removing the filling char right after
+ // creating it.
+ if ( fillingChar.getCustomData( 'ready' ) )
+ removeFillingChar( element );
+ else
+ fillingChar.setCustomData( 'ready', 1 );
+ }
+ }
+
+ function removeFillingChar( element, keepSelection ) {
+ var fillingChar = element && element.removeCustomData( 'cke-fillingChar' );
+ if ( fillingChar ) {
+
+ // Text selection position might get mangled by
+ // subsequent dom modification, save it now for restoring. (#8617)
+ if ( keepSelection !== false )
+ {
+ var bm,
+ doc = element.getDocument(),
+ sel = doc.getSelection().getNative(),
+ // Be error proof.
+ range = sel && sel.type != 'None' && sel.getRangeAt( 0 );
+
+ if ( fillingChar.getLength() > 1 && range && range.intersectsNode( fillingChar.$ ) ) {
+ bm = [ sel.anchorOffset, sel.focusOffset ];
+
+ // Anticipate the offset change brought by the removed char.
+ var startAffected = sel.anchorNode == fillingChar.$ && sel.anchorOffset > 0,
+ endAffected = sel.focusNode == fillingChar.$ && sel.focusOffset > 0;
+ startAffected && bm[ 0 ]--;
+ endAffected && bm[ 1 ]--;
+
+ // Revert the bookmark order on reverse selection.
+ isReversedSelection( sel ) && bm.unshift( bm.pop() );
+ }
+ }
+
+ // We can't simply remove the filling node because the user
+ // will actually enlarge it when typing, so we just remove the
+ // invisible char from it.
+ fillingChar.setText( fillingChar.getText().replace( /\u200B/g, '' ) );
+
+ // Restore the bookmark.
+ if ( bm ) {
+ var rng = sel.getRangeAt( 0 );
+ rng.setStart( rng.startContainer, bm[ 0 ] );
+ rng.setEnd( rng.startContainer, bm[ 1 ] );
+ sel.removeAllRanges();
+ sel.addRange( rng );
+ }
+ }
+ }
+
+ function isReversedSelection( sel ) {
+ if ( !sel.isCollapsed ) {
+ var range = sel.getRangeAt( 0 );
+ // Potentially alter an reversed selection range.
+ range.setStart( sel.anchorNode, sel.anchorOffset );
+ range.setEnd( sel.focusNode, sel.focusOffset );
+ return range.collapsed;
+ }
+ }
+
+ // Setup all editor instances for the necessary selection hooks.
+ CKEDITOR.on( 'instanceCreated', function( ev ) {
+ var editor = ev.editor;
+
+ /**
+ * @event selectionChange
+ *
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {CKEDITOR.dom.selection} data.selection
+ * @param {CKEDITOR.dom.elementPath} data.path
+ */
+ editor.define( 'selectionChange', { errorProof:1 } );
+
+ editor.on( 'contentDom', function() {
+ var doc = editor.document,
+ outerDoc = CKEDITOR.document,
+ editable = editor.editable(),
+ body = doc.getBody(),
+ html = doc.getDocumentElement();
+
+ var isInline = editable.isInline();
+
+ // Browsers could loose the selection once the editable lost focus,
+ // in such case we need to reproduce it by saving a locked selection
+ // and restoring it upon focus gain.
+ if ( CKEDITOR.env.ie || CKEDITOR.env.opera || isInline ) {
+ var restoreSel;
+
+ // Plays the magic here to restore/save dom selection on editable focus/blur.
+ editable.attachListener( editable, 'focus', function() {
+ editor.unlockSelection( restoreSel );
+ restoreSel = 0;
+ }, null, null, -1 );
+
+ var lastSel;
+ // Save a fresh copy of the selection.
+ function saveSel() {
+ lastSel = editor.getSelection( 1 );
+ lastSel.lock();
+ }
+
+ // For old IEs, we can retrieve the last correct DOM selection upon the "beforedeactivate" event.
+ // For the rest, a more frequent check is required for each selection change made.
+ if ( isMSSelection )
+ editable.attachListener( editable, 'beforedeactivate', saveSel, null, null, -1 );
+ else
+ editable.attachListener( editor, 'selectionCheck', saveSel, null, null, -1 );
+
+ editable.attachListener( editable, 'blur', function() {
+ editor.lockSelection( lastSel );
+ restoreSel = 1;
+ }, null, null, -1 );
+
+ // Disable selection restoring when clicking in.
+ editable.attachListener( editable, 'mousedown', function() {
+ restoreSel = 0;
+ });
+ }
+
+ // The following selection related fixes applies to only framed editable.
+ if ( CKEDITOR.env.ie && !isInline ) {
+ var scroll;
+ editable.attachListener( editable, 'mousedown', function( evt ) {
+ // IE scrolls document to top on right mousedown
+ // when editor has no focus, remember this scroll
+ // position and revert it before context menu opens. (#5778)
+ if ( evt.data.$.button == 2 ) {
+ var sel = editor.document.$.selection;
+ if ( sel.type == 'None' )
+ scroll = editor.window.getScrollPosition();
+ }
+ });
+
+ editable.attachListener( editable, 'mouseup', function( evt ) {
+ // Restore recorded scroll position when needed on right mouseup.
+ if ( evt.data.$.button == 2 && scroll ) {
+ editor.document.$.documentElement.scrollLeft = scroll.x;
+ editor.document.$.documentElement.scrollTop = scroll.y;
+ }
+ scroll = null;
+ });
+
+ // When content doc is in standards mode, IE doesn't focus the editor when
+ // clicking at the region below body (on html element) content, we emulate
+ // the normal behavior on old IEs. (#1659, #7932)
+ if ( doc.$.compatMode != 'BackCompat' ) {
+ if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {
+ function moveRangeToPoint( range, x, y ) {
+ // Error prune in IE7. (#9034, #9110)
+ try { range.moveToPoint( x, y ); } catch ( e ) {}
+ }
+
+ html.on( 'mousedown', function( evt ) {
+ evt = evt.data;
+
+ // Expand the text range along with mouse move.
+ function onHover( evt ) {
+ evt = evt.data.$;
+ if ( textRng ) {
+ // Read the current cursor.
+ var rngEnd = body.$.createTextRange();
+
+ moveRangeToPoint( rngEnd, evt.x, evt.y );
+
+ // Handle drag directions.
+ textRng.setEndPoint(
+ startRng.compareEndPoints( 'StartToStart', rngEnd ) < 0 ?
+ 'EndToEnd' : 'StartToStart', rngEnd );
+
+ // Update selection with new range.
+ textRng.select();
+ }
+ }
+
+ function removeListeners() {
+ outerDoc.removeListener( 'mouseup', onSelectEnd );
+ html.removeListener( 'mouseup', onSelectEnd );
+ }
+
+ function onSelectEnd() {
+
+ html.removeListener( 'mousemove', onHover );
+ removeListeners();
+
+ // Make it in effect on mouse up. (#9022)
+ textRng.select();
+ }
+
+
+ // We're sure that the click happens at the region
+ // below body, but not on scrollbar.
+ if ( evt.getTarget().is( 'html' ) &&
+ evt.$.y < html.$.clientHeight &&
+ evt.$.x < html.$.clientWidth ) {
+ // Start to build the text range.
+ var textRng = body.$.createTextRange();
+ moveRangeToPoint( textRng, evt.$.x, evt.$.y );
+
+ // Records the dragging start of the above text range.
+ var startRng = textRng.duplicate();
+
+ html.on( 'mousemove', onHover );
+ outerDoc.on( 'mouseup', onSelectEnd );
+ html.on( 'mouseup', onSelectEnd );
+ }
+ });
+ }
+
+ // It's much simpler for IE8+, we just need to reselect the reported range.
+ if ( CKEDITOR.env.version > 7 ) {
+ html.on( 'mousedown', function( evt ) {
+ if ( evt.data.getTarget().is( 'html' ) ) {
+ // Limit the text selection mouse move inside of editable. (#9715)
+ outerDoc.on( 'mouseup', onSelectEnd );
+ html.on( 'mouseup', onSelectEnd );
+ }
+
+ });
+
+ function removeListeners() {
+ outerDoc.removeListener( 'mouseup', onSelectEnd );
+ html.removeListener( 'mouseup', onSelectEnd );
+ }
+
+ function onSelectEnd() {
+ removeListeners();
+
+ // The event is not fired when clicking on the scrollbars,
+ // so we can safely check the following to understand
+ // whether the empty space following <body> has been clicked.
+ var sel = CKEDITOR.document.$.selection,
+ range = sel.createRange();
+ // The selection range is reported on host, but actually it should applies to the content doc.
+ if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
+ range.select();
+ }
+ }
+ }
+ }
+
+ // We check the selection change:
+ // 1. Upon "selectionchange" event from the editable element. (which might be faked event fired by our code)
+ // 2. After the accomplish of keyboard and mouse events.
+ editable.attachListener( editable, 'selectionchange', checkSelectionChange, editor );
+ editable.attachListener( editable, 'keyup', checkSelectionChangeTimeout, editor );
+ // Always fire the selection change on focus gain.
+ editable.attachListener( editable, 'focus', function() {
+ editor.forceNextSelectionCheck();
+ editor.selectionChange( 1 );
+ });
+
+ // #9699: On Webkit&Gecko in inline editor and on Opera in framed editor we have to check selection
+ // when it was changed by dragging and releasing mouse button outside editable. Dragging (mousedown)
+ // has to be initialized in editable, but for mouseup we listen on document element.
+ // On Opera, listening on document element, helps even if mouse button is released outside iframe.
+ if ( editable.isInline() ? ( CKEDITOR.env.webkit || CKEDITOR.env.gecko ) : CKEDITOR.env.opera ) {
+ var mouseDown;
+ editable.attachListener( editable, 'mousedown', function() {
+ mouseDown = 1;
+ });
+ editable.attachListener( doc.getDocumentElement(), 'mouseup', function() {
+ if ( mouseDown )
+ checkSelectionChangeTimeout.call( editor );
+ mouseDown = 0;
+ });
+ }
+ // In all other cases listen on simple mouseup over editable, as we did before #9699.
+ else
+ editable.attachListener( editable, 'mouseup', checkSelectionChangeTimeout, editor );
+
+ if ( CKEDITOR.env.webkit ) {
+ // Before keystroke is handled by editor, check to remove the filling char.
+ doc.on( 'keydown', function( evt ) {
+ var key = evt.data.getKey();
+ // Remove the filling char before some keys get
+ // executed, so they'll not get blocked by it.
+ switch ( key ) {
+ case 13: // ENTER
+ case 33: // PAGEUP
+ case 34: // PAGEDOWN
+ case 35: // HOME
+ case 36: // END
+ case 37: // LEFT-ARROW
+ case 39: // RIGHT-ARROW
+ case 8: // BACKSPACE
+ case 45: // INS
+ case 46: // DEl
+ removeFillingChar( editor.editable() );
+ }
+
+ }, null, null, -1 );
+ }
+ });
+
+ // Clear the cached range path before unload. (#7174)
+ editor.on( 'contentDomUnload', editor.forceNextSelectionCheck, editor );
+ // Check selection change on data reload.
+ editor.on( 'dataReady', function() {
+ editor.selectionChange( 1 );
+ });
+
+ function clearSelection() {
+ var sel = editor.getSelection();
+ sel && sel.removeAllRanges();
+ }
+
+ // Clear dom selection before editable destroying to fix some browser
+ // craziness.
+
+ // IE9 might cease to work if there's an object selection inside the iframe (#7639).
+ CKEDITOR.env.ie9Compat && editor.on( 'beforeDestroy', clearSelection, null, null, 9 );
+ // Webkit's selection will mess up after the data loading.
+ CKEDITOR.env.webkit && editor.on( 'setData', clearSelection );
+
+ // Invalidate locked selection when unloading DOM (e.g. after setData). (#9521)
+ editor.on( 'contentDomUnload', function() {
+ editor.unlockSelection();
+ });
+
+ });
+
+ CKEDITOR.on( 'instanceReady', function( evt ) {
+ var editor = evt.editor,
+ editable = editor.editable();
+
+ // On WebKit only, we need a special "filling" char on some situations
+ // (#1272). Here we set the events that should invalidate that char.
+ if ( CKEDITOR.env.webkit ) {
+ editor.on( 'selectionChange', function() {
+ checkFillingChar( editable );
+ }, null, null, -1 );
+ editor.on( 'beforeSetMode', function() {
+ removeFillingChar( editable );
+ }, null, null, -1 );
+
+ var fillingCharBefore, resetSelection;
+
+ function beforeData() {
+ var doc = editor.document,
+ fillingChar = getFillingChar( editable );
+
+ if ( fillingChar ) {
+ // If cursor is right blinking by side of the filler node, save it for restoring,
+ // as the following text substitution will blind it. (#7437)
+ var sel = doc.$.defaultView.getSelection();
+ if ( sel.type == 'Caret' && sel.anchorNode == fillingChar.$ )
+ resetSelection = 1;
+
+ fillingCharBefore = fillingChar.getText();
+ fillingChar.setText( fillingCharBefore.replace( /\u200B/g, '' ) );
+ }
+ }
+
+ function afterData() {
+ var doc = editor.document,
+ fillingChar = getFillingChar( editable );
+
+ if ( fillingChar ) {
+ fillingChar.setText( fillingCharBefore );
+
+ if ( resetSelection ) {
+ doc.$.defaultView.getSelection().setPosition( fillingChar.$, fillingChar.getLength() );
+ resetSelection = 0;
+ }
+ }
+ }
+
+ editor.on( 'beforeUndoImage', beforeData );
+ editor.on( 'afterUndoImage', afterData );
+ editor.on( 'beforeGetData', beforeData, null, null, 0 );
+ editor.on( 'getData', afterData );
+ }
+
+ });
+
+ /**
+ * Check the selection change in editor and potentially fires
+ * the {@link CKEDITOR.editor#event-selectionChange} event.
+ *
+ * @method
+ * @member CKEDITOR.editor
+ * @param {Boolean} [checkNow=false] Force the check to happen immediately
+ * instead of coming with a timeout delay (default).
+ */
+ CKEDITOR.editor.prototype.selectionChange = function( checkNow ) {
+ ( checkNow ? checkSelectionChange : checkSelectionChangeTimeout ).call( this );
+ };
+
+ /**
+ * Retrieve the editor selection in scope of editable element.
+ *
+ * **Note:** Since the native browser selection provides only one single
+ * selection at a time per document, so if editor's editable element has lost focus,
+ * this method will return a null value unless the {@link CKEDITOR.editor#lockSelection}
+ * has been called beforehand so the saved selection is retrieved.
+ *
+ * var selection = CKEDITOR.instances.editor1.getSelection();
+ * alert( selection.getType() );
+ *
+ * @method
+ * @member CKEDITOR.editor
+ * @param {Boolean} forceRealSelection
+ * @returns {CKEDITOR.dom.selection} A selection object or null if not available for the moment.
+ * @todo param
+ */
+ CKEDITOR.editor.prototype.getSelection = function( forceRealSelection ) {
+ // Check if there exists a locked selection.
+ if ( this._.savedSelection && !forceRealSelection )
+ return this._.savedSelection;
+
+ // Editable element might be absent.
+ var editable = this.editable();
+ return editable ? new CKEDITOR.dom.selection( editable ) : null;
+ };
+
+ /**
+ * Locks the selection made in the editor in order to make it possible to
+ * manipulate it without browser interference. A locked selection is
+ * cached and remains unchanged until it is released with the
+ * {@link CKEDITOR.editor#unlockSelection} method.
+ *
+ * @method
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.dom.selection} [sel] Specify the selection to be locked.
+ * @returns {Boolean} `true` if selection was locked.
+ */
+ CKEDITOR.editor.prototype.lockSelection = function( sel ) {
+ sel = sel || this.getSelection( 1 );
+ if ( sel.getType() != CKEDITOR.SELECTION_NONE ) {
+ !sel.isLocked && sel.lock();
+ this._.savedSelection = sel;
+ return true;
+ }
+ return false;
+ };
+
+ /**
+ * Unlocks the selection made in the editor and locked with the
+ * {@link CKEDITOR.editor#unlockSelection} method. An unlocked selection
+ * is no longer cached and can be changed.
+ *
+ * @method
+ * @member CKEDITOR.editor
+ * @param {Boolean} [restore] If set to `true`, the selection is
+ * restored back to the selection saved earlier by using the
+ * {@link CKEDITOR.dom.selection#lock} method.
+ */
+ CKEDITOR.editor.prototype.unlockSelection = function( restore ) {
+ var sel = this._.savedSelection;
+ if ( sel ) {
+ sel.unlock( restore );
+ delete this._.savedSelection;
+ return true;
+ }
+
+ return false;
+ };
+
+ /**
+ * @method
+ * @member CKEDITOR.editor
+ * @todo
+ */
+ CKEDITOR.editor.prototype.forceNextSelectionCheck = function() {
+ delete this._.selectionPreviousPath;
+ };
+
+ /**
+ * Gets the current selection in context of the document's body element.
+ *
+ * var selection = CKEDITOR.instances.editor1.document.getSelection();
+ * alert( selection.getType() );
+ *
+ * @method
+ * @member CKEDITOR.dom.document
+ * @returns {CKEDITOR.dom.selection} A selection object.
+ */
+ CKEDITOR.dom.document.prototype.getSelection = function() {
+ return new CKEDITOR.dom.selection( this );
+ };
+
+ /**
+ * Select this range as the only one with {@link CKEDITOR.dom.selection#selectRanges}.
+ *
+ * @method
+ * @returns {CKEDITOR.dom.selection}
+ * @member CKEDITOR.dom.range
+ */
+ CKEDITOR.dom.range.prototype.select = function() {
+ var sel = this.root instanceof CKEDITOR.editable ? this.root.editor.getSelection() : new CKEDITOR.dom.selection( this.root );
+
+ sel.selectRanges( [ this ] );
+
+ return sel;
+ };
+
+ /**
+ * No selection.
+ *
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
+ * alert( 'Nothing is selected' );
+ *
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
+ */
+ CKEDITOR.SELECTION_NONE = 1;
+
+ /**
+ * A text or a collapsed selection.
+ *
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
+ * alert( 'A text is selected' );
+ *
+ * @readonly
+ * @property {Number} [=2]
+ * @member CKEDITOR
+ */
+ CKEDITOR.SELECTION_TEXT = 2;
+
+ /**
+ * Element selection.
+ *
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
+ * alert( 'An element is selected' );
+ *
+ * @readonly
+ * @property {Number} [=3]
+ * @member CKEDITOR
+ */
+ CKEDITOR.SELECTION_ELEMENT = 3;
+
+ var isMSSelection = typeof window.getSelection != 'function';
+
+ /**
+ * Manipulates the selection within a DOM element, if the current browser selection
+ * spans outside of the element, an empty selection object is returned.
+ *
+ * var sel = new CKEDITOR.dom.selection( CKEDITOR.document );
+ *
+ * @class
+ * @constructor Creates a selection class instance.
+ * @param {CKEDITOR.dom.document} target The DOM document/element that the DOM selection
+ * is restrained to, only selection spans within the target element is considered as valid.
+ */
+ CKEDITOR.dom.selection = function( target ) {
+ var isElement = target instanceof CKEDITOR.dom.element;
+ this.document = target instanceof CKEDITOR.dom.document ? target : target.getDocument();
+ this.root = isElement ? target : this.document.getBody();
+ this.isLocked = 0;
+ this._ = {
+ cache: {}
+ };
+
+ // On WebKit, it may happen that we've already have focus
+ // on the editable element while still having no selection
+ // available. We normalize it here by replicating the
+ // behavior of other browsers.
+ if ( CKEDITOR.env.webkit ) {
+ var sel = this.document.getWindow().$.getSelection();
+ if ( sel.type == 'None' && this.document.getActive().equals( this.root ) || sel.type == 'Caret' && sel.anchorNode.nodeType == CKEDITOR.NODE_DOCUMENT ) {
+ var range = new CKEDITOR.dom.range( this.root );
+ range.moveToPosition( this.root, CKEDITOR.POSITION_AFTER_START );
+ var nativeRange = this.document.$.createRange();
+ nativeRange.setStart( range.startContainer.$, range.startOffset );
+ nativeRange.collapse( 1 );
+ sel.addRange( nativeRange );
+ }
+ }
+
+ // Check whether browser focus is really inside of the editable element.
+
+ var nativeSel = this.getNative(),
+ rangeParent;
+
+ if ( nativeSel ) {
+ if ( nativeSel.getRangeAt ) {
+ range = nativeSel.rangeCount && nativeSel.getRangeAt( 0 );
+ rangeParent = range && new CKEDITOR.dom.node( range.commonAncestorContainer );
+ }
+ // For old IEs.
+ else {
+ // Sometimes, mostly when selection is close to the table or hr,
+ // IE throws "Unspecified error".
+ try {
+ range = nativeSel.createRange();
+ } catch ( err ) {}
+ rangeParent = range && CKEDITOR.dom.element.get( range.item && range.item( 0 ) || range.parentElement() );
+ }
+ }
+
+ // Selection out of concerned range, empty the selection.
+ if ( !( rangeParent && ( this.root.equals( rangeParent ) || this.root.contains( rangeParent ) ) ) ) {
+ this._.cache.type = CKEDITOR.SELECTION_NONE;
+ this._.cache.startElement = null;
+ this._.cache.selectedElement = null;
+ this._.cache.selectedText = '';
+ this._.cache.ranges = new CKEDITOR.dom.rangeList();
+ }
+
+ return this;
+ };
+
+ var styleObjectElements = { img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1 };
+
+ CKEDITOR.dom.selection.prototype = {
+ /**
+ * Gets the native selection object from the browser.
+ *
+ * var selection = editor.getSelection().getNative();
+ *
+ * @returns {Object} The native browser selection object.
+ */
+ getNative: function() {
+ if ( this._.cache.nativeSel !== undefined )
+ return this._.cache.nativeSel;
+
+ return ( this._.cache.nativeSel = isMSSelection ? this.document.$.selection : this.document.getWindow().$.getSelection() );
+ },
+
+ /**
+ * Gets the type of the current selection. The following values are
+ * available:
+ *
+ * * {@link CKEDITOR#SELECTION_NONE} (1): No selection.
+ * * {@link CKEDITOR#SELECTION_TEXT} (2): A text or a collapsed selection is selected.
+ * * {@link CKEDITOR#SELECTION_ELEMENT} (3): An element is selected.
+ *
+ * Example:
+ *
+ * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
+ * alert( 'A text is selected' );
+ *
+ * @method
+ * @returns {Number} One of the following constant values: {@link CKEDITOR#SELECTION_NONE},
+ * {@link CKEDITOR#SELECTION_TEXT} or {@link CKEDITOR#SELECTION_ELEMENT}.
+ */
+ getType: isMSSelection ?
+ function() {
+ var cache = this._.cache;
+ if ( cache.type )
+ return cache.type;
+
+ var type = CKEDITOR.SELECTION_NONE;
+
+ try {
+ var sel = this.getNative(),
+ ieType = sel.type;
+
+ if ( ieType == 'Text' )
+ type = CKEDITOR.SELECTION_TEXT;
+
+ if ( ieType == 'Control' )
+ type = CKEDITOR.SELECTION_ELEMENT;
+
+ // It is possible that we can still get a text range
+ // object even when type == 'None' is returned by IE.
+ // So we'd better check the object returned by
+ // createRange() rather than by looking at the type.
+ if ( sel.createRange().parentElement() )
+ type = CKEDITOR.SELECTION_TEXT;
+ } catch ( e ) {}
+
+ return ( cache.type = type );
+ } : function() {
+ var cache = this._.cache;
+ if ( cache.type )
+ return cache.type;
+
+ var type = CKEDITOR.SELECTION_TEXT;
+
+ var sel = this.getNative();
+
+ if ( !( sel && sel.rangeCount ) )
+ type = CKEDITOR.SELECTION_NONE;
+ else if ( sel.rangeCount == 1 ) {
+ // Check if the actual selection is a control (IMG,
+ // TABLE, HR, etc...).
+
+ var range = sel.getRangeAt( 0 ),
+ startContainer = range.startContainer;
+
+ if ( startContainer == range.endContainer && startContainer.nodeType == 1 && ( range.endOffset - range.startOffset ) == 1 && styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] ) {
+ type = CKEDITOR.SELECTION_ELEMENT;
+ }
+ }
+
+ return ( cache.type = type );
+ },
+
+ /**
+ * Retrieves the {@link CKEDITOR.dom.range} instances that represent the current selection.
+ *
+ * Note: Some browsers return multiple ranges even for a continuous selection. Firefox, for example, returns
+ * one range for each table cell when one or more table rows are selected.
+ *
+ * var ranges = selection.getRanges();
+ * alert( ranges.length );
+ *
+ * @method
+ * @param {Boolean} [onlyEditables] If set to `true`, this function retrives editable ranges only.
+ * @returns {Array} Range instances that represent the current selection.
+ */
+ getRanges: (function() {
+ var func = isMSSelection ? ( function() {
+ function getNodeIndex( node ) {
+ return new CKEDITOR.dom.node( node ).getIndex();
+ }
+
+ // Finds the container and offset for a specific boundary
+ // of an IE range.
+ var getBoundaryInformation = function( range, start ) {
+ // Creates a collapsed range at the requested boundary.
+ range = range.duplicate();
+ range.collapse( start );
+
+ // Gets the element that encloses the range entirely.
+ var parent = range.parentElement(),
+ doc = parent.ownerDocument;
+
+ // Empty parent element, e.g. <i>^</i>
+ if ( !parent.hasChildNodes() )
+ return { container: parent, offset: 0 };
+
+ var siblings = parent.children,
+ child, sibling,
+ testRange = range.duplicate(),
+ startIndex = 0,
+ endIndex = siblings.length - 1,
+ index = -1,
+ position, distance, container;
+
+ // Binary search over all element childs to test the range to see whether
+ // range is right on the boundary of one element.
+ while ( startIndex <= endIndex ) {
+ index = Math.floor( ( startIndex + endIndex ) / 2 );
+ child = siblings[ index ];
+ testRange.moveToElementText( child );
+ position = testRange.compareEndPoints( 'StartToStart', range );
+
+ if ( position > 0 )
+ endIndex = index - 1;
+ else if ( position < 0 )
+ startIndex = index + 1;
+ else {
+ // IE9 report wrong measurement with compareEndPoints when range anchors between two BRs.
+ // e.g. <p>text<br />^<br /></p> (#7433)
+ if ( CKEDITOR.env.ie9Compat && child.tagName == 'BR' ) {
+ // "Fall back" to w3c selection.
+ var sel = doc.defaultView.getSelection();
+ return {
+ container: sel[ start ? 'anchorNode' : 'focusNode' ],
+ offset: sel[ start ? 'anchorOffset' : 'focusOffset' ] };
+ } else
+ return { container: parent, offset: getNodeIndex( child ) };
+ }
+ }
+
+ // All childs are text nodes,
+ // or to the right hand of test range are all text nodes. (#6992)
+ if ( index == -1 || index == siblings.length - 1 && position < 0 ) {
+ // Adapt test range to embrace the entire parent contents.
+ testRange.moveToElementText( parent );
+ testRange.setEndPoint( 'StartToStart', range );
+
+ // IE report line break as CRLF with range.text but
+ // only LF with textnode.nodeValue, normalize them to avoid
+ // breaking character counting logic below. (#3949)
+ distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
+
+ siblings = parent.childNodes;
+
+ // Actual range anchor right beside test range at the boundary of text node.
+ if ( !distance ) {
+ child = siblings[ siblings.length - 1 ];
+
+ if ( child.nodeType != CKEDITOR.NODE_TEXT )
+ return { container: parent, offset: siblings.length };
+ else
+ return { container: child, offset: child.nodeValue.length };
+ }
+
+ // Start the measuring until distance overflows, meanwhile count the text nodes.
+ var i = siblings.length;
+ while ( distance > 0 && i > 0 ) {
+ sibling = siblings[ --i ];
+ if ( sibling.nodeType == CKEDITOR.NODE_TEXT ) {
+ container = sibling;
+ distance -= sibling.nodeValue.length;
+ }
+ }
+
+ return { container: container, offset: -distance };
+ }
+ // Test range was one offset beyond OR behind the anchored text node.
+ else {
+ // Adapt one side of test range to the actual range
+ // for measuring the offset between them.
+ testRange.collapse( position > 0 ? true : false );
+ testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );
+
+ // IE report line break as CRLF with range.text but
+ // only LF with textnode.nodeValue, normalize them to avoid
+ // breaking character counting logic below. (#3949)
+ distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
+
+ // Actual range anchor right beside test range at the inner boundary of text node.
+ if ( !distance )
+ return { container: parent, offset: getNodeIndex( child ) + ( position > 0 ? 0 : 1 ) };
+
+ // Start the measuring until distance overflows, meanwhile count the text nodes.
+ while ( distance > 0 ) {
+ try {
+ sibling = child[ position > 0 ? 'previousSibling' : 'nextSibling' ];
+ if ( sibling.nodeType == CKEDITOR.NODE_TEXT ) {
+ distance -= sibling.nodeValue.length;
+ container = sibling;
+ }
+ child = sibling;
+ }
+ // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
+ catch ( e ) {
+ return { container: parent, offset: getNodeIndex( child ) };
+ }
+ }
+
+ return { container: container, offset: position > 0 ? -distance : container.nodeValue.length + distance };
+ }
+ };
+
+ return function() {
+ // IE doesn't have range support (in the W3C way), so we
+ // need to do some magic to transform selections into
+ // CKEDITOR.dom.range instances.
+
+ var sel = this.getNative(),
+ nativeRange = sel && sel.createRange(),
+ type = this.getType(),
+ range;
+
+ if ( !sel )
+ return [];
+
+ if ( type == CKEDITOR.SELECTION_TEXT ) {
+ range = new CKEDITOR.dom.range( this.root );
+
+ var boundaryInfo = getBoundaryInformation( nativeRange, true );
+ range.setStart( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
+
+ boundaryInfo = getBoundaryInformation( nativeRange );
+ range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
+
+ // Correct an invalid IE range case on empty list item. (#5850)
+ if ( range.endContainer.getPosition( range.startContainer ) & CKEDITOR.POSITION_PRECEDING && range.endOffset <= range.startContainer.getIndex() ) {
+ range.collapse();
+ }
+
+ return [ range ];
+ } else if ( type == CKEDITOR.SELECTION_ELEMENT ) {
+ var retval = [];
+
+ for ( var i = 0; i < nativeRange.length; i++ ) {
+ var element = nativeRange.item( i ),
+ parentElement = element.parentNode,
+ j = 0;
+
+ range = new CKEDITOR.dom.range( this.root );
+
+ for ( ; j < parentElement.childNodes.length && parentElement.childNodes[ j ] != element; j++ ) {
+ /*jsl:pass*/
+ }
+
+ range.setStart( new CKEDITOR.dom.node( parentElement ), j );
+ range.setEnd( new CKEDITOR.dom.node( parentElement ), j + 1 );
+ retval.push( range );
+ }
+
+ return retval;
+ }
+
+ return [];
+ };
+ })() : function() {
+
+ // On browsers implementing the W3C range, we simply
+ // tranform the native ranges in CKEDITOR.dom.range
+ // instances.
+
+ var ranges = [],
+ range,
+ sel = this.getNative();
+
+ if ( !sel )
+ return ranges;
+
+ for ( var i = 0; i < sel.rangeCount; i++ ) {
+ var nativeRange = sel.getRangeAt( i );
+
+ range = new CKEDITOR.dom.range( this.root );
+
+ range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
+ range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
+ ranges.push( range );
+ }
+ return ranges;
+ };
+
+ return function( onlyEditables ) {
+ var cache = this._.cache;
+ if ( cache.ranges && !onlyEditables )
+ return cache.ranges;
+ else if ( !cache.ranges )
+ cache.ranges = new CKEDITOR.dom.rangeList( func.call( this ) );
+
+ // Split range into multiple by read-only nodes.
+ if ( onlyEditables ) {
+ var ranges = cache.ranges;
+ for ( var i = 0; i < ranges.length; i++ ) {
+ var range = ranges[ i ];
+
+ // Drop range spans inside one ready-only node.
+ var parent = range.getCommonAncestor();
+ if ( parent.isReadOnly() )
+ ranges.splice( i, 1 );
+
+ if ( range.collapsed )
+ continue;
+
+ // Range may start inside a non-editable element,
+ // replace the range start after it.
+ if ( range.startContainer.isReadOnly() ) {
+ var current = range.startContainer,
+ isElement;
+
+ while ( current ) {
+ isElement = current.type == CKEDITOR.NODE_ELEMENT;
+
+ if ( ( isElement && current.is( 'body' ) ) || !current.isReadOnly() )
+ break;
+
+ if ( isElement && current.getAttribute( 'contentEditable' ) == 'false' )
+ range.setStartAfter( current );
+
+ current = current.getParent();
+ }
+ }
+
+ var startContainer = range.startContainer,
+ endContainer = range.endContainer,
+ startOffset = range.startOffset,
+ endOffset = range.endOffset,
+ walkerRange = range.clone();
+
+ // Enlarge range start/end with text node to avoid walker
+ // being DOM destructive, it doesn't interfere our checking
+ // of elements below as well.
+ if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT ) {
+ if ( startOffset >= startContainer.getLength() )
+ walkerRange.setStartAfter( startContainer );
+ else
+ walkerRange.setStartBefore( startContainer );
+ }
+
+ if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT ) {
+ if ( !endOffset )
+ walkerRange.setEndBefore( endContainer );
+ else
+ walkerRange.setEndAfter( endContainer );
+ }
+
+ // Looking for non-editable element inside the range.
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = function( node ) {
+ if ( node.type == CKEDITOR.NODE_ELEMENT && node.isReadOnly() ) {
+ var newRange = range.clone();
+ range.setEndBefore( node );
+
+ // Drop collapsed range around read-only elements,
+ // it make sure the range list empty when selecting
+ // only non-editable elements.
+ if ( range.collapsed )
+ ranges.splice( i--, 1 );
+
+ // Avoid creating invalid range.
+ if ( !( node.getPosition( walkerRange.endContainer ) & CKEDITOR.POSITION_CONTAINS ) ) {
+ newRange.setStartAfter( node );
+ if ( !newRange.collapsed )
+ ranges.splice( i + 1, 0, newRange );
+ }
+
+ return true;
+ }
+
+ return false;
+ };
+
+ walker.next();
+ }
+ }
+
+ return cache.ranges;
+ };
+ })(),
+
+ /**
+ * Gets the DOM element in which the selection starts.
+ *
+ * var element = editor.getSelection().getStartElement();
+ * alert( element.getName() );
+ *
+ * @returns {CKEDITOR.dom.element} The element at the beginning of the selection.
+ */
+ getStartElement: function() {
+ var cache = this._.cache;
+ if ( cache.startElement !== undefined )
+ return cache.startElement;
+
+ var node;
+
+ switch ( this.getType() ) {
+ case CKEDITOR.SELECTION_ELEMENT:
+ return this.getSelectedElement();
+
+ case CKEDITOR.SELECTION_TEXT:
+
+ var range = this.getRanges()[ 0 ];
+
+ if ( range ) {
+ if ( !range.collapsed ) {
+ range.optimize();
+
+ // Decrease the range content to exclude particial
+ // selected node on the start which doesn't have
+ // visual impact. ( #3231 )
+ while ( 1 ) {
+ var startContainer = range.startContainer,
+ startOffset = range.startOffset;
+ // Limit the fix only to non-block elements.(#3950)
+ if ( startOffset == ( startContainer.getChildCount ? startContainer.getChildCount() : startContainer.getLength() ) && !startContainer.isBlockBoundary() )
+ range.setStartAfter( startContainer );
+ else
+ break;
+ }
+
+ node = range.startContainer;
+
+ if ( node.type != CKEDITOR.NODE_ELEMENT )
+ return node.getParent();
+
+ node = node.getChild( range.startOffset );
+
+ if ( !node || node.type != CKEDITOR.NODE_ELEMENT )
+ node = range.startContainer;
+ else {
+ var child = node.getFirst();
+ while ( child && child.type == CKEDITOR.NODE_ELEMENT ) {
+ node = child;
+ child = child.getFirst();
+ }
+ }
+ } else {
+ node = range.startContainer;
+ if ( node.type != CKEDITOR.NODE_ELEMENT )
+ node = node.getParent();
+ }
+
+ node = node.$;
+ }
+ }
+
+ return cache.startElement = ( node ? new CKEDITOR.dom.element( node ) : null );
+ },
+
+ /**
+ * Gets the currently selected element.
+ *
+ * var element = editor.getSelection().getSelectedElement();
+ * alert( element.getName() );
+ *
+ * @returns {CKEDITOR.dom.element} The selected element. Null if no
+ * selection is available or the selection type is not {@link CKEDITOR#SELECTION_ELEMENT}.
+ */
+ getSelectedElement: function() {
+ var cache = this._.cache;
+ if ( cache.selectedElement !== undefined )
+ return cache.selectedElement;
+
+ var self = this;
+
+ var node = CKEDITOR.tools.tryThese(
+ // Is it native IE control type selection?
+ function() {
+ return self.getNative().createRange().item( 0 );
+ },
+ // Figure it out by checking if there's a single enclosed
+ // node of the range.
+ function() {
+ var range = self.getRanges()[ 0 ],
+ enclosed, selected;
+
+ // Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
+ for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() ) && ( enclosed.type == CKEDITOR.NODE_ELEMENT ) && styleObjectElements[ enclosed.getName() ] && ( selected = enclosed ) ); i-- ) {
+ // Then check any deep wrapped element, e.g. [<b><i><img /></i></b>]
+ range.shrink( CKEDITOR.SHRINK_ELEMENT );
+ }
+
+ return selected.$;
+ });
+
+ return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
+ },
+
+ /**
+ * Retrieves the text contained within the range. An empty string is returned for non-text selection.
+ *
+ * var text = editor.getSelection().getSelectedText();
+ * alert( text );
+ *
+ * @since 3.6.1
+ * @returns {String} A string of text within the current selection.
+ */
+ getSelectedText: function() {
+ var cache = this._.cache;
+ if ( cache.selectedText !== undefined )
+ return cache.selectedText;
+
+ var nativeSel = this.getNative(),
+ text = isMSSelection ? nativeSel.type == 'Control' ? '' : nativeSel.createRange().text : nativeSel.toString();
+
+ return ( cache.selectedText = text );
+ },
+
+ /**
+ * Locks the selection made in the editor in order to make it possible to
+ * manipulate it without browser interference. A locked selection is
+ * cached and remains unchanged until it is released with the {@link #unlock} method.
+ *
+ * editor.getSelection().lock();
+ */
+ lock: function() {
+ // Call all cacheable function.
+ this.getRanges();
+ this.getStartElement();
+ this.getSelectedElement();
+ this.getSelectedText();
+
+ // The native selection is not available when locked.
+ this._.cache.nativeSel = null;
+
+ this.isLocked = 1;
+ },
+
+ /**
+ * @todo
+ */
+ unlock: function( restore ) {
+ if ( !this.isLocked )
+ return;
+
+ if ( restore ) {
+ var selectedElement = this.getSelectedElement(),
+ ranges = !selectedElement && this.getRanges();
+ }
+
+ this.isLocked = 0;
+ this.reset();
+
+ if ( restore ) {
+ // Saved selection may be outdated (e.g. anchored in offline nodes).
+ // Avoid getting broken by such.
+ var common = selectedElement || ranges[ 0 ].getCommonAncestor();
+ if ( !( common && common.getAscendant( 'body', 1 ) ) )
+ return;
+
+ if ( selectedElement )
+ this.selectElement( selectedElement );
+ else
+ this.selectRanges( ranges );
+ }
+ },
+
+ /**
+ * Clears the selection cache.
+ *
+ * editor.getSelection().reset();
+ */
+ reset: function() {
+ this._.cache = {};
+ },
+
+ /**
+ * Makes the current selection of type {@link CKEDITOR#SELECTION_ELEMENT} by enclosing the specified element.
+ *
+ * var element = editor.document.getById( 'sampleElement' );
+ * editor.getSelection().selectElement( element );
+ *
+ * @param {CKEDITOR.dom.element} element The element to enclose in the selection.
+ */
+ selectElement: function( element ) {
+ var range = new CKEDITOR.dom.range( this.root );
+ range.setStartBefore( element );
+ range.setEndAfter( element );
+ this.selectRanges( [ range ] );
+ },
+
+ /**
+ * Clears the original selection and adds the specified ranges to the document selection.
+ *
+ * // Move selection to the end of the editable element.
+ * var range = editor.createRange();
+ * range.moveToPosition( range.root, CKEDITOR.POSITION_BEFORE_END );
+ * editor.getSelection().selectRanges( [ ranges ] );
+ *
+ * @param {Array} ranges An array of {@link CKEDITOR.dom.range} instances
+ * representing ranges to be added to the document.
+ */
+ selectRanges: function( ranges ) {
+ if ( !ranges.length )
+ return;
+
+ // Refresh the locked selection.
+ if ( this.isLocked ) {
+ // making a new DOM selection will force the focus on editable in certain situation,
+ // we have to save the currently focused element for later recovery.
+ var focused = CKEDITOR.document.getActive();
+ this.unlock();
+ this.selectRanges( ranges );
+ this.lock();
+ // Return to the previously focused element.
+ !focused.equals( this.root ) && focused.focus();
+ return;
+ }
+
+ if ( isMSSelection ) {
+ var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
+ fillerTextRegex = /\ufeff|\u00a0/,
+ nonCells = { table:1,tbody:1,tr:1 };
+
+ if ( ranges.length > 1 ) {
+ // IE doesn't accept multiple ranges selection, so we join all into one.
+ var last = ranges[ ranges.length - 1 ];
+ ranges[ 0 ].setEnd( last.endContainer, last.endOffset );
+ }
+
+ var range = ranges[ 0 ];
+ var collapsed = range.collapsed,
+ isStartMarkerAlone, dummySpan, ieRange;
+
+ // Try to make a object selection, be careful with selecting phase element in IE
+ // will breaks the selection in non-framed environment.
+ var selected = range.getEnclosedNode();
+ if ( selected && selected.type == CKEDITOR.NODE_ELEMENT && selected.getName() in styleObjectElements && !( selected.is( 'a' ) && selected.getText() ) ) {
+ try {
+ ieRange = selected.$.createControlRange();
+ ieRange.addElement( selected.$ );
+ ieRange.select();
+ return;
+ } catch ( er ) {}
+ }
+
+ // IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
+ // <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
+ if ( range.startContainer.type == CKEDITOR.NODE_ELEMENT && range.startContainer.getName() in nonCells || range.endContainer.type == CKEDITOR.NODE_ELEMENT && range.endContainer.getName() in nonCells ) {
+ range.shrink( CKEDITOR.NODE_ELEMENT, true );
+ }
+
+ var bookmark = range.createBookmark();
+
+ // Create marker tags for the start and end boundaries.
+ var startNode = bookmark.startNode;
+
+ var endNode;
+ if ( !collapsed )
+ endNode = bookmark.endNode;
+
+ // Create the main range which will be used for the selection.
+ ieRange = range.document.$.body.createTextRange();
+
+ // Position the range at the start boundary.
+ ieRange.moveToElementText( startNode.$ );
+ ieRange.moveStart( 'character', 1 );
+
+ if ( endNode ) {
+ // Create a tool range for the end.
+ var ieRangeEnd = range.document.$.body.createTextRange();
+
+ // Position the tool range at the end.
+ ieRangeEnd.moveToElementText( endNode.$ );
+
+ // Move the end boundary of the main range to match the tool range.
+ ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
+ ieRange.moveEnd( 'character', -1 );
+ } else {
+ // The isStartMarkerAlone logic comes from V2. It guarantees that the lines
+ // will expand and that the cursor will be blinking on the right place.
+ // Actually, we are using this flag just to avoid using this hack in all
+ // situations, but just on those needed.
+ var next = startNode.getNext( notWhitespaces );
+ var inPre = startNode.hasAscendant( 'pre' );
+ isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) ) // already a filler there?
+ && ( inPre || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
+
+ // Append a temporary <span></span> before the selection.
+ // This is needed to avoid IE destroying selections inside empty
+ // inline elements, like <b></b> (#253).
+ // It is also needed when placing the selection right after an inline
+ // element to avoid the selection moving inside of it.
+ dummySpan = range.document.createElement( 'span' );
+ dummySpan.setHtml( '' ); // Zero Width No-Break Space (U+FEFF). See #1359.
+ dummySpan.insertBefore( startNode );
+
+ if ( isStartMarkerAlone ) {
+ // To expand empty blocks or line spaces after <br>, we need
+ // instead to have any char, which will be later deleted using the
+ // selection.
+ // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
+ range.document.createText( '\ufeff' ).insertBefore( startNode );
+ }
+ }
+
+ // Remove the markers (reset the position, because of the changes in the DOM tree).
+ range.setStartBefore( startNode );
+ startNode.remove();
+
+ if ( collapsed ) {
+ if ( isStartMarkerAlone ) {
+ // Move the selection start to include the temporary \ufeff.
+ ieRange.moveStart( 'character', -1 );
+
+ ieRange.select();
+
+ // Remove our temporary stuff.
+ range.document.$.selection.clear();
+ } else
+ ieRange.select();
+
+ range.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
+ dummySpan.remove();
+ } else {
+ range.setEndBefore( endNode );
+ endNode.remove();
+ ieRange.select();
+ }
+ } else {
+ var sel = this.getNative();
+
+ // getNative() returns null if iframe is "display:none" in FF. (#6577)
+ if ( !sel )
+ return;
+
+ // Opera: The above hack work around a *visually wrong* text selection that
+ // happens in certain situation. (#6874, #9447)
+ if ( CKEDITOR.env.opera ) {
+ var nativeRng = this.document.$.createRange();
+ nativeRng.selectNodeContents( this.root.$ );
+ sel.addRange( nativeRng );
+ }
+
+ this.removeAllRanges();
+
+ for ( var i = 0; i < ranges.length; i++ ) {
+ // Joining sequential ranges introduced by
+ // readonly elements protection.
+ if ( i < ranges.length - 1 ) {
+ var left = ranges[ i ],
+ right = ranges[ i + 1 ],
+ between = left.clone();
+ between.setStart( left.endContainer, left.endOffset );
+ between.setEnd( right.startContainer, right.startOffset );
+
+ // Don't confused by Firefox adjancent multi-ranges
+ // introduced by table cells selection.
+ if ( !between.collapsed ) {
+ between.shrink( CKEDITOR.NODE_ELEMENT, true );
+ var ancestor = between.getCommonAncestor(),
+ enclosed = between.getEnclosedNode();
+
+ // The following cases has to be considered:
+ // 1. <span contenteditable="false">[placeholder]</span>
+ // 2. <input contenteditable="false" type="radio"/> (#6621)
+ if ( ancestor.isReadOnly() || enclosed && enclosed.isReadOnly() ) {
+ right.setStart( left.startContainer, left.startOffset );
+ ranges.splice( i--, 1 );
+ continue;
+ }
+ }
+ }
+
+ range = ranges[ i ];
+
+ var nativeRange = this.document.$.createRange();
+ var startContainer = range.startContainer;
+
+ // In Opera, we have some cases when a collapsed text selection cursor will be moved out of the
+ // anchor node:
+ // 1. Inside of any empty inline. (#4657)
+ // 2. In adjacent to any inline element.
+ if ( CKEDITOR.env.opera && range.collapsed && startContainer.type == CKEDITOR.NODE_ELEMENT ) {
+
+ var leftSib = startContainer.getChild( range.startOffset - 1 ),
+ rightSib = startContainer.getChild( range.startOffset );
+
+ if ( !leftSib && !rightSib && startContainer.is( CKEDITOR.dtd.$removeEmpty ) ||
+ leftSib && leftSib.type == CKEDITOR.NODE_ELEMENT ||
+ rightSib && rightSib.type == CKEDITOR.NODE_ELEMENT ) {
+ range.insertNode( this.document.createText( '' ) );
+ range.collapse( 1 );
+ }
+ }
+
+ if ( range.collapsed && CKEDITOR.env.webkit && rangeRequiresFix( range ) ) {
+ // Append a zero-width space so WebKit will not try to
+ // move the selection by itself (#1272).
+ var fillingChar = createFillingChar( this.root );
+ range.insertNode( fillingChar );
+
+ next = fillingChar.getNext();
+
+ // If the filling char is followed by a <br>, whithout
+ // having something before it, it'll not blink.
+ // Let's remove it in this case.
+ if ( next && !fillingChar.getPrevious() && next.type == CKEDITOR.NODE_ELEMENT && next.getName() == 'br' ) {
+ removeFillingChar( this.root );
+ range.moveToPosition( next, CKEDITOR.POSITION_BEFORE_START );
+ } else
+ range.moveToPosition( fillingChar, CKEDITOR.POSITION_AFTER_END );
+ }
+
+ nativeRange.setStart( range.startContainer.$, range.startOffset );
+
+ try {
+ nativeRange.setEnd( range.endContainer.$, range.endOffset );
+ } catch ( e ) {
+ // There is a bug in Firefox implementation (it would be too easy
+ // otherwise). The new start can't be after the end (W3C says it can).
+ // So, let's create a new range and collapse it to the desired point.
+ if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 ) {
+ range.collapse( 1 );
+ nativeRange.setEnd( range.endContainer.$, range.endOffset );
+ } else
+ throw e;
+ }
+
+ // Select the range.
+ sel.addRange( nativeRange );
+ }
+ }
+
+ this.reset();
+
+ // Fakes the IE DOM event "selectionchange" on editable.
+ this.root.fire( 'selectionchange' );
+ },
+
+ /**
+ * Creates a bookmark for each range of this selection (from {@link #getRanges})
+ * by calling the {@link CKEDITOR.dom.range#createBookmark} method,
+ * with extra care taken to avoid interference among those ranges. The arguments
+ * received are the same as with the underlying range method.
+ *
+ * var bookmarks = editor.getSelection().createBookmarks();
+ *
+ * @returns {Array} Array of bookmarks for each range.
+ */
+ createBookmarks: function( serializable ) {
+ return this.getRanges().createBookmarks( serializable );
+ },
+
+ /**
+ * Creates a bookmark for each range of this selection (from {@link #getRanges})
+ * by calling the {@link CKEDITOR.dom.range#createBookmark2} method,
+ * with extra care taken to avoid interference among those ranges. The arguments
+ * received are the same as with the underlying range method.
+ *
+ * var bookmarks = editor.getSelection().createBookmarks2();
+ *
+ * @returns {Array} Array of bookmarks for each range.
+ */
+ createBookmarks2: function( normalized ) {
+ return this.getRanges().createBookmarks2( normalized );
+ },
+
+ /**
+ * Selects the virtual ranges denoted by the bookmarks by calling {@link #selectRanges}.
+ *
+ * var bookmarks = editor.getSelection().createBookmarks();
+ * editor.getSelection().selectBookmarks( bookmarks );
+ *
+ * @param {Array} bookmarks The bookmarks representing ranges to be selected.
+ * @returns {CKEDITOR.dom.selection} This selection object, after the ranges were selected.
+ */
+ selectBookmarks: function( bookmarks ) {
+ var ranges = [];
+ for ( var i = 0; i < bookmarks.length; i++ ) {
+ var range = new CKEDITOR.dom.range( this.root );
+ range.moveToBookmark( bookmarks[ i ] );
+ ranges.push( range );
+ }
+ this.selectRanges( ranges );
+ return this;
+ },
+
+ /**
+ * Retrieves the common ancestor node of the first range and the last range.
+ *
+ * var ancestor = editor.getSelection().getCommonAncestor();
+ *
+ * @returns {CKEDITOR.dom.element} The common ancestor of the selection.
+ */
+ getCommonAncestor: function() {
+ var ranges = this.getRanges(),
+ startNode = ranges[ 0 ].startContainer,
+ endNode = ranges[ ranges.length - 1 ].endContainer;
+ return startNode.getCommonAncestor( endNode );
+ },
+
+ /**
+ * Moves the scrollbar to the starting position of the current selection.
+ *
+ * editor.getSelection().scrollIntoView();
+ */
+ scrollIntoView: function() {
+
+ // Scrolls the first range into view.
+ if ( this.type != CKEDITOR.SELECTION_NONE )
+ this.getRanges()[ 0 ].scrollIntoView();
+ },
+
+ /**
+ * Remove all the selection ranges from the document.
+ */
+ removeAllRanges: function() {
+ var nativ = this.getNative();
+
+ try { nativ && nativ[ isMSSelection ? 'empty' : 'removeAllRanges' ](); }
+ catch(er){}
+
+ this.reset();
+ }
+ };
+
+})();
diff --git a/devel/third-party/ckeditor/core/skin.js b/devel/third-party/ckeditor/core/skin.js
new file mode 100644
index 0000000..e6cbf66
--- /dev/null
+++ b/devel/third-party/ckeditor/core/skin.js
@@ -0,0 +1,321 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.skin} class, which is used to manage skin parts.
+ */
+
+(function() {
+ var cssLoaded = {};
+
+ function getName() {
+ return CKEDITOR.skinName.split( ',' )[ 0 ];
+ }
+
+ function getConfigPath() {
+ return CKEDITOR.getUrl( CKEDITOR.skinName.split( ',' )[ 1 ] || ( 'skins/' + getName() + '/' ) );
+ }
+
+ /**
+ * Manages the loading of skin parts among all editor instances.
+ *
+ * @class
+ * @singleton
+ */
+ CKEDITOR.skin = {
+ /**
+ * Returns the root path of the skin directory.
+ *
+ * @method
+ * @todo
+ */
+ path: getConfigPath,
+
+ /**
+ * Load a skin part onto the page, do nothing if the part is already loaded.
+ *
+ * **Note:** The "editor" part is always auto loaded upon instance creation,
+ * thus this function is mainly used to **lazy load** other part of the skin
+ * which don't have to present until been requested.
+ *
+ * // Load the dialog part.
+ * editor.skin.loadPart( 'dialog' );
+ *
+ * @param {String} part Name of skin part CSS file resides in the skin directory.
+ * @param {Function} fn The provided callback function which is invoked after part is loaded.
+ */
+ loadPart: function( part, fn ) {
+ if ( CKEDITOR.skin.name != getName() ) {
+ CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( getConfigPath() + 'skin.js' ), function() {
+ loadCss( part, fn );
+ });
+ } else
+ loadCss( part, fn );
+ },
+
+ /**
+ * Retrieve the real URL of a (CSS) skin part.
+ *
+ * @param {String} part
+ */
+ getPath: function( part ) {
+ return CKEDITOR.getUrl( getCssPath( part ) );
+ },
+
+ /**
+ * List of registered icons. To add new icons to this list, use {@link #addIcon}.
+ */
+ icons: {},
+
+ /**
+ * Registers an icon.
+ *
+ * @param {String} name The icon name.
+ * @param {String} path The path to reach the icon image file.
+ * @param {Number} [offset] The vertical offset position of the icon, if
+ * available inside a strip image.
+ */
+ addIcon: function( name, path, offset ) {
+ name = name.toLowerCase();
+ if ( !this.icons[ name ] ) {
+ this.icons[ name ] = {
+ path: path,
+ offset: offset || 0
+ };
+ }
+ },
+
+ /**
+ * Get the CSS background styles to be used to render an specific icon.
+ *
+ * @param {String} name The icon name, as registered with {@link #addIcon}.
+ * @param {Boolean} [rtl] Indicates that the RTL version of the icon is
+ * to be used, if available.
+ * @param {String} [overridePath] The path to reach the icon image file. It
+ * overrides the path defined by the named icon, if available, and is
+ * used if the named icon was not registered.
+ * @param {Number} [overrideOffset] The vertical offset position of the
+ * icon. It overrides the offset defined by the named icon, if
+ * available, and is used if the named icon was not registered.
+ */
+ getIconStyle: function( name, rtl, overridePath, overrideOffset ) {
+ var icon, path, offset;
+
+ if ( name ) {
+ name = name.toLowerCase();
+ // If we're in RTL, try to get the RTL version of the icon.
+ if ( rtl )
+ icon = this.icons[ name + '-rtl' ];
+
+ // If not in LTR or no RTL version available, get the generic one.
+ if ( !icon )
+ icon = this.icons[ name ];
+ }
+
+ path = overridePath || ( icon && icon.path ) || '';
+ offset = overrideOffset || ( icon && icon.offset );
+
+ return path &&
+ ( 'background-image:url(' + CKEDITOR.getUrl( path ) + ');background-position:0 ' + offset + 'px;' );
+ }
+ };
+
+ function getCssPath( part ) {
+ // Check for ua-specific version of skin part.
+ var uas = CKEDITOR.skin[ 'ua_' + part ], env = CKEDITOR.env;
+ if ( uas ) {
+
+ // Having versioned UA checked first.
+ uas = uas.split( ',' ).sort( function ( a, b ) { return a > b ? -1 : 1; } );
+
+ // Loop through all ua entries, checking is any of them match the current ua.
+ for ( var i = 0, ua; i < uas.length; i++ ) {
+ ua = uas[ i ];
+
+ if ( env.ie ) {
+ if ( ( ua.replace( /^ie/, '' ) == env.version ) || ( env.quirks && ua == 'iequirks' ) )
+ ua = 'ie';
+ }
+
+ if ( env[ ua ] ) {
+ part += '_' + uas[ i ];
+ break;
+ }
+ }
+ }
+ return CKEDITOR.getUrl( getConfigPath() + part + '.css' );
+ }
+
+ function loadCss( part, callback ) {
+ // Avoid reload.
+ if ( !cssLoaded[ part ] ) {
+ CKEDITOR.document.appendStyleSheet( getCssPath( part ) );
+ cssLoaded[ part ] = 1;
+ }
+
+ // CSS loading should not be blocking.
+ callback && callback();
+ }
+
+ CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
+ /**
+ * @method
+ * @member CKEDITOR.editor
+ * @todo
+ */
+ getUiColor: function() {
+ return this.uiColor;
+ },
+
+ /**
+ * @method
+ * @member CKEDITOR.editor
+ * @todo
+ */
+ setUiColor: function( color ) {
+ var uiStyle = getStylesheet( CKEDITOR.document );
+
+ return ( this.setUiColor = function( color ) {
+ var chameleon = CKEDITOR.skin.chameleon;
+
+ var replace = [ [ uiColorRegexp, color ] ];
+ this.uiColor = color;
+
+ // Update general style.
+ updateStylesheets( [ uiStyle ], chameleon( this, 'editor' ), replace );
+
+ // Update panel styles.
+ updateStylesheets( uiColorMenus, chameleon( this, 'panel' ), replace );
+ }).call( this, color );
+ }
+ });
+
+ var uiColorStylesheetId = 'cke_ui_color',
+ uiColorMenus = [],
+ uiColorRegexp = /\$color/g;
+
+ function getStylesheet( document ) {
+ var node = document.getById( uiColorStylesheetId );
+ if ( !node ) {
+ node = document.getHead().append( 'style' );
+ node.setAttribute( "id", uiColorStylesheetId );
+ node.setAttribute( "type", "text/css" );
+ }
+ return node;
+ }
+
+ function updateStylesheets( styleNodes, styleContent, replace ) {
+ var r, i, content;
+
+ // We have to split CSS declarations for webkit.
+ if ( CKEDITOR.env.webkit ) {
+ styleContent = styleContent.split( '}' ).slice( 0, -1 );
+ for ( i = 0; i < styleContent.length; i++ )
+ styleContent[ i ] = styleContent[ i ].split( '{' );
+ }
+
+ for ( var id = 0; id < styleNodes.length; id++ ) {
+ if ( CKEDITOR.env.webkit ) {
+ for ( i = 0; i < styleContent.length; i++ ) {
+ content = styleContent[ i ][ 1 ];
+ for ( r = 0; r < replace.length; r++ )
+ content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
+
+ styleNodes[ id ].$.sheet.addRule( styleContent[ i ][ 0 ], content );
+ }
+ } else {
+ content = styleContent;
+ for ( r = 0; r < replace.length; r++ )
+ content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
+
+ if ( CKEDITOR.env.ie )
+ styleNodes[ id ].$.styleSheet.cssText += content;
+ else
+ styleNodes[ id ].$.innerHTML += content;
+ }
+ }
+ }
+
+ CKEDITOR.on( 'instanceLoaded', function( evt ) {
+ // The chameleon feature is not for IE quirks.
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
+ return;
+
+ var editor = evt.editor,
+ showCallback = function( event ) {
+ var panel = event.data[ 0 ] || event.data;
+ var iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();
+
+ // Add stylesheet if missing.
+ if ( !iframe.getById( 'cke_ui_color' ) ) {
+ var node = getStylesheet( iframe );
+ uiColorMenus.push( node );
+
+ var color = editor.getUiColor();
+ // Set uiColor for new panel.
+ if ( color ) {
+ updateStylesheets( [ node ], CKEDITOR.skin.chameleon( editor, 'panel' ), [ [ uiColorRegexp, color ] ] );
+ }
+ }
+ };
+
+ editor.on( 'panelShow', showCallback );
+ editor.on( 'menuShow', showCallback );
+
+ // Apply UI color if specified in config.
+ if ( editor.config.uiColor )
+ editor.setUiColor( editor.config.uiColor );
+ });
+})();
+
+/**
+ * List of file names, with each one matches a browser agent string cited from
+ * {@link CKEDITOR.env}, the corresponding skin part file will be loaded in addition
+ * to the "main" skin file for a particular browser.
+ *
+ * **Note:** For each of the defined skin parts must have
+ * the corresponding CSS file with the same name as UA inside of
+ * the skin directory.
+ *
+ * @property ua
+ * @todo type?
+ */
+
+ /**
+ * Current skin name.
+ *
+ * @property {String} name
+ * @todo
+ */
+
+/**
+ * The editor skin name. Note that is is not possible to have editors with
+ * different skin settings in the same page. In such case, just one of the
+ * skins will be used for all editors.
+ *
+ * This is a shortcut to {@link CKEDITOR#skinName}.
+ *
+ * It is possible to install skins outside the default `skin` folder in the
+ * editor installation. In that case, the absolute URL path to that folder
+ * should be provided, separated by a comma (`'skin_name,skin_path'`).
+ *
+ * config.skin = 'moono';
+ *
+ * config.skin = 'myskin,/customstuff/myskin/';
+ *
+ * @cfg {String} skin
+ * @member CKEDITOR.config
+ */
+
+/**
+ * A function that support the chameleon (skin color switch) feature, providing
+ * the skin colors styles update to be apply in runtime.
+ *
+ * **Note:** the embedded `$color` variable is to be substituted by a concrete UI color.
+ *
+ * @method chameleon
+ * @param {String} editor The editor instance upon color changes impact.
+ * @param {String} part Name of the skin part where the color changes take place.
+ */
diff --git a/devel/third-party/ckeditor/core/skins.js b/devel/third-party/ckeditor/core/skins.js
deleted file mode 100644
index b31373e..0000000
--- a/devel/third-party/ckeditor/core/skins.js
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.skins} object, which is used to
- * manage skins loading.
- */
-
-/**
- * Manages skins loading.
- * @namespace
- * @example
- */
-CKEDITOR.skins = (function()
-{
- // Holds the list of loaded skins.
- var loaded = {};
- var preloaded = {};
- var paths = {};
-
- var loadPart = function( editor, skinName, part, callback )
- {
- // Get the skin definition.
- var skinDefinition = loaded[ skinName ];
-
- if ( !editor.skin )
- {
- editor.skin = skinDefinition;
-
- // Trigger init function if any.
- if ( skinDefinition.init )
- skinDefinition.init( editor );
- }
-
- var appendSkinPath = function( fileNames )
- {
- for ( var n = 0 ; n < fileNames.length ; n++ )
- {
- fileNames[ n ] = CKEDITOR.getUrl( paths[ skinName ] + fileNames[ n ] );
- }
- };
-
- function fixCSSTextRelativePath( cssStyleText, baseUrl )
- {
- return cssStyleText.replace( /url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,
- function( match, opener, path, closer )
- {
- if ( /^\/|^\w?:/.test( path ) )
- return match;
- else
- return 'url(' + baseUrl + opener + path + closer + ')';
- } );
- }
-
- // Check if we need to preload images from it.
- if ( !preloaded[ skinName ] )
- {
- var preload = skinDefinition.preload;
- if ( preload && preload.length > 0 )
- {
- appendSkinPath( preload );
- CKEDITOR.imageCacher.load( preload, function()
- {
- preloaded[ skinName ] = 1;
- loadPart( editor, skinName, part, callback );
- } );
- return;
- }
-
- // Mark it as preloaded.
- preloaded[ skinName ] = 1;
- }
-
- // Get the part definition.
- part = skinDefinition[ part ];
- var partIsLoaded = !part || !!part._isLoaded;
-
- // Call the callback immediately if already loaded.
- if ( partIsLoaded )
- callback && callback();
- else
- {
- // Put the callback in a queue.
- var pending = part._pending || ( part._pending = [] );
- pending.push( callback );
-
- // We may have more than one skin part load request. Just the first
- // one must do the loading job.
- if ( pending.length > 1 )
- return;
-
- // Check whether the "css" and "js" properties have been defined
- // for that part.
- var cssIsLoaded = !part.css || !part.css.length;
- var jsIsLoaded = !part.js || !part.js.length;
-
- // This is the function that will trigger the callback calls on
- // load.
- var checkIsLoaded = function()
- {
- if ( cssIsLoaded && jsIsLoaded )
- {
- // Mark the part as loaded.
- part._isLoaded = 1;
-
- // Call all pending callbacks.
- for ( var i = 0 ; i < pending.length ; i++ )
- {
- if ( pending[ i ] )
- pending[ i ]();
- }
- }
- };
-
- // Load the "css" pieces.
- if ( !cssIsLoaded )
- {
- var cssPart = part.css;
-
- if ( CKEDITOR.tools.isArray( cssPart ) )
- {
- appendSkinPath( cssPart );
- for ( var c = 0 ; c < cssPart.length ; c++ )
- CKEDITOR.document.appendStyleSheet( cssPart[ c ] );
- }
- else
- {
- cssPart = fixCSSTextRelativePath(
- cssPart, CKEDITOR.getUrl( paths[ skinName ] ) );
- // Processing Inline CSS part.
- CKEDITOR.document.appendStyleText( cssPart );
- }
-
- part.css = cssPart;
-
- cssIsLoaded = 1;
- }
-
- // Load the "js" pieces.
- if ( !jsIsLoaded )
- {
- appendSkinPath( part.js );
- CKEDITOR.scriptLoader.load( part.js, function()
- {
- jsIsLoaded = 1;
- checkIsLoaded();
- });
- }
-
- // We may have nothing to load, so check it immediately.
- checkIsLoaded();
- }
- };
-
- return /** @lends CKEDITOR.skins */ {
-
- /**
- * Registers a skin definition.
- * @param {String} skinName The skin name.
- * @param {Object} skinDefinition The skin definition.
- * @example
- */
- add : function( skinName, skinDefinition )
- {
- loaded[ skinName ] = skinDefinition;
-
- skinDefinition.skinPath = paths[ skinName ]
- || ( paths[ skinName ] =
- CKEDITOR.getUrl(
- '_source/' + // @Packager.RemoveLine
- 'skins/' + skinName + '/' ) );
- },
-
- /**
- * Loads a skin part. Skins are defined in parts, which are basically
- * separated CSS files. This function is mainly used by the core code and
- * should not have much use out of it.
- * @param {String} skinName The name of the skin to be loaded.
- * @param {String} skinPart The skin part to be loaded. Common skin parts
- * are "editor" and "dialog".
- * @param {Function} [callback] A function to be called once the skin
- * part files are loaded.
- * @example
- */
- load : function( editor, skinPart, callback )
- {
- var skinName = editor.skinName,
- skinPath = editor.skinPath;
-
- if ( loaded[ skinName ] )
- loadPart( editor, skinName, skinPart, callback );
- else
- {
- paths[ skinName ] = skinPath;
- CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( skinPath + 'skin.js' ), function()
- {
- loadPart( editor, skinName, skinPart, callback );
- });
- }
- }
- };
-})();
diff --git a/devel/third-party/ckeditor/core/style.js b/devel/third-party/ckeditor/core/style.js
new file mode 100644
index 0000000..f9b8fea
--- /dev/null
+++ b/devel/third-party/ckeditor/core/style.js
@@ -0,0 +1,1558 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Registers a function to be called whenever the selection position changes in the
+ * editing area. The current state is passed to the function. The possible
+ * states are {@link CKEDITOR#TRISTATE_ON} and {@link CKEDITOR#TRISTATE_OFF}.
+ *
+ * // Create a style object for the <b> element.
+ * var style = new CKEDITOR.style( { element: 'b' } );
+ * var editor = CKEDITOR.instances.editor1;
+ * editor.attachStyleStateChange( style, function( state ) {
+ * if ( state == CKEDITOR.TRISTATE_ON )
+ * alert( 'The current state for the B element is ON' );
+ * else
+ * alert( 'The current state for the B element is OFF' );
+ * } );
+ *
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.style} style The style to be watched.
+ * @param {Function} callback The function to be called.
+ */
+CKEDITOR.editor.prototype.attachStyleStateChange = function( style, callback ) {
+ // Try to get the list of attached callbacks.
+ var styleStateChangeCallbacks = this._.styleStateChangeCallbacks;
+
+ // If it doesn't exist, it means this is the first call. So, let's create
+ // all the structure to manage the style checks and the callback calls.
+ if ( !styleStateChangeCallbacks ) {
+ // Create the callbacks array.
+ styleStateChangeCallbacks = this._.styleStateChangeCallbacks = [];
+
+ // Attach to the selectionChange event, so we can check the styles at
+ // that point.
+ this.on( 'selectionChange', function( ev ) {
+ // Loop throw all registered callbacks.
+ for ( var i = 0; i < styleStateChangeCallbacks.length; i++ ) {
+ var callback = styleStateChangeCallbacks[ i ];
+
+ // Check the current state for the style defined for that
+ // callback.
+ var currentState = callback.style.checkActive( ev.data.path ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF;
+
+ // Call the callback function, passing the current
+ // state to it.
+ callback.fn.call( this, currentState );
+ }
+ });
+ }
+
+ // Save the callback info, so it can be checked on the next occurrence of
+ // selectionChange.
+ styleStateChangeCallbacks.push( { style: style, fn: callback } );
+};
+
+CKEDITOR.STYLE_BLOCK = 1;
+CKEDITOR.STYLE_INLINE = 2;
+CKEDITOR.STYLE_OBJECT = 3;
+
+(function() {
+ var blockElements = { address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1 },
+ objectElements = { a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1 };
+
+ var semicolonFixRegex = /\s*(?:;\s*|$)/,
+ varRegex = /#\((.+?)\)/g;
+
+ var notBookmark = CKEDITOR.dom.walker.bookmark( 0, 1 ),
+ nonWhitespaces = CKEDITOR.dom.walker.whitespaces( 1 );
+
+ /**
+ * TODO...
+ *
+ * @class
+ * @constructor Creates a style class instance.
+ * @param styleDefinition
+ * @param variablesValues
+ * @todo
+ */
+ CKEDITOR.style = function( styleDefinition, variablesValues ) {
+
+ // Inline style text as attribute should be converted
+ // to styles object.
+ var attrs = styleDefinition.attributes;
+ if ( attrs && attrs.style ) {
+ styleDefinition.styles = CKEDITOR.tools.extend( {},
+ styleDefinition.styles, CKEDITOR.tools.parseCssText( attrs.style ) );
+ delete attrs.style;
+ }
+
+ if ( variablesValues ) {
+ styleDefinition = CKEDITOR.tools.clone( styleDefinition );
+
+ replaceVariables( styleDefinition.attributes, variablesValues );
+ replaceVariables( styleDefinition.styles, variablesValues );
+ }
+
+ var element = this.element = styleDefinition.element ?
+ (typeof styleDefinition.element == 'string' ?
+ styleDefinition.element.toLowerCase() :
+ styleDefinition.element ) : '*';
+
+ this.type = styleDefinition.type ||
+ (blockElements[ element ] ? CKEDITOR.STYLE_BLOCK :
+ objectElements[ element ] ? CKEDITOR.STYLE_OBJECT :
+ CKEDITOR.STYLE_INLINE );
+
+ // If the 'element' property is an object with a set of possible element, it will be applied like an object style: only to existing elements
+ if ( typeof this.element == 'object' )
+ this.type = CKEDITOR.STYLE_OBJECT;
+
+ this._ = {
+ definition: styleDefinition
+ };
+ };
+
+ /**
+ * Apply the style upon the editor's current selection.
+ *
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.style} style
+ */
+ CKEDITOR.editor.prototype.applyStyle = function( style ) {
+ applyStyleOnSelection.call( style, this.getSelection() );
+ };
+
+ /**
+ * Remove the style from the editor's current selection.
+ *
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.style} style
+ */
+ CKEDITOR.editor.prototype.removeStyle = function( style ) {
+ applyStyleOnSelection.call( style, this.getSelection(), 1 );
+ };
+
+ CKEDITOR.style.prototype = {
+ /**
+ * @param {CKEDITOR.dom.document} document
+ * @todo
+ */
+ apply: function( document ) {
+ applyStyleOnSelection.call( this, document.getSelection() );
+ },
+
+ /**
+ * @param {CKEDITOR.dom.document} document
+ * @todo
+ */
+ remove: function( document ) {
+ applyStyleOnSelection.call( this, document.getSelection(), 1 );
+ },
+
+ /**
+ * @param {CKEDITOR.dom.range} range
+ * @todo
+ */
+ applyToRange: function( range ) {
+ return ( this.applyToRange =
+ this.type == CKEDITOR.STYLE_INLINE ? applyInlineStyle :
+ this.type == CKEDITOR.STYLE_BLOCK ? applyBlockStyle :
+ this.type == CKEDITOR.STYLE_OBJECT ? applyObjectStyle :
+ null ).call( this, range );
+ },
+
+ /**
+ * @param {CKEDITOR.dom.range} range
+ * @todo
+ */
+ removeFromRange: function( range ) {
+ return ( this.removeFromRange =
+ this.type == CKEDITOR.STYLE_INLINE ? removeInlineStyle :
+ this.type == CKEDITOR.STYLE_BLOCK ? removeBlockStyle :
+ this.type == CKEDITOR.STYLE_OBJECT ? removeObjectStyle :
+ null ).call( this, range );
+ },
+
+ /**
+ * @param {CKEDITOR.dom.element} element
+ * @todo
+ */
+ applyToObject: function( element ) {
+ setupElement( element, this );
+ },
+
+ /**
+ * Get the style state inside an element path.
+ *
+ * @param {CKEDITOR.dom.elementPath} elementPath
+ * @returns {Boolean} `true` if the element is active in the path.
+ */
+ checkActive: function( elementPath ) {
+ switch ( this.type ) {
+ case CKEDITOR.STYLE_BLOCK:
+ return this.checkElementRemovable( elementPath.block || elementPath.blockLimit, true );
+
+ case CKEDITOR.STYLE_OBJECT:
+ case CKEDITOR.STYLE_INLINE:
+
+ var elements = elementPath.elements;
+
+ for ( var i = 0, element; i < elements.length; i++ ) {
+ element = elements[ i ];
+
+ if ( this.type == CKEDITOR.STYLE_INLINE && ( element == elementPath.block || element == elementPath.blockLimit ) )
+ continue;
+
+ if ( this.type == CKEDITOR.STYLE_OBJECT ) {
+ var name = element.getName();
+ if ( !( typeof this.element == 'string' ? name == this.element : name in this.element ) )
+ continue;
+ }
+
+ if ( this.checkElementRemovable( element, true ) )
+ return true;
+ }
+ }
+ return false;
+ },
+
+ /**
+ * Whether this style can be applied at the element path.
+ *
+ * @param {CKEDITOR.dom.elementPath} elementPath
+ * @returns {Boolean} `true` if this style can be applied at the element path.
+ */
+ checkApplicable: function( elementPath ) {
+ switch ( this.type ) {
+ case CKEDITOR.STYLE_INLINE:
+ case CKEDITOR.STYLE_BLOCK:
+ break;
+
+ case CKEDITOR.STYLE_OBJECT:
+ return elementPath.contains( this.element );
+ }
+
+ return true;
+ },
+
+ /**
+ * Check if the element matches the current style definition.
+ *
+ * @param {CKEDITOR.dom.element} element
+ * @param {Boolean} fullMatch
+ * @returns {Boolean}
+ * @todo
+ */
+ checkElementMatch: function( element, fullMatch ) {
+ var def = this._.definition;
+
+ if ( !element || !def.ignoreReadonly && element.isReadOnly() )
+ return false;
+
+ var attribs,
+ name = element.getName();
+
+ // If the element name is the same as the style name.
+ if ( typeof this.element == 'string' ? name == this.element : name in this.element ) {
+ // If no attributes are defined in the element.
+ if ( !fullMatch && !element.hasAttributes() )
+ return true;
+
+ attribs = getAttributesForComparison( def );
+
+ if ( attribs._length ) {
+ for ( var attName in attribs ) {
+ if ( attName == '_length' )
+ continue;
+
+ var elementAttr = element.getAttribute( attName ) || '';
+
+ // Special treatment for 'style' attribute is required.
+ if ( attName == 'style' ?
+ compareCssText( attribs[ attName ], elementAttr ) :
+ attribs[ attName ] == elementAttr )
+ {
+ if ( !fullMatch )
+ return true;
+ } else if ( fullMatch )
+ return false;
+ }
+ if ( fullMatch )
+ return true;
+ } else
+ return true;
+ }
+
+ return false;
+ },
+
+ /**
+ * Checks if an element, or any of its attributes, is removable by the
+ * current style definition.
+ *
+ * @param {CKEDITOR.dom.element} element
+ * @param {Boolean} fullMatch
+ * @returns {Boolean}
+ * @todo
+ */
+ checkElementRemovable: function( element, fullMatch ) {
+ // Check element matches the style itself.
+ if ( this.checkElementMatch( element, fullMatch ) )
+ return true;
+
+ // Check if the element matches the style overrides.
+ var override = getOverrides( this )[ element.getName() ];
+ if ( override ) {
+ var attribs, attName;
+
+ // If no attributes have been defined, remove the element.
+ if ( !( attribs = override.attributes ) )
+ return true;
+
+ for ( var i = 0; i < attribs.length; i++ ) {
+ attName = attribs[ i ][ 0 ];
+ var actualAttrValue = element.getAttribute( attName );
+ if ( actualAttrValue ) {
+ var attValue = attribs[ i ][ 1 ];
+
+ // Remove the attribute if:
+ // - The override definition value is null;
+ // - The override definition value is a string that
+ // matches the attribute value exactly.
+ // - The override definition value is a regex that
+ // has matches in the attribute value.
+ if ( attValue === null ||
+ ( typeof attValue == 'string' &&
+ actualAttrValue == attValue ) ||
+ attValue.test( actualAttrValue ) )
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+
+ /**
+ * Builds the preview HTML based on the styles definition.
+ *
+ * @param label
+ * @todo
+ */
+ buildPreview: function( label ) {
+ var styleDefinition = this._.definition,
+ html = [],
+ elementName = styleDefinition.element;
+
+ // Avoid <bdo> in the preview.
+ if ( elementName == 'bdo' )
+ elementName = 'span';
+
+ html = [ '<', elementName ];
+
+ // Assign all defined attributes.
+ var attribs = styleDefinition.attributes;
+ if ( attribs ) {
+ for ( var att in attribs ) {
+ html.push( ' ', att, '="', attribs[ att ], '"' );
+ }
+ }
+
+ // Assign the style attribute.
+ var cssStyle = CKEDITOR.style.getStyleText( styleDefinition );
+ if ( cssStyle )
+ html.push( ' style="', cssStyle, '"' );
+
+ html.push( '>', ( label || styleDefinition.name ), '</', elementName, '>' );
+
+ return html.join( '' );
+ }
+ };
+
+ /**
+ * Build the cssText based on the styles definition.
+ *
+ * @static
+ * @param styleDefinition
+ * @returns {String}
+ * @todo
+ */
+ CKEDITOR.style.getStyleText = function( styleDefinition ) {
+ // If we have already computed it, just return it.
+ var stylesDef = styleDefinition._ST;
+ if ( stylesDef )
+ return stylesDef;
+
+ stylesDef = styleDefinition.styles;
+
+ // Builds the StyleText.
+ var stylesText = ( styleDefinition.attributes && styleDefinition.attributes[ 'style' ] ) || '',
+ specialStylesText = '';
+
+ if ( stylesText.length )
+ stylesText = stylesText.replace( semicolonFixRegex, ';' );
+
+ for ( var style in stylesDef ) {
+ var styleVal = stylesDef[ style ],
+ text = ( style + ':' + styleVal ).replace( semicolonFixRegex, ';' );
+
+ // Some browsers don't support 'inherit' property value, leave them intact. (#5242)
+ if ( styleVal == 'inherit' )
+ specialStylesText += text;
+ else
+ stylesText += text;
+ }
+
+ // Browsers make some changes to the style when applying them. So, here
+ // we normalize it to the browser format.
+ if ( stylesText.length )
+ stylesText = CKEDITOR.tools.normalizeCssText( stylesText, true );
+
+ stylesText += specialStylesText;
+
+ // Return it, saving it to the next request.
+ return ( styleDefinition._ST = stylesText );
+ };
+
+ // Gets the parent element which blocks the styling for an element. This
+ // can be done through read-only elements (contenteditable=false) or
+ // elements with the "data-nostyle" attribute.
+ function getUnstylableParent( element, root ) {
+ var unstylable, editable;
+
+ while ( ( element = element.getParent() ) ) {
+ if ( element.equals( root ) )
+ break;
+
+ if ( element.getAttribute( 'data-nostyle' ) )
+ unstylable = element;
+ else if ( !editable ) {
+ var contentEditable = element.getAttribute( 'contentEditable' );
+
+ if ( contentEditable == 'false' )
+ unstylable = element;
+ else if ( contentEditable == 'true' )
+ editable = 1;
+ }
+ }
+
+ return unstylable;
+ }
+
+ function applyInlineStyle( range ) {
+ var document = range.document;
+
+ if ( range.collapsed ) {
+ // Create the element to be inserted in the DOM.
+ var collapsedElement = getElement( this, document );
+
+ // Insert the empty element into the DOM at the range position.
+ range.insertNode( collapsedElement );
+
+ // Place the selection right inside the empty element.
+ range.moveToPosition( collapsedElement, CKEDITOR.POSITION_BEFORE_END );
+
+ return;
+ }
+
+ var elementName = this.element;
+ var def = this._.definition;
+ var isUnknownElement;
+
+ // Indicates that fully selected read-only elements are to be included in the styling range.
+ var ignoreReadonly = def.ignoreReadonly,
+ includeReadonly = ignoreReadonly || def.includeReadonly;
+
+ // If the read-only inclusion is not available in the definition, try
+ // to get it from the root data (most often it's the editable).
+ if ( includeReadonly == undefined )
+ includeReadonly = range.root.getCustomData( 'cke_includeReadonly' );
+
+ // Get the DTD definition for the element. Defaults to "span".
+ var dtd = CKEDITOR.dtd[ elementName ] || ( isUnknownElement = true, CKEDITOR.dtd.span );
+
+ // Expand the range.
+ range.enlarge( CKEDITOR.ENLARGE_INLINE, 1 );
+ range.trim();
+
+ // Get the first node to be processed and the last, which concludes the
+ // processing.
+ var boundaryNodes = range.createBookmark(),
+ firstNode = boundaryNodes.startNode,
+ lastNode = boundaryNodes.endNode;
+
+ var currentNode = firstNode;
+
+ var styleRange;
+
+ if ( !ignoreReadonly ) {
+ // Check if the boundaries are inside non stylable elements.
+ var root = range.getCommonAncestor(),
+ firstUnstylable = getUnstylableParent( firstNode, root ),
+ lastUnstylable = getUnstylableParent( lastNode, root );
+
+ // If the first element can't be styled, we'll start processing right
+ // after its unstylable root.
+ if ( firstUnstylable )
+ currentNode = firstUnstylable.getNextSourceNode( true );
+
+ // If the last element can't be styled, we'll stop processing on its
+ // unstylable root.
+ if ( lastUnstylable )
+ lastNode = lastUnstylable;
+ }
+
+ // Do nothing if the current node now follows the last node to be processed.
+ if ( currentNode.getPosition( lastNode ) == CKEDITOR.POSITION_FOLLOWING )
+ currentNode = 0;
+
+ while ( currentNode ) {
+ var applyStyle = false;
+
+ if ( currentNode.equals( lastNode ) ) {
+ currentNode = null;
+ applyStyle = true;
+ } else {
+ var nodeType = currentNode.type;
+ var nodeName = nodeType == CKEDITOR.NODE_ELEMENT ? currentNode.getName() : null;
+ var nodeIsReadonly = nodeName && ( currentNode.getAttribute( 'contentEditable' ) == 'false' );
+ var nodeIsNoStyle = nodeName && currentNode.getAttribute( 'data-nostyle' );
+
+ if ( nodeName && currentNode.data( 'cke-bookmark' ) ) {
+ currentNode = currentNode.getNextSourceNode( true );
+ continue;
+ }
+
+ // Check if the current node can be a child of the style element.
+ if ( !nodeName ||
+ ( dtd[ nodeName ] && !nodeIsNoStyle &&
+ ( !nodeIsReadonly || includeReadonly ) &&
+ ( currentNode.getPosition( lastNode ) |
+ CKEDITOR.POSITION_PRECEDING | CKEDITOR.POSITION_IDENTICAL |
+ CKEDITOR.POSITION_IS_CONTAINED ) ==
+ ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IDENTICAL +
+ CKEDITOR.POSITION_IS_CONTAINED ) &&
+ ( !def.childRule || def.childRule( currentNode ) ) ) ) {
+ var currentParent = currentNode.getParent();
+
+ // Check if the style element can be a child of the current
+ // node parent or if the element is not defined in the DTD.
+ if ( currentParent &&
+ ( ( currentParent.getDtd() ||
+ CKEDITOR.dtd.span )[ elementName ] || isUnknownElement ) &&
+ ( !def.parentRule || def.parentRule( currentParent ) ) ) {
+ // This node will be part of our range, so if it has not
+ // been started, place its start right before the node.
+ // In the case of an element node, it will be included
+ // only if it is entirely inside the range.
+ if ( !styleRange &&
+ ( !nodeName || !CKEDITOR.dtd.$removeEmpty[ nodeName ] ||
+ ( currentNode.getPosition( lastNode ) |
+ CKEDITOR.POSITION_PRECEDING | CKEDITOR.POSITION_IDENTICAL |
+ CKEDITOR.POSITION_IS_CONTAINED ) ==
+ ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IDENTICAL +
+ CKEDITOR.POSITION_IS_CONTAINED ) ) ) {
+ styleRange = range.clone();
+ styleRange.setStartBefore( currentNode );
+ }
+
+ // Non element nodes, readonly elements, or empty
+ // elements can be added completely to the range.
+ if ( nodeType == CKEDITOR.NODE_TEXT || nodeIsReadonly ||
+ ( nodeType == CKEDITOR.NODE_ELEMENT &&
+ !currentNode.getChildCount() ) ) {
+ var includedNode = currentNode;
+ var parentNode;
+
+ // This node is about to be included completelly, but,
+ // if this is the last node in its parent, we must also
+ // check if the parent itself can be added completelly
+ // to the range, otherwise apply the style immediately.
+ while ( ( applyStyle = !includedNode.getNext( notBookmark ) ) &&
+ ( parentNode = includedNode.getParent(), dtd[ parentNode.getName() ] ) &&
+ ( parentNode.getPosition( firstNode ) |
+ CKEDITOR.POSITION_FOLLOWING |
+ CKEDITOR.POSITION_IDENTICAL |
+ CKEDITOR.POSITION_IS_CONTAINED ) ==
+ ( CKEDITOR.POSITION_FOLLOWING +
+ CKEDITOR.POSITION_IDENTICAL +
+ CKEDITOR.POSITION_IS_CONTAINED ) &&
+ ( !def.childRule || def.childRule( parentNode ) ) ) {
+ includedNode = parentNode;
+ }
+
+ styleRange.setEndAfter( includedNode );
+
+ }
+ } else
+ applyStyle = true;
+ } else
+ applyStyle = true;
+
+ // Get the next node to be processed.
+ currentNode = currentNode.getNextSourceNode( nodeIsNoStyle || nodeIsReadonly && !includeReadonly );
+ }
+
+ // Apply the style if we have something to which apply it.
+ if ( applyStyle && styleRange && !styleRange.collapsed ) {
+ // Build the style element, based on the style object definition.
+ var styleNode = getElement( this, document ),
+ styleHasAttrs = styleNode.hasAttributes();
+
+ // Get the element that holds the entire range.
+ var parent = styleRange.getCommonAncestor();
+
+ var removeList = {
+ styles: {},
+ attrs: {},
+ // Styles cannot be removed.
+ blockedStyles: {},
+ // Attrs cannot be removed.
+ blockedAttrs: {}
+ };
+
+ var attName, styleName, value;
+
+ // Loop through the parents, removing the redundant attributes
+ // from the element to be applied.
+ while ( styleNode && parent ) {
+ if ( parent.getName() == elementName ) {
+ for ( attName in def.attributes ) {
+ if ( removeList.blockedAttrs[ attName ] || !( value = parent.getAttribute( styleName ) ) )
+ continue;
+
+ if ( styleNode.getAttribute( attName ) == value )
+ removeList.attrs[ attName ] = 1;
+ else
+ removeList.blockedAttrs[ attName ] = 1;
+ }
+
+ for ( styleName in def.styles ) {
+ if ( removeList.blockedStyles[ styleName ] || !( value = parent.getStyle( styleName ) ) )
+ continue;
+
+ if ( styleNode.getStyle( styleName ) == value )
+ removeList.styles[ styleName ] = 1;
+ else
+ removeList.blockedStyles[ styleName ] = 1;
+ }
+ }
+
+ parent = parent.getParent();
+ }
+
+ for ( attName in removeList.attrs )
+ styleNode.removeAttribute( attName );
+
+ for ( styleName in removeList.styles )
+ styleNode.removeStyle( styleName );
+
+ if ( styleHasAttrs && !styleNode.hasAttributes() )
+ styleNode = null;
+
+ if ( styleNode ) {
+ // Move the contents of the range to the style element.
+ styleRange.extractContents().appendTo( styleNode );
+
+ // Here we do some cleanup, removing all duplicated
+ // elements from the style element.
+ removeFromInsideElement.call( this, styleNode );
+
+ // Insert it into the range position (it is collapsed after
+ // extractContents.
+ styleRange.insertNode( styleNode );
+
+ // Let's merge our new style with its neighbors, if possible.
+ styleNode.mergeSiblings();
+
+ // As the style system breaks text nodes constantly, let's normalize
+ // things for performance.
+ // With IE, some paragraphs get broken when calling normalize()
+ // repeatedly. Also, for IE, we must normalize body, not documentElement.
+ // IE is also known for having a "crash effect" with normalize().
+ // We should try to normalize with IE too in some way, somewhere.
+ if ( !CKEDITOR.env.ie )
+ styleNode.$.normalize();
+ }
+ // Style already inherit from parents, left just to clear up any internal overrides. (#5931)
+ else {
+ styleNode = new CKEDITOR.dom.element( 'span' );
+ styleRange.extractContents().appendTo( styleNode );
+ styleRange.insertNode( styleNode );
+ removeFromInsideElement.call( this, styleNode );
+ styleNode.remove( true );
+ }
+
+ // Style applied, let's release the range, so it gets
+ // re-initialization in the next loop.
+ styleRange = null;
+ }
+ }
+
+ // Remove the bookmark nodes.
+ range.moveToBookmark( boundaryNodes );
+
+ // Minimize the result range to exclude empty text nodes. (#5374)
+ range.shrink( CKEDITOR.SHRINK_TEXT );
+ }
+
+ function removeInlineStyle( range ) {
+ // Make sure our range has included all "collpased" parent inline nodes so
+ // that our operation logic can be simpler.
+ range.enlarge( CKEDITOR.ENLARGE_INLINE, 1 );
+
+ var bookmark = range.createBookmark(),
+ startNode = bookmark.startNode;
+
+ if ( range.collapsed ) {
+ var startPath = new CKEDITOR.dom.elementPath( startNode.getParent(), range.root ),
+ // The topmost element in elementspatch which we should jump out of.
+ boundaryElement;
+
+
+ for ( var i = 0, element; i < startPath.elements.length && ( element = startPath.elements[ i ] ); i++ ) {
+ // 1. If it's collaped inside text nodes, try to remove the style from the whole element.
+ //
+ // 2. Otherwise if it's collapsed on element boundaries, moving the selection
+ // outside the styles instead of removing the whole tag,
+ // also make sure other inner styles were well preserverd.(#3309)
+ if ( element == startPath.block || element == startPath.blockLimit )
+ break;
+
+ if ( this.checkElementRemovable( element ) ) {
+ var isStart;
+
+ if ( range.collapsed && ( range.checkBoundaryOfElement( element, CKEDITOR.END ) || ( isStart = range.checkBoundaryOfElement( element, CKEDITOR.START ) ) ) ) {
+ boundaryElement = element;
+ boundaryElement.match = isStart ? 'start' : 'end';
+ } else {
+ /*
+ * Before removing the style node, there may be a sibling to the style node
+ * that's exactly the same to the one to be removed. To the user, it makes
+ * no difference that they're separate entities in the DOM tree. So, merge
+ * them before removal.
+ */
+ element.mergeSiblings();
+ if ( element.getName() == this.element )
+ removeFromElement.call( this, element );
+ else
+ removeOverrides( element, getOverrides( this )[ element.getName() ] );
+ }
+ }
+ }
+
+ // Re-create the style tree after/before the boundary element,
+ // the replication start from bookmark start node to define the
+ // new range.
+ if ( boundaryElement ) {
+ var clonedElement = startNode;
+ for ( i = 0;; i++ ) {
+ var newElement = startPath.elements[ i ];
+ if ( newElement.equals( boundaryElement ) )
+ break;
+ // Avoid copying any matched element.
+ else if ( newElement.match )
+ continue;
+ else
+ newElement = newElement.clone();
+ newElement.append( clonedElement );
+ clonedElement = newElement;
+ }
+ clonedElement[ boundaryElement.match == 'start' ? 'insertBefore' : 'insertAfter' ]( boundaryElement );
+ }
+ } else {
+ // Now our range isn't collapsed. Lets walk from the start node to the end
+ // node via DFS and remove the styles one-by-one.
+ var endNode = bookmark.endNode,
+ me = this;
+
+ // Find out the style ancestor that needs to be broken down at startNode
+ // and endNode.
+ function breakNodes() {
+ var startPath = new CKEDITOR.dom.elementPath( startNode.getParent() ),
+ endPath = new CKEDITOR.dom.elementPath( endNode.getParent() ),
+ breakStart = null,
+ breakEnd = null;
+ for ( var i = 0; i < startPath.elements.length; i++ ) {
+ var element = startPath.elements[ i ];
+
+ if ( element == startPath.block || element == startPath.blockLimit )
+ break;
+
+ if ( me.checkElementRemovable( element ) )
+ breakStart = element;
+ }
+ for ( i = 0; i < endPath.elements.length; i++ ) {
+ element = endPath.elements[ i ];
+
+ if ( element == endPath.block || element == endPath.blockLimit )
+ break;
+
+ if ( me.checkElementRemovable( element ) )
+ breakEnd = element;
+ }
+
+ if ( breakEnd )
+ endNode.breakParent( breakEnd );
+ if ( breakStart )
+ startNode.breakParent( breakStart );
+ }
+ breakNodes();
+
+ // Now, do the DFS walk.
+ var currentNode = startNode;
+ while ( !currentNode.equals( endNode ) ) {
+ // Need to get the next node first because removeFromElement() can remove
+ // the current node from DOM tree.
+ var nextNode = currentNode.getNextSourceNode();
+ if ( currentNode.type == CKEDITOR.NODE_ELEMENT && this.checkElementRemovable( currentNode ) ) {
+ // Remove style from element or overriding element.
+ if ( currentNode.getName() == this.element )
+ removeFromElement.call( this, currentNode );
+ else
+ removeOverrides( currentNode, getOverrides( this )[ currentNode.getName() ] );
+
+ // removeFromElement() may have merged the next node with something before
+ // the startNode via mergeSiblings(). In that case, the nextNode would
+ // contain startNode and we'll have to call breakNodes() again and also
+ // reassign the nextNode to something after startNode.
+ if ( nextNode.type == CKEDITOR.NODE_ELEMENT && nextNode.contains( startNode ) ) {
+ breakNodes();
+ nextNode = startNode.getNext();
+ }
+ }
+ currentNode = nextNode;
+ }
+ }
+
+ range.moveToBookmark( bookmark );
+ }
+
+ function applyObjectStyle( range ) {
+ // Selected or parent element. (#9651)
+ var start = range.getEnclosedNode() || range.getCommonAncestor( false, true ),
+ element = new CKEDITOR.dom.elementPath( start, range.root ).contains( this.element, 1 );
+
+ element && !element.isReadOnly() && setupElement( element, this );
+ }
+
+ function removeObjectStyle( range ) {
+ var parent = range.getCommonAncestor( true, true ),
+ element = new CKEDITOR.dom.elementPath( parent, range.root ).contains( this.element, 1 );
+
+ if ( !element )
+ return;
+
+ var style = this,
+ def = style._.definition,
+ attributes = def.attributes;
+
+ // Remove all defined attributes.
+ if ( attributes ) {
+ for ( var att in attributes ) {
+ element.removeAttribute( att, attributes[ att ] );
+ }
+ }
+
+ // Assign all defined styles.
+ if ( def.styles ) {
+ for ( var i in def.styles ) {
+ if ( !def.styles.hasOwnProperty( i ) )
+ continue;
+
+ element.removeStyle( i );
+ }
+ }
+ }
+
+ function applyBlockStyle( range ) {
+ // Serializible bookmarks is needed here since
+ // elements may be merged.
+ var bookmark = range.createBookmark( true );
+
+ var iterator = range.createIterator();
+ iterator.enforceRealBlocks = true;
+
+ // make recognize <br /> tag as a separator in ENTER_BR mode (#5121)
+ if ( this._.enterMode )
+ iterator.enlargeBr = ( this._.enterMode != CKEDITOR.ENTER_BR );
+
+ var block;
+ var doc = range.document;
+ var previousPreBlock;
+
+ while ( ( block = iterator.getNextParagraph() ) ) // Only one =
+ {
+ if ( !block.isReadOnly() ) {
+ var newBlock = getElement( this, doc, block );
+ replaceBlock( block, newBlock );
+ }
+ }
+
+ range.moveToBookmark( bookmark );
+ }
+
+ function removeBlockStyle( range ) {
+ // Serializible bookmarks is needed here since
+ // elements may be merged.
+ var bookmark = range.createBookmark( 1 );
+
+ var iterator = range.createIterator();
+ iterator.enforceRealBlocks = true;
+ iterator.enlargeBr = this._.enterMode != CKEDITOR.ENTER_BR;
+
+ var block;
+ while ( ( block = iterator.getNextParagraph() ) ) {
+ if ( this.checkElementRemovable( block ) ) {
+ // <pre> get special treatment.
+ if ( block.is( 'pre' ) ) {
+ var newBlock = this._.enterMode == CKEDITOR.ENTER_BR ? null :
+ range.document.createElement( this._.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
+
+ newBlock && block.copyAttributes( newBlock );
+ replaceBlock( block, newBlock );
+ } else
+ removeFromElement.call( this, block );
+ }
+ }
+
+ range.moveToBookmark( bookmark );
+ }
+
+ // Replace the original block with new one, with special treatment
+ // for <pre> blocks to make sure content format is well preserved, and merging/splitting adjacent
+ // when necessary. (#3188)
+ function replaceBlock( block, newBlock ) {
+ // Block is to be removed, create a temp element to
+ // save contents.
+ var removeBlock = !newBlock;
+ if ( removeBlock ) {
+ newBlock = block.getDocument().createElement( 'div' );
+ block.copyAttributes( newBlock );
+ }
+
+ var newBlockIsPre = newBlock && newBlock.is( 'pre' );
+ var blockIsPre = block.is( 'pre' );
+
+ var isToPre = newBlockIsPre && !blockIsPre;
+ var isFromPre = !newBlockIsPre && blockIsPre;
+
+ if ( isToPre )
+ newBlock = toPre( block, newBlock );
+ else if ( isFromPre )
+ // Split big <pre> into pieces before start to convert.
+ newBlock = fromPres( removeBlock ? [ block.getHtml() ] : splitIntoPres( block ), newBlock );
+ else
+ block.moveChildren( newBlock );
+
+ newBlock.replace( block );
+
+ if ( newBlockIsPre ) {
+ // Merge previous <pre> blocks.
+ mergePre( newBlock );
+ } else if ( removeBlock )
+ removeNoAttribsElement( newBlock );
+ }
+
+ // Merge a <pre> block with a previous sibling if available.
+ function mergePre( preBlock ) {
+ var previousBlock;
+ if ( !( ( previousBlock = preBlock.getPrevious( nonWhitespaces ) ) && previousBlock.is && previousBlock.is( 'pre' ) ) )
+ return;
+
+ // Merge the previous <pre> block contents into the current <pre>
+ // block.
+ //
+ // Another thing to be careful here is that currentBlock might contain
+ // a '\n' at the beginning, and previousBlock might contain a '\n'
+ // towards the end. These new lines are not normally displayed but they
+ // become visible after merging.
+ var mergedHtml = replace( previousBlock.getHtml(), /\n$/, '' ) + '\n\n' +
+ replace( preBlock.getHtml(), /^\n/, '' );
+
+ // Krugle: IE normalizes innerHTML from <pre>, breaking whitespaces.
+ if ( CKEDITOR.env.ie )
+ preBlock.$.outerHTML = '<pre>' + mergedHtml + '</pre>';
+ else
+ preBlock.setHtml( mergedHtml );
+
+ previousBlock.remove();
+ }
+
+ // Split into multiple <pre> blocks separated by double line-break.
+ function splitIntoPres( preBlock ) {
+ // Exclude the ones at header OR at tail,
+ // and ignore bookmark content between them.
+ var duoBrRegex = /(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,
+ blockName = preBlock.getName(),
+ splitedHtml = replace( preBlock.getOuterHtml(), duoBrRegex, function( match, charBefore, bookmark ) {
+ return charBefore + '</pre>' + bookmark + '<pre>';
+ });
+
+ var pres = [];
+ splitedHtml.replace( /<pre\b.*?>([\s\S]*?)<\/pre>/gi, function( match, preContent ) {
+ pres.push( preContent );
+ });
+ return pres;
+ }
+
+ // Wrapper function of String::replace without considering of head/tail bookmarks nodes.
+ function replace( str, regexp, replacement ) {
+ var headBookmark = '',
+ tailBookmark = '';
+
+ str = str.replace( /(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi, function( str, m1, m2 ) {
+ m1 && ( headBookmark = m1 );
+ m2 && ( tailBookmark = m2 );
+ return '';
+ });
+ return headBookmark + str.replace( regexp, replacement ) + tailBookmark;
+ }
+
+ // Converting a list of <pre> into blocks with format well preserved.
+ function fromPres( preHtmls, newBlock ) {
+ var docFrag;
+ if ( preHtmls.length > 1 )
+ docFrag = new CKEDITOR.dom.documentFragment( newBlock.getDocument() );
+
+ for ( var i = 0; i < preHtmls.length; i++ ) {
+ var blockHtml = preHtmls[ i ];
+
+ // 1. Trim the first and last line-breaks immediately after and before <pre>,
+ // they're not visible.
+ blockHtml = blockHtml.replace( /(\r\n|\r)/g, '\n' );
+ blockHtml = replace( blockHtml, /^[ \t]*\n/, '' );
+ blockHtml = replace( blockHtml, /\n$/, '' );
+ // 2. Convert spaces or tabs at the beginning or at the end to
+ blockHtml = replace( blockHtml, /^[ \t]+|[ \t]+$/g, function( match, offset, s ) {
+ if ( match.length == 1 ) // one space, preserve it
+ return ' ';
+ else if ( !offset ) // beginning of block
+ return CKEDITOR.tools.repeat( ' ', match.length - 1 ) + ' ';
+ else // end of block
+ return ' ' + CKEDITOR.tools.repeat( ' ', match.length - 1 );
+ });
+
+ // 3. Convert \n to <BR>.
+ // 4. Convert contiguous (i.e. non-singular) spaces or tabs to
+ blockHtml = blockHtml.replace( /\n/g, '<br>' );
+ blockHtml = blockHtml.replace( /[ \t]{2,}/g, function( match ) {
+ return CKEDITOR.tools.repeat( ' ', match.length - 1 ) + ' ';
+ });
+
+ if ( docFrag ) {
+ var newBlockClone = newBlock.clone();
+ newBlockClone.setHtml( blockHtml );
+ docFrag.append( newBlockClone );
+ } else
+ newBlock.setHtml( blockHtml );
+ }
+
+ return docFrag || newBlock;
+ }
+
+ // Converting from a non-PRE block to a PRE block in formatting operations.
+ function toPre( block, newBlock ) {
+ var bogus = block.getBogus();
+ bogus && bogus.remove();
+
+ // First trim the block content.
+ var preHtml = block.getHtml();
+
+ // 1. Trim head/tail spaces, they're not visible.
+ preHtml = replace( preHtml, /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, '' );
+ // 2. Delete ANSI whitespaces immediately before and after <BR> because
+ // they are not visible.
+ preHtml = preHtml.replace( /[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi, '$1' );
+ // 3. Compress other ANSI whitespaces since they're only visible as one
+ // single space previously.
+ // 4. Convert to spaces since is no longer needed in <PRE>.
+ preHtml = preHtml.replace( /([ \t\n\r]+| )/g, ' ' );
+ // 5. Convert any <BR /> to \n. This must not be done earlier because
+ // the \n would then get compressed.
+ preHtml = preHtml.replace( /<br\b[^>]*>/gi, '\n' );
+
+ // Krugle: IE normalizes innerHTML to <pre>, breaking whitespaces.
+ if ( CKEDITOR.env.ie ) {
+ var temp = block.getDocument().createElement( 'div' );
+ temp.append( newBlock );
+ newBlock.$.outerHTML = '<pre>' + preHtml + '</pre>';
+ newBlock.copyAttributes( temp.getFirst() );
+ newBlock = temp.getFirst().remove();
+ } else
+ newBlock.setHtml( preHtml );
+
+ return newBlock;
+ }
+
+ // Removes a style from an element itself, don't care about its subtree.
+ function removeFromElement( element ) {
+ var def = this._.definition,
+ attributes = def.attributes,
+ styles = def.styles,
+ overrides = getOverrides( this )[ element.getName() ],
+ // If the style is only about the element itself, we have to remove the element.
+ removeEmpty = CKEDITOR.tools.isEmpty( attributes ) && CKEDITOR.tools.isEmpty( styles );
+
+ // Remove definition attributes/style from the elemnt.
+ for ( var attName in attributes ) {
+ // The 'class' element value must match (#1318).
+ if ( ( attName == 'class' || this._.definition.fullMatch ) && element.getAttribute( attName ) != normalizeProperty( attName, attributes[ attName ] ) )
+ continue;
+ removeEmpty = element.hasAttribute( attName );
+ element.removeAttribute( attName );
+ }
+
+ for ( var styleName in styles ) {
+ // Full match style insist on having fully equivalence. (#5018)
+ if ( this._.definition.fullMatch && element.getStyle( styleName ) != normalizeProperty( styleName, styles[ styleName ], true ) )
+ continue;
+
+ removeEmpty = removeEmpty || !!element.getStyle( styleName );
+ element.removeStyle( styleName );
+ }
+
+ // Remove overrides, but don't remove the element if it's a block element
+ removeOverrides( element, overrides, blockElements[ element.getName() ] );
+
+ if ( removeEmpty ) {
+ if ( this._.definition.alwaysRemoveElement )
+ removeNoAttribsElement( element, 1 );
+ else {
+ !CKEDITOR.dtd.$block[ element.getName() ] || this._.enterMode == CKEDITOR.ENTER_BR && !element.hasAttributes() ? removeNoAttribsElement( element ) : element.renameNode( this._.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
+ }
+ }
+ }
+
+ // Removes a style from inside an element.
+ function removeFromInsideElement( element ) {
+ var def = this._.definition,
+ attribs = def.attributes,
+ styles = def.styles,
+ overrides = getOverrides( this ),
+ innerElements = element.getElementsByTag( this.element );
+
+ for ( var i = innerElements.count(); --i >= 0; )
+ removeFromElement.call( this, innerElements.getItem( i ) );
+
+ // Now remove any other element with different name that is
+ // defined to be overriden.
+ for ( var overrideElement in overrides ) {
+ if ( overrideElement != this.element ) {
+ innerElements = element.getElementsByTag( overrideElement );
+ for ( i = innerElements.count() - 1; i >= 0; i-- ) {
+ var innerElement = innerElements.getItem( i );
+ removeOverrides( innerElement, overrides[ overrideElement ] );
+ }
+ }
+ }
+ }
+
+ // Remove overriding styles/attributes from the specific element.
+ // Note: Remove the element if no attributes remain.
+ // @param {Object} element
+ // @param {Object} overrides
+ // @param {Boolean} Don't remove the element
+ function removeOverrides( element, overrides, dontRemove ) {
+ var attributes = overrides && overrides.attributes;
+
+ if ( attributes ) {
+ for ( var i = 0; i < attributes.length; i++ ) {
+ var attName = attributes[ i ][ 0 ],
+ actualAttrValue;
+
+ if ( ( actualAttrValue = element.getAttribute( attName ) ) ) {
+ var attValue = attributes[ i ][ 1 ];
+
+ // Remove the attribute if:
+ // - The override definition value is null ;
+ // - The override definition valie is a string that
+ // matches the attribute value exactly.
+ // - The override definition value is a regex that
+ // has matches in the attribute value.
+ if ( attValue === null || ( attValue.test && attValue.test( actualAttrValue ) ) || ( typeof attValue == 'string' && actualAttrValue == attValue ) )
+ element.removeAttribute( attName );
+ }
+ }
+ }
+
+ if ( !dontRemove )
+ removeNoAttribsElement( element );
+ }
+
+ // If the element has no more attributes, remove it.
+ function removeNoAttribsElement( element, forceRemove ) {
+ // If no more attributes remained in the element, remove it,
+ // leaving its children.
+ if ( !element.hasAttributes() || forceRemove ) {
+ if ( CKEDITOR.dtd.$block[ element.getName() ] ) {
+ var previous = element.getPrevious( nonWhitespaces ),
+ next = element.getNext( nonWhitespaces );
+
+ if ( previous && ( previous.type == CKEDITOR.NODE_TEXT || !previous.isBlockBoundary( { br:1 } ) ) )
+ element.append( 'br', 1 );
+ if ( next && ( next.type == CKEDITOR.NODE_TEXT || !next.isBlockBoundary( { br:1 } ) ) )
+ element.append( 'br' );
+
+ element.remove( true );
+ } else {
+ // Removing elements may open points where merging is possible,
+ // so let's cache the first and last nodes for later checking.
+ var firstChild = element.getFirst();
+ var lastChild = element.getLast();
+
+ element.remove( true );
+
+ if ( firstChild ) {
+ // Check the cached nodes for merging.
+ firstChild.type == CKEDITOR.NODE_ELEMENT && firstChild.mergeSiblings();
+
+ if ( lastChild && !firstChild.equals( lastChild ) && lastChild.type == CKEDITOR.NODE_ELEMENT )
+ lastChild.mergeSiblings();
+ }
+
+ }
+ }
+ }
+
+ function getElement( style, targetDocument, element ) {
+ var el,
+ def = style._.definition,
+ elementName = style.element;
+
+ // The "*" element name will always be a span for this function.
+ if ( elementName == '*' )
+ elementName = 'span';
+
+ // Create the element.
+ el = new CKEDITOR.dom.element( elementName, targetDocument );
+
+ // #6226: attributes should be copied before the new ones are applied
+ if ( element )
+ element.copyAttributes( el );
+
+ el = setupElement( el, style );
+
+ // Avoid ID duplication.
+ if ( targetDocument.getCustomData( 'doc_processing_style' ) && el.hasAttribute( 'id' ) )
+ el.removeAttribute( 'id' );
+ else
+ targetDocument.setCustomData( 'doc_processing_style', 1 );
+
+ return el;
+ }
+
+ function setupElement( el, style ) {
+ var def = style._.definition,
+ attributes = def.attributes,
+ styles = CKEDITOR.style.getStyleText( def );
+
+ // Assign all defined attributes.
+ if ( attributes ) {
+ for ( var att in attributes ) {
+ el.setAttribute( att, attributes[ att ] );
+ }
+ }
+
+ // Assign all defined styles.
+ if ( styles )
+ el.setAttribute( 'style', styles );
+
+ return el;
+ }
+
+ function replaceVariables( list, variablesValues ) {
+ for ( var item in list ) {
+ list[ item ] = list[ item ].replace( varRegex, function( match, varName ) {
+ return variablesValues[ varName ];
+ });
+ }
+ }
+
+ // Returns an object that can be used for style matching comparison.
+ // Attributes names and values are all lowercased, and the styles get
+ // merged with the style attribute.
+ function getAttributesForComparison( styleDefinition ) {
+ // If we have already computed it, just return it.
+ var attribs = styleDefinition._AC;
+ if ( attribs )
+ return attribs;
+
+ attribs = {};
+
+ var length = 0;
+
+ // Loop through all defined attributes.
+ var styleAttribs = styleDefinition.attributes;
+ if ( styleAttribs ) {
+ for ( var styleAtt in styleAttribs ) {
+ length++;
+ attribs[ styleAtt ] = styleAttribs[ styleAtt ];
+ }
+ }
+
+ // Includes the style definitions.
+ var styleText = CKEDITOR.style.getStyleText( styleDefinition );
+ if ( styleText ) {
+ if ( !attribs[ 'style' ] )
+ length++;
+ attribs[ 'style' ] = styleText;
+ }
+
+ // Appends the "length" information to the object.
+ attribs._length = length;
+
+ // Return it, saving it to the next request.
+ return ( styleDefinition._AC = attribs );
+ }
+
+ // Get the the collection used to compare the elements and attributes,
+ // defined in this style overrides, with other element. All information in
+ // it is lowercased.
+ // @param {CKEDITOR.style} style
+ function getOverrides( style ) {
+ if ( style._.overrides )
+ return style._.overrides;
+
+ var overrides = ( style._.overrides = {} ),
+ definition = style._.definition.overrides;
+
+ if ( definition ) {
+ // The override description can be a string, object or array.
+ // Internally, well handle arrays only, so transform it if needed.
+ if ( !CKEDITOR.tools.isArray( definition ) )
+ definition = [ definition ];
+
+ // Loop through all override definitions.
+ for ( var i = 0; i < definition.length; i++ ) {
+ var override = definition[ i ];
+ var elementName;
+ var overrideEl;
+ var attrs;
+
+ // If can be a string with the element name.
+ if ( typeof override == 'string' )
+ elementName = override.toLowerCase();
+ // Or an object.
+ else {
+ elementName = override.element ? override.element.toLowerCase() : style.element;
+ attrs = override.attributes;
+ }
+
+ // We can have more than one override definition for the same
+ // element name, so we attempt to simply append information to
+ // it if it already exists.
+ overrideEl = overrides[ elementName ] || ( overrides[ elementName ] = {} );
+
+ if ( attrs ) {
+ // The returning attributes list is an array, because we
+ // could have different override definitions for the same
+ // attribute name.
+ var overrideAttrs = ( overrideEl.attributes = overrideEl.attributes || new Array() );
+ for ( var attName in attrs ) {
+ // Each item in the attributes array is also an array,
+ // where [0] is the attribute name and [1] is the
+ // override value.
+ overrideAttrs.push( [ attName.toLowerCase(), attrs[ attName ] ] );
+ }
+ }
+ }
+ }
+
+ return overrides;
+ }
+
+ // Make the comparison of attribute value easier by standardizing it.
+ function normalizeProperty( name, value, isStyle ) {
+ var temp = new CKEDITOR.dom.element( 'span' );
+ temp[ isStyle ? 'setStyle' : 'setAttribute' ]( name, value );
+ return temp[ isStyle ? 'getStyle' : 'getAttribute' ]( name );
+ }
+
+ // Compare two bunch of styles, with the speciality that value 'inherit'
+ // is treated as a wildcard which will match any value.
+ // @param {Object/String} source
+ // @param {Object/String} target
+ function compareCssText( source, target ) {
+ typeof source == 'string' && ( source = CKEDITOR.tools.parseCssText( source ) );
+ typeof target == 'string' && ( target = CKEDITOR.tools.parseCssText( target, true ) );
+ for ( var name in source ) {
+ if ( !( name in target && ( target[ name ] == source[ name ] || source[ name ] == 'inherit' || target[ name ] == 'inherit' ) ) ) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ function applyStyleOnSelection( selection, remove ) {
+ var doc = selection.document,
+ ranges = selection.getRanges(),
+ func = remove ? this.removeFromRange : this.applyToRange,
+ range;
+
+ var iterator = ranges.createIterator();
+ while ( ( range = iterator.getNextRange() ) )
+ func.call( this, range );
+
+ selection.selectRanges( ranges );
+ doc.removeCustomData( 'doc_processing_style' );
+ }
+})();
+
+/**
+ * @class
+ * @todo
+ */
+CKEDITOR.styleCommand = function( style ) {
+ this.style = style;
+};
+
+/**
+ * @param {CKEDITOR.editor} editor
+ * @todo
+ */
+CKEDITOR.styleCommand.prototype.exec = function( editor ) {
+ editor.focus();
+
+ if ( this.state == CKEDITOR.TRISTATE_OFF )
+ editor.applyStyle( this.style );
+ else if ( this.state == CKEDITOR.TRISTATE_ON )
+ editor.removeStyle( this.style );
+};
+
+/**
+ * Manages styles registration and loading. See also {@link CKEDITOR.config#stylesSet}.
+ *
+ * // The set of styles for the <b>Styles</b> combo.
+ * CKEDITOR.stylesSet.add( 'default', [
+ * // Block Styles
+ * { name: 'Blue Title', element: 'h3', styles: { 'color': 'Blue' } },
+ * { name: 'Red Title', element: 'h3', styles: { 'color': 'Red' } },
+ *
+ * // Inline Styles
+ * { name: 'Marker: Yellow', element: 'span', styles: { 'background-color': 'Yellow' } },
+ * { name: 'Marker: Green', element: 'span', styles: { 'background-color': 'Lime' } },
+ *
+ * // Object Styles
+ * {
+ * name: 'Image on Left',
+ * element: 'img',
+ * attributes: {
+ * style: 'padding: 5px; margin-right: 5px',
+ * border: '2',
+ * align: 'left'
+ * }
+ * }
+ * ] );
+ *
+ * @since 3.2
+ * @class
+ * @singleton
+ * @extends CKEDITOR.resourceManager
+ */
+CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
+
+// Backward compatibility (#5025).
+CKEDITOR.addStylesSet = CKEDITOR.tools.bind( CKEDITOR.stylesSet.add, CKEDITOR.stylesSet );
+CKEDITOR.loadStylesSet = function( name, url, callback ) {
+ CKEDITOR.stylesSet.addExternal( name, url, '' );
+ CKEDITOR.stylesSet.load( name, callback );
+};
+
+
+/**
+ * Gets the current styleSet for this instance.
+ *
+ * editor.getStylesSet( function( stylesDefinitions ) {} );
+ *
+ * @param {Function} callback The function to be called with the styles data.
+ */
+CKEDITOR.editor.prototype.getStylesSet = function( callback ) {
+ if ( !this._.stylesDefinitions ) {
+ var editor = this,
+ // Respect the backwards compatible definition entry
+ configStyleSet = editor.config.stylesCombo_stylesSet || editor.config.stylesSet || 'default';
+
+ // #5352 Allow to define the styles directly in the config object
+ if ( configStyleSet instanceof Array ) {
+ editor._.stylesDefinitions = configStyleSet;
+ callback( configStyleSet );
+ return;
+ }
+
+ var partsStylesSet = configStyleSet.split( ':' ),
+ styleSetName = partsStylesSet[ 0 ],
+ externalPath = partsStylesSet[ 1 ];
+
+ CKEDITOR.stylesSet.addExternal( styleSetName, externalPath ? partsStylesSet.slice( 1 ).join( ':' ) : CKEDITOR.getUrl( 'styles.js' ), '' );
+
+ CKEDITOR.stylesSet.load( styleSetName, function( stylesSet ) {
+ editor._.stylesDefinitions = stylesSet[ styleSetName ];
+ callback( editor._.stylesDefinitions );
+ });
+ } else
+ callback( this._.stylesDefinitions );
+};
+
+/**
+ * Indicates that fully selected read-only elements will be included when
+ * applying the style (for inline styles only).
+ *
+ * @since 3.5
+ * @property {Boolean} [includeReadonly=false]
+ * @member CKEDITOR.style
+ */
+
+/**
+ * Indicates that any matches element of this style will be eventually removed
+ * when calling {@link CKEDITOR.editor#removeStyle}.
+ *
+ * @since 4.0
+ * @property {Boolean} [alwaysRemoveElement=false]
+ * @member CKEDITOR.style
+ */
+
+/**
+ * Disables inline styling on read-only elements.
+ *
+ * @since 3.5
+ * @cfg {Boolean} [disableReadonlyStyling=false]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The "styles definition set" to use in the editor. They will be used in the
+ * styles combo and the style selector of the div container.
+ *
+ * The styles may be defined in the page containing the editor, or can be
+ * loaded on demand from an external file. In the second case, if this setting
+ * contains only a name, the styles definition file will be loaded from the
+ * `styles` folder inside the styles plugin folder.
+ *
+ * Otherwise, this setting has the `name:url` syntax, making it
+ * possible to set the URL from which loading the styles file.
+ *
+ * Previously this setting was available as `config.stylesCombo_stylesSet`.
+ *
+ * // Load from the styles' styles folder (mystyles.js file).
+ * config.stylesSet = 'mystyles';
+ *
+ * // Load from a relative URL.
+ * config.stylesSet = 'mystyles:/editorstyles/styles.js';
+ *
+ * // Load from a full URL.
+ * config.stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js';
+ *
+ * // Load from a list of definitions.
+ * config.stylesSet = [
+ * { name: 'Strong Emphasis', element: 'strong' },
+ * { name: 'Emphasis', element: 'em' },
+ * ...
+ * ];
+ *
+ * @since 3.3
+ * @cfg {String/Array} [stylesSet='default']
+ * @member CKEDITOR.config
+ */
diff --git a/devel/third-party/ckeditor/core/template.js b/devel/third-party/ckeditor/core/template.js
new file mode 100644
index 0000000..a213e36
--- /dev/null
+++ b/devel/third-party/ckeditor/core/template.js
@@ -0,0 +1,62 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.template} class, which represents
+ * an UI template for an editor instance.
+ */
+
+(function() {
+ var cache = {};
+
+ /**
+ * Lightweight template used to build the output string from variables.
+ *
+ * // HTML template for presenting a label UI.
+ * var tpl = new CKEDITOR.template( '<div class="{cls}">{label}</div>' );
+ * alert( tpl.output( { cls: 'cke-label', label: 'foo'} ) ); // '<div class="cke-label">foo</div>'
+ *
+ * @class
+ * @constructor Creates a template class instance.
+ * @param {String} source The template source.
+ */
+ CKEDITOR.template = function( source ) {
+ // Builds an optimized function body for the output() method, focused on performance.
+ // For example, if we have this "source":
+ // '<div style="{style}">{editorName}</div>'
+ // ... the resulting function body will be (apart from the "buffer" handling):
+ // return [ '<div style="', data['style'] == undefined ? '{style}' : data['style'], '">', data['editorName'] == undefined ? '{editorName}' : data['editorName'], '</div>' ].join('');
+
+ // Try to read from the cache.
+ if ( cache[ source ] )
+ this.output = cache[ source ];
+ else {
+ var fn = source
+ // Escape all quotation marks (").
+ .replace( /'/g, "\\'" )
+ // Inject the template keys replacement.
+ .replace( /{([^}]+)}/g, function( m, key ) {
+ return "',data['" + key + "']==undefined?'{" + key + "}':data['" + key + "'],'";
+ });
+
+ fn = "return buffer?buffer.push('" + fn + "'):['" + fn + "'].join('');";
+ this.output = cache[ source ] = Function( 'data', 'buffer', fn );
+ }
+ };
+})();
+
+/**
+ * Processes the template, filling its variables with the provided data.
+ *
+ * @method output
+ * @param {Object} data An object containing properties which values will be
+ * used to fill the template variables. The property names must match the
+ * template variables names. Variables without matching properties will be
+ * kept untouched.
+ * @param {Array} [buffer] An array into which the output data will be pushed into.
+ * The number of entries appended to the array is unknown.
+ * @returns {String/Number} If `buffer` has not been provided, the processed
+ * template output data, otherwise the new length of `buffer`.
+ */
diff --git a/devel/third-party/ckeditor/core/themes.js b/devel/third-party/ckeditor/core/themes.js
deleted file mode 100644
index b20fdcb..0000000
--- a/devel/third-party/ckeditor/core/themes.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.themes} object, which is used to
- * manage themes registration and loading.
- */
-
-/**
- * Manages themes registration and loading.
- * @namespace
- * @augments CKEDITOR.resourceManager
- * @example
- */
-CKEDITOR.themes = new CKEDITOR.resourceManager(
- '_source/'+ // @Packager.RemoveLine
- 'themes/', 'theme' );
diff --git a/devel/third-party/ckeditor/core/tools.js b/devel/third-party/ckeditor/core/tools.js
index a1bff9a..ffe4ffc 100644
--- a/devel/third-party/ckeditor/core/tools.js
+++ b/devel/third-party/ckeditor/core/tools.js
@@ -1,747 +1,853 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.tools} object, which contains
- * utility functions.
- */
-
-(function()
-{
- var functions = [];
-
- CKEDITOR.on( 'reset', function()
- {
- functions = [];
- });
-
- /**
- * Utility functions.
- * @namespace
- * @example
- */
- CKEDITOR.tools =
- {
- /**
- * Compare the elements of two arrays.
- * @param {Array} arrayA An array to be compared.
- * @param {Array} arrayB The other array to be compared.
- * @returns {Boolean} "true" is the arrays have the same lenght and
- * their elements match.
- * @example
- * var a = [ 1, 'a', 3 ];
- * var b = [ 1, 3, 'a' ];
- * var c = [ 1, 'a', 3 ];
- * var d = [ 1, 'a', 3, 4 ];
- *
- * alert( CKEDITOR.tools.arrayCompare( a, b ) ); // false
- * alert( CKEDITOR.tools.arrayCompare( a, c ) ); // true
- * alert( CKEDITOR.tools.arrayCompare( a, d ) ); // false
- */
- arrayCompare : function( arrayA, arrayB )
- {
- if ( !arrayA && !arrayB )
- return true;
-
- if ( !arrayA || !arrayB || arrayA.length != arrayB.length )
- return false;
-
- for ( var i = 0 ; i < arrayA.length ; i++ )
- {
- if ( arrayA[ i ] != arrayB[ i ] )
- return false;
- }
-
- return true;
- },
-
- /**
- * Creates a deep copy of an object.
- * Attention: there is no support for recursive references.
- * @param {Object} object The object to be cloned.
- * @returns {Object} The object clone.
- * @example
- * var obj =
- * {
- * name : 'John',
- * cars :
- * {
- * Mercedes : { color : 'blue' },
- * Porsche : { color : 'red' }
- * }
- * };
- * var clone = CKEDITOR.tools.clone( obj );
- * clone.name = 'Paul';
- * clone.cars.Porsche.color = 'silver';
- * alert( obj.name ); // John
- * alert( clone.name ); // Paul
- * alert( obj.cars.Porsche.color ); // red
- * alert( clone.cars.Porsche.color ); // silver
- */
- clone : function( obj )
- {
- var clone;
-
- // Array.
- if ( obj && ( obj instanceof Array ) )
- {
- clone = [];
-
- for ( var i = 0 ; i < obj.length ; i++ )
- clone[ i ] = this.clone( obj[ i ] );
-
- return clone;
- }
-
- // "Static" types.
- if ( obj === null
- || ( typeof( obj ) != 'object' )
- || ( obj instanceof String )
- || ( obj instanceof Number )
- || ( obj instanceof Boolean )
- || ( obj instanceof Date )
- || ( obj instanceof RegExp) )
- {
- return obj;
- }
-
- // Objects.
- clone = new obj.constructor();
-
- for ( var propertyName in obj )
- {
- var property = obj[ propertyName ];
- clone[ propertyName ] = this.clone( property );
- }
-
- return clone;
- },
-
- /**
- * Turn the first letter of string to upper-case.
- * @param {String} str
- */
- capitalize: function( str )
- {
- return str.charAt( 0 ).toUpperCase() + str.substring( 1 ).toLowerCase();
- },
-
- /**
- * Copy the properties from one object to another. By default, properties
- * already present in the target object <strong>are not</strong> overwritten.
- * @param {Object} target The object to be extended.
- * @param {Object} source[,souce(n)] The objects from which copy
- * properties. Any number of objects can be passed to this function.
- * @param {Boolean} [overwrite] If 'true' is specified it indicates that
- * properties already present in the target object could be
- * overwritten by subsequent objects.
- * @param {Object} [properties] Only properties within the specified names
- * list will be received from the source object.
- * @returns {Object} the extended object (target).
- * @example
- * // Create the sample object.
- * var myObject =
- * {
- * prop1 : true
- * };
- *
- * // Extend the above object with two properties.
- * CKEDITOR.tools.extend( myObject,
- * {
- * prop2 : true,
- * prop3 : true
- * } );
- *
- * // Alert "prop1", "prop2" and "prop3".
- * for ( var p in myObject )
- * alert( p );
- */
- extend : function( target )
- {
- var argsLength = arguments.length,
- overwrite, propertiesList;
-
- if ( typeof ( overwrite = arguments[ argsLength - 1 ] ) == 'boolean')
- argsLength--;
- else if ( typeof ( overwrite = arguments[ argsLength - 2 ] ) == 'boolean' )
- {
- propertiesList = arguments [ argsLength -1 ];
- argsLength-=2;
- }
- for ( var i = 1 ; i < argsLength ; i++ )
- {
- var source = arguments[ i ];
- for ( var propertyName in source )
- {
- // Only copy existed fields if in overwrite mode.
- if ( overwrite === true || target[ propertyName ] == undefined )
- {
- // Only copy specified fields if list is provided.
- if ( !propertiesList || ( propertyName in propertiesList ) )
- target[ propertyName ] = source[ propertyName ];
-
- }
- }
- }
-
- return target;
- },
-
- /**
- * Creates an object which is an instance of a class which prototype is a
- * predefined object. All properties defined in the source object are
- * automatically inherited by the resulting object, including future
- * changes to it.
- * @param {Object} source The source object to be used as the prototype for
- * the final object.
- * @returns {Object} The resulting copy.
- */
- prototypedCopy : function( source )
- {
- var copy = function()
- {};
- copy.prototype = source;
- return new copy();
- },
-
- /**
- * Checks if an object is an Array.
- * @param {Object} object The object to be checked.
- * @type Boolean
- * @returns <i>true</i> if the object is an Array, otherwise <i>false</i>.
- * @example
- * alert( CKEDITOR.tools.isArray( [] ) ); // "true"
- * alert( CKEDITOR.tools.isArray( 'Test' ) ); // "false"
- */
- isArray : function( object )
- {
- return ( !!object && object instanceof Array );
- },
-
- /**
- * Whether the object contains no properties of it's own.
- * @param object
- */
- isEmpty : function ( object )
- {
- for ( var i in object )
- {
- if ( object.hasOwnProperty( i ) )
- return false;
- }
- return true;
- },
-
- /**
- * Transforms a CSS property name to its relative DOM style name.
- * @param {String} cssName The CSS property name.
- * @returns {String} The transformed name.
- * @example
- * alert( CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) ); // "backgroundColor"
- * alert( CKEDITOR.tools.cssStyleToDomStyle( 'float' ) ); // "cssFloat"
- */
- cssStyleToDomStyle : ( function()
- {
- var test = document.createElement( 'div' ).style;
-
- var cssFloat = ( typeof test.cssFloat != 'undefined' ) ? 'cssFloat'
- : ( typeof test.styleFloat != 'undefined' ) ? 'styleFloat'
- : 'float';
-
- return function( cssName )
- {
- if ( cssName == 'float' )
- return cssFloat;
- else
- {
- return cssName.replace( /-./g, function( match )
- {
- return match.substr( 1 ).toUpperCase();
- });
- }
- };
- } )(),
-
- /**
- * Build the HTML snippet of a set of <style>/<link>.
- * @param css {String|Array} Each of which are url (absolute) of a CSS file or
- * a trunk of style text.
- */
- buildStyleHtml : function ( css )
- {
- css = [].concat( css );
- var item, retval = [];
- for ( var i = 0; i < css.length; i++ )
- {
- item = css[ i ];
- // Is CSS style text ?
- if ( /@import|[{}]/.test(item) )
- retval.push('<style>' + item + '</style>');
- else
- retval.push('<link type="text/css" rel=stylesheet href="' + item + '">');
- }
- return retval.join( '' );
- },
-
- /**
- * Replace special HTML characters in a string with their relative HTML
- * entity values.
- * @param {String} text The string to be encoded.
- * @returns {String} The encode string.
- * @example
- * alert( CKEDITOR.tools.htmlEncode( 'A > B & C < D' ) ); // "A > B & C < D"
- */
- htmlEncode : function( text )
- {
- var standard = function( text )
- {
- var span = new CKEDITOR.dom.element( 'span' );
- span.setText( text );
- return span.getHtml();
- };
-
- var fix1 = ( standard( '\n' ).toLowerCase() == '<br>' ) ?
- function( text )
- {
- // #3874 IE and Safari encode line-break into <br>
- return standard( text ).replace( /<br>/gi, '\n' );
- } :
- standard;
-
- var fix2 = ( standard( '>' ) == '>' ) ?
- function( text )
- {
- // WebKit does't encode the ">" character, which makes sense, but
- // it's different than other browsers.
- return fix1( text ).replace( />/g, '>' );
- } :
- fix1;
-
- var fix3 = ( standard( ' ' ) == ' ' ) ?
- function( text )
- {
- // #3785 IE8 changes spaces (>= 2) to
- return fix2( text ).replace( / /g, ' ' );
- } :
- fix2;
-
- this.htmlEncode = fix3;
-
- return this.htmlEncode( text );
- },
-
- /**
- * Replace special HTML characters in HTMLElement's attribute with their relative HTML entity values.
- * @param {String} The attribute's value to be encoded.
- * @returns {String} The encode value.
- * @example
- * element.setAttribute( 'title', '<a " b >' );
- * alert( CKEDITOR.tools.htmlEncodeAttr( element.getAttribute( 'title' ) ); // ">a " b <"
- */
- htmlEncodeAttr : function( text )
- {
- return text.replace( /"/g, '"' ).replace( /</g, '<' ).replace( />/g, '>' );
- },
-
- /**
- * Replace characters can't be represented through CSS Selectors string
- * by CSS Escape Notation where the character escape sequence consists
- * of a backslash character (\) followed by the orginal characters.
- * Ref: http://www.w3.org/TR/css3-selectors/#grammar
- * @param cssSelectText
- * @return the escaped selector text.
- */
- escapeCssSelector : function( cssSelectText )
- {
- return cssSelectText.replace( /[\s#:.,$*^\[\]()~=+>]/g, '\\$&' );
- },
-
- /**
- * Gets a unique number for this CKEDITOR execution session. It returns
- * progressive numbers starting at 1.
- * @function
- * @returns {Number} A unique number.
- * @example
- * alert( CKEDITOR.tools.<b>getNextNumber()</b> ); // "1" (e.g.)
- * alert( CKEDITOR.tools.<b>getNextNumber()</b> ); // "2"
- */
- getNextNumber : (function()
- {
- var last = 0;
- return function()
- {
- return ++last;
- };
- })(),
-
- /**
- * Gets a unique ID for CKEditor's interface elements. It returns a
- * string with the "cke_" prefix and a progressive number.
- * @function
- * @returns {String} A unique ID.
- * @example
- * alert( CKEDITOR.tools.<b>getNextId()</b> ); // "cke_1" (e.g.)
- * alert( CKEDITOR.tools.<b>getNextId()</b> ); // "cke_2"
- */
- getNextId : function()
- {
- return 'cke_' + this.getNextNumber();
- },
-
- /**
- * Creates a function override.
- * @param {Function} originalFunction The function to be overridden.
- * @param {Function} functionBuilder A function that returns the new
- * function. The original function reference will be passed to this
- * function.
- * @returns {Function} The new function.
- * @example
- * var example =
- * {
- * myFunction : function( name )
- * {
- * alert( 'Name: ' + name );
- * }
- * };
- *
- * example.myFunction = CKEDITOR.tools.override( example.myFunction, function( myFunctionOriginal )
- * {
- * return function( name )
- * {
- * alert( 'Override Name: ' + name );
- * myFunctionOriginal.call( this, name );
- * };
- * });
- */
- override : function( originalFunction, functionBuilder )
- {
- return functionBuilder( originalFunction );
- },
-
- /**
- * Executes a function after specified delay.
- * @param {Function} func The function to be executed.
- * @param {Number} [milliseconds] The amount of time (millisecods) to wait
- * to fire the function execution. Defaults to zero.
- * @param {Object} [scope] The object to hold the function execution scope
- * (the "this" object). By default the "window" object.
- * @param {Object|Array} [args] A single object, or an array of objects, to
- * pass as arguments to the function.
- * @param {Object} [ownerWindow] The window that will be used to set the
- * timeout. By default the current "window".
- * @returns {Object} A value that can be used to cancel the function execution.
- * @example
- * CKEDITOR.tools.<b>setTimeout(
- * function()
- * {
- * alert( 'Executed after 2 seconds' );
- * },
- * 2000 )</b>;
- */
- setTimeout : function( func, milliseconds, scope, args, ownerWindow )
- {
- if ( !ownerWindow )
- ownerWindow = window;
-
- if ( !scope )
- scope = ownerWindow;
-
- return ownerWindow.setTimeout(
- function()
- {
- if ( args )
- func.apply( scope, [].concat( args ) ) ;
- else
- func.apply( scope ) ;
- },
- milliseconds || 0 );
- },
-
- /**
- * Remove spaces from the start and the end of a string. The following
- * characters are removed: space, tab, line break, line feed.
- * @function
- * @param {String} str The text from which remove the spaces.
- * @returns {String} The modified string without the boundary spaces.
- * @example
- * alert( CKEDITOR.tools.trim( ' example ' ); // "example"
- */
- trim : (function()
- {
- // We are not using \s because we don't want "non-breaking spaces" to be caught.
- var trimRegex = /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;
- return function( str )
- {
- return str.replace( trimRegex, '' ) ;
- };
- })(),
-
- /**
- * Remove spaces from the start (left) of a string. The following
- * characters are removed: space, tab, line break, line feed.
- * @function
- * @param {String} str The text from which remove the spaces.
- * @returns {String} The modified string excluding the removed spaces.
- * @example
- * alert( CKEDITOR.tools.ltrim( ' example ' ); // "example "
- */
- ltrim : (function()
- {
- // We are not using \s because we don't want "non-breaking spaces" to be caught.
- var trimRegex = /^[ \t\n\r]+/g;
- return function( str )
- {
- return str.replace( trimRegex, '' ) ;
- };
- })(),
-
- /**
- * Remove spaces from the end (right) of a string. The following
- * characters are removed: space, tab, line break, line feed.
- * @function
- * @param {String} str The text from which remove the spaces.
- * @returns {String} The modified string excluding the removed spaces.
- * @example
- * alert( CKEDITOR.tools.ltrim( ' example ' ); // " example"
- */
- rtrim : (function()
- {
- // We are not using \s because we don't want "non-breaking spaces" to be caught.
- var trimRegex = /[ \t\n\r]+$/g;
- return function( str )
- {
- return str.replace( trimRegex, '' ) ;
- };
- })(),
-
- /**
- * Returns the index of an element in an array.
- * @param {Array} array The array to be searched.
- * @param {Object} entry The element to be found.
- * @returns {Number} The (zero based) index of the first entry that matches
- * the entry, or -1 if not found.
- * @example
- * var letters = [ 'a', 'b', 0, 'c', false ];
- * alert( CKEDITOR.tools.indexOf( letters, '0' ) ); "-1" because 0 !== '0'
- * alert( CKEDITOR.tools.indexOf( letters, false ) ); "4" because 0 !== false
- */
- indexOf :
- // #2514: We should try to use Array.indexOf if it does exist.
- ( Array.prototype.indexOf ) ?
- function( array, entry )
- {
- return array.indexOf( entry );
- }
- :
- function( array, entry )
- {
- for ( var i = 0, len = array.length ; i < len ; i++ )
- {
- if ( array[ i ] === entry )
- return i;
- }
- return -1;
- },
-
- /**
- * Creates a function that will always execute in the context of a
- * specified object.
- * @param {Function} func The function to be executed.
- * @param {Object} obj The object to which bind the execution context.
- * @returns {Function} The function that can be used to execute the
- * "func" function in the context of "obj".
- * @example
- * var obj = { text : 'My Object' };
- *
- * function alertText()
- * {
- * alert( this.text );
- * }
- *
- * var newFunc = <b>CKEDITOR.tools.bind( alertText, obj )</b>;
- * newFunc(); // Alerts "My Object".
- */
- bind : function( func, obj )
- {
- return function() { return func.apply( obj, arguments ); };
- },
-
- /**
- * Class creation based on prototype inheritance, with supports of the
- * following features:
- * <ul>
- * <li> Static fields </li>
- * <li> Private fields </li>
- * <li> Public (prototype) fields </li>
- * <li> Chainable base class constructor </li>
- * </ul>
- * @param {Object} definition The class definition object.
- * @returns {Function} A class-like JavaScript function.
- */
- createClass : function( definition )
- {
- var $ = definition.$,
- baseClass = definition.base,
- privates = definition.privates || definition._,
- proto = definition.proto,
- statics = definition.statics;
-
- if ( privates )
- {
- var originalConstructor = $;
- $ = function()
- {
- // Create (and get) the private namespace.
- var _ = this._ || ( this._ = {} );
-
- // Make some magic so "this" will refer to the main
- // instance when coding private functions.
- for ( var privateName in privates )
- {
- var priv = privates[ privateName ];
-
- _[ privateName ] =
- ( typeof priv == 'function' ) ? CKEDITOR.tools.bind( priv, this ) : priv;
- }
-
- originalConstructor.apply( this, arguments );
- };
- }
-
- if ( baseClass )
- {
- $.prototype = this.prototypedCopy( baseClass.prototype );
- $.prototype.constructor = $;
- $.prototype.base = function()
- {
- this.base = baseClass.prototype.base;
- baseClass.apply( this, arguments );
- this.base = arguments.callee;
- };
- }
-
- if ( proto )
- this.extend( $.prototype, proto, true );
-
- if ( statics )
- this.extend( $, statics, true );
-
- return $;
- },
-
- /**
- * Creates a function reference that can be called later using
- * CKEDITOR.tools.callFunction. This approach is specially useful to
- * make DOM attribute function calls to JavaScript defined functions.
- * @param {Function} fn The function to be executed on call.
- * @param {Object} [scope] The object to have the context on "fn" execution.
- * @returns {Number} A unique reference to be used in conjuction with
- * CKEDITOR.tools.callFunction.
- * @example
- * var ref = <b>CKEDITOR.tools.addFunction</b>(
- * function()
- * {
- * alert( 'Hello!');
- * });
- * CKEDITOR.tools.callFunction( ref ); // Hello!
- */
- addFunction : function( fn, scope )
- {
- return functions.push( function()
- {
- fn.apply( scope || this, arguments );
- }) - 1;
- },
-
- /**
- * Removes the function reference created with {@see CKEDITOR.tools.addFunction}.
- * @param {Number} ref The function reference created with
- * CKEDITOR.tools.addFunction.
- */
- removeFunction : function( ref )
- {
- functions[ ref ] = null;
- },
-
- /**
- * Executes a function based on the reference created with
- * CKEDITOR.tools.addFunction.
- * @param {Number} ref The function reference created with
- * CKEDITOR.tools.addFunction.
- * @param {[Any,[Any,...]} params Any number of parameters to be passed
- * to the executed function.
- * @returns {Any} The return value of the function.
- * @example
- * var ref = CKEDITOR.tools.addFunction(
- * function()
- * {
- * alert( 'Hello!');
- * });
- * <b>CKEDITOR.tools.callFunction( ref )</b>; // Hello!
- */
- callFunction : function( ref )
- {
- var fn = functions[ ref ];
- return fn && fn.apply( window, Array.prototype.slice.call( arguments, 1 ) );
- },
-
- /**
- * Append the 'px' length unit to the size if it's missing.
- * @param length
- */
- cssLength : (function()
- {
- var decimalRegex = /^\d+(?:\.\d+)?$/;
- return function( length )
- {
- return length + ( decimalRegex.test( length ) ? 'px' : '' );
- };
- })(),
-
- /**
- * String specified by {@param str} repeats {@param times} times.
- * @param str
- * @param times
- */
- repeat : function( str, times )
- {
- return new Array( times + 1 ).join( str );
- },
-
- /**
- * Return the first successfully executed function's return value that
- * doesn't throw any exception.
- */
- tryThese : function()
- {
- var returnValue;
- for ( var i = 0, length = arguments.length; i < length; i++ )
- {
- var lambda = arguments[i];
- try
- {
- returnValue = lambda();
- break;
- }
- catch (e) {}
- }
- return returnValue;
- },
-
- /**
- * Generate a combined key from a series of params.
- * @param {String} subKey One or more string used as sub keys.
- * @example
- * var key = CKEDITOR.tools.genKey( 'key1', 'key2', 'key3' );
- * alert( key ); // "key1-key2-key3".
- */
- genKey : function()
- {
- return Array.prototype.slice.call( arguments ).join( '-' );
- }
- };
-})();
-
-// PACKAGER_RENAME( CKEDITOR.tools )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.tools} object, which contains
+ * utility functions.
+ */
+
+(function() {
+ var functions = [],
+ cssVendorPrefix =
+ CKEDITOR.env.gecko ? '-moz-' :
+ CKEDITOR.env.webkit ? '-webkit-' :
+ CKEDITOR.env.opera ? '-o-' :
+ CKEDITOR.env.ie ? '-ms-' :
+ '';
+
+ CKEDITOR.on( 'reset', function() {
+ functions = [];
+ });
+
+ /**
+ * Utility functions.
+ *
+ * @class
+ * @singleton
+ */
+ CKEDITOR.tools = {
+ /**
+ * Compare the elements of two arrays.
+ *
+ * var a = [ 1, 'a', 3 ];
+ * var b = [ 1, 3, 'a' ];
+ * var c = [ 1, 'a', 3 ];
+ * var d = [ 1, 'a', 3, 4 ];
+ *
+ * alert( CKEDITOR.tools.arrayCompare( a, b ) ); // false
+ * alert( CKEDITOR.tools.arrayCompare( a, c ) ); // true
+ * alert( CKEDITOR.tools.arrayCompare( a, d ) ); // false
+ *
+ * @param {Array} arrayA An array to be compared.
+ * @param {Array} arrayB The other array to be compared.
+ * @returns {Boolean} "true" is the arrays have the same lenght and
+ * their elements match.
+ */
+ arrayCompare: function( arrayA, arrayB ) {
+ if ( !arrayA && !arrayB )
+ return true;
+
+ if ( !arrayA || !arrayB || arrayA.length != arrayB.length )
+ return false;
+
+ for ( var i = 0; i < arrayA.length; i++ ) {
+ if ( arrayA[ i ] != arrayB[ i ] )
+ return false;
+ }
+
+ return true;
+ },
+
+ /**
+ * Creates a deep copy of an object.
+ *
+ * **Note**: there is no support for recursive references.
+ *
+ * var obj = {
+ * name: 'John',
+ * cars: {
+ * Mercedes: { color: 'blue' },
+ * Porsche: { color: 'red' }
+ * }
+ * };
+ * var clone = CKEDITOR.tools.clone( obj );
+ * clone.name = 'Paul';
+ * clone.cars.Porsche.color = 'silver';
+ *
+ * alert( obj.name ); // 'John'
+ * alert( clone.name ); // 'Paul'
+ * alert( obj.cars.Porsche.color ); // 'red'
+ * alert( clone.cars.Porsche.color ); // 'silver'
+ *
+ * @param {Object} object The object to be cloned.
+ * @returns {Object} The object clone.
+ */
+ clone: function( obj ) {
+ var clone;
+
+ // Array.
+ if ( obj && ( obj instanceof Array ) ) {
+ clone = [];
+
+ for ( var i = 0; i < obj.length; i++ )
+ clone[ i ] = this.clone( obj[ i ] );
+
+ return clone;
+ }
+
+ // "Static" types.
+ if ( obj === null || ( typeof( obj ) != 'object' ) || ( obj instanceof String ) || ( obj instanceof Number ) || ( obj instanceof Boolean ) || ( obj instanceof Date ) || ( obj instanceof RegExp ) ) {
+ return obj;
+ }
+
+ // Objects.
+ clone = new obj.constructor();
+
+ for ( var propertyName in obj ) {
+ var property = obj[ propertyName ];
+ clone[ propertyName ] = this.clone( property );
+ }
+
+ return clone;
+ },
+
+ /**
+ * Turn the first letter of string to upper-case.
+ *
+ * @param {String} str
+ * @returns {String}
+ */
+ capitalize: function( str ) {
+ return str.charAt( 0 ).toUpperCase() + str.substring( 1 ).toLowerCase();
+ },
+
+ /**
+ * Copy the properties from one object to another. By default, properties
+ * already present in the target object **are not** overwritten.
+ *
+ * // Create the sample object.
+ * var myObject = {
+ * prop1: true
+ * };
+ *
+ * // Extend the above object with two properties.
+ * CKEDITOR.tools.extend( myObject, {
+ * prop2: true,
+ * prop3: true
+ * } );
+ *
+ * // Alert 'prop1', 'prop2' and 'prop3'.
+ * for ( var p in myObject )
+ * alert( p );
+ *
+ * @param {Object} target The object to be extended.
+ * @param {Object...} source The object(s) from which copy
+ * properties. Any number of objects can be passed to this function.
+ * @param {Boolean} [overwrite] If 'true' is specified it indicates that
+ * properties already present in the target object could be
+ * overwritten by subsequent objects.
+ * @param {Object} [properties] Only properties within the specified names
+ * list will be received from the source object.
+ * @returns {Object} the extended object (target).
+ */
+ extend: function( target ) {
+ var argsLength = arguments.length,
+ overwrite, propertiesList;
+
+ if ( typeof( overwrite = arguments[ argsLength - 1 ] ) == 'boolean' )
+ argsLength--;
+ else if ( typeof( overwrite = arguments[ argsLength - 2 ] ) == 'boolean' ) {
+ propertiesList = arguments[ argsLength - 1 ];
+ argsLength -= 2;
+ }
+ for ( var i = 1; i < argsLength; i++ ) {
+ var source = arguments[ i ];
+ for ( var propertyName in source ) {
+ // Only copy existed fields if in overwrite mode.
+ if ( overwrite === true || target[ propertyName ] == undefined ) {
+ // Only copy specified fields if list is provided.
+ if ( !propertiesList || ( propertyName in propertiesList ) )
+ target[ propertyName ] = source[ propertyName ];
+
+ }
+ }
+ }
+
+ return target;
+ },
+
+ /**
+ * Creates an object which is an instance of a class which prototype is a
+ * predefined object. All properties defined in the source object are
+ * automatically inherited by the resulting object, including future
+ * changes to it.
+ *
+ * @param {Object} source The source object to be used as the prototype for
+ * the final object.
+ * @returns {Object} The resulting copy.
+ */
+ prototypedCopy: function( source ) {
+ var copy = function() {};
+ copy.prototype = source;
+ return new copy();
+ },
+
+ /**
+ * Checks if an object is an Array.
+ *
+ * alert( CKEDITOR.tools.isArray( [] ) ); // true
+ * alert( CKEDITOR.tools.isArray( 'Test' ) ); // false
+ *
+ * @param {Object} object The object to be checked.
+ * @returns {Boolean} `true` if the object is an Array, otherwise `false`.
+ */
+ isArray: function( object ) {
+ return ( !!object && object instanceof Array );
+ },
+
+ /**
+ * Whether the object contains no properties of it's own.
+ *
+ * @param object
+ * @returns {Boolean}
+ */
+ isEmpty: function( object ) {
+ for ( var i in object ) {
+ if ( object.hasOwnProperty( i ) )
+ return false;
+ }
+ return true;
+ },
+
+ /**
+ * Generate object or string containing vendor specific and vendor free CSS properties.
+ *
+ * CKEDITOR.tools.cssVendorPrefix( 'border-radius', '0', true );
+ * // On Firefox: '-moz-border-radius:0;border-radius:0'
+ * // On Chrome: '-webkit-border-radius:0;border-radius:0'
+ *
+ * @param {String} property The CSS property name.
+ * @param {String} value The CSS value.
+ * @param {Boolean} [asString=false] If `true`, then returned value will be a CSS string.
+ * @returns {Object/String} The object containing CSS properties or its stringified version.
+ */
+ cssVendorPrefix: function( property, value, asString ) {
+ if ( asString )
+ return cssVendorPrefix + property + ':' + value + ';' + property + ':' + value;
+
+ var ret = {};
+ ret[ property ] = value;
+ ret[ cssVendorPrefix + property ] = value;
+
+ return ret;
+ },
+
+ /**
+ * Transforms a CSS property name to its relative DOM style name.
+ *
+ * alert( CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) ); // 'backgroundColor'
+ * alert( CKEDITOR.tools.cssStyleToDomStyle( 'float' ) ); // 'cssFloat'
+ *
+ * @method
+ * @param {String} cssName The CSS property name.
+ * @returns {String} The transformed name.
+ */
+ cssStyleToDomStyle: (function() {
+ var test = document.createElement( 'div' ).style;
+
+ var cssFloat = ( typeof test.cssFloat != 'undefined' ) ? 'cssFloat' : ( typeof test.styleFloat != 'undefined' ) ? 'styleFloat' : 'float';
+
+ return function( cssName ) {
+ if ( cssName == 'float' )
+ return cssFloat;
+ else {
+ return cssName.replace( /-./g, function( match ) {
+ return match.substr( 1 ).toUpperCase();
+ });
+ }
+ };
+ })(),
+
+ /**
+ * Build the HTML snippet of a set of `<style>/<link>`.
+ *
+ * @param {String/Array} css Each of which are url (absolute) of a CSS file or
+ * a trunk of style text.
+ * @returns {String}
+ */
+ buildStyleHtml: function( css ) {
+ css = [].concat( css );
+ var item,
+ retval = [];
+ for ( var i = 0; i < css.length; i++ ) {
+ if ( ( item = css[ i ] ) ) {
+ // Is CSS style text ?
+ if ( /@import|[{}]/.test( item ) )
+ retval.push( '<style>' + item + '</style>' );
+ else
+ retval.push( '<link type="text/css" rel=stylesheet href="' + item + '">' );
+ }
+ }
+ return retval.join( '' );
+ },
+
+ /**
+ * Replace special HTML characters in a string with their relative HTML
+ * entity values.
+ *
+ * alert( CKEDITOR.tools.htmlEncode( 'A > B & C < D' ) ); // 'A > B & C < D'
+ *
+ * @param {String} text The string to be encoded.
+ * @returns {String} The encode string.
+ */
+ htmlEncode: function( text ) {
+ return String( text ).replace( /&/g, '&' ).replace( />/g, '>' ).replace( /</g, '<' );
+ },
+
+ /**
+ * Replace special HTML characters in HTMLElement's attribute with their relative HTML entity values.
+ *
+ * element.setAttribute( 'title', '<a " b >' );
+ * alert( CKEDITOR.tools.htmlEncodeAttr( element.getAttribute( 'title' ) ); // '>a " b <'
+ *
+ * @param {String} The attribute's value to be encoded.
+ * @returns {String} The encode value.
+ */
+ htmlEncodeAttr: function( text ) {
+ return text.replace( /"/g, '"' ).replace( /</g, '<' ).replace( />/g, '>' );
+ },
+
+ /**
+ * Gets a unique number for this CKEDITOR execution session. It returns
+ * progressive numbers starting at 1.
+ *
+ * alert( CKEDITOR.tools.getNextNumber() ); // (e.g.) 1
+ * alert( CKEDITOR.tools.getNextNumber() ); // 2
+ *
+ * @method
+ * @returns {Number} A unique number.
+ */
+ getNextNumber: (function() {
+ var last = 0;
+ return function() {
+ return ++last;
+ };
+ })(),
+
+ /**
+ * Gets a unique ID for CKEditor's interface elements. It returns a
+ * string with the "cke_" prefix and a progressive number.
+ *
+ * alert( CKEDITOR.tools.getNextId() ); // (e.g.) 'cke_1'
+ * alert( CKEDITOR.tools.getNextId() ); // 'cke_2'
+ *
+ * @returns {String} A unique ID.
+ */
+ getNextId: function() {
+ return 'cke_' + this.getNextNumber();
+ },
+
+ /**
+ * Creates a function override.
+ *
+ * var obj = {
+ * myFunction: function( name ) {
+ * alert( 'Name: ' + name );
+ * }
+ * };
+ *
+ * obj.myFunction = CKEDITOR.tools.override( obj.myFunction, function( myFunctionOriginal ) {
+ * return function( name ) {
+ * alert( 'Overriden name: ' + name );
+ * myFunctionOriginal.call( this, name );
+ * };
+ * } );
+ *
+ * @param {Function} originalFunction The function to be overridden.
+ * @param {Function} functionBuilder A function that returns the new
+ * function. The original function reference will be passed to this function.
+ * @returns {Function} The new function.
+ */
+ override: function( originalFunction, functionBuilder ) {
+ var newFn = functionBuilder( originalFunction );
+ newFn.prototype = originalFunction.prototype;
+ return newFn;
+ },
+
+ /**
+ * Executes a function after specified delay.
+ *
+ * CKEDITOR.tools.setTimeout( function() {
+ * alert( 'Executed after 2 seconds' );
+ * }, 2000 );
+ *
+ * @param {Function} func The function to be executed.
+ * @param {Number} [milliseconds=0] The amount of time (millisecods) to wait
+ * to fire the function execution.
+ * @param {Object} [scope=window] The object to hold the function execution scope
+ * (the `this` object).
+ * @param {Object/Array} [args] A single object, or an array of objects, to
+ * pass as arguments to the function.
+ * @param {Object} [ownerWindow=window] The window that will be used to set the
+ * timeout.
+ * @returns {Object} A value that can be used to cancel the function execution.
+ */
+ setTimeout: function( func, milliseconds, scope, args, ownerWindow ) {
+ if ( !ownerWindow )
+ ownerWindow = window;
+
+ if ( !scope )
+ scope = ownerWindow;
+
+ return ownerWindow.setTimeout( function() {
+ if ( args )
+ func.apply( scope, [].concat( args ) );
+ else
+ func.apply( scope );
+ }, milliseconds || 0 );
+ },
+
+ /**
+ * Remove spaces from the start and the end of a string. The following
+ * characters are removed: space, tab, line break, line feed.
+ *
+ * alert( CKEDITOR.tools.trim( ' example ' ); // 'example'
+ *
+ * @method
+ * @param {String} str The text from which remove the spaces.
+ * @returns {String} The modified string without the boundary spaces.
+ */
+ trim: (function() {
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
+ var trimRegex = /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;
+ return function( str ) {
+ return str.replace( trimRegex, '' );
+ };
+ })(),
+
+ /**
+ * Remove spaces from the start (left) of a string. The following
+ * characters are removed: space, tab, line break, line feed.
+ *
+ * alert( CKEDITOR.tools.ltrim( ' example ' ); // 'example '
+ *
+ * @method
+ * @param {String} str The text from which remove the spaces.
+ * @returns {String} The modified string excluding the removed spaces.
+ */
+ ltrim: (function() {
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
+ var trimRegex = /^[ \t\n\r]+/g;
+ return function( str ) {
+ return str.replace( trimRegex, '' );
+ };
+ })(),
+
+ /**
+ * Remove spaces from the end (right) of a string. The following
+ * characters are removed: space, tab, line break, line feed.
+ *
+ * alert( CKEDITOR.tools.ltrim( ' example ' ); // ' example'
+ *
+ * @method
+ * @param {String} str The text from which remove the spaces.
+ * @returns {String} The modified string excluding the removed spaces.
+ */
+ rtrim: (function() {
+ // We are not using \s because we don't want "non-breaking spaces" to be caught.
+ var trimRegex = /[ \t\n\r]+$/g;
+ return function( str ) {
+ return str.replace( trimRegex, '' );
+ };
+ })(),
+
+ /**
+ * Returns the index of an element in an array.
+ *
+ * var letters = [ 'a', 'b', 0, 'c', false ];
+ * alert( CKEDITOR.tools.indexOf( letters, '0' ) ); // -1 because 0 !== '0'
+ * alert( CKEDITOR.tools.indexOf( letters, false ) ); // 4 because 0 !== false
+ *
+ * @param {Array} array The array to be searched.
+ * @param {Object/Function} value The element to be found. Can be an
+ * evaluation function which receives a single parameter call for
+ * each entry in the array, returning `true` if the entry matches.
+ * @returns {Number} The (zero based) index of the first entry that matches
+ * the entry, or `-1` if not found.
+ */
+ indexOf: function( array, value ) {
+ if ( typeof value == 'function' ) {
+ for ( var i = 0, len = array.length; i < len; i++ ) {
+ if ( value( array[ i ] ) )
+ return i;
+ }
+ } else if ( array.indexOf ) {
+ return array.indexOf( value );
+ } else {
+ for ( i = 0, len = array.length; i < len; i++ ) {
+ if ( array[ i ] === value )
+ return i;
+ }
+ }
+ return -1;
+ },
+
+ /**
+ * Returns the index of an element in an array.
+ *
+ * var obj = { prop: true };
+ * var letters = [ 'a', 'b', 0, obj, false ];
+ *
+ * alert( CKEDITOR.tools.indexOf( letters, '0' ) ); // null
+ * alert( CKEDITOR.tools.indexOf( letters, function( value ) {
+ * // Return true when passed value has property 'prop'.
+ * return value && 'prop' in value;
+ * } ) ); // obj
+ *
+ * @param {Array} array The array to be searched.
+ * @param {Object/Function} value The element to be found. Can be an
+ * evaluation function which receives a single parameter call for
+ * each entry in the array, returning `true` if the entry matches.
+ * @returns Object The value that was found in an array.
+ */
+ search: function( array, value ) {
+ var index = CKEDITOR.tools.indexOf( array, value );
+ return index >= 0 ? array[ index ] : null;
+ },
+
+ /**
+ * Creates a function that will always execute in the context of a
+ * specified object.
+ *
+ * var obj = { text: 'My Object' };
+ *
+ * function alertText() {
+ * alert( this.text );
+ * }
+ *
+ * var newFunc = CKEDITOR.tools.bind( alertText, obj );
+ * newFunc(); // Alerts 'My Object'.
+ *
+ * @param {Function} func The function to be executed.
+ * @param {Object} obj The object to which bind the execution context.
+ * @returns {Function} The function that can be used to execute the
+ * `func` function in the context of `obj`.
+ */
+ bind: function( func, obj ) {
+ return function() {
+ return func.apply( obj, arguments );
+ };
+ },
+
+ /**
+ * Class creation based on prototype inheritance, with supports of the
+ * following features:
+ *
+ * * Static fields
+ * * Private fields
+ * * Public (prototype) fields
+ * * Chainable base class constructor
+ *
+ * @param {Object} definition The class definition object.
+ * @returns {Function} A class-like JavaScript function.
+ */
+ createClass: function( definition ) {
+ var $ = definition.$,
+ baseClass = definition.base,
+ privates = definition.privates || definition._,
+ proto = definition.proto,
+ statics = definition.statics;
+
+ // Create the constructor, if not present in the definition.
+ !$ && ( $ = function() {
+ baseClass && this.base.apply( this, arguments );
+ });
+
+ if ( privates ) {
+ var originalConstructor = $;
+ $ = function() {
+ // Create (and get) the private namespace.
+ var _ = this._ || ( this._ = {} );
+
+ // Make some magic so "this" will refer to the main
+ // instance when coding private functions.
+ for ( var privateName in privates ) {
+ var priv = privates[ privateName ];
+
+ _[ privateName ] = ( typeof priv == 'function' ) ? CKEDITOR.tools.bind( priv, this ) : priv;
+ }
+
+ originalConstructor.apply( this, arguments );
+ };
+ }
+
+ if ( baseClass ) {
+ $.prototype = this.prototypedCopy( baseClass.prototype );
+ $.prototype.constructor = $;
+ // Super references.
+ $.base = baseClass;
+ $.baseProto = baseClass.prototype;
+ // Super constructor.
+ $.prototype.base = function() {
+ this.base = baseClass.prototype.base;
+ baseClass.apply( this, arguments );
+ this.base = arguments.callee;
+ };
+ }
+
+ if ( proto )
+ this.extend( $.prototype, proto, true );
+
+ if ( statics )
+ this.extend( $, statics, true );
+
+ return $;
+ },
+
+ /**
+ * Creates a function reference that can be called later using
+ * {@link #callFunction}. This approach is specially useful to
+ * make DOM attribute function calls to JavaScript defined functions.
+ *
+ * var ref = CKEDITOR.tools.addFunction( function() {
+ * alert( 'Hello!');
+ * } );
+ * CKEDITOR.tools.callFunction( ref ); // 'Hello!'
+ *
+ * @param {Function} fn The function to be executed on call.
+ * @param {Object} [scope] The object to have the context on `fn` execution.
+ * @returns {Number} A unique reference to be used in conjuction with
+ * {@link #callFunction}.
+ */
+ addFunction: function( fn, scope ) {
+ return functions.push( function() {
+ return fn.apply( scope || this, arguments );
+ }) - 1;
+ },
+
+ /**
+ * Removes the function reference created with {@link #addFunction}.
+ *
+ * @param {Number} ref The function reference created with
+ * {@link #addFunction}.
+ */
+ removeFunction: function( ref ) {
+ functions[ ref ] = null;
+ },
+
+ /**
+ * Executes a function based on the reference created with {@link #addFunction}.
+ *
+ * var ref = CKEDITOR.tools.addFunction( function() {
+ * alert( 'Hello!');
+ * } );
+ * CKEDITOR.tools.callFunction( ref ); // 'Hello!'
+ *
+ * @param {Number} ref The function reference created with {@link #addFunction}.
+ * @param {Mixed} params Any number of parameters to be passed to the executed function.
+ * @returns {Mixed} The return value of the function.
+ */
+ callFunction: function( ref ) {
+ var fn = functions[ ref ];
+ return fn && fn.apply( window, Array.prototype.slice.call( arguments, 1 ) );
+ },
+
+ /**
+ * Append the `px` length unit to the size if it's missing.
+ *
+ * var cssLength = CKEDITOR.tools.cssLength;
+ * cssLength( 42 ); // '42px'
+ * cssLength( '42' ); // '42px'
+ * cssLength( '42px' ); // '42px'
+ * cssLength( '42%' ); // '42%'
+ * cssLength( 'bold' ); // 'bold'
+ * cssLength( false ); // ''
+ * cssLength( NaN ); // ''
+ *
+ * @method
+ * @param {Number/String/Boolean} length
+ */
+ cssLength: (function() {
+ var pixelRegex = /^-?\d+\.?\d*px$/,
+ lengthTrimmed;
+
+ return function( length ) {
+ lengthTrimmed = CKEDITOR.tools.trim( length + '' ) + 'px';
+
+ if ( pixelRegex.test( lengthTrimmed ) )
+ return lengthTrimmed;
+ else
+ return length || '';
+ };
+ })(),
+
+ /**
+ * Convert the specified CSS length value to the calculated pixel length inside this page.
+ *
+ * **Note:** Percentage based value is left intact.
+ *
+ * @method
+ * @param {String} cssLength CSS length value.
+ */
+ convertToPx: (function() {
+ var calculator;
+
+ return function( cssLength ) {
+ if ( !calculator ) {
+ calculator = CKEDITOR.dom.element.createFromHtml( '<div style="position:absolute;left:-9999px;' +
+ 'top:-9999px;margin:0px;padding:0px;border:0px;"' +
+ '></div>', CKEDITOR.document );
+ CKEDITOR.document.getBody().append( calculator );
+ }
+
+ if ( !( /%$/ ).test( cssLength ) ) {
+ calculator.setStyle( 'width', cssLength );
+ return calculator.$.clientWidth;
+ }
+
+ return cssLength;
+ };
+ })(),
+
+ /**
+ * String specified by `str` repeats `times` times.
+ *
+ * @param {String} str
+ * @param {Number} times
+ * @returns {String}
+ */
+ repeat: function( str, times ) {
+ return new Array( times + 1 ).join( str );
+ },
+
+ /**
+ * Return the first successfully executed function's return value that
+ * doesn't throw any exception.
+ *
+ * @param {Function...} fn
+ * @returns {Mixed}
+ */
+ tryThese: function() {
+ var returnValue;
+ for ( var i = 0, length = arguments.length; i < length; i++ ) {
+ var lambda = arguments[ i ];
+ try {
+ returnValue = lambda();
+ break;
+ } catch ( e ) {}
+ }
+ return returnValue;
+ },
+
+ /**
+ * Generate a combined key from a series of params.
+ *
+ * var key = CKEDITOR.tools.genKey( 'key1', 'key2', 'key3' );
+ * alert( key ); // 'key1-key2-key3'.
+ *
+ * @param {String} subKey One or more string used as sub keys.
+ * @returns {String}
+ */
+ genKey: function() {
+ return Array.prototype.slice.call( arguments ).join( '-' );
+ },
+
+ /**
+ * Create A "deferred" function which will not run immediately,
+ * rather runs as soon as the interpreterâs call stack is empty.
+ * Behaves much like window.setTimeout with a delay.
+ *
+ * **Note:** The return value of the original function will loose.
+ *
+ * @param {Function} fn The callee function.
+ * @returns {Function} The new deferred function.
+ */
+ defer: function( fn ) {
+ return function() {
+ var args = arguments,
+ self = this;
+ window.setTimeout( function() {
+ fn.apply( self, args );
+ }, 0 );
+ };
+ },
+
+ /**
+ * Try to avoid differences in the style attribute.
+ *
+ * @param {String} styleText The style data to be normalized.
+ * @param {Boolean} [nativeNormalize=false] Parse the data using the browser.
+ * @returns {String} The normalized value.
+ */
+ normalizeCssText: function( styleText, nativeNormalize ) {
+ var props = [],
+ name,
+ parsedProps = CKEDITOR.tools.parseCssText( styleText, true, nativeNormalize );
+
+ for ( name in parsedProps )
+ props.push( name + ':' + parsedProps[ name ] );
+
+ props.sort();
+
+ return props.length ? ( props.join( ';' ) + ';' ) : '';
+ },
+
+ /**
+ * Find and convert `rgb(x,x,x)` colors definition to hexadecimal notation.
+ * @param {String} styleText The style data (or just a string containing rgb colors) to be converted.
+ * @returns {String} The style data with rgb colors converted to hexadecimal equivalents.
+ */
+ convertRgbToHex: function( styleText ) {
+ return styleText.replace( /(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi, function( match, red, green, blue ) {
+ var color = [ red, green, blue ];
+ // Add padding zeros if the hex value is less than 0x10.
+ for ( var i = 0; i < 3; i++ )
+ color[ i ] = ( '0' + parseInt( color[ i ], 10 ).toString( 16 ) ).slice( -2 );
+ return '#' + color.join( '' );
+ });
+ },
+
+ /**
+ * Turn inline style text properties into one hash.
+ *
+ * @param {String} styleText The style data to be parsed.
+ * @param {Boolean} [normalize=false] Normalize properties and values
+ * (e.g. trim spaces, convert to lower case).
+ * @param {Boolean} [nativeNormalize=false] Parse the data using the browser.
+ * @returns {String} The object containing parsed properties.
+ */
+ parseCssText: function( styleText, normalize, nativeNormalize ) {
+ var retval = {};
+
+ if ( nativeNormalize ) {
+ // Injects the style in a temporary span object, so the browser parses it,
+ // retrieving its final format.
+ var temp = new CKEDITOR.dom.element( 'span' );
+ temp.setAttribute( 'style', styleText );
+ styleText = CKEDITOR.tools.convertRgbToHex( temp.getAttribute( 'style' ) || '' );
+ }
+
+ // IE will leave a single semicolon when failed to parse the style text. (#3891)
+ if ( !styleText || styleText == ';' )
+ return retval;
+
+ styleText.replace( /"/g, '"' ).replace( /\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value ) {
+ if ( normalize ) {
+ name = name.toLowerCase();
+ // Normalize font-family property, ignore quotes and being case insensitive. (#7322)
+ // http://www.w3.org/TR/css3-fonts/#font-family-the-font-family-property
+ if ( name == 'font-family' )
+ value = value.toLowerCase().replace( /["']/g, '' ).replace( /\s*,\s*/g, ',' );
+ value = CKEDITOR.tools.trim( value );
+ }
+
+ retval[ name ] = value;
+ });
+ return retval;
+ }
+ };
+})();
+
+// PACKAGER_RENAME( CKEDITOR.tools )
diff --git a/devel/third-party/ckeditor/core/ui.js b/devel/third-party/ckeditor/core/ui.js
index 0a66c2e..77e645a 100644
--- a/devel/third-party/ckeditor/core/ui.js
+++ b/devel/third-party/ckeditor/core/ui.js
@@ -1,116 +1,168 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Contains UI features related to an editor instance.
- * @constructor
- * @param {CKEDITOR.editor} editor The editor instance.
- * @example
- */
-CKEDITOR.ui = function( editor )
-{
- if ( editor.ui )
- return editor.ui;
-
- /**
- * Object used to hold private stuff.
- * @private
- */
- this._ =
- {
- handlers : {},
- items : {},
- editor : editor
- };
-
- return this;
-};
-
-// PACKAGER_RENAME( CKEDITOR.ui )
-
-CKEDITOR.ui.prototype =
-{
- /**
- * Adds a UI item to the items collection. These items can be later used in
- * the interface.
- * @param {String} name The UI item name.
- * @param {Object} type The item type.
- * @param {Object} definition The item definition. The properties of this
- * object depend on the item type.
- * @example
- * // Add a new button named "MyBold".
- * editorInstance.ui.add( 'MyBold', CKEDITOR.UI_BUTTON,
- * {
- * label : 'My Bold',
- * command : 'bold'
- * });
- */
- add : function( name, type, definition )
- {
- this._.items[ name ] =
- {
- type : type,
- // The name of {@link CKEDITOR.command} which associate with this UI.
- command : definition.command || null,
- args : Array.prototype.slice.call( arguments, 2 )
- };
- },
-
- /**
- * Gets a UI object.
- * @param {String} name The UI item hame.
- * @example
- */
- create : function( name )
- {
- var item = this._.items[ name ],
- handler = item && this._.handlers[ item.type ],
- command = item && item.command && this._.editor.getCommand( item.command );
-
- var result = handler && handler.create.apply( this, item.args );
-
- // Add reference inside command object.
- if ( command )
- command.uiItems.push( result );
-
- return result;
- },
-
- /**
- * Adds a handler for a UI item type. The handler is responsible for
- * transforming UI item definitions in UI objects.
- * @param {Object} type The item type.
- * @param {Object} handler The handler definition.
- * @example
- */
- addHandler : function( type, handler )
- {
- this._.handlers[ type ] = handler;
- }
-};
-
-/**
- * (Virtual Class) Do not call this constructor. This class is not really part
- * of the API. It just illustrates the features of hanlder objects to be
- * passed to the {@link CKEDITOR.ui.prototype.addHandler} function.
- * @name CKEDITOR.ui.handlerDefinition
- * @constructor
- * @example
- */
-
- /**
- * Transforms an item definition into an UI item object.
- * @name CKEDITOR.handlerDefinition.prototype.create
- * @function
- * @param {Object} definition The item definition.
- * @example
- * editorInstance.ui.addHandler( CKEDITOR.UI_BUTTON,
- * {
- * create : function( definition )
- * {
- * return new CKEDITOR.ui.button( definition );
- * }
- * });
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * Contains UI features related to an editor instance.
+ *
+ * @class
+ * @mixins CKEDITOR.event
+ * @constructor Creates an ui class instance.
+ * @param {CKEDITOR.editor} editor The editor instance.
+ */
+CKEDITOR.ui = function( editor ) {
+ if ( editor.ui )
+ return editor.ui;
+
+ this.items = {};
+ this.instances = {};
+ this.editor = editor;
+
+ /**
+ * Object used to hold private stuff.
+ *
+ * @private
+ */
+ this._ = {
+ handlers: {}
+ };
+
+ return this;
+};
+
+// PACKAGER_RENAME( CKEDITOR.ui )
+
+CKEDITOR.ui.prototype = {
+ /**
+ * Adds a UI item to the items collection. These items can be later used in
+ * the interface.
+ *
+ * // Add a new button named 'MyBold'.
+ * editorInstance.ui.add( 'MyBold', CKEDITOR.UI_BUTTON, {
+ * label: 'My Bold',
+ * command: 'bold'
+ * } );
+ *
+ * @param {String} name The UI item name.
+ * @param {Object} type The item type.
+ * @param {Object} definition The item definition. The properties of this
+ * object depend on the item type.
+ */
+ add: function( name, type, definition ) {
+ // Compensate the unique name of this ui item to definition.
+ definition.name = name.toLowerCase();
+
+ var item = this.items[ name ] = {
+ type: type,
+ // The name of {@link CKEDITOR.command} which associate with this UI.
+ command: definition.command || null,
+ args: Array.prototype.slice.call( arguments, 2 )
+ };
+
+ CKEDITOR.tools.extend( item, definition );
+ },
+
+ /**
+ * Retrieve the created ui objects by name.
+ *
+ * @param {String} name The name of the UI definition.
+ */
+ get: function( name ) {
+ return this.instances[ name ];
+ },
+
+ /**
+ * Gets a UI object.
+ *
+ * @param {String} name The UI item hame.
+ * @returns {Object} The UI element.
+ */
+ create: function( name ) {
+ var item = this.items[ name ],
+ handler = item && this._.handlers[ item.type ],
+ command = item && item.command && this.editor.getCommand( item.command );
+
+ var result = handler && handler.create.apply( this, item.args );
+
+ this.instances[ name ] = result;
+
+ // Add reference inside command object.
+ if ( command )
+ command.uiItems.push( result );
+
+ if ( result && !result.type )
+ result.type = item.type;
+
+ return result;
+ },
+
+ /**
+ * Adds a handler for a UI item type. The handler is responsible for
+ * transforming UI item definitions in UI objects.
+ *
+ * @param {Object} type The item type.
+ * @param {Object} handler The handler definition.
+ */
+ addHandler: function( type, handler ) {
+ this._.handlers[ type ] = handler;
+ },
+
+ /**
+ * Returns the unique DOM element that represents one editor's UI part, as
+ * the editor UI is made completely decoupled from DOM (no DOM reference hold),
+ * this method is mainly used to retrieve the rendered DOM part by name.
+ *
+ * // Hide the bottom space in the UI.
+ * var bottom = editor.ui.getSpace( 'bottom' );
+ * bottom.setStyle( 'display', 'none' );
+ *
+ * @param {String} name The space name.
+ * @returns {CKEDITOR.dom.element} The element that represents the space.
+ */
+ space: function( name ) {
+ return CKEDITOR.document.getById( this.spaceId( name ) );
+ },
+
+ /**
+ * Generate the HTML ID from a specific UI space name.
+ *
+ * @param name
+ * @todo param and return types?
+ */
+ spaceId: function( name ) {
+ return this.editor.id + '_' + name;
+ }
+};
+
+CKEDITOR.event.implementOn( CKEDITOR.ui );
+
+/**
+ * Internal event fired when a new UI element is ready.
+ *
+ * @event ready
+ * @param {Object} data The new element.
+ */
+
+/**
+ * Virtual class which just illustrates the features of handler objects to be
+ * passed to the {@link CKEDITOR.ui#addHandler} function.
+ * This class is not really part of the API, so don't call its constructor.
+ *
+ * @class CKEDITOR.ui.handlerDefinition
+ */
+
+/**
+ * Transforms an item definition into an UI item object.
+ *
+ * editorInstance.ui.addHandler( CKEDITOR.UI_BUTTON, {
+ * create: function( definition ) {
+ * return new CKEDITOR.ui.button( definition );
+ * }
+ * } );
+ *
+ * @method create
+ * @param {Object} definition The item definition.
+ * @returns {Object} The UI element.
+ * @todo We lack the "UI element" abstract super class.
+ */
diff --git a/devel/third-party/ckeditor/core/xml.js b/devel/third-party/ckeditor/core/xml.js
deleted file mode 100644
index 1824e96..0000000
--- a/devel/third-party/ckeditor/core/xml.js
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.xml} class, which represents a
- * loaded XML document.
- */
-
-/**
- * Represents a loaded XML document.
- * @constructor
- * @param {object|string} xmlObjectOrData A native XML (DOM document) object or
- * a string containing the XML definition to be loaded.
- * @example
- * var xml = <b>new CKEDITOR.xml( '<books><book title="My Book" /></books>' )</b>;
- */
-CKEDITOR.xml = function( xmlObjectOrData )
-{
- var baseXml = null;
-
- if ( typeof xmlObjectOrData == 'object' )
- baseXml = xmlObjectOrData;
- else
- {
- var data = ( xmlObjectOrData || '' ).replace( / /g, '\xA0' );
- if ( window.DOMParser )
- baseXml = (new DOMParser()).parseFromString( data, 'text/xml' );
- else if ( window.ActiveXObject )
- {
- try { baseXml = new ActiveXObject( 'MSXML2.DOMDocument' ); }
- catch(e)
- {
- try { baseXml = new ActiveXObject( 'Microsoft.XmlDom' ); } catch(e) {}
- }
-
- if ( baseXml )
- {
- baseXml.async = false;
- baseXml.resolveExternals = false;
- baseXml.validateOnParse = false;
- baseXml.loadXML( data );
- }
- }
- }
-
- /**
- * The native XML (DOM document) used by the class instance.
- * @type object
- * @example
- */
- this.baseXml = baseXml;
-};
-
-CKEDITOR.xml.prototype =
-{
- /**
- * Get a single node from the XML document, based on a XPath query.
- * @param {String} xpath The XPath query to execute.
- * @param {Object} [contextNode] The XML DOM node to be used as the context
- * for the XPath query. The document root is used by default.
- * @returns {Object} A XML node element or null if the query has no results.
- * @example
- * // Create the XML instance.
- * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
- * // Get the first <item> node.
- * var itemNode = <b>xml.selectSingleNode( 'list/item' )</b>;
- * // Alert "item".
- * alert( itemNode.nodeName );
- */
- selectSingleNode : function( xpath, contextNode )
- {
- var baseXml = this.baseXml;
-
- if ( contextNode || ( contextNode = baseXml ) )
- {
- if ( CKEDITOR.env.ie || contextNode.selectSingleNode ) // IE
- return contextNode.selectSingleNode( xpath );
- else if ( baseXml.evaluate ) // Others
- {
- var result = baseXml.evaluate( xpath, contextNode, null, 9, null);
- return ( result && result.singleNodeValue ) || null;
- }
- }
-
- return null;
- },
-
- /**
- * Gets a list node from the XML document, based on a XPath query.
- * @param {String} xpath The XPath query to execute.
- * @param {Object} [contextNode] The XML DOM node to be used as the context
- * for the XPath query. The document root is used by default.
- * @returns {ArrayLike} An array containing all matched nodes. The array will
- * be empty if the query has no results.
- * @example
- * // Create the XML instance.
- * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
- * // Get the first <item> node.
- * var itemNodes = xml.selectSingleNode( 'list/item' );
- * // Alert "item" twice, one for each <item>.
- * for ( var i = 0 ; i < itemNodes.length ; i++ )
- * alert( itemNodes[i].nodeName );
- */
- selectNodes : function( xpath, contextNode )
- {
- var baseXml = this.baseXml,
- nodes = [];
-
- if ( contextNode || ( contextNode = baseXml ) )
- {
- if ( CKEDITOR.env.ie || contextNode.selectNodes ) // IE
- return contextNode.selectNodes( xpath );
- else if ( baseXml.evaluate ) // Others
- {
- var result = baseXml.evaluate( xpath, contextNode, null, 5, null);
-
- if ( result )
- {
- var node;
- while ( ( node = result.iterateNext() ) )
- nodes.push( node );
- }
- }
- }
-
- return nodes;
- },
-
- /**
- * Gets the string representation of hte inner contents of a XML node,
- * based on a XPath query.
- * @param {String} xpath The XPath query to execute.
- * @param {Object} [contextNode] The XML DOM node to be used as the context
- * for the XPath query. The document root is used by default.
- * @returns {String} The textual representation of the inner contents of
- * the node or null if the query has no results.
- * @example
- * // Create the XML instance.
- * var xml = new CKEDITOR.xml( '<list><item id="test1" /><item id="test2" /></list>' );
- * // Alert "<item id="test1" /><item id="test2" />".
- * alert( xml.getInnerXml( 'list' ) );
- */
- getInnerXml : function( xpath, contextNode )
- {
- var node = this.selectSingleNode( xpath, contextNode ),
- xml = [];
- if ( node )
- {
- node = node.firstChild;
- while ( node )
- {
- if ( node.xml ) // IE
- xml.push( node.xml );
- else if ( window.XMLSerializer ) // Others
- xml.push( ( new XMLSerializer() ).serializeToString( node ) );
-
- node = node.nextSibling;
- }
- }
-
- return xml.length ? xml.join( '' ) : null;
- }
-};
diff --git a/devel/third-party/ckeditor/lang/_languages.js b/devel/third-party/ckeditor/lang/_languages.js
deleted file mode 100644
index 5b29f18..0000000
--- a/devel/third-party/ckeditor/lang/_languages.js
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-var CKEDITOR_LANGS = (function()
-{
- var langs =
- {
- af : 'Afrikaans',
- ar : 'Arabic',
- bg : 'Bulgarian',
- bn : 'Bengali/Bangla',
- bs : 'Bosnian',
- ca : 'Catalan',
- cs : 'Czech',
- cy : 'Welsh',
- da : 'Danish',
- de : 'German',
- el : 'Greek',
- en : 'English',
- 'en-au' : 'English (Australia)',
- 'en-ca' : 'English (Canadian)',
- 'en-gb' : 'English (United Kingdom)',
- eo : 'Esperanto',
- es : 'Spanish',
- et : 'Estonian',
- eu : 'Basque',
- fa : 'Persian',
- fi : 'Finnish',
- fo : 'Faroese',
- fr : 'French',
- 'fr-ca' : 'French (Canada)',
- gl : 'Galician',
- gu : 'Gujarati',
- he : 'Hebrew',
- hi : 'Hindi',
- hr : 'Croatian',
- hu : 'Hungarian',
- is : 'Icelandic',
- it : 'Italian',
- ja : 'Japanese',
- km : 'Khmer',
- ko : 'Korean',
- lt : 'Lithuanian',
- lv : 'Latvian',
- mn : 'Mongolian',
- ms : 'Malay',
- nb : 'Norwegian Bokmal',
- nl : 'Dutch',
- no : 'Norwegian',
- pl : 'Polish',
- pt : 'Portuguese (Portugal)',
- 'pt-br' : 'Portuguese (Brazil)',
- ro : 'Romanian',
- ru : 'Russian',
- sk : 'Slovak',
- sl : 'Slovenian',
- sr : 'Serbian (Cyrillic)',
- 'sr-latn' : 'Serbian (Latin)',
- sv : 'Swedish',
- th : 'Thai',
- tr : 'Turkish',
- uk : 'Ukrainian',
- vi : 'Vietnamese',
- zh : 'Chinese Traditional',
- 'zh-cn' : 'Chinese Simplified'
- };
-
- var langsArray = [];
-
- for ( var code in langs )
- {
- langsArray.push( { code : code, name : langs[ code ] } );
- }
-
- langsArray.sort( function( a, b )
- {
- return ( a.name < b.name ) ? -1 : 1;
- });
-
- return langsArray;
-})();
diff --git a/devel/third-party/ckeditor/lang/_translationstatus.txt b/devel/third-party/ckeditor/lang/_translationstatus.txt
index 28e77a7..8cfcdd3 100644
--- a/devel/third-party/ckeditor/lang/_translationstatus.txt
+++ b/devel/third-party/ckeditor/lang/_translationstatus.txt
@@ -1,60 +1,63 @@
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-
-af.js Found: 287 Missing: 244
-ar.js Found: 451 Missing: 80
-bg.js Found: 280 Missing: 251
-bn.js Found: 281 Missing: 250
-bs.js Found: 187 Missing: 344
-ca.js Found: 490 Missing: 41
-cs.js Found: 411 Missing: 120
-cy.js Found: 452 Missing: 79
-da.js Found: 404 Missing: 127
-de.js Found: 528 Missing: 3
-el.js Found: 286 Missing: 245
-en-au.js Found: 369 Missing: 162
-en-ca.js Found: 369 Missing: 162
-en-gb.js Found: 370 Missing: 161
-eo.js Found: 259 Missing: 272
-es.js Found: 524 Missing: 7
-et.js Found: 301 Missing: 230
-eu.js Found: 403 Missing: 128
-fa.js Found: 302 Missing: 229
-fi.js Found: 518 Missing: 13
-fo.js Found: 420 Missing: 111
-fr-ca.js Found: 301 Missing: 230
-fr.js Found: 403 Missing: 128
-gl.js Found: 283 Missing: 248
-gu.js Found: 300 Missing: 231
-he.js Found: 531 Missing: 0
-hi.js Found: 302 Missing: 229
-hr.js Found: 404 Missing: 127
-hu.js Found: 445 Missing: 86
-is.js Found: 307 Missing: 224
-it.js Found: 404 Missing: 127
-ja.js Found: 413 Missing: 118
-km.js Found: 275 Missing: 256
-ko.js Found: 293 Missing: 238
-lt.js Found: 306 Missing: 225
-lv.js Found: 283 Missing: 248
-mn.js Found: 300 Missing: 231
-ms.js Found: 265 Missing: 266
-nb.js Found: 470 Missing: 61
-nl.js Found: 531 Missing: 0
-no.js Found: 470 Missing: 61
-pl.js Found: 411 Missing: 120
-pt-br.js Found: 524 Missing: 7
-pt.js Found: 282 Missing: 249
-ro.js Found: 301 Missing: 230
-ru.js Found: 467 Missing: 64
-sk.js Found: 302 Missing: 229
-sl.js Found: 410 Missing: 121
-sr-latn.js Found: 276 Missing: 255
-sr.js Found: 275 Missing: 256
-sv.js Found: 299 Missing: 232
-th.js Found: 287 Missing: 244
-tr.js Found: 524 Missing: 7
-uk.js Found: 404 Missing: 127
-vi.js Found: 481 Missing: 50
-zh-cn.js Found: 531 Missing: 0
-zh.js Found: 404 Missing: 127
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+
+af.js Found: 62 Missing: 4
+ar.js Found: 51 Missing: 15
+bg.js Found: 58 Missing: 8
+bn.js Found: 40 Missing: 26
+bs.js Found: 29 Missing: 37
+ca.js Found: 61 Missing: 5
+cs.js Found: 66 Missing: 0
+cy.js Found: 66 Missing: 0
+da.js Found: 66 Missing: 0
+de.js Found: 66 Missing: 0
+el.js Found: 59 Missing: 7
+en-au.js Found: 38 Missing: 28
+en-ca.js Found: 37 Missing: 29
+en-gb.js Found: 61 Missing: 5
+eo.js Found: 66 Missing: 0
+es.js Found: 66 Missing: 0
+et.js Found: 66 Missing: 0
+eu.js Found: 48 Missing: 18
+fa.js Found: 66 Missing: 0
+fi.js Found: 66 Missing: 0
+fo.js Found: 66 Missing: 0
+fr-ca.js Found: 42 Missing: 24
+fr.js Found: 66 Missing: 0
+gl.js Found: 40 Missing: 26
+gu.js Found: 66 Missing: 0
+he.js Found: 66 Missing: 0
+hi.js Found: 43 Missing: 23
+hr.js Found: 66 Missing: 0
+hu.js Found: 63 Missing: 3
+is.js Found: 41 Missing: 25
+it.js Found: 66 Missing: 0
+ja.js Found: 62 Missing: 4
+ka.js Found: 62 Missing: 4
+km.js Found: 40 Missing: 26
+ko.js Found: 40 Missing: 26
+lt.js Found: 66 Missing: 0
+lv.js Found: 40 Missing: 26
+mk.js Found: 0 Missing: 66
+mn.js Found: 40 Missing: 26
+ms.js Found: 39 Missing: 27
+nb.js Found: 66 Missing: 0
+nl.js Found: 65 Missing: 1
+no.js Found: 66 Missing: 0
+pl.js Found: 66 Missing: 0
+pt-br.js Found: 66 Missing: 0
+pt.js Found: 52 Missing: 14
+ro.js Found: 61 Missing: 5
+ru.js Found: 66 Missing: 0
+sk.js Found: 49 Missing: 17
+sl.js Found: 48 Missing: 18
+sr-latn.js Found: 40 Missing: 26
+sr.js Found: 40 Missing: 26
+sv.js Found: 62 Missing: 4
+th.js Found: 40 Missing: 26
+tr.js Found: 66 Missing: 0
+ug.js Found: 66 Missing: 0
+uk.js Found: 66 Missing: 0
+vi.js Found: 66 Missing: 0
+zh-cn.js Found: 66 Missing: 0
+zh.js Found: 58 Missing: 8
diff --git a/devel/third-party/ckeditor/lang/af.js b/devel/third-party/ckeditor/lang/af.js
index 5ff01ee..e9d3315 100644
--- a/devel/third-party/ckeditor/lang/af.js
+++ b/devel/third-party/ckeditor/lang/af.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Afrikaans language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['af'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'Nuwe Bladsy',
- save : 'Bewaar',
- preview : 'Voorskou',
- cut : 'Uitsny ',
- copy : 'Kopieer',
- paste : 'Byvoeg',
- print : 'Druk',
- underline : 'Onderstreep',
- bold : 'Vet',
- italic : 'Skuins',
- selectAll : 'Selekteer alles',
- removeFormat : 'Formaat verweider',
- strike : 'Gestreik',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Horisontale lyn byvoeg',
- pagebreak : 'Bladsy breek byvoeg',
- unlink : 'Skakel verweider',
- undo : 'Ont-skep',
- redo : 'Her-skep',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Server deurblaai',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Oplaai',
- uploadSubmit : 'Stuur dit na die Server',
- image : 'Beeld',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'HakBox',
- radio : 'PuntBox',
- textField : 'Byvoegbare karakter strook',
- textarea : 'Byvoegbare karakter area',
- hiddenField : 'Blinde strook',
- button : 'Knop',
- select : 'Opklapbare keuse strook',
- imageButton : 'Beeld knop',
- notSet : '<geen instelling>',
- id : 'Id',
- name : 'Naam',
- langDir : 'Taal rigting',
- langDirLtr : 'Links na regs (LTR)',
- langDirRtl : 'Regs na links (RTL)',
- langCode : 'Taal kode',
- longDescr : 'Lang beskreiwing URL',
- cssClass : 'Skakel Tiepe',
- advisoryTitle : 'Voorbeveelings Titel',
- cssStyle : 'Styl',
- ok : 'OK',
- cancel : 'Kanseleer',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Ingewikkeld',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Spesiaale Karakter byvoeg',
- title : 'Kies spesiale karakter',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Skakel byvoeg/verander',
- other : '<ander>',
- menu : 'Verander skakel',
- title : 'Skakel',
- info : 'Skakel informasie',
- target : 'Mikpunt',
- upload : 'Oplaai',
- advanced : 'Ingewikkeld',
- type : 'Skakel soort',
- toUrl : 'URL', // MISSING
- toAnchor : 'Skakel na plekhouers in text',
- toEmail : 'E-Mail',
- targetFrame : '<raam>',
- targetPopup : '<popup venster>',
- targetFrameName : 'Mikpunt Venster Naam',
- targetPopupName : 'Popup Venster Naam',
- popupFeatures : 'Popup Venster Geaartheid',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Status Balk',
- popupLocationBar: 'Adres Balk',
- popupToolbar : 'Gereedskap Balk',
- popupMenuBar : 'Menu Balk',
- popupFullScreen : 'Voll Skerm (IE)',
- popupScrollBars : 'Gleibalkstuk',
- popupDependent : 'Afhanklik (Netscape)',
- popupWidth : 'Weite',
- popupLeft : 'Links Posisie',
- popupHeight : 'Hoogde',
- popupTop : 'Bo Posisie',
- id : 'Id', // MISSING
- langDir : 'Taal rigting',
- langDirLTR : 'Links na regs (LTR)',
- langDirRTL : 'Regs na links (RTL)',
- acccessKey : 'Toegang sleutel',
- name : 'Naam',
- langCode : 'Taal rigting',
- tabIndex : 'Tab Index',
- advisoryTitle : 'Voorbeveelings Titel',
- advisoryContentType : 'Voorbeveelings inhoud soort',
- cssClasses : 'Skakel Tiepe',
- charset : 'Geskakelde voorbeeld karakterstel',
- styles : 'Styl',
- selectAnchor : 'Kies \'n plekhouer',
- anchorName : 'Volgens plekhouer naam',
- anchorId : 'Volgens element Id',
- emailAddress : 'E-Mail Adres',
- emailSubject : 'Boodskap Opskrif',
- emailBody : 'Boodskap Inhoud',
- noAnchors : '(Geen plekhouers beskikbaar in dokument}',
- noUrl : 'Voeg asseblief die URL in',
- noEmail : 'Voeg asseblief die e-mail adres in'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Plekhouer byvoeg/verander',
- menu : 'Plekhouer eienskappe',
- title : 'Plekhouer eienskappe',
- name : 'Plekhouer Naam',
- errorName : 'Voltooi die plekhouer naam asseblief'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'Vind',
- replace : 'Vervang',
- findWhat : 'Soek wat:',
- replaceWith : 'Vervang met:',
- notFoundMsg : 'Die gespesifiseerde karakters word nie gevind nie.',
- matchCase : 'Vergelyk karakter skryfweise',
- matchWord : 'Vergelyk komplete woord',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Vervang alles',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabel',
- title : 'Tabel eienskappe',
- menu : 'Tabel eienskappe',
- deleteTable : 'Tabel verweider',
- rows : 'Reie',
- columns : 'Kolome',
- border : 'Kant groote',
- align : 'Parideering',
- alignLeft : 'Links',
- alignCenter : 'Middel',
- alignRight : 'Regs',
- width : 'Weite',
- widthPx : 'pixels',
- widthPc : 'percent',
- widthUnit : 'width unit', // MISSING
- height : 'Hoogde',
- cellSpace : 'Cell spasieering',
- cellPad : 'Cell buffer',
- caption : 'Beskreiwing',
- summary : 'Opsomming',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'Cell verweider',
- merge : 'Cell verenig',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Ry',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Ry verweider'
- },
-
- column :
- {
- menu : 'Kolom',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Kolom verweider'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Knop eienskappe',
- text : 'Karakters (Waarde)',
- type : 'Soort',
- typeBtn : 'Knop',
- typeSbm : 'Indien',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'HakBox eienskappe',
- radioTitle : 'PuntBox eienskappe',
- value : 'Waarde',
- selected : 'Uitgekies'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form eienskappe',
- menu : 'Form eienskappe',
- action : 'Aksie',
- method : 'Metode',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Opklapbare keuse strook eienskappe',
- selectInfo : 'Info',
- opAvail : 'Beskikbare Opsies',
- value : 'Waarde',
- size : 'Grote',
- lines : 'lyne',
- chkMulti : 'Laat meerere keuses toe',
- opText : 'Karakters',
- opValue : 'Waarde',
- btnAdd : 'Byvoeg',
- btnModify : 'Verander',
- btnUp : 'Op',
- btnDown : 'Af',
- btnSetValue : 'Stel as uitgekiesde waarde',
- btnDelete : 'Verweider'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Karakter area eienskappe',
- cols : 'Kolom',
- rows : 'Reie'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Karakter strook eienskappe',
- name : 'Naam',
- value : 'Waarde',
- charWidth : 'Karakter weite',
- maxChars : 'Maximale karakters',
- type : 'Soort',
- typeText : 'Karakters',
- typePass : 'Wagwoord'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Blinde strook eienskappe',
- name : 'Naam',
- value : 'Waarde'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Beeld eienskappe',
- titleButton : 'Beeld knop eienskappe',
- menu : 'Beeld eienskappe',
- infoTab : 'Beeld informasie',
- btnUpload : 'Stuur dit na die Server',
- upload : 'Uplaai',
- alt : 'Alternatiewe beskrywing',
- width : 'Weidte',
- height : 'Hoogde',
- lockRatio : 'Behou preporsie',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Herstel groote',
- border : 'Kant',
- hSpace : 'HSpasie',
- vSpace : 'VSpasie',
- align : 'Paradeer',
- alignLeft : 'Links',
- alignRight : 'Regs',
- alertUrl : 'Voeg asseblief Beeld URL in.',
- linkTab : 'Skakel',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash eienskappe',
- propertiesTab : 'Properties', // MISSING
- title : 'Flash eienskappe',
- chkPlay : 'Automaties Speel',
- chkLoop : 'Herhaling',
- chkMenu : 'Laat Flash Menu toe',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Scale',
- scaleAll : 'Wys alles',
- scaleNoBorder : 'Geen kante',
- scaleFit : 'Presiese pas',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Paradeer',
- alignLeft : 'Links',
- alignAbsBottom : 'Abs Onder',
- alignAbsMiddle : 'Abs Middel',
- alignBaseline : 'Baseline',
- alignBottom : 'Onder',
- alignMiddle : 'Middel',
- alignRight : 'Regs',
- alignTextTop : 'Text Bo',
- alignTop : 'Bo',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Agtergrond kleur',
- width : 'Weidte',
- height : 'Hoogde',
- hSpace : 'HSpasie',
- vSpace : 'VSpasie',
- validateSrc : 'Voeg asseblief die URL in',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Spelling nagaan',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Nie in woordeboek nie',
- changeTo : 'Verander na',
- btnIgnore : 'Ignoreer',
- btnIgnoreAll : 'Ignoreer na-volgende',
- btnReplace : 'Vervang',
- btnReplaceAll : 'vervang na-volgende',
- btnUndo : 'Ont-skep',
- noSuggestions : '- Geen voorstel -',
- progress : 'Spelling word beproef...',
- noMispell : 'Spellproef kompleet: Geen foute',
- noChanges : 'Spellproef kompleet: Geen woord veranderings',
- oneChange : 'Spellproef kompleet: Een woord verander',
- manyChanges : 'Spellproef kompleet: %1 woorde verander',
- ieSpellDownload : 'Geen Spellproefer geinstaleer nie. Wil U dit aflaai?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Voeg Smiley by',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Genommerde lys',
- bulletedlist : 'Gepunkte lys',
- indent : 'Paradeering verleng',
- outdent : 'Paradeering verkort',
-
- justify :
- {
- left : 'Links rig',
- center : 'Rig Middel',
- right : 'Regs rig',
- block : 'Blok paradeer'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Byvoeg',
- cutError : 'U browser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+X).',
- copyError : 'U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+C).',
- pasteMsg : 'Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Van Word af byvoeg',
- title : 'Van Word af byvoeg',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Voeg slegs karakters by',
- title : 'Voeg slegs karakters by'
- },
-
- templates :
- {
- button : 'Templates',
- title : 'Inhoud Templates',
- options : 'Template Options', // MISSING
- insertOption : 'Vervang bestaande inhoud',
- selectPromptMsg : 'Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):',
- emptyListMsg : '(Geen templates gedefinieerd)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Styl',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Karakter formaat',
- panelTitle : 'Karakter formaat',
-
- tag_p : 'Normaal',
- tag_pre : 'Geformateerd',
- tag_address : 'Adres',
- tag_h1 : 'Opskrif 1',
- tag_h2 : 'Opskrif 2',
- tag_h3 : 'Opskrif 3',
- tag_h4 : 'Opskrif 4',
- tag_h5 : 'Opskrif 5',
- tag_h6 : 'Opskrif 6',
- tag_div : 'Normaal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Karakters',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Karakters'
- },
-
- fontSize :
- {
- label : 'Karakter grote',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Karakter grote'
- },
-
- colorButton :
- {
- textColorTitle : 'Karakter kleur',
- bgColorTitle : 'Agtergrond kleur',
- panelTitle : 'Colors', // MISSING
- auto : 'Automaties',
- more : 'Meer Kleure...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Afrikaans language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'af' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Teksverwerker',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Druk op ALT 0 vir hulp',
+
+ browseServer: 'Blaai op bediener',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Oplaai',
+ uploadSubmit: 'Stuur na bediener',
+ image: 'Afbeelding',
+ flash: 'Flash',
+ form: 'Vorm',
+ checkbox: 'Merkhokkie',
+ radio: 'Radioknoppie',
+ textField: 'Teksveld',
+ textarea: 'Teks-area',
+ hiddenField: 'Blinde veld',
+ button: 'Knop',
+ select: 'Keuseveld',
+ imageButton: 'Afbeeldingsknop',
+ notSet: '<geen instelling>',
+ id: 'Id',
+ name: 'Naam',
+ langDir: 'Skryfrigting',
+ langDirLtr: 'Links na regs (LTR)',
+ langDirRtl: 'Regs na links (RTL)',
+ langCode: 'Taalkode',
+ longDescr: 'Lang beskrywing URL',
+ cssClass: 'CSS klasse',
+ advisoryTitle: 'Aanbevole titel',
+ cssStyle: 'Styl',
+ ok: 'OK',
+ cancel: 'Kanselleer',
+ close: 'Sluit',
+ preview: 'Voorbeeld',
+ resize: 'Sleep om te herskaal',
+ generalTab: 'Algemeen',
+ advancedTab: 'Gevorderd',
+ validateNumberFailed: 'Hierdie waarde is nie \'n getal nie.',
+ confirmNewPage: 'Alle wysiginge sal verlore gaan. Is u seker dat u \'n nuwe bladsy wil laai?',
+ confirmCancel: 'Sommige opsies is gewysig. Is u seker dat u hierdie dialoogvenster wil sluit?',
+ options: 'Opsies',
+ target: 'Doel',
+ targetNew: 'Nuwe venster (_blank)',
+ targetTop: 'Boonste venster (_top)',
+ targetSelf: 'Selfde venster (_self)',
+ targetParent: 'Oorspronklike venster (_parent)',
+ langDirLTR: 'Links na Regs (LTR)',
+ langDirRTL: 'Regs na Links (RTL)',
+ styles: 'Styl',
+ cssClasses: 'CSS klasse',
+ width: 'Breedte',
+ height: 'Hoogte',
+ align: 'Oplyn',
+ alignLeft: 'Links',
+ alignRight: 'Regs',
+ alignCenter: 'Sentreer',
+ alignTop: 'Bo',
+ alignMiddle: 'Middel',
+ alignBottom: 'Onder',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Hoogte moet \'n getal wees',
+ invalidWidth: 'Breedte moet \'n getal wees.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nie beskikbaar nie</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ar.js b/devel/third-party/ckeditor/lang/ar.js
index dea0dec..58b7c18 100644
--- a/devel/third-party/ckeditor/lang/ar.js
+++ b/devel/third-party/ckeditor/lang/ar.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Arabic language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ar'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'rtl',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'اÙÙ
صدر',
- newPage : 'ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©',
- save : 'ØÙظ',
- preview : 'Ù
عاÙÙØ© Ø§ÙØµÙØØ©',
- cut : 'ÙØµ',
- copy : 'ÙØ³Ø®',
- paste : 'ÙØµÙ',
- print : 'طباعة',
- underline : 'ØªØ³Ø·ÙØ±',
- bold : 'غاÙ
Ù',
- italic : 'Ù
ائÙ',
- selectAll : 'ØªØØ¯Ùد اÙÙÙ',
- removeFormat : 'Ø¥Ø²Ø§ÙØ© Ø§ÙØªÙسÙÙØ§Øª',
- strike : 'ÙØªÙسط٠خط',
- subscript : 'Ù
ÙØ®Ùض',
- superscript : 'Ù
Ø±ØªÙØ¹',
- horizontalrule : 'خط ÙØ§ØµÙ',
- pagebreak : 'Ø¥Ø¯Ø®Ø§Ù ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©',
- unlink : 'Ø¥Ø²Ø§ÙØ© رابط',
- undo : 'تراجع',
- redo : 'إعادة',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ØªØµÙØ',
- url : 'Ø§ÙØ±Ø§Ø¨Ø·',
- protocol : 'Ø§ÙØ¨Ø±ÙتÙÙÙÙ',
- upload : 'Ø±ÙØ¹',
- uploadSubmit : 'أرسÙ',
- image : 'ØµÙØ±Ø©',
- flash : 'ÙÙØ§Ø´',
- form : 'ÙÙ
ÙØ°Ø¬',
- checkbox : 'Ø®Ø§ÙØ© Ø¥Ø®ØªÙØ§Ø±',
- radio : 'زر Ø§Ø®ØªÙØ§Ø±',
- textField : 'Ù
ربع ÙØµ',
- textarea : 'Ù
Ø³Ø§ØØ© ÙØµÙØ©',
- hiddenField : 'إدراج ØÙÙ Ø®ÙÙ',
- button : 'زر ضغط',
- select : 'اختار',
- imageButton : 'زر ØµÙØ±Ø©',
- notSet : '<بدÙÙ ØªØØ¯Ùد>',
- id : 'Ø§ÙØ±ÙÙ
',
- name : 'Ø§ÙØ§Ø³Ù
',
- langDir : 'إتجا٠اÙÙØµ',
- langDirLtr : 'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',
- langDirRtl : 'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',
- langCode : 'رÙ
ز اÙÙØºØ©',
- longDescr : 'اÙÙØµÙ Ø§ÙØªÙصÙÙÙ',
- cssClass : 'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',
- advisoryTitle : 'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',
- cssStyle : 'ÙÙ
Ø·',
- ok : 'Ù
ÙØ§ÙÙ',
- cancel : 'Ø¥ÙØºØ§Ø¡ Ø§ÙØ£Ù
ر',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'عاÙ
',
- advancedTab : 'Ù
ØªÙØ¯Ù
',
- validateNumberFailed : 'ÙØ§ÙÙØ¬Ø¯ ÙØªÙجة',
- confirmNewPage : 'ستÙÙØ¯ Ø£Ù Ù
تغÙÙØ±Ø§Øª اذا ÙÙ
تÙÙ
بØÙØ¸ÙØ§ اÙÙØ§. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ø£ÙÙ ØªØ±ÙØ¯ ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©Ø',
- confirmCancel : 'بعض Ø§ÙØ®Ùارات ÙØ¯ ØªØºÙØ±Øª. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ù
Ù Ø¥ØºÙØ§Ù Ù
ربع اÙÙØµØ',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ØºÙØ± Ù
تاØ</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'إدراج خاص.Ù',
- title : 'اختر Ø§ÙØ®Ùاص',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'رابط',
- other : '<أخرÙ>',
- menu : 'ØªØØ±Ùر رابط',
- title : 'إرتباط تشعبÙ',
- info : 'Ù
عÙÙÙ
ات Ø§ÙØ±Ø§Ø¨Ø·',
- target : 'ÙØ¯Ù Ø§ÙØ±Ø§Ø¨Ø·',
- upload : 'Ø±ÙØ¹',
- advanced : 'Ù
ØªÙØ¯Ù
',
- type : 'ÙÙØ¹ Ø§ÙØ±Ø¨Ø·',
- toUrl : 'URL', // MISSING
- toAnchor : 'Ù
ÙØ§Ù ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯',
- toEmail : 'Ø¨Ø±ÙØ¯ Ø¥ÙÙØªØ±ÙÙÙ',
- targetFrame : '<إطار>',
- targetPopup : '<ÙØ§Ùذة Ù
ÙØ¨Ø«ÙØ©>',
- targetFrameName : 'اسÙ
Ø§ÙØ¥Ø·Ø§Ø± اÙÙ
Ø³ØªÙØ¯Ù',
- targetPopupName : 'اسÙ
اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©',
- popupFeatures : 'خصائص اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©',
- popupResizable : 'ÙØ§Ø¨ÙØ© Ø§ÙØªØ´ÙÙÙ',
- popupStatusBar : 'Ø´Ø±ÙØ· Ø§ÙØØ§ÙØ©',
- popupLocationBar: 'Ø´Ø±ÙØ· Ø§ÙØ¹ÙÙØ§Ù',
- popupToolbar : 'Ø´Ø±ÙØ· Ø§ÙØ£Ø¯Ùات',
- popupMenuBar : 'اÙÙÙØ§Ø¦Ù
Ø§ÙØ±Ø¦ÙØ³ÙØ©',
- popupFullScreen : 'Ù
ÙØ¦ Ø§ÙØ´Ø§Ø´Ø© (IE)',
- popupScrollBars : 'أشرطة Ø§ÙØªÙ
Ø±ÙØ±',
- popupDependent : 'تابع (Netscape)',
- popupWidth : 'Ø§ÙØ¹Ø±Ø¶',
- popupLeft : 'Ø§ÙØªÙ
Ø±ÙØ² ÙÙÙØ³Ø§Ø±',
- popupHeight : 'Ø§ÙØ¥Ø±ØªÙاع',
- popupTop : 'Ø§ÙØªÙ
Ø±ÙØ² ÙÙØ£Ø¹ÙÙ',
- id : 'ÙÙÙØ©',
- langDir : 'إتجا٠اÙÙØµ',
- langDirLTR : 'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',
- langDirRTL : 'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',
- acccessKey : 'Ù
ÙØ§ØªÙØ Ø§ÙØ¥Ø®ØªØµØ§Ø±',
- name : 'Ø§ÙØ§Ø³Ù
',
- langCode : 'ÙÙØ¯ اÙÙØµ',
- tabIndex : 'Ø§ÙØªØ±ØªÙب',
- advisoryTitle : 'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',
- advisoryContentType : 'ÙÙØ¹ Ø§ÙØªÙØ±ÙØ±',
- cssClasses : 'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',
- charset : 'ترÙ
ÙØ² اÙÙ
ادة اÙÙ
Ø·ÙÙØ¨Ø©',
- styles : 'ÙÙ
Ø·',
- selectAnchor : 'اختر Ø¹ÙØ§Ù
Ø© Ù
Ø±Ø¬Ø¹ÙØ©',
- anchorName : 'ØØ³Ø¨ Ø§ÙØ§Ø³Ù
',
- anchorId : 'ØØ³Ø¨ رÙÙ
Ø§ÙØ¹Ùصر',
- emailAddress : 'عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø¥ÙÙØªØ±ÙÙÙ',
- emailSubject : 'Ù
ÙØ¶Ùع Ø§ÙØ±Ø³Ø§ÙØ©',
- emailBody : 'Ù
ØØªÙÙ Ø§ÙØ±Ø³Ø§ÙØ©',
- noAnchors : '(ÙØ§ ØªÙØ¬Ø¯ Ø¹ÙØ§Ù
ات Ù
Ø±Ø¬Ø¹ÙØ© ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯)',
- noUrl : 'Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·',
- noEmail : 'Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'إشارة Ù
Ø±Ø¬Ø¹ÙØ©',
- menu : 'ØªØØ±Ùر Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
- title : 'خصائص Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
- name : 'اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
- errorName : 'Ø§ÙØ±Ø¬Ø§Ø¡ ÙØªØ§Ø¨Ø© اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Ø¨ØØ« ÙØ§Ø³ØªØ¨Ø¯Ø§Ù',
- find : 'Ø¨ØØ«',
- replace : 'إستبداÙ',
- findWhat : 'Ø§ÙØ¨ØØ« بÙ:',
- replaceWith : 'إستبدا٠بÙ:',
- notFoundMsg : 'ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠اÙÙØµ اÙÙ
ØØ¯Ø¯.',
- matchCase : 'Ù
Ø·Ø§Ø¨ÙØ© ØØ§ÙØ© Ø§ÙØ£ØØ±Ù',
- matchWord : 'Ù
Ø·Ø§Ø¨ÙØ© باÙÙØ§Ù
Ù',
- matchCyclic : 'Ù
Ø·Ø§Ø¨ÙØ© Ø¯ÙØ±ÙØ©',
- replaceAll : 'إستبدا٠اÙÙÙ',
- replaceSuccessMsg : 'تÙ
استبدا٠1% Ù
Ù Ø§ÙØØ§ÙØ§Øª '
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'جدÙÙ',
- title : 'خصائص Ø§ÙØ¬Ø¯ÙÙ',
- menu : 'خصائص Ø§ÙØ¬Ø¯ÙÙ',
- deleteTable : 'ØØ°Ù Ø§ÙØ¬Ø¯ÙÙ',
- rows : 'صÙÙÙ',
- columns : 'أعÙ
دة',
- border : 'Ø§ÙØØ¯ÙØ¯',
- align : 'اÙÙ
ØØ§Ø°Ø§Ø©',
- alignLeft : 'ÙØ³Ø§Ø±',
- alignCenter : 'ÙØ³Ø·',
- alignRight : 'ÙÙ
ÙÙ',
- width : 'Ø§ÙØ¹Ø±Ø¶',
- widthPx : 'Ø¨ÙØ³Ù',
- widthPc : 'باÙÙ
ئة',
- widthUnit : 'width unit', // MISSING
- height : 'Ø§ÙØ¥Ø±ØªÙاع',
- cellSpace : 'تباعد Ø§ÙØ®ÙØ§ÙØ§',
- cellPad : 'اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',
- caption : 'اÙÙØµÙ',
- summary : 'Ø§ÙØ®Ùاصة',
- headers : 'Ø§ÙØ¹ÙاÙÙÙ',
- headersNone : 'بدÙÙ',
- headersColumn : 'Ø§ÙØ¹Ù
ÙØ¯ Ø§ÙØ£ÙÙ',
- headersRow : 'Ø§ÙØµÙ Ø§ÙØ£ÙÙ',
- headersBoth : 'ÙÙØ§ÙÙ
ا',
- invalidRows : 'عدد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.',
- invalidCols : 'عدد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.',
- invalidBorder : 'ØØ¬Ù
Ø§ÙØØ¯ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- invalidWidth : 'عرض Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- invalidHeight : 'Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- invalidCellSpacing : 'اÙÙ
Ø³Ø§ÙØ© بÙÙ Ø§ÙØ®ÙØ§ÙØ§ ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ.',
- invalidCellPadding : 'اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø© ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ',
-
- cell :
- {
- menu : 'Ø®ÙÙØ©',
- insertBefore : 'إدراج Ø®ÙÙØ© ÙØ¨Ù',
- insertAfter : 'إدراج Ø®ÙÙØ© بعد',
- deleteCell : 'ØØ°Ù Ø®ÙÙØ©',
- merge : 'دÙ
ج Ø®ÙØ§Ùا',
- mergeRight : 'دÙ
ج ÙÙÙÙ
ÙÙ',
- mergeDown : 'دÙ
ج ÙÙØ£Ø³ÙÙ',
- splitHorizontal : 'ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© Ø£ÙÙÙØ§Ù',
- splitVertical : 'ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© عÙ
ÙØ¯ÙاÙ',
- title : 'خصائص Ø§ÙØ®ÙÙØ©',
- cellType : 'ÙÙØ¹ Ø§ÙØ®ÙÙØ©',
- rowSpan : 'اÙ
تداد Ø§ÙØµÙÙÙ',
- colSpan : 'اÙ
تداد Ø§ÙØ£Ø¹Ù
دة',
- wordWrap : 'Ø§ÙØªÙا٠اÙÙØµ',
- hAlign : 'Ù
ØØ§Ø°Ø§Ø© Ø£ÙÙÙØ©',
- vAlign : 'Ù
ØØ§Ø°Ø§Ø© Ø±Ø£Ø³ÙØ©',
- alignTop : 'أعÙÙ',
- alignMiddle : 'ÙØ³Ø·',
- alignBottom : 'أسÙÙ',
- alignBaseline : 'خط اÙÙØ§Ø¹Ø¯Ø©',
- bgColor : 'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',
- borderColor : 'ÙÙÙ Ø§ÙØØ¯ÙØ¯',
- data : 'Ø¨ÙØ§Ùات',
- header : 'عÙÙØ§Ù',
- yes : 'ÙØ¹Ù
',
- no : 'ÙØ§',
- invalidWidth : 'عرض Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- invalidHeight : 'Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- invalidRowSpan : 'اÙ
تداد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.',
- invalidColSpan : 'اÙ
تداد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.',
- chooseColor : 'اختر'
- },
-
- row :
- {
- menu : 'صÙ',
- insertBefore : 'إدراج ØµÙ ÙØ¨Ù',
- insertAfter : 'إدراج ص٠بعد',
- deleteRow : 'ØØ°Ù صÙÙÙ'
- },
-
- column :
- {
- menu : 'عÙ
ÙØ¯',
- insertBefore : 'إدراج عÙ
ÙØ¯ ÙØ¨Ù',
- insertAfter : 'إدراج عÙ
ÙØ¯ بعد',
- deleteColumn : 'ØØ°Ù أعÙ
دة'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'خصائص زر Ø§ÙØ¶ØºØ·',
- text : 'اÙÙÙÙ
Ø©/Ø§ÙØªØ³Ù
ÙØ©',
- type : 'ÙÙØ¹ Ø§ÙØ²Ø±',
- typeBtn : 'زر',
- typeSbm : 'إرساÙ',
- typeRst : 'إعادة تعÙÙÙ'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'خصائص Ø®Ø§ÙØ© Ø§ÙØ¥Ø®ØªÙار',
- radioTitle : 'خصائص زر Ø§ÙØ®Ùار',
- value : 'اÙÙÙÙ
Ø©',
- selected : 'Ù
ØØ¯Ø¯'
- },
-
- // Form Dialog.
- form :
- {
- title : 'خصائص اÙÙÙ
ÙØ°Ø¬',
- menu : 'خصائص اÙÙÙ
ÙØ°Ø¬',
- action : 'اسÙ
اÙÙ
ÙÙ',
- method : 'Ø§ÙØ£Ø³ÙÙØ¨',
- encoding : 'تشÙÙØ±'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'خصائص Ø§Ø®ØªÙØ§Ø± Ø§ÙØÙÙ',
- selectInfo : 'اختار Ù
عÙÙÙ
ات',
- opAvail : 'Ø§ÙØ®Ùارات اÙÙ
ØªØ§ØØ©',
- value : 'اÙÙÙÙ
Ø©',
- size : 'Ø§ÙØØ¬Ù
',
- lines : 'Ø§ÙØ£Ø³Ø·Ø±',
- chkMulti : 'Ø§ÙØ³Ù
Ø§Ø Ø¨ØªØØ¯Ùدات Ù
تعددة',
- opText : 'اÙÙØµ',
- opValue : 'اÙÙÙÙ
Ø©',
- btnAdd : 'Ø¥Ø¶Ø§ÙØ©',
- btnModify : 'تعدÙÙ',
- btnUp : 'أعÙÙ',
- btnDown : 'أسÙÙ',
- btnSetValue : 'إجعÙÙØ§ Ù
ØØ¯Ø¯Ø©',
- btnDelete : 'Ø¥Ø²Ø§ÙØ©'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'خصائص Ù
Ø³Ø§ØØ© اÙÙØµ',
- cols : 'Ø§ÙØ£Ø¹Ù
دة',
- rows : 'Ø§ÙØµÙÙÙ'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'خصائص Ù
ربع اÙÙØµ',
- name : 'Ø§ÙØ§Ø³Ù
',
- value : 'اÙÙÙÙ
Ø©',
- charWidth : 'عرض Ø§ÙØ³Ù
ات',
- maxChars : 'Ø§ÙØµÙ عدد ÙÙØ³Ù
ات',
- type : 'ÙÙØ¹ اÙÙ
ØØªÙÙ',
- typeText : 'ÙØµ',
- typePass : 'ÙÙÙ
Ø© Ù
Ø±ÙØ±'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'خصائص Ø§ÙØÙ٠اÙÙ
Ø®ÙÙ',
- name : 'Ø§ÙØ§Ø³Ù
',
- value : 'اÙÙÙÙ
Ø©'
- },
-
- // Image Dialog.
- image :
- {
- title : 'خصائص Ø§ÙØµÙرة',
- titleButton : 'خصائص زر Ø§ÙØµÙرة',
- menu : 'خصائص Ø§ÙØµÙرة',
- infoTab : 'Ù
عÙÙÙ
ات Ø§ÙØµÙرة',
- btnUpload : 'أرسÙÙØ§ ÙÙØ®Ø§Ø¯Ù
',
- upload : 'Ø±ÙØ¹',
- alt : 'عÙÙØ§Ù Ø§ÙØµÙرة',
- width : 'Ø§ÙØ¹Ø±Ø¶',
- height : 'Ø§ÙØ¥Ø±ØªÙاع',
- lockRatio : 'ØªÙØ§Ø³Ù Ø§ÙØØ¬Ù
',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'إستعادة Ø§ÙØØ¬Ù
Ø§ÙØ£ØµÙÙ',
- border : 'سÙ
Ù Ø§ÙØØ¯ÙØ¯',
- hSpace : 'تباعد Ø£ÙÙÙ',
- vSpace : 'تباعد عÙ
ÙØ¯Ù',
- align : 'Ù
ØØ§Ø°Ø§Ø©',
- alignLeft : 'ÙØ³Ø§Ø±',
- alignRight : 'ÙÙ
ÙÙ',
- alertUrl : 'ÙØ¶ÙØ§Ù Ø£ÙØªØ¨ اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ØªÙØ¬Ø¯ عÙÙÙ ÙØ°Ù Ø§ÙØµÙرة.',
- linkTab : 'Ø§ÙØ±Ø§Ø¨Ø·',
- button2Img : 'ÙÙ ØªØ±ÙØ¯ تØÙÙ٠زر Ø§ÙØµÙرة اÙÙ
ختار Ø¥ÙÙ ØµÙØ±Ø© Ø¨Ø³ÙØ·Ø©Ø',
- img2Button : 'ÙÙ ØªØ±ÙØ¯ تØÙÙÙ Ø§ÙØµÙرة اÙÙ
ختارة Ø¥Ù٠زر ØµÙØ±Ø©Ø',
- urlMissing : 'عÙÙØ§Ù Ù
صدر Ø§ÙØµÙرة Ù
ÙÙÙØ¯',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'خصائص اÙÙÙØ§Ø´',
- propertiesTab : 'Ø§ÙØ®ØµØ§Ø¦Øµ',
- title : 'خصائص ÙÙÙÙ
اÙÙÙØ§Ø´',
- chkPlay : 'تشغÙ٠تÙÙØ§Ø¦Ù',
- chkLoop : 'ØªÙØ±Ø§Ø±',
- chkMenu : 'تÙ
ÙÙÙ ÙØ§Ø¦Ù
Ø© ÙÙÙÙ
اÙÙÙØ§Ø´',
- chkFull : 'Ù
ÙØ¡ Ø§ÙØ´Ø§Ø´Ø©',
- scale : 'Ø§ÙØØ¬Ù
',
- scaleAll : 'Ø¥Ø¸ÙØ§Ø± اÙÙÙ',
- scaleNoBorder : 'Ø¨ÙØ§ ØØ¯Ùد',
- scaleFit : 'ضبط تاÙ
',
- access : 'دخÙ٠اÙÙØµ Ø§ÙØ¨Ø±Ù
جÙ',
- accessAlways : 'دائÙ
اÙ',
- accessSameDomain: 'ÙÙØ³ اÙÙØ·Ø§Ù',
- accessNever : 'Ù
Ø·ÙÙØ§Ù',
- align : 'Ù
ØØ§Ø°Ø§Ø©',
- alignLeft : 'ÙØ³Ø§Ø±',
- alignAbsBottom : 'أسÙ٠اÙÙØµ',
- alignAbsMiddle : 'ÙØ³Ø· Ø§ÙØ³Ø·Ø±',
- alignBaseline : 'عÙÙ Ø§ÙØ³Ø·Ø±',
- alignBottom : 'أسÙÙ',
- alignMiddle : 'ÙØ³Ø·',
- alignRight : 'ÙÙ
ÙÙ',
- alignTextTop : 'أعÙ٠اÙÙØµ',
- alignTop : 'أعÙÙ',
- quality : 'Ø¬ÙØ¯Ø©',
- qualityBest : 'Ø£ÙØ¶Ù',
- qualityHigh : 'عاÙÙØ©',
- qualityAutoHigh : 'عاÙÙØ© تÙÙØ§Ø¦ÙاÙ',
- qualityMedium : 'Ù
ØªÙØ³Ø·Ø©',
- qualityAutoLow : 'Ù
ÙØ®Ùضة تÙÙØ§Ø¦ÙاÙ',
- qualityLow : 'Ù
ÙØ®Ùضة',
- windowModeWindow: 'ÙØ§Ùذة',
- windowModeOpaque: 'ØºÙØ± Ø´ÙØ§Ù',
- windowModeTransparent : 'Ø´ÙØ§Ù',
- windowMode : 'ÙØ¶Ø¹ اÙÙØ§Ùذة',
- flashvars : 'Ù
ØªØºÙØ±Ø§Øª اÙÙÙØ§Ø´',
- bgcolor : 'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',
- width : 'Ø§ÙØ¹Ø±Ø¶',
- height : 'Ø§ÙØ¥Ø±ØªÙاع',
- hSpace : 'تباعد Ø£ÙÙÙ',
- vSpace : 'تباعد عÙ
ÙØ¯Ù',
- validateSrc : 'ÙØ¶Ùا٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·',
- validateWidth : 'Ø§ÙØ¹Ø±Ø¶ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- validateHeight : 'Ø§ÙØ§Ø±ØªÙاع ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- validateHSpace : 'HSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
- validateVSpace : 'VSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'تدÙÙ٠إÙ
ÙØ§Ø¦Ù',
- title : 'Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù',
- notAvailable : 'عÙÙØ§ÙØ ÙÙÙÙ ÙØ°Ù Ø§ÙØ®Ø¯Ù
Ø© ØºÙØ± Ù
ØªØ§ØØ© Ø§ÙØ§Ù',
- errorLoading : 'خطأ Ù٠تØÙ
Ù٠تطبÙ٠خدÙ
Ø© Ø§ÙØ§Ø³ØªØ¶Ø§ÙØ©: %s.',
- notInDic : 'ÙÙØ³Øª Ù٠اÙÙØ§Ù
ÙØ³',
- changeTo : 'Ø§ÙØªØºÙÙØ± Ø¥ÙÙ',
- btnIgnore : 'تجاÙÙ',
- btnIgnoreAll : 'تجاÙ٠اÙÙÙ',
- btnReplace : 'تغÙÙØ±',
- btnReplaceAll : 'تغÙÙØ± اÙÙÙ',
- btnUndo : 'تراجع',
- noSuggestions : '- ÙØ§ ØªÙØ¬Ø¯ Ø¥ÙØªØ±Ø§ØØ§Øª -',
- progress : 'Ø¬Ø§Ø±Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ§Ù
ÙØ§Ø¦Ù',
- noMispell : 'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠أ٠أخطاء Ø¥Ù
ÙØ§Ø¦ÙØ©',
- noChanges : 'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
تغÙÙØ± Ø£Ù ÙÙÙ
Ø©',
- oneChange : 'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± ÙÙÙ
Ø© ÙØ§ØØ¯Ø© ÙÙØ·',
- manyChanges : 'تÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± %1 Ù
Ù ÙÙÙ
ات',
- ieSpellDownload : 'اÙÙ
دÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù (Ø§ÙØ¥ÙجÙÙØ²Ù) ØºÙØ± Ù
Ø«Ø¨ÙØª. ÙÙ ØªÙØ¯ تØÙ
ÙÙÙ Ø§ÙØ¢ÙØ'
- },
-
- smiley :
- {
- toolbar : 'ابتساÙ
ات',
- title : 'إدراج ابتساÙ
ات',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : 'Ø¹ÙØµØ± 1%'
- },
-
- numberedlist : 'ادخاÙ/ØØ°Ù تعداد رÙÙ
Ù',
- bulletedlist : 'ادخاÙ/ØØ°Ù تعداد ÙÙØ·Ù',
- indent : 'Ø²ÙØ§Ø¯Ø© اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',
- outdent : 'Ø¥ÙÙØ§Øµ اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',
-
- justify :
- {
- left : 'Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙØ³Ø§Ø±',
- center : 'ØªÙØ³ÙØ·',
- right : 'Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙÙ
ÙÙ',
- block : 'ضبط'
- },
-
- blockquote : 'Ø§ÙØªØ¨Ø§Ø³',
-
- clipboard :
- {
- title : 'ÙØµÙ',
- cutError : 'Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØµ Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+X).',
- copyError : 'Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØ³Ø® Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+C).',
- pasteMsg : 'Ø§ÙØµÙ Ø¯Ø§Ø®Ù Ø§ÙØµÙدÙ٠بإستخداÙ
زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) ÙÙ ÙÙØØ© اÙÙ
ÙØ§ØªÙØØ Ø«Ù
اضغط زر <STRONG>Ù
ÙØ§ÙÙ</STRONG>.',
- securityMsg : 'ÙØ¸Ø±Ø§Ù ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
Ø§Ù Ø§ÙØ®Ø§ØµØ© بÙ
ØªØµÙØÙØ ÙÙ ÙØªÙ
ÙÙ ÙØ°Ø§ اÙÙ
ØØ±Ø± Ù
٠اÙÙØµÙÙ ÙÙ
ØØªÙÙ ØØ§ÙØ¸ØªÙØ ÙØ°ÙÙ ÙØ¬Ø¨ عÙÙÙ ÙØµÙ اÙÙ
ØØªÙÙ Ù
رة أخر٠ÙÙ ÙØ°Ù اÙÙØ§Ùذة.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'ÙØ¨Ø¯Ù أ٠اÙÙØµ اÙÙ
راد ÙØµÙÙ Ù
ÙØ³ÙØ® Ù
Ù Ø¨Ø±ÙØ§Ù
ج ÙÙØ±Ø¯. ÙÙ ØªÙØ¯ ØªÙØ¸ÙÙÙ ÙØ¨Ù Ø§ÙØ´Ø±Ùع Ù٠عÙ
ÙÙØ© اÙÙØµÙØ',
- toolbar : 'ÙØµÙ Ù
Ù ÙÙØ±Ø¯',
- title : 'ÙØµÙ Ù
Ù ÙÙØ±Ø¯',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·',
- title : 'ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·'
- },
-
- templates :
- {
- button : 'اÙÙÙØ§Ùب',
- title : 'ÙÙØ§Ùب اÙÙ
ØØªÙÙ',
- options : 'Template Options', // MISSING
- insertOption : 'استبدا٠اÙÙ
ØØªÙÙ',
- selectPromptMsg : 'اختر اÙÙØ§Ùب Ø§ÙØ°Ù ØªÙØ¯ ÙØ¶Ø¹Ù Ù٠اÙÙ
ØØ±Ø±',
- emptyListMsg : '(ÙÙ
ÙØªÙ
تعرÙÙ Ø£Ù ÙØ§Ùب)'
- },
-
- showBlocks : 'Ù
خطط ØªÙØµÙÙÙ',
-
- stylesCombo :
- {
- label : 'Ø£ÙÙ
اط',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Ø£ÙÙ
اط اÙÙÙØ±Ø©',
- panelTitle2 : 'Ø£ÙÙ
اط Ù
ضÙ
ÙØ©',
- panelTitle3 : 'Ø£ÙÙ
اط اÙÙØ§Ø¦Ù'
- },
-
- format :
- {
- label : 'ØªÙØ³ÙÙ',
- panelTitle : 'ØªÙØ³Ù٠اÙÙÙØ±Ø©',
-
- tag_p : 'عادÙ',
- tag_pre : 'Ù
ÙØ³ÙÙ',
- tag_address : 'عÙÙØ§Ù',
- tag_h1 : 'Ø§ÙØ¹ÙÙØ§Ù 1',
- tag_h2 : 'Ø§ÙØ¹ÙÙØ§Ù 2',
- tag_h3 : 'Ø§ÙØ¹ÙÙØ§Ù 3',
- tag_h4 : 'Ø§ÙØ¹ÙÙØ§Ù 4',
- tag_h5 : 'Ø§ÙØ¹ÙÙØ§Ù 5',
- tag_h6 : 'Ø§ÙØ¹ÙÙØ§Ù 6',
- tag_div : 'عاد٠(DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'خط',
- voiceLabel : 'ØØ¬Ù
Ø§ÙØ®Ø·',
- panelTitle : 'ØØ¬Ù
Ø§ÙØ®Ø·'
- },
-
- fontSize :
- {
- label : 'ØØ¬Ù
Ø§ÙØ®Ø·',
- voiceLabel : 'ØØ¬Ù
Ø§ÙØ®Ø·',
- panelTitle : 'ØØ¬Ù
Ø§ÙØ®Ø·'
- },
-
- colorButton :
- {
- textColorTitle : 'ÙÙ٠اÙÙØµ',
- bgColorTitle : 'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',
- panelTitle : 'Colors', // MISSING
- auto : 'تÙÙØ§Ø¦Ù',
- more : 'Ø£ÙÙØ§Ù إضاÙÙØ©...'
- },
-
- colors :
- {
- '000' : 'Ø£Ø³ÙØ¯',
- '800000' : 'ÙØ³ØªÙائÙ',
- '8B4513' : 'بÙÙ ÙØ§ØªØ',
- '2F4F4F' : 'رÙ
Ø§Ø¯Ù Ø£Ø±Ø¯ÙØ§Ø²Ù غاÙ
Ù',
- '008080' : 'أزر٠Ù
خضر',
- '000080' : 'أزر٠داÙÙ',
- '4B0082' : 'ÙØÙÙ',
- '696969' : 'رÙ
اد٠داÙÙ',
- 'B22222' : 'Ø·ÙØ¨Ù',
- 'A52A2A' : 'بÙÙ',
- 'DAA520' : 'Ø°ÙØ¨Ù داÙÙ',
- '006400' : 'أخضر داÙÙ',
- '40E0D0' : 'ÙÙØ±ÙزÙ',
- '0000CD' : 'أزر٠Ù
ØªÙØ³Ø·',
- '800080' : 'بÙÙØ³Ø¬Ù غاÙ
Ù',
- '808080' : 'رÙ
ادÙ',
- 'F00' : 'Ø£ØÙ
ر',
- 'FF8C00' : 'Ø¨Ø±ØªÙØ§Ù٠داÙÙ',
- 'FFD700' : 'Ø°ÙØ¨Ù',
- '008000' : 'أخضر',
- '0FF' : 'ترÙÙØ§Ø²',
- '00F' : 'أزرÙ',
- 'EE82EE' : 'بÙÙØ³Ø¬Ù',
- 'A9A9A9' : 'رÙ
Ø§Ø¯Ù Ø´Ø§ØØ¨',
- 'FFA07A' : 'Ø¨Ø±ØªÙØ§ÙÙ ÙØ±Ø¯Ù',
- 'FFA500' : 'Ø¨Ø±ØªÙØ§ÙÙ',
- 'FFFF00' : 'Ø£ØµÙØ±',
- '00FF00' : 'ÙÙÙ
ÙÙÙ',
- 'AFEEEE' : 'ÙÙØ±ÙØ²Ù Ø´Ø§ØØ¨',
- 'ADD8E6' : 'Ø£Ø²Ø±Ù ÙØ§ØªØ',
- 'DDA0DD' : 'بÙÙØ³Ø¬Ù ÙØ§ØªØ',
- 'D3D3D3' : 'رÙ
Ø§Ø¯Ù ÙØ§ØªØ',
- 'FFF0F5' : 'ÙØ±Ø¯Ù ÙØ§ØªØ',
- 'FAEBD7' : 'Ø£Ø¨ÙØ¶ عتÙÙ',
- 'FFFFE0' : 'Ø£ØµÙØ± ÙØ§ØªØ',
- 'F0FFF0' : 'Ø£Ø¨ÙØ¶ Ù
ائ٠ÙÙØ£Ø®Ø¶Ø±',
- 'F0FFFF' : 'سÙ
اÙÙ',
- 'F0F8FF' : 'ÙØ¨ÙÙ',
- 'E6E6FA' : 'Ø£Ø±Ø¬ÙØ§ÙÙ',
- 'FFF' : 'Ø£Ø¨ÙØ¶'
- },
-
- scayt :
- {
- title : 'تدÙÙ٠إÙ
ÙØ§Ø¦Ù Ø£Ø«ÙØ§Ø¡ اÙÙØªØ§Ø¨Ø©',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'ØªÙØ¹ÙÙ SCAYT',
- disable : 'تعطÙÙ SCAYT',
- about : 'ع٠SCAYT',
- toggle : 'ØªØ«Ø¨ÙØª SCAYT',
- options : 'Ø®ÙØ§Ø±Ø§Øª',
- langs : 'ÙØºØ§Øª',
- moreSuggestions : 'اÙÙ
Ø²ÙØ¯ Ù
٠اÙÙ
ÙØªØ±ØØ§Øª',
- ignore : 'تجاÙÙ',
- ignoreAll : 'تجاÙ٠اÙÙÙ',
- addWord : 'Ø¥Ø¶Ø§ÙØ© ÙÙÙ
Ø©',
- emptyDic : 'اسÙ
اÙÙØ§Ù
ÙØ³ ÙØ¬Ø¨ Ø£ÙØ§ ÙÙÙÙ ÙØ§Ø±ØºØ§Ù.',
-
- optionsTab : 'Ø®ÙØ§Ø±Ø§Øª',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'ÙØºØ§Øª',
-
- dictionariesTab : 'ÙÙØ§Ù
ÙØ³',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'عÙ'
- },
-
- about :
- {
- title : 'ع٠CKEditor',
- dlgTitle : 'ع٠CKEditor',
- moreInfo : 'ÙÙØØµÙ٠عÙÙ Ù
عÙÙÙ
ات Ø§ÙØªØ±Ø®Ùص Ø ÙØ±Ø¬Ù Ø²ÙØ§Ø±Ø© Ù
ÙÙØ¹Ùا عÙÙ Ø´Ø¨ÙØ© Ø§ÙØ§ÙØªØ±ÙØª:',
- copy : 'ØÙÙ٠اÙÙØ´Ø± © $1. جÙ
ÙØ¹ Ø§ÙØÙÙÙ Ù
ØÙÙØ¸Ø©.'
- },
-
- maximize : 'ØªÙØ¨Ùر',
- minimize : 'ØªØµØºÙØ±',
-
- fakeobjects :
- {
- anchor : 'إرساء',
- flash : 'رسÙ
Ù
ØªØØ±Ù باÙÙÙØ§Ø´',
- div : 'ÙØ§ØµÙ ØµÙØØ©',
- unknown : 'ÙØ§Ø¦Ù ØºÙØ± Ù
عرÙÙ'
- },
-
- resize : 'Ø§Ø³ØØ¨ ÙØªØºÙÙØ± Ø§ÙØØ¬Ù
',
-
- colordialog :
- {
- title : 'اختر ÙÙÙ',
- options : 'Color Options', // MISSING
- highlight : 'Ø¥ÙÙØ§Ø¡ Ø§ÙØ¶ÙØ¡',
- selected : 'Ù
ÙØ®ØªØ§Ø±',
- clear : 'Ù
سØ'
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Arabic language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ar' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'rtl',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'ØªØµÙØ',
+ url: 'Ø§ÙØ±Ø§Ø¨Ø·',
+ protocol: 'Ø§ÙØ¨Ø±ÙتÙÙÙÙ',
+ upload: 'Ø±ÙØ¹',
+ uploadSubmit: 'أرسÙ',
+ image: 'ØµÙØ±Ø©',
+ flash: 'ÙÙØ§Ø´',
+ form: 'ÙÙ
ÙØ°Ø¬',
+ checkbox: 'Ø®Ø§ÙØ© Ø¥Ø®ØªÙØ§Ø±',
+ radio: 'زر Ø§Ø®ØªÙØ§Ø±',
+ textField: 'Ù
ربع ÙØµ',
+ textarea: 'Ù
Ø³Ø§ØØ© ÙØµÙØ©',
+ hiddenField: 'إدراج ØÙÙ Ø®ÙÙ',
+ button: 'زر ضغط',
+ select: 'اختار',
+ imageButton: 'زر ØµÙØ±Ø©',
+ notSet: '<بدÙÙ ØªØØ¯Ùد>',
+ id: 'Ø§ÙØ±ÙÙ
',
+ name: 'Ø§ÙØ§Ø³Ù
',
+ langDir: 'إتجا٠اÙÙØµ',
+ langDirLtr: 'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',
+ langDirRtl: 'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',
+ langCode: 'رÙ
ز اÙÙØºØ©',
+ longDescr: 'اÙÙØµÙ Ø§ÙØªÙصÙÙÙ',
+ cssClass: 'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',
+ advisoryTitle: 'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',
+ cssStyle: 'ÙÙ
Ø·',
+ ok: 'Ù
ÙØ§ÙÙ',
+ cancel: 'Ø¥ÙØºØ§Ø¡ Ø§ÙØ£Ù
ر',
+ close: 'أغÙÙ',
+ preview: 'استعراض',
+ resize: 'Ø§Ø³ØØ¨ ÙØªØºÙÙØ± Ø§ÙØØ¬Ù
',
+ generalTab: 'عاÙ
',
+ advancedTab: 'Ù
ØªÙØ¯Ù
',
+ validateNumberFailed: 'ÙØ§ÙÙØ¬Ø¯ ÙØªÙجة',
+ confirmNewPage: 'ستÙÙØ¯ Ø£Ù Ù
تغÙÙØ±Ø§Øª اذا ÙÙ
تÙÙ
بØÙØ¸ÙØ§ اÙÙØ§. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ø£ÙÙ ØªØ±ÙØ¯ ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©Ø',
+ confirmCancel: 'بعض Ø§ÙØ®Ùارات ÙØ¯ ØªØºÙØ±Øª. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ù
Ù Ø¥ØºÙØ§Ù Ù
ربع اÙÙØµØ',
+ options: 'Ø®ÙØ§Ø±Ø§Øª',
+ target: 'ÙØ¯Ù Ø§ÙØ±Ø§Ø¨Ø·',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',
+ langDirRTL: 'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',
+ styles: 'ÙÙ
Ø·',
+ cssClasses: 'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',
+ width: 'Ø§ÙØ¹Ø±Ø¶',
+ height: 'Ø§ÙØ¥Ø±ØªÙاع',
+ align: 'Ù
ØØ§Ø°Ø§Ø©',
+ alignLeft: 'ÙØ³Ø§Ø±',
+ alignRight: 'ÙÙ
ÙÙ',
+ alignCenter: 'ÙØ³Ø·',
+ alignTop: 'أعÙÙ',
+ alignMiddle: 'ÙØ³Ø·',
+ alignBottom: 'أسÙÙ',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Ø§ÙØ§Ø±ØªÙاع ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ invalidWidth: 'Ø§ÙØ¹Ø±Ø¶ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ØºÙØ± Ù
تاØ</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/bg.js b/devel/third-party/ckeditor/lang/bg.js
index 4e531ad..809240f 100644
--- a/devel/third-party/ckeditor/lang/bg.js
+++ b/devel/third-party/ckeditor/lang/bg.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Bulgarian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['bg'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Ðод',
- newPage : 'Ðова ÑÑÑаниÑа',
- save : 'Ðапази',
- preview : 'ÐÑедваÑиÑелен изглед',
- cut : 'ÐзÑежи',
- copy : 'ÐапамеÑи',
- paste : 'ÐмÑкни',
- print : 'ÐеÑаÑ',
- underline : 'ÐодÑеÑÑан',
- bold : 'Удебелен',
- italic : 'ÐÑÑÑив',
- selectAll : 'СелекÑиÑай вÑиÑко',
- removeFormat : 'ÐзÑÑий ÑоÑмаÑиÑанеÑо',
- strike : 'ÐаÑеÑÑан',
- subscript : 'ÐÐ½Ð´ÐµÐºÑ Ð·Ð° база',
- superscript : 'ÐÐ½Ð´ÐµÐºÑ Ð·Ð° ÑÑепен',
- horizontalrule : 'ÐмÑкни Ñ
оÑизонÑална линиÑ',
- pagebreak : 'ÐмÑкни нов Ñед',
- unlink : 'ÐзÑÑий вÑÑзка',
- undo : 'ÐÑмени',
- redo : 'ÐовÑоÑи',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Разгледай ÑÑÑвÑÑа',
- url : 'ÐÑлен пÑÑ (URL)',
- protocol : 'ÐÑоÑокол',
- upload : 'ÐаÑи',
- uploadSubmit : 'ÐÑаÑи кÑм ÑÑÑвÑÑа',
- image : 'ÐзобÑажение',
- flash : 'Flash',
- form : 'ФоÑмÑлÑÑ',
- checkbox : 'Ðоле за оÑмеÑка',
- radio : 'Ðоле за опÑиÑ',
- textField : 'ТекÑÑово поле',
- textarea : 'ТекÑÑова облаÑÑ',
- hiddenField : 'СкÑиÑо поле',
- button : 'ÐÑÑон',
- select : 'ÐадаÑо Ð¼ÐµÐ½Ñ Ñ Ð¾Ð¿Ñии',
- imageButton : 'ÐÑÑон-изобÑажение',
- notSet : '<не е наÑÑÑоен>',
- id : 'ÐденÑиÑикаÑоÑ',
- name : 'Ðме',
- langDir : 'поÑока на ÑеÑÑа',
- langDirLtr : 'ÐÑ Ð»Ñво на дÑÑно',
- langDirRtl : 'ÐÑ Ð´ÑÑно на лÑво',
- langCode : 'Ðод на езика',
- longDescr : 'ÐпиÑание на вÑÑзкаÑа',
- cssClass : 'ÐÐ»Ð°Ñ Ð¾Ñ ÑÑиловиÑе ÑаблиÑи',
- advisoryTitle : 'ÐÑепоÑÑÑиÑелно заглавие',
- cssStyle : 'СÑил',
- ok : 'ÐÐ',
- cancel : 'ÐÑказ',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'ÐодÑобноÑÑи...',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ÐмÑкни ÑпеÑиален Ñимвол',
- title : 'ÐзбеÑеÑе ÑпеÑиален Ñимвол',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ðобави/РедакÑиÑай вÑÑзка',
- other : '<дÑÑг>',
- menu : 'РедакÑиÑай вÑÑзка',
- title : 'ÐÑÑзка',
- info : 'ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° вÑÑзкаÑа',
- target : 'Цел',
- upload : 'ÐаÑи',
- advanced : 'ÐодÑобноÑÑи...',
- type : 'Ðид на вÑÑзкаÑа',
- toUrl : 'URL', // MISSING
- toAnchor : 'ÐоÑва в ÑекÑÑаÑа ÑÑÑаниÑа',
- toEmail : 'Ð-поÑа',
- targetFrame : '<Ñамка>',
- targetPopup : '<дÑÑеÑен пÑозоÑеÑ>',
- targetFrameName : 'Ðме на ÑÐµÐ»ÐµÐ²Ð¸Ñ Ð¿ÑозоÑеÑ',
- targetPopupName : 'Ðме на дÑÑеÑÐ½Ð¸Ñ Ð¿ÑозоÑеÑ',
- popupFeatures : 'ÐаÑамеÑÑи на дÑÑеÑÐ½Ð¸Ñ Ð¿ÑозоÑеÑ',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Ðоле за ÑÑаÑÑÑ',
- popupLocationBar: 'Ðоле за адÑеÑ',
- popupToolbar : 'Ðанел Ñ Ð±ÑÑони',
- popupMenuBar : 'ÐенÑ',
- popupFullScreen : 'ÐолÑм екÑан (MS IE)',
- popupScrollBars : 'ÐлÑзгаÑ',
- popupDependent : 'ÐавиÑим (Netscape)',
- popupWidth : 'ШиÑина',
- popupLeft : 'ÐооÑдинаÑи - X',
- popupHeight : 'ÐиÑоÑина',
- popupTop : 'ÐооÑдинаÑи - Y',
- id : 'Id', // MISSING
- langDir : 'поÑока на ÑеÑÑа',
- langDirLTR : 'ÐÑ Ð»Ñво на дÑÑно',
- langDirRTL : 'ÐÑ Ð´ÑÑно на лÑво',
- acccessKey : 'ÐÑÑз клавиÑ',
- name : 'Ðме',
- langCode : 'поÑока на ÑеÑÑа',
- tabIndex : 'Ред на доÑÑÑп',
- advisoryTitle : 'ÐÑепоÑÑÑиÑелно заглавие',
- advisoryContentType : 'ÐÑепоÑÑÑиÑелен Ñип на ÑÑдÑÑжаниеÑо',
- cssClasses : 'ÐÐ»Ð°Ñ Ð¾Ñ ÑÑиловиÑе ÑаблиÑи',
- charset : 'Тип на ÑвÑÑÐ·Ð°Ð½Ð¸Ñ ÑеÑÑÑÑ',
- styles : 'СÑил',
- selectAnchor : 'ÐзбеÑеÑе коÑва',
- anchorName : 'Ðо име на коÑваÑа',
- anchorId : 'Ðо иденÑиÑикаÑÐ¾Ñ Ð½Ð° елеменÑ',
- emailAddress : 'ÐдÑÐµÑ Ð·Ð° е-поÑа',
- emailSubject : 'Тема на пиÑмоÑо',
- emailBody : 'ТекÑÑ Ð½Ð° пиÑмоÑо',
- noAnchors : '(ÐÑма коÑви в ÑекÑÑÐ¸Ñ Ð´Ð¾ÐºÑменÑ)',
- noUrl : 'ÐолÑ, напиÑеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ (URL)',
- noEmail : 'ÐолÑ, напиÑеÑе адÑеÑа за е-поÑа'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ðобави/РедакÑиÑай коÑва',
- menu : 'ÐаÑамеÑÑи на коÑваÑа',
- title : 'ÐаÑамеÑÑи на коÑваÑа',
- name : 'Ðме на коÑваÑа',
- errorName : 'ÐолÑ, вÑведеÑе име на коÑваÑа'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'ТÑÑÑи',
- replace : 'ÐамеÑÑи',
- findWhat : 'ТÑÑÑи:',
- replaceWith : 'ÐамеÑÑи Ñ:',
- notFoundMsg : 'Ð£ÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑекÑÑ Ð½Ðµ беÑе намеÑен.',
- matchCase : 'СÑÑ ÑÑÑÐ¸Ñ ÑегиÑÑÑÑ',
- matchWord : 'ТÑÑÑи ÑÑÑаÑа дÑма',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'ÐамеÑÑи вÑиÑки',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'ТаблиÑа',
- title : 'ÐаÑамеÑÑи на ÑаблиÑаÑа',
- menu : 'ÐаÑамеÑÑи на ÑаблиÑаÑа',
- deleteTable : 'ÐзÑÑий ÑаблиÑаÑа',
- rows : 'Редове',
- columns : 'Ðолони',
- border : 'Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑамкаÑа',
- align : 'ÐодÑавнÑване',
- alignLeft : 'ÐÑво',
- alignCenter : 'ЦенÑÑÑ',
- alignRight : 'ÐÑÑно',
- width : 'ШиÑина',
- widthPx : 'пикÑели',
- widthPc : 'пÑоÑенÑи',
- widthUnit : 'width unit', // MISSING
- height : 'ÐиÑоÑина',
- cellSpace : 'РазÑÑоÑние Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»ÐµÑкиÑе',
- cellPad : 'ÐÑÑÑÑп на ÑÑдÑÑжаниеÑо в клеÑкиÑе',
- caption : 'Ðаглавие',
- summary : 'РезÑме',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'ÐзÑÑий клеÑкиÑе',
- merge : 'Ðбедини клеÑкиÑе',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'ÐзÑÑий ÑедовеÑе'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'ÐзÑÑий колониÑе'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ÐаÑамеÑÑи на бÑÑона',
- text : 'ТекÑÑ (СÑойноÑÑ)',
- type : 'Тип',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ÐаÑамеÑÑи на полеÑо за оÑмеÑка',
- radioTitle : 'ÐаÑамеÑÑи на полеÑо за опÑиÑ',
- value : 'СÑойноÑÑ',
- selected : 'ÐÑмеÑнаÑо'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ÐаÑамеÑÑи на ÑоÑмÑлÑÑа',
- menu : 'ÐаÑамеÑÑи на ÑоÑмÑлÑÑа',
- action : 'ÐейÑÑвие',
- method : 'ÐеÑод',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'ÐаÑамеÑÑи на падаÑоÑо Ð¼ÐµÐ½Ñ Ñ Ð¾Ð¿Ñии',
- selectInfo : 'ÐнÑоÑмаÑиÑ',
- opAvail : 'ÐÑзможни опÑии',
- value : 'СÑойноÑÑ',
- size : 'РазмеÑ',
- lines : 'линии',
- chkMulti : 'РазÑеÑено множеÑÑвено ÑелекÑиÑане',
- opText : 'ТекÑÑ',
- opValue : 'СÑойноÑÑ',
- btnAdd : 'Ðобави',
- btnModify : 'ÐÑомени',
- btnUp : 'ÐагоÑе',
- btnDown : 'ÐадолÑ',
- btnSetValue : 'ÐаÑÑÑой каÑо избÑана ÑÑойноÑÑ',
- btnDelete : 'ÐзÑÑий'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ÐаÑамеÑÑи на ÑекÑÑоваÑа облаÑÑ',
- cols : 'Ðолони',
- rows : 'Редове'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ÐаÑамеÑÑи на ÑекÑÑовоÑо-поле',
- name : 'Ðме',
- value : 'СÑойноÑÑ',
- charWidth : 'ШиÑина на ÑимволиÑе',
- maxChars : 'ÐакÑимÑм Ñимволи',
- type : 'Тип',
- typeText : 'ТекÑÑ',
- typePass : 'ÐаÑола'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ÐаÑамеÑÑи на ÑкÑиÑоÑо поле',
- name : 'Ðме',
- value : 'СÑойноÑÑ'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ÐаÑамеÑÑи на изобÑажениеÑо',
- titleButton : 'ÐаÑамеÑÑи на бÑÑона-изобÑажение',
- menu : 'ÐаÑамеÑÑи на изобÑажениеÑо',
- infoTab : 'ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° изобÑажениеÑо',
- btnUpload : 'ÐÑаÑи кÑм ÑÑÑвÑÑа',
- upload : 'ÐаÑи',
- alt : 'ÐлÑеÑнаÑивен ÑекÑÑ',
- width : 'ШиÑина',
- height : 'ÐиÑоÑина',
- lockRatio : 'Ðапази пÑопоÑÑиÑÑа',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'ÐÑзÑÑанови ÑазмеÑа',
- border : 'Рамка',
- hSpace : 'ХоÑизонÑален оÑÑÑÑп',
- vSpace : 'ÐеÑÑикален оÑÑÑÑп',
- align : 'ÐодÑавнÑване',
- alignLeft : 'ÐÑво',
- alignRight : 'ÐÑÑно',
- alertUrl : 'ÐолÑ, вÑведеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ Ð´Ð¾ изобÑажениеÑо',
- linkTab : 'ÐÑÑзка',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ÐаÑамеÑÑи на Flash обекÑа',
- propertiesTab : 'Properties', // MISSING
- title : 'ÐаÑамеÑÑи на Flash обекÑа',
- chkPlay : 'ÐвÑомаÑиÑно ÑÑаÑÑиÑане',
- chkLoop : 'Ðово ÑÑаÑÑиÑане Ñлед завÑÑÑванеÑо',
- chkMenu : 'РазÑеÑено Flash менÑ',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'ÐÑазмеÑÑване',
- scaleAll : 'Ðокажи ÑÐµÐ»Ð¸Ñ Ð¾Ð±ÐµÐºÑ',
- scaleNoBorder : 'Ðез Ñамка',
- scaleFit : 'СпоÑед мÑÑÑоÑо',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'ÐодÑавнÑване',
- alignLeft : 'ÐÑво',
- alignAbsBottom : 'Ðай-долÑ',
- alignAbsMiddle : 'ТоÑно по ÑÑедаÑа',
- alignBaseline : 'Ðо базоваÑа линиÑ',
- alignBottom : 'ÐолÑ',
- alignMiddle : 'Ðо ÑÑедаÑа',
- alignRight : 'ÐÑÑно',
- alignTextTop : 'ÐÑÑÑ
Ñ ÑекÑÑа',
- alignTop : 'ÐÑгоÑе',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'ЦвÑÑ Ð½Ð° Ñона',
- width : 'ШиÑина',
- height : 'ÐиÑоÑина',
- hSpace : 'ХоÑизонÑален оÑÑÑÑп',
- vSpace : 'ÐеÑÑикален оÑÑÑÑп',
- validateSrc : 'ÐолÑ, напиÑеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ (URL)',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ÐÑовеÑи пÑавопиÑа',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'ÐипÑва в ÑеÑника',
- changeTo : 'ÐÑомени на',
- btnIgnore : 'ÐгноÑиÑай',
- btnIgnoreAll : 'ÐгноÑиÑай вÑиÑки',
- btnReplace : 'ÐамеÑÑи',
- btnReplaceAll : 'ÐамеÑÑи вÑиÑки',
- btnUndo : 'ÐÑмени',
- noSuggestions : '- ÐÑма пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ -',
- progress : 'ÐзвÑÑÑване на пÑовеÑкаÑа за пÑавопиÑ...',
- noMispell : 'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: не Ñа оÑкÑиÑи пÑавопиÑни гÑеÑки',
- noChanges : 'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: нÑма пÑоменени дÑми',
- oneChange : 'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: една дÑма е пÑоменена',
- manyChanges : 'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: %1 дÑми Ñа пÑоменени',
- ieSpellDownload : 'ÐнÑÑÑÑменÑÑÑ Ð·Ð° пÑовеÑка на пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð½Ðµ е инÑÑалиÑан. ÐелаеÑе ли да го инÑÑалиÑаÑе ?'
- },
-
- smiley :
- {
- toolbar : 'УÑмивка',
- title : 'Ðобави ÑÑмивка',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ÐÑмеÑиÑан ÑпиÑÑк',
- bulletedlist : 'ÐенÑмеÑиÑан ÑпиÑÑк',
- indent : 'УвелиÑи оÑÑÑÑпа',
- outdent : 'Ðамали оÑÑÑÑпа',
-
- justify :
- {
- left : 'ÐодÑавнÑване в лÑво',
- center : 'ÐодÑавнÑвне в ÑÑедаÑа',
- right : 'ÐодÑавнÑване в дÑÑно',
- block : 'ÐвÑÑÑÑанно подÑавнÑване'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'ÐмÑкни',
- cutError : 'ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ваÑÐ¸Ñ Ð±ÑазÑÑÑ Ð½Ðµ ÑазÑеÑÐ°Ð²Ð°Ñ Ð½Ð° ÑедакÑоÑа да изпÑлни изÑÑзванеÑо. Ðа ÑелÑа използвайÑе клавиаÑÑÑаÑа (Ctrl/Cmd+X).',
- copyError : 'ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ваÑÐ¸Ñ Ð±ÑазÑÑÑ Ð½Ðµ ÑазÑеÑÐ°Ð²Ð°Ñ Ð½Ð° ÑедакÑоÑа да изпÑлни запамеÑÑванеÑо. Ðа ÑелÑа използвайÑе клавиаÑÑÑаÑа (Ctrl/Cmd+C).',
- pasteMsg : 'ÐмÑкнеÑе ÑÑк ÑÑдÑжаниеÑо Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑаÑаÑа (<STRONG>Ctrl/Cmd+V</STRONG>) и наÑиÑнеÑе <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'ÐмÑкни Ð¾Ñ MS Word',
- title : 'ÐмÑкни Ð¾Ñ MS Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ',
- title : 'ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ'
- },
-
- templates :
- {
- button : 'Шаблони',
- title : 'Шаблони',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'ÐзбеÑеÑе Ñаблон <br>(ÑекÑÑоÑо ÑÑдÑÑжание на ÑедакÑоÑа Ñе бÑде загÑбено):',
- emptyListMsg : '(ÐÑма деÑиниÑани Ñаблони)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'СÑил',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ФоÑмаÑ',
- panelTitle : 'ФоÑмаÑ',
-
- tag_p : 'ÐоÑмален',
- tag_pre : 'ФоÑмаÑиÑан',
- tag_address : 'ÐдÑеÑ',
- tag_h1 : 'Ðаглавие 1',
- tag_h2 : 'Ðаглавие 2',
- tag_h3 : 'Ðаглавие 3',
- tag_h4 : 'Ðаглавие 4',
- tag_h5 : 'Ðаглавие 5',
- tag_h6 : 'Ðаглавие 6',
- tag_div : 'ÐаÑагÑÐ°Ñ (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ШÑиÑÑ',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ШÑиÑÑ'
- },
-
- fontSize :
- {
- label : 'РазмеÑ',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'РазмеÑ'
- },
-
- colorButton :
- {
- textColorTitle : 'ЦвÑÑ Ð½Ð° ÑекÑÑа',
- bgColorTitle : 'ЦвÑÑ Ð½Ð° Ñона',
- panelTitle : 'Colors', // MISSING
- auto : 'Ðо подÑазбиÑане',
- more : 'ÐÑÑги ÑвеÑове...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Bulgarian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'bg' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'ТекÑÑов ÑедакÑÐ¾Ñ Ð·Ð° ÑоÑмаÑиÑан ÑекÑÑ',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'наÑиÑнеÑе ALT 0 за помоÑ',
+
+ browseServer: 'ÐÐ·Ð±Ð¾Ñ Ð¾Ñ ÑÑÑвÑÑа',
+ url: 'URL',
+ protocol: 'ÐÑоÑокол',
+ upload: 'ÐаÑване',
+ uploadSubmit: 'ÐзпÑаÑане кÑм ÑÑÑвÑÑа',
+ image: 'Снимка',
+ flash: 'ФлаÑ',
+ form: 'ФоÑма',
+ checkbox: 'Ðоле за избоÑ',
+ radio: 'Радио бÑÑон',
+ textField: 'ТекÑÑово поле',
+ textarea: 'ТекÑÑова зона',
+ hiddenField: 'СкÑиÑо поле',
+ button: 'ÐÑÑон',
+ select: 'Ðоле за избоÑ',
+ imageButton: 'ÐÑÑон за Ñнимка',
+ notSet: '<не е избÑано>',
+ id: 'ID',
+ name: 'Ðме',
+ langDir: 'ÐоÑока на езика',
+ langDirLtr: 'ÐÑво на дÑÑно (ÐнÐ)',
+ langDirRtl: 'ÐÑÑно на лÑво (ÐнÐ)',
+ langCode: 'Ðод на езика',
+ longDescr: 'Уеб адÑÐµÑ Ð·Ð° дÑлго опиÑание',
+ cssClass: 'ÐлаÑове за CSS',
+ advisoryTitle: 'ÐÑепоÑÑÑиÑелно заглавие',
+ cssStyle: 'СÑил',
+ ok: 'ÐÐ',
+ cancel: 'ÐÑказ',
+ close: 'ÐаÑвоÑи',
+ preview: 'ÐÑеглед',
+ resize: 'ÐлаÑеÑе за да оÑазмеÑиÑе',
+ generalTab: 'ÐбÑо',
+ advancedTab: 'РазÑиÑено',
+ validateNumberFailed: 'Тази ÑÑойноÑÑ Ð½Ðµ е ÑиÑло',
+ confirmNewPage: 'ÐÑиÑки незапазени пÑомени Ñе бÑÐ´Ð°Ñ Ð¸Ð·Ð³Ñбени. СигÑÑни ли ÑÑе, Ñе желаеÑе да заÑедиÑе нова ÑÑÑаниÑа?',
+ confirmCancel: 'ÐÑкои Ð¾Ñ Ð¾Ð¿ÑииÑе Ñа пÑоменени. СигÑÑни ли ÑÑе, Ñе желаеÑе да заÑвоÑиÑе пÑозоÑеÑа?',
+ options: 'ÐпÑии',
+ target: 'Цел',
+ targetNew: 'Ðов пÑозоÑÐµÑ (_blank)',
+ targetTop: 'ÐоÑна позиÑÐ¸Ñ (_top)',
+ targetSelf: 'ТекÑÑÐ¸Ñ Ð¿ÑозоÑÐµÑ (_self)',
+ targetParent: 'ÐÑновен пÑозоÑÐµÑ (_parent)',
+ langDirLTR: 'ÐÑво на дÑÑно (ÐнÐ)',
+ langDirRTL: 'ÐÑÑно на лÑво (ÐнÐ)',
+ styles: 'СÑил',
+ cssClasses: 'ÐлаÑове за CSS',
+ width: 'ШиÑина',
+ height: 'ÐиÑоÑина',
+ align: 'ÐодÑавнÑване',
+ alignLeft: 'ÐÑво',
+ alignRight: 'ÐÑÑно',
+ alignCenter: 'ЦенÑÑÑ',
+ alignTop: 'ÐоÑе',
+ alignMiddle: 'Ðо ÑÑедаÑа',
+ alignBottom: 'ÐолÑ',
+ invalidValue : 'Ðевалидна ÑÑойноÑÑ.',
+ invalidHeight: 'ÐиÑоÑинаÑа ÑÑÑбва да е ÑиÑло.',
+ invalidWidth: 'ШиÑина ÑÑебе да е ÑиÑло.',
+ invalidCssLength: 'СÑойноÑÑÑа на полеÑо "%1" ÑÑÑбва да бÑде положиÑелно ÑиÑло Ñ Ð¸Ð»Ð¸ без валидна CSS измеÑваÑелна единиÑа (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'СÑойноÑÑÑа на полеÑо "%1" ÑÑÑбва да бÑде положиÑелно ÑиÑло Ñ Ð¸Ð»Ð¸ без валидна HTML измеÑваÑелна единиÑа (px or %).',
+ invalidInlineStyle: 'СÑойноÑÑÑа на ÑÑилa ÑÑÑбва да ÑÑдÑÑÐ¶Ð°Ñ ÐµÐ´Ð½Ð° или повеÑе двойки вÑв ÑоÑÐ¼Ð°Ñ "name : value", Ñазделени Ñ Ð´Ð²Ð¾ÐµÑоÑие.',
+ cssLengthTooltip: 'ÐÑведеÑе ÑиÑлена ÑÑойноÑÑ Ð² пикÑели или дÑÑга валидна CSS единиÑа (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, недоÑÑÑпно</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/bn.js b/devel/third-party/ckeditor/lang/bn.js
index aaba3de..8916a4a 100644
--- a/devel/third-party/ckeditor/lang/bn.js
+++ b/devel/third-party/ckeditor/lang/bn.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Bengali/Bangla language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['bn'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'সà§à¦°à§à¦¸',
- newPage : 'নতà§à¦¨ পà§à¦',
- save : 'সà¦à¦°à¦à§à¦·à¦¨ à¦à¦°',
- preview : 'পà§à¦°à¦¿à¦à¦¿à¦',
- cut : 'à¦à¦¾à¦',
- copy : 'à¦à¦ªà¦¿',
- paste : 'পà§à¦¸à§à¦',
- print : 'পà§à¦°à¦¿à¦¨à§à¦',
- underline : 'à¦à¦¨à§à¦¡à¦¾à¦°à¦²à¦¾à¦à¦¨',
- bold : 'বà§à¦²à§à¦¡',
- italic : 'à¦à¦à¦¾à¦²à¦¿à¦',
- selectAll : 'সব সিলà§à¦à§à¦ à¦à¦°',
- removeFormat : 'ফরমà§à¦ সরাà¦',
- strike : 'সà§à¦à§à¦°à¦¾à¦à¦ থà§à¦°à§',
- subscript : 'à¦
ধà§à¦²à§à¦',
- superscript : 'à¦
à¦à¦¿à¦²à§à¦',
- horizontalrule : 'রà§à¦à¦¾ যà§à¦à§à¦¤ à¦à¦°',
- pagebreak : 'পà§à¦ বà§à¦°à§à¦',
- unlink : 'লিà¦à¦ সরাà¦',
- undo : 'à¦à¦¨à¦¡à§',
- redo : 'রি-ডà§',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'বà§à¦°à¦¾à¦à¦ সারà§à¦à¦¾à¦°',
- url : 'URL',
- protocol : 'পà§à¦°à§à¦à§à¦à¦²',
- upload : 'à¦à¦ªà¦²à§à¦¡',
- uploadSubmit : 'à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°',
- image : 'à¦à¦¬à¦¿à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',
- flash : 'ফà§à¦²à¦¾à¦¶ লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',
- form : 'ফরà§à¦®',
- checkbox : 'à¦à§à¦ বাà¦à§à¦¸',
- radio : 'রà§à¦¡à¦¿à¦ বাà¦à¦¨',
- textField : 'à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡',
- textarea : 'à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾',
- hiddenField : 'à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡',
- button : 'বাà¦à¦¨',
- select : 'বাà¦à¦¾à¦ ফà§à¦²à§à¦¡',
- imageButton : 'à¦à¦¬à¦¿à¦° বাà¦à¦¨',
- notSet : '<সà§à¦ নà§à¦>',
- id : 'à¦à¦à¦¡à¦¿',
- name : 'নাম',
- langDir : 'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',
- langDirLtr : 'বাম থà§à¦à§ ডান (LTR)',
- langDirRtl : 'ডান থà§à¦à§ বাম (RTL)',
- langCode : 'à¦à¦¾à¦·à¦¾ à¦à§à¦¡',
- longDescr : 'URL à¦à¦° লমà§à¦¬à¦¾ বরà§à¦£à¦¨à¦¾',
- cssClass : 'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',
- advisoryTitle : 'পরামরà§à¦¶ শà§à¦°à§à¦·à¦',
- cssStyle : 'সà§à¦à¦¾à¦à¦²',
- ok : 'à¦à¦à§',
- cancel : 'বাতিল',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'বিশà§à¦· à¦
à¦à§à¦·à¦° যà§à¦à§à¦¤ à¦à¦°',
- title : 'বিশà§à¦· à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° বাà¦à¦¾à¦ à¦à¦°',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'লিà¦à¦ যà§à¦à§à¦¤ à¦à¦°',
- other : '<other>', // MISSING
- menu : 'লিà¦à¦ সমà§à¦ªà¦¾à¦¦à¦¨',
- title : 'লিà¦à¦',
- info : 'লিà¦à¦ তথà§à¦¯',
- target : 'à¦à¦¾à¦°à§à¦à§à¦',
- upload : 'à¦à¦ªà¦²à§à¦¡',
- advanced : 'à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡',
- type : 'লিà¦à¦ পà§à¦°à¦à¦¾à¦°',
- toUrl : 'URL', // MISSING
- toAnchor : 'à¦à¦ পà§à¦à§ নà§à¦à¦° à¦à¦°',
- toEmail : 'à¦à¦®à§à¦à¦²',
- targetFrame : '<ফà§à¦°à§à¦®>',
- targetPopup : '<পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§>',
- targetFrameName : 'à¦à¦¾à¦°à§à¦à§à¦ ফà§à¦°à§à¦®à§à¦° নাম',
- targetPopupName : 'পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§à¦° নাম',
- popupFeatures : 'পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§ ফà§à¦à¦¾à¦° সমà§à¦¹',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'সà§à¦à§à¦¯à¦¾à¦à¦¾à¦¸ বার',
- popupLocationBar: 'লà§à¦à§à¦¶à¦¨ বার',
- popupToolbar : 'à¦à§à¦² বার',
- popupMenuBar : 'মà§à¦¨à§à¦¯à§ বার',
- popupFullScreen : 'পà§à¦°à§à¦£ পরà§à¦¦à¦¾ à¦à§à§à§ (IE)',
- popupScrollBars : 'সà§à¦à§à¦°à¦² বার',
- popupDependent : 'ডিপà§à¦¨à§à¦¡à§à¦¨à§à¦ (Netscape)',
- popupWidth : 'পà§à¦°à¦¸à§à¦¥',
- popupLeft : 'বামà§à¦° পà¦à¦¿à¦¶à¦¨',
- popupHeight : 'দà§à¦°à§à¦à§à¦¯',
- popupTop : 'ডানà§à¦° পà¦à¦¿à¦¶à¦¨',
- id : 'Id', // MISSING
- langDir : 'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',
- langDirLTR : 'বাম থà§à¦à§ ডান (LTR)',
- langDirRTL : 'ডান থà§à¦à§ বাম (RTL)',
- acccessKey : 'à¦à¦à§à¦¸à§à¦¸ à¦à§',
- name : 'নাম',
- langCode : 'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',
- tabIndex : 'à¦à§à¦¯à¦¾à¦¬ à¦à¦¨à§à¦¡à§à¦à§à¦¸',
- advisoryTitle : 'পরামরà§à¦¶ শà§à¦°à§à¦·à¦',
- advisoryContentType : 'পরামরà§à¦¶ à¦à¦¨à§à¦à§à¦¨à§à¦à§à¦° পà§à¦°à¦à¦¾à¦°',
- cssClasses : 'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',
- charset : 'লিà¦à¦ রিসà§à¦°à§à¦¸ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦° সà§à¦',
- styles : 'সà§à¦à¦¾à¦à¦²',
- selectAnchor : 'নà§à¦à¦° বাà¦à¦¾à¦',
- anchorName : 'নà§à¦à¦°à§à¦° নাম দিà§à§',
- anchorId : 'নà§à¦à¦°à§à¦° à¦à¦à¦¡à¦¿ দিà§à§',
- emailAddress : 'à¦à¦®à§à¦à¦² ঠিà¦à¦¾à¦¨à¦¾',
- emailSubject : 'মà§à¦¸à§à¦à§à¦° বিষà§',
- emailBody : 'মà§à¦¸à§à¦à§à¦° দà§à¦¹',
- noAnchors : '(No anchors available in the document)', // MISSING
- noUrl : 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
- noEmail : 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦®à§à¦à¦² à¦à¦¡à§à¦°à§à¦¸ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'নà§à¦à§à¦à¦°',
- menu : 'নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- title : 'নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- name : 'নà§à¦à¦°à§à¦° নাম',
- errorName : 'নà§à¦à¦°à§à¦° নাম à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'à¦à§à¦à§',
- replace : 'রিপà§à¦²à§à¦¸',
- findWhat : 'যা à¦à§à¦à¦à¦¤à§ হবà§:',
- replaceWith : 'যার সাথৠবদলাতৠহবà§:',
- notFoundMsg : 'à¦à¦ªà¦¨à¦¾à¦° à¦à¦²à§à¦²à§à¦à¦¿à¦¤ à¦à§à¦à¦¸à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿',
- matchCase : 'à¦à§à¦¸ মিলাà¦',
- matchWord : 'পà§à¦°à¦¾ শবà§à¦¦ মà§à¦²à¦¾à¦',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'সব বদলৠদাà¦',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'à¦à§à¦¬à¦¿à¦²à§à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',
- title : 'à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- menu : 'à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- deleteTable : 'à¦à§à¦¬à¦¿à¦² ডিলà§à¦ à¦à¦°',
- rows : 'রà§',
- columns : 'à¦à¦²à¦¾à¦®',
- border : 'বরà§à¦¡à¦¾à¦° সাà¦à¦',
- align : 'à¦à¦²à¦¾à¦à¦¨à¦®à§à¦¨à§à¦',
- alignLeft : 'বামà§',
- alignCenter : 'মাà¦à¦à¦¾à¦¨à§',
- alignRight : 'ডানà§',
- width : 'পà§à¦°à¦¸à§à¦¥',
- widthPx : 'পিà¦à§à¦¸à§à¦²',
- widthPc : 'শতà¦à¦°à¦¾',
- widthUnit : 'width unit', // MISSING
- height : 'দà§à¦°à§à¦à§à¦¯',
- cellSpace : 'সà§à¦² সà§à¦ªà§à¦¸',
- cellPad : 'সà§à¦² পà§à¦¯à¦¾à¦¡à¦¿à¦',
- caption : 'শà§à¦°à§à¦·à¦',
- summary : 'সারাà¦à¦¶',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'সà§à¦²',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'সà§à¦² মà§à¦à§ দাà¦',
- merge : 'সà§à¦² à¦à§à§à¦¾ দাà¦',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'রà§',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'রৠমà§à¦à§ দাà¦'
- },
-
- column :
- {
- menu : 'à¦à¦²à¦¾à¦®',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'à¦à¦²à¦¾à¦® মà§à¦à§ দাà¦'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- text : 'à¦à§à¦à§à¦¸à¦ (à¦à§à¦¯à¦¾à¦²à§)',
- type : 'পà§à¦°à¦à¦¾à¦°',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'à¦à§à¦ বà¦à§à¦¸ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- radioTitle : 'রà§à¦¡à¦¿à¦ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- value : 'à¦à§à¦¯à¦¾à¦²à§',
- selected : 'সিলà§à¦à§à¦à§à¦¡'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- menu : 'ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- action : 'à¦à¦à¦¶à§à¦¯à¦¨',
- method : 'পদà§à¦§à¦¤à¦¿',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'বাà¦à¦¾à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- selectInfo : 'তথà§à¦¯',
- opAvail : 'à¦
নà§à¦¯à¦¾à¦¨à§à¦¯ বিà¦à¦²à§à¦ª',
- value : 'à¦à§à¦¯à¦¾à¦²à§',
- size : 'সাà¦à¦',
- lines : 'লাà¦à¦¨ সমà§à¦¹',
- chkMulti : 'à¦à¦à¦¾à¦§à¦¿à¦ সিলà§à¦à¦¶à¦¨ à¦à¦²à¦¾à¦ à¦à¦°',
- opText : 'à¦à§à¦à§à¦¸à¦',
- opValue : 'à¦à§à¦¯à¦¾à¦²à§',
- btnAdd : 'যà§à¦à§à¦¤',
- btnModify : 'বদলৠদাà¦',
- btnUp : 'à¦à¦ªà¦°',
- btnDown : 'নà§à¦à§',
- btnSetValue : 'বাà¦à¦¾à¦ à¦à¦°à¦¾ à¦à§à¦¯à¦¾à¦²à§ হিসà§à¦¬à§ সà§à¦ à¦à¦°',
- btnDelete : 'ডিলà§à¦'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- cols : 'à¦à¦²à¦¾à¦®',
- rows : 'রà§'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- name : 'নাম',
- value : 'à¦à§à¦¯à¦¾à¦²à§',
- charWidth : 'à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° পà§à¦°à¦¶à¦¸à§à¦¤à¦¤à¦¾',
- maxChars : 'সরà§à¦¬à¦¾à¦§à¦¿à¦ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦°',
- type : 'à¦à¦¾à¦à¦ª',
- typeText : 'à¦à§à¦à§à¦¸à¦',
- typePass : 'পাসà¦à§à¦¾à¦°à§à¦¡'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- name : 'নাম',
- value : 'à¦à§à¦¯à¦¾à¦²à§'
- },
-
- // Image Dialog.
- image :
- {
- title : 'à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- titleButton : 'à¦à¦¬à¦¿ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- menu : 'à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- infoTab : 'à¦à¦¬à¦¿à¦° তথà§à¦¯',
- btnUpload : 'à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°',
- upload : 'à¦à¦ªà¦²à§à¦¡',
- alt : 'বিà¦à¦²à§à¦ª à¦à§à¦à§à¦¸à¦',
- width : 'পà§à¦°à¦¸à§à¦¥',
- height : 'দà§à¦°à§à¦à§à¦¯',
- lockRatio : 'à¦
নà§à¦ªà¦¾à¦¤ লঠà¦à¦°',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'সাà¦à¦ পà§à¦°à§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à§ ফিরিà§à§ দাà¦',
- border : 'বরà§à¦¡à¦¾à¦°',
- hSpace : 'হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸',
- vSpace : 'à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸',
- align : 'à¦à¦²à¦¾à¦à¦¨',
- alignLeft : 'বামà§',
- alignRight : 'ডানà§',
- alertUrl : 'à¦
নà§à¦à§à¦°à¦¹à¦ à¦à¦°à§ à¦à¦¬à¦¿à¦° URL à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
- linkTab : 'লিà¦à¦',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ফà§à¦²à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- propertiesTab : 'Properties', // MISSING
- title : 'ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
- chkPlay : 'à¦
à¦à§ পà§à¦²à§',
- chkLoop : 'লà§à¦ª',
- chkMenu : 'ফà§à¦²à§à¦¯à¦¾à¦¶ মà§à¦¨à§ à¦à¦¨à¦¾à¦¬à¦² à¦à¦°',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'সà§à¦à§à¦²',
- scaleAll : 'সব দà§à¦à¦¾à¦',
- scaleNoBorder : 'à¦à§à¦¨à§ বরà§à¦¡à¦¾à¦° নà§à¦',
- scaleFit : 'নিà¦à§à¦à¦¤ ফিà¦',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'à¦à¦²à¦¾à¦à¦¨',
- alignLeft : 'বামà§',
- alignAbsBottom : 'Abs নà§à¦à§',
- alignAbsMiddle : 'Abs à¦à¦ªà¦°',
- alignBaseline : 'মà§à¦² রà§à¦à¦¾',
- alignBottom : 'নà§à¦à§',
- alignMiddle : 'মধà§à¦¯',
- alignRight : 'ডানà§',
- alignTextTop : 'à¦à§à¦à§à¦¸à¦ à¦à¦ªà¦°',
- alignTop : 'à¦à¦ªà¦°',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦',
- width : 'পà§à¦°à¦¸à§à¦¥',
- height : 'দà§à¦°à§à¦à§à¦¯',
- hSpace : 'হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸',
- vSpace : 'à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸',
- validateSrc : 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'বানান à¦à§à¦',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'শবà§à¦¦à¦à§à¦·à§ নà§à¦',
- changeTo : 'à¦à¦¤à§ বদলাà¦',
- btnIgnore : 'à¦à¦à¦¨à§à¦° à¦à¦°',
- btnIgnoreAll : 'সব à¦à¦à¦¨à§à¦° à¦à¦°',
- btnReplace : 'বদলৠদাà¦',
- btnReplaceAll : 'সব বদলৠদাà¦',
- btnUndo : 'à¦à¦¨à§à¦¡à§',
- noSuggestions : '- à¦à§à¦¨ সাà¦à§à¦¶à¦¨ নà§à¦ -',
- progress : 'বানান পরà§à¦à§à¦·à¦¾ à¦à¦²à¦à§...',
- noMispell : 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ à¦à§à¦² বানান পাà¦à§à¦¾ যাà§à¦¨à¦¿',
- noChanges : 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à¦¨à¦¿',
- oneChange : 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à¦à¦à¦¿ মাতà§à¦° শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à§à¦à§',
- manyChanges : 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: %1 à¦à§à¦²à§ শবà§à¦¦ বদলৠà¦à§à¦¯à¦¾à¦à§',
- ieSpellDownload : 'বানান পরà§à¦à§à¦·à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ নà§à¦à¥¤ à¦à¦ªà¦¨à¦¿ à¦à¦¿ à¦à¦à¦¨à¦ à¦à¦à¦¾ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¤à§ à¦à¦¾à¦¨?'
- },
-
- smiley :
- {
- toolbar : 'সà§à¦®à¦¾à¦à¦²à§',
- title : 'সà§à¦®à¦¾à¦à¦²à§ যà§à¦à§à¦¤ à¦à¦°',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'সাà¦à¦à§à¦¯à¦¿à¦ লিসà§à¦à§à¦° লà§à¦¬à§à¦²',
- bulletedlist : 'বà§à¦²à§à¦ লিসà§à¦ লà§à¦¬à§à¦²',
- indent : 'à¦à¦¨à¦¡à§à¦¨à§à¦ বাà§à¦¾à¦',
- outdent : 'à¦à¦¨à¦¡à§à¦¨à§à¦ à¦à¦®à¦¾à¦',
-
- justify :
- {
- left : 'বা দিà¦à§ à¦à§à¦à¦·à¦¾',
- center : 'মাঠবরাবর à¦à§à¦·à¦¾',
- right : 'ডান দিà¦à§ à¦à§à¦à¦·à¦¾',
- block : 'বà§à¦²à¦ à¦à¦¾à¦¸à§à¦à¦¿à¦«à¦¾à¦'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'পà§à¦¸à§à¦',
- cutError : 'à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦¾à¦ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+X)।',
- copyError : 'à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦ªà¦¿ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+C)।',
- pasteMsg : 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ নà§à¦à§à¦° বাà¦à§à¦¸à§ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§ (<STRONG>Ctrl/Cmd+V</STRONG>) পà§à¦¸à§à¦ à¦à¦°à§à¦¨ à¦à¦¬à¦ <STRONG>OK</STRONG> à¦à¦¾à¦ª দিন',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'পà§à¦¸à§à¦ (শবà§à¦¦)',
- title : 'পà§à¦¸à§à¦ (শবà§à¦¦)',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°',
- title : 'সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°'
- },
-
- templates :
- {
- button : 'à¦à§à¦®à¦ªà§à¦²à§à¦',
- title : 'à¦à¦¨à¦à§à¦¨à§à¦ à¦à§à¦®à¦ªà§à¦²à§à¦',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦¡à¦¿à¦à¦°à§ à¦à¦ªà§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦à§à¦®à¦ªà§à¦²à§à¦ বাà¦à¦¾à¦ à¦à¦°à§à¦¨<br>(à¦à¦¸à¦² à¦à¦¨à¦à§à¦¨à§à¦ হারিà§à§ যাবà§):',
- emptyListMsg : '(à¦à§à¦¨ à¦à§à¦®à¦ªà§à¦²à§à¦ ডিফাà¦à¦¨ à¦à¦°à¦¾ নà§à¦)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'সà§à¦à¦¾à¦à¦²',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ফনà§à¦ ফরমà§à¦',
- panelTitle : 'ফনà§à¦ ফরমà§à¦',
-
- tag_p : 'সাধারণ',
- tag_pre : 'ফরà§à¦®à§à¦à§à¦¡',
- tag_address : 'ঠিà¦à¦¾à¦¨à¦¾',
- tag_h1 : 'শà§à¦°à§à¦·à¦ à§§',
- tag_h2 : 'শà§à¦°à§à¦·à¦ ২',
- tag_h3 : 'শà§à¦°à§à¦·à¦ à§©',
- tag_h4 : 'শà§à¦°à§à¦·à¦ ৪',
- tag_h5 : 'শà§à¦°à§à¦·à¦ à§«',
- tag_h6 : 'শà§à¦°à§à¦·à¦ ৬',
- tag_div : 'শà§à¦°à§à¦·à¦ (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ফনà§à¦',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ফনà§à¦'
- },
-
- fontSize :
- {
- label : 'সাà¦à¦',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'সাà¦à¦'
- },
-
- colorButton :
- {
- textColorTitle : 'à¦à§à¦à§à¦¸à§à¦ রà¦',
- bgColorTitle : 'বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦',
- panelTitle : 'Colors', // MISSING
- auto : 'à¦
à¦à§à¦®à§à¦à¦¿à¦',
- more : 'à¦à¦°à¦ রà¦...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Bengali/Bangla language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'bn' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'বà§à¦°à¦¾à¦à¦ সারà§à¦à¦¾à¦°',
+ url: 'URL',
+ protocol: 'পà§à¦°à§à¦à§à¦à¦²',
+ upload: 'à¦à¦ªà¦²à§à¦¡',
+ uploadSubmit: 'à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°',
+ image: 'à¦à¦¬à¦¿à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',
+ flash: 'ফà§à¦²à¦¾à¦¶ লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',
+ form: 'ফরà§à¦®',
+ checkbox: 'à¦à§à¦ বাà¦à§à¦¸',
+ radio: 'রà§à¦¡à¦¿à¦ বাà¦à¦¨',
+ textField: 'à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡',
+ textarea: 'à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾',
+ hiddenField: 'à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡',
+ button: 'বাà¦à¦¨',
+ select: 'বাà¦à¦¾à¦ ফà§à¦²à§à¦¡',
+ imageButton: 'à¦à¦¬à¦¿à¦° বাà¦à¦¨',
+ notSet: '<সà§à¦ নà§à¦>',
+ id: 'à¦à¦à¦¡à¦¿',
+ name: 'নাম',
+ langDir: 'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',
+ langDirLtr: 'বাম থà§à¦à§ ডান (LTR)',
+ langDirRtl: 'ডান থà§à¦à§ বাম (RTL)',
+ langCode: 'à¦à¦¾à¦·à¦¾ à¦à§à¦¡',
+ longDescr: 'URL à¦à¦° লমà§à¦¬à¦¾ বরà§à¦£à¦¨à¦¾',
+ cssClass: 'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',
+ advisoryTitle: 'পরামরà§à¦¶ শà§à¦°à§à¦·à¦',
+ cssStyle: 'সà§à¦à¦¾à¦à¦²',
+ ok: 'à¦à¦à§',
+ cancel: 'বাতিল',
+ close: 'Close', // MISSING
+ preview: 'পà§à¦°à¦¿à¦à¦¿à¦',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'à¦à¦¾à¦°à§à¦à§à¦',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'বাম থà§à¦à§ ডান (LTR)',
+ langDirRTL: 'ডান থà§à¦à§ বাম (RTL)',
+ styles: 'সà§à¦à¦¾à¦à¦²',
+ cssClasses: 'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',
+ width: 'পà§à¦°à¦¸à§à¦¥',
+ height: 'দà§à¦°à§à¦à§à¦¯',
+ align: 'à¦à¦²à¦¾à¦à¦¨',
+ alignLeft: 'বামà§',
+ alignRight: 'ডানà§',
+ alignCenter: 'মাà¦à¦à¦¾à¦¨à§',
+ alignTop: 'à¦à¦ªà¦°',
+ alignMiddle: 'মধà§à¦¯',
+ alignBottom: 'নà§à¦à§',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/bs.js b/devel/third-party/ckeditor/lang/bs.js
index bca41e6..ee83e82 100644
--- a/devel/third-party/ckeditor/lang/bs.js
+++ b/devel/third-party/ckeditor/lang/bs.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Bosnian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['bs'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'HTML kôd',
- newPage : 'Novi dokument',
- save : 'Snimi',
- preview : 'Prikaži',
- cut : 'Izreži',
- copy : 'Kopiraj',
- paste : 'Zalijepi',
- print : 'Å tampaj',
- underline : 'Podvuci',
- bold : 'Boldiraj',
- italic : 'Ukosi',
- selectAll : 'Selektuj sve',
- removeFormat : 'Poništi format',
- strike : 'Precrtaj',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Ubaci horizontalnu liniju',
- pagebreak : 'Insert Page Break for Printing', // MISSING
- unlink : 'Izbriši link',
- undo : 'Vrati',
- redo : 'Ponovi',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Browse Server', // MISSING
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Å alji',
- uploadSubmit : 'Å alji na server',
- image : 'Slika',
- flash : 'Flash', // MISSING
- form : 'Form', // MISSING
- checkbox : 'Checkbox', // MISSING
- radio : 'Radio Button', // MISSING
- textField : 'Text Field', // MISSING
- textarea : 'Textarea', // MISSING
- hiddenField : 'Hidden Field', // MISSING
- button : 'Button', // MISSING
- select : 'Selection Field', // MISSING
- imageButton : 'Image Button', // MISSING
- notSet : '<nije podešeno>',
- id : 'Id',
- name : 'Naziv',
- langDir : 'Smjer pisanja',
- langDirLtr : 'S lijeva na desno (LTR)',
- langDirRtl : 'S desna na lijevo (RTL)',
- langCode : 'Jezièni kôd',
- longDescr : 'Dugaèki opis URL-a',
- cssClass : 'Klase CSS stilova',
- advisoryTitle : 'Advisory title',
- cssStyle : 'Stil',
- ok : 'OK',
- cancel : 'Odustani',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Naprednije',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Ubaci specijalni karater',
- title : 'Izaberi specijalni karakter',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ubaci/Izmjeni link',
- other : '<other>', // MISSING
- menu : 'Izmjeni link',
- title : 'Link',
- info : 'Link info',
- target : 'Prozor',
- upload : 'Å alji',
- advanced : 'Naprednije',
- type : 'Tip linka',
- toUrl : 'URL', // MISSING
- toAnchor : 'Sidro na ovoj stranici',
- toEmail : 'E-Mail',
- targetFrame : '<frejm>',
- targetPopup : '<popup prozor>',
- targetFrameName : 'Target Frame Name', // MISSING
- targetPopupName : 'Naziv popup prozora',
- popupFeatures : 'Moguænosti popup prozora',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Statusna traka',
- popupLocationBar: 'Traka za lokaciju',
- popupToolbar : 'Traka sa alatima',
- popupMenuBar : 'Izborna traka',
- popupFullScreen : 'Cijeli ekran (IE)',
- popupScrollBars : 'Scroll traka',
- popupDependent : 'Ovisno (Netscape)',
- popupWidth : 'Å irina',
- popupLeft : 'Lijeva pozicija',
- popupHeight : 'Visina',
- popupTop : 'Gornja pozicija',
- id : 'Id', // MISSING
- langDir : 'Smjer pisanja',
- langDirLTR : 'S lijeva na desno (LTR)',
- langDirRTL : 'S desna na lijevo (RTL)',
- acccessKey : 'Pristupna tipka',
- name : 'Naziv',
- langCode : 'Smjer pisanja',
- tabIndex : 'Tab indeks',
- advisoryTitle : 'Advisory title',
- advisoryContentType : 'Advisory vrsta sadržaja',
- cssClasses : 'Klase CSS stilova',
- charset : 'Linked Resource Charset',
- styles : 'Stil',
- selectAnchor : 'Izaberi sidro',
- anchorName : 'Po nazivu sidra',
- anchorId : 'Po Id-u elementa',
- emailAddress : 'E-Mail Adresa',
- emailSubject : 'Subjekt poruke',
- emailBody : 'Poruka',
- noAnchors : '(Nema dostupnih sidra na stranici)',
- noUrl : 'Molimo ukucajte URL link',
- noEmail : 'Molimo ukucajte e-mail adresu'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Anchor', // MISSING
- menu : 'Edit Anchor', // MISSING
- title : 'Anchor Properties', // MISSING
- name : 'Anchor Name', // MISSING
- errorName : 'Please type the anchor name' // MISSING
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'Naði',
- replace : 'Zamjeni',
- findWhat : 'Naði šta:',
- replaceWith : 'Zamjeni sa:',
- notFoundMsg : 'Traženi tekst nije pronaðen.',
- matchCase : 'Uporeðuj velika/mala slova',
- matchWord : 'Uporeðuj samo cijelu rijeè',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Zamjeni sve',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabela',
- title : 'Svojstva tabele',
- menu : 'Svojstva tabele',
- deleteTable : 'Delete Table', // MISSING
- rows : 'Redova',
- columns : 'Kolona',
- border : 'Okvir',
- align : 'Poravnanje',
- alignLeft : 'Lijevo',
- alignCenter : 'Centar',
- alignRight : 'Desno',
- width : 'Å irina',
- widthPx : 'piksela',
- widthPc : 'posto',
- widthUnit : 'width unit', // MISSING
- height : 'Visina',
- cellSpace : 'Razmak æelija',
- cellPad : 'Uvod æelija',
- caption : 'Naslov',
- summary : 'Summary', // MISSING
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'Briši æelije',
- merge : 'Spoji æelije',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Briši redove'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Briši kolone'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Button Properties', // MISSING
- text : 'Text (Value)', // MISSING
- type : 'Type', // MISSING
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox Properties', // MISSING
- radioTitle : 'Radio Button Properties', // MISSING
- value : 'Value', // MISSING
- selected : 'Selected' // MISSING
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form Properties', // MISSING
- menu : 'Form Properties', // MISSING
- action : 'Action', // MISSING
- method : 'Method', // MISSING
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Selection Field Properties', // MISSING
- selectInfo : 'Select Info', // MISSING
- opAvail : 'Available Options', // MISSING
- value : 'Value', // MISSING
- size : 'Size', // MISSING
- lines : 'lines', // MISSING
- chkMulti : 'Allow multiple selections', // MISSING
- opText : 'Text', // MISSING
- opValue : 'Value', // MISSING
- btnAdd : 'Add', // MISSING
- btnModify : 'Modify', // MISSING
- btnUp : 'Up', // MISSING
- btnDown : 'Down', // MISSING
- btnSetValue : 'Set as selected value', // MISSING
- btnDelete : 'Delete' // MISSING
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textarea Properties', // MISSING
- cols : 'Columns', // MISSING
- rows : 'Rows' // MISSING
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Text Field Properties', // MISSING
- name : 'Name', // MISSING
- value : 'Value', // MISSING
- charWidth : 'Character Width', // MISSING
- maxChars : 'Maximum Characters', // MISSING
- type : 'Type', // MISSING
- typeText : 'Text', // MISSING
- typePass : 'Password' // MISSING
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Hidden Field Properties', // MISSING
- name : 'Name', // MISSING
- value : 'Value' // MISSING
- },
-
- // Image Dialog.
- image :
- {
- title : 'Svojstva slike',
- titleButton : 'Image Button Properties', // MISSING
- menu : 'Svojstva slike',
- infoTab : 'Info slike',
- btnUpload : 'Å alji na server',
- upload : 'Å alji',
- alt : 'Tekst na slici',
- width : 'Å irina',
- height : 'Visina',
- lockRatio : 'Zakljuèaj odnos',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Resetuj dimenzije',
- border : 'Okvir',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Poravnanje',
- alignLeft : 'Lijevo',
- alignRight : 'Desno',
- alertUrl : 'Molimo ukucajte URL od slike.',
- linkTab : 'Link', // MISSING
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties', // MISSING
- propertiesTab : 'Properties', // MISSING
- title : 'Flash Properties', // MISSING
- chkPlay : 'Auto Play', // MISSING
- chkLoop : 'Loop', // MISSING
- chkMenu : 'Enable Flash Menu', // MISSING
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Scale', // MISSING
- scaleAll : 'Show all', // MISSING
- scaleNoBorder : 'No Border', // MISSING
- scaleFit : 'Exact Fit', // MISSING
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Poravnanje',
- alignLeft : 'Lijevo',
- alignAbsBottom : 'Abs dole',
- alignAbsMiddle : 'Abs sredina',
- alignBaseline : 'Bazno',
- alignBottom : 'Dno',
- alignMiddle : 'Sredina',
- alignRight : 'Desno',
- alignTextTop : 'Vrh teksta',
- alignTop : 'Vrh',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Boja pozadine',
- width : 'Å irina',
- height : 'Visina',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Molimo ukucajte URL link',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Check Spelling', // MISSING
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Not in dictionary', // MISSING
- changeTo : 'Change to', // MISSING
- btnIgnore : 'Ignore', // MISSING
- btnIgnoreAll : 'Ignore All', // MISSING
- btnReplace : 'Replace', // MISSING
- btnReplaceAll : 'Replace All', // MISSING
- btnUndo : 'Undo', // MISSING
- noSuggestions : '- No suggestions -', // MISSING
- progress : 'Spell check in progress...', // MISSING
- noMispell : 'Spell check complete: No misspellings found', // MISSING
- noChanges : 'Spell check complete: No words changed', // MISSING
- oneChange : 'Spell check complete: One word changed', // MISSING
- manyChanges : 'Spell check complete: %1 words changed', // MISSING
- ieSpellDownload : 'Spell checker not installed. Do you want to download it now?' // MISSING
- },
-
- smiley :
- {
- toolbar : 'Smješko',
- title : 'Ubaci smješka',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Numerisana lista',
- bulletedlist : 'Lista',
- indent : 'Poveæaj uvod',
- outdent : 'Smanji uvod',
-
- justify :
- {
- left : 'Lijevo poravnanje',
- center : 'Centralno poravnanje',
- right : 'Desno poravnanje',
- block : 'Puno poravnanje'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Zalijepi',
- cutError : 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).',
- copyError : 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Zalijepi iz Word-a',
- title : 'Zalijepi iz Word-a',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Zalijepi kao obièan tekst',
- title : 'Zalijepi kao obièan tekst'
- },
-
- templates :
- {
- button : 'Templates', // MISSING
- title : 'Content Templates', // MISSING
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Please select the template to open in the editor', // MISSING
- emptyListMsg : '(No templates defined)' // MISSING
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font'
- },
-
- fontSize :
- {
- label : 'Velièina',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Velièina'
- },
-
- colorButton :
- {
- textColorTitle : 'Boja teksta',
- bgColorTitle : 'Boja pozadine',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatska',
- more : 'Više boja...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Bosnian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'bs' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Browse Server', // MISSING
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Å alji',
+ uploadSubmit: 'Å alji na server',
+ image: 'Slika',
+ flash: 'Flash', // MISSING
+ form: 'Form', // MISSING
+ checkbox: 'Checkbox', // MISSING
+ radio: 'Radio Button', // MISSING
+ textField: 'Text Field', // MISSING
+ textarea: 'Textarea', // MISSING
+ hiddenField: 'Hidden Field', // MISSING
+ button: 'Button',
+ select: 'Selection Field', // MISSING
+ imageButton: 'Image Button', // MISSING
+ notSet: '<nije podešeno>',
+ id: 'Id',
+ name: 'Naziv',
+ langDir: 'Smjer pisanja',
+ langDirLtr: 'S lijeva na desno (LTR)',
+ langDirRtl: 'S desna na lijevo (RTL)',
+ langCode: 'Jezièni kôd',
+ longDescr: 'Dugaèki opis URL-a',
+ cssClass: 'Klase CSS stilova',
+ advisoryTitle: 'Advisory title',
+ cssStyle: 'Stil',
+ ok: 'OK',
+ cancel: 'Odustani',
+ close: 'Close', // MISSING
+ preview: 'Prikaži',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'Naprednije',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'Prozor',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'S lijeva na desno (LTR)',
+ langDirRTL: 'S desna na lijevo (RTL)',
+ styles: 'Stil',
+ cssClasses: 'Klase CSS stilova',
+ width: 'Å irina',
+ height: 'Visina',
+ align: 'Poravnanje',
+ alignLeft: 'Lijevo',
+ alignRight: 'Desno',
+ alignCenter: 'Centar',
+ alignTop: 'Vrh',
+ alignMiddle: 'Sredina',
+ alignBottom: 'Dno',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ca.js b/devel/third-party/ckeditor/lang/ca.js
index ca828cd..85e027b 100644
--- a/devel/third-party/ckeditor/lang/ca.js
+++ b/devel/third-party/ckeditor/lang/ca.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Catalan language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ca'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Editor de text enriquit, %1, prem ALT 0 per obtenir ajuda.',
-
- // ARIA descriptions.
- toolbar : 'Barra d\'eines',
- editor : 'Editor de text enriquit',
-
- // Toolbar buttons without dialogs.
- source : 'Codi font',
- newPage : 'Nova pà gina',
- save : 'Desa',
- preview : 'Visualització prèvia',
- cut : 'Retalla',
- copy : 'Copia',
- paste : 'Enganxa',
- print : 'Imprimeix',
- underline : 'Subratllat',
- bold : 'Negreta',
- italic : 'Cursiva',
- selectAll : 'Selecciona-ho tot',
- removeFormat : 'Elimina Format',
- strike : 'Barrat',
- subscript : 'SubÃndex',
- superscript : 'SuperÃndex',
- horizontalrule : 'Insereix lÃnia horitzontal',
- pagebreak : 'Insereix salt de pà gina',
- unlink : 'Elimina l\'enllaç',
- undo : 'Desfés',
- redo : 'Refés',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Veure servidor',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Puja',
- uploadSubmit : 'Envia-la al servidor',
- image : 'Imatge',
- flash : 'Flash',
- form : 'Formulari',
- checkbox : 'Casella de verificació',
- radio : 'Botó d\'opció',
- textField : 'Camp de text',
- textarea : 'Ãrea de text',
- hiddenField : 'Camp ocult',
- button : 'Botó',
- select : 'Camp de selecció',
- imageButton : 'Botó d\'imatge',
- notSet : '<no definit>',
- id : 'Id',
- name : 'Nom',
- langDir : 'Direcció de l\'idioma',
- langDirLtr : 'D\'esquerra a dreta (LTR)',
- langDirRtl : 'De dreta a esquerra (RTL)',
- langCode : 'Codi d\'idioma',
- longDescr : 'Descripció llarga de la URL',
- cssClass : 'Classes del full d\'estil',
- advisoryTitle : 'TÃtol consultiu',
- cssStyle : 'Estil',
- ok : 'D\'acord',
- cancel : 'Cancel·la',
- close : 'Tanca',
- preview : 'Previsualitza',
- generalTab : 'General',
- advancedTab : 'Avançat',
- validateNumberFailed : 'Aquest valor no és un número.',
- confirmNewPage : 'Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pà gina nova?',
- confirmCancel : 'Algunes opcions s\'han canviat. Esteu segur que voleu tancar la finestra de dià leg?',
- options : 'Opcions',
- target : 'DestÃ',
- targetNew : 'Nova finestra (_blank)',
- targetTop : 'Finestra major (_top)',
- targetSelf : 'Mateixa finestra (_self)',
- targetParent : 'Finestra pare (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, no disponible</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insereix carà cter especial',
- title : 'Selecciona el carà cter especial',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Insereix/Edita enllaç',
- other : '<altre>',
- menu : 'Edita l\'enllaç',
- title : 'Enllaç',
- info : 'Informació de l\'enllaç',
- target : 'DestÃ',
- upload : 'Puja',
- advanced : 'Avançat',
- type : 'Tipus d\'enllaç',
- toUrl : 'URL',
- toAnchor : 'Ãncora en aquesta pà gina',
- toEmail : 'Correu electrònic',
- targetFrame : '<marc>',
- targetPopup : '<finestra emergent>',
- targetFrameName : 'Nom del marc de destÃ',
- targetPopupName : 'Nom finestra popup',
- popupFeatures : 'CaracterÃstiques finestra popup',
- popupResizable : 'Redimensionable',
- popupStatusBar : 'Barra d\'estat',
- popupLocationBar: 'Barra d\'adreça',
- popupToolbar : 'Barra d\'eines',
- popupMenuBar : 'Barra de menú',
- popupFullScreen : 'Pantalla completa (IE)',
- popupScrollBars : 'Barres d\'scroll',
- popupDependent : 'Depenent (Netscape)',
- popupWidth : 'Amplada',
- popupLeft : 'Posició esquerra',
- popupHeight : 'Alçada',
- popupTop : 'Posició dalt',
- id : 'Id',
- langDir : 'Direcció de l\'idioma',
- langDirLTR : 'D\'esquerra a dreta (LTR)',
- langDirRTL : 'De dreta a esquerra (RTL)',
- acccessKey : 'Clau d\'accés',
- name : 'Nom',
- langCode : 'Direcció de l\'idioma',
- tabIndex : 'Index de Tab',
- advisoryTitle : 'TÃtol consultiu',
- advisoryContentType : 'Tipus de contingut consultiu',
- cssClasses : 'Classes del full d\'estil',
- charset : 'Conjunt de carà cters font enllaçat',
- styles : 'Estil',
- selectAnchor : 'Selecciona una à ncora',
- anchorName : 'Per nom d\'Ã ncora',
- anchorId : 'Per Id d\'element',
- emailAddress : 'Adreça de correu electrònic',
- emailSubject : 'Assumpte del missatge',
- emailBody : 'Cos del missatge',
- noAnchors : '(No hi ha à ncores disponibles en aquest document)',
- noUrl : 'Si us plau, escrigui l\'enllaç URL',
- noEmail : 'Si us plau, escrigui l\'adreça correu electrònic'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Insereix/Edita à ncora',
- menu : 'Propietats de l\'Ã ncora',
- title : 'Propietats de l\'Ã ncora',
- name : 'Nom de l\'Ã ncora',
- errorName : 'Si us plau, escriviu el nom de l\'ancora'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Cerca i reemplaça',
- find : 'Cerca',
- replace : 'Reemplaça',
- findWhat : 'Cerca:',
- replaceWith : 'Remplaça amb:',
- notFoundMsg : 'El text especificat no s\'ha trobat.',
- matchCase : 'Distingeix majúscules/minúscules',
- matchWord : 'Només paraules completes',
- matchCyclic : 'Match cyclic',
- replaceAll : 'Reemplaça-ho tot',
- replaceSuccessMsg : '%1 ocurrència/es reemplaçada/es.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Taula',
- title : 'Propietats de la taula',
- menu : 'Propietats de la taula',
- deleteTable : 'Suprimeix la taula',
- rows : 'Files',
- columns : 'Columnes',
- border : 'Mida vora',
- align : 'Alineació',
- alignLeft : 'Esquerra',
- alignCenter : 'Centre',
- alignRight : 'Dreta',
- width : 'Amplada',
- widthPx : 'pÃxels',
- widthPc : 'percentatge',
- widthUnit : 'unitat d\'amplada',
- height : 'Alçada',
- cellSpace : 'Espaiat de cel·les',
- cellPad : 'Encoixinament de cel·les',
- caption : 'TÃtol',
- summary : 'Resum',
- headers : 'Capçaleres',
- headersNone : 'Cap',
- headersColumn : 'Primera columna',
- headersRow : 'Primera fila',
- headersBoth : 'Ambdues',
- invalidRows : 'El nombre de files ha de ser un nombre major que 0.',
- invalidCols : 'El nombre de columnes ha de ser un nombre major que 0.',
- invalidBorder : 'El gruix de la vora ha de ser un nombre.',
- invalidWidth : 'L\'amplada de la taula ha de ser un nombre.',
- invalidHeight : 'L\'alçada de la taula ha de ser un nombre.',
- invalidCellSpacing : 'L\'espaiat de cel·la ha de ser un nombre.',
- invalidCellPadding : 'L\'encoixinament de cel·la ha de ser un nombre.',
-
- cell :
- {
- menu : 'Cel·la',
- insertBefore : 'Insereix cel·la abans de',
- insertAfter : 'Insereix cel·la darrera',
- deleteCell : 'Suprimeix les cel·les',
- merge : 'Fusiona les cel·les',
- mergeRight : 'Fusiona cap a la dreta',
- mergeDown : 'Fusiona cap avall',
- splitHorizontal : 'Divideix la cel·la horitzontalment',
- splitVertical : 'Divideix la cel·la verticalment',
- title : 'Propertiat de la cel·la',
- cellType : 'Tipus de cel·la',
- rowSpan : 'Expansió de files',
- colSpan : 'Expansió de columnes',
- wordWrap : 'Ajustar al contingut',
- hAlign : 'Aliniació Horizontal',
- vAlign : 'Aliniació Vertical',
- alignTop : 'A dalt',
- alignMiddle : 'Al mig',
- alignBottom : 'A baix',
- alignBaseline : 'A la lÃnia base',
- bgColor : 'Color de fons',
- borderColor : 'Color de la vora',
- data : 'Data',
- header : 'Capçalera',
- yes : 'SÃ',
- no : 'No',
- invalidWidth : 'L\'amplada de cel·la ha de ser un nombre.',
- invalidHeight : 'L\'alçada de cel·la ha de ser un nombre.',
- invalidRowSpan : 'L\'expansió de files ha de ser un nombre enter.',
- invalidColSpan : 'L\'expansió de columnes ha de ser un nombre enter.',
- chooseColor : 'Trieu'
- },
-
- row :
- {
- menu : 'Fila',
- insertBefore : 'Insereix fila abans de',
- insertAfter : 'Insereix fila darrera',
- deleteRow : 'Suprimeix una fila'
- },
-
- column :
- {
- menu : 'Columna',
- insertBefore : 'Insereix columna abans de',
- insertAfter : 'Insereix columna darrera',
- deleteColumn : 'Suprimeix una columna'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Propietats del botó',
- text : 'Text (Valor)',
- type : 'Tipus',
- typeBtn : 'Botó',
- typeSbm : 'Transmet formulari',
- typeRst : 'Reinicia formulari'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Propietats de la casella de verificació',
- radioTitle : 'Propietats del botó d\'opció',
- value : 'Valor',
- selected : 'Seleccionat'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Propietats del formulari',
- menu : 'Propietats del formulari',
- action : 'Acció',
- method : 'Mètode',
- encoding : 'Codificació'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Propietats del camp de selecció',
- selectInfo : 'Info',
- opAvail : 'Opcions disponibles',
- value : 'Valor',
- size : 'Mida',
- lines : 'LÃnies',
- chkMulti : 'Permet múltiples seleccions',
- opText : 'Text',
- opValue : 'Valor',
- btnAdd : 'Afegeix',
- btnModify : 'Modifica',
- btnUp : 'Amunt',
- btnDown : 'Avall',
- btnSetValue : 'Selecciona per defecte',
- btnDelete : 'Elimina'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Propietats de l\'Ã rea de text',
- cols : 'Columnes',
- rows : 'Files'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Propietats del camp de text',
- name : 'Nom',
- value : 'Valor',
- charWidth : 'Amplada',
- maxChars : 'Nombre mà xim de carà cters',
- type : 'Tipus',
- typeText : 'Text',
- typePass : 'Contrasenya'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Propietats del camp ocult',
- name : 'Nom',
- value : 'Valor'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Propietats de la imatge',
- titleButton : 'Propietats del botó d\'imatge',
- menu : 'Propietats de la imatge',
- infoTab : 'Informació de la imatge',
- btnUpload : 'Envia-la al servidor',
- upload : 'Puja',
- alt : 'Text alternatiu',
- width : 'Amplada',
- height : 'Alçada',
- lockRatio : 'Bloqueja les proporcions',
- unlockRatio : 'Desbloqueja el rà tio',
- resetSize : 'Restaura la mida',
- border : 'Vora',
- hSpace : 'Espaiat horit.',
- vSpace : 'Espaiat vert.',
- align : 'Alineació',
- alignLeft : 'Ajusta a l\'esquerra',
- alignRight : 'Ajusta a la dreta',
- alertUrl : 'Si us plau, escriviu la URL de la imatge',
- linkTab : 'Enllaç',
- button2Img : 'Voleu transformar el botó d\'imatge seleccionat en una simple imatge?',
- img2Button : 'Voleu transformar la imatge seleccionada en un botó d\'imatge?',
- urlMissing : 'Falta la URL de la imatge.',
- validateWidth : 'L\'amplada ha de ser un nombre enter.',
- validateHeight : 'L\'alçada ha de ser un nombre enter.',
- validateBorder : 'La vora ha de ser un nombre enter.',
- validateHSpace : 'HSpace ha de ser un nombre enter.',
- validateVSpace : 'VSpace ha de ser un nombre enter.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propietats del Flash',
- propertiesTab : 'Propietats',
- title : 'Propietats del Flash',
- chkPlay : 'Reprodució automà tica',
- chkLoop : 'Bucle',
- chkMenu : 'Habilita menú Flash',
- chkFull : 'Permetre la pantalla completa',
- scale : 'Escala',
- scaleAll : 'Mostra-ho tot',
- scaleNoBorder : 'Sense vores',
- scaleFit : 'Mida exacta',
- access : 'Accés a scripts',
- accessAlways : 'Sempre',
- accessSameDomain: 'El mateix domini',
- accessNever : 'Mai',
- align : 'Alineació',
- alignLeft : 'Ajusta a l\'esquerra',
- alignAbsBottom : 'Abs Bottom',
- alignAbsMiddle : 'Abs Middle',
- alignBaseline : 'Baseline',
- alignBottom : 'Bottom',
- alignMiddle : 'Middle',
- alignRight : 'Ajusta a la dreta',
- alignTextTop : 'Text Top',
- alignTop : 'Top',
- quality : 'Qualitat',
- qualityBest : 'La millor',
- qualityHigh : 'Alta',
- qualityAutoHigh : 'Alta automà tica',
- qualityMedium : 'Mitjana',
- qualityAutoLow : 'Baixa automà tica',
- qualityLow : 'Baixa',
- windowModeWindow: 'Finestra',
- windowModeOpaque: 'Opaca',
- windowModeTransparent : 'Transparent',
- windowMode : 'Mode de la finestra',
- flashvars : 'Variables de Flash',
- bgcolor : 'Color de Fons',
- width : 'Amplada',
- height : 'Alçada',
- hSpace : 'Espaiat horit.',
- vSpace : 'Espaiat vert.',
- validateSrc : 'Si us plau, escrigui l\'enllaç URL',
- validateWidth : 'L\'amplada ha de ser un nombre.',
- validateHeight : 'L\'alçada ha de ser un nombre.',
- validateHSpace : 'L\'espaiat horitzonatal ha de ser un nombre.',
- validateVSpace : 'L\'espaiat vertical ha de ser un nombre.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Revisa l\'ortografia',
- title : 'Comprova l\'ortografia',
- notAvailable : 'El servei no es troba disponible ara.',
- errorLoading : 'Error carregant el servidor: %s.',
- notInDic : 'No és al diccionari',
- changeTo : 'Reemplaça amb',
- btnIgnore : 'Ignora',
- btnIgnoreAll : 'Ignora-les totes',
- btnReplace : 'Canvia',
- btnReplaceAll : 'Canvia-les totes',
- btnUndo : 'Desfés',
- noSuggestions : 'Cap suggeriment',
- progress : 'Verificació ortogrà fica en curs...',
- noMispell : 'Verificació ortogrà fica acabada: no hi ha cap paraula mal escrita',
- noChanges : 'Verificació ortogrà fica: no s\'ha canviat cap paraula',
- oneChange : 'Verificació ortogrà fica: s\'ha canviat una paraula',
- manyChanges : 'Verificació ortogrà fica: s\'han canviat %1 paraules',
- ieSpellDownload : 'Verificació ortogrà fica no instal·lada. Voleu descarregar-ho ara?'
- },
-
- smiley :
- {
- toolbar : 'Icona',
- title : 'Insereix una icona',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Llista numerada',
- bulletedlist : 'Llista de pics',
- indent : 'Augmenta el sagnat',
- outdent : 'Redueix el sagnat',
-
- justify :
- {
- left : 'Alinia a l\'esquerra',
- center : 'Centrat',
- right : 'Alinia a la dreta',
- block : 'Justificat'
- },
-
- blockquote : 'Bloc de cita',
-
- clipboard :
- {
- title : 'Enganxa',
- cutError : 'La seguretat del vostre navegador no permet executar automà ticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).',
- copyError : 'La seguretat del vostre navegador no permet executar automà ticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).',
- pasteMsg : 'Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.',
- securityMsg : 'A causa de la configuració de seguretat del vostre navegador, l\'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.',
- pasteArea : 'Ãrea d\'enganxat'
- },
-
- pastefromword :
- {
- confirmCleanup : 'El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?',
- toolbar : 'Enganxa des del Word',
- title : 'Enganxa des del Word',
- error : 'No ha estat possible netejar les dades enganxades degut a un error intern'
- },
-
- pasteText :
- {
- button : 'Enganxa com a text no formatat',
- title : 'Enganxa com a text no formatat'
- },
-
- templates :
- {
- button : 'Plantilles',
- title : 'Contingut plantilles',
- options : 'Template Options', // MISSING
- insertOption : 'Reemplaça el contingut actual',
- selectPromptMsg : 'Si us plau, seleccioneu la plantilla per obrir a l\'editor<br>(el contingut actual no serà enregistrat):',
- emptyListMsg : '(No hi ha plantilles definides)'
- },
-
- showBlocks : 'Mostra els blocs',
-
- stylesCombo :
- {
- label : 'Estil',
- panelTitle : 'Estils de format',
- panelTitle1 : 'Estils de bloc',
- panelTitle2 : 'Estils incrustats',
- panelTitle3 : 'Estils d\'objecte'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatejat',
- tag_address : 'Adreça',
- tag_h1 : 'Encapçalament 1',
- tag_h2 : 'Encapçalament 2',
- tag_h3 : 'Encapçalament 3',
- tag_h4 : 'Encapçalament 4',
- tag_h5 : 'Encapçalament 5',
- tag_h6 : 'Encapçalament 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Crea un contenidor Div',
- toolbar : 'Crea un contenidor Div',
- cssClassInputLabel : 'Classes de la fulla d\'estils',
- styleSelectLabel : 'Estil',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Codi d\'idioma',
- inlineStyleInputLabel : 'Estil en lÃnia',
- advisoryTitleInputLabel : 'TÃtol de guia',
- langDirLabel : 'Direcció de l\'idioma',
- langDirLTRLabel : 'D\'esquerra a dreta (LTR)',
- langDirRTLLabel : 'De dreta a esquerra (RTL)',
- edit : 'Edita Div',
- remove : 'Elimina Div'
- },
-
- font :
- {
- label : 'Tipus de lletra',
- voiceLabel : 'Tipus de lletra',
- panelTitle : 'Tipus de lletra'
- },
-
- fontSize :
- {
- label : 'Mida',
- voiceLabel : 'Mida de la lletra',
- panelTitle : 'Mida'
- },
-
- colorButton :
- {
- textColorTitle : 'Color de Text',
- bgColorTitle : 'Color de Fons',
- panelTitle : 'Colors',
- auto : 'Automà tic',
- more : 'Més colors...'
- },
-
- colors :
- {
- '000' : 'Negre',
- '800000' : 'Granat',
- '8B4513' : 'Marró sella',
- '2F4F4F' : 'Gris pissarra fosca',
- '008080' : 'Blau xarxet',
- '000080' : 'Blau marÃ',
- '4B0082' : 'Indi',
- '696969' : 'Gris intens',
- 'B22222' : 'Maó',
- 'A52A2A' : 'Marró (web)',
- 'DAA520' : 'Solidago',
- '006400' : 'Verd fosc',
- '40E0D0' : 'Turquesa',
- '0000CD' : 'Atzur',
- '800080' : 'Lila',
- '808080' : 'Gris',
- 'F00' : 'Vermell',
- 'FF8C00' : 'Taronja fosc',
- 'FFD700' : 'Or',
- '008000' : 'Verd',
- '0FF' : 'Cian',
- '00F' : 'Blau',
- 'EE82EE' : 'Lavanda rosat',
- 'A9A9A9' : 'Gris clar',
- 'FFA07A' : 'Salmó clar',
- 'FFA500' : 'Taronja',
- 'FFFF00' : 'Groc',
- '00FF00' : 'Verd llima',
- 'AFEEEE' : 'Blau pà lid',
- 'ADD8E6' : 'Blau clar',
- 'DDA0DD' : 'Pruna',
- 'D3D3D3' : 'Gris clar',
- 'FFF0F5' : 'Lavanda rosat',
- 'FAEBD7' : 'Blanc antic',
- 'FFFFE0' : 'Groc clar',
- 'F0FFF0' : 'Verd pà lid',
- 'F0FFFF' : 'Blau cel pà lid',
- 'F0F8FF' : 'Cian pà lid',
- 'E6E6FA' : 'Lavanda',
- 'FFF' : 'Blanc'
- },
-
- scayt :
- {
- title : 'Spell Check As You Type',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Habilitat l\'SCAYT',
- disable : 'Deshabilita SCAYT',
- about : 'Quant a l\'SCAYT',
- toggle : 'Commuta l\'SCAYT',
- options : 'Opcions',
- langs : 'Idiomes',
- moreSuggestions : 'Més suggerències',
- ignore : 'Ignora',
- ignoreAll : 'Ignora\'ls tots',
- addWord : 'Afegeix una paraula',
- emptyDic : 'El nom del diccionari no hauria d\'estar buit.',
-
- optionsTab : 'Opcions',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Idiomes',
-
- dictionariesTab : 'Diccionaris',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Quant a'
- },
-
- about :
- {
- title : 'Quan al CKEditor',
- dlgTitle : 'Quan al CKEditor',
- moreInfo : 'Per informació sobre llicències visiteu el web:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'Maximitza',
- minimize : 'Minimitza',
-
- fakeobjects :
- {
- anchor : 'Ãncora',
- flash : 'Animació Flash',
- div : 'Salt de pà gina',
- unknown : 'Objecte desconegut'
- },
-
- resize : 'Arrossegueu per redimensionar',
-
- colordialog :
- {
- title : 'Selecciona el color',
- options : 'Color Options', // MISSING
- highlight : 'Destacat',
- selected : 'Seleccionat',
- clear : 'Neteja'
- },
-
- toolbarCollapse : 'Redueix la barra d\'eines',
- toolbarExpand : 'Amplia la barra d\'eines',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Catalan language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ca' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Editor de text enriquit',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Premeu ALT 0 per ajuda',
+
+ browseServer: 'Veure servidor',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Puja',
+ uploadSubmit: 'Envia-la al servidor',
+ image: 'Imatge',
+ flash: 'Flash',
+ form: 'Formulari',
+ checkbox: 'Casella de verificació',
+ radio: 'Botó d\'opció',
+ textField: 'Camp de text',
+ textarea: 'Ãrea de text',
+ hiddenField: 'Camp ocult',
+ button: 'Botó',
+ select: 'Camp de selecció',
+ imageButton: 'Botó d\'imatge',
+ notSet: '<no definit>',
+ id: 'Id',
+ name: 'Nom',
+ langDir: 'Direcció de l\'idioma',
+ langDirLtr: 'D\'esquerra a dreta (LTR)',
+ langDirRtl: 'De dreta a esquerra (RTL)',
+ langCode: 'Codi d\'idioma',
+ longDescr: 'Descripció llarga de la URL',
+ cssClass: 'Classes del full d\'estil',
+ advisoryTitle: 'TÃtol consultiu',
+ cssStyle: 'Estil',
+ ok: 'D\'acord',
+ cancel: 'Cancel·la',
+ close: 'Tanca',
+ preview: 'Previsualitza',
+ resize: 'Arrossegueu per redimensionar',
+ generalTab: 'General',
+ advancedTab: 'Avançat',
+ validateNumberFailed: 'Aquest valor no és un número.',
+ confirmNewPage: 'Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pà gina nova?',
+ confirmCancel: 'Algunes opcions s\'han canviat. Esteu segur que voleu tancar la finestra de dià leg?',
+ options: 'Opcions',
+ target: 'DestÃ',
+ targetNew: 'Nova finestra (_blank)',
+ targetTop: 'Finestra major (_top)',
+ targetSelf: 'Mateixa finestra (_self)',
+ targetParent: 'Finestra pare (_parent)',
+ langDirLTR: 'D\'esquerra a dreta (LTR)',
+ langDirRTL: 'De dreta a esquerra (RTL)',
+ styles: 'Estil',
+ cssClasses: 'Classes del full d\'estil',
+ width: 'Amplada',
+ height: 'Alçada',
+ align: 'Alineació',
+ alignLeft: 'Ajusta a l\'esquerra',
+ alignRight: 'Ajusta a la dreta',
+ alignCenter: 'Centre',
+ alignTop: 'Superior',
+ alignMiddle: 'Centre',
+ alignBottom: 'Inferior',
+ invalidValue : 'Valor no và lid.',
+ invalidHeight: 'L\'alçada ha de ser un nombre.',
+ invalidWidth: 'L\'amplada ha de ser un nombre.',
+ invalidCssLength: 'El valor especificat per als "%1" camps ha de ser un número positiu amb o sense unitat de mesura và lida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
+ invalidHtmlLength: 'El valor especificat per als "%1" camps ha de ser un número positiu amb o sense unitat de mesura và lida d\'HTML (px o %).',
+ invalidInlineStyle: 'El valor especificat per l\'estil en lÃnia ha de constar d\'una o més tuples amb el format "name: value", separats per punt i coma.',
+ cssLengthTooltip: 'Introduïu un número per un valor en pÃxels o un número amb una unitat và lida de CSS (px, %, in, cm, mm, em, ex, pt o pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/cs.js b/devel/third-party/ckeditor/lang/cs.js
index f7b5f8c..78bb5b5 100644
--- a/devel/third-party/ckeditor/lang/cs.js
+++ b/devel/third-party/ckeditor/lang/cs.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Czech language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['cs'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Zdroj',
- newPage : 'Nová stránka',
- save : 'Uložit',
- preview : 'Náhled',
- cut : 'Vyjmout',
- copy : 'KopÃrovat',
- paste : 'Vložit',
- print : 'Tisk',
- underline : 'Podtržené',
- bold : 'TuÄné',
- italic : 'KurzÃva',
- selectAll : 'Vybrat vše',
- removeFormat : 'Odstranit formátovánÃ',
- strike : 'PÅeÅ¡krtnuté',
- subscript : 'Dolnà index',
- superscript : 'Hornà index',
- horizontalrule : 'Vložit vodorovnou linku',
- pagebreak : 'Vložit konec stránky',
- unlink : 'Odstranit odkaz',
- undo : 'ZpÄt',
- redo : 'Znovu',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Vybrat na serveru',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Odeslat',
- uploadSubmit : 'Odeslat na server',
- image : 'Obrázek',
- flash : 'Flash',
- form : 'FormuláÅ',
- checkbox : 'ZaÅ¡krtávacà polÃÄko',
- radio : 'PÅepÃnaÄ',
- textField : 'Textové pole',
- textarea : 'Textová oblast',
- hiddenField : 'Skryté pole',
- button : 'TlaÄÃtko',
- select : 'Seznam',
- imageButton : 'Obrázkové tlaÄÃtko',
- notSet : '<nenastaveno>',
- id : 'Id',
- name : 'Jméno',
- langDir : 'Orientace jazyka',
- langDirLtr : 'Zleva do prava (LTR)',
- langDirRtl : 'Zprava do leva (RTL)',
- langCode : 'Kód jazyka',
- longDescr : 'Dlouhý popis URL',
- cssClass : 'TÅÃda stylu',
- advisoryTitle : 'Pomocný titulek',
- cssStyle : 'Styl',
- ok : 'OK',
- cancel : 'Storno',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Obecné',
- advancedTab : 'RozÅ¡ÃÅené',
- validateNumberFailed : 'Zadaná hodnota nenà ÄÃselná.',
- confirmNewPage : 'Jakékoliv neuložené zmÄny obsahu budou ztraceny. SkuteÄnÄ chete otevrÃt novou stránku?',
- confirmCancel : 'NÄkterá z nastavenà byla zmÄnÄna. SkuteÄnÄ chete zavÅÃt dialogové okno?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, nedostupné</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Vložit speciálnà znaky',
- title : 'VýbÄr speciálnÃho znaku',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Vložit/zmÄnit odkaz',
- other : '<jiný>',
- menu : 'ZmÄnit odkaz',
- title : 'Odkaz',
- info : 'Informace o odkazu',
- target : 'CÃl',
- upload : 'Odeslat',
- advanced : 'RozÅ¡ÃÅené',
- type : 'Typ odkazu',
- toUrl : 'URL', // MISSING
- toAnchor : 'Kotva v této stránce',
- toEmail : 'E-Mail',
- targetFrame : '<rámec>',
- targetPopup : '<vyskakovacà okno>',
- targetFrameName : 'Název cÃlového rámu',
- targetPopupName : 'Název vyskakovacÃho okna',
- popupFeatures : 'Vlastnosti vyskakovacÃho okna',
- popupResizable : 'UmožÅujÃcà mÄnit velikost',
- popupStatusBar : 'Stavový Åádek',
- popupLocationBar: 'Panel umÃstÄnÃ',
- popupToolbar : 'Panel nástrojů',
- popupMenuBar : 'Panel nabÃdky',
- popupFullScreen : 'Celá obrazovka (IE)',
- popupScrollBars : 'PosuvnÃky',
- popupDependent : 'Závislost (Netscape)',
- popupWidth : 'Å ÃÅka',
- popupLeft : 'Levý okraj',
- popupHeight : 'Výška',
- popupTop : 'Hornà okraj',
- id : 'Id',
- langDir : 'Orientace jazyka',
- langDirLTR : 'Zleva do prava (LTR)',
- langDirRTL : 'Zprava do leva (RTL)',
- acccessKey : 'PÅÃstupový klÃÄ',
- name : 'Jméno',
- langCode : 'Orientace jazyka',
- tabIndex : 'PoÅadà prvku',
- advisoryTitle : 'Pomocný titulek',
- advisoryContentType : 'Pomocný typ obsahu',
- cssClasses : 'TÅÃda stylu',
- charset : 'PÅiÅazená znaková sada',
- styles : 'Styl',
- selectAnchor : 'Vybrat kotvu',
- anchorName : 'Podle jména kotvy',
- anchorId : 'Podle Id objektu',
- emailAddress : 'E-Mailová adresa',
- emailSubject : 'PÅedmÄt zprávy',
- emailBody : 'TÄlo zprávy',
- noAnchors : '(Ve stránce nenà definována žádná kotva!)',
- noUrl : 'Zadejte prosÃm URL odkazu',
- noEmail : 'Zadejte prosÃm e-mailovou adresu'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'VložÃt/zmÄnit záložku',
- menu : 'Vlastnosti záložky',
- title : 'Vlastnosti záložky',
- name : 'Název záložky',
- errorName : 'Zadejte prosÃm název záložky'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'NajÃt a nahradit',
- find : 'Hledat',
- replace : 'Nahradit',
- findWhat : 'Co hledat:',
- replaceWith : 'ÄÃm nahradit:',
- notFoundMsg : 'Hledaný text nebyl nalezen.',
- matchCase : 'RozliÅ¡ovat velikost pÃsma',
- matchWord : 'Pouze celá slova',
- matchCyclic : 'Procházet opakovanÄ',
- replaceAll : 'Nahradit vše',
- replaceSuccessMsg : '%1 nahrazenÃ.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabulka',
- title : 'Vlastnosti tabulky',
- menu : 'Vlastnosti tabulky',
- deleteTable : 'Smazat tabulku',
- rows : 'Åádky',
- columns : 'Sloupce',
- border : 'OhraniÄenÃ',
- align : 'ZarovnánÃ',
- alignLeft : 'Vlevo',
- alignCenter : 'Na stÅed',
- alignRight : 'Vpravo',
- width : 'Å ÃÅka',
- widthPx : 'bodů',
- widthPc : 'procent',
- widthUnit : 'width unit', // MISSING
- height : 'Výška',
- cellSpace : 'Vzdálenost bunÄk',
- cellPad : 'Odsazenà obsahu v buÅce',
- caption : 'Popis',
- summary : 'Souhrn',
- headers : 'ZáhlavÃ',
- headersNone : 'Žádné',
- headersColumn : 'Prvnà sloupec',
- headersRow : 'Prvnà Åádek',
- headersBoth : 'ObojÃ',
- invalidRows : 'PoÄet Åádků musà být ÄÃslo vÄtšà než 0.',
- invalidCols : 'PoÄet sloupců musà být ÄÃslo vÄtšà než 0.',
- invalidBorder : 'Zdaná velikost okraje musà být ÄÃselná.',
- invalidWidth : 'Zadaná Å¡ÃÅka tabulky musà být ÄÃselná.',
- invalidHeight : 'zadaná výška tabulky musà být ÄÃselná.',
- invalidCellSpacing : 'Zadaná vzdálenost bunÄk musà být ÄÃselná.',
- invalidCellPadding : 'Zadané odsazenà obsahu v buÅce musà být ÄÃselné.',
-
- cell :
- {
- menu : 'BuÅka',
- insertBefore : 'Vložit buÅku pÅed',
- insertAfter : 'Vložit buÅku za',
- deleteCell : 'Smazat buÅky',
- merge : 'SlouÄit buÅky',
- mergeRight : 'SlouÄit doprava',
- mergeDown : 'SlouÄit dolů',
- splitHorizontal : 'RozdÄlit buÅky vodorovnÄ',
- splitVertical : 'RozdÄlit buÅky svisle',
- title : 'Vlastnosti buÅky',
- cellType : 'Typ buÅky',
- rowSpan : 'Spojit Åádky',
- colSpan : 'Spojit sloupce',
- wordWrap : 'ZalamovánÃ',
- hAlign : 'Vodorovné zarovnánÃ',
- vAlign : 'Svislé zarovnánÃ',
- alignTop : 'Nahoru',
- alignMiddle : 'DoprostÅed',
- alignBottom : 'Dolů',
- alignBaseline : 'Na úÄaÅÃ',
- bgColor : 'Barva pozadÃ',
- borderColor : 'Barva okraje',
- data : 'Data',
- header : 'HlaviÄka',
- yes : 'Ano',
- no : 'Ne',
- invalidWidth : 'Zadaná Å¡ÃÅka buÅky musà být ÄÃslená.',
- invalidHeight : 'Zadaná výška buÅky musà být ÄÃslená.',
- invalidRowSpan : 'Zadaný poÄet slouÄených Åádků musà být celé ÄÃslo.',
- invalidColSpan : 'Zadaný poÄet slouÄených sloupců musà být celé ÄÃslo.',
- chooseColor : 'VýbÄr'
- },
-
- row :
- {
- menu : 'Åádek',
- insertBefore : 'Vložit Åádek pÅed',
- insertAfter : 'Vložit Åádek za',
- deleteRow : 'Smazat Åádky'
- },
-
- column :
- {
- menu : 'Sloupec',
- insertBefore : 'Vložit sloupec pÅed',
- insertAfter : 'Vložit sloupec za',
- deleteColumn : 'Smazat sloupec'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Vlastnosti tlaÄÃtka',
- text : 'Popisek',
- type : 'Typ',
- typeBtn : 'TlaÄÃtko',
- typeSbm : 'Odeslat',
- typeRst : 'Obnovit'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Vlastnosti zaÅ¡krtávacÃho polÃÄka',
- radioTitle : 'Vlastnosti pÅepÃnaÄe',
- value : 'Hodnota',
- selected : 'Zaškrtnuto'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Vlastnosti formuláÅe',
- menu : 'Vlastnosti formuláÅe',
- action : 'Akce',
- method : 'Metoda',
- encoding : 'KódovánÃ'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Vlastnosti seznamu',
- selectInfo : 'Info',
- opAvail : 'Dostupná nastavenÃ',
- value : 'Hodnota',
- size : 'Velikost',
- lines : 'Åádků',
- chkMulti : 'Povolit mnohonásobné výbÄry',
- opText : 'Text',
- opValue : 'Hodnota',
- btnAdd : 'PÅidat',
- btnModify : 'ZmÄnit',
- btnUp : 'Nahoru',
- btnDown : 'Dolů',
- btnSetValue : 'Nastavit jako vybranou hodnotu',
- btnDelete : 'Smazat'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Vlastnosti textové oblasti',
- cols : 'Sloupců',
- rows : 'Åádků'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Vlastnosti textového pole',
- name : 'Název',
- value : 'Hodnota',
- charWidth : 'Å ÃÅka ve znacÃch',
- maxChars : 'Maximálnà poÄet znaků',
- type : 'Typ',
- typeText : 'Text',
- typePass : 'Heslo'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Vlastnosti skrytého pole',
- name : 'Název',
- value : 'Hodnota'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Vlastnosti obrázku',
- titleButton : 'Vlastnostà obrázkového tlaÄÃtka',
- menu : 'Vlastnosti obrázku',
- infoTab : 'Informace o obrázku',
- btnUpload : 'Odeslat na server',
- upload : 'Odeslat',
- alt : 'Alternativnà text',
- width : 'Å ÃÅka',
- height : 'Výška',
- lockRatio : 'Zámek',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Původnà velikost',
- border : 'Okraje',
- hSpace : 'H-mezera',
- vSpace : 'V-mezera',
- align : 'ZarovnánÃ',
- alignLeft : 'Vlevo',
- alignRight : 'Vpravo',
- alertUrl : 'Zadejte prosÃm URL obrázku',
- linkTab : 'Odkaz',
- button2Img : 'SkuteÄnÄ chcete pÅevést zvolené obrázkové tlaÄÃtko na obyÄejný obrázek?',
- img2Button : 'SkuteÄnÄ chcete pÅevést zvolený obrázek na obrázkové tlaÄÃtko?',
- urlMissing : 'Zadané URL zdroje obrázku nebylo nalezeno.',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Vlastnosti Flashe',
- propertiesTab : 'Vlastnosti',
- title : 'Vlastnosti Flashe',
- chkPlay : 'Automatické spuÅ¡tÄnÃ',
- chkLoop : 'OpakovánÃ',
- chkMenu : 'NabÃdka Flash',
- chkFull : 'Povolit celoobrazovkový režim',
- scale : 'Zobrazit',
- scaleAll : 'Zobrazit vše',
- scaleNoBorder : 'Bez okraje',
- scaleFit : 'PÅizpůsobit',
- access : 'PÅÃstup ke skriptu',
- accessAlways : 'Vždy',
- accessSameDomain: 'Ve stejné doménÄ',
- accessNever : 'Nikdy',
- align : 'ZarovnánÃ',
- alignLeft : 'Vlevo',
- alignAbsBottom : 'Zcela dolů',
- alignAbsMiddle : 'DoprostÅed',
- alignBaseline : 'Na úÄaÅÃ',
- alignBottom : 'Dolů',
- alignMiddle : 'Na stÅed',
- alignRight : 'Vpravo',
- alignTextTop : 'Na hornà okraj textu',
- alignTop : 'Nahoru',
- quality : 'Kvalita',
- qualityBest : 'NejlepÅ¡Ã',
- qualityHigh : 'Vysoká',
- qualityAutoHigh : 'Vysoká - auto',
- qualityMedium : 'StÅednÃ',
- qualityAutoLow : 'NÃzká - auto',
- qualityLow : 'NejnižšÃ',
- windowModeWindow: 'Okno',
- windowModeOpaque: 'Neprůhledné',
- windowModeTransparent : 'Průhledné',
- windowMode : 'Režim okna',
- flashvars : 'PromÄnné pro Flash',
- bgcolor : 'Barva pozadÃ',
- width : 'Å ÃÅka',
- height : 'Výška',
- hSpace : 'H-mezera',
- vSpace : 'V-mezera',
- validateSrc : 'Zadejte prosÃm URL odkazu',
- validateWidth : 'Zadaná Å¡ÃÅka musà být ÄÃslo.',
- validateHeight : 'Zadaná výška musà být ÄÃslo.',
- validateHSpace : 'Zadaná H-mezera musà být ÄÃslo.',
- validateVSpace : 'Zadaná V-mezera musà být ÄÃslo.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Zkontrolovat pravopis',
- title : 'Kontrola pravopisu',
- notAvailable : 'Omlouváme se, ale služba nynà nenà dostupná.',
- errorLoading : 'Chyba nahrávánà služby aplikace z: %s.',
- notInDic : 'Nenà ve slovnÃku',
- changeTo : 'ZmÄnit na',
- btnIgnore : 'PÅeskoÄit',
- btnIgnoreAll : 'PÅeskakovat vÅ¡e',
- btnReplace : 'ZamÄnit',
- btnReplaceAll : 'ZamÄÅovat vÅ¡e',
- btnUndo : 'ZpÄt',
- noSuggestions : '- žádné návrhy -',
- progress : 'ProbÃhá kontrola pravopisu...',
- noMispell : 'Kontrola pravopisu dokonÄena: Žádné pravopisné chyby nenalezeny',
- noChanges : 'Kontrola pravopisu dokonÄena: Beze zmÄn',
- oneChange : 'Kontrola pravopisu dokonÄena: Jedno slovo zmÄnÄno',
- manyChanges : 'Kontrola pravopisu dokonÄena: %1 slov zmÄnÄno',
- ieSpellDownload : 'Kontrola pravopisu nenà nainstalována. Chcete ji nynà stáhnout?'
- },
-
- smiley :
- {
- toolbar : 'SmajlÃky',
- title : 'Vkládánà smajlÃků',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 objekt'
- },
-
- numberedlist : 'ÄÃslovánÃ',
- bulletedlist : 'Odrážky',
- indent : 'ZvÄtÅ¡it odsazenÃ',
- outdent : 'ZmenÅ¡it odsazenÃ',
-
- justify :
- {
- left : 'Zarovnat vlevo',
- center : 'Zarovnat na stÅed',
- right : 'Zarovnat vpravo',
- block : 'Zarovnat do bloku'
- },
-
- blockquote : 'Citace',
-
- clipboard :
- {
- title : 'Vložit',
- cutError : 'BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro vyjmutà zvoleného textu do schránky. ProsÃm vyjmÄte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+X).',
- copyError : 'BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro kopÃrovánà zvoleného textu do schránky. ProsÃm zkopÃrujte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+C).',
- pasteMsg : 'Do následujÃcÃho pole vložte požadovaný obsah pomocà klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stisknÄte <STRONG>OK</STRONG>.',
- securityMsg : 'Z důvodů nastavenà bezpeÄnosti VaÅ¡eho prohlÞeÄe nemůže editor pÅistupovat pÅÃmo do schránky. Obsah schránky prosÃm vložte znovu do tohoto okna.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Jak je vidÄt, vkládaný text je kopÃrován z Wordu. Chcete jej pÅed vloženÃm vyÄistit?',
- toolbar : 'Vložit z Wordu',
- title : 'Vložit z Wordu',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Vložit jako Äistý text',
- title : 'Vložit jako Äistý text'
- },
-
- templates :
- {
- button : 'Å ablony',
- title : 'Å ablony obsahu',
- options : 'Template Options', // MISSING
- insertOption : 'Nahradit aktuálnà obsah',
- selectPromptMsg : 'ProsÃm zvolte Å¡ablonu pro otevÅenà v editoru<br>(aktuálnà obsah editoru bude ztracen):',
- emptyListMsg : '(Nenà definována žádná šablona)'
- },
-
- showBlocks : 'Ukázat bloky',
-
- stylesCombo :
- {
- label : 'Styl',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Blokové styly',
- panelTitle2 : 'Åádkové styly',
- panelTitle3 : 'Objektové styly'
- },
-
- format :
- {
- label : 'Formát',
- panelTitle : 'Formát',
-
- tag_p : 'NormálnÃ',
- tag_pre : 'Naformátováno',
- tag_address : 'Adresa',
- tag_h1 : 'Nadpis 1',
- tag_h2 : 'Nadpis 2',
- tag_h3 : 'Nadpis 3',
- tag_h4 : 'Nadpis 4',
- tag_h5 : 'Nadpis 5',
- tag_h6 : 'Nadpis 6',
- tag_div : 'Normálnà (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'PÃsmo',
- voiceLabel : 'PÃsmo',
- panelTitle : 'PÃsmo'
- },
-
- fontSize :
- {
- label : 'Velikost',
- voiceLabel : 'Velikost pÃsma',
- panelTitle : 'Velikost'
- },
-
- colorButton :
- {
- textColorTitle : 'Barva textu',
- bgColorTitle : 'Barva pozadÃ',
- panelTitle : 'Colors', // MISSING
- auto : 'Automaticky',
- more : 'VÃce barev...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Kontrola pravopisu bÄhem psanà (SCAYT)',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Zapnout SCAYT',
- disable : 'Vypnout SCAYT',
- about : 'O aplikaci SCAYT',
- toggle : 'VypÃnaÄ SCAYT',
- options : 'NastavenÃ',
- langs : 'Jazyky',
- moreSuggestions : 'VÃce návrhů',
- ignore : 'PÅeskoÄit',
- ignoreAll : 'PÅeskoÄit vÅ¡e',
- addWord : 'PÅidat slovo',
- emptyDic : 'Název slovnÃku nesmà být prázdný.',
-
- optionsTab : 'NastavenÃ',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Jazyky',
-
- dictionariesTab : 'SlovnÃky',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'O aplikaci'
- },
-
- about :
- {
- title : 'O aplikaci CKEditor',
- dlgTitle : 'O aplikaci CKEditor',
- moreInfo : 'Pro informace o lincenci navštivte naši webovou stránku:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'Maximalizovat',
- minimize : 'Minimalizovat',
-
- fakeobjects :
- {
- anchor : 'Záložka',
- flash : 'Flash animace',
- div : 'Zalomenà stránky',
- unknown : 'Neznámý objekt'
- },
-
- resize : 'Uchopit pro zmÄnu velikosti',
-
- colordialog :
- {
- title : 'VýbÄr barvy',
- options : 'Color Options', // MISSING
- highlight : 'Zvýraznit',
- selected : 'Vybráno',
- clear : 'VyÄistit'
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Czech language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'cs' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Textový editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'StisknÄte ALT 0 pro nápovÄdu',
+
+ browseServer: 'Vybrat na serveru',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Odeslat',
+ uploadSubmit: 'Odeslat na server',
+ image: 'Obrázek',
+ flash: 'Flash',
+ form: 'FormuláÅ',
+ checkbox: 'ZaÅ¡krtávacà polÃÄko',
+ radio: 'PÅepÃnaÄ',
+ textField: 'Textové pole',
+ textarea: 'Textová oblast',
+ hiddenField: 'Skryté pole',
+ button: 'TlaÄÃtko',
+ select: 'Seznam',
+ imageButton: 'Obrázkové tlaÄÃtko',
+ notSet: '<nenastaveno>',
+ id: 'Id',
+ name: 'Jméno',
+ langDir: 'SmÄr jazyka',
+ langDirLtr: 'Zleva doprava (LTR)',
+ langDirRtl: 'Zprava doleva (RTL)',
+ langCode: 'Kód jazyka',
+ longDescr: 'Dlouhý popis URL',
+ cssClass: 'TÅÃda stylu',
+ advisoryTitle: 'Pomocný titulek',
+ cssStyle: 'Styl',
+ ok: 'OK',
+ cancel: 'Zrušit',
+ close: 'ZavÅÃt',
+ preview: 'Náhled',
+ resize: 'Uchopit pro zmÄnu velikosti',
+ generalTab: 'Obecné',
+ advancedTab: 'RozÅ¡ÃÅené',
+ validateNumberFailed: 'Zadaná hodnota nenà ÄÃselná.',
+ confirmNewPage: 'Jakékoliv neuložené zmÄny obsahu budou ztraceny. SkuteÄnÄ chcete otevÅÃt novou stránku?',
+ confirmCancel: 'NÄkterá z nastavenà byla zmÄnÄna. SkuteÄnÄ chcete zavÅÃt dialogové okno?',
+ options: 'NastavenÃ',
+ target: 'CÃl',
+ targetNew: 'Nové okno (_blank)',
+ targetTop: 'Okno nejvyššà úrovnÄ (_top)',
+ targetSelf: 'Stejné okno (_self)',
+ targetParent: 'RodiÄovské okno (_parent)',
+ langDirLTR: 'Zleva doprava (LTR)',
+ langDirRTL: 'Zprava doleva (RTL)',
+ styles: 'Styly',
+ cssClasses: 'TÅÃdy stylů',
+ width: 'Å ÃÅka',
+ height: 'Výška',
+ align: 'ZarovnánÃ',
+ alignLeft: 'Vlevo',
+ alignRight: 'Vpravo',
+ alignCenter: 'Na stÅed',
+ alignTop: 'Nahoru',
+ alignMiddle: 'Na stÅed',
+ alignBottom: 'Dolů',
+ invalidValue : 'Neplatná hodnota.',
+ invalidHeight: 'Zadaná výška musà být ÄÃslo.',
+ invalidWidth: 'Å ÃÅka musà být ÄÃslo.',
+ invalidCssLength: 'Hodnota urÄená pro pole "%1" musà být kladné ÄÃslo bez nebo s platnou jednotkou mÃry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).',
+ invalidHtmlLength: 'Hodnota urÄená pro pole "%1" musà být kladné ÄÃslo bez nebo s platnou jednotkou mÃry HTML (px nebo %).',
+ invalidInlineStyle: 'Hodnota urÄená pro Åádkový styl se musà skládat z jedné nebo vÃce n-tic ve formátu "název : hodnota", oddÄlené stÅednÃky',
+ cssLengthTooltip: 'Zadejte ÄÃslo jako hodnotu v pixelech nebo ÄÃslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nedostupné</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/cy.js b/devel/third-party/ckeditor/lang/cy.js
index 89813d4..c5ffbaa 100644
--- a/devel/third-party/ckeditor/lang/cy.js
+++ b/devel/third-party/ckeditor/lang/cy.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Welsh language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['cy'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Tarddle',
- newPage : 'Tudalen newydd',
- save : 'Cadw',
- preview : 'Rhagolwg',
- cut : 'Torri',
- copy : 'Copïo',
- paste : 'Gludo',
- print : 'Argraffu',
- underline : 'Tanlinellu',
- bold : 'Bras',
- italic : 'Italig',
- selectAll : 'Dewis Popeth',
- removeFormat : 'Tynnu Fformat',
- strike : 'Llinell Trwyddo',
- subscript : 'Is-sgript',
- superscript : 'Uwchsgript',
- horizontalrule : 'Mewnosod Llinell Lorweddol',
- pagebreak : 'Mewnosod Toriad Tudalen i Argraffu',
- unlink : 'Datgysylltu',
- undo : 'Dadwneud',
- redo : 'Ailadrodd',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Pori\'r Gweinydd',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Lanlwytho',
- uploadSubmit : 'Anfon i\'r Gweinydd',
- image : 'Delwedd',
- flash : 'Flash',
- form : 'Ffurflen',
- checkbox : 'Blwch ticio',
- radio : 'Botwm Radio',
- textField : 'Maes Testun',
- textarea : 'Ardal Testun',
- hiddenField : 'Maes Cudd',
- button : 'Botwm',
- select : 'Maes Dewis',
- imageButton : 'Botwm Delwedd',
- notSet : '<heb osod>',
- id : 'Id',
- name : 'Name',
- langDir : 'Cyfeiriad Iaith',
- langDirLtr : 'Chwith i\'r Dde (LTR)',
- langDirRtl : 'Dde i\'r Chwith (RTL)',
- langCode : 'Cod Iaith',
- longDescr : 'URL Disgrifiad Hir',
- cssClass : 'Dosbarth Dalen Arddull',
- advisoryTitle : 'Teitl Cynghorol',
- cssStyle : 'Arddull',
- ok : 'Iawn',
- cancel : 'Diddymu',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Cyffredinol',
- advancedTab : 'Uwch',
- validateNumberFailed : 'Nid yw\'r gwerth hwn yn rhif.',
- confirmNewPage : 'Byddwch yn colli unrhyw newidiadau i\'r cynnwys sydd heb eu cadw. A ydych am barhau i lwytho tudalen newydd?',
- confirmCancel : 'Mae rhai o\'r opsiynau wedi\'u newid. A ydych wir am gau\'r deialog?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ddim ar gael</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Mewnosod Nodau Arbennig',
- title : 'Dewis Nod Arbennig',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Dolen',
- other : '<eraill>',
- menu : 'Golygu Dolen',
- title : 'Dolen',
- info : 'Gwyb ar y Ddolen',
- target : 'Targed',
- upload : 'Lanlwytho',
- advanced : 'Uwch',
- type : 'Math y Ddolen',
- toUrl : 'URL', // MISSING
- toAnchor : 'Dolen at angor yn y testun',
- toEmail : 'E-bost',
- targetFrame : '<ffrâm>',
- targetPopup : '<ffenestr bop>',
- targetFrameName : 'Enw Ffrâm y Targed',
- targetPopupName : 'Enw Ffenestr Bop',
- popupFeatures : 'Nodweddion Ffenestr Bop',
- popupResizable : 'Ailfeintiol',
- popupStatusBar : 'Bar Statws',
- popupLocationBar: 'Bar Safle',
- popupToolbar : 'Bar Offer',
- popupMenuBar : 'Dewislen',
- popupFullScreen : 'Sgrin Llawn (IE)',
- popupScrollBars : 'Barrau Sgrolio',
- popupDependent : 'Dibynnol (Netscape)',
- popupWidth : 'Lled',
- popupLeft : 'Safle Chwith',
- popupHeight : 'Uchder',
- popupTop : 'Safle Top',
- id : 'Id',
- langDir : 'Cyfeiriad Iaith',
- langDirLTR : 'Chwith i\'r Dde (LTR)',
- langDirRTL : 'Dde i\'r Chwith (RTL)',
- acccessKey : 'Allwedd Mynediad',
- name : 'Enw',
- langCode : 'Cod Iaith',
- tabIndex : 'Indecs Tab',
- advisoryTitle : 'Teitl Cynghorol',
- advisoryContentType : 'Math y Cynnwys Cynghorol',
- cssClasses : 'Dosbarthiadau Dalen Arddull',
- charset : 'Set nodau\'r Adnodd Cysylltiedig',
- styles : 'Arddull',
- selectAnchor : 'Dewiswch Angor',
- anchorName : 'Gan Enw\'r Angor',
- anchorId : 'Gan Id yr Elfen',
- emailAddress : 'Cyfeiriad E-Bost',
- emailSubject : 'Testun y Message Subject',
- emailBody : 'Pwnc y Neges',
- noAnchors : '(Dim angorau ar gael yn y ddogfen)',
- noUrl : 'Teipiwch URL y ddolen',
- noEmail : 'Teipiwch gyfeiriad yr e-bost'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Angor',
- menu : 'Golygwch yr Angor',
- title : 'Priodweddau\'r Angor',
- name : 'Enw\'r Angor',
- errorName : 'Teipiwch enw\'r angor'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Chwilio ac Amnewid',
- find : 'Chwilio',
- replace : 'Amnewid',
- findWhat : 'Chwilio\'r term:',
- replaceWith : 'Amnewid gyda:',
- notFoundMsg : 'Nid oedd y testun wedi\'i ddarganfod.',
- matchCase : 'Cyfateb i\'r cas',
- matchWord : 'Cyfateb gair cyfan',
- matchCyclic : 'Cyfateb cylchol',
- replaceAll : 'Amnewid pob un',
- replaceSuccessMsg : 'Amnewidiwyd %1 achlysur.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabl',
- title : 'Nodweddion Tabl',
- menu : 'Nodweddion Tabl',
- deleteTable : 'Dileu Tabl',
- rows : 'Rhesi',
- columns : 'Colofnau',
- border : 'Maint yr Ymyl',
- align : 'Aliniad',
- alignLeft : 'Chwith',
- alignCenter : 'Canol',
- alignRight : 'Dde',
- width : 'Lled',
- widthPx : 'picsel',
- widthPc : 'y cant',
- widthUnit : 'width unit', // MISSING
- height : 'Uchder',
- cellSpace : 'Bylchu\'r gell',
- cellPad : 'Padio\'r gell',
- caption : 'Pennawd',
- summary : 'Crynodeb',
- headers : 'Penynnau',
- headersNone : 'Dim',
- headersColumn : 'Colofn gyntaf',
- headersRow : 'Rhes gyntaf',
- headersBoth : 'Y Ddau',
- invalidRows : 'Mae\'n rhaid cael o leiaf un rhes.',
- invalidCols : 'Mae\'n rhaid cael o leiaf un golofn.',
- invalidBorder : 'Mae\'n rhaid i faint yr ymyl fod yn rhif.',
- invalidWidth : 'Mae\'n rhaid i led y tabl fod yn rhif.',
- invalidHeight : 'Mae\'n rhaid i uchder y tabl fod yn rhif.',
- invalidCellSpacing : 'Mae\'n rhaid i fylchiad y gell fod yn rhif.',
- invalidCellPadding : 'Mae\'n rhaid i badiad y gell fod yn rhif.',
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Mewnosod Cell Cyn',
- insertAfter : 'Mewnosod Cell Ar Ãl',
- deleteCell : 'Dileu Celloedd',
- merge : 'Cyfuno Celloedd',
- mergeRight : 'Cyfuno i\'r Dde',
- mergeDown : 'Cyfuno i Lawr',
- splitHorizontal : 'Hollti\'r Gell yn Lorweddol',
- splitVertical : 'Hollti\'r Gell yn Fertigol',
- title : 'Priodweddau\'r Gell',
- cellType : 'Math y Gell',
- rowSpan : 'Rhychwant Rhesi',
- colSpan : 'Rhychwant Colofnau',
- wordWrap : 'Lapio Geiriau',
- hAlign : 'Aliniad Llorweddol',
- vAlign : 'Aliniad Fertigol',
- alignTop : 'Top',
- alignMiddle : 'Canol',
- alignBottom : 'Gwaelod',
- alignBaseline : 'Baslinell',
- bgColor : 'Lliw Cefndir',
- borderColor : 'Lliw Ymyl',
- data : 'Data',
- header : 'Pennyn',
- yes : 'Ie',
- no : 'Na',
- invalidWidth : 'Mae\'n rhaid i led y gell fod yn rhif.',
- invalidHeight : 'Mae\'n rhaid i uchder y gell fod yn rhif.',
- invalidRowSpan : 'Mae\'n rhaid i rychwant y rhesi fod yn gyfanrif.',
- invalidColSpan : 'Mae\'n rhaid i rychwant y colofnau fod yn gyfanrif.',
- chooseColor : 'Choose'
- },
-
- row :
- {
- menu : 'Rhes',
- insertBefore : 'Mewnosod Rhes Cyn',
- insertAfter : 'Mewnosod Rhes Ar Ãl',
- deleteRow : 'Dileu Rhesi'
- },
-
- column :
- {
- menu : 'Colofn',
- insertBefore : 'Mewnosod Colofn Cyn',
- insertAfter : 'Mewnosod Colofn Ar Ãl',
- deleteColumn : 'Dileu Colofnau'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Priodweddau Botymau',
- text : 'Testun (Gwerth)',
- type : 'Math',
- typeBtn : 'Botwm',
- typeSbm : 'Gyrru',
- typeRst : 'Ailosod'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Priodweddau Blwch Ticio',
- radioTitle : 'Priodweddau Botwm Radio',
- value : 'Gwerth',
- selected : 'Dewiswyd'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Priodweddau Ffurflen',
- menu : 'Priodweddau Ffurflen',
- action : 'Gweithred',
- method : 'Dull',
- encoding : 'Amgodio'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Priodweddau Maes Dewis',
- selectInfo : 'Gwyb Dewis',
- opAvail : 'Opsiynau ar Gael',
- value : 'Gwerth',
- size : 'Maint',
- lines : 'llinellau',
- chkMulti : 'Caniatà u aml-ddewisiadau',
- opText : 'Testun',
- opValue : 'Gwerth',
- btnAdd : 'Ychwanegu',
- btnModify : 'Newid',
- btnUp : 'Lan',
- btnDown : 'Lawr',
- btnSetValue : 'Gosod fel gwerth a ddewiswyd',
- btnDelete : 'Dileu'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Priodweddau Ardal Testun',
- cols : 'Colofnau',
- rows : 'Rhesi'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Priodweddau Maes Testun',
- name : 'Enw',
- value : 'Gwerth',
- charWidth : 'Lled Nod',
- maxChars : 'Uchafswm y Nodau',
- type : 'Math',
- typeText : 'Testun',
- typePass : 'Cyfrinair'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Priodweddau Maes Cudd',
- name : 'Enw',
- value : 'Gwerth'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Priodweddau Delwedd',
- titleButton : 'Priodweddau Botwm Delwedd',
- menu : 'Priodweddau Delwedd',
- infoTab : 'Gwyb Delwedd',
- btnUpload : 'Anfon i\'r Gweinydd',
- upload : 'lanlwytho',
- alt : 'Testun Amgen',
- width : 'Lled',
- height : 'Uchder',
- lockRatio : 'Cloi Cymhareb',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Ailosod Maint',
- border : 'Ymyl',
- hSpace : 'BwlchLl',
- vSpace : 'BwlchF',
- align : 'Alinio',
- alignLeft : 'Chwith',
- alignRight : 'Dde',
- alertUrl : 'Rhowch URL y ddelwedd',
- linkTab : 'Dolen',
- button2Img : 'Ydych am drawsffurfio\'r botwm ddelwedd hwn ar ddelwedd syml?',
- img2Button : 'Ydych am drawsffurfio\'r ddelwedd hon ar fotwm delwedd?',
- urlMissing : 'URL tarddle\'r ddelwedd ar goll.',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Priodweddau Flash',
- propertiesTab : 'Priodweddau',
- title : 'Priodweddau Flash',
- chkPlay : 'AwtoChwarae',
- chkLoop : 'Lwpio',
- chkMenu : 'Galluogi Dewislen Flash',
- chkFull : 'Caniatà u Sgrin Llawn',
- scale : 'Graddfa',
- scaleAll : 'Dangos pob',
- scaleNoBorder : 'Dim Ymyl',
- scaleFit : 'Ffit Union',
- access : 'Mynediad Sgript',
- accessAlways : 'Pob amser',
- accessSameDomain: 'R\'un parth',
- accessNever : 'Byth',
- align : 'Alinio',
- alignLeft : 'Chwith',
- alignAbsBottom : 'Gwaelod Abs',
- alignAbsMiddle : 'Canol Abs',
- alignBaseline : 'Baslinell',
- alignBottom : 'Gwaelod',
- alignMiddle : 'Canol',
- alignRight : 'Dde',
- alignTextTop : 'Testun Top',
- alignTop : 'Top',
- quality : 'Ansawdd',
- qualityBest : 'Gorau',
- qualityHigh : 'Uchel',
- qualityAutoHigh : 'Uchel Awto',
- qualityMedium : 'Canolig',
- qualityAutoLow : 'Isel Awto',
- qualityLow : 'Isel',
- windowModeWindow: 'Ffenestr',
- windowModeOpaque: 'Afloyw',
- windowModeTransparent : 'Tryloyw',
- windowMode : 'Modd ffenestr',
- flashvars : 'Newidynnau ar gyfer Flash',
- bgcolor : 'Lliw cefndir',
- width : 'Lled',
- height : 'Uchder',
- hSpace : 'BwlchLl',
- vSpace : 'BwlchF',
- validateSrc : 'Ni all yr URL fod yn wag.',
- validateWidth : 'Rhaid i\'r Lled fod yn rhif.',
- validateHeight : 'Rhaid i\'r Uchder fod yn rhif.',
- validateHSpace : 'Rhaid i\'r BwlchLl fod yn rhif.',
- validateVSpace : 'Rhaid i\'r BwlchF fod yn rhif.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Gwirio Sillafu',
- title : 'Gwirio Sillafu',
- notAvailable : 'Nid yw\'r gwasanaeth hwn ar gael yn bresennol.',
- errorLoading : 'Error loading application service host: %s.',
- notInDic : 'Nid i\'w gael yn y geiriadur',
- changeTo : 'Newid i',
- btnIgnore : 'Anwybyddu Un',
- btnIgnoreAll : 'Anwybyddu Pob',
- btnReplace : 'Amnewid Un',
- btnReplaceAll : 'Amnewid Pob',
- btnUndo : 'Dadwneud',
- noSuggestions : '- Dim awgrymiadau -',
- progress : 'Gwirio sillafu yn ar y gweill...',
- noMispell : 'Gwirio sillafu wedi gorffen: Dim camsillaf.',
- noChanges : 'Gwirio sillafu wedi gorffen: Dim newidiadau',
- oneChange : 'Gwirio sillafu wedi gorffen: Newidiwyd 1 gair',
- manyChanges : 'Gwirio sillafu wedi gorffen: Newidiwyd %1 gair',
- ieSpellDownload : 'Gwirydd sillafu heb ei arsefydlu. A ydych am ei lawrlwytho nawr?'
- },
-
- smiley :
- {
- toolbar : 'Gwenoglun',
- title : 'Mewnosod Gwenoglun',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : 'Elfen %1'
- },
-
- numberedlist : 'Mewnosod/Tynnu Rhestr Rhifol',
- bulletedlist : 'Mewnosod/Tynnu Rhestr Bwled',
- indent : 'Cynyddu\'r Mewnoliad',
- outdent : 'Lleihau\'r Mewnoliad',
-
- justify :
- {
- left : 'Alinio i\'r Chwith',
- center : 'Alinio i\'r Canol',
- right : 'Alinio i\'r Dde',
- block : 'Aliniad Bloc'
- },
-
- blockquote : 'Dyfyniad bloc',
-
- clipboard :
- {
- title : 'Gludo',
- cutError : 'Nid yw gosodiadau diogelwch eich porwr yn caniatà u\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).',
- copyError : 'Nid yw gosodiadau diogelwch eich porwr yn caniatà u\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).',
- pasteMsg : 'Gludwch i mewn i\'r blwch canlynol gan ddefnyddio\'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.',
- securityMsg : 'Oherwydd gosodiadau diogelwch eich porwr, nid yw\'r porwr yn gallu ennill mynediad i\'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i\'r ffenestr hon.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Gludo o Word',
- title : 'Gludo o Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Gludo fel testun plaen',
- title : 'Gludo fel Testun Plaen'
- },
-
- templates :
- {
- button : 'Templedi',
- title : 'Templedi Cynnwys',
- options : 'Template Options', // MISSING
- insertOption : 'Amnewid y cynnwys go iawn',
- selectPromptMsg : 'Dewiswch dempled i\'w agor yn y golygydd',
- emptyListMsg : '(Dim templedi wedi\'u diffinio)'
- },
-
- showBlocks : 'Dangos Blociau',
-
- stylesCombo :
- {
- label : 'Arddulliau',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Arddulliau Bloc',
- panelTitle2 : 'Arddulliau Mewnol',
- panelTitle3 : 'Arddulliau Gwrthrych'
- },
-
- format :
- {
- label : 'Fformat',
- panelTitle : 'Fformat Paragraff',
-
- tag_p : 'Normal',
- tag_pre : 'Wedi\'i Fformatio',
- tag_address : 'Cyfeiriad',
- tag_h1 : 'Pennawd 1',
- tag_h2 : 'Pennawd 2',
- tag_h3 : 'Pennawd 3',
- tag_h4 : 'Pennawd 4',
- tag_h5 : 'Pennawd 5',
- tag_h6 : 'Pennawd 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Ffont',
- voiceLabel : 'Ffont',
- panelTitle : 'Enw\'r Ffont'
- },
-
- fontSize :
- {
- label : 'Maint',
- voiceLabel : 'Maint y Ffont',
- panelTitle : 'Maint y Ffont'
- },
-
- colorButton :
- {
- textColorTitle : 'Lliw Testun',
- bgColorTitle : 'Lliw Cefndir',
- panelTitle : 'Colors', // MISSING
- auto : 'Awtomatig',
- more : 'Mwy o Liwiau...'
- },
-
- colors :
- {
- '000' : 'Du',
- '800000' : 'Marwn',
- '8B4513' : 'Brown Cyfrwy',
- '2F4F4F' : 'Llechen Tywyll',
- '008080' : 'Corhwyad',
- '000080' : 'Nefi',
- '4B0082' : 'Indigo',
- '696969' : 'Llwyd Pwl',
- 'B22222' : 'Bric Tân',
- 'A52A2A' : 'Brown',
- 'DAA520' : 'Rhoden Aur',
- '006400' : 'Gwyrdd Tywyll',
- '40E0D0' : 'Gwyrddlas',
- '0000CD' : 'Glas Canolig',
- '800080' : 'Porffor',
- '808080' : 'Llwyd',
- 'F00' : 'Coch',
- 'FF8C00' : 'Oren Tywyll',
- 'FFD700' : 'Aur',
- '008000' : 'Gwyrdd',
- '0FF' : 'Cyan',
- '00F' : 'Glas',
- 'EE82EE' : 'Fioled',
- 'A9A9A9' : 'Llwyd Tywyll',
- 'FFA07A' : 'Samwn Golau',
- 'FFA500' : 'Oren',
- 'FFFF00' : 'Melyn',
- '00FF00' : 'Leim',
- 'AFEEEE' : 'Gwyrddlas Golau',
- 'ADD8E6' : 'Glas Golau',
- 'DDA0DD' : 'Eirinen',
- 'D3D3D3' : 'Llwyd Golau',
- 'FFF0F5' : 'Gwrid Lafant',
- 'FAEBD7' : 'Gwyn Hynafol',
- 'FFFFE0' : 'Melyn Golau',
- 'F0FFF0' : 'Melwn Gwyrdd Golau',
- 'F0FFFF' : 'Aswr',
- 'F0F8FF' : 'Glas Alys',
- 'E6E6FA' : 'Lafant',
- 'FFF' : 'Gwyn'
- },
-
- scayt :
- {
- title : 'Gwirio\'r Sillafu Wrth Deipio',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Galluogi SCAYT',
- disable : 'Analluogi SCAYT',
- about : 'Ynghylch SCAYT',
- toggle : 'Togl SCAYT',
- options : 'Opsiynau',
- langs : 'Ieithoedd',
- moreSuggestions : 'Awgrymiadau pellach',
- ignore : 'Anwybyddu',
- ignoreAll : 'Anwybyddu pob',
- addWord : 'Ychwanegu Gair',
- emptyDic : 'Ni ddylai enw\'r geiriadur fod yn wag.',
-
- optionsTab : 'Opsiynau',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Ieithoedd',
-
- dictionariesTab : 'Geiriaduron',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Ynghylch'
- },
-
- about :
- {
- title : 'Ynghylch CKEditor',
- dlgTitle : 'Ynghylch CKEditor',
- moreInfo : 'Am wybodaeth ynghylch trwyddedau, ewch i\'n gwefan:',
- copy : 'Hawlfraint © $1. Cedwir pob hawl.'
- },
-
- maximize : 'Mwyhau',
- minimize : 'Lleihau',
-
- fakeobjects :
- {
- anchor : 'Angor',
- flash : 'Animeiddiant Flash',
- div : 'Toriad Tudalen',
- unknown : 'Gwrthrych Anhysbys'
- },
-
- resize : 'Llusgo i ailfeintio',
-
- colordialog :
- {
- title : 'Dewis lliw',
- options : 'Color Options', // MISSING
- highlight : 'Uwcholeuo',
- selected : 'Dewiswyd',
- clear : 'Clirio'
- },
-
- toolbarCollapse : 'Cyfangu\'r Bar Offer',
- toolbarExpand : 'Ehangu\'r Bar Offer',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Welsh language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'cy' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Golygydd Testun Cyfoethog',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Gwasgwch ALT 0 am gymorth',
+
+ browseServer: 'Pori\'r Gweinydd',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Lanlwytho',
+ uploadSubmit: 'Anfon i\'r Gweinydd',
+ image: 'Delwedd',
+ flash: 'Flash',
+ form: 'Ffurflen',
+ checkbox: 'Blwch ticio',
+ radio: 'Botwm Radio',
+ textField: 'Maes Testun',
+ textarea: 'Ardal Testun',
+ hiddenField: 'Maes Cudd',
+ button: 'Botwm',
+ select: 'Maes Dewis',
+ imageButton: 'Botwm Delwedd',
+ notSet: '<heb osod>',
+ id: 'Id',
+ name: 'Name',
+ langDir: 'Cyfeiriad Iaith',
+ langDirLtr: 'Chwith i\'r Dde (LTR)',
+ langDirRtl: 'Dde i\'r Chwith (RTL)',
+ langCode: 'Cod Iaith',
+ longDescr: 'URL Disgrifiad Hir',
+ cssClass: 'Dosbarth Dalen Arddull',
+ advisoryTitle: 'Teitl Cynghorol',
+ cssStyle: 'Arddull',
+ ok: 'Iawn',
+ cancel: 'Diddymu',
+ close: 'Cau',
+ preview: 'Rhagolwg',
+ resize: 'Llusgo i ailfeintio',
+ generalTab: 'Cyffredinol',
+ advancedTab: 'Uwch',
+ validateNumberFailed: 'Nid yw\'r gwerth hwn yn rhif.',
+ confirmNewPage: 'Byddwch yn colli unrhyw newidiadau i\'r cynnwys sydd heb eu cadw. A ydych am barhau i lwytho tudalen newydd?',
+ confirmCancel: 'Mae rhai o\'r opsiynau wedi\'u newid. A ydych wir am gau\'r deialog?',
+ options: 'Opsiynau',
+ target: 'Targed',
+ targetNew: 'Ffenest Newydd (_blank)',
+ targetTop: 'Ffenest ar y Brig (_top)',
+ targetSelf: 'Yr un Ffenest (_self)',
+ targetParent: 'Ffenest y Rhiant (_parent)',
+ langDirLTR: 'Chwith i\'r Dde (LTR)',
+ langDirRTL: 'Dde i\'r Chwith (RTL)',
+ styles: 'Arddull',
+ cssClasses: 'Dosbarthiadau Ffeil Ddiwyg',
+ width: 'Lled',
+ height: 'Uchder',
+ align: 'Alinio',
+ alignLeft: 'Chwith',
+ alignRight: 'Dde',
+ alignCenter: 'Canol',
+ alignTop: 'Brig',
+ alignMiddle: 'Canol',
+ alignBottom: 'Gwaelod',
+ invalidValue : 'Gwerth annilys.',
+ invalidHeight: 'Rhaid i\'r Uchder fod yn rhif.',
+ invalidWidth: 'Rhaid i\'r Lled fod yn rhif.',
+ invalidCssLength: 'Mae\'n rhaid i\'r gwerth ar gyfer maes "%1" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt, neu pc).',
+ invalidHtmlLength: 'Mae\'n rhaid i\'r gwerth ar gyfer maes "%1" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).',
+ invalidInlineStyle: 'Mae\'n rhaid i\'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat "enw:gwerth", wedi\'u gwahanu gyda hanner colon.',
+ cssLengthTooltip: 'Rhowch rif ar gyfer gwerth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ddim ar gael</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/da.js b/devel/third-party/ckeditor/lang/da.js
index f0789bf..ae34c87 100644
--- a/devel/third-party/ckeditor/lang/da.js
+++ b/devel/third-party/ckeditor/lang/da.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Danish language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['da'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Kilde',
- newPage : 'Ny side',
- save : 'Gem',
- preview : 'Vis eksempel',
- cut : 'Klip',
- copy : 'Kopiér',
- paste : 'Indsæt',
- print : 'Udskriv',
- underline : 'Understreget',
- bold : 'Fed',
- italic : 'Kursiv',
- selectAll : 'Vælg alt',
- removeFormat : 'Fjern formatering',
- strike : 'Gennemstreget',
- subscript : 'Sænket skrift',
- superscript : 'Hævet skrift',
- horizontalrule : 'Indsæt vandret streg',
- pagebreak : 'Indsæt sideskift',
- unlink : 'Fjern hyperlink',
- undo : 'Fortryd',
- redo : 'Annullér fortryd',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Gennemse...',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Upload',
- uploadSubmit : 'Upload',
- image : 'Indsæt billede',
- flash : 'Indsæt Flash',
- form : 'Indsæt formular',
- checkbox : 'Indsæt afkrydsningsfelt',
- radio : 'Indsæt alternativknap',
- textField : 'Indsæt tekstfelt',
- textarea : 'Indsæt tekstboks',
- hiddenField : 'Indsæt skjult felt',
- button : 'Indsæt knap',
- select : 'Indsæt liste',
- imageButton : 'Indsæt billedknap',
- notSet : '<intet valgt>',
- id : 'Id',
- name : 'Navn',
- langDir : 'Tekstretning',
- langDirLtr : 'Fra venstre mod højre (LTR)',
- langDirRtl : 'Fra højre mod venstre (RTL)',
- langCode : 'Sprogkode',
- longDescr : 'Udvidet beskrivelse',
- cssClass : 'Typografiark (CSS)',
- advisoryTitle : 'Titel',
- cssStyle : 'Typografi (CSS)',
- ok : 'OK',
- cancel : 'Annullér',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Generelt',
- advancedTab : 'Avanceret',
- validateNumberFailed : 'Værdien er ikke et tal.',
- confirmNewPage : 'Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?',
- confirmCancel : 'Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ikke tilgængelig</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Indsæt symbol',
- title : 'Vælg symbol',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Indsæt/redigér hyperlink',
- other : '<anden>',
- menu : 'Redigér hyperlink',
- title : 'Egenskaber for hyperlink',
- info : 'Generelt',
- target : 'MÃ¥l',
- upload : 'Upload',
- advanced : 'Avanceret',
- type : 'Type',
- toUrl : 'URL', // MISSING
- toAnchor : 'Bogmærke på denne side',
- toEmail : 'E-mail',
- targetFrame : '<ramme>',
- targetPopup : '<popup vindue>',
- targetFrameName : 'Destinationsvinduets navn',
- targetPopupName : 'Popup vinduets navn',
- popupFeatures : 'Egenskaber for popup',
- popupResizable : 'Justérbar',
- popupStatusBar : 'Statuslinje',
- popupLocationBar: 'Adresselinje',
- popupToolbar : 'Værktøjslinje',
- popupMenuBar : 'Menulinje',
- popupFullScreen : 'Fuld skærm (IE)',
- popupScrollBars : 'Scrollbar',
- popupDependent : 'Koblet/dependent (Netscape)',
- popupWidth : 'Bredde',
- popupLeft : 'Position fra venstre',
- popupHeight : 'Højde',
- popupTop : 'Position fra toppen',
- id : 'Id',
- langDir : 'Tekstretning',
- langDirLTR : 'Fra venstre mod højre (LTR)',
- langDirRTL : 'Fra højre mod venstre (RTL)',
- acccessKey : 'Genvejstast',
- name : 'Navn',
- langCode : 'Tekstretning',
- tabIndex : 'Tabulator indeks',
- advisoryTitle : 'Titel',
- advisoryContentType : 'Indholdstype',
- cssClasses : 'Typografiark',
- charset : 'Tegnsæt',
- styles : 'Typografi',
- selectAnchor : 'Vælg et anker',
- anchorName : 'Efter anker navn',
- anchorId : 'Efter element Id',
- emailAddress : 'E-mail adresse',
- emailSubject : 'Emne',
- emailBody : 'Besked',
- noAnchors : '(Ingen bogmærker i dokumentet)',
- noUrl : 'Indtast hyperlink URL!',
- noEmail : 'Indtast e-mail adresse!'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Indsæt/redigér bogmærke',
- menu : 'Egenskaber for bogmærke',
- title : 'Egenskaber for bogmærke',
- name : 'Bogmærke navn',
- errorName : 'Indtast bogmærke navn'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Søg og erstat',
- find : 'Søg',
- replace : 'Erstat',
- findWhat : 'Søg efter:',
- replaceWith : 'Erstat med:',
- notFoundMsg : 'Søgeteksten blev ikke fundet',
- matchCase : 'Forskel på store og små bogstaver',
- matchWord : 'Kun hele ord',
- matchCyclic : 'Match cyklisk',
- replaceAll : 'Erstat alle',
- replaceSuccessMsg : '%1 forekomst(er) erstattet.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabel',
- title : 'Egenskaber for tabel',
- menu : 'Egenskaber for tabel',
- deleteTable : 'Slet tabel',
- rows : 'Rækker',
- columns : 'Kolonner',
- border : 'Rammebredde',
- align : 'Justering',
- alignLeft : 'Venstrestillet',
- alignCenter : 'Centreret',
- alignRight : 'Højrestillet',
- width : 'Bredde',
- widthPx : 'pixels',
- widthPc : 'procent',
- widthUnit : 'width unit', // MISSING
- height : 'Højde',
- cellSpace : 'Celleafstand',
- cellPad : 'Cellemargen',
- caption : 'Titel',
- summary : 'Resumé',
- headers : 'Header',
- headersNone : 'Ingen',
- headersColumn : 'Første kolonne',
- headersRow : 'Første række',
- headersBoth : 'Begge',
- invalidRows : 'Antallet af rækker skal være større end 0.',
- invalidCols : 'Antallet af kolonner skal være større end 0.',
- invalidBorder : 'Rammetykkelse skal være et tal.',
- invalidWidth : 'Tabelbredde skal være et tal.',
- invalidHeight : 'Tabelhøjde skal være et tal.',
- invalidCellSpacing : 'Celleafstand skal være et tal.',
- invalidCellPadding : 'Cellemargen skal være et tal.',
-
- cell :
- {
- menu : 'Celle',
- insertBefore : 'Indsæt celle før',
- insertAfter : 'Indsæt celle efter',
- deleteCell : 'Slet celle',
- merge : 'Flet celler',
- mergeRight : 'Flet til højre',
- mergeDown : 'Flet nedad',
- splitHorizontal : 'Del celle vandret',
- splitVertical : 'Del celle lodret',
- title : 'Celleegenskaber',
- cellType : 'Celletype',
- rowSpan : 'Række span (rows span)',
- colSpan : 'Kolonne span (columns span)',
- wordWrap : 'Tekstombrydning',
- hAlign : 'Vandret justering',
- vAlign : 'Lodret justering',
- alignTop : 'Top',
- alignMiddle : 'Midt',
- alignBottom : 'Bund',
- alignBaseline : 'Grundlinje',
- bgColor : 'Baggrundsfarve',
- borderColor : 'Rammefarve',
- data : 'Data',
- header : 'Header',
- yes : 'Ja',
- no : 'Nej',
- invalidWidth : 'Cellebredde skal være et tal.',
- invalidHeight : 'Cellehøjde skal være et tal.',
- invalidRowSpan : 'Række span skal være et heltal.',
- invalidColSpan : 'Kolonne span skal være et heltal.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Række',
- insertBefore : 'Indsæt række før',
- insertAfter : 'Indsæt række efter',
- deleteRow : 'Slet række'
- },
-
- column :
- {
- menu : 'Kolonne',
- insertBefore : 'Indsæt kolonne før',
- insertAfter : 'Indsæt kolonne efter',
- deleteColumn : 'Slet kolonne'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Egenskaber for knap',
- text : 'Tekst',
- type : 'Type',
- typeBtn : 'Knap',
- typeSbm : 'Send',
- typeRst : 'Nulstil'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Egenskaber for afkrydsningsfelt',
- radioTitle : 'Egenskaber for alternativknap',
- value : 'Værdi',
- selected : 'Valgt'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Egenskaber for formular',
- menu : 'Egenskaber for formular',
- action : 'Handling',
- method : 'Metode',
- encoding : 'Kodning (encoding)'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Egenskaber for liste',
- selectInfo : 'Generelt',
- opAvail : 'Valgmuligheder',
- value : 'Værdi',
- size : 'Størrelse',
- lines : 'Linjer',
- chkMulti : 'Tillad flere valg',
- opText : 'Tekst',
- opValue : 'Værdi',
- btnAdd : 'Tilføj',
- btnModify : 'Redigér',
- btnUp : 'Op',
- btnDown : 'Ned',
- btnSetValue : 'Sæt som valgt',
- btnDelete : 'Slet'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Egenskaber for tekstboks',
- cols : 'Kolonner',
- rows : 'Rækker'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Egenskaber for tekstfelt',
- name : 'Navn',
- value : 'Værdi',
- charWidth : 'Bredde (tegn)',
- maxChars : 'Max. antal tegn',
- type : 'Type',
- typeText : 'Tekst',
- typePass : 'Adgangskode'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Egenskaber for skjult felt',
- name : 'Navn',
- value : 'Værdi'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Egenskaber for billede',
- titleButton : 'Egenskaber for billedknap',
- menu : 'Egenskaber for billede',
- infoTab : 'Generelt',
- btnUpload : 'Upload',
- upload : 'Upload',
- alt : 'Alternativ tekst',
- width : 'Bredde',
- height : 'Højde',
- lockRatio : 'Lås størrelsesforhold',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Nulstil størrelse',
- border : 'Ramme',
- hSpace : 'Vandret margen',
- vSpace : 'Lodret margen',
- align : 'Justering',
- alignLeft : 'Venstre',
- alignRight : 'Højre',
- alertUrl : 'Indtast stien til billedet',
- linkTab : 'Hyperlink',
- button2Img : 'Vil du lave billedknappen om til et almindeligt billede?',
- img2Button : 'Vil du lave billedet om til en billedknap?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Egenskaber for Flash',
- propertiesTab : 'Egenskaber',
- title : 'Egenskaber for Flash',
- chkPlay : 'Automatisk afspilning',
- chkLoop : 'Gentagelse',
- chkMenu : 'Vis Flash menu',
- chkFull : 'Tillad fuldskærm',
- scale : 'Skalér',
- scaleAll : 'Vis alt',
- scaleNoBorder : 'Ingen ramme',
- scaleFit : 'Tilpas størrelse',
- access : 'Script adgang',
- accessAlways : 'Altid',
- accessSameDomain: 'Samme domæne',
- accessNever : 'Aldrig',
- align : 'Justering',
- alignLeft : 'Venstre',
- alignAbsBottom : 'Absolut nederst',
- alignAbsMiddle : 'Absolut centreret',
- alignBaseline : 'Grundlinje',
- alignBottom : 'Nederst',
- alignMiddle : 'Centreret',
- alignRight : 'Højre',
- alignTextTop : 'Toppen af teksten',
- alignTop : 'Ãverst',
- quality : 'Kvalitet',
- qualityBest : 'Bedste',
- qualityHigh : 'Høj',
- qualityAutoHigh : 'Auto høj',
- qualityMedium : 'Medium',
- qualityAutoLow : 'Auto lav',
- qualityLow : 'Lav',
- windowModeWindow: 'Vindue',
- windowModeOpaque: 'Gennemsigtig (opaque)',
- windowModeTransparent : 'Transparent',
- windowMode : 'Vinduestilstand',
- flashvars : 'Variabler for Flash',
- bgcolor : 'Baggrundsfarve',
- width : 'Bredde',
- height : 'Højde',
- hSpace : 'Vandret margen',
- vSpace : 'Lodret margen',
- validateSrc : 'Indtast hyperlink URL!',
- validateWidth : 'Bredde skal være et tal.',
- validateHeight : 'Højde skal være et tal.',
- validateHSpace : 'Vandret margen skal være et tal.',
- validateVSpace : 'Lodret margen skal være et tal.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Stavekontrol',
- title : 'Stavekontrol',
- notAvailable : 'Stavekontrol er desværre ikke tilgængelig.',
- errorLoading : 'Fejl ved indlæsning af host: %s.',
- notInDic : 'Ikke i ordbogen',
- changeTo : 'Forslag',
- btnIgnore : 'Ignorér',
- btnIgnoreAll : 'Ignorér alle',
- btnReplace : 'Erstat',
- btnReplaceAll : 'Erstat alle',
- btnUndo : 'Tilbage',
- noSuggestions : '(ingen forslag)',
- progress : 'Stavekontrollen arbejder...',
- noMispell : 'Stavekontrol færdig: Ingen fejl fundet',
- noChanges : 'Stavekontrol færdig: Ingen ord ændret',
- oneChange : 'Stavekontrol færdig: Et ord ændret',
- manyChanges : 'Stavekontrol færdig: %1 ord ændret',
- ieSpellDownload : 'Stavekontrol ikke installeret. Vil du installere den nu?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Vælg smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Talopstilling',
- bulletedlist : 'Punktopstilling',
- indent : 'Forøg indrykning',
- outdent : 'Formindsk indrykning',
-
- justify :
- {
- left : 'Venstrestillet',
- center : 'Centreret',
- right : 'Højrestillet',
- block : 'Lige margener'
- },
-
- blockquote : 'Blokcitat',
-
- clipboard :
- {
- title : 'Indsæt',
- cutError : 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).',
- copyError : 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).',
- pasteMsg : 'Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.',
- securityMsg : 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?',
- toolbar : 'Indsæt fra Word',
- title : 'Indsæt fra Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Indsæt som ikke-formateret tekst',
- title : 'Indsæt som ikke-formateret tekst'
- },
-
- templates :
- {
- button : 'Skabeloner',
- title : 'Indholdsskabeloner',
- options : 'Template Options', // MISSING
- insertOption : 'Erstat det faktiske indhold',
- selectPromptMsg : 'Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):',
- emptyListMsg : '(Der er ikke defineret nogen skabelon)'
- },
-
- showBlocks : 'Vis afsnitsmærker',
-
- stylesCombo :
- {
- label : 'Typografi',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block typografi',
- panelTitle2 : 'Inline typografi',
- panelTitle3 : 'Object typografi'
- },
-
- format :
- {
- label : 'Formatering',
- panelTitle : 'Formatering',
-
- tag_p : 'Normal',
- tag_pre : 'Formateret',
- tag_address : 'Adresse',
- tag_h1 : 'Overskrift 1',
- tag_h2 : 'Overskrift 2',
- tag_h3 : 'Overskrift 3',
- tag_h4 : 'Overskrift 4',
- tag_h5 : 'Overskrift 5',
- tag_h6 : 'Overskrift 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Skrifttype',
- voiceLabel : 'Skrifttype',
- panelTitle : 'Skrifttype'
- },
-
- fontSize :
- {
- label : 'Skriftstørrelse',
- voiceLabel : 'Skriftstørrelse',
- panelTitle : 'Skriftstørrelse'
- },
-
- colorButton :
- {
- textColorTitle : 'Tekstfarve',
- bgColorTitle : 'Baggrundsfarve',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatisk',
- more : 'Flere farver...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Stavekontrol mens du skriver',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Aktivér SCAYT',
- disable : 'Deaktivér SCAYT',
- about : 'Om SCAYT',
- toggle : 'Skift/toggle SCAYT',
- options : 'Indstillinger',
- langs : 'Sprog',
- moreSuggestions : 'Flere forslag',
- ignore : 'Ignorér',
- ignoreAll : 'Ignorér alle',
- addWord : 'Tilføj ord',
- emptyDic : 'Ordbogsnavn må ikke være tom.',
-
- optionsTab : 'Indstillinger',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Sprog',
-
- dictionariesTab : 'Ordbøger',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Om'
- },
-
- about :
- {
- title : 'Om CKEditor',
- dlgTitle : 'Om CKEditor',
- moreInfo : 'For informationer omkring licens, se venligst vores hjemmeside (på engelsk):',
- copy : 'Copyright © $1. Alle rettigheder forbeholdes.'
- },
-
- maximize : 'Maximér',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anker',
- flash : 'Flashanimation',
- div : 'Sideskift',
- unknown : 'Ukendt objekt'
- },
-
- resize : 'Træk for at skalere',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Danish language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'da' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Tryk ALT 0 for hjælp',
+
+ browseServer: 'Gennemse...',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Upload',
+ uploadSubmit: 'Upload',
+ image: 'Indsæt billede',
+ flash: 'Indsæt Flash',
+ form: 'Indsæt formular',
+ checkbox: 'Indsæt afkrydsningsfelt',
+ radio: 'Indsæt alternativknap',
+ textField: 'Indsæt tekstfelt',
+ textarea: 'Indsæt tekstboks',
+ hiddenField: 'Indsæt skjult felt',
+ button: 'Indsæt knap',
+ select: 'Indsæt liste',
+ imageButton: 'Indsæt billedknap',
+ notSet: '<intet valgt>',
+ id: 'Id',
+ name: 'Navn',
+ langDir: 'Tekstretning',
+ langDirLtr: 'Fra venstre mod højre (LTR)',
+ langDirRtl: 'Fra højre mod venstre (RTL)',
+ langCode: 'Sprogkode',
+ longDescr: 'Udvidet beskrivelse',
+ cssClass: 'Typografiark (CSS)',
+ advisoryTitle: 'Titel',
+ cssStyle: 'Typografi (CSS)',
+ ok: 'OK',
+ cancel: 'Annullér',
+ close: 'Luk',
+ preview: 'Forhåndsvisning',
+ resize: 'Træk for at skalere',
+ generalTab: 'Generelt',
+ advancedTab: 'Avanceret',
+ validateNumberFailed: 'Værdien er ikke et tal.',
+ confirmNewPage: 'Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?',
+ confirmCancel: 'Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?',
+ options: 'Vis muligheder',
+ target: 'MÃ¥l',
+ targetNew: 'Nyt vindue (_blank)',
+ targetTop: 'Ãverste vindue (_top)',
+ targetSelf: 'Samme vindue (_self)',
+ targetParent: 'Samme vindue (_parent)',
+ langDirLTR: 'Venstre til højre (LTR)',
+ langDirRTL: 'Højre til venstre (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheetklasser',
+ width: 'Bredde',
+ height: 'Højde',
+ align: 'Justering',
+ alignLeft: 'Venstre',
+ alignRight: 'Højre',
+ alignCenter: 'Centreret',
+ alignTop: 'Ãverst',
+ alignMiddle: 'Centreret',
+ alignBottom: 'Nederst',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Højde skal være et tal.',
+ invalidWidth: 'Bredde skal være et tal.',
+ invalidCssLength: 'Værdien specificeret for "%1" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px, %, in, cm, mm, em, ex, pt, eller pc).',
+ invalidHtmlLength: 'Værdien specificeret for "%1" feltet skal være et positivt nummer med eller uden en CSS måleenhed (px eller %).',
+ invalidInlineStyle: 'Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som "name:value", separeret af semikoloner',
+ cssLengthTooltip: 'Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ikke tilgængelig</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/de.js b/devel/third-party/ckeditor/lang/de.js
index 2d09650..efdb542 100644
--- a/devel/third-party/ckeditor/lang/de.js
+++ b/devel/third-party/ckeditor/lang/de.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * German language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['de'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Quellcode',
- newPage : 'Neue Seite',
- save : 'Speichern',
- preview : 'Vorschau',
- cut : 'Ausschneiden',
- copy : 'Kopieren',
- paste : 'Einfügen',
- print : 'Drucken',
- underline : 'Unterstrichen',
- bold : 'Fett',
- italic : 'Kursiv',
- selectAll : 'Alles auswählen',
- removeFormat : 'Formatierungen entfernen',
- strike : 'Durchgestrichen',
- subscript : 'Tiefgestellt',
- superscript : 'Hochgestellt',
- horizontalrule : 'Horizontale Linie einfügen',
- pagebreak : 'Seitenumbruch einfügen',
- unlink : 'Link entfernen',
- undo : 'Rückgängig',
- redo : 'Wiederherstellen',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Server durchsuchen',
- url : 'URL',
- protocol : 'Protokoll',
- upload : 'Upload',
- uploadSubmit : 'Zum Server senden',
- image : 'Bild',
- flash : 'Flash',
- form : 'Formular',
- checkbox : 'Checkbox',
- radio : 'Radiobutton',
- textField : 'Textfeld einzeilig',
- textarea : 'Textfeld mehrzeilig',
- hiddenField : 'verstecktes Feld',
- button : 'Klickbutton',
- select : 'Auswahlfeld',
- imageButton : 'Bildbutton',
- notSet : '<nichts>',
- id : 'ID',
- name : 'Name',
- langDir : 'Schreibrichtung',
- langDirLtr : 'Links nach Rechts (LTR)',
- langDirRtl : 'Rechts nach Links (RTL)',
- langCode : 'Sprachenkürzel',
- longDescr : 'Langform URL',
- cssClass : 'Stylesheet Klasse',
- advisoryTitle : 'Titel Beschreibung',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Abbrechen',
- close : 'SchlieÃen',
- preview : 'Vorschau',
- generalTab : 'Allgemein',
- advancedTab : 'Erweitert',
- validateNumberFailed : 'Dieser Wert ist keine Nummer.',
- confirmNewPage : 'Alle nicht gespeicherten Ãnderungen gehen verlohren. Sind sie sicher die neue Seite zu laden?',
- confirmCancel : 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schlieÃen?',
- options : 'Optionen',
- target : 'Zielseite',
- targetNew : 'Neues Fenster (_blank)',
- targetTop : 'Oberstes Fenster (_top)',
- targetSelf : 'Gleiches Fenster (_self)',
- targetParent : 'Oberes Fenster (_parent)',
- langDirLTR : 'Links nach Rechts (LNR)',
- langDirRTL : 'Rechts nach Links (RNL)',
- styles : 'Style',
- cssClasses : 'Stylesheet Klasse',
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, nicht verfügbar</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Optionen'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Sonderzeichen einfügen/editieren',
- title : 'Sonderzeichen auswählen',
- options : 'Sonderzeichen Optionen'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link einfügen/editieren',
- other : '<andere>',
- menu : 'Link editieren',
- title : 'Link',
- info : 'Link-Info',
- target : 'Zielseite',
- upload : 'Upload',
- advanced : 'Erweitert',
- type : 'Link-Typ',
- toUrl : 'URL',
- toAnchor : 'Anker in dieser Seite',
- toEmail : 'E-Mail',
- targetFrame : '<Frame>',
- targetPopup : '<Pop-up Fenster>',
- targetFrameName : 'Ziel-Fenster-Name',
- targetPopupName : 'Pop-up Fenster-Name',
- popupFeatures : 'Pop-up Fenster-Eigenschaften',
- popupResizable : 'GröÃe änderbar',
- popupStatusBar : 'Statusleiste',
- popupLocationBar: 'Adress-Leiste',
- popupToolbar : 'Werkzeugleiste',
- popupMenuBar : 'Menü-Leiste',
- popupFullScreen : 'Vollbild (IE)',
- popupScrollBars : 'Rollbalken',
- popupDependent : 'Abhängig (Netscape)',
- popupWidth : 'Breite',
- popupLeft : 'Linke Position',
- popupHeight : 'Höhe',
- popupTop : 'Obere Position',
- id : 'Id',
- langDir : 'Schreibrichtung',
- langDirLTR : 'Links nach Rechts (LTR)',
- langDirRTL : 'Rechts nach Links (RTL)',
- acccessKey : 'Zugriffstaste',
- name : 'Name',
- langCode : 'Schreibrichtung',
- tabIndex : 'Tab-Index',
- advisoryTitle : 'Titel Beschreibung',
- advisoryContentType : 'Inhaltstyp',
- cssClasses : 'Stylesheet Klasse',
- charset : 'Ziel-Zeichensatz',
- styles : 'Style',
- selectAnchor : 'Anker auswählen',
- anchorName : 'nach Anker Name',
- anchorId : 'nach Element Id',
- emailAddress : 'E-Mail Addresse',
- emailSubject : 'Betreffzeile',
- emailBody : 'Nachrichtentext',
- noAnchors : '(keine Anker im Dokument vorhanden)',
- noUrl : 'Bitte geben Sie die Link-URL an',
- noEmail : 'Bitte geben Sie e-Mail Adresse an'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Anker einfügen/editieren',
- menu : 'Anker-Eigenschaften',
- title : 'Anker-Eigenschaften',
- name : 'Anker Name',
- errorName : 'Bitte geben Sie den Namen des Ankers ein'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Nummerierte Listen-Eigenschaften',
- bulletedTitle : 'Listen-Eigenschaften',
- type : 'Typ',
- start : 'Start',
- validateStartNumber :'List Startnummer muss eine ganze Zahl sein.',
- circle : 'Ring',
- disc : 'Kreis',
- square : 'Quadrat',
- none : 'Keine',
- notset : '<nicht gesetzt>',
- armenian : 'Armenisch Nummerierung',
- georgian : 'Georgisch Nummerierung (an, ban, gan, etc.)',
- lowerRoman : 'Klein römisch (i, ii, iii, iv, v, etc.)',
- upperRoman : 'Groà römisch (I, II, III, IV, V, etc.)',
- lowerAlpha : 'Klein alpha (a, b, c, d, e, etc.)',
- upperAlpha : 'Groà alpha (A, B, C, D, E, etc.)',
- lowerGreek : 'Klein griechisch (alpha, beta, gamma, etc.)',
- decimal : 'Dezimal (1, 2, 3, etc.)',
- decimalLeadingZero : 'Dezimal mit führende Null (01, 02, 03, etc.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Suchen und Ersetzen',
- find : 'Suchen',
- replace : 'Ersetzen',
- findWhat : 'Suche nach:',
- replaceWith : 'Ersetze mit:',
- notFoundMsg : 'Der gesuchte Text wurde nicht gefunden.',
- matchCase : 'GroÃ-Kleinschreibung beachten',
- matchWord : 'Nur ganze Worte suchen',
- matchCyclic : 'zyklische suche',
- replaceAll : 'Alle Ersetzen',
- replaceSuccessMsg : '%1 vorkommen ersetzt.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabelle',
- title : 'Tabellen-Eigenschaften',
- menu : 'Tabellen-Eigenschaften',
- deleteTable : 'Tabelle löschen',
- rows : 'Zeile',
- columns : 'Spalte',
- border : 'Rahmen',
- align : 'Ausrichtung',
- alignLeft : 'Links',
- alignCenter : 'Zentriert',
- alignRight : 'Rechts',
- width : 'Breite',
- widthPx : 'Pixel',
- widthPc : '%',
- widthUnit : 'Breite Einheit',
- height : 'Höhe',
- cellSpace : 'Zellenabstand auÃen',
- cellPad : 'Zellenabstand innen',
- caption : 'Ãberschrift',
- summary : 'Inhaltsübersicht',
- headers : 'Headers',
- headersNone : 'Keine',
- headersColumn : 'Erste Spalte',
- headersRow : 'Erste Zeile',
- headersBoth : 'Beide',
- invalidRows : 'Die Anzahl der Zeilen muà gröÃer als 0 sein.',
- invalidCols : 'Die Anzahl der Spalten muà gröÃer als 0 sein..',
- invalidBorder : 'Die Rahmenbreite muà eine Zahl sein.',
- invalidWidth : 'Die Tabellenbreite muss eine Zahl sein.',
- invalidHeight : 'Die Tabellenbreite muà eine Zahl sein.',
- invalidCellSpacing : 'Der Zellenabstand auÃen muà eine Zahl sein.',
- invalidCellPadding : 'Der Zellenabstand innen muà eine Zahl sein.',
-
- cell :
- {
- menu : 'Zelle',
- insertBefore : 'Zelle davor einfügen',
- insertAfter : 'Zelle danach einfügen',
- deleteCell : 'Zelle löschen',
- merge : 'Zellen verbinden',
- mergeRight : 'nach rechts verbinden',
- mergeDown : 'nach unten verbinden',
- splitHorizontal : 'Zelle horizontal teilen',
- splitVertical : 'Zelle vertikal teilen',
- title : 'Zellen Eigenschaften',
- cellType : 'Zellart',
- rowSpan : 'Anzahl Zeilen verbinden',
- colSpan : 'Anzahl Spalten verbinden',
- wordWrap : 'Zeilenumbruch',
- hAlign : 'Horizontale Ausrichtung',
- vAlign : 'Vertikale Ausrichtung',
- alignTop : 'Oben',
- alignMiddle : 'Mitte',
- alignBottom : 'Unten',
- alignBaseline : 'Grundlinie',
- bgColor : 'Hintergrundfarbe',
- borderColor : 'Rahmenfarbe',
- data : 'Daten',
- header : 'Ãberschrift',
- yes : 'Ja',
- no : 'Nein',
- invalidWidth : 'Zellenbreite muà eine Zahl sein.',
- invalidHeight : 'Zellenhöhe muà eine Zahl sein.',
- invalidRowSpan : '"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.',
- invalidColSpan : '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.',
- chooseColor : 'Wählen'
- },
-
- row :
- {
- menu : 'Zeile',
- insertBefore : 'Zeile oberhalb einfügen',
- insertAfter : 'Zeile unterhalb einfügen',
- deleteRow : 'Zeile entfernen'
- },
-
- column :
- {
- menu : 'Spalte',
- insertBefore : 'Spalte links davor einfügen',
- insertAfter : 'Spalte rechts danach einfügen',
- deleteColumn : 'Spalte löschen'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Button-Eigenschaften',
- text : 'Text (Wert)',
- type : 'Typ',
- typeBtn : 'Button',
- typeSbm : 'Absenden',
- typeRst : 'Zurücksetzen'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox-Eigenschaften',
- radioTitle : 'Optionsfeld-Eigenschaften',
- value : 'Wert',
- selected : 'ausgewählt'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Formular-Eigenschaften',
- menu : 'Formular-Eigenschaften',
- action : 'Action',
- method : 'Method',
- encoding : 'Zeichenkodierung'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Auswahlfeld-Eigenschaften',
- selectInfo : 'Info',
- opAvail : 'Mögliche Optionen',
- value : 'Wert',
- size : 'GröÃe',
- lines : 'Linien',
- chkMulti : 'Erlaube Mehrfachauswahl',
- opText : 'Text',
- opValue : 'Wert',
- btnAdd : 'Hinzufügen',
- btnModify : 'Ãndern',
- btnUp : 'Hoch',
- btnDown : 'Runter',
- btnSetValue : 'Setze als Standardwert',
- btnDelete : 'Entfernen'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textfeld (mehrzeilig) Eigenschaften',
- cols : 'Spalten',
- rows : 'Reihen'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Textfeld (einzeilig) Eigenschaften',
- name : 'Name',
- value : 'Wert',
- charWidth : 'Zeichenbreite',
- maxChars : 'Max. Zeichen',
- type : 'Typ',
- typeText : 'Text',
- typePass : 'Passwort'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Verstecktes Feld-Eigenschaften',
- name : 'Name',
- value : 'Wert'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Bild-Eigenschaften',
- titleButton : 'Bildbutton-Eigenschaften',
- menu : 'Bild-Eigenschaften',
- infoTab : 'Bild-Info',
- btnUpload : 'Zum Server senden',
- upload : 'Hochladen',
- alt : 'Alternativer Text',
- width : 'Breite',
- height : 'Höhe',
- lockRatio : 'GröÃenverhältnis beibehalten',
- unlockRatio : 'Ratio Freischalten',
- resetSize : 'GröÃe zurücksetzen',
- border : 'Rahmen',
- hSpace : 'Horizontal-Abstand',
- vSpace : 'Vertikal-Abstand',
- align : 'Ausrichtung',
- alignLeft : 'Links',
- alignRight : 'Rechts',
- alertUrl : 'Bitte geben Sie die Bild-URL an',
- linkTab : 'Link',
- button2Img : 'Möchten Sie den gewählten Bild-Button in ein einfaches Bild umwandeln?',
- img2Button : 'Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?',
- urlMissing : 'Imagequelle URL fehlt.',
- validateWidth : 'Breite muà eine ganze Zahl sein.',
- validateHeight : 'Höhe muà eine ganze Zahl sein.',
- validateBorder : 'Rahmen muà eine ganze Zahl sein.',
- validateHSpace : 'Horizontal-Abstand muà eine ganze Zahl sein.',
- validateVSpace : 'Vertikal-Abstand must be a whole number.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash-Eigenschaften',
- propertiesTab : 'Eigenschaften',
- title : 'Flash-Eigenschaften',
- chkPlay : 'autom. Abspielen',
- chkLoop : 'Endlosschleife',
- chkMenu : 'Flash-Menü aktivieren',
- chkFull : 'Vollbildmodus erlauben',
- scale : 'Skalierung',
- scaleAll : 'Alles anzeigen',
- scaleNoBorder : 'ohne Rand',
- scaleFit : 'Passgenau',
- access : 'Skript Zugang',
- accessAlways : 'Immer',
- accessSameDomain: 'Gleiche Domain',
- accessNever : 'Nie',
- align : 'Ausrichtung',
- alignLeft : 'Links',
- alignAbsBottom : 'Abs Unten',
- alignAbsMiddle : 'Abs Mitte',
- alignBaseline : 'Baseline',
- alignBottom : 'Unten',
- alignMiddle : 'Mitte',
- alignRight : 'Rechts',
- alignTextTop : 'Text Oben',
- alignTop : 'Oben',
- quality : 'Qualität',
- qualityBest : 'Beste',
- qualityHigh : 'Hoch',
- qualityAutoHigh : 'Auto Hoch',
- qualityMedium : 'Medium',
- qualityAutoLow : 'Auto Niedrig',
- qualityLow : 'Niedrig',
- windowModeWindow: 'Fenster',
- windowModeOpaque: 'Deckend',
- windowModeTransparent : 'Transparent',
- windowMode : 'Fenster Modus',
- flashvars : 'Variablen für Flash',
- bgcolor : 'Hintergrundfarbe',
- width : 'Breite',
- height : 'Höhe',
- hSpace : 'Horizontal-Abstand',
- vSpace : 'Vertikal-Abstand',
- validateSrc : 'Bitte geben Sie die Link-URL an',
- validateWidth : 'Breite muss eine Zahl sein.',
- validateHeight : 'Höhe muss eine Zahl sein.',
- validateHSpace : 'HSpace muss eine Zahl sein.',
- validateVSpace : 'VSpace muss eine Zahl sein.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Rechtschreibprüfung',
- title : 'Rechtschreibprüfung',
- notAvailable : 'Entschuldigung, aber dieser Dienst steht im Moment nicht zur verfügung.',
- errorLoading : 'Fehler beim laden des Dienstanbieters: %s.',
- notInDic : 'Nicht im Wörterbuch',
- changeTo : 'Ãndern in',
- btnIgnore : 'Ignorieren',
- btnIgnoreAll : 'Alle Ignorieren',
- btnReplace : 'Ersetzen',
- btnReplaceAll : 'Alle Ersetzen',
- btnUndo : 'Rückgängig',
- noSuggestions : ' - keine Vorschläge - ',
- progress : 'Rechtschreibprüfung läuft...',
- noMispell : 'Rechtschreibprüfung abgeschlossen - keine Fehler gefunden',
- noChanges : 'Rechtschreibprüfung abgeschlossen - keine Worte geändert',
- oneChange : 'Rechtschreibprüfung abgeschlossen - ein Wort geändert',
- manyChanges : 'Rechtschreibprüfung abgeschlossen - %1 Wörter geändert',
- ieSpellDownload : 'Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Smiley auswählen',
- options : 'Smiley Optionen'
- },
-
- elementsPath :
- {
- eleLabel : 'Elements Pfad',
- eleTitle : '%1 Element'
- },
-
- numberedlist : 'Nummerierte Liste',
- bulletedlist : 'Liste',
- indent : 'Einzug erhöhen',
- outdent : 'Einzug verringern',
-
- justify :
- {
- left : 'Linksbündig',
- center : 'Zentriert',
- right : 'Rechtsbündig',
- block : 'Blocksatz'
- },
-
- blockquote : 'Zitatblock',
-
- clipboard :
- {
- title : 'Einfügen',
- cutError : 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',
- copyError : 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',
- pasteMsg : 'Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.',
- securityMsg : 'Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.',
- pasteArea : 'Einfügebereich'
- },
-
- pastefromword :
- {
- confirmCleanup : 'Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?',
- toolbar : 'aus MS-Word einfügen',
- title : 'aus MS-Word einfügen',
- error : 'Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen'
- },
-
- pasteText :
- {
- button : 'Als Text einfügen',
- title : 'Als Text einfügen'
- },
-
- templates :
- {
- button : 'Vorlagen',
- title : 'Vorlagen',
- options : 'Vorlagen Optionen',
- insertOption : 'Aktuellen Inhalt ersetzen',
- selectPromptMsg : 'Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):',
- emptyListMsg : '(keine Vorlagen definiert)'
- },
-
- showBlocks : 'Blöcke anzeigen',
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Formatierungenstil',
- panelTitle1 : 'Block Stilart',
- panelTitle2 : 'Inline Stilart',
- panelTitle3 : 'Objekt Stilart'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatiert',
- tag_address : 'Addresse',
- tag_h1 : 'Ãberschrift 1',
- tag_h2 : 'Ãberschrift 2',
- tag_h3 : 'Ãberschrift 3',
- tag_h4 : 'Ãberschrift 4',
- tag_h5 : 'Ãberschrift 5',
- tag_h6 : 'Ãberschrift 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Div Container erzeugen',
- toolbar : 'Div Container erzeugen',
- cssClassInputLabel : 'Stylesheet Klasse',
- styleSelectLabel : 'Stil',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Sprache Code',
- inlineStyleInputLabel : 'Inline Style',
- advisoryTitleInputLabel : 'Beratungs Titel',
- langDirLabel : 'Sprache Richtung',
- langDirLTRLabel : 'Links nach Rechs (LTR)',
- langDirRTLLabel : 'Rechs nach Links (RTL)',
- edit : 'Div Bearbeiten',
- remove : 'Div Entfernen'
- },
-
- font :
- {
- label : 'Schriftart',
- voiceLabel : 'Schriftart',
- panelTitle : 'Schriftart'
- },
-
- fontSize :
- {
- label : 'GröÃe',
- voiceLabel : 'SchrifgröÃe',
- panelTitle : 'GröÃe'
- },
-
- colorButton :
- {
- textColorTitle : 'Textfarbe',
- bgColorTitle : 'Hintergrundfarbe',
- panelTitle : 'Farben',
- auto : 'Automatisch',
- more : 'Weitere Farben...'
- },
-
- colors :
- {
- '000' : 'Schwarz',
- '800000' : 'Kastanienbraun',
- '8B4513' : 'Braun',
- '2F4F4F' : 'Dunkles Schiefergrau',
- '008080' : 'Blaugrün',
- '000080' : 'Navy',
- '4B0082' : 'Indigo',
- '696969' : 'Dunkelgrau',
- 'B22222' : 'Ziegelrot',
- 'A52A2A' : 'Braun',
- 'DAA520' : 'Goldgelb',
- '006400' : 'Dunkelgrün',
- '40E0D0' : 'Türkis',
- '0000CD' : 'Medium Blau',
- '800080' : 'Lila',
- '808080' : 'Grau',
- 'F00' : 'Rot',
- 'FF8C00' : 'Dunkelorange',
- 'FFD700' : 'Gold',
- '008000' : 'Grün',
- '0FF' : 'Cyan',
- '00F' : 'Blau',
- 'EE82EE' : 'Hellviolett',
- 'A9A9A9' : 'Dunkelgrau',
- 'FFA07A' : 'Helles Lachsrosa',
- 'FFA500' : 'Orange',
- 'FFFF00' : 'Gelb',
- '00FF00' : 'Lime',
- 'AFEEEE' : 'BlaÃ-Türkis',
- 'ADD8E6' : 'Hellblau',
- 'DDA0DD' : 'Pflaumenblau',
- 'D3D3D3' : 'Hellgrau',
- 'FFF0F5' : 'Lavendel',
- 'FAEBD7' : 'Antik WeiÃ',
- 'FFFFE0' : 'Hellgelb',
- 'F0FFF0' : 'Honigtau',
- 'F0FFFF' : 'Azurblau',
- 'F0F8FF' : 'Alice Blau',
- 'E6E6FA' : 'Lavendel',
- 'FFF' : 'WeiÃ'
- },
-
- scayt :
- {
- title : 'Rechtschreibprüfung während der Texteingabe',
- opera_title : 'Nicht von Opera unterstützt',
- enable : 'SCAYT einschalten',
- disable : 'SCAYT ausschalten',
- about : 'Ãber SCAYT',
- toggle : 'SCAYT umschalten',
- options : 'Optionen',
- langs : 'Sprachen',
- moreSuggestions : 'Mehr Vorschläge',
- ignore : 'Ignorieren',
- ignoreAll : 'Alle ignorieren',
- addWord : 'Wort hinzufügen',
- emptyDic : 'Wörterbuchname sollte leer sein.',
-
- optionsTab : 'Optionen',
- allCaps : 'Groà geschriebenen Wörter ignorieren',
- ignoreDomainNames : 'Domain-Namen ignorieren',
- mixedCase : 'Wörter mit gemischte Setzkasten ignorieren',
- mixedWithDigits : 'Wörter mit Zahlen ignorieren',
-
- languagesTab : 'Sprachen',
-
- dictionariesTab : 'Wörterbücher',
- dic_field_name : 'Wörterbuchname',
- dic_create : 'Erzeugen',
- dic_restore : 'Wiederherstellen',
- dic_delete : 'Löschen',
- dic_rename : 'Umbenennen',
- dic_info : 'Anfangs wird das Benutzerwörterbuch in einem Cookie gespeichert. Allerdings sind Cookies in der GröÃe begrenzt. Wenn das Benutzerwörterbuch bis zu einem Punkt wächst, wo es nicht mehr in einem Cookie gespeichert werden kann, wird das Benutzerwörterbuch auf dem Server gespeichert. Um Ihr persönliches Wörterbuch auf dem Server zu speichern, müssen Sie einen Namen für das Wörterbuch angeben. Falls Sie schon ein gespeicherte Wörterbuch haben, geben Sie bitte dessen Namen ein und klicken Sie auf die Schaltfläche Wiederherstellen.',
-
- aboutTab : 'Ãber'
- },
-
- about :
- {
- title : 'Ãber CKEditor',
- dlgTitle : 'Ãber CKEditor',
- moreInfo : 'Für Informationen Liztenzbestimmungen besuchen sie bitte unsere Webseite:',
- copy : 'Copyright © $1. Alle Rechte vorbehalten.'
- },
-
- maximize : 'Maximieren',
- minimize : 'Minimieren',
-
- fakeobjects :
- {
- anchor : 'Anker',
- flash : 'Flash Animation',
- div : 'Seitenumbruch',
- unknown : 'Unbekanntes Objekt'
- },
-
- resize : 'Zum VergröÃern ziehen',
-
- colordialog :
- {
- title : 'Farbe wählen',
- options : 'Farbeoptionen',
- highlight : 'Hervorheben',
- selected : 'Ausgewählte Farbe',
- clear : 'Entfernen'
- },
-
- toolbarCollapse : 'Symbolleiste einklappen',
- toolbarExpand : 'Symbolleiste ausklappen',
-
- bidi :
- {
- ltr : 'Leserichtung von Links nach Rechts',
- rtl : 'Leserichtung von Rechts nach Links'
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * German language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'de' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'WYSIWYG-Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Drücken Sie ALT 0 für Hilfe',
+
+ browseServer: 'Server durchsuchen',
+ url: 'URL',
+ protocol: 'Protokoll',
+ upload: 'Hochladen',
+ uploadSubmit: 'Zum Server senden',
+ image: 'Bild',
+ flash: 'Flash',
+ form: 'Formular',
+ checkbox: 'Checkbox',
+ radio: 'Radiobutton',
+ textField: 'Textfeld einzeilig',
+ textarea: 'Textfeld mehrzeilig',
+ hiddenField: 'Verstecktes Feld',
+ button: 'Klickbutton',
+ select: 'Auswahlfeld',
+ imageButton: 'Bildbutton',
+ notSet: '<nichts>',
+ id: 'ID',
+ name: 'Name',
+ langDir: 'Schreibrichtung',
+ langDirLtr: 'Links nach Rechts (LTR)',
+ langDirRtl: 'Rechts nach Links (RTL)',
+ langCode: 'Sprachenkürzel',
+ longDescr: 'Langform URL',
+ cssClass: 'Stylesheet Klasse',
+ advisoryTitle: 'Titel Beschreibung',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Abbrechen',
+ close: 'SchlieÃen',
+ preview: 'Vorschau',
+ resize: 'Zum VergröÃern ziehen',
+ generalTab: 'Allgemein',
+ advancedTab: 'Erweitert',
+ validateNumberFailed: 'Dieser Wert ist keine Nummer.',
+ confirmNewPage: 'Alle nicht gespeicherten Ãnderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?',
+ confirmCancel: 'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schlieÃen?',
+ options: 'Optionen',
+ target: 'Zielseite',
+ targetNew: 'Neues Fenster (_blank)',
+ targetTop: 'Oberstes Fenster (_top)',
+ targetSelf: 'Gleiches Fenster (_self)',
+ targetParent: 'Oberes Fenster (_parent)',
+ langDirLTR: 'Links nach Rechts (LNR)',
+ langDirRTL: 'Rechts nach Links (RNL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Klasse',
+ width: 'Breite',
+ height: 'Höhe',
+ align: 'Ausrichtung',
+ alignLeft: 'Links',
+ alignRight: 'Rechts',
+ alignCenter: 'Zentriert',
+ alignTop: 'Oben',
+ alignMiddle: 'Mitte',
+ alignBottom: 'Unten',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Höhe muss eine Zahl sein.',
+ invalidWidth: 'Breite muss eine Zahl sein.',
+ invalidCssLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
+ invalidHtmlLength: 'Wert spezifiziert für "%1" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).',
+ invalidInlineStyle: 'Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format "Name : Wert" getrennt mit Semikolons.',
+ cssLengthTooltip: 'Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nicht verfügbar</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/el.js b/devel/third-party/ckeditor/lang/el.js
index c889b3a..e988428 100644
--- a/devel/third-party/ckeditor/lang/el.js
+++ b/devel/third-party/ckeditor/lang/el.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Greek language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['el'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'HTML κÏδικαÏ',
- newPage : 'ÎÎα Σελίδα',
- save : 'ÎÏοθήκεÏ
Ïη',
- preview : 'Î ÏοεÏιÏκÏÏιÏη',
- cut : 'ÎÏοκοÏή',
- copy : 'ÎνÏιγÏαÏή',
- paste : 'ÎÏικÏλληÏη',
- print : 'ÎκÏÏÏÏÏη',
- underline : 'Î¥ÏογÏάμμιÏη',
- bold : 'ÎνÏονα',
- italic : 'Πλάγια',
- selectAll : 'ÎÏιλογή ÏλÏν',
- removeFormat : 'ÎÏαίÏεÏη ÎοÏÏοÏοίηÏηÏ',
- strike : 'ÎιαγÏάμμιÏη',
- subscript : 'ÎείκÏηÏ',
- superscript : 'ÎκθÎÏηÏ',
- horizontalrule : 'ÎιÏαγÏγή ÎÏιζÏνÏÎ¹Î±Ï ÎÏαμμήÏ',
- pagebreak : 'ÎιÏαγÏγή ÏÎλοÏ
Ï ÏελίδαÏ',
- unlink : 'ÎÏαίÏεÏη ΣÏ
νδÎÏμοÏ
(Link)',
- undo : 'ÎναίÏεÏη',
- redo : 'ÎÏαναÏοÏά',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ÎξεÏεÏνηÏη διακομιÏÏή',
- url : 'URL',
- protocol : 'Î ÏοÏÏκολο',
- upload : 'ÎÏοÏÏολή',
- uploadSubmit : 'ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή',
- image : 'ÎικÏνα',
- flash : 'ÎιÏαγÏγή Flash',
- form : 'ΦÏÏμα',
- checkbox : 'ÎοÏ
Ïί εÏιλογήÏ',
- radio : 'ÎοÏ
μÏί Radio',
- textField : 'Πεδίο κειμÎνοÏ
',
- textarea : 'ΠεÏιοÏή κειμÎνοÏ
',
- hiddenField : 'ÎÏÏ
ÏÏ Ïεδίο',
- button : 'ÎοÏ
μÏί',
- select : 'Πεδίο εÏιλογήÏ',
- imageButton : 'ÎοÏ
μÏί εικÏναÏ',
- notSet : '<ÏÏÏίÏ>',
- id : 'Id',
- name : 'Îνομα',
- langDir : 'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',
- langDirLtr : 'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',
- langDirRtl : 'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',
- langCode : 'ÎÏδικÏÏ ÎλÏÏÏαÏ',
- longDescr : 'ÎναλÏ
Ïική ÏεÏιγÏαÏή URL',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'ΣÏ
μβοÏ
λεÏ
ÏικÏÏ ÏίÏλοÏ',
- cssStyle : 'ΣÏÏλ',
- ok : 'OK',
- cancel : 'ÎκÏÏÏÏη',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Îια ÏÏοÏÏÏημÎνοÏ
Ï',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ÎιÏαγÏγή ÎÎ¹Î´Î¹ÎºÎ¿Ï Î£Ï
μβÏλοÏ
',
- title : 'ÎÏιλÎξÏε Îνα ÎÎ¹Î´Î¹ÎºÏ Î£Ïμβολο',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'ÎιÏαγÏγή/ÎεÏαβολή ΣÏ
νδÎÏμοÏ
(Link)',
- other : '<άλλοÏ>',
- menu : 'ÎεÏαβολή ΣÏ
νδÎÏμοÏ
(Link)',
- title : 'ΣÏνδεÏÎ¼Î¿Ï (Link)',
- info : 'Link',
- target : 'ΠαÏάθÏ
Ïο ΣÏÏÏÎ¿Ï (Target)',
- upload : 'ÎÏοÏÏολή',
- advanced : 'Îια ÏÏοÏÏÏημÎνοÏ
Ï',
- type : 'ΤÏÏÎ¿Ï ÏÏ
νδÎÏμοÏ
(Link)',
- toUrl : 'URL', // MISSING
- toAnchor : 'ÎγκÏ
Ïα Ïε αÏ
Ïή Ïη Ïελίδα',
- toEmail : 'E-Mail',
- targetFrame : '<ÏλαίÏιο>',
- targetPopup : '<ÏαÏάθÏ
Ïο popup>',
- targetFrameName : 'Îνομα ÏλαιÏίοÏ
ÏÏÏÏοÏ
',
- targetPopupName : 'Îνομα Popup Window',
- popupFeatures : 'ÎÏιλογÎÏ Popup Window',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'ÎÏάÏα Status',
- popupLocationBar: 'ÎÏάÏα ΤοÏοθεÏίαÏ',
- popupToolbar : 'ÎÏάÏα ÎÏγαλείÏν',
- popupMenuBar : 'ÎÏάÏα Menu',
- popupFullScreen : 'ÎλÏκληÏη η ÎθÏνη (IE)',
- popupScrollBars : 'ÎÏάÏÎµÏ ÎÏλιÏηÏ',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'ΠλάÏοÏ',
- popupLeft : 'ΤοÏοθεÏία ÎÏιÏÏεÏÎ®Ï ÎκÏηÏ',
- popupHeight : 'ÎÏοÏ',
- popupTop : 'ΤοÏοθεÏία Î Î¬Î½Ï ÎκÏηÏ',
- id : 'Id', // MISSING
- langDir : 'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',
- langDirLTR : 'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',
- langDirRTL : 'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',
- acccessKey : 'ΣÏ
νÏÏμεÏ
Ïη (Access Key)',
- name : 'Îνομα',
- langCode : 'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',
- tabIndex : 'Tab Index',
- advisoryTitle : 'ΣÏ
μβοÏ
λεÏ
ÏικÏÏ ÏίÏλοÏ',
- advisoryContentType : 'ΣÏ
μβοÏ
λεÏ
ÏικÏÏ ÏίÏÎ»Î¿Ï ÏεÏιεÏομÎνοÏ
',
- cssClasses : 'Stylesheet Classes',
- charset : 'Linked Resource Charset',
- styles : 'ΣÏÏλ',
- selectAnchor : 'ÎÏιλÎξÏε μια άγκÏ
Ïα',
- anchorName : 'ÎάÏει ÏοÏ
ÎνÏμαÏÎ¿Ï (Name) ÏÎ·Ï Î¬Î³ÎºÏ
ÏαÏ',
- anchorId : 'ÎάÏει ÏοÏ
Element Id',
- emailAddress : 'ÎιεÏθÏ
νÏη ÎλεκÏÏÎ¿Î½Î¹ÎºÎ¿Ï Î¤Î±ÏÏ
δÏομείοÏ
',
- emailSubject : 'ÎÎμα ÎηνÏμαÏοÏ',
- emailBody : 'Îείμενο ÎηνÏμαÏοÏ',
- noAnchors : '(Îεν Ï
ÏάÏÏοÏ
ν άγκÏ
ÏÎµÏ ÏÏο κείμενο)',
- noUrl : 'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)',
- noEmail : 'ÎιÏάγεÏε Ïην διεÏθÏ
νÏη ηλεκÏÏÎ¿Î½Î¹ÎºÎ¿Ï ÏαÏÏ
δÏομείοÏ
'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'ÎιÏαγÏγή/εÏεξεÏγαÏία Anchor',
- menu : 'ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ',
- title : 'ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ',
- name : 'Îνομα άγκÏ
ÏαÏ',
- errorName : 'ΠαÏακαλοÏμε ειÏάγεÏε Ïνομα άγκÏ
ÏαÏ'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'ÎναζήÏηÏη',
- replace : 'ÎνÏικαÏάÏÏαÏη',
- findWhat : 'ÎναζήÏηÏη:',
- replaceWith : 'ÎνÏικαÏάÏÏαÏη με:',
- notFoundMsg : 'Το κείμενο δεν βÏÎθηκε.',
- matchCase : 'ÎλεγÏÎ¿Ï ÏεζÏν/κεÏαλαίÏν',
- matchWord : 'ÎÏÏεÏη ÏλήÏοÏ
Ï Î»ÎξηÏ',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'ÎνÏικαÏάÏÏαÏη ÎλÏν',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'ΠίνακαÏ',
- title : 'ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±',
- menu : 'ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±',
- deleteTable : 'ÎιαγÏαÏή Ïίνακα',
- rows : 'ÎÏαμμÎÏ',
- columns : 'ÎολÏνεÏ',
- border : 'ÎÎÎ³ÎµÎ¸Î¿Ï Î ÎµÏιθÏÏίοÏ
',
- align : 'ΣÏοίÏιÏη',
- alignLeft : 'ÎÏιÏÏεÏά',
- alignCenter : 'ÎÎνÏÏο',
- alignRight : 'Îεξιά',
- width : 'ΠλάÏοÏ',
- widthPx : 'pixels',
- widthPc : '%',
- widthUnit : 'width unit', // MISSING
- height : 'ÎÏοÏ',
- cellSpace : 'ÎÏÏÏÏαÏη κελιÏν',
- cellPad : 'ÎÎμιÏμα κελιÏν',
- caption : 'Î¥ÏÎÏÏιÏλοÏ',
- summary : 'ΠεÏίληÏη',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Îελί',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'ÎιαγÏαÏή ÎελιÏν',
- merge : 'ÎνοÏοίηÏη ÎελιÏν',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'ΣειÏά',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'ÎιαγÏαÏή ÎÏαμμÏν'
- },
-
- column :
- {
- menu : 'ΣÏήλη',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'ÎιαγÏαÏή ÎολÏνÏν'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏιοÏ',
- text : 'Îείμενο (Τιμή)',
- type : 'ΤÏÏοÏ',
- typeBtn : 'ÎοÏ
μÏί',
- typeSbm : 'ÎαÏαÏÏÏηÏη',
- typeRst : 'ÎÏαναÏοÏά'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏÎ¹Î¿Ï ÎµÏιλογήÏ',
- radioTitle : 'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏÎ¹Î¿Ï radio',
- value : 'Τιμή',
- selected : 'ÎÏιλεγμÎνο'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÏÏÏμαÏ',
- menu : 'ÎδιÏÏηÏÎµÏ ÏÏÏμαÏ',
- action : 'ÎÏάÏη',
- method : 'ÎάθοδοÏ',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÏεδίοÏ
εÏιλογήÏ',
- selectInfo : 'ΠληÏοÏοÏίεÏ',
- opAvail : 'ÎιαθÎÏÎ¹Î¼ÎµÏ ÎµÏιλογÎÏ',
- value : 'Τιμή',
- size : 'ÎÎγεθοÏ',
- lines : 'γÏαμμÎÏ',
- chkMulti : 'ΠολλαÏλÎÏ ÎµÏιλογÎÏ',
- opText : 'Îείμενο',
- opValue : 'Τιμή',
- btnAdd : 'Î ÏοÏθήκη',
- btnModify : 'Îλλαγή',
- btnUp : 'ΠάνÏ',
- btnDown : 'ÎάÏÏ',
- btnSetValue : 'Î ÏοεÏιλεγμÎνη εÏιλογή',
- btnDelete : 'ÎιαγÏαÏή'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÏεÏιοÏÎ®Ï ÎºÎµÎ¹Î¼ÎνοÏ
',
- cols : 'ΣÏήλεÏ',
- rows : 'ΣειÏÎÏ'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÏεδίοÏ
κειμÎνοÏ
',
- name : 'Îνομα',
- value : 'Τιμή',
- charWidth : 'ÎÎ®ÎºÎ¿Ï ÏαÏακÏήÏÏν',
- maxChars : 'ÎÎγιÏÏοι ÏαÏακÏήÏεÏ',
- type : 'ΤÏÏοÏ',
- typeText : 'Îείμενο',
- typePass : 'ÎÏδικÏÏ'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÎºÏÏ
ÏÎ¿Ï ÏεδίοÏ
',
- name : 'Îνομα',
- value : 'Τιμή'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ÎδιÏÏηÏÎµÏ ÎικÏναÏ',
- titleButton : 'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏÎ¹Î¿Ï ÎµÎ¹ÎºÏναÏ',
- menu : 'ÎδιÏÏηÏÎµÏ ÎικÏναÏ',
- infoTab : 'ΠληÏοÏοÏÎ¯ÎµÏ ÎικÏναÏ',
- btnUpload : 'ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή',
- upload : 'ÎÏοÏÏολή',
- alt : 'ÎναλλακÏÎ¹ÎºÏ Îείμενο (ALT)',
- width : 'ΠλάÏοÏ',
- height : 'ÎÏοÏ',
- lockRatio : 'ÎλείδÏμα ÎναλογίαÏ',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'ÎÏαναÏοÏά ÎÏÏÎ¹ÎºÎ¿Ï ÎεγÎθοÏ
Ï',
- border : 'ΠεÏιθÏÏιο',
- hSpace : 'ÎÏιζÏνÏÎ¹Î¿Ï Î§ÏÏÎ¿Ï (HSpace)',
- vSpace : 'ÎάθεÏÎ¿Ï Î§ÏÏÎ¿Ï (VSpace)',
- align : 'ÎÏ
θÏ
γÏάμμιÏη (Align)',
- alignLeft : 'ÎÏιÏÏεÏά',
- alignRight : 'Îεξιά (Right)',
- alertUrl : 'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏÎ·Ï ÎµÎ¹ÎºÏναÏ',
- linkTab : 'ΣÏνδεÏμοÏ',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ÎδιÏÏηÏÎµÏ Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'ÎδιÏÏηÏÎµÏ flash',
- chkPlay : 'ÎÏ
ÏÏμαÏη ÎναÏξη',
- chkLoop : 'ÎÏανάληÏη',
- chkMenu : 'ÎνεÏγοÏοίηÏη Flash Menu',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Îλίμακα',
- scaleAll : 'ÎμÏάνιÏη ÏλÏν',
- scaleNoBorder : 'ΧÏÏÎ¯Ï ÏÏια',
- scaleFit : 'ÎκÏÎ¹Î²Î®Ï ÎµÏαÏμογή',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'ÎÏ
θÏ
γÏάμμιÏη (Align)',
- alignLeft : 'ÎÏιÏÏεÏά',
- alignAbsBottom : 'ÎÏÏλÏ
Ïα ÎάÏÏ (Abs Bottom)',
- alignAbsMiddle : 'ÎÏÏλÏ
Ïα ÏÏη ÎÎÏη (Abs Middle)',
- alignBaseline : 'ÎÏαμμή ÎάÏÎ·Ï (Baseline)',
- alignBottom : 'ÎάÏÏ (Bottom)',
- alignMiddle : 'ÎÎÏη (Middle)',
- alignRight : 'Îεξιά (Right)',
- alignTextTop : 'ÎοÏÏ
Ïή ÎειμÎνοÏ
(Text Top)',
- alignTop : 'Î Î¬Î½Ï (Top)',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'ΧÏÏμα Î¥ÏοβάθÏοÏ
',
- width : 'ΠλάÏοÏ',
- height : 'ÎÏοÏ',
- hSpace : 'ÎÏιζÏνÏÎ¹Î¿Ï Î§ÏÏÎ¿Ï (HSpace)',
- vSpace : 'ÎάθεÏÎ¿Ï Î§ÏÏÎ¿Ï (VSpace)',
- validateSrc : 'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ÎÏθογÏαÏικÏÏ ÎλεγÏοÏ',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Îεν Ï
ÏάÏÏει ÏÏο λεξικÏ',
- changeTo : 'Îλλαγή Ïε',
- btnIgnore : 'ÎγνÏηÏη',
- btnIgnoreAll : 'ÎγνÏηÏη ÏλÏν',
- btnReplace : 'ÎνÏικαÏάÏÏαÏη',
- btnReplaceAll : 'ÎνÏικαÏάÏÏαÏη ÏλÏν',
- btnUndo : 'ÎναίÏεÏη',
- noSuggestions : '- Îεν Ï
ÏάÏÏοÏ
ν ÏÏοÏάÏÎµÎ¹Ï -',
- progress : 'ÎÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Ïε εξÎλιξη...',
- noMispell : 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν βÏÎθηκαν λάθη',
- noChanges : 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν άλλαξαν λÎξειÏ',
- oneChange : 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îια λÎξη άλλαξε',
- manyChanges : 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: %1 λÎÎ¾ÎµÎ¹Ï Î¬Î»Î»Î±Î¾Î±Î½',
- ieSpellDownload : 'Îεν Ï
ÏάÏÏει εγκαÏεÏÏημÎÎ½Î¿Ï Î¿ÏθογÏάÏοÏ. ÎÎλεÏε να Ïον καÏεβάÏεÏε ÏÏÏα;'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'ÎÏιλÎξÏε Îνα Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ÎίÏÏα με ÎÏιθμοÏÏ',
- bulletedlist : 'ÎίÏÏα με Bullets',
- indent : 'ÎÏξηÏη ÎÏοÏήÏ',
- outdent : 'ÎείÏÏη ÎÏοÏήÏ',
-
- justify :
- {
- left : 'ΣÏοίÏιÏη ÎÏιÏÏεÏά',
- center : 'ΣÏοίÏιÏη ÏÏο ÎÎνÏÏο',
- right : 'ΣÏοίÏιÏη Îεξιά',
- block : 'ΠλήÏÎ·Ï Î£ÏοίÏιÏη (Block)'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'ÎÏικÏλληÏη',
- cutError : 'Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία αÏοκοÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+X).',
- copyError : 'Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία ανÏιγÏαÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+C).',
- pasteMsg : 'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏικολήÏÏε ÏÏο ακÏλοÏ
θο κοÏ
Ïί ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïο ÏληκÏÏολÏγιο (<STRONG>Ctrl/Cmd+V</STRONG>) και ÏαÏήÏÏε <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'ÎÏικÏλληÏη αÏÏ Ïο Word',
- title : 'ÎÏικÏλληÏη αÏÏ Ïο Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο',
- title : 'ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο'
- },
-
- templates :
- {
- button : 'Î ÏÏÏÏ
Ïα',
- title : 'Î ÏÏÏÏ
Ïα ÏεÏιεÏομÎνοÏ
',
- options : 'Template Options', // MISSING
- insertOption : 'ÎνÏικαÏάÏÏαÏη Ï
ÏάÏÏονÏÏν ÏεÏιεÏομÎνÏν',
- selectPromptMsg : 'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏιλÎξÏε ÏÏÏÏÏ
Ïο για ειÏαγÏγή ÏÏο ÏÏÏγÏαμμα<br>(Ïα Ï
ÏάÏÏονÏα ÏεÏιεÏÏμενα θα ÏαθοÏν):',
- emptyListMsg : '(Îεν ÎÏοÏ
ν καθοÏιÏÏεί ÏÏÏÏÏ
Ïα)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'ΣÏÏ
λ',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ÎοÏÏή ÎÏαμμαÏοÏειÏάÏ',
- panelTitle : 'ÎοÏÏή ÎÏαμμαÏοÏειÏάÏ',
-
- tag_p : 'ÎανονικÏ',
- tag_pre : 'ÎοÏÏοÏοιημÎνο',
- tag_address : 'ÎιεÏθÏ
νÏη',
- tag_h1 : 'ÎÏικεÏαλίδα 1',
- tag_h2 : 'ÎÏικεÏαλίδα 2',
- tag_h3 : 'ÎÏικεÏαλίδα 3',
- tag_h4 : 'ÎÏικεÏαλίδα 4',
- tag_h5 : 'ÎÏικεÏαλίδα 5',
- tag_h6 : 'ÎÏικεÏαλίδα 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ÎÏαμμαÏοÏειÏά',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ÎÏαμμαÏοÏειÏά'
- },
-
- fontSize :
- {
- label : 'ÎÎγεθοÏ',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'ÎÎγεθοÏ'
- },
-
- colorButton :
- {
- textColorTitle : 'ΧÏÏμα ÎÏαμμάÏÏν',
- bgColorTitle : 'ΧÏÏμα Î¥ÏοβάθÏοÏ
',
- panelTitle : 'Colors', // MISSING
- auto : 'ÎÏ
ÏÏμαÏο',
- more : 'ΠεÏιÏÏÏÏεÏα ÏÏÏμαÏα...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Greek language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'el' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'ÎÏεξεÏγαÏÏÎ®Ï Î Î»Î¿ÏÏιοÏ
ÎειμÎνοÏ
',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'ΠαÏήÏÏε Ïο ALT 0 για βοήθεια',
+
+ browseServer: 'ÎξεÏεÏνηÏη διακομιÏÏή',
+ url: 'URL',
+ protocol: 'Î ÏÏÏÏκολλο',
+ upload: 'ÎνÎβαÏμα',
+ uploadSubmit: 'ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή',
+ image: 'ÎικÏνα',
+ flash: 'ÎιÏαγÏγή Flash',
+ form: 'ΦÏÏμα',
+ checkbox: 'ÎοÏ
Ïί εÏιλογήÏ',
+ radio: 'ÎοÏ
μÏί εÏιλογήÏ',
+ textField: 'Πεδίο κειμÎνοÏ
',
+ textarea: 'ΠεÏιοÏή κειμÎνοÏ
',
+ hiddenField: 'ÎÏÏ
ÏÏ Ïεδίο',
+ button: 'ÎοÏ
μÏί',
+ select: 'Πεδίο εÏιλογήÏ',
+ imageButton: 'ÎοÏ
μÏί εικÏναÏ',
+ notSet: '<δεν ÎÏει ÏÏ
θμιÏÏεί>',
+ id: 'Id',
+ name: 'Îνομα',
+ langDir: 'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',
+ langDirLtr: 'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',
+ langDirRtl: 'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',
+ langCode: 'ÎÏδικÏÏ ÎλÏÏÏαÏ',
+ longDescr: 'ÎναλÏ
Ïική ÏεÏιγÏαÏή URL',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'ÎνδεικÏικÏÏ ÏίÏλοÏ',
+ cssStyle: 'ÎοÏÏή κειμÎνοÏ
',
+ ok: 'OK',
+ cancel: 'ÎκÏÏÏÏη',
+ close: 'ÎλείÏιμο',
+ preview: 'Î ÏοεÏιÏκÏÏηÏη',
+ resize: 'ΣÏÏÏιμο για αλλαγή μεγÎθοÏ
Ï',
+ generalTab: 'Îενικά',
+ advancedTab: 'Îια ÏÏοÏÏÏημÎνοÏ
Ï',
+ validateNumberFailed: 'ÎÏ
Ïή η Ïιμή δεν είναι αÏιθμÏÏ.',
+ confirmNewPage: 'Îι ÏÏÎ¿Î¹ÎµÏ Î±Î»Î»Î±Î³ÎÏ ÏÏο ÏεÏιεÏÏμενο θα ÏαθοÏν. ÎίÏαÏÏε ÏίγοÏ
Ïοι ÏÏι θÎλεÏε να ÏοÏÏÏÏεÏε μια νÎα Ïελίδα;',
+ confirmCancel: 'ÎεÏικÎÏ ÎµÏιλογÎÏ ÎÏοÏ
ν αλλάξει. ÎίÏαÏÏε ÏίγοÏ
Ïοι ÏÏι θÎλεÏε να κλείÏεÏε Ïο ÏαÏάθÏ
Ïο διαλÏγοÏ
;',
+ options: 'ÎÏιλογÎÏ',
+ target: 'Î ÏοοÏιÏμÏÏ',
+ targetNew: 'ÎÎο ΠαÏάθÏ
Ïο (_blank)',
+ targetTop: 'ÎÏÏική ΠεÏιοÏή (_top)',
+ targetSelf: 'Îδια ΠεÏιοÏή (_self)',
+ targetParent: 'ÎονεÏÎºÏ Î Î±ÏάθÏ
Ïο (_parent)',
+ langDirLTR: 'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',
+ langDirRTL: 'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',
+ styles: 'ÎοÏÏή',
+ cssClasses: 'Stylesheet Classes',
+ width: 'ΠλάÏοÏ',
+ height: 'ÎÏοÏ',
+ align: 'ΣÏοίÏιÏη',
+ alignLeft: 'ÎÏιÏÏεÏά',
+ alignRight: 'Îεξιά',
+ alignCenter: 'ÎÎνÏÏο',
+ alignTop: 'ΠάνÏ',
+ alignMiddle: 'ÎÎÏη',
+ alignBottom: 'ÎάÏÏ',
+ invalidValue : 'Îη ÎγκÏ
Ïη Ïιμή.',
+ invalidHeight: 'Το ÏÏÎ¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ invalidWidth: 'Το ÏλάÏÎ¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ invalidCssLength: 'Î Ïιμή ÏοÏ
οÏίζεÏαι για Ïο Ïεδίο "%1" ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ Î¼Îµ ή ÏÏÏÎ¯Ï Î¼Î¹Î± ÎγκÏ
Ïη μονάδα μÎÏÏηÏÎ·Ï CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
+ invalidHtmlLength: 'Î Ïιμή ÏοÏ
οÏίζεÏαι για Ïο Ïεδίο "%1" ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ Î¼Îµ ή ÏÏÏÎ¯Ï Î¼Î¹Î± ÎγκÏ
Ïη μονάδα μÎÏÏηÏÎ·Ï HTML (px or %).',
+ invalidInlineStyle: 'Î Ïιμή για Ïο εν ÏειÏά ÏÏÏ
λ ÏÏÎÏει να ÏεÏιÎÏει Îνα ή ÏεÏιÏÏÏÏεÏα ζεÏγη με Ïην μοÏÏή "Ïνομα: Ïιμή" διαÏÏÏιÏμÎνα με ÎÎ»Î»Î·Î½Î¹ÎºÏ ÎµÏÏÏημαÏικÏ.',
+ cssLengthTooltip: 'ÎιÏάγεÏαι μια Ïιμή Ïε pixel ή Îναν αÏÎ¹Î¸Î¼Ï Î¼Î±Î¶Î¯ με μια ÎγκÏ
Ïη μονάδα μÎÏÏηÏÎ·Ï CSS (px, %, in, cm, mm, em, ex, pt, ή pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, δεν είναι διαθÎÏιμο</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/en-au.js b/devel/third-party/ckeditor/lang/en-au.js
index 9ef341a..622b537 100644
--- a/devel/third-party/ckeditor/lang/en-au.js
+++ b/devel/third-party/ckeditor/lang/en-au.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * English (Australia) language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['en-au'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'New Page',
- save : 'Save',
- preview : 'Preview',
- cut : 'Cut',
- copy : 'Copy',
- paste : 'Paste',
- print : 'Print',
- underline : 'Underline',
- bold : 'Bold',
- italic : 'Italic',
- selectAll : 'Select All',
- removeFormat : 'Remove Format',
- strike : 'Strike Through',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Insert Horizontal Line',
- pagebreak : 'Insert Page Break for Printing',
- unlink : 'Unlink',
- undo : 'Undo',
- redo : 'Redo',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Browse Server',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Upload',
- uploadSubmit : 'Send it to the Server',
- image : 'Image',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'Checkbox',
- radio : 'Radio Button',
- textField : 'Text Field',
- textarea : 'Textarea',
- hiddenField : 'Hidden Field',
- button : 'Button',
- select : 'Selection Field',
- imageButton : 'Image Button',
- notSet : '<not set>',
- id : 'Id',
- name : 'Name',
- langDir : 'Language Direction',
- langDirLtr : 'Left to Right (LTR)',
- langDirRtl : 'Right to Left (RTL)',
- langCode : 'Language Code',
- longDescr : 'Long Description URL',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'Advisory Title',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Cancel',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General',
- advancedTab : 'Advanced',
- validateNumberFailed : 'This value is not a number.',
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insert Special Character',
- title : 'Select Special Character',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link',
- other : '<other>',
- menu : 'Edit Link',
- title : 'Link',
- info : 'Link Info',
- target : 'Target',
- upload : 'Upload',
- advanced : 'Advanced',
- type : 'Link Type',
- toUrl : 'URL', // MISSING
- toAnchor : 'Link to anchor in the text',
- toEmail : 'E-mail',
- targetFrame : '<frame>',
- targetPopup : '<popup window>',
- targetFrameName : 'Target Frame Name',
- targetPopupName : 'Popup Window Name',
- popupFeatures : 'Popup Window Features',
- popupResizable : 'Resizable',
- popupStatusBar : 'Status Bar',
- popupLocationBar: 'Location Bar',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'Menu Bar',
- popupFullScreen : 'Full Screen (IE)',
- popupScrollBars : 'Scroll Bars',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'Width',
- popupLeft : 'Left Position',
- popupHeight : 'Height',
- popupTop : 'Top Position',
- id : 'Id',
- langDir : 'Language Direction',
- langDirLTR : 'Left to Right (LTR)',
- langDirRTL : 'Right to Left (RTL)',
- acccessKey : 'Access Key',
- name : 'Name',
- langCode : 'Language Code',
- tabIndex : 'Tab Index',
- advisoryTitle : 'Advisory Title',
- advisoryContentType : 'Advisory Content Type',
- cssClasses : 'Stylesheet Classes',
- charset : 'Linked Resource Charset',
- styles : 'Style',
- selectAnchor : 'Select an Anchor',
- anchorName : 'By Anchor Name',
- anchorId : 'By Element Id',
- emailAddress : 'E-Mail Address',
- emailSubject : 'Message Subject',
- emailBody : 'Message Body',
- noAnchors : '(No anchors available in the document)',
- noUrl : 'Please type the link URL',
- noEmail : 'Please type the e-mail address'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Anchor',
- menu : 'Edit Anchor',
- title : 'Anchor Properties',
- name : 'Anchor Name',
- errorName : 'Please type the anchor name'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace',
- find : 'Find',
- replace : 'Replace',
- findWhat : 'Find what:',
- replaceWith : 'Replace with:',
- notFoundMsg : 'The specified text was not found.',
- matchCase : 'Match case',
- matchWord : 'Match whole word',
- matchCyclic : 'Match cyclic',
- replaceAll : 'Replace All',
- replaceSuccessMsg : '%1 occurrence(s) replaced.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Table',
- title : 'Table Properties',
- menu : 'Table Properties',
- deleteTable : 'Delete Table',
- rows : 'Rows',
- columns : 'Columns',
- border : 'Border size',
- align : 'Alignment',
- alignLeft : 'Left',
- alignCenter : 'Centre',
- alignRight : 'Right',
- width : 'Width',
- widthPx : 'pixels',
- widthPc : 'percent',
- widthUnit : 'width unit', // MISSING
- height : 'Height',
- cellSpace : 'Cell spacing',
- cellPad : 'Cell padding',
- caption : 'Caption',
- summary : 'Summary',
- headers : 'Headers',
- headersNone : 'None',
- headersColumn : 'First column',
- headersRow : 'First Row',
- headersBoth : 'Both',
- invalidRows : 'Number of rows must be a number greater than 0.',
- invalidCols : 'Number of columns must be a number greater than 0.',
- invalidBorder : 'Border size must be a number.',
- invalidWidth : 'Table width must be a number.',
- invalidHeight : 'Table height must be a number.',
- invalidCellSpacing : 'Cell spacing must be a number.',
- invalidCellPadding : 'Cell padding must be a number.',
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Insert Cell Before',
- insertAfter : 'Insert Cell After',
- deleteCell : 'Delete Cells',
- merge : 'Merge Cells',
- mergeRight : 'Merge Right',
- mergeDown : 'Merge Down',
- splitHorizontal : 'Split Cell Horizontally',
- splitVertical : 'Split Cell Vertically',
- title : 'Cell Properties',
- cellType : 'Cell Type',
- rowSpan : 'Rows Span',
- colSpan : 'Columns Span',
- wordWrap : 'Word Wrap',
- hAlign : 'Horizontal Alignment',
- vAlign : 'Vertical Alignment',
- alignTop : 'Top',
- alignMiddle : 'Middle',
- alignBottom : 'Bottom',
- alignBaseline : 'Baseline',
- bgColor : 'Background Color',
- borderColor : 'Border Color',
- data : 'Data',
- header : 'Header',
- yes : 'Yes',
- no : 'No',
- invalidWidth : 'Cell width must be a number.',
- invalidHeight : 'Cell height must be a number.',
- invalidRowSpan : 'Rows span must be a whole number.',
- invalidColSpan : 'Columns span must be a whole number.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row',
- insertBefore : 'Insert Row Before',
- insertAfter : 'Insert Row After',
- deleteRow : 'Delete Rows'
- },
-
- column :
- {
- menu : 'Column',
- insertBefore : 'Insert Column Before',
- insertAfter : 'Insert Column After',
- deleteColumn : 'Delete Columns'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Button Properties',
- text : 'Text (Value)',
- type : 'Type',
- typeBtn : 'Button',
- typeSbm : 'Submit',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox Properties',
- radioTitle : 'Radio Button Properties',
- value : 'Value',
- selected : 'Selected'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form Properties',
- menu : 'Form Properties',
- action : 'Action',
- method : 'Method',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Selection Field Properties',
- selectInfo : 'Select Info',
- opAvail : 'Available Options',
- value : 'Value',
- size : 'Size',
- lines : 'lines',
- chkMulti : 'Allow multiple selections',
- opText : 'Text',
- opValue : 'Value',
- btnAdd : 'Add',
- btnModify : 'Modify',
- btnUp : 'Up',
- btnDown : 'Down',
- btnSetValue : 'Set as selected value',
- btnDelete : 'Delete'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textarea Properties',
- cols : 'Columns',
- rows : 'Rows'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Text Field Properties',
- name : 'Name',
- value : 'Value',
- charWidth : 'Character Width',
- maxChars : 'Maximum Characters',
- type : 'Type',
- typeText : 'Text',
- typePass : 'Password'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Hidden Field Properties',
- name : 'Name',
- value : 'Value'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Image Properties',
- titleButton : 'Image Button Properties',
- menu : 'Image Properties',
- infoTab : 'Image Info',
- btnUpload : 'Send it to the Server',
- upload : 'Upload',
- alt : 'Alternative Text',
- width : 'Width',
- height : 'Height',
- lockRatio : 'Lock Ratio',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Reset Size',
- border : 'Border',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Align',
- alignLeft : 'Left',
- alignRight : 'Right',
- alertUrl : 'Please type the image URL',
- linkTab : 'Link',
- button2Img : 'Do you want to transform the selected image button on a simple image?',
- img2Button : 'Do you want to transform the selected image on a image button?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties',
- propertiesTab : 'Properties',
- title : 'Flash Properties',
- chkPlay : 'Auto Play',
- chkLoop : 'Loop',
- chkMenu : 'Enable Flash Menu',
- chkFull : 'Allow Fullscreen',
- scale : 'Scale',
- scaleAll : 'Show all',
- scaleNoBorder : 'No Border',
- scaleFit : 'Exact Fit',
- access : 'Script Access',
- accessAlways : 'Always',
- accessSameDomain: 'Same domain',
- accessNever : 'Never',
- align : 'Align',
- alignLeft : 'Left',
- alignAbsBottom : 'Abs Bottom',
- alignAbsMiddle : 'Abs Middle',
- alignBaseline : 'Baseline',
- alignBottom : 'Bottom',
- alignMiddle : 'Middle',
- alignRight : 'Right',
- alignTextTop : 'Text Top',
- alignTop : 'Top',
- quality : 'Quality',
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode',
- flashvars : 'Variables for Flash',
- bgcolor : 'Background colour',
- width : 'Width',
- height : 'Height',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'URL must not be empty.',
- validateWidth : 'Width must be a number.',
- validateHeight : 'Height must be a number.',
- validateHSpace : 'HSpace must be a number.',
- validateVSpace : 'VSpace must be a number.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Check Spelling',
- title : 'Spell Check',
- notAvailable : 'Sorry, but service is unavailable now.',
- errorLoading : 'Error loading application service host: %s.',
- notInDic : 'Not in dictionary',
- changeTo : 'Change to',
- btnIgnore : 'Ignore',
- btnIgnoreAll : 'Ignore All',
- btnReplace : 'Replace',
- btnReplaceAll : 'Replace All',
- btnUndo : 'Undo',
- noSuggestions : '- No suggestions -',
- progress : 'Spell check in progress...',
- noMispell : 'Spell check complete: No misspellings found',
- noChanges : 'Spell check complete: No words changed',
- oneChange : 'Spell check complete: One word changed',
- manyChanges : 'Spell check complete: %1 words changed',
- ieSpellDownload : 'Spell checker not installed. Do you want to download it now?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Insert a Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Insert/Remove Numbered List',
- bulletedlist : 'Insert/Remove Bulleted List',
- indent : 'Increase Indent',
- outdent : 'Decrease Indent',
-
- justify :
- {
- left : 'Left Justify',
- center : 'Centre Justify',
- right : 'Right Justify',
- block : 'Block Justify'
- },
-
- blockquote : 'Block Quote',
-
- clipboard :
- {
- title : 'Paste',
- cutError : 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
- copyError : 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Paste from Word',
- title : 'Paste from Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Paste as plain text',
- title : 'Paste as Plain Text'
- },
-
- templates :
- {
- button : 'Templates',
- title : 'Content Templates',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents',
- selectPromptMsg : 'Please select the template to open in the editor',
- emptyListMsg : '(No templates defined)'
- },
-
- showBlocks : 'Show Blocks',
-
- stylesCombo :
- {
- label : 'Styles',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles',
- panelTitle2 : 'Inline Styles',
- panelTitle3 : 'Object Styles'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Paragraph Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font Name'
- },
-
- fontSize :
- {
- label : 'Size',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Font Size'
- },
-
- colorButton :
- {
- textColorTitle : 'Text Colour',
- bgColorTitle : 'Background Colour',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatic',
- more : 'More Colours...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor',
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'Maximize',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * English (Australia) language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'en-au' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Browse Server',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Upload',
+ uploadSubmit: 'Send it to the Server',
+ image: 'Image',
+ flash: 'Flash',
+ form: 'Form',
+ checkbox: 'Checkbox',
+ radio: 'Radio Button',
+ textField: 'Text Field',
+ textarea: 'Textarea',
+ hiddenField: 'Hidden Field',
+ button: 'Button',
+ select: 'Selection Field',
+ imageButton: 'Image Button',
+ notSet: '<not set>',
+ id: 'Id',
+ name: 'Name',
+ langDir: 'Language Direction',
+ langDirLtr: 'Left to Right (LTR)',
+ langDirRtl: 'Right to Left (RTL)',
+ langCode: 'Language Code',
+ longDescr: 'Long Description URL',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'Advisory Title',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Cancel',
+ close: 'Close', // MISSING
+ preview: 'Preview',
+ resize: 'Resize', // MISSING
+ generalTab: 'General',
+ advancedTab: 'Advanced',
+ validateNumberFailed: 'This value is not a number.',
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?',
+ options: 'Options', // MISSING
+ target: 'Target',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Classes',
+ width: 'Width', // MISSING
+ height: 'Height', // MISSING
+ align: 'Align',
+ alignLeft: 'Left', // MISSING
+ alignRight: 'Right', // MISSING
+ alignCenter: 'Centre',
+ alignTop: 'Top', // MISSING
+ alignMiddle: 'Middle', // MISSING
+ alignBottom: 'Bottom', // MISSING
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/en-ca.js b/devel/third-party/ckeditor/lang/en-ca.js
index 40dd11e..305f028 100644
--- a/devel/third-party/ckeditor/lang/en-ca.js
+++ b/devel/third-party/ckeditor/lang/en-ca.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * English (Canadian) language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['en-ca'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'New Page',
- save : 'Save',
- preview : 'Preview',
- cut : 'Cut',
- copy : 'Copy',
- paste : 'Paste',
- print : 'Print',
- underline : 'Underline',
- bold : 'Bold',
- italic : 'Italic',
- selectAll : 'Select All',
- removeFormat : 'Remove Format',
- strike : 'Strike Through',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Insert Horizontal Line',
- pagebreak : 'Insert Page Break for Printing',
- unlink : 'Unlink',
- undo : 'Undo',
- redo : 'Redo',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Browse Server',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Upload',
- uploadSubmit : 'Send it to the Server',
- image : 'Image',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'Checkbox',
- radio : 'Radio Button',
- textField : 'Text Field',
- textarea : 'Textarea',
- hiddenField : 'Hidden Field',
- button : 'Button',
- select : 'Selection Field',
- imageButton : 'Image Button',
- notSet : '<not set>',
- id : 'Id',
- name : 'Name',
- langDir : 'Language Direction',
- langDirLtr : 'Left to Right (LTR)',
- langDirRtl : 'Right to Left (RTL)',
- langCode : 'Language Code',
- longDescr : 'Long Description URL',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'Advisory Title',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Cancel',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General',
- advancedTab : 'Advanced',
- validateNumberFailed : 'This value is not a number.',
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insert Special Character',
- title : 'Select Special Character',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link',
- other : '<other>',
- menu : 'Edit Link',
- title : 'Link',
- info : 'Link Info',
- target : 'Target',
- upload : 'Upload',
- advanced : 'Advanced',
- type : 'Link Type',
- toUrl : 'URL', // MISSING
- toAnchor : 'Link to anchor in the text',
- toEmail : 'E-mail',
- targetFrame : '<frame>',
- targetPopup : '<popup window>',
- targetFrameName : 'Target Frame Name',
- targetPopupName : 'Popup Window Name',
- popupFeatures : 'Popup Window Features',
- popupResizable : 'Resizable',
- popupStatusBar : 'Status Bar',
- popupLocationBar: 'Location Bar',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'Menu Bar',
- popupFullScreen : 'Full Screen (IE)',
- popupScrollBars : 'Scroll Bars',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'Width',
- popupLeft : 'Left Position',
- popupHeight : 'Height',
- popupTop : 'Top Position',
- id : 'Id',
- langDir : 'Language Direction',
- langDirLTR : 'Left to Right (LTR)',
- langDirRTL : 'Right to Left (RTL)',
- acccessKey : 'Access Key',
- name : 'Name',
- langCode : 'Language Code',
- tabIndex : 'Tab Index',
- advisoryTitle : 'Advisory Title',
- advisoryContentType : 'Advisory Content Type',
- cssClasses : 'Stylesheet Classes',
- charset : 'Linked Resource Charset',
- styles : 'Style',
- selectAnchor : 'Select an Anchor',
- anchorName : 'By Anchor Name',
- anchorId : 'By Element Id',
- emailAddress : 'E-Mail Address',
- emailSubject : 'Message Subject',
- emailBody : 'Message Body',
- noAnchors : '(No anchors available in the document)',
- noUrl : 'Please type the link URL',
- noEmail : 'Please type the e-mail address'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Anchor',
- menu : 'Edit Anchor',
- title : 'Anchor Properties',
- name : 'Anchor Name',
- errorName : 'Please type the anchor name'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace',
- find : 'Find',
- replace : 'Replace',
- findWhat : 'Find what:',
- replaceWith : 'Replace with:',
- notFoundMsg : 'The specified text was not found.',
- matchCase : 'Match case',
- matchWord : 'Match whole word',
- matchCyclic : 'Match cyclic',
- replaceAll : 'Replace All',
- replaceSuccessMsg : '%1 occurrence(s) replaced.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Table',
- title : 'Table Properties',
- menu : 'Table Properties',
- deleteTable : 'Delete Table',
- rows : 'Rows',
- columns : 'Columns',
- border : 'Border size',
- align : 'Alignment',
- alignLeft : 'Left',
- alignCenter : 'Centre',
- alignRight : 'Right',
- width : 'Width',
- widthPx : 'pixels',
- widthPc : 'percent',
- widthUnit : 'width unit', // MISSING
- height : 'Height',
- cellSpace : 'Cell spacing',
- cellPad : 'Cell padding',
- caption : 'Caption',
- summary : 'Summary',
- headers : 'Headers',
- headersNone : 'None',
- headersColumn : 'First column',
- headersRow : 'First Row',
- headersBoth : 'Both',
- invalidRows : 'Number of rows must be a number greater than 0.',
- invalidCols : 'Number of columns must be a number greater than 0.',
- invalidBorder : 'Border size must be a number.',
- invalidWidth : 'Table width must be a number.',
- invalidHeight : 'Table height must be a number.',
- invalidCellSpacing : 'Cell spacing must be a number.',
- invalidCellPadding : 'Cell padding must be a number.',
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Insert Cell Before',
- insertAfter : 'Insert Cell After',
- deleteCell : 'Delete Cells',
- merge : 'Merge Cells',
- mergeRight : 'Merge Right',
- mergeDown : 'Merge Down',
- splitHorizontal : 'Split Cell Horizontally',
- splitVertical : 'Split Cell Vertically',
- title : 'Cell Properties',
- cellType : 'Cell Type',
- rowSpan : 'Rows Span',
- colSpan : 'Columns Span',
- wordWrap : 'Word Wrap',
- hAlign : 'Horizontal Alignment',
- vAlign : 'Vertical Alignment',
- alignTop : 'Top',
- alignMiddle : 'Middle',
- alignBottom : 'Bottom',
- alignBaseline : 'Baseline',
- bgColor : 'Background Color',
- borderColor : 'Border Color',
- data : 'Data',
- header : 'Header',
- yes : 'Yes',
- no : 'No',
- invalidWidth : 'Cell width must be a number.',
- invalidHeight : 'Cell height must be a number.',
- invalidRowSpan : 'Rows span must be a whole number.',
- invalidColSpan : 'Columns span must be a whole number.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row',
- insertBefore : 'Insert Row Before',
- insertAfter : 'Insert Row After',
- deleteRow : 'Delete Rows'
- },
-
- column :
- {
- menu : 'Column',
- insertBefore : 'Insert Column Before',
- insertAfter : 'Insert Column After',
- deleteColumn : 'Delete Columns'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Button Properties',
- text : 'Text (Value)',
- type : 'Type',
- typeBtn : 'Button',
- typeSbm : 'Submit',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox Properties',
- radioTitle : 'Radio Button Properties',
- value : 'Value',
- selected : 'Selected'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form Properties',
- menu : 'Form Properties',
- action : 'Action',
- method : 'Method',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Selection Field Properties',
- selectInfo : 'Select Info',
- opAvail : 'Available Options',
- value : 'Value',
- size : 'Size',
- lines : 'lines',
- chkMulti : 'Allow multiple selections',
- opText : 'Text',
- opValue : 'Value',
- btnAdd : 'Add',
- btnModify : 'Modify',
- btnUp : 'Up',
- btnDown : 'Down',
- btnSetValue : 'Set as selected value',
- btnDelete : 'Delete'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textarea Properties',
- cols : 'Columns',
- rows : 'Rows'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Text Field Properties',
- name : 'Name',
- value : 'Value',
- charWidth : 'Character Width',
- maxChars : 'Maximum Characters',
- type : 'Type',
- typeText : 'Text',
- typePass : 'Password'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Hidden Field Properties',
- name : 'Name',
- value : 'Value'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Image Properties',
- titleButton : 'Image Button Properties',
- menu : 'Image Properties',
- infoTab : 'Image Info',
- btnUpload : 'Send it to the Server',
- upload : 'Upload',
- alt : 'Alternative Text',
- width : 'Width',
- height : 'Height',
- lockRatio : 'Lock Ratio',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Reset Size',
- border : 'Border',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Align',
- alignLeft : 'Left',
- alignRight : 'Right',
- alertUrl : 'Please type the image URL',
- linkTab : 'Link',
- button2Img : 'Do you want to transform the selected image button on a simple image?',
- img2Button : 'Do you want to transform the selected image on a image button?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties',
- propertiesTab : 'Properties',
- title : 'Flash Properties',
- chkPlay : 'Auto Play',
- chkLoop : 'Loop',
- chkMenu : 'Enable Flash Menu',
- chkFull : 'Allow Fullscreen',
- scale : 'Scale',
- scaleAll : 'Show all',
- scaleNoBorder : 'No Border',
- scaleFit : 'Exact Fit',
- access : 'Script Access',
- accessAlways : 'Always',
- accessSameDomain: 'Same domain',
- accessNever : 'Never',
- align : 'Align',
- alignLeft : 'Left',
- alignAbsBottom : 'Abs Bottom',
- alignAbsMiddle : 'Abs Middle',
- alignBaseline : 'Baseline',
- alignBottom : 'Bottom',
- alignMiddle : 'Middle',
- alignRight : 'Right',
- alignTextTop : 'Text Top',
- alignTop : 'Top',
- quality : 'Quality',
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode',
- flashvars : 'Variables for Flash',
- bgcolor : 'Background colour',
- width : 'Width',
- height : 'Height',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'URL must not be empty.',
- validateWidth : 'Width must be a number.',
- validateHeight : 'Height must be a number.',
- validateHSpace : 'HSpace must be a number.',
- validateVSpace : 'VSpace must be a number.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Check Spelling',
- title : 'Spell Check',
- notAvailable : 'Sorry, but service is unavailable now.',
- errorLoading : 'Error loading application service host: %s.',
- notInDic : 'Not in dictionary',
- changeTo : 'Change to',
- btnIgnore : 'Ignore',
- btnIgnoreAll : 'Ignore All',
- btnReplace : 'Replace',
- btnReplaceAll : 'Replace All',
- btnUndo : 'Undo',
- noSuggestions : '- No suggestions -',
- progress : 'Spell check in progress...',
- noMispell : 'Spell check complete: No misspellings found',
- noChanges : 'Spell check complete: No words changed',
- oneChange : 'Spell check complete: One word changed',
- manyChanges : 'Spell check complete: %1 words changed',
- ieSpellDownload : 'Spell checker not installed. Do you want to download it now?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Insert a Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Insert/Remove Numbered List',
- bulletedlist : 'Insert/Remove Bulleted List',
- indent : 'Increase Indent',
- outdent : 'Decrease Indent',
-
- justify :
- {
- left : 'Left Justify',
- center : 'Centre Justify',
- right : 'Right Justify',
- block : 'Block Justify'
- },
-
- blockquote : 'Block Quote',
-
- clipboard :
- {
- title : 'Paste',
- cutError : 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
- copyError : 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Paste from Word',
- title : 'Paste from Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Paste as plain text',
- title : 'Paste as Plain Text'
- },
-
- templates :
- {
- button : 'Templates',
- title : 'Content Templates',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents',
- selectPromptMsg : 'Please select the template to open in the editor',
- emptyListMsg : '(No templates defined)'
- },
-
- showBlocks : 'Show Blocks',
-
- stylesCombo :
- {
- label : 'Styles',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles',
- panelTitle2 : 'Inline Styles',
- panelTitle3 : 'Object Styles'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Paragraph Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font Name'
- },
-
- fontSize :
- {
- label : 'Size',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Font Size'
- },
-
- colorButton :
- {
- textColorTitle : 'Text Colour',
- bgColorTitle : 'Background Colour',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatic',
- more : 'More Colours...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor',
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'Maximize',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * English (Canadian) language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'en-ca' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Browse Server',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Upload',
+ uploadSubmit: 'Send it to the Server',
+ image: 'Image',
+ flash: 'Flash',
+ form: 'Form',
+ checkbox: 'Checkbox',
+ radio: 'Radio Button',
+ textField: 'Text Field',
+ textarea: 'Textarea',
+ hiddenField: 'Hidden Field',
+ button: 'Button',
+ select: 'Selection Field',
+ imageButton: 'Image Button',
+ notSet: '<not set>',
+ id: 'Id',
+ name: 'Name',
+ langDir: 'Language Direction',
+ langDirLtr: 'Left to Right (LTR)',
+ langDirRtl: 'Right to Left (RTL)',
+ langCode: 'Language Code',
+ longDescr: 'Long Description URL',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'Advisory Title',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Cancel',
+ close: 'Close', // MISSING
+ preview: 'Preview',
+ resize: 'Resize', // MISSING
+ generalTab: 'General',
+ advancedTab: 'Advanced',
+ validateNumberFailed: 'This value is not a number.',
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?',
+ options: 'Options', // MISSING
+ target: 'Target',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Classes',
+ width: 'Width', // MISSING
+ height: 'Height', // MISSING
+ align: 'Align',
+ alignLeft: 'Left', // MISSING
+ alignRight: 'Right', // MISSING
+ alignCenter: 'Centre',
+ alignTop: 'Top', // MISSING
+ alignMiddle: 'Middle', // MISSING
+ alignBottom: 'Bottom', // MISSING
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/en-gb.js b/devel/third-party/ckeditor/lang/en-gb.js
index c0779db..e4e180f 100644
--- a/devel/third-party/ckeditor/lang/en-gb.js
+++ b/devel/third-party/ckeditor/lang/en-gb.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * English (United Kingdom) language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['en-gb'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'New Page',
- save : 'Save',
- preview : 'Preview',
- cut : 'Cut',
- copy : 'Copy',
- paste : 'Paste',
- print : 'Print',
- underline : 'Underline',
- bold : 'Bold',
- italic : 'Italic',
- selectAll : 'Select All',
- removeFormat : 'Remove Format',
- strike : 'Strike Through',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Insert Horizontal Line',
- pagebreak : 'Insert Page Break for Printing',
- unlink : 'Unlink',
- undo : 'Undo',
- redo : 'Redo',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Browse Server',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Upload',
- uploadSubmit : 'Send it to the Server',
- image : 'Image',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'Checkbox',
- radio : 'Radio Button',
- textField : 'Text Field',
- textarea : 'Textarea',
- hiddenField : 'Hidden Field',
- button : 'Button',
- select : 'Selection Field',
- imageButton : 'Image Button',
- notSet : '<not set>',
- id : 'Id',
- name : 'Name',
- langDir : 'Language Direction',
- langDirLtr : 'Left to Right (LTR)',
- langDirRtl : 'Right to Left (RTL)',
- langCode : 'Language Code',
- longDescr : 'Long Description URL',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'Advisory Title',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Cancel',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General',
- advancedTab : 'Advanced',
- validateNumberFailed : 'This value is not a number.',
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insert Special Character',
- title : 'Select Special Character',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link',
- other : '<other>',
- menu : 'Edit Link',
- title : 'Link',
- info : 'Link Info',
- target : 'Target',
- upload : 'Upload',
- advanced : 'Advanced',
- type : 'Link Type',
- toUrl : 'URL', // MISSING
- toAnchor : 'Link to anchor in the text',
- toEmail : 'E-mail',
- targetFrame : '<frame>',
- targetPopup : '<popup window>',
- targetFrameName : 'Target Frame Name',
- targetPopupName : 'Popup Window Name',
- popupFeatures : 'Popup Window Features',
- popupResizable : 'Resizable',
- popupStatusBar : 'Status Bar',
- popupLocationBar: 'Location Bar',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'Menu Bar',
- popupFullScreen : 'Full Screen (IE)',
- popupScrollBars : 'Scroll Bars',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'Width',
- popupLeft : 'Left Position',
- popupHeight : 'Height',
- popupTop : 'Top Position',
- id : 'Id',
- langDir : 'Language Direction',
- langDirLTR : 'Left to Right (LTR)',
- langDirRTL : 'Right to Left (RTL)',
- acccessKey : 'Access Key',
- name : 'Name',
- langCode : 'Language Code',
- tabIndex : 'Tab Index',
- advisoryTitle : 'Advisory Title',
- advisoryContentType : 'Advisory Content Type',
- cssClasses : 'Stylesheet Classes',
- charset : 'Linked Resource Charset',
- styles : 'Style',
- selectAnchor : 'Select an Anchor',
- anchorName : 'By Anchor Name',
- anchorId : 'By Element Id',
- emailAddress : 'E-Mail Address',
- emailSubject : 'Message Subject',
- emailBody : 'Message Body',
- noAnchors : '(No anchors available in the document)',
- noUrl : 'Please type the link URL',
- noEmail : 'Please type the e-mail address'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Anchor',
- menu : 'Edit Anchor',
- title : 'Anchor Properties',
- name : 'Anchor Name',
- errorName : 'Please type the anchor name'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace',
- find : 'Find',
- replace : 'Replace',
- findWhat : 'Find what:',
- replaceWith : 'Replace with:',
- notFoundMsg : 'The specified text was not found.',
- matchCase : 'Match case',
- matchWord : 'Match whole word',
- matchCyclic : 'Match cyclic',
- replaceAll : 'Replace All',
- replaceSuccessMsg : '%1 occurrence(s) replaced.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Table',
- title : 'Table Properties',
- menu : 'Table Properties',
- deleteTable : 'Delete Table',
- rows : 'Rows',
- columns : 'Columns',
- border : 'Border size',
- align : 'Alignment',
- alignLeft : 'Left',
- alignCenter : 'Centre',
- alignRight : 'Right',
- width : 'Width',
- widthPx : 'pixels',
- widthPc : 'percent',
- widthUnit : 'width unit', // MISSING
- height : 'Height',
- cellSpace : 'Cell spacing',
- cellPad : 'Cell padding',
- caption : 'Caption',
- summary : 'Summary',
- headers : 'Headers',
- headersNone : 'None',
- headersColumn : 'First column',
- headersRow : 'First Row',
- headersBoth : 'Both',
- invalidRows : 'Number of rows must be a number greater than 0.',
- invalidCols : 'Number of columns must be a number greater than 0.',
- invalidBorder : 'Border size must be a number.',
- invalidWidth : 'Table width must be a number.',
- invalidHeight : 'Table height must be a number.',
- invalidCellSpacing : 'Cell spacing must be a number.',
- invalidCellPadding : 'Cell padding must be a number.',
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Insert Cell Before',
- insertAfter : 'Insert Cell After',
- deleteCell : 'Delete Cells',
- merge : 'Merge Cells',
- mergeRight : 'Merge Right',
- mergeDown : 'Merge Down',
- splitHorizontal : 'Split Cell Horizontally',
- splitVertical : 'Split Cell Vertically',
- title : 'Cell Properties',
- cellType : 'Cell Type',
- rowSpan : 'Rows Span',
- colSpan : 'Columns Span',
- wordWrap : 'Word Wrap',
- hAlign : 'Horizontal Alignment',
- vAlign : 'Vertical Alignment',
- alignTop : 'Top',
- alignMiddle : 'Middle',
- alignBottom : 'Bottom',
- alignBaseline : 'Baseline',
- bgColor : 'Background Color',
- borderColor : 'Border Color',
- data : 'Data',
- header : 'Header',
- yes : 'Yes',
- no : 'No',
- invalidWidth : 'Cell width must be a number.',
- invalidHeight : 'Cell height must be a number.',
- invalidRowSpan : 'Rows span must be a whole number.',
- invalidColSpan : 'Columns span must be a whole number.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row',
- insertBefore : 'Insert Row Before',
- insertAfter : 'Insert Row After',
- deleteRow : 'Delete Rows'
- },
-
- column :
- {
- menu : 'Column',
- insertBefore : 'Insert Column Before',
- insertAfter : 'Insert Column After',
- deleteColumn : 'Delete Columns'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Button Properties',
- text : 'Text (Value)',
- type : 'Type',
- typeBtn : 'Button',
- typeSbm : 'Submit',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox Properties',
- radioTitle : 'Radio Button Properties',
- value : 'Value',
- selected : 'Selected'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form Properties',
- menu : 'Form Properties',
- action : 'Action',
- method : 'Method',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Selection Field Properties',
- selectInfo : 'Select Info',
- opAvail : 'Available Options',
- value : 'Value',
- size : 'Size',
- lines : 'lines',
- chkMulti : 'Allow multiple selections',
- opText : 'Text',
- opValue : 'Value',
- btnAdd : 'Add',
- btnModify : 'Modify',
- btnUp : 'Up',
- btnDown : 'Down',
- btnSetValue : 'Set as selected value',
- btnDelete : 'Delete'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textarea Properties',
- cols : 'Columns',
- rows : 'Rows'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Text Field Properties',
- name : 'Name',
- value : 'Value',
- charWidth : 'Character Width',
- maxChars : 'Maximum Characters',
- type : 'Type',
- typeText : 'Text',
- typePass : 'Password'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Hidden Field Properties',
- name : 'Name',
- value : 'Value'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Image Properties',
- titleButton : 'Image Button Properties',
- menu : 'Image Properties',
- infoTab : 'Image Info',
- btnUpload : 'Send it to the Server',
- upload : 'Upload',
- alt : 'Alternative Text',
- width : 'Width',
- height : 'Height',
- lockRatio : 'Lock Ratio',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Reset Size',
- border : 'Border',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Align',
- alignLeft : 'Left',
- alignRight : 'Right',
- alertUrl : 'Please type the image URL',
- linkTab : 'Link',
- button2Img : 'Do you want to transform the selected image button on a simple image?',
- img2Button : 'Do you want to transform the selected image on a image button?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties',
- propertiesTab : 'Properties',
- title : 'Flash Properties',
- chkPlay : 'Auto Play',
- chkLoop : 'Loop',
- chkMenu : 'Enable Flash Menu',
- chkFull : 'Allow Fullscreen',
- scale : 'Scale',
- scaleAll : 'Show all',
- scaleNoBorder : 'No Border',
- scaleFit : 'Exact Fit',
- access : 'Script Access',
- accessAlways : 'Always',
- accessSameDomain: 'Same domain',
- accessNever : 'Never',
- align : 'Align',
- alignLeft : 'Left',
- alignAbsBottom : 'Abs Bottom',
- alignAbsMiddle : 'Abs Middle',
- alignBaseline : 'Baseline',
- alignBottom : 'Bottom',
- alignMiddle : 'Middle',
- alignRight : 'Right',
- alignTextTop : 'Text Top',
- alignTop : 'Top',
- quality : 'Quality',
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode',
- flashvars : 'Variables for Flash',
- bgcolor : 'Background colour',
- width : 'Width',
- height : 'Height',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'URL must not be empty.',
- validateWidth : 'Width must be a number.',
- validateHeight : 'Height must be a number.',
- validateHSpace : 'HSpace must be a number.',
- validateVSpace : 'VSpace must be a number.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Check Spelling',
- title : 'Spell Check',
- notAvailable : 'Sorry, but service is unavailable now.',
- errorLoading : 'Error loading application service host: %s.',
- notInDic : 'Not in dictionary',
- changeTo : 'Change to',
- btnIgnore : 'Ignore',
- btnIgnoreAll : 'Ignore All',
- btnReplace : 'Replace',
- btnReplaceAll : 'Replace All',
- btnUndo : 'Undo',
- noSuggestions : '- No suggestions -',
- progress : 'Spell check in progress...',
- noMispell : 'Spell check complete: No misspellings found',
- noChanges : 'Spell check complete: No words changed',
- oneChange : 'Spell check complete: One word changed',
- manyChanges : 'Spell check complete: %1 words changed',
- ieSpellDownload : 'Spell checker not installed. Do you want to download it now?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Insert a Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Insert/Remove Numbered List',
- bulletedlist : 'Insert/Remove Bulleted List',
- indent : 'Increase Indent',
- outdent : 'Decrease Indent',
-
- justify :
- {
- left : 'Left Justify',
- center : 'Centre Justify',
- right : 'Right Justify',
- block : 'Block Justify'
- },
-
- blockquote : 'Block Quote',
-
- clipboard :
- {
- title : 'Paste',
- cutError : 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
- copyError : 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
- pasteArea : 'Paste Area'
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Paste from Word',
- title : 'Paste from Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Paste as plain text',
- title : 'Paste as Plain Text'
- },
-
- templates :
- {
- button : 'Templates',
- title : 'Content Templates',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents',
- selectPromptMsg : 'Please select the template to open in the editor',
- emptyListMsg : '(No templates defined)'
- },
-
- showBlocks : 'Show Blocks',
-
- stylesCombo :
- {
- label : 'Styles',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles',
- panelTitle2 : 'Inline Styles',
- panelTitle3 : 'Object Styles'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Paragraph Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font Name'
- },
-
- fontSize :
- {
- label : 'Size',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Font Size'
- },
-
- colorButton :
- {
- textColorTitle : 'Text Colour',
- bgColorTitle : 'Background Colour',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatic',
- more : 'More Colours...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor',
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'Maximize',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * English (United Kingdom) language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'en-gb' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Browse Server',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Upload',
+ uploadSubmit: 'Send it to the Server',
+ image: 'Image',
+ flash: 'Flash',
+ form: 'Form',
+ checkbox: 'Checkbox',
+ radio: 'Radio Button',
+ textField: 'Text Field',
+ textarea: 'Textarea',
+ hiddenField: 'Hidden Field',
+ button: 'Button',
+ select: 'Selection Field',
+ imageButton: 'Image Button',
+ notSet: '<not set>',
+ id: 'Id',
+ name: 'Name',
+ langDir: 'Language Direction',
+ langDirLtr: 'Left to Right (LTR)',
+ langDirRtl: 'Right to Left (RTL)',
+ langCode: 'Language Code',
+ longDescr: 'Long Description URL',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'Advisory Title',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Cancel',
+ close: 'Close',
+ preview: 'Preview',
+ resize: 'Drag to resize',
+ generalTab: 'General',
+ advancedTab: 'Advanced',
+ validateNumberFailed: 'This value is not a number.',
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?',
+ options: 'Options',
+ target: 'Target',
+ targetNew: 'New Window (_blank)',
+ targetTop: 'Topmost Window (_top)',
+ targetSelf: 'Same Window (_self)',
+ targetParent: 'Parent Window (_parent)',
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Classes',
+ width: 'Width',
+ height: 'Height',
+ align: 'Align',
+ alignLeft: 'Left',
+ alignRight: 'Right',
+ alignCenter: 'Centre',
+ alignTop: 'Top',
+ alignMiddle: 'Middle',
+ alignBottom: 'Bottom',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.',
+ invalidWidth: 'Width must be a number.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/en.js b/devel/third-party/ckeditor/lang/en.js
index fee64f9..44a25e5 100644
--- a/devel/third-party/ckeditor/lang/en.js
+++ b/devel/third-party/ckeditor/lang/en.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the English
- * language. This is the base file for all translations.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['en'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.',
-
- // ARIA descriptions.
- toolbar : 'Toolbar',
- editor : 'Rich Text Editor',
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'New Page',
- save : 'Save',
- preview : 'Preview',
- cut : 'Cut',
- copy : 'Copy',
- paste : 'Paste',
- print : 'Print',
- underline : 'Underline',
- bold : 'Bold',
- italic : 'Italic',
- selectAll : 'Select All',
- removeFormat : 'Remove Format',
- strike : 'Strike Through',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Insert Horizontal Line',
- pagebreak : 'Insert Page Break for Printing',
- unlink : 'Unlink',
- undo : 'Undo',
- redo : 'Redo',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Browse Server',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Upload',
- uploadSubmit : 'Send it to the Server',
- image : 'Image',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'Checkbox',
- radio : 'Radio Button',
- textField : 'Text Field',
- textarea : 'Textarea',
- hiddenField : 'Hidden Field',
- button : 'Button',
- select : 'Selection Field',
- imageButton : 'Image Button',
- notSet : '<not set>',
- id : 'Id',
- name : 'Name',
- langDir : 'Language Direction',
- langDirLtr : 'Left to Right (LTR)',
- langDirRtl : 'Right to Left (RTL)',
- langCode : 'Language Code',
- longDescr : 'Long Description URL',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'Advisory Title',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Cancel',
- close : 'Close',
- preview : 'Preview',
- generalTab : 'General',
- advancedTab : 'Advanced',
- validateNumberFailed : 'This value is not a number.',
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?',
- options : 'Options',
- target : 'Target',
- targetNew : 'New Window (_blank)',
- targetTop : 'Topmost Window (_top)',
- targetSelf : 'Same Window (_self)',
- targetParent : 'Parent Window (_parent)',
- langDirLTR : 'Left to Right (LTR)',
- langDirRTL : 'Right to Left (RTL)',
- styles : 'Style',
- cssClasses : 'Stylesheet Classes',
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insert Special Character',
- title : 'Select Special Character',
- options : 'Special Character Options'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link',
- other : '<other>',
- menu : 'Edit Link',
- title : 'Link',
- info : 'Link Info',
- target : 'Target',
- upload : 'Upload',
- advanced : 'Advanced',
- type : 'Link Type',
- toUrl : 'URL',
- toAnchor : 'Link to anchor in the text',
- toEmail : 'E-mail',
- targetFrame : '<frame>',
- targetPopup : '<popup window>',
- targetFrameName : 'Target Frame Name',
- targetPopupName : 'Popup Window Name',
- popupFeatures : 'Popup Window Features',
- popupResizable : 'Resizable',
- popupStatusBar : 'Status Bar',
- popupLocationBar: 'Location Bar',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'Menu Bar',
- popupFullScreen : 'Full Screen (IE)',
- popupScrollBars : 'Scroll Bars',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'Width',
- popupLeft : 'Left Position',
- popupHeight : 'Height',
- popupTop : 'Top Position',
- id : 'Id',
- langDir : 'Language Direction',
- langDirLTR : 'Left to Right (LTR)',
- langDirRTL : 'Right to Left (RTL)',
- acccessKey : 'Access Key',
- name : 'Name',
- langCode : 'Language Code',
- tabIndex : 'Tab Index',
- advisoryTitle : 'Advisory Title',
- advisoryContentType : 'Advisory Content Type',
- cssClasses : 'Stylesheet Classes',
- charset : 'Linked Resource Charset',
- styles : 'Style',
- selectAnchor : 'Select an Anchor',
- anchorName : 'By Anchor Name',
- anchorId : 'By Element Id',
- emailAddress : 'E-Mail Address',
- emailSubject : 'Message Subject',
- emailBody : 'Message Body',
- noAnchors : '(No anchors available in the document)',
- noUrl : 'Please type the link URL',
- noEmail : 'Please type the e-mail address'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Anchor',
- menu : 'Edit Anchor',
- title : 'Anchor Properties',
- name : 'Anchor Name',
- errorName : 'Please type the anchor name'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties',
- bulletedTitle : 'Bulleted List Properties',
- type : 'Type',
- start : 'Start',
- validateStartNumber :'List start number must be a whole number.',
- circle : 'Circle',
- disc : 'Disc',
- square : 'Square',
- none : 'None',
- notset : '<not set>',
- armenian : 'Armenian numbering',
- georgian : 'Georgian numbering (an, ban, gan, etc.)',
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)',
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)',
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)',
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)',
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)',
- decimal : 'Decimal (1, 2, 3, etc.)',
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace',
- find : 'Find',
- replace : 'Replace',
- findWhat : 'Find what:',
- replaceWith : 'Replace with:',
- notFoundMsg : 'The specified text was not found.',
- matchCase : 'Match case',
- matchWord : 'Match whole word',
- matchCyclic : 'Match cyclic',
- replaceAll : 'Replace All',
- replaceSuccessMsg : '%1 occurrence(s) replaced.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Table',
- title : 'Table Properties',
- menu : 'Table Properties',
- deleteTable : 'Delete Table',
- rows : 'Rows',
- columns : 'Columns',
- border : 'Border size',
- align : 'Alignment',
- alignLeft : 'Left',
- alignCenter : 'Center',
- alignRight : 'Right',
- width : 'Width',
- widthPx : 'pixels',
- widthPc : 'percent',
- widthUnit : 'width unit',
- height : 'Height',
- cellSpace : 'Cell spacing',
- cellPad : 'Cell padding',
- caption : 'Caption',
- summary : 'Summary',
- headers : 'Headers',
- headersNone : 'None',
- headersColumn : 'First column',
- headersRow : 'First Row',
- headersBoth : 'Both',
- invalidRows : 'Number of rows must be a number greater than 0.',
- invalidCols : 'Number of columns must be a number greater than 0.',
- invalidBorder : 'Border size must be a number.',
- invalidWidth : 'Table width must be a number.',
- invalidHeight : 'Table height must be a number.',
- invalidCellSpacing : 'Cell spacing must be a number.',
- invalidCellPadding : 'Cell padding must be a number.',
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Insert Cell Before',
- insertAfter : 'Insert Cell After',
- deleteCell : 'Delete Cells',
- merge : 'Merge Cells',
- mergeRight : 'Merge Right',
- mergeDown : 'Merge Down',
- splitHorizontal : 'Split Cell Horizontally',
- splitVertical : 'Split Cell Vertically',
- title : 'Cell Properties',
- cellType : 'Cell Type',
- rowSpan : 'Rows Span',
- colSpan : 'Columns Span',
- wordWrap : 'Word Wrap',
- hAlign : 'Horizontal Alignment',
- vAlign : 'Vertical Alignment',
- alignTop : 'Top',
- alignMiddle : 'Middle',
- alignBottom : 'Bottom',
- alignBaseline : 'Baseline',
- bgColor : 'Background Color',
- borderColor : 'Border Color',
- data : 'Data',
- header : 'Header',
- yes : 'Yes',
- no : 'No',
- invalidWidth : 'Cell width must be a number.',
- invalidHeight : 'Cell height must be a number.',
- invalidRowSpan : 'Rows span must be a whole number.',
- invalidColSpan : 'Columns span must be a whole number.',
- chooseColor : 'Choose'
- },
-
- row :
- {
- menu : 'Row',
- insertBefore : 'Insert Row Before',
- insertAfter : 'Insert Row After',
- deleteRow : 'Delete Rows'
- },
-
- column :
- {
- menu : 'Column',
- insertBefore : 'Insert Column Before',
- insertAfter : 'Insert Column After',
- deleteColumn : 'Delete Columns'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Button Properties',
- text : 'Text (Value)',
- type : 'Type',
- typeBtn : 'Button',
- typeSbm : 'Submit',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox Properties',
- radioTitle : 'Radio Button Properties',
- value : 'Value',
- selected : 'Selected'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form Properties',
- menu : 'Form Properties',
- action : 'Action',
- method : 'Method',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Selection Field Properties',
- selectInfo : 'Select Info',
- opAvail : 'Available Options',
- value : 'Value',
- size : 'Size',
- lines : 'lines',
- chkMulti : 'Allow multiple selections',
- opText : 'Text',
- opValue : 'Value',
- btnAdd : 'Add',
- btnModify : 'Modify',
- btnUp : 'Up',
- btnDown : 'Down',
- btnSetValue : 'Set as selected value',
- btnDelete : 'Delete'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textarea Properties',
- cols : 'Columns',
- rows : 'Rows'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Text Field Properties',
- name : 'Name',
- value : 'Value',
- charWidth : 'Character Width',
- maxChars : 'Maximum Characters',
- type : 'Type',
- typeText : 'Text',
- typePass : 'Password'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Hidden Field Properties',
- name : 'Name',
- value : 'Value'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Image Properties',
- titleButton : 'Image Button Properties',
- menu : 'Image Properties',
- infoTab : 'Image Info',
- btnUpload : 'Send it to the Server',
- upload : 'Upload',
- alt : 'Alternative Text',
- width : 'Width',
- height : 'Height',
- lockRatio : 'Lock Ratio',
- unlockRatio : 'Unlock Ratio',
- resetSize : 'Reset Size',
- border : 'Border',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Align',
- alignLeft : 'Left',
- alignRight : 'Right',
- alertUrl : 'Please type the image URL',
- linkTab : 'Link',
- button2Img : 'Do you want to transform the selected image button on a simple image?',
- img2Button : 'Do you want to transform the selected image on a image button?',
- urlMissing : 'Image source URL is missing.',
- validateWidth : 'Width must be a whole number.',
- validateHeight : 'Height must be a whole number.',
- validateBorder : 'Border must be a whole number.',
- validateHSpace : 'HSpace must be a whole number.',
- validateVSpace : 'VSpace must be a whole number.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties',
- propertiesTab : 'Properties',
- title : 'Flash Properties',
- chkPlay : 'Auto Play',
- chkLoop : 'Loop',
- chkMenu : 'Enable Flash Menu',
- chkFull : 'Allow Fullscreen',
- scale : 'Scale',
- scaleAll : 'Show all',
- scaleNoBorder : 'No Border',
- scaleFit : 'Exact Fit',
- access : 'Script Access',
- accessAlways : 'Always',
- accessSameDomain: 'Same domain',
- accessNever : 'Never',
- align : 'Align',
- alignLeft : 'Left',
- alignAbsBottom : 'Abs Bottom',
- alignAbsMiddle : 'Abs Middle',
- alignBaseline : 'Baseline',
- alignBottom : 'Bottom',
- alignMiddle : 'Middle',
- alignRight : 'Right',
- alignTextTop : 'Text Top',
- alignTop : 'Top',
- quality : 'Quality',
- qualityBest : 'Best',
- qualityHigh : 'High',
- qualityAutoHigh : 'Auto High',
- qualityMedium : 'Medium',
- qualityAutoLow : 'Auto Low',
- qualityLow : 'Low',
- windowModeWindow: 'Window',
- windowModeOpaque: 'Opaque',
- windowModeTransparent : 'Transparent',
- windowMode : 'Window mode',
- flashvars : 'Variables for Flash',
- bgcolor : 'Background color',
- width : 'Width',
- height : 'Height',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'URL must not be empty.',
- validateWidth : 'Width must be a number.',
- validateHeight : 'Height must be a number.',
- validateHSpace : 'HSpace must be a number.',
- validateVSpace : 'VSpace must be a number.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Check Spelling',
- title : 'Spell Check',
- notAvailable : 'Sorry, but service is unavailable now.',
- errorLoading : 'Error loading application service host: %s.',
- notInDic : 'Not in dictionary',
- changeTo : 'Change to',
- btnIgnore : 'Ignore',
- btnIgnoreAll : 'Ignore All',
- btnReplace : 'Replace',
- btnReplaceAll : 'Replace All',
- btnUndo : 'Undo',
- noSuggestions : '- No suggestions -',
- progress : 'Spell check in progress...',
- noMispell : 'Spell check complete: No misspellings found',
- noChanges : 'Spell check complete: No words changed',
- oneChange : 'Spell check complete: One word changed',
- manyChanges : 'Spell check complete: %1 words changed',
- ieSpellDownload : 'Spell checker not installed. Do you want to download it now?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Insert a Smiley',
- options : 'Smiley Options'
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Insert/Remove Numbered List',
- bulletedlist : 'Insert/Remove Bulleted List',
- indent : 'Increase Indent',
- outdent : 'Decrease Indent',
-
- justify :
- {
- left : 'Left Justify',
- center : 'Center Justify',
- right : 'Right Justify',
- block : 'Block Justify'
- },
-
- blockquote : 'Block Quote',
-
- clipboard :
- {
- title : 'Paste',
- cutError : 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
- copyError : 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
- pasteArea : 'Paste Area'
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',
- toolbar : 'Paste from Word',
- title : 'Paste from Word',
- error : 'It was not possible to clean up the pasted data due to an internal error'
- },
-
- pasteText :
- {
- button : 'Paste as plain text',
- title : 'Paste as Plain Text'
- },
-
- templates :
- {
- button : 'Templates',
- title : 'Content Templates',
- options : 'Template Options',
- insertOption : 'Replace actual contents',
- selectPromptMsg : 'Please select the template to open in the editor',
- emptyListMsg : '(No templates defined)'
- },
-
- showBlocks : 'Show Blocks',
-
- stylesCombo :
- {
- label : 'Styles',
- panelTitle : 'Formatting Styles',
- panelTitle1 : 'Block Styles',
- panelTitle2 : 'Inline Styles',
- panelTitle3 : 'Object Styles'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Paragraph Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container',
- toolbar : 'Create Div Container',
- cssClassInputLabel : 'Stylesheet Classes',
- styleSelectLabel : 'Style',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Language Code',
- inlineStyleInputLabel : 'Inline Style',
- advisoryTitleInputLabel : 'Advisory Title',
- langDirLabel : 'Language Direction',
- langDirLTRLabel : 'Left to Right (LTR)',
- langDirRTLLabel : 'Right to Left (RTL)',
- edit : 'Edit Div',
- remove : 'Remove Div'
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font',
- panelTitle : 'Font Name'
- },
-
- fontSize :
- {
- label : 'Size',
- voiceLabel : 'Font Size',
- panelTitle : 'Font Size'
- },
-
- colorButton :
- {
- textColorTitle : 'Text Color',
- bgColorTitle : 'Background Color',
- panelTitle : 'Colors',
- auto : 'Automatic',
- more : 'More Colors...'
- },
-
- colors :
- {
- '000' : 'Black',
- '800000' : 'Maroon',
- '8B4513' : 'Saddle Brown',
- '2F4F4F' : 'Dark Slate Gray',
- '008080' : 'Teal',
- '000080' : 'Navy',
- '4B0082' : 'Indigo',
- '696969' : 'Dark Gray',
- 'B22222' : 'Fire Brick',
- 'A52A2A' : 'Brown',
- 'DAA520' : 'Golden Rod',
- '006400' : 'Dark Green',
- '40E0D0' : 'Turquoise',
- '0000CD' : 'Medium Blue',
- '800080' : 'Purple',
- '808080' : 'Gray',
- 'F00' : 'Red',
- 'FF8C00' : 'Dark Orange',
- 'FFD700' : 'Gold',
- '008000' : 'Green',
- '0FF' : 'Cyan',
- '00F' : 'Blue',
- 'EE82EE' : 'Violet',
- 'A9A9A9' : 'Dim Gray',
- 'FFA07A' : 'Light Salmon',
- 'FFA500' : 'Orange',
- 'FFFF00' : 'Yellow',
- '00FF00' : 'Lime',
- 'AFEEEE' : 'Pale Turquoise',
- 'ADD8E6' : 'Light Blue',
- 'DDA0DD' : 'Plum',
- 'D3D3D3' : 'Light Grey',
- 'FFF0F5' : 'Lavender Blush',
- 'FAEBD7' : 'Antique White',
- 'FFFFE0' : 'Light Yellow',
- 'F0FFF0' : 'Honeydew',
- 'F0FFFF' : 'Azure',
- 'F0F8FF' : 'Alice Blue',
- 'E6E6FA' : 'Lavender',
- 'FFF' : 'White'
- },
-
- scayt :
- {
- title : 'Spell Check As You Type',
- opera_title : 'Not supported by Opera',
- enable : 'Enable SCAYT',
- disable : 'Disable SCAYT',
- about : 'About SCAYT',
- toggle : 'Toggle SCAYT',
- options : 'Options',
- langs : 'Languages',
- moreSuggestions : 'More suggestions',
- ignore : 'Ignore',
- ignoreAll : 'Ignore All',
- addWord : 'Add Word',
- emptyDic : 'Dictionary name should not be empty.',
-
- optionsTab : 'Options',
- allCaps : 'Ignore All-Caps Words',
- ignoreDomainNames : 'Ignore Domain Names',
- mixedCase : 'Ignore Words with Mixed Case',
- mixedWithDigits : 'Ignore Words with Numbers',
-
- languagesTab : 'Languages',
-
- dictionariesTab : 'Dictionaries',
- dic_field_name : 'Dictionary name',
- dic_create : 'Create',
- dic_restore : 'Restore',
- dic_delete : 'Delete',
- dic_rename : 'Rename',
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',
-
- aboutTab : 'About'
- },
-
- about :
- {
- title : 'About CKEditor',
- dlgTitle : 'About CKEditor',
- moreInfo : 'For licensing information please visit our web site:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'Maximize',
- minimize : 'Minimize',
-
- fakeobjects :
- {
- anchor : 'Anchor',
- flash : 'Flash Animation',
- div : 'Page Break',
- unknown : 'Unknown Object'
- },
-
- resize : 'Drag to resize',
-
- colordialog :
- {
- title : 'Select color',
- options : 'Color Options',
- highlight : 'Highlight',
- selected : 'Selected Color',
- clear : 'Clear'
- },
-
- toolbarCollapse : 'Collapse Toolbar',
- toolbarExpand : 'Expand Toolbar',
-
- bidi :
- {
- ltr : 'Text direction from left to right',
- rtl : 'Text direction from right to left'
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the English
+ * language. This is the base file for all translations.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'en' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help',
+
+ browseServer: 'Browse Server',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Upload',
+ uploadSubmit: 'Send it to the Server',
+ image: 'Image',
+ flash: 'Flash',
+ form: 'Form',
+ checkbox: 'Checkbox',
+ radio: 'Radio Button',
+ textField: 'Text Field',
+ textarea: 'Textarea',
+ hiddenField: 'Hidden Field',
+ button: 'Button',
+ select: 'Selection Field',
+ imageButton: 'Image Button',
+ notSet: '<not set>',
+ id: 'Id',
+ name: 'Name',
+ langDir: 'Language Direction',
+ langDirLtr: 'Left to Right (LTR)',
+ langDirRtl: 'Right to Left (RTL)',
+ langCode: 'Language Code',
+ longDescr: 'Long Description URL',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'Advisory Title',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Cancel',
+ close: 'Close',
+ preview: 'Preview',
+ resize: 'Resize',
+ generalTab: 'General',
+ advancedTab: 'Advanced',
+ validateNumberFailed: 'This value is not a number.',
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?',
+ options: 'Options',
+ target: 'Target',
+ targetNew: 'New Window (_blank)',
+ targetTop: 'Topmost Window (_top)',
+ targetSelf: 'Same Window (_self)',
+ targetParent: 'Parent Window (_parent)',
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Classes',
+ width: 'Width',
+ height: 'Height',
+ align: 'Alignment',
+ alignLeft: 'Left',
+ alignRight: 'Right',
+ alignCenter: 'Center',
+ alignTop: 'Top',
+ alignMiddle: 'Middle',
+ alignBottom: 'Bottom',
+ invalidValue : 'Invalid value.',
+ invalidHeight: 'Height must be a number.',
+ invalidWidth: 'Width must be a number.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).',
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.',
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/eo.js b/devel/third-party/ckeditor/lang/eo.js
index d36c7f1..040047c 100644
--- a/devel/third-party/ckeditor/lang/eo.js
+++ b/devel/third-party/ckeditor/lang/eo.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Esperanto language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['eo'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Fonto',
- newPage : 'Nova PaÄo',
- save : 'Sekurigi',
- preview : 'Vidigi Aspekton',
- cut : 'Eltondi',
- copy : 'Kopii',
- paste : 'Interglui',
- print : 'Presi',
- underline : 'Substreko',
- bold : 'Grasa',
- italic : 'Kursiva',
- selectAll : 'Elekti Äion',
- removeFormat : 'Forigi Formaton',
- strike : 'Trastreko',
- subscript : 'Subskribo',
- superscript : 'Superskribo',
- horizontalrule : 'Enmeti Horizonta Linio',
- pagebreak : 'Insert Page Break for Printing', // MISSING
- unlink : 'Forigi Ligilon',
- undo : 'Malfari',
- redo : 'Refari',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Foliumi en la Servilo',
- url : 'URL',
- protocol : 'Protokolo',
- upload : 'AlÅuti',
- uploadSubmit : 'Sendu al Servilo',
- image : 'Bildo',
- flash : 'Flash', // MISSING
- form : 'Formularo',
- checkbox : 'Markobutono',
- radio : 'Radiobutono',
- textField : 'Teksta kampo',
- textarea : 'Teksta Areo',
- hiddenField : 'KaÅita Kampo',
- button : 'Butono',
- select : 'Elekta Kampo',
- imageButton : 'Bildbutono',
- notSet : '<DefaÅlta>',
- id : 'Id',
- name : 'Nomo',
- langDir : 'Skribdirekto',
- langDirLtr : 'De maldekstro dekstren (LTR)',
- langDirRtl : 'De dekstro maldekstren (RTL)',
- langCode : 'Lingva Kodo',
- longDescr : 'URL de Longa Priskribo',
- cssClass : 'Klasoj de Stilfolioj',
- advisoryTitle : 'Indika Titolo',
- cssStyle : 'Stilo',
- ok : 'Akcepti',
- cancel : 'Rezigni',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Speciala',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Enmeti Specialan Signon',
- title : 'Enmeti Specialan Signon',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Enmeti/ÅanÄi Ligilon',
- other : '<other>', // MISSING
- menu : 'Modifier Ligilon',
- title : 'Ligilo',
- info : 'Informoj pri la Ligilo',
- target : 'Celo',
- upload : 'AlÅuti',
- advanced : 'Speciala',
- type : 'Tipo de Ligilo',
- toUrl : 'URL', // MISSING
- toAnchor : 'Ankri en tiu Äi paÄo',
- toEmail : 'RetpoÅto',
- targetFrame : '<kadro>',
- targetPopup : '<Åprucfenestro>',
- targetFrameName : 'Nomo de Kadro',
- targetPopupName : 'Nomo de Åprucfenestro',
- popupFeatures : 'Atributoj de la Åprucfenestro',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Statobreto',
- popupLocationBar: 'Adresobreto',
- popupToolbar : 'Ilobreto',
- popupMenuBar : 'Menubreto',
- popupFullScreen : 'Tutekrane (IE)',
- popupScrollBars : 'Rulumlisteloj',
- popupDependent : 'Dependa (Netscape)',
- popupWidth : 'LarÄo',
- popupLeft : 'Pozicio de Maldekstro',
- popupHeight : 'Alto',
- popupTop : 'Pozicio de Supro',
- id : 'Id', // MISSING
- langDir : 'Skribdirekto',
- langDirLTR : 'De maldekstro dekstren (LTR)',
- langDirRTL : 'De dekstro maldekstren (RTL)',
- acccessKey : 'Fulmoklavo',
- name : 'Nomo',
- langCode : 'Skribdirekto',
- tabIndex : 'Taba Ordo',
- advisoryTitle : 'Indika Titolo',
- advisoryContentType : 'Indika Enhavotipo',
- cssClasses : 'Klasoj de Stilfolioj',
- charset : 'Signaro de la Ligita Rimedo',
- styles : 'Stilo',
- selectAnchor : 'Elekti Ankron',
- anchorName : 'Per Ankronomo',
- anchorId : 'Per Elementidentigilo',
- emailAddress : 'Retadreso',
- emailSubject : 'Temlinio',
- emailBody : 'MesaÄa korpo',
- noAnchors : '<Ne disponeblas ankroj en la dokumento>',
- noUrl : 'Bonvolu entajpi la URL-on',
- noEmail : 'Bonvolu entajpi la retadreson'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Enmeti/ÅanÄi Ankron',
- menu : 'Ankraj Atributoj',
- title : 'Ankraj Atributoj',
- name : 'Ankra Nomo',
- errorName : 'Bv tajpi la ankran nomon'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'SerÄi',
- replace : 'AnstataÅigi',
- findWhat : 'SerÄi:',
- replaceWith : 'AnstataÅigi per:',
- notFoundMsg : 'La celteksto ne estas trovita.',
- matchCase : 'Kongruigi Usklecon',
- matchWord : 'Tuta Vorto',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'AnstataÅigi Äiun',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabelo',
- title : 'Atributoj de Tabelo',
- menu : 'Atributoj de Tabelo',
- deleteTable : 'Delete Table', // MISSING
- rows : 'Linioj',
- columns : 'Kolumnoj',
- border : 'Bordero',
- align : 'Äisrandigo',
- alignLeft : 'Maldekstre',
- alignCenter : 'Centre',
- alignRight : 'Dekstre',
- width : 'LarÄo',
- widthPx : 'Bitbilderoj',
- widthPc : 'elcentoj',
- widthUnit : 'width unit', // MISSING
- height : 'Alto',
- cellSpace : 'Interspacigo de Äeloj',
- cellPad : 'ÄirkaÅenhava Plenigado',
- caption : 'Titolo',
- summary : 'Summary', // MISSING
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'Forigi Äelojn',
- merge : 'Kunfandi Äelojn',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Forigi Liniojn'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Forigi Kolumnojn'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Butonaj Atributoj',
- text : 'Teksto (Valoro)',
- type : 'Tipo',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Markobutonaj Atributoj',
- radioTitle : 'Radiobutonaj Atributoj',
- value : 'Valoro',
- selected : 'Elektita'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Formularaj Atributoj',
- menu : 'Formularaj Atributoj',
- action : 'Ago',
- method : 'Metodo',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Atributoj de Elekta Kampo',
- selectInfo : 'Select Info', // MISSING
- opAvail : 'Elektoj Disponeblaj',
- value : 'Valoro',
- size : 'Grando',
- lines : 'Linioj',
- chkMulti : 'Permesi Plurajn Elektojn',
- opText : 'Teksto',
- opValue : 'Valoro',
- btnAdd : 'Aldoni',
- btnModify : 'Modifi',
- btnUp : 'Supren',
- btnDown : 'Malsupren',
- btnSetValue : 'Agordi kiel Elektitan Valoron',
- btnDelete : 'Forigi'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Atributoj de Teksta Areo',
- cols : 'Kolumnoj',
- rows : 'Vicoj'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Atributoj de Teksta Kampo',
- name : 'Nomo',
- value : 'Valoro',
- charWidth : 'SignolarÄo',
- maxChars : 'Maksimuma Nombro da Signoj',
- type : 'Tipo',
- typeText : 'Teksto',
- typePass : 'Pasvorto'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Atributoj de KaÅita Kampo',
- name : 'Nomo',
- value : 'Valoro'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Atributoj de Bildo',
- titleButton : 'Bildbutonaj Atributoj',
- menu : 'Atributoj de Bildo',
- infoTab : 'Informoj pri Bildo',
- btnUpload : 'Sendu al Servilo',
- upload : 'AlÅuti',
- alt : 'AnstataÅiga Teksto',
- width : 'LarÄo',
- height : 'Alto',
- lockRatio : 'Konservi Proporcion',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Origina Grando',
- border : 'Bordero',
- hSpace : 'HSpaco',
- vSpace : 'VSpaco',
- align : 'Äisrandigo',
- alignLeft : 'Maldekstre',
- alignRight : 'Dekstre',
- alertUrl : 'Bonvolu tajpi la URL de la bildo',
- linkTab : 'Link', // MISSING
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties', // MISSING
- propertiesTab : 'Properties', // MISSING
- title : 'Flash Properties', // MISSING
- chkPlay : 'Auto Play', // MISSING
- chkLoop : 'Loop', // MISSING
- chkMenu : 'Enable Flash Menu', // MISSING
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Scale', // MISSING
- scaleAll : 'Show all', // MISSING
- scaleNoBorder : 'No Border', // MISSING
- scaleFit : 'Exact Fit', // MISSING
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Äisrandigo',
- alignLeft : 'Maldekstre',
- alignAbsBottom : 'Abs Malsupre',
- alignAbsMiddle : 'Abs Centre',
- alignBaseline : 'Je Malsupro de Teksto',
- alignBottom : 'Malsupre',
- alignMiddle : 'Centre',
- alignRight : 'Dekstre',
- alignTextTop : 'Je Supro de Teksto',
- alignTop : 'Supre',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Fona Koloro',
- width : 'LarÄo',
- height : 'Alto',
- hSpace : 'HSpaco',
- vSpace : 'VSpaco',
- validateSrc : 'Bonvolu entajpi la URL-on',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Literumada Kontrolilo',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Ne trovita en la vortaro',
- changeTo : 'ÅanÄi al',
- btnIgnore : 'Malatenti',
- btnIgnoreAll : 'Malatenti Äiun',
- btnReplace : 'AnstataÅigi',
- btnReplaceAll : 'AnstataÅigi Äiun',
- btnUndo : 'Malfari',
- noSuggestions : '- Neniu propono -',
- progress : 'Literumkontrolado daÅras...',
- noMispell : 'Literumkontrolado finita: neniu fuÅo trovita',
- noChanges : 'Literumkontrolado finita: neniu vorto ÅanÄita',
- oneChange : 'Literumkontrolado finita: unu vorto ÅanÄita',
- manyChanges : 'Literumkontrolado finita: %1 vortoj ÅanÄitaj',
- ieSpellDownload : 'Literumada Kontrolilo ne instalita. Äu vi volas elÅuti Äin nun?'
- },
-
- smiley :
- {
- toolbar : 'Mienvinjeto',
- title : 'Enmeti Mienvinjeton',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Numera Listo',
- bulletedlist : 'Bula Listo',
- indent : 'Pligrandigi KrommarÄenon',
- outdent : 'Malpligrandigi KrommarÄenon',
-
- justify :
- {
- left : 'Maldekstrigi',
- center : 'Centrigi',
- right : 'Dekstrigi',
- block : 'Äisrandigi AmbaÅflanke'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Interglui',
- cutError : 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).',
- copyError : 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Interglui el Word',
- title : 'Interglui el Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Interglui kiel Tekston',
- title : 'Interglui kiel Tekston'
- },
-
- templates :
- {
- button : 'Templates', // MISSING
- title : 'Content Templates', // MISSING
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Please select the template to open in the editor', // MISSING
- emptyListMsg : '(No templates defined)' // MISSING
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Stilo',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Formato',
- panelTitle : 'Formato',
-
- tag_p : 'Normala',
- tag_pre : 'Formatita',
- tag_address : 'Adreso',
- tag_h1 : 'Titolo 1',
- tag_h2 : 'Titolo 2',
- tag_h3 : 'Titolo 3',
- tag_h4 : 'Titolo 4',
- tag_h5 : 'Titolo 5',
- tag_h6 : 'Titolo 6',
- tag_div : 'Paragrafo (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Tiparo',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Tiparo'
- },
-
- fontSize :
- {
- label : 'Grando',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Grando'
- },
-
- colorButton :
- {
- textColorTitle : 'Teksta Koloro',
- bgColorTitle : 'Fona Koloro',
- panelTitle : 'Colors', // MISSING
- auto : 'AÅtomata',
- more : 'Pli da Koloroj...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Esperanto language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'eo' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Redaktilo por RiÄiga Teksto',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Premu ALT 0 por helpilo',
+
+ browseServer: 'Foliumi en la Servilo',
+ url: 'URL',
+ protocol: 'Protokolo',
+ upload: 'AlÅuti',
+ uploadSubmit: 'Sendu al Servilo',
+ image: 'Bildo',
+ flash: 'FlaÅo',
+ form: 'Formularo',
+ checkbox: 'Markobutono',
+ radio: 'Radiobutono',
+ textField: 'Teksta kampo',
+ textarea: 'Teksta Areo',
+ hiddenField: 'KaÅita Kampo',
+ button: 'Butono',
+ select: 'Elekta Kampo',
+ imageButton: 'Bildbutono',
+ notSet: '<DefaÅlta>',
+ id: 'Id',
+ name: 'Nomo',
+ langDir: 'Skribdirekto',
+ langDirLtr: 'De maldekstro dekstren (LTR)',
+ langDirRtl: 'De dekstro maldekstren (RTL)',
+ langCode: 'Lingva Kodo',
+ longDescr: 'URL de Longa Priskribo',
+ cssClass: 'Klasoj de Stilfolioj',
+ advisoryTitle: 'Priskriba Titolo',
+ cssStyle: 'Stilo',
+ ok: 'Akcepti',
+ cancel: 'Rezigni',
+ close: 'Fermi',
+ preview: 'Vidigi Aspekton',
+ resize: 'Movigi por ÅanÄi la grandon',
+ generalTab: 'Äenerala',
+ advancedTab: 'Speciala',
+ validateNumberFailed: 'Tiu valoro ne estas nombro.',
+ confirmNewPage: 'La neregistritaj ÅanÄoj estas perdotaj. Äu vi certas, ke vi volas Åargi novan paÄon?',
+ confirmCancel: 'Iuj opcioj esta ÅanÄitaj. Äu vi certas, ke vi volas fermi la dialogon?',
+ options: 'Opcioj',
+ target: 'Celo',
+ targetNew: 'Nova Fenestro (_blank)',
+ targetTop: 'Supra Fenestro (_top)',
+ targetSelf: 'Sama Fenestro (_self)',
+ targetParent: 'Patra Fenestro (_parent)',
+ langDirLTR: 'De maldekstro dekstren (LTR)',
+ langDirRTL: 'De dekstro maldekstren (RTL)',
+ styles: 'Stilo',
+ cssClasses: 'Stilfoliaj Klasoj',
+ width: 'LarÄo',
+ height: 'Alto',
+ align: 'Äisrandigo',
+ alignLeft: 'Maldekstre',
+ alignRight: 'Dekstre',
+ alignCenter: 'Centre',
+ alignTop: 'Supre',
+ alignMiddle: 'Centre',
+ alignBottom: 'Malsupre',
+ invalidValue : 'Nevalida Valoro',
+ invalidHeight: 'Alto devas esti nombro.',
+ invalidWidth: 'LarÄo devas esti nombro.',
+ invalidCssLength: 'La valoro indikita por la "%1" kampo devas esti pozitiva nombro kun aÅ sen valida CSSmezurunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'La valoro indikita por la "%1" kampo devas esti pozitiva nombro kun aÅ sen valida HTMLmezurunuo (px or %).',
+ invalidInlineStyle: 'La valoro indikita por la enlinia stilo devas konsisti el unu aÅ pluraj elementoj kun la formato de "nomo : valoro", apartigitaj per punktokomoj.',
+ cssLengthTooltip: 'Entajpu nombron por rastrumera valoro aÅ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nehavebla</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/es.js b/devel/third-party/ckeditor/lang/es.js
index 5df3017..0da40be 100644
--- a/devel/third-party/ckeditor/lang/es.js
+++ b/devel/third-party/ckeditor/lang/es.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Spanish language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['es'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Editor de texto, %1, pulse ALT 0 para ayuda.',
-
- // ARIA descriptions.
- toolbar : 'Barra de herramientas',
- editor : 'Editor de texto enriquecido',
-
- // Toolbar buttons without dialogs.
- source : 'Fuente HTML',
- newPage : 'Nueva Página',
- save : 'Guardar',
- preview : 'Vista Previa',
- cut : 'Cortar',
- copy : 'Copiar',
- paste : 'Pegar',
- print : 'Imprimir',
- underline : 'Subrayado',
- bold : 'Negrita',
- italic : 'Cursiva',
- selectAll : 'Seleccionar Todo',
- removeFormat : 'Eliminar Formato',
- strike : 'Tachado',
- subscript : 'SubÃndice',
- superscript : 'SuperÃndice',
- horizontalrule : 'Insertar LÃnea Horizontal',
- pagebreak : 'Insertar Salto de Página',
- unlink : 'Eliminar VÃnculo',
- undo : 'Deshacer',
- redo : 'Rehacer',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Ver Servidor',
- url : 'URL',
- protocol : 'Protocolo',
- upload : 'Cargar',
- uploadSubmit : 'Enviar al Servidor',
- image : 'Imagen',
- flash : 'Flash',
- form : 'Formulario',
- checkbox : 'Casilla de Verificación',
- radio : 'Botones de Radio',
- textField : 'Campo de Texto',
- textarea : 'Area de Texto',
- hiddenField : 'Campo Oculto',
- button : 'Botón',
- select : 'Campo de Selección',
- imageButton : 'Botón Imagen',
- notSet : '<No definido>',
- id : 'Id',
- name : 'Nombre',
- langDir : 'Orientación',
- langDirLtr : 'Izquierda a Derecha (LTR)',
- langDirRtl : 'Derecha a Izquierda (RTL)',
- langCode : 'Cód. de idioma',
- longDescr : 'Descripción larga URL',
- cssClass : 'Clases de hojas de estilo',
- advisoryTitle : 'TÃtulo',
- cssStyle : 'Estilo',
- ok : 'Aceptar',
- cancel : 'Cancelar',
- close : 'Cerrar',
- preview : 'Previsualización',
- generalTab : 'General',
- advancedTab : 'Avanzado',
- validateNumberFailed : 'El valor no es un número.',
- confirmNewPage : 'Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?',
- confirmCancel : 'Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?',
- options : 'Opciones',
- target : 'Destino',
- targetNew : 'Nueva ventana (_blank)',
- targetTop : 'Ventana principal (_top)',
- targetSelf : 'Misma ventana (_self)',
- targetParent : 'Ventana padre (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, no disponible</span>'
- },
-
- contextmenu :
- {
- options : 'Opciones del menú contextual'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insertar Caracter Especial',
- title : 'Seleccione un caracter especial',
- options : 'Opciones de caracteres especiales'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Insertar/Editar VÃnculo',
- other : '<otro>',
- menu : 'Editar VÃnculo',
- title : 'VÃnculo',
- info : 'Información de VÃnculo',
- target : 'Destino',
- upload : 'Cargar',
- advanced : 'Avanzado',
- type : 'Tipo de vÃnculo',
- toUrl : 'URL',
- toAnchor : 'Referencia en esta página',
- toEmail : 'E-Mail',
- targetFrame : '<marco>',
- targetPopup : '<ventana emergente>',
- targetFrameName : 'Nombre del Marco Destino',
- targetPopupName : 'Nombre de Ventana Emergente',
- popupFeatures : 'CaracterÃsticas de Ventana Emergente',
- popupResizable : 'Redimensionable',
- popupStatusBar : 'Barra de Estado',
- popupLocationBar: 'Barra de ubicación',
- popupToolbar : 'Barra de Herramientas',
- popupMenuBar : 'Barra de Menú',
- popupFullScreen : 'Pantalla Completa (IE)',
- popupScrollBars : 'Barras de desplazamiento',
- popupDependent : 'Dependiente (Netscape)',
- popupWidth : 'Anchura',
- popupLeft : 'Posición Izquierda',
- popupHeight : 'Altura',
- popupTop : 'Posición Derecha',
- id : 'Id',
- langDir : 'Orientación',
- langDirLTR : 'Izquierda a Derecha (LTR)',
- langDirRTL : 'Derecha a Izquierda (RTL)',
- acccessKey : 'Clave de Acceso',
- name : 'Nombre',
- langCode : 'Código idioma',
- tabIndex : 'Indice de tabulación',
- advisoryTitle : 'TÃtulo',
- advisoryContentType : 'Tipo de Contenido',
- cssClasses : 'Clases de hojas de estilo',
- charset : 'Fuente de caracteres vinculado',
- styles : 'Estilo',
- selectAnchor : 'Seleccionar una referencia',
- anchorName : 'Por Nombre de Referencia',
- anchorId : 'Por ID de elemento',
- emailAddress : 'Dirección de E-Mail',
- emailSubject : 'TÃtulo del Mensaje',
- emailBody : 'Cuerpo del Mensaje',
- noAnchors : '(No hay referencias disponibles en el documento)',
- noUrl : 'Por favor tipee el vÃnculo URL',
- noEmail : 'Por favor tipee la dirección de e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Referencia',
- menu : 'Propiedades de Referencia',
- title : 'Propiedades de Referencia',
- name : 'Nombre de la Referencia',
- errorName : 'Por favor, complete el nombre de la Referencia'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Propiedades de lista numerada',
- bulletedTitle : 'Propiedades de viñetas',
- type : 'Tipo',
- start : 'Inicio',
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'CÃrculo',
- disc : 'Disco',
- square : 'Cuadrado',
- none : 'Ninguno',
- notset : '<sin establecer>',
- armenian : 'Numeración armenia',
- georgian : 'Numeración georgiana (an, ban, gan, etc.)',
- lowerRoman : 'Números romanos en minúsculas (i, ii, iii, iv, v, etc.)',
- upperRoman : 'Números romanos en mayúsculas (I, II, III, IV, V, etc.)',
- lowerAlpha : 'Alfabeto en minúsculas (a, b, c, d, e, etc.)',
- upperAlpha : 'Alfabeto en mayúsculas (A, B, C, D, E, etc.)',
- lowerGreek : 'Letras griegas (alpha, beta, gamma, etc.)',
- decimal : 'Decimal (1, 2, 3, etc.)',
- decimalLeadingZero : 'Decimal con cero inicial (01, 02, 03, etc.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Buscar y Reemplazar',
- find : 'Buscar',
- replace : 'Reemplazar',
- findWhat : 'Texto a buscar:',
- replaceWith : 'Reemplazar con:',
- notFoundMsg : 'El texto especificado no ha sido encontrado.',
- matchCase : 'Coincidir may/min',
- matchWord : 'Coincidir toda la palabra',
- matchCyclic : 'Buscar en todo el contenido',
- replaceAll : 'Reemplazar Todo',
- replaceSuccessMsg : 'La expresión buscada ha sido reemplazada %1 veces.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabla',
- title : 'Propiedades de Tabla',
- menu : 'Propiedades de Tabla',
- deleteTable : 'Eliminar Tabla',
- rows : 'Filas',
- columns : 'Columnas',
- border : 'Tamaño de Borde',
- align : 'Alineación',
- alignLeft : 'Izquierda',
- alignCenter : 'Centrado',
- alignRight : 'Derecha',
- width : 'Anchura',
- widthPx : 'pixeles',
- widthPc : 'porcentaje',
- widthUnit : 'unidad de la anchura',
- height : 'Altura',
- cellSpace : 'Esp. e/celdas',
- cellPad : 'Esp. interior',
- caption : 'TÃtulo',
- summary : 'SÃntesis',
- headers : 'Encabezados',
- headersNone : 'Ninguno',
- headersColumn : 'Primera columna',
- headersRow : 'Primera fila',
- headersBoth : 'Ambas',
- invalidRows : 'El número de filas debe ser un número mayor que 0.',
- invalidCols : 'El número de columnas debe ser un número mayor que 0.',
- invalidBorder : 'El tamaño del borde debe ser un número.',
- invalidWidth : 'La anchura de tabla debe ser un número.',
- invalidHeight : 'La altura de tabla debe ser un número.',
- invalidCellSpacing : 'El espaciado entre celdas debe ser un número.',
- invalidCellPadding : 'El espaciado interior debe ser un número.',
-
- cell :
- {
- menu : 'Celda',
- insertBefore : 'Insertar celda a la izquierda',
- insertAfter : 'Insertar celda a la derecha',
- deleteCell : 'Eliminar Celdas',
- merge : 'Combinar Celdas',
- mergeRight : 'Combinar a la derecha',
- mergeDown : 'Combinar hacia abajo',
- splitHorizontal : 'Dividir la celda horizontalmente',
- splitVertical : 'Dividir la celda verticalmente',
- title : 'Propiedades de celda',
- cellType : 'Tipo de Celda',
- rowSpan : 'Expandir filas',
- colSpan : 'Expandir columnas',
- wordWrap : 'Ajustar al contenido',
- hAlign : 'Alineación Horizontal',
- vAlign : 'Alineación Vertical',
- alignTop : 'Arriba',
- alignMiddle : 'Medio',
- alignBottom : 'Abajo',
- alignBaseline : 'Linea de base',
- bgColor : 'Color de fondo',
- borderColor : 'Color de borde',
- data : 'Datos',
- header : 'Encabezado',
- yes : 'SÃ',
- no : 'No',
- invalidWidth : 'La anchura de celda debe ser un número.',
- invalidHeight : 'La altura de celda debe ser un número.',
- invalidRowSpan : 'La expansión de filas debe ser un número entero.',
- invalidColSpan : 'La expansión de columnas debe ser un número entero.',
- chooseColor : 'Elegir'
- },
-
- row :
- {
- menu : 'Fila',
- insertBefore : 'Insertar fila en la parte superior',
- insertAfter : 'Insertar fila en la parte inferior',
- deleteRow : 'Eliminar Filas'
- },
-
- column :
- {
- menu : 'Columna',
- insertBefore : 'Insertar columna a la izquierda',
- insertAfter : 'Insertar columna a la derecha',
- deleteColumn : 'Eliminar Columnas'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Propiedades de Botón',
- text : 'Texto (Valor)',
- type : 'Tipo',
- typeBtn : 'Boton',
- typeSbm : 'Enviar',
- typeRst : 'Reestablecer'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Propiedades de Casilla',
- radioTitle : 'Propiedades de Botón de Radio',
- value : 'Valor',
- selected : 'Seleccionado'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Propiedades de Formulario',
- menu : 'Propiedades de Formulario',
- action : 'Acción',
- method : 'Método',
- encoding : 'Codificación'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Propiedades de Campo de Selección',
- selectInfo : 'Información',
- opAvail : 'Opciones disponibles',
- value : 'Valor',
- size : 'Tamaño',
- lines : 'Lineas',
- chkMulti : 'Permitir múltiple selección',
- opText : 'Texto',
- opValue : 'Valor',
- btnAdd : 'Agregar',
- btnModify : 'Modificar',
- btnUp : 'Subir',
- btnDown : 'Bajar',
- btnSetValue : 'Establecer como predeterminado',
- btnDelete : 'Eliminar'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Propiedades de Area de Texto',
- cols : 'Columnas',
- rows : 'Filas'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Propiedades de Campo de Texto',
- name : 'Nombre',
- value : 'Valor',
- charWidth : 'Caracteres de ancho',
- maxChars : 'Máximo caracteres',
- type : 'Tipo',
- typeText : 'Texto',
- typePass : 'Contraseña'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Propiedades de Campo Oculto',
- name : 'Nombre',
- value : 'Valor'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Propiedades de Imagen',
- titleButton : 'Propiedades de Botón de Imagen',
- menu : 'Propiedades de Imagen',
- infoTab : 'Información de Imagen',
- btnUpload : 'Enviar al Servidor',
- upload : 'Cargar',
- alt : 'Texto Alternativo',
- width : 'Anchura',
- height : 'Altura',
- lockRatio : 'Proporcional',
- unlockRatio : 'Desbloquear el proporcional',
- resetSize : 'Tamaño Original',
- border : 'Borde',
- hSpace : 'Esp.Horiz',
- vSpace : 'Esp.Vert',
- align : 'Alineación',
- alignLeft : 'Izquierda',
- alignRight : 'Derecha',
- alertUrl : 'Por favor escriba la URL de la imagen',
- linkTab : 'VÃnculo',
- button2Img : '¿Desea convertir el botón de imagen en una simple imagen?',
- img2Button : '¿Desea convertir la imagen en un botón de imagen?',
- urlMissing : 'Debe indicar la URL de la imagen.',
- validateWidth : 'La anchura debe ser un número.',
- validateHeight : 'La altura debe ser un número.',
- validateBorder : 'El borde debe ser un número.',
- validateHSpace : 'El espaciado horizontal debe ser un número.',
- validateVSpace : 'El espaciado vertical debe ser un número.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propiedades de Flash',
- propertiesTab : 'Propiedades',
- title : 'Propiedades de Flash',
- chkPlay : 'Autoejecución',
- chkLoop : 'Repetir',
- chkMenu : 'Activar Menú Flash',
- chkFull : 'Permitir pantalla completa',
- scale : 'Escala',
- scaleAll : 'Mostrar todo',
- scaleNoBorder : 'Sin Borde',
- scaleFit : 'Ajustado',
- access : 'Acceso de scripts',
- accessAlways : 'Siempre',
- accessSameDomain: 'Mismo dominio',
- accessNever : 'Nunca',
- align : 'Alineación',
- alignLeft : 'Izquierda',
- alignAbsBottom : 'Abs inferior',
- alignAbsMiddle : 'Abs centro',
- alignBaseline : 'LÃnea de base',
- alignBottom : 'Pie',
- alignMiddle : 'Centro',
- alignRight : 'Derecha',
- alignTextTop : 'Tope del texto',
- alignTop : 'Tope',
- quality : 'Calidad',
- qualityBest : 'La mejor',
- qualityHigh : 'Alta',
- qualityAutoHigh : 'Auto Alta',
- qualityMedium : 'Media',
- qualityAutoLow : 'Auto Baja',
- qualityLow : 'Baja',
- windowModeWindow: 'Ventana',
- windowModeOpaque: 'Opaco',
- windowModeTransparent : 'Transparente',
- windowMode : 'WindowMode',
- flashvars : 'Opciones',
- bgcolor : 'Color de Fondo',
- width : 'Anchura',
- height : 'Altura',
- hSpace : 'Esp.Horiz',
- vSpace : 'Esp.Vert',
- validateSrc : 'Por favor escriba el vÃnculo URL',
- validateWidth : 'Anchura debe ser un número.',
- validateHeight : 'Altura debe ser un número.',
- validateHSpace : 'Esp.Horiz debe ser un número.',
- validateVSpace : 'Esp.Vert debe ser un número.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'OrtografÃa',
- title : 'Comprobar ortografÃa',
- notAvailable : 'Lo sentimos pero el servicio no está disponible.',
- errorLoading : 'Error cargando la aplicación del servidor: %s.',
- notInDic : 'No se encuentra en el Diccionario',
- changeTo : 'Cambiar a',
- btnIgnore : 'Ignorar',
- btnIgnoreAll : 'Ignorar Todo',
- btnReplace : 'Reemplazar',
- btnReplaceAll : 'Reemplazar Todo',
- btnUndo : 'Deshacer',
- noSuggestions : '- No hay sugerencias -',
- progress : 'Control de OrtografÃa en progreso...',
- noMispell : 'Control finalizado: no se encontraron errores',
- noChanges : 'Control finalizado: no se ha cambiado ninguna palabra',
- oneChange : 'Control finalizado: se ha cambiado una palabra',
- manyChanges : 'Control finalizado: se ha cambiado %1 palabras',
- ieSpellDownload : 'Módulo de Control de OrtografÃa no instalado.\r\n¿Desea descargarlo ahora?'
- },
-
- smiley :
- {
- toolbar : 'Emoticonos',
- title : 'Insertar un Emoticon',
- options : 'Opciones de emoticonos'
- },
-
- elementsPath :
- {
- eleLabel : 'Ruta de los elementos',
- eleTitle : '%1 elemento'
- },
-
- numberedlist : 'Numeración',
- bulletedlist : 'Viñetas',
- indent : 'Aumentar SangrÃa',
- outdent : 'Disminuir SangrÃa',
-
- justify :
- {
- left : 'Alinear a Izquierda',
- center : 'Centrar',
- right : 'Alinear a Derecha',
- block : 'Justificado'
- },
-
- blockquote : 'Cita',
-
- clipboard :
- {
- title : 'Pegar',
- cutError : 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).',
- copyError : 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).',
- pasteMsg : 'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.',
- securityMsg : 'Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.',
- pasteArea : 'Zona de pegado'
- },
-
- pastefromword :
- {
- confirmCleanup : 'El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?',
- toolbar : 'Pegar desde Word',
- title : 'Pegar desde Word',
- error : 'No ha sido posible limpiar los datos debido a un error interno'
- },
-
- pasteText :
- {
- button : 'Pegar como Texto Plano',
- title : 'Pegar como Texto Plano'
- },
-
- templates :
- {
- button : 'Plantillas',
- title : 'Contenido de Plantillas',
- options : 'Opciones de plantillas',
- insertOption : 'Reemplazar el contenido actual',
- selectPromptMsg : 'Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):',
- emptyListMsg : '(No hay plantillas definidas)'
- },
-
- showBlocks : 'Mostrar bloques',
-
- stylesCombo :
- {
- label : 'Estilo',
- panelTitle : 'Estilos para formatear',
- panelTitle1 : 'Estilos de párrafo',
- panelTitle2 : 'Estilos de carácter',
- panelTitle3 : 'Estilos de objeto'
- },
-
- format :
- {
- label : 'Formato',
- panelTitle : 'Formato',
-
- tag_p : 'Normal',
- tag_pre : 'Con formato',
- tag_address : 'Dirección',
- tag_h1 : 'Encabezado 1',
- tag_h2 : 'Encabezado 2',
- tag_h3 : 'Encabezado 3',
- tag_h4 : 'Encabezado 4',
- tag_h5 : 'Encabezado 5',
- tag_h6 : 'Encabezado 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Crear contenedor DIV',
- toolbar : 'Crear contenedor DIV',
- cssClassInputLabel : 'Clase de hoja de estilos',
- styleSelectLabel : 'Estilo',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Codigo de idioma',
- inlineStyleInputLabel : 'Estilo',
- advisoryTitleInputLabel : 'TÃtulo',
- langDirLabel : 'Orientación',
- langDirLTRLabel : 'Izquierda a Derecha (LTR)',
- langDirRTLLabel : 'Derecha a Izquierda (RTL)',
- edit : 'Editar Div',
- remove : 'Quitar Div'
- },
-
- font :
- {
- label : 'Fuente',
- voiceLabel : 'Fuente',
- panelTitle : 'Fuente'
- },
-
- fontSize :
- {
- label : 'Tamaño',
- voiceLabel : 'Tamaño de fuente',
- panelTitle : 'Tamaño'
- },
-
- colorButton :
- {
- textColorTitle : 'Color de Texto',
- bgColorTitle : 'Color de Fondo',
- panelTitle : 'Colores',
- auto : 'Automático',
- more : 'Más Colores...'
- },
-
- colors :
- {
- '000' : 'Negro',
- '800000' : 'Marrón oscuro',
- '8B4513' : 'Marrón tierra',
- '2F4F4F' : 'Pizarra Oscuro',
- '008080' : 'Azul verdoso',
- '000080' : 'Azul marino',
- '4B0082' : 'Añil',
- '696969' : 'Gris oscuro',
- 'B22222' : 'Ladrillo',
- 'A52A2A' : 'Marrón',
- 'DAA520' : 'Oro oscuro',
- '006400' : 'Verde oscuro',
- '40E0D0' : 'Turquesa',
- '0000CD' : 'Azul medio-oscuro',
- '800080' : 'Púrpura',
- '808080' : 'Gris',
- 'F00' : 'Rojo',
- 'FF8C00' : 'Naranja oscuro',
- 'FFD700' : 'Oro',
- '008000' : 'Verde',
- '0FF' : 'Cian',
- '00F' : 'Azul',
- 'EE82EE' : 'Violeta',
- 'A9A9A9' : 'Gris medio',
- 'FFA07A' : 'Salmón claro',
- 'FFA500' : 'Naranja',
- 'FFFF00' : 'Amarillo',
- '00FF00' : 'Lima',
- 'AFEEEE' : 'Turquesa claro',
- 'ADD8E6' : 'Azul claro',
- 'DDA0DD' : 'Violeta claro',
- 'D3D3D3' : 'Gris claro',
- 'FFF0F5' : 'Lavanda rojizo',
- 'FAEBD7' : 'Blanco antiguo',
- 'FFFFE0' : 'Amarillo claro',
- 'F0FFF0' : 'Miel',
- 'F0FFFF' : 'Azul celeste',
- 'F0F8FF' : 'Azul pálido',
- 'E6E6FA' : 'Lavanda',
- 'FFF' : 'Blanco'
- },
-
- scayt :
- {
- title : 'Comprobar OrtografÃa Mientras Escribe',
- opera_title : 'No soportado en Opera',
- enable : 'Activar Corrector',
- disable : 'Desactivar Corrector',
- about : 'Acerca de Corrector',
- toggle : 'Cambiar Corrector',
- options : 'Opciones',
- langs : 'Idiomas',
- moreSuggestions : 'Más sugerencias',
- ignore : 'Ignorar',
- ignoreAll : 'Ignorar Todas',
- addWord : 'Añadir palabra',
- emptyDic : 'El nombre del diccionario no puede estar en blanco.',
-
- optionsTab : 'Opciones',
- allCaps : 'Omitir palabras en MAYÃSCULAS',
- ignoreDomainNames : 'Omitir nombres de dominio',
- mixedCase : 'Ignorar palabras con combinación de mayúsculas y minúsculas',
- mixedWithDigits : 'Omitir palabras con números',
-
- languagesTab : 'Idiomas',
-
- dictionariesTab : 'Diccionarios',
- dic_field_name : 'Nombre del diccionario',
- dic_create : 'Crear',
- dic_restore : 'Recuperar',
- dic_delete : 'Borrar',
- dic_rename : 'Renombrar',
- dic_info : 'Inicialmente el Diccionario de usuario se guarda en una Cookie. Sin embargo, las cookies están limitadas en tamaño. Cuando el diccionario crece a un punto en el que no se puede guardar en una Cookie, el diccionario puede ser almacenado en nuestro servidor. Para almacenar su diccionario personalizado en nuestro servidor debe especificar un nombre para su diccionario. Si ya ha guardado un diccionaro, por favor, escriba su nombre y pulse el botón Recuperar',
-
- aboutTab : 'Acerca de'
- },
-
- about :
- {
- title : 'Acerca de CKEditor',
- dlgTitle : 'Acerca de CKEditor',
- moreInfo : 'Para información de licencia, por favor visite nuestro sitio web:',
- copy : 'Copyright © $1. Todos los derechos reservados.'
- },
-
- maximize : 'Maximizar',
- minimize : 'Minimizar',
-
- fakeobjects :
- {
- anchor : 'Ancla',
- flash : 'Animación flash',
- div : 'Salto de página',
- unknown : 'Objeto desconocido'
- },
-
- resize : 'Arrastre para redimensionar',
-
- colordialog :
- {
- title : 'Elegir color',
- options : 'Opciones de colores',
- highlight : 'Muestra',
- selected : 'Elegido',
- clear : 'Borrar'
- },
-
- toolbarCollapse : 'Contraer barra de herramientas',
- toolbarExpand : 'Expandir barra de herramientas',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Spanish language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'es' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Editor de texto enriquecido',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Pulse ALT 0 para ayuda',
+
+ browseServer: 'Ver Servidor',
+ url: 'URL',
+ protocol: 'Protocolo',
+ upload: 'Cargar',
+ uploadSubmit: 'Enviar al Servidor',
+ image: 'Imagen',
+ flash: 'Flash',
+ form: 'Formulario',
+ checkbox: 'Casilla de Verificación',
+ radio: 'Botones de Radio',
+ textField: 'Campo de Texto',
+ textarea: 'Area de Texto',
+ hiddenField: 'Campo Oculto',
+ button: 'Botón',
+ select: 'Campo de Selección',
+ imageButton: 'Botón Imagen',
+ notSet: '<No definido>',
+ id: 'Id',
+ name: 'Nombre',
+ langDir: 'Orientación',
+ langDirLtr: 'Izquierda a Derecha (LTR)',
+ langDirRtl: 'Derecha a Izquierda (RTL)',
+ langCode: 'Cód. de idioma',
+ longDescr: 'Descripción larga URL',
+ cssClass: 'Clases de hojas de estilo',
+ advisoryTitle: 'TÃtulo',
+ cssStyle: 'Estilo',
+ ok: 'Aceptar',
+ cancel: 'Cancelar',
+ close: 'Cerrar',
+ preview: 'Previsualización',
+ resize: 'Arrastre para redimensionar',
+ generalTab: 'General',
+ advancedTab: 'Avanzado',
+ validateNumberFailed: 'El valor no es un número.',
+ confirmNewPage: 'Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?',
+ confirmCancel: 'Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?',
+ options: 'Opciones',
+ target: 'Destino',
+ targetNew: 'Nueva ventana (_blank)',
+ targetTop: 'Ventana principal (_top)',
+ targetSelf: 'Misma ventana (_self)',
+ targetParent: 'Ventana padre (_parent)',
+ langDirLTR: 'Izquierda a derecha (LTR)',
+ langDirRTL: 'Derecha a izquierda (RTL)',
+ styles: 'Estilos',
+ cssClasses: 'Clase de la hoja de estilos',
+ width: 'Anchura',
+ height: 'Altura',
+ align: 'Alineación',
+ alignLeft: 'Izquierda',
+ alignRight: 'Derecha',
+ alignCenter: 'Centrado',
+ alignTop: 'Tope',
+ alignMiddle: 'Centro',
+ alignBottom: 'Pie',
+ invalidValue : 'Valor no válido',
+ invalidHeight: 'Altura debe ser un número.',
+ invalidWidth: 'Anchura debe ser un número.',
+ invalidCssLength: 'El valor especificado para el campo "%1" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
+ invalidHtmlLength: 'El valor especificado para el campo "%1" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).',
+ invalidInlineStyle: 'El valor especificado para el estilo debe consistir en uno o más pares con el formato "nombre: valor", separados por punto y coma.',
+ cssLengthTooltip: 'Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, no disponible</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/et.js b/devel/third-party/ckeditor/lang/et.js
index 4b62f54..c71c34a 100644
--- a/devel/third-party/ckeditor/lang/et.js
+++ b/devel/third-party/ckeditor/lang/et.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Estonian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['et'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Lähtekood',
- newPage : 'Uus leht',
- save : 'Salvesta',
- preview : 'Eelvaade',
- cut : 'Lõika',
- copy : 'Kopeeri',
- paste : 'Kleebi',
- print : 'Prindi',
- underline : 'Allajoonitud',
- bold : 'Paks',
- italic : 'Kursiiv',
- selectAll : 'Vali kõik',
- removeFormat : 'Eemalda vorming',
- strike : 'Läbijoonitud',
- subscript : 'Allindeks',
- superscript : 'Ãlaindeks',
- horizontalrule : 'Sisesta horisontaaljoon',
- pagebreak : 'Sisesta lehevahetuskoht',
- unlink : 'Eemalda link',
- undo : 'Võta tagasi',
- redo : 'Korda toimingut',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Sirvi serverit',
- url : 'URL',
- protocol : 'Protokoll',
- upload : 'Lae üles',
- uploadSubmit : 'Saada serverissee',
- image : 'Pilt',
- flash : 'Flash',
- form : 'Vorm',
- checkbox : 'Märkeruut',
- radio : 'Raadionupp',
- textField : 'Tekstilahter',
- textarea : 'Tekstiala',
- hiddenField : 'Varjatud lahter',
- button : 'Nupp',
- select : 'Valiklahter',
- imageButton : 'Piltnupp',
- notSet : '<määramata>',
- id : 'Id',
- name : 'Nimi',
- langDir : 'Keele suund',
- langDirLtr : 'Vasakult paremale (LTR)',
- langDirRtl : 'Paremalt vasakule (RTL)',
- langCode : 'Keele kood',
- longDescr : 'Pikk kirjeldus URL',
- cssClass : 'Stiilistiku klassid',
- advisoryTitle : 'Juhendav tiitel',
- cssStyle : 'Laad',
- ok : 'OK',
- cancel : 'Loobu',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Täpsemalt',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Sisesta erimärk',
- title : 'Vali erimärk',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Sisesta link / Muuda linki',
- other : '<muu>',
- menu : 'Muuda linki',
- title : 'Link',
- info : 'Lingi info',
- target : 'Sihtkoht',
- upload : 'Lae üles',
- advanced : 'Täpsemalt',
- type : 'Lingi tüüp',
- toUrl : 'URL', // MISSING
- toAnchor : 'Ankur sellel lehel',
- toEmail : 'E-post',
- targetFrame : '<raam>',
- targetPopup : '<hüpikaken>',
- targetFrameName : 'Sihtmärk raami nimi',
- targetPopupName : 'Hüpikakna nimi',
- popupFeatures : 'Hüpikakna omadused',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Olekuriba',
- popupLocationBar: 'Aadressiriba',
- popupToolbar : 'Tööriistariba',
- popupMenuBar : 'Menüüriba',
- popupFullScreen : 'Täisekraan (IE)',
- popupScrollBars : 'Kerimisribad',
- popupDependent : 'Sõltuv (Netscape)',
- popupWidth : 'Laius',
- popupLeft : 'Vasak asukoht',
- popupHeight : 'Kõrgus',
- popupTop : 'Ãlemine asukoht',
- id : 'Id', // MISSING
- langDir : 'Keele suund',
- langDirLTR : 'Vasakult paremale (LTR)',
- langDirRTL : 'Paremalt vasakule (RTL)',
- acccessKey : 'Juurdepääsu võti',
- name : 'Nimi',
- langCode : 'Keele suund',
- tabIndex : 'Tab indeks',
- advisoryTitle : 'Juhendav tiitel',
- advisoryContentType : 'Juhendava sisu tüüp',
- cssClasses : 'Stiilistiku klassid',
- charset : 'Lingitud ressurssi märgistik',
- styles : 'Laad',
- selectAnchor : 'Vali ankur',
- anchorName : 'Ankru nime järgi',
- anchorId : 'Elemendi id järgi',
- emailAddress : 'E-posti aadress',
- emailSubject : 'Sõnumi teema',
- emailBody : 'Sõnumi tekst',
- noAnchors : '(Selles dokumendis ei ole ankruid)',
- noUrl : 'Palun kirjuta lingi URL',
- noEmail : 'Palun kirjuta E-Posti aadress'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Sisesta ankur / Muuda ankrut',
- menu : 'Ankru omadused',
- title : 'Ankru omadused',
- name : 'Ankru nimi',
- errorName : 'Palun sisest ankru nimi'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Otsi ja asenda',
- find : 'Otsi',
- replace : 'Asenda',
- findWhat : 'Leia mida:',
- replaceWith : 'Asenda millega:',
- notFoundMsg : 'Valitud teksti ei leitud.',
- matchCase : 'Erista suur- ja väiketähti',
- matchWord : 'Otsi terviklike sõnu',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Asenda kõik',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabel',
- title : 'Tabeli atribuudid',
- menu : 'Tabeli atribuudid',
- deleteTable : 'Kustuta tabel',
- rows : 'Read',
- columns : 'Veerud',
- border : 'Joone suurus',
- align : 'Joondus',
- alignLeft : 'Vasak',
- alignCenter : 'Kesk',
- alignRight : 'Parem',
- width : 'Laius',
- widthPx : 'pikslit',
- widthPc : 'protsenti',
- widthUnit : 'width unit', // MISSING
- height : 'Kõrgus',
- cellSpace : 'Lahtri vahe',
- cellPad : 'Lahtri täidis',
- caption : 'Tabeli tiitel',
- summary : 'Kokkuvõte',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Lahter',
- insertBefore : 'Sisesta lahter enne',
- insertAfter : 'Sisesta lahter peale',
- deleteCell : 'Eemalda lahtrid',
- merge : 'Ãhenda lahtrid',
- mergeRight : 'Ãhenda paremale',
- mergeDown : 'Ãhenda alla',
- splitHorizontal : 'Poolita lahter horisontaalselt',
- splitVertical : 'Poolita lahter vertikaalselt',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Rida',
- insertBefore : 'Sisesta rida enne',
- insertAfter : 'Sisesta rida peale',
- deleteRow : 'Eemalda read'
- },
-
- column :
- {
- menu : 'Veerg',
- insertBefore : 'Sisesta veerg enne',
- insertAfter : 'Sisesta veerg peale',
- deleteColumn : 'Eemalda veerud'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Nupu omadused',
- text : 'Tekst (väärtus)',
- type : 'Tüüp',
- typeBtn : 'Nupp',
- typeSbm : 'Saada',
- typeRst : 'Lähtesta'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Märkeruudu omadused',
- radioTitle : 'Raadionupu omadused',
- value : 'Väärtus',
- selected : 'Valitud'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Vormi omadused',
- menu : 'Vormi omadused',
- action : 'Toiming',
- method : 'Meetod',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Valiklahtri omadused',
- selectInfo : 'Info',
- opAvail : 'Võimalikud valikud',
- value : 'Väärtus',
- size : 'Suurus',
- lines : 'ridu',
- chkMulti : 'Võimalda mitu valikut',
- opText : 'Tekst',
- opValue : 'Väärtus',
- btnAdd : 'Lisa',
- btnModify : 'Muuda',
- btnUp : 'Ãles',
- btnDown : 'Alla',
- btnSetValue : 'Sea valitud olekuna',
- btnDelete : 'Kustuta'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Tekstiala omadused',
- cols : 'Veerge',
- rows : 'Ridu'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Tekstilahtri omadused',
- name : 'Nimi',
- value : 'Väärtus',
- charWidth : 'Laius (tähemärkides)',
- maxChars : 'Maksimaalselt tähemärke',
- type : 'Tüüp',
- typeText : 'Tekst',
- typePass : 'Parool'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Varjatud lahtri omadused',
- name : 'Nimi',
- value : 'Väärtus'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Pildi atribuudid',
- titleButton : 'Piltnupu omadused',
- menu : 'Pildi atribuudid',
- infoTab : 'Pildi info',
- btnUpload : 'Saada serverissee',
- upload : 'Lae üles',
- alt : 'Alternatiivne tekst',
- width : 'Laius',
- height : 'Kõrgus',
- lockRatio : 'Lukusta kuvasuhe',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Lähtesta suurus',
- border : 'Joon',
- hSpace : 'H. vaheruum',
- vSpace : 'V. vaheruum',
- align : 'Joondus',
- alignLeft : 'Vasak',
- alignRight : 'Paremale',
- alertUrl : 'Palun kirjuta pildi URL',
- linkTab : 'Link',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash omadused',
- propertiesTab : 'Properties', // MISSING
- title : 'Flash omadused',
- chkPlay : 'Automaatne start ',
- chkLoop : 'Korduv',
- chkMenu : 'Võimalda flash menüü',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Mastaap',
- scaleAll : 'Näita kõike',
- scaleNoBorder : 'Ãärist ei ole',
- scaleFit : 'Täpne sobivus',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Joondus',
- alignLeft : 'Vasak',
- alignAbsBottom : 'Abs alla',
- alignAbsMiddle : 'Abs keskele',
- alignBaseline : 'Baasjoonele',
- alignBottom : 'Alla',
- alignMiddle : 'Keskele',
- alignRight : 'Paremale',
- alignTextTop : 'Tekstit üles',
- alignTop : 'Ãles',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Tausta värv',
- width : 'Laius',
- height : 'Kõrgus',
- hSpace : 'H. vaheruum',
- vSpace : 'V. vaheruum',
- validateSrc : 'Palun kirjuta lingi URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Kontrolli õigekirja',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Puudub sõnastikust',
- changeTo : 'Muuda',
- btnIgnore : 'Ignoreeri',
- btnIgnoreAll : 'Ignoreeri kõiki',
- btnReplace : 'Asenda',
- btnReplaceAll : 'Asenda kõik',
- btnUndo : 'Võta tagasi',
- noSuggestions : '- Soovitused puuduvad -',
- progress : 'Toimub õigekirja kontroll...',
- noMispell : 'Ãigekirja kontroll sooritatud: õigekirjuvigu ei leitud',
- noChanges : 'Ãigekirja kontroll sooritatud: ühtegi sõna ei muudetud',
- oneChange : 'Ãigekirja kontroll sooritatud: üks sõna muudeti',
- manyChanges : 'Ãigekirja kontroll sooritatud: %1 sõna muudetud',
- ieSpellDownload : 'Ãigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?'
- },
-
- smiley :
- {
- toolbar : 'Emotikon',
- title : 'Sisesta emotikon',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Nummerdatud loetelu',
- bulletedlist : 'Punktiseeritud loetelu',
- indent : 'Suurenda taanet',
- outdent : 'Vähenda taanet',
-
- justify :
- {
- left : 'Vasakjoondus',
- center : 'Keskjoondus',
- right : 'Paremjoondus',
- block : 'Rööpjoondus'
- },
-
- blockquote : 'Blokktsitaat',
-
- clipboard :
- {
- title : 'Kleebi',
- cutError : 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).',
- copyError : 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).',
- pasteMsg : 'Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.',
- securityMsg : 'Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Kleebi Wordist',
- title : 'Kleebi Wordist',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Kleebi tavalise tekstina',
- title : 'Kleebi tavalise tekstina'
- },
-
- templates :
- {
- button : 'Å abloon',
- title : 'Sisu šabloonid',
- options : 'Template Options', // MISSING
- insertOption : 'Asenda tegelik sisu',
- selectPromptMsg : 'Palun vali šabloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):',
- emptyListMsg : '(Ãhtegi Å¡ablooni ei ole defineeritud)'
- },
-
- showBlocks : 'Näita blokke',
-
- stylesCombo :
- {
- label : 'Laad',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Vorming',
- panelTitle : 'Vorming',
-
- tag_p : 'Tavaline',
- tag_pre : 'Vormindatud',
- tag_address : 'Aadress',
- tag_h1 : 'Pealkiri 1',
- tag_h2 : 'Pealkiri 2',
- tag_h3 : 'Pealkiri 3',
- tag_h4 : 'Pealkiri 4',
- tag_h5 : 'Pealkiri 5',
- tag_h6 : 'Pealkiri 6',
- tag_div : 'Tavaline (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Kiri',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Kiri'
- },
-
- fontSize :
- {
- label : 'Suurus',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Suurus'
- },
-
- colorButton :
- {
- textColorTitle : 'Teksti värv',
- bgColorTitle : 'Tausta värv',
- panelTitle : 'Colors', // MISSING
- auto : 'Automaatne',
- more : 'Rohkem värve...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Estonian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'et' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rikkalik tekstiredaktor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Abi saamiseks vajuta ALT 0',
+
+ browseServer: 'Serveri sirvimine',
+ url: 'URL',
+ protocol: 'Protokoll',
+ upload: 'Laadi üles',
+ uploadSubmit: 'Saada serverisse',
+ image: 'Pilt',
+ flash: 'Flash',
+ form: 'Vorm',
+ checkbox: 'Märkeruut',
+ radio: 'Raadionupp',
+ textField: 'Tekstilahter',
+ textarea: 'Tekstiala',
+ hiddenField: 'Varjatud lahter',
+ button: 'Nupp',
+ select: 'Valiklahter',
+ imageButton: 'Piltnupp',
+ notSet: '<määramata>',
+ id: 'ID',
+ name: 'Nimi',
+ langDir: 'Keele suund',
+ langDirLtr: 'Vasakult paremale (LTR)',
+ langDirRtl: 'Paremalt vasakule (RTL)',
+ langCode: 'Keele kood',
+ longDescr: 'Pikk kirjeldus URL',
+ cssClass: 'Stiilistiku klassid',
+ advisoryTitle: 'Soovituslik pealkiri',
+ cssStyle: 'Laad',
+ ok: 'OK',
+ cancel: 'Loobu',
+ close: 'Sulge',
+ preview: 'Eelvaade',
+ resize: 'Suuruse muutmiseks lohista',
+ generalTab: 'Ãldine',
+ advancedTab: 'Täpsemalt',
+ validateNumberFailed: 'See väärtus pole number.',
+ confirmNewPage: 'Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?',
+ confirmCancel: 'Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?',
+ options: 'Valikud',
+ target: 'Sihtkoht',
+ targetNew: 'Uus aken (_blank)',
+ targetTop: 'Kõige ülemine aken (_top)',
+ targetSelf: 'Sama aken (_self)',
+ targetParent: 'Vanemaken (_parent)',
+ langDirLTR: 'Vasakult paremale (LTR)',
+ langDirRTL: 'Paremalt vasakule (RTL)',
+ styles: 'Stiili',
+ cssClasses: 'Stiililehe klassid',
+ width: 'Laius',
+ height: 'Kõrgus',
+ align: 'Joondus',
+ alignLeft: 'Vasak',
+ alignRight: 'Paremale',
+ alignCenter: 'Kesk',
+ alignTop: 'Ãles',
+ alignMiddle: 'Keskele',
+ alignBottom: 'Alla',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Kõrgus peab olema number.',
+ invalidWidth: 'Laius peab olema number.',
+ invalidCssLength: '"%1" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.',
+ invalidHtmlLength: '"%1" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.',
+ invalidInlineStyle: 'Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: "nimi : väärtus".',
+ cssLengthTooltip: 'Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, pole saadaval</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/eu.js b/devel/third-party/ckeditor/lang/eu.js
index 6278e13..d4eb6b2 100644
--- a/devel/third-party/ckeditor/lang/eu.js
+++ b/devel/third-party/ckeditor/lang/eu.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Basque language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['eu'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'HTML Iturburua',
- newPage : 'Orrialde Berria',
- save : 'Gorde',
- preview : 'Aurrebista',
- cut : 'Ebaki',
- copy : 'Kopiatu',
- paste : 'Itsatsi',
- print : 'Inprimatu',
- underline : 'Azpimarratu',
- bold : 'Lodia',
- italic : 'Etzana',
- selectAll : 'Hautatu dena',
- removeFormat : 'Kendu Formatua',
- strike : 'Marratua',
- subscript : 'Azpi-indize',
- superscript : 'Goi-indize',
- horizontalrule : 'Txertatu Marra Horizontala',
- pagebreak : 'Txertatu Orrialde-jauzia',
- unlink : 'Kendu Esteka',
- undo : 'Desegin',
- redo : 'Berregin',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Zerbitzaria arakatu',
- url : 'URL',
- protocol : 'Protokoloa',
- upload : 'Gora kargatu',
- uploadSubmit : 'Zerbitzarira bidalia',
- image : 'Irudia',
- flash : 'Flasha',
- form : 'Formularioa',
- checkbox : 'Kontrol-laukia',
- radio : 'Aukera-botoia',
- textField : 'Testu Eremua',
- textarea : 'Testu-area',
- hiddenField : 'Ezkutuko Eremua',
- button : 'Botoia',
- select : 'Hautespen Eremua',
- imageButton : 'Irudi Botoia',
- notSet : '<Ezarri gabe>',
- id : 'Id',
- name : 'Izena',
- langDir : 'Hizkuntzaren Norabidea',
- langDirLtr : 'Ezkerretik Eskumara(LTR)',
- langDirRtl : 'Eskumatik Ezkerrera (RTL)',
- langCode : 'Hizkuntza Kodea',
- longDescr : 'URL Deskribapen Luzea',
- cssClass : 'Estilo-orriko Klaseak',
- advisoryTitle : 'Izenburua',
- cssStyle : 'Estiloa',
- ok : 'Ados',
- cancel : 'Utzi',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Orokorra',
- advancedTab : 'Aurreratua',
- validateNumberFailed : 'Balio hau ez da zenbaki bat.',
- confirmNewPage : 'Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?',
- confirmCancel : 'Aukera batzuk aldatu egin dira. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, erabilezina</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Txertatu Karaktere Berezia',
- title : 'Karaktere Berezia Aukeratu',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Txertatu/Editatu Esteka',
- other : '<other>', // MISSING
- menu : 'Aldatu Esteka',
- title : 'Esteka',
- info : 'Estekaren Informazioa',
- target : 'Target (Helburua)',
- upload : 'Gora kargatu',
- advanced : 'Aurreratua',
- type : 'Esteka Mota',
- toUrl : 'URL', // MISSING
- toAnchor : 'Aingura orrialde honetan',
- toEmail : 'ePosta',
- targetFrame : '<marko>',
- targetPopup : '<popup leihoa>',
- targetFrameName : 'Marko Helburuaren Izena',
- targetPopupName : 'Popup Leihoaren Izena',
- popupFeatures : 'Popup Leihoaren Ezaugarriak',
- popupResizable : 'Tamaina Aldakorra',
- popupStatusBar : 'Egoera Barra',
- popupLocationBar: 'Kokaleku Barra',
- popupToolbar : 'Tresna Barra',
- popupMenuBar : 'Menu Barra',
- popupFullScreen : 'Pantaila Osoa (IE)',
- popupScrollBars : 'Korritze Barrak',
- popupDependent : 'Menpekoa (Netscape)',
- popupWidth : 'Zabalera',
- popupLeft : 'Ezkerreko Posizioa',
- popupHeight : 'Altuera',
- popupTop : 'Goiko Posizioa',
- id : 'Id',
- langDir : 'Hizkuntzaren Norabidea',
- langDirLTR : 'Ezkerretik Eskumara(LTR)',
- langDirRTL : 'Eskumatik Ezkerrera (RTL)',
- acccessKey : 'Sarbide-gakoa',
- name : 'Izena',
- langCode : 'Hizkuntzaren Norabidea',
- tabIndex : 'Tabulazio Indizea',
- advisoryTitle : 'Izenburua',
- advisoryContentType : 'Eduki Mota (Content Type)',
- cssClasses : 'Estilo-orriko Klaseak',
- charset : 'Estekatutako Karaktere Multzoa',
- styles : 'Estiloa',
- selectAnchor : 'Aingura bat hautatu',
- anchorName : 'Aingura izenagatik',
- anchorId : 'Elementuaren ID-gatik',
- emailAddress : 'ePosta Helbidea',
- emailSubject : 'Mezuaren Gaia',
- emailBody : 'Mezuaren Gorputza',
- noAnchors : '(Ez daude aingurak eskuragarri dokumentuan)',
- noUrl : 'Mesedez URL esteka idatzi',
- noEmail : 'Mesedez ePosta helbidea idatzi'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Aingura',
- menu : 'Ainguraren Ezaugarriak',
- title : 'Ainguraren Ezaugarriak',
- name : 'Ainguraren Izena',
- errorName : 'Idatzi ainguraren izena'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Bilatu eta Ordeztu',
- find : 'Bilatu',
- replace : 'Ordezkatu',
- findWhat : 'Zer bilatu:',
- replaceWith : 'Zerekin ordeztu:',
- notFoundMsg : 'Idatzitako testua ez da topatu.',
- matchCase : 'Maiuskula/minuskula',
- matchWord : 'Esaldi osoa bilatu',
- matchCyclic : 'Bilaketa ziklikoa',
- replaceAll : 'Ordeztu Guztiak',
- replaceSuccessMsg : 'Zenbat aldiz ordeztua: %1'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Taula',
- title : 'Taularen Ezaugarriak',
- menu : 'Taularen Ezaugarriak',
- deleteTable : 'Ezabatu Taula',
- rows : 'Lerroak',
- columns : 'Zutabeak',
- border : 'Ertzaren Zabalera',
- align : 'Lerrokatu',
- alignLeft : 'Ezkerrean',
- alignCenter : 'Erdian',
- alignRight : 'Eskuman',
- width : 'Zabalera',
- widthPx : 'pixel',
- widthPc : 'ehuneko',
- widthUnit : 'width unit', // MISSING
- height : 'Altuera',
- cellSpace : 'Gelaxka arteko tartea',
- cellPad : 'Gelaxken betegarria',
- caption : 'Epigrafea',
- summary : 'Laburpena',
- headers : 'Goiburuak',
- headersNone : 'Bat ere ez',
- headersColumn : 'Lehen zutabea',
- headersRow : 'Lehen lerroa',
- headersBoth : 'Biak',
- invalidRows : 'Lerro kopurua 0 baino handiagoa den zenbakia izan behar da.',
- invalidCols : 'Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.',
- invalidBorder : 'Ertzaren tamaina zenbaki bat izan behar da.',
- invalidWidth : 'Taularen zabalera zenbaki bat izan behar da.',
- invalidHeight : 'Taularen altuera zenbaki bat izan behar da.',
- invalidCellSpacing : 'Gelaxka arteko tartea zenbaki bat izan behar da.',
- invalidCellPadding : 'Gelaxken betegarria zenbaki bat izan behar da.',
-
- cell :
- {
- menu : 'Gelaxka',
- insertBefore : 'Txertatu Gelaxka Aurretik',
- insertAfter : 'Txertatu Gelaxka Ostean',
- deleteCell : 'Kendu Gelaxkak',
- merge : 'Batu Gelaxkak',
- mergeRight : 'Elkartu Eskumara',
- mergeDown : 'Elkartu Behera',
- splitHorizontal : 'Banatu Gelaxkak Horizontalki',
- splitVertical : 'Banatu Gelaxkak Bertikalki',
- title : 'Gelaxken Ezaugarriak',
- cellType : 'Gelaxka Mota',
- rowSpan : 'Hedatutako Lerroak',
- colSpan : 'Hedatutako Zutabeak',
- wordWrap : 'Itzulbira',
- hAlign : 'Lerrokatze Horizontala',
- vAlign : 'Lerrokatze Bertikala',
- alignTop : 'Goian',
- alignMiddle : 'Erdian',
- alignBottom : 'Behean',
- alignBaseline : 'Oinarri-lerroan',
- bgColor : 'Fondoaren Kolorea',
- borderColor : 'Ertzaren Kolorea',
- data : 'Data',
- header : 'Goiburua',
- yes : 'Bai',
- no : 'Ez',
- invalidWidth : 'Gelaxkaren zabalera zenbaki bat izan behar da.',
- invalidHeight : 'Gelaxkaren altuera zenbaki bat izan behar da.',
- invalidRowSpan : 'Lerroen hedapena zenbaki osoa izan behar da.',
- invalidColSpan : 'Zutabeen hedapena zenbaki osoa izan behar da.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Lerroa',
- insertBefore : 'Txertatu Lerroa Aurretik',
- insertAfter : 'Txertatu Lerroa Ostean',
- deleteRow : 'Ezabatu Lerroak'
- },
-
- column :
- {
- menu : 'Zutabea',
- insertBefore : 'Txertatu Zutabea Aurretik',
- insertAfter : 'Txertatu Zutabea Ostean',
- deleteColumn : 'Ezabatu Zutabeak'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Botoiaren Ezaugarriak',
- text : 'Testua (Balorea)',
- type : 'Mota',
- typeBtn : 'Botoia',
- typeSbm : 'Bidali',
- typeRst : 'Garbitu'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Kontrol-laukiko Ezaugarriak',
- radioTitle : 'Aukera-botoiaren Ezaugarriak',
- value : 'Balorea',
- selected : 'Hautatuta'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Formularioaren Ezaugarriak',
- menu : 'Formularioaren Ezaugarriak',
- action : 'Ekintza',
- method : 'Metodoa',
- encoding : 'Kodeketa'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Hautespen Eremuaren Ezaugarriak',
- selectInfo : 'Informazioa',
- opAvail : 'Aukera Eskuragarriak',
- value : 'Balorea',
- size : 'Tamaina',
- lines : 'lerro kopurura',
- chkMulti : 'Hautaketa anitzak baimendu',
- opText : 'Testua',
- opValue : 'Balorea',
- btnAdd : 'Gehitu',
- btnModify : 'Aldatu',
- btnUp : 'Gora',
- btnDown : 'Behera',
- btnSetValue : 'Aukeratutako balorea ezarri',
- btnDelete : 'Ezabatu'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Testu-arearen Ezaugarriak',
- cols : 'Zutabeak',
- rows : 'Lerroak'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Testu Eremuaren Ezaugarriak',
- name : 'Izena',
- value : 'Balorea',
- charWidth : 'Zabalera',
- maxChars : 'Zenbat karaktere gehienez',
- type : 'Mota',
- typeText : 'Testua',
- typePass : 'Pasahitza'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Ezkutuko Eremuaren Ezaugarriak',
- name : 'Izena',
- value : 'Balorea'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Irudi Ezaugarriak',
- titleButton : 'Irudi Botoiaren Ezaugarriak',
- menu : 'Irudi Ezaugarriak',
- infoTab : 'Irudi informazioa',
- btnUpload : 'Zerbitzarira bidalia',
- upload : 'Gora Kargatu',
- alt : 'Ordezko Testua',
- width : 'Zabalera',
- height : 'Altuera',
- lockRatio : 'Erlazioa Blokeatu',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Tamaina Berrezarri',
- border : 'Ertza',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Lerrokatu',
- alignLeft : 'Ezkerrera',
- alignRight : 'Eskuman',
- alertUrl : 'Mesedez Irudiaren URLa idatzi',
- linkTab : 'Esteka',
- button2Img : 'Aukeratutako irudi botoia, irudi normal batean eraldatu nahi duzu?',
- img2Button : 'Aukeratutako irudia, irudi botoi batean eraldatu nahi duzu?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flasharen Ezaugarriak',
- propertiesTab : 'Ezaugarriak',
- title : 'Flasharen Ezaugarriak',
- chkPlay : 'Automatikoki Erreproduzitu',
- chkLoop : 'Begizta',
- chkMenu : 'Flasharen Menua Gaitu',
- chkFull : 'Onartu Pantaila osoa',
- scale : 'Eskalatu',
- scaleAll : 'Dena erakutsi',
- scaleNoBorder : 'Ertzik gabe',
- scaleFit : 'Doitu',
- access : 'Scriptak baimendu',
- accessAlways : 'Beti',
- accessSameDomain: 'Domeinu berdinekoak',
- accessNever : 'Inoiz ere ez',
- align : 'Lerrokatu',
- alignLeft : 'Ezkerrera',
- alignAbsBottom : 'Abs Behean',
- alignAbsMiddle : 'Abs Erdian',
- alignBaseline : 'Oinan',
- alignBottom : 'Behean',
- alignMiddle : 'Erdian',
- alignRight : 'Eskuman',
- alignTextTop : 'Testua Goian',
- alignTop : 'Goian',
- quality : 'Kalitatea',
- qualityBest : 'Hoberena',
- qualityHigh : 'Altua',
- qualityAutoHigh : 'Auto Altua',
- qualityMedium : 'Ertaina',
- qualityAutoLow : 'Auto Baxua',
- qualityLow : 'Baxua',
- windowModeWindow: 'Leihoa',
- windowModeOpaque: 'Opakoa',
- windowModeTransparent : 'Gardena',
- windowMode : 'Leihoaren modua',
- flashvars : 'Flash Aldagaiak',
- bgcolor : 'Atzeko kolorea',
- width : 'Zabalera',
- height : 'Altuera',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Mesedez URL esteka idatzi',
- validateWidth : 'Zabalera zenbaki bat izan behar da.',
- validateHeight : 'Altuera zenbaki bat izan behar da.',
- validateHSpace : 'HSpace zenbaki bat izan behar da.',
- validateVSpace : 'VSpace zenbaki bat izan behar da.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Ortografia',
- title : 'Ortografia zuzenketa',
- notAvailable : 'Barkatu baina momentu honetan zerbitzua ez dago erabilgarri.',
- errorLoading : 'Errorea gertatu da aplikazioa zerbitzaritik kargatzean: %s.',
- notInDic : 'Ez dago hiztegian',
- changeTo : 'Honekin ordezkatu',
- btnIgnore : 'Ezikusi',
- btnIgnoreAll : 'Denak Ezikusi',
- btnReplace : 'Ordezkatu',
- btnReplaceAll : 'Denak Ordezkatu',
- btnUndo : 'Desegin',
- noSuggestions : '- Iradokizunik ez -',
- progress : 'Zuzenketa ortografikoa martxan...',
- noMispell : 'Zuzenketa ortografikoa bukatuta: Akatsik ez',
- noChanges : 'Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu',
- oneChange : 'Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da',
- manyChanges : 'Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira',
- ieSpellDownload : 'Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?'
- },
-
- smiley :
- {
- toolbar : 'Aurpegierak',
- title : 'Aurpegiera Sartu',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 elementua'
- },
-
- numberedlist : 'Zenbakidun Zerrenda',
- bulletedlist : 'Buletdun Zerrenda',
- indent : 'Handitu Koska',
- outdent : 'Txikitu Koska',
-
- justify :
- {
- left : 'Lerrokatu Ezkerrean',
- center : 'Lerrokatu Erdian',
- right : 'Lerrokatu Eskuman',
- block : 'Justifikatu'
- },
-
- blockquote : 'Aipamen blokea',
-
- clipboard :
- {
- title : 'Itsatsi',
- cutError : 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+X).',
- copyError : 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+C).',
- pasteMsg : 'Mesedez teklatua erabilita (<STRONG>Ctrl/Cmd+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.',
- securityMsg : 'Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Itsatsi nahi duzun testua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?',
- toolbar : 'Itsatsi Word-etik',
- title : 'Itsatsi Word-etik',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Testu Arrunta bezala Itsatsi',
- title : 'Testu Arrunta bezala Itsatsi'
- },
-
- templates :
- {
- button : 'Txantiloiak',
- title : 'Eduki Txantiloiak',
- options : 'Template Options', // MISSING
- insertOption : 'Ordeztu oraingo edukiak',
- selectPromptMsg : 'Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):',
- emptyListMsg : '(Ez dago definitutako txantiloirik)'
- },
-
- showBlocks : 'Blokeak erakutsi',
-
- stylesCombo :
- {
- label : 'Estiloa',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Bloke Estiloak',
- panelTitle2 : 'Inline Estiloak',
- panelTitle3 : 'Objektu Estiloak'
- },
-
- format :
- {
- label : 'Formatua',
- panelTitle : 'Formatua',
-
- tag_p : 'Arrunta',
- tag_pre : 'Formateatua',
- tag_address : 'Helbidea',
- tag_h1 : 'Izenburua 1',
- tag_h2 : 'Izenburua 2',
- tag_h3 : 'Izenburua 3',
- tag_h4 : 'Izenburua 4',
- tag_h5 : 'Izenburua 5',
- tag_h6 : 'Izenburua 6',
- tag_div : 'Paragrafoa (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Letra-tipoa',
- voiceLabel : 'Letra-tipoa',
- panelTitle : 'Letra-tipoa'
- },
-
- fontSize :
- {
- label : 'Tamaina',
- voiceLabel : 'Tamaina',
- panelTitle : 'Tamaina'
- },
-
- colorButton :
- {
- textColorTitle : 'Testu Kolorea',
- bgColorTitle : 'Atzeko kolorea',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatikoa',
- more : 'Kolore gehiago...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Ortografia Zuzenketa Idatzi Ahala (SCAYT)',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Gaitu SCAYT',
- disable : 'Desgaitu SCAYT',
- about : 'SCAYTi buruz',
- toggle : 'SCAYT aldatu',
- options : 'Aukerak',
- langs : 'Hizkuntzak',
- moreSuggestions : 'Iradokizun gehiago',
- ignore : 'Baztertu',
- ignoreAll : 'Denak baztertu',
- addWord : 'Hitza Gehitu',
- emptyDic : 'Hiztegiaren izena ezin da hutsik egon.',
-
- optionsTab : 'Aukerak',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Hizkuntzak',
-
- dictionariesTab : 'Hiztegiak',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Honi buruz'
- },
-
- about :
- {
- title : 'CKEditor(r)i buruz',
- dlgTitle : 'CKEditor(r)i buruz',
- moreInfo : 'Lizentziari buruzko informazioa gure webgunean:',
- copy : 'Copyright © $1. Eskubide guztiak erreserbaturik.'
- },
-
- maximize : 'Maximizatu',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Aingura',
- flash : 'Flash Animazioa',
- div : 'Orrialde Saltoa',
- unknown : 'Objektu ezezaguna'
- },
-
- resize : 'Arrastatu tamaina aldatzeko',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Basque language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'eu' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Zerbitzaria arakatu',
+ url: 'URL',
+ protocol: 'Protokoloa',
+ upload: 'Gora kargatu',
+ uploadSubmit: 'Zerbitzarira bidalia',
+ image: 'Irudia',
+ flash: 'Flasha',
+ form: 'Formularioa',
+ checkbox: 'Kontrol-laukia',
+ radio: 'Aukera-botoia',
+ textField: 'Testu Eremua',
+ textarea: 'Testu-area',
+ hiddenField: 'Ezkutuko Eremua',
+ button: 'Botoia',
+ select: 'Hautespen Eremua',
+ imageButton: 'Irudi Botoia',
+ notSet: '<Ezarri gabe>',
+ id: 'Id',
+ name: 'Izena',
+ langDir: 'Hizkuntzaren Norabidea',
+ langDirLtr: 'Ezkerretik Eskumara(LTR)',
+ langDirRtl: 'Eskumatik Ezkerrera (RTL)',
+ langCode: 'Hizkuntza Kodea',
+ longDescr: 'URL Deskribapen Luzea',
+ cssClass: 'Estilo-orriko Klaseak',
+ advisoryTitle: 'Izenburua',
+ cssStyle: 'Estiloa',
+ ok: 'Ados',
+ cancel: 'Utzi',
+ close: 'Close', // MISSING
+ preview: 'Aurrebista',
+ resize: 'Arrastatu tamaina aldatzeko',
+ generalTab: 'Orokorra',
+ advancedTab: 'Aurreratua',
+ validateNumberFailed: 'Balio hau ez da zenbaki bat.',
+ confirmNewPage: 'Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?',
+ confirmCancel: 'Aukera batzuk aldatu egin dira. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?',
+ options: 'Aukerak',
+ target: 'Target (Helburua)',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Ezkerretik Eskumara(LTR)',
+ langDirRTL: 'Eskumatik Ezkerrera (RTL)',
+ styles: 'Estiloa',
+ cssClasses: 'Estilo-orriko Klaseak',
+ width: 'Zabalera',
+ height: 'Altuera',
+ align: 'Lerrokatu',
+ alignLeft: 'Ezkerrera',
+ alignRight: 'Eskuman',
+ alignCenter: 'Erdian',
+ alignTop: 'Goian',
+ alignMiddle: 'Erdian',
+ alignBottom: 'Behean',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Altuera zenbaki bat izan behar da.',
+ invalidWidth: 'Zabalera zenbaki bat izan behar da.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, erabilezina</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/fa.js b/devel/third-party/ckeditor/lang/fa.js
index ba731d4..49b7e2c 100644
--- a/devel/third-party/ckeditor/lang/fa.js
+++ b/devel/third-party/ckeditor/lang/fa.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Persian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['fa'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'rtl',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Ù
ÙØ¨Ø¹',
- newPage : 'برگÙÙ´ تازÙ',
- save : 'Ø°Ø®ÛØ±Ù',
- preview : 'Ù¾ÛØ´ÙÙ
Ø§ÛØ´',
- cut : 'برش',
- copy : 'Ú©Ù¾Û',
- paste : 'ÚØ³Ø¨Ø§ÙدÙ',
- print : 'ÚØ§Ù¾',
- underline : 'Ø®Ø·Ø²ÛØ±Ø¯Ø§Ø±',
- bold : 'درشت',
- italic : 'Ø®Ù
ÛØ¯Ù',
- selectAll : 'گزÛÙØ´ ÙÙ
Ù',
- removeFormat : 'Ø¨Ø±Ø¯Ø§Ø´ØªÙ ÙØ±Ù
ت',
- strike : 'Ù
ÛØ§Ùخط',
- subscript : 'Ø²ÛØ±ÙÙÛØ³',
- superscript : 'Ø¨Ø§ÙØ§ÙÙÛØ³',
- horizontalrule : 'Ú¯ÙØ¬Ø§Ùد٠خط ÙØ§ÙÙÛ',
- pagebreak : 'Ú¯ÙØ¬Ø§ÙØ¯Ù Ø´Ú©Ø³ØªÚ¯Û ÙÙ¾Ø§ÛØ§Ù ÙØ¨Ø±Ú¯Ù',
- unlink : 'برداشت٠پÛÙÙØ¯',
- undo : 'ÙØ§ÚÛØ¯Ù',
- redo : 'بازÚÛØ¯Ù',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ÙÙØ±Ø³ØªÙÙ
اÛÛ Ø³Ø±ÙØ±',
- url : 'URL',
- protocol : 'Ù¾Ø±ÙØªÚ©Ù',
- upload : 'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',
- uploadSubmit : 'Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª',
- image : 'تصÙÛØ±',
- flash : 'Flash',
- form : 'ÙØ±Ù
',
- checkbox : 'خاÙÙÙ´ گزÛÙÙØ§Û',
- radio : 'دکÙ
ÙÙ´ رادÛÙÛÛ',
- textField : 'ÙÛÙØ¯ Ù
تÙÛ',
- textarea : 'ÙØ§ØÛÙÙ´ Ù
تÙÛ',
- hiddenField : 'ÙÛÙØ¯ Ù¾ÙÙØ§Ù',
- button : 'دکÙ
Ù',
- select : 'ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û',
- imageButton : 'دکÙ
ÙÙ´ تصÙÛØ±Û',
- notSet : '<تعÛÙÙØ´Ø¯Ù>',
- id : 'Ø´ÙØ§Ø³Ù',
- name : 'ÙØ§Ù
',
- langDir : 'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',
- langDirLtr : 'ÚÙ¾ ب٠راست (LTR)',
- langDirRtl : 'راست ب٠ÚÙ¾ (RTL)',
- langCode : 'کد زباÙ',
- longDescr : 'URL ØªÙØµÛÙ Ø·ÙÙØ§ÙÛ',
- cssClass : 'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)',
- advisoryTitle : 'عÙÙØ§Ù Ú©Ù
Ú©Û',
- cssStyle : 'Ø´ÛÙÙ(style)',
- ok : 'Ù¾Ø°ÛØ±Ø´',
- cancel : 'Ø§ÙØµØ±Ø§Ù',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Ù¾ÛØ´Ø±ÙتÙ',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Ú¯ÙØ¬Ø§Ùد٠ÙÙÛØ³ÙÙ´ ÙÛÚÙ',
- title : 'گزÛÙØ´ ÙÙÛØ³ÙÙ´ÙÛÚÙ',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ ÙÙ¾ÛÙÙØ¯',
- other : '<Ø³Ø§ÛØ±>',
- menu : 'ÙÛØ±Ø§ÛØ´ Ù¾ÛÙÙØ¯',
- title : 'Ù¾ÛÙÙØ¯',
- info : 'Ø§Ø·ÙØ§Ø¹Ø§Øª Ù¾ÛÙÙØ¯',
- target : 'Ù
ÙØµØ¯',
- upload : 'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',
- advanced : 'Ù¾ÛØ´Ø±ÙتÙ',
- type : 'ÙÙØ¹ Ù¾ÛÙÙØ¯',
- toUrl : 'URL', // MISSING
- toAnchor : 'ÙÙگر در ÙÙ
ÛÙ ØµÙØÙ',
- toEmail : 'پست اÙکترÙÙÛÚ©Û',
- targetFrame : '<ÙØ±ÛÙ
>',
- targetPopup : '<Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ>',
- targetFrameName : 'ÙØ§Ù
ÙØ±ÛÙ
Ù
ÙØµØ¯',
- targetPopupName : 'ÙØ§Ù
Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ',
- popupFeatures : 'ÙÛÚÚ¯ÛÙØ§Û Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'ÙÙØ§Ø± ÙØ¶Ø¹Ûت',
- popupLocationBar: 'ÙÙØ§Ø± Ù
ÙÙØ¹Ûت',
- popupToolbar : 'ÙÙØ§Ø±Ø§Ø¨Ø²Ø§Ø±',
- popupMenuBar : 'ÙÙØ§Ø± Ù
ÙÙ',
- popupFullScreen : 'تÙ
اÙ
ØµÙØÙ (IE)',
- popupScrollBars : 'Ù
ÛÙÙÙØ§Û Ù¾ÛÙ
Ø§ÛØ´',
- popupDependent : 'ÙØ§Ø¨Ø³ØªÙ (Netscape)',
- popupWidth : 'Ù¾ÙÙØ§',
- popupLeft : 'Ù
ÙÙØ¹Ûت ÙÚÙ¾',
- popupHeight : 'درازا',
- popupTop : 'Ù
ÙÙØ¹Ûت ÙØ¨Ø§Ùا',
- id : 'Id', // MISSING
- langDir : 'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',
- langDirLTR : 'ÚÙ¾ ب٠راست (LTR)',
- langDirRTL : 'راست ب٠ÚÙ¾ (RTL)',
- acccessKey : 'Ú©ÙÛØ¯ Ø¯Ø³ØªÛØ§Ø¨Û',
- name : 'ÙØ§Ù
',
- langCode : 'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',
- tabIndex : 'ÙÙ
اÛÙÙ´ Ø¯Ø³ØªØ±Ø³Û Ø¨Ø§ Tab',
- advisoryTitle : 'عÙÙØ§Ù Ú©Ù
Ú©Û',
- advisoryContentType : 'ÙÙØ¹ Ù
ØØªÙØ§Û Ú©Ù
Ú©Û',
- cssClasses : 'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)',
- charset : 'ÙÙÛØ³Ùگا٠Ù
ÙØ¨Ø¹ ÙÙ¾ÛÙÙØ¯Ø´Ø¯Ù',
- styles : 'Ø´ÛÙÙ(style)',
- selectAnchor : 'ÛÚ© ÙÙگر برگزÛÙÛØ¯',
- anchorName : 'با ÙØ§Ù
ÙÙگر',
- anchorId : 'با Ø´ÙØ§Ø³ÙÙ´ اÙÙ
اÙ',
- emailAddress : 'ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û',
- emailSubject : 'Ù
ÙØ¶Ùع Ù¾ÛØ§Ù
',
- emailBody : 'Ù
ØªÙ Ù¾ÛØ§Ù
',
- noAnchors : '(در اÛÙ Ø³ÙØ¯ ÙÙÚ¯Ø±Û Ø¯Ø±Ø¯Ø³ØªØ±Ø³ ÙÛØ³Øª)',
- noUrl : 'ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد',
- noEmail : 'ÙØ·Ùا ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û Ø±Ø§ بÙÙÛØ³Ûد'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ ÙÙÙگر',
- menu : 'ÙÛÚÚ¯ÛÙØ§Û ÙÙگر',
- title : 'ÙÛÚÚ¯ÛÙØ§Û ÙÙگر',
- name : 'ÙØ§Ù
ÙÙگر',
- errorName : 'ÙØ·Ùا ÙØ§Ù
ÙÙگر را بÙÙÛØ³Ûد'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'جستج٠٠جاÛگزÛÙÛ',
- find : 'جستجÙ',
- replace : 'جاÛگزÛÙÛ',
- findWhat : 'ÚÙÚÛØ² را Ù
ÛÛØ§Ø¨Ûد:',
- replaceWith : 'جاÛگزÛÙÛ Ø¨Ø§:',
- notFoundMsg : 'Ù
ت٠Ù
ÙØ±Ø¯Ùظر ÛØ§Ùت ÙØ´Ø¯.',
- matchCase : 'ÙÙ
ساÙÛ Ø¯Ø± Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ÙÙÛØ³ÙÙØ§',
- matchWord : 'ÙÙ
ساÙÛ Ø¨Ø§ ÙØ§ÚÙÙ´ کاÙ
Ù',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'جاÛگزÛÙÛ ÙÙ
ÙÙ´ ÛØ§ÙتÙÙØ§',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'جدÙÙ',
- title : 'ÙÛÚÚ¯ÛÙØ§Û جدÙÙ',
- menu : 'ÙÛÚÚ¯ÛÙØ§Û جدÙÙ',
- deleteTable : 'پاککرد٠جدÙÙ',
- rows : 'Ø³Ø·Ø±ÙØ§',
- columns : 'ستÙÙÙØ§',
- border : 'Ø§ÙØ¯Ø§Ø²ÙÙ´ ÙØ¨Ù',
- align : 'ÚÛÙØ´',
- alignLeft : 'ÚÙ¾',
- alignCenter : 'ÙØ³Ø·',
- alignRight : 'راست',
- width : 'Ù¾ÙÙØ§',
- widthPx : 'Ù¾ÛکسÙ',
- widthPc : 'درصد',
- widthUnit : 'width unit', // MISSING
- height : 'درازا',
- cellSpace : 'ÙØ§ØµÙÙÙ´ Ù
ÛØ§Ù سÙÙÙÙØ§',
- cellPad : 'ÙØ§ØµÙÙÙ´ پرشد٠در سÙÙÙ',
- caption : 'عÙÙØ§Ù',
- summary : 'Ø®ÙØ§ØµÙ',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'سÙÙÙ',
- insertBefore : 'Ø§ÙØ²Ùد٠سÙÙÙ ÙØ¨Ù از',
- insertAfter : 'Ø§ÙØ²Ùد٠سÙÙ٠بعد از',
- deleteCell : 'ØØ°Ù سÙÙÙÙØ§',
- merge : 'ادغاÙ
سÙÙÙÙØ§',
- mergeRight : 'ادغاÙ
ب٠راست',
- mergeDown : 'ادغاÙ
ب٠پاÛÛÙ',
- splitHorizontal : 'جدا کرد٠اÙÙÛ Ø³ÙÙÙ',
- splitVertical : 'جدا کرد٠عÙ
ÙØ¯Û سÙÙÙ',
- title : 'ÙÛÚÚ¯ÛÙØ§Û سÙÙÙ',
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'سطر',
- insertBefore : 'Ø§ÙØ²Ùد٠سطر ÙØ¨Ù از',
- insertAfter : 'Ø§ÙØ²Ùد٠سطر بعد از',
- deleteRow : 'ØØ°Ù Ø³Ø·Ø±ÙØ§'
- },
-
- column :
- {
- menu : 'ستÙÙ',
- insertBefore : 'Ø§ÙØ²Ùد٠ستÙÙ ÙØ¨Ù از',
- insertAfter : 'Ø§ÙØ²Ùد٠ستÙ٠بعد از',
- deleteColumn : 'ØØ°Ù ستÙÙÙØ§'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û دکÙ
Ù',
- text : 'Ù
ت٠(Ù
ÙØ¯Ø§Ø±)',
- type : 'ÙÙØ¹',
- typeBtn : 'دکÙ
Ù',
- typeSbm : 'Submit',
- typeRst : 'Ø¨Ø§Ø²ÙØ´Ø§ÙÛ (Reset)'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ÙÛÚÚ¯ÛÙØ§Û خاÙÙÙ´ گزÛÙÙØ§Û',
- radioTitle : 'ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ رادÛÙÛÛ',
- value : 'Ù
ÙØ¯Ø§Ø±',
- selected : 'Ø¨Ø±Ú¯Ø²ÛØ¯Ù'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
',
- menu : 'ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
',
- action : 'رÙÛØ¯Ø§Ø¯',
- method : 'Ù
تد',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û',
- selectInfo : 'Ø§Ø·ÙØ§Ø¹Ø§Øª',
- opAvail : 'گزÛÙÙÙØ§Û دردسترس',
- value : 'Ù
ÙØ¯Ø§Ø±',
- size : 'Ø§ÙØ¯Ø§Ø²Ù',
- lines : 'Ø®Ø·ÙØ·',
- chkMulti : 'گزÛÙØ´ ÚÙØ¯Ú¯Ø§ÙÙ ÙØ±Ø§ÙÙ
باشد',
- opText : 'Ù
تÙ',
- opValue : 'Ù
ÙØ¯Ø§Ø±',
- btnAdd : 'Ø§ÙØ²ÙدÙ',
- btnModify : 'ÙÛØ±Ø§ÛØ´',
- btnUp : 'Ø¨Ø§ÙØ§',
- btnDown : 'پائÛÙ',
- btnSetValue : 'ØªÙØ¸ÛÙ
ب٠عÙÙØ§Ù Ù
ÙØ¯Ø§Ø± ÙØ¨Ø±Ú¯Ø²ÛدÙ',
- btnDelete : 'پاککردÙ'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û ÙØ§ØÛÙÙ´ Ù
تÙÛ',
- cols : 'ستÙÙÙØ§',
- rows : 'Ø³Ø·Ø±ÙØ§'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù
تÙÛ',
- name : 'ÙØ§Ù
',
- value : 'Ù
ÙØ¯Ø§Ø±',
- charWidth : 'Ù¾ÙÙØ§Û ÙÙÛØ³Ù',
- maxChars : 'Ø¨ÛØ´ÛÙÙÙ´ ÙÙÛØ³ÙÙØ§',
- type : 'ÙÙØ¹',
- typeText : 'Ù
تÙ',
- typePass : 'Ú¯Ø°Ø±ÙØ§ÚÙ'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù¾ÙÙØ§Ù',
- name : 'ÙØ§Ù
',
- value : 'Ù
ÙØ¯Ø§Ø±'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±',
- titleButton : 'ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ تصÙÛØ±Û',
- menu : 'ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±',
- infoTab : 'Ø§Ø·ÙØ§Ø¹Ø§Øª تصÙÛØ±',
- btnUpload : 'Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª',
- upload : 'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',
- alt : 'Ù
ت٠جاÛگزÛÙ',
- width : 'Ù¾ÙÙØ§',
- height : 'درازا',
- lockRatio : 'ÙÙÙکرد٠ÙÙØ³Ø¨Øª',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Ø¨Ø§Ø²ÙØ´Ø§ÙÛ Ø§ÙØ¯Ø§Ø²Ù',
- border : 'ÙØ¨Ù',
- hSpace : 'ÙØ§ØµÙÙÙ´ اÙÙÛ',
- vSpace : 'ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û',
- align : 'ÚÛÙØ´',
- alignLeft : 'ÚÙ¾',
- alignRight : 'راست',
- alertUrl : 'ÙØ·Ùا URL تصÙÛØ± را بÙÙÛØ³Ûد',
- linkTab : 'Ù¾ÛÙÙØ¯',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ÙÛÚÚ¯ÛÙØ§Û Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'ÙÛÚÚ¯ÛÙØ§Û Flash',
- chkPlay : 'آغاز ÙØ®Ùدکار',
- chkLoop : 'Ø§Ø¬Ø±Ø§Û Ù¾ÛØ§Ù¾Û',
- chkMenu : 'Ø¯Ø±Ø¯Ø³ØªØ±Ø³Ø¨ÙØ¯Ù Ù
ÙÙÛ Flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Ù
ÙÛØ§Ø³',
- scaleAll : 'ÙÙ
Ø§ÛØ´ ÙÙ
Ù',
- scaleNoBorder : 'بدÙ٠کراÙ',
- scaleFit : 'جاÛÚ¯ÛØ±Û کاÙ
Ù',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'ÚÛÙØ´',
- alignLeft : 'ÚÙ¾',
- alignAbsBottom : 'پائÛÙ Ù
Ø·ÙÙ',
- alignAbsMiddle : 'ÙØ³Ø· Ù
Ø·ÙÙ',
- alignBaseline : 'خطپاÛÙ',
- alignBottom : 'پائÛÙ',
- alignMiddle : 'ÙØ³Ø·',
- alignRight : 'راست',
- alignTextTop : 'Ù
ØªÙ Ø¨Ø§ÙØ§',
- alignTop : 'Ø¨Ø§ÙØ§',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'رÙÚ¯ پسزÙ
ÛÙÙ',
- width : 'Ù¾ÙÙØ§',
- height : 'درازا',
- hSpace : 'ÙØ§ØµÙÙÙ´ اÙÙÛ',
- vSpace : 'ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û',
- validateSrc : 'ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'در ÙØ§ÚÙÙØ§Ù
Ù ÛØ§Ùت ÙØ´Ø¯',
- changeTo : 'تغÛÛØ± بÙ',
- btnIgnore : 'ÚØ´Ù
Ù¾ÙØ´Û',
- btnIgnoreAll : 'ÚØ´Ù
Ù¾ÙØ´Û ÙÙ
Ù',
- btnReplace : 'جاÛگزÛÙÛ',
- btnReplaceAll : 'جاÛگزÛÙÛ ÙÙ
Ù',
- btnUndo : 'ÙØ§ÚÛÙØ´',
- noSuggestions : '- Ù¾ÛØ´ÙÙØ§Ø¯Û ÙÛØ³Øª -',
- progress : 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ در ØØ§Ù Ø§ÙØ¬Ø§Ù
...',
- noMispell : 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ØºÙØ·Ø§Ù
ÙØ§Ø¦Û ÛØ§Ùت ÙØ´Ø¯',
- noChanges : 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ÙØ§ÚÙØ§Û تغÛÛØ± ÙÛØ§Ùت',
- oneChange : 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÛÚ© ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت',
- manyChanges : 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. %1 ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت',
- ieSpellDownload : 'بررسÛÚ©ÙÙØ¯ÙÙ´ اÙ
ÙØ§ ÙØµØ¨ ÙØ´Ø¯Ù است. Ø¢ÛØ§ Ù
ÛØ®ÙاÙÛØ¯ آ٠را ÙÙ
اکÙÙÙ Ø¯Ø±ÛØ§Ùت Ú©ÙÛØ¯Ø'
- },
-
- smiley :
- {
- toolbar : 'Ø®ÙØ¯Ø§ÙÚ©',
- title : 'Ú¯ÙØ¬Ø§ÙØ¯Ù Ø®ÙØ¯Ø§ÙÚ©',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±ÙØ¯Ø§Ø±',
- bulletedlist : 'ÙÙØ±Ø³Øª ÙÙØ·ÙاÛ',
- indent : 'Ø§ÙØ²Ø§ÛØ´ ØªÙØ±ÙتگÛ',
- outdent : 'Ú©Ø§ÙØ´ ØªÙØ±ÙتگÛ',
-
- justify :
- {
- left : 'ÚÙ¾ÚÛÙ',
- center : 'Ù
ÛØ§ÙÚÛÙ',
- right : 'راستÚÛÙ',
- block : 'بÙÙÚ©ÚÛÙ'
- },
-
- blockquote : 'بÙÙÚ© ÙÙÙ ÙÙÙ',
-
- clipboard :
- {
- title : 'ÚØ³Ø¨Ø§ÙدÙ',
- cutError : 'ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û برش را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙÚ©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+X).',
- copyError : 'ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û Ú©Ù¾Ûکرد٠را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙÚ©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+C).',
- pasteMsg : 'ÙØ·Ùا Ù
ت٠را با Ú©ÙÛØ¯ÙØ§Û (<STRONG>Ctrl/Cmd+V</STRONG>) در اÛ٠جعبÙÙ´ Ù
تÙÛ Ø¨ÚØ³Ø¨Ø§ÙÛØ¯ Ù <STRONG>Ù¾Ø°ÛØ±Ø´</STRONG> را بزÙÛØ¯.',
- securityMsg : 'ب٠خاطر ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
Ø§Ø ÙÛØ±Ø§Ûشگر ÙÙ
ÛØªÙØ§ÙØ¯ Ø¯Ø³ØªØ±Ø³Û Ù
ستÙÛÙ
ب٠دادÙÙØ§Û clipboard داشت٠باشد. Ø´Ù
ا Ø¨Ø§ÛØ¯ Ø¯ÙØ¨Ø§Ø±Ù Ø¢ÙØ±Ø§ در اÛÙ Ù¾ÙØ¬Ø±Ù Ø¨ÚØ³Ø¨Ø§ÙÛØ¯.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'ÚØ³Ø¨Ø§Ùد٠از Word',
- title : 'ÚØ³Ø¨Ø§Ùد٠از Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù',
- title : 'ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù'
- },
-
- templates :
- {
- button : 'اÙÚ¯ÙÙØ§',
- title : 'اÙÚ¯ÙÙØ§Û Ù
ØØªÙÛØ§Øª',
- options : 'Template Options', // MISSING
- insertOption : 'Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø¬Ø§ÛگزÛÙ Ø´ÙÙØ¯',
- selectPromptMsg : 'ÙØ·Ùا اÙÚ¯ÙÛ Ù
ÙØ±Ø¯Ùظر را Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú©Ø±Ø¯Ù Ø¯Ø± ÙÛØ±Ø§Ûشگر برگزÛÙÛØ¯<br>(Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø§Ø² دست Ø®ÙØ§ÙÙØ¯ Ø±ÙØª):',
- emptyListMsg : '(اÙÚ¯ÙØ¦Û تعرÛÙ ÙØ´Ø¯Ù است)'
- },
-
- showBlocks : 'ÙÙ
Ø§ÛØ´ بÙÙÚ©ÙØ§',
-
- stylesCombo :
- {
- label : 'سبک',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ÙØ±Ù
ت',
- panelTitle : 'ÙØ±Ù
ت',
-
- tag_p : 'ÙØ±Ù
اÙ',
- tag_pre : 'ÙØ±Ù
تشدÙ',
- tag_address : 'آدرس',
- tag_h1 : 'سرÙÙÛØ³ 1',
- tag_h2 : 'سرÙÙÛØ³ 2',
- tag_h3 : 'سرÙÙÛØ³ 3',
- tag_h4 : 'سرÙÙÛØ³ 4',
- tag_h5 : 'سرÙÙÛØ³ 5',
- tag_h6 : 'سرÙÙÛØ³ 6',
- tag_div : 'Ø¨ÙØ¯'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ÙÙÙ
',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ÙÙÙ
'
- },
-
- fontSize :
- {
- label : 'Ø§ÙØ¯Ø§Ø²Ù',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Ø§ÙØ¯Ø§Ø²Ù'
- },
-
- colorButton :
- {
- textColorTitle : 'رÙÚ¯ Ù
تÙ',
- bgColorTitle : 'رÙÚ¯ پسزÙ
ÛÙÙ',
- panelTitle : 'Colors', // MISSING
- auto : 'Ø®ÙØ¯Ú©Ø§Ø±',
- more : 'رÙÚ¯ÙØ§Û Ø¨ÛØ´ØªØ±...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Persian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'fa' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'rtl',
+
+ // ARIA description.
+ editor: 'ÙÛØ±Ø§Ûشگر Ù
ت٠غÙÛ',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Ú©ÙÛØ¯ Alt+0 را Ø¨Ø±Ø§Û Ø±Ø§ÙÙÙ
اÛÛ Ø¨ÙØ´Ø§Ø±Ûد',
+
+ browseServer: 'ÙÙØ±Ø³ØªÙÙ
اÛÛ Ø³Ø±ÙØ±',
+ url: 'URL',
+ protocol: 'Ù¾Ø±ÙØªÚ©Ù',
+ upload: 'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',
+ uploadSubmit: 'Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª',
+ image: 'تصÙÛØ±',
+ flash: 'ÙÙØ´',
+ form: 'ÙØ±Ù
',
+ checkbox: 'خاÙÙÙ´ گزÛÙÙØ§Û',
+ radio: 'دکÙ
ÙÙ´ رادÛÙÛÛ',
+ textField: 'ÙÛÙØ¯ Ù
تÙÛ',
+ textarea: 'ÙØ§ØÛÙÙ´ Ù
تÙÛ',
+ hiddenField: 'ÙÛÙØ¯ Ù¾ÙÙØ§Ù',
+ button: 'دکÙ
Ù',
+ select: 'ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û',
+ imageButton: 'دکÙ
ÙÙ´ تصÙÛØ±Û',
+ notSet: '<تعÛÙ ÙØ´Ø¯Ù>',
+ id: 'Ø´ÙØ§Ø³Ù',
+ name: 'ÙØ§Ù
',
+ langDir: 'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',
+ langDirLtr: 'ÚÙ¾ ب٠راست (LTR)',
+ langDirRtl: 'راست ب٠ÚÙ¾ (RTL)',
+ langCode: 'کد زباÙ',
+ longDescr: 'URL ØªÙØµÛÙ Ø·ÙÙØ§ÙÛ',
+ cssClass: 'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)',
+ advisoryTitle: 'عÙÙØ§Ù Ú©Ù
Ú©Û',
+ cssStyle: 'Ø´ÛÙÙ(style)',
+ ok: 'Ù¾Ø°ÛØ±Ø´',
+ cancel: 'Ø§ÙØµØ±Ø§Ù',
+ close: 'بستÙ',
+ preview: 'Ù¾ÛØ´ÙÙ
Ø§ÛØ´',
+ resize: 'Ú©Ø´ÛØ¯Ù Ø¨Ø±Ø§Û ØªØºÛÛØ± Ø§ÙØ¯Ø§Ø²Ù',
+ generalTab: 'عÙ
ÙÙ
Û',
+ advancedTab: 'Ù¾ÛØ´Ø±ÙتÙ',
+ validateNumberFailed: 'اÛÙ Ù
ÙØ¯Ø§Ø± ÛÚ© عدد ÙÛØ³Øª.',
+ confirmNewPage: 'ÙØ± تغÛÛØ± Ø§ÛØ¬Ø§Ø¯ شدÙÛ Ø°Ø®ÛØ±Ù ÙØ´Ø¯Ù از بÛÙ Ø®ÙØ§Ùد Ø±ÙØª. Ø¢ÛØ§ اطÙ
ÛÙØ§Ù Ø¯Ø§Ø±ÛØ¯ Ú©Ù ÙØµØ¯ Ø¨Ø§Ø±Ú¯ÛØ±Û ØµÙØÙ Ø¬Ø¯ÛØ¯Û را Ø¯Ø§Ø±ÛØ¯Ø',
+ confirmCancel: 'Ø¨Ø±Ø®Û Ø§Ø² گزÛÙÙÙØ§ تغÛÛØ± Ú©Ø±Ø¯ÙØ§Ùد. Ø¢ÛØ§ ÙØ§Ùعا ÙØµØ¯ بست٠اÛÙ Ù¾ÙØ¬Ø±Ù را Ø¯Ø§Ø±ÛØ¯Ø',
+ options: 'گزÛÙÙÙØ§',
+ target: 'Ù
Ø³ÛØ±',
+ targetNew: 'Ù¾ÙØ¬Ø±Ù Ø¬Ø¯ÛØ¯ (_blank)',
+ targetTop: 'Ø¨Ø§ÙØ§ØªØ±ÛÙ Ù¾ÙØ¬Ø±Ù (_top)',
+ targetSelf: 'ÙÙ
Ø§Ù Ù¾ÙØ¬Ø±Ù (_self)',
+ targetParent: 'Ù¾ÙØ¬Ø±Ù ÙØ§Ùد (_parent)',
+ langDirLTR: 'ÚÙ¾ ب٠راست (LTR)',
+ langDirRTL: 'راست ب٠ÚÙ¾ (RTL)',
+ styles: 'سبک',
+ cssClasses: 'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù',
+ width: 'Ù¾ÙÙØ§',
+ height: 'درازا',
+ align: 'ÚÛÙØ´',
+ alignLeft: 'ÚÙ¾',
+ alignRight: 'راست',
+ alignCenter: 'ÙØ³Ø·',
+ alignTop: 'Ø¨Ø§ÙØ§',
+ alignMiddle: 'ÙØ³Ø·',
+ alignBottom: 'پائÛÙ',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Ø§Ø±ØªÙØ§Ø¹ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidWidth: 'Ù¾ÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidCssLength: 'عدد تعÛÛÙ Ø´Ø¯Ù Ø¨Ø±Ø§Û ÙÛÙØ¯ "%1" Ø¨Ø§ÛØ¯ ÛÚ© عدد Ù
ثبت با ÛØ§ بدÙÙ ÛÚ© ÙØ§ØØ¯ Ø§ÙØ¯Ø§Ø²Ù Ú¯ÛØ±Û CSS Ù
عتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'عدد تعÛÛÙ Ø´Ø¯Ù Ø¨Ø±Ø§Û ÙÛÙØ¯ "%1" Ø¨Ø§ÛØ¯ ÛÚ© عدد Ù
ثبت با ÛØ§ بدÙÙ ÛÚ© ÙØ§ØØ¯ Ø§ÙØ¯Ø§Ø²Ù Ú¯ÛØ±Û HTML Ù
عتبر باشد (px or %).',
+ invalidInlineStyle: 'عدد تعÛÛÙ Ø´Ø¯Ù Ø¨Ø±Ø§Û Ø³Ø¨Ú© درÙÙØ®Ø·Û(Inline Style) Ø¨Ø§ÛØ¯ Ø¯Ø§Ø±Ø§Û ÛÚ© ÛØ§ ÚÙØ¯ ÚÙØ¯ØªØ§ÛÛ Ø¨Ø§ Ø´Ú©ÙÛ Ø´Ø¨ÛÙ "name : value" Ú©Ù Ø¨Ø§ÛØ¯ با ÛÚ© ","(semi-colons) از ÙÙ
جدا Ø´ÙÙØ¯.',
+ cssLengthTooltip: 'ÛÚ© عدد Ø¨Ø±Ø§Û ÛÚ© Ù
ÙØ¯Ø§Ø± بر ØØ³Ø¨ Ù¾ÛÚ©Ø³Ù Ù ÛØ§ ÛÚ© عدد با ÛÚ© ÙØ§ØØ¯ CSS Ù
عتبر ÙØ§Ø±Ø¯ Ú©ÙÛØ¯ (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">Ø ØºÛØ± ÙØ§Ø¨Ù دسترس</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/fi.js b/devel/third-party/ckeditor/lang/fi.js
index 77ce319..8111a35 100644
--- a/devel/third-party/ckeditor/lang/fi.js
+++ b/devel/third-party/ckeditor/lang/fi.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Finnish language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['fi'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rikastekstieditori, %1, paina ALT 0 nähdäksesi ohjeen.',
-
- // ARIA descriptions.
- toolbar : 'Työkalupalkki',
- editor : 'Rikastekstieditori',
-
- // Toolbar buttons without dialogs.
- source : 'Koodi',
- newPage : 'Tyhjennä',
- save : 'Tallenna',
- preview : 'Esikatsele',
- cut : 'Leikkaa',
- copy : 'Kopioi',
- paste : 'Liitä',
- print : 'Tulosta',
- underline : 'Alleviivattu',
- bold : 'Lihavoitu',
- italic : 'Kursivoitu',
- selectAll : 'Valitse kaikki',
- removeFormat : 'Poista muotoilu',
- strike : 'Yliviivattu',
- subscript : 'Alaindeksi',
- superscript : 'Yläindeksi',
- horizontalrule : 'Lisää murtoviiva',
- pagebreak : 'Lisää sivun vaihto',
- unlink : 'Poista linkki',
- undo : 'Kumoa',
- redo : 'Toista',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Selaa palvelinta',
- url : 'Osoite',
- protocol : 'Protokolla',
- upload : 'Lisää tiedosto',
- uploadSubmit : 'Lähetä palvelimelle',
- image : 'Kuva',
- flash : 'Flash',
- form : 'Lomake',
- checkbox : 'Valintaruutu',
- radio : 'Radiopainike',
- textField : 'Tekstikenttä',
- textarea : 'Tekstilaatikko',
- hiddenField : 'Piilokenttä',
- button : 'Painike',
- select : 'Valintakenttä',
- imageButton : 'Kuvapainike',
- notSet : '<ei asetettu>',
- id : 'Tunniste',
- name : 'Nimi',
- langDir : 'Kielen suunta',
- langDirLtr : 'Vasemmalta oikealle (LTR)',
- langDirRtl : 'Oikealta vasemmalle (RTL)',
- langCode : 'Kielikoodi',
- longDescr : 'Pitkän kuvauksen URL',
- cssClass : 'Tyyliluokat',
- advisoryTitle : 'Avustava otsikko',
- cssStyle : 'Tyyli',
- ok : 'OK',
- cancel : 'Peruuta',
- close : 'Sulje',
- preview : 'Esikatselu',
- generalTab : 'Yleinen',
- advancedTab : 'Lisäominaisuudet',
- validateNumberFailed : 'Arvon pitää olla numero.',
- confirmNewPage : 'Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?',
- confirmCancel : 'Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?',
- options : 'Asetukset',
- target : 'Kohde',
- targetNew : 'Uusi ikkuna (_blank)',
- targetTop : 'Päällimmäinen ikkuna (_top)',
- targetSelf : 'Sama ikkuna (_self)',
- targetParent : 'Ylemmän tason ikkuna (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ei saatavissa</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Lisää erikoismerkki',
- title : 'Valitse erikoismerkki',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Lisää linkki/muokkaa linkkiä',
- other : '<muu>',
- menu : 'Muokkaa linkkiä',
- title : 'Linkki',
- info : 'Linkin tiedot',
- target : 'Kohde',
- upload : 'Lisää tiedosto',
- advanced : 'Lisäominaisuudet',
- type : 'Linkkityyppi',
- toUrl : 'Osoite',
- toAnchor : 'Ankkuri tässä sivussa',
- toEmail : 'Sähköposti',
- targetFrame : '<kehys>',
- targetPopup : '<popup ikkuna>',
- targetFrameName : 'Kohdekehyksen nimi',
- targetPopupName : 'Popup ikkunan nimi',
- popupFeatures : 'Popup ikkunan ominaisuudet',
- popupResizable : 'Venytettävä',
- popupStatusBar : 'Tilarivi',
- popupLocationBar: 'Osoiterivi',
- popupToolbar : 'Vakiopainikkeet',
- popupMenuBar : 'Valikkorivi',
- popupFullScreen : 'Täysi ikkuna (IE)',
- popupScrollBars : 'Vierityspalkit',
- popupDependent : 'Riippuva (Netscape)',
- popupWidth : 'Leveys',
- popupLeft : 'Vasemmalta (px)',
- popupHeight : 'Korkeus',
- popupTop : 'Ylhäältä (px)',
- id : 'Tunniste',
- langDir : 'Kielen suunta',
- langDirLTR : 'Vasemmalta oikealle (LTR)',
- langDirRTL : 'Oikealta vasemmalle (RTL)',
- acccessKey : 'Pikanäppäin',
- name : 'Nimi',
- langCode : 'Kielen suunta',
- tabIndex : 'Tabulaattori indeksi',
- advisoryTitle : 'Avustava otsikko',
- advisoryContentType : 'Avustava sisällön tyyppi',
- cssClasses : 'Tyyliluokat',
- charset : 'Linkitetty kirjaimisto',
- styles : 'Tyyli',
- selectAnchor : 'Valitse ankkuri',
- anchorName : 'Ankkurin nimen mukaan',
- anchorId : 'Ankkurin ID:n mukaan',
- emailAddress : 'Sähköpostiosoite',
- emailSubject : 'Aihe',
- emailBody : 'Viesti',
- noAnchors : '(Ei ankkureita tässä dokumentissa)',
- noUrl : 'Linkille on kirjoitettava URL',
- noEmail : 'Kirjoita sähköpostiosoite'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Lisää ankkuri/muokkaa ankkuria',
- menu : 'Ankkurin ominaisuudet',
- title : 'Ankkurin ominaisuudet',
- name : 'Nimi',
- errorName : 'Ankkurille on kirjoitettava nimi'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numeroidun listan ominaisuudet',
- bulletedTitle : 'Numeroimattoman listan ominaisuudet',
- type : 'Tyyppi',
- start : 'Alku',
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Ympyrä',
- disc : 'Levy',
- square : 'Neliö',
- none : 'Ei mikään',
- notset : '<ei asetettu>',
- armenian : 'Armeenialainen numerointi',
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Pienet roomalaiset (i, ii, iii, iv, v, jne.)',
- upperRoman : 'Isot roomalaiset (I, II, III, IV, V, jne.)',
- lowerAlpha : 'Pienet aakkoset (a, b, c, d, e, jne.)',
- upperAlpha : 'Isot aakkoset (A, B, C, D, E, jne.)',
- lowerGreek : 'Pienet kreikkalaiset (alpha, beta, gamma, jne.)',
- decimal : 'Desimaalit (1, 2, 3, jne.)',
- decimalLeadingZero : 'Desimaalit, alussa nolla (01, 02, 03, jne.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Etsi ja korvaa',
- find : 'Etsi',
- replace : 'Korvaa',
- findWhat : 'Etsi mitä:',
- replaceWith : 'Korvaa tällä:',
- notFoundMsg : 'Etsittyä tekstiä ei löytynyt.',
- matchCase : 'Sama kirjainkoko',
- matchWord : 'Koko sana',
- matchCyclic : 'Kierrä ympäri',
- replaceAll : 'Korvaa kaikki',
- replaceSuccessMsg : '%1 esiintymä(ä) korvattu.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Taulu',
- title : 'Taulun ominaisuudet',
- menu : 'Taulun ominaisuudet',
- deleteTable : 'Poista taulu',
- rows : 'Rivit',
- columns : 'Sarakkeet',
- border : 'Rajan paksuus',
- align : 'Kohdistus',
- alignLeft : 'Vasemmalle',
- alignCenter : 'Keskelle',
- alignRight : 'Oikealle',
- width : 'Leveys',
- widthPx : 'pikseliä',
- widthPc : 'prosenttia',
- widthUnit : 'leveysyksikkö',
- height : 'Korkeus',
- cellSpace : 'Solujen väli',
- cellPad : 'Solujen sisennys',
- caption : 'Otsikko',
- summary : 'Yhteenveto',
- headers : 'Ylätunnisteet',
- headersNone : 'Ei',
- headersColumn : 'Ensimmäinen sarake',
- headersRow : 'Ensimmäinen rivi',
- headersBoth : 'Molemmat',
- invalidRows : 'Rivien määrän täytyy olla suurempi kuin 0.',
- invalidCols : 'Sarakkeiden määrän täytyy olla suurempi kuin 0.',
- invalidBorder : 'Reunan koon täytyy olla numero.',
- invalidWidth : 'Taulun leveyden täytyy olla numero.',
- invalidHeight : 'Taulun korkeuden täytyy olla numero.',
- invalidCellSpacing : 'Solujen välin täytyy olla numero.',
- invalidCellPadding : 'Solujen sisennyksen täytyy olla numero.',
-
- cell :
- {
- menu : 'Solu',
- insertBefore : 'Lisää solu eteen',
- insertAfter : 'Lisää solu perään',
- deleteCell : 'Poista solut',
- merge : 'Yhdistä solut',
- mergeRight : 'Yhdistä oikealla olevan kanssa',
- mergeDown : 'Yhdistä alla olevan kanssa',
- splitHorizontal : 'Jaa solu vaakasuunnassa',
- splitVertical : 'Jaa solu pystysuunnassa',
- title : 'Solun ominaisuudet',
- cellType : 'Solun tyyppi',
- rowSpan : 'Rivin jatkuvuus',
- colSpan : 'Solun jatkuvuus',
- wordWrap : 'Rivitys',
- hAlign : 'Horisontaali kohdistus',
- vAlign : 'Vertikaali kohdistus',
- alignTop : 'Ylös',
- alignMiddle : 'Keskelle',
- alignBottom : 'Alas',
- alignBaseline : 'Alas (teksti)',
- bgColor : 'Taustan väri',
- borderColor : 'Reunan väri',
- data : 'Data',
- header : 'Ylätunniste',
- yes : 'Kyllä',
- no : 'Ei',
- invalidWidth : 'Solun leveyden täytyy olla numero.',
- invalidHeight : 'Solun korkeuden täytyy olla numero.',
- invalidRowSpan : 'Rivin jatkuvuuden täytyy olla kokonaisluku.',
- invalidColSpan : 'Solun jatkuvuuden täytyy olla kokonaisluku.',
- chooseColor : 'Valitse'
- },
-
- row :
- {
- menu : 'Rivi',
- insertBefore : 'Lisää rivi yläpuolelle',
- insertAfter : 'Lisää rivi alapuolelle',
- deleteRow : 'Poista rivit'
- },
-
- column :
- {
- menu : 'Sarake',
- insertBefore : 'Lisää sarake vasemmalle',
- insertAfter : 'Lisää sarake oikealle',
- deleteColumn : 'Poista sarakkeet'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Painikkeen ominaisuudet',
- text : 'Teksti (arvo)',
- type : 'Tyyppi',
- typeBtn : 'Painike',
- typeSbm : 'Lähetä',
- typeRst : 'Tyhjennä'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Valintaruudun ominaisuudet',
- radioTitle : 'Radiopainikkeen ominaisuudet',
- value : 'Arvo',
- selected : 'Valittu'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Lomakkeen ominaisuudet',
- menu : 'Lomakkeen ominaisuudet',
- action : 'Toiminto',
- method : 'Tapa',
- encoding : 'Enkoodaus'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Valintakentän ominaisuudet',
- selectInfo : 'Info',
- opAvail : 'Ominaisuudet',
- value : 'Arvo',
- size : 'Koko',
- lines : 'Rivit',
- chkMulti : 'Salli usea valinta',
- opText : 'Teksti',
- opValue : 'Arvo',
- btnAdd : 'Lisää',
- btnModify : 'Muuta',
- btnUp : 'Ylös',
- btnDown : 'Alas',
- btnSetValue : 'Aseta valituksi',
- btnDelete : 'Poista'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Tekstilaatikon ominaisuudet',
- cols : 'Sarakkeita',
- rows : 'Rivejä'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Tekstikentän ominaisuudet',
- name : 'Nimi',
- value : 'Arvo',
- charWidth : 'Leveys',
- maxChars : 'Maksimi merkkimäärä',
- type : 'Tyyppi',
- typeText : 'Teksti',
- typePass : 'Salasana'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Piilokentän ominaisuudet',
- name : 'Nimi',
- value : 'Arvo'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Kuvan ominaisuudet',
- titleButton : 'Kuvapainikkeen ominaisuudet',
- menu : 'Kuvan ominaisuudet',
- infoTab : 'Kuvan tiedot',
- btnUpload : 'Lähetä palvelimelle',
- upload : 'Lisää kuva',
- alt : 'Vaihtoehtoinen teksti',
- width : 'Leveys',
- height : 'Korkeus',
- lockRatio : 'Lukitse suhteet',
- unlockRatio : 'Vapauta suhteet',
- resetSize : 'Alkuperäinen koko',
- border : 'Kehys',
- hSpace : 'Vaakatila',
- vSpace : 'Pystytila',
- align : 'Kohdistus',
- alignLeft : 'Vasemmalle',
- alignRight : 'Oikealle',
- alertUrl : 'Kirjoita kuvan osoite (URL)',
- linkTab : 'Linkki',
- button2Img : 'Haluatko muuntaa valitun kuvanäppäimen kuvaksi?',
- img2Button : 'Haluatko muuntaa valitun kuvan kuvanäppäimeksi?',
- urlMissing : 'Kuvan lähdeosoite puuttuu.',
- validateWidth : 'Leveyden täytyy olla kokonaisluku.',
- validateHeight : 'Korkeuden täytyy olla kokonaisluku.',
- validateBorder : 'Kehyksen täytyy olla kokonaisluku.',
- validateHSpace : 'HSpace-määrityksen täytyy olla kokonaisluku.',
- validateVSpace : 'VSpace-määrityksen täytyy olla kokonaisluku.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash-ominaisuudet',
- propertiesTab : 'Ominaisuudet',
- title : 'Flash ominaisuudet',
- chkPlay : 'Automaattinen käynnistys',
- chkLoop : 'Toisto',
- chkMenu : 'Näytä Flash-valikko',
- chkFull : 'Salli kokoruututila',
- scale : 'Levitä',
- scaleAll : 'Näytä kaikki',
- scaleNoBorder : 'Ei rajaa',
- scaleFit : 'Tarkka koko',
- access : 'Skriptien pääsy',
- accessAlways : 'Aina',
- accessSameDomain: 'Sama verkkotunnus',
- accessNever : 'Ei koskaan',
- align : 'Kohdistus',
- alignLeft : 'Vasemmalle',
- alignAbsBottom : 'Aivan alas',
- alignAbsMiddle : 'Aivan keskelle',
- alignBaseline : 'Alas (teksti)',
- alignBottom : 'Alas',
- alignMiddle : 'Keskelle',
- alignRight : 'Oikealle',
- alignTextTop : 'Ylös (teksti)',
- alignTop : 'Ylös',
- quality : 'Laatu',
- qualityBest : 'Paras',
- qualityHigh : 'Korkea',
- qualityAutoHigh : 'Automaattinen korkea',
- qualityMedium : 'Keskitaso',
- qualityAutoLow : 'Automaattinen matala',
- qualityLow : 'Matala',
- windowModeWindow: 'Ikkuna',
- windowModeOpaque: 'Läpinäkyvyys',
- windowModeTransparent : 'Läpinäkyvä',
- windowMode : 'Ikkuna tila',
- flashvars : 'Muuttujat Flash:lle',
- bgcolor : 'Taustaväri',
- width : 'Leveys',
- height : 'Korkeus',
- hSpace : 'Vaakatila',
- vSpace : 'Pystytila',
- validateSrc : 'Linkille on kirjoitettava URL',
- validateWidth : 'Leveyden täytyy olla numero.',
- validateHeight : 'Korkeuden täytyy olla numero.',
- validateHSpace : 'Vaakatilan täytyy olla numero.',
- validateVSpace : 'Pystytilan täytyy olla numero.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Tarkista oikeinkirjoitus',
- title : 'Oikoluku',
- notAvailable : 'Valitettavasti oikoluku ei ole käytössä tällä hetkellä.',
- errorLoading : 'Virhe ladattaessa oikolukupalvelua isännältä: %s.',
- notInDic : 'Ei sanakirjassa',
- changeTo : 'Vaihda',
- btnIgnore : 'Jätä huomioimatta',
- btnIgnoreAll : 'Jätä kaikki huomioimatta',
- btnReplace : 'Korvaa',
- btnReplaceAll : 'Korvaa kaikki',
- btnUndo : 'Kumoa',
- noSuggestions : 'Ei ehdotuksia',
- progress : 'Tarkistus käynnissä...',
- noMispell : 'Tarkistus valmis: Ei virheitä',
- noChanges : 'Tarkistus valmis: Yhtään sanaa ei muutettu',
- oneChange : 'Tarkistus valmis: Yksi sana muutettiin',
- manyChanges : 'Tarkistus valmis: %1 sanaa muutettiin',
- ieSpellDownload : 'Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?'
- },
-
- smiley :
- {
- toolbar : 'Hymiö',
- title : 'Lisää hymiö',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elementin polku',
- eleTitle : '%1 elementti'
- },
-
- numberedlist : 'Numerointi',
- bulletedlist : 'Luottelomerkit',
- indent : 'Suurenna sisennystä',
- outdent : 'Pienennä sisennystä',
-
- justify :
- {
- left : 'Tasaa vasemmat reunat',
- center : 'Keskitä',
- right : 'Tasaa oikeat reunat',
- block : 'Tasaa molemmat reunat'
- },
-
- blockquote : 'Lainaus',
-
- clipboard :
- {
- title : 'Liitä',
- cutError : 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).',
- copyError : 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).',
- pasteMsg : 'Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.',
- securityMsg : 'Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.',
- pasteArea : 'Leikealue'
- },
-
- pastefromword :
- {
- confirmCleanup : 'Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)',
- toolbar : 'Liitä Word-dokumentista',
- title : 'Liitä Word-dokumentista',
- error : 'Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia'
- },
-
- pasteText :
- {
- button : 'Liitä tekstinä',
- title : 'Liitä tekstinä'
- },
-
- templates :
- {
- button : 'Pohjat',
- title : 'Sisältöpohjat',
- options : 'Template Options', // MISSING
- insertOption : 'Korvaa editorin koko sisältö',
- selectPromptMsg : 'Valitse pohja editoriin<br>(aiempi sisältö menetetään):',
- emptyListMsg : '(Ei määriteltyjä pohjia)'
- },
-
- showBlocks : 'Näytä elementit',
-
- stylesCombo :
- {
- label : 'Tyyli',
- panelTitle : 'Muotoilujen tyylit',
- panelTitle1 : 'Lohkojen tyylit',
- panelTitle2 : 'Rivinsisäiset tyylit',
- panelTitle3 : 'Objektien tyylit'
- },
-
- format :
- {
- label : 'Muotoilu',
- panelTitle : 'Muotoilu',
-
- tag_p : 'Normaali',
- tag_pre : 'Muotoiltu',
- tag_address : 'Osoite',
- tag_h1 : 'Otsikko 1',
- tag_h2 : 'Otsikko 2',
- tag_h3 : 'Otsikko 3',
- tag_h4 : 'Otsikko 4',
- tag_h5 : 'Otsikko 5',
- tag_h6 : 'Otsikko 6',
- tag_div : 'Normaali (DIV)'
- },
-
- div :
- {
- title : 'Luo div-kehikko',
- toolbar : 'Luo div-kehikko',
- cssClassInputLabel : 'Tyylitiedoston luokat',
- styleSelectLabel : 'Tyyli',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Kielen koodi',
- inlineStyleInputLabel : 'Sisätyyli',
- advisoryTitleInputLabel : 'Ohjeistava otsikko',
- langDirLabel : 'Kielen suunta',
- langDirLTRLabel : 'Vasemmalta oikealle (LTR)',
- langDirRTLLabel : 'Oikealta vasemmalle (RTL)',
- edit : 'Muokkaa Diviä',
- remove : 'Poista Div'
- },
-
- font :
- {
- label : 'Kirjaisinlaji',
- voiceLabel : 'Kirjaisinlaji',
- panelTitle : 'Kirjaisinlaji'
- },
-
- fontSize :
- {
- label : 'Koko',
- voiceLabel : 'Kirjaisimen koko',
- panelTitle : 'Koko'
- },
-
- colorButton :
- {
- textColorTitle : 'Tekstiväri',
- bgColorTitle : 'Taustaväri',
- panelTitle : 'Värit',
- auto : 'Automaattinen',
- more : 'Lisää värejä...'
- },
-
- colors :
- {
- '000' : 'Musta',
- '800000' : 'Kastanjanruskea',
- '8B4513' : 'Satulanruskea',
- '2F4F4F' : 'Tumma liuskekivenharmaa',
- '008080' : 'Sinivihreä',
- '000080' : 'Laivastonsininen',
- '4B0082' : 'Indigonsininen',
- '696969' : 'Tummanharmaa',
- 'B22222' : 'Tiili',
- 'A52A2A' : 'Ruskea',
- 'DAA520' : 'Kultapiisku',
- '006400' : 'Tummanvihreä',
- '40E0D0' : 'Turkoosi',
- '0000CD' : 'Keskisininen',
- '800080' : 'Purppura',
- '808080' : 'Harmaa',
- 'F00' : 'Punainen',
- 'FF8C00' : 'Tumma oranssi',
- 'FFD700' : 'Kulta',
- '008000' : 'Vihreä',
- '0FF' : 'Syaani',
- '00F' : 'Sininen',
- 'EE82EE' : 'Violetti',
- 'A9A9A9' : 'Tummanharmaa',
- 'FFA07A' : 'Vaaleanlohenpunainen',
- 'FFA500' : 'Oranssi',
- 'FFFF00' : 'Keltainen',
- '00FF00' : 'Limetin vihreä',
- 'AFEEEE' : 'Haalea turkoosi',
- 'ADD8E6' : 'Vaaleansininen',
- 'DDA0DD' : 'Luumu',
- 'D3D3D3' : 'Vaaleanharmaa',
- 'FFF0F5' : 'Laventelinpunainen',
- 'FAEBD7' : 'Antiikinvalkoinen',
- 'FFFFE0' : 'Vaaleankeltainen',
- 'F0FFF0' : 'Hunajameloni',
- 'F0FFFF' : 'Asurinsininen',
- 'F0F8FF' : 'Alice Blue -sininen',
- 'E6E6FA' : 'Lavanteli',
- 'FFF' : 'Valkoinen'
- },
-
- scayt :
- {
- title : 'Oikolue kirjoitettaessa',
- opera_title : 'Opera ei tue tätä ominaisuutta',
- enable : 'Ota käyttöön oikoluku kirjoitettaessa',
- disable : 'Poista käytöstä oikoluku kirjoitetaessa',
- about : 'Tietoja oikoluvusta kirjoitetaessa',
- toggle : 'Vaihda oikoluku kirjoittaessa tilaa',
- options : 'Asetukset',
- langs : 'Kielet',
- moreSuggestions : 'Lisää ehdotuksia',
- ignore : 'Ohita',
- ignoreAll : 'Ohita kaikki',
- addWord : 'Lisää sana',
- emptyDic : 'Sanakirjan nimi on annettava.',
-
- optionsTab : 'Asetukset',
- allCaps : 'Ohita sanat, jotka on kirjoitettu kokonaan isoilla kirjaimilla',
- ignoreDomainNames : 'Ohita verkkotunnukset',
- mixedCase : 'Ohita sanat, joissa on sekoitettu isoja ja pieniä kirjaimia',
- mixedWithDigits : 'Ohita sanat, joissa on numeroita',
-
- languagesTab : 'Kielet',
-
- dictionariesTab : 'Sanakirjat',
- dic_field_name : 'Sanakirjan nimi',
- dic_create : 'Luo',
- dic_restore : 'Palauta',
- dic_delete : 'Poista',
- dic_rename : 'Nimeä uudelleen',
- dic_info : 'Oletuksena sanakirjat tallennetaan evästeeseen, mutta evästeiden koko on kuitenkin rajallinen. Sanakirjan kasvaessa niin suureksi, ettei se enää mahdu evästeeseen, sanakirja täytyy tallentaa palvelimellemme. Tallentaaksesi sanakirjasi palvelimellemme tulee sinun antaa sille nimi. Jos olet jo tallentanut sanakirjan, anna sen nimi ja klikkaa Palauta-painiketta',
-
- aboutTab : 'Tietoa'
- },
-
- about :
- {
- title : 'Tietoa CKEditorista',
- dlgTitle : 'Tietoa CKEditorista',
- moreInfo : 'Lisenssitiedot löytyvät kotisivuiltamme:',
- copy : 'Copyright © $1. Kaikki oikeuden pidätetään.'
- },
-
- maximize : 'Suurenna',
- minimize : 'Pienennä',
-
- fakeobjects :
- {
- anchor : 'Ankkuri',
- flash : 'Flash animaatio',
- div : 'Sivun vaihto',
- unknown : 'Tuntematon objekti'
- },
-
- resize : 'Raahaa muuttaaksesi kokoa',
-
- colordialog :
- {
- title : 'Valitse väri',
- options : 'Color Options', // MISSING
- highlight : 'Korostus',
- selected : 'Valittu',
- clear : 'Poista'
- },
-
- toolbarCollapse : 'Kutista työkalupalkki',
- toolbarExpand : 'Laajenna työkalupalkki',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Finnish language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'fi' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rikastekstieditori',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Paina ALT 0 nähdäksesi ohjeen',
+
+ browseServer: 'Selaa palvelinta',
+ url: 'Osoite',
+ protocol: 'Protokolla',
+ upload: 'Lisää tiedosto',
+ uploadSubmit: 'Lähetä palvelimelle',
+ image: 'Kuva',
+ flash: 'Flash-animaatio',
+ form: 'Lomake',
+ checkbox: 'Valintaruutu',
+ radio: 'Radiopainike',
+ textField: 'Tekstikenttä',
+ textarea: 'Tekstilaatikko',
+ hiddenField: 'Piilokenttä',
+ button: 'Painike',
+ select: 'Valintakenttä',
+ imageButton: 'Kuvapainike',
+ notSet: '<ei asetettu>',
+ id: 'Tunniste',
+ name: 'Nimi',
+ langDir: 'Kielen suunta',
+ langDirLtr: 'Vasemmalta oikealle (LTR)',
+ langDirRtl: 'Oikealta vasemmalle (RTL)',
+ langCode: 'Kielikoodi',
+ longDescr: 'Pitkän kuvauksen URL',
+ cssClass: 'Tyyliluokat',
+ advisoryTitle: 'Avustava otsikko',
+ cssStyle: 'Tyyli',
+ ok: 'OK',
+ cancel: 'Peruuta',
+ close: 'Sulje',
+ preview: 'Esikatselu',
+ resize: 'Raahaa muuttaaksesi kokoa',
+ generalTab: 'Yleinen',
+ advancedTab: 'Lisäominaisuudet',
+ validateNumberFailed: 'Arvon pitää olla numero.',
+ confirmNewPage: 'Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?',
+ confirmCancel: 'Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?',
+ options: 'Asetukset',
+ target: 'Kohde',
+ targetNew: 'Uusi ikkuna (_blank)',
+ targetTop: 'Päällimmäinen ikkuna (_top)',
+ targetSelf: 'Sama ikkuna (_self)',
+ targetParent: 'Ylemmän tason ikkuna (_parent)',
+ langDirLTR: 'Vasemmalta oikealle (LTR)',
+ langDirRTL: 'Oikealta vasemmalle (RTL)',
+ styles: 'Tyyli',
+ cssClasses: 'Tyylitiedoston luokat',
+ width: 'Leveys',
+ height: 'Korkeus',
+ align: 'Kohdistus',
+ alignLeft: 'Vasemmalle',
+ alignRight: 'Oikealle',
+ alignCenter: 'Keskelle',
+ alignTop: 'Ylös',
+ alignMiddle: 'Keskelle',
+ alignBottom: 'Alas',
+ invalidValue : 'Virheellinen arvo.',
+ invalidHeight: 'Korkeuden täytyy olla numero.',
+ invalidWidth: 'Leveyden täytyy olla numero.',
+ invalidCssLength: 'Kentän "%1" arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.',
+ invalidHtmlLength: 'Kentän "%1" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.',
+ invalidInlineStyle: 'Tyylille annetun arvon täytyy koostua yhdestä tai useammasta "nimi : arvo" parista, jotka ovat eroteltuna toisistaan puolipisteillä.',
+ cssLengthTooltip: 'Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ei saatavissa</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/fo.js b/devel/third-party/ckeditor/lang/fo.js
index 93d2c99..efc81dc 100644
--- a/devel/third-party/ckeditor/lang/fo.js
+++ b/devel/third-party/ckeditor/lang/fo.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Faroese language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['fo'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Kelda',
- newPage : 'Nýggj sÃða',
- save : 'Goym',
- preview : 'Frumsýning',
- cut : 'Kvett',
- copy : 'Avrita',
- paste : 'Innrita',
- print : 'Prenta',
- underline : 'Undirstrikað',
- bold : 'Feit skrift',
- italic : 'Skráskrift',
- selectAll : 'Markera alt',
- removeFormat : 'Strika sniðgeving',
- strike : 'Yvirstrikað',
- subscript : 'Lækkað skrift',
- superscript : 'Hækkað skrift',
- horizontalrule : 'Ger vatnrætta linju',
- pagebreak : 'Ger sÃðuskift',
- unlink : 'Strika tilknýti',
- undo : 'Angra',
- redo : 'Vend aftur',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Ambætarakagi',
- url : 'URL',
- protocol : 'Protokoll',
- upload : 'Send til ambætaran',
- uploadSubmit : 'Send til ambætaran',
- image : 'Myndir',
- flash : 'Flash',
- form : 'Formur',
- checkbox : 'Flugubein',
- radio : 'Radioknøttur',
- textField : 'Tekstteigur',
- textarea : 'Tekstumráði',
- hiddenField : 'Fjaldur teigur',
- button : 'Knøttur',
- select : 'Valskrá',
- imageButton : 'Myndaknøttur',
- notSet : '<ikki sett>',
- id : 'Id',
- name : 'Navn',
- langDir : 'Tekstkós',
- langDirLtr : 'Frá vinstru til høgru (LTR)',
- langDirRtl : 'Frá høgru til vinstru (RTL)',
- langCode : 'Málkoda',
- longDescr : 'VÃðkað URL frágreiðing',
- cssClass : 'Typografi klassar',
- advisoryTitle : 'Vegleiðandi heiti',
- cssStyle : 'Typografi',
- ok : 'Góðkent',
- cancel : 'Avlýst',
- close : 'Lat aftur',
- preview : 'Frumsýn',
- generalTab : 'Generelt',
- advancedTab : 'Fjølbroytt',
- validateNumberFailed : 'Hetta er ikki eitt tal.',
- confirmNewPage : 'Allar ikki goymdar broytingar à hesum innihaldi hvørva. Skal nýggj sÃða lesast kortini?',
- confirmCancel : 'Nakrir valmøguleikar eru broyttir. Ert tú vÃsur Ã, at dialogurin skal latast aftur?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'Nýtt vindeyga (_blank)',
- targetTop : 'Vindeyga ovast (_top)',
- targetSelf : 'Sama vindeyga (_self)',
- targetParent : 'Upphavligt vindeyga (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ikki tøkt</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Set inn sertekn',
- title : 'Vel sertekn',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ger/broyt tilknýti',
- other : '<other>', // MISSING
- menu : 'Broyt tilknýti',
- title : 'Tilknýti',
- info : 'Tilknýtis upplýsingar',
- target : 'Target', // MISSING
- upload : 'Send til ambætaran',
- advanced : 'Fjølbroytt',
- type : 'Tilknýtisslag',
- toUrl : 'URL',
- toAnchor : 'Tilknýti til marknastein à tekstinum',
- toEmail : 'Teldupostur',
- targetFrame : '<ramma>',
- targetPopup : '<popup vindeyga>',
- targetFrameName : 'VÃs navn vindeygans',
- targetPopupName : 'Popup vindeygans navn',
- popupFeatures : 'Popup vindeygans vÃðkaðu eginleikar',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Støðufrágreiðingarbjálki',
- popupLocationBar: 'Adressulinja',
- popupToolbar : 'Amboðsbjálki',
- popupMenuBar : 'Skrábjálki',
- popupFullScreen : 'Fullur skermur (IE)',
- popupScrollBars : 'Rullibjálki',
- popupDependent : 'Bundið (Netscape)',
- popupWidth : 'Breidd',
- popupLeft : 'Frástøða frá vinstru',
- popupHeight : 'Hædd',
- popupTop : 'Frástøða frá Ãerva',
- id : 'Id', // MISSING
- langDir : 'Tekstkós',
- langDirLTR : 'Frá vinstru til høgru (LTR)',
- langDirRTL : 'Frá høgru til vinstru (RTL)',
- acccessKey : 'Snarvegisknappur',
- name : 'Navn',
- langCode : 'Tekstkós',
- tabIndex : 'Inntriv indeks',
- advisoryTitle : 'Vegleiðandi heiti',
- advisoryContentType : 'Vegleiðandi innihaldsslag',
- cssClasses : 'Typografi klassar',
- charset : 'Atknýtt teknsett',
- styles : 'Typografi',
- selectAnchor : 'Vel ein marknastein',
- anchorName : 'Eftir navni á marknasteini',
- anchorId : 'Eftir element Id',
- emailAddress : 'Teldupost-adressa',
- emailSubject : 'Evni',
- emailBody : 'Breyðtekstur',
- noAnchors : '(Eingir marknasteinar eru à hesum dokumentið)',
- noUrl : 'Vinarliga skriva tilknýti (URL)',
- noEmail : 'Vinarliga skriva teldupost-adressu'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ger/broyt marknastein',
- menu : 'Eginleikar fyri marknastein',
- title : 'Eginleikar fyri marknastein',
- name : 'Heiti marknasteinsins',
- errorName : 'Vinarliga rita marknasteinsins heiti'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Finn og broyt',
- find : 'Leita',
- replace : 'Yvirskriva',
- findWhat : 'Finn:',
- replaceWith : 'Yvirskriva við:',
- notFoundMsg : 'Leititeksturin varð ikki funnin',
- matchCase : 'Munur á stórum og smáum bókstavum',
- matchWord : 'Bert heil orð',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Yvirskriva alt',
- replaceSuccessMsg : '%1 úrslit broytt.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabell',
- title : 'Eginleikar fyri tabell',
- menu : 'Eginleikar fyri tabell',
- deleteTable : 'Strika tabell',
- rows : 'Røðir',
- columns : 'Kolonnur',
- border : 'Bordabreidd',
- align : 'Justering',
- alignLeft : 'Vinstrasett',
- alignCenter : 'Miðsett',
- alignRight : 'Høgrasett',
- width : 'Breidd',
- widthPx : 'pixels',
- widthPc : 'prosent',
- widthUnit : 'breiddar unit',
- height : 'Hædd',
- cellSpace : 'Fjarstøða millum meskar',
- cellPad : 'Meskubreddi',
- caption : 'Tabellfrágreiðing',
- summary : 'Samandráttur',
- headers : 'Headers', // MISSING
- headersNone : 'Eingin',
- headersColumn : 'Fyrsta kolonna',
- headersRow : 'Fyrsta rað',
- headersBoth : 'Báðir',
- invalidRows : 'Talið av røðum má vera eitt tal størri enn 0.',
- invalidCols : 'Talið av kolonnum má vera eitt tal størri enn 0.',
- invalidBorder : 'Borda-stødd má vera eitt tal.',
- invalidWidth : 'Tabell-breidd má vera eitt tal.',
- invalidHeight : 'Tabell-hædd má vera eitt tal.',
- invalidCellSpacing : 'Cell spacing má vera eitt tal.',
- invalidCellPadding : 'Cell padding má vera eitt tal.',
-
- cell :
- {
- menu : 'Meski',
- insertBefore : 'Set meska inn áðrenn',
- insertAfter : 'Set meska inn aftaná',
- deleteCell : 'Strika meskar',
- merge : 'Flætta meskar',
- mergeRight : 'Flætta meskar til høgru',
- mergeDown : 'Flætta saman',
- splitHorizontal : 'Kloyv meska vatnrætt',
- splitVertical : 'Kloyv meska loddrætt',
- title : 'Mesku eginleikar',
- cellType : 'Mesku slag',
- rowSpan : 'Ræð spenni',
- colSpan : 'Kolonnu spenni',
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horisontal plasering',
- vAlign : 'Loddrøtt plasering',
- alignTop : 'Top',
- alignMiddle : 'Miðja',
- alignBottom : 'Botnur',
- alignBaseline : 'Basislinja',
- bgColor : 'Bakgrundslitur',
- borderColor : 'Bordalitur',
- data : 'Data',
- header : 'Header',
- yes : 'Ja',
- no : 'Nei',
- invalidWidth : 'Meskubreidd má vera eitt tal.',
- invalidHeight : 'Meskuhædd má vera eitt tal.',
- invalidRowSpan : 'Raðspennið má vera eitt heiltal.',
- invalidColSpan : 'Kolonnuspennið má vera eitt heiltal.',
- chooseColor : 'Vel'
- },
-
- row :
- {
- menu : 'Rað',
- insertBefore : 'Set rað inn áðrenn',
- insertAfter : 'Set rað inn aftaná',
- deleteRow : 'Strika røðir'
- },
-
- column :
- {
- menu : 'Kolonna',
- insertBefore : 'Set kolonnu inn áðrenn',
- insertAfter : 'Set kolonnu inn aftaná',
- deleteColumn : 'Strika kolonnur'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Eginleikar fyri knøtt',
- text : 'Tekstur',
- type : 'Slag',
- typeBtn : 'Knøttur',
- typeSbm : 'Send',
- typeRst : 'Nullstilla'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Eginleikar fyri flugubein',
- radioTitle : 'Eginleikar fyri radioknøtt',
- value : 'Virði',
- selected : 'Valt'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Eginleikar fyri Form',
- menu : 'Eginleikar fyri Form',
- action : 'Hending',
- method : 'Háttur',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Eginleikar fyri valskrá',
- selectInfo : 'Upplýsingar',
- opAvail : 'Tøkir møguleikar',
- value : 'Virði',
- size : 'Stødd',
- lines : 'Linjur',
- chkMulti : 'Loyv fleiri valmøguleikum samstundis',
- opText : 'Tekstur',
- opValue : 'Virði',
- btnAdd : 'Legg afturat',
- btnModify : 'Broyt',
- btnUp : 'Upp',
- btnDown : 'Niður',
- btnSetValue : 'Set sum valt virði',
- btnDelete : 'Strika'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Eginleikar fyri tekstumráði',
- cols : 'kolonnur',
- rows : 'røðir'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Eginleikar fyri tekstteig',
- name : 'Navn',
- value : 'Virði',
- charWidth : 'Breidd (sjónlig tekn)',
- maxChars : 'Mest loyvdu tekn',
- type : 'Slag',
- typeText : 'Tekstur',
- typePass : 'Loyniorð'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Eginleikar fyri fjaldan teig',
- name : 'Navn',
- value : 'Virði'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Myndaeginleikar',
- titleButton : 'Eginleikar fyri myndaknøtt',
- menu : 'Myndaeginleikar',
- infoTab : 'Myndaupplýsingar',
- btnUpload : 'Send til ambætaran',
- upload : 'Send',
- alt : 'Alternativur tekstur',
- width : 'Breidd',
- height : 'Hædd',
- lockRatio : 'Læs lutfallið',
- unlockRatio : 'Lutfallið ikki læst',
- resetSize : 'Upprunastødd',
- border : 'Bordi',
- hSpace : 'Høgri breddi',
- vSpace : 'Vinstri breddi',
- align : 'Justering',
- alignLeft : 'Vinstra',
- alignRight : 'Høgra',
- alertUrl : 'Rita slóðina til myndina',
- linkTab : 'Tilknýti',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'URL til mynd manglar.',
- validateWidth : 'Breidd má vera eitt heiltal.',
- validateHeight : 'Hædd má vera eitt heiltal.',
- validateBorder : 'Bordi má vera eitt heiltal.',
- validateHSpace : 'HSpace má vera eitt heiltal.',
- validateVSpace : 'VSpace má vera eitt heiltal.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash eginleikar',
- propertiesTab : 'Eginleikar',
- title : 'Flash eginleikar',
- chkPlay : 'Avspælingin byrjar sjálv',
- chkLoop : 'Endurspæl',
- chkMenu : 'Ger Flash skrá virkna',
- chkFull : 'Loyv fullan skerm',
- scale : 'Skalering',
- scaleAll : 'VÃs alt',
- scaleNoBorder : 'Eingin bordi',
- scaleFit : 'Neyv skalering',
- access : 'Script atgongd',
- accessAlways : 'AltÃð',
- accessSameDomain: 'Sama navnaøki',
- accessNever : 'OngantÃð',
- align : 'Justering',
- alignLeft : 'Vinstra',
- alignAbsBottom : 'Abs botnur',
- alignAbsMiddle : 'Abs miðja',
- alignBaseline : 'Basislinja',
- alignBottom : 'Botnur',
- alignMiddle : 'Miðja',
- alignRight : 'Høgra',
- alignTextTop : 'Tekst toppur',
- alignTop : 'Ovast',
- quality : 'Góðska',
- qualityBest : 'Besta',
- qualityHigh : 'Høg',
- qualityAutoHigh : 'Auto høg',
- qualityMedium : 'Meðal',
- qualityAutoLow : 'Auto Lág',
- qualityLow : 'Lág',
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Ikki transparent',
- windowModeTransparent : 'Transparent',
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variablar fyri Flash',
- bgcolor : 'Bakgrundslitur',
- width : 'Breidd',
- height : 'Hædd',
- hSpace : 'Høgri breddi',
- vSpace : 'Vinstri breddi',
- validateSrc : 'Vinarliga skriva tilknýti (URL)',
- validateWidth : 'Breidd má vera eitt tal.',
- validateHeight : 'Hædd má vera eitt tal.',
- validateHSpace : 'HSpace má vera eitt tal.',
- validateVSpace : 'VSpace má vera eitt tal.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Kanna stavseting',
- title : 'Kanna stavseting',
- notAvailable : 'TÃverri, ikki tøkt à løtuni.',
- errorLoading : 'Feilur við innlesing av application service host: %s.',
- notInDic : 'Finst ikki à orðabókini',
- changeTo : 'Broyt til',
- btnIgnore : 'Forfjóna',
- btnIgnoreAll : 'Forfjóna alt',
- btnReplace : 'Yvirskriva',
- btnReplaceAll : 'Yvirskriva alt',
- btnUndo : 'Angra',
- noSuggestions : '- Einki uppskot -',
- progress : 'Rættstavarin arbeiðir...',
- noMispell : 'Rættstavarain liðugur: Eingin feilur funnin',
- noChanges : 'Rættstavarain liðugur: Einki orð varð broytt',
- oneChange : 'Rættstavarain liðugur: Eitt orð er broytt',
- manyChanges : 'Rættstavarain liðugur: %1 orð broytt',
- ieSpellDownload : 'Rættstavarin er ikki tøkur à tekstviðgeranum. Vilt tú heinta hann nú?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Vel Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Slóð til elementir',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Talmerktur listi',
- bulletedlist : 'Punktmerktur listi',
- indent : 'Ãkja reglubrotarinntriv',
- outdent : 'Minka reglubrotarinntriv',
-
- justify :
- {
- left : 'Vinstrasett',
- center : 'Miðsett',
- right : 'Høgrasett',
- block : 'Javnir tekstkantar'
- },
-
- blockquote : 'Blockquote',
-
- clipboard :
- {
- title : 'Innrita',
- cutError : 'Trygdaruppseting alnótskagans forðar tekstviðgeranum à at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).',
- copyError : 'Trygdaruppseting alnótskagans forðar tekstviðgeranum à at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).',
- pasteMsg : 'Vinarliga koyr tekstin à hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.',
- securityMsg : 'Trygdaruppseting alnótskagans forðar tekstviðgeranum à beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur à hesum rútinum.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?',
- toolbar : 'Innrita frá Word',
- title : 'Innrita frá Word',
- error : 'Tað eyðnaðist ikki at reinsa tekstin vegna ein internan feil'
- },
-
- pasteText :
- {
- button : 'Innrita som reinan tekst',
- title : 'Innrita som reinan tekst'
- },
-
- templates :
- {
- button : 'Skabelónir',
- title : 'Innihaldsskabelónir',
- options : 'Template Options', // MISSING
- insertOption : 'Yvirskriva núverandi innihald',
- selectPromptMsg : 'Vinarliga vel ta skabelón, ið skal opnast à tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):',
- emptyListMsg : '(Ongar skabelónir tøkar)'
- },
-
- showBlocks : 'VÃs blokkar',
-
- stylesCombo :
- {
- label : 'Typografi',
- panelTitle : 'Formatterings stÃlir',
- panelTitle1 : 'Blokk stÃlir',
- panelTitle2 : 'Inline stÃlir',
- panelTitle3 : 'Object stÃlir'
- },
-
- format :
- {
- label : 'Skriftsnið',
- panelTitle : 'Skriftsnið',
-
- tag_p : 'Vanligt',
- tag_pre : 'Sniðgivið',
- tag_address : 'Adressa',
- tag_h1 : 'Yvirskrift 1',
- tag_h2 : 'Yvirskrift 2',
- tag_h3 : 'Yvirskrift 3',
- tag_h4 : 'Yvirskrift 4',
- tag_h5 : 'Yvirskrift 5',
- tag_h6 : 'Yvirskrift 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Ger Div Container',
- toolbar : 'Ger Div Container',
- cssClassInputLabel : 'Stylesheet Classes',
- styleSelectLabel : 'Style',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Language Code',
- inlineStyleInputLabel : 'Inline Style',
- advisoryTitleInputLabel : 'Advisory Title',
- langDirLabel : 'Language Direction',
- langDirLTRLabel : 'Vinstru til høgru (LTR)',
- langDirRTLLabel : 'Høgru til vinstru (RTL)',
- edit : 'Redigera Div',
- remove : 'Strika Div'
- },
-
- font :
- {
- label : 'Skrift',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Skrift'
- },
-
- fontSize :
- {
- label : 'Skriftstødd',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Skriftstødd'
- },
-
- colorButton :
- {
- textColorTitle : 'Tekstlitur',
- bgColorTitle : 'Bakgrundslitur',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatiskt',
- more : 'Fleiri litir...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Kanna stavseting, meðan tú skrivar',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT',
- disable : 'Disable SCAYT',
- about : 'Um SCAYT',
- toggle : 'Toggle SCAYT',
- options : 'Uppseting',
- langs : 'Tungumál',
- moreSuggestions : 'Fleiri tilráðingar',
- ignore : 'Ignorera',
- ignoreAll : 'Ignorera alt',
- addWord : 'Legg orð afturat',
- emptyDic : 'Heiti á orðabók eigur ikki at vera tómt.',
-
- optionsTab : 'Uppseting',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Tungumál',
-
- dictionariesTab : 'Orðabøkur',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Um'
- },
-
- about :
- {
- title : 'Um CKEditor',
- dlgTitle : 'Um CKEditor',
- moreInfo : 'Licens upplýsingar finnast á heimasÃðu okkara:',
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maksimera',
- minimize : 'Minimera',
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'SÃðuskift',
- unknown : 'Ãkent Object'
- },
-
- resize : 'Drag fyri at broyta stødd',
-
- colordialog :
- {
- title : 'Vel lit',
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Faroese language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'fo' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Trýst ALT og 0 fyri vegleiðing',
+
+ browseServer: 'Ambætarakagi',
+ url: 'URL',
+ protocol: 'Protokoll',
+ upload: 'Send til ambætaran',
+ uploadSubmit: 'Send til ambætaran',
+ image: 'Myndir',
+ flash: 'Flash',
+ form: 'Formur',
+ checkbox: 'Flugubein',
+ radio: 'Radioknøttur',
+ textField: 'Tekstteigur',
+ textarea: 'Tekstumráði',
+ hiddenField: 'Fjaldur teigur',
+ button: 'Knøttur',
+ select: 'Valskrá',
+ imageButton: 'Myndaknøttur',
+ notSet: '<ikki sett>',
+ id: 'Id',
+ name: 'Navn',
+ langDir: 'Tekstkós',
+ langDirLtr: 'Frá vinstru til høgru (LTR)',
+ langDirRtl: 'Frá høgru til vinstru (RTL)',
+ langCode: 'Málkoda',
+ longDescr: 'VÃðkað URL frágreiðing',
+ cssClass: 'Typografi klassar',
+ advisoryTitle: 'Vegleiðandi heiti',
+ cssStyle: 'Typografi',
+ ok: 'Góðkent',
+ cancel: 'Avlýst',
+ close: 'Lat aftur',
+ preview: 'Frumsýn',
+ resize: 'Drag fyri at broyta stødd',
+ generalTab: 'Generelt',
+ advancedTab: 'Fjølbroytt',
+ validateNumberFailed: 'Hetta er ikki eitt tal.',
+ confirmNewPage: 'Allar ikki goymdar broytingar à hesum innihaldið hvørva. Skal nýggj sÃða lesast kortini?',
+ confirmCancel: 'Nakrir valmøguleikar eru broyttir. Ert tú vÃsur Ã, at dialogurin skal latast aftur?',
+ options: 'Options',
+ target: 'Target',
+ targetNew: 'Nýtt vindeyga (_blank)',
+ targetTop: 'Vindeyga ovast (_top)',
+ targetSelf: 'Sama vindeyga (_self)',
+ targetParent: 'Upphavligt vindeyga (_parent)',
+ langDirLTR: 'Frá vinstru til høgru (LTR)',
+ langDirRTL: 'Frá høgru til vinstru (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Classes',
+ width: 'Breidd',
+ height: 'Hædd',
+ align: 'Justering',
+ alignLeft: 'Vinstra',
+ alignRight: 'Høgra',
+ alignCenter: 'Miðsett',
+ alignTop: 'Ovast',
+ alignMiddle: 'Miðja',
+ alignBottom: 'Botnur',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Hædd má vera eitt tal.',
+ invalidWidth: 'Breidd má vera eitt tal.',
+ invalidCssLength: 'Virðið sett à "%1" feltið má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).',
+ invalidHtmlLength: 'Virðið sett à "%1" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).',
+ invalidInlineStyle: 'Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum "name : value", hvørt parið sundurskilt við semi-colon.',
+ cssLengthTooltip: 'Skriva eitt tal fyri eitt virði à pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ikki tøkt</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/fr-ca.js b/devel/third-party/ckeditor/lang/fr-ca.js
index 988135c..5c88f52 100644
--- a/devel/third-party/ckeditor/lang/fr-ca.js
+++ b/devel/third-party/ckeditor/lang/fr-ca.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Canadian French language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['fr-ca'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'Nouvelle page',
- save : 'Sauvegarder',
- preview : 'Previsualiser',
- cut : 'Couper',
- copy : 'Copier',
- paste : 'Coller',
- print : 'Imprimer',
- underline : 'Souligné',
- bold : 'Gras',
- italic : 'Italique',
- selectAll : 'Tout sélectionner',
- removeFormat : 'Supprimer le formatage',
- strike : 'Barrer',
- subscript : 'Indice',
- superscript : 'Exposant',
- horizontalrule : 'Insérer un séparateur',
- pagebreak : 'Insérer un saut de page',
- unlink : 'Supprimer le lien',
- undo : 'Annuler',
- redo : 'Refaire',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Parcourir le serveur',
- url : 'URL',
- protocol : 'Protocole',
- upload : 'Télécharger',
- uploadSubmit : 'Envoyer sur le serveur',
- image : 'Image',
- flash : 'Animation Flash',
- form : 'Formulaire',
- checkbox : 'Case à cocher',
- radio : 'Bouton radio',
- textField : 'Champ texte',
- textarea : 'Zone de texte',
- hiddenField : 'Champ caché',
- button : 'Bouton',
- select : 'Champ de sélection',
- imageButton : 'Bouton image',
- notSet : '<Par défaut>',
- id : 'Id',
- name : 'Nom',
- langDir : 'Sens d\'écriture',
- langDirLtr : 'De gauche à droite (LTR)',
- langDirRtl : 'De droite à gauche (RTL)',
- langCode : 'Code langue',
- longDescr : 'URL de description longue',
- cssClass : 'Classes de feuilles de style',
- advisoryTitle : 'Titre',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Annuler',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Général',
- advancedTab : 'Avancée',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insérer un caractère spécial',
- title : 'Insérer un caractère spécial',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Insérer/modifier le lien',
- other : '<other>', // MISSING
- menu : 'Modifier le lien',
- title : 'Propriétés du lien',
- info : 'Informations sur le lien',
- target : 'Destination',
- upload : 'Télécharger',
- advanced : 'Avancée',
- type : 'Type de lien',
- toUrl : 'URL', // MISSING
- toAnchor : 'Ancre dans cette page',
- toEmail : 'E-Mail',
- targetFrame : '<Cadre>',
- targetPopup : '<fenêtre popup>',
- targetFrameName : 'Nom du cadre de destination',
- targetPopupName : 'Nom de la fenêtre popup',
- popupFeatures : 'Caractéristiques de la fenêtre popup',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Barre d\'état',
- popupLocationBar: 'Barre d\'adresses',
- popupToolbar : 'Barre d\'outils',
- popupMenuBar : 'Barre de menu',
- popupFullScreen : 'Plein écran (IE)',
- popupScrollBars : 'Barres de défilement',
- popupDependent : 'Dépendante (Netscape)',
- popupWidth : 'Largeur',
- popupLeft : 'Position à partir de la gauche',
- popupHeight : 'Hauteur',
- popupTop : 'Position à partir du haut',
- id : 'Id', // MISSING
- langDir : 'Sens d\'écriture',
- langDirLTR : 'De gauche à droite (LTR)',
- langDirRTL : 'De droite à gauche (RTL)',
- acccessKey : 'Ãquivalent clavier',
- name : 'Nom',
- langCode : 'Sens d\'écriture',
- tabIndex : 'Ordre de tabulation',
- advisoryTitle : 'Titre',
- advisoryContentType : 'Type de contenu',
- cssClasses : 'Classes de feuilles de style',
- charset : 'Encodage de caractère',
- styles : 'Style',
- selectAnchor : 'Sélectionner une ancre',
- anchorName : 'Par nom',
- anchorId : 'Par id',
- emailAddress : 'Adresse E-Mail',
- emailSubject : 'Sujet du message',
- emailBody : 'Corps du message',
- noAnchors : '(Pas d\'ancre disponible dans le document)',
- noUrl : 'Veuillez saisir l\'URL',
- noEmail : 'Veuillez saisir l\'adresse e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Insérer/modifier l\'ancre',
- menu : 'Propriétés de l\'ancre',
- title : 'Propriétés de l\'ancre',
- name : 'Nom de l\'ancre',
- errorName : 'Veuillez saisir le nom de l\'ancre'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Chercher et Remplacer',
- find : 'Chercher',
- replace : 'Remplacer',
- findWhat : 'Rechercher:',
- replaceWith : 'Remplacer par:',
- notFoundMsg : 'Le texte indiqué est introuvable.',
- matchCase : 'Respecter la casse',
- matchWord : 'Mot entier',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Tout remplacer',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tableau',
- title : 'Propriétés du tableau',
- menu : 'Propriétés du tableau',
- deleteTable : 'Supprimer le tableau',
- rows : 'Lignes',
- columns : 'Colonnes',
- border : 'Taille de la bordure',
- align : 'Alignement',
- alignLeft : 'Gauche',
- alignCenter : 'Centré',
- alignRight : 'Droite',
- width : 'Largeur',
- widthPx : 'pixels',
- widthPc : 'pourcentage',
- widthUnit : 'width unit', // MISSING
- height : 'Hauteur',
- cellSpace : 'Espacement',
- cellPad : 'Contour',
- caption : 'Titre',
- summary : 'Résumé',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cellule',
- insertBefore : 'Insérer une cellule avant',
- insertAfter : 'Insérer une cellule après',
- deleteCell : 'Supprimer des cellules',
- merge : 'Fusionner les cellules',
- mergeRight : 'Fusionner à droite',
- mergeDown : 'Fusionner en bas',
- splitHorizontal : 'Scinder la cellule horizontalement',
- splitVertical : 'Scinder la cellule verticalement',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Ligne',
- insertBefore : 'Insérer une ligne avant',
- insertAfter : 'Insérer une ligne après',
- deleteRow : 'Supprimer des lignes'
- },
-
- column :
- {
- menu : 'Colonne',
- insertBefore : 'Insérer une colonne avant',
- insertAfter : 'Insérer une colonne après',
- deleteColumn : 'Supprimer des colonnes'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Propriétés du bouton',
- text : 'Texte (Valeur)',
- type : 'Type',
- typeBtn : 'Bouton',
- typeSbm : 'Soumettre',
- typeRst : 'Réinitialiser'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Propriétés de la case à cocher',
- radioTitle : 'Propriétés du bouton radio',
- value : 'Valeur',
- selected : 'Sélectionné'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Propriétés du formulaire',
- menu : 'Propriétés du formulaire',
- action : 'Action',
- method : 'Méthode',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Propriétés de la liste/du menu',
- selectInfo : 'Info',
- opAvail : 'Options disponibles',
- value : 'Valeur',
- size : 'Taille',
- lines : 'lignes',
- chkMulti : 'Sélection multiple',
- opText : 'Texte',
- opValue : 'Valeur',
- btnAdd : 'Ajouter',
- btnModify : 'Modifier',
- btnUp : 'Monter',
- btnDown : 'Descendre',
- btnSetValue : 'Valeur sélectionnée',
- btnDelete : 'Supprimer'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Propriétés de la zone de texte',
- cols : 'Colonnes',
- rows : 'Lignes'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Propriétés du champ texte',
- name : 'Nom',
- value : 'Valeur',
- charWidth : 'Largeur en caractères',
- maxChars : 'Nombre maximum de caractères',
- type : 'Type',
- typeText : 'Texte',
- typePass : 'Mot de passe'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Propriétés du champ caché',
- name : 'Nom',
- value : 'Valeur'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Propriétés de l\'image',
- titleButton : 'Propriétés du bouton image',
- menu : 'Propriétés de l\'image',
- infoTab : 'Informations sur l\'image',
- btnUpload : 'Envoyer sur le serveur',
- upload : 'Télécharger',
- alt : 'Texte de remplacement',
- width : 'Largeur',
- height : 'Hauteur',
- lockRatio : 'Garder les proportions',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Taille originale',
- border : 'Bordure',
- hSpace : 'Espacement horizontal',
- vSpace : 'Espacement vertical',
- align : 'Alignement',
- alignLeft : 'Gauche',
- alignRight : 'Droite',
- alertUrl : 'Veuillez saisir l\'URL de l\'image',
- linkTab : 'Lien',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propriétés de l\'animation Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'Propriétés de l\'animation Flash',
- chkPlay : 'Lecture automatique',
- chkLoop : 'Boucle',
- chkMenu : 'Activer le menu Flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Affichage',
- scaleAll : 'Par défaut (tout montrer)',
- scaleNoBorder : 'Sans bordure',
- scaleFit : 'Ajuster aux dimensions',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Alignement',
- alignLeft : 'Gauche',
- alignAbsBottom : 'Abs Bas',
- alignAbsMiddle : 'Abs Milieu',
- alignBaseline : 'Bas du texte',
- alignBottom : 'Bas',
- alignMiddle : 'Milieu',
- alignRight : 'Droite',
- alignTextTop : 'Haut du texte',
- alignTop : 'Haut',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Couleur de fond',
- width : 'Largeur',
- height : 'Hauteur',
- hSpace : 'Espacement horizontal',
- vSpace : 'Espacement vertical',
- validateSrc : 'Veuillez saisir l\'URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Orthographe',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Pas dans le dictionnaire',
- changeTo : 'Changer en',
- btnIgnore : 'Ignorer',
- btnIgnoreAll : 'Ignorer tout',
- btnReplace : 'Remplacer',
- btnReplaceAll : 'Remplacer tout',
- btnUndo : 'Annuler',
- noSuggestions : '- Pas de suggestion -',
- progress : 'Vérification d\'orthographe en cours...',
- noMispell : 'Vérification d\'orthographe terminée: pas d\'erreur trouvée',
- noChanges : 'Vérification d\'orthographe terminée: Pas de modifications',
- oneChange : 'Vérification d\'orthographe terminée: Un mot modifié',
- manyChanges : 'Vérification d\'orthographe terminée: %1 mots modifiés',
- ieSpellDownload : 'Le Correcteur d\'orthographe n\'est pas installé. Souhaitez-vous le télécharger maintenant?'
- },
-
- smiley :
- {
- toolbar : 'Emoticon',
- title : 'Insérer un Emoticon',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Liste numérotée',
- bulletedlist : 'Liste à puces',
- indent : 'Augmenter le retrait',
- outdent : 'Diminuer le retrait',
-
- justify :
- {
- left : 'Aligner à gauche',
- center : 'Centrer',
- right : 'Aligner à Droite',
- block : 'Texte justifié'
- },
-
- blockquote : 'Citation',
-
- clipboard :
- {
- title : 'Coller',
- cutError : 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).',
- copyError : 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).',
- pasteMsg : 'Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.',
- securityMsg : 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Coller en tant que Word (formaté)',
- title : 'Coller en tant que Word (formaté)',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Coller comme texte',
- title : 'Coller comme texte'
- },
-
- templates :
- {
- button : 'Modèles',
- title : 'Modèles de contenu',
- options : 'Template Options', // MISSING
- insertOption : 'Remplacer tout le contenu actuel',
- selectPromptMsg : 'Sélectionner le modèle à ouvrir dans l\'éditeur<br>(le contenu actuel sera remplacé):',
- emptyListMsg : '(Aucun modèle disponible)'
- },
-
- showBlocks : 'Afficher les blocs',
-
- stylesCombo :
- {
- label : 'Style',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formaté',
- tag_address : 'Adresse',
- tag_h1 : 'En-tête 1',
- tag_h2 : 'En-tête 2',
- tag_h3 : 'En-tête 3',
- tag_h4 : 'En-tête 4',
- tag_h5 : 'En-tête 5',
- tag_h6 : 'En-tête 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Police',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Police'
- },
-
- fontSize :
- {
- label : 'Taille',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Taille'
- },
-
- colorButton :
- {
- textColorTitle : 'Couleur de caractère',
- bgColorTitle : 'Couleur de fond',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatique',
- more : 'Plus de couleurs...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Canadian French language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'fr-ca' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Prem ALT 0 per obtenir ajuda',
+
+ browseServer: 'Parcourir le serveur',
+ url: 'URL',
+ protocol: 'Protocole',
+ upload: 'Télécharger',
+ uploadSubmit: 'Envoyer sur le serveur',
+ image: 'Image',
+ flash: 'Animation Flash',
+ form: 'Formulaire',
+ checkbox: 'Case à cocher',
+ radio: 'Bouton radio',
+ textField: 'Champ texte',
+ textarea: 'Zone de texte',
+ hiddenField: 'Champ caché',
+ button: 'Bouton',
+ select: 'Champ de sélection',
+ imageButton: 'Bouton image',
+ notSet: '<Par défaut>',
+ id: 'Id',
+ name: 'Nom',
+ langDir: 'Sens d\'écriture',
+ langDirLtr: 'De gauche à droite (LTR)',
+ langDirRtl: 'De droite à gauche (RTL)',
+ langCode: 'Code langue',
+ longDescr: 'URL de description longue',
+ cssClass: 'Classes de feuilles de style',
+ advisoryTitle: 'Titre',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Annuler',
+ close: 'Close', // MISSING
+ preview: 'Previsualiser',
+ resize: 'Resize', // MISSING
+ generalTab: 'Général',
+ advancedTab: 'Avancée',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'Destination',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'De gauche à droite (LTR)',
+ langDirRTL: 'De droite à gauche (RTL)',
+ styles: 'Style',
+ cssClasses: 'Classes de feuilles de style',
+ width: 'Largeur',
+ height: 'Hauteur',
+ align: 'Alignement',
+ alignLeft: 'Gauche',
+ alignRight: 'Droite',
+ alignCenter: 'Centré',
+ alignTop: 'Haut',
+ alignMiddle: 'Milieu',
+ alignBottom: 'Bas',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/fr.js b/devel/third-party/ckeditor/lang/fr.js
index bfeb70a..efe9833 100644
--- a/devel/third-party/ckeditor/lang/fr.js
+++ b/devel/third-party/ckeditor/lang/fr.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * French language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['fr'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Source',
- newPage : 'Nouvelle page',
- save : 'Enregistrer',
- preview : 'Aperçu',
- cut : 'Couper',
- copy : 'Copier',
- paste : 'Coller',
- print : 'Imprimer',
- underline : 'Souligné',
- bold : 'Gras',
- italic : 'Italique',
- selectAll : 'Tout sélectionner',
- removeFormat : 'Supprimer la mise en forme',
- strike : 'Barré',
- subscript : 'Indice',
- superscript : 'Exposant',
- horizontalrule : 'Ligne horizontale',
- pagebreak : 'Saut de page',
- unlink : 'Supprimer le lien',
- undo : 'Annuler',
- redo : 'Rétablir',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Explorer le serveur',
- url : 'URL',
- protocol : 'Protocole',
- upload : 'Envoyer',
- uploadSubmit : 'Envoyer sur le serveur',
- image : 'Image',
- flash : 'Flash',
- form : 'Formulaire',
- checkbox : 'Case à cocher',
- radio : 'Bouton Radio',
- textField : 'Champ texte',
- textarea : 'Zone de texte',
- hiddenField : 'Champ caché',
- button : 'Bouton',
- select : 'Liste déroulante',
- imageButton : 'Bouton image',
- notSet : '<non défini>',
- id : 'Id',
- name : 'Nom',
- langDir : 'Sens d\'écriture',
- langDirLtr : 'Gauche à droite (LTR)',
- langDirRtl : 'Droite à gauche (RTL)',
- langCode : 'Code de langue',
- longDescr : 'URL de description longue (longdesc => malvoyant)',
- cssClass : 'Classe CSS',
- advisoryTitle : 'Description (title)',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Annuler',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Général',
- advancedTab : 'Avancé',
- validateNumberFailed : 'Cette valeur n\'est pas un nombre.',
- confirmNewPage : 'Les changements non sauvegardés seront perdus. Etes-vous sûr de vouloir charger une nouvelle page?',
- confirmCancel : 'Certaines options ont été modifiées. Etes-vous sûr de vouloir fermer?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, Indisponible</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Insérer un caractère spécial',
- title : 'Sélectionnez un caractère',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Lien',
- other : '<autre>',
- menu : 'Editer le lien',
- title : 'Lien',
- info : 'Infos sur le lien',
- target : 'Cible',
- upload : 'Envoyer',
- advanced : 'Avancé',
- type : 'Type de lien',
- toUrl : 'URL', // MISSING
- toAnchor : 'Transformer le lien en ancre dans le texte',
- toEmail : 'E-mail',
- targetFrame : '<cadre>',
- targetPopup : '<fenêtre popup>',
- targetFrameName : 'Nom du Cadre destination',
- targetPopupName : 'Nom de la fenêtre popup',
- popupFeatures : 'Options de la fenêtre popup',
- popupResizable : 'Redimensionnable',
- popupStatusBar : 'Barre de status',
- popupLocationBar: 'Barre d\'adresse',
- popupToolbar : 'Barre d\'outils',
- popupMenuBar : 'Barre de menu',
- popupFullScreen : 'Plein écran (IE)',
- popupScrollBars : 'Barres de défilement',
- popupDependent : 'Dépendante (Netscape)',
- popupWidth : 'Largeur',
- popupLeft : 'Position gauche',
- popupHeight : 'Hauteur',
- popupTop : 'Position haute',
- id : 'Id',
- langDir : 'Sens d\'écriture',
- langDirLTR : 'Gauche à droite',
- langDirRTL : 'Droite à gauche',
- acccessKey : 'Touche d\'accessibilité',
- name : 'Nom',
- langCode : 'Code de langue',
- tabIndex : 'Index de tabulation',
- advisoryTitle : 'Description (title)',
- advisoryContentType : 'Type de contenu (ex: text/html)',
- cssClasses : 'Classe du CSS',
- charset : 'Charset de la cible',
- styles : 'Style',
- selectAnchor : 'Sélectionner l\'ancre',
- anchorName : 'Par nom d\'ancre',
- anchorId : 'Par ID d\'élément',
- emailAddress : 'Adresse E-Mail',
- emailSubject : 'Sujet du message',
- emailBody : 'Corps du message',
- noAnchors : '(Aucune ancre disponible dans ce document)',
- noUrl : 'Veuillez entrer l\'adresse du lien',
- noEmail : 'Veuillez entrer l\'adresse e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ancre',
- menu : 'Editer l\'ancre',
- title : 'Propriétés de l\'ancre',
- name : 'Nom de l\'ancre',
- errorName : 'Veuillez entrer le nom de l\'ancre'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Trouver et remplacer',
- find : 'Trouver',
- replace : 'Remplacer',
- findWhat : 'Expression à trouver: ',
- replaceWith : 'Remplacer par: ',
- notFoundMsg : 'Le texte spécifié ne peut être trouvé.',
- matchCase : 'Respecter la casse',
- matchWord : 'Mot entier uniquement',
- matchCyclic : 'Boucler',
- replaceAll : 'Remplacer tout',
- replaceSuccessMsg : '%1 occurrence(s) replacée(s).'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tableau',
- title : 'Propriétés du tableau',
- menu : 'Propriétés du tableau',
- deleteTable : 'Supprimer le tableau',
- rows : 'Lignes',
- columns : 'Colonnes',
- border : 'Taille de la bordure',
- align : 'Alignement du contenu',
- alignLeft : 'Gauche',
- alignCenter : 'Centré',
- alignRight : 'Droite',
- width : 'Largeur',
- widthPx : 'pixels',
- widthPc : '% pourcents',
- widthUnit : 'width unit', // MISSING
- height : 'Hauteur',
- cellSpace : 'Espacement des cellules',
- cellPad : 'Marge interne des cellules',
- caption : 'Titre du tableau',
- summary : 'Résumé (description)',
- headers : 'En-Têtes',
- headersNone : 'Aucunes',
- headersColumn : 'Première colonne',
- headersRow : 'Première ligne',
- headersBoth : 'Les deux',
- invalidRows : 'Le nombre de lignes doit être supérieur à 0.',
- invalidCols : 'Le nombre de colonnes doit être supérieur à 0.',
- invalidBorder : 'La taille de la bordure doit être un nombre.',
- invalidWidth : 'La largeur du tableau doit être un nombre.',
- invalidHeight : 'La hauteur du tableau doit être un nombre.',
- invalidCellSpacing : 'L\'espacement des cellules doit être un nombre.',
- invalidCellPadding : 'La marge intérieure des cellules doit être un nombre.',
-
- cell :
- {
- menu : 'Cellule',
- insertBefore : 'Insérer une cellule avant',
- insertAfter : 'Insérer une cellule après',
- deleteCell : 'Supprimer les cellules',
- merge : 'Fusionner les cellules',
- mergeRight : 'Fusionner à droite',
- mergeDown : 'Fusionner en bas',
- splitHorizontal : 'Fractionner horizontalement',
- splitVertical : 'Fractionner verticalement',
- title : 'Propriétés de Cellule',
- cellType : 'Type de Cellule',
- rowSpan : 'Fusion de Lignes',
- colSpan : 'Fusion de Colonnes',
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Alignement Horizontal',
- vAlign : 'Alignement Vertical',
- alignTop : 'Haut',
- alignMiddle : 'Milieu',
- alignBottom : 'Bas',
- alignBaseline : 'Bas du texte',
- bgColor : 'Couleur d\'arrière-plan',
- borderColor : 'Couleur de Bordure',
- data : 'Données',
- header : 'Entête',
- yes : 'Oui',
- no : 'Non',
- invalidWidth : 'La Largeur de Cellule doit être un nombre.',
- invalidHeight : 'La Hauteur de Cellule doit être un nombre.',
- invalidRowSpan : 'La fusion de lignes doit être un nombre entier.',
- invalidColSpan : 'La fusion de colonnes doit être un nombre entier.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Ligne',
- insertBefore : 'Insérer une ligne avant',
- insertAfter : 'Insérer une ligne après',
- deleteRow : 'Supprimer les lignes'
- },
-
- column :
- {
- menu : 'Colonnes',
- insertBefore : 'Insérer une colonne avant',
- insertAfter : 'Insérer une colonne après',
- deleteColumn : 'Supprimer les colonnes'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Propriétés du bouton',
- text : 'Texte (Value)',
- type : 'Type',
- typeBtn : 'Bouton',
- typeSbm : 'Validation (submit)',
- typeRst : 'Remise à zéro'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Propriétés de la case à cocher',
- radioTitle : 'Propriétés du bouton Radio',
- value : 'Valeur',
- selected : 'Sélectionné'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Propriétés du formulaire',
- menu : 'Propriétés du formulaire',
- action : 'Action',
- method : 'Méthode',
- encoding : 'Encodage'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Propriétés du menu déroulant',
- selectInfo : 'Informations sur le menu déroulant',
- opAvail : 'Options disponibles',
- value : 'Valeur',
- size : 'Taille',
- lines : 'Lignes',
- chkMulti : 'Permettre les sélections multiples',
- opText : 'Texte',
- opValue : 'Valeur',
- btnAdd : 'Ajouter',
- btnModify : 'Modifier',
- btnUp : 'Haut',
- btnDown : 'Bas',
- btnSetValue : 'Définir comme valeur sélectionnée',
- btnDelete : 'Supprimer'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Propriétés de la zone de texte',
- cols : 'Colonnes',
- rows : 'Lignes'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Propriétés du champ texte',
- name : 'Nom',
- value : 'Valeur',
- charWidth : 'Taille des caractères',
- maxChars : 'Nombre maximum de caractères',
- type : 'Type',
- typeText : 'Texte',
- typePass : 'Mot de passe'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Propriétés du champ caché',
- name : 'Nom',
- value : 'Valeur'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Propriétés de l\'image',
- titleButton : 'Propriétés du bouton image',
- menu : 'Propriétés de l\'image',
- infoTab : 'Informations sur l\'image',
- btnUpload : 'Envoyer sur le serveur',
- upload : 'Envoyer',
- alt : 'Texte de remplacement',
- width : 'Largeur',
- height : 'Hauteur',
- lockRatio : 'Garder les proportions',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Taille d\'origine',
- border : 'Bordure',
- hSpace : 'Espacement horizontal',
- vSpace : 'Espacement vertical',
- align : 'Alignement',
- alignLeft : 'Gauche',
- alignRight : 'Droite',
- alertUrl : 'Veuillez entrer l\'adresse de l\'image',
- linkTab : 'Lien',
- button2Img : 'Voulez-vous transformer le bouton image sélectionné en simple image?',
- img2Button : 'Voulez-vous transformer l\'image en bouton image?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propriétés du Flash',
- propertiesTab : 'Propriétés',
- title : 'Propriétés du Flash',
- chkPlay : 'Jouer automatiquement',
- chkLoop : 'Boucle',
- chkMenu : 'Activer le menu Flash',
- chkFull : 'Permettre le plein écran',
- scale : 'Echelle',
- scaleAll : 'Afficher tout',
- scaleNoBorder : 'Pas de bordure',
- scaleFit : 'Taille d\'origine',
- access : 'Accès aux scripts',
- accessAlways : 'Toujours',
- accessSameDomain: 'Même domaine',
- accessNever : 'Jamais',
- align : 'Alignement',
- alignLeft : 'Gauche',
- alignAbsBottom : 'Bas absolu',
- alignAbsMiddle : 'Milieu absolu',
- alignBaseline : 'Bas du texte',
- alignBottom : 'Bas',
- alignMiddle : 'Milieu',
- alignRight : 'Droite',
- alignTextTop : 'Haut du texte',
- alignTop : 'Haut',
- quality : 'Qualité',
- qualityBest : 'Meilleure',
- qualityHigh : 'Haute',
- qualityAutoHigh : 'Haute Auto',
- qualityMedium : 'Moyenne',
- qualityAutoLow : 'Basse Auto',
- qualityLow : 'Basse',
- windowModeWindow: 'Fenêtre',
- windowModeOpaque: 'Opaque',
- windowModeTransparent : 'Transparent',
- windowMode : 'Mode fenêtre',
- flashvars : 'Variables du Flash',
- bgcolor : 'Couleur d\'arrière-plan',
- width : 'Largeur',
- height : 'Hauteur',
- hSpace : 'Espacement horizontal',
- vSpace : 'Espacement vertical',
- validateSrc : 'L\'adresse ne doit pas être vide.',
- validateWidth : 'La largeur doit être un nombre.',
- validateHeight : 'La hauteur doit être un nombre.',
- validateHSpace : 'L\'espacement horizontal doit être un nombre.',
- validateVSpace : 'L\'espacement vertical doit être un nombre.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Vérifier l\'orthographe',
- title : 'Vérifier l\'orthographe',
- notAvailable : 'Désolé, le service est indisponible actuellement.',
- errorLoading : 'Erreur du chargement du service depuis l\'hôte : %s.',
- notInDic : 'N\'existe pas dans le dictionnaire',
- changeTo : 'Modifier pour',
- btnIgnore : 'Ignorer',
- btnIgnoreAll : 'Ignorer tout',
- btnReplace : 'Remplacer',
- btnReplaceAll : 'Remplacer tout',
- btnUndo : 'Annuler',
- noSuggestions : '- Aucune suggestion -',
- progress : 'Vérification de l\'orthographe en cours...',
- noMispell : 'Vérification de l\'orthographe terminée : aucune erreur trouvée',
- noChanges : 'Vérification de l\'orthographe terminée : Aucun mot corrigé',
- oneChange : 'Vérification de l\'orthographe terminée : Un seul mot corrigé',
- manyChanges : 'Vérification de l\'orthographe terminée : %1 mots corrigés',
- ieSpellDownload : 'La vérification d\'orthographe n\'est pas installée. Voulez-vous la télécharger maintenant?'
- },
-
- smiley :
- {
- toolbar : 'Emoticon',
- title : 'Insérer un émoticon',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 éléments'
- },
-
- numberedlist : 'Insérer/Supprimer la liste numérotée',
- bulletedlist : 'Insérer/Supprimer la liste à puces',
- indent : 'Augmenter le retrait (tabulation)',
- outdent : 'Diminuer le retrait (tabulation)',
-
- justify :
- {
- left : 'Aligner à gauche',
- center : 'Centrer',
- right : 'Aligner à droite',
- block : 'Justifier'
- },
-
- blockquote : 'Citation',
-
- clipboard :
- {
- title : 'Coller',
- cutError : 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).',
- copyError : 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).',
- pasteMsg : 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK',
- securityMsg : 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?',
- toolbar : 'Coller depuis Word',
- title : 'Coller depuis Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Coller comme texte sans mise en forme',
- title : 'Coller comme texte sans mise en forme'
- },
-
- templates :
- {
- button : 'Modèles',
- title : 'Contenu des modèles',
- options : 'Template Options', // MISSING
- insertOption : 'Remplacer le contenu actuel',
- selectPromptMsg : 'Veuillez sélectionner le modèle pour l\'ouvrir dans l\'éditeur',
- emptyListMsg : '(Aucun modèle disponible)'
- },
-
- showBlocks : 'Afficher les blocs',
-
- stylesCombo :
- {
- label : 'Styles',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Styles de blocs',
- panelTitle2 : 'Styles en ligne',
- panelTitle3 : 'Styles d\'objet'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format de paragraphe',
-
- tag_p : 'Normal',
- tag_pre : 'Formaté',
- tag_address : 'Adresse',
- tag_h1 : 'Titre 1',
- tag_h2 : 'Titre 2',
- tag_h3 : 'Titre 3',
- tag_h4 : 'Titre 4',
- tag_h5 : 'Titre 5',
- tag_h6 : 'Titre 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Police',
- voiceLabel : 'Police',
- panelTitle : 'Style de police'
- },
-
- fontSize :
- {
- label : 'Taille',
- voiceLabel : 'Taille de police',
- panelTitle : 'Taille de police'
- },
-
- colorButton :
- {
- textColorTitle : 'Couleur de texte',
- bgColorTitle : 'Couleur d\'arrière plan',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatique',
- more : 'Plus de couleurs...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Vérification d\'Orthographe en Cours de Frappe (SCAYT: Spell Check As You Type)',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Activer SCAYT',
- disable : 'Désactiver SCAYT',
- about : 'A propos de SCAYT',
- toggle : 'Activer/Désactiver SCAYT',
- options : 'Options',
- langs : 'Langues',
- moreSuggestions : 'Plus de suggestions',
- ignore : 'Ignorer',
- ignoreAll : 'Ignorer Tout',
- addWord : 'Ajouter le mot',
- emptyDic : 'Le nom du dictionnaire ne devrait pas être vide.',
-
- optionsTab : 'Options',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Langues',
-
- dictionariesTab : 'Dictionnaires',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'A propos de'
- },
-
- about :
- {
- title : 'A propos de CKEditor',
- dlgTitle : 'A propos de CKEditor',
- moreInfo : 'Pour les informations de licence, veuillez visiter notre site web:',
- copy : 'Copyright © $1. Tous droits réservés.'
- },
-
- maximize : 'Agrandir',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Ancre',
- flash : 'Animation Flash',
- div : 'Saut de Page',
- unknown : 'Objet Inconnu'
- },
-
- resize : 'Glisser pour modifier la taille',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * French language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'fr' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Ãditeur de Texte Enrichi',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Appuyez sur ALT-0 pour l\'aide',
+
+ browseServer: 'Explorer le serveur',
+ url: 'URL',
+ protocol: 'Protocole',
+ upload: 'Envoyer',
+ uploadSubmit: 'Envoyer sur le serveur',
+ image: 'Image',
+ flash: 'Flash',
+ form: 'Formulaire',
+ checkbox: 'Case à cocher',
+ radio: 'Bouton Radio',
+ textField: 'Champ texte',
+ textarea: 'Zone de texte',
+ hiddenField: 'Champ caché',
+ button: 'Bouton',
+ select: 'Liste déroulante',
+ imageButton: 'Bouton image',
+ notSet: '<non défini>',
+ id: 'Id',
+ name: 'Nom',
+ langDir: 'Sens d\'écriture',
+ langDirLtr: 'Gauche à droite (LTR)',
+ langDirRtl: 'Droite à gauche (RTL)',
+ langCode: 'Code de langue',
+ longDescr: 'URL de description longue (longdesc => malvoyant)',
+ cssClass: 'Classe CSS',
+ advisoryTitle: 'Description (title)',
+ cssStyle: 'Style',
+ ok: 'OK',
+ cancel: 'Annuler',
+ close: 'Fermer',
+ preview: 'Aperçu',
+ resize: 'Déplacer pour modifier la taille',
+ generalTab: 'Général',
+ advancedTab: 'Avancé',
+ validateNumberFailed: 'Cette valeur n\'est pas un nombre.',
+ confirmNewPage: 'Les changements non sauvegardés seront perdus. Ãtes-vous sûr de vouloir charger une nouvelle page?',
+ confirmCancel: 'Certaines options ont été modifiées. Ãtes-vous sûr de vouloir fermer?',
+ options: 'Options',
+ target: 'Cible (Target)',
+ targetNew: 'Nouvelle fenêtre (_blank)',
+ targetTop: 'Fenêtre supérieure (_top)',
+ targetSelf: 'Même fenêtre (_self)',
+ targetParent: 'Fenêtre parent (_parent)',
+ langDirLTR: 'Gauche à Droite (LTR)',
+ langDirRTL: 'Droite à Gauche (RTL)',
+ styles: 'Style',
+ cssClasses: 'Classes de style',
+ width: 'Largeur',
+ height: 'Hauteur',
+ align: 'Alignement',
+ alignLeft: 'Gauche',
+ alignRight: 'Droite',
+ alignCenter: 'Centré',
+ alignTop: 'Haut',
+ alignMiddle: 'Milieu',
+ alignBottom: 'Bas',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'La hauteur doit être un nombre.',
+ invalidWidth: 'La largeur doit être un nombre.',
+ invalidCssLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px or %).',
+ invalidInlineStyle: 'La valeur spécifiée pour le style inline doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
+ cssLengthTooltip: 'Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, Indisponible</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/gl.js b/devel/third-party/ckeditor/lang/gl.js
index 7754ae1..8a7928d 100644
--- a/devel/third-party/ckeditor/lang/gl.js
+++ b/devel/third-party/ckeditor/lang/gl.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Galician language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['gl'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Código Fonte',
- newPage : 'Nova Páxina',
- save : 'Gardar',
- preview : 'Vista Previa',
- cut : 'Cortar',
- copy : 'Copiar',
- paste : 'Pegar',
- print : 'Imprimir',
- underline : 'Sub-raiado',
- bold : 'Negrita',
- italic : 'Cursiva',
- selectAll : 'Seleccionar todo',
- removeFormat : 'Eliminar Formato',
- strike : 'Tachado',
- subscript : 'SubÃndice',
- superscript : 'SuperÃndice',
- horizontalrule : 'Inserir Liña Horizontal',
- pagebreak : 'Inserir Salto de Páxina',
- unlink : 'Eliminar Ligazón',
- undo : 'Desfacer',
- redo : 'Refacer',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Navegar no Servidor',
- url : 'URL',
- protocol : 'Protocolo',
- upload : 'Carregar',
- uploadSubmit : 'Enviar ó Servidor',
- image : 'Imaxe',
- flash : 'Flash',
- form : 'Formulario',
- checkbox : 'Cadro de Verificación',
- radio : 'Botón de Radio',
- textField : 'Campo de Texto',
- textarea : 'Ãrea de Texto',
- hiddenField : 'Campo Oculto',
- button : 'Botón',
- select : 'Campo de Selección',
- imageButton : 'Botón de Imaxe',
- notSet : '<non definido>',
- id : 'Id',
- name : 'Nome',
- langDir : 'Orientación do Idioma',
- langDirLtr : 'Esquerda a Dereita (LTR)',
- langDirRtl : 'Dereita a Esquerda (RTL)',
- langCode : 'Código do Idioma',
- longDescr : 'Descrición Completa da URL',
- cssClass : 'Clases da Folla de Estilos',
- advisoryTitle : 'TÃtulo',
- cssStyle : 'Estilo',
- ok : 'OK',
- cancel : 'Cancelar',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Advanzado',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Inserir Carácter Especial',
- title : 'Seleccione Caracter Especial',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Inserir/Editar Ligazón',
- other : '<outro>',
- menu : 'Editar Ligazón',
- title : 'Ligazón',
- info : 'Información da Ligazón',
- target : 'Destino',
- upload : 'Carregar',
- advanced : 'Advanzado',
- type : 'Tipo de Ligazón',
- toUrl : 'URL', // MISSING
- toAnchor : 'Referencia nesta páxina',
- toEmail : 'E-Mail',
- targetFrame : '<frame>',
- targetPopup : '<Xanela Emerxente>',
- targetFrameName : 'Nome do Marco Destino',
- targetPopupName : 'Nome da Xanela Emerxente',
- popupFeatures : 'CaracterÃsticas da Xanela Emerxente',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Barra de Estado',
- popupLocationBar: 'Barra de Localización',
- popupToolbar : 'Barra de Ferramentas',
- popupMenuBar : 'Barra de Menú',
- popupFullScreen : 'A Toda Pantalla (IE)',
- popupScrollBars : 'Barras de Desplazamento',
- popupDependent : 'Dependente (Netscape)',
- popupWidth : 'Largura',
- popupLeft : 'Posición Esquerda',
- popupHeight : 'Altura',
- popupTop : 'Posición dende Arriba',
- id : 'Id', // MISSING
- langDir : 'Orientación do Idioma',
- langDirLTR : 'Esquerda a Dereita (LTR)',
- langDirRTL : 'Dereita a Esquerda (RTL)',
- acccessKey : 'Chave de Acceso',
- name : 'Nome',
- langCode : 'Orientación do Idioma',
- tabIndex : 'Ãndice de Tabulación',
- advisoryTitle : 'TÃtulo',
- advisoryContentType : 'Tipo de Contido',
- cssClasses : 'Clases da Folla de Estilos',
- charset : 'Fonte de Caracteres Vinculado',
- styles : 'Estilo',
- selectAnchor : 'Seleccionar unha Referencia',
- anchorName : 'Por Nome de Referencia',
- anchorId : 'Por Element Id',
- emailAddress : 'Enderezo de E-Mail',
- emailSubject : 'Asunto do Mensaxe',
- emailBody : 'Corpo do Mensaxe',
- noAnchors : '(Non hai referencias disponibles no documento)',
- noUrl : 'Por favor, escriba a ligazón URL',
- noEmail : 'Por favor, escriba o enderezo de e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Inserir/Editar Referencia',
- menu : 'Propriedades da Referencia',
- title : 'Propriedades da Referencia',
- name : 'Nome da Referencia',
- errorName : 'Por favor, escriba o nome da referencia'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'Procurar',
- replace : 'Substituir',
- findWhat : 'Texto a procurar:',
- replaceWith : 'Substituir con:',
- notFoundMsg : 'Non te atopou o texto indicado.',
- matchCase : 'Coincidir Mai./min.',
- matchWord : 'Coincidir con toda a palabra',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Substitiur Todo',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabla',
- title : 'Propiedades da Táboa',
- menu : 'Propiedades da Táboa',
- deleteTable : 'Borrar Táboa',
- rows : 'Filas',
- columns : 'Columnas',
- border : 'Tamaño do Borde',
- align : 'Aliñamento',
- alignLeft : 'Esquerda',
- alignCenter : 'Centro',
- alignRight : 'Ereita',
- width : 'Largura',
- widthPx : 'pixels',
- widthPc : 'percent',
- widthUnit : 'width unit', // MISSING
- height : 'Altura',
- cellSpace : 'Marxe entre Celas',
- cellPad : 'Marxe interior',
- caption : 'TÃtulo',
- summary : 'Sumario',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cela',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'Borrar Cela',
- merge : 'Unir Celas',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Fila',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Borrar Filas'
- },
-
- column :
- {
- menu : 'Columna',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Borrar Columnas'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Propriedades do Botón',
- text : 'Texto (Valor)',
- type : 'Tipo',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Propriedades do Cadro de Verificación',
- radioTitle : 'Propriedades do Botón de Radio',
- value : 'Valor',
- selected : 'Seleccionado'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Propriedades do Formulario',
- menu : 'Propriedades do Formulario',
- action : 'Acción',
- method : 'Método',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Propriedades do Campo de Selección',
- selectInfo : 'Info',
- opAvail : 'Opcións Disponibles',
- value : 'Valor',
- size : 'Tamaño',
- lines : 'liñas',
- chkMulti : 'Permitir múltiples seleccións',
- opText : 'Texto',
- opValue : 'Valor',
- btnAdd : 'Engadir',
- btnModify : 'Modificar',
- btnUp : 'Subir',
- btnDown : 'Baixar',
- btnSetValue : 'Definir como valor por defecto',
- btnDelete : 'Borrar'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Propriedades da Ãrea de Texto',
- cols : 'Columnas',
- rows : 'Filas'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Propriedades do Campo de Texto',
- name : 'Nome',
- value : 'Valor',
- charWidth : 'Tamaño do Caracter',
- maxChars : 'Máximo de Caracteres',
- type : 'Tipo',
- typeText : 'Texto',
- typePass : 'Chave'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Propriedades do Campo Oculto',
- name : 'Nome',
- value : 'Valor'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Propriedades da Imaxe',
- titleButton : 'Propriedades do Botón de Imaxe',
- menu : 'Propriedades da Imaxe',
- infoTab : 'Información da Imaxe',
- btnUpload : 'Enviar ó Servidor',
- upload : 'Carregar',
- alt : 'Texto Alternativo',
- width : 'Largura',
- height : 'Altura',
- lockRatio : 'Proporcional',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Tamaño Orixinal',
- border : 'LÃmite',
- hSpace : 'Esp. Horiz.',
- vSpace : 'Esp. Vert.',
- align : 'Aliñamento',
- alignLeft : 'Esquerda',
- alignRight : 'Dereita',
- alertUrl : 'Por favor, escriba a URL da imaxe',
- linkTab : 'Ligazón',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propriedades Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'Propriedades Flash',
- chkPlay : 'Auto Execución',
- chkLoop : 'Bucle',
- chkMenu : 'Activar Menú Flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Escalar',
- scaleAll : 'Amosar Todo',
- scaleNoBorder : 'Sen Borde',
- scaleFit : 'Encaixar axustando',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Aliñamento',
- alignLeft : 'Esquerda',
- alignAbsBottom : 'Abs Inferior',
- alignAbsMiddle : 'Abs Centro',
- alignBaseline : 'Liña Base',
- alignBottom : 'Pé',
- alignMiddle : 'Centro',
- alignRight : 'Dereita',
- alignTextTop : 'Tope do Texto',
- alignTop : 'Tope',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Cor do Fondo',
- width : 'Largura',
- height : 'Altura',
- hSpace : 'Esp. Horiz.',
- vSpace : 'Esp. Vert.',
- validateSrc : 'Por favor, escriba a ligazón URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Corrección Ortográfica',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Non está no diccionario',
- changeTo : 'Cambiar a',
- btnIgnore : 'Ignorar',
- btnIgnoreAll : 'Ignorar Todas',
- btnReplace : 'Substituir',
- btnReplaceAll : 'Substituir Todas',
- btnUndo : 'Desfacer',
- noSuggestions : '- Sen candidatos -',
- progress : 'Corrección ortográfica en progreso...',
- noMispell : 'Corrección ortográfica rematada: Non se atoparon erros',
- noChanges : 'Corrección ortográfica rematada: Non se substituiu nengunha verba',
- oneChange : 'Corrección ortográfica rematada: Unha verba substituida',
- manyChanges : 'Corrección ortográfica rematada: %1 verbas substituidas',
- ieSpellDownload : 'O corrector ortográfico non está instalado. ¿Quere descargalo agora?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Inserte un Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Lista Numerada',
- bulletedlist : 'Marcas',
- indent : 'Aumentar SangrÃa',
- outdent : 'Disminuir SangrÃa',
-
- justify :
- {
- left : 'Aliñar á Esquerda',
- center : 'Centrado',
- right : 'Aliñar á Dereita',
- block : 'Xustificado'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Pegar',
- cutError : 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl/Cmd+X).',
- copyError : 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl/Cmd+C).',
- pasteMsg : 'Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e pulse <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Pegar dende Word',
- title : 'Pegar dende Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Pegar como texto plano',
- title : 'Pegar como texto plano'
- },
-
- templates :
- {
- button : 'Plantillas',
- title : 'Plantillas de Contido',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):',
- emptyListMsg : '(Non hai plantillas definidas)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Estilo',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Formato',
- panelTitle : 'Formato',
-
- tag_p : 'Normal',
- tag_pre : 'Formateado',
- tag_address : 'Enderezo',
- tag_h1 : 'Enacabezado 1',
- tag_h2 : 'Encabezado 2',
- tag_h3 : 'Encabezado 3',
- tag_h4 : 'Encabezado 4',
- tag_h5 : 'Encabezado 5',
- tag_h6 : 'Encabezado 6',
- tag_div : 'Paragraph (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Tipo',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Tipo'
- },
-
- fontSize :
- {
- label : 'Tamaño',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Tamaño'
- },
-
- colorButton :
- {
- textColorTitle : 'Cor do Texto',
- bgColorTitle : 'Cor do Fondo',
- panelTitle : 'Colors', // MISSING
- auto : 'Automático',
- more : 'Máis Cores...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Galician language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'gl' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Editor de texto enriquecido',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Prema ALT 0 para obter axuda',
+
+ browseServer: 'Ver servidor',
+ url: 'URL',
+ protocol: 'Protocolo',
+ upload: 'Cargar',
+ uploadSubmit: 'Enviar ao servidor',
+ image: 'Imaxe',
+ flash: 'Flash',
+ form: 'Formulario',
+ checkbox: 'Campo de verificación',
+ radio: 'Botón de radio',
+ textField: 'Campo de texto',
+ textarea: 'Ãrea de texto',
+ hiddenField: 'Campo oculto',
+ button: 'Botón',
+ select: 'Campo de selección',
+ imageButton: 'Botón de imaxe',
+ notSet: '<non definido>',
+ id: 'Id',
+ name: 'Nome',
+ langDir: 'Orientación do idioma',
+ langDirLtr: 'Esquerda a dereita (LTR)',
+ langDirRtl: 'Dereita a esquerda (RTL)',
+ langCode: 'Código do idioma',
+ longDescr: 'Descrición completa da URL',
+ cssClass: 'Clases da folla de estilos',
+ advisoryTitle: 'TÃtulo',
+ cssStyle: 'Estilo',
+ ok: 'OK',
+ cancel: 'Cancelar',
+ close: 'Pechar',
+ preview: 'Previsualizar',
+ resize: 'Redimensionar',
+ generalTab: 'Xeral',
+ advancedTab: 'Advanzado',
+ validateNumberFailed: 'Este valor non é un número.',
+ confirmNewPage: 'Calquera cambio que non gardara neste contido perderase.\r\nEstá seguro que quere cargar a nova páxina?',
+ confirmCancel: 'Algunhas das opcións foron cambiadas.\r\nEsta seguro que quere pechar o diálogo??',
+ options: 'Opcións',
+ target: 'Obxectivo',
+ targetNew: 'Nova xaneal (_blank)',
+ targetTop: 'Xanela principal (_top)',
+ targetSelf: 'Mesma xanela (_self)',
+ targetParent: 'Xanela superior (_parent)',
+ langDirLTR: 'Esquerda a dereita (LTR)',
+ langDirRTL: 'Dereita a esquerda (RTL)',
+ styles: 'Estilo',
+ cssClasses: 'Clases da folla de estilos',
+ width: 'Ancho',
+ height: 'Alto',
+ align: 'Aliñamento',
+ alignLeft: 'Esquerda',
+ alignRight: 'Dereita',
+ alignCenter: 'Centro',
+ alignTop: 'Arriba',
+ alignMiddle: 'Centro',
+ alignBottom: 'Pé',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'O alto debe ser un número.',
+ invalidWidth: 'O ancho debe ser un número.',
+ invalidCssLength: 'O valor especificado para o campo "%1" debe ser un número positivo con ou sen unha unidade medida CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'O valor especificado para o campo "%1" debe ser un número positivo con ou sen unha unidade de medida HTML válidoa (px or %).',
+ invalidInlineStyle: 'O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato "nome : valor", separadas por punto e coma.',
+ cssLengthTooltip: 'Escriba un número para o valor en pÃxeles ou un número con unha unidade CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, non dispoñÃbel</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/gu.js b/devel/third-party/ckeditor/lang/gu.js
index 9f8af5d..5060222 100644
--- a/devel/third-party/ckeditor/lang/gu.js
+++ b/devel/third-party/ckeditor/lang/gu.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Gujarati language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['gu'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'મà«àª³ àªà« પà«àª°àª¾àª¥àª®àª¿àª દસà«àª¤àª¾àªµà«àª',
- newPage : 'નવૠપાનà«àª',
- save : 'સà«àªµ',
- preview : 'પà«àª°à«àªµàª¦àª°à«àª¶àª¨',
- cut : 'àªàª¾àªªàªµà«àª',
- copy : 'નàªàª²',
- paste : 'પà«àª¸à«àª',
- print : 'પà«àª°àª¿àª¨à«àª',
- underline : 'àª
નà«àª¡àª°à«àª²àª¾àªàª¨, નà«àªà« લà«àªà«',
- bold : 'બà«àª²à«àª¡/સà«àªªàª·à«àª',
- italic : 'àªàªà«àª²àª¿àª, તà«àª°àª¾àªàª¸àª¾',
- selectAll : 'બàªà«àª પસàªàª¦ àªàª°àªµà«àª',
- removeFormat : 'ફà«àª°à«àª®àª àªàª¾àª¢àªµà«àª',
- strike : 'àªà«àªà« નાàªàªµà«àª',
- subscript : 'àªàª àªàª¿àª¹à«àª¨àª¨à« નà«àªà« àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨',
- superscript : 'àªàª àªàª¿àª¹à«àª¨ àªàªªàª° àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨.',
- horizontalrule : 'સમસà«àª¤àª°à«àª¯ રà«àªàª¾ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',
- pagebreak : 'àªàª¨à«àª¸àª°à«àª પà«àªàª¬à«àª°à«àª/પાનાનૠàª
લઠàªàª°àªµà«àª/દાàªàª² àªàª°àªµà«àª',
- unlink : 'લિàªàª àªàª¾àª¢àªµà«',
- undo : 'રદ àªàª°àªµà«àª; પહà«àª²àª¾àª હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«',
- redo : 'રિડà«; પàªà« હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'સરà«àªµàª° બà«àª°àª¾àªàª àªàª°à«',
- url : 'URL',
- protocol : 'પà«àª°à«àªà«àªà«àª²',
- upload : 'àª
પલà«àª¡',
- uploadSubmit : 'ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª',
- image : 'àªàª¿àª¤à«àª°',
- flash : 'ફà«àª²à«
શ',
- form : 'ફà«àª°à«àª®/પતà«àª°àª',
- checkbox : 'àªà«àª બà«àªà«àª¸',
- radio : 'રà«àª¡àª¿àª બàªàª¨',
- textField : 'àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°',
- textarea : 'àªà«àªà«àª¸à«àª àªàª°àª¿àª, શબà«àª¦ વિસà«àª¤àª¾àª°',
- hiddenField : 'àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°',
- button : 'બàªàª¨',
- select : 'પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°',
- imageButton : 'àªàª¿àª¤à«àª° બàªàª¨',
- notSet : '<સà«àª નથà«>',
- id : 'Id',
- name : 'નામ',
- langDir : 'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',
- langDirLtr : 'ડાબૠથૠàªàª®àª£à« (LTR)',
- langDirRtl : 'àªàª®àª£à« થૠડાબૠ(RTL)',
- langCode : 'àªàª¾àª·àª¾ àªà«àª¡',
- longDescr : 'વધારૠમાહિતૠમાàªà« URL',
- cssClass : 'સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸',
- advisoryTitle : 'મà«àªà«àª¯ મથાળà«àª',
- cssStyle : 'સà«àªàª¾àªàª²',
- ok : 'ઠà«àª àªà«',
- cancel : 'રદ àªàª°àªµà«àª',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'àª
ડà«àªµàª¾àª¨à«àª¸àª¡',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'વિશિષà«àª àª
àªà«àª·àª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª',
- title : 'સà«àªªà«àª¶àª¿àª
લ વિશિષà«àª àª
àªà«àª·àª° પસàªàª¦ àªàª°à«',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'લિàªàª àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',
- other : '<other>', // MISSING
- menu : ' લિàªàª àªàª¡àª¿àª/માઠફà«àª°àª«àª¾àª° àªàª°àªµà«',
- title : 'લિàªàª',
- info : 'લિàªàª àªàª¨à«àª«à« àªà«
બ',
- target : 'àªàª¾àª°à«àªà«àª/લàªà«àª·à«àª¯',
- upload : 'àª
પલà«àª¡',
- advanced : 'àª
ડà«àªµàª¾àª¨à«àª¸àª¡',
- type : 'લિàªàª પà«àª°àªàª¾àª°',
- toUrl : 'URL', // MISSING
- toAnchor : 'ઠપà«àªàª¨à« àªàªàªàª°',
- toEmail : 'àª-મà«àª²',
- targetFrame : '<ફà«àª°à«àª®>',
- targetPopup : '<પà«àªª-àª
પ વિનà«àª¡à«>',
- targetFrameName : 'àªàª¾àª°à«àªà«àª ફà«àª°à«àª® નà«àª નામ',
- targetPopupName : 'પà«àªª-àª
પ વિનà«àª¡à« નà«àª નામ',
- popupFeatures : 'પà«àªª-àª
પ વિનà«àª¡à« ફà«àªàª°àª¸à«
',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'સà«àªà«
àªàª¸ બાર',
- popupLocationBar: 'લà«àªà«àª¶àª¨ બાર',
- popupToolbar : 'àªà«àª² બાર',
- popupMenuBar : 'મà«àª¨à«àª¯à« બાર',
- popupFullScreen : 'ફà«àª² સà«àªà«àª°à«àª¨ (IE)',
- popupScrollBars : 'સà«àªà«àª°à«àª² બાર',
- popupDependent : 'ડિપà«àª¨à«àª¡àª¨à«àª (Netscape)',
- popupWidth : 'પહà«àª³àª¾àª',
- popupLeft : 'ડાબૠબાàªà«',
- popupHeight : 'àªàªàªàª¾àª',
- popupTop : 'àªàª®àª£à« બાàªà«',
- id : 'Id', // MISSING
- langDir : 'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',
- langDirLTR : 'ડાબૠથૠàªàª®àª£à« (LTR)',
- langDirRTL : 'àªàª®àª£à« થૠડાબૠ(RTL)',
- acccessKey : 'àªàªà«àª¸à«àª¸ àªà«',
- name : 'નામ',
- langCode : 'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',
- tabIndex : 'àªà«
બ àªàª¨à«àª¡à«àªà«àª¸',
- advisoryTitle : 'મà«àªà«àª¯ મથાળà«àª',
- advisoryContentType : 'મà«àªà«àª¯ àªàª¨à«àªà«àª¨à«àª પà«àª°àªàª¾àª°',
- cssClasses : 'સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸',
- charset : 'લિàªàª રિસà«àª°à«àª¸ àªà«
રિàªà«àªàª° સà«àª',
- styles : 'સà«àªàª¾àªàª²',
- selectAnchor : 'àªàªàªàª° પસàªàª¦ àªàª°à«',
- anchorName : 'àªàªàªàª° નામથૠપસàªàª¦ àªàª°à«',
- anchorId : 'àªàªàªàª° àªàª²àª¿àª®àª¨à«àª Id થૠપસàªàª¦ àªàª°à«',
- emailAddress : 'àª-મà«àª² સરનામà«àª',
- emailSubject : 'àª-મà«àª² વિષય',
- emailBody : 'સàªàª¦à«àª¶',
- noAnchors : '(ડà«àªà«àª¯à«àª®àª¨à«àªàª®àª¾àª àªàªàªàª°àª¨à« સàªàªà«àª¯àª¾)',
- noUrl : 'લિàªàª URL àªàª¾àªàªª àªàª°à«',
- noEmail : 'àª-મà«àª² સરનામà«àª àªàª¾àªàªª àªàª°à«'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'àªàªàªàª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',
- menu : 'àªàªàªàª°àª¨àª¾ àªà«àª£',
- title : 'àªàªàªàª°àª¨àª¾ àªà«àª£',
- name : 'àªàªàªàª°àª¨à«àª નામ',
- errorName : 'àªàªàªàª°àª¨à«àª નામ àªàª¾àªàªª àªàª°à«'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'શà«àª§àªµà«àª àª
નૠબદલવà«àª',
- find : 'શà«àª§àªµà«àª',
- replace : 'રિપà«àª²à«àª¸/બદલવà«àª',
- findWhat : 'ઠશà«àª§à«',
- replaceWith : 'àªàª¨àª¾àª¥à« બદલà«',
- notFoundMsg : 'તમૠશà«àª§à«àª²à« àªà«àªà«àª¸à«àª નથૠમળà«',
- matchCase : 'àªà«àª¸ સરàªàª¾ રાàªà«',
- matchWord : 'બàªàª¾ શબà«àª¦ સરàªàª¾ રાàªà«',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'બàªàª¾ બદલૠ',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'àªà«àª¬àª², àªà«àª à«',
- title : 'àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª',
- menu : 'àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª',
- deleteTable : 'àªà«àª ૠડિલà«àª/àªàª¾àª¢à« નાàªàªµà«àª',
- rows : 'પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾',
- columns : 'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',
- border : 'àªà«àª ાનૠબાàªà«(બà«àª°à«àª¡àª°) સાàªàª',
- align : 'àª
લાàªàª¨àª®àª¨à«àª/àªà«àª વાયà«àª²à«àª ',
- alignLeft : 'ડાબૠબાàªà«',
- alignCenter : 'મધà«àª¯ સà«àª¨à«àªàª°',
- alignRight : 'àªàª®àª£à« બાàªà«',
- width : 'પહà«àª³àª¾àª',
- widthPx : 'પિàªàª¸àª²',
- widthPc : 'પà«àª°àª¤àª¿àª¶àª¤',
- widthUnit : 'width unit', // MISSING
- height : 'àªàªàªàª¾àª',
- cellSpace : 'સà«àª² àª
àªàª¤àª°',
- cellPad : 'સà«àª² પà«
ડિàªàª',
- caption : 'મથાળà«àª/àªà«
પà«àª¶àª¨ ',
- summary : 'àªà«àªàªà« àªàª¹à«àªµàª¾àª²',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'àªà«àª·àª¨àª¾ àªàª¾àª¨àª¾',
- insertBefore : 'પહà«àª²àª¾àª àªà«àª· àªàª®à«àª°àªµà«',
- insertAfter : 'પàªà« àªà«àª· àªàª®à«àª°àªµà«',
- deleteCell : 'àªà«àª· ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«',
- merge : 'àªà«àª· àªà«àªàª¾ àªàª°àªµàª¾',
- mergeRight : 'àªàª®àª£à« બાàªà« àªà«àªàª¾ àªàª°àªµàª¾',
- mergeDown : 'નà«àªà« àªà«àªàª¾ àªàª°àªµàª¾',
- splitHorizontal : 'àªà«àª·àª¨à« સમસà«àª¤àª°à«àª¯ વિàªàª¾àªàª¨ àªàª°àªµà«àª',
- splitVertical : 'àªà«àª·àª¨à« સà«àª§à«àª નૠàªàªà«àª વિàªàª¾àªàª¨ àªàª°àªµà«àª',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾',
- insertBefore : 'પહà«àª²àª¾àª પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«',
- insertAfter : 'પàªà« પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«',
- deleteRow : 'પàªàªà«àª¤àª¿àª ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«'
- },
-
- column :
- {
- menu : 'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',
- insertBefore : 'પહà«àª²àª¾àª àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«',
- insertAfter : 'પàªà« àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«',
- deleteColumn : 'àªà«àª²àª®/àªàªà« àªàªàª¾àª° ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'બàªàª¨àª¨àª¾ àªà«àª£',
- text : 'àªà«àªà«àª¸à«àª (વà«
લà«àª¯à«)',
- type : 'પà«àª°àªàª¾àª°',
- typeBtn : 'બàªàª¨',
- typeSbm : 'સબà«àª®àª¿àª',
- typeRst : 'રિસà«àª'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'àªà«àª બà«àªà«àª¸ àªà«àª£',
- radioTitle : 'રà«àª¡àª¿àª બàªàª¨àª¨àª¾ àªà«àª£',
- value : 'વà«
લà«àª¯à«',
- selected : 'સિલà«àªà«àªà«àª¡'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£',
- menu : 'ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£',
- action : 'àªà«àª°àª¿àª¯àª¾',
- method : 'પદà«àª§àª¤àª¿',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',
- selectInfo : 'સà«àªàª¨àª¾',
- opAvail : 'àªàªªàª²àª¬à«àª§ વિàªàª²à«àªª',
- value : 'વà«
લà«àª¯à«',
- size : 'સાàªàª',
- lines : 'લà«àªà«àª',
- chkMulti : 'àªàªàª¥à« વધારૠપસàªàª¦ àªàª°à« શàªà«',
- opText : 'àªà«àªà«àª¸à«àª',
- opValue : 'વà«
લà«àª¯à«',
- btnAdd : 'àªàª®à«àª°àªµà«àª',
- btnModify : 'બદલવà«àª',
- btnUp : 'àªàªªàª°',
- btnDown : 'નà«àªà«',
- btnSetValue : 'પસàªàª¦ àªàª°àª²à« વà«
લà«àª¯à« સà«àª àªàª°à«',
- btnDelete : 'રદ àªàª°àªµà«àª'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'àªà«àªà«àª¸à«àª àªàª
રિàª, શબà«àª¦ વિસà«àª¤àª¾àª°àª¨àª¾ àªà«àª£',
- cols : 'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',
- rows : 'પàªàªà«àª¤àª¿àª'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',
- name : 'નામ',
- value : 'વà«
લà«àª¯à«',
- charWidth : 'àªà«àª°à«àªà«àªàª°àª¨à« પહà«àª³àª¾àª',
- maxChars : 'àª
ધિàªàª¤àª® àªà«àª°à«àªà«àªàª°',
- type : 'àªàª¾àªàªª',
- typeText : 'àªà«àªà«àª¸à«àª',
- typePass : 'પાસવરà«àª¡'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',
- name : 'નામ',
- value : 'વà«
લà«àª¯à«'
- },
-
- // Image Dialog.
- image :
- {
- title : 'àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£',
- titleButton : 'àªàª¿àª¤à«àª° બàªàª¨àª¨àª¾ àªà«àª£',
- menu : 'àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£',
- infoTab : 'àªàª¿àª¤à«àª° નૠàªàª¾àª£àªàª¾àª°à«',
- btnUpload : 'ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª',
- upload : 'àª
પલà«àª¡',
- alt : 'àªàª²à«àªàª°à«àª¨àª àªà«àªà«àª¸à«àª',
- width : 'પહà«àª³àª¾àª',
- height : 'àªàªàªàª¾àª',
- lockRatio : 'લà«àª àªà«àª£à«àª¤à«àª¤àª°',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'રà«àª¸à«àª સાàªàª',
- border : 'બà«àª°à«àª¡àª°',
- hSpace : 'સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾',
- vSpace : 'લàªàª¬àª°à«àªª àªàªà«àª¯àª¾',
- align : 'લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª',
- alignLeft : 'ડાબૠબાàªà« àªà«àª વવà«àª',
- alignRight : 'àªàª®àª£à«',
- alertUrl : 'àªàª¿àª¤à«àª°àª¨à« URL àªàª¾àªàªª àªàª°à«',
- linkTab : 'લિàªàª',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ફà«àª²à«
શના àªà«àª£',
- propertiesTab : 'Properties', // MISSING
- title : 'ફà«àª²à«
શ àªà«àª£',
- chkPlay : 'àªàªà«/સà«àªµàª¯àª પà«àª²à«',
- chkLoop : 'લà«àªª',
- chkMenu : 'ફà«àª²à«
શ મà«àª¨à«àª¯à« નૠપà«àª°àª¯à«àª àªàª°à«',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'સà«àªà«àª²',
- scaleAll : 'સà«àªà«àª² àªàª²/બધૠબતાવà«',
- scaleNoBorder : 'સà«àªà«àª² બà«àª°à«àª¡àª° વàªàª°',
- scaleFit : 'સà«àªà«àª² àªàªàª¦àª® ફà«àª',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª',
- alignLeft : 'ડાબૠબાàªà« àªà«àª વવà«àª',
- alignAbsBottom : 'Abs નà«àªà«',
- alignAbsMiddle : 'Abs àªàªªàª°',
- alignBaseline : 'àªàª§àª¾àª° લà«àªà«',
- alignBottom : 'નà«àªà«',
- alignMiddle : 'વàªà«àªà«',
- alignRight : 'àªàª®àª£à«',
- alignTextTop : 'àªà«àªà«àª¸à«àª àªàªªàª°',
- alignTop : 'àªàªªàª°',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,',
- width : 'પહà«àª³àª¾àª',
- height : 'àªàªàªàª¾àª',
- hSpace : 'સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾',
- vSpace : 'લàªàª¬àª°à«àªª àªàªà«àª¯àª¾',
- validateSrc : 'લિàªàª URL àªàª¾àªàªª àªàª°à«',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'àªà«àª¡àª£à« (સà«àªªà«àª²àª¿àªàª) તપાસવà«',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'શબà«àª¦àªà«àª¶àª®àª¾àª નથà«',
- changeTo : 'àªàª¨àª¾àª¥à« બદલવà«àª',
- btnIgnore : 'àªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«',
- btnIgnoreAll : 'બધાનૠàªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«',
- btnReplace : 'બદલવà«àª',
- btnReplaceAll : 'બધા બદલૠàªàª°à«',
- btnUndo : 'àª
નà«àª¡à«',
- noSuggestions : '- àªàª સàªà«àª¶àª¨ નથૠ-',
- progress : 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª àªàª¾àª²à« àªà«...',
- noMispell : 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªà«àªà« àªà«àª¡àª£à« મળૠનથà«',
- noChanges : 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàªàªªàª£ શબà«àª¦ બદલયૠનથà«',
- oneChange : 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàª શબà«àª¦ બદલયૠàªà«',
- manyChanges : 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: %1 શબà«àª¦ બદલયા àªà«',
- ieSpellDownload : 'સà«àªªà«àª²-àªà«àªàª° àªàª¨à«àª¸à«àªà«àª² નથà«. શà«àª તમૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªàªà« àªà«?'
- },
-
- smiley :
- {
- toolbar : 'સà«àª®àª¾àªàª²à«',
- title : 'સà«àª®àª¾àªàª²à« પસàªàª¦ àªàª°à«',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'સàªàªà«àª¯àª¾àªàªàª¨ સà«àªàª¿',
- bulletedlist : 'બà«àª²à«àª સà«àªàª¿',
- indent : 'àªàª¨à«àª¡à«àª¨à«àª, લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ વધારવà«',
- outdent : 'àªàª¨à«àª¡à«àª¨à«àª લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ àªàªàª¾àª¡àªµà«',
-
- justify :
- {
- left : 'ડાબૠબાàªà«àª/બાàªà« તરફ',
- center : 'સàªàªà«àªàª¦à«àª°àª£/સà«àªàªàª°àª¿àªàª',
- right : 'àªàª®àª£à« બાàªà«àª/બાàªà« તરફ',
- block : 'બà«àª²à«àª, àª
àªàª¤àª°àª¾àª¯ àªàª¸à«àªàª¿àª«àª¾àª'
- },
-
- blockquote : 'બà«àª²à«àª-àªà«àª, àª
વતરણàªàª¿àª¹à«àª¨à«',
-
- clipboard :
- {
- title : 'પà«àª¸à«àª',
- cutError : 'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªàª àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+X) નૠàªàªªàª¯à«àª àªàª°à«.',
- copyError : 'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªà«àªªà« àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',
- pasteMsg : 'Ctrl/Cmd+V નૠપà«àª°àª¯à«àª àªàª°à« પà«àª¸à«àª àªàª°à«',
- securityMsg : 'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸àª¨àª¾ àªàª¾àª°àª£à«,àªàª¡àª¿àªàª° તમારા àªàª¿àª²à«àªªàª¬à«àª°à«àª¡ ડà«àªàª¾ નૠàªà«àªªà« નથૠàªàª°à« શàªàª¤à«. તમારૠઠવિનà«àª¡à«àª®àª¾àª ફરà«àª¥à« પà«àª¸à«àª àªàª°àªµà«àª પડશà«.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)',
- title : 'પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'પà«àª¸à«àª (àªà«àªà«àª¸à«àª)',
- title : 'પà«àª¸à«àª (àªà«àªà«àª¸à«àª)'
- },
-
- templates :
- {
- button : 'àªà«àª®à«àªªà«àª²à«àª',
- title : 'àªàª¨à«àªà«àª¨à«àª àªà«àª®à«àªªà«àª²à«àª',
- options : 'Template Options', // MISSING
- insertOption : 'મà«àª³ શબà«àª¦àª¨à« બદલà«',
- selectPromptMsg : 'àªàª¡àª¿àªàª°àª®àª¾àª àªàªªàª¨ àªàª°àªµàª¾ àªà«àª®à«àªªà«àª²à«àª પસàªàª¦ àªàª°à« (વરà«àª¤àª®àª¾àª¨ àªàª¨à«àªà«àª¨à«àª સà«àªµ નહà«àª થાય):',
- emptyListMsg : '(àªà«àª àªà«àª®à«àªªà«àª²à«àª ડિફાàªàª¨ નથà«)'
- },
-
- showBlocks : 'બà«àª²à«àª બતાવવà«àª',
-
- stylesCombo :
- {
- label : 'શà«àª²à«/રà«àª¤',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«',
- panelTitle : 'ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«',
-
- tag_p : 'સામાનà«àª¯',
- tag_pre : 'ફà«àª°à«àª®àªà«àª¡',
- tag_address : 'સરનામà«àª',
- tag_h1 : 'શà«àª°à«àª·àª 1',
- tag_h2 : 'શà«àª°à«àª·àª 2',
- tag_h3 : 'શà«àª°à«àª·àª 3',
- tag_h4 : 'શà«àª°à«àª·àª 4',
- tag_h5 : 'શà«àª°à«àª·àª 5',
- tag_h6 : 'શà«àª°à«àª·àª 6',
- tag_div : 'શà«àª°à«àª·àª (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ફà«àª¨à«àª',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ફà«àª¨à«àª'
- },
-
- fontSize :
- {
- label : 'ફà«àª¨à«àª સાàªàª/àªàª¦',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'ફà«àª¨à«àª સાàªàª/àªàª¦'
- },
-
- colorButton :
- {
- textColorTitle : 'શબà«àª¦àª¨à« રàªàª',
- bgColorTitle : 'બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,',
- panelTitle : 'Colors', // MISSING
- auto : 'સà«àªµàªàª¾àª²àª¿àª¤',
- more : 'àªàª° રàªàª...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Gujarati language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'gu' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'રà«àª àªà«àªà«àª·à«àª¤à« àªàª¡à«àªàª°',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'પà«àª°à«àª¸ ALT 0 મદદ માàª',
+
+ browseServer: 'સરà«àªµàª° બà«àª°àª¾àªàª àªàª°à«',
+ url: 'URL',
+ protocol: 'પà«àª°à«àªà«àªà«àª²',
+ upload: 'àª
પલà«àª¡',
+ uploadSubmit: 'ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª',
+ image: 'àªàª¿àª¤à«àª°',
+ flash: 'ફà«àª²à«
શ',
+ form: 'ફà«àª°à«àª®/પતà«àª°àª',
+ checkbox: 'àªà«àª બà«àªà«àª¸',
+ radio: 'રà«àª¡àª¿àª બàªàª¨',
+ textField: 'àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°',
+ textarea: 'àªà«àªà«àª¸à«àª àªàª°àª¿àª, શબà«àª¦ વિસà«àª¤àª¾àª°',
+ hiddenField: 'àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°',
+ button: 'બàªàª¨',
+ select: 'પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°',
+ imageButton: 'àªàª¿àª¤à«àª° બàªàª¨',
+ notSet: '<સà«àª નથà«>',
+ id: 'Id',
+ name: 'નામ',
+ langDir: 'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',
+ langDirLtr: 'ડાબૠથૠàªàª®àª£à« (LTR)',
+ langDirRtl: 'àªàª®àª£à« થૠડાબૠ(RTL)',
+ langCode: 'àªàª¾àª·àª¾ àªà«àª¡',
+ longDescr: 'વધારૠમાહિતૠમાàªà« URL',
+ cssClass: 'સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸',
+ advisoryTitle: 'મà«àªà«àª¯ મથાળà«àª',
+ cssStyle: 'સà«àªàª¾àªàª²',
+ ok: 'ઠà«àª àªà«',
+ cancel: 'રદ àªàª°àªµà«àª',
+ close: 'બàªàª§ àªàª°àªµà«àª',
+ preview: 'àªà«àªµà«àª',
+ resize: 'àªà«àªàªà« નૠયà«àªà«àª¯ àªàª°àªµà«àª',
+ generalTab: 'àªàª¨àª°àª²',
+ advancedTab: 'àª
ડà«àªµàª¾àª¨à«àª¸àª¡',
+ validateNumberFailed: 'ઠરàªàª® àªàªàª¡à« નથà«.',
+ confirmNewPage: 'સવૠàªàª¾àª°à«àª¯ વàªàª°àª¨à«àª ફàªàª°à« àªà«àªµàª¾àª àªàª¶à«. તમનૠàªàª¾àª¤àª°à« àªà« àªà« તમનૠનવà«àª પાનà«àª àªà«àª²àªµà«àª àªà«?',
+ confirmCancel: 'àªàª£àª¾ વિàªàª²à«àªªà« બદલાયા àªà«. તમારૠઠબà«àªà«àª·à« બàªàª§ àªàª°àªµà«àª àªà«?',
+ options: 'વિàªàª²à«àªªà«',
+ target: 'લàªà«àª·à«àª¯',
+ targetNew: 'નવૠવિનà«àª¡à« (_blank)',
+ targetTop: 'àªàªªàª°àª¨à« વિનà«àª¡à« (_top)',
+ targetSelf: 'àªàª વિનà«àª¡à« (_self)',
+ targetParent: 'પà«àª°àª¨àª વિનà«àª¡à« (_parent)',
+ langDirLTR: 'ડાબૠથૠàªàª®àª£à« (LTR)',
+ langDirRTL: 'àªàª®àª£à« થૠડાબૠ(RTL)',
+ styles: 'શà«àª²à«',
+ cssClasses: 'શà«àª²à« àªàª²àª¾àª¸à«àª¸',
+ width: 'પહà«àª³àª¾àª',
+ height: 'àªàªàªàª¾àª',
+ align: 'લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª',
+ alignLeft: 'ડાબૠબાàªà« àªà«àª વવà«àª',
+ alignRight: 'àªàª®àª£à«',
+ alignCenter: 'મધà«àª¯ સà«àª¨à«àªàª°',
+ alignTop: 'àªàªªàª°',
+ alignMiddle: 'વàªà«àªà«',
+ alignBottom: 'નà«àªà«',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'àªàªàªàª¾àª àªàª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ invalidWidth: 'પà«àª¹àª³ ઠàªàª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ invalidCssLength: '"%1" નૠવà«àª²à«àª¯à« àªàª પà«àª¸à«àªà«àªµ àªàªàªàª¡à« હà«àªµà« àªà«àªàª àª
થવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વàªàª°.',
+ invalidHtmlLength: '"%1" નૠવà«àª²à«àª¯à« àªàª પà«àª¸à«àªà«àªµ àªàªàªàª¡à« હà«àªµà« àªà«àªàª àª
થવા HTML measurement unit (px or %) વàªàª°.',
+ invalidInlineStyle: 'àªàª¨àª²àª¾àªàª¨ સà«àªàª¾àªàª² નૠવà«àª²à«àª¯à« "name : value" ના ફà«àª°à«àª®à«àª માઠહà«àªµà« àªà«àªàª, વàªà«àªà« સà«àª®à«-àªà«àª²à«àª¨ àªà«àªàª.',
+ cssLengthTooltip: 'પિàªà«àª·à«àª²à« નૠàªàªàªàª¡à« CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માઠનાàªà«.',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, નથૠમળતà«àª</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/he.js b/devel/third-party/ckeditor/lang/he.js
index 029ecd1..6ea51f1 100644
--- a/devel/third-party/ckeditor/lang/he.js
+++ b/devel/third-party/ckeditor/lang/he.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Hebrew language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['he'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'rtl',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : '×¢××¨× ××§×¡× ×¢×©×ר, %1, ×××¥ ××× (ALT) + 0 ××¢×ר×.',
-
- // ARIA descriptions.
- toolbar : 'סר×× ×××××',
- editor : '×¢××¨× ××§×¡× ×¢×©×ר',
-
- // Toolbar buttons without dialogs.
- source : '××§×ר',
- newPage : '××£ ××ש',
- save : 'ש××ר×',
- preview : 'תצ××× ××§××××',
- cut : '×××ר×',
- copy : '×עתק×',
- paste : '××××§×',
- print : '××פס×',
- underline : '×§× ×ª×ת××',
- bold : '××××ש',
- italic : '× ×××',
- selectAll : '×××רת ×××',
- removeFormat : '×סרת ××¢×צ××',
- strike : '×ת×× ××××§',
- subscript : '×ת×× ×ª×ת××',
- superscript : '×ת×× ×¢××××',
- horizontalrule : '××ספת ×§× ××פק×',
- pagebreak : '××ספת ש××רת ××£',
- unlink : '×סרת ××§×ש×ר',
- undo : '××××× ×¦×¢× ××ר××',
- redo : '×××¨× ×¢× ×¦×¢× ××ר××',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ס××ר ×שרת',
- url : '×ת××ת (URL)',
- protocol : 'פר××××§××',
- upload : '××¢×××',
- uploadSubmit : 'ש×××× ×שרת',
- image : 'ת××× ×',
- flash : 'פ××ש',
- form : '××פס',
- checkbox : 'ת××ת ס××××',
- radio : '×××¦× ×פשר×××ת',
- textField : 'ש×× ×קס×',
- textarea : '××××ר ×קס×',
- hiddenField : 'ש×× ××××',
- button : '×פת×ר',
- select : 'ש×× ×××ר×',
- imageButton : '×פת×ר ת××× ×',
- notSet : '<×× × ×§××¢>',
- id : '××××× (ID)',
- name : 'ש×',
- langDir : '××××× ×©×¤×',
- langDirLtr : 'ש××× ××××× (LTR)',
- langDirRtl : '×××× ×ש××× (RTL)',
- langCode : '×§×× ×©×¤×',
- longDescr : '×§×ש×ר ×ת×××ר ×פ×ר×',
- cssClass : '×××קת ×¢×צ×× (CSS Class)',
- advisoryTitle : '××תרת ××צעת',
- cssStyle : 'ס×× ××',
- ok : '××ש×ר',
- cancel : '×××××',
- close : 'ס××ר×',
- preview : 'תצ××× ××§××××',
- generalTab : '××××',
- advancedTab : '×פשר×××ת ×תק×××ת',
- validateNumberFailed : '××¢×¨× ×××× ××××ת ×ספר×.',
- confirmNewPage : '×× ×ש×× ×××× ×©×× × ×©××¨× ×××××. ××× ×××¢××ת ××£ ××ש?',
- confirmCancel : '×××§ ×××פשר×××ת ש×× ×, ××× ×ס××ר ×ת ×××××××?',
- options : '×פשר×××ת',
- target : '××ר×',
- targetNew : '×××× ××ש (_blank)',
- targetTop : '××××× ××¢×××× ×××תר (_top)',
- targetSelf : '×××ª× ×××× (_self)',
- targetParent : '×××× ××× (_parent)',
- langDirLTR : 'ש××× ××××× (LTR)',
- langDirRTL : '×××× ×ש××× (RTL)',
- styles : 'ס×× ××',
- cssClasses : '××××§×ת ××××× ×ת ס×× ××',
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ×× ××××</span>'
- },
-
- contextmenu :
- {
- options : '×פשר×××ת תפר×× ××קשר'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : '××ספת ×ª× ×××××',
- title : '×××רת ×ª× ×××××',
- options : '×פשר×××ת ת×××× ×××××××'
- },
-
- // Link dialog.
- link :
- {
- toolbar : '××ספת/ער××ת ×§×ש×ר',
- other : '<××ר>',
- menu : '××פ××× × ×§×ש×ר',
- title : '×§×ש×ר',
- info : '××××¢ ×¢× ××§×ש×ר',
- target : '××ר×',
- upload : '××¢×××',
- advanced : '×פשר×××ת ×תק×××ת',
- type : 'ס×× ×§×ש×ר',
- toUrl : '×ת××ת (URL)',
- toAnchor : '×¢××× ××¢××× ××',
- toEmail : '×××"×',
- targetFrame : '<×ס×רת>',
- targetPopup : '<×××× ×§×פץ>',
- targetFrameName : '×©× ×ס×רת ×××¢×',
- targetPopupName : '×©× ××××× ××§×פץ',
- popupFeatures : 'ת××× ×ת ××××× ××§×פץ',
- popupResizable : 'ש×× ×× ××××',
- popupStatusBar : 'סר×× ×××××',
- popupLocationBar: 'סר×× ×ת××ת',
- popupToolbar : 'סר×× ×××××',
- popupMenuBar : 'סר×× ×ª×¤×¨××',
- popupFullScreen : '××¡× ××× (IE)',
- popupScrollBars : '× ××ª× ××××××',
- popupDependent : 'ת××× (Netscape)',
- popupWidth : 'ר×××',
- popupLeft : '×××§×× ×¦× ×©×××',
- popupHeight : '××××',
- popupTop : '×××§×× ×¦× ×¢××××',
- id : '××××× (ID)',
- langDir : '××××× ×©×¤×',
- langDirLTR : 'ש××× ××××× (LTR)',
- langDirRTL : '×××× ×ש××× (RTL)',
- acccessKey : '×קש ××ש×',
- name : 'ש×',
- langCode : '×§×× ×©×¤×',
- tabIndex : '×ספר ×××',
- advisoryTitle : '××תרת ××צעת',
- advisoryContentType : 'Content Type ××צע',
- cssClasses : '×××××× ×ת ×¢×צ×× ×§××צ×ת',
- charset : '×§×××× ××ש×× ×××§×שר',
- styles : 'ס×× ××',
- selectAnchor : '×××רת ×¢×××',
- anchorName : 'עפ"× ×©× ××¢×××',
- anchorId : 'עפ"× ××××× (ID) ××××× ×',
- emailAddress : '×ת××ת ××××"×',
- emailSubject : '× ××©× ×××××¢×',
- emailBody : '×××£ ×××××¢×',
- noAnchors : '(××× ×¢××× ×× ×××× ×× ×××£)',
- noUrl : '×ש ×××§××× ×ת ×ת××ת ××§×ש×ר (URL)',
- noEmail : '×ש ×××§××× ×ת ×ת××ת ××××"×'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : '××ספת/ער××ת × ×§××ת ×¢××××',
- menu : '××פ××× × × ×§××ת ×¢××××',
- title : '××פ××× × × ×§××ת ×¢××××',
- name : '×©× ×× ×§××ת ×¢××××',
- errorName : '×ש ×××§××× ×©× ×× ×§××ת ×¢××××'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'ת××× ×ת רש××× ×××ספרת',
- bulletedTitle : 'ת××× ×ת רש××ת ת××××××',
- type : 'ס××',
- start : 'ת×××ת ×ספ×ר',
- validateStartNumber :'ש×× ×ª×××ת ××ספ×ר ×××× ××××× ×ספר ש××.',
- circle : '×¢×××× ×¨××§',
- disc : '×¢×××× ×××',
- square : 'ר××××¢',
- none : '×××',
- notset : '<×× × ×§××¢>',
- armenian : 'ספר×ת ×ר×× ××ת',
- georgian : 'ספר×ת ××××ר×××ת (an, ban, gan ×××\')',
- lowerRoman : 'ספ××¨× ×¨×××ת ×××ת××ת ×§×× ×ת (i, ii, iii, iv, v ×××\')',
- upperRoman : 'ספ××¨× ×¨××××ת ×××ת××ת ×××××ת (I, II, III, IV, V ×××\')',
- lowerAlpha : '××ת××ת ×× ××××ת ×§×× ×ת (a, b, c, d, e ×××\')',
- upperAlpha : '××ת××ת ×× ××××ת ×××××ת (A, B, C, D, E ×××\')',
- lowerGreek : '××ת××ת ×××× ××ת ×§×× ×ת (alpha, beta, gamma ×××\')',
- decimal : 'ספר×ת (1, 2, 3 ×××\')',
- decimalLeadingZero : 'ספר×ת ×¢× 0 ××ת××× (01, 02, 03 ×××\')'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : '××פ×ש ××××פ×',
- find : '××פ×ש',
- replace : '×××פ×',
- findWhat : '××פ×ש ××ר××ת:',
- replaceWith : '××××¤× ×××ר××ת:',
- notFoundMsg : '×××§×¡× ××××קש ×× × ×צ×.',
- matchCase : '×××× × ××× ××ת××ת רש××ת ××§×× ×ת (Case)',
- matchWord : '×ת××× ××××× ×××××',
- matchCyclic : '×ת××× ××××ר×ת',
- replaceAll : '××××¤× ××× ××¢×××',
- replaceSuccessMsg : '%1 ×קס××× ××××פ×.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : '××××',
- title : '××פ××× × ××××',
- menu : '××פ××× × ××××',
- deleteTable : '×××§ ××××',
- rows : 'ש×ר×ת',
- columns : '×¢××××ת',
- border : '×××× ×ס×רת',
- align : '××ש×ר',
- alignLeft : 'ש×××',
- alignCenter : '×ר××',
- alignRight : '××××',
- width : 'ר×××',
- widthPx : 'פ×קס×××',
- widthPc : '××××',
- widthUnit : '××××ת ר×××',
- height : '××××',
- cellSpace : '×ר××× ×ª×',
- cellPad : 'ר×פ×× ×ª×',
- caption : '××ת××',
- summary : 'תקצ×ר',
- headers : '××תר×ת',
- headersNone : '×××',
- headersColumn : '×¢×××× ×¨×ש×× ×',
- headersRow : 'ש××¨× ×¨×ש×× ×',
- headersBoth : '×©× ×××',
- invalidRows : 'ש×× ×ספר ×ש×ר×ת ×××× ××××ת ×ספר ×××× × 0.',
- invalidCols : 'ש×× ×ספר ××¢××××ת ×××× ××××ת ×ספר ×××× × 0.',
- invalidBorder : 'ש×× ×××× ××ס×רת ×××× ××××ת ×ספר.',
- invalidWidth : 'ש×× ×¨××× ××××× ×××× ××××ת ×ספר.',
- invalidHeight : 'ש×× ×××× ××××× ×××× ××××ת ×ספר.',
- invalidCellSpacing : 'ש×× ×¨×××× ×ת××× ×××× ××××ת ×ספר.',
- invalidCellPadding : 'ש×× ×¨×פ×× ×ת××× ×××× ××××ת ×ספר.',
-
- cell :
- {
- menu : '××פ××× × ×ª×',
- insertBefore : '××ספת ×ª× ××¤× ×',
- insertAfter : '××ספת ×ª× ××ר×',
- deleteCell : '×××קת ת×××',
- merge : '××××× ×ª×××',
- mergeRight : '××× ×××× ×',
- mergeDown : '××× ××××',
- splitHorizontal : 'פ×צ×× ×ª× ××פק×ת',
- splitVertical : 'פ×צ×× ×ª× ×× ××ת',
- title : 'ת××× ×ת ×ת×',
- cellType : 'ס×× ×ת×',
- rowSpan : '×ת××ת ×ש×ר×ת',
- colSpan : '×ת××ת ×ת×××',
- wordWrap : '×× ×עת ×××שת ש×ר×ת',
- hAlign : '××ש×ר ××פק×',
- vAlign : '××ש×ר ×× ××',
- alignTop : '×××¢××',
- alignMiddle : '×ר××',
- alignBottom : '××××',
- alignBaseline : 'ש×רת ×ס×ס',
- bgColor : 'צ××¢ רקע',
- borderColor : 'צ××¢ ×ס×רת',
- data : '××××¢',
- header : '××תרת',
- yes : '××',
- no : '××',
- invalidWidth : 'ש×× ×¨××× ××ª× ×××× ××××ת ×ספר.',
- invalidHeight : 'ש×× ×××× ××ª× ×××× ××××ת ×ספר.',
- invalidRowSpan : 'ש×× ×ת××ת ×ש×ר×ת ×××× ××××ת ×ספר ש××.',
- invalidColSpan : 'ש×× ×ת××ת ××¢××××ת ×××× ××××ת ×ספר ש××.',
- chooseColor : '××ר'
- },
-
- row :
- {
- menu : 'ש×ר×',
- insertBefore : '××ספת ש××¨× ××¤× ×',
- insertAfter : '××ספת ש××¨× ××ר×',
- deleteRow : '×××קת ש×ר×ת'
- },
-
- column :
- {
- menu : '×¢××××',
- insertBefore : '××ספת ×¢×××× ××¤× ×',
- insertAfter : '××ספת ×¢×××× ××ר×',
- deleteColumn : '×××קת ×¢××××ת'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : '××פ××× × ×פת×ר',
- text : '××§×¡× (ער×)',
- type : 'ס××',
- typeBtn : '×פת×ר',
- typeSbm : 'ש××××',
- typeRst : '××פ×ס'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : '××פ××× × ×ª××ת ס××××',
- radioTitle : '××פ××× × ×××¦× ×פשר×××ת',
- value : 'ער×',
- selected : '×ס×××'
- },
-
- // Form Dialog.
- form :
- {
- title : '××פ×× × ××פס',
- menu : '××פ×× × ××פס',
- action : 'ש×× ××',
- method : 'ס×× ×©××××',
- encoding : '×§××××'
- },
-
- // Select Field Dialog.
- select :
- {
- title : '××פ××× × ×©×× ×××ר×',
- selectInfo : '××××¢',
- opAvail : '×פשר×××ת ×××× ×ת',
- value : 'ער×',
- size : '××××',
- lines : 'ש×ר×ת',
- chkMulti : '××פש×ר ×××ר×ת ×ר×××ת',
- opText : '×קס×',
- opValue : 'ער×',
- btnAdd : '××ספ×',
- btnModify : 'ש×× ××',
- btnUp : '×××¢××',
- btnDown : '××××',
- btnSetValue : '×§×××¢× ××ר×רת ××××',
- btnDelete : '××××§×'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : '××פ××× × ××××ר ×קס×',
- cols : '×¢××××ת',
- rows : 'ש×ר×ת'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : '××פ××× × ×©×× ×קס×',
- name : 'ש×',
- value : 'ער×',
- charWidth : 'ר××× ××¤× ×ª××××',
- maxChars : '×קס×××× ×ª××××',
- type : 'ס××',
- typeText : '×קס×',
- typePass : 'ס×ס××'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : '××פ×× × ×©×× ××××',
- name : 'ש×',
- value : 'ער×'
- },
-
- // Image Dialog.
- image :
- {
- title : '××פ××× × ×ת××× ×',
- titleButton : '××פ×× × ×פת×ר ת××× ×',
- menu : 'ת××× ×ת ×ת××× ×',
- infoTab : '××××¢ ×¢× ×ת××× ×',
- btnUpload : 'ש×××× ×שרת',
- upload : '××¢×××',
- alt : '××§×¡× ×××פ×',
- width : 'ר×××',
- height : '××××',
- lockRatio : '× ×¢××ת ×××ס',
- unlockRatio : '××××× × ×¢××ת ×××ס',
- resetSize : '××פ×ס ×××××',
- border : '×ס×רת',
- hSpace : '×ר××× ××פק×',
- vSpace : '×ר××× ×× ××',
- align : '××ש×ר',
- alignLeft : '×ש×××',
- alignRight : '×××××',
- alertUrl : '×ש ×××§××× ×ת ×ת××ת ×ת××× ×',
- linkTab : '×§×ש×ר',
- button2Img : '××× ××פ×× ×ת ת××× ×ª ××פת×ר ×ת××× × ×¤×©×××?',
- img2Button : '××× ××פ×× ×ת ×ת××× × ××פת×ר ת××× ×?',
- urlMissing : '×ת××ת ×ת××× × ×סר×.',
- validateWidth : 'ש×× ×ר××× ×××× ××××ת ×ספר ש××.',
- validateHeight : 'ש×× ××××× ×××× ××××ת ×ספר ש××.',
- validateBorder : 'ש×× ××ס×רת ×××× ××××ת ×ספר ש××.',
- validateHSpace : 'ש×× ××ר××× ××××¤×§× ×××× ××××ת ×ספר ש××.',
- validateVSpace : 'ש×× ××ר××× ××× ×× ×××× ××××ת ×ספר ש××.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : '××פ××× × ×¤××ש',
- propertiesTab : '××פ××× ××',
- title : '××פ×× × ×¤××ש',
- chkPlay : '× ×××× ×××××××',
- chkLoop : '×××××',
- chkMenu : '×פשר תפר×× ×¤××ש',
- chkFull : '×פשר ×××× ×××',
- scale : '××××',
- scaleAll : '××¦× ×××',
- scaleNoBorder : '××× ×××××ת',
- scaleFit : '×ת××× ××ש××ת',
- access : '××שת סקר×פ×',
- accessAlways : 'ת×××',
- accessSameDomain: '×××××× ×××',
- accessNever : '××£ פע×',
- align : '××ש×ר',
- alignLeft : '×ש×××',
- alignAbsBottom : '×ת×ת×ת ×××ס×××××ת',
- alignAbsMiddle : '×ר××× ××ס×××××',
- alignBaseline : '××§× ×ת×ת×ת',
- alignBottom : '×ת×ת×ת',
- alignMiddle : '×××צע',
- alignRight : '×××××',
- alignTextTop : '×ר×ש ××קס×',
- alignTop : '×××¢××',
- quality : '××××ת',
- qualityBest : '××¢×××',
- qualityHigh : '×××××',
- qualityAutoHigh : '××××× ×××××××ת',
- qualityMedium : '×××צעת',
- qualityAutoLow : '× ×××× ×××××××ת',
- qualityLow : '× ××××',
- windowModeWindow: '××××',
- windowModeOpaque: '××××',
- windowModeTransparent : 'שק××£',
- windowMode : '××¦× ××××',
- flashvars : '××©×ª× ×× ×פ××ש',
- bgcolor : 'צ××¢ רקע',
- width : 'ר×××',
- height : '××××',
- hSpace : '×ר××× ××פק×',
- vSpace : '×ר××× ×× ××',
- validateSrc : '×ש ×××§××× ×ת ×ת××ת סר××× ×פ××ש (URL)',
- validateWidth : '×ר××× ×××× ××××ת ×ספר.',
- validateHeight : '××××× ×××× ××××ת ×ספר.',
- validateHSpace : '××ר××× ××××¤×§× ×××× ××××ת ×ספר.',
- validateVSpace : '××ר××× ××× ×× ×××× ××××ת ×ספר.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : '×××קת ×××ת',
- title : '×××קת ×××ת',
- notAvailable : '×× × ××¦× ×©×ר×ת ××××.',
- errorLoading : 'ש×××× ×××¢××ת ×ש×ר×ת: %s.',
- notInDic : '×× × ××¦× ××××××',
- changeTo : 'ש×× ×× ×',
- btnIgnore : '×תע×××ת',
- btnIgnoreAll : '×תע×××ת ××××',
- btnReplace : '×××פ×',
- btnReplaceAll : '×××פת ×××',
- btnUndo : '×××ר×',
- noSuggestions : '- ××× ×צע×ת -',
- progress : '××××§ ××××ת ×ת×××× ××××§×....',
- noMispell : '××××§×ת ×××ת ×סת××××: ×× × ×צ×× ×©××××ת ×ת××',
- noChanges : '××××§×ת ×××ת ×סת××××: ×× ×©×× ×ª× ××£ ××××',
- oneChange : '××××§×ת ×××ת ×סת××××: ש×× ×ª× ×××× ××ת',
- manyChanges : '××××§×ת ×××ת ×סת××××: %1 ××××× ×©×× ×',
- ieSpellDownload : '××××§ ××××ת ×× ××תק×, ××× ×××ר×××?'
- },
-
- smiley :
- {
- toolbar : 'ס×××××',
- title : '××ספת ס×××××',
- options : '×פשר×××ת ס××××××'
- },
-
- elementsPath :
- {
- eleLabel : '×¢×¥ ××××× ×××',
- eleTitle : '%1 ×××× ×'
- },
-
- numberedlist : 'רש××× ×××ספרת',
- bulletedlist : 'רש××ת × ×§×××ת',
- indent : '××××ת ××××',
- outdent : '××§×× ×ª ××××',
-
- justify :
- {
- left : '××ש×ר ×ש×××',
- center : '×ר×××',
- right : '××ש×ר ×××××',
- block : '××ש×ר ×ש×××××'
- },
-
- blockquote : '××××§ צ××××',
-
- clipboard :
- {
- title : '××××§×',
- cutError : '×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××××¨× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+X).',
- copyError : '×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××¢×ª×§× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+C).',
- pasteMsg : '× × ××××××§ ×ת×× ××§××¤×¡× ×××צע×ת (<b>Ctrl/Cmd+V</b>) ××××××¥ ×¢× <b>××ש×ר</b>.',
- securityMsg : '×¢×§× ×××ר×ת ××××× ××פ×פ×, ×× × ××ª× ××שת ×× ××× ××××ר×× (Clipboard) ×צ××¨× ×ש×ר×. × × ××××××§ ש×× ××××× ××.',
- pasteArea : '××××ר ××××§×'
- },
-
- pastefromword :
- {
- confirmCleanup : '× ×¨×× ×××§×¡× ×©××××× ×ª× ××××××§ ××§××¨× ××§×××¥ ××ר×. ××× ×רצ×× × ×× ×§×ת ×××ª× ××¨× ×××××§×?',
- toolbar : '××××§× ×-Word',
- title : '××××§× ×-Word',
- error : '×× × ××ª× ××× ×× ×§×ת ×ת ×××××¢ ××©× ×ª×§×× ×¤× ×××ת.'
- },
-
- pasteText :
- {
- button : '××××§× ×××§×¡× ×¤×©××',
- title : '××××§× ×××§×¡× ×¤×©××'
- },
-
- templates :
- {
- button : 'ת×× ××ת',
- title : 'ת×××ת ת×××',
- options : '×פשר×××ת ×ת×× ××ת',
- insertOption : '×××פת ת××× ××ש×',
- selectPromptMsg : '×ש ××××ר ת×× ×ת ×פת××× ××¢×ר×.<br />×ת××× ×××§××¨× ××××§:',
- emptyListMsg : '(×× ×××××¨× ×ª×× ××ת)'
- },
-
- showBlocks : '×צ×ת ××××§××',
-
- stylesCombo :
- {
- label : 'ס×× ××',
- panelTitle : 'ס×× ×× ×ת פ×ר××',
- panelTitle1 : 'ס×× ×× ×ת ××××§',
- panelTitle2 : 'ס×× ×× ×ת רצף',
- panelTitle3 : 'ס×× ×× ×ת ××××××§×'
- },
-
- format :
- {
- label : '×¢×צ××',
- panelTitle : '×¢×צ××',
-
- tag_p : '× ×ר×××',
- tag_pre : '×§××',
- tag_address : '×ת××ת',
- tag_h1 : '××תרת',
- tag_h2 : '××תרת 2',
- tag_h3 : '××תרת 3',
- tag_h4 : '××תרת 4',
- tag_h5 : '××תרת 5',
- tag_h6 : '××תרת 6',
- tag_div : '× ×ר××× (DIV)'
- },
-
- div :
- {
- title : '×צ×רת ×××× (Div)',
- toolbar : '×צ×רת ×××× (Div)',
- cssClassInputLabel : '×××קת ×¢×צ××',
- styleSelectLabel : 'ס×× ××',
- IdInputLabel : '×××× (ID)',
- languageCodeInputLabel : '×§×× ×©×¤×',
- inlineStyleInputLabel : 'ס×× ×× ×¤× ×××',
- advisoryTitleInputLabel : '××תרת ××צעת',
- langDirLabel : '××××× ×©×¤×',
- langDirLTRLabel : 'ש××× ××××× (LTR)',
- langDirRTLLabel : '×××× ×ש××× (RTL)',
- edit : 'ער××ת ×××× (Div)',
- remove : '×סרת ×××× (Div)'
- },
-
- font :
- {
- label : '××פ×',
- voiceLabel : '××פ×',
- panelTitle : '××פ×'
- },
-
- fontSize :
- {
- label : '××××',
- voiceLabel : '××××',
- panelTitle : '××××'
- },
-
- colorButton :
- {
- textColorTitle : 'צ××¢ ×קס×',
- bgColorTitle : 'צ××¢ רקע',
- panelTitle : 'צ××¢××',
- auto : '×××××××',
- more : 'צ××¢×× × ×ספ××...'
- },
-
- colors :
- {
- '000' : 'ש××ר',
- '800000' : 'ס××× ×××',
- '8B4513' : '××× ×××ר',
- '2F4F4F' : '×פ×ר צפ××',
- '008080' : '××××-×ר××§',
- '000080' : '××××-ס×××',
- '4B0082' : '××× ××××',
- '696969' : '×פ×ר ××¢×××¢×',
- 'B22222' : '××××-×××',
- 'A52A2A' : '×××',
- 'DAA520' : '×ת×× ×××',
- '006400' : '×ר××§ ×××',
- '40E0D0' : '××רק××',
- '0000CD' : '×××× ××× ×× ×',
- '800080' : 'ס×××',
- '808080' : '×פ×ר',
- 'F00' : '××××',
- 'FF8C00' : '×ת×× ×××',
- 'FFD700' : '×××',
- '008000' : '×ר××§',
- '0FF' : 'צ×××',
- '00F' : '××××',
- 'EE82EE' : 'ס××××',
- 'A9A9A9' : '×פ×ר ×××',
- 'FFA07A' : '×ת××-××ר××',
- 'FFA500' : '×ת××',
- 'FFFF00' : 'צ×××',
- '00FF00' : '××××',
- 'AFEEEE' : '××רק×× ×××ר',
- 'ADD8E6' : '×××× ×××ר',
- 'DDA0DD' : 'ש×××£',
- 'D3D3D3' : '×פ×ר ×××ר',
- 'FFF0F5' : '××× ×ר ×ס×××§',
- 'FAEBD7' : '××× ×¢×ª××§',
- 'FFFFE0' : 'צ××× ×××ר',
- 'F0FFF0' : '×× ××ש',
- 'F0FFFF' : 'ת××ת',
- 'F0F8FF' : '×××× ××פת ×××',
- 'E6E6FA' : '××× ×ר',
- 'FFF' : '×××'
- },
-
- scayt :
- {
- title : '×××קת ×××ת ×××× ×ת××× (SCAYT)',
- opera_title : '×× ×××× ××פ××¤× ××פר×',
- enable : '×פשר SCAYT',
- disable : '××× SCAYT',
- about : '××××ת SCAYT',
- toggle : 'ש×× ×× SCAYT',
- options : '×פשר×××ת',
- langs : 'שפ×ת',
- moreSuggestions : '×צע×ת × ×ספ×ת',
- ignore : '×תע×××ת',
- ignoreAll : '×תע×××ת ××××',
- addWord : '××ספת ××××',
- emptyDic : '×ש ××××ר ×××××.',
-
- optionsTab : '×פשר×××ת',
- allCaps : '×תע×× ×××××× ×©×× ××ת××ת××× ×××××ת',
- ignoreDomainNames : '×תע×× ×ש××ת ×ת××',
- mixedCase : '×תע×× ×××××× ×¢× ××ת××ת ×××××ת ××§×× ×ת ××××',
- mixedWithDigits : '×תע×× ×××××× ×¢× ×ספר××',
-
- languagesTab : 'שפ×ת',
-
- dictionariesTab : '×××××',
- dic_field_name : '×©× ××××××',
- dic_create : '×צ×ר×',
- dic_restore : 'ש×××ר',
- dic_delete : '××××§×',
- dic_rename : 'ש×× ×× ×©×',
- dic_info : '××ת××× ××××× ××שת×ש ×××××¡× ××¢××××, ×× ×¢××××ת ××××××ת ×××§××. ××שר ×××××× ××××¢ ××××× ×× ××× ××× × ×××× ××ת×××¡× ××¢××××, ×××××× ×¦×¨×× ××ת×××¡× ××©×¨×ª× ×. ××©× ×× ×¢××× ×תת ×©× ××××××. ×× ××ר ×ש ×× ××××× ××××ס×, ×ש ×××× ×ס ×ת ש×× ××××××¥ ×¢× ×פת×ר ×ש×××ר.',
-
- aboutTab : '××××ת'
- },
-
- about :
- {
- title : '××××ת CKEditor',
- dlgTitle : '××××ת CKEditor',
- moreInfo : '×××××¢ × ×סף ××§×¨× ×××ª×¨× ×:',
- copy : 'Copyright © $1. ×× ××××××ת ש××ר×ת.'
- },
-
- maximize : '××××× ××קס××××',
- minimize : '××§×× × ×××× ××××',
-
- fakeobjects :
- {
- anchor : '×¢×××',
- flash : 'סר××× ×¤××ש',
- div : 'ש××רת ××£',
- unknown : '××××××§× ×× ××××¢'
- },
-
- resize : '×ש ××ר×ר ×××× ××©× ×ת ×ת ×××××',
-
- colordialog :
- {
- title : '×××רת צ××¢',
- options : '×פשר×××ת צ××¢',
- highlight : 'ס××××',
- selected : '×××ר×',
- clear : '× ××§××'
- },
-
- toolbarCollapse : '×××¢×ר סר×× ××××',
- toolbarExpand : '×ר××ת סר×× ××××',
-
- bidi :
- {
- ltr : '××××× ××§×¡× ×ש××× ××××× (LTR)',
- rtl : '××××× ××§×¡× ××××× ×ש××× (RTL)'
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Hebrew language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'he' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'rtl',
+
+ // ARIA description.
+ editor: '×¢××¨× ××§×¡× ×¢×©×ר',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: '×××¥ ××× ALT + 0 ××¢×ר×',
+
+ browseServer: 'ס××ר ×שרת',
+ url: '×ת××ת (URL)',
+ protocol: 'פר××××§××',
+ upload: '××¢×××',
+ uploadSubmit: 'ש×××× ×שרת',
+ image: 'ת××× ×',
+ flash: 'פ××ש',
+ form: '××פס',
+ checkbox: 'ת××ת ס××××',
+ radio: '×××¦× ×פשר×××ת',
+ textField: 'ש×× ×קס×',
+ textarea: '××××ר ×קס×',
+ hiddenField: 'ש×× ××××',
+ button: '×פת×ר',
+ select: 'ש×× ×××ר×',
+ imageButton: '×פת×ר ת××× ×',
+ notSet: '<×× × ×§××¢>',
+ id: '××××× (ID)',
+ name: 'ש×',
+ langDir: '××××× ×©×¤×',
+ langDirLtr: 'ש××× ××××× (LTR)',
+ langDirRtl: '×××× ×ש××× (RTL)',
+ langCode: '×§×× ×©×¤×',
+ longDescr: '×§×ש×ר ×ת×××ר ×פ×ר×',
+ cssClass: '×××קת ×¢×צ×× (CSS Class)',
+ advisoryTitle: '××תרת ××צעת',
+ cssStyle: 'ס×× ××',
+ ok: '××ש×ר',
+ cancel: '×××××',
+ close: 'ס××ר×',
+ preview: 'תצ××× ××§××××',
+ resize: '×ש ××ר×ר ×××× ××©× ×ת ×ת ×××××',
+ generalTab: '××××',
+ advancedTab: '×פשר×××ת ×תק×××ת',
+ validateNumberFailed: '××¢×¨× ×××× ××××ת ×ספר×.',
+ confirmNewPage: '×× ×ש×× ×××× ×©×× × ×©××¨× ×××××. ××× ×××¢××ת ××£ ××ש?',
+ confirmCancel: '×××§ ×××פשר×××ת ש×× ×, ××× ×ס××ר ×ת ×××××××?',
+ options: '×פשר×××ת',
+ target: '××ר×',
+ targetNew: '×××× ××ש (_blank)',
+ targetTop: '××××× ××¢×××× ×××תר (_top)',
+ targetSelf: '×××ª× ×××× (_self)',
+ targetParent: '×××× ××× (_parent)',
+ langDirLTR: 'ש××× ××××× (LTR)',
+ langDirRTL: '×××× ×ש××× (RTL)',
+ styles: 'ס×× ××',
+ cssClasses: '××××§×ת ××××× ×ת ס×× ××',
+ width: 'ר×××',
+ height: '××××',
+ align: '××ש×ר',
+ alignLeft: '×ש×××',
+ alignRight: '×××××',
+ alignCenter: '×ר××',
+ alignTop: '×××¢××',
+ alignMiddle: '×××צע',
+ alignBottom: '×ת×ת×ת',
+ invalidValue : '×¢×¨× ×× ×××§×.',
+ invalidHeight: '××××× ×××× ××××ת ×ספר.',
+ invalidWidth: '×ר××× ×××× ××××ת ×ספר.',
+ invalidCssLength: '××¢×¨× ×©×¦××× ×ש×× "%1" ×××× ××××ת ×ספר ××××× ×¢× ×× ××× ××××ת ×××× ×××§×ת ×©× CSS (px, %, in, cm, mm, em, ex, pt, ×× pc).',
+ invalidHtmlLength: '××¢×¨× ×©×¦××× ×ש×× "%1" ×××× ××××ת ×ספר ××××× ×¢× ×× ××× ××××ת ×××× ×××§×ת ×©× HTML (px ×× %).',
+ invalidInlineStyle: '××¢×¨× ×©×¦×××× ×ש×× ×ס×× ×× ×××× ××××× ××× ×¢×¨××× ××× ×× ××תר ×פ×ר×× "×©× : ער×", ××פר××× ×¢× ××× × ×§×××-פס××§.',
+ cssLengthTooltip: '×ש ×××× ×ס ×ספר ×××××¦× ×¤×קס××× ×× ×ספר ×¢× ××××ת ××××× ×ת ס×× ×× ×ª×§×× × (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ×× ××××</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/hi.js b/devel/third-party/ckeditor/lang/hi.js
index 8959e10..e15389d 100644
--- a/devel/third-party/ckeditor/lang/hi.js
+++ b/devel/third-party/ckeditor/lang/hi.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Hindi language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['hi'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'सà¥à¤°à¥à¤¸',
- newPage : 'नया पà¥à¤',
- save : 'सà¥à¤µ',
- preview : 'पà¥à¤°à¥à¤µà¥à¤¯à¥',
- cut : 'à¤à¤',
- copy : 'à¤à¥à¤ªà¥',
- paste : 'पà¥à¤¸à¥à¤',
- print : 'पà¥à¤°à¤¿à¤¨à¥à¤',
- underline : 'रà¥à¤à¤¾à¤à¤à¤£',
- bold : 'बà¥à¤²à¥à¤¡',
- italic : 'à¤à¤à¥à¤²à¤¿à¤',
- selectAll : 'सब सà¥
लà¥
à¤à¥à¤ à¤à¤°à¥à¤',
- removeFormat : 'à¥à¥à¤°à¥à¤®à¥à¤ हà¤à¤¾à¤¯à¥à¤',
- strike : 'सà¥à¤à¥à¤°à¤¾à¤à¤ थà¥à¤°à¥',
- subscript : 'à¤
धà¥à¤²à¥à¤',
- superscript : 'à¤
à¤à¤¿à¤²à¥à¤',
- horizontalrule : 'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² रà¥à¤à¤¾ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',
- pagebreak : 'पà¥à¤ बà¥à¤°à¥à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤à¥ à¤à¤°à¥à¤',
- unlink : 'लिà¤à¤ हà¤à¤¾à¤¯à¥à¤',
- undo : 'à¤
नà¥à¤¡à¥',
- redo : 'रà¥à¤¡à¥',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'सरà¥à¤µà¤° बà¥à¤°à¤¾à¤à¥ à¤à¤°à¥à¤',
- url : 'URL',
- protocol : 'पà¥à¤°à¥à¤à¥à¤à¥à¤²',
- upload : 'à¤
पलà¥à¤¡',
- uploadSubmit : 'à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤',
- image : 'तसà¥à¤µà¥à¤°',
- flash : 'à¥à¥à¤²à¥à¤¶',
- form : 'à¥à¥à¤°à¥à¤®',
- checkbox : 'à¤à¥
ठबà¥à¤à¥à¤¸',
- radio : 'रà¥à¤¡à¤¿à¤ बà¤à¤¨',
- textField : 'à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡',
- textarea : 'à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤°à¤¿à¤¯à¤¾',
- hiddenField : 'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡',
- button : 'बà¤à¤¨',
- select : 'à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡',
- imageButton : 'तसà¥à¤µà¥à¤° बà¤à¤¨',
- notSet : '<सà¥
ठनहà¥à¤>',
- id : 'Id',
- name : 'नाम',
- langDir : 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
- langDirLtr : 'बायà¥à¤ सॠदायà¥à¤ (LTR)',
- langDirRtl : 'दायà¥à¤ सॠबायà¥à¤ (RTL)',
- langCode : 'à¤à¤¾à¤·à¤¾ à¤à¥à¤¡',
- longDescr : 'à¤
धिठविवरण à¤à¥ लिठURL',
- cssClass : 'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',
- advisoryTitle : 'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',
- cssStyle : 'सà¥à¤à¤¾à¤à¤²',
- ok : 'ठà¥à¤ हà¥',
- cancel : 'रदà¥à¤¦ à¤à¤°à¥à¤',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'सामानà¥à¤¯',
- advancedTab : 'à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',
- title : 'विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥à¤¨à¥à¤',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'लिà¤à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',
- other : '<à¤
नà¥à¤¯>',
- menu : 'लिà¤à¤ सà¤à¤ªà¤¾à¤¦à¤¨',
- title : 'लिà¤à¤',
- info : 'लिà¤à¤ ',
- target : 'à¤à¤¾à¤°à¥à¤à¥à¤',
- upload : 'à¤
पलà¥à¤¡',
- advanced : 'à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡',
- type : 'लिà¤à¤ पà¥à¤°à¤à¤¾à¤°',
- toUrl : 'URL', // MISSING
- toAnchor : 'à¤à¤¸ पà¥à¤ à¤à¤¾ à¤à¤à¤à¤°',
- toEmail : 'à¤-मà¥à¤²',
- targetFrame : '<à¥à¥à¤°à¥à¤®>',
- targetPopup : '<पà¥à¤ª-à¤
प विनà¥à¤¡à¥>',
- targetFrameName : 'à¤à¤¾à¤°à¥à¤à¥à¤ à¥à¥à¤°à¥à¤® à¤à¤¾ नाम',
- targetPopupName : 'पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¤à¤¾ नाम',
- popupFeatures : 'पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¥à¥à¤à¤°à¥à¤¸',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'सà¥à¤à¥à¤à¤¸ बार',
- popupLocationBar: 'लà¥à¤à¥à¤¶à¤¨ बार',
- popupToolbar : 'à¤à¥à¤² बार',
- popupMenuBar : 'मà¥
नà¥à¤¯à¥ बार',
- popupFullScreen : 'à¥à¥à¤² सà¥à¤à¥à¤°à¥à¤¨ (IE)',
- popupScrollBars : 'सà¥à¤à¥à¤°à¥à¤² बार',
- popupDependent : 'डिपà¥à¤¨à¥à¤¡à¥
नà¥à¤ (Netscape)',
- popupWidth : 'à¤à¥à¥à¤¾à¤',
- popupLeft : 'बायà¥à¤ तरफ',
- popupHeight : 'à¤à¤à¤à¤¾à¤',
- popupTop : 'दायà¥à¤ तरफ',
- id : 'Id', // MISSING
- langDir : 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
- langDirLTR : 'बायà¥à¤ सॠदायà¥à¤ (LTR)',
- langDirRTL : 'दायà¥à¤ सॠबायà¥à¤ (RTL)',
- acccessKey : 'à¤à¤à¥à¤¸à¥
स à¤à¥',
- name : 'नाम',
- langCode : 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
- tabIndex : 'à¤à¥à¤¬ à¤à¤¨à¥à¤¡à¥
à¤à¥à¤¸',
- advisoryTitle : 'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',
- advisoryContentType : 'परामरà¥à¤¶ à¤à¤¨à¥à¤à¥
नà¥à¤ पà¥à¤°à¤à¤¾à¤°',
- cssClasses : 'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',
- charset : 'लिà¤à¤ रिसà¥à¤°à¥à¤¸ à¤à¤°à¥
à¤à¥à¤à¤° सà¥
à¤',
- styles : 'सà¥à¤à¤¾à¤à¤²',
- selectAnchor : 'à¤à¤à¤à¤° à¤à¥à¤¨à¥à¤',
- anchorName : 'à¤à¤à¤à¤° नाम सà¥',
- anchorId : 'à¤à¤²à¥à¤®à¥
नà¥à¤ Id सà¥',
- emailAddress : 'à¤-मà¥à¤² पता',
- emailSubject : 'सà¤à¤¦à¥à¤¶ विषय',
- emailBody : 'सà¤à¤¦à¥à¤¶',
- noAnchors : '(डà¥à¤à¥à¤¯à¥à¤®à¥
नà¥à¤ मà¥à¤ à¤à¤à¤à¤°à¥à¤¸ à¤à¥ सà¤à¤à¥à¤¯à¤¾)',
- noUrl : 'लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',
- noEmail : 'à¤-मà¥à¤² पता à¤à¤¾à¤à¤ª à¤à¤°à¥à¤'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',
- menu : 'à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- title : 'à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- name : 'à¤à¤à¤à¤° à¤à¤¾ नाम',
- errorName : 'à¤à¤à¤à¤° à¤à¤¾ नाम à¤à¤¾à¤à¤ª à¤à¤°à¥à¤'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'à¤à¥à¤à¥à¤ à¤à¤° बदलà¥à¤',
- find : 'à¤à¥à¤à¥à¤',
- replace : 'रà¥à¤ªà¥à¤²à¥à¤¸',
- findWhat : 'यह à¤à¥à¤à¥à¤:',
- replaceWith : 'à¤à¤¸à¤¸à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤:',
- notFoundMsg : 'à¤à¤ªà¤à¥ दà¥à¤µà¤¾à¤°à¤¾ दिया à¤à¤¯à¤¾ à¤à¥à¤à¥à¤¸à¥à¤ नहà¥à¤ मिला',
- matchCase : 'à¤à¥à¤¸ मिलायà¥à¤',
- matchWord : 'पà¥à¤°à¤¾ शबà¥à¤¦ मिलायà¥à¤',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'à¤à¥à¤¬à¤²',
- title : 'à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- menu : 'à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- deleteTable : 'à¤à¥à¤¬à¤² डिलà¥à¤ à¤à¤°à¥à¤',
- rows : 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤',
- columns : 'à¤à¤¾à¤²à¤®',
- border : 'बà¥à¤°à¥à¤¡à¤° साà¤à¥',
- align : 'à¤à¤²à¤¾à¤à¤¨à¥à¤®à¥
नà¥à¤',
- alignLeft : 'दायà¥à¤',
- alignCenter : 'बà¥à¤ मà¥à¤',
- alignRight : 'बायà¥à¤',
- width : 'à¤à¥à¥à¤¾à¤',
- widthPx : 'पिà¤à¥à¤¸à¥à¤²',
- widthPc : 'पà¥à¤°à¤¤à¤¿à¤¶à¤¤',
- widthUnit : 'width unit', // MISSING
- height : 'à¤à¤à¤à¤¾à¤',
- cellSpace : 'सà¥à¤² à¤
à¤à¤¤à¤°',
- cellPad : 'सà¥à¤² पà¥à¤¡à¤¿à¤à¤',
- caption : 'शà¥à¤°à¥à¤·à¤',
- summary : 'साराà¤à¤¶',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'à¤à¤¾à¤¨à¤¾',
- insertBefore : 'पहलॠसà¥à¤² डालà¥à¤',
- insertAfter : 'बाद मà¥à¤ सà¥à¤² डालà¥à¤',
- deleteCell : 'सà¥à¤² डिलà¥à¤ à¤à¤°à¥à¤',
- merge : 'सà¥à¤² मिलायà¥à¤',
- mergeRight : 'बाà¤à¤¯à¤¾ विलय',
- mergeDown : 'नà¥à¤à¥ विलय à¤à¤°à¥à¤',
- splitHorizontal : 'सà¥à¤² à¤à¥ à¤à¥à¤·à¥à¤¤à¤¿à¤ सà¥à¤¥à¤¿à¤¤à¤¿ मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤',
- splitVertical : 'सà¥à¤² à¤à¥ लमà¥à¤¬à¤¾à¤à¤¾à¤° मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'पà¤à¤à¥à¤¤à¤¿',
- insertBefore : 'पहलॠपà¤à¤à¥à¤¤à¤¿ डालà¥à¤',
- insertAfter : 'बाद मà¥à¤ पà¤à¤à¥à¤¤à¤¿ डालà¥à¤',
- deleteRow : 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤ डिलà¥à¤ à¤à¤°à¥à¤'
- },
-
- column :
- {
- menu : 'à¤à¤¾à¤²à¤®',
- insertBefore : 'पहलॠà¤à¤¾à¤²à¤® डालà¥à¤',
- insertAfter : 'बाद मà¥à¤ à¤à¤¾à¤²à¤® डालà¥à¤',
- deleteColumn : 'à¤à¤¾à¤²à¤® डिलà¥à¤ à¤à¤°à¥à¤'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- text : 'à¤à¥à¤à¥à¤¸à¥à¤ (वà¥à¤²à¥à¤¯à¥)',
- type : 'पà¥à¤°à¤à¤¾à¤°',
- typeBtn : 'बà¤à¤¨',
- typeSbm : 'सबà¥à¤®à¤¿à¤',
- typeRst : 'रिसà¥à¤'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'à¤à¥
ठबà¥à¤à¥à¤¸ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- radioTitle : 'रà¥à¤¡à¤¿à¤ बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- value : 'वà¥à¤²à¥à¤¯à¥',
- selected : 'सà¥
लà¥
à¤à¥à¤à¥
ड'
- },
-
- // Form Dialog.
- form :
- {
- title : 'à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- menu : 'à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- action : 'à¤à¥à¤°à¤¿à¤¯à¤¾',
- method : 'तरà¥à¤à¤¾',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- selectInfo : 'सà¥à¤à¤¨à¤¾',
- opAvail : 'à¤à¤ªà¤²à¤¬à¥à¤§ विà¤à¤²à¥à¤ª',
- value : 'वà¥à¤²à¥à¤¯à¥',
- size : 'साà¤à¥',
- lines : 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤',
- chkMulti : 'à¤à¤ सॠà¤à¥à¤¯à¤¾à¤¦à¤¾ विà¤à¤²à¥à¤ª à¤à¥à¤¨à¤¨à¥ दà¥à¤',
- opText : 'à¤à¥à¤à¥à¤¸à¥à¤',
- opValue : 'वà¥à¤²à¥à¤¯à¥',
- btnAdd : 'à¤à¥à¥à¥à¤',
- btnModify : 'बदलà¥à¤',
- btnUp : 'à¤à¤ªà¤°',
- btnDown : 'नà¥à¤à¥',
- btnSetValue : 'à¤à¥à¤¨à¥ à¤à¤ वà¥à¤²à¥à¤¯à¥ सà¥
ठà¤à¤°à¥à¤',
- btnDelete : 'डिलà¥à¤'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'à¤à¥à¤à¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- cols : 'à¤à¤¾à¤²à¤®',
- rows : 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- name : 'नाम',
- value : 'वà¥à¤²à¥à¤¯à¥',
- charWidth : 'à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥ à¤à¥à¥à¤¾à¤',
- maxChars : 'à¤
धिà¤à¤¤à¤® à¤à¤°à¥
à¤à¥à¤à¤°',
- type : 'à¤à¤¾à¤à¤ª',
- typeText : 'à¤à¥à¤à¥à¤¸à¥à¤',
- typePass : 'पासà¥à¤µà¤°à¥à¤¡'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- name : 'नाम',
- value : 'वà¥à¤²à¥à¤¯à¥'
- },
-
- // Image Dialog.
- image :
- {
- title : 'तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- titleButton : 'तसà¥à¤µà¥à¤° बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- menu : 'तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- infoTab : 'तसà¥à¤µà¥à¤° à¤à¥ à¤à¤¾à¤¨à¤à¤¾à¤°à¥',
- btnUpload : 'à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤',
- upload : 'à¤
पलà¥à¤¡',
- alt : 'वà¥à¤à¤²à¥à¤ªà¤¿à¤ à¤à¥à¤à¥à¤¸à¥à¤',
- width : 'à¤à¥à¥à¤¾à¤',
- height : 'à¤à¤à¤à¤¾à¤',
- lockRatio : 'लà¥à¤ à¤
नà¥à¤ªà¤¾à¤¤',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'रà¥à¤¸à¥
ठसाà¤à¥',
- border : 'बà¥à¤°à¥à¤¡à¤°',
- hSpace : 'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸',
- vSpace : 'वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸',
- align : 'à¤à¤²à¤¾à¤à¤¨',
- alignLeft : 'दायà¥à¤',
- alignRight : 'दायà¥à¤',
- alertUrl : 'तसà¥à¤µà¥à¤° à¤à¤¾ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤ ',
- linkTab : 'लिà¤à¤',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- propertiesTab : 'Properties', // MISSING
- title : 'à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
- chkPlay : 'à¤à¤à¥ पà¥à¤²à¥',
- chkLoop : 'लà¥à¤ª',
- chkMenu : 'à¥à¥à¤²à¥à¤¶ मà¥
नà¥à¤¯à¥ à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'सà¥à¤à¥à¤²',
- scaleAll : 'सà¤à¥ दिà¤à¤¾à¤¯à¥à¤',
- scaleNoBorder : 'à¤à¥à¤ बà¥à¤°à¥à¤¡à¤° नहà¥à¤',
- scaleFit : 'बिलà¥à¤à¥à¤² à¥à¤¿à¤',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'à¤à¤²à¤¾à¤à¤¨',
- alignLeft : 'दायà¥à¤',
- alignAbsBottom : 'Abs नà¥à¤à¥',
- alignAbsMiddle : 'Abs à¤à¤ªà¤°',
- alignBaseline : 'मà¥à¤² रà¥à¤à¤¾',
- alignBottom : 'नà¥à¤à¥',
- alignMiddle : 'मधà¥à¤¯',
- alignRight : 'दायà¥à¤',
- alignTextTop : 'à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤ªà¤°',
- alignTop : 'à¤à¤ªà¤°',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤',
- width : 'à¤à¥à¥à¤¾à¤',
- height : 'à¤à¤à¤à¤¾à¤',
- hSpace : 'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸',
- vSpace : 'वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸',
- validateSrc : 'लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥à¤²à¤¿à¤à¤) à¤à¤¾à¤à¤',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'शबà¥à¤¦à¤à¥à¤¶ मà¥à¤ नहà¥à¤',
- changeTo : 'à¤à¤¸à¤®à¥à¤ बदलà¥à¤',
- btnIgnore : 'à¤à¤à¥à¤¨à¥à¤°',
- btnIgnoreAll : 'सà¤à¥ à¤à¤à¥à¤¨à¥à¤° à¤à¤°à¥à¤',
- btnReplace : 'रिपà¥à¤²à¥à¤¸',
- btnReplaceAll : 'सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤',
- btnUndo : 'à¤
नà¥à¤¡à¥',
- noSuggestions : '- à¤à¥à¤ सà¥à¤à¤¾à¤µ नहà¥à¤ -',
- progress : 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ (सà¥à¤ªà¥
ल-à¤à¥
à¤) à¤à¤¾à¤°à¥ हà¥...',
- noMispell : 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¥à¤ à¤à¤²à¤¤ वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥
लिà¤à¤) नहà¥à¤ पाठà¤à¤',
- noChanges : 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ :à¤à¥à¤ शबà¥à¤¦ नहà¥à¤ बदला à¤à¤¯à¤¾',
- oneChange : 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¤ शबà¥à¤¦ बदला à¤à¤¯à¤¾',
- manyChanges : 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : %1 शबà¥à¤¦ बदलॠà¤à¤¯à¥',
- ieSpellDownload : 'सà¥à¤ªà¥
ल-à¤à¥
à¤à¤° à¤à¤¨à¥à¤¸à¥à¤à¤¾à¤² नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥à¥¤ à¤à¥à¤¯à¤¾ à¤à¤ª à¤à¤¸à¥ डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¨à¤¾ à¤à¤¾à¤¹à¥à¤à¤à¥?'
- },
-
- smiley :
- {
- toolbar : 'सà¥à¤®à¤¾à¤à¤²à¥',
- title : 'सà¥à¤®à¤¾à¤à¤²à¥ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'à¤
à¤à¤à¥à¤¯ सà¥à¤à¥',
- bulletedlist : 'बà¥à¤²à¥
ठसà¥à¤à¥',
- indent : 'à¤à¤¨à¥à¤¡à¥
नà¥à¤ बà¥à¤¾à¤¯à¥à¤',
- outdent : 'à¤à¤¨à¥à¤¡à¥
नà¥à¤ à¤à¤® à¤à¤°à¥à¤',
-
- justify :
- {
- left : 'बायà¥à¤ तरफ',
- center : 'बà¥à¤ मà¥à¤',
- right : 'दायà¥à¤ तरफ',
- block : 'बà¥à¤²à¥à¤ à¤à¤¸à¥à¤à¥à¥à¤¾à¤'
- },
-
- blockquote : 'बà¥à¤²à¥à¤-à¤à¥à¤',
-
- clipboard :
- {
- title : 'पà¥à¤¸à¥à¤',
- cutError : 'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¤ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+X) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',
- copyError : 'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¥à¤ªà¥ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',
- pasteMsg : 'Ctrl/Cmd+V à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¤à¥ पà¥à¤¸à¥à¤ à¤à¤°à¥à¤ à¤à¤° ठà¥à¤ हॠà¤à¤°à¥à¤.',
- securityMsg : 'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°Kश सà¥à¤à¤¿à¤à¤ à¤à¥ à¤à¤¾à¤°à¤£, à¤à¤¡à¤¿à¤à¤° à¤à¤ªà¤à¥ à¤à¥à¤²à¤¿à¤ªà¤¬à¥à¤°à¥à¤¡ डà¥à¤à¤¾ à¤à¥ नहà¥à¤ पा सà¤à¤¤à¤¾ हà¥. à¤à¤ªà¤à¥ à¤à¤¸à¥ à¤à¤¸ विनà¥à¤¡à¥ मà¥à¤ दà¥à¤¬à¤¾à¤°à¤¾ पà¥à¤¸à¥à¤ à¤à¤°à¤¨à¤¾ हà¥à¤à¤¾.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)',
- title : 'पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)',
- title : 'पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)'
- },
-
- templates :
- {
- button : 'à¤à¥
मà¥à¤ªà¥à¤²à¥à¤',
- title : 'à¤à¤¨à¥à¤à¥à¤¨à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤',
- options : 'Template Options', // MISSING
- insertOption : 'मà¥à¤² शबà¥à¤¦à¥à¤ à¤à¥ बदलà¥à¤',
- selectPromptMsg : 'à¤à¤¡à¤¿à¤à¤° मà¥à¤ à¤à¤ªà¤¨ à¤à¤°à¤¨à¥ हà¥à¤¤à¥ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ à¤à¥à¤¨à¥à¤(वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¤¨à¥à¤à¥
नà¥à¤ सà¥à¤µ नहà¥à¤ हà¥à¤à¤à¥):',
- emptyListMsg : '(à¤à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ डिà¥à¤¾à¤à¤¨ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥)'
- },
-
- showBlocks : 'बà¥à¤²à¥à¤ दिà¤à¤¾à¤¯à¥à¤',
-
- stylesCombo :
- {
- label : 'सà¥à¤à¤¾à¤à¤²',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'à¥à¥à¤°à¥à¤®à¥à¤',
- panelTitle : 'à¥à¥à¤°à¥à¤®à¥à¤',
-
- tag_p : 'साधारण',
- tag_pre : 'à¥à¥à¤°à¥à¤®à¥à¤à¥
ड',
- tag_address : 'पता',
- tag_h1 : 'शà¥à¤°à¥à¤·à¤ 1',
- tag_h2 : 'शà¥à¤°à¥à¤·à¤ 2',
- tag_h3 : 'शà¥à¤°à¥à¤·à¤ 3',
- tag_h4 : 'शà¥à¤°à¥à¤·à¤ 4',
- tag_h5 : 'शà¥à¤°à¥à¤·à¤ 5',
- tag_h6 : 'शà¥à¤°à¥à¤·à¤ 6',
- tag_div : 'शà¥à¤°à¥à¤·à¤ (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'à¥à¥à¤¨à¥à¤',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'à¥à¥à¤¨à¥à¤'
- },
-
- fontSize :
- {
- label : 'साà¤à¥',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'साà¤à¥'
- },
-
- colorButton :
- {
- textColorTitle : 'à¤à¥à¤à¥à¤¸à¥à¤ रà¤à¤',
- bgColorTitle : 'बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤',
- panelTitle : 'Colors', // MISSING
- auto : 'सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤',
- more : 'à¤à¤° रà¤à¤...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Hindi language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'hi' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'रिठà¤à¥à¤à¥à¤¸à¥à¤ à¤à¤¡à¤¿à¤à¤°',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'मदद à¤à¥ लियॠALT 0 दबाà¤',
+
+ browseServer: 'सरà¥à¤µà¤° बà¥à¤°à¤¾à¤à¥ à¤à¤°à¥à¤',
+ url: 'URL',
+ protocol: 'पà¥à¤°à¥à¤à¥à¤à¥à¤²',
+ upload: 'à¤
पलà¥à¤¡',
+ uploadSubmit: 'à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤',
+ image: 'तसà¥à¤µà¥à¤°',
+ flash: 'à¥à¥à¤²à¥à¤¶',
+ form: 'à¥à¥à¤°à¥à¤®',
+ checkbox: 'à¤à¥
ठबà¥à¤à¥à¤¸',
+ radio: 'रà¥à¤¡à¤¿à¤ बà¤à¤¨',
+ textField: 'à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡',
+ textarea: 'à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤°à¤¿à¤¯à¤¾',
+ hiddenField: 'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡',
+ button: 'बà¤à¤¨',
+ select: 'à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡',
+ imageButton: 'तसà¥à¤µà¥à¤° बà¤à¤¨',
+ notSet: '<सà¥
ठनहà¥à¤>',
+ id: 'Id',
+ name: 'नाम',
+ langDir: 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
+ langDirLtr: 'बायà¥à¤ सॠदायà¥à¤ (LTR)',
+ langDirRtl: 'दायà¥à¤ सॠबायà¥à¤ (RTL)',
+ langCode: 'à¤à¤¾à¤·à¤¾ à¤à¥à¤¡',
+ longDescr: 'à¤
धिठविवरण à¤à¥ लिठURL',
+ cssClass: 'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',
+ advisoryTitle: 'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',
+ cssStyle: 'सà¥à¤à¤¾à¤à¤²',
+ ok: 'ठà¥à¤ हà¥',
+ cancel: 'रदà¥à¤¦ à¤à¤°à¥à¤',
+ close: 'Close', // MISSING
+ preview: 'पà¥à¤°à¥à¤µà¥à¤¯à¥',
+ resize: 'Resize', // MISSING
+ generalTab: 'सामानà¥à¤¯',
+ advancedTab: 'à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'à¤à¤¾à¤°à¥à¤à¥à¤',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'बायà¥à¤ सॠदायà¥à¤ (LTR)',
+ langDirRTL: 'दायà¥à¤ सॠबायà¥à¤ (RTL)',
+ styles: 'सà¥à¤à¤¾à¤à¤²',
+ cssClasses: 'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',
+ width: 'à¤à¥à¥à¤¾à¤',
+ height: 'à¤à¤à¤à¤¾à¤',
+ align: 'à¤à¤²à¤¾à¤à¤¨',
+ alignLeft: 'दायà¥à¤',
+ alignRight: 'दायà¥à¤',
+ alignCenter: 'बà¥à¤ मà¥à¤',
+ alignTop: 'à¤à¤ªà¤°',
+ alignMiddle: 'मधà¥à¤¯',
+ alignBottom: 'नà¥à¤à¥',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/hr.js b/devel/third-party/ckeditor/lang/hr.js
index 7f489fd..e1af941 100644
--- a/devel/third-party/ckeditor/lang/hr.js
+++ b/devel/third-party/ckeditor/lang/hr.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Croatian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['hr'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Kôd',
- newPage : 'Nova stranica',
- save : 'Snimi',
- preview : 'Pregledaj',
- cut : 'Izreži',
- copy : 'Kopiraj',
- paste : 'Zalijepi',
- print : 'Ispiši',
- underline : 'Potcrtano',
- bold : 'Podebljaj',
- italic : 'Ukosi',
- selectAll : 'Odaberi sve',
- removeFormat : 'Ukloni formatiranje',
- strike : 'Precrtano',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Ubaci vodoravnu liniju',
- pagebreak : 'Ubaci prijelom stranice',
- unlink : 'Ukloni link',
- undo : 'Poništi',
- redo : 'Ponovi',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Pretraži server',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Pošalji',
- uploadSubmit : 'Pošalji na server',
- image : 'Slika',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'Checkbox',
- radio : 'Radio Button',
- textField : 'Text Field',
- textarea : 'Textarea',
- hiddenField : 'Hidden Field',
- button : 'Button',
- select : 'Selection Field',
- imageButton : 'Image Button',
- notSet : '<nije postavljeno>',
- id : 'Id',
- name : 'Naziv',
- langDir : 'Smjer jezika',
- langDirLtr : 'S lijeva na desno (LTR)',
- langDirRtl : 'S desna na lijevo (RTL)',
- langCode : 'Kôd jezika',
- longDescr : 'DugaÄki opis URL',
- cssClass : 'Stylesheet klase',
- advisoryTitle : 'Advisory naslov',
- cssStyle : 'Stil',
- ok : 'OK',
- cancel : 'Poništi',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'OpÄenito',
- advancedTab : 'Napredno',
- validateNumberFailed : 'Ova vrijednost nije broj.',
- confirmNewPage : 'Sve napravljene promjene Äe biti izgubljene ukoliko ih niste snimili. Sigurno želite uÄitati novu stranicu?',
- confirmCancel : 'Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, nedostupno</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Ubaci posebne znakove',
- title : 'Odaberite posebni karakter',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ubaci/promijeni link',
- other : '<drugi>',
- menu : 'Promijeni link',
- title : 'Link',
- info : 'Link Info',
- target : 'Meta',
- upload : 'Pošalji',
- advanced : 'Napredno',
- type : 'Link vrsta',
- toUrl : 'URL', // MISSING
- toAnchor : 'Sidro na ovoj stranici',
- toEmail : 'E-Mail',
- targetFrame : '<okvir>',
- targetPopup : '<popup prozor>',
- targetFrameName : 'Ime ciljnog okvira',
- targetPopupName : 'Naziv popup prozora',
- popupFeatures : 'MoguÄnosti popup prozora',
- popupResizable : 'Promjenjiva veliÄina',
- popupStatusBar : 'Statusna traka',
- popupLocationBar: 'Traka za lokaciju',
- popupToolbar : 'Traka s alatima',
- popupMenuBar : 'Izborna traka',
- popupFullScreen : 'Cijeli ekran (IE)',
- popupScrollBars : 'Scroll traka',
- popupDependent : 'Ovisno (Netscape)',
- popupWidth : 'Å irina',
- popupLeft : 'Lijeva pozicija',
- popupHeight : 'Visina',
- popupTop : 'Gornja pozicija',
- id : 'Id',
- langDir : 'Smjer jezika',
- langDirLTR : 'S lijeva na desno (LTR)',
- langDirRTL : 'S desna na lijevo (RTL)',
- acccessKey : 'Pristupna tipka',
- name : 'Naziv',
- langCode : 'Smjer jezika',
- tabIndex : 'Tab Indeks',
- advisoryTitle : 'Advisory naslov',
- advisoryContentType : 'Advisory vrsta sadržaja',
- cssClasses : 'Stylesheet klase',
- charset : 'Kodna stranica povezanih resursa',
- styles : 'Stil',
- selectAnchor : 'Odaberi sidro',
- anchorName : 'Po nazivu sidra',
- anchorId : 'Po Id elementa',
- emailAddress : 'E-Mail adresa',
- emailSubject : 'Naslov',
- emailBody : 'Sadržaj poruke',
- noAnchors : '(Nema dostupnih sidra)',
- noUrl : 'Molimo upišite URL link',
- noEmail : 'Molimo upišite e-mail adresu'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ubaci/promijeni sidro',
- menu : 'Svojstva sidra',
- title : 'Svojstva sidra',
- name : 'Ime sidra',
- errorName : 'Molimo unesite ime sidra'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'PronaÄi i zamijeni',
- find : 'PronaÄi',
- replace : 'Zamijeni',
- findWhat : 'PronaÄi:',
- replaceWith : 'Zamijeni s:',
- notFoundMsg : 'Traženi tekst nije pronaÄen.',
- matchCase : 'Usporedi mala/velika slova',
- matchWord : 'Usporedi cijele rijeÄi',
- matchCyclic : 'Usporedi kružno',
- replaceAll : 'Zamijeni sve',
- replaceSuccessMsg : 'Zamijenjeno %1 pojmova.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tablica',
- title : 'Svojstva tablice',
- menu : 'Svojstva tablice',
- deleteTable : 'Izbriši tablicu',
- rows : 'Redova',
- columns : 'Kolona',
- border : 'VeliÄina okvira',
- align : 'Poravnanje',
- alignLeft : 'Lijevo',
- alignCenter : 'Središnje',
- alignRight : 'Desno',
- width : 'Å irina',
- widthPx : 'piksela',
- widthPc : 'postotaka',
- widthUnit : 'width unit', // MISSING
- height : 'Visina',
- cellSpace : 'Prostornost Äelija',
- cellPad : 'Razmak Äelija',
- caption : 'Naslov',
- summary : 'Sažetak',
- headers : 'Zaglavlje',
- headersNone : 'Ništa',
- headersColumn : 'Prva kolona',
- headersRow : 'Prvi red',
- headersBoth : 'Oba',
- invalidRows : 'Broj redova mora biti broj veÄi od 0.',
- invalidCols : 'Broj kolona mora biti broj veÄi od 0.',
- invalidBorder : 'Debljina ruba mora biti broj.',
- invalidWidth : 'Å irina tablice mora biti broj.',
- invalidHeight : 'Visina tablice mora biti broj.',
- invalidCellSpacing : 'Prostornost Äelija mora biti broj.',
- invalidCellPadding : 'Razmak Äelija mora biti broj.',
-
- cell :
- {
- menu : 'Äelija',
- insertBefore : 'Ubaci Äeliju prije',
- insertAfter : 'Ubaci Äeliju poslije',
- deleteCell : 'IzbriÅ¡i Äelije',
- merge : 'Spoji Äelije',
- mergeRight : 'Spoji desno',
- mergeDown : 'Spoji dolje',
- splitHorizontal : 'Podijeli Äeliju vodoravno',
- splitVertical : 'Podijeli Äeliju okomito',
- title : 'Svojstva Äelije',
- cellType : 'Vrsta Äelije',
- rowSpan : 'Rows Span',
- colSpan : 'Columns Span',
- wordWrap : 'Prelazak u novi red',
- hAlign : 'Vodoravno poravnanje',
- vAlign : 'Okomito poravnanje',
- alignTop : 'Vrh',
- alignMiddle : 'Sredina',
- alignBottom : 'Dolje',
- alignBaseline : 'Osnovna linija',
- bgColor : 'Boja pozadine',
- borderColor : 'Boja ruba',
- data : 'Podatak',
- header : 'Zaglavlje',
- yes : 'Da',
- no : 'ne',
- invalidWidth : 'Å irina Äelije mora biti broj.',
- invalidHeight : 'Visina Äelije mora biti broj.',
- invalidRowSpan : 'Rows span mora biti cijeli broj.',
- invalidColSpan : 'Columns span mora biti cijeli broj.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Red',
- insertBefore : 'Ubaci red prije',
- insertAfter : 'Ubaci red poslije',
- deleteRow : 'Izbriši redove'
- },
-
- column :
- {
- menu : 'Kolona',
- insertBefore : 'Ubaci kolonu prije',
- insertAfter : 'Ubaci kolonu poslije',
- deleteColumn : 'Izbriši kolone'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Image Button svojstva',
- text : 'Tekst (vrijednost)',
- type : 'Vrsta',
- typeBtn : 'Gumb',
- typeSbm : 'Pošalji',
- typeRst : 'Poništi'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Checkbox svojstva',
- radioTitle : 'Radio Button svojstva',
- value : 'Vrijednost',
- selected : 'Odabrano'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form svojstva',
- menu : 'Form svojstva',
- action : 'Akcija',
- method : 'Metoda',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Selection svojstva',
- selectInfo : 'Info',
- opAvail : 'Dostupne opcije',
- value : 'Vrijednost',
- size : 'VeliÄina',
- lines : 'linija',
- chkMulti : 'Dozvoli višestruki odabir',
- opText : 'Tekst',
- opValue : 'Vrijednost',
- btnAdd : 'Dodaj',
- btnModify : 'Promijeni',
- btnUp : 'Gore',
- btnDown : 'Dolje',
- btnSetValue : 'Postavi kao odabranu vrijednost',
- btnDelete : 'Obriši'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Textarea svojstva',
- cols : 'Kolona',
- rows : 'Redova'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Text Field svojstva',
- name : 'Ime',
- value : 'Vrijednost',
- charWidth : 'Å irina',
- maxChars : 'Najviše karaktera',
- type : 'Vrsta',
- typeText : 'Tekst',
- typePass : 'Å ifra'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Hidden Field svojstva',
- name : 'Ime',
- value : 'Vrijednost'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Svojstva slika',
- titleButton : 'Image Button svojstva',
- menu : 'Svojstva slika',
- infoTab : 'Info slike',
- btnUpload : 'Pošalji na server',
- upload : 'Pošalji',
- alt : 'Alternativni tekst',
- width : 'Å irina',
- height : 'Visina',
- lockRatio : 'ZakljuÄaj odnos',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'ObriÅ¡i veliÄinu',
- border : 'Okvir',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Poravnaj',
- alignLeft : 'Lijevo',
- alignRight : 'Desno',
- alertUrl : 'Unesite URL slike',
- linkTab : 'Link',
- button2Img : 'Želite li promijeniti odabrani gumb u jednostavnu sliku?',
- img2Button : 'Želite li promijeniti odabranu sliku u gumb?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash svojstva',
- propertiesTab : 'Svojstva',
- title : 'Flash svojstva',
- chkPlay : 'Auto Play',
- chkLoop : 'Ponavljaj',
- chkMenu : 'OmoguÄi Flash izbornik',
- chkFull : 'OmoguÄi Fullscreen',
- scale : 'Omjer',
- scaleAll : 'Prikaži sve',
- scaleNoBorder : 'Bez okvira',
- scaleFit : 'ToÄna veliÄina',
- access : 'Script Access',
- accessAlways : 'Uvijek',
- accessSameDomain: 'Ista domena',
- accessNever : 'Nikad',
- align : 'Poravnaj',
- alignLeft : 'Lijevo',
- alignAbsBottom : 'Abs dolje',
- alignAbsMiddle : 'Abs sredina',
- alignBaseline : 'Bazno',
- alignBottom : 'Dolje',
- alignMiddle : 'Sredina',
- alignRight : 'Desno',
- alignTextTop : 'Vrh teksta',
- alignTop : 'Vrh',
- quality : 'Kvaliteta',
- qualityBest : 'Best',
- qualityHigh : 'High',
- qualityAutoHigh : 'Auto High',
- qualityMedium : 'Medium',
- qualityAutoLow : 'Auto Low',
- qualityLow : 'Low',
- windowModeWindow: 'Window',
- windowModeOpaque: 'Opaque',
- windowModeTransparent : 'Transparent',
- windowMode : 'Vrsta prozora',
- flashvars : 'Varijable za Flash',
- bgcolor : 'Boja pozadine',
- width : 'Å irina',
- height : 'Visina',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Molimo upišite URL link',
- validateWidth : 'Å irina mora biti broj.',
- validateHeight : 'Visina mora biti broj.',
- validateHSpace : 'HSpace mora biti broj.',
- validateVSpace : 'VSpace mora biti broj.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Provjeri pravopis',
- title : 'Provjera pravopisa',
- notAvailable : 'Žao nam je, ali usluga trenutno nije dostupna.',
- errorLoading : 'GreÅ¡ka uÄitavanja aplikacije: %s.',
- notInDic : 'Nije u rjeÄniku',
- changeTo : 'Promijeni u',
- btnIgnore : 'Zanemari',
- btnIgnoreAll : 'Zanemari sve',
- btnReplace : 'Zamijeni',
- btnReplaceAll : 'Zamijeni sve',
- btnUndo : 'Vrati',
- noSuggestions : '-Nema preporuke-',
- progress : 'Provjera u tijeku...',
- noMispell : 'Provjera završena: Nema grešaka',
- noChanges : 'Provjera završena: Nije napravljena promjena',
- oneChange : 'Provjera zavrÅ¡ena: Jedna rijeÄ promjenjena',
- manyChanges : 'Provjera zavrÅ¡ena: Promijenjeno %1 rijeÄi',
- ieSpellDownload : 'Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?'
- },
-
- smiley :
- {
- toolbar : 'Smješko',
- title : 'Ubaci smješka',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element'
- },
-
- numberedlist : 'BrojÄana lista',
- bulletedlist : 'ObiÄna lista',
- indent : 'Pomakni udesno',
- outdent : 'Pomakni ulijevo',
-
- justify :
- {
- left : 'Lijevo poravnanje',
- center : 'Središnje poravnanje',
- right : 'Desno poravnanje',
- block : 'Blok poravnanje'
- },
-
- blockquote : 'Blockquote',
-
- clipboard :
- {
- title : 'Zalijepi',
- cutError : 'Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).',
- copyError : 'Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).',
- pasteMsg : 'Molimo zaljepite unutar doljnjeg okvira koristeÄi tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.',
- securityMsg : 'Zbog sigurnosnih postavki VaÅ¡eg pretraživaÄa, editor nema direktan pristup VaÅ¡em meÄuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Tekst koji želite zalijepiti Äini se da je kopiran iz Worda. Želite li prije oÄistiti tekst?',
- toolbar : 'Zalijepi iz Worda',
- title : 'Zalijepi iz Worda',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Zalijepi kao Äisti tekst',
- title : 'Zalijepi kao Äisti tekst'
- },
-
- templates :
- {
- button : 'Predlošci',
- title : 'Predlošci sadržaja',
- options : 'Template Options', // MISSING
- insertOption : 'Zamijeni trenutne sadržaje',
- selectPromptMsg : 'Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj Äe biti izgubljen):',
- emptyListMsg : '(Nema definiranih predložaka)'
- },
-
- showBlocks : 'Prikaži blokove',
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block stilovi',
- panelTitle2 : 'Inline stilovi',
- panelTitle3 : 'Object stilovi'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatirano',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font',
- panelTitle : 'Font'
- },
-
- fontSize :
- {
- label : 'VeliÄina',
- voiceLabel : 'VeliÄina slova',
- panelTitle : 'VeliÄina'
- },
-
- colorButton :
- {
- textColorTitle : 'Boja teksta',
- bgColorTitle : 'Boja pozadine',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatski',
- more : 'Više boja...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Provjeri pravopis tijekom tipkanja (SCAYT)',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'OmoguÄi SCAYT',
- disable : 'OnemoguÄi SCAYT',
- about : 'O SCAYT',
- toggle : 'OmoguÄu/OnemoguÄi SCAYT',
- options : 'Opcije',
- langs : 'Jezici',
- moreSuggestions : 'Više prijedloga',
- ignore : 'Zanemari',
- ignoreAll : 'Zanemari sve',
- addWord : 'Dodaj rijeÄ',
- emptyDic : 'Naziv rjeÄnika ne smije biti prazno.',
-
- optionsTab : 'Opcije',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Jezici',
-
- dictionariesTab : 'RjeÄnici',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'O SCAYT'
- },
-
- about :
- {
- title : 'O CKEditoru',
- dlgTitle : 'O CKEditoru',
- moreInfo : 'Za informacije o licencama posjetite našu web stranicu:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'PoveÄaj',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Sidro',
- flash : 'Flash animacija',
- div : 'Prijelom stranice',
- unknown : 'Nepoznati objekt'
- },
-
- resize : 'Povuci za promjenu veliÄine',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Croatian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'hr' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Bogati ureÄivaÄ teksta',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Pritisni ALT 0 za pomoÄ',
+
+ browseServer: 'Pretraži server',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Pošalji',
+ uploadSubmit: 'Pošalji na server',
+ image: 'Slika',
+ flash: 'Flash',
+ form: 'Form',
+ checkbox: 'Checkbox',
+ radio: 'Radio Button',
+ textField: 'Text Field',
+ textarea: 'Textarea',
+ hiddenField: 'Hidden Field',
+ button: 'Button',
+ select: 'Selection Field',
+ imageButton: 'Image Button',
+ notSet: '<nije postavljeno>',
+ id: 'Id',
+ name: 'Naziv',
+ langDir: 'Smjer jezika',
+ langDirLtr: 'S lijeva na desno (LTR)',
+ langDirRtl: 'S desna na lijevo (RTL)',
+ langCode: 'Kôd jezika',
+ longDescr: 'DugaÄki opis URL',
+ cssClass: 'Stylesheet klase',
+ advisoryTitle: 'Advisory naslov',
+ cssStyle: 'Stil',
+ ok: 'OK',
+ cancel: 'Poništi',
+ close: 'Zatvori',
+ preview: 'Pregledaj',
+ resize: 'Povuci za promjenu veliÄine',
+ generalTab: 'OpÄenito',
+ advancedTab: 'Napredno',
+ validateNumberFailed: 'Ova vrijednost nije broj.',
+ confirmNewPage: 'Sve napravljene promjene Äe biti izgubljene ukoliko ih niste snimili. Sigurno želite uÄitati novu stranicu?',
+ confirmCancel: 'Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?',
+ options: 'Opcije',
+ target: 'Odredište',
+ targetNew: 'Novi prozor (_blank)',
+ targetTop: 'Vršni prozor (_top)',
+ targetSelf: 'Isti prozor (_self)',
+ targetParent: 'Roditeljski prozor (_parent)',
+ langDirLTR: 'S lijeva na desno (LTR)',
+ langDirRTL: 'S desna na lijevo (RTL)',
+ styles: 'Stil',
+ cssClasses: 'Klase stilova',
+ width: 'Å irina',
+ height: 'Visina',
+ align: 'Poravnaj',
+ alignLeft: 'Lijevo',
+ alignRight: 'Desno',
+ alignCenter: 'Središnje',
+ alignTop: 'Vrh',
+ alignMiddle: 'Sredina',
+ alignBottom: 'Dolje',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Visina mora biti broj.',
+ invalidWidth: 'Å irina mora biti broj.',
+ invalidCssLength: 'Vrijednost odreÄena za "%1" polje mora biti pozitivni broj sa ili bez važeÄih CSS mjernih jedinica (px, %, in, cm, mm, em, ex, pt ili pc).',
+ invalidHtmlLength: 'Vrijednost odreÄena za "%1" polje mora biti pozitivni broj sa ili bez važeÄih HTML mjernih jedinica (px ili %).',
+ invalidInlineStyle: 'Vrijednost za linijski stil mora sadržavati jednu ili viÅ¡e definicija s formatom "naziv:vrijednost", odvojenih toÄka-zarezom.',
+ cssLengthTooltip: 'Unesite broj za vrijednost u pikselima ili broj s važeÄim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nedostupno</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/hu.js b/devel/third-party/ckeditor/lang/hu.js
index cb9f465..80e0a29 100644
--- a/devel/third-party/ckeditor/lang/hu.js
+++ b/devel/third-party/ckeditor/lang/hu.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Hungarian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['hu'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Forráskód',
- newPage : 'Ãj oldal',
- save : 'Mentés',
- preview : 'ElÅnézet',
- cut : 'Kivágás',
- copy : 'Másolás',
- paste : 'Beillesztés',
- print : 'Nyomtatás',
- underline : 'Aláhúzott',
- bold : 'Félkövér',
- italic : 'DÅlt',
- selectAll : 'Mindent kijelöl',
- removeFormat : 'Formázás eltávolÃtása',
- strike : 'Ãthúzott',
- subscript : 'Alsó index',
- superscript : 'FelsÅ index',
- horizontalrule : 'Elválasztóvonal beillesztése',
- pagebreak : 'Oldaltörés beillesztése',
- unlink : 'Hivatkozás törlése',
- undo : 'Visszavonás',
- redo : 'Ismétlés',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Böngészés a szerveren',
- url : 'Hivatkozás',
- protocol : 'Protokoll',
- upload : 'Feltöltés',
- uploadSubmit : 'Küldés a szerverre',
- image : 'Kép',
- flash : 'Flash',
- form : 'Űrlap',
- checkbox : 'JelölÅnégyzet',
- radio : 'Választógomb',
- textField : 'SzövegmezÅ',
- textarea : 'Szövegterület',
- hiddenField : 'RejtettmezÅ',
- button : 'Gomb',
- select : 'LegördülŠlista',
- imageButton : 'Képgomb',
- notSet : '<nincs beállÃtva>',
- id : 'AzonosÃtó',
- name : 'Név',
- langDir : 'Ãrás iránya',
- langDirLtr : 'Balról jobbra',
- langDirRtl : 'Jobbról balra',
- langCode : 'Nyelv kódja',
- longDescr : 'Részletes leÃrás webcÃme',
- cssClass : 'StÃluskészlet',
- advisoryTitle : 'Súgócimke',
- cssStyle : 'StÃlus',
- ok : 'Rendben',
- cancel : 'Mégsem',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Ãltalános',
- advancedTab : 'További opciók',
- validateNumberFailed : 'A mezÅbe csak számokat Ãrhat.',
- confirmNewPage : 'Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?',
- confirmCancel : 'Az űrlap tartalma megváltozott, ám a változásokat nem rögzÃtette. Biztosan be szeretné zárni az űrlapot?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Speciális karakter beillesztése',
- title : 'Speciális karakter választása',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Hivatkozás beillesztése/módosÃtása',
- other : '<más>',
- menu : 'Hivatkozás módosÃtása',
- title : 'Hivatkozás tulajdonságai',
- info : 'Alaptulajdonságok',
- target : 'Tartalom megjelenÃtése',
- upload : 'Feltöltés',
- advanced : 'További opciók',
- type : 'Hivatkozás tÃpusa',
- toUrl : 'URL', // MISSING
- toAnchor : 'Horgony az oldalon',
- toEmail : 'E-Mail',
- targetFrame : '<keretben>',
- targetPopup : '<felugró ablakban>',
- targetFrameName : 'Keret neve',
- targetPopupName : 'Felugró ablak neve',
- popupFeatures : 'Felugró ablak jellemzÅi',
- popupResizable : 'Ãtméretezés',
- popupStatusBar : 'Ãllapotsor',
- popupLocationBar: 'CÃmsor',
- popupToolbar : 'Eszköztár',
- popupMenuBar : 'Menü sor',
- popupFullScreen : 'Teljes képernyŠ(csak IE)',
- popupScrollBars : 'GördÃtÅsáv',
- popupDependent : 'SzülÅhöz kapcsolt (csak Netscape)',
- popupWidth : 'Szélesség',
- popupLeft : 'Bal pozÃció',
- popupHeight : 'Magasság',
- popupTop : 'FelsÅ pozÃció',
- id : 'Id',
- langDir : 'Ãrás iránya',
- langDirLTR : 'Balról jobbra',
- langDirRTL : 'Jobbról balra',
- acccessKey : 'Billentyűkombináció',
- name : 'Név',
- langCode : 'Ãrás iránya',
- tabIndex : 'Tabulátor index',
- advisoryTitle : 'Súgócimke',
- advisoryContentType : 'Súgó tartalomtÃpusa',
- cssClasses : 'StÃluskészlet',
- charset : 'Hivatkozott tartalom kódlapja',
- styles : 'StÃlus',
- selectAnchor : 'Horgony választása',
- anchorName : 'Horgony név szerint',
- anchorId : 'AzonosÃtó szerint',
- emailAddress : 'E-Mail cÃm',
- emailSubject : 'Ãzenet tárgya',
- emailBody : 'Ãzenet',
- noAnchors : '(Nincs horgony a dokumentumban)',
- noUrl : 'Adja meg a hivatkozás webcÃmét',
- noEmail : 'Adja meg az E-Mail cÃmet'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Horgony beillesztése/szerkesztése',
- menu : 'Horgony tulajdonságai',
- title : 'Horgony tulajdonságai',
- name : 'Horgony neve',
- errorName : 'Kérem adja meg a horgony nevét'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Keresés és csere',
- find : 'Keresés',
- replace : 'Csere',
- findWhat : 'Keresett szöveg:',
- replaceWith : 'Csere erre:',
- notFoundMsg : 'A keresett szöveg nem található.',
- matchCase : 'kis- és nagybetű megkülönböztetése',
- matchWord : 'csak ha ez a teljes szó',
- matchCyclic : 'Ciklikus keresés',
- replaceAll : 'Az összes cseréje',
- replaceSuccessMsg : '%1 egyezÅség cserélve.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Táblázat',
- title : 'Táblázat tulajdonságai',
- menu : 'Táblázat tulajdonságai',
- deleteTable : 'Táblázat törlése',
- rows : 'Sorok',
- columns : 'Oszlopok',
- border : 'Szegélyméret',
- align : 'IgazÃtás',
- alignLeft : 'Balra',
- alignCenter : 'Középre',
- alignRight : 'Jobbra',
- width : 'Szélesség',
- widthPx : 'képpont',
- widthPc : 'százalék',
- widthUnit : 'width unit', // MISSING
- height : 'Magasság',
- cellSpace : 'Cella térköz',
- cellPad : 'Cella belsŠmargó',
- caption : 'Felirat',
- summary : 'LeÃrás',
- headers : 'Fejlécek',
- headersNone : 'Nincsenek',
- headersColumn : 'ElsÅ oszlop',
- headersRow : 'ElsÅ sor',
- headersBoth : 'MindkettÅ',
- invalidRows : 'A sorok számának nagyobbnak kell lenni mint 0.',
- invalidCols : 'Az oszlopok számának nagyobbnak kell lenni mint 0.',
- invalidBorder : 'A szegélyméret mezÅbe csak számokat Ãrhat.',
- invalidWidth : 'A szélesség mezÅbe csak számokat Ãrhat.',
- invalidHeight : 'A magasság mezÅbe csak számokat Ãrhat.',
- invalidCellSpacing : 'A cella térköz mezÅbe csak számokat Ãrhat.',
- invalidCellPadding : 'A cella belsÅ margó mezÅbe csak számokat Ãrhat.',
-
- cell :
- {
- menu : 'Cella',
- insertBefore : 'Beszúrás balra',
- insertAfter : 'Beszúrás jobbra',
- deleteCell : 'Cellák törlése',
- merge : 'Cellák egyesÃtése',
- mergeRight : 'Cellák egyesÃtése jobbra',
- mergeDown : 'Cellák egyesÃtése lefelé',
- splitHorizontal : 'Cellák szétválasztása vÃzszintesen',
- splitVertical : 'Cellák szétválasztása függÅlegesen',
- title : 'Cella tulajdonságai',
- cellType : 'Cella tÃpusa',
- rowSpan : 'FüggÅleges egyesÃtés',
- colSpan : 'VÃzszintes egyesÃtés',
- wordWrap : 'Hosszú sorok törése',
- hAlign : 'VÃzszintes igazÃtás',
- vAlign : 'FüggÅleges igazÃtás',
- alignTop : 'Fel',
- alignMiddle : 'Középre',
- alignBottom : 'Le',
- alignBaseline : 'Alapvonalra',
- bgColor : 'Háttér szÃne',
- borderColor : 'Keret szÃne',
- data : 'Adat',
- header : 'Fejléc',
- yes : 'Igen',
- no : 'Nem',
- invalidWidth : 'A szélesség mezÅbe csak számokat Ãrhat.',
- invalidHeight : 'A magasság mezÅbe csak számokat Ãrhat.',
- invalidRowSpan : 'A függÅleges egyesÃtés mezÅbe csak számokat Ãrhat.',
- invalidColSpan : 'A vÃzszintes egyesÃtés mezÅbe csak számokat Ãrhat.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Sor',
- insertBefore : 'Beszúrás fölé',
- insertAfter : 'Beszúrás alá',
- deleteRow : 'Sorok törlése'
- },
-
- column :
- {
- menu : 'Oszlop',
- insertBefore : 'Beszúrás balra',
- insertAfter : 'Beszúrás jobbra',
- deleteColumn : 'Oszlopok törlése'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Gomb tulajdonságai',
- text : 'Szöveg (Ãrték)',
- type : 'TÃpus',
- typeBtn : 'Gomb',
- typeSbm : 'Küldés',
- typeRst : 'Alaphelyzet'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'JelölÅnégyzet tulajdonságai',
- radioTitle : 'Választógomb tulajdonságai',
- value : 'Ãrték',
- selected : 'Kiválasztott'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Űrlap tulajdonságai',
- menu : 'Űrlap tulajdonságai',
- action : 'Adatfeldolgozást végzŠhivatkozás',
- method : 'Adatküldés módja',
- encoding : 'Kódolás'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'LegördülŠlista tulajdonságai',
- selectInfo : 'Alaptulajdonságok',
- opAvail : 'ElérhetŠopciók',
- value : 'Ãrték',
- size : 'Méret',
- lines : 'sor',
- chkMulti : 'több sor is kiválasztható',
- opText : 'Szöveg',
- opValue : 'Ãrték',
- btnAdd : 'Hozzáad',
- btnModify : 'MódosÃt',
- btnUp : 'Fel',
- btnDown : 'Le',
- btnSetValue : 'Legyen az alapértelmezett érték',
- btnDelete : 'Töröl'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Szövegterület tulajdonságai',
- cols : 'Karakterek száma egy sorban',
- rows : 'Sorok száma'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'SzövegmezŠtulajdonságai',
- name : 'Név',
- value : 'Ãrték',
- charWidth : 'MegjelenÃtett karakterek száma',
- maxChars : 'Maximális karakterszám',
- type : 'TÃpus',
- typeText : 'Szöveg',
- typePass : 'Jelszó'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Rejtett mezŠtulajdonságai',
- name : 'Név',
- value : 'Ãrték'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Kép tulajdonságai',
- titleButton : 'Képgomb tulajdonságai',
- menu : 'Kép tulajdonságai',
- infoTab : 'Alaptulajdonságok',
- btnUpload : 'Küldés a szerverre',
- upload : 'Feltöltés',
- alt : 'Buborék szöveg',
- width : 'Szélesség',
- height : 'Magasság',
- lockRatio : 'Arány megtartása',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Eredeti méret',
- border : 'Keret',
- hSpace : 'VÃzsz. táv',
- vSpace : 'Függ. táv',
- align : 'IgazÃtás',
- alignLeft : 'Bal',
- alignRight : 'Jobbra',
- alertUrl : 'Töltse ki a kép webcÃmét',
- linkTab : 'Hivatkozás',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash tulajdonságai',
- propertiesTab : 'Tulajdonságok',
- title : 'Flash tulajdonságai',
- chkPlay : 'Automata lejátszás',
- chkLoop : 'Folyamatosan',
- chkMenu : 'Flash menü engedélyezése',
- chkFull : 'Teljes képernyŠengedélyezése',
- scale : 'Méretezés',
- scaleAll : 'Mindent mutat',
- scaleNoBorder : 'Keret nélkül',
- scaleFit : 'Teljes kitöltés',
- access : 'Szkript hozzáférés',
- accessAlways : 'Mindig',
- accessSameDomain: 'Azonos domainrÅl',
- accessNever : 'Soha',
- align : 'IgazÃtás',
- alignLeft : 'Bal',
- alignAbsBottom : 'Legaljára',
- alignAbsMiddle : 'Közepére',
- alignBaseline : 'Alapvonalhoz',
- alignBottom : 'Aljára',
- alignMiddle : 'Középre',
- alignRight : 'Jobbra',
- alignTextTop : 'Szöveg tetejére',
- alignTop : 'Tetejére',
- quality : 'MinÅség',
- qualityBest : 'Legjobb',
- qualityHigh : 'Jó',
- qualityAutoHigh : 'Automata jó',
- qualityMedium : 'Közepes',
- qualityAutoLow : 'Automata gyenge',
- qualityLow : 'Gyenge',
- windowModeWindow: 'Window',
- windowModeOpaque: 'Opaque',
- windowModeTransparent : 'Transparent',
- windowMode : 'Ablak mód',
- flashvars : 'Flash változók',
- bgcolor : 'HáttérszÃn',
- width : 'Szélesség',
- height : 'Magasság',
- hSpace : 'VÃzsz. táv',
- vSpace : 'Függ. táv',
- validateSrc : 'Adja meg a hivatkozás webcÃmét',
- validateWidth : 'A szélesség mezÅbe csak számokat Ãrhat.',
- validateHeight : 'A magasság mezÅbe csak számokat Ãrhat.',
- validateHSpace : 'A vÃzszintes távolsűág mezÅbe csak számokat Ãrhat.',
- validateVSpace : 'A függÅleges távolsűág mezÅbe csak számokat Ãrhat.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'HelyesÃrás-ellenÅrzés',
- title : 'HelyesÃrás ellenörzÅ',
- notAvailable : 'Sajnálom, de a szolgáltatás jelenleg nem elérhetÅ.',
- errorLoading : 'Hiba a szolgáltatás host betöltése közben: %s.',
- notInDic : 'Nincs a szótárban',
- changeTo : 'MódosÃtás',
- btnIgnore : 'Kihagyja',
- btnIgnoreAll : 'Mindet kihagyja',
- btnReplace : 'Csere',
- btnReplaceAll : 'Ãsszes cseréje',
- btnUndo : 'Visszavonás',
- noSuggestions : 'Nincs javaslat',
- progress : 'HelyesÃrás-ellenÅrzés folyamatban...',
- noMispell : 'HelyesÃrás-ellenÅrzés kész: Nem találtam hibát',
- noChanges : 'HelyesÃrás-ellenÅrzés kész: Nincs változtatott szó',
- oneChange : 'HelyesÃrás-ellenÅrzés kész: Egy szó cserélve',
- manyChanges : 'HelyesÃrás-ellenÅrzés kész: %1 szó cserélve',
- ieSpellDownload : 'A helyesÃrás-ellenÅrzÅ nincs telepÃtve. Szeretné letölteni most?'
- },
-
- smiley :
- {
- toolbar : 'Hangulatjelek',
- title : 'Hangulatjel beszúrása',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 elem'
- },
-
- numberedlist : 'Számozás',
- bulletedlist : 'Felsorolás',
- indent : 'Behúzás növelése',
- outdent : 'Behúzás csökkentése',
-
- justify :
- {
- left : 'Balra',
- center : 'Középre',
- right : 'Jobbra',
- block : 'Sorkizárt'
- },
-
- blockquote : 'Idézet blokk',
-
- clipboard :
- {
- title : 'Beillesztés',
- cutError : 'A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',
- copyError : 'A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',
- pasteMsg : 'Másolja be az alábbi mezÅbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.',
- securityMsg : 'A böngészÅ biztonsági beállÃtásai miatt a szerkesztÅ nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Beillesztés Word-bÅl',
- title : 'Beillesztés Word-bÅl',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Beillesztés formázatlan szövegként',
- title : 'Beillesztés formázatlan szövegként'
- },
-
- templates :
- {
- button : 'Sablonok',
- title : 'ElérhetŠsablonok',
- options : 'Template Options', // MISSING
- insertOption : 'Kicseréli a jelenlegi tartalmat',
- selectPromptMsg : 'Válassza ki melyik sablon nyÃljon meg a szerkesztÅben<br>(a jelenlegi tartalom elveszik):',
- emptyListMsg : '(Nincs sablon megadva)'
- },
-
- showBlocks : 'Blokkok megjelenÃtése',
-
- stylesCombo :
- {
- label : 'StÃlus',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Blokk stÃlusok',
- panelTitle2 : 'Inline stÃlusok',
- panelTitle3 : 'Objektum stÃlusok'
- },
-
- format :
- {
- label : 'Formátum',
- panelTitle : 'Formátum',
-
- tag_p : 'Normál',
- tag_pre : 'Formázott',
- tag_address : 'CÃmsor',
- tag_h1 : 'Fejléc 1',
- tag_h2 : 'Fejléc 2',
- tag_h3 : 'Fejléc 3',
- tag_h4 : 'Fejléc 4',
- tag_h5 : 'Fejléc 5',
- tag_h6 : 'Fejléc 6',
- tag_div : 'Bekezdés (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'BetűtÃpus',
- voiceLabel : 'BetűtÃpus',
- panelTitle : 'BetűtÃpus'
- },
-
- fontSize :
- {
- label : 'Méret',
- voiceLabel : 'Betűméret',
- panelTitle : 'Méret'
- },
-
- colorButton :
- {
- textColorTitle : 'BetűszÃn',
- bgColorTitle : 'HáttérszÃn',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatikus',
- more : 'További szÃnek...'
- },
-
- colors :
- {
- '000' : 'Fekete',
- '800000' : 'Bordó',
- '8B4513' : 'Barna',
- '2F4F4F' : 'Sötét türkiz',
- '008080' : 'Türkiz',
- '000080' : 'Király kék',
- '4B0082' : 'Indigó kék',
- '696969' : 'Szürke',
- 'B22222' : 'Tégla vörös',
- 'A52A2A' : 'Vörös',
- 'DAA520' : 'Arany sárga',
- '006400' : 'Sötét zöld',
- '40E0D0' : 'Türkiz',
- '0000CD' : 'Kék',
- '800080' : 'Lila',
- '808080' : 'Szürke',
- 'F00' : 'Piros',
- 'FF8C00' : 'Sötét narancs',
- 'FFD700' : 'Arany',
- '008000' : 'Zöld',
- '0FF' : 'Türkiz',
- '00F' : 'Kék',
- 'EE82EE' : 'RózsaszÃn',
- 'A9A9A9' : 'Sötét szürke',
- 'FFA07A' : 'Lazac',
- 'FFA500' : 'Narancs',
- 'FFFF00' : 'Citromsárga',
- '00FF00' : 'Neon zöld',
- 'AFEEEE' : 'Világos türkiz',
- 'ADD8E6' : 'Világos kék',
- 'DDA0DD' : 'Világos lila',
- 'D3D3D3' : 'Világos szürke',
- 'FFF0F5' : 'Lavender Blush',
- 'FAEBD7' : 'Törtfehér',
- 'FFFFE0' : 'Világos sárga',
- 'F0FFF0' : 'Menta',
- 'F0FFFF' : 'Azúr kék',
- 'F0F8FF' : 'Halvány kék',
- 'E6E6FA' : 'Lavender',
- 'FFF' : 'Fehér'
- },
-
- scayt :
- {
- title : 'HelyesÃrás ellenÅrzés gépelés közben',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'SCAYT engedélyezése',
- disable : 'SCAYT letiltása',
- about : 'SCAYT névjegy',
- toggle : 'SCAYT kapcsolása',
- options : 'BeállÃtások',
- langs : 'Nyelvek',
- moreSuggestions : 'További javaslatok',
- ignore : 'Kihagy',
- ignoreAll : 'Ãsszes kihagyása',
- addWord : 'Szó hozzáadása',
- emptyDic : 'A szótár nevét meg kell adni.',
-
- optionsTab : 'BeállÃtások',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Nyelvek',
-
- dictionariesTab : 'Szótár',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Névjegy'
- },
-
- about :
- {
- title : 'CKEditor névjegy',
- dlgTitle : 'CKEditor névjegy',
- moreInfo : 'Licenszelési információkért kérjük látogassa meg weboldalunkat:',
- copy : 'Copyright © $1. Minden jog fenntartva.'
- },
-
- maximize : 'Teljes méret',
- minimize : 'Kis méret',
-
- fakeobjects :
- {
- anchor : 'Horgony',
- flash : 'Flash animáció',
- div : 'Oldaltörés',
- unknown : 'Ismeretlen objektum'
- },
-
- resize : 'Húzza az átméretezéshez',
-
- colordialog :
- {
- title : 'Válasszon szÃnt',
- options : 'Color Options', // MISSING
- highlight : 'NagyÃtás',
- selected : 'Kiválasztott',
- clear : 'ÃrÃtés'
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Hungarian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'hu' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'HTML szerkesztÅ',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Böngészés a szerveren',
+ url: 'Hivatkozás',
+ protocol: 'Protokoll',
+ upload: 'Feltöltés',
+ uploadSubmit: 'Küldés a szerverre',
+ image: 'Kép',
+ flash: 'Flash',
+ form: 'Űrlap',
+ checkbox: 'JelölÅnégyzet',
+ radio: 'Választógomb',
+ textField: 'SzövegmezÅ',
+ textarea: 'Szövegterület',
+ hiddenField: 'RejtettmezÅ',
+ button: 'Gomb',
+ select: 'LegördülŠlista',
+ imageButton: 'Képgomb',
+ notSet: '<nincs beállÃtva>',
+ id: 'AzonosÃtó',
+ name: 'Név',
+ langDir: 'Ãrás iránya',
+ langDirLtr: 'Balról jobbra',
+ langDirRtl: 'Jobbról balra',
+ langCode: 'Nyelv kódja',
+ longDescr: 'Részletes leÃrás webcÃme',
+ cssClass: 'StÃluskészlet',
+ advisoryTitle: 'Súgócimke',
+ cssStyle: 'StÃlus',
+ ok: 'Rendben',
+ cancel: 'Mégsem',
+ close: 'Bezárás',
+ preview: 'ElÅnézet',
+ resize: 'Húzza az átméretezéshez',
+ generalTab: 'Ãltalános',
+ advancedTab: 'További opciók',
+ validateNumberFailed: 'A mezÅbe csak számokat Ãrhat.',
+ confirmNewPage: 'Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?',
+ confirmCancel: 'Az űrlap tartalma megváltozott, ám a változásokat nem rögzÃtette. Biztosan be szeretné zárni az űrlapot?',
+ options: 'BeállÃtások',
+ target: 'Cél',
+ targetNew: 'Ãj ablak (_blank)',
+ targetTop: 'LegfelsÅ ablak (_top)',
+ targetSelf: 'Aktuális ablakban (_self)',
+ targetParent: 'SzülŠablak (_parent)',
+ langDirLTR: 'Balról jobbra (LTR)',
+ langDirRTL: 'Jobbról balra (RTL)',
+ styles: 'StÃlus',
+ cssClasses: 'StÃluslap osztály',
+ width: 'Szélesség',
+ height: 'Magasság',
+ align: 'IgazÃtás',
+ alignLeft: 'Bal',
+ alignRight: 'Jobbra',
+ alignCenter: 'Középre',
+ alignTop: 'Tetejére',
+ alignMiddle: 'Középre',
+ alignBottom: 'Aljára',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'A magasság mezÅbe csak számokat Ãrhat.',
+ invalidWidth: 'A szélesség mezÅbe csak számokat Ãrhat.',
+ invalidCssLength: '"%1"-hez megadott érték csakis egy pozitÃv szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).',
+ invalidHtmlLength: '"%1"-hez megadott érték csakis egy pozitÃv szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).',
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nem elérhetÅ</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/is.js b/devel/third-party/ckeditor/lang/is.js
index 49883a8..8862534 100644
--- a/devel/third-party/ckeditor/lang/is.js
+++ b/devel/third-party/ckeditor/lang/is.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Icelandic language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['is'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Kóði',
- newPage : 'Ný sÃða',
- save : 'Vista',
- preview : 'Forskoða',
- cut : 'Klippa',
- copy : 'Afrita',
- paste : 'LÃma',
- print : 'Prenta',
- underline : 'Undirstrikað',
- bold : 'Feitletrað',
- italic : 'Skáletrað',
- selectAll : 'Velja allt',
- removeFormat : 'Fjarlægja snið',
- strike : 'Yfirstrikað',
- subscript : 'Niðurskrifað',
- superscript : 'Uppskrifað',
- horizontalrule : 'Lóðrétt lÃna',
- pagebreak : 'Setja inn sÃðuskil',
- unlink : 'Fjarlægja stiklu',
- undo : 'Afturkalla',
- redo : 'Hætta við afturköllun',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Fletta à skjalasafni',
- url : 'Vefslóð',
- protocol : 'Samskiptastaðall',
- upload : 'Senda upp',
- uploadSubmit : 'Hlaða upp',
- image : 'Setja inn mynd',
- flash : 'Flash',
- form : 'Setja inn innsláttarform',
- checkbox : 'Setja inn hökunarreit',
- radio : 'Setja inn valhnapp',
- textField : 'Setja inn textareit',
- textarea : 'Setja inn textasvæði',
- hiddenField : 'Setja inn falið svæði',
- button : 'Setja inn hnapp',
- select : 'Setja inn lista',
- imageButton : 'Setja inn myndahnapp',
- notSet : '<ekkert valið>',
- id : 'Auðkenni',
- name : 'Nafn',
- langDir : 'Lesstefna',
- langDirLtr : 'Frá vinstri til hægri (LTR)',
- langDirRtl : 'Frá hægri til vinstri (RTL)',
- langCode : 'Tungumálakóði',
- longDescr : 'Nánari lýsing',
- cssClass : 'StÃlsniðsflokkur',
- advisoryTitle : 'Titill',
- cssStyle : 'StÃll',
- ok : 'Ã lagi',
- cancel : 'Hætta við',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Almennt',
- advancedTab : 'Tæknilegt',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Setja inn merki',
- title : 'Velja tákn',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Stofna/breyta stiklu',
- other : '<annar>',
- menu : 'Breyta stiklu',
- title : 'Stikla',
- info : 'Almennt',
- target : 'Mark',
- upload : 'Senda upp',
- advanced : 'Tæknilegt',
- type : 'Stikluflokkur',
- toUrl : 'URL', // MISSING
- toAnchor : 'Bókamerki á þessari sÃðu',
- toEmail : 'Netfang',
- targetFrame : '<rammi>',
- targetPopup : '<sprettigluggi>',
- targetFrameName : 'Nafn markglugga',
- targetPopupName : 'Nafn sprettiglugga',
- popupFeatures : 'Eigindi sprettiglugga',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Stöðustika',
- popupLocationBar: 'FanglÃna',
- popupToolbar : 'Verkfærastika',
- popupMenuBar : 'VallÃna',
- popupFullScreen : 'Heilskjár (IE)',
- popupScrollBars : 'Skrunstikur',
- popupDependent : 'Háð venslum (Netscape)',
- popupWidth : 'Breidd',
- popupLeft : 'Fjarlægð frá vinstri',
- popupHeight : 'Hæð',
- popupTop : 'Fjarlægð frá efri brún',
- id : 'Id', // MISSING
- langDir : 'Lesstefna',
- langDirLTR : 'Frá vinstri til hægri (LTR)',
- langDirRTL : 'Frá hægri til vinstri (RTL)',
- acccessKey : 'Skammvalshnappur',
- name : 'Nafn',
- langCode : 'Lesstefna',
- tabIndex : 'Raðnúmer innsláttarreits',
- advisoryTitle : 'Titill',
- advisoryContentType : 'Tegund innihalds',
- cssClasses : 'StÃlsniðsflokkur',
- charset : 'Táknróf',
- styles : 'StÃll',
- selectAnchor : 'Veldu akkeri',
- anchorName : 'Eftir akkerisnafni',
- anchorId : 'Eftir auðkenni einingar',
- emailAddress : 'Netfang',
- emailSubject : 'Efni',
- emailBody : 'Meginmál',
- noAnchors : '<Engin bókamerki á skrá>',
- noUrl : 'Sláðu inn veffang stiklunnar!',
- noEmail : 'Sláðu inn netfang!'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Stofna/breyta kaflamerki',
- menu : 'Eigindi kaflamerkis',
- title : 'Eigindi kaflamerkis',
- name : 'Nafn bókamerkis',
- errorName : 'Sláðu inn nafn bókamerkis!'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Finna og skipta',
- find : 'Leita',
- replace : 'Skipta út',
- findWhat : 'Leita að:',
- replaceWith : 'Skipta út fyrir:',
- notFoundMsg : 'Leitartexti fannst ekki!',
- matchCase : 'Gera greinarmun á¡ há¡- og lágstöfum',
- matchWord : 'Aðeins heil orð',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Skipta út allsstaðar',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tafla',
- title : 'Eigindi töflu',
- menu : 'Eigindi töflu',
- deleteTable : 'Fella töflu',
- rows : 'Raðir',
- columns : 'Dálkar',
- border : 'Breidd ramma',
- align : 'Jöfnun',
- alignLeft : 'Vinstrijafnað',
- alignCenter : 'Miðjað',
- alignRight : 'Hægrijafnað',
- width : 'Breidd',
- widthPx : 'myndeindir',
- widthPc : 'prósent',
- widthUnit : 'width unit', // MISSING
- height : 'Hæð',
- cellSpace : 'Bil milli reita',
- cellPad : 'ReitaspássÃa',
- caption : 'Titill',
- summary : 'Ãfram',
- headers : 'Fyrirsagnir',
- headersNone : 'Engar',
- headersColumn : 'Fyrsti dálkur',
- headersRow : 'Fyrsta röð',
- headersBoth : 'Hvort tveggja',
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Reitur',
- insertBefore : 'Skjóta inn reiti fyrir aftan',
- insertAfter : 'Skjóta inn reiti fyrir framan',
- deleteCell : 'Fella reit',
- merge : 'Sameina reiti',
- mergeRight : 'Sameina til hægri',
- mergeDown : 'Sameina niður á við',
- splitHorizontal : 'Kljúfa reit lárétt',
- splitVertical : 'Kljúfa reit lóðrétt',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Röð',
- insertBefore : 'Skjóta inn röð fyrir ofan',
- insertAfter : 'Skjóta inn röð fyrir neðan',
- deleteRow : 'Eyða röð'
- },
-
- column :
- {
- menu : 'Dálkur',
- insertBefore : 'Skjóta inn dálki vinstra megin',
- insertAfter : 'Skjóta inn dálki hægra megin',
- deleteColumn : 'Fella dálk'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Eigindi hnapps',
- text : 'Texti',
- type : 'Gerð',
- typeBtn : 'Hnappur',
- typeSbm : 'Staðfesta',
- typeRst : 'Hreinsa'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Eigindi markreits',
- radioTitle : 'Eigindi valhnapps',
- value : 'Gildi',
- selected : 'Valið'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Eigindi innsláttarforms',
- menu : 'Eigindi innsláttarforms',
- action : 'Aðgerð',
- method : 'Aðferð',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Eigindi lista',
- selectInfo : 'Upplýsingar',
- opAvail : 'Kostir',
- value : 'Gildi',
- size : 'Stærð',
- lines : 'lÃnur',
- chkMulti : 'Leyfa fleiri kosti',
- opText : 'Texti',
- opValue : 'Gildi',
- btnAdd : 'Bæta við',
- btnModify : 'Breyta',
- btnUp : 'Upp',
- btnDown : 'Niður',
- btnSetValue : 'Merkja sem valið',
- btnDelete : 'Eyða'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Eigindi textasvæðis',
- cols : 'Dálkar',
- rows : 'LÃnur'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Eigindi textareits',
- name : 'Nafn',
- value : 'Gildi',
- charWidth : 'Breidd (leturtákn)',
- maxChars : 'Hámarksfjöldi leturtákna',
- type : 'Gerð',
- typeText : 'Texti',
- typePass : 'Lykilorð'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Eigindi falins svæðis',
- name : 'Nafn',
- value : 'Gildi'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Eigindi myndar',
- titleButton : 'Eigindi myndahnapps',
- menu : 'Eigindi myndar',
- infoTab : 'Almennt',
- btnUpload : 'Hlaða upp',
- upload : 'Hlaða upp',
- alt : 'Baklægur texti',
- width : 'Breidd',
- height : 'Hæð',
- lockRatio : 'Festa stærðarhlutfall',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Reikna stærð',
- border : 'Rammi',
- hSpace : 'Vinstri bil',
- vSpace : 'Hægri bil',
- align : 'Jöfnun',
- alignLeft : 'Vinstri',
- alignRight : 'Hægri',
- alertUrl : 'Sláðu inn slóðina að myndinni',
- linkTab : 'Stikla',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Eigindi Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'Eigindi Flash',
- chkPlay : 'Sjálfvirk spilun',
- chkLoop : 'Endurtekning',
- chkMenu : 'Sýna Flash-valmynd',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Skali',
- scaleAll : 'Sýna allt',
- scaleNoBorder : 'Ãn ramma',
- scaleFit : 'Fella skala að stærð',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Jöfnun',
- alignLeft : 'Vinstri',
- alignAbsBottom : 'Abs neðst',
- alignAbsMiddle : 'Abs miðjuð',
- alignBaseline : 'GrunnlÃna',
- alignBottom : 'Neðst',
- alignMiddle : 'Miðjuð',
- alignRight : 'Hægri',
- alignTextTop : 'Efri brún texta',
- alignTop : 'Efst',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Bakgrunnslitur',
- width : 'Breidd',
- height : 'Hæð',
- hSpace : 'Vinstri bil',
- vSpace : 'Hægri bil',
- validateSrc : 'Sláðu inn veffang stiklunnar!',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Villuleit',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Ekki à orðabókinni',
- changeTo : 'Tillaga',
- btnIgnore : 'Hunsa',
- btnIgnoreAll : 'Hunsa allt',
- btnReplace : 'Skipta',
- btnReplaceAll : 'Skipta öllu',
- btnUndo : 'Til baka',
- noSuggestions : '- engar tillögur -',
- progress : 'Villuleit à gangi...',
- noMispell : 'Villuleit lokið: Engin villa fannst',
- noChanges : 'Villuleit lokið: Engu orði breytt',
- oneChange : 'Villuleit lokið: Einu orði breytt',
- manyChanges : 'Villuleit lokið: %1 orðum breytt',
- ieSpellDownload : 'Villuleit ekki sett upp.<br>Viltu setja hana upp?'
- },
-
- smiley :
- {
- toolbar : 'Svipur',
- title : 'Velja svip',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Númeraður listi',
- bulletedlist : 'Punktalisti',
- indent : 'Minnka inndrátt',
- outdent : 'Auka inndrátt',
-
- justify :
- {
- left : 'Vinstrijöfnun',
- center : 'Miðja texta',
- right : 'Hægrijöfnun',
- block : 'Jafna báðum megin'
- },
-
- blockquote : 'Inndráttur',
-
- clipboard :
- {
- title : 'LÃma',
- cutError : 'Ãryggisstillingar vafrans þÃns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið à klippa (Ctrl/Cmd+X).',
- copyError : 'Ãryggisstillingar vafrans þÃns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið à afrita (Ctrl/Cmd+C).',
- pasteMsg : 'LÃmdu à svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.',
- securityMsg : 'Vegna öryggisstillinga à vafranum þÃnum fær ritillinn ekki beinan aðgang að klippuborðinu. Ãú verður að lÃma innihaldið aftur inn à þennan glugga.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'LÃma úr Word',
- title : 'LÃma úr Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'LÃma sem ósniðinn texta',
- title : 'LÃma sem ósniðinn texta'
- },
-
- templates :
- {
- button : 'Sniðmát',
- title : 'Innihaldssniðmát',
- options : 'Template Options', // MISSING
- insertOption : 'Skipta út raunverulegu innihaldi',
- selectPromptMsg : 'Veldu sniðmát til að opna à ritlinum.<br>(Núverandi innihald vÃkur fyrir þvÃ!):',
- emptyListMsg : '(Ekkert sniðmát er skilgreint!)'
- },
-
- showBlocks : 'Sýna blokkir',
-
- stylesCombo :
- {
- label : 'StÃlflokkur',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'StÃlsnið',
- panelTitle : 'StÃlsnið',
-
- tag_p : 'Venjulegt letur',
- tag_pre : 'Forsniðið',
- tag_address : 'Vistfang',
- tag_h1 : 'Fyrirsögn 1',
- tag_h2 : 'Fyrirsögn 2',
- tag_h3 : 'Fyrirsögn 3',
- tag_h4 : 'Fyrirsögn 4',
- tag_h5 : 'Fyrirsögn 5',
- tag_h6 : 'Fyrirsögn 6',
- tag_div : 'Venjulegt (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Leturgerð ',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Leturgerð '
- },
-
- fontSize :
- {
- label : 'Leturstærð ',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Leturstærð '
- },
-
- colorButton :
- {
- textColorTitle : 'Litur texta',
- bgColorTitle : 'Bakgrunnslitur',
- panelTitle : 'Colors', // MISSING
- auto : 'Sjálfval',
- more : 'Fleiri liti...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Icelandic language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'is' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Fletta à skjalasafni',
+ url: 'Vefslóð',
+ protocol: 'Samskiptastaðall',
+ upload: 'Senda upp',
+ uploadSubmit: 'Hlaða upp',
+ image: 'Setja inn mynd',
+ flash: 'Flash',
+ form: 'Setja inn innsláttarform',
+ checkbox: 'Setja inn hökunarreit',
+ radio: 'Setja inn valhnapp',
+ textField: 'Setja inn textareit',
+ textarea: 'Setja inn textasvæði',
+ hiddenField: 'Setja inn falið svæði',
+ button: 'Setja inn hnapp',
+ select: 'Setja inn lista',
+ imageButton: 'Setja inn myndahnapp',
+ notSet: '<ekkert valið>',
+ id: 'Auðkenni',
+ name: 'Nafn',
+ langDir: 'Lesstefna',
+ langDirLtr: 'Frá vinstri til hægri (LTR)',
+ langDirRtl: 'Frá hægri til vinstri (RTL)',
+ langCode: 'Tungumálakóði',
+ longDescr: 'Nánari lýsing',
+ cssClass: 'StÃlsniðsflokkur',
+ advisoryTitle: 'Titill',
+ cssStyle: 'StÃll',
+ ok: 'Ã lagi',
+ cancel: 'Hætta við',
+ close: 'Close', // MISSING
+ preview: 'Forskoða',
+ resize: 'Resize', // MISSING
+ generalTab: 'Almennt',
+ advancedTab: 'Tæknilegt',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'Mark',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Frá vinstri til hægri (LTR)',
+ langDirRTL: 'Frá hægri til vinstri (RTL)',
+ styles: 'StÃll',
+ cssClasses: 'StÃlsniðsflokkur',
+ width: 'Breidd',
+ height: 'Hæð',
+ align: 'Jöfnun',
+ alignLeft: 'Vinstri',
+ alignRight: 'Hægri',
+ alignCenter: 'Miðjað',
+ alignTop: 'Efst',
+ alignMiddle: 'Miðjuð',
+ alignBottom: 'Neðst',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/it.js b/devel/third-party/ckeditor/lang/it.js
index 1177a13..36e8f34 100644
--- a/devel/third-party/ckeditor/lang/it.js
+++ b/devel/third-party/ckeditor/lang/it.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Italian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['it'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Codice Sorgente',
- newPage : 'Nuova pagina vuota',
- save : 'Salva',
- preview : 'Anteprima',
- cut : 'Taglia',
- copy : 'Copia',
- paste : 'Incolla',
- print : 'Stampa',
- underline : 'Sottolineato',
- bold : 'Grassetto',
- italic : 'Corsivo',
- selectAll : 'Seleziona tutto',
- removeFormat : 'Elimina formattazione',
- strike : 'Barrato',
- subscript : 'Pedice',
- superscript : 'Apice',
- horizontalrule : 'Inserisci riga orizzontale',
- pagebreak : 'Inserisci interruzione di pagina',
- unlink : 'Elimina collegamento',
- undo : 'Annulla',
- redo : 'Ripristina',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Cerca sul server',
- url : 'URL',
- protocol : 'Protocollo',
- upload : 'Carica',
- uploadSubmit : 'Invia al server',
- image : 'Immagine',
- flash : 'Oggetto Flash',
- form : 'Modulo',
- checkbox : 'Checkbox',
- radio : 'Radio Button',
- textField : 'Campo di testo',
- textarea : 'Area di testo',
- hiddenField : 'Campo nascosto',
- button : 'Bottone',
- select : 'Menu di selezione',
- imageButton : 'Bottone immagine',
- notSet : '<non impostato>',
- id : 'Id',
- name : 'Nome',
- langDir : 'Direzione scrittura',
- langDirLtr : 'Da Sinistra a Destra (LTR)',
- langDirRtl : 'Da Destra a Sinistra (RTL)',
- langCode : 'Codice Lingua',
- longDescr : 'URL descrizione estesa',
- cssClass : 'Nome classe CSS',
- advisoryTitle : 'Titolo',
- cssStyle : 'Stile',
- ok : 'OK',
- cancel : 'Annulla',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Generale',
- advancedTab : 'Avanzate',
- validateNumberFailed : 'Il valore inserito non è un numero.',
- confirmNewPage : 'Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?',
- confirmCancel : 'Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, non disponibile</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Inserisci carattere speciale',
- title : 'Seleziona carattere speciale',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Inserisci/Modifica collegamento',
- other : '<altro>',
- menu : 'Modifica collegamento',
- title : 'Collegamento',
- info : 'Informazioni collegamento',
- target : 'Destinazione',
- upload : 'Carica',
- advanced : 'Avanzate',
- type : 'Tipo di Collegamento',
- toUrl : 'URL', // MISSING
- toAnchor : 'Ancora nella pagina',
- toEmail : 'E-Mail',
- targetFrame : '<riquadro>',
- targetPopup : '<finestra popup>',
- targetFrameName : 'Nome del riquadro di destinazione',
- targetPopupName : 'Nome finestra popup',
- popupFeatures : 'Caratteristiche finestra popup',
- popupResizable : 'Ridimensionabile',
- popupStatusBar : 'Barra di stato',
- popupLocationBar: 'Barra degli indirizzi',
- popupToolbar : 'Barra degli strumenti',
- popupMenuBar : 'Barra del menu',
- popupFullScreen : 'A tutto schermo (IE)',
- popupScrollBars : 'Barre di scorrimento',
- popupDependent : 'Dipendente (Netscape)',
- popupWidth : 'Larghezza',
- popupLeft : 'Posizione da sinistra',
- popupHeight : 'Altezza',
- popupTop : 'Posizione dall\'alto',
- id : 'Id',
- langDir : 'Direzione scrittura',
- langDirLTR : 'Da Sinistra a Destra (LTR)',
- langDirRTL : 'Da Destra a Sinistra (RTL)',
- acccessKey : 'Scorciatoia<br />da tastiera',
- name : 'Nome',
- langCode : 'Direzione scrittura',
- tabIndex : 'Ordine di tabulazione',
- advisoryTitle : 'Titolo',
- advisoryContentType : 'Tipo della risorsa collegata',
- cssClasses : 'Nome classe CSS',
- charset : 'Set di caretteri della risorsa collegata',
- styles : 'Stile',
- selectAnchor : 'Scegli Ancora',
- anchorName : 'Per Nome',
- anchorId : 'Per id elemento',
- emailAddress : 'Indirizzo E-Mail',
- emailSubject : 'Oggetto del messaggio',
- emailBody : 'Corpo del messaggio',
- noAnchors : '(Nessuna ancora disponibile nel documento)',
- noUrl : 'Devi inserire l\'URL del collegamento',
- noEmail : 'Devi inserire un\'indirizzo e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Inserisci/Modifica Ancora',
- menu : 'Proprietà ancora',
- title : 'Proprietà ancora',
- name : 'Nome ancora',
- errorName : 'Inserici il nome dell\'ancora'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Cerca e Sostituisci',
- find : 'Trova',
- replace : 'Sostituisci',
- findWhat : 'Trova:',
- replaceWith : 'Sostituisci con:',
- notFoundMsg : 'L\'elemento cercato non è stato trovato.',
- matchCase : 'Maiuscole/minuscole',
- matchWord : 'Solo parole intere',
- matchCyclic : 'Ricerca ciclica',
- replaceAll : 'Sostituisci tutto',
- replaceSuccessMsg : '%1 occorrenza(e) sostituite.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabella',
- title : 'Proprietà tabella',
- menu : 'Proprietà tabella',
- deleteTable : 'Cancella Tabella',
- rows : 'Righe',
- columns : 'Colonne',
- border : 'Dimensione bordo',
- align : 'Allineamento',
- alignLeft : 'Sinistra',
- alignCenter : 'Centrato',
- alignRight : 'Destra',
- width : 'Larghezza',
- widthPx : 'pixel',
- widthPc : 'percento',
- widthUnit : 'width unit', // MISSING
- height : 'Altezza',
- cellSpace : 'Spaziatura celle',
- cellPad : 'Padding celle',
- caption : 'Intestazione',
- summary : 'Indice',
- headers : 'Intestazione',
- headersNone : 'Nessuna',
- headersColumn : 'Prima Colonna',
- headersRow : 'Prima Riga',
- headersBoth : 'Entrambe',
- invalidRows : 'Il numero di righe dev\'essere un numero maggiore di 0.',
- invalidCols : 'Il numero di colonne dev\'essere un numero maggiore di 0.',
- invalidBorder : 'La dimensione del bordo dev\'essere un numero.',
- invalidWidth : 'La larghezza della tabella dev\'essere un numero.',
- invalidHeight : 'L\'altezza della tabella dev\'essere un numero.',
- invalidCellSpacing : 'La spaziatura tra le celle dev\'essere un numero.',
- invalidCellPadding : 'Il pagging delle celle dev\'essere un numero',
-
- cell :
- {
- menu : 'Cella',
- insertBefore : 'Inserisci Cella Prima',
- insertAfter : 'Inserisci Cella Dopo',
- deleteCell : 'Elimina celle',
- merge : 'Unisce celle',
- mergeRight : 'Unisci a Destra',
- mergeDown : 'Unisci in Basso',
- splitHorizontal : 'Dividi Cella Orizzontalmente',
- splitVertical : 'Dividi Cella Verticalmente',
- title : 'Proprietà della cella',
- cellType : 'Tipo di cella',
- rowSpan : 'Su più righe',
- colSpan : 'Su più colonne',
- wordWrap : 'Ritorno a capo',
- hAlign : 'Allineamento orizzontale',
- vAlign : 'Allineamento verticale',
- alignTop : 'In Alto',
- alignMiddle : 'Al Centro',
- alignBottom : 'In Basso',
- alignBaseline : 'Linea Base',
- bgColor : 'Colore di Sfondo',
- borderColor : 'Colore del Bordo',
- data : 'Dati',
- header : 'Intestazione',
- yes : 'Si',
- no : 'No',
- invalidWidth : 'La larghezza della cella dev\'essere un numero.',
- invalidHeight : 'L\'altezza della cella dev\'essere un numero.',
- invalidRowSpan : 'Il numero di righe dev\'essere un numero intero.',
- invalidColSpan : 'Il numero di colonne dev\'essere un numero intero.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Riga',
- insertBefore : 'Inserisci Riga Prima',
- insertAfter : 'Inserisci Riga Dopo',
- deleteRow : 'Elimina righe'
- },
-
- column :
- {
- menu : 'Colonna',
- insertBefore : 'Inserisci Colonna Prima',
- insertAfter : 'Inserisci Colonna Dopo',
- deleteColumn : 'Elimina colonne'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Proprietà bottone',
- text : 'Testo (Value)',
- type : 'Tipo',
- typeBtn : 'Bottone',
- typeSbm : 'Invio',
- typeRst : 'Annulla'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Proprietà checkbox',
- radioTitle : 'Proprietà radio button',
- value : 'Valore',
- selected : 'Selezionato'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Proprietà modulo',
- menu : 'Proprietà modulo',
- action : 'Azione',
- method : 'Metodo',
- encoding : 'Codifica'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Proprietà menu di selezione',
- selectInfo : 'Info',
- opAvail : 'Opzioni disponibili',
- value : 'Valore',
- size : 'Dimensione',
- lines : 'righe',
- chkMulti : 'Permetti selezione multipla',
- opText : 'Testo',
- opValue : 'Valore',
- btnAdd : 'Aggiungi',
- btnModify : 'Modifica',
- btnUp : 'Su',
- btnDown : 'Gi',
- btnSetValue : 'Imposta come predefinito',
- btnDelete : 'Rimuovi'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Proprietà area di testo',
- cols : 'Colonne',
- rows : 'Righe'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Proprietà campo di testo',
- name : 'Nome',
- value : 'Valore',
- charWidth : 'Larghezza',
- maxChars : 'Numero massimo di caratteri',
- type : 'Tipo',
- typeText : 'Testo',
- typePass : 'Password'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Proprietà campo nascosto',
- name : 'Nome',
- value : 'Valore'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Proprietà immagine',
- titleButton : 'Proprietà bottone immagine',
- menu : 'Proprietà immagine',
- infoTab : 'Informazioni immagine',
- btnUpload : 'Invia al server',
- upload : 'Carica',
- alt : 'Testo alternativo',
- width : 'Larghezza',
- height : 'Altezza',
- lockRatio : 'Blocca rapporto',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Reimposta dimensione',
- border : 'Bordo',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Allineamento',
- alignLeft : 'Sinistra',
- alignRight : 'Destra',
- alertUrl : 'Devi inserire l\'URL per l\'immagine',
- linkTab : 'Collegamento',
- button2Img : 'Vuoi trasformare il bottone immagine selezionato in un\'immagine semplice?',
- img2Button : 'Vuoi trasferomare l\'immagine selezionata in un bottone immagine?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Proprietà Oggetto Flash',
- propertiesTab : 'Proprietà ',
- title : 'Proprietà Oggetto Flash',
- chkPlay : 'Avvio Automatico',
- chkLoop : 'Riavvio automatico',
- chkMenu : 'Abilita Menu di Flash',
- chkFull : 'Permetti la modalità tutto schermo',
- scale : 'Ridimensiona',
- scaleAll : 'Mostra Tutto',
- scaleNoBorder : 'Senza Bordo',
- scaleFit : 'Dimensione Esatta',
- access : 'Accesso Script',
- accessAlways : 'Sempre',
- accessSameDomain: 'Solo stesso dominio',
- accessNever : 'Mai',
- align : 'Allineamento',
- alignLeft : 'Sinistra',
- alignAbsBottom : 'In basso assoluto',
- alignAbsMiddle : 'Centrato assoluto',
- alignBaseline : 'Linea base',
- alignBottom : 'In Basso',
- alignMiddle : 'Centrato',
- alignRight : 'Destra',
- alignTextTop : 'In alto al testo',
- alignTop : 'In Alto',
- quality : 'Qualità ',
- qualityBest : 'Massima',
- qualityHigh : 'Alta',
- qualityAutoHigh : 'Alta Automatica',
- qualityMedium : 'Intermedia',
- qualityAutoLow : 'Bassa Automatica',
- qualityLow : 'Bassa',
- windowModeWindow: 'Finestra',
- windowModeOpaque: 'Opaca',
- windowModeTransparent : 'Trasparente',
- windowMode : 'Modalità finestra',
- flashvars : 'Variabili per Flash',
- bgcolor : 'Colore sfondo',
- width : 'Larghezza',
- height : 'Altezza',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Devi inserire l\'URL del collegamento',
- validateWidth : 'La Larghezza dev\'essere un numero',
- validateHeight : 'L\'altezza dev\'essere un numero',
- validateHSpace : 'L\'HSpace dev\'essere un numero.',
- validateVSpace : 'Il VSpace dev\'essere un numero.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Correttore ortografico',
- title : 'Controllo ortografico',
- notAvailable : 'Il servizio non è momentaneamente disponibile.',
- errorLoading : 'Errore nel caricamento dell\'host col servizio applicativo: %s.',
- notInDic : 'Non nel dizionario',
- changeTo : 'Cambia in',
- btnIgnore : 'Ignora',
- btnIgnoreAll : 'Ignora tutto',
- btnReplace : 'Cambia',
- btnReplaceAll : 'Cambia tutto',
- btnUndo : 'Annulla',
- noSuggestions : '- Nessun suggerimento -',
- progress : 'Controllo ortografico in corso',
- noMispell : 'Controllo ortografico completato: nessun errore trovato',
- noChanges : 'Controllo ortografico completato: nessuna parola cambiata',
- oneChange : 'Controllo ortografico completato: 1 parola cambiata',
- manyChanges : 'Controllo ortografico completato: %1 parole cambiate',
- ieSpellDownload : 'Contollo ortografico non installato. Lo vuoi scaricare ora?'
- },
-
- smiley :
- {
- toolbar : 'Emoticon',
- title : 'Inserisci emoticon',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 elemento'
- },
-
- numberedlist : 'Elenco numerato',
- bulletedlist : 'Elenco puntato',
- indent : 'Aumenta rientro',
- outdent : 'Riduci rientro',
-
- justify :
- {
- left : 'Allinea a sinistra',
- center : 'Centra',
- right : 'Allinea a destra',
- block : 'Giustifica'
- },
-
- blockquote : 'Citazione',
-
- clipboard :
- {
- title : 'Incolla',
- cutError : 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).',
- copyError : 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).',
- pasteMsg : 'Incolla il testo all\'interno dell\'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.',
- securityMsg : 'A causa delle impostazioni di sicurezza del browser,l\'editor non è in grado di accedere direttamente agli appunti. E\' pertanto necessario incollarli di nuovo in questa finestra.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?',
- toolbar : 'Incolla da Word',
- title : 'Incolla da Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Incolla come testo semplice',
- title : 'Incolla come testo semplice'
- },
-
- templates :
- {
- button : 'Modelli',
- title : 'Contenuto dei modelli',
- options : 'Template Options', // MISSING
- insertOption : 'Cancella il contenuto corrente',
- selectPromptMsg : 'Seleziona il modello da aprire nell\'editor<br />(il contenuto attuale verrà eliminato):',
- emptyListMsg : '(Nessun modello definito)'
- },
-
- showBlocks : 'Visualizza Blocchi',
-
- stylesCombo :
- {
- label : 'Stile',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Stili per blocchi',
- panelTitle2 : 'Stili in linea',
- panelTitle3 : 'Stili per oggetti'
- },
-
- format :
- {
- label : 'Formato',
- panelTitle : 'Formato',
-
- tag_p : 'Normale',
- tag_pre : 'Formattato',
- tag_address : 'Indirizzo',
- tag_h1 : 'Titolo 1',
- tag_h2 : 'Titolo 2',
- tag_h3 : 'Titolo 3',
- tag_h4 : 'Titolo 4',
- tag_h5 : 'Titolo 5',
- tag_h6 : 'Titolo 6',
- tag_div : 'Paragrafo (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font',
- panelTitle : 'Font'
- },
-
- fontSize :
- {
- label : 'Dimensione',
- voiceLabel : 'Dimensione Font',
- panelTitle : 'Dimensione'
- },
-
- colorButton :
- {
- textColorTitle : 'Colore testo',
- bgColorTitle : 'Colore sfondo',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatico',
- more : 'Altri colori...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Controllo Ortografico Mentre Scrivi',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Abilita COMS',
- disable : 'Disabilita COMS',
- about : 'About COMS',
- toggle : 'Inverti abilitazione SCOMS',
- options : 'Opzioni',
- langs : 'Lingue',
- moreSuggestions : 'Altri suggerimenti',
- ignore : 'Ignora',
- ignoreAll : 'Ignora tutti',
- addWord : 'Aggiungi Parola',
- emptyDic : 'Il nome del dizionario non può essere vuoto.',
-
- optionsTab : 'Opzioni',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Lingue',
-
- dictionariesTab : 'Dizionari',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About'
- },
-
- about :
- {
- title : 'About CKEditor',
- dlgTitle : 'About CKEditor',
- moreInfo : 'Per le informazioni sulla licenza si prega di visitare il nostro sito:',
- copy : 'Copyright © $1. Tutti i diritti riservati.'
- },
-
- maximize : 'Massimizza',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Ancora',
- flash : 'Animazione Flash',
- div : 'Interruzione di Pagina',
- unknown : 'Oggetto sconosciuto'
- },
-
- resize : 'Trascina per ridimensionare',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Italian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'it' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Premi ALT 0 per aiuto',
+
+ browseServer: 'Cerca sul server',
+ url: 'URL',
+ protocol: 'Protocollo',
+ upload: 'Carica',
+ uploadSubmit: 'Invia al server',
+ image: 'Immagine',
+ flash: 'Oggetto Flash',
+ form: 'Modulo',
+ checkbox: 'Checkbox',
+ radio: 'Radio Button',
+ textField: 'Campo di testo',
+ textarea: 'Area di testo',
+ hiddenField: 'Campo nascosto',
+ button: 'Bottone',
+ select: 'Menu di selezione',
+ imageButton: 'Bottone immagine',
+ notSet: '<non impostato>',
+ id: 'Id',
+ name: 'Nome',
+ langDir: 'Direzione scrittura',
+ langDirLtr: 'Da Sinistra a Destra (LTR)',
+ langDirRtl: 'Da Destra a Sinistra (RTL)',
+ langCode: 'Codice Lingua',
+ longDescr: 'URL descrizione estesa',
+ cssClass: 'Nome classe CSS',
+ advisoryTitle: 'Titolo',
+ cssStyle: 'Stile',
+ ok: 'OK',
+ cancel: 'Annulla',
+ close: 'Chiudi',
+ preview: 'Anteprima',
+ resize: 'Trascina per ridimensionare',
+ generalTab: 'Generale',
+ advancedTab: 'Avanzate',
+ validateNumberFailed: 'Il valore inserito non è un numero.',
+ confirmNewPage: 'Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?',
+ confirmCancel: 'Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?',
+ options: 'Opzioni',
+ target: 'Destinazione',
+ targetNew: 'Nuova finestra (_blank)',
+ targetTop: 'Finestra in primo piano (_top)',
+ targetSelf: 'Stessa finestra (_self)',
+ targetParent: 'Finestra Padre (_parent)',
+ langDirLTR: 'Da sinistra a destra (LTR)',
+ langDirRTL: 'Da destra a sinistra (RTL)',
+ styles: 'Stile',
+ cssClasses: 'Classi di stile',
+ width: 'Larghezza',
+ height: 'Altezza',
+ align: 'Allineamento',
+ alignLeft: 'Sinistra',
+ alignRight: 'Destra',
+ alignCenter: 'Centrato',
+ alignTop: 'In Alto',
+ alignMiddle: 'Centrato',
+ alignBottom: 'In Basso',
+ invalidValue : 'Valore non valido.',
+ invalidHeight: 'L\'altezza dev\'essere un numero',
+ invalidWidth: 'La Larghezza dev\'essere un numero',
+ invalidCssLength: 'Il valore indicato per il campo "%1" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).',
+ invalidHtmlLength: 'Il valore indicato per il campo "%1" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).',
+ invalidInlineStyle: 'Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di "name : value", separati da semicolonne.',
+ cssLengthTooltip: 'Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, non disponibile</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ja.js b/devel/third-party/ckeditor/lang/ja.js
index a006c8b..78eed72 100644
--- a/devel/third-party/ckeditor/lang/ja.js
+++ b/devel/third-party/ckeditor/lang/ja.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Japanese language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ja'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'ã½ã¼ã¹',
- newPage : 'æ°ãããã¼ã¸',
- save : 'ä¿å',
- preview : 'ãã¬ãã¥ã¼',
- cut : 'åãåã',
- copy : 'ã³ãã¼',
- paste : 'è²¼ãä»ã',
- print : 'å°å·',
- underline : 'ä¸ç·',
- bold : '太å',
- italic : 'æä½',
- selectAll : 'ãã¹ã¦é¸æ',
- removeFormat : 'ãã©ã¼ãããåé¤',
- strike : 'æã¡æ¶ãç·',
- subscript : 'æ·»ãå',
- superscript : 'ä¸ä»ãæå',
- horizontalrule : '横罫ç·',
- pagebreak : 'æ¹ãã¼ã¸æ¿å
¥',
- unlink : 'ãªã³ã¯åé¤',
- undo : 'å
ã«æ»ã',
- redo : 'ããç´ã',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ãµã¼ãã¼ãã©ã¦ã¶ã¼',
- url : 'URL',
- protocol : 'ãããã³ã«',
- upload : 'ã¢ãããã¼ã',
- uploadSubmit : 'ãµã¼ãã¼ã«éä¿¡',
- image : 'ã¤ã¡ã¼ã¸',
- flash : 'Flash',
- form : 'ãã©ã¼ã ',
- checkbox : 'ãã§ãã¯ããã¯ã¹',
- radio : 'ã©ã¸ãªãã¿ã³',
- textField : 'ï¼è¡ããã¹ã',
- textarea : 'ããã¹ãã¨ãªã¢',
- hiddenField : 'ä¸å¯è¦ãã£ã¼ã«ã',
- button : 'ãã¿ã³',
- select : '鏿ãã£ã¼ã«ã',
- imageButton : 'ç»åãã¿ã³',
- notSet : '<ãªã>',
- id : 'Id',
- name : 'Name屿§',
- langDir : 'æå表è¨ã®æ¹å',
- langDirLtr : 'å·¦ããå³ (LTR)',
- langDirRtl : 'å³ããå·¦ (RTL)',
- langCode : 'è¨èªã³ã¼ã',
- longDescr : 'longdesc屿§(é·æèª¬æ)',
- cssClass : 'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',
- advisoryTitle : 'Title屿§',
- cssStyle : 'ã¹ã¿ã¤ã«ã·ã¼ã',
- ok : 'OK',
- cancel : 'ãã£ã³ã»ã«',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'å
¨è¬',
- advancedTab : 'é«åº¦ãªè¨å®',
- validateNumberFailed : 'å¤ãæ°ã§ã¯ããã¾ãã',
- confirmNewPage : '夿´å
容ãä¿åããã æ°ãããã¼ã¸ãéãã¦ãããããã§ããããï¼',
- confirmCancel : 'ãªãã·ã§ã³è¨å®ã夿´ãã¾ããããã¤ã¢ãã°ãéãã¦ãããããã§ããããï¼',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, å©ç¨ä¸å¯è½</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ç¹æ®æåæ¿å
¥',
- title : 'ç¹æ®æå鏿',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'ãªã³ã¯æ¿å
¥/ç·¨é',
- other : '<ãã®ä»ã®>',
- menu : 'ãªã³ã¯ç·¨é',
- title : 'ãã¤ãã¼ãªã³ã¯',
- info : 'ãã¤ãã¼ãªã³ã¯ æ
å ±',
- target : 'ã¿ã¼ã²ãã',
- upload : 'ã¢ãããã¼ã',
- advanced : 'é«åº¦ãªè¨å®',
- type : 'ãªã³ã¯ã¿ã¤ã',
- toUrl : 'URL', // MISSING
- toAnchor : 'ãã®ãã¼ã¸ã®ã¢ã³ã«ã¼',
- toEmail : 'E-Mail',
- targetFrame : '<ãã¬ã¼ã >',
- targetPopup : '<ãããã¢ããã¦ã£ã³ãã¦>',
- targetFrameName : 'ç®çã®ãã¬ã¼ã å',
- targetPopupName : 'ãããã¢ããã¦ã£ã³ãã¦å',
- popupFeatures : 'ãããã¢ããã¦ã£ã³ãã¦ç¹å¾´',
- popupResizable : 'ãµã¤ãºå¯å¤',
- popupStatusBar : 'ã¹ãã¼ã¿ã¹ãã¼',
- popupLocationBar: 'ãã±ã¼ã·ã§ã³ãã¼',
- popupToolbar : 'ãã¼ã«ãã¼',
- popupMenuBar : 'ã¡ãã¥ã¼ãã¼',
- popupFullScreen : 'å
¨ç»é¢ã¢ã¼ã(IE)',
- popupScrollBars : 'ã¹ã¯ãã¼ã«ãã¼',
- popupDependent : 'éããã¦ã£ã³ãã¦ã«é£åãã¦éãã (Netscape)',
- popupWidth : 'å¹
',
- popupLeft : '左端ããã®åº§æ¨ã§æå®',
- popupHeight : 'é«ã',
- popupTop : 'ä¸ç«¯ããã®åº§æ¨ã§æå®',
- id : 'Id',
- langDir : 'æå表è¨ã®æ¹å',
- langDirLTR : 'å·¦ããå³ (LTR)',
- langDirRTL : 'å³ããå·¦ (RTL)',
- acccessKey : 'ã¢ã¯ã»ã¹ãã¼',
- name : 'Name屿§',
- langCode : 'æå表è¨ã®æ¹å',
- tabIndex : 'ã¿ãã¤ã³ããã¯ã¹',
- advisoryTitle : 'Title屿§',
- advisoryContentType : 'Content Type屿§',
- cssClasses : 'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',
- charset : 'ãªã³ã¯charset屿§',
- styles : 'ã¹ã¿ã¤ã«ã·ã¼ã',
- selectAnchor : 'ã¢ã³ã«ã¼ã鏿',
- anchorName : 'ã¢ã³ã«ã¼å',
- anchorId : 'ã¨ã¬ã¡ã³ãID',
- emailAddress : 'E-Mail ã¢ãã¬ã¹',
- emailSubject : 'ä»¶å',
- emailBody : 'æ¬æ',
- noAnchors : '(ããã¥ã¡ã³ãã«ããã¦å©ç¨å¯è½ãªã¢ã³ã«ã¼ã¯ããã¾ããã)',
- noUrl : 'ãªã³ã¯URLãå
¥åãã¦ãã ããã',
- noEmail : 'ã¡ã¼ã«ã¢ãã¬ã¹ãå
¥åãã¦ãã ããã'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'ã¢ã³ã«ã¼æ¿å
¥/ç·¨é',
- menu : 'ã¢ã³ã«ã¼ ããããã£',
- title : 'ã¢ã³ã«ã¼ ããããã£',
- name : 'ã¢ã³ã«ã¼å',
- errorName : 'ã¢ã³ã«ã¼åãå¿
ãå
¥åãã¦ãã ããã'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'æ¤ç´¢ãã¦ç½®æ',
- find : 'æ¤ç´¢',
- replace : 'ç½®ãæã',
- findWhat : 'æ¤ç´¢ããæåå:',
- replaceWith : 'ç½®æãããæåå:',
- notFoundMsg : 'æå®ãããæååã¯è¦ã¤ããã¾ããã§ããã',
- matchCase : '大æåã¨å°æåãåºå¥ãã',
- matchWord : 'åèªåä½ã§æ¢ã',
- matchCyclic : 'ä¸å¨ãã',
- replaceAll : 'ãã¹ã¦ç½®æã',
- replaceSuccessMsg : '%1 åç½®æãã¾ããã'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'ãã¼ãã«',
- title : 'ãã¼ãã« ããããã£',
- menu : 'ãã¼ãã« ããããã£',
- deleteTable : 'ãã¼ãã«åé¤',
- rows : 'è¡',
- columns : 'å',
- border : 'ãã¼ãã¼ãµã¤ãº',
- align : 'ãã¼ãã«ã®æ´å',
- alignLeft : 'å·¦',
- alignCenter : 'ä¸å¤®',
- alignRight : 'å³',
- width : 'å¹
',
- widthPx : 'ãã¯ã»ã«',
- widthPc : 'ãã¼ã»ã³ã',
- widthUnit : 'width unit', // MISSING
- height : 'é«ã',
- cellSpace : 'ã»ã«å
ä½ç½',
- cellPad : 'ã»ã«å
éé',
- caption : 'ãã£ãã·ã§ã³',
- summary : 'ãã¼ãã«ã®æ¦è¦',
- headers : 'ãã¼ãã«ããã(th)',
- headersNone : 'ãªã',
- headersColumn : 'åãã®åã®ã¿',
- headersRow : 'åãã®è¡ã®ã¿',
- headersBoth : '両æ¹',
- invalidRows : 'è¡ã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã',
- invalidCols : 'åã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã',
- invalidBorder : 'ãã¼ãã¼ãµã¤ãºã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidWidth : 'å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidHeight : 'é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidCellSpacing : 'ã»ã«å
ä½ç½ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidCellPadding : 'ã»ã«å
ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',
-
- cell :
- {
- menu : 'ã»ã«',
- insertBefore : 'ã»ã«ã®åã«æ¿å
¥',
- insertAfter : 'ã»ã«ã®å¾ã«æ¿å
¥',
- deleteCell : 'ã»ã«åé¤',
- merge : 'ã»ã«çµå',
- mergeRight : 'å³ã«çµå',
- mergeDown : 'ä¸ã«çµå',
- splitHorizontal : 'ã»ã«ãæ°´å¹³æ¹ååå²',
- splitVertical : 'ã»ã«ãåç´æ¹åã«åå²',
- title : 'ã»ã«ããããã£',
- cellType : 'ã»ã«ã¿ã¤ã',
- rowSpan : '縦å¹
(è¡æ°)',
- colSpan : '横å¹
(åæ°)',
- wordWrap : 'æãè¿ã',
- hAlign : 'ã»ã«æ¨ªã®æ´å',
- vAlign : 'ã»ã«ç¸¦ã®æ´å',
- alignTop : 'ä¸',
- alignMiddle : 'ä¸å¤®',
- alignBottom : 'ä¸',
- alignBaseline : 'ãã¼ã¹ã©ã¤ã³',
- bgColor : 'èæ¯è²',
- borderColor : 'ãã¼ãã¼ã«ã©ã¼',
- data : 'ãã¼ãã«ãã¼ã¿(td)',
- header : 'ãã¼ãã«ããã(th)',
- yes : 'Yes',
- no : 'No',
- invalidWidth : 'ã»ã«å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidHeight : 'ã»ã«é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidRowSpan : '縦å¹
(è¡æ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- invalidColSpan : '横å¹
(åæ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- chooseColor : 'è²ã®é¸æ'
- },
-
- row :
- {
- menu : 'è¡',
- insertBefore : 'è¡ã®åã«æ¿å
¥',
- insertAfter : 'è¡ã®å¾ã«æ¿å
¥',
- deleteRow : 'è¡åé¤'
- },
-
- column :
- {
- menu : 'ã«ã©ã ',
- insertBefore : 'ã«ã©ã ã®åã«æ¿å
¥',
- insertAfter : 'ã«ã©ã ã®å¾ã«æ¿å
¥',
- deleteColumn : 'ååé¤'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ãã¿ã³ ããããã£',
- text : 'ããã¹ã (å¤)',
- type : 'ã¿ã¤ã',
- typeBtn : 'ãã¿ã³',
- typeSbm : 'éä¿¡',
- typeRst : 'ãªã»ãã'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ãã§ãã¯ããã¯ã¹ ããããã£',
- radioTitle : 'ã©ã¸ãªãã¿ã³ ããããã£',
- value : 'å¤',
- selected : '鏿æ¸ã¿'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ãã©ã¼ã ããããã£',
- menu : 'ãã©ã¼ã ããããã£',
- action : 'ã¢ã¯ã·ã§ã³',
- method : 'ã¡ã½ãã',
- encoding : 'ã¨ã³ã³ã¼ãã£ã³ã°'
- },
-
- // Select Field Dialog.
- select :
- {
- title : '鏿ãã£ã¼ã«ã ããããã£',
- selectInfo : 'æ
å ±',
- opAvail : 'å©ç¨å¯è½ãªãªãã·ã§ã³',
- value : '鏿é
ç®å¤',
- size : 'ãµã¤ãº',
- lines : 'è¡',
- chkMulti : 'è¤æ°é
ç®é¸æã許å¯',
- opText : '鏿é
ç®å',
- opValue : 'å¤',
- btnAdd : '追å ',
- btnModify : 'ç·¨é',
- btnUp : 'ä¸ã¸',
- btnDown : 'ä¸ã¸',
- btnSetValue : '鏿ããå¤ãè¨å®',
- btnDelete : 'åé¤'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ããã¹ãã¨ãªã¢ ããããã£',
- cols : 'å',
- rows : 'è¡'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ï¼è¡ããã¹ã ããããã£',
- name : 'åå',
- value : 'å¤',
- charWidth : 'ãµã¤ãº',
- maxChars : 'æå¤§é·',
- type : 'ã¿ã¤ã',
- typeText : 'ããã¹ã',
- typePass : 'ãã¹ã¯ã¼ãå
¥å'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ä¸å¯è¦ãã£ã¼ã«ã ããããã£',
- name : 'åå',
- value : 'å¤'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ã¤ã¡ã¼ã¸ ããããã£',
- titleButton : 'ç»åãã¿ã³ ããããã£',
- menu : 'ã¤ã¡ã¼ã¸ ããããã£',
- infoTab : 'ã¤ã¡ã¼ã¸ æ
å ±',
- btnUpload : 'ãµã¼ãã¼ã«éä¿¡',
- upload : 'ã¢ãããã¼ã',
- alt : '代æ¿ããã¹ã',
- width : 'å¹
',
- height : 'é«ã',
- lockRatio : 'ããã¯æ¯ç',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'ãµã¤ãºãªã»ãã',
- border : 'ãã¼ãã¼',
- hSpace : '横éé',
- vSpace : '縦éé',
- align : 'è¡æã',
- alignLeft : 'å·¦',
- alignRight : 'å³',
- alertUrl : 'ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã',
- linkTab : 'ãªã³ã¯',
- button2Img : '鏿ãããã¿ã³ãç»åã«ç½®ãæãã¾ããï¼',
- img2Button : '鏿ããç»åããã¿ã³ã«ç½®ãæãã¾ããï¼',
- urlMissing : 'ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash ããããã£',
- propertiesTab : 'ããããã£',
- title : 'Flash ããããã£',
- chkPlay : 'åç',
- chkLoop : 'ã«ã¼ãåç',
- chkMenu : 'Flashã¡ãã¥ã¼å¯è½',
- chkFull : 'ãã«ã¹ã¯ãªã¼ã³è¨±å¯',
- scale : 'æ¡å¤§ç¸®å°è¨å®',
- scaleAll : 'ãã¹ã¦è¡¨ç¤º',
- scaleNoBorder : 'å¤ãè¦ããªãæ§ã«æ¡å¤§',
- scaleFit : 'ä¸ä¸å·¦å³ã«ãã£ãã',
- access : 'ã¹ããªã¯ãã¢ã¯ã»ã¹(AllowScriptAccess)',
- accessAlways : 'ãã¹ã¦ã®å ´åã«éä¿¡å¯è½(Always)',
- accessSameDomain: 'åä¸ãã¡ã¤ã³ã®ã¿ã«éä¿¡å¯è½(Same domain)',
- accessNever : 'ãã¹ã¦ã®å ´åã«éä¿¡ä¸å¯è½(Never)',
- align : 'è¡æã',
- alignLeft : 'å·¦',
- alignAbsBottom : 'ä¸é¨(絶対ç)',
- alignAbsMiddle : 'ä¸å¤®(絶対ç)',
- alignBaseline : 'ãã¼ã¹ã©ã¤ã³',
- alignBottom : 'ä¸',
- alignMiddle : 'ä¸å¤®',
- alignRight : 'å³',
- alignTextTop : 'ããã¹ãä¸é¨',
- alignTop : 'ä¸',
- quality : 'ç»è³ª',
- qualityBest : 'å質åªå
',
- qualityHigh : 'é«',
- qualityAutoHigh : 'èªå/é«',
- qualityMedium : 'ä¸',
- qualityAutoLow : 'èªå/ä½',
- qualityLow : 'ä½',
- windowModeWindow: 'æ¨æº',
- windowModeOpaque: 'èæ¯ãä¸éæè¨å®',
- windowModeTransparent : 'èæ¯ãééè¨å®',
- windowMode : 'ã¦ã£ã³ãã¦ã¢ã¼ã',
- flashvars : 'ãã©ãã·ã¥ã«æ¸¡ã夿°(FlashVars)',
- bgcolor : 'èæ¯è²',
- width : 'å¹
',
- height : 'é«ã',
- hSpace : '横éé',
- vSpace : '縦éé',
- validateSrc : 'ãªã³ã¯URLãå
¥åãã¦ãã ããã',
- validateWidth : 'å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- validateHeight : 'é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- validateHSpace : '横ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',
- validateVSpace : '縦ééã¯æ°å¤ã§å
¥åãã¦ãã ããã'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ã¹ãã«ãã§ãã¯',
- title : 'ã¹ãã«ãã§ãã¯',
- notAvailable : 'ç³ã訳ããã¾ãããç¾å¨ãµã¼ãã¹ãå©ç¨ãããã¨ãã§ãã¾ãã',
- errorLoading : 'ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¹ãã¹ãèªè¾¼ã¿ã¨ã©ã¼: %s.',
- notInDic : 'è¾æ¸ã«ããã¾ãã',
- changeTo : '夿´',
- btnIgnore : 'ç¡è¦',
- btnIgnoreAll : 'ãã¹ã¦ç¡è¦',
- btnReplace : 'ç½®æ',
- btnReplaceAll : 'ãã¹ã¦ç½®æ',
- btnUndo : 'ããç´ã',
- noSuggestions : '- 該å½ãªã -',
- progress : 'ã¹ãã«ãã§ãã¯å¦çä¸...',
- noMispell : 'ã¹ãã«ãã§ãã¯å®äº: ã¹ãã«ã®èª¤ãã¯ããã¾ããã§ãã',
- noChanges : 'ã¹ãã«ãã§ãã¯å®äº: èªå¥ã¯å¤æ´ããã¾ããã§ãã',
- oneChange : 'ã¹ãã«ãã§ãã¯å®äº: ï¼èªå¥å¤æ´ããã¾ãã',
- manyChanges : 'ã¹ãã«ãã§ãã¯å®äº: %1 èªå¥å¤æ´ããã¾ãã',
- ieSpellDownload : 'ã¹ãã«ãã§ãã«ã¼ãã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãããä»ãããã¦ã³ãã¼ããã¾ãã?'
- },
-
- smiley :
- {
- toolbar : 'çµµæå',
- title : 'é¡æåæ¿å
¥',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 ã¨ã¬ã¡ã³ã'
- },
-
- numberedlist : '段è½çªå·',
- bulletedlist : 'ç®æ¡æ¸ã',
- indent : 'ã¤ã³ãã³ã',
- outdent : 'ã¤ã³ãã³ãè§£é¤',
-
- justify :
- {
- left : 'å·¦æã',
- center : 'ä¸å¤®æã',
- right : '峿ã',
- block : '両端æã'
- },
-
- blockquote : 'ãããã¯å¼ç¨',
-
- clipboard :
- {
- title : 'è²¼ãä»ã',
- cutError : 'ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®åãåãæä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+X)ã使ç¨ãã¦ãã ããã',
- copyError : 'ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®ã³ãã¼æä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+C)ã使ç¨ãã¦ãã ããã',
- pasteMsg : 'ãã¼ãã¼ã(<STRONG>Ctrl/Cmd+V</STRONG>)ã使ç¨ãã¦ã次ã®å
¥åã¨ãªã¢å
ã§è²¼ã£ã¦ã<STRONG>OK</STRONG>ãæ¼ãã¦ãã ããã',
- securityMsg : 'ãã©ã¦ã¶ã®ã»ãã¥ãªãã£è¨å®ã«ãããã¨ãã£ã¿ã¯ã¯ãªãããã¼ãã»ãã¼ã¿ã«ç´æ¥ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ããããã®ã¦ã£ã³ãã¦ã¯è²¼ãä»ãæä½ãè¡ã度ã«è¡¨ç¤ºããã¾ãã',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'è²¼ãä»ããè¡ãããã¹ãã¯ãã¯ã¼ãæç« ããã³ãã¼ããããã¨ãã¦ãã¾ããè²¼ãä»ããåã«ã¯ãªã¼ãã³ã°ãè¡ãã¾ããï¼',
- toolbar : 'ã¯ã¼ãæç« ããè²¼ãä»ã',
- title : 'ã¯ã¼ãæç« ããè²¼ãä»ã',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'ãã¬ã¼ã³ããã¹ãè²¼ãä»ã',
- title : 'ãã¬ã¼ã³ããã¹ãè²¼ãä»ã'
- },
-
- templates :
- {
- button : 'ãã³ãã¬ã¼ã(éå½¢)',
- title : 'ãã³ãã¬ã¼ãå
容',
- options : 'Template Options', // MISSING
- insertOption : 'ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¨ç½®æãããã¾ã',
- selectPromptMsg : 'ã¨ãã£ã¿ã¼ã§ä½¿ç¨ãããã³ãã¬ã¼ãã鏿ãã¦ãã ããã<br>(ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¯å¤±ããã¾ã):',
- emptyListMsg : '(ãã³ãã¬ã¼ããå®ç¾©ããã¦ãã¾ãã)'
- },
-
- showBlocks : 'ãããã¯è¡¨ç¤º',
-
- stylesCombo :
- {
- label : 'ã¹ã¿ã¤ã«',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'ãããã¯ã¹ã¿ã¤ã«',
- panelTitle2 : 'ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«',
- panelTitle3 : 'ãªãã¸ã§ã¯ãã¹ã¿ã¤ã«'
- },
-
- format :
- {
- label : 'ãã©ã¼ããã',
- panelTitle : 'ãã©ã¼ããã',
-
- tag_p : 'æ¨æº',
- tag_pre : 'æ¸å¼ä»ã',
- tag_address : 'ã¢ãã¬ã¹',
- tag_h1 : 'è¦åºã 1',
- tag_h2 : 'è¦åºã 2',
- tag_h3 : 'è¦åºã 3',
- tag_h4 : 'è¦åºã 4',
- tag_h5 : 'è¦åºã 5',
- tag_h6 : 'è¦åºã 6',
- tag_div : 'æ¨æº (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ãã©ã³ã',
- voiceLabel : 'ãã©ã³ã',
- panelTitle : 'ãã©ã³ã'
- },
-
- fontSize :
- {
- label : 'ãµã¤ãº',
- voiceLabel : 'ãã©ã³ããµã¤ãº',
- panelTitle : 'ãµã¤ãº'
- },
-
- colorButton :
- {
- textColorTitle : 'ããã¹ãè²',
- bgColorTitle : 'èæ¯è²',
- panelTitle : 'Colors', // MISSING
- auto : 'èªå',
- more : 'ãã®ä»ã®è²...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'ã¹ãã«ãã§ãã¯è¨å®(SCAYT)',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'SCAYTæå¹',
- disable : 'SCAYTç¡å¹',
- about : 'SCAYTï¾ï¾ï½°ï½¼ï¾ï½®ï¾',
- toggle : 'SCAYTåæ¿',
- options : 'ãªãã·ã§ã³',
- langs : 'è¨èª',
- moreSuggestions : 'ä»ã®åè£',
- ignore : 'ç¡è¦',
- ignoreAll : 'ãã¹ã¦ç¡è¦',
- addWord : 'èªå¥è¿½å ',
- emptyDic : 'è¾æ¸åã¯å¿
ãå
¥åãã¦ãã ãã',
-
- optionsTab : 'ãªãã·ã§ã³',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'è¨èª',
-
- dictionariesTab : 'è¾æ¸',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'ãã¼ã¸ã§ã³æ
å ±'
- },
-
- about :
- {
- title : 'CKEditorãã¼ã¸ã§ã³æ
å ±',
- dlgTitle : 'CKEditorãã¼ã¸ã§ã³æ
å ±',
- moreInfo : 'ã©ã¤ã»ã³ã¹æ
å ±ã®è©³ç´°ã¯ã¦ã§ããµã¤ãã«ã¦ç¢ºèªãã¦ãã ãã:',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'æå¤§å',
- minimize : 'æå°å',
-
- fakeobjects :
- {
- anchor : 'ã¢ã³ã«ã¼',
- flash : 'Flash Animation',
- div : 'Page Break',
- unknown : 'Unknown Object'
- },
-
- resize : 'ãã©ãã°ãã¦ãªãµã¤ãº',
-
- colordialog :
- {
- title : 'è²é¸æ',
- options : 'Color Options', // MISSING
- highlight : 'ãã¤ã©ã¤ã',
- selected : '鏿ãããè²',
- clear : 'ã¯ãªã¢'
- },
-
- toolbarCollapse : 'ãã¼ã«ãã¼ãéãã',
- toolbarExpand : 'ãã¼ã«ãã¼ãéã',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Japanese language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ja' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'ãªããããã¹ãã¨ãã£ã¿',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'ãã«ã㯠ALT 0 ãæ¼ãã¦ãã ãã',
+
+ browseServer: 'ãµã¼ãã¼ãã©ã¦ã¶ã¼',
+ url: 'URL',
+ protocol: 'ãããã³ã«',
+ upload: 'ã¢ãããã¼ã',
+ uploadSubmit: 'ãµã¼ãã¼ã«éä¿¡',
+ image: 'ã¤ã¡ã¼ã¸',
+ flash: 'Flash',
+ form: 'ãã©ã¼ã ',
+ checkbox: 'ãã§ãã¯ããã¯ã¹',
+ radio: 'ã©ã¸ãªãã¿ã³',
+ textField: 'ï¼è¡ããã¹ã',
+ textarea: 'ããã¹ãã¨ãªã¢',
+ hiddenField: 'ä¸å¯è¦ãã£ã¼ã«ã',
+ button: 'ãã¿ã³',
+ select: '鏿ãã£ã¼ã«ã',
+ imageButton: 'ç»åãã¿ã³',
+ notSet: '<ãªã>',
+ id: 'Id',
+ name: 'Name屿§',
+ langDir: 'æå表è¨ã®æ¹å',
+ langDirLtr: 'å·¦ããå³ (LTR)',
+ langDirRtl: 'å³ããå·¦ (RTL)',
+ langCode: 'è¨èªã³ã¼ã',
+ longDescr: 'longdesc屿§(é·æèª¬æ)',
+ cssClass: 'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',
+ advisoryTitle: 'Title屿§',
+ cssStyle: 'ã¹ã¿ã¤ã«ã·ã¼ã',
+ ok: 'OK',
+ cancel: 'ãã£ã³ã»ã«',
+ close: 'éãã',
+ preview: 'ãã¬ãã¥ã¼',
+ resize: 'ãã©ãã°ãã¦ãªãµã¤ãº',
+ generalTab: 'å
¨è¬',
+ advancedTab: 'é«åº¦ãªè¨å®',
+ validateNumberFailed: 'å¤ãæ°ã§ã¯ããã¾ãã',
+ confirmNewPage: '夿´å
容ãä¿åããã æ°ãããã¼ã¸ãéãã¦ãããããã§ããããï¼',
+ confirmCancel: 'ãªãã·ã§ã³è¨å®ã夿´ãã¾ããããã¤ã¢ãã°ãéãã¦ãããããã§ããããï¼',
+ options: 'ãªãã·ã§ã³',
+ target: 'ã¿ã¼ã²ãã',
+ targetNew: 'æ°ããã¦ã£ã³ã㦠(_空ç½)',
+ targetTop: 'æä¸é¨ã¦ã£ã³ã㦠(_ããã)',
+ targetSelf: 'åãã¦ã£ã³ã㦠(_åä¸)',
+ targetParent: '親ã¦ã£ã³ã㦠(_親)',
+ langDirLTR: 'å·¦ããå³ (LTR)',
+ langDirRTL: 'å³ããå·¦ (RTL)',
+ styles: 'ã¹ã¿ã¤ã«',
+ cssClasses: 'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',
+ width: 'å¹
',
+ height: 'é«ã',
+ align: 'è¡æã',
+ alignLeft: 'å·¦',
+ alignRight: 'å³',
+ alignCenter: 'ä¸å¤®',
+ alignTop: 'ä¸',
+ alignMiddle: 'ä¸å¤®',
+ alignBottom: 'ä¸',
+ invalidValue : '䏿£ãªå¤ã§ãã',
+ invalidHeight: 'é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidWidth: 'å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'ãã¯ã»ã«æ°ãããã¯CSSã«ã»ããã§ããæ°å¤ãå
¥åãã¦ãã ããã(px,%,in,cm,mm,em,ex,pt,or pc)',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, å©ç¨ä¸å¯è½</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ka.js b/devel/third-party/ckeditor/lang/ka.js
new file mode 100644
index 0000000..9fba7d1
--- /dev/null
+++ b/devel/third-party/ckeditor/lang/ka.js
@@ -0,0 +1,105 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the Georgian
+ * language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ka' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'á¢áá¥á¡á¢áá¡ á áááá¥á¢áá á',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'áááááá áá ALT 0-á¡ ááá®ááá áááá¡ ááá¡áá¦áááá',
+
+ browseServer: 'á¡áá ááá áá ááááááááá ááá',
+ url: 'URL',
+ protocol: 'áá áá¢ááááá',
+ upload: 'áá¢ááá ááá',
+ uploadSubmit: 'á¡áá ááá áá áááááááá',
+ image: 'á¡á£á ááá',
+ flash: 'Flash',
+ form: 'á¤áá áá',
+ checkbox: 'ááááá¨áááá¡ á¦ááááá',
+ radio: 'áááá á©áááá¡ á¦ááááá',
+ textField: 'á¢áá¥á¡á¢á£á á áááá',
+ textarea: 'á¢áá¥á¡á¢á£á á áá á',
+ hiddenField: 'áááá£áá áááá',
+ button: 'á¦ááááá',
+ select: 'áá á©áááá¡ áááá',
+ imageButton: 'á¡á£á áááááá á¦ááááá',
+ notSet: '<áá áá¤áá á>',
+ id: 'Id',
+ name: 'á¡áá®ááá',
+ langDir: 'áááá¡ ááááá áá£áááá',
+ langDirLtr: 'ááá áªá®ááááá ááá á¯áááá (LTR)',
+ langDirRtl: 'ááá á¯áááááá ááá áªá®ááá (RTL)',
+ langCode: 'áááá¡ áááá',
+ longDescr: 'áááá áá¦á¬áá áá¡ URL',
+ cssClass: 'CSS áááá¡á',
+ advisoryTitle: 'á¡áááá£á á',
+ cssStyle: 'CSS á¡á¢ááá',
+ ok: 'áááá®',
+ cancel: 'ááá£á¥áááá',
+ close: 'ááá®á£á áá',
+ preview: 'ááááá®áááá',
+ resize: 'ááá¬áá ááááá¡ á¨áá¡ááªáááááá',
+ generalTab: 'ááá¤áá áááªáá',
+ advancedTab: 'ááá¤áá ááááá£áá',
+ validateNumberFailed: 'áá¡ áááá¨ááááááá áá áá á ááªá®áá.',
+ confirmNewPage: 'áá áááá£áááá¢á¨á á§áááá á©áá£á¬áá ááá áªááááááá áááááá áááá. ááá á¬áá£áááá£áá á®áá á á áá áá®ááá áááá ááá¡ á©áá¢ááá ááá áááááá?',
+ confirmCancel: 'áááááá áá ááá áááá¢á á á¨ááªáááááá, ááá á¬áá£áááá£ááá á®áá á á áá á¤ááá¯á áá¡ ááá®á£á áá áá¡á£á á?',
+ options: 'ááá áááá¢á ááá',
+ target: 'ááá®á¡ááá¡ áááááá',
+ targetNew: 'áá®ááá á¤ááá¯áá á (_blank)',
+ targetTop: 'áááá á¤ááá¯áá á (_top)',
+ targetSelf: 'ááááá á¤ááá¯áá á (_self)',
+ targetParent: 'áá¨ááááá á¤ááá¯áá á (_parent)',
+ langDirLTR: 'ááá áªá®ááááá ááá á¯áááá (LTR)',
+ langDirRTL: 'ááá á¯áááááá ááá áªá®ááá (RTL)',
+ styles: 'á¡á¢ááá',
+ cssClasses: 'CSS áááá¡á',
+ width: 'á¡ááááá',
+ height: 'á¡áááá¦áá',
+ align: 'á¡á¬áá ááá',
+ alignLeft: 'ááá áªá®ááá',
+ alignRight: 'ááá á¯áááá',
+ alignCenter: 'á¨á£á',
+ alignTop: 'áááááá',
+ alignMiddle: 'á¨á£á',
+ alignBottom: 'á¥áááááá',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'á¡áááá¦áá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidWidth: 'á¡ááááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ááá£á¬áááááááá</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/km.js b/devel/third-party/ckeditor/lang/km.js
index d0c2afa..46e2d64 100644
--- a/devel/third-party/ckeditor/lang/km.js
+++ b/devel/third-party/ckeditor/lang/km.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Khmer language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['km'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'áá¼á',
- newPage : 'ááááááááá¸',
- save : 'ááááá¶áá»á',
- preview : 'áá¾ááá¶ááááá',
- cut : 'áá¶áááá',
- copy : 'á
ááááá',
- paste : 'á
ááááá¶áá',
- print : 'ááááá»ááá',
- underline : 'áá·áááááá¶áááá¸áááááá¢áááá',
- bold : 'á¢áááááá·ááá',
- italic : 'á¢ááááááááá',
- selectAll : 'áááá¾ááá¾ááá¶ááá¢áá',
- removeFormat : 'áááá
áá áá¶ááá
áá¶',
- strike : 'áá·áááááá¶áááá¶ááááááá¶áá¢áááá',
- subscript : 'á¢áááááá¼á
ááááá',
- superscript : 'á¢áááááá¼á
áá¾',
- horizontalrule : 'ááááááááááá¶ááááááá',
- pagebreak : 'áááááá áá¶ááááá¶á
áááááá',
- unlink : 'ááááááá¶áá',
- undo : 'áá¶áá¡á¾ááá·á',
- redo : 'áááá¾á¡á¾ááá·á',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'áá¾á',
- url : 'URL',
- protocol : 'áááá¼áá¼áá¼á',
- upload : 'áá¶ááá',
- uploadSubmit : 'ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶',
- image : 'áá¼ááá¶á',
- flash : 'Flash',
- form : 'ááááá',
- checkbox : 'áááá¢áááááá¾ááá¾á',
- radio : 'ááá¼áá»ááááááááá¼á',
- textField : 'áá½ááááááá¢ááááá',
- textarea : 'ááááááááááá¢ááááá',
- hiddenField : 'áá½ááá¶áá',
- button : 'ááá¼áá»á',
- select : 'áá½ááááá¾ááá¾á',
- imageButton : 'ááá¼áá»ááá¼ááá¶á',
- notSet : '<áá·áááá>',
- id : 'Id',
- name : 'ááááá',
- langDir : 'áá·ááá
áá¶áá¶',
- langDirLtr : 'áá¸ááááááá
áááá¶á(LTR)',
- langDirRtl : 'áá¸áááá¶ááá
ááááá(RTL)',
- langCode : 'ááááá¼ááá¶áá¶',
- longDescr : 'á¢áá·áááá¶á URL ááá',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'á
ááááá¾á áááá¹áááá¶',
- cssStyle : 'ááá¼á',
- ok : 'ááááááá',
- cancel : 'áá·áááááááá',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'áááá·áááááá',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ááááááá¢áááááá·ááá',
- title : 'áá¼á¢áááááá·ááá',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'áááááá/áááááá áááá¶áá',
- other : '<other>', // MISSING
- menu : 'áááááááááá¶áá',
- title : 'áááá¶áá',
- info : 'ááááá¶áá¢ááá¸áááá¶áá',
- target : 'ááááá
',
- upload : 'áá¶ááá',
- advanced : 'áááá·áááááá',
- type : 'áááááááááá¶áá',
- toUrl : 'URL', // MISSING
- toAnchor : 'áá»áááá¶áá
áááá»ááááááááá',
- toEmail : 'á¢áá¸ááá',
- targetFrame : '<á áááááá>',
- targetPopup : '<áá¸ááá¼á ááá>',
- targetFrameName : 'áááááá ááááááááááá¶ááááá
',
- targetPopupName : 'ááááááá¸ááá¼áááá',
- popupFeatures : 'áááááááááááá¸ááá¼áááá',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'ááá¶ ááááá¶á',
- popupLocationBar: 'ááá¶ áá¸áá¶áá',
- popupToolbar : 'ááá¶ á©ááááá',
- popupMenuBar : 'ááá¶ ááºáá»á',
- popupFullScreen : 'á¢ááááá»áááá(IE)',
- popupScrollBars : 'ááá¶ áá¶á',
- popupDependent : 'á¢á¶ááááááá¾ (Netscape)',
- popupWidth : 'ááá¹á',
- popupLeft : 'áá¸áá¶áááá¶áááááá',
- popupHeight : 'ááááá',
- popupTop : 'áá¸áá¶áááá¶ááá¾',
- id : 'Id', // MISSING
- langDir : 'áá·ááá
áá¶áá¶',
- langDirLTR : 'áá¸ááááááá
áááá¶á(LTR)',
- langDirRTL : 'áá¸áááá¶ááá
ááááá(RTL)',
- acccessKey : 'áḠáááá¶ááá
á¼á',
- name : 'ááááá',
- langCode : 'áá·ááá
áá¶áá¶',
- tabIndex : 'ááá Tab',
- advisoryTitle : 'á
ááááá¾á áááá¹áááá¶',
- advisoryContentType : 'ááááááá¢ááááá áááá¹áááá¶',
- cssClasses : 'Stylesheet Classes',
- charset : 'ááááá¼áá¢áááááááááááá¶áá',
- styles : 'ááá¼á',
- selectAnchor : 'áááá¾ááá¾ááá»áááá¶',
- anchorName : 'áá¶áááááááááááá»áááá¶',
- anchorId : 'áá¶á Id',
- emailAddress : 'á¢áá¸ááá',
- emailSubject : 'á
ááááá¾áá¢ááááá',
- emailBody : 'á¢ááááá',
- noAnchors : '(No anchors available in the document)', // MISSING
- noUrl : 'áá¼áááááá á¢á¶ááááááá¶á URL',
- noEmail : 'áá¼áááááá á¢á¶ááááááá¶á á¢áá¸ááá'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'áááááá/áááááá áá»áááá¶',
- menu : 'áá¶áááááááá»áááá¶',
- title : 'áá¶áááááááá»áááá¶',
- name : 'ááááááá»ááááááá¶',
- errorName : 'áá¼áááááá ááááááá»ááááááá¶'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'ááááááá',
- replace : 'áááá½á',
- findWhat : 'áááááááá¢ááá¸:',
- replaceWith : 'áááá½ááá¶áá½á:',
- notFoundMsg : 'áá¶áááááá áááá·ááá¾ááá á',
- matchCase : 'áááááááá¼ááá',
- matchWord : 'áááá¼ááá¶ááááá¶ááá¢áá',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'áááá½ááá¶ááá¢áá',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'áá¶áá¶á',
- title : 'áá¶áááááá áá¶áá¶á',
- menu : 'áá¶áááááá áá¶áá¶á',
- deleteTable : 'ááááá¶áá¶á',
- rows : 'áá½áááááá',
- columns : 'áá½ááá',
- border : 'ááá áááá»á',
- align : 'áá¶áááááááá¸áá¶áá',
- alignLeft : 'áá¶áááááá',
- alignCenter : 'ááááá¶á',
- alignRight : 'áá¶ááááá¶á',
- width : 'ááá¹á',
- widthPx : 'áá¸áááá',
- widthPc : 'áá¶ááá',
- widthUnit : 'width unit', // MISSING
- height : 'ááááá',
- cellSpace : 'áááá¶áááá',
- cellPad : 'áááááá',
- caption : 'á
ááááá¾á',
- summary : 'ááá
áááá¸áááááá',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'áááááá',
- merge : 'ááááá¼áááá',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'ááááá½áááááá'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'ááááá½ááá'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'áá¶áááááá ááá¼áá»á',
- text : 'á¢ááááá(áááá)',
- type : 'áááááá',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'áá¶áááááááááá¢áááááá¾ááá¾á',
- radioTitle : 'áá¶ááááááááá¼áá»ááááááá',
- value : 'áááá',
- selected : 'áá¶ááááá¾ááá¾á'
- },
-
- // Form Dialog.
- form :
- {
- title : 'áá¶ááááááááááá',
- menu : 'áá¶ááááááááááá',
- action : 'ááááááá¶á',
- method : 'áá·áá¸',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'áá¶áááááááá½ááááá¾ááá¾á',
- selectInfo : 'ááááá¶á',
- opAvail : 'áá¶áááááááááá¾ááá¾á áááá¢á¶á
ááááááá¶á',
- value : 'áááá',
- size : 'ááá á',
- lines : 'ááááá¶áá',
- chkMulti : 'á¢áá»áááá¶áá¢áááááá¾ááá¾áá
ááá¾á',
- opText : 'áá¶ááá',
- opValue : 'áááá',
- btnAdd : 'áááááá',
- btnModify : 'áááá¶áááááá¼á',
- btnUp : 'áá¾',
- btnDown : 'ááááá',
- btnSetValue : 'Set as selected value', // MISSING
- btnDelete : 'ááá'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'áá¶áááááááááááááááááá¢ááááá',
- cols : 'áá¼ááá',
- rows : 'áá¼áááááá'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'áá¶áááááááá½áá¢ááááá',
- name : 'ááááá',
- value : 'áááá',
- charWidth : 'ááá¹á á¢áááá',
- maxChars : 'á¢ááááá¢áá·ááá·áá¶',
- type : 'áááááá',
- typeText : 'áá¶ááá',
- typePass : 'áá¶ááááááá¶áá'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'áá¶áááááááá½ááá¶áá',
- name : 'ááááá',
- value : 'áááá'
- },
-
- // Image Dialog.
- image :
- {
- title : 'áá¶áááááááá¼ááá¶á',
- titleButton : 'áá¶ááááááááá¼áá»ááá¼ááá¶á',
- menu : 'áá¶áááááááá¼ááá¶á',
- infoTab : 'ááááá¶áá¢ááá¸áá¼ááá¶á',
- btnUpload : 'ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶',
- upload : 'áá¶ááá',
- alt : 'á¢ááááááááá½á',
- width : 'ááá¹á',
- height : 'ááááá',
- lockRatio : 'á¢áááá¶á¡á»á',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'áááááááá áá¡á¾ááá·á',
- border : 'ááá»á',
- hSpace : 'áááá¶áááá¹á',
- vSpace : 'áááá¶ááááááá',
- align : 'ááááááá¸áá¶áá',
- alignLeft : 'áá¶ááááá',
- alignRight : 'áá¶ááááá¶á',
- alertUrl : 'áá¼áááááááá¶ááááááá¶ááááááá¼ááá¶á',
- linkTab : 'áááá¶áá',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'áá¶áááááá Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'áá¶áááááá Flash',
- chkPlay : 'áááááááááááááááááá',
- chkLoop : 'á
ááá½ááá',
- chkMenu : 'áááá á¶á ááºáá»ááááá Flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'ááá á',
- scaleAll : 'áááá á¶ááá¶ááá¢áá',
- scaleNoBorder : 'áá·ááááá á¶áááá»á',
- scaleFit : 'áááá¼ááááá',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'ááááááá¸áá¶áá',
- alignLeft : 'áá¶ááááá',
- alignAbsBottom : 'Abs Bottom', // MISSING
- alignAbsMiddle : 'Abs Middle', // MISSING
- alignBaseline : 'ááááá¶áááá¶áá¼ááááá¶á',
- alignBottom : 'áá¶áááááá',
- alignMiddle : 'ááááá¶á',
- alignRight : 'áá¶ááááá¶á',
- alignTextTop : 'áá¾á¢ááááá',
- alignTop : 'áá¶ááá¾',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'ááááááááá¶áááááá',
- width : 'ááá¹á',
- height : 'ááááá',
- hSpace : 'áááá¶áááá¹á',
- vSpace : 'áááá¶ááááááá',
- validateSrc : 'áá¼áááááá á¢á¶ááááááá¶á URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'áá·áá·áááá¢ááááá¶áá·áá»ááá',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'áááá¶ááááá»ááá
áá¶áá»áááá',
- changeTo : 'áááá¶áááááá¼ááá
',
- btnIgnore : 'áá·ááááá¶áááááá¼á',
- btnIgnoreAll : 'áá·ááááá¶áááááá¼á áá¶ááá¢áá',
- btnReplace : 'áááá½á',
- btnReplaceAll : 'áááá½ááá¶ááá¢áá',
- btnUndo : 'áá¶áá¡á¾ááá·á',
- noSuggestions : '- áááá¶ááááá¾á -',
- progress : 'áááá»ááá·áá·áááá¢ááááá¶áá·áá»ááá...',
- noMispell : 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áááá¶áááá á»á',
- noChanges : 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá»ááá¶ááááá¶áááááá¼á',
- oneChange : 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá¶ááááá½ááááá¼á
áá¶ááááá¶áááááá¼á',
- manyChanges : 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: %1 áá¶ááááá¶ááááá¶áááááá¼á',
- ieSpellDownload : 'áá»ááá¶ááááááá·áá¸áá·áá·áááá¢ááááá¶áá·áá»ááá á áá¾á
áááá¶ááááá¸áá¶?'
- },
-
- smiley :
- {
- toolbar : 'áá¼ááá¶á',
- title : 'ááááá¼ááá¼ááá¶á',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ááááá¸áá¶á¢áááá',
- bulletedlist : 'ááááá¸áá¶áááááááá¼á',
- indent : 'áááááááá¶áá
á¼áááááá¶áá',
- outdent : 'ááááááá¶áá
á¼áááááá¶áá',
-
- justify :
- {
- left : 'áááá¹áááááá',
- center : 'áááá¹áááááá¶á',
- right : 'áááá¹ááááá¶á',
- block : 'áááá¹ááááá¶á'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'á
ááááá¶áá',
- cutError : 'áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá ááá\u200báá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá áá¶ááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+X) á',
- copyError : 'áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá ááá\u200báá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá á
áááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+C)á',
- pasteMsg : 'áá¼áá
áááá¢ááááááá
áá¶áááááá»ááááá¢áááá¼á
áá¶ááááááááááááá¾áááá¶áá áḠ\u200b(<STRONG>Ctrl/Cmd+V</STRONG>) á á¾áá
á»á
<STRONG>OK</STRONG> á',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'á
ááááá¶áááḠWord',
- title : 'á
ááááá¶áááḠWord',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'á
ááááá¶ááá¢ááááááááááá¶',
- title : 'á
ááááá¶ááá¢ááááááááááá¶'
- },
-
- templates :
- {
- button : 'á¯ááá¶ááááá¼',
- title : 'á¯ááá¶ááááá¼ ááááá¢áááááá',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'áá¼ááááá¾ááá¾áá¯ááá¶ááááá¼ áá¾áááá¸áá¾ááá
áááá»ááááááá·áá¸áá¶áááááá¢ááááá<br>(á¢ááááááá¹ááá¶ááááá):',
- emptyListMsg : '(áá»ááá¶áá¯ááá¶ááááá¼áááá¼ááá¶áááááá)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'ááá¼á',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'áá
áá¶',
- panelTitle : 'áá
áá¶',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'á ááá»á',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'á ááá»á'
- },
-
- fontSize :
- {
- label : 'ááá á',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'ááá á'
- },
-
- colorButton :
- {
- textColorTitle : 'áááá¢áááá',
- bgColorTitle : 'ááááááááá¶áááááá',
- panelTitle : 'Colors', // MISSING
- auto : 'áááááááááááá',
- more : 'ááááááááááá..'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Khmer language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'km' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'áá¾á',
+ url: 'URL',
+ protocol: 'áááá¼áá¼áá¼á',
+ upload: 'áá¶ááá',
+ uploadSubmit: 'ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶',
+ image: 'áá¼ááá¶á',
+ flash: 'Flash',
+ form: 'ááááá',
+ checkbox: 'áááá¢áááááá¾ááá¾á',
+ radio: 'ááá¼áá»ááááááááá¼á',
+ textField: 'áá½ááááááá¢ááááá',
+ textarea: 'ááááááááááá¢ááááá',
+ hiddenField: 'áá½ááá¶áá',
+ button: 'ááá¼áá»á',
+ select: 'áá½ááááá¾ááá¾á',
+ imageButton: 'ááá¼áá»ááá¼ááá¶á',
+ notSet: '<áá·áááá>',
+ id: 'Id',
+ name: 'ááááá',
+ langDir: 'áá·ááá
áá¶áá¶',
+ langDirLtr: 'áá¸ááááááá
áááá¶á(LTR)',
+ langDirRtl: 'áá¸áááá¶ááá
ááááá(RTL)',
+ langCode: 'ááááá¼ááá¶áá¶',
+ longDescr: 'á¢áá·áááá¶á URL ááá',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'á
ááááá¾á áááá¹áááá¶',
+ cssStyle: 'ááá¼á',
+ ok: 'ááááááá',
+ cancel: 'áá·áááááááá',
+ close: 'Close', // MISSING
+ preview: 'áá¾ááá¶ááááá',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'áááá·áááááá',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'ááááá
',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'áá¸ááááááá
áááá¶á(LTR)',
+ langDirRTL: 'áá¸áááá¶ááá
ááááá(RTL)',
+ styles: 'ááá¼á',
+ cssClasses: 'Stylesheet Classes',
+ width: 'ááá¹á',
+ height: 'ááááá',
+ align: 'ááááááá¸áá¶áá',
+ alignLeft: 'áá¶ááááá',
+ alignRight: 'áá¶ááááá¶á',
+ alignCenter: 'ááááá¶á',
+ alignTop: 'áá¶ááá¾',
+ alignMiddle: 'ááááá¶á',
+ alignBottom: 'áá¶áááááá',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ko.js b/devel/third-party/ckeditor/lang/ko.js
index 07bbf80..9a251e5 100644
--- a/devel/third-party/ckeditor/lang/ko.js
+++ b/devel/third-party/ckeditor/lang/ko.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Korean language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ko'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'ìì¤',
- newPage : 'ì 문ì',
- save : 'ì ì¥í기',
- preview : '미리보기',
- cut : 'ìë¼ë´ê¸°',
- copy : 'ë³µì¬í기',
- paste : 'ë¶ì¬ë£ê¸°',
- print : 'ì¸ìí기',
- underline : 'ë°ì¤',
- bold : 'ì§íê²',
- italic : 'ì´í
ë¦',
- selectAll : 'ì ì²´ì í',
- removeFormat : 'í¬ë§· ì§ì°ê¸°',
- strike : 'ì·¨ìì ',
- subscript : 'ìë 첨ì',
- superscript : 'ì 첨ì',
- horizontalrule : 'ìíì ì½ì
',
- pagebreak : 'Insert Page Break for Printing', // MISSING
- unlink : 'ë§í¬ ìì ',
- undo : 'ì·¨ì',
- redo : 'ì¬ì¤í',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ìë² ë³´ê¸°',
- url : 'URL',
- protocol : 'íë¡í ì½',
- upload : 'ì
ë¡ë',
- uploadSubmit : 'ìë²ë¡ ì ì¡',
- image : 'ì´ë¯¸ì§',
- flash : 'íëì¬',
- form : 'í¼',
- checkbox : 'ì²´í¬ë°ì¤',
- radio : 'ë¼ëì¤ë²í¼',
- textField : 'ì
ë ¥íë',
- textarea : 'ì
ë ¥ìì',
- hiddenField : 'ì¨ê¹íë',
- button : 'ë²í¼',
- select : 'í¼ì¹¨ëª©ë¡',
- imageButton : 'ì´ë¯¸ì§ë²í¼',
- notSet : '<ì¤ì ëì§ ìì>',
- id : 'ID',
- name : 'Name',
- langDir : 'ì°ê¸° ë°©í¥',
- langDirLtr : 'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',
- langDirRtl : 'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',
- langCode : 'ì¸ì´ ì½ë',
- longDescr : 'URL ì¤ëª
',
- cssClass : 'Stylesheet Classes',
- advisoryTitle : 'Advisory Title',
- cssStyle : 'Style',
- ok : 'ì',
- cancel : 'ìëì¤',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'ìì¸í',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'í¹ì문ì ì½ì
',
- title : 'í¹ì문ì ì í',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'ë§í¬ ì½ì
/ë³ê²½',
- other : '<기í>',
- menu : 'ë§í¬ ìì ',
- title : 'ë§í¬',
- info : 'ë§í¬ ì ë³´',
- target : 'íê²',
- upload : 'ì
ë¡ë',
- advanced : 'ìì¸í',
- type : 'ë§í¬ ì¢
ë¥',
- toUrl : 'URL', // MISSING
- toAnchor : 'ì±
ê°í¼',
- toEmail : 'ì´ë©ì¼',
- targetFrame : '<íë ì>',
- targetPopup : '<íì
ì°½>',
- targetFrameName : 'íê² íë ì ì´ë¦',
- targetPopupName : 'íì
ì°½ ì´ë¦',
- popupFeatures : 'íì
ì°½ ì¤ì ',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'ìíë°',
- popupLocationBar: '주ìíìì¤',
- popupToolbar : 'í´ë°',
- popupMenuBar : 'ë©ë´ë°',
- popupFullScreen : 'ì ì²´íë©´ (IE)',
- popupScrollBars : 'ì¤í¬ë¡¤ë°',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'ëë¹',
- popupLeft : 'ì¼ìª½ ìì¹',
- popupHeight : 'ëì´',
- popupTop : 'ì쪽 ìì¹',
- id : 'Id', // MISSING
- langDir : 'ì°ê¸° ë°©í¥',
- langDirLTR : 'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',
- langDirRTL : 'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',
- acccessKey : 'ìì¸ì¤ í¤',
- name : 'Name',
- langCode : 'ì°ê¸° ë°©í¥',
- tabIndex : 'í ìì',
- advisoryTitle : 'Advisory Title',
- advisoryContentType : 'Advisory Content Type',
- cssClasses : 'Stylesheet Classes',
- charset : 'Linked Resource Charset',
- styles : 'Style',
- selectAnchor : 'ì±
ê°í¼ ì í',
- anchorName : 'ì±
ê°í¼ ì´ë¦',
- anchorId : 'ì±
ê°í¼ ID',
- emailAddress : 'ì´ë©ì¼ 주ì',
- emailSubject : 'ì 목',
- emailBody : 'ë´ì©',
- noAnchors : '(문ìì ì±
ê°í¼ê° ììµëë¤.)',
- noUrl : 'ë§í¬ URLì ì
ë ¥íììì.',
- noEmail : 'ì´ë©ì¼ì£¼ì를 ì
ë ¥íììì.'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'ì±
ê°í¼ ì½ì
/ë³ê²½',
- menu : 'ì±
ê°í¼ ìì±',
- title : 'ì±
ê°í¼ ìì±',
- name : 'ì±
ê°í¼ ì´ë¦',
- errorName : 'ì±
ê°í¼ ì´ë¦ì ì
ë ¥íììì.'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : '찾기 & ë°ê¾¸ê¸°',
- find : '찾기',
- replace : 'ë°ê¾¸ê¸°',
- findWhat : 'ì°¾ì 문ìì´:',
- replaceWith : 'ë°ê¿ 문ìì´:',
- notFoundMsg : '문ìì´ì ì°¾ì ì ììµëë¤.',
- matchCase : 'ëì문ì 구ë¶',
- matchWord : 'ì¨ì í ë¨ì´',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : '모ë ë°ê¾¸ê¸°',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'í',
- title : 'í ì¤ì ',
- menu : 'í ì¤ì ',
- deleteTable : 'í ìì ',
- rows : 'ê°ë¡ì¤',
- columns : 'ì¸ë¡ì¤',
- border : 'í
ë리 í¬ê¸°',
- align : 'ì ë ¬',
- alignLeft : 'ì¼ìª½',
- alignCenter : 'ê°ì´ë°',
- alignRight : 'ì¤ë¥¸ìª½',
- width : 'ëë¹',
- widthPx : 'í½ì
',
- widthPc : 'í¼ì¼í¸',
- widthUnit : 'width unit', // MISSING
- height : 'ëì´',
- cellSpace : 'ì
ê°ê²©',
- cellPad : 'ì
ì¬ë°±',
- caption : '캡ì
',
- summary : 'Summary', // MISSING
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'ì
/칸(Cell)',
- insertBefore : 'ìì ì
/칸 ì½ì
',
- insertAfter : 'ë¤ì ì
/칸 ì½ì
',
- deleteCell : 'ì
ìì ',
- merge : 'ì
í©ì¹ê¸°',
- mergeRight : 'ì¤ë¥¸ìª½ ëì¹ê¸°',
- mergeDown : 'ì¼ìª½ ëì¹ê¸°',
- splitHorizontal : 'ìí ëë기',
- splitVertical : 'ìì§ ëë기',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'í(Row)',
- insertBefore : 'ìì í ì½ì
',
- insertAfter : 'ë¤ì í ì½ì
',
- deleteRow : 'ê°ë¡ì¤ ìì '
- },
-
- column :
- {
- menu : 'ì´(Column)',
- insertBefore : 'ìì ì´ ì½ì
',
- insertAfter : 'ë¤ì ì´ ì½ì
',
- deleteColumn : 'ì¸ë¡ì¤ ìì '
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ë²í¼ ìì±',
- text : 'ë²í¼ê¸ì(ê°)',
- type : 'ë²í¼ì¢
ë¥',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ì²´í¬ë°ì¤ ìì±',
- radioTitle : 'ë¼ëì¤ë²í¼ ìì±',
- value : 'ê°',
- selected : 'ì íë¨'
- },
-
- // Form Dialog.
- form :
- {
- title : 'í¼ ìì±',
- menu : 'í¼ ìì±',
- action : 'ì¤íê²½ë¡(Action)',
- method : 'ë°©ë²(Method)',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'í¼ì¹¨ëª©ë¡ ìì±',
- selectInfo : 'ì ë³´',
- opAvail : 'ì íìµì
',
- value : 'ê°',
- size : 'ì¸ë¡í¬ê¸°',
- lines : 'ì¤',
- chkMulti : 'ì¬ë¬í목 ì í íì©',
- opText : 'ì´ë¦',
- opValue : 'ê°',
- btnAdd : 'ì¶ê°',
- btnModify : 'ë³ê²½',
- btnUp : 'ìë¡',
- btnDown : 'ìëë¡',
- btnSetValue : 'ì íëê²ì¼ë¡ ì¤ì ',
- btnDelete : 'ìì '
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ì
ë ¥ìì ìì±',
- cols : '칸ì',
- rows : 'ì¤ì'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ì
ë ¥íë ìì±',
- name : 'ì´ë¦',
- value : 'ê°',
- charWidth : 'ê¸ì ëë¹',
- maxChars : 'ìµë ê¸ìì',
- type : 'ì¢
ë¥',
- typeText : '문ìì´',
- typePass : 'ë¹ë°ë²í¸'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ì¨ê¹íë ìì±',
- name : 'ì´ë¦',
- value : 'ê°'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ì´ë¯¸ì§ ì¤ì ',
- titleButton : 'ì´ë¯¸ì§ë²í¼ ìì±',
- menu : 'ì´ë¯¸ì§ ì¤ì ',
- infoTab : 'ì´ë¯¸ì§ ì ë³´',
- btnUpload : 'ìë²ë¡ ì ì¡',
- upload : 'ì
ë¡ë',
- alt : 'ì´ë¯¸ì§ ì¤ëª
',
- width : 'ëë¹',
- height : 'ëì´',
- lockRatio : 'ë¹ì¨ ì ì§',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'ìë í¬ê¸°ë¡',
- border : 'í
ë리',
- hSpace : 'ìíì¬ë°±',
- vSpace : 'ìì§ì¬ë°±',
- align : 'ì ë ¬',
- alignLeft : 'ì¼ìª½',
- alignRight : 'ì¤ë¥¸ìª½',
- alertUrl : 'ì´ë¯¸ì§ URLì ì
ë ¥íììì',
- linkTab : 'ë§í¬',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'íëì¬ ìì±',
- propertiesTab : 'Properties', // MISSING
- title : 'íëì¬ ë±ë¡ì ë³´',
- chkPlay : 'ìëì¬ì',
- chkLoop : 'ë°ë³µ',
- chkMenu : 'íëì¬ë©ë´ ê°ë¥',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'ìì',
- scaleAll : '모ë보기',
- scaleNoBorder : 'ê²½ê³ì ìì',
- scaleFit : 'ìììëì¡°ì ',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'ì ë ¬',
- alignLeft : 'ì¼ìª½',
- alignAbsBottom : 'ì¤ìë(Abs Bottom)',
- alignAbsMiddle : 'ì¤ì¤ê°(Abs Middle)',
- alignBaseline : '기ì¤ì ',
- alignBottom : 'ìë',
- alignMiddle : 'ì¤ê°',
- alignRight : 'ì¤ë¥¸ìª½',
- alignTextTop : 'ê¸ììë¨',
- alignTop : 'ì',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'ë°°ê²½ ìì',
- width : 'ëë¹',
- height : 'ëì´',
- hSpace : 'ìíì¬ë°±',
- vSpace : 'ìì§ì¬ë°±',
- validateSrc : 'ë§í¬ URLì ì
ë ¥íììì.',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ì² ìê²ì¬',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'ì¬ì ì ìë ë¨ì´',
- changeTo : 'ë³ê²½í ë¨ì´',
- btnIgnore : 'ê±´ëë',
- btnIgnoreAll : '모ë ê±´ëë',
- btnReplace : 'ë³ê²½',
- btnReplaceAll : '모ë ë³ê²½',
- btnUndo : 'ì·¨ì',
- noSuggestions : '- ì¶ì²ë¨ì´ ìì -',
- progress : 'ì² ìê²ì¬ë¥¼ ì§íì¤ì
ëë¤...',
- noMispell : 'ì² ìê²ì¬ ìë£: ì못ë ì² ìê° ììµëë¤.',
- noChanges : 'ì² ìê²ì¬ ìë£: ë³ê²½ë ë¨ì´ê° ììµëë¤.',
- oneChange : 'ì² ìê²ì¬ ìë£: ë¨ì´ê° ë³ê²½ëììµëë¤.',
- manyChanges : 'ì² ìê²ì¬ ìë£: %1 ë¨ì´ê° ë³ê²½ëììµëë¤.',
- ieSpellDownload : 'ì² ì ê²ì¬ê¸°ê° ì² ì¹ëì§ ìììµëë¤. ì§ê¸ ë¤ì´ë¡ëíìê² ìµëê¹?'
- },
-
- smiley :
- {
- toolbar : 'ìì´ì½',
- title : 'ìì´ì½ ì½ì
',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ìììë 목ë¡',
- bulletedlist : 'ìììë 목ë¡',
- indent : 'ë¤ì¬ì°ê¸°',
- outdent : 'ë´ì´ì°ê¸°',
-
- justify :
- {
- left : 'ì¼ìª½ ì ë ¬',
- center : 'ê°ì´ë° ì ë ¬',
- right : 'ì¤ë¥¸ìª½ ì ë ¬',
- block : 'ì쪽 ë§ì¶¤'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'ë¶ì¬ë£ê¸°',
- cutError : 'ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ìë¼ë´ê¸° 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+X).',
- copyError : 'ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ë³µì¬í기 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+C).',
- pasteMsg : 'í¤ë³´ëì (<STRONG>Ctrl/Cmd+V</STRONG>) 를 ì´ì©í´ì ìììì ë¶ì¬ë£ê³ <STRONG>OK</STRONG> 를 ë르ì¸ì.',
- securityMsg : 'ë¸ë¬ì°ì ë³´ì ì¤ì ì¼ë¡ ì¸í´, í´ë¦½ë³´ëì ìë£ë¥¼ ì§ì ì ê·¼í ì ììµëë¤. ì´ ì°½ì ë¤ì ë¶ì¬ë£ê¸° íììì¤.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'MS Word íììì ë¶ì¬ë£ê¸°',
- title : 'MS Word íììì ë¶ì¬ë£ê¸°',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°',
- title : 'í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°'
- },
-
- templates :
- {
- button : 'í
í릿',
- title : 'ë´ì© í
í릿',
- options : 'Template Options', // MISSING
- insertOption : 'íì¬ ë´ì© ë°ê¾¸ê¸°',
- selectPromptMsg : 'ìëí°ìì ì¬ì©í í
í릿ì ì ííììì.<br>(ì§ê¸ê¹ì§ ìì±ë ë´ì©ì ì¬ë¼ì§ëë¤.):',
- emptyListMsg : '(í
íë¦¿ì´ ììµëë¤.)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'ì¤íì¼',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'í¬ë§·',
- panelTitle : 'í¬ë§·',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'í°í¸',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'í°í¸'
- },
-
- fontSize :
- {
- label : 'ê¸ì í¬ê¸°',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'ê¸ì í¬ê¸°'
- },
-
- colorButton :
- {
- textColorTitle : 'ê¸ì ìì',
- bgColorTitle : 'ë°°ê²½ ìì',
- panelTitle : 'Colors', // MISSING
- auto : '기본ìì',
- more : 'ììì í...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Korean language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ko' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'ìë² ë³´ê¸°',
+ url: 'URL',
+ protocol: 'íë¡í ì½',
+ upload: 'ì
ë¡ë',
+ uploadSubmit: 'ìë²ë¡ ì ì¡',
+ image: 'ì´ë¯¸ì§',
+ flash: 'íëì¬',
+ form: 'í¼',
+ checkbox: 'ì²´í¬ë°ì¤',
+ radio: 'ë¼ëì¤ë²í¼',
+ textField: 'ì
ë ¥íë',
+ textarea: 'ì
ë ¥ìì',
+ hiddenField: 'ì¨ê¹íë',
+ button: 'ë²í¼',
+ select: 'í¼ì¹¨ëª©ë¡',
+ imageButton: 'ì´ë¯¸ì§ë²í¼',
+ notSet: '<ì¤ì ëì§ ìì>',
+ id: 'ID',
+ name: 'Name',
+ langDir: 'ì°ê¸° ë°©í¥',
+ langDirLtr: 'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',
+ langDirRtl: 'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',
+ langCode: 'ì¸ì´ ì½ë',
+ longDescr: 'URL ì¤ëª
',
+ cssClass: 'Stylesheet Classes',
+ advisoryTitle: 'Advisory Title',
+ cssStyle: 'Style',
+ ok: 'ì',
+ cancel: 'ìëì¤',
+ close: 'Close', // MISSING
+ preview: '미리보기',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'ìì¸í',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'íê²',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',
+ langDirRTL: 'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',
+ styles: 'Style',
+ cssClasses: 'Stylesheet Classes',
+ width: 'ëë¹',
+ height: 'ëì´',
+ align: 'ì ë ¬',
+ alignLeft: 'ì¼ìª½',
+ alignRight: 'ì¤ë¥¸ìª½',
+ alignCenter: 'ê°ì´ë°',
+ alignTop: 'ì',
+ alignMiddle: 'ì¤ê°',
+ alignBottom: 'ìë',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ku.js b/devel/third-party/ckeditor/lang/ku.js
new file mode 100644
index 0000000..25935d9
--- /dev/null
+++ b/devel/third-party/ckeditor/lang/ku.js
@@ -0,0 +1,104 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ku' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'rtl',
+
+ // ARIA description.
+ editor: 'Ø³ÛØ±ÙÙÙØ³ÛÛ Ø¯ÛÙÛ Ø¨ÛÙ¾ÛØª',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Ú©ÙÛÚ©Û ALT ÙÙâÚ¯ÙâÚµ 0 بکÙâ Ø¨Û ÛØ§Ø±Ù
ÙâØªÛ',
+
+ browseServer: 'ÙÛÙØ§ÙÛ ÚØ§ÚÛ',
+ url: 'ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÛØ³ØªÛر',
+ protocol: 'Ù¾ÚÛØªÛÚ©ÛÚµ',
+ upload: 'بارکردÙ',
+ uploadSubmit: 'ÙØ§Ø±Ø¯ÙÛ Ø¨Û ÚØ§ÚÛ',
+ image: 'ÙÛÙÛ',
+ flash: 'ÙÙØ§Ø´',
+ form: 'Ø¯Ø§ÚØ´ØªÛ',
+ checkbox: 'خاÙÛÛ ÙÛØ´Ø§ÙکردÙ',
+ radio: 'جÛگرÛÙÛÛ Ø¯ÙÚ¯Ù
Û',
+ textField: 'خاÙÛÛ Ø¯ÛÙ',
+ textarea: 'ÚÙÙØ¨ÛØ±Û Ø¯ÛÙ',
+ hiddenField: 'شاردÙÛÙÛ Ø®Ø§ÙÛ',
+ button: 'دÙÚ¯Ù
Û',
+ select: 'ÙÛÚµØ¨ÚØ§Ø±Ø¯ÛÛ Ø®Ø§ÙÛ',
+ imageButton: 'دÙÚ¯Ù
ÛÛ ÙÛÙÛ',
+ notSet: '<ÙÛÚ Ø¯Ø§ÙÛØ¯Ø±Ø§ÙÛ>',
+ id: 'ÙØ§Ø³ÙاÙ
Û',
+ name: 'ÙØ§Ù',
+ langDir: 'ئاراستÛÛ Ø²Ù
اÙ',
+ langDirLtr: 'ÚÛÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)',
+ langDirRtl: 'ÚØ§Ø³Øª Ø¨Û ÚÛÙ¾ (RTL)',
+ langCode: 'ÙÛÙ
Ø§Û Ø²Ù
اÙ',
+ longDescr: 'Ù¾ÛÙØ§Ø³ÛÛ Ø¯Ø±ÛÚÛ Ø¨ÛØ³ØªÛر',
+ cssClass: 'Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÙâÚÛ',
+ advisoryTitle: 'ÚØ§ÙÛÚÚ©Ø§Ø±Û Ø³ÛØ±Ø¯ÛÚ',
+ cssStyle: 'Ø´ÛÙØ§Ø²',
+ ok: 'باشÛ',
+ cancel: 'ÙÛÚµÙÛØ´Ø§ÙدÙ',
+ close: 'داخستÙ',
+ preview: 'Ù¾ÛØ´Ø¨ÛÙÛÙ',
+ resize: 'Ú¯ÛÚÛÙÛ Ø¦ÛÙØ¯Ø§Ø²Û',
+ generalTab: 'گشتÛ',
+ advancedTab: 'Ù¾ÙâØ±ÙâØ³ÙâÙØ¯ÙÙ',
+ validateNumberFailed: 'ئÛÙ
ÙØ±Ø®Û ÚÙ
Ø§Ø±Û ÙÛÙØ تکاÛÛ ÙØ±Ø®ÛÚ©Û ÚÙ
Ø§Ø±Û Ø¨ÙÙÙØ³Û.',
+ confirmNewPage: 'Ø³ÛØ±Ø¬ÛÙ
Ú¯ÛÚØ§ÙکارÛÛکا٠٠پÛÚ©ÙØ§ØªÛکاÙÛ ÙØ§ÙÛÙÙÛ ÙÛØ¯Ûست Ø¯ÛØ¯ÛÛ Ú¯ÛØ± Ø¨ÛØªÙ٠پاشکÛÙØªÛ ÙÛÚ©ÛÛ ÛÛÚ©ÛÙ
Ø¬Ø§Ø±Ø ØªÛ ÙÛØ± دڵÙÛØ§ÛÛ ÙÛکردÙÛÙÛÛ Ù¾ÛÙØ¬ÛرÛÚ©Û ÙÙÛØ',
+ confirmCancel: 'ÙÛÙØ¯ÛÙ ÙÛÚµØ¨ÚØ§Ø±Ø¯Û Ú¯ÛÚØ¯Ø±Ø§ÙÛ. ØªÛ Ø¯ÚµÙÛØ§ÛÛ ÙÙâØ¯Ø§Ø®Ø³ØªÙÛ Ø¦ÛÙ
Ø¯ÛØ§ÙÛÚ¯ÛØ',
+ options: 'ÙÛÚµØ¨ÚØ§Ø±Ø¯Û',
+ target: 'ئاÙ
Ø§ÙØ¬',
+ targetNew: 'Ù¾ÛÙØ¬ÛرÛÛÙâÚ©Û ÙÙÛ (_blank)',
+ targetTop: 'ÙÙÙØªÚ©ÛÛ Ù¾ÛÙØ¬ÛØ±Û (_top)',
+ targetSelf: 'ÙÛÙÛÙ
ا٠پÛÙØ¬ÛØ±Û (_self)',
+ targetParent: 'Ù¾ÛÙØ¬ÛرÛÛ Ø¨Ø§ÙØ§Ù (_parent)',
+ langDirLTR: 'ÚÛÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)',
+ langDirRTL: 'ÚØ§Ø³Øª Ø¨Û ÚÛÙ¾ (RTL)',
+ styles: 'Ø´ÛÙØ§Ø²',
+ cssClasses: 'Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÛÚÛ',
+ width: 'پاÙÛ',
+ height: 'درÛÚÛ',
+ align: 'ÚÛÚ©Ú©ÛØ±ÛÙÛ',
+ alignLeft: 'ÚÛÙ¾',
+ alignRight: 'ÚØ§Ø³Øª',
+ alignCenter: 'ÙØ§ÙÛÚØ§Ø³Øª',
+ alignTop: 'Ø³ÛØ±ÛÙÛ',
+ alignMiddle: 'ÙØ§ÙÛÙØ¯',
+ alignBottom: 'ÚÛØ±ÛÙÛ',
+ invalidValue : 'ÙØ±Ø®ÛÚ©Û ÙØ§Ø¯Ø±ÙÙØ³Øª.',
+ invalidHeight: 'درÛÚÛ Ø¯ÛØ¨Ûت ÚÙ
Ø§Ø±Û Ø¨ÛØª.',
+ invalidWidth: 'پاÙÛ Ø¯ÛØ¨Ûت ÚÙ
Ø§Ø±Û Ø¨ÛØª.',
+ invalidCssLength: 'ئÛÙ
ÙØ±Ø®ÛÛ Ø¯Ø±Ø§ÙÛ Ø¨Û Ø®Ø§ÙÛÛ "%1" Ø¯ÛØ¨Ûت ÚÙ
ارÛÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª ÛØ§Ù Ø¨Û ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦Ø§Ù
Ø±Ø§Ø²Û (px, %, in, cm, mm, em, ex, pt, ÛØ§Ù pc).',
+ invalidHtmlLength: 'ئÛÙ
ÙØ±Ø®ÛÛ Ø¯Ø±Ø§ÙÛ Ø¨Û Ø®Ø§ÙÛÛ "%1" Ø¯ÛØ¨Ûت ÚÙ
ارÛÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª ÛØ§Ù Ø¨Û ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦Ø§Ù
Ø±Ø§Ø²Û HTML (px ÛØ§Ù %).',
+ invalidInlineStyle: 'داÙÙâÛ ÙØ±Ø®Û Ø´ÛÙØ§Ø²Û ÙØ§ÙÙÛÚµ دÙâØ¨ÛØª Ù¾ÛÚ©ÙØ§ØªØ¨Ûت ÙÙâÛÙâÙ ÛØ§Ù Ø²ÛØ§ØªØ±Û Ø¯Ø§ÚØ´ØªÙâ "ÙØ§Ù : ÙØ±Ø®", Ø¬ÛØ§Ú©Ø±Ø¯ÙÙâÙÙâÛ Ø¨ÙâÙØ§Ø±ÛزÙâÙØ®Ø§Úµ',
+ cssLengthTooltip: 'ÚÙ
ارÙâÛÙâ٠بÙÙÙØ³Ùâ Ø¨Û ÙØ±Ø®Û piksel ÛØ§Ù ئاÙ
رازÛÚ©Û Ø¯Ø±ÙÙØ³ØªÛ CSS (px, %, in, cm, mm, em, ex, pt, ÛØ§Ù pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ئاÙ
Ø§Ø¯Û ÙÛÛ</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/lt.js b/devel/third-party/ckeditor/lang/lt.js
index b2e21e7..262816c 100644
--- a/devel/third-party/ckeditor/lang/lt.js
+++ b/devel/third-party/ckeditor/lang/lt.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Lithuanian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['lt'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Å altinis',
- newPage : 'Naujas puslapis',
- save : 'Išsaugoti',
- preview : 'Peržiūra',
- cut : 'Iškirpti',
- copy : 'Kopijuoti',
- paste : 'Ä®dÄti',
- print : 'Spausdinti',
- underline : 'Pabrauktas',
- bold : 'Pusjuodis',
- italic : 'Kursyvas',
- selectAll : 'PažymÄti viskÄ
',
- removeFormat : 'Panaikinti formatÄ
',
- strike : 'Perbrauktas',
- subscript : 'Apatinis indeksas',
- superscript : 'Viršutinis indeksas',
- horizontalrule : 'Ä®terpti horizontaliÄ
linijÄ
',
- pagebreak : 'Ä®terpti puslapių skirtukÄ
',
- unlink : 'Panaikinti nuorodÄ
',
- undo : 'Atšaukti',
- redo : 'Atstatyti',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Naršyti po serverį',
- url : 'URL',
- protocol : 'Protokolas',
- upload : 'Siųsti',
- uploadSubmit : 'Siųsti į serverį',
- image : 'Vaizdas',
- flash : 'Flash',
- form : 'Forma',
- checkbox : 'Žymimasis langelis',
- radio : 'Žymimoji akutÄ',
- textField : 'Teksto laukas',
- textarea : 'Teksto sritis',
- hiddenField : 'Nerodomas laukas',
- button : 'Mygtukas',
- select : 'Atrankos laukas',
- imageButton : 'Vaizdinis mygtukas',
- notSet : '<nÄra nustatyta>',
- id : 'Id',
- name : 'Vardas',
- langDir : 'Teksto kryptis',
- langDirLtr : 'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',
- langDirRtl : 'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',
- langCode : 'Kalbos kodas',
- longDescr : 'Ilgas aprašymas URL',
- cssClass : 'Stilių lentelÄs klasÄs',
- advisoryTitle : 'KonsultacinÄ antraÅ¡tÄ',
- cssStyle : 'Stilius',
- ok : 'OK',
- cancel : 'Nutraukti',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Bendros savybÄs',
- advancedTab : 'Papildomas',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Įterpti specialų simbolį',
- title : 'Pasirinkite specialų simbolį',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ä®terpti/taisyti nuorodÄ
',
- other : '<kitas>',
- menu : 'Taisyti nuorodÄ
',
- title : 'Nuoroda',
- info : 'Nuorodos informacija',
- target : 'Paskirties vieta',
- upload : 'Siųsti',
- advanced : 'Papildomas',
- type : 'Nuorodos tipas',
- toUrl : 'URL', // MISSING
- toAnchor : 'ŽymÄ Å¡iame puslapyje',
- toEmail : 'El.paštas',
- targetFrame : '<kadras>',
- targetPopup : '<išskleidžiamas langas>',
- targetFrameName : 'Paskirties kadro vardas',
- targetPopupName : 'Paskirties lango vardas',
- popupFeatures : 'IÅ¡skleidžiamo lango savybÄs',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Būsenos juosta',
- popupLocationBar: 'Adreso juosta',
- popupToolbar : 'Mygtukų juosta',
- popupMenuBar : 'Meniu juosta',
- popupFullScreen : 'Visas ekranas (IE)',
- popupScrollBars : 'Slinkties juostos',
- popupDependent : 'Priklausomas (Netscape)',
- popupWidth : 'Plotis',
- popupLeft : 'KairÄ pozicija',
- popupHeight : 'Aukštis',
- popupTop : 'VirÅ¡utinÄ pozicija',
- id : 'Id', // MISSING
- langDir : 'Teksto kryptis',
- langDirLTR : 'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',
- langDirRTL : 'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',
- acccessKey : 'Prieigos raktas',
- name : 'Vardas',
- langCode : 'Teksto kryptis',
- tabIndex : 'Tabuliavimo indeksas',
- advisoryTitle : 'KonsultacinÄ antraÅ¡tÄ',
- advisoryContentType : 'Konsultacinio turinio tipas',
- cssClasses : 'Stilių lentelÄs klasÄs',
- charset : 'Susietų iÅ¡teklių simbolių lentelÄ',
- styles : 'Stilius',
- selectAnchor : 'Pasirinkite žymÄ',
- anchorName : 'Pagal žymÄs vardÄ
',
- anchorId : 'Pagal žymÄs Id',
- emailAddress : 'El.pašto adresas',
- emailSubject : 'ŽinutÄs tema',
- emailBody : 'ŽinutÄs turinys',
- noAnchors : '(Å iame dokumente žymių nÄra)',
- noUrl : 'Prašome įvesti nuorodos URL',
- noEmail : 'PraÅ¡ome įvesti el.paÅ¡to adresÄ
'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ä®terpti/modifikuoti žymÄ',
- menu : 'ŽymÄs savybÄs',
- title : 'ŽymÄs savybÄs',
- name : 'ŽymÄs vardas',
- errorName : 'PraÅ¡ome įvesti žymÄs vardÄ
'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Surasti ir pakeisti',
- find : 'Rasti',
- replace : 'Pakeisti',
- findWhat : 'Surasti tekstÄ
:',
- replaceWith : 'Pakeisti tekstu:',
- notFoundMsg : 'Nurodytas tekstas nerastas.',
- matchCase : 'Skirti didžiÄ
sias ir mažÄ
sias raides',
- matchWord : 'Atitikti pilnÄ
žodį',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Pakeisti viskÄ
',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'LentelÄ',
- title : 'LentelÄs savybÄs',
- menu : 'LentelÄs savybÄs',
- deleteTable : 'Å alinti lentelÄ',
- rows : 'EilutÄs',
- columns : 'Stulpeliai',
- border : 'RÄmelio dydis',
- align : 'Lygiuoti',
- alignLeft : 'KairÄ',
- alignCenter : 'CentrÄ
',
- alignRight : 'DeÅ¡inÄ',
- width : 'Plotis',
- widthPx : 'taškais',
- widthPc : 'procentais',
- widthUnit : 'width unit', // MISSING
- height : 'Aukštis',
- cellSpace : 'Tarpas tarp langelių',
- cellPad : 'Trapas nuo langelio rÄmo iki teksto',
- caption : 'AntraÅ¡tÄ',
- summary : 'Santrauka',
- headers : 'AntraÅ¡tÄs',
- headersNone : 'NÄra',
- headersColumn : 'Pirmas stulpelis',
- headersRow : 'Pirma eilutÄ',
- headersBoth : 'Abu',
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Langelis',
- insertBefore : 'Įterpti langelį prieš',
- insertAfter : 'Įterpti langelį po',
- deleteCell : 'Å alinti langelius',
- merge : 'Sujungti langelius',
- mergeRight : 'Sujungti su dešine',
- mergeDown : 'Sujungti su apaÄia',
- splitHorizontal : 'Skaidyti langelį horizontaliai',
- splitVertical : 'Skaidyti langelį vertikaliai',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'EilutÄ',
- insertBefore : 'Ä®terpti eilutÄ prieÅ¡',
- insertAfter : 'Ä®terpti eilutÄ po',
- deleteRow : 'Å alinti eilutes'
- },
-
- column :
- {
- menu : 'Stulpelis',
- insertBefore : 'Įterpti stulpelį prieš',
- insertAfter : 'Įterpti stulpelį po',
- deleteColumn : 'Å alinti stulpelius'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Mygtuko savybÄs',
- text : 'Tekstas (ReikÅ¡mÄ)',
- type : 'Tipas',
- typeBtn : 'Mygtukas',
- typeSbm : 'Siųsti',
- typeRst : 'Išvalyti'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Žymimojo langelio savybÄs',
- radioTitle : 'Žymimosios akutÄs savybÄs',
- value : 'ReikÅ¡mÄ',
- selected : 'PažymÄtas'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Formos savybÄs',
- menu : 'Formos savybÄs',
- action : 'Veiksmas',
- method : 'Metodas',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Atrankos lauko savybÄs',
- selectInfo : 'Informacija',
- opAvail : 'Galimos parinktys',
- value : 'ReikÅ¡mÄ',
- size : 'Dydis',
- lines : 'eiluÄių',
- chkMulti : 'Leisti daugeriopÄ
atrankÄ
',
- opText : 'Tekstas',
- opValue : 'ReikÅ¡mÄ',
- btnAdd : 'Įtraukti',
- btnModify : 'Modifikuoti',
- btnUp : 'Aukštyn',
- btnDown : 'Žemyn',
- btnSetValue : 'Laikyti pažymÄta reikÅ¡me',
- btnDelete : 'Trinti'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Teksto srities savybÄs',
- cols : 'Ilgis',
- rows : 'Plotis'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Teksto lauko savybÄs',
- name : 'Vardas',
- value : 'ReikÅ¡mÄ',
- charWidth : 'Ilgis simboliais',
- maxChars : 'Maksimalus simbolių skaiÄius',
- type : 'Tipas',
- typeText : 'Tekstas',
- typePass : 'Slaptažodis'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Nerodomo lauko savybÄs',
- name : 'Vardas',
- value : 'ReikÅ¡mÄ'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Vaizdo savybÄs',
- titleButton : 'Vaizdinio mygtuko savybÄs',
- menu : 'Vaizdo savybÄs',
- infoTab : 'Vaizdo informacija',
- btnUpload : 'Siųsti į serverį',
- upload : 'Nusiųsti',
- alt : 'Alternatyvus Tekstas',
- width : 'Plotis',
- height : 'Aukštis',
- lockRatio : 'IÅ¡laikyti proporcijÄ
',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Atstatyti dydį',
- border : 'RÄmelis',
- hSpace : 'Hor.ErdvÄ',
- vSpace : 'Vert.ErdvÄ',
- align : 'Lygiuoti',
- alignLeft : 'KairÄ',
- alignRight : 'DeÅ¡inÄ',
- alertUrl : 'Prašome įvesti vaizdo URL',
- linkTab : 'Nuoroda',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash savybÄs',
- propertiesTab : 'Properties', // MISSING
- title : 'Flash savybÄs',
- chkPlay : 'Automatinis paleidimas',
- chkLoop : 'Ciklas',
- chkMenu : 'Leisti Flash meniu',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Mastelis',
- scaleAll : 'Rodyti visÄ
',
- scaleNoBorder : 'Be rÄmelio',
- scaleFit : 'Tikslus atitikimas',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Lygiuoti',
- alignLeft : 'KairÄ',
- alignAbsBottom : 'AbsoliuÄiÄ
apaÄiÄ
',
- alignAbsMiddle : 'Absoliutų vidurį',
- alignBaseline : 'ApatinÄ linijÄ
',
- alignBottom : 'ApaÄiÄ
',
- alignMiddle : 'Vidurį',
- alignRight : 'DeÅ¡inÄ',
- alignTextTop : 'Teksto viršūnÄ',
- alignTop : 'ViršūnÄ',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Fono spalva',
- width : 'Plotis',
- height : 'Aukštis',
- hSpace : 'Hor.ErdvÄ',
- vSpace : 'Vert.ErdvÄ',
- validateSrc : 'Prašome įvesti nuorodos URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Rašybos tikrinimas',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Žodyne nerastas',
- changeTo : 'Pakeisti į',
- btnIgnore : 'Ignoruoti',
- btnIgnoreAll : 'Ignoruoti visus',
- btnReplace : 'Pakeisti',
- btnReplaceAll : 'Pakeisti visus',
- btnUndo : 'Atšaukti',
- noSuggestions : '- NÄra pasiÅ«lymų -',
- progress : 'Vyksta rašybos tikrinimas...',
- noMispell : 'Rašybos tikrinimas baigtas: Nerasta rašybos klaidų',
- noChanges : 'RaÅ¡ybos tikrinimas baigtas: NÄra pakeistų žodžių',
- oneChange : 'Rašybos tikrinimas baigtas: Vienas žodis pakeistas',
- manyChanges : 'Rašybos tikrinimas baigtas: Pakeista %1 žodžių',
- ieSpellDownload : 'Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?'
- },
-
- smiley :
- {
- toolbar : 'Veideliai',
- title : 'Įterpti veidelį',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Numeruotas sÄ
rašas',
- bulletedlist : 'Suženklintas sÄ
rašas',
- indent : 'Padidinti įtraukÄ
',
- outdent : 'Sumažinti įtraukÄ
',
-
- justify :
- {
- left : 'Lygiuoti kairÄ',
- center : 'Centruoti',
- right : 'Lygiuoti deÅ¡inÄ',
- block : 'Lygiuoti abi puses'
- },
-
- blockquote : 'Citata',
-
- clipboard :
- {
- title : 'Ä®dÄti',
- cutError : 'JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti iÅ¡kirpimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+X).',
- copyError : 'JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti kopijavimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+C).',
- pasteMsg : 'Žemiau esanÄiame įvedimo lauke įdÄkite tekstÄ
, naudodami klaviatÅ«rÄ
(<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtukÄ
<STRONG>OK</STRONG>.',
- securityMsg : 'DÄl jÅ«sų narÅ¡yklÄs saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartÄ
į šį langÄ
.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Ä®dÄti iÅ¡ Word',
- title : 'Ä®dÄti iÅ¡ Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Ä®dÄti kaip grynÄ
tekstÄ
',
- title : 'Ä®dÄti kaip grynÄ
tekstÄ
'
- },
-
- templates :
- {
- button : 'Å ablonai',
- title : 'Turinio šablonai',
- options : 'Template Options', // MISSING
- insertOption : 'Pakeisti dabartinį turinį pasirinktu šablonu',
- selectPromptMsg : 'Pasirinkite norimÄ
Å¡ablonÄ
<br>(<b>DÄmesio!</b> esamas turinys bus prarastas):',
- emptyListMsg : '(Å ablonų sÄ
raÅ¡as tuÅ¡Äias)'
- },
-
- showBlocks : 'Rodyti blokus',
-
- stylesCombo :
- {
- label : 'Stilius',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Å rifto formatas',
- panelTitle : 'Å rifto formatas',
-
- tag_p : 'Normalus',
- tag_pre : 'Formuotas',
- tag_address : 'Kreipinio',
- tag_h1 : 'Antraštinis 1',
- tag_h2 : 'Antraštinis 2',
- tag_h3 : 'Antraštinis 3',
- tag_h4 : 'Antraštinis 4',
- tag_h5 : 'Antraštinis 5',
- tag_h6 : 'Antraštinis 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Å riftas',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Å riftas'
- },
-
- fontSize :
- {
- label : 'Å rifto dydis',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Å rifto dydis'
- },
-
- colorButton :
- {
- textColorTitle : 'Teksto spalva',
- bgColorTitle : 'Fono spalva',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatinis',
- more : 'Daugiau spalvų...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Lithuanian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'lt' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Pilnas redaktorius',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Spauskite ALT 0 dÄl pagalbos',
+
+ browseServer: 'Naršyti po serverį',
+ url: 'URL',
+ protocol: 'Protokolas',
+ upload: 'Siųsti',
+ uploadSubmit: 'Siųsti į serverį',
+ image: 'Vaizdas',
+ flash: 'Flash',
+ form: 'Forma',
+ checkbox: 'Žymimasis langelis',
+ radio: 'Žymimoji akutÄ',
+ textField: 'Teksto laukas',
+ textarea: 'Teksto sritis',
+ hiddenField: 'Nerodomas laukas',
+ button: 'Mygtukas',
+ select: 'Atrankos laukas',
+ imageButton: 'Vaizdinis mygtukas',
+ notSet: '<nÄra nustatyta>',
+ id: 'Id',
+ name: 'Vardas',
+ langDir: 'Teksto kryptis',
+ langDirLtr: 'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',
+ langDirRtl: 'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',
+ langCode: 'Kalbos kodas',
+ longDescr: 'Ilgas aprašymas URL',
+ cssClass: 'Stilių lentelÄs klasÄs',
+ advisoryTitle: 'KonsultacinÄ antraÅ¡tÄ',
+ cssStyle: 'Stilius',
+ ok: 'OK',
+ cancel: 'Nutraukti',
+ close: 'Uždaryti',
+ preview: 'PeržiÅ«rÄti',
+ resize: 'Pavilkite, kad pakeistumÄte dydį',
+ generalTab: 'Bendros savybÄs',
+ advancedTab: 'Papildomas',
+ validateNumberFailed: 'Å i reikÅ¡mÄ nÄra skaiÄius.',
+ confirmNewPage: 'Visas neiÅ¡saugotas turinys bus prarastas. Ar tikrai norite įkrauti naujÄ
puslapį?',
+ confirmCancel: 'Kai kurie parametrai pasikeitÄ. Ar tikrai norite užverti langÄ
?',
+ options: 'Parametrai',
+ target: 'TikslinÄ nuoroda',
+ targetNew: 'Naujas langas (_blank)',
+ targetTop: 'Viršutinis langas (_top)',
+ targetSelf: 'Esamas langas (_self)',
+ targetParent: 'Paskutinis langas (_parent)',
+ langDirLTR: 'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',
+ langDirRTL: 'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',
+ styles: 'Stilius',
+ cssClasses: 'Stilių klasÄs',
+ width: 'Plotis',
+ height: 'Aukštis',
+ align: 'Lygiuoti',
+ alignLeft: 'KairÄ',
+ alignRight: 'DeÅ¡inÄ',
+ alignCenter: 'CentrÄ
',
+ alignTop: 'ViršūnÄ',
+ alignMiddle: 'Vidurį',
+ alignBottom: 'ApaÄiÄ
',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'AukÅ¡tis turi bÅ«ti nurodytas skaiÄiais.',
+ invalidWidth: 'Plotis turi bÅ«ti nurodytas skaiÄiais.',
+ invalidCssLength: 'ReikÅ¡mÄ nurodyta "%1" laukui, turi bÅ«ti teigiamas skaiÄius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).',
+ invalidHtmlLength: 'ReikÅ¡mÄ nurodyta "%1" laukui, turi bÅ«ti teigiamas skaiÄius su arba be tinkamo HTML matavimo vieneto (px arba %).',
+ invalidInlineStyle: 'ReikÅ¡mÄ nurodyta vidiniame stiliuje turi bÅ«ti sudaryta iÅ¡ vieno Å¡ių reikÅ¡mių "vardas : reikÅ¡mÄ", atskirta kabliataÅ¡kiais.',
+ cssLengthTooltip: 'Ä®veskite reikÅ¡mÄ pikseliais arba skaiÄiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, netinkamas</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/lv.js b/devel/third-party/ckeditor/lang/lv.js
index 9fdd249..e016990 100644
--- a/devel/third-party/ckeditor/lang/lv.js
+++ b/devel/third-party/ckeditor/lang/lv.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Latvian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['lv'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'HTML kods',
- newPage : 'Jauna lapa',
- save : 'SaglabÄt',
- preview : 'PÄrskatÄ«t',
- cut : 'Izgriezt',
- copy : 'KopÄt',
- paste : 'Ievietot',
- print : 'DrukÄt',
- underline : 'Apakšsvītra',
- bold : 'Treknu šriftu',
- italic : 'SlÄ«prakstÄ',
- selectAll : 'IezÄ«mÄt visu',
- removeFormat : 'NoÅemt stilus',
- strike : 'PÄrsvÄ«trots',
- subscript : 'ZemrakstÄ',
- superscript : 'AugÅ¡rakstÄ',
- horizontalrule : 'Ievietot horizontÄlu AtdalÄ«tÄjsvÄ«tru',
- pagebreak : 'Ievietot lapas pÄrtraukumu',
- unlink : 'NoÅemt hipersaiti',
- undo : 'Atcelt',
- redo : 'AtkÄrtot',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Skatīt servera saturu',
- url : 'URL',
- protocol : 'Protokols',
- upload : 'AugÅ¡upielÄdÄt',
- uploadSubmit : 'Nosūtīt serverim',
- image : 'AttÄls',
- flash : 'Flash',
- form : 'Forma',
- checkbox : 'AtzÄ«mÄÅ¡anas kastÄ«te',
- radio : 'IzvÄles poga',
- textField : 'Teksta rinda',
- textarea : 'Teksta laukums',
- hiddenField : 'PaslÄpta teksta rinda',
- button : 'Poga',
- select : 'IezÄ«mÄÅ¡anas lauks',
- imageButton : 'AttÄlpoga',
- notSet : '<nav iestatīts>',
- id : 'Id',
- name : 'Nosaukums',
- langDir : 'Valodas lasīšanas virziens',
- langDirLtr : 'No kreisÄs uz labo (LTR)',
- langDirRtl : 'No labÄs uz kreiso (RTL)',
- langCode : 'Valodas kods',
- longDescr : 'Gara apraksta Hipersaite',
- cssClass : 'Stilu saraksta klases',
- advisoryTitle : 'Konsultatīvs virsraksts',
- cssStyle : 'Stils',
- ok : 'Darīts!',
- cancel : 'Atcelt',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'IzvÄrstais',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Ievietot speciÄlo simbolu',
- title : 'Ievietot īpašu simbolu',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ievietot/Labot hipersaiti',
- other : '<cits>',
- menu : 'Labot hipersaiti',
- title : 'Hipersaite',
- info : 'Hipersaites informÄcija',
- target : 'MÄrÄ·is',
- upload : 'AugÅ¡upielÄdÄt',
- advanced : 'IzvÄrstais',
- type : 'Hipersaites tips',
- toUrl : 'URL', // MISSING
- toAnchor : 'IezÄ«me Å¡ajÄ lapÄ',
- toEmail : 'E-pasts',
- targetFrame : '<ietvars>',
- targetPopup : '<uznirstoÅ¡Ä logÄ>',
- targetFrameName : 'MÄrÄ·a ietvara nosaukums',
- targetPopupName : 'UznirstoÅ¡Ä loga nosaukums',
- popupFeatures : 'UznirstoÅ¡Ä loga nosaukums Ä«pašības',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Statusa josla',
- popupLocationBar: 'AtraÅ¡anÄs vietas josla',
- popupToolbar : 'Rīku josla',
- popupMenuBar : 'IzvÄlnes josla',
- popupFullScreen : 'PilnÄ ekrÄnÄ (IE)',
- popupScrollBars : 'Ritjoslas',
- popupDependent : 'Atkarīgs (Netscape)',
- popupWidth : 'Platums',
- popupLeft : 'KreisÄ koordinÄte',
- popupHeight : 'Augstums',
- popupTop : 'AugÅ¡ÄjÄ koordinÄte',
- id : 'Id', // MISSING
- langDir : 'Valodas lasīšanas virziens',
- langDirLTR : 'No kreisÄs uz labo (LTR)',
- langDirRTL : 'No labÄs uz kreiso (RTL)',
- acccessKey : 'Pieejas kods',
- name : 'Nosaukums',
- langCode : 'Valodas lasīšanas virziens',
- tabIndex : 'CiļÅu indekss',
- advisoryTitle : 'Konsultatīvs virsraksts',
- advisoryContentType : 'Konsultatīvs satura tips',
- cssClasses : 'Stilu saraksta klases',
- charset : 'PievienotÄ resursa kodu tabula',
- styles : 'Stils',
- selectAnchor : 'IzvÄlÄties iezÄ«mi',
- anchorName : 'PÄc iezÄ«mes nosaukuma',
- anchorId : 'PÄc elementa ID',
- emailAddress : 'E-pasta adrese',
- emailSubject : 'ZiÅas tÄma',
- emailBody : 'ZiÅas saturs',
- noAnchors : '(Å ajÄ dokumentÄ nav iezÄ«mju)',
- noUrl : 'LÅ«dzu norÄdi hipersaiti',
- noEmail : 'LÅ«dzu norÄdi e-pasta adresi'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ievietot/Labot iezīmi',
- menu : 'Iezīmes īpašības',
- title : 'Iezīmes īpašības',
- name : 'Iezīmes nosaukums',
- errorName : 'LÅ«dzu norÄdiet iezÄ«mes nosaukumu'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'MeklÄt',
- replace : 'Nomainīt',
- findWhat : 'MeklÄt:',
- replaceWith : 'Nomainīt uz:',
- notFoundMsg : 'NorÄdÄ«tÄ frÄze netika atrasta.',
- matchCase : 'Reģistrjūtīgs',
- matchWord : 'JÄsakrÄ«t pilnÄ«bÄ',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Aizvietot visu',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabula',
- title : 'Tabulas īpašības',
- menu : 'Tabulas īpašības',
- deleteTable : 'DzÄst tabulu',
- rows : 'Rindas',
- columns : 'Kolonnas',
- border : 'RÄmja izmÄrs',
- align : 'Novietojums',
- alignLeft : 'Pa kreisi',
- alignCenter : 'CentrÄti',
- alignRight : 'Pa labi',
- width : 'Platums',
- widthPx : 'pikseļos',
- widthPc : 'procentuÄli',
- widthUnit : 'width unit', // MISSING
- height : 'Augstums',
- cellSpace : 'RÅ«tiÅu atstatums',
- cellPad : 'RÅ«tiÅu nobÄ«de',
- caption : 'Leģenda',
- summary : 'AnotÄcija',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Šūna',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'DzÄst rÅ«tiÅas',
- merge : 'Apvienot rÅ«tiÅas',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Rinda',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'DzÄst rindas'
- },
-
- column :
- {
- menu : 'Kolonna',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'DzÄst kolonnas'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Pogas īpašības',
- text : 'Teksts (vÄrtÄ«ba)',
- type : 'Tips',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'AtzÄ«mÄÅ¡anas kastÄ«tes Ä«pašības',
- radioTitle : 'IzvÄles poga Ä«pašības',
- value : 'VÄrtÄ«ba',
- selected : 'IezÄ«mÄts'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Formas īpašības',
- menu : 'Formas īpašības',
- action : 'Darbība',
- method : 'Metode',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'IezÄ«mÄÅ¡anas lauka Ä«pašības',
- selectInfo : 'InformÄcija',
- opAvail : 'PieejamÄs iespÄjas',
- value : 'VÄrtÄ«ba',
- size : 'IzmÄrs',
- lines : 'rindas',
- chkMulti : 'Atļaut vairÄkus iezÄ«mÄjumus',
- opText : 'Teksts',
- opValue : 'VÄrtÄ«ba',
- btnAdd : 'Pievienot',
- btnModify : 'Veikt izmaiÅas',
- btnUp : 'Augšup',
- btnDown : 'Lejup',
- btnSetValue : 'Noteikt kÄ iezÄ«mÄto vÄrtÄ«bu',
- btnDelete : 'DzÄst'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Teksta laukuma īpašības',
- cols : 'Kolonnas',
- rows : 'Rindas'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Teksta rindas īpašības',
- name : 'Nosaukums',
- value : 'VÄrtÄ«ba',
- charWidth : 'Simbolu platums',
- maxChars : 'Simbolu maksimÄlais daudzums',
- type : 'Tips',
- typeText : 'Teksts',
- typePass : 'Parole'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'PaslÄptÄs teksta rindas Ä«pašības',
- name : 'Nosaukums',
- value : 'VÄrtÄ«ba'
- },
-
- // Image Dialog.
- image :
- {
- title : 'AttÄla Ä«pašības',
- titleButton : 'AttÄlpogas Ä«pašības',
- menu : 'AttÄla Ä«pašības',
- infoTab : 'InformÄcija par attÄlu',
- btnUpload : 'Nosūtīt serverim',
- upload : 'AugÅ¡upielÄdÄt',
- alt : 'Alternatīvais teksts',
- width : 'Platums',
- height : 'Augstums',
- lockRatio : 'Nemainīga Augstuma/Platuma attiecība',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Atjaunot sÄkotnÄjo izmÄru',
- border : 'RÄmis',
- hSpace : 'HorizontÄlÄ telpa',
- vSpace : 'VertikÄlÄ telpa',
- align : 'NolÄ«dzinÄt',
- alignLeft : 'Pa kreisi',
- alignRight : 'Pa labi',
- alertUrl : 'LÅ«dzu norÄdÄ«t attÄla hipersaiti',
- linkTab : 'Hipersaite',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash īpašības',
- propertiesTab : 'Properties', // MISSING
- title : 'Flash īpašības',
- chkPlay : 'AutomÄtiska atskaÅoÅ¡ana',
- chkLoop : 'NepÄrtraukti',
- chkMenu : 'Atļaut Flash izvÄlni',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'MainÄ«t izmÄru',
- scaleAll : 'RÄdÄ«t visu',
- scaleNoBorder : 'Bez rÄmja',
- scaleFit : 'PrecÄ«zs izmÄrs',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'NolÄ«dzinÄt',
- alignLeft : 'Pa kreisi',
- alignAbsBottom : 'AbsolÅ«ti apakÅ¡Ä',
- alignAbsMiddle : 'AbsolÅ«ti vertikÄli centrÄts',
- alignBaseline : 'PamatrindÄ',
- alignBottom : 'ApakÅ¡Ä',
- alignMiddle : 'VertikÄli centrÄts',
- alignRight : 'Pa labi',
- alignTextTop : 'Teksta augÅ¡Ä',
- alignTop : 'AugÅ¡Ä',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Fona krÄsa',
- width : 'Platums',
- height : 'Augstums',
- hSpace : 'HorizontÄlÄ telpa',
- vSpace : 'VertikÄlÄ telpa',
- validateSrc : 'LÅ«dzu norÄdi hipersaiti',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'PareizrakstÄ«bas pÄrbaude',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Netika atrasts vÄrdnÄ«cÄ',
- changeTo : 'Nomainīt uz',
- btnIgnore : 'IgnorÄt',
- btnIgnoreAll : 'IgnorÄt visu',
- btnReplace : 'Aizvietot',
- btnReplaceAll : 'Aizvietot visu',
- btnUndo : 'Atcelt',
- noSuggestions : '- Nav ieteikumu -',
- progress : 'Notiek pareizrakstÄ«bas pÄrbaude...',
- noMispell : 'PareizrakstÄ«bas pÄrbaude pabeigta: kļūdas netika atrastas',
- noChanges : 'PareizrakstÄ«bas pÄrbaude pabeigta: nekas netika labots',
- oneChange : 'PareizrakstÄ«bas pÄrbaude pabeigta: 1 vÄrds izmainÄ«ts',
- manyChanges : 'PareizrakstÄ«bas pÄrbaude pabeigta: %1 vÄrdi tika mainÄ«ti',
- ieSpellDownload : 'PareizrakstÄ«bas pÄrbaudÄ«tÄjs nav pievienots. Vai vÄlaties to lejupielÄdÄt tagad?'
- },
-
- smiley :
- {
- toolbar : 'SmaidiÅi',
- title : 'Ievietot smaidiÅu',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'NumurÄts saraksts',
- bulletedlist : 'Izcelts saraksts',
- indent : 'PalielinÄt atkÄpi',
- outdent : 'SamazinÄt atkÄpi',
-
- justify :
- {
- left : 'IzlÄ«dzinÄt pa kreisi',
- center : 'IzlÄ«dzinÄt pret centru',
- right : 'IzlÄ«dzinÄt pa labi',
- block : 'IzlÄ«dzinÄt malas'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Ievietot',
- cutError : 'JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj editoram automÄtiski veikt izgrieÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+X, lai veiktu Å¡o darbÄ«bu.',
- copyError : 'JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj editoram automÄtiski veikt kopÄÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+C), lai veiktu Å¡o darbÄ«bu.',
- pasteMsg : 'LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Ievietot no Worda',
- title : 'Ievietot no Worda',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Ievietot kÄ vienkÄrÅ¡u tekstu',
- title : 'Ievietot kÄ vienkÄrÅ¡u tekstu'
- },
-
- templates :
- {
- button : 'Sagataves',
- title : 'Satura sagataves',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'LÅ«dzu, norÄdiet sagatavi, ko atvÄrt editorÄ<br>(patreizÄjie dati tiks zaudÄti):',
- emptyListMsg : '(Nav norÄdÄ«tas sagataves)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Stils',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'FormÄts',
- panelTitle : 'FormÄts',
-
- tag_p : 'NormÄls teksts',
- tag_pre : 'FormatÄts teksts',
- tag_address : 'Adrese',
- tag_h1 : 'Virsraksts 1',
- tag_h2 : 'Virsraksts 2',
- tag_h3 : 'Virsraksts 3',
- tag_h4 : 'Virsraksts 4',
- tag_h5 : 'Virsraksts 5',
- tag_h6 : 'Virsraksts 6',
- tag_div : 'Rindkopa (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Å rifts',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Å rifts'
- },
-
- fontSize :
- {
- label : 'IzmÄrs',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'IzmÄrs'
- },
-
- colorButton :
- {
- textColorTitle : 'Teksta krÄsa',
- bgColorTitle : 'Fona krÄsa',
- panelTitle : 'Colors', // MISSING
- auto : 'AutomÄtiska',
- more : 'PlaÅ¡Äka palete...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Latvian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'lv' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'BagÄtinÄtÄ teksta redaktors',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Palīdzībai, nospiediet ALT 0 ',
+
+ browseServer: 'Skatīt servera saturu',
+ url: 'URL',
+ protocol: 'Protokols',
+ upload: 'AugÅ¡upielÄdÄt',
+ uploadSubmit: 'Nosūtīt serverim',
+ image: 'AttÄls',
+ flash: 'Flash',
+ form: 'Forma',
+ checkbox: 'AtzÄ«mÄÅ¡anas kastÄ«te',
+ radio: 'IzvÄles poga',
+ textField: 'Teksta rinda',
+ textarea: 'Teksta laukums',
+ hiddenField: 'PaslÄpta teksta rinda',
+ button: 'Poga',
+ select: 'IezÄ«mÄÅ¡anas lauks',
+ imageButton: 'AttÄlpoga',
+ notSet: '<nav iestatīts>',
+ id: 'Id',
+ name: 'Nosaukums',
+ langDir: 'Valodas lasīšanas virziens',
+ langDirLtr: 'No kreisÄs uz labo (LTR)',
+ langDirRtl: 'No labÄs uz kreiso (RTL)',
+ langCode: 'Valodas kods',
+ longDescr: 'Gara apraksta Hipersaite',
+ cssClass: 'Stilu saraksta klases',
+ advisoryTitle: 'Konsultatīvs virsraksts',
+ cssStyle: 'Stils',
+ ok: 'Darīts!',
+ cancel: 'Atcelt',
+ close: 'AizvÄrt',
+ preview: 'Priekšskatījums',
+ resize: 'MÄrogot',
+ generalTab: 'VispÄrÄ«gi',
+ advancedTab: 'IzvÄrstais',
+ validateNumberFailed: 'Å Ä« vÄrtÄ«ba nav skaitlis',
+ confirmNewPage: 'Jebkuras nesaglabÄtÄs izmaiÅas tiks zaudÄtas. Vai tieÅ¡Äm vÄlaties atvÄrt jaunu lapu?',
+ confirmCancel: 'Daži no uzstÄdÄ«jumiem ir mainÄ«ti. Vai tieÅ¡Äm vÄlaties aizvÄrt Å¡o dialogu?',
+ options: 'UzstÄdÄ«jumi',
+ target: 'MÄrÄ·is',
+ targetNew: 'Jauns logs (_blank)',
+ targetTop: 'VirsÄjais logs (_top)',
+ targetSelf: 'Tas pats logs (_self)',
+ targetParent: 'Avota logs (_parent)',
+ langDirLTR: 'Kreisais uz Labo (LTR)',
+ langDirRTL: 'Labais uz Kreiso (RTL)',
+ styles: 'Stils',
+ cssClasses: 'Stilu klases',
+ width: 'Platums',
+ height: 'Augstums',
+ align: 'NolÄ«dzinÄt',
+ alignLeft: 'Pa kreisi',
+ alignRight: 'Pa labi',
+ alignCenter: 'CentrÄti',
+ alignTop: 'AugÅ¡Ä',
+ alignMiddle: 'VertikÄli centrÄts',
+ alignBottom: 'ApakÅ¡Ä',
+ invalidValue : 'Nekorekta vÄrtÄ«ba',
+ invalidHeight: 'Augstumam jÄbÅ«t skaitlim.',
+ invalidWidth: 'Platumam jÄbÅ«t skaitlim',
+ invalidCssLength: 'Laukam "%1" norÄdÄ«tajai vÄrtÄ«bai jÄbÅ«t pozitÄ«vam skaitlim ar vai bez korektÄm CSS mÄrvienÄ«bÄm (px, %, in, cm, mm, em, ex, pt, vai pc).',
+ invalidHtmlLength: 'Laukam "%1" norÄdÄ«tajai vÄrtÄ«bai jÄbÅ«t pozitÄ«vam skaitlim ar vai bez korektÄm HTML mÄrvienÄ«bÄm (px vai %).',
+ invalidInlineStyle: 'IekļautajÄ stilÄ norÄdÄ«tajai vÄrtÄ«bai jÄsastÄv no viena vai vairÄkiem pÄriem pÄc forma\'ta "nosaukums: vÄrtÄ«ba", atdalÄ«tiem ar semikolu.',
+ cssLengthTooltip: 'Ievadiet vÄrtÄ«bu pikseļos vai skaitli ar derÄ«gu CSS mÄrvienÄ«bu (px, %, in, cm, mm, em, ex, pt, vai pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nav pieejams</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/mk.js b/devel/third-party/ckeditor/lang/mk.js
new file mode 100644
index 0000000..f47fd34
--- /dev/null
+++ b/devel/third-party/ckeditor/lang/mk.js
@@ -0,0 +1,104 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'mk' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr', // MISSING
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Browse Server', // MISSING
+ url: 'URL', // MISSING
+ protocol: 'Protocol', // MISSING
+ upload: 'Upload', // MISSING
+ uploadSubmit: 'Send it to the Server', // MISSING
+ image: 'Image', // MISSING
+ flash: 'Flash', // MISSING
+ form: 'Form', // MISSING
+ checkbox: 'Checkbox', // MISSING
+ radio: 'Radio Button', // MISSING
+ textField: 'Text Field', // MISSING
+ textarea: 'Textarea', // MISSING
+ hiddenField: 'Hidden Field', // MISSING
+ button: 'Button',
+ select: 'Selection Field', // MISSING
+ imageButton: 'Image Button', // MISSING
+ notSet: '<not set>',
+ id: 'Id', // MISSING
+ name: 'Name',
+ langDir: 'Language Direction', // MISSING
+ langDirLtr: 'Left to Right (LTR)', // MISSING
+ langDirRtl: 'Right to Left (RTL)', // MISSING
+ langCode: 'Language Code', // MISSING
+ longDescr: 'Long Description URL', // MISSING
+ cssClass: 'Stylesheet Classes', // MISSING
+ advisoryTitle: 'Advisory Title', // MISSING
+ cssStyle: 'Style', // MISSING
+ ok: 'OK', // MISSING
+ cancel: 'Cancel', // MISSING
+ close: 'Close', // MISSING
+ preview: 'Preview', // MISSING
+ resize: 'Resize', // MISSING
+ generalTab: 'ÐпÑÑо',
+ advancedTab: 'Advanced', // MISSING
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'Target', // MISSING
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Left to Right (LTR)', // MISSING
+ langDirRTL: 'Right to Left (RTL)', // MISSING
+ styles: 'Style', // MISSING
+ cssClasses: 'Stylesheet Classes', // MISSING
+ width: 'Width', // MISSING
+ height: 'Height', // MISSING
+ align: 'Alignment', // MISSING
+ alignLeft: 'Left', // MISSING
+ alignRight: 'Right', // MISSING
+ alignCenter: 'Center', // MISSING
+ alignTop: 'Top', // MISSING
+ alignMiddle: 'Middle', // MISSING
+ alignBottom: 'Bottom', // MISSING
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/mn.js b/devel/third-party/ckeditor/lang/mn.js
index b579edd..200ccbb 100644
--- a/devel/third-party/ckeditor/lang/mn.js
+++ b/devel/third-party/ckeditor/lang/mn.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Mongolian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['mn'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Ðод',
- newPage : 'Ð¨Ð¸Ð½Ñ Ñ
ÑÑдаÑ',
- save : 'ХадгалаÑ
',
- preview : 'УÑидÑлан Ñ
аÑаÑ
',
- cut : 'ХайÑлаÑ
',
- copy : 'Ð¥ÑÑлаÑ
',
- paste : 'ÐÑÑлгаÑ
',
- print : 'Ð¥ÑвлÑÑ
',
- underline : 'ÐоогÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
',
- bold : 'Тод бүдүүн',
- italic : 'ÐалÑÑ',
- selectAll : 'Ðүгдийг Ð½Ñ ÑонгоÑ
',
- removeFormat : 'ФоÑÐ¼Ð°Ñ Ð°Ð²Ñ Ñ
аÑÑ
',
- strike : 'ÐÑндÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
',
- subscript : 'СÑÑÑÑ Ð±Ð¾Ð»Ð³Ð¾Ñ
',
- superscript : 'ÐÑÑÑг болгоÑ
',
- horizontalrule : 'Хөндлөн зÑÑÐ°Ð°Ñ Ð¾ÑÑÑлаÑ
',
- pagebreak : 'Ð¥ÑÑÐ´Ð°Ñ ÑÑÑгааÑÐ»Ð°Ð³Ñ Ð¾ÑÑÑлаÑ
',
- unlink : 'Ðинк Ð°Ð²Ñ Ñ
аÑÑ
',
- undo : 'Ð¥Ò¯Ñингүй болгоÑ
',
- redo : 'ӨмнөÑ
үйлдлÑÑ ÑÑÑгÑÑÑ
',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'СеÑÐ²ÐµÑ Ñ
аÑÑÑлаÑ
',
- url : 'URL',
- protocol : 'ÐÑоÑокол',
- upload : 'Ð¥ÑÑлаÑ
',
- uploadSubmit : 'Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ',
- image : 'ÐÑÑаг',
- flash : 'ФлаÑ',
- form : 'ФоÑм',
- checkbox : 'ЧекбокÑ',
- radio : 'Радио ÑовÑ',
- textField : 'ТеÑ
Ñ ÑалбаÑ',
- textarea : 'ТеÑ
Ñ Ð¾ÑÑин',
- hiddenField : 'ÐÑÑÑ ÑалбаÑ',
- button : 'ТовÑ',
- select : 'Ð¡Ð¾Ð½Ð³Ð¾Ð³Ñ ÑалбаÑ',
- imageButton : 'ÐÑÑагÑай ÑовÑ',
- notSet : '<ÐнооÑ
гүй>',
- id : 'Id',
- name : 'ÐÑÑ',
- langDir : 'Ð¥Ñлний ÑиглÑл',
- langDirLtr : 'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)',
- langDirRtl : 'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)',
- langCode : 'Ð¥Ñлний код',
- longDescr : 'URL-Ñн ÑайлбаÑ',
- cssClass : 'Stylesheet клаÑÑÑÑд',
- advisoryTitle : 'ÐөвлөлдөÑ
гаÑÑиг',
- cssStyle : 'ÐагваÑ',
- ok : 'OK',
- cancel : 'ÐолиÑ
',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'ÐÑмÑлÑ',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ÐнÑгой ÑÑмдÑÐ³Ñ Ð¾ÑÑÑлаÑ
',
- title : 'ÐнÑгой ÑÑмдÑÐ³Ñ ÑонгоÑ
',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Ðинк ÐÑÑÑлаÑ
/ÐаÑваÑлаÑ
',
- other : '<other>', // MISSING
- menu : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°ÑваÑлаÑ
',
- title : 'Ðинк',
- info : 'Ðинкийн мÑдÑÑлÑл',
- target : 'ÐайÑлал',
- upload : 'Ð¥ÑÑлаÑ
',
- advanced : 'ÐÑмÑлÑ',
- type : 'Ðинкийн ÑÓ©Ñөл',
- toUrl : 'URL', // MISSING
- toAnchor : 'ÐÐ½Ñ Ñ
ÑÑдаÑандаÑ
Ñ
олбооÑ',
- toEmail : 'E-Mail',
- targetFrame : '<ÐгÑÑлаÑ
Ñ
Ò¯ÑÑÑ>',
- targetPopup : '<popup ÑонÑ
>',
- targetFrameName : 'ÐÑиÑ
ÑÑемÑн нÑÑ',
- targetPopupName : 'Popup ÑонÑ
Ð½Ñ Ð½ÑÑ',
- popupFeatures : 'Popup ÑонÑ
Ð½Ñ Ð¾Ð½Ñлог',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'СÑаÑÑÑ Ñ
ÑÑÑг',
- popupLocationBar: 'Location Ñ
ÑÑÑг',
- popupToolbar : 'ÐÐ°Ð³Ð°Ð¶Ð½Ñ Ñ
ÑÑÑг',
- popupMenuBar : 'MeÐ½Ñ Ñ
ÑÑÑг',
- popupFullScreen : 'ЦонÑ
дүүÑгÑÑ
(IE)',
- popupScrollBars : 'СкÑол Ñ
ÑÑÑгүүд',
- popupDependent : 'ХамааÑай (Netscape)',
- popupWidth : 'Ó¨Ñгөн',
- popupLeft : 'Ðүүн байÑлал',
- popupHeight : 'ӨндөÑ',
- popupTop : 'ÐÑÑд байÑлал',
- id : 'Id', // MISSING
- langDir : 'Ð¥Ñлний ÑиглÑл',
- langDirLTR : 'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)',
- langDirRTL : 'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)',
- acccessKey : 'ХолбоÑ
ÑүлÑ
Ò¯Ò¯Ñ',
- name : 'ÐÑÑ',
- langCode : 'Ð¥Ñлний ÑиглÑл',
- tabIndex : 'Tab индекÑ',
- advisoryTitle : 'ÐөвлөлдөÑ
гаÑÑиг',
- advisoryContentType : 'ÐөвлөлдөÑ
ÑÓ©Ñлийн агÑÑлга',
- cssClasses : 'Stylesheet клаÑÑÑÑд',
- charset : 'ТÑмдÑÐ³Ñ Ð¾Ð½Ð¾Ð¾Ñ
нөөÑөд Ñ
олбогдÑон',
- styles : 'ÐагваÑ',
- selectAnchor : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑонгоÑ
',
- anchorName : 'ХолбооÑÑн нÑÑÑÑÑ',
- anchorId : 'ÐлемÑÐ½Ñ Id-гааÑ',
- emailAddress : 'E-Mail ХаÑг',
- emailSubject : 'Message гаÑÑиг',
- emailBody : 'Message-ийн агÑÑлга',
- noAnchors : '(ÐаÑÐ¸Ð¼Ñ Ð±Ð¸Ñиг Ñ
олбооÑгүй байна)',
- noUrl : 'Ðинк URL-ÑÑ ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯',
- noEmail : 'Ð-mail Ñ
аÑгаа ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÐÑÑÑлаÑ
/ÐаÑваÑлаÑ
',
- menu : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñинж ÑанаÑ',
- title : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñинж ÑанаÑ',
- name : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð½ÑÑ',
- errorName : 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑÓ©Ñөл оÑÑÑлна ÑÑ'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Хай мөн ÐаÑж биÑ',
- find : 'ХайÑ
',
- replace : 'СолиÑ
',
- findWhat : 'ХайÑ
үг/Ò¯ÑÑг:',
- replaceWith : 'СолиÑ
үг:',
- notFoundMsg : 'ХайÑан ÑекÑÑ Ð¾Ð»Ñонгүй.',
- matchCase : 'ТÑнÑÑÑ
Ñөлөв',
- matchWord : 'ТÑнÑÑÑ
бүÑÑн үг',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Ðүгдийг Ð½Ñ Ð¡Ð¾Ð»Ð¸Ñ
',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Ð¥Ò¯ÑнÑгÑ',
- title : 'Ð¥Ò¯ÑнÑгÑ',
- menu : 'Ð¥Ò¯ÑнÑгÑ',
- deleteTable : 'Ð¥Ò¯ÑнÑÐ³Ñ ÑÑÑгаÑ
',
- rows : 'ÐÓ©Ñ',
- columns : 'Ðагана',
- border : 'Ð¥Ò¯ÑÑÑний Ñ
ÑмжÑÑ',
- align : 'ÐгнÑÑ',
- alignLeft : 'Ðүүн Ñалд',
- alignCenter : 'Төвд',
- alignRight : 'ÐаÑÑÑн Ñалд',
- width : 'Ó¨Ñгөн',
- widthPx : 'ÑÑг',
- widthPc : 'Ñ
ÑвÑ',
- widthUnit : 'width unit', // MISSING
- height : 'ӨндөÑ',
- cellSpace : 'ÐÒ¯Ñ
Ñ
ооÑондÑн зай (spacing)',
- cellPad : 'ÐÒ¯Ñ
доÑоÑлоÑ
(padding)',
- caption : 'ТайлбаÑ',
- summary : 'ТайлбаÑ',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'ÐÒ¯Ñ
/зай',
- insertBefore : 'ÐÒ¯Ñ
/зай өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
',
- insertAfter : 'ÐÒ¯Ñ
/зай даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
',
- deleteCell : 'ÐÒ¯Ñ
ÑÑÑгаÑ
',
- merge : 'ÐÒ¯Ñ
нÑгÑÑÑ
',
- mergeRight : 'ÐаÑÑÑн ÑÐ¸Ð¹Ñ Ð½ÑгÑгÑÑ
',
- mergeDown : 'ÐÐ¾Ð¾Ñ Ð½ÑгÑгÑÑ
',
- splitHorizontal : 'ÐÒ¯Ñ
/зайг боÑÐ¾Ð¾Ð³Ð¾Ð¾Ñ Ð½Ñ ÑÑÑгааÑлаÑ
',
- splitVertical : 'ÐÒ¯Ñ
/зайг Ñ
Ó©Ð½Ð´Ð»Ó©Ð½Ð³Ó©Ó©Ñ Ð½Ñ ÑÑÑгааÑлаÑ
',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'ÐÓ©Ñ',
- insertBefore : 'ÐÓ©Ñ Ó©Ð¼Ð½Ó© Ð½Ñ Ð¾ÑÑÑлаÑ
',
- insertAfter : 'ÐÓ©Ñ Ð´Ð°Ñаа Ð½Ñ Ð¾ÑÑÑлаÑ
',
- deleteRow : 'ÐÓ©Ñ ÑÑÑгаÑ
'
- },
-
- column :
- {
- menu : 'Ðагана',
- insertBefore : 'Ðагана өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
',
- insertAfter : 'Ðагана даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
',
- deleteColumn : 'Ðагана ÑÑÑгаÑ
'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ТовÑÐ½Ñ Ñинж ÑанаÑ',
- text : 'ТÑкÑÑ (УÑга)',
- type : 'ТөÑөл',
- typeBtn : 'ТовÑ',
- typeSbm : 'Submit',
- typeRst : 'ÐолиÑ
'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ЧекбокÑÐ½Ñ Ñинж ÑанаÑ',
- radioTitle : 'Радио ÑовÑÐ½Ñ Ñинж ÑанаÑ',
- value : 'УÑга',
- selected : 'СонгогдÑон'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ФоÑм Ñинж ÑанаÑ',
- menu : 'ФоÑм Ñинж ÑанаÑ',
- action : 'ҮйлдÑл',
- method : 'ÐÑга',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Ð¡Ð¾Ð³Ð¾Ð³Ñ ÑалбаÑÑн Ñинж ÑанаÑ',
- selectInfo : 'ÐÑдÑÑлÑл',
- opAvail : 'ÐдвÑÑ
ÑÑй ÑонголÑ',
- value : 'УÑга',
- size : 'Ð¥ÑмжÑÑ',
- lines : 'ÐÓ©Ñ',
- chkMulti : 'Ðлон ÑÐ¾Ð½Ð³Ð¾Ð»Ñ Ð·Ó©Ð²ÑÓ©Ó©ÑÓ©Ñ
',
- opText : 'ТÑкÑÑ',
- opValue : 'УÑга',
- btnAdd : 'ÐÑмÑÑ
',
- btnModify : 'Ó¨Ó©ÑÑлөÑ
',
- btnUp : 'ÐÑÑÑ',
- btnDown : 'ÐооÑ',
- btnSetValue : 'СонгогдÑан ÑÑга онооÑ
',
- btnDelete : 'УÑÑгаÑ
'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ТекÑÑ Ð¾ÑÑÐ½Ñ Ñинж ÑанаÑ',
- cols : 'Ðагана',
- rows : 'ÐÓ©Ñ'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ТекÑÑ ÑалбаÑÑн Ñинж ÑанаÑ',
- name : 'ÐÑÑ',
- value : 'УÑга',
- charWidth : 'ТÑмдÑгÑÑн Ó©Ñгөн',
- maxChars : 'Хамгийн иÑ
ÑÑмдÑгÑ',
- type : 'ТөÑөл',
- typeText : 'ТекÑÑ',
- typePass : 'ÐÑÑÑ Ò¯Ð³'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ÐÑÑÑ ÑалбаÑÑн Ñинж ÑанаÑ',
- name : 'ÐÑÑ',
- value : 'УÑга'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ÐÑÑаг',
- titleButton : 'ÐÑÑган ÑовÑÐ½Ñ Ñинж ÑанаÑ',
- menu : 'ÐÑÑаг',
- infoTab : 'ÐÑÑÐ°Ð³Ð½Ñ Ð¼ÑдÑÑлÑл',
- btnUpload : 'Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ',
- upload : 'Ð¥ÑÑлаÑ
',
- alt : 'Ð¢Ð°Ð¹Ð»Ð±Ð°Ñ ÑекÑÑ',
- width : 'Ó¨Ñгөн',
- height : 'ӨндөÑ',
- lockRatio : 'Радио ÑүгжиÑ
',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Ñ
ÑмжÑÑ Ð´Ð°Ñ
ин онооÑ
',
- border : 'Ð¥Ò¯ÑÑÑ',
- hSpace : 'Хөндлөн зай',
- vSpace : 'ÐоÑоо зай',
- align : 'ÐгнÑÑ',
- alignLeft : 'Ðүүн',
- alignRight : 'ÐаÑÑÑн',
- alertUrl : 'ÐÑÑÐ°Ð³Ð½Ñ URL-Ñн ÑÓ©Ñлийн Ñонгоно ÑÑ',
- linkTab : 'Ðинк',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ',
- propertiesTab : 'Properties', // MISSING
- title : 'Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ',
- chkPlay : 'ÐвÑомаÑÐ°Ð°Ñ ÑоглоÑ
',
- chkLoop : 'ÐавÑаÑ
',
- chkMenu : 'Ð¤Ð»Ð°Ñ ÑÑÑ Ð¸Ð´Ð²ÑÑ
жүүлÑÑ
',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Ó¨ÑгөгÑгөÑ
',
- scaleAll : 'Ðүгдийг Ñ
аÑÑÑлаÑ
',
- scaleNoBorder : 'Ð¥Ò¯ÑÑÑгүй',
- scaleFit : 'Яг ÑааÑÑÑлаÑ
',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'ÐгнÑÑ',
- alignLeft : 'Ðүүн',
- alignAbsBottom : 'Abs доод Ñалд',
- alignAbsMiddle : 'Abs ÐÑнд Ñалд',
- alignBaseline : 'Baseline',
- alignBottom : 'Ðоод Ñалд',
- alignMiddle : 'ÐÑнд Ñалд',
- alignRight : 'ÐаÑÑÑн',
- alignTextTop : 'ТекÑÑ Ð´ÑÑÑ',
- alignTop : 'ÐÑÑд Ñалд',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Ð¤Ð¾Ð½Ð½Ñ Ó©Ð½Ð³Ó©',
- width : 'Ó¨Ñгөн',
- height : 'ӨндөÑ',
- hSpace : 'Хөндлөн зай',
- vSpace : 'ÐоÑоо зай',
- validateSrc : 'Ðинк URL-ÑÑ ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Үгийн дүÑÑÑ
ÑалгаÑ
',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Ð¢Ð¾Ð»Ñ Ð±Ð¸Ñиггүй',
- changeTo : 'Ó¨Ó©ÑÑлөÑ
',
- btnIgnore : 'ÐөвÑÓ©Ó©ÑÓ©Ñ
',
- btnIgnoreAll : 'Ðүгдийг зөвÑÓ©Ó©ÑÓ©Ñ
',
- btnReplace : 'ÐаÑж биÑиÑ
',
- btnReplaceAll : 'Ðүгдийг ÐаÑж биÑиÑ
',
- btnUndo : 'ÐÑÑааÑ
',
- noSuggestions : '- ТайлбаÑгүй -',
- progress : 'ÐÒ¯ÑÑм Ñалгаж байгаа үйл ÑвÑ...',
- noMispell : 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: Ðлдаа олдÑонгүй',
- noChanges : 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: үг Ó©Ó©ÑÑлөгдөөгүй',
- oneChange : 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: 1 үг Ó©Ó©ÑÑлөгдÑөн',
- manyChanges : 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: %1 үг Ó©Ó©ÑÑлөгдÑөн',
- ieSpellDownload : 'ÐÒ¯ÑÑм ÑÐ°Ð»Ð³Ð°Ð³Ñ ÑÑÑгаагүй байна. ТаÑаж аваÑ
Ñг Ñ
Ò¯ÑÑ Ð±Ð°Ð¹Ð½Ð° ÑÑ?'
- },
-
- smiley :
- {
- toolbar : 'ТодоÑÑ
ойлолÑ',
- title : 'ТодоÑÑ
Ð¾Ð¹Ð»Ð¾Ð»Ñ Ð¾ÑÑÑлаÑ
',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ÐÑгааÑлагдÑан жагÑаалÑ',
- bulletedlist : 'ЦÑгÑÑй жагÑаалÑ',
- indent : 'Ðогол Ð¼Ó©Ñ Ñ
аÑаÑ
',
- outdent : 'Ðогол Ð¼Ó©Ñ Ð½ÑмÑÑ
',
-
- justify :
- {
- left : 'Ðүүн Ñалд байÑлÑÑлаÑ
',
- center : 'Төвд байÑлÑÑлаÑ
',
- right : 'ÐаÑÑÑн Ñалд байÑлÑÑлаÑ
',
- block : 'Ðлок Ñ
ÑлбÑÑÑÑÑ Ð±Ð°Ð¹ÑлÑÑлаÑ
'
- },
-
- blockquote : 'ХайÑÑаглаÑ
',
-
- clipboard :
- {
- title : 'ÐÑÑлгаÑ
',
- cutError : 'Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
айÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+X) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.',
- copyError : 'Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
ÑÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+C) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.',
- pasteMsg : '(<strong>Ctrl/Cmd+V</strong>) ÑовÑийг аÑиглан paste Ñ
Ð¸Ð¹Ð½Ñ Ò¯Ò¯. Ðөн <strong>OK</strong> даÑ.',
- securityMsg : 'Ð¢Ð°Ð½Ñ Ò¯Ð·Ò¯Ò¯Ð»ÑгÑ/browser/-н Ñ
амгаалалÑÑн ÑоÑ
иÑÐ³Ð¾Ð¾Ð½Ð¾Ð¾Ñ Ð±Ð¾Ð»Ð¾Ð¾Ð´ editor clipboard өгөгдөлÑÒ¯Ò¯ ÑÑÑд Ñ
андаÑ
боломжгүй. ÐÐ½Ñ ÑонÑ
од даÑ
ин paste Ñ
ийÑ
ийг оÑолд.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
',
- title : 'Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Plain Text-ÑÑÑ Ð±ÑÑлгаÑ
',
- title : 'Plain Text-ÑÑÑ Ð±ÑÑлгаÑ
'
- },
-
- templates :
- {
- button : 'ÐагваÑÑÑд',
- title : 'ÐагваÑÑн агÑÑлга',
- options : 'Template Options', // MISSING
- insertOption : 'Ðдоогийн агÑÑллагÑг даÑж биÑиÑ
',
- selectPromptMsg : 'ÐагваÑÑг нÑÑж editor-ÑÒ¯Ò¯ Ñонгож оÑÑÑлна ÑÑ<br />(Ðдоогийн агÑÑллагÑг ÑÑÑаж магадгүй):',
- emptyListMsg : '(ÐÐ°Ð³Ð²Ð°Ñ ÑодоÑÑ
ойлогдоогүй байна)'
- },
-
- showBlocks : 'Block-ÑÑдÑг үзүүлÑÑ
',
-
- stylesCombo :
- {
- label : 'ÐагваÑ',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ФоÑмаÑ',
- panelTitle : 'ФоÑмаÑ',
-
- tag_p : 'Ð¥Ñвийн',
- tag_pre : 'Formatted',
- tag_address : 'ХаÑг',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Paragraph (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ФонÑ',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ФонÑ'
- },
-
- fontSize :
- {
- label : 'Ð¥ÑмжÑÑ',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Ð¥ÑмжÑÑ'
- },
-
- colorButton :
- {
- textColorTitle : 'ФонÑÐ½Ñ Ó©Ð½Ð³Ó©',
- bgColorTitle : 'Ð¤Ð¾Ð½Ð½Ñ Ó©Ð½Ð³Ó©',
- panelTitle : 'Colors', // MISSING
- auto : 'ÐвÑомаÑааÑ',
- more : 'ÐÑмÑÐ»Ñ Ó©Ð½Ð³Ó©Ð½Ò¯Ò¯Ð´...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Mongolian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'mn' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Ð¥ÑлбÑÑÑ Ð±Ð¸ÑвÑÑ Ð±Ð¾Ð»Ð¾Ð²ÑÑÑÑлагÑ',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'СеÑÐ²ÐµÑ Ñ
аÑÑÑлаÑ
',
+ url: 'URL',
+ protocol: 'ÐÑоÑокол',
+ upload: 'Ð¥ÑÑлаÑ
',
+ uploadSubmit: 'Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ',
+ image: 'ÐÑÑаг',
+ flash: 'ФлаÑ',
+ form: 'ФоÑм',
+ checkbox: 'ЧекбокÑ',
+ radio: 'Радио ÑовÑ',
+ textField: 'ТеÑ
Ñ ÑалбаÑ',
+ textarea: 'ТеÑ
Ñ Ð¾ÑÑин',
+ hiddenField: 'ÐÑÑÑ ÑалбаÑ',
+ button: 'ТовÑ',
+ select: 'Ð¡Ð¾Ð½Ð³Ð¾Ð³Ñ ÑалбаÑ',
+ imageButton: 'ÐÑÑагÑай ÑовÑ',
+ notSet: '<ÐнооÑ
гүй>',
+ id: 'Id',
+ name: 'ÐÑÑ',
+ langDir: 'Ð¥Ñлний ÑиглÑл',
+ langDirLtr: 'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)',
+ langDirRtl: 'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)',
+ langCode: 'Ð¥Ñлний код',
+ longDescr: 'URL-Ñн ÑайлбаÑ',
+ cssClass: 'Stylesheet клаÑÑÑÑд',
+ advisoryTitle: 'ÐөвлөлдөÑ
гаÑÑиг',
+ cssStyle: 'ÐагваÑ',
+ ok: 'OK',
+ cancel: 'ÐолиÑ
',
+ close: 'ХааÑ
',
+ preview: 'УÑидÑлан Ñ
аÑаÑ
',
+ resize: 'Resize', // MISSING
+ generalTab: 'ÐÑөнÑ
ий',
+ advancedTab: 'ÐÑмÑлÑ',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'СонголÑ',
+ target: 'Ðай',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Ðүүн ÑÐ°Ð»Ð°Ð°Ñ Ð±Ð°ÑÑÑн ÑийÑÑÑ (LTR)',
+ langDirRTL: 'ÐаÑÑÑн ÑÐ°Ð»Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ ÑийÑÑÑ (RTL)',
+ styles: 'ÐагваÑ',
+ cssClasses: 'Stylesheet клаÑÑÑÑд',
+ width: 'Ó¨Ñгөн',
+ height: 'ӨндөÑ',
+ align: 'ÐгнÑÑ',
+ alignLeft: 'Ðүүн',
+ alignRight: 'ÐаÑÑÑн',
+ alignCenter: 'Төвд',
+ alignTop: 'ÐÑÑд Ñалд',
+ alignMiddle: 'ÐÑнд Ñалд',
+ alignBottom: 'Ðоод Ñалд',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Ó¨Ð½Ð´Ó©Ñ Ð½Ñ Ñоо байÑ
ÑÑÑой.',
+ invalidWidth: 'Ó¨Ñгөн Ð½Ñ Ñоо байÑ
ÑÑÑой.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ms.js b/devel/third-party/ckeditor/lang/ms.js
index e3398c4..5767df4 100644
--- a/devel/third-party/ckeditor/lang/ms.js
+++ b/devel/third-party/ckeditor/lang/ms.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Malay language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ms'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Sumber',
- newPage : 'Helaian Baru',
- save : 'Simpan',
- preview : 'Prebiu',
- cut : 'Potong',
- copy : 'Salin',
- paste : 'Tampal',
- print : 'Cetak',
- underline : 'Underline',
- bold : 'Bold',
- italic : 'Italic',
- selectAll : 'Pilih Semua',
- removeFormat : 'Buang Format',
- strike : 'Strike Through',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Masukkan Garisan Membujur',
- pagebreak : 'Insert Page Break for Printing', // MISSING
- unlink : 'Buang Sambungan',
- undo : 'Batalkan',
- redo : 'Ulangkan',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Browse Server',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Muat Naik',
- uploadSubmit : 'Hantar ke Server',
- image : 'Gambar',
- flash : 'Flash', // MISSING
- form : 'Borang',
- checkbox : 'Checkbox',
- radio : 'Butang Radio',
- textField : 'Text Field',
- textarea : 'Textarea',
- hiddenField : 'Field Tersembunyi',
- button : 'Butang',
- select : 'Field Pilihan',
- imageButton : 'Butang Bergambar',
- notSet : '<tidak di set>',
- id : 'Id',
- name : 'Nama',
- langDir : 'Arah Tulisan',
- langDirLtr : 'Kiri ke Kanan (LTR)',
- langDirRtl : 'Kanan ke Kiri (RTL)',
- langCode : 'Kod Bahasa',
- longDescr : 'Butiran Panjang URL',
- cssClass : 'Kelas-kelas Stylesheet',
- advisoryTitle : 'Tajuk Makluman',
- cssStyle : 'Stail',
- ok : 'OK',
- cancel : 'Batal',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Advanced',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Masukkan Huruf Istimewa',
- title : 'Sila pilih huruf istimewa',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Masukkan/Sunting Sambungan',
- other : '<lain>',
- menu : 'Sunting Sambungan',
- title : 'Sambungan',
- info : 'Butiran Sambungan',
- target : 'Sasaran',
- upload : 'Muat Naik',
- advanced : 'Advanced',
- type : 'Jenis Sambungan',
- toUrl : 'URL', // MISSING
- toAnchor : 'Pautan dalam muka surat ini',
- toEmail : 'E-Mail',
- targetFrame : '<bingkai>',
- targetPopup : '<tetingkap popup>',
- targetFrameName : 'Nama Bingkai Sasaran',
- targetPopupName : 'Nama Tetingkap Popup',
- popupFeatures : 'Ciri Tetingkap Popup',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Bar Status',
- popupLocationBar: 'Bar Lokasi',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'Bar Menu',
- popupFullScreen : 'Skrin Penuh (IE)',
- popupScrollBars : 'Bar-bar skrol',
- popupDependent : 'Bergantungan (Netscape)',
- popupWidth : 'Lebar',
- popupLeft : 'Posisi Kiri',
- popupHeight : 'Tinggi',
- popupTop : 'Posisi Atas',
- id : 'Id', // MISSING
- langDir : 'Arah Tulisan',
- langDirLTR : 'Kiri ke Kanan (LTR)',
- langDirRTL : 'Kanan ke Kiri (RTL)',
- acccessKey : 'Kunci Akses',
- name : 'Nama',
- langCode : 'Arah Tulisan',
- tabIndex : 'Indeks Tab ',
- advisoryTitle : 'Tajuk Makluman',
- advisoryContentType : 'Jenis Kandungan Makluman',
- cssClasses : 'Kelas-kelas Stylesheet',
- charset : 'Linked Resource Charset',
- styles : 'Stail',
- selectAnchor : 'Sila pilih pautan',
- anchorName : 'dengan menggunakan nama pautan',
- anchorId : 'dengan menggunakan ID elemen',
- emailAddress : 'Alamat E-Mail',
- emailSubject : 'Subjek Mesej',
- emailBody : 'Isi Kandungan Mesej',
- noAnchors : '(Tiada pautan terdapat dalam dokumen ini)',
- noUrl : 'Sila taip sambungan URL',
- noEmail : 'Sila taip alamat e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Masukkan/Sunting Pautan',
- menu : 'Ciri-ciri Pautan',
- title : 'Ciri-ciri Pautan',
- name : 'Nama Pautan',
- errorName : 'Sila taip nama pautan'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'Cari',
- replace : 'Ganti',
- findWhat : 'Perkataan yang dicari:',
- replaceWith : 'Diganti dengan:',
- notFoundMsg : 'Text yang dicari tidak dijumpai.',
- matchCase : 'Padanan case huruf',
- matchWord : 'Padana Keseluruhan perkataan',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Ganti semua',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Jadual',
- title : 'Ciri-ciri Jadual',
- menu : 'Ciri-ciri Jadual',
- deleteTable : 'Delete Table', // MISSING
- rows : 'Barisan',
- columns : 'Jaluran',
- border : 'Saiz Border',
- align : 'Penjajaran',
- alignLeft : 'Kiri',
- alignCenter : 'Tengah',
- alignRight : 'Kanan',
- width : 'Lebar',
- widthPx : 'piksel-piksel',
- widthPc : 'peratus',
- widthUnit : 'width unit', // MISSING
- height : 'Tinggi',
- cellSpace : 'Ruangan Antara Sel',
- cellPad : 'Tambahan Ruang Sel',
- caption : 'Keterangan',
- summary : 'Summary', // MISSING
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'Buangkan Sel-sel',
- merge : 'Cantumkan Sel-sel',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Buangkan Baris'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Buangkan Lajur'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Ciri-ciri Butang',
- text : 'Teks (Nilai)',
- type : 'Jenis',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Ciri-ciri Checkbox',
- radioTitle : 'Ciri-ciri Butang Radio',
- value : 'Nilai',
- selected : 'Dipilih'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Ciri-ciri Borang',
- menu : 'Ciri-ciri Borang',
- action : 'Tindakan borang',
- method : 'Cara borang dihantar',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Ciri-ciri Selection Field',
- selectInfo : 'Select Info', // MISSING
- opAvail : 'Pilihan sediada',
- value : 'Nilai',
- size : 'Saiz',
- lines : 'garisan',
- chkMulti : 'Benarkan pilihan pelbagai',
- opText : 'Teks',
- opValue : 'Nilai',
- btnAdd : 'Tambah Pilihan',
- btnModify : 'Ubah Pilihan',
- btnUp : 'Naik ke atas',
- btnDown : 'Turun ke bawah',
- btnSetValue : 'Set sebagai nilai terpilih',
- btnDelete : 'Padam'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Ciri-ciri Textarea',
- cols : 'Lajur',
- rows : 'Baris'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Ciri-ciri Text Field',
- name : 'Nama',
- value : 'Nilai',
- charWidth : 'Lebar isian',
- maxChars : 'Isian Maksimum',
- type : 'Jenis',
- typeText : 'Teks',
- typePass : 'Kata Laluan'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Ciri-ciri Field Tersembunyi',
- name : 'Nama',
- value : 'Nilai'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Ciri-ciri Imej',
- titleButton : 'Ciri-ciri Butang Bergambar',
- menu : 'Ciri-ciri Imej',
- infoTab : 'Info Imej',
- btnUpload : 'Hantar ke Server',
- upload : 'Muat Naik',
- alt : 'Text Alternatif',
- width : 'Lebar',
- height : 'Tinggi',
- lockRatio : 'Tetapkan Nisbah',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Saiz Set Semula',
- border : 'Border',
- hSpace : 'Ruang Melintang',
- vSpace : 'Ruang Menegak',
- align : 'Jajaran',
- alignLeft : 'Kiri',
- alignRight : 'Kanan',
- alertUrl : 'Sila taip URL untuk fail gambar',
- linkTab : 'Sambungan',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Properties', // MISSING
- propertiesTab : 'Properties', // MISSING
- title : 'Flash Properties', // MISSING
- chkPlay : 'Auto Play', // MISSING
- chkLoop : 'Loop', // MISSING
- chkMenu : 'Enable Flash Menu', // MISSING
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Scale', // MISSING
- scaleAll : 'Show all', // MISSING
- scaleNoBorder : 'No Border', // MISSING
- scaleFit : 'Exact Fit', // MISSING
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Jajaran',
- alignLeft : 'Kiri',
- alignAbsBottom : 'Bawah Mutlak',
- alignAbsMiddle : 'Pertengahan Mutlak',
- alignBaseline : 'Garis Dasar',
- alignBottom : 'Bawah',
- alignMiddle : 'Pertengahan',
- alignRight : 'Kanan',
- alignTextTop : 'Atas Text',
- alignTop : 'Atas',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Warna Latarbelakang',
- width : 'Lebar',
- height : 'Tinggi',
- hSpace : 'Ruang Melintang',
- vSpace : 'Ruang Menegak',
- validateSrc : 'Sila taip sambungan URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Semak Ejaan',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Tidak terdapat didalam kamus',
- changeTo : 'Tukarkan kepada',
- btnIgnore : 'Biar',
- btnIgnoreAll : 'Biarkan semua',
- btnReplace : 'Ganti',
- btnReplaceAll : 'Gantikan Semua',
- btnUndo : 'Batalkan',
- noSuggestions : '- Tiada cadangan -',
- progress : 'Pemeriksaan ejaan sedang diproses...',
- noMispell : 'Pemeriksaan ejaan siap: Tiada salah ejaan',
- noChanges : 'Pemeriksaan ejaan siap: Tiada perkataan diubah',
- oneChange : 'Pemeriksaan ejaan siap: Satu perkataan telah diubah',
- manyChanges : 'Pemeriksaan ejaan siap: %1 perkataan diubah',
- ieSpellDownload : 'Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Masukkan Smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Senarai bernombor',
- bulletedlist : 'Senarai tidak bernombor',
- indent : 'Tambahkan Inden',
- outdent : 'Kurangkan Inden',
-
- justify :
- {
- left : 'Jajaran Kiri',
- center : 'Jajaran Tengah',
- right : 'Jajaran Kanan',
- block : 'Jajaran Blok'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Tampal',
- cutError : 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).',
- copyError : 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).',
- pasteMsg : 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Tampal dari Word',
- title : 'Tampal dari Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Tampal sebagai text biasa',
- title : 'Tampal sebagai text biasa'
- },
-
- templates :
- {
- button : 'Templat',
- title : 'Templat Kandungan',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):',
- emptyListMsg : '(Tiada Templat Disimpan)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Stail',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Telah Diformat',
- tag_address : 'Alamat',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Perenggan (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font'
- },
-
- fontSize :
- {
- label : 'Saiz',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Saiz'
- },
-
- colorButton :
- {
- textColorTitle : 'Warna Text',
- bgColorTitle : 'Warna Latarbelakang',
- panelTitle : 'Colors', // MISSING
- auto : 'Otomatik',
- more : 'Warna lain-lain...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Malay language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ms' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Browse Server',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Muat Naik',
+ uploadSubmit: 'Hantar ke Server',
+ image: 'Gambar',
+ flash: 'Flash', // MISSING
+ form: 'Borang',
+ checkbox: 'Checkbox',
+ radio: 'Butang Radio',
+ textField: 'Text Field',
+ textarea: 'Textarea',
+ hiddenField: 'Field Tersembunyi',
+ button: 'Butang',
+ select: 'Field Pilihan',
+ imageButton: 'Butang Bergambar',
+ notSet: '<tidak di set>',
+ id: 'Id',
+ name: 'Nama',
+ langDir: 'Arah Tulisan',
+ langDirLtr: 'Kiri ke Kanan (LTR)',
+ langDirRtl: 'Kanan ke Kiri (RTL)',
+ langCode: 'Kod Bahasa',
+ longDescr: 'Butiran Panjang URL',
+ cssClass: 'Kelas-kelas Stylesheet',
+ advisoryTitle: 'Tajuk Makluman',
+ cssStyle: 'Stail',
+ ok: 'OK',
+ cancel: 'Batal',
+ close: 'Close', // MISSING
+ preview: 'Prebiu',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'Advanced',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'Sasaran',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Kiri ke Kanan (LTR)',
+ langDirRTL: 'Kanan ke Kiri (RTL)',
+ styles: 'Stail',
+ cssClasses: 'Kelas-kelas Stylesheet',
+ width: 'Lebar',
+ height: 'Tinggi',
+ align: 'Jajaran',
+ alignLeft: 'Kiri',
+ alignRight: 'Kanan',
+ alignCenter: 'Tengah',
+ alignTop: 'Atas',
+ alignMiddle: 'Pertengahan',
+ alignBottom: 'Bawah',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/nb.js b/devel/third-party/ckeditor/lang/nb.js
index 6baf3d8..7097a4a 100644
--- a/devel/third-party/ckeditor/lang/nb.js
+++ b/devel/third-party/ckeditor/lang/nb.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Norwegian Bokmål language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['nb'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rikteksteditor, %1, trykk ALT 0 for hjelp.',
-
- // ARIA descriptions.
- toolbar : 'Verktøylinje',
- editor : 'Rikteksteditor',
-
- // Toolbar buttons without dialogs.
- source : 'Kilde',
- newPage : 'Ny Side',
- save : 'Lagre',
- preview : 'Forhåndsvis',
- cut : 'Klipp ut',
- copy : 'Kopier',
- paste : 'Lim inn',
- print : 'Skriv ut',
- underline : 'Understrek',
- bold : 'Fet',
- italic : 'Kursiv',
- selectAll : 'Merk alt',
- removeFormat : 'Fjern format',
- strike : 'Gjennomstrek',
- subscript : 'Senket skrift',
- superscript : 'Hevet skrift',
- horizontalrule : 'Sett inn horisontal linje',
- pagebreak : 'Sett inn sideskift',
- unlink : 'Fjern lenke',
- undo : 'Angre',
- redo : 'Gjør om',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Bla igjennom server',
- url : 'URL',
- protocol : 'Protokoll',
- upload : 'Last opp',
- uploadSubmit : 'Send det til serveren',
- image : 'Bilde',
- flash : 'Flash',
- form : 'Skjema',
- checkbox : 'Avmerkingsboks',
- radio : 'Alternativknapp',
- textField : 'Tekstboks',
- textarea : 'Tekstområde',
- hiddenField : 'Skjult felt',
- button : 'Knapp',
- select : 'Rullegardinliste',
- imageButton : 'Bildeknapp',
- notSet : '<ikke satt>',
- id : 'Id',
- name : 'Navn',
- langDir : 'Språkretning',
- langDirLtr : 'Venstre til høyre (VTH)',
- langDirRtl : 'Høyre til venstre (HTV)',
- langCode : 'Språkkode',
- longDescr : 'Utvidet beskrivelse',
- cssClass : 'Stilarkklasser',
- advisoryTitle : 'Tittel',
- cssStyle : 'Stil',
- ok : 'OK',
- cancel : 'Avbryt',
- close : 'Lukk',
- preview : 'Forhåndsvis',
- generalTab : 'Generelt',
- advancedTab : 'Avansert',
- validateNumberFailed : 'Denne verdien er ikke ett nummer',
- confirmNewPage : 'Alle endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
- confirmCancel : 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
- options : 'Valg',
- target : 'MÃ¥l',
- targetNew : 'Nytt vindu (_blank)',
- targetTop : 'Hele vindu (_top)',
- targetSelf : 'Samme vindu (_self)',
- targetParent : 'Foreldrevindu (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, utilgjenglig</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Sett inn spesielt tegn',
- title : 'Velg spesielt tegn',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Sett inn/Rediger lenke',
- other : '<other>', // MISSING
- menu : 'Rediger lenke',
- title : 'Lenke',
- info : 'Lenkeinfo',
- target : 'MÃ¥l',
- upload : 'Last opp',
- advanced : 'Avansert',
- type : 'Lenketype',
- toUrl : 'URL',
- toAnchor : 'Lenke til anker i teksten',
- toEmail : 'E-post',
- targetFrame : '<ramme>',
- targetPopup : '<popup vindu>',
- targetFrameName : 'MÃ¥lramme',
- targetPopupName : 'Navn på popup-vindus',
- popupFeatures : 'Egenskaper for popup-vindu',
- popupResizable : 'Skalérbar',
- popupStatusBar : 'Statuslinje',
- popupLocationBar: 'Adresselinje',
- popupToolbar : 'Verktøylinje',
- popupMenuBar : 'Menylinje',
- popupFullScreen : 'Full skjerm (IE)',
- popupScrollBars : 'Scrollbar',
- popupDependent : 'Avhenging (Netscape)',
- popupWidth : 'Bredde',
- popupLeft : 'Venstre posisjon',
- popupHeight : 'Høyde',
- popupTop : 'Topp-posisjon',
- id : 'Id',
- langDir : 'Språkretning',
- langDirLTR : 'Venstre til høyre (VTH)',
- langDirRTL : 'Høyre til venstre (HTV)',
- acccessKey : 'Aksessknapp',
- name : 'Navn',
- langCode : 'Språkretning',
- tabIndex : 'Tab Indeks',
- advisoryTitle : 'Tittel',
- advisoryContentType : 'Type',
- cssClasses : 'Stilarkklasser',
- charset : 'Lenket språkkart',
- styles : 'Stil',
- selectAnchor : 'Velg et anker',
- anchorName : 'Anker etter navn',
- anchorId : 'Element etter ID',
- emailAddress : 'E-postadresse',
- emailSubject : 'Meldingsemne',
- emailBody : 'Melding',
- noAnchors : '(Ingen anker i dokumentet)',
- noUrl : 'Vennligst skriv inn lenkens url',
- noEmail : 'Vennligst skriv inn e-postadressen'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Sett inn/Rediger anker',
- menu : 'Egenskaper for anker',
- title : 'Egenskaper for anker',
- name : 'Ankernavn',
- errorName : 'Vennligst skriv inn ankernavnet'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Søk og erstatt',
- find : 'Søk',
- replace : 'Erstatt',
- findWhat : 'Søk etter:',
- replaceWith : 'Erstatt med:',
- notFoundMsg : 'Fant ikke søketeksten.',
- matchCase : 'Skill mellom store og små bokstaver',
- matchWord : 'Bare hele ord',
- matchCyclic : 'Søk i hele dokumentet',
- replaceAll : 'Erstatt alle',
- replaceSuccessMsg : '%1 tilfelle erstattet.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabell',
- title : 'Egenskaper for tabell',
- menu : 'Egenskaper for tabell',
- deleteTable : 'Slett tabell',
- rows : 'Rader',
- columns : 'Kolonner',
- border : 'Rammestørrelse',
- align : 'Justering',
- alignLeft : 'Venstre',
- alignCenter : 'Midtjuster',
- alignRight : 'Høyre',
- width : 'Bredde',
- widthPx : 'piksler',
- widthPc : 'prosent',
- widthUnit : 'Bredde-enhet',
- height : 'Høyde',
- cellSpace : 'Cellemarg',
- cellPad : 'Cellepolstring',
- caption : 'Tittel',
- summary : 'Sammendrag',
- headers : 'Overskrifter',
- headersNone : 'Ingen',
- headersColumn : 'Første kolonne',
- headersRow : 'Første rad',
- headersBoth : 'Begge',
- invalidRows : 'Antall rader må være ett tall større enn 0.',
- invalidCols : 'Antall kolonner må være ett tall større enn 0.',
- invalidBorder : 'Rammestørrelse må være ett tall.',
- invalidWidth : 'Tabellbredde må være ett nummer.',
- invalidHeight : 'Tabellhøyde må være ett nummer.',
- invalidCellSpacing : 'Cellemellomrom må være ett nummer.',
- invalidCellPadding : 'Cellefyll må være ett nummer.',
-
- cell :
- {
- menu : 'Celle',
- insertBefore : 'Sett inn celle før',
- insertAfter : 'Sett inn celle etter',
- deleteCell : 'Slett celler',
- merge : 'Slå sammen celler',
- mergeRight : 'Slå sammen høyre',
- mergeDown : 'Slå sammen ned',
- splitHorizontal : 'Del celle horisontalt',
- splitVertical : 'Del celle vertikalt',
- title : 'Celleegenskaper',
- cellType : 'Celletype',
- rowSpan : 'Radspenn',
- colSpan : 'Kolonnespenn',
- wordWrap : 'Tekstbrytning',
- hAlign : 'Horisontal justering',
- vAlign : 'Vertikal justering',
- alignTop : 'Topp',
- alignMiddle : 'Midten',
- alignBottom : 'Bunnen',
- alignBaseline : 'Grunnlinje',
- bgColor : 'Bakgrunnsfarge',
- borderColor : 'Rammefarge',
- data : 'Data',
- header : 'Overskrift',
- yes : 'Ja',
- no : 'Nei',
- invalidWidth : 'Cellebredde må være ett nummer',
- invalidHeight : 'Cellehøyde må være ett nummer',
- invalidRowSpan : 'Radspenn må være ett nummer.',
- invalidColSpan : 'Kolonnespenn må være ett nummer.',
- chooseColor : 'Velg'
- },
-
- row :
- {
- menu : 'Rader',
- insertBefore : 'Sett inn rad før',
- insertAfter : 'Sett inn rad etter',
- deleteRow : 'Slett rader'
- },
-
- column :
- {
- menu : 'Kolonne',
- insertBefore : 'Sett inn kolonne før',
- insertAfter : 'Sett inn kolonne etter',
- deleteColumn : 'Slett kolonner'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Egenskaper for knapp',
- text : 'Tekst (verdi)',
- type : 'Type',
- typeBtn : 'Knapp',
- typeSbm : 'Send',
- typeRst : 'Nullstill'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Egenskaper for avmerkingsboks',
- radioTitle : 'Egenskaper for alternativknapp',
- value : 'Verdi',
- selected : 'Valgt'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Egenskaper for skjema',
- menu : 'Egenskaper for skjema',
- action : 'Handling',
- method : 'Metode',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Egenskaper for rullegardinliste',
- selectInfo : 'Info',
- opAvail : 'Tilgjenglige alternativer',
- value : 'Verdi',
- size : 'Størrelse',
- lines : 'Linjer',
- chkMulti : 'Tillat flervalg',
- opText : 'Tekst',
- opValue : 'Verdi',
- btnAdd : 'Legg til',
- btnModify : 'Endre',
- btnUp : 'Opp',
- btnDown : 'Ned',
- btnSetValue : 'Sett som valgt',
- btnDelete : 'Slett'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Egenskaper for tekstområde',
- cols : 'Kolonner',
- rows : 'Rader'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Egenskaper for tekstfelt',
- name : 'Navn',
- value : 'Verdi',
- charWidth : 'Tegnbredde',
- maxChars : 'Maks antall tegn',
- type : 'Type',
- typeText : 'Tekst',
- typePass : 'Passord'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Egenskaper for skjult felt',
- name : 'Navn',
- value : 'Verdi'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Bildeegenskaper',
- titleButton : 'Egenskaper for bildeknapp',
- menu : 'Bildeegenskaper',
- infoTab : 'Bildeinformasjon',
- btnUpload : 'Send det til serveren',
- upload : 'Last opp',
- alt : 'Alternativ tekst',
- width : 'Bredde',
- height : 'Høyde',
- lockRatio : 'LÃ¥s forhold',
- unlockRatio : 'Ikke lås forhold',
- resetSize : 'Tilbakestill størrelse',
- border : 'Ramme',
- hSpace : 'HMarg',
- vSpace : 'VMarg',
- align : 'Juster',
- alignLeft : 'Venstre',
- alignRight : 'Høyre',
- alertUrl : 'Vennligst skriv bilde-urlen',
- linkTab : 'Lenke',
- button2Img : 'Vil du endre den valgte bildeknappen til ett vanlig bilde?',
- img2Button : 'Vil du endre det valgte bildet til en bildeknapp?',
- urlMissing : 'Bildets adresse mangler.',
- validateWidth : 'Bredde må være ett nummer.',
- validateHeight : 'Høyde må være ett nummer.',
- validateBorder : 'Ramme må være ett nummer.',
- validateHSpace : 'HSpace må være ett nummer.',
- validateVSpace : 'VSpace må være ett nummer.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Egenskaper for Flash-objekt',
- propertiesTab : 'Egenskaper',
- title : 'Flash-egenskaper',
- chkPlay : 'Autospill',
- chkLoop : 'Loop',
- chkMenu : 'Slå på Flash-meny',
- chkFull : 'Tillat fullskjerm',
- scale : 'Skaler',
- scaleAll : 'Vis alt',
- scaleNoBorder : 'Ingen ramme',
- scaleFit : 'Skaler til å passe',
- access : 'Scripttilgang',
- accessAlways : 'Alltid',
- accessSameDomain: 'Samme domene',
- accessNever : 'Aldri',
- align : 'Juster',
- alignLeft : 'Venstre',
- alignAbsBottom : 'Abs bunn',
- alignAbsMiddle : 'Abs midten',
- alignBaseline : 'Bunnlinje',
- alignBottom : 'Bunn',
- alignMiddle : 'Midten',
- alignRight : 'Høyre',
- alignTextTop : 'Tekst topp',
- alignTop : 'Topp',
- quality : 'Kvalitet',
- qualityBest : 'Best',
- qualityHigh : 'Høy',
- qualityAutoHigh : 'Auto Høy',
- qualityMedium : 'Medium',
- qualityAutoLow : 'Auto Lav',
- qualityLow : 'Lav',
- windowModeWindow: 'Vindu',
- windowModeOpaque: 'Opaque',
- windowModeTransparent : 'Gjennomsiktig',
- windowMode : 'Vindu modus',
- flashvars : 'Variabler for flash',
- bgcolor : 'Bakgrunnsfarge',
- width : 'Bredde',
- height : 'Høyde',
- hSpace : 'HMarg',
- vSpace : 'VMarg',
- validateSrc : 'Vennligst skriv inn lenkens url',
- validateWidth : 'Bredde må være ett nummer.',
- validateHeight : 'Høyde må være ett nummer',
- validateHSpace : 'HSpace må være ett nummer.',
- validateVSpace : 'VSpace må være ett nummer.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Stavekontroll',
- title : 'Stavekontroll',
- notAvailable : 'Beklager, tjenesten er utilgjenglig nå.',
- errorLoading : 'Feil under lasting av applicationstjeneste tjener: %s.',
- notInDic : 'Ikke i ordboken',
- changeTo : 'Endre til',
- btnIgnore : 'Ignorer',
- btnIgnoreAll : 'Ignorer alle',
- btnReplace : 'Erstatt',
- btnReplaceAll : 'Erstatt alle',
- btnUndo : 'Angre',
- noSuggestions : '- Ingen forslag -',
- progress : 'Stavekontroll pågår...',
- noMispell : 'Stavekontroll fullført: ingen feilstavinger funnet',
- noChanges : 'Stavekontroll fullført: ingen ord endret',
- oneChange : 'Stavekontroll fullført: Ett ord endret',
- manyChanges : 'Stavekontroll fullført: %1 ord endret',
- ieSpellDownload : 'Stavekontroll er ikke installert. Vil du laste den ned nå?'
- },
-
- smiley :
- {
- toolbar : 'Smil',
- title : 'Sett inn smil',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Element-sti',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Nummerert liste',
- bulletedlist : 'Uordnet liste',
- indent : 'Ãk nivÃ¥',
- outdent : 'Senk nivå',
-
- justify :
- {
- left : 'Venstrejuster',
- center : 'Midtjuster',
- right : 'Høyrejuster',
- block : 'Blokkjuster'
- },
-
- blockquote : 'Blockquote',
-
- clipboard :
- {
- title : 'Lim inn',
- cutError : 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).',
- copyError : 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',
- pasteMsg : 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
- securityMsg : 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',
- pasteArea : 'Innlimingsområde'
- },
-
- pastefromword :
- {
- confirmCleanup : 'Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?',
- toolbar : 'Lim inn fra Word',
- title : 'Lim inn fra Word',
- error : 'Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil'
- },
-
- pasteText :
- {
- button : 'Lim inn som ren tekst',
- title : 'Lim inn som ren tekst'
- },
-
- templates :
- {
- button : 'Maler',
- title : 'Innholdsmaler',
- options : 'Template Options', // MISSING
- insertOption : 'Erstatt faktisk innold',
- selectPromptMsg : 'Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):',
- emptyListMsg : '(Ingen maler definert)'
- },
-
- showBlocks : 'Vis blokker',
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Stilformater',
- panelTitle1 : 'Blokkstiler',
- panelTitle2 : 'Inlinestiler',
- panelTitle3 : 'Objektstiler'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatert',
- tag_address : 'Adresse',
- tag_h1 : 'Tittel 1',
- tag_h2 : 'Tittel 2',
- tag_h3 : 'Tittel 3',
- tag_h4 : 'Tittel 4',
- tag_h5 : 'Tittel 5',
- tag_h6 : 'Tittel 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Sett inn Div Container',
- toolbar : 'Sett inn Div Container',
- cssClassInputLabel : 'Stilark-klasser',
- styleSelectLabel : 'Stil',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Språk-kode',
- inlineStyleInputLabel : 'Inlinestiler',
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Språkretning',
- langDirLTRLabel : 'Venstre til høyre (VTH)',
- langDirRTLLabel : 'Høyre til venstre (HTV)',
- edit : 'Rediger Div',
- remove : 'Fjern Div'
- },
-
- font :
- {
- label : 'Skrift',
- voiceLabel : 'Font',
- panelTitle : 'Skrift'
- },
-
- fontSize :
- {
- label : 'Størrelse',
- voiceLabel : 'Font Størrelse',
- panelTitle : 'Størrelse'
- },
-
- colorButton :
- {
- textColorTitle : 'Tekstfarge',
- bgColorTitle : 'Bakgrunnsfarge',
- panelTitle : 'Farger',
- auto : 'Automatisk',
- more : 'Flere farger...'
- },
-
- colors :
- {
- '000' : 'Svart',
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Marine',
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Svak grå',
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brun',
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Mørk grå',
- '40E0D0' : 'Turkis',
- '0000CD' : 'Medium Blå',
- '800080' : 'Purple', // MISSING
- '808080' : 'Grå',
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Mørk oransje',
- 'FFD700' : 'gull',
- '008000' : 'Grønn',
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blå',
- 'EE82EE' : 'Fiolett',
- 'A9A9A9' : 'Mørk grå',
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Oransje',
- 'FFFF00' : 'gul',
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Lys Blå',
- 'DDA0DD' : 'Plomme',
- 'D3D3D3' : 'Lys grå',
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antikk-hvit',
- 'FFFFE0' : 'Lys gul',
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'Hvit'
- },
-
- scayt :
- {
- title : 'Stavekontroll mens du skriver',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Slå på SCAYT',
- disable : 'Slå av SCAYT',
- about : 'Om SCAYT',
- toggle : 'Veksle SCAYT',
- options : 'Valg',
- langs : 'Språk',
- moreSuggestions : 'Flere forslag',
- ignore : 'Ignorer',
- ignoreAll : 'Ignorer Alle',
- addWord : 'Legg til ord',
- emptyDic : 'Ordboknavn skal ikke være tom',
-
- optionsTab : 'Valg',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Språk',
-
- dictionariesTab : 'Ordbøker',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Om'
- },
-
- about :
- {
- title : 'Om CKEditor',
- dlgTitle : 'Om CKEditor',
- moreInfo : 'For lisensieringsinformasjon vennligst besøk vårt nettsted:',
- copy : 'Copyright © $1. Alle rettigheter reservert.'
- },
-
- maximize : 'Maksimer',
- minimize : 'Minimer',
-
- fakeobjects :
- {
- anchor : 'Anker',
- flash : 'Flash Animasjon',
- div : 'Sideskift',
- unknown : 'Ukjent objekt'
- },
-
- resize : 'Dra for å skalere',
-
- colordialog :
- {
- title : 'Velg farge',
- options : 'Color Options', // MISSING
- highlight : 'Merk',
- selected : 'Valgt',
- clear : 'Tøm'
- },
-
- toolbarCollapse : 'Slå sammen verktøylinje',
- toolbarExpand : 'Vis verktøylinje',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Norwegian Bokmål language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'nb' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rikteksteditor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Trykk ALT 0 for hjelp',
+
+ browseServer: 'Bla igjennom server',
+ url: 'URL',
+ protocol: 'Protokoll',
+ upload: 'Last opp',
+ uploadSubmit: 'Send det til serveren',
+ image: 'Bilde',
+ flash: 'Flash',
+ form: 'Skjema',
+ checkbox: 'Avmerkingsboks',
+ radio: 'Alternativknapp',
+ textField: 'Tekstboks',
+ textarea: 'Tekstområde',
+ hiddenField: 'Skjult felt',
+ button: 'Knapp',
+ select: 'Rullegardinliste',
+ imageButton: 'Bildeknapp',
+ notSet: '<ikke satt>',
+ id: 'Id',
+ name: 'Navn',
+ langDir: 'Språkretning',
+ langDirLtr: 'Venstre til høyre (VTH)',
+ langDirRtl: 'Høyre til venstre (HTV)',
+ langCode: 'Språkkode',
+ longDescr: 'Utvidet beskrivelse',
+ cssClass: 'Stilarkklasser',
+ advisoryTitle: 'Tittel',
+ cssStyle: 'Stil',
+ ok: 'OK',
+ cancel: 'Avbryt',
+ close: 'Lukk',
+ preview: 'Forhåndsvis',
+ resize: 'Dra for å skalere',
+ generalTab: 'Generelt',
+ advancedTab: 'Avansert',
+ validateNumberFailed: 'Denne verdien er ikke et tall.',
+ confirmNewPage: 'Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
+ confirmCancel: 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
+ options: 'Valg',
+ target: 'MÃ¥l',
+ targetNew: 'Nytt vindu (_blank)',
+ targetTop: 'Hele vindu (_top)',
+ targetSelf: 'Samme vindu (_self)',
+ targetParent: 'Foreldrevindu (_parent)',
+ langDirLTR: 'Venstre til høyre (VTH)',
+ langDirRTL: 'Høyre til venstre (HTV)',
+ styles: 'Stil',
+ cssClasses: 'Stilarkklasser',
+ width: 'Bredde',
+ height: 'Høyde',
+ align: 'Juster',
+ alignLeft: 'Venstre',
+ alignRight: 'Høyre',
+ alignCenter: 'Midtjuster',
+ alignTop: 'Topp',
+ alignMiddle: 'Midten',
+ alignBottom: 'Bunn',
+ invalidValue : 'Ugyldig verdi.',
+ invalidHeight: 'Høyde må være et tall.',
+ invalidWidth: 'Bredde må være et tall.',
+ invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
+ invalidHtmlLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).',
+ invalidInlineStyle: 'Verdi angitt for inline stil må bestå av en eller flere sett med formatet "navn : verdi", separert med semikolon',
+ cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/nl.js b/devel/third-party/ckeditor/lang/nl.js
index 3f70730..755be89 100644
--- a/devel/third-party/ckeditor/lang/nl.js
+++ b/devel/third-party/ckeditor/lang/nl.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Dutch language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['nl'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Tekstverwerker, %1, druk op ALT 0 voor hulp.',
-
- // ARIA descriptions.
- toolbar : 'Werkbalk',
- editor : 'Tekstverwerker',
-
- // Toolbar buttons without dialogs.
- source : 'Code',
- newPage : 'Nieuwe pagina',
- save : 'Opslaan',
- preview : 'Voorbeeld',
- cut : 'Knippen',
- copy : 'Kopiëren',
- paste : 'Plakken',
- print : 'Printen',
- underline : 'Onderstreept',
- bold : 'Vet',
- italic : 'Schuingedrukt',
- selectAll : 'Alles selecteren',
- removeFormat : 'Opmaak verwijderen',
- strike : 'Doorhalen',
- subscript : 'Subscript',
- superscript : 'Superscript',
- horizontalrule : 'Horizontale lijn invoegen',
- pagebreak : 'Pagina-einde invoegen',
- unlink : 'Link verwijderen',
- undo : 'Ongedaan maken',
- redo : 'Opnieuw uitvoeren',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Bladeren op server',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'Upload',
- uploadSubmit : 'Naar server verzenden',
- image : 'Afbeelding',
- flash : 'Flash',
- form : 'Formulier',
- checkbox : 'Aanvinkvakje',
- radio : 'Selectievakje',
- textField : 'Tekstveld',
- textarea : 'Tekstvak',
- hiddenField : 'Verborgen veld',
- button : 'Knop',
- select : 'Selectieveld',
- imageButton : 'Afbeeldingsknop',
- notSet : '<niet ingevuld>',
- id : 'Kenmerk',
- name : 'Naam',
- langDir : 'Schrijfrichting',
- langDirLtr : 'Links naar rechts (LTR)',
- langDirRtl : 'Rechts naar links (RTL)',
- langCode : 'Taalcode',
- longDescr : 'Lange URL-omschrijving',
- cssClass : 'Stylesheet-klassen',
- advisoryTitle : 'Aanbevolen titel',
- cssStyle : 'Stijl',
- ok : 'OK',
- cancel : 'Annuleren',
- close : 'Sluiten',
- preview : 'Voorbeeld',
- generalTab : 'Algemeen',
- advancedTab : 'Geavanceerd',
- validateNumberFailed : 'Deze waarde is geen geldig getal.',
- confirmNewPage : 'Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?',
- confirmCancel : 'Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?',
- options : 'Opties',
- target : 'Doel',
- targetNew : 'Nieuw venster (_blank)',
- targetTop : 'Hele venster (_top)',
- targetSelf : 'Zelfde venster (_self)',
- targetParent : 'Origineel venster (_parent)',
- langDirLTR : 'Links naar rechts (LTR)',
- langDirRTL : 'Rechts naar links (RTL)',
- styles : 'Stijlen',
- cssClasses : 'Stylesheet klassen',
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, niet beschikbaar</span>'
- },
-
- contextmenu :
- {
- options : 'Context menu opties'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Speciaal teken invoegen',
- title : 'Selecteer speciaal teken',
- options : 'Speciale tekens opties'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link invoegen/wijzigen',
- other : '<ander>',
- menu : 'Link wijzigen',
- title : 'Link',
- info : 'Linkomschrijving',
- target : 'Doel',
- upload : 'Upload',
- advanced : 'Geavanceerd',
- type : 'Linktype',
- toUrl : 'URL',
- toAnchor : 'Interne link in pagina',
- toEmail : 'E-mail',
- targetFrame : '<frame>',
- targetPopup : '<popup window>',
- targetFrameName : 'Naam doelframe',
- targetPopupName : 'Naam popupvenster',
- popupFeatures : 'Instellingen popupvenster',
- popupResizable : 'Herschaalbaar',
- popupStatusBar : 'Statusbalk',
- popupLocationBar: 'Locatiemenu',
- popupToolbar : 'Menubalk',
- popupMenuBar : 'Menubalk',
- popupFullScreen : 'Volledig scherm (IE)',
- popupScrollBars : 'Schuifbalken',
- popupDependent : 'Afhankelijk (Netscape)',
- popupWidth : 'Breedte',
- popupLeft : 'Positie links',
- popupHeight : 'Hoogte',
- popupTop : 'Positie boven',
- id : 'Id',
- langDir : 'Schrijfrichting',
- langDirLTR : 'Links naar rechts (LTR)',
- langDirRTL : 'Rechts naar links (RTL)',
- acccessKey : 'Toegangstoets',
- name : 'Naam',
- langCode : 'Schrijfrichting',
- tabIndex : 'Tabvolgorde',
- advisoryTitle : 'Aanbevolen titel',
- advisoryContentType : 'Aanbevolen content-type',
- cssClasses : 'Stylesheet-klassen',
- charset : 'Karakterset van gelinkte bron',
- styles : 'Stijl',
- selectAnchor : 'Kies een interne link',
- anchorName : 'Op naam interne link',
- anchorId : 'Op kenmerk interne link',
- emailAddress : 'E-mailadres',
- emailSubject : 'Onderwerp bericht',
- emailBody : 'Inhoud bericht',
- noAnchors : '(Geen interne links in document gevonden)',
- noUrl : 'Geef de link van de URL',
- noEmail : 'Geef een e-mailadres'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Interne link',
- menu : 'Eigenschappen interne link',
- title : 'Eigenschappen interne link',
- name : 'Naam interne link',
- errorName : 'Geef de naam van de interne link op'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Eigenschappen genummerde lijst',
- bulletedTitle : 'Eigenschappen lijst met opsommingstekens',
- type : 'Type',
- start : 'Start',
- validateStartNumber :'Starnummer van de lijst moet een heel nummer zijn.',
- circle : 'Cirkel',
- disc : 'Schijf',
- square : 'Vierkant',
- none : 'Geen',
- notset : '<niet gezet>',
- armenian : 'Armeense numering',
- georgian : 'Greorgische numering (an, ban, gan, etc.)',
- lowerRoman : 'Romeins kleine letters (i, ii, iii, iv, v, etc.)',
- upperRoman : 'Romeins hoofdletters (I, II, III, IV, V, etc.)',
- lowerAlpha : 'Kleine letters (a, b, c, d, e, etc.)',
- upperAlpha : 'Hoofdletters (A, B, C, D, E, etc.)',
- lowerGreek : 'Grieks kleine letters (alpha, beta, gamma, etc.)',
- decimal : 'Cijfers (1, 2, 3, etc.)',
- decimalLeadingZero : 'Cijfers beginnen met nul (01, 02, 03, etc.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Zoeken en vervangen',
- find : 'Zoeken',
- replace : 'Vervangen',
- findWhat : 'Zoeken naar:',
- replaceWith : 'Vervangen met:',
- notFoundMsg : 'De opgegeven tekst is niet gevonden.',
- matchCase : 'Hoofdlettergevoelig',
- matchWord : 'Hele woord moet voorkomen',
- matchCyclic : 'Doorlopend zoeken',
- replaceAll : 'Alles vervangen',
- replaceSuccessMsg : '%1 resulaten vervangen.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabel',
- title : 'Eigenschappen tabel',
- menu : 'Eigenschappen tabel',
- deleteTable : 'Tabel verwijderen',
- rows : 'Rijen',
- columns : 'Kolommen',
- border : 'Breedte rand',
- align : 'Uitlijning',
- alignLeft : 'Links',
- alignCenter : 'Centreren',
- alignRight : 'Rechts',
- width : 'Breedte',
- widthPx : 'pixels',
- widthPc : 'procent',
- widthUnit : 'eenheid breedte',
- height : 'Hoogte',
- cellSpace : 'Afstand tussen cellen',
- cellPad : 'Ruimte in de cel',
- caption : 'Naam',
- summary : 'Samenvatting',
- headers : 'Koppen',
- headersNone : 'Geen',
- headersColumn : 'Eerste kolom',
- headersRow : 'Eerste rij',
- headersBoth : 'Beide',
- invalidRows : 'Het aantal rijen moet een getal zijn groter dan 0.',
- invalidCols : 'Het aantal kolommen moet een getal zijn groter dan 0.',
- invalidBorder : 'De rand breedte moet een getal zijn.',
- invalidWidth : 'De tabel breedte moet een getal zijn.',
- invalidHeight : 'De tabel hoogte moet een getal zijn.',
- invalidCellSpacing : 'Afstand tussen cellen moet een getal zijn.',
- invalidCellPadding : 'Ruimte in de cel moet een getal zijn.',
-
- cell :
- {
- menu : 'Cel',
- insertBefore : 'Voeg cel in voor',
- insertAfter : 'Voeg cel in achter',
- deleteCell : 'Cellen verwijderen',
- merge : 'Cellen samenvoegen',
- mergeRight : 'Voeg samen naar rechts',
- mergeDown : 'Voeg samen naar beneden',
- splitHorizontal : 'Splits cellen horizontaal',
- splitVertical : 'Splits cellen verticaal',
- title : 'Cel eigenschappen',
- cellType : 'Cel type',
- rowSpan : 'Rijen samenvoegen',
- colSpan : 'Kolommen samenvoegen',
- wordWrap : 'Automatische terugloop',
- hAlign : 'Horizontale uitlijning',
- vAlign : 'Verticale uitlijning',
- alignTop : 'Boven',
- alignMiddle : 'Midden',
- alignBottom : 'Onder',
- alignBaseline : 'Basislijn',
- bgColor : 'Achtergrondkleur',
- borderColor : 'Kleur rand',
- data : 'Inhoud',
- header : 'Kop',
- yes : 'Ja',
- no : 'Nee',
- invalidWidth : 'De celbreedte moet een getal zijn.',
- invalidHeight : 'De celhoogte moet een getal zijn.',
- invalidRowSpan : 'Rijen samenvoegen moet een heel getal zijn.',
- invalidColSpan : 'Kolommen samenvoegen moet een heel getal zijn.',
- chooseColor : 'Kies'
- },
-
- row :
- {
- menu : 'Rij',
- insertBefore : 'Voeg rij in voor',
- insertAfter : 'Voeg rij in achter',
- deleteRow : 'Rijen verwijderen'
- },
-
- column :
- {
- menu : 'Kolom',
- insertBefore : 'Voeg kolom in voor',
- insertAfter : 'Voeg kolom in achter',
- deleteColumn : 'Kolommen verwijderen'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Eigenschappen knop',
- text : 'Tekst (waarde)',
- type : 'Soort',
- typeBtn : 'Knop',
- typeSbm : 'Versturen',
- typeRst : 'Leegmaken'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Eigenschappen aanvinkvakje',
- radioTitle : 'Eigenschappen selectievakje',
- value : 'Waarde',
- selected : 'Geselecteerd'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Eigenschappen formulier',
- menu : 'Eigenschappen formulier',
- action : 'Actie',
- method : 'Methode',
- encoding : 'Codering'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Eigenschappen selectieveld',
- selectInfo : 'Informatie',
- opAvail : 'Beschikbare opties',
- value : 'Waarde',
- size : 'Grootte',
- lines : 'Regels',
- chkMulti : 'Gecombineerde selecties toestaan',
- opText : 'Tekst',
- opValue : 'Waarde',
- btnAdd : 'Toevoegen',
- btnModify : 'Wijzigen',
- btnUp : 'Omhoog',
- btnDown : 'Omlaag',
- btnSetValue : 'Als geselecteerde waarde instellen',
- btnDelete : 'Verwijderen'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Eigenschappen tekstvak',
- cols : 'Kolommen',
- rows : 'Rijen'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Eigenschappen tekstveld',
- name : 'Naam',
- value : 'Waarde',
- charWidth : 'Breedte (tekens)',
- maxChars : 'Maximum aantal tekens',
- type : 'Soort',
- typeText : 'Tekst',
- typePass : 'Wachtwoord'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Eigenschappen verborgen veld',
- name : 'Naam',
- value : 'Waarde'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Eigenschappen afbeelding',
- titleButton : 'Eigenschappen afbeeldingsknop',
- menu : 'Eigenschappen afbeelding',
- infoTab : 'Informatie afbeelding',
- btnUpload : 'Naar server verzenden',
- upload : 'Upload',
- alt : 'Alternatieve tekst',
- width : 'Breedte',
- height : 'Hoogte',
- lockRatio : 'Afmetingen vergrendelen',
- unlockRatio : 'Afmetingen ontgrendelen',
- resetSize : 'Afmetingen resetten',
- border : 'Rand',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Uitlijning',
- alignLeft : 'Links',
- alignRight : 'Rechts',
- alertUrl : 'Geef de URL van de afbeelding',
- linkTab : 'Link',
- button2Img : 'Wilt u de geselecteerde afbeeldingsknop vervangen door een eenvoudige afbeelding?',
- img2Button : 'Wilt u de geselecteerde afbeelding vervangen door een afbeeldingsknop?',
- urlMissing : 'De URL naar de afbeelding ontbreekt.',
- validateWidth : 'Breedte moet een heel nummer zijn.',
- validateHeight : 'Hoogte moet een heel nummer zijn.',
- validateBorder : 'Rand moet een heel nummer zijn.',
- validateHSpace : 'HSpace moet een heel nummer zijn.',
- validateVSpace : 'VSpace moet een heel nummer zijn.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Eigenschappen Flash',
- propertiesTab : 'Eigenschappen',
- title : 'Eigenschappen Flash',
- chkPlay : 'Automatisch afspelen',
- chkLoop : 'Herhalen',
- chkMenu : 'Flashmenu\'s inschakelen',
- chkFull : 'Schermvullend toestaan',
- scale : 'Schaal',
- scaleAll : 'Alles tonen',
- scaleNoBorder : 'Geen rand',
- scaleFit : 'Precies passend',
- access : 'Script toegang',
- accessAlways : 'Altijd',
- accessSameDomain: 'Zelfde domeinnaam',
- accessNever : 'Nooit',
- align : 'Uitlijning',
- alignLeft : 'Links',
- alignAbsBottom : 'Absoluut-onder',
- alignAbsMiddle : 'Absoluut-midden',
- alignBaseline : 'Basislijn',
- alignBottom : 'Beneden',
- alignMiddle : 'Midden',
- alignRight : 'Rechts',
- alignTextTop : 'Boven tekst',
- alignTop : 'Boven',
- quality : 'Kwaliteit',
- qualityBest : 'Beste',
- qualityHigh : 'Hoog',
- qualityAutoHigh : 'Automatisch hoog',
- qualityMedium : 'Gemiddeld',
- qualityAutoLow : 'Automatisch laag',
- qualityLow : 'Laag',
- windowModeWindow: 'Venster',
- windowModeOpaque: 'Ondoorzichtig',
- windowModeTransparent : 'Doorzichtig',
- windowMode : 'Venster modus',
- flashvars : 'Variabelen voor Flash',
- bgcolor : 'Achtergrondkleur',
- width : 'Breedte',
- height : 'Hoogte',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Geef de link van de URL',
- validateWidth : 'De breedte moet een getal zijn.',
- validateHeight : 'De hoogte moet een getal zijn.',
- validateHSpace : 'De HSpace moet een getal zijn.',
- validateVSpace : 'De VSpace moet een getal zijn.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Spellingscontrole',
- title : 'Spellingscontrole',
- notAvailable : 'Excuses, deze dienst is momenteel niet beschikbaar.',
- errorLoading : 'Er is een fout opgetreden bij het laden van de diesnt: %s.',
- notInDic : 'Niet in het woordenboek',
- changeTo : 'Wijzig in',
- btnIgnore : 'Negeren',
- btnIgnoreAll : 'Alles negeren',
- btnReplace : 'Vervangen',
- btnReplaceAll : 'Alles vervangen',
- btnUndo : 'Ongedaan maken',
- noSuggestions : '-Geen suggesties-',
- progress : 'Bezig met spellingscontrole...',
- noMispell : 'Klaar met spellingscontrole: geen fouten gevonden',
- noChanges : 'Klaar met spellingscontrole: geen woorden aangepast',
- oneChange : 'Klaar met spellingscontrole: één woord aangepast',
- manyChanges : 'Klaar met spellingscontrole: %1 woorden aangepast',
- ieSpellDownload : 'De spellingscontrole niet geïnstalleerd. Wilt u deze nu downloaden?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Smiley invoegen',
- options : 'Smiley opties'
- },
-
- elementsPath :
- {
- eleLabel : 'Elementenpad',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Genummerde lijst',
- bulletedlist : 'Opsomming',
- indent : 'Inspringen vergroten',
- outdent : 'Inspringen verkleinen',
-
- justify :
- {
- left : 'Links uitlijnen',
- center : 'Centreren',
- right : 'Rechts uitlijnen',
- block : 'Uitvullen'
- },
-
- blockquote : 'Citaatblok',
-
- clipboard :
- {
- title : 'Plakken',
- cutError : 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.',
- copyError : 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.',
- pasteMsg : 'Plak de tekst in het volgende vak gebruik makend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op <strong>OK</strong>.',
- securityMsg : 'Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.',
- pasteArea : 'Plakgebied'
- },
-
- pastefromword :
- {
- confirmCleanup : 'De tekst die u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?',
- toolbar : 'Plakken als Word-gegevens',
- title : 'Plakken als Word-gegevens',
- error : 'Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout'
- },
-
- pasteText :
- {
- button : 'Plakken als platte tekst',
- title : 'Plakken als platte tekst'
- },
-
- templates :
- {
- button : 'Sjablonen',
- title : 'Inhoud sjabonen',
- options : 'Template opties',
- insertOption : 'Vervang de huidige inhoud',
- selectPromptMsg : 'Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):',
- emptyListMsg : '(Geen sjablonen gedefinieerd)'
- },
-
- showBlocks : 'Toon blokken',
-
- stylesCombo :
- {
- label : 'Stijl',
- panelTitle : 'Opmaakstijlen',
- panelTitle1 : 'Blok stijlen',
- panelTitle2 : 'In-line stijlen',
- panelTitle3 : 'Object stijlen'
- },
-
- format :
- {
- label : 'Opmaak',
- panelTitle : 'Opmaak',
-
- tag_p : 'Normaal',
- tag_pre : 'Met opmaak',
- tag_address : 'Adres',
- tag_h1 : 'Kop 1',
- tag_h2 : 'Kop 2',
- tag_h3 : 'Kop 3',
- tag_h4 : 'Kop 4',
- tag_h5 : 'Kop 5',
- tag_h6 : 'Kop 6',
- tag_div : 'Normaal (DIV)'
- },
-
- div :
- {
- title : 'Div aanmaken',
- toolbar : 'Div aanmaken',
- cssClassInputLabel : 'Stylesheet klassen',
- styleSelectLabel : 'Stijl',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Taalcode',
- inlineStyleInputLabel : 'Inline stijl',
- advisoryTitleInputLabel : 'informatieve titel',
- langDirLabel : 'Schrijfrichting',
- langDirLTRLabel : 'Links naar rechts (LTR)',
- langDirRTLLabel : 'Rechts naar links (RTL)',
- edit : 'Div wijzigen',
- remove : 'Div verwijderen'
- },
-
- font :
- {
- label : 'Lettertype',
- voiceLabel : 'Lettertype',
- panelTitle : 'Lettertype'
- },
-
- fontSize :
- {
- label : 'Lettergrootte',
- voiceLabel : 'Lettergrootte',
- panelTitle : 'Lettergrootte'
- },
-
- colorButton :
- {
- textColorTitle : 'Tekstkleur',
- bgColorTitle : 'Achtergrondkleur',
- panelTitle : 'Kleuren',
- auto : 'Automatisch',
- more : 'Meer kleuren...'
- },
-
- colors :
- {
- '000' : 'Zwart',
- '800000' : 'Kastanjebruin',
- '8B4513' : 'Chocoladebruin',
- '2F4F4F' : 'Donkerleigrijs',
- '008080' : 'Blauwgroen',
- '000080' : 'Marine',
- '4B0082' : 'Indigo',
- '696969' : 'Donkergrijs',
- 'B22222' : 'Baksteen',
- 'A52A2A' : 'Bruin',
- 'DAA520' : 'Donkergeel',
- '006400' : 'Donkergroen',
- '40E0D0' : 'Turquoise',
- '0000CD' : 'Middenblauw',
- '800080' : 'Paars',
- '808080' : 'Grijs',
- 'F00' : 'Rood',
- 'FF8C00' : 'Donkeroranje',
- 'FFD700' : 'Goud',
- '008000' : 'Groen',
- '0FF' : 'Cyaan',
- '00F' : 'Blauw',
- 'EE82EE' : 'Violet',
- 'A9A9A9' : 'Donkergrijs',
- 'FFA07A' : 'Lichtzalm',
- 'FFA500' : 'Oranje',
- 'FFFF00' : 'Geel',
- '00FF00' : 'Felgroen',
- 'AFEEEE' : 'Lichtturquoise',
- 'ADD8E6' : 'Lichtblauw',
- 'DDA0DD' : 'Pruim',
- 'D3D3D3' : 'Lichtgrijs',
- 'FFF0F5' : 'Linnen',
- 'FAEBD7' : 'Ivoor',
- 'FFFFE0' : 'Lichtgeel',
- 'F0FFF0' : 'Honingdauw',
- 'F0FFFF' : 'Azuur',
- 'F0F8FF' : 'Licht hemelsblauw',
- 'E6E6FA' : 'Lavendel',
- 'FFF' : 'Wit'
- },
-
- scayt :
- {
- title : 'Controleer de spelling tijdens het typen',
- opera_title : 'Niet ondersteund door Opera',
- enable : 'SCAYT inschakelen',
- disable : 'SCAYT uitschakelen',
- about : 'Over SCAYT',
- toggle : 'SCAYT in/uitschakelen',
- options : 'Opties',
- langs : 'Talen',
- moreSuggestions : 'Meer suggesties',
- ignore : 'Negeren',
- ignoreAll : 'Alles negeren',
- addWord : 'Woord toevoegen',
- emptyDic : 'De naam van het woordenboek mag niet leeg zijn.',
-
- optionsTab : 'Opties',
- allCaps : 'Negeer woorden helemaal in hoofdletters',
- ignoreDomainNames : 'Negeer domeinnamen',
- mixedCase : 'Negeer woorden met hoofd- en kleine letters',
- mixedWithDigits : 'Negeer woorden met cijfers',
-
- languagesTab : 'Talen',
-
- dictionariesTab : 'Woordenboeken',
- dic_field_name : 'Naam woordenboek',
- dic_create : 'Aanmaken',
- dic_restore : 'Terugzetten',
- dic_delete : 'Verwijderen',
- dic_rename : 'Hernoemen',
- dic_info : 'Initieel wordt het gebruikerswoordenboek opgeslagen in een cookie. Cookies zijn echter beperkt in grootte. Zodra het gebruikerswoordenboek het punt bereikt waarop het niet meer in een cookie opgeslagen kan worden, dan wordt het woordenboek op de server opgeslagen. Om je persoonlijke woordenboek op je eigen server op te slaan, moet je een mapnaam opgeven. Indien je al een woordenboek hebt opgeslagen, typ dan de naam en klik op de Terugzetten knop.',
-
- aboutTab : 'Over'
- },
-
- about :
- {
- title : 'Over CKEditor',
- dlgTitle : 'Over CKEditor',
- moreInfo : 'Voor licentie informatie, bezoek onze website:',
- copy : 'Copyright © $1. Alle rechten voorbehouden.'
- },
-
- maximize : 'Maximaliseren',
- minimize : 'Minimaliseren',
-
- fakeobjects :
- {
- anchor : 'Anker',
- flash : 'Flash animatie',
- div : 'Pagina einde',
- unknown : 'Onbekend object'
- },
-
- resize : 'Sleep om te herschalen',
-
- colordialog :
- {
- title : 'Selecteer kleur',
- options : 'Kleuropties',
- highlight : 'Actief',
- selected : 'Geselecteerd',
- clear : 'Wissen'
- },
-
- toolbarCollapse : 'Werkbalk inklappen',
- toolbarExpand : 'Werkbalk uitklappen',
-
- bidi :
- {
- ltr : 'Schrijfrichting van links naar rechts',
- rtl : 'Schrijfrichting van rechts naar links'
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Dutch language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'nl' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Tekstverwerker',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Druk ALT 0 voor hulp',
+
+ browseServer: 'Bladeren op server',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'Upload',
+ uploadSubmit: 'Naar server verzenden',
+ image: 'Afbeelding',
+ flash: 'Flash',
+ form: 'Formulier',
+ checkbox: 'Aanvinkvakje',
+ radio: 'Selectievakje',
+ textField: 'Tekstveld',
+ textarea: 'Tekstvak',
+ hiddenField: 'Verborgen veld',
+ button: 'Knop',
+ select: 'Selectieveld',
+ imageButton: 'Afbeeldingsknop',
+ notSet: '<niet ingevuld>',
+ id: 'Id',
+ name: 'Naam',
+ langDir: 'Schrijfrichting',
+ langDirLtr: 'Links naar rechts (LTR)',
+ langDirRtl: 'Rechts naar links (RTL)',
+ langCode: 'Taalcode',
+ longDescr: 'Lange URL-omschrijving',
+ cssClass: 'Stylesheet-klassen',
+ advisoryTitle: 'Adviserende titel',
+ cssStyle: 'Stijl',
+ ok: 'OK',
+ cancel: 'Annuleren',
+ close: 'Sluiten',
+ preview: 'Voorbeeld',
+ resize: 'Sleep om te herschalen',
+ generalTab: 'Algemeen',
+ advancedTab: 'Geavanceerd',
+ validateNumberFailed: 'Deze waarde is geen geldig getal.',
+ confirmNewPage: 'Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?',
+ confirmCancel: 'Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?',
+ options: 'Opties',
+ target: 'Doelvenster',
+ targetNew: 'Nieuw venster (_blank)',
+ targetTop: 'Hele venster (_top)',
+ targetSelf: 'Zelfde venster (_self)',
+ targetParent: 'Origineel venster (_parent)',
+ langDirLTR: 'Links naar rechts (LTR)',
+ langDirRTL: 'Rechts naar links (RTL)',
+ styles: 'Stijl',
+ cssClasses: 'Stylesheet klassen',
+ width: 'Breedte',
+ height: 'Hoogte',
+ align: 'Uitlijning',
+ alignLeft: 'Links',
+ alignRight: 'Rechts',
+ alignCenter: 'Centreren',
+ alignTop: 'Boven',
+ alignMiddle: 'Midden',
+ alignBottom: 'Onder',
+ invalidValue : 'Ongeldige waarde.',
+ invalidHeight: 'De hoogte moet een getal zijn.',
+ invalidWidth: 'De breedte moet een getal zijn.',
+ invalidCssLength: 'Waarde in veld "%1" moet een positief nummer zijn, met of zonder een geldige CSS meeteenheid (px, %, in, cm, mm, em, ex, pt of pc).',
+ invalidHtmlLength: 'Waarde in veld "%1" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).',
+ invalidInlineStyle: 'Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat "naam : waarde", gescheiden door puntkomma\'s.',
+ cssLengthTooltip: 'Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, niet beschikbaar</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/no.js b/devel/third-party/ckeditor/lang/no.js
index db293dd..3310e9f 100644
--- a/devel/third-party/ckeditor/lang/no.js
+++ b/devel/third-party/ckeditor/lang/no.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Norwegian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['no'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rikteksteditor, %1, trykk ALT 0 for hjelp.',
-
- // ARIA descriptions.
- toolbar : 'Verktøylinje',
- editor : 'Rikteksteditor',
-
- // Toolbar buttons without dialogs.
- source : 'Kilde',
- newPage : 'Ny Side',
- save : 'Lagre',
- preview : 'Forhåndsvis',
- cut : 'Klipp ut',
- copy : 'Kopier',
- paste : 'Lim inn',
- print : 'Skriv ut',
- underline : 'Understrek',
- bold : 'Fet',
- italic : 'Kursiv',
- selectAll : 'Merk alt',
- removeFormat : 'Fjern format',
- strike : 'Gjennomstrek',
- subscript : 'Senket skrift',
- superscript : 'Hevet skrift',
- horizontalrule : 'Sett inn horisontal linje',
- pagebreak : 'Sett inn sideskift',
- unlink : 'Fjern lenke',
- undo : 'Angre',
- redo : 'Gjør om',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Bla igjennom server',
- url : 'URL',
- protocol : 'Protokoll',
- upload : 'Last opp',
- uploadSubmit : 'Send det til serveren',
- image : 'Bilde',
- flash : 'Flash',
- form : 'Skjema',
- checkbox : 'Avmerkingsboks',
- radio : 'Alternativknapp',
- textField : 'Tekstboks',
- textarea : 'Tekstområde',
- hiddenField : 'Skjult felt',
- button : 'Knapp',
- select : 'Rullegardinliste',
- imageButton : 'Bildeknapp',
- notSet : '<ikke satt>',
- id : 'Id',
- name : 'Navn',
- langDir : 'Språkretning',
- langDirLtr : 'Venstre til høyre (VTH)',
- langDirRtl : 'Høyre til venstre (HTV)',
- langCode : 'Språkkode',
- longDescr : 'Utvidet beskrivelse',
- cssClass : 'Stilarkklasser',
- advisoryTitle : 'Tittel',
- cssStyle : 'Stil',
- ok : 'OK',
- cancel : 'Avbryt',
- close : 'Lukk',
- preview : 'Forhåndsvis',
- generalTab : 'Generelt',
- advancedTab : 'Avansert',
- validateNumberFailed : 'Denne verdien er ikke ett nummer',
- confirmNewPage : 'Alle endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
- confirmCancel : 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
- options : 'Valg',
- target : 'MÃ¥l',
- targetNew : 'Nytt vindu (_blank)',
- targetTop : 'Hele vindu (_top)',
- targetSelf : 'Samme vindu (_self)',
- targetParent : 'Foreldrevindu (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, utilgjenglig</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Sett inn spesielt tegn',
- title : 'Velg spesielt tegn',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Sett inn/Rediger lenke',
- other : '<other>', // MISSING
- menu : 'Rediger lenke',
- title : 'Lenke',
- info : 'Lenkeinfo',
- target : 'MÃ¥l',
- upload : 'Last opp',
- advanced : 'Avansert',
- type : 'Lenketype',
- toUrl : 'URL',
- toAnchor : 'Lenke til anker i teksten',
- toEmail : 'E-post',
- targetFrame : '<ramme>',
- targetPopup : '<popup vindu>',
- targetFrameName : 'MÃ¥lramme',
- targetPopupName : 'Navn på popup-vindus',
- popupFeatures : 'Egenskaper for popup-vindu',
- popupResizable : 'Skalérbar',
- popupStatusBar : 'Statuslinje',
- popupLocationBar: 'Adresselinje',
- popupToolbar : 'Verktøylinje',
- popupMenuBar : 'Menylinje',
- popupFullScreen : 'Full skjerm (IE)',
- popupScrollBars : 'Scrollbar',
- popupDependent : 'Avhenging (Netscape)',
- popupWidth : 'Bredde',
- popupLeft : 'Venstre posisjon',
- popupHeight : 'Høyde',
- popupTop : 'Topp-posisjon',
- id : 'Id',
- langDir : 'Språkretning',
- langDirLTR : 'Venstre til høyre (VTH)',
- langDirRTL : 'Høyre til venstre (HTV)',
- acccessKey : 'Aksessknapp',
- name : 'Navn',
- langCode : 'Språkretning',
- tabIndex : 'Tab Indeks',
- advisoryTitle : 'Tittel',
- advisoryContentType : 'Type',
- cssClasses : 'Stilarkklasser',
- charset : 'Lenket språkkart',
- styles : 'Stil',
- selectAnchor : 'Velg et anker',
- anchorName : 'Anker etter navn',
- anchorId : 'Element etter ID',
- emailAddress : 'E-postadresse',
- emailSubject : 'Meldingsemne',
- emailBody : 'Melding',
- noAnchors : '(Ingen anker i dokumentet)',
- noUrl : 'Vennligst skriv inn lenkens url',
- noEmail : 'Vennligst skriv inn e-postadressen'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Sett inn/Rediger anker',
- menu : 'Egenskaper for anker',
- title : 'Egenskaper for anker',
- name : 'Ankernavn',
- errorName : 'Vennligst skriv inn ankernavnet'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Søk og erstatt',
- find : 'Søk',
- replace : 'Erstatt',
- findWhat : 'Søk etter:',
- replaceWith : 'Erstatt med:',
- notFoundMsg : 'Fant ikke søketeksten.',
- matchCase : 'Skill mellom store og små bokstaver',
- matchWord : 'Bare hele ord',
- matchCyclic : 'Søk i hele dokumentet',
- replaceAll : 'Erstatt alle',
- replaceSuccessMsg : '%1 tilfelle erstattet.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabell',
- title : 'Egenskaper for tabell',
- menu : 'Egenskaper for tabell',
- deleteTable : 'Slett tabell',
- rows : 'Rader',
- columns : 'Kolonner',
- border : 'Rammestørrelse',
- align : 'Justering',
- alignLeft : 'Venstre',
- alignCenter : 'Midtjuster',
- alignRight : 'Høyre',
- width : 'Bredde',
- widthPx : 'piksler',
- widthPc : 'prosent',
- widthUnit : 'Bredde-enhet',
- height : 'Høyde',
- cellSpace : 'Cellemarg',
- cellPad : 'Cellepolstring',
- caption : 'Tittel',
- summary : 'Sammendrag',
- headers : 'Overskrifter',
- headersNone : 'Ingen',
- headersColumn : 'Første kolonne',
- headersRow : 'Første rad',
- headersBoth : 'Begge',
- invalidRows : 'Antall rader må være ett tall større enn 0.',
- invalidCols : 'Antall kolonner må være ett tall større enn 0.',
- invalidBorder : 'Rammestørrelse må være ett tall.',
- invalidWidth : 'Tabellbredde må være ett nummer.',
- invalidHeight : 'Tabellhøyde må være ett nummer.',
- invalidCellSpacing : 'Cellemellomrom må være ett nummer.',
- invalidCellPadding : 'Cellefyll må være ett nummer.',
-
- cell :
- {
- menu : 'Celle',
- insertBefore : 'Sett inn celle før',
- insertAfter : 'Sett inn celle etter',
- deleteCell : 'Slett celler',
- merge : 'Slå sammen celler',
- mergeRight : 'Slå sammen høyre',
- mergeDown : 'Slå sammen ned',
- splitHorizontal : 'Del celle horisontalt',
- splitVertical : 'Del celle vertikalt',
- title : 'Celleegenskaper',
- cellType : 'Celletype',
- rowSpan : 'Radspenn',
- colSpan : 'Kolonnespenn',
- wordWrap : 'Tekstbrytning',
- hAlign : 'Horisontal justering',
- vAlign : 'Vertikal justering',
- alignTop : 'Topp',
- alignMiddle : 'Midten',
- alignBottom : 'Bunnen',
- alignBaseline : 'Grunnlinje',
- bgColor : 'Bakgrunnsfarge',
- borderColor : 'Rammefarge',
- data : 'Data',
- header : 'Overskrift',
- yes : 'Ja',
- no : 'Nei',
- invalidWidth : 'Cellebredde må være ett nummer',
- invalidHeight : 'Cellehøyde må være ett nummer',
- invalidRowSpan : 'Radspenn må være ett nummer.',
- invalidColSpan : 'Kolonnespenn må være ett nummer.',
- chooseColor : 'Velg'
- },
-
- row :
- {
- menu : 'Rader',
- insertBefore : 'Sett inn rad før',
- insertAfter : 'Sett inn rad etter',
- deleteRow : 'Slett rader'
- },
-
- column :
- {
- menu : 'Kolonne',
- insertBefore : 'Sett inn kolonne før',
- insertAfter : 'Sett inn kolonne etter',
- deleteColumn : 'Slett kolonner'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Egenskaper for knapp',
- text : 'Tekst (verdi)',
- type : 'Type',
- typeBtn : 'Knapp',
- typeSbm : 'Send',
- typeRst : 'Nullstill'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Egenskaper for avmerkingsboks',
- radioTitle : 'Egenskaper for alternativknapp',
- value : 'Verdi',
- selected : 'Valgt'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Egenskaper for skjema',
- menu : 'Egenskaper for skjema',
- action : 'Handling',
- method : 'Metode',
- encoding : 'Encoding'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Egenskaper for rullegardinliste',
- selectInfo : 'Info',
- opAvail : 'Tilgjenglige alternativer',
- value : 'Verdi',
- size : 'Størrelse',
- lines : 'Linjer',
- chkMulti : 'Tillat flervalg',
- opText : 'Tekst',
- opValue : 'Verdi',
- btnAdd : 'Legg til',
- btnModify : 'Endre',
- btnUp : 'Opp',
- btnDown : 'Ned',
- btnSetValue : 'Sett som valgt',
- btnDelete : 'Slett'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Egenskaper for tekstområde',
- cols : 'Kolonner',
- rows : 'Rader'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Egenskaper for tekstfelt',
- name : 'Navn',
- value : 'Verdi',
- charWidth : 'Tegnbredde',
- maxChars : 'Maks antall tegn',
- type : 'Type',
- typeText : 'Tekst',
- typePass : 'Passord'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Egenskaper for skjult felt',
- name : 'Navn',
- value : 'Verdi'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Bildeegenskaper',
- titleButton : 'Egenskaper for bildeknapp',
- menu : 'Bildeegenskaper',
- infoTab : 'Bildeinformasjon',
- btnUpload : 'Send det til serveren',
- upload : 'Last opp',
- alt : 'Alternativ tekst',
- width : 'Bredde',
- height : 'Høyde',
- lockRatio : 'LÃ¥s forhold',
- unlockRatio : 'Ikke lås forhold',
- resetSize : 'Tilbakestill størrelse',
- border : 'Ramme',
- hSpace : 'HMarg',
- vSpace : 'VMarg',
- align : 'Juster',
- alignLeft : 'Venstre',
- alignRight : 'Høyre',
- alertUrl : 'Vennligst skriv bilde-urlen',
- linkTab : 'Lenke',
- button2Img : 'Vil du endre den valgte bildeknappen til ett vanlig bilde?',
- img2Button : 'Vil du endre det valgte bildet til en bildeknapp?',
- urlMissing : 'Bildets adresse mangler.',
- validateWidth : 'Bredde må være ett nummer.',
- validateHeight : 'Høyde må være ett nummer.',
- validateBorder : 'Ramme må være ett nummer.',
- validateHSpace : 'HSpace må være ett nummer.',
- validateVSpace : 'VSpace må være ett nummer.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Egenskaper for Flash-objekt',
- propertiesTab : 'Egenskaper',
- title : 'Flash-egenskaper',
- chkPlay : 'Autospill',
- chkLoop : 'Loop',
- chkMenu : 'Slå på Flash-meny',
- chkFull : 'Tillat fullskjerm',
- scale : 'Skaler',
- scaleAll : 'Vis alt',
- scaleNoBorder : 'Ingen ramme',
- scaleFit : 'Skaler til å passe',
- access : 'Scripttilgang',
- accessAlways : 'Alltid',
- accessSameDomain: 'Samme domene',
- accessNever : 'Aldri',
- align : 'Juster',
- alignLeft : 'Venstre',
- alignAbsBottom : 'Abs bunn',
- alignAbsMiddle : 'Abs midten',
- alignBaseline : 'Bunnlinje',
- alignBottom : 'Bunn',
- alignMiddle : 'Midten',
- alignRight : 'Høyre',
- alignTextTop : 'Tekst topp',
- alignTop : 'Topp',
- quality : 'Kvalitet',
- qualityBest : 'Best',
- qualityHigh : 'Høy',
- qualityAutoHigh : 'Auto Høy',
- qualityMedium : 'Medium',
- qualityAutoLow : 'Auto Lav',
- qualityLow : 'Lav',
- windowModeWindow: 'Vindu',
- windowModeOpaque: 'Opaque',
- windowModeTransparent : 'Gjennomsiktig',
- windowMode : 'Vindu modus',
- flashvars : 'Variabler for flash',
- bgcolor : 'Bakgrunnsfarge',
- width : 'Bredde',
- height : 'Høyde',
- hSpace : 'HMarg',
- vSpace : 'VMarg',
- validateSrc : 'Vennligst skriv inn lenkens url',
- validateWidth : 'Bredde må være ett nummer.',
- validateHeight : 'Høyde må være ett nummer',
- validateHSpace : 'HSpace må være ett nummer.',
- validateVSpace : 'VSpace må være ett nummer.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Stavekontroll',
- title : 'Stavekontroll',
- notAvailable : 'Beklager, tjenesten er utilgjenglig nå.',
- errorLoading : 'Feil under lasting av applicationstjeneste tjener: %s.',
- notInDic : 'Ikke i ordboken',
- changeTo : 'Endre til',
- btnIgnore : 'Ignorer',
- btnIgnoreAll : 'Ignorer alle',
- btnReplace : 'Erstatt',
- btnReplaceAll : 'Erstatt alle',
- btnUndo : 'Angre',
- noSuggestions : '- Ingen forslag -',
- progress : 'Stavekontroll pågår...',
- noMispell : 'Stavekontroll fullført: ingen feilstavinger funnet',
- noChanges : 'Stavekontroll fullført: ingen ord endret',
- oneChange : 'Stavekontroll fullført: Ett ord endret',
- manyChanges : 'Stavekontroll fullført: %1 ord endret',
- ieSpellDownload : 'Stavekontroll er ikke installert. Vil du laste den ned nå?'
- },
-
- smiley :
- {
- toolbar : 'Smil',
- title : 'Sett inn smil',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Element-sti',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Nummerert liste',
- bulletedlist : 'Uordnet liste',
- indent : 'Ãk nivÃ¥',
- outdent : 'Senk nivå',
-
- justify :
- {
- left : 'Venstrejuster',
- center : 'Midtjuster',
- right : 'Høyrejuster',
- block : 'Blokkjuster'
- },
-
- blockquote : 'Blockquote',
-
- clipboard :
- {
- title : 'Lim inn',
- cutError : 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klipping av tekst. Vennligst bruk snareveien (Ctrl+X).',
- copyError : 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',
- pasteMsg : 'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
- securityMsg : 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',
- pasteArea : 'Innlimingsområde'
- },
-
- pastefromword :
- {
- confirmCleanup : 'Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?',
- toolbar : 'Lim inn fra Word',
- title : 'Lim inn fra Word',
- error : 'Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil'
- },
-
- pasteText :
- {
- button : 'Lim inn som ren tekst',
- title : 'Lim inn som ren tekst'
- },
-
- templates :
- {
- button : 'Maler',
- title : 'Innholdsmaler',
- options : 'Template Options', // MISSING
- insertOption : 'Erstatt faktisk innold',
- selectPromptMsg : 'Velg malen du vil åpne<br>(innholdet du har skrevet blir tapt!):',
- emptyListMsg : '(Ingen maler definert)'
- },
-
- showBlocks : 'Vis blokker',
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Stilformater',
- panelTitle1 : 'Blokkstiler',
- panelTitle2 : 'Inlinestiler',
- panelTitle3 : 'Objektstiler'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatert',
- tag_address : 'Adresse',
- tag_h1 : 'Tittel 1',
- tag_h2 : 'Tittel 2',
- tag_h3 : 'Tittel 3',
- tag_h4 : 'Tittel 4',
- tag_h5 : 'Tittel 5',
- tag_h6 : 'Tittel 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Sett inn Div Container',
- toolbar : 'Sett inn Div Container',
- cssClassInputLabel : 'Stilark-klasser',
- styleSelectLabel : 'Stil',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Språk-kode',
- inlineStyleInputLabel : 'Inlinestiler',
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Språkretning',
- langDirLTRLabel : 'Venstre til høyre (VTH)',
- langDirRTLLabel : 'Høyre til venstre (HTV)',
- edit : 'Rediger Div',
- remove : 'Fjern Div'
- },
-
- font :
- {
- label : 'Skrift',
- voiceLabel : 'Font',
- panelTitle : 'Skrift'
- },
-
- fontSize :
- {
- label : 'Størrelse',
- voiceLabel : 'Font Størrelse',
- panelTitle : 'Størrelse'
- },
-
- colorButton :
- {
- textColorTitle : 'Tekstfarge',
- bgColorTitle : 'Bakgrunnsfarge',
- panelTitle : 'Farger',
- auto : 'Automatisk',
- more : 'Flere farger...'
- },
-
- colors :
- {
- '000' : 'Svart',
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Marine',
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Svak grå',
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brun',
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Mørk grå',
- '40E0D0' : 'Turkis',
- '0000CD' : 'Medium Blå',
- '800080' : 'Purple', // MISSING
- '808080' : 'Grå',
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Mørk oransje',
- 'FFD700' : 'gull',
- '008000' : 'Grønn',
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blå',
- 'EE82EE' : 'Fiolett',
- 'A9A9A9' : 'Mørk grå',
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Oransje',
- 'FFFF00' : 'gul',
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Lys Blå',
- 'DDA0DD' : 'Plomme',
- 'D3D3D3' : 'Lys grå',
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antikk-hvit',
- 'FFFFE0' : 'Lys gul',
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'Hvit'
- },
-
- scayt :
- {
- title : 'Stavekontroll mens du skriver',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Slå på SCAYT',
- disable : 'Slå av SCAYT',
- about : 'Om SCAYT',
- toggle : 'Veksle SCAYT',
- options : 'Valg',
- langs : 'Språk',
- moreSuggestions : 'Flere forslag',
- ignore : 'Ignorer',
- ignoreAll : 'Ignorer Alle',
- addWord : 'Legg til ord',
- emptyDic : 'Ordboknavn skal ikke være tom',
-
- optionsTab : 'Valg',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Språk',
-
- dictionariesTab : 'Ordbøker',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Om'
- },
-
- about :
- {
- title : 'Om CKEditor',
- dlgTitle : 'Om CKEditor',
- moreInfo : 'For lisensieringsinformasjon vennligst besøk vårt nettsted:',
- copy : 'Copyright © $1. Alle rettigheter reservert.'
- },
-
- maximize : 'Maksimer',
- minimize : 'Minimer',
-
- fakeobjects :
- {
- anchor : 'Anker',
- flash : 'Flash Animasjon',
- div : 'Sideskift',
- unknown : 'Ukjent objekt'
- },
-
- resize : 'Dra for å skalere',
-
- colordialog :
- {
- title : 'Velg farge',
- options : 'Color Options', // MISSING
- highlight : 'Merk',
- selected : 'Valgt',
- clear : 'Tøm'
- },
-
- toolbarCollapse : 'Slå sammen verktøylinje',
- toolbarExpand : 'Vis verktøylinje',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Norwegian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'no' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rikteksteditor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Trykk ALT 0 for hjelp',
+
+ browseServer: 'Bla igjennom server',
+ url: 'URL',
+ protocol: 'Protokoll',
+ upload: 'Last opp',
+ uploadSubmit: 'Send det til serveren',
+ image: 'Bilde',
+ flash: 'Flash',
+ form: 'Skjema',
+ checkbox: 'Avmerkingsboks',
+ radio: 'Alternativknapp',
+ textField: 'Tekstboks',
+ textarea: 'Tekstområde',
+ hiddenField: 'Skjult felt',
+ button: 'Knapp',
+ select: 'Rullegardinliste',
+ imageButton: 'Bildeknapp',
+ notSet: '<ikke satt>',
+ id: 'Id',
+ name: 'Navn',
+ langDir: 'Språkretning',
+ langDirLtr: 'Venstre til høyre (VTH)',
+ langDirRtl: 'Høyre til venstre (HTV)',
+ langCode: 'Språkkode',
+ longDescr: 'Utvidet beskrivelse',
+ cssClass: 'Stilarkklasser',
+ advisoryTitle: 'Tittel',
+ cssStyle: 'Stil',
+ ok: 'OK',
+ cancel: 'Avbryt',
+ close: 'Lukk',
+ preview: 'Forhåndsvis',
+ resize: 'Dra for å skalere',
+ generalTab: 'Generelt',
+ advancedTab: 'Avansert',
+ validateNumberFailed: 'Denne verdien er ikke et tall.',
+ confirmNewPage: 'Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',
+ confirmCancel: 'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',
+ options: 'Valg',
+ target: 'MÃ¥l',
+ targetNew: 'Nytt vindu (_blank)',
+ targetTop: 'Hele vindu (_top)',
+ targetSelf: 'Samme vindu (_self)',
+ targetParent: 'Foreldrevindu (_parent)',
+ langDirLTR: 'Venstre til høyre (VTH)',
+ langDirRTL: 'Høyre til venstre (HTV)',
+ styles: 'Stil',
+ cssClasses: 'Stilarkklasser',
+ width: 'Bredde',
+ height: 'Høyde',
+ align: 'Juster',
+ alignLeft: 'Venstre',
+ alignRight: 'Høyre',
+ alignCenter: 'Midtjuster',
+ alignTop: 'Topp',
+ alignMiddle: 'Midten',
+ alignBottom: 'Bunn',
+ invalidValue : 'Ugyldig verdi.',
+ invalidHeight: 'Høyde må være et tall.',
+ invalidWidth: 'Bredde må være et tall.',
+ invalidCssLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
+ invalidHtmlLength: 'Den angitte verdien for feltet "%1" må være et positivt tall med eller uten en gyldig HTML-målingsenhet (px eller %).',
+ invalidInlineStyle: 'Verdi angitt for inline stil må bestå av en eller flere sett med formatet "navn : verdi", separert med semikolon',
+ cssLengthTooltip: 'Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, utilgjenglig</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/pl.js b/devel/third-party/ckeditor/lang/pl.js
index ac8df6a..b84c62d 100644
--- a/devel/third-party/ckeditor/lang/pl.js
+++ b/devel/third-party/ckeditor/lang/pl.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Polish language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['pl'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'ŹródÅo dokumentu',
- newPage : 'Nowa strona',
- save : 'Zapisz',
- preview : 'PodglÄ
d',
- cut : 'Wytnij',
- copy : 'Kopiuj',
- paste : 'Wklej',
- print : 'Drukuj',
- underline : 'PodkreÅlenie',
- bold : 'Pogrubienie',
- italic : 'Kursywa',
- selectAll : 'Zaznacz wszystko',
- removeFormat : 'UsuÅ formatowanie',
- strike : 'PrzekreÅlenie',
- subscript : 'Indeks dolny',
- superscript : 'Indeks górny',
- horizontalrule : 'Wstaw poziomÄ
liniÄ',
- pagebreak : 'Wstaw odstÄp',
- unlink : 'UsuÅ hiperÅÄ
cze',
- undo : 'Cofnij',
- redo : 'Ponów',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'PrzeglÄ
daj',
- url : 'Adres URL',
- protocol : 'ProtokóÅ',
- upload : 'WyÅlij',
- uploadSubmit : 'WyÅlij',
- image : 'Obrazek',
- flash : 'Flash',
- form : 'Formularz',
- checkbox : 'Pole wyboru (checkbox)',
- radio : 'Pole wyboru (radio)',
- textField : 'Pole tekstowe',
- textarea : 'Obszar tekstowy',
- hiddenField : 'Pole ukryte',
- button : 'Przycisk',
- select : 'Lista wyboru',
- imageButton : 'Przycisk-obrazek',
- notSet : '<nie ustawione>',
- id : 'Id',
- name : 'Nazwa',
- langDir : 'Kierunek tekstu',
- langDirLtr : 'Od lewej do prawej (LTR)',
- langDirRtl : 'Od prawej do lewej (RTL)',
- langCode : 'Kod jÄzyka',
- longDescr : 'DÅugi opis hiperÅÄ
cza',
- cssClass : 'Nazwa klasy CSS',
- advisoryTitle : 'Opis obiektu docelowego',
- cssStyle : 'Styl',
- ok : 'OK',
- cancel : 'Anuluj',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Ogólne',
- advancedTab : 'Zaawansowane',
- validateNumberFailed : 'Ta wartoÅÄ nie jest liczbÄ
.',
- confirmNewPage : 'Wszystkie niezapisane zmiany zostanÄ
utracone. Czy na pewno wczytaÄ nowÄ
stronÄ?',
- confirmCancel : 'Pewne opcje zostaÅy zmienione. Czy na pewno zamknÄ
Ä okno dialogowe?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, niedostÄpne</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Wstaw znak specjalny',
- title : 'Wybierz znak specjalny',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Wstaw/edytuj hiperÅÄ
cze',
- other : '<inny>',
- menu : 'Edytuj hiperÅÄ
cze',
- title : 'HiperÅÄ
cze',
- info : 'Informacje ',
- target : 'Cel',
- upload : 'WyÅlij',
- advanced : 'Zaawansowane',
- type : 'Typ hiperÅÄ
cza',
- toUrl : 'URL', // MISSING
- toAnchor : 'OdnoÅnik wewnÄ
trz strony',
- toEmail : 'Adres e-mail',
- targetFrame : '<ramka>',
- targetPopup : '<wyskakujÄ
ce okno>',
- targetFrameName : 'Nazwa Ramki Docelowej',
- targetPopupName : 'Nazwa wyskakujÄ
cego okna',
- popupFeatures : 'WÅaÅciwoÅci wyskakujÄ
cego okna',
- popupResizable : 'Skalowalny',
- popupStatusBar : 'Pasek statusu',
- popupLocationBar: 'Pasek adresu',
- popupToolbar : 'Pasek narzÄdzi',
- popupMenuBar : 'Pasek menu',
- popupFullScreen : 'PeÅny ekran (IE)',
- popupScrollBars : 'Paski przewijania',
- popupDependent : 'Okno zależne (Netscape)',
- popupWidth : 'SzerokoÅÄ',
- popupLeft : 'Pozycja w poziomie',
- popupHeight : 'WysokoÅÄ',
- popupTop : 'Pozycja w pionie',
- id : 'Id',
- langDir : 'Kierunek tekstu',
- langDirLTR : 'Od lewej do prawej (LTR)',
- langDirRTL : 'Od prawej do lewej (RTL)',
- acccessKey : 'Klawisz dostÄpu',
- name : 'Nazwa',
- langCode : 'Kierunek tekstu',
- tabIndex : 'Indeks tabeli',
- advisoryTitle : 'Opis obiektu docelowego',
- advisoryContentType : 'Typ MIME obiektu docelowego',
- cssClasses : 'Nazwa klasy CSS',
- charset : 'Kodowanie znaków obiektu docelowego',
- styles : 'Styl',
- selectAnchor : 'Wybierz etykietÄ',
- anchorName : 'Wg etykiety',
- anchorId : 'Wg identyfikatora elementu',
- emailAddress : 'Adres e-mail',
- emailSubject : 'Temat',
- emailBody : 'TreÅÄ',
- noAnchors : '(W dokumencie nie zdefiniowano żadnych etykiet)',
- noUrl : 'Podaj adres URL',
- noEmail : 'Podaj adres e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Wstaw/edytuj kotwicÄ',
- menu : 'WÅaÅciwoÅci kotwicy',
- title : 'WÅaÅciwoÅci kotwicy',
- name : 'Nazwa kotwicy',
- errorName : 'Wpisz nazwÄ kotwicy'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Znajdź i zamieÅ',
- find : 'Znajdź',
- replace : 'ZamieÅ',
- findWhat : 'Znajdź:',
- replaceWith : 'ZastÄ
p przez:',
- notFoundMsg : 'Nie znaleziono szukanego hasÅa.',
- matchCase : 'UwzglÄdnij wielkoÅÄ liter',
- matchWord : 'CaÅe sÅowa',
- matchCyclic : 'Cykliczne dopasowanie',
- replaceAll : 'ZastÄ
p wszystko',
- replaceSuccessMsg : '%1 wystÄ
pieÅ zastÄ
pionych.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabela',
- title : 'WÅaÅciwoÅci tabeli',
- menu : 'WÅaÅciwoÅci tabeli',
- deleteTable : 'UsuÅ tabelÄ',
- rows : 'Liczba wierszy',
- columns : 'Liczba kolumn',
- border : 'GruboÅÄ ramki',
- align : 'Wyrównanie',
- alignLeft : 'Do lewej',
- alignCenter : 'Do Årodka',
- alignRight : 'Do prawej',
- width : 'SzerokoÅÄ',
- widthPx : 'piksele',
- widthPc : '%',
- widthUnit : 'width unit', // MISSING
- height : 'WysokoÅÄ',
- cellSpace : 'OdstÄp pomiÄdzy komórkami',
- cellPad : 'Margines wewnÄtrzny komórek',
- caption : 'TytuÅ',
- summary : 'Podsumowanie',
- headers : 'NagÅowki',
- headersNone : 'Brak',
- headersColumn : 'Pierwsza kolumna',
- headersRow : 'Pierwszy wiersz',
- headersBoth : 'Oba',
- invalidRows : 'Liczba wierszy musi byÄ liczbÄ
wiÄkszÄ
niż 0.',
- invalidCols : 'Liczba kolumn musi byÄ liczbÄ
wiÄkszÄ
niż 0.',
- invalidBorder : 'Liczba obramowaÅ musi byÄ liczbÄ
.',
- invalidWidth : 'SzerokoÅÄ tabeli musi byÄ liczbÄ
.',
- invalidHeight : 'WysokoÅÄ tabeli musi byÄ liczbÄ
.',
- invalidCellSpacing : 'OdstÄp komórek musi byÄ liczbÄ
.',
- invalidCellPadding : 'DopeÅnienie komórek musi byÄ liczbÄ
.',
-
- cell :
- {
- menu : 'Komórka',
- insertBefore : 'Wstaw komórkÄ z lewej',
- insertAfter : 'Wstaw komórkÄ z prawej',
- deleteCell : 'UsuŠkomórki',
- merge : 'PoÅÄ
cz komórki',
- mergeRight : 'PoÅÄ
cz z komórkÄ
z prawej',
- mergeDown : 'PoÅÄ
cz z komórkÄ
poniżej',
- splitHorizontal : 'Podziel komórkÄ poziomo',
- splitVertical : 'Podziel komórkÄ pionowo',
- title : 'WÅaÅciwoÅci komórki',
- cellType : 'Typ komórki',
- rowSpan : 'Scalenie wierszy',
- colSpan : 'Scalenie komórek',
- wordWrap : 'Zawijanie sÅów',
- hAlign : 'Wyrównanie poziome',
- vAlign : 'Wyrównanie pionowe',
- alignTop : 'Góra',
- alignMiddle : 'Årodek',
- alignBottom : 'DóÅ',
- alignBaseline : 'Linia bazowa',
- bgColor : 'Kolor tÅa',
- borderColor : 'Kolor obramowania',
- data : 'Dane',
- header : 'NagÅowek',
- yes : 'Tak',
- no : 'Nie',
- invalidWidth : 'SzerokoÅÄ komórki musi byÄ liczbÄ
.',
- invalidHeight : 'WysokoÅÄ komórki musi byÄ liczbÄ
.',
- invalidRowSpan : 'Scalenie wierszy musi byÄ liczbÄ
caÅkowitÄ
.',
- invalidColSpan : 'Scalenie komórek musi byÄ liczbÄ
caÅkowitÄ
.',
- chooseColor : 'Wybierz'
- },
-
- row :
- {
- menu : 'Wiersz',
- insertBefore : 'Wstaw wiersz powyżej',
- insertAfter : 'Wstaw wiersz poniżej',
- deleteRow : 'UsuÅ wiersze'
- },
-
- column :
- {
- menu : 'Kolumna',
- insertBefore : 'Wstaw kolumnÄ z lewej',
- insertAfter : 'Wstaw kolumnÄ z prawej',
- deleteColumn : 'UsuÅ kolumny'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'WÅaÅciwoÅci przycisku',
- text : 'Tekst (WartoÅÄ)',
- type : 'Typ',
- typeBtn : 'Przycisk',
- typeSbm : 'WyÅlij',
- typeRst : 'Wyzeruj'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'WÅaÅciwoÅci pola wyboru (checkbox)',
- radioTitle : 'WÅaÅciwoÅci pola wyboru (radio)',
- value : 'WartoÅÄ',
- selected : 'Zaznaczone'
- },
-
- // Form Dialog.
- form :
- {
- title : 'WÅaÅciwoÅci formularza',
- menu : 'WÅaÅciwoÅci formularza',
- action : 'Akcja',
- method : 'Metoda',
- encoding : 'Kodowanie'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'WÅaÅciwoÅci listy wyboru',
- selectInfo : 'Informacje',
- opAvail : 'DostÄpne opcje',
- value : 'WartoÅÄ',
- size : 'Rozmiar',
- lines : 'linii',
- chkMulti : 'Wielokrotny wybór',
- opText : 'Tekst',
- opValue : 'WartoÅÄ',
- btnAdd : 'Dodaj',
- btnModify : 'ZmieÅ',
- btnUp : 'Do góry',
- btnDown : 'Do doÅu',
- btnSetValue : 'Ustaw wartoÅÄ zaznaczonÄ
',
- btnDelete : 'UsuÅ'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'WÅaÅciwoÅci obszaru tekstowego',
- cols : 'Kolumnu',
- rows : 'Wiersze'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'WÅaÅciwoÅci pola tekstowego',
- name : 'Nazwa',
- value : 'WartoÅÄ',
- charWidth : 'SzerokoÅÄ w znakach',
- maxChars : 'Max. szerokoÅÄ',
- type : 'Typ',
- typeText : 'Tekst',
- typePass : 'HasÅo'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'WÅaÅciwoÅci pola ukrytego',
- name : 'Nazwa',
- value : 'WartoÅÄ'
- },
-
- // Image Dialog.
- image :
- {
- title : 'WÅaÅciwoÅci obrazka',
- titleButton : 'WÅaÅciwoÅci przycisku obrazka',
- menu : 'WÅaÅciwoÅci obrazka',
- infoTab : 'Informacje o obrazku',
- btnUpload : 'WyÅlij',
- upload : 'WyÅlij',
- alt : 'Tekst zastÄpczy',
- width : 'SzerokoÅÄ',
- height : 'WysokoÅÄ',
- lockRatio : 'Zablokuj proporcje',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'PrzywrÃ³Ä rozmiar',
- border : 'Ramka',
- hSpace : 'OdstÄp poziomy',
- vSpace : 'OdstÄp pionowy',
- align : 'Wyrównaj',
- alignLeft : 'Do lewej',
- alignRight : 'Do prawej',
- alertUrl : 'Podaj adres obrazka.',
- linkTab : 'HiperÅÄ
cze',
- button2Img : 'Czy chcesz przekonwertowaÄ zaznaczony przycisk graficzny do zwykÅego obrazka?',
- img2Button : 'Czy chcesz przekonwertowaÄ zaznaczony obrazek do przycisku graficznego?',
- urlMissing : 'Podaj adres URL obrazka.',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'WÅaÅciwoÅci elementu Flash',
- propertiesTab : 'WÅaÅciwoÅci',
- title : 'WÅaÅciwoÅci elementu Flash',
- chkPlay : 'Autoodtwarzanie',
- chkLoop : 'PÄtla',
- chkMenu : 'WÅÄ
cz menu',
- chkFull : 'DopuÅÄ peÅny ekran',
- scale : 'Skaluj',
- scaleAll : 'Pokaż wszystko',
- scaleNoBorder : 'Bez Ramki',
- scaleFit : 'DokÅadne dopasowanie',
- access : 'DostÄp skryptów',
- accessAlways : 'Zawsze',
- accessSameDomain: 'Ta sama domena',
- accessNever : 'Nigdy',
- align : 'Wyrównaj',
- alignLeft : 'Do lewej',
- alignAbsBottom : 'Do doÅu',
- alignAbsMiddle : 'Do Årodka w pionie',
- alignBaseline : 'Do linii bazowej',
- alignBottom : 'Do doÅu',
- alignMiddle : 'Do Årodka',
- alignRight : 'Do prawej',
- alignTextTop : 'Do góry tekstu',
- alignTop : 'Do góry',
- quality : 'JakoÅÄ',
- qualityBest : 'Najlepsza',
- qualityHigh : 'Wysoka',
- qualityAutoHigh : 'Auto wysoka',
- qualityMedium : 'Årednia',
- qualityAutoLow : 'Auto niska',
- qualityLow : 'Niska',
- windowModeWindow: 'Okno',
- windowModeOpaque: 'Nieprzeźroczyste',
- windowModeTransparent : 'Przeźroczyste',
- windowMode : 'Tryb okna',
- flashvars : 'Zmienne dla Flasha',
- bgcolor : 'Kolor tÅa',
- width : 'SzerokoÅÄ',
- height : 'WysokoÅÄ',
- hSpace : 'OdstÄp poziomy',
- vSpace : 'OdstÄp pionowy',
- validateSrc : 'Podaj adres URL',
- validateWidth : 'SzerokoÅÄ musi byÄ liczbÄ
.',
- validateHeight : 'WysokoÅÄ musi byÄ liczbÄ
.',
- validateHSpace : 'OdstÄp poziomy musi byÄ liczbÄ
.',
- validateVSpace : 'OdstÄp pionowy musi byÄ liczbÄ
.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Sprawdź pisowniÄ',
- title : 'Sprawdź pisowniÄ',
- notAvailable : 'Przepraszamy, ale usÅuga jest obecnie niedostÄpna.',
- errorLoading : 'BÅÄ
d wczytywania hosta aplikacji usÅugi: %s.',
- notInDic : 'SÅowa nie ma w sÅowniku',
- changeTo : 'ZmieÅ na',
- btnIgnore : 'Ignoruj',
- btnIgnoreAll : 'Ignoruj wszystkie',
- btnReplace : 'ZmieÅ',
- btnReplaceAll : 'ZmieÅ wszystkie',
- btnUndo : 'Cofnij',
- noSuggestions : '- Brak sugestii -',
- progress : 'Trwa sprawdzanie...',
- noMispell : 'Sprawdzanie zakoÅczone: nie znaleziono bÅÄdów',
- noChanges : 'Sprawdzanie zakoÅczone: nie zmieniono żadnego sÅowa',
- oneChange : 'Sprawdzanie zakoÅczone: zmieniono jedno sÅowo',
- manyChanges : 'Sprawdzanie zakoÅczone: zmieniono %l sÅów',
- ieSpellDownload : 'SÅownik nie jest zainstalowany. Chcesz go ÅciÄ
gnÄ
Ä?'
- },
-
- smiley :
- {
- toolbar : 'Emotikona',
- title : 'Wstaw emotikonÄ',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : 'element %1'
- },
-
- numberedlist : 'Lista numerowana',
- bulletedlist : 'Lista wypunktowana',
- indent : 'ZwiÄksz wciÄcie',
- outdent : 'Zmniejsz wciÄcie',
-
- justify :
- {
- left : 'Wyrównaj do lewej',
- center : 'Wyrównaj do Årodka',
- right : 'Wyrównaj do prawej',
- block : 'Wyrównaj do lewej i prawej'
- },
-
- blockquote : 'Cytat',
-
- clipboard :
- {
- title : 'Wklej',
- cutError : 'Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',
- copyError : 'Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',
- pasteMsg : 'ProszÄ wkleiÄ w poniższym polu używajÄ
c klawiaturowego skrótu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknÄ
Ä <STRONG>OK</STRONG>.',
- securityMsg : 'Zabezpieczenia przeglÄ
darki uniemożliwiajÄ
wklejenie danych bezpoÅrednio do edytora. ProszÄ dane wkleiÄ ponownie w tym okienku.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'Tekst, który chcesz wkleiÄ, prawdopodobnie pochodzi z programu Word. Czy chcesz go wyczyÅcic przed wklejeniem?',
- toolbar : 'Wklej z Worda',
- title : 'Wklej z Worda',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Wklej jako czysty tekst',
- title : 'Wklej jako czysty tekst'
- },
-
- templates :
- {
- button : 'Szablony',
- title : 'Szablony zawartoÅci',
- options : 'Template Options', // MISSING
- insertOption : 'ZastÄ
p aktualnÄ
zawartoÅÄ',
- selectPromptMsg : 'Wybierz szablon do otwarcia w edytorze<br>(obecna zawartoÅÄ okna edytora zostanie utracona):',
- emptyListMsg : '(Brak zdefiniowanych szablonów)'
- },
-
- showBlocks : 'Pokaż bloki',
-
- stylesCombo :
- {
- label : 'Styl',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Style blokowe',
- panelTitle2 : 'Style liniowe',
- panelTitle3 : 'Style obiektowe'
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normalny',
- tag_pre : 'Tekst sformatowany',
- tag_address : 'Adres',
- tag_h1 : 'NagÅówek 1',
- tag_h2 : 'NagÅówek 2',
- tag_h3 : 'NagÅówek 3',
- tag_h4 : 'NagÅówek 4',
- tag_h5 : 'NagÅówek 5',
- tag_h6 : 'NagÅówek 6',
- tag_div : 'Normalny (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Czcionka',
- voiceLabel : 'Czcionka',
- panelTitle : 'Czcionka'
- },
-
- fontSize :
- {
- label : 'Rozmiar',
- voiceLabel : 'Rozmiar czcionki',
- panelTitle : 'Rozmiar'
- },
-
- colorButton :
- {
- textColorTitle : 'Kolor tekstu',
- bgColorTitle : 'Kolor tÅa',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatycznie',
- more : 'WiÄcej kolorów...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Sprawdź pisowniÄ podczas pisania (SCAYT)',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'WÅÄ
cz SCAYT',
- disable : 'WyÅÄ
cz SCAYT',
- about : 'Na temat SCAYT',
- toggle : 'PrzeÅÄ
cz SCAYT',
- options : 'Opcje',
- langs : 'JÄzyki',
- moreSuggestions : 'WiÄcej sugestii',
- ignore : 'Ignoruj',
- ignoreAll : 'Ignoruj wszystkie',
- addWord : 'Dodaj sÅowo',
- emptyDic : 'Nazwa sÅownika nie może byÄ pusta.',
-
- optionsTab : 'Opcje',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'JÄzyki',
-
- dictionariesTab : 'SÅowniki',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Na temat SCAYT'
- },
-
- about :
- {
- title : 'Na temat CKEditor',
- dlgTitle : 'Na temat CKEditor',
- moreInfo : 'Informacje na temat licencji można znaleÅºÄ na naszej stronie:',
- copy : 'Copyright © $1. Wszelkie prawa zastrzeżone.'
- },
-
- maximize : 'Maksymalizuj',
- minimize : 'Minimalizuj',
-
- fakeobjects :
- {
- anchor : 'Kotwica',
- flash : 'Animacja Flash',
- div : 'Separator stron',
- unknown : 'Nieznany obiekt'
- },
-
- resize : 'PrzeciÄ
gnij, aby zmieniÄ rozmiar',
-
- colordialog :
- {
- title : 'Wybierz kolor',
- options : 'Color Options', // MISSING
- highlight : 'Zaznacz',
- selected : 'Wybrany',
- clear : 'WyczyÅÄ'
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Polish language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'pl' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Edytor tekstu sformatowanego',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'W celu uzyskania pomocy naciÅnij ALT 0',
+
+ browseServer: 'PrzeglÄ
daj',
+ url: 'Adres URL',
+ protocol: 'ProtokóÅ',
+ upload: 'WyÅlij',
+ uploadSubmit: 'WyÅlij',
+ image: 'Obrazek',
+ flash: 'Flash',
+ form: 'Formularz',
+ checkbox: 'Pole wyboru (checkbox)',
+ radio: 'Przycisk opcji (radio)',
+ textField: 'Pole tekstowe',
+ textarea: 'Obszar tekstowy',
+ hiddenField: 'Pole ukryte',
+ button: 'Przycisk',
+ select: 'Lista wyboru',
+ imageButton: 'Przycisk graficzny',
+ notSet: '<nie ustawiono>',
+ id: 'Id',
+ name: 'Nazwa',
+ langDir: 'Kierunek tekstu',
+ langDirLtr: 'Od lewej do prawej (LTR)',
+ langDirRtl: 'Od prawej do lewej (RTL)',
+ langCode: 'Kod jÄzyka',
+ longDescr: 'Adres URL dÅugiego opisu',
+ cssClass: 'Nazwa klasy CSS',
+ advisoryTitle: 'Opis obiektu docelowego',
+ cssStyle: 'Styl',
+ ok: 'OK',
+ cancel: 'Anuluj',
+ close: 'Zamknij',
+ preview: 'PodglÄ
d',
+ resize: 'PrzeciÄ
gnij, aby zmieniÄ rozmiar',
+ generalTab: 'Ogólne',
+ advancedTab: 'Zaawansowane',
+ validateNumberFailed: 'Ta wartoÅÄ nie jest liczbÄ
.',
+ confirmNewPage: 'Wszystkie niezapisane zmiany zostanÄ
utracone. Czy na pewno wczytaÄ nowÄ
stronÄ?',
+ confirmCancel: 'Pewne opcje zostaÅy zmienione. Czy na pewno zamknÄ
Ä okno dialogowe?',
+ options: 'Opcje',
+ target: 'Obiekt docelowy',
+ targetNew: 'Nowe okno (_blank)',
+ targetTop: 'Okno najwyżej w hierarchii (_top)',
+ targetSelf: 'To samo okno (_self)',
+ targetParent: 'Okno nadrzÄdne (_parent)',
+ langDirLTR: 'Od lewej do prawej (LTR)',
+ langDirRTL: 'Od prawej do lewej (RTL)',
+ styles: 'Style',
+ cssClasses: 'Klasy arkusza stylów',
+ width: 'SzerokoÅÄ',
+ height: 'WysokoÅÄ',
+ align: 'Wyrównaj',
+ alignLeft: 'Do lewej',
+ alignRight: 'Do prawej',
+ alignCenter: 'Do Årodka',
+ alignTop: 'Do góry',
+ alignMiddle: 'Do Årodka',
+ alignBottom: 'Do doÅu',
+ invalidValue : 'NieprawidÅowa wartoÅÄ.',
+ invalidHeight: 'WysokoÅÄ musi byÄ liczbÄ
.',
+ invalidWidth: 'SzerokoÅÄ musi byÄ liczbÄ
.',
+ invalidCssLength: 'WartoÅÄ podana dla pola "%1" musi byÄ liczbÄ
dodatniÄ
bez jednostki lub z poprawnÄ
jednostkÄ
dÅugoÅci zgodnÄ
z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
+ invalidHtmlLength: 'WartoÅÄ podana dla pola "%1" musi byÄ liczbÄ
dodatniÄ
bez jednostki lub z poprawnÄ
jednostkÄ
dÅugoÅci zgodnÄ
z HTML (px lub %).',
+ invalidInlineStyle: 'WartoÅÄ podana dla stylu musi skÅadaÄ siÄ z jednej lub wiÄkszej liczby krotek w formacie "nazwa : wartoÅÄ", rozdzielonych Årednikami.',
+ cssLengthTooltip: 'Wpisz liczbÄ dla wartoÅci w pikselach lub liczbÄ wraz z jednostkÄ
dÅugoÅci zgodnÄ
z CSS (px, %, in, cm, mm, em, ex, pt lub pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, niedostÄpne</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/pt-br.js b/devel/third-party/ckeditor/lang/pt-br.js
index 80a8a2c..7e795ce 100644
--- a/devel/third-party/ckeditor/lang/pt-br.js
+++ b/devel/third-party/ckeditor/lang/pt-br.js
@@ -1,757 +1,104 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
-* @fileOverview
-*/
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['pt-br'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Editor de Texto, %1, pressione ALT 0 para obter ajuda.',
-
- // ARIA descriptions.
- toolbar : 'Barra de Ferramentas',
- editor : 'Editor de Texto',
-
- // Toolbar buttons without dialogs.
- source : 'Código-Fonte',
- newPage : 'Novo',
- save : 'Salvar',
- preview : 'Visualizar',
- cut : 'Recortar',
- copy : 'Copiar',
- paste : 'Colar',
- print : 'Imprimir',
- underline : 'Sublinhado',
- bold : 'Negrito',
- italic : 'Itálico',
- selectAll : 'Selecionar Tudo',
- removeFormat : 'Remover Formatação',
- strike : 'Tachado',
- subscript : 'Subscrito',
- superscript : 'Sobrescrito',
- horizontalrule : 'Inserir Linha Horizontal',
- pagebreak : 'Inserir Quebra de Página',
- unlink : 'Remover Link',
- undo : 'Desfazer',
- redo : 'Refazer',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Localizar no Servidor',
- url : 'URL',
- protocol : 'Protocolo',
- upload : 'Enviar ao Servidor',
- uploadSubmit : 'Enviar para o Servidor',
- image : 'Imagem',
- flash : 'Flash',
- form : 'Formulário',
- checkbox : 'Caixa de Seleção',
- radio : 'Botão de Opção',
- textField : 'Caixa de Texto',
- textarea : 'Ãrea de Texto',
- hiddenField : 'Campo Oculto',
- button : 'Botão',
- select : 'Caixa de Listagem',
- imageButton : 'Botão de Imagem',
- notSet : '<não ajustado>',
- id : 'Id',
- name : 'Nome',
- langDir : 'Direção do idioma',
- langDirLtr : 'Esquerda para Direita (LTR)',
- langDirRtl : 'Direita para Esquerda (RTL)',
- langCode : 'Idioma',
- longDescr : 'Descrição da URL',
- cssClass : 'Classe de CSS',
- advisoryTitle : 'TÃtulo',
- cssStyle : 'Estilos',
- ok : 'OK',
- cancel : 'Cancelar',
- close : 'Fechar',
- preview : 'Visualizar',
- generalTab : 'Geral',
- advancedTab : 'Avançado',
- validateNumberFailed : 'Este valor não é um número.',
- confirmNewPage : 'Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?',
- confirmCancel : 'Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?',
- options : 'Opções',
- target : 'Destino',
- targetNew : 'Nova Janela (_blank)',
- targetTop : 'Janela de Cima (_top)',
- targetSelf : 'Mesma Janela (_self)',
- targetParent : 'Janela Pai (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, indisponÃvel</span>'
- },
-
- contextmenu :
- {
- options : 'Opções Menu de Contexto'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Inserir Caractere Especial',
- title : 'Selecione um Caractere Especial',
- options : 'Opções de Caractere Especial'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Inserir/Editar Link',
- other : '<outro>',
- menu : 'Editar Link',
- title : 'Editar Link',
- info : 'Informações',
- target : 'Destino',
- upload : 'Enviar ao Servidor',
- advanced : 'Avançado',
- type : 'Tipo de hiperlink',
- toUrl : 'URL',
- toAnchor : 'Ãncora nesta página',
- toEmail : 'E-Mail',
- targetFrame : '<frame>',
- targetPopup : '<janela popup>',
- targetFrameName : 'Nome do Frame de Destino',
- targetPopupName : 'Nome da Janela Pop-up',
- popupFeatures : 'Propriedades da Janela Pop-up',
- popupResizable : 'Redimensionável',
- popupStatusBar : 'Barra de Status',
- popupLocationBar: 'Barra de Endereços',
- popupToolbar : 'Barra de Ferramentas',
- popupMenuBar : 'Barra de Menus',
- popupFullScreen : 'Modo Tela Cheia (IE)',
- popupScrollBars : 'Barras de Rolagem',
- popupDependent : 'Dependente (Netscape)',
- popupWidth : 'Largura',
- popupLeft : 'Esquerda',
- popupHeight : 'Altura',
- popupTop : 'Topo',
- id : 'Id',
- langDir : 'Direção do idioma',
- langDirLTR : 'Esquerda para Direita (LTR)',
- langDirRTL : 'Direita para Esquerda (RTL)',
- acccessKey : 'Chave de Acesso',
- name : 'Nome',
- langCode : 'Direção do idioma',
- tabIndex : 'Ãndice de Tabulação',
- advisoryTitle : 'TÃtulo',
- advisoryContentType : 'Tipo de Conteúdo',
- cssClasses : 'Classe de CSS',
- charset : 'Charset do Link',
- styles : 'Estilos',
- selectAnchor : 'Selecione uma âncora',
- anchorName : 'Nome da âncora',
- anchorId : 'Id da âncora',
- emailAddress : 'Endereço E-Mail',
- emailSubject : 'Assunto da Mensagem',
- emailBody : 'Corpo da Mensagem',
- noAnchors : '(Não há âncoras no documento)',
- noUrl : 'Por favor, digite o endereço do Link',
- noEmail : 'Por favor, digite o endereço de e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Inserir/Editar Ãncora',
- menu : 'Formatar Ãncora',
- title : 'Formatar Ãncora',
- name : 'Nome da Ãncora',
- errorName : 'Por favor, digite o nome da âncora'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Propriedades da Lista Numerada',
- bulletedTitle : 'Propriedades da Lista sem Numeros',
- type : 'Tipo',
- start : 'InÃcio',
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'CÃrculo',
- disc : 'Disco',
- square : 'Quadrado',
- none : 'Nenhum',
- notset : '<não definido>',
- armenian : 'Numeração Armêna',
- georgian : 'Numeração da Geórgia (an, ban, gan, etc.)',
- lowerRoman : 'Numeração Romana minúscula (i, ii, iii, iv, v, etc.)',
- upperRoman : 'Numeração Romana maiúscula (I, II, III, IV, V, etc.)',
- lowerAlpha : 'Numeração Alfabética minúscula (a, b, c, d, e, etc.)',
- upperAlpha : 'Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)',
- lowerGreek : 'Numeração Grega minúscula (alpha, beta, gamma, etc.)',
- decimal : 'Numeração Decimal (1, 2, 3, etc.)',
- decimalLeadingZero : 'Numeração Decimal com zeros (01, 02, 03, etc.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Localizar e Substituir',
- find : 'Localizar',
- replace : 'Substituir',
- findWhat : 'Procurar por:',
- replaceWith : 'Substituir por:',
- notFoundMsg : 'O texto especificado não foi encontrado.',
- matchCase : 'Coincidir Maiúsculas/Minúsculas',
- matchWord : 'Coincidir a palavra inteira',
- matchCyclic : 'Coincidir cÃclico',
- replaceAll : 'Substituir Tudo',
- replaceSuccessMsg : '%1 ocorrência(s) substituÃda(s).'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabela',
- title : 'Formatar Tabela',
- menu : 'Formatar Tabela',
- deleteTable : 'Apagar Tabela',
- rows : 'Linhas',
- columns : 'Colunas',
- border : 'Borda',
- align : 'Alinhamento',
- alignLeft : 'Esquerda',
- alignCenter : 'Centralizado',
- alignRight : 'Direita',
- width : 'Largura',
- widthPx : 'pixels',
- widthPc : '%',
- widthUnit : 'unidade largura',
- height : 'Altura',
- cellSpace : 'Espaçamento',
- cellPad : 'Margem interna',
- caption : 'Legenda',
- summary : 'Resumo',
- headers : 'Cabeçalho',
- headersNone : 'Nenhum',
- headersColumn : 'Primeira coluna',
- headersRow : 'Primeira linha',
- headersBoth : 'Ambos',
- invalidRows : 'O número de linhas tem que ser um número maior que 0.',
- invalidCols : 'O número de colunas tem que ser um número maior que 0.',
- invalidBorder : 'O tamanho da borda tem que ser um número.',
- invalidWidth : 'A largura da tabela tem que ser um número.',
- invalidHeight : 'A altura da tabela tem que ser um número.',
- invalidCellSpacing : 'O espaçamento das células tem que ser um número.',
- invalidCellPadding : 'A margem interna das células tem que ser um número.',
-
- cell :
- {
- menu : 'Célula',
- insertBefore : 'Inserir célula a esquerda',
- insertAfter : 'Inserir célula a direita',
- deleteCell : 'Remover Células',
- merge : 'Mesclar Células',
- mergeRight : 'Mesclar com célula a direita',
- mergeDown : 'Mesclar com célula abaixo',
- splitHorizontal : 'Dividir célula horizontalmente',
- splitVertical : 'Dividir célula verticalmente',
- title : 'Propriedades da célula',
- cellType : 'Tipo de célula',
- rowSpan : 'Linhas cobertas',
- colSpan : 'Colunas cobertas',
- wordWrap : 'Quebra de palavra',
- hAlign : 'Alinhamento horizontal',
- vAlign : 'Alinhamento vertical',
- alignTop : 'Alinhar no topo',
- alignMiddle : 'Centralizado verticalmente',
- alignBottom : 'Alinhar na base',
- alignBaseline : 'Patamar de alinhamento',
- bgColor : 'Cor de fundo',
- borderColor : 'Cor das bordas',
- data : 'Dados',
- header : 'Cabeçalho',
- yes : 'Sim',
- no : 'Não',
- invalidWidth : 'A largura da célula tem que ser um número.',
- invalidHeight : 'A altura da célula tem que ser um número.',
- invalidRowSpan : 'Linhas cobertas tem que ser um número inteiro.',
- invalidColSpan : 'Colunas cobertas tem que ser um número inteiro.',
- chooseColor : 'Escolher'
- },
-
- row :
- {
- menu : 'Linha',
- insertBefore : 'Inserir linha acima',
- insertAfter : 'Inserir linha abaixo',
- deleteRow : 'Remover Linhas'
- },
-
- column :
- {
- menu : 'Coluna',
- insertBefore : 'Inserir coluna a esquerda',
- insertAfter : 'Inserir coluna a direita',
- deleteColumn : 'Remover Colunas'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Formatar Botão',
- text : 'Texto (Valor)',
- type : 'Tipo',
- typeBtn : 'Botão',
- typeSbm : 'Enviar',
- typeRst : 'Limpar'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Formatar Caixa de Seleção',
- radioTitle : 'Formatar Botão de Opção',
- value : 'Valor',
- selected : 'Selecionado'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Formatar Formulário',
- menu : 'Formatar Formulário',
- action : 'Ação',
- method : 'Método',
- encoding : 'Codificação'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Formatar Caixa de Listagem',
- selectInfo : 'Informações',
- opAvail : 'Opções disponÃveis',
- value : 'Valor',
- size : 'Tamanho',
- lines : 'linhas',
- chkMulti : 'Permitir múltiplas seleções',
- opText : 'Texto',
- opValue : 'Valor',
- btnAdd : 'Adicionar',
- btnModify : 'Modificar',
- btnUp : 'Para cima',
- btnDown : 'Para baixo',
- btnSetValue : 'Definir como selecionado',
- btnDelete : 'Remover'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Formatar Ãrea de Texto',
- cols : 'Colunas',
- rows : 'Linhas'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Formatar Caixa de Texto',
- name : 'Nome',
- value : 'Valor',
- charWidth : 'Comprimento (em caracteres)',
- maxChars : 'Número Máximo de Caracteres',
- type : 'Tipo',
- typeText : 'Texto',
- typePass : 'Senha'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Formatar Campo Oculto',
- name : 'Nome',
- value : 'Valor'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Formatar Imagem',
- titleButton : 'Formatar Botão de Imagem',
- menu : 'Formatar Imagem',
- infoTab : 'Informações da Imagem',
- btnUpload : 'Enviar para o Servidor',
- upload : 'Enviar',
- alt : 'Texto Alternativo',
- width : 'Largura',
- height : 'Altura',
- lockRatio : 'Travar Proporções',
- unlockRatio : 'Destravar Proporções',
- resetSize : 'Redefinir para o Tamanho Original',
- border : 'Borda',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Alinhamento',
- alignLeft : 'Esquerda',
- alignRight : 'Direita',
- alertUrl : 'Por favor, digite a URL da imagem.',
- linkTab : 'Link',
- button2Img : 'Deseja transformar o botão de imagem em uma imagem comum?',
- img2Button : 'Deseja transformar a imagem em um botão de imagem?',
- urlMissing : 'URL da imagem está faltando.',
- validateWidth : 'A largura deve ser um número inteiro.',
- validateHeight : 'A altura deve ser um número inteiro.',
- validateBorder : 'A borda deve ser um número inteiro.',
- validateHSpace : 'O HSpace deve ser um número inteiro.',
- validateVSpace : 'O VSpace deve ser um número inteiro.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propriedades do Flash',
- propertiesTab : 'Propriedades',
- title : 'Propriedades do Flash',
- chkPlay : 'Tocar Automaticamente',
- chkLoop : 'Tocar Infinitamente',
- chkMenu : 'Habilita Menu Flash',
- chkFull : 'Permitir tela cheia',
- scale : 'Escala',
- scaleAll : 'Mostrar tudo',
- scaleNoBorder : 'Sem Borda',
- scaleFit : 'Escala Exata',
- access : 'Acesso ao script',
- accessAlways : 'Sempre',
- accessSameDomain: 'Acessar Mesmo DomÃnio',
- accessNever : 'Nunca',
- align : 'Alinhamento',
- alignLeft : 'Esquerda',
- alignAbsBottom : 'Inferior Absoluto',
- alignAbsMiddle : 'Centralizado Absoluto',
- alignBaseline : 'Baseline',
- alignBottom : 'Inferior',
- alignMiddle : 'Centralizado',
- alignRight : 'Direita',
- alignTextTop : 'Superior Absoluto',
- alignTop : 'Superior',
- quality : 'Qualidade',
- qualityBest : 'Qualidade Melhor',
- qualityHigh : 'Qualidade Alta',
- qualityAutoHigh : 'Qualidade Alta Automática',
- qualityMedium : 'Qualidade Média',
- qualityAutoLow : 'Qualidade Baixa Automática',
- qualityLow : 'Qualidade Baixa',
- windowModeWindow: 'Janela',
- windowModeOpaque: 'Opaca',
- windowModeTransparent : 'Transparente',
- windowMode : 'Modo da janela',
- flashvars : 'Variáveis do Flash',
- bgcolor : 'Cor do Plano de Fundo',
- width : 'Largura',
- height : 'Altura',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Por favor, digite o endereço do link',
- validateWidth : 'A largura tem que ser um número.',
- validateHeight : 'A altura tem que ser um número',
- validateHSpace : 'O HSpace tem que ser um número',
- validateVSpace : 'O VSpace tem que ser um número.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Verificar Ortografia',
- title : 'Corretor Ortográfico',
- notAvailable : 'Desculpe, o serviço não está disponÃvel no momento.',
- errorLoading : 'Erro carregando servidor de aplicação: %s.',
- notInDic : 'Não encontrada',
- changeTo : 'Alterar para',
- btnIgnore : 'Ignorar uma vez',
- btnIgnoreAll : 'Ignorar Todas',
- btnReplace : 'Alterar',
- btnReplaceAll : 'Alterar Todas',
- btnUndo : 'Desfazer',
- noSuggestions : '-sem sugestões de ortografia-',
- progress : 'Verificação ortográfica em andamento...',
- noMispell : 'Verificação encerrada: Não foram encontrados erros de ortografia',
- noChanges : 'Verificação ortográfica encerrada: Não houve alterações',
- oneChange : 'Verificação ortográfica encerrada: Uma palavra foi alterada',
- manyChanges : 'Verificação ortográfica encerrada: %1 palavras foram alteradas',
- ieSpellDownload : 'A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?'
- },
-
- smiley :
- {
- toolbar : 'Emoticon',
- title : 'Inserir Emoticon',
- options : 'Opções de Emoticons'
- },
-
- elementsPath :
- {
- eleLabel : 'Caminho dos Elementos',
- eleTitle : 'Elemento %1'
- },
-
- numberedlist : 'Lista numerada',
- bulletedlist : 'Lista sem números',
- indent : 'Aumentar Recuo',
- outdent : 'Diminuir Recuo',
-
- justify :
- {
- left : 'Alinhar Esquerda',
- center : 'Centralizar',
- right : 'Alinhar Direita',
- block : 'Justificado'
- },
-
- blockquote : 'Citação',
-
- clipboard :
- {
- title : 'Colar',
- cutError : 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',
- copyError : 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',
- pasteMsg : 'Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.',
- securityMsg : 'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo manualmente nesta janela.',
- pasteArea : 'Ãrea para Colar'
- },
-
- pastefromword :
- {
- confirmCleanup : 'O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?',
- toolbar : 'Colar do Word',
- title : 'Colar do Word',
- error : 'Não foi possÃvel limpar os dados colados devido a um erro interno'
- },
-
- pasteText :
- {
- button : 'Colar como Texto sem Formatação',
- title : 'Colar como Texto sem Formatação'
- },
-
- templates :
- {
- button : 'Modelos de layout',
- title : 'Modelo de layout de conteúdo',
- options : 'Opções de Template',
- insertOption : 'Substituir o conteúdo atual',
- selectPromptMsg : 'Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):',
- emptyListMsg : '(Não foram definidos modelos de layout)'
- },
-
- showBlocks : 'Mostrar blocos de código',
-
- stylesCombo :
- {
- label : 'Estilo',
- panelTitle : 'Estilos de Formatação',
- panelTitle1 : 'Estilos de bloco',
- panelTitle2 : 'Estilos de texto corrido',
- panelTitle3 : 'Estilos de objeto'
- },
-
- format :
- {
- label : 'Formatação',
- panelTitle : 'Formatação',
-
- tag_p : 'Normal',
- tag_pre : 'Formatado',
- tag_address : 'Endereço',
- tag_h1 : 'TÃtulo 1',
- tag_h2 : 'TÃtulo 2',
- tag_h3 : 'TÃtulo 3',
- tag_h4 : 'TÃtulo 4',
- tag_h5 : 'TÃtulo 5',
- tag_h6 : 'TÃtulo 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Criar Container de DIV',
- toolbar : 'Criar Container de DIV',
- cssClassInputLabel : 'Classes de CSS',
- styleSelectLabel : 'Estilo',
- IdInputLabel : 'Id',
- languageCodeInputLabel : 'Código de Idioma',
- inlineStyleInputLabel : 'Estilo Inline',
- advisoryTitleInputLabel : 'TÃtulo Consulta',
- langDirLabel : 'Direção da Escrita',
- langDirLTRLabel : 'Esquerda para Direita (LTR)',
- langDirRTLLabel : 'Direita para Esquerda (RTL)',
- edit : 'Editar Div',
- remove : 'Remover Div'
- },
-
- font :
- {
- label : 'Fonte',
- voiceLabel : 'Fonte',
- panelTitle : 'Fonte'
- },
-
- fontSize :
- {
- label : 'Tamanho',
- voiceLabel : 'Tamanho da fonte',
- panelTitle : 'Tamanho'
- },
-
- colorButton :
- {
- textColorTitle : 'Cor do Texto',
- bgColorTitle : 'Cor do Plano de Fundo',
- panelTitle : 'Cores',
- auto : 'Automático',
- more : 'Mais Cores...'
- },
-
- colors :
- {
- '000' : 'Preto',
- '800000' : 'Foquete',
- '8B4513' : 'Marrom 1',
- '2F4F4F' : 'Cinza 1',
- '008080' : 'Cerceta',
- '000080' : 'Azul Marinho',
- '4B0082' : 'Ãndigo',
- '696969' : 'Cinza 2',
- 'B22222' : 'Tijolo de Fogo',
- 'A52A2A' : 'Marrom 2',
- 'DAA520' : 'Vara Dourada',
- '006400' : 'Verde Escuro',
- '40E0D0' : 'Turquesa',
- '0000CD' : 'Azul Médio',
- '800080' : 'Roxo',
- '808080' : 'Cinza 3',
- 'F00' : 'Vermelho',
- 'FF8C00' : 'Laranja Escuro',
- 'FFD700' : 'Dourado',
- '008000' : 'Verde',
- '0FF' : 'Ciano',
- '00F' : 'Azul',
- 'EE82EE' : 'Violeta',
- 'A9A9A9' : 'Cinza Escuro',
- 'FFA07A' : 'Salmão Claro',
- 'FFA500' : 'Laranja',
- 'FFFF00' : 'Amarelo',
- '00FF00' : 'Lima',
- 'AFEEEE' : 'Turquesa Pálido',
- 'ADD8E6' : 'Azul Claro',
- 'DDA0DD' : 'Ameixa',
- 'D3D3D3' : 'Cinza Claro',
- 'FFF0F5' : 'Lavanda 1',
- 'FAEBD7' : 'Branco Antiguidade',
- 'FFFFE0' : 'Amarelo Claro',
- 'F0FFF0' : 'Orvalho',
- 'F0FFFF' : 'Azure',
- 'F0F8FF' : 'Azul Alice',
- 'E6E6FA' : 'Lavanda 2',
- 'FFF' : 'Branco'
- },
-
- scayt :
- {
- title : 'Correção ortográfica durante a digitação',
- opera_title : 'Não suportado no Opera',
- enable : 'Habilitar correção ortográfica durante a digitação',
- disable : 'Desabilitar correção ortográfica durante a digitação',
- about : 'Sobre a correção ortográfica durante a digitação',
- toggle : 'Ativar/desativar correção ortográfica durante a digitação',
- options : 'Opções',
- langs : 'Idiomas',
- moreSuggestions : 'Mais sugestões',
- ignore : 'Ignorar',
- ignoreAll : 'Ignorar todas',
- addWord : 'Adicionar palavra',
- emptyDic : 'O nome do dicionário não deveria estar vazio.',
-
- optionsTab : 'Opções',
- allCaps : 'Ignorar palavras maiúsculas',
- ignoreDomainNames : 'Ignorar nomes de domÃnio',
- mixedCase : 'Ignorar palavras com maiúsculas e minúsculas misturadas',
- mixedWithDigits : 'Ignorar palavras com números',
-
- languagesTab : 'Idiomas',
-
- dictionariesTab : 'Dicionários',
- dic_field_name : 'Nome do Dicionário',
- dic_create : 'Criar',
- dic_restore : 'Restaurar',
- dic_delete : 'Excluir',
- dic_rename : 'Renomear',
- dic_info : 'Inicialmente, o dicionário do usuário fica armazenado em um Cookie. Porém, Cookies tem tamanho limitado, portanto quand o dicionário do usuário atingir o tamanho limite poderá ser armazenado no nosso servidor. Para armazenar seu dicionário pessoal no nosso servidor deverá especificar um nome para ele. Se já tiver um dicionário armazenado por favor especifique o seu nome e clique em Restaurar.',
-
- aboutTab : 'Sobre'
- },
-
- about :
- {
- title : 'Sobre o CKEditor',
- dlgTitle : 'Sobre o CKEditor',
- moreInfo : 'Para informações sobre a licença por favor visite o nosso site:',
- copy : 'Copyright © $1. Todos os direitos reservados.'
- },
-
- maximize : 'Maximizar',
- minimize : 'Minimize',
-
- fakeobjects :
- {
- anchor : 'Ãncora',
- flash : 'Animação em Flash',
- div : 'Quebra de página',
- unknown : 'Objeto desconhecido'
- },
-
- resize : 'Arraste para redimensionar',
-
- colordialog :
- {
- title : 'Selecione uma cor',
- options : 'Opções de Cor',
- highlight : 'Grifar',
- selected : 'Cor Selecionada',
- clear : 'Limpar'
- },
-
- toolbarCollapse : 'Diminuir Barra de Ferramentas',
- toolbarExpand : 'Aumentar Barra de Ferramentas',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'pt-br' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Editor de Texto',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Pressione ALT+0 para ajuda',
+
+ browseServer: 'Localizar no Servidor',
+ url: 'URL',
+ protocol: 'Protocolo',
+ upload: 'Enviar ao Servidor',
+ uploadSubmit: 'Enviar para o Servidor',
+ image: 'Imagem',
+ flash: 'Flash',
+ form: 'Formulário',
+ checkbox: 'Caixa de Seleção',
+ radio: 'Botão de Opção',
+ textField: 'Caixa de Texto',
+ textarea: 'Ãrea de Texto',
+ hiddenField: 'Campo Oculto',
+ button: 'Botão',
+ select: 'Caixa de Listagem',
+ imageButton: 'Botão de Imagem',
+ notSet: '<não ajustado>',
+ id: 'Id',
+ name: 'Nome',
+ langDir: 'Direção do idioma',
+ langDirLtr: 'Esquerda para Direita (LTR)',
+ langDirRtl: 'Direita para Esquerda (RTL)',
+ langCode: 'Idioma',
+ longDescr: 'Descrição da URL',
+ cssClass: 'Classe de CSS',
+ advisoryTitle: 'TÃtulo',
+ cssStyle: 'Estilos',
+ ok: 'OK',
+ cancel: 'Cancelar',
+ close: 'Fechar',
+ preview: 'Visualizar',
+ resize: 'Arraste para redimensionar',
+ generalTab: 'Geral',
+ advancedTab: 'Avançado',
+ validateNumberFailed: 'Este valor não é um número.',
+ confirmNewPage: 'Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?',
+ confirmCancel: 'Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?',
+ options: 'Opções',
+ target: 'Destino',
+ targetNew: 'Nova Janela (_blank)',
+ targetTop: 'Janela de Cima (_top)',
+ targetSelf: 'Mesma Janela (_self)',
+ targetParent: 'Janela Pai (_parent)',
+ langDirLTR: 'Esquerda para Direita (LTR)',
+ langDirRTL: 'Direita para Esquerda (RTL)',
+ styles: 'Estilo',
+ cssClasses: 'Classes',
+ width: 'Largura',
+ height: 'Altura',
+ align: 'Alinhamento',
+ alignLeft: 'Esquerda',
+ alignRight: 'Direita',
+ alignCenter: 'Centralizado',
+ alignTop: 'Superior',
+ alignMiddle: 'Centralizado',
+ alignBottom: 'Inferior',
+ invalidValue : 'Valor inválido.',
+ invalidHeight: 'A altura tem que ser um número',
+ invalidWidth: 'A largura tem que ser um número.',
+ invalidCssLength: 'O valor do campo "%1" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'O valor do campo "%1" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px or %).',
+ invalidInlineStyle: 'O valor válido para estilo deve conter uma ou mais tuplas no formato "nome : valor", separados por ponto e vÃrgula.',
+ cssLengthTooltip: 'Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, indisponÃvel</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/pt.js b/devel/third-party/ckeditor/lang/pt.js
index 2153a8b..f0182a5 100644
--- a/devel/third-party/ckeditor/lang/pt.js
+++ b/devel/third-party/ckeditor/lang/pt.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Portuguese language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['pt'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Fonte',
- newPage : 'Nova Página',
- save : 'Guardar',
- preview : 'Pré-visualizar',
- cut : 'Cortar',
- copy : 'Copiar',
- paste : 'Colar',
- print : 'Imprimir',
- underline : 'Sublinhado',
- bold : 'Negrito',
- italic : 'Itálico',
- selectAll : 'Seleccionar Tudo',
- removeFormat : 'Eliminar Formato',
- strike : 'Rasurado',
- subscript : 'Superior à Linha',
- superscript : 'Inferior à Linha',
- horizontalrule : 'Inserir Linha Horizontal',
- pagebreak : 'Inserir Quebra de Página',
- unlink : 'Eliminar Hiperligação',
- undo : 'Anular',
- redo : 'Repetir',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Navegar no Servidor',
- url : 'URL',
- protocol : 'Protocolo',
- upload : 'Carregar',
- uploadSubmit : 'Enviar para o Servidor',
- image : 'Imagem',
- flash : 'Flash',
- form : 'Formulário',
- checkbox : 'Caixa de Verificação',
- radio : 'Botão de Opção',
- textField : 'Campo de Texto',
- textarea : 'Ãrea de Texto',
- hiddenField : 'Campo Escondido',
- button : 'Botão',
- select : 'Caixa de Combinação',
- imageButton : 'Botão de Imagem',
- notSet : '<Não definido>',
- id : 'Id',
- name : 'Nome',
- langDir : 'Orientação de idioma',
- langDirLtr : 'Esquerda à Direita (LTR)',
- langDirRtl : 'Direita a Esquerda (RTL)',
- langCode : 'Código de Idioma',
- longDescr : 'Descrição Completa do URL',
- cssClass : 'Classes de Estilo de Folhas Classes',
- advisoryTitle : 'TÃtulo',
- cssStyle : 'Estilo',
- ok : 'OK',
- cancel : 'Cancelar',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Avançado',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Inserir Caracter Especial',
- title : 'Seleccione um caracter especial',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Inserir/Editar Hiperligação',
- other : '<outro>',
- menu : 'Editar Hiperligação',
- title : 'Hiperligação',
- info : 'Informação de Hiperligação',
- target : 'Destino',
- upload : 'Carregar',
- advanced : 'Avançado',
- type : 'Tipo de Hiperligação',
- toUrl : 'URL', // MISSING
- toAnchor : 'Referência a esta página',
- toEmail : 'E-Mail',
- targetFrame : '<Frame>',
- targetPopup : '<Janela de popup>',
- targetFrameName : 'Nome do Frame Destino',
- targetPopupName : 'Nome da Janela de Popup',
- popupFeatures : 'CaracterÃsticas de Janela de Popup',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Barra de Estado',
- popupLocationBar: 'Barra de localização',
- popupToolbar : 'Barra de Ferramentas',
- popupMenuBar : 'Barra de Menu',
- popupFullScreen : 'Janela Completa (IE)',
- popupScrollBars : 'Barras de deslocamento',
- popupDependent : 'Dependente (Netscape)',
- popupWidth : 'Largura',
- popupLeft : 'Posição Esquerda',
- popupHeight : 'Altura',
- popupTop : 'Posição Direita',
- id : 'Id', // MISSING
- langDir : 'Orientação de idioma',
- langDirLTR : 'Esquerda à Direita (LTR)',
- langDirRTL : 'Direita a Esquerda (RTL)',
- acccessKey : 'Chave de Acesso',
- name : 'Nome',
- langCode : 'Orientação de idioma',
- tabIndex : 'Ãndice de Tubulação',
- advisoryTitle : 'TÃtulo',
- advisoryContentType : 'Tipo de Conteúdo',
- cssClasses : 'Classes de Estilo de Folhas Classes',
- charset : 'Fonte de caracteres vinculado',
- styles : 'Estilo',
- selectAnchor : 'Seleccionar una referência',
- anchorName : 'Por Nome de Referência',
- anchorId : 'Por ID de elemento',
- emailAddress : 'Endereço de E-Mail',
- emailSubject : 'TÃtulo de Mensagem',
- emailBody : 'Corpo da Mensagem',
- noAnchors : '(Não há referências disponÃveis no documento)',
- noUrl : 'Por favor introduza a hiperligação URL',
- noEmail : 'Por favor introduza o endereço de e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : ' Inserir/Editar Ãncora',
- menu : 'Propriedades da Ãncora',
- title : 'Propriedades da Ãncora',
- name : 'Nome da Ãncora',
- errorName : 'Por favor, introduza o nome da âncora'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'Procurar',
- replace : 'Substituir',
- findWhat : 'Texto a Procurar:',
- replaceWith : 'Substituir por:',
- notFoundMsg : 'O texto especificado não foi encontrado.',
- matchCase : 'Maiúsculas/Minúsculas',
- matchWord : 'Coincidir com toda a palavra',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Substituir Tudo',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabela',
- title : 'Propriedades da Tabela',
- menu : 'Propriedades da Tabela',
- deleteTable : 'Eliminar Tabela',
- rows : 'Linhas',
- columns : 'Colunas',
- border : 'Tamanho do Limite',
- align : 'Alinhamento',
- alignLeft : 'Esquerda',
- alignCenter : 'Centrado',
- alignRight : 'Direita',
- width : 'Largura',
- widthPx : 'pixeis',
- widthPc : 'percentagem',
- widthUnit : 'width unit', // MISSING
- height : 'Altura',
- cellSpace : 'Esp. e/células',
- cellPad : 'Esp. interior',
- caption : 'TÃtulo',
- summary : 'Sumário',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Célula',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'Eliminar Célula',
- merge : 'Unir Células',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Linha',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Eliminar Linhas'
- },
-
- column :
- {
- menu : 'Coluna',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Eliminar Coluna'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Propriedades do Botão',
- text : 'Texto (Valor)',
- type : 'Tipo',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Propriedades da Caixa de Verificação',
- radioTitle : 'Propriedades do Botão de Opção',
- value : 'Valor',
- selected : 'Seleccionado'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Propriedades do Formulário',
- menu : 'Propriedades do Formulário',
- action : 'Acção',
- method : 'Método',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Propriedades da Caixa de Combinação',
- selectInfo : 'Informação',
- opAvail : 'Opções PossÃveis',
- value : 'Valor',
- size : 'Tamanho',
- lines : 'linhas',
- chkMulti : 'Permitir selecções múltiplas',
- opText : 'Texto',
- opValue : 'Valor',
- btnAdd : 'Adicionar',
- btnModify : 'Modificar',
- btnUp : 'Para cima',
- btnDown : 'Para baixo',
- btnSetValue : 'Definir um valor por defeito',
- btnDelete : 'Apagar'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Propriedades da Ãrea de Texto',
- cols : 'Colunas',
- rows : 'Linhas'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Propriedades do Campo de Texto',
- name : 'Nome',
- value : 'Valor',
- charWidth : 'Tamanho do caracter',
- maxChars : 'Nr. Máximo de Caracteres',
- type : 'Tipo',
- typeText : 'Texto',
- typePass : 'Palavra-chave'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Propriedades do Campo Escondido',
- name : 'Nome',
- value : 'Valor'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Propriedades da Imagem',
- titleButton : 'Propriedades do Botão de imagens',
- menu : 'Propriedades da Imagem',
- infoTab : 'Informação da Imagem',
- btnUpload : 'Enviar para o Servidor',
- upload : 'Carregar',
- alt : 'Texto Alternativo',
- width : 'Largura',
- height : 'Altura',
- lockRatio : 'Proporcional',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Tamanho Original',
- border : 'Limite',
- hSpace : 'Esp.Horiz',
- vSpace : 'Esp.Vert',
- align : 'Alinhamento',
- alignLeft : 'Esquerda',
- alignRight : 'Direita',
- alertUrl : 'Por favor introduza o URL da imagem',
- linkTab : 'Hiperligação',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Propriedades do Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'Propriedades do Flash',
- chkPlay : 'Reproduzir automaticamente',
- chkLoop : 'Loop',
- chkMenu : 'Permitir Menu do Flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Escala',
- scaleAll : 'Mostrar tudo',
- scaleNoBorder : 'Sem Limites',
- scaleFit : 'Tamanho Exacto',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Alinhamento',
- alignLeft : 'Esquerda',
- alignAbsBottom : 'Abs inferior',
- alignAbsMiddle : 'Abs centro',
- alignBaseline : 'Linha de base',
- alignBottom : 'Fundo',
- alignMiddle : 'Centro',
- alignRight : 'Direita',
- alignTextTop : 'Topo do texto',
- alignTop : 'Topo',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Cor de Fundo',
- width : 'Largura',
- height : 'Altura',
- hSpace : 'Esp.Horiz',
- vSpace : 'Esp.Vert',
- validateSrc : 'Por favor introduza a hiperligação URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Verificação Ortográfica',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Não está num directório',
- changeTo : 'Mudar para',
- btnIgnore : 'Ignorar',
- btnIgnoreAll : 'Ignorar Tudo',
- btnReplace : 'Substituir',
- btnReplaceAll : 'Substituir Tudo',
- btnUndo : 'Anular',
- noSuggestions : '- Sem sugestões -',
- progress : 'Verificação ortográfica em progressoâ¦',
- noMispell : 'Verificação ortográfica completa: não foram encontrados erros',
- noChanges : 'Verificação ortográfica completa: não houve alteração de palavras',
- oneChange : 'Verificação ortográfica completa: uma palavra alterada',
- manyChanges : 'Verificação ortográfica completa: %1 palavras alteradas',
- ieSpellDownload : ' Verificação ortográfica não instalada. Quer descarregar agora?'
- },
-
- smiley :
- {
- toolbar : 'Emoticons',
- title : 'Inserir um Emoticon',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Numeração',
- bulletedlist : 'Marcas',
- indent : 'Aumentar Avanço',
- outdent : 'Diminuir Avanço',
-
- justify :
- {
- left : 'Alinhar à Esquerda',
- center : 'Alinhar ao Centro',
- right : 'Alinhar à Direita',
- block : 'Justificado'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Colar',
- cutError : 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).',
- copyError : 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).',
- pasteMsg : 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Colar do Word',
- title : 'Colar do Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Colar como Texto Simples',
- title : 'Colar como Texto Simples'
- },
-
- templates :
- {
- button : 'Modelos',
- title : 'Modelo de Conteúdo',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):',
- emptyListMsg : '(Sem modelos definidos)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Estilo',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Formato',
- panelTitle : 'Formato',
-
- tag_p : 'Normal',
- tag_pre : 'Formatado',
- tag_address : 'Endereço',
- tag_h1 : 'TÃtulo 1',
- tag_h2 : 'TÃtulo 2',
- tag_h3 : 'TÃtulo 3',
- tag_h4 : 'TÃtulo 4',
- tag_h5 : 'TÃtulo 5',
- tag_h6 : 'TÃtulo 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Tipo de Letra',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Tipo de Letra'
- },
-
- fontSize :
- {
- label : 'Tamanho',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Tamanho'
- },
-
- colorButton :
- {
- textColorTitle : 'Cor do Texto',
- bgColorTitle : 'Cor de Fundo',
- panelTitle : 'Colors', // MISSING
- auto : 'Automático',
- more : 'Mais Cores...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Portuguese language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'pt' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Editor de texto enriquecido',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Navegar no Servidor',
+ url: 'URL',
+ protocol: 'Protocolo',
+ upload: 'Carregar',
+ uploadSubmit: 'Enviar para o Servidor',
+ image: 'Imagem',
+ flash: 'Flash',
+ form: 'Formulário',
+ checkbox: 'Caixa de Verificação',
+ radio: 'Botão de Opção',
+ textField: 'Campo de Texto',
+ textarea: 'Ãrea de Texto',
+ hiddenField: 'Campo Escondido',
+ button: 'Botão',
+ select: 'Caixa de Combinação',
+ imageButton: 'Botão de Imagem',
+ notSet: '<Não definido>',
+ id: 'Id',
+ name: 'Nome',
+ langDir: 'Orientação de idioma',
+ langDirLtr: 'Esquerda à Direita (LTR)',
+ langDirRtl: 'Direita a Esquerda (RTL)',
+ langCode: 'Código de Idioma',
+ longDescr: 'Descrição Completa do URL',
+ cssClass: 'Classes de Estilo de Folhas Classes',
+ advisoryTitle: 'TÃtulo',
+ cssStyle: 'Estilo',
+ ok: 'OK',
+ cancel: 'Cancelar',
+ close: 'Fechar',
+ preview: 'Pré-visualização',
+ resize: 'Arraste para redimensionar',
+ generalTab: 'Geral',
+ advancedTab: 'Avançado',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Opções',
+ target: 'Alvo',
+ targetNew: 'Nova Janela (_blank)',
+ targetTop: 'Janela superior (_top)',
+ targetSelf: 'Mesma janela (_self)',
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Esquerda à Direita (LTR)',
+ langDirRTL: 'Direita para Esquerda (RTL)',
+ styles: 'Estilo',
+ cssClasses: 'Classes de Estilo de Folhas Classes',
+ width: 'Largura',
+ height: 'Altura',
+ align: 'Alinhamento',
+ alignLeft: 'Esquerda',
+ alignRight: 'Direita',
+ alignCenter: 'Centrado',
+ alignTop: 'Topo',
+ alignMiddle: 'Centro',
+ alignBottom: 'Fundo',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ro.js b/devel/third-party/ckeditor/lang/ro.js
index ad949ff..2c1b58e 100644
--- a/devel/third-party/ckeditor/lang/ro.js
+++ b/devel/third-party/ckeditor/lang/ro.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Romanian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ro'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Sursa',
- newPage : 'PaginÄ nouÄ',
- save : 'SalveazÄ',
- preview : 'Previzualizare',
- cut : 'Taie',
- copy : 'CopiazÄ',
- paste : 'AdaugÄ',
- print : 'PrinteazÄ',
- underline : 'Subliniat (underline)',
- bold : 'ÃngroÅat (bold)',
- italic : 'Ãnclinat (italic)',
- selectAll : 'SelecteazÄ tot',
- removeFormat : 'ÃnlÄturÄ formatarea',
- strike : 'TÄiat (strike through)',
- subscript : 'Indice (subscript)',
- superscript : 'Putere (superscript)',
- horizontalrule : 'InsereazÄ linie orizontÄ',
- pagebreak : 'InsereazÄ separator de paginÄ (Page Break)',
- unlink : 'ÃnlÄturÄ link (legÄturÄ web)',
- undo : 'Starea anterioarÄ (undo)',
- redo : 'Starea ulterioarÄ (redo)',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'RÄsfoieÅte server',
- url : 'URL',
- protocol : 'Protocol',
- upload : 'ÃncarcÄ',
- uploadSubmit : 'Trimite la server',
- image : 'Imagine',
- flash : 'Flash',
- form : 'Formular (Form)',
- checkbox : 'BifÄ (Checkbox)',
- radio : 'Buton radio (RadioButton)',
- textField : 'Câmp text (TextField)',
- textarea : 'SuprafaÅ£Ä text (Textarea)',
- hiddenField : 'Câmp ascuns (HiddenField)',
- button : 'Buton',
- select : 'Câmp selecţie (SelectionField)',
- imageButton : 'Buton imagine (ImageButton)',
- notSet : '<nesetat>',
- id : 'Id',
- name : 'Nume',
- langDir : 'Direcţia cuvintelor',
- langDirLtr : 'stânga-dreapta (LTR)',
- langDirRtl : 'dreapta-stânga (RTL)',
- langCode : 'Codul limbii',
- longDescr : 'Descrierea lungÄ URL',
- cssClass : 'Clasele cu stilul paginii (CSS)',
- advisoryTitle : 'Titlul consultativ',
- cssStyle : 'Stil',
- ok : 'Bine',
- cancel : 'Anulare',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Avansat',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'InsereazÄ caracter special',
- title : 'SelecteazÄ caracter special',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'InsereazÄ/EditeazÄ link (legÄturÄ web)',
- other : '<alt>',
- menu : 'EditeazÄ Link',
- title : 'Link (LegÄturÄ web)',
- info : 'InformaÅ£ii despre link (LegÄturÄ web)',
- target : 'Å¢intÄ (Target)',
- upload : 'ÃncarcÄ',
- advanced : 'Avansat',
- type : 'Tipul link-ului (al legÄturii web)',
- toUrl : 'URL', // MISSING
- toAnchor : 'AncorÄ Ã®n aceastÄ paginÄ',
- toEmail : 'E-Mail',
- targetFrame : '<frame>',
- targetPopup : '<fereastra popup>',
- targetFrameName : 'Numele frame-ului Å£intÄ',
- targetPopupName : 'Numele ferestrei popup',
- popupFeatures : 'ProprietÄÅ£ile ferestrei popup',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Bara de status',
- popupLocationBar: 'Bara de locaţie',
- popupToolbar : 'Bara de opţiuni',
- popupMenuBar : 'Bara de meniu',
- popupFullScreen : 'Tot ecranul (Full Screen)(IE)',
- popupScrollBars : 'Scroll Bars',
- popupDependent : 'Dependent (Netscape)',
- popupWidth : 'LÄÅ£ime',
- popupLeft : 'Poziţia la stânga',
- popupHeight : 'ÃnÄlÅ£ime',
- popupTop : 'Poziţia la dreapta',
- id : 'Id', // MISSING
- langDir : 'Direcţia cuvintelor',
- langDirLTR : 'stânga-dreapta (LTR)',
- langDirRTL : 'dreapta-stânga (RTL)',
- acccessKey : 'Tasta de acces',
- name : 'Nume',
- langCode : 'Direcţia cuvintelor',
- tabIndex : 'Indexul tabului',
- advisoryTitle : 'Titlul consultativ',
- advisoryContentType : 'Tipul consultativ al titlului',
- cssClasses : 'Clasele cu stilul paginii (CSS)',
- charset : 'Setul de caractere al resursei legate',
- styles : 'Stil',
- selectAnchor : 'SelectaÅ£i o ancorÄ',
- anchorName : 'dupÄ numele ancorei',
- anchorId : 'dupÄ Id-ul elementului',
- emailAddress : 'AdresÄ de e-mail',
- emailSubject : 'Subiectul mesajului',
- emailBody : 'Conţinutul mesajului',
- noAnchors : '(Nicio ancorÄ disponibilÄ Ã®n document)',
- noUrl : 'VÄ rugÄm sÄ scrieÅ£i URL-ul',
- noEmail : 'VÄ rugÄm sÄ scrieÅ£i adresa de e-mail'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'InsereazÄ/EditeazÄ ancorÄ',
- menu : 'ProprietÄÅ£i ancorÄ',
- title : 'ProprietÄÅ£i ancorÄ',
- name : 'Numele ancorei',
- errorName : 'VÄ rugÄm scrieÅ£i numele ancorei'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'GÄseÅte Åi înlocuieÅte',
- find : 'GÄseÅte',
- replace : 'ÃnlocuieÅte',
- findWhat : 'GÄseÅte:',
- replaceWith : 'ÃnlocuieÅte cu:',
- notFoundMsg : 'Textul specificat nu a fost gÄsit.',
- matchCase : 'DeosebeÅte majuscule de minuscule (Match case)',
- matchWord : 'Doar cuvintele întregi',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'ÃnlocuieÅte tot',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabel',
- title : 'ProprietÄÅ£ile tabelului',
- menu : 'ProprietÄÅ£ile tabelului',
- deleteTable : 'Återge tabel',
- rows : 'Linii',
- columns : 'Coloane',
- border : 'MÄrimea marginii',
- align : 'Aliniament',
- alignLeft : 'Stânga',
- alignCenter : 'Centru',
- alignRight : 'Dreapta',
- width : 'LÄÅ£ime',
- widthPx : 'pixeli',
- widthPc : 'procente',
- widthUnit : 'width unit', // MISSING
- height : 'ÃnÄlÅ£ime',
- cellSpace : 'Spaţiu între celule',
- cellPad : 'Spaţiu în cadrul celulei',
- caption : 'Titlu (Caption)',
- summary : 'Rezumat',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'CelulÄ',
- insertBefore : 'InsereazÄ celulÄ Ã®nainte',
- insertAfter : 'InsereazÄ celulÄ dupÄ',
- deleteCell : 'Återge celule',
- merge : 'UneÅte celule',
- mergeRight : 'UneÅte la dreapta',
- mergeDown : 'UneÅte jos',
- splitHorizontal : 'Ãmparte celula pe orizontalÄ',
- splitVertical : 'Ãmparte celula pe verticalÄ',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Linie',
- insertBefore : 'InsereazÄ linie înainte',
- insertAfter : 'InsereazÄ linie dupÄ',
- deleteRow : 'Återge linii'
- },
-
- column :
- {
- menu : 'ColoanÄ',
- insertBefore : 'InsereazÄ coloanÄ Ã®nainte',
- insertAfter : 'InsereazÄ coloanÄ dupÄ',
- deleteColumn : 'Återge celule'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ProprietÄÅ£i buton',
- text : 'Text (Valoare)',
- type : 'Tip',
- typeBtn : 'Button',
- typeSbm : 'Submit',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ProprietÄÅ£i bifÄ (Checkbox)',
- radioTitle : 'ProprietÄÅ£i buton radio (Radio Button)',
- value : 'Valoare',
- selected : 'Selectat'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ProprietÄÅ£i formular (Form)',
- menu : 'ProprietÄÅ£i formular (Form)',
- action : 'Acţiune',
- method : 'MetodÄ',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'ProprietÄÅ£i câmp selecÅ£ie (Selection Field)',
- selectInfo : 'Informaţii',
- opAvail : 'Opţiuni disponibile',
- value : 'Valoare',
- size : 'MÄrime',
- lines : 'linii',
- chkMulti : 'Permite selecţii multiple',
- opText : 'Text',
- opValue : 'Valoare',
- btnAdd : 'AdaugÄ',
- btnModify : 'ModificÄ',
- btnUp : 'Sus',
- btnDown : 'Jos',
- btnSetValue : 'SeteazÄ ca valoare selectatÄ',
- btnDelete : 'Återge'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ProprietÄÅ£i suprafaÅ£Ä text (Textarea)',
- cols : 'Coloane',
- rows : 'Linii'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ProprietÄÅ£i câmp text (Text Field)',
- name : 'Nume',
- value : 'Valoare',
- charWidth : 'LÄrgimea caracterului',
- maxChars : 'Caractere maxime',
- type : 'Tip',
- typeText : 'Text',
- typePass : 'ParolÄ'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ProprietÄÅ£i câmp ascuns (Hidden Field)',
- name : 'Nume',
- value : 'Valoare'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ProprietÄÅ£ile imaginii',
- titleButton : 'ProprietÄÅ£i buton imagine (Image Button)',
- menu : 'ProprietÄÅ£ile imaginii',
- infoTab : 'Informaţii despre imagine',
- btnUpload : 'Trimite la server',
- upload : 'ÃncarcÄ',
- alt : 'Text alternativ',
- width : 'LÄÅ£ime',
- height : 'ÃnÄlÅ£ime',
- lockRatio : 'PÄstreazÄ proporÅ£iile',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'ReseteazÄ mÄrimea',
- border : 'Margine',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Aliniere',
- alignLeft : 'Stânga',
- alignRight : 'Dreapta',
- alertUrl : 'VÄ rugÄm sÄ scrieÅ£i URL-ul imaginii',
- linkTab : 'Link (LegÄturÄ web)',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ProprietÄÅ£ile flash-ului',
- propertiesTab : 'Properties', // MISSING
- title : 'ProprietÄÅ£ile flash-ului',
- chkPlay : 'RuleazÄ automat',
- chkLoop : 'RepetÄ (Loop)',
- chkMenu : 'ActiveazÄ meniul flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'ScalÄ',
- scaleAll : 'AratÄ tot',
- scaleNoBorder : 'FÄrÄ margini (No border)',
- scaleFit : 'PotriveÅte',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Aliniere',
- alignLeft : 'Stânga',
- alignAbsBottom : 'Jos absolut (Abs Bottom)',
- alignAbsMiddle : 'Mijloc absolut (Abs Middle)',
- alignBaseline : 'Linia de jos (Baseline)',
- alignBottom : 'Jos',
- alignMiddle : 'Mijloc',
- alignRight : 'Dreapta',
- alignTextTop : 'Text sus',
- alignTop : 'Sus',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Coloarea fundalului',
- width : 'LÄÅ£ime',
- height : 'ÃnÄlÅ£ime',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'VÄ rugÄm sÄ scrieÅ£i URL-ul',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'VerificÄ text',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Nu e în dicţionar',
- changeTo : 'SchimbÄ Ã®n',
- btnIgnore : 'IgnorÄ',
- btnIgnoreAll : 'IgnorÄ toate',
- btnReplace : 'ÃnlocuieÅte',
- btnReplaceAll : 'ÃnlocuieÅte tot',
- btnUndo : 'Starea anterioarÄ (undo)',
- noSuggestions : '- FÄrÄ sugestii -',
- progress : 'Verificarea textului în desfÄÅurare...',
- noMispell : 'Verificarea textului terminatÄ: Nicio greÅealÄ gÄsitÄ',
- noChanges : 'Verificarea textului terminatÄ: Niciun cuvânt modificat',
- oneChange : 'Verificarea textului terminatÄ: Un cuvânt modificat',
- manyChanges : 'Verificarea textului terminatÄ: 1% cuvinte modificate',
- ieSpellDownload : 'Unealta pentru verificat textul (Spell checker) neinstalatÄ. DoriÅ£i sÄ o descÄrcaÅ£i acum?'
- },
-
- smiley :
- {
- toolbar : 'FigurÄ expresivÄ (Emoticon)',
- title : 'InsereazÄ o figurÄ expresivÄ (Emoticon)',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ListÄ numerotatÄ',
- bulletedlist : 'ListÄ cu puncte',
- indent : 'CreÅte indentarea',
- outdent : 'Scade indentarea',
-
- justify :
- {
- left : 'Aliniere la stânga',
- center : 'Aliniere centralÄ',
- right : 'Aliniere la dreapta',
- block : 'Aliniere în bloc (Block Justify)'
- },
-
- blockquote : 'Citat',
-
- clipboard :
- {
- title : 'AdaugÄ',
- cutError : 'SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de tÄiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+X).',
- copyError : 'SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de copiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+C).',
- pasteMsg : 'VÄ rugÄm adÄugaÅ£i în cÄsuÅ£a urmÄtoare folosind tastatura (<STRONG>Ctrl/Cmd+V</STRONG>) Åi apÄsaÅ£i <STRONG>OK</STRONG>.',
- securityMsg : 'Din cauza setÄrilor de securitate ale programului dvs. cu care navigaÅ£i pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui sÄ adÄugaÅ£i din nou datele în aceastÄ fereastrÄ.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'AdaugÄ din Word',
- title : 'AdaugÄ din Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'AdaugÄ ca text simplu (Plain Text)',
- title : 'AdaugÄ ca text simplu (Plain Text)'
- },
-
- templates :
- {
- button : 'Template-uri (Åabloane)',
- title : 'Template-uri (Åabloane) de conÅ£inut',
- options : 'Template Options', // MISSING
- insertOption : 'ÃnlocuieÅte cuprinsul actual',
- selectPromptMsg : 'VÄ rugÄm selectaÅ£i template-ul (Åablonul) ce se va deschide în editor<br>(conÅ£inutul actual va fi pierdut):',
- emptyListMsg : '(Niciun template (Åablon) definit)'
- },
-
- showBlocks : 'AratÄ blocurile',
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Formatare',
- panelTitle : 'Formatare',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font'
- },
-
- fontSize :
- {
- label : 'MÄrime',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'MÄrime'
- },
-
- colorButton :
- {
- textColorTitle : 'Culoarea textului',
- bgColorTitle : 'Coloarea fundalului',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatic',
- more : 'Mai multe culori...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Romanian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ro' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'ApasÄ ALT 0 pentru ajutor',
+
+ browseServer: 'RÄsfoieÅte server',
+ url: 'URL',
+ protocol: 'Protocol',
+ upload: 'ÃncarcÄ',
+ uploadSubmit: 'Trimite la server',
+ image: 'Imagine',
+ flash: 'Flash',
+ form: 'Formular (Form)',
+ checkbox: 'BifÄ (Checkbox)',
+ radio: 'Buton radio (RadioButton)',
+ textField: 'Câmp text (TextField)',
+ textarea: 'SuprafaÅ£Ä text (Textarea)',
+ hiddenField: 'Câmp ascuns (HiddenField)',
+ button: 'Buton',
+ select: 'Câmp selecţie (SelectionField)',
+ imageButton: 'Buton imagine (ImageButton)',
+ notSet: '<nesetat>',
+ id: 'Id',
+ name: 'Nume',
+ langDir: 'Direcţia cuvintelor',
+ langDirLtr: 'stânga-dreapta (LTR)',
+ langDirRtl: 'dreapta-stânga (RTL)',
+ langCode: 'Codul limbii',
+ longDescr: 'Descrierea lungÄ URL',
+ cssClass: 'Clasele cu stilul paginii (CSS)',
+ advisoryTitle: 'Titlul consultativ',
+ cssStyle: 'Stil',
+ ok: 'OK',
+ cancel: 'Anulare',
+ close: 'Ãnchide',
+ preview: 'Previzualizare',
+ resize: 'Trage pentru a redimensiona',
+ generalTab: 'General',
+ advancedTab: 'Avansat',
+ validateNumberFailed: 'AceastÄ valoare nu este un numÄr.',
+ confirmNewPage: 'Orice modificÄri nesalvate ale acestui conÈinut, vor fi pierdute. Sigur doriÈi încÄrcarea unei noi pagini?',
+ confirmCancel: 'Câteva opÈiuni au fost schimbate. Sigur doriÈi sÄ Ã®nchideÈi dialogul?',
+ options: 'OpÈiuni',
+ target: 'ÈintÄ',
+ targetNew: 'FereastrÄ nouÄ (_blank)',
+ targetTop: 'Topmost Window (_top)',
+ targetSelf: 'Ãn aceeaÈi fereastrÄ (_self)',
+ targetParent: 'Parent Window (_parent)',
+ langDirLTR: 'Stânga spre Dreapta (LTR)',
+ langDirRTL: 'Dreapta spre Stânga (RTL)',
+ styles: 'Stil',
+ cssClasses: 'Stylesheet Classes',
+ width: 'LÄÅ£ime',
+ height: 'ÃnÄlÅ£ime',
+ align: 'Aliniere',
+ alignLeft: 'MÄreÈte Bara',
+ alignRight: 'Dreapta',
+ alignCenter: 'Centru',
+ alignTop: 'Sus',
+ alignMiddle: 'Mijloc',
+ alignBottom: 'Jos',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'ÃnÄlÈimea trebuie sÄ fie un numÄr.',
+ invalidWidth: 'LÄÈimea trebuie sÄ fie un numÄr.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ru.js b/devel/third-party/ckeditor/lang/ru.js
index 6300802..bf2df37 100644
--- a/devel/third-party/ckeditor/lang/ru.js
+++ b/devel/third-party/ckeditor/lang/ru.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Russian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['ru'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'ÐÑÑоÑник',
- newPage : 'ÐÐ¾Ð²Ð°Ñ ÑÑÑаниÑа',
- save : 'СоÑ
ÑаниÑÑ',
- preview : 'ÐÑедваÑиÑелÑнÑй пÑоÑмоÑÑ',
- cut : 'ÐÑÑезаÑÑ',
- copy : 'ÐопиÑоваÑÑ',
- paste : 'ÐÑÑавиÑÑ',
- print : 'ÐеÑаÑÑ',
- underline : 'ÐодÑеÑкнÑÑÑй',
- bold : 'ÐиÑнÑй',
- italic : 'ÐÑÑÑив',
- selectAll : 'ÐÑделиÑÑ Ð²Ñе',
- removeFormat : 'УбÑаÑÑ ÑоÑмаÑиÑование',
- strike : 'ÐаÑеÑкнÑÑÑй',
- subscript : 'ÐодÑÑÑоÑнÑй индекÑ',
- superscript : 'ÐадÑÑÑоÑнÑй индекÑ',
- horizontalrule : 'ÐÑÑавиÑÑ Ð³Ð¾ÑизонÑалÑнÑÑ Ð»Ð¸Ð½Ð¸Ñ',
- pagebreak : 'ÐÑÑавиÑÑ ÑазÑÑв ÑÑÑаниÑÑ',
- unlink : 'УбÑаÑÑ ÑÑÑлкÑ',
- undo : 'ÐÑмениÑÑ',
- redo : 'ÐовÑоÑиÑÑ',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ÐÑоÑмоÑÑеÑÑ Ð½Ð° ÑеÑвеÑе',
- url : 'URL',
- protocol : 'ÐÑоÑокол',
- upload : 'ÐакаÑаÑÑ',
- uploadSubmit : 'ÐоÑлаÑÑ Ð½Ð° ÑеÑвеÑ',
- image : 'ÐзобÑажение',
- flash : 'Flash',
- form : 'ФоÑма',
- checkbox : 'Ð¤Ð»Ð°Ð³Ð¾Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°',
- radio : 'Ðнопка вÑбоÑа',
- textField : 'ТекÑÑовое поле',
- textarea : 'ТекÑÑÐ¾Ð²Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ',
- hiddenField : 'СкÑÑÑое поле',
- button : 'Ðнопка',
- select : 'СпиÑок',
- imageButton : 'Ðнопка Ñ Ð¸Ð·Ð¾Ð±Ñажением',
- notSet : '<не опÑеделено>',
- id : 'ÐденÑиÑикаÑоÑ',
- name : 'ÐмÑ',
- langDir : 'ÐапÑавление ÑзÑка',
- langDirLtr : 'Слева на пÑаво (LTR)',
- langDirRtl : 'СпÑава на лево (RTL)',
- langCode : 'ЯзÑк',
- longDescr : 'Ðлинное опиÑание URL',
- cssClass : 'ÐлаÑÑ CSS',
- advisoryTitle : 'Ðаголовок',
- cssStyle : 'СÑÐ¸Ð»Ñ CSS',
- ok : 'ÐÐ',
- cancel : 'ÐÑмена',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'ÐнÑоÑмаÑиÑ',
- advancedTab : 'РаÑÑиÑеннÑй',
- validateNumberFailed : 'ÐÑо знаÑение не ÑвлÑеÑÑÑ ÑиÑлом.',
- confirmNewPage : 'ÐÑе неÑоÑ
ÑаненнÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑÑеÑÑнÑ. ÐÑ ÑвеÑенÑ, ÑÑо Ñ
оÑиÑе пеÑейÑи на дÑÑгÑÑ ÑÑÑаниÑÑ?',
- confirmCancel : 'ÐекоÑоÑÑе опÑии бÑли измененÑ. ÐÑ ÑвеÑенÑ, ÑÑо Ñ
оÑиÑе закÑÑÑÑ Ð´Ð¸Ð°Ð»Ð¾Ð³?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, недоÑÑÑпно</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ÐÑÑавиÑÑ ÑпеÑиалÑнÑй Ñимвол',
- title : 'ÐÑбеÑиÑе ÑпеÑиалÑнÑй Ñимвол',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑÑÑлкÑ',
- other : '<дÑÑгой>',
- menu : 'ÐÑÑавиÑÑ ÑÑÑлкÑ',
- title : 'СÑÑлка',
- info : 'ÐнÑоÑмаÑÐ¸Ñ ÑÑÑлки',
- target : 'ЦелÑ',
- upload : 'ÐакаÑаÑÑ',
- advanced : 'РаÑÑиÑеннÑй',
- type : 'Тип ÑÑÑлки',
- toUrl : 'URL', // MISSING
- toAnchor : 'ЯкоÑÑ Ð½Ð° ÑÑÑ ÑÑÑаниÑÑ',
- toEmail : 'Ðл. поÑÑа',
- targetFrame : '<ÑÑейм>',
- targetPopup : '<вÑплÑваÑÑее окно>',
- targetFrameName : 'ÐÐ¼Ñ Ñелевого ÑÑейма',
- targetPopupName : 'ÐÐ¼Ñ Ð²ÑплÑваÑÑего окна',
- popupFeatures : 'СвойÑÑва вÑплÑваÑÑего окна',
- popupResizable : 'ÐзменÑемÑй ÑазмеÑ',
- popupStatusBar : 'СÑÑока ÑоÑÑоÑниÑ',
- popupLocationBar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð»Ð¾ÐºÐ°Ñии',
- popupToolbar : 'ÐÐ°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',
- popupMenuBar : 'ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ',
- popupFullScreen : 'ÐолнÑй ÑкÑан (IE)',
- popupScrollBars : 'ÐолоÑÑ Ð¿ÑокÑÑÑки',
- popupDependent : 'ÐавиÑимÑй (Netscape)',
- popupWidth : 'ШиÑина',
- popupLeft : 'ÐозиÑÐ¸Ñ Ñлева',
- popupHeight : 'ÐÑÑоÑа',
- popupTop : 'ÐозиÑÐ¸Ñ ÑвеÑÑ
Ñ',
- id : 'Id',
- langDir : 'ÐапÑавление ÑзÑка',
- langDirLTR : 'Слева напÑаво (LTR)',
- langDirRTL : 'СпÑава налево (RTL)',
- acccessKey : 'ÐоÑÑÑÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ñа',
- name : 'ÐмÑ',
- langCode : 'Ðод ÑзÑка',
- tabIndex : 'ÐоÑледоваÑелÑноÑÑÑ Ð¿ÐµÑеÑ
ода',
- advisoryTitle : 'Ðаголовок',
- advisoryContentType : 'Тип ÑодеÑжимого',
- cssClasses : 'ÐлаÑÑ CSS',
- charset : 'ÐодиÑовка',
- styles : 'СÑÐ¸Ð»Ñ CSS',
- selectAnchor : 'ÐÑбеÑиÑе ÑкоÑÑ',
- anchorName : 'Ðо имени ÑкоÑÑ',
- anchorId : 'Ðо иденÑиÑикаÑоÑÑ ÑлеменÑа',
- emailAddress : 'ÐдÑÐµÑ Ñл. поÑÑÑ',
- emailSubject : 'Ðаголовок ÑообÑениÑ',
- emailBody : 'Тело ÑообÑениÑ',
- noAnchors : '(ÐÐµÑ ÑкоÑей доÑÑÑпнÑÑ
в ÑÑом докÑменÑе)',
- noUrl : 'ÐожалÑйÑÑа, введиÑе URL ÑÑÑлки',
- noEmail : 'ÐожалÑйÑÑа, введиÑе адÑÐµÑ Ñл. поÑÑÑ'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑкоÑÑ',
- menu : 'СвойÑÑва ÑкоÑÑ',
- title : 'СвойÑÑва ÑкоÑÑ',
- name : 'ÐÐ¼Ñ ÑкоÑÑ',
- errorName : 'ÐожалÑйÑÑа, введиÑе Ð¸Ð¼Ñ ÑкоÑÑ'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'ÐайÑи и замениÑÑ',
- find : 'ÐайÑи',
- replace : 'ÐамениÑÑ',
- findWhat : 'ÐайÑи:',
- replaceWith : 'ÐамениÑÑ Ð½Ð°:',
- notFoundMsg : 'УказаннÑй ÑекÑÑ Ð½Ðµ найден.',
- matchCase : 'УÑиÑÑваÑÑ ÑегиÑÑÑ',
- matchWord : 'ТолÑко Ñлово Ñеликом',
- matchCyclic : 'ÐаÑинаÑÑ Ñ Ð½Ð°Ñала поÑле доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñа',
- replaceAll : 'ÐамениÑÑ Ð²Ñе',
- replaceSuccessMsg : '%1 Ñовпадение(й) заменено.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'ТаблиÑа',
- title : 'СвойÑÑва ÑаблиÑÑ',
- menu : 'СвойÑÑва ÑаблиÑÑ',
- deleteTable : 'УдалиÑÑ ÑаблиÑÑ',
- rows : 'СÑÑоки',
- columns : 'Ðолонки',
- border : 'Ð Ð°Ð·Ð¼ÐµÑ Ð±Ð¾ÑдÑÑа',
- align : 'ÐÑÑавнивание',
- alignLeft : 'Слева',
- alignCenter : 'Ðо ÑенÑÑÑ',
- alignRight : 'СпÑава',
- width : 'ШиÑина',
- widthPx : 'пикÑелей',
- widthPc : 'пÑоÑенÑов',
- widthUnit : 'width unit', // MISSING
- height : 'ÐÑÑоÑа',
- cellSpace : 'ÐÑомежÑÑок (spacing)',
- cellPad : 'ÐÑÑÑÑп (padding)',
- caption : 'Ðаголовок',
- summary : 'РезÑме',
- headers : 'Ðаголовки',
- headersNone : 'ÐеÑ',
- headersColumn : 'ÐеÑвÑй ÑÑолбеÑ',
- headersRow : 'ÐеÑÐ²Ð°Ñ ÑÑÑока',
- headersBoth : 'Ðба ваÑианÑа',
- invalidRows : 'ЧиÑло ÑÑÑок должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.',
- invalidCols : 'ЧиÑло ÑÑолбÑов должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.',
- invalidBorder : 'ШиÑина боÑдÑÑа должна бÑÑÑ ÑиÑлом.',
- invalidWidth : 'ШиÑина ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.',
- invalidHeight : 'ÐÑÑоÑа ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.',
- invalidCellSpacing : 'Ð Ð°Ð·Ð¼ÐµÑ Ð¿ÑомежÑÑков (cellspacing) Ð¼ÐµÐ¶Ð´Ñ ÑÑейками Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑиÑлом.',
- invalidCellPadding : 'ÐÑÑÑÑÐ¿Ñ Ð²Ð½ÑÑÑи ÑÑеек (cellpadding) Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑиÑлом.',
-
- cell :
- {
- menu : 'ЯÑейка',
- insertBefore : 'ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ Ð´Ð¾',
- insertAfter : 'ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ Ð¿Ð¾Ñле',
- deleteCell : 'УдалиÑÑ ÑÑейки',
- merge : 'ÐбÑединиÑÑ ÑÑейки',
- mergeRight : 'ÐбÑединиÑÑ Ñ Ð¿Ñавой',
- mergeDown : 'ÐбÑединиÑÑ Ñ Ð½Ð¸Ð¶Ð½ÐµÐ¹',
- splitHorizontal : 'РазбиÑÑ ÑÑÐµÐ¹ÐºÑ Ð³Ð¾ÑизонÑалÑно',
- splitVertical : 'РазбиÑÑ ÑÑÐµÐ¹ÐºÑ Ð²ÐµÑÑикалÑно',
- title : 'СвойÑÑва ÑÑейки',
- cellType : 'Тип ÑÑейки',
- rowSpan : 'Rows Span',
- colSpan : 'Columns Span',
- wordWrap : 'ÐеÑÐµÐ½Ð¾Ñ Ð¿Ð¾ Ñловам',
- hAlign : 'ÐÑÑавнивание по гоÑизонÑали',
- vAlign : 'ÐÑÑавнивание по веÑÑикали',
- alignTop : 'Ðо веÑÑ
Ñ',
- alignMiddle : 'ÐоÑеÑедине',
- alignBottom : 'Ðо низÑ',
- alignBaseline : 'Ðо базовой линии',
- bgColor : 'Ð¦Ð²ÐµÑ Ñона',
- borderColor : 'Ð¦Ð²ÐµÑ Ð³ÑаниÑÑ',
- data : 'ÐаннÑе',
- header : 'Ðаголовок',
- yes : 'Ðа',
- no : 'ÐеÑ',
- invalidWidth : 'ШиÑина ÑÑейки должна бÑÑÑ ÑиÑлом.',
- invalidHeight : 'ÐÑÑоÑа ÑÑейки должна бÑÑÑ ÑиÑлом.',
- invalidRowSpan : 'Rows span must be a whole number.',
- invalidColSpan : 'Columns span must be a whole number.',
- chooseColor : 'ÐÑбеÑиÑе'
- },
-
- row :
- {
- menu : 'СÑÑока',
- insertBefore : 'ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ Ð´Ð¾',
- insertAfter : 'ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ Ð¿Ð¾Ñле',
- deleteRow : 'УдалиÑÑ ÑÑÑоки'
- },
-
- column :
- {
- menu : 'Ðолонка',
- insertBefore : 'ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð´Ð¾',
- insertAfter : 'ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð¿Ð¾Ñле',
- deleteColumn : 'УдалиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'СвойÑÑва кнопки',
- text : 'ТекÑÑ (ÐнаÑение)',
- type : 'Тип',
- typeBtn : 'Ðнопка',
- typeSbm : 'ÐÑпÑавиÑÑ',
- typeRst : 'СбÑоÑиÑÑ'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'СвойÑÑва Ñлаговой кнопки',
- radioTitle : 'СвойÑÑва кнопки вÑбоÑа',
- value : 'ÐнаÑение',
- selected : 'ÐÑбÑаннаÑ'
- },
-
- // Form Dialog.
- form :
- {
- title : 'СвойÑÑва ÑоÑмÑ',
- menu : 'СвойÑÑва ÑоÑмÑ',
- action : 'ÐейÑÑвие',
- method : 'ÐеÑод',
- encoding : 'ÐодиÑовка'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'СвойÑÑва ÑпиÑка',
- selectInfo : 'ÐнÑоÑмаÑиÑ',
- opAvail : 'ÐоÑÑÑпнÑе ваÑианÑÑ',
- value : 'ÐнаÑение',
- size : 'РазмеÑ',
- lines : 'линии',
- chkMulti : 'РазÑеÑиÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑвеннÑй вÑбоÑ',
- opText : 'ТекÑÑ',
- opValue : 'ÐнаÑение',
- btnAdd : 'ÐобавиÑÑ',
- btnModify : 'ÐодиÑиÑиÑоваÑÑ',
- btnUp : 'ÐвеÑÑ
',
- btnDown : 'Ðниз',
- btnSetValue : 'УÑÑановиÑÑ ÐºÐ°Ðº вÑбÑанное знаÑение',
- btnDelete : 'УдалиÑÑ'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'СвойÑÑва ÑекÑÑовой облаÑÑи',
- cols : 'Ðолонки',
- rows : 'СÑÑоки'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'СвойÑÑва ÑекÑÑового полÑ',
- name : 'ÐмÑ',
- value : 'ÐнаÑение',
- charWidth : 'ШиÑина',
- maxChars : 'ÐакÑ. кол-во Ñимволов',
- type : 'Тип',
- typeText : 'ТекÑÑ',
- typePass : 'ÐаÑолÑ'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'СвойÑÑва ÑкÑÑÑого полÑ',
- name : 'ÐмÑ',
- value : 'ÐнаÑение'
- },
-
- // Image Dialog.
- image :
- {
- title : 'СвойÑÑва изобÑажениÑ',
- titleButton : 'СвойÑÑва кнопки Ñ Ð¸Ð·Ð¾Ð±Ñажением',
- menu : 'СвойÑÑва изобÑажениÑ',
- infoTab : 'ÐнÑоÑмаÑÐ¸Ñ Ð¾ изобÑажении',
- btnUpload : 'ÐÑпÑавиÑÑ Ð½Ð° ÑеÑвеÑ',
- upload : 'ÐакаÑаÑÑ',
- alt : 'ÐлÑÑеÑнаÑивнÑй ÑекÑÑ',
- width : 'ШиÑина',
- height : 'ÐÑÑоÑа',
- lockRatio : 'СоÑ
ÑанÑÑÑ Ð¿ÑопоÑÑии',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'СбÑоÑиÑÑ ÑазмеÑ',
- border : 'ÐоÑдÑÑ',
- hSpace : 'ÐоÑизонÑалÑнÑй оÑÑÑÑп',
- vSpace : 'ÐеÑÑикалÑнÑй оÑÑÑÑп',
- align : 'ÐÑÑавнивание',
- alignLeft : 'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
- alignRight : 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
- alertUrl : 'ÐожалÑйÑÑа, введиÑе URL изобÑажениÑ',
- linkTab : 'СÑÑлка',
- button2Img : 'Do you want to transform the selected image button on a simple image?',
- img2Button : 'Do you want to transform the selected image on a image button?',
- urlMissing : 'ÐÑÑÑÑÑÑвÑÐµÑ URL каÑÑинки.',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'СвойÑÑва Flash',
- propertiesTab : 'СвойÑÑва',
- title : 'СвойÑÑва Flash',
- chkPlay : 'ÐвÑо пÑоигÑÑвание',
- chkLoop : 'ÐовÑоÑ',
- chkMenu : 'ÐклÑÑиÑÑ Ð¼ÐµÐ½Ñ Flash',
- chkFull : 'ÑазÑеÑиÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑаннÑй Ñежим',
- scale : 'ÐаÑÑÑабиÑоваÑÑ',
- scaleAll : 'ÐоказÑваÑÑ Ð²Ñе',
- scaleNoBorder : 'Ðез боÑдÑÑа',
- scaleFit : 'ТоÑное Ñовпадение',
- access : 'ÐблаÑÑÑ Ð´Ð¾ÑÑÑпа ÑкÑипÑа',
- accessAlways : 'ÐÑегда',
- accessSameDomain: 'Ð¢Ð¾Ñ Ð¶Ðµ домен',
- accessNever : 'Ðикогда',
- align : 'ÐÑÑавнивание',
- alignLeft : 'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
- alignAbsBottom : 'ÐÐ±Ñ Ð¿Ð¾Ð½Ð¸Ð·Ñ',
- alignAbsMiddle : 'ÐÐ±Ñ Ð¿Ð¾ÑеÑедине',
- alignBaseline : 'Ðо базовой линии',
- alignBottom : 'ÐонизÑ',
- alignMiddle : 'ÐоÑеÑедине',
- alignRight : 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
- alignTextTop : 'ТекÑÑ Ð½Ð°Ð²ÐµÑÑ
Ñ',
- alignTop : 'Ðо веÑÑ
Ñ',
- quality : 'ÐаÑеÑÑво',
- qualityBest : 'ÐÑÑÑее',
- qualityHigh : 'ÐÑÑокое',
- qualityAutoHigh : 'ÐÑÑокое (авÑо)',
- qualityMedium : 'СÑеднее',
- qualityAutoLow : 'Ðизкое (авÑо)',
- qualityLow : 'Ðизкое',
- windowModeWindow: 'Ðкно',
- windowModeOpaque: 'ÐепÑозÑаÑнÑй',
- windowModeTransparent : 'ÐÑозÑаÑнÑй',
- windowMode : 'ÐконнÑй Ñежим',
- flashvars : 'ÐеÑеменнÑе Ð´Ð»Ñ Flash',
- bgcolor : 'Ð¦Ð²ÐµÑ Ñона',
- width : 'ШиÑина',
- height : 'ÐÑÑоÑа',
- hSpace : 'ÐоÑизонÑалÑнÑй оÑÑÑÑп',
- vSpace : 'ÐеÑÑикалÑнÑй оÑÑÑÑп',
- validateSrc : 'ÐожалÑйÑÑа, введиÑе URL ÑÑÑлки',
- validateWidth : 'ШиÑина задаеÑÑÑ ÑиÑлом.',
- validateHeight : 'ÐÑÑоÑа задаеÑÑÑ ÑиÑлом.',
- validateHSpace : 'ÐоÑизонÑалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.',
- validateVSpace : 'ÐеÑÑикалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ÐÑовеÑиÑÑ Ð¾ÑÑогÑаÑиÑ',
- title : 'ÐÑовеÑка пÑавопиÑаниÑ',
- notAvailable : 'ÐзвиниÑе, ÑеÑÐ²Ð¸Ñ ÑейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен.',
- errorLoading : 'ÐÑибка пÑи загÑÑзке ÑлÑжебного Ñ
оÑÑа пÑиложениÑ: %s.',
- notInDic : 'ÐÐµÑ Ð² ÑловаÑе',
- changeTo : 'ÐамениÑÑ Ð½Ð°',
- btnIgnore : 'ÐгноÑиÑоваÑÑ',
- btnIgnoreAll : 'ÐгноÑиÑоваÑÑ Ð²Ñе',
- btnReplace : 'ÐамениÑÑ',
- btnReplaceAll : 'ÐамениÑÑ Ð²Ñе',
- btnUndo : 'ÐÑмениÑÑ',
- noSuggestions : '- ÐÐµÑ Ð¿Ñедположений -',
- progress : 'ÐÐ´ÐµÑ Ð¿ÑовеÑка оÑÑогÑаÑии...',
- noMispell : 'ÐÑовеÑка оÑÑогÑаÑии законÑена: оÑибок не найдено',
- noChanges : 'ÐÑовеÑка оÑÑогÑаÑии законÑена: ни одного Ñлова не изменено',
- oneChange : 'ÐÑовеÑка оÑÑогÑаÑии законÑена: одно Ñлово изменено',
- manyChanges : 'ÐÑовеÑка оÑÑогÑаÑии законÑена: 1% Ñлов изменено',
- ieSpellDownload : 'ÐодÑÐ»Ñ Ð¿ÑовеÑки оÑÑогÑаÑии не ÑÑÑановлен. ХоÑиÑе ÑкаÑаÑÑ ÐµÐ³Ð¾ ÑейÑаÑ?'
- },
-
- smiley :
- {
- toolbar : 'Смайлик',
- title : 'ÐÑÑавиÑÑ Ñмайлик',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 ÑлеменÑ'
- },
-
- numberedlist : 'ÐÑмеÑованнÑй ÑпиÑок',
- bulletedlist : 'ÐаÑкиÑованнÑй ÑпиÑок',
- indent : 'УвелиÑиÑÑ Ð¾ÑÑÑÑп',
- outdent : 'УменÑÑиÑÑ Ð¾ÑÑÑÑп',
-
- justify :
- {
- left : 'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
- center : 'Ðо ÑенÑÑÑ',
- right : 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
- block : 'Ðо ÑиÑине'
- },
-
- blockquote : 'ЦиÑаÑа',
-
- clipboard :
- {
- title : 'ÐÑÑавиÑÑ',
- cutError : 'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не позволÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑеÑки вÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии вÑÑезаниÑ. ÐожалÑйÑÑа, иÑполÑзÑйÑе клавиаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+X).',
- copyError : 'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не позволÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑеÑки вÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии копиÑованиÑ. ÐожалÑйÑÑа, иÑполÑзÑйÑе клавиаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+C).',
- pasteMsg : 'ÐожалÑйÑÑа, вÑÑавÑÑе ÑекÑÑ Ð² пÑÑмоÑголÑник, иÑполÑзÑÑ ÑоÑеÑание ÐºÐ»Ð°Ð²Ð¸Ñ (<STRONG>Ctrl/Cmd+V</STRONG>), и нажмиÑе <STRONG>OK</STRONG>.',
- securityMsg : 'Ðо пÑиÑине наÑÑÑоек безопаÑноÑÑи бÑаÑзеÑа, ÑедакÑÐ¾Ñ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑпа к даннÑм бÑÑеÑа обмена напÑÑмÑÑ. Ðам необÑ
одимо вÑÑавиÑÑ ÑекÑÑ Ñнова в ÑÑо окно.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'ТекÑÑ, коÑоÑÑй Ð²Ñ Ñ
оÑиÑе вÑÑавиÑÑ, поÑ
ож на копиÑÑемÑй из Word. ÐÑ Ñ
оÑиÑе оÑиÑÑиÑÑ ÐµÐ³Ð¾ пеÑед вÑÑавкой?',
- toolbar : 'ÐÑÑавиÑÑ Ð¸Ð· Word',
- title : 'ÐÑÑавиÑÑ Ð¸Ð· Word',
- error : 'Ðевозможно оÑиÑÑиÑÑ Ð²ÑÑавленнÑе даннÑе из-за внÑÑÑенней оÑибки'
- },
-
- pasteText :
- {
- button : 'ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ',
- title : 'ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ'
- },
-
- templates :
- {
- button : 'ШаблонÑ',
- title : 'Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ ÑодеÑжимого',
- options : 'Template Options', // MISSING
- insertOption : 'ÐамениÑÑ ÑекÑÑее ÑодеÑжание',
- selectPromptMsg : 'ÐожалÑйÑÑа, вÑбеÑеÑе Ñаблон Ð´Ð»Ñ Ð¾ÑкÑÑÑÐ¸Ñ Ð² ÑедакÑоÑе<br>(ÑекÑÑее ÑодеÑжимое бÑÐ´ÐµÑ Ð¿Ð¾ÑеÑÑно):',
- emptyListMsg : '(Ðи одного Ñаблона не опÑеделено)'
- },
-
- showBlocks : 'ÐоказаÑÑ Ð±Ð»Ð¾ÐºÐ¸',
-
- stylesCombo :
- {
- label : 'СÑилÑ',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles',
- panelTitle2 : 'Inline Styles',
- panelTitle3 : 'СÑили обÑекÑа'
- },
-
- format :
- {
- label : 'ФоÑмаÑиÑование',
- panelTitle : 'ФоÑмаÑиÑование',
-
- tag_p : 'ÐоÑмалÑнÑй',
- tag_pre : 'ФоÑмаÑиÑованнÑй',
- tag_address : 'ÐдÑеÑ',
- tag_h1 : 'Ðаголовок 1',
- tag_h2 : 'Ðаголовок 2',
- tag_h3 : 'Ðаголовок 3',
- tag_h4 : 'Ðаголовок 4',
- tag_h5 : 'Ðаголовок 5',
- tag_h6 : 'Ðаголовок 6',
- tag_div : 'ÐоÑмалÑнÑй (DIV)'
- },
-
- div :
- {
- title : 'СоздаÑÑ Div-конÑейнеÑ',
- toolbar : 'СоздаÑÑ Div-конÑейнеÑ',
- cssClassInputLabel : 'ÐлаÑÑÑ ÑаблиÑÑ ÑÑилей',
- styleSelectLabel : 'СÑилÑ',
- IdInputLabel : 'Id',
- languageCodeInputLabel : 'Ðод ÑзÑка',
- inlineStyleInputLabel : 'ÐокалÑнÑй ÑÑилÑ',
- advisoryTitleInputLabel : 'Advisory Title',
- langDirLabel : 'ÐапÑавление пиÑÑма',
- langDirLTRLabel : 'Слева напÑаво (LTR)',
- langDirRTLLabel : 'СпÑава налево (RTL)',
- edit : 'РедакÑиÑоваÑÑ Div',
- remove : 'УбÑаÑÑ Div'
- },
-
- font :
- {
- label : 'ШÑиÑÑ',
- voiceLabel : 'ШÑиÑÑ',
- panelTitle : 'ШÑиÑÑ'
- },
-
- fontSize :
- {
- label : 'РазмеÑ',
- voiceLabel : 'Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа',
- panelTitle : 'РазмеÑ'
- },
-
- colorButton :
- {
- textColorTitle : 'Ð¦Ð²ÐµÑ ÑекÑÑа',
- bgColorTitle : 'Ð¦Ð²ÐµÑ Ñона',
- panelTitle : 'Colors', // MISSING
- auto : 'ÐвÑомаÑиÑеÑкий',
- more : 'ЦвеÑа...'
- },
-
- colors :
- {
- '000' : 'ЧеÑнÑй',
- '800000' : 'ÐоÑдовÑй',
- '8B4513' : 'СÑаÑой кожи',
- '2F4F4F' : 'ТемнÑй ÑиневаÑо-ÑеÑÑй',
- '008080' : 'ЧайнÑй',
- '000080' : 'Темно-ÑиниÑй',
- '4B0082' : 'Ðндиго',
- '696969' : 'ÐÑÑзно-ÑеÑÑй',
- 'B22222' : 'ÐгнеÑпоÑнÑй киÑпиÑ',
- 'A52A2A' : 'ÐоÑиÑневÑй',
- 'DAA520' : 'ÐÑаÑное золоÑо',
- '006400' : 'Темно-зеленÑй',
- '40E0D0' : 'ÐиÑÑзовÑй',
- '0000CD' : 'Синий',
- '800080' : 'ÐÑÑпÑÑнÑй',
- '808080' : 'СеÑÑй',
- 'F00' : 'ÐÑаÑнÑй',
- 'FF8C00' : 'Темно-оÑанжевÑй',
- 'FFD700' : 'ÐолоÑой',
- '008000' : 'ÐеленÑй',
- '0FF' : 'ÐоÑÑкой волнÑ',
- '00F' : 'ÐолÑбой',
- 'EE82EE' : 'ФиолеÑовÑй',
- 'A9A9A9' : 'Темно-ÑеÑÑй',
- 'FFA07A' : 'СвеÑлÑй оÑанжево-ÑозовÑй',
- 'FFA500' : 'ÐÑанжевÑй',
- 'FFFF00' : 'ÐелÑÑй',
- '00FF00' : 'ÐзвеÑÑковÑй',
- 'AFEEEE' : 'Ðледно-биÑÑзовÑй',
- 'ADD8E6' : 'СвелÑо-Ñиний',
- 'DDA0DD' : 'СливовÑй',
- 'D3D3D3' : 'СвеÑло-ÑеÑÑй',
- 'FFF0F5' : 'ÐледнÑй Ñозово-лиловÑй ',
- 'FAEBD7' : 'ÐнÑиÑнÑй белÑй',
- 'FFFFE0' : 'СвеÑло-желÑÑй',
- 'F0FFF0' : 'Свежего меда',
- 'F0FFFF' : 'ÐазÑÑÑ',
- 'F0F8FF' : 'Ðледно-голÑбой',
- 'E6E6FA' : 'Ðледно-лиловÑй',
- 'FFF' : 'ÐелÑй'
- },
-
- scayt :
- {
- title : 'ÐÑовеÑка ÐÑÑогÑаÑии по ÐеÑе Ðвода',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'ÐклÑÑиÑÑ ÐÐÐÐ',
- disable : 'ÐÑклÑÑиÑÑ ÐÐÐÐ',
- about : 'Ð ÐÐÐÐ',
- toggle : 'ÐеÑеклÑÑиÑÑ ÐÐÐÐ',
- options : 'ÐаÑÑÑойки',
- langs : 'ЯзÑки',
- moreSuggestions : 'ÐолÑÑе ваÑианÑов',
- ignore : 'ÐÑопÑÑÑиÑÑ',
- ignoreAll : 'ÐÑопÑÑÑиÑÑ Ð²ÑÑ',
- addWord : 'ÐобавиÑÑ Ñлово',
- emptyDic : 'ÐÐ¼Ñ ÑловаÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ Ð½Ðµ пÑÑÑÑм.',
-
- optionsTab : 'ÐаÑÑÑойки',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'ЯзÑки',
-
- dictionariesTab : 'СловаÑи',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Ð ÑловаÑÑÑ
'
- },
-
- about :
- {
- title : 'РпÑогÑамме CKEditor',
- dlgTitle : 'РпÑогÑамме CKEditor',
- moreInfo : 'Ðо вопÑоÑам лиÑензиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑаÑайÑеÑÑ Ð½Ð° Ð½Ð°Ñ ÑайÑ:',
- copy : 'Copyright © $1. ÐÑе пÑава заÑиÑенÑ.'
- },
-
- maximize : 'ÐакÑимизиÑоваÑÑ',
- minimize : 'ÐинимизиÑоваÑÑ',
-
- fakeobjects :
- {
- anchor : 'ЯкоÑÑ',
- flash : 'Flash-анимаÑиÑ',
- div : 'РазÑÑв ÑÑÑаниÑÑ',
- unknown : 'ÐеизвеÑÑнÑй обÑекÑ'
- },
-
- resize : 'ÐеÑеÑаÑиÑе Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑа',
-
- colordialog :
- {
- title : 'ÐÑбеÑиÑе ÑвеÑ',
- options : 'Color Options', // MISSING
- highlight : 'ÐÑделиÑÑ',
- selected : 'ÐÑбÑанное',
- clear : 'ÐÑиÑÑиÑÑ'
- },
-
- toolbarCollapse : 'СвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',
- toolbarExpand : 'РазвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object for the
+ * Russian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ru' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'ÐизÑалÑнÑй ÑедакÑÐ¾Ñ ÑекÑÑа',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'нажмиÑе ALT-0 Ð´Ð»Ñ Ð¾ÑкÑÑÑÐ¸Ñ ÑпÑавки',
+
+ browseServer: 'ÐÑÐ±Ð¾Ñ Ð½Ð° ÑеÑвеÑе',
+ url: 'СÑÑлка',
+ protocol: 'ÐÑоÑокол',
+ upload: 'ÐагÑÑзка',
+ uploadSubmit: 'ÐагÑÑзиÑÑ Ð½Ð° ÑеÑвеÑ',
+ image: 'ÐзобÑажение',
+ flash: 'Flash',
+ form: 'ФоÑма',
+ checkbox: 'Ð¤Ð»Ð°Ð³Ð¾Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°',
+ radio: 'Ðнопка вÑбоÑа',
+ textField: 'ТекÑÑовое поле',
+ textarea: 'ÐногоÑÑÑоÑное ÑекÑÑовое поле',
+ hiddenField: 'СкÑÑÑое поле',
+ button: 'Ðнопка',
+ select: 'СпиÑок вÑбоÑа',
+ imageButton: 'ÐзобÑажение-кнопка',
+ notSet: '<не Ñказано>',
+ id: 'ÐденÑиÑикаÑоÑ',
+ name: 'ÐмÑ',
+ langDir: 'ÐапÑавление ÑекÑÑа',
+ langDirLtr: 'Слева напÑаво (LTR)',
+ langDirRtl: 'СпÑава налево (RTL)',
+ langCode: 'Ðод ÑзÑка',
+ longDescr: 'Ðлинное опиÑание ÑÑÑлки',
+ cssClass: 'ÐлаÑÑ CSS',
+ advisoryTitle: 'Ðаголовок',
+ cssStyle: 'СÑилÑ',
+ ok: 'ÐÐ',
+ cancel: 'ÐÑмена',
+ close: 'ÐакÑÑÑÑ',
+ preview: 'ÐÑедпÑоÑмоÑÑ',
+ resize: 'ÐеÑеÑаÑиÑе Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑа',
+ generalTab: 'ÐÑновное',
+ advancedTab: 'ÐополниÑелÑно',
+ validateNumberFailed: 'ÐÑо знаÑение не ÑвлÑеÑÑÑ ÑиÑлом.',
+ confirmNewPage: 'ÐеÑоÑ
ÑанÑннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ! ÐÑ Ð´ÐµÐ¹ÑÑвиÑелÑно желаеÑе пеÑейÑи на дÑÑгÑÑ ÑÑÑаниÑÑ?',
+ confirmCancel: 'ÐекоÑоÑÑе паÑамеÑÑÑ Ð±Ñли измененÑ. ÐÑ ÑвеÑенÑ, ÑÑо желаеÑе закÑÑÑÑ Ð±ÐµÐ· ÑоÑ
ÑанениÑ?',
+ options: 'ÐаÑамеÑÑÑ',
+ target: 'ЦелÑ',
+ targetNew: 'Ðовое окно (_blank)',
+ targetTop: 'Ðлавное окно (_top)',
+ targetSelf: 'ТекÑÑее окно (_self)',
+ targetParent: 'РодиÑелÑÑкое окно (_parent)',
+ langDirLTR: 'Слева напÑаво (LTR)',
+ langDirRTL: 'СпÑава налево (RTL)',
+ styles: 'СÑилÑ',
+ cssClasses: 'ÐлаÑÑÑ CSS',
+ width: 'ШиÑина',
+ height: 'ÐÑÑоÑа',
+ align: 'ÐÑÑавнивание',
+ alignLeft: 'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
+ alignRight: 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
+ alignCenter: 'Ðо ÑенÑÑÑ',
+ alignTop: 'Ðо веÑÑ
Ñ',
+ alignMiddle: 'Ðо ÑеÑедине',
+ alignBottom: 'Ðо низÑ',
+ invalidValue : 'ÐедопÑÑÑимое знаÑение.',
+ invalidHeight: 'ÐÑÑоÑа задаеÑÑÑ ÑиÑлом.',
+ invalidWidth: 'ШиÑина задаеÑÑÑ ÑиÑлом.',
+ invalidCssLength: 'ÐнаÑение, Ñказанное в поле "%1", должно бÑÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑм ÑелÑм ÑиÑлом. ÐопÑÑкаеÑÑÑ Ñказание ÐµÐ´Ð¸Ð½Ð¸Ñ Ð¼ÐµÑÑ CSS (px, %, in, cm, mm, em, ex, pt или pc).',
+ invalidHtmlLength: 'ÐнаÑение, Ñказанное в поле "%1", должно бÑÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑм ÑелÑм ÑиÑлом. ÐопÑÑкаеÑÑÑ Ñказание ÐµÐ´Ð¸Ð½Ð¸Ñ Ð¼ÐµÑÑ HTML (px или %).',
+ invalidInlineStyle: 'ÐнаÑение, Ñказанное Ð´Ð»Ñ ÑÑÐ¸Ð»Ñ ÑлеменÑа, должно ÑоÑÑоÑÑÑ Ð¸Ð· одной или неÑколÑкиÑ
Ð¿Ð°Ñ Ð´Ð°Ð½Ð½ÑÑ
в ÑоÑмаÑе "паÑамеÑÑ : знаÑение", ÑазделÑннÑÑ
ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой.',
+ cssLengthTooltip: 'ÐведиÑе знаÑение в пикÑелÑÑ
, либо ÑиÑло Ñ ÐºÐ¾ÑÑекÑной единиÑей меÑÑ CSS (px, %, in, cm, mm, em, ex, pt или pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, недоÑÑÑпно</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/sk.js b/devel/third-party/ckeditor/lang/sk.js
index b2cea43..2a4c7f6 100644
--- a/devel/third-party/ckeditor/lang/sk.js
+++ b/devel/third-party/ckeditor/lang/sk.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Slovak language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['sk'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Zdroj',
- newPage : 'Nová stránka',
- save : 'Uložiť',
- preview : 'Náhľad',
- cut : 'Vystrihnúť',
- copy : 'KopÃrovaÅ¥',
- paste : 'Vložiť',
- print : 'TlaÄ',
- underline : 'PodÄiarknuté',
- bold : 'TuÄné',
- italic : 'KurzÃva',
- selectAll : 'Vybrať všetko',
- removeFormat : 'Odstrániť formátovanie',
- strike : 'PreÄiarknuté',
- subscript : 'Dolný index',
- superscript : 'Horný index',
- horizontalrule : 'VložiÅ¥ vodorovnú Äiaru',
- pagebreak : 'VložiÅ¥ oddeľovaÄ stránky',
- unlink : 'Odstrániť odkaz',
- undo : 'Späť',
- redo : 'Znovu',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Prechádzať server',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Odoslať',
- uploadSubmit : 'Odoslať na server',
- image : 'Obrázok',
- flash : 'Flash',
- form : 'Formulár',
- checkbox : 'ZaÅ¡krtávacie polÃÄko',
- radio : 'PrepÃnaÄ',
- textField : 'Textové pole',
- textarea : 'Textová oblasť',
- hiddenField : 'Skryté pole',
- button : 'TlaÄidlo',
- select : 'Rozbaľovacà zoznam',
- imageButton : 'Obrázkové tlaÄidlo',
- notSet : '<nenastavené>',
- id : 'Id',
- name : 'Meno',
- langDir : 'Orientácia jazyka',
- langDirLtr : 'Zľava doprava (LTR)',
- langDirRtl : 'Sprava doľava (RTL)',
- langCode : 'Kód jazyka',
- longDescr : 'Dlhý popis URL',
- cssClass : 'Trieda štýlu',
- advisoryTitle : 'Pomocný titulok',
- cssStyle : 'Štýl',
- ok : 'OK',
- cancel : 'Zrušiť',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Hlavné',
- advancedTab : 'RozÅ¡Ãrené',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Vložiť špeciálne znaky',
- title : 'Výber špeciálneho znaku',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Vložiť/zmeniť odkaz',
- other : '<iný>',
- menu : 'Zmeniť odkaz',
- title : 'Odkaz',
- info : 'Informácie o odkaze',
- target : 'Cieľ',
- upload : 'Odoslať',
- advanced : 'RozÅ¡Ãrené',
- type : 'Typ odkazu',
- toUrl : 'URL', // MISSING
- toAnchor : 'Kotva v tejto stránke',
- toEmail : 'E-Mail',
- targetFrame : '<rámec>',
- targetPopup : '<vyskakovacie okno>',
- targetFrameName : 'Meno rámu cieľa',
- targetPopupName : 'Názov vyskakovacieho okna',
- popupFeatures : 'Vlastnosti vyskakovacieho okna',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Stavový riadok',
- popupLocationBar: 'Panel umiestnenia',
- popupToolbar : 'Panel nástrojov',
- popupMenuBar : 'Panel ponuky',
- popupFullScreen : 'Celá obrazovka (IE)',
- popupScrollBars : 'PosuvnÃky',
- popupDependent : 'Závislosť (Netscape)',
- popupWidth : 'Å Ãrka',
- popupLeft : 'Ľavý okraj',
- popupHeight : 'Výška',
- popupTop : 'Horný okraj',
- id : 'Id', // MISSING
- langDir : 'Orientácia jazyka',
- langDirLTR : 'Zľava doprava (LTR)',
- langDirRTL : 'Sprava doľava (RTL)',
- acccessKey : 'PrÃstupový kľúÄ',
- name : 'Meno',
- langCode : 'Orientácia jazyka',
- tabIndex : 'Poradie prvku',
- advisoryTitle : 'Pomocný titulok',
- advisoryContentType : 'Pomocný typ obsahu',
- cssClasses : 'Trieda štýlu',
- charset : 'Priradená znaková sada',
- styles : 'Štýl',
- selectAnchor : 'Vybrať kotvu',
- anchorName : 'Podľa mena kotvy',
- anchorId : 'Podľa Id objektu',
- emailAddress : 'E-Mailová adresa',
- emailSubject : 'Predmet správy',
- emailBody : 'Telo správy',
- noAnchors : '(V stránke nie je definovaná žiadna kotva)',
- noUrl : 'Zadajte prosÃm URL odkazu',
- noEmail : 'Zadajte prosÃm e-mailovú adresu'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Vložiť/zmeniť kotvu',
- menu : 'Vlastnosti kotvy',
- title : 'Vlastnosti kotvy',
- name : 'Meno kotvy',
- errorName : 'Zadajte prosÃm meno kotvy'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Nájsť a nahradiť',
- find : 'Hľadať',
- replace : 'Nahradiť',
- findWhat : 'Äo hľadaÅ¥:',
- replaceWith : 'ÄÃm nahradiÅ¥:',
- notFoundMsg : 'Hľadaný text nebol nájdený.',
- matchCase : 'RozliÅ¡ovaÅ¥ malé/veľké pÃsmená',
- matchWord : 'Len celé slová',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Nahradiť všetko',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabuľka',
- title : 'Vlastnosti tabuľky',
- menu : 'Vlastnosti tabuľky',
- deleteTable : 'Vymazať tabuľku',
- rows : 'Riadky',
- columns : 'Stĺpce',
- border : 'OhraniÄenie',
- align : 'Zarovnanie',
- alignLeft : 'Vľavo',
- alignCenter : 'Na stred',
- alignRight : 'Vpravo',
- width : 'Å Ãrka',
- widthPx : 'pixelov',
- widthPc : 'percent',
- widthUnit : 'width unit', // MISSING
- height : 'Výška',
- cellSpace : 'Vzdialenosť buniek',
- cellPad : 'Odsadenie obsahu',
- caption : 'Popis',
- summary : 'Prehľad',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Bunka',
- insertBefore : 'Vložiť bunku pred',
- insertAfter : 'Vložiť bunku za',
- deleteCell : 'Vymazať bunky',
- merge : 'ZlúÄiÅ¥ bunky',
- mergeRight : 'ZlúÄiÅ¥ doprava',
- mergeDown : 'ZlúÄiÅ¥ dole',
- splitHorizontal : 'Rozdeliť bunky horizontálne',
- splitVertical : 'Rozdeliť bunky vertikálne',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Riadok',
- insertBefore : 'Vložiť riadok za',
- insertAfter : 'Vložiť riadok pred',
- deleteRow : 'Vymazať riadok'
- },
-
- column :
- {
- menu : 'Stĺpec',
- insertBefore : 'Vložiť stĺpec za',
- insertAfter : 'Vložiť stĺpec pred',
- deleteColumn : 'Zmazať stĺpec'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Vlastnosti tlaÄidla',
- text : 'Text',
- type : 'Typ',
- typeBtn : 'TlaÄidlo',
- typeSbm : 'Odoslať',
- typeRst : 'Vymazať'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Vlastnosti zaÅ¡krtávacieho polÃÄka',
- radioTitle : 'Vlastnosti prepÃnaÄa',
- value : 'Hodnota',
- selected : 'Vybrané'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Vlastnosti formulára',
- menu : 'Vlastnosti formulára',
- action : 'Akcie',
- method : 'Metóda',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Vlastnosti rozbaľovacieho zoznamu',
- selectInfo : 'Info',
- opAvail : 'Dostupné možnosti',
- value : 'Hodnota',
- size : 'Veľkosť',
- lines : 'riadkov',
- chkMulti : 'Povoliť viacnásobný výber',
- opText : 'Text',
- opValue : 'Hodnota',
- btnAdd : 'Pridať',
- btnModify : 'Zmeniť',
- btnUp : 'Hore',
- btnDown : 'Dole',
- btnSetValue : 'Nastaviť ako vybranú hodnotu',
- btnDelete : 'Zmazať'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Vlastnosti textovej oblasti',
- cols : 'Stĺpce',
- rows : 'Riadky'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Vlastnosti textového poľa',
- name : 'Názov',
- value : 'Hodnota',
- charWidth : 'Å Ãrka pola (znakov)',
- maxChars : 'Maximálny poÄet znakov',
- type : 'Typ',
- typeText : 'Text',
- typePass : 'Heslo'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Vlastnosti skrytého poľa',
- name : 'Názov',
- value : 'Hodnota'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Vlastnosti obrázku',
- titleButton : 'Vlastnosti obrázkového tlaÄidla',
- menu : 'Vlastnosti obrázku',
- infoTab : 'Informácie o obrázku',
- btnUpload : 'Odoslať na server',
- upload : 'Odoslať',
- alt : 'AlternatÃvny text',
- width : 'Å Ãrka',
- height : 'Výška',
- lockRatio : 'Zámok',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Pôvodná veľkosť',
- border : 'Okraje',
- hSpace : 'H-medzera',
- vSpace : 'V-medzera',
- align : 'Zarovnanie',
- alignLeft : 'Vľavo',
- alignRight : 'Vpravo',
- alertUrl : 'Zadajte prosÃm URL obrázku',
- linkTab : 'Odkaz',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Vlastnosti Flashu',
- propertiesTab : 'Properties', // MISSING
- title : 'Vlastnosti Flashu',
- chkPlay : 'Automatické prehrávanie',
- chkLoop : 'Opakovanie',
- chkMenu : 'Povoliť Flash Menu',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Mierka',
- scaleAll : 'Zobraziť mierku',
- scaleNoBorder : 'Bez okrajov',
- scaleFit : 'Roztiahnuť na celé',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Zarovnanie',
- alignLeft : 'Vľavo',
- alignAbsBottom : 'Ãplne dole',
- alignAbsMiddle : 'Do stredu',
- alignBaseline : 'Na základÅu',
- alignBottom : 'Dole',
- alignMiddle : 'Na stred',
- alignRight : 'Vpravo',
- alignTextTop : 'Na horný okraj textu',
- alignTop : 'Nahor',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Farba pozadia',
- width : 'Å Ãrka',
- height : 'Výška',
- hSpace : 'H-medzera',
- vSpace : 'V-medzera',
- validateSrc : 'Zadajte prosÃm URL odkazu',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Kontrola pravopisu',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Nie je v slovnÃku',
- changeTo : 'Zmeniť na',
- btnIgnore : 'Ignorovať',
- btnIgnoreAll : 'Ignorovať všetko',
- btnReplace : 'PrepÃsat',
- btnReplaceAll : 'PrepÃsat vÅ¡etko',
- btnUndo : 'Späť',
- noSuggestions : '- Žiadny návrh -',
- progress : 'Prebieha kontrola pravopisu...',
- noMispell : 'Kontrola pravopisu dokonÄená: bez chýb',
- noChanges : 'Kontrola pravopisu dokonÄená: žiadne slová nezmenené',
- oneChange : 'Kontrola pravopisu dokonÄená: zmenené jedno slovo',
- manyChanges : 'Kontrola pravopisu dokonÄená: zmenených %1 slov',
- ieSpellDownload : 'Kontrola pravopisu nie je naiÅ¡talovaná. Chcete ju hneÄ stiahnuÅ¥?'
- },
-
- smiley :
- {
- toolbar : 'SmajlÃky',
- title : 'Vkladanie smajlÃkov',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ÄÃslovanie',
- bulletedlist : 'Odrážky',
- indent : 'ZväÄÅ¡iÅ¥ odsadenie',
- outdent : 'Zmenšiť odsadenie',
-
- justify :
- {
- left : 'Zarovnať vľavo',
- center : 'Zarovnať na stred',
- right : 'Zarovnať vpravo',
- block : 'Zarovnať do bloku'
- },
-
- blockquote : 'Citácia',
-
- clipboard :
- {
- title : 'Vložiť',
- cutError : 'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre vystrihnutie zvoleného textu do schránky. ProsÃm vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl/Cmd+X).',
- copyError : 'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre kopÃrovanie zvoleného textu do schránky. ProsÃm skopÃrujte zvolený text do schránky pomocou klávesnice (Ctrl/Cmd+C).',
- pasteMsg : 'ProsÃm vložte nasledovný rámÄek použitÃm klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stlaÄte <STRONG>OK</STRONG>.',
- securityMsg : 'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru pristupovaÅ¥ priamo k datám v schránke. MusÃte ich vložiÅ¥ znovu do tohto okna.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Vložiť z Wordu',
- title : 'Vložiť z Wordu',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'VložiÅ¥ ako Äistý text',
- title : 'VložiÅ¥ ako Äistý text'
- },
-
- templates :
- {
- button : 'Šablóny',
- title : 'Šablóny obsahu',
- options : 'Template Options', // MISSING
- insertOption : 'Nahradiť aktuálny obsah',
- selectPromptMsg : 'ProsÃm vyberte Å¡ablóny na otvorenie v editore<br>(súšasný obsah bude stratený):',
- emptyListMsg : '(žiadne šablóny nenájdené)'
- },
-
- showBlocks : 'Ukázať bloky',
-
- stylesCombo :
- {
- label : 'Štýl',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Formát',
- panelTitle : 'Formát',
-
- tag_p : 'Normálny',
- tag_pre : 'Formátovaný',
- tag_address : 'Adresa',
- tag_h1 : 'Nadpis 1',
- tag_h2 : 'Nadpis 2',
- tag_h3 : 'Nadpis 3',
- tag_h4 : 'Nadpis 4',
- tag_h5 : 'Nadpis 5',
- tag_h6 : 'Nadpis 6',
- tag_div : 'Odsek (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'PÃsmo',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'PÃsmo'
- },
-
- fontSize :
- {
- label : 'Veľkosť',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Veľkosť'
- },
-
- colorButton :
- {
- textColorTitle : 'Farba textu',
- bgColorTitle : 'Farba pozadia',
- panelTitle : 'Colors', // MISSING
- auto : 'Automaticky',
- more : 'Viac farieb...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Slovak language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'sk' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Editor formátovaného textu',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'StlaÄte ALT 0 pre nápovedu',
+
+ browseServer: 'Prechádzať server',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Odoslať',
+ uploadSubmit: 'Odoslať na server',
+ image: 'Obrázok',
+ flash: 'Flash',
+ form: 'Formulár',
+ checkbox: 'ZaÅ¡krtávacie polÃÄko',
+ radio: 'PrepÃnaÄ',
+ textField: 'Textové pole',
+ textarea: 'Textová oblasť',
+ hiddenField: 'Skryté pole',
+ button: 'TlaÄidlo',
+ select: 'Rozbaľovacà zoznam',
+ imageButton: 'Obrázkové tlaÄidlo',
+ notSet: '<nenastavené>',
+ id: 'Id',
+ name: 'Meno',
+ langDir: 'Orientácia jazyka',
+ langDirLtr: 'Zľava doprava (LTR)',
+ langDirRtl: 'Sprava doľava (RTL)',
+ langCode: 'Kód jazyka',
+ longDescr: 'Dlhý popis URL',
+ cssClass: 'Trieda štýlu',
+ advisoryTitle: 'Pomocný titulok',
+ cssStyle: 'Štýl',
+ ok: 'OK',
+ cancel: 'Zrušiť',
+ close: 'Zatvorit',
+ preview: 'Náhľad',
+ resize: 'Zmeniť veľkosť',
+ generalTab: 'Hlavné',
+ advancedTab: 'RozÅ¡Ãrené',
+ validateNumberFailed: 'Hodnota nieje ÄÃslo.',
+ confirmNewPage: 'Prajete si naÄÃtat novú stránku? VÅ¡etky neuložené zmeny budú stratené. ',
+ confirmCancel: 'Niektore možnosti boli zmenené. Naozaj chcete zavrieť okno?',
+ options: 'Možnosti',
+ target: 'Cieľ',
+ targetNew: 'Nové okno (_blank)',
+ targetTop: 'Najvrchnejšie okno (_top)',
+ targetSelf: 'To isté okno (_self)',
+ targetParent: 'RodiÄovské okno (_parent)',
+ langDirLTR: 'Zľava doprava (LTR)',
+ langDirRTL: 'Sprava doľava (RTL)',
+ styles: 'Štýl',
+ cssClasses: 'Triedy štýlu',
+ width: 'Å Ãrka',
+ height: 'Výška',
+ align: 'Zarovnanie',
+ alignLeft: 'Vľavo',
+ alignRight: 'Vpravo',
+ alignCenter: 'Na stred',
+ alignTop: 'Nahor',
+ alignMiddle: 'Na stred',
+ alignBottom: 'Dole',
+ invalidValue : 'Neplatná hodnota.',
+ invalidHeight: 'Výška musà byÅ¥ ÄÃslo.',
+ invalidWidth: 'Å Ãrka musà byÅ¥ ÄÃslo.',
+ invalidCssLength: 'Å pecifikovaná hodnota pre pole "%1" musà byÅ¥ kladné ÄÃslo s alebo bez platnej CSS mernej jednotky (px, %, in, cm, mm, em, ex, pt alebo pc).',
+ invalidHtmlLength: 'Å pecifikovaná hodnota pre pole "%1" musà byÅ¥ kladné ÄÃslo s alebo bez platnej HTML mernej jednotky (px alebo %).',
+ invalidInlineStyle: 'Zadaná hodnota pre inline Å¡týl musà pozostávaÅ¥ s jedného, alebo viac dvojÃc formátu "názov: hodnota", oddelených bodkoÄiarkou.',
+ cssLengthTooltip: 'Vložte ÄÃslo pre hodnotu v pixeloch alebo ÄÃslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nedostupný</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/sl.js b/devel/third-party/ckeditor/lang/sl.js
index 8bb40b7..8526855 100644
--- a/devel/third-party/ckeditor/lang/sl.js
+++ b/devel/third-party/ckeditor/lang/sl.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Slovenian language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['sl'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Izvorna koda',
- newPage : 'Nova stran',
- save : 'Shrani',
- preview : 'Predogled',
- cut : 'Izreži',
- copy : 'Kopiraj',
- paste : 'Prilepi',
- print : 'Natisni',
- underline : 'PodÄrtano',
- bold : 'Krepko',
- italic : 'LežeÄe',
- selectAll : 'Izberi vse',
- removeFormat : 'Odstrani oblikovanje',
- strike : 'PreÄrtano',
- subscript : 'Podpisano',
- superscript : 'Nadpisano',
- horizontalrule : 'Vstavi vodoravno Ärto',
- pagebreak : 'Vstavi prelom strani',
- unlink : 'Odstrani povezavo',
- undo : 'Razveljavi',
- redo : 'Ponovi',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Prebrskaj na strežniku',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Prenesi',
- uploadSubmit : 'Pošlji na strežnik',
- image : 'Slika',
- flash : 'Flash',
- form : 'Obrazec',
- checkbox : 'Potrditveno polje',
- radio : 'Izbirno polje',
- textField : 'Vnosno polje',
- textarea : 'Vnosno obmoÄje',
- hiddenField : 'Skrito polje',
- button : 'Gumb',
- select : 'Spustni seznam',
- imageButton : 'Gumb s sliko',
- notSet : '<ni postavljen>',
- id : 'Id',
- name : 'Ime',
- langDir : 'Smer jezika',
- langDirLtr : 'Od leve proti desni (LTR)',
- langDirRtl : 'Od desne proti levi (RTL)',
- langCode : 'Oznaka jezika',
- longDescr : 'Dolg opis URL-ja',
- cssClass : 'Razred stilne predloge',
- advisoryTitle : 'Predlagani naslov',
- cssStyle : 'Slog',
- ok : 'V redu',
- cancel : 'PrekliÄi',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'Splošno',
- advancedTab : 'Napredno',
- validateNumberFailed : 'Ta vrednost ni število.',
- confirmNewPage : 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali gotovo želiš naložiti novo stran?',
- confirmCancel : 'Nekaj možnosti je bilo spremenjenih. Ali gotovo želiš zapreti okno?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, nedosegljiv</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Vstavi posebni znak',
- title : 'Izberi posebni znak',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Vstavi/uredi povezavo',
- other : '<drug>',
- menu : 'Uredi povezavo',
- title : 'Povezava',
- info : 'Podatki o povezavi',
- target : 'Cilj',
- upload : 'Prenesi',
- advanced : 'Napredno',
- type : 'Vrsta povezave',
- toUrl : 'URL', // MISSING
- toAnchor : 'Zaznamek na tej strani',
- toEmail : 'Elektronski naslov',
- targetFrame : '<okvir>',
- targetPopup : '<pojavno okno>',
- targetFrameName : 'Ime ciljnega okvirja',
- targetPopupName : 'Ime pojavnega okna',
- popupFeatures : 'ZnaÄilnosti pojavnega okna',
- popupResizable : 'Spremenljive velikosti',
- popupStatusBar : 'Vrstica stanja',
- popupLocationBar: 'Naslovna vrstica',
- popupToolbar : 'Orodna vrstica',
- popupMenuBar : 'Menijska vrstica',
- popupFullScreen : 'Celozaslonska slika (IE)',
- popupScrollBars : 'Drsniki',
- popupDependent : 'Podokno (Netscape)',
- popupWidth : 'Å irina',
- popupLeft : 'Lega levo',
- popupHeight : 'Višina',
- popupTop : 'Lega na vrhu',
- id : 'Id',
- langDir : 'Smer jezika',
- langDirLTR : 'Od leve proti desni (LTR)',
- langDirRTL : 'Od desne proti levi (RTL)',
- acccessKey : 'Vstopno geslo',
- name : 'Ime',
- langCode : 'Smer jezika',
- tabIndex : 'Å tevilka tabulatorja',
- advisoryTitle : 'Predlagani naslov',
- advisoryContentType : 'Predlagani tip vsebine (content-type)',
- cssClasses : 'Razred stilne predloge',
- charset : 'Kodna tabela povezanega vira',
- styles : 'Slog',
- selectAnchor : 'Izberi zaznamek',
- anchorName : 'Po imenu zaznamka',
- anchorId : 'Po ID-ju elementa',
- emailAddress : 'Elektronski naslov',
- emailSubject : 'Predmet sporoÄila',
- emailBody : 'Vsebina sporoÄila',
- noAnchors : '(V tem dokumentu ni zaznamkov)',
- noUrl : 'Vnesite URL povezave',
- noEmail : 'Vnesite elektronski naslov'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Vstavi/uredi zaznamek',
- menu : 'Lastnosti zaznamka',
- title : 'Lastnosti zaznamka',
- name : 'Ime zaznamka',
- errorName : 'Prosim vnesite ime zaznamka'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Najdi in zamenjaj',
- find : 'Najdi',
- replace : 'Zamenjaj',
- findWhat : 'Najdi:',
- replaceWith : 'Zamenjaj z:',
- notFoundMsg : 'Navedeno besedilo ni bilo najdeno.',
- matchCase : 'Razlikuj velike in male Ärke',
- matchWord : 'Samo cele besede',
- matchCyclic : 'Primerjaj znake v cirilici',
- replaceAll : 'Zamenjaj vse',
- replaceSuccessMsg : '%1 pojavitev je bilo zamenjano.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabela',
- title : 'Lastnosti tabele',
- menu : 'Lastnosti tabele',
- deleteTable : 'Izbriši tabelo',
- rows : 'Vrstice',
- columns : 'Stolpci',
- border : 'Velikost obrobe',
- align : 'Poravnava',
- alignLeft : 'Levo',
- alignCenter : 'Sredinsko',
- alignRight : 'Desno',
- width : 'Å irina',
- widthPx : 'pik',
- widthPc : 'procentov',
- widthUnit : 'width unit', // MISSING
- height : 'Višina',
- cellSpace : 'Razmik med celicami',
- cellPad : 'Polnilo med celicami',
- caption : 'Naslov',
- summary : 'Povzetek',
- headers : 'Glave',
- headersNone : 'Brez',
- headersColumn : 'Prvi stolpec',
- headersRow : 'Prva vrstica',
- headersBoth : 'Oboje',
- invalidRows : 'Å tevilo vrstic mora biti veÄje od 0.',
- invalidCols : 'Å tevilo stolpcev mora biti veÄje od 0.',
- invalidBorder : 'Širina obrobe mora biti število.',
- invalidWidth : 'Širina tabele mora biti število.',
- invalidHeight : 'Višina tabele mora biti število.',
- invalidCellSpacing : 'Razmik med celicami mora biti število.',
- invalidCellPadding : 'Zamik celic mora biti število',
-
- cell :
- {
- menu : 'Celica',
- insertBefore : 'Vstavi celico pred',
- insertAfter : 'Vstavi celico za',
- deleteCell : 'Izbriši celice',
- merge : 'Združi celice',
- mergeRight : 'Združi desno',
- mergeDown : 'Druži navzdol',
- splitHorizontal : 'Razdeli celico vodoravno',
- splitVertical : 'Razdeli celico navpiÄno',
- title : 'Lastnosti celice',
- cellType : 'Vrsta celice',
- rowSpan : 'Razpon vrstic',
- colSpan : 'Razpon stolpcev',
- wordWrap : 'Prelom besedila',
- hAlign : 'Vodoravna poravnava',
- vAlign : 'NavpiÄna poravnava',
- alignTop : 'Vrh',
- alignMiddle : 'Sredina',
- alignBottom : 'Dno',
- alignBaseline : 'Osnovnica',
- bgColor : 'Barva ozadja',
- borderColor : 'Barva obrobe',
- data : 'Podatki',
- header : 'Glava',
- yes : 'Da',
- no : 'Ne',
- invalidWidth : 'Širina celice mora biti število.',
- invalidHeight : 'Višina celice mora biti število.',
- invalidRowSpan : 'Razpon vrstic mora biti celo število.',
- invalidColSpan : 'Razpon stolpcev mora biti celo število.',
- chooseColor : 'Izberi'
- },
-
- row :
- {
- menu : 'Vrstica',
- insertBefore : 'Vstavi vrstico pred',
- insertAfter : 'Vstavi vrstico za',
- deleteRow : 'Izbriši vrstice'
- },
-
- column :
- {
- menu : 'Stolpec',
- insertBefore : 'Vstavi stolpec pred',
- insertAfter : 'Vstavi stolpec za',
- deleteColumn : 'Izbriši stolpce'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Lastnosti gumba',
- text : 'Besedilo (Vrednost)',
- type : 'Tip',
- typeBtn : 'Gumb',
- typeSbm : 'Potrdi',
- typeRst : 'Ponastavi'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Lastnosti potrditvenega polja',
- radioTitle : 'Lastnosti izbirnega polja',
- value : 'Vrednost',
- selected : 'Izbrano'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Lastnosti obrazca',
- menu : 'Lastnosti obrazca',
- action : 'Akcija',
- method : 'Metoda',
- encoding : 'Kodiranje znakov'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Lastnosti spustnega seznama',
- selectInfo : 'Podatki',
- opAvail : 'Razpoložljive izbire',
- value : 'Vrednost',
- size : 'Velikost',
- lines : 'vrstic',
- chkMulti : 'Dovoli izbor veÄih vrstic',
- opText : 'Besedilo',
- opValue : 'Vrednost',
- btnAdd : 'Dodaj',
- btnModify : 'Spremeni',
- btnUp : 'Gor',
- btnDown : 'Dol',
- btnSetValue : 'Postavi kot privzeto izbiro',
- btnDelete : 'Izbriši'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Lastnosti vnosnega obmoÄja',
- cols : 'Stolpcev',
- rows : 'Vrstic'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Lastnosti vnosnega polja',
- name : 'Ime',
- value : 'Vrednost',
- charWidth : 'Dolžina',
- maxChars : 'NajveÄje Å¡tevilo znakov',
- type : 'Tip',
- typeText : 'Besedilo',
- typePass : 'Geslo'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Lastnosti skritega polja',
- name : 'Ime',
- value : 'Vrednost'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Lastnosti slike',
- titleButton : 'Lastnosti gumba s sliko',
- menu : 'Lastnosti slike',
- infoTab : 'Podatki o sliki',
- btnUpload : 'Pošlji na strežnik',
- upload : 'Pošlji',
- alt : 'Nadomestno besedilo',
- width : 'Å irina',
- height : 'Višina',
- lockRatio : 'Zakleni razmerje',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Ponastavi velikost',
- border : 'Obroba',
- hSpace : 'Vodoravni razmik',
- vSpace : 'NavpiÄni razmik',
- align : 'Poravnava',
- alignLeft : 'Levo',
- alignRight : 'Desno',
- alertUrl : 'Vnesite URL slike',
- linkTab : 'Povezava',
- button2Img : 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?',
- img2Button : 'Želiš pretvoriti izbrano sliko v gumb s sliko?',
- urlMissing : 'Manjka vir (URL) slike.',
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Lastnosti Flash',
- propertiesTab : 'Lastnosti',
- title : 'Lastnosti Flash',
- chkPlay : 'Samodejno predvajaj',
- chkLoop : 'Ponavljanje',
- chkMenu : 'OmogoÄi Flash Meni',
- chkFull : 'Dovoli celozaslonski naÄin',
- scale : 'PoveÄava',
- scaleAll : 'Pokaži vse',
- scaleNoBorder : 'Brez obrobe',
- scaleFit : 'NatanÄno prileganje',
- access : 'Dostop skript',
- accessAlways : 'Vedno',
- accessSameDomain: 'Samo ista domena',
- accessNever : 'Nikoli',
- align : 'Poravnava',
- alignLeft : 'Levo',
- alignAbsBottom : 'Popolnoma na dno',
- alignAbsMiddle : 'Popolnoma v sredino',
- alignBaseline : 'Na osnovno Ärto',
- alignBottom : 'Na dno',
- alignMiddle : 'V sredino',
- alignRight : 'Desno',
- alignTextTop : 'Besedilo na vrh',
- alignTop : 'Na vrh',
- quality : 'Kakovost',
- qualityBest : 'Najvišja',
- qualityHigh : 'Visoka',
- qualityAutoHigh : 'Samodejno visoka',
- qualityMedium : 'Srednja',
- qualityAutoLow : 'Samodejno nizka',
- qualityLow : 'Nizka',
- windowModeWindow: 'Okno',
- windowModeOpaque: 'Motno',
- windowModeTransparent : 'Prosojno',
- windowMode : 'Vrsta okna',
- flashvars : 'Spremenljivke za Flash',
- bgcolor : 'Barva ozadja',
- width : 'Å irina',
- height : 'Višina',
- hSpace : 'Vodoravni razmik',
- vSpace : 'NavpiÄni razmik',
- validateSrc : 'Vnesite URL povezave',
- validateWidth : 'Širina mora biti število.',
- validateHeight : 'Višina mora biti število.',
- validateHSpace : 'Vodoravni razmik mora biti število.',
- validateVSpace : 'NavpiÄni razmik mora biti Å¡tevilo.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Preveri Ärkovanje',
- title : 'Ärkovalnik',
- notAvailable : 'Oprostite, storitev trenutno ni dosegljiva.',
- errorLoading : 'Napaka pri nalaganju storitve programa na naslovu %s.',
- notInDic : 'Ni v slovarju',
- changeTo : 'Spremeni v',
- btnIgnore : 'Prezri',
- btnIgnoreAll : 'Prezri vse',
- btnReplace : 'Zamenjaj',
- btnReplaceAll : 'Zamenjaj vse',
- btnUndo : 'Razveljavi',
- noSuggestions : '- Ni predlogov -',
- progress : 'Preverjanje Ärkovanja se izvaja...',
- noMispell : 'Ärkovanje je konÄano: Brez napak',
- noChanges : 'Ärkovanje je konÄano: Nobena beseda ni bila spremenjena',
- oneChange : 'Ärkovanje je konÄano: Spremenjena je bila ena beseda',
- manyChanges : 'Ärkovanje je konÄano: Spremenjenih je bilo %1 besed',
- ieSpellDownload : 'Ärkovalnik ni nameÅ¡Äen. Ali ga želite prenesti sedaj?'
- },
-
- smiley :
- {
- toolbar : 'Smeško',
- title : 'Vstavi smeška',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element'
- },
-
- numberedlist : 'OÅ¡tevilÄen seznam',
- bulletedlist : 'OznaÄen seznam',
- indent : 'PoveÄaj zamik',
- outdent : 'Zmanjšaj zamik',
-
- justify :
- {
- left : 'Leva poravnava',
- center : 'Sredinska poravnava',
- right : 'Desna poravnava',
- block : 'Obojestranska poravnava'
- },
-
- blockquote : 'Citat',
-
- clipboard :
- {
- title : 'Prilepi',
- cutError : 'Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',
- copyError : 'Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).',
- pasteMsg : 'Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',
- securityMsg : 'Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odložiÅ¡Äa. Vsebino odložiÅ¡Äa ponovno prilepite v to okno.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Prilepi iz Worda',
- title : 'Prilepi iz Worda',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Prilepi kot golo besedilo',
- title : 'Prilepi kot golo besedilo'
- },
-
- templates :
- {
- button : 'Predloge',
- title : 'Vsebinske predloge',
- options : 'Template Options', // MISSING
- insertOption : 'Zamenjaj trenutno vsebino',
- selectPromptMsg : 'Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):',
- emptyListMsg : '(Ni pripravljenih predlog)'
- },
-
- showBlocks : 'Prikaži ograde',
-
- stylesCombo :
- {
- label : 'Slog',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Slogi odstavkov',
- panelTitle2 : 'Slogi besedila',
- panelTitle3 : 'Slogi objektov'
- },
-
- format :
- {
- label : 'Oblika',
- panelTitle : 'Oblika',
-
- tag_p : 'Navaden',
- tag_pre : 'Oblikovan',
- tag_address : 'Napis',
- tag_h1 : 'Naslov 1',
- tag_h2 : 'Naslov 2',
- tag_h3 : 'Naslov 3',
- tag_h4 : 'Naslov 4',
- tag_h5 : 'Naslov 5',
- tag_h6 : 'Naslov 6',
- tag_div : 'Navaden (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Pisava',
- voiceLabel : 'Pisava',
- panelTitle : 'Pisava'
- },
-
- fontSize :
- {
- label : 'Velikost',
- voiceLabel : 'Velikost',
- panelTitle : 'Velikost'
- },
-
- colorButton :
- {
- textColorTitle : 'Barva besedila',
- bgColorTitle : 'Barva ozadja',
- panelTitle : 'Colors', // MISSING
- auto : 'Samodejno',
- more : 'VeÄ barv...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Ärkovanje med tipkanjem',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'OmogoÄi SCAYT',
- disable : 'OnemogoÄi SCAYT',
- about : 'O storitvi SCAYT',
- toggle : 'Preklopi SCAYT',
- options : 'Možnosti',
- langs : 'Jeziki',
- moreSuggestions : 'VeÄ predlogov',
- ignore : 'Prezri',
- ignoreAll : 'Prezri vse',
- addWord : 'Dodaj besedo',
- emptyDic : 'Ime slovarja ne more biti prazno.',
-
- optionsTab : 'Možnosti',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Jeziki',
-
- dictionariesTab : 'Slovarji',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'O storitvi'
- },
-
- about :
- {
- title : 'O programu CKEditor',
- dlgTitle : 'O programu CKEditor',
- moreInfo : 'Za informacijo o licenci prostim obiÅ¡Äite naÅ¡o spletno stran:',
- copy : 'Copyright © $1. Vse pravice pridržane.'
- },
-
- maximize : 'Maksimiraj',
- minimize : 'Minimiraj',
-
- fakeobjects :
- {
- anchor : 'Sidro',
- flash : 'Flash animacija',
- div : 'Prelom strani',
- unknown : 'Neznan objekt'
- },
-
- resize : 'Potegni za spremembo velikosti',
-
- colordialog :
- {
- title : 'Izberi barvo',
- options : 'Color Options', // MISSING
- highlight : 'Poudarjeno',
- selected : 'Izbrano',
- clear : 'PoÄisti'
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Slovenian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'sl' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Prebrskaj na strežniku',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Prenesi',
+ uploadSubmit: 'Pošlji na strežnik',
+ image: 'Slika',
+ flash: 'Flash',
+ form: 'Obrazec',
+ checkbox: 'Potrditveno polje',
+ radio: 'Izbirno polje',
+ textField: 'Vnosno polje',
+ textarea: 'Vnosno obmoÄje',
+ hiddenField: 'Skrito polje',
+ button: 'Gumb',
+ select: 'Spustni seznam',
+ imageButton: 'Gumb s sliko',
+ notSet: '<ni postavljen>',
+ id: 'Id',
+ name: 'Ime',
+ langDir: 'Smer jezika',
+ langDirLtr: 'Od leve proti desni (LTR)',
+ langDirRtl: 'Od desne proti levi (RTL)',
+ langCode: 'Oznaka jezika',
+ longDescr: 'Dolg opis URL-ja',
+ cssClass: 'Razred stilne predloge',
+ advisoryTitle: 'Predlagani naslov',
+ cssStyle: 'Slog',
+ ok: 'V redu',
+ cancel: 'PrekliÄi',
+ close: 'Close', // MISSING
+ preview: 'Predogled',
+ resize: 'Potegni za spremembo velikosti',
+ generalTab: 'Splošno',
+ advancedTab: 'Napredno',
+ validateNumberFailed: 'Ta vrednost ni število.',
+ confirmNewPage: 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali gotovo želiš naložiti novo stran?',
+ confirmCancel: 'Nekaj možnosti je bilo spremenjenih. Ali gotovo želiš zapreti okno?',
+ options: 'Možnosti',
+ target: 'Cilj',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'Od leve proti desni (LTR)',
+ langDirRTL: 'Od desne proti levi (RTL)',
+ styles: 'Slog',
+ cssClasses: 'Razred stilne predloge',
+ width: 'Å irina',
+ height: 'Višina',
+ align: 'Poravnava',
+ alignLeft: 'Levo',
+ alignRight: 'Desno',
+ alignCenter: 'Sredinsko',
+ alignTop: 'Na vrh',
+ alignMiddle: 'V sredino',
+ alignBottom: 'Na dno',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Višina mora biti število.',
+ invalidWidth: 'Širina mora biti število.',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, nedosegljiv</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/sr-latn.js b/devel/third-party/ckeditor/lang/sr-latn.js
index 4a1b16d..f07df54 100644
--- a/devel/third-party/ckeditor/lang/sr-latn.js
+++ b/devel/third-party/ckeditor/lang/sr-latn.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Serbian (Latin) language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['sr-latn'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Kôd',
- newPage : 'Nova stranica',
- save : 'SaÄuvaj',
- preview : 'Izgled stranice',
- cut : 'Iseci',
- copy : 'Kopiraj',
- paste : 'Zalepi',
- print : 'Å tampa',
- underline : 'PodvuÄeno',
- bold : 'Podebljano',
- italic : 'Kurziv',
- selectAll : 'OznaÄi sve',
- removeFormat : 'Ukloni formatiranje',
- strike : 'Precrtano',
- subscript : 'Indeks',
- superscript : 'Stepen',
- horizontalrule : 'Unesi horizontalnu liniju',
- pagebreak : 'Insert Page Break for Printing', // MISSING
- unlink : 'Ukloni link',
- undo : 'Poni�ti akciju',
- redo : 'Ponovi akciju',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Pretraži server',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'Pošalji',
- uploadSubmit : 'Pošalji na server',
- image : 'Slika',
- flash : 'Fleš',
- form : 'Forma',
- checkbox : 'Polje za potvrdu',
- radio : 'Radio-dugme',
- textField : 'Tekstualno polje',
- textarea : 'Zona teksta',
- hiddenField : 'Skriveno polje',
- button : 'Dugme',
- select : 'Izborno polje',
- imageButton : 'Dugme sa slikom',
- notSet : '<nije postavljeno>',
- id : 'Id',
- name : 'Naziv',
- langDir : 'Smer jezika',
- langDirLtr : 'S leva na desno (LTR)',
- langDirRtl : 'S desna na levo (RTL)',
- langCode : 'Kôd jezika',
- longDescr : 'Pun opis URL',
- cssClass : 'Stylesheet klase',
- advisoryTitle : 'Advisory naslov',
- cssStyle : 'Stil',
- ok : 'OK',
- cancel : 'Otkaži',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Napredni tagovi',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Unesi specijalni karakter',
- title : 'Odaberite specijalni karakter',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Unesi/izmeni link',
- other : '<оÑÑало>',
- menu : 'Izmeni link',
- title : 'Link',
- info : 'Link Info',
- target : 'Meta',
- upload : 'Pošalji',
- advanced : 'Napredni tagovi',
- type : 'Vrsta linka',
- toUrl : 'URL', // MISSING
- toAnchor : 'Sidro na ovoj stranici',
- toEmail : 'E-Mail',
- targetFrame : '<okvir>',
- targetPopup : '<popup prozor>',
- targetFrameName : 'Naziv odredišnog frejma',
- targetPopupName : 'Naziv popup prozora',
- popupFeatures : 'MoguÄnosti popup prozora',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Statusna linija',
- popupLocationBar: 'Lokacija',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'Kontekstni meni',
- popupFullScreen : 'Prikaz preko celog ekrana (IE)',
- popupScrollBars : 'Scroll bar',
- popupDependent : 'Zavisno (Netscape)',
- popupWidth : 'Å irina',
- popupLeft : 'Od leve ivice ekrana (px)',
- popupHeight : 'Visina',
- popupTop : 'Od vrha ekrana (px)',
- id : 'Id', // MISSING
- langDir : 'Smer jezika',
- langDirLTR : 'S leva na desno (LTR)',
- langDirRTL : 'S desna na levo (RTL)',
- acccessKey : 'Pristupni taster',
- name : 'Naziv',
- langCode : 'Smer jezika',
- tabIndex : 'Tab indeks',
- advisoryTitle : 'Advisory naslov',
- advisoryContentType : 'Advisory vrsta sadržaja',
- cssClasses : 'Stylesheet klase',
- charset : 'Linked Resource Charset',
- styles : 'Stil',
- selectAnchor : 'Odaberi sidro',
- anchorName : 'Po nazivu sidra',
- anchorId : 'Po Id-ju elementa',
- emailAddress : 'E-Mail adresa',
- emailSubject : 'Naslov',
- emailBody : 'Sadržaj poruke',
- noAnchors : '(Nema dostupnih sidra)',
- noUrl : 'Unesite URL linka',
- noEmail : 'Otkucajte adresu elektronske pote'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Unesi/izmeni sidro',
- menu : 'Osobine sidra',
- title : 'Osobine sidra',
- name : 'Ime sidra',
- errorName : 'Unesite ime sidra'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'Pretraga',
- replace : 'Zamena',
- findWhat : 'Pronadi:',
- replaceWith : 'Zameni sa:',
- notFoundMsg : 'Traženi tekst nije pronaÄen.',
- matchCase : 'Razlikuj mala i velika slova',
- matchWord : 'Uporedi cele reci',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Zameni sve',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabela',
- title : 'Osobine tabele',
- menu : 'Osobine tabele',
- deleteTable : 'Delete Table', // MISSING
- rows : 'Redova',
- columns : 'Kolona',
- border : 'VeliÄina okvira',
- align : 'Ravnanje',
- alignLeft : 'Levo',
- alignCenter : 'Sredina',
- alignRight : 'Desno',
- width : 'Å irina',
- widthPx : 'piksela',
- widthPc : 'procenata',
- widthUnit : 'width unit', // MISSING
- height : 'Visina',
- cellSpace : 'Äelijski prostor',
- cellPad : 'Razmak Äelija',
- caption : 'Naslov tabele',
- summary : 'Summary', // MISSING
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'ObriÅ¡i Äelije',
- merge : 'Spoj celije',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'Obriši redove'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'Obriši kolone'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Osobine dugmeta',
- text : 'Tekst (vrednost)',
- type : 'Tip',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Osobine polja za potvrdu',
- radioTitle : 'Osobine radio-dugmeta',
- value : 'Vrednost',
- selected : 'OznaÄeno'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Osobine forme',
- menu : 'Osobine forme',
- action : 'Akcija',
- method : 'Metoda',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Osobine izbornog polja',
- selectInfo : 'Info',
- opAvail : 'Dostupne opcije',
- value : 'Vrednost',
- size : 'VeliÄina',
- lines : 'linija',
- chkMulti : 'Dozvoli višestruku selekciju',
- opText : 'Tekst',
- opValue : 'Vrednost',
- btnAdd : 'Dodaj',
- btnModify : 'Izmeni',
- btnUp : 'Gore',
- btnDown : 'Dole',
- btnSetValue : 'Podesi kao oznaÄenu vrednost',
- btnDelete : 'Obriši'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Osobine zone teksta',
- cols : 'Broj kolona',
- rows : 'Broj redova'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Osobine tekstualnog polja',
- name : 'Naziv',
- value : 'Vrednost',
- charWidth : 'Å irina (karaktera)',
- maxChars : 'Maksimalno karaktera',
- type : 'Tip',
- typeText : 'Tekst',
- typePass : 'Lozinka'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Osobine skrivenog polja',
- name : 'Naziv',
- value : 'Vrednost'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Osobine slika',
- titleButton : 'Osobine dugmeta sa slikom',
- menu : 'Osobine slika',
- infoTab : 'Info slike',
- btnUpload : 'Pošalji na server',
- upload : 'Pošalji',
- alt : 'Alternativni tekst',
- width : 'Å irina',
- height : 'Visina',
- lockRatio : 'ZakljuÄaj odnos',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Resetuj veliÄinu',
- border : 'Okvir',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'Ravnanje',
- alignLeft : 'Levo',
- alignRight : 'Desno',
- alertUrl : 'Unesite URL slike',
- linkTab : 'Link',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Osobine fleša',
- propertiesTab : 'Properties', // MISSING
- title : 'Osobine fleša',
- chkPlay : 'Automatski start',
- chkLoop : 'Ponavljaj',
- chkMenu : 'UkljuÄi fleÅ¡ meni',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Skaliraj',
- scaleAll : 'Prikaži sve',
- scaleNoBorder : 'Bez ivice',
- scaleFit : 'Popuni površinu',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Ravnanje',
- alignLeft : 'Levo',
- alignAbsBottom : 'Abs dole',
- alignAbsMiddle : 'Abs sredina',
- alignBaseline : 'Bazno',
- alignBottom : 'Dole',
- alignMiddle : 'Sredina',
- alignRight : 'Desno',
- alignTextTop : 'Vrh teksta',
- alignTop : 'Vrh',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Boja pozadine',
- width : 'Å irina',
- height : 'Visina',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'Unesite URL linka',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Proveri spelovanje',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Nije u reÄniku',
- changeTo : 'Izmeni',
- btnIgnore : 'Ignoriši',
- btnIgnoreAll : 'Ignoriši sve',
- btnReplace : 'Zameni',
- btnReplaceAll : 'Zameni sve',
- btnUndo : 'Vrati akciju',
- noSuggestions : '- Bez sugestija -',
- progress : 'Provera spelovanja u toku...',
- noMispell : 'Provera spelovanja završena: greške nisu pronadene',
- noChanges : 'Provera spelovanja završena: Nije izmenjena nijedna rec',
- oneChange : 'Provera spelovanja zavrÅ¡ena: Izmenjena je jedna reÄ',
- manyChanges : 'Provera spelovanja zavrÅ¡ena: %1 reÄ(i) je izmenjeno',
- ieSpellDownload : 'Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?'
- },
-
- smiley :
- {
- toolbar : 'Smajli',
- title : 'Unesi smajlija',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Nabrojiva lista',
- bulletedlist : 'Nenabrojiva lista',
- indent : 'UveÄaj levu marginu',
- outdent : 'Smanji levu marginu',
-
- justify :
- {
- left : 'Levo ravnanje',
- center : 'Centriran tekst',
- right : 'Desno ravnanje',
- block : 'Obostrano ravnanje'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Zalepi',
- cutError : 'Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+X).',
- copyError : 'Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+C).',
- pasteMsg : 'Molimo Vas da zalepite unutar donje povrine koristeÄi tastaturnu preÄicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Zalepi iz Worda',
- title : 'Zalepi iz Worda',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Zalepi kao Äist tekst',
- title : 'Zalepi kao Äist tekst'
- },
-
- templates :
- {
- button : 'Obrasci',
- title : 'Obrasci za sadržaj',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):',
- emptyListMsg : '(Nema definisanih obrazaca)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Stil',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Format',
- panelTitle : 'Format',
-
- tag_p : 'Normal',
- tag_pre : 'Formatirano',
- tag_address : 'Adresa',
- tag_h1 : 'Naslov 1',
- tag_h2 : 'Naslov 2',
- tag_h3 : 'Naslov 3',
- tag_h4 : 'Naslov 4',
- tag_h5 : 'Naslov 5',
- tag_h6 : 'Naslov 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Font',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Font'
- },
-
- fontSize :
- {
- label : 'VeliÄina fonta',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'VeliÄina fonta'
- },
-
- colorButton :
- {
- textColorTitle : 'Boja teksta',
- bgColorTitle : 'Boja pozadine',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatski',
- more : 'Više boja...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Serbian (Latin) language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'sr-latn' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'Pretraži server',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'Pošalji',
+ uploadSubmit: 'Pošalji na server',
+ image: 'Slika',
+ flash: 'Fleš',
+ form: 'Forma',
+ checkbox: 'Polje za potvrdu',
+ radio: 'Radio-dugme',
+ textField: 'Tekstualno polje',
+ textarea: 'Zona teksta',
+ hiddenField: 'Skriveno polje',
+ button: 'Dugme',
+ select: 'Izborno polje',
+ imageButton: 'Dugme sa slikom',
+ notSet: '<nije postavljeno>',
+ id: 'Id',
+ name: 'Naziv',
+ langDir: 'Smer jezika',
+ langDirLtr: 'S leva na desno (LTR)',
+ langDirRtl: 'S desna na levo (RTL)',
+ langCode: 'Kôd jezika',
+ longDescr: 'Pun opis URL',
+ cssClass: 'Stylesheet klase',
+ advisoryTitle: 'Advisory naslov',
+ cssStyle: 'Stil',
+ ok: 'OK',
+ cancel: 'Otkaži',
+ close: 'Close', // MISSING
+ preview: 'Izgled stranice',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'Napredni tagovi',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'Meta',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'S leva na desno (LTR)',
+ langDirRTL: 'S desna na levo (RTL)',
+ styles: 'Stil',
+ cssClasses: 'Stylesheet klase',
+ width: 'Å irina',
+ height: 'Visina',
+ align: 'Ravnanje',
+ alignLeft: 'Levo',
+ alignRight: 'Desno',
+ alignCenter: 'Sredina',
+ alignTop: 'Vrh',
+ alignMiddle: 'Sredina',
+ alignBottom: 'Dole',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/sr.js b/devel/third-party/ckeditor/lang/sr.js
index 8106f4d..5f86c05 100644
--- a/devel/third-party/ckeditor/lang/sr.js
+++ b/devel/third-party/ckeditor/lang/sr.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Serbian (Cyrillic) language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['sr'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Kôд',
- newPage : 'Ðова ÑÑÑаниÑа',
- save : 'СаÑÑваÑ',
- preview : 'Ðзглед ÑÑÑаниÑе',
- cut : 'ÐÑеÑи',
- copy : 'ÐопиÑаÑ',
- paste : 'Ðалепи',
- print : 'ШÑампа',
- underline : 'ÐодвÑÑено',
- bold : 'ÐодебÑано',
- italic : 'ÐÑÑзив',
- selectAll : 'ÐзнаÑи Ñве',
- removeFormat : 'Уклони ÑоÑмаÑиÑаÑе',
- strike : 'ÐÑеÑÑÑано',
- subscript : 'ÐндекÑ',
- superscript : 'СÑепен',
- horizontalrule : 'УнеÑи Ñ
оÑизонÑÐ°Ð»Ð½Ñ Ð»Ð¸Ð½Ð¸ÑÑ',
- pagebreak : 'Insert Page Break for Printing', // MISSING
- unlink : 'Уклони линк',
- undo : 'ÐониÑÑи акÑиÑÑ',
- redo : 'Ðонови акÑиÑÑ',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ÐÑеÑÑажи ÑеÑвеÑ',
- url : 'УРÐ',
- protocol : 'ÐÑоÑокол',
- upload : 'ÐоÑаÑи',
- uploadSubmit : 'ÐоÑаÑи на ÑеÑвеÑ',
- image : 'Слика',
- flash : 'Ð¤Ð»ÐµÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ',
- form : 'ФоÑма',
- checkbox : 'ÐоÑе за поÑвÑдÑ',
- radio : 'Радио-дÑгме',
- textField : 'ТекÑÑÑално поÑе',
- textarea : 'Ðона ÑекÑÑа',
- hiddenField : 'СкÑивено поÑе',
- button : 'ÐÑгме',
- select : 'ÐзбоÑно поÑе',
- imageButton : 'ÐÑгме Ñа Ñликом',
- notSet : '<ниÑе поÑÑавÑено>',
- id : 'Ðд',
- name : 'Ðазив',
- langDir : 'Ð¡Ð¼ÐµÑ Ñезика',
- langDirLtr : 'С лева на деÑно (LTR)',
- langDirRtl : 'С деÑна на лево (RTL)',
- langCode : 'Kôд Ñезика',
- longDescr : 'ÐÑн Ð¾Ð¿Ð¸Ñ Ð£Ð Ð',
- cssClass : 'Stylesheet клаÑе',
- advisoryTitle : 'Advisory наÑлов',
- cssStyle : 'СÑил',
- ok : 'OK',
- cancel : 'OÑкажи',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'ÐапÑедни Ñагови',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'УнеÑи ÑпеÑиÑални каÑакÑеÑ',
- title : 'ÐдабеÑиÑе ÑпеÑиÑални каÑакÑеÑ',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'УнеÑи/измени линк',
- other : '<other>', // MISSING
- menu : 'ÐÑомени линк',
- title : 'Ðинк',
- info : 'Ðинк инÑо',
- target : 'MeÑa',
- upload : 'ÐоÑаÑи',
- advanced : 'ÐапÑедни Ñагови',
- type : 'ÐÑÑÑа линка',
- toUrl : 'URL', // MISSING
- toAnchor : 'СидÑо на Ð¾Ð²Ð¾Ñ ÑÑÑаниÑи',
- toEmail : 'EлекÑÑонÑка поÑÑа',
- targetFrame : '<оквиÑ>',
- targetPopup : '<иÑкаÑÑÑи пÑозоÑ>',
- targetFrameName : 'Ðазив одÑедиÑног ÑÑеÑма',
- targetPopupName : 'Ðазив иÑкаÑÑÑег пÑозоÑа',
- popupFeatures : 'ÐогÑÑноÑÑи иÑкаÑÑÑег пÑозоÑа',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'СÑаÑÑÑна линиÑа',
- popupLocationBar: 'ÐокаÑиÑа',
- popupToolbar : 'Toolbar',
- popupMenuBar : 'ÐонÑекÑÑни мени',
- popupFullScreen : 'ÐÑиказ пÑеко Ñелог екÑана (ÐE)',
- popupScrollBars : 'СкÑол баÑ',
- popupDependent : 'ÐавиÑно (Netscape)',
- popupWidth : 'ШиÑина',
- popupLeft : 'Ðд леве ивиÑе екÑана (пикÑела)',
- popupHeight : 'ÐиÑина',
- popupTop : 'Ðд вÑÑ
а екÑана (пикÑела)',
- id : 'Id', // MISSING
- langDir : 'Ð¡Ð¼ÐµÑ Ñезика',
- langDirLTR : 'С лева на деÑно (LTR)',
- langDirRTL : 'С деÑна на лево (RTL)',
- acccessKey : 'ÐÑиÑÑÑпни ÑаÑÑеÑ',
- name : 'Ðазив',
- langCode : 'Ð¡Ð¼ÐµÑ Ñезика',
- tabIndex : 'Таб индекÑ',
- advisoryTitle : 'Advisory наÑлов',
- advisoryContentType : 'Advisory вÑÑÑа ÑадÑжаÑа',
- cssClasses : 'Stylesheet клаÑе',
- charset : 'Linked Resource Charset',
- styles : 'СÑил',
- selectAnchor : 'ÐдабеÑи ÑидÑо',
- anchorName : 'Ðо Ð½Ð°Ð·Ð¸Ð²Ñ ÑидÑа',
- anchorId : 'Ðo Ðд-jÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñа',
- emailAddress : 'ÐдÑеÑа елекÑÑонÑке поÑÑе',
- emailSubject : 'ÐаÑлов',
- emailBody : 'СадÑÐ¶Ð°Ñ Ð¿Ð¾ÑÑке',
- noAnchors : '(Ðема доÑÑÑпниÑ
ÑидÑа)',
- noUrl : 'УнеÑиÑе УРРлинка',
- noEmail : 'ÐÑкÑÑаÑÑе адÑеÑÑ ÐµÐ»ÐµÐºÑÑонÑке поÑÑе'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'УнеÑи/измени ÑидÑо',
- menu : 'ÐÑобине ÑидÑа',
- title : 'ÐÑобине ÑидÑа',
- name : 'Ðме ÑидÑа',
- errorName : 'Ðолимо ÐÐ°Ñ Ð´Ð° ÑнеÑеÑе име ÑидÑа'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'ÐÑеÑÑага',
- replace : 'Ðамена',
- findWhat : 'ÐÑонаÑи:',
- replaceWith : 'Ðамени Ñа:',
- notFoundMsg : 'ТÑажени ÑекÑÑ Ð½Ð¸Ñе пÑонаÑен.',
- matchCase : 'РазликÑÑ Ð²ÐµÐ»Ð¸ÐºÐ° и мала Ñлова',
- matchWord : 'УпоÑеди Ñеле ÑеÑи',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Ðамени Ñве',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Табела',
- title : 'ÐÑобине Ñабеле',
- menu : 'ÐÑобине Ñабеле',
- deleteTable : 'Delete Table', // MISSING
- rows : 'Редова',
- columns : 'Kолона',
- border : 'ÐелиÑина оквиÑа',
- align : 'РавнаÑе',
- alignLeft : 'Ðево',
- alignCenter : 'СÑедина',
- alignRight : 'ÐеÑно',
- width : 'ШиÑина',
- widthPx : 'пикÑела',
- widthPc : 'пÑоÑенаÑа',
- widthUnit : 'width unit', // MISSING
- height : 'ÐиÑина',
- cellSpace : 'ÐелиÑÑки пÑоÑÑоÑ',
- cellPad : 'Размак ÑелиÑа',
- caption : 'ÐаÑлов Ñабеле',
- summary : 'Summary', // MISSING
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell', // MISSING
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'ÐбÑиÑи ÑелиÑе',
- merge : 'Ð¡Ð¿Ð¾Ñ ÑелиÑе',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Row', // MISSING
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'ÐбÑиÑи Ñедове'
- },
-
- column :
- {
- menu : 'Column', // MISSING
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'ÐбÑиÑи колоне'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ÐÑобине дÑгмеÑа',
- text : 'ТекÑÑ (вÑедноÑÑ)',
- type : 'Tип',
- typeBtn : 'Button', // MISSING
- typeSbm : 'Submit', // MISSING
- typeRst : 'Reset' // MISSING
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ÐÑобине поÑа за поÑвÑдÑ',
- radioTitle : 'ÐÑобине Ñадио-дÑгмеÑа',
- value : 'ÐÑедноÑÑ',
- selected : 'ÐзнаÑено'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ÐÑобине ÑоÑме',
- menu : 'ÐÑобине ÑоÑме',
- action : 'AкÑиÑа',
- method : 'MеÑода',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'ÐÑобине избоÑног поÑа',
- selectInfo : 'ÐнÑо',
- opAvail : 'ÐоÑÑÑпне опÑиÑе',
- value : 'ÐÑедноÑÑ',
- size : 'ÐелиÑина',
- lines : 'линиÑа',
- chkMulti : 'Ðозволи виÑеÑÑÑÑÐºÑ ÑелекÑиÑÑ',
- opText : 'ТекÑÑ',
- opValue : 'ÐÑедноÑÑ',
- btnAdd : 'ÐодаÑ',
- btnModify : 'Ðзмени',
- btnUp : 'ÐоÑе',
- btnDown : 'Ðоле',
- btnSetValue : 'ÐодеÑи као ознаÑÐµÐ½Ñ Ð²ÑедноÑÑ',
- btnDelete : 'ÐбÑиÑи'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ÐÑобине зоне ÑекÑÑа',
- cols : 'ÐÑÐ¾Ñ ÐºÐ¾Ð»Ð¾Ð½Ð°',
- rows : 'ÐÑÐ¾Ñ Ñедова'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ÐÑобине ÑекÑÑÑалног поÑа',
- name : 'Ðазив',
- value : 'ÐÑедноÑÑ',
- charWidth : 'ШиÑина (каÑакÑеÑа)',
- maxChars : 'ÐакÑимално каÑакÑеÑа',
- type : 'Тип',
- typeText : 'ТекÑÑ',
- typePass : 'Ðозинка'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ÐÑобине ÑкÑивеног поÑа',
- name : 'Ðазив',
- value : 'ÐÑедноÑÑ'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ÐÑобине Ñлика',
- titleButton : 'ÐÑобине дÑгмеÑа Ñа Ñликом',
- menu : 'ÐÑобине Ñлика',
- infoTab : 'ÐнÑо Ñлике',
- btnUpload : 'ÐоÑаÑи на ÑеÑвеÑ',
- upload : 'ÐоÑаÑи',
- alt : 'ÐлÑеÑнаÑивни ÑекÑÑ',
- width : 'ШиÑина',
- height : 'ÐиÑина',
- lockRatio : 'ÐакÑÑÑÐ°Ñ Ð¾Ð´Ð½Ð¾Ñ',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'РеÑеÑÑÑ Ð²ÐµÐ»Ð¸ÑинÑ',
- border : 'ÐквиÑ',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- align : 'РавнаÑе',
- alignLeft : 'Ðево',
- alignRight : 'ÐеÑно',
- alertUrl : 'УнеÑиÑе УРРÑлике',
- linkTab : 'Ðинк',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ÐÑобине ФлеÑа',
- propertiesTab : 'Properties', // MISSING
- title : 'ÐÑобине ÑлеÑа',
- chkPlay : 'ÐÑÑомаÑÑки ÑÑаÑÑ',
- chkLoop : 'ÐонавÑаÑ',
- chkMenu : 'УкÑÑÑи ÑÐ»ÐµÑ Ð¼ÐµÐ½Ð¸',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'СкалиÑаÑ',
- scaleAll : 'ÐÑикажи Ñве',
- scaleNoBorder : 'Ðез ивиÑе',
- scaleFit : 'ÐопÑни повÑÑинÑ',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'РавнаÑе',
- alignLeft : 'Ðево',
- alignAbsBottom : 'Abs доле',
- alignAbsMiddle : 'Abs ÑÑедина',
- alignBaseline : 'Ðазно',
- alignBottom : 'Ðоле',
- alignMiddle : 'СÑедина',
- alignRight : 'ÐеÑно',
- alignTextTop : 'ÐÑÑ
ÑекÑÑа',
- alignTop : 'ÐÑÑ
',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'ÐоÑа позадине',
- width : 'ШиÑина',
- height : 'ÐиÑина',
- hSpace : 'HSpace',
- vSpace : 'VSpace',
- validateSrc : 'УнеÑиÑе УРРлинка',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ÐÑовеÑи ÑпеловаÑе',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'ÐиÑе Ñ ÑеÑникÑ',
- changeTo : 'Ðзмени',
- btnIgnore : 'ÐгноÑиÑи',
- btnIgnoreAll : 'ÐгноÑиÑи Ñве',
- btnReplace : 'Ðамени',
- btnReplaceAll : 'Ðамени Ñве',
- btnUndo : 'ÐÑаÑи акÑиÑÑ',
- noSuggestions : '- Ðез ÑÑгеÑÑиÑа -',
- progress : 'ÐÑовеÑа ÑпеловаÑа Ñ ÑокÑ...',
- noMispell : 'ÐÑовеÑа ÑпеловаÑа завÑÑена: гÑеÑке ниÑÑ Ð¿ÑонаÑене',
- noChanges : 'ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐиÑе измеÑена ниÑедна ÑеÑ',
- oneChange : 'ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐзмеÑена Ñе Ñедна ÑеÑ',
- manyChanges : 'ÐÑовеÑа ÑпеловаÑа завÑÑена: %1 ÑеÑ(и) Ñе измеÑено',
- ieSpellDownload : 'ÐÑовеÑа ÑпеловаÑа ниÑе инÑÑалиÑана. Ðа ли желиÑе да Ñе ÑкинеÑе Ñа ÐнÑеÑнеÑа?'
- },
-
- smiley :
- {
- toolbar : 'СмаÑли',
- title : 'УнеÑи ÑмаÑлиÑа',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ÐабÑоÑÐ¸Ð²Ñ Ð»Ð¸ÑÑÑ',
- bulletedlist : 'ÐенабÑоÑива лиÑÑа',
- indent : 'УвеÑÐ°Ñ Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ',
- outdent : 'СмаÑи Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ',
-
- justify :
- {
- left : 'Ðево ÑавнаÑе',
- center : 'ЦенÑÑиÑан ÑекÑÑ',
- right : 'ÐеÑно ÑавнаÑе',
- block : 'ÐбоÑÑÑано ÑавнаÑе'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Ðалепи',
- cutError : 'СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког иÑеÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+X).',
- copyError : 'СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког копиÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+C).',
- pasteMsg : 'Ðолимо ÐÐ°Ñ Ð´Ð° залепиÑе ÑнÑÑÐ°Ñ Ð´Ð¾Ñе повÑÑине коÑиÑÑеÑи ÑаÑÑаÑÑÑÐ½Ñ Ð¿ÑеÑиÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>) и да пÑиÑиÑнеÑе <STRONG>OK</STRONG>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Ðалепи из Worda',
- title : 'Ðалепи из Worda',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Ðалепи као ÑиÑÑ ÑекÑÑ',
- title : 'Ðалепи као ÑиÑÑ ÑекÑÑ'
- },
-
- templates :
- {
- button : 'ÐбÑаÑÑи',
- title : 'ÐбÑаÑÑи за ÑадÑжаÑ',
- options : 'Template Options', // MISSING
- insertOption : 'Replace actual contents', // MISSING
- selectPromptMsg : 'Ðолимо ÐÐ°Ñ Ð´Ð° одабеÑеÑе обÑÐ°Ð·Ð°Ñ ÐºÐ¾Ñи Ñе биÑи пÑимеÑен на ÑÑÑаниÑÑ (ÑÑенÑÑни ÑадÑÐ¶Ð°Ñ Ñе биÑи обÑиÑан):',
- emptyListMsg : '(Ðема деÑиниÑаниÑ
обÑазаÑа)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'СÑил',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'ФоÑмаÑ',
- panelTitle : 'ФоÑмаÑ',
-
- tag_p : 'Normal',
- tag_pre : 'Formatirano',
- tag_address : 'Adresa',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Normal (DIV)' // MISSING
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ФонÑ',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'ФонÑ'
- },
-
- fontSize :
- {
- label : 'ÐелиÑина ÑонÑа',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'ÐелиÑина ÑонÑа'
- },
-
- colorButton :
- {
- textColorTitle : 'ÐоÑа ÑекÑÑа',
- bgColorTitle : 'ÐоÑа позадине',
- panelTitle : 'Colors', // MISSING
- auto : 'ÐÑÑомаÑÑки',
- more : 'ÐиÑе боÑа...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Serbian (Cyrillic) language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'sr' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'ÐÑеÑÑажи ÑеÑвеÑ',
+ url: 'УРÐ',
+ protocol: 'ÐÑоÑокол',
+ upload: 'ÐоÑаÑи',
+ uploadSubmit: 'ÐоÑаÑи на ÑеÑвеÑ',
+ image: 'Слика',
+ flash: 'Ð¤Ð»ÐµÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ',
+ form: 'ФоÑма',
+ checkbox: 'ÐоÑе за поÑвÑдÑ',
+ radio: 'Радио-дÑгме',
+ textField: 'ТекÑÑÑално поÑе',
+ textarea: 'Ðона ÑекÑÑа',
+ hiddenField: 'СкÑивено поÑе',
+ button: 'ÐÑгме',
+ select: 'ÐзбоÑно поÑе',
+ imageButton: 'ÐÑгме Ñа Ñликом',
+ notSet: '<ниÑе поÑÑавÑено>',
+ id: 'Ðд',
+ name: 'Ðазив',
+ langDir: 'Ð¡Ð¼ÐµÑ Ñезика',
+ langDirLtr: 'С лева на деÑно (LTR)',
+ langDirRtl: 'С деÑна на лево (RTL)',
+ langCode: 'Kôд Ñезика',
+ longDescr: 'ÐÑн Ð¾Ð¿Ð¸Ñ Ð£Ð Ð',
+ cssClass: 'Stylesheet клаÑе',
+ advisoryTitle: 'Advisory наÑлов',
+ cssStyle: 'СÑил',
+ ok: 'OK',
+ cancel: 'OÑкажи',
+ close: 'Close', // MISSING
+ preview: 'Ðзглед ÑÑÑаниÑе',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'ÐапÑедни Ñагови',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'MeÑa',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'С лева на деÑно (LTR)',
+ langDirRTL: 'С деÑна на лево (RTL)',
+ styles: 'СÑил',
+ cssClasses: 'Stylesheet клаÑе',
+ width: 'ШиÑина',
+ height: 'ÐиÑина',
+ align: 'РавнаÑе',
+ alignLeft: 'Ðево',
+ alignRight: 'ÐеÑно',
+ alignCenter: 'СÑедина',
+ alignTop: 'ÐÑÑ
',
+ alignMiddle: 'СÑедина',
+ alignBottom: 'Ðоле',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/sv.js b/devel/third-party/ckeditor/lang/sv.js
index 1512afc..bf40690 100644
--- a/devel/third-party/ckeditor/lang/sv.js
+++ b/devel/third-party/ckeditor/lang/sv.js
@@ -1,758 +1,104 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Swedish language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['sv'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'Källa',
- newPage : 'Ny sida',
- save : 'Spara',
- preview : 'Förhandsgranska',
- cut : 'Klipp ut',
- copy : 'Kopiera',
- paste : 'Klistra in',
- print : 'Skriv ut',
- underline : 'Understruken',
- bold : 'Fet',
- italic : 'Kursiv',
- selectAll : 'Markera allt',
- removeFormat : 'Radera formatering',
- strike : 'Genomstruken',
- subscript : 'Nedsänkta tecken',
- superscript : 'Upphöjda tecken',
- horizontalrule : 'Infoga horisontal linje',
- pagebreak : 'Infoga sidbrytning',
- unlink : 'Radera länk',
- undo : 'Ã
ngra',
- redo : 'Gör om',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Bläddra på server',
- url : 'URL',
- protocol : 'Protokoll',
- upload : 'Ladda upp',
- uploadSubmit : 'Skicka till server',
- image : 'Bild',
- flash : 'Flash',
- form : 'Formulär',
- checkbox : 'Kryssruta',
- radio : 'Alternativknapp',
- textField : 'Textfält',
- textarea : 'Textruta',
- hiddenField : 'Dolt fält',
- button : 'Knapp',
- select : 'Flervalslista',
- imageButton : 'Bildknapp',
- notSet : '<ej angivet>',
- id : 'Id',
- name : 'Namn',
- langDir : 'Språkriktning',
- langDirLtr : 'Vänster till Höger (VTH)',
- langDirRtl : 'Höger till Vänster (HTV)',
- langCode : 'Språkkod',
- longDescr : 'URL-beskrivning',
- cssClass : 'Stylesheet class',
- advisoryTitle : 'Titel',
- cssStyle : 'Style',
- ok : 'OK',
- cancel : 'Avbryt',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'Avancerad',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Klistra in utökat tecken',
- title : 'Välj utökat tecken',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Infoga/Redigera länk',
- other : '<annan>',
- menu : 'Redigera länk',
- title : 'Länk',
- info : 'Länkinformation',
- target : 'MÃ¥l',
- upload : 'Ladda upp',
- advanced : 'Avancerad',
- type : 'Länktyp',
- toUrl : 'URL', // MISSING
- toAnchor : 'Ankare i sidan',
- toEmail : 'E-post',
- targetFrame : '<ram>',
- targetPopup : '<popup-fönster>',
- targetFrameName : 'MÃ¥lets ramnamn',
- targetPopupName : 'Popup-fönstrets namn',
- popupFeatures : 'Popup-fönstrets egenskaper',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'Statusfält',
- popupLocationBar: 'Adressfält',
- popupToolbar : 'Verktygsfält',
- popupMenuBar : 'Menyfält',
- popupFullScreen : 'Helskärm (endast IE)',
- popupScrollBars : 'Scrolllista',
- popupDependent : 'Beroende (endest Netscape)',
- popupWidth : 'Bredd',
- popupLeft : 'Position från vänster',
- popupHeight : 'Höjd',
- popupTop : 'Position från sidans topp',
- id : 'Id', // MISSING
- langDir : 'Språkriktning',
- langDirLTR : 'Vänster till Höger (VTH)',
- langDirRTL : 'Höger till Vänster (HTV)',
- acccessKey : 'Behörighetsnyckel',
- name : 'Namn',
- langCode : 'Språkriktning',
- tabIndex : 'Tabindex',
- advisoryTitle : 'Titel',
- advisoryContentType : 'Innehållstyp',
- cssClasses : 'Stylesheet class',
- charset : 'Teckenuppställning',
- styles : 'Style',
- selectAnchor : 'Välj ett ankare',
- anchorName : 'efter ankarnamn',
- anchorId : 'efter objektid',
- emailAddress : 'E-postadress',
- emailSubject : 'Ãmne',
- emailBody : 'Innehåll',
- noAnchors : '(Inga ankare kunde hittas)',
- noUrl : 'Var god ange länkens URL',
- noEmail : 'Var god ange E-postadress'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Infoga/Redigera ankarlänk',
- menu : 'Egenskaper för ankarlänk',
- title : 'Egenskaper för ankarlänk',
- name : 'Ankarnamn',
- errorName : 'Var god ange ett ankarnamn'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Sök och ersätt',
- find : 'Sök',
- replace : 'Ersätt',
- findWhat : 'Sök efter:',
- replaceWith : 'Ersätt med:',
- notFoundMsg : 'Angiven text kunde ej hittas.',
- matchCase : 'Skiftläge',
- matchWord : 'Inkludera hela ord',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'Ersätt alla',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tabell',
- title : 'Tabellegenskaper',
- menu : 'Tabellegenskaper',
- deleteTable : 'Radera tabell',
- rows : 'Rader',
- columns : 'Kolumner',
- border : 'Kantstorlek',
- align : 'Justering',
- alignLeft : 'Vänster',
- alignCenter : 'Centrerad',
- alignRight : 'Höger',
- width : 'Bredd',
- widthPx : 'pixlar',
- widthPc : 'procent',
- widthUnit : 'width unit', // MISSING
- height : 'Höjd',
- cellSpace : 'Cellavstånd',
- cellPad : 'Cellutfyllnad',
- caption : 'Rubrik',
- summary : 'Sammanfattning',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'Cell',
- insertBefore : 'Lägg till Cell Före',
- insertAfter : 'Lägg till Cell Efter',
- deleteCell : 'Radera celler',
- merge : 'Sammanfoga celler',
- mergeRight : 'Sammanfoga Höger',
- mergeDown : 'Sammanfoga Ner',
- splitHorizontal : 'Dela Cell Horisontellt',
- splitVertical : 'Dela Cell Vertikalt',
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Rad',
- insertBefore : 'Lägg till Rad Före',
- insertAfter : 'Lägg till Rad Efter',
- deleteRow : 'Radera rad'
- },
-
- column :
- {
- menu : 'Kolumn',
- insertBefore : 'Lägg till Kolumn Före',
- insertAfter : 'Lägg till Kolumn Efter',
- deleteColumn : 'Radera kolumn'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Egenskaper för knapp',
- text : 'Text (Värde)',
- type : 'Typ',
- typeBtn : 'Knapp',
- typeSbm : 'Skicka',
- typeRst : 'Ã
terställ'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Egenskaper för kryssruta',
- radioTitle : 'Egenskaper för alternativknapp',
- value : 'Värde',
- selected : 'Vald'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Egenskaper för formulär',
- menu : 'Egenskaper för formulär',
- action : 'Funktion',
- method : 'Metod',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Egenskaper för flervalslista',
- selectInfo : 'Information',
- opAvail : 'Befintliga val',
- value : 'Värde',
- size : 'Storlek',
- lines : 'Linjer',
- chkMulti : 'Tillåt flerval',
- opText : 'Text',
- opValue : 'Värde',
- btnAdd : 'Lägg till',
- btnModify : 'Redigera',
- btnUp : 'Upp',
- btnDown : 'Ner',
- btnSetValue : 'Markera som valt värde',
- btnDelete : 'Radera'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Egenskaper för textruta',
- cols : 'Kolumner',
- rows : 'Rader'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Egenskaper för textfält',
- name : 'Namn',
- value : 'Värde',
- charWidth : 'Teckenbredd',
- maxChars : 'Max antal tecken',
- type : 'Typ',
- typeText : 'Text',
- typePass : 'Lösenord'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Egenskaper för dolt fält',
- name : 'Namn',
- value : 'Värde'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Bildegenskaper',
- titleButton : 'Egenskaper för bildknapp',
- menu : 'Bildegenskaper',
- infoTab : 'Bildinformation',
- btnUpload : 'Skicka till server',
- upload : 'Ladda upp',
- alt : 'Alternativ text',
- width : 'Bredd',
- height : 'Höjd',
- lockRatio : 'Lås höjd/bredd förhållanden',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'Ã
terställ storlek',
- border : 'Kant',
- hSpace : 'Horis. marginal',
- vSpace : 'Vert. marginal',
- align : 'Justering',
- alignLeft : 'Vänster',
- alignRight : 'Höger',
- alertUrl : 'Var god och ange bildens URL',
- linkTab : 'Länk',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flashegenskaper',
- propertiesTab : 'Properties', // MISSING
- title : 'Flashegenskaper',
- chkPlay : 'Automatisk uppspelning',
- chkLoop : 'Upprepa/Loopa',
- chkMenu : 'Aktivera Flashmeny',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'Skala',
- scaleAll : 'Visa allt',
- scaleNoBorder : 'Ingen ram',
- scaleFit : 'Exakt passning',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'Justering',
- alignLeft : 'Vänster',
- alignAbsBottom : 'Absolut nederkant',
- alignAbsMiddle : 'Absolut centrering',
- alignBaseline : 'Baslinje',
- alignBottom : 'Nederkant',
- alignMiddle : 'Mitten',
- alignRight : 'Höger',
- alignTextTop : 'Text överkant',
- alignTop : 'Ãverkant',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'Bakgrundsfärg',
- width : 'Bredd',
- height : 'Höjd',
- hSpace : 'Horis. marginal',
- vSpace : 'Vert. marginal',
- validateSrc : 'Var god ange länkens URL',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Stavningskontroll',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'Saknas i ordlistan',
- changeTo : 'Ãndra till',
- btnIgnore : 'Ignorera',
- btnIgnoreAll : 'Ignorera alla',
- btnReplace : 'Ersätt',
- btnReplaceAll : 'Ersätt alla',
- btnUndo : 'Ã
ngra',
- noSuggestions : '- Förslag saknas -',
- progress : 'Stavningskontroll pågår...',
- noMispell : 'Stavningskontroll slutförd: Inga stavfel påträffades.',
- noChanges : 'Stavningskontroll slutförd: Inga ord rättades.',
- oneChange : 'Stavningskontroll slutförd: Ett ord rättades.',
- manyChanges : 'Stavningskontroll slutförd: %1 ord rättades.',
- ieSpellDownload : 'Stavningskontrollen är ej installerad. Vill du göra det nu?'
- },
-
- smiley :
- {
- toolbar : 'Smiley',
- title : 'Infoga smiley',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'Numrerad lista',
- bulletedlist : 'Punktlista',
- indent : 'Ãka indrag',
- outdent : 'Minska indrag',
-
- justify :
- {
- left : 'Vänsterjustera',
- center : 'Centrera',
- right : 'Högerjustera',
- block : 'Justera till marginaler'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'Klistra in',
- cutError : 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl/Cmd+X) istället.',
- copyError : 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl/Cmd+C) istället',
- pasteMsg : 'Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl/Cmd+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.',
- securityMsg : 'På grund av din webläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'Klistra in från Word',
- title : 'Klistra in från Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Klistra in som vanlig text',
- title : 'Klistra in som vanlig text'
- },
-
- templates :
- {
- button : 'Sidmallar',
- title : 'Sidmallar',
- options : 'Template Options', // MISSING
- insertOption : 'Ersätt aktuellt innehåll',
- selectPromptMsg : 'Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):',
- emptyListMsg : '(Ingen mall är vald)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'Anpassad stil',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'Teckenformat',
- panelTitle : 'Teckenformat',
-
- tag_p : 'Normal',
- tag_pre : 'Formaterad',
- tag_address : 'Adress',
- tag_h1 : 'Rubrik 1',
- tag_h2 : 'Rubrik 2',
- tag_h3 : 'Rubrik 3',
- tag_h4 : 'Rubrik 4',
- tag_h5 : 'Rubrik 5',
- tag_h6 : 'Rubrik 6',
- tag_div : 'Normal (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'Typsnitt',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'Typsnitt'
- },
-
- fontSize :
- {
- label : 'Storlek',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'Storlek'
- },
-
- colorButton :
- {
- textColorTitle : 'Textfärg',
- bgColorTitle : 'Bakgrundsfärg',
- panelTitle : 'Colors', // MISSING
- auto : 'Automatisk',
- more : 'Fler färger...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'sv' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Tryck ALT 0 för hjälp',
+
+ browseServer: 'Bläddra på server',
+ url: 'URL',
+ protocol: 'Protokoll',
+ upload: 'Ladda upp',
+ uploadSubmit: 'Skicka till server',
+ image: 'Bild',
+ flash: 'Flash',
+ form: 'Formulär',
+ checkbox: 'Kryssruta',
+ radio: 'Alternativknapp',
+ textField: 'Textfält',
+ textarea: 'Textruta',
+ hiddenField: 'Dolt fält',
+ button: 'Knapp',
+ select: 'Flervalslista',
+ imageButton: 'Bildknapp',
+ notSet: '<ej angivet>',
+ id: 'Id',
+ name: 'Namn',
+ langDir: 'Språkriktning',
+ langDirLtr: 'Vänster till Höger (VTH)',
+ langDirRtl: 'Höger till Vänster (HTV)',
+ langCode: 'Språkkod',
+ longDescr: 'URL-beskrivning',
+ cssClass: 'Stilmall',
+ advisoryTitle: 'Titel',
+ cssStyle: 'Stilmall',
+ ok: 'OK',
+ cancel: 'Avbryt',
+ close: 'Stäng',
+ preview: 'Förhandsgranska',
+ resize: 'Dra för att ändra storlek',
+ generalTab: 'Allmänt',
+ advancedTab: 'Avancerad',
+ validateNumberFailed: 'Värdet är inte ett nummer.',
+ confirmNewPage: 'Alla ändringar i innehÃ¥llet kommer att förloras. Ãr du säker pÃ¥ att du vill ladda en ny sida?',
+ confirmCancel: 'NÃ¥gra av de alternativ har ändrats. Ãr du säker pÃ¥ att stänga dialogrutan?',
+ options: 'Alternativ',
+ target: 'MÃ¥l',
+ targetNew: 'Nytt fönster (_blank)',
+ targetTop: 'Ãversta fönstret (_top)',
+ targetSelf: 'Samma fönster (_self)',
+ targetParent: 'Föregående fönster (_parent)',
+ langDirLTR: 'Vänster till höger (LTR)',
+ langDirRTL: 'Höger till vänster (RTL)',
+ styles: 'Stil',
+ cssClasses: 'Stilmallar',
+ width: 'Bredd',
+ height: 'Höjd',
+ align: 'Justering',
+ alignLeft: 'Vänster',
+ alignRight: 'Höger',
+ alignCenter: 'Centrerad',
+ alignTop: 'Ãverkant',
+ alignMiddle: 'Mitten',
+ alignBottom: 'Nederkant',
+ invalidValue : 'Felaktigt värde.',
+ invalidHeight: 'Höjd måste vara ett nummer.',
+ invalidWidth: 'Bredd måste vara ett nummer.',
+ invalidCssLength: 'Värdet för fältet "%1" måste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm, em, ex, pt, eller pc).',
+ invalidHtmlLength: 'rdet för fältet "%1" måste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).',
+ invalidInlineStyle: 'Det angivna värdet för style måste innehålla en eller flera tupler separerade med semikolon i följande format: "name : value"',
+ cssLengthTooltip: 'Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, Ej tillgänglig</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/th.js b/devel/third-party/ckeditor/lang/th.js
index e80aa97..7ab842d 100644
--- a/devel/third-party/ckeditor/lang/th.js
+++ b/devel/third-party/ckeditor/lang/th.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Thai language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['th'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'à¸à¸¹à¸£à¸«à¸±à¸ª HTML',
- newPage : 'สรà¹à¸²à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¹à¸«à¸¡à¹',
- save : 'à¸à¸±à¸à¸à¸¶à¸',
- preview : 'à¸à¸¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸±à¸§à¸à¸¢à¹à¸²à¸',
- cut : 'à¸à¸±à¸',
- copy : 'สำà¹à¸à¸²',
- paste : 'วาà¸',
- print : 'สัà¹à¸à¸à¸´à¸¡à¸à¹',
- underline : 'à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¹à¸à¹',
- bold : 'à¸à¸±à¸§à¸«à¸à¸²',
- italic : 'à¸à¸±à¸§à¹à¸à¸µà¸¢à¸',
- selectAll : 'à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸',
- removeFormat : 'ลà¹à¸²à¸à¸£à¸¹à¸à¹à¸à¸',
- strike : 'à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¸à¸±à¸',
- subscript : 'à¸à¸±à¸§à¸«à¹à¸à¸¢',
- superscript : 'à¸à¸±à¸§à¸¢à¸',
- horizontalrule : 'à¹à¸à¸£à¸à¹à¸ªà¹à¸à¸à¸±à¹à¸à¸à¸£à¸£à¸à¸±à¸',
- pagebreak : 'à¹à¸à¸£à¸à¸à¸±à¸§à¹à¸à¹à¸à¸«à¸à¹à¸² Page Break',
- unlink : 'ลภลิà¸à¸à¹',
- undo : 'ยà¸à¹à¸¥à¸´à¸à¸à¸³à¸ªà¸±à¹à¸',
- redo : 'à¸à¸³à¸à¹à¸³à¸à¸³à¸ªà¸±à¹à¸',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸¥à¹à¸à¸±à¸à¹à¸«à¸¥à¸',
- url : 'à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸ URL',
- protocol : 'à¹à¸à¸£à¹à¸à¸à¸à¸¥',
- upload : 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',
- uploadSubmit : 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)',
- image : 'รูà¸à¸ าà¸',
- flash : 'à¹à¸à¸¥à¹ Flash',
- form : 'à¹à¸à¸à¸à¸à¸£à¹à¸¡',
- checkbox : 'à¹à¸à¹à¸à¸à¹à¸à¸',
- radio : 'à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸',
- textField : 'à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹',
- textarea : 'à¹à¸à¹à¸à¸à¹à¹à¸à¹à¸£à¸µà¸¢',
- hiddenField : 'ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',
- button : 'à¸à¸¸à¹à¸¡',
- select : 'à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',
- imageButton : 'à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸',
- notSet : '<à¹à¸¡à¹à¸£à¸°à¸à¸¸>',
- id : 'à¹à¸à¸à¸µ',
- name : 'à¸à¸·à¹à¸',
- langDir : 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
- langDirLtr : 'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',
- langDirRtl : 'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',
- langCode : 'รหัสภาษา',
- longDescr : 'à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¸à¸£à¸°à¸à¸à¸ URL',
- cssClass : 'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
- advisoryTitle : 'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
- cssStyle : 'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
- ok : 'à¸à¸à¸¥à¸',
- cancel : 'ยà¸à¹à¸¥à¸´à¸',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'General', // MISSING
- advancedTab : 'à¸à¸±à¹à¸à¸ªà¸¹à¸',
- validateNumberFailed : 'This value is not a number.', // MISSING
- confirmNewPage : 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
- confirmCancel : 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©',
- title : 'à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ ลิà¸à¸à¹',
- other : '<à¸à¸·à¹à¸ à¹>',
- menu : 'à¹à¸à¹à¹à¸ ลิà¸à¸à¹',
- title : 'ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸§à¹à¸ à¸à¸µà¹à¸¡à¸¥à¹ รูà¸à¸ าภหรืà¸à¹à¸à¸¥à¹à¸à¸·à¹à¸à¹',
- info : 'รายละà¹à¸à¸µà¸¢à¸',
- target : 'à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸¥à¸´à¸à¸à¹',
- upload : 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',
- advanced : 'à¸à¸±à¹à¸à¸ªà¸¹à¸',
- type : 'à¸à¸£à¸°à¹à¸ à¸à¸à¸à¸à¸¥à¸´à¸à¸à¹',
- toUrl : 'URL', // MISSING
- toAnchor : 'à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)',
- toEmail : 'สà¹à¸à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)',
- targetFrame : '<à¹à¸à¸´à¸à¹à¸à¹à¸à¸£à¸¡>',
- targetPopup : '<à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)>',
- targetFrameName : 'à¸à¸·à¹à¸à¸à¸²à¸£à¹à¹à¸à¹à¸à¹à¸à¸£à¸¡',
- targetPopupName : 'ระà¸à¸¸à¸à¸·à¹à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)',
- popupFeatures : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)',
- popupResizable : 'Resizable', // MISSING
- popupStatusBar : 'à¹à¸ªà¸à¸à¹à¸à¸à¸ªà¸à¸²à¸à¸°',
- popupLocationBar: 'à¹à¸ªà¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸¥à¹',
- popupToolbar : 'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸',
- popupMenuBar : 'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¡à¸à¸¹',
- popupFullScreen : 'à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (IE5.5++ à¹à¸à¹à¸²à¸à¸±à¹à¸)',
- popupScrollBars : 'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¥à¸·à¹à¸à¸',
- popupDependent : 'à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (Netscape)',
- popupWidth : 'à¸à¸§à¹à¸²à¸',
- popupLeft : 'à¸à¸´à¸à¸±à¸à¸à¹à¸²à¸¢ (Left Position)',
- popupHeight : 'สูà¸',
- popupTop : 'à¸à¸´à¸à¸±à¸à¸à¸ (Top Position)',
- id : 'Id', // MISSING
- langDir : 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
- langDirLTR : 'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',
- langDirRTL : 'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',
- acccessKey : 'à¹à¸à¸à¹à¸à¸ª à¸à¸µà¸¢à¹',
- name : 'à¸à¸·à¹à¸',
- langCode : 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
- tabIndex : 'ลำà¸à¸±à¸à¸à¸à¸ à¹à¸à¹à¸',
- advisoryTitle : 'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
- advisoryContentType : 'à¸à¸à¸´à¸à¸à¸à¸à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
- cssClasses : 'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
- charset : 'ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£',
- styles : 'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
- selectAnchor : 'ระà¸à¸¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)',
- anchorName : 'à¸à¸·à¹à¸',
- anchorId : 'à¹à¸à¸à¸µ',
- emailAddress : 'à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)',
- emailSubject : 'หัวà¹à¸£à¸·à¹à¸à¸',
- emailBody : 'à¸à¹à¸à¸à¸§à¸²à¸¡',
- noAnchors : '(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¸ ายà¹à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹)',
- noUrl : 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)',
- noEmail : 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸¡à¸¥à¹ (E-mail)'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor',
- menu : 'รายละà¹à¸à¸µà¸¢à¸ Anchor',
- title : 'รายละà¹à¸à¸µà¸¢à¸ Anchor',
- name : 'à¸à¸·à¹à¸ Anchor',
- errorName : 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸·à¹à¸à¸à¸à¸ Anchor'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Find and Replace', // MISSING
- find : 'à¸à¹à¸à¸«à¸²',
- replace : 'à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¸à¸à¸µà¹',
- findWhat : 'à¸à¹à¸à¸«à¸²à¸à¸³à¸§à¹à¸²:',
- replaceWith : 'à¹à¸à¸à¸à¸µà¹à¸à¹à¸§à¸¢:',
- notFoundMsg : 'à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸µà¹à¸à¹à¸à¸«à¸².',
- matchCase : 'à¸à¸±à¸§à¹à¸«à¸à¹-à¹à¸¥à¹à¸ à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸',
- matchWord : 'à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸à¸à¸¸à¸à¸à¸³',
- matchCyclic : 'Match cyclic', // MISSING
- replaceAll : 'à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹à¸à¸',
- replaceSuccessMsg : '%1 occurrence(s) replaced.' // MISSING
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'à¸à¸²à¸£à¸²à¸',
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸',
- menu : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸',
- deleteTable : 'ลà¸à¸à¸²à¸£à¸²à¸',
- rows : 'à¹à¸à¸§',
- columns : 'สà¸à¸¡à¸à¹',
- border : 'à¸à¸à¸²à¸à¹à¸ªà¹à¸à¸à¸à¸',
- align : 'à¸à¸²à¸£à¸à¸±à¸à¸à¸³à¹à¸«à¸à¹à¸',
- alignLeft : 'à¸à¸´à¸à¸à¹à¸²à¸¢',
- alignCenter : 'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',
- alignRight : 'à¸à¸´à¸à¸à¸§à¸²',
- width : 'à¸à¸§à¹à¸²à¸',
- widthPx : 'à¸à¸¸à¸à¸ªà¸µ',
- widthPc : 'à¹à¸à¸à¸£à¹à¹à¸à¹à¸',
- widthUnit : 'width unit', // MISSING
- height : 'สูà¸',
- cellSpace : 'ระยะà¹à¸à¸§à¸à¸à¸à¸',
- cellPad : 'ระยะà¹à¸à¸§à¸à¸±à¹à¸',
- caption : 'หัวà¹à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸²à¸£à¸²à¸',
- summary : 'สรุà¸à¸à¸§à¸²à¸¡',
- headers : 'Headers', // MISSING
- headersNone : 'None', // MISSING
- headersColumn : 'First column', // MISSING
- headersRow : 'First Row', // MISSING
- headersBoth : 'Both', // MISSING
- invalidRows : 'Number of rows must be a number greater than 0.', // MISSING
- invalidCols : 'Number of columns must be a number greater than 0.', // MISSING
- invalidBorder : 'Border size must be a number.', // MISSING
- invalidWidth : 'Table width must be a number.', // MISSING
- invalidHeight : 'Table height must be a number.', // MISSING
- invalidCellSpacing : 'Cell spacing must be a number.', // MISSING
- invalidCellPadding : 'Cell padding must be a number.', // MISSING
-
- cell :
- {
- menu : 'à¸à¹à¸à¸à¸à¸²à¸£à¸²à¸',
- insertBefore : 'Insert Cell Before', // MISSING
- insertAfter : 'Insert Cell After', // MISSING
- deleteCell : 'ลà¸à¸à¹à¸à¸',
- merge : 'à¸à¸ªà¸²à¸à¸à¹à¸à¸',
- mergeRight : 'Merge Right', // MISSING
- mergeDown : 'Merge Down', // MISSING
- splitHorizontal : 'Split Cell Horizontally', // MISSING
- splitVertical : 'Split Cell Vertically', // MISSING
- title : 'Cell Properties', // MISSING
- cellType : 'Cell Type', // MISSING
- rowSpan : 'Rows Span', // MISSING
- colSpan : 'Columns Span', // MISSING
- wordWrap : 'Word Wrap', // MISSING
- hAlign : 'Horizontal Alignment', // MISSING
- vAlign : 'Vertical Alignment', // MISSING
- alignTop : 'Top', // MISSING
- alignMiddle : 'Middle', // MISSING
- alignBottom : 'Bottom', // MISSING
- alignBaseline : 'Baseline', // MISSING
- bgColor : 'Background Color', // MISSING
- borderColor : 'Border Color', // MISSING
- data : 'Data', // MISSING
- header : 'Header', // MISSING
- yes : 'Yes', // MISSING
- no : 'No', // MISSING
- invalidWidth : 'Cell width must be a number.', // MISSING
- invalidHeight : 'Cell height must be a number.', // MISSING
- invalidRowSpan : 'Rows span must be a whole number.', // MISSING
- invalidColSpan : 'Columns span must be a whole number.', // MISSING
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'à¹à¸à¸§',
- insertBefore : 'Insert Row Before', // MISSING
- insertAfter : 'Insert Row After', // MISSING
- deleteRow : 'ลà¸à¹à¸à¸§'
- },
-
- column :
- {
- menu : 'à¸à¸à¸¥à¸±à¸¡à¸à¹',
- insertBefore : 'Insert Column Before', // MISSING
- insertAfter : 'Insert Column After', // MISSING
- deleteColumn : 'ลà¸à¸ªà¸à¸¡à¸à¹'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'รายละà¹à¸à¸µà¸¢à¸à¸à¸à¸ à¸à¸¸à¹à¸¡',
- text : 'à¸à¹à¸à¸à¸§à¸²à¸¡ (à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£)',
- type : 'à¸à¹à¸à¸à¸§à¸²à¸¡',
- typeBtn : 'Button',
- typeSbm : 'Submit',
- typeRst : 'Reset'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸',
- radioTitle : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸',
- value : 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
- selected : 'à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸'
- },
-
- // Form Dialog.
- form :
- {
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡',
- menu : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡',
- action : 'à¹à¸à¸à¸à¸±à¹à¸',
- method : 'à¹à¸¡à¸à¸à¸',
- encoding : 'Encoding' // MISSING
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',
- selectInfo : 'à¸à¸´à¸à¹à¸',
- opAvail : 'รายà¸à¸²à¸£à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',
- value : 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
- size : 'à¸à¸à¸²à¸',
- lines : 'à¸à¸£à¸£à¸à¸±à¸',
- chkMulti : 'à¹à¸¥à¸·à¸à¸à¸«à¸¥à¸²à¸¢à¸à¹à¸²à¹à¸à¹',
- opText : 'à¸à¹à¸à¸à¸§à¸²à¸¡',
- opValue : 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
- btnAdd : 'à¹à¸à¸´à¹à¸¡',
- btnModify : 'à¹à¸à¹à¹à¸',
- btnUp : 'à¸à¸',
- btnDown : 'ลà¹à¸²à¸',
- btnSetValue : 'à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸',
- btnDelete : 'ลà¸'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¹à¸à¹à¸£à¸µà¸¢',
- cols : 'สà¸à¸¡à¸ à¹',
- rows : 'à¹à¸à¸§'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹',
- name : 'à¸à¸·à¹à¸',
- value : 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
- charWidth : 'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',
- maxChars : 'à¸à¸³à¸à¸§à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸ªà¸¹à¸à¸ªà¸¸à¸',
- type : 'à¸à¸à¸´à¸',
- typeText : 'à¸à¹à¸à¸à¸§à¸²à¸¡',
- typePass : 'รหัสà¸à¹à¸²à¸'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',
- name : 'à¸à¸·à¹à¸',
- value : 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£'
- },
-
- // Image Dialog.
- image :
- {
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸',
- titleButton : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸',
- menu : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸',
- infoTab : 'à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸£à¸¹à¸à¸ าà¸',
- btnUpload : 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)',
- upload : 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',
- alt : 'à¸à¸³à¸à¸£à¸°à¸à¸à¸à¸£à¸¹à¸à¸ าà¸',
- width : 'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',
- height : 'à¸à¸§à¸²à¸¡à¸ªà¸¹à¸',
- lockRatio : 'à¸à¸³à¸«à¸à¸à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ à¸à¸§à¹à¸²à¸-สูภà¹à¸à¸à¸à¸à¸à¸µà¹',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'à¸à¸³à¸«à¸à¸à¸£à¸¹à¸à¹à¸à¹à¸²à¸à¸à¸²à¸à¸à¸£à¸´à¸',
- border : 'à¸à¸à¸²à¸à¸à¸à¸à¸£à¸¹à¸',
- hSpace : 'ระยะà¹à¸à¸§à¸à¸à¸',
- vSpace : 'ระยะà¹à¸à¸§à¸à¸±à¹à¸',
- align : 'à¸à¸²à¸£à¸à¸±à¸à¸§à¸²à¸',
- alignLeft : 'à¸à¸´à¸à¸à¹à¸²à¸¢',
- alignRight : 'à¸à¸´à¸à¸à¸§à¸²',
- alertUrl : 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸à¹à¸à¸¥à¹à¸£à¸¹à¸à¸ าภ(URL)',
- linkTab : 'ลิà¹à¸à¸à¹',
- button2Img : 'Do you want to transform the selected image button on a simple image?', // MISSING
- img2Button : 'Do you want to transform the selected image on a image button?', // MISSING
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash',
- propertiesTab : 'Properties', // MISSING
- title : 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash',
- chkPlay : 'à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ Auto Play',
- chkLoop : 'à¹à¸¥à¹à¸à¸§à¸à¸£à¸à¸ Loop',
- chkMenu : 'à¹à¸«à¹à¹à¸à¹à¸à¸²à¸à¹à¸¡à¸à¸¹à¸à¸à¸ Flash',
- chkFull : 'Allow Fullscreen', // MISSING
- scale : 'à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ Scale',
- scaleAll : 'à¹à¸ªà¸à¸à¹à¸«à¹à¹à¸«à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸ Show all',
- scaleNoBorder : 'à¹à¸¡à¹à¹à¸ªà¸à¸à¹à¸ªà¹à¸à¸à¸à¸ No Border',
- scaleFit : 'à¹à¸ªà¸à¸à¹à¸«à¹à¸à¸à¸à¸µà¸à¸±à¸à¸à¸·à¹à¸à¸à¸µà¹ Exact Fit',
- access : 'Script Access', // MISSING
- accessAlways : 'Always', // MISSING
- accessSameDomain: 'Same domain', // MISSING
- accessNever : 'Never', // MISSING
- align : 'à¸à¸²à¸£à¸à¸±à¸à¸§à¸²à¸',
- alignLeft : 'à¸à¸´à¸à¸à¹à¸²à¸¢',
- alignAbsBottom : 'à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸à¸ªà¸¸à¸',
- alignAbsMiddle : 'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',
- alignBaseline : 'à¸à¸´à¸à¸à¸£à¸£à¸à¸±à¸',
- alignBottom : 'à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸',
- alignMiddle : 'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸à¹à¸à¸§à¸à¸±à¹à¸',
- alignRight : 'à¸à¸´à¸à¸à¸§à¸²',
- alignTextTop : 'à¹à¸à¹à¸à¸±à¸§à¸à¸±à¸à¸©à¸£',
- alignTop : 'à¸à¸à¸ªà¸¸à¸',
- quality : 'Quality', // MISSING
- qualityBest : 'Best', // MISSING
- qualityHigh : 'High', // MISSING
- qualityAutoHigh : 'Auto High', // MISSING
- qualityMedium : 'Medium', // MISSING
- qualityAutoLow : 'Auto Low', // MISSING
- qualityLow : 'Low', // MISSING
- windowModeWindow: 'Window', // MISSING
- windowModeOpaque: 'Opaque', // MISSING
- windowModeTransparent : 'Transparent', // MISSING
- windowMode : 'Window mode', // MISSING
- flashvars : 'Variables for Flash', // MISSING
- bgcolor : 'สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸',
- width : 'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',
- height : 'à¸à¸§à¸²à¸¡à¸ªà¸¹à¸',
- hSpace : 'ระยะà¹à¸à¸§à¸à¸à¸',
- vSpace : 'ระยะà¹à¸à¸§à¸à¸±à¹à¸',
- validateSrc : 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)',
- validateWidth : 'Width must be a number.', // MISSING
- validateHeight : 'Height must be a number.', // MISSING
- validateHSpace : 'HSpace must be a number.', // MISSING
- validateVSpace : 'VSpace must be a number.' // MISSING
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'à¸à¸£à¸§à¸à¸à¸²à¸£à¸ªà¸°à¸à¸à¸à¸³',
- title : 'Spell Check', // MISSING
- notAvailable : 'Sorry, but service is unavailable now.', // MISSING
- errorLoading : 'Error loading application service host: %s.', // MISSING
- notInDic : 'à¹à¸¡à¹à¸à¸à¹à¸à¸à¸´à¸à¸à¸±à¸à¸à¸²à¸£à¸µ',
- changeTo : 'à¹à¸à¹à¹à¸à¹à¸à¹à¸',
- btnIgnore : 'ยà¸à¹à¸§à¹à¸',
- btnIgnoreAll : 'ยà¸à¹à¸§à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸',
- btnReplace : 'à¹à¸à¸à¸à¸µà¹',
- btnReplaceAll : 'à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸',
- btnUndo : 'ยà¸à¹à¸¥à¸´à¸',
- noSuggestions : '- à¹à¸¡à¹à¸¡à¸µà¸à¸³à¹à¸à¸°à¸à¸³à¹à¸à¹ -',
- progress : 'à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸...',
- noMispell : 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸à¸à¸à¸³à¸ªà¸°à¸à¸à¸à¸´à¸',
- noChanges : 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¹à¸à¸³à¹à¸à¹',
- oneChange : 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸à¹à¹à¸1à¸à¸³',
- manyChanges : 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸:: à¹à¸à¹à¹à¸ %1 à¸à¸³',
- ieSpellDownload : 'à¹à¸¡à¹à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸°à¸à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸. à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸«à¸¡à¸à¸£à¸±à¸?'
- },
-
- smiley :
- {
- toolbar : 'รูà¸à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹',
- title : 'à¹à¸à¸£à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 element' // MISSING
- },
-
- numberedlist : 'ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸',
- bulletedlist : 'ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹',
- indent : 'à¹à¸à¸´à¹à¸¡à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²',
- outdent : 'ลà¸à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²',
-
- justify :
- {
- left : 'à¸à¸±à¸à¸à¸´à¸à¸à¹à¸²à¸¢',
- center : 'à¸à¸±à¸à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',
- right : 'à¸à¸±à¸à¸à¸´à¸à¸à¸§à¸²',
- block : 'à¸à¸±à¸à¸à¸à¸à¸µà¸«à¸à¹à¸²à¸à¸£à¸°à¸à¸²à¸©'
- },
-
- blockquote : 'Block Quote', // MISSING
-
- clipboard :
- {
- title : 'วาà¸',
- cutError : 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ X à¸à¸£à¹à¸à¸¡à¸à¸±à¸).',
- copyError : 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸³à¹à¸à¸²à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ C à¸à¸£à¹à¸à¸¡à¸à¸±à¸).',
- pasteMsg : 'à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸µà¸¢à¹à¸à¸à¸£à¹à¸à¹à¸à¹à¸²à¸à¸±à¹à¸ à¹à¸à¸¢à¸à¸à¸à¸¸à¹à¸¡ (<strong>Ctrl/Cmd à¹à¸¥à¸° V</strong>)à¸à¸£à¹à¸à¸¡à¹à¸à¸±à¸ à¹à¸¥à¸°à¸à¸ <strong>OK</strong>.',
- securityMsg : 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
- toolbar : 'วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸',
- title : 'วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²',
- title : 'วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²'
- },
-
- templates :
- {
- button : 'à¹à¸à¸¡à¹à¸à¸¥à¸',
- title : 'à¹à¸à¸¡à¹à¸à¸¥à¸à¸à¸à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹',
- options : 'Template Options', // MISSING
- insertOption : 'à¹à¸à¸à¸à¸µà¹à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸',
- selectPromptMsg : 'à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸ à¹à¸à¸¡à¹à¸à¸¥à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¹à¸à¹à¹à¸à¹à¸à¸à¸µà¸à¸´à¸à¹à¸à¸à¸£à¹<br />(à¹à¸à¸·à¹à¸à¸«à¸²à¸ªà¹à¸§à¸à¸à¸µà¹à¸à¸°à¸«à¸²à¸¢à¹à¸):',
- emptyListMsg : '(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸³à¸«à¸à¸à¹à¸à¸¡à¹à¸à¸¥à¸)'
- },
-
- showBlocks : 'Show Blocks', // MISSING
-
- stylesCombo :
- {
- label : 'ลัà¸à¸©à¸à¸°',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block Styles', // MISSING
- panelTitle2 : 'Inline Styles', // MISSING
- panelTitle3 : 'Object Styles' // MISSING
- },
-
- format :
- {
- label : 'รูà¸à¹à¸à¸',
- panelTitle : 'รูà¸à¹à¸à¸',
-
- tag_p : 'Normal',
- tag_pre : 'Formatted',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Paragraph (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'à¹à¸à¸à¸à¸±à¸à¸©à¸£',
- voiceLabel : 'Font', // MISSING
- panelTitle : 'à¹à¸à¸à¸à¸±à¸à¸©à¸£'
- },
-
- fontSize :
- {
- label : 'à¸à¸à¸²à¸',
- voiceLabel : 'Font Size', // MISSING
- panelTitle : 'à¸à¸à¸²à¸'
- },
-
- colorButton :
- {
- textColorTitle : 'สีà¸à¸±à¸§à¸à¸±à¸à¸©à¸£',
- bgColorTitle : 'สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸',
- panelTitle : 'Colors', // MISSING
- auto : 'สีà¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´',
- more : 'à¹à¸¥à¸·à¸à¸à¸ªà¸µà¸à¸·à¹à¸à¹...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Spell Check As You Type', // MISSING
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'Enable SCAYT', // MISSING
- disable : 'Disable SCAYT', // MISSING
- about : 'About SCAYT', // MISSING
- toggle : 'Toggle SCAYT', // MISSING
- options : 'Options', // MISSING
- langs : 'Languages', // MISSING
- moreSuggestions : 'More suggestions', // MISSING
- ignore : 'Ignore', // MISSING
- ignoreAll : 'Ignore All', // MISSING
- addWord : 'Add Word', // MISSING
- emptyDic : 'Dictionary name should not be empty.', // MISSING
-
- optionsTab : 'Options', // MISSING
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Languages', // MISSING
-
- dictionariesTab : 'Dictionaries', // MISSING
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'About' // MISSING
- },
-
- about :
- {
- title : 'About CKEditor', // MISSING
- dlgTitle : 'About CKEditor', // MISSING
- moreInfo : 'For licensing information please visit our web site:', // MISSING
- copy : 'Copyright © $1. All rights reserved.' // MISSING
- },
-
- maximize : 'Maximize', // MISSING
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'Anchor', // MISSING
- flash : 'Flash Animation', // MISSING
- div : 'Page Break', // MISSING
- unknown : 'Unknown Object' // MISSING
- },
-
- resize : 'Drag to resize', // MISSING
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Thai language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'th' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Rich Text Editor', // MISSING
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Press ALT 0 for help', // MISSING
+
+ browseServer: 'à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸¥à¹à¸à¸±à¸à¹à¸«à¸¥à¸',
+ url: 'à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸ URL',
+ protocol: 'à¹à¸à¸£à¹à¸à¸à¸à¸¥',
+ upload: 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',
+ uploadSubmit: 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)',
+ image: 'รูà¸à¸ าà¸',
+ flash: 'à¹à¸à¸¥à¹ Flash',
+ form: 'à¹à¸à¸à¸à¸à¸£à¹à¸¡',
+ checkbox: 'à¹à¸à¹à¸à¸à¹à¸à¸',
+ radio: 'à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸',
+ textField: 'à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹',
+ textarea: 'à¹à¸à¹à¸à¸à¹à¹à¸à¹à¸£à¸µà¸¢',
+ hiddenField: 'ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',
+ button: 'à¸à¸¸à¹à¸¡',
+ select: 'à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',
+ imageButton: 'à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸',
+ notSet: '<à¹à¸¡à¹à¸£à¸°à¸à¸¸>',
+ id: 'à¹à¸à¸à¸µ',
+ name: 'à¸à¸·à¹à¸',
+ langDir: 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
+ langDirLtr: 'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',
+ langDirRtl: 'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',
+ langCode: 'รหัสภาษา',
+ longDescr: 'à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¸à¸£à¸°à¸à¸à¸ URL',
+ cssClass: 'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ advisoryTitle: 'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
+ cssStyle: 'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ ok: 'à¸à¸à¸¥à¸',
+ cancel: 'ยà¸à¹à¸¥à¸´à¸',
+ close: 'Close', // MISSING
+ preview: 'à¸à¸¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸±à¸§à¸à¸¢à¹à¸²à¸',
+ resize: 'Resize', // MISSING
+ generalTab: 'General', // MISSING
+ advancedTab: 'à¸à¸±à¹à¸à¸ªà¸¹à¸',
+ validateNumberFailed: 'This value is not a number.', // MISSING
+ confirmNewPage: 'Any unsaved changes to this content will be lost. Are you sure you want to load new page?', // MISSING
+ confirmCancel: 'Some of the options have been changed. Are you sure to close the dialog?', // MISSING
+ options: 'Options', // MISSING
+ target: 'à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸¥à¸´à¸à¸à¹',
+ targetNew: 'New Window (_blank)', // MISSING
+ targetTop: 'Topmost Window (_top)', // MISSING
+ targetSelf: 'Same Window (_self)', // MISSING
+ targetParent: 'Parent Window (_parent)', // MISSING
+ langDirLTR: 'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',
+ langDirRTL: 'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',
+ styles: 'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ cssClasses: 'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ width: 'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',
+ height: 'à¸à¸§à¸²à¸¡à¸ªà¸¹à¸',
+ align: 'à¸à¸²à¸£à¸à¸±à¸à¸§à¸²à¸',
+ alignLeft: 'à¸à¸´à¸à¸à¹à¸²à¸¢',
+ alignRight: 'à¸à¸´à¸à¸à¸§à¸²',
+ alignCenter: 'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',
+ alignTop: 'à¸à¸à¸ªà¸¸à¸',
+ alignMiddle: 'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸à¹à¸à¸§à¸à¸±à¹à¸',
+ alignBottom: 'à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Height must be a number.', // MISSING
+ invalidWidth: 'Width must be a number.', // MISSING
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, unavailable</span>' // MISSING
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/tr.js b/devel/third-party/ckeditor/lang/tr.js
index f0135f0..e87d09a 100644
--- a/devel/third-party/ckeditor/lang/tr.js
+++ b/devel/third-party/ckeditor/lang/tr.js
@@ -1,757 +1,104 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
-* @fileOverview
-*/
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['tr'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Zengin metin editörü, %1, yardım için ALT 0 tuÅuna basın.',
-
- // ARIA descriptions.
- toolbar : 'Toolbar',
- editor : 'Zengin Metin Editörü',
-
- // Toolbar buttons without dialogs.
- source : 'Kaynak',
- newPage : 'Yeni Sayfa',
- save : 'Kaydet',
- preview : 'Ãn İzleme',
- cut : 'Kes',
- copy : 'Kopyala',
- paste : 'YapıÅtır',
- print : 'Yazdır',
- underline : 'Altı Ãizgili',
- bold : 'Kalın',
- italic : 'İtalik',
- selectAll : 'Tümünü Seç',
- removeFormat : 'Biçimi Kaldır',
- strike : 'Ãstü Ãizgili',
- subscript : 'Alt Simge',
- superscript : 'Ãst Simge',
- horizontalrule : 'Yatay Satır Ekle',
- pagebreak : 'Sayfa Sonu Ekle',
- unlink : 'Köprü Kaldır',
- undo : 'Geri Al',
- redo : 'Tekrarla',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Sunucuyu Gez',
- url : 'URL',
- protocol : 'Protokol',
- upload : 'KarÅıya Yükle',
- uploadSubmit : 'Sunucuya Yolla',
- image : 'Resim',
- flash : 'Flash',
- form : 'Form',
- checkbox : 'Onay Kutusu',
- radio : 'Seçenek DüÄmesi',
- textField : 'Metin GiriÅi',
- textarea : 'Ãok Satırlı Metin',
- hiddenField : 'Gizli Veri',
- button : 'DüÄme',
- select : 'Seçim Menüsü',
- imageButton : 'Resimli DüÄme',
- notSet : '<tanımlanmamıÅ>',
- id : 'Kimlik',
- name : 'Ad',
- langDir : 'Dil Yönü',
- langDirLtr : 'Soldan SaÄa (LTR)',
- langDirRtl : 'SaÄdan Sola (RTL)',
- langCode : 'Dil Kodlaması',
- longDescr : 'Uzun Tanımlı URL',
- cssClass : 'Biçem Sayfası Sınıfları',
- advisoryTitle : 'DanıÅma BaÅlıÄı',
- cssStyle : 'Biçem',
- ok : 'Tamam',
- cancel : 'İptal',
- close : 'Kapat',
- preview : 'Ãn gösterim',
- generalTab : 'Genel',
- advancedTab : 'GeliÅmiÅ',
- validateNumberFailed : 'Bu deÄer sayı deÄildir.',
- confirmNewPage : 'İceriÄiniz kayıt edilmediÄinden dolayı kaybolacaktır. Yeni bir sayfa yüklemek istediÄinize eminsiniz?',
- confirmCancel : 'Bazı seçenekler deÄiÅmiÅtir. Dialog penceresini kapatmak istediÄinize eminmisiniz?',
- options : 'Seçenekler',
- target : 'Hedef',
- targetNew : 'Yeni Pencere (_blank)',
- targetTop : 'Enüst Pencere (_top)',
- targetSelf : 'Aynı Pencere (_self)',
- targetParent : 'Ana Pencere (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, hazır deÄildir</span>'
- },
-
- contextmenu :
- {
- options : 'İçerik Menüsü Seçenekleri'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Ãzel Karakter Ekle',
- title : 'Ãzel Karakter Seç',
- options : 'Ãzel Karakter Seçenekleri'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Link Ekle/Düzenle',
- other : '<diÄer>',
- menu : 'Link Düzenle',
- title : 'Link',
- info : 'Link Bilgisi',
- target : 'Hedef',
- upload : 'KarÅıya Yükle',
- advanced : 'GeliÅmiÅ',
- type : 'Link Türü',
- toUrl : 'URL',
- toAnchor : 'Bu sayfada çapa',
- toEmail : 'E-Posta',
- targetFrame : '<çerçeve>',
- targetPopup : '<yeni açılan pencere>',
- targetFrameName : 'Hedef Ãerçeve Adı',
- targetPopupName : 'Yeni Açılan Pencere Adı',
- popupFeatures : 'Yeni Açılan Pencere Ãzellikleri',
- popupResizable : 'Resizable',
- popupStatusBar : 'Durum ÃubuÄu',
- popupLocationBar: 'Yer ÃubuÄu',
- popupToolbar : 'Araç ÃubuÄu',
- popupMenuBar : 'Menü ÃubuÄu',
- popupFullScreen : 'Tam Ekran (IE)',
- popupScrollBars : 'Kaydırma Ãubukları',
- popupDependent : 'BaÄımlı (Netscape)',
- popupWidth : 'GeniÅlik',
- popupLeft : 'Sola Göre Konum',
- popupHeight : 'Yükseklik',
- popupTop : 'Yukarıya Göre Konum',
- id : 'Id',
- langDir : 'Dil Yönü',
- langDirLTR : 'Soldan SaÄa (LTR)',
- langDirRTL : 'SaÄdan Sola (RTL)',
- acccessKey : 'EriÅim TuÅu',
- name : 'Ad',
- langCode : 'Dil Yönü',
- tabIndex : 'Sekme İndeksi',
- advisoryTitle : 'DanıÅma BaÅlıÄı',
- advisoryContentType : 'DanıÅma İçerik Türü',
- cssClasses : 'Biçem Sayfası Sınıfları',
- charset : 'BaÄlı Kaynak Karakter Gurubu',
- styles : 'Biçem',
- selectAnchor : 'BaÄlantı Seç',
- anchorName : 'BaÄlantı Adı ile',
- anchorId : 'Eleman Kimlik Numarası ile',
- emailAddress : 'E-Posta Adresi',
- emailSubject : 'İleti Konusu',
- emailBody : 'İleti Gövdesi',
- noAnchors : '(Bu belgede hiç çapa yok)',
- noUrl : 'Lütfen Link URL\'sini yazın',
- noEmail : 'Lütfen E-posta adresini yazın'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'BaÄlantı Ekle/Düzenle',
- menu : 'BaÄlantı Ãzellikleri',
- title : 'BaÄlantı Ãzellikleri',
- name : 'BaÄlantı Adı',
- errorName : 'Lütfen baÄlantı için ad giriniz'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'SayılandırılmıŠListe Ãzellikleri',
- bulletedTitle : 'Simgeli Liste Ãzellikleri',
- type : 'Tipi',
- start : 'BaÅla',
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Daire',
- disc : 'Disk',
- square : 'Kare',
- none : 'Yok',
- notset : '<ayarlanmamıÅ>',
- armenian : 'Ermenice sayılandırma',
- georgian : 'Gürcüce numaralandırma (an, ban, gan, vs.)',
- lowerRoman : 'Küçük Roman (i, ii, iii, iv, v, vs.)',
- upperRoman : 'Büyük Roman (I, II, III, IV, V, vs.)',
- lowerAlpha : 'Küçük Alpha (a, b, c, d, e, vs.)',
- upperAlpha : 'Büyük Alpha (A, B, C, D, E, vs.)',
- lowerGreek : 'Küçük Greek (alpha, beta, gamma, vs.)',
- decimal : 'Ondalık (1, 2, 3, vs.)',
- decimalLeadingZero : 'BaÅı sıfırlı ondalık (01, 02, 03, vs.)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Bul ve DeÄiÅtir',
- find : 'Bul',
- replace : 'DeÄiÅtir',
- findWhat : 'Aranan:',
- replaceWith : 'Bununla deÄiÅtir:',
- notFoundMsg : 'Belirtilen yazı bulunamadı.',
- matchCase : 'Büyük/küçük harf duyarlı',
- matchWord : 'Kelimenin tamamı uysun',
- matchCyclic : 'EÅleÅen döngü',
- replaceAll : 'Tümünü DeÄiÅtir',
- replaceSuccessMsg : '%1 bulunanlardan deÄiÅtirildi.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Tablo',
- title : 'Tablo Ãzellikleri',
- menu : 'Tablo Ãzellikleri',
- deleteTable : 'Tabloyu Sil',
- rows : 'Satırlar',
- columns : 'Sütunlar',
- border : 'Kenar KalınlıÄı',
- align : 'Hizalama',
- alignLeft : 'Sol',
- alignCenter : 'Merkez',
- alignRight : 'SaÄ',
- width : 'GeniÅlik',
- widthPx : 'piksel',
- widthPc : 'yüzde',
- widthUnit : 'geniÅlik birimi',
- height : 'Yükseklik',
- cellSpace : 'Izgara kalınlıÄı',
- cellPad : 'Izgara yazı arası',
- caption : 'BaÅlık',
- summary : 'Ãzet',
- headers : 'BaÅlıklar',
- headersNone : 'Yok',
- headersColumn : 'İlk Sütun',
- headersRow : 'İlk Satır',
- headersBoth : 'Her İkisi',
- invalidRows : 'Satır sayısı 0 sayısından büyük olmalıdır.',
- invalidCols : 'Sütün sayısı 0 sayısından büyük olmalıdır.',
- invalidBorder : 'Ãerceve büyüklüklüÄü sayı olmalıdır.',
- invalidWidth : 'Tablo geniÅliÄi sayı olmalıdır.',
- invalidHeight : 'Tablo yüksekliÄi sayı olmalıdır.',
- invalidCellSpacing : 'Hücre boÅluÄu (spacing) sayı olmalıdır.',
- invalidCellPadding : 'Hücre aralıÄı (padding) sayı olmalıdır.',
-
- cell :
- {
- menu : 'Hücre',
- insertBefore : 'Hücre Ekle - Ãnce',
- insertAfter : 'Hücre Ekle - Sonra',
- deleteCell : 'Hücre Sil',
- merge : 'Hücreleri BirleÅtir',
- mergeRight : 'BirleÅtir - SaÄdaki İle ',
- mergeDown : 'BirleÅtir - AÅaÄıdaki İle ',
- splitHorizontal : 'Hücreyi Yatay Böl',
- splitVertical : 'Hücreyi Dikey Böl',
- title : 'Hücre Ãzellikleri',
- cellType : 'Hücre Tipi',
- rowSpan : 'Satırlar Mesafesi (Span)',
- colSpan : 'Sütünlar Mesafesi (Span)',
- wordWrap : 'Kelime Kaydırma',
- hAlign : 'DüÅey Hizalama',
- vAlign : 'YataÅ Hizalama',
- alignTop : 'Ãst',
- alignMiddle : 'Orta',
- alignBottom : 'Alt',
- alignBaseline : 'Tabana',
- bgColor : 'Arkaplan Rengi',
- borderColor : 'Ãerçeve Rengi',
- data : 'Veri',
- header : 'BaÅlık',
- yes : 'Evet',
- no : 'Hayır',
- invalidWidth : 'Hücre geniÅliÄi sayı olmalıdır.',
- invalidHeight : 'Hücre yüksekliÄi sayı olmalıdır.',
- invalidRowSpan : 'Satırların mesafesi tam sayı olmalıdır.',
- invalidColSpan : 'Sütünların mesafesi tam sayı olmalıdır.',
- chooseColor : 'Seçiniz'
- },
-
- row :
- {
- menu : 'Satır',
- insertBefore : 'Satır Ekle - Ãnce',
- insertAfter : 'Satır Ekle - Sonra',
- deleteRow : 'Satır Sil'
- },
-
- column :
- {
- menu : 'Sütun',
- insertBefore : 'Kolon Ekle - Ãnce',
- insertAfter : 'Kolon Ekle - Sonra',
- deleteColumn : 'Sütun Sil'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'DüÄme Ãzellikleri',
- text : 'Metin (DeÄer)',
- type : 'Tip',
- typeBtn : 'DüÄme',
- typeSbm : 'Gönder',
- typeRst : 'Sıfırla'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Onay Kutusu Ãzellikleri',
- radioTitle : 'Seçenek DüÄmesi Ãzellikleri',
- value : 'DeÄer',
- selected : 'Seçili'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Form Ãzellikleri',
- menu : 'Form Ãzellikleri',
- action : 'İÅlem',
- method : 'Yöntem',
- encoding : 'Kodlama'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Seçim Menüsü Ãzellikleri',
- selectInfo : 'Bilgi',
- opAvail : 'Mevcut Seçenekler',
- value : 'DeÄer',
- size : 'Boyut',
- lines : 'satır',
- chkMulti : 'Ãoklu seçime izin ver',
- opText : 'Metin',
- opValue : 'DeÄer',
- btnAdd : 'Ekle',
- btnModify : 'Düzenle',
- btnUp : 'Yukarı',
- btnDown : 'AÅaÄı',
- btnSetValue : 'Seçili deÄer olarak ata',
- btnDelete : 'Sil'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Ãok Satırlı Metin Ãzellikleri',
- cols : 'Sütunlar',
- rows : 'Satırlar'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Metin GiriÅi Ãzellikleri',
- name : 'Ad',
- value : 'DeÄer',
- charWidth : 'Karakter GeniÅliÄi',
- maxChars : 'En Fazla Karakter',
- type : 'Tür',
- typeText : 'Metin',
- typePass : 'Åifre'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Gizli Veri Ãzellikleri',
- name : 'Ad',
- value : 'DeÄer'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Resim Ãzellikleri',
- titleButton : 'Resimli DüÄme Ãzellikleri',
- menu : 'Resim Ãzellikleri',
- infoTab : 'Resim Bilgisi',
- btnUpload : 'Sunucuya Yolla',
- upload : 'KarÅıya Yükle',
- alt : 'Alternatif Yazı',
- width : 'GeniÅlik',
- height : 'Yükseklik',
- lockRatio : 'Oranı Kilitle',
- unlockRatio : 'Kilitli Oran',
- resetSize : 'Boyutu BaÅa Döndür',
- border : 'Kenar',
- hSpace : 'Yatay BoÅluk',
- vSpace : 'Dikey BoÅluk',
- align : 'Hizalama',
- alignLeft : 'Sol',
- alignRight : 'SaÄ',
- alertUrl : 'Lütfen resmin URL\'sini yazınız',
- linkTab : 'Köprü',
- button2Img : 'Seçili resim butonunu basit resime çevirmek istermisiniz?',
- img2Button : 'Seçili olan resimi, resimli butona çevirmek istermisiniz?',
- urlMissing : 'Resmin URL kaynaÄı eksiktir.',
- validateWidth : 'GeniÅlik tam sayı olmalıdır.',
- validateHeight : 'Yükseklik tam sayı olmalıdır.',
- validateBorder : 'Ãerçeve tam sayı olmalıdır.',
- validateHSpace : 'HSpace tam sayı olmalıdır.',
- validateVSpace : 'VSpace tam sayı olmalıdır.'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash Ãzellikleri',
- propertiesTab : 'Ãzellikler',
- title : 'Flash Ãzellikleri',
- chkPlay : 'Otomatik Oynat',
- chkLoop : 'Döngü',
- chkMenu : 'Flash Menüsünü Kullan',
- chkFull : 'Tam ekrana İzinver',
- scale : 'Boyutlandır',
- scaleAll : 'Hepsini Göster',
- scaleNoBorder : 'Kenar Yok',
- scaleFit : 'Tam SıÄdır',
- access : 'Kod İzni',
- accessAlways : 'Herzaman',
- accessSameDomain: 'Aynı domain',
- accessNever : 'Asla',
- align : 'Hizalama',
- alignLeft : 'Sol',
- alignAbsBottom : 'Tam Altı',
- alignAbsMiddle : 'Tam Ortası',
- alignBaseline : 'Taban Ãizgisi',
- alignBottom : 'Alt',
- alignMiddle : 'Orta',
- alignRight : 'SaÄ',
- alignTextTop : 'Yazı Tepeye',
- alignTop : 'Tepe',
- quality : 'Kalite',
- qualityBest : 'En iyi',
- qualityHigh : 'Yüksek',
- qualityAutoHigh : 'Otomatik Yükseklik',
- qualityMedium : 'Orta',
- qualityAutoLow : 'Otomatik DüÅüklük',
- qualityLow : 'DüÅük',
- windowModeWindow: 'Pencere',
- windowModeOpaque: 'Opak',
- windowModeTransparent : 'Åeffaf',
- windowMode : 'Pencere modu',
- flashvars : 'Flash DeÄerleri',
- bgcolor : 'Arka Renk',
- width : 'GeniÅlik',
- height : 'Yükseklik',
- hSpace : 'Yatay BoÅluk',
- vSpace : 'Dikey BoÅluk',
- validateSrc : 'Lütfen köprü URL\'sini yazın',
- validateWidth : 'GeniÅlik bir sayı olmalıdır.',
- validateHeight : 'Yükseklik sayı olmalıdır.',
- validateHSpace : 'HSpace sayı olmalıdır.',
- validateVSpace : 'VSpace sayı olmalıdır.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Yazım Denetimi',
- title : 'Yazımı Denetle',
- notAvailable : 'Ãzügünüz, bu servis Åuanda hizmet dıÅıdır.',
- errorLoading : 'Uygulamada yüklerken hata oluÅtu: %s.',
- notInDic : 'Sözlükte Yok',
- changeTo : 'Åuna deÄiÅtir:',
- btnIgnore : 'Yoksay',
- btnIgnoreAll : 'Tümünü Yoksay',
- btnReplace : 'DeÄiÅtir',
- btnReplaceAll : 'Tümünü DeÄiÅtir',
- btnUndo : 'Geri Al',
- noSuggestions : '- Ãneri Yok -',
- progress : 'Yazım denetimi iÅlemde...',
- noMispell : 'Yazım denetimi tamamlandı: YanlıŠyazıma rastlanmadı',
- noChanges : 'Yazım denetimi tamamlandı: Hiçbir kelime deÄiÅtirilmedi',
- oneChange : 'Yazım denetimi tamamlandı: Bir kelime deÄiÅtirildi',
- manyChanges : 'Yazım denetimi tamamlandı: %1 kelime deÄiÅtirildi',
- ieSpellDownload : 'Yazım denetimi yüklenmemiÅ. Åimdi yüklemek ister misiniz?'
- },
-
- smiley :
- {
- toolbar : 'İfade',
- title : 'İfade Ekle',
- options : 'İfade Seçenekleri'
- },
-
- elementsPath :
- {
- eleLabel : 'Elementlerin yolu',
- eleTitle : '%1 element'
- },
-
- numberedlist : 'Numaralı Liste',
- bulletedlist : 'Simgeli Liste',
- indent : 'Sekme Arttır',
- outdent : 'Sekme Azalt',
-
- justify :
- {
- left : 'Sola Dayalı',
- center : 'OrtalanmıÅ',
- right : 'SaÄa Dayalı',
- block : 'İki Kenara YaslanmıÅ'
- },
-
- blockquote : 'Blok OluÅtur',
-
- clipboard :
- {
- title : 'YapıÅtır',
- cutError : 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+X) tuÅlarını kullanın.',
- copyError : 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+C) tuÅlarını kullanın.',
- pasteMsg : 'Lütfen aÅaÄıdaki kutunun içine yapıÅtırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.',
- securityMsg : 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya eriÅimine izin vermiyor. Bu pencere içine tekrar yapıÅtırmalısınız..',
- pasteArea : 'Paste Area'
- },
-
- pastefromword :
- {
- confirmCleanup : 'YapıÅtırmaya çalıÅtıÄınız metin Word\'den kopyalanmıÅtır. YapıÅtırmadan önce silmek istermisiniz?',
- toolbar : 'Word\'den YapıÅtır',
- title : 'Word\'den YapıÅtır',
- error : 'YapıÅtırmadaki veri bilgisi hata düzelene kadar silinmeyecektir'
- },
-
- pasteText :
- {
- button : 'Düz Metin Olarak YapıÅtır',
- title : 'Düz Metin Olarak YapıÅtır'
- },
-
- templates :
- {
- button : 'Åablonlar',
- title : 'İçerik Åablonları',
- options : 'Åablon Seçenekleri',
- insertOption : 'Mevcut içerik ile deÄiÅtir',
- selectPromptMsg : 'Düzenleyicide açmak için lütfen bir Åablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):',
- emptyListMsg : '(Belirli bir Åablon seçilmedi)'
- },
-
- showBlocks : 'Blokları Göster',
-
- stylesCombo :
- {
- label : 'Biçem',
- panelTitle : 'Stilleri Düzenliyor',
- panelTitle1 : 'Blok Stilleri',
- panelTitle2 : 'Inline Stilleri',
- panelTitle3 : 'Nesne Stilleri'
- },
-
- format :
- {
- label : 'Biçim',
- panelTitle : 'Biçim',
-
- tag_p : 'Normal',
- tag_pre : 'Biçimli',
- tag_address : 'Adres',
- tag_h1 : 'BaÅlık 1',
- tag_h2 : 'BaÅlık 2',
- tag_h3 : 'BaÅlık 3',
- tag_h4 : 'BaÅlık 4',
- tag_h5 : 'BaÅlık 5',
- tag_h6 : 'BaÅlık 6',
- tag_div : 'Paragraf (DIV)'
- },
-
- div :
- {
- title : 'Div İçeriÄi OluÅtur',
- toolbar : 'Div İçeriÄi OluÅtur',
- cssClassInputLabel : 'Stilltipi Sınıfı',
- styleSelectLabel : 'Stil',
- IdInputLabel : 'Id',
- languageCodeInputLabel : ' Dil Kodu',
- inlineStyleInputLabel : 'Inline Stili',
- advisoryTitleInputLabel : 'Tavsiye BaÅlıÄı',
- langDirLabel : 'Dil Yönü',
- langDirLTRLabel : 'Soldan saÄa (LTR)',
- langDirRTLLabel : 'SaÄdan sola (RTL)',
- edit : 'Div Düzenle',
- remove : 'Div Kaldır'
- },
-
- font :
- {
- label : 'Yazı Türü',
- voiceLabel : 'Font',
- panelTitle : 'Yazı Türü'
- },
-
- fontSize :
- {
- label : 'Boyut',
- voiceLabel : 'Font Size',
- panelTitle : 'Boyut'
- },
-
- colorButton :
- {
- textColorTitle : 'Yazı Rengi',
- bgColorTitle : 'Arka Renk',
- panelTitle : 'Renkler',
- auto : 'Otomatik',
- more : 'DiÄer renkler...'
- },
-
- colors :
- {
- '000' : 'Siyah',
- '800000' : 'Kestane',
- '8B4513' : 'Koyu Kahverengi',
- '2F4F4F' : 'Koyu KurÅuni Gri',
- '008080' : 'Teal',
- '000080' : 'Mavi',
- '4B0082' : 'Ãivit Mavisi',
- '696969' : 'Silik Gri',
- 'B22222' : 'AteÅ TuÄlası',
- 'A52A2A' : 'Kahverengi',
- 'DAA520' : 'Altun Sırık',
- '006400' : 'Koyu YeÅil',
- '40E0D0' : 'Turkuaz',
- '0000CD' : 'Orta Mavi',
- '800080' : 'Pembe',
- '808080' : 'Gri',
- 'F00' : 'Kırmızı',
- 'FF8C00' : 'Koyu Portakal',
- 'FFD700' : 'Altın',
- '008000' : 'YeÅil',
- '0FF' : 'Ciyan',
- '00F' : 'Mavi',
- 'EE82EE' : 'MenekÅe',
- 'A9A9A9' : 'Koyu Gri',
- 'FFA07A' : 'Açık Sarımsı',
- 'FFA500' : 'Portakal',
- 'FFFF00' : 'Sarı',
- '00FF00' : 'Açık YeÅil',
- 'AFEEEE' : 'Sönük Turkuaz',
- 'ADD8E6' : 'Açık Mavi',
- 'DDA0DD' : 'Mor',
- 'D3D3D3' : 'Açık Gri',
- 'FFF0F5' : 'Eflatun Pembe',
- 'FAEBD7' : 'Antik Beyaz',
- 'FFFFE0' : 'Açık Sarı',
- 'F0FFF0' : 'Balsarısı',
- 'F0FFFF' : 'Gök Mavisi',
- 'F0F8FF' : 'Reha Mavi',
- 'E6E6FA' : 'Eflatun',
- 'FFF' : 'Beyaz'
- },
-
- scayt :
- {
- title : 'GirmiÅ olduÄunuz kelime denetimi',
- opera_title : 'Opera tarafından desteklenmemektedir',
- enable : 'SCAYT etkinleÅtir',
- disable : 'SCAYT pasifleÅtir',
- about : 'SCAYT hakkında',
- toggle : 'SCAYT deÄiÅtir',
- options : 'Seçenekler',
- langs : 'Diller',
- moreSuggestions : 'Daha fazla öneri',
- ignore : 'Yoksay',
- ignoreAll : 'Tümünü Yoksay',
- addWord : 'Kelime Ekle',
- emptyDic : 'Sözlük adı boŠolamaz.',
-
- optionsTab : 'Seçenekler',
- allCaps : 'Tüm büyük küçük kelimeleri yoksay',
- ignoreDomainNames : 'Domain adlarını yoksay',
- mixedCase : 'KarıÅık büyüklük ile Sözcükler yoksay',
- mixedWithDigits : 'Sayılarla Kelimeler yoksay',
-
- languagesTab : 'Diller',
-
- dictionariesTab : 'Sözlükler',
- dic_field_name : 'Sözlük adı',
- dic_create : 'OluÅtur',
- dic_restore : 'Geri al',
- dic_delete : 'Sil',
- dic_rename : 'Yeniden adlandır',
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it\'s name and click the Restore button.',
-
- aboutTab : 'Hakkında'
- },
-
- about :
- {
- title : 'CKEditor Hakkında',
- dlgTitle : 'CKEditor Hakkında',
- moreInfo : 'Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:',
- copy : 'Copyright © $1. Tüm hakları saklıdır.'
- },
-
- maximize : 'Büyült',
- minimize : 'Küçült',
-
- fakeobjects :
- {
- anchor : 'BaÄlantı',
- flash : 'Flash Animasyonu',
- div : 'Sayfa Kesimi',
- unknown : 'Bilinmeyen Nesne'
- },
-
- resize : 'Boyutlandırmak için sürükle',
-
- colordialog :
- {
- title : 'Renk seç',
- options : 'Renk Seçenekleri',
- highlight : 'İÅaretle',
- selected : 'SeçilmiÅ',
- clear : 'Temizle'
- },
-
- toolbarCollapse : 'Toolbar\'ı topla',
- toolbarExpand : 'Toolbar\'ı aç',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'tr' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'Zengin Metin Editörü',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Yardım için ALT 0 tuÅuna basın',
+
+ browseServer: 'Sunucuyu Gez',
+ url: 'URL',
+ protocol: 'Protokol',
+ upload: 'KarÅıya Yükle',
+ uploadSubmit: 'Sunucuya Yolla',
+ image: 'Resim',
+ flash: 'Flash',
+ form: 'Form',
+ checkbox: 'Onay Kutusu',
+ radio: 'Seçenek DüÄmesi',
+ textField: 'Metin GiriÅi',
+ textarea: 'Ãok Satırlı Metin',
+ hiddenField: 'Gizli Veri',
+ button: 'DüÄme',
+ select: 'Seçim Menüsü',
+ imageButton: 'Resimli DüÄme',
+ notSet: '<tanımlanmamıÅ>',
+ id: 'Kimlik',
+ name: 'Ad',
+ langDir: 'Dil Yönü',
+ langDirLtr: 'Soldan SaÄa (LTR)',
+ langDirRtl: 'SaÄdan Sola (RTL)',
+ langCode: 'Dil Kodlaması',
+ longDescr: 'Uzun Tanımlı URL',
+ cssClass: 'Biçem Sayfası Sınıfları',
+ advisoryTitle: 'DanıÅma BaÅlıÄı',
+ cssStyle: 'Biçem',
+ ok: 'Tamam',
+ cancel: 'İptal',
+ close: 'Kapat',
+ preview: 'Ãn gösterim',
+ resize: 'Boyutlandırmak için sürükle',
+ generalTab: 'Genel',
+ advancedTab: 'GeliÅmiÅ',
+ validateNumberFailed: 'Bu deÄer sayı deÄildir.',
+ confirmNewPage: 'İceriÄiniz kayıt edilmediÄinden dolayı kaybolacaktır. Yeni bir sayfa yüklemek istediÄinize eminsiniz?',
+ confirmCancel: 'Bazı seçenekler deÄiÅmiÅtir. Dialog penceresini kapatmak istediÄinize eminmisiniz?',
+ options: 'Seçenekler',
+ target: 'Hedef',
+ targetNew: 'Yeni Pencere (_blank)',
+ targetTop: 'Enüst Pencere (_top)',
+ targetSelf: 'Aynı Pencere (_self)',
+ targetParent: 'Ana Pencere (_parent)',
+ langDirLTR: 'Soldan SaÄa (LTR)',
+ langDirRTL: 'SaÄdan Sola (RTL)',
+ styles: 'Stil',
+ cssClasses: 'Stil sayfası Sınıfı',
+ width: 'GeniÅlik',
+ height: 'Yükseklik',
+ align: 'Hizalama',
+ alignLeft: 'Sol',
+ alignRight: 'SaÄ',
+ alignCenter: 'Merkez',
+ alignTop: 'Tepe',
+ alignMiddle: 'Orta',
+ alignBottom: 'Alt',
+ invalidValue : 'Geçersiz deÄer.',
+ invalidHeight: 'Yükseklik sayı olmalıdır.',
+ invalidWidth: 'GeniÅlik bir sayı olmalıdır.',
+ invalidCssLength: 'BelirttiÄiniz sayı "%1" alanı için pozitif bir sayı CSS birim deÄeri olmalıdır (px, %, in, cm, mm, em, ex, pt, veya pc).',
+ invalidHtmlLength: 'BelirttiÄiniz sayı "%1" alanı için pozitif bir sayı HTML birim deÄeri olmalıdır (px veya %).',
+ invalidInlineStyle: 'Noktalı virgülle ayrılmıÅ: "deÄer adı," inline stil için belirtilen deÄer biçiminde bir veya daha fazla dizilerden oluÅmalıdır.',
+ cssLengthTooltip: 'Pikseller için bir numara girin veya geçerli bir CSS numarası (px, %, in, cm, mm, em, ex, pt, veya pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, hazır deÄildir</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/ug.js b/devel/third-party/ckeditor/lang/ug.js
new file mode 100644
index 0000000..24c4368
--- /dev/null
+++ b/devel/third-party/ckeditor/lang/ug.js
@@ -0,0 +1,104 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+* @fileOverview
+*/
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'ug' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'rtl',
+
+ // ARIA description.
+ editor: 'تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'ALT+0 ÙÙ Ø¨ÛØ³ÙÙ¾ ÙØ§Ø±Ø¯ÛÙ
ÙÙ ÙÛØ±ÛÚ',
+
+ browseServer: 'ÙÛØ±Ø³ÙØªÙØ´ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙر',
+ url: 'Ø¦ÛØ³ÙÙ Ú¾ÛØ¬Ø¬Ûت',
+ protocol: 'ÙÛÙÙØ´ÙÙ
',
+ upload: 'ÙÛÙÙÛ',
+ uploadSubmit: 'Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرغا ÙÛÙÙÛ',
+ image: 'Ø³ÛØ±Ûت',
+ flash: 'Flash',
+ form: 'Ø¬ÛØ¯ÛÛÙ',
+ checkbox: 'ÙÛÙ¾ تاÙÙØ§Ø´ راÙ
ÙÙØ³Ù',
+ radio: 'ÙÛÙÙÛ ØªØ§ÙÙØ§Ø´ تÙÙ¾ÚÙØ³Ù',
+ textField: 'ÙÛÙÙÛ ÙÛØ± تÛÙÙØ³Øª',
+ textarea: 'ÙÛÙ¾ ÙÛØ± تÛÙÙØ³Øª',
+ hiddenField: 'ÙÙØ´ÛرÛÙ Ø¯Ø§Ø¦ÙØ±Û',
+ button: 'تÙÙ¾ÚØ§',
+ select: 'ØªÙØ²ÙÙ
/ØªÙØ²ÙÙ
ÙÙÙ',
+ imageButton: 'Ø³ÛØ±Ûت Ø¯Ø§Ø¦ÙØ±Û',
+ notSet: 'â¹ØªÛÚØ´ÛÙÙ
ÙÚ¯ÛÙâº',
+ id: 'ID',
+ name: 'ئات',
+ langDir: 'تÙÙ ÙÛÙÙÙÙØ´Ù',
+ langDirLtr: 'سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)',
+ langDirRtl: 'ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)',
+ langCode: 'تÙÙ ÙÙØ¯Ù',
+ longDescr: 'تÛپسÙÙÙÙ ÚÛØ´ÛÙØ¯ÛØ±ÛØ´ Ø¦Ø§Ø¯Ø±ÛØ³Ù',
+ cssClass: 'Ø¦ÛØ³ÙÛØ¨ Ø®ÙÙÙÙÙÚ Ø¦Ø§ØªÙ',
+ advisoryTitle: 'Ù
Ø§ÛØ²Û',
+ cssStyle: 'ÙÛØ± ئÙÚÙØ¯ÙÙÙ Ø¦ÛØ³ÙÛØ¨Ù',
+ ok: 'Ø¬ÛØ²Ù
ÙÛ',
+ cancel: 'ÛØ§Ø² ÙÛÚ',
+ close: 'ØªØ§ÙØ§',
+ preview: 'Ø¦Ø§ÙØ¯ÙÙ ÙÛØ²Ûت',
+ resize: 'ÚÙÚÙÛÙÙÙÙ Ø¦ÛØ²Ú¯Ûرت',
+ generalTab: 'Ø¦Ø§Ø¯ÛØªØªÙÙÙ',
+ advancedTab: 'ئاÙÙÙ',
+ validateNumberFailed: 'سا٠پÙÚÙÙ
ÙØ¯Ø§ ÙÙØ±Ú¯ÛØ²ÛØ´ Ø²ÛØ±Ûر',
+ confirmNewPage: 'ÙÛÛÛØªØªÙÙÙ Ù¾ÛØªÛÙ Ù
ÛØ²Ù
ÛÙ٠ساÙÙØ§ÙÙ
ÙØ¯ÙØ ÙÛÚÙ Ù¾ÛØªÛÙ ÙÛØ±Ø§Ù
Ø³ÙØ²Ø',
+ confirmCancel: 'ÙÙØ³Ù
ÛÙ Ø¦ÛØ²Ú¯ÛØ±ØªÙØ´ ساÙÙØ§ÙÙ
ÙØ¯ÙØ Ø¨Û Ø³ÛØ²ÙÛØ´ÙÛÙÙ ØªØ§ÙØ§Ù
Ø³ÙØ²Ø',
+ options: 'تاÙÙØ§ÙÙ
ا',
+ target: 'ÙÙØ´Ø§Ù ÙÛØ²ÙÛÙ',
+ targetNew: 'ÙÛÚÙ ÙÛØ²ÙÛÙ (_blank)',
+ targetTop: 'Ù¾ÛØªÛÙ Ø¨ÛØª (_top)',
+ targetSelf: 'Ù
ÛØ²ÙÛØ± ÙÛØ²ÙÛÙ (_self)',
+ targetParent: 'ئاتا ÙÛØ²ÙÛÙ (_parent)',
+ langDirLTR: 'سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)',
+ langDirRTL: 'ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)',
+ styles: 'Ø¦ÛØ³ÙÛØ¨Ùار',
+ cssClasses: 'Ø¦ÛØ³ÙÛØ¨ Ø®ÙÙÙÙØ±Ù',
+ width: 'ÙÛÚÙÙÙ',
+ height: 'ئÛÚ¯ÙØ²ÙÙÙ',
+ align: 'ØªÙØºØ±ÙÙÙÙÙØ´Ù',
+ alignLeft: 'سÙÙ',
+ alignRight: 'ئÙÚ',
+ alignCenter: 'Ø¦ÙØªØªÛرا',
+ alignTop: 'Ø¦ÛØ³ØªÙ',
+ alignMiddle: 'Ø¦ÙØªØªÛرا',
+ alignBottom: 'ئاستÙ',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'ئÛÚ¯ÙØ²ÙÙÙ ÚÙÙÛÙ
رÛÙÛÙ
Ù¾ÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù Ø²ÛØ±Ûر',
+ invalidWidth: 'ÙÛÚÙÙÙ ÚÙÙÛÙ
رÛÙÛÙ
Ù¾ÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù Ø²ÛØ±Ûر',
+ invalidCssLength: 'Ø¨Û Ø³ÛØ² بÛÙÙÙÙ ÚÙÙÛÙ
Ù
ÛÛØ§Ù¾Ù٠بÙÙØºØ§Ù CSS Ø¦ÛØ²ÛÙÙÛÙ ÙÙÙ
Ù
ÙØªÙ بÙÙÛØ´Ù Ø²ÛØ±ÛØ±Ø Ø¨ÙØ±ÙÙÙÙ (px, %, in, cm, mm, em, ex, pt ÙØ§ÙÙ pc)',
+ invalidHtmlLength: 'Ø¨Û Ø³ÛØ² بÛÙÙÙÙ ÚÙÙÛÙ
Ø¨ÙØ±ÙÙÙ
Û HTML Ø¦ÛØ²ÛÙÙÛÙ ÙÙÙ
Ù
ÙØªÙ بÙÙÛØ´Ù ÙÛØ±ÛÙ. Ø¦ÛØ² ئÙÚÙÚ¯Û Ø¦Ø§ÙÙØ¯ÙØºØ§Ù Ø¨ÙØ±ÙÙÙ (px ÙØ§ÙÙ %)',
+ invalidInlineStyle: 'ئÙÚÙÙ Ø¨Ø§ØºÙØ§ÙÙ
ا Ø¦ÛØ³ÙÛØ¨Ù ÚÙÙÛÙ
ÚÛÙÙØªÙÙÙ Ù¾ÛØ´ بÙÙÛÙ Ø¦Ø§ÙØ±ÙÙØºØ§Ù Ø¨ÙØ± ÙØ§ÙÙ ÙÛÙ¾ «خاسÙÙ٠ئاتÙ:خاسÙÙÙ ÙÙÙ
Ù
ÙØªÙ» Ù¾ÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù ÙØ§Ø²ÙÙ
',
+ cssLengthTooltip: 'Ø¨Û Ø³ÛØ² بÛÙÙÙÙ Ø¨ÙØ±ÙÙÙ
Û CSS Ø¦ÛØ²ÛÙÙÛÙ ÙÙÙ
Ù
ÙØªÙ بÙÙÛØ´Ù ÙÛØ±ÛÙ. Ø¦ÛØ² ئÙÚÙÚ¯Û Ø¦Ø§ÙÙØ¯ÙØºØ§Ù Ø¨ÙØ±ÙÙÙ (px, %, in, cm, mm, em, ex, pt ÙØ§ÙÙ pc)',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class=\\\\"cke_accessibility\\\\">Ø Ø¦ÙØ´ÙÛØªÙÙÙ٠بÙÙÙ
Ø§ÙØ¯Û</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/uk.js b/devel/third-party/ckeditor/lang/uk.js
index be479cd..bb7dd1f 100644
--- a/devel/third-party/ckeditor/lang/uk.js
+++ b/devel/third-party/ckeditor/lang/uk.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Ukrainian language. Translated by Alexander Pervak.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['uk'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'ÐжеÑело',
- newPage : 'Ðова ÑÑоÑÑнка',
- save : 'ÐбеÑегÑи',
- preview : 'ÐопеÑеднÑй пеÑеглÑд',
- cut : 'ÐиÑÑзаÑи',
- copy : 'ÐопÑÑваÑи',
- paste : 'ÐÑÑавиÑи',
- print : 'ÐÑÑк',
- underline : 'ÐÑдкÑеÑлений',
- bold : 'ÐиÑний',
- italic : 'ÐÑÑÑив',
- selectAll : 'ÐидÑлиÑи вÑе',
- removeFormat : 'ÐÑибÑаÑи ÑоÑмаÑÑваннÑ',
- strike : 'ÐакÑеÑлений',
- subscript : 'ÐÑдÑÑдковий ÑндекÑ',
- superscript : 'ÐадÑÑдковий индекÑ',
- horizontalrule : 'ÐÑÑавиÑи гоÑизонÑалÑÐ½Ñ Ð»ÑнÑÑ',
- pagebreak : 'ÐÑÑавиÑи ÑозÑивÑи ÑÑоÑÑнки',
- unlink : 'ÐниÑиÑи поÑиланнÑ',
- undo : 'ÐовеÑнÑÑи',
- redo : 'ÐовÑоÑиÑи',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ÐеÑедивиÑиÑÑ Ð½Ð° ÑеÑвеÑÑ',
- url : 'URL',
- protocol : 'ÐÑоÑокол',
- upload : 'ÐакаÑаÑи',
- uploadSubmit : 'ÐадÑÑлаÑи на ÑеÑвеÑ',
- image : 'ÐобÑаженнÑ',
- flash : 'Flash',
- form : 'ФоÑма',
- checkbox : 'Флагова кнопка',
- radio : 'Ðнопка вибоÑÑ',
- textField : 'ТекÑÑове поле',
- textarea : 'ТекÑÑова облаÑÑÑ',
- hiddenField : 'ÐÑиÑ
оване поле',
- button : 'Ðнопка',
- select : 'СпиÑок',
- imageButton : 'Ðнопка Ñз зобÑаженнÑм',
- notSet : '<не визнаÑено>',
- id : 'ÐденÑиÑÑкаÑоÑ',
- name : 'Ðм\'Ñ',
- langDir : 'ÐапÑÑмок мови',
- langDirLtr : 'ÐлÑва на пÑаво (LTR)',
- langDirRtl : 'ÐпÑава на лÑво (RTL)',
- langCode : 'Ðова',
- longDescr : 'Ðовгий Ð¾Ð¿Ð¸Ñ URL',
- cssClass : 'ÐÐ»Ð°Ñ CSS',
- advisoryTitle : 'Ðаголовок',
- cssStyle : 'СÑÐ¸Ð»Ñ CSS',
- ok : 'ÐÐ',
- cancel : 'СкаÑÑваÑи',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'ÐагалÑна',
- advancedTab : 'РозÑиÑений',
- validateNumberFailed : 'ÐнаÑÐµÐ½Ð½Ñ Ð½Ðµ Ñ ÑиÑлом.',
- confirmNewPage : 'ÐÑÑ Ð½Ðµ збеÑÐµÐ¶ÐµÐ½Ñ Ð·Ð¼Ñни бÑдÑÑÑ Ð²ÑÑаÑенÑ. Ðи впевненÑ, Ñо Ñ
оÑеÑе заванÑажиÑи Ð½Ð¾Ð²Ñ ÑÑоÑÑнкÑ?',
- confirmCancel : 'ÐеÑÐºÑ Ð¾Ð¿ÑÑÑ Ð±Ñли змÑненÑ. ÐакÑиÑи вÑкно?',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, не доÑÑÑпне</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'ÐÑÑавиÑи ÑпеÑÑалÑний Ñимвол',
- title : 'ÐбеÑÑÑÑ ÑпеÑÑалÑний Ñимвол',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'ÐÑÑавиÑи/РедагÑваÑи поÑиланнÑ',
- other : '<ÑнÑий>',
- menu : 'ÐÑÑавиÑи поÑиланнÑ',
- title : 'ÐоÑиланнÑ',
- info : 'ÐнÑоÑмаÑÑÑ Ð¿Ð¾ÑиланнÑ',
- target : 'ЦÑлÑ',
- upload : 'ÐакаÑаÑи',
- advanced : 'РозÑиÑений',
- type : 'Тип поÑиланнÑ',
- toUrl : 'URL', // MISSING
- toAnchor : 'ЯкÑÑ Ð½Ð° ÑÑ ÑÑоÑÑнкÑ',
- toEmail : 'Ðл. поÑÑа',
- targetFrame : '<ÑÑейм>',
- targetPopup : '<ÑпливаÑÑе вÑкно>',
- targetFrameName : 'Ðм\'Ñ Ñелевого ÑÑейма',
- targetPopupName : 'Ðм\'Ñ ÑпливаÑÑого вÑкна',
- popupFeatures : 'ÐлаÑÑивоÑÑÑ ÑпливаÑÑого вÑкна',
- popupResizable : 'ÐаÑÑÑабоване',
- popupStatusBar : 'СÑÑока ÑÑаÑÑÑÑ',
- popupLocationBar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð»Ð¾ÐºÐ°ÑÑÑ',
- popupToolbar : 'ÐÐ°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв',
- popupMenuBar : 'ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ',
- popupFullScreen : 'Ðовний екÑан (IE)',
- popupScrollBars : 'ÐолоÑи пÑокÑÑÑки',
- popupDependent : 'Ðалежний (Netscape)',
- popupWidth : 'ШиÑина',
- popupLeft : 'ÐозиÑÑÑ Ð·Ð»Ñва',
- popupHeight : 'ÐиÑоÑа',
- popupTop : 'ÐозиÑÑÑ Ð·Ð²ÐµÑÑ
Ñ',
- id : 'ÐденÑиÑÑкаÑÐ¾Ñ (Id)',
- langDir : 'ÐапÑÑмок мови',
- langDirLTR : 'ÐлÑва на пÑаво (LTR)',
- langDirRTL : 'ÐпÑава на лÑво (RTL)',
- acccessKey : 'ÐаÑÑÑа клавÑÑа',
- name : 'Ðм\'Ñ',
- langCode : 'ÐапÑÑмок мови',
- tabIndex : 'ÐоÑлÑдовнÑÑÑÑ Ð¿ÐµÑеÑ
одÑ',
- advisoryTitle : 'Ðаголовок',
- advisoryContentType : 'Тип вмÑÑÑÑ',
- cssClasses : 'ÐÐ»Ð°Ñ CSS',
- charset : 'ÐодиÑовка',
- styles : 'СÑÐ¸Ð»Ñ CSS',
- selectAnchor : 'ÐбеÑÑÑÑ ÑкÑÑ',
- anchorName : 'Ðа Ñм\'Ñм ÑкоÑÑ',
- anchorId : 'Ðа ÑденÑиÑÑкаÑоÑом елеменÑа',
- emailAddress : 'ÐдÑеÑа ел. поÑÑи',
- emailSubject : 'Тема лиÑÑа',
- emailBody : 'ТÑло повÑдомленнÑ',
- noAnchors : '(ÐÐµÐ¼Ð°Ñ ÑкоÑÑв доÑÑÑпниÑ
в ÑÑÐ¾Ð¼Ñ Ð´Ð¾ÐºÑменÑÑ)',
- noUrl : 'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ URL поÑиланнÑ',
- noEmail : 'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ Ð°Ð´ÑÐµÑ Ñл. поÑÑÑ'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'ÐÑÑавиÑи/РедагÑваÑи ÑкÑÑ',
- menu : 'ÐлаÑÑивоÑÑÑ ÑкоÑÑ',
- title : 'ÐлаÑÑивоÑÑÑ ÑкоÑÑ',
- name : 'Ðм\'Ñ ÑкоÑÑ',
- errorName : 'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ Ñм\'Ñ ÑкоÑÑ'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'ÐнайÑи Ñ Ð·Ð°Ð¼ÑниÑи',
- find : 'ÐоÑÑк',
- replace : 'ÐамÑна',
- findWhat : 'ШÑкаÑи:',
- replaceWith : 'ÐамÑниÑи на:',
- notFoundMsg : 'Ðказаний ÑекÑÑ Ð½Ðµ знайдений.',
- matchCase : 'ÐÑаÑ
овÑваÑи ÑегÑÑÑÑ',
- matchWord : 'ÐбÑг ÑÑлиÑ
ÑлÑв',
- matchCyclic : 'ЦиклÑÑна замÑна',
- replaceAll : 'ÐамÑниÑи вÑе',
- replaceSuccessMsg : '%1 ÑпÑвпадÑнÑ(Ñ) замÑнено.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'ТаблиÑÑ',
- title : 'ÐлаÑÑивоÑÑÑ ÑаблиÑÑ',
- menu : 'ÐлаÑÑивоÑÑÑ ÑаблиÑÑ',
- deleteTable : 'ÐидалиÑи ÑаблиÑÑ',
- rows : 'СÑÑоки',
- columns : 'Ðолонки',
- border : 'РозмÑÑ Ð±Ð¾ÑдÑÑа',
- align : 'ÐиÑÑвнÑваннÑ',
- alignLeft : 'ÐлÑва',
- alignCenter : 'Ðо ÑенÑÑÑ',
- alignRight : 'ÐпÑава',
- width : 'ШиÑина',
- widthPx : 'пÑкÑелÑв',
- widthPc : 'вÑдÑоÑкÑв',
- widthUnit : 'width unit', // MISSING
- height : 'ÐиÑоÑа',
- cellSpace : 'ÐÑомÑжок (spacing)',
- cellPad : 'ÐÑдÑÑÑп (padding)',
- caption : 'Ðаголовок',
- summary : 'РезÑме',
- headers : 'Ðаголовки',
- headersNone : 'Ðодного',
- headersColumn : 'ÐеÑÑа колонка',
- headersRow : 'ÐеÑÑий ÑÑдок',
- headersBoth : 'Ðбидва',
- invalidRows : 'ÐÑлÑкÑÑÑÑ ÑÑдкÑв повинна бÑÑи ÑиÑлом бÑлÑÑе за 0.',
- invalidCols : 'ÐÑлÑкÑÑÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº повинна бÑÑи ÑиÑлом бÑлÑÑе за 0.',
- invalidBorder : 'РозмÑÑ Ð±Ð¾ÑдÑÑа повинен бÑÑи ÑиÑлом.',
- invalidWidth : 'ШиÑина ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑиÑлом.',
- invalidHeight : 'ÐиÑоÑа ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑиÑлом.',
- invalidCellSpacing : 'ÐÑомÑжок (spacing) комÑÑки повинен бÑÑи ÑиÑлом.',
- invalidCellPadding : 'ÐÑдÑÑÑп (padding) комÑÑки повинен бÑÑи ÑиÑлом.',
-
- cell :
- {
- menu : 'ÐÑеÑедок',
- insertBefore : 'ÐÑÑавиÑи комÑÑÐºÑ Ð´Ð¾',
- insertAfter : 'ÐÑÑавиÑи комÑÑÐºÑ Ð¿ÑÑлÑ',
- deleteCell : 'ÐидалиÑи комÑÑки',
- merge : 'Ðб\'ÑднаÑи комÑÑки',
- mergeRight : 'Ðб\'ÑднаÑи зпÑава',
- mergeDown : 'Ðб\'ÑднаÑи до низÑ',
- splitHorizontal : 'РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ гоÑизонÑалÑ',
- splitVertical : 'РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ веÑÑикалÑ',
- title : 'ÐлаÑÑивоÑÑÑ ÐºÐ¾Ð¼ÑÑки',
- cellType : 'Тип комÑÑки',
- rowSpan : 'ÐбÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑдкÑв (Rows Span)',
- colSpan : 'ÐбÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑовпÑикÑв (Columns Span)',
- wordWrap : 'ÐвÑо згоÑÑÐ°Ð½Ð½Ñ ÑекÑÑÑ (Word Wrap)',
- hAlign : 'ÐоÑизонÑалÑне виÑÑвнÑваннÑ',
- vAlign : 'ÐеÑÑикалÑне виÑÑвнÑваннÑ',
- alignTop : 'Ðо веÑÑ
Ñ',
- alignMiddle : 'ÐоÑеÑединÑ',
- alignBottom : 'Ðо низÑ',
- alignBaseline : 'Ðо базовÑй лÑнÑÑ',
- bgColor : 'ÐолÑÑ ÑонÑ',
- borderColor : 'ÐолÑÑ Ð±Ð¾ÑдÑÑÑ',
- data : 'ÐанÑ',
- header : 'Ðаголовок',
- yes : 'Так',
- no : 'ÐÑ',
- invalidWidth : 'ШиÑина комÑÑки повинна бÑÑи ÑиÑлом.',
- invalidHeight : 'ÐиÑоÑа комÑÑки повинна бÑÑи ÑиÑлом.',
- invalidRowSpan : 'ÐÑлÑкÑÑÑÑ Ð¾Ð±ÑднÑваниÑ
ÑÑдкÑв повинна бÑÑи ÑÑлим ÑиÑлом.',
- invalidColSpan : 'ÐÑлÑкÑÑÑÑ Ð¾Ð±ÑднÑваниÑ
ÑÑовпÑикÑв повинна бÑÑи ÑÑлим ÑиÑлом.',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'Ð Ñдок',
- insertBefore : 'ÐÑÑавиÑи ÑÑдок до',
- insertAfter : 'ÐÑÑавиÑи ÑÑдок пÑÑлÑ',
- deleteRow : 'ÐидалиÑи ÑÑÑоки'
- },
-
- column :
- {
- menu : 'Ðолонка',
- insertBefore : 'ÐÑÑавиÑи ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð´Ð¾',
- insertAfter : 'ÐÑÑавиÑи ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð¿ÑÑлÑ',
- deleteColumn : 'ÐидалиÑи колонки'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸',
- text : 'ТекÑÑ (ÐнаÑеннÑ)',
- type : 'Тип',
- typeBtn : 'Ðнопка',
- typeSbm : 'ÐÑдпÑавиÑи',
- typeRst : 'СкинÑÑи'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'ÐлаÑÑивоÑÑÑ ÑÐ»Ð°Ð³Ð¾Ð²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸',
- radioTitle : 'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ вибоÑÑ',
- value : 'ÐнаÑеннÑ',
- selected : 'ÐбÑана'
- },
-
- // Form Dialog.
- form :
- {
- title : 'ÐлаÑÑивоÑÑÑ ÑоÑми',
- menu : 'ÐлаÑÑивоÑÑÑ ÑоÑми',
- action : 'ÐÑÑ',
- method : 'ÐеÑод',
- encoding : 'ÐодÑваннÑ'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'ÐлаÑÑивоÑÑÑ ÑпиÑкÑ',
- selectInfo : 'ÐнÑо',
- opAvail : 'ÐоÑÑÑÐ¿Ð½Ñ Ð²Ð°ÑÑанÑи',
- value : 'ÐнаÑеннÑ',
- size : 'РозмÑÑ',
- lines : 'лÑнÑÑ',
- chkMulti : 'ÐозволиÑи обÑÐ°Ð½Ð½Ñ Ð´ÐµÐºÑлÑкоÑ
позиÑÑй',
- opText : 'ТекÑÑ',
- opValue : 'ÐнаÑеннÑ',
- btnAdd : 'ÐобавиÑи',
- btnModify : 'ÐмÑниÑи',
- btnUp : 'ÐгоÑÑ',
- btnDown : 'Ðниз',
- btnSetValue : 'ÐÑÑановиÑи Ñк вибÑане знаÑеннÑ',
- btnDelete : 'ÐидалиÑи'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'ÐлаÑÑивоÑÑÑ ÑекÑÑÐ¾Ð²Ð¾Ñ Ð¾Ð±Ð»Ð°ÑÑÑ',
- cols : 'Ðолонки',
- rows : 'СÑÑоки'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'ÐлаÑÑивоÑÑÑ ÑекÑÑового полÑ',
- name : 'Ðм\'Ñ',
- value : 'ÐнаÑеннÑ',
- charWidth : 'ШиÑина',
- maxChars : 'ÐакÑ. кÑл-ÑÑ ÑимволÑв',
- type : 'Тип',
- typeText : 'ТекÑÑ',
- typePass : 'ÐаÑолÑ'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'ÐлаÑÑивоÑÑÑ Ð¿ÑиÑ
ованого полÑ',
- name : 'Ðм\'Ñ',
- value : 'ÐнаÑеннÑ'
- },
-
- // Image Dialog.
- image :
- {
- title : 'ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ',
- titleButton : 'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñз зобÑаженнÑм',
- menu : 'ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ',
- infoTab : 'ÐнÑоÑмаÑÑÑ Ð¿Ñо изобÑажении',
- btnUpload : 'ÐадÑÑлаÑи на ÑеÑвеÑ',
- upload : 'ÐакаÑаÑи',
- alt : 'ÐлÑÑеÑнаÑивний ÑекÑÑ',
- width : 'ШиÑина',
- height : 'ÐиÑоÑа',
- lockRatio : 'ÐбеÑегÑи пÑопоÑÑÑÑ',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'СкинÑÑи ÑозмÑÑ',
- border : 'ÐоÑдÑÑ',
- hSpace : 'ÐоÑизонÑалÑний вÑдÑÑÑп',
- vSpace : 'ÐеÑÑикалÑний вÑдÑÑÑп',
- align : 'ÐиÑÑвнÑваннÑ',
- alignLeft : 'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
- alignRight : 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
- alertUrl : 'ÐÑÐ´Ñ Ð»Ð°Ñка, введÑÑÑ URL зобÑаженнÑ',
- linkTab : 'ÐоÑиланнÑ',
- button2Img : 'Ðи Ñ
оÑеÑе пеÑеÑвоÑиÑи обÑÐ°Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÑ-зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° пÑоÑÑе зобÑаженнÑ?',
- img2Button : 'Ðи Ñ
оÑеÑе пеÑеÑвоÑиÑи обÑане зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° кнопкÑ-зобÑаженнÑ?',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'ÐлаÑÑивоÑÑÑ Flash',
- propertiesTab : 'ÐлаÑÑивоÑÑÑ',
- title : 'ÐлаÑÑивоÑÑÑ Flash',
- chkPlay : 'ÐвÑо пÑогÑаваннÑ',
- chkLoop : 'ÐаÑиклиÑи',
- chkMenu : 'ÐозволиÑи Ð¼ÐµÐ½Ñ Flash',
- chkFull : 'ÐозволиÑи повноекÑанний пеÑеглÑд',
- scale : 'ÐаÑÑÑаб',
- scaleAll : 'ÐоказаÑи вÑÑ',
- scaleNoBorder : 'Ðез Ñамки',
- scaleFit : 'ÐÑйÑний ÑозмÑÑ',
- access : 'ÐоÑÑÑп до ÑкÑипÑа',
- accessAlways : 'Ðавжди',
- accessSameDomain: 'Ð Ñого ж домена',
- accessNever : 'ÐÑколи',
- align : 'ÐиÑÑвнÑваннÑ',
- alignLeft : 'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
- alignAbsBottom : 'ÐÐ±Ñ Ð¿Ð¾ низÑ',
- alignAbsMiddle : 'ÐÐ±Ñ Ð¿Ð¾ ÑеÑединÑ',
- alignBaseline : 'Ðо базовÑй лÑнÑÑ',
- alignBottom : 'Ðо низÑ',
- alignMiddle : 'Ðо ÑеÑединÑ',
- alignRight : 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
- alignTextTop : 'ТекÑÑ Ð½Ð° веÑÑ
Ñ',
- alignTop : 'Ðо веÑÑ
Ñ',
- quality : 'ЯкÑÑÑÑ',
- qualityBest : 'ÐÑдмÑнна',
- qualityHigh : 'ÐиÑока',
- qualityAutoHigh : 'ÐвÑо вÑдмÑнна',
- qualityMedium : 'СеÑеднÑ',
- qualityAutoLow : 'ÐвÑо низÑка',
- qualityLow : 'ÐизÑка',
- windowModeWindow: 'ÐÑкно',
- windowModeOpaque: 'ÐепÑозоÑÑÑÑÑ (Opaque)',
- windowModeTransparent : 'ÐÑозоÑÑÑÑÑ (Transparent)',
- windowMode : 'Режим вÑкна',
- flashvars : 'ÐмÑÐ½Ð½Ñ Flash',
- bgcolor : 'ÐолÑÑ ÑонÑ',
- width : 'ШиÑина',
- height : 'ÐиÑоÑа',
- hSpace : 'ÐоÑизонÑалÑний вÑдÑÑÑп',
- vSpace : 'ÐеÑÑикалÑний вÑдÑÑÑп',
- validateSrc : 'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ URL поÑиланнÑ',
- validateWidth : 'ШиÑина повинна бÑÑи ÑиÑлом.',
- validateHeight : 'ÐиÑоÑа повинна бÑÑи ÑиÑлом.',
- validateHSpace : 'HSpace повинна бÑÑи ÑиÑлом.',
- validateVSpace : 'VSpace повинна бÑÑи ÑиÑлом.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'ÐеÑевÑÑиÑи оÑÑогÑаÑÑÑ',
- title : 'ÐеÑевÑÑка оÑÑогÑаÑÑÑ',
- notAvailable : 'ÐибаÑÑе, але ÑеÑвÑÑ Ð½Ð°ÑÐ°Ð·Ñ Ð½ÐµÐ´Ð¾ÑÑÑпний.',
- errorLoading : 'Ðомилка заванÑÐ°Ð¶ÐµÐ½Ð½Ñ : %s.',
- notInDic : 'Ðе Ð¼Ð°Ñ Ð² ÑловникÑ',
- changeTo : 'ÐамÑниÑи на',
- btnIgnore : 'ÐгноÑÑваÑи',
- btnIgnoreAll : 'ÐгноÑÑваÑи вÑе',
- btnReplace : 'ÐамÑниÑи',
- btnReplaceAll : 'ÐамÑниÑи вÑе',
- btnUndo : 'Ðазад',
- noSuggestions : '- ÐÐµÐ¼Ð°Ñ Ð¿ÑипÑÑÐµÐ½Ñ -',
- progress : 'ÐиконÑÑÑÑÑÑ Ð¿ÐµÑевÑÑка оÑÑогÑаÑÑÑ...',
- noMispell : 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: помилок не знайдено',
- noChanges : 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: жодне Ñлово не змÑнено',
- oneChange : 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: змÑнено одно Ñлово',
- manyChanges : 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: 1% ÑлÑв змÑнено',
- ieSpellDownload : 'ÐодÑÐ»Ñ Ð¿ÐµÑевÑÑки оÑÑогÑаÑÑÑ Ð½Ðµ вÑÑановлено. ÐажаÑÑн заванÑажиÑи його заÑаз?'
- },
-
- smiley :
- {
- toolbar : 'Смайлик',
- title : 'ÐÑÑавиÑи Ñмайлик',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 елеменÑ'
- },
-
- numberedlist : 'ÐÑмеÑований ÑпиÑок',
- bulletedlist : 'ÐаÑкований ÑпиÑок',
- indent : 'ÐбÑлÑÑиÑи вÑдÑÑÑп',
- outdent : 'ÐменÑиÑи вÑдÑÑÑп',
-
- justify :
- {
- left : 'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
- center : 'Ðо ÑенÑÑÑ',
- right : 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
- block : 'Ðо ÑиÑинÑ'
- },
-
- blockquote : 'ЦиÑаÑа',
-
- clipboard :
- {
- title : 'ÐÑÑавиÑи',
- cutError : 'ÐаÑÑÑойки безпеки ваÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ Ð²Ð¸ÑÑзÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+X).',
- copyError : 'ÐаÑÑÑойки безпеки ваÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ ÐºÐ¾Ð¿ÑÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+C).',
- pasteMsg : 'ÐÑÐ´Ñ Ð»Ð°Ñка, вÑÑавÑе з бÑÑеÑа обмÑÐ½Ñ Ð² ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ, коÑиÑÑÑÑÑиÑÑ ÐºÐ¾Ð¼Ð±ÑнаÑÑÑÑ ÐºÐ»Ð°Ð²ÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>) Ñа наÑиÑнÑÑÑ <STRONG>OK</STRONG>.',
- securityMsg : 'РедакÑÐ¾Ñ Ð½Ðµ може оÑÑимаÑи пÑÑмий доÑÑÑп до бÑÑеÑÑ Ð¾Ð±Ð¼ÑÐ½Ñ Ñ Ð·Ð²\'ÑÐ·ÐºÑ Ð· налаÑÑÑваннÑми ваÑого бÑаÑзеÑа. Ðам поÑÑÑбно вÑÑавиÑи ÑнÑоÑмаÑÑÑ Ð¿Ð¾Ð²ÑоÑно в Ñе вÑкно.',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'ТекÑÑ, Ñо ви Ñ
оÑеÑе вÑÑавиÑи, ÑÑ
ожий на копÑйований з Word. Ðи Ñ
оÑеÑе оÑиÑÑиÑи його пеÑед вÑÑавкоÑ?',
- toolbar : 'ÐÑÑавиÑи з Word',
- title : 'ÐÑÑавиÑи з Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ',
- title : 'ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ'
- },
-
- templates :
- {
- button : 'Шаблони',
- title : 'Шаблони змÑÑÑÑ',
- options : 'Template Options', // MISSING
- insertOption : 'ÐамÑниÑи поÑоÑний вмÑÑÑ',
- selectPromptMsg : 'ÐбеÑÑÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, Ñаблон Ð´Ð»Ñ Ð²ÑдкÑиÑÑÑ Ð² ÑедакÑоÑÑ<br>(поÑоÑний змÑÑÑ Ð±Ñде вÑÑаÑено):',
- emptyListMsg : '(Ðе визнаÑено жодного ÑаблонÑ)'
- },
-
- showBlocks : 'ÐоказÑваÑи блоки',
-
- stylesCombo :
- {
- label : 'СÑилÑ',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'Block ÑÑилÑ',
- panelTitle2 : 'Inline ÑÑилÑ',
- panelTitle3 : 'Object ÑÑилÑ'
- },
-
- format :
- {
- label : 'ФоÑмаÑÑваннÑ',
- panelTitle : 'ФоÑмаÑÑваннÑ',
-
- tag_p : 'ÐоÑмалÑний',
- tag_pre : 'ФоÑмаÑований',
- tag_address : 'ÐдÑеÑа',
- tag_h1 : 'Ðаголовок 1',
- tag_h2 : 'Ðаголовок 2',
- tag_h3 : 'Ðаголовок 3',
- tag_h4 : 'Ðаголовок 4',
- tag_h5 : 'Ðаголовок 5',
- tag_h6 : 'Ðаголовок 6',
- tag_div : 'ÐоÑмалÑний (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'ШÑиÑÑ',
- voiceLabel : 'ШÑиÑÑ',
- panelTitle : 'ШÑиÑÑ'
- },
-
- fontSize :
- {
- label : 'РозмÑÑ',
- voiceLabel : 'РозмÑÑ ÑÑиÑÑа',
- panelTitle : 'РозмÑÑ'
- },
-
- colorButton :
- {
- textColorTitle : 'ÐолÑÑ ÑекÑÑÑ',
- bgColorTitle : 'ÐолÑÑ ÑонÑ',
- panelTitle : 'Colors', // MISSING
- auto : 'ÐвÑомаÑиÑний',
- more : 'ÐолÑоÑи...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'ÐеÑеÑÑÑка оÑÑогÑаÑÑÑ Ð¿Ð¾ мÑÑÑ Ð½Ð°Ð±Ð¾ÑÑ',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'ÐклÑÑиÑи SCAYT',
- disable : 'ÐÑдклÑÑиÑи SCAYT',
- about : 'ÐÑо SCAYT',
- toggle : 'ÐеÑемкнÑÑи SCAYT',
- options : 'ÐпÑÑÑ',
- langs : 'Ðови',
- moreSuggestions : 'ÐÑлÑÑе пÑопозиÑÑй',
- ignore : 'ÐгноÑÑваÑи',
- ignoreAll : 'ÐгноÑÑваÑи вÑÑ',
- addWord : 'ÐодаÑи Ñлово',
- emptyDic : 'Ðазва Ñловника повинна бÑÑи заповнена.',
-
- optionsTab : 'ÐпÑÑÑ',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'Ðови',
-
- dictionariesTab : 'Словники',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'ÐÑо'
- },
-
- about :
- {
- title : 'ÐÑо CKEditor',
- dlgTitle : 'ÐÑо CKEditor',
- moreInfo : 'Щодо ÑнÑоÑмаÑÑÑ Ð· лÑÑензÑÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÑÑайÑе до наÑого ÑайÑÑ:',
- copy : 'Copyright © $1. ÐÑÑ Ð¿Ñава заÑÑеÑежено.'
- },
-
- maximize : 'ÐакÑимÑзÑваÑи',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'ЯкÑÑ',
- flash : 'Flash анÑмаÑÑÑ',
- div : 'РозÑив ÑÑоÑÑнки',
- unknown : 'ÐевÑдомий об`ÑкÑ'
- },
-
- resize : 'ÐеÑеÑÑвайÑе Ð´Ð»Ñ Ð·Ð¼Ñни ÑозмÑÑÑ',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Ukrainian language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'uk' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'ТекÑÑовий ÑедакÑоÑ',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'наÑиÑнÑÑÑ ALT 0 Ð´Ð»Ñ Ð´Ð¾Ð²Ñдки',
+
+ browseServer: 'ÐглÑд',
+ url: 'URL',
+ protocol: 'ÐÑоÑокол',
+ upload: 'ÐадÑÑлаÑи',
+ uploadSubmit: 'ÐадÑÑлаÑи на ÑеÑвеÑ',
+ image: 'ÐобÑаженнÑ',
+ flash: 'Flash',
+ form: 'ФоÑма',
+ checkbox: 'ÐалоÑка',
+ radio: 'Ðнопка вибоÑÑ',
+ textField: 'ТекÑÑове поле',
+ textarea: 'ТекÑÑова облаÑÑÑ',
+ hiddenField: 'ÐÑиÑ
оване поле',
+ button: 'Ðнопка',
+ select: 'СпиÑок',
+ imageButton: 'Ðнопка Ñз зобÑаженнÑм',
+ notSet: '<не визнаÑено>',
+ id: 'ÐденÑиÑÑкаÑоÑ',
+ name: 'Ðм\'Ñ',
+ langDir: 'ÐапÑÑмок мови',
+ langDirLtr: 'ÐлÑва напÑаво (LTR)',
+ langDirRtl: 'СпÑава налÑво (RTL)',
+ langCode: 'Ðод мови',
+ longDescr: 'Ðовгий Ð¾Ð¿Ð¸Ñ URL',
+ cssClass: 'ÐÐ»Ð°Ñ CSS',
+ advisoryTitle: 'Ðаголовок',
+ cssStyle: 'СÑÐ¸Ð»Ñ CSS',
+ ok: 'ÐÐ',
+ cancel: 'СкаÑÑваÑи',
+ close: 'ÐакÑиÑи',
+ preview: 'ÐопеÑеднÑй пеÑеглÑд',
+ resize: 'ÐоÑÑгнÑÑÑ Ð´Ð»Ñ Ð·Ð¼Ñни ÑозмÑÑÑв',
+ generalTab: 'ÐÑновне',
+ advancedTab: 'ÐодаÑкове',
+ validateNumberFailed: 'ÐнаÑÐµÐ½Ð½Ñ Ð½Ðµ Ñ ÑÑлим ÑиÑлом.',
+ confirmNewPage: 'ÐÑÑ Ð½ÐµÐ·Ð±ÐµÑÐµÐ¶ÐµÐ½Ñ Ð·Ð¼Ñни бÑдÑÑÑ Ð²ÑÑаÑенÑ. Ðи впевненÑ, Ñо Ñ
оÑеÑе заванÑажиÑи Ð½Ð¾Ð²Ñ ÑÑоÑÑнкÑ?',
+ confirmCancel: 'ÐеÑÐºÑ Ð¾Ð¿ÑÑÑ Ð·Ð¼Ñнено. ÐакÑиÑи вÑкно без збеÑÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð¼Ñн?',
+ options: 'ÐпÑÑÑ',
+ target: 'ЦÑлÑ',
+ targetNew: 'Ðове вÑкно (_blank)',
+ targetTop: 'ÐоÑоÑне вÑкно (_top)',
+ targetSelf: 'ÐоÑоÑний ÑÑейм/вÑкно (_self)',
+ targetParent: 'ÐаÑÑкÑвÑÑкий ÑÑейм/вÑкно (_parent)',
+ langDirLTR: 'ÐлÑва напÑаво (LTR)',
+ langDirRTL: 'СпÑава налÑво (RTL)',
+ styles: 'СÑÐ¸Ð»Ñ CSS',
+ cssClasses: 'ÐÐ»Ð°Ñ CSS',
+ width: 'ШиÑина',
+ height: 'ÐиÑоÑа',
+ align: 'ÐиÑÑвнÑваннÑ',
+ alignLeft: 'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
+ alignRight: 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',
+ alignCenter: 'Ðо ÑенÑÑÑ',
+ alignTop: 'Ðо веÑÑ
нÑÐ¾Ð¼Ñ ÐºÑаÑ',
+ alignMiddle: 'Ðо ÑеÑединÑ',
+ alignBottom: 'Ðо нижнÑÐ¾Ð¼Ñ ÐºÑаÑ',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'ÐиÑоÑа повинна бÑÑи ÑÑлим ÑиÑлом.',
+ invalidWidth: 'ШиÑина повинна бÑÑи ÑÑлим ÑиÑлом.',
+ invalidCssLength: 'ÐнаÑеннÑ, вказане Ð´Ð»Ñ "%1" в Ð¿Ð¾Ð»Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð¾ бÑÑи позиÑивним ÑиÑлом або без дÑйÑного вимÑÑÑ CSS Ð±Ð»Ð¾ÐºÑ (px, %, in, cm, mm, em, ex, pt, or pc).',
+ invalidHtmlLength: 'ÐнаÑеннÑ, вказане Ð´Ð»Ñ "%1" в Ð¿Ð¾Ð»Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð¾ бÑÑи позиÑивним ÑиÑлом або без дÑйÑного вимÑÑÑ HTML Ð±Ð»Ð¾ÐºÑ (px or %).',
+ invalidInlineStyle: 'ÐнаÑеннÑ, вказане Ð´Ð»Ñ Ð²Ð±Ñдованого ÑÑÐ¸Ð»Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ðµ ÑкладаÑиÑÑ Ð· одного Ñи кÑлÑкоÑ
коÑÑежÑв Ñ ÑоÑмаÑÑ "Ñм\'Ñ : знаÑеннÑ", ÑоздÑлениÑ
кÑÐ°Ð¿ÐºÐ¾Ñ Ð· комоÑ.',
+ cssLengthTooltip: 'ÐведÑÑÑ Ð½Ð¾Ð¼ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð² пÑкÑелÑÑ
або ÑиÑло з дÑйÑÐ½Ð¾Ñ Ð¾Ð´Ð¸Ð½Ð¸ÑÑ CSS (px, %, in, cm, mm, em, ex, pt, or pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, не доÑÑÑпне</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/vi.js b/devel/third-party/ckeditor/lang/vi.js
index f569ba9..cacec58 100644
--- a/devel/third-party/ckeditor/lang/vi.js
+++ b/devel/third-party/ckeditor/lang/vi.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Vietnamese language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['vi'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Bá» soạn thảo, %1, nhấn ALT + 0 Äá» xem hưá»ng dẫn.',
-
- // ARIA descriptions.
- toolbar : 'Thanh công cụ',
- editor : 'BỠsoạn thảo',
-
- // Toolbar buttons without dialogs.
- source : 'Mã HTML',
- newPage : 'Trang má»i',
- save : 'Lưu',
- preview : 'Xem trưá»c',
- cut : 'Cắt',
- copy : 'Sao chép',
- paste : 'Dán',
- print : 'In',
- underline : 'Gạch chân',
- bold : 'Äáºm',
- italic : 'Nghiêng',
- selectAll : 'Chá»n tất cả',
- removeFormat : 'Xoá Äá»nh dạng',
- strike : 'Gạch xuyên ngang',
- subscript : 'Chá» sá» dưá»i',
- superscript : 'ChỠsỠtrên',
- horizontalrule : 'Chèn ÄÆ°á»ng phân cách ngang',
- pagebreak : 'Chèn ngắt trang',
- unlink : 'Xoá liên kết',
- undo : 'Khôi phục thao tác',
- redo : 'Là m lại thao tác',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'Duyá»t trên máy chá»§',
- url : 'URL',
- protocol : 'Giao thức',
- upload : 'Tải lên',
- uploadSubmit : 'Tải lên máy chủ',
- image : 'Hình ảnh',
- flash : 'Flash',
- form : 'Biá»u mẫu',
- checkbox : 'Nút kiá»m',
- radio : 'Nút chá»n',
- textField : 'Trưá»ng vÄn bản',
- textarea : 'Vùng vÄn bản',
- hiddenField : 'Trưá»ng ẩn',
- button : 'Nút',
- select : 'à chá»n',
- imageButton : 'Nút hình ảnh',
- notSet : '<không thiết láºp>',
- id : 'Äá»nh danh',
- name : 'Tên',
- langDir : 'Hưá»ng ngôn ngữ',
- langDirLtr : 'Trái sang phải (LTR)',
- langDirRtl : 'Phải sang trái (RTL)',
- langCode : 'Mã ngôn ngữ',
- longDescr : 'Mô tả URL',
- cssClass : 'Lá»p Stylesheet',
- advisoryTitle : 'Nhan Äá» hưá»ng dẫn',
- cssStyle : 'Kiá»u (style)',
- ok : 'Äá»ng ý',
- cancel : 'Bá» qua',
- close : 'Äóng',
- preview : 'Xem trưá»c',
- generalTab : 'Tab chung',
- advancedTab : 'Tab má» rá»ng',
- validateNumberFailed : 'Giá trá» nà y không phải là sá».',
- confirmNewPage : 'Má»i thay Äá»i không ÄÆ°á»£c lưu lại, ná»i dung nà y sẽ bá» mất. Bạn có chắc chắn muá»n tải má»t trang má»i?',
- confirmCancel : 'Má»t và i tùy chá»n Äã bá» thay Äá»i. Bạn có chắc chắn muá»n Äóng há»p thoại?',
- options : 'Tùy chá»n',
- target : 'ÄÃch Äến',
- targetNew : 'Cá»a sá» má»i (_blank)',
- targetTop : 'Cá»a sá» trên cùng (_top)',
- targetSelf : 'Tại trang (_self)',
- targetParent : 'Cá»a sá» cha (_parent)',
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, không có</span>'
- },
-
- contextmenu :
- {
- options : 'Tùy chá»n menu bá» xung'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'Chèn ký tá»± Äặc biá»t',
- title : 'Hãy chá»n ký tá»± Äặc biá»t',
- options : 'Tùy chá»n các ký tá»± Äặc biá»t'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'Chèn/Sá»a liên kết',
- other : '<khác>',
- menu : 'Sá»a liên kết',
- title : 'Liên kết',
- info : 'Thông tin liên kết',
- target : 'ÄÃch',
- upload : 'Tải lên',
- advanced : 'Má» rá»ng',
- type : 'Kiá»u liên kết',
- toUrl : 'URL',
- toAnchor : 'Neo trong trang nà y',
- toEmail : 'Thư Äiá»n tá»',
- targetFrame : '<khung>',
- targetPopup : '<cá»a sá» popup>',
- targetFrameName : 'Tên khung ÄÃch',
- targetPopupName : 'Tên cá»a sá» Popup',
- popupFeatures : 'Äặc Äiá»m cá»§a cá»a sá» Popup',
- popupResizable : 'Có thá» thay Äá»i kÃch cỡ',
- popupStatusBar : 'Thanh trạng thái',
- popupLocationBar: 'Thanh vá» trÃ',
- popupToolbar : 'Thanh công cụ',
- popupMenuBar : 'Thanh Menu',
- popupFullScreen : 'Toà n mà n hình (IE)',
- popupScrollBars : 'Thanh cuá»n',
- popupDependent : 'Phụ thuá»c (Netscape)',
- popupWidth : 'Rá»ng',
- popupLeft : 'VỠtrà bên trái',
- popupHeight : 'Cao',
- popupTop : 'Vá» trà phÃa trên',
- id : 'Äá»nh danh',
- langDir : 'Hưá»ng ngôn ngữ',
- langDirLTR : 'Trái sang phải (LTR)',
- langDirRTL : 'Phải sang trái (RTL)',
- acccessKey : 'PhÃm há» trợ truy cáºp',
- name : 'Tên',
- langCode : 'Mã ngôn ngữ',
- tabIndex : 'Chá» sá» cá»§a Tab',
- advisoryTitle : 'Nhan Äá» hưá»ng dẫn',
- advisoryContentType : 'Ná»i dung hưá»ng dẫn',
- cssClasses : 'Lá»p Stylesheet',
- charset : 'Bảng mã cá»§a tà i nguyên ÄÆ°á»£c liên kết Äến',
- styles : 'Kiá»u (style)',
- selectAnchor : 'Chá»n má»t Äiá»m neo',
- anchorName : 'Theo tên Äiá»m neo',
- anchorId : 'Theo Äá»nh danh thà nh phần',
- emailAddress : 'Thư Äiá»n tá»',
- emailSubject : 'Tiêu Äá» thông Äiá»p',
- emailBody : 'Ná»i dung thông Äiá»p',
- noAnchors : '(Không có Äiá»m neo nà o trong tà i liá»u)',
- noUrl : 'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết (URL)',
- noEmail : 'Hãy ÄÆ°a và o Äá»a chá» thư Äiá»n tá»'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'Chèn/Sá»a Äiá»m neo',
- menu : 'Thuá»c tÃnh Äiá»m neo',
- title : 'Thuá»c tÃnh Äiá»m neo',
- name : 'Tên cá»§a Äiá»m neo',
- errorName : 'Hãy nháºp và o tên cá»§a Äiá»m neo'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Thuá»c tÃnh danh sách có thứ tá»±',
- bulletedTitle : 'Thuá»c tÃnh danh sách không thứ tá»±',
- type : 'Kiá»u loại',
- start : 'Bắt Äầu',
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Khuyên tròn',
- disc : 'Hình ÄÄ©a',
- square : 'Hình vuông',
- none : 'Không gì cả',
- notset : '<không thiết láºp>',
- armenian : 'Sá» theo kiá»u Armenian',
- georgian : 'Sá» theo kiá»u Georgian (an, ban, gan...)',
- lowerRoman : 'Sá» La Mã kiá»u thưá»ng (i, ii, iii, iv, v...)',
- upperRoman : 'Sá» La Mã kiá»u HOA (I, II, III, IV, V...)',
- lowerAlpha : 'Kiá»u abc thưá»ng (a, b, c, d, e...)',
- upperAlpha : 'Kiá»u ABC HOA (A, B, C, D, E...)',
- lowerGreek : 'Kiá»u Hy Lạp (alpha, beta, gamma...)',
- decimal : 'Kiá»u sá» (1, 2, 3 ...)',
- decimalLeadingZero : 'Kiá»u sá» (01, 02, 03...)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'Tìm kiếm và thay thế',
- find : 'Tìm kiếm',
- replace : 'Thay thế',
- findWhat : 'Tìm chuá»i:',
- replaceWith : 'Thay bằng:',
- notFoundMsg : 'Không tìm thấy chuá»i cần tìm.',
- matchCase : 'Phân biá»t chữ hoa/thưá»ng',
- matchWord : 'Giá»ng toà n bá» từ',
- matchCyclic : 'Giá»ng má»t phần',
- replaceAll : 'Thay thế tất cả',
- replaceSuccessMsg : '%1 vá» trà Äã ÄÆ°á»£c thay thế.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'Bảng',
- title : 'Thuá»c tÃnh bảng',
- menu : 'Thuá»c tÃnh bảng',
- deleteTable : 'Xóa bảng',
- rows : 'SỠhà ng',
- columns : 'Sá» cá»t',
- border : 'KÃch thưá»c ÄÆ°á»ng viá»n',
- align : 'Canh lá»',
- alignLeft : 'Trái',
- alignCenter : 'Giữa',
- alignRight : 'Phải',
- width : 'Rá»ng',
- widthPx : 'Äiá»m ảnh (px)',
- widthPc : 'Phần trÄm (%)',
- widthUnit : 'ÄÆ¡n vá»',
- height : 'Chiá»u cao',
- cellSpace : 'Khoảng cách giữa các ô',
- cellPad : 'Khoảng Äá»m giữ ô và ná»i dung',
- caption : 'Äầu Äá»',
- summary : 'Tóm lược',
- headers : 'Äầu Äá»',
- headersNone : 'Không có',
- headersColumn : 'Cá»t Äầu tiên',
- headersRow : 'Hà ng Äầu tiên',
- headersBoth : 'Cả hai',
- invalidRows : 'Sá» lượng hà ng phải là má»t sá» lá»n hÆ¡n 0.',
- invalidCols : 'Sá» lượng cá»t phải là má»t sá» lá»n hÆ¡n 0.',
- invalidBorder : 'KÃch cỡ cá»§a ÄÆ°á»ng biên phải là má»t sá» nguyên.',
- invalidWidth : 'Chiá»u rá»ng cá»§a bảng phải là má»t sá» nguyên.',
- invalidHeight : 'Chiá»u cao cá»§a bảng phải là má»t sá» nguyên.',
- invalidCellSpacing : 'Khoảng cách giữa các ô phải là má»t sá» nguyên.',
- invalidCellPadding : 'Khoảng Äá»m giữa ô và ná»i dung phải là má»t sá» nguyên.',
-
- cell :
- {
- menu : 'Ã',
- insertBefore : 'Chèn ô PhÃa trưá»c',
- insertAfter : 'Chèn ô PhÃa sau',
- deleteCell : 'Xoá ô',
- merge : 'Kết hợp ô',
- mergeRight : 'Kết hợp sang phải',
- mergeDown : 'Kết hợp xuá»ng dưá»i',
- splitHorizontal : 'Phân tách ô theo chiá»u ngang',
- splitVertical : 'Phân tách ô theo chiá»u dá»c',
- title : 'Thuá»c tÃnh cá»§a ô',
- cellType : 'Kiá»u cá»§a ô',
- rowSpan : 'Kết hợp hà ng',
- colSpan : 'Kết hợp cá»t',
- wordWrap : 'Chữ liá»n hà ng',
- hAlign : 'Canh lá» ngang',
- vAlign : 'Canh lá» dá»c',
- alignTop : 'Trên cùng',
- alignMiddle : 'ChÃnh giữa',
- alignBottom : 'Dưá»i cùng',
- alignBaseline : 'ÄÆ°á»ng cÆ¡ sá»',
- bgColor : 'Mà u ná»n',
- borderColor : 'Mà u viá»n',
- data : 'Dữ liá»u',
- header : 'Äầu Äá»',
- yes : 'Có',
- no : 'Không',
- invalidWidth : 'Chiá»u rá»ng cá»§a ô phải là má»t sá» nguyên.',
- invalidHeight : 'Chiá»u cao cá»§a ô phải là má»t sá» nguyên.',
- invalidRowSpan : 'Sá» hà ng kết hợp phải là má»t sá» nguyên.',
- invalidColSpan : 'Sá» cá»t kết hợp phải là má»t sá» nguyên.',
- chooseColor : 'Chá»n mà u'
- },
-
- row :
- {
- menu : 'HÃ ng',
- insertBefore : 'Chèn hà ng phÃa trưá»c',
- insertAfter : 'Chèn hà ng phÃa sau',
- deleteRow : 'Xoá hà ng'
- },
-
- column :
- {
- menu : 'Cá»t',
- insertBefore : 'Chèn cá»t phÃa trưá»c',
- insertAfter : 'Chèn cá»t phÃa sau',
- deleteColumn : 'Xoá cá»t'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'Thuá»c tÃnh cá»§a nút',
- text : 'Chuá»i hiá»n thá» (giá trá»)',
- type : 'Kiá»u',
- typeBtn : 'Nút bấm',
- typeSbm : 'Nút gá»i',
- typeRst : 'Nút nháºp lại'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'Thuá»c tÃnh nút kiá»m',
- radioTitle : 'Thuá»c tÃnh nút chá»n',
- value : 'Giá trá»',
- selected : 'ÄÆ°á»£c chá»n'
- },
-
- // Form Dialog.
- form :
- {
- title : 'Thuá»c tÃnh biá»u mẫu',
- menu : 'Thuá»c tÃnh biá»u mẫu',
- action : 'Hà nh Äá»ng',
- method : 'Phương thức',
- encoding : 'Bảng mã'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'Thuá»c tÃnh ô chá»n',
- selectInfo : 'Thông tin',
- opAvail : 'Các tùy chá»n có thá» sá» dụng',
- value : 'Giá trá»',
- size : 'KÃch cỡ',
- lines : 'dòng',
- chkMulti : 'Cho phép chá»n nhiá»u',
- opText : 'VÄn bản',
- opValue : 'Giá trá»',
- btnAdd : 'Thêm',
- btnModify : 'Thay Äá»i',
- btnUp : 'Lên',
- btnDown : 'Xuá»ng',
- btnSetValue : 'Giá trá» ÄÆ°á»£c chá»n',
- btnDelete : 'Nút xoá'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'Thuá»c tÃnh vùng vÄn bản',
- cols : 'Sá» cá»t',
- rows : 'SỠhà ng'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'Thuá»c tÃnh trưá»ng vÄn bản',
- name : 'Tên',
- value : 'Giá trá»',
- charWidth : 'Äá» rá»ng cá»§a ký tá»±',
- maxChars : 'Sá» ký tá»± tá»i Äa',
- type : 'Kiá»u',
- typeText : 'Ký tự',
- typePass : 'Máºt khẩu'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'Thuá»c tÃnh trưá»ng ẩn',
- name : 'Tên',
- value : 'Giá trá»'
- },
-
- // Image Dialog.
- image :
- {
- title : 'Thuá»c tÃnh cá»§a ảnh',
- titleButton : 'Thuá»c tÃnh nút cá»§a ảnh',
- menu : 'Thuá»c tÃnh cá»§a ảnh',
- infoTab : 'Thông tin của ảnh',
- btnUpload : 'Tải lên máy chủ',
- upload : 'Tải lên',
- alt : 'Chú thÃch ảnh',
- width : 'Chiá»u rá»ng',
- height : 'chiá»u cao',
- lockRatio : 'Giữ nguyên tá»· lá»',
- unlockRatio : 'Phá bá» tá»· lá»',
- resetSize : 'KÃch thưá»c gá»c',
- border : 'ÄÆ°á»ng viá»n',
- hSpace : 'Khoảng Äá»m ngang',
- vSpace : 'Khoảng Äá»m dá»c',
- align : 'Vá» trÃ',
- alignLeft : 'Bên trái',
- alignRight : 'Bên phải',
- alertUrl : 'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn cá»§a ảnh',
- linkTab : 'Tab liên kết',
- button2Img : 'Bạn có muá»n chuyá»n nút bấm bằng ảnh ÄÆ°á»£c chá»n thà nh ảnh?',
- img2Button : 'Bạn có muá»n chuyá»n Äá»i ảnh ÄÆ°á»£c chá»n thà nh nút bấm bằng ảnh?',
- urlMissing : 'Thiếu ÄÆ°á»ng dẫn hình ảnh',
- validateWidth : 'Chiá»u rá»ng cá»§a ảnh phải là má»t sá» nguyên dương',
- validateHeight : 'Chiá»u cao cá»§a ảnh phải là má»t sá» nguyên dương',
- validateBorder : 'Chiá»u rá»ng cá»§a ÄÆ°á»ng viá»n phải là má»t sá» nguyên dương',
- validateHSpace : 'Khoảng Äá»m ngang phải là má»t sá» nguyên dương',
- validateVSpace : 'Khoảng Äá»m dá»c phải là má»t sá» nguyên dương'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Thuá»c tÃnh Flash',
- propertiesTab : 'Thuá»c tÃnh',
- title : 'Thuá»c tÃnh Flash',
- chkPlay : 'Tá»± Äá»ng chạy',
- chkLoop : 'Lặp',
- chkMenu : 'Cho phép báºt menu cá»§a Flash',
- chkFull : 'Cho phép toà n mà n hình',
- scale : 'Tá»· lá»',
- scaleAll : 'Hiá»n thá» tất cả',
- scaleNoBorder : 'Không ÄÆ°á»ng viá»n',
- scaleFit : 'Vừa vặn',
- access : 'Truy cáºp mã',
- accessAlways : 'Luôn luôn',
- accessSameDomain: 'Cùng tên miá»n',
- accessNever : 'Không bao giá»',
- align : 'Vá» trÃ',
- alignLeft : 'Trái',
- alignAbsBottom : 'Dưá»i tuyá»t Äá»i',
- alignAbsMiddle : 'Giữa tuyá»t Äá»i',
- alignBaseline : 'ÄÆ°á»ng cÆ¡ sá»',
- alignBottom : 'Dưá»i',
- alignMiddle : 'Giữa',
- alignRight : 'Phải',
- alignTextTop : 'PhÃa trên chữ',
- alignTop : 'Trên',
- quality : 'Chất lượng',
- qualityBest : 'Tá»t nhất',
- qualityHigh : 'Cao',
- qualityAutoHigh : 'Cao tá»± Äá»ng',
- qualityMedium : 'Trung bình',
- qualityAutoLow : 'Thấp tá»± Äá»ng',
- qualityLow : 'Thấp',
- windowModeWindow: 'Cá»a sá»',
- windowModeOpaque: 'Má» Äục',
- windowModeTransparent : 'Trong suá»t',
- windowMode : 'Chế Äá» cá»a sá»',
- flashvars : 'Các biến sỠdà nh cho Flash',
- bgcolor : 'Mà u ná»n',
- width : 'Rá»ng',
- height : 'Cao',
- hSpace : 'Khoảng Äá»m ngang',
- vSpace : 'Khoảng Äá»m dá»c',
- validateSrc : 'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết',
- validateWidth : 'Chiá»u rá»ng phải là sá» nguyên.',
- validateHeight : 'Chiá»u cao phải là sá» nguyên.',
- validateHSpace : 'Khoảng Äá»m ngang phải là sá» nguyên.',
- validateVSpace : 'Khoảng Äá»m dá»c phải là sá» nguyên.'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'Kiá»m tra chÃnh tả',
- title : 'Kiá»m tra chÃnh tả',
- notAvailable : 'Xin lá»i, dá»ch vụ nà y hiá»n tại không có.',
- errorLoading : 'Lá»i khi Äang nạp dá»ch vụ ứng dụng: %s.',
- notInDic : 'Không có trong từ Äiá»n',
- changeTo : 'Chuyá»n thà nh',
- btnIgnore : 'Bá» qua',
- btnIgnoreAll : 'BỠqua tất cả',
- btnReplace : 'Thay thế',
- btnReplaceAll : 'Thay thế tất cả',
- btnUndo : 'Phục há»i lại',
- noSuggestions : '- Không ÄÆ°a ra gợi ý vá» từ -',
- progress : 'Äang tiến hà nh kiá»m tra chÃnh tả...',
- noMispell : 'Hoà n tất kiá»m tra chÃnh tả: Không có lá»i chÃnh tả',
- noChanges : 'Hoà n tất kiá»m tra chÃnh tả: Không có từ nà o ÄÆ°á»£c thay Äá»i',
- oneChange : 'Hoà n tất kiá»m tra chÃnh tả: Má»t từ Äã ÄÆ°á»£c thay Äá»i',
- manyChanges : 'Hoà n tất kiá»m tra chÃnh tả: %1 từ Äã ÄÆ°á»£c thay Äá»i',
- ieSpellDownload : 'Chức nÄng kiá»m tra chÃnh tả chưa ÄÆ°á»£c cà i Äặt. Bạn có muá»n tải vá» ngay bây giá»?'
- },
-
- smiley :
- {
- toolbar : 'Hình biá»u lá» cảm xúc (mặt cưá»i)',
- title : 'Chèn hình biá»u lá» cảm xúc (mặt cưá»i)',
- options : 'Tùy chá»n hình biá»u lá» cảm xúc'
- },
-
- elementsPath :
- {
- eleLabel : 'Nhãn thà nh phần',
- eleTitle : '%1 thà nh phần'
- },
-
- numberedlist : 'Danh sách có thứ tự',
- bulletedlist : 'Danh sách không thứ tự',
- indent : 'Dá»ch và o trong',
- outdent : 'Dá»ch ra ngoà i',
-
- justify :
- {
- left : 'Canh trái',
- center : 'Canh giữa',
- right : 'Canh phải',
- block : 'Canh Äá»u'
- },
-
- blockquote : 'Khá»i trÃch dẫn',
-
- clipboard :
- {
- title : 'Dán',
- cutError : 'Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh cắt. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+X).',
- copyError : 'Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh sao chép. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+C).',
- pasteMsg : 'Hãy dán ná»i dung và o trong khung bên dưá»i, sá» dụng tá» hợp phÃm (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn và o nút <STRONG>Äá»ng ý</STRONG>.',
- securityMsg : 'Do thiết láºp bảo máºt cá»§a trình duyá»t nên trình biên táºp không thá» truy cáºp trá»±c tiếp và o ná»i dung Äã sao chép. Bạn cần phải dán lại ná»i dung và o cá»a sá» nà y.',
- pasteArea : 'Khu vực dán'
- },
-
- pastefromword :
- {
- confirmCleanup : 'VÄn bản bạn muá»n dán có kèm Äá»nh dạng cá»§a Word. Bạn có muá»n loại bá» Äá»nh dạng Word trưá»c khi dán?',
- toolbar : 'Dán vá»i Äá»nh dạng Word',
- title : 'Dán vá»i Äá»nh dạng Word',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'Dán theo Äá»nh dạng vÄn bản thuần',
- title : 'Dán theo Äá»nh dạng vÄn bản thuần'
- },
-
- templates :
- {
- button : 'Mẫu dựng sẵn',
- title : 'Ná»i dung Mẫu dá»±ng sẵn',
- options : 'Tùy chá»n mẫu dá»±ng sẵn',
- insertOption : 'Thay thế ná»i dung hiá»n tại',
- selectPromptMsg : 'Hãy chá»n mẫu dá»±ng sẵn Äá» má» trong trình biên táºp<br>(ná»i dung hiá»n tại sẽ bá» mất):',
- emptyListMsg : '(Không có mẫu dá»±ng sẵn nà o ÄÆ°á»£c Äá»nh nghÄ©a)'
- },
-
- showBlocks : 'Hiá»n thá» các khá»i',
-
- stylesCombo :
- {
- label : 'Kiá»u',
- panelTitle : 'Phong cách Äá»nh dạng',
- panelTitle1 : 'Kiá»u khá»i',
- panelTitle2 : 'Kiá»u trá»±c tiếp',
- panelTitle3 : 'Kiá»u Äá»i tượng'
- },
-
- format :
- {
- label : 'Äá»nh dạng',
- panelTitle : 'Äá»nh dạng',
-
- tag_p : 'Bình thưá»ng (P)',
- tag_pre : 'Äã thiết láºp',
- tag_address : 'Address',
- tag_h1 : 'Heading 1',
- tag_h2 : 'Heading 2',
- tag_h3 : 'Heading 3',
- tag_h4 : 'Heading 4',
- tag_h5 : 'Heading 5',
- tag_h6 : 'Heading 6',
- tag_div : 'Bình thưá»ng (DIV)'
- },
-
- div :
- {
- title : 'Tạo khá»i các thà nh phần',
- toolbar : 'Tạo khá»i các thà nh phần',
- cssClassInputLabel : 'Các lá»p CSS',
- styleSelectLabel : 'Kiá»u (style)',
- IdInputLabel : 'Äá»nh danh (id)',
- languageCodeInputLabel : 'Mã ngôn ngữ',
- inlineStyleInputLabel : 'Kiá»u ná»i dòng',
- advisoryTitleInputLabel : 'Nhan Äá» hưá»ng dẫn',
- langDirLabel : 'Hưá»ng ngôn ngữ',
- langDirLTRLabel : 'Trái sang phải (LTR)',
- langDirRTLLabel : 'Phải qua trái (RTL)',
- edit : 'Chá»nh sá»a',
- remove : 'Xóa bá»'
- },
-
- font :
- {
- label : 'Phông',
- voiceLabel : 'Phông',
- panelTitle : 'Phông'
- },
-
- fontSize :
- {
- label : 'Cỡ chữ',
- voiceLabel : 'KÃch cỡ phông',
- panelTitle : 'Cỡ chữ'
- },
-
- colorButton :
- {
- textColorTitle : 'Mà u chữ',
- bgColorTitle : 'Mà u ná»n',
- panelTitle : 'Mà u sắc',
- auto : 'Tá»± Äá»ng',
- more : 'Mà u khác...'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : 'Kiá»m tra chÃnh tả ngay khi gõ chữ (SCAYT)',
- opera_title : 'Không há» trợ trên trình duyá»t Opera',
- enable : 'Báºt SCAYT',
- disable : 'Tắt SCAYT',
- about : 'Thông tin vỠSCAYT',
- toggle : 'Báºt tắt SCAYT',
- options : 'Tùy chá»n',
- langs : 'Ngôn ngữ',
- moreSuggestions : 'Äá» xuất thêm',
- ignore : 'Bá» qua',
- ignoreAll : 'BỠqua tất cả',
- addWord : 'Thêm từ',
- emptyDic : 'Tên cá»§a từ Äiá»n không ÄÆ°á»£c Äá» trá»ng.',
-
- optionsTab : 'Tùy chá»n',
- allCaps : 'Không phân biá»t chữ HOA chữ thưá»ng',
- ignoreDomainNames : 'Bá» qua tên miá»n',
- mixedCase : 'Không phân biá»t loại chữ',
- mixedWithDigits : 'Không phân biá»t chữ và sá»',
-
- languagesTab : 'Tab ngôn ngữ',
-
- dictionariesTab : 'Từ Äiá»n',
- dic_field_name : 'Tên từ Äiá»n',
- dic_create : 'Tạo',
- dic_restore : 'Phục há»i',
- dic_delete : 'Xóa',
- dic_rename : 'Thay tên',
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'Thông tin'
- },
-
- about :
- {
- title : 'Thông tin vỠCKEditor',
- dlgTitle : 'Thông tin vỠCKEditor',
- moreInfo : 'Vui lòng ghé thÄm trang web cá»§a chúng tôi Äá» có thông tin vá» giấy phép:',
- copy : 'Bản quyá»n © $1. Giữ toà n quyá»n.'
- },
-
- maximize : 'Phóng to tá»i Äa',
- minimize : 'Thu nhá»',
-
- fakeobjects :
- {
- anchor : 'Äiá»m neo',
- flash : 'Flash',
- div : 'Ngắt trang',
- unknown : 'Äá»i tượng không rõ rà ng'
- },
-
- resize : 'Kéo rê Äá» thay Äá»i kÃch cỡ',
-
- colordialog :
- {
- title : 'Chá»n mà u',
- options : 'Color Options', // MISSING
- highlight : 'Mà u chá»n',
- selected : 'Mà u Äã chá»n',
- clear : 'Xóa bá»'
- },
-
- toolbarCollapse : 'Thu gá»n thanh công cụ',
- toolbarExpand : 'Má» rá»ng thnah công cụ',
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Vietnamese language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'vi' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'BỠsoạn thảo',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'Nhấn ALT + 0 Äá» ÄÆ°á»£c giúp Äỡ',
+
+ browseServer: 'Duyá»t trên máy chá»§',
+ url: 'URL',
+ protocol: 'Giao thức',
+ upload: 'Tải lên',
+ uploadSubmit: 'Tải lên máy chủ',
+ image: 'Hình ảnh',
+ flash: 'Flash',
+ form: 'Biá»u mẫu',
+ checkbox: 'Nút kiá»m',
+ radio: 'Nút chá»n',
+ textField: 'Trưá»ng vÄn bản',
+ textarea: 'Vùng vÄn bản',
+ hiddenField: 'Trưá»ng ẩn',
+ button: 'Nút',
+ select: 'à chá»n',
+ imageButton: 'Nút hình ảnh',
+ notSet: '<không thiết láºp>',
+ id: 'Äá»nh danh',
+ name: 'Tên',
+ langDir: 'Hưá»ng ngôn ngữ',
+ langDirLtr: 'Trái sang phải (LTR)',
+ langDirRtl: 'Phải sang trái (RTL)',
+ langCode: 'Mã ngôn ngữ',
+ longDescr: 'Mô tả URL',
+ cssClass: 'Lá»p Stylesheet',
+ advisoryTitle: 'Nhan Äá» hưá»ng dẫn',
+ cssStyle: 'Kiá»u (style)',
+ ok: 'Äá»ng ý',
+ cancel: 'Bá» qua',
+ close: 'Äóng',
+ preview: 'Xem trưá»c',
+ resize: 'Kéo rê Äá» thay Äá»i kÃch cỡ',
+ generalTab: 'Tab chung',
+ advancedTab: 'Tab má» rá»ng',
+ validateNumberFailed: 'Giá trá» nà y không phải là sá».',
+ confirmNewPage: 'Má»i thay Äá»i không ÄÆ°á»£c lưu lại, ná»i dung nà y sẽ bá» mất. Bạn có chắc chắn muá»n tải má»t trang má»i?',
+ confirmCancel: 'Má»t và i tùy chá»n Äã bá» thay Äá»i. Bạn có chắc chắn muá»n Äóng há»p thoại?',
+ options: 'Tùy chá»n',
+ target: 'ÄÃch Äến',
+ targetNew: 'Cá»a sá» má»i (_blank)',
+ targetTop: 'Cá»a sá» trên cùng (_top)',
+ targetSelf: 'Tại trang (_self)',
+ targetParent: 'Cá»a sá» cha (_parent)',
+ langDirLTR: 'Trái sang phải (LTR)',
+ langDirRTL: 'Phải sang trái (RTL)',
+ styles: 'Kiá»u',
+ cssClasses: 'Lá»p CSS',
+ width: 'Chiá»u rá»ng',
+ height: 'chiá»u cao',
+ align: 'Vá» trÃ',
+ alignLeft: 'Trái',
+ alignRight: 'Phải',
+ alignCenter: 'Giữa',
+ alignTop: 'Trên',
+ alignMiddle: 'Giữa',
+ alignBottom: 'Dưá»i',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'Chiá»u cao phải là sá» nguyên.',
+ invalidWidth: 'Chiá»u rá»ng phải là sá» nguyên.',
+ invalidCssLength: 'Giá trá» quy Äá»nh cho trưá»ng "%1" phải là má»t sá» dương có hoặc không có má»t ÄÆ¡n vá» Äo CSS hợp lá» (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
+ invalidHtmlLength: 'Giá trá» quy Äá»nh cho trưá»ng "%1" phải là má»t sá» dương có hoặc không có má»t ÄÆ¡n vá» Äo HTML hợp lá» (px hoặc %).',
+ invalidInlineStyle: 'Giá trá» quy Äá»nh cho kiá»u ná»i tuyến phải bao gá»m má»t hoặc nhiá»u dữ liá»u vá»i Äá»nh dạng "tên:giá trá»", cách nhau bằng dấu chấm phẩy.',
+ cssLengthTooltip: 'Nháºp má»t giá trá» theo pixel hoặc má»t sá» vá»i má»t ÄÆ¡n vá» CSS hợp lá» (px, %, in, cm, mm, em, ex, pt, hoặc pc).',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, không có</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/zh-cn.js b/devel/third-party/ckeditor/lang/zh-cn.js
index 4312e4f..815d817 100644
--- a/devel/third-party/ckeditor/lang/zh-cn.js
+++ b/devel/third-party/ckeditor/lang/zh-cn.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Chinese Simplified language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['zh-cn'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'æè§å³æå¾ç¼è¾å¨, %1, æ ALT+0 æ¥ç帮å©ã',
-
- // ARIA descriptions.
- toolbar : 'å·¥å
·æ ',
- editor : 'æè§å³æå¾ç¼è¾å¨',
-
- // Toolbar buttons without dialogs.
- source : 'æºç ',
- newPage : 'æ°å»º',
- save : 'ä¿å',
- preview : 'é¢è§',
- cut : 'åªå',
- copy : 'å¤å¶',
- paste : 'ç²è´´',
- print : 'æå°',
- underline : 'ä¸å线',
- bold : 'å ç²',
- italic : '徿',
- selectAll : 'å
¨é',
- removeFormat : 'æ¸
餿 ¼å¼',
- strike : 'å é¤çº¿',
- subscript : '䏿 ',
- superscript : '䏿 ',
- horizontalrule : 'æå
¥æ°´å¹³çº¿',
- pagebreak : 'æå
¥å页符',
- unlink : 'åæ¶è¶
龿¥',
- undo : 'æ¤æ¶',
- redo : 'éå',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'æµè§æå¡å¨',
- url : 'æºæä»¶',
- protocol : 'åè®®',
- upload : 'ä¸ä¼ ',
- uploadSubmit : 'ä¸ä¼ å°æå¡å¨ä¸',
- image : 'å¾è±¡',
- flash : 'Flash',
- form : '表å',
- checkbox : 'å¤éæ¡',
- radio : 'åéæé®',
- textField : 'åè¡ææ¬',
- textarea : 'å¤è¡ææ¬',
- hiddenField : 'éèå',
- button : 'æé®',
- select : 'å表/èå',
- imageButton : 'å¾åå',
- notSet : '<没æè®¾ç½®>',
- id : 'ID',
- name : 'åç§°',
- langDir : 'è¯è¨æ¹å',
- langDirLtr : 'ä»å·¦å°å³ (LTR)',
- langDirRtl : 'ä»å³å°å·¦ (RTL)',
- langCode : 'è¯è¨ä»£ç ',
- longDescr : '详ç»è¯´æå°å',
- cssClass : 'æ ·å¼ç±»åç§°',
- advisoryTitle : 'æ é¢',
- cssStyle : 'è¡å
æ ·å¼',
- ok : 'ç¡®å®',
- cancel : 'åæ¶',
- close : 'å
³é',
- preview : 'é¢è§',
- generalTab : '常è§',
- advancedTab : 'é«çº§',
- validateNumberFailed : 'éè¦è¾å
¥æ°åæ ¼å¼',
- confirmNewPage : 'å½åææ¡£å
容æªä¿å,æ¯å¦ç¡®è®¤æ°å»ºææ¡£ï¼',
- confirmCancel : 'é¨åä¿®æ¹å°æªä¿åï¼æ¯å¦ç¡®è®¤å
³éå¯¹è¯æ¡ï¼',
- options : 'é项',
- target : 'ç®æ çªå£',
- targetNew : 'æ°çªå£ (_blank)',
- targetTop : 'æ´é¡µ (_top)',
- targetSelf : 'æ¬çªå£ (_self)',
- targetParent : 'ç¶çªå£ (_parent)',
- langDirLTR : 'ä»å·¦å°å³ (LTR)',
- langDirRTL : 'ä»å³å°å·¦ (RTL)',
- styles : 'æ ·å¼',
- cssClasses : 'æ ·å¼ç±»',
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, ä¸å¯ç¨</span>'
- },
-
- contextmenu :
- {
- options : 'å¿«æ·èåé项'
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'æå
¥ç¹æ®ç¬¦å·',
- title : 'éæ©ç¹æ®ç¬¦å·',
- options : 'ç¹æ®ç¬¦å·é项'
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'æå
¥/ç¼è¾è¶
龿¥',
- other : '<å
¶ä»>',
- menu : 'ç¼è¾è¶
龿¥',
- title : 'è¶
龿¥',
- info : 'è¶
龿¥ä¿¡æ¯',
- target : 'ç®æ ',
- upload : 'ä¸ä¼ ',
- advanced : 'é«çº§',
- type : 'è¶
龿¥ç±»å',
- toUrl : 'å°å',
- toAnchor : '页å
éç¹é¾æ¥',
- toEmail : 'çµåé®ä»¶',
- targetFrame : '<æ¡æ¶>',
- targetPopup : '<å¼¹åºçªå£>',
- targetFrameName : 'ç®æ æ¡æ¶åç§°',
- targetPopupName : 'å¼¹åºçªå£åç§°',
- popupFeatures : 'å¼¹åºçªå£å±æ§',
- popupResizable : 'å¯ç¼©æ¾',
- popupStatusBar : 'ç¶ææ ',
- popupLocationBar: 'å°åæ ',
- popupToolbar : 'å·¥å
·æ ',
- popupMenuBar : 'èåæ ',
- popupFullScreen : 'å
¨å± (IE)',
- popupScrollBars : 'æ»å¨æ¡',
- popupDependent : 'ä¾é (NS)',
- popupWidth : '宽',
- popupLeft : 'å·¦',
- popupHeight : 'é«',
- popupTop : 'å³',
- id : 'ID',
- langDir : 'è¯è¨æ¹å',
- langDirLTR : 'ä»å·¦å°å³ (LTR)',
- langDirRTL : 'ä»å³å°å·¦ (RTL)',
- acccessKey : '访é®é®',
- name : 'åç§°',
- langCode : 'è¯è¨ä»£ç ',
- tabIndex : 'Tab 鮿¬¡åº',
- advisoryTitle : 'æ é¢',
- advisoryContentType : 'å
容类å',
- cssClasses : 'æ ·å¼ç±»åç§°',
- charset : 'å符ç¼ç ',
- styles : 'è¡å
æ ·å¼',
- selectAnchor : 'éæ©ä¸ä¸ªéç¹',
- anchorName : 'æéç¹åç§°',
- anchorId : 'æéç¹ ID',
- emailAddress : 'å°å',
- emailSubject : '主é¢',
- emailBody : 'å
容',
- noAnchors : '(æ¤ææ¡£æ²¡æå¯ç¨çéç¹)',
- noUrl : '请è¾å
¥è¶
龿¥å°å',
- noEmail : '请è¾å
¥çµåé®ä»¶å°å'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'æå
¥/ç¼è¾éç¹é¾æ¥',
- menu : 'éç¹é¾æ¥å±æ§',
- title : 'éç¹é¾æ¥å±æ§',
- name : 'éç¹åç§°',
- errorName : '请è¾å
¥éç¹åç§°'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'ç¼å·åè¡¨å±æ§',
- bulletedTitle : '项ç®åè¡¨å±æ§',
- type : 'æ è®°ç±»å',
- start : 'å¼å§åºå·',
- validateStartNumber :'å表å¼å§åºå·å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- circle : '空å¿å',
- disc : 'å®å¿å',
- square : 'å®å¿æ¹å',
- none : 'æ æ è®°',
- notset : '<没æè®¾ç½®>',
- armenian : 'ä¼ ç»çäºç¾å°¼äºç¼å·æ¹å¼',
- georgian : 'ä¼ ç»ç乿²»äºç¼å·æ¹å¼(an, ban, gan, ç)',
- lowerRoman : 'å°åç½é©¬æ°å(i, ii, iii, iv, v, ç)',
- upperRoman : '大åç½é©¬æ°å(I, II, III, IV, V, ç)',
- lowerAlpha : 'å°åè±æåæ¯(a, b, c, d, e, ç)',
- upperAlpha : '大åè±æåæ¯(A, B, C, D, E, ç)',
- lowerGreek : 'å°åå¸è
忝(alpha, beta, gamma, ç)',
- decimal : 'æ°å (1, 2, 3, ç)',
- decimalLeadingZero : '0å¼å¤´çæ°åæ è®°(01, 02, 03, ç)'
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'æ¥æ¾åæ¿æ¢',
- find : 'æ¥æ¾',
- replace : 'æ¿æ¢',
- findWhat : 'æ¥æ¾:',
- replaceWith : 'æ¿æ¢:',
- notFoundMsg : 'æå®ææ¬æ²¡ææ¾å°',
- matchCase : 'åºå大å°å',
- matchWord : 'å
¨åå¹é
',
- matchCyclic : '循ç¯å¹é
',
- replaceAll : 'å
¨é¨æ¿æ¢',
- replaceSuccessMsg : 'å
±å®æ %1 夿¿æ¢.'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'è¡¨æ ¼',
- title : 'è¡¨æ ¼å±æ§',
- menu : 'è¡¨æ ¼å±æ§',
- deleteTable : 'å é¤è¡¨æ ¼',
- rows : 'è¡æ°',
- columns : 'åæ°',
- border : 'è¾¹æ¡',
- align : '对é½',
- alignLeft : '左对é½',
- alignCenter : 'å±
ä¸',
- alignRight : 'å³å¯¹é½',
- width : '宽度',
- widthPx : 'åç´ ',
- widthPc : 'ç¾åæ¯',
- widthUnit : '宽度åä½',
- height : 'é«åº¦',
- cellSpace : 'é´è·',
- cellPad : 'è¾¹è·',
- caption : 'æ é¢',
- summary : 'æè¦',
- headers : 'æ é¢åå
æ ¼',
- headersNone : 'æ ',
- headersColumn : '第ä¸å',
- headersRow : '第ä¸è¡',
- headersBoth : '第ä¸åå第ä¸è¡',
- invalidRows : 'æå®çåæ°å¿
须大äºé¶',
- invalidCols : 'æå®çè¡æ°å¿
须大äºé¶',
- invalidBorder : 'è¾¹æ¡ç²ç»å¿
须为æ°åæ ¼å¼',
- invalidWidth : 'è¡¨æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼',
- invalidHeight : 'è¡¨æ ¼é«åº¦å¿
须为æ°åæ ¼å¼',
- invalidCellSpacing : 'åå
æ ¼é´è·å¿
须为æ°åæ ¼å¼',
- invalidCellPadding : 'åå
æ ¼å¡«å
å¿
须为æ°åæ ¼å¼',
-
- cell :
- {
- menu : 'åå
æ ¼',
- insertBefore : 'å¨å·¦ä¾§æå
¥åå
æ ¼',
- insertAfter : 'å¨å³ä¾§æå
¥åå
æ ¼',
- deleteCell : 'å é¤åå
æ ¼',
- merge : 'åå¹¶åå
æ ¼',
- mergeRight : 'åå³åå¹¶åå
æ ¼',
- mergeDown : 'åä¸åå¹¶åå
æ ¼',
- splitHorizontal : 'æ°´å¹³æååå
æ ¼',
- splitVertical : 'åç´æååå
æ ¼',
- title : 'åå
æ ¼å±æ§',
- cellType : 'åå
æ ¼ç±»å',
- rowSpan : 'çºµè·¨è¡æ°',
- colSpan : 'æ¨ªè·¨åæ°',
- wordWrap : 'èªå¨æ¢è¡',
- hAlign : '水平对é½',
- vAlign : 'åç´å¯¹é½',
- alignTop : '顶端',
- alignMiddle : 'ä¸é´',
- alignBottom : 'åºé¨',
- alignBaseline : 'åºçº¿',
- bgColor : 'èæ¯é¢è²',
- borderColor : 'è¾¹æ¡é¢è²',
- data : 'æ°æ®',
- header : '表头',
- yes : 'æ¯',
- no : 'å¦',
- invalidWidth : 'åå
æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼',
- invalidHeight : 'åå
æ ¼é«åº¦å¿
须为æ°åæ ¼å¼',
- invalidRowSpan : 'è¡è·¨åº¦å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- invalidColSpan : 'å跨度å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- chooseColor : 'éæ©'
- },
-
- row :
- {
- menu : 'è¡',
- insertBefore : 'å¨ä¸æ¹æå
¥è¡',
- insertAfter : 'å¨ä¸æ¹æå
¥è¡',
- deleteRow : 'å é¤è¡'
- },
-
- column :
- {
- menu : 'å',
- insertBefore : 'å¨å·¦ä¾§æå
¥å',
- insertAfter : 'å¨å³ä¾§æå
¥å',
- deleteColumn : 'å é¤å'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'æé®å±æ§',
- text : 'æ ç¾(å¼)',
- type : 'ç±»å',
- typeBtn : 'æé®',
- typeSbm : 'æäº¤',
- typeRst : 'é设'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'å¤éæ¡å±æ§',
- radioTitle : 'åéæé®å±æ§',
- value : 'éå®å¼',
- selected : 'å·²å¾é'
- },
-
- // Form Dialog.
- form :
- {
- title : '表å屿§',
- menu : '表å屿§',
- action : 'å¨ä½',
- method : 'æ¹æ³',
- encoding : '表åç¼ç '
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'èå/åè¡¨å±æ§',
- selectInfo : 'éæ©ä¿¡æ¯',
- opAvail : 'å¯é项',
- value : 'å¼',
- size : 'é«åº¦',
- lines : 'è¡',
- chkMulti : 'å
许å¤é',
- opText : 'éé¡¹ææ¬',
- opValue : 'é项å¼',
- btnAdd : 'æ·»å ',
- btnModify : 'ä¿®æ¹',
- btnUp : 'ä¸ç§»',
- btnDown : 'ä¸ç§»',
- btnSetValue : '设为åå§éå®',
- btnDelete : 'å é¤'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'å¤è¡ææ¬å±æ§',
- cols : 'å符宽度',
- rows : 'è¡æ°'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'åè¡ææ¬å±æ§',
- name : 'åç§°',
- value : 'åå§å¼',
- charWidth : 'å符宽度',
- maxChars : 'æå¤å符æ°',
- type : 'ç±»å',
- typeText : 'ææ¬',
- typePass : 'å¯ç '
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'éèå屿§',
- name : 'åç§°',
- value : 'åå§å¼'
- },
-
- // Image Dialog.
- image :
- {
- title : 'å¾è±¡å±æ§',
- titleButton : 'å¾åå屿§',
- menu : 'å¾è±¡å±æ§',
- infoTab : 'å¾è±¡',
- btnUpload : 'ä¸ä¼ å°æå¡å¨ä¸',
- upload : 'ä¸ä¼ ',
- alt : 'æ¿æ¢ææ¬',
- width : '宽度',
- height : 'é«åº¦',
- lockRatio : 'é宿¯ä¾',
- unlockRatio : 'ä¸é宿¯ä¾',
- resetSize : 'åå§å°ºå¯¸',
- border : 'è¾¹æ¡å¤§å°',
- hSpace : 'æ°´å¹³é´è·',
- vSpace : 'åç´é´è·',
- align : '坹齿¹å¼',
- alignLeft : '左对é½',
- alignRight : 'å³å¯¹é½',
- alertUrl : '请è¾å
¥å¾è±¡å°å',
- linkTab : '龿¥',
- button2Img : 'ç¡®å®è¦æå½åæé®æ¹å为å¾åå?',
- img2Button : 'ç¡®å®è¦æå½åå¾åæ¹å为æé®å?',
- urlMissing : '缺å°å¾åæºæä»¶å°å',
- validateWidth : 'å¾å宽度å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- validateHeight : 'å¾åé«åº¦å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- validateBorder : 'è¾¹æ¡å¤§å°å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- validateHSpace : 'æ°´å¹³é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
- validateVSpace : 'åç´é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼'
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash 屿§',
- propertiesTab : '屿§',
- title : 'æ é¢',
- chkPlay : 'èªå¨ææ¾',
- chkLoop : '循ç¯',
- chkMenu : 'å¯ç¨ Flash èå',
- chkFull : 'å¯ç¨å
¨å±',
- scale : '缩æ¾',
- scaleAll : 'å
¨é¨æ¾ç¤º',
- scaleNoBorder : 'æ è¾¹æ¡',
- scaleFit : 'ä¸¥æ ¼å¹é
',
- access : 'å
è®¸èæ¬è®¿é®',
- accessAlways : 'æ»æ¯',
- accessSameDomain: 'åå',
- accessNever : 'ä»ä¸',
- align : '坹齿¹å¼',
- alignLeft : '左对é½',
- alignAbsBottom : 'ç»å¯¹åºé¨',
- alignAbsMiddle : 'ç»å¯¹å±
ä¸',
- alignBaseline : 'åºçº¿',
- alignBottom : 'åºé¨',
- alignMiddle : 'å±
ä¸',
- alignRight : 'å³å¯¹é½',
- alignTextTop : 'ææ¬ä¸æ¹',
- alignTop : '顶端',
- quality : 'è´¨é',
- qualityBest : 'æå¥½',
- qualityHigh : 'é«',
- qualityAutoHigh : 'é«(èªå¨)',
- qualityMedium : 'ä¸(èªå¨)',
- qualityAutoLow : 'ä½(èªå¨)',
- qualityLow : 'ä½',
- windowModeWindow: 'çªä½',
- windowModeOpaque: 'ä¸éæ',
- windowModeTransparent : 'éæ',
- windowMode : 'çªä½æ¨¡å¼',
- flashvars : 'Flash åé',
- bgcolor : 'èæ¯é¢è²',
- width : '宽度',
- height : 'é«åº¦',
- hSpace : 'æ°´å¹³é´è·',
- vSpace : 'åç´é´è·',
- validateSrc : '请è¾å
¥æºæä»¶å°å',
- validateWidth : '宽度å¿
须为æ°åæ ¼å¼',
- validateHeight : 'é«åº¦å¿
须为æ°åæ ¼å¼',
- validateHSpace : 'æ°´å¹³é´è·å¿
须为æ°åæ ¼å¼',
- validateVSpace : 'åç´é´è·å¿
须为æ°åæ ¼å¼'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'æ¼åæ£æ¥',
- title : 'æ¼åæ£æ¥',
- notAvailable : 'æ±æ, æå¡ç®åæä¸å¯ç¨',
- errorLoading : 'å è½½åºè¯¥æå¡ä¸»æºæ¶åºé: %s.',
- notInDic : '没æå¨åå
¸é',
- changeTo : 'æ´æ¹ä¸º',
- btnIgnore : '忽ç¥',
- btnIgnoreAll : 'å
¨é¨å¿½ç¥',
- btnReplace : 'æ¿æ¢',
- btnReplaceAll : 'å
¨é¨æ¿æ¢',
- btnUndo : 'æ¤æ¶',
- noSuggestions : '- 没æå»ºè®® -',
- progress : 'æ£å¨è¿è¡æ¼åæ£æ¥...',
- noMispell : 'æ¼åæ£æ¥å®æ: 没æåç°æ¼åé误',
- noChanges : 'æ¼åæ£æ¥å®æ: æ²¡ææ´æ¹ä»»ä½åè¯',
- oneChange : 'æ¼åæ£æ¥å®æ: æ´æ¹äºä¸ä¸ªåè¯',
- manyChanges : 'æ¼åæ£æ¥å®æ: æ´æ¹äº %1 个åè¯',
- ieSpellDownload : 'æ¼åæ£æ¥æä»¶è¿æ²¡å®è£
, ä½ æ¯å¦æ³ç°å¨å°±ä¸è½½?'
- },
-
- smiley :
- {
- toolbar : '表æ
符',
- title : 'æå
¥è¡¨æ
徿 ',
- options : '表æ
徿 é项'
- },
-
- elementsPath :
- {
- eleLabel : 'å
ç´ è·¯å¾',
- eleTitle : '%1 å
ç´ '
- },
-
- numberedlist : 'ç¼å·å表',
- bulletedlist : '项ç®å表',
- indent : 'å¢å 缩è¿é',
- outdent : 'åå°ç¼©è¿é',
-
- justify :
- {
- left : '左对é½',
- center : 'å±
ä¸',
- right : 'å³å¯¹é½',
- block : '两端对é½'
- },
-
- blockquote : 'åå¼ç¨',
-
- clipboard :
- {
- title : 'ç²è´´',
- cutError : 'æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡åªåæä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+X)æ¥å®æ',
- copyError : 'æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡å¤å¶æä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+C)æ¥å®æ',
- pasteMsg : '请使ç¨é®çå¿«æ·é®(<STRONG>Ctrl/Cmd+V</STRONG>)æå
容ç²è´´å°ä¸é¢çæ¹æ¡éï¼åæ <STRONG>ç¡®å®</STRONG>',
- securityMsg : 'å ä¸ºä½ çæµè§å¨çå®å
¨è®¾ç½®åå , æ¬ç¼è¾å¨ä¸è½ç´æ¥è®¿é®ä½ çåªè´´æ¿å
容, ä½ éè¦å¨æ¬çªå£éæ°ç²è´´ä¸æ¬¡',
- pasteArea : 'ç²è´´åºå'
- },
-
- pastefromword :
- {
- confirmCleanup : 'æ¨è¦ç²è´´çå
容好忝æ¥èª MS Word, æ¯å¦è¦æ¸
é¤ MS Word æ ¼å¼ååç²è´´?',
- toolbar : 'ä» MS Word ç²è´´',
- title : 'ä» MS Word ç²è´´',
- error : 'ç±äºå
é¨éè¯¯æ æ³æ¸
çè¦ç²è´´çæ°æ®'
- },
-
- pasteText :
- {
- button : 'ç²è´´ä¸ºæ æ ¼å¼ææ¬',
- title : 'ç²è´´ä¸ºæ æ ¼å¼ææ¬'
- },
-
- templates :
- {
- button : '模æ¿',
- title : 'å
容模æ¿',
- options : '模æ¿é项',
- insertOption : 'æ¿æ¢å½åå
容',
- selectPromptMsg : 'è¯·éæ©ç¼è¾å¨å
容模æ¿:',
- emptyListMsg : '(æ²¡ææ¨¡æ¿)'
- },
-
- showBlocks : 'æ¾ç¤ºåºå',
-
- stylesCombo :
- {
- label : 'æ ·å¼',
- panelTitle : 'æ ·å¼',
- panelTitle1 : 'å级å
ç´ æ ·å¼',
- panelTitle2 : 'å
èå
ç´ æ ·å¼',
- panelTitle3 : '对象å
ç´ æ ·å¼'
- },
-
- format :
- {
- label : 'æ ¼å¼',
- panelTitle : 'æ ¼å¼',
-
- tag_p : 'æ®é',
- tag_pre : 'å·²ç¼ææ ¼å¼',
- tag_address : 'å°å',
- tag_h1 : 'æ é¢ 1',
- tag_h2 : 'æ é¢ 2',
- tag_h3 : 'æ é¢ 3',
- tag_h4 : 'æ é¢ 4',
- tag_h5 : 'æ é¢ 5',
- tag_h6 : 'æ é¢ 6',
- tag_div : '段è½(DIV)'
- },
-
- div :
- {
- title : 'å建 DIV 容å¨',
- toolbar : 'å建 DIV 容å¨',
- cssClassInputLabel : 'æ ·å¼ç±»åç§°',
- styleSelectLabel : 'æ ·å¼',
- IdInputLabel : 'ID',
- languageCodeInputLabel : 'è¯è¨ä»£ç ',
- inlineStyleInputLabel : 'è¡å
æ ·å¼',
- advisoryTitleInputLabel : 'æ é¢',
- langDirLabel : 'è¯è¨æ¹å',
- langDirLTRLabel : 'ä»å·¦å°å³ (LTR)',
- langDirRTLLabel : 'ä»å³å°å·¦ (RTL)',
- edit : 'ç¼è¾ DIV',
- remove : 'ç§»é¤ DIV'
- },
-
- font :
- {
- label : 'åä½',
- voiceLabel : 'åä½',
- panelTitle : 'åä½'
- },
-
- fontSize :
- {
- label : '大å°',
- voiceLabel : 'æå大å°',
- panelTitle : '大å°'
- },
-
- colorButton :
- {
- textColorTitle : 'ææ¬é¢è²',
- bgColorTitle : 'èæ¯é¢è²',
- panelTitle : 'é¢è²',
- auto : 'èªå¨',
- more : 'å
¶å®é¢è²...'
- },
-
- colors :
- {
- '000' : 'é»',
- '800000' : 'è¤çº¢',
- '8B4513' : 'æ·±è¤',
- '2F4F4F' : '墨绿',
- '008080' : '绿æ¾ç³',
- '000080' : 'æµ·åè',
- '4B0082' : 'éè',
- '696969' : 'æç°',
- 'B22222' : 'ç 红',
- 'A52A2A' : 'è¤',
- 'DAA520' : 'éé»',
- '006400' : '深绿',
- '40E0D0' : 'è绿',
- '0000CD' : 'ä¸è',
- '800080' : 'ç´«',
- '808080' : 'ç°',
- 'F00' : '红',
- 'FF8C00' : 'æ·±æ©',
- 'FFD700' : 'é',
- '008000' : '绿',
- '0FF' : 'é',
- '00F' : 'è',
- 'EE82EE' : 'ç´«ç½å
°',
- 'A9A9A9' : 'æ·±ç°',
- 'FFA07A' : '亮æ©',
- 'FFA500' : 'æ©',
- 'FFFF00' : 'é»',
- '00FF00' : '水绿',
- 'AFEEEE' : 'ç²è',
- 'ADD8E6' : '亮è',
- 'DDA0DD' : 'æ¢
红',
- 'D3D3D3' : 'æ·¡ç°',
- 'FFF0F5' : '淡紫红',
- 'FAEBD7' : 'å¤è£ç½',
- 'FFFFE0' : 'æ·¡é»',
- 'F0FFF0' : 'èç½',
- 'F0FFFF' : '天è',
- 'F0F8FF' : 'æ·¡è',
- 'E6E6FA' : 'æ·¡ç´«',
- 'FFF' : 'ç½'
- },
-
- scayt :
- {
- title : '峿¶æ¼åæ£æ¥',
- opera_title : '䏿¯æ Opera æµè§å¨',
- enable : 'å¯ç¨å³æ¶æ¼åæ£æ¥',
- disable : 'ç¦ç¨å³æ¶æ¼åæ£æ¥',
- about : 'å
³äºå³æ¶æ¼åæ£æ¥',
- toggle : 'æå/å¯ç¨å³æ¶æ¼åæ£æ¥',
- options : 'é项',
- langs : 'è¯è¨',
- moreSuggestions : 'æ´å¤æ¼å建议',
- ignore : '忽ç¥',
- ignoreAll : 'å
¨é¨å¿½ç¥',
- addWord : 'æ·»å åè¯',
- emptyDic : 'åå
¸åä¸åºä¸ºç©º.',
-
- optionsTab : 'é项',
- allCaps : 'å¿½ç¥ææå¤§ååè¯',
- ignoreDomainNames : '忽ç¥åå',
- mixedCase : '忽ç¥å¤§å°åæ··åçåè¯',
- mixedWithDigits : '忽ç¥å¸¦æ°åçåè¯',
-
- languagesTab : 'è¯è¨',
-
- dictionariesTab : 'åå
¸',
- dic_field_name : 'åå
¸åç§°',
- dic_create : 'å建',
- dic_restore : 'è¿å',
- dic_delete : 'å é¤',
- dic_rename : 'éå½å',
- dic_info : 'ä¸å¼å§ç¨æ·è¯å
¸å¨åå¨ Cookie ä¸, 使¯ Cookies ç容鿝æéç, å½ç¨æ·è¯å
¸å¢é¿å°è¶
åº Cookie éå¶æ¶å°±æ æ³åå¨åäº, è¿æ¶æ¨å¯ä»¥å°è¯å
¸å¨å尿们çæå¡å¨ä¸. è¦ææ¨ç个人è¯å
¸å°å¨å尿们çæå¡å¨ä¸çè¯, éè¦ä¸ºæ¨çè¯å
¸æå®ä¸ä¸ªåç§°, 妿æ¨å¨æä»¬çæå¡å¨ä¸å·²ç»æå¨åæä¸ä¸ªè¯å
¸, 请è¾å
¥è¯å
¸åç§°å¹¶æè¿åæé®.',
-
- aboutTab : 'å
³äº'
- },
-
- about :
- {
- title : 'å
³äºCKEditor',
- dlgTitle : 'å
³äºCKEditor',
- moreInfo : 'è®¿é®æä»¬çç½ç«ä»¥è·åæ´å¤å
³äºåè®®çä¿¡æ¯',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'å
¨å±',
- minimize : 'æå°å',
-
- fakeobjects :
- {
- anchor : 'éç¹',
- flash : 'Flash å¨ç»',
- div : 'å页',
- unknown : 'æªç¥å¯¹è±¡'
- },
-
- resize : 'ææ½ä»¥æ¹å尺寸',
-
- colordialog :
- {
- title : 'éæ©é¢è²',
- options : 'é¢è²é项',
- highlight : 'é«äº®',
- selected : 'éæ©é¢è²',
- clear : 'æ¸
é¤'
- },
-
- toolbarCollapse : 'æå å·¥å
·æ ',
- toolbarExpand : 'å±å¼å·¥å
·æ ',
-
- bidi :
- {
- ltr : 'æåæ¹å为ä»å·¦è³å³',
- rtl : 'æåæ¹å为ä»å³è³å·¦'
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Chinese Simplified language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'zh-cn' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: 'æè§å³æå¾ç¼è¾å¨',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'æ ALT+0 è·å¾å¸®å©',
+
+ browseServer: 'æµè§æå¡å¨',
+ url: 'æºæä»¶',
+ protocol: 'åè®®',
+ upload: 'ä¸ä¼ ',
+ uploadSubmit: 'ä¸ä¼ å°æå¡å¨ä¸',
+ image: 'å¾è±¡',
+ flash: 'Flash',
+ form: '表å',
+ checkbox: 'å¤éæ¡',
+ radio: 'åéæé®',
+ textField: 'åè¡ææ¬',
+ textarea: 'å¤è¡ææ¬',
+ hiddenField: 'éèå',
+ button: 'æé®',
+ select: 'å表/èå',
+ imageButton: 'å¾åå',
+ notSet: '<没æè®¾ç½®>',
+ id: 'ID',
+ name: 'åç§°',
+ langDir: 'è¯è¨æ¹å',
+ langDirLtr: 'ä»å·¦å°å³ (LTR)',
+ langDirRtl: 'ä»å³å°å·¦ (RTL)',
+ langCode: 'è¯è¨ä»£ç ',
+ longDescr: '详ç»è¯´æå°å',
+ cssClass: 'æ ·å¼ç±»åç§°',
+ advisoryTitle: 'æ é¢',
+ cssStyle: 'è¡å
æ ·å¼',
+ ok: 'ç¡®å®',
+ cancel: 'åæ¶',
+ close: 'å
³é',
+ preview: 'é¢è§',
+ resize: 'ææ½ä»¥æ¹å尺寸',
+ generalTab: '常è§',
+ advancedTab: 'é«çº§',
+ validateNumberFailed: 'éè¦è¾å
¥æ°åæ ¼å¼',
+ confirmNewPage: 'å½åææ¡£å
容æªä¿å,æ¯å¦ç¡®è®¤æ°å»ºææ¡£ï¼',
+ confirmCancel: 'é¨åä¿®æ¹å°æªä¿åï¼æ¯å¦ç¡®è®¤å
³éå¯¹è¯æ¡ï¼',
+ options: 'é项',
+ target: 'ç®æ çªå£',
+ targetNew: 'æ°çªå£ (_blank)',
+ targetTop: 'æ´é¡µ (_top)',
+ targetSelf: 'æ¬çªå£ (_self)',
+ targetParent: 'ç¶çªå£ (_parent)',
+ langDirLTR: 'ä»å·¦å°å³ (LTR)',
+ langDirRTL: 'ä»å³å°å·¦ (RTL)',
+ styles: 'æ ·å¼',
+ cssClasses: 'æ ·å¼ç±»',
+ width: '宽度',
+ height: 'é«åº¦',
+ align: '坹齿¹å¼',
+ alignLeft: '左对é½',
+ alignRight: 'å³å¯¹é½',
+ alignCenter: 'å±
ä¸',
+ alignTop: '顶端',
+ alignMiddle: 'å±
ä¸',
+ alignBottom: 'åºé¨',
+ invalidValue : 'æ æçå¼ã',
+ invalidHeight: 'é«åº¦å¿
须为æ°åæ ¼å¼',
+ invalidWidth: '宽度å¿
须为æ°åæ ¼å¼',
+ invalidCssLength: 'è¯¥åæ®µå¿
须为åå¼çCSSé¿åº¦å¼ï¼å
æ¬åä½(px, %, in, cm, mm, em, ex, pt æ pc)',
+ invalidHtmlLength: 'è¯¥åæ®µå¿
须为åå¼çHTMLé¿åº¦å¼ï¼å
æ¬åä½(px æ %)',
+ invalidInlineStyle: 'å
èæ ·å¼å¿
é¡»ä¸ºæ ¼å¼æ¯ä»¥åå·åéçä¸ä¸ªæå¤ä¸ªâ屿§å : 屿§å¼â',
+ cssLengthTooltip: 'è¯¥åæ®µå¿
须为åå¼çCSSé¿åº¦å¼ï¼å
æ¬åä½(px, %, in, cm, mm, em, ex, pt æ pc)',
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, ä¸å¯ç¨</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/lang/zh.js b/devel/third-party/ckeditor/lang/zh.js
index 809f612..69ef9d6 100644
--- a/devel/third-party/ckeditor/lang/zh.js
+++ b/devel/third-party/ckeditor/lang/zh.js
@@ -1,758 +1,105 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
- * Chinese Traditional language.
- */
-
-/**#@+
- @type String
- @example
-*/
-
-/**
- * Constains the dictionary of language entries.
- * @namespace
- */
-CKEDITOR.lang['zh'] =
-{
- /**
- * The language reading direction. Possible values are "rtl" for
- * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
- * languages (like English).
- * @default 'ltr'
- */
- dir : 'ltr',
-
- /*
- * Screenreader titles. Please note that screenreaders are not always capable
- * of reading non-English words. So be careful while translating it.
- */
- editorTitle : 'Rich text editor, %1, press ALT 0 for help.', // MISSING
-
- // ARIA descriptions.
- toolbar : 'Toolbar', // MISSING
- editor : 'Rich Text Editor', // MISSING
-
- // Toolbar buttons without dialogs.
- source : 'åå§ç¢¼',
- newPage : 'éæ°æªæ¡',
- save : 'å²å',
- preview : 'é 覽',
- cut : 'åªä¸',
- copy : 'è¤è£½',
- paste : 'è²¼ä¸',
- print : 'åå°',
- underline : 'åºç·',
- bold : 'ç²é«',
- italic : 'æé«',
- selectAll : 'å
¨é¸',
- removeFormat : 'æ¸
餿 ¼å¼',
- strike : 'åªé¤ç·',
- subscript : '䏿¨',
- superscript : '䏿¨',
- horizontalrule : 'æå
¥æ°´å¹³ç·',
- pagebreak : 'æå
¥åé 符è',
- unlink : 'ç§»é¤è¶
é£çµ',
- undo : '復å',
- redo : 'éè¤',
-
- // Common messages and labels.
- common :
- {
- browseServer : 'ç覽伺æå¨ç«¯',
- url : 'URL',
- protocol : 'éè¨åå®',
- upload : 'ä¸å³',
- uploadSubmit : 'ä¸å³è³ä¼ºæå¨',
- image : 'å½±å',
- flash : 'Flash',
- form : '表å®',
- checkbox : 'æ ¸åæ¹å¡',
- radio : 'é¸é
æé',
- textField : 'æåæ¹å¡',
- textarea : 'æååå',
- hiddenField : 'é±èæ¬ä½',
- button : 'æé',
- select : 'æ¸
å®/é¸å®',
- imageButton : 'å½±åæé',
- notSet : '<å°æªè¨å®>',
- id : 'ID',
- name : 'å稱',
- langDir : 'èªè¨æ¹å',
- langDirLtr : 'ç±å·¦èå³ (LTR)',
- langDirRtl : 'ç±å³èå·¦ (RTL)',
- langCode : 'èªè¨ä»£ç¢¼',
- longDescr : '詳細 URL',
- cssClass : '樣å¼è¡¨é¡å¥',
- advisoryTitle : 'æ¨é¡',
- cssStyle : '樣å¼',
- ok : '確å®',
- cancel : 'åæ¶',
- close : 'Close', // MISSING
- preview : 'Preview', // MISSING
- generalTab : 'ä¸è¬',
- advancedTab : 'é²é',
- validateNumberFailed : 'éè¦è¼¸å
¥æ¸åæ ¼å¼',
- confirmNewPage : 'ç¾åçä¿®æ¹å°æªå²åï¼è¦éæ°æªæ¡ï¼',
- confirmCancel : 'é¨ä»½é¸é
å°æªå²åï¼è¦ééå°è©±çï¼',
- options : 'Options', // MISSING
- target : 'Target', // MISSING
- targetNew : 'New Window (_blank)', // MISSING
- targetTop : 'Topmost Window (_top)', // MISSING
- targetSelf : 'Same Window (_self)', // MISSING
- targetParent : 'Parent Window (_parent)', // MISSING
- langDirLTR : 'Left to Right (LTR)', // MISSING
- langDirRTL : 'Right to Left (RTL)', // MISSING
- styles : 'Style', // MISSING
- cssClasses : 'Stylesheet Classes', // MISSING
-
- // Put the voice-only part of the label in the span.
- unavailable : '%1<span class="cke_accessibility">, å·²éé</span>'
- },
-
- contextmenu :
- {
- options : 'Context Menu Options' // MISSING
- },
-
- // Special char dialog.
- specialChar :
- {
- toolbar : 'æå
¥ç¹æ®ç¬¦è',
- title : 'è«é¸æç¹æ®ç¬¦è',
- options : 'Special Character Options' // MISSING
- },
-
- // Link dialog.
- link :
- {
- toolbar : 'æå
¥/編輯è¶
é£çµ',
- other : '<å
¶ä»>',
- menu : '編輯è¶
é£çµ',
- title : 'è¶
é£çµ',
- info : 'è¶
é£çµè³è¨',
- target : 'ç®æ¨',
- upload : 'ä¸å³',
- advanced : 'é²é',
- type : 'è¶
飿¥é¡å',
- toUrl : 'URL', // MISSING
- toAnchor : 'æ¬é é¨é»',
- toEmail : 'é»åéµä»¶',
- targetFrame : '<æ¡æ¶>',
- targetPopup : '<快顯è¦çª>',
- targetFrameName : 'ç®æ¨æ¡æ¶å稱',
- targetPopupName : '快顯è¦çªå稱',
- popupFeatures : '快顯è¦çªå±¬æ§',
- popupResizable : 'å¯ç¸®æ¾',
- popupStatusBar : 'çæ
å',
- popupLocationBar: 'ç¶²åå',
- popupToolbar : 'å·¥å
·å',
- popupMenuBar : 'é¸å®å',
- popupFullScreen : 'å
¨è¢å¹ (IE)',
- popupScrollBars : 'æ²è»¸',
- popupDependent : 'å¾å±¬ (NS)',
- popupWidth : '寬',
- popupLeft : 'å·¦',
- popupHeight : 'é«',
- popupTop : 'å³',
- id : 'ID',
- langDir : 'èªè¨æ¹å',
- langDirLTR : 'ç±å·¦èå³ (LTR)',
- langDirRTL : 'ç±å³èå·¦ (RTL)',
- acccessKey : 'ååéµ',
- name : 'å稱',
- langCode : 'èªè¨æ¹å',
- tabIndex : 'å®ä½é åº',
- advisoryTitle : 'æ¨é¡',
- advisoryContentType : 'å
§å®¹é¡å',
- cssClasses : '樣å¼è¡¨é¡å¥',
- charset : 'é£çµè³æºä¹ç·¨ç¢¼',
- styles : '樣å¼',
- selectAnchor : 'è«é¸æé¨é»',
- anchorName : 'ä¾é¨é»å稱',
- anchorId : 'ä¾å
ä»¶ ID',
- emailAddress : 'é»åéµä»¶',
- emailSubject : 'éµä»¶ä¸»æ¨',
- emailBody : 'éµä»¶å
§å®¹',
- noAnchors : '(æ¬æä»¶å°ç¡å¯ç¨ä¹é¨é»)',
- noUrl : 'è«è¼¸å
¥æ¬²é£çµç URL',
- noEmail : 'è«è¼¸å
¥é»åéµä»¶ä½å'
- },
-
- // Anchor dialog
- anchor :
- {
- toolbar : 'æå
¥/編輯é¨é»',
- menu : 'é¨é»å±¬æ§',
- title : 'é¨é»å±¬æ§',
- name : 'é¨é»å稱',
- errorName : 'è«è¼¸å
¥é¨é»å稱'
- },
-
- // List style dialog
- list:
- {
- numberedTitle : 'Numbered List Properties', // MISSING
- bulletedTitle : 'Bulleted List Properties', // MISSING
- type : 'Type', // MISSING
- start : 'Start', // MISSING
- validateStartNumber :'List start number must be a whole number.', // MISSING
- circle : 'Circle', // MISSING
- disc : 'Disc', // MISSING
- square : 'Square', // MISSING
- none : 'None', // MISSING
- notset : '<not set>', // MISSING
- armenian : 'Armenian numbering', // MISSING
- georgian : 'Georgian numbering (an, ban, gan, etc.)', // MISSING
- lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)', // MISSING
- upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)', // MISSING
- lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)', // MISSING
- upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)', // MISSING
- lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)', // MISSING
- decimal : 'Decimal (1, 2, 3, etc.)', // MISSING
- decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)' // MISSING
- },
-
- // Find And Replace Dialog
- findAndReplace :
- {
- title : 'å°æ¾èå代',
- find : 'å°æ¾',
- replace : 'å代',
- findWhat : 'å°æ¾:',
- replaceWith : 'å代:',
- notFoundMsg : 'æªæ¾å°æå®çæåã',
- matchCase : '大å°å¯«é ç¸ç¬¦',
- matchWord : 'å
¨åç¸ç¬¦',
- matchCyclic : 'å¾ªç°æç´¢',
- replaceAll : 'å
¨é¨å代',
- replaceSuccessMsg : 'å
±å®æ %1 次å代'
- },
-
- // Table Dialog
- table :
- {
- toolbar : 'è¡¨æ ¼',
- title : 'è¡¨æ ¼å±¬æ§',
- menu : 'è¡¨æ ¼å±¬æ§',
- deleteTable : 'åªé¤è¡¨æ ¼',
- rows : '忏',
- columns : 'æ¬æ¸',
- border : 'éæ¡',
- align : 'å°é½',
- alignLeft : 'é å·¦å°é½',
- alignCenter : 'ç½®ä¸',
- alignRight : 'é å³å°é½',
- width : '寬度',
- widthPx : 'åç´ ',
- widthPc : 'ç¾åæ¯',
- widthUnit : 'width unit', // MISSING
- height : 'é«åº¦',
- cellSpace : 'éè·',
- cellPad : 'å
§è·',
- caption : 'æ¨é¡',
- summary : 'æè¦',
- headers : 'æ¨é¡',
- headersNone : 'ç¡æ¨é¡',
- headersColumn : 'ç¬¬ä¸æ¬',
- headersRow : '第ä¸å',
- headersBoth : 'ç¬¬ä¸æ¬å第ä¸å',
- invalidRows : 'å¿
é æä¸ææ´å¤çå',
- invalidCols : 'å¿
é æä¸ææ´å¤çæ¬',
- invalidBorder : '鿡大å°å¿
é çºæ¸åæ ¼å¼',
- invalidWidth : 'è¡¨æ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼',
- invalidHeight : 'è¡¨æ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼',
- invalidCellSpacing : 'å²åæ ¼éè·å¿
é çºæ¸åæ ¼å¼',
- invalidCellPadding : 'å²åæ ¼å
§è·å¿
é çºæ¸åæ ¼å¼',
-
- cell :
- {
- menu : 'å²åæ ¼',
- insertBefore : 'åå·¦æå
¥å²åæ ¼',
- insertAfter : 'å峿å
¥å²åæ ¼',
- deleteCell : 'åªé¤å²åæ ¼',
- merge : 'åä½µå²åæ ¼',
- mergeRight : 'åå³åä½µå²åæ ¼',
- mergeDown : 'åä¸åä½µå²åæ ¼',
- splitHorizontal : 'æ©«ååå²å²åæ ¼',
- splitVertical : '縱ååå²å²åæ ¼',
- title : 'å²åæ ¼å±¬æ§',
- cellType : 'å²åæ ¼é¡å¥',
- rowSpan : 'å²åæ ¼åæ¸',
- colSpan : 'å²åæ ¼æ¬æ¸',
- wordWrap : 'èªåæè¡',
- hAlign : 'æ°´å¹³å°é½',
- vAlign : 'åç´å°é½',
- alignTop : 'åä¸å°é½',
- alignMiddle : 'ç½®ä¸å°é½',
- alignBottom : 'åä¸å°é½',
- alignBaseline : 'åºç·å°é½',
- bgColor : 'èæ¯é¡è²',
- borderColor : 'éæ¡é¡è²',
- data : 'æ¸æ',
- header : 'æ¨é¡',
- yes : 'æ¯',
- no : 'å¦',
- invalidWidth : 'å²åæ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼',
- invalidHeight : 'å²åæ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼',
- invalidRowSpan : 'å²åæ ¼åæ¸å¿
é çºæ´æ¸æ ¼å¼',
- invalidColSpan : 'å²åæ ¼æ¬æ¸åº¦å¿
é çºæ´æ¸æ ¼å¼',
- chooseColor : 'Choose' // MISSING
- },
-
- row :
- {
- menu : 'å',
- insertBefore : 'å䏿å
¥å',
- insertAfter : 'å䏿å
¥å',
- deleteRow : 'åªé¤å'
- },
-
- column :
- {
- menu : 'æ¬',
- insertBefore : 'åå·¦æå
¥æ¬',
- insertAfter : 'å峿å
¥æ¬',
- deleteColumn : 'åªé¤æ¬'
- }
- },
-
- // Button Dialog.
- button :
- {
- title : 'æé屬æ§',
- text : '顯示æå (å¼)',
- type : 'é¡å',
- typeBtn : 'æé (Button)',
- typeSbm : 'éåº (Submit)',
- typeRst : 'éè¨ (Reset)'
- },
-
- // Checkbox and Radio Button Dialogs.
- checkboxAndRadio :
- {
- checkboxTitle : 'æ ¸åæ¹å¡å±¬æ§',
- radioTitle : 'é¸é
æé屬æ§',
- value : 'é¸åå¼',
- selected : 'å·²é¸å'
- },
-
- // Form Dialog.
- form :
- {
- title : '表å®å±¬æ§',
- menu : '表å®å±¬æ§',
- action : 'åä½',
- method : 'æ¹æ³',
- encoding : '表å®ç·¨ç¢¼'
- },
-
- // Select Field Dialog.
- select :
- {
- title : 'æ¸
å®/é¸å®å±¬æ§',
- selectInfo : 'è³è¨',
- opAvail : 'å¯ç¨é¸é
',
- value : 'å¼',
- size : '大å°',
- lines : 'è¡',
- chkMulti : 'å¯å¤é¸',
- opText : '顯示æå',
- opValue : 'é¸åå¼',
- btnAdd : 'æ°å¢',
- btnModify : 'ä¿®æ¹',
- btnUp : 'ä¸ç§»',
- btnDown : 'ä¸ç§»',
- btnSetValue : 'è¨çºé è¨å¼',
- btnDelete : 'åªé¤'
- },
-
- // Textarea Dialog.
- textarea :
- {
- title : 'æååå屬æ§',
- cols : 'åå
寬度',
- rows : '忏'
- },
-
- // Text Field Dialog.
- textfield :
- {
- title : 'æåæ¹å¡å±¬æ§',
- name : 'å稱',
- value : 'å¼',
- charWidth : 'åå
寬度',
- maxChars : 'æå¤åå
æ¸',
- type : 'é¡å',
- typeText : 'æå',
- typePass : 'å¯ç¢¼'
- },
-
- // Hidden Field Dialog.
- hidden :
- {
- title : 'é±èæ¬ä½å±¬æ§',
- name : 'å稱',
- value : 'å¼'
- },
-
- // Image Dialog.
- image :
- {
- title : 'å½±å屬æ§',
- titleButton : 'å½±åæé屬æ§',
- menu : 'å½±å屬æ§',
- infoTab : 'å½±åè³è¨',
- btnUpload : 'ä¸å³è³ä¼ºæå¨',
- upload : 'ä¸å³',
- alt : 'æ¿ä»£æå',
- width : '寬度',
- height : 'é«åº¦',
- lockRatio : 'çæ¯ä¾',
- unlockRatio : 'Unlock Ratio', // MISSING
- resetSize : 'éè¨çºå大å°',
- border : 'éæ¡',
- hSpace : 'æ°´å¹³è·é¢',
- vSpace : 'åç´è·é¢',
- align : 'å°é½',
- alignLeft : 'é å·¦å°é½',
- alignRight : 'é å³å°é½',
- alertUrl : 'è«è¼¸å
¥å½±å URL',
- linkTab : 'è¶
é£çµ',
- button2Img : 'è¦æå½±åæéæ¹æå½±ååï¼',
- img2Button : 'è¦æå½±åæ¹æå½±åæéåï¼',
- urlMissing : 'Image source URL is missing.', // MISSING
- validateWidth : 'Width must be a whole number.', // MISSING
- validateHeight : 'Height must be a whole number.', // MISSING
- validateBorder : 'Border must be a whole number.', // MISSING
- validateHSpace : 'HSpace must be a whole number.', // MISSING
- validateVSpace : 'VSpace must be a whole number.' // MISSING
- },
-
- // Flash Dialog
- flash :
- {
- properties : 'Flash 屬æ§',
- propertiesTab : '屬æ§',
- title : 'Flash 屬æ§',
- chkPlay : 'èªåææ¾',
- chkLoop : 'éè¤',
- chkMenu : 'éåé¸å®',
- chkFull : 'ååå
¨è¢å¹é¡¯ç¤º',
- scale : '縮æ¾',
- scaleAll : 'å
¨é¨é¡¯ç¤º',
- scaleNoBorder : 'ç¡éæ¡',
- scaleFit : '精確符å',
- access : 'å
許è
³æ¬è¨ªå',
- accessAlways : 'æ°¸é ',
- accessSameDomain: 'ç¸ååå',
- accessNever : 'æ°¸ä¸',
- align : 'å°é½',
- alignLeft : 'é å·¦å°é½',
- alignAbsBottom : 'çµå°ä¸æ¹',
- alignAbsMiddle : 'çµå°ä¸é',
- alignBaseline : 'åºæºç·',
- alignBottom : 'é ä¸å°é½',
- alignMiddle : 'ç½®ä¸å°é½',
- alignRight : 'é å³å°é½',
- alignTextTop : 'æå䏿¹',
- alignTop : 'é ä¸å°é½',
- quality : 'è³ªç´ ',
- qualityBest : 'æå¥½',
- qualityHigh : 'é«',
- qualityAutoHigh : 'é«ï¼èªåï¼',
- qualityMedium : 'ä¸ï¼èªåï¼',
- qualityAutoLow : 'ä½ï¼èªåï¼',
- qualityLow : 'ä½',
- windowModeWindow: 'è¦çª',
- windowModeOpaque: 'ä¸éæ',
- windowModeTransparent : 'éæ',
- windowMode : 'è¦çªæ¨¡å¼',
- flashvars : 'Flash è®æ¸',
- bgcolor : 'èæ¯é¡è²',
- width : '寬度',
- height : 'é«åº¦',
- hSpace : 'æ°´å¹³è·é¢',
- vSpace : 'åç´è·é¢',
- validateSrc : 'è«è¼¸å
¥æ¬²é£çµç URL',
- validateWidth : '寬度å¿
é çºæ¸åæ ¼å¼',
- validateHeight : 'é«åº¦å¿
é çºæ¸åæ ¼å¼',
- validateHSpace : 'æ°´å¹³éè·å¿
é çºæ¸åæ ¼å¼',
- validateVSpace : 'åç´éè·å¿
é çºæ¸åæ ¼å¼'
- },
-
- // Speller Pages Dialog
- spellCheck :
- {
- toolbar : 'æ¼å檢æ¥',
- title : 'æ¼å檢æ¥',
- notAvailable : 'æ±æï¼æåç®åæ«ä¸å¯ç¨',
- errorLoading : 'ç¡æ³è¯ç³»ä¾æå¨: %s.',
- notInDic : 'ä¸å¨åå
¸ä¸',
- changeTo : 'æ´æ¹çº',
- btnIgnore : '忽ç¥',
- btnIgnoreAll : 'å
¨é¨å¿½ç¥',
- btnReplace : 'å代',
- btnReplaceAll : 'å
¨é¨å代',
- btnUndo : '復å',
- noSuggestions : '- ç¡å»ºè°å¼ -',
- progress : 'é²è¡æ¼å檢æ¥ä¸â¦',
- noMispell : 'æ¼å檢æ¥å®æï¼æªç¼ç¾æ¼åé¯èª¤',
- noChanges : 'æ¼å檢æ¥å®æï¼æªæ´æ¹ä»»ä½å®å',
- oneChange : 'æ¼å檢æ¥å®æï¼æ´æ¹äº 1 åå®å',
- manyChanges : 'æ¼å檢æ¥å®æï¼æ´æ¹äº %1 åå®å',
- ieSpellDownload : 'å°æªå®è£æ¼å檢æ¥å
ä»¶ãæ¨æ¯å¦æ³è¦ç¾å¨ä¸è¼ï¼'
- },
-
- smiley :
- {
- toolbar : '表æ
符è',
- title : 'æå
¥è¡¨æ
符è',
- options : 'Smiley Options' // MISSING
- },
-
- elementsPath :
- {
- eleLabel : 'Elements path', // MISSING
- eleTitle : '%1 å
ç´ '
- },
-
- numberedlist : 'ç·¨èæ¸
å®',
- bulletedlist : 'é
ç®æ¸
å®',
- indent : 'å¢å 縮æ',
- outdent : 'æ¸å°ç¸®æ',
-
- justify :
- {
- left : 'é å·¦å°é½',
- center : 'ç½®ä¸',
- right : 'é å³å°é½',
- block : 'å·¦å³å°é½'
- },
-
- blockquote : 'å¼ç¨æå',
-
- clipboard :
- {
- title : 'è²¼ä¸',
- cutError : 'ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡åªä¸åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+X) åªä¸ã',
- copyError : 'ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡è¤è£½åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+C) è¤è£½ã',
- pasteMsg : 'è«ä½¿ç¨å¿«æ·éµ (<strong>Ctrl/Cmd+V</strong>) è²¼å°ä¸æ¹ååä¸ä¸¦æä¸ <strong>確å®</strong>',
- securityMsg : 'å çºç覽å¨çå®å
¨æ§è¨å®ï¼æ¬ç·¨è¼¯å¨ç¡æ³ç´æ¥å忍çåªè²¼ç°¿è³æï¼è«æ¨èªè¡å¨æ¬è¦çªé²è¡è²¼ä¸åä½ã',
- pasteArea : 'Paste Area' // MISSING
- },
-
- pastefromword :
- {
- confirmCleanup : 'æ¨æ³è²¼ä¸çæå似乿¯èª Word è¤è£½èä¾ï¼è«åæ¨æ¯å¦è¦å
æ¸
é¤ Word çæ ¼å¼å¾åè¡è²¼ä¸ï¼',
- toolbar : 'èª Word è²¼ä¸',
- title : 'èª Word è²¼ä¸',
- error : 'It was not possible to clean up the pasted data due to an internal error' // MISSING
- },
-
- pasteText :
- {
- button : 'è²¼çºç´æåæ ¼å¼',
- title : 'è²¼çºç´æåæ ¼å¼'
- },
-
- templates :
- {
- button : '樣ç',
- title : 'å
§å®¹æ¨£ç',
- options : 'Template Options', // MISSING
- insertOption : 'å代åæå
§å®¹',
- selectPromptMsg : 'è«é¸ææ¬²éåçæ¨£ç<br> (åæçå
§å®¹å°æè¢«æ¸
é¤):',
- emptyListMsg : '(ç¡æ¨£ç)'
- },
-
- showBlocks : '顯示åå¡',
-
- stylesCombo :
- {
- label : '樣å¼',
- panelTitle : 'Formatting Styles', // MISSING
- panelTitle1 : 'å¡ç´å
ç´ æ¨£å¼',
- panelTitle2 : 'å
§è¯å
ç´ æ¨£å¼',
- panelTitle3 : 'ç©ä»¶å
ç´ æ¨£å¼'
- },
-
- format :
- {
- label : 'æ ¼å¼',
- panelTitle : 'æ ¼å¼',
-
- tag_p : 'ä¸è¬',
- tag_pre : 'å·²æ ¼å¼å',
- tag_address : 'ä½å',
- tag_h1 : 'æ¨é¡ 1',
- tag_h2 : 'æ¨é¡ 2',
- tag_h3 : 'æ¨é¡ 3',
- tag_h4 : 'æ¨é¡ 4',
- tag_h5 : 'æ¨é¡ 5',
- tag_h6 : 'æ¨é¡ 6',
- tag_div : 'ä¸è¬ (DIV)'
- },
-
- div :
- {
- title : 'Create Div Container', // MISSING
- toolbar : 'Create Div Container', // MISSING
- cssClassInputLabel : 'Stylesheet Classes', // MISSING
- styleSelectLabel : 'Style', // MISSING
- IdInputLabel : 'Id', // MISSING
- languageCodeInputLabel : ' Language Code', // MISSING
- inlineStyleInputLabel : 'Inline Style', // MISSING
- advisoryTitleInputLabel : 'Advisory Title', // MISSING
- langDirLabel : 'Language Direction', // MISSING
- langDirLTRLabel : 'Left to Right (LTR)', // MISSING
- langDirRTLLabel : 'Right to Left (RTL)', // MISSING
- edit : 'Edit Div', // MISSING
- remove : 'Remove Div' // MISSING
- },
-
- font :
- {
- label : 'åé«',
- voiceLabel : 'åé«',
- panelTitle : 'åé«'
- },
-
- fontSize :
- {
- label : '大å°',
- voiceLabel : 'æå大å°',
- panelTitle : '大å°'
- },
-
- colorButton :
- {
- textColorTitle : 'æåé¡è²',
- bgColorTitle : 'èæ¯é¡è²',
- panelTitle : 'Colors', // MISSING
- auto : 'èªå',
- more : 'æ´å¤é¡è²â¦'
- },
-
- colors :
- {
- '000' : 'Black', // MISSING
- '800000' : 'Maroon', // MISSING
- '8B4513' : 'Saddle Brown', // MISSING
- '2F4F4F' : 'Dark Slate Gray', // MISSING
- '008080' : 'Teal', // MISSING
- '000080' : 'Navy', // MISSING
- '4B0082' : 'Indigo', // MISSING
- '696969' : 'Dark Gray', // MISSING
- 'B22222' : 'Fire Brick', // MISSING
- 'A52A2A' : 'Brown', // MISSING
- 'DAA520' : 'Golden Rod', // MISSING
- '006400' : 'Dark Green', // MISSING
- '40E0D0' : 'Turquoise', // MISSING
- '0000CD' : 'Medium Blue', // MISSING
- '800080' : 'Purple', // MISSING
- '808080' : 'Gray', // MISSING
- 'F00' : 'Red', // MISSING
- 'FF8C00' : 'Dark Orange', // MISSING
- 'FFD700' : 'Gold', // MISSING
- '008000' : 'Green', // MISSING
- '0FF' : 'Cyan', // MISSING
- '00F' : 'Blue', // MISSING
- 'EE82EE' : 'Violet', // MISSING
- 'A9A9A9' : 'Dim Gray', // MISSING
- 'FFA07A' : 'Light Salmon', // MISSING
- 'FFA500' : 'Orange', // MISSING
- 'FFFF00' : 'Yellow', // MISSING
- '00FF00' : 'Lime', // MISSING
- 'AFEEEE' : 'Pale Turquoise', // MISSING
- 'ADD8E6' : 'Light Blue', // MISSING
- 'DDA0DD' : 'Plum', // MISSING
- 'D3D3D3' : 'Light Grey', // MISSING
- 'FFF0F5' : 'Lavender Blush', // MISSING
- 'FAEBD7' : 'Antique White', // MISSING
- 'FFFFE0' : 'Light Yellow', // MISSING
- 'F0FFF0' : 'Honeydew', // MISSING
- 'F0FFFF' : 'Azure', // MISSING
- 'F0F8FF' : 'Alice Blue', // MISSING
- 'E6E6FA' : 'Lavender', // MISSING
- 'FFF' : 'White' // MISSING
- },
-
- scayt :
- {
- title : '峿æ¼å¯«æª¢æ¥',
- opera_title : 'Not supported by Opera', // MISSING
- enable : 'åç¨å³ææ¼å¯«æª¢æ¥',
- disable : 'éé峿æ¼å¯«æª¢æ¥',
- about : '鿼峿æ¼å¯«æª¢æ¥',
- toggle : 'åç¨ï¼éé峿æ¼å¯«æª¢æ¥',
- options : 'é¸é
',
- langs : 'èªè¨',
- moreSuggestions : 'æ´å¤æ¼å¯«å»ºè°',
- ignore : '忽ç¥',
- ignoreAll : 'å
¨é¨å¿½ç¥',
- addWord : 'æ·»å å®è©',
- emptyDic : 'åå
¸å䏿çºç©º.',
-
- optionsTab : 'é¸é
',
- allCaps : 'Ignore All-Caps Words', // MISSING
- ignoreDomainNames : 'Ignore Domain Names', // MISSING
- mixedCase : 'Ignore Words with Mixed Case', // MISSING
- mixedWithDigits : 'Ignore Words with Numbers', // MISSING
-
- languagesTab : 'èªè¨',
-
- dictionariesTab : 'åå
¸',
- dic_field_name : 'Dictionary name', // MISSING
- dic_create : 'Create', // MISSING
- dic_restore : 'Restore', // MISSING
- dic_delete : 'Delete', // MISSING
- dic_rename : 'Rename', // MISSING
- dic_info : 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
-
- aboutTab : 'éæ¼'
- },
-
- about :
- {
- title : 'éæ¼ CKEditor',
- dlgTitle : 'éæ¼ CKEditor',
- moreInfo : '訪åæåçç¶²ç«ä»¥ç²åæ´å¤éæ¼åè°çä¿¡æ¯',
- copy : 'Copyright © $1. All rights reserved.'
- },
-
- maximize : 'æå¤§å',
- minimize : 'Minimize', // MISSING
-
- fakeobjects :
- {
- anchor : 'é¨é»',
- flash : 'Flash åç«',
- div : 'åé ',
- unknown : '䏿ç©ä»¶'
- },
-
- resize : 'ææ½æ¹è®å¤§å°',
-
- colordialog :
- {
- title : 'Select color', // MISSING
- options : 'Color Options', // MISSING
- highlight : 'Highlight', // MISSING
- selected : 'Selected Color', // MISSING
- clear : 'Clear' // MISSING
- },
-
- toolbarCollapse : 'Collapse Toolbar', // MISSING
- toolbarExpand : 'Expand Toolbar', // MISSING
-
- bidi :
- {
- ltr : 'Text direction from left to right', // MISSING
- rtl : 'Text direction from right to left' // MISSING
- }
-};
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Defines the {@link CKEDITOR.lang} object, for the
+ * Chinese Traditional language.
+ */
+
+/**#@+
+ @type String
+ @example
+*/
+
+/**
+ * Contains the dictionary of language entries.
+ * @namespace
+ */
+CKEDITOR.lang[ 'zh' ] = {
+ /**
+ * The language reading direction. Possible values are "rtl" for
+ * Right-To-Left languages (like Arabic) and "ltr" for Left-To-Right
+ * languages (like English).
+ * @default 'ltr'
+ */
+ dir: 'ltr',
+
+ // ARIA description.
+ editor: '坿æ¬ç·¨è¼¯å¨',
+
+ // Common messages and labels.
+ common: {
+ // Screenreader titles. Please note that screenreaders are not always capable
+ // of reading non-English words. So be careful while translating it.
+ editorHelp: 'æ ALT+0 以ç²å¾å¹«å©',
+
+ browseServer: 'ç覽伺æå¨ç«¯',
+ url: 'URL',
+ protocol: 'éè¨åå®',
+ upload: 'ä¸å³',
+ uploadSubmit: 'ä¸å³è³ä¼ºæå¨',
+ image: 'å½±å',
+ flash: 'Flash',
+ form: '表å®',
+ checkbox: 'æ ¸åæ¹å¡',
+ radio: 'é¸é
æé',
+ textField: 'æåæ¹å¡',
+ textarea: 'æååå',
+ hiddenField: 'é±èæ¬ä½',
+ button: 'æé',
+ select: 'æ¸
å®/é¸å®',
+ imageButton: 'å½±åæé',
+ notSet: '<å°æªè¨å®>',
+ id: 'ID',
+ name: 'å稱',
+ langDir: 'èªè¨æ¹å',
+ langDirLtr: 'ç±å·¦èå³ (LTR)',
+ langDirRtl: 'ç±å³èå·¦ (RTL)',
+ langCode: 'èªè¨ä»£ç¢¼',
+ longDescr: '詳細 URL',
+ cssClass: '樣å¼è¡¨é¡å¥',
+ advisoryTitle: 'æ¨é¡',
+ cssStyle: '樣å¼',
+ ok: '確å®',
+ cancel: 'åæ¶',
+ close: 'å
³é',
+ preview: 'é¢è§',
+ resize: 'ææ½æ¹è®å¤§å°',
+ generalTab: 'ä¸è¬',
+ advancedTab: 'é²é',
+ validateNumberFailed: 'éè¦è¼¸å
¥æ¸åæ ¼å¼',
+ confirmNewPage: 'ç¾åçä¿®æ¹å°æªå²åï¼è¦éæ°æªæ¡ï¼',
+ confirmCancel: 'é¨ä»½é¸é
å°æªå²åï¼è¦ééå°è©±çï¼',
+ options: 'é项',
+ target: 'ç®æ ',
+ targetNew: 'æ°çªå£(_blank)',
+ targetTop: 'æ´é¡µ(_top)',
+ targetSelf: 'æ¬çªå£(_self)',
+ targetParent: 'ç¶çªå£(_parent)',
+ langDirLTR: 'ç±å·¦èå³ (LTR)',
+ langDirRTL: 'ç±å³èå·¦ (RTL)',
+ styles: '樣å¼',
+ cssClasses: '樣å¼è¡¨é¡å¥',
+ width: '寬度',
+ height: 'é«åº¦',
+ align: 'å°é½',
+ alignLeft: 'é å·¦å°é½',
+ alignRight: 'é å³å°é½',
+ alignCenter: 'ç½®ä¸',
+ alignTop: 'é ä¸å°é½',
+ alignMiddle: 'ç½®ä¸å°é½',
+ alignBottom: 'é ä¸å°é½',
+ invalidValue : 'Invalid value.', // MISSING
+ invalidHeight: 'é«åº¦å¿
é çºæ¸åæ ¼å¼',
+ invalidWidth: '寬度å¿
é çºæ¸åæ ¼å¼',
+ invalidCssLength: 'Value specified for the "%1" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+ invalidHtmlLength: 'Value specified for the "%1" field must be a positive number with or without a valid HTML measurement unit (px or %).', // MISSING
+ invalidInlineStyle: 'Value specified for the inline style must consist of one or more tuples with the format of "name : value", separated by semi-colons.', // MISSING
+ cssLengthTooltip: 'Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).', // MISSING
+
+ // Put the voice-only part of the label in the span.
+ unavailable: '%1<span class="cke_accessibility">, å·²éé</span>'
+ }
+};
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
index 3348f93..f8a6f81 100644
--- a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js
@@ -1,78 +1,76 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'a11yHelp', function( editor )
-{
- var lang = editor.lang.accessibilityHelp,
- id = CKEDITOR.tools.getNextNumber();
+CKEDITOR.dialog.add( 'a11yHelp', function( editor ) {
+ var lang = editor.lang.a11yhelp,
+ id = CKEDITOR.tools.getNextId();
// CharCode <-> KeyChar.
- var keyMap =
- {
- 8 : "BACKSPACE",
- 9 : "TAB" ,
- 13 : "ENTER" ,
- 16 : "SHIFT" ,
- 17 : "CTRL" ,
- 18 : "ALT" ,
- 19 : "PAUSE" ,
- 20 : "CAPSLOCK" ,
- 27 : "ESCAPE" ,
- 33 : "PAGE UP" ,
- 34 : "PAGE DOWN" ,
- 35 : "END" ,
- 36 : "HOME" ,
- 37 : "LEFT ARROW" ,
- 38 : "UP ARROW" ,
- 39 : "RIGHT ARROW" ,
- 40 : "DOWN ARROW" ,
- 45 : "INSERT" ,
- 46 : "DELETE" ,
- 91 : "LEFT WINDOW KEY" ,
- 92 : "RIGHT WINDOW KEY" ,
- 93 : "SELECT KEY" ,
- 96 : "NUMPAD 0" ,
- 97 : "NUMPAD 1" ,
- 98 : "NUMPAD 2" ,
- 99 : "NUMPAD 3" ,
- 100 : "NUMPAD 4" ,
- 101 : "NUMPAD 5" ,
- 102 : "NUMPAD 6" ,
- 103 : "NUMPAD 7" ,
- 104 : "NUMPAD 8" ,
- 105 : "NUMPAD 9" ,
- 106 : "MULTIPLY" ,
- 107 : "ADD" ,
- 109 : "SUBTRACT" ,
- 110 : "DECIMAL POINT" ,
- 111 : "DIVIDE" ,
- 112 : "F1" ,
- 113 : "F2" ,
- 114 : "F3" ,
- 115 : "F4" ,
- 116 : "F5" ,
- 117 : "F6" ,
- 118 : "F7" ,
- 119 : "F8" ,
- 120 : "F9" ,
- 121 : "F10" ,
- 122 : "F11" ,
- 123 : "F12" ,
- 144 : "NUM LOCK" ,
- 145 : "SCROLL LOCK" ,
- 186 : "SEMI-COLON" ,
- 187 : "EQUAL SIGN" ,
- 188 : "COMMA" ,
- 189 : "DASH" ,
- 190 : "PERIOD" ,
- 191 : "FORWARD SLASH" ,
- 192 : "GRAVE ACCENT" ,
- 219 : "OPEN BRACKET" ,
- 220 : "BACK SLASH" ,
- 221 : "CLOSE BRAKET" ,
- 222 : "SINGLE QUOTE"
+ var keyMap = {
+ 8: "BACKSPACE",
+ 9: "TAB",
+ 13: "ENTER",
+ 16: "SHIFT",
+ 17: "CTRL",
+ 18: "ALT",
+ 19: "PAUSE",
+ 20: "CAPSLOCK",
+ 27: "ESCAPE",
+ 33: "PAGE UP",
+ 34: "PAGE DOWN",
+ 35: "END",
+ 36: "HOME",
+ 37: "LEFT ARROW",
+ 38: "UP ARROW",
+ 39: "RIGHT ARROW",
+ 40: "DOWN ARROW",
+ 45: "INSERT",
+ 46: "DELETE",
+ 91: "LEFT WINDOW KEY",
+ 92: "RIGHT WINDOW KEY",
+ 93: "SELECT KEY",
+ 96: "NUMPAD 0",
+ 97: "NUMPAD 1",
+ 98: "NUMPAD 2",
+ 99: "NUMPAD 3",
+ 100: "NUMPAD 4",
+ 101: "NUMPAD 5",
+ 102: "NUMPAD 6",
+ 103: "NUMPAD 7",
+ 104: "NUMPAD 8",
+ 105: "NUMPAD 9",
+ 106: "MULTIPLY",
+ 107: "ADD",
+ 109: "SUBTRACT",
+ 110: "DECIMAL POINT",
+ 111: "DIVIDE",
+ 112: "F1",
+ 113: "F2",
+ 114: "F3",
+ 115: "F4",
+ 116: "F5",
+ 117: "F6",
+ 118: "F7",
+ 119: "F8",
+ 120: "F9",
+ 121: "F10",
+ 122: "F11",
+ 123: "F12",
+ 144: "NUM LOCK",
+ 145: "SCROLL LOCK",
+ 186: "SEMI-COLON",
+ 187: "EQUAL SIGN",
+ 188: "COMMA",
+ 189: "DASH",
+ 190: "PERIOD",
+ 191: "FORWARD SLASH",
+ 192: "GRAVE ACCENT",
+ 219: "OPEN BRACKET",
+ 220: "BACK SLASH",
+ 221: "CLOSE BRAKET",
+ 222: "SINGLE QUOTE"
};
// Modifier keys override.
@@ -83,50 +81,46 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor )
// Sort in desc.
var modifiers = [ CKEDITOR.ALT, CKEDITOR.SHIFT, CKEDITOR.CTRL ];
- function representKeyStroke( keystroke )
- {
- var quotient,
- modifier,
- presentation = [];
+ function representKeyStroke( keystroke ) {
+ var quotient, modifier,
+ presentation = [];
- for ( var i = 0; i < modifiers.length; i++ )
- {
+ for ( var i = 0; i < modifiers.length; i++ ) {
modifier = modifiers[ i ];
quotient = keystroke / modifiers[ i ];
- if ( quotient > 1 && quotient <= 2 )
- {
+ if ( quotient > 1 && quotient <= 2 ) {
keystroke -= modifier;
presentation.push( keyMap[ modifier ] );
}
}
- presentation.push( keyMap[ keystroke ]
- || String.fromCharCode( keystroke ) );
+ presentation.push( keyMap[ keystroke ] || String.fromCharCode( keystroke ) );
return presentation.join( '+' );
}
var variablesPattern = /\$\{(.*?)\}/g;
- function replaceVariables( match, name )
- {
- var keystrokes = editor.config.keystrokes,
- definition,
- length = keystrokes.length;
-
- for ( var i = 0; i < length; i++ )
- {
- definition = keystrokes[ i ];
- if ( definition[ 1 ] == name )
- break;
- }
- return representKeyStroke( definition[ 0 ] );
- }
+
+ var replaceVariables = (function() {
+ // Swaps keystrokes with their commands in object literal.
+ // This makes searching keystrokes by command much easier.
+ var keystrokesByCode = editor.keystrokeHandler.keystrokes,
+ keystrokesByName = {};
+
+ for ( var i in keystrokesByCode )
+ keystrokesByName[ keystrokesByCode[ i ] ] = i;
+
+ return function( match, name ) {
+ // Return the keystroke representation or leave match untouched
+ // if there's no keystroke for such command.
+ return keystrokesByName[ name ] ? representKeyStroke( keystrokesByName[ name ] ) : match;
+ };
+ })();
// Create the help list directly from lang file entries.
- function buildHelpContents()
- {
- var pageTpl = '<div class="cke_accessibility_legend" role="document" aria-labelledby="cke_' + id + '_arialbl" tabIndex="-1">%1</div>' +
- '<span id="cke_' + id + '_arialbl" class="cke_voice_label">' + lang.contents + ' </span>',
+ function buildHelpContents() {
+ var pageTpl = '<div class="cke_accessibility_legend" role="document" aria-labelledby="' + id + '_arialbl" tabIndex="-1">%1</div>' +
+ '<span id="' + id + '_arialbl" class="cke_voice_label">' + lang.contents + ' </span>',
sectionTpl = '<h1>%1</h1><dl>%2</dl>',
itemTpl = '<dt>%1</dt><dd>%2</dd>';
@@ -134,20 +128,23 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor )
sections = lang.legend,
sectionLength = sections.length;
- for ( var i = 0; i < sectionLength; i++ )
- {
+ for ( var i = 0; i < sectionLength; i++ ) {
var section = sections[ i ],
sectionHtml = [],
items = section.items,
itemsLength = items.length;
- for ( var j = 0; j < itemsLength; j++ )
- {
+ for ( var j = 0; j < itemsLength; j++ ) {
var item = items[ j ],
- itemHtml;
- itemHtml = itemTpl.replace( '%1', item.name ).
- replace( '%2', item.legend.replace( variablesPattern, replaceVariables ) );
- sectionHtml.push( itemHtml );
+ itemLegend = item.legend.replace( variablesPattern, replaceVariables );
+
+ // (#9765) If some commands haven't been replaced in the legend,
+ // most likely their keystrokes are unavailable and we shouldn't include
+ // them in our help list.
+ if ( itemLegend.match( variablesPattern ) )
+ continue;
+
+ sectionHtml.push( itemTpl.replace( '%1', item.name ).replace( '%2', itemLegend ) );
}
pageHtml.push( sectionTpl.replace( '%1', section.name ).replace( '%2', sectionHtml.join( '' ) ) );
@@ -157,55 +154,64 @@ CKEDITOR.dialog.add( 'a11yHelp', function( editor )
}
return {
- title : lang.title,
- minWidth : 600,
- minHeight : 400,
- contents : [
+ title: lang.title,
+ minWidth: 600,
+ minHeight: 400,
+ contents: [
{
- id : 'info',
- label : editor.lang.common.generalTab,
- expand : true,
- elements :
- [
- {
- type : 'html',
- id : 'legends',
- focus : function() {},
- html : buildHelpContents() +
- '<style type="text/css">' +
- '.cke_accessibility_legend' +
- '{' +
- 'width:600px;' +
- 'height:400px;' +
- 'padding-right:5px;' +
- 'overflow-y:auto;' +
- 'overflow-x:hidden;' +
- '}' +
- '.cke_accessibility_legend h1' +
- '{' +
- 'font-size: 20px;' +
- 'border-bottom: 1px solid #AAA;' +
- 'margin: 5px 0px 15px;' +
- '}' +
- '.cke_accessibility_legend dl' +
- '{' +
- 'margin-left: 5px;' +
- '}' +
- '.cke_accessibility_legend dt' +
- '{' +
- 'font-size: 13px;' +
- 'font-weight: bold;' +
- '}' +
- '.cke_accessibility_legend dd' +
- '{' +
- 'white-space:normal;' +
- 'margin:10px' +
- '}' +
- '</style>'
- }
- ]
+ id: 'info',
+ label: editor.lang.common.generalTab,
+ expand: true,
+ elements: [
+ {
+ type: 'html',
+ id: 'legends',
+ style: 'white-space:normal;',
+ focus: function() { this.getElement().focus(); },
+ html: buildHelpContents() + '<style type="text/css">' +
+ '.cke_accessibility_legend' +
+ '{' +
+ 'width:600px;' +
+ 'height:400px;' +
+ 'padding-right:5px;' +
+ 'overflow-y:auto;' +
+ 'overflow-x:hidden;' +
+ '}' +
+ // Some adjustments are to be done for IE6 and Quirks to work "properly" (#5757)
+ '.cke_browser_quirks .cke_accessibility_legend,' +
+ '.cke_browser_ie6 .cke_accessibility_legend' +
+ '{' +
+ 'height:390px' +
+ '}' +
+ // Override non-wrapping white-space rule in reset css.
+ '.cke_accessibility_legend *' +
+ '{' +
+ 'white-space:normal;' +
+ '}' +
+ '.cke_accessibility_legend h1' +
+ '{' +
+ 'font-size: 20px;' +
+ 'border-bottom: 1px solid #AAA;' +
+ 'margin: 5px 0px 15px;' +
+ '}' +
+ '.cke_accessibility_legend dl' +
+ '{' +
+ 'margin-left: 5px;' +
+ '}' +
+ '.cke_accessibility_legend dt' +
+ '{' +
+ 'font-size: 13px;' +
+ 'font-weight: bold;' +
+ '}' +
+ '.cke_accessibility_legend dd' +
+ '{' +
+ 'margin:10px' +
+ '}' +
+ '</style>'
}
+ ]
+ }
],
- buttons : [ CKEDITOR.dialog.cancelButton ]
+ buttons: [ CKEDITOR.dialog.cancelButton ]
};
});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
new file mode 100644
index 0000000..e7c92d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+
+cs.js Found: 30 Missing: 0
+cy.js Found: 30 Missing: 0
+da.js Found: 12 Missing: 18
+de.js Found: 30 Missing: 0
+el.js Found: 25 Missing: 5
+eo.js Found: 30 Missing: 0
+fa.js Found: 30 Missing: 0
+fi.js Found: 30 Missing: 0
+fr.js Found: 30 Missing: 0
+gu.js Found: 12 Missing: 18
+he.js Found: 30 Missing: 0
+it.js Found: 30 Missing: 0
+mk.js Found: 5 Missing: 25
+nb.js Found: 30 Missing: 0
+nl.js Found: 30 Missing: 0
+no.js Found: 30 Missing: 0
+pt-br.js Found: 30 Missing: 0
+ro.js Found: 6 Missing: 24
+tr.js Found: 30 Missing: 0
+ug.js Found: 27 Missing: 3
+vi.js Found: 6 Missing: 24
+zh-cn.js Found: 30 Missing: 0
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
new file mode 100644
index 0000000..2c79ff5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ar', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'عاÙ
',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
new file mode 100644
index 0000000..e514905
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'bg', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'ÐбÑо',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
new file mode 100644
index 0000000..704d8b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ca', {
+ title: 'Instruccions d\'Accessibilitat',
+ contents: 'Continguts de l\'Ajuda. Per tancar aquest quadre de dià leg premi ESC.',
+ legend: [
+ {
+ name: 'General',
+ items: [
+ {
+ name: 'Editor de barra d\'eines',
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor de quadre de dià leg',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor de menú contextual',
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor de caixa de llista',
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor de barra de ruta de l\'element',
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Ordres',
+ items: [
+ {
+ name: 'Desfer ordre',
+ legend: 'Premi ${undo}'
+ },
+ {
+ name: 'Refer ordre',
+ legend: 'Premi ${redo}'
+ },
+ {
+ name: 'Ordre negreta',
+ legend: 'Prem ${bold}'
+ },
+ {
+ name: 'Ordre cursiva',
+ legend: 'Prem ${italic}'
+ },
+ {
+ name: 'Ordre subratllat',
+ legend: 'Prem ${underline}'
+ },
+ {
+ name: 'Ordre enllaç',
+ legend: 'Prem ${link}'
+ },
+ {
+ name: 'Ordre amagar barra d\'eines',
+ legend: 'Prem ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Ajuda d\'accessibilitat',
+ legend: 'Prem ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
new file mode 100644
index 0000000..ff851ed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'cs', {
+ title: 'Instrukce pro pÅÃstupnost',
+ contents: 'Obsah nápovÄdy. Pro uzavÅenà tohoto dialogu stisknÄte klávesu ESC.',
+ legend: [
+ {
+ name: 'Obecné',
+ items: [
+ {
+ name: 'Panel nástrojů editoru',
+ legend: 'StisknÄte${toolbarFocus} k procházenà panelu nástrojů. PÅejdÄte na dalšà a pÅedchozà skupiny pomocà TAB a SHIFT-TAB. PÅechod na dalšà a pÅedchozà tlaÄÃtko panelu nástrojů je pomocà ŠIPKA VPRAVO nebo Å IPKA VLEVO. StisknutÃm mezernÃku nebo klávesy ENTER tlaÄÃtko aktivujete.'
+ },
+
+ {
+ name: 'Dialogové okno editoru',
+ legend: 'UvnitÅ dialogového okna stisknÄte TAB pro pÅesunutà na dalšà pole, stisknÄte SHIFT + TAB pro pÅesun na pÅedchozà pole, stisknÄte ENTER pro odeslánà dialogu, stisknÄte ESC pro jeho zruÅ¡enÃ. Pro dialogová okna, která majà mnoho karet stisknÄte ALT + F10 pr oprocházenà seznamu karet. Pak se pÅesuÅte na dalšà kartu pomocà TAB nebo Å IPKA VPRAVO. Pro pÅesun na pÅedchozà stisknÄte SHIFT + TAB nebo Å IPKA VLEVO. StisknÄte MEZERNÃK nebo ENTER pro vybránà stránky karet.'
+ },
+
+ {
+ name: 'Kontextové menu editoru',
+ legend: 'StisknÄte ${contextMenu} nebo klávesu APPLICATION k otevÅenà kontextového menu. Pak se pÅesuÅte na dalšà možnost menu pomocà TAB nebo Å IPKY DOLÅ®. PÅesuÅte se na pÅedchozà možnost pomocà SHIFT+TAB nebo Å IPKY NAHORU. StisknÄte MEZERNÃK nebo ENTER pro zvolenà možnosti menu. Podmenu souÄasné možnosti otevÅete pomocà MEZERNÃKU nebo ENTER Äi Å IPKY DOLEVA. Kontextové menu uzavÅete stiskem ESC.'
+ },
+
+ {
+ name: 'RámeÄek seznamu editoru',
+ legend: 'UvnitÅ rámeÄku seznamu se pÅesunete na dalšà položku menu pomocà TAB nebo Å IPKA DOLÅ®. Na pÅedchozà položku se pÅesunete SHIFT + TAB nebo Å IPKA NAHORU. StisknÄte MEZERNÃK nebo ENTER pro zvolenà možnosti seznamu. StisknÄte ESC pro uzavÅenà seznamu.'
+ },
+
+ {
+ name: 'Lišta cesty prvku v editoru',
+ legend: 'StisknÄte ${elementsPathFocus} pro procházenà liÅ¡ty cesty prvku. Na dalšà tlaÄÃtko prvku se pÅesunete pomocà TAB nebo Å IPKA VPRAVO. Na pÅedchozà položku se pÅesunete pomocà SHIFT + TAB nebo Å IPKA VLEVO. StisknÄte MEZERNÃK nebo ENTER pro vybránà prvku v editoru.'
+ }
+ ]
+ },
+ {
+ name: 'PÅÃkazy',
+ items: [
+ {
+ name: ' PÅÃkaz ZpÄt',
+ legend: 'StisknÄte ${undo}'
+ },
+ {
+ name: ' PÅÃkaz Znovu',
+ legend: 'StisknÄte ${redo}'
+ },
+ {
+ name: ' PÅÃkaz TuÄné',
+ legend: 'StisknÄte ${bold}'
+ },
+ {
+ name: ' PÅÃkaz KurzÃva',
+ legend: 'StisknÄte ${italic}'
+ },
+ {
+ name: ' PÅÃkaz PodtrženÃ',
+ legend: 'StisknÄte ${underline}'
+ },
+ {
+ name: ' PÅÃkaz Odkaz',
+ legend: 'StisknÄte ${link}'
+ },
+ {
+ name: ' PÅÃkaz Skrýt panel nástrojů',
+ legend: 'StisknÄte ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' NápovÄda pÅÃstupnosti',
+ legend: 'StisknÄte ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
new file mode 100644
index 0000000..eac8b01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'cy', {
+ title: 'Canllawiau Hygyrchedd',
+ contents: 'Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.',
+ legend: [
+ {
+ name: 'Cyffredinol',
+ items: [
+ {
+ name: 'Bar Offer y Golygydd',
+ legend: 'Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i\'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT-TAB. Symudwch i\'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol.'
+ },
+
+ {
+ name: 'Deialog y Golygydd',
+ legend: 'Tu mewn i\'r deialog, pwyswch TAB i fynd i\'r maes nesaf ar y deialog, pwyswch SHIFT + TAB i symud i faes blaenorol, pwyswch ENTER i gyflwyno\'r deialog, pwyswch ESC i ddiddymu\'r deialog. Ar gyfer deialogau sydd â thudalennau aml-tab, pwyswch ALT + F10 i lywio\'r tab-restr. Yna symudwch i\'r tab nesaf gyda TAB neu SAETH DDE. Symudwch i dab blaenorol gyda SHIFT + TAB neu\'r SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis y dudalen tab.'
+ },
+
+ {
+ name: 'Dewislen Cyd-destun y Golygydd',
+ legend: 'Pwyswch $ {contextMenu} neu\'r ALLWEDD \'APPLICATION\' i agor y ddewislen cyd-destun. Yna symudwch i\'r opsiwn ddewislen nesaf gyda\'r TAB neu\'r SAETH I LAWR. Symudwch i\'r opsiwn blaenorol gyda SHIFT + TAB neu\'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i\'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC.'
+ },
+
+ {
+ name: 'Blwch Rhestr y Golygydd',
+ legend: 'Tu mewn rhestr-bocs, ewch i\'r eitem rhestr nesaf gyda TAB neu\'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT + TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o\'r rhestr. Pwyswch ESC i gau\'r rhestr.'
+ },
+
+ {
+ name: 'Bar Llwybr Elfen y Golygydd',
+ legend: 'Pwyswch $ {elementsPathFocus} i fynd i\'r elfennau llwybr bar. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT + TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd.'
+ }
+ ]
+ },
+ {
+ name: 'Gorchmynion',
+ items: [
+ {
+ name: 'Gorchymyn dadwneud',
+ legend: 'Pwyswch ${undo}'
+ },
+ {
+ name: 'Gorchymyn ailadrodd',
+ legend: 'Pwyswch ${redo}'
+ },
+ {
+ name: 'Gorchymyn Bras',
+ legend: 'Pwyswch ${bold}'
+ },
+ {
+ name: 'Gorchymyn italig',
+ legend: 'Pwyswch ${italig}'
+ },
+ {
+ name: 'Gorchymyn tanlinellu',
+ legend: 'Pwyso ${underline}'
+ },
+ {
+ name: 'Gorchymyn dolen',
+ legend: 'Pwyswch ${link}'
+ },
+ {
+ name: 'Gorchymyn Cwympo\'r Dewislen',
+ legend: 'Pwyswch ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Cymorth Hygyrchedd',
+ legend: 'Pwyswch ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/da.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
new file mode 100644
index 0000000..a7f98d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/da.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'da', {
+ title: 'Tilgængelighedsinstrukser',
+ contents: 'Onlinehjælp. For at lukke dette vindue klik ESC',
+ legend: [
+ {
+ name: 'Generelt',
+ items: [
+ {
+ name: 'Editor værktøjslinje',
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Kommandoer',
+ items: [
+ {
+ name: 'Fortryd kommando',
+ legend: 'Klik på ${undo}'
+ },
+ {
+ name: 'Gentag kommando',
+ legend: 'Klik ${redo}'
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Klik ${bold}'
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Klik ${underline}'
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Klik ${link}'
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Kilk ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/de.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
new file mode 100644
index 0000000..9bdff35
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/de.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'de', {
+ title: 'Barrierefreiheitinformationen',
+ contents: 'Hilfeinhalt. Um den Dialog zu schliessen die Taste \'ESC\' drücken.',
+ legend: [
+ {
+ name: 'Allgemein',
+ items: [
+ {
+ name: 'Editor Symbolleiste',
+ legend: 'Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT-TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren.'
+ },
+
+ {
+ name: 'Editor Dialog',
+ legend: 'Innerhalb des Dialogs drücken Sie TAB um zum nächsten Dialogfeld zu gelangen, drücken Sie SHIFT-TAG um zum vorherigen Feld zu wechseln, drücken Sie ENTER um den Dialog abzusenden und ESC um den Dialog zu abzubrechen. Um zwischen den Reitern innerhalb eines Dialogs zu wechseln drücken sie ALT-F10. Um zum nächsten Reiter zu gelangen können Sie TAB oder die rechte Pfeiltaste. Zurück gelangt man mit SHIFT-TAB oder der linken Pfeiltaste. Mit der Leertaste oder Enter kann man den Reiter auswählen.'
+ },
+
+ {
+ name: 'Editor Kontextmenü',
+ legend: 'Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste.'
+ },
+
+ {
+ name: 'Editor Listen',
+ legend: 'Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der Shift-TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs.'
+ },
+
+ {
+ name: 'Editor Elementpfadleiste',
+ legend: 'Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT-TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen.'
+ }
+ ]
+ },
+ {
+ name: 'Befehle',
+ items: [
+ {
+ name: 'Wiederholen Befehl',
+ legend: 'Drücken Sie ${undo}'
+ },
+ {
+ name: 'Rückgängig Befehl',
+ legend: 'Drücken Sie ${redo}'
+ },
+ {
+ name: 'Fettschrift Befehl',
+ legend: 'Drücken Sie ${bold}'
+ },
+ {
+ name: 'Italic Befehl',
+ legend: 'Drücken Sie ${italic}'
+ },
+ {
+ name: 'Unterstreichung Befehl',
+ legend: 'Drücken Sie ${underline}'
+ },
+ {
+ name: 'Link Befehl',
+ legend: 'Drücken Sie ${link}'
+ },
+ {
+ name: 'Symbolleiste zuammenklappen Befehl',
+ legend: 'Drücken Sie ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Eingabehilfen',
+ legend: 'Drücken Sie ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/el.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
new file mode 100644
index 0000000..c85cf73
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/el.js
@@ -0,0 +1,86 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'el', {
+ title: 'ÎÎ´Î·Î³Î¯ÎµÏ Î ÏοÏβαÏιμÏÏηÏαÏ',
+ contents: 'ΠεÏιεÏÏμενα ÎοήθειαÏ. ΠαÏήÏÏε ESC για κλείÏιμο.',
+ legend: [
+ {
+ name: 'Îενικά',
+ items: [
+ {
+ name: 'ÎÏγαλειοθήκη ÎÏεξεÏγαÏÏή',
+ legend: 'ΠαÏήÏÏε ${toolbarFocus} για να ÏεÏιηγηθείÏε ÏÏην γÏαμμή εÏγαλείÏν. ÎεÏακινηθείÏε ανάμεÏα ÏÏÎ¹Ï Î¿Î¼Î¬Î´ÎµÏ ÏÎ·Ï Î³ÏÎ±Î¼Î¼Î®Ï ÎµÏγαλείÏν με TAB και Shift-TAB. ÎεÏακινηθείÏε ανάμεÏα ÏÏα κοÏ
μÏία εÏγαλείÏν με ÎÎÎΠκαι ÎΡÎΣΤÎΡΠÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΠή ENTER για να ενεÏγοÏοιήÏεÏε Ïο ενεÏÎ³Ï ÎºÎ¿Ï
μÏί εÏγαλείοÏ
.'
+ },
+
+ {
+ name: 'ΠαÏάθÏ
Ïο ÎιαλÏγοÏ
ÎÏεξεÏγαÏÏή',
+ legend: 'ÎÎÏα Ïε Îνα ÏαÏάθÏ
Ïο διαλÏγοÏ
, ÏαÏήÏÏε TAB για να μεÏαβείÏε ÏÏο εÏÏμενο Ïεδίο ή SHIFT + TAB για να μεÏαβείÏε ÏÏο ÏÏοηγοÏμενο. ΠαÏήÏÏε ENTER για να Ï
ÏοβάλεÏε Ïην ÏÏÏμα. ΠαÏήÏÏε ESC για να ακÏ
ÏÏÏεÏε Ïην διαδικαÏία ÏÎ·Ï ÏÏÏμαÏ. Îια ÏαÏάθÏ
Ïα διαλÏγÏν ÏοÏ
ÎÏοÏ
ν ÏολλÎÏ ÏÎµÎ»Î¯Î´ÎµÏ Ïε καÏÏÎÎ»ÎµÏ ÏαÏήÏÏε ALT + F10 για να μεÏαβείÏε ÏÏην λίÏÏα ÏÏν καÏÏÎλÏν. ΣÏην ÏÏ
νÎÏεια μÏοÏείÏε να μεÏαβείÏε ÏÏην εÏÏμενη καÏÏÎλα ÏαÏÏνÏÎ±Ï TAB ή RIGHT ARROW. ÎÏοÏείÏε να μεÏαβείÏε ÏÏην ÏÏοηγοÏμενη καÏÏÎλα ÏαÏÏνÏÎ±Ï SHIFT + TAB ή LEFT ARROW. ΠαÏήÏÏε SPACE ή ENTER για να εÏιλÎξεÏε Ïην καÏÏÎλα για ÏÏοβολή.'
+ },
+
+ {
+ name: 'ÎναδÏ
Ïμενο ÎÎµÎ½Î¿Ï ÎÏεξεÏγαÏÏή',
+ legend: 'ΠαÏήÏÏε ${contextMenu} ή APPLICATION KEY για να ανοίξεÏε Ïο αναδÏ
Ïμενο μενοÏ. ÎεÏά μεÏακινηθείÏε ÏÏην εÏÏμενη εÏιλογή ÏοÏ
Î¼ÎµÎ½Î¿Ï Î¼Îµ TAB ή ÎÎΤΩ ÎÎÎÎÎÎ. ÎεÏακινηθείÏε ÏÏην ÏÏοηγοÏμενη εÏιλογή με SHIFT+TAB ή Î ÎÎΩ ÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΣΤÎÎΠή ENTER για να εÏιλÎξεÏε Ïο ÏÏÎÏÏν ÏÏοιÏείο. ÎνοίξÏε Ïο αναδÏ
Ïμενο Î¼ÎµÎ½Î¿Ï ÏÎ·Ï ÏÏÎÏοÏ
ÏÎ±Ï ÎµÏÎ¹Î»Î¿Î³Î®Ï Î¼Îµ ÎÎÎΣΤÎÎΠή ENTER ή ÎÎÎÎ ÎÎÎÎÎÎ. ÎεÏαβείÏε ÏίÏÏ ÏÏο αÏÏÎ¹ÎºÏ ÏÏοιÏείο Î¼ÎµÎ½Î¿Ï Î¼Îµ ESC ή ÎΡÎΣΤÎΡΠÎÎÎÎÎÎ. ÎλείÏÏε Ïο αναδÏ
Ïμενο Î¼ÎµÎ½Î¿Ï Î¼Îµ ESC.'
+ },
+
+ {
+ name: 'ÎοÏ
Ïί ÎίÏÏÎ±Ï ÎÏεξεÏγαÏÏÏν',
+ legend: 'ÎÎÏα Ïε Îνα κοÏ
Ïί λίÏÏαÏ, μεÏακινηθείÏε ÏÏο εÏÏμενο ÏÏοιÏείο με TAB ή ÎÎΤΩ ÎÎÎÎÎÎ. ÎεÏακινηθείÏε ÏÏο ÏÏοηγοÏμενο ÏÏοιÏείο με SHIFT + TAB ή Î ÎÎΩ ÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΣΤÎÎΠή ENTER για να εÏιλÎξεÏε Îνα ÏÏοιÏείο. ΠαÏήÏÏε ESC για να κλείÏεÏε Ïο κοÏ
Ïί ÏÎ·Ï Î»Î¯ÏÏαÏ.'
+ },
+
+ {
+ name: 'ÎÏάÏα ÎιαδÏομÏν ΣÏοιÏείÏν ÎÏεξεÏγαÏÏή',
+ legend: 'ΠαÏήÏÏε ${elementsPathFocus} για να ÏεÏιηγηθείÏε ÏÏην μÏάÏα διαδÏομÏν ÏÏοιÏείÏν ÏοÏ
εÏεξεÏγαÏÏή. ÎεÏακινηθείÏε ÏÏο κοÏ
μÏί ÏοÏ
εÏÏμενοÏ
ÏÏοιÏείοÏ
με Ïο TAB ή Ïο ÎÎÎÎ ÎÎÎÎÎÎ. ÎεÏακινηθείÏε ÏÏο κοÏ
μÏί ÏοÏ
ÏÏοηγοÏμενοÏ
ÏÏοιÏείοÏ
με Ïο SHIFT+TAB ή Ïο ÎΡÎΣΤÎΡΠÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΣΤÎÎΠή ENTER για να εÏιλÎξεÏε Ïο ÏÏοιÏείο ÏÏον εÏεξεÏγαÏÏή.'
+ }
+ ]
+ },
+ {
+ name: 'ÎνÏολÎÏ',
+ items: [
+ {
+ name: ' ÎνÏολή αναίÏεÏηÏ',
+ legend: 'ΠαÏήÏÏε ${undo}'
+ },
+ {
+ name: ' ÎνÏολή εÏανάληÏηÏ',
+ legend: 'ΠαÏήÏÏε ${redo}'
+ },
+ {
+ name: ' ÎνÏολή ÎνÏÎ¿Î½Î·Ï Î³ÏαÏήÏ',
+ legend: 'ΠαÏήÏÏε ${bold}'
+ },
+ {
+ name: ' ÎνÏολή ÏÎ»Î¬Î³Î¹Î±Ï Î³ÏαÏήÏ',
+ legend: 'ΠαÏήÏÏε ${italic}'
+ },
+ {
+ name: ' ÎνÏολή Ï
ÏογÏάμμιÏηÏ',
+ legend: 'ΠαÏήÏÏε ${underline}'
+ },
+ {
+ name: ' ÎνÏολή ÏÏ
νδÎÏμοÏ
',
+ legend: 'ΠαÏήÏÏε ${link}'
+ },
+ {
+ name: ' ÎνÏολή ΣÏμÏÏÎ·Î¾Î·Ï ÎÏγαλειοθήκηÏ',
+ legend: 'ΠαÏήÏÏε ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Îοήθεια Î ÏοÏβαÏιμÏÏηÏαÏ',
+ legend: 'ΠαÏήÏÏε ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/en.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
new file mode 100644
index 0000000..76ae08a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/en.js
@@ -0,0 +1,106 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'en', {
+ title: 'Accessibility Instructions',
+ contents: 'Help Contents. To close this dialog press ESC.',
+ legend: [
+ {
+ name: 'General',
+ items: [
+ {
+ name: 'Editor Toolbar',
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. ' +
+ 'Move to the next and previous toolbar group with TAB and SHIFT-TAB. ' +
+ 'Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. ' +
+ 'Press SPACE or ENTER to activate the toolbar button.'
+ },
+
+ {
+ name: 'Editor Dialog',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. ' +
+ 'For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. ' +
+ 'Then move to next tab with TAB OR RIGTH ARROW. ' +
+ 'Move to previous tab with SHIFT + TAB or LEFT ARROW. ' +
+ 'Press SPACE or ENTER to select the tab page.'
+ },
+
+ {
+ name: 'Editor Context Menu',
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. ' +
+ 'Then move to next menu option with TAB or DOWN ARROW. ' +
+ 'Move to previous option with SHIFT+TAB or UP ARROW. ' +
+ 'Press SPACE or ENTER to select the menu option. ' +
+ 'Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. ' +
+ 'Go back to parent menu item with ESC or LEFT ARROW. ' +
+ 'Close context menu with ESC.'
+ },
+
+ {
+ name: 'Editor List Box',
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. ' +
+ 'Move to previous list item with SHIFT + TAB or UP ARROW. ' +
+ 'Press SPACE or ENTER to select the list option. ' +
+ 'Press ESC to close the list-box.'
+ },
+
+ {
+ name: 'Editor Element Path Bar',
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. ' +
+ 'Move to next element button with TAB or RIGHT ARROW. ' +
+ 'Move to previous button with SHIFT+TAB or LEFT ARROW. ' +
+ 'Press SPACE or ENTER to select the element in editor.'
+ }
+ ]
+ },
+ {
+ name: 'Commands',
+ items: [
+ {
+ name: ' Undo command',
+ legend: 'Press ${undo}'
+ },
+ {
+ name: ' Redo command',
+ legend: 'Press ${redo}'
+ },
+ {
+ name: ' Bold command',
+ legend: 'Press ${bold}'
+ },
+ {
+ name: ' Italic command',
+ legend: 'Press ${italic}'
+ },
+ {
+ name: ' Underline command',
+ legend: 'Press ${underline}'
+ },
+ {
+ name: ' Link command',
+ legend: 'Press ${link}'
+ },
+ {
+ name: ' Toolbar Collapse command',
+ legend: 'Press ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command',
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, ' +
+ 'for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.'
+ },
+ {
+ name: ' Access next focus space command',
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, ' +
+ 'for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.'
+ },
+ {
+ name: ' Accessibility Help',
+ legend: 'Press ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
new file mode 100644
index 0000000..2e38a12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'eo', {
+ title: 'Uzindikoj pri atingeblo',
+ contents: 'Helpilenhavo. Por fermi tiun dialogon, premu la ESKAPAN klavon.',
+ legend: [
+ {
+ name: 'Äeneralaĵoj',
+ items: [
+ {
+ name: 'Ilbreto de la redaktilo',
+ legend: 'Premu ${toolbarFocus} por atingi la ilbreton. MoviÄu al la sekva aÅ antaÅa grupoj de la ilbreto per la klavoj TABA kaj MAJUSKLIGA-TABA. MoviÄu al la sekva aÅ antaÅa butonoj de la ilbreto per la klavoj SAGO DEKSTREN kaj SAGO MALDEKSTREN. Premu la SPACETklavon aÅ la ENENklavon por aktivigi la ilbretbutonon.'
+ },
+
+ {
+ name: 'Redaktildialogo',
+ legend: 'En dialogo, premu la TABAN klavon por navigi al la sekva dialogkampo, premu la MAJUSKLIGAN + TABAN klavojn por reveni al la antaÅa kampo, premu la ENENklavon por sendi la dialogon, premu la ESKAPAN klavon por nuligi la dialogon. Por dialogoj kun pluraj retpaÄoj sub langetoj, premu ALT + F10 por navigi al la langetlisto. Poste moviÄu al la sekva langeto per la klavo TABA aÅ SAGO DEKSTREN. MoviÄu al la antaÅa langeto per la klavoj MAJUSKLIGA + TABA aÅ SAGO MALDEKSTREN. Premu la SPACETklavon aÅ la ENENklavon por selekti la langetretpaÄon.'
+ },
+
+ {
+ name: 'Kunteksta menuo de la redaktilo',
+ legend: 'Premu ${contextMenu} aÅ entajpu la KLAVKOMBINAÄ´ON por malfermi la kuntekstan menuon. Poste moviÄu al la sekva opcio de la menuo per la klavoj TABA aÅ SAGO SUBEN. MoviÄu al la antaÅa opcio per la klavoj MAJUSKLGA + TABA aÅ SAGO SUPREN. Premu la SPACETklavon aÅ ENENklavon por selekti la menuopcion. Malfermu la submenuon de la kuranta opcio per la SPACETklavo aÅ la ENENklavo aÅ la SAGO DEKSTREN. Revenu al la elemento de la patra menuo per la klavoj ESKAPA aÅ SAGO MALDEKSTREN. Fermu la kuntekstan menuon per la ESKAPA klavo.'
+ },
+
+ {
+ name: 'Fallisto de la redaktilo',
+ legend: 'En fallisto, moviÄu al la sekva listelemento per la klavoj TABA aÅ SAGO SUBEN. MoviÄu al la antaÅa listelemento per la klavoj MAJUSKLIGA + TABA aÅ SAGO SUPREN. Premu la SPACETklavon aÅ ENENklavon por selekti la opcion en la listo. Premu la ESKAPAN klavon por fermi la falmenuon.'
+ },
+
+ {
+ name: 'Breto indikanta la vojon al la redaktilelementoj',
+ legend: 'Premu ${elementsPathFocus} por navigi al la breto indikanta la vojon al la redaktilelementoj. MoviÄu al la butono de la sekva elemento per la klavoj TABA aÅ SAGO DEKSTREN. MoviÄu al la butono de la antaÅa elemento per la klavoj MAJUSKLIGA + TABA aÅ SAGO MALDEKSTREN. Premu la SPACETklavon aÅ ENENklavon por selekti la elementon en la redaktilo.'
+ }
+ ]
+ },
+ {
+ name: 'Komandoj',
+ items: [
+ {
+ name: 'Komando malfari',
+ legend: 'Premu ${undo}'
+ },
+ {
+ name: 'Komando refari',
+ legend: 'Premu ${redo}'
+ },
+ {
+ name: 'Komando grasa',
+ legend: 'Premu ${bold}'
+ },
+ {
+ name: 'Komando kursiva',
+ legend: 'Premu ${italic}'
+ },
+ {
+ name: 'Komando substreki',
+ legend: 'Premu ${underline}'
+ },
+ {
+ name: 'Komando ligilo',
+ legend: 'Premu ${link}'
+ },
+ {
+ name: 'Komando faldi la ilbreton',
+ legend: 'Premu ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Helpilo pri atingeblo',
+ legend: 'Premu ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/es.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/es.js
new file mode 100644
index 0000000..7a5a555
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/es.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'es', {
+ title: 'Instrucciones de acceso',
+ contents: 'Ayuda. Para cerrar presione ESC.',
+ legend: [
+ {
+ name: 'General',
+ items: [
+ {
+ name: 'Barra de herramientas del editor',
+ legend: 'Presiona ${toolbarFocus} para navegar por la barra de herramientas. Para moverse por los distintos grupos de herramientas usa las teclas TAB y MAY-TAB. Para moverse por las distintas herramientas usa FLECHA DERECHA o FECHA IZQUIERDA. Presiona "espacio" o "intro" para activar la herramienta.'
+ },
+
+ {
+ name: 'Editor de diálogo',
+ legend: 'Dentro de un cuadro de diálogo, presione la tecla TAB para desplazarse al campo siguiente del cuadro de diálogo, pulse SHIFT + TAB para desplazarse al campo anterior, pulse ENTER para presentar cuadro de diálogo, pulse la tecla ESC para cancelar el diálogo. Para los diálogos que tienen varias páginas, presione ALT + F10 para navegar a la pestaña de la lista. Luego pasar a la siguiente pestaña con TAB o FLECHA DERECHA. Para ir a la ficha anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione ESPACIO o ENTRAR para seleccionar la página de ficha.'
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/et.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
new file mode 100644
index 0000000..c8fc392
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/et.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'et', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'Ãldine',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
new file mode 100644
index 0000000..841ebf0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'fa', {
+ title: 'Ø¯Ø³ØªÙØ±Ø§ÙعÙ
ÙÙØ§Û دسترسÛ',
+ contents: 'راÙÙÙ
Ø§Û ÙÙØ±Ø³Øª Ù
Ø·Ø§ÙØ¨. Ø¨Ø±Ø§Û Ø¨Ø³ØªÙ Ø§Û٠کادر Ù
ØØ§ÙØ±ÙØ§Û ESC را ÙØ´Ø§Ø± دÙÛØ¯.',
+ legend: [
+ {
+ name: 'عÙ
ÙÙ
Û',
+ items: [
+ {
+ name: 'ÙÙØ§Ø± ابزار ÙÛØ±Ø§Ûشگر',
+ legend: '${toolbarFocus} را Ø¨Ø±Ø§Û Ø¨Ø§Ø² کرد٠ÙÙØ§Ø± ابزار Ø¨ÙØ´Ø§Ø±Ûد. با Ú©ÙÛØ¯ Tab Ù Shif-Tab در Ù
جÙ
ÙØ¹Ù ÙÙØ§Ø± ابزار Ø¨Ø¹Ø¯Û Ù ÙØ¨ÙÛ ØØ±Ú©Øª Ú©ÙÛØ¯. Ø¨Ø±Ø§Û ØØ±Ú©Øª در Ú©ÙÛØ¯ ÙÙØ§Ø± ابزار ÙØ¨ÙÛ Ù Ø¨Ø¹Ø¯Û Ø¨Ø§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª Ù ÚÙ¾ جابجا Ø´ÙÛØ¯. Ú©ÙÛØ¯ Space ÛØ§ Enter را Ø¨Ø±Ø§Û ÙØ¹Ø§Ù کرد٠کÙÛØ¯ ÙÙØ§Ø± ابزار Ø¨ÙØ´Ø§Ø±Ûد.'
+ },
+
+ {
+ name: 'Ù¾ÙØ¬Ø±Ù Ù
ØØ§ÙØ±ÙØ§Û ÙÛØ±Ø§Ûشگر',
+ legend: 'در داخ٠ÛÚ© Ù¾ÙØ¬Ø±Ù Ù
ØØ§ÙØ±ÙØ§ÛØ Ú©ÙÛØ¯ Tab را Ø¨ÙØ´Ø§Ø±Ûد تا Ø¨Ù Ù¾ÙØ¬Ø±ÙÛ Ø¨Ø¹Ø¯Û Ø¨Ø±ÙÛØ¯Ø Shift+Tab Ø¨Ø±Ø§Û ØØ±Ú©Øª ب٠ÙÛÙØ¯ ÙØ¨ÙÛØ ÙØ´Ø±Ø¯Ù Enter Ø¨Ø±Ø§Û Ø«Ø¨Øª Ø§Ø·ÙØ§Ø¹Ø§Øª Ù¾ÙØ¬Ø±ÙØ ÙØ´Ø±Ø¯Ù Esc Ø¨Ø±Ø§Û ÙØºÙ Ù¾ÙØ¬Ø±Ù Ù
ØØ§ÙØ±ÙØ§Û Ù Ø¨Ø±Ø§Û Ù¾ÙØ¬Ø±ÙÙØ§ÛÛ Ú©Ù ÚÙØ¯ÛÙ Ø¨Ø±Ú¯Ù Ø¯Ø§Ø±ÙØ¯Ø ÙØ´Ø±Ø¯Ù Alt+F10 Ø¬ÙØª Ø±ÙØªÙ ب٠Tab-List. در ÙÙØ§Ûت ØØ±Ú©Øª Ø¨Ù Ø¨Ø±Ú¯Ù Ø¨Ø¹Ø¯Û Ø¨Ø§ Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª. ØØ±Ú©Øª Ø¨Ù Ø¨Ø±Ú¯Ù ÙØ¨ÙÛ Ø¨Ø§ Shift+Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û ÚÙ¾. ÙØ´Ø±Ø¯Ù Space ÛØ§ Enter Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ ÛÚ© برگÙ.'
+ },
+
+ {
+ name: 'Ù
ÙÙÛ Ù
تÙÛ ÙÛØ±Ø§Ûشگر',
+ legend: '${contextMenu} ÛØ§ Ú©ÙÛØ¯ Ø¨Ø±ÙØ§Ù
ÙÙØ§Û Ú©Ø§Ø±Ø¨Ø±Ø¯Û Ø±Ø§ Ø¨Ø±Ø§Û Ø¨Ø§Ø² کرد٠Ù
ÙÙÛ Ù
ت٠را Ø¨ÙØ´Ø§Ø±Ûد. سپس Ù
ÛØªÙاÙÛØ¯ Ø¨Ø±Ø§Û ØØ±Ú©Øª ب٠گزÛÙÙ Ø¨Ø¹Ø¯Û Ù
Ù٠با Ú©ÙÛØ¯ Tab Ù ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ù¾Ø§ÛÛ٠جابجا Ø´ÙÛØ¯. ØØ±Ú©Øª ب٠گزÛÙÙ ÙØ¨ÙÛ Ø¨Ø§ Shift+Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø¨Ø§ÙØ§. ÙØ´Ø±Ø¯Ù Space ÛØ§ Enter Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ ÛÚ© گزÛÙ٠از Ù
ÙÙ. باز Ú©Ø±Ø¯Ù Ø²ÛØ± شاخ٠گزÛÙÙ Ù
ÙÙ Ø¬Ø§Ø±Û Ø¨Ø§ Ú©ÙÛØ¯ Space ÛØ§ Enter Ù ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª Ù ÚÙ¾. بازگشت ب٠Ù
ÙÙÛ ÙØ§Ùد با Ú©ÙÛØ¯ Esc ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û ÚÙ¾. بست٠Ù
ÙÙÛ Ù
ت٠با Esc.'
+ },
+
+ {
+ name: 'جعب٠ÙÙØ±Ø³Øª ÙÛØ±Ø§Ûشگر',
+ legend: 'در داخ٠جعب٠ÙÛØ³ØªØ ÙÙÙ
دÙÙ
از اÙÙØ§Ù
ÙÛØ³Øª Ø¨Ø¹Ø¯Û Ø±Ø§ با TAB Ù ÛØ§ Arrow Down ØØ±Ú©Øª دÙÛØ¯. Ø§ÙØªÙا٠ب٠ÙÙÙ
دÙÙ
از اÙÙØ§Ù
ÙÛØ³Øª ÙØ¨ÙÛ Ø±Ø§ با SHIFT + TAB ÛØ§ UP ARROW. Ú©ÙÛØ¯ Space ÛØ§ ENTER را Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ گزÛÙÙ ÙÛØ³Øª Ø¨ÙØ´Ø§Ø±Ûد. Ú©ÙÛØ¯ ESC را Ø¨Ø±Ø§Û Ø¨Ø³ØªÙ Ø¬Ø¹Ø¨Ù ÙÛØ³Øª Ø¨ÙØ´Ø§Ø±Ûد.'
+ },
+
+ {
+ name: 'ÙÛØ±Ø§Ûشگر Ø¹ÙØµØ± ÙÙØ§Ø± راÙ',
+ legend: 'Ø¨Ø±Ø§Û Ø±ÙØªÙ ب٠Ù
Ø³ÛØ± Ø¹ÙØ§ØµØ± ${elementsPathFocus} را Ø¨ÙØ´Ø§Ø±Ûد. ØØ±Ú©Øª ب٠کÙÛØ¯ Ø¹ÙØµØ± Ø¨Ø¹Ø¯Û Ø¨Ø§ Ú©ÙÛØ¯ Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª. برگشت ب٠کÙÛØ¯ ÙØ¨ÙÛ Ø¨Ø§ Shift+Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û ÚÙ¾. ÙØ´Ø±Ø¯Ù Space ÛØ§ Enter Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ ÛÚ© Ø¹ÙØµØ± در ÙÛØ±Ø§Ûشگر.'
+ }
+ ]
+ },
+ {
+ name: 'ÙØ±Ù
اÙÙØ§',
+ items: [
+ {
+ name: 'بازگشت ÙØ±Ù
اÙ',
+ legend: 'ÙØ´Ø±Ø¯Ù ${undo}'
+ },
+ {
+ name: 'Ø§ÙØ¬Ø§Ù
Ù
جدد ÙØ±Ù
اÙ',
+ legend: 'ÙØ´Ø±Ø¯Ù ${redo}'
+ },
+ {
+ name: 'ÙØ±Ù
ا٠Ù
ت٠درشت',
+ legend: 'ÙØ´Ø±Ø¯Ù ${bold}'
+ },
+ {
+ name: 'ÙØ±Ù
ا٠Ù
ت٠کج',
+ legend: 'ÙØ´Ø±Ø¯Ù ${italic}'
+ },
+ {
+ name: 'ÙØ±Ù
ا٠Ù
ØªÙ Ø²ÛØ±Ø®Ø·Ø¯Ø§Ø±',
+ legend: 'ÙØ´Ø±Ø¯Ù ${underline}'
+ },
+ {
+ name: 'ÙØ±Ù
ا٠پÛÙÙØ¯',
+ legend: 'ÙØ´Ø±Ø¯Ù ${link}'
+ },
+ {
+ name: 'بست٠ÙÙØ§Ø± ابزار ÙØ±Ù
اÙ',
+ legend: 'ÙØ´Ø±Ø¯Ù ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'راÙÙÙ
Ø§Û Ø¯Ø³ØªØ±Ø³Û',
+ legend: 'ÙØ´Ø±Ø¯Ù ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
new file mode 100644
index 0000000..5ace34f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'fi', {
+ title: 'Saavutettavuus ohjeet',
+ contents: 'Ohjeen sisällöt. Sulkeaksesi tämän dialogin paina ESC.',
+ legend: [
+ {
+ name: 'Yleinen',
+ items: [
+ {
+ name: 'Editorin työkalupalkki',
+ legend: 'Paina ${toolbarFocus} siirtyäksesi työkalupalkkiin. Siirry seuraavaan ja edelliseen työkalupalkin ryhmään TAB ja SHIFT-TAB näppäimillä. Siirry seuraavaan ja edelliseen työkalupainikkeeseen käyttämällä NUOLI OIKEALLE tai NUOLI VASEMMALLE näppäimillä. Paina VÃLILYÃNTI tai ENTER näppäintä aktivoidaksesi työkalupainikkeen.'
+ },
+
+ {
+ name: 'Editorin dialogi',
+ legend: 'Dialogin sisällä, painamalla TAB siirryt seuraavaan dialogin kenttään, painamalla SHIFT+TAB siirryt aiempaan kenttään, painamalla ENTER lähetät dialogin, painamalla ESC peruutat dialogin. Dialogeille joissa on useita välilehtiä, paina ALT+F10 siirtyäksesi välillehtilistaan. Siirtyäksesi seuraavaan välilehteen paina TAB tai NUOLI OIKEALLE. Siirry edelliseen välilehteen painamalla SHIFT+TAB tai nuoli vasemmalle. Paina VÃLILYÃNTI tai ENTER valitaksesi välilehden.'
+ },
+
+ {
+ name: 'Editorin oheisvalikko',
+ legend: 'Paina ${contextMenu} tai SOVELLUSPAINIKETTA avataksesi oheisvalikon. Liiku seuraavaan valikon vaihtoehtoon TAB tai NUOLI ALAS näppäimillä. Siirry edelliseen vaihtoehtoon SHIFT+TAB tai NUOLI YLÃS näppäimillä. Paina VÃLILYÃNTI tai ENTER valitaksesi valikon kohdan. Avataksesi nykyisen kohdan alivalikon paina VÃLILYÃNTI tai ENTER tai NUOLI OIKEALLE painiketta. Siirtyäksesi takaisin valikon ylemmälle tasolle paina ESC tai NUOLI vasemmalle. Oheisvalikko suljetaan ESC painikkeella.'
+ },
+
+ {
+ name: 'Editorin listalaatikko',
+ legend: 'Listalaatikon sisällä siirry seuraavaan listan kohtaan TAB tai NUOLI ALAS painikkeilla. Siirry edelliseen listan kohtaan SHIFT+TAB tai NUOLI YLÃS painikkeilla. Paina VÃLILYÃNTI tai ENTER valitaksesi listan vaihtoehdon. Paina ESC sulkeaksesi listalaatikon.'
+ },
+
+ {
+ name: 'Editorin elementtipolun palkki',
+ legend: 'Paina ${elementsPathFocus} siirtyäksesi elementtipolun palkkiin. Siirry seuraavaan elementtipainikkeeseen TAB tai NUOLI OIKEALLE painikkeilla. Siirry aiempaan painikkeeseen SHIFT+TAB tai NUOLI VASEMMALLE painikkeilla. Paina VÃLILYÃNTI tai ENTER valitaksesi elementin editorissa.'
+ }
+ ]
+ },
+ {
+ name: 'Komennot',
+ items: [
+ {
+ name: 'Peruuta komento',
+ legend: 'Paina ${undo}'
+ },
+ {
+ name: 'Tee uudelleen komento',
+ legend: 'Paina ${redo}'
+ },
+ {
+ name: 'Lihavoi komento',
+ legend: 'Paina ${bold}'
+ },
+ {
+ name: 'Kursivoi komento',
+ legend: 'Paina ${italic}'
+ },
+ {
+ name: 'Alleviivaa komento',
+ legend: 'Paina ${underline}'
+ },
+ {
+ name: 'Linkki komento',
+ legend: 'Paina ${link}'
+ },
+ {
+ name: 'Pienennä työkalupalkki komento',
+ legend: 'Paina ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Saavutettavuus ohjeet',
+ legend: 'Paina ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
new file mode 100644
index 0000000..c47115d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {
+ title: 'Instructions pour l\'accessibilité',
+ contents: 'Contenu de l\'aide. Pour fermer ce dialogue, appuyez sur la touche ESC (Echappement).',
+ legend: [
+ {
+ name: 'Général',
+ items: [
+ {
+ name: 'Barre d\'outils de l\'éditeur',
+ legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers les groupes suivant ou précédent de la barre d\'outil avec les touches TAB et SHIFT-TAB. Se déplacer vers les boutons suivant ou précédent de la barre d\'outils avec les touches FLECHE DROITE et FLECHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRER pour activer le bouton de barre d\'outils.'
+ },
+
+ {
+ name: 'Dialogue de léditeur',
+ legend: 'A l\'intérieur d\'un dialogue, appuyer sur la touche TAB pour naviguer jusqu\'au champ de dalogue suivant, appuyez sur les touches SHIFT + TAB pour revenir au champ précédent, appuyez sur la touche ENTRER pour soumettre le dialogue, appuyer sur la touche ESC pour annuler le dialogue. Pour les dialogues avec plusieurs pages d\'onglets, appuyer sur ALT + F10 pour naviguer jusqu\'à la liste des onglets. Puis se déplacer vers l\'onglet suivant avec la touche TAB ou FLECHE DROITE. Se déplacer vers l\'onglet précédent avec les touches SHIFT + TAB ou FLECHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRER pour sélectionner la page de l\'onglet.'
+ },
+
+ {
+ name: 'Menu contextuel de l\'éditeur',
+ legend: 'Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l\'option suivante du menu avec les touches TAB ou FLECHE BAS. Se déplacer vers l\'option précédente avec les touches SHIFT+TAB ou FLECHE HAUT. appuyer sur la BARRE D\'ESPACE ou la touche ENTREE pour sélectionner l\'option du menu. Oovrir le sous-menu de l\'option courante avec la BARRE D\'ESPACE ou les touches ENTREE ou FLECHE DROITE. Revenir à l\'élément de menu parent avec les touches ESC ou FLECHE GAUCHE. Fermer le menu contextuel avec ESC.'
+ },
+
+ {
+ name: 'Zone de liste en menu déroulant de l\'éditeur',
+ legend: 'A l\'intérieur d\'une liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches TAB ou FLECHE BAS. Se déplacer vers l\'élément précédent de la liste avec les touches SHIFT + TAB ou FLECHE HAUT. Appuyer sur la BARRE D\'ESPACE ou sur ENTREE pour sélectionner l\'option dans la liste. Appuyer sur ESC pour fermer le menu déroulant.'
+ },
+
+ {
+ name: 'Barre d\'emplacement des éléments de léditeur',
+ legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d\'emplacement des éléments de léditeur. Se déplacer vers le bouton d\'élément suivant avec les touches TAB ou FLECHE DROITE. Se déplacer vers le bouton d\'élément précédent avec les touches SHIFT+TAB ou FLECHE GAUCHE. Appuyer sur la BARRE D\'ESPACE ou sur ENTREE pour sélectionner l\'élément dans l\'éditeur.'
+ }
+ ]
+ },
+ {
+ name: 'Commandes',
+ items: [
+ {
+ name: ' Commande défaire',
+ legend: 'Appuyer sur ${undo}'
+ },
+ {
+ name: ' Commande refaire',
+ legend: 'Appuyer sur ${redo}'
+ },
+ {
+ name: ' Commande gras',
+ legend: 'Appuyer sur ${bold}'
+ },
+ {
+ name: ' Commande italique',
+ legend: 'Appuyer sur ${italic}'
+ },
+ {
+ name: ' Commande souligné',
+ legend: 'Appuyer sur ${underline}'
+ },
+ {
+ name: ' Commande lien',
+ legend: 'Appuyer sur ${link}'
+ },
+ {
+ name: ' Commande enrouler la barre d\'outils',
+ legend: 'Appuyer sur ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Aide Accessibilité',
+ legend: 'Appuyer sur ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
new file mode 100644
index 0000000..027e32b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'gu', {
+ title: 'àªàªà«àªà«àª·à«àª¬àª¿àª²àª¿àªà« નૠવિàªàª¤à«',
+ contents: 'હà«àª²à«àªª. ઠબàªàª§ àªàª°àªµàª¾ ESC દબાવà«.',
+ legend: [
+ {
+ name: 'àªàª¨àª°àª²',
+ items: [
+ {
+ name: 'àªàª¡àª¿àªàª° àªà«àª²àª¬àª¾àª°',
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'àªàª¡àª¿àªàª° ડાયલà«àª',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'àªàª®àª¾àªàª¡àª¸',
+ items: [
+ {
+ name: 'àª
નà«àª¡à«àª àªàª®àª¾àªàª¡',
+ legend: '$ દબાવૠ{undo}'
+ },
+ {
+ name: 'ફરૠàªàª°à« àªàª®àª¾àªàª¡',
+ legend: '$ દબાવૠ{redo}'
+ },
+ {
+ name: 'બà«àª²à«àª¦àª¨à« àªàª®àª¾àªàª¡',
+ legend: '$ દબાવૠ{bold}'
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/he.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
new file mode 100644
index 0000000..ef74da3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/he.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'he', {
+ title: '××ר××ת × ××ש×ת',
+ contents: '××ר××ת × ××ש×ת. ×ס×××¨× ×××¥ ×סק××פ (ESC).',
+ legend: [
+ {
+ name: '××××',
+ items: [
+ {
+ name: 'סר×× ×××××',
+ legend: '×××¥ ×¢× ${toolbarFocus} ××× ×× ××× ×סר×× ×××××. ×¢××ר ××פת×ר ××× ×¢× ×קש ×××× (TAB) ×× ××¥ ש××××. ×¢××ר ××פת×ר ××§××× ×¢× ×קש ×ש××¤× (SHIFT) + ××× (TAB) ×× ××¥ ××× ×. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××פע×× ×ת ××פת×ר ×× ××ר.'
+ },
+
+ {
+ name: '×××××××× (×××× ×ת תש×××)',
+ legend: '×ת×× ××××××, ×××¥ ××× (TAB) ××× ×× ××× ×ש×× ×××, ×××¥ ש××¤× (SHIFT) + ××× (TAB) ××× ×× ××× ×ש×× ××§×××, ×××¥ ×× ×ר (ENTER) ××× ×ש××× ×ת ×××××××, ×××¥ ×סק××פ (ESC) ××× ××××. ×ת×× ×××××××× ××¢×× ×ספר ××××× (×ש×× ××ת), ×××¥ ××× (ALT) + F10 ××× ×× ××× ×ש×רת ××××××. × ××× ×××× ××× ×¢× ××× (TAB) ×× ××¥ ש××××. ×¢××ר ×××× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××× ×¡ ××××.'
+ },
+
+ {
+ name: 'תפר×× ××קשר (Context Menu)',
+ legend: '×××¥ ${contextMenu} ×× APPLICATION KEY××× ×פת×× ×ת תפר×× ××קשר. ×¢××ר ××פשר×ת ×××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ××פשר×ת ××§×××ת ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ×××¢××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××פשר×ת. ×¤×ª× ×ת תת ×תפר×× (Sub-menu) ×©× ××פשר×ת ×× ××××ת ×¢× ×¨××× ×× ×× ×ר (ENTER) ×× ××¥ ש××××. ×××ר ×תפר×× ××× ×¢× ×סק××פ (ESC) ×× ××¥ ש××××. ס××ר ×ת תפר×× ××קשר ×¢× ×סק××פ (ESC).'
+ },
+
+ {
+ name: 'תפר×××× ×¦×¤×× (List boxes)',
+ legend: '×ת×× ×ª×¤×¨×× ×¦×£, ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ×תפר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) or ××¥ ×¢××××. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.'
+ },
+
+ {
+ name: '×¢×¥ ×××× ××× (Elements Path)',
+ legend: '×××¥ ${elementsPathFocus} ××× ×× ××× ××¢×¥ ××××× ×××. ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××× ×. ×¢××ר ×פר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××××× × ××¢×ר×.'
+ }
+ ]
+ },
+ {
+ name: 'פק×××ת',
+ items: [
+ {
+ name: ' ××××× ×¦×¢× ××ר××',
+ legend: '×××¥ ${undo}'
+ },
+ {
+ name: ' ×××¨× ×¢× ×¦×¢× ××ר××',
+ legend: '×××¥ ${redo}'
+ },
+ {
+ name: ' ×××ש×',
+ legend: '×××¥ ${bold}'
+ },
+ {
+ name: ' ×××××',
+ legend: '×××¥ ${italic}'
+ },
+ {
+ name: ' ××ספת ×§× ×ª×ת××',
+ legend: '×××¥ ${underline}'
+ },
+ {
+ name: ' ××ספת ××× ×§',
+ legend: '×××¥ ${link}'
+ },
+ {
+ name: ' ×××××¥ סר×× ×××××',
+ legend: '×××¥ ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' ××ר××ת × ××ש×ת',
+ legend: '×××¥ ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
new file mode 100644
index 0000000..53be27e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'hi', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'सामानà¥à¤¯',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
new file mode 100644
index 0000000..49e9601
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'hr', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'OpÄenito',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
new file mode 100644
index 0000000..bd42e7c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'hu', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'Ãltalános',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/it.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
new file mode 100644
index 0000000..d63abda
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/it.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'it', {
+ title: 'Istruzioni di Accessibilità ',
+ contents: 'Contenuti di Aiuto. Per chiudere questa finestra premi ESC.',
+ legend: [
+ {
+ name: 'Generale',
+ items: [
+ {
+ name: 'Barra degli strumenti Editor',
+ legend: 'Premi ${toolbarFocus} per navigare fino alla barra degli strumenti. Muoviti tra i gruppi della barra degli strumenti con i tasti Tab e Maiusc-Tab. Spostati tra il successivo ed il precedente pulsante della barra degli strumenti usando le frecce direzionali Destra e Sinistra. Premi Spazio o Invio per attivare il pulsante della barra degli strumenti.'
+ },
+
+ {
+ name: 'Finestra Editor',
+ legend: 'All\'interno di una finestra di dialogo, premi Tab per navigare fino al campo successivo della finestra di dialogo, premi Maiusc-Tab per tornare al campo precedente, premi Invio per inviare la finestra di dialogo, premi Esc per uscire. Per le finestre che hanno schede multiple, premi Alt+F10 per navigare nella lista delle schede. Quindi spostati alla scheda successiva con il tasto Tab oppure con la Freccia Destra. Torna alla scheda precedente con Maiusc+Tab oppure con la Freccia Sinistra. Premi Spazio o Invio per scegliere la scheda.'
+ },
+
+ {
+ name: 'Menù contestuale Editor',
+ legend: 'Premi ${contextMenu} o TASTO APPLICAZIONE per aprire il menu contestuale. Dunque muoviti all\'opzione successiva del menu con il tasto TAB o con la Freccia Sotto. Muoviti all\'opzione precedente con MAIUSC+TAB o con Freccia Sopra. Premi SPAZIO o INVIO per scegliere l\'opzione di menu. Apri il sottomenu dell\'opzione corrente con SPAZIO o INVIO oppure con la Freccia Destra. Torna indietro al menu superiore con ESC oppure Freccia Sinistra. Chiudi il menu contestuale con ESC.'
+ },
+
+ {
+ name: 'Box Lista Editor',
+ legend: 'Dentro un box-lista, muoviti al prossimo elemento della lista con TAB o con la Freccia direzionale giù. Spostati all\'elemento precedente con MAIUSC+TAB oppure con Freccia direzionale sopra. Premi SPAZIO o INVIO per scegliere l\'opzione della lista. Premi ESC per chiudere il box-lista.'
+ },
+
+ {
+ name: 'Barra percorso elementi editor',
+ legend: 'Premi ${elementsPathFocus} per navigare tra gli elementi della barra percorso. Muoviti al prossimo pulsante di elemento con TAB o la Freccia direzionale destra. Muoviti al pulsante precedente con MAIUSC+TAB o la Freccia Direzionale Sinistra. Premi SPAZIO o INVIO per scegliere l\'elemento nell\'editor.'
+ }
+ ]
+ },
+ {
+ name: 'Comandi',
+ items: [
+ {
+ name: ' Annulla comando',
+ legend: 'Premi ${undo}'
+ },
+ {
+ name: ' Ripeti comando',
+ legend: 'Premi ${redo}'
+ },
+ {
+ name: ' Comando Grassetto',
+ legend: 'Premi ${bold}'
+ },
+ {
+ name: ' Comando Corsivo',
+ legend: 'Premi ${italic}'
+ },
+ {
+ name: ' Comando Sottolineato',
+ legend: 'Premi ${underline}'
+ },
+ {
+ name: ' Comando Link',
+ legend: 'Premi ${link}'
+ },
+ {
+ name: ' Comando riduci barra degli strumenti',
+ legend: 'Premi ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Aiuto Accessibilità ',
+ legend: 'Premi ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js
new file mode 100644
index 0000000..7e15645
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ja', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'å
¨è¬',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
new file mode 100644
index 0000000..e20f2cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ku', {
+ title: 'ÚÛÙÙ
Ø§Û ÙÛØ¨ÛØ±Ø¯ÛØ³ØªØ¯Ø§Ø¨ÙÙÙ',
+ contents: 'Ù¾ÛÚ©ÙØ§ØªÛÛ ÛØ§Ø±Ù
ÛØªÛ. Ú©ÙÛÙ ESC Ø¨Û Ø¯Ø§Ø®Ø³ØªÙÛ Ø¦ÛÙ
Ø¯ÛØ§ÙÛÚ¯Ù.',
+ legend: [
+ {
+ name: 'گشتÛ',
+ items: [
+ {
+ name: 'تÙÙڵاÙ
Ø±Ø§Ø²Û Ø¯ÙâØ³ØªÙØ§Ø±ÛÙÙâØ±',
+ legend: 'Ú©ÙÛÙ ${toolbarFocus} Ø¨Û ÚØ§Ø¨ÛØ±Û ØªÙÙڵاÙ
راز. Ø¨Û Ú¯ÙØ§Ø³ØªÙÛÙÛÛ Ù¾ÛØ´ÙÙ Ø¯Ø§ÙØ§ØªÙÙÛ Ú¯Ø±ÙÙÙ¾Û ØªÙÙڵاÙ
Ø±Ø§Ø²Û Ø¯Ø§Ú¯Ø±ØªÙÛ Ú©ÙÛÙÛ TAB ÙÙâÚ¯ÙâÚµâ SHIFT-TAB. Ø¨Û Ú¯ÙØ§Ø³ØªÙÛÙÛÛ Ù¾ÛØ´ÙÙ Ø¯Ø§ÙØ§ØªÙÙÛ Ø¯ÙÙÚ¯Ù
ÛÛ ØªÙÙڵاÙ
Ø±Ø§Ø²Û ÙÛÚÛÛ Ú©ÙÛÙÛ ØªÛØ±Û Ø¯ÛØ³ØªÛ ÚØ§Ø³Øª ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û Ø¯ÛØ³ØªÛ ÚÛÙ¾. Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û ÚØ§ÙاککردÙÛ Ø¯ÙÙÚ¯Ù
ÛÛ ØªÙÙڵاÙ
راز.'
+ },
+
+ {
+ name: 'Ø¯ÛØ§ÙÛÚ¯Û Ø¯ÙâØ³ØªÙØ§Ø±ÛÙÙâØ±',
+ legend: 'ÙÛÙÛÙ
اÙکاتدا Ú©ÛØªÛ ÙÛØ¯ÛاÙÛÚ¯Û, Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB Ø¨Û ÚØ§Ø¨ÛØ±Û Ø®Ø§ÙÛÛ Ø¯ÛØ§ÙÛÚ¯ÛÚ©Û ØªØ±, داگرتÙÛ Ú©ÙÛÙÛ SHIFT + TAB Ø¨Û Ú¯ÙØ§Ø³ØªÙÛÙÛÛ Ø¨Û Ø®Ø§ÙÛÛ Ù¾ÛØ´ÙÙØªØ±, Ú©ÙÛÙÛ Ú©ÙÛÙÛ ENTER Ø¨Û ÚØ§Ø²ÛکردÙÛ Ø¯ÛØ§ÙÛÚ¯ÛÚ©Û, Ú©ÙÛÙÛ Ú©ÙÛÙÛ ESC Ø¨Û ÙÛÚµÙÛØ´Ø§ÙدÙÛÙÛÛ Ø¯ÛØ§ÙÛÚ¯ÛÚ©Û. Ø¨Û Ø¯ÛØ§ÙÛÚ¯Û ÙÛØ¨Ø§Ø²Ø¯ÛØ±Û (تابÛ) Ø²ÛØ§ØªØ±, Ú©ÙÛÙÛ Ú©ÙÛÙÛ ALT + F10 Ø¨Û ÚØ§Ø¨ÙâØ±Û ÙÛØ³ØªÛ بازدÙâØ±ÙâکاÙ. Ø¨Û ÚÙÙÙÙâ Ø¨Ø§Ø²Ø¯ÙâØ±Û ØªØ§Ø¨Û Ø¯Ø§ÙØ§ØªÙÙ Ú©ÙÛÙÛ Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª. بÛÚÙÙÙÙâ Ø¨Ø§Ø²Ø¯ÙâØ±Û ØªØ§Ø¨Û Ù¾ÛØ´Ù٠داگرتÙÛ Ú©ÙÛÙÛ SHIFT + TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚÙâÙ¾. Ú©ÙÛÛ Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙÛ Ø¨Ø§Ø²Ø¯ÙâØ± (تاب).'
+ },
+
+ {
+ name: 'Ù¾ÛÚØ³ØªÛ سÙâØ±ÙÙÙØ³ÙâØ±',
+ legend: 'Ú©ÙÛÙ ${contextMenu} ÛØ§Ù دÙÚ¯Ù
ÙâÛ ÙÛØ³ØªÙâ(Menu) Ø¨Û Ú©Ø±Ø¯ÙÙâÙÙâÛ ÙÛØ³ØªÙâÛ Ø¯ÙâÙ. Ø¨Û ÚÙÙÙÙâ ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛÙâÚ©Û ØªØ± ÙÙâ ÙÛØ³ØªÙâ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâØ®ÙØ§Ø±ÙâÙÙâ Ø¨Û ÚÙÙÙ Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ Ù¾ÛØ´ÙÙ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SHIFT+TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâ Ø³ÙâØ±ÙâÙÙ. داگرتÙÛ Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³ØªÙâ. Ø¨Û Ú©Ø±Ø¯ÙÙâÙÙâÛ ÙÙÛ ÚÛØ± ÙÛØ³ØªÙâ ÙÙâÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³ØªÙâ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª. Ø¨Û Ú¯ÙâÚØ§ÙÙâÙÙ Ø¨Û Ø³ÙâØ±ÙâÙÙâÛ ÙÛØ³ØªÙâ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ ESC ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚÙâÙ¾. Ø¨Û Ø¯Ø§Ø®Ø³ØªÙÛ ÙÛØ³ØªÙâ Ú©ÙÛÙÛ Ú©ÙÛÙÛ ESC بکÙ.'
+ },
+
+ {
+ name: 'ÙÛØ³ØªÛ سÙÙÙÙÛ Ø³ÙâØ±ÙÙÙØ³ÙâØ±',
+ legend: 'ÙÙâÙØ§Ù سÙÙÙÛ ÙÛØ³Øª, ÚÛÙ Ø¨Û ÙÙâÚµÙØ¨ÚاردÙâÛ ÙÛØ³ØªÛÚ©Û ØªØ± Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâØ®ÙØ§Ø±. ÚÙÙÙ Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³ØªÛ Ù¾ÛØ´ÙÙ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SHIFT + TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâØ³ÙâØ±ÙâÙÙâ. Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û Ø¯ÛØ§Ø±ÛکردÙÛ âÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³Øª. Ú©ÙÛÚ©Û Ú©ÙÛÙÛ ESC Ø¨Û Ø¯Ø§Ø®Ø³ØªÙÛ Ø³ÙÙÙÛ ÙÛØ³Øª.'
+ },
+
+ {
+ name: 'تÙÙڵاÙ
Ø±Ø§Ø²Û ØªÙØ®Ù
',
+ legend: 'Ú©ÙÛÙ ${elementsPathFocus} Ø¨Û ÚØ§Ø¨ÙâØ±Û ØªÙÙڵاÙ
Ø±Ø§Ø²Û ØªÙØ®Ù
ÙâکاÙ. ÚÙÙÙ Ø¨Û Ø¯ÙÚ¯Ù
ÙâÛ ØªÙØ®Ù
ÛÚ©Û ØªØ± Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª. ÚÙÙÙ Ø¨Û Ø¯ÙÚ¯Ù
ÙâÛ ØªÙØ®Ù
Û Ù¾ÛØ´ÙÙ Ú©ÙÛÙÛ SHIFT+TAB ÛØ§Ù Ú©ÙÛÚ©Û Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚÙâÙ¾. داگرتÙÛ Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û Ø¯ÛØ§Ø±ÛکردÙÛ ØªÙØ®Ù
ÙâÚ©Ùâ ÙÙâØ³ÙâØ±ÙÙÙØ³Ù.'
+ }
+ ]
+ },
+ {
+ name: 'ÙÙâØ±Ù
اÙÙâکاÙ',
+ items: [
+ {
+ name: 'ÙÙâØ±Ù
اÙÛ Ù¾ÙÙÚکردÙÙâÙÙ',
+ legend: 'Ú©ÙÛÙ ${undo}'
+ },
+ {
+ name: 'ÙÙâØ±Ù
اÙÛ ÙÙâÚµÚ¯ÙâÚØ§ÙÙâÙÙ',
+ legend: 'Ú©ÙÛÙ ${redo}'
+ },
+ {
+ name: 'ÙÙâØ±Ù
اÙÛ Ø¯ÙâÙÛ ÙÙâÚµÙâÙ',
+ legend: 'Ú©ÙÛÙ ${bold}'
+ },
+ {
+ name: 'ÙÙâØ±Ù
اÙÛ Ø¯ÙâÙÛ ÙØ§Ø±',
+ legend: 'Ú©ÙÛÙ ${italic}'
+ },
+ {
+ name: 'ÙÙâØ±Ù
اÙÛ ÚÛØ±ÙÛÚµ',
+ legend: 'Ú©ÙÛÙ ${underline}'
+ },
+ {
+ name: 'ÙÙâØ±Ù
اÙÛ Ø¨ÙâØ³ØªÙâØ±',
+ legend: 'Ú©ÙÛÙ ${link}'
+ },
+ {
+ name: 'شاردÙâÙÙâÙÙâÛ ØªÙÙڵاÙ
راز',
+ legend: 'Ú©ÙÛÙ ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'دÙâØ³ØªÙ¾ÛÚ¯ÙâÛØ´ØªÙÛ ÛØ§Ø±Ù
ÙâØªÛ',
+ legend: 'Ú©ÙÛÙ ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
new file mode 100644
index 0000000..e7662f2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'lt', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'Bendros savybÄs',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
new file mode 100644
index 0000000..2584d96
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'lv', {
+ title: 'Pieejamības instrukcija',
+ contents: 'PalÄ«dzÄ«bas saturs. Lai aizvÄrtu ciet Å¡o dialogu nospiediet ESC.',
+ legend: [
+ {
+ name: 'Galvenais',
+ items: [
+ {
+ name: 'Redaktora rīkjosla',
+ legend: 'Nospiediet ${toolbarFocus} lai pÄrvietotos uz rÄ«kjoslu. Lai pÄrvietotos uz nÄkoÅ¡o vai iepriekÅ¡Äjo rÄ«kjoslas grupu izmantojiet pogu TAB un SHIFT+TAB. Lai pÄrvietotos uz nÄkoÅ¡o vai iepriekÅ¡Äjo rÄ«kjoslas pogu izmantojiet Kreiso vai Labo bultiÅu. Nospiediet Atstarpi vai ENTER lai aktivizÄtu rÄ«kjosla pogu.'
+ },
+
+ {
+ name: 'Redaktora dialoga logs',
+ legend: 'Dialoga logÄ nospiediet pogu TAB lai pÄrvietotos uz nÄkoÅ¡o dialoga loga lauku, nospiediet SHIFT+TAB lai atgrieztos iepriekÅ¡ÄjÄ laukÄ, nospiediet ENTER lai apstiprinÄtu dialoga datus, nospiediet ESC lai aizvÄrtu Å¡o dialogu. Dialogam kuram ir vairÄkas cilnes, nospiediet ALT+F10 lai pÄrvietotos uz nepiecieÅ¡amo cilni. Lai pÄrvietotos uz nÄkoÅ¡o cilni izmantojiet pogu TAB vai Labo bultiÅu. Lai pÄrvietotos uz iepriekÅ¡Äjo cilni nospiediet SHIFT+TAB vai kreiso bultiÅu. Nospiediet SPACE vai ENTER lai izvÄlÄtos lapas cilni.'
+ },
+
+ {
+ name: 'Redaktora satura izvÄle',
+ legend: 'Nospiediet ${contextMenu} vai APPLICATION KEY lai atvÄrtu satura izvÄlni. Lai pÄrvietotos uz nÄkoÅ¡o izvÄlnes opciju izmantojiet pogu TAB vai pogu BultiÅu uz leju. Lai pÄrvietotos uz iepriekÅ¡Äjo opciju izmantojiet SHIFT+TAB vai pogu BultiÅa uz augÅ¡u. Nospiediet SPACE vai ENTER lai izvelÄtos izvÄlnes opciju. Atveriet tekoÅ¡ajÄ opcija apakÅ¡izvÄlni ar SAPCE vai ENTER ka ari to var izdarÄ«t ar Labo bultiÅu. Lai atgrieztos atpakaļ uz sakuma izvÄlni nospiediet ESC vai Kreiso bultiÅu. Lai aizvÄrtu ciet izvÄlnes saturu nospiediet ESC.'
+ },
+
+ {
+ name: 'Redaktora saraksta lauks',
+ legend: 'Saraksta laukÄ, lai pÄrvietotos uz nÄkoÅ¡o saraksta elementu nospiediet TAB vai pogu BultiÅa uz leju. Lai pÄrvietotos uz iepriekÅ¡Äjo saraksta elementu nospiediet SHIFT+TAB vai pogu BultiÅa uz augÅ¡u. Nospiediet SPACE vai ENTER lai izvÄlÄtos saraksta opcijas. Nospiediet ESC lai aizvÄrtu saraksta lauku. '
+ },
+
+ {
+ name: 'Redaktora elementa ceļa josla',
+ legend: 'Nospiediet ${elementsPathFocus} lai pÄrvietotos uz elementa ceļa joslu. Lai pÄrvietotos uz nÄkoÅ¡o elementa pogu izmantojiet TAB vai Labo bultiÅu. Lai pÄrvietotos uz iepriekÅ¡Äjo elementa pogu izmantojiet SHIFT + TAB vai Kreiso bultiÅu. Nospiediet SPACE vai ENTER lai izvÄlÄtos elementu redaktorÄ.'
+ }
+ ]
+ },
+ {
+ name: 'Komandas',
+ items: [
+ {
+ name: 'Komanda atcelt darbību',
+ legend: 'Nospiediet ${undo}'
+ },
+ {
+ name: 'Komanda atkÄrtot darbÄ«bu',
+ legend: 'Nospiediet ${redo}'
+ },
+ {
+ name: 'Treknraksta komanda',
+ legend: 'Nospiediet ${bold}'
+ },
+ {
+ name: 'Kursīva komanda',
+ legend: 'Nospiediet ${italic}'
+ },
+ {
+ name: 'Apakšsvītras komanda ',
+ legend: 'Nospiediet ${underline}'
+ },
+ {
+ name: 'Hipersaites komanda',
+ legend: 'Nospiediet ${link}'
+ },
+ {
+ name: 'RÄ«kjoslas aizvÄrÅ¡anas komanda',
+ legend: 'Nospiediet ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Pieejamības palīdzība',
+ legend: 'Nospiediet ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
new file mode 100644
index 0000000..79efad6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'mk', {
+ title: 'ÐнÑÑÑÑкÑии за пÑиÑÑапноÑÑ',
+ contents: 'СодÑжина на Ð´ÐµÐ»Ð¾Ñ Ð·Ð° помоÑ. Ðа да го заÑвоÑиÑе Ð¾Ð²Ð¾Ñ Ð´Ð¸ÑÐ°Ð»Ð¾Ñ Ð¿ÑиÑиÑнеÑе ESC.',
+ legend: [
+ {
+ name: 'ÐпÑÑо',
+ items: [
+ {
+ name: 'Ðени за едиÑоÑоÑ',
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'ÐиÑÐ°Ð»Ð¾Ñ Ð·Ð° едиÑоÑоÑ',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
new file mode 100644
index 0000000..fcc2c8d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'mn', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'ÐÑөнÑ
ий',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
new file mode 100644
index 0000000..dd62690
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'nb', {
+ title: 'Instruksjoner for tilgjengelighet',
+ contents: 'Innhold for hjelp. Trykk ESC for å lukke denne dialogen.',
+ legend: [
+ {
+ name: 'Generelt',
+ items: [
+ {
+ name: 'Verktøylinje for editor',
+ legend: 'Trykk ${toolbarFocus} for Ã¥ navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT-TAB. Flytt til neste og forrige verktøylinjeknapp med HÃYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ aktivere verktøylinjeknappen.'
+ },
+
+ {
+ name: 'Dialog for editor',
+ legend: 'Mens du er i en dialog, trykk TAB for Ã¥ navigere til neste dialogfelt, press SHIFT + TAB for Ã¥ flytte til forrige felt, trykk ENTER for Ã¥ akseptere dialogen, trykk ESC for Ã¥ avbryte dialogen. For dialoger med flere faner, trykk ALT + F10 for Ã¥ navigere til listen over faner. GÃ¥ til neste fane med TAB eller HÃYRE PILTAST. GÃ¥ til forrige fane med SHIFT + TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge fanen.'
+ },
+
+ {
+ name: 'Kontekstmeny for editor',
+ legend: 'Trykk ${contextMenu} eller MENYKNAPP for Ã¥ Ã¥pne kontekstmeny. GÃ¥ til neste alternativ i menyen med TAB eller PILTAST NED. GÃ¥ til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for Ã¥ velge menyalternativet. Ã
pne undermenyen pÃ¥ valgt alternativ med MELLOMROM eller ENTER eller HÃYRE PILTAST. GÃ¥ tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC.'
+ },
+
+ {
+ name: 'Listeboks for editor',
+ legend: 'I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT + TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen.'
+ },
+
+ {
+ name: 'Verktøylinje for elementsti',
+ legend: 'Trykk ${elementsPathFocus} for Ã¥ navigere til verktøylinjen som viser elementsti. GÃ¥ til neste elementknapp med TAB eller HÃYRE PILTAST. GÃ¥ til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge elementet i editoren.'
+ }
+ ]
+ },
+ {
+ name: 'Kommandoer',
+ items: [
+ {
+ name: 'Angre',
+ legend: 'Trykk ${undo}'
+ },
+ {
+ name: 'Gjør om',
+ legend: 'Trykk ${redo}'
+ },
+ {
+ name: 'Fet tekst',
+ legend: 'Trykk ${bold}'
+ },
+ {
+ name: 'Kursiv tekst',
+ legend: 'Trykk ${italic}'
+ },
+ {
+ name: 'Understreking',
+ legend: 'Trykk ${underline}'
+ },
+ {
+ name: 'Link',
+ legend: 'Trykk ${link}'
+ },
+ {
+ name: 'Skjul verktøylinje',
+ legend: 'Trykk ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Hjelp for tilgjengelighet',
+ legend: 'Trykk ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
new file mode 100644
index 0000000..00ebb4c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'nl', {
+ title: 'Toegankelijkheidsinstructies',
+ contents: 'Help inhoud. Druk op ESC om dit dialoog te sluiten.',
+ legend: [
+ {
+ name: 'Algemeen',
+ items: [
+ {
+ name: 'Werkbalk tekstverwerker',
+ legend: 'Druk op ${toolbarFocus} om naar de werkbalk te navigeren. Om te schakelen naar de volgende en vorige werkbalkgroep, gebruik TAB en SHIFT+TAB. Om te schakelen naar de volgende en vorige werkbalkknop, gebruik de PIJL RECHTS en PIJL LINKS. Druk op SPATIE of ENTER om een werkbalkknop te activeren.'
+ },
+
+ {
+ name: 'Dialoog tekstverwerker',
+ legend: 'In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Voor dialoogvensters met meerdere tabbladen, druk op ALT+F10 om naar de tabset te navigeren. Schakel naar het volgende tabblad met TAB of PIJL RECHTS. Schakel naar het vorige tabblad met SHIFT+TAB of PIJL LINKS. Druk op SPATIE of ENTER om het tabblad te selecteren.'
+ },
+
+ {
+ name: 'Contextmenu tekstverwerker',
+ legend: 'Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC.'
+ },
+
+ {
+ name: 'Keuzelijst tekstverwerker',
+ legend: 'In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten.'
+ },
+
+ {
+ name: 'Elementenpad werkbalk tekstverwerker',
+ legend: 'Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker.'
+ }
+ ]
+ },
+ {
+ name: 'Opdrachten',
+ items: [
+ {
+ name: 'Ongedaan maken opdracht',
+ legend: 'Druk op ${undo}'
+ },
+ {
+ name: 'Opnieuw uitvoeren opdracht',
+ legend: 'Druk op ${redo}'
+ },
+ {
+ name: 'Vetgedrukt opdracht',
+ legend: 'Druk up ${bold}'
+ },
+ {
+ name: 'Cursief opdracht',
+ legend: 'Druk op ${italic}'
+ },
+ {
+ name: 'Onderstrepen opdracht',
+ legend: 'Druk op ${underline}'
+ },
+ {
+ name: 'Link opdracht',
+ legend: 'Druk op ${link}'
+ },
+ {
+ name: 'Werkbalk inklappen opdracht',
+ legend: 'Druk op ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Toegankelijkheidshulp',
+ legend: 'Druk op ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/no.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
new file mode 100644
index 0000000..6721638
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/no.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'no', {
+ title: 'Instruksjoner for tilgjengelighet',
+ contents: 'Innhold for hjelp. Trykk ESC for å lukke denne dialogen.',
+ legend: [
+ {
+ name: 'Generelt',
+ items: [
+ {
+ name: 'Verktøylinje for editor',
+ legend: 'Trykk ${toolbarFocus} for Ã¥ navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT-TAB. Flytt til neste og forrige verktøylinjeknapp med HÃYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ aktivere verktøylinjeknappen.'
+ },
+
+ {
+ name: 'Dialog for editor',
+ legend: 'Mens du er i en dialog, trykk TAB for Ã¥ navigere til neste dialogfelt, press SHIFT + TAB for Ã¥ flytte til forrige felt, trykk ENTER for Ã¥ akseptere dialogen, trykk ESC for Ã¥ avbryte dialogen. For dialoger med flere faner, trykk ALT + F10 for Ã¥ navigere til listen over faner. GÃ¥ til neste fane med TAB eller HÃYRE PILTAST. GÃ¥ til forrige fane med SHIFT + TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge fanen.'
+ },
+
+ {
+ name: 'Kontekstmeny for editor',
+ legend: 'Trykk ${contextMenu} eller MENYKNAPP for Ã¥ Ã¥pne kontekstmeny. GÃ¥ til neste alternativ i menyen med TAB eller PILTAST NED. GÃ¥ til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for Ã¥ velge menyalternativet. Ã
pne undermenyen pÃ¥ valgt alternativ med MELLOMROM eller ENTER eller HÃYRE PILTAST. GÃ¥ tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC.'
+ },
+
+ {
+ name: 'Listeboks for editor',
+ legend: 'I en listeboks, gå til neste alternativ i listen med TAB eller PILTAST NED. Gå til forrige alternativ i listen med SHIFT + TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for å velge alternativet i listen. Trykk ESC for å lukke listeboksen.'
+ },
+
+ {
+ name: 'Verktøylinje for elementsti',
+ legend: 'Trykk ${elementsPathFocus} for Ã¥ navigere til verktøylinjen som viser elementsti. GÃ¥ til neste elementknapp med TAB eller HÃYRE PILTAST. GÃ¥ til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge elementet i editoren.'
+ }
+ ]
+ },
+ {
+ name: 'Kommandoer',
+ items: [
+ {
+ name: 'Angre',
+ legend: 'Trykk ${undo}'
+ },
+ {
+ name: 'Gjør om',
+ legend: 'Trykk ${redo}'
+ },
+ {
+ name: 'Fet tekst',
+ legend: 'Trykk ${bold}'
+ },
+ {
+ name: 'Kursiv tekst',
+ legend: 'Trykk ${italic}'
+ },
+ {
+ name: 'Understreking',
+ legend: 'Trykk ${underline}'
+ },
+ {
+ name: 'Link',
+ legend: 'Trykk ${link}'
+ },
+ {
+ name: 'Skjul verktøylinje',
+ legend: 'Trykk ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Hjelp for tilgjengelighet',
+ legend: 'Trykk ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
new file mode 100644
index 0000000..36aa82b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'pl', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'Ogólne',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
new file mode 100644
index 0000000..d7d90ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'pt-br', {
+ title: 'Instruções de Acessibilidade',
+ contents: 'Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.',
+ legend: [
+ {
+ name: 'Geral',
+ items: [
+ {
+ name: 'Barra de Ferramentas do Editor',
+ legend: 'Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT-TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÃO ou ENTER para ativar o botão da barra de ferramentas.'
+ },
+
+ {
+ name: 'Diálogo do Editor',
+ legend: 'Dentro de um diálogo, pressione TAB para navegar para o próximo campo, pressione SHIFT + TAB para mover para o campo anterior, pressione ENTER para enviar o diálogo, pressione ESC para cancelar o diálogo. Para diálogos que tem múltiplas abas, pressione ALT + F10 para navegar para a lista de abas, então mova para a próxima aba com SHIFT + TAB ou SETA PARA ESQUERDA. Pressione ESPAÃO ou ENTER para selecionar a aba.'
+ },
+
+ {
+ name: 'Menu de Contexto do Editor',
+ legend: 'Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÃO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÃO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC.'
+ },
+
+ {
+ name: 'Caixa de Lista do Editor',
+ legend: 'Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT + TAB ou SETA PARA CIMA. Pressione ESPAÃO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista.'
+ },
+
+ {
+ name: 'Barra de Caminho do Elementos do Editor',
+ legend: 'Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÃO ou ENTER para selecionar o elemento no editor.'
+ }
+ ]
+ },
+ {
+ name: 'Comandos',
+ items: [
+ {
+ name: ' Comando Desfazer',
+ legend: 'Pressione ${undo}'
+ },
+ {
+ name: ' Comando Refazer',
+ legend: 'Pressione ${redo}'
+ },
+ {
+ name: ' Comando Negrito',
+ legend: 'Pressione ${bold}'
+ },
+ {
+ name: ' Comando Itálico',
+ legend: 'Pressione ${italic}'
+ },
+ {
+ name: ' Comando Sublinhado',
+ legend: 'Pressione ${underline}'
+ },
+ {
+ name: ' Comando Link',
+ legend: 'Pressione ${link}'
+ },
+ {
+ name: ' Comando Fechar Barra de Ferramentas',
+ legend: 'Pressione ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Ajuda de Acessibilidade',
+ legend: 'Pressione ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
new file mode 100644
index 0000000..d441130
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'pt', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'Geral',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
new file mode 100644
index 0000000..3d0c813
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ro', {
+ title: 'InstrucÈiuni de accesibilitate',
+ contents: 'Cuprins. Pentru a închide acest dialog, apÄsaÈi tasta ESC.',
+ legend: [
+ {
+ name: 'General',
+ items: [
+ {
+ name: 'EditeazÄ bara.',
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Dialog editor',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor meniu contextual',
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
new file mode 100644
index 0000000..3a9ed17
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ru', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'ÐÑновное',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
new file mode 100644
index 0000000..3833e19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'sk', {
+ title: 'InÅ¡trukcie prÃstupnosti',
+ contents: 'Pomocný obsah. Pre zatvorenie tohto okna, stlaÄte ESC.',
+ legend: [
+ {
+ name: 'Všeobecne',
+ items: [
+ {
+ name: 'Lišta nástrojov editora',
+ legend: 'StlaÄte ${toolbarFocus} pre navigáciu na liÅ¡tu nástrojov. Medzi ÄalÅ¡ou a predchádzajúcou liÅ¡tou nástrojov sa pohybujete s TAB a SHIFT-TAB. Medzi ÄalÅ¡Ãm a predchádzajúcim tlaÄidlom na liÅ¡te nástrojov sa pohybujete s pravou Å¡Ãpkou a ľavou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre aktiváciu tlaÄidla liÅ¡ty nástrojov.'
+ },
+
+ {
+ name: 'Editorový dialóg',
+ legend: 'V dialogu, stlaÄte TAB pre navigáciu na ÄalÅ¡ie dialógové pole, stlaÄte STIFT + TAB pre presun na predchádzajúce pole, stlaÄte ENTER pre odoslanie dialógu, stlaÄte ESC pre zruÅ¡enie dialógu. Pre dialógy, ktoré majú viac záložiek, stlaÄte ALT + F10 pre navigácou do zoznamu záložiek. Potom sa posúvajte k ÄalÅ¡ej žáložke pomocou TAB alebo pravou Å¡Ãpkou. Pre presun k predchádzajúcej záložke, stlaÄte SHIFT + TAB alebo ľavú Å¡Ãpku. StlaÄte medzernÃk alebo ENTER pre vybranie záložky.'
+ },
+
+ {
+ name: 'Editorové kontextové menu',
+ legend: 'StlaÄte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ÄalÅ¡ie možnosti menu s TAB alebo dolnou Å¡Ãpkou. Presunte sa k predchádzajúcej možnosti s SHIFT + TAB alebo hornou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzernÃkom, alebo ENTER, alebo pravou Å¡Ãpkou. Vráťte sa späť do položky rodiÄovského menu s ESC alebo ľavou Å¡Ãpkou. Zatvorte kontextové menu s ESC.'
+ },
+
+ {
+ name: 'Editorov box zoznamu',
+ legend: 'V boxe zoznamu, presuÅte sa na ÄalÅ¡iu položku v zozname s TAB alebo dolnou Å¡Ãpkou. PresuÅte sa k predchádzajúcej položke v zozname so SHIFT + TAB alebo hornou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre výber možnosti zoznamu. StlaÄte ESC pre zatvorenie boxu zoznamu.'
+ },
+
+ {
+ name: 'Editorove pásmo cesty prvku',
+ legend: 'StlaÄte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. PresuÅte sa na tlaÄidlo ÄalÅ¡ieho prvku s TAB alebo pravou Å¡Ãpkou. PresuÅte sa k predchádzajúcemu tlaÄidlu s SHIFT + TAB alebo ľavou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre výber prvku v editore.'
+ }
+ ]
+ },
+ {
+ name: 'PrÃkazy',
+ items: [
+ {
+ name: 'VrátiÅ¥ prÃkazy',
+ legend: 'StlaÄte ${undo}'
+ },
+ {
+ name: 'Nanovo vrátiÅ¥ prÃkaz',
+ legend: 'StlaÄte ${redo}'
+ },
+ {
+ name: 'PrÃkaz na stuÄnenie',
+ legend: 'StlaÄte ${bold}'
+ },
+ {
+ name: 'PrÃkaz na kurzÃvu',
+ legend: 'StlaÄte ${italic}'
+ },
+ {
+ name: 'PrÃkaz na podÄiarknutie',
+ legend: 'StlaÄte ${underline}'
+ },
+ {
+ name: 'PrÃkaz na odkaz',
+ legend: 'StlaÄte ${link}'
+ },
+ {
+ name: 'PrÃkaz na zbalenie liÅ¡ty nástrojov',
+ legend: 'StlaÄte ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'Pomoc prÃstupnosti',
+ legend: 'StlaÄte ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
new file mode 100644
index 0000000..ad46ecb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'Splošno',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js
new file mode 100644
index 0000000..aa456ac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'sv', {
+ title: 'Hjälpmedelsinstruktioner',
+ contents: 'Hjälpinnehåll. För att stänga denna dialogruta trycker du på ESC.',
+ legend: [
+ {
+ name: 'Allmänt',
+ items: [
+ {
+ name: 'Editor verktygsfält',
+ legend: 'Tryck pÃ¥ $ {toolbarFocus} för att navigera till verktygsfältet. Flytta till nästa och föregÃ¥ende verktygsfältsgrupp med TAB och SHIFT-TAB. Flytta till nästa och föregÃ¥ende knapp i verktygsfältet med HÃGERPIL eller VÃNSTERPIL. Tryck Space eller ENTER för att aktivera knappen i verktygsfältet.'
+ },
+
+ {
+ name: 'Dialogeditor',
+ legend: 'Inuti en dialogruta, tryck TAB för att navigera till nästa fält i dialogrutan. Du trycker SKIFT + TAB för att flytta till föregÃ¥ende fält. Tryck ENTER för att skicka. Du avbryter och stänger dialogen med ESC. För dialogrutor som har flera flikar, tryck ALT + F10 navigera till fliklistan. Flytta sedan till nästa flik med HÃGERPIL. Flytta till föregÃ¥ende flik med SHIFT + TAB eller VÃNSTERPIL. Tryck Space eller ENTER för att välja fliken.'
+ },
+
+ {
+ name: 'Editor för innehållsmeny',
+ legend: 'Tryck pÃ¥ $ {contextMenu} eller PROGRAMTANGENTEN för att öppna snabbmenyn. Flytta sedan till nästa menyalternativ med TAB eller NEDPIL. Flytta till föregÃ¥ende alternativ med SHIFT + TABB eller UPPIL. Tryck Space eller ENTER för att välja menyalternativ. Ãppna undermeny av nuvarande alternativ med SPACE eller ENTER eller HÃGERPIL. GÃ¥ tillbaka till överordnade menyalternativ med ESC eller VÃNSTERPIL. Stäng snabbmenyn med ESC.'
+ },
+
+ {
+ name: 'Editor för List Box',
+ legend: 'Inuti en list-box, gå till nästa listobjekt med TAB eller NEDPIL. Flytta till föregående listobjekt med SHIFT + TAB eller UPPIL. Tryck Space eller ENTER för att välja listan alternativet. Tryck ESC för att stänga listan-boxen.'
+ },
+
+ {
+ name: 'Editor för elementens sökväg',
+ legend: 'Tryck pÃ¥ $ {elementsPathFocus} för att navigera till verktygsfältet för elementens sökvägar. Flytta till nästa elementknapp med TAB eller HÃGERPIL. Flytta till föregÃ¥ende knapp med SKIFT + TAB eller VÃNSTERPIL. Tryck Space eller ENTER för att välja element i redigeraren.'
+ }
+ ]
+ },
+ {
+ name: 'Kommandon',
+ items: [
+ {
+ name: 'Kommandot ångra',
+ legend: 'Tryck på ${undo}'
+ },
+ {
+ name: 'Kommandot gör om',
+ legend: 'Tryck på ${redo}'
+ },
+ {
+ name: 'Kommandot fet stil',
+ legend: 'Tryck på ${bold}'
+ },
+ {
+ name: 'Kommandot kursiv',
+ legend: 'Tryck på ${italic}'
+ },
+ {
+ name: 'Kommandot understruken',
+ legend: 'Tryck på ${underline}'
+ },
+ {
+ name: 'kommandot länk',
+ legend: 'Tryck på ${link}'
+ },
+ {
+ name: 'Verktygsfält Dölj kommandot',
+ legend: 'Tryck på ${toolbarCollapse}'
+ },
+ {
+ name: 'Hjälp om hjälpmedel',
+ legend: 'Tryck på $ {a11yHelp}'
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
new file mode 100644
index 0000000..71fd4c9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'tr', {
+ title: 'EriÅilebilirlik Talimatları',
+ contents: 'Yardım içeriÄi. Bu pencereyi kapatmak için ESC tuÅuna basın.',
+ legend: [
+ {
+ name: 'Genel',
+ items: [
+ {
+ name: 'Araç ÃubuÄu Editörü',
+ legend: 'Araç çubuÄunda gezinmek için ${toolbarFocus} basın. TAB ve SHIFT-TAB ile önceki ve sonraki araç çubuÄu grubuna taÅıyın. SAÄ OK veya SOL OK ile önceki ve sonraki bir araç çubuÄu düÄmesini hareket ettirin. SPACE tuÅuna basın veya araç çubuÄu düÄmesini etkinleÅtirmek için ENTER tuÅna basın.'
+ },
+
+ {
+ name: 'Dialog Editörü',
+ legend: 'Dialog penceresi içinde, sonraki iletiÅim alanına gitmek için SEKME tuÅuna basın, önceki alana geçmek için SHIFT + TAB tuÅuna basın, pencereyi göndermek için ENTER tuÅuna basın, dialog penceresini iptal etmek için ESC tuÅuna basın. Birden çok sekme sayfaları olan diyalogların, sekme listesine gitmek için ALT + F10 tuÅlarına basın. Sonra TAB veya SAÄ OK sonraki sekmeye taÅıyın. SHIFT + TAB veya SOL OK ile önceki sekmeye geçin. Sekme sayfayı seçmek için SPACE veya ENTER tuÅuna basın.'
+ },
+
+ {
+ name: 'İçerik Menü Editörü',
+ legend: 'İçerik menüsünü açmak için ${contextMenu} veya UYGULAMA TUÅU\'na basın. Daha sonra SEKME veya AÅAÄI OK ile bir sonraki menü seçeneÄi taÅıyın. SHIFT + TAB veya YUKARI OK ile önceki seçeneÄe gider. Menü seçeneÄini seçmek için SPACE veya ENTER tuÅuna basın. Seçili seçeneÄin alt menüsünü SPACE ya da ENTER veya SAÄ OK açın. Ãst menü öÄesini geçmek için ESC veya SOL OK ile geri dönün. ESC ile baÄlam menüsünü kapatın.'
+ },
+
+ {
+ name: 'Liste Kutusu Editörü',
+ legend: 'Liste kutusu içinde, bir sonraki liste öÄesine SEKME VEYA AÅAÄI OK ile taÅıyın. SHIFT + TAB veya YUKARI önceki liste öÄesi taÅıyın. Liste seçeneÄi seçmek için SPACE veya ENTER tuÅuna basın. Liste kutusunu kapatmak için ESC tuÅuna basın.'
+ },
+
+ {
+ name: 'Element Yol ÃubuÄu Editörü',
+ legend: 'Elementlerin yol çubuÄunda gezinmek için ${ElementsPathFocus} basın. SEKME veya SAÄ OK ile sonraki element düÄmesine taÅıyın. SHIFT + TAB veya SOL OK önceki düÄmeye hareket ettirin. Editör içindeki elementi seçmek için ENTER veya SPACE tuÅuna basın.'
+ }
+ ]
+ },
+ {
+ name: 'Komutlar',
+ items: [
+ {
+ name: 'Komutu geri al',
+ legend: '${undo} basın'
+ },
+ {
+ name: ' Tekrar komutu uygula',
+ legend: '${redo} basın'
+ },
+ {
+ name: ' Kalın komut',
+ legend: '${bold} basın'
+ },
+ {
+ name: ' İtalik komutu',
+ legend: '${italic} basın'
+ },
+ {
+ name: ' Alttan çizgi komutu',
+ legend: '${underline} basın'
+ },
+ {
+ name: ' BaÄlantı komutu',
+ legend: '${link} basın'
+ },
+ {
+ name: ' Araç çubuÄu Toplama komutu',
+ legend: '${toolbarCollapse} basın'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'EriÅilebilirlik Yardımı',
+ legend: '${a11yHelp} basın'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
new file mode 100644
index 0000000..884768f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'ug', {
+ title: 'ÙÙØ´ÛÙ
ÚÛ ÚÛØ´ÛÙØ¯ÛØ±ÛØ´',
+ contents: 'ÙØ§Ø±Ø¯ÛÙ
Ù
ÛØ²Ù
ÛÙÙ. Ø¨Û Ø³ÛØ²ÙÛØ´ÙÛÙÙ ÙØ§Ù¾Ù
اÙÚ٠بÙÙØ³ÙÚÙØ² ESC ÙÙ Ø¨ÛØ³ÙÚ.',
+ legend: [
+ {
+ name: 'Ø¦Ø§Ø¯ÛØªØªÙÙÙ',
+ items: [
+ {
+ name: 'ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù تÛÚ¾Ø±ÙØ±',
+ legend: '${toolbarFocus} Ø¨ÛØ³ÙÙØ³Ø§ ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§ÙÙØ§ ÙÛØªÛÙÙÛÙØ¯ÛØ TAB ÙØ§ÙÙ SHIFT+TAB ئارÙÙÙÙÙ ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù Ú¯ÛØ±ÛÙ¾Ù¾ÙØ³Ù تاÙÙÙÙÙØ¯ÛØ Ø¦ÙÚ Ø³ÙÙ ÙØ§ ئÙÙØªØ§ تÙÙ¾ÚØ§ تاÙÙÙÙÙØ¯ÛØ Ø¨ÙØ´ÙÛÙ ÙØ§ÙÙ Enter ÙÛÙÛÙ¾ÙÙØ³Ùدا تاÙÙØ§Ùغا٠تÙÙ¾ÚÙÙÙ ÙÙÙÙÙÙÙØ¯Û.'
+ },
+
+ {
+ name: 'تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ Ø³ÛØ²ÙÛØ´ÙÛØ³Ù',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ ØªÙÙ Ù
ÛÚ¾ÙØª ØªÙØ²ÙÙ
ÙÙÙÙ',
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ ØªÙØ²ÙÙ
Ù',
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ Ø¦ÛÙÛÙ
ÛÙØª ÙÙÙ Ø¨Ø§ÙØ¯Ø§Ù',
+ legend: '${elementsPathFocus} Ø¨ÛØ³ÙÙØ³Ø§ ئÛÙÛÙ
ÛÙØª ÙÙÙ Ø¨Ø§ÙØ¯Ø§ÙÙØ§ ÙÛØªÛÙÙÛÙØ¯ÛØ TAB ÙØ§Ù٠ئÙÚ ÙØ§ ئÙÙØªØ§ ÙÛÙÙÙÙ٠ئÛÙÛÙ
ÛÙØª تاÙÙÙÙÙØ¯ÛØ SHIFT+TAB ÙØ§Ù٠سÙÙ ÙØ§ ئÙÙØªØ§ Ø¦Ø§ÙØ¯ÙÙÙ٠ئÛÙÛÙ
ÛÙØª تاÙÙÙÙÙØ¯ÛØ Ø¨ÙØ´ÙÛÙ ÙØ§ÙÙ Enter ÙÛÙÛÙ¾ÙÙØ³Ùدا تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚØªÙÙ٠ئÛÙÛÙ
ÛÙØª تاÙÙÙÙÙØ¯Û.'
+ }
+ ]
+ },
+ {
+ name: 'بÛÙØ±ÛÙ',
+ items: [
+ {
+ name: 'بÛÙØ±ÛÙØªÙÙ ÙÛÙÙÛØ§Ù',
+ legend: '${undo} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: 'ÙØ§ÙتÙÙØ§Ø´ بÛÙØ±ÛÙÙ',
+ legend: '${redo} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: 'تÙÙ
ÙÙØªÙØ´ بÛÙØ±ÛÙÙ',
+ legend: '${bold} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: 'ÙØ§ÙØªÛ Ø¨ÛÙØ±ÛÙÙ',
+ legend: '${italic} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: 'Ø¦Ø§Ø³ØªÙ Ø³ÙØ²Ù٠بÛÙØ±ÛÙÙ',
+ legend: '${underline} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: 'ئÛÙØ§ÙÙ
ا بÛÙØ±ÛÙÙ',
+ legend: '${link} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: 'ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù ÙØ§ØªÙاش بÛÙØ±ÛÙÙ',
+ legend: '${toolbarCollapse} ÙÙ Ø¨ÛØ³ÙÚ'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: 'ØªÙØ³Ø§ÙØºÛØ³Ùز ÙØ§ÙÙÚ¾Û ÚÛØ´ÛÙØ¯ÛØ±ÛØ´Ù',
+ legend: '${a11yHelp} ÙÙ Ø¨ÛØ³ÙÚ'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
new file mode 100644
index 0000000..391ead1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'uk', {
+ title: 'Accessibility Instructions', // MISSING
+ contents: 'Help Contents. To close this dialog press ESC.', // MISSING
+ legend: [
+ {
+ name: 'ÐÑновне',
+ items: [
+ {
+ name: 'Editor Toolbar', // MISSING
+ legend: 'Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.' // MISSING
+ },
+
+ {
+ name: 'Editor Dialog', // MISSING
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Editor Context Menu', // MISSING
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
new file mode 100644
index 0000000..4e30b98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'vi', {
+ title: 'Accessibility Instructions',
+ contents: 'Ná»i dung Há» trợ. Nhấn ESC Äá» Äóng há»p thoại.',
+ legend: [
+ {
+ name: 'Chung',
+ items: [
+ {
+ name: 'Thanh công cụ soạn th',
+ legend: 'Nhấn ${toolbarFocus} Äá» Äiá»u hưá»ng Äến thanh công cụ. Nhấn TAB và SHIFT-TAB Äá» chuyá»n Äến nhóm thanh công cụ khác. Nhấn MŨI TÃN PHẢI hoặc MŨI TÃN TRÃI Äá» chuyá»n sang nút khác trên thanh công cụ. Nhấn PHÃM CÃCH hoặc ENTER Äá» kÃch hoạt nút trên thanh công c.'
+ },
+
+ {
+ name: 'Há»p thoại Biên t',
+ legend: 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.' // MISSING
+ },
+
+ {
+ name: 'Trình ÄÆ¡n Ngữ cảnh cBá» soạn thảo',
+ legend: 'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.' // MISSING
+ },
+
+ {
+ name: 'Editor List Box', // MISSING
+ legend: 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.' // MISSING
+ },
+
+ {
+ name: 'Editor Element Path Bar', // MISSING
+ legend: 'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.' // MISSING
+ }
+ ]
+ },
+ {
+ name: 'Commands', // MISSING
+ items: [
+ {
+ name: ' Undo command', // MISSING
+ legend: 'Press ${undo}' // MISSING
+ },
+ {
+ name: ' Redo command', // MISSING
+ legend: 'Press ${redo}' // MISSING
+ },
+ {
+ name: ' Bold command', // MISSING
+ legend: 'Press ${bold}' // MISSING
+ },
+ {
+ name: ' Italic command', // MISSING
+ legend: 'Press ${italic}' // MISSING
+ },
+ {
+ name: ' Underline command', // MISSING
+ legend: 'Press ${underline}' // MISSING
+ },
+ {
+ name: ' Link command', // MISSING
+ legend: 'Press ${link}' // MISSING
+ },
+ {
+ name: ' Toolbar Collapse command', // MISSING
+ legend: 'Press ${toolbarCollapse}' // MISSING
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Accessibility Help', // MISSING
+ legend: 'Press ${a11yHelp}' // MISSING
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
new file mode 100644
index 0000000..ca65220
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js
@@ -0,0 +1,85 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'a11yhelp', 'zh-cn', {
+ title: 'è¾
å©è¯´æ',
+ contents: '帮å©å
容ãè¦å
³éæ¤å¯¹è¯æ¡è¯·æ ESC é®ã',
+ legend: [
+ {
+ name: '常è§',
+ items: [
+ {
+ name: 'ç¼è¾å¨å·¥å
·æ ',
+ legend: 'æ ${toolbarFocus} 导èªå°å·¥å
·æ ï¼ä½¿ç¨ TAB 鮿 SHIFT+TAB ç»åé®éæ©å·¥å
·æ ç»ï¼ä½¿ç¨å·¦å³ç®å¤´é®éæ©æé®ï¼æç©ºæ ¼é®æå车é®ä»¥åºç¨éä¸çæé®ã'
+ },
+
+ {
+ name: 'ç¼è¾å¨å¯¹è¯æ¡',
+ legend: 'å¨å¯¹è¯æ¡å
ï¼TAB é®ç§»å¨å°ä¸ä¸ä¸ªå段ï¼SHIFT + TAB ç»åé®ç§»å¨å°ä¸ä¸ä¸ªå段ï¼ENTER é®æäº¤å¯¹è¯æ¡ï¼ESC é®åæ¶å¯¹è¯æ¡ãå¯¹äºæå¤æ ç¾çå¯¹è¯æ¡ï¼ç¨ALT + F10æ¥ç§»å°æ ç¾å表ãç¶åç¨ TAB 鮿è
åå³ç®å¤´æ¥ç§»å¨å°ä¸ä¸ä¸ªæ ç¾ï¼SHIFT + TAB ç»å鮿è
åå·¦ç®å¤´ç§»å¨å°ä¸ä¸ä¸ªæ ç¾ãç¨ SPACE 鮿è
ENTER é®éæ©æ ç¾ã'
+ },
+
+ {
+ name: 'ç¼è¾å¨ä¸ä¸æèå',
+ legend: 'ç¨ ${contextMenu}æè
åºç¨ç¨åºé® æå¼ä¸ä¸æèåãç¶åç¨ TAB 鮿è
ä¸ç®å¤´é®æ¥ç§»å¨å°ä¸ä¸ä¸ªèå项ï¼SHIFT + TAB ç»å鮿è
ä¸ç®å¤´é®ç§»å¨å°ä¸ä¸ä¸ªèå项ãç¨ SPACE 鮿è
ENTER é®éæ©èå项ãç¨ SPACE é®ï¼ENTER 鮿è
å³ç®å¤´é®æå¼åèåãè¿åèåç¨ ESC 鮿è
å·¦ç®å¤´é®ãç¨ ESC é®å
³éä¸ä¸æèåã'
+ },
+
+ {
+ name: 'ç¼è¾å¨å表æ¡',
+ legend: 'å¨å表æ¡ä¸ï¼ç§»å°ä¸ä¸åè¡¨é¡¹ç¨ TAB 鮿è
ä¸ç®å¤´é®ãç§»å°ä¸ä¸å表项ç¨SHIFT + TAB ç»å鮿è
ä¸ç®å¤´é®ï¼ç¨ SPACE 鮿è
ENTER é®éæ©å表项ãç¨ ESC 鮿¶èµ·å表æ¡ã'
+ },
+
+ {
+ name: 'ç¼è¾å¨å
ç´ è·¯å¾æ ',
+ legend: 'æ ${elementsPathFocus} 以导èªå°å
ç´ è·¯å¾æ ï¼ä½¿ç¨ TAB 鮿å³ç®å¤´é®éæ©ä¸ä¸ä¸ªå
ç´ ï¼ä½¿ç¨ SHIFT+TAB ç»å鮿左ç®å¤´é®éæ©ä¸ä¸ä¸ªå
ç´ ï¼æç©ºæ ¼é®æå车é®ä»¥éå®ç¼è¾å¨éçå
ç´ ã'
+ }
+ ]
+ },
+ {
+ name: 'å½ä»¤',
+ items: [
+ {
+ name: ' æ¤æ¶å½ä»¤',
+ legend: 'æ ${undo}'
+ },
+ {
+ name: ' éåå½ä»¤',
+ legend: 'æ ${redo}'
+ },
+ {
+ name: ' å ç²å½ä»¤',
+ legend: 'æ ${bold}'
+ },
+ {
+ name: ' 徿å½ä»¤',
+ legend: 'æ ${italic}'
+ },
+ {
+ name: ' ä¸å线å½ä»¤',
+ legend: 'æ ${underline}'
+ },
+ {
+ name: ' 龿¥å½ä»¤',
+ legend: 'æ ${link}'
+ },
+ {
+ name: ' å·¥å
·æ æå å½ä»¤',
+ legend: 'æ ${toolbarCollapse}'
+ },
+ {
+ name: ' Access previous focus space command', // MISSING
+ legend: 'Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' Access next focus space command', // MISSING
+ legend: 'Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces.' // MISSING
+ },
+ {
+ name: ' æ éç¢è®¾è®¡è¯´æ',
+ legend: 'æ ${a11yHelp}'
+ }
+ ]
+ }
+ ]
+});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/lang/en.js b/devel/third-party/ckeditor/plugins/a11yhelp/lang/en.js
deleted file mode 100644
index b01885a..0000000
--- a/devel/third-party/ckeditor/plugins/a11yhelp/lang/en.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang( 'a11yhelp', 'en',
-{
- accessibilityHelp :
- {
- title : 'Accessibility Instructions',
- contents : 'Help Contents. To close this dialog press ESC.',
- legend :
- [
- {
- name : 'General',
- items :
- [
- {
- name : 'Editor Toolbar',
- legend:
- 'Press ${toolbarFocus} to navigate to the toolbar. ' +
- 'Move to next toolbar button with TAB or RIGHT ARROW. ' +
- 'Move to previous button with SHIFT+TAB or LEFT ARROW. ' +
- 'Press SPACE or ENTER to activate the toolbar button.'
- },
-
- {
- name : 'Editor Dialog',
- legend :
- 'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. ' +
- 'For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. ' +
- 'Then move to next tab with TAB OR RIGTH ARROW. ' +
- 'Move to previous tab with SHIFT + TAB or LEFT ARROW. ' +
- 'Press SPACE or ENTER to select the tab page.'
- },
-
- {
- name : 'Editor Context Menu',
- legend :
- 'Press ${contextMenu} or APPLICATION KEY to open context-menu. ' +
- 'Then move to next menu option with TAB or DOWN ARROW. ' +
- 'Move to previous option with SHIFT+TAB or UP ARROW. ' +
- 'Press SPACE or ENTER to select the menu option. ' +
- 'Open sub-menu of current option wtih SPACE or ENTER or RIGHT ARROW. ' +
- 'Go back to parent menu item with ESC or LEFT ARROW. ' +
- 'Close context menu with ESC.'
- },
-
- {
- name : 'Editor List Box',
- legend :
- 'Inside a list-box, move to next list item with TAB OR DOWN ARROW. ' +
- 'Move to previous list item with SHIFT + TAB or UP ARROW. ' +
- 'Press SPACE or ENTER to select the list option. ' +
- 'Press ESC to close the list-box.'
- },
-
- {
- name : 'Editor Element Path Bar',
- legend :
- 'Press ${elementsPathFocus} to navigate to the elements path bar. ' +
- 'Move to next element button with TAB or RIGHT ARROW. ' +
- 'Move to previous button with SHIFT+TAB or LEFT ARROW. ' +
- 'Press SPACE or ENTER to select the element in editor.'
- }
- ]
- },
- {
- name : 'Commands',
- items :
- [
- {
- name : ' Undo command',
- legend : 'Press ${undo}'
- },
- {
- name : ' Redo command',
- legend : 'Press ${redo}'
- },
- {
- name : ' Bold command',
- legend : 'Press ${bold}'
- },
- {
- name : ' Italic command',
- legend : 'Press ${italic}'
- },
- {
- name : ' Underline command',
- legend : 'Press ${underline}'
- },
- {
- name : ' Link command',
- legend : 'Press ${link}'
- },
- {
- name : ' Toolbar Collapse command',
- legend : 'Press ${toolbarCollapse}'
- },
- {
- name : ' Accessibility Help',
- legend : 'Press ${a11yHelp}'
- }
- ]
- }
- ]
- }
-});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/lang/he.js b/devel/third-party/ckeditor/plugins/a11yhelp/lang/he.js
deleted file mode 100644
index 7f53639..0000000
--- a/devel/third-party/ckeditor/plugins/a11yhelp/lang/he.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang( 'a11yhelp', 'he',
-{
- accessibilityHelp :
- {
- title : '××ר××ת × ××ש×ת',
- contents : '××ר××ת × ××ש×ת. ×ס×××¨× ×××¥ ×סק××פ (ESC).',
- legend :
- [
- {
- name : '××××',
- items :
- [
- {
- name : 'סר×× ×××××',
- legend:
- '×××¥ ×¢× ${toolbarFocus} ××× ×× ××× ×סר×× ×××××. ' +
- '×¢××ר ××פת×ר ××× ×¢× ×קש ×××× (TAB) ×× ××¥ ש××××. ' +
- '×¢××ר ××פת×ר ××§××× ×¢× ×קש ×ש××¤× (SHIFT) + ××× (TAB) ×× ××¥ ××× ×. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××פע×× ×ת ××פת×ר ×× ××ר.'
- },
-
- {
- name : '×××××××× (×××× ×ת תש×××)',
- legend :
- '×ת×× ××××××, ×××¥ ××× (TAB) ××× ×× ××× ×ש×× ×××, ×××¥ ש××¤× (SHIFT) + ××× (TAB) ××× ×× ××× ×ש×× ××§×××, ×××¥ ×× ×ר (ENTER) ××× ×ש××× ×ת ×××××××, ×××¥ ×סק××פ (ESC) ××× ××××. ' +
- '×ת×× ×××××××× ××¢×× ×ספר ××××× (×ש×× ××ת), ×××¥ ××× (ALT) + F10 ××× ×× ××× ×ש×רת ××××××. ' +
- '× ××× ×××× ××× ×¢× ××× (TAB) ×× ××¥ ש××××. ' +
- '×¢××ר ×××× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××× ×¡ ××××.'
- },
-
- {
- name : 'תפר×× ××קשר (Context Menu)',
- legend :
- '×××¥ ${contextMenu} ×× APPLICATION KEY××× ×פת×× ×ת תפר×× ××קשר. ' +
- '×¢××ר ××פשר×ת ×××× ×¢× ××× (TAB) ×× ××¥ ××××. ' +
- '×¢××ר ××פשר×ת ××§×××ת ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ×××¢××. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××פשר×ת. ' +
- '×¤×ª× ×ת תת ×תפר×× (Sub-menu) ×©× ××פשר×ת ×× ××××ת ×¢× ×¨××× ×× ×× ×ר (ENTER) ×× ××¥ ש××××. ' +
- '×××ר ×תפר×× ××× ×¢× ×סק××פ (ESC) ×× ××¥ ש××××. ' +
- 'ס××ר ×ת תפר×× ××קשר ×¢× ×סק××פ (ESC).'
- },
-
- {
- name : 'תפר×××× ×¦×¤×× (List boxes)',
- legend :
- '×ת×× ×ª×¤×¨×× ×¦×£, ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××××. ' +
- '×¢××ר ×תפר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) or ××¥ ×¢××××. ' +
- 'Press SPACE or ENTER to select the list option. ' +
- 'Press ESC to close the list-box.'
- },
-
- {
- name : '×¢×¥ ×××× ××× (Elements Path)',
- legend :
- '×××¥ ${elementsPathFocus} ××× ×× ××× ××¢×¥ ××××× ×××. ' +
- '×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××× ×. ' +
- '×¢××ר ×פר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××××× × ××¢×ר×.'
- }
- ]
- },
- {
- name : 'פק×××ת',
- items :
- [
- {
- name : ' ××××× ×¦×¢× ××ר××',
- legend : '×××¥ ${undo}'
- },
- {
- name : ' ×××¨× ×¢× ×¦×¢× ××ר××',
- legend : '×××¥ ${redo}'
- },
- {
- name : ' ×××ש×',
- legend : '×××¥ ${bold}'
- },
- {
- name : ' ×××××',
- legend : '×××¥ ${italic}'
- },
- {
- name : ' ××ספת ×§× ×ª×ת××',
- legend : '×××¥ ${underline}'
- },
- {
- name : ' ××ספת ××× ×§',
- legend : '×××¥ ${link}'
- },
- {
- name : ' ×××××¥ סר×× ×××××',
- legend : '×××¥ ${toolbarCollapse}'
- },
- {
- name : ' ××ר××ת × ××ש×ת',
- legend : '×××¥ ${a11yHelp}'
- }
- ]
- }
- ]
- }
-});
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang( 'a11yhelp', 'he',
-{
- accessibilityHelp :
- {
- title : '××ר××ת × ××ש×ת',
- contents : '××ר××ת × ××ש×ת. ×ס×××¨× ×××¥ ×סק××פ (ESC).',
- legend :
- [
- {
- name : '××××',
- items :
- [
- {
- name : 'סר×× ×××××',
- legend:
- '×××¥ ×¢× ${toolbarFocus} ××× ×× ××× ×סר×× ×××××. ' +
- '×¢××ר ××פת×ר ××× ×¢× ×קש ×××× (TAB) ×× ××¥ ש××××. ' +
- '×¢××ר ××פת×ר ××§××× ×¢× ×קש ×ש××¤× (SHIFT) + ××× (TAB) ×× ××¥ ××× ×. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××פע×× ×ת ××פת×ר ×× ××ר.'
- },
-
- {
- name : '×××××××× (×××× ×ת תש×××)',
- legend :
- '×ת×× ××××××, ×××¥ ××× (TAB) ××× ×× ××× ×ש×× ×××, ×××¥ ש××¤× (SHIFT) + ××× (TAB) ××× ×× ××× ×ש×× ××§×××, ×××¥ ×× ×ר (ENTER) ××× ×ש××× ×ת ×××××××, ×××¥ ×סק××פ (ESC) ××× ××××. ' +
- '×ת×× ×××××××× ××¢×× ×ספר ××××× (×ש×× ××ת), ×××¥ ××× (ALT) + F10 ××× ×× ××× ×ש×רת ××××××. ' +
- '× ××× ×××× ××× ×¢× ××× (TAB) ×× ××¥ ש××××. ' +
- '×¢××ר ×××× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××× ×¡ ××××.'
- },
-
- {
- name : 'תפר×× ××קשר (Context Menu)',
- legend :
- '×××¥ ${contextMenu} ×× APPLICATION KEY××× ×פת×× ×ת תפר×× ××קשר. ' +
- '×¢××ר ××פשר×ת ×××× ×¢× ××× (TAB) ×× ××¥ ××××. ' +
- '×¢××ר ××פשר×ת ××§×××ת ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ×××¢××. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××פשר×ת. ' +
- '×¤×ª× ×ת תת ×תפר×× (Sub-menu) ×©× ××פשר×ת ×× ××××ת ×¢× ×¨××× ×× ×× ×ר (ENTER) ×× ××¥ ש××××. ' +
- '×××ר ×תפר×× ××× ×¢× ×סק××פ (ESC) ×× ××¥ ש××××. ' +
- 'ס××ר ×ת תפר×× ××קשר ×¢× ×סק××פ (ESC).'
- },
-
- {
- name : 'תפר×××× ×¦×¤×× (List boxes)',
- legend :
- '×ת×× ×ª×¤×¨×× ×¦×£, ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××××. ' +
- '×¢××ר ×תפר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) or ××¥ ×¢××××. ' +
- 'Press SPACE or ENTER to select the list option. ' +
- 'Press ESC to close the list-box.'
- },
-
- {
- name : '×¢×¥ ×××× ××× (Elements Path)',
- legend :
- '×××¥ ${elementsPathFocus} ××× ×× ××× ××¢×¥ ××××× ×××. ' +
- '×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××× ×. ' +
- '×¢××ר ×פר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ' +
- '×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××××× × ××¢×ר×.'
- }
- ]
- },
- {
- name : 'פק×××ת',
- items :
- [
- {
- name : ' ××××× ×¦×¢× ××ר××',
- legend : '×××¥ ${undo}'
- },
- {
- name : ' ×××¨× ×¢× ×¦×¢× ××ר××',
- legend : '×××¥ ${redo}'
- },
- {
- name : ' ×××ש×',
- legend : '×××¥ ${bold}'
- },
- {
- name : ' ×××××',
- legend : '×××¥ ${italic}'
- },
- {
- name : ' ××ספת ×§× ×ª×ת××',
- legend : '×××¥ ${underline}'
- },
- {
- name : ' ××ספת ××× ×§',
- legend : '×××¥ ${link}'
- },
- {
- name : ' ×××××¥ סר×× ×××××',
- legend : '×××¥ ${toolbarCollapse}'
- },
- {
- name : ' ××ר××ת × ××ש×ת',
- legend : '×××¥ ${a11yHelp}'
- }
- ]
- }
- ]
- }
-});
diff --git a/devel/third-party/ckeditor/plugins/a11yhelp/plugin.js b/devel/third-party/ckeditor/plugins/a11yhelp/plugin.js
index 293bab3..467908a 100644
--- a/devel/third-party/ckeditor/plugins/a11yhelp/plugin.js
+++ b/devel/third-party/ckeditor/plugins/a11yhelp/plugin.js
@@ -1,45 +1,44 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview Plugin definition for the a11yhelp, which provides a dialog
* with accessibility related help.
*/
-(function()
-{
+(function() {
var pluginName = 'a11yhelp',
commandName = 'a11yHelp';
- CKEDITOR.plugins.add( pluginName,
- {
+ CKEDITOR.plugins.add( pluginName, {
+ requires: 'dialog',
+
// List of available localizations.
- availableLangs : { en:1, he:1 },
+ availableLangs: { en:1,ar:1,bg:1,ca:1,et:1,cs:1,cy:1,da:1,de:1,el:1,eo:1,es:1,fa:1,fi:1,fr:1,gu:1,he:1,hi:1,hr:1,hu:1,it:1,ja:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,'pt-br':1,ro:1,ru:1,sk:1,sl:1,sv:1,tr:1,ug:1,uk:1,vi:1,'zh-cn':1 },
- init : function( editor )
- {
+ init: function( editor ) {
var plugin = this;
- editor.addCommand( commandName,
- {
- exec : function()
- {
- var langCode = editor.langCode;
- langCode = plugin.availableLangs[ langCode ] ? langCode : 'en';
+ editor.addCommand( commandName, {
+ exec: function() {
+ var langCode = editor.langCode;
+ langCode =
+ plugin.availableLangs[ langCode ] ? langCode :
+ plugin.availableLangs[ langCode.replace( /-.*/, '' ) ] ? langCode.replace( /-.*/, '' ) :
+ 'en';
- CKEDITOR.scriptLoader.load(
- CKEDITOR.getUrl( plugin.path + 'lang/' + langCode + '.js' ),
- function()
- {
- CKEDITOR.tools.extend( editor.lang, plugin.lang[ langCode ] );
- editor.openDialog( commandName );
- });
- },
- modes : { wysiwyg:1, source:1 },
- canUndo : false
- });
+ CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( plugin.path + 'dialogs/lang/' + langCode + '.js' ), function() {
+ editor.lang.a11yhelp = plugin.langEntries[ langCode ];
+ editor.openDialog( commandName );
+ });
+ },
+ modes: { wysiwyg:1,source:1 },
+ readOnly: 1,
+ canUndo: false
+ });
+ editor.setKeystroke( CKEDITOR.ALT + 48 /*0*/, 'a11yHelp' );
CKEDITOR.dialog.add( commandName, this.path + 'dialogs/a11yhelp.js' );
}
});
diff --git a/devel/third-party/ckeditor/plugins/about/dialogs/about.js b/devel/third-party/ckeditor/plugins/about/dialogs/about.js
index 509762e..8c1f2e1 100644
--- a/devel/third-party/ckeditor/plugins/about/dialogs/about.js
+++ b/devel/third-party/ckeditor/plugins/about/dialogs/about.js
@@ -1,73 +1,73 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'about', function( editor )
-{
+CKEDITOR.dialog.add( 'about', function( editor ) {
var lang = editor.lang.about;
return {
- title : CKEDITOR.env.ie ? lang.dlgTitle : lang.title,
- minWidth : 390,
- minHeight : 230,
- contents : [
+ title: CKEDITOR.env.ie ? lang.dlgTitle : lang.title,
+ minWidth: 390,
+ minHeight: 230,
+ contents: [
{
- id : 'tab1',
- label : '',
- title : '',
- expand : true,
- padding : 0,
- elements :
- [
- {
- type : 'html',
- html :
- '<style type="text/css">' +
- '.cke_about_container' +
- '{' +
- 'color:#000 !important;' +
- 'padding:10px 10px 0;' +
- 'margin-top:5px' +
- '}' +
- '.cke_about_container p' +
- '{' +
- 'margin: 0 0 10px;' +
- '}' +
- '.cke_about_container .cke_about_logo' +
- '{' +
- 'height:81px;' +
- 'background-color:#fff;' +
- 'background-image:url(' + CKEDITOR.plugins.get( 'about' ).path + 'dialogs/logo_ckeditor.png);' +
- 'background-position:center; ' +
- 'background-repeat:no-repeat;' +
- 'margin-bottom:10px;' +
- '}' +
- '.cke_about_container a' +
- '{' +
- 'cursor:pointer !important;' +
- 'color:blue !important;' +
- 'text-decoration:underline !important;' +
- '}' +
- '</style>' +
- '<div class="cke_about_container">' +
- '<div class="cke_about_logo"></div>' +
- '<p>' +
- 'CKEditor ' + CKEDITOR.version + ' (revision ' + CKEDITOR.revision + ')<br>' +
- '<a href="http://ckeditor.com/">http://ckeditor.com</a>' +
- '</p>' +
- '<p>' +
- lang.moreInfo + '<br>' +
- '<a href="http://ckeditor.com/license">http://ckeditor.com/license</a>' +
- '</p>' +
- '<p>' +
- lang.copy.replace( '$1', '<a href="http://cksource.com/">CKSource</a> - Frederico Knabben' ) +
- '</p>' +
- '</div>'
- }
- ]
+ id: 'tab1',
+ label: '',
+ title: '',
+ expand: true,
+ padding: 0,
+ elements: [
+ {
+ type: 'html',
+ html: '<style type="text/css">' +
+ '.cke_about_container' +
+ '{' +
+ 'color:#000 !important;' +
+ 'padding:10px 10px 0;' +
+ 'margin-top:5px' +
+ '}' +
+ '.cke_about_container p' +
+ '{' +
+ 'margin: 0 0 10px;' +
+ '}' +
+ '.cke_about_container .cke_about_logo' +
+ '{' +
+ 'height:81px;' +
+ 'background-color:#fff;' +
+ 'background-image:url(' + CKEDITOR.plugins.get( 'about' ).path + 'dialogs/logo_ckeditor.png);' +
+ 'background-position:center; ' +
+ 'background-repeat:no-repeat;' +
+ 'margin-bottom:10px;' +
+ '}' +
+ '.cke_about_container a' +
+ '{' +
+ 'cursor:pointer !important;' +
+ 'color:#00B2CE !important;' +
+ 'text-decoration:underline !important;' +
+ '}' +
+ '</style>' +
+ '<div class="cke_about_container">' +
+ '<div class="cke_about_logo"></div>' +
+ '<p>' +
+ 'CKEditor ' + CKEDITOR.version + ' (revision ' + CKEDITOR.revision + ')<br>' +
+ '<a href="http://ckeditor.com/">http://ckeditor.com</a>' +
+ '</p>' +
+ '<p>' +
+ lang.help.replace( '$1', '<a href="http://docs.ckeditor.com/user">' + lang.userGuide + '</a>' ) +
+ '</p>' +
+ '<p>' +
+ lang.moreInfo + '<br>' +
+ '<a href="http://ckeditor.com/about/license">http://ckeditor.com/about/license</a>' +
+ '</p>' +
+ '<p>' +
+ lang.copy.replace( '$1', '<a href="http://cksource.com/">CKSource</a> - Frederico Knabben' ) +
+ '</p>' +
+ '</div>'
}
+ ]
+ }
],
- buttons : [ CKEDITOR.dialog.cancelButton ]
+ buttons: [ CKEDITOR.dialog.cancelButton ]
};
-} );
+});
diff --git a/devel/third-party/ckeditor/plugins/about/dialogs/logo_ckeditor.png b/devel/third-party/ckeditor/plugins/about/dialogs/logo_ckeditor.png
new file mode 100644
index 0000000..ad01902
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/about/dialogs/logo_ckeditor.png differ
diff --git a/devel/third-party/ckeditor/plugins/about/icons/about.png b/devel/third-party/ckeditor/plugins/about/icons/about.png
new file mode 100644
index 0000000..621298a
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/about/icons/about.png differ
diff --git a/devel/third-party/ckeditor/plugins/about/lang/af.js b/devel/third-party/ckeditor/plugins/about/lang/af.js
new file mode 100644
index 0000000..5684ae1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/af.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'af', {
+ copy: 'Kopiereg © $1. Alle regte voorbehou.',
+ dlgTitle: 'Info oor CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'Vir lisensie-informasie, besoek asb. ons webwerf:',
+ title: 'Info oor CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ar.js b/devel/third-party/ckeditor/plugins/about/lang/ar.js
new file mode 100644
index 0000000..9714bc5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ar.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ar', {
+ copy: 'ØÙÙ٠اÙÙØ´Ø± © $1. جÙ
ÙØ¹ Ø§ÙØÙÙÙ Ù
ØÙÙØ¸Ø©.',
+ dlgTitle: 'ع٠CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'ÙÙØØµÙ٠عÙÙ Ù
عÙÙÙ
ات Ø§ÙØªØ±Ø®Ùص Ø ÙØ±Ø¬Ù Ø²ÙØ§Ø±Ø© Ù
ÙÙØ¹Ùا عÙÙ Ø´Ø¨ÙØ© Ø§ÙØ§ÙØªØ±ÙØª:',
+ title: 'ع٠CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/bg.js b/devel/third-party/ckeditor/plugins/about/lang/bg.js
new file mode 100644
index 0000000..afaf9ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/bg.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'bg', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'ÐÑноÑно CKEditor',
+ help: 'ÐÑовеÑеÑе $1 за помоÑ.',
+ moreInfo: 'Ðа лиÑензионна инÑоÑмаÑÐ¸Ñ Ð¼Ð¾Ð»Ñ Ð¿Ð¾ÑеÑеÑе ÑайÑа ни:',
+ title: 'ÐÑноÑно CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/bn.js b/devel/third-party/ckeditor/plugins/about/lang/bn.js
new file mode 100644
index 0000000..4dee9eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/bn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'bn', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/bs.js b/devel/third-party/ckeditor/plugins/about/lang/bs.js
new file mode 100644
index 0000000..1f3ecc9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/bs.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'bs', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ca.js b/devel/third-party/ckeditor/plugins/about/lang/ca.js
new file mode 100644
index 0000000..1d23fd7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ca', {
+ copy: 'Copyright © $1. Tots els drets reservats.',
+ dlgTitle: 'Quant al CKEditor',
+ help: 'Premeu $1 per obtenir ajuda.',
+ moreInfo: 'Per informació sobre llicències visiteu el web:',
+ title: 'Quant al CKEditor',
+ userGuide: 'Manual d\'usuari de CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/cs.js b/devel/third-party/ckeditor/plugins/about/lang/cs.js
new file mode 100644
index 0000000..1fa354f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/cs.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'cs', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'O aplikaci CKEditor',
+ help: 'ProhlédnÄte si $1 pro nápovÄdu.',
+ moreInfo: 'Pro informace o lincenci navštivte naši webovou stránku:',
+ title: 'O aplikaci CKEditor',
+ userGuide: 'Uživatelská pÅÃruÄka CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/cy.js b/devel/third-party/ckeditor/plugins/about/lang/cy.js
new file mode 100644
index 0000000..145c790
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/cy.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'cy', {
+ copy: 'Hawlfraint © $1. Cedwir pob hawl.',
+ dlgTitle: 'Ynghylch CKEditor',
+ help: 'Gwirio $1 am gymorth.',
+ moreInfo: 'Am wybodaeth ynghylch trwyddedau, ewch i\'n gwefan:',
+ title: 'Ynghylch CKEditor',
+ userGuide: 'Canllawiau Defnyddiwr CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/da.js b/devel/third-party/ckeditor/plugins/about/lang/da.js
new file mode 100644
index 0000000..53a4556
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/da.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'da', {
+ copy: 'Copyright © $1. Alle rettigheder forbeholdes.',
+ dlgTitle: 'Om CKEditor',
+ help: 'Se $1 for at få hjælp.',
+ moreInfo: 'For informationer omkring licens, se venligst vores hjemmeside (på engelsk):',
+ title: 'Om CKEditor',
+ userGuide: 'CKEditor-brugermanual'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/de.js b/devel/third-party/ckeditor/plugins/about/lang/de.js
new file mode 100644
index 0000000..a8867fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/de.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'de', {
+ copy: 'Copyright © $1. Alle Rechte vorbehalten.',
+ dlgTitle: 'Ãber CKEditor',
+ help: 'Prüfe $1 für Hilfe.',
+ moreInfo: 'Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:',
+ title: 'Ãber CKEditor',
+ userGuide: 'CKEditor Benutzerhandbuch'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/el.js b/devel/third-party/ckeditor/plugins/about/lang/el.js
new file mode 100644
index 0000000..d868e6b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/el.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'el', {
+ copy: 'ΠνεÏ
μαÏικά δικαιÏμαÏα © $1 Îε εÏιÏÏλαξη ÏανÏÏÏ Î´Î¹ÎºÎ±Î¹ÏμαÏοÏ.',
+ dlgTitle: 'ΠεÏί ÏοÏ
CKEditor',
+ help: 'ÎλÎγξÏε Ïο $1 για βοήθεια.',
+ moreInfo: 'Îια ÏληÏοÏοÏÎ¯ÎµÏ Î±Î´ÎµÎ¹Ïν ÏαÏακαλοÏμε εÏιÏκεÏθείÏε Ïην ιÏÏοÏελίδα μαÏ:',
+ title: 'ΠεÏί ÏοÏ
CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/en-au.js b/devel/third-party/ckeditor/plugins/about/lang/en-au.js
new file mode 100644
index 0000000..85154b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/en-au.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'en-au', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'About CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:',
+ title: 'About CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/en-ca.js b/devel/third-party/ckeditor/plugins/about/lang/en-ca.js
new file mode 100644
index 0000000..79b8916
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/en-ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'en-ca', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'About CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:',
+ title: 'About CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/en-gb.js b/devel/third-party/ckeditor/plugins/about/lang/en-gb.js
new file mode 100644
index 0000000..f545d1c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/en-gb.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'en-gb', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'About CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:',
+ title: 'About CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/en.js b/devel/third-party/ckeditor/plugins/about/lang/en.js
new file mode 100644
index 0000000..9a254e0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/en.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'en', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'About CKEditor',
+ help: 'Check $1 for help.',
+ moreInfo: 'For licensing information please visit our web site:',
+ title: 'About CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/eo.js b/devel/third-party/ckeditor/plugins/about/lang/eo.js
new file mode 100644
index 0000000..f393bda
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/eo.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'eo', {
+ copy: 'Copyright © $1. Äiuj rajtoj rezervitaj.',
+ dlgTitle: 'Pri CKEditor',
+ help: 'Kontroli $1 por helpo.',
+ moreInfo: 'Por informoj pri licenco, bonvolu viziti nian retpaÄaron:',
+ title: 'Pri CKEditor',
+ userGuide: 'CKEditor Uzindikoj'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/es.js b/devel/third-party/ckeditor/plugins/about/lang/es.js
new file mode 100644
index 0000000..307061f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/es.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'es', {
+ copy: 'Copyright © $1. Todos los derechos reservados.',
+ dlgTitle: 'Acerca de CKEditor',
+ help: 'Lea la $1 para resolver sus dudas.',
+ moreInfo: 'Para información de licencia, por favor visite nuestro sitio web:',
+ title: 'Acerca de CKEditor',
+ userGuide: 'GuÃa de usuario de CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/et.js b/devel/third-party/ckeditor/plugins/about/lang/et.js
new file mode 100644
index 0000000..bd152bc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/et.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'et', {
+ copy: 'Copyright © $1. Kõik õigused kaitstud.',
+ dlgTitle: 'CKEditorist',
+ help: 'Abi jaoks vaata $1.',
+ moreInfo: 'Litsentsi andmed leiab meie veebilehelt:',
+ title: 'CKEditorist',
+ userGuide: 'CKEditori kasutusjuhendit'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/eu.js b/devel/third-party/ckeditor/plugins/about/lang/eu.js
new file mode 100644
index 0000000..989b02f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/eu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'eu', {
+ copy: 'Copyright © $1. Eskubide guztiak erreserbaturik.',
+ dlgTitle: 'CKEditor(r)i buruz',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'Lizentziari buruzko informazioa gure webgunean:',
+ title: 'CKEditor(r)i buruz',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/fa.js b/devel/third-party/ckeditor/plugins/about/lang/fa.js
new file mode 100644
index 0000000..7bd04a0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/fa.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'fa', {
+ copy: 'ØÙ ÙØ´Ø± © $1. Ú©ÙÛÙ ØÙÙÙ Ù
ØÙÙØ¸ است.',
+ dlgTitle: 'دربار٠CKEditor',
+ help: 'Ø¨Ø±Ø±Ø³Û $1 Ø¨Ø±Ø§Û Ø±Ø§ÙÙÙ
اÛÛ.',
+ moreInfo: 'Ø¨Ø±Ø§Û Ú©Ø³Ø¨ Ø§Ø·ÙØ§Ø¹Ø§Øª Ù
Ø¬ÙØ² ÙØ·Ùا Ø¨Ù ÙØ¨ Ø³Ø§ÛØª Ù
ا Ù
راجع٠کÙÛØ¯:',
+ title: 'دربار٠CKEditor',
+ userGuide: 'راÙÙÙ
Ø§Û Ú©Ø§Ø±Ø¨Ø±Ø§Ù CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/fi.js b/devel/third-party/ckeditor/plugins/about/lang/fi.js
new file mode 100644
index 0000000..b194641
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/fi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'fi', {
+ copy: 'Copyright © $1. Kaikki oikeuden pidätetään.',
+ dlgTitle: 'Tietoa CKEditorista',
+ help: 'Katso ohjeet: $1.',
+ moreInfo: 'Lisenssitiedot löytyvät kotisivuiltamme:',
+ title: 'Tietoa CKEditorista',
+ userGuide: 'CKEditorin käyttäjäopas'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/fo.js b/devel/third-party/ckeditor/plugins/about/lang/fo.js
new file mode 100644
index 0000000..6373204
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/fo.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'fo', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'Um CKEditor',
+ help: 'Kekka $1 fyri hjálp.',
+ moreInfo: 'Licens upplýsingar finnast á heimasÃðu okkara:',
+ title: 'Um CKEditor',
+ userGuide: 'CKEditor Brúkaravegleiðing'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/about/lang/fr-ca.js
new file mode 100644
index 0000000..8e47340
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/fr-ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'fr-ca', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/fr.js b/devel/third-party/ckeditor/plugins/about/lang/fr.js
new file mode 100644
index 0000000..1249e83
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/fr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'fr', {
+ copy: 'Copyright © $1. Tous droits réservés.',
+ dlgTitle: 'Ã propos de CKEditor',
+ help: 'Consulter $1 pour l\'aide.',
+ moreInfo: 'Pour les informations de licence, veuillez visiter notre site web:',
+ title: 'Ã propos de CKEditor',
+ userGuide: 'Guide de l\'utilisateur CKEditor en anglais'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/gl.js b/devel/third-party/ckeditor/plugins/about/lang/gl.js
new file mode 100644
index 0000000..8f3e521
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/gl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'gl', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/gu.js b/devel/third-party/ckeditor/plugins/about/lang/gu.js
new file mode 100644
index 0000000..2937f72
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/gu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'gu', {
+ copy: 'àªà«àªªà«àª°àª¾àªàª © $1. àªàª² રાàªàªà«àª¸ ',
+ dlgTitle: 'CKEditor વિષà«',
+ help: 'મદદ માàªà« $1 તપાસà«',
+ moreInfo: 'લાયસનસનૠમાહિતૠમાàªà« àª
મારૠવà«àª¬ સાàªàª',
+ title: 'CKEditor વિષà«',
+ userGuide: 'CKEditor યà«àªàª°à«àª¸ àªàª¾àªàª¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/he.js b/devel/third-party/ckeditor/plugins/about/lang/he.js
new file mode 100644
index 0000000..aaa416a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/he.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'he', {
+ copy: 'Copyright © $1. ×× ××××××ת ש××ר×ת.',
+ dlgTitle: '××××ת CKEditor',
+ help: '×××× ×¡× ×$1 ××¢×ר×.',
+ moreInfo: '×××××¢ × ×סף ××§×¨× ×××ª×¨× ×:',
+ title: '××××ת CKEditor',
+ userGuide: '××ר×× ××שת×ש ×©× CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/hi.js b/devel/third-party/ckeditor/plugins/about/lang/hi.js
new file mode 100644
index 0000000..63b98a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/hi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'hi', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/hr.js b/devel/third-party/ckeditor/plugins/about/lang/hr.js
new file mode 100644
index 0000000..f150c84
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/hr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'hr', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'O CKEditoru',
+ help: 'Provjeri $1 za pomoÄ.',
+ moreInfo: 'Za informacije o licencama posjetite našu web stranicu:',
+ title: 'O CKEditoru',
+ userGuide: 'VodiÄ za CKEditor korisnike'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/hu.js b/devel/third-party/ckeditor/plugins/about/lang/hu.js
new file mode 100644
index 0000000..7cae577
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/hu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'hu', {
+ copy: 'Copyright © $1. Minden jog fenntartva.',
+ dlgTitle: 'CKEditor névjegy',
+ help: 'Itt találsz segÃtséget: $1',
+ moreInfo: 'Licenszelési információkért kérjük látogassa meg weboldalunkat:',
+ title: 'CKEditor névjegy',
+ userGuide: 'CKEditor Felhasználói útmutató'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/is.js b/devel/third-party/ckeditor/plugins/about/lang/is.js
new file mode 100644
index 0000000..ba23759
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/is.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'is', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/it.js b/devel/third-party/ckeditor/plugins/about/lang/it.js
new file mode 100644
index 0000000..ae54a97
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/it.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'it', {
+ copy: 'Copyright © $1. Tutti i diritti riservati.',
+ dlgTitle: 'Riguardo CKEditor',
+ help: 'Vedi $1 per l\'aiuto.',
+ moreInfo: 'Per le informazioni sulla licenza si prega di visitare il nostro sito:',
+ title: 'Riguardo CKEditor',
+ userGuide: 'Guida Utente CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ja.js b/devel/third-party/ckeditor/plugins/about/lang/ja.js
new file mode 100644
index 0000000..fb50d07
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ja.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ja', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'CKEditorãã¼ã¸ã§ã³æ
å ±',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'ã©ã¤ã»ã³ã¹æ
å ±ã®è©³ç´°ã¯ã¦ã§ããµã¤ãã«ã¦ç¢ºèªãã¦ãã ãã:',
+ title: 'CKEditorãã¼ã¸ã§ã³æ
å ±',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ka.js b/devel/third-party/ckeditor/plugins/about/lang/ka.js
new file mode 100644
index 0000000..7af251f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ka.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ka', {
+ copy: 'Copyright © $1. á§áááá á£á¤áááá áááªá£ááá.',
+ dlgTitle: 'CKEditor-áá¡ á¨áá¡áá®áá',
+ help: 'ááá®ááá áááá¡áááá¡ áá®áááá $1.',
+ moreInfo: 'áááªáááááá¡ ááá¤áá áááªááá¡áááá¡ áá¬áááá á©áááá¡ á¡ááá¢á¡:',
+ title: 'CKEditor-áá¡ á¨áá¡áá®áá',
+ userGuide: 'CKEditor-áá¡ áááá®ááá ááááá¡ á¡áá®áááá«á¦áááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/km.js b/devel/third-party/ckeditor/plugins/about/lang/km.js
new file mode 100644
index 0000000..b2292aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/km.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'km', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ko.js b/devel/third-party/ckeditor/plugins/about/lang/ko.js
new file mode 100644
index 0000000..b27428f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ko.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ko', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ku.js b/devel/third-party/ckeditor/plugins/about/lang/ku.js
new file mode 100644
index 0000000..015c712
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ku.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ku', {
+ copy: 'Ù
اÙÛ ÙÙØ¨ÙرگرتÙÙÙÙÛ © $1. Ú¯Ø´ØªÛ Ù¾Ø§Ø±ÛØ²Ø±Ø§ÙÙ.',
+ dlgTitle: 'Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ CKEditor',
+ help: 'سÙÛØ±Û $1 Ø¨Ú©Ù Ø¨Û ÛØ§Ø±Ù
ÙØªÛ.',
+ moreInfo: 'Ø¨Û Ø²Ø§ÙÛØ§Ø±Û Ø²ÛØ§ØªØ±Û Ù
ÛÚµÙØª, تکاÛÙ Ø³ÙØ±Ø¯Ø§ÙÛ Ù
اڵپÙÚÙÚ©ÙÙ
ا٠بکÙ:',
+ title: 'Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ CKEditor',
+ userGuide: 'ÚÛÙ¾ÛØ´Ø§ÙØ¯ÙØ±Û CKEditors'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/lt.js b/devel/third-party/ckeditor/plugins/about/lang/lt.js
new file mode 100644
index 0000000..5e74ff8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/lt.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'lt', {
+ copy: 'Copyright © $1. Visos teiss saugomos.',
+ dlgTitle: 'Apie CKEditor',
+ help: 'Patikrinkite $1 dÄl pagalbos.',
+ moreInfo: 'DÄl licencijavimo apsilankykite mÅ«sų svetainÄje:',
+ title: 'Apie CKEditor',
+ userGuide: 'CKEditor Vartotojo Gidas'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/lv.js b/devel/third-party/ckeditor/plugins/about/lang/lv.js
new file mode 100644
index 0000000..57cd675
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/lv.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'lv', {
+ copy: 'KopÄÅ¡anas tiesÄ«bas © $1. Visas tiesÄ«bas rezervÄtas.',
+ dlgTitle: 'Par CKEditor',
+ help: 'PÄrbaudiet $1 palÄ«dzÄ«bai.',
+ moreInfo: 'InformÄcijai par licenzÄÅ¡anu apmeklÄjiet mÅ«su mÄjas lapu:',
+ title: 'Par CKEditor',
+ userGuide: 'CKEditor LietotÄja pamÄcÄ«ba'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/mk.js b/devel/third-party/ckeditor/plugins/about/lang/mk.js
new file mode 100644
index 0000000..4f32c1e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/mk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'mk', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/mn.js b/devel/third-party/ckeditor/plugins/about/lang/mn.js
new file mode 100644
index 0000000..fa4c341
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/mn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'mn', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ms.js b/devel/third-party/ckeditor/plugins/about/lang/ms.js
new file mode 100644
index 0000000..6b37a43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ms.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ms', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/nb.js b/devel/third-party/ckeditor/plugins/about/lang/nb.js
new file mode 100644
index 0000000..f475bc5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/nb.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'nb', {
+ copy: 'Copyright © $1. Alle rettigheter reservert.',
+ dlgTitle: 'Om CKEditor',
+ help: 'Se $1 for hjelp.',
+ moreInfo: 'For lisensieringsinformasjon, vennligst besøk vårt nettsted:',
+ title: 'Om CKEditor',
+ userGuide: 'CKEditors brukerveiledning'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/nl.js b/devel/third-party/ckeditor/plugins/about/lang/nl.js
new file mode 100644
index 0000000..6e0e2ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/nl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'nl', {
+ copy: 'Copyright © $1. Alle rechten voorbehouden.',
+ dlgTitle: 'Over CKEditor',
+ help: 'Bekijk de $1 voor hulp.',
+ moreInfo: 'Voor licentie informatie, bezoek onze website:',
+ title: 'Over CKEditor',
+ userGuide: 'CKEditor gebruiksaanwijzing'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/no.js b/devel/third-party/ckeditor/plugins/about/lang/no.js
new file mode 100644
index 0000000..e2581e9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/no.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'no', {
+ copy: 'Copyright © $1. Alle rettigheter reservert.',
+ dlgTitle: 'Om CKEditor',
+ help: 'Se $1 for hjelp.',
+ moreInfo: 'For lisensieringsinformasjon, vennligst besøk vårt nettsted:',
+ title: 'Om CKEditor',
+ userGuide: 'CKEditors brukerveiledning'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/pl.js b/devel/third-party/ckeditor/plugins/about/lang/pl.js
new file mode 100644
index 0000000..a1e0fa8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/pl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'pl', {
+ copy: 'Copyright © $1. Wszelkie prawa zastrzeżone.',
+ dlgTitle: 'Informacje o programie CKEditor',
+ help: 'Pomoc znajdziesz w $1.',
+ moreInfo: 'Informacje na temat licencji można znaleÅºÄ na naszej stronie:',
+ title: 'Informacje o programie CKEditor',
+ userGuide: 'podrÄczniku użytkownika programu CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/pt-br.js b/devel/third-party/ckeditor/plugins/about/lang/pt-br.js
new file mode 100644
index 0000000..f76858e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/pt-br.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'pt-br', {
+ copy: 'Copyright © $1. Todos os direitos reservados.',
+ dlgTitle: 'Sobre o CKEditor',
+ help: 'Verifique o $1 para obter ajuda.',
+ moreInfo: 'Para informações sobre a licença por favor visite o nosso site:',
+ title: 'Sobre o CKEditor',
+ userGuide: 'Guia do Usuário do CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/pt.js b/devel/third-party/ckeditor/plugins/about/lang/pt.js
new file mode 100644
index 0000000..b64790c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/pt.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'pt', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ro.js b/devel/third-party/ckeditor/plugins/about/lang/ro.js
new file mode 100644
index 0000000..2ebdb7d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ro.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ro', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ru.js b/devel/third-party/ckeditor/plugins/about/lang/ru.js
new file mode 100644
index 0000000..e7ff798
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ru.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ru', {
+ copy: 'Copyright © $1. ÐÑе пÑава заÑиÑенÑ.',
+ dlgTitle: 'Ð CKEditor',
+ help: '$1 ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð´ÑобнÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ иÑполÑзованиÑ.',
+ moreInfo: 'ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о лиÑензии, пожалÑйÑÑа, пеÑейдиÑе на Ð½Ð°Ñ ÑайÑ:',
+ title: 'Ð CKEditor',
+ userGuide: 'Ð ÑководÑÑво полÑзоваÑÐµÐ»Ñ CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/sk.js b/devel/third-party/ckeditor/plugins/about/lang/sk.js
new file mode 100644
index 0000000..bfff21f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/sk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'sk', {
+ copy: 'Copyright © $1. VÅ¡etky práva vyhradené.',
+ dlgTitle: 'O CKEditor-e',
+ help: 'Zaškrtnite $1 pre pomoc.',
+ moreInfo: 'Pre informácie o licenciách, prosÃme, navÅ¡tÃvte naÅ¡u web stránku:',
+ title: 'O CKEditor-e',
+ userGuide: 'PoužÃvateľská prÃruÄka KCEditor-a'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/sl.js b/devel/third-party/ckeditor/plugins/about/lang/sl.js
new file mode 100644
index 0000000..e9ca6f2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/sl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'sl', {
+ copy: 'Copyright © $1. Vse pravice pridržane.',
+ dlgTitle: 'O programu CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'Za informacijo o licenci prostim obiÅ¡Äite naÅ¡o spletno stran:',
+ title: 'O programu CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/about/lang/sr-latn.js
new file mode 100644
index 0000000..4148f1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/sr-latn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'sr-latn', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/sr.js b/devel/third-party/ckeditor/plugins/about/lang/sr.js
new file mode 100644
index 0000000..08e93c2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/sr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'sr', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/sv.js b/devel/third-party/ckeditor/plugins/about/lang/sv.js
new file mode 100644
index 0000000..b72a246
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/sv.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'sv', {
+ copy: 'Copyright © $1. Alla rättigheter reserverade.',
+ dlgTitle: 'Om CKEditor',
+ help: 'Se $1 för hjälp.',
+ moreInfo: 'För information av licenciering besök vår hemsida:',
+ title: 'Om CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/th.js b/devel/third-party/ckeditor/plugins/about/lang/th.js
new file mode 100644
index 0000000..56359f2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/th.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'th', {
+ copy: 'Copyright © $1. All rights reserved.', // MISSING
+ dlgTitle: 'About CKEditor', // MISSING
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: 'For licensing information please visit our web site:', // MISSING
+ title: 'About CKEditor', // MISSING
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/tr.js b/devel/third-party/ckeditor/plugins/about/lang/tr.js
new file mode 100644
index 0000000..d8dd680
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/tr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'tr', {
+ copy: 'Copyright © $1. Tüm hakları saklıdır.',
+ dlgTitle: 'CKEditor Hakkında',
+ help: 'Yardım için $1 kontrol edin.',
+ moreInfo: 'Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:',
+ title: 'CKEditor Hakkında',
+ userGuide: 'CKEditor Kullanıcı Kılavuzu'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/ug.js b/devel/third-party/ckeditor/plugins/about/lang/ug.js
new file mode 100644
index 0000000..ddd684c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/ug.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'ug', {
+ copy: 'Copyright © $1. ÙÛØ´Ø± Ú¾ÙÙÛÙÙØºØ§ ئÙÚ¯Û',
+ dlgTitle: 'CKEditor Ú¾ÛÙÙÙØ¯Û',
+ help: '$1 Ù٠زÙÙØ§Ø±Ûت ÙÙÙÙÙ¾ ÙØ§Ø±Ø¯ÛÙ
Ú¯Û Ø¦ÛØ±ÙØ´ÙÚ',
+ moreInfo: 'ØªÙØ± ØªÛØ±Ø§ÙÙÙ
ÙØ²Ù٠زÙÙØ§Ø±Ûت ÙÙÙÙÙ¾ ÙÛÙÙØ´ÙÙ
Ú¯Û Ø¦Ø§Ø¦ÙØª ØªÛØ®ÙÙ
Û ÙÛÙ¾ ئÛÚÛØ±ØºØ§ Ø¦ÛØ±ÙØ´ÙÚ',
+ title: 'CKEditor Ú¾ÛÙÙÙØ¯Û',
+ userGuide: 'CKEditor Ø¦ÙØ´ÙÛØªÙÛÚÙ ÙÙÙÙØ§ÙÙ
ÙØ³Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/uk.js b/devel/third-party/ckeditor/plugins/about/lang/uk.js
new file mode 100644
index 0000000..930aeb5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/uk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'uk', {
+ copy: 'Copyright © $1. ÐÑÑ Ð¿Ñава заÑÑеÑежено.',
+ dlgTitle: 'ÐÑо CKEditor',
+ help: 'ÐеÑевÑÑÑе $1 Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¸.',
+ moreInfo: 'Щодо ÑнÑоÑмаÑÑÑ Ð· лÑÑензÑÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÑÑайÑе на Ð½Ð°Ñ ÑайÑ:',
+ title: 'ÐÑо CKEditor',
+ userGuide: 'ÐнÑÑÑÑкÑÑÑ ÐоÑиÑÑÑваÑа Ð´Ð»Ñ CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/vi.js b/devel/third-party/ckeditor/plugins/about/lang/vi.js
new file mode 100644
index 0000000..0ed8bda
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/vi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'vi', {
+ copy: 'Bản quyá»n © $1. Giữ toà n quyá»n.',
+ dlgTitle: 'Thông tin vỠCKEditor',
+ help: 'Kiá»m tra $1 Äá» ÄÆ°á»£c giúp Äỡ.',
+ moreInfo: 'Vui lòng ghé thÄm trang web cá»§a chúng tôi Äá» có thông tin vá» giấy phép:',
+ title: 'Thông tin vỠCKEditor',
+ userGuide: 'Hưá»ng dẫn sá» dụng CKEditor'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/about/lang/zh-cn.js
new file mode 100644
index 0000000..fee113f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/zh-cn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'zh-cn', {
+ copy: 'Copyright © $1. çæææã',
+ dlgTitle: 'å
³äºCKEditor',
+ help: 'è¯·è®¿é® $1 以è·å帮å©.',
+ moreInfo: 'è®¿é®æä»¬çç½ç«ä»¥è·åæ´å¤å
³äºåè®®çä¿¡æ¯',
+ title: 'å
³äºCKEditor',
+ userGuide: 'CKEditor ç¨æ·å导'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/lang/zh.js b/devel/third-party/ckeditor/plugins/about/lang/zh.js
new file mode 100644
index 0000000..fe09bc1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/about/lang/zh.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'about', 'zh', {
+ copy: 'Copyright © $1. All rights reserved.',
+ dlgTitle: 'éæ¼ CKEditor',
+ help: 'Check $1 for help.', // MISSING
+ moreInfo: '訪åæåçç¶²ç«ä»¥ç²åæ´å¤éæ¼åè°çä¿¡æ¯',
+ title: 'éæ¼ CKEditor',
+ userGuide: 'CKEditor User\'s Guide'
+});
diff --git a/devel/third-party/ckeditor/plugins/about/plugin.js b/devel/third-party/ckeditor/plugins/about/plugin.js
index 71c172f..706d94f 100644
--- a/devel/third-party/ckeditor/plugins/about/plugin.js
+++ b/devel/third-party/ckeditor/plugins/about/plugin.js
@@ -1,22 +1,23 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.plugins.add( 'about',
-{
- requires : [ 'dialog' ],
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'about', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'about', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
var command = editor.addCommand( 'about', new CKEDITOR.dialogCommand( 'about' ) );
- command.modes = { wysiwyg:1, source:1 };
+ command.modes = { wysiwyg:1,source:1 };
command.canUndo = false;
+ command.readOnly = 1;
- editor.ui.addButton( 'About',
- {
- label : editor.lang.about.title,
- command : 'about'
- });
+ editor.ui.addButton && editor.ui.addButton( 'About', {
+ label: editor.lang.about.title,
+ command: 'about',
+ toolbar: 'about'
+ });
CKEDITOR.dialog.add( 'about', this.path + 'dialogs/about.js' );
}
diff --git a/devel/third-party/ckeditor/plugins/autogrow/plugin.js b/devel/third-party/ckeditor/plugins/autogrow/plugin.js
deleted file mode 100644
index cd3fc3d..0000000
--- a/devel/third-party/ckeditor/plugins/autogrow/plugin.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @file AutoGrow plugin
- */
-(function(){
- var resizeEditor = function( editor )
- {
- var doc = editor.document,
- currentHeight = editor.window.getViewPaneSize().height,
- newHeight;
-
- // We can not use documentElement to calculate the height for IE (#6061).
- if ( CKEDITOR.env.ie )
- newHeight = doc.getBody().$.scrollHeight + 24;
- else
- newHeight = doc.getDocumentElement().$.offsetHeight;
-
- var min = editor.config.autoGrow_minHeight,
- max = editor.config.autoGrow_maxHeight;
- ( min == undefined ) && ( editor.config.autoGrow_minHeight = min = 200 );
- if ( min )
- newHeight = Math.max( newHeight, min );
- if ( max )
- newHeight = Math.min( newHeight, max );
-
- if ( newHeight != currentHeight )
- {
- newHeight = editor.fire( 'autoGrow', { currentHeight : currentHeight, newHeight : newHeight } ).newHeight;
- editor.resize( editor.container.getStyle( 'width' ), newHeight, true );
- }
- };
- CKEDITOR.plugins.add( 'autogrow',
- {
- init : function( editor )
- {
- for ( var eventName in { contentDom:1, key:1, selectionChange:1, insertElement:1 } )
- {
- editor.on( eventName, function( evt )
- {
- // Some time is required for insertHtml, and it gives other events better performance as well.
- if ( evt.editor.mode == 'wysiwyg' )
- setTimeout( function(){ resizeEditor( evt.editor ); }, 100 );
- });
- }
- }
- });
-})();
-/**
- * The minimum height to which the editor can reach using AutoGrow.
- * @name CKEDITOR.config.autoGrow_minHeight
- * @type Number
- * @default 200
- * @since 3.4
- * @example
- * config.autoGrow_minHeight = 300;
- */
-
-/**
- * The maximum height to which the editor can reach using AutoGrow. Zero means unlimited.
- * @name CKEDITOR.config.autoGrow_maxHeight
- * @type Number
- * @default 0
- * @since 3.4
- * @example
- * config.autoGrow_maxHeight = 400;
- */
-
-/**
- * Fired when the AutoGrow plugin is about to change the size of the editor.
- * @name CKEDITOR#autogrow
- * @event
- * @param {Number} data.currentHeight The current height of the editor (before the resizing).
- * @param {Number} data.newHeight The new height of the editor (after the resizing). It can be changed
- * to determine another height to be used instead.
- */
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/icons/bold.png b/devel/third-party/ckeditor/plugins/basicstyles/icons/bold.png
new file mode 100644
index 0000000..bbfc0c9
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/basicstyles/icons/bold.png differ
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/icons/italic.png b/devel/third-party/ckeditor/plugins/basicstyles/icons/italic.png
new file mode 100644
index 0000000..058d8cc
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/basicstyles/icons/italic.png differ
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/icons/strike.png b/devel/third-party/ckeditor/plugins/basicstyles/icons/strike.png
new file mode 100644
index 0000000..dd2d547
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/basicstyles/icons/strike.png differ
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/icons/subscript.png b/devel/third-party/ckeditor/plugins/basicstyles/icons/subscript.png
new file mode 100644
index 0000000..38a431d
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/basicstyles/icons/subscript.png differ
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/icons/superscript.png b/devel/third-party/ckeditor/plugins/basicstyles/icons/superscript.png
new file mode 100644
index 0000000..77c696f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/basicstyles/icons/superscript.png differ
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/icons/underline.png b/devel/third-party/ckeditor/plugins/basicstyles/icons/underline.png
new file mode 100644
index 0000000..a5fb04c
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/basicstyles/icons/underline.png differ
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/af.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/af.js
new file mode 100644
index 0000000..ce62df9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/af.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'af', {
+ bold: 'Vet',
+ italic: 'Skuins',
+ strike: 'Deurstreep',
+ subscript: 'Onderskrif',
+ superscript: 'Bo-skrif',
+ underline: 'Onderstreep'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ar.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ar.js
new file mode 100644
index 0000000..8b21e23
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ar.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ar', {
+ bold: 'غاÙ
Ù',
+ italic: 'Ù
ائÙ',
+ strike: 'ÙØªÙسط٠خط',
+ subscript: 'Ù
ÙØ®Ùض',
+ superscript: 'Ù
Ø±ØªÙØ¹',
+ underline: 'ØªØ³Ø·ÙØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/bg.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/bg.js
new file mode 100644
index 0000000..98a5171
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/bg.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'bg', {
+ bold: 'Удебелен',
+ italic: 'Ðаклонен',
+ strike: 'ÐаÑеÑÑан ÑекÑÑ',
+ subscript: 'ÐндекÑиÑан ÑекÑÑ',
+ superscript: 'СÑпеÑÑкÑипÑ',
+ underline: 'ÐодÑеÑÑан'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/bn.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/bn.js
new file mode 100644
index 0000000..881b6b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/bn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'bn', {
+ bold: 'বà§à¦²à§à¦¡',
+ italic: 'à¦à¦à¦¾à¦²à¦¿à¦',
+ strike: 'সà§à¦à§à¦°à¦¾à¦à¦ থà§à¦°à§',
+ subscript: 'à¦
ধà§à¦²à§à¦',
+ superscript: 'à¦
à¦à¦¿à¦²à§à¦',
+ underline: 'à¦à¦¨à§à¦¡à¦¾à¦°à¦²à¦¾à¦à¦¨'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/bs.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/bs.js
new file mode 100644
index 0000000..40389a0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/bs.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'bs', {
+ bold: 'Boldiraj',
+ italic: 'Ukosi',
+ strike: 'Precrtaj',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Podvuci'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ca.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ca.js
new file mode 100644
index 0000000..e9484a2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ca', {
+ bold: 'Negreta',
+ italic: 'Cursiva',
+ strike: 'Barrat',
+ subscript: 'SubÃndex',
+ superscript: 'SuperÃndex',
+ underline: 'Subratllat'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/cs.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/cs.js
new file mode 100644
index 0000000..f0ef6f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/cs.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'cs', {
+ bold: 'TuÄné',
+ italic: 'KurzÃva',
+ strike: 'PÅeÅ¡krtnuté',
+ subscript: 'Dolnà index',
+ superscript: 'Hornà index',
+ underline: 'Podtržené'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/cy.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/cy.js
new file mode 100644
index 0000000..9e3b3ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/cy.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'cy', {
+ bold: 'Bras',
+ italic: 'Italig',
+ strike: 'Llinell Trwyddo',
+ subscript: 'Is-sgript',
+ superscript: 'Uwchsgript',
+ underline: 'Tanlinellu'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/da.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/da.js
new file mode 100644
index 0000000..3de5ce8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/da.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'da', {
+ bold: 'Fed',
+ italic: 'Kursiv',
+ strike: 'Gennemstreget',
+ subscript: 'Sænket skrift',
+ superscript: 'Hævet skrift',
+ underline: 'Understreget'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/de.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/de.js
new file mode 100644
index 0000000..3e6989b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/de.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'de', {
+ bold: 'Fett',
+ italic: 'Kursiv',
+ strike: 'Durchgestrichen',
+ subscript: 'Tiefgestellt',
+ superscript: 'Hochgestellt',
+ underline: 'Unterstrichen'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/el.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/el.js
new file mode 100644
index 0000000..889bafd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/el.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'el', {
+ bold: 'ÎνÏονα',
+ italic: 'Πλάγια',
+ strike: 'ÎιαγÏάμμιÏη',
+ subscript: 'ÎείκÏηÏ',
+ superscript: 'ÎκθÎÏηÏ',
+ underline: 'Î¥ÏογÏάμμιÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/en-au.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/en-au.js
new file mode 100644
index 0000000..1eca3ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/en-au.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'en-au', {
+ bold: 'Bold',
+ italic: 'Italic',
+ strike: 'Strike Through',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Underline'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/en-ca.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/en-ca.js
new file mode 100644
index 0000000..1c9a199
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/en-ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'en-ca', {
+ bold: 'Bold',
+ italic: 'Italic',
+ strike: 'Strike Through',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Underline'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/en-gb.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/en-gb.js
new file mode 100644
index 0000000..a648904
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/en-gb.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'en-gb', {
+ bold: 'Bold',
+ italic: 'Italic',
+ strike: 'Strike Through',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Underline'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/en.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/en.js
new file mode 100644
index 0000000..61b0946
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/en.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'en', {
+ bold: 'Bold',
+ italic: 'Italic',
+ strike: 'Strike Through',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Underline'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/eo.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/eo.js
new file mode 100644
index 0000000..79e3e58
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/eo.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'eo', {
+ bold: 'Grasa',
+ italic: 'Kursiva',
+ strike: 'Trastreko',
+ subscript: 'Suba indico',
+ superscript: 'Supra indico',
+ underline: 'Substreko'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/es.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/es.js
new file mode 100644
index 0000000..a211689
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/es.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'es', {
+ bold: 'Negrita',
+ italic: 'Cursiva',
+ strike: 'Tachado',
+ subscript: 'SubÃndice',
+ superscript: 'SuperÃndice',
+ underline: 'Subrayado'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/et.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/et.js
new file mode 100644
index 0000000..2fd9c88
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/et.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'et', {
+ bold: 'Paks',
+ italic: 'Kursiiv',
+ strike: 'Läbijoonitud',
+ subscript: 'Allindeks',
+ superscript: 'Ãlaindeks',
+ underline: 'Allajoonitud'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/eu.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/eu.js
new file mode 100644
index 0000000..0b11679
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/eu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'eu', {
+ bold: 'Lodia',
+ italic: 'Etzana',
+ strike: 'Marratua',
+ subscript: 'Azpi-indize',
+ superscript: 'Goi-indize',
+ underline: 'Azpimarratu'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/fa.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/fa.js
new file mode 100644
index 0000000..cd26df9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/fa.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'fa', {
+ bold: 'درشت',
+ italic: 'Ø®Ù
ÛØ¯Ù',
+ strike: 'Ù
ÛØ§Ùخط',
+ subscript: 'Ø²ÛØ±ÙÙÛØ³',
+ superscript: 'Ø¨Ø§ÙØ§ÙÙÛØ³',
+ underline: 'Ø²ÛØ±Ø®Ø·Ø¯Ø§Ø±'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/fi.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/fi.js
new file mode 100644
index 0000000..9c310cd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/fi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'fi', {
+ bold: 'Lihavoitu',
+ italic: 'Kursivoitu',
+ strike: 'Yliviivattu',
+ subscript: 'Alaindeksi',
+ superscript: 'Yläindeksi',
+ underline: 'Alleviivattu'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/fo.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/fo.js
new file mode 100644
index 0000000..0c8b842
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/fo.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'fo', {
+ bold: 'Feit skrift',
+ italic: 'Skráskrift',
+ strike: 'Yvirstrikað',
+ subscript: 'Lækkað skrift',
+ superscript: 'Hækkað skrift',
+ underline: 'Undirstrikað'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/fr-ca.js
new file mode 100644
index 0000000..9241e15
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/fr-ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'fr-ca', {
+ bold: 'Gras',
+ italic: 'Italique',
+ strike: 'Barrer',
+ subscript: 'Indice',
+ superscript: 'Exposant',
+ underline: 'Souligné'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/fr.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/fr.js
new file mode 100644
index 0000000..050f12e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/fr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'fr', {
+ bold: 'Gras',
+ italic: 'Italique',
+ strike: 'Barré',
+ subscript: 'Indice',
+ superscript: 'Exposant',
+ underline: 'Souligné'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/gl.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/gl.js
new file mode 100644
index 0000000..a95090b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/gl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'gl', {
+ bold: 'Negrita',
+ italic: 'Cursiva',
+ strike: 'Tachado',
+ subscript: 'SubÃndice',
+ superscript: 'SuperÃndice',
+ underline: 'Sub-raiado'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/gu.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/gu.js
new file mode 100644
index 0000000..e84133d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/gu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'gu', {
+ bold: 'બà«àª²à«àª¡/સà«àªªàª·à«àª',
+ italic: 'àªàªà«àª²àª¿àª, તà«àª°àª¾àªàª¸àª¾',
+ strike: 'àªà«àªà« નાàªàªµà«àª',
+ subscript: 'àªàª àªàª¿àª¹à«àª¨àª¨à« નà«àªà« àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨',
+ superscript: 'àªàª àªàª¿àª¹à«àª¨ àªàªªàª° àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨.',
+ underline: 'àª
નà«àª¡àª°à«àª²àª¾àªàª¨, નà«àªà« લà«àªà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/he.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/he.js
new file mode 100644
index 0000000..3390f91
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/he.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'he', {
+ bold: '××××ש',
+ italic: '× ×××',
+ strike: '×ת×× ××××§',
+ subscript: '×ת×× ×ª×ת××',
+ superscript: '×ת×× ×¢××××',
+ underline: '×§× ×ª×ת××'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/hi.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/hi.js
new file mode 100644
index 0000000..e96bc4b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/hi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'hi', {
+ bold: 'बà¥à¤²à¥à¤¡',
+ italic: 'à¤à¤à¥à¤²à¤¿à¤',
+ strike: 'सà¥à¤à¥à¤°à¤¾à¤à¤ थà¥à¤°à¥',
+ subscript: 'à¤
धà¥à¤²à¥à¤',
+ superscript: 'à¤
à¤à¤¿à¤²à¥à¤',
+ underline: 'रà¥à¤à¤¾à¤à¤à¤£'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/hr.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/hr.js
new file mode 100644
index 0000000..3488864
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/hr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'hr', {
+ bold: 'Podebljaj',
+ italic: 'Ukosi',
+ strike: 'Precrtano',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Potcrtano'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/hu.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/hu.js
new file mode 100644
index 0000000..8c8a1c8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/hu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'hu', {
+ bold: 'Félkövér',
+ italic: 'DÅlt',
+ strike: 'Ãthúzott',
+ subscript: 'Alsó index',
+ superscript: 'FelsÅ index',
+ underline: 'Aláhúzott'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/is.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/is.js
new file mode 100644
index 0000000..7051bc6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/is.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'is', {
+ bold: 'Feitletrað',
+ italic: 'Skáletrað',
+ strike: 'Yfirstrikað',
+ subscript: 'Niðurskrifað',
+ superscript: 'Uppskrifað',
+ underline: 'Undirstrikað'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/it.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/it.js
new file mode 100644
index 0000000..85362e8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/it.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'it', {
+ bold: 'Grassetto',
+ italic: 'Corsivo',
+ strike: 'Barrato',
+ subscript: 'Pedice',
+ superscript: 'Apice',
+ underline: 'Sottolineato'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ja.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ja.js
new file mode 100644
index 0000000..1fcdd02
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ja.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ja', {
+ bold: '太å',
+ italic: 'æä½',
+ strike: 'æã¡æ¶ãç·',
+ subscript: 'æ·»ãå',
+ superscript: 'ä¸ä»ãæå',
+ underline: 'ä¸ç·'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ka.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ka.js
new file mode 100644
index 0000000..1c99700
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ka.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ka', {
+ bold: 'áá¡á®áááá',
+ italic: 'ááá®á ááá',
+ strike: 'ááááá®ááá£áá',
+ subscript: 'ááááá¥á¡á',
+ superscript: 'á®áá áá¡á®á',
+ underline: 'ááá®ááá£áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/km.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/km.js
new file mode 100644
index 0000000..6f7d29b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/km.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'km', {
+ bold: 'á¢áááááá·ááá',
+ italic: 'á¢ááááááááá',
+ strike: 'áá·áááááá¶áááá¶ááááááá¶áá¢áááá',
+ subscript: 'á¢áááááá¼á
ááááá',
+ superscript: 'á¢áááááá¼á
áá¾',
+ underline: 'áá·áááááá¶áááá¸áááááá¢áááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ko.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ko.js
new file mode 100644
index 0000000..e20262c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ko.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ko', {
+ bold: 'ì§íê²',
+ italic: 'ì´í
ë¦',
+ strike: 'ì·¨ìì ',
+ subscript: 'ìë 첨ì',
+ superscript: 'ì 첨ì',
+ underline: 'ë°ì¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ku.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ku.js
new file mode 100644
index 0000000..53aff0e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ku.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ku', {
+ bold: 'ÙÛÚµÛÙ',
+ italic: 'ÙØ§Ø±',
+ strike: 'ÙÛØ¯Ø§Ù',
+ subscript: 'ÚÛØ±ÙÙÙØ³',
+ superscript: 'Ø³ÛØ±ÙÙÙØ³',
+ underline: 'ÚÛØ±ÙÛÚµ'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/lt.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/lt.js
new file mode 100644
index 0000000..f699c1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/lt.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'lt', {
+ bold: 'Pusjuodis',
+ italic: 'Kursyvas',
+ strike: 'Perbrauktas',
+ subscript: 'Apatinis indeksas',
+ superscript: 'Viršutinis indeksas',
+ underline: 'Pabrauktas'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/lv.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/lv.js
new file mode 100644
index 0000000..51c64ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/lv.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'lv', {
+ bold: 'TrekninÄts',
+ italic: 'Kursīvs',
+ strike: 'PÄrsvÄ«trots',
+ subscript: 'ApakÅ¡rakstÄ',
+ superscript: 'AugÅ¡rakstÄ',
+ underline: 'Pasvītrots'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/mk.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/mk.js
new file mode 100644
index 0000000..d13009c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/mk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'mk', {
+ bold: 'Bold', // MISSING
+ italic: 'Italic', // MISSING
+ strike: 'Strike Through', // MISSING
+ subscript: 'Subscript', // MISSING
+ superscript: 'Superscript', // MISSING
+ underline: 'Underline' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/mn.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/mn.js
new file mode 100644
index 0000000..a3e40a8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/mn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'mn', {
+ bold: 'Тод бүдүүн',
+ italic: 'ÐалÑÑ',
+ strike: 'ÐÑндÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
',
+ subscript: 'СÑÑÑÑ Ð±Ð¾Ð»Ð³Ð¾Ñ
',
+ superscript: 'ÐÑÑÑг болгоÑ
',
+ underline: 'ÐоогÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ms.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ms.js
new file mode 100644
index 0000000..e658946
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ms.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ms', {
+ bold: 'Bold',
+ italic: 'Italic',
+ strike: 'Strike Through',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Underline'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/nb.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/nb.js
new file mode 100644
index 0000000..b13f144
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/nb.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'nb', {
+ bold: 'Fet',
+ italic: 'Kursiv',
+ strike: 'Gjennomstreking',
+ subscript: 'Senket skrift',
+ superscript: 'Hevet skrift',
+ underline: 'Understreking'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/nl.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/nl.js
new file mode 100644
index 0000000..6517ea4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/nl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'nl', {
+ bold: 'Vet',
+ italic: 'Cursief',
+ strike: 'Doorhalen',
+ subscript: 'Subscript',
+ superscript: 'Superscript',
+ underline: 'Onderstreept'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/no.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/no.js
new file mode 100644
index 0000000..0df088c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/no.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'no', {
+ bold: 'Fet',
+ italic: 'Kursiv',
+ strike: 'Gjennomstreking',
+ subscript: 'Senket skrift',
+ superscript: 'Hevet skrift',
+ underline: 'Understreking'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/pl.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/pl.js
new file mode 100644
index 0000000..2cb188d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/pl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'pl', {
+ bold: 'Pogrubienie',
+ italic: 'Kursywa',
+ strike: 'PrzekreÅlenie',
+ subscript: 'Indeks dolny',
+ superscript: 'Indeks górny',
+ underline: 'PodkreÅlenie'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/pt-br.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/pt-br.js
new file mode 100644
index 0000000..e23a9f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/pt-br.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'pt-br', {
+ bold: 'Negrito',
+ italic: 'Itálico',
+ strike: 'Tachado',
+ subscript: 'Subscrito',
+ superscript: 'Sobrescrito',
+ underline: 'Sublinhado'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/pt.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/pt.js
new file mode 100644
index 0000000..7585228
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/pt.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'pt', {
+ bold: 'Negrito',
+ italic: 'Itálico',
+ strike: 'Rasurado',
+ subscript: 'Superior à Linha',
+ superscript: 'Inferior à Linha',
+ underline: 'Sublinhado'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ro.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ro.js
new file mode 100644
index 0000000..9812442
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ro.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ro', {
+ bold: 'ÃngroÅat (bold)',
+ italic: 'Ãnclinat (italic)',
+ strike: 'TÄiat (strike through)',
+ subscript: 'Indice (subscript)',
+ superscript: 'Putere (superscript)',
+ underline: 'Subliniat (underline)'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ru.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ru.js
new file mode 100644
index 0000000..15b449c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ru.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ru', {
+ bold: 'ÐолÑжиÑнÑй',
+ italic: 'ÐÑÑÑив',
+ strike: 'ÐаÑеÑкнÑÑÑй',
+ subscript: 'ÐодÑÑÑоÑнÑй индекÑ',
+ superscript: 'ÐадÑÑÑоÑнÑй индекÑ',
+ underline: 'ÐодÑеÑкнÑÑÑй'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/sk.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/sk.js
new file mode 100644
index 0000000..49400df
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/sk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'sk', {
+ bold: 'TuÄné',
+ italic: 'KurzÃva',
+ strike: 'PreÄiarknuté',
+ subscript: 'Dolný index',
+ superscript: 'Horný index',
+ underline: 'PodÄiarknuté'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/sl.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/sl.js
new file mode 100644
index 0000000..92aea3d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/sl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'sl', {
+ bold: 'Krepko',
+ italic: 'LežeÄe',
+ strike: 'PreÄrtano',
+ subscript: 'Podpisano',
+ superscript: 'Nadpisano',
+ underline: 'PodÄrtano'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/sr-latn.js
new file mode 100644
index 0000000..e872d18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/sr-latn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'sr-latn', {
+ bold: 'Podebljano',
+ italic: 'Kurziv',
+ strike: 'Precrtano',
+ subscript: 'Indeks',
+ superscript: 'Stepen',
+ underline: 'PodvuÄeno'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/sr.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/sr.js
new file mode 100644
index 0000000..3195b04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/sr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'sr', {
+ bold: 'ÐодебÑано',
+ italic: 'ÐÑÑзив',
+ strike: 'ÐÑеÑÑÑано',
+ subscript: 'ÐндекÑ',
+ superscript: 'СÑепен',
+ underline: 'ÐодвÑÑено'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/sv.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/sv.js
new file mode 100644
index 0000000..d4c699c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/sv.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'sv', {
+ bold: 'Fet',
+ italic: 'Kursiv',
+ strike: 'Genomstruken',
+ subscript: 'Nedsänkta tecken',
+ superscript: 'Upphöjda tecken',
+ underline: 'Understruken'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/th.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/th.js
new file mode 100644
index 0000000..d6f5372
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/th.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'th', {
+ bold: 'à¸à¸±à¸§à¸«à¸à¸²',
+ italic: 'à¸à¸±à¸§à¹à¸à¸µà¸¢à¸',
+ strike: 'à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¸à¸±à¸',
+ subscript: 'à¸à¸±à¸§à¸«à¹à¸à¸¢',
+ superscript: 'à¸à¸±à¸§à¸¢à¸',
+ underline: 'à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¹à¸à¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/tr.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/tr.js
new file mode 100644
index 0000000..6174ae6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/tr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'tr', {
+ bold: 'Kalın',
+ italic: 'İtalik',
+ strike: 'Ãstü Ãizgili',
+ subscript: 'Alt Simge',
+ superscript: 'Ãst Simge',
+ underline: 'Altı Ãizgili'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/ug.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/ug.js
new file mode 100644
index 0000000..8d67074
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/ug.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'ug', {
+ bold: 'تÙÙ
',
+ italic: 'ÙØ§ÙتÛ',
+ strike: 'ئÛÚÛØ±ÛØ´ Ø³ÙØ²ÙÙÙ',
+ subscript: 'تÛÛÛ٠ئÙÙØ¯ÛÙØ³',
+ superscript: 'ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙØ³',
+ underline: 'Ø¦Ø§Ø³ØªÙ Ø³ÙØ²ÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/uk.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/uk.js
new file mode 100644
index 0000000..fb61855
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/uk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'uk', {
+ bold: 'ÐиÑний',
+ italic: 'ÐÑÑÑив',
+ strike: 'ÐакÑеÑлений',
+ subscript: 'ÐижнÑй ÑндекÑ',
+ superscript: 'ÐеÑÑ
нÑй ÑндекÑ',
+ underline: 'ÐÑдкÑеÑлений'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/vi.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/vi.js
new file mode 100644
index 0000000..1546152
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/vi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'vi', {
+ bold: 'Äáºm',
+ italic: 'Nghiêng',
+ strike: 'Gạch xuyên ngang',
+ subscript: 'Chá» sá» dưá»i',
+ superscript: 'ChỠsỠtrên',
+ underline: 'Gạch chân'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/zh-cn.js
new file mode 100644
index 0000000..68a8916
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/zh-cn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'zh-cn', {
+ bold: 'å ç²',
+ italic: '徿',
+ strike: 'å é¤çº¿',
+ subscript: '䏿 ',
+ superscript: '䏿 ',
+ underline: 'ä¸å线'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/lang/zh.js b/devel/third-party/ckeditor/plugins/basicstyles/lang/zh.js
new file mode 100644
index 0000000..53cfe16
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/basicstyles/lang/zh.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'basicstyles', 'zh', {
+ bold: 'ç²é«',
+ italic: 'æé«',
+ strike: 'åªé¤ç·',
+ subscript: '䏿¨',
+ superscript: '䏿¨',
+ underline: 'åºç·'
+});
diff --git a/devel/third-party/ckeditor/plugins/basicstyles/plugin.js b/devel/third-party/ckeditor/plugins/basicstyles/plugin.js
index 0b2f25e..e99e575 100644
--- a/devel/third-party/ckeditor/plugins/basicstyles/plugin.js
+++ b/devel/third-party/ckeditor/plugins/basicstyles/plugin.js
@@ -1,101 +1,141 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'basicstyles',
-{
- requires : [ 'styles', 'button' ],
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'basicstyles', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'bold,italic,underline,strike,subscript,superscript', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ var order = 0;
// All buttons use the same code to register. So, to avoid
// duplications, let's use this tool function.
- var addButtonCommand = function( buttonName, buttonLabel, commandName, styleDefiniton )
- {
- var style = new CKEDITOR.style( styleDefiniton );
+ var addButtonCommand = function( buttonName, buttonLabel, commandName, styleDefiniton ) {
+ // Disable the command if no definition is configured.
+ if ( !styleDefiniton )
+ return;
+
+ var style = new CKEDITOR.style( styleDefiniton );
- editor.attachStyleStateChange( style, function( state )
- {
- editor.getCommand( commandName ).setState( state );
+ // Listen to contextual style activation.
+ editor.attachStyleStateChange( style, function( state ) {
+ !editor.readOnly && editor.getCommand( commandName ).setState( state );
});
- editor.addCommand( commandName, new CKEDITOR.styleCommand( style ) );
+ // Create the command that can be used to apply the style.
+ editor.addCommand( commandName, new CKEDITOR.styleCommand( style ) );
- editor.ui.addButton( buttonName,
- {
- label : buttonLabel,
- command : commandName
- });
- };
+ // Register the button, if the button plugin is loaded.
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( buttonName, {
+ label: buttonLabel,
+ command: commandName,
+ toolbar: 'basicstyles,' + ( order += 10 )
+ });
+ }
+ };
+
+ var config = editor.config,
+ lang = editor.lang.basicstyles;
- var config = editor.config;
- var lang = editor.lang;
+ addButtonCommand( 'Bold', lang.bold, 'bold', config.coreStyles_bold );
+ addButtonCommand( 'Italic', lang.italic, 'italic', config.coreStyles_italic );
+ addButtonCommand( 'Underline', lang.underline, 'underline', config.coreStyles_underline );
+ addButtonCommand( 'Strike', lang.strike, 'strike', config.coreStyles_strike );
+ addButtonCommand( 'Subscript', lang.subscript, 'subscript', config.coreStyles_subscript );
+ addButtonCommand( 'Superscript', lang.superscript, 'superscript', config.coreStyles_superscript );
- addButtonCommand( 'Bold' , lang.bold , 'bold' , config.coreStyles_bold );
- addButtonCommand( 'Italic' , lang.italic , 'italic' , config.coreStyles_italic );
- addButtonCommand( 'Underline' , lang.underline , 'underline' , config.coreStyles_underline );
- addButtonCommand( 'Strike' , lang.strike , 'strike' , config.coreStyles_strike );
- addButtonCommand( 'Subscript' , lang.subscript , 'subscript' , config.coreStyles_subscript );
- addButtonCommand( 'Superscript' , lang.superscript , 'superscript' , config.coreStyles_superscript );
+ editor.setKeystroke( [
+ [ CKEDITOR.CTRL + 66 /*B*/, 'bold' ],
+ [ CKEDITOR.CTRL + 73 /*I*/, 'italic' ],
+ [ CKEDITOR.CTRL + 85 /*U*/, 'underline' ]
+ ] );
}
});
// Basic Inline Styles.
/**
- * The style definition to be used to apply the bold style in the text.
- * @type Object
- * @example
- * config.coreStyles_bold = { element : 'b', overrides : 'strong' };
- * @example
- * config.coreStyles_bold = { element : 'span', attributes : {'class': 'Bold'} };
+ * The style definition that applies the **bold** style to the text.
+ *
+ * config.coreStyles_bold = { element: 'b', overrides: 'strong' };
+ *
+ * config.coreStyles_bold = {
+ * element: 'span',
+ * attributes: { 'class': 'Bold' }
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.coreStyles_bold = { element : 'strong', overrides : 'b' };
+CKEDITOR.config.coreStyles_bold = { element: 'strong', overrides: 'b' };
/**
- * The style definition to be used to apply the italic style in the text.
- * @type Object
- * @default { element : 'em', overrides : 'i' }
- * @example
- * config.coreStyles_italic = { element : 'i', overrides : 'em' };
- * @example
- * CKEDITOR.config.coreStyles_italic = { element : 'span', attributes : {'class': 'Italic'} };
+ * The style definition that applies the *italics* style to the text.
+ *
+ * config.coreStyles_italic = { element: 'i', overrides: 'em' };
+ *
+ * CKEDITOR.config.coreStyles_italic = {
+ * element: 'span',
+ * attributes: { 'class': 'Italic' }
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.coreStyles_italic = { element : 'em', overrides : 'i' };
+CKEDITOR.config.coreStyles_italic = { element: 'em', overrides: 'i' };
/**
- * The style definition to be used to apply the underline style in the text.
- * @type Object
- * @default { element : 'u' }
- * @example
- * CKEDITOR.config.coreStyles_underline = { element : 'span', attributes : {'class': 'Underline'}};
+ * The style definition that applies the <u>underline</u> style to the text.
+ *
+ * CKEDITOR.config.coreStyles_underline = {
+ * element: 'span',
+ * attributes: { 'class': 'Underline' }
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.coreStyles_underline = { element : 'u' };
+CKEDITOR.config.coreStyles_underline = { element: 'u' };
/**
- * The style definition to be used to apply the strike style in the text.
- * @type Object
- * @default { element : 'strike' }
- * @example
- * CKEDITOR.config.coreStyles_strike = { element : 'span', attributes : {'class': 'StrikeThrough'}, overrides : 'strike' };
+ * The style definition that applies the <strike>strike-through</strike> style to the text.
+ *
+ * CKEDITOR.config.coreStyles_strike = {
+ * element: 'span',
+ * attributes: { 'class': 'StrikeThrough' },
+ * overrides: 'strike'
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.coreStyles_strike = { element : 'strike' };
+CKEDITOR.config.coreStyles_strike = { element: 'strike' };
/**
- * The style definition to be used to apply the subscript style in the text.
- * @type Object
- * @default { element : 'sub' }
- * @example
- * CKEDITOR.config.coreStyles_subscript = { element : 'span', attributes : {'class': 'Subscript'}, overrides : 'sub' };
+ * The style definition that applies the subscript style to the text.
+ *
+ * CKEDITOR.config.coreStyles_subscript = {
+ * element: 'span',
+ * attributes: { 'class': 'Subscript' },
+ * overrides: 'sub'
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.coreStyles_subscript = { element : 'sub' };
+CKEDITOR.config.coreStyles_subscript = { element: 'sub' };
/**
- * The style definition to be used to apply the superscript style in the text.
- * @type Object
- * @default { element : 'sup' }
- * @example
- * CKEDITOR.config.coreStyles_superscript = { element : 'span', attributes : {'class': 'Superscript'}, overrides : 'sup' };
+ * The style definition that applies the superscript style to the text.
+ *
+ * CKEDITOR.config.coreStyles_superscript = {
+ * element: 'span',
+ * attributes: { 'class': 'Superscript' },
+ * overrides: 'sup'
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.coreStyles_superscript = { element : 'sup' };
+CKEDITOR.config.coreStyles_superscript = { element: 'sup' };
diff --git a/devel/third-party/ckeditor/plugins/bidi/icons/bidiltr.png b/devel/third-party/ckeditor/plugins/bidi/icons/bidiltr.png
new file mode 100644
index 0000000..1b89022
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/bidi/icons/bidiltr.png differ
diff --git a/devel/third-party/ckeditor/plugins/bidi/icons/bidirtl.png b/devel/third-party/ckeditor/plugins/bidi/icons/bidirtl.png
new file mode 100644
index 0000000..27dea25
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/bidi/icons/bidirtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/af.js b/devel/third-party/ckeditor/plugins/bidi/lang/af.js
new file mode 100644
index 0000000..175fea3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'af', {
+ ltr: 'Skryfrigting van links na regs',
+ rtl: 'Skryfrigting van regs na links'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ar.js b/devel/third-party/ckeditor/plugins/bidi/lang/ar.js
new file mode 100644
index 0000000..9bb89c2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ar', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/bg.js b/devel/third-party/ckeditor/plugins/bidi/lang/bg.js
new file mode 100644
index 0000000..5b90c47
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'bg', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/bn.js b/devel/third-party/ckeditor/plugins/bidi/lang/bn.js
new file mode 100644
index 0000000..62d8733
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'bn', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/bs.js b/devel/third-party/ckeditor/plugins/bidi/lang/bs.js
new file mode 100644
index 0000000..92e2a06
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'bs', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ca.js b/devel/third-party/ckeditor/plugins/bidi/lang/ca.js
new file mode 100644
index 0000000..f657f40
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ca', {
+ ltr: 'Direcció del text d\'esquerra a dreta',
+ rtl: 'Direcció del text de dreta a esquerra'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/cs.js b/devel/third-party/ckeditor/plugins/bidi/lang/cs.js
new file mode 100644
index 0000000..7811166
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'cs', {
+ ltr: 'SmÄr textu zleva doprava',
+ rtl: 'SmÄr textu zprava doleva'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/cy.js b/devel/third-party/ckeditor/plugins/bidi/lang/cy.js
new file mode 100644
index 0000000..85554ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'cy', {
+ ltr: 'Cyfeiriad testun o\'r chwith i\'r dde',
+ rtl: 'Cyfeiriad testun o\'r dde i\'r chwith'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/da.js b/devel/third-party/ckeditor/plugins/bidi/lang/da.js
new file mode 100644
index 0000000..349523b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'da', {
+ ltr: 'Tekstretning fra venstre til højre',
+ rtl: 'Tekstretning fra højre til venstre'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/de.js b/devel/third-party/ckeditor/plugins/bidi/lang/de.js
new file mode 100644
index 0000000..8b19453
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'de', {
+ ltr: 'Leserichtung von Links nach Rechts',
+ rtl: 'Leserichtung von Rechts nach Links'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/el.js b/devel/third-party/ckeditor/plugins/bidi/lang/el.js
new file mode 100644
index 0000000..91eb43d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'el', {
+ ltr: 'ÎιεÏθÏ
νÏη κειμÎνοÏ
αÏÏ Î±ÏιÏÏεÏά ÏÏα δεξιά',
+ rtl: 'ÎιεÏθÏ
νÏη κειμÎνοÏ
αÏÏ Î´ÎµÎ¾Î¹Î¬ ÏÏα αÏιÏÏεÏά'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/en-au.js b/devel/third-party/ckeditor/plugins/bidi/lang/en-au.js
new file mode 100644
index 0000000..22e4dc0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'en-au', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/en-ca.js b/devel/third-party/ckeditor/plugins/bidi/lang/en-ca.js
new file mode 100644
index 0000000..abe76d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'en-ca', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/en-gb.js b/devel/third-party/ckeditor/plugins/bidi/lang/en-gb.js
new file mode 100644
index 0000000..82894e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'en-gb', {
+ ltr: 'Text direction from left to right',
+ rtl: 'Text direction from right to left'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/en.js b/devel/third-party/ckeditor/plugins/bidi/lang/en.js
new file mode 100644
index 0000000..a49b65c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'en', {
+ ltr: 'Text direction from left to right',
+ rtl: 'Text direction from right to left'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/eo.js b/devel/third-party/ckeditor/plugins/bidi/lang/eo.js
new file mode 100644
index 0000000..3096cc1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'eo', {
+ ltr: 'Tekstdirekto de maldekstre dekstren',
+ rtl: 'Tekstdirekto de dekstre maldekstren'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/es.js b/devel/third-party/ckeditor/plugins/bidi/lang/es.js
new file mode 100644
index 0000000..af9ea7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'es', {
+ ltr: 'Dirección del texto de izquierda a derecha',
+ rtl: 'Dirección del texto de derecha a izquierda'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/et.js b/devel/third-party/ckeditor/plugins/bidi/lang/et.js
new file mode 100644
index 0000000..27e5029
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'et', {
+ ltr: 'Teksti suund vasakult paremale',
+ rtl: 'Teksti suund paremalt vasakule'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/eu.js b/devel/third-party/ckeditor/plugins/bidi/lang/eu.js
new file mode 100644
index 0000000..c0a8ee4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'eu', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/fa.js b/devel/third-party/ckeditor/plugins/bidi/lang/fa.js
new file mode 100644
index 0000000..67a27f614
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'fa', {
+ ltr: 'ÙÙØ´ØªØ§Ø± Ù
ت٠از ÚÙ¾ ب٠راست',
+ rtl: 'ÙÙØ´ØªØ§Ø± Ù
ت٠از راست ب٠ÚÙ¾'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/fi.js b/devel/third-party/ckeditor/plugins/bidi/lang/fi.js
new file mode 100644
index 0000000..a77f5d4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'fi', {
+ ltr: 'Tekstin suunta vasemmalta oikealle',
+ rtl: 'Tekstin suunta oikealta vasemmalle'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/fo.js b/devel/third-party/ckeditor/plugins/bidi/lang/fo.js
new file mode 100644
index 0000000..deb0344
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'fo', {
+ ltr: 'Tekstkós frá vinstru til høgru',
+ rtl: 'Tekstkós frá høgru til vinstru'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/bidi/lang/fr-ca.js
new file mode 100644
index 0000000..55d64aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'fr-ca', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/fr.js b/devel/third-party/ckeditor/plugins/bidi/lang/fr.js
new file mode 100644
index 0000000..13250de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'fr', {
+ ltr: 'Direction du texte de la gauche vers la droite',
+ rtl: 'Direction du texte de la droite vers la gauche'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/gl.js b/devel/third-party/ckeditor/plugins/bidi/lang/gl.js
new file mode 100644
index 0000000..2d85fbc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'gl', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/gu.js b/devel/third-party/ckeditor/plugins/bidi/lang/gu.js
new file mode 100644
index 0000000..8ea4030
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'gu', {
+ ltr: 'àªà«àªà«àª·à«àª¤à« નૠદિશા ડાબૠથૠàªàª®àª£à«',
+ rtl: 'àªà«àªà«àª·à«àª¤à« નૠદિશા àªàª®àª£à« થૠડાબà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/he.js b/devel/third-party/ckeditor/plugins/bidi/lang/he.js
new file mode 100644
index 0000000..e5de64c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'he', {
+ ltr: '××××× ××§×¡× ×ש××× ××××× (LTR)',
+ rtl: '××××× ××§×¡× ××××× ×ש××× (RTL)'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/hi.js b/devel/third-party/ckeditor/plugins/bidi/lang/hi.js
new file mode 100644
index 0000000..78934f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'hi', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/hr.js b/devel/third-party/ckeditor/plugins/bidi/lang/hr.js
new file mode 100644
index 0000000..2b1a90b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'hr', {
+ ltr: 'Smjer teksta s lijeva na desno',
+ rtl: 'Smjer teksta s desna na lijevo'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/hu.js b/devel/third-party/ckeditor/plugins/bidi/lang/hu.js
new file mode 100644
index 0000000..ab251b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'hu', {
+ ltr: 'Szöveg iránya balról jobbra',
+ rtl: 'Szöveg iránya jobbról balra'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/is.js b/devel/third-party/ckeditor/plugins/bidi/lang/is.js
new file mode 100644
index 0000000..b1979ab5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'is', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/it.js b/devel/third-party/ckeditor/plugins/bidi/lang/it.js
new file mode 100644
index 0000000..8a38f11
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'it', {
+ ltr: 'Direzione del testo da sinistra verso destra',
+ rtl: 'Direzione del testo da destra verso sinistra'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ja.js b/devel/third-party/ckeditor/plugins/bidi/lang/ja.js
new file mode 100644
index 0000000..570faa1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ja', {
+ ltr: 'ããã¹ãã®åã : å·¦ããå³ã¸',
+ rtl: 'ããã¹ãã®åã : å³ããå·¦ã¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ka.js b/devel/third-party/ckeditor/plugins/bidi/lang/ka.js
new file mode 100644
index 0000000..3696483
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ka', {
+ ltr: 'á¢áá¥á¡á¢áá¡ ááááá áá£áááá ááá áªá®ááááá ááá á¯áááá',
+ rtl: 'á¢áá¥á¡á¢áá¡ ááááá áá£áááá ááá á¯áááááá ááá áªá®ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/km.js b/devel/third-party/ckeditor/plugins/bidi/lang/km.js
new file mode 100644
index 0000000..510c2c9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'km', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ko.js b/devel/third-party/ckeditor/plugins/bidi/lang/ko.js
new file mode 100644
index 0000000..1a5ca3e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ko', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ku.js b/devel/third-party/ckeditor/plugins/bidi/lang/ku.js
new file mode 100644
index 0000000..02e8290
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ku', {
+ ltr: 'ئاراستÙÛ ÙÙÙØ³Ù ÙÙÚÙÙ¾ Ø¨Û ÚØ§Ø³Øª',
+ rtl: 'ئاراستÙÛ ÙÙÙØ³Ù ÙÙÚØ§Ø³Øª Ø¨Û ÚÙÙ¾'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/lt.js b/devel/third-party/ckeditor/plugins/bidi/lang/lt.js
new file mode 100644
index 0000000..b765dc7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'lt', {
+ ltr: 'Tekstas iÅ¡ kairÄs į deÅ¡inÄ',
+ rtl: 'Tekstas iÅ¡ deÅ¡inÄs į kairÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/lv.js b/devel/third-party/ckeditor/plugins/bidi/lang/lv.js
new file mode 100644
index 0000000..736d225
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'lv', {
+ ltr: 'Teksta virziens no kreisÄs uz labo',
+ rtl: 'Teksta virziens no labÄs uz kreiso'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/mk.js b/devel/third-party/ckeditor/plugins/bidi/lang/mk.js
new file mode 100644
index 0000000..298c377
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'mk', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/mn.js b/devel/third-party/ckeditor/plugins/bidi/lang/mn.js
new file mode 100644
index 0000000..271a4d5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'mn', {
+ ltr: 'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн ÑÐ¸Ð¹Ñ Ð±Ð¸ÑлÑг',
+ rtl: 'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ ÑÐ¸Ð¹Ñ Ð±Ð¸ÑлÑг'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ms.js b/devel/third-party/ckeditor/plugins/bidi/lang/ms.js
new file mode 100644
index 0000000..1c4eefe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ms', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/nb.js b/devel/third-party/ckeditor/plugins/bidi/lang/nb.js
new file mode 100644
index 0000000..d187dcb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'nb', {
+ ltr: 'Tekstretning fra venstre til høyre',
+ rtl: 'Tekstretning fra høyre til venstre'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/nl.js b/devel/third-party/ckeditor/plugins/bidi/lang/nl.js
new file mode 100644
index 0000000..da314d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'nl', {
+ ltr: 'Schrijfrichting van links naar rechts',
+ rtl: 'Schrijfrichting van rechts naar links'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/no.js b/devel/third-party/ckeditor/plugins/bidi/lang/no.js
new file mode 100644
index 0000000..da11d01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'no', {
+ ltr: 'Tekstretning fra venstre til høyre',
+ rtl: 'Tekstretning fra høyre til venstre'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/pl.js b/devel/third-party/ckeditor/plugins/bidi/lang/pl.js
new file mode 100644
index 0000000..c40fdcc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'pl', {
+ ltr: 'Kierunek tekstu od lewej strony do prawej',
+ rtl: 'Kierunek tekstu od prawej strony do lewej'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/pt-br.js b/devel/third-party/ckeditor/plugins/bidi/lang/pt-br.js
new file mode 100644
index 0000000..d5f04aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'pt-br', {
+ ltr: 'Direção do texto da esquerda para a direita',
+ rtl: 'Direção do texto da direita para a esquerda'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/pt.js b/devel/third-party/ckeditor/plugins/bidi/lang/pt.js
new file mode 100644
index 0000000..a252f7c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'pt', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ro.js b/devel/third-party/ckeditor/plugins/bidi/lang/ro.js
new file mode 100644
index 0000000..ebada41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ro', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ru.js b/devel/third-party/ckeditor/plugins/bidi/lang/ru.js
new file mode 100644
index 0000000..84b005a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ru', {
+ ltr: 'ÐапÑавление ÑекÑÑа Ñлева напÑаво',
+ rtl: 'ÐапÑавление ÑекÑÑа ÑпÑава налево'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/sk.js b/devel/third-party/ckeditor/plugins/bidi/lang/sk.js
new file mode 100644
index 0000000..9c0e6a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'sk', {
+ ltr: 'Smer textu zľava doprava',
+ rtl: 'Smer textu sprava doľava'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/sl.js b/devel/third-party/ckeditor/plugins/bidi/lang/sl.js
new file mode 100644
index 0000000..b27255c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'sl', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/bidi/lang/sr-latn.js
new file mode 100644
index 0000000..4cdb676
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'sr-latn', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/sr.js b/devel/third-party/ckeditor/plugins/bidi/lang/sr.js
new file mode 100644
index 0000000..7cd9a85
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'sr', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/sv.js b/devel/third-party/ckeditor/plugins/bidi/lang/sv.js
new file mode 100644
index 0000000..3ac8612
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'sv', {
+ ltr: 'Text riktning från vänster till höger',
+ rtl: 'Text riktning från höger till vänster'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/th.js b/devel/third-party/ckeditor/plugins/bidi/lang/th.js
new file mode 100644
index 0000000..f4ab9de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'th', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/tr.js b/devel/third-party/ckeditor/plugins/bidi/lang/tr.js
new file mode 100644
index 0000000..523ff50
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'tr', {
+ ltr: 'Metin yönü soldan saÄa',
+ rtl: 'Metin yönü saÄdan sola'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/ug.js b/devel/third-party/ckeditor/plugins/bidi/lang/ug.js
new file mode 100644
index 0000000..8605e00
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'ug', {
+ ltr: 'تÛÙÙØ³Øª ÙÛÙÙÙÙØ´Ù سÙÙØ¯Ù٠ئÙÚØºØ§',
+ rtl: 'تÛÙÙØ³Øª ÙÛÙÙÙÙØ´Ù ئÙÚØ¯Ù٠سÙÙØºØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/uk.js b/devel/third-party/ckeditor/plugins/bidi/lang/uk.js
new file mode 100644
index 0000000..7b0e82f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'uk', {
+ ltr: 'ÐапÑÑмок ÑекÑÑÑ Ð·Ð»Ñва напÑаво',
+ rtl: 'ÐапÑÑмок ÑекÑÑÑ ÑпÑава налÑво'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/vi.js b/devel/third-party/ckeditor/plugins/bidi/lang/vi.js
new file mode 100644
index 0000000..715403e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'vi', {
+ ltr: 'VÄn bản hưá»ng từ trái sang phải',
+ rtl: 'VÄn bản hưá»ng từ phải sang trái'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/bidi/lang/zh-cn.js
new file mode 100644
index 0000000..98990dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'zh-cn', {
+ ltr: 'æåæ¹å为ä»å·¦è³å³',
+ rtl: 'æåæ¹å为ä»å³è³å·¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/lang/zh.js b/devel/third-party/ckeditor/plugins/bidi/lang/zh.js
new file mode 100644
index 0000000..6b0f703
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/bidi/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'bidi', 'zh', {
+ ltr: 'Text direction from left to right', // MISSING
+ rtl: 'Text direction from right to left' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/bidi/plugin.js b/devel/third-party/ckeditor/plugins/bidi/plugin.js
index 6c5d8a6..3647e5d 100644
--- a/devel/third-party/ckeditor/plugins/bidi/plugin.js
+++ b/devel/third-party/ckeditor/plugins/bidi/plugin.js
@@ -1,247 +1,300 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var guardElements = { table:1, ul:1, ol:1, blockquote:1, div:1 };
- var directSelectionGuardElements = {};
- CKEDITOR.tools.extend( directSelectionGuardElements, guardElements, { tr:1, p:1, div:1, li:1 } );
-
- function onSelectionChange( evt )
- {
- var editor = evt.editor,
- path = evt.data.path;
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var guardElements = { table:1,ul:1,ol:1,blockquote:1,div:1 },
+ directSelectionGuardElements = {},
+ // All guard elements which can have a direction applied on them.
+ allGuardElements = {};
+ CKEDITOR.tools.extend( directSelectionGuardElements, guardElements, { tr:1,p:1,div:1,li:1 } );
+ CKEDITOR.tools.extend( allGuardElements, directSelectionGuardElements, { td:1 } );
+
+ function setToolbarStates( editor, path ) {
var useComputedState = editor.config.useComputedState,
selectedElement;
useComputedState = useComputedState === undefined || useComputedState;
- if ( useComputedState )
- {
- var selection = editor.getSelection(),
- ranges = selection.getRanges();
+ // We can use computedState provided by the browser or traverse parents manually.
+ if ( !useComputedState )
+ selectedElement = getElementForDirection( path.lastElement, editor.editable() );
- selectedElement = ranges && ranges[ 0 ].getEnclosedNode();
+ selectedElement = selectedElement || path.block || path.blockLimit;
- // If this is not our element of interest, apply to fully selected elements from guardElements.
- if ( !selectedElement || selectedElement
- && !( selectedElement.type == CKEDITOR.NODE_ELEMENT && selectedElement.getName() in directSelectionGuardElements )
- )
- selectedElement = getFullySelected( selection, guardElements );
+ // If we're having BODY here, user probably done CTRL+A, let's try to get the enclosed node, if any.
+ if ( selectedElement.equals( editor.editable() ) ) {
+ var enclosedNode = editor.getSelection().getRanges()[ 0 ].getEnclosedNode();
+ enclosedNode && enclosedNode.type == CKEDITOR.NODE_ELEMENT && ( selectedElement = enclosedNode );
}
- selectedElement = selectedElement || path.block || path.blockLimit;
-
- if ( !selectedElement || selectedElement.getName() == 'body' )
+ if ( !selectedElement )
return;
- var selectionDir = useComputedState ?
- selectedElement.getComputedStyle( 'direction' ) :
- selectedElement.getStyle( 'direction' ) || selectedElement.getAttribute( 'dir' );
+ var selectionDir = useComputedState ? selectedElement.getComputedStyle( 'direction' ) : selectedElement.getStyle( 'direction' ) || selectedElement.getAttribute( 'dir' );
editor.getCommand( 'bidirtl' ).setState( selectionDir == 'rtl' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
editor.getCommand( 'bidiltr' ).setState( selectionDir == 'ltr' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
+ }
+
+ function handleMixedDirContent( editor, path ) {
+ var directionNode = path.block || path.blockLimit || editor.editable();
+ var pathDir = directionNode.getDirection( 1 );
+ if ( pathDir != ( editor._.selDir || editor.lang.dir ) ) {
+ editor._.selDir = pathDir;
+ editor.fire( 'contentDirChanged', pathDir );
+ }
+ }
- var chromeRoot = editor.container.getChild( 1 );
+ // Returns element with possibility of applying the direction.
+ // @param node
+ function getElementForDirection( node, root ) {
+ while ( node && !( node.getName() in allGuardElements || node.equals( root ) ) ) {
+ var parent = node.getParent();
+ if ( !parent )
+ break;
- if ( selectionDir != editor.lang.dir )
- chromeRoot.addClass( 'cke_mixed_dir_content' );
- else
- chromeRoot.removeClass( 'cke_mixed_dir_content' );
+ node = parent;
+ }
+
+ return node;
}
- function switchDir( element, dir, editor )
- {
- var dirBefore = element.getComputedStyle( 'direction' ),
- currentDir = element.getStyle( 'direction' ) || element.getAttribute( 'dir' ) || '';
+ function switchDir( element, dir, editor, database ) {
+ if ( element.isReadOnly() || element.equals( editor.editable() ) )
+ return;
+
+ // Mark this element as processed by switchDir.
+ CKEDITOR.dom.element.setMarker( database, element, 'bidi_processed', 1 );
+
+ // Check whether one of the ancestors has already been styled.
+ var parent = element,
+ editable = editor.editable();
+ while ( ( parent = parent.getParent() ) && !parent.equals( editable ) ) {
+ if ( parent.getCustomData( 'bidi_processed' ) ) {
+ // Ancestor style must dominate.
+ element.removeStyle( 'direction' );
+ element.removeAttribute( 'dir' );
+ return;
+ }
+ }
+
+ var useComputedState = ( 'useComputedState' in editor.config ) ? editor.config.useComputedState : 1;
+ var elementDir = useComputedState ? element.getComputedStyle( 'direction' ) : element.getStyle( 'direction' ) || element.hasAttribute( 'dir' );
+
+ // Stop if direction is same as present.
+ if ( elementDir == dir )
+ return;
+
+ // Clear direction on this element.
element.removeStyle( 'direction' );
- if ( currentDir.toLowerCase() == dir )
+ // Do the second check when computed state is ON, to check
+ // if we need to apply explicit direction on this element.
+ if ( useComputedState ) {
element.removeAttribute( 'dir' );
- else
+ if ( dir != element.getComputedStyle( 'direction' ) )
+ element.setAttribute( 'dir', dir );
+ } else
+ // Set new direction for this element.
element.setAttribute( 'dir', dir );
- // If the element direction changed, we need to switch the margins of
- // the element and all its children, so it will get really reflected
- // like a mirror. (#5910)
- var dirAfter = element.getComputedStyle( 'direction' );
- if ( dirAfter != dirBefore )
- {
- var range = new CKEDITOR.dom.range( element.getDocument() );
- range.setStartBefore( element );
- range.setEndAfter( element );
-
- var walker = new CKEDITOR.dom.walker( range );
-
- var node;
- while ( ( node = walker.next() ) )
- {
- if ( node.type == CKEDITOR.NODE_ELEMENT )
- {
- // A child with dir defined is to be ignored.
- if ( !node.equals( element ) && node.hasAttribute( 'dir' ) )
- {
- range.setStartAfter( node );
- walker = new CKEDITOR.dom.walker( range );
- continue;
- }
+ editor.forceNextSelectionCheck();
- // Switch the margins.
- var marginLeft = node.getStyle( 'margin-right' ),
- marginRight = node.getStyle( 'margin-left' );
+ return;
+ }
- marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' );
- marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' );
- }
- }
- }
+ function getFullySelected( range, elements, enterMode ) {
+ var ancestor = range.getCommonAncestor( false, true );
- editor.forceNextSelectionCheck();
- }
+ range = range.clone();
+ range.enlarge( enterMode == CKEDITOR.ENTER_BR ? CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
+
+ if ( range.checkBoundaryOfElement( ancestor, CKEDITOR.START ) && range.checkBoundaryOfElement( ancestor, CKEDITOR.END ) ) {
+ var parent;
+ while ( ancestor && ancestor.type == CKEDITOR.NODE_ELEMENT && ( parent = ancestor.getParent() ) && parent.getChildCount() == 1 && !( ancestor.getName() in elements ) )
+ ancestor = parent;
- function getFullySelected( selection, elements )
- {
- var selectedElement = selection.getCommonAncestor();
- while( selectedElement.type == CKEDITOR.NODE_ELEMENT
- && !( selectedElement.getName() in elements )
- && selectedElement.getParent().getChildCount() == 1
- )
- selectedElement = selectedElement.getParent();
-
- return selectedElement.type == CKEDITOR.NODE_ELEMENT
- && ( selectedElement.getName() in elements )
- && selectedElement;
+ return ancestor.type == CKEDITOR.NODE_ELEMENT && ( ancestor.getName() in elements ) && ancestor;
+ }
}
- function bidiCommand( dir )
- {
- return function( editor )
- {
- var selection = editor.getSelection(),
- enterMode = editor.config.enterMode,
- ranges = selection.getRanges();
-
- if ( ranges && ranges.length )
- {
- // Apply do directly selected elements from guardElements.
- var selectedElement = ranges[ 0 ].getEnclosedNode();
-
- // If this is not our element of interest, apply to fully selected elements from guardElements.
- if ( !selectedElement || selectedElement
- && !( selectedElement.type == CKEDITOR.NODE_ELEMENT && selectedElement.getName() in directSelectionGuardElements )
- )
- selectedElement = getFullySelected( selection, guardElements );
-
- if ( selectedElement )
- {
- if ( !selectedElement.isReadOnly() )
- switchDir( selectedElement, dir, editor );
- }
- else
- {
+ function bidiCommand( dir ) {
+ return {
+ // It applies to a "block-like" context.
+ context: 'p',
+ refresh: function( editor, path ) {
+ setToolbarStates( editor, path );
+ handleMixedDirContent( editor, path );
+ },
+ exec: function( editor ) {
+ var selection = editor.getSelection(),
+ enterMode = editor.config.enterMode,
+ ranges = selection.getRanges();
+
+ if ( ranges && ranges.length ) {
+ var database = {};
+
// Creates bookmarks for selection, as we may split some blocks.
var bookmarks = selection.createBookmarks();
- var iterator,
- block;
+ var rangeIterator = ranges.createIterator(),
+ range,
+ i = 0;
+
+ while ( ( range = rangeIterator.getNextRange( 1 ) ) ) {
+ // Apply do directly selected elements from guardElements.
+ var selectedElement = range.getEnclosedNode();
+
+ // If this is not our element of interest, apply to fully selected elements from guardElements.
+ if ( !selectedElement || selectedElement && !( selectedElement.type == CKEDITOR.NODE_ELEMENT && selectedElement.getName() in directSelectionGuardElements ) )
+ selectedElement = getFullySelected( range, guardElements, enterMode );
+
+ selectedElement && switchDir( selectedElement, dir, editor, database );
+
+ var iterator, block;
- for ( var i = ranges.length - 1 ; i >= 0 ; i-- )
- {
- // Array of elements processed as guardElements.
- var processedElements = [];
// Walker searching for guardElements.
- var walker = new CKEDITOR.dom.walker( ranges[ i ] );
- walker.evaluator = function( node ){
- return node.type == CKEDITOR.NODE_ELEMENT
- && node.getName() in guardElements
- && !( node.getName() == ( enterMode == CKEDITOR.ENTER_P ) ? 'p' : 'div'
- && node.getParent().type == CKEDITOR.NODE_ELEMENT
- && node.getParent().getName() == 'blockquote'
- );
+ var walker = new CKEDITOR.dom.walker( range );
+
+ var start = bookmarks[ i ].startNode,
+ end = bookmarks[ i++ ].endNode;
+
+ walker.evaluator = function( node ) {
+ return !!( node.type == CKEDITOR.NODE_ELEMENT && node.getName() in guardElements && !( node.getName() == ( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) && node.getParent().type == CKEDITOR.NODE_ELEMENT && node.getParent().getName() == 'blockquote' )
+ // Element must be fully included in the range as well. (#6485).
+ && node.getPosition( start ) & CKEDITOR.POSITION_FOLLOWING && ( ( node.getPosition( end ) & CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_CONTAINS ) == CKEDITOR.POSITION_PRECEDING ) );
};
while ( ( block = walker.next() ) )
- {
- switchDir( block, dir, editor );
- processedElements.push( block );
- }
+ switchDir( block, dir, editor, database );
- iterator = ranges[ i ].createIterator();
+ iterator = range.createIterator();
iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR;
while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) )
- {
- if ( block.isReadOnly() )
- continue;
-
- var _break = 0;
-
- // Check if block have been already processed by the walker above.
- for ( var ii = 0; ii < processedElements.length; ii++ )
- {
- var parent = block.getParent();
-
- while( parent && parent.getName() != 'body' )
- {
- if ( ( parent.$.isSameNode && parent.$.isSameNode( processedElements[ ii ].$ ) )
- || parent.$ == processedElements[ ii ].$ )
- {
- _break = 1;
- break;
- }
- parent = parent.getParent();
- }
-
- if ( _break )
- break;
- }
-
- if ( !_break )
- {
- switchDir( block, dir, editor );
- }
- }
+ switchDir( block, dir, editor, database );
}
+ CKEDITOR.dom.element.clearAllMarkers( database );
+
editor.forceNextSelectionCheck();
// Restore selection position.
selection.selectBookmarks( bookmarks );
- }
- editor.focus();
+ editor.focus();
+ }
}
};
}
- CKEDITOR.plugins.add( 'bidi',
- {
- requires : [ 'styles', 'button' ],
+ CKEDITOR.plugins.add( 'bidi', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'bidiltr,bidirtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- init : function( editor )
- {
// All buttons use the same code to register. So, to avoid
// duplications, let's use this tool function.
- var addButtonCommand = function( buttonName, buttonLabel, commandName, commandExec )
- {
- editor.addCommand( commandName, new CKEDITOR.command( editor, { exec : commandExec }) );
-
- editor.ui.addButton( buttonName,
- {
- label : buttonLabel,
- command : commandName
+ function addButtonCommand( buttonName, buttonLabel, commandName, commandDef, order ) {
+ editor.addCommand( commandName, new CKEDITOR.command( editor, commandDef ) );
+
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( buttonName, {
+ label: buttonLabel,
+ command: commandName,
+ toolbar: 'bidi,' + order
});
- };
+ }
+ }
var lang = editor.lang.bidi;
- addButtonCommand( 'BidiLtr', lang.ltr, 'bidiltr', bidiCommand( 'ltr' ) );
- addButtonCommand( 'BidiRtl', lang.rtl, 'bidirtl', bidiCommand( 'rtl' ) );
+ if ( editor.ui.addToolbarGroup )
+ editor.ui.addToolbarGroup( 'bidi', 'align', 'paragraph' );
- editor.on( 'selectionChange', onSelectionChange );
+ addButtonCommand( 'BidiLtr', lang.ltr, 'bidiltr', bidiCommand( 'ltr' ), 10 );
+ addButtonCommand( 'BidiRtl', lang.rtl, 'bidirtl', bidiCommand( 'rtl' ), 20 );
+
+ editor.on( 'contentDom', function() {
+ editor.document.on( 'dirChanged', function( evt ) {
+ editor.fire( 'dirChanged', {
+ node: evt.data,
+ dir: evt.data.getDirection( 1 )
+ });
+ });
+ });
+
+ // Indicate that the current selection is in different direction than the UI.
+ editor.on( 'contentDirChanged', function( evt ) {
+ var func = ( editor.lang.dir != evt.data ? 'add' : 'remove' ) + 'Class';
+ var toolbar = editor.ui.space( editor.config.toolbarLocation );
+ if ( toolbar )
+ toolbar[ func ]( 'cke_mixed_dir_content' );
+ });
}
});
+ // If the element direction changed, we need to switch the margins of
+ // the element and all its children, so it will get really reflected
+ // like a mirror. (#5910)
+ function isOffline( el ) {
+ var html = el.getDocument().getBody().getParent();
+ while ( el ) {
+ if ( el.equals( html ) )
+ return false;
+ el = el.getParent();
+ }
+ return true;
+ }
+
+ function dirChangeNotifier( org ) {
+ var isAttribute = org == elementProto.setAttribute,
+ isRemoveAttribute = org == elementProto.removeAttribute,
+ dirStyleRegexp = /\bdirection\s*:\s*(.*?)\s*(:?$|;)/;
+
+ return function( name, val ) {
+ if ( !this.isReadOnly() ) {
+ var orgDir;
+ if ( ( name == ( isAttribute || isRemoveAttribute ? 'dir' : 'direction' ) || name == 'style' && ( isRemoveAttribute || dirStyleRegexp.test( val ) ) ) && !isOffline( this ) ) {
+ orgDir = this.getDirection( 1 );
+ var retval = org.apply( this, arguments );
+ if ( orgDir != this.getDirection( 1 ) ) {
+ this.getDocument().fire( 'dirChanged', this );
+ return retval;
+ }
+ }
+ }
+
+ return org.apply( this, arguments );
+ };
+ }
+
+ var elementProto = CKEDITOR.dom.element.prototype,
+ methods = [ 'setStyle', 'removeStyle', 'setAttribute', 'removeAttribute' ];
+ for ( var i = 0; i < methods.length; i++ )
+ elementProto[ methods[ i ] ] = CKEDITOR.tools.override( elementProto[ methods[ i ] ], dirChangeNotifier );
})();
+
+/**
+ * Fired when the language direction of an element is changed.
+ *
+ * @event dirChanged
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {CKEDITOR.dom.node} data.node The element that is being changed.
+ * @param {String} data.dir The new direction.
+ */
+
+/**
+ * Fired when the language direction in the specific cursor position is changed
+ *
+ * @event contentDirChanged
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {String} data The direction in the current position.
+ */
diff --git a/devel/third-party/ckeditor/plugins/blockquote/icons/blockquote.png b/devel/third-party/ckeditor/plugins/blockquote/icons/blockquote.png
new file mode 100644
index 0000000..517e6e2
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/blockquote/icons/blockquote.png differ
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/af.js b/devel/third-party/ckeditor/plugins/blockquote/lang/af.js
new file mode 100644
index 0000000..2e49b7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'af', {
+ toolbar: 'Sitaatblok'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ar.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ar.js
new file mode 100644
index 0000000..4608efa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ar', {
+ toolbar: 'Ø§ÙØªØ¨Ø§Ø³'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/bg.js b/devel/third-party/ckeditor/plugins/blockquote/lang/bg.js
new file mode 100644
index 0000000..d1a6926
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'bg', {
+ toolbar: 'Ðлок за ÑиÑаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/bn.js b/devel/third-party/ckeditor/plugins/blockquote/lang/bn.js
new file mode 100644
index 0000000..4feb460
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'bn', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/bs.js b/devel/third-party/ckeditor/plugins/blockquote/lang/bs.js
new file mode 100644
index 0000000..a75a5ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'bs', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ca.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ca.js
new file mode 100644
index 0000000..3c94506
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ca', {
+ toolbar: 'Bloc de cita'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/cs.js b/devel/third-party/ckeditor/plugins/blockquote/lang/cs.js
new file mode 100644
index 0000000..1c35a1a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'cs', {
+ toolbar: 'Citace'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/cy.js b/devel/third-party/ckeditor/plugins/blockquote/lang/cy.js
new file mode 100644
index 0000000..c53362f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'cy', {
+ toolbar: 'Dyfyniad bloc'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/da.js b/devel/third-party/ckeditor/plugins/blockquote/lang/da.js
new file mode 100644
index 0000000..2604638
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'da', {
+ toolbar: 'Blokcitat'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/de.js b/devel/third-party/ckeditor/plugins/blockquote/lang/de.js
new file mode 100644
index 0000000..0b03678
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'de', {
+ toolbar: 'Zitatblock'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/el.js b/devel/third-party/ckeditor/plugins/blockquote/lang/el.js
new file mode 100644
index 0000000..b1222c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'el', {
+ toolbar: 'ΠεÏιοÏή ΠαÏάθεÏηÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/en-au.js b/devel/third-party/ckeditor/plugins/blockquote/lang/en-au.js
new file mode 100644
index 0000000..c2d0fe7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'en-au', {
+ toolbar: 'Block Quote'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/en-ca.js b/devel/third-party/ckeditor/plugins/blockquote/lang/en-ca.js
new file mode 100644
index 0000000..63d1472
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'en-ca', {
+ toolbar: 'Block Quote'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/en-gb.js b/devel/third-party/ckeditor/plugins/blockquote/lang/en-gb.js
new file mode 100644
index 0000000..c7cffe2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'en-gb', {
+ toolbar: 'Block Quote'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/en.js b/devel/third-party/ckeditor/plugins/blockquote/lang/en.js
new file mode 100644
index 0000000..4e1ace0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'en', {
+ toolbar: 'Block Quote'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/eo.js b/devel/third-party/ckeditor/plugins/blockquote/lang/eo.js
new file mode 100644
index 0000000..37c255d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'eo', {
+ toolbar: 'Citaĵo'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/es.js b/devel/third-party/ckeditor/plugins/blockquote/lang/es.js
new file mode 100644
index 0000000..2fc8a93
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'es', {
+ toolbar: 'Cita'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/et.js b/devel/third-party/ckeditor/plugins/blockquote/lang/et.js
new file mode 100644
index 0000000..dff7315
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'et', {
+ toolbar: 'Blokktsitaat'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/eu.js b/devel/third-party/ckeditor/plugins/blockquote/lang/eu.js
new file mode 100644
index 0000000..90f9a9d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'eu', {
+ toolbar: 'Aipamen blokea'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/fa.js b/devel/third-party/ckeditor/plugins/blockquote/lang/fa.js
new file mode 100644
index 0000000..3eb4d2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'fa', {
+ toolbar: 'بÙÙÚ© ÙÙÙ ÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/fi.js b/devel/third-party/ckeditor/plugins/blockquote/lang/fi.js
new file mode 100644
index 0000000..66d261e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'fi', {
+ toolbar: 'Lainaus'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/fo.js b/devel/third-party/ckeditor/plugins/blockquote/lang/fo.js
new file mode 100644
index 0000000..b79f1c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'fo', {
+ toolbar: 'Blockquote'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/blockquote/lang/fr-ca.js
new file mode 100644
index 0000000..9203504
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'fr-ca', {
+ toolbar: 'Citation'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/fr.js b/devel/third-party/ckeditor/plugins/blockquote/lang/fr.js
new file mode 100644
index 0000000..896db27
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'fr', {
+ toolbar: 'Citation'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/gl.js b/devel/third-party/ckeditor/plugins/blockquote/lang/gl.js
new file mode 100644
index 0000000..f8994af
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'gl', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/gu.js b/devel/third-party/ckeditor/plugins/blockquote/lang/gu.js
new file mode 100644
index 0000000..ee69590
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'gu', {
+ toolbar: 'બà«àª²à«àª-àªà«àª, àª
વતરણàªàª¿àª¹à«àª¨à«'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/he.js b/devel/third-party/ckeditor/plugins/blockquote/lang/he.js
new file mode 100644
index 0000000..943a62c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'he', {
+ toolbar: '××××§ צ××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/hi.js b/devel/third-party/ckeditor/plugins/blockquote/lang/hi.js
new file mode 100644
index 0000000..9cbb90e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'hi', {
+ toolbar: 'बà¥à¤²à¥à¤-à¤à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/hr.js b/devel/third-party/ckeditor/plugins/blockquote/lang/hr.js
new file mode 100644
index 0000000..87c212e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'hr', {
+ toolbar: 'Blockquote'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/hu.js b/devel/third-party/ckeditor/plugins/blockquote/lang/hu.js
new file mode 100644
index 0000000..ed46c71
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'hu', {
+ toolbar: 'Idézet blokk'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/is.js b/devel/third-party/ckeditor/plugins/blockquote/lang/is.js
new file mode 100644
index 0000000..a40d766
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'is', {
+ toolbar: 'Inndráttur'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/it.js b/devel/third-party/ckeditor/plugins/blockquote/lang/it.js
new file mode 100644
index 0000000..06799e8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'it', {
+ toolbar: 'Citazione'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ja.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ja.js
new file mode 100644
index 0000000..1dfb059
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ja', {
+ toolbar: 'ãããã¯å¼ç¨'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ka.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ka.js
new file mode 100644
index 0000000..081d963
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ka', {
+ toolbar: 'áªáá¢áá¢á'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/km.js b/devel/third-party/ckeditor/plugins/blockquote/lang/km.js
new file mode 100644
index 0000000..83462e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'km', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ko.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ko.js
new file mode 100644
index 0000000..1d1f6c9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ko', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ku.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ku.js
new file mode 100644
index 0000000..6821fc4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ku', {
+ toolbar: 'Ø¨ÛØ±Ø¨ÛستکردÙÛ ÙØªÛÛ ÙÛØ±Ú¯ÛراÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/lt.js b/devel/third-party/ckeditor/plugins/blockquote/lang/lt.js
new file mode 100644
index 0000000..722009e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'lt', {
+ toolbar: 'Citata'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/lv.js b/devel/third-party/ckeditor/plugins/blockquote/lang/lv.js
new file mode 100644
index 0000000..dc6358c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'lv', {
+ toolbar: 'Bloka citÄts'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/mk.js b/devel/third-party/ckeditor/plugins/blockquote/lang/mk.js
new file mode 100644
index 0000000..e04a57e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'mk', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/mn.js b/devel/third-party/ckeditor/plugins/blockquote/lang/mn.js
new file mode 100644
index 0000000..8dbe05e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'mn', {
+ toolbar: 'ÐÑлÑл Ñ
ÑÑÑг'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ms.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ms.js
new file mode 100644
index 0000000..53c314d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ms', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/nb.js b/devel/third-party/ckeditor/plugins/blockquote/lang/nb.js
new file mode 100644
index 0000000..8a7ad58
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'nb', {
+ toolbar: 'Sitatblokk'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/nl.js b/devel/third-party/ckeditor/plugins/blockquote/lang/nl.js
new file mode 100644
index 0000000..5fbb18a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'nl', {
+ toolbar: 'Citaatblok'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/no.js b/devel/third-party/ckeditor/plugins/blockquote/lang/no.js
new file mode 100644
index 0000000..ababd17
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'no', {
+ toolbar: 'Sitatblokk'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/pl.js b/devel/third-party/ckeditor/plugins/blockquote/lang/pl.js
new file mode 100644
index 0000000..f4e169f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'pl', {
+ toolbar: 'Cytat'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/pt-br.js b/devel/third-party/ckeditor/plugins/blockquote/lang/pt-br.js
new file mode 100644
index 0000000..641b7be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'pt-br', {
+ toolbar: 'Citação'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/pt.js b/devel/third-party/ckeditor/plugins/blockquote/lang/pt.js
new file mode 100644
index 0000000..18b5f96
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'pt', {
+ toolbar: 'Bloco de citação'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ro.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ro.js
new file mode 100644
index 0000000..9c83376
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ro', {
+ toolbar: 'Citat'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ru.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ru.js
new file mode 100644
index 0000000..3a1c48b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ru', {
+ toolbar: 'ЦиÑаÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/sk.js b/devel/third-party/ckeditor/plugins/blockquote/lang/sk.js
new file mode 100644
index 0000000..63bc95b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'sk', {
+ toolbar: 'Citácia'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/sl.js b/devel/third-party/ckeditor/plugins/blockquote/lang/sl.js
new file mode 100644
index 0000000..cacbb26
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'sl', {
+ toolbar: 'Citat'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/blockquote/lang/sr-latn.js
new file mode 100644
index 0000000..df6d594
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'sr-latn', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/sr.js b/devel/third-party/ckeditor/plugins/blockquote/lang/sr.js
new file mode 100644
index 0000000..d0eae8a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'sr', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/sv.js b/devel/third-party/ckeditor/plugins/blockquote/lang/sv.js
new file mode 100644
index 0000000..64bd73d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'sv', {
+ toolbar: 'Blockcitat'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/th.js b/devel/third-party/ckeditor/plugins/blockquote/lang/th.js
new file mode 100644
index 0000000..7e00047
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'th', {
+ toolbar: 'Block Quote' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/tr.js b/devel/third-party/ckeditor/plugins/blockquote/lang/tr.js
new file mode 100644
index 0000000..68d993a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'tr', {
+ toolbar: 'Blok OluÅtur'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/ug.js b/devel/third-party/ckeditor/plugins/blockquote/lang/ug.js
new file mode 100644
index 0000000..b4a7abe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'ug', {
+ toolbar: 'بÛÙÛÙ ÙÛÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/uk.js b/devel/third-party/ckeditor/plugins/blockquote/lang/uk.js
new file mode 100644
index 0000000..8d654a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'uk', {
+ toolbar: 'ЦиÑаÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/vi.js b/devel/third-party/ckeditor/plugins/blockquote/lang/vi.js
new file mode 100644
index 0000000..f68cc30
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'vi', {
+ toolbar: 'Khá»i trÃch dẫn'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/blockquote/lang/zh-cn.js
new file mode 100644
index 0000000..51cf190
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'zh-cn', {
+ toolbar: 'åå¼ç¨'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/lang/zh.js b/devel/third-party/ckeditor/plugins/blockquote/lang/zh.js
new file mode 100644
index 0000000..2640c73
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/blockquote/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'blockquote', 'zh', {
+ toolbar: 'å¼ç¨æå'
+});
diff --git a/devel/third-party/ckeditor/plugins/blockquote/plugin.js b/devel/third-party/ckeditor/plugins/blockquote/plugin.js
index 128e267..d55da7d 100644
--- a/devel/third-party/ckeditor/plugins/blockquote/plugin.js
+++ b/devel/third-party/ckeditor/plugins/blockquote/plugin.js
@@ -1,53 +1,22 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @file Blockquote.
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-(function()
-{
- function getState( editor, path )
- {
- var firstBlock = path.block || path.blockLimit;
-
- if ( !firstBlock || firstBlock.getName() == 'body' )
- return CKEDITOR.TRISTATE_OFF;
-
- // See if the first block has a blockquote parent.
- if ( firstBlock.getAscendant( 'blockquote', true ) )
- return CKEDITOR.TRISTATE_ON;
-
- return CKEDITOR.TRISTATE_OFF;
- }
-
- function onSelectionChange( evt )
- {
- var editor = evt.editor,
- command = editor.getCommand( 'blockquote' );
- command.state = getState( editor, evt.data.path );
- command.fire( 'state' );
- }
-
- function noBlockLeft( bqBlock )
- {
- for ( var i = 0, length = bqBlock.getChildCount(), child ; i < length && ( child = bqBlock.getChild( i ) ) ; i++ )
- {
+(function() {
+ function noBlockLeft( bqBlock ) {
+ for ( var i = 0, length = bqBlock.getChildCount(), child; i < length && ( child = bqBlock.getChild( i ) ); i++ ) {
if ( child.type == CKEDITOR.NODE_ELEMENT && child.isBlockBoundary() )
return false;
}
return true;
}
- var commandObject =
- {
- exec : function( editor )
- {
+ var commandObject = {
+ exec: function( editor ) {
var state = editor.getCommand( 'blockquote' ).state,
selection = editor.getSelection(),
- range = selection && selection.getRanges( true )[0];
+ range = selection && selection.getRanges( true )[ 0 ];
if ( !range )
return;
@@ -57,35 +26,25 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Kludge for #1592: if the bookmark nodes are in the beginning of
// blockquote, then move them to the nearest block element in the
// blockquote.
- if ( CKEDITOR.env.ie )
- {
- var bookmarkStart = bookmarks[0].startNode,
- bookmarkEnd = bookmarks[0].endNode,
+ if ( CKEDITOR.env.ie ) {
+ var bookmarkStart = bookmarks[ 0 ].startNode,
+ bookmarkEnd = bookmarks[ 0 ].endNode,
cursor;
- if ( bookmarkStart && bookmarkStart.getParent().getName() == 'blockquote' )
- {
+ if ( bookmarkStart && bookmarkStart.getParent().getName() == 'blockquote' ) {
cursor = bookmarkStart;
- while ( ( cursor = cursor.getNext() ) )
- {
- if ( cursor.type == CKEDITOR.NODE_ELEMENT &&
- cursor.isBlockBoundary() )
- {
+ while ( ( cursor = cursor.getNext() ) ) {
+ if ( cursor.type == CKEDITOR.NODE_ELEMENT && cursor.isBlockBoundary() ) {
bookmarkStart.move( cursor, true );
break;
}
}
}
- if ( bookmarkEnd
- && bookmarkEnd.getParent().getName() == 'blockquote' )
- {
+ if ( bookmarkEnd && bookmarkEnd.getParent().getName() == 'blockquote' ) {
cursor = bookmarkEnd;
- while ( ( cursor = cursor.getPrevious() ) )
- {
- if ( cursor.type == CKEDITOR.NODE_ELEMENT &&
- cursor.isBlockBoundary() )
- {
+ while ( ( cursor = cursor.getPrevious() ) ) {
+ if ( cursor.type == CKEDITOR.NODE_ELEMENT && cursor.isBlockBoundary() ) {
bookmarkEnd.move( cursor );
break;
}
@@ -95,16 +54,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var iterator = range.createIterator(),
block;
+ iterator.enlargeBr = editor.config.enterMode != CKEDITOR.ENTER_BR;
- if ( state == CKEDITOR.TRISTATE_OFF )
- {
+ if ( state == CKEDITOR.TRISTATE_OFF ) {
var paragraphs = [];
while ( ( block = iterator.getNextParagraph() ) )
paragraphs.push( block );
// If no paragraphs, create one from the current selection position.
- if ( paragraphs.length < 1 )
- {
+ if ( paragraphs.length < 1 ) {
var para = editor.document.createElement( editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ),
firstBookmark = bookmarks.shift();
range.insertNode( para );
@@ -118,24 +76,22 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
// Make sure all paragraphs have the same parent.
- var commonParent = paragraphs[0].getParent(),
+ var commonParent = paragraphs[ 0 ].getParent(),
tmp = [];
- for ( var i = 0 ; i < paragraphs.length ; i++ )
- {
- block = paragraphs[i];
+ for ( var i = 0; i < paragraphs.length; i++ ) {
+ block = paragraphs[ i ];
commonParent = commonParent.getCommonAncestor( block.getParent() );
}
// The common parent must not be the following tags: table, tbody, tr, ol, ul.
- var denyTags = { table : 1, tbody : 1, tr : 1, ol : 1, ul : 1 };
+ var denyTags = { table:1,tbody:1,tr:1,ol:1,ul:1 };
while ( denyTags[ commonParent.getName() ] )
commonParent = commonParent.getParent();
// Reconstruct the block list to be processed such that all resulting blocks
// satisfy parentNode.equals( commonParent ).
var lastBlock = null;
- while ( paragraphs.length > 0 )
- {
+ while ( paragraphs.length > 0 ) {
block = paragraphs.shift();
while ( !block.getParent().equals( commonParent ) )
block = block.getParent();
@@ -146,46 +102,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// If any of the selected blocks is a blockquote, remove it to prevent
// nested blockquotes.
- while ( tmp.length > 0 )
- {
+ while ( tmp.length > 0 ) {
block = tmp.shift();
- if ( block.getName() == 'blockquote' )
- {
+ if ( block.getName() == 'blockquote' ) {
var docFrag = new CKEDITOR.dom.documentFragment( editor.document );
- while ( block.getFirst() )
- {
+ while ( block.getFirst() ) {
docFrag.append( block.getFirst().remove() );
paragraphs.push( docFrag.getLast() );
}
docFrag.replace( block );
- }
- else
+ } else
paragraphs.push( block );
}
// Now we have all the blocks to be included in a new blockquote node.
var bqBlock = editor.document.createElement( 'blockquote' );
- bqBlock.insertBefore( paragraphs[0] );
- while ( paragraphs.length > 0 )
- {
+ bqBlock.insertBefore( paragraphs[ 0 ] );
+ while ( paragraphs.length > 0 ) {
block = paragraphs.shift();
bqBlock.append( block );
}
- }
- else if ( state == CKEDITOR.TRISTATE_ON )
- {
+ } else if ( state == CKEDITOR.TRISTATE_ON ) {
var moveOutNodes = [],
database = {};
- while ( ( block = iterator.getNextParagraph() ) )
- {
+ while ( ( block = iterator.getNextParagraph() ) ) {
var bqParent = null,
bqChild = null;
- while ( block.getParent() )
- {
- if ( block.getParent().getName() == 'blockquote' )
- {
+ while ( block.getParent() ) {
+ if ( block.getParent().getName() == 'blockquote' ) {
bqParent = block.getParent();
bqChild = block;
break;
@@ -195,8 +141,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Remember the blocks that were recorded down in the moveOutNodes array
// to prevent duplicates.
- if ( bqParent && bqChild && !bqChild.getCustomData( 'blockquote_moveout' ) )
- {
+ if ( bqParent && bqChild && !bqChild.getCustomData( 'blockquote_moveout' ) ) {
moveOutNodes.push( bqChild );
CKEDITOR.dom.element.setMarker( database, bqChild, 'blockquote_moveout', true );
}
@@ -208,8 +153,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
processedBlockquoteBlocks = [];
database = {};
- while ( moveOutNodes.length > 0 )
- {
+ while ( moveOutNodes.length > 0 ) {
var node = moveOutNodes.shift();
bqBlock = node.getParent();
@@ -220,15 +164,13 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
node.remove().insertBefore( bqBlock );
else if ( !node.getNext() )
node.remove().insertAfter( bqBlock );
- else
- {
+ else {
node.breakParent( node.getParent() );
processedBlockquoteBlocks.push( node.getNext() );
}
// Remember the blockquote node so we can clear it later (if it becomes empty).
- if ( !bqBlock.getCustomData( 'blockquote_processed' ) )
- {
+ if ( !bqBlock.getCustomData( 'blockquote_processed' ) ) {
processedBlockquoteBlocks.push( bqBlock );
CKEDITOR.dom.element.setMarker( database, bqBlock, 'blockquote_processed', true );
}
@@ -239,30 +181,24 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
CKEDITOR.dom.element.clearAllMarkers( database );
// Clear blockquote nodes that have become empty.
- for ( i = processedBlockquoteBlocks.length - 1 ; i >= 0 ; i-- )
- {
- bqBlock = processedBlockquoteBlocks[i];
+ for ( i = processedBlockquoteBlocks.length - 1; i >= 0; i-- ) {
+ bqBlock = processedBlockquoteBlocks[ i ];
if ( noBlockLeft( bqBlock ) )
bqBlock.remove();
}
- if ( editor.config.enterMode == CKEDITOR.ENTER_BR )
- {
+ if ( editor.config.enterMode == CKEDITOR.ENTER_BR ) {
var firstTime = true;
- while ( movedNodes.length )
- {
+ while ( movedNodes.length ) {
node = movedNodes.shift();
- if ( node.getName() == 'div' )
- {
+ if ( node.getName() == 'div' ) {
docFrag = new CKEDITOR.dom.documentFragment( editor.document );
- var needBeginBr = firstTime && node.getPrevious() &&
- !( node.getPrevious().type == CKEDITOR.NODE_ELEMENT && node.getPrevious().isBlockBoundary() );
+ var needBeginBr = firstTime && node.getPrevious() && !( node.getPrevious().type == CKEDITOR.NODE_ELEMENT && node.getPrevious().isBlockBoundary() );
if ( needBeginBr )
docFrag.append( editor.document.createElement( 'br' ) );
- var needEndBr = node.getNext() &&
- !( node.getNext().type == CKEDITOR.NODE_ELEMENT && node.getNext().isBlockBoundary() );
+ var needEndBr = node.getNext() && !( node.getNext().type == CKEDITOR.NODE_ELEMENT && node.getNext().isBlockBoundary() );
while ( node.getFirst() )
node.getFirst().remove().appendTo( docFrag );
@@ -278,24 +214,31 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
selection.selectBookmarks( bookmarks );
editor.focus();
- }
- };
+ },
- CKEDITOR.plugins.add( 'blockquote',
- {
- init : function( editor )
- {
- editor.addCommand( 'blockquote', commandObject );
+ refresh: function( editor, path ) {
+ // Check if inside of blockquote.
+ var firstBlock = path.block || path.blockLimit;
+ this.setState( editor.elementPath( firstBlock ).contains( 'blockquote', 1 ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
+ },
- editor.ui.addButton( 'Blockquote',
- {
- label : editor.lang.blockquote,
- command : 'blockquote'
- } );
+ context: 'blockquote'
+ };
- editor.on( 'selectionChange', onSelectionChange );
- },
+ CKEDITOR.plugins.add( 'blockquote', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'blockquote', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- requires : [ 'domiterator' ]
- } );
+ editor.addCommand( 'blockquote', commandObject );
+
+ editor.ui.addButton && editor.ui.addButton( 'Blockquote', {
+ label: editor.lang.blockquote.toolbar,
+ command: 'blockquote',
+ toolbar: 'blocks,10'
+ });
+ }
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/button/plugin.js b/devel/third-party/ckeditor/plugins/button/plugin.js
index f16e192..735c0cd 100644
--- a/devel/third-party/ckeditor/plugins/button/plugin.js
+++ b/devel/third-party/ckeditor/plugins/button/plugin.js
@@ -1,277 +1,327 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'button',
-{
- beforeInit : function( editor )
- {
- editor.ui.addHandler( CKEDITOR.UI_BUTTON, CKEDITOR.ui.button.handler );
- }
-});
-
-/**
- * Button UI element.
- * @constant
- * @example
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-CKEDITOR.UI_BUTTON = 1;
-
-/**
- * Represents a button UI element. This class should not be called directly. To
- * create new buttons use {@link CKEDITOR.ui.prototype.addButton} instead.
- * @constructor
- * @param {Object} definition The button definition.
- * @example
- */
-CKEDITOR.ui.button = function( definition )
-{
- // Copy all definition properties to this object.
- CKEDITOR.tools.extend( this, definition,
- // Set defaults.
- {
- title : definition.label,
- className : definition.className || ( definition.command && 'cke_button_' + definition.command ) || '',
- click : definition.click || function( editor )
- {
- editor.execCommand( definition.command );
- }
- });
- this._ = {};
-};
+(function() {
+ var template = '<a id="{id}"' +
+ ' class="cke_button cke_button__{name} cke_button_{state} {cls}"' +
+ ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 && !CKEDITOR.env.hc ? '' : '" href="javascript:void(\'{titleJs}\')"' ) +
+ ' title="{title}"' +
+ ' tabindex="-1"' +
+ ' hidefocus="true"' +
+ ' role="button"' +
+ ' aria-labelledby="{id}_label"' +
+ ' aria-haspopup="{hasArrow}"';
+
+ // Some browsers don't cancel key events in the keydown but in the
+ // keypress.
+ // TODO: Check if really needed for Gecko+Mac.
+ if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
+ template += ' onkeypress="return false;"';
+
+ // With Firefox, we need to force the button to redraw, otherwise it
+ // will remain in the focus state.
+ if ( CKEDITOR.env.gecko )
+ template += ' onblur="this.style.cssText = this.style.cssText;"';
+
+ template += ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);"' +
+ ' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' +
+ ' onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" ' +
+ ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188
+ '="CKEDITOR.tools.callFunction({clickFn},this);return false;">' +
+ '<span class="cke_button_icon cke_button__{iconName}_icon" style="{style}"';
+
+
+ template += '> </span>' +
+ '<span id="{id}_label" class="cke_button_label cke_button__{name}_label">{label}</span>' +
+ '{arrowHtml}' +
+ '</a>';
+
+ var templateArrow = '<span class="cke_button_arrow">' +
+ // BLACK DOWN-POINTING TRIANGLE
+ ( CKEDITOR.env.hc ? '▼' : '' ) +
+ '</span>';
+
+ var btnArrowTpl = CKEDITOR.addTemplate( 'buttonArrow', templateArrow ),
+ btnTpl = CKEDITOR.addTemplate( 'button', template );
+
+ CKEDITOR.plugins.add( 'button', {
+ beforeInit: function( editor ) {
+ editor.ui.addHandler( CKEDITOR.UI_BUTTON, CKEDITOR.ui.button.handler );
+ }
+ });
-/**
- * Transforms a button definition in a {@link CKEDITOR.ui.button} instance.
- * @type Object
- * @example
- */
-CKEDITOR.ui.button.handler =
-{
- create : function( definition )
- {
- return new CKEDITOR.ui.button( definition );
- }
-};
-
-CKEDITOR.ui.button.prototype =
-{
- canGroup : true,
+ /**
+ * Button UI element.
+ *
+ * @readonly
+ * @property {String} [='button']
+ * @member CKEDITOR
+ */
+ CKEDITOR.UI_BUTTON = 'button';
/**
- * Renders the button.
- * @param {CKEDITOR.editor} editor The editor instance which this button is
- * to be used by.
- * @param {Array} output The output array to which append the HTML relative
- * to this button.
- * @example
+ * Represents a button UI element. This class should not be called directly. To
+ * create new buttons use {@link CKEDITOR.ui#addButton} instead.
+ *
+ * @class
+ * @constructor Creates a button class instance.
+ * @param {Object} definition The button definition.
*/
- render : function( editor, output )
- {
- var env = CKEDITOR.env,
- id = this._.id = 'cke_' + CKEDITOR.tools.getNextNumber(),
- classes = '',
- command = this.command, // Get the command name.
- clickFn,
- index;
-
- this._.editor = editor;
-
- var instance =
+ CKEDITOR.ui.button = function( definition ) {
+ CKEDITOR.tools.extend( this, definition,
+ // Set defaults.
{
- id : id,
- button : this,
- editor : editor,
- focus : function()
- {
- var element = CKEDITOR.document.getById( id );
- element.focus();
- },
- execute : function()
- {
- this.button.click( editor );
+ title: definition.label,
+ click: definition.click ||
+ function( editor ) {
+ editor.execCommand( definition.command );
}
- };
-
- instance.clickFn = clickFn = CKEDITOR.tools.addFunction( instance.execute, instance );
+ });
- instance.index = index = CKEDITOR.ui.button._.instances.push( instance ) - 1;
+ this._ = {};
+ };
- if ( this.modes )
- {
- editor.on( 'mode', function()
- {
- this.setState( this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
- }, this);
+ /**
+ * Represents button handler object.
+ *
+ * @class
+ * @singleton
+ * @extends CKEDITOR.ui.handlerDefinition
+ */
+ CKEDITOR.ui.button.handler = {
+ /**
+ * Transforms a button definition in a {@link CKEDITOR.ui.button} instance.
+ *
+ * @member CKEDITOR.ui.button.handler
+ * @param {Object} definition
+ * @returns {CKEDITOR.ui.button}
+ */
+ create: function( definition ) {
+ return new CKEDITOR.ui.button( definition );
}
- else if ( command )
- {
- // Get the command instance.
- command = editor.getCommand( command );
+ };
+
+ /** @class CKEDITOR.ui.button */
+ CKEDITOR.ui.button.prototype = {
+ /**
+ * Renders the button.
+ *
+ * @param {CKEDITOR.editor} editor The editor instance which this button is
+ * to be used by.
+ * @param {Array} output The output array to which append the HTML relative
+ * to this button.
+ */
+ render: function( editor, output ) {
+ var env = CKEDITOR.env,
+ id = this._.id = CKEDITOR.tools.getNextId(),
+ stateName = '',
+ command = this.command,
+ // Get the command name.
+ clickFn;
+
+ this._.editor = editor;
+
+ var instance = {
+ id: id,
+ button: this,
+ editor: editor,
+ focus: function() {
+ var element = CKEDITOR.document.getById( id );
+ element.focus();
+ },
+ execute: function() {
+ this.button.click( editor );
+ },
+ attach: function( editor ) {
+ this.button.attach( editor );
+ }
+ };
- if ( command )
- {
- command.on( 'state', function()
- {
- this.setState( command.state );
- }, this);
+ var keydownFn = CKEDITOR.tools.addFunction( function( ev ) {
+ if ( instance.onkey ) {
+ ev = new CKEDITOR.dom.event( ev );
+ return ( instance.onkey( instance, ev.getKeystroke() ) !== false );
+ }
+ });
+
+ var focusFn = CKEDITOR.tools.addFunction( function( ev ) {
+ var retVal;
+
+ if ( instance.onfocus )
+ retVal = ( instance.onfocus( instance, new CKEDITOR.dom.event( ev ) ) !== false );
+
+ // FF2: prevent focus event been bubbled up to editor container, which caused unexpected editor focus.
+ if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
+ ev.preventBubble();
+ return retVal;
+ });
+
+ var selLocked = 0;
+
+ var mousedownFn = CKEDITOR.tools.addFunction( function() {
+ // Opera: lock to prevent loosing editable text selection when clicking on button.
+ if ( CKEDITOR.env.opera ) {
+ var edt = editor.editable();
+ if ( edt.isInline() && edt.hasFocus ) {
+ editor.lockSelection();
+ selLocked = 1;
+ }
+ }
+ });
- classes += 'cke_' + (
- command.state == CKEDITOR.TRISTATE_ON ? 'on' :
- command.state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' :
- 'off' );
- }
- }
+ instance.clickFn = clickFn = CKEDITOR.tools.addFunction( function() {
- if ( !command )
- classes += 'cke_off';
-
- if ( this.className )
- classes += ' ' + this.className;
-
- output.push(
- '<span class="cke_button">',
- '<a id="', id, '"' +
- ' class="', classes, '"',
- env.gecko && env.version >= 10900 && !env.hc ? '' : '" href="javascript:void(\''+ ( this.title || '' ).replace( "'", '' )+ '\')"',
- ' title="', this.title, '"' +
- ' tabindex="-1"' +
- ' hidefocus="true"' +
- ' role="button"' +
- ' aria-labelledby="' + id + '_label"' +
- ( this.hasArrow ? ' aria-haspopup="true"' : '' ) );
-
- // Some browsers don't cancel key events in the keydown but in the
- // keypress.
- // TODO: Check if really needed for Gecko+Mac.
- if ( env.opera || ( env.gecko && env.mac ) )
- {
- output.push(
- ' onkeypress="return false;"' );
- }
+ // Restore locked selection in Opera.
+ if ( selLocked ) {
+ editor.unlockSelection( 1 );
+ selLocked = 0;
+ }
- // With Firefox, we need to force the button to redraw, otherwise it
- // will remain in the focus state.
- if ( env.gecko )
- {
- output.push(
- ' onblur="this.style.cssText = this.style.cssText;"' );
- }
+ instance.execute();
+ });
- output.push(
- ' onkeydown="return CKEDITOR.ui.button._.keydown(', index, ', event);"' +
- ' onfocus="return CKEDITOR.ui.button._.focus(', index, ', event);"' +
- ' onclick="CKEDITOR.tools.callFunction(', clickFn, ', this); return false;">' +
- '<span class="cke_icon"' );
- if ( this.icon )
- {
- var offset = ( this.iconOffset || 0 ) * -16;
- output.push( ' style="background-image:url(', CKEDITOR.getUrl( this.icon ), ');background-position:0 ' + offset + 'px;"' );
- }
+ // Indicate a mode sensitive button.
+ if ( this.modes ) {
+ var modeStates = {};
- output.push(
- '> </span>' +
- '<span id="', id, '_label" class="cke_label">', this.label, '</span>' );
+ function updateState() {
+ // "this" is a CKEDITOR.ui.button instance.
- if ( this.hasArrow )
- {
- output.push(
- '<span class="cke_buttonarrow">'
- // BLACK DOWN-POINTING TRIANGLE
- + ( CKEDITOR.env.hc ? '▼' : ' ' )
- + '</span>' );
- }
+ var mode = editor.mode;
- output.push(
- '</a>',
- '</span>' );
+ if ( mode ) {
+ // Restore saved button state.
+ var state = this.modes[ mode ] ? modeStates[ mode ] != undefined ? modeStates[ mode ] : CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
- if ( this.onRender )
- this.onRender();
+ this.setState( editor.readOnly && !this.readOnly ? CKEDITOR.TRISTATE_DISABLED : state );
+ }
+ }
- return instance;
- },
+ editor.on( 'beforeModeUnload', function() {
+ if ( editor.mode && this._.state != CKEDITOR.TRISTATE_DISABLED )
+ modeStates[ editor.mode ] = this._.state;
+ }, this );
- setState : function( state )
- {
- if ( this._.state == state )
- return false;
+ editor.on( 'mode', updateState, this );
- this._.state = state;
+ // If this button is sensitive to readOnly state, update it accordingly.
+ !this.readOnly && editor.on( 'readOnly', updateState, this );
+ } else if ( command ) {
+ // Get the command instance.
+ command = editor.getCommand( command );
- var element = CKEDITOR.document.getById( this._.id );
+ if ( command ) {
+ command.on( 'state', function() {
+ this.setState( command.state );
+ }, this );
- if ( element )
- {
- element.setState( state );
- state == CKEDITOR.TRISTATE_DISABLED ?
- element.setAttribute( 'aria-disabled', true ) :
- element.removeAttribute( 'aria-disabled' );
+ stateName += ( command.state == CKEDITOR.TRISTATE_ON ? 'on' : command.state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' : 'off' );
+ }
+ }
- state == CKEDITOR.TRISTATE_ON ?
- element.setAttribute( 'aria-pressed', true ) :
- element.removeAttribute( 'aria-pressed' );
+ // For button that has text-direction awareness on selection path.
+ if ( this.directional ) {
+ editor.on( 'contentDirChanged', function( evt ) {
+ var el = CKEDITOR.document.getById( this._.id ),
+ icon = el.getFirst();
- return true;
- }
- else
- return false;
- }
-};
-
-/**
- * Handles a button click.
- * @private
- */
-CKEDITOR.ui.button._ =
-{
- instances : [],
+ var pathDir = evt.data;
- keydown : function( index, ev )
- {
- var instance = CKEDITOR.ui.button._.instances[ index ];
+ // Make a minor direction change to become style-able for the skin icon.
+ if ( pathDir != editor.lang.dir )
+ el.addClass( 'cke_' + pathDir );
+ else
+ el.removeClass( 'cke_ltr' ).removeClass( 'cke_rtl' );
- if ( instance.onkey )
- {
- ev = new CKEDITOR.dom.event( ev );
- return ( instance.onkey( instance, ev.getKeystroke() ) !== false );
+ // Inline style update for the plugin icon.
+ icon.setAttribute( 'style', CKEDITOR.skin.getIconStyle( iconName, pathDir == 'rtl', this.icon, this.iconOffset ) );
+ }, this );
+ }
+
+ if ( !command )
+ stateName += 'off';
+
+ var name = this.name || this.command,
+ iconName = name;
+
+ // Check if we're pointing to an icon defined by another command. (#9555)
+ if ( this.icon && !( /\./ ).test( this.icon ) ) {
+ iconName = this.icon;
+ this.icon = null;
+ }
+
+ var params = {
+ id: id,
+ name: name,
+ iconName: iconName,
+ label: this.label,
+ cls: this.className || '',
+ state: stateName,
+ title: this.title,
+ titleJs: env.gecko && env.version >= 10900 && !env.hc ? '' : ( this.title || '' ).replace( "'", '' ),
+ hasArrow: this.hasArrow ? 'true' : 'false',
+ keydownFn: keydownFn,
+ mousedownFn: mousedownFn,
+ focusFn: focusFn,
+ clickFn: clickFn,
+ style: CKEDITOR.skin.getIconStyle( iconName, ( editor.lang.dir == 'rtl' ), this.icon, this.iconOffset ),
+ arrowHtml: this.hasArrow ? btnArrowTpl.output() : ''
+ };
+
+ btnTpl.output( params, output );
+
+ if ( this.onRender )
+ this.onRender();
+
+ return instance;
+ },
+
+ /**
+ * @todo
+ */
+ setState: function( state ) {
+ if ( this._.state == state )
+ return false;
+
+ this._.state = state;
+
+ var element = CKEDITOR.document.getById( this._.id );
+
+ if ( element ) {
+ element.setState( state, 'cke_button' );
+
+ state == CKEDITOR.TRISTATE_DISABLED ?
+ element.setAttribute( 'aria-disabled', true ) :
+ element.removeAttribute( 'aria-disabled' );
+
+ state == CKEDITOR.TRISTATE_ON ?
+ element.setAttribute( 'aria-pressed', true ) :
+ element.removeAttribute( 'aria-pressed' );
+
+ return true;
+ } else
+ return false;
}
- },
-
- focus : function( index, ev )
- {
- var instance = CKEDITOR.ui.button._.instances[ index ],
- retVal;
-
- if ( instance.onfocus )
- retVal = ( instance.onfocus( instance, new CKEDITOR.dom.event( ev ) ) !== false );
-
- // FF2: prevent focus event been bubbled up to editor container, which caused unexpected editor focus.
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
- ev.preventBubble();
- return retVal;
- }
-};
-
-/**
- * Adds a button definition to the UI elements list.
- * @param {String} The button name.
- * @param {Object} The button definition.
- * @example
- * editorInstance.ui.addButton( 'MyBold',
- * {
- * label : 'My Bold',
- * command : 'bold'
- * });
- */
-CKEDITOR.ui.prototype.addButton = function( name, definition )
-{
- this.add( name, CKEDITOR.UI_BUTTON, definition );
-};
-
-CKEDITOR.on( 'reset', function()
- {
- CKEDITOR.ui.button._.instances = [];
- });
+ };
+
+ /**
+ * Adds a button definition to the UI elements list.
+ *
+ * editorInstance.ui.addButton( 'MyBold', {
+ * label: 'My Bold',
+ * command: 'bold',
+ * toolbar: 'basicstyles,1'
+ * } );
+ *
+ * @member CKEDITOR.ui
+ * @param {String} name The button name.
+ * @param {Object} definition The button definition.
+ */
+ CKEDITOR.ui.prototype.addButton = function( name, definition ) {
+ this.add( name, CKEDITOR.UI_BUTTON, definition );
+ };
+
+})();
diff --git a/devel/third-party/ckeditor/plugins/clipboard/dev/clipboard.html b/devel/third-party/ckeditor/plugins/clipboard/dev/clipboard.html
new file mode 100644
index 0000000..8f9f050
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/dev/clipboard.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Clipboard playground – CKEditor Sample</title>
+ <script src="../../../ckeditor.js"></script>
+ <link href="../../../samples/sample.css" rel="stylesheet">
+ <style>
+body {
+ margin: 0;
+}
+
+#editables, #console
+{
+ width: 48%;
+}
+#editable {
+ padding: 5px 10px;
+}
+
+#console {
+ position: fixed;
+ top: 10px;
+ right: 30px;
+ height: 500px;
+ border: solid 3px #555;
+ overflow: auto;
+}
+#console > p {
+ border-bottom: solid 1px #555;
+ margin: 0;
+ padding: 0 5px;
+ background: rgba(0, 0, 0, 0.25);
+ -webkit-transition: background-color 1s;
+ -moz-transition: background-color 1s;
+ -o-transition: background-color 1s;
+ -ms-transition: background-color 1s;
+ transition: background-color 1s;
+}
+#console > p.old {
+ background: rgba(0, 0, 0, 0);
+}
+#console time, #console .prompt {
+ padding: 0 5px;
+ display: inline-block;
+}
+#console time {
+ background: #999;
+ background: rgba(0, 0, 0, 0.5 );
+ color: #FFF;
+ margin-left: -5px;
+}
+#console .prompt {
+ background: #DDD;
+ background: rgba(0, 0, 0, 0.1 );
+ min-width: 200px;
+}
+.someClass {
+ color: blue;
+}
+.specChar {
+ color: #777;
+ background-color: #EEE;
+ background-color: rgba(0, 0, 0, 0.1);
+ font-size: 0.8em;
+ border-radius: 2px;
+ padding: 1px;
+}
+ </style>
+</head>
+<body>
+ <h1 class="samples">
+ CKEditor Sample — clipboard plugin playground
+ </h1>
+ <div id="editables">
+ <p>
+ <label for="editor1">
+ Editor 1:</label>
+ <textarea cols="80" id="editor1" name="editor1" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>
+ </p>
+ <p>
+ <label for="editor2">
+ Editor 2:</label>
+ <textarea cols="80" id="editor2" name="editor2" rows="10"><p>This is more <strong class="MsoNormal">sample text</strong>.</p></textarea>
+ </p>
+ <p>
+ <label for="editor3">
+ Editor 3:</label>
+ <textarea cols="80" id="editor3" name="editor3" rows="10"><p>This editor <strong>forces pasting in text mode</strong> by listening for "beforePaste" event.</p></textarea>
+ </p>
+ <p>
+ <label for="editor4">
+ Editor 4:</label>
+ <textarea cols="80" id="editor4" name="editor4" rows="10"><p>This editor <strong>forces pasting in text mode</strong> by "forcePasteAsPlainText" config option.</p></textarea>
+ </p>
+ <p>
+ <label for="editor5">
+ Editor 5:</label>
+ <textarea cols="80" id="editor5" name="editor5" rows="10">Editor with autoParagraphing set to off.</textarea>
+ </p>
+ <div id="editor6" contenteditable="true" style="font-family: Georgia; font-size: 14px">
+ <h1>Editor 6</h1>
+ <p>Content content content.</p>
+ <p class="someClass">Styled by <code>.someClass</code>.</p>
+ </div>
+ </div>
+ <div id="console">
+ </div>
+ <script>
+( function()
+{
+ 'use strict';
+
+ var log = window.__log = function( title, msg )
+ {
+ var msgEl = new CKEDITOR.dom.element( 'p' ),
+ consoleEl = CKEDITOR.document.getById( 'console' ),
+ time = new Date().toString().match( /\d\d:\d\d:\d\d/ )[ 0 ],
+ format = function( tpl )
+ {
+ return tpl.replace( /{time}/g, time ).replace( '{title}', title ).replace( '{msg}', msg || '' );
+ };
+
+ window.console && console.log && console.log( format( '[{time}] {title}: {msg}' ) );
+
+ msg = ( msg || '' ).replace( /\r/g, '{\\r}' ).replace( /\n/g, '{\\n}' ).replace( /\t/g, '{\\t}' );
+ msg = CKEDITOR.tools.htmlEncode( msg );
+ msg = msg.replace( /\{(\\\w)\}/g, '<code class="specChar">$1</code>' );
+
+ msgEl.setHtml( format( '<time datetime="{time}">{time}</time><span class="prompt">{title}</span> {msg}' ) );
+ consoleEl.append( msgEl );
+ consoleEl.$.scrollTop = consoleEl.$.scrollHeight;
+ setTimeout( function () { msgEl.addClass( 'old' ); }, 250 );
+ };
+
+ var observe = function( editor, num )
+ {
+ var p = 'EDITOR ' + num + ' > ';
+
+ editor.on( 'paste', function( event )
+ {
+ log( p + 'paste(prior:-1)', event.data.type + ' - "' + event.data.dataValue + '"' );
+ }, null, null, -1 );
+ editor.on( 'paste', function( event )
+ {
+ log( p + 'paste(prior:10)', event.data.type + ' - "' + event.data.dataValue + '"' );
+ });
+ editor.on( 'paste', function( event )
+ {
+ log( p + 'paste(prior:999)', event.data.type + ' - "' + event.data.dataValue + '"' );
+ }, null, null, 999 );
+ editor.on( 'beforePaste', function( event )
+ {
+ log( p + 'beforePaste', event.data.type );
+ });
+ editor.on( 'beforePaste', function( event )
+ {
+ log( p + 'beforePaste(prior:999)', event.data.type );
+ }, null, null, 999 );
+ editor.on( 'afterPaste', function( event )
+ {
+ log( p + 'afterPaste' );
+ });
+ editor.on( 'copy', function( event )
+ {
+ log( p + 'copy' );
+ });
+ editor.on( 'cut', function( event )
+ {
+ log( p + 'cut' );
+ });
+ };
+
+ CKEDITOR.disableAutoInline = true;
+ var config =
+ {
+ height : 120,
+ toolbar : 'Custom',
+ toolbar_Custom :
+ [
+ { name: 'custom', items : [ 'Source','Bold','Italic','Underline','-','Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] }
+ ]
+ },
+ editor1 = CKEDITOR.replace( 'editor1', config ),
+ editor2 = CKEDITOR.replace( 'editor2', config ),
+ editor3 = CKEDITOR.replace( 'editor3', config ),
+ editor4 = CKEDITOR.replace( 'editor4', CKEDITOR.tools.extend( { forcePasteAsPlainText : true }, config ) ),
+ editor5 = CKEDITOR.replace( 'editor5', CKEDITOR.tools.extend( { autoParagraph : false }, config ) ),
+ editor6 = CKEDITOR.inline( document.getElementById( 'editor6' ), config );
+
+ editor3.on( 'beforePaste', function( evt )
+ {
+ evt.data.type = 'text';
+ });
+
+ observe( editor1, 1 );
+ observe( editor2, 2 );
+ observe( editor3, 3 );
+ observe( editor4, 4 );
+ observe( editor5, 5 );
+ observe( editor6, 6 );
+
+})();
+ </script>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/clipboard/dialogs/paste.js b/devel/third-party/ckeditor/plugins/clipboard/dialogs/paste.js
index b37d8fd..dc11193 100644
--- a/devel/third-party/ckeditor/plugins/clipboard/dialogs/paste.js
+++ b/devel/third-party/ckeditor/plugins/clipboard/dialogs/paste.js
@@ -1,50 +1,43 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'paste', function( editor )
-{
+CKEDITOR.dialog.add( 'paste', function( editor ) {
var lang = editor.lang.clipboard;
var isCustomDomain = CKEDITOR.env.isCustomDomain();
- function onPasteFrameLoad( win )
- {
- var doc = new CKEDITOR.dom.document( win.document ),
- docElement = doc.$;
+ function onPasteFrameLoad( win ) {
+ var doc = new CKEDITOR.dom.document( win.document ),
+ body = doc.getBody(),
+ script = doc.getById( 'cke_actscrpt' );
- doc.getById( "cke_actscrpt" ).remove();
+ script && script.remove();
- CKEDITOR.env.ie ?
- docElement.body.contentEditable = "true" :
- docElement.designMode = "on";
+ body.setAttribute( 'contenteditable', true );
// IE before version 8 will leave cursor blinking inside the document after
// editor blurred unless we clean up the selection. (#4716)
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
- {
- doc.getWindow().on( 'blur', function()
- {
- docElement.selection.empty();
- } );
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) {
+ doc.getWindow().on( 'blur', function() {
+ doc.$.selection.empty();
+ });
}
- doc.on( "keydown", function( e )
- {
+ doc.on( 'keydown', function( e ) {
var domEvent = e.data,
key = domEvent.getKeystroke(),
processed;
- switch( key )
- {
- case 27 :
+ switch ( key ) {
+ case 27:
this.hide();
processed = 1;
break;
- case 9 :
- case CKEDITOR.SHIFT + 9 :
- this.changeFocus( true );
+ case 9:
+ case CKEDITOR.SHIFT + 9:
+ this.changeFocus( 1 );
processed = 1;
}
@@ -52,154 +45,181 @@ CKEDITOR.dialog.add( 'paste', function( editor )
}, this );
editor.fire( 'ariaWidget', new CKEDITOR.dom.element( win.frameElement ) );
+
+ // Handle pending focus.
+ if ( doc.getWindow().getFrame().removeCustomData( 'pendingFocus' ) )
+ body.focus();
}
+ // If pasteDialogCommit wasn't canceled by e.g. editor.getClipboardData
+ // then fire paste event.
+ // Do not use editor#paste, because it would start from beforePaste event.
+ editor.on( 'pasteDialogCommit', function( evt ) {
+ if ( evt.data )
+ editor.fire( 'paste', { type: 'auto', dataValue: evt.data } );
+ }, null, null, 1000 );
+
return {
- title : lang.title,
+ title: lang.title,
- minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
- minHeight : CKEDITOR.env.quirks ? 250 : 245,
- onShow : function()
- {
+ minWidth: CKEDITOR.env.ie && CKEDITOR.env.quirks ? 370 : 350,
+ minHeight: CKEDITOR.env.quirks ? 250 : 245,
+ onShow: function() {
// FIREFOX BUG: Force the browser to render the dialog to make the to-be-
// inserted iframe editable. (#3366)
this.parts.dialog.$.offsetHeight;
- var htmlToLoad =
- '<html dir="' + editor.config.contentsLangDirection + '"' +
- ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
- '<head><style>body { margin: 3px; height: 95%; } </style></head><body>' +
- '<script id="cke_actscrpt" type="text/javascript">' +
- 'window.parent.CKEDITOR.tools.callFunction( ' + CKEDITOR.tools.addFunction( onPasteFrameLoad, this ) + ', this );' +
- '</script></body>' +
- '</html>';
-
- var iframe = CKEDITOR.dom.element.createFromHtml(
- '<iframe' +
+ this.setupContent();
+
+ // Set dialog title to the custom value (set e.g. in editor.openDialog callback) and reset this value.
+ // If custom title not set, use default one.
+ this.parts.title.setHtml( this.customTitle || lang.title );
+ this.customTitle = null;
+ },
+
+ onLoad: function() {
+ if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
+ this.parts.contents.setStyle( 'overflow', 'hidden' );
+ },
+
+ onOk: function() {
+ this.commitContent();
+ },
+
+ contents: [
+ {
+ id: 'general',
+ label: editor.lang.common.generalTab,
+ elements: [
+ {
+ type: 'html',
+ id: 'securityMsg',
+ html: '<div style="white-space:normal;width:340px">' + lang.securityMsg + '</div>'
+ },
+ {
+ type: 'html',
+ id: 'pasteMsg',
+ html: '<div style="white-space:normal;width:340px">' + lang.pasteMsg + '</div>'
+ },
+ {
+ type: 'html',
+ id: 'editing_area',
+ style: 'width:100%;height:100%',
+ html: '',
+ focus: function() {
+ var iframe = this.getInputElement(),
+ doc = iframe.getFrameDocument(),
+ body = doc.getBody();
+
+ // Frame content may not loaded at the moment.
+ if ( !body || body.isReadOnly() )
+ iframe.setCustomData( 'pendingFocus', 1 );
+ else
+ body.focus();
+ },
+ setup: function() {
+ var dialog = this.getDialog();
+ var htmlToLoad = '<html dir="' + editor.config.contentsLangDirection + '"' +
+ ' lang="' + ( editor.config.contentsLanguage || editor.langCode ) + '">' +
+ '<head><style>body{margin:3px;height:95%}</style></head><body>' +
+ '<script id="cke_actscrpt" type="text/javascript">' +
+ 'window.parent.CKEDITOR.tools.callFunction(' + CKEDITOR.tools.addFunction( onPasteFrameLoad, dialog ) + ',this);' +
+ '</script></body>' +
+ '</html>';
+
+ var src =
+ CKEDITOR.env.air ?
+ 'javascript:void(0)' :
+ isCustomDomain ?
+ 'javascript:void((function(){' +
+ 'document.open();' +
+ 'document.domain=\'' + document.domain + '\';' +
+ 'document.close();' +
+ '})())"'
+ : '';
+
+ var iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +
' class="cke_pasteframe"' +
' frameborder="0" ' +
' allowTransparency="true"' +
- // Support for custom document.domain in IE.
- ( isCustomDomain ?
- ' src="javascript:void((function(){' +
- 'document.open();' +
- 'document.domain=\'' + document.domain + '\';' +
- 'document.close();' +
- '})())"' : '' ) +
+ ' src="' + src + '"' +
' role="region"' +
' aria-label="' + lang.pasteArea + '"' +
- ' aria-describedby="' + this.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
+ ' aria-describedby="' + dialog.getContentElement( 'general', 'pasteMsg' ).domId + '"' +
' aria-multiple="true"' +
'></iframe>' );
- iframe.on( 'load', function( e )
- {
- e.removeListener();
- var doc = iframe.getFrameDocument().$;
- // Custom domain handling is needed after each document.open().
- doc.open();
- if ( isCustomDomain )
- doc.domain = document.domain;
- doc.write( htmlToLoad );
- doc.close();
- }, this );
-
- iframe.setCustomData( 'dialog', this );
-
- var field = this.getContentElement( 'general', 'editing_area' ),
- container = field.getElement();
- container.setHtml( '' );
- container.append( iframe );
-
- // IE need a redirect on focus to make
- // the cursor blinking inside iframe. (#5461)
- if ( CKEDITOR.env.ie )
- {
- var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' );
- focusGrabber.on( 'focus', function()
- {
- iframe.$.contentWindow.focus();
- });
- container.append( focusGrabber );
+ iframe.on( 'load', function( e ) {
+ e.removeListener();
- // Override focus handler on field.
- field.focus = function()
- {
- focusGrabber.focus();
- this.fire( 'focus' );
- };
- }
+ var doc = iframe.getFrameDocument();
+ doc.write( htmlToLoad );
- field.getInputElement = function(){ return iframe; };
+ editor.focusManager.add( doc.getBody() );
- // Force container to scale in IE.
- if ( CKEDITOR.env.ie )
- {
- container.setStyle( 'display', 'block' );
- container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
- }
- },
+ if ( CKEDITOR.env.air )
+ onPasteFrameLoad.call( this, doc.getWindow().$ );
+ }, dialog );
- onHide : function()
- {
- if ( CKEDITOR.env.ie )
- this.getParentEditor().document.getBody().$.contentEditable = 'true';
- },
+ iframe.setCustomData( 'dialog', dialog );
- onLoad : function()
- {
- if ( ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) && editor.lang.dir == 'rtl' )
- this.parts.contents.setStyle( 'overflow', 'hidden' );
- },
+ var container = this.getElement();
+ container.setHtml( '' );
+ container.append( iframe );
- onOk : function()
- {
- var container = this.getContentElement( 'general', 'editing_area' ).getElement(),
- iframe = container.getElementsByTag( 'iframe' ).getItem( 0 ),
- editor = this.getParentEditor(),
- html = iframe.$.contentWindow.document.body.innerHTML;
+ // IE need a redirect on focus to make
+ // the cursor blinking inside iframe. (#5461)
+ if ( CKEDITOR.env.ie ) {
+ var focusGrabber = CKEDITOR.dom.element.createFromHtml( '<span tabindex="-1" style="position:absolute" role="presentation"></span>' );
+ focusGrabber.on( 'focus', function() {
+ iframe.$.contentWindow.focus();
+ });
+ container.append( focusGrabber );
- setTimeout( function(){
- editor.fire( 'paste', { 'html' : html } );
- }, 0 );
+ // Override focus handler on field.
+ this.focus = function() {
+ focusGrabber.focus();
+ this.fire( 'focus' );
+ };
+ }
- },
+ this.getInputElement = function() {
+ return iframe;
+ };
- contents : [
- {
- id : 'general',
- label : editor.lang.common.generalTab,
- elements : [
- {
- type : 'html',
- id : 'securityMsg',
- html : '<div style="white-space:normal;width:340px;">' + lang.securityMsg + '</div>'
- },
- {
- type : 'html',
- id : 'pasteMsg',
- html : '<div style="white-space:normal;width:340px;">'+lang.pasteMsg +'</div>'
- },
- {
- type : 'html',
- id : 'editing_area',
- style : 'width: 100%; height: 100%;',
- html : '',
- focus : function()
- {
- var win = this.getInputElement().$.contentWindow;
-
- // #3291 : JAWS needs the 500ms delay to detect that the editor iframe
- // iframe is no longer editable. So that it will put the focus into the
- // Paste from Word dialog's editable area instead.
- setTimeout( function()
- {
- win.focus();
- }, 500 );
- }
+ // Force container to scale in IE.
+ if ( CKEDITOR.env.ie ) {
+ container.setStyle( 'display', 'block' );
+ container.setStyle( 'height', ( iframe.$.offsetHeight + 2 ) + 'px' );
}
- ]
+ },
+ commit: function( data ) {
+ var editor = this.getDialog().getParentEditor(),
+ body = this.getInputElement().getFrameDocument().getBody(),
+ bogus = body.getBogus(),
+ html;
+ bogus && bogus.remove();
+
+ // Saving the contents so changes until paste is complete will not take place (#7500)
+ html = body.getHtml();
+
+ // Opera needs some time to think about what has happened and what it should do now.
+ setTimeout( function() {
+ editor.fire( 'pasteDialogCommit', html );
+ }, 0 );
+ }
}
+ ]
+ }
]
};
});
+
+/**
+ * Internal event to pass paste dialog's data to the listeners.
+ *
+ * @private
+ * @event pasteDialogCommit
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
diff --git a/devel/third-party/ckeditor/plugins/clipboard/icons/copy-rtl.png b/devel/third-party/ckeditor/plugins/clipboard/icons/copy-rtl.png
new file mode 100644
index 0000000..8bbc023
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/clipboard/icons/copy-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/clipboard/icons/copy.png b/devel/third-party/ckeditor/plugins/clipboard/icons/copy.png
new file mode 100644
index 0000000..8bbc023
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/clipboard/icons/copy.png differ
diff --git a/devel/third-party/ckeditor/plugins/clipboard/icons/cut-rtl.png b/devel/third-party/ckeditor/plugins/clipboard/icons/cut-rtl.png
new file mode 100644
index 0000000..4016d7e
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/clipboard/icons/cut-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/clipboard/icons/cut.png b/devel/third-party/ckeditor/plugins/clipboard/icons/cut.png
new file mode 100644
index 0000000..4016d7e
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/clipboard/icons/cut.png differ
diff --git a/devel/third-party/ckeditor/plugins/clipboard/icons/paste-rtl.png b/devel/third-party/ckeditor/plugins/clipboard/icons/paste-rtl.png
new file mode 100644
index 0000000..4c74bee
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/clipboard/icons/paste-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/clipboard/icons/paste.png b/devel/third-party/ckeditor/plugins/clipboard/icons/paste.png
new file mode 100644
index 0000000..4c74bee
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/clipboard/icons/paste.png differ
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/af.js b/devel/third-party/ckeditor/plugins/clipboard/lang/af.js
new file mode 100644
index 0000000..628c627
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/af.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'af', {
+ copy: 'Kopiëer',
+ copyError: 'U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).',
+ cut: 'Knip',
+ cutError: 'U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).',
+ paste: 'Plak',
+ pasteArea: 'Plak-area',
+ pasteMsg: 'Plak die teks in die volgende teks-area met die sleutelbordkombinasie (<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.',
+ securityMsg: 'Weens u blaaier se sekuriteitsinstelling is data op die knipbord nie toeganklik nie. U kan dit eers weer in hierdie venster plak.',
+ title: 'Byvoeg'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ar.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ar.js
new file mode 100644
index 0000000..918a0df
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ar.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ar', {
+ copy: 'ÙØ³Ø®',
+ copyError: 'Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØ³Ø® Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+C).',
+ cut: 'ÙØµ',
+ cutError: 'Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØµ Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+X).',
+ paste: 'ÙØµÙ',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Ø§ÙØµÙ Ø¯Ø§Ø®Ù Ø§ÙØµÙدÙ٠بإستخداÙ
زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) ÙÙ ÙÙØØ© اÙÙ
ÙØ§ØªÙØØ Ø«Ù
اضغط زر <STRONG>Ù
ÙØ§ÙÙ</STRONG>.',
+ securityMsg: 'ÙØ¸Ø±Ø§Ù ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
Ø§Ù Ø§ÙØ®Ø§ØµØ© بÙ
ØªØµÙØÙØ ÙÙ ÙØªÙ
ÙÙ ÙØ°Ø§ اÙÙ
ØØ±Ø± Ù
٠اÙÙØµÙÙ ÙÙ
ØØªÙÙ ØØ§ÙØ¸ØªÙØ ÙØ°ÙÙ ÙØ¬Ø¨ عÙÙÙ ÙØµÙ اÙÙ
ØØªÙÙ Ù
رة أخر٠ÙÙ ÙØ°Ù اÙÙØ§Ùذة.',
+ title: 'ÙØµÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/bg.js b/devel/third-party/ckeditor/plugins/clipboard/lang/bg.js
new file mode 100644
index 0000000..a77602a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/bg.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'bg', {
+ copy: 'ÐопиÑай',
+ copyError: 'ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ваÑÐ¸Ñ Ð±ÑазÑÑÑ Ð½Ðµ ÑазÑеÑÐ°Ð²Ð°Ñ Ð½Ð° ÑедакÑоÑа да изпÑлни запамеÑÑванеÑо. Ðа ÑелÑа използвайÑе клавиаÑÑÑаÑа (Ctrl/Cmd+C).',
+ cut: 'ÐÑÑежи',
+ cutError: 'ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ÐаÑÐ¸Ñ Ð±ÑаÑзÑÑ Ð½Ðµ позволÑÐ²Ð°Ñ Ð½Ð° ÑедакÑоÑа авÑомаÑиÑно да изÑплни дейÑÑвиÑÑа за оÑÑÑзване. ÐÐ¾Ð»Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñе клавиаÑÑÑниÑе команди за ÑелÑа (ctrl+x).',
+ paste: 'ÐмÑкни',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'ÐмÑкнеÑе ÑÑк ÑÑдÑжаниеÑо Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑаÑаÑа (<STRONG>Ctrl/Cmd+V</STRONG>) и наÑиÑнеÑе <STRONG>OK</STRONG>.',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'ÐмÑкни'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/bn.js b/devel/third-party/ckeditor/plugins/clipboard/lang/bn.js
new file mode 100644
index 0000000..f5f1daf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/bn.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'bn', {
+ copy: 'à¦à¦ªà¦¿',
+ copyError: 'à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦ªà¦¿ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+C)।',
+ cut: 'à¦à¦¾à¦',
+ cutError: 'à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦¾à¦ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+X)।',
+ paste: 'পà§à¦¸à§à¦',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ নà§à¦à§à¦° বাà¦à§à¦¸à§ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§ (<STRONG>Ctrl/Cmd+V</STRONG>) পà§à¦¸à§à¦ à¦à¦°à§à¦¨ à¦à¦¬à¦ <STRONG>OK</STRONG> à¦à¦¾à¦ª দিন',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'পà§à¦¸à§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/bs.js b/devel/third-party/ckeditor/plugins/clipboard/lang/bs.js
new file mode 100644
index 0000000..f06217d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/bs.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'bs', {
+ copy: 'Kopiraj',
+ copyError: 'Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).',
+ cut: 'Izreži',
+ cutError: 'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).',
+ paste: 'Zalijepi',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Zalijepi'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ca.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ca.js
new file mode 100644
index 0000000..c778092
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ca.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ca', {
+ copy: 'Copia',
+ copyError: 'La seguretat del vostre navegador no permet executar automà ticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).',
+ cut: 'Retalla',
+ cutError: 'La seguretat del vostre navegador no permet executar automà ticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).',
+ paste: 'Enganxa',
+ pasteArea: 'Ãrea d\'enganxat',
+ pasteMsg: 'Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.',
+ securityMsg: 'A causa de la configuració de seguretat del vostre navegador, l\'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.',
+ title: 'Enganxa'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/cs.js b/devel/third-party/ckeditor/plugins/clipboard/lang/cs.js
new file mode 100644
index 0000000..52dce96
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/cs.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'cs', {
+ copy: 'KopÃrovat',
+ copyError: 'BezpeÄnostnà nastavenà vaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro kopÃrovánà zvoleného textu do schránky. ProsÃm zkopÃrujte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+C).',
+ cut: 'Vyjmout',
+ cutError: 'BezpeÄnostnà nastavenà vaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro vyjmutà zvoleného textu do schránky. ProsÃm vyjmÄte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+X).',
+ paste: 'Vložit',
+ pasteArea: 'Oblast vkládánÃ',
+ pasteMsg: 'Do následujÃcÃho pole vložte požadovaný obsah pomocà klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stisknÄte <STRONG>OK</STRONG>.',
+ securityMsg: 'Z důvodů nastavenà bezpeÄnosti vaÅ¡eho prohlÞeÄe nemůže editor pÅistupovat pÅÃmo do schránky. Obsah schránky prosÃm vložte znovu do tohoto okna.',
+ title: 'Vložit'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/cy.js b/devel/third-party/ckeditor/plugins/clipboard/lang/cy.js
new file mode 100644
index 0000000..8ba7ad5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/cy.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'cy', {
+ copy: 'Copïo',
+ copyError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatà u\'r golygydd i gynnal \'gweithredoedd copïo\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).',
+ cut: 'Torri',
+ cutError: 'Nid yw gosodiadau diogelwch eich porwr yn caniatà u\'r golygydd i gynnal \'gweithredoedd torri\' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).',
+ paste: 'Gludo',
+ pasteArea: 'Ardal Gludo',
+ pasteMsg: 'Gludwch i mewn i\'r blwch canlynol gan ddefnyddio\'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.',
+ securityMsg: 'Oherwydd gosodiadau diogelwch eich porwr, nid yw\'r porwr yn gallu ennill mynediad i\'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i\'r ffenestr hon.',
+ title: 'Gludo'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/da.js b/devel/third-party/ckeditor/plugins/clipboard/lang/da.js
new file mode 100644
index 0000000..baec4f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/da.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'da', {
+ copy: 'Kopiér',
+ copyError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).',
+ cut: 'Klip',
+ cutError: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).',
+ paste: 'Indsæt',
+ pasteArea: 'Indsæt område',
+ pasteMsg: 'Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.',
+ securityMsg: 'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.',
+ title: 'Indsæt'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/de.js b/devel/third-party/ckeditor/plugins/clipboard/lang/de.js
new file mode 100644
index 0000000..9cd1964
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/de.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'de', {
+ copy: 'Kopieren',
+ copyError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',
+ cut: 'Ausschneiden',
+ cutError: 'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',
+ paste: 'Einfügen',
+ pasteArea: 'Einfügebereich',
+ pasteMsg: 'Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.',
+ securityMsg: 'Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.',
+ title: 'Einfügen'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/el.js b/devel/third-party/ckeditor/plugins/clipboard/lang/el.js
new file mode 100644
index 0000000..e44a4be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/el.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'el', {
+ copy: 'ÎνÏιγÏαÏή',
+ copyError: 'Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία ανÏιγÏαÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+C).',
+ cut: 'ÎÏοκοÏή',
+ cutError: 'Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία αÏοκοÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+X).',
+ paste: 'ÎÏικÏλληÏη',
+ pasteArea: 'ΠεÏιοÏή ÎÏικÏλληÏηÏ',
+ pasteMsg: 'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏικολήÏÏε ÏÏο ακÏλοÏ
θο κοÏ
Ïί ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïο ÏληκÏÏολÏγιο (<strong>Ctrl/Cmd+V</strong>) και ÏαÏήÏÏε OK.',
+ securityMsg: 'ÎÏγÏν ÏÏν ÏÏ
θμίÏεÏν αÏÏÎ¬Î»ÎµÎ¹Î±Ï ÏοÏ
ÏεÏιηγηÏή ÏαÏ, ο εÏεξεÏγαÏÏÎ®Ï Î´ÎµÎ½ μÏοÏεί να ÎÏει ÏÏÏÏβαÏη ÏÏην μνήμη εÏικÏλληÏηÏ. ΧÏειάζεÏαι να εÏικολλήÏεÏε ξανά Ïε αÏ
ÏÏ Ïο ÏαÏάθÏ
Ïο.',
+ title: 'ÎÏικÏλληÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/en-au.js b/devel/third-party/ckeditor/plugins/clipboard/lang/en-au.js
new file mode 100644
index 0000000..5f6a7c4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/en-au.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'en-au', {
+ copy: 'Copy',
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+ cut: 'Cut',
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+ paste: 'Paste',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
+ title: 'Paste'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/en-ca.js b/devel/third-party/ckeditor/plugins/clipboard/lang/en-ca.js
new file mode 100644
index 0000000..8462c92
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/en-ca.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'en-ca', {
+ copy: 'Copy',
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+ cut: 'Cut',
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+ paste: 'Paste',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
+ title: 'Paste'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/en-gb.js b/devel/third-party/ckeditor/plugins/clipboard/lang/en-gb.js
new file mode 100644
index 0000000..98b19d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/en-gb.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'en-gb', {
+ copy: 'Copy',
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+ cut: 'Cut',
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+ paste: 'Paste',
+ pasteArea: 'Paste Area',
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
+ title: 'Paste'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/en.js b/devel/third-party/ckeditor/plugins/clipboard/lang/en.js
new file mode 100644
index 0000000..bab47f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/en.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'en', {
+ copy: 'Copy',
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).',
+ cut: 'Cut',
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).',
+ paste: 'Paste',
+ pasteArea: 'Paste Area',
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',
+ title: 'Paste'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/eo.js b/devel/third-party/ckeditor/plugins/clipboard/lang/eo.js
new file mode 100644
index 0000000..bf5b057
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/eo.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'eo', {
+ copy: 'Kopii',
+ copyError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).',
+ cut: 'Eltondi',
+ cutError: 'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).',
+ paste: 'Interglui',
+ pasteArea: 'Intergluoareo',
+ pasteMsg: 'Bonvolu glui la tekston en la jenan areon per uzado de la klavaro (<strong>Ctrl/Cmd+V</strong>) kaj premu OK',
+ securityMsg: 'Pro la sekurecagordo de via TTT-legilo, la redaktilo ne povas rekte atingi viajn datenojn en la poÅo. Bonvolu denove interglui la datenojn en tiun fenestron.',
+ title: 'Interglui'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/es.js b/devel/third-party/ckeditor/plugins/clipboard/lang/es.js
new file mode 100644
index 0000000..bd590e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/es.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'es', {
+ copy: 'Copiar',
+ copyError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).',
+ cut: 'Cortar',
+ cutError: 'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).',
+ paste: 'Pegar',
+ pasteArea: 'Zona de pegado',
+ pasteMsg: 'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.',
+ securityMsg: 'Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.',
+ title: 'Pegar'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/et.js b/devel/third-party/ckeditor/plugins/clipboard/lang/et.js
new file mode 100644
index 0000000..14eb0a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/et.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'et', {
+ copy: 'Kopeeri',
+ copyError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).',
+ cut: 'Lõika',
+ cutError: 'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).',
+ paste: 'Aseta',
+ pasteArea: 'Asetamise ala',
+ pasteMsg: 'Palun aseta tekst järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.',
+ securityMsg: 'Sinu veebisirvija turvaseadete tõttu ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead asetama need uuesti siia aknasse.',
+ title: 'Asetamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/eu.js b/devel/third-party/ckeditor/plugins/clipboard/lang/eu.js
new file mode 100644
index 0000000..f3b9159
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/eu.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'eu', {
+ copy: 'Kopiatu',
+ copyError: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+C).',
+ cut: 'Ebaki',
+ cutError: 'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+X).',
+ paste: 'Itsatsi',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Mesedez teklatua erabilita (<STRONG>Ctrl/Cmd+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.',
+ securityMsg: 'Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.',
+ title: 'Itsatsi'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/fa.js b/devel/third-party/ckeditor/plugins/clipboard/lang/fa.js
new file mode 100644
index 0000000..57f3ac3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/fa.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'fa', {
+ copy: 'Ú©Ù¾Û',
+ copyError: 'ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û Ú©Ù¾Û Ú©Ø±Ø¯Ù Ø±Ø§ Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙ Ú©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+C).',
+ cut: 'برش',
+ cutError: 'ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û برش را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙ Ú©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+X).',
+ paste: 'ÚØ³Ø¨Ø§ÙدÙ',
+ pasteArea: 'Ù
ØÙ ÚØ³Ø¨Ø§ÙدÙ',
+ pasteMsg: 'ÙØ·Ùا Ù
ت٠را با Ú©ÙÛØ¯ÙØ§Û (<STRONG>Ctrl/Cmd+V</STRONG>) در اÛ٠جعبÙÙ´ Ù
تÙÛ Ø¨ÚØ³Ø¨Ø§ÙÛØ¯ Ù <STRONG>Ù¾Ø°ÛØ±Ø´</STRONG> را بزÙÛØ¯.',
+ securityMsg: 'ب٠خاطر ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
Ø§Ø ÙÛØ±Ø§Ûشگر ÙÙ
ÛØªÙØ§ÙØ¯ Ø¯Ø³ØªØ±Ø³Û Ù
ستÙÛÙ
ب٠دادÙÙØ§Û clipboard داشت٠باشد. Ø´Ù
ا Ø¨Ø§ÛØ¯ Ø¯ÙØ¨Ø§Ø±Ù Ø¢ÙØ±Ø§ در اÛÙ Ù¾ÙØ¬Ø±Ù Ø¨ÚØ³Ø¨Ø§ÙÛØ¯.',
+ title: 'ÚØ³Ø¨Ø§ÙدÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/fi.js b/devel/third-party/ckeditor/plugins/clipboard/lang/fi.js
new file mode 100644
index 0000000..80ebfe1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/fi.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'fi', {
+ copy: 'Kopioi',
+ copyError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).',
+ cut: 'Leikkaa',
+ cutError: 'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).',
+ paste: 'Liitä',
+ pasteArea: 'Leikealue',
+ pasteMsg: 'Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.',
+ securityMsg: 'Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.',
+ title: 'Liitä'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/fo.js b/devel/third-party/ckeditor/plugins/clipboard/lang/fo.js
new file mode 100644
index 0000000..5b60231
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/fo.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'fo', {
+ copy: 'Avrita',
+ copyError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum à at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).',
+ cut: 'Kvett',
+ cutError: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum à at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).',
+ paste: 'Innrita',
+ pasteArea: 'Avritingarumráði',
+ pasteMsg: 'Vinarliga koyr tekstin à hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.',
+ securityMsg: 'Trygdaruppseting alnótskagans forðar tekstviðgeranum à beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur à hesum rútinum.',
+ title: 'Innrita'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/clipboard/lang/fr-ca.js
new file mode 100644
index 0000000..9aefec2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/fr-ca.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'fr-ca', {
+ copy: 'Copier',
+ copyError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).',
+ cut: 'Couper',
+ cutError: 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).',
+ paste: 'Coller',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.',
+ securityMsg: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.',
+ title: 'Coller'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/fr.js b/devel/third-party/ckeditor/plugins/clipboard/lang/fr.js
new file mode 100644
index 0000000..c233bee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/fr.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'fr', {
+ copy: 'Copier',
+ copyError: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).',
+ cut: 'Couper',
+ cutError: 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).',
+ paste: 'Coller',
+ pasteArea: 'Coller la zone',
+ pasteMsg: 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.',
+ securityMsg: 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.',
+ title: 'Coller'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/gl.js b/devel/third-party/ckeditor/plugins/clipboard/lang/gl.js
new file mode 100644
index 0000000..f29ebd0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/gl.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'gl', {
+ copy: 'Copiar',
+ copyError: 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl/Cmd+C).',
+ cut: 'Cortar',
+ cutError: 'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl/Cmd+X).',
+ paste: 'Pegar',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e pulse <STRONG>OK</STRONG>.',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Pegar'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/gu.js b/devel/third-party/ckeditor/plugins/clipboard/lang/gu.js
new file mode 100644
index 0000000..faeeca3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/gu.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'gu', {
+ copy: 'નàªàª²',
+ copyError: 'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªà«àªªà« àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',
+ cut: 'àªàª¾àªªàªµà«àª',
+ cutError: 'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªàª àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+X) નૠàªàªªàª¯à«àª àªàª°à«.',
+ paste: 'પà«àª¸à«àª',
+ pasteArea: 'પà«àª¸à«àª àªàª°àªµàª¾àª¨à« àªàªà«àª¯àª¾',
+ pasteMsg: 'Ctrl/Cmd+V નૠપà«àª°àª¯à«àª àªàª°à« પà«àª¸à«àª àªàª°à«',
+ securityMsg: 'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸àª¨àª¾ àªàª¾àª°àª£à«,àªàª¡àª¿àªàª° તમારા àªàª¿àª²à«àªªàª¬à«àª°à«àª¡ ડà«àªàª¾ નૠàªà«àªªà« નથૠàªàª°à« શàªàª¤à«. તમારૠઠવિનà«àª¡à«àª®àª¾àª ફરà«àª¥à« પà«àª¸à«àª àªàª°àªµà«àª પડશà«.',
+ title: 'પà«àª¸à«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/he.js b/devel/third-party/ckeditor/plugins/clipboard/lang/he.js
new file mode 100644
index 0000000..0ece283
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/he.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'he', {
+ copy: '×עתק×',
+ copyError: '×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××¢×ª×§× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+C).',
+ cut: '×××ר×',
+ cutError: '×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××××¨× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+X).',
+ paste: '××××§×',
+ pasteArea: '××××ר ××××§×',
+ pasteMsg: '× × ××××××§ ×ת×× ××§××¤×¡× ×××צע×ת (<b>Ctrl/Cmd+V</b>) ××××××¥ ×¢× <b>××ש×ר</b>.',
+ securityMsg: '×¢×§× ×××ר×ת ××××× ××פ×פ×, ×× × ××ª× ××שת ×× ××× ××××ר×× (Clipboard) ×צ××¨× ×ש×ר×. × × ××××××§ ש×× ××××× ××.',
+ title: '××××§×'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/hi.js b/devel/third-party/ckeditor/plugins/clipboard/lang/hi.js
new file mode 100644
index 0000000..6ac2d2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/hi.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'hi', {
+ copy: 'à¤à¥à¤ªà¥',
+ copyError: 'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¥à¤ªà¥ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',
+ cut: 'à¤à¤',
+ cutError: 'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¤ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+X) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',
+ paste: 'पà¥à¤¸à¥à¤',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Ctrl/Cmd+V à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¤à¥ पà¥à¤¸à¥à¤ à¤à¤°à¥à¤ à¤à¤° ठà¥à¤ हॠà¤à¤°à¥à¤.',
+ securityMsg: 'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°Kश सà¥à¤à¤¿à¤à¤ à¤à¥ à¤à¤¾à¤°à¤£, à¤à¤¡à¤¿à¤à¤° à¤à¤ªà¤à¥ à¤à¥à¤²à¤¿à¤ªà¤¬à¥à¤°à¥à¤¡ डà¥à¤à¤¾ à¤à¥ नहà¥à¤ पा सà¤à¤¤à¤¾ हà¥. à¤à¤ªà¤à¥ à¤à¤¸à¥ à¤à¤¸ विनà¥à¤¡à¥ मà¥à¤ दà¥à¤¬à¤¾à¤°à¤¾ पà¥à¤¸à¥à¤ à¤à¤°à¤¨à¤¾ हà¥à¤à¤¾.',
+ title: 'पà¥à¤¸à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/hr.js b/devel/third-party/ckeditor/plugins/clipboard/lang/hr.js
new file mode 100644
index 0000000..c01abad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/hr.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'hr', {
+ copy: 'Kopiraj',
+ copyError: 'Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).',
+ cut: 'Izreži',
+ cutError: 'Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).',
+ paste: 'Zalijepi',
+ pasteArea: 'Prostor za ljepljenje',
+ pasteMsg: 'Molimo zaljepite unutar doljnjeg okvira koristeÄi tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.',
+ securityMsg: 'Zbog sigurnosnih postavki VaÅ¡eg pretraživaÄa, editor nema direktan pristup VaÅ¡em meÄuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.',
+ title: 'Zalijepi'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/hu.js b/devel/third-party/ckeditor/plugins/clipboard/lang/hu.js
new file mode 100644
index 0000000..7d8350f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/hu.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'hu', {
+ copy: 'Másolás',
+ copyError: 'A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',
+ cut: 'Kivágás',
+ cutError: 'A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',
+ paste: 'Beillesztés',
+ pasteArea: 'Beszúrás mezÅ',
+ pasteMsg: 'Másolja be az alábbi mezÅbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.',
+ securityMsg: 'A böngészÅ biztonsági beállÃtásai miatt a szerkesztÅ nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.',
+ title: 'Beillesztés'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/is.js b/devel/third-party/ckeditor/plugins/clipboard/lang/is.js
new file mode 100644
index 0000000..e5c7483
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/is.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'is', {
+ copy: 'Afrita',
+ copyError: 'Ãryggisstillingar vafrans þÃns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið à afrita (Ctrl/Cmd+C).',
+ cut: 'Klippa',
+ cutError: 'Ãryggisstillingar vafrans þÃns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið à klippa (Ctrl/Cmd+X).',
+ paste: 'LÃma',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'LÃmdu à svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.',
+ securityMsg: 'Vegna öryggisstillinga à vafranum þÃnum fær ritillinn ekki beinan aðgang að klippuborðinu. Ãú verður að lÃma innihaldið aftur inn à þennan glugga.',
+ title: 'LÃma'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/it.js b/devel/third-party/ckeditor/plugins/clipboard/lang/it.js
new file mode 100644
index 0000000..d63ca5e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/it.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'it', {
+ copy: 'Copia',
+ copyError: 'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).',
+ cut: 'Taglia',
+ cutError: 'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).',
+ paste: 'Incolla',
+ pasteArea: 'Incolla',
+ pasteMsg: 'Incolla il testo all\'interno dell\'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.',
+ securityMsg: 'A causa delle impostazioni di sicurezza del browser,l\'editor non è in grado di accedere direttamente agli appunti. E\' pertanto necessario incollarli di nuovo in questa finestra.',
+ title: 'Incolla'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ja.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ja.js
new file mode 100644
index 0000000..3fc1a49
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ja.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ja', {
+ copy: 'ã³ãã¼',
+ copyError: 'ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®ã³ãã¼æä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+C)ã使ç¨ãã¦ãã ããã',
+ cut: 'åãåã',
+ cutError: 'ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®åãåãæä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+X)ã使ç¨ãã¦ãã ããã',
+ paste: 'è²¼ãä»ã',
+ pasteArea: 'è²¼ãä»ãå ´æ',
+ pasteMsg: 'ãã¼ãã¼ã(<STRONG>Ctrl/Cmd+V</STRONG>)ã使ç¨ãã¦ã次ã®å
¥åã¨ãªã¢å
ã§è²¼ã£ã¦ã<STRONG>OK</STRONG>ãæ¼ãã¦ãã ããã',
+ securityMsg: 'ãã©ã¦ã¶ã®ã»ãã¥ãªãã£è¨å®ã«ãããã¨ãã£ã¿ã¯ã¯ãªãããã¼ãã»ãã¼ã¿ã«ç´æ¥ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ããããã®ã¦ã£ã³ãã¦ã¯è²¼ãä»ãæä½ãè¡ã度ã«è¡¨ç¤ºããã¾ãã',
+ title: 'è²¼ãä»ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ka.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ka.js
new file mode 100644
index 0000000..d9cbd11
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ka.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ka', {
+ copy: 'áá¡áá',
+ copyError: 'áá¥áááá áá áá£ááá áá¡ á£á¡áá¤á áá®ááááá¡ ááá áááá¢á ááá áá áá«áááá áá¡ááá¡ áááá ááªááá¡ ááá¢áááá¢á£á áá áááá®áá áªááááááá¡ á¡áá¨á£áááááá¡. áááááá§áááá ááááááá¢á£á á áááá¡áááá¡ (Ctrl/Cmd+C).',
+ cut: 'ááááá á',
+ cutError: 'áá¥áááá áá áá£ááá áá¡ á£á¡áá¤á áá®ááááá¡ ááá áááá¢á ááá áá áá«áááá ááááá áá¡ áááá ááªááá¡ ááá¢áááá¢á£á áá áááá®áá áªááááááá¡ á¡áá¨á£áááááá¡. áááááá§áááá ááááááá¢á£á á áááá¡áááá¡ (Ctrl/Cmd+X).',
+ paste: 'á©áá¡áá',
+ pasteArea: 'á©áá¡ááá¡ áá á',
+ pasteMsg: 'á©áá¡ááá áá áá áá¡ á¨ááááá ááááááá¢á£á áá¡ ááááá§áááááá (<strong>Ctrl/Cmd+V</strong>) áá áááááá áá OK-á¡',
+ securityMsg: 'áá¥áááá áá áá£ááá áá¡ á£á¡áá¤á áá®ááááá¡ ááá áááá¢á ááá áá áá«áááá clipboard-áá¡ áááááªáááááá¡ á¬áááááá¡ á£á¤ááááá¡. ááááá á£ááá á©áá¡ááá á¢áá¥á¡á¢á áá á¤ááá¯áá áá¨á.',
+ title: 'á©áá¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/km.js b/devel/third-party/ckeditor/plugins/clipboard/lang/km.js
new file mode 100644
index 0000000..0c8401f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/km.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'km', {
+ copy: 'á
ááááá',
+ copyError: 'áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá ááá\u200báá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá á
áááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+C)á',
+ cut: 'áá¶áááá',
+ cutError: 'áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá ááá\u200báá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá áá¶ááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+X) á',
+ paste: 'á
ááááá¶áá',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'áá¼áá
áááá¢ááááááá
áá¶áááááá»ááááá¢áááá¼á
áá¶ááááááááááááá¾áááá¶áá áḠ\u200b(<STRONG>Ctrl/Cmd+V</STRONG>) á á¾áá
á»á
<STRONG>OK</STRONG> á',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'á
ááááá¶áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ko.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ko.js
new file mode 100644
index 0000000..ad4651f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ko.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ko', {
+ copy: 'ë³µì¬í기',
+ copyError: 'ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ë³µì¬í기 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+C).',
+ cut: 'ìë¼ë´ê¸°',
+ cutError: 'ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ìë¼ë´ê¸° 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+X).',
+ paste: 'ë¶ì¬ë£ê¸°',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'í¤ë³´ëì (<STRONG>Ctrl/Cmd+V</STRONG>) 를 ì´ì©í´ì ìììì ë¶ì¬ë£ê³ <STRONG>OK</STRONG> 를 ë르ì¸ì.',
+ securityMsg: 'ë¸ë¬ì°ì ë³´ì ì¤ì ì¼ë¡ ì¸í´, í´ë¦½ë³´ëì ìë£ë¥¼ ì§ì ì ê·¼í ì ììµëë¤. ì´ ì°½ì ë¤ì ë¶ì¬ë£ê¸° íììì¤.',
+ title: 'ë¶ì¬ë£ê¸°'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ku.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ku.js
new file mode 100644
index 0000000..b20e730
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ku.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ku', {
+ copy: 'ÙÛØ¨ÛØ±Ú¯Ø±ÙØªÛÙÙ',
+ copyError: 'Ù¾Ø§Ø±ÛØ²Û ÙÛØ¨Ú¯ÛÚÛÚ©ÛØª ÚÛÚ¯ÙÙØ§Ø¯Ø§Øª Ø¨ÛØ³ÛرÙÙÙØ³ÛÚ©Û ÙÛ ÙÚ©Ø§ÙØ¯ÙÛ Ø¯ÛÙÛ Ø®Ûکار. تکاÛÛ ÙÛØ¨Ø±Û ئÛÙ
Û Ø¦ÛÙ
ÙÛØ±Ù
اÙÛ Ø¨ÛکاربÙÛÙÛ Ø¨ÛØ¯Ø§Ú¯Ø±ØªÙÛ Ú©ÙÛÙÛ (Ctrl/Cmd+C).',
+ cut: 'بÚÛÙ',
+ cutError: 'Ù¾Ø§Ø±ÛØ²Û ÙÛØ¨Ú¯ÛÚÛÚ©ÛØª ÚÛÚ¯ÙÙØ§Ø¯Ø§Øª Ø¨Û Ø³ÛØ±ÙÙÙØ³ÛÚ©Û ÙÙØ¨ÚÛÙÛ Ø®Ûکار. تکاÛÛ ÙÛØ¨Ø±Û ئÛÙ
Û Ø¦ÛÙ
ÙÛØ±Ù
اÙÛ Ø¨ÛکاربÙÛÙÛ Ø¨ÛØ¯Ø§Ú¯Ø±ØªÙÛ Ú©ÙÛÙÛ (Ctrl/Cmd+X).',
+ paste: 'ÙÚ©Ø§ÙØ¯Ù',
+ pasteArea: 'ÙØ§ÙÚÙÛ ÙÚ©Ø§ÙØ¯Ù',
+ pasteMsg: 'تکاÛ٠بÛÙÚ©ÛÙÙ ÙÙÙØ§ÙÙÙÙÛ Ø¦ÙÙ
سÙÙÙÙ ÙÙÚÛÛ ØªÙØ®ØªÙÚ©ÙÛÙÙÚ©ÙØª Ø¨ÙØ¨Ø§Ú©Ø§Ø±ÙÛÙØ§ÙÛ Ú©ÙÛÙÛ (<STRONG>Ctrl/Cmd+V</STRONG>) دÙÙØ§Û Ú©ÙÛÚ©Û Ø¨Ø§Ø´Ù Ø¨Ú©Ù.',
+ securityMsg: 'بÙÙÛÛ Ø´ÛÙÙÙ¾ÛØ¯Ø§ÙÛ Ù¾Ø§Ø±ÛØ²Û ÙÛØ¨Ú¯ÙÚÙÚ©ÙØªØ Ø³ÙØ±ÙÙÙØ³ÙÚ©Ù ÙØ§ØªÙاÙÛØª Ø¯ÙØ³ØªØ¨Ú¯ÙÛÙÙÛØª بÙÙÙÚµÚ¯ÛØ±Ø§ÙÙÚ©Ù ÚØ§Ø³ØªÙÙØ®Û. بÛÛÙ Ù¾ÛÙÛØ³ØªÙ دÙÙØ¨Ø§Ø±Ù بÛÙÚ©ÛÙÛØª ÙÙÙ
Ù¾ÙÙØ¬ÙرÙÛÙ.',
+ title: 'ÙÚ©Ø§ÙØ¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/lt.js b/devel/third-party/ckeditor/plugins/clipboard/lang/lt.js
new file mode 100644
index 0000000..59ea0ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/lt.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'lt', {
+ copy: 'Kopijuoti',
+ copyError: 'JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti kopijavimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+C).',
+ cut: 'Iškirpti',
+ cutError: 'JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti iÅ¡kirpimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+X).',
+ paste: 'Ä®dÄti',
+ pasteArea: 'Įkelti dalį',
+ pasteMsg: 'Žemiau esanÄiame įvedimo lauke įdÄkite tekstÄ
, naudodami klaviatÅ«rÄ
(<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtukÄ
<STRONG>OK</STRONG>.',
+ securityMsg: 'DÄl jÅ«sų narÅ¡yklÄs saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartÄ
į šį langÄ
.',
+ title: 'Ä®dÄti'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/lv.js b/devel/third-party/ckeditor/plugins/clipboard/lang/lv.js
new file mode 100644
index 0000000..9e33464
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/lv.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'lv', {
+ copy: 'KopÄt',
+ copyError: 'JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj redaktoram automÄtiski veikt kopÄÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+C), lai veiktu Å¡o darbÄ«bu.',
+ cut: 'Izgriezt',
+ cutError: 'JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj redaktoram automÄtiski veikt izgriezÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+X), lai veiktu Å¡o darbÄ«bu.',
+ paste: 'IelÄ«mÄt',
+ pasteArea: 'IelÄ«mÄÅ¡anas zona',
+ pasteMsg: 'LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.',
+ securityMsg: 'JÅ«su pÄrlÅ«ka drošības uzstÄdÄ«jumu dÄļ, nav iespÄjams tieÅ¡i piekļūt jÅ«su starpliktuvei. Jums jÄielÄ«mÄ atkÄrtoti Å¡ajÄ logÄ.',
+ title: 'Ievietot'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/mk.js b/devel/third-party/ckeditor/plugins/clipboard/lang/mk.js
new file mode 100644
index 0000000..768ec33
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/mk.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'mk', {
+ copy: 'Copy', // MISSING
+ copyError: 'Your browser security settings don\'t permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).', // MISSING
+ cut: 'Cut', // MISSING
+ cutError: 'Your browser security settings don\'t permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).', // MISSING
+ paste: 'Paste', // MISSING
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Paste' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/mn.js b/devel/third-party/ckeditor/plugins/clipboard/lang/mn.js
new file mode 100644
index 0000000..4f9ad64
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/mn.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'mn', {
+ copy: 'Ð¥ÑÑлаÑ
',
+ copyError: 'Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
ÑÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+C) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.',
+ cut: 'ХайÑлаÑ
',
+ cutError: 'Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
айÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+X) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.',
+ paste: 'ÐÑÑлгаÑ
',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: '(<strong>Ctrl/Cmd+V</strong>) ÑовÑийг аÑиглан paste Ñ
Ð¸Ð¹Ð½Ñ Ò¯Ò¯. Ðөн <strong>OK</strong> даÑ.',
+ securityMsg: 'Ð¢Ð°Ð½Ñ Ò¯Ð·Ò¯Ò¯Ð»ÑгÑ/browser/-н Ñ
амгаалалÑÑн ÑоÑ
иÑÐ³Ð¾Ð¾Ð½Ð¾Ð¾Ñ Ð±Ð¾Ð»Ð¾Ð¾Ð´ editor clipboard өгөгдөлÑÒ¯Ò¯ ÑÑÑд Ñ
андаÑ
боломжгүй. ÐÐ½Ñ ÑонÑ
од даÑ
ин paste Ñ
ийÑ
ийг оÑолд.',
+ title: 'ÐÑÑлгаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ms.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ms.js
new file mode 100644
index 0000000..c870679
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ms.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ms', {
+ copy: 'Salin',
+ copyError: 'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).',
+ cut: 'Potong',
+ cutError: 'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).',
+ paste: 'Tampal',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK', // MISSING
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Tampal'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/nb.js b/devel/third-party/ckeditor/plugins/clipboard/lang/nb.js
new file mode 100644
index 0000000..2174dd3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/nb.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'nb', {
+ copy: 'Kopier',
+ copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).',
+ cut: 'Klipp ut',
+ cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).',
+ paste: 'Lim inn',
+ pasteArea: 'Innlimingsområde',
+ pasteMsg: 'Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
+ securityMsg: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.',
+ title: 'Lim inn'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/nl.js b/devel/third-party/ckeditor/plugins/clipboard/lang/nl.js
new file mode 100644
index 0000000..4a93656
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/nl.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'nl', {
+ copy: 'Kopiëren',
+ copyError: 'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.',
+ cut: 'Knippen',
+ cutError: 'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.',
+ paste: 'Plakken',
+ pasteArea: 'Plakgebied',
+ pasteMsg: 'Plak de tekst in het volgende vak gebruikmakend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op OK.',
+ securityMsg: 'Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.',
+ title: 'Plakken'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/no.js b/devel/third-party/ckeditor/plugins/clipboard/lang/no.js
new file mode 100644
index 0000000..c9930a8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/no.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'no', {
+ copy: 'Kopier',
+ copyError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).',
+ cut: 'Klipp ut',
+ cutError: 'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).',
+ paste: 'Lim inn',
+ pasteArea: 'Innlimingsområde',
+ pasteMsg: 'Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.',
+ securityMsg: 'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.',
+ title: 'Lim inn'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/pl.js b/devel/third-party/ckeditor/plugins/clipboard/lang/pl.js
new file mode 100644
index 0000000..254eb5a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/pl.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'pl', {
+ copy: 'Kopiuj',
+ copyError: 'Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',
+ cut: 'Wytnij',
+ cutError: 'Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',
+ paste: 'Wklej',
+ pasteArea: 'Obszar wklejania',
+ pasteMsg: 'Wklej tekst w poniższym polu, używajÄ
c skrótu klawiaturowego (<STRONG>Ctrl/Cmd+V</STRONG>), i kliknij <STRONG>OK</STRONG>.',
+ securityMsg: 'Zabezpieczenia przeglÄ
darki uniemożliwiajÄ
wklejenie danych bezpoÅrednio do edytora. ProszÄ ponownie wkleiÄ dane w tym oknie.',
+ title: 'Wklej'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/pt-br.js b/devel/third-party/ckeditor/plugins/clipboard/lang/pt-br.js
new file mode 100644
index 0000000..61df2eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/pt-br.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'pt-br', {
+ copy: 'Copiar',
+ copyError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',
+ cut: 'Recortar',
+ cutError: 'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',
+ paste: 'Colar',
+ pasteArea: 'Ãrea para Colar',
+ pasteMsg: 'Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.',
+ securityMsg: 'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo manualmente nesta janela.',
+ title: 'Colar'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/pt.js b/devel/third-party/ckeditor/plugins/clipboard/lang/pt.js
new file mode 100644
index 0000000..08b81f7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/pt.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'pt', {
+ copy: 'Copiar',
+ copyError: 'A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).',
+ cut: 'Cortar',
+ cutError: 'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).',
+ paste: 'Colar',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Colar'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ro.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ro.js
new file mode 100644
index 0000000..27da9b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ro.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ro', {
+ copy: 'CopiazÄ',
+ copyError: 'SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de copiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+C).',
+ cut: 'Taie',
+ cutError: 'SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de tÄiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+X).',
+ paste: 'AdaugÄ',
+ pasteArea: 'SuprafaÈa de adÄugare',
+ pasteMsg: 'VÄ rugÄm adÄugaÅ£i în cÄsuÅ£a urmÄtoare folosind tastatura (<strong>Ctrl/Cmd+V</strong>) Åi apÄsaÅ£i OK',
+ securityMsg: 'Din cauza setÄrilor de securitate ale programului dvs. cu care navigaÅ£i pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui sÄ adÄugaÅ£i din nou datele în aceastÄ fereastrÄ.',
+ title: 'AdaugÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ru.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ru.js
new file mode 100644
index 0000000..4e4cf4e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ru.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ru', {
+ copy: 'ÐопиÑоваÑÑ',
+ copyError: 'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не ÑазÑеÑаÑÑ ÑедакÑоÑÑ Ð²ÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии по копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑекÑÑа. ÐожалÑйÑÑа, иÑполÑзÑйÑе Ð´Ð»Ñ ÑÑого клавиаÑÑÑÑ (Ctrl/Cmd+C).',
+ cut: 'ÐÑÑезаÑÑ',
+ cutError: 'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не ÑазÑеÑаÑÑ ÑедакÑоÑÑ Ð²ÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии по вÑÑезке ÑекÑÑа. ÐожалÑйÑÑа, иÑполÑзÑйÑе Ð´Ð»Ñ ÑÑого клавиаÑÑÑÑ (Ctrl/Cmd+X).',
+ paste: 'ÐÑÑавиÑÑ',
+ pasteArea: 'Ðона Ð´Ð»Ñ Ð²ÑÑавки',
+ pasteMsg: 'ÐожалÑйÑÑа, вÑÑавÑÑе ÑекÑÑ Ð² Ð·Ð¾Ð½Ñ Ð½Ð¸Ð¶Ðµ, иÑполÑзÑÑ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ (<strong>Ctrl/Cmd+V</strong>) и нажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ "OK".',
+ securityMsg: 'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не ÑазÑеÑаÑÑ ÑедакÑоÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº бÑÑеÑÑ Ð¾Ð±Ð¼ÐµÐ½Ð°. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑÑавиÑÑ ÑекÑÑ Ñнова в ÑÑо окно.',
+ title: 'ÐÑÑавиÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/sk.js b/devel/third-party/ckeditor/plugins/clipboard/lang/sk.js
new file mode 100644
index 0000000..fb0fb61
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/sk.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'sk', {
+ copy: 'KopÃrovaÅ¥',
+ copyError: 'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru automaticky spustiÅ¥ operáciu kopÃrovania. ProsÃm, použite na to klávesnicu (Ctrl/Cmd+C).',
+ cut: 'Vystrihnúť',
+ cutError: 'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru automaticky spustiÅ¥ operáciu vystrihnutia. ProsÃm, použite na to klávesnicu (Ctrl/Cmd+X).',
+ paste: 'Vložiť',
+ pasteArea: 'Miesto pre vloženie',
+ pasteMsg: 'ProsÃm, vložte nasledovný rámÄek použitÃm klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stlaÄte OK.',
+ securityMsg: 'Kvôli vaÅ¡im bezpeÄnostným nastaveniam prehliadaÄa editor nie je schopný pristupovaÅ¥ k vaÅ¡ej schránke na kopÃrovanie priamo. Vložte to preto do tohto okna.',
+ title: 'Vložiť'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/sl.js b/devel/third-party/ckeditor/plugins/clipboard/lang/sl.js
new file mode 100644
index 0000000..8146b51
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/sl.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'sl', {
+ copy: 'Kopiraj',
+ copyError: 'Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).',
+ cut: 'Izreži',
+ cutError: 'Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',
+ paste: 'Prilepi',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',
+ securityMsg: 'Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odložiÅ¡Äa. Vsebino odložiÅ¡Äa ponovno prilepite v to okno.',
+ title: 'Prilepi'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/clipboard/lang/sr-latn.js
new file mode 100644
index 0000000..72dab32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/sr-latn.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'sr-latn', {
+ copy: 'Kopiraj',
+ copyError: 'Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+C).',
+ cut: 'Iseci',
+ cutError: 'Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+X).',
+ paste: 'Zalepi',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Molimo Vas da zalepite unutar donje povrine koristeÄi tastaturnu preÄicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Zalepi'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/sr.js b/devel/third-party/ckeditor/plugins/clipboard/lang/sr.js
new file mode 100644
index 0000000..f705dce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/sr.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'sr', {
+ copy: 'ÐопиÑаÑ',
+ copyError: 'СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког копиÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+C).',
+ cut: 'ÐÑеÑи',
+ cutError: 'СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког иÑеÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+X).',
+ paste: 'Ðалепи',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'Ðолимо ÐÐ°Ñ Ð´Ð° залепиÑе ÑнÑÑÐ°Ñ Ð´Ð¾Ñе повÑÑине коÑиÑÑеÑи ÑаÑÑаÑÑÑÐ½Ñ Ð¿ÑеÑиÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>) и да пÑиÑиÑнеÑе <STRONG>OK</STRONG>.',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'Ðалепи'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/sv.js b/devel/third-party/ckeditor/plugins/clipboard/lang/sv.js
new file mode 100644
index 0000000..fac834d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/sv.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'sv', {
+ copy: 'Kopiera',
+ copyError: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl/Cmd+C) istället',
+ cut: 'Klipp ut',
+ cutError: 'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl/Cmd+X) istället.',
+ paste: 'Klistra in',
+ pasteArea: 'Paste Area',
+ pasteMsg: 'Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl/Cmd+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.',
+ securityMsg: 'På grund av din webbläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.',
+ title: 'Klistra in'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/th.js b/devel/third-party/ckeditor/plugins/clipboard/lang/th.js
new file mode 100644
index 0000000..4455b26
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/th.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'th', {
+ copy: 'สำà¹à¸à¸²',
+ copyError: 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸³à¹à¸à¸²à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ C à¸à¸£à¹à¸à¸¡à¸à¸±à¸).',
+ cut: 'à¸à¸±à¸',
+ cutError: 'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ X à¸à¸£à¹à¸à¸¡à¸à¸±à¸).',
+ paste: 'วาà¸',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸µà¸¢à¹à¸à¸à¸£à¹à¸à¹à¸à¹à¸²à¸à¸±à¹à¸ à¹à¸à¸¢à¸à¸à¸à¸¸à¹à¸¡ (<strong>Ctrl/Cmd à¹à¸¥à¸° V</strong>)à¸à¸£à¹à¸à¸¡à¹à¸à¸±à¸ à¹à¸¥à¸°à¸à¸ <strong>OK</strong>.',
+ securityMsg: 'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.', // MISSING
+ title: 'วาà¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/tr.js b/devel/third-party/ckeditor/plugins/clipboard/lang/tr.js
new file mode 100644
index 0000000..dfb27d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/tr.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'tr', {
+ copy: 'Kopyala',
+ copyError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+C) tuÅlarını kullanın.',
+ cut: 'Kes',
+ cutError: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+X) tuÅlarını kullanın.',
+ paste: 'YapıÅtır',
+ pasteArea: 'YapıÅtırma Alanı',
+ pasteMsg: 'Lütfen aÅaÄıdaki kutunun içine yapıÅtırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.',
+ securityMsg: 'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya eriÅimine izin vermiyor. Bu pencere içine tekrar yapıÅtırmalısınız..',
+ title: 'YapıÅtır'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/ug.js b/devel/third-party/ckeditor/plugins/clipboard/lang/ug.js
new file mode 100644
index 0000000..43c6b56
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/ug.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'ug', {
+ copy: 'ÙÛØ´Ø± Ú¾ÙÙÛÙÙØºØ§ ئÙÚ¯Û Ø¨ÛÙÚ¯ÙØ³Ù',
+ copyError: 'ØªÙØ± ÙÛØ±Ú¯ÛÚÙØ²ÙÙÚ Ø¨ÙØ®ÛØªÛØ±ÙÙ٠تÛÚØ´ÙÙ٠تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚÙÙÚ ÙÛÚÛØ± Ù
ÛØ´ØºÛÙØ§ØªÙÙÙ Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ Ø¦ÙØ¬Ø±Ø§ ÙÙÙÙØ´Ùغا ÙÙÙ ÙÙÙÙ
Ø§ÙØ¯ÛØ Ú¾ÛØ±Ù¾ØªØ§Ø®ØªØ§ ØªÛØ² ÙÛÙÛÙ¾ÙØ§ (Ctrl/Cmd+C) ئارÙÙÙÙ٠تاÙ
اÙ
ÙØ§Ú',
+ cut: 'ÙÛØ³',
+ cutError: 'ØªÙØ± ÙÛØ±Ú¯ÛÚÙØ²ÙÙÚ Ø¨ÙØ®ÛØªÛØ±ÙÙ٠تÛÚØ´ÙÙ٠تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚÙÙÚ ÙÛØ³ Ù
ÛØ´ØºÛÙØ§ØªÙÙÙ Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ Ø¦ÙØ¬Ø±Ø§ ÙÙÙÙØ´Ùغا ÙÙÙ ÙÙÙÙ
Ø§ÙØ¯ÛØ Ú¾ÛØ±Ù¾ØªØ§Ø®ØªØ§ ØªÛØ² ÙÛÙÛÙ¾ÙØ§ (Ctrl/Cmd+X) ئارÙÙÙÙ٠تاÙ
اÙ
ÙØ§Ú',
+ paste: 'ÚØ§Ù¾Ùا',
+ pasteArea: 'ÚØ§Ù¾Ùاش Ø¯Ø§Ø¦ÙØ±ÙسÙ',
+ pasteMsg: 'Ú¾ÛØ±Ù¾ØªØ§Ø®ØªØ§ ØªÛØ² ÙÛÙÛÙ¾ÙØ§ (<STRONG>Ctrl/Cmd+V</STRONG>) ÙÙ Ø¦ÙØ´ÙÙØªÙÙ¾ Ù
ÛØ²Ù
ÛÙÙ٠تÛÛÛÙØ¯ÙÙ٠راÙ
ÙÙØºØ§ ÙÛÚÛØ±ÛÚØ Ø¦Ø§ÙØ¯ÙÙ <STRONG>Ø¬ÛØ²Ù
ÙÛ</STRONG>ÙÙ Ø¨ÛØ³ÙÚ',
+ securityMsg: 'ØªÙØ±ÙÛØ±Ú¯ÛÚÙØ²ÙÙÚ Ø¨ÙØ®ÛØªÛØ±ÙÙ٠تÛÚØ´ÙÙ٠سÛÛÛØ¨ÙدÙÙ Ø¨Û ØªÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ ÚØ§Ù¾Ùاش ØªØ§Ø®ØªÙØ³ÙدÙÙÙ Ù
ÛØ²Ù
ÛÙÙ٠بÙÛØ§Ø³ØªÛ زÙÙØ§Ø±Ûت ÙÙÙØ§ÙÙ
Ø§ÙØ¯ÛØ Ø¨Û ÙÛØ²ÙÛÙØªÛ ÙØ§Ùتا Ø¨ÙØ± ÙÛØªÙÙ
ÚØ§Ù¾ÙÙØ´ÙÚÙØ² ÙÛØ±ÛÙ.',
+ title: 'ÚØ§Ù¾Ùا'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/uk.js b/devel/third-party/ckeditor/plugins/clipboard/lang/uk.js
new file mode 100644
index 0000000..b1521cd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/uk.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'uk', {
+ copy: 'ÐопÑÑваÑи',
+ copyError: 'ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ ÐаÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ ÐºÐ¾Ð¿ÑÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+C).',
+ cut: 'ÐиÑÑзаÑи',
+ cutError: 'ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ ÐаÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ Ð²Ð¸ÑÑзÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+X)',
+ paste: 'ÐÑÑавиÑи',
+ pasteArea: 'ÐблаÑÑÑ Ð²ÑÑавки',
+ pasteMsg: 'ÐÑÐ´Ñ Ð»Ð°Ñка, вÑÑавÑе ÑнÑоÑмаÑÑÑ Ð· бÑÑеÑа обмÑÐ½Ñ Ð² ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ, коÑиÑÑÑÑÑиÑÑ ÐºÐ¾Ð¼Ð±ÑнаÑÑÑÑ ÐºÐ»Ð°Ð²ÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>), Ñа наÑиÑнÑÑÑ <STRONG>OK</STRONG>.',
+ securityMsg: 'РедакÑÐ¾Ñ Ð½Ðµ може оÑÑимаÑи пÑÑмий доÑÑÑп до бÑÑеÑÑ Ð¾Ð±Ð¼ÑÐ½Ñ Ñ Ð·Ð²\'ÑÐ·ÐºÑ Ð· налаÑÑÑваннÑми ÐаÑого бÑаÑзеÑа. Ðам поÑÑÑбно вÑÑавиÑи ÑнÑоÑмаÑÑÑ Ð² Ñе вÑкно.',
+ title: 'ÐÑÑавиÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/vi.js b/devel/third-party/ckeditor/plugins/clipboard/lang/vi.js
new file mode 100644
index 0000000..b42b58b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/vi.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'vi', {
+ copy: 'Sao chép',
+ copyError: 'Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh sao chép. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+C).',
+ cut: 'Cắt',
+ cutError: 'Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh cắt. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+X).',
+ paste: 'Dán',
+ pasteArea: 'Khu vực dán',
+ pasteMsg: 'Hãy dán ná»i dung và o trong khung bên dưá»i, sá» dụng tá» hợp phÃm (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn và o nút <STRONG>Äá»ng ý</STRONG>.',
+ securityMsg: 'Do thiết láºp bảo máºt cá»§a trình duyá»t nên trình biên táºp không thá» truy cáºp trá»±c tiếp và o ná»i dung Äã sao chép. Bạn cần phải dán lại ná»i dung và o cá»a sá» nà y.',
+ title: 'Dán'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/clipboard/lang/zh-cn.js
new file mode 100644
index 0000000..00920cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/zh-cn.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'zh-cn', {
+ copy: 'å¤å¶',
+ copyError: 'æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡å¤å¶æä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+C)æ¥å®æ',
+ cut: 'åªå',
+ cutError: 'æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡åªåæä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+X)æ¥å®æ',
+ paste: 'ç²è´´',
+ pasteArea: 'ç²è´´åºå',
+ pasteMsg: '请使ç¨é®çå¿«æ·é®(<STRONG>Ctrl/Cmd+V</STRONG>)æå
容ç²è´´å°ä¸é¢çæ¹æ¡éï¼åæ <STRONG>ç¡®å®</STRONG>',
+ securityMsg: 'å 为æ¨çæµè§å¨çå®å
¨è®¾ç½®åå , æ¬ç¼è¾å¨ä¸è½ç´æ¥è®¿é®æ¨çåªè´´æ¿å
容, ä½ éè¦å¨æ¬çªå£éæ°ç²è´´ä¸æ¬¡ã',
+ title: 'ç²è´´'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/lang/zh.js b/devel/third-party/ckeditor/plugins/clipboard/lang/zh.js
new file mode 100644
index 0000000..96cda9a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/clipboard/lang/zh.js
@@ -0,0 +1,15 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'clipboard', 'zh', {
+ copy: 'è¤è£½',
+ copyError: 'ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡è¤è£½åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+C) è¤è£½ã',
+ cut: 'åªä¸',
+ cutError: 'ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡åªä¸åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+X) åªä¸ã',
+ paste: 'è²¼ä¸',
+ pasteArea: 'Paste Area', // MISSING
+ pasteMsg: 'è«ä½¿ç¨å¿«æ·éµ (<strong>Ctrl/Cmd+V</strong>) è²¼å°ä¸æ¹ååä¸ä¸¦æä¸ <strong>確å®</strong>',
+ securityMsg: 'å çºç覽å¨çå®å
¨æ§è¨å®ï¼æ¬ç·¨è¼¯å¨ç¡æ³ç´æ¥å忍çåªè²¼ç°¿è³æï¼è«æ¨èªè¡å¨æ¬è¦çªé²è¡è²¼ä¸åä½ã',
+ title: 'è²¼ä¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/clipboard/plugin.js b/devel/third-party/ckeditor/plugins/clipboard/plugin.js
index 9dc230e..3011f49 100644
--- a/devel/third-party/ckeditor/plugins/clipboard/plugin.js
+++ b/devel/third-party/ckeditor/plugins/clipboard/plugin.js
@@ -1,412 +1,1203 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Clipboard support
+ * @ignore
+ * File overview: Clipboard support.
*/
-(function()
-{
- // Tries to execute any of the paste, cut or copy commands in IE. Returns a
- // boolean indicating that the operation succeeded.
- var execIECommand = function( editor, command )
- {
- var doc = editor.document,
- body = doc.getBody();
-
- var enabled = false;
- var onExec = function()
- {
- enabled = true;
+//
+// EXECUTION FLOWS:
+// -- CTRL+C
+// * browser's default behaviour
+// -- CTRL+V
+// * listen onKey (onkeydown)
+// * simulate 'beforepaste' for non-IEs on editable
+// * simulate 'paste' for Fx2/Opera on editable
+// * listen 'onpaste' on editable ('onbeforepaste' for IE)
+// * fire 'beforePaste' on editor
+// * !canceled && getClipboardDataByPastebin
+// * fire 'paste' on editor
+// * !canceled && fire 'afterPaste' on editor
+// -- CTRL+X
+// * listen onKey (onkeydown)
+// * fire 'saveSnapshot' on editor
+// * browser's default behaviour
+// * deferred second 'saveSnapshot' event
+// -- Copy command
+// * tryToCutCopy
+// * execCommand
+// * !success && alert
+// -- Cut command
+// * fixCut
+// * tryToCutCopy
+// * execCommand
+// * !success && alert
+// -- Paste command
+// * fire 'paste' on editable ('beforepaste' for IE)
+// * !canceled && execCommand 'paste'
+// * !success && fire 'pasteDialog' on editor
+// -- Paste from native context menu & menubar
+// (Fx & Webkits are handled in 'paste' default listner.
+// Opera cannot be handled at all because it doesn't fire any events
+// Special treatment is needed for IE, for which is this part of doc)
+// * listen 'onpaste'
+// * cancel native event
+// * fire 'beforePaste' on editor
+// * !canceled && getClipboardDataByPastebin
+// * execIECommand( 'paste' ) -> this fires another 'paste' event, so cancel it
+// * fire 'paste' on editor
+// * !canceled && fire 'afterPaste' on editor
+//
+//
+// PASTE EVENT - PREPROCESSING:
+// -- Possible dataValue types: auto, text, html.
+// -- Possible dataValue contents:
+// * text (possible \n\r)
+// * htmlified text (text + br,div,p - no presentional markup & attrs - depends on browser)
+// * html
+// -- Possible flags:
+// * htmlified - if true then content is a HTML even if no markup inside. This flag is set
+// for content from editable pastebins, because they 'htmlify' pasted content.
+//
+// -- Type: auto:
+// * content: htmlified text -> filter, unify text markup (brs, ps, divs), set type: text
+// * content: html -> filter, set type: html
+// -- Type: text:
+// * content: htmlified text -> filter, unify text markup
+// * content: html -> filter, strip presentional markup, unify text markup
+// -- Type: html:
+// * content: htmlified text -> filter, unify text markup
+// * content: html -> filter
+//
+// -- Phases:
+// * filtering (priorities 3-5) - e.g. pastefromword filters
+// * content type sniffing (priority 6)
+// * markup transformations for text (priority 6)
+//
+
+'use strict';
+
+(function() {
+ // Register the plugin.
+ CKEDITOR.plugins.add( 'clipboard', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'copy,copy-rtl,cut,cut-rtl,paste,paste-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ var textificationFilter;
+
+ initClipboard( editor );
+
+ CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) );
+
+ editor.on( 'paste', function( evt ) {
+ var data = evt.data.dataValue,
+ blockElements = CKEDITOR.dtd.$block;
+
+ // Filter webkit garbage.
+ if ( data.indexOf( 'Apple-' ) > -1 ) {
+ // Replace special webkit's with simple space, because webkit
+ // produces them even for normal spaces.
+ data = data.replace( /<span class="Apple-converted-space"> <\/span>/gi, ' ' );
+
+ // Strip <span> around white-spaces when not in forced 'html' content type.
+ // This spans are created only when pasting plain text into Webkit,
+ // but for safety reasons remove them always.
+ if ( evt.data.type != 'html' )
+ data = data.replace( /<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi, function( all, spaces ) {
+ // Replace tabs with 4 spaces like Fx does.
+ return spaces.replace( /\t/g, ' ' );
+ });
+
+ // This br is produced only when copying & pasting HTML content.
+ if ( data.indexOf( '<br class="Apple-interchange-newline">' ) > -1 ) {
+ evt.data.startsWithEOL = 1;
+ evt.data.preSniffing = 'html'; // Mark as not text.
+ data = data.replace( /<br class="Apple-interchange-newline">/, '' );
+ }
+
+ // Remove all other classes.
+ data = data.replace( /(<[^>]+) class="Apple-[^"]*"/gi, '$1' );
+ }
+
+ // Strip editable that was copied from inside. (#9534)
+ if ( data.match( /^<[^<]+cke_(editable|contents)/i ) ) {
+ var tmp,
+ editable_wrapper,
+ wrapper = new CKEDITOR.dom.element( 'div' );
+
+ wrapper.setHtml( data );
+ // Verify for sure and check for nested editor UI parts. (#9675)
+ while ( wrapper.getChildCount() == 1 &&
+ ( tmp = wrapper.getFirst() ) &&
+ tmp.type == CKEDITOR.NODE_ELEMENT && // Make sure first-child is element.
+ ( tmp.hasClass( 'cke_editable' ) || tmp.hasClass( 'cke_contents' ) ) ) {
+ wrapper = editable_wrapper = tmp;
+ }
+
+ // If editable wrapper was found strip it and bogus <br> (added on FF).
+ if ( editable_wrapper )
+ data = editable_wrapper.getHtml().replace( /<br>$/i, '' );
+ }
+
+ if ( CKEDITOR.env.ie ) {
+ // <p> -> <p> (br.cke-pasted-remove will be removed later)
+ data = data.replace( /^ (?: |\r\n)?<(\w+)/g, function( match, elementName ) {
+ if ( elementName.toLowerCase() in blockElements ) {
+ evt.data.preSniffing = 'html'; // Mark as not a text.
+ return '<' + elementName;
+ }
+ return match;
+ });
+ } else if ( CKEDITOR.env.webkit ) {
+ // </p><div><br></div> -> </p><br>
+ // We don't mark br, because this situation can happen for htmlified text too.
+ data = data.replace( /<\/(\w+)><div><br><\/div>$/, function( match, elementName ) {
+ if ( elementName in blockElements ) {
+ evt.data.endsWithEOL = 1;
+ return '</' + elementName + '>';
+ }
+ return match;
+ });
+ } else if ( CKEDITOR.env.gecko ) {
+ // Firefox adds bogus <br> when user pasted text followed by space(s).
+ data = data.replace( /(\s)<br>$/, '$1' );
+ }
+
+ evt.data.dataValue = data;
+ }, null, null, 3 );
+
+ editor.on( 'paste', function( evt ) {
+ var dataObj = evt.data,
+ type = dataObj.type,
+ data = dataObj.dataValue,
+ trueType,
+ // Default is 'html'.
+ defaultType = editor.config.clipboard_defaultContentType || 'html';
+
+ // If forced type is 'html' we don't need to know true data type.
+ if ( type == 'html' || dataObj.preSniffing == 'html' )
+ trueType = 'html';
+ else
+ trueType = recogniseContentType( data );
+
+ // Unify text markup.
+ if ( trueType == 'htmlifiedtext' )
+ data = htmlifiedTextHtmlification( editor.config, data );
+ // Strip presentional markup & unify text markup.
+ else if ( type == 'text' && trueType == 'html' ) {
+ // Init filter only if needed and cache it.
+ data = htmlTextification( editor.config, data, textificationFilter || ( textificationFilter = getTextificationFilter( editor ) ) );
+ }
+
+ if ( dataObj.startsWithEOL )
+ data = '<br data-cke-eol="1">' + data;
+ if ( dataObj.endsWithEOL )
+ data += '<br data-cke-eol="1">';
+
+ if ( type == 'auto' )
+ type = ( trueType == 'html' || defaultType == 'html' ) ? 'html' : 'text';
+
+ dataObj.type = type;
+ dataObj.dataValue = data;
+ delete dataObj.preSniffing;
+ delete dataObj.startsWithEOL;
+ delete dataObj.endsWithEOL;
+ }, null, null, 6 );
+
+ // Inserts processed data into the editor at the end of the
+ // events chain.
+ editor.on( 'paste', function( evt ) {
+ var data = evt.data;
+
+ editor.insertHtml( data.dataValue, data.type );
+
+ // Deferr 'afterPaste' so all other listeners for 'paste' will be fired first.
+ setTimeout( function() {
+ editor.fire( 'afterPaste' );
+ }, 0 );
+ }, null, null, 1000 );
+
+ editor.on( 'pasteDialog', function( evt ) {
+ // TODO it's possible that this setTimeout is not needed any more,
+ // because of changes introduced in the same commit as this comment.
+ // Editor.getClipboardData adds listner to the dialog's events which are
+ // fired after a while (not like 'showDialog').
+ setTimeout( function() {
+ // Open default paste dialog.
+ editor.openDialog( 'paste', evt.data );
+ }, 0 );
+ });
+ }
+ });
+
+ function initClipboard( editor ) {
+ var preventBeforePasteEvent = 0,
+ preventPasteEvent = 0,
+ inReadOnly = 0,
+ // Safari doesn't like 'beforepaste' event - it sometimes doesn't
+ // properly handles ctrl+c. Probably some race-condition between events.
+ // Chrome and Firefox works well with both events, so better to use 'paste'
+ // which will handle pasting from e.g. browsers' menu bars.
+ // IE7/8 doesn't like 'paste' event for which it's throwing random errors.
+ mainPasteEvent = CKEDITOR.env.ie ? 'beforepaste' : 'paste';
+
+ addListeners();
+ addButtonsCommands();
+
+ /**
+ * Gets clipboard data by directly accessing the clipboard (IE only) or opening paste dialog.
+ *
+ * editor.getClipboardData( { title: 'Get my data' }, function( data ) {
+ * if ( data )
+ * alert( data.type + ' ' + data.dataValue );
+ * } );
+ *
+ * @member CKEDITOR.editor
+ * @param {Object} options
+ * @param {String} [options.title] Title of paste dialog.
+ * @param {Function} callback Function that will be executed with `data.type` and `data.dataValue`
+ * or `null` if none of the capturing method succeeded.
+ */
+ editor.getClipboardData = function( options, callback ) {
+ var beforePasteNotCanceled = false,
+ dataType = 'auto',
+ dialogCommited = false;
+
+ // Options are optional - args shift.
+ if ( !callback ) {
+ callback = options;
+ options = null;
+ }
+
+ // Listen with maximum priority to handle content before everyone else.
+ // This callback will handle paste event that will be fired if direct
+ // access to the clipboard succeed in IE.
+ editor.on( 'paste', onPaste, null, null, 0 );
+
+ // Listen at the end of listeners chain to see if event wasn't canceled
+ // and to retrieve modified data.type.
+ editor.on( 'beforePaste', onBeforePaste, null, null, 1000 );
+
+ // getClipboardDataDirectly() will fire 'beforePaste' synchronously, so we can
+ // check if it was canceled and if any listener modified data.type.
+
+ // If command didn't succeed (only IE allows to access clipboard and only if
+ // user agrees) open and handle paste dialog.
+ if ( getClipboardDataDirectly() === false ) {
+ // Direct access to the clipboard wasn't successful so remove listener.
+ editor.removeListener( 'paste', onPaste );
+
+ // If beforePaste was canceled do not open dialog.
+ // Add listeners only if dialog really opened. 'pasteDialog' can be canceled.
+ if ( beforePasteNotCanceled && editor.fire( 'pasteDialog', onDialogOpen ) ) {
+ editor.on( 'pasteDialogCommit', onDialogCommit );
+
+ // 'dialogHide' will be fired after 'pasteDialogCommit'.
+ editor.on( 'dialogHide', function( evt ) {
+ evt.removeListener();
+ evt.data.removeListener( 'pasteDialogCommit', onDialogCommit );
+
+ // Because Opera has to wait a while in pasteDialog we have to wait here.
+ setTimeout( function() {
+ // Notify even if user canceled dialog (clicked 'cancel', ESC, etc).
+ if ( !dialogCommited )
+ callback( null );
+ }, 10 );
+ });
+ } else
+ callback( null );
+ }
+
+ function onPaste( evt ) {
+ evt.removeListener();
+ evt.cancel();
+ callback( evt.data );
+ }
+
+ function onBeforePaste( evt ) {
+ evt.removeListener();
+ beforePasteNotCanceled = true;
+ dataType = evt.data.type;
+ }
+
+ function onDialogCommit( evt ) {
+ evt.removeListener();
+ // Cancel pasteDialogCommit so paste dialog won't automatically fire
+ // 'paste' evt by itself.
+ evt.cancel();
+ dialogCommited = true;
+ callback( { type: dataType, dataValue: evt.data } );
+ }
+
+ function onDialogOpen() {
+ this.customTitle = ( options && options.title );
+ }
};
- // The following seems to be the only reliable way to detect that
- // clipboard commands are enabled in IE. It will fire the
- // onpaste/oncut/oncopy events only if the security settings allowed
- // the command to execute.
- body.on( command, onExec );
+ function addButtonsCommands() {
+ addButtonCommand( 'Cut', 'cut', createCutCopyCmd( 'cut' ), 10, 1 );
+ addButtonCommand( 'Copy', 'copy', createCutCopyCmd( 'copy' ), 20, 4 );
+ addButtonCommand( 'Paste', 'paste', createPasteCmd(), 30, 8 );
+
+ function addButtonCommand( buttonName, commandName, command, toolbarOrder, ctxMenuOrder ) {
+ var lang = editor.lang.clipboard[ commandName ];
+
+ editor.addCommand( commandName, command );
+ editor.ui.addButton && editor.ui.addButton( buttonName, {
+ label: lang,
+ command: commandName,
+ toolbar: 'clipboard,' + toolbarOrder
+ });
+
+ // If the "menu" plugin is loaded, register the menu item.
+ if ( editor.addMenuItems ) {
+ editor.addMenuItem( commandName, {
+ label: lang,
+ command: commandName,
+ group: 'clipboard',
+ order: ctxMenuOrder
+ });
+ }
+ }
+ }
+
+ function addListeners() {
+ editor.on( 'key', onKey );
+ editor.on( 'contentDom', addListenersToEditable );
+
+ // For improved performance, we're checking the readOnly state on selectionChange instead of hooking a key event for that.
+ editor.on( 'selectionChange', function( evt ) {
+ inReadOnly = evt.data.selection.getRanges()[ 0 ].checkReadOnly();
+ setToolbarStates();
+ });
+
+ // If the "contextmenu" plugin is loaded, register the listeners.
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element, selection ) {
+ inReadOnly = selection.getRanges()[ 0 ].checkReadOnly();
+ return {
+ cut: stateFromNamedCommand( 'Cut' ),
+ copy: stateFromNamedCommand( 'Copy' ),
+ paste: stateFromNamedCommand( 'Paste' )
+ };
+ });
+ }
+ }
+
+ // Add events listeners to editable.
+ function addListenersToEditable() {
+ var editable = editor.editable();
+
+ // We'll be catching all pasted content in one line, regardless of whether
+ // it's introduced by a document command execution (e.g. toolbar buttons) or
+ // user paste behaviors (e.g. CTRL+V).
+ editable.on( mainPasteEvent, function( evt ) {
+ if ( CKEDITOR.env.ie && preventBeforePasteEvent )
+ return;
+
+ // If you've just asked yourself why preventPasteEventNow() is not here, but
+ // in listener for CTRL+V and exec method of 'paste' command
+ // you've asked the same question we did.
+ //
+ // THE ANSWER:
+ //
+ // First thing to notice - this answer makes sense only for IE,
+ // because other browsers don't listen for 'paste' event.
+ //
+ // What would happen if we move preventPasteEventNow() here?
+ // For:
+ // * CTRL+V - IE fires 'beforepaste', so we prevent 'paste' and pasteDataFromClipboard(). OK.
+ // * editor.execCommand( 'paste' ) - we fire 'beforepaste', so we prevent
+ // 'paste' and pasteDataFromClipboard() and doc.execCommand( 'Paste' ). OK.
+ // * native context menu - IE fires 'beforepaste', so we prevent 'paste', but unfortunately
+ // on IE we fail with pasteDataFromClipboard() here, because of... we don't know why, but
+ // we just fail, so... we paste nothing. FAIL.
+ // * native menu bar - the same as for native context menu.
+ //
+ // But don't you know any way to distinguish first two cases from last two?
+ // Only one - special flag set in CTRL+V handler and exec method of 'paste'
+ // command. And that's what we did using preventPasteEventNow().
+
+ pasteDataFromClipboard( evt );
+ });
+
+ // It's not possible to clearly handle all four paste methods (ctrl+v, native menu bar
+ // native context menu, editor's command) in one 'paste/beforepaste' event in IE.
+ //
+ // For ctrl+v & editor's command it's easy to handle pasting in 'beforepaste' listener,
+ // so we do this. For another two methods it's better to use 'paste' event.
+ //
+ // 'paste' is always being fired after 'beforepaste' (except of weird one on opening native
+ // context menu), so for two methods handled in 'beforepaste' we're canceling 'paste'
+ // using preventPasteEvent state.
+ //
+ // 'paste' event in IE is being fired before getClipboardDataByPastebin executes its callback.
+ //
+ // QUESTION: Why didn't you handle all 4 paste methods in handler for 'paste'?
+ // Wouldn't this just be simpler?
+ // ANSWER: Then we would have to evt.data.preventDefault() only for native
+ // context menu and menu bar pastes. The same with execIECommand().
+ // That would force us to mark CTRL+V and editor's paste command with
+ // special flag, other than preventPasteEvent. But we still would have to
+ // have preventPasteEvent for the second event fired by execIECommand.
+ // Code would be longer and not cleaner.
+ CKEDITOR.env.ie && editable.on( 'paste', function( evt ) {
+ if ( preventPasteEvent )
+ return;
+ // Cancel next 'paste' event fired by execIECommand( 'paste' )
+ // at the end of this callback.
+ preventPasteEventNow();
+
+ // Prevent native paste.
+ evt.data.preventDefault();
- // IE6/7: document.execCommand has problem to paste into positioned element.
- ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() ) [ 'execCommand' ]( command );
+ pasteDataFromClipboard( evt );
- body.removeListener( command, onExec );
+ // Force IE to paste content into pastebin so pasteDataFromClipboard will work.
+ if ( !execIECommand( 'paste' ) )
+ editor.openDialog( 'paste' );
+ });
+
+ // [IE] Dismiss the (wrong) 'beforepaste' event fired on context/toolbar menu open. (#7953)
+ if ( CKEDITOR.env.ie ) {
+ editable.on( 'contextmenu', preventBeforePasteEventNow, null, null, 0 );
- return enabled;
- };
+ editable.on( 'beforepaste', function( evt ) {
+ if ( evt.data && !evt.data.$.ctrlKey )
+ preventBeforePasteEventNow();
+ }, null, null, 0 );
- // Attempts to execute the Cut and Copy operations.
- var tryToCutCopy =
- CKEDITOR.env.ie ?
- function( editor, type )
- {
- return execIECommand( editor, type );
}
- : // !IE.
- function( editor, type )
- {
- try
- {
- // Other browsers throw an error if the command is disabled.
- return editor.document.$.execCommand( type );
+
+ editable.on( 'beforecut', function() {
+ !preventBeforePasteEvent && fixCut( editor );
+ });
+
+ editable.on( 'mouseup', function() {
+ setTimeout( function() {
+ setToolbarStates();
+ }, 0 );
+ });
+
+ editable.on( 'keyup', setToolbarStates );
+ }
+
+ // Create object representing Cut or Copy commands.
+ function createCutCopyCmd( type ) {
+ return {
+ type: type,
+ canUndo: type == 'cut', // We can't undo copy to clipboard.
+ startDisabled: true,
+ exec: function( data ) {
+ // Attempts to execute the Cut and Copy operations.
+ function tryToCutCopy( type ) {
+ if ( CKEDITOR.env.ie )
+ return execIECommand( type );
+
+ // non-IEs part
+ try {
+ // Other browsers throw an error if the command is disabled.
+ return editor.document.$.execCommand( type, false, null );
+ } catch ( e ) {
+ return false;
+ }
+ }
+
+ this.type == 'cut' && fixCut();
+
+ var success = tryToCutCopy( this.type );
+
+ if ( !success )
+ alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError.
+
+ return success;
}
- catch( e )
- {
- return false;
+ };
+ }
+
+ function createPasteCmd() {
+ return {
+ // Snapshots are done manually by editable.insertXXX methods.
+ canUndo: false,
+ async: true,
+
+ exec: function( editor, data ) {
+ var fire = function( data, withBeforePaste ) {
+ data && firePasteEvents( data.type, data.dataValue, !!withBeforePaste );
+
+ editor.fire( 'afterCommandExec', {
+ name: 'paste',
+ command: cmd,
+ returnValue: !!data
+ });
+ },
+ cmd = this;
+
+ // Check data precisely - don't open dialog on empty string.
+ if ( typeof data == 'string' )
+ fire( { type: 'auto', dataValue: data }, 1 );
+ else
+ editor.getClipboardData( fire );
}
};
+ }
+
+ function preventPasteEventNow() {
+ preventPasteEvent = 1;
+ // For safety reason we should wait longer than 0/1ms.
+ // We don't know how long execution of quite complex getClipboardData will take
+ // and in for example 'paste' listner execCommand() (which fires 'paste') is called
+ // after getClipboardData finishes.
+ // Luckily, it's impossible to immediately fire another 'paste' event we want to handle,
+ // because we only handle there native context menu and menu bar.
+ setTimeout( function() {
+ preventPasteEvent = 0;
+ }, 100 );
+ }
+
+ function preventBeforePasteEventNow() {
+ preventBeforePasteEvent = 1;
+ setTimeout( function() {
+ preventBeforePasteEvent = 0;
+ }, 10 );
+ }
- // A class that represents one of the cut or copy commands.
- var cutCopyCmd = function( type )
- {
- this.type = type;
- this.canUndo = ( this.type == 'cut' ); // We can't undo copy to clipboard.
- };
+ // Tries to execute any of the paste, cut or copy commands in IE. Returns a
+ // boolean indicating that the operation succeeded.
+ // @param {String} command *LOWER CASED* name of command ('paste', 'cut', 'copy').
+ function execIECommand( command ) {
+ var doc = editor.document,
+ body = doc.getBody(),
+ enabled = false,
+ onExec = function() {
+ enabled = true;
+ };
- cutCopyCmd.prototype =
- {
- exec : function( editor, data )
- {
- this.type == 'cut' && fixCut( editor );
+ // The following seems to be the only reliable way to detect that
+ // clipboard commands are enabled in IE. It will fire the
+ // onpaste/oncut/oncopy events only if the security settings allowed
+ // the command to execute.
+ body.on( command, onExec );
- var success = tryToCutCopy( editor, this.type );
+ // IE6/7: document.execCommand has problem to paste into positioned element.
+ ( CKEDITOR.env.version > 7 ? doc.$ : doc.$.selection.createRange() )[ 'execCommand' ]( command );
- if ( !success )
- alert( editor.lang.clipboard[ this.type + 'Error' ] ); // Show cutError or copyError.
+ body.removeListener( command, onExec );
- return success;
+ return enabled;
}
- };
-
- // Paste command.
- var pasteCmd =
- {
- canUndo : false,
-
- exec :
- CKEDITOR.env.ie ?
- function( editor )
- {
- // Prevent IE from pasting at the begining of the document.
- editor.focus();
-
- if ( !editor.document.getBody().fire( 'beforepaste' )
- && !execIECommand( editor, 'paste' ) )
- {
- editor.fire( 'pasteDialog' );
- return false;
+
+ function firePasteEvents( type, data, withBeforePaste ) {
+ var eventData = { type: type };
+
+ if ( withBeforePaste ) {
+ // Fire 'beforePaste' event so clipboard flavor get customized
+ // by other plugins.
+ if ( !editor.fire( 'beforePaste', eventData ) )
+ return false; // Event canceled
+ }
+
+ // The very last guard to make sure the paste has successfully happened.
+ // This check should be done after firing 'beforePaste' because for native paste
+ // 'beforePaste' is by default fired even for empty clipboard.
+ if ( !data )
+ return false;
+
+ // Reuse eventData.type because the default one could be changed by beforePaste listeners.
+ eventData.dataValue = data;
+
+ return editor.fire( 'paste', eventData );
+ }
+
+ // Cutting off control type element in IE standards breaks the selection entirely. (#4881)
+ function fixCut() {
+ if ( !CKEDITOR.env.ie || CKEDITOR.env.quirks )
+ return;
+
+ var sel = editor.getSelection(),
+ control, range, dummy;
+
+ if ( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) ) {
+ range = sel.getRanges()[ 0 ];
+ dummy = editor.document.createText( '' );
+ dummy.insertBefore( control );
+ range.setStartBefore( dummy );
+ range.setEndAfter( control );
+ sel.selectRanges( [ range ] );
+
+ // Clear up the fix if the paste wasn't succeeded.
+ setTimeout( function() {
+ // Element still online?
+ if ( control.getParent() ) {
+ dummy.remove();
+ sel.selectElement( control );
}
+ }, 0 );
+ }
+ }
+
+ // Allow to peek clipboard content by redirecting the
+ // pasting content into a temporary bin and grab the content of it.
+ function getClipboardDataByPastebin( evt, callback ) {
+ var doc = editor.document,
+ editable = editor.editable(),
+ cancel = function( evt ) {
+ evt.cancel();
+ },
+ ff3x = CKEDITOR.env.gecko && CKEDITOR.env.version <= 10902;
+
+ // Avoid recursions on 'paste' event or consequent paste too fast. (#5730)
+ if ( doc.getById( 'cke_pastebin' ) )
+ return;
+
+ var sel = editor.getSelection();
+ var bms = sel.createBookmarks();
+
+ // Create container to paste into.
+ // For rich content we prefer to use "body" since it holds
+ // the least possibility to be splitted by pasted content, while this may
+ // breaks the text selection on a frame-less editable, "div" would be
+ // the best one in that case.
+ // In another case on old IEs moving the selection into a "body" paste bin causes error panic.
+ // Body can't be also used for Opera which fills it with <br>
+ // what is indistinguishable from pasted <br> (copying <br> in Opera isn't possible,
+ // but it can be copied from other browser).
+ var pastebin = new CKEDITOR.dom.element(
+ editable.is( 'body' ) && !( CKEDITOR.env.ie || CKEDITOR.env.opera ) ? 'body' : 'div', doc );
+
+ pastebin.setAttribute( 'id', 'cke_pastebin' );
+
+ // Append bogus to prevent Opera from doing this. (#9522)
+ if ( CKEDITOR.env.opera )
+ pastebin.appendBogus();
+
+ var containerOffset = 0,
+ win = doc.getWindow();
+
+ // Seems to be the only way to avoid page scroll in Fx 3.x.
+ if ( ff3x ) {
+ pastebin.insertAfter( bms[ 0 ].startNode );
+ pastebin.setStyle( 'display', 'inline' );
+ } else {
+ if ( CKEDITOR.env.webkit ) {
+ // It's better to paste close to the real paste destination, so inherited styles
+ // (which Webkits will try to compensate by styling span) differs less from the destination's one.
+ editable.append( pastebin );
+ // Style pastebin like .cke_editable, to minimize differences between origin and destination. (#9754)
+ pastebin.addClass( 'cke_editable' );
+ // Compensate position of offsetParent.
+ containerOffset = ( editable.is( 'body' ) ? editable : CKEDITOR.dom.element.get( pastebin.$.offsetParent ) ).getDocumentPosition().y;
+ } else {
+ // Opera and IE doesn't allow to append to html element.
+ editable.getAscendant( CKEDITOR.env.ie || CKEDITOR.env.opera ? 'body' : 'html', 1 ).append( pastebin );
}
- :
- function( editor )
- {
- try
- {
- if ( !editor.document.getBody().fire( 'beforepaste' )
- && !editor.document.$.execCommand( 'Paste', false, null ) )
- {
- throw 0;
- }
- }
- catch ( e )
- {
- setTimeout( function()
- {
- editor.fire( 'pasteDialog' );
- }, 0 );
- return false;
+
+ pastebin.setStyles({
+ position: 'absolute',
+ // Position the bin at the top (+10 for safety) of viewport to avoid any subsequent document scroll.
+ top: ( win.getScrollPosition().y - containerOffset + 10 ) + 'px',
+ width: '1px',
+ // Caret has to fit in that height, otherwise browsers like Chrome & Opera will scroll window to show it.
+ // Set height equal to viewport's height - 20px (safety gaps), minimum 1px.
+ height: Math.max( 1, win.getViewPaneSize().height - 20 ) + 'px',
+ overflow: 'hidden',
+ // Reset styles that can mess up pastebin position.
+ margin: 0,
+ padding: 0
+ });
+ }
+
+ // Check if the paste bin now establishes new editing host.
+ var isEditingHost = pastebin.getParent().isReadOnly();
+
+ if ( isEditingHost ) {
+ // Hide the paste bin.
+ pastebin.setOpacity( 0 );
+ // And make it editable.
+ pastebin.setAttribute( 'contenteditable', true );
+ }
+ // Transparency is not enough since positioned non-editing host always shows
+ // resize handler, pull it off the screen instead.
+ else
+ pastebin.setStyle( editor.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
+
+ editor.on( 'selectionChange', cancel, null, null, 0 );
+
+ // Temporarily move selection to the pastebin.
+ isEditingHost && pastebin.focus();
+ var range = new CKEDITOR.dom.range( pastebin );
+ range.selectNodeContents( pastebin );
+ var selPastebin = range.select();
+
+ // If non-native paste is executed, IE will open security alert and blur editable.
+ // Editable will then lock selection inside itself and after accepting security alert
+ // this selection will be restored. We overwrite stored selection, so it's restored
+ // in pastebin. (#9552)
+ if ( CKEDITOR.env.ie ) {
+ var blurListener = editable.once( 'blur', function( evt ) {
+ editor.lockSelection( selPastebin );
+ } );
+ }
+
+ var scrollTop = CKEDITOR.document.getWindow().getScrollPosition().y;
+
+ // Wait a while and grab the pasted contents.
+ setTimeout( function() {
+ // Restore main window's scroll position which could have been changed
+ // by browser in cases described in #9771.
+ if ( CKEDITOR.env.webkit || CKEDITOR.env.opera )
+ CKEDITOR.document[ CKEDITOR.env.webkit ? 'getBody' : 'getDocumentElement' ]().$.scrollTop = scrollTop;
+
+ // Blur will be fired only on non-native paste. In other case manually remove listener.
+ blurListener && blurListener.removeListener();
+
+ // Restore properly the document focus. (#8849)
+ if ( CKEDITOR.env.ie )
+ editable.focus();
+
+ // IE7: selection must go before removing pastebin. (#8691)
+ sel.selectBookmarks( bms );
+ pastebin.remove();
+
+ // Grab the HTML contents.
+ // We need to look for a apple style wrapper on webkit it also adds
+ // a div wrapper if you copy/paste the body of the editor.
+ // Remove hidden div and restore selection.
+ var bogusSpan;
+ if ( CKEDITOR.env.webkit && ( bogusSpan = pastebin.getFirst() ) && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) )
+ pastebin = bogusSpan;
+
+ editor.removeListener( 'selectionChange', cancel );
+ callback( pastebin.getHtml() );
+ }, 0 );
+ }
+
+ // Try to get content directly from clipboard, without native event
+ // being fired before. In other words - synthetically get clipboard data
+ // if it's possible.
+ // mainPasteEvent will be fired, so if forced native paste:
+ // * worked, getClipboardDataByPastebin will grab it,
+ // * didn't work, pastebin will be empty and editor#paste won't be fired.
+ function getClipboardDataDirectly() {
+ if ( CKEDITOR.env.ie ) {
+ // Prevent IE from pasting at the begining of the document.
+ editor.focus();
+
+ // Command will be handled by 'beforepaste', but as
+ // execIECommand( 'paste' ) will fire also 'paste' event
+ // we're canceling it.
+ preventPasteEventNow();
+
+ // #9247: Lock focus to prevent IE from hiding toolbar for inline editor.
+ var focusManager = editor.focusManager;
+ focusManager.lock();
+
+ if ( editor.editable().fire( mainPasteEvent ) && !execIECommand( 'paste' ) ) {
+ focusManager.unlock();
+ return false;
+ }
+ focusManager.unlock();
+ } else {
+ try {
+ if ( editor.editable().fire( mainPasteEvent ) && !editor.document.$.execCommand( 'Paste', false, null ) ) {
+ throw 0;
}
+ } catch ( e ) {
+ return false;
}
- };
-
- // Listens for some clipboard related keystrokes, so they get customized.
- var onKey = function( event )
- {
- if ( this.mode != 'wysiwyg' )
- return;
-
- switch ( event.data.keyCode )
- {
- // Paste
- case CKEDITOR.CTRL + 86 : // CTRL+V
- case CKEDITOR.SHIFT + 45 : // SHIFT+INS
-
- var body = this.document.getBody();
-
- // Simulate 'beforepaste' event for all none-IEs.
- if ( !CKEDITOR.env.ie && body.fire( 'beforepaste' ) )
- event.cancel();
- // Simulate 'paste' event for Opera/Firefox2.
- else if ( CKEDITOR.env.opera
- || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
- body.fire( 'paste' );
+ }
+
+ return true;
+ }
+
+ // Listens for some clipboard related keystrokes, so they get customized.
+ // Needs to be bind to keydown event.
+ function onKey( event ) {
+ if ( editor.mode != 'wysiwyg' )
return;
- // Cut
- case CKEDITOR.CTRL + 88 : // CTRL+X
- case CKEDITOR.SHIFT + 46 : // SHIFT+DEL
+ switch ( event.data.keyCode ) {
+ // Paste
+ case CKEDITOR.CTRL + 86: // CTRL+V
+ case CKEDITOR.SHIFT + 45: // SHIFT+INS
+ var editable = editor.editable();
+
+ // Cancel 'paste' event because ctrl+v is for IE handled
+ // by 'beforepaste'.
+ preventPasteEventNow();
- // Save Undo snapshot.
- var editor = this;
- this.fire( 'saveSnapshot' ); // Save before paste
- setTimeout( function()
- {
- editor.fire( 'saveSnapshot' ); // Save after paste
+ // Simulate 'beforepaste' event for all none-IEs.
+ !CKEDITOR.env.ie && editable.fire( 'beforepaste' );
+
+ // Simulate 'paste' event for Opera/Firefox2.
+ if ( CKEDITOR.env.opera || CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
+ editable.fire( 'paste' );
+ return;
+
+ // Cut
+ case CKEDITOR.CTRL + 88: // CTRL+X
+ case CKEDITOR.SHIFT + 46: // SHIFT+DEL
+ // Save Undo snapshot.
+ editor.fire( 'saveSnapshot' ); // Save before cut
+ setTimeout( function() {
+ editor.fire( 'saveSnapshot' ); // Save after cut
}, 0 );
- }
- };
-
- // Allow to peek clipboard content by redirecting the
- // pasting content into a temporary bin and grab the content of it.
- function getClipboardData( evt, mode, callback )
- {
- var doc = this.document;
-
- // Avoid recursions on 'paste' event for IE.
- if ( CKEDITOR.env.ie && doc.getById( 'cke_pastebin' ) )
- return;
-
- // If the browser supports it, get the data directly
- if (mode == 'text' && evt.data && evt.data.$.clipboardData)
- {
- // evt.data.$.clipboardData.types contains all the flavours in Mac's Safari, but not on windows.
- var plain = evt.data.$.clipboardData.getData( 'text/plain' );
- if (plain)
- {
- evt.data.preventDefault();
- callback( plain );
- return;
}
}
- var sel = this.getSelection(),
- range = new CKEDITOR.dom.range( doc );
-
- // Create container to paste into
- var pastebin = new CKEDITOR.dom.element( mode == 'text' ? 'textarea' : CKEDITOR.env.webkit ? 'body' : 'div', doc );
- pastebin.setAttribute( 'id', 'cke_pastebin' );
- // Safari requires a filler node inside the div to have the content pasted into it. (#4882)
- CKEDITOR.env.webkit && pastebin.append( doc.createText( '\xa0' ) );
- doc.getBody().append( pastebin );
-
- pastebin.setStyles(
- {
- position : 'absolute',
- // Position the bin exactly at the position of the selected element
- // to avoid any subsequent document scroll.
- top : sel.getStartElement().getDocumentPosition().y + 'px',
- width : '1px',
- height : '1px',
- overflow : 'hidden'
+ function pasteDataFromClipboard( evt ) {
+ // Default type is 'auto', but can be changed by beforePaste listeners.
+ var eventData = { type: 'auto' };
+ // Fire 'beforePaste' event so clipboard flavor get customized by other plugins.
+ // If 'beforePaste' is canceled continue executing getClipboardDataByPastebin and then do nothing
+ // (do not fire 'paste', 'afterPaste' events). This way we can grab all - synthetically
+ // and natively pasted content and prevent its insertion into editor
+ // after canceling 'beforePaste' event.
+ var beforePasteNotCanceled = editor.fire( 'beforePaste', eventData );
+
+ getClipboardDataByPastebin( evt, function( data ) {
+ // Clean up.
+ data = data.replace( /<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig, '' );
+
+ // Fire remaining events (without beforePaste)
+ beforePasteNotCanceled && firePasteEvents( eventData.type, data, 0, 1 );
});
+ }
- // It's definitely a better user experience if we make the paste-bin pretty unnoticed
- // by pulling it off the screen.
- pastebin.setStyle( this.config.contentsLangDirection == 'ltr' ? 'left' : 'right', '-1000px' );
+ function setToolbarStates() {
+ if ( editor.mode != 'wysiwyg' )
+ return;
- var bms = sel.createBookmarks();
+ var pasteState = stateFromNamedCommand( 'Paste' );
- // Turn off design mode temporarily before give focus to the paste bin.
- if ( mode == 'text' )
- {
- if ( CKEDITOR.env.ie )
- {
- var ieRange = doc.getBody().$.createTextRange();
- ieRange.moveToElementText( pastebin.$ );
- ieRange.execCommand( 'Paste' );
- evt.data.preventDefault();
+ editor.getCommand( 'cut' ).setState( stateFromNamedCommand( 'Cut' ) );
+ editor.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy' ) );
+ editor.getCommand( 'paste' ).setState( pasteState );
+ editor.fire( 'pasteState', pasteState );
+ }
+
+ function stateFromNamedCommand( command ) {
+ var retval;
+
+ if ( inReadOnly && command in { Paste:1,Cut:1 } )
+ return CKEDITOR.TRISTATE_DISABLED;
+
+ if ( command == 'Paste' ) {
+ // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
+ // guard to distinguish from the ordinary sources (either
+ // keyboard paste or execCommand) (#4874).
+ CKEDITOR.env.ie && ( preventBeforePasteEvent = 1 );
+ try {
+ // Always return true for Webkit (which always returns false)
+ retval = editor.document.$.queryCommandEnabled( command ) || CKEDITOR.env.webkit;
+ } catch ( er ) {}
+ preventBeforePasteEvent = 0;
}
- else
- {
- doc.$.designMode = 'off';
- pastebin.$.focus();
+ // Cut, Copy - check if the selection is not empty
+ else {
+ var sel = editor.getSelection(),
+ ranges = sel.getRanges();
+ retval = sel.type != CKEDITOR.SELECTION_NONE && !( ranges.length == 1 && ranges[ 0 ].collapsed );
}
+
+ return retval ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
}
- else
- {
- range.setStartAt( pastebin, CKEDITOR.POSITION_AFTER_START );
- range.setEndAt( pastebin, CKEDITOR.POSITION_BEFORE_END );
- range.select( true );
- }
+ }
- // Wait a while and grab the pasted contents
- window.setTimeout( function()
- {
- mode == 'text' && !CKEDITOR.env.ie && ( doc.$.designMode = 'on' );
- pastebin.remove();
-
- // Grab the HTML contents.
- // We need to look for a apple style wrapper on webkit it also adds
- // a div wrapper if you copy/paste the body of the editor.
- // Remove hidden div and restore selection.
- var bogusSpan;
- pastebin = ( CKEDITOR.env.webkit
- && ( bogusSpan = pastebin.getFirst() )
- && ( bogusSpan.is && bogusSpan.hasClass( 'Apple-style-span' ) ) ?
- bogusSpan : pastebin );
-
- sel.selectBookmarks( bms );
- callback( pastebin[ 'get' + ( mode == 'text' ? 'Value' : 'Html' ) ]() );
- }, 0 );
+ // Returns:
+ // * 'htmlifiedtext' if content looks like transformed by browser from plain text.
+ // See clipboard/paste.html TCs for more info.
+ // * 'html' if it is not 'htmlifiedtext'.
+ function recogniseContentType( data ) {
+ if ( CKEDITOR.env.webkit ) {
+ // Plain text or ( <div><br></div> and text inside <div> ).
+ if ( !data.match( /^[^<]*$/g ) && !data.match( /^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi ) )
+ return 'html';
+ } else if ( CKEDITOR.env.ie ) {
+ // Text and <br> or ( text and <br> in <p> - paragraphs can be separated by new \r\n ).
+ if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) && !data.match( /^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi ) )
+ return 'html';
+ } else if ( CKEDITOR.env.gecko || CKEDITOR.env.opera ) {
+ // Text or <br>.
+ if ( !data.match( /^([^<]|<br( ?\/)?>)*$/gi ) )
+ return 'html';
+ } else
+ return 'html';
+
+ return 'htmlifiedtext';
}
- // Cutting off control type element in IE standards breaks the selection entirely. (#4881)
- function fixCut( editor )
- {
- if ( !CKEDITOR.env.ie || editor.document.$.compatMode == 'BackCompat' )
- return;
-
- var sel = editor.getSelection();
- var control;
- if( ( sel.getType() == CKEDITOR.SELECTION_ELEMENT ) && ( control = sel.getSelectedElement() ) )
- {
- var range = sel.getRanges()[ 0 ];
- var dummy = editor.document.createText( '' );
- dummy.insertBefore( control );
- range.setStartBefore( dummy );
- range.setEndAfter( control );
- sel.selectRanges( [ range ] );
-
- // Clear up the fix if the paste wasn't succeeded.
- setTimeout( function()
- {
- // Element still online?
- if ( control.getParent() )
- {
- dummy.remove();
- sel.selectElement( control );
- }
- }, 0 );
+ // This function transforms what browsers produce when
+ // pasting plain text into editable element (see clipboard/paste.html TCs
+ // for more info) into correct HTML (similar to that produced by text2Html).
+ function htmlifiedTextHtmlification( config, data ) {
+ function repeatParagraphs( repeats ) {
+ // Repeat blocks floor((n+1)/2) times.
+ // Even number of repeats - add <br> at the beginning of last <p>.
+ return CKEDITOR.tools.repeat( '</p><p>', ~~ ( repeats / 2 ) ) + ( repeats % 2 == 1 ? '<br>' : '' );
+ }
+
+ // Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space.
+ data = data.replace( /\s+/g, ' ' )
+ // Remove spaces from between tags.
+ .replace( /> +</g, '><' )
+ // Normalize XHTML syntax and upper cased <br> tags.
+ .replace( /<br ?\/>/gi, '<br>' );
+
+ // IE - lower cased tags.
+ data = data.replace( /<\/?[A-Z]+>/g, function( match ) {
+ return match.toLowerCase();
+ });
+
+ // Don't touch single lines (no <br|p|div>) - nothing to do here.
+ if ( data.match( /^[^<]$/ ) )
+ return data;
+
+ // Webkit.
+ if ( CKEDITOR.env.webkit && data.indexOf( '<div>' ) > -1 ) {
+ // One line break at the beginning - insert <br>
+ data = data.replace( /^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g, '<br>' )
+ // Two or more - reduce number of new lines by one.
+ .replace( /^(<div>(<br>|)<\/div>){2}(?!$)/g, '<div></div>' );
+
+ // Two line breaks create one paragraph in Webkit.
+ if ( data.match( /<div>(<br>|)<\/div>/ ) ) {
+ data = '<p>' + data.replace( /(<div>(<br>|)<\/div>)+/g, function( match ) {
+ return repeatParagraphs( match.split( '</div><div>' ).length + 1 );
+ }) + '</p>';
+ }
+
+ // One line break create br.
+ data = data.replace( /<\/div><div>/g, '<br>' );
+
+ // Remove remaining divs.
+ data = data.replace( /<\/?div>/g, '' );
+ }
+
+ // Opera and Firefox and enterMode != BR.
+ if ( ( CKEDITOR.env.gecko || CKEDITOR.env.opera ) && config.enterMode != CKEDITOR.ENTER_BR ) {
+ // Remove bogus <br> - Fx generates two <brs> for one line break.
+ // For two line breaks it still produces two <brs>, but it's better to ignore this case than the first one.
+ if ( CKEDITOR.env.gecko )
+ data = data.replace( /^<br><br>$/, '<br>' );
+
+ // This line satisfy edge case when for Opera we have two line breaks
+ //data = data.replace( /)
+
+ if ( data.indexOf( '<br><br>' ) > -1 ) {
+ // Two line breaks create one paragraph, three - 2, four - 3, etc.
+ data = '<p>' + data.replace( /(<br>){2,}/g, function( match ) {
+ return repeatParagraphs( match.length / 4 );
+ }) + '</p>';
+ }
}
+
+ return switchEnterMode( config, data );
}
- // Register the plugin.
- CKEDITOR.plugins.add( 'clipboard',
- {
- requires : [ 'dialog', 'htmldataprocessor' ],
- init : function( editor )
- {
- // Inserts processed data into the editor at the end of the
- // events chain.
- editor.on( 'paste', function( evt )
- {
- var data = evt.data;
- if ( data[ 'html' ] )
- editor.insertHtml( data[ 'html' ] );
- else if ( data[ 'text' ] )
- editor.insertText( data[ 'text' ] );
-
- }, null, null, 1000 );
-
- editor.on( 'pasteDialog', function( evt )
- {
- setTimeout( function()
- {
- // Open default paste dialog.
- editor.openDialog( 'paste' );
- }, 0 );
- });
+ // Filter can be editor dependent.
+ function getTextificationFilter( editor ) {
+ var filter = new CKEDITOR.htmlParser.filter();
- function addButtonCommand( buttonName, commandName, command, ctxMenuOrder )
- {
- var lang = editor.lang[ commandName ];
-
- editor.addCommand( commandName, command );
- editor.ui.addButton( buttonName,
- {
- label : lang,
- command : commandName
- });
-
- // If the "menu" plugin is loaded, register the menu item.
- if ( editor.addMenuItems )
- {
- editor.addMenuItem( commandName,
- {
- label : lang,
- command : commandName,
- group : 'clipboard',
- order : ctxMenuOrder
- });
- }
+ // Elements which creates vertical breaks (have vert margins) - took from HTML5 spec.
+ // http://dev.w3.org/html5/markup/Overview.html#toc
+ var replaceWithParaIf = { blockquote:1,dl:1,fieldset:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ol:1,p:1,table:1,ul:1 },
+
+ // All names except of <br>.
+ stripInlineIf = CKEDITOR.tools.extend({ br: 0 }, CKEDITOR.dtd.$inline ),
+
+ // What's finally allowed (cke:br will be removed later).
+ allowedIf = { p:1,br:1,'cke:br':1 },
+
+ knownIf = CKEDITOR.dtd,
+
+ // All names that will be removed (with content).
+ removeIf = CKEDITOR.tools.extend( { area:1,basefont:1,embed:1,iframe:1,map:1,object:1,param:1 }, CKEDITOR.dtd.$nonBodyContent, CKEDITOR.dtd.$cdata );
+
+ var flattenTableCell = function( element ) {
+ delete element.name;
+ element.add( new CKEDITOR.htmlParser.text( ' ' ) );
+ },
+ // Squash adjacent headers into one. <h1>A</h1><h2>B</h2> -> <h1>A<br>B</h1><h2></h2>
+ // Empty ones will be removed later.
+ squashHeader = function( element ) {
+ var next = element,
+ br, el;
+
+ while ( ( next = next.next ) && next.name && next.name.match( /^h\d$/ ) ) {
+ // TODO shitty code - waitin' for htmlParse.element fix.
+ br = new CKEDITOR.htmlParser.element( 'cke:br' );
+ br.isEmpty = true;
+ element.add( br );
+ while ( ( el = next.children.shift() ) )
+ element.add( el );
}
+ };
- addButtonCommand( 'Cut', 'cut', new cutCopyCmd( 'cut' ), 1 );
- addButtonCommand( 'Copy', 'copy', new cutCopyCmd( 'copy' ), 4 );
- addButtonCommand( 'Paste', 'paste', pasteCmd, 8 );
-
- CKEDITOR.dialog.add( 'paste', CKEDITOR.getUrl( this.path + 'dialogs/paste.js' ) );
-
- editor.on( 'key', onKey, editor );
-
- var mode = editor.config.forcePasteAsPlainText ? 'text' : 'html';
-
- // We'll be catching all pasted content in one line, regardless of whether the
- // it's introduced by a document command execution (e.g. toolbar buttons) or
- // user paste behaviors. (e.g. Ctrl-V)
- editor.on( 'contentDom', function()
- {
- var body = editor.document.getBody();
- body.on( ( (mode == 'text' && CKEDITOR.env.ie) || CKEDITOR.env.webkit ) ? 'paste' : 'beforepaste',
- function( evt )
- {
- if ( depressBeforeEvent )
- return;
-
- getClipboardData.call( editor, evt, mode, function ( data )
- {
- // The very last guard to make sure the
- // paste has successfully happened.
- if ( !data )
- return;
-
- var dataTransfer = {};
- dataTransfer[ mode ] = data;
- editor.fire( 'paste', dataTransfer );
- } );
- });
-
- body.on( 'beforecut', function() { !depressBeforeEvent && fixCut( editor ); } );
- });
+ filter.addRules({
+ elements: {
+ h1: squashHeader,
+ h2: squashHeader,
+ h3: squashHeader,
+ h4: squashHeader,
+ h5: squashHeader,
+ h6: squashHeader,
+
+ img: function( element ) {
+ var alt = CKEDITOR.tools.trim( element.attributes.alt || '' ),
+ txt = ' ';
+
+ // Replace image with its alt if it doesn't look like an url or is empty.
+ if ( alt && !alt.match( /(^http|\.(jpe?g|gif|png))/i ) )
+ txt = ' [' + alt + '] ';
+
+ return new CKEDITOR.htmlParser.text( txt );
+ },
- // If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- var depressBeforeEvent;
- function stateFromNamedCommand( command )
- {
- // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',
- // guard to distinguish from the ordinary sources( either
- // keyboard paste or execCommand ) (#4874).
- CKEDITOR.env.ie && ( depressBeforeEvent = 1 );
-
- var retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
- depressBeforeEvent = 0;
- return retval;
+ td: flattenTableCell,
+ th: flattenTableCell,
+
+ $: function( element ) {
+ var initialName = element.name,
+ br;
+
+ // Remove entirely.
+ if ( removeIf[ initialName ] )
+ return false;
+
+ // Remove all attributes.
+ delete element.attributes;
+
+ // Pass brs.
+ if ( initialName == 'br' )
+ return element;
+
+ // Elements that we want to replace with paragraphs.
+ if ( replaceWithParaIf[ initialName ] )
+ element.name = 'p';
+
+ // Elements that we want to strip (tags only, without the content).
+ else if ( stripInlineIf[ initialName ] )
+ delete element.name;
+
+ // Surround other known element with <brs> and strip tags.
+ else if ( knownIf[ initialName ] ) {
+ // TODO shitty code - waitin' for htmlParse.element fix.
+ br = new CKEDITOR.htmlParser.element( 'cke:br' );
+ br.isEmpty = true;
+
+ // Replace hrs (maybe sth else too?) with only one br.
+ if ( CKEDITOR.dtd.$empty[ initialName ] )
+ return br;
+
+ element.add( br, 0 );
+ br = br.clone();
+ br.isEmpty = true;
+ element.add( br );
+ delete element.name;
}
- editor.contextMenu.addListener( function( element, selection )
- {
- var readOnly = selection.getCommonAncestor().isReadOnly();
- return {
- cut : !readOnly && stateFromNamedCommand( 'Cut' ),
- copy : stateFromNamedCommand( 'Copy' ),
- paste : !readOnly && ( CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste' ) )
- };
- });
+ // Final cleanup - if we can still find some not allowed elements then strip their names.
+ if ( !allowedIf[ element.name ] )
+ delete element.name;
+
+ return element;
}
}
});
+
+ return filter;
+ }
+
+ function htmlTextification( config, data, filter ) {
+ var fragment = new CKEDITOR.htmlParser.fragment.fromHtml( data ),
+ writer = new CKEDITOR.htmlParser.basicWriter();
+
+ fragment.writeHtml( writer, filter );
+ data = writer.getHtml();
+
+ // Cleanup cke:brs.
+ data = data.replace( /\s*(<\/?[a-z:]+ ?\/?>)\s*/g, '$1' ) // Remove spaces around tags.
+ .replace( /(<cke:br \/>){2,}/g, '<cke:br />' ) // Join multiple adjacent cke:brs
+ .replace( /(<cke:br \/>)(<\/?p>|<br \/>)/g, '$2' ) // Strip cke:brs adjacent to original brs or ps.
+ .replace( /(<\/?p>|<br \/>)(<cke:br \/>)/g, '$1' )
+ .replace( /<(cke:)?br( \/)?>/g, '<br>' ) // Finally - rename cke:brs to brs and fix <br /> to <br>.
+ .replace( /<p><\/p>/g, '' ); // Remove empty paragraphs.
+
+ // Fix nested ps. E.g.:
+ // <p>A<p>B<p>C</p>D<p>E</p>F</p>G
+ // <p>A</p><p>B</p><p>C</p><p>D</p><p>E</p><p>F</p>G
+ var nested = 0;
+ data = data.replace( /<\/?p>/g, function( match ) {
+ if ( match == '<p>' ) {
+ if ( ++nested > 1 )
+ return '</p><p>';
+ } else {
+ if ( --nested > 0 )
+ return '</p><p>';
+ }
+
+ return match;
+ }).replace( /<p><\/p>/g, '' ); // Step before: </p></p> -> </p><p></p><p>. Fix this here.
+
+ return switchEnterMode( config, data );
+ }
+
+ function switchEnterMode( config, data ) {
+ if ( config.enterMode == CKEDITOR.ENTER_BR ) {
+ data = data.replace( /(<\/p><p>)+/g, function( match ) {
+ return CKEDITOR.tools.repeat( '<br>', match.length / 7 * 2 );
+ }).replace( /<\/?p>/g, '' );
+ } else if ( config.enterMode == CKEDITOR.ENTER_DIV ) {
+ data = data.replace( /<(\/)?p>/g, '<$1div>' );
+ }
+
+ return data;
+ }
})();
/**
+ * The default content type is used when pasted data cannot be clearly recognized as HTML or text.
+ *
+ * For example: `'foo'` may come from a plain text editor or a website. It isn't possible to recognize content
+ * type in this case, so default will be used. However, it's clear that `'<b>example</b> text'` is an HTML
+ * and its origin is webpage, email or other rich text editor.
+ *
+ * **Note:** If content type is text, then styles of context of paste are preserved.
+ *
+ * CKEDITOR.config.clipboard_defaultContentType = 'text';
+ *
+ * @since 4.0
+ * @cfg {'html'/'text'} [clipboard_defaultContentType='html']
+ * @member CKEDITOR.config
+ */
+
+/**
* Fired when a clipboard operation is about to be taken into the editor.
* Listeners can manipulate the data to be pasted before having it effectively
* inserted into the document.
- * @name CKEDITOR.editor#paste
+ *
* @since 3.1
- * @event
- * @param {String} [data.html] The HTML data to be pasted. If not available, e.data.text will be defined.
- * @param {String} [data.text] The plain text data to be pasted, available when plain text operations are to used. If not available, e.data.html will be defined.
+ * @event paste
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {String} data.type Type of data in `data.dataValue`. Usually `html` or `text`, but for listeners
+ * with priority less than 6 it may be also `auto`, what means that content type hasn't been recognised yet
+ * (this will be done by content type sniffer that listens with priority 6).
+ * @param {String} data.dataValue HTML to be pasted.
+ */
+
+/**
+ * Internal event to open the Paste dialog.
+ *
+ * @private
+ * @event pasteDialog
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {Function} [data] Callback that will be passed to {@link CKEDITOR.editor#openDialog}.
*/
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/icons/bgcolor.png b/devel/third-party/ckeditor/plugins/colorbutton/icons/bgcolor.png
new file mode 100644
index 0000000..6ae1ef3
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/colorbutton/icons/bgcolor.png differ
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/icons/textcolor.png b/devel/third-party/ckeditor/plugins/colorbutton/icons/textcolor.png
new file mode 100644
index 0000000..a0c7b8f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/colorbutton/icons/textcolor.png differ
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/af.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/af.js
new file mode 100644
index 0000000..d2410b6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/af.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'af', {
+ auto: 'Outomaties',
+ bgColorTitle: 'Agtergrondkleur',
+ colors: {
+ '000': 'Swart',
+ '800000': 'Meroen',
+ '8B4513': 'Sjokoladebruin',
+ '2F4F4F': 'Donkerleisteengrys',
+ '008080': 'Blougroen',
+ '000080': 'Vlootblou',
+ '4B0082': 'Indigo',
+ '696969': 'Donkergrys',
+ B22222: 'Rooibaksteen',
+ A52A2A: 'Bruin',
+ DAA520: 'Donkergeel',
+ '006400': 'Donkergroen',
+ '40E0D0': 'Turkoois',
+ '0000CD': 'Middelblou',
+ '800080': 'Pers',
+ '808080': 'Grys',
+ F00: 'Rooi',
+ FF8C00: 'Donkeroranje',
+ FFD700: 'Goud',
+ '008000': 'Groen',
+ '0FF': 'Siaan',
+ '00F': 'Blou',
+ EE82EE: 'Viooltjieblou',
+ A9A9A9: 'Donkergrys',
+ FFA07A: 'Ligsalm',
+ FFA500: 'Oranje',
+ FFFF00: 'Geel',
+ '00FF00': 'Lemmetjie',
+ AFEEEE: 'Ligturkoois',
+ ADD8E6: 'Ligblou',
+ DDA0DD: 'Pruim',
+ D3D3D3: 'Liggrys',
+ FFF0F5: 'Linne',
+ FAEBD7: 'Ivoor',
+ FFFFE0: 'Liggeel',
+ F0FFF0: 'Heuningdou',
+ F0FFFF: 'Asuur',
+ F0F8FF: 'Ligte hemelsblou',
+ E6E6FA: 'Laventel',
+ FFF: 'Wit'
+ },
+ more: 'Meer Kleure...',
+ panelTitle: 'Kleure',
+ textColorTitle: 'Tekskleur'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ar.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ar.js
new file mode 100644
index 0000000..c6ec5f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ar.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ar', {
+ auto: 'تÙÙØ§Ø¦Ù',
+ bgColorTitle: 'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',
+ colors: {
+ '000': 'Ø£Ø³ÙØ¯',
+ '800000': 'ÙØ³ØªÙائÙ',
+ '8B4513': 'بÙÙ ÙØ§ØªØ',
+ '2F4F4F': 'رÙ
Ø§Ø¯Ù Ø£Ø±Ø¯ÙØ§Ø²Ù غاÙ
Ù',
+ '008080': 'أزر٠Ù
خضر',
+ '000080': 'أزر٠داÙÙ',
+ '4B0082': 'ÙØÙÙ',
+ '696969': 'رÙ
اد٠داÙÙ',
+ B22222: 'Ø·ÙØ¨Ù',
+ A52A2A: 'بÙÙ',
+ DAA520: 'Ø°ÙØ¨Ù داÙÙ',
+ '006400': 'أخضر داÙÙ',
+ '40E0D0': 'ÙÙØ±ÙزÙ',
+ '0000CD': 'أزر٠Ù
ØªÙØ³Ø·',
+ '800080': 'بÙÙØ³Ø¬Ù غاÙ
Ù',
+ '808080': 'رÙ
ادÙ',
+ F00: 'Ø£ØÙ
ر',
+ FF8C00: 'Ø¨Ø±ØªÙØ§Ù٠داÙÙ',
+ FFD700: 'Ø°ÙØ¨Ù',
+ '008000': 'أخضر',
+ '0FF': 'ترÙÙØ§Ø²',
+ '00F': 'أزرÙ',
+ EE82EE: 'بÙÙØ³Ø¬Ù',
+ A9A9A9: 'رÙ
Ø§Ø¯Ù Ø´Ø§ØØ¨',
+ FFA07A: 'Ø¨Ø±ØªÙØ§ÙÙ ÙØ±Ø¯Ù',
+ FFA500: 'Ø¨Ø±ØªÙØ§ÙÙ',
+ FFFF00: 'Ø£ØµÙØ±',
+ '00FF00': 'ÙÙÙ
ÙÙÙ',
+ AFEEEE: 'ÙÙØ±ÙØ²Ù Ø´Ø§ØØ¨',
+ ADD8E6: 'Ø£Ø²Ø±Ù ÙØ§ØªØ',
+ DDA0DD: 'بÙÙØ³Ø¬Ù ÙØ§ØªØ',
+ D3D3D3: 'رÙ
Ø§Ø¯Ù ÙØ§ØªØ',
+ FFF0F5: 'ÙØ±Ø¯Ù ÙØ§ØªØ',
+ FAEBD7: 'Ø£Ø¨ÙØ¶ عتÙÙ',
+ FFFFE0: 'Ø£ØµÙØ± ÙØ§ØªØ',
+ F0FFF0: 'Ø£Ø¨ÙØ¶ Ù
ائ٠ÙÙØ£Ø®Ø¶Ø±',
+ F0FFFF: 'سÙ
اÙÙ',
+ F0F8FF: 'ÙØ¨ÙÙ',
+ E6E6FA: 'Ø£Ø±Ø¬ÙØ§ÙÙ',
+ FFF: 'Ø£Ø¨ÙØ¶'
+ },
+ more: 'Ø£ÙÙØ§Ù إضاÙÙØ©...',
+ panelTitle: 'Colors',
+ textColorTitle: 'ÙÙ٠اÙÙØµ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/bg.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/bg.js
new file mode 100644
index 0000000..e3c9e39
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/bg.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'bg', {
+ auto: 'ÐвÑомаÑиÑно',
+ bgColorTitle: 'Фонов ÑвÑÑ',
+ colors: {
+ '000': 'ЧеÑно',
+ '800000': 'ÐеÑÑенÑво',
+ '8B4513': 'СвеÑлокаÑÑво',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Ðндиго',
+ '696969': 'ТÑмно Ñиво',
+ B22222: 'Ðгнено ÑеÑвено',
+ A52A2A: 'ÐаÑÑво',
+ DAA520: 'ÐлаÑиÑÑо',
+ '006400': 'ТÑмно зелено',
+ '40E0D0': 'ТÑÑкÑазено',
+ '0000CD': 'СÑедно ÑинÑо',
+ '800080': 'ÐÑÑпÑÑно',
+ '808080': 'Сиво',
+ F00: 'ЧеÑвено',
+ FF8C00: 'ТÑмно оÑанжево',
+ FFD700: 'ÐлаÑно',
+ '008000': 'Ðелено',
+ '0FF': 'СвеÑло ÑинÑо',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'ÐÑе ÑвеÑове',
+ panelTitle: 'ЦвеÑове',
+ textColorTitle: 'ЦвÑÑ Ð½Ð° ÑÑиÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/bn.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/bn.js
new file mode 100644
index 0000000..3b993f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/bn.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'bn', {
+ auto: 'à¦
à¦à§à¦®à§à¦à¦¿à¦',
+ bgColorTitle: 'বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'à¦à¦°à¦ রà¦...',
+ panelTitle: 'Colors',
+ textColorTitle: 'à¦à§à¦à§à¦¸à§à¦ রà¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/bs.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/bs.js
new file mode 100644
index 0000000..fa37d2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/bs.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'bs', {
+ auto: 'Automatska',
+ bgColorTitle: 'Boja pozadine',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Više boja...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Boja teksta'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ca.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ca.js
new file mode 100644
index 0000000..62bc11b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ca.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ca', {
+ auto: 'Automà tic',
+ bgColorTitle: 'Color de Fons',
+ colors: {
+ '000': 'Negre',
+ '800000': 'Granat',
+ '8B4513': 'Marró sella',
+ '2F4F4F': 'Gris pissarra fosca',
+ '008080': 'Blau xarxet',
+ '000080': 'Blau marÃ',
+ '4B0082': 'Indi',
+ '696969': 'Gris intens',
+ B22222: 'Maó',
+ A52A2A: 'Marró (web)',
+ DAA520: 'Solidago',
+ '006400': 'Verd fosc',
+ '40E0D0': 'Turquesa',
+ '0000CD': 'Atzur',
+ '800080': 'Lila',
+ '808080': 'Gris',
+ F00: 'Vermell',
+ FF8C00: 'Taronja fosc',
+ FFD700: 'Or',
+ '008000': 'Verd',
+ '0FF': 'Cian',
+ '00F': 'Blau',
+ EE82EE: 'Lavanda rosat',
+ A9A9A9: 'Gris clar',
+ FFA07A: 'Salmó clar',
+ FFA500: 'Taronja',
+ FFFF00: 'Groc',
+ '00FF00': 'Verd llima',
+ AFEEEE: 'Blau pà lid',
+ ADD8E6: 'Blau clar',
+ DDA0DD: 'Pruna',
+ D3D3D3: 'Gris clar',
+ FFF0F5: 'Lavanda rosat',
+ FAEBD7: 'Blanc antic',
+ FFFFE0: 'Groc clar',
+ F0FFF0: 'Verd pà lid',
+ F0FFFF: 'Blau cel pà lid',
+ F0F8FF: 'Cian pà lid',
+ E6E6FA: 'Lavanda',
+ FFF: 'Blanc'
+ },
+ more: 'Més colors...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Color de Text'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/cs.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/cs.js
new file mode 100644
index 0000000..d239dc5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/cs.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'cs', {
+ auto: 'Automaticky',
+ bgColorTitle: 'Barva pozadÃ',
+ colors: {
+ '000': 'Äerná',
+ '800000': 'Kaštanová',
+ '8B4513': 'Sedlová hnÄÄ',
+ '2F4F4F': 'TmavÄ bledÄ Å¡edá',
+ '008080': 'ÄÃrka',
+ '000080': 'NámoÅnická modÅ',
+ '4B0082': 'Inkoustová',
+ '696969': 'TmavÄ Å¡edá',
+ B22222: 'Pálená cihla',
+ A52A2A: 'HnÄdá',
+ DAA520: 'Zlatý prut',
+ '006400': 'TmavÄ zelená',
+ '40E0D0': 'Tyrkisová',
+ '0000CD': 'StÅednÄ modrá',
+ '800080': 'Purpurová',
+ '808080': 'Šedá',
+ F00: 'Äervená',
+ FF8C00: 'TmavÄ oranžová',
+ FFD700: 'Zlatá',
+ '008000': 'Zelená',
+ '0FF': 'Azurová',
+ '00F': 'Modrá',
+ EE82EE: 'Fialová',
+ A9A9A9: 'KalnÄ Å¡edá',
+ FFA07A: 'SvÄtle lososová',
+ FFA500: 'Oranžová',
+ FFFF00: 'Žlutá',
+ '00FF00': 'Limetková',
+ AFEEEE: 'BledÄ tyrkisová',
+ ADD8E6: 'SvÄtle modrá',
+ DDA0DD: 'Švestková',
+ D3D3D3: 'SvÄtle Å¡edá',
+ FFF0F5: 'LevandulovÄ rumÄnná',
+ FAEBD7: 'Antická bÃlá',
+ FFFFE0: 'SvÄtle žlutá',
+ F0FFF0: 'Medová rosa',
+ F0FFFF: 'Azurová',
+ F0F8FF: 'AlenÄina modrá',
+ E6E6FA: 'Levandulová',
+ FFF: 'BÃlá'
+ },
+ more: 'VÃce barev...',
+ panelTitle: 'Barvy',
+ textColorTitle: 'Barva textu'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/cy.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/cy.js
new file mode 100644
index 0000000..8250f0b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/cy.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'cy', {
+ auto: 'Awtomatig',
+ bgColorTitle: 'Lliw Cefndir',
+ colors: {
+ '000': 'Du',
+ '800000': 'Marwn',
+ '8B4513': 'Brown Cyfrwy',
+ '2F4F4F': 'Llechen Tywyll',
+ '008080': 'Corhwyad',
+ '000080': 'Nefi',
+ '4B0082': 'Indigo',
+ '696969': 'Llwyd Pwl',
+ B22222: 'Bric Tân',
+ A52A2A: 'Brown',
+ DAA520: 'Rhoden Aur',
+ '006400': 'Gwyrdd Tywyll',
+ '40E0D0': 'Gwyrddlas',
+ '0000CD': 'Glas Canolig',
+ '800080': 'Porffor',
+ '808080': 'Llwyd',
+ F00: 'Coch',
+ FF8C00: 'Oren Tywyll',
+ FFD700: 'Aur',
+ '008000': 'Gwyrdd',
+ '0FF': 'Cyan',
+ '00F': 'Glas',
+ EE82EE: 'Fioled',
+ A9A9A9: 'Llwyd Tywyll',
+ FFA07A: 'Samwn Golau',
+ FFA500: 'Oren',
+ FFFF00: 'Melyn',
+ '00FF00': 'Leim',
+ AFEEEE: 'Gwyrddlas Golau',
+ ADD8E6: 'Glas Golau',
+ DDA0DD: 'Eirinen',
+ D3D3D3: 'Llwyd Golau',
+ FFF0F5: 'Gwrid Lafant',
+ FAEBD7: 'Gwyn Hynafol',
+ FFFFE0: 'Melyn Golau',
+ F0FFF0: 'Melwn Gwyrdd Golau',
+ F0FFFF: 'Aswr',
+ F0F8FF: 'Glas Alys',
+ E6E6FA: 'Lafant',
+ FFF: 'Gwyn'
+ },
+ more: 'Mwy o Liwiau...',
+ panelTitle: 'Lliwiau',
+ textColorTitle: 'Lliw Testun'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/da.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/da.js
new file mode 100644
index 0000000..f38acb6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/da.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'da', {
+ auto: 'Automatisk',
+ bgColorTitle: 'Baggrundsfarve',
+ colors: {
+ '000': 'Sort',
+ '800000': 'Mørkerød',
+ '8B4513': 'Mørk orange',
+ '2F4F4F': 'Dark Slate Grå',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Mørkegrå',
+ B22222: 'Scarlet / Rød',
+ A52A2A: 'Brun',
+ DAA520: 'Guld',
+ '006400': 'Mørkegrøn',
+ '40E0D0': 'Tyrkis',
+ '0000CD': 'Mellemblå',
+ '800080': 'Lilla',
+ '808080': 'Grå',
+ F00: 'Rød',
+ FF8C00: 'Mørk orange',
+ FFD700: 'Guld',
+ '008000': 'Grøn',
+ '0FF': 'Cyan',
+ '00F': 'Blå',
+ EE82EE: 'Violet',
+ A9A9A9: 'Matgrå',
+ FFA07A: 'Laksefarve',
+ FFA500: 'Orange',
+ FFFF00: 'Gul',
+ '00FF00': 'Lime',
+ AFEEEE: 'Mat tyrkis',
+ ADD8E6: 'Lyseblå',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Lysegrå',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antikhvid',
+ FFFFE0: 'Lysegul',
+ F0FFF0: 'Gul / Beige',
+ F0FFFF: 'Himmeblå',
+ F0F8FF: 'Alice blue',
+ E6E6FA: 'Lavendel',
+ FFF: 'Hvid'
+ },
+ more: 'Flere farver...',
+ panelTitle: 'Farver',
+ textColorTitle: 'Tekstfarve'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/de.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/de.js
new file mode 100644
index 0000000..4d6c773
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/de.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'de', {
+ auto: 'Automatisch',
+ bgColorTitle: 'Hintergrundfarbe',
+ colors: {
+ '000': 'Schwarz',
+ '800000': 'Kastanienbraun',
+ '8B4513': 'Braun',
+ '2F4F4F': 'Dunkles Schiefergrau',
+ '008080': 'Blaugrün',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dunkelgrau',
+ B22222: 'Ziegelrot',
+ A52A2A: 'Braun',
+ DAA520: 'Goldgelb',
+ '006400': 'Dunkelgrün',
+ '40E0D0': 'Türkis',
+ '0000CD': 'Medium Blau',
+ '800080': 'Lila',
+ '808080': 'Grau',
+ F00: 'Rot',
+ FF8C00: 'Dunkelorange',
+ FFD700: 'Gold',
+ '008000': 'Grün',
+ '0FF': 'Cyan',
+ '00F': 'Blau',
+ EE82EE: 'Hellviolett',
+ A9A9A9: 'Dunkelgrau',
+ FFA07A: 'Helles Lachsrosa',
+ FFA500: 'Orange',
+ FFFF00: 'Gelb',
+ '00FF00': 'Lime',
+ AFEEEE: 'BlaÃ-Türkis',
+ ADD8E6: 'Hellblau',
+ DDA0DD: 'Pflaumenblau',
+ D3D3D3: 'Hellgrau',
+ FFF0F5: 'Lavendel',
+ FAEBD7: 'Antik WeiÃ',
+ FFFFE0: 'Hellgelb',
+ F0FFF0: 'Honigtau',
+ F0FFFF: 'Azurblau',
+ F0F8FF: 'Alice Blau',
+ E6E6FA: 'Lavendel',
+ FFF: 'WeiÃ'
+ },
+ more: 'Weitere Farben...',
+ panelTitle: 'Farben',
+ textColorTitle: 'Textfarbe'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/el.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/el.js
new file mode 100644
index 0000000..c9ed1a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/el.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'el', {
+ auto: 'ÎÏ
ÏÏμαÏα',
+ bgColorTitle: 'ΧÏÏμα ΦÏνÏοÏ
',
+ colors: {
+ '000': 'ÎαÏÏο',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'ÎÏβ',
+ '808080': 'ÎκÏί',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'ΠεÏιÏÏÏÏεÏα ÏÏÏμαÏα...',
+ panelTitle: 'ΧÏÏμαÏα',
+ textColorTitle: 'ΧÏÏμα ÎειμÎνοÏ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/en-au.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/en-au.js
new file mode 100644
index 0000000..625157c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/en-au.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'en-au', {
+ auto: 'Automatic',
+ bgColorTitle: 'Background Colour',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'More Colours...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Text Colour'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/en-ca.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/en-ca.js
new file mode 100644
index 0000000..a15545a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/en-ca.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'en-ca', {
+ auto: 'Automatic',
+ bgColorTitle: 'Background Colour',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'More Colours...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Text Colour'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/en-gb.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/en-gb.js
new file mode 100644
index 0000000..40d1370
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/en-gb.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'en-gb', {
+ auto: 'Automatic',
+ bgColorTitle: 'Background Colour',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Grey',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Grey',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Grey',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Grey',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'More Colours...',
+ panelTitle: 'Colours',
+ textColorTitle: 'Text Colour'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/en.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/en.js
new file mode 100644
index 0000000..64d0360
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/en.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'en', {
+ auto: 'Automatic',
+ bgColorTitle: 'Background Color',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'More Colors...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Text Color'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/eo.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/eo.js
new file mode 100644
index 0000000..9935c1f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/eo.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'eo', {
+ auto: 'AÅtomata',
+ bgColorTitle: 'Fona Koloro',
+ colors: {
+ '000': 'Nigra',
+ '800000': 'KaÅtankolora',
+ '8B4513': 'Mezbruna',
+ '2F4F4F': 'Ardezgriza',
+ '008080': 'MarÄanaskolora',
+ '000080': 'Maristblua',
+ '4B0082': 'Indigokolora',
+ '696969': 'Malhelgriza',
+ B22222: 'BrikruÄa',
+ A52A2A: 'Bruna',
+ DAA520: 'Senbrilorkolora',
+ '006400': 'Malhelverda',
+ '40E0D0': 'Turkisblua',
+ '0000CD': 'ReÄblua',
+ '800080': 'Purpura',
+ '808080': 'Griza',
+ F00: 'RuÄa',
+ FF8C00: 'MalheloranÄkolora',
+ FFD700: 'Orkolora',
+ '008000': 'Verda',
+ '0FF': 'Verdblua',
+ '00F': 'Blua',
+ EE82EE: 'Viola',
+ A9A9A9: 'Mezgriza',
+ FFA07A: 'Salmokolora',
+ FFA500: 'OranÄkolora',
+ FFFF00: 'Flava',
+ '00FF00': 'Limetkolora',
+ AFEEEE: 'Helturkiskolora',
+ ADD8E6: 'Helblua',
+ DDA0DD: 'Prunkolora',
+ D3D3D3: 'Helgriza',
+ FFF0F5: 'Lavendkolora vangoÅminko',
+ FAEBD7: 'Antikvablanka',
+ FFFFE0: 'Helflava',
+ F0FFF0: 'Vintromelonkolora',
+ F0FFFF: 'Lazura',
+ F0F8FF: 'Aliceblua',
+ E6E6FA: 'Lavendkolora',
+ FFF: 'Blanka'
+ },
+ more: 'Pli da Koloroj...',
+ panelTitle: 'Koloroj',
+ textColorTitle: 'Teksta Koloro'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/es.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/es.js
new file mode 100644
index 0000000..26d679e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/es.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'es', {
+ auto: 'Automático',
+ bgColorTitle: 'Color de Fondo',
+ colors: {
+ '000': 'Negro',
+ '800000': 'Marrón oscuro',
+ '8B4513': 'Marrón tierra',
+ '2F4F4F': 'Pizarra Oscuro',
+ '008080': 'Azul verdoso',
+ '000080': 'Azul marino',
+ '4B0082': 'Añil',
+ '696969': 'Gris oscuro',
+ B22222: 'Ladrillo',
+ A52A2A: 'Marrón',
+ DAA520: 'Oro oscuro',
+ '006400': 'Verde oscuro',
+ '40E0D0': 'Turquesa',
+ '0000CD': 'Azul medio-oscuro',
+ '800080': 'Púrpura',
+ '808080': 'Gris',
+ F00: 'Rojo',
+ FF8C00: 'Naranja oscuro',
+ FFD700: 'Oro',
+ '008000': 'Verde',
+ '0FF': 'Cian',
+ '00F': 'Azul',
+ EE82EE: 'Violeta',
+ A9A9A9: 'Gris medio',
+ FFA07A: 'Salmón claro',
+ FFA500: 'Naranja',
+ FFFF00: 'Amarillo',
+ '00FF00': 'Lima',
+ AFEEEE: 'Turquesa claro',
+ ADD8E6: 'Azul claro',
+ DDA0DD: 'Violeta claro',
+ D3D3D3: 'Gris claro',
+ FFF0F5: 'Lavanda rojizo',
+ FAEBD7: 'Blanco antiguo',
+ FFFFE0: 'Amarillo claro',
+ F0FFF0: 'Miel',
+ F0FFFF: 'Azul celeste',
+ F0F8FF: 'Azul pálido',
+ E6E6FA: 'Lavanda',
+ FFF: 'Blanco'
+ },
+ more: 'Más Colores...',
+ panelTitle: 'Colores',
+ textColorTitle: 'Color de Texto'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/et.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/et.js
new file mode 100644
index 0000000..b7f22ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/et.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'et', {
+ auto: 'Automaatne',
+ bgColorTitle: 'Tausta värv',
+ colors: {
+ '000': 'Must',
+ '800000': 'Kastanpruun',
+ '8B4513': 'Sadulapruun',
+ '2F4F4F': 'Tume paehall',
+ '008080': 'Sinakasroheline',
+ '000080': 'Meresinine',
+ '4B0082': 'Indigosinine',
+ '696969': 'Tumehall',
+ B22222: 'Å amottkivi',
+ A52A2A: 'Pruun',
+ DAA520: 'Kuldkollane',
+ '006400': 'Tumeroheline',
+ '40E0D0': 'Türkiissinine',
+ '0000CD': 'Keskmine sinine',
+ '800080': 'Lilla',
+ '808080': 'Hall',
+ F00: 'Punanae',
+ FF8C00: 'Tumeoranž',
+ FFD700: 'Kuldne',
+ '008000': 'Roheline',
+ '0FF': 'Tsüaniidsinine',
+ '00F': 'Sinine',
+ EE82EE: 'Violetne',
+ A9A9A9: 'Tuhm hall',
+ FFA07A: 'Hele lõhe',
+ FFA500: 'Oranž',
+ FFFF00: 'Kollane',
+ '00FF00': 'Lubja hall',
+ AFEEEE: 'Kahvatu türkiis',
+ ADD8E6: 'Helesinine',
+ DDA0DD: 'Ploomililla',
+ D3D3D3: 'Helehall',
+ FFF0F5: 'Lavendlipunane',
+ FAEBD7: 'Antiikvalge',
+ FFFFE0: 'Helekollane',
+ F0FFF0: 'Meloniroheline',
+ F0FFFF: 'Taevasinine',
+ F0F8FF: 'Beebisinine',
+ E6E6FA: 'Lavendel',
+ FFF: 'Valge'
+ },
+ more: 'Rohkem värve...',
+ panelTitle: 'Värvid',
+ textColorTitle: 'Teksti värv'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/eu.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/eu.js
new file mode 100644
index 0000000..9d6ebcc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/eu.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'eu', {
+ auto: 'Automatikoa',
+ bgColorTitle: 'Atzeko kolorea',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Kolore gehiago...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Testu Kolorea'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/fa.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/fa.js
new file mode 100644
index 0000000..b6810b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/fa.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'fa', {
+ auto: 'Ø®ÙØ¯Ú©Ø§Ø±',
+ bgColorTitle: 'رÙÚ¯ پسزÙ
ÛÙÙ',
+ colors: {
+ '000': 'Ø³ÛØ§Ù',
+ '800000': 'خرÙ
اÛÛ',
+ '8B4513': 'ÙÙÙÙØ§Û Ø´Ú©ÙØ§ØªÛ',
+ '2F4F4F': 'Ø§Ø±ØºÙØ§ÙÛ Ù
اÛ٠ب٠خاکسترÛ',
+ '008080': 'Ø¢Ø¨Û Ù
اÛ٠ب٠خاکسترÛ',
+ '000080': 'Ø¢Ø¨Û Ø³ÛØ±',
+ '4B0082': 'ÙÛÙÛ',
+ '696969': 'Ø®Ø§Ú©Ø³ØªØ±Û ØªÛØ±Ù',
+ B22222: 'آتش آجرÛ',
+ A52A2A: 'ÙÙÙÙØ§Û',
+ DAA520: 'Ù
ÛÙÙÛ Ø·ÙØ§ÛÛ',
+ '006400': 'سبز ØªÛØ±Ù',
+ '40E0D0': 'ÙÛØ±ÙØ²ÙØ§Û',
+ '0000CD': 'Ø¢Ø¨Û Ø±ÙØ´Ù',
+ '800080': 'Ø§Ø±ØºÙØ§ÙÛ',
+ '808080': 'خاکسترÛ',
+ F00: 'ÙØ±Ù
ز',
+ FF8C00: 'ÙØ§Ø±ÙØ¬Û Ù¾Ø±Ø±ÙÚ¯',
+ FFD700: 'Ø·ÙØ§ÛÛ',
+ '008000': 'سبز',
+ '0FF': 'Ø¢Ø¨Û Ù
اÛ٠ب٠سبز',
+ '00F': 'آبÛ',
+ EE82EE: 'بÙÙØ´',
+ A9A9A9: 'Ø®Ø§Ú©Ø³ØªØ±Û Ù
ات',
+ FFA07A: 'ØµÙØ±ØªÛ کدر Ø±ÙØ´Ù',
+ FFA500: 'ÙØ§Ø±ÙجÛ',
+ FFFF00: 'زرد',
+ '00FF00': 'ÙØ³ÙرÛ',
+ AFEEEE: 'ÙÛØ±ÙØ²ÙØ§Û رÙÚ¯ Ù¾Ø±ÛØ¯Ù',
+ ADD8E6: 'Ø¢Ø¨Û Ú©Ù
رÙÚ¯',
+ DDA0DD: 'Ø¢ÙÙÛÛ',
+ D3D3D3: 'Ø®Ø§Ú©Ø³ØªØ±Û Ø±ÙØ´Ù',
+ FFF0F5: 'بÙÙØ´ Ú©Ù
رÙÚ¯',
+ FAEBD7: 'عتÛÙ٠سÙÛØ¯',
+ FFFFE0: 'زرد Ø±ÙØ´Ù',
+ F0FFF0: 'عسÙÛ',
+ F0FFFF: 'ÙØ§Ø¬ÙردÛ',
+ F0F8FF: 'Ø¢Ø¨Û Ø¨Ø±Ø§Ù',
+ E6E6FA: 'بÙÙØ´ Ú©Ù
رÙÚ¯',
+ FFF: 'سÙÛØ¯'
+ },
+ more: 'رÙÚ¯ÙØ§Û Ø¨ÛØ´ØªØ±...',
+ panelTitle: 'رÙÚ¯ÙØ§',
+ textColorTitle: 'رÙÚ¯ Ù
تÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/fi.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/fi.js
new file mode 100644
index 0000000..04a9f89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/fi.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'fi', {
+ auto: 'Automaattinen',
+ bgColorTitle: 'Taustaväri',
+ colors: {
+ '000': 'Musta',
+ '800000': 'Kastanjanruskea',
+ '8B4513': 'Satulanruskea',
+ '2F4F4F': 'Tumma liuskekivenharmaa',
+ '008080': 'Sinivihreä',
+ '000080': 'Laivastonsininen',
+ '4B0082': 'Indigonsininen',
+ '696969': 'Tummanharmaa',
+ B22222: 'Tiili',
+ A52A2A: 'Ruskea',
+ DAA520: 'Kultapiisku',
+ '006400': 'Tummanvihreä',
+ '40E0D0': 'Turkoosi',
+ '0000CD': 'Keskisininen',
+ '800080': 'Purppura',
+ '808080': 'Harmaa',
+ F00: 'Punainen',
+ FF8C00: 'Tumma oranssi',
+ FFD700: 'Kulta',
+ '008000': 'Vihreä',
+ '0FF': 'Syaani',
+ '00F': 'Sininen',
+ EE82EE: 'Violetti',
+ A9A9A9: 'Tummanharmaa',
+ FFA07A: 'Vaaleanlohenpunainen',
+ FFA500: 'Oranssi',
+ FFFF00: 'Keltainen',
+ '00FF00': 'Limetin vihreä',
+ AFEEEE: 'Haalea turkoosi',
+ ADD8E6: 'Vaaleansininen',
+ DDA0DD: 'Luumu',
+ D3D3D3: 'Vaaleanharmaa',
+ FFF0F5: 'Laventelinpunainen',
+ FAEBD7: 'Antiikinvalkoinen',
+ FFFFE0: 'Vaaleankeltainen',
+ F0FFF0: 'Hunajameloni',
+ F0FFFF: 'Asurinsininen',
+ F0F8FF: 'Alice Blue -sininen',
+ E6E6FA: 'Lavanteli',
+ FFF: 'Valkoinen'
+ },
+ more: 'Lisää värejä...',
+ panelTitle: 'Värit',
+ textColorTitle: 'Tekstiväri'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/fo.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/fo.js
new file mode 100644
index 0000000..bff99df
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/fo.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'fo', {
+ auto: 'Automatiskt',
+ bgColorTitle: 'Bakgrundslitur',
+ colors: {
+ '000': 'Svart',
+ '800000': 'Maroon',
+ '8B4513': 'Saðilsbrúnt',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Myrkagrátt',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brúnt',
+ DAA520: 'Gullstavur',
+ '006400': 'Myrkagrønt',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Meðal blátt',
+ '800080': 'Purple',
+ '808080': 'Grátt',
+ F00: 'Reytt',
+ FF8C00: 'Myrkt appelsingult',
+ FFD700: 'Gull',
+ '008000': 'Grønt',
+ '0FF': 'Cyan',
+ '00F': 'Blátt',
+ EE82EE: 'Violet',
+ A9A9A9: 'Døkt grátt',
+ FFA07A: 'Ljósur laksur',
+ FFA500: 'Appelsingult',
+ FFFF00: 'Gult',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Ljósablátt',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Ljósagrátt',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Klassiskt hvÃtt',
+ FFFFE0: 'Ljósagult',
+ F0FFF0: 'Hunangsdøggur',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blátt',
+ E6E6FA: 'Lavender',
+ FFF: 'HvÃtt'
+ },
+ more: 'Fleiri litir...',
+ panelTitle: 'Litir',
+ textColorTitle: 'Tekstlitur'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/fr-ca.js
new file mode 100644
index 0000000..cfa548d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/fr-ca.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'fr-ca', {
+ auto: 'Automatique',
+ bgColorTitle: 'Couleur de fond',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Plus de couleurs...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Couleur de caractère'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/fr.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/fr.js
new file mode 100644
index 0000000..1809b2e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/fr.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'fr', {
+ auto: 'Automatique',
+ bgColorTitle: 'Couleur d\'arrière plan',
+ colors: {
+ '000': 'Noir',
+ '800000': 'Marron',
+ '8B4513': 'Brun moyen',
+ '2F4F4F': 'Vert sombre',
+ '008080': 'Canard',
+ '000080': 'Bleu marine',
+ '4B0082': 'Indigo',
+ '696969': 'Gris foncé',
+ B22222: 'Rouge brique',
+ A52A2A: 'Brun',
+ DAA520: 'Or terni',
+ '006400': 'Vert foncé',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Bleu royal',
+ '800080': 'Pourpre',
+ '808080': 'Gris',
+ F00: 'Rouge',
+ FF8C00: 'Orange foncé',
+ FFD700: 'Or',
+ '008000': 'Vert',
+ '0FF': 'Cyan',
+ '00F': 'Bleu',
+ EE82EE: 'Violet',
+ A9A9A9: 'Gris moyen',
+ FFA07A: 'Saumon',
+ FFA500: 'Orange',
+ FFFF00: 'Jaune',
+ '00FF00': 'Lime',
+ AFEEEE: 'Turquoise clair',
+ ADD8E6: 'Bleu clair',
+ DDA0DD: 'Prune',
+ D3D3D3: 'Gris clair',
+ FFF0F5: 'Fard Lavande',
+ FAEBD7: 'Blanc antique',
+ FFFFE0: 'Jaune clair',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azur',
+ F0F8FF: 'Bleu Alice',
+ E6E6FA: 'Lavande',
+ FFF: 'Blanc'
+ },
+ more: 'Plus de couleurs...',
+ panelTitle: 'Couleurs',
+ textColorTitle: 'Couleur de texte'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/gl.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/gl.js
new file mode 100644
index 0000000..be94609
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/gl.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'gl', {
+ auto: 'Automático',
+ bgColorTitle: 'Cor do Fondo',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Máis Cores...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Cor do Texto'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/gu.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/gu.js
new file mode 100644
index 0000000..977e9d6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/gu.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'gu', {
+ auto: 'સà«àªµàªàª¾àª²àª¿àª¤',
+ bgColorTitle: 'બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,',
+ colors: {
+ '000': 'àªàª¾àª³à«',
+ '800000': 'મરà«àª¨',
+ '8B4513': 'àªà«àª',
+ '2F4F4F': 'ડારà«àª સà«àª²à«àª àªà«àª°à« ',
+ '008080': 'àªà«àª²',
+ '000080': 'નà«àªµà«',
+ '4B0082': 'àªàª¾àª®àª²à«',
+ '696969': 'ડારà«àª àªà«àª°à«',
+ B22222: 'àªàª',
+ A52A2A: 'બà«àª°àª¾àªàª¨',
+ DAA520: 'àªà«àª²à«àª¡àª¨ રà«àª¡',
+ '006400': 'ડારà«àª લà«àª²à«',
+ '40E0D0': 'àªà«àª°àªà«àªàª¸',
+ '0000CD': 'મધà«àª¯àª® વાદળà«',
+ '800080': 'પરà«àªªàª²',
+ '808080': 'àªà«àª°à«',
+ F00: 'લાલ',
+ FF8C00: 'ડારà«àª àªàª°àªàª',
+ FFD700: 'àªà«àª²à«àª¡',
+ '008000': 'àªà«àª°à«àª¨',
+ '0FF': 'સાયન',
+ '00F': 'વાદળà«',
+ EE82EE: 'વાયà«àª²à«àª',
+ A9A9A9: 'ડà«àª® ',
+ FFA07A: 'લાàªàª સાલમન',
+ FFA500: 'àªàª°àªàª',
+ FFFF00: 'પà«àª³à«',
+ '00FF00': 'લાàªàª®',
+ AFEEEE: 'પà«àª² àªà«àªàª¸',
+ ADD8E6: 'લાàªàª બà«àª²à«',
+ DDA0DD: 'પલà«àª®',
+ D3D3D3: 'લાàªàª àªà«àª°à«',
+ FFF0F5: 'લવàªàª¡àª° ',
+ FAEBD7: 'àªàª¨à«àªà«àª સફà«àª¦',
+ FFFFE0: 'લાàªàª પà«àª³à«',
+ F0FFF0: 'હનà«àª¡àªàª¯',
+ F0FFFF: 'àª
àªà«àª°à«',
+ F0F8FF: 'àªàª²à«àª¸ બà«àª²à«',
+ E6E6FA: 'લવàªàª¡àª°',
+ FFF: 'સફà«àª¦'
+ },
+ more: 'àªàª° રàªàª...',
+ panelTitle: 'રàªàª',
+ textColorTitle: 'શબà«àª¦àª¨à« રàªàª'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/he.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/he.js
new file mode 100644
index 0000000..6912352
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/he.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'he', {
+ auto: '×××××××',
+ bgColorTitle: 'צ××¢ רקע',
+ colors: {
+ '000': 'ש××ר',
+ '800000': 'ס××× ×××',
+ '8B4513': '××× ×××ר',
+ '2F4F4F': '×פ×ר צפ××',
+ '008080': '××××-×ר××§',
+ '000080': '××××-ס×××',
+ '4B0082': '××× ××××',
+ '696969': '×פ×ר ××¢×××¢×',
+ B22222: '××××-×××',
+ A52A2A: '×××',
+ DAA520: '×ת×× ×××',
+ '006400': '×ר××§ ×××',
+ '40E0D0': '××רק××',
+ '0000CD': '×××× ××× ×× ×',
+ '800080': 'ס×××',
+ '808080': '×פ×ר',
+ F00: '××××',
+ FF8C00: '×ת×× ×××',
+ FFD700: '×××',
+ '008000': '×ר××§',
+ '0FF': 'צ×××',
+ '00F': '××××',
+ EE82EE: 'ס××××',
+ A9A9A9: '×פ×ר ×××',
+ FFA07A: '×ת××-××ר××',
+ FFA500: '×ת××',
+ FFFF00: 'צ×××',
+ '00FF00': '××××',
+ AFEEEE: '××רק×× ×××ר',
+ ADD8E6: '×××× ×××ר',
+ DDA0DD: 'ש×××£',
+ D3D3D3: '×פ×ר ×××ר',
+ FFF0F5: '××× ×ר ×ס×××§',
+ FAEBD7: '××× ×¢×ª××§',
+ FFFFE0: 'צ××× ×××ר',
+ F0FFF0: '×× ××ש',
+ F0FFFF: 'ת××ת',
+ F0F8FF: '×××× ××פת ×××',
+ E6E6FA: '××× ×ר',
+ FFF: '×××'
+ },
+ more: 'צ××¢×× × ×ספ××...',
+ panelTitle: 'צ××¢××',
+ textColorTitle: 'צ××¢ ×קס×'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/hi.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/hi.js
new file mode 100644
index 0000000..a503e60
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/hi.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'hi', {
+ auto: 'सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤',
+ bgColorTitle: 'बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'à¤à¤° रà¤à¤...',
+ panelTitle: 'Colors',
+ textColorTitle: 'à¤à¥à¤à¥à¤¸à¥à¤ रà¤à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/hr.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/hr.js
new file mode 100644
index 0000000..b043961
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/hr.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'hr', {
+ auto: 'Automatski',
+ bgColorTitle: 'Boja pozadine',
+ colors: {
+ '000': 'Crna',
+ '800000': 'Kesten',
+ '8B4513': 'SmeÄa',
+ '2F4F4F': 'Tamno siva',
+ '008080': 'Teal',
+ '000080': 'Mornarska',
+ '4B0082': 'Indigo',
+ '696969': 'Tamno siva',
+ B22222: 'Vatrena cigla',
+ A52A2A: 'SmeÄa',
+ DAA520: 'Zlatna',
+ '006400': 'Tamno zelena',
+ '40E0D0': 'Tirkizna',
+ '0000CD': 'Srednje plava',
+ '800080': 'LjubiÄasta',
+ '808080': 'Siva',
+ F00: 'Crvena',
+ FF8C00: 'Tamno naranÄasta',
+ FFD700: 'Zlatna',
+ '008000': 'Zelena',
+ '0FF': 'Cijan',
+ '00F': 'Plava',
+ EE82EE: 'LjubiÄasta',
+ A9A9A9: 'Mutno siva',
+ FFA07A: 'Svijetli losos',
+ FFA500: 'NaranÄasto',
+ FFFF00: 'Žuto',
+ '00FF00': 'Limun',
+ AFEEEE: 'Blijedo tirkizna',
+ ADD8E6: 'Svijetlo plava',
+ DDA0DD: 'Å ljiva',
+ D3D3D3: 'Svijetlo siva',
+ FFF0F5: 'Lavanda rumeno',
+ FAEBD7: 'Antikno bijela',
+ FFFFE0: 'Svijetlo žuta',
+ F0FFF0: 'Med',
+ F0FFFF: 'Azurna',
+ F0F8FF: 'Alice plava',
+ E6E6FA: 'Lavanda',
+ FFF: 'Bijela'
+ },
+ more: 'Više boja...',
+ panelTitle: 'Boje',
+ textColorTitle: 'Boja teksta'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/hu.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/hu.js
new file mode 100644
index 0000000..06c52a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/hu.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'hu', {
+ auto: 'Automatikus',
+ bgColorTitle: 'HáttérszÃn',
+ colors: {
+ '000': 'Fekete',
+ '800000': 'Bordó',
+ '8B4513': 'Barna',
+ '2F4F4F': 'Sötét türkiz',
+ '008080': 'Türkiz',
+ '000080': 'Király kék',
+ '4B0082': 'Indigó kék',
+ '696969': 'Szürke',
+ B22222: 'Tégla vörös',
+ A52A2A: 'Vörös',
+ DAA520: 'Arany sárga',
+ '006400': 'Sötét zöld',
+ '40E0D0': 'Türkiz',
+ '0000CD': 'Kék',
+ '800080': 'Lila',
+ '808080': 'Szürke',
+ F00: 'Piros',
+ FF8C00: 'Sötét narancs',
+ FFD700: 'Arany',
+ '008000': 'Zöld',
+ '0FF': 'Türkiz',
+ '00F': 'Kék',
+ EE82EE: 'RózsaszÃn',
+ A9A9A9: 'Sötét szürke',
+ FFA07A: 'Lazac',
+ FFA500: 'Narancs',
+ FFFF00: 'Citromsárga',
+ '00FF00': 'Neon zöld',
+ AFEEEE: 'Világos türkiz',
+ ADD8E6: 'Világos kék',
+ DDA0DD: 'Világos lila',
+ D3D3D3: 'Világos szürke',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Törtfehér',
+ FFFFE0: 'Világos sárga',
+ F0FFF0: 'Menta',
+ F0FFFF: 'Azúr kék',
+ F0F8FF: 'Halvány kék',
+ E6E6FA: 'Lavender',
+ FFF: 'Fehér'
+ },
+ more: 'További szÃnek...',
+ panelTitle: 'SzÃnek',
+ textColorTitle: 'BetűszÃn'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/is.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/is.js
new file mode 100644
index 0000000..727e897
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/is.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'is', {
+ auto: 'Sjálfval',
+ bgColorTitle: 'Bakgrunnslitur',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Fleiri liti...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Litur texta'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/it.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/it.js
new file mode 100644
index 0000000..1c8a93c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/it.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'it', {
+ auto: 'Automatico',
+ bgColorTitle: 'Colore sfondo',
+ colors: {
+ '000': 'Nero',
+ '800000': 'Marrone Castagna',
+ '8B4513': 'Marrone Cuoio',
+ '2F4F4F': 'Grigio Fumo di Londra',
+ '008080': 'Acquamarina',
+ '000080': 'Blu Oceano',
+ '4B0082': 'Indigo',
+ '696969': 'Grigio Scuro',
+ B22222: 'Giallo Fiamma',
+ A52A2A: 'Marrone',
+ DAA520: 'Giallo Mimosa',
+ '006400': 'Verde Scuro',
+ '40E0D0': 'Turchese',
+ '0000CD': 'Blue Scuro',
+ '800080': 'Viola',
+ '808080': 'Grigio',
+ F00: 'Rosso',
+ FF8C00: 'Arancio Scuro',
+ FFD700: 'Oro',
+ '008000': 'Verde',
+ '0FF': 'Ciano',
+ '00F': 'Blu',
+ EE82EE: 'Violetto',
+ A9A9A9: 'Grigio Scuro',
+ FFA07A: 'Salmone',
+ FFA500: 'Arancio',
+ FFFF00: 'Giallo',
+ '00FF00': 'Lime',
+ AFEEEE: 'Turchese Chiaro',
+ ADD8E6: 'Blu Chiaro',
+ DDA0DD: 'Rosso Ciliegia',
+ D3D3D3: 'Grigio Chiaro',
+ FFF0F5: 'Lavanda Chiara',
+ FAEBD7: 'Bianco Antico',
+ FFFFE0: 'Giallo Chiaro',
+ F0FFF0: 'Verde Mela',
+ F0FFFF: 'Azzurro',
+ F0F8FF: 'Celeste',
+ E6E6FA: 'Lavanda',
+ FFF: 'Bianco'
+ },
+ more: 'Altri colori...',
+ panelTitle: 'Colori',
+ textColorTitle: 'Colore testo'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ja.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ja.js
new file mode 100644
index 0000000..e383b79
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ja.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ja', {
+ auto: 'èªå',
+ bgColorTitle: 'èæ¯è²',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'ãã®ä»ã®è²...',
+ panelTitle: 'è²',
+ textColorTitle: 'ããã¹ãè²'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ka.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ka.js
new file mode 100644
index 0000000..c1d0896
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ka.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ka', {
+ auto: 'ááá¢áááá¢á£á á',
+ bgColorTitle: 'á¤áááá¡ á¤áá á',
+ colors: {
+ '000': 'á¨ááá',
+ '800000': 'áá£á¥á á¨ááááá¡á¤áá á',
+ '8B4513': 'á§áááá¡á¤áá á',
+ '2F4F4F': 'áááá£á á¯á áááªá áá¡á¤áá á',
+ '008080': 'á©ááá¥á ááá áá£á á¯á',
+ '000080': 'áá£á¥á áá£á á¯á',
+ '4B0082': 'ááá¡ááááá¡á¤áá á',
+ '696969': 'áá£á¥á áááªá áá¡á¤áá á',
+ B22222: 'ááá£á áá¡á¤áá á',
+ A52A2A: 'áá£á¥á á§áááá¡á¤áá á',
+ DAA520: 'ááá§áááááá',
+ '006400': 'áá£á¥á áá¬áááá',
+ '40E0D0': 'áªáá¡á¤áá á',
+ '0000CD': 'áááááá áá áá£á á¯á',
+ '800080': 'ááá¡á¤áá á',
+ '808080': 'áááªá áá¡á¤áá á',
+ F00: 'á¬ááááá',
+ FF8C00: 'áá£á¥á á¡á¢áá¤áááá¡á¤áá á',
+ FFD700: 'áá¥á áá¡á¤áá á',
+ '008000': 'áá¬áááá',
+ '0FF': 'á¦áá áªáá¡á¤áá á',
+ '00F': 'áá£á á¯á',
+ EE82EE: 'ááá¡á¤áá á',
+ A9A9A9: 'áááªá áááªá áá¡á¤áá á',
+ FFA07A: 'á©ááá¥á ááá ááá ááá¡á¤áá á',
+ FFA500: 'á¡á¢áá¤áááá¡á¤áá á',
+ FFFF00: 'á§áááááá',
+ '00FF00': 'áá£á á¯á',
+ AFEEEE: 'áªáá¡á¤áá á',
+ ADD8E6: 'á¦áá áá£á á¯á',
+ DDA0DD: 'á¦áá ááá¡á¤áá á',
+ D3D3D3: 'á¦áá áááªá áá¡á¤áá á',
+ FFF0F5: 'á¦áá ááá ááá¡á¤áá á',
+ FAEBD7: 'á¦áá á§áááá¡á¤áá á',
+ FFFFE0: 'áááááá á§áááááá',
+ F0FFF0: 'á¦áá áá¬áááá',
+ F0FFFF: 'á¦áá áªáá¡á¤áá á 2',
+ F0F8FF: 'á¦áá áªáá¡á¤áá á 3',
+ E6E6FA: 'á¦áá ááá¡á¤áá á 2',
+ FFF: 'áááá á'
+ },
+ more: 'ááá¢á á¤áá á...',
+ panelTitle: 'á¤áá ááá',
+ textColorTitle: 'á¢áá¥á¡á¢áá¡ á¤áá á'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/km.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/km.js
new file mode 100644
index 0000000..4f0613f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/km.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'km', {
+ auto: 'áááááááááááá',
+ bgColorTitle: 'ááááááááá¶áááááá',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'ááááááááááá..',
+ panelTitle: 'Colors',
+ textColorTitle: 'áááá¢áááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ko.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ko.js
new file mode 100644
index 0000000..0ea8c45
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ko.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ko', {
+ auto: '기본ìì',
+ bgColorTitle: 'ë°°ê²½ ìì',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'ììì í...',
+ panelTitle: 'Colors',
+ textColorTitle: 'ê¸ì ìì'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ku.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ku.js
new file mode 100644
index 0000000..6683cee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ku.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ku', {
+ auto: 'Ø®Ûکار',
+ bgColorTitle: 'ÚÙÙÚ¯Û Ù¾Ø§Ø´Ø¨ÙÙÙ
ا',
+ colors: {
+ '000': 'ÚÙØ´',
+ '800000': 'Ø³ÛØ±Ù Ù
اÚÙÙÙÛ',
+ '8B4513': 'Ù
اÚÙÙÙÛ',
+ '2F4F4F': 'سÙÙØ²Û تارÛÙ',
+ '008080': 'سÙÙØ²Ù Ø´ÛÙ',
+ '000080': 'Ø´ÛÙÛ ØªÛØ®',
+ '4B0082': 'Ù
ÛØ±Û ØªÛØ®',
+ '696969': 'ÚÙØ³Ø§Ø³Û ØªÛØ®',
+ B22222: 'Ø³ÛØ±Û ØªÛØ®',
+ A52A2A: 'ÙØ§ÙÙÛÛ',
+ DAA520: 'ÙØ§ÙÙÛÛ Ø¨Ø±ÛØ³Ú©Ùدار',
+ '006400': 'سÙÙØ²Û ØªÛØ®',
+ '40E0D0': 'Ø´ÛÙÛ ÙØ§ØªÛØ®Û Ø¨Ø±ÛØ³Ú©Ùدار',
+ '0000CD': 'Ø´ÛÙÛ Ù
اÙ
ÙØ§ÙÙÙØ¯',
+ '800080': 'Ù¾ÙÙ
بÙÛÛ',
+ '808080': 'ÚÙØ³Ø§Ø³Û',
+ F00: 'Ø³ÛØ±',
+ FF8C00: 'ÙØ§Ø±ÙÙØ¬Û ØªÛØ®',
+ FFD700: 'Ø²ÙØ±Ø¯',
+ '008000': 'سÙÙØ²',
+ '0FF': 'Ø´ÛÙÛ Ø¦Ø§Ø³Ù
اÙÛ',
+ '00F': 'Ø´ÛÙ',
+ EE82EE: 'Ù¾ÙÙ
ÙÛÛ',
+ A9A9A9: 'ÚÙØ³Ø§Ø³Û ÙØ§ØªÛØ®',
+ FFA07A: 'ÙØ§Ø±ÙÙØ¬Û ÙØ§ØªÛØ®',
+ FFA500: 'ÙØ§Ø±ÙÙØ¬Û',
+ FFFF00: 'Ø²ÙØ±Ø¯',
+ '00FF00': 'سÙÙØ²',
+ AFEEEE: 'Ø´ÛÙÛ ÙØ§ØªÛØ®',
+ ADD8E6: 'Ø´ÛÙÛ Ø²ÛØ± ÙØ§ØªÛØ®',
+ DDA0DD: 'Ù¾ÙÙ
ÙÛÛ ÙØ§ØªÛØ®',
+ D3D3D3: 'ÚÙØ³Ø§Ø³Û Ø¨Ø±ÛØ³Ú©Ùدار',
+ FFF0F5: 'Ø¬ÙØ±Ú¯Û Ø²ÛØ± ÙØ§ØªÛØ®',
+ FAEBD7: 'Ø¬ÙØ±Ú¯Û ÙØ§ØªÛØ®',
+ FFFFE0: 'Ø³Ù¾Û ÙØ§ØªÛØ®',
+ F0FFF0: 'ÙÙÙÚ¯ÙÛÙÛ ÙØ§ØªÛØ®',
+ F0FFFF: 'Ø´ÛÙÛÚ©Û Ø²ÛØ± ÙØ§ØªÛØ®',
+ F0F8FF: 'Ø´ÛÙÛÚ©Û Ø¦Ø§Ø³Ù
اÙÛ Ø²ÛØ± ÙØ§ØªÛØ®',
+ E6E6FA: 'Ø´ÛØ±Û',
+ FFF: 'سپÛ'
+ },
+ more: 'ÚÙÙÚ¯Û Ø²ÛØ§ØªØ±...',
+ panelTitle: 'ÚÙÙÚ¯ÙکاÙ',
+ textColorTitle: 'ÚÙÙÚ¯Û Ø¯ÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/lt.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/lt.js
new file mode 100644
index 0000000..a8b8b9e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/lt.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'lt', {
+ auto: 'Automatinis',
+ bgColorTitle: 'Fono spalva',
+ colors: {
+ '000': 'Juoda',
+ '800000': 'KaÅ¡toninÄ',
+ '8B4513': 'Tamsiai ruda',
+ '2F4F4F': 'Pilka tamsaus šiferio',
+ '008080': 'Teal',
+ '000080': 'Karinis',
+ '4B0082': 'Indigo',
+ '696969': 'Tamsiai pilka',
+ B22222: 'Ugnies',
+ A52A2A: 'Ruda',
+ DAA520: 'Aukso',
+ '006400': 'Tamsiai žalia',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'VidutinÄ mÄlyna',
+ '800080': 'VioletinÄ',
+ '808080': 'Pilka',
+ F00: 'Raudona',
+ FF8C00: 'Tamsiai oranžinÄ',
+ FFD700: 'AuksinÄ',
+ '008000': 'Žalia',
+ '0FF': 'Žydra',
+ '00F': 'MÄlyna',
+ EE82EE: 'VioletinÄ',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'OranžinÄ',
+ FFFF00: 'Geltona',
+ '00FF00': 'Citrinų',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Å viesiai mÄlyna',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Å viesiai pilka',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Å viesiai geltona',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'Balta'
+ },
+ more: 'Daugiau spalvų...',
+ panelTitle: 'Spalva',
+ textColorTitle: 'Teksto spalva'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/lv.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/lv.js
new file mode 100644
index 0000000..f89c7e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/lv.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'lv', {
+ auto: 'AutomÄtiska',
+ bgColorTitle: 'Fona krÄsa',
+ colors: {
+ '000': 'Melns',
+ '800000': 'Sarkanbrūns',
+ '8B4513': 'Sedlu brūns',
+ '2F4F4F': 'TumÅ¡as tÄfeles pelÄks',
+ '008080': 'Zili-zaļš',
+ '000080': 'Jūras',
+ '4B0082': 'Indigo',
+ '696969': 'TumÅ¡i pelÄks',
+ B22222: 'Ķieģeļsarkans',
+ A52A2A: 'Brūns',
+ DAA520: 'Zelta',
+ '006400': 'Tumši zaļš',
+ '40E0D0': 'Tirkīzs',
+ '0000CD': 'VidÄji zils',
+ '800080': 'Purpurs',
+ '808080': 'PelÄks',
+ F00: 'Sarkans',
+ FF8C00: 'Tumši oranžs',
+ FFD700: 'Zelta',
+ '008000': 'Zaļš',
+ '0FF': 'Tumšzils',
+ '00F': 'Zils',
+ EE82EE: 'Violets',
+ A9A9A9: 'PelÄks',
+ FFA07A: 'GaiÅ¡i laÅ¡krÄsas',
+ FFA500: 'Oranžs',
+ FFFF00: 'Dzeltens',
+ '00FF00': 'Laima',
+ AFEEEE: 'Gaiši tirkīza',
+ ADD8E6: 'Gaiši zils',
+ DDA0DD: 'Plūmju',
+ D3D3D3: 'GaiÅ¡i pelÄks',
+ FFF0F5: 'Lavandas sÄrts',
+ FAEBD7: 'Antīki balts',
+ FFFFE0: 'Gaiši dzeltens',
+ F0FFF0: 'Meduspile',
+ F0FFFF: 'Debesszils',
+ F0F8FF: 'Alises zils',
+ E6E6FA: 'Lavanda',
+ FFF: 'Balts'
+ },
+ more: 'PlaÅ¡Äka palete...',
+ panelTitle: 'KrÄsa',
+ textColorTitle: 'Teksta krÄsa'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/mk.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/mk.js
new file mode 100644
index 0000000..6ec4c9b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/mk.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'mk', {
+ auto: 'Automatic', // MISSING
+ bgColorTitle: 'Background Color',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'More Colors...', // MISSING
+ panelTitle: 'Colors',
+ textColorTitle: 'Text Color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/mn.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/mn.js
new file mode 100644
index 0000000..76a86f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/mn.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'mn', {
+ auto: 'ÐвÑомаÑааÑ',
+ bgColorTitle: 'ÐÑвÑгÑÑ Ó©Ð½Ð³Ó©',
+ colors: {
+ '000': 'ХаÑ',
+ '800000': 'Ð¥Ò¯ÑÑн',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'СааÑал',
+ F00: 'Улаан',
+ FF8C00: 'Dark Orange',
+ FFD700: 'ÐлÑ',
+ '008000': 'Ðогоон',
+ '0FF': 'ЦÑнÑ
ÑÑ',
+ '00F': 'Ð¥Ó©Ñ
',
+ EE82EE: 'Ягаан',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Ð£Ð»Ð±Ð°Ñ ÑаÑ',
+ FFFF00: 'ШаÑ',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Ð¦Ð°Ð¹Ð²Ð°Ñ ÑааÑал',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'Цагаан'
+ },
+ more: 'ÐÑмÑÐ»Ñ Ó©Ð½Ð³Ó©Ð½Ò¯Ò¯Ð´...',
+ panelTitle: 'Өнгөнүүд',
+ textColorTitle: 'ÐиÑвÑÑийн өнгө'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ms.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ms.js
new file mode 100644
index 0000000..ed5ffb9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ms.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ms', {
+ auto: 'Otomatik',
+ bgColorTitle: 'Warna Latarbelakang',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Warna lain-lain...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Warna Text'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/nb.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/nb.js
new file mode 100644
index 0000000..735963e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/nb.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'nb', {
+ auto: 'Automatisk',
+ bgColorTitle: 'Bakgrunnsfarge',
+ colors: {
+ '000': 'Svart',
+ '800000': 'Rødbrun',
+ '8B4513': 'Salbrun',
+ '2F4F4F': 'Grønnsvart',
+ '008080': 'Blågrønn',
+ '000080': 'Marineblått',
+ '4B0082': 'Indigo',
+ '696969': 'Mørk grå',
+ B22222: 'Mørkerød',
+ A52A2A: 'Brun',
+ DAA520: 'Lys brun',
+ '006400': 'Mørk grønn',
+ '40E0D0': 'Turkis',
+ '0000CD': 'Medium blå',
+ '800080': 'Purpur',
+ '808080': 'Grå',
+ F00: 'Rød',
+ FF8C00: 'Mørk oransje',
+ FFD700: 'Gull',
+ '008000': 'Grønn',
+ '0FF': 'Cyan',
+ '00F': 'Blå',
+ EE82EE: 'Fiolett',
+ A9A9A9: 'Svak grå',
+ FFA07A: 'Rosa-oransje',
+ FFA500: 'Oransje',
+ FFFF00: 'Gul',
+ '00FF00': 'Lime',
+ AFEEEE: 'Svak turkis',
+ ADD8E6: 'Lys Blå',
+ DDA0DD: 'Plomme',
+ D3D3D3: 'Lys grå',
+ FFF0F5: 'Svak lavendelrosa',
+ FAEBD7: 'Antikk-hvit',
+ FFFFE0: 'Lys gul',
+ F0FFF0: 'Honningmelon',
+ F0FFFF: 'Svakt asurblått',
+ F0F8FF: 'Svak cyan',
+ E6E6FA: 'Lavendel',
+ FFF: 'Hvit'
+ },
+ more: 'Flere farger...',
+ panelTitle: 'Farger',
+ textColorTitle: 'Tekstfarge'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/nl.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/nl.js
new file mode 100644
index 0000000..fc62778
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/nl.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'nl', {
+ auto: 'Automatisch',
+ bgColorTitle: 'Achtergrondkleur',
+ colors: {
+ '000': 'Zwart',
+ '800000': 'Kastanjebruin',
+ '8B4513': 'Chocoladebruin',
+ '2F4F4F': 'Donkerleigrijs',
+ '008080': 'Blauwgroen',
+ '000080': 'Marine',
+ '4B0082': 'Indigo',
+ '696969': 'Donkergrijs',
+ B22222: 'Baksteen',
+ A52A2A: 'Bruin',
+ DAA520: 'Donkergeel',
+ '006400': 'Donkergroen',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Middenblauw',
+ '800080': 'Paars',
+ '808080': 'Grijs',
+ F00: 'Rood',
+ FF8C00: 'Donkeroranje',
+ FFD700: 'Goud',
+ '008000': 'Groen',
+ '0FF': 'Cyaan',
+ '00F': 'Blauw',
+ EE82EE: 'Violet',
+ A9A9A9: 'Donkergrijs',
+ FFA07A: 'Lichtzalm',
+ FFA500: 'Oranje',
+ FFFF00: 'Geel',
+ '00FF00': 'Felgroen',
+ AFEEEE: 'Lichtturquoise',
+ ADD8E6: 'Lichtblauw',
+ DDA0DD: 'Pruim',
+ D3D3D3: 'Lichtgrijs',
+ FFF0F5: 'Linnen',
+ FAEBD7: 'Ivoor',
+ FFFFE0: 'Lichtgeel',
+ F0FFF0: 'Honingdauw',
+ F0FFFF: 'Azuur',
+ F0F8FF: 'Licht hemelsblauw',
+ E6E6FA: 'Lavendel',
+ FFF: 'Wit'
+ },
+ more: 'Meer kleuren...',
+ panelTitle: 'Kleuren',
+ textColorTitle: 'Tekstkleur'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/no.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/no.js
new file mode 100644
index 0000000..f875b81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/no.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'no', {
+ auto: 'Automatisk',
+ bgColorTitle: 'Bakgrunnsfarge',
+ colors: {
+ '000': 'Svart',
+ '800000': 'Rødbrun',
+ '8B4513': 'Salbrun',
+ '2F4F4F': 'Grønnsvart',
+ '008080': 'Blågrønn',
+ '000080': 'Marineblått',
+ '4B0082': 'Indigo',
+ '696969': 'Mørk grå',
+ B22222: 'Mørkerød',
+ A52A2A: 'Brun',
+ DAA520: 'Lys brun',
+ '006400': 'Mørk grønn',
+ '40E0D0': 'Turkis',
+ '0000CD': 'Medium blå',
+ '800080': 'Purpur',
+ '808080': 'Grå',
+ F00: 'Rød',
+ FF8C00: 'Mørk oransje',
+ FFD700: 'Gull',
+ '008000': 'Grønn',
+ '0FF': 'Cyan',
+ '00F': 'Blå',
+ EE82EE: 'Fiolett',
+ A9A9A9: 'Svak grå',
+ FFA07A: 'Rosa-oransje',
+ FFA500: 'Oransje',
+ FFFF00: 'Gul',
+ '00FF00': 'Lime',
+ AFEEEE: 'Svak turkis',
+ ADD8E6: 'Lys Blå',
+ DDA0DD: 'Plomme',
+ D3D3D3: 'Lys grå',
+ FFF0F5: 'Svak lavendelrosa',
+ FAEBD7: 'Antikk-hvit',
+ FFFFE0: 'Lys gul',
+ F0FFF0: 'Honningmelon',
+ F0FFFF: 'Svakt asurblått',
+ F0F8FF: 'Svak cyan',
+ E6E6FA: 'Lavendel',
+ FFF: 'Hvit'
+ },
+ more: 'Flere farger...',
+ panelTitle: 'Farger',
+ textColorTitle: 'Tekstfarge'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/pl.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/pl.js
new file mode 100644
index 0000000..f8eac37
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/pl.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'pl', {
+ auto: 'Automatycznie',
+ bgColorTitle: 'Kolor tÅa',
+ colors: {
+ '000': 'Czarny',
+ '800000': 'Kasztanowy',
+ '8B4513': 'Czekoladowy',
+ '2F4F4F': 'Ciemnografitowy',
+ '008080': 'Morski',
+ '000080': 'Granatowy',
+ '4B0082': 'Indygo',
+ '696969': 'Ciemnoszary',
+ B22222: 'CzerwieŠżelazowa',
+ A52A2A: 'BrÄ
zowy',
+ DAA520: 'CiemnozÅoty',
+ '006400': 'Ciemnozielony',
+ '40E0D0': 'Turkusowy',
+ '0000CD': 'Ciemnoniebieski',
+ '800080': 'Purpurowy',
+ '808080': 'Szary',
+ F00: 'Czerwony',
+ FF8C00: 'CiemnopomaraÅczowy',
+ FFD700: 'ZÅoty',
+ '008000': 'Zielony',
+ '0FF': 'Cyjan',
+ '00F': 'Niebieski',
+ EE82EE: 'Fioletowy',
+ A9A9A9: 'Przygaszony szary',
+ FFA07A: 'Åososiowy',
+ FFA500: 'PomaraÅczowy',
+ FFFF00: 'ŻóÅty',
+ '00FF00': 'Limonkowy',
+ AFEEEE: 'Bladoturkusowy',
+ ADD8E6: 'Jasnoniebieski',
+ DDA0DD: 'Åliwkowy',
+ D3D3D3: 'Jasnoszary',
+ FFF0F5: 'Jasnolawendowy',
+ FAEBD7: 'KremowobiaÅy',
+ FFFFE0: 'JasnożóÅty',
+ F0FFF0: 'Bladozielony',
+ F0FFFF: 'Jasnolazurowy',
+ F0F8FF: 'JasnobÅÄkitny',
+ E6E6FA: 'Lawendowy',
+ FFF: 'BiaÅy'
+ },
+ more: 'WiÄcej kolorów...',
+ panelTitle: 'Kolory',
+ textColorTitle: 'Kolor tekstu'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/pt-br.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/pt-br.js
new file mode 100644
index 0000000..2eca20f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/pt-br.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'pt-br', {
+ auto: 'Automático',
+ bgColorTitle: 'Cor do Plano de Fundo',
+ colors: {
+ '000': 'Preto',
+ '800000': 'Foquete',
+ '8B4513': 'Marrom 1',
+ '2F4F4F': 'Cinza 1',
+ '008080': 'Cerceta',
+ '000080': 'Azul Marinho',
+ '4B0082': 'Ãndigo',
+ '696969': 'Cinza 2',
+ B22222: 'Tijolo de Fogo',
+ A52A2A: 'Marrom 2',
+ DAA520: 'Vara Dourada',
+ '006400': 'Verde Escuro',
+ '40E0D0': 'Turquesa',
+ '0000CD': 'Azul Médio',
+ '800080': 'Roxo',
+ '808080': 'Cinza 3',
+ F00: 'Vermelho',
+ FF8C00: 'Laranja Escuro',
+ FFD700: 'Dourado',
+ '008000': 'Verde',
+ '0FF': 'Ciano',
+ '00F': 'Azul',
+ EE82EE: 'Violeta',
+ A9A9A9: 'Cinza Escuro',
+ FFA07A: 'Salmão Claro',
+ FFA500: 'Laranja',
+ FFFF00: 'Amarelo',
+ '00FF00': 'Lima',
+ AFEEEE: 'Turquesa Pálido',
+ ADD8E6: 'Azul Claro',
+ DDA0DD: 'Ameixa',
+ D3D3D3: 'Cinza Claro',
+ FFF0F5: 'Lavanda 1',
+ FAEBD7: 'Branco Antiguidade',
+ FFFFE0: 'Amarelo Claro',
+ F0FFF0: 'Orvalho',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Azul Alice',
+ E6E6FA: 'Lavanda 2',
+ FFF: 'Branco'
+ },
+ more: 'Mais Cores...',
+ panelTitle: 'Cores',
+ textColorTitle: 'Cor do Texto'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/pt.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/pt.js
new file mode 100644
index 0000000..c99c819
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/pt.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'pt', {
+ auto: 'Automático',
+ bgColorTitle: 'Cor de Fundo',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Mais Cores...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Cor do Texto'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ro.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ro.js
new file mode 100644
index 0000000..762877b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ro.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ro', {
+ auto: 'Automatic',
+ bgColorTitle: 'Coloarea fundalului',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Mai multe culori...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Culoarea textului'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ru.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ru.js
new file mode 100644
index 0000000..248e4b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ru.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ru', {
+ auto: 'ÐвÑомаÑиÑеÑки',
+ bgColorTitle: 'Ð¦Ð²ÐµÑ Ñона',
+ colors: {
+ '000': 'ЧÑÑнÑй',
+ '800000': 'ÐоÑдовÑй',
+ '8B4513': 'Ðожано-коÑиÑневÑй',
+ '2F4F4F': 'ТемнÑй ÑиневаÑо-ÑеÑÑй',
+ '008080': 'Сине-зелÑнÑй',
+ '000080': 'ТÑмно-Ñиний',
+ '4B0082': 'Ðндиго',
+ '696969': 'ТÑмно-ÑеÑÑй',
+ B22222: 'ÐиÑпиÑнÑй',
+ A52A2A: 'ÐоÑиÑневÑй',
+ DAA520: 'ÐолоÑиÑÑо-беÑÑзовÑй',
+ '006400': 'Темно-зелÑнÑй',
+ '40E0D0': 'ÐиÑÑзовÑй',
+ '0000CD': 'УмеÑенно Ñиний',
+ '800080': 'ÐÑÑпÑÑнÑй',
+ '808080': 'СеÑÑй',
+ F00: 'ÐÑаÑнÑй',
+ FF8C00: 'Темно-оÑанжевÑй',
+ FFD700: 'ÐолоÑиÑÑÑй',
+ '008000': 'ÐелÑнÑй',
+ '0FF': 'ÐаÑилÑковÑй',
+ '00F': 'Синий',
+ EE82EE: 'ФиолеÑовÑй',
+ A9A9A9: 'ТÑÑкло-ÑеÑÑй',
+ FFA07A: 'СвеÑло-лоÑоÑевÑй',
+ FFA500: 'ÐÑанжевÑй',
+ FFFF00: 'ÐÑлÑÑй',
+ '00FF00': 'Ðайма',
+ AFEEEE: 'Ðледно-Ñиний',
+ ADD8E6: 'СвелÑо-голÑбой',
+ DDA0DD: 'СливовÑй',
+ D3D3D3: 'СвеÑло-ÑеÑÑй',
+ FFF0F5: 'Розово-лавандовÑй',
+ FAEBD7: 'ÐнÑиÑнÑй белÑй',
+ FFFFE0: 'СвеÑло-жÑлÑÑй',
+ F0FFF0: 'ÐедвÑной ÑоÑÑ',
+ F0FFFF: 'ÐазÑÑнÑй',
+ F0F8FF: 'Ðледно-голÑбой',
+ E6E6FA: 'ÐавандовÑй',
+ FFF: 'ÐелÑй'
+ },
+ more: 'ÐÑÑ ÑвеÑа...',
+ panelTitle: 'ЦвеÑа',
+ textColorTitle: 'Ð¦Ð²ÐµÑ ÑекÑÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/sk.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/sk.js
new file mode 100644
index 0000000..e9839c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/sk.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'sk', {
+ auto: 'Automaticky',
+ bgColorTitle: 'Farba pozadia',
+ colors: {
+ '000': 'Äierna',
+ '800000': 'Maroon',
+ '8B4513': 'Sedlová hnedá',
+ '2F4F4F': 'Tmavo bridlicovo sivá',
+ '008080': 'Modrozelená',
+ '000080': 'Tmavomodrá',
+ '4B0082': 'Indigo',
+ '696969': 'Tmavá sivá',
+ B22222: 'OhÅová tehlová',
+ A52A2A: 'Hnedá',
+ DAA520: 'Zlatobyľ',
+ '006400': 'Tmavá zelená',
+ '40E0D0': 'Tyrkysová',
+ '0000CD': 'Stredná modrá',
+ '800080': 'Purpurová',
+ '808080': 'Sivá',
+ F00: 'Äervená',
+ FF8C00: 'Tmavá oranžová',
+ FFD700: 'Zlatá',
+ '008000': 'Zelená',
+ '0FF': 'Azúrová',
+ '00F': 'Modrá',
+ EE82EE: 'Fialová',
+ A9A9A9: 'Tmavá sivá',
+ FFA07A: 'Svetlo lososová',
+ FFA500: 'Oranžová',
+ FFFF00: 'Žltá',
+ '00FF00': 'Vápenná',
+ AFEEEE: 'Svetlo tyrkysová',
+ ADD8E6: 'Svetlo modrá',
+ DDA0DD: 'Slivková',
+ D3D3D3: 'Svetlo sivá',
+ FFF0F5: 'Levanduľovo Äervená',
+ FAEBD7: 'Antická biela',
+ FFFFE0: 'Svetlo žltá',
+ F0FFF0: 'Medová',
+ F0FFFF: 'Azúrová',
+ F0F8FF: 'Alicovo modrá',
+ E6E6FA: 'Levanduľová',
+ FFF: 'Biela'
+ },
+ more: 'Viac farieb...',
+ panelTitle: 'Farby',
+ textColorTitle: 'Farba textu'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/sl.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/sl.js
new file mode 100644
index 0000000..df8b303
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/sl.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'sl', {
+ auto: 'Samodejno',
+ bgColorTitle: 'Barva ozadja',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'VeÄ barv...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Barva besedila'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/sr-latn.js
new file mode 100644
index 0000000..c8815da
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/sr-latn.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'sr-latn', {
+ auto: 'Automatski',
+ bgColorTitle: 'Boja pozadine',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'Više boja...',
+ panelTitle: 'Colors',
+ textColorTitle: 'Boja teksta'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/sr.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/sr.js
new file mode 100644
index 0000000..765970a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/sr.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'sr', {
+ auto: 'ÐÑÑомаÑÑки',
+ bgColorTitle: 'ÐоÑа позадине',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'ÐиÑе боÑа...',
+ panelTitle: 'Colors',
+ textColorTitle: 'ÐоÑа ÑекÑÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/sv.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/sv.js
new file mode 100644
index 0000000..8f10242
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/sv.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'sv', {
+ auto: 'Automatisk',
+ bgColorTitle: 'Bakgrundsfärg',
+ colors: {
+ '000': 'Svart',
+ '800000': 'Rödbrun',
+ '8B4513': 'Mörkbrun',
+ '2F4F4F': 'Skiffergrå',
+ '008080': 'Kricka',
+ '000080': 'Marinblå',
+ '4B0082': 'Indigo',
+ '696969': 'Mörkgrå',
+ B22222: 'Tegelsten',
+ A52A2A: 'Brun',
+ DAA520: 'Mörk guld',
+ '006400': 'Mörkgrön',
+ '40E0D0': 'Turkos',
+ '0000CD': 'Medium blå',
+ '800080': 'Lila',
+ '808080': 'Grå',
+ F00: 'Röd',
+ FF8C00: 'Mörkorange',
+ FFD700: 'Guld',
+ '008000': 'Grön',
+ '0FF': 'Turkos',
+ '00F': 'Blå',
+ EE82EE: 'Violett',
+ A9A9A9: 'Matt grå',
+ FFA07A: 'Laxrosa',
+ FFA500: 'Orange',
+ FFFF00: 'Gul',
+ '00FF00': 'Lime',
+ AFEEEE: 'Ljusturkos',
+ ADD8E6: 'Ljusblå',
+ DDA0DD: 'Plommon',
+ D3D3D3: 'Ljusgrå',
+ FFF0F5: 'Ljus lavender',
+ FAEBD7: 'Antikvit',
+ FFFFE0: 'Ljusgul',
+ F0FFF0: 'Honung',
+ F0FFFF: 'Azurblå',
+ F0F8FF: 'Aliceblå',
+ E6E6FA: 'Lavender',
+ FFF: 'Vit'
+ },
+ more: 'Fler färger...',
+ panelTitle: 'Färger',
+ textColorTitle: 'Textfärg'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/th.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/th.js
new file mode 100644
index 0000000..1424151
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/th.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'th', {
+ auto: 'สีà¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´',
+ bgColorTitle: 'สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'à¹à¸¥à¸·à¸à¸à¸ªà¸µà¸à¸·à¹à¸à¹...',
+ panelTitle: 'Colors',
+ textColorTitle: 'สีà¸à¸±à¸§à¸à¸±à¸à¸©à¸£'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/tr.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/tr.js
new file mode 100644
index 0000000..c8e88ba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/tr.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'tr', {
+ auto: 'Otomatik',
+ bgColorTitle: 'Arka Renk',
+ colors: {
+ '000': 'Siyah',
+ '800000': 'Kestane',
+ '8B4513': 'Koyu Kahverengi',
+ '2F4F4F': 'Koyu KurÅuni Gri',
+ '008080': 'Teal',
+ '000080': 'Mavi',
+ '4B0082': 'Ãivit Mavisi',
+ '696969': 'Silik Gri',
+ B22222: 'AteÅ TuÄlası',
+ A52A2A: 'Kahverengi',
+ DAA520: 'Altun Sırık',
+ '006400': 'Koyu YeÅil',
+ '40E0D0': 'Turkuaz',
+ '0000CD': 'Orta Mavi',
+ '800080': 'Pembe',
+ '808080': 'Gri',
+ F00: 'Kırmızı',
+ FF8C00: 'Koyu Portakal',
+ FFD700: 'Altın',
+ '008000': 'YeÅil',
+ '0FF': 'Ciyan',
+ '00F': 'Mavi',
+ EE82EE: 'MenekÅe',
+ A9A9A9: 'Koyu Gri',
+ FFA07A: 'Açık Sarımsı',
+ FFA500: 'Portakal',
+ FFFF00: 'Sarı',
+ '00FF00': 'Açık YeÅil',
+ AFEEEE: 'Sönük Turkuaz',
+ ADD8E6: 'Açık Mavi',
+ DDA0DD: 'Mor',
+ D3D3D3: 'Açık Gri',
+ FFF0F5: 'Eflatun Pembe',
+ FAEBD7: 'Antik Beyaz',
+ FFFFE0: 'Açık Sarı',
+ F0FFF0: 'Balsarısı',
+ F0FFFF: 'Gök Mavisi',
+ F0F8FF: 'Reha Mavi',
+ E6E6FA: 'Eflatun',
+ FFF: 'Beyaz'
+ },
+ more: 'DiÄer renkler...',
+ panelTitle: 'Renkler',
+ textColorTitle: 'Yazı Rengi'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/ug.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/ug.js
new file mode 100644
index 0000000..e4de709
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/ug.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'ug', {
+ auto: 'Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ',
+ bgColorTitle: 'تÛÚ¯ÙÙ٠رÛÚÚ¯Ù',
+ colors: {
+ '000': 'ÙØ§Ø±Ø§',
+ '800000': 'ÙÙØ²ØºÛÚ Ø³ÛØ±ÙÙ',
+ '8B4513': 'تÙÙ ÙÙÚÛØ±',
+ '2F4F4F': 'ÙØ§Ø±Ø§Ù
تÛÙ ÙÛØ´ÙÙ',
+ '008080': 'ÙÛÙÛØ´ ÙÛØ´ÙÙ',
+ '000080': 'ÙØ§Ø±Ø§Ù
تÛÙ ÙÛÙ',
+ '4B0082': 'ÙÛÙÛØ´ ÙÛÙØ±ÛÚ',
+ '696969': 'ÙØ§Ø±Ø§Ù
تÛÙ ÙÛÙØ±ÛÚ',
+ B22222: 'Ø®ÙØ´ ÙÙØ²ÙÙ',
+ A52A2A: 'ÙÙÚÛØ±',
+ DAA520: 'Ø¦Ø§ÙØªÛÙ Ø³ÛØ±ÙÙ',
+ '006400': 'تÙÙ ÙÛØ´ÙÙ',
+ '40E0D0': 'ÙÛÙÛÚ ÙÛØ´ÙÙ',
+ '0000CD': 'Ø¦ÙØªØªÛراھا٠ÙÛÙ',
+ '800080': 'بÙÙÛپشÛ',
+ '808080': 'ÙÛÙØ±ÛÚ',
+ F00: 'ÙÙØ²ÙÙ',
+ FF8C00: 'تÙÙ ÙÙØ²ØºÛÚ Ø³ÛØ±ÙÙ',
+ FFD700: 'Ø¦Ø§ÙØªÛÙ',
+ '008000': 'ÙÛØ´ÙÙ',
+ '0FF': 'ÙÛØ´ÙÙ ÙÛÙ',
+ '00F': 'ÙÛÙ',
+ EE82EE: 'ÙÙØ²ØºÛÚ Ø¨ÙÙÛپشÛ',
+ A9A9A9: 'تÙÙ ÙÛÙØ±ÛÚ',
+ FFA07A: 'ÙØ§Ûا ÚÛÚÙÙÙ Ø³ÛØ±ÙÙ',
+ FFA500: 'ÙÙØ²ØºÛÚ Ø³ÛØ±ÙÙ',
+ FFFF00: 'Ø³ÛØ±ÙÙ',
+ '00FF00': 'Lime',
+ AFEEEE: 'Ø³ÛØ³ Ú¾Ø§ÛØ§ رÛÚ',
+ ADD8E6: 'ئÙÚÛÙ ÙÛÙ',
+ DDA0DD: 'ÙÙØ²ØºÛÚ Ø¨ÙÙÛپشÛ',
+ D3D3D3: 'Ø³ÛØ³ ÙÛÙÛÚ ÙÛÙØ±ÛÚ',
+ FFF0F5: 'Ø³ÛØ³ ÙÙØ²ØºÛÚ Ø¨ÙÙÛپشÛ',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Ø³ÛØ³ Ø³ÛØ±ÙÙ',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'ئاسÙ
ا٠ÙÛÙÙ',
+ F0F8FF: 'Ø³ÛØ³ ÙÛÙ',
+ E6E6FA: 'Ø³ÛØ³ بÙÙÛپشÛ',
+ FFF: 'ئاÙ'
+ },
+ more: 'Ø¨Ø§Ø´ÙØ§ رÛÚ',
+ panelTitle: 'رÛÚ',
+ textColorTitle: 'تÛÙÙØ³Øª رÛÚÚ¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/uk.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/uk.js
new file mode 100644
index 0000000..24d25f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/uk.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'uk', {
+ auto: 'ÐвÑо',
+ bgColorTitle: 'ÐолÑÑ ÑонÑ',
+ colors: {
+ '000': 'ЧоÑний',
+ '800000': 'ÐоÑдовий',
+ '8B4513': 'ÐоÑиÑневий',
+ '2F4F4F': 'Темний ÑÑÑо-зелений',
+ '008080': 'ÐоÑÑÑÐºÐ¾Ñ Ñ
вилÑ',
+ '000080': 'Сливовий',
+ '4B0082': 'Ðндиго',
+ '696969': 'ТемноÑÑÑий',
+ B22222: 'ТемноÑеÑвоний',
+ A52A2A: 'ÐаÑÑановий',
+ DAA520: 'Ðежевий',
+ '006400': 'Темнозелений',
+ '40E0D0': 'ÐÑÑÑзовий',
+ '0000CD': 'ТемноÑинÑй',
+ '800080': 'ÐÑÑпÑÑний',
+ '808080': 'СÑÑий',
+ F00: 'ЧеÑвоний',
+ FF8C00: 'ТемнооÑанжевий',
+ FFD700: 'ÐовÑий',
+ '008000': 'Ðелений',
+ '0FF': 'СинÑо-зелений',
+ '00F': 'СинÑй',
+ EE82EE: 'ФÑолеÑовий',
+ A9A9A9: 'СвÑÑлоÑÑÑий',
+ FFA07A: 'Рожевий',
+ FFA500: 'ÐÑанжевий',
+ FFFF00: 'ЯÑкÑавожовÑий',
+ '00FF00': 'СалаÑовий',
+ AFEEEE: 'СвÑÑлобÑÑÑзовий',
+ ADD8E6: 'ÐлакиÑний',
+ DDA0DD: 'СвÑÑлоÑÑолеÑовий',
+ D3D3D3: 'СÑÑблÑÑÑий',
+ FFF0F5: 'СвÑÑлоÑожевий',
+ FAEBD7: 'СвÑÑлооÑанжевий',
+ FFFFE0: 'СвÑÑложовÑий',
+ F0FFF0: 'СвÑÑлозелений',
+ F0FFFF: 'СвÑÑлий ÑинÑо-зелений',
+ F0F8FF: 'СвÑÑлоблакиÑний',
+ E6E6FA: 'Ðавандовий',
+ FFF: 'ÐÑлий'
+ },
+ more: 'ÐолÑоÑи...',
+ panelTitle: 'ÐолÑоÑи',
+ textColorTitle: 'ÐолÑÑ ÑекÑÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/vi.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/vi.js
new file mode 100644
index 0000000..43e453e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/vi.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'vi', {
+ auto: 'Tá»± Äá»ng',
+ bgColorTitle: 'Mà u ná»n',
+ colors: {
+ '000': 'Äen',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Nâu',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Xám',
+ F00: 'Äá»',
+ FF8C00: 'Dark Orange',
+ FFD700: 'VÃ ng',
+ '008000': 'Xanh lá cây',
+ '0FF': 'Cyan',
+ '00F': 'Xanh da trá»i',
+ EE82EE: 'TÃm',
+ A9A9A9: 'Xám tá»i',
+ FFA07A: 'Light Salmon',
+ FFA500: 'MÃ u cam',
+ FFFF00: 'VÃ ng',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'Trắng'
+ },
+ more: 'Mà u khác...',
+ panelTitle: 'Mà u sắc',
+ textColorTitle: 'Mà u chữ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/zh-cn.js
new file mode 100644
index 0000000..1f6df57
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/zh-cn.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'zh-cn', {
+ auto: 'èªå¨',
+ bgColorTitle: 'èæ¯é¢è²',
+ colors: {
+ '000': 'é»',
+ '800000': 'è¤çº¢',
+ '8B4513': 'æ·±è¤',
+ '2F4F4F': '墨绿',
+ '008080': '绿æ¾ç³',
+ '000080': 'æµ·åè',
+ '4B0082': 'éè',
+ '696969': 'æç°',
+ B22222: 'ç 红',
+ A52A2A: 'è¤',
+ DAA520: 'éé»',
+ '006400': '深绿',
+ '40E0D0': 'è绿',
+ '0000CD': 'ä¸è',
+ '800080': 'ç´«',
+ '808080': 'ç°',
+ F00: '红',
+ FF8C00: 'æ·±æ©',
+ FFD700: 'é',
+ '008000': '绿',
+ '0FF': 'é',
+ '00F': 'è',
+ EE82EE: 'ç´«ç½å
°',
+ A9A9A9: 'æ·±ç°',
+ FFA07A: '亮æ©',
+ FFA500: 'æ©',
+ FFFF00: 'é»',
+ '00FF00': '水绿',
+ AFEEEE: 'ç²è',
+ ADD8E6: '亮è',
+ DDA0DD: 'æ¢
红',
+ D3D3D3: 'æ·¡ç°',
+ FFF0F5: '淡紫红',
+ FAEBD7: 'å¤è£ç½',
+ FFFFE0: 'æ·¡é»',
+ F0FFF0: 'èç½',
+ F0FFFF: '天è',
+ F0F8FF: 'æ·¡è',
+ E6E6FA: 'æ·¡ç´«',
+ FFF: 'ç½'
+ },
+ more: 'å
¶å®é¢è²...',
+ panelTitle: 'é¢è²',
+ textColorTitle: 'ææ¬é¢è²'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/lang/zh.js b/devel/third-party/ckeditor/plugins/colorbutton/lang/zh.js
new file mode 100644
index 0000000..6e77ad0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colorbutton/lang/zh.js
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colorbutton', 'zh', {
+ auto: 'èªå',
+ bgColorTitle: 'èæ¯é¡è²',
+ colors: {
+ '000': 'Black',
+ '800000': 'Maroon',
+ '8B4513': 'Saddle Brown',
+ '2F4F4F': 'Dark Slate Gray',
+ '008080': 'Teal',
+ '000080': 'Navy',
+ '4B0082': 'Indigo',
+ '696969': 'Dark Gray',
+ B22222: 'Fire Brick',
+ A52A2A: 'Brown',
+ DAA520: 'Golden Rod',
+ '006400': 'Dark Green',
+ '40E0D0': 'Turquoise',
+ '0000CD': 'Medium Blue',
+ '800080': 'Purple',
+ '808080': 'Gray',
+ F00: 'Red',
+ FF8C00: 'Dark Orange',
+ FFD700: 'Gold',
+ '008000': 'Green',
+ '0FF': 'Cyan',
+ '00F': 'Blue',
+ EE82EE: 'Violet',
+ A9A9A9: 'Dim Gray',
+ FFA07A: 'Light Salmon',
+ FFA500: 'Orange',
+ FFFF00: 'Yellow',
+ '00FF00': 'Lime',
+ AFEEEE: 'Pale Turquoise',
+ ADD8E6: 'Light Blue',
+ DDA0DD: 'Plum',
+ D3D3D3: 'Light Grey',
+ FFF0F5: 'Lavender Blush',
+ FAEBD7: 'Antique White',
+ FFFFE0: 'Light Yellow',
+ F0FFF0: 'Honeydew',
+ F0FFFF: 'Azure',
+ F0F8FF: 'Alice Blue',
+ E6E6FA: 'Lavender',
+ FFF: 'White'
+ },
+ more: 'æ´å¤é¡è²â¦',
+ panelTitle: 'Colors',
+ textColorTitle: 'æåé¡è²'
+});
diff --git a/devel/third-party/ckeditor/plugins/colorbutton/plugin.js b/devel/third-party/ckeditor/plugins/colorbutton/plugin.js
index 305c44d..0d5e3bd 100644
--- a/devel/third-party/ckeditor/plugins/colorbutton/plugin.js
+++ b/devel/third-party/ckeditor/plugins/colorbutton/plugin.js
@@ -1,139 +1,161 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'colorbutton',
-{
- requires : [ 'panelbutton', 'floatpanel', 'styles' ],
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- init : function( editor )
- {
+/**
+ * @fileOverview The "colorbutton" plugin that makes it possible to assign
+ * text and background colors to editor contents.
+ *
+ */
+CKEDITOR.plugins.add( 'colorbutton', {
+ requires: 'panelbutton,floatpanel',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'bgcolor,textcolor', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
var config = editor.config,
- lang = editor.lang.colorButton;
+ lang = editor.lang.colorbutton;
var clickFn;
- if ( !CKEDITOR.env.hc )
- {
- addButton( 'TextColor', 'fore', lang.textColorTitle );
- addButton( 'BGColor', 'back', lang.bgColorTitle );
+ if ( !CKEDITOR.env.hc ) {
+ addButton( 'TextColor', 'fore', lang.textColorTitle, 10 );
+ addButton( 'BGColor', 'back', lang.bgColorTitle, 20 );
}
- function addButton( name, type, title )
- {
- editor.ui.add( name, CKEDITOR.UI_PANELBUTTON,
- {
- label : title,
- title : title,
- className : 'cke_button_' + name.toLowerCase(),
- modes : { wysiwyg : 1 },
-
- panel :
- {
- css : editor.skin.editor.css,
- attributes : { role : 'listbox', 'aria-label' : lang.panelTitle }
- },
-
- onBlock : function( panel, block )
- {
- block.autoSize = true;
- block.element.addClass( 'cke_colorblock' );
- block.element.setHtml( renderColors( panel, type ) );
- // The block should not have scrollbars (#5933, #6056)
- block.element.getDocument().getBody().setStyle( 'overflow', 'hidden' );
-
- var keys = block.keys;
- var rtl = editor.lang.dir == 'rtl';
- keys[ rtl ? 37 : 39 ] = 'next'; // ARROW-RIGHT
- keys[ 40 ] = 'next'; // ARROW-DOWN
- keys[ 9 ] = 'next'; // TAB
- keys[ rtl ? 39 : 37 ] = 'prev'; // ARROW-LEFT
- keys[ 38 ] = 'prev'; // ARROW-UP
- keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB
- keys[ 32 ] = 'click'; // SPACE
+ function addButton( name, type, title, order ) {
+ var colorBoxId = CKEDITOR.tools.getNextId() + '_colorBox';
+ editor.ui.add( name, CKEDITOR.UI_PANELBUTTON, {
+ label: title,
+ title: title,
+ modes: { wysiwyg:1 },
+ editorFocus: 1,
+ toolbar: 'colors,' + order,
+
+ panel: {
+ css: CKEDITOR.skin.getPath( 'editor' ),
+ attributes: { role: 'listbox', 'aria-label': lang.panelTitle }
+ },
+
+ onBlock: function( panel, block ) {
+ block.autoSize = true;
+ block.element.addClass( 'cke_colorblock' );
+ block.element.setHtml( renderColors( panel, type, colorBoxId ) );
+ // The block should not have scrollbars (#5933, #6056)
+ block.element.getDocument().getBody().setStyle( 'overflow', 'hidden' );
+
+ CKEDITOR.ui.fire( 'ready', this );
+
+ var keys = block.keys;
+ var rtl = editor.lang.dir == 'rtl';
+ keys[ rtl ? 37 : 39 ] = 'next'; // ARROW-RIGHT
+ keys[ 40 ] = 'next'; // ARROW-DOWN
+ keys[ 9 ] = 'next'; // TAB
+ keys[ rtl ? 39 : 37 ] = 'prev'; // ARROW-LEFT
+ keys[ 38 ] = 'prev'; // ARROW-UP
+ keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB
+ keys[ 32 ] = 'click'; // SPACE
+ },
+
+ // The automatic colorbox should represent the real color (#6010)
+ onOpen: function() {
+
+ var selection = editor.getSelection(),
+ block = selection && selection.getStartElement(),
+ path = editor.elementPath( block ),
+ color;
+
+ // Find the closest block element.
+ block = path.block || path.blockLimit || editor.document.getBody();
+
+ // The background color might be transparent. In that case, look up the color in the DOM tree.
+ do {
+ color = block && block.getComputedStyle( type == 'back' ? 'background-color' : 'color' ) || 'transparent';
}
- });
+ while ( type == 'back' && color == 'transparent' && block && ( block = block.getParent() ) );
+
+ // The box should never be transparent.
+ if ( !color || color == 'transparent' )
+ color = '#ffffff';
+
+ this._.panel._.iframe.getFrameDocument().getById( colorBoxId ).setStyle( 'background-color', color );
+
+ return color;
+ }
+ });
}
- function renderColors( panel, type )
- {
+ function renderColors( panel, type, colorBoxId ) {
var output = [],
- colors = config.colorButton_colors.split( ',' ),
- total = colors.length + ( config.colorButton_enableMore ? 2 : 1 );
-
- var clickFn = CKEDITOR.tools.addFunction( function( color, type )
- {
- if ( color == '?' )
- {
- var applyColorStyle = arguments.callee;
- function onColorDialogClose( evt )
- {
- this.removeListener( 'ok', onColorDialogClose );
- this.removeListener( 'cancel', onColorDialogClose );
-
- evt.name == 'ok' && applyColorStyle( this.getContentElement( 'picker', 'selectedColor' ).getValue(), type );
- }
-
- editor.openDialog( 'colordialog', function()
- {
- this.on( 'ok', onColorDialogClose );
- this.on( 'cancel', onColorDialogClose );
- } );
-
- return;
+ colors = config.colorButton_colors.split( ',' );
+
+ var clickFn = CKEDITOR.tools.addFunction( function( color, type ) {
+ if ( color == '?' ) {
+ var applyColorStyle = arguments.callee;
+
+ function onColorDialogClose( evt ) {
+ this.removeListener( 'ok', onColorDialogClose );
+ this.removeListener( 'cancel', onColorDialogClose );
+
+ evt.name == 'ok' && applyColorStyle( this.getContentElement( 'picker', 'selectedColor' ).getValue(), type );
}
- editor.focus();
+ editor.openDialog( 'colordialog', function() {
+ this.on( 'ok', onColorDialogClose );
+ this.on( 'cancel', onColorDialogClose );
+ });
- panel.hide();
+ return;
+ }
+ editor.focus();
- editor.fire( 'saveSnapshot' );
+ panel.hide();
- // Clean up any conflicting style within the range.
- new CKEDITOR.style( config['colorButton_' + type + 'Style'], { color : 'inherit' } ).remove( editor.document );
+ editor.fire( 'saveSnapshot' );
- if ( color )
- {
- var colorStyle = config['colorButton_' + type + 'Style'];
+ // Clean up any conflicting style within the range.
+ editor.removeStyle( new CKEDITOR.style( config[ 'colorButton_' + type + 'Style' ], { color: 'inherit' } ) );
- colorStyle.childRule = type == 'back' ?
- // It's better to apply background color as the innermost style. (#3599)
- function(){ return false; } :
- // Fore color style must be applied inside links instead of around it.
- function( element ){ return element.getName() != 'a'; };
+ if ( color ) {
+ var colorStyle = config[ 'colorButton_' + type + 'Style' ];
- new CKEDITOR.style( colorStyle, { color : color } ).apply( editor.document );
- }
+ colorStyle.childRule = type == 'back' ?
+ function( element ) {
+ // It's better to apply background color as the innermost style. (#3599)
+ // Except for "unstylable elements". (#6103)
+ return isUnstylable( element );
+ } : function( element ) {
+ // Fore color style must be applied inside links instead of around it. (#4772,#6908)
+ return !( element.is( 'a' ) || element.getElementsByTag( 'a' ).count() ) || isUnstylable( element );
+ };
+
+ editor.applyStyle( new CKEDITOR.style( colorStyle, { color: color } ) );
+ }
- editor.fire( 'saveSnapshot' );
- });
+ editor.fire( 'saveSnapshot' );
+ });
// Render the "Automatic" button.
- output.push(
- '<a class="cke_colorauto" _cke_focus=1 hidefocus=true' +
- ' title="', lang.auto, '"' +
- ' onclick="CKEDITOR.tools.callFunction(', clickFn, ',null,\'', type, '\');return false;"' +
- ' href="javascript:void(\'', lang.auto, '\')"' +
- ' role="option" aria-posinset="1" aria-setsize="', total, '">' +
- '<table role="presentation" cellspacing=0 cellpadding=0 width="100%">' +
- '<tr>' +
- '<td>' +
- '<span class="cke_colorbox" style="background-color:#000"></span>' +
- '</td>' +
- '<td colspan=7 align=center>',
- lang.auto,
- '</td>' +
- '</tr>' +
- '</table>' +
+ output.push( '<a class="cke_colorauto" _cke_focus=1 hidefocus=true' +
+ ' title="', lang.auto, '"' +
+ ' onclick="CKEDITOR.tools.callFunction(', clickFn, ',null,\'', type, '\');return false;"' +
+ ' href="javascript:void(\'', lang.auto, '\')"' +
+ ' role="option">' +
+ '<table role="presentation" cellspacing=0 cellpadding=0 width="100%">' +
+ '<tr>' +
+ '<td>' +
+ '<span class="cke_colorbox" id="', colorBoxId, '"></span>' +
+ '</td>' +
+ '<td colspan=7 align=center>', lang.auto, '</td>' +
+ '</tr>' +
+ '</table>' +
'</a>' +
'<table role="presentation" cellspacing=0 cellpadding=0 width="100%">' );
// Render the color boxes.
- for ( var i = 0 ; i < colors.length ; i++ )
- {
+ for ( var i = 0; i < colors.length; i++ ) {
if ( ( i % 8 ) === 0 )
output.push( '</tr><tr>' );
@@ -144,108 +166,108 @@ CKEDITOR.plugins.add( 'colorbutton',
// The data can be only a color code (without #) or colorName + color code
// If only a color code is provided, then the colorName is the color with the hash
// Convert the color from RGB to RRGGBB for better compatibility with IE and <font>. See #5676
- if (!parts[1])
+ if ( !parts[ 1 ] )
colorName = '#' + colorName.replace( /^(.)(.)(.)$/, '$1$1$2$2$3$3' );
- var colorLabel = editor.lang.colors[ colorCode ] || colorCode;
- output.push(
- '<td>' +
- '<a class="cke_colorbox" _cke_focus=1 hidefocus=true' +
- ' title="', colorLabel, '"' +
- ' onclick="CKEDITOR.tools.callFunction(', clickFn, ',\'', colorName, '\',\'', type, '\'); return false;"' +
- ' href="javascript:void(\'', colorLabel, '\')"' +
- ' role="option" aria-posinset="', ( i + 2 ), '" aria-setsize="', total, '">' +
- '<span class="cke_colorbox" style="background-color:#', colorCode, '"></span>' +
- '</a>' +
+ var colorLabel = editor.lang.colorbutton.colors[ colorCode ] || colorCode;
+ output.push( '<td>' +
+ '<a class="cke_colorbox" _cke_focus=1 hidefocus=true' +
+ ' title="', colorLabel, '"' +
+ ' onclick="CKEDITOR.tools.callFunction(', clickFn, ',\'', colorName, '\',\'', type, '\'); return false;"' +
+ ' href="javascript:void(\'', colorLabel, '\')"' +
+ ' role="option">' +
+ '<span class="cke_colorbox" style="background-color:#', colorCode, '"></span>' +
+ '</a>' +
'</td>' );
}
// Render the "More Colors" button.
- if ( config.colorButton_enableMore )
- {
- output.push(
- '</tr>' +
+ if ( editor.plugins.colordialog && config.colorButton_enableMore === undefined || config.colorButton_enableMore ) {
+ output.push( '</tr>' +
'<tr>' +
'<td colspan=8 align=center>' +
'<a class="cke_colormore" _cke_focus=1 hidefocus=true' +
' title="', lang.more, '"' +
' onclick="CKEDITOR.tools.callFunction(', clickFn, ',\'?\',\'', type, '\');return false;"' +
- ' href="javascript:void(\'', lang.more, '\')"',
- ' role="option" aria-posinset="', total, '" aria-setsize="', total, '">',
- lang.more,
- '</a>' +
- '</td>' ); // It is later in the code.
+ ' href="javascript:void(\'', lang.more, '\')"', ' role="option">', lang.more, '</a>' +
+ '</td>' ); // tr is later in the code.
}
output.push( '</tr></table>' );
return output.join( '' );
}
+
+ function isUnstylable( ele ) {
+ return ( ele.getAttribute( 'contentEditable' ) == 'false' ) || ele.getAttribute( 'data-nostyle' );
+ }
}
});
/**
- * Whether to enable the "More Colors..." button in the color selectors.
- * @default false
- * @type Boolean
- * @example
- * config.colorButton_enableMore = false;
+ * Whether to enable the **More Colors*** button in the color selectors.
+ *
+ * config.colorButton_enableMore = false;
+ *
+ * @cfg {Boolean} [colorButton_enableMore=true]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.colorButton_enableMore = true;
/**
- * Defines the colors to be displayed in the color selectors. It's a string
- * containing the hexadecimal notation for HTML colors, without the "#" prefix.
+ * Defines the colors to be displayed in the color selectors. This is a string
+ * containing hexadecimal notation for HTML colors, without the `'#'` prefix.
+ *
+ * **Since 3.3:** A color name may optionally be defined by prefixing the entries with
+ * a name and the slash character. For example, `'FontColor1/FF9900'` will be
+ * displayed as the color `#FF9900` in the selector, but will be output as `'FontColor1'`.
*
- * Since 3.3: A name may be optionally defined by prefixing the entries with the
- * name and the slash character. For example, "FontColor1/FF9900" will be
- * displayed as the color #FF9900 in the selector, but will be outputted as "FontColor1".
- * @type String
- * @default '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF'
- * @example
- * // Brazil colors only.
- * config.colorButton_colors = '00923E,F8C100,28166F';
- * @example
- * config.colorButton_colors = 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00'
+ * // Brazil colors only.
+ * config.colorButton_colors = '00923E,F8C100,28166F';
+ *
+ * config.colorButton_colors = 'FontColor1/FF9900,FontColor2/0066CC,FontColor3/F00';
+ *
+ * @cfg {String} [colorButton_colors=see source]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.colorButton_colors =
- '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,' +
+CKEDITOR.config.colorButton_colors = '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,' +
'B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,' +
'F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,' +
'FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,' +
'FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';
/**
- * Holds the style definition to be used to apply the text foreground color.
- * @type Object
- * @example
- * // This is basically the default setting value.
- * config.colorButton_foreStyle =
- * {
- * element : 'span',
- * styles : { 'color' : '#(color)' }
- * };
+ * Stores the style definition that applies the text foreground color.
+ *
+ * // This is actually the default value.
+ * config.colorButton_foreStyle = {
+ * element: 'span',
+ * styles: { color: '#(color)' }
+ * };
+ *
+ * @cfg [colorButton_foreStyle=see source]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.colorButton_foreStyle =
- {
- element : 'span',
- styles : { 'color' : '#(color)' },
- overrides : [ { element : 'font', attributes : { 'color' : null } } ]
- };
+CKEDITOR.config.colorButton_foreStyle = {
+ element: 'span',
+ styles: { 'color': '#(color)' },
+ overrides: [ {
+ element: 'font', attributes: { 'color': null }
+ }]
+};
/**
- * Holds the style definition to be used to apply the text background color.
- * @type Object
- * @example
- * // This is basically the default setting value.
- * config.colorButton_backStyle =
- * {
- * element : 'span',
- * styles : { 'background-color' : '#(color)' }
- * };
+ * Stores the style definition that applies the text background color.
+ *
+ * // This is actually the default value.
+ * config.colorButton_backStyle = {
+ * element: 'span',
+ * styles: { 'background-color': '#(color)' }
+ * };
+ *
+ * @cfg [colorButton_backStyle=see source]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.colorButton_backStyle =
- {
- element : 'span',
- styles : { 'background-color' : '#(color)' }
- };
+CKEDITOR.config.colorButton_backStyle = {
+ element: 'span',
+ styles: { 'background-color': '#(color)' }
+};
diff --git a/devel/third-party/ckeditor/plugins/colordialog/dialogs/colordialog.js b/devel/third-party/ckeditor/plugins/colordialog/dialogs/colordialog.js
index 4454d19..7021434 100644
--- a/devel/third-party/ckeditor/plugins/colordialog/dialogs/colordialog.js
+++ b/devel/third-party/ckeditor/plugins/colordialog/dialogs/colordialog.js
@@ -1,340 +1,340 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dialog.add( 'colordialog', function( editor )
- {
- // Define some shorthands.
- var $el = CKEDITOR.dom.element,
- $doc = CKEDITOR.document,
- $tools = CKEDITOR.tools,
- lang = editor.lang.colordialog;
-
- // Reference the dialog.
- var dialog;
-
- function spacer()
- {
- return {
- type : 'html',
- html : ' '
- };
- }
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- function clearSelected()
- {
- $doc.getById( selHiColorId ).removeStyle( 'background-color' );
- dialog.getContentElement( 'picker', 'selectedColor' ).setValue( '' );
- }
+CKEDITOR.dialog.add( 'colordialog', function( editor ) {
+ // Define some shorthands.
+ var $el = CKEDITOR.dom.element,
+ $doc = CKEDITOR.document,
+ lang = editor.lang.colordialog;
+
+ // Reference the dialog.
+ var dialog;
- function updateSelected( evt )
- {
- if ( ! (evt instanceof CKEDITOR.dom.event ) )
- evt = new CKEDITOR.dom.event( evt );
+ var spacer = {
+ type: 'html',
+ html: ' '
+ };
+
+ var selected;
+
+ function clearSelected() {
+ $doc.getById( selHiColorId ).removeStyle( 'background-color' );
+ dialog.getContentElement( 'picker', 'selectedColor' ).setValue( '' );
+ selected && selected.removeAttribute( 'aria-selected' );
+ selected = null;
+ }
- var target = evt.getTarget(),
- color;
+ function updateSelected( evt ) {
+ var target = evt.data.getTarget(),
+ color;
- if ( target.getName() == 'a' && ( color = target.getChild( 0 ).getHtml() ) )
- dialog.getContentElement( 'picker', 'selectedColor' ).setValue( color );
+ if ( target.getName() == 'td' && ( color = target.getChild( 0 ).getHtml() ) ) {
+ selected = target;
+ selected.setAttribute( 'aria-selected', true );
+ dialog.getContentElement( 'picker', 'selectedColor' ).setValue( color );
}
+ }
- function updateHighlight( event )
- {
- if ( ! (event instanceof CKEDITOR.dom.event ) )
- event = event.data;
+ // Basing black-white decision off of luma scheme using the Rec. 709 version
+ function whiteOrBlack( color ) {
+ color = color.replace( /^#/, '' );
+ for ( var i = 0, rgb = []; i <= 2; i++ )
+ rgb[ i ] = parseInt( color.substr( i * 2, 2 ), 16 );
+ var luma = ( 0.2126 * rgb[ 0 ] ) + ( 0.7152 * rgb[ 1 ] ) + ( 0.0722 * rgb[ 2 ] );
+ return '#' + ( luma >= 165 ? '000' : 'fff' );
+ }
- var target = event.getTarget(),
- color;
+ // Distinguish focused and hover states.
+ var focused, hovered;
- if ( target.getName() == 'a' && ( color = target.getChild( 0 ).getHtml() ) )
- {
- $doc.getById( hicolorId ).setStyle( 'background-color', color );
- $doc.getById( hicolorTextId ).setHtml( color );
+ // Apply highlight style.
+ function updateHighlight( event ) {
+ // Convert to event.
+ !event.name && ( event = new CKEDITOR.event( event ) );
+
+ var isFocus = !( /mouse/ ).test( event.name ),
+ target = event.data.getTarget(),
+ color;
+
+ if ( target.getName() == 'td' && ( color = target.getChild( 0 ).getHtml() ) ) {
+ removeHighlight( event );
+
+ isFocus ? focused = target : hovered = target;
+
+ // Apply outline style to show focus.
+ if ( isFocus ) {
+ target.setStyle( 'border-color', whiteOrBlack( color ) );
+ target.setStyle( 'border-style', 'dotted' );
}
+
+ $doc.getById( hicolorId ).setStyle( 'background-color', color );
+ $doc.getById( hicolorTextId ).setHtml( color );
}
+ }
+
+ function clearHighlight() {
+ var color = focused.getChild( 0 ).getHtml();
+ focused.setStyle( 'border-color', color );
+ focused.setStyle( 'border-style', 'solid' );
+ $doc.getById( hicolorId ).removeStyle( 'background-color' );
+ $doc.getById( hicolorTextId ).setHtml( ' ' );
+ focused = null;
+ }
- function clearHighlight()
- {
+ // Remove previously focused style.
+ function removeHighlight( event ) {
+ var isFocus = !( /mouse/ ).test( event.name ),
+ target = isFocus && focused;
+
+ if ( target ) {
+ var color = target.getChild( 0 ).getHtml();
+ target.setStyle( 'border-color', color );
+ target.setStyle( 'border-style', 'solid' );
+ }
+
+ if ( !( focused || hovered ) ) {
$doc.getById( hicolorId ).removeStyle( 'background-color' );
$doc.getById( hicolorTextId ).setHtml( ' ' );
}
+ }
- var onMouseout = $tools.addFunction( clearHighlight );
-
- var onClick = updateSelected,
- onClickHandler = CKEDITOR.tools.addFunction( onClick );
-
- var onFocus = updateHighlight,
- onBlur = clearHighlight;
+ function onKeyStrokes( evt ) {
+ var domEvt = evt.data;
- var onKeydownHandler = CKEDITOR.tools.addFunction( function( ev )
- {
- ev = new CKEDITOR.dom.event( ev );
- var element = ev.getTarget();
- var relative, nodeToMove;
- var keystroke = ev.getKeystroke();
- var rtl = editor.lang.dir == 'rtl';
+ var element = domEvt.getTarget();
+ var relative, nodeToMove;
+ var keystroke = domEvt.getKeystroke(),
+ rtl = editor.lang.dir == 'rtl';
- switch ( keystroke )
- {
- // UP-ARROW
- case 38 :
- // relative is TR
- if ( ( relative = element.getParent().getParent().getPrevious() ) )
- {
- nodeToMove = relative.getChild( [element.getParent().getIndex(), 0] );
- nodeToMove.focus();
- onBlur( ev, element );
- onFocus( ev, nodeToMove );
- }
- ev.preventDefault();
- break;
+ switch ( keystroke ) {
+ // UP-ARROW
+ case 38:
+ // relative is TR
+ if ( ( relative = element.getParent().getPrevious() ) ) {
+ nodeToMove = relative.getChild( [ element.getIndex() ] );
+ nodeToMove.focus();
+ }
+ domEvt.preventDefault();
+ break;
// DOWN-ARROW
- case 40 :
- // relative is TR
- if ( ( relative = element.getParent().getParent().getNext() ) )
- {
- nodeToMove = relative.getChild( [ element.getParent().getIndex(), 0 ] );
- if ( nodeToMove && nodeToMove.type == 1 )
- {
- nodeToMove.focus();
- onBlur( ev, element );
- onFocus( ev, nodeToMove );
- }
+ case 40:
+ // relative is TR
+ if ( ( relative = element.getParent().getNext() ) ) {
+ nodeToMove = relative.getChild( [ element.getIndex() ] );
+ if ( nodeToMove && nodeToMove.type == 1 ) {
+ nodeToMove.focus();
}
- ev.preventDefault();
- break;
+ }
+ domEvt.preventDefault();
+ break;
+
// SPACE
- // ENTER is already handled as onClick
- case 32 :
- onClick( ev );
- ev.preventDefault();
- break;
+ // ENTER
+ case 32:
+ case 13:
+ updateSelected( evt );
+ domEvt.preventDefault();
+ break;
// RIGHT-ARROW
- case rtl ? 37 : 39 :
- // relative is TD
- if ( ( relative = element.getParent().getNext() ) )
- {
- nodeToMove = relative.getChild( 0 );
- if ( nodeToMove.type == 1 )
- {
- nodeToMove.focus();
- onBlur( ev, element );
- onFocus( ev, nodeToMove );
- ev.preventDefault( true );
- }
- else
- onBlur( null, element );
- }
- // relative is TR
- else if ( ( relative = element.getParent().getParent().getNext() ) )
- {
- nodeToMove = relative.getChild( [ 0, 0 ] );
- if ( nodeToMove && nodeToMove.type == 1 )
- {
- nodeToMove.focus();
- onBlur( ev, element );
- onFocus( ev, nodeToMove );
- ev.preventDefault( true );
- }
- else
- onBlur( null, element );
- }
- break;
-
- // LEFT-ARROW
- case rtl ? 39 : 37 :
- // relative is TD
- if ( ( relative = element.getParent().getPrevious() ) )
- {
- nodeToMove = relative.getChild( 0 );
+ case rtl ? 37:
+ 39 :
+ // relative is TD
+ if ( ( nodeToMove = element.getNext() ) ) {
+ if ( nodeToMove.type == 1 ) {
nodeToMove.focus();
- onBlur( ev, element );
- onFocus( ev, nodeToMove );
- ev.preventDefault( true );
+ domEvt.preventDefault( true );
}
- // relative is TR
- else if ( ( relative = element.getParent().getParent().getPrevious() ) )
- {
- nodeToMove = relative.getLast().getChild( 0 );
+ }
+ // relative is TR
+ else if ( ( relative = element.getParent().getNext() ) ) {
+ nodeToMove = relative.getChild( [ 0 ] );
+ if ( nodeToMove && nodeToMove.type == 1 ) {
nodeToMove.focus();
- onBlur( ev, element );
- onFocus( ev, nodeToMove );
- ev.preventDefault( true );
+ domEvt.preventDefault( true );
}
- else
- onBlur( null, element );
- break;
- default :
- // Do not stop not handled events.
- return;
- }
- });
+ }
+ break;
- function createColorTable()
- {
- // Create the base colors array.
- var aColors = ['00','33','66','99','cc','ff'];
+ // LEFT-ARROW
+ case rtl ? 39:
+ 37 :
+ // relative is TD
+ if ( ( nodeToMove = element.getPrevious() ) ) {
+ nodeToMove.focus();
+ domEvt.preventDefault( true );
+ }
+ // relative is TR
+ else if ( ( relative = element.getParent().getPrevious() ) ) {
+ nodeToMove = relative.getLast();
+ nodeToMove.focus();
+ domEvt.preventDefault( true );
+ }
+ break;
+ default:
+ // Do not stop not handled events.
+ return;
+ }
+ }
- // This function combines two ranges of three values from the color array into a row.
- function appendColorRow( rangeA, rangeB )
- {
- for ( var i = rangeA ; i < rangeA + 3 ; i++ )
- {
- var row = table.$.insertRow(-1);
+ function createColorTable() {
+ table = CKEDITOR.dom.element.createFromHtml( '<table tabIndex="-1" aria-label="' + lang.options + '"' +
+ ' role="grid" style="border-collapse:separate;" cellspacing="0">' +
+ '<caption class="cke_voice_label">' + lang.options + '</caption>' +
+ '<tbody role="presentation"></tbody></table>' );
- for ( var j = rangeB ; j < rangeB + 3 ; j++ )
- {
- for ( var n = 0 ; n < 6 ; n++ )
- {
- appendColorCell( row, '#' + aColors[j] + aColors[n] + aColors[i] );
- }
+ table.on( 'mouseover', updateHighlight );
+ table.on( 'mouseout', removeHighlight );
+
+ // Create the base colors array.
+ var aColors = [ '00', '33', '66', '99', 'cc', 'ff' ];
+
+ // This function combines two ranges of three values from the color array into a row.
+ function appendColorRow( rangeA, rangeB ) {
+ for ( var i = rangeA; i < rangeA + 3; i++ ) {
+ var row = new $el( table.$.insertRow( -1 ) );
+ row.setAttribute( 'role', 'row' );
+
+ for ( var j = rangeB; j < rangeB + 3; j++ ) {
+ for ( var n = 0; n < 6; n++ ) {
+ appendColorCell( row.$, '#' + aColors[ j ] + aColors[ n ] + aColors[ i ] );
}
}
}
+ }
- // This function create a single color cell in the color table.
- function appendColorCell( targetRow, color )
- {
- var cell = new $el( targetRow.insertCell( -1 ) );
- cell.setAttribute( 'class', 'ColorCell' );
- cell.setStyle( 'background-color', color );
-
- cell.setStyle( 'width', '15px' );
- cell.setStyle( 'height', '15px' );
-
- var index = cell.$.cellIndex + 1 + 18 * targetRow.rowIndex;
- cell.append( CKEDITOR.dom.element.createFromHtml(
- '<a href="javascript: void(0);" role="option"' +
- ' aria-posinset="' + index + '"' +
- ' aria-setsize="' + 13 * 18 + '"' +
- ' style="cursor: pointer;display:block;width:100%;height:100% " title="'+ CKEDITOR.tools.htmlEncode( color )+ '"' +
- ' onkeydown="CKEDITOR.tools.callFunction( ' + onKeydownHandler + ', event, this )"' +
- ' onclick="CKEDITOR.tools.callFunction(' + onClickHandler + ', event, this ); return false;"' +
- ' tabindex="-1"><span class="cke_voice_label">' + color + '</span> </a>', CKEDITOR.document ) );
- }
+ // This function create a single color cell in the color table.
+ function appendColorCell( targetRow, color ) {
+ var cell = new $el( targetRow.insertCell( -1 ) );
+ cell.setAttribute( 'class', 'ColorCell' );
+ cell.setAttribute( 'tabIndex', -1 );
+ cell.setAttribute( 'role', 'gridcell' );
- appendColorRow( 0, 0 );
- appendColorRow( 3, 0 );
- appendColorRow( 0, 3 );
- appendColorRow( 3, 3 );
+ cell.on( 'keydown', onKeyStrokes );
+ cell.on( 'click', updateSelected );
+ cell.on( 'focus', updateHighlight );
+ cell.on( 'blur', removeHighlight );
- // Create the last row.
- var oRow = table.$.insertRow(-1) ;
+ cell.setStyle( 'background-color', color );
+ cell.setStyle( 'border', '1px solid ' + color );
- // Create the gray scale colors cells.
- for ( var n = 0 ; n < 6 ; n++ )
- {
- appendColorCell( oRow, '#' + aColors[n] + aColors[n] + aColors[n] ) ;
- }
+ cell.setStyle( 'width', '14px' );
+ cell.setStyle( 'height', '14px' );
- // Fill the row with black cells.
- for ( var i = 0 ; i < 12 ; i++ )
- {
- appendColorCell( oRow, '#000000' ) ;
- }
+ var colorLabel = numbering( 'color_table_cell' );
+ cell.setAttribute( 'aria-labelledby', colorLabel );
+ cell.append( CKEDITOR.dom.element.createFromHtml( '<span id="' + colorLabel + '" class="cke_voice_label">' + color + '</span>', CKEDITOR.document ) );
}
- var table = new $el( 'table' );
- createColorTable();
+ appendColorRow( 0, 0 );
+ appendColorRow( 3, 0 );
+ appendColorRow( 0, 3 );
+ appendColorRow( 3, 3 );
- var numbering = function( id )
- {
- return CKEDITOR.tools.getNextId() + '_' + id;
- },
- hicolorId = numbering( 'hicolor' ),
- hicolorTextId = numbering( 'hicolortext' ),
- selHiColorId = numbering( 'selhicolor' ),
- tableLabelId = numbering( 'color_table_label' );
-
- return {
- title : lang.title,
- minWidth : 360,
- minHeight : 220,
- onLoad : function()
+ // Create the last row.
+ var oRow = new $el( table.$.insertRow( -1 ) );
+ oRow.setAttribute( 'role', 'row' );
+
+ // Create the gray scale colors cells.
+ for ( var n = 0; n < 6; n++ ) {
+ appendColorCell( oRow.$, '#' + aColors[ n ] + aColors[ n ] + aColors[ n ] );
+ }
+
+ // Fill the row with black cells.
+ for ( var i = 0; i < 12; i++ ) {
+ appendColorCell( oRow.$, '#000000' );
+ }
+ }
+
+ var numbering = function( id ) {
+ return CKEDITOR.tools.getNextId() + '_' + id;
+ },
+ hicolorId = numbering( 'hicolor' ),
+ hicolorTextId = numbering( 'hicolortext' ),
+ selHiColorId = numbering( 'selhicolor' ),
+ table;
+
+ createColorTable();
+
+ return {
+ title: lang.title,
+ minWidth: 360,
+ minHeight: 220,
+ onLoad: function() {
+ // Update reference.
+ dialog = this;
+ },
+ onHide: function() {
+ clearSelected();
+ clearHighlight();
+ },
+ contents: [
{
- // Update reference.
- dialog = this;
- },
- contents : [
+ id: 'picker',
+ label: lang.title,
+ accessKey: 'I',
+ elements: [
{
- id : 'picker',
- label : lang.title,
- accessKey : 'I',
- elements :
- [
+ type: 'hbox',
+ padding: 0,
+ widths: [ '70%', '10%', '30%' ],
+ children: [
+ {
+ type: 'html',
+ html: '<div></div>',
+ onLoad: function() {
+ CKEDITOR.document.getById( this.domId ).append( table );
+ },
+ focus: function() {
+ // Restore the previously focused cell,
+ // otherwise put the initial focus on the first table cell.
+ ( focused || this.getElement().getElementsByTag( 'td' ).getItem( 0 ) ).focus();
+ }
+ },
+ spacer,
+ {
+ type: 'vbox',
+ padding: 0,
+ widths: [ '70%', '5%', '25%' ],
+ children: [
{
- type : 'hbox',
- padding : 0,
- widths : [ '70%', '10%', '30%' ],
- children :
- [
- {
- type : 'html',
- html : '<table role="listbox" aria-labelledby="' + tableLabelId + '" onmouseout="CKEDITOR.tools.callFunction( ' + onMouseout + ' );">' + table.getHtml() + '</table>' +
- '<span id="' + tableLabelId + '" class="cke_voice_label">' + lang.options +'</span>',
- onLoad : function()
- {
- var table = CKEDITOR.document.getById( this.domId );
- table.on( 'mouseover', updateHighlight );
- },
- focus: function()
- {
- var firstColor = this.getElement().getElementsByTag( 'a' ).getItem( 0 );
- firstColor.focus();
- }
- },
- spacer(),
- {
- type : 'vbox',
- padding : 0,
- widths : [ '70%', '5%', '25%' ],
- children :
- [
- {
- type : 'html',
- html : '<span>' + lang.highlight +'</span>\
+ type: 'html',
+ html: '<span>' + lang.highlight + '</span>\
<div id="' + hicolorId + '" style="border: 1px solid; height: 74px; width: 74px;"></div>\
<div id="' + hicolorTextId + '"> </div><span>' + lang.selected + '</span>\
<div id="' + selHiColorId + '" style="border: 1px solid; height: 20px; width: 74px;"></div>'
- },
- {
- type : 'text',
- label : lang.selected,
- labelStyle: 'display:none',
- id : 'selectedColor',
- style : 'width: 74px',
- onChange : function()
- {
- // Try to update color preview with new value. If fails, then set it no none.
- try
- {
- $doc.getById( selHiColorId ).setStyle( 'background-color', this.getValue() );
- }
- catch ( e )
- {
- clearSelected();
- }
- }
- },
- spacer(),
- {
- type : 'button',
- id : 'clear',
- style : 'margin-top: 5px',
- label : lang.clear,
- onClick : clearSelected
- }
- ]
- }
- ]
+ },
+ {
+ type: 'text',
+ label: lang.selected,
+ labelStyle: 'display:none',
+ id: 'selectedColor',
+ style: 'width: 74px',
+ onChange: function() {
+ // Try to update color preview with new value. If fails, then set it no none.
+ try {
+ $doc.getById( selHiColorId ).setStyle( 'background-color', this.getValue() );
+ } catch ( e ) {
+ clearSelected();
+ }
}
+ },
+ spacer,
+ {
+ type: 'button',
+ id: 'clear',
+ style: 'margin-top: 5px',
+ label: lang.clear,
+ onClick: clearSelected
+ }
]
}
+ ]
+ }
]
- };
- }
- );
+ }
+ ]
+ };
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/af.js b/devel/third-party/ckeditor/plugins/colordialog/lang/af.js
new file mode 100644
index 0000000..003c466
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/af.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'af', {
+ clear: 'Herstel',
+ highlight: 'Aktief',
+ options: 'Kleuropsies',
+ selected: 'Geselekteer',
+ title: 'Kies kleur'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ar.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ar.js
new file mode 100644
index 0000000..b0aeba2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ar.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ar', {
+ clear: 'Ù
سØ',
+ highlight: 'Ø¥ÙÙØ§Ø¡ Ø§ÙØ¶ÙØ¡',
+ options: 'Color Options', // MISSING
+ selected: 'Ù
ÙØ®ØªØ§Ø±',
+ title: 'اختر ÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/bg.js b/devel/third-party/ckeditor/plugins/colordialog/lang/bg.js
new file mode 100644
index 0000000..7089825
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/bg.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'bg', {
+ clear: 'ÐзÑиÑÑване',
+ highlight: 'ÐÑвеÑÑване',
+ options: 'ЦвеÑови опÑии',
+ selected: 'ÐзбеÑеÑе ÑвÑÑ',
+ title: 'ÐзбеÑеÑе ÑвÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/bn.js b/devel/third-party/ckeditor/plugins/colordialog/lang/bn.js
new file mode 100644
index 0000000..8c486aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/bn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'bn', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/bs.js b/devel/third-party/ckeditor/plugins/colordialog/lang/bs.js
new file mode 100644
index 0000000..e0e4708
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/bs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'bs', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ca.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ca.js
new file mode 100644
index 0000000..374f1e6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ca', {
+ clear: 'Neteja',
+ highlight: 'Destacat',
+ options: 'Opcions del color',
+ selected: 'Seleccionat',
+ title: 'Selecciona el color'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/cs.js b/devel/third-party/ckeditor/plugins/colordialog/lang/cs.js
new file mode 100644
index 0000000..a953390
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/cs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'cs', {
+ clear: 'VyÄistit',
+ highlight: 'Zvýraznit',
+ options: 'Nastavenà barvy',
+ selected: 'Vybráno',
+ title: 'VýbÄr barvy'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/cy.js b/devel/third-party/ckeditor/plugins/colordialog/lang/cy.js
new file mode 100644
index 0000000..370ea00
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/cy.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'cy', {
+ clear: 'Clirio',
+ highlight: 'Uwcholeuo',
+ options: 'Opsiynau Lliw',
+ selected: 'Dewiswyd',
+ title: 'Dewis lliw'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/da.js b/devel/third-party/ckeditor/plugins/colordialog/lang/da.js
new file mode 100644
index 0000000..40d5c68
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/da.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'da', {
+ clear: 'Nulstil',
+ highlight: 'Markér',
+ options: 'Farvemuligheder',
+ selected: 'Valgt farve',
+ title: 'Vælg farve'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/de.js b/devel/third-party/ckeditor/plugins/colordialog/lang/de.js
new file mode 100644
index 0000000..8279db0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/de.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'de', {
+ clear: 'Entfernen',
+ highlight: 'Hervorheben',
+ options: 'Farbeoptionen',
+ selected: 'Ausgewählte Farbe',
+ title: 'Farbe wählen'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/el.js b/devel/third-party/ckeditor/plugins/colordialog/lang/el.js
new file mode 100644
index 0000000..e48e59e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/el.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'el', {
+ clear: 'ÎαθαÏιÏμÏÏ',
+ highlight: 'ΣήμανÏη',
+ options: 'ÎÏιλογÎÏ Î§ÏÏμάÏÏν',
+ selected: 'ÎÏιλεγμÎνο ΧÏÏμα',
+ title: 'ÎÏιλογή ΧÏÏμαÏοÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/en-au.js b/devel/third-party/ckeditor/plugins/colordialog/lang/en-au.js
new file mode 100644
index 0000000..366d2bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/en-au.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'en-au', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/en-ca.js b/devel/third-party/ckeditor/plugins/colordialog/lang/en-ca.js
new file mode 100644
index 0000000..468dc77
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/en-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'en-ca', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/en-gb.js b/devel/third-party/ckeditor/plugins/colordialog/lang/en-gb.js
new file mode 100644
index 0000000..bcabdad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/en-gb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'en-gb', {
+ clear: 'Clear',
+ highlight: 'Highlight',
+ options: 'Colour Options',
+ selected: 'Selected Colour',
+ title: 'Select colour'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/en.js b/devel/third-party/ckeditor/plugins/colordialog/lang/en.js
new file mode 100644
index 0000000..8158878
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/en.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'en', {
+ clear: 'Clear',
+ highlight: 'Highlight',
+ options: 'Color Options',
+ selected: 'Selected Color',
+ title: 'Select color'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/eo.js b/devel/third-party/ckeditor/plugins/colordialog/lang/eo.js
new file mode 100644
index 0000000..6d412ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/eo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'eo', {
+ clear: 'Forigi',
+ highlight: 'Detaloj',
+ options: 'Opcioj pri koloroj',
+ selected: 'Selektita koloro',
+ title: 'Selekti koloron'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/es.js b/devel/third-party/ckeditor/plugins/colordialog/lang/es.js
new file mode 100644
index 0000000..9f9d945
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/es.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'es', {
+ clear: 'Borrar',
+ highlight: 'Muestra',
+ options: 'Opciones de colores',
+ selected: 'Elegido',
+ title: 'Elegir color'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/et.js b/devel/third-party/ckeditor/plugins/colordialog/lang/et.js
new file mode 100644
index 0000000..ed8b4b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/et.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'et', {
+ clear: 'Eemalda',
+ highlight: 'Näidis',
+ options: 'Värvi valikud',
+ selected: 'Valitud värv',
+ title: 'Värvi valimine'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/eu.js b/devel/third-party/ckeditor/plugins/colordialog/lang/eu.js
new file mode 100644
index 0000000..ac661f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/eu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'eu', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/fa.js b/devel/third-party/ckeditor/plugins/colordialog/lang/fa.js
new file mode 100644
index 0000000..e0fa9a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/fa.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'fa', {
+ clear: 'پاک کردÙ',
+ highlight: 'Ù
تÙ
Ø§ÛØ²',
+ options: 'گزÛÙÙÙØ§Û رÙÚ¯',
+ selected: 'رÙÚ¯ Ø§ÙØªØ®Ø§Ø¨ شدÙ',
+ title: 'Ø§ÙØªØ®Ø§Ø¨ رÙÚ¯'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/fi.js b/devel/third-party/ckeditor/plugins/colordialog/lang/fi.js
new file mode 100644
index 0000000..6c2b847
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/fi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'fi', {
+ clear: 'Poista',
+ highlight: 'Korostus',
+ options: 'Värin ominaisuudet',
+ selected: 'Valittu',
+ title: 'Valitse väri'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/fo.js b/devel/third-party/ckeditor/plugins/colordialog/lang/fo.js
new file mode 100644
index 0000000..796ff9d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/fo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'fo', {
+ clear: 'Strika',
+ highlight: 'Framheva',
+ options: 'Litmøguleikar',
+ selected: 'Valdur litur',
+ title: 'Vel lit'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/colordialog/lang/fr-ca.js
new file mode 100644
index 0000000..ae7bc3a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/fr-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'fr-ca', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/fr.js b/devel/third-party/ckeditor/plugins/colordialog/lang/fr.js
new file mode 100644
index 0000000..0a5663e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/fr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'fr', {
+ clear: 'Effacer',
+ highlight: 'Détails',
+ options: 'Option des couleurs',
+ selected: 'Couleur choisie',
+ title: 'Choisir une couleur'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/gl.js b/devel/third-party/ckeditor/plugins/colordialog/lang/gl.js
new file mode 100644
index 0000000..3166ac7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/gl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'gl', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/gu.js b/devel/third-party/ckeditor/plugins/colordialog/lang/gu.js
new file mode 100644
index 0000000..2668384
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/gu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'gu', {
+ clear: 'સાફ àªàª°àªµà«àª',
+ highlight: 'હાàªàªàª',
+ options: 'રàªàªàª¨àª¾ વિàªàª²à«àªª',
+ selected: 'પસàªàª¦ àªàª°à«àª²à« રàªàª',
+ title: 'રàªàª પસàªàª¦ àªàª°à«'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/he.js b/devel/third-party/ckeditor/plugins/colordialog/lang/he.js
new file mode 100644
index 0000000..277c3ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/he.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'he', {
+ clear: '× ××§××',
+ highlight: 'ס××××',
+ options: '×פשר×××ת צ××¢',
+ selected: '×××ר×',
+ title: '×××רת צ××¢'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/hi.js b/devel/third-party/ckeditor/plugins/colordialog/lang/hi.js
new file mode 100644
index 0000000..c2ebbd6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/hi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'hi', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/hr.js b/devel/third-party/ckeditor/plugins/colordialog/lang/hr.js
new file mode 100644
index 0000000..5a1cd54
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/hr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'hr', {
+ clear: 'OÄisti',
+ highlight: 'Istaknuto',
+ options: 'Opcije boje',
+ selected: 'Odabrana boja',
+ title: 'Odaberi boju'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/hu.js b/devel/third-party/ckeditor/plugins/colordialog/lang/hu.js
new file mode 100644
index 0000000..e9734ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/hu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'hu', {
+ clear: 'ÃrÃtés',
+ highlight: 'NagyÃtás',
+ options: 'SzÃn opciók',
+ selected: 'Kiválasztott',
+ title: 'Válasszon szÃnt'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/is.js b/devel/third-party/ckeditor/plugins/colordialog/lang/is.js
new file mode 100644
index 0000000..7b7866d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/is.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'is', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/it.js b/devel/third-party/ckeditor/plugins/colordialog/lang/it.js
new file mode 100644
index 0000000..3af8b68
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/it.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'it', {
+ clear: 'cancella',
+ highlight: 'Evidenzia',
+ options: 'Opzioni colore',
+ selected: 'Seleziona il colore',
+ title: 'Selezionare il colore'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ja.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ja.js
new file mode 100644
index 0000000..cb249b0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ja.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ja', {
+ clear: 'ã¯ãªã¢',
+ highlight: 'ãã¤ã©ã¤ã',
+ options: 'ã«ã©ã¼ãªãã·ã§ã³',
+ selected: '鏿ãããè²',
+ title: 'è²é¸æ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ka.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ka.js
new file mode 100644
index 0000000..a446966
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ka.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ka', {
+ clear: 'ááá¡á£á¤áááááá',
+ highlight: 'á©áááááá',
+ options: 'á¤áá áá¡ ááá áááá¢á ááá',
+ selected: 'áá á©áá£áá á¤áá á',
+ title: 'á¤áá áá¡ á¨ááªááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/km.js b/devel/third-party/ckeditor/plugins/colordialog/lang/km.js
new file mode 100644
index 0000000..c0e6378
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/km.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'km', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ko.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ko.js
new file mode 100644
index 0000000..171e426
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ko.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ko', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ku.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ku.js
new file mode 100644
index 0000000..9894a8c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ku.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ku', {
+ clear: 'پاککردÙÙÙÙ',
+ highlight: 'ÙÛØ´Ø§ÙکردÙ',
+ options: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÚÙÙÚ¯ÙکاÙ',
+ selected: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯Ø±Ø§',
+ title: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÚÙÙÚ¯'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/lt.js b/devel/third-party/ckeditor/plugins/colordialog/lang/lt.js
new file mode 100644
index 0000000..c193f6f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/lt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'lt', {
+ clear: 'Išvalyti',
+ highlight: 'Paryškinti',
+ options: 'Spalvos nustatymai',
+ selected: 'Pasirinkta spalva',
+ title: 'Pasirinkite spalvÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/lv.js b/devel/third-party/ckeditor/plugins/colordialog/lang/lv.js
new file mode 100644
index 0000000..206cc42
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/lv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'lv', {
+ clear: 'Notīrīt',
+ highlight: 'Paraugs',
+ options: 'KrÄsas uzstÄdÄ«jumi',
+ selected: 'IzvÄlÄtÄ krÄsa',
+ title: 'IzvÄlies krÄsu'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/mk.js b/devel/third-party/ckeditor/plugins/colordialog/lang/mk.js
new file mode 100644
index 0000000..d510f0c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/mk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'mk', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/mn.js b/devel/third-party/ckeditor/plugins/colordialog/lang/mn.js
new file mode 100644
index 0000000..7dfa915
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/mn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'mn', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ms.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ms.js
new file mode 100644
index 0000000..bc091a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ms.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ms', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/nb.js b/devel/third-party/ckeditor/plugins/colordialog/lang/nb.js
new file mode 100644
index 0000000..95fbfaa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/nb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'nb', {
+ clear: 'Tøm',
+ highlight: 'Merk',
+ options: 'Alternativer for farge',
+ selected: 'Valgt',
+ title: 'Velg farge'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/nl.js b/devel/third-party/ckeditor/plugins/colordialog/lang/nl.js
new file mode 100644
index 0000000..d00d09e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/nl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'nl', {
+ clear: 'Wissen',
+ highlight: 'Actief',
+ options: 'Kleuropties',
+ selected: 'Geselecteerde kleur',
+ title: 'Selecteer kleur'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/no.js b/devel/third-party/ckeditor/plugins/colordialog/lang/no.js
new file mode 100644
index 0000000..f8e3f19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/no.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'no', {
+ clear: 'Tøm',
+ highlight: 'Merk',
+ options: 'Alternativer for farge',
+ selected: 'Valgt',
+ title: 'Velg farge'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/pl.js b/devel/third-party/ckeditor/plugins/colordialog/lang/pl.js
new file mode 100644
index 0000000..66d9f55
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/pl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'pl', {
+ clear: 'WyczyÅÄ',
+ highlight: 'Zaznacz',
+ options: 'Opcje koloru',
+ selected: 'Wybrany',
+ title: 'Wybierz kolor'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/pt-br.js b/devel/third-party/ckeditor/plugins/colordialog/lang/pt-br.js
new file mode 100644
index 0000000..d8b52a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/pt-br.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'pt-br', {
+ clear: 'Limpar',
+ highlight: 'Grifar',
+ options: 'Opções de Cor',
+ selected: 'Cor Selecionada',
+ title: 'Selecione uma Cor'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/pt.js b/devel/third-party/ckeditor/plugins/colordialog/lang/pt.js
new file mode 100644
index 0000000..12e0b6f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/pt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'pt', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ro.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ro.js
new file mode 100644
index 0000000..b332a50
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ro.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ro', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ru.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ru.js
new file mode 100644
index 0000000..809707c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ru.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ru', {
+ clear: 'ÐÑиÑÑиÑÑ',
+ highlight: 'Ðод кÑÑÑоÑом',
+ options: 'ÐаÑÑÑойки ÑвеÑа',
+ selected: 'ÐÑбÑаннÑй ÑвеÑ',
+ title: 'ÐÑбеÑиÑе ÑвеÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/sk.js b/devel/third-party/ckeditor/plugins/colordialog/lang/sk.js
new file mode 100644
index 0000000..bf4174f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/sk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'sk', {
+ clear: 'VyÄistiÅ¥',
+ highlight: 'Zvýrazniť',
+ options: 'Možnosti farby',
+ selected: 'Vybraná farba',
+ title: 'Vyberte farbu'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/sl.js b/devel/third-party/ckeditor/plugins/colordialog/lang/sl.js
new file mode 100644
index 0000000..fc841d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/sl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'sl', {
+ clear: 'PoÄisti',
+ highlight: 'Poudarjeno',
+ options: 'Color Options', // MISSING
+ selected: 'Izbrano',
+ title: 'Izberi barvo'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/colordialog/lang/sr-latn.js
new file mode 100644
index 0000000..bb328f3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/sr-latn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'sr-latn', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/sr.js b/devel/third-party/ckeditor/plugins/colordialog/lang/sr.js
new file mode 100644
index 0000000..c0d14b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/sr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'sr', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/sv.js b/devel/third-party/ckeditor/plugins/colordialog/lang/sv.js
new file mode 100644
index 0000000..f456cbe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/sv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'sv', {
+ clear: 'Rensa',
+ highlight: 'Markera',
+ options: 'Färgalternativ',
+ selected: 'Vald färg',
+ title: 'Välj färg'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/th.js b/devel/third-party/ckeditor/plugins/colordialog/lang/th.js
new file mode 100644
index 0000000..68c2c08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/th.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'th', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/tr.js b/devel/third-party/ckeditor/plugins/colordialog/lang/tr.js
new file mode 100644
index 0000000..139b4de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/tr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'tr', {
+ clear: 'Temizle',
+ highlight: 'İÅaretle',
+ options: 'Renk Seçenekleri',
+ selected: 'SeçilmiÅ',
+ title: 'Renk seç'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/ug.js b/devel/third-party/ckeditor/plugins/colordialog/lang/ug.js
new file mode 100644
index 0000000..c0907db
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/ug.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'ug', {
+ clear: 'تازÙÙØ§',
+ highlight: 'ÙÙØ±Ûت',
+ options: 'رÛÚ ØªØ§ÙÙØ§ÙÙ
ÙØ³Ù',
+ selected: 'رÛÚ ØªØ§ÙÙØ§Ú',
+ title: 'رÛÚ ØªØ§ÙÙØ§Ú'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/uk.js b/devel/third-party/ckeditor/plugins/colordialog/lang/uk.js
new file mode 100644
index 0000000..a3f5fd9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/uk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'uk', {
+ clear: 'ÐÑиÑÑиÑи',
+ highlight: 'ÐолÑÑ, на Ñкий вказÑÑ ÐºÑÑÑоÑ',
+ options: 'ÐпÑÑÑ ÐºÐ¾Ð»ÑоÑÑв',
+ selected: 'ÐбÑаний колÑÑ',
+ title: 'ÐбÑаÑи колÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/vi.js b/devel/third-party/ckeditor/plugins/colordialog/lang/vi.js
new file mode 100644
index 0000000..f873bab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/vi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'vi', {
+ clear: 'Xóa bá»',
+ highlight: 'Mà u chá»n',
+ options: 'Tùy chá»n mà u',
+ selected: 'Mà u Äã chá»n',
+ title: 'Chá»n mà u'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/colordialog/lang/zh-cn.js
new file mode 100644
index 0000000..9fa1b82
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/zh-cn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'zh-cn', {
+ clear: 'æ¸
é¤',
+ highlight: 'é«äº®',
+ options: 'é¢è²é项',
+ selected: 'éæ©é¢è²',
+ title: 'éæ©é¢è²'
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/lang/zh.js b/devel/third-party/ckeditor/plugins/colordialog/lang/zh.js
new file mode 100644
index 0000000..a1ef8ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/colordialog/lang/zh.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'colordialog', 'zh', {
+ clear: 'Clear', // MISSING
+ highlight: 'Highlight', // MISSING
+ options: 'Color Options', // MISSING
+ selected: 'Selected Color', // MISSING
+ title: 'Select color' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/colordialog/plugin.js b/devel/third-party/ckeditor/plugins/colordialog/plugin.js
index 7006d68..ea7b010 100644
--- a/devel/third-party/ckeditor/plugins/colordialog/plugin.js
+++ b/devel/third-party/ckeditor/plugins/colordialog/plugin.js
@@ -1,13 +1,65 @@
-( function()
-{
- CKEDITOR.plugins.colordialog =
- {
- init : function( editor )
- {
- editor.addCommand( 'colordialog', new CKEDITOR.dialogCommand( 'colordialog' ) );
- CKEDITOR.dialog.add( 'colordialog', this.path + 'dialogs/colordialog.js' );
- }
- };
-
- CKEDITOR.plugins.add( 'colordialog', CKEDITOR.plugins.colordialog );
-} )();
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.colordialog = {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ editor.addCommand( 'colordialog', new CKEDITOR.dialogCommand( 'colordialog' ) );
+ CKEDITOR.dialog.add( 'colordialog', this.path + 'dialogs/colordialog.js' );
+
+ /**
+ * Open up color dialog and to receive the selected color.
+ *
+ * @param {Function} callback The callback when color dialog is closed
+ * @param {String} callback.color The color value received if selected on the dialog.
+ * @param [scope] The scope in which the callback will be bound.
+ * @member CKEDITOR.editor
+ */
+ editor.getColorFromDialog = function( callback, scope ) {
+ var onClose = function( evt ) {
+ releaseHandlers( this );
+ var color = evt.name == 'ok' ? this.getValueOf( 'picker', 'selectedColor' ) : null;
+ callback.call( scope, color );
+ };
+ var releaseHandlers = function( dialog ) {
+ dialog.removeListener( 'ok', onClose );
+ dialog.removeListener( 'cancel', onClose );
+ };
+ var bindToDialog = function( dialog ) {
+ dialog.on( 'ok', onClose );
+ dialog.on( 'cancel', onClose );
+ };
+
+ editor.execCommand( 'colordialog' );
+
+ if ( editor._.storedDialogs && editor._.storedDialogs.colordialog )
+ bindToDialog( editor._.storedDialogs.colordialog );
+ else {
+ CKEDITOR.on( 'dialogDefinition', function( e ) {
+ if ( e.data.name != 'colordialog' )
+ return;
+
+ var definition = e.data.definition;
+
+ e.removeListener();
+ definition.onLoad = CKEDITOR.tools.override( definition.onLoad,
+ function( orginal ) {
+ return function() {
+ bindToDialog( this );
+ definition.onLoad = orginal;
+ if ( typeof orginal == 'function' )
+ orginal.call( this );
+ };
+ } );
+ } );
+ }
+ };
+
+
+ }
+};
+
+CKEDITOR.plugins.add( 'colordialog', CKEDITOR.plugins.colordialog );
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/af.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/af.js
new file mode 100644
index 0000000..43291e6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'af', {
+ options: 'Konteks Spyskaart-opsies'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ar.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ar.js
new file mode 100644
index 0000000..c072a9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ar', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/bg.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/bg.js
new file mode 100644
index 0000000..dc9a530
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'bg', {
+ options: 'ÐпÑии на конÑекÑÑноÑо менÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/bn.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/bn.js
new file mode 100644
index 0000000..4070e13
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'bn', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/bs.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/bs.js
new file mode 100644
index 0000000..a6f0575
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'bs', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ca.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ca.js
new file mode 100644
index 0000000..928017d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ca', {
+ options: 'Opcions del menú contextual'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/cs.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/cs.js
new file mode 100644
index 0000000..703e8b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'cs', {
+ options: 'Nastavenà kontextové nabÃdky'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/cy.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/cy.js
new file mode 100644
index 0000000..3e229cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'cy', {
+ options: 'Opsiynau Dewislen Cyd-destun'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/da.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/da.js
new file mode 100644
index 0000000..467b689
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'da', {
+ options: 'Muligheder for hjælpemenu'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/de.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/de.js
new file mode 100644
index 0000000..5bd2271
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'de', {
+ options: 'Kontextmenü Optionen'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/el.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/el.js
new file mode 100644
index 0000000..0576340
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'el', {
+ options: 'ÎÏιλογÎÏ ÎναδÏ
ÏμενοÏ
ÎενοÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/en-au.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/en-au.js
new file mode 100644
index 0000000..fb73d85
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'en-au', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/en-ca.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/en-ca.js
new file mode 100644
index 0000000..8f79665
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'en-ca', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/en-gb.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/en-gb.js
new file mode 100644
index 0000000..cb2c8f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'en-gb', {
+ options: 'Context Menu Options'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/en.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/en.js
new file mode 100644
index 0000000..a9a8104
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'en', {
+ options: 'Context Menu Options'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/eo.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/eo.js
new file mode 100644
index 0000000..7ba2e28
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'eo', {
+ options: 'Opcioj de Kunteksta Menuo'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/es.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/es.js
new file mode 100644
index 0000000..4e871a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'es', {
+ options: 'Opciones del menú contextual'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/et.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/et.js
new file mode 100644
index 0000000..20af0ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'et', {
+ options: 'Kontekstimenüü valikud'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/eu.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/eu.js
new file mode 100644
index 0000000..4e9b1ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'eu', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/fa.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/fa.js
new file mode 100644
index 0000000..c177a6e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'fa', {
+ options: 'گزÛÙÙÙØ§Û Ù
ÙÙÛ Ø²Ù
ÛÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/fi.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/fi.js
new file mode 100644
index 0000000..4d146d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'fi', {
+ options: 'Pikavalikon ominaisuudet'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/fo.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/fo.js
new file mode 100644
index 0000000..51121b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'fo', {
+ options: 'Context Menu Options'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/fr-ca.js
new file mode 100644
index 0000000..f697446
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'fr-ca', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/fr.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/fr.js
new file mode 100644
index 0000000..b2dde08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'fr', {
+ options: 'Options du menu contextuel'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/gl.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/gl.js
new file mode 100644
index 0000000..9290cbe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'gl', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/gu.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/gu.js
new file mode 100644
index 0000000..d845c69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'gu', {
+ options: 'àªà«àª¨à«àª¤à«àªà«àª·à«àª¤à« મà«àª¨à«àª¨àª¾ વિàªàª²à«àªªà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/he.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/he.js
new file mode 100644
index 0000000..7b9cc9d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'he', {
+ options: '×פשר×××ת תפר×× ××קשר'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/hi.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/hi.js
new file mode 100644
index 0000000..eaac8a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'hi', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/hr.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/hr.js
new file mode 100644
index 0000000..8e917e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'hr', {
+ options: 'Opcije izbornika'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/hu.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/hu.js
new file mode 100644
index 0000000..0379317
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'hu', {
+ options: 'Helyi menü opciók'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/is.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/is.js
new file mode 100644
index 0000000..391f92c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'is', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/it.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/it.js
new file mode 100644
index 0000000..9624c40
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'it', {
+ options: 'Opzioni del menù contestuale'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ja.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ja.js
new file mode 100644
index 0000000..6725b8b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ja', {
+ options: 'ã³ã³ããã¹ãã¡ãã¥ã¼ãªãã·ã§ã³'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ka.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ka.js
new file mode 100644
index 0000000..99dd0d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ka', {
+ options: 'áááá¢áá¥á¡á¢á£á á ááááá£á¡ ááá áááá¢á ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/km.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/km.js
new file mode 100644
index 0000000..0136c1c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'km', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ko.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ko.js
new file mode 100644
index 0000000..34f718c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ko', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ku.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ku.js
new file mode 100644
index 0000000..8c5ba28
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ku', {
+ options: 'ÙÛÚµØ¨ÚØ§Ø±Ø¯ÛÛ ÙÛØ³ØªÛÛ Ú©ÙÛÚ©Û Ø¯ÛØ³ØªÛ ÚØ§Ø³Øª'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/lt.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/lt.js
new file mode 100644
index 0000000..5458e72
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'lt', {
+ options: 'Kontekstinio meniu parametrai'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/lv.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/lv.js
new file mode 100644
index 0000000..1613d69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'lv', {
+ options: 'UznirstoÅ¡Äs izvÄlnes uzstÄdÄ«jumi'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/mk.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/mk.js
new file mode 100644
index 0000000..7ba0de2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'mk', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/mn.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/mn.js
new file mode 100644
index 0000000..30d2587
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'mn', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ms.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ms.js
new file mode 100644
index 0000000..30d5b79
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ms', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/nb.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/nb.js
new file mode 100644
index 0000000..5f44e0e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'nb', {
+ options: 'Alternativer for høyreklikkmeny'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/nl.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/nl.js
new file mode 100644
index 0000000..1ce76b3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'nl', {
+ options: 'Contextmenu opties'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/no.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/no.js
new file mode 100644
index 0000000..92c0d33
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'no', {
+ options: 'Alternativer for høyreklikkmeny'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/pl.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/pl.js
new file mode 100644
index 0000000..493e903
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'pl', {
+ options: 'Opcje menu kontekstowego'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/pt-br.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/pt-br.js
new file mode 100644
index 0000000..672b7cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'pt-br', {
+ options: 'Opções Menu de Contexto'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/pt.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/pt.js
new file mode 100644
index 0000000..9f23342
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'pt', {
+ options: 'Menu de opções de contexto'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ro.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ro.js
new file mode 100644
index 0000000..d07e624
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ro', {
+ options: 'OpÈiuni Meniu Contextual'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ru.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ru.js
new file mode 100644
index 0000000..2d0563c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ru', {
+ options: 'ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑекÑÑного менÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/sk.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/sk.js
new file mode 100644
index 0000000..5684591
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'sk', {
+ options: 'Možnosti kontextového menu'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/sl.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/sl.js
new file mode 100644
index 0000000..128a905
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'sl', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/sr-latn.js
new file mode 100644
index 0000000..f4bfd41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'sr-latn', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/sr.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/sr.js
new file mode 100644
index 0000000..a4580cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'sr', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/sv.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/sv.js
new file mode 100644
index 0000000..755947e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'sv', {
+ options: 'Context Menu Options'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/th.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/th.js
new file mode 100644
index 0000000..fa6b097
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'th', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/tr.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/tr.js
new file mode 100644
index 0000000..77ec969
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'tr', {
+ options: 'İçerik Menüsü Seçenekleri'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/ug.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/ug.js
new file mode 100644
index 0000000..7a86d3d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'ug', {
+ options: 'ÙÙØ³Ùا ÙÙÙ ØªÙØ²ÙÙ
ÙÙ٠تاÙÙØ§ÙÙ
ÙØ³Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/uk.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/uk.js
new file mode 100644
index 0000000..f78d37b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'uk', {
+ options: 'ÐпÑÑÑ ÐºÐ¾Ð½ÑекÑÑного менÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/vi.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/vi.js
new file mode 100644
index 0000000..21e021b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'vi', {
+ options: 'Tùy chá»n menu bá» xung'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/zh-cn.js
new file mode 100644
index 0000000..b0aa7ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'zh-cn', {
+ options: 'å¿«æ·èåé项'
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/lang/zh.js b/devel/third-party/ckeditor/plugins/contextmenu/lang/zh.js
new file mode 100644
index 0000000..8362c39
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/contextmenu/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'contextmenu', 'zh', {
+ options: 'Context Menu Options' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/contextmenu/plugin.js b/devel/third-party/ckeditor/plugins/contextmenu/plugin.js
index b009dee..70f47a7 100644
--- a/devel/third-party/ckeditor/plugins/contextmenu/plugin.js
+++ b/devel/third-party/ckeditor/plugins/contextmenu/plugin.js
@@ -1,276 +1,166 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'contextmenu',
-{
- requires : [ 'menu' ],
-
- beforeInit : function( editor )
- {
- editor.contextMenu = new CKEDITOR.plugins.contextMenu( editor );
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- editor.addCommand( 'contextMenu',
- {
- exec : function()
- {
- editor.contextMenu.show( editor.document.getBody() );
+CKEDITOR.plugins.add( 'contextmenu', {
+ requires: 'menu',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+
+ // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318).
+ onLoad: function() {
+ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass({
+ base: CKEDITOR.menu,
+
+ $: function( editor ) {
+ this.base.call( this, editor, {
+ panel: {
+ className: 'cke_menu_panel',
+ attributes: {
+ 'aria-label': editor.lang.contextmenu.options
+ }
}
- });
- }
-});
-
-CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass(
-{
- $ : function( editor )
- {
- this.id = 'cke_' + CKEDITOR.tools.getNextNumber();
- this.editor = editor;
- this._.listeners = [];
- this._.functionId = CKEDITOR.tools.addFunction( function( commandName )
- {
- this._.panel.hide();
- editor.focus();
- editor.execCommand( commandName );
+ });
},
- this);
- this.definition =
- {
- panel:
- {
- className : editor.skinClass + ' cke_contextmenu',
- attributes :
- {
- 'aria-label' : editor.lang.contextmenu.options
- }
- }
- };
- },
+ proto: {
+ addTarget: function( element, nativeContextMenuOnCtrl ) {
+ // Opera doesn't support 'contextmenu' event, we have duo approaches employed here:
+ // 1. Inherit the 'button override' hack we introduced in v2 (#4530), while this require the Opera browser
+ // option 'Allow script to detect context menu/right click events' to be always turned on.
+ // 2. Considering the fact that ctrl/meta key is not been occupied
+ // for multiple range selecting (like Gecko), we use this key
+ // combination as a fallback for triggering context-menu. (#4530)
+ if ( CKEDITOR.env.opera && !( 'oncontextmenu' in document.body ) ) {
+ var contextMenuOverrideButton;
+ element.on( 'mousedown', function( evt ) {
+ evt = evt.data;
+ if ( evt.$.button != 2 ) {
+ if ( evt.getKeystroke() == CKEDITOR.CTRL + 1 )
+ element.fire( 'contextmenu', evt );
+ return;
+ }
+
+ if ( nativeContextMenuOnCtrl && ( CKEDITOR.env.mac ? evt.$.metaKey : evt.$.ctrlKey ) )
+ return;
+
+ var target = evt.getTarget();
+
+ if ( !contextMenuOverrideButton ) {
+ var ownerDoc = target.getDocument();
+ contextMenuOverrideButton = ownerDoc.createElement( 'input' );
+ contextMenuOverrideButton.$.type = 'button';
+ ownerDoc.getBody().append( contextMenuOverrideButton );
+ }
+
+ contextMenuOverrideButton.setAttribute( 'style', 'position:absolute;top:' + ( evt.$.clientY - 2 ) +
+ 'px;left:' + ( evt.$.clientX - 2 ) +
+ 'px;width:5px;height:5px;opacity:0.01' );
+
+ });
+
+ element.on( 'mouseup', function( evt ) {
+ if ( contextMenuOverrideButton ) {
+ contextMenuOverrideButton.remove();
+ contextMenuOverrideButton = undefined;
+ // Simulate 'contextmenu' event.
+ element.fire( 'contextmenu', evt.data );
+ }
+ });
+ }
- _ :
- {
- onMenu : function( offsetParent, corner, offsetX, offsetY )
- {
- var menu = this._.menu,
- editor = this.editor;
+ element.on( 'contextmenu', function( event ) {
+ var domEvent = event.data;
- if ( menu )
- {
- menu.hide();
- menu.removeAll();
- }
- else
- {
- menu = this._.menu = new CKEDITOR.menu( editor, this.definition );
- menu.onClick = CKEDITOR.tools.bind( function( item )
- {
- menu.hide();
+ if ( nativeContextMenuOnCtrl &&
+ // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,
+ // which make this property unreliable. (#4826)
+ ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ) )
+ return;
- if ( item.onClick )
- item.onClick();
- else if ( item.command )
- editor.execCommand( item.command );
- }, this );
+ // Cancel the browser context menu.
+ domEvent.preventDefault();
- menu.onEscape = function( keystroke )
- {
- var parent = this.parent;
- // 1. If it's sub-menu, restore the last focused item
- // of upper level menu.
- // 2. In case of a top-menu, close it.
- if ( parent )
- {
- parent._.panel.hideChild();
- // Restore parent block item focus.
- var parentBlock = parent._.panel._.panel._.currentBlock,
- parentFocusIndex = parentBlock._.focusIndex;
- parentBlock._.markItem( parentFocusIndex );
- }
- else if ( keystroke == 27 )
- {
- this.hide();
- editor.focus();
- }
- return false;
- };
- }
+ var doc = domEvent.getTarget().getDocument(),
+ offsetParent = domEvent.getTarget().getDocument().getDocumentElement(),
+ fromFrame = !doc.equals( CKEDITOR.document ),
+ scroll = doc.getWindow().getScrollPosition(),
+ offsetX = fromFrame ? domEvent.$.clientX : domEvent.$.pageX || scroll.x + domEvent.$.clientX,
+ offsetY = fromFrame ? domEvent.$.clientY : domEvent.$.pageY || scroll.y + domEvent.$.clientY;
- var listeners = this._.listeners,
- includedItems = [];
+ CKEDITOR.tools.setTimeout( function() {
+ this.open( offsetParent, null, offsetX, offsetY );
- var selection = this.editor.getSelection(),
- element = selection && selection.getStartElement();
+ // IE needs a short while to allow selection change before opening menu. (#7908)
+ }, CKEDITOR.env.ie ? 200 : 0, this );
+ }, this );
- menu.onHide = CKEDITOR.tools.bind( function()
- {
- menu.onHide = null;
+ if ( CKEDITOR.env.opera ) {
+ // 'contextmenu' event triggered by Windows menu key is unpreventable,
+ // cancel the key event itself. (#6534)
+ element.on( 'keypress', function( evt ) {
+ var domEvent = evt.data;
- if ( CKEDITOR.env.ie )
- {
- var selection = editor.getSelection();
- selection && selection.unlock();
+ if ( domEvent.$.keyCode === 0 )
+ domEvent.preventDefault();
+ });
}
- this.onHide && this.onHide();
+ if ( CKEDITOR.env.webkit ) {
+ var holdCtrlKey,
+ onKeyDown = function( event ) {
+ holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey;
+ },
+ resetOnKeyUp = function() {
+ holdCtrlKey = 0;
+ };
+
+ element.on( 'keydown', onKeyDown );
+ element.on( 'keyup', resetOnKeyUp );
+ element.on( 'contextmenu', resetOnKeyUp );
+ }
},
- this );
- // Call all listeners, filling the list of items to be displayed.
- for ( var i = 0 ; i < listeners.length ; i++ )
- {
- var listenerItems = listeners[ i ]( element, selection );
+ open: function( offsetParent, corner, offsetX, offsetY ) {
+ this.editor.focus();
+ offsetParent = offsetParent || CKEDITOR.document.getDocumentElement();
- if ( listenerItems )
- {
- for ( var itemName in listenerItems )
- {
- var item = this.editor.getMenuItem( itemName );
+ // #9362: Force selection check to update commands' states in the new context.
+ this.editor.selectionChange( 1 );
- if ( item )
- {
- item.state = listenerItems[ itemName ];
- menu.add( item );
- }
- }
+ this.show( offsetParent, corner, offsetX, offsetY );
}
}
-
- // Don't show context menu with zero items.
- menu.items.length && menu.show( offsetParent, corner || ( editor.lang.dir == 'rtl' ? 2 : 1 ), offsetX, offsetY );
- }
+ });
},
- proto :
- {
- addTarget : function( element, nativeContextMenuOnCtrl )
- {
- // Opera doesn't support 'contextmenu' event, we have duo approaches employed here:
- // 1. Inherit the 'button override' hack we introduced in v2 (#4530), while this require the Opera browser
- // option 'Allow script to detect context menu/right click events' to be always turned on.
- // 2. Considering the fact that ctrl/meta key is not been occupied
- // for multiple range selecting (like Gecko), we use this key
- // combination as a fallback for triggering context-menu. (#4530)
- if ( CKEDITOR.env.opera )
- {
- var contextMenuOverrideButton;
- element.on( 'mousedown', function( evt )
- {
- evt = evt.data;
- if ( evt.$.button != 2 )
- {
- if ( evt.getKeystroke() == CKEDITOR.CTRL + 1 )
- element.fire( 'contextmenu', evt );
- return;
- }
-
- if ( nativeContextMenuOnCtrl
- && ( CKEDITOR.env.mac ? evt.$.metaKey : evt.$.ctrlKey ) )
- return;
-
- var target = evt.getTarget();
-
- if ( !contextMenuOverrideButton )
- {
- var ownerDoc = target.getDocument();
- contextMenuOverrideButton = ownerDoc.createElement( 'input' ) ;
- contextMenuOverrideButton.$.type = 'button' ;
- ownerDoc.getBody().append( contextMenuOverrideButton ) ;
- }
-
- contextMenuOverrideButton.setAttribute( 'style', 'position:absolute;top:' + ( evt.$.clientY - 2 ) +
- 'px;left:' + ( evt.$.clientX - 2 ) +
- 'px;width:5px;height:5px;opacity:0.01' );
-
- } );
-
- element.on( 'mouseup', function ( evt )
- {
- if ( contextMenuOverrideButton )
- {
- contextMenuOverrideButton.remove();
- contextMenuOverrideButton = undefined;
- // Simulate 'contextmenu' event.
- element.fire( 'contextmenu', evt.data );
- }
- } );
- }
-
- element.on( 'contextmenu', function( event )
- {
- var domEvent = event.data;
-
- if ( nativeContextMenuOnCtrl &&
- // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,
- // which make this property unreliable. (#4826)
- ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ) )
- return;
-
-
- // Cancel the browser context menu.
- domEvent.preventDefault();
-
- var offsetParent = domEvent.getTarget().getDocument().getDocumentElement(),
- offsetX = domEvent.$.clientX,
- offsetY = domEvent.$.clientY;
-
- CKEDITOR.tools.setTimeout( function()
- {
- this.show( offsetParent, null, offsetX, offsetY );
- },
- 0, this );
- },
- this );
-
- if ( CKEDITOR.env.webkit )
- {
- var holdCtrlKey,
- onKeyDown = function( event )
- {
- holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey ;
- },
- resetOnKeyUp = function()
- {
- holdCtrlKey = 0;
- };
-
- element.on( 'keydown', onKeyDown );
- element.on( 'keyup', resetOnKeyUp );
- element.on( 'contextmenu', resetOnKeyUp );
- }
- },
-
- addListener : function( listenerFn )
- {
- this._.listeners.push( listenerFn );
- },
+ beforeInit: function( editor ) {
+ var contextMenu = editor.contextMenu = new CKEDITOR.plugins.contextMenu( editor );
- show : function( offsetParent, corner, offsetX, offsetY )
- {
- this.editor.focus();
+ editor.on( 'contentDom', function() {
+ contextMenu.addTarget( editor.editable(), editor.config.browserContextMenuOnCtrl !== false );
+ });
- // Selection will be unavailable after context menu shows up
- // in IE, lock it now.
- if ( CKEDITOR.env.ie )
- {
- var selection = this.editor.getSelection();
- selection && selection.lock();
+ editor.addCommand( 'contextMenu', {
+ exec: function() {
+ editor.contextMenu.open( editor.document.getBody() );
}
+ });
- this._.onMenu( offsetParent || CKEDITOR.document.getDocumentElement(), corner, offsetX || 0, offsetY || 0 );
- }
+ editor.setKeystroke( CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' );
+ editor.setKeystroke( CKEDITOR.CTRL + CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' );
}
});
/**
- * Whether to show the browser native context menu when the CTRL or the
- * META (Mac) key is pressed while opening the context menu.
- * @name CKEDITOR.config.browserContextMenuOnCtrl
+ * Whether to show the browser native context menu when the *Ctrl* or
+ * *Meta* (Mac) key is pressed on opening the context menu with the
+ * right mouse button click or the *Menu* key.
+ *
+ * config.browserContextMenuOnCtrl = false;
+ *
* @since 3.0.2
- * @type Boolean
- * @default true
- * @example
- * config.browserContextMenuOnCtrl = false;
+ * @cfg {Boolean} [browserContextMenuOnCtrl=true]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/dialog/dialogDefinition.js b/devel/third-party/ckeditor/plugins/dialog/dialogDefinition.js
index a3094f6..5efdbbc 100644
--- a/devel/third-party/ckeditor/plugins/dialog/dialogDefinition.js
+++ b/devel/third-party/ckeditor/plugins/dialog/dialogDefinition.js
@@ -1,7 +1,7 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview Defines the "virtual" dialog, dialog content and dialog button
@@ -9,307 +9,989 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
/**
+ * The definition of a dialog window.
+ *
* This class is not really part of the API. It just illustrates the properties
* that developers can use to define and create dialogs.
- * @name CKEDITOR.dialog.dialogDefinition
- * @constructor
- * @example
- * // There is no constructor for this class, the user just has to define an
- * // object with the appropriate properties.
- *
- * CKEDITOR.dialog.add( 'testOnly', function( editor )
- * {
- * return {
- * title : 'Test Dialog',
- * resizable : CKEDITOR.DIALOG_RESIZE_BOTH,
- * minWidth : 500,
- * minHeight : 400,
- * contents : [
- * {
- * id : 'tab1',
- * label : 'First Tab',
- * title : 'First Tab Title',
- * accessKey : 'Q',
- * elements : [
- * {
- * type : 'text',
- * label : 'Test Text 1',
- * id : 'testText1',
- * 'default' : 'hello world!'
- * }
- * ]
- * }
- * ]
- * };
- * });
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * CKEDITOR.dialog.add( 'testOnly', function( editor ) {
+ * return {
+ * title: 'Test Dialog',
+ * resizable: CKEDITOR.DIALOG_RESIZE_BOTH,
+ * minWidth: 500,
+ * minHeight: 400,
+ * contents: [
+ * {
+ * id: 'tab1',
+ * label: 'First Tab',
+ * title: 'First Tab Title',
+ * accessKey: 'Q',
+ * elements: [
+ * {
+ * type: 'text',
+ * label: 'Test Text 1',
+ * id: 'testText1',
+ * 'default': 'hello world!'
+ * }
+ * ]
+ * }
+ * ]
+ * };
+ * } );
+ *
+ * @class CKEDITOR.dialog.definition
*/
/**
* The dialog title, displayed in the dialog's header. Required.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.title
- * @field
- * @type String
- * @example
+ *
+ * @property {String} title
*/
/**
* How the dialog can be resized, must be one of the four contents defined below.
- * <br /><br />
- * <strong>CKEDITOR.DIALOG_RESIZE_NONE</strong><br />
- * <strong>CKEDITOR.DIALOG_RESIZE_WIDTH</strong><br />
- * <strong>CKEDITOR.DIALOG_RESIZE_HEIGHT</strong><br />
- * <strong>CKEDITOR.DIALOG_RESIZE_BOTH</strong><br />
- * @name CKEDITOR.dialog.dialogDefinition.prototype.resizable
- * @field
- * @type Number
- * @default CKEDITOR.DIALOG_RESIZE_NONE
- * @example
+ *
+ * * {@link CKEDITOR#DIALOG_RESIZE_NONE}
+ * * {@link CKEDITOR#DIALOG_RESIZE_WIDTH}
+ * * {@link CKEDITOR#DIALOG_RESIZE_HEIGHT}
+ * * {@link CKEDITOR#DIALOG_RESIZE_BOTH}
+ *
+ * @property {Number} [resizable=CKEDITOR.DIALOG_RESIZE_NONE]
*/
/**
* The minimum width of the dialog, in pixels.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.minWidth
- * @field
- * @type Number
- * @default 600
- * @example
+ *
+ * @property {Number} [minWidth=600]
*/
/**
* The minimum height of the dialog, in pixels.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.minHeight
- * @field
- * @type Number
- * @default 400
- * @example
+ *
+ * @property {Number} [minHeight=400]
+ */
+
+
+/**
+ * The initial width of the dialog, in pixels.
+ *
+ * @since 3.5.3
+ * @property {Number} [width=CKEDITOR.dialog.definition#minWidth]
+ */
+
+/**
+ * The initial height of the dialog, in pixels.
+ *
+ * @since 3.5.3
+ * @property {Number} [height=CKEDITOR.dialog.definition.minHeight]
*/
/**
* The buttons in the dialog, defined as an array of
- * {@link CKEDITOR.dialog.buttonDefinition} objects.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.buttons
- * @field
- * @type Array
- * @default [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]
- * @example
+ * {@link CKEDITOR.dialog.definition.button} objects.
+ *
+ * @property {Array} [buttons=[ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]]
*/
/**
* The contents in the dialog, defined as an array of
- * {@link CKEDITOR.dialog.contentDefinition} objects. Required.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.contents
- * @field
- * @type Array
- * @example
+ * {@link CKEDITOR.dialog.definition.content} objects. Required.
+ *
+ * @property {Array} contents
*/
/**
* The function to execute when OK is pressed.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.onOk
- * @field
- * @type Function
- * @example
+ *
+ * @property {Function} onOk
*/
/**
* The function to execute when Cancel is pressed.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.onCancel
- * @field
- * @type Function
- * @example
+ *
+ * @property {Function} onCancel
*/
/**
* The function to execute when the dialog is displayed for the first time.
- * @name CKEDITOR.dialog.dialogDefinition.prototype.onLoad
- * @field
- * @type Function
- * @example
+ *
+ * @property {Function} onLoad
+ */
+
+/**
+ * The function to execute when the dialog is loaded (executed every time the dialog is opened).
+ *
+ * @property {Function} onShow
*/
/**
* This class is not really part of the API. It just illustrates the properties
* that developers can use to define and create dialog content pages.
- * @name CKEDITOR.dialog.contentDefinition
- * @constructor
- * @example
- * // There is no constructor for this class, the user just has to define an
- * // object with the appropriate properties.
+ *
+ * @class CKEDITOR.dialog.definition.content.
*/
/**
* The id of the content page.
- * @name CKEDITOR.dialog.contentDefinition.prototype.id
- * @field
- * @type String
- * @example
+ *
+ * @property {String} id
*/
/**
* The tab label of the content page.
- * @name CKEDITOR.dialog.contentDefinition.prototype.label
- * @field
- * @type String
- * @example
+ *
+ * @property {String} label
*/
/**
* The popup message of the tab label.
- * @name CKEDITOR.dialog.contentDefinition.prototype.title
- * @field
- * @type String
- * @example
+ *
+ * @property {String} title
*/
/**
* The CTRL hotkey for switching to the tab.
- * @name CKEDITOR.dialog.contentDefinition.prototype.accessKey
- * @field
- * @type String
- * @example
- * contentDefinition.accessKey = 'Q'; // Switch to this page when CTRL-Q is pressed.
+ *
+ * contentDefinition.accessKey = 'Q'; // Switch to this page when CTRL-Q is pressed.
+ *
+ * @property {String} accessKey
*/
/**
* The UI elements contained in this content page, defined as an array of
- * {@link CKEDITOR.dialog.uiElementDefinition} objects.
- * @name CKEDITOR.dialog.contentDefinition.prototype.elements
- * @field
- * @type Array
- * @example
+ * {@link CKEDITOR.dialog.definition.uiElement} objects.
+ *
+ * @property {Array} elements
*/
/**
+ * The definition of user interface element (textarea, radio etc).
+ *
* This class is not really part of the API. It just illustrates the properties
- * that developers can use to define and create dialog buttons.
- * @name CKEDITOR.dialog.buttonDefinition
- * @constructor
- * @example
- * // There is no constructor for this class, the user just has to define an
- * // object with the appropriate properties.
+ * that developers can use to define and create dialog UI elements.
+ *
+ * @class CKEDITOR.dialog.definition.uiElement
+ * @see CKEDITOR.ui.dialog.uiElement
*/
/**
- * The id of the dialog button. Required.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.id
- * @type String
- * @field
- * @example
+ * The id of the UI element.
+ *
+ * @property {String} id
*/
/**
- * The label of the dialog button. Required.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.label
- * @type String
- * @field
- * @example
+ * The type of the UI element. Required.
+ *
+ * @property {String} type
*/
/**
- * The popup message of the dialog button.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.title
- * @type String
- * @field
- * @example
+ * The popup label of the UI element.
+ *
+ * @property {String} title
*/
/**
- * The CTRL hotkey for the button.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.accessKey
- * @type String
- * @field
- * @example
- * exitButton.accessKey = 'X'; // Button will be pressed when user presses CTRL-X
+ * CSS class names to append to the UI element.
+ *
+ * @property {String} className
*/
/**
- * Whether the button is disabled.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.disabled
- * @type Boolean
- * @field
- * @default false
- * @example
+ * Inline CSS classes to append to the UI element.
+ *
+ * @property {String} style
+ */
+
+/**
+ * Horizontal alignment (in container) of the UI element.
+ *
+ * @property {String} align
+ */
+
+/**
+ * Function to execute the first time the UI element is displayed.
+ *
+ * @property {Function} onLoad
+ */
+
+/**
+ * Function to execute whenever the UI element's parent dialog is displayed.
+ *
+ * @property {Function} onShow
+ */
+
+/**
+ * Function to execute whenever the UI element's parent dialog is closed.
+ *
+ * @property {Function} onHide
+ */
+
+/**
+ * Function to execute whenever the UI element's parent
+ * dialog's {@link CKEDITOR.dialog#setupContent} method is executed.
+ * It usually takes care of the respective UI element as a standalone element.
+ *
+ * @property {Function} setup
*/
/**
- * The function to execute when the button is clicked.
- * @name CKEDITOR.dialog.buttonDefinition.prototype.onClick
- * @type Function
- * @field
- * @example
+ * Function to execute whenever the UI element's parent
+ * dialog's {@link CKEDITOR.dialog#commitContent} method is executed.
+ * It usually takes care of the respective UI element as a standalone element.
+ *
+ * @property {Function} commit
*/
+// ----- hbox -----------------------------------------------------------------
+
/**
+ * Horizontal layout box for dialog UI elements, auto-expends to available width of container.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create horizontal layouts.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.hbox} object and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'hbox',
+ * widths: [ '25%', '25%', '50%' ],
+ * children: [
+ * {
+ * type: 'text',
+ * id: 'id1',
+ * width: '40px',
+ * },
+ * {
+ * type: 'text',
+ * id: 'id2',
+ * width: '40px',
+ * },
+ * {
+ * type: 'text',
+ * id: 'id3'
+ * }
+ * ]
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.hbox
+ * @extends CKEDITOR.dialog.definition.uiElement
+ */
+
+/**
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
+ *
+ * @property {Array} children
+ */
+
+/**
+ * (Optional) The widths of child cells.
+ *
+ * @property {Array} widths
+ */
+
+/**
+ * (Optional) The height of the layout.
+ *
+ * @property {Number} height
+ */
+
+/**
+ * The CSS styles to apply to this element.
+ *
+ * @property {String} styles
+ */
+
+/**
+ * (Optional) The padding width inside child cells. Example: 0, 1.
+ *
+ * @property {Number} padding
+ */
+
+/**
+ * (Optional) The alignment of the whole layout. Example: center, top.
+ *
+ * @property {String} align
+ */
+
+// ----- vbox -----------------------------------------------------------------
+
+/**
+ * Vertical layout box for dialog UI elements.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create vertical layouts.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.vbox} object and can
+ * be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'vbox',
+ * align: 'right',
+ * width: '200px',
+ * children: [
+ * {
+ * type: 'text',
+ * id: 'age',
+ * label: 'Age'
+ * },
+ * {
+ * type: 'text',
+ * id: 'sex',
+ * label: 'Sex'
+ * },
+ * {
+ * type: 'text',
+ * id: 'nationality',
+ * label: 'Nationality'
+ * }
+ * ]
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.vbox
+ * @extends CKEDITOR.dialog.definition.uiElement
+ */
+
+/**
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
+ *
+ * @property {Array} children
+ */
+
+/**
+ * (Optional) The width of the layout.
+ *
+ * @property {Array} width
+ */
+
+/**
+ * (Optional) The heights of individual cells.
+ *
+ * @property {Number} heights
+ */
+
+/**
+ * The CSS styles to apply to this element.
+ *
+ * @property {String} styles
+ */
+
+/**
+ * (Optional) The padding width inside child cells. Example: 0, 1.
+ *
+ * @property {Number} padding
+ */
+
+/**
+ * (Optional) The alignment of the whole layout. Example: center, top.
+ *
+ * @property {String} align
+ */
+
+/**
+ * (Optional) Whether the layout should expand vertically to fill its container.
+ *
+ * @property {Boolean} expand
+ */
+
+// ----- labeled element ------------------------------------------------------
+
+/**
+ * The definition of labeled user interface element (textarea, textInput etc).
+ *
* This class is not really part of the API. It just illustrates the properties
* that developers can use to define and create dialog UI elements.
- * @name CKEDITOR.dialog.uiElementDefinition
- * @constructor
- * @see CKEDITOR.ui.dialog.uiElement
- * @example
- * // There is no constructor for this class, the user just has to define an
- * // object with the appropriate properties.
+ *
+ * @class CKEDITOR.dialog.definition.labeledElement
+ * @extends CKEDITOR.dialog.definition.uiElement
+ * @see CKEDITOR.ui.dialog.labeledElement
*/
/**
- * The id of the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.id
- * @field
- * @type String
- * @example
+ * The label of the UI element.
+ *
+ * {
+ * type: 'text',
+ * label: 'My Label'
+ * }
+ *
+ * @property {String} label
*/
/**
- * The type of the UI element. Required.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.type
- * @field
- * @type String
- * @example
+ * (Optional) Specify the layout of the label. Set to `'horizontal'` for horizontal layout.
+ * The default layout is vertical.
+ *
+ * {
+ * type: 'text',
+ * label: 'My Label',
+ * labelLayout: 'horizontal'
+ * }
+ *
+ * @property {String} labelLayout
*/
/**
- * The popup label of the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.title
- * @field
- * @type String
- * @example
+ * (Optional) Applies only to horizontal layouts: a two elements array of lengths to specify the widths of the
+ * label and the content element. See also {@link CKEDITOR.dialog.definition.labeledElement#labelLayout}.
+ *
+ * {
+ * type: 'text',
+ * label: 'My Label',
+ * labelLayout: 'horizontal',
+ * widths: [100, 200]
+ * }
+ *
+ * @property {Array} widths
*/
/**
- * CSS class names to append to the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.className
- * @field
- * @type String
- * @example
+ * Specify the inline style of the uiElement label.
+ *
+ * {
+ * type: 'text',
+ * label: 'My Label',
+ * labelStyle: 'color: red'
+ * }
+ *
+ * @property {String} labelStyle
*/
+
/**
- * Inline CSS classes to append to the UI element.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.style
- * @field
- * @type String
- * @example
+ * Specify the inline style of the input element.
+ *
+ * {
+ * type: 'text',
+ * label: 'My Label',
+ * inputStyle: 'text-align: center'
+ * }
+ *
+ * @since 3.6.1
+ * @property {String} inputStyle
*/
/**
- * Function to execute the first time the UI element is displayed.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.onLoad
- * @field
- * @type Function
- * @example
+ * Specify the inline style of the input element container.
+ *
+ * {
+ * type: 'text',
+ * label: 'My Label',
+ * controlStyle: 'width: 3em'
+ * }
+ *
+ * @since 3.6.1
+ * @property {String} controlStyle
*/
+// ----- button ---------------------------------------------------------------
+
/**
- * Function to execute whenever the UI element's parent dialog is displayed.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.onShow
- * @field
- * @type Function
- * @example
+ * The definition of a button.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create buttons.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.button} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'button',
+ * id: 'buttonId',
+ * label: 'Click me',
+ * title: 'My title',
+ * onClick: function() {
+ * // this = CKEDITOR.ui.dialog.button
+ * alert( 'Clicked: ' + this.id );
+ * }
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.button
+ * @extends CKEDITOR.dialog.definition.uiElement
*/
/**
- * Function to execute whenever the UI element's parent dialog is closed.
- * @name CKEDITOR.dialog.uiElementDefinition.prototype.onHide
- * @field
- * @type Function
- * @example
+ * Whether the button is disabled.
+ *
+ * @property {Boolean} disabled
+ */
+
+/**
+ * The label of the UI element.
+ *
+ * @property {String} label
+ */
+
+// ----- checkbox ------
+/**
+ * The definition of a checkbox element.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create groups of checkbox buttons.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.checkbox} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'checkbox',
+ * id: 'agree',
+ * label: 'I agree',
+ * 'default': 'checked',
+ * onClick: function() {
+ * // this = CKEDITOR.ui.dialog.checkbox
+ * alert( 'Checked: ' + this.getValue() );
+ * }
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.checkbox
+ * @extends CKEDITOR.dialog.definition.uiElement
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+/**
+ * The label of the UI element.
+ *
+ * @property {String} label
+ */
+
+/**
+ * The default state.
+ *
+ * @property {String} [default='' (unchecked)]
+ */
+
+// ----- file -----------------------------------------------------------------
+
+/**
+ * The definition of a file upload input.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create file upload elements.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.file} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'file',
+ * id: 'upload',
+ * label: 'Select file from your computer',
+ * size: 38
+ * },
+ * {
+ * type: 'fileButton',
+ * id: 'fileId',
+ * label: 'Upload file',
+ * 'for': [ 'tab1', 'upload' ],
+ * filebrowser: {
+ * onSelect: function( fileUrl, data ) {
+ * alert( 'Successfully uploaded: ' + fileUrl );
+ * }
+ * }
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.file
+ * @extends CKEDITOR.dialog.definition.labeledElement
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+/**
+ * (Optional) The action attribute of the form element associated with this file upload input.
+ * If empty, CKEditor will use path to server connector for currently opened folder.
+ *
+ * @property {String} action
+ */
+
+/**
+ * The size of the UI element.
+ *
+ * @property {Number} size
+ */
+
+// ----- fileButton -----------------------------------------------------------
+
+/**
+ * The definition of a button for submitting the file in a file upload input.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create a button for submitting the file in a file upload input.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.fileButton} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * @class CKEDITOR.dialog.definition.fileButton
+ * @extends CKEDITOR.dialog.definition.uiElement
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+/**
+ * The label of the UI element.
+ *
+ * @property {String} label
+ */
+
+/**
+ * The instruction for CKEditor how to deal with file upload.
+ * By default, the file and fileButton elements will not work "as expected" if this attribute is not set.
+ *
+ * // Update field with id 'txtUrl' in the 'tab1' tab when file is uploaded.
+ * filebrowser: 'tab1:txtUrl'
+ *
+ * // Call custom onSelect function when file is successfully uploaded.
+ * filebrowser: {
+ * onSelect: function( fileUrl, data ) {
+ * alert( 'Successfully uploaded: ' + fileUrl );
+ * }
+ * }
+ *
+ * @property {String} filebrowser/Object
+ */
+
+/**
+ * An array that contains pageId and elementId of the file upload input element for which this button is created.
+ *
+ * [ pageId, elementId ]
+ *
+ * @property {String} for
+ */
+
+// ----- html -----------------------------------------------------------------
+
+/**
+ * The definition of a raw HTML element.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create elements made from raw HTML code.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.html} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ * To access HTML elements use {@link CKEDITOR.dom.document#getById}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example 1:
+ * {
+ * type: 'html',
+ * html: '<h3>This is some sample HTML content.</h3>'
+ * }
+ *
+ * // Example 2:
+ * // Complete sample with document.getById() call when the "Ok" button is clicked.
+ * var dialogDefinition = {
+ * title: 'Sample dialog',
+ * minWidth: 300,
+ * minHeight: 200,
+ * onOk: function() {
+ * // "this" is now a CKEDITOR.dialog object.
+ * var document = this.getElement().getDocument();
+ * // document = CKEDITOR.dom.document
+ * var element = <b>document.getById( 'myDiv' );</b>
+ * if ( element )
+ * alert( element.getHtml() );
+ * },
+ * contents: [
+ * {
+ * id: 'tab1',
+ * label: '',
+ * title: '',
+ * elements: [
+ * {
+ * type: 'html',
+ * html: '<div id="myDiv">Sample <b>text</b>.</div><div id="otherId">Another div.</div>'
+ * }
+ * ]
+ * }
+ * ],
+ * buttons: [ CKEDITOR.dialog.cancelButton, CKEDITOR.dialog.okButton ]
+ * };
+ *
+ * @class CKEDITOR.dialog.definition.html
+ * @extends CKEDITOR.dialog.definition.uiElement
+ */
+
+/**
+ * (Required) HTML code of this element.
+ *
+ * @property {String} html
+ */
+
+// ----- radio ----------------------------------------------------------------
+
+/**
+ * The definition of a radio group.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create groups of radio buttons.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.radio} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'radio',
+ * id: 'country',
+ * label: 'Which country is bigger',
+ * items: [ [ 'France', 'FR' ], [ 'Germany', 'DE' ] ],
+ * style: 'color: green',
+ * 'default': 'DE',
+ * onClick: function() {
+ * // this = CKEDITOR.ui.dialog.radio
+ * alert( 'Current value: ' + this.getValue() );
+ * }
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.radio
+ * @extends CKEDITOR.dialog.definition.labeledElement
+ */
+
+/**
+ * The default value.
+ *
+ * @property {String} default
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+/**
+ * An array of options. Each option is a 1- or 2-item array of format `[ 'Description', 'Value' ]`.
+ * If `'Value'` is missing, then the value would be assumed to be the same as the description.
+ *
+ * @property {Array} items
+ */
+
+// ----- selectElement --------------------------------------------------------
+
+/**
+ * The definition of a select element.
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create select elements.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.select} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * // Example:
+ * {
+ * type: 'select',
+ * id: 'sport',
+ * label: 'Select your favourite sport',
+ * items: [ [ 'Basketball' ], [ 'Baseball' ], [ 'Hockey' ], [ 'Football' ] ],
+ * 'default': 'Football',
+ * onChange: function( api ) {
+ * // this = CKEDITOR.ui.dialog.select
+ * alert( 'Current value: ' + this.getValue() );
+ * }
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.select
+ * @extends CKEDITOR.dialog.definition.labeledElement
+ */
+
+/**
+ * The default value.
+ *
+ * @property {String} default
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+/**
+ * An array of options. Each option is a 1- or 2-item array of format `[ 'Description', 'Value' ]`.
+ * If `'Value'` is missing, then the value would be assumed to be the same as the description.
+ *
+ * @property {Array} items
+ */
+
+/**
+ * (Optional) Set this to true if you'd like to have a multiple-choice select box.
+ *
+ * @property {Boolean} [multiple=false]
+ */
+
+/**
+ * (Optional) The number of items to display in the select box.
+ *
+ * @property {Number} size
+ */
+
+// ----- textInput ------------------------------------------------------------
+
+/**
+ * The definition of a text field (single line).
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create text fields.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textInput} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+ * // There is no constructor for this class, the user just has to define an
+ * // object with the appropriate properties.
+ *
+ * {
+ * type: 'text',
+ * id: 'name',
+ * label: 'Your name',
+ * 'default': '',
+ * validate: function() {
+ * if ( !this.getValue() ) {
+ * api.openMsgDialog( '', 'Name cannot be empty.' );
+ * return false;
+ * }
+ * }
+ * }
+ *
+ * @class CKEDITOR.dialog.definition.textInput
+ * @extends CKEDITOR.dialog.definition.labeledElement
+ */
+
+/**
+ * The default value.
+ *
+ * @property {String} default
+ */
+
+/**
+ * (Optional) The maximum length.
+ *
+ * @property {Number} maxLength
+ */
+
+/**
+ * (Optional) The size of the input field.
+ *
+ * @property {Number} size
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+// ----- textarea -------------------------------------------------------------
+
+/**
+ * The definition of a text field (multiple lines).
+ *
+ * This class is not really part of the API. It just illustrates the properties
+ * that developers can use to define and create textarea.
+ *
+ * Once the dialog is opened, the created element becomes a {@link CKEDITOR.ui.dialog.textarea} object
+ * and can be accessed with {@link CKEDITOR.dialog#getContentElement}.
+ *
+ * For a complete example of dialog definition, please check {@link CKEDITOR.dialog#add}.
+ *
+* // There is no constructor for this class, the user just has to define an
+* // object with the appropriate properties.
+*
+* // Example:
+* {
+* type: 'textarea',
+* id: 'message',
+* label: 'Your comment',
+* 'default': '',
+* validate: function() {
+* if ( this.getValue().length < 5 ) {
+* api.openMsgDialog( 'The comment is too short.' );
+* return false;
+* }
+* }
+* }
+ *
+ * @class CKEDITOR.dialog.definition.textarea
+ * @extends CKEDITOR.dialog.definition.labeledElement
+ */
+
+/**
+ * The number of rows.
+ *
+ * @property {Number} rows
+ */
+
+/**
+ * The number of columns.
+ *
+ * @property {Number} cols
+ */
+
+/**
+ * (Optional) The validation function.
+ *
+ * @property {Function} validate
+ */
+
+/**
+ * The default value.
+ *
+ * @property {String} default
*/
diff --git a/devel/third-party/ckeditor/plugins/dialog/plugin.js b/devel/third-party/ckeditor/plugins/dialog/plugin.js
index d708616..6d20620 100644
--- a/devel/third-party/ckeditor/plugins/dialog/plugin.js
+++ b/devel/third-party/ckeditor/plugins/dialog/plugin.js
@@ -1,7 +1,7 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The floating dialog plugin.
@@ -9,43 +9,53 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* No resize for this dialog.
- * @constant
+ *
+ * @readonly
+ * @property {Number} [=0]
+ * @member CKEDITOR
*/
CKEDITOR.DIALOG_RESIZE_NONE = 0;
/**
* Only allow horizontal resizing for this dialog, disable vertical resizing.
- * @constant
+ *
+ * @readonly
+ * @property {Number} [=1]
+ * @member CKEDITOR
*/
CKEDITOR.DIALOG_RESIZE_WIDTH = 1;
/**
* Only allow vertical resizing for this dialog, disable horizontal resizing.
- * @constant
+ *
+ * @readonly
+ * @property {Number} [=2]
+ * @member CKEDITOR
*/
CKEDITOR.DIALOG_RESIZE_HEIGHT = 2;
-/*
+/**
* Allow the dialog to be resized in both directions.
- * @constant
+ *
+ * @readonly
+ * @property {Number} [=3]
+ * @member CKEDITOR
*/
CKEDITOR.DIALOG_RESIZE_BOTH = 3;
-(function()
-{
- function isTabVisible( tabId )
- {
+(function() {
+ var cssLength = CKEDITOR.tools.cssLength;
+
+ function isTabVisible( tabId ) {
return !!this._.tabs[ tabId ][ 0 ].$.offsetHeight;
}
- function getPreviousVisibleTab()
- {
+ function getPreviousVisibleTab() {
var tabId = this._.currentTabId,
length = this._.tabIdList.length,
tabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, tabId ) + length;
- for ( var i = tabIndex - 1 ; i > tabIndex - length ; i-- )
- {
+ for ( var i = tabIndex - 1; i > tabIndex - length; i-- ) {
if ( isTabVisible.call( this, this._.tabIdList[ i % length ] ) )
return this._.tabIdList[ i % length ];
}
@@ -53,14 +63,12 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
return null;
}
- function getNextVisibleTab()
- {
+ function getNextVisibleTab() {
var tabId = this._.currentTabId,
length = this._.tabIdList.length,
tabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, tabId );
- for ( var i = tabIndex + 1 ; i < tabIndex + length ; i++ )
- {
+ for ( var i = tabIndex + 1; i < tabIndex + length; i++ ) {
if ( isTabVisible.call( this, this._.tabIdList[ i % length ] ) )
return this._.tabIdList[ i % length ];
}
@@ -69,22 +77,16 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
}
- function clearOrRecoverTextInputValue( container, isRecover )
- {
+ function clearOrRecoverTextInputValue( container, isRecover ) {
var inputs = container.$.getElementsByTagName( 'input' );
- for ( var i = 0, length = inputs.length; i < length ; i++ )
- {
+ for ( var i = 0, length = inputs.length; i < length; i++ ) {
var item = new CKEDITOR.dom.element( inputs[ i ] );
- if ( item.getAttribute( 'type' ).toLowerCase() == 'text' )
- {
- if ( isRecover )
- {
+ if ( item.getAttribute( 'type' ).toLowerCase() == 'text' ) {
+ if ( isRecover ) {
item.setAttribute( 'value', item.getCustomData( 'fake_value' ) || '' );
item.removeCustomData( 'fake_value' );
- }
- else
- {
+ } else {
item.setCustomData( 'fake_value', item.getAttribute( 'value' ) );
item.setAttribute( 'value', '' );
}
@@ -92,22 +94,128 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
}
}
+ // Handle dialog element validation state UI changes.
+ function handleFieldValidated( isValid, msg ) {
+ var input = this.getInputElement();
+ if ( input ) {
+ isValid ? input.removeAttribute( 'aria-invalid' ) : input.setAttribute( 'aria-invalid', true );
+ }
+
+ if ( !isValid ) {
+ if ( this.select )
+ this.select();
+ else
+ this.focus();
+ }
+
+ msg && alert( msg );
+
+ this.fire( 'validated', { valid: isValid, msg: msg } );
+ }
+
+ function resetField() {
+ var input = this.getInputElement();
+ input && input.removeAttribute( 'aria-invalid' );
+ }
+
+ var templateSource = '<div class="cke cke_reset_all {editorId} {editorDialogClass}' +
+ '" dir="{langDir}"' +
+ ' lang="{langCode}"' +
+ ' role="application"' +
+ '>' +
+ '<table class="cke_dialog ' + CKEDITOR.env.cssClass + ' cke_{langDir}"' +
+ ' aria-labelledby="cke_dialog_title_{id}"' +
+ ' style="position:absolute" role="dialog">' +
+ '<tr><td role="presentation">' +
+ '<div class="cke_dialog_body" role="presentation">' +
+ '<div id="cke_dialog_title_{id}" class="cke_dialog_title" role="presentation"></div>' +
+ '<a id="cke_dialog_close_button_{id}" class="cke_dialog_close_button" href="javascript:void(0)" title="{closeTitle}" role="button"><span class="cke_label">X</span></a>' +
+ '<div id="cke_dialog_tabs_{id}" class="cke_dialog_tabs" role="tablist"></div>' +
+ '<table class="cke_dialog_contents" role="presentation">' +
+ '<tr>' +
+ '<td id="cke_dialog_contents_{id}" class="cke_dialog_contents_body" role="presentation"></td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td id="cke_dialog_footer_{id}" class="cke_dialog_footer" role="presentation"></td>' +
+ '</tr>' +
+ '</table>' +
+ '</div>' +
+ '</td></tr>' +
+ '</table>' +
+ '</div>';
+
+ function buildDialog( editor ) {
+ var element = CKEDITOR.dom.element.createFromHtml( CKEDITOR.addTemplate( 'dialog', templateSource ).output({
+ id: CKEDITOR.tools.getNextNumber(),
+ editorId: editor.id,
+ langDir: editor.lang.dir,
+ langCode: editor.langCode,
+ editorDialogClass: 'cke_editor_' + editor.name.replace( /\./g, '\\.' ) + '_dialog',
+ closeTitle: editor.lang.common.close
+ }));
+
+ // TODO: Change this to getById(), so it'll support custom templates.
+ var body = element.getChild( [ 0, 0, 0, 0, 0 ] ),
+ title = body.getChild( 0 ),
+ close = body.getChild( 1 );
+
+ // IFrame shim for dialog that masks activeX in IE. (#7619)
+ if ( CKEDITOR.env.ie && !CKEDITOR.env.ie6Compat ) {
+ var isCustomDomain = CKEDITOR.env.isCustomDomain(),
+ src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();' + ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) + 'document.close();' ) + '}())',
+ iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +
+ ' frameBorder="0"' +
+ ' class="cke_iframe_shim"' +
+ ' src="' + src + '"' +
+ ' tabIndex="-1"' +
+ '></iframe>' );
+ iframe.appendTo( body.getParent() );
+ }
+
+ // Make the Title and Close Button unselectable.
+ title.unselectable();
+ close.unselectable();
+
+ return {
+ element: element,
+ parts: {
+ dialog: element.getChild( 0 ),
+ title: title,
+ close: close,
+ tabs: body.getChild( 2 ),
+ contents: body.getChild( [ 3, 0, 0, 0 ] ),
+ footer: body.getChild( [ 3, 0, 1, 0 ] )
+ }
+ };
+ }
+
/**
* This is the base class for runtime dialog objects. An instance of this
* class represents a single named dialog for a single editor instance.
+ *
+ * var dialogObj = new CKEDITOR.dialog( editor, 'smiley' );
+ *
+ * @class
+ * @constructor Creates a dialog class instance.
* @param {Object} editor The editor which created the dialog.
* @param {String} dialogName The dialog's registered name.
- * @constructor
- * @example
- * var dialogObj = new CKEDITOR.dialog( editor, 'smiley' );
*/
- CKEDITOR.dialog = function( editor, dialogName )
- {
+ CKEDITOR.dialog = function( editor, dialogName ) {
// Load the dialog definition.
- var definition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ];
+ var definition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
+ defaultDefinition = CKEDITOR.tools.clone( defaultDialogDefinition ),
+ buttonsOrder = editor.config.dialog_buttonsOrder || 'OS',
+ dir = editor.lang.dir,
+ tabsToRemove = {},
+ i, processed, stopPropagation;
+
+ if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750)
+ ( buttonsOrder == 'rtl' && dir == 'ltr' ) || ( buttonsOrder == 'ltr' && dir == 'rtl' ) )
+ defaultDefinition.buttons.reverse();
+
// Completes the definition with the default values.
- definition = CKEDITOR.tools.extend( definition( editor ), defaultDialogDefinition );
+ definition = CKEDITOR.tools.extend( definition( editor ), defaultDefinition );
// Clone a functionally independent copy for this dialog.
definition = CKEDITOR.tools.clone( definition );
@@ -116,68 +224,86 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
// functions.
definition = new definitionObject( this, definition );
-
var doc = CKEDITOR.document;
- var themeBuilt = editor.theme.buildDialog( editor );
+ var themeBuilt = buildDialog( editor );
// Initialize some basic parameters.
- this._ =
- {
- editor : editor,
- element : themeBuilt.element,
- name : dialogName,
- contentSize : { width : 0, height : 0 },
- size : { width : 0, height : 0 },
- updateSize : false,
- contents : {},
- buttons : {},
- accessKeyMap : {},
+ this._ = {
+ editor: editor,
+ element: themeBuilt.element,
+ name: dialogName,
+ contentSize: { width: 0, height: 0 },
+ size: { width: 0, height: 0 },
+ contents: {},
+ buttons: {},
+ accessKeyMap: {},
// Initialize the tab and page map.
- tabs : {},
- tabIdList : [],
- currentTabId : null,
- currentTabIndex : null,
- pageCount : 0,
- lastTab : null,
- tabBarMode : false,
+ tabs: {},
+ tabIdList: [],
+ currentTabId: null,
+ currentTabIndex: null,
+ pageCount: 0,
+ lastTab: null,
+ tabBarMode: false,
// Initialize the tab order array for input widgets.
- focusList : [],
- currentFocusIndex : 0,
- hasFocus : false
+ focusList: [],
+ currentFocusIndex: 0,
+ hasFocus: false
};
this.parts = themeBuilt.parts;
- CKEDITOR.tools.setTimeout( function()
- {
- editor.fire( 'ariaWidget', this.parts.contents );
- },
- 0, this );
+ CKEDITOR.tools.setTimeout( function() {
+ editor.fire( 'ariaWidget', this.parts.contents );
+ }, 0, this );
// Set the startup styles for the dialog, avoiding it enlarging the
// page size on the dialog creation.
- this.parts.dialog.setStyles(
- {
- position : CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed',
- top : 0,
- left: 0,
- visibility : 'hidden'
- });
+ var startStyles = {
+ position: CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed',
+ top: 0,
+ visibility: 'hidden'
+ };
+
+ startStyles[ dir == 'rtl' ? 'right' : 'left' ] = 0;
+ this.parts.dialog.setStyles( startStyles );
+
// Call the CKEDITOR.event constructor to initialize this instance.
CKEDITOR.event.call( this );
// Fire the "dialogDefinition" event, making it possible to customize
// the dialog definition.
- this.definition = definition = CKEDITOR.fire( 'dialogDefinition',
- {
- name : dialogName,
- definition : definition
+ this.definition = definition = CKEDITOR.fire( 'dialogDefinition', {
+ name: dialogName,
+ definition: definition
+ }, editor ).definition;
+
+ // Cache tabs that should be removed.
+ if ( !( 'removeDialogTabs' in editor._ ) && editor.config.removeDialogTabs ) {
+ var removeContents = editor.config.removeDialogTabs.split( ';' );
+
+ for ( i = 0; i < removeContents.length; i++ ) {
+ var parts = removeContents[ i ].split( ':' );
+ if ( parts.length == 2 ) {
+ var removeDialogName = parts[ 0 ];
+ if ( !tabsToRemove[ removeDialogName ] )
+ tabsToRemove[ removeDialogName ] = [];
+ tabsToRemove[ removeDialogName ].push( parts[ 1 ] );
+ }
}
- , editor ).definition;
+ editor._.removeDialogTabs = tabsToRemove;
+ }
+
+ // Remove tabs of this dialog.
+ if ( editor._.removeDialogTabs && ( tabsToRemove = editor._.removeDialogTabs[ dialogName ] ) ) {
+ for ( i = 0; i < tabsToRemove.length; i++ )
+ definition.removeContents( tabsToRemove[ i ] );
+ }
+
// Initialize load, show, hide, ok and cancel events.
if ( definition.onLoad )
this.on( 'load', definition.onLoad );
@@ -188,120 +314,97 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
if ( definition.onHide )
this.on( 'hide', definition.onHide );
- if ( definition.onOk )
- {
- this.on( 'ok', function( evt )
- {
- // Dialog confirm might probably introduce content changes (#5415).
+ if ( definition.onOk ) {
+ this.on( 'ok', function( evt ) {
+ // Dialog confirm might probably introduce content changes (#5415).
+ editor.fire( 'saveSnapshot' );
+ setTimeout( function() {
editor.fire( 'saveSnapshot' );
- setTimeout( function () { editor.fire( 'saveSnapshot' ); }, 0 );
- if ( definition.onOk.call( this, evt ) === false )
- evt.data.hide = false;
- });
+ }, 0 );
+ if ( definition.onOk.call( this, evt ) === false )
+ evt.data.hide = false;
+ });
}
- if ( definition.onCancel )
- {
- this.on( 'cancel', function( evt )
- {
- if ( definition.onCancel.call( this, evt ) === false )
- evt.data.hide = false;
- });
+ if ( definition.onCancel ) {
+ this.on( 'cancel', function( evt ) {
+ if ( definition.onCancel.call( this, evt ) === false )
+ evt.data.hide = false;
+ });
}
var me = this;
// Iterates over all items inside all content in the dialog, calling a
// function for each of them.
- var iterContents = function( func )
- {
- var contents = me._.contents,
- stop = false;
-
- for ( var i in contents )
- {
- for ( var j in contents[i] )
- {
- stop = func.call( this, contents[i][j] );
- if ( stop )
- return;
+ var iterContents = function( func ) {
+ var contents = me._.contents,
+ stop = false;
+
+ for ( var i in contents ) {
+ for ( var j in contents[ i ] ) {
+ stop = func.call( this, contents[ i ][ j ] );
+ if ( stop )
+ return;
+ }
}
- }
- };
+ };
- this.on( 'ok', function( evt )
- {
- iterContents( function( item )
- {
- if ( item.validate )
- {
- var isValid = item.validate( this );
-
- if ( typeof isValid == 'string' )
- {
- alert( isValid );
- isValid = false;
- }
-
- if ( isValid === false )
- {
- if ( item.select )
- item.select();
- else
- item.focus();
-
- evt.data.hide = false;
- evt.stop();
- return true;
- }
- }
- });
- }, this, null, 0 );
-
- this.on( 'cancel', function( evt )
- {
- iterContents( function( item )
- {
- if ( item.isChanged() )
- {
- if ( !confirm( editor.lang.common.confirmCancel ) )
- evt.data.hide = false;
- return true;
- }
- });
- }, this, null, 0 );
+ this.on( 'ok', function( evt ) {
+ iterContents( function( item ) {
+ if ( item.validate ) {
+ var retval = item.validate( this ),
+ invalid = typeof( retval ) == 'string' || retval === false;
- this.parts.close.on( 'click', function( evt )
- {
- if ( this.fire( 'cancel', { hide : true } ).hide !== false )
- this.hide();
- evt.data.preventDefault();
- }, this );
+ if ( invalid ) {
+ evt.data.hide = false;
+ evt.stop();
+ }
+
+ handleFieldValidated.call( item, !invalid, typeof retval == 'string' ? retval : undefined );
+ return invalid;
+ }
+ });
+ }, this, null, 0 );
+
+ this.on( 'cancel', function( evt ) {
+ iterContents( function( item ) {
+ if ( item.isChanged() ) {
+ if ( !confirm( editor.lang.common.confirmCancel ) )
+ evt.data.hide = false;
+ return true;
+ }
+ });
+ }, this, null, 0 );
+
+ this.parts.close.on( 'click', function( evt ) {
+ if ( this.fire( 'cancel', { hide: true } ).hide !== false )
+ this.hide();
+ evt.data.preventDefault();
+ }, this );
// Sort focus list according to tab order definitions.
- function setupFocus()
- {
+ function setupFocus() {
var focusList = me._.focusList;
- focusList.sort( function( a, b )
- {
- // Mimics browser tab order logics;
- if ( a.tabIndex != b.tabIndex )
- return b.tabIndex - a.tabIndex;
- // Sort is not stable in some browsers,
- // fall-back the comparator to 'focusIndex';
- else
- return a.focusIndex - b.focusIndex;
- });
+ focusList.sort( function( a, b ) {
+ // Mimics browser tab order logics;
+ if ( a.tabIndex != b.tabIndex )
+ return b.tabIndex - a.tabIndex;
+ // Sort is not stable in some browsers,
+ // fall-back the comparator to 'focusIndex';
+ else
+ return a.focusIndex - b.focusIndex;
+ });
var size = focusList.length;
for ( var i = 0; i < size; i++ )
focusList[ i ].focusIndex = i;
}
- function changeFocus( forward )
- {
- var focusList = me._.focusList,
- offset = forward ? 1 : -1;
+ function changeFocus( offset ) {
+ var focusList = me._.focusList;
+ offset = offset || 0;
+
if ( focusList.length < 1 )
return;
@@ -309,20 +412,18 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
// Trigger the 'blur' event of any input element before anything,
// since certain UI updates may depend on it.
- try
- {
+ try {
focusList[ current ].getInputElement().$.blur();
- }
- catch( e ){}
+ } catch ( e ) {}
var startIndex = ( current + offset + focusList.length ) % focusList.length,
currentIndex = startIndex;
- while ( !focusList[ currentIndex ].isFocusable() )
- {
+ while ( offset && !focusList[ currentIndex ].isFocusable() ) {
currentIndex = ( currentIndex + offset + focusList.length ) % focusList.length;
if ( currentIndex == startIndex )
break;
}
+
focusList[ currentIndex ].focus();
// Select whole field content.
@@ -332,160 +433,147 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
this.changeFocus = changeFocus;
- var processed;
- function focusKeydownHandler( evt )
- {
+ function keydownHandler( evt ) {
// If I'm not the top dialog, ignore.
if ( me != CKEDITOR.dialog._.currentTop )
return;
var keystroke = evt.data.getKeystroke(),
- rtl = editor.lang.dir == 'rtl';
+ rtl = editor.lang.dir == 'rtl',
+ button;
+
+ processed = stopPropagation = 0;
- processed = 0;
- if ( keystroke == 9 || keystroke == CKEDITOR.SHIFT + 9 )
- {
+ if ( keystroke == 9 || keystroke == CKEDITOR.SHIFT + 9 ) {
var shiftPressed = ( keystroke == CKEDITOR.SHIFT + 9 );
// Handling Tab and Shift-Tab.
- if ( me._.tabBarMode )
- {
+ if ( me._.tabBarMode ) {
// Change tabs.
var nextId = shiftPressed ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me );
me.selectPage( nextId );
me._.tabs[ nextId ][ 0 ].focus();
- }
- else
- {
+ } else {
// Change the focus of inputs.
- changeFocus( !shiftPressed );
+ changeFocus( shiftPressed ? -1 : 1 );
}
processed = 1;
- }
- else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode && me.getPageCount() > 1 )
- {
+ } else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode && me.getPageCount() > 1 ) {
// Alt-F10 puts focus into the current tab item in the tab bar.
me._.tabBarMode = true;
me._.tabs[ me._.currentTabId ][ 0 ].focus();
processed = 1;
- }
- else if ( ( keystroke == 37 || keystroke == 39 ) && me._.tabBarMode )
- {
+ } else if ( ( keystroke == 37 || keystroke == 39 ) && me._.tabBarMode ) {
// Arrow keys - used for changing tabs.
nextId = ( keystroke == ( rtl ? 39 : 37 ) ? getPreviousVisibleTab.call( me ) : getNextVisibleTab.call( me ) );
me.selectPage( nextId );
me._.tabs[ nextId ][ 0 ].focus();
processed = 1;
- }
- else if ( ( keystroke == 13 || keystroke == 32 ) && me._.tabBarMode )
- {
+ } else if ( ( keystroke == 13 || keystroke == 32 ) && me._.tabBarMode ) {
this.selectPage( this._.currentTabId );
this._.tabBarMode = false;
this._.currentFocusIndex = -1;
- changeFocus( true );
+ changeFocus( 1 );
processed = 1;
}
+ // If user presses enter key in a text box, it implies clicking OK for the dialog.
+ else if ( keystroke == 13 /*ENTER*/ ) {
+ // Don't do that for a target that handles ENTER.
+ var target = evt.data.getTarget();
+ if ( !target.is( 'a', 'button', 'select', 'textarea' ) && ( !target.is( 'input' ) || target.$.type != 'button' ) ) {
+ button = this.getButton( 'ok' );
+ button && CKEDITOR.tools.setTimeout( button.click, 0, button );
+ processed = 1;
+ }
+ stopPropagation = 1; // Always block the propagation (#4269)
+ } else if ( keystroke == 27 /*ESC*/ ) {
+ button = this.getButton( 'cancel' );
+
+ // If there's a Cancel button, click it, else just fire the cancel event and hide the dialog.
+ if ( button )
+ CKEDITOR.tools.setTimeout( button.click, 0, button );
+ else {
+ if ( this.fire( 'cancel', { hide: true } ).hide !== false )
+ this.hide();
+ }
+ stopPropagation = 1; // Always block the propagation (#4269)
+ } else
+ return;
- if ( processed )
- {
- evt.stop();
- evt.data.preventDefault();
- }
+ keypressHandler( evt );
}
- function focusKeyPressHandler( evt )
- {
- processed && evt.data.preventDefault();
+ function keypressHandler( evt ) {
+ if ( processed )
+ evt.data.preventDefault( 1 );
+ else if ( stopPropagation )
+ evt.data.stopPropagation();
}
var dialogElement = this._.element;
+
+ editor.focusManager.add( dialogElement, 1 );
+
// Add the dialog keyboard handlers.
- this.on( 'show', function()
- {
- dialogElement.on( 'keydown', focusKeydownHandler, this, null, 0 );
- // Some browsers instead, don't cancel key events in the keydown, but in the
- // keypress. So we must do a longer trip in those cases. (#4531)
- if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
- dialogElement.on( 'keypress', focusKeyPressHandler, this );
-
- } );
- this.on( 'hide', function()
- {
- dialogElement.removeListener( 'keydown', focusKeydownHandler );
- if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
- dialogElement.removeListener( 'keypress', focusKeyPressHandler );
- } );
- this.on( 'iframeAdded', function( evt )
- {
- var doc = new CKEDITOR.dom.document( evt.data.iframe.$.contentWindow.document );
- doc.on( 'keydown', focusKeydownHandler, this, null, 0 );
- } );
+ this.on( 'show', function() {
+ dialogElement.on( 'keydown', keydownHandler, this );
+
+ // Some browsers instead, don't cancel key events in the keydown, but in the
+ // keypress. So we must do a longer trip in those cases. (#4531,#8985)
+ if ( CKEDITOR.env.opera || CKEDITOR.env.gecko )
+ dialogElement.on( 'keypress', keypressHandler, this );
+
+ });
+ this.on( 'hide', function() {
+ dialogElement.removeListener( 'keydown', keydownHandler );
+ if ( CKEDITOR.env.opera || CKEDITOR.env.gecko )
+ dialogElement.removeListener( 'keypress', keypressHandler );
+
+ // Reset fields state when closing dialog.
+ iterContents( function( item ) {
+ resetField.apply( item );
+ });
+ });
+ this.on( 'iframeAdded', function( evt ) {
+ var doc = new CKEDITOR.dom.document( evt.data.iframe.$.contentWindow.document );
+ doc.on( 'keydown', keydownHandler, this, null, 0 );
+ });
// Auto-focus logic in dialog.
- this.on( 'show', function()
- {
- // Setup tabIndex on showing the dialog instead of on loading
- // to allow dynamic tab order happen in dialog definition.
- setupFocus();
-
- if ( editor.config.dialog_startupFocusTab
- && me._.pageCount > 1 )
- {
- me._.tabBarMode = true;
- me._.tabs[ me._.currentTabId ][ 0 ].focus();
- }
- else if ( !this._.hasFocus )
- {
- this._.currentFocusIndex = -1;
+ this.on( 'show', function() {
+ // Setup tabIndex on showing the dialog instead of on loading
+ // to allow dynamic tab order happen in dialog definition.
+ setupFocus();
- // Decide where to put the initial focus.
- if ( definition.onFocus )
- {
- var initialFocus = definition.onFocus.call( this );
- // Focus the field that the user specified.
- initialFocus && initialFocus.focus();
- }
- // Focus the first field in layout order.
- else
- changeFocus( true );
+ if ( editor.config.dialog_startupFocusTab && me._.pageCount > 1 ) {
+ me._.tabBarMode = true;
+ me._.tabs[ me._.currentTabId ][ 0 ].focus();
+ } else if ( !this._.hasFocus ) {
+ this._.currentFocusIndex = -1;
- /*
- * IE BUG: If the initial focus went into a non-text element (e.g. button),
- * then IE would still leave the caret inside the editing area.
- */
- if ( this._.editor.mode == 'wysiwyg' && CKEDITOR.env.ie )
- {
- var $selection = editor.document.$.selection,
- $range = $selection.createRange();
-
- if ( $range )
- {
- if ( $range.parentElement && $range.parentElement().ownerDocument == editor.document.$
- || $range.item && $range.item( 0 ).ownerDocument == editor.document.$ )
- {
- var $myRange = document.body.createTextRange();
- $myRange.moveToElementText( this.getElement().getFirst().$ );
- $myRange.collapse( true );
- $myRange.select();
- }
- }
- }
+ // Decide where to put the initial focus.
+ if ( definition.onFocus ) {
+ var initialFocus = definition.onFocus.call( this );
+ // Focus the field that the user specified.
+ initialFocus && initialFocus.focus();
}
- }, this, null, 0xffffffff );
+ // Focus the first field in layout order.
+ else
+ changeFocus( 1 );
+ }
+ }, this, null, 0xffffffff );
// IE6 BUG: Text fields and text areas are only half-rendered the first time the dialog appears in IE6 (#2661).
// This is still needed after [2708] and [2709] because text fields in hidden TR tags are still broken.
- if ( CKEDITOR.env.ie6Compat )
- {
- this.on( 'load', function( evt )
- {
- var outer = this.getElement(),
- inner = outer.getFirst();
- inner.remove();
- inner.appendTo( outer );
- }, this );
+ if ( CKEDITOR.env.ie6Compat ) {
+ this.on( 'load', function( evt ) {
+ var outer = this.getElement(),
+ inner = outer.getFirst();
+ inner.remove();
+ inner.appendTo( outer );
+ }, this );
}
initDragAndDrop( this );
@@ -495,197 +583,209 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
( new CKEDITOR.dom.text( definition.title, CKEDITOR.document ) ).appendTo( this.parts.title );
// Insert the tabs and contents.
- for ( var i = 0 ; i < definition.contents.length ; i++ )
- {
- var page = definition.contents[i];
+ for ( i = 0; i < definition.contents.length; i++ ) {
+ var page = definition.contents[ i ];
page && this.addPage( page );
}
- this.parts['tabs'].on( 'click', function( evt )
- {
- var target = evt.data.getTarget();
- // If we aren't inside a tab, bail out.
- if ( target.hasClass( 'cke_dialog_tab' ) )
- {
- // Get the ID of the tab, without the 'cke_' prefix and the unique number suffix.
- var id = target.$.id;
- this.selectPage( id.substring( 4, id.lastIndexOf( '_' ) ) );
-
- if ( this._.tabBarMode )
- {
- this._.tabBarMode = false;
- this._.currentFocusIndex = -1;
- changeFocus( true );
- }
- evt.data.preventDefault();
- }
- }, this );
+ this.parts[ 'tabs' ].on( 'click', function( evt ) {
+ var target = evt.data.getTarget();
+ // If we aren't inside a tab, bail out.
+ if ( target.hasClass( 'cke_dialog_tab' ) ) {
+ // Get the ID of the tab, without the 'cke_' prefix and the unique number suffix.
+ var id = target.$.id;
+ this.selectPage( id.substring( 4, id.lastIndexOf( '_' ) ) );
+
+ if ( this._.tabBarMode ) {
+ this._.tabBarMode = false;
+ this._.currentFocusIndex = -1;
+ changeFocus( 1 );
+ }
+ evt.data.preventDefault();
+ }
+ }, this );
// Insert buttons.
var buttonsHtml = [],
- buttons = CKEDITOR.dialog._.uiElementBuilders.hbox.build( this,
- {
- type : 'hbox',
- className : 'cke_dialog_footer_buttons',
- widths : [],
- children : definition.buttons
- }, buttonsHtml ).getChild();
+ buttons = CKEDITOR.dialog._.uiElementBuilders.hbox.build( this, {
+ type: 'hbox',
+ className: 'cke_dialog_footer_buttons',
+ widths: [],
+ children: definition.buttons
+ }, buttonsHtml ).getChild();
this.parts.footer.setHtml( buttonsHtml.join( '' ) );
- for ( i = 0 ; i < buttons.length ; i++ )
- this._.buttons[ buttons[i].id ] = buttons[i];
+ for ( i = 0; i < buttons.length; i++ )
+ this._.buttons[ buttons[ i ].id ] = buttons[ i ];
};
// Focusable interface. Use it via dialog.addFocusable.
- function Focusable( dialog, element, index )
- {
+ function Focusable( dialog, element, index ) {
this.element = element;
this.focusIndex = index;
// TODO: support tabIndex for focusables.
this.tabIndex = 0;
- this.isFocusable = function()
- {
+ this.isFocusable = function() {
return !element.getAttribute( 'disabled' ) && element.isVisible();
};
- this.focus = function()
- {
+ this.focus = function() {
dialog._.currentFocusIndex = this.focusIndex;
this.element.focus();
};
// Bind events
- element.on( 'keydown', function( e )
- {
- if ( e.data.getKeystroke() in { 32:1, 13:1 } )
- this.fire( 'click' );
- } );
- element.on( 'focus', function()
- {
- this.fire( 'mouseover' );
- } );
- element.on( 'blur', function()
- {
- this.fire( 'mouseout' );
- } );
+ element.on( 'keydown', function( e ) {
+ if ( e.data.getKeystroke() in { 32:1,13:1 } )
+ this.fire( 'click' );
+ });
+ element.on( 'focus', function() {
+ this.fire( 'mouseover' );
+ });
+ element.on( 'blur', function() {
+ this.fire( 'mouseout' );
+ });
}
- CKEDITOR.dialog.prototype =
- {
- destroy : function()
- {
+ // Re-layout the dialog on window resize.
+ function resizeWithWindow( dialog ) {
+ var win = CKEDITOR.document.getWindow();
+ function resizeHandler() { dialog.layout(); }
+ win.on( 'resize', resizeHandler );
+ dialog.on( 'hide', function() { win.removeListener( 'resize', resizeHandler ); } );
+ }
+
+ CKEDITOR.dialog.prototype = {
+ destroy: function() {
this.hide();
this._.element.remove();
},
/**
* Resizes the dialog.
+ *
+ * dialogObj.resize( 800, 640 );
+ *
+ * @method
* @param {Number} width The width of the dialog in pixels.
* @param {Number} height The height of the dialog in pixels.
- * @function
- * @example
- * dialogObj.resize( 800, 640 );
*/
- resize : (function()
- {
- return function( width, height )
- {
+ resize: (function() {
+ return function( width, height ) {
if ( this._.contentSize && this._.contentSize.width == width && this._.contentSize.height == height )
return;
- CKEDITOR.dialog.fire( 'resize',
- {
- dialog : this,
- skin : this._.editor.skinName,
- width : width,
- height : height
- }, this._.editor );
+ CKEDITOR.dialog.fire( 'resize', {
+ dialog: this,
+ width: width,
+ height: height
+ }, this._.editor );
+
+ this.fire( 'resize', {
+ width: width,
+ height: height
+ }, this._.editor );
+
+ var contents = this.parts.contents;
+ contents.setStyles({
+ width: width + 'px',
+ height: height + 'px'
+ });
+
+ // Update dialog position when dimension get changed in RTL.
+ if ( this._.editor.lang.dir == 'rtl' && this._.position )
+ this._.position.x = CKEDITOR.document.getWindow().getViewPaneSize().width - this._.contentSize.width - parseInt( this._.element.getFirst().getStyle( 'right' ), 10 );
- this._.contentSize = { width : width, height : height };
- this._.updateSize = true;
+ this._.contentSize = { width: width, height: height };
};
})(),
/**
* Gets the current size of the dialog in pixels.
- * @returns {Object} An object with "width" and "height" properties.
- * @example
+ *
* var width = dialogObj.getSize().width;
+ *
+ * @returns {Object}
+ * @returns {Number} return.width
+ * @returns {Number} return.height
*/
- getSize : function()
- {
- if ( !this._.updateSize )
- return this._.size;
+ getSize: function() {
var element = this._.element.getFirst();
- var size = this._.size = { width : element.$.offsetWidth || 0, height : element.$.offsetHeight || 0};
-
- // If either the offsetWidth or offsetHeight is 0, the element isn't visible.
- this._.updateSize = !size.width || !size.height;
-
- return size;
+ return { width: element.$.offsetWidth || 0, height: element.$.offsetHeight || 0 };
},
/**
- * Moves the dialog to an (x, y) coordinate relative to the window.
- * @function
+ * Moves the dialog to an `(x, y)` coordinate relative to the window.
+ *
+ * dialogObj.move( 10, 40 );
+ *
+ * @method
* @param {Number} x The target x-coordinate.
* @param {Number} y The target y-coordinate.
- * @example
- * dialogObj.move( 10, 40 );
+ * @param {Boolean} save Flag indicate whether the dialog position should be remembered on next open up.
*/
- move : (function()
- {
- var isFixed;
- return function( x, y )
- {
- // The dialog may be fixed positioned or absolute positioned. Ask the
- // browser what is the current situation first.
- var element = this._.element.getFirst();
- if ( isFixed === undefined )
- isFixed = element.getComputedStyle( 'position' ) == 'fixed';
-
- if ( isFixed && this._.position && this._.position.x == x && this._.position.y == y )
- return;
+ move: function( x, y, save ) {
+
+ // The dialog may be fixed positioned or absolute positioned. Ask the
+ // browser what is the current situation first.
+ var element = this._.element.getFirst(), rtl = this._.editor.lang.dir == 'rtl';
+ var isFixed = element.getComputedStyle( 'position' ) == 'fixed';
+
+ // (#8888) In some cases of a very small viewport, dialog is incorrectly
+ // positioned in IE7. It also happens that it remains sticky and user cannot
+ // scroll down/up to reveal dialog's content below/above the viewport; this is
+ // cumbersome.
+ // The only way to fix this is to move mouse out of the browser and
+ // go back to see that dialog position is automagically fixed. No events,
+ // no style change - pure magic. This is a IE7 rendering issue, which can be
+ // fixed with dummy style redraw on each move.
+ if ( CKEDITOR.env.ie )
+ element.setStyle( 'zoom', '100%' );
+
+ if ( isFixed && this._.position && this._.position.x == x && this._.position.y == y )
+ return;
- // Save the current position.
- this._.position = { x : x, y : y };
+ // Save the current position.
+ this._.position = { x: x, y: y };
- // If not fixed positioned, add scroll position to the coordinates.
- if ( !isFixed )
- {
- var scrollPosition = CKEDITOR.document.getWindow().getScrollPosition();
- x += scrollPosition.x;
- y += scrollPosition.y;
- }
+ // If not fixed positioned, add scroll position to the coordinates.
+ if ( !isFixed ) {
+ var scrollPosition = CKEDITOR.document.getWindow().getScrollPosition();
+ x += scrollPosition.x;
+ y += scrollPosition.y;
+ }
- element.setStyles(
- {
- 'left' : ( x > 0 ? x : 0 ) + 'px',
- 'top' : ( y > 0 ? y : 0 ) + 'px'
- });
- };
- })(),
+ // Translate coordinate for RTL.
+ if ( rtl ) {
+ var dialogSize = this.getSize(), viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize();
+ x = viewPaneSize.width - dialogSize.width - x;
+ }
+
+ var styles = { 'top': ( y > 0 ? y : 0 ) + 'px' };
+ styles[ rtl ? 'right' : 'left' ] = ( x > 0 ? x : 0 ) + 'px';
+
+ element.setStyles( styles );
+
+ save && ( this._.moved = 1 );
+ },
/**
* Gets the dialog's position in the window.
- * @returns {Object} An object with "x" and "y" properties.
- * @example
- * var dialogX = dialogObj.getPosition().x;
+ *
+ * var dialogX = dialogObj.getPosition().x;
+ *
+ * @returns {Object}
+ * @returns {Number} return.x
+ * @returns {Number} return.y
*/
- getPosition : function(){ return CKEDITOR.tools.extend( {}, this._.position ); },
+ getPosition: function() {
+ return CKEDITOR.tools.extend( {}, this._.position );
+ },
/**
* Shows the dialog box.
- * @example
- * dialogObj.show();
+ *
+ * dialogObj.show();
*/
- show : function()
- {
- var editor = this._.editor;
- if ( editor.mode == 'wysiwyg' && CKEDITOR.env.ie )
- {
- var selection = editor.getSelection();
- selection && selection.lock();
- }
-
+ show: function() {
// Insert the dialog's element to the root document.
var element = this._.element;
var definition = this.definition;
@@ -695,25 +795,23 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
element.setStyle( 'display', 'block' );
// FIREFOX BUG: Fix vanishing caret for Firefox 2 or Gecko 1.8.
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 )
- {
+ if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) {
var dialogElement = this.parts.dialog;
dialogElement.setStyle( 'position', 'absolute' );
- setTimeout( function()
- {
- dialogElement.setStyle( 'position', 'fixed' );
- }, 0 );
+ setTimeout( function() {
+ dialogElement.setStyle( 'position', 'fixed' );
+ }, 0 );
}
// First, set the dialog to an appropriate size.
- this.resize( definition.minWidth, definition.minHeight );
+ this.resize( this._.contentSize && this._.contentSize.width || definition.width || definition.minWidth, this._.contentSize && this._.contentSize.height || definition.height || definition.minHeight );
// Reset all inputs back to their default value.
this.reset();
// Select the first tab by default.
- this.selectPage( this.definition.contents[0].id );
+ this.selectPage( this.definition.contents[ 0 ].id );
// Set z-index.
if ( CKEDITOR.dialog._.currentZIndex === null )
@@ -721,120 +819,162 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
this._.element.getFirst().setStyle( 'z-index', CKEDITOR.dialog._.currentZIndex += 10 );
// Maintain the dialog ordering and dialog cover.
- // Also register key handlers if first dialog.
- if ( CKEDITOR.dialog._.currentTop === null )
- {
+ if ( CKEDITOR.dialog._.currentTop === null ) {
CKEDITOR.dialog._.currentTop = this;
this._.parentDialog = null;
showCover( this._.editor );
- element.on( 'keydown', accessKeyDownHandler );
- element.on( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler );
-
- // Prevent some keys from bubbling up. (#4269)
- for ( var event in { keyup :1, keydown :1, keypress :1 } )
- element.on( event, preventKeyBubbling );
- }
- else
- {
+ } else {
this._.parentDialog = CKEDITOR.dialog._.currentTop;
var parentElement = this._.parentDialog.getElement().getFirst();
- parentElement.$.style.zIndex -= Math.floor( this._.editor.config.baseFloatZIndex / 2 );
+ parentElement.$.style.zIndex -= Math.floor( this._.editor.config.baseFloatZIndex / 2 );
CKEDITOR.dialog._.currentTop = this;
}
- // Register the Esc hotkeys.
- registerAccessKey( this, this, '\x1b', null, function()
- {
- this.getButton( 'cancel' ) && this.getButton( 'cancel' ).click();
- } );
+ element.on( 'keydown', accessKeyDownHandler );
+ element.on( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler );
// Reset the hasFocus state.
this._.hasFocus = false;
- // Rearrange the dialog to the middle of the window.
- CKEDITOR.tools.setTimeout( function()
- {
- var viewSize = CKEDITOR.document.getWindow().getViewPaneSize();
- var dialogSize = this.getSize();
+ CKEDITOR.tools.setTimeout( function() {
+ this.layout();
+ resizeWithWindow( this );
- // We're using definition size for initial position because of
- // offten corrupted data in offsetWidth at this point. (#4084)
- this.move( ( viewSize.width - definition.minWidth ) / 2, ( viewSize.height - dialogSize.height ) / 2 );
+ this.parts.dialog.setStyle( 'visibility', '' );
- this.parts.dialog.setStyle( 'visibility', '' );
+ // Execute onLoad for the first show.
+ this.fireOnce( 'load', {} );
+ CKEDITOR.ui.fire( 'ready', this );
- // Execute onLoad for the first show.
- this.fireOnce( 'load', {} );
- this.fire( 'show', {} );
- this._.editor.fire( 'dialogShow', this );
+ this.fire( 'show', {} );
+ this._.editor.fire( 'dialogShow', this );
- // Save the initial values of the dialog.
- this.foreach( function( contentObj ) { contentObj.setInitValue && contentObj.setInitValue(); } );
+ if ( !this._.parentDialog )
+ this._.editor.focusManager.lock();
- },
- 100, this );
+ // Save the initial values of the dialog.
+ this.foreach( function( contentObj ) {
+ contentObj.setInitValue && contentObj.setInitValue();
+ });
+
+ }, 100, this );
+ },
+
+ /**
+ * Rearrange the dialog to its previous position or the middle of the window.
+ *
+ * @since 3.5
+ */
+ layout: function() {
+ var el = this.parts.dialog;
+ var dialogSize = this.getSize();
+ var win = CKEDITOR.document.getWindow(),
+ viewSize = win.getViewPaneSize();
+
+ var posX = ( viewSize.width - dialogSize.width ) / 2,
+ posY = ( viewSize.height - dialogSize.height ) / 2;
+
+ // Switch to absolute position when viewport is smaller than dialog size.
+ if ( !CKEDITOR.env.ie6Compat ) {
+ if ( dialogSize.height + ( posY > 0 ? posY : 0 ) > viewSize.height ||
+ dialogSize.width + ( posX > 0 ? posX : 0 ) > viewSize.width )
+ el.setStyle( 'position', 'absolute' );
+ else
+ el.setStyle( 'position', 'fixed' );
+ }
+
+ this.move( this._.moved ? this._.position.x : posX,
+ this._.moved ? this._.position.y : posY );
},
/**
* Executes a function for each UI element.
+ *
* @param {Function} fn Function to execute for each UI element.
* @returns {CKEDITOR.dialog} The current dialog object.
*/
- foreach : function( fn )
- {
- for ( var i in this._.contents )
- {
- for ( var j in this._.contents[i] )
- fn( this._.contents[i][j] );
+ foreach: function( fn ) {
+ for ( var i in this._.contents ) {
+ for ( var j in this._.contents[ i ] )
+ fn.call( this, this._.contents[ i ][ j ] );
}
return this;
},
/**
* Resets all input values in the dialog.
- * @example
- * dialogObj.reset();
- * @returns {CKEDITOR.dialog} The current dialog object.
+ *
+ * dialogObj.reset();
+ *
+ * @method
+ * @chainable
*/
- reset : (function()
- {
- var fn = function( widget ){ if ( widget.reset ) widget.reset( 1 ); };
- return function(){ this.foreach( fn ); return this; };
+ reset: (function() {
+ var fn = function( widget ) {
+ if ( widget.reset )
+ widget.reset( 1 );
+ };
+ return function() {
+ this.foreach( fn );
+ return this;
+ };
})(),
- setupContent : function()
- {
+
+ /**
+ * Calls the {@link CKEDITOR.dialog.definition.uiElement#setup} method of each
+ * of the UI elements, with the arguments passed through it.
+ * It is usually being called when the dialog is opened, to put the initial value inside the field.
+ *
+ * dialogObj.setupContent();
+ *
+ * var timestamp = ( new Date() ).valueOf();
+ * dialogObj.setupContent( timestamp );
+ */
+ setupContent: function() {
var args = arguments;
- this.foreach( function( widget )
- {
- if ( widget.setup )
- widget.setup.apply( widget, args );
- });
+ this.foreach( function( widget ) {
+ if ( widget.setup )
+ widget.setup.apply( widget, args );
+ });
},
- commitContent : function()
- {
+ /**
+ * Calls the {@link CKEDITOR.dialog.definition.uiElement#commit} method of each
+ * of the UI elements, with the arguments passed through it.
+ * It is usually being called when the user confirms the dialog, to process the values.
+ *
+ * dialogObj.commitContent();
+ *
+ * var timestamp = ( new Date() ).valueOf();
+ * dialogObj.commitContent( timestamp );
+ */
+ commitContent: function() {
var args = arguments;
- this.foreach( function( widget )
- {
- if ( widget.commit )
- widget.commit.apply( widget, args );
- });
+ this.foreach( function( widget ) {
+ // Make sure IE triggers "change" event on last focused input before closing the dialog. (#7915)
+ if ( CKEDITOR.env.ie && this._.currentFocusIndex == widget.focusIndex )
+ widget.getInputElement().$.blur();
+
+ if ( widget.commit )
+ widget.commit.apply( widget, args );
+ });
},
/**
* Hides the dialog box.
- * @example
- * dialogObj.hide();
+ *
+ * dialogObj.hide();
*/
- hide : function()
- {
+ hide: function() {
if ( !this.parts.dialog.isVisible() )
return;
this.fire( 'hide', {} );
this._.editor.fire( 'dialogHide', this );
+ // Reset the tab page.
+ this.selectPage( this._.tabIdList[ 0 ] );
var element = this._.element;
element.setStyle( 'display', 'none' );
this.parts.dialog.setStyle( 'visibility', 'hidden' );
@@ -842,68 +982,59 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
unregisterAccessKey( this );
// Close any child(top) dialogs first.
- while( CKEDITOR.dialog._.currentTop != this )
+ while ( CKEDITOR.dialog._.currentTop != this )
CKEDITOR.dialog._.currentTop.hide();
// Maintain dialog ordering and remove cover if needed.
if ( !this._.parentDialog )
- hideCover();
- else
- {
+ hideCover( this._.editor );
+ else {
var parentElement = this._.parentDialog.getElement().getFirst();
parentElement.setStyle( 'z-index', parseInt( parentElement.$.style.zIndex, 10 ) + Math.floor( this._.editor.config.baseFloatZIndex / 2 ) );
}
CKEDITOR.dialog._.currentTop = this._.parentDialog;
// Deduct or clear the z-index.
- if ( !this._.parentDialog )
- {
+ if ( !this._.parentDialog ) {
CKEDITOR.dialog._.currentZIndex = null;
// Remove access key handlers.
element.removeListener( 'keydown', accessKeyDownHandler );
element.removeListener( CKEDITOR.env.opera ? 'keypress' : 'keyup', accessKeyUpHandler );
- // Remove bubbling-prevention handler. (#4269)
- for ( var event in { keyup :1, keydown :1, keypress :1 } )
- element.removeListener( event, preventKeyBubbling );
-
var editor = this._.editor;
editor.focus();
- if ( editor.mode == 'wysiwyg' && CKEDITOR.env.ie )
- {
- var selection = editor.getSelection();
- selection && selection.unlock( true );
- }
- }
- else
+ // Give a while before unlock, waiting for focus to return to the editable. (#172)
+ setTimeout( function() { editor.focusManager.unlock(); }, 0 );
+
+ } else
CKEDITOR.dialog._.currentZIndex -= 10;
delete this._.parentDialog;
// Reset the initial values of the dialog.
- this.foreach( function( contentObj ) { contentObj.resetInitValue && contentObj.resetInitValue(); } );
+ this.foreach( function( contentObj ) {
+ contentObj.resetInitValue && contentObj.resetInitValue();
+ });
},
/**
* Adds a tabbed page into the dialog.
+ *
* @param {Object} contents Content definition.
- * @example
*/
- addPage : function( contents )
- {
+ addPage: function( contents ) {
var pageHtml = [],
titleHtml = contents.label ? ' title="' + CKEDITOR.tools.htmlEncode( contents.label ) + '"' : '',
elements = contents.elements,
- vbox = CKEDITOR.dialog._.uiElementBuilders.vbox.build( this,
- {
- type : 'vbox',
- className : 'cke_dialog_page_contents',
- children : contents.elements,
- expand : !!contents.expand,
- padding : contents.padding,
- style : contents.style || 'width: 100%; height: 100%;'
- }, pageHtml );
+ vbox = CKEDITOR.dialog._.uiElementBuilders.vbox.build( this, {
+ type: 'vbox',
+ className: 'cke_dialog_page_contents',
+ children: contents.elements,
+ expand: !!contents.expand,
+ padding: contents.padding,
+ style: contents.style || 'width: 100%;'
+ }, pageHtml );
// Create the HTML for the tab and the content block.
var page = CKEDITOR.dom.element.createFromHtml( pageHtml.join( '' ) );
@@ -911,7 +1042,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
var env = CKEDITOR.env;
var tabId = 'cke_' + contents.id + '_' + CKEDITOR.tools.getNextNumber(),
- tab = CKEDITOR.dom.element.createFromHtml( [
+ tab = CKEDITOR.dom.element.createFromHtml( [
'<a class="cke_dialog_tab"',
( this._.pageCount > 0 ? ' cke_last' : 'cke_first' ),
titleHtml,
@@ -923,7 +1054,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
' role="tab">',
contents.label,
'</a>'
- ].join( '' ) );
+ ].join( '' ) );
page.setAttribute( 'aria-labelledby', tabId );
@@ -938,8 +1069,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
cursor,
children = vbox.getChild();
- while ( ( cursor = children.shift() ) )
- {
+ while ( ( cursor = children.shift() ) ) {
contentMap[ cursor.id ] = cursor;
if ( typeof( cursor.getChild ) == 'function' )
children.push.apply( children, cursor.getChild() );
@@ -954,84 +1084,75 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
this.parts.tabs.append( tab );
// Add access key handlers if access key is defined.
- if ( contents.accessKey )
- {
- registerAccessKey( this, this, 'CTRL+' + contents.accessKey,
- tabAccessKeyDown, tabAccessKeyUp );
+ if ( contents.accessKey ) {
+ registerAccessKey( this, this, 'CTRL+' + contents.accessKey, tabAccessKeyDown, tabAccessKeyUp );
this._.accessKeyMap[ 'CTRL+' + contents.accessKey ] = contents.id;
}
},
/**
* Activates a tab page in the dialog by its id.
+ *
+ * dialogObj.selectPage( 'tab_1' );
+ *
* @param {String} id The id of the dialog tab to be activated.
- * @example
- * dialogObj.selectPage( 'tab_1' );
*/
- selectPage : function( id )
- {
+ selectPage: function( id ) {
if ( this._.currentTabId == id )
return;
// Returning true means that the event has been canceled
- if ( this.fire( 'selectPage', { page : id, currentPage : this._.currentTabId } ) === true )
+ if ( this.fire( 'selectPage', { page: id, currentPage: this._.currentTabId } ) === true )
return;
// Hide the non-selected tabs and pages.
- for ( var i in this._.tabs )
- {
- var tab = this._.tabs[i][0],
- page = this._.tabs[i][1];
- if ( i != id )
- {
+ for ( var i in this._.tabs ) {
+ var tab = this._.tabs[ i ][ 0 ],
+ page = this._.tabs[ i ][ 1 ];
+ if ( i != id ) {
tab.removeClass( 'cke_dialog_tab_selected' );
page.hide();
}
page.setAttribute( 'aria-hidden', i != id );
}
- var selected = this._.tabs[id];
- selected[0].addClass( 'cke_dialog_tab_selected' );
-
- // [IE] a unvisible input[type='text'] will enlarge it's width
- // if it's value is long when it show( #5649 )
- // so we clear it's value before it shows and then recover it
- if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat )
- {
- clearOrRecoverTextInputValue( selected[1] );
- selected[1].show();
- setTimeout( function()
- {
- clearOrRecoverTextInputValue( selected[1], true );
+ var selected = this._.tabs[ id ];
+ selected[ 0 ].addClass( 'cke_dialog_tab_selected' );
+
+ // [IE] an invisible input[type='text'] will enlarge it's width
+ // if it's value is long when it shows, so we clear it's value
+ // before it shows and then recover it (#5649)
+ if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) {
+ clearOrRecoverTextInputValue( selected[ 1 ] );
+ selected[ 1 ].show();
+ setTimeout( function() {
+ clearOrRecoverTextInputValue( selected[ 1 ], 1 );
}, 0 );
- }
- else
- {
- selected[1].show();
- }
-
+ } else
+ selected[ 1 ].show();
this._.currentTabId = id;
this._.currentTabIndex = CKEDITOR.tools.indexOf( this._.tabIdList, id );
},
- // Dialog state-specific style updates.
- updateStyle : function()
- {
+ /**
+ * Dialog state-specific style updates.
+ */
+ updateStyle: function() {
// If only a single page shown, a different style is used in the central pane.
this.parts.dialog[ ( this._.pageCount === 1 ? 'add' : 'remove' ) + 'Class' ]( 'cke_single_page' );
},
/**
* Hides a page's tab away from the dialog.
+ *
+ * dialog.hidePage( 'tab_3' );
+ *
* @param {String} id The page's Id.
- * @example
- * dialog.hidePage( 'tab_3' );
*/
- hidePage : function( id )
- {
- var tab = this._.tabs[id] && this._.tabs[id][0];
- if ( !tab || this._.pageCount == 1 )
+ hidePage: function( id ) {
+ var tab = this._.tabs[ id ] && this._.tabs[ id ][ 0 ];
+ if ( !tab || this._.pageCount == 1 || !tab.isVisible() )
return;
// Switch to other tab first when we're hiding the active tab.
else if ( id == this._.currentTabId )
@@ -1044,13 +1165,13 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* Unhides a page's tab.
+ *
+ * dialog.showPage( 'tab_2' );
+ *
* @param {String} id The page's Id.
- * @example
- * dialog.showPage( 'tab_2' );
*/
- showPage : function( id )
- {
- var tab = this._.tabs[id] && this._.tabs[id][0];
+ showPage: function( id ) {
+ var tab = this._.tabs[ id ] && this._.tabs[ id ][ 0 ];
if ( !tab )
return;
tab.show();
@@ -1060,130 +1181,131 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* Gets the root DOM element of the dialog.
- * @returns {CKEDITOR.dom.element} The <span> element containing this dialog.
- * @example
- * var dialogElement = dialogObj.getElement().getFirst();
- * dialogElement.setStyle( 'padding', '5px' );
+ *
+ * var dialogElement = dialogObj.getElement().getFirst();
+ * dialogElement.setStyle( 'padding', '5px' );
+ *
+ * @returns {CKEDITOR.dom.element} The `<span>` element containing this dialog.
*/
- getElement : function()
- {
+ getElement: function() {
return this._.element;
},
/**
* Gets the name of the dialog.
+ *
+ * var dialogName = dialogObj.getName();
+ *
* @returns {String} The name of this dialog.
- * @example
- * var dialogName = dialogObj.getName();
*/
- getName : function()
- {
+ getName: function() {
return this._.name;
},
/**
* Gets a dialog UI element object from a dialog page.
+ *
+ * dialogObj.getContentElement( 'tabId', 'elementId' ).setValue( 'Example' );
+ *
* @param {String} pageId id of dialog page.
* @param {String} elementId id of UI element.
- * @example
* @returns {CKEDITOR.ui.dialog.uiElement} The dialog UI element.
*/
- getContentElement : function( pageId, elementId )
- {
+ getContentElement: function( pageId, elementId ) {
var page = this._.contents[ pageId ];
return page && page[ elementId ];
},
/**
* Gets the value of a dialog UI element.
+ *
+ * alert( dialogObj.getValueOf( 'tabId', 'elementId' ) );
+ *
* @param {String} pageId id of dialog page.
* @param {String} elementId id of UI element.
- * @example
* @returns {Object} The value of the UI element.
*/
- getValueOf : function( pageId, elementId )
- {
+ getValueOf: function( pageId, elementId ) {
return this.getContentElement( pageId, elementId ).getValue();
},
/**
* Sets the value of a dialog UI element.
+ *
+ * dialogObj.setValueOf( 'tabId', 'elementId', 'Example' );
+ *
* @param {String} pageId id of the dialog page.
* @param {String} elementId id of the UI element.
* @param {Object} value The new value of the UI element.
- * @example
*/
- setValueOf : function( pageId, elementId, value )
- {
+ setValueOf: function( pageId, elementId, value ) {
return this.getContentElement( pageId, elementId ).setValue( value );
},
/**
* Gets the UI element of a button in the dialog's button row.
+ *
+ * @returns {CKEDITOR.ui.dialog.button} The button object.
+ *
* @param {String} id The id of the button.
- * @example
- * @returns {CKEDITOR.ui.dialog.button} The button object.
*/
- getButton : function( id )
- {
+ getButton: function( id ) {
return this._.buttons[ id ];
},
/**
* Simulates a click to a dialog button in the dialog's button row.
+ *
+ * @returns The return value of the dialog's `click` event.
+ *
* @param {String} id The id of the button.
- * @example
- * @returns The return value of the dialog's "click" event.
*/
- click : function( id )
- {
+ click: function( id ) {
return this._.buttons[ id ].click();
},
/**
* Disables a dialog button.
+ *
* @param {String} id The id of the button.
- * @example
*/
- disableButton : function( id )
- {
+ disableButton: function( id ) {
return this._.buttons[ id ].disable();
},
/**
* Enables a dialog button.
+ *
* @param {String} id The id of the button.
- * @example
*/
- enableButton : function( id )
- {
+ enableButton: function( id ) {
return this._.buttons[ id ].enable();
},
/**
* Gets the number of pages in the dialog.
+ *
* @returns {Number} Page count.
*/
- getPageCount : function()
- {
+ getPageCount: function() {
return this._.pageCount;
},
/**
* Gets the editor instance which opened this dialog.
+ *
* @returns {CKEDITOR.editor} Parent editor instances.
*/
- getParentEditor : function()
- {
+ getParentEditor: function() {
return this._.editor;
},
/**
* Gets the element that was selected when opening the dialog, if any.
- * @returns {CKEDITOR.dom.element} The element that was selected, or null.
+ *
+ * @returns {CKEDITOR.dom.element} The element that was selected, or `null`.
*/
- getSelectedElement : function()
- {
+ getSelectedElement: function() {
return this.getParentEditor().getSelection().getSelectedElement();
},
@@ -1194,326 +1316,358 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
* @param {Number} [index]
*/
addFocusable: function( element, index ) {
- if ( typeof index == 'undefined' )
- {
+ if ( typeof index == 'undefined' ) {
index = this._.focusList.length;
this._.focusList.push( new Focusable( this, element, index ) );
- }
- else
- {
+ } else {
this._.focusList.splice( index, 0, new Focusable( this, element, index ) );
- for ( var i = index + 1 ; i < this._.focusList.length ; i++ )
+ for ( var i = index + 1; i < this._.focusList.length; i++ )
this._.focusList[ i ].focusIndex++;
}
}
};
- CKEDITOR.tools.extend( CKEDITOR.dialog,
+ CKEDITOR.tools.extend( CKEDITOR.dialog, {
/**
- * @lends CKEDITOR.dialog
+ * Registers a dialog.
+ *
+ * // Full sample plugin, which does not only register a dialog window but also adds an item to the context menu.
+ * // To open the dialog window, choose "Open dialog" in the context menu.
+ * CKEDITOR.plugins.add( 'myplugin', {
+ * init: function( editor ) {
+ * editor.addCommand( 'mydialog',new CKEDITOR.dialogCommand( 'mydialog' ) );
+ *
+ * if ( editor.contextMenu ) {
+ * editor.addMenuGroup( 'mygroup', 10 );
+ * editor.addMenuItem( 'My Dialog', {
+ * label: 'Open dialog',
+ * command: 'mydialog',
+ * group: 'mygroup'
+ * } );
+ * editor.contextMenu.addListener( function( element ) {
+ * return { 'My Dialog': CKEDITOR.TRISTATE_OFF };
+ * } );
+ * }
+ *
+ * CKEDITOR.dialog.add( 'mydialog', function( api ) {
+ * // CKEDITOR.dialog.definition
+ * var dialogDefinition = {
+ * title: 'Sample dialog',
+ * minWidth: 390,
+ * minHeight: 130,
+ * contents: [
+ * {
+ * id: 'tab1',
+ * label: 'Label',
+ * title: 'Title',
+ * expand: true,
+ * padding: 0,
+ * elements: [
+ * {
+ * type: 'html',
+ * html: '<p>This is some sample HTML content.</p>'
+ * },
+ * {
+ * type: 'textarea',
+ * id: 'textareaId',
+ * rows: 4,
+ * cols: 40
+ * }
+ * ]
+ * }
+ * ],
+ * buttons: [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ],
+ * onOk: function() {
+ * // "this" is now a CKEDITOR.dialog object.
+ * // Accessing dialog elements:
+ * var textareaObj = this.getContentElement( 'tab1', 'textareaId' );
+ * alert( "You have entered: " + textareaObj.getValue() );
+ * }
+ * };
+ *
+ * return dialogDefinition;
+ * } );
+ * }
+ * } );
+ *
+ * CKEDITOR.replace( 'editor1', { extraPlugins: 'myplugin' } );
+ *
+ * @static
+ * @param {String} name The dialog's name.
+ * @param {Function/String} dialogDefinition
+ * A function returning the dialog's definition, or the URL to the `.js` file holding the function.
+ * The function should accept an argument `editor` which is the current editor instance, and
+ * return an object conforming to {@link CKEDITOR.dialog.definition}.
+ * @see CKEDITOR.dialog.definition
*/
- {
- /**
- * Registers a dialog.
- * @param {String} name The dialog's name.
- * @param {Function|String} dialogDefinition
- * A function returning the dialog's definition, or the URL to the .js file holding the function.
- * The function should accept an argument "editor" which is the current editor instance, and
- * return an object conforming to {@link CKEDITOR.dialog.dialogDefinition}.
- * @example
- * @see CKEDITOR.dialog.dialogDefinition
- */
- add : function( name, dialogDefinition )
- {
- // Avoid path registration from multiple instances override definition.
- if ( !this._.dialogDefinitions[name]
- || typeof dialogDefinition == 'function' )
- this._.dialogDefinitions[name] = dialogDefinition;
- },
+ add: function( name, dialogDefinition ) {
+ // Avoid path registration from multiple instances override definition.
+ if ( !this._.dialogDefinitions[ name ] || typeof dialogDefinition == 'function' )
+ this._.dialogDefinitions[ name ] = dialogDefinition;
+ },
- exists : function( name )
- {
- return !!this._.dialogDefinitions[ name ];
- },
+ /**
+ * @static
+ * @todo
+ */
+ exists: function( name ) {
+ return !!this._.dialogDefinitions[ name ];
+ },
- getCurrent : function()
- {
- return CKEDITOR.dialog._.currentTop;
- },
+ /**
+ * @static
+ * @todo
+ */
+ getCurrent: function() {
+ return CKEDITOR.dialog._.currentTop;
+ },
- /**
- * The default OK button for dialogs. Fires the "ok" event and closes the dialog if the event succeeds.
- * @static
- * @field
- * @example
- * @type Function
- */
- okButton : (function()
- {
- var retval = function( editor, override )
- {
+ /**
+ * The default OK button for dialogs. Fires the `ok` event and closes the dialog if the event succeeds.
+ *
+ * @static
+ * @method
+ */
+ okButton: (function() {
+ var retval = function( editor, override ) {
override = override || {};
- return CKEDITOR.tools.extend( {
- id : 'ok',
- type : 'button',
- label : editor.lang.common.ok,
- 'class' : 'cke_dialog_ui_button_ok',
- onClick : function( evt )
- {
+ return CKEDITOR.tools.extend({
+ id: 'ok',
+ type: 'button',
+ label: editor.lang.common.ok,
+ 'class': 'cke_dialog_ui_button_ok',
+ onClick: function( evt ) {
var dialog = evt.data.dialog;
- if ( dialog.fire( 'ok', { hide : true } ).hide !== false )
+ if ( dialog.fire( 'ok', { hide: true } ).hide !== false )
dialog.hide();
}
}, override, true );
};
- retval.type = 'button';
- retval.override = function( override )
- {
- return CKEDITOR.tools.extend( function( editor ){ return retval( editor, override ); },
- { type : 'button' }, true );
- };
- return retval;
- })(),
+ retval.type = 'button';
+ retval.override = function( override ) {
+ return CKEDITOR.tools.extend( function( editor ) {
+ return retval( editor, override );
+ }, { type: 'button' }, true );
+ };
+ return retval;
+ })(),
- /**
- * The default cancel button for dialogs. Fires the "cancel" event and closes the dialog if no UI element value changed.
- * @static
- * @field
- * @example
- * @type Function
- */
- cancelButton : (function()
- {
- var retval = function( editor, override )
- {
+ /**
+ * The default cancel button for dialogs. Fires the `cancel` event and
+ * closes the dialog if no UI element value changed.
+ *
+ * @static
+ * @method
+ */
+ cancelButton: (function() {
+ var retval = function( editor, override ) {
override = override || {};
- return CKEDITOR.tools.extend( {
- id : 'cancel',
- type : 'button',
- label : editor.lang.common.cancel,
- 'class' : 'cke_dialog_ui_button_cancel',
- onClick : function( evt )
- {
+ return CKEDITOR.tools.extend({
+ id: 'cancel',
+ type: 'button',
+ label: editor.lang.common.cancel,
+ 'class': 'cke_dialog_ui_button_cancel',
+ onClick: function( evt ) {
var dialog = evt.data.dialog;
- if ( dialog.fire( 'cancel', { hide : true } ).hide !== false )
+ if ( dialog.fire( 'cancel', { hide: true } ).hide !== false )
dialog.hide();
}
}, override, true );
};
- retval.type = 'button';
- retval.override = function( override )
- {
- return CKEDITOR.tools.extend( function( editor ){ return retval( editor, override ); },
- { type : 'button' }, true );
- };
- return retval;
- })(),
+ retval.type = 'button';
+ retval.override = function( override ) {
+ return CKEDITOR.tools.extend( function( editor ) {
+ return retval( editor, override );
+ }, { type: 'button' }, true );
+ };
+ return retval;
+ })(),
- /**
- * Registers a dialog UI element.
- * @param {String} typeName The name of the UI element.
- * @param {Function} builder The function to build the UI element.
- * @example
- */
- addUIElement : function( typeName, builder )
- {
- this._.uiElementBuilders[ typeName ] = builder;
- }
- });
+ /**
+ * Registers a dialog UI element.
+ *
+ * @static
+ * @param {String} typeName The name of the UI element.
+ * @param {Function} builder The function to build the UI element.
+ */
+ addUIElement: function( typeName, builder ) {
+ this._.uiElementBuilders[ typeName ] = builder;
+ }
+ });
- CKEDITOR.dialog._ =
- {
- uiElementBuilders : {},
+ CKEDITOR.dialog._ = {
+ uiElementBuilders: {},
- dialogDefinitions : {},
+ dialogDefinitions: {},
- currentTop : null,
+ currentTop: null,
- currentZIndex : null
+ currentZIndex: null
};
// "Inherit" (copy actually) from CKEDITOR.event.
CKEDITOR.event.implementOn( CKEDITOR.dialog );
- CKEDITOR.event.implementOn( CKEDITOR.dialog.prototype, true );
-
- var defaultDialogDefinition =
- {
- resizable : CKEDITOR.DIALOG_RESIZE_BOTH,
- minWidth : 600,
- minHeight : 400,
- buttons : [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]
- };
+ CKEDITOR.event.implementOn( CKEDITOR.dialog.prototype );
- // The buttons in MacOS Apps are in reverse order #4750
- CKEDITOR.env.mac && defaultDialogDefinition.buttons.reverse();
-
- // Tool function used to return an item from an array based on its id
- // property.
- var getById = function( array, id, recurse )
- {
- for ( var i = 0, item ; ( item = array[ i ] ) ; i++ )
- {
- if ( item.id == id )
- return item;
- if ( recurse && item[ recurse ] )
- {
- var retval = getById( item[ recurse ], id, recurse ) ;
- if ( retval )
- return retval;
- }
- }
- return null;
- };
-
- // Tool function used to add an item into an array.
- var addById = function( array, newItem, nextSiblingId, recurse, nullIfNotFound )
- {
- if ( nextSiblingId )
- {
- for ( var i = 0, item ; ( item = array[ i ] ) ; i++ )
- {
- if ( item.id == nextSiblingId )
- {
- array.splice( i, 0, newItem );
- return newItem;
- }
+ var defaultDialogDefinition = {
+ resizable: CKEDITOR.DIALOG_RESIZE_BOTH,
+ minWidth: 600,
+ minHeight: 400,
+ buttons: [ CKEDITOR.dialog.okButton, CKEDITOR.dialog.cancelButton ]
+ };
- if ( recurse && item[ recurse ] )
- {
- var retval = addById( item[ recurse ], newItem, nextSiblingId, recurse, true );
+ // Tool function used to return an item from an array based on its id
+ // property.
+ var getById = function( array, id, recurse ) {
+ for ( var i = 0, item;
+ ( item = array[ i ] ); i++ ) {
+ if ( item.id == id )
+ return item;
+ if ( recurse && item[ recurse ] ) {
+ var retval = getById( item[ recurse ], id, recurse );
if ( retval )
return retval;
}
}
+ return null;
+ };
- if ( nullIfNotFound )
- return null;
- }
+ // Tool function used to add an item into an array.
+ var addById = function( array, newItem, nextSiblingId, recurse, nullIfNotFound ) {
+ if ( nextSiblingId ) {
+ for ( var i = 0, item;
+ ( item = array[ i ] ); i++ ) {
+ if ( item.id == nextSiblingId ) {
+ array.splice( i, 0, newItem );
+ return newItem;
+ }
- array.push( newItem );
- return newItem;
- };
+ if ( recurse && item[ recurse ] ) {
+ var retval = addById( item[ recurse ], newItem, nextSiblingId, recurse, true );
+ if ( retval )
+ return retval;
+ }
+ }
+
+ if ( nullIfNotFound )
+ return null;
+ }
+
+ array.push( newItem );
+ return newItem;
+ };
// Tool function used to remove an item from an array based on its id.
- var removeById = function( array, id, recurse )
- {
- for ( var i = 0, item ; ( item = array[ i ] ) ; i++ )
- {
- if ( item.id == id )
- return array.splice( i, 1 );
- if ( recurse && item[ recurse ] )
- {
- var retval = removeById( item[ recurse ], id, recurse );
- if ( retval )
- return retval;
+ var removeById = function( array, id, recurse ) {
+ for ( var i = 0, item;
+ ( item = array[ i ] ); i++ ) {
+ if ( item.id == id )
+ return array.splice( i, 1 );
+ if ( recurse && item[ recurse ] ) {
+ var retval = removeById( item[ recurse ], id, recurse );
+ if ( retval )
+ return retval;
+ }
}
- }
- return null;
- };
+ return null;
+ };
/**
- * This class is not really part of the API. It is the "definition" property value
- * passed to "dialogDefinition" event handlers.
- * @constructor
- * @name CKEDITOR.dialog.dialogDefinitionObject
- * @extends CKEDITOR.dialog.dialogDefinition
- * @example
- * CKEDITOR.on( 'dialogDefinition', function( evt )
- * {
- * var definition = evt.data.definition;
- * var content = definition.getContents( 'page1' );
- * ...
- * } );
+ * This class is not really part of the API. It is the `definition` property value
+ * passed to `dialogDefinition` event handlers.
+ *
+ * CKEDITOR.on( 'dialogDefinition', function( evt ) {
+ * var definition = evt.data.definition;
+ * var content = definition.getContents( 'page1' );
+ * // ...
+ * } );
+ *
+ * @private
+ * @class CKEDITOR.dialog.definitionObject
+ * @extends CKEDITOR.dialog.definition
+ * @constructor Creates a definitionObject class instance.
*/
- var definitionObject = function( dialog, dialogDefinition )
- {
- // TODO : Check if needed.
- this.dialog = dialog;
+ var definitionObject = function( dialog, dialogDefinition ) {
+ // TODO : Check if needed.
+ this.dialog = dialog;
- // Transform the contents entries in contentObjects.
- var contents = dialogDefinition.contents;
- for ( var i = 0, content ; ( content = contents[i] ) ; i++ )
- contents[ i ] = content && new contentObject( dialog, content );
+ // Transform the contents entries in contentObjects.
+ var contents = dialogDefinition.contents;
+ for ( var i = 0, content;
+ ( content = contents[ i ] ); i++ )
+ contents[ i ] = content && new contentObject( dialog, content );
- CKEDITOR.tools.extend( this, dialogDefinition );
- };
+ CKEDITOR.tools.extend( this, dialogDefinition );
+ };
- definitionObject.prototype =
- /** @lends CKEDITOR.dialog.dialogDefinitionObject.prototype */
- {
+ definitionObject.prototype = {
/**
* Gets a content definition.
+ *
* @param {String} id The id of the content definition.
- * @returns {CKEDITOR.dialog.contentDefinition} The content definition
- * matching id.
+ * @returns {CKEDITOR.dialog.definition.content} The content definition matching id.
*/
- getContents : function( id )
- {
+ getContents: function( id ) {
return getById( this.contents, id );
},
/**
* Gets a button definition.
+ *
* @param {String} id The id of the button definition.
- * @returns {CKEDITOR.dialog.buttonDefinition} The button definition
- * matching id.
+ * @returns {CKEDITOR.dialog.definition.button} The button definition matching id.
*/
- getButton : function( id )
- {
+ getButton: function( id ) {
return getById( this.buttons, id );
},
/**
* Adds a content definition object under this dialog definition.
- * @param {CKEDITOR.dialog.contentDefinition} contentDefinition The
- * content definition.
+ *
+ * @param {CKEDITOR.dialog.definition.content} contentDefinition The
+ * content definition.
* @param {String} [nextSiblingId] The id of an existing content
- * definition which the new content definition will be inserted
- * before. Omit if the new content definition is to be inserted as
- * the last item.
- * @returns {CKEDITOR.dialog.contentDefinition} The inserted content
- * definition.
+ * definition which the new content definition will be inserted
+ * before. Omit if the new content definition is to be inserted as
+ * the last item.
+ * @returns {CKEDITOR.dialog.definition.content} The inserted content definition.
*/
- addContents : function( contentDefinition, nextSiblingId )
- {
+ addContents: function( contentDefinition, nextSiblingId ) {
return addById( this.contents, contentDefinition, nextSiblingId );
},
/**
* Adds a button definition object under this dialog definition.
- * @param {CKEDITOR.dialog.buttonDefinition} buttonDefinition The
- * button definition.
+ *
+ * @param {CKEDITOR.dialog.definition.button} buttonDefinition The
+ * button definition.
* @param {String} [nextSiblingId] The id of an existing button
- * definition which the new button definition will be inserted
- * before. Omit if the new button definition is to be inserted as
- * the last item.
- * @returns {CKEDITOR.dialog.buttonDefinition} The inserted button
- * definition.
+ * definition which the new button definition will be inserted
+ * before. Omit if the new button definition is to be inserted as
+ * the last item.
+ * @returns {CKEDITOR.dialog.definition.button} The inserted button definition.
*/
- addButton : function( buttonDefinition, nextSiblingId )
- {
+ addButton: function( buttonDefinition, nextSiblingId ) {
return addById( this.buttons, buttonDefinition, nextSiblingId );
},
/**
* Removes a content definition from this dialog definition.
+ *
* @param {String} id The id of the content definition to be removed.
- * @returns {CKEDITOR.dialog.contentDefinition} The removed content
- * definition.
+ * @returns {CKEDITOR.dialog.definition.content} The removed content definition.
*/
- removeContents : function( id )
- {
+ removeContents: function( id ) {
removeById( this.contents, id );
},
/**
* Removes a button definition from the dialog definition.
+ *
* @param {String} id The id of the button definition to be removed.
- * @returns {CKEDITOR.dialog.buttonDefinition} The removed button
- * definition.
+ * @returns {CKEDITOR.dialog.definition.button} The removed button definition.
*/
- removeButton : function( id )
- {
+ removeButton: function( id ) {
removeById( this.buttons, id );
}
};
@@ -1521,85 +1675,76 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* This class is not really part of the API. It is the template of the
* objects representing content pages inside the
- * CKEDITOR.dialog.dialogDefinitionObject.
- * @constructor
- * @name CKEDITOR.dialog.contentDefinitionObject
- * @example
- * CKEDITOR.on( 'dialogDefinition', function( evt )
- * {
- * var definition = evt.data.definition;
- * var content = definition.getContents( 'page1' );
- * content.remove( 'textInput1' );
- * ...
- * } );
+ * CKEDITOR.dialog.definitionObject.
+ *
+ * CKEDITOR.on( 'dialogDefinition', function( evt ) {
+ * var definition = evt.data.definition;
+ * var content = definition.getContents( 'page1' );
+ * content.remove( 'textInput1' );
+ * // ...
+ * } );
+ *
+ * @private
+ * @class CKEDITOR.dialog.definition.contentObject
+ * @constructor Creates a contentObject class instance.
*/
- function contentObject( dialog, contentDefinition )
- {
- this._ =
- {
- dialog : dialog
+ function contentObject( dialog, contentDefinition ) {
+ this._ = {
+ dialog: dialog
};
CKEDITOR.tools.extend( this, contentDefinition );
}
- contentObject.prototype =
- /** @lends CKEDITOR.dialog.contentDefinitionObject.prototype */
- {
+ contentObject.prototype = {
/**
* Gets a UI element definition under the content definition.
+ *
* @param {String} id The id of the UI element definition.
- * @returns {CKEDITOR.dialog.uiElementDefinition}
+ * @returns {CKEDITOR.dialog.definition.uiElement}
*/
- get : function( id )
- {
+ get: function( id ) {
return getById( this.elements, id, 'children' );
},
/**
* Adds a UI element definition to the content definition.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition The
- * UI elemnet definition to be added.
+ *
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition The
+ * UI elemnet definition to be added.
* @param {String} nextSiblingId The id of an existing UI element
- * definition which the new UI element definition will be inserted
- * before. Omit if the new button definition is to be inserted as
- * the last item.
- * @returns {CKEDITOR.dialog.uiElementDefinition} The element
- * definition inserted.
+ * definition which the new UI element definition will be inserted
+ * before. Omit if the new button definition is to be inserted as
+ * the last item.
+ * @returns {CKEDITOR.dialog.definition.uiElement} The element definition inserted.
*/
- add : function( elementDefinition, nextSiblingId )
- {
+ add: function( elementDefinition, nextSiblingId ) {
return addById( this.elements, elementDefinition, nextSiblingId, 'children' );
},
/**
* Removes a UI element definition from the content definition.
- * @param {String} id The id of the UI element definition to be
- * removed.
- * @returns {CKEDITOR.dialog.uiElementDefinition} The element
- * definition removed.
- * @example
+ *
+ * @param {String} id The id of the UI element definition to be removed.
+ * @returns {CKEDITOR.dialog.definition.uiElement} The element definition removed.
*/
- remove : function( id )
- {
+ remove: function( id ) {
removeById( this.elements, id, 'children' );
}
};
- function initDragAndDrop( dialog )
- {
+ function initDragAndDrop( dialog ) {
var lastCoords = null,
abstractDialogCoords = null,
element = dialog.getElement().getFirst(),
editor = dialog.getParentEditor(),
magnetDistance = editor.config.dialog_magnetDistance,
- margins = editor.skin.margins || [ 0, 0, 0, 0 ];
+ margins = CKEDITOR.skin.margins || [ 0, 0, 0, 0 ];
if ( typeof magnetDistance == 'undefined' )
magnetDistance = 20;
- function mouseMoveHandler( evt )
- {
+ function mouseMoveHandler( evt ) {
var dialogSize = dialog.getSize(),
viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(),
x = evt.data.$.screenX,
@@ -1608,204 +1753,169 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
dy = y - lastCoords.y,
realX, realY;
- lastCoords = { x : x, y : y };
+ lastCoords = { x: x, y: y };
abstractDialogCoords.x += dx;
abstractDialogCoords.y += dy;
- if ( abstractDialogCoords.x + margins[3] < magnetDistance )
- realX = - margins[3];
- else if ( abstractDialogCoords.x - margins[1] > viewPaneSize.width - dialogSize.width - magnetDistance )
- realX = viewPaneSize.width - dialogSize.width + margins[1];
+ if ( abstractDialogCoords.x + margins[ 3 ] < magnetDistance )
+ realX = -margins[ 3 ];
+ else if ( abstractDialogCoords.x - margins[ 1 ] > viewPaneSize.width - dialogSize.width - magnetDistance )
+ realX = viewPaneSize.width - dialogSize.width + ( editor.lang.dir == 'rtl' ? 0 : margins[ 1 ] );
else
realX = abstractDialogCoords.x;
- if ( abstractDialogCoords.y + margins[0] < magnetDistance )
- realY = - margins[0];
- else if ( abstractDialogCoords.y - margins[2] > viewPaneSize.height - dialogSize.height - magnetDistance )
- realY = viewPaneSize.height - dialogSize.height + margins[2];
+ if ( abstractDialogCoords.y + margins[ 0 ] < magnetDistance )
+ realY = -margins[ 0 ];
+ else if ( abstractDialogCoords.y - margins[ 2 ] > viewPaneSize.height - dialogSize.height - magnetDistance )
+ realY = viewPaneSize.height - dialogSize.height + margins[ 2 ];
else
realY = abstractDialogCoords.y;
- dialog.move( realX, realY );
+ dialog.move( realX, realY, 1 );
evt.data.preventDefault();
}
- function mouseUpHandler( evt )
- {
+ function mouseUpHandler( evt ) {
CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler );
CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler );
- if ( CKEDITOR.env.ie6Compat )
- {
+ if ( CKEDITOR.env.ie6Compat ) {
var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
coverDoc.removeListener( 'mousemove', mouseMoveHandler );
coverDoc.removeListener( 'mouseup', mouseUpHandler );
}
}
- dialog.parts.title.on( 'mousedown', function( evt )
- {
- dialog._.updateSize = true;
+ dialog.parts.title.on( 'mousedown', function( evt ) {
+ lastCoords = { x: evt.data.$.screenX, y: evt.data.$.screenY };
- lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY };
-
- CKEDITOR.document.on( 'mousemove', mouseMoveHandler );
- CKEDITOR.document.on( 'mouseup', mouseUpHandler );
- abstractDialogCoords = dialog.getPosition();
+ CKEDITOR.document.on( 'mousemove', mouseMoveHandler );
+ CKEDITOR.document.on( 'mouseup', mouseUpHandler );
+ abstractDialogCoords = dialog.getPosition();
- if ( CKEDITOR.env.ie6Compat )
- {
- var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
- coverDoc.on( 'mousemove', mouseMoveHandler );
- coverDoc.on( 'mouseup', mouseUpHandler );
- }
+ if ( CKEDITOR.env.ie6Compat ) {
+ var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
+ coverDoc.on( 'mousemove', mouseMoveHandler );
+ coverDoc.on( 'mouseup', mouseUpHandler );
+ }
- evt.data.preventDefault();
- }, dialog );
+ evt.data.preventDefault();
+ }, dialog );
}
- function initResizeHandles( dialog )
- {
- var definition = dialog.definition,
- minWidth = definition.minWidth || 0,
- minHeight = definition.minHeight || 0,
- resizable = definition.resizable,
- margins = dialog.getParentEditor().skin.margins || [ 0, 0, 0, 0 ];
-
- function topSizer( coords, dy )
- {
- coords.y += dy;
- }
+ function initResizeHandles( dialog ) {
+ var def = dialog.definition,
+ resizable = def.resizable;
- function rightSizer( coords, dx )
- {
- coords.x2 += dx;
- }
+ if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE )
+ return;
- function bottomSizer( coords, dy )
- {
- coords.y2 += dy;
- }
+ var editor = dialog.getParentEditor();
+ var wrapperWidth, wrapperHeight, viewSize, origin, startSize, dialogCover;
- function leftSizer( coords, dx )
- {
- coords.x += dx;
- }
+ var mouseDownFn = CKEDITOR.tools.addFunction( function( $event ) {
+ startSize = dialog.getSize();
- var lastCoords = null,
- abstractDialogCoords = null,
- magnetDistance = dialog._.editor.config.magnetDistance,
- parts = [ 'tl', 't', 'tr', 'l', 'r', 'bl', 'b', 'br' ];
+ var content = dialog.parts.contents,
+ iframeDialog = content.$.getElementsByTagName( 'iframe' ).length;
- function mouseDownHandler( evt )
- {
- var partName = evt.listenerData.part, size = dialog.getSize();
- abstractDialogCoords = dialog.getPosition();
- CKEDITOR.tools.extend( abstractDialogCoords,
- {
- x2 : abstractDialogCoords.x + size.width,
- y2 : abstractDialogCoords.y + size.height
- } );
- lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY };
-
- CKEDITOR.document.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } );
- CKEDITOR.document.on( 'mouseup', mouseUpHandler, dialog, { part : partName } );
-
- if ( CKEDITOR.env.ie6Compat )
- {
- var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
- coverDoc.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } );
- coverDoc.on( 'mouseup', mouseUpHandler, dialog, { part : partName } );
+ // Shim to help capturing "mousemove" over iframe.
+ if ( iframeDialog ) {
+ dialogCover = CKEDITOR.dom.element.createFromHtml( '<div class="cke_dialog_resize_cover" style="height: 100%; position: absolute; width: 100%;"></div>' );
+ content.append( dialogCover );
}
- evt.data.preventDefault();
- }
+ // Calculate the offset between content and chrome size.
+ wrapperHeight = startSize.height - dialog.parts.contents.getSize( 'height', !( CKEDITOR.env.gecko || CKEDITOR.env.opera || CKEDITOR.env.ie && CKEDITOR.env.quirks ) );
+ wrapperWidth = startSize.width - dialog.parts.contents.getSize( 'width', 1 );
- function mouseMoveHandler( evt )
- {
- var x = evt.data.$.screenX,
- y = evt.data.$.screenY,
- dx = x - lastCoords.x,
- dy = y - lastCoords.y,
- viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(),
- partName = evt.listenerData.part;
+ origin = { x: $event.screenX, y: $event.screenY };
- if ( partName.search( 't' ) != -1 )
- topSizer( abstractDialogCoords, dy );
- if ( partName.search( 'l' ) != -1 )
- leftSizer( abstractDialogCoords, dx );
- if ( partName.search( 'b' ) != -1 )
- bottomSizer( abstractDialogCoords, dy );
- if ( partName.search( 'r' ) != -1 )
- rightSizer( abstractDialogCoords, dx );
+ viewSize = CKEDITOR.document.getWindow().getViewPaneSize();
- lastCoords = { x : x, y : y };
+ CKEDITOR.document.on( 'mousemove', mouseMoveHandler );
+ CKEDITOR.document.on( 'mouseup', mouseUpHandler );
- var realX, realY, realX2, realY2;
+ if ( CKEDITOR.env.ie6Compat ) {
+ var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
+ coverDoc.on( 'mousemove', mouseMoveHandler );
+ coverDoc.on( 'mouseup', mouseUpHandler );
+ }
- if ( abstractDialogCoords.x + margins[3] < magnetDistance )
- realX = - margins[3];
- else if ( partName.search( 'l' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance )
- realX = abstractDialogCoords.x2 - minWidth;
- else
- realX = abstractDialogCoords.x;
+ $event.preventDefault && $event.preventDefault();
+ });
- if ( abstractDialogCoords.y + margins[0] < magnetDistance )
- realY = - margins[0];
- else if ( partName.search( 't' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance )
- realY = abstractDialogCoords.y2 - minHeight;
- else
- realY = abstractDialogCoords.y;
+ // Prepend the grip to the dialog.
+ dialog.on( 'load', function() {
+ var direction = '';
+ if ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH )
+ direction = ' cke_resizer_horizontal';
+ else if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT )
+ direction = ' cke_resizer_vertical';
+ var resizer = CKEDITOR.dom.element.createFromHtml(
+ '<div' +
+ ' class="cke_resizer' + direction + ' cke_resizer_' + editor.lang.dir + '"' +
+ ' title="' + CKEDITOR.tools.htmlEncode( editor.lang.common.resize ) + '"' +
+ ' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event )">' +
+ // BLACK LOWER RIGHT TRIANGLE (ltr)
+ // BLACK LOWER LEFT TRIANGLE (rtl)
+ ( editor.lang.dir == 'ltr' ? '\u25E2' : '\u25E3' ) +
+ '</div>' );
+ dialog.parts.footer.append( resizer, 1 );
+ });
+ editor.on( 'destroy', function() {
+ CKEDITOR.tools.removeFunction( mouseDownFn );
+ });
- if ( abstractDialogCoords.x2 - margins[1] > viewPaneSize.width - magnetDistance )
- realX2 = viewPaneSize.width + margins[1] ;
- else if ( partName.search( 'r' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance )
- realX2 = abstractDialogCoords.x + minWidth;
- else
- realX2 = abstractDialogCoords.x2;
+ function mouseMoveHandler( evt ) {
+ var rtl = editor.lang.dir == 'rtl',
+ dx = ( evt.data.$.screenX - origin.x ) * ( rtl ? -1 : 1 ),
+ dy = evt.data.$.screenY - origin.y,
+ width = startSize.width,
+ height = startSize.height,
+ internalWidth = width + dx * ( dialog._.moved ? 1 : 2 ),
+ internalHeight = height + dy * ( dialog._.moved ? 1 : 2 ),
+ element = dialog._.element.getFirst(),
+ right = rtl && element.getComputedStyle( 'right' ),
+ position = dialog.getPosition();
- if ( abstractDialogCoords.y2 - margins[2] > viewPaneSize.height - magnetDistance )
- realY2= viewPaneSize.height + margins[2] ;
- else if ( partName.search( 'b' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance )
- realY2 = abstractDialogCoords.y + minHeight;
- else
- realY2 = abstractDialogCoords.y2 ;
+ if ( position.y + internalHeight > viewSize.height )
+ internalHeight = viewSize.height - position.y;
+
+ if ( ( rtl ? right : position.x ) + internalWidth > viewSize.width )
+ internalWidth = viewSize.width - ( rtl ? right : position.x );
- dialog.move( realX, realY );
- dialog.resize( realX2 - realX, realY2 - realY );
+ // Make sure the dialog will not be resized to the wrong side when it's in the leftmost position for RTL.
+ if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) )
+ width = Math.max( def.minWidth || 0, internalWidth - wrapperWidth );
+
+ if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT || resizable == CKEDITOR.DIALOG_RESIZE_BOTH )
+ height = Math.max( def.minHeight || 0, internalHeight - wrapperHeight );
+
+ dialog.resize( width, height );
+
+ if ( !dialog._.moved )
+ dialog.layout();
evt.data.preventDefault();
}
- function mouseUpHandler( evt )
- {
+ function mouseUpHandler() {
CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler );
CKEDITOR.document.removeListener( 'mousemove', mouseMoveHandler );
- if ( CKEDITOR.env.ie6Compat )
- {
+ if ( dialogCover ) {
+ dialogCover.remove();
+ dialogCover = null;
+ }
+
+ if ( CKEDITOR.env.ie6Compat ) {
var coverDoc = currentCover.getChild( 0 ).getFrameDocument();
coverDoc.removeListener( 'mouseup', mouseUpHandler );
coverDoc.removeListener( 'mousemove', mouseMoveHandler );
}
}
-
-// TODO : Simplify the resize logic, having just a single resize grip <div>.
-// var widthTest = /[lr]/,
-// heightTest = /[tb]/;
-// for ( var i = 0 ; i < parts.length ; i++ )
-// {
-// var element = dialog.parts[ parts[i] + '_resize' ];
-// if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE ||
-// resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) ||
-// resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) )
-// {
-// element.hide();
-// continue;
-// }
-// element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } );
-// }
}
var resizeCover;
@@ -1814,57 +1924,54 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
var covers = {},
currentCover;
- function showCover( editor )
- {
+ function cancelEvent( ev ) {
+ ev.data.preventDefault( 1 );
+ }
+
+ function showCover( editor ) {
var win = CKEDITOR.document.getWindow();
- var backgroundColorStyle = editor.config.dialog_backgroundCoverColor || 'white',
- backgroundCoverOpacity = editor.config.dialog_backgroundCoverOpacity,
- baseFloatZIndex = editor.config.baseFloatZIndex,
- coverKey = CKEDITOR.tools.genKey(
- backgroundColorStyle,
- backgroundCoverOpacity,
- baseFloatZIndex ),
+ var config = editor.config,
+ backgroundColorStyle = config.dialog_backgroundCoverColor || 'white',
+ backgroundCoverOpacity = config.dialog_backgroundCoverOpacity,
+ baseFloatZIndex = config.baseFloatZIndex,
+ coverKey = CKEDITOR.tools.genKey( backgroundColorStyle, backgroundCoverOpacity, baseFloatZIndex ),
coverElement = covers[ coverKey ];
- if ( !coverElement )
- {
+ if ( !coverElement ) {
var html = [
- '<div style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),
- '; z-index: ', baseFloatZIndex,
- '; top: 0px; left: 0px; ',
- ( !CKEDITOR.env.ie6Compat ? 'background-color: ' + backgroundColorStyle : '' ),
- '" class="cke_dialog_background_cover">'
+ '<div tabIndex="-1" style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),
+ '; z-index: ', baseFloatZIndex,
+ '; top: 0px; left: 0px; ',
+ ( !CKEDITOR.env.ie6Compat ? 'background-color: ' + backgroundColorStyle : '' ),
+ '" class="cke_dialog_background_cover">'
];
- if ( CKEDITOR.env.ie6Compat )
- {
+ if ( CKEDITOR.env.ie6Compat ) {
// Support for custom document.domain in IE.
var isCustomDomain = CKEDITOR.env.isCustomDomain(),
iframeHtml = '<html><body style=\\\'background-color:' + backgroundColorStyle + ';\\\'></body></html>';
- html.push(
- '<iframe' +
- ' hidefocus="true"' +
- ' frameborder="0"' +
- ' id="cke_dialog_background_iframe"' +
- ' src="javascript:' );
+ html.push( '<iframe' +
+ ' hidefocus="true"' +
+ ' frameborder="0"' +
+ ' id="cke_dialog_background_iframe"' +
+ ' src="javascript:' );
html.push( 'void((function(){' +
- 'document.open();' +
- ( isCustomDomain ? 'document.domain=\'' + document.domain + '\';' : '' ) +
- 'document.write( \'' + iframeHtml + '\' );' +
- 'document.close();' +
- '})())' );
-
- html.push(
- '"' +
- ' style="' +
- 'position:absolute;' +
- 'left:0;' +
- 'top:0;' +
- 'width:100%;' +
- 'height: 100%;' +
- 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)">' +
+ 'document.open();' +
+ ( isCustomDomain ? 'document.domain=\'' + document.domain + '\';' : '' ) +
+ 'document.write( \'' + iframeHtml + '\' );' +
+ 'document.close();' +
+ '})())' );
+
+ html.push( '"' +
+ ' style="' +
+ 'position:absolute;' +
+ 'left:0;' +
+ 'top:0;' +
+ 'width:100%;' +
+ 'height: 100%;' +
+ 'filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0)">' +
'</iframe>' );
}
@@ -1873,83 +1980,85 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
coverElement = CKEDITOR.dom.element.createFromHtml( html.join( '' ) );
coverElement.setOpacity( backgroundCoverOpacity != undefined ? backgroundCoverOpacity : 0.5 );
+ coverElement.on( 'keydown', cancelEvent );
+ coverElement.on( 'keypress', cancelEvent );
+ coverElement.on( 'keyup', cancelEvent );
+
coverElement.appendTo( CKEDITOR.document.getBody() );
covers[ coverKey ] = coverElement;
- }
- else
- coverElement. show();
+ } else
+ coverElement.show();
+
+ // Makes the dialog cover a focus holder as well.
+ editor.focusManager.add( coverElement );
currentCover = coverElement;
- var resizeFunc = function()
- {
- var size = win.getViewPaneSize();
- coverElement.setStyles(
- {
- width : size.width + 'px',
- height : size.height + 'px'
- } );
- };
+ var resizeFunc = function() {
+ var size = win.getViewPaneSize();
+ coverElement.setStyles({
+ width: size.width + 'px',
+ height: size.height + 'px'
+ });
+ };
- var scrollFunc = function()
- {
- var pos = win.getScrollPosition(),
- cursor = CKEDITOR.dialog._.currentTop;
- coverElement.setStyles(
- {
- left : pos.x + 'px',
- top : pos.y + 'px'
- });
+ var scrollFunc = function() {
+ var pos = win.getScrollPosition(),
+ cursor = CKEDITOR.dialog._.currentTop;
+ coverElement.setStyles({
+ left: pos.x + 'px',
+ top: pos.y + 'px'
+ });
- do
- {
- var dialogPos = cursor.getPosition();
- cursor.move( dialogPos.x, dialogPos.y );
- } while ( ( cursor = cursor._.parentDialog ) );
- };
+ if ( cursor ) {
+ do {
+ var dialogPos = cursor.getPosition();
+ cursor.move( dialogPos.x, dialogPos.y );
+ } while ( ( cursor = cursor._.parentDialog ) );
+ }
+ };
resizeCover = resizeFunc;
win.on( 'resize', resizeFunc );
resizeFunc();
- if ( CKEDITOR.env.ie6Compat )
- {
+ // Using Safari/Mac, focus must be kept where it is (#7027)
+ if ( !( CKEDITOR.env.mac && CKEDITOR.env.webkit ) )
+ coverElement.focus();
+
+ if ( CKEDITOR.env.ie6Compat ) {
// IE BUG: win.$.onscroll assignment doesn't work.. it must be window.onscroll.
// So we need to invent a really funny way to make it work.
- var myScrollHandler = function()
- {
+ var myScrollHandler = function() {
scrollFunc();
arguments.callee.prevScrollHandler.apply( this, arguments );
};
- win.$.setTimeout( function()
- {
- myScrollHandler.prevScrollHandler = window.onscroll || function(){};
- window.onscroll = myScrollHandler;
- }, 0 );
+ win.$.setTimeout( function() {
+ myScrollHandler.prevScrollHandler = window.onscroll ||
+ function() {};
+ window.onscroll = myScrollHandler;
+ }, 0 );
scrollFunc();
}
}
- function hideCover()
- {
+ function hideCover( editor ) {
if ( !currentCover )
return;
+ editor.focusManager.remove( currentCover );
var win = CKEDITOR.document.getWindow();
currentCover.hide();
win.removeListener( 'resize', resizeCover );
- if ( CKEDITOR.env.ie6Compat )
- {
- win.$.setTimeout( function()
- {
- var prevScrollHandler = window.onscroll && window.onscroll.prevScrollHandler;
- window.onscroll = prevScrollHandler || null;
- }, 0 );
+ if ( CKEDITOR.env.ie6Compat ) {
+ win.$.setTimeout( function() {
+ var prevScrollHandler = window.onscroll && window.onscroll.prevScrollHandler;
+ window.onscroll = prevScrollHandler || null;
+ }, 0 );
}
resizeCover = null;
}
- function removeCovers()
- {
+ function removeCovers() {
for ( var coverId in covers )
covers[ coverId ].remove();
covers = {};
@@ -1957,139 +2066,119 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
var accessKeyProcessors = {};
- var accessKeyDownHandler = function( evt )
- {
- var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey,
- alt = evt.data.$.altKey,
- shift = evt.data.$.shiftKey,
- key = String.fromCharCode( evt.data.$.keyCode ),
- keyProcessor = accessKeyProcessors[( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '') + ( shift ? 'SHIFT+' : '' ) + key];
+ var accessKeyDownHandler = function( evt ) {
+ var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey,
+ alt = evt.data.$.altKey,
+ shift = evt.data.$.shiftKey,
+ key = String.fromCharCode( evt.data.$.keyCode ),
+ keyProcessor = accessKeyProcessors[ ( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '' ) + ( shift ? 'SHIFT+' : '' ) + key ];
- if ( !keyProcessor || !keyProcessor.length )
- return;
+ if ( !keyProcessor || !keyProcessor.length )
+ return;
- keyProcessor = keyProcessor[keyProcessor.length - 1];
- keyProcessor.keydown && keyProcessor.keydown.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key );
- evt.data.preventDefault();
- };
+ keyProcessor = keyProcessor[ keyProcessor.length - 1 ];
+ keyProcessor.keydown && keyProcessor.keydown.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key );
+ evt.data.preventDefault();
+ };
- var accessKeyUpHandler = function( evt )
- {
- var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey,
- alt = evt.data.$.altKey,
- shift = evt.data.$.shiftKey,
- key = String.fromCharCode( evt.data.$.keyCode ),
- keyProcessor = accessKeyProcessors[( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '') + ( shift ? 'SHIFT+' : '' ) + key];
+ var accessKeyUpHandler = function( evt ) {
+ var ctrl = evt.data.$.ctrlKey || evt.data.$.metaKey,
+ alt = evt.data.$.altKey,
+ shift = evt.data.$.shiftKey,
+ key = String.fromCharCode( evt.data.$.keyCode ),
+ keyProcessor = accessKeyProcessors[ ( ctrl ? 'CTRL+' : '' ) + ( alt ? 'ALT+' : '' ) + ( shift ? 'SHIFT+' : '' ) + key ];
- if ( !keyProcessor || !keyProcessor.length )
- return;
+ if ( !keyProcessor || !keyProcessor.length )
+ return;
- keyProcessor = keyProcessor[keyProcessor.length - 1];
- if ( keyProcessor.keyup )
- {
- keyProcessor.keyup.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key );
- evt.data.preventDefault();
- }
- };
+ keyProcessor = keyProcessor[ keyProcessor.length - 1 ];
+ if ( keyProcessor.keyup ) {
+ keyProcessor.keyup.call( keyProcessor.uiElement, keyProcessor.dialog, keyProcessor.key );
+ evt.data.preventDefault();
+ }
+ };
- var registerAccessKey = function( uiElement, dialog, key, downFunc, upFunc )
- {
- var procList = accessKeyProcessors[key] || ( accessKeyProcessors[key] = [] );
- procList.push( {
- uiElement : uiElement,
- dialog : dialog,
- key : key,
- keyup : upFunc || uiElement.accessKeyUp,
- keydown : downFunc || uiElement.accessKeyDown
- } );
- };
+ var registerAccessKey = function( uiElement, dialog, key, downFunc, upFunc ) {
+ var procList = accessKeyProcessors[ key ] || ( accessKeyProcessors[ key ] = [] );
+ procList.push({
+ uiElement: uiElement,
+ dialog: dialog,
+ key: key,
+ keyup: upFunc || uiElement.accessKeyUp,
+ keydown: downFunc || uiElement.accessKeyDown
+ });
+ };
- var unregisterAccessKey = function( obj )
- {
- for ( var i in accessKeyProcessors )
- {
- var list = accessKeyProcessors[i];
- for ( var j = list.length - 1 ; j >= 0 ; j-- )
- {
- if ( list[j].dialog == obj || list[j].uiElement == obj )
- list.splice( j, 1 );
+ var unregisterAccessKey = function( obj ) {
+ for ( var i in accessKeyProcessors ) {
+ var list = accessKeyProcessors[ i ];
+ for ( var j = list.length - 1; j >= 0; j-- ) {
+ if ( list[ j ].dialog == obj || list[ j ].uiElement == obj )
+ list.splice( j, 1 );
+ }
+ if ( list.length === 0 )
+ delete accessKeyProcessors[ i ];
}
- if ( list.length === 0 )
- delete accessKeyProcessors[i];
- }
- };
-
- var tabAccessKeyUp = function( dialog, key )
- {
- if ( dialog._.accessKeyMap[key] )
- dialog.selectPage( dialog._.accessKeyMap[key] );
- };
+ };
- var tabAccessKeyDown = function( dialog, key )
- {
- };
+ var tabAccessKeyUp = function( dialog, key ) {
+ if ( dialog._.accessKeyMap[ key ] )
+ dialog.selectPage( dialog._.accessKeyMap[ key ] );
+ };
- // ESC, ENTER
- var preventKeyBubblingKeys = { 27 :1, 13 :1 };
- var preventKeyBubbling = function( e )
- {
- if ( e.data.getKeystroke() in preventKeyBubblingKeys )
- e.data.stopPropagation();
- };
+ var tabAccessKeyDown = function( dialog, key ) {};
- (function()
- {
- CKEDITOR.ui.dialog =
- {
+ (function() {
+ CKEDITOR.ui.dialog = {
/**
* The base class of all dialog UI elements.
- * @constructor
+ *
+ * @class CKEDITOR.ui.dialog.uiElement
+ * @constructor Creates a uiElement class instance.
* @param {CKEDITOR.dialog} dialog Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition Element
- * definition. Accepted fields:
- * <ul>
- * <li><strong>id</strong> (Required) The id of the UI element. See {@link
- * CKEDITOR.dialog#getContentElement}</li>
- * <li><strong>type</strong> (Required) The type of the UI element. The
- * value to this field specifies which UI element class will be used to
- * generate the final widget.</li>
- * <li><strong>title</strong> (Optional) The popup tooltip for the UI
- * element.</li>
- * <li><strong>hidden</strong> (Optional) A flag that tells if the element
- * should be initially visible.</li>
- * <li><strong>className</strong> (Optional) Additional CSS class names
- * to add to the UI element. Separated by space.</li>
- * <li><strong>style</strong> (Optional) Additional CSS inline styles
- * to add to the UI element. A semicolon (;) is required after the last
- * style declaration.</li>
- * <li><strong>accessKey</strong> (Optional) The alphanumeric access key
- * for this element. Access keys are automatically prefixed by CTRL.</li>
- * <li><strong>on*</strong> (Optional) Any UI element definition field that
- * starts with <em>on</em> followed immediately by a capital letter and
- * probably more letters is an event handler. Event handlers may be further
- * divided into registered event handlers and DOM event handlers. Please
- * refer to {@link CKEDITOR.ui.dialog.uiElement#registerEvents} and
- * {@link CKEDITOR.ui.dialog.uiElement#eventProcessors} for more
- * information.</li>
- * </ul>
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element
+ * definition.
+ *
+ * Accepted fields:
+ *
+ * * `id` (Required) The id of the UI element. See {@link CKEDITOR.dialog#getContentElement}.
+ * * `type` (Required) The type of the UI element. The
+ * value to this field specifies which UI element class will be used to
+ * generate the final widget.
+ * * `title` (Optional) The popup tooltip for the UI
+ * element.
+ * * `hidden` (Optional) A flag that tells if the element
+ * should be initially visible.
+ * * `className` (Optional) Additional CSS class names
+ * to add to the UI element. Separated by space.
+ * * `style` (Optional) Additional CSS inline styles
+ * to add to the UI element. A semicolon (;) is required after the last
+ * style declaration.
+ * * `accessKey` (Optional) The alphanumeric access key
+ * for this element. Access keys are automatically prefixed by CTRL.
+ * * `on*` (Optional) Any UI element definition field that
+ * starts with `on` followed immediately by a capital letter and
+ * probably more letters is an event handler. Event handlers may be further
+ * divided into registered event handlers and DOM event handlers. Please
+ * refer to {@link CKEDITOR.ui.dialog.uiElement#registerEvents} and
+ * {@link CKEDITOR.ui.dialog.uiElement#eventProcessors} for more information.
+ *
* @param {Array} htmlList
* List of HTML code to be added to the dialog's content area.
- * @param {Function|String} nodeNameArg
+ * @param {Function/String} [nodeNameArg='div']
* A function returning a string, or a simple string for the node name for
- * the root DOM node. Default is 'div'.
- * @param {Function|Object} stylesArg
+ * the root DOM node.
+ * @param {Function/Object} [stylesArg={}]
* A function returning an object, or a simple object for CSS styles applied
- * to the DOM node. Default is empty object.
- * @param {Function|Object} attributesArg
+ * to the DOM node.
+ * @param {Function/Object} [attributesArg={}]
* A fucntion returning an object, or a simple object for attributes applied
- * to the DOM node. Default is empty object.
- * @param {Function|String} contentsArg
+ * to the DOM node.
+ * @param {Function/String} [contentsArg='']
* A function returning a string, or a simple string for the HTML code inside
* the root DOM node. Default is empty string.
- * @example
*/
- uiElement : function( dialog, elementDefinition, htmlList, nodeNameArg, stylesArg, attributesArg, contentsArg )
- {
+ uiElement: function( dialog, elementDefinition, htmlList, nodeNameArg, stylesArg, attributesArg, contentsArg ) {
if ( arguments.length < 4 )
return;
@@ -2111,16 +2200,18 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
classes[ 'cke_dialog_ui_' + elementDefinition.type ] = 1;
if ( elementDefinition.className )
classes[ elementDefinition.className ] = 1;
- var attributeClasses = ( attributes['class'] && attributes['class'].split ) ? attributes['class'].split( ' ' ) : [];
- for ( i = 0 ; i < attributeClasses.length ; i++ )
- {
- if ( attributeClasses[i] )
- classes[ attributeClasses[i] ] = 1;
+ if ( elementDefinition.disabled )
+ classes[ 'cke_disabled' ] = 1;
+
+ var attributeClasses = ( attributes[ 'class' ] && attributes[ 'class' ].split ) ? attributes[ 'class' ].split( ' ' ) : [];
+ for ( i = 0; i < attributeClasses.length; i++ ) {
+ if ( attributeClasses[ i ] )
+ classes[ attributeClasses[ i ] ] = 1;
}
var finalClasses = [];
for ( i in classes )
finalClasses.push( i );
- attributes['class'] = finalClasses.join( ' ' );
+ attributes[ 'class' ] = finalClasses.join( ' ' );
// Set the popup tooltop.
if ( elementDefinition.title )
@@ -2128,13 +2219,20 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
// Write the inline CSS styles.
var styleStr = ( elementDefinition.style || '' ).split( ';' );
+
+ // Element alignment support.
+ if ( elementDefinition.align ) {
+ var align = elementDefinition.align;
+ styles[ 'margin-left' ] = align == 'left' ? 0 : 'auto';
+ styles[ 'margin-right' ] = align == 'right' ? 0 : 'auto';
+ }
+
for ( i in styles )
- styleStr.push( i + ':' + styles[i] );
+ styleStr.push( i + ':' + styles[ i ] );
if ( elementDefinition.hidden )
styleStr.push( 'display:none' );
- for ( i = styleStr.length - 1 ; i >= 0 ; i-- )
- {
- if ( styleStr[i] === '' )
+ for ( i = styleStr.length - 1; i >= 0; i-- ) {
+ if ( styleStr[ i ] === '' )
styleStr.splice( i, 1 );
}
if ( styleStr.length > 0 )
@@ -2142,7 +2240,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
// Write the attributes.
for ( i in attributes )
- html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[i] ) + '" ');
+ html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[ i ] ) + '" ' );
// Write the content HTML.
html.push( '>', innerHTML, '</', nodeName, '>' );
@@ -2154,10 +2252,29 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
// Override isChanged if it is defined in element definition.
if ( typeof( elementDefinition.isChanged ) == 'boolean' )
- this.isChanged = function(){ return elementDefinition.isChanged; };
+ this.isChanged = function() {
+ return elementDefinition.isChanged;
+ };
if ( typeof( elementDefinition.isChanged ) == 'function' )
this.isChanged = elementDefinition.isChanged;
+ // Overload 'get(set)Value' on definition.
+ if ( typeof( elementDefinition.setValue ) == 'function' ) {
+ this.setValue = CKEDITOR.tools.override( this.setValue, function( org ) {
+ return function( val ) {
+ org.call( this, elementDefinition.setValue.call( this, val ) );
+ };
+ });
+ }
+
+ if ( typeof( elementDefinition.getValue ) == 'function' ) {
+ this.getValue = CKEDITOR.tools.override( this.getValue, function( org ) {
+ return function() {
+ return elementDefinition.getValue.call( this, org.call( this ) );
+ };
+ });
+ }
+
// Add events.
CKEDITOR.event.implementOn( this );
@@ -2166,29 +2283,33 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
registerAccessKey( this, dialog, 'CTRL+' + elementDefinition.accessKey );
var me = this;
- dialog.on( 'load', function()
- {
- if ( me.getInputElement() )
- {
- me.getInputElement().on( 'focus', function()
- {
- dialog._.tabBarMode = false;
- dialog._.hasFocus = true;
- me.fire( 'focus' );
- }, me );
- }
- } );
+ dialog.on( 'load', function() {
+ var input = me.getInputElement();
+ if ( input ) {
+ var focusClass = me.type in { 'checkbox':1,'ratio':1 } && CKEDITOR.env.ie && CKEDITOR.env.version < 8 ? 'cke_dialog_ui_focused' : '';
+ input.on( 'focus', function() {
+ dialog._.tabBarMode = false;
+ dialog._.hasFocus = true;
+ me.fire( 'focus' );
+ focusClass && this.addClass( focusClass );
+
+ });
+
+ input.on( 'blur', function() {
+ me.fire( 'blur' );
+ focusClass && this.removeClass( focusClass );
+ });
+ }
+ });
// Register the object as a tab focus if it can be included.
- if ( this.keyboardFocusable )
- {
+ if ( this.keyboardFocusable ) {
this.tabIndex = elementDefinition.tabIndex || 0;
this.focusIndex = dialog._.focusList.push( this ) - 1;
- this.on( 'focus', function()
- {
- dialog._.currentFocusIndex = me.focusIndex;
- } );
+ this.on( 'focus', function() {
+ dialog._.currentFocusIndex = me.focusIndex;
+ });
}
// Completes this object with everything we have in the
@@ -2198,32 +2319,27 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* Horizontal layout box for dialog UI elements, auto-expends to available width of container.
- * @constructor
+ *
+ * @class CKEDITOR.ui.dialog.hbox
* @extends CKEDITOR.ui.dialog.uiElement
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
+ * @constructor Creates a hbox class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
* @param {Array} childObjList
- * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this
- * container.
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
* @param {Array} childHtmlList
* Array of HTML code that correspond to the HTML output of all the
* objects in childObjList.
* @param {Array} htmlList
* Array of HTML code that this element will output to.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>widths</strong> (Optional) The widths of child cells.</li>
- * <li><strong>height</strong> (Optional) The height of the layout.</li>
- * <li><strong>padding</strong> (Optional) The padding width inside child
- * cells.</li>
- * <li><strong>align</strong> (Optional) The alignment of the whole layout
- * </li>
- * </ul>
- * @example
+ *
+ * * `widths` (Optional) The widths of child cells.
+ * * `height` (Optional) The height of the layout.
+ * * `padding` (Optional) The padding width inside child cells.
+ * * `align` (Optional) The alignment of the whole layout.
*/
- hbox : function( dialog, childObjList, childHtmlList, htmlList, elementDefinition )
- {
+ hbox: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) {
if ( arguments.length < 4 )
return;
@@ -2235,82 +2351,67 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
styles = {},
i;
/** @ignore */
- var innerHTML = function()
- {
- var html = [ '<tbody><tr class="cke_dialog_ui_hbox">' ];
- for ( i = 0 ; i < childHtmlList.length ; i++ )
- {
- var className = 'cke_dialog_ui_hbox_child',
- styles = [];
- if ( i === 0 )
- className = 'cke_dialog_ui_hbox_first';
- if ( i == childHtmlList.length - 1 )
- className = 'cke_dialog_ui_hbox_last';
- html.push( '<td class="', className, '" role="presentation" ' );
- if ( widths )
- {
- if ( widths[i] )
- styles.push( 'width:' + CKEDITOR.tools.cssLength( widths[i] ) );
+ var innerHTML = function() {
+ var html = [ '<tbody><tr class="cke_dialog_ui_hbox">' ];
+ for ( i = 0; i < childHtmlList.length; i++ ) {
+ var className = 'cke_dialog_ui_hbox_child',
+ styles = [];
+ if ( i === 0 )
+ className = 'cke_dialog_ui_hbox_first';
+ if ( i == childHtmlList.length - 1 )
+ className = 'cke_dialog_ui_hbox_last';
+ html.push( '<td class="', className, '" role="presentation" ' );
+ if ( widths ) {
+ if ( widths[ i ] )
+ styles.push( 'width:' + cssLength( widths[ i ] ) );
+ } else
+ styles.push( 'width:' + Math.floor( 100 / childHtmlList.length ) + '%' );
+ if ( height )
+ styles.push( 'height:' + cssLength( height ) );
+ if ( elementDefinition && elementDefinition.padding != undefined )
+ styles.push( 'padding:' + cssLength( elementDefinition.padding ) );
+ // In IE Quirks alignment has to be done on table cells. (#7324)
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && children[ i ].align )
+ styles.push( 'text-align:' + children[ i ].align );
+ if ( styles.length > 0 )
+ html.push( 'style="' + styles.join( '; ' ) + '" ' );
+ html.push( '>', childHtmlList[ i ], '</td>' );
}
- else
- styles.push( 'width:' + Math.floor( 100 / childHtmlList.length ) + '%' );
- if ( height )
- styles.push( 'height:' + CKEDITOR.tools.cssLength( height ) );
- if ( elementDefinition && elementDefinition.padding != undefined )
- styles.push( 'padding:' + CKEDITOR.tools.cssLength( elementDefinition.padding ) );
- if ( styles.length > 0 )
- html.push( 'style="' + styles.join('; ') + '" ' );
- html.push( '>', childHtmlList[i], '</td>' );
- }
- html.push( '</tr></tbody>' );
- return html.join( '' );
- };
+ html.push( '</tr></tbody>' );
+ return html.join( '' );
+ };
- var attribs = { role : 'presentation' };
+ var attribs = { role: 'presentation' };
elementDefinition && elementDefinition.align && ( attribs.align = elementDefinition.align );
- CKEDITOR.ui.dialog.uiElement.call(
- this,
- dialog,
- elementDefinition || { type : 'hbox' },
- htmlList,
- 'table',
- styles,
- attribs,
- innerHTML );
+ CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type: 'hbox' }, htmlList, 'table', styles, attribs, innerHTML );
},
/**
* Vertical layout box for dialog UI elements.
- * @constructor
+ *
+ * @class CKEDITOR.ui.dialog.vbox
* @extends CKEDITOR.ui.dialog.hbox
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
+ * @constructor Creates a vbox class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
* @param {Array} childObjList
- * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this
- * container.
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
* @param {Array} childHtmlList
* Array of HTML code that correspond to the HTML output of all the
* objects in childObjList.
- * @param {Array} htmlList
- * Array of HTML code that this element will output to.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @param {Array} htmlList Array of HTML code that this element will output to.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>width</strong> (Optional) The width of the layout.</li>
- * <li><strong>heights</strong> (Optional) The heights of individual cells.
- * </li>
- * <li><strong>align</strong> (Optional) The alignment of the layout.</li>
- * <li><strong>padding</strong> (Optional) The padding width inside child
- * cells.</li>
- * <li><strong>expand</strong> (Optional) Whether the layout should expand
- * vertically to fill its container.</li>
- * </ul>
- * @example
+ *
+ * * `width` (Optional) The width of the layout.
+ * * `heights` (Optional) The heights of individual cells.
+ * * `align` (Optional) The alignment of the layout.
+ * * `padding` (Optional) The padding width inside child cells.
+ * * `expand` (Optional) Whether the layout should expand
+ * vertically to fill its container.
*/
- vbox : function( dialog, childObjList, childHtmlList, htmlList, elementDefinition )
- {
- if (arguments.length < 3 )
+ vbox: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) {
+ if ( arguments.length < 3 )
return;
this._ || ( this._ = {} );
@@ -2319,136 +2420,138 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
width = elementDefinition && elementDefinition.width || null,
heights = elementDefinition && elementDefinition.heights || null;
/** @ignore */
- var innerHTML = function()
- {
- var html = [ '<table role="presentation" cellspacing="0" border="0" ' ];
- html.push( 'style="' );
- if ( elementDefinition && elementDefinition.expand )
- html.push( 'height:100%;' );
- html.push( 'width:' + CKEDITOR.tools.cssLength( width || '100%' ), ';' );
- html.push( '"' );
- html.push( 'align="', CKEDITOR.tools.htmlEncode(
+ var innerHTML = function() {
+ var html = [ '<table role="presentation" cellspacing="0" border="0" ' ];
+ html.push( 'style="' );
+ if ( elementDefinition && elementDefinition.expand )
+ html.push( 'height:100%;' );
+ html.push( 'width:' + cssLength( width || '100%' ), ';' );
+ html.push( '"' );
+ html.push( 'align="', CKEDITOR.tools.htmlEncode(
( elementDefinition && elementDefinition.align ) || ( dialog.getParentEditor().lang.dir == 'ltr' ? 'left' : 'right' ) ), '" ' );
- html.push( '><tbody>' );
- for ( var i = 0 ; i < childHtmlList.length ; i++ )
- {
- var styles = [];
- html.push( '<tr><td role="presentation" ' );
- if ( width )
- styles.push( 'width:' + CKEDITOR.tools.cssLength( width || '100%' ) );
- if ( heights )
- styles.push( 'height:' + CKEDITOR.tools.cssLength( heights[i] ) );
- else if ( elementDefinition && elementDefinition.expand )
- styles.push( 'height:' + Math.floor( 100 / childHtmlList.length ) + '%' );
- if ( elementDefinition && elementDefinition.padding != undefined )
- styles.push( 'padding:' + CKEDITOR.tools.cssLength( elementDefinition.padding ) );
- if ( styles.length > 0 )
- html.push( 'style="', styles.join( '; ' ), '" ' );
- html.push( ' class="cke_dialog_ui_vbox_child">', childHtmlList[i], '</td></tr>' );
- }
- html.push( '</tbody></table>' );
- return html.join( '' );
- };
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type : 'vbox' }, htmlList, 'div', null, { role : 'presentation' }, innerHTML );
+ html.push( '><tbody>' );
+ for ( var i = 0; i < childHtmlList.length; i++ ) {
+ var styles = [];
+ html.push( '<tr><td role="presentation" ' );
+ if ( width )
+ styles.push( 'width:' + cssLength( width || '100%' ) );
+ if ( heights )
+ styles.push( 'height:' + cssLength( heights[ i ] ) );
+ else if ( elementDefinition && elementDefinition.expand )
+ styles.push( 'height:' + Math.floor( 100 / childHtmlList.length ) + '%' );
+ if ( elementDefinition && elementDefinition.padding != undefined )
+ styles.push( 'padding:' + cssLength( elementDefinition.padding ) );
+ // In IE Quirks alignment has to be done on table cells. (#7324)
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && children[ i ].align )
+ styles.push( 'text-align:' + children[ i ].align );
+ if ( styles.length > 0 )
+ html.push( 'style="', styles.join( '; ' ), '" ' );
+ html.push( ' class="cke_dialog_ui_vbox_child">', childHtmlList[ i ], '</td></tr>' );
+ }
+ html.push( '</tbody></table>' );
+ return html.join( '' );
+ };
+ CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition || { type: 'vbox' }, htmlList, 'div', null, { role: 'presentation' }, innerHTML );
}
};
})();
- CKEDITOR.ui.dialog.uiElement.prototype =
- {
+ /** @class CKEDITOR.ui.dialog.uiElement */
+ CKEDITOR.ui.dialog.uiElement.prototype = {
/**
* Gets the root DOM element of this dialog UI object.
+ *
+ * uiElement.getElement().hide();
+ *
* @returns {CKEDITOR.dom.element} Root DOM element of UI object.
- * @example
- * uiElement.getElement().hide();
*/
- getElement : function()
- {
+ getElement: function() {
return CKEDITOR.document.getById( this.domId );
},
/**
* Gets the DOM element that the user inputs values.
- * This function is used by setValue(), getValue() and focus(). It should
+ *
+ * This function is used by {@link #setValue}, {@link #getValue} and {@link #focus}. It should
* be overrided in child classes where the input element isn't the root
* element.
+ *
+ * var rawValue = textInput.getInputElement().$.value;
+ *
* @returns {CKEDITOR.dom.element} The element where the user input values.
- * @example
- * var rawValue = textInput.getInputElement().$.value;
*/
- getInputElement : function()
- {
+ getInputElement: function() {
return this.getElement();
},
/**
* Gets the parent dialog object containing this UI element.
+ *
+ * var dialog = uiElement.getDialog();
+ *
* @returns {CKEDITOR.dialog} Parent dialog object.
- * @example
- * var dialog = uiElement.getDialog();
*/
- getDialog : function()
- {
+ getDialog: function() {
return this._.dialog;
},
/**
* Sets the value of this dialog UI object.
+ *
+ * uiElement.setValue( 'Dingo' );
+ *
+ * @chainable
* @param {Object} value The new value.
- * @param {Boolean} noChangeEvent Internal commit, to supress 'change' event on this element.
- * @returns {CKEDITOR.dialog.uiElement} The current UI element.
- * @example
- * uiElement.setValue( 'Dingo' );
+ * @param {Boolean} noChangeEvent Internal commit, to supress `change` event on this element.
*/
- setValue : function( value, noChangeEvent )
- {
+ setValue: function( value, noChangeEvent ) {
this.getInputElement().setValue( value );
- !noChangeEvent && this.fire( 'change', { value : value } );
+ !noChangeEvent && this.fire( 'change', { value: value } );
return this;
},
/**
* Gets the current value of this dialog UI object.
+ *
+ * var myValue = uiElement.getValue();
+ *
* @returns {Object} The current value.
- * @example
- * var myValue = uiElement.getValue();
*/
- getValue : function()
- {
+ getValue: function() {
return this.getInputElement().getValue();
},
/**
* Tells whether the UI object's value has changed.
- * @returns {Boolean} true if changed, false if not changed.
- * @example
- * if ( uiElement.isChanged() )
- * confirm( 'Value changed! Continue?' );
+ *
+ * if ( uiElement.isChanged() )
+ * confirm( 'Value changed! Continue?' );
+ *
+ * @returns {Boolean} `true` if changed, `false` if not changed.
*/
- isChanged : function()
- {
+ isChanged: function() {
// Override in input classes.
return false;
},
/**
* Selects the parent tab of this element. Usually called by focus() or overridden focus() methods.
- * @returns {CKEDITOR.dialog.uiElement} The current UI element.
- * @example
- * focus : function()
- * {
- * this.selectParentTab();
- * // do something else.
- * }
+ *
+ * focus : function() {
+ * this.selectParentTab();
+ * // do something else.
+ * }
+ *
+ * @chainable
*/
- selectParentTab : function()
- {
+ selectParentTab: function() {
var element = this.getInputElement(),
cursor = element,
tabId;
- while ( ( cursor = cursor.getParent() ) && cursor.$.className.search( 'cke_dialog_page_contents' ) == -1 )
- { /*jsl:pass*/ }
+ while ( ( cursor = cursor.getParent() ) && cursor.$.className.search( 'cke_dialog_page_contents' ) == -1 ) {
+ /*jsl:pass*/
+ }
// Some widgets don't have parent tabs (e.g. OK and Cancel buttons).
if ( !cursor )
@@ -2463,60 +2566,53 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* Puts the focus to the UI object. Switches tabs if the UI object isn't in the active tab page.
- * @returns {CKEDITOR.dialog.uiElement} The current UI element.
- * @example
- * uiElement.focus();
+ *
+ * uiElement.focus();
+ *
+ * @chainable
*/
- focus : function()
- {
+ focus: function() {
this.selectParentTab().getInputElement().focus();
return this;
},
/**
- * Registers the on* event handlers defined in the element definition.
+ * Registers the `on*` event handlers defined in the element definition.
+ *
* The default behavior of this function is:
- * <ol>
- * <li>
- * If the on* event is defined in the class's eventProcesors list,
- * then the registration is delegated to the corresponding function
- * in the eventProcessors list.
- * </li>
- * <li>
- * If the on* event is not defined in the eventProcessors list, then
- * register the event handler under the corresponding DOM event of
- * the UI element's input DOM element (as defined by the return value
- * of {@link CKEDITOR.ui.dialog.uiElement#getInputElement}).
- * </li>
- * </ol>
+ *
+ * 1. If the on* event is defined in the class's eventProcesors list,
+ * then the registration is delegated to the corresponding function
+ * in the eventProcessors list.
+ * 2. If the on* event is not defined in the eventProcessors list, then
+ * register the event handler under the corresponding DOM event of
+ * the UI element's input DOM element (as defined by the return value
+ * of {@link #getInputElement}).
+ *
* This function is only called at UI element instantiation, but can
* be overridded in child classes if they require more flexibility.
- * @param {CKEDITOR.dialog.uiElementDefinition} definition The UI element
+ *
+ * @chainable
+ * @param {CKEDITOR.dialog.definition.uiElement} definition The UI element
* definition.
- * @returns {CKEDITOR.dialog.uiElement} The current UI element.
- * @example
*/
- registerEvents : function( definition )
- {
+ registerEvents: function( definition ) {
var regex = /^on([A-Z]\w+)/,
match;
- var registerDomEvent = function( uiElement, dialog, eventName, func )
- {
- dialog.on( 'load', function()
- {
- uiElement.getInputElement().on( eventName, func, uiElement );
- });
- };
+ var registerDomEvent = function( uiElement, dialog, eventName, func ) {
+ dialog.on( 'load', function() {
+ uiElement.getInputElement().on( eventName, func, uiElement );
+ });
+ };
- for ( var i in definition )
- {
+ for ( var i in definition ) {
if ( !( match = i.match( regex ) ) )
continue;
- if ( this.eventProcessors[i] )
- this.eventProcessors[i].call( this, this._.dialog, definition[i] );
+ if ( this.eventProcessors[ i ] )
+ this.eventProcessors[ i ].call( this, this._.dialog, definition[ i ] );
else
- registerDomEvent( this, this._.dialog, match[1].toLowerCase(), definition[i] );
+ registerDomEvent( this, this._.dialog, match[ 1 ].toLowerCase(), definition[ i ] );
}
return this;
@@ -2525,181 +2621,162 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* The event processor list used by
* {@link CKEDITOR.ui.dialog.uiElement#getInputElement} at UI element
- * instantiation. The default list defines three on* events:
- * <ol>
- * <li>onLoad - Called when the element's parent dialog opens for the
- * first time</li>
- * <li>onShow - Called whenever the element's parent dialog opens.</li>
- * <li>onHide - Called whenever the element's parent dialog closes.</li>
- * </ol>
- * @field
- * @type Object
- * @example
- * // This connects the 'click' event in CKEDITOR.ui.dialog.button to onClick
- * // handlers in the UI element's definitions.
- * CKEDITOR.ui.dialog.button.eventProcessors = CKEDITOR.tools.extend( {},
- * CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
- * { onClick : function( dialog, func ) { this.on( 'click', func ); } },
- * true );
+ * instantiation. The default list defines three `on*` events:
+ *
+ * 1. `onLoad` - Called when the element's parent dialog opens for the
+ * first time.
+ * 2. `onShow` - Called whenever the element's parent dialog opens.
+ * 3. `onHide` - Called whenever the element's parent dialog closes.
+ *
+ * // This connects the 'click' event in CKEDITOR.ui.dialog.button to onClick
+ * // handlers in the UI element's definitions.
+ * CKEDITOR.ui.dialog.button.eventProcessors = CKEDITOR.tools.extend( {},
+ * CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
+ * { onClick : function( dialog, func ) { this.on( 'click', func ); } },
+ * true
+ * );
+ *
+ * @property {Object}
*/
- eventProcessors :
- {
- onLoad : function( dialog, func )
- {
+ eventProcessors: {
+ onLoad: function( dialog, func ) {
dialog.on( 'load', func, this );
},
- onShow : function( dialog, func )
- {
+ onShow: function( dialog, func ) {
dialog.on( 'show', func, this );
},
- onHide : function( dialog, func )
- {
+ onHide: function( dialog, func ) {
dialog.on( 'hide', func, this );
}
},
/**
* The default handler for a UI element's access key down event, which
- * tries to put focus to the UI element.<br />
+ * tries to put focus to the UI element.
+ *
* Can be overridded in child classes for more sophisticaed behavior.
+ *
* @param {CKEDITOR.dialog} dialog The parent dialog object.
* @param {String} key The key combination pressed. Since access keys
- * are defined to always include the CTRL key, its value should always
- * include a 'CTRL+' prefix.
- * @example
+ * are defined to always include the `CTRL` key, its value should always
+ * include a `'CTRL+'` prefix.
*/
- accessKeyDown : function( dialog, key )
- {
+ accessKeyDown: function( dialog, key ) {
this.focus();
},
/**
* The default handler for a UI element's access key up event, which
- * does nothing.<br />
+ * does nothing.
+ *
* Can be overridded in child classes for more sophisticated behavior.
+ *
* @param {CKEDITOR.dialog} dialog The parent dialog object.
* @param {String} key The key combination pressed. Since access keys
- * are defined to always include the CTRL key, its value should always
- * include a 'CTRL+' prefix.
- * @example
+ * are defined to always include the `CTRL` key, its value should always
+ * include a `'CTRL+'` prefix.
*/
- accessKeyUp : function( dialog, key )
- {
- },
+ accessKeyUp: function( dialog, key ) {},
/**
* Disables a UI element.
- * @example
*/
- disable : function()
- {
- var element = this.getInputElement();
- element.setAttribute( 'disabled', 'true' );
+ disable: function() {
+ var element = this.getElement(),
+ input = this.getInputElement();
+ input.setAttribute( 'disabled', 'true' );
element.addClass( 'cke_disabled' );
},
/**
* Enables a UI element.
- * @example
*/
- enable : function()
- {
- var element = this.getInputElement();
- element.removeAttribute( 'disabled' );
+ enable: function() {
+ var element = this.getElement(),
+ input = this.getInputElement();
+ input.removeAttribute( 'disabled' );
element.removeClass( 'cke_disabled' );
},
/**
* Determines whether an UI element is enabled or not.
+ *
* @returns {Boolean} Whether the UI element is enabled.
- * @example
*/
- isEnabled : function()
- {
- return !this.getInputElement().getAttribute( 'disabled' );
+ isEnabled: function() {
+ return !this.getElement().hasClass( 'cke_disabled' );
},
/**
* Determines whether an UI element is visible or not.
+ *
* @returns {Boolean} Whether the UI element is visible.
- * @example
*/
- isVisible : function()
- {
+ isVisible: function() {
return this.getInputElement().isVisible();
},
/**
* Determines whether an UI element is focus-able or not.
* Focus-able is defined as being both visible and enabled.
+ *
* @returns {Boolean} Whether the UI element can be focused.
- * @example
*/
- isFocusable : function()
- {
+ isFocusable: function() {
if ( !this.isEnabled() || !this.isVisible() )
return false;
return true;
}
};
- CKEDITOR.ui.dialog.hbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
+ /** @class CKEDITOR.ui.dialog.hbox */
+ CKEDITOR.ui.dialog.hbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, {
/**
- * @lends CKEDITOR.ui.dialog.hbox.prototype
+ * Gets a child UI element inside this container.
+ *
+ * var checkbox = hbox.getChild( [0,1] );
+ * checkbox.setValue( true );
+ *
+ * @param {Array/Number} indices An array or a single number to indicate the child's
+ * position in the container's descendant tree. Omit to get all the children in an array.
+ * @returns {Array/CKEDITOR.ui.dialog.uiElement} Array of all UI elements in the container
+ * if no argument given, or the specified UI element if indices is given.
*/
- {
- /**
- * Gets a child UI element inside this container.
- * @param {Array|Number} indices An array or a single number to indicate the child's
- * position in the container's descendant tree. Omit to get all the children in an array.
- * @returns {Array|CKEDITOR.ui.dialog.uiElement} Array of all UI elements in the container
- * if no argument given, or the specified UI element if indices is given.
- * @example
- * var checkbox = hbox.getChild( [0,1] );
- * checkbox.setValue( true );
- */
- getChild : function( indices )
- {
- // If no arguments, return a clone of the children array.
- if ( arguments.length < 1 )
- return this._.children.concat();
-
- // If indices isn't array, make it one.
- if ( !indices.splice )
- indices = [ indices ];
-
- // Retrieve the child element according to tree position.
- if ( indices.length < 2 )
- return this._.children[ indices[0] ];
- else
- return ( this._.children[ indices[0] ] && this._.children[ indices[0] ].getChild ) ?
- this._.children[ indices[0] ].getChild( indices.slice( 1, indices.length ) ) :
- null;
- }
- }, true );
+ getChild: function( indices ) {
+ // If no arguments, return a clone of the children array.
+ if ( arguments.length < 1 )
+ return this._.children.concat();
+
+ // If indices isn't array, make it one.
+ if ( !indices.splice )
+ indices = [ indices ];
+
+ // Retrieve the child element according to tree position.
+ if ( indices.length < 2 )
+ return this._.children[ indices[ 0 ] ];
+ else
+ return ( this._.children[ indices[ 0 ] ] && this._.children[ indices[ 0 ] ].getChild ) ? this._.children[ indices[ 0 ] ].getChild( indices.slice( 1, indices.length ) ) : null;
+ }
+ }, true );
CKEDITOR.ui.dialog.vbox.prototype = new CKEDITOR.ui.dialog.hbox();
-
-
- (function()
- {
+ (function() {
var commonBuilder = {
- build : function( dialog, elementDefinition, output )
- {
+ build: function( dialog, elementDefinition, output ) {
var children = elementDefinition.children,
child,
childHtmlList = [],
childObjList = [];
- for ( var i = 0 ; ( i < children.length && ( child = children[i] ) ) ; i++ )
- {
+ for ( var i = 0;
+ ( i < children.length && ( child = children[ i ] ) ); i++ ) {
var childHtml = [];
childHtmlList.push( childHtml );
childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) );
}
- return new CKEDITOR.ui.dialog[elementDefinition.type]( dialog, childObjList, childHtmlList, output, elementDefinition );
+ return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition );
}
};
@@ -2709,308 +2786,406 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
/**
* Generic dialog command. It opens a specific dialog when executed.
- * @constructor
- * @augments CKEDITOR.commandDefinition
- * @param {string} dialogName The name of the dialog to open when executing
- * this command.
- * @example
- * // Register the "link" command, which opens the "link" dialog.
- * editor.addCommand( 'link', <b>new CKEDITOR.dialogCommand( 'link' )</b> );
+ *
+ * // Register the "link" command, which opens the "link" dialog.
+ * editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link' ) );
+ *
+ * @class
+ * @constructor Creates a dialogCommand class instance.
+ * @extends CKEDITOR.commandDefinition
+ * @param {String} dialogName The name of the dialog to open when executing
+ * this command.
*/
- CKEDITOR.dialogCommand = function( dialogName )
- {
+ CKEDITOR.dialogCommand = function( dialogName, ext ) {
this.dialogName = dialogName;
+ CKEDITOR.tools.extend( this, ext, true );
};
- CKEDITOR.dialogCommand.prototype =
- {
- /** @ignore */
- exec : function( editor )
- {
- editor.openDialog( this.dialogName );
+ CKEDITOR.dialogCommand.prototype = {
+ exec: function( editor ) {
+ // Special treatment for Opera. (#8031)
+ CKEDITOR.env.opera ? CKEDITOR.tools.setTimeout( function() {
+ editor.openDialog( this.dialogName );
+ }, 0, this ) : editor.openDialog( this.dialogName );
},
// Dialog commands just open a dialog ui, thus require no undo logic,
// undo support should dedicate to specific dialog implementation.
canUndo: false,
- editorFocus : CKEDITOR.env.ie || CKEDITOR.env.webkit
+ editorFocus: CKEDITOR.env.ie || CKEDITOR.env.webkit
};
- (function()
- {
+ (function() {
var notEmptyRegex = /^([a]|[^a])+$/,
integerRegex = /^\d*$/,
- numberRegex = /^\d*(?:\.\d+)?$/;
+ numberRegex = /^\d*(?:\.\d+)?$/,
+ htmlLengthRegex = /^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,
+ cssLengthRegex = /^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,
+ inlineStyleRegex = /^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;
CKEDITOR.VALIDATE_OR = 1;
CKEDITOR.VALIDATE_AND = 2;
- CKEDITOR.dialog.validate =
- {
- functions : function()
- {
- return function()
- {
+ CKEDITOR.dialog.validate = {
+ functions: function() {
+ var args = arguments;
+ return function() {
/**
* It's important for validate functions to be able to accept the value
* as argument in addition to this.getValue(), so that it is possible to
* combine validate functions together to make more sophisticated
* validators.
*/
- var value = this && this.getValue ? this.getValue() : arguments[0];
+ var value = this && this.getValue ? this.getValue() : args[ 0 ];
var msg = undefined,
relation = CKEDITOR.VALIDATE_AND,
- functions = [], i;
+ functions = [],
+ i;
- for ( i = 0 ; i < arguments.length ; i++ )
- {
- if ( typeof( arguments[i] ) == 'function' )
- functions.push( arguments[i] );
+ for ( i = 0; i < args.length; i++ ) {
+ if ( typeof( args[ i ] ) == 'function' )
+ functions.push( args[ i ] );
else
break;
}
- if ( i < arguments.length && typeof( arguments[i] ) == 'string' )
- {
- msg = arguments[i];
+ if ( i < args.length && typeof( args[ i ] ) == 'string' ) {
+ msg = args[ i ];
i++;
}
- if ( i < arguments.length && typeof( arguments[i]) == 'number' )
- relation = arguments[i];
+ if ( i < args.length && typeof( args[ i ] ) == 'number' )
+ relation = args[ i ];
var passed = ( relation == CKEDITOR.VALIDATE_AND ? true : false );
- for ( i = 0 ; i < functions.length ; i++ )
- {
+ for ( i = 0; i < functions.length; i++ ) {
if ( relation == CKEDITOR.VALIDATE_AND )
- passed = passed && functions[i]( value );
+ passed = passed && functions[ i ]( value );
else
- passed = passed || functions[i]( value );
- }
-
- if ( !passed )
- {
- if ( msg !== undefined )
- alert( msg );
- if ( this && ( this.select || this.focus ) )
- ( this.select || this.focus )();
- return false;
+ passed = passed || functions[ i ]( value );
}
- return true;
+ return !passed ? msg : true;
};
},
- regex : function( regex, msg )
- {
+ regex: function( regex, msg ) {
/*
* Can be greatly shortened by deriving from functions validator if code size
* turns out to be more important than performance.
*/
- return function()
- {
- var value = this && this.getValue ? this.getValue() : arguments[0];
- if ( !regex.test( value ) )
- {
- if ( msg !== undefined )
- alert( msg );
- if ( this && ( this.select || this.focus ) )
- {
- if ( this.select )
- this.select();
- else
- this.focus();
- }
- return false;
- }
- return true;
+ return function() {
+ var value = this && this.getValue ? this.getValue() : arguments[ 0 ];
+ return !regex.test( value ) ? msg : true;
};
},
- notEmpty : function( msg )
- {
+ notEmpty: function( msg ) {
return this.regex( notEmptyRegex, msg );
},
- integer : function( msg )
- {
+ integer: function( msg ) {
return this.regex( integerRegex, msg );
},
- 'number' : function( msg )
- {
+ 'number': function( msg ) {
return this.regex( numberRegex, msg );
},
- equals : function( value, msg )
- {
- return this.functions( function( val ){ return val == value; }, msg );
+ 'cssLength': function( msg ) {
+ return this.functions( function( val ) {
+ return cssLengthRegex.test( CKEDITOR.tools.trim( val ) );
+ }, msg );
+ },
+
+ 'htmlLength': function( msg ) {
+ return this.functions( function( val ) {
+ return htmlLengthRegex.test( CKEDITOR.tools.trim( val ) );
+ }, msg );
+ },
+
+ 'inlineStyle': function( msg ) {
+ return this.functions( function( val ) {
+ return inlineStyleRegex.test( CKEDITOR.tools.trim( val ) );
+ }, msg );
+ },
+
+ equals: function( value, msg ) {
+ return this.functions( function( val ) {
+ return val == value;
+ }, msg );
},
- notEqual : function( value, msg )
- {
- return this.functions( function( val ){ return val != value; }, msg );
+ notEqual: function( value, msg ) {
+ return this.functions( function( val ) {
+ return val != value;
+ }, msg );
}
};
- CKEDITOR.on( 'instanceDestroyed', function( evt )
- {
- // Remove dialog cover on last instance destroy.
- if ( CKEDITOR.tools.isEmpty( CKEDITOR.instances ) )
- {
- var currentTopDialog;
- while ( ( currentTopDialog = CKEDITOR.dialog._.currentTop ) )
- currentTopDialog.hide();
- removeCovers();
- }
+ CKEDITOR.on( 'instanceDestroyed', function( evt ) {
+ // Remove dialog cover on last instance destroy.
+ if ( CKEDITOR.tools.isEmpty( CKEDITOR.instances ) ) {
+ var currentTopDialog;
+ while ( ( currentTopDialog = CKEDITOR.dialog._.currentTop ) )
+ currentTopDialog.hide();
+ removeCovers();
+ }
- var dialogs = evt.editor._.storedDialogs;
- for ( var name in dialogs )
- dialogs[ name ].destroy();
+ var dialogs = evt.editor._.storedDialogs;
+ for ( var name in dialogs )
+ dialogs[ name ].destroy();
- });
+ });
})();
-})();
-// Extend the CKEDITOR.editor class with dialog specific functions.
-CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
- /** @lends CKEDITOR.editor.prototype */
- {
+ // Extend the CKEDITOR.editor class with dialog specific functions.
+ CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
/**
* Loads and opens a registered dialog.
+ *
+ * CKEDITOR.instances.editor1.openDialog( 'smiley' );
+ *
+ * @member CKEDITOR.editor
* @param {String} dialogName The registered name of the dialog.
* @param {Function} callback The function to be invoked after dialog instance created.
- * @see CKEDITOR.dialog.add
- * @example
- * CKEDITOR.instances.editor1.openDialog( 'smiley' );
- * @returns {CKEDITOR.dialog} The dialog object corresponding to the dialog displayed. null if the dialog name is not registered.
+ * @returns {CKEDITOR.dialog} The dialog object corresponding to the dialog displayed.
+ * `null` if the dialog name is not registered.
+ * @see CKEDITOR.dialog#add
*/
- openDialog : function( dialogName, callback )
- {
- var dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
- dialogSkin = this.skin.dialog;
+ openDialog: function( dialogName, callback ) {
+ var dialog = null, dialogDefinitions = CKEDITOR.dialog._.dialogDefinitions[ dialogName ];
+
+ if ( CKEDITOR.dialog._.currentTop === null )
+ showCover( this );
// If the dialogDefinition is already loaded, open it immediately.
- if ( typeof dialogDefinitions == 'function' && dialogSkin._isLoaded )
- {
- var storedDialogs = this._.storedDialogs ||
- ( this._.storedDialogs = {} );
+ if ( typeof dialogDefinitions == 'function' ) {
+ var storedDialogs = this._.storedDialogs || ( this._.storedDialogs = {} );
- var dialog = storedDialogs[ dialogName ] ||
- ( storedDialogs[ dialogName ] = new CKEDITOR.dialog( this, dialogName ) );
+ dialog = storedDialogs[ dialogName ] || ( storedDialogs[ dialogName ] = new CKEDITOR.dialog( this, dialogName ) );
callback && callback.call( dialog, dialog );
dialog.show();
- return dialog;
- }
- else if ( dialogDefinitions == 'failed' )
+ } else if ( dialogDefinitions == 'failed' ) {
+ hideCover( this );
throw new Error( '[CKEDITOR.dialog.openDialog] Dialog "' + dialogName + '" failed when loading definition.' );
+ } else if ( typeof dialogDefinitions == 'string' ) {
- // Not loaded? Load the .js file first.
- var body = CKEDITOR.document.getBody(),
- cursor = body.$.style.cursor,
- me = this;
-
- body.setStyle( 'cursor', 'wait' );
-
- function onDialogFileLoaded( success )
- {
- var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ],
- skin = me.skin.dialog;
-
- // Check if both skin part and definition is loaded.
- if ( !skin._isLoaded || loadDefinition && typeof success == 'undefined' )
- return;
-
- // In case of plugin error, mark it as loading failed.
- if ( typeof dialogDefinition != 'function' )
- CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed';
-
- me.openDialog( dialogName, callback );
- body.setStyle( 'cursor', cursor );
- }
+ CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ),
+ function() {
+ var dialogDefinition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ];
+ // In case of plugin error, mark it as loading failed.
+ if ( typeof dialogDefinition != 'function' )
+ CKEDITOR.dialog._.dialogDefinitions[ dialogName ] = 'failed';
- if ( typeof dialogDefinitions == 'string' )
- {
- var loadDefinition = 1;
- CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( dialogDefinitions ), onDialogFileLoaded );
+ this.openDialog( dialogName, callback );
+ }, this, 0, 1 );
}
- CKEDITOR.skins.load( this, 'dialog', onDialogFileLoaded );
+ CKEDITOR.skin.loadPart( 'dialog' );
- return null;
+ return dialog;
}
});
+})();
-CKEDITOR.plugins.add( 'dialog',
- {
- requires : [ 'dialogui' ]
- });
+CKEDITOR.plugins.add( 'dialog', {
+ requires: 'dialogui',
+ init: function( editor ) {
+ editor.on( 'contentDom', function() {
+ var editable = editor.editable();
+ // Open dialog on double-clicks.
+ editable.attachListener( editable, 'dblclick', function( evt ) {
+ if ( editor.readOnly )
+ return false;
+
+ var data = { element: evt.data.getTarget() };
+ editor.fire( 'doubleclick', data );
+ data.dialog && editor.openDialog( data.dialog );
+
+ return 1;
+ });
+ });
+ }
+});
// Dialog related configurations.
/**
- * The color of the dialog background cover. It should be a valid CSS color
- * string.
- * @name CKEDITOR.config.dialog_backgroundCoverColor
- * @type String
- * @default 'white'
- * @example
- * config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)';
+ * The color of the dialog background cover. It should be a valid CSS color string.
+ *
+ * config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)';
+ *
+ * @cfg {String} [dialog_backgroundCoverColor='white']
+ * @member CKEDITOR.config
*/
/**
* The opacity of the dialog background cover. It should be a number within the
- * range [0.0, 1.0].
- * @name CKEDITOR.config.dialog_backgroundCoverOpacity
- * @type Number
- * @default 0.5
- * @example
- * config.dialog_backgroundCoverOpacity = 0.7;
+ * range `[0.0, 1.0]`.
+ *
+ * config.dialog_backgroundCoverOpacity = 0.7;
+ *
+ * @cfg {Number} [dialog_backgroundCoverOpacity=0.5]
+ * @member CKEDITOR.config
*/
/**
* If the dialog has more than one tab, put focus into the first tab as soon as dialog is opened.
- * @name CKEDITOR.config.dialog_startupFocusTab
- * @type Boolean
- * @default false
- * @example
- * config.dialog_startupFocusTab = true;
+ *
+ * config.dialog_startupFocusTab = true;
+ *
+ * @cfg {Boolean} [dialog_startupFocusTab=false]
+ * @member CKEDITOR.config
*/
/**
* The distance of magnetic borders used in moving and resizing dialogs,
* measured in pixels.
- * @name CKEDITOR.config.dialog_magnetDistance
- * @type Number
- * @default 20
- * @example
- * config.dialog_magnetDistance = 30;
+ *
+ * config.dialog_magnetDistance = 30;
+ *
+ * @cfg {Number} [dialog_magnetDistance=20]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The guideline to follow when generating the dialog buttons. There are 3 possible options:
+ *
+ * * `'OS'` - the buttons will be displayed in the default order of the user's OS;
+ * * `'ltr'` - for Left-To-Right order;
+ * * `'rtl'` - for Right-To-Left order.
+ *
+ * Example:
+ *
+ * config.dialog_buttonsOrder = 'rtl';
+ *
+ * @since 3.5
+ * @cfg {String} [dialog_buttonsOrder='OS']
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The dialog contents to removed. It's a string composed by dialog name and tab name with a colon between them.
+ *
+ * Separate each pair with semicolon (see example).
+ *
+ * **Note:** All names are case-sensitive.
+ *
+ * **Note:** Be cautious when specifying dialog tabs that are mandatory,
+ * like `'info'`, dialog functionality might be broken because of this!
+ *
+ * config.removeDialogTabs = 'flash:advanced;image:Link';
+ *
+ * @since 3.5
+ * @cfg {String} [removeDialogTabs='']
+ * @member CKEDITOR.config
*/
/**
* Fired when a dialog definition is about to be used to create a dialog into
* an editor instance. This event makes it possible to customize the definition
* before creating it.
- * <p>Note that this event is called only the first time a specific dialog is
+ *
+ * Note that this event is called only the first time a specific dialog is
* opened. Successive openings will use the cached dialog, and this event will
- * not get fired.</p>
- * @name CKEDITOR#dialogDefinition
- * @event
- * @param {CKEDITOR.dialog.dialogDefinition} data The dialog defination that
- * is being loaded.
- * @param {CKEDITOR.editor} editor The editor instance that will use the
- * dialog.
+ * not get fired.
+ *
+ * @event dialogDefinition
+ * @member CKEDITOR
+ * @param {CKEDITOR.dialog.definition} data The dialog defination that
+ * is being loaded.
+ * @param {CKEDITOR.editor} editor The editor instance that will use the dialog.
+ */
+
+/**
+ * Fired when a tab is going to be selected in a dialog.
+ *
+ * @event selectPage
+ * @member CKEDITOR.dialog
+ * @param data
+ * @param {String} data.page The id of the page that it's gonna be selected.
+ * @param {String} data.currentPage The id of the current page.
+ */
+
+/**
+ * Fired when the user tries to dismiss a dialog.
+ *
+ * @event cancel
+ * @member CKEDITOR.dialog
+ * @param data
+ * @param {Boolean} data.hide Whether the event should proceed or not.
+ */
+
+/**
+ * Fired when the user tries to confirm a dialog.
+ *
+ * @event ok
+ * @member CKEDITOR.dialog
+ * @param data
+ * @param {Boolean} data.hide Whether the event should proceed or not.
+ */
+
+/**
+ * Fired when a dialog is shown.
+ *
+ * @event show
+ * @member CKEDITOR.dialog
+ */
+
+/**
+ * Fired when a dialog is shown.
+ *
+ * @event dialogShow
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired when a dialog is hidden.
+ *
+ * @event hide
+ * @member CKEDITOR.dialog
+ */
+
+/**
+ * Fired when a dialog is hidden.
+ *
+ * @event dialogHide
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired when a dialog is being resized. The event is fired on
+ * both the {@link CKEDITOR.dialog} object and the dialog instance
+ * since 3.5.3, previously it's available only in the global object.
+ *
+ * @static
+ * @event resize
+ * @member CKEDITOR.dialog
+ * @param data
+ * @param {CKEDITOR.dialog} data.dialog The dialog being resized (if
+ * it's fired on the dialog itself, this parameter isn't sent).
+ * @param {String} data.skin The skin name.
+ * @param {Number} data.width The new width.
+ * @param {Number} data.height The new height.
*/
/**
- * Fired when a tab is going to be selected in a dialog
- * @name dialog#selectPage
- * @event
- * @param String page The id of the page that it's gonna be selected.
- * @param String currentPage The id of the current page.
+ * Fired when a dialog is being resized. The event is fired on
+ * both the {@link CKEDITOR.dialog} object and the dialog instance
+ * since 3.5.3, previously it's available only in the global object.
+ *
+ * @since 3.5
+ * @event resize
+ * @member CKEDITOR.dialog
+ * @param data
+ * @param {Number} data.width The new width.
+ * @param {Number} data.height The new height.
*/
diff --git a/devel/third-party/ckeditor/plugins/dialog/samples/assets/my_dialog.js b/devel/third-party/ckeditor/plugins/dialog/samples/assets/my_dialog.js
new file mode 100644
index 0000000..e54bac6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/dialog/samples/assets/my_dialog.js
@@ -0,0 +1,49 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.dialog.add( 'myDialog', function( editor ) {
+ return {
+ title: 'My Dialog',
+ minWidth: 400,
+ minHeight: 200,
+ contents: [
+ {
+ id: 'tab1',
+ label: 'First Tab',
+ title: 'First Tab',
+ elements: [
+ {
+ id: 'input1',
+ type: 'text',
+ label: 'Text Field'
+ },
+ {
+ id: 'select1',
+ type: 'select',
+ label: 'Select Field',
+ items: [
+ [ 'option1', 'value1' ],
+ [ 'option2', 'value2' ]
+ ]
+ }
+ ]
+ },
+ {
+ id: 'tab2',
+ label: 'Second Tab',
+ title: 'Second Tab',
+ elements: [
+ {
+ id: 'button1',
+ type: 'button',
+ label: 'Button Field'
+ }
+ ]
+ }
+ ]
+ };
+});
+
+// %LEAVE_UNMINIFIED% %REMOVE_LINE%
diff --git a/devel/third-party/ckeditor/plugins/dialog/samples/dialog.html b/devel/third-party/ckeditor/plugins/dialog/samples/dialog.html
new file mode 100644
index 0000000..0027684
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/dialog/samples/dialog.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>Using API to Customize Dialog Windows — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <script src="../../../ckeditor.js"></script>
+ <link rel="stylesheet" href="../../../samples/sample.css">
+ <meta name="ckeditor-sample-name" content="Using the JavaScript API to customize dialog windows">
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
+ <meta name="ckeditor-sample-description" content="Using the dialog windows API to customize dialog windows without changing the original editor code.">
+ <style>
+
+ .cke_button__mybutton_icon
+ {
+ display: none !important;
+ }
+
+ .cke_button__mybutton_label
+ {
+ display: inline !important;
+ }
+
+ </style>
+ <script>
+
+ CKEDITOR.on( 'instanceCreated', function( ev ){
+ var editor = ev.editor;
+
+ // Listen for the "pluginsLoaded" event, so we are sure that the
+ // "dialog" plugin has been loaded and we are able to do our
+ // customizations.
+ editor.on( 'pluginsLoaded', function() {
+
+ // If our custom dialog has not been registered, do that now.
+ if ( !CKEDITOR.dialog.exists( 'myDialog' ) ) {
+ // We need to do the following trick to find out the dialog
+ // definition file URL path. In the real world, you would simply
+ // point to an absolute path directly, like "/mydir/mydialog.js".
+ var href = document.location.href.split( '/' );
+ href.pop();
+ href.push( 'assets/my_dialog.js' );
+ href = href.join( '/' );
+
+ // Finally, register the dialog.
+ CKEDITOR.dialog.add( 'myDialog', href );
+ }
+
+ // Register the command used to open the dialog.
+ editor.addCommand( 'myDialogCmd', new CKEDITOR.dialogCommand( 'myDialog' ) );
+
+ // Add the a custom toolbar buttons, which fires the above
+ // command..
+ editor.ui.add( 'MyButton', CKEDITOR.UI_BUTTON, {
+ label: 'My Dialog',
+ command: 'myDialogCmd'
+ });
+ });
+ });
+
+ // When opening a dialog, its "definition" is created for it, for
+ // each editor instance. The "dialogDefinition" event is then
+ // fired. We should use this event to make customizations to the
+ // definition of existing dialogs.
+ CKEDITOR.on( 'dialogDefinition', function( ev ) {
+ // Take the dialog name and its definition from the event data.
+ var dialogName = ev.data.name;
+ var dialogDefinition = ev.data.definition;
+
+ // Check if the definition is from the dialog we're
+ // interested on (the "Link" dialog).
+ if ( dialogName == 'myDialog' && ev.editor.name == 'editor2' ) {
+ // Get a reference to the "Link Info" tab.
+ var infoTab = dialogDefinition.getContents( 'tab1' );
+
+ // Add a new text field to the "tab1" tab page.
+ infoTab.add( {
+ type: 'text',
+ label: 'My Custom Field',
+ id: 'customField',
+ 'default': 'Sample!',
+ validate: function() {
+ if ( ( /\d/ ).test( this.getValue() ) )
+ return 'My Custom Field must not contain digits';
+ }
+ });
+
+ // Remove the "select1" field from the "tab1" tab.
+ infoTab.remove( 'select1' );
+
+ // Set the default value for "input1" field.
+ var input1 = infoTab.get( 'input1' );
+ input1[ 'default' ] = 'www.example.com';
+
+ // Remove the "tab2" tab page.
+ dialogDefinition.removeContents( 'tab2' );
+
+ // Add a new tab to the "Link" dialog.
+ dialogDefinition.addContents( {
+ id: 'customTab',
+ label: 'My Tab',
+ accessKey: 'M',
+ elements: [
+ {
+ id: 'myField1',
+ type: 'text',
+ label: 'My Text Field'
+ },
+ {
+ id: 'myField2',
+ type: 'text',
+ label: 'Another Text Field'
+ }
+ ]
+ });
+
+ // Provide the focus handler to start initial focus in "customField" field.
+ dialogDefinition.onFocus = function() {
+ var urlField = this.getContentElement( 'tab1', 'customField' );
+ urlField.select();
+ };
+ }
+ });
+
+ var config = {
+ extraPlugins: 'dialog',
+ toolbar: [ [ 'MyButton' ] ]
+ };
+
+ </script>
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » Using CKEditor Dialog API
+ </h1>
+ <div class="description">
+ <p>
+ This sample shows how to use the
+ <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.dialog">CKEditor Dialog API</a>
+ to customize CKEditor dialog windows without changing the original editor code.
+ The following customizations are being done in the example below:
+ </p>
+ <p>
+ For details on how to create this setup check the source code of this sample page.
+ </p>
+ </div>
+ <p>A custom dialog is added to the editors using the <code>pluginsLoaded</code> event, from an external <a target="_blank" href="assets/my_dialog.js">dialog definition file</a>:</p>
+ <ol>
+ <li><strong>Creating a custom dialog window</strong> – "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li>
+ <li><strong>Creating a custom button</strong> – Add button to open the dialog with "My Dialog" toolbar button.</li>
+ </ol>
+ <textarea cols="80" id="editor1" name="editor1" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>
+ <script>
+ // Replace the <textarea id="editor1"> with an CKEditor instance.
+ CKEDITOR.replace( 'editor1', config );
+ </script>
+ <p>The below editor modify the dialog definition of the above added dialog using the <code>dialogDefinition</code> event:</p>
+ <ol>
+ <li><strong>Adding dialog tab</strong> – Add new tab "My Tab" to dialog window.</li>
+ <li><strong>Removing a dialog window tab</strong> – Remove "Second Tab" page from the dialog window.</li>
+ <li><strong>Adding dialog window fields</strong> – Add "My Custom Field" to the dialog window.</li>
+ <li><strong>Removing dialog window field</strong> – Remove "Select Field" selection field from the dialog window.</li>
+ <li><strong>Setting default values for dialog window fields</strong> – Set default value of "Text Field" text field. </li>
+ <li><strong>Setup initial focus for dialog window</strong> – Put initial focus on "My Custom Field" text field. </li>
+ </ol>
+ <textarea cols="80" id="editor2" name="editor2" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>
+ <script>
+
+ // Replace the <textarea id="editor1"> with an CKEditor instance.
+ CKEDITOR.replace( 'editor2', config );
+
+ </script>
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/dialogadvtab/plugin.js b/devel/third-party/ckeditor/plugins/dialogadvtab/plugin.js
index 5feec9c..cd7b5f5 100644
--- a/devel/third-party/ckeditor/plugins/dialogadvtab/plugin.js
+++ b/devel/third-party/ckeditor/plugins/dialogadvtab/plugin.js
@@ -1,207 +1,169 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
-
-function setupAdvParams( element )
-{
- var attrName = this.att;
-
- var value = element && element.hasAttribute( attrName ) && element.getAttribute( attrName ) || '';
-
- if ( value !== undefined )
- this.setValue( value );
-}
-
-function commitAdvParams()
-{
- // Dialogs may use different parameters in the commit list, so, by
- // definition, we take the first CKEDITOR.dom.element available.
- var element;
-
- for ( var i = 0 ; i < arguments.length ; i++ )
- {
- if ( arguments[ i ] instanceof CKEDITOR.dom.element )
- {
- element = arguments[ i ];
- break;
- }
- }
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+
+ function setupAdvParams( element ) {
+ var attrName = this.att;
- if ( element )
- {
- var attrName = this.att,
- value = this.getValue();
+ var value = element && element.hasAttribute( attrName ) && element.getAttribute( attrName ) || '';
- if ( value )
- element.setAttribute( attrName, value );
- else
- element.removeAttribute( attrName, value );
+ if ( value !== undefined )
+ this.setValue( value );
}
-}
-
-CKEDITOR.plugins.add( 'dialogadvtab',
-{
- /**
- *
- * @param tabConfig
- * id, dir, classes, styles
- */
- createAdvancedTab : function( editor, tabConfig )
- {
- if ( !tabConfig )
- tabConfig = { id:1, dir:1, classes:1, styles:1 };
-
- var lang = editor.lang.common;
-
- var result =
- {
- id : 'advanced',
- label : lang.advancedTab,
- title : lang.advancedTab,
- elements :
- [
- {
- type : 'vbox',
- padding : 1,
- children : []
- }
- ]
- };
- var contents = [];
+ function commitAdvParams() {
+ // Dialogs may use different parameters in the commit list, so, by
+ // definition, we take the first CKEDITOR.dom.element available.
+ var element;
- if ( tabConfig.id || tabConfig.dir )
- {
- if ( tabConfig.id )
- {
- contents.push(
- {
- id : 'advId',
- att : 'id',
- type : 'text',
- label : lang.id,
- setup : setupAdvParams,
- commit : commitAdvParams
- });
+ for ( var i = 0; i < arguments.length; i++ ) {
+ if ( arguments[ i ] instanceof CKEDITOR.dom.element ) {
+ element = arguments[ i ];
+ break;
}
+ }
+
+ if ( element ) {
+ var attrName = this.att,
+ value = this.getValue();
- if ( tabConfig.dir )
- {
- contents.push(
+ if ( value )
+ element.setAttribute( attrName, value );
+ else
+ element.removeAttribute( attrName, value );
+ }
+ }
+
+ CKEDITOR.plugins.add( 'dialogadvtab', {
+ requires : 'dialog',
+ // @param tabConfig
+ // id, dir, classes, styles
+ createAdvancedTab: function( editor, tabConfig ) {
+ if ( !tabConfig )
+ tabConfig = { id:1,dir:1,classes:1,styles:1 };
+
+ var lang = editor.lang.common;
+
+ var result = {
+ id: 'advanced',
+ label: lang.advancedTab,
+ title: lang.advancedTab,
+ elements: [
{
- id : 'advLangDir',
- att : 'dir',
- type : 'select',
- label : lang.langDir,
- 'default' : '',
- style : 'width:100%',
- items :
- [
+ type: 'vbox',
+ padding: 1,
+ children: []
+ }
+ ]
+ };
+
+ var contents = [];
+
+ if ( tabConfig.id || tabConfig.dir ) {
+ if ( tabConfig.id ) {
+ contents.push({
+ id: 'advId',
+ att: 'id',
+ type: 'text',
+ label: lang.id,
+ setup: setupAdvParams,
+ commit: commitAdvParams
+ });
+ }
+
+ if ( tabConfig.dir ) {
+ contents.push({
+ id: 'advLangDir',
+ att: 'dir',
+ type: 'select',
+ label: lang.langDir,
+ 'default': '',
+ style: 'width:100%',
+ items: [
[ lang.notSet, '' ],
[ lang.langDirLTR, 'ltr' ],
[ lang.langDirRTL, 'rtl' ]
- ],
- setup : setupAdvParams,
- commit : commitAdvParams
+ ],
+ setup: setupAdvParams,
+ commit: commitAdvParams
});
- }
+ }
- result.elements[ 0 ].children.push(
- {
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children : [].concat( contents )
+ result.elements[ 0 ].children.push({
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [].concat( contents )
});
- }
+ }
- if ( tabConfig.styles || tabConfig.classes )
- {
- contents = [];
+ if ( tabConfig.styles || tabConfig.classes ) {
+ contents = [];
- if ( tabConfig.styles )
- {
- contents.push(
- {
- id : 'advStyles',
- att : 'style',
- type : 'text',
- label : lang.styles,
- 'default' : '',
+ if ( tabConfig.styles ) {
+ contents.push({
+ id: 'advStyles',
+ att: 'style',
+ type: 'text',
+ label: lang.styles,
+ 'default': '',
- onChange : function(){},
+ validate: CKEDITOR.dialog.validate.inlineStyle( lang.invalidInlineStyle ),
+ onChange: function() {},
- getStyle : function( name, defaultValue )
- {
- var match = this.getValue().match( new RegExp( name + '\\s*:\s*([^;]*)', 'i') );
+ getStyle: function( name, defaultValue ) {
+ var match = this.getValue().match( new RegExp( '(?:^|;)\\s*' + name + '\\s*:\\s*([^;]*)', 'i' ) );
return match ? match[ 1 ] : defaultValue;
},
- updateStyle : function( name, value )
- {
+ updateStyle: function( name, value ) {
var styles = this.getValue();
- // Remove the current value.
- if ( styles )
- {
- styles = styles
- .replace( new RegExp( '\\s*' + name + '\s*:[^;]*(?:$|;\s*)', 'i' ), '' )
- .replace( /^[;\s]+/, '' )
- .replace( /\s+$/, '' );
- }
-
- if ( value )
- {
- styles && !(/;\s*$/).test( styles ) && ( styles += '; ' );
- styles += name + ': ' + value;
- }
-
- this.setValue( styles, true );
+ var tmp = editor.document.createElement( 'span' );
+ tmp.setAttribute( 'style', styles );
+ tmp.setStyle( name, value );
+ styles = CKEDITOR.tools.normalizeCssText( tmp.getAttribute( 'style' ) );
+ this.setValue( styles, 1 );
},
- setup : setupAdvParams,
+ setup: setupAdvParams,
- commit : commitAdvParams
+ commit: commitAdvParams
});
- }
+ }
- if ( tabConfig.classes )
- {
- contents.push(
- {
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
+ if ( tabConfig.classes ) {
+ contents.push({
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
{
- id : 'advCSSClasses',
- att : 'class',
- type : 'text',
- label : lang.cssClasses,
- 'default' : '',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- }
+ id: 'advCSSClasses',
+ att: 'class',
+ type: 'text',
+ label: lang.cssClasses,
+ 'default': '',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
+ }
]
});
- }
+ }
- result.elements[ 0 ].children.push(
- {
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children : [].concat( contents )
+ result.elements[ 0 ].children.push({
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [].concat( contents )
});
- }
+ }
- return result;
- }
-});
+ return result;
+ }
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/dialogui/plugin.js b/devel/third-party/ckeditor/plugins/dialogui/plugin.js
index 7875b5b..66fceec 100644
--- a/devel/third-party/ckeditor/plugins/dialogui/plugin.js
+++ b/devel/third-party/ckeditor/plugins/dialogui/plugin.js
@@ -1,230 +1,193 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/** @fileoverview The "dialogui" plugin. */
-
-CKEDITOR.plugins.add( 'dialogui' );
-
-(function()
-{
- var initPrivateObject = function( elementDefinition )
- {
- this._ || ( this._ = {} );
- this._['default'] = this._.initValue = elementDefinition['default'] || '';
- this._.required = elementDefinition[ 'required' ] || false;
- var args = [ this._ ];
- for ( var i = 1 ; i < arguments.length ; i++ )
- args.push( arguments[i] );
- args.push( true );
- CKEDITOR.tools.extend.apply( CKEDITOR.tools, args );
- return this._;
- },
- textBuilder =
- {
- build : function( dialog, elementDefinition, output )
- {
- return new CKEDITOR.ui.dialog.textInput( dialog, elementDefinition, output );
- }
- },
- commonBuilder =
- {
- build : function( dialog, elementDefinition, output )
- {
- return new CKEDITOR.ui.dialog[elementDefinition.type]( dialog, elementDefinition, output );
- }
- },
- containerBuilder =
- {
- build : function( dialog, elementDefinition, output )
- {
- var children = elementDefinition.children,
- child,
- childHtmlList = [],
- childObjList = [];
- for ( var i = 0 ; ( i < children.length && ( child = children[i] ) ) ; i++ )
- {
- var childHtml = [];
- childHtmlList.push( childHtml );
- childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) );
- }
- return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition );
- }
- },
- commonPrototype =
- {
- isChanged : function()
- {
- return this.getValue() != this.getInitValue();
- },
-
- reset : function( noChangeEvent )
- {
- this.setValue( this.getInitValue(), noChangeEvent );
- },
-
- setInitValue : function()
- {
- this._.initValue = this.getValue();
- },
-
- resetInitValue : function()
- {
- this._.initValue = this._['default'];
- },
-
- getInitValue : function()
- {
- return this._.initValue;
- }
- },
- commonEventProcessors = CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
- {
- onChange : function( dialog, func )
- {
- if ( !this._.domOnChangeRegistered )
- {
- dialog.on( 'load', function()
- {
- this.getInputElement().on( 'change', function()
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview The "dialogui" plugin.
+ */
+
+CKEDITOR.plugins.add( 'dialogui', {
+ onLoad: function() {
+
+ var initPrivateObject = function( elementDefinition ) {
+ this._ || ( this._ = {} );
+ this._[ 'default' ] = this._.initValue = elementDefinition[ 'default' ] || '';
+ this._.required = elementDefinition[ 'required' ] || false;
+ var args = [ this._ ];
+ for ( var i = 1; i < arguments.length; i++ )
+ args.push( arguments[ i ] );
+ args.push( true );
+ CKEDITOR.tools.extend.apply( CKEDITOR.tools, args );
+ return this._;
+ },
+ textBuilder = {
+ build: function( dialog, elementDefinition, output ) {
+ return new CKEDITOR.ui.dialog.textInput( dialog, elementDefinition, output );
+ }
+ },
+ commonBuilder = {
+ build: function( dialog, elementDefinition, output ) {
+ return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, elementDefinition, output );
+ }
+ },
+ containerBuilder = {
+ build: function( dialog, elementDefinition, output ) {
+ var children = elementDefinition.children,
+ child,
+ childHtmlList = [],
+ childObjList = [];
+ for ( var i = 0;
+ ( i < children.length && ( child = children[ i ] ) ); i++ ) {
+ var childHtml = [];
+ childHtmlList.push( childHtml );
+ childObjList.push( CKEDITOR.dialog._.uiElementBuilders[ child.type ].build( dialog, child, childHtml ) );
+ }
+ return new CKEDITOR.ui.dialog[ elementDefinition.type ]( dialog, childObjList, childHtmlList, output, elementDefinition );
+ }
+ },
+ commonPrototype = {
+ isChanged: function() {
+ return this.getValue() != this.getInitValue();
+ },
+
+ reset: function( noChangeEvent ) {
+ this.setValue( this.getInitValue(), noChangeEvent );
+ },
+
+ setInitValue: function() {
+ this._.initValue = this.getValue();
+ },
+
+ resetInitValue: function() {
+ this._.initValue = this._[ 'default' ];
+ },
+
+ getInitValue: function() {
+ return this._.initValue;
+ }
+ },
+ commonEventProcessors = CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, {
+ onChange: function( dialog, func ) {
+ if ( !this._.domOnChangeRegistered ) {
+ dialog.on( 'load', function() {
+ this.getInputElement().on( 'change', function() {
// Make sure 'onchange' doesn't get fired after dialog closed. (#5719)
if ( !dialog.parts.dialog.isVisible() )
return;
- this.fire( 'change', { value : this.getValue() } );
+ this.fire( 'change', { value: this.getValue() } );
}, this );
}, this );
- this._.domOnChangeRegistered = true;
+ this._.domOnChangeRegistered = true;
+ }
+
+ this.on( 'change', func );
}
+ }, true ),
+ eventRegex = /^on([A-Z]\w+)/,
+ cleanInnerDefinition = function( def ) {
+ // An inner UI element should not have the parent's type, title or events.
+ for ( var i in def ) {
+ if ( eventRegex.test( i ) || i == 'title' || i == 'type' )
+ delete def[ i ];
+ }
+ return def;
+ };
- this.on( 'change', func );
- }
- }, true ),
- eventRegex = /^on([A-Z]\w+)/,
- cleanInnerDefinition = function( def )
- {
- // An inner UI element should not have the parent's type, title or events.
- for ( var i in def )
- {
- if ( eventRegex.test( i ) || i == 'title' || i == 'type' )
- delete def[i];
- }
- return def;
- };
-
- CKEDITOR.tools.extend( CKEDITOR.ui.dialog,
- /** @lends CKEDITOR.ui.dialog */
- {
+ CKEDITOR.tools.extend( CKEDITOR.ui.dialog, {
/**
* Base class for all dialog elements with a textual label on the left.
- * @constructor
- * @example
+ *
+ * @class CKEDITOR.ui.dialog.labeledElement
* @extends CKEDITOR.ui.dialog.uiElement
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a labeledElement class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>label</strong> (Required) The label string.</li>
- * <li><strong>labelLayout</strong> (Optional) Put 'horizontal' here if the
- * label element is to be layed out horizontally. Otherwise a vertical
- * layout will be used.</li>
- * <li><strong>widths</strong> (Optional) This applies only for horizontal
- * layouts - an 2-element array of lengths to specify the widths of the
- * label and the content element.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `label` (Required) The label string.
+ * * `labelLayout` (Optional) Put 'horizontal' here if the
+ * label element is to be layed out horizontally. Otherwise a vertical
+ * layout will be used.
+ * * `widths` (Optional) This applies only for horizontal
+ * layouts - an 2-element array of lengths to specify the widths of the
+ * label and the content element.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
* @param {Function} contentHtml
* A function returning the HTML code string to be added inside the content
* cell.
*/
- labeledElement : function( dialog, elementDefinition, htmlList, contentHtml )
- {
+ labeledElement: function( dialog, elementDefinition, htmlList, contentHtml ) {
if ( arguments.length < 4 )
return;
var _ = initPrivateObject.call( this, elementDefinition );
_.labelId = CKEDITOR.tools.getNextId() + '_label';
var children = this._.children = [];
- /** @ignore */
- var innerHTML = function()
- {
- var html = [],
- requiredClass = elementDefinition.required ? ' cke_required' : '' ;
- if ( elementDefinition.labelLayout != 'horizontal' )
- html.push( '<label class="cke_dialog_ui_labeled_label' + requiredClass + '" ',
- ' id="'+ _.labelId + '"',
- ' for="' + _.inputId + '"',
- ' style="' + elementDefinition.labelStyle + '">',
- elementDefinition.label,
- '</label>',
- '<div class="cke_dialog_ui_labeled_content" role="presentation">',
- contentHtml.call( this, dialog, elementDefinition ),
- '</div>' );
- else
- {
- var hboxDefinition = {
- type : 'hbox',
- widths : elementDefinition.widths,
- padding : 0,
- children :
- [
- {
- type : 'html',
- html : '<label class="cke_dialog_ui_labeled_label' + requiredClass + '"' +
+
+ var innerHTML = function() {
+ var html = [],
+ requiredClass = elementDefinition.required ? ' cke_required' : '';
+ if ( elementDefinition.labelLayout != 'horizontal' )
+ html.push( '<label class="cke_dialog_ui_labeled_label' + requiredClass + '" ', ' id="' + _.labelId + '"', ( _.inputId ? ' for="' + _.inputId + '"' : '' ), ( elementDefinition.labelStyle ? ' style="' + elementDefinition.labelStyle + '"' : '' ) + '>', elementDefinition.label, '</label>', '<div class="cke_dialog_ui_labeled_content"' + ( elementDefinition.controlStyle ? ' style="' + elementDefinition.controlStyle + '"' : '' ) + ' role="presentation">', contentHtml.call( this, dialog, elementDefinition ), '</div>' );
+ else {
+ var hboxDefinition = {
+ type: 'hbox',
+ widths: elementDefinition.widths,
+ padding: 0,
+ children: [
+ {
+ type: 'html',
+ html: '<label class="cke_dialog_ui_labeled_label' + requiredClass + '"' +
' id="' + _.labelId + '"' +
' for="' + _.inputId + '"' +
- ' style="' + elementDefinition.labelStyle + '">' +
- CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
+ ( elementDefinition.labelStyle ? ' style="' + elementDefinition.labelStyle + '"' : '' ) + '>' +
+ CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
'</span>'
},
- {
- type : 'html',
- html : '<span class="cke_dialog_ui_labeled_content">' +
+ {
+ type: 'html',
+ html: '<span class="cke_dialog_ui_labeled_content"' + ( elementDefinition.controlStyle ? ' style="' + elementDefinition.controlStyle + '"' : '' ) + '>' +
contentHtml.call( this, dialog, elementDefinition ) +
'</span>'
}
- ]
- };
- CKEDITOR.dialog._.uiElementBuilders.hbox.build( dialog, hboxDefinition, html );
- }
- return html.join( '' );
- };
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'div', null, { role : 'presentation' }, innerHTML );
+ ]
+ };
+ CKEDITOR.dialog._.uiElementBuilders.hbox.build( dialog, hboxDefinition, html );
+ }
+ return html.join( '' );
+ };
+ CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'div', null, { role: 'presentation' }, innerHTML );
},
/**
* A text input with a label. This UI element class represents both the
* single-line text inputs and password inputs in dialog boxes.
- * @constructor
- * @example
+ *
+ * @class CKEDITOR.ui.dialog.textInput
* @extends CKEDITOR.ui.dialog.labeledElement
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a textInput class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>default</strong> (Optional) The default value.</li>
- * <li><strong>validate</strong> (Optional) The validation function. </li>
- * <li><strong>maxLength</strong> (Optional) The maximum length of text box
- * contents.</li>
- * <li><strong>size</strong> (Optional) The size of the text box. This is
- * usually overridden by the size defined by the skin, however.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `default` (Optional) The default value.
+ * * `validate` (Optional) The validation function.
+ * * `maxLength` (Optional) The maximum length of text box contents.
+ * * `size` (Optional) The size of the text box. This is
+ * usually overridden by the size defined by the skin, however.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- textInput : function( dialog, elementDefinition, htmlList )
- {
+ textInput: function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
initPrivateObject.call( this, elementDefinition );
var domId = this._.inputId = CKEDITOR.tools.getNextId() + '_textInput',
- attributes = { 'class' : 'cke_dialog_ui_input_' + elementDefinition.type, id : domId, type : 'text' },
+ attributes = { 'class': 'cke_dialog_ui_input_' + elementDefinition.type, id: domId, type: elementDefinition.type },
i;
// Set the validator, if any.
@@ -237,77 +200,70 @@ CKEDITOR.plugins.add( 'dialogui' );
if ( elementDefinition.size )
attributes.size = elementDefinition.size;
- if ( elementDefinition.controlStyle )
- attributes.style = elementDefinition.controlStyle;
+ if ( elementDefinition.inputStyle )
+ attributes.style = elementDefinition.inputStyle;
// If user presses Enter in a text box, it implies clicking OK for the dialog.
- var me = this, keyPressedOnMe = false;
- dialog.on( 'load', function()
- {
- me.getInputElement().on( 'keydown', function( evt )
- {
- if ( evt.data.getKeystroke() == 13 )
- keyPressedOnMe = true;
- } );
-
- // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749)
- me.getInputElement().on( 'keyup', function( evt )
- {
- if ( evt.data.getKeystroke() == 13 && keyPressedOnMe )
- {
- dialog.getButton( 'ok' ) && setTimeout( function ()
- {
- dialog.getButton( 'ok' ).click();
- }, 0 );
- keyPressedOnMe = false;
- }
- }, null, null, 1000 );
- } );
+ var me = this,
+ keyPressedOnMe = false;
+ dialog.on( 'load', function() {
+ me.getInputElement().on( 'keydown', function( evt ) {
+ if ( evt.data.getKeystroke() == 13 )
+ keyPressedOnMe = true;
+ });
+
+ // Lower the priority this 'keyup' since 'ok' will close the dialog.(#3749)
+ me.getInputElement().on( 'keyup', function( evt ) {
+ if ( evt.data.getKeystroke() == 13 && keyPressedOnMe ) {
+ dialog.getButton( 'ok' ) && setTimeout( function() {
+ dialog.getButton( 'ok' ).click();
+ }, 0 );
+ keyPressedOnMe = false;
+ }
+ }, null, null, 1000 );
+ });
- /** @ignore */
- var innerHTML = function()
- {
- // IE BUG: Text input fields in IE at 100% would exceed a <td> or inline
- // container's width, so need to wrap it inside a <div>.
- var html = [ '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' ];
-
- if ( elementDefinition.width )
- html.push( 'style="width:'+ elementDefinition.width +'" ' );
-
- html.push( '><input ' );
-
- attributes[ 'aria-labelledby' ] = this._.labelId;
- this._.required && ( attributes[ 'aria-required' ] = this._.required );
- for ( var i in attributes )
- html.push( i + '="' + attributes[i] + '" ' );
- html.push( ' /></div>' );
- return html.join( '' );
- };
+ var innerHTML = function() {
+ // IE BUG: Text input fields in IE at 100% would exceed a <td> or inline
+ // container's width, so need to wrap it inside a <div>.
+ var html = [ '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' ];
+
+ if ( elementDefinition.width )
+ html.push( 'style="width:' + elementDefinition.width + '" ' );
+
+ html.push( '><input ' );
+
+ attributes[ 'aria-labelledby' ] = this._.labelId;
+ this._.required && ( attributes[ 'aria-required' ] = this._.required );
+ for ( var i in attributes )
+ html.push( i + '="' + attributes[ i ] + '" ' );
+ html.push( ' /></div>' );
+ return html.join( '' );
+ };
CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
},
/**
* A text area with a label on the top or left.
- * @constructor
+ *
+ * @class CKEDITOR.ui.dialog.textarea
* @extends CKEDITOR.ui.dialog.labeledElement
- * @example
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a textarea class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
+ *
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>rows</strong> (Optional) The number of rows displayed.
- * Defaults to 5 if not defined.</li>
- * <li><strong>cols</strong> (Optional) The number of cols displayed.
- * Defaults to 20 if not defined. Usually overridden by skins.</li>
- * <li><strong>default</strong> (Optional) The default value.</li>
- * <li><strong>validate</strong> (Optional) The validation function. </li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `rows` (Optional) The number of rows displayed.
+ * Defaults to 5 if not defined.
+ * * `cols` (Optional) The number of cols displayed.
+ * Defaults to 20 if not defined. Usually overridden by skins.
+ * * `default` (Optional) The default value.
+ * * `validate` (Optional) The validation function.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- textarea : function( dialog, elementDefinition, htmlList )
- {
+ textarea: function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
@@ -323,157 +279,143 @@ CKEDITOR.plugins.add( 'dialogui' );
attributes.rows = elementDefinition.rows || 5;
attributes.cols = elementDefinition.cols || 20;
- /** @ignore */
- var innerHTML = function()
- {
- attributes[ 'aria-labelledby' ] = this._.labelId;
- this._.required && ( attributes[ 'aria-required' ] = this._.required );
- var html = [ '<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="', domId, '" ' ];
- for ( var i in attributes )
- html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[i] ) + '" ' );
- html.push( '>', CKEDITOR.tools.htmlEncode( me._['default'] ), '</textarea></div>' );
- return html.join( '' );
- };
+ if ( typeof elementDefinition.inputStyle != 'undefined' )
+ attributes.style = elementDefinition.inputStyle;
+
+ var innerHTML = function() {
+ attributes[ 'aria-labelledby' ] = this._.labelId;
+ this._.required && ( attributes[ 'aria-required' ] = this._.required );
+ var html = [ '<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="', domId, '" ' ];
+ for ( var i in attributes )
+ html.push( i + '="' + CKEDITOR.tools.htmlEncode( attributes[ i ] ) + '" ' );
+ html.push( '>', CKEDITOR.tools.htmlEncode( me._[ 'default' ] ), '</textarea></div>' );
+ return html.join( '' );
+ };
CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
},
/**
* A single checkbox with a label on the right.
- * @constructor
+ *
+ * @class CKEDITOR.ui.dialog.checkbox
* @extends CKEDITOR.ui.dialog.uiElement
- * @example
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a checkbox class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>checked</strong> (Optional) Whether the checkbox is checked
- * on instantiation. Defaults to false.</li>
- * <li><strong>validate</strong> (Optional) The validation function.</li>
- * <li><strong>label</strong> (Optional) The checkbox label.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `checked` (Optional) Whether the checkbox is checked
+ * on instantiation. Defaults to false.
+ * * `validate` (Optional) The validation function.
+ * * `label` (Optional) The checkbox label.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- checkbox : function( dialog, elementDefinition, htmlList )
- {
+ checkbox: function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
- var _ = initPrivateObject.call( this, elementDefinition, { 'default' : !!elementDefinition[ 'default' ] } );
+ var _ = initPrivateObject.call( this, elementDefinition, { 'default': !!elementDefinition[ 'default' ] } );
if ( elementDefinition.validate )
this.validate = elementDefinition.validate;
- /** @ignore */
- var innerHTML = function()
- {
- var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
- {
- id : elementDefinition.id ? elementDefinition.id + '_checkbox' : CKEDITOR.tools.getNextId() + '_checkbox'
- }, true ),
- html = [];
-
- var labelId = CKEDITOR.tools.getNextId() + '_label';
- var attributes = { 'class' : 'cke_dialog_ui_checkbox_input', type : 'checkbox', 'aria-labelledby' : labelId };
- cleanInnerDefinition( myDefinition );
- if ( elementDefinition[ 'default' ] )
- attributes.checked = 'checked';
-
- if (typeof myDefinition.controlStyle != 'undefined')
- myDefinition.style = myDefinition.controlStyle;
-
- _.checkbox = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'input', null, attributes );
- html.push( ' <label id="', labelId, '" for="', attributes.id, '">',
- CKEDITOR.tools.htmlEncode( elementDefinition.label ),
- '</label>' );
- return html.join( '' );
- };
+ var innerHTML = function() {
+ var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, {
+ id: elementDefinition.id ? elementDefinition.id + '_checkbox' : CKEDITOR.tools.getNextId() + '_checkbox'
+ }, true ),
+ html = [];
+
+ var labelId = CKEDITOR.tools.getNextId() + '_label';
+ var attributes = { 'class': 'cke_dialog_ui_checkbox_input', type: 'checkbox', 'aria-labelledby': labelId };
+ cleanInnerDefinition( myDefinition );
+ if ( elementDefinition[ 'default' ] )
+ attributes.checked = 'checked';
+
+ if ( typeof myDefinition.inputStyle != 'undefined' )
+ myDefinition.style = myDefinition.inputStyle;
+
+ _.checkbox = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'input', null, attributes );
+ html.push( ' <label id="', labelId, '" for="', attributes.id, '"' + ( elementDefinition.labelStyle ? ' style="' + elementDefinition.labelStyle + '"' : '' ) + '>', CKEDITOR.tools.htmlEncode( elementDefinition.label ), '</label>' );
+ return html.join( '' );
+ };
CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'span', null, null, innerHTML );
},
/**
* A group of radio buttons.
- * @constructor
- * @example
+ *
+ * @class CKEDITOR.ui.dialog.radio
* @extends CKEDITOR.ui.dialog.labeledElement
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a radio class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>default</strong> (Required) The default value.</li>
- * <li><strong>validate</strong> (Optional) The validation function.</li>
- * <li><strong>items</strong> (Required) An array of options. Each option
- * is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value'
- * is missing, then the value would be assumed to be the same as the
- * description.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `default` (Required) The default value.
+ * * `validate` (Optional) The validation function.
+ * * `items` (Required) An array of options. Each option
+ * is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. If `'Value'`
+ * is missing, then the value would be assumed to be the same as the description.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- radio : function( dialog, elementDefinition, htmlList )
- {
- if ( arguments.length < 3)
+ radio: function( dialog, elementDefinition, htmlList ) {
+ if ( arguments.length < 3 )
return;
initPrivateObject.call( this, elementDefinition );
- if ( !this._['default'] )
- this._['default'] = this._.initValue = elementDefinition.items[0][1];
+ if ( !this._[ 'default' ] )
+ this._[ 'default' ] = this._.initValue = elementDefinition.items[ 0 ][ 1 ];
if ( elementDefinition.validate )
this.validate = elementDefinition.valdiate;
- var children = [], me = this;
+ var children = [],
+ me = this;
- /** @ignore */
- var innerHTML = function()
- {
- var inputHtmlList = [], html = [],
- commonAttributes = { 'class' : 'cke_dialog_ui_radio_item', 'aria-labelledby' : this._.labelId },
- commonName = elementDefinition.id ? elementDefinition.id + '_radio' : CKEDITOR.tools.getNextId() + '_radio';
- for ( var i = 0 ; i < elementDefinition.items.length ; i++ )
- {
- var item = elementDefinition.items[i],
- title = item[2] !== undefined ? item[2] : item[0],
- value = item[1] !== undefined ? item[1] : item[0],
- inputId = CKEDITOR.tools.getNextId() + '_radio_input',
- labelId = inputId + '_label',
- inputDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
- {
- id : inputId,
- title : null,
- type : null
- }, true ),
- labelDefinition = CKEDITOR.tools.extend( {}, inputDefinition,
- {
- title : title
- }, true ),
- inputAttributes =
- {
- type : 'radio',
- 'class' : 'cke_dialog_ui_radio_input',
- name : commonName,
- value : value,
- 'aria-labelledby' : labelId
- },
- inputHtml = [];
- if ( me._['default'] == value )
- inputAttributes.checked = 'checked';
- cleanInnerDefinition( inputDefinition );
- cleanInnerDefinition( labelDefinition );
-
- if (typeof inputDefinition.controlStyle != 'undefined')
- inputDefinition.style = inputDefinition.controlStyle;
-
- children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) );
- inputHtml.push( ' ' );
- new CKEDITOR.ui.dialog.uiElement( dialog, labelDefinition, inputHtml, 'label', null, { id : labelId, 'for' : inputAttributes.id },
- item[0] );
- inputHtmlList.push( inputHtml.join( '' ) );
- }
- new CKEDITOR.ui.dialog.hbox( dialog, [], inputHtmlList, html );
- return html.join( '' );
- };
+ var innerHTML = function() {
+ var inputHtmlList = [],
+ html = [],
+ commonAttributes = { 'class': 'cke_dialog_ui_radio_item', 'aria-labelledby': this._.labelId },
+ commonName = elementDefinition.id ? elementDefinition.id + '_radio' : CKEDITOR.tools.getNextId() + '_radio';
+ for ( var i = 0; i < elementDefinition.items.length; i++ ) {
+ var item = elementDefinition.items[ i ],
+ title = item[ 2 ] !== undefined ? item[ 2 ] : item[ 0 ],
+ value = item[ 1 ] !== undefined ? item[ 1 ] : item[ 0 ],
+ inputId = CKEDITOR.tools.getNextId() + '_radio_input',
+ labelId = inputId + '_label',
+ inputDefinition = CKEDITOR.tools.extend( {}, elementDefinition, {
+ id: inputId,
+ title: null,
+ type: null
+ }, true ),
+ labelDefinition = CKEDITOR.tools.extend( {}, inputDefinition, {
+ title: title
+ }, true ),
+ inputAttributes = {
+ type: 'radio',
+ 'class': 'cke_dialog_ui_radio_input',
+ name: commonName,
+ value: value,
+ 'aria-labelledby': labelId
+ },
+ inputHtml = [];
+ if ( me._[ 'default' ] == value )
+ inputAttributes.checked = 'checked';
+ cleanInnerDefinition( inputDefinition );
+ cleanInnerDefinition( labelDefinition );
+
+ if ( typeof inputDefinition.inputStyle != 'undefined' )
+ inputDefinition.style = inputDefinition.inputStyle;
+
+ children.push( new CKEDITOR.ui.dialog.uiElement( dialog, inputDefinition, inputHtml, 'input', null, inputAttributes ) );
+ inputHtml.push( ' ' );
+ new CKEDITOR.ui.dialog.uiElement( dialog, labelDefinition, inputHtml, 'label', null, { id: labelId, 'for': inputAttributes.id }, item[ 0 ] );
+ inputHtmlList.push( inputHtml.join( '' ) );
+ }
+ new CKEDITOR.ui.dialog.hbox( dialog, children, inputHtmlList, html );
+ return html.join( '' );
+ };
CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
this._.children = children;
@@ -481,30 +423,28 @@ CKEDITOR.plugins.add( 'dialogui' );
/**
* A button with a label inside.
- * @constructor
- * @example
+ *
+ * @class CKEDITOR.ui.dialog.button
* @extends CKEDITOR.ui.dialog.uiElement
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a button class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>label</strong> (Required) The button label.</li>
- * <li><strong>disabled</strong> (Optional) Set to true if you want the
- * button to appear in disabled state.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `label` (Required) The button label.
+ * * `disabled` (Optional) Set to true if you want the
+ * button to appear in disabled state.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- button : function( dialog, elementDefinition, htmlList )
- {
+ button: function( dialog, elementDefinition, htmlList ) {
if ( !arguments.length )
return;
if ( typeof elementDefinition == 'function' )
elementDefinition = elementDefinition( dialog.getParentEditor() );
- initPrivateObject.call( this, elementDefinition, { disabled : elementDefinition.disabled || false } );
+ initPrivateObject.call( this, elementDefinition, { disabled: elementDefinition.disabled || false } );
// Add OnClick event to this input.
CKEDITOR.event.implementOn( this );
@@ -512,82 +452,64 @@ CKEDITOR.plugins.add( 'dialogui' );
var me = this;
// Register an event handler for processing button clicks.
- dialog.on( 'load', function( eventInfo )
- {
- var element = this.getElement();
-
- (function()
- {
- element.on( 'click', function( evt )
- {
- me.fire( 'click', { dialog : me.getDialog() } );
- evt.data.preventDefault();
- } );
-
- element.on( 'keydown', function( evt )
- {
- if ( evt.data.getKeystroke() in { 32:1 } )
- {
- me.click();
- evt.data.preventDefault();
- }
- } );
- })();
+ dialog.on( 'load', function( eventInfo ) {
+ var element = this.getElement();
- element.unselectable();
- }, this );
+ (function() {
+ element.on( 'click', me.click, me );
+
+ element.on( 'keydown', function( evt ) {
+ if ( evt.data.getKeystroke() in { 32:1 } ) {
+ me.click();
+ evt.data.preventDefault();
+ }
+ });
+ })();
+
+ element.unselectable();
+ }, this );
var outerDefinition = CKEDITOR.tools.extend( {}, elementDefinition );
delete outerDefinition.style;
var labelId = CKEDITOR.tools.getNextId() + '_label';
- CKEDITOR.ui.dialog.uiElement.call(
- this,
- dialog,
- outerDefinition,
- htmlList,
- 'a',
- null,
- {
- style : elementDefinition.style,
- href : 'javascript:void(0)',
- title : elementDefinition.label,
- hidefocus : 'true',
- 'class' : elementDefinition['class'],
- role : 'button',
- 'aria-labelledby' : labelId
- },
- '<span id="' + labelId + '" class="cke_dialog_ui_button">' +
- CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
- '</span>' );
+ CKEDITOR.ui.dialog.uiElement.call( this, dialog, outerDefinition, htmlList, 'a', null, {
+ style: elementDefinition.style,
+ href: 'javascript:void(0)',
+ title: elementDefinition.label,
+ hidefocus: 'true',
+ 'class': elementDefinition[ 'class' ],
+ role: 'button',
+ 'aria-labelledby': labelId
+ }, '<span id="' + labelId + '" class="cke_dialog_ui_button">' +
+ CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
+ '</span>' );
},
/**
* A select box.
+ *
+ * @class CKEDITOR.ui.dialog.select
* @extends CKEDITOR.ui.dialog.uiElement
- * @example
- * @constructor
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a button class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>default</strong> (Required) The default value.</li>
- * <li><strong>validate</strong> (Optional) The validation function.</li>
- * <li><strong>items</strong> (Required) An array of options. Each option
- * is a 1- or 2-item array of format [ 'Description', 'Value' ]. If 'Value'
- * is missing, then the value would be assumed to be the same as the
- * description.</li>
- * <li><strong>multiple</strong> (Optional) Set this to true if you'd like
- * to have a multiple-choice select box.</li>
- * <li><strong>size</strong> (Optional) The number of items to display in
- * the select box.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `default` (Required) The default value.
+ * * `validate` (Optional) The validation function.
+ * * `items` (Required) An array of options. Each option
+ * is a 1- or 2-item array of format `[ 'Description', 'Value' ]`. If `'Value'`
+ * is missing, then the value would be assumed to be the same as the
+ * description.
+ * * `multiple` (Optional) Set this to true if you'd like
+ * to have a multiple-choice select box.
+ * * `size` (Optional) The number of items to display in
+ * the select box.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- select : function( dialog, elementDefinition, htmlList )
- {
+ select: function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
@@ -597,134 +519,128 @@ CKEDITOR.plugins.add( 'dialogui' );
this.validate = elementDefinition.validate;
_.inputId = CKEDITOR.tools.getNextId() + '_select';
- /** @ignore */
- var innerHTML = function()
- {
- var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
- {
- id : elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select'
- }, true ),
- html = [],
- innerHTML = [],
- attributes = { 'id' : _.inputId, 'class' : 'cke_dialog_ui_input_select', 'aria-labelledby' : this._.labelId };
-
- // Add multiple and size attributes from element definition.
- if ( elementDefinition.size != undefined )
- attributes.size = elementDefinition.size;
- if ( elementDefinition.multiple != undefined )
- attributes.multiple = elementDefinition.multiple;
-
- cleanInnerDefinition( myDefinition );
- for ( var i = 0, item ; i < elementDefinition.items.length && ( item = elementDefinition.items[i] ) ; i++ )
- {
- innerHTML.push( '<option value="',
- CKEDITOR.tools.htmlEncode( item[1] !== undefined ? item[1] : item[0] ), '" /> ',
- CKEDITOR.tools.htmlEncode( item[0] ) );
- }
- if (typeof myDefinition.controlStyle != 'undefined')
- myDefinition.style = myDefinition.controlStyle;
+ var innerHTML = function() {
+ var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, {
+ id: elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select'
+ }, true ),
+ html = [],
+ innerHTML = [],
+ attributes = { 'id': _.inputId, 'class': 'cke_dialog_ui_input_select', 'aria-labelledby': this._.labelId };
+
+ html.push( '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' );
+ if ( elementDefinition.width )
+ html.push( 'style="width:' + elementDefinition.width + '" ' );
+ html.push( '>' );
+
+ // Add multiple and size attributes from element definition.
+ if ( elementDefinition.size != undefined )
+ attributes.size = elementDefinition.size;
+ if ( elementDefinition.multiple != undefined )
+ attributes.multiple = elementDefinition.multiple;
+
+ cleanInnerDefinition( myDefinition );
+ for ( var i = 0, item; i < elementDefinition.items.length && ( item = elementDefinition.items[ i ] ); i++ ) {
+ innerHTML.push( '<option value="', CKEDITOR.tools.htmlEncode( item[ 1 ] !== undefined ? item[ 1 ] : item[ 0 ] ).replace( /"/g, '"' ), '" /> ', CKEDITOR.tools.htmlEncode( item[ 0 ] ) );
+ }
- _.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );
- return html.join( '' );
- };
+ if ( typeof myDefinition.inputStyle != 'undefined' )
+ myDefinition.style = myDefinition.inputStyle;
+
+ _.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );
+
+ html.push( '</div>' );
+
+ return html.join( '' );
+ };
CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
},
/**
* A file upload input.
+ *
+ * @class CKEDITOR.ui.dialog.file
* @extends CKEDITOR.ui.dialog.labeledElement
- * @example
- * @constructor
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a file class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>validate</strong> (Optional) The validation function.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `validate` (Optional) The validation function.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- file : function( dialog, elementDefinition, htmlList )
- {
+ file: function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
- if ( elementDefinition['default'] === undefined )
- elementDefinition['default'] = '';
+ if ( elementDefinition[ 'default' ] === undefined )
+ elementDefinition[ 'default' ] = '';
- var _ = CKEDITOR.tools.extend( initPrivateObject.call( this, elementDefinition ), { definition : elementDefinition, buttons : [] } );
+ var _ = CKEDITOR.tools.extend( initPrivateObject.call( this, elementDefinition ), { definition: elementDefinition, buttons: [] } );
if ( elementDefinition.validate )
this.validate = elementDefinition.validate;
/** @ignore */
- var innerHTML = function()
- {
- _.frameId = CKEDITOR.tools.getNextId() + '_fileInput';
+ var innerHTML = function() {
+ _.frameId = CKEDITOR.tools.getNextId() + '_fileInput';
- // Support for custom document.domain in IE.
- var isCustomDomain = CKEDITOR.env.isCustomDomain();
-
- var html = [
- '<iframe' +
- ' frameborder="0"' +
- ' allowtransparency="0"' +
- ' class="cke_dialog_ui_input_file"' +
- ' id="', _.frameId, '"' +
- ' title="', elementDefinition.label, '"' +
- ' src="javascript:void(' ];
-
- html.push(
- isCustomDomain ?
- '(function(){' +
- 'document.open();' +
- 'document.domain=\'' + document.domain + '\';' +
- 'document.close();' +
- '})()'
+ // Support for custom document.domain in IE.
+ var isCustomDomain = CKEDITOR.env.isCustomDomain();
+
+ var html = [
+ '<iframe' +
+ ' frameborder="0"' +
+ ' allowtransparency="0"' +
+ ' class="cke_dialog_ui_input_file"' +
+ ' role="presentation"' +
+ ' id="', _.frameId, '"' +
+ ' title="', elementDefinition.label, '"' +
+ ' src="javascript:void(' ];
+
+ html.push( isCustomDomain ? '(function(){' +
+ 'document.open();' +
+ 'document.domain=\'' + document.domain + '\';' +
+ 'document.close();' +
+ '})()'
:
- '0' );
+ '0' );
- html.push(
- ')">' +
- '</iframe>' );
+ html.push( ')">' +
+ '</iframe>' );
- return html.join( '' );
- };
+ return html.join( '' );
+ };
// IE BUG: Parent container does not resize to contain the iframe automatically.
- dialog.on( 'load', function()
- {
- var iframe = CKEDITOR.document.getById( _.frameId ),
- contentDiv = iframe.getParent();
- contentDiv.addClass( 'cke_dialog_ui_input_file' );
- } );
+ dialog.on( 'load', function() {
+ var iframe = CKEDITOR.document.getById( _.frameId ),
+ contentDiv = iframe.getParent();
+ contentDiv.addClass( 'cke_dialog_ui_input_file' );
+ });
CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
},
/**
* A button for submitting the file in a file upload input.
+ *
+ * @class CKEDITOR.ui.dialog.fileButton
* @extends CKEDITOR.ui.dialog.button
- * @example
- * @constructor
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @constructor Creates a fileButton class instance.
+ * @param {CKEDITOR.dialog} dialog Parent dialog object.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>for</strong> (Required) The file input's page and element Id
- * to associate to, in a 2-item array format: [ 'page_id', 'element_id' ].
- * </li>
- * <li><strong>validate</strong> (Optional) The validation function.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
+ *
+ * * `for` (Required) The file input's page and element Id
+ * to associate to, in a 2-item array format: `[ 'page_id', 'element_id' ]`.
+ * * `validate` (Optional) The validation function.
+ *
+ * @param {Array} htmlList List of HTML code to output to.
*/
- fileButton : function( dialog, elementDefinition, htmlList )
- {
+ fileButton: function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
@@ -737,45 +653,40 @@ CKEDITOR.plugins.add( 'dialogui' );
var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition );
var onClick = myDefinition.onClick;
myDefinition.className = ( myDefinition.className ? myDefinition.className + ' ' : '' ) + 'cke_dialog_ui_button';
- myDefinition.onClick = function( evt )
- {
- var target = elementDefinition[ 'for' ]; // [ pageId, elementId ]
- if ( !onClick || onClick.call( this, evt ) !== false )
- {
- dialog.getContentElement( target[0], target[1] ).submit();
+ myDefinition.onClick = function( evt ) {
+ var target = elementDefinition[ 'for' ]; // [ pageId, elementId ]
+ if ( !onClick || onClick.call( this, evt ) !== false ) {
+ dialog.getContentElement( target[ 0 ], target[ 1 ] ).submit();
this.disable();
}
};
- dialog.on( 'load', function()
- {
- dialog.getContentElement( elementDefinition[ 'for' ][0], elementDefinition[ 'for' ][1] )._.buttons.push( me );
- } );
+ dialog.on( 'load', function() {
+ dialog.getContentElement( elementDefinition[ 'for' ][ 0 ], elementDefinition[ 'for' ][ 1 ] )._.buttons.push( me );
+ });
CKEDITOR.ui.dialog.button.call( this, dialog, myDefinition, htmlList );
},
- html : (function()
- {
+ html: (function() {
var myHtmlRe = /^\s*<[\w:]+\s+([^>]*)?>/,
theirHtmlRe = /^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,
emptyTagRe = /\/$/;
/**
* A dialog element made from raw HTML code.
+ *
+ * @class CKEDITOR.ui.dialog.html
* @extends CKEDITOR.ui.dialog.uiElement
- * @name CKEDITOR.ui.dialog.html
+ * @constructor Creates a html class instance.
* @param {CKEDITOR.dialog} dialog Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition Element definition.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition Element definition.
* Accepted fields:
- * <ul>
- * <li><strong>html</strong> (Required) HTML code of this element.</li>
- * </ul>
+ *
+ * * `html` (Required) HTML code of this element.
+ *
* @param {Array} htmlList List of HTML code to be added to the dialog's content area.
- * @example
- * @constructor
*/
- return function( dialog, elementDefinition, htmlList )
- {
+ return function( dialog, elementDefinition, htmlList ) {
if ( arguments.length < 3 )
return;
@@ -790,17 +701,13 @@ CKEDITOR.plugins.add( 'dialogui' );
// Look for focus function in definition.
var focus = elementDefinition.focus;
- if ( focus )
- {
- var oldFocus = this.focus;
- this.focus = function()
- {
- oldFocus.call( this );
+ if ( focus ) {
+ this.focus = function() {
+ this.selectParentTab();
typeof focus == 'function' && focus.call( this );
this.fire( 'focus' );
};
- if ( elementDefinition.isFocusable )
- {
+ if ( elementDefinition.isFocusable ) {
var oldIsFocusable = this.isFocusable;
this.isFocusable = oldIsFocusable;
}
@@ -814,709 +721,649 @@ CKEDITOR.plugins.add( 'dialogui' );
myMatch = myHtml.match( myHtmlRe );
theirMatch = theirHtml.match( theirHtmlRe ) || [ '', '', '' ];
- if ( emptyTagRe.test( theirMatch[1] ) )
- {
- theirMatch[1] = theirMatch[1].slice( 0, -1 );
- theirMatch[2] = '/' + theirMatch[2];
+ if ( emptyTagRe.test( theirMatch[ 1 ] ) ) {
+ theirMatch[ 1 ] = theirMatch[ 1 ].slice( 0, -1 );
+ theirMatch[ 2 ] = '/' + theirMatch[ 2 ];
}
- htmlList.push( [ theirMatch[1], ' ', myMatch[1] || '', theirMatch[2] ].join( '' ) );
+ htmlList.push( [ theirMatch[ 1 ], ' ', myMatch[ 1 ] || '', theirMatch[ 2 ] ].join( '' ) );
};
})(),
/**
* Form fieldset for grouping dialog UI elements.
- * @constructor
+ *
+ * @class CKEDITOR.ui.dialog.fieldset
* @extends CKEDITOR.ui.dialog.uiElement
+ * @constructor Creates a fieldset class instance.
* @param {CKEDITOR.dialog} dialog Parent dialog object.
* @param {Array} childObjList
- * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this
- * container.
- * @param {Array} childHtmlList
- * Array of HTML code that correspond to the HTML output of all the
+ * Array of {@link CKEDITOR.ui.dialog.uiElement} objects inside this container.
+ * @param {Array} childHtmlList Array of HTML code that correspond to the HTML output of all the
* objects in childObjList.
- * @param {Array} htmlList
- * Array of HTML code that this element will output to.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
+ * @param {Array} htmlList Array of HTML code that this element will output to.
+ * @param {CKEDITOR.dialog.definition.uiElement} elementDefinition
* The element definition. Accepted fields:
- * <ul>
- * <li><strong>label</strong> (Optional) The legend of the this fieldset.</li>
- * <li><strong>children</strong> (Required) An array of dialog field definitions which will be grouped inside this fieldset. </li>
- * </ul>
+ *
+ * * `label` (Optional) The legend of the this fieldset.
+ * * `children` (Required) An array of dialog field definitions which will be grouped inside this fieldset.
+ *
*/
- fieldset : function( dialog, childObjList, childHtmlList, htmlList, elementDefinition )
- {
+ fieldset: function( dialog, childObjList, childHtmlList, htmlList, elementDefinition ) {
var legendLabel = elementDefinition.label;
/** @ignore */
- var innerHTML = function()
- {
- var html = [];
- legendLabel && html.push( '<legend>' + legendLabel + '</legend>' );
- for ( var i = 0; i < childHtmlList.length; i++ )
- html.push( childHtmlList[ i ] );
- return html.join( '' );
- };
+ var innerHTML = function() {
+ var html = [];
+ legendLabel && html.push( '<legend' +
+ ( elementDefinition.labelStyle ? ' style="' + elementDefinition.labelStyle + '"' : '' ) +
+ '>' + legendLabel + '</legend>' );
+ for ( var i = 0; i < childHtmlList.length; i++ )
+ html.push( childHtmlList[ i ] );
+ return html.join( '' );
+ };
- this._ = { children : childObjList };
+ this._ = { children: childObjList };
CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, htmlList, 'fieldset', null, null, innerHTML );
}
}, true );
- CKEDITOR.ui.dialog.html.prototype = new CKEDITOR.ui.dialog.uiElement;
+ CKEDITOR.ui.dialog.html.prototype = new CKEDITOR.ui.dialog.uiElement;
- CKEDITOR.ui.dialog.labeledElement.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
- /** @lends CKEDITOR.ui.dialog.labeledElement.prototype */
- {
- /**
- * Sets the label text of the element.
- * @param {String} label The new label text.
- * @returns {CKEDITOR.ui.dialog.labeledElement} The current labeled element.
- * @example
- */
- setLabel : function( label )
- {
- var node = CKEDITOR.document.getById( this._.labelId );
- if ( node.getChildCount() < 1 )
- ( new CKEDITOR.dom.text( label, CKEDITOR.document ) ).appendTo( node );
- else
- node.getChild( 0 ).$.nodeValue = label;
- return this;
- },
+ /** @class CKEDITOR.ui.dialog.labeledElement */
+ CKEDITOR.ui.dialog.labeledElement.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, {
+ /**
+ * Sets the label text of the element.
+ *
+ * @param {String} label The new label text.
+ * @returns {CKEDITOR.ui.dialog.labeledElement} The current labeled element.
+ */
+ setLabel: function( label ) {
+ var node = CKEDITOR.document.getById( this._.labelId );
+ if ( node.getChildCount() < 1 )
+ ( new CKEDITOR.dom.text( label, CKEDITOR.document ) ).appendTo( node );
+ else
+ node.getChild( 0 ).$.nodeValue = label;
+ return this;
+ },
- /**
- * Retrieves the current label text of the elment.
- * @returns {String} The current label text.
- * @example
- */
- getLabel : function()
- {
- var node = CKEDITOR.document.getById( this._.labelId );
- if ( !node || node.getChildCount() < 1 )
- return '';
- else
- return node.getChild( 0 ).getText();
- },
+ /**
+ * Retrieves the current label text of the elment.
+ *
+ * @returns {String} The current label text.
+ */
+ getLabel: function() {
+ var node = CKEDITOR.document.getById( this._.labelId );
+ if ( !node || node.getChildCount() < 1 )
+ return '';
+ else
+ return node.getChild( 0 ).getText();
+ },
- /**
- * Defines the onChange event for UI element definitions.
- * @field
- * @type Object
- * @example
- */
- eventProcessors : commonEventProcessors
- }, true );
+ /**
+ * Defines the onChange event for UI element definitions.
+ * @property {Object}
+ */
+ eventProcessors: commonEventProcessors
+ }, true );
- CKEDITOR.ui.dialog.button.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
- /** @lends CKEDITOR.ui.dialog.button.prototype */
- {
- /**
- * Simulates a click to the button.
- * @example
- * @returns {Object} Return value of the 'click' event.
- */
- click : function()
- {
- if ( !this._.disabled )
- return this.fire( 'click', { dialog : this._.dialog } );
- this.getElement().$.blur();
- return false;
- },
+ /** @class CKEDITOR.ui.dialog.button */
+ CKEDITOR.ui.dialog.button.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, {
+ /**
+ * Simulates a click to the button.
+ *
+ * @returns {Object} Return value of the `click` event.
+ */
+ click: function() {
+ if ( !this._.disabled )
+ return this.fire( 'click', { dialog: this._.dialog } );
+ return false;
+ },
- /**
- * Enables the button.
- * @example
- */
- enable : function()
- {
- this._.disabled = false;
- var element = this.getElement();
- element && element.removeClass( 'disabled' );
- },
+ /**
+ * Enables the button.
+ */
+ enable: function() {
+ this._.disabled = false;
+ var element = this.getElement();
+ element && element.removeClass( 'cke_disabled' );
+ },
- /**
- * Disables the button.
- * @example
- */
- disable : function()
- {
- this._.disabled = true;
- this.getElement().addClass( 'disabled' );
- },
+ /**
+ * Disables the button.
+ */
+ disable: function() {
+ this._.disabled = true;
+ this.getElement().addClass( 'cke_disabled' );
+ },
- isVisible : function()
- {
- return this.getElement().getFirst().isVisible();
- },
+ /**
+ * @todo
+ */
+ isVisible: function() {
+ return this.getElement().getFirst().isVisible();
+ },
- isEnabled : function()
- {
- return !this._.disabled;
- },
+ /**
+ * @todo
+ */
+ isEnabled: function() {
+ return !this._.disabled;
+ },
- /**
- * Defines the onChange event and onClick for button element definitions.
- * @field
- * @type Object
- * @example
- */
- eventProcessors : CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
- {
- /** @ignore */
- onClick : function( dialog, func )
- {
- this.on( 'click', func );
- }
- }, true ),
+ /**
+ * Defines the onChange event and onClick for button element definitions.
+ *
+ * @property {Object}
+ */
+ eventProcessors: CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors, {
+ onClick: function( dialog, func ) {
+ this.on( 'click', function() {
+ func.apply( this, arguments );
+ });
+ }
+ }, true ),
- /**
- * Handler for the element's access key up event. Simulates a click to
- * the button.
- * @example
- */
- accessKeyUp : function()
- {
- this.click();
- },
+ /**
+ * Handler for the element's access key up event. Simulates a click to
+ * the button.
+ */
+ accessKeyUp: function() {
+ this.click();
+ },
- /**
- * Handler for the element's access key down event. Simulates a mouse
- * down to the button.
- * @example
- */
- accessKeyDown : function()
- {
- this.focus();
- },
+ /**
+ * Handler for the element's access key down event. Simulates a mouse
+ * down to the button.
+ */
+ accessKeyDown: function() {
+ this.focus();
+ },
- keyboardFocusable : true
- }, true );
+ keyboardFocusable: true
+ }, true );
- CKEDITOR.ui.dialog.textInput.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
- /** @lends CKEDITOR.ui.dialog.textInput.prototype */
- {
- /**
- * Gets the text input DOM element under this UI object.
- * @example
- * @returns {CKEDITOR.dom.element} The DOM element of the text input.
- */
- getInputElement : function()
- {
- return CKEDITOR.document.getById( this._.inputId );
- },
+ /** @class CKEDITOR.ui.dialog.textInput */
+ CKEDITOR.ui.dialog.textInput.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement, {
+ /**
+ * Gets the text input DOM element under this UI object.
+ *
+ * @returns {CKEDITOR.dom.element} The DOM element of the text input.
+ */
+ getInputElement: function() {
+ return CKEDITOR.document.getById( this._.inputId );
+ },
- /**
- * Puts focus into the text input.
- * @example
- */
- focus : function()
- {
- var me = this.selectParentTab();
-
- // GECKO BUG: setTimeout() is needed to workaround invisible selections.
- setTimeout( function()
- {
- var element = me.getInputElement();
- element && element.$.focus();
- }, 0 );
- },
+ /**
+ * Puts focus into the text input.
+ */
+ focus: function() {
+ var me = this.selectParentTab();
+
+ // GECKO BUG: setTimeout() is needed to workaround invisible selections.
+ setTimeout( function() {
+ var element = me.getInputElement();
+ element && element.$.focus();
+ }, 0 );
+ },
- /**
- * Selects all the text in the text input.
- * @example
- */
- select : function()
- {
- var me = this.selectParentTab();
-
- // GECKO BUG: setTimeout() is needed to workaround invisible selections.
- setTimeout( function()
- {
- var e = me.getInputElement();
- if ( e )
- {
- e.$.focus();
- e.$.select();
- }
- }, 0 );
- },
+ /**
+ * Selects all the text in the text input.
+ */
+ select: function() {
+ var me = this.selectParentTab();
+
+ // GECKO BUG: setTimeout() is needed to workaround invisible selections.
+ setTimeout( function() {
+ var e = me.getInputElement();
+ if ( e ) {
+ e.$.focus();
+ e.$.select();
+ }
+ }, 0 );
+ },
- /**
- * Handler for the text input's access key up event. Makes a select()
- * call to the text input.
- * @example
- */
- accessKeyUp : function()
- {
- this.select();
- },
+ /**
+ * Handler for the text input's access key up event. Makes a `select()`
+ * call to the text input.
+ */
+ accessKeyUp: function() {
+ this.select();
+ },
- /**
- * Sets the value of this text input object.
- * @param {Object} value The new value.
- * @returns {CKEDITOR.ui.dialog.textInput} The current UI element.
- * @example
- * uiElement.setValue( 'Blamo' );
- */
- setValue : function( value )
- {
- !value && ( value = '' );
- return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply( this, arguments );
- },
+ /**
+ * Sets the value of this text input object.
+ *
+ * uiElement.setValue( 'Blamo' );
+ *
+ * @param {Object} value The new value.
+ * @returns {CKEDITOR.ui.dialog.textInput} The current UI element.
+ */
+ setValue: function( value ) {
+ !value && ( value = '' );
+ return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply( this, arguments );
+ },
- keyboardFocusable : true
- }, commonPrototype, true );
+ keyboardFocusable: true
+ }, commonPrototype, true );
- CKEDITOR.ui.dialog.textarea.prototype = new CKEDITOR.ui.dialog.textInput();
+ CKEDITOR.ui.dialog.textarea.prototype = new CKEDITOR.ui.dialog.textInput();
- CKEDITOR.ui.dialog.select.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
- /** @lends CKEDITOR.ui.dialog.select.prototype */
- {
- /**
- * Gets the DOM element of the select box.
- * @returns {CKEDITOR.dom.element} The <select> element of this UI
- * element.
- * @example
- */
- getInputElement : function()
- {
- return this._.select.getElement();
- },
+ /** @class CKEDITOR.ui.dialog.select */
+ CKEDITOR.ui.dialog.select.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement, {
+ /**
+ * Gets the DOM element of the select box.
+ *
+ * @returns {CKEDITOR.dom.element} The `<select>` element of this UI element.
+ */
+ getInputElement: function() {
+ return this._.select.getElement();
+ },
- /**
- * Adds an option to the select box.
- * @param {String} label Option label.
- * @param {String} value (Optional) Option value, if not defined it'll be
- * assumed to be the same as the label.
- * @param {Number} index (Optional) Position of the option to be inserted
- * to. If not defined the new option will be inserted to the end of list.
- * @example
- * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
- */
- add : function( label, value, index )
- {
- var option = new CKEDITOR.dom.element( 'option', this.getDialog().getParentEditor().document ),
- selectElement = this.getInputElement().$;
- option.$.text = label;
- option.$.value = ( value === undefined || value === null ) ? label : value;
- if ( index === undefined || index === null )
- {
- if ( CKEDITOR.env.ie )
- selectElement.add( option.$ );
- else
- selectElement.add( option.$, null );
- }
+ /**
+ * Adds an option to the select box.
+ *
+ * @param {String} label Option label.
+ * @param {String} value (Optional) Option value, if not defined it'll be
+ * assumed to be the same as the label.
+ * @param {Number} index (Optional) Position of the option to be inserted
+ * to. If not defined the new option will be inserted to the end of list.
+ * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
+ */
+ add: function( label, value, index ) {
+ var option = new CKEDITOR.dom.element( 'option', this.getDialog().getParentEditor().document ),
+ selectElement = this.getInputElement().$;
+ option.$.text = label;
+ option.$.value = ( value === undefined || value === null ) ? label : value;
+ if ( index === undefined || index === null ) {
+ if ( CKEDITOR.env.ie )
+ selectElement.add( option.$ );
else
- selectElement.add( option.$, index );
- return this;
- },
+ selectElement.add( option.$, null );
+ } else
+ selectElement.add( option.$, index );
+ return this;
+ },
- /**
- * Removes an option from the selection list.
- * @param {Number} index Index of the option to be removed.
- * @example
- * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
- */
- remove : function( index )
- {
- var selectElement = this.getInputElement().$;
- selectElement.remove( index );
- return this;
- },
+ /**
+ * Removes an option from the selection list.
+ *
+ * @param {Number} index Index of the option to be removed.
+ * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
+ */
+ remove: function( index ) {
+ var selectElement = this.getInputElement().$;
+ selectElement.remove( index );
+ return this;
+ },
- /**
- * Clears all options out of the selection list.
- * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
- */
- clear : function()
- {
- var selectElement = this.getInputElement().$;
- while ( selectElement.length > 0 )
- selectElement.remove( 0 );
- return this;
- },
+ /**
+ * Clears all options out of the selection list.
+ *
+ * @returns {CKEDITOR.ui.dialog.select} The current select UI element.
+ */
+ clear: function() {
+ var selectElement = this.getInputElement().$;
+ while ( selectElement.length > 0 )
+ selectElement.remove( 0 );
+ return this;
+ },
- keyboardFocusable : true
- }, commonPrototype, true );
+ keyboardFocusable: true
+ }, commonPrototype, true );
- CKEDITOR.ui.dialog.checkbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
- /** @lends CKEDITOR.ui.dialog.checkbox.prototype */
- {
- /**
- * Gets the checkbox DOM element.
- * @example
- * @returns {CKEDITOR.dom.element} The DOM element of the checkbox.
- */
- getInputElement : function()
- {
- return this._.checkbox.getElement();
- },
+ /** @class CKEDITOR.ui.dialog.checkbox */
+ CKEDITOR.ui.dialog.checkbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, {
+ /**
+ * Gets the checkbox DOM element.
+ *
+ * @returns {CKEDITOR.dom.element} The DOM element of the checkbox.
+ */
+ getInputElement: function() {
+ return this._.checkbox.getElement();
+ },
- /**
- * Sets the state of the checkbox.
- * @example
- * @param {Boolean} true to tick the checkbox, false to untick it.
- * @param {Boolean} noChangeEvent Internal commit, to supress 'change' event on this element.
- */
- setValue : function( checked, noChangeEvent )
- {
- this.getInputElement().$.checked = checked;
- !noChangeEvent && this.fire( 'change', { value : checked } );
- },
+ /**
+ * Sets the state of the checkbox.
+ *
+ * @param {Boolean} `true` to tick the checkbox, `false` to untick it.
+ * @param {Boolean} noChangeEvent Internal commit, to supress `change` event on this element.
+ */
+ setValue: function( checked, noChangeEvent ) {
+ this.getInputElement().$.checked = checked;
+ !noChangeEvent && this.fire( 'change', { value: checked } );
+ },
- /**
- * Gets the state of the checkbox.
- * @example
- * @returns {Boolean} true means the checkbox is ticked, false means it's not ticked.
- */
- getValue : function()
- {
- return this.getInputElement().$.checked;
- },
+ /**
+ * Gets the state of the checkbox.
+ *
+ * @returns {Boolean} true means the checkbox is ticked, false means it's not ticked.
+ */
+ getValue: function() {
+ return this.getInputElement().$.checked;
+ },
- /**
- * Handler for the access key up event. Toggles the checkbox.
- * @example
- */
- accessKeyUp : function()
- {
- this.setValue( !this.getValue() );
- },
+ /**
+ * Handler for the access key up event. Toggles the checkbox.
+ */
+ accessKeyUp: function() {
+ this.setValue( !this.getValue() );
+ },
- /**
- * Defines the onChange event for UI element definitions.
- * @field
- * @type Object
- * @example
- */
- eventProcessors :
- {
- onChange : function( dialog, func )
- {
- if ( !CKEDITOR.env.ie )
- return commonEventProcessors.onChange.apply( this, arguments );
- else
- {
- dialog.on( 'load', function()
- {
- var element = this._.checkbox.getElement();
- element.on( 'propertychange', function( evt )
- {
- evt = evt.data.$;
- if ( evt.propertyName == 'checked' )
- this.fire( 'change', { value : element.$.checked } );
- }, this );
- }, this );
- this.on( 'change', func );
- }
- return null;
+ /**
+ * Defines the onChange event for UI element definitions.
+ *
+ * @property {Object}
+ */
+ eventProcessors: {
+ onChange: function( dialog, func ) {
+ if ( !CKEDITOR.env.ie || ( CKEDITOR.env.version > 8 ) )
+ return commonEventProcessors.onChange.apply( this, arguments );
+ else {
+ dialog.on( 'load', function() {
+ var element = this._.checkbox.getElement();
+ element.on( 'propertychange', function( evt ) {
+ evt = evt.data.$;
+ if ( evt.propertyName == 'checked' )
+ this.fire( 'change', { value: element.$.checked } );
+ }, this );
+ }, this );
+ this.on( 'change', func );
}
- },
+ return null;
+ }
+ },
- keyboardFocusable : true
- }, commonPrototype, true );
+ keyboardFocusable: true
+ }, commonPrototype, true );
- CKEDITOR.ui.dialog.radio.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
- /** @lends CKEDITOR.ui.dialog.radio.prototype */
- {
- /**
- * Checks one of the radio buttons in this button group.
- * @example
- * @param {String} value The value of the button to be chcked.
- * @param {Boolean} noChangeEvent Internal commit, to supress 'change' event on this element.
- */
- setValue : function( value, noChangeEvent )
- {
- var children = this._.children,
- item;
- for ( var i = 0 ; ( i < children.length ) && ( item = children[i] ) ; i++ )
- item.getElement().$.checked = ( item.getValue() == value );
- !noChangeEvent && this.fire( 'change', { value : value } );
- },
+ /** @class CKEDITOR.ui.dialog.radio */
+ CKEDITOR.ui.dialog.radio.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement, {
+ /**
+ * Checks one of the radio buttons in this button group.
+ *
+ * @param {String} value The value of the button to be chcked.
+ * @param {Boolean} noChangeEvent Internal commit, to supress `change` event on this element.
+ */
+ setValue: function( value, noChangeEvent ) {
+ var children = this._.children,
+ item;
+ for ( var i = 0;
+ ( i < children.length ) && ( item = children[ i ] ); i++ )
+ item.getElement().$.checked = ( item.getValue() == value );
+ !noChangeEvent && this.fire( 'change', { value: value } );
+ },
- /**
- * Gets the value of the currently checked radio button.
- * @example
- * @returns {String} The currently checked button's value.
- */
- getValue : function()
- {
- var children = this._.children;
- for ( var i = 0 ; i < children.length ; i++ )
- {
- if ( children[i].getElement().$.checked )
- return children[i].getValue();
- }
- return null;
- },
+ /**
+ * Gets the value of the currently checked radio button.
+ *
+ * @returns {String} The currently checked button's value.
+ */
+ getValue: function() {
+ var children = this._.children;
+ for ( var i = 0; i < children.length; i++ ) {
+ if ( children[ i ].getElement().$.checked )
+ return children[ i ].getValue();
+ }
+ return null;
+ },
- /**
- * Handler for the access key up event. Focuses the currently
- * selected radio button, or the first radio button if none is
- * selected.
- * @example
- */
- accessKeyUp : function()
- {
- var children = this._.children, i;
- for ( i = 0 ; i < children.length ; i++ )
- {
- if ( children[i].getElement().$.checked )
- {
- children[i].getElement().focus();
- return;
- }
+ /**
+ * Handler for the access key up event. Focuses the currently
+ * selected radio button, or the first radio button if none is selected.
+ */
+ accessKeyUp: function() {
+ var children = this._.children,
+ i;
+ for ( i = 0; i < children.length; i++ ) {
+ if ( children[ i ].getElement().$.checked ) {
+ children[ i ].getElement().focus();
+ return;
}
- children[0].getElement().focus();
- },
+ }
+ children[ 0 ].getElement().focus();
+ },
- /**
- * Defines the onChange event for UI element definitions.
- * @field
- * @type Object
- * @example
- */
- eventProcessors :
- {
- onChange : function( dialog, func )
- {
- if ( !CKEDITOR.env.ie )
- return commonEventProcessors.onChange.apply( this, arguments );
- else
- {
- dialog.on( 'load', function()
- {
- var children = this._.children, me = this;
- for ( var i = 0 ; i < children.length ; i++ )
- {
- var element = children[i].getElement();
- element.on( 'propertychange', function( evt )
- {
- evt = evt.data.$;
- if ( evt.propertyName == 'checked' && this.$.checked )
- me.fire( 'change', { value : this.getAttribute( 'value' ) } );
- } );
- }
- }, this );
- this.on( 'change', func );
- }
- return null;
+ /**
+ * Defines the onChange event for UI element definitions.
+ *
+ * @property {Object}
+ */
+ eventProcessors: {
+ onChange: function( dialog, func ) {
+ if ( !CKEDITOR.env.ie )
+ return commonEventProcessors.onChange.apply( this, arguments );
+ else {
+ dialog.on( 'load', function() {
+ var children = this._.children,
+ me = this;
+ for ( var i = 0; i < children.length; i++ ) {
+ var element = children[ i ].getElement();
+ element.on( 'propertychange', function( evt ) {
+ evt = evt.data.$;
+ if ( evt.propertyName == 'checked' && this.$.checked )
+ me.fire( 'change', { value: this.getAttribute( 'value' ) } );
+ });
+ }
+ }, this );
+ this.on( 'change', func );
}
- },
+ return null;
+ }
+ },
- keyboardFocusable : true
- }, commonPrototype, true );
+ keyboardFocusable: true
+ }, commonPrototype, true );
- CKEDITOR.ui.dialog.file.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
- commonPrototype,
- /** @lends CKEDITOR.ui.dialog.file.prototype */
- {
- /**
- * Gets the <input> element of this file input.
- * @returns {CKEDITOR.dom.element} The file input element.
- * @example
- */
- getInputElement : function()
- {
- var frameDocument = CKEDITOR.document.getById( this._.frameId ).getFrameDocument();
- return frameDocument.$.forms.length > 0 ?
- new CKEDITOR.dom.element( frameDocument.$.forms[0].elements[0] ) :
- this.getElement();
- },
+ /** @class CKEDITOR.ui.dialog.file */
+ CKEDITOR.ui.dialog.file.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement, commonPrototype, {
+ /**
+ * Gets the `<input>` element of this file input.
+ *
+ * @returns {CKEDITOR.dom.element} The file input element.
+ */
+ getInputElement: function() {
+ var frameDocument = CKEDITOR.document.getById( this._.frameId ).getFrameDocument();
+ return frameDocument.$.forms.length > 0 ? new CKEDITOR.dom.element( frameDocument.$.forms[ 0 ].elements[ 0 ] ) : this.getElement();
+ },
- /**
- * Uploads the file in the file input.
- * @returns {CKEDITOR.ui.dialog.file} This object.
- * @example
- */
- submit : function()
- {
- this.getInputElement().getParent().$.submit();
- return this;
- },
+ /**
+ * Uploads the file in the file input.
+ *
+ * @returns {CKEDITOR.ui.dialog.file} This object.
+ */
+ submit: function() {
+ this.getInputElement().getParent().$.submit();
+ return this;
+ },
- /**
- * Get the action assigned to the form.
- * @returns {String} The value of the action.
- * @example
- */
- getAction : function()
- {
- return this.getInputElement().getParent().$.action;
- },
+ /**
+ * Get the action assigned to the form.
+ *
+ * @returns {String} The value of the action.
+ */
+ getAction: function() {
+ return this.getInputElement().getParent().$.action;
+ },
- /**
- * The events must be applied on the inner input element, and
- * that must be done when the iframe & form has been loaded
- */
- registerEvents : function( definition )
- {
- var regex = /^on([A-Z]\w+)/,
- match;
-
- var registerDomEvent = function( uiElement, dialog, eventName, func )
- {
- uiElement.on( 'formLoaded', function()
- {
+ /**
+ * The events must be applied on the inner input element, and
+ * that must be done when the iframe & form has been loaded.
+ */
+ registerEvents: function( definition ) {
+ var regex = /^on([A-Z]\w+)/,
+ match;
+
+ var registerDomEvent = function( uiElement, dialog, eventName, func ) {
+ uiElement.on( 'formLoaded', function() {
uiElement.getInputElement().on( eventName, func, uiElement );
});
};
- for ( var i in definition )
- {
- if ( !( match = i.match( regex ) ) )
- continue;
+ for ( var i in definition ) {
+ if ( !( match = i.match( regex ) ) )
+ continue;
- if ( this.eventProcessors[i] )
- this.eventProcessors[i].call( this, this._.dialog, definition[i] );
- else
- registerDomEvent( this, this._.dialog, match[1].toLowerCase(), definition[i] );
- }
+ if ( this.eventProcessors[ i ] )
+ this.eventProcessors[ i ].call( this, this._.dialog, definition[ i ] );
+ else
+ registerDomEvent( this, this._.dialog, match[ 1 ].toLowerCase(), definition[ i ] );
+ }
- return this;
- },
+ return this;
+ },
- /**
- * Redraws the file input and resets the file path in the file input.
- * The redraw logic is necessary because non-IE browsers tend to clear
- * the <iframe> containing the file input after closing the dialog.
- * @example
- */
- reset : function()
- {
- var frameElement = CKEDITOR.document.getById( this._.frameId ),
- frameDocument = frameElement.getFrameDocument(),
- elementDefinition = this._.definition,
- buttons = this._.buttons,
- callNumber = this.formLoadedNumber,
- unloadNumber = this.formUnloadNumber,
- langDir = this._.dialog._.editor.lang.dir,
- langCode = this._.dialog._.editor.langCode;
-
- // The callback function for the iframe, but we must call tools.addFunction only once
- // so we store the function number in this.formLoadedNumber
- if (!callNumber)
- {
- callNumber = this.formLoadedNumber = CKEDITOR.tools.addFunction(
- function()
- {
- // Now we can apply the events to the input type=file
- this.fire( 'formLoaded' ) ;
- }, this ) ;
-
- // Remove listeners attached to the content of the iframe (the file input)
- unloadNumber = this.formUnloadNumber = CKEDITOR.tools.addFunction(
- function()
- {
- this.getInputElement().clearCustomData();
- }, this ) ;
-
- this.getDialog()._.editor.on( 'destroy', function()
- {
- CKEDITOR.tools.removeFunction( callNumber );
- CKEDITOR.tools.removeFunction( unloadNumber );
- } );
- }
+ /**
+ * Redraws the file input and resets the file path in the file input.
+ * The redraw logic is necessary because non-IE browsers tend to clear
+ * the `<iframe>` containing the file input after closing the dialog.
+ */
+ reset: function() {
+ var _ = this._,
+ frameElement = CKEDITOR.document.getById( _.frameId ),
+ frameDocument = frameElement.getFrameDocument(),
+ elementDefinition = _.definition,
+ buttons = _.buttons,
+ callNumber = this.formLoadedNumber,
+ unloadNumber = this.formUnloadNumber,
+ langDir = _.dialog._.editor.lang.dir,
+ langCode = _.dialog._.editor.langCode;
+
+ // The callback function for the iframe, but we must call tools.addFunction only once
+ // so we store the function number in this.formLoadedNumber
+ if ( !callNumber ) {
+ callNumber = this.formLoadedNumber = CKEDITOR.tools.addFunction( function() {
+ // Now we can apply the events to the input type=file
+ this.fire( 'formLoaded' );
+ }, this );
- function generateFormField()
- {
- frameDocument.$.open();
+ // Remove listeners attached to the content of the iframe (the file input)
+ unloadNumber = this.formUnloadNumber = CKEDITOR.tools.addFunction( function() {
+ this.getInputElement().clearCustomData();
+ }, this );
- // Support for custom document.domain in IE.
- if ( CKEDITOR.env.isCustomDomain() )
- frameDocument.$.domain = document.domain;
-
- var size = '';
- if ( elementDefinition.size )
- size = elementDefinition.size - ( CKEDITOR.env.ie ? 7 : 0 ); // "Browse" button is bigger in IE.
-
- frameDocument.$.write( [ '<html dir="' + langDir + '" lang="' + langCode + '"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">',
- '<form enctype="multipart/form-data" method="POST" dir="' + langDir + '" lang="' + langCode + '" action="',
- CKEDITOR.tools.htmlEncode( elementDefinition.action ),
- '">',
- '<input type="file" name="',
- CKEDITOR.tools.htmlEncode( elementDefinition.id || 'cke_upload' ),
- '" size="',
- CKEDITOR.tools.htmlEncode( size > 0 ? size : "" ),
- '" />',
- '</form>',
- '</body></html>',
- '<script>window.parent.CKEDITOR.tools.callFunction(' + callNumber + ');',
- 'window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction(' + unloadNumber + ')}</script>' ].join( '' ) );
-
- frameDocument.$.close();
-
- for ( var i = 0 ; i < buttons.length ; i++ )
- buttons[i].enable();
- }
+ this.getDialog()._.editor.on( 'destroy', function() {
+ CKEDITOR.tools.removeFunction( callNumber );
+ CKEDITOR.tools.removeFunction( unloadNumber );
+ });
+ }
- // #3465: Wait for the browser to finish rendering the dialog first.
- if ( CKEDITOR.env.gecko )
- setTimeout( generateFormField, 500 );
- else
- generateFormField();
- },
+ function generateFormField() {
+ frameDocument.$.open();
- getValue : function()
- {
- return this.getInputElement().$.value;
- },
+ // Support for custom document.domain in IE.
+ if ( CKEDITOR.env.isCustomDomain() )
+ frameDocument.$.domain = document.domain;
+
+ var size = '';
+ if ( elementDefinition.size )
+ size = elementDefinition.size - ( CKEDITOR.env.ie ? 7 : 0 ); // "Browse" button is bigger in IE.
+
+ var inputId = _.frameId + '_input';
+
+ frameDocument.$.write( [ '<html dir="' + langDir + '" lang="' + langCode + '"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">',
+ '<form enctype="multipart/form-data" method="POST" dir="' + langDir + '" lang="' + langCode + '" action="',
+ CKEDITOR.tools.htmlEncode( elementDefinition.action ),
+ '">',
+ // Replicate the field label inside of iframe.
+ '<label id="', _.labelId, '" for="', inputId, '" style="display:none">',
+ CKEDITOR.tools.htmlEncode( elementDefinition.label ),
+ '</label>',
+ '<input id="', inputId, '" aria-labelledby="', _.labelId, '" type="file" name="',
+ CKEDITOR.tools.htmlEncode( elementDefinition.id || 'cke_upload' ),
+ '" size="',
+ CKEDITOR.tools.htmlEncode( size > 0 ? size : "" ),
+ '" />',
+ '</form>',
+ '</body></html>',
+ '<script>window.parent.CKEDITOR.tools.callFunction(' + callNumber + ');',
+ 'window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction(' + unloadNumber + ')}</script>' ].join( '' ) );
+
+ frameDocument.$.close();
+
+ for ( var i = 0; i < buttons.length; i++ )
+ buttons[ i ].enable();
+ }
- /***
- * The default value of input type="file" is an empty string, but during initialization
- * of this UI element, the iframe still isn't ready so it can't be read from that object
- * Setting it manually prevents later issues about the current value ("") being different
- * of the initial value (undefined as it asked for .value of a div)
- */
- setInitValue : function()
- {
- this._.initValue = '';
- },
+ // #3465: Wait for the browser to finish rendering the dialog first.
+ if ( CKEDITOR.env.gecko )
+ setTimeout( generateFormField, 500 );
+ else
+ generateFormField();
+ },
- /**
- * Defines the onChange event for UI element definitions.
- * @field
- * @type Object
- * @example
- */
- eventProcessors :
- {
- onChange : function( dialog, func )
- {
- // If this method is called several times (I'm not sure about how this can happen but the default
- // onChange processor includes this protection)
- // In order to reapply to the new element, the property is deleted at the beggining of the registerEvents method
- if ( !this._.domOnChangeRegistered )
- {
- // By listening for the formLoaded event, this handler will get reapplied when a new
- // form is created
- this.on( 'formLoaded', function()
- {
- this.getInputElement().on( 'change', function(){ this.fire( 'change', { value : this.getValue() } ); }, this );
- }, this );
- this._.domOnChangeRegistered = true;
- }
+ getValue: function() {
+ return this.getInputElement().$.value || '';
+ },
- this.on( 'change', func );
+ /***
+ * The default value of input `type="file"` is an empty string, but during initialization
+ * of this UI element, the iframe still isn't ready so it can't be read from that object
+ * Setting it manually prevents later issues about the current value (`''`) being different
+ * of the initial value (undefined as it asked for `.value` of a div).
+ */
+ setInitValue: function() {
+ this._.initValue = '';
+ },
+
+ /**
+ * Defines the onChange event for UI element definitions.
+ *
+ * @propert {Object}
+ */
+ eventProcessors: {
+ onChange: function( dialog, func ) {
+ // If this method is called several times (I'm not sure about how this can happen but the default
+ // onChange processor includes this protection)
+ // In order to reapply to the new element, the property is deleted at the beggining of the registerEvents method
+ if ( !this._.domOnChangeRegistered ) {
+ // By listening for the formLoaded event, this handler will get reapplied when a new
+ // form is created
+ this.on( 'formLoaded', function() {
+ this.getInputElement().on( 'change', function() {
+ this.fire( 'change', { value: this.getValue() } );
+ }, this );
+ }, this );
+ this._.domOnChangeRegistered = true;
}
- },
- keyboardFocusable : true
- }, true );
-
- CKEDITOR.ui.dialog.fileButton.prototype = new CKEDITOR.ui.dialog.button;
-
- CKEDITOR.ui.dialog.fieldset.prototype = CKEDITOR.tools.clone( CKEDITOR.ui.dialog.hbox.prototype );
-
- CKEDITOR.dialog.addUIElement( 'text', textBuilder );
- CKEDITOR.dialog.addUIElement( 'password', textBuilder );
- CKEDITOR.dialog.addUIElement( 'textarea', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'checkbox', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'radio', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'button', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'select', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'file', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'fileButton', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'html', commonBuilder );
- CKEDITOR.dialog.addUIElement( 'fieldset', containerBuilder );
-})();
+ this.on( 'change', func );
+ }
+ },
+
+ keyboardFocusable: true
+ }, true );
+
+ CKEDITOR.ui.dialog.fileButton.prototype = new CKEDITOR.ui.dialog.button;
+
+ CKEDITOR.ui.dialog.fieldset.prototype = CKEDITOR.tools.clone( CKEDITOR.ui.dialog.hbox.prototype );
+
+ CKEDITOR.dialog.addUIElement( 'text', textBuilder );
+ CKEDITOR.dialog.addUIElement( 'password', textBuilder );
+ CKEDITOR.dialog.addUIElement( 'textarea', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'checkbox', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'radio', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'button', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'select', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'file', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'fileButton', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'html', commonBuilder );
+ CKEDITOR.dialog.addUIElement( 'fieldset', containerBuilder );
+ }
+});
+
+/**
+ * Fired when the value of the uiElement is changed.
+ *
+ * @event change
+ * @member CKEDITOR.ui.dialog.uiElement
+ */
+
+/**
+ * Fired when the inner frame created by the element is ready.
+ * Each time the button is used or the dialog is loaded a new
+ * form might be created.
+ *
+ * @event formLoaded
+ * @member CKEDITOR.ui.dialog.fileButton
+ */
diff --git a/devel/third-party/ckeditor/plugins/div/dialogs/div.js b/devel/third-party/ckeditor/plugins/div/dialogs/div.js
index cf865f7..9b34b53 100644
--- a/devel/third-party/ckeditor/plugins/div/dialogs/div.js
+++ b/devel/third-party/ckeditor/plugins/div/dialogs/div.js
@@ -1,62 +1,45 @@
/*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+ * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-(function()
-{
-
- /**
- * Add to collection with DUP examination.
- * @param {Object} collection
- * @param {Object} element
- * @param {Object} database
- */
- function addSafely( collection, element, database )
- {
+(function() {
+
+ // Add to collection with DUP examination.
+ // @param {Object} collection
+ // @param {Object} element
+ // @param {Object} database
+ function addSafely( collection, element, database ) {
// 1. IE doesn't support customData on text nodes;
// 2. Text nodes never get chance to appear twice;
- if ( !element.is || !element.getCustomData( 'block_processed' ) )
- {
+ if ( !element.is || !element.getCustomData( 'block_processed' ) ) {
element.is && CKEDITOR.dom.element.setMarker( database, element, 'block_processed', true );
collection.push( element );
}
}
- function getNonEmptyChildren( element )
- {
+ function getNonEmptyChildren( element ) {
var retval = [];
var children = element.getChildren();
- for ( var i = 0 ; i < children.count() ; i++ )
- {
+ for ( var i = 0; i < children.count(); i++ ) {
var child = children.getItem( i );
- if ( ! ( child.type === CKEDITOR.NODE_TEXT
- && ( /^[ \t\n\r]+$/ ).test( child.getText() ) ) )
+ if ( !( child.type === CKEDITOR.NODE_TEXT && ( /^[ \t\n\r]+$/ ).test( child.getText() ) ) )
retval.push( child );
}
return retval;
}
-
- /**
- * Dialog reused by both 'creatediv' and 'editdiv' commands.
- * @param {Object} editor
- * @param {String} command The command name which indicate what the current command is.
- */
- function divDialog( editor, command )
- {
+ // Dialog reused by both 'creatediv' and 'editdiv' commands.
+ // @param {Object} editor
+ // @param {String} command The command name which indicate what the current command is.
+ function divDialog( editor, command ) {
// Definition of elements at which div operation should stopped.
- var divLimitDefinition = ( function(){
+ var divLimitDefinition = (function() {
// Customzie from specialize blockLimit elements
var definition = CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$blockLimit );
- // Exclude 'div' itself.
- delete definition.div;
-
- // Exclude 'td' and 'th' when 'wrapping table'
- if ( editor.config.div_wrapTable )
- {
+ if ( editor.config.div_wrapTable ) {
delete definition.td;
delete definition.th;
}
@@ -66,51 +49,37 @@
// DTD of 'div' element
var dtd = CKEDITOR.dtd.div;
- /**
- * Get the first div limit element on the element's path.
- * @param {Object} element
- */
- function getDivLimitElement( element )
- {
- var pathElements = new CKEDITOR.dom.elementPath( element ).elements;
- var divLimit;
- for ( var i = 0; i < pathElements.length ; i++ )
- {
- if ( pathElements[ i ].getName() in divLimitDefinition )
- {
- divLimit = pathElements[ i ];
- break;
- }
+ // Get the first div limit element on the element's path.
+ // @param {Object} element
+ function getDivContainer( element ) {
+ var container = editor.elementPath( element ).blockLimit;
+
+ // Dont stop at 'td' and 'th' when div should wrap entire table.
+ if ( editor.config.div_wrapTable && container.is( [ 'td', 'th' ] ) ) {
+ var parentPath = editor.elementPath( container.getParent() );
+ container = parentPath.blockLimit;
}
- return divLimit;
+
+ return container;
}
- /**
- * Init all fields' setup/commit function.
- * @memberof divDialog
- */
- function setupFields()
- {
- this.foreach( function( field )
- {
+ // Init all fields' setup/commit function.
+ // @memberof divDialog
+ function setupFields() {
+ this.foreach( function( field ) {
// Exclude layout container elements
- if ( /^(?!vbox|hbox)/.test( field.type ) )
- {
- if ( !field.setup )
- {
+ if ( /^(?!vbox|hbox)/.test( field.type ) ) {
+ if ( !field.setup ) {
// Read the dialog fields values from the specified
// element attributes.
- field.setup = function( element )
- {
- field.setValue( element.getAttribute( field.id ) || '' );
+ field.setup = function( element ) {
+ field.setValue( element.getAttribute( field.id ) || '', 1 );
};
}
- if ( !field.commit )
- {
+ if ( !field.commit ) {
// Set element attributes assigned by the dialog
// fields.
- field.commit = function( element )
- {
+ field.commit = function( element ) {
var fieldValue = this.getValue();
// ignore default element attribute values
if ( 'dir' == field.id && element.getComputedStyle( 'direction' ) == fieldValue )
@@ -123,25 +92,23 @@
};
}
}
- } );
+ });
}
- /**
- * Wrapping 'div' element around appropriate blocks among the selected ranges.
- * @param {Object} editor
- */
- function createDiv( editor )
- {
+ // Wrapping 'div' element around appropriate blocks among the selected ranges.
+ // @param {Object} editor
+ function createDiv( editor ) {
// new adding containers OR detected pre-existed containers.
var containers = [];
// node markers store.
var database = {};
// All block level elements which contained by the ranges.
- var containedBlocks = [], block;
+ var containedBlocks = [],
+ block;
// Get all ranges from the selection.
- var selection = editor.document.getSelection();
- var ranges = selection.getRanges();
+ var selection = editor.getSelection(),
+ ranges = selection.getRanges();
var bookmarks = selection.createBookmarks();
var i, iterator;
@@ -149,22 +116,17 @@
var blockTag = editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p';
// collect all included elements from dom-iterator
- for ( i = 0 ; i < ranges.length ; i++ )
- {
+ for ( i = 0; i < ranges.length; i++ ) {
iterator = ranges[ i ].createIterator();
- while ( ( block = iterator.getNextParagraph() ) )
- {
+ while ( ( block = iterator.getNextParagraph() ) ) {
// include contents of blockLimit elements.
- if ( block.getName() in divLimitDefinition )
- {
- var j, childNodes = block.getChildren();
- for ( j = 0 ; j < childNodes.count() ; j++ )
- addSafely( containedBlocks, childNodes.getItem( j ) , database );
- }
- else
- {
- // Bypass dtd disallowed elements.
- while ( !dtd[ block.getName() ] && block.getName() != 'body' )
+ if ( block.getName() in divLimitDefinition ) {
+ var j,
+ childNodes = block.getChildren();
+ for ( j = 0; j < childNodes.count(); j++ )
+ addSafely( containedBlocks, childNodes.getItem( j ), database );
+ } else {
+ while ( !dtd[ block.getName() ] && !block.equals( ranges[ i ].root ) )
block = block.getParent();
addSafely( containedBlocks, block, database );
}
@@ -176,20 +138,18 @@
var blockGroups = groupByDivLimit( containedBlocks );
var ancestor, blockEl, divElement;
- for ( i = 0 ; i < blockGroups.length ; i++ )
- {
+ for ( i = 0; i < blockGroups.length; i++ ) {
var currentNode = blockGroups[ i ][ 0 ];
// Calculate the common parent node of all contained elements.
ancestor = currentNode.getParent();
- for ( j = 1 ; j < blockGroups[ i ].length; j++ )
+ for ( j = 1; j < blockGroups[ i ].length; j++ )
ancestor = ancestor.getCommonAncestor( blockGroups[ i ][ j ] );
divElement = new CKEDITOR.dom.element( 'div', editor.document );
// Normalize the blocks in each group to a common parent.
- for ( j = 0; j < blockGroups[ i ].length ; j++ )
- {
+ for ( j = 0; j < blockGroups[ i ].length; j++ ) {
currentNode = blockGroups[ i ][ j ];
while ( !currentNode.getParent().equals( ancestor ) )
@@ -201,13 +161,11 @@
// Wrapped blocks counting
var fixedBlock = null;
- for ( j = 0 ; j < blockGroups[ i ].length ; j++ )
- {
+ for ( j = 0; j < blockGroups[ i ].length; j++ ) {
currentNode = blockGroups[ i ][ j ];
// Avoid DUP elements introduced by grouping.
- if ( !( currentNode.getCustomData && currentNode.getCustomData( 'block_processed' ) ) )
- {
+ if ( !( currentNode.getCustomData && currentNode.getCustomData( 'block_processed' ) ) ) {
currentNode.is && CKEDITOR.dom.element.setMarker( database, currentNode, 'block_processed', true );
// Establish new container, wrapping all elements in this group.
@@ -226,54 +184,40 @@
return containers;
}
- function getDiv( editor )
- {
- var path = new CKEDITOR.dom.elementPath( editor.getSelection().getStartElement() ),
- blockLimit = path.blockLimit,
- div = blockLimit && blockLimit.getAscendant( 'div', true );
- return div;
- }
- /**
- * Divide a set of nodes to different groups by their path's blocklimit element.
- * Note: the specified nodes should be in source order naturally, which mean they are supposed to producea by following class:
- * * CKEDITOR.dom.range.Iterator
- * * CKEDITOR.dom.domWalker
- * @return {Array []} the grouped nodes
- */
- function groupByDivLimit( nodes )
- {
+ // Divide a set of nodes to different groups by their path's blocklimit element.
+ // Note: the specified nodes should be in source order naturally, which mean they are supposed to producea by following class:
+ // * CKEDITOR.dom.range.Iterator
+ // * CKEDITOR.dom.domWalker
+ // @returns {Array[]} the grouped nodes
+ function groupByDivLimit( nodes ) {
var groups = [],
lastDivLimit = null,
path, block;
- for ( var i = 0 ; i < nodes.length ; i++ )
- {
- block = nodes[i];
- var limit = getDivLimitElement( block );
- if ( !limit.equals( lastDivLimit ) )
- {
- lastDivLimit = limit ;
- groups.push( [] ) ;
+ for ( var i = 0; i < nodes.length; i++ ) {
+ block = nodes[ i ];
+ var limit = getDivContainer( block );
+ if ( !limit.equals( lastDivLimit ) ) {
+ lastDivLimit = limit;
+ groups.push( [] );
}
- groups[ groups.length - 1 ].push( block ) ;
+ groups[ groups.length - 1 ].push( block );
}
return groups;
}
// Synchronous field values to other impacted fields is required, e.g. div styles
// change should also alter inline-style text.
- function commitInternally( targetFields )
- {
+ function commitInternally( targetFields ) {
var dialog = this.getDialog(),
- element = dialog._element && dialog._element.clone()
- || new CKEDITOR.dom.element( 'div', editor.document );
+ element = dialog._element && dialog._element.clone() || new CKEDITOR.dom.element( 'div', editor.document );
// Commit this field and broadcast to target fields.
this.commit( element, true );
targetFields = [].concat( targetFields );
- var length = targetFields.length, field;
- for ( var i = 0; i < length; i++ )
- {
+ var length = targetFields.length,
+ field;
+ for ( var i = 0; i < length; i++ ) {
field = dialog.getContentElement.apply( dialog, targetFields[ i ].split( ':' ) );
field && field.setup && field.setup( element, true );
}
@@ -281,181 +225,156 @@
// Registered 'CKEDITOR.style' instances.
- var styles = {} ;
- /**
- * Hold a collection of created block container elements.
- */
+ var styles = {};
+
+ // Hold a collection of created block container elements.
var containers = [];
- /**
- * @type divDialog
- */
+
+ // @type divDialog
return {
- title : editor.lang.div.title,
- minWidth : 400,
- minHeight : 165,
- contents :
- [
- {
- id :'info',
- label :editor.lang.common.generalTab,
- title :editor.lang.common.generalTab,
- elements :
- [
+ title: editor.lang.div.title,
+ minWidth: 400,
+ minHeight: 165,
+ contents: [
+ {
+ id: 'info',
+ label: editor.lang.common.generalTab,
+ title: editor.lang.common.generalTab,
+ elements: [
{
- type :'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- id :'elementStyle',
- type :'select',
- style :'width: 100%;',
- label :editor.lang.div.styleSelectLabel,
- 'default' : '',
- // Options are loaded dynamically.
- items :
- [
- [ editor.lang.common.notSet , '' ]
- ],
- onChange : function()
- {
- commitInternally.call( this, [ 'info:class', 'advanced:dir', 'advanced:style' ] );
- },
- setup : function( element )
- {
- for ( var name in styles )
- styles[ name ].checkElementRemovable( element, true ) && this.setValue( name );
- },
- commit: function( element )
- {
- var styleName;
- if ( ( styleName = this.getValue() ) )
- {
- var style = styles[ styleName ];
- var customData = element.getCustomData( 'elementStyle' ) || '';
-
- style.applyToObject( element );
- element.setCustomData( 'elementStyle', customData + style._.definition.attributes.style );
- }
- }
- },
- {
- id :'class',
- type :'text',
- label :editor.lang.common.cssClass,
- 'default' : ''
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ id: 'elementStyle',
+ type: 'select',
+ style: 'width: 100%;',
+ label: editor.lang.div.styleSelectLabel,
+ 'default': '',
+ // Options are loaded dynamically.
+ items: [
+ [ editor.lang.common.notSet, '' ]
+ ],
+ onChange: function() {
+ commitInternally.call( this, [ 'info:elementStyle', 'info:class', 'advanced:dir', 'advanced:style' ] );
+ },
+ setup: function( element ) {
+ for ( var name in styles )
+ styles[ name ].checkElementRemovable( element, true ) && this.setValue( name, 1 );
+ },
+ commit: function( element ) {
+ var styleName;
+ if ( ( styleName = this.getValue() ) ) {
+ var style = styles[ styleName ];
+ style.applyToObject( element );
}
- ]
+ else
+ element.removeAttribute( 'style' );
+ }
+ },
+ {
+ id: 'class',
+ type: 'text',
+ label: editor.lang.common.cssClass,
+ 'default': ''
}
+ ]
+ }
]
},
- {
- id :'advanced',
- label :editor.lang.common.advancedTab,
- title :editor.lang.common.advancedTab,
- elements :
- [
+ {
+ id: 'advanced',
+ label: editor.lang.common.advancedTab,
+ title: editor.lang.common.advancedTab,
+ elements: [
{
- type :'vbox',
- padding :1,
- children :
- [
- {
- type :'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- type :'text',
- id :'id',
- label :editor.lang.common.id,
- 'default' : ''
- },
- {
- type :'text',
- id :'lang',
- label :editor.lang.link.langCode,
- 'default' : ''
- }
- ]
- },
+ type: 'vbox',
+ padding: 1,
+ children: [
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
{
- type :'hbox',
- children :
- [
- {
- type :'text',
- id :'style',
- style :'width: 100%;',
- label :editor.lang.common.cssStyle,
- 'default' : '',
- commit : function( element )
- {
- // Merge with 'elementStyle', which is of higher priority.
- var merged = this.getValue() + ( element.getCustomData( 'elementStyle' ) || '' );
- element.setAttribute( 'style', merged );
- }
- }
- ]
- },
+ type: 'text',
+ id: 'id',
+ label: editor.lang.common.id,
+ 'default': ''
+ },
{
- type :'hbox',
- children :
- [
- {
- type :'text',
- id :'title',
- style :'width: 100%;',
- label :editor.lang.common.advisoryTitle,
- 'default' : ''
- }
- ]
- },
+ type: 'text',
+ id: 'lang',
+ label: editor.lang.common.langCode,
+ 'default': ''
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ children: [
{
- type :'select',
- id :'dir',
- style :'width: 100%;',
- label :editor.lang.common.langDir,
- 'default' : '',
- items :
- [
- [ editor.lang.common.notSet , '' ],
- [
- editor.lang.common.langDirLtr,
- 'ltr'
- ],
- [
- editor.lang.common.langDirRtl,
- 'rtl'
- ]
- ]
+ type: 'text',
+ id: 'style',
+ style: 'width: 100%;',
+ label: editor.lang.common.cssStyle,
+ 'default': '',
+ commit: function( element ) {
+ element.setAttribute( 'style', this.getValue() );
}
+ }
]
+ },
+ {
+ type: 'hbox',
+ children: [
+ {
+ type: 'text',
+ id: 'title',
+ style: 'width: 100%;',
+ label: editor.lang.common.advisoryTitle,
+ 'default': ''
+ }
+ ]
+ },
+ {
+ type: 'select',
+ id: 'dir',
+ style: 'width: 100%;',
+ label: editor.lang.common.langDir,
+ 'default': '',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [
+ editor.lang.common.langDirLtr,
+ 'ltr'
+ ],
+ [
+ editor.lang.common.langDirRtl,
+ 'rtl'
+ ]
+ ]
}
]
}
+ ]
+ }
],
- onLoad : function()
- {
- setupFields.call(this);
+ onLoad: function() {
+ setupFields.call( this );
// Preparing for the 'elementStyle' field.
var dialog = this,
- stylesField = this.getContentElement( 'info', 'elementStyle' );
+ stylesField = this.getContentElement( 'info', 'elementStyle' );
- // Reuse the 'stylescombo' plugin's styles definition.
- editor.getStylesSet( function( stylesDefinitions )
- {
+ // Reuse the 'stylescombo' plugin's styles definition.
+ editor.getStylesSet( function( stylesDefinitions ) {
var styleName;
- if ( stylesDefinitions )
- {
+ if ( stylesDefinitions ) {
// Digg only those styles that apply to 'div'.
- for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
- {
+ for ( var i = 0; i < stylesDefinitions.length; i++ ) {
var styleDefinition = stylesDefinitions[ i ];
- if ( styleDefinition.element && styleDefinition.element == 'div' )
- {
+ if ( styleDefinition.element && styleDefinition.element == 'div' ) {
styleName = styleDefinition.name;
styles[ styleName ] = new CKEDITOR.style( styleDefinition );
@@ -470,25 +389,23 @@
// it if no options are available at all.
stylesField[ stylesField.items.length > 1 ? 'enable' : 'disable' ]();
- // Now setup the field value manually.
- setTimeout( function() { stylesField.setup( dialog._element ); }, 0 );
- } );
+ // Now setup the field value manually if dialog was opened on element. (#9689)
+ setTimeout( function() {
+ dialog._element && stylesField.setup( dialog._element );
+ }, 0 );
+ });
},
- onShow : function()
- {
+ onShow: function() {
// Whether always create new container regardless of existed
// ones.
- if ( command == 'editdiv' )
- {
+ if ( command == 'editdiv' ) {
// Try to discover the containers that already existed in
// ranges
- var div = getDiv( editor );
// update dialog field values
- div && this.setupContent( this._element = div );
+ this.setupContent( this._element = CKEDITOR.plugins.div.getSurroundDiv( editor ) );
}
},
- onOk : function()
- {
+ onOk: function() {
if ( command == 'editdiv' )
containers = [ this._element ];
else
@@ -496,8 +413,7 @@
// Update elements attributes
var size = containers.length;
- for ( var i = 0; i < size; i++ )
- {
+ for ( var i = 0; i < size; i++ ) {
this.commitContent( containers[ i ] );
// Remove empty 'style' attribute.
@@ -506,8 +422,7 @@
this.hide();
},
- onHide : function()
- {
+ onHide: function() {
// Remove style only when editing existing DIV. (#6315)
if ( command == 'editdiv' )
this._element.removeCustomData( 'elementStyle' );
@@ -516,20 +431,19 @@
};
}
- CKEDITOR.dialog.add( 'creatediv', function( editor )
- {
- return divDialog( editor, 'creatediv' );
- } );
- CKEDITOR.dialog.add( 'editdiv', function( editor )
- {
- return divDialog( editor, 'editdiv' );
- } );
-} )();
-
-/*
- * @name CKEDITOR.config.div_wrapTable
- * Whether to wrap the whole table instead of indivisual cells when created 'div' in table cell.
- * @type Boolean
- * @default false
- * @example config.div_wrapTable = true;
+ CKEDITOR.dialog.add( 'creatediv', function( editor ) {
+ return divDialog( editor, 'creatediv' );
+ });
+ CKEDITOR.dialog.add( 'editdiv', function( editor ) {
+ return divDialog( editor, 'editdiv' );
+ });
+})();
+
+/**
+ * Whether to wrap the whole table instead of indivisual cells when created `<div>` in table cell.
+ *
+ * config.div_wrapTable = true;
+ *
+ * @cfg {Boolean} [div_wrapTable=false]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/div/icons/creatediv.png b/devel/third-party/ckeditor/plugins/div/icons/creatediv.png
new file mode 100644
index 0000000..ca859e7
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/div/icons/creatediv.png differ
diff --git a/devel/third-party/ckeditor/plugins/div/lang/af.js b/devel/third-party/ckeditor/plugins/div/lang/af.js
new file mode 100644
index 0000000..f046d83
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/af.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'af', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Aanbevole Titel',
+ cssClassInputLabel: 'CSS klasse',
+ edit: 'Wysig Div',
+ inlineStyleInputLabel: 'Inlyn Styl',
+ langDirLTRLabel: 'Links na regs (LTR)',
+ langDirLabel: 'Skryfrigting',
+ langDirRTLLabel: 'Regs na links (RTL)',
+ languageCodeInputLabel: ' Taalkode',
+ remove: 'Verwyder Div',
+ styleSelectLabel: 'Styl',
+ title: 'Skep Div houer',
+ toolbar: 'Skep Div houer'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ar.js b/devel/third-party/ckeditor/plugins/div/lang/ar.js
new file mode 100644
index 0000000..9084a83
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ar.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ar', {
+ IdInputLabel: 'ÙÙÙØ©',
+ advisoryTitleInputLabel: 'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',
+ cssClassInputLabel: 'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',
+ langDirLabel: 'إتجا٠اÙÙØµ',
+ langDirRTLLabel: 'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'ÙÙ
Ø·',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/bg.js b/devel/third-party/ckeditor/plugins/div/lang/bg.js
new file mode 100644
index 0000000..a32d46a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/bg.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'bg', {
+ IdInputLabel: 'ID',
+ advisoryTitleInputLabel: 'ÐÑепоÑÑÑиÑелно заглавие',
+ cssClassInputLabel: 'ÐлаÑове за CSS',
+ edit: 'ÐÑомÑна на Div',
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'ÐÑво на ÐÑÑно (ÐнÐ)',
+ langDirLabel: 'ÐоÑока на езика',
+ langDirRTLLabel: 'ÐÑÑно на ÐÑво (ÐнÐ)',
+ languageCodeInputLabel: ' Ðод на езика',
+ remove: 'ÐÑемаÑ
ване на Div',
+ styleSelectLabel: 'СÑил',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/bn.js b/devel/third-party/ckeditor/plugins/div/lang/bn.js
new file mode 100644
index 0000000..e1af07f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/bn.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'bn', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/bs.js b/devel/third-party/ckeditor/plugins/div/lang/bs.js
new file mode 100644
index 0000000..4491e10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/bs.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'bs', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ca.js b/devel/third-party/ckeditor/plugins/div/lang/ca.js
new file mode 100644
index 0000000..683f09b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ca.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ca', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'TÃtol de guia',
+ cssClassInputLabel: 'Classes de la fulla d\'estils',
+ edit: 'Edita Div',
+ inlineStyleInputLabel: 'Estil en lÃnia',
+ langDirLTRLabel: 'D\'esquerra a dreta (LTR)',
+ langDirLabel: 'Direcció de l\'idioma',
+ langDirRTLLabel: 'De dreta a esquerra (RTL)',
+ languageCodeInputLabel: ' Codi d\'idioma',
+ remove: 'Elimina Div',
+ styleSelectLabel: 'Estil',
+ title: 'Crea un contenidor Div',
+ toolbar: 'Crea un contenidor Div'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/cs.js b/devel/third-party/ckeditor/plugins/div/lang/cs.js
new file mode 100644
index 0000000..fef7428
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/cs.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'cs', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'NápovÄdnà titulek',
+ cssClassInputLabel: 'TÅÃdy stylů',
+ edit: 'ZmÄnit Div',
+ inlineStyleInputLabel: 'VnitÅnà styly',
+ langDirLTRLabel: 'Zleva doprava (LTR)',
+ langDirLabel: 'SmÄr jazyka',
+ langDirRTLLabel: 'Zprava doleva (RTL)',
+ languageCodeInputLabel: ' Kód jazyka',
+ remove: 'Odstranit Div',
+ styleSelectLabel: 'Styly',
+ title: 'VytvoÅit Div kontejner',
+ toolbar: 'VytvoÅit Div kontejner'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/cy.js b/devel/third-party/ckeditor/plugins/div/lang/cy.js
new file mode 100644
index 0000000..98ff9db
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/cy.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'cy', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Teitl Cynghorol',
+ cssClassInputLabel: 'Dosbarthiadau Ffeil Ddiwyg',
+ edit: 'Golygu Div',
+ inlineStyleInputLabel: 'Arddull Mewn Llinell',
+ langDirLTRLabel: 'Chwith i\'r Dde (LTR)',
+ langDirLabel: 'Cyfeiriad yr Iaith',
+ langDirRTLLabel: 'Dde i\'r Chwith (RTL)',
+ languageCodeInputLabel: ' Cod Iaith',
+ remove: 'Tynnu Div',
+ styleSelectLabel: 'Arddull',
+ title: 'Creu Cynhwysydd Div',
+ toolbar: 'Creu Cynhwysydd Div'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/da.js b/devel/third-party/ckeditor/plugins/div/lang/da.js
new file mode 100644
index 0000000..17405bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/da.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'da', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Vejledende titel',
+ cssClassInputLabel: 'Typografiark',
+ edit: 'Rediger Div',
+ inlineStyleInputLabel: 'Inline Style',
+ langDirLTRLabel: 'Venstre til højre (LTR)',
+ langDirLabel: 'Sprogretning',
+ langDirRTLLabel: 'Højre til venstre (RTL)',
+ languageCodeInputLabel: ' Sprogkode',
+ remove: 'Slet Div',
+ styleSelectLabel: 'Style',
+ title: 'Opret Div Container',
+ toolbar: 'Opret Div Container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/de.js b/devel/third-party/ckeditor/plugins/div/lang/de.js
new file mode 100644
index 0000000..242877c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/de.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'de', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Tooltip',
+ cssClassInputLabel: 'Stylesheet Klasse',
+ edit: 'Div bearbeiten',
+ inlineStyleInputLabel: 'Inline Stil',
+ langDirLTRLabel: 'Links nach Rechs (LTR)',
+ langDirLabel: 'Sprache Richtung',
+ langDirRTLLabel: 'Rechs nach Links (RTL)',
+ languageCodeInputLabel: 'Sprachenkürzel',
+ remove: 'Div entfernen',
+ styleSelectLabel: 'Style',
+ title: 'Div Container erzeugen',
+ toolbar: 'Div Container erzeugen'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/el.js b/devel/third-party/ckeditor/plugins/div/lang/el.js
new file mode 100644
index 0000000..e08d392
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/el.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'el', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'ÎνδεικÏικÏÏ Î¤Î¯ÏλοÏ',
+ cssClassInputLabel: 'Stylesheet Classes',
+ edit: 'ÎÏεξεÏγαÏία Div',
+ inlineStyleInputLabel: 'ΣÏÏ
λ Îν ΣειÏά',
+ langDirLTRLabel: 'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',
+ langDirLabel: 'ÎαÏεÏθÏ
νÏη ÎειμÎνοÏ
',
+ langDirRTLLabel: 'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',
+ languageCodeInputLabel: 'ÎÏδικÏÏ ÎλÏÏÏαÏ',
+ remove: 'ÎιαγÏαÏή Div',
+ styleSelectLabel: 'ÎοÏÏή',
+ title: 'ÎημιοÏ
Ïγεία Div',
+ toolbar: 'ÎημιοÏ
Ïγεία Div'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/en-au.js b/devel/third-party/ckeditor/plugins/div/lang/en-au.js
new file mode 100644
index 0000000..a0fcb12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/en-au.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'en-au', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/en-ca.js b/devel/third-party/ckeditor/plugins/div/lang/en-ca.js
new file mode 100644
index 0000000..0cfce16
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/en-ca.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'en-ca', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/en-gb.js b/devel/third-party/ckeditor/plugins/div/lang/en-gb.js
new file mode 100644
index 0000000..082584b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/en-gb.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'en-gb', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Advisory Title',
+ cssClassInputLabel: 'Stylesheet Classes',
+ edit: 'Edit Div',
+ inlineStyleInputLabel: 'Inline Style',
+ langDirLTRLabel: 'Left to Right (LTR)',
+ langDirLabel: 'Language Direction',
+ langDirRTLLabel: 'Right to Left (RTL)',
+ languageCodeInputLabel: ' Language Code',
+ remove: 'Remove Div',
+ styleSelectLabel: 'Style',
+ title: 'Create Div Container',
+ toolbar: 'Create Div Container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/en.js b/devel/third-party/ckeditor/plugins/div/lang/en.js
new file mode 100644
index 0000000..b042e2d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/en.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'en', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Advisory Title',
+ cssClassInputLabel: 'Stylesheet Classes',
+ edit: 'Edit Div',
+ inlineStyleInputLabel: 'Inline Style',
+ langDirLTRLabel: 'Left to Right (LTR)',
+ langDirLabel: 'Language Direction',
+ langDirRTLLabel: 'Right to Left (RTL)',
+ languageCodeInputLabel: ' Language Code',
+ remove: 'Remove Div',
+ styleSelectLabel: 'Style',
+ title: 'Create Div Container',
+ toolbar: 'Create Div Container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/eo.js b/devel/third-party/ckeditor/plugins/div/lang/eo.js
new file mode 100644
index 0000000..723f40b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/eo.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'eo', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Priskriba Titolo',
+ cssClassInputLabel: 'Stilfolioklasoj',
+ edit: 'Redakti Div',
+ inlineStyleInputLabel: 'Enlinia stilo',
+ langDirLTRLabel: 'Maldekstre dekstren (angle LTR)',
+ langDirLabel: 'Skribdirekto',
+ langDirRTLLabel: 'Dekstre maldekstren (angle RTL)',
+ languageCodeInputLabel: ' Lingvokodo',
+ remove: 'Forigi Div',
+ styleSelectLabel: 'Stilo',
+ title: 'Krei DIV ujon',
+ toolbar: 'Krei DIV ujon'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/es.js b/devel/third-party/ckeditor/plugins/div/lang/es.js
new file mode 100644
index 0000000..15f5d7d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/es.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'es', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'TÃtulo',
+ cssClassInputLabel: 'Clase de hoja de estilos',
+ edit: 'Editar Div',
+ inlineStyleInputLabel: 'Estilo',
+ langDirLTRLabel: 'Izquierda a Derecha (LTR)',
+ langDirLabel: 'Orientación',
+ langDirRTLLabel: 'Derecha a Izquierda (RTL)',
+ languageCodeInputLabel: ' Codigo de idioma',
+ remove: 'Quitar Div',
+ styleSelectLabel: 'Estilo',
+ title: 'Crear contenedor DIV',
+ toolbar: 'Crear contenedor DIV'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/et.js b/devel/third-party/ckeditor/plugins/div/lang/et.js
new file mode 100644
index 0000000..d50b733
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/et.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'et', {
+ IdInputLabel: 'ID',
+ advisoryTitleInputLabel: 'Soovitatav pealkiri',
+ cssClassInputLabel: 'Stiililehe klassid',
+ edit: 'Muuda Div',
+ inlineStyleInputLabel: 'Reasisene stiil',
+ langDirLTRLabel: 'Vasakult paremale (LTR)',
+ langDirLabel: 'Keele suund',
+ langDirRTLLabel: 'Paremalt vasakule (RTL)',
+ languageCodeInputLabel: ' Keelekood',
+ remove: 'Eemalda Div',
+ styleSelectLabel: 'Stiil',
+ title: 'Div-konteineri loomine',
+ toolbar: 'Div-konteineri loomine'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/eu.js b/devel/third-party/ckeditor/plugins/div/lang/eu.js
new file mode 100644
index 0000000..6e9ab92
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/eu.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'eu', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/fa.js b/devel/third-party/ckeditor/plugins/div/lang/fa.js
new file mode 100644
index 0000000..8a376c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/fa.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'fa', {
+ IdInputLabel: 'Ø´ÙØ§Ø³Ù',
+ advisoryTitleInputLabel: 'عÙÙØ§Ù Ù
Ø´Ø§ÙØ±Ù',
+ cssClassInputLabel: 'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù',
+ edit: 'ÙÛØ±Ø§ÛØ´ Div',
+ inlineStyleInputLabel: 'سبک درÙÙØ®Ø·Û(Inline Style)',
+ langDirLTRLabel: 'ÚÙ¾ ب٠راست (LTR)',
+ langDirLabel: 'Ø¬ÙØª ÙÙØ´ØªØ§Ø±Û زباÙ',
+ langDirRTLLabel: 'راست ب٠ÚÙ¾ (RTL)',
+ languageCodeInputLabel: ' کد زباÙ',
+ remove: 'ØØ°Ù Div',
+ styleSelectLabel: 'سبک',
+ title: 'Ø§ÛØ¬Ø§Ø¯ ÛÚ© Ù
ØÙ DIV',
+ toolbar: 'Ø§ÛØ¬Ø§Ø¯ ÛÚ© Ù
ØÙ DIV'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/fi.js b/devel/third-party/ckeditor/plugins/div/lang/fi.js
new file mode 100644
index 0000000..558a20d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/fi.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'fi', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Ohjeistava otsikko',
+ cssClassInputLabel: 'Tyylitiedoston luokat',
+ edit: 'Muokkaa Diviä',
+ inlineStyleInputLabel: 'Sisätyyli',
+ langDirLTRLabel: 'Vasemmalta oikealle (LTR)',
+ langDirLabel: 'Kielen suunta',
+ langDirRTLLabel: 'Oikealta vasemmalle (RTL)',
+ languageCodeInputLabel: ' Kielen koodi',
+ remove: 'Poista Div',
+ styleSelectLabel: 'Tyyli',
+ title: 'Luo div-kehikko',
+ toolbar: 'Luo div-kehikko'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/fo.js b/devel/third-party/ckeditor/plugins/div/lang/fo.js
new file mode 100644
index 0000000..0b3a78b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/fo.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'fo', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Advisory Title',
+ cssClassInputLabel: 'Stylesheet Classes',
+ edit: 'Redigera Div',
+ inlineStyleInputLabel: 'Inline Style',
+ langDirLTRLabel: 'Vinstru til høgru (LTR)',
+ langDirLabel: 'Language Direction',
+ langDirRTLLabel: 'Høgru til vinstru (RTL)',
+ languageCodeInputLabel: ' Language Code',
+ remove: 'Strika Div',
+ styleSelectLabel: 'Style',
+ title: 'Ger Div Container',
+ toolbar: 'Ger Div Container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/div/lang/fr-ca.js
new file mode 100644
index 0000000..9fa7e99
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/fr-ca.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'fr-ca', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/fr.js b/devel/third-party/ckeditor/plugins/div/lang/fr.js
new file mode 100644
index 0000000..3a71496
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/fr.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'fr', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Advisory Title',
+ cssClassInputLabel: 'Classe CSS',
+ edit: 'Ãditer la DIV',
+ inlineStyleInputLabel: 'Style en ligne',
+ langDirLTRLabel: 'Gauche à droite (LTR)',
+ langDirLabel: 'Sens d\'écriture',
+ langDirRTLLabel: 'Droite à gauche (RTL)',
+ languageCodeInputLabel: 'Code de langue',
+ remove: 'Enlever la DIV',
+ styleSelectLabel: 'Style',
+ title: 'Créer un container DIV',
+ toolbar: 'Créer un container DIV'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/gl.js b/devel/third-party/ckeditor/plugins/div/lang/gl.js
new file mode 100644
index 0000000..50803d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/gl.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'gl', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/gu.js b/devel/third-party/ckeditor/plugins/div/lang/gu.js
new file mode 100644
index 0000000..4027a03
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/gu.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'gu', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'àªàª¡àªµàª¾àªàªàª° શà«àª°à«àª·àª',
+ cssClassInputLabel: 'સà«àªàª¾àªàª²àª¶à«àª àªàª²àª¾àª¸à«àª¸',
+ edit: 'ડà«àªµà«àª®àª¾àª ફà«àª°àª«àª¾àª° àªàª°àªµà«',
+ inlineStyleInputLabel: 'àªàª¨àª²àª¾àªàª¨ પદà«àª§àª¤àª¿',
+ langDirLTRLabel: 'ડાબૠથૠàªàª®àª£à« (LTR)',
+ langDirLabel: 'àªàª¾àª·àª¾àª¨à« દિશા',
+ langDirRTLLabel: 'àªàª®àª£à« થૠડાબૠ(RTL)',
+ languageCodeInputLabel: 'àªàª¾àª·àª¾àª¨à« àªà«àª¡',
+ remove: 'ડà«àªµà« àªàª¾àª¢à« àªàª¾àª¢àªµà«àª',
+ styleSelectLabel: 'સà«àªàª¾àªàª²',
+ title: 'Div àªàª¨à«àªà«àª¨àª° બનાવà«àªàªµà«àª',
+ toolbar: 'Div àªàª¨à«àªà«àª¨àª° બનાવà«àªàªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/he.js b/devel/third-party/ckeditor/plugins/div/lang/he.js
new file mode 100644
index 0000000..7a63e3f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/he.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'he', {
+ IdInputLabel: '×××× (ID)',
+ advisoryTitleInputLabel: '××תרת ××צעת',
+ cssClassInputLabel: '×××קת ×¢×צ××',
+ edit: 'ער××ת ×××× (Div)',
+ inlineStyleInputLabel: 'ס×× ×× ×¤× ×××',
+ langDirLTRLabel: 'ש××× ××××× (LTR)',
+ langDirLabel: '××××× ×©×¤×',
+ langDirRTLLabel: '×××× ×ש××× (RTL)',
+ languageCodeInputLabel: '×§×× ×©×¤×',
+ remove: '×סרת ×××× (Div)',
+ styleSelectLabel: 'ס×× ××',
+ title: '×צ×רת ×××× (Div)',
+ toolbar: '×צ×רת ×××× (Div)'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/hi.js b/devel/third-party/ckeditor/plugins/div/lang/hi.js
new file mode 100644
index 0000000..510efcf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/hi.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'hi', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',
+ cssClassInputLabel: 'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'बायà¥à¤ सॠदायà¥à¤ (LTR)',
+ langDirLabel: 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
+ langDirRTLLabel: 'दायà¥à¤ सॠबायà¥à¤ (RTL)',
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'सà¥à¤à¤¾à¤à¤²',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/hr.js b/devel/third-party/ckeditor/plugins/div/lang/hr.js
new file mode 100644
index 0000000..084b478
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/hr.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'hr', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Savjetodavni naslov',
+ cssClassInputLabel: 'Klase stilova',
+ edit: 'Uredi DIV',
+ inlineStyleInputLabel: 'Stil u liniji',
+ langDirLTRLabel: 'S lijeva na desno (LTR)',
+ langDirLabel: 'Smjer jezika',
+ langDirRTLLabel: 'S desna na lijevo (RTL)',
+ languageCodeInputLabel: 'JeziÄni kod',
+ remove: 'Ukloni DIV',
+ styleSelectLabel: 'Stil',
+ title: 'Napravi DIV kontejner',
+ toolbar: 'Napravi DIV kontejner'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/hu.js b/devel/third-party/ckeditor/plugins/div/lang/hu.js
new file mode 100644
index 0000000..605b241
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/hu.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'hu', {
+ IdInputLabel: 'AzonosÃtó',
+ advisoryTitleInputLabel: 'Tipp szöveg',
+ cssClassInputLabel: 'StÃluslap osztály',
+ edit: 'DIV szerkesztése',
+ inlineStyleInputLabel: 'Inline stÃlus',
+ langDirLTRLabel: 'Balról jobbra (LTR)',
+ langDirLabel: 'Nyelvi irány',
+ langDirRTLLabel: 'Jobbról balra (RTL)',
+ languageCodeInputLabel: ' Nyelv kódja',
+ remove: 'DIV eltávolÃtása',
+ styleSelectLabel: 'StÃlus',
+ title: 'DIV tároló létrehozása',
+ toolbar: 'DIV tároló létrehozása'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/is.js b/devel/third-party/ckeditor/plugins/div/lang/is.js
new file mode 100644
index 0000000..e845c71
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/is.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'is', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/it.js b/devel/third-party/ckeditor/plugins/div/lang/it.js
new file mode 100644
index 0000000..062a2a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/it.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'it', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Titolo Avviso',
+ cssClassInputLabel: 'Classi di stile',
+ edit: 'Modifica DIV',
+ inlineStyleInputLabel: 'Stile Inline',
+ langDirLTRLabel: 'Da sinistra a destra (LTR)',
+ langDirLabel: 'Direzione di scrittura',
+ langDirRTLLabel: 'Da destra a sinistra (RTL)',
+ languageCodeInputLabel: 'Codice lingua',
+ remove: 'Rimuovi DIV',
+ styleSelectLabel: 'Stile',
+ title: 'Crea DIV contenitore',
+ toolbar: 'Crea DIV contenitore'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ja.js b/devel/third-party/ckeditor/plugins/div/lang/ja.js
new file mode 100644
index 0000000..fface6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ja.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ja', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Title屿§',
+ cssClassInputLabel: 'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',
+ edit: 'Divã³ã³ãã ç·¨é',
+ inlineStyleInputLabel: 'ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«',
+ langDirLTRLabel: 'å·¦ããå³ (LTR)',
+ langDirLabel: 'æå表è¨ã®æ¹å',
+ langDirRTLLabel: 'å³ããå·¦ (RTL)',
+ languageCodeInputLabel: ' è¨èªã³ã¼ã',
+ remove: 'Divã³ã³ãã åé¤',
+ styleSelectLabel: 'ã¹ã¿ã¤ã«',
+ title: 'Divã³ã³ãã',
+ toolbar: 'Divã³ã³ãã'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ka.js b/devel/third-party/ckeditor/plugins/div/lang/ka.js
new file mode 100644
index 0000000..20f424f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ka.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ka', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'á¡áááá£á á',
+ cssClassInputLabel: 'CSS áááá¡ááá',
+ edit: 'Div-áá¡ á áááá¥á¢áá ááá',
+ inlineStyleInputLabel: 'áááááá áá£áá á¡á¢ááá',
+ langDirLTRLabel: 'ááá áªá®ááááá ááá á¯ááá᪠(LTR)',
+ langDirLabel: 'áááá¡ ááááá áá£áááá',
+ langDirRTLLabel: 'ááá á¯áááááá ááá áªá®ááá (RTL)',
+ languageCodeInputLabel: 'áááá¡ áááá',
+ remove: 'Div-áá¡ á¬áá¨áá',
+ styleSelectLabel: 'á¡á¢ááá',
+ title: 'Div áááá¢ááááá áá¡ á¨áá¥ááá',
+ toolbar: 'Div áááá¢ááááá áá¡ á¨áá¥ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/km.js b/devel/third-party/ckeditor/plugins/div/lang/km.js
new file mode 100644
index 0000000..7141aaa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/km.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'km', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ko.js b/devel/third-party/ckeditor/plugins/div/lang/ko.js
new file mode 100644
index 0000000..f62889b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ko.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ko', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ku.js b/devel/third-party/ckeditor/plugins/div/lang/ku.js
new file mode 100644
index 0000000..6c6ccc0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ku.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ku', {
+ IdInputLabel: 'ÙØ§Ø³ÙاÙ
Ù',
+ advisoryTitleInputLabel: 'Ø³ÙØ±Ø¯ÛÚ',
+ cssClassInputLabel: 'Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÙÚÙ',
+ edit: 'ÚØ§Ú©Ø³Ø§Ø²Û Div',
+ inlineStyleInputLabel: 'Ø´ÛÙØ§Ø²Û ÙØ§ÙÙÛÚµ',
+ langDirLTRLabel: 'ÚÙÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)',
+ langDirLabel: 'ئاراستÙÛ Ø²Ù
اÙ',
+ langDirRTLLabel: 'ÚØ§Ø³Øª Ø¨Û ÚÙÙ¾ (RTL)',
+ languageCodeInputLabel: 'ÙÛÙ
Ø§Û Ø²Ù
اÙ',
+ remove: 'ÙØ§Ø¨Ø±Ø¯ÙÛ Div',
+ styleSelectLabel: 'Ø´ÛÙØ§Ø²',
+ title: 'Ø¯Ø§ÙØ§ÙÛ ÙÙØ®ÛÚ¯Ø±Û Div',
+ toolbar: 'Ø¯Ø§ÙØ§ÙÛ ÙÙØ®ÛÚ¯Ø±Û Div'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/lt.js b/devel/third-party/ckeditor/plugins/div/lang/lt.js
new file mode 100644
index 0000000..eb87059
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/lt.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'lt', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Patariamas pavadinimas',
+ cssClassInputLabel: 'Stilių klasÄs',
+ edit: 'Redaguoti Div',
+ inlineStyleInputLabel: 'Vidiniai stiliai',
+ langDirLTRLabel: 'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',
+ langDirLabel: 'Kalbos nurodymai',
+ langDirRTLLabel: 'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',
+ languageCodeInputLabel: ' Kalbos kodas',
+ remove: 'Pašalinti Div',
+ styleSelectLabel: 'Stilius',
+ title: 'Sukurti Div elementÄ
',
+ toolbar: 'Sukurti Div elementÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/lv.js b/devel/third-party/ckeditor/plugins/div/lang/lv.js
new file mode 100644
index 0000000..f446bc3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/lv.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'lv', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Konsultatīvs virsraksts',
+ cssClassInputLabel: 'Stilu klases',
+ edit: 'Labot Div',
+ inlineStyleInputLabel: 'Iekļautais stils',
+ langDirLTRLabel: 'Kreisais uz Labo (LTR)',
+ langDirLabel: 'Valodas virziens',
+ langDirRTLLabel: 'Labais uz kreiso (RTL)',
+ languageCodeInputLabel: 'Valodas kods',
+ remove: 'NoÅemt Div',
+ styleSelectLabel: 'Stils',
+ title: 'Izveidot div konteineri',
+ toolbar: 'Izveidot div konteineri'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/mk.js b/devel/third-party/ckeditor/plugins/div/lang/mk.js
new file mode 100644
index 0000000..c3ae2d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/mk.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'mk', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/mn.js b/devel/third-party/ckeditor/plugins/div/lang/mn.js
new file mode 100644
index 0000000..269be95
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/mn.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'mn', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'ÐөвлөлдөÑ
гаÑÑиг',
+ cssClassInputLabel: 'Stylesheet клаÑÑÑÑд',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Ðүүн ÑÐ°Ð»Ð°Ð°Ñ Ð±Ð°ÑÑÑн ÑиÑÑÑ (LTR)',
+ langDirLabel: 'Ð¥Ñлний ÑиглÑл',
+ langDirRTLLabel: 'ÐаÑÑÑн ÑÐ°Ð»Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ ÑиÑÑÑ (RTL)',
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'ÐагваÑ',
+ title: 'Div гÑдÑг Ñ
ÑÑÑг бий болгоÑ
',
+ toolbar: 'Div гÑдÑг Ñ
ÑÑÑг бий болгоÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ms.js b/devel/third-party/ckeditor/plugins/div/lang/ms.js
new file mode 100644
index 0000000..ba1ab31
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ms.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ms', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/nb.js b/devel/third-party/ckeditor/plugins/div/lang/nb.js
new file mode 100644
index 0000000..bf1aee2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/nb.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'nb', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Tittel',
+ cssClassInputLabel: 'Stilark-klasser',
+ edit: 'Rediger Div',
+ inlineStyleInputLabel: 'Inlinestiler',
+ langDirLTRLabel: 'Venstre til høyre (VTH)',
+ langDirLabel: 'Språkretning',
+ langDirRTLLabel: 'Høyre til venstre (HTV)',
+ languageCodeInputLabel: ' Språkkode',
+ remove: 'Fjern Div',
+ styleSelectLabel: 'Stil',
+ title: 'Sett inn Div Container',
+ toolbar: 'Sett inn Div Container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/nl.js b/devel/third-party/ckeditor/plugins/div/lang/nl.js
new file mode 100644
index 0000000..91a8282
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/nl.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'nl', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Adviserende titel',
+ cssClassInputLabel: 'Stylesheet klassen',
+ edit: 'Div wijzigen',
+ inlineStyleInputLabel: 'Inline stijl',
+ langDirLTRLabel: 'Links naar rechts (LTR)',
+ langDirLabel: 'Schrijfrichting',
+ langDirRTLLabel: 'Rechts naar links (RTL)',
+ languageCodeInputLabel: ' Taalcode',
+ remove: 'Div verwijderen',
+ styleSelectLabel: 'Stijl',
+ title: 'Div aanmaken',
+ toolbar: 'Div aanmaken'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/no.js b/devel/third-party/ckeditor/plugins/div/lang/no.js
new file mode 100644
index 0000000..7712363
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/no.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'no', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Tittel',
+ cssClassInputLabel: 'Stilark-klasser',
+ edit: 'Rediger Div',
+ inlineStyleInputLabel: 'Inlinestiler',
+ langDirLTRLabel: 'Venstre til høyre (VTH)',
+ langDirLabel: 'Språkretning',
+ langDirRTLLabel: 'Høyre til venstre (HTV)',
+ languageCodeInputLabel: ' Språkkode',
+ remove: 'Fjern Div',
+ styleSelectLabel: 'Stil',
+ title: 'Sett inn Div Container',
+ toolbar: 'Sett inn Div Container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/pl.js b/devel/third-party/ckeditor/plugins/div/lang/pl.js
new file mode 100644
index 0000000..90303c2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/pl.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'pl', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Opis obiektu docelowego',
+ cssClassInputLabel: 'Klasy arkusza stylów',
+ edit: 'Edytuj pojemnik Div',
+ inlineStyleInputLabel: 'Style liniowe',
+ langDirLTRLabel: 'Od lewej do prawej (LTR)',
+ langDirLabel: 'Kierunek tekstu',
+ langDirRTLLabel: 'Od prawej do lewej (RTL)',
+ languageCodeInputLabel: 'Kod jÄzyka',
+ remove: 'UsuÅ pojemnik Div',
+ styleSelectLabel: 'Styl',
+ title: 'Utwórz pojemnik Div',
+ toolbar: 'Utwórz pojemnik Div'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/pt-br.js b/devel/third-party/ckeditor/plugins/div/lang/pt-br.js
new file mode 100644
index 0000000..2995fca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/pt-br.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'pt-br', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'TÃtulo Consulta',
+ cssClassInputLabel: 'Classes de CSS',
+ edit: 'Editar Div',
+ inlineStyleInputLabel: 'Estilo Inline',
+ langDirLTRLabel: 'Esquerda para Direita (LTR)',
+ langDirLabel: 'Direção da Escrita',
+ langDirRTLLabel: 'Direita para Esquerda (RTL)',
+ languageCodeInputLabel: 'Código de Idioma',
+ remove: 'Remover Div',
+ styleSelectLabel: 'Estilo',
+ title: 'Criar Container de DIV',
+ toolbar: 'Criar Container de DIV'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/pt.js b/devel/third-party/ckeditor/plugins/div/lang/pt.js
new file mode 100644
index 0000000..c078daf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/pt.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'pt', {
+ IdInputLabel: 'ID',
+ advisoryTitleInputLabel: 'TÃtulo',
+ cssClassInputLabel: 'Classes de Estilo de Folhas Classes',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Esquerda à Direita (LTR)',
+ langDirLabel: 'Orientação de idioma',
+ langDirRTLLabel: 'Direita a Esquerda (RTL)',
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Estilo',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ro.js b/devel/third-party/ckeditor/plugins/div/lang/ro.js
new file mode 100644
index 0000000..6e3c1cd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ro.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ro', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Titlul consultativ',
+ cssClassInputLabel: 'Clasele cu stilul paginii (CSS)',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'stânga-dreapta (LTR)',
+ langDirLabel: 'Direcţia cuvintelor',
+ langDirRTLLabel: 'dreapta-stânga (RTL)',
+ languageCodeInputLabel: 'Codul limbii',
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Stil',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ru.js b/devel/third-party/ckeditor/plugins/div/lang/ru.js
new file mode 100644
index 0000000..3ce24c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ru.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ru', {
+ IdInputLabel: 'ÐденÑиÑикаÑоÑ',
+ advisoryTitleInputLabel: 'Ðаголовок',
+ cssClassInputLabel: 'ÐлаÑÑÑ CSS',
+ edit: 'РедакÑиÑоваÑÑ ÐºÐ¾Ð½ÑейнеÑ',
+ inlineStyleInputLabel: 'СÑÐ¸Ð»Ñ ÑлеменÑа',
+ langDirLTRLabel: 'Слева напÑаво (LTR)',
+ langDirLabel: 'ÐапÑавление ÑекÑÑа',
+ langDirRTLLabel: 'СпÑава налево (RTL)',
+ languageCodeInputLabel: 'Ðод ÑзÑка',
+ remove: 'УдалиÑÑ ÐºÐ¾Ð½ÑейнеÑ',
+ styleSelectLabel: 'СÑилÑ',
+ title: 'СоздаÑÑ Div-конÑейнеÑ',
+ toolbar: 'СоздаÑÑ Div-конÑейнеÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/sk.js b/devel/third-party/ckeditor/plugins/div/lang/sk.js
new file mode 100644
index 0000000..38b65ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/sk.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'sk', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Pomocný titulok',
+ cssClassInputLabel: 'Triedy štýlu',
+ edit: 'Upraviť Div',
+ inlineStyleInputLabel: 'Inline štýl',
+ langDirLTRLabel: 'Zľava doprava (LTR)',
+ langDirLabel: 'Smer jazyka',
+ langDirRTLLabel: 'Zprava doľava (RTL)',
+ languageCodeInputLabel: 'Kód jazyka',
+ remove: 'Odstrániť Div',
+ styleSelectLabel: 'Štýl',
+ title: 'Vytvoriť Div kontajner',
+ toolbar: 'Vytvoriť Div kontajner'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/sl.js b/devel/third-party/ckeditor/plugins/div/lang/sl.js
new file mode 100644
index 0000000..b83807c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/sl.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'sl', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Predlagani naslov',
+ cssClassInputLabel: 'Razred stilne predloge',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Od leve proti desni (LTR)',
+ langDirLabel: 'Smer jezika',
+ langDirRTLLabel: 'Od desne proti levi (RTL)',
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Slog',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/div/lang/sr-latn.js
new file mode 100644
index 0000000..bae981a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/sr-latn.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'sr-latn', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/sr.js b/devel/third-party/ckeditor/plugins/div/lang/sr.js
new file mode 100644
index 0000000..ca61042
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/sr.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'sr', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/sv.js b/devel/third-party/ckeditor/plugins/div/lang/sv.js
new file mode 100644
index 0000000..d4d49c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/sv.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'sv', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'RÃ¥dgivande titel',
+ cssClassInputLabel: 'Stilmallar',
+ edit: 'Redigera Div',
+ inlineStyleInputLabel: 'Inline Style',
+ langDirLTRLabel: 'Vänster till Höger (LTR)',
+ langDirLabel: 'Språkriktning',
+ langDirRTLLabel: 'Höger till vänster (RTL)',
+ languageCodeInputLabel: ' Språkkod',
+ remove: 'Ta bort Div',
+ styleSelectLabel: 'Stil',
+ title: 'Skapa Div container',
+ toolbar: 'Skapa Div container'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/th.js b/devel/third-party/ckeditor/plugins/div/lang/th.js
new file mode 100644
index 0000000..cd2be6b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/th.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'th', {
+ IdInputLabel: 'à¹à¸à¸à¸µ',
+ advisoryTitleInputLabel: 'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
+ cssClassInputLabel: 'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',
+ langDirLabel: 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
+ langDirRTLLabel: 'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/tr.js b/devel/third-party/ckeditor/plugins/div/lang/tr.js
new file mode 100644
index 0000000..1cf8dbe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/tr.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'tr', {
+ IdInputLabel: 'Id',
+ advisoryTitleInputLabel: 'Tavsiye BaÅlıÄı',
+ cssClassInputLabel: 'Stilltipi Sınıfı',
+ edit: 'Div Düzenle',
+ inlineStyleInputLabel: 'Inline Stili',
+ langDirLTRLabel: 'Soldan saÄa (LTR)',
+ langDirLabel: 'Dil Yönü',
+ langDirRTLLabel: 'SaÄdan sola (RTL)',
+ languageCodeInputLabel: ' Dil Kodu',
+ remove: 'Div Kaldır',
+ styleSelectLabel: 'Stil',
+ title: 'Div İçeriÄi OluÅtur',
+ toolbar: 'Div İçeriÄi OluÅtur'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/ug.js b/devel/third-party/ckeditor/plugins/div/lang/ug.js
new file mode 100644
index 0000000..95824f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/ug.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'ug', {
+ IdInputLabel: 'ID',
+ advisoryTitleInputLabel: 'Ù
Ø§ÛØ²Û',
+ cssClassInputLabel: 'Ø¦ÛØ³ÙÛØ¨ تÙÙ¾ÙÙÙÚ Ø¦Ø§ØªÙ',
+ edit: 'DIV تÛÚ¾Ø±ÙØ±',
+ inlineStyleInputLabel: 'ÙÛØ± ئÙÚÙØ¯ÙÙÙ Ø¦ÛØ³ÙÛØ¨Ù',
+ langDirLTRLabel: 'سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)',
+ langDirLabel: 'تÙÙ ÙÛÙÙÙÙØ´Ù',
+ langDirRTLLabel: 'ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)',
+ languageCodeInputLabel: 'تÙÙ ÙÙØ¯Ù',
+ remove: 'DIV ÚÙÙÙØ±ÙÛÛØª',
+ styleSelectLabel: 'Ø¦ÛØ³ÙÛØ¨',
+ title: 'DIV ÙØ§Úا ÙÛØ±',
+ toolbar: 'DIV ÙØ§Úا ÙÛØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/uk.js b/devel/third-party/ckeditor/plugins/div/lang/uk.js
new file mode 100644
index 0000000..38b602d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/uk.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'uk', {
+ IdInputLabel: 'ÐденÑиÑÑкаÑоÑ',
+ advisoryTitleInputLabel: 'ÐмÑÑÑ Ð²Ð¸Ð¿Ð»Ð¸Ð²Ð°ÑÑÐ¾Ñ Ð¿Ñдказки',
+ cssClassInputLabel: 'ÐÐ»Ð°Ñ CSS',
+ edit: 'РедагÑваÑи блок',
+ inlineStyleInputLabel: 'ÐпиÑаний ÑÑилÑ',
+ langDirLTRLabel: 'ÐлÑва напÑаво (LTR)',
+ langDirLabel: 'ÐапÑÑмок мови',
+ langDirRTLLabel: 'СпÑава налÑво (RTL)',
+ languageCodeInputLabel: 'Ðод мови',
+ remove: 'ÐидалиÑи блок',
+ styleSelectLabel: 'СÑÐ¸Ð»Ñ CSS',
+ title: 'СÑвоÑиÑи блок-конÑейнеÑ',
+ toolbar: 'СÑвоÑиÑи блок-конÑейнеÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/vi.js b/devel/third-party/ckeditor/plugins/div/lang/vi.js
new file mode 100644
index 0000000..d150f0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/vi.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'vi', {
+ IdInputLabel: 'Äá»nh danh (id)',
+ advisoryTitleInputLabel: 'Nhan Äá» hưá»ng dẫn',
+ cssClassInputLabel: 'Các lá»p CSS',
+ edit: 'Chá»nh sá»a',
+ inlineStyleInputLabel: 'Kiá»u ná»i dòng',
+ langDirLTRLabel: 'Trái sang phải (LTR)',
+ langDirLabel: 'Hưá»ng ngôn ngữ',
+ langDirRTLLabel: 'Phải qua trái (RTL)',
+ languageCodeInputLabel: 'Mã ngôn ngữ',
+ remove: 'Xóa bá»',
+ styleSelectLabel: 'Kiá»u (style)',
+ title: 'Tạo khá»i các thà nh phần',
+ toolbar: 'Tạo khá»i các thà nh phần'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/div/lang/zh-cn.js
new file mode 100644
index 0000000..6e4b28b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/zh-cn.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'zh-cn', {
+ IdInputLabel: 'ID',
+ advisoryTitleInputLabel: 'æ é¢',
+ cssClassInputLabel: 'æ ·å¼ç±»åç§°',
+ edit: 'ç¼è¾ DIV',
+ inlineStyleInputLabel: 'è¡å
æ ·å¼',
+ langDirLTRLabel: 'ä»å·¦å°å³ (LTR)',
+ langDirLabel: 'è¯è¨æ¹å',
+ langDirRTLLabel: 'ä»å³å°å·¦ (RTL)',
+ languageCodeInputLabel: 'è¯è¨ä»£ç ',
+ remove: 'ç§»é¤ DIV',
+ styleSelectLabel: 'æ ·å¼',
+ title: 'å建 DIV 容å¨',
+ toolbar: 'å建 DIV 容å¨'
+});
diff --git a/devel/third-party/ckeditor/plugins/div/lang/zh.js b/devel/third-party/ckeditor/plugins/div/lang/zh.js
new file mode 100644
index 0000000..4b3f426
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/div/lang/zh.js
@@ -0,0 +1,19 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'div', 'zh', {
+ IdInputLabel: 'Id', // MISSING
+ advisoryTitleInputLabel: 'Advisory Title', // MISSING
+ cssClassInputLabel: 'Stylesheet Classes', // MISSING
+ edit: 'Edit Div', // MISSING
+ inlineStyleInputLabel: 'Inline Style', // MISSING
+ langDirLTRLabel: 'Left to Right (LTR)', // MISSING
+ langDirLabel: 'Language Direction', // MISSING
+ langDirRTLLabel: 'Right to Left (RTL)', // MISSING
+ languageCodeInputLabel: ' Language Code', // MISSING
+ remove: 'Remove Div', // MISSING
+ styleSelectLabel: 'Style', // MISSING
+ title: 'Create Div Container', // MISSING
+ toolbar: 'Create Div Container' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/div/plugin.js b/devel/third-party/ckeditor/plugins/div/plugin.js
index 158070f..4fa10cf 100644
--- a/devel/third-party/ckeditor/plugins/div/plugin.js
+++ b/devel/third-party/ckeditor/plugins/div/plugin.js
@@ -1,121 +1,118 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.
*
*/
-(function()
-{
- CKEDITOR.plugins.add( 'div',
- {
- requires : [ 'editingblock', 'domiterator', 'styles' ],
+(function() {
+ CKEDITOR.plugins.add( 'div', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'creatediv', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- init : function( editor )
- {
var lang = editor.lang.div;
- editor.addCommand( 'creatediv', new CKEDITOR.dialogCommand( 'creatediv' ) );
+ editor.addCommand( 'creatediv', new CKEDITOR.dialogCommand( 'creatediv', {
+ contextSensitive: true,
+ refresh: function( editor, path ) {
+ var context = editor.config.div_wrapTable ? path.root : path.blockLimit;
+ this.setState( 'div' in context.getDtd() ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+ }
+ }));
+
editor.addCommand( 'editdiv', new CKEDITOR.dialogCommand( 'editdiv' ) );
- editor.addCommand( 'removediv',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection(),
- ranges = selection && selection.getRanges(),
- range,
- bookmarks = selection.createBookmarks(),
- walker,
- toRemove = [];
-
- function findDiv( node )
- {
- var path = new CKEDITOR.dom.elementPath( node ),
- blockLimit = path.blockLimit,
- div = blockLimit.is( 'div' ) && blockLimit;
-
- if ( div && !div.getAttribute( '_cke_div_added' ) )
- {
- toRemove.push( div );
- div.setAttribute( '_cke_div_added' );
- }
+ editor.addCommand( 'removediv', {
+ exec: function( editor ) {
+ var selection = editor.getSelection(),
+ ranges = selection && selection.getRanges(),
+ range,
+ bookmarks = selection.createBookmarks(),
+ walker,
+ toRemove = [];
+
+ function findDiv( node ) {
+ var div = CKEDITOR.plugins.div.getSurroundDiv( editor, node );
+ if ( div && !div.data( 'cke-div-added' ) ) {
+ toRemove.push( div );
+ div.data( 'cke-div-added' );
}
+ }
- for ( var i = 0 ; i < ranges.length ; i++ )
- {
- range = ranges[ i ];
- if ( range.collapsed )
- findDiv( selection.getStartElement() );
- else
- {
- walker = new CKEDITOR.dom.walker( range );
- walker.evaluator = findDiv;
- walker.lastForward();
- }
+ for ( var i = 0; i < ranges.length; i++ ) {
+ range = ranges[ i ];
+ if ( range.collapsed )
+ findDiv( selection.getStartElement() );
+ else {
+ walker = new CKEDITOR.dom.walker( range );
+ walker.evaluator = findDiv;
+ walker.lastForward();
}
+ }
- for ( i = 0 ; i < toRemove.length ; i++ )
- toRemove[ i ].remove( true );
+ for ( i = 0; i < toRemove.length; i++ )
+ toRemove[ i ].remove( true );
- selection.selectBookmarks( bookmarks );
+ selection.selectBookmarks( bookmarks );
+ }
+ });
+
+ editor.ui.addButton && editor.ui.addButton( 'CreateDiv', {
+ label: lang.toolbar,
+ command: 'creatediv',
+ toolbar: 'blocks,50'
+ });
+
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ editdiv: {
+ label: lang.edit,
+ command: 'editdiv',
+ group: 'div',
+ order: 1
+ },
+
+ removediv: {
+ label: lang.remove,
+ command: 'removediv',
+ group: 'div',
+ order: 5
}
- } );
-
- editor.ui.addButton( 'CreateDiv',
- {
- label : lang.toolbar,
- command :'creatediv'
- } );
-
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- editdiv :
- {
- label : lang.edit,
- command : 'editdiv',
- group : 'div',
- order : 1
- },
-
- removediv:
- {
- label : lang.remove,
- command : 'removediv',
- group : 'div',
- order : 5
- }
- } );
-
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !element || element.isReadOnly())
- return null;
-
- var elementPath = new CKEDITOR.dom.elementPath( element ),
- blockLimit = elementPath.blockLimit;
-
- if ( blockLimit && blockLimit.getAscendant( 'div', true ) )
- {
- return {
- editdiv : CKEDITOR.TRISTATE_OFF,
- removediv : CKEDITOR.TRISTATE_OFF
- };
- }
+ });
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element ) {
+ if ( !element || element.isReadOnly() )
return null;
- } );
+
+
+ if ( CKEDITOR.plugins.div.getSurroundDiv( editor ) ) {
+ return {
+ editdiv: CKEDITOR.TRISTATE_OFF,
+ removediv: CKEDITOR.TRISTATE_OFF
+ };
+ }
+
+ return null;
+ });
}
}
CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );
CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );
}
- } );
+ });
+
+ CKEDITOR.plugins.div = {
+ getSurroundDiv: function( editor, start ) {
+ var path = editor.elementPath( start );
+ return editor.elementPath( path.blockLimit ).contains( 'div', 1 );
+ }
+ };
})();
diff --git a/devel/third-party/ckeditor/plugins/domiterator/plugin.js b/devel/third-party/ckeditor/plugins/domiterator/plugin.js
deleted file mode 100644
index f0b1835..0000000
--- a/devel/third-party/ckeditor/plugins/domiterator/plugin.js
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @file DOM iterator, which iterates over list items, lines and paragraphs.
- */
-
-CKEDITOR.plugins.add( 'domiterator' );
-
-(function()
-{
- /**
- * @name CKEDITOR.dom.iterator
- */
- function iterator( range )
- {
- if ( arguments.length < 1 )
- return;
-
- this.range = range;
- this.forceBrBreak = false;
-
- // Whether include <br>s into the enlarged range.(#3730).
- this.enlargeBr = true;
- this.enforceRealBlocks = false;
-
- this._ || ( this._ = {} );
- }
-
- var beginWhitespaceRegex = /^[\r\n\t ]+$/,
- isBookmark = CKEDITOR.dom.walker.bookmark();
-
- iterator.prototype = {
- getNextParagraph : function( blockTag )
- {
- // The block element to be returned.
- var block;
-
- // The range object used to identify the paragraph contents.
- var range;
-
- // Indicats that the current element in the loop is the last one.
- var isLast;
-
- // Indicate at least one of the range boundaries is inside a preformat block.
- var touchPre;
-
- // Instructs to cleanup remaining BRs.
- var removePreviousBr, removeLastBr;
-
- // This is the first iteration. Let's initialize it.
- if ( !this._.lastNode )
- {
- range = this.range.clone();
-
- // Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
- range.shrink( CKEDITOR.NODE_ELEMENT, true );
-
- touchPre = range.endContainer.hasAscendant( 'pre', true )
- || range.startContainer.hasAscendant( 'pre', true );
-
- range.enlarge( this.forceBrBreak && !touchPre || !this.enlargeBr ?
- CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
-
- var walker = new CKEDITOR.dom.walker( range ),
- ignoreBookmarkTextEvaluator = CKEDITOR.dom.walker.bookmark( true, true );
- // Avoid anchor inside bookmark inner text.
- walker.evaluator = ignoreBookmarkTextEvaluator;
- this._.nextNode = walker.next();
- // TODO: It's better to have walker.reset() used here.
- walker = new CKEDITOR.dom.walker( range );
- walker.evaluator = ignoreBookmarkTextEvaluator;
- var lastNode = walker.previous();
- this._.lastNode = lastNode.getNextSourceNode( true );
-
- // We may have an empty text node at the end of block due to [3770].
- // If that node is the lastNode, it would cause our logic to leak to the
- // next block.(#3887)
- if ( this._.lastNode &&
- this._.lastNode.type == CKEDITOR.NODE_TEXT &&
- !CKEDITOR.tools.trim( this._.lastNode.getText( ) ) &&
- this._.lastNode.getParent().isBlockBoundary() )
- {
- var testRange = new CKEDITOR.dom.range( range.document );
- testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
- if ( testRange.checkEndOfBlock() )
- {
- var path = new CKEDITOR.dom.elementPath( testRange.endContainer );
- var lastBlock = path.block || path.blockLimit;
- this._.lastNode = lastBlock.getNextSourceNode( true );
- }
- }
-
- // Probably the document end is reached, we need a marker node.
- if ( !this._.lastNode )
- {
- this._.lastNode = this._.docEndMarker = range.document.createText( '' );
- this._.lastNode.insertAfter( lastNode );
- }
-
- // Let's reuse this variable.
- range = null;
- }
-
- var currentNode = this._.nextNode;
- lastNode = this._.lastNode;
-
- this._.nextNode = null;
- while ( currentNode )
- {
- // closeRange indicates that a paragraph boundary has been found,
- // so the range can be closed.
- var closeRange = false,
- parentPre = currentNode.hasAscendant( 'pre' );
-
- // includeNode indicates that the current node is good to be part
- // of the range. By default, any non-element node is ok for it.
- var includeNode = ( currentNode.type != CKEDITOR.NODE_ELEMENT ),
- continueFromSibling = false;
-
- // If it is an element node, let's check if it can be part of the
- // range.
- if ( !includeNode )
- {
- var nodeName = currentNode.getName();
-
- if ( currentNode.isBlockBoundary( this.forceBrBreak &&
- !parentPre && { br : 1 } ) )
- {
- // <br> boundaries must be part of the range. It will
- // happen only if ForceBrBreak.
- if ( nodeName == 'br' )
- includeNode = true;
- else if ( !range && !currentNode.getChildCount() && nodeName != 'hr' )
- {
- // If we have found an empty block, and haven't started
- // the range yet, it means we must return this block.
- block = currentNode;
- isLast = currentNode.equals( lastNode );
- break;
- }
-
- // The range must finish right before the boundary,
- // including possibly skipped empty spaces. (#1603)
- if ( range )
- {
- range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
-
- // The found boundary must be set as the next one at this
- // point. (#1717)
- if ( nodeName != 'br' )
- this._.nextNode = currentNode;
- }
-
- closeRange = true;
- }
- else
- {
- // If we have child nodes, let's check them.
- if ( currentNode.getFirst() )
- {
- // If we don't have a range yet, let's start it.
- if ( !range )
- {
- range = new CKEDITOR.dom.range( this.range.document );
- range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
- }
-
- currentNode = currentNode.getFirst();
- continue;
- }
- includeNode = true;
- }
- }
- else if ( currentNode.type == CKEDITOR.NODE_TEXT )
- {
- // Ignore normal whitespaces (i.e. not including or
- // other unicode whitespaces) before/after a block node.
- if ( beginWhitespaceRegex.test( currentNode.getText() ) )
- includeNode = false;
- }
-
- // The current node is good to be part of the range and we are
- // starting a new range, initialize it first.
- if ( includeNode && !range )
- {
- range = new CKEDITOR.dom.range( this.range.document );
- range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
- }
-
- // The last node has been found.
- isLast = ( ( !closeRange || includeNode ) && currentNode.equals( lastNode ) );
-
- // If we are in an element boundary, let's check if it is time
- // to close the range, otherwise we include the parent within it.
- if ( range && !closeRange )
- {
- while ( !currentNode.getNext() && !isLast )
- {
- var parentNode = currentNode.getParent();
-
- if ( parentNode.isBlockBoundary( this.forceBrBreak
- && !parentPre && { br : 1 } ) )
- {
- closeRange = true;
- isLast = isLast || ( parentNode.equals( lastNode) );
- break;
- }
-
- currentNode = parentNode;
- includeNode = true;
- isLast = ( currentNode.equals( lastNode ) );
- continueFromSibling = true;
- }
- }
-
- // Now finally include the node.
- if ( includeNode )
- range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
-
- currentNode = currentNode.getNextSourceNode( continueFromSibling, null, lastNode );
- isLast = !currentNode;
-
- // We have found a block boundary. Let's close the range and move out of the
- // loop.
- if ( isLast || ( closeRange && range ) )
- break;
- }
-
- // Now, based on the processed range, look for (or create) the block to be returned.
- if ( !block )
- {
- // If no range has been found, this is the end.
- if ( !range )
- {
- this._.docEndMarker && this._.docEndMarker.remove();
- this._.nextNode = null;
- return null;
- }
-
- var startPath = new CKEDITOR.dom.elementPath( range.startContainer );
- var startBlockLimit = startPath.blockLimit,
- checkLimits = { div : 1, th : 1, td : 1 };
- block = startPath.block;
-
- if ( !block
- && !this.enforceRealBlocks
- && checkLimits[ startBlockLimit.getName() ]
- && range.checkStartOfBlock()
- && range.checkEndOfBlock() )
- block = startBlockLimit;
- else if ( !block || ( this.enforceRealBlocks && block.getName() == 'li' ) )
- {
- // Create the fixed block.
- block = this.range.document.createElement( blockTag || 'p' );
-
- // Move the contents of the temporary range to the fixed block.
- range.extractContents().appendTo( block );
- block.trim();
-
- // Insert the fixed block into the DOM.
- range.insertNode( block );
-
- removePreviousBr = removeLastBr = true;
- }
- else if ( block.getName() != 'li' )
- {
- // If the range doesn't includes the entire contents of the
- // block, we must split it, isolating the range in a dedicated
- // block.
- if ( !range.checkStartOfBlock() || !range.checkEndOfBlock() )
- {
- // The resulting block will be a clone of the current one.
- block = block.clone( false );
-
- // Extract the range contents, moving it to the new block.
- range.extractContents().appendTo( block );
- block.trim();
-
- // Split the block. At this point, the range will be in the
- // right position for our intents.
- var splitInfo = range.splitBlock();
-
- removePreviousBr = !splitInfo.wasStartOfBlock;
- removeLastBr = !splitInfo.wasEndOfBlock;
-
- // Insert the new block into the DOM.
- range.insertNode( block );
- }
- }
- else if ( !isLast )
- {
- // LIs are returned as is, with all their children (due to the
- // nested lists). But, the next node is the node right after
- // the current range, which could be an <li> child (nested
- // lists) or the next sibling <li>.
-
- this._.nextNode = ( block.equals( lastNode ) ? null :
- range.getBoundaryNodes().endNode.getNextSourceNode( true, null, lastNode ) );
- }
- }
-
- if ( removePreviousBr )
- {
- var previousSibling = block.getPrevious();
- if ( previousSibling && previousSibling.type == CKEDITOR.NODE_ELEMENT )
- {
- if ( previousSibling.getName() == 'br' )
- previousSibling.remove();
- else if ( previousSibling.getLast() && previousSibling.getLast().$.nodeName.toLowerCase() == 'br' )
- previousSibling.getLast().remove();
- }
- }
-
- if ( removeLastBr )
- {
- // Ignore bookmark nodes.(#3783)
- var bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true );
-
- var lastChild = block.getLast();
- if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.getName() == 'br' )
- {
- // Take care not to remove the block expanding <br> in non-IE browsers.
- if ( CKEDITOR.env.ie
- || lastChild.getPrevious( bookmarkGuard )
- || lastChild.getNext( bookmarkGuard ) )
- lastChild.remove();
- }
- }
-
- // Get a reference for the next element. This is important because the
- // above block can be removed or changed, so we can rely on it for the
- // next interation.
- if ( !this._.nextNode )
- {
- this._.nextNode = ( isLast || block.equals( lastNode ) ) ? null :
- block.getNextSourceNode( true, null, lastNode );
- }
-
- return block;
- }
- };
-
- CKEDITOR.dom.range.prototype.createIterator = function()
- {
- return new iterator( this );
- };
-})();
diff --git a/devel/third-party/ckeditor/plugins/editingblock/plugin.js b/devel/third-party/ckeditor/plugins/editingblock/plugin.js
deleted file mode 100644
index 7dbb92c..0000000
--- a/devel/third-party/ckeditor/plugins/editingblock/plugin.js
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview The default editing block plugin, which holds the editing area
- * and source view.
- */
-
-(function()
-{
- var getMode = function( editor, mode )
- {
- return editor._.modes && editor._.modes[ mode || editor.mode ];
- };
-
- // This is a semaphore used to avoid recursive calls between
- // the following data handling functions.
- var isHandlingData;
-
- CKEDITOR.plugins.add( 'editingblock',
- {
- init : function( editor )
- {
- if ( !editor.config.editingBlock )
- return;
-
- editor.on( 'themeSpace', function( event )
- {
- if ( event.data.space == 'contents' )
- event.data.html += '<br>';
- });
-
- editor.on( 'themeLoaded', function()
- {
- editor.fireOnce( 'editingBlockReady' );
- });
-
- editor.on( 'uiReady', function()
- {
- editor.setMode( editor.config.startupMode );
- });
-
- editor.on( 'afterSetData', function()
- {
- if ( !isHandlingData )
- {
- function setData()
- {
- isHandlingData = true;
- getMode( editor ).loadData( editor.getData() );
- isHandlingData = false;
- }
-
- if ( editor.mode )
- setData();
- else
- {
- editor.on( 'mode', function()
- {
- setData();
- editor.removeListener( 'mode', arguments.callee );
- });
- }
- }
- });
-
- editor.on( 'beforeGetData', function()
- {
- if ( !isHandlingData && editor.mode )
- {
- isHandlingData = true;
- editor.setData( getMode( editor ).getData() );
- isHandlingData = false;
- }
- });
-
- editor.on( 'getSnapshot', function( event )
- {
- if ( editor.mode )
- event.data = getMode( editor ).getSnapshotData();
- });
-
- editor.on( 'loadSnapshot', function( event )
- {
- if ( editor.mode )
- getMode( editor ).loadSnapshotData( event.data );
- });
-
- // For the first "mode" call, we'll also fire the "instanceReady"
- // event.
- editor.on( 'mode', function( event )
- {
- // Do that once only.
- event.removeListener();
-
- // Redirect the focus into editor for webkit. (#5713)
- CKEDITOR.env.webkit && editor.container.on( 'focus', function()
- {
- editor.focus();
- });
-
- if ( editor.config.startupFocus )
- editor.focus();
-
- // Fire instanceReady for both the editor and CKEDITOR, but
- // defer this until the whole execution has completed
- // to guarantee the editor is fully responsible.
- setTimeout( function(){
- editor.fireOnce( 'instanceReady' );
- CKEDITOR.fire( 'instanceReady', null, editor );
- }, 0 );
- });
- }
- });
-
- /**
- * The current editing mode. An editing mode is basically a viewport for
- * editing or content viewing. By default the possible values for this
- * property are "wysiwyg" and "source".
- * @type String
- * @example
- * alert( CKEDITOR.instances.editor1.mode ); // "wysiwyg" (e.g.)
- */
- CKEDITOR.editor.prototype.mode = '';
-
- /**
- * Registers an editing mode. This function is to be used mainly by plugins.
- * @param {String} mode The mode name.
- * @param {Object} modeEditor The mode editor definition.
- * @example
- */
- CKEDITOR.editor.prototype.addMode = function( mode, modeEditor )
- {
- modeEditor.name = mode;
- ( this._.modes || ( this._.modes = {} ) )[ mode ] = modeEditor;
- };
-
- /**
- * Sets the current editing mode in this editor instance.
- * @param {String} mode A registered mode name.
- * @example
- * // Switch to "source" view.
- * CKEDITOR.instances.editor1.setMode( 'source' );
- */
- CKEDITOR.editor.prototype.setMode = function( mode )
- {
- var data,
- holderElement = this.getThemeSpace( 'contents' ),
- isDirty = this.checkDirty();
-
- // Unload the previous mode.
- if ( this.mode )
- {
- if ( mode == this.mode )
- return;
-
- this.fire( 'beforeModeUnload' );
-
- var currentMode = getMode( this );
- data = currentMode.getData();
- currentMode.unload( holderElement );
- this.mode = '';
- }
-
- holderElement.setHtml( '' );
-
- // Load required mode.
- var modeEditor = getMode( this, mode );
- if ( !modeEditor )
- throw '[CKEDITOR.editor.setMode] Unknown mode "' + mode + '".';
-
- if ( !isDirty )
- {
- this.on( 'mode', function()
- {
- this.resetDirty();
- this.removeListener( 'mode', arguments.callee );
- });
- }
-
- modeEditor.load( holderElement, ( typeof data ) != 'string' ? this.getData() : data);
- };
-
- /**
- * Moves the selection focus to the editing are space in the editor.
- */
- CKEDITOR.editor.prototype.focus = function()
- {
- var mode = getMode( this );
- if ( mode )
- mode.focus();
- };
-})();
-
-/**
- * The mode to load at the editor startup. It depends on the plugins
- * loaded. By default, the "wysiwyg" and "source" modes are available.
- * @type String
- * @default 'wysiwyg'
- * @example
- * config.startupMode = 'source';
- */
-CKEDITOR.config.startupMode = 'wysiwyg';
-
-/**
- * Sets whether the editor should have the focus when the page loads.
- * @type Boolean
- * @default false
- * @example
- * config.startupFocus = true;
- */
-CKEDITOR.config.startupFocus = false;
-
-/**
- * Whether to render or not the editing block area in the editor interface.
- * @type Boolean
- * @default true
- * @example
- * config.editingBlock = false;
- */
-CKEDITOR.config.editingBlock = true;
-
-/**
- * Fired when a CKEDITOR instance is created, fully initialized and ready for interaction.
- * @name CKEDITOR#instanceReady
- * @event
- * @param {CKEDITOR.editor} editor The editor instance that has been created.
- */
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/af.js b/devel/third-party/ckeditor/plugins/elementspath/lang/af.js
new file mode 100644
index 0000000..bdc8c89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'af', {
+ eleLabel: 'Elemente-pad',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ar.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ar.js
new file mode 100644
index 0000000..1f761be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ar', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: 'Ø¹ÙØµØ± 1%'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/bg.js b/devel/third-party/ckeditor/plugins/elementspath/lang/bg.js
new file mode 100644
index 0000000..43d4950
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'bg', {
+ eleLabel: 'ÐÑÑ Ð·Ð° елеменÑиÑе',
+ eleTitle: '%1 елеменÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/bn.js b/devel/third-party/ckeditor/plugins/elementspath/lang/bn.js
new file mode 100644
index 0000000..bb2b4d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'bn', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/bs.js b/devel/third-party/ckeditor/plugins/elementspath/lang/bs.js
new file mode 100644
index 0000000..5fbe1a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'bs', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ca.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ca.js
new file mode 100644
index 0000000..c091572
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ca', {
+ eleLabel: 'Elements path',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/cs.js b/devel/third-party/ckeditor/plugins/elementspath/lang/cs.js
new file mode 100644
index 0000000..3087cf6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'cs', {
+ eleLabel: 'Cesta objektu',
+ eleTitle: '%1 objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/cy.js b/devel/third-party/ckeditor/plugins/elementspath/lang/cy.js
new file mode 100644
index 0000000..cc4e37b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'cy', {
+ eleLabel: 'Llwybr elfennau',
+ eleTitle: 'Elfen %1'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/da.js b/devel/third-party/ckeditor/plugins/elementspath/lang/da.js
new file mode 100644
index 0000000..5dab67e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'da', {
+ eleLabel: 'Sti på element',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/de.js b/devel/third-party/ckeditor/plugins/elementspath/lang/de.js
new file mode 100644
index 0000000..1fcfe85
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'de', {
+ eleLabel: 'Elements Pfad',
+ eleTitle: '%1 Element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/el.js b/devel/third-party/ckeditor/plugins/elementspath/lang/el.js
new file mode 100644
index 0000000..b718fc4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'el', {
+ eleLabel: 'ÎιαδÏομή ÏÏοιÏείÏν',
+ eleTitle: '%1 ÏÏοιÏείο'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/en-au.js b/devel/third-party/ckeditor/plugins/elementspath/lang/en-au.js
new file mode 100644
index 0000000..1cacb1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'en-au', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/en-ca.js b/devel/third-party/ckeditor/plugins/elementspath/lang/en-ca.js
new file mode 100644
index 0000000..bfc7c87
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'en-ca', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/en-gb.js b/devel/third-party/ckeditor/plugins/elementspath/lang/en-gb.js
new file mode 100644
index 0000000..d33d8bc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'en-gb', {
+ eleLabel: 'Elements path',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/en.js b/devel/third-party/ckeditor/plugins/elementspath/lang/en.js
new file mode 100644
index 0000000..ab34706
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'en', {
+ eleLabel: 'Elements path',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/eo.js b/devel/third-party/ckeditor/plugins/elementspath/lang/eo.js
new file mode 100644
index 0000000..31d2227
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'eo', {
+ eleLabel: 'Vojo al Elementoj',
+ eleTitle: '%1 elementoj'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/es.js b/devel/third-party/ckeditor/plugins/elementspath/lang/es.js
new file mode 100644
index 0000000..0ad9153
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'es', {
+ eleLabel: 'Ruta de los elementos',
+ eleTitle: '%1 elemento'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/et.js b/devel/third-party/ckeditor/plugins/elementspath/lang/et.js
new file mode 100644
index 0000000..1c65896
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'et', {
+ eleLabel: 'Elementide asukoht',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/eu.js b/devel/third-party/ckeditor/plugins/elementspath/lang/eu.js
new file mode 100644
index 0000000..21c2f89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'eu', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 elementua'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/fa.js b/devel/third-party/ckeditor/plugins/elementspath/lang/fa.js
new file mode 100644
index 0000000..9ecdab0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'fa', {
+ eleLabel: 'Ù
Ø³ÛØ± Ø¹ÙØ§ØµØ±',
+ eleTitle: '%1 Ø¹ÙØµØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/fi.js b/devel/third-party/ckeditor/plugins/elementspath/lang/fi.js
new file mode 100644
index 0000000..7cde658
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'fi', {
+ eleLabel: 'Elementin polku',
+ eleTitle: '%1 elementti'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/fo.js b/devel/third-party/ckeditor/plugins/elementspath/lang/fo.js
new file mode 100644
index 0000000..cbbe9db
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'fo', {
+ eleLabel: 'Slóð til elementir',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/elementspath/lang/fr-ca.js
new file mode 100644
index 0000000..76d3712
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'fr-ca', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/fr.js b/devel/third-party/ckeditor/plugins/elementspath/lang/fr.js
new file mode 100644
index 0000000..abc1514
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'fr', {
+ eleLabel: 'Elements path',
+ eleTitle: '%1 éléments'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/gl.js b/devel/third-party/ckeditor/plugins/elementspath/lang/gl.js
new file mode 100644
index 0000000..2dd8524
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'gl', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/gu.js b/devel/third-party/ckeditor/plugins/elementspath/lang/gu.js
new file mode 100644
index 0000000..0233690
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'gu', {
+ eleLabel: 'àªàª²à«àª®à«àª¨à«àªà«àª¸ નૠ',
+ eleTitle: 'àªàª²à«àª®à«àª¨à«àª %1'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/he.js b/devel/third-party/ckeditor/plugins/elementspath/lang/he.js
new file mode 100644
index 0000000..6a9c6ee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'he', {
+ eleLabel: '×¢×¥ ××××× ×××',
+ eleTitle: '%1 ×××× ×'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/hi.js b/devel/third-party/ckeditor/plugins/elementspath/lang/hi.js
new file mode 100644
index 0000000..56abbb3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'hi', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/hr.js b/devel/third-party/ckeditor/plugins/elementspath/lang/hr.js
new file mode 100644
index 0000000..83f06a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'hr', {
+ eleLabel: 'Putanja elemenata',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/hu.js b/devel/third-party/ckeditor/plugins/elementspath/lang/hu.js
new file mode 100644
index 0000000..e75b273
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'hu', {
+ eleLabel: 'Elem utak',
+ eleTitle: '%1 elem'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/is.js b/devel/third-party/ckeditor/plugins/elementspath/lang/is.js
new file mode 100644
index 0000000..a732d88
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'is', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/it.js b/devel/third-party/ckeditor/plugins/elementspath/lang/it.js
new file mode 100644
index 0000000..6e26916
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'it', {
+ eleLabel: 'Percorso degli elementi',
+ eleTitle: '%1 elemento'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ja.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ja.js
new file mode 100644
index 0000000..caf4703
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ja', {
+ eleLabel: 'ã¨ã¬ã¡ã³ããã¹',
+ eleTitle: '%1 ã¨ã¬ã¡ã³ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ka.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ka.js
new file mode 100644
index 0000000..eeb397f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ka', {
+ eleLabel: 'áááááá¢áá¡ ááá',
+ eleTitle: '%1 ááááááá¢á'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/km.js b/devel/third-party/ckeditor/plugins/elementspath/lang/km.js
new file mode 100644
index 0000000..0881d61
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'km', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ko.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ko.js
new file mode 100644
index 0000000..d370b33
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ko', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ku.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ku.js
new file mode 100644
index 0000000..3390e6b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ku', {
+ eleLabel: 'ÚÛÚÙÙÛ ØªÙØ®Ù
ÙکاÙ',
+ eleTitle: '%1 ØªÙØ®Ù
'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/lt.js b/devel/third-party/ckeditor/plugins/elementspath/lang/lt.js
new file mode 100644
index 0000000..0cd1af6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'lt', {
+ eleLabel: 'Elemento kelias',
+ eleTitle: '%1 elementas'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/lv.js b/devel/third-party/ckeditor/plugins/elementspath/lang/lv.js
new file mode 100644
index 0000000..016273a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'lv', {
+ eleLabel: 'Elementa ceļš',
+ eleTitle: '%1 elements'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/mk.js b/devel/third-party/ckeditor/plugins/elementspath/lang/mk.js
new file mode 100644
index 0000000..31ba8a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'mk', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/mn.js b/devel/third-party/ckeditor/plugins/elementspath/lang/mn.js
new file mode 100644
index 0000000..da87e11
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'mn', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ms.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ms.js
new file mode 100644
index 0000000..d12681d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ms', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/nb.js b/devel/third-party/ckeditor/plugins/elementspath/lang/nb.js
new file mode 100644
index 0000000..be5ca65
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'nb', {
+ eleLabel: 'Element-sti',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/nl.js b/devel/third-party/ckeditor/plugins/elementspath/lang/nl.js
new file mode 100644
index 0000000..4d1fe9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'nl', {
+ eleLabel: 'Elementenpad',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/no.js b/devel/third-party/ckeditor/plugins/elementspath/lang/no.js
new file mode 100644
index 0000000..95328a5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'no', {
+ eleLabel: 'Element-sti',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/pl.js b/devel/third-party/ckeditor/plugins/elementspath/lang/pl.js
new file mode 100644
index 0000000..de3e915
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'pl', {
+ eleLabel: 'Åcieżka elementów',
+ eleTitle: 'element %1'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/pt-br.js b/devel/third-party/ckeditor/plugins/elementspath/lang/pt-br.js
new file mode 100644
index 0000000..af8b371
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'pt-br', {
+ eleLabel: 'Caminho dos Elementos',
+ eleTitle: 'Elemento %1'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/pt.js b/devel/third-party/ckeditor/plugins/elementspath/lang/pt.js
new file mode 100644
index 0000000..2f6f465
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'pt', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ro.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ro.js
new file mode 100644
index 0000000..34d9ef5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ro', {
+ eleLabel: 'Calea elementelor',
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ru.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ru.js
new file mode 100644
index 0000000..ac67f77
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ru', {
+ eleLabel: 'ÐÑÑÑ ÑлеменÑов',
+ eleTitle: 'ÐÐ»ÐµÐ¼ÐµÐ½Ñ %1'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/sk.js b/devel/third-party/ckeditor/plugins/elementspath/lang/sk.js
new file mode 100644
index 0000000..6e50a55
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'sk', {
+ eleLabel: 'Cesta prvkov',
+ eleTitle: '%1 prvok'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/sl.js b/devel/third-party/ckeditor/plugins/elementspath/lang/sl.js
new file mode 100644
index 0000000..8d449a0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'sl', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/elementspath/lang/sr-latn.js
new file mode 100644
index 0000000..c27a873
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'sr-latn', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/sr.js b/devel/third-party/ckeditor/plugins/elementspath/lang/sr.js
new file mode 100644
index 0000000..e1f9014
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'sr', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/sv.js b/devel/third-party/ckeditor/plugins/elementspath/lang/sv.js
new file mode 100644
index 0000000..734f112
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'sv', {
+ eleLabel: 'Elementets sökväg',
+ eleTitle: '%1 element'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/th.js b/devel/third-party/ckeditor/plugins/elementspath/lang/th.js
new file mode 100644
index 0000000..1760022
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'th', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 element' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/tr.js b/devel/third-party/ckeditor/plugins/elementspath/lang/tr.js
new file mode 100644
index 0000000..5fb292a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'tr', {
+ eleLabel: 'Elementlerin yolu',
+ eleTitle: '%1 elementi'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/ug.js b/devel/third-party/ckeditor/plugins/elementspath/lang/ug.js
new file mode 100644
index 0000000..9af8c05
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'ug', {
+ eleLabel: 'ئÛÙÛÙ
ÛÙØª ÙÙÙÙ',
+ eleTitle: '%1 ئÛÙÛÙ
ÛÙØª'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/uk.js b/devel/third-party/ckeditor/plugins/elementspath/lang/uk.js
new file mode 100644
index 0000000..c299c26
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'uk', {
+ eleLabel: 'ШлÑÑ
',
+ eleTitle: '%1 елеменÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/vi.js b/devel/third-party/ckeditor/plugins/elementspath/lang/vi.js
new file mode 100644
index 0000000..9836145
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'vi', {
+ eleLabel: 'Nhãn thà nh phần',
+ eleTitle: '%1 thà nh phần'
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/elementspath/lang/zh-cn.js
new file mode 100644
index 0000000..0a5b23e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'zh-cn', {
+ eleLabel: 'å
ç´ è·¯å¾',
+ eleTitle: '%1 å
ç´ '
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/lang/zh.js b/devel/third-party/ckeditor/plugins/elementspath/lang/zh.js
new file mode 100644
index 0000000..6544813
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/elementspath/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'elementspath', 'zh', {
+ eleLabel: 'Elements path', // MISSING
+ eleTitle: '%1 å
ç´ '
+});
diff --git a/devel/third-party/ckeditor/plugins/elementspath/plugin.js b/devel/third-party/ckeditor/plugins/elementspath/plugin.js
index 47e7c47..6464120 100644
--- a/devel/third-party/ckeditor/plugins/elementspath/plugin.js
+++ b/devel/third-party/ckeditor/plugins/elementspath/plugin.js
@@ -1,206 +1,220 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "elementspath" plugin. It shows all elements in the DOM
* parent tree relative to the current selection in the editing area.
*/
-(function()
-{
- var commands =
- {
- toolbarFocus :
- {
- exec : function( editor )
- {
+(function() {
+ var commands = {
+ toolbarFocus: {
+ editorFocus: false,
+ readOnly: 1,
+ exec: function( editor ) {
var idBase = editor._.elementsPath.idBase;
var element = CKEDITOR.document.getById( idBase + '0' );
- if ( element )
- element.focus();
+ // Make the first button focus accessible for IE. (#3417)
+ // Adobe AIR instead need while of delay.
+ element && element.focus( CKEDITOR.env.ie || CKEDITOR.env.air );
}
}
};
- var emptyHtml = '<span class="cke_empty"> </span>';
-
- CKEDITOR.plugins.add( 'elementspath',
- {
- requires : [ 'selection' ],
-
- init : function( editor )
- {
- var spaceId = 'cke_path_' + editor.name;
+ var emptyHtml = '<span class="cke_path_empty"> </span>';
+
+ var extra = '';
+
+ // Some browsers don't cancel key events in the keydown but in the
+ // keypress.
+ // TODO: Check if really needed for Gecko+Mac.
+ if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
+ extra += ' onkeypress="return false;"';
+
+ // With Firefox, we need to force the button to redraw, otherwise it
+ // will remain in the focus state.
+ if ( CKEDITOR.env.gecko )
+ extra += ' onblur="this.style.cssText = this.style.cssText;"';
+
+ var pathItemTpl = CKEDITOR.addTemplate( 'pathItem', '<a' +
+ ' id="{id}"' +
+ ' href="{jsTitle}"' +
+ ' tabindex="-1"' +
+ ' class="cke_path_item"' +
+ ' title="{label}"' +
+ ( ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ? ' onfocus="event.preventBubble();"' : '' ) +
+ extra +
+ ' hidefocus="true" ' +
+ ' onkeydown="return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );"' +
+ ' onclick="CKEDITOR.tools.callFunction({clickFn},{index}); return false;"' +
+ ' role="button" aria-label="{label}">' +
+ '{text}' +
+ '</a>' );
+
+ CKEDITOR.plugins.add( 'elementspath', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ // Elements path isn't available in inline mode.
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
+ return;
+
+ var spaceId = editor.ui.spaceId( 'path' );
var spaceElement;
- var getSpaceElement = function()
- {
- if ( !spaceElement )
- spaceElement = CKEDITOR.document.getById( spaceId );
- return spaceElement;
- };
+ var getSpaceElement = function() {
+ if ( !spaceElement )
+ spaceElement = CKEDITOR.document.getById( spaceId );
+ return spaceElement;
+ };
var idBase = 'cke_elementspath_' + CKEDITOR.tools.getNextNumber() + '_';
- editor._.elementsPath = { idBase : idBase, filters : [] };
+ editor._.elementsPath = { idBase: idBase, filters: [] };
- editor.on( 'themeSpace', function( event )
- {
- if ( event.data.space == 'bottom' )
- {
- event.data.html +=
- '<span id="' + spaceId + '_label" class="cke_voice_label">' + editor.lang.elementsPath.eleLabel + '</span>' +
- '<div id="' + spaceId + '" class="cke_path" role="group" aria-labelledby="' + spaceId + '_label">' + emptyHtml + '</div>';
- }
- });
-
- editor.on( 'selectionChange', function( ev )
- {
- var env = CKEDITOR.env,
- selection = ev.data.selection,
- element = selection.getStartElement(),
- html = [],
- editor = ev.editor,
- elementsList = editor._.elementsPath.list = [],
- filters = editor._.elementsPath.filters;
-
- while ( element )
- {
- var ignore = 0;
- for ( var i = 0; i < filters.length; i++ )
- {
- if ( filters[ i ]( element ) === false )
- {
- ignore = 1;
- break;
- }
- }
+ editor.on( 'uiSpace', function( event ) {
+ if ( event.data.space == 'bottom' ) {
+ event.data.html += '<span id="' + spaceId + '_label" class="cke_voice_label">' + editor.lang.elementspath.eleLabel + '</span>' +
+ '<span id="' + spaceId + '" class="cke_path" role="group" aria-labelledby="' + spaceId + '_label">' + emptyHtml + '</span>';
+ }
+ });
- if ( !ignore )
- {
- var index = elementsList.push( element ) - 1;
- var name;
- if ( element.getAttribute( '_cke_real_element_type' ) )
- name = element.getAttribute( '_cke_real_element_type' );
- else
- name = element.getName();
-
- // Use this variable to add conditional stuff to the
- // HTML (because we are doing it in reverse order... unshift).
- var extra = '';
-
- // Some browsers don't cancel key events in the keydown but in the
- // keypress.
- // TODO: Check if really needed for Gecko+Mac.
- if ( env.opera || ( env.gecko && env.mac ) )
- extra += ' onkeypress="return false;"';
-
- // With Firefox, we need to force the button to redraw, otherwise it
- // will remain in the focus state.
- if ( env.gecko )
- extra += ' onblur="this.style.cssText = this.style.cssText;"';
-
- var label = editor.lang.elementsPath.eleTitle.replace( /%1/, name );
- html.unshift(
- '<a' +
- ' id="', idBase, index, '"' +
- ' href="javascript:void(\'', name, '\')"' +
- ' tabindex="-1"' +
- ' title="', label, '"' +
- ( ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ?
- ' onfocus="event.preventBubble();"' : '' ) +
- ' hidefocus="true" ' +
- ' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', editor.name, '\',', index, ', event);"' +
- extra ,
- ' onclick="return CKEDITOR._.elementsPath.click(\'', editor.name, '\',', index, ');"',
- ' role="button" aria-labelledby="' + idBase + index + '_label">',
- name,
- '<span id="', idBase, index, '_label" class="cke_label">' + label + '</span>',
- '</a>' );
+ // Register the ui element to the focus manager.
+ editor.on( 'uiReady', function() {
+ var element = editor.ui.space( 'path' );
+ element && editor.focusManager.add( element, 1 );
+ });
- }
- if ( name == 'body' )
+ function onClick( elementIndex ) {
+ editor.focus();
+ var element = editor._.elementsPath.list[ elementIndex ];
+ if ( element.equals( editor.editable() ) ) {
+ var range = editor.createRange();
+ range.selectNodeContents( element );
+ range.select();
+ } else
+ editor.getSelection().selectElement( element );
+ }
+
+ var onClickHanlder = CKEDITOR.tools.addFunction( onClick );
+
+ var onKeyDownHandler = CKEDITOR.tools.addFunction( function( elementIndex, ev ) {
+ var idBase = editor._.elementsPath.idBase,
+ element;
+
+ ev = new CKEDITOR.dom.event( ev );
+
+ var rtl = editor.lang.dir == 'rtl';
+ switch ( ev.getKeystroke() ) {
+ case rtl ? 39:
+ 37 : // LEFT-ARROW
+ case 9: // TAB
+ element = CKEDITOR.document.getById( idBase + ( elementIndex + 1 ) );
+ if ( !element )
+ element = CKEDITOR.document.getById( idBase + '0' );
+ element.focus();
+ return false;
+
+ case rtl ? 37:
+ 39 : // RIGHT-ARROW
+ case CKEDITOR.SHIFT + 9: // SHIFT + TAB
+ element = CKEDITOR.document.getById( idBase + ( elementIndex - 1 ) );
+ if ( !element )
+ element = CKEDITOR.document.getById( idBase + ( editor._.elementsPath.list.length - 1 ) );
+ element.focus();
+ return false;
+
+ case 27: // ESC
+ editor.focus();
+ return false;
+
+ case 13: // ENTER // Opera
+ case 32: // SPACE
+ onClick( elementIndex );
+ return false;
+ }
+ return true;
+ });
+
+ editor.on( 'selectionChange', function( ev ) {
+ var env = CKEDITOR.env,
+ editable = editor.editable(),
+ selection = ev.data.selection,
+ element = selection.getStartElement(),
+ html = [],
+ elementsList = editor._.elementsPath.list = [],
+ filters = editor._.elementsPath.filters;
+
+ while ( element ) {
+ var ignore = 0,
+ name;
+
+ if ( element.data( 'cke-display-name' ) )
+ name = element.data( 'cke-display-name' );
+ else if ( element.data( 'cke-real-element-type' ) )
+ name = element.data( 'cke-real-element-type' );
+ else
+ name = element.getName();
+
+ for ( var i = 0; i < filters.length; i++ ) {
+ var ret = filters[ i ]( element, name );
+ if ( ret === false ) {
+ ignore = 1;
break;
+ }
+ name = ret || name;
+ }
+
+ if ( !ignore ) {
+ var index = elementsList.push( element ) - 1,
+ label = editor.lang.elementspath.eleTitle.replace( /%1/, name );
+
+ var item = pathItemTpl.output({
+ id: idBase + index,
+ label: label,
+ text: name,
+ jsTitle: 'javascript:void(\'' + name + '\')',
+ index: index,
+ keyDownFn: onKeyDownHandler,
+ clickFn: onClickHanlder
+ });
+ html.unshift( item );
- element = element.getParent();
}
- getSpaceElement().setHtml( html.join('') + emptyHtml );
- });
+ if ( element.equals( editable ) )
+ break;
+
+ element = element.getParent();
+ }
+
+ var space = getSpaceElement();
+ space.setHtml( html.join( '' ) + emptyHtml );
+ editor.fire( 'elementsPathUpdate', { space: space } );
+ });
+
+ function empty() {
+ spaceElement && spaceElement.setHtml( emptyHtml );
+ delete editor._.elementsPath.list;
+ }
- editor.on( 'contentDomUnload', function()
- {
- // If the spaceElement hasn't been initialized, don't try to do it at this time
- // Only reuse existing reference.
- spaceElement && spaceElement.setHtml( emptyHtml );
- });
+ editor.on( 'readOnly', empty );
+ editor.on( 'contentDomUnload', empty );
editor.addCommand( 'elementsPathFocus', commands.toolbarFocus );
+ editor.setKeystroke( CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' );
}
});
})();
/**
- * Handles the click on an element in the element path.
- * @private
+ * Fired when the contents of the elementsPath are changed.
+ *
+ * @event elementsPathUpdate
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {CKEDITOR.dom.element} data.space The elementsPath container.
*/
-CKEDITOR._.elementsPath =
-{
- click : function( instanceName, elementIndex )
- {
- var editor = CKEDITOR.instances[ instanceName ];
- editor.focus();
-
- var element = editor._.elementsPath.list[ elementIndex ];
- editor.getSelection().selectElement( element );
-
- return false;
- },
-
- keydown : function( instanceName, elementIndex, ev )
- {
- var instance = CKEDITOR.ui.button._.instances[ elementIndex ];
- var editor = CKEDITOR.instances[ instanceName ];
- var idBase = editor._.elementsPath.idBase;
-
- var element;
-
- ev = new CKEDITOR.dom.event( ev );
-
- var rtl = editor.lang.dir == 'rtl';
- switch ( ev.getKeystroke() )
- {
- case rtl ? 39 : 37 : // LEFT-ARROW
- case 9 : // TAB
- element = CKEDITOR.document.getById( idBase + ( elementIndex + 1 ) );
- if ( !element )
- element = CKEDITOR.document.getById( idBase + '0' );
- element.focus();
- return false;
-
- case rtl ? 37 : 39 : // RIGHT-ARROW
- case CKEDITOR.SHIFT + 9 : // SHIFT + TAB
- element = CKEDITOR.document.getById( idBase + ( elementIndex - 1 ) );
- if ( !element )
- element = CKEDITOR.document.getById( idBase + ( editor._.elementsPath.list.length - 1 ) );
- element.focus();
- return false;
-
- case 27 : // ESC
- editor.focus();
- return false;
-
- case 13 : // ENTER // Opera
- case 32 : // SPACE
- this.click( instanceName, elementIndex );
- return false;
-
- //default :
- // alert( ev.getKeystroke() );
- }
- return true;
- }
-};
diff --git a/devel/third-party/ckeditor/plugins/enterkey/plugin.js b/devel/third-party/ckeditor/plugins/enterkey/plugin.js
index f383fb4..4c077c3 100644
--- a/devel/third-party/ckeditor/plugins/enterkey/plugin.js
+++ b/devel/third-party/ckeditor/plugins/enterkey/plugin.js
@@ -1,26 +1,40 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- CKEDITOR.plugins.add( 'enterkey',
- {
- requires : [ 'keystrokes', 'indent' ],
-
- init : function( editor )
- {
- var specialKeys = editor.specialKeys;
- specialKeys[ 13 ] = enter;
- specialKeys[ CKEDITOR.SHIFT + 13 ] = shiftEnter;
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ CKEDITOR.plugins.add( 'enterkey', {
+ // TODO: should not depend on a particular format plugin.
+ requires: 'indent',
+
+ init: function( editor ) {
+ editor.addCommand( 'enter', { modes:{wysiwyg:1 },
+ editorFocus: false,
+ exec: function( editor ) {
+ enter( editor );
+ }
+ });
+
+ editor.addCommand( 'shiftEnter', { modes:{wysiwyg:1 },
+ editorFocus: false,
+ exec: function( editor ) {
+ shiftEnter( editor );
+ }
+ });
+
+ editor.setKeystroke( [
+ [ 13, 'enter' ],
+ [ CKEDITOR.SHIFT + 13, 'shiftEnter' ]
+ ] );
}
});
- CKEDITOR.plugins.enterkey =
- {
- enterBlock : function( editor, mode, range, forceMode )
- {
+ var whitespaces = CKEDITOR.dom.walker.whitespaces(),
+ bookmark = CKEDITOR.dom.walker.bookmark();
+
+ CKEDITOR.plugins.enterkey = {
+ enterBlock: function( editor, mode, range, forceMode ) {
// Get the range for the current selection.
range = range || getRange( editor );
@@ -31,17 +45,41 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var doc = range.document;
- // Exit the list when we're inside an empty list item block. (#5376)
- if ( range.checkStartOfBlock() && range.checkEndOfBlock() )
- {
- var path = new CKEDITOR.dom.elementPath( range.startContainer ),
- block = path.block;
+ var atBlockStart = range.checkStartOfBlock(),
+ atBlockEnd = range.checkEndOfBlock(),
+ path = editor.elementPath( range.startContainer ),
+ block = path.block;
- if ( block && ( block.is( 'li' ) || block.getParent().is( 'li' ) ) )
- {
+ // Exit the list when we're inside an empty list item block. (#5376)
+ if ( atBlockStart && atBlockEnd ) {
+ // Exit the list when we're inside an empty list item block. (#5376)
+ if ( block && ( block.is( 'li' ) || block.getParent().is( 'li' ) ) ) {
editor.execCommand( 'outdent' );
return;
}
+
+ if ( block && block.getParent().is( 'blockquote' ) ) {
+ block.breakParent( block.getParent() );
+
+ // If we were at the start of <blockquote>, there will be an empty element before it now.
+ if ( !block.getPrevious().getFirst( CKEDITOR.dom.walker.invisible( 1 ) ) )
+ block.getPrevious().remove();
+
+ // If we were at the end of <blockquote>, there will be an empty element after it now.
+ if ( !block.getNext().getFirst( CKEDITOR.dom.walker.invisible( 1 ) ) )
+ block.getNext().remove();
+
+ range.moveToElementEditStart( block );
+ range.select();
+ return;
+ }
+ }
+ // Don't split <pre> if we're in the middle of it, act as shift enter key.
+ else if ( block && block.is( 'pre' ) ) {
+ if ( !atBlockEnd ) {
+ enterBr( editor, mode, range, forceMode );
+ return;
+ }
}
// Determine the block element to be used.
@@ -54,68 +92,76 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return;
// Get the current blocks.
- var previousBlock = splitInfo.previousBlock,
- nextBlock = splitInfo.nextBlock;
+ var previousBlock = splitInfo.previousBlock,
+ nextBlock = splitInfo.nextBlock;
- var isStartOfBlock = splitInfo.wasStartOfBlock,
- isEndOfBlock = splitInfo.wasEndOfBlock;
+ var isStartOfBlock = splitInfo.wasStartOfBlock,
+ isEndOfBlock = splitInfo.wasEndOfBlock;
var node;
// If this is a block under a list item, split it as well. (#1647)
- if ( nextBlock )
- {
+ if ( nextBlock ) {
node = nextBlock.getParent();
- if ( node.is( 'li' ) )
- {
+ if ( node.is( 'li' ) ) {
nextBlock.breakParent( node );
- nextBlock.move( nextBlock.getNext(), true );
+ nextBlock.move( nextBlock.getNext(), 1 );
}
- }
- else if ( previousBlock && ( node = previousBlock.getParent() ) && node.is( 'li' ) )
- {
+ } else if ( previousBlock && ( node = previousBlock.getParent() ) && node.is( 'li' ) ) {
previousBlock.breakParent( node );
- range.moveToElementEditStart( previousBlock.getNext() );
+ node = previousBlock.getNext();
+ range.moveToElementEditStart( node );
previousBlock.move( previousBlock.getPrevious() );
}
// If we have both the previous and next blocks, it means that the
// boundaries were on separated blocks, or none of them where on the
// block limits (start/end).
- if ( !isStartOfBlock && !isEndOfBlock )
- {
+ if ( !isStartOfBlock && !isEndOfBlock ) {
// If the next block is an <li> with another list tree as the first
// child, we'll need to append a filler (<br>/NBSP) or the list item
// wouldn't be editable. (#1420)
- if ( nextBlock.is( 'li' )
- && ( node = nextBlock.getFirst( CKEDITOR.dom.walker.invisible( true ) ) )
- && node.is && node.is( 'ul', 'ol' ) )
- ( CKEDITOR.env.ie ? doc.createText( '\xa0' ) : doc.createElement( 'br' ) ).insertBefore( node );
+ if ( nextBlock.is( 'li' ) ) {
+ var walkerRange = range.clone();
+ walkerRange.selectNodeContents( nextBlock );
+ var walker = new CKEDITOR.dom.walker( walkerRange );
+ walker.evaluator = function( node ) {
+ return !( bookmark( node ) || whitespaces( node ) || node.type == CKEDITOR.NODE_ELEMENT && node.getName() in CKEDITOR.dtd.$inline && !( node.getName() in CKEDITOR.dtd.$empty ) );
+ };
+
+ node = walker.next();
+ if ( node && node.type == CKEDITOR.NODE_ELEMENT && node.is( 'ul', 'ol' ) ) {
+ ( CKEDITOR.env.ie ? doc.createText( '\xa0' ) : doc.createElement( 'br' ) ).insertBefore( node );
+ }
+ }
// Move the selection to the end block.
if ( nextBlock )
range.moveToElementEditStart( nextBlock );
- }
- else
- {
- var newBlock;
+ } else {
+ var newBlock, newBlockDir;
- if ( previousBlock )
- {
+ if ( previousBlock ) {
// Do not enter this block if it's a header tag, or we are in
// a Shift+Enter (#77). Create a new block element instead
// (later in the code).
- if ( previousBlock.is( 'li' ) || !headerTagRegex.test( previousBlock.getName() ) )
- {
+ if ( previousBlock.is( 'li' ) || !( headerTagRegex.test( previousBlock.getName() ) || previousBlock.is( 'pre' ) ) ) {
// Otherwise, duplicate the previous block.
newBlock = previousBlock.clone();
}
- }
- else if ( nextBlock )
+ } else if ( nextBlock )
newBlock = nextBlock.clone();
- if ( !newBlock )
- newBlock = doc.createElement( blockTag );
+ if ( !newBlock ) {
+ // We have already created a new list item. (#6849)
+ if ( node && node.is( 'li' ) )
+ newBlock = node;
+ else {
+ newBlock = doc.createElement( blockTag );
+ if ( previousBlock && ( newBlockDir = previousBlock.getDirection() ) )
+ newBlock.setAttribute( 'dir', newBlockDir );
+ }
+ }
// Force the enter block unless we're talking of a list item.
else if ( forceMode && !newBlock.is( 'li' ) )
newBlock.renameNode( blockTag );
@@ -124,17 +170,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// before hitting enter, so the same styles will be available in
// the new block.
var elementPath = splitInfo.elementPath;
- if ( elementPath )
- {
- for ( var i = 0, len = elementPath.elements.length ; i < len ; i++ )
- {
+ if ( elementPath ) {
+ for ( var i = 0, len = elementPath.elements.length; i < len; i++ ) {
var element = elementPath.elements[ i ];
if ( element.equals( elementPath.block ) || element.equals( elementPath.blockLimit ) )
break;
- if ( CKEDITOR.dtd.$removeEmpty[ element.getName() ] )
- {
+ if ( CKEDITOR.dtd.$removeEmpty[ element.getName() ] ) {
element = element.clone();
newBlock.moveChildren( element );
newBlock.append( element );
@@ -145,15 +188,19 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( !CKEDITOR.env.ie )
newBlock.appendBogus();
- range.insertNode( newBlock );
+ if ( !newBlock.getParent() )
+ range.insertNode( newBlock );
+
+ // list item start number should not be duplicated (#7330), but we need
+ // to remove the attribute after it's onto the DOM tree because of old IEs (#7581).
+ newBlock.is( 'li' ) && newBlock.removeAttribute( 'value' );
// This is tricky, but to make the new block visible correctly
// we must select it.
// The previousBlock check has been included because it may be
// empty if we have fixed a block-less space (like ENTER into an
// empty table cell).
- if ( CKEDITOR.env.ie && isStartOfBlock && ( !isEndOfBlock || !previousBlock.getChildCount() ) )
- {
+ if ( CKEDITOR.env.ie && isStartOfBlock && ( !isEndOfBlock || !previousBlock.getChildCount() ) ) {
// Move the selection to the new block.
range.moveToElementEditStart( isEndOfBlock ? previousBlock : newBlock );
range.select();
@@ -161,36 +208,13 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Move the selection to the new block.
range.moveToElementEditStart( isStartOfBlock && !isEndOfBlock ? nextBlock : newBlock );
- }
-
- if ( !CKEDITOR.env.ie )
- {
- if ( nextBlock )
- {
- // If we have split the block, adds a temporary span at the
- // range position and scroll relatively to it.
- var tmpNode = doc.createElement( 'span' );
-
- // We need some content for Safari.
- tmpNode.setHtml( ' ' );
-
- range.insertNode( tmpNode );
- tmpNode.scrollIntoView();
- range.deleteContents();
- }
- else
- {
- // We may use the above scroll logic for the new block case
- // too, but it gives some weird result with Opera.
- newBlock.scrollIntoView();
- }
}
range.select();
+ range.scrollIntoView();
},
- enterBr : function( editor, mode, range, forceMode )
- {
+ enterBr: function( editor, mode, range, forceMode ) {
// Get the range for the current selection.
range = range || getRange( editor );
@@ -213,86 +237,70 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var isPre = false;
- if ( !forceMode && startBlockTag == 'li' )
- {
+ if ( !forceMode && startBlockTag == 'li' ) {
enterBlock( editor, mode, range, forceMode );
return;
}
// If we are at the end of a header block.
- if ( !forceMode && isEndOfBlock && headerTagRegex.test( startBlockTag ) )
- {
- // Insert a <br> after the current paragraph.
- doc.createElement( 'br' ).insertAfter( startBlock );
-
- // A text node is required by Gecko only to make the cursor blink.
- if ( CKEDITOR.env.gecko )
- doc.createText( '' ).insertAfter( startBlock );
-
- // IE has different behaviors regarding position.
- range.setStartAt( startBlock.getNext(), CKEDITOR.env.ie ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_START );
- }
- else
- {
+ if ( !forceMode && isEndOfBlock && headerTagRegex.test( startBlockTag ) ) {
+ var newBlock, newBlockDir;
+
+ if ( ( newBlockDir = startBlock.getDirection() ) ) {
+ newBlock = doc.createElement( 'div' );
+ newBlock.setAttribute( 'dir', newBlockDir );
+ newBlock.insertAfter( startBlock );
+ range.setStart( newBlock, 0 );
+ } else {
+ // Insert a <br> after the current paragraph.
+ doc.createElement( 'br' ).insertAfter( startBlock );
+
+ // A text node is required by Gecko only to make the cursor blink.
+ if ( CKEDITOR.env.gecko )
+ doc.createText( '' ).insertAfter( startBlock );
+
+ // IE has different behaviors regarding position.
+ range.setStartAt( startBlock.getNext(), CKEDITOR.env.ie ? CKEDITOR.POSITION_BEFORE_START : CKEDITOR.POSITION_AFTER_START );
+ }
+ } else {
var lineBreak;
- isPre = ( startBlockTag == 'pre' );
-
- // Gecko prefers <br> as line-break inside <pre> (#4711).
- if ( isPre && !CKEDITOR.env.gecko )
- lineBreak = doc.createText( CKEDITOR.env.ie ? '\r' : '\n' );
+ // IE<8 prefers text node as line-break inside of <pre> (#4711).
+ if ( startBlockTag == 'pre' && CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
+ lineBreak = doc.createText( '\r' );
else
lineBreak = doc.createElement( 'br' );
range.deleteContents();
range.insertNode( lineBreak );
- // A text node is required by Gecko only to make the cursor blink.
- // We need some text inside of it, so the bogus <br> is properly
- // created.
- if ( !CKEDITOR.env.ie )
+ // IE has different behavior regarding position.
+ if ( CKEDITOR.env.ie )
+ range.setStartAt( lineBreak, CKEDITOR.POSITION_AFTER_END );
+ else {
+ // A text node is required by Gecko only to make the cursor blink.
+ // We need some text inside of it, so the bogus <br> is properly
+ // created.
doc.createText( '\ufeff' ).insertAfter( lineBreak );
- // If we are at the end of a block, we must be sure the bogus node is available in that block.
- if ( isEndOfBlock && !CKEDITOR.env.ie )
- lineBreak.getParent().appendBogus();
+ // If we are at the end of a block, we must be sure the bogus node is available in that block.
+ if ( isEndOfBlock )
+ lineBreak.getParent().appendBogus();
- // Now we can remove the text node contents, so the caret doesn't
- // stop on it.
- if ( !CKEDITOR.env.ie )
+ // Now we can remove the text node contents, so the caret doesn't
+ // stop on it.
lineBreak.getNext().$.nodeValue = '';
- // IE has different behavior regarding position.
- if ( CKEDITOR.env.ie )
- range.setStartAt( lineBreak, CKEDITOR.POSITION_AFTER_END );
- else
- range.setStartAt( lineBreak.getNext(), CKEDITOR.POSITION_AFTER_START );
- // Scroll into view, for non IE.
- if ( !CKEDITOR.env.ie )
- {
- var dummy = null;
-
- // BR is not positioned in Opera and Webkit.
- if ( !CKEDITOR.env.gecko )
- {
- dummy = doc.createElement( 'span' );
- // We need have some contents for Webkit to position it
- // under parent node. ( #3681)
- dummy.setHtml(' ');
- }
- else
- dummy = doc.createElement( 'br' );
+ range.setStartAt( lineBreak.getNext(), CKEDITOR.POSITION_AFTER_START );
- dummy.insertBefore( lineBreak.getNext() );
- dummy.scrollIntoView();
- dummy.remove();
}
}
// This collapse guarantees the cursor will be blinking.
range.collapse( true );
- range.select( isPre );
+ range.select();
+ range.scrollIntoView();
}
};
@@ -301,8 +309,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
enterBlock = plugin.enterBlock,
headerTagRegex = /^h[1-6]$/;
- function shiftEnter( editor )
- {
+ function shiftEnter( editor ) {
// Only effective within document.
if ( editor.mode != 'wysiwyg' )
return false;
@@ -310,18 +317,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// On SHIFT+ENTER:
// 1. We want to enforce the mode to be respected, instead
// of cloning the current block. (#77)
- // 2. Always perform a block break when inside <pre> (#5402).
- if ( editor.getSelection().getStartElement().hasAscendant( 'pre', true ) )
- {
- setTimeout( function() { enterBlock( editor, editor.config.enterMode, null, true ); }, 0 );
- return true;
- }
- else
- return enter( editor, editor.config.shiftEnterMode, true );
+ return enter( editor, editor.config.shiftEnterMode, 1 );
}
- function enter( editor, mode, forceMode )
- {
+ function enter( editor, mode, forceMode ) {
forceMode = editor.config.forceEnterMode || forceMode;
// Only effective within document.
@@ -331,29 +330,33 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( !mode )
mode = editor.config.enterMode;
- // Use setTimout so the keys get cancelled immediatelly.
- setTimeout( function()
- {
- editor.fire( 'saveSnapshot' ); // Save undo step.
- if ( mode == CKEDITOR.ENTER_BR || editor.getSelection().getStartElement().hasAscendant( 'pre', true ) )
- enterBr( editor, mode, null, forceMode );
- else
- enterBlock( editor, mode, null, forceMode );
+ // Check path block specialities:
+ // 1. Cannot be a un-splittable element, e.g. table caption;
+ // 2. Must not be the editable element itself. (blockless)
+ var path = editor.elementPath();
+ if ( !path.isContextFor( 'p' ) ) {
+ mode = CKEDITOR.ENTER_BR;
+ forceMode = 1;
+ }
- }, 0 );
+ editor.fire( 'saveSnapshot' ); // Save undo step.
+
+ if ( mode == CKEDITOR.ENTER_BR )
+ enterBr( editor, mode, null, forceMode );
+ else
+ enterBlock( editor, mode, null, forceMode );
+
+ editor.fire( 'saveSnapshot' );
return true;
}
-
- function getRange( editor )
- {
+ function getRange( editor ) {
// Get the selection ranges.
var ranges = editor.getSelection().getRanges( true );
// Delete the contents of all ranges except the first one.
- for ( var i = ranges.length - 1 ; i > 0 ; i-- )
- {
+ for ( var i = ranges.length - 1; i > 0; i-- ) {
ranges[ i ].deleteContents();
}
diff --git a/devel/third-party/ckeditor/plugins/enterkey/samples/enterkey.html b/devel/third-party/ckeditor/plugins/enterkey/samples/enterkey.html
new file mode 100644
index 0000000..c2b19b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/enterkey/samples/enterkey.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>ENTER Key Configuration — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <script src="../../../ckeditor.js"></script>
+ <link href="../../../samples/sample.css" rel="stylesheet">
+ <meta name="ckeditor-sample-name" content="Using the "Enter" key in CKEditor">
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
+ <meta name="ckeditor-sample-description" content="Configuring the behavior of <em>Enter</em> and <em>Shift+Enter</em> keys.">
+ <script>
+
+ var editor;
+
+ function changeEnter() {
+ // If we already have an editor, let's destroy it first.
+ if ( editor )
+ editor.destroy( true );
+
+ // Create the editor again, with the appropriate settings.
+ editor = CKEDITOR.replace( 'editor1', {
+ extraPlugins: 'enterkey',
+ enterMode: Number( document.getElementById( 'xEnter' ).value ),
+ shiftEnterMode: Number( document.getElementById( 'xShiftEnter' ).value )
+ });
+ }
+
+ window.onload = changeEnter;
+
+ </script>
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » ENTER Key Configuration
+ </h1>
+ <div class="description">
+ <p>
+ This sample shows how to configure the <em>Enter</em> and <em>Shift+Enter</em> keys
+ to perform actions specified in the
+ <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode"><code>enterMode</code></a>
+ and <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode"><code>shiftEnterMode</code></a>
+ parameters, respectively.
+ You can choose from the following options:
+ </p>
+ <ul class="samples">
+ <li><strong><code>ENTER_P</code></strong> – new <code><p></code> paragraphs are created;</li>
+ <li><strong><code>ENTER_BR</code></strong> – lines are broken with <code><br></code> elements;</li>
+ <li><strong><code>ENTER_DIV</code></strong> – new <code><div></code> blocks are created.</li>
+ </ul>
+ <p>
+ The sample code below shows how to configure CKEditor to create a <code><div></code> block when <em>Enter</em> key is pressed.
+ </p>
+<pre class="samples">
+CKEDITOR.replace( '<em>textarea_id</em>', {
+ <strong>enterMode: CKEDITOR.ENTER_DIV</strong>
+});</pre>
+ <p>
+ Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+ the <code><textarea></code> element to be replaced.
+ </p>
+ </div>
+ <div style="float: left; margin-right: 20px">
+ When <em>Enter</em> is pressed:<br>
+ <select id="xEnter" onchange="changeEnter();">
+ <option selected="selected" value="1">Create a new <P> (recommended)</option>
+ <option value="3">Create a new <DIV></option>
+ <option value="2">Break the line with a <BR></option>
+ </select>
+ </div>
+ <div style="float: left">
+ When <em>Shift+Enter</em> is pressed:<br>
+ <select id="xShiftEnter" onchange="changeEnter();">
+ <option value="1">Create a new <P></option>
+ <option value="3">Create a new <DIV></option>
+ <option selected="selected" value="2">Break the line with a <BR> (recommended)</option>
+ </select>
+ </div>
+ <br style="clear: both">
+ <form action="../../../samples/sample_posteddata.php" method="post">
+ <p>
+ <br>
+ <textarea cols="80" id="editor1" name="editor1" rows="10">This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</textarea>
+ </p>
+ <p>
+ <input type="submit" value="Submit">
+ </p>
+ </form>
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/entities/plugin.js b/devel/third-party/ckeditor/plugins/entities/plugin.js
index ce0f34e..f0a31a1 100644
--- a/devel/third-party/ckeditor/plugins/entities/plugin.js
+++ b/devel/third-party/ckeditor/plugins/entities/plugin.js
@@ -1,16 +1,15 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-(function()
-{
+(function() {
// Base HTML entities.
- var htmlbase = 'nbsp,gt,lt,quot';
+ var htmlbase = 'nbsp,gt,lt,amp';
var entities =
- // Latin-1 Entities
- 'iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,' +
+ // Latin-1 Entities
+ 'quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,' +
'not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,' +
'cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,' +
@@ -28,8 +27,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
'euro';
// Latin Letters Entities
- var latin =
- 'Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,' +
+ var latin = 'Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,' +
'Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,' +
'Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,' +
'agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,' +
@@ -38,44 +36,40 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
'OElig,oelig,Scaron,scaron,Yuml';
// Greek Letters Entities.
- var greek =
- 'Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,' +
+ var greek = 'Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,' +
'Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,' +
'beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,' +
'omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,' +
'upsih,piv';
- /**
- * Create a mapping table between one character and it's entity form from a list of entity names.
- * @param reverse {Boolean} Whether create a reverse map from the entity string form to actual character.
- */
- function buildTable( entities, reverse )
- {
+ // Create a mapping table between one character and its entity form from a list of entity names.
+ // @param reverse {Boolean} Whether to create a reverse map from the entity string form to an actual character.
+ function buildTable( entities, reverse ) {
var table = {},
regex = [];
// Entities that the browsers DOM don't transform to the final char
// automatically.
- var specialTable =
- {
- nbsp : '\u00A0', // IE | FF
- shy : '\u00AD', // IE
- gt : '\u003E', // IE | FF | -- | Opera
- lt : '\u003C' // IE | FF | Safari | Opera
- };
-
- entities = entities.replace( /\b(nbsp|shy|gt|lt|amp)(?:,|$)/g, function( match, entity )
- {
- var org = reverse ? '&' + entity + ';' : specialTable[ entity ],
- result = reverse ? specialTable[ entity ] : '&' + entity + ';';
-
- table[ org ] = result;
- regex.push( org );
- return '';
- });
-
- if ( !reverse )
- {
+ var specialTable = {
+ nbsp: '\u00A0', // IE | FF
+ shy: '\u00AD', // IE
+ gt: '\u003E', // IE | FF | -- | Opera
+ lt: '\u003C', // IE | FF | Safari | Opera
+ amp: '\u0026', // ALL
+ apos: '\u0027', // IE
+ quot: '\u0022' // IE
+ };
+
+ entities = entities.replace( /\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g, function( match, entity ) {
+ var org = reverse ? '&' + entity + ';' : specialTable[ entity ],
+ result = reverse ? specialTable[ entity ] : '&' + entity + ';';
+
+ table[ org ] = result;
+ regex.push( org );
+ return '';
+ });
+
+ if ( !reverse && entities ) {
// Transforms the entities string into an array.
entities = entities.split( ',' );
@@ -88,8 +82,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
div = null;
// Add all chars to the table.
- for ( var i = 0 ; i < chars.length ; i++ )
- {
+ for ( var i = 0; i < chars.length; i++ ) {
var charAt = chars.charAt( i );
table[ charAt ] = '&' + entities[ i ] + ';';
regex.push( charAt );
@@ -101,127 +94,143 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return table;
}
- CKEDITOR.plugins.add( 'entities',
- {
- afterInit : function( editor )
- {
+ CKEDITOR.plugins.add( 'entities', {
+ afterInit: function( editor ) {
var config = editor.config;
var dataProcessor = editor.dataProcessor,
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
- if ( htmlFilter )
- {
+ if ( htmlFilter ) {
// Mandatory HTML base entities.
- var selectedEntities = htmlbase;
+ var selectedEntities = [];
+
+ if ( config.basicEntities !== false )
+ selectedEntities.push( htmlbase );
+
+ if ( config.entities ) {
+ if ( selectedEntities.length )
+ selectedEntities.push( entities );
- if ( config.entities )
- {
- selectedEntities += ',' + entities;
if ( config.entities_latin )
- selectedEntities += ',' + latin;
+ selectedEntities.push( latin );
if ( config.entities_greek )
- selectedEntities += ',' + greek;
+ selectedEntities.push( greek );
if ( config.entities_additional )
- selectedEntities += ',' + config.entities_additional;
+ selectedEntities.push( config.entities_additional );
}
- var entitiesTable = buildTable( selectedEntities );
+ var entitiesTable = buildTable( selectedEntities.join( ',' ) );
- // Create the Regex used to find entities in the text.
- var entitiesRegex = '[' + entitiesTable.regex + ']';
+ // Create the Regex used to find entities in the text, leave it matches nothing if entities are empty.
+ var entitiesRegex = entitiesTable.regex ? '[' + entitiesTable.regex + ']' : 'a^';
delete entitiesTable.regex;
if ( config.entities && config.entities_processNumerical )
- entitiesRegex = '[^ -~]|' + entitiesRegex ;
+ entitiesRegex = '[^ -~]|' + entitiesRegex;
entitiesRegex = new RegExp( entitiesRegex, 'g' );
- function getEntity( character )
- {
- return config.entities_processNumerical == 'force' || !entitiesTable[ character ] ?
- '&#' + character.charCodeAt(0) + ';'
- : entitiesTable[ character ];
+ function getEntity( character ) {
+ return config.entities_processNumerical == 'force' || !entitiesTable[ character ] ? '&#' + character.charCodeAt( 0 ) + ';'
+ : entitiesTable[ character ];
}
// Decode entities that the browsers has transformed
// at first place.
- var baseEntitiesTable = buildTable( [ htmlbase, 'shy' ].join( ',' ) , true ),
+ var baseEntitiesTable = buildTable( [ htmlbase, 'shy' ].join( ',' ), true ),
baseEntitiesRegex = new RegExp( baseEntitiesTable.regex, 'g' );
- function getChar( character )
- {
+ function getChar( character ) {
return baseEntitiesTable[ character ];
}
- htmlFilter.addRules(
- {
- text : function( text )
- {
- return text.replace( baseEntitiesRegex, getChar )
- .replace( entitiesRegex, getEntity );
- }
- });
+ htmlFilter.addRules({
+ text: function( text ) {
+ return text.replace( baseEntitiesRegex, getChar ).replace( entitiesRegex, getEntity );
+ }
+ });
}
}
});
})();
/**
+ * Whether to escape basic HTML entities in the document, including:
+ *
+ * * `nbsp`
+ * * `gt`
+ * * `lt`
+ * * `amp`
+ *
+ * **Note:** It should not be subject to change unless when outputting a non-HTML data format like BBCode.
+ *
+ * config.basicEntities = false;
+ *
+ * @cfg {Boolean} [basicEntities=true]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.basicEntities = true;
+
+/**
* Whether to use HTML entities in the output.
- * @type Boolean
- * @default true
- * @example
- * config.entities = false;
+ *
+ * config.entities = false;
+ *
+ * @cfg {Boolean} [entities=true]
+ * @member CKEDITOR.config
*/
CKEDITOR.config.entities = true;
/**
- * Whether to convert some Latin characters (Latin alphabet No. 1, ISO 8859-1)
- * to HTML entities. The list of entities can be found at the
- * <a href="http://www.w3.org/TR/html4/sgml/entities.html#h-24.2.1">W3C HTML 4.01 Specification, section 24.2.1</a>.
- * @type Boolean
- * @default true
- * @example
- * config.entities_latin = false;
+ * Whether to convert some Latin characters (Latin alphabet No. 1, ISO 8859-1)
+ * to HTML entities. The list of entities can be found in the
+ * [W3C HTML 4.01 Specification, section 24.2.1](http://www.w3.org/TR/html4/sgml/entities.html#h-24.2.1).
+ *
+ * config.entities_latin = false;
+ *
+ * @cfg {Boolean} [entities_latin=true]
+ * @member CKEDITOR.config
*/
CKEDITOR.config.entities_latin = true;
/**
* Whether to convert some symbols, mathematical symbols, and Greek letters to
* HTML entities. This may be more relevant for users typing text written in Greek.
- * The list of entities can be found at the
- * <a href="http://www.w3.org/TR/html4/sgml/entities.html#h-24.3.1">W3C HTML 4.01 Specification, section 24.3.1</a>.
- * @type Boolean
- * @default true
- * @example
- * config.entities_greek = false;
+ * The list of entities can be found in the
+ * [W3C HTML 4.01 Specification, section 24.3.1(http://www.w3.org/TR/html4/sgml/entities.html#h-24.3.1).
+ *
+ * config.entities_greek = false;
+ *
+ * @cfg {Boolean} [entities_greek=true]
+ * @member CKEDITOR.config
*/
CKEDITOR.config.entities_greek = true;
/**
- * Whether to convert all remaining characters, not comprised in the ASCII
- * character table, to their relative decimal numeric representation of HTML entity.
- * When specified as the value 'force', it will simply convert all entities into the above form.
- * For example, the phrase "This is Chinese: 汉语." is outputted
- * as "This is Chinese: 汉语."
- * @type Boolean
- * @type Boolean|String
- * @default false
- * @example
- * config.entities_processNumerical = true;
- * config.entities_processNumerical = 'force'; //Convert from " " into " ";
+ * Whether to convert all remaining characters not included in the ASCII
+ * character table to their relative decimal numeric representation of HTML entity.
+ * When set to `force`, it will convert all entities into this format.
+ *
+ * For example the phrase `'This is Chinese: æ±è¯.'` is output
+ * as `'This is Chinese: 汉语.'`
+ *
+ * config.entities_processNumerical = true;
+ * config.entities_processNumerical = 'force'; // Converts from ' ' into ' ';
+ *
+ * @cfg {Boolean/String} [entities_processNumerical=false]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.entities_processNumerical = false;
/**
- * An additional list of entities to be used. It's a string containing each
- * entry separated by a comma. Entities names or number must be used, exclusing
- * the "&" preffix and the ";" termination.
- * @default '#39' // The single quote (') character.
- * @type String
- * @example
+ * A comma separated list of additional entities to be used. Entity names
+ * or numbers must be used in a form that excludes the `'&'` prefix and the `';'` ending.
+ *
+ * config.entities_additional = '#1049'; // Adds Cyrillic capital letter Short I (Ð).
+ *
+ * @cfg {String} [entities_additional='#39' (The single quote (') character)]
+ * @member CKEDITOR.config
*/
CKEDITOR.config.entities_additional = '#39';
diff --git a/share/static/RichText/images/spacer.gif b/devel/third-party/ckeditor/plugins/fakeobjects/images/spacer.gif
similarity index 100%
copy from share/static/RichText/images/spacer.gif
copy to devel/third-party/ckeditor/plugins/fakeobjects/images/spacer.gif
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/af.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/af.js
new file mode 100644
index 0000000..e8356b0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/af.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'af', {
+ anchor: 'Anker',
+ flash: 'Flash animasie',
+ hiddenfield: 'Verborge veld',
+ iframe: 'IFrame',
+ unknown: 'Onbekende objek'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ar.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ar.js
new file mode 100644
index 0000000..e60b6b6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ar.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ar', {
+ anchor: 'إرساء',
+ flash: 'رسÙ
Ù
ØªØØ±Ù باÙÙÙØ§Ø´',
+ hiddenfield: 'إدراج ØÙÙ Ø®ÙÙ',
+ iframe: 'IFrame', // MISSING
+ unknown: 'ÙØ§Ø¦Ù ØºÙØ± Ù
عرÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/bg.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/bg.js
new file mode 100644
index 0000000..b2dc388
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/bg.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'bg', {
+ anchor: 'ÐÑка',
+ flash: 'Ð¤Ð»Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°ÑиÑ',
+ hiddenfield: 'СкÑиÑо поле',
+ iframe: 'IFrame',
+ unknown: 'ÐеизвеÑÑен обекÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/bn.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/bn.js
new file mode 100644
index 0000000..22bda0d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/bn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'bn', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/bs.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/bs.js
new file mode 100644
index 0000000..0640244
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/bs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'bs', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ca.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ca.js
new file mode 100644
index 0000000..a9f8f56
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ca', {
+ anchor: 'Ãncora',
+ flash: 'Animació Flash',
+ hiddenfield: 'Camp ocult',
+ iframe: 'IFrame',
+ unknown: 'Objecte desconegut'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/cs.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/cs.js
new file mode 100644
index 0000000..8ba75ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/cs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'cs', {
+ anchor: 'Záložka',
+ flash: 'Flash animace',
+ hiddenfield: 'Skryté pole',
+ iframe: 'IFrame',
+ unknown: 'Neznámý objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/cy.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/cy.js
new file mode 100644
index 0000000..a24c2a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/cy.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'cy', {
+ anchor: 'Angor',
+ flash: 'Animeiddiant Flash',
+ hiddenfield: 'Maes Cudd',
+ iframe: 'IFrame',
+ unknown: 'Gwrthrych Anhysbys'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/da.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/da.js
new file mode 100644
index 0000000..20ecb44
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/da.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'da', {
+ anchor: 'Anker',
+ flash: 'Flashanimation',
+ hiddenfield: 'Skjult felt',
+ iframe: 'Iframe',
+ unknown: 'Ukendt objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/de.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/de.js
new file mode 100644
index 0000000..1ed6549
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/de.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'de', {
+ anchor: 'Anker',
+ flash: 'Flash Animation',
+ hiddenfield: 'Verstecktes Feld',
+ iframe: 'IFrame',
+ unknown: 'Unbekanntes Objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/el.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/el.js
new file mode 100644
index 0000000..6134a03
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/el.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'el', {
+ anchor: 'ÎιÏαγÏγή/εÏεξεÏγαÏία ÎγκÏ
ÏαÏ',
+ flash: 'Ταινία Flash',
+ hiddenfield: 'ÎÏÏ
ÏÏ Ïεδίο',
+ iframe: 'IFrame',
+ unknown: 'ÎγνÏÏÏο ÎνÏικείμενο'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-au.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-au.js
new file mode 100644
index 0000000..bfd004e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-au.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en-au', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-ca.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-ca.js
new file mode 100644
index 0000000..b3feb78
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en-ca', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-gb.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-gb.js
new file mode 100644
index 0000000..dc7abab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en-gb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en-gb', {
+ anchor: 'Anchor',
+ flash: 'Flash Animation',
+ hiddenfield: 'Hidden Field',
+ iframe: 'IFrame',
+ unknown: 'Unknown Object'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/en.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en.js
new file mode 100644
index 0000000..a061c04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/en.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'en', {
+ anchor: 'Anchor',
+ flash: 'Flash Animation',
+ hiddenfield: 'Hidden Field',
+ iframe: 'IFrame',
+ unknown: 'Unknown Object'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/eo.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/eo.js
new file mode 100644
index 0000000..455bb3a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/eo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'eo', {
+ anchor: 'Ankro',
+ flash: 'FlaÅAnimacio',
+ hiddenfield: 'KaÅita kampo',
+ iframe: 'Enlinia Kadro (IFrame)',
+ unknown: 'Nekonata objekto'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/es.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/es.js
new file mode 100644
index 0000000..a76e1e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/es.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'es', {
+ anchor: 'Ancla',
+ flash: 'Animación flash',
+ hiddenfield: 'Campo oculto',
+ iframe: 'IFrame',
+ unknown: 'Objeto desconocido'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/et.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/et.js
new file mode 100644
index 0000000..9d1011b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/et.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'et', {
+ anchor: 'Ankur',
+ flash: 'Flashi animatsioon',
+ hiddenfield: 'Varjatud väli',
+ iframe: 'IFrame',
+ unknown: 'Tundmatu objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/eu.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/eu.js
new file mode 100644
index 0000000..993914b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/eu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'eu', {
+ anchor: 'Aingura',
+ flash: 'Flash Animazioa',
+ hiddenfield: 'Ezkutuko Eremua',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Objektu ezezaguna'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/fa.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fa.js
new file mode 100644
index 0000000..514e779
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fa.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fa', {
+ anchor: 'ÙÙگر',
+ flash: 'اÙÛÙ
Ø´Ù ÙÙØ´',
+ hiddenfield: 'ÙÛÙØ¯ Ù¾ÙÙØ§Ù',
+ iframe: 'IFrame',
+ unknown: 'Ø´ÛØ¡ ÙØ§Ø´ÙاختÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/fi.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fi.js
new file mode 100644
index 0000000..2653e18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fi', {
+ anchor: 'Ankkuri',
+ flash: 'Flash animaatio',
+ hiddenfield: 'Piilokenttä',
+ iframe: 'IFrame-kehys',
+ unknown: 'Tuntematon objekti'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/fo.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fo.js
new file mode 100644
index 0000000..bd59c5f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fo', {
+ anchor: 'Anchor',
+ flash: 'Flash Animation',
+ hiddenfield: 'Fjaldur teigur',
+ iframe: 'IFrame',
+ unknown: 'Ãkent Object'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fr-ca.js
new file mode 100644
index 0000000..d4ac1c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fr-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fr-ca', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/fr.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fr.js
new file mode 100644
index 0000000..b0faf2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/fr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'fr', {
+ anchor: 'Ancre',
+ flash: 'Animation Flash',
+ hiddenfield: 'Champ caché',
+ iframe: 'IFrame',
+ unknown: 'Objet inconnu'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/gl.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/gl.js
new file mode 100644
index 0000000..bae3992
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/gl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'gl', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/gu.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/gu.js
new file mode 100644
index 0000000..35ac03b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/gu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'gu', {
+ anchor: 'àª
નàªàª°',
+ flash: 'ફà«àª²à«àª¶ ',
+ hiddenfield: 'હિડન ',
+ iframe: 'IFrame',
+ unknown: 'àª
નનà«àª¨ àªàª¬à«àªà«àªà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/he.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/he.js
new file mode 100644
index 0000000..82404e3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/he.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'he', {
+ anchor: '×¢×××',
+ flash: 'סר××× ×¤××ש',
+ hiddenfield: 'ש×× ××××',
+ iframe: '×××× ×¤× ××× (iframe)',
+ unknown: '××××××§× ×× ××××¢'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/hi.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/hi.js
new file mode 100644
index 0000000..2c4e447
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/hi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'hi', {
+ anchor: 'à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/hr.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/hr.js
new file mode 100644
index 0000000..9c6effe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/hr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'hr', {
+ anchor: 'Sidro',
+ flash: 'Flash animacija',
+ hiddenfield: 'Sakriveno polje',
+ iframe: 'IFrame',
+ unknown: 'Nepoznati objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/hu.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/hu.js
new file mode 100644
index 0000000..97efb5d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/hu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'hu', {
+ anchor: 'Horgony',
+ flash: 'Flash animáció',
+ hiddenfield: 'Rejtett mezõ',
+ iframe: 'IFrame',
+ unknown: 'Ismeretlen objektum'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/is.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/is.js
new file mode 100644
index 0000000..d888796
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/is.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'is', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/it.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/it.js
new file mode 100644
index 0000000..c3ce95c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/it.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'it', {
+ anchor: 'Ancora',
+ flash: 'Animazione Flash',
+ hiddenfield: 'Campo Nascosto',
+ iframe: 'IFrame',
+ unknown: 'Oggetto sconosciuto'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ja.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ja.js
new file mode 100644
index 0000000..680ba4f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ja.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ja', {
+ anchor: 'ã¢ã³ã«ã¼',
+ flash: 'Flash Animation',
+ hiddenfield: 'ä¸å¯è¦ãã£ã¼ã«ã',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ka.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ka.js
new file mode 100644
index 0000000..917ccc1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ka.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ka', {
+ anchor: 'á¦á£áá',
+ flash: 'Flash ááááááªáá',
+ hiddenfield: 'áááá£áá áááá',
+ iframe: 'IFrame',
+ unknown: 'á£áªáááá ááááá¥á¢á'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/km.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/km.js
new file mode 100644
index 0000000..429ad3b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/km.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'km', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ko.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ko.js
new file mode 100644
index 0000000..5981474
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ko.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ko', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ku.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ku.js
new file mode 100644
index 0000000..475f770
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ku.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ku', {
+ anchor: 'ÙÙÙÚ¯ÙØ±',
+ flash: 'ÙÙØ§Ø´',
+ hiddenfield: 'شاردÙÙÙÙÛ Ø®Ø§ÙÙ',
+ iframe: 'ÙÙÚÙØ§Ø±ÚÛÙÙ',
+ unknown: 'Ø¨ÙØ±Ú©Ø§Ø±ÛÚ©Û ÙÙÙØ§Ø³Ø±Ø§Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/lt.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/lt.js
new file mode 100644
index 0000000..de4f3b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/lt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'lt', {
+ anchor: 'ŽymÄ',
+ flash: 'Flash animacija',
+ hiddenfield: 'PaslÄptas laukas',
+ iframe: 'IFrame',
+ unknown: 'Nežinomas objektas'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/lv.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/lv.js
new file mode 100644
index 0000000..f1fef1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/lv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'lv', {
+ anchor: 'Iezīme',
+ flash: 'Flash animÄcija',
+ hiddenfield: 'SlÄpts lauks',
+ iframe: 'Iframe',
+ unknown: 'NezinÄms objekts'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/mk.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/mk.js
new file mode 100644
index 0000000..ec634f5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/mk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'mk', {
+ anchor: 'Anchor',
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/mn.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/mn.js
new file mode 100644
index 0000000..d21d358
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/mn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'mn', {
+ anchor: 'ÐангÑÑ',
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'ÐÑÑÑ ÑалбаÑ',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ms.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ms.js
new file mode 100644
index 0000000..92bf160
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ms.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ms', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/nb.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/nb.js
new file mode 100644
index 0000000..7eeca12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/nb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'nb', {
+ anchor: 'Anker',
+ flash: 'Flash-animasjon',
+ hiddenfield: 'Skjult felt',
+ iframe: 'IFrame',
+ unknown: 'Ukjent objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/nl.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/nl.js
new file mode 100644
index 0000000..d2878b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/nl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'nl', {
+ anchor: 'Interne link',
+ flash: 'Flash animatie',
+ hiddenfield: 'Verborgen veld',
+ iframe: 'IFrame',
+ unknown: 'Onbekend object'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/no.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/no.js
new file mode 100644
index 0000000..da9a533
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/no.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'no', {
+ anchor: 'Anker',
+ flash: 'Flash-animasjon',
+ hiddenfield: 'Skjult felt',
+ iframe: 'IFrame',
+ unknown: 'Ukjent objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/pl.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/pl.js
new file mode 100644
index 0000000..a57361b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/pl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'pl', {
+ anchor: 'Kotwica',
+ flash: 'Animacja Flash',
+ hiddenfield: 'Pole ukryte',
+ iframe: 'IFrame',
+ unknown: 'Nieznany obiekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/pt-br.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/pt-br.js
new file mode 100644
index 0000000..cd2164c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/pt-br.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'pt-br', {
+ anchor: 'Ãncora',
+ flash: 'Animação em Flash',
+ hiddenfield: 'Campo Oculto',
+ iframe: 'IFrame',
+ unknown: 'Objeto desconhecido'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/pt.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/pt.js
new file mode 100644
index 0000000..2a245fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/pt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'pt', {
+ anchor: ' Inserir/Editar Ãncora',
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Campo Escondido',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ro.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ro.js
new file mode 100644
index 0000000..2ee8220
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ro.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ro', {
+ anchor: 'InsereazÄ/EditeazÄ ancorÄ',
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Câmp ascuns (HiddenField)',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ru.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ru.js
new file mode 100644
index 0000000..bd6fafe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ru.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ru', {
+ anchor: 'ЯкоÑÑ',
+ flash: 'Flash анимаÑиÑ',
+ hiddenfield: 'СкÑÑÑое поле',
+ iframe: 'iFrame',
+ unknown: 'ÐеизвеÑÑнÑй обÑекÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/sk.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sk.js
new file mode 100644
index 0000000..d25ae31
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sk', {
+ anchor: 'Kotva',
+ flash: 'Flash animácia',
+ hiddenfield: 'Skryté pole',
+ iframe: 'IFrame',
+ unknown: 'Neznámy objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/sl.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sl.js
new file mode 100644
index 0000000..f402f31
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sl', {
+ anchor: 'Sidro',
+ flash: 'Flash animacija',
+ hiddenfield: 'Skrito polje',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Neznan objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sr-latn.js
new file mode 100644
index 0000000..23f1c38
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sr-latn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sr-latn', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/sr.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sr.js
new file mode 100644
index 0000000..ce71cf8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sr', {
+ anchor: 'Anchor', // MISSING
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'Hidden Field', // MISSING
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/sv.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sv.js
new file mode 100644
index 0000000..abe8547
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/sv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'sv', {
+ anchor: 'Ankare',
+ flash: 'Flashanimation',
+ hiddenfield: 'Gömt fält',
+ iframe: 'iFrame',
+ unknown: 'Okänt objekt'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/th.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/th.js
new file mode 100644
index 0000000..7387166
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/th.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'th', {
+ anchor: 'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor',
+ flash: 'Flash Animation', // MISSING
+ hiddenfield: 'ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',
+ iframe: 'IFrame', // MISSING
+ unknown: 'Unknown Object' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/tr.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/tr.js
new file mode 100644
index 0000000..0f2b8f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/tr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'tr', {
+ anchor: 'BaÄlantı',
+ flash: 'Flash Animasyonu',
+ hiddenfield: 'Gizli Alan',
+ iframe: 'IFrame',
+ unknown: 'Bilinmeyen Nesne'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/ug.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ug.js
new file mode 100644
index 0000000..378a9d7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/ug.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'ug', {
+ anchor: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§',
+ flash: 'Flash جاÙÙØ§ÙØ¯ÛØ±ÛÙ
',
+ hiddenfield: 'ÙÙØ´ÛرÛÙ Ø¯Ø§Ø¦ÙØ±Û',
+ iframe: 'IFrame',
+ unknown: 'ÙÙÚÛÙ ÙÛÚ'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/uk.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/uk.js
new file mode 100644
index 0000000..ebfb680
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/uk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'uk', {
+ anchor: 'ЯкÑÑ',
+ flash: 'Flash-анÑмаÑÑÑ',
+ hiddenfield: 'ÐÑиÑ
Ð¾Ð²Ð°Ð½Ñ ÐолÑ',
+ iframe: 'IFrame',
+ unknown: 'ÐевÑдомий об\'ÑкÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/vi.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/vi.js
new file mode 100644
index 0000000..444e05c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/vi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'vi', {
+ anchor: 'Äiá»m neo',
+ flash: 'Flash',
+ hiddenfield: 'Trưá»ng ẩn',
+ iframe: 'IFrame',
+ unknown: 'Äá»i tượng không rõ rà ng'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/zh-cn.js
new file mode 100644
index 0000000..761c1eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/zh-cn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'zh-cn', {
+ anchor: 'éç¹',
+ flash: 'Flash å¨ç»',
+ hiddenfield: 'éèå',
+ iframe: 'IFrame',
+ unknown: 'æªç¥å¯¹è±¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/lang/zh.js b/devel/third-party/ckeditor/plugins/fakeobjects/lang/zh.js
new file mode 100644
index 0000000..6e86274
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/lang/zh.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'fakeobjects', 'zh', {
+ anchor: 'é¨é»',
+ flash: 'Flash åç«',
+ hiddenfield: 'é±èæ¬ä½',
+ iframe: 'IFrame', // MISSING
+ unknown: '䏿ç©ä»¶'
+});
diff --git a/devel/third-party/ckeditor/plugins/fakeobjects/plugin.js b/devel/third-party/ckeditor/plugins/fakeobjects/plugin.js
index 0b173c2..be2d00e 100644
--- a/devel/third-party/ckeditor/plugins/fakeobjects/plugin.js
+++ b/devel/third-party/ckeditor/plugins/fakeobjects/plugin.js
@@ -1,43 +1,49 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var htmlFilterRules =
- {
- elements :
- {
- $ : function( element )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var cssStyle = CKEDITOR.htmlParser.cssStyle,
+ cssLength = CKEDITOR.tools.cssLength;
+
+ var cssLengthRegex = /^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i;
+
+ // Replacing the former CSS length value with the later one, with
+ // adjustment to the length unit.
+ function replaceCssLength( length1, length2 ) {
+ var parts1 = cssLengthRegex.exec( length1 ),
+ parts2 = cssLengthRegex.exec( length2 );
+
+ // Omit pixel length unit when necessary,
+ // e.g. replaceCssLength( 10, '20px' ) -> 20
+ if ( parts1 ) {
+ if ( !parts1[ 2 ] && parts2[ 2 ] == 'px' )
+ return parts2[ 1 ];
+ if ( parts1[ 2 ] == 'px' && !parts2[ 2 ] )
+ return parts2[ 1 ] + 'px';
+ }
+
+ return length2;
+ }
+
+ var htmlFilterRules = {
+ elements: {
+ $: function( element ) {
var attributes = element.attributes,
- realHtml = attributes && attributes._cke_realelement,
+ realHtml = attributes && attributes[ 'data-cke-realelement' ],
realFragment = realHtml && new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realHtml ) ),
realElement = realFragment && realFragment.children[ 0 ];
- // If we have width/height in the element, we must move it into
- // the real element.
- if ( realElement && element.attributes._cke_resizable )
- {
- var style = element.attributes.style;
-
- if ( style )
- {
- // Get the width from the style.
- var match = /(?:^|\s)width\s*:\s*(\d+)/i.exec( style ),
- width = match && match[1];
-
- // Get the height from the style.
- match = /(?:^|\s)height\s*:\s*(\d+)/i.exec( style );
- var height = match && match[1];
+ // Width/height in the fake object are subjected to clone into the real element.
+ if ( realElement && element.attributes[ 'data-cke-resizable' ] ) {
+ var styles = new cssStyle( element ).rules,
+ realAttrs = realElement.attributes,
+ width = styles.width,
+ height = styles.height;
- if ( width )
- realElement.attributes.width = width;
-
- if ( height )
- realElement.attributes.height = height;
- }
+ width && ( realAttrs.width = replaceCssLength( realAttrs.width, width ) );
+ height && ( realAttrs.height = replaceCssLength( realAttrs.height, height ) );
}
return realElement;
@@ -45,12 +51,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
};
- CKEDITOR.plugins.add( 'fakeobjects',
- {
- requires : [ 'htmlwriter' ],
+ var plugin = CKEDITOR.plugins.add( 'fakeobjects', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
- afterInit : function( editor )
- {
+ afterInit: function( editor ) {
var dataProcessor = editor.dataProcessor,
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
@@ -58,65 +62,111 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
htmlFilter.addRules( htmlFilterRules );
}
});
-})();
-
-CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable )
-{
- var lang = this.lang.fakeobjects;
-
- var attributes =
- {
- 'class' : className,
- src : CKEDITOR.getUrl( 'images/spacer.gif' ),
- _cke_realelement : encodeURIComponent( realElement.getOuterHtml() ),
- _cke_real_node_type : realElement.type,
- alt : lang[ realElementType ] || lang.unknown,
- align : realElement.getAttribute( 'align' ) || ''
- };
- if ( realElementType )
- attributes._cke_real_element_type = realElementType;
-
- if ( isResizable )
- attributes._cke_resizable = isResizable;
-
- return this.document.createElement( 'img', { attributes : attributes } );
-};
+ /**
+ * @member CKEDITOR.editor
+ * @todo
+ */
+ CKEDITOR.editor.prototype.createFakeElement = function( realElement, className, realElementType, isResizable ) {
+ var lang = this.lang.fakeobjects,
+ label = lang[ realElementType ] || lang.unknown;
+
+ var attributes = {
+ 'class': className,
+ 'data-cke-realelement': encodeURIComponent( realElement.getOuterHtml() ),
+ 'data-cke-real-node-type': realElement.type,
+ alt: label,
+ title: label,
+ align: realElement.getAttribute( 'align' ) || ''
+ };
+
+ // Do not set "src" on high-contrast so the alt text is displayed. (#8945)
+ if ( !CKEDITOR.env.hc )
+ attributes.src = CKEDITOR.getUrl( plugin.path + 'images/spacer.gif' );
+
+ if ( realElementType )
+ attributes[ 'data-cke-real-element-type' ] = realElementType;
+
+ if ( isResizable ) {
+ attributes[ 'data-cke-resizable' ] = isResizable;
+
+ var fakeStyle = new cssStyle();
+
+ var width = realElement.getAttribute( 'width' ),
+ height = realElement.getAttribute( 'height' );
+
+ width && ( fakeStyle.rules.width = cssLength( width ) );
+ height && ( fakeStyle.rules.height = cssLength( height ) );
+ fakeStyle.populate( attributes );
+ }
-CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable )
-{
- var lang = this.lang.fakeobjects,
- html;
+ return this.document.createElement( 'img', { attributes: attributes } );
+ };
- var writer = new CKEDITOR.htmlParser.basicWriter();
- realElement.writeHtml( writer );
- html = writer.getHtml();
+ /**
+ * @member CKEDITOR.editor
+ * @todo
+ */
+ CKEDITOR.editor.prototype.createFakeParserElement = function( realElement, className, realElementType, isResizable ) {
+ var lang = this.lang.fakeobjects,
+ label = lang[ realElementType ] || lang.unknown,
+ html;
+
+ var writer = new CKEDITOR.htmlParser.basicWriter();
+ realElement.writeHtml( writer );
+ html = writer.getHtml();
+
+ var attributes = {
+ 'class': className,
+ 'data-cke-realelement': encodeURIComponent( html ),
+ 'data-cke-real-node-type': realElement.type,
+ alt: label,
+ title: label,
+ align: realElement.attributes.align || ''
+ };
+
+ // Do not set "src" on high-contrast so the alt text is displayed. (#8945)
+ if ( !CKEDITOR.env.hc )
+ attributes.src = CKEDITOR.getUrl( plugin.path + 'images/spacer.gif' );
+
+ if ( realElementType )
+ attributes[ 'data-cke-real-element-type' ] = realElementType;
+
+ if ( isResizable ) {
+ attributes[ 'data-cke-resizable' ] = isResizable;
+ var realAttrs = realElement.attributes,
+ fakeStyle = new cssStyle();
+
+ var width = realAttrs.width,
+ height = realAttrs.height;
+
+ width != undefined && ( fakeStyle.rules.width = cssLength( width ) );
+ height != undefined && ( fakeStyle.rules.height = cssLength( height ) );
+ fakeStyle.populate( attributes );
+ }
- var attributes =
- {
- 'class' : className,
- src : CKEDITOR.getUrl( 'images/spacer.gif' ),
- _cke_realelement : encodeURIComponent( html ),
- _cke_real_node_type : realElement.type,
- alt : lang[ realElementType ] || lang.unknown,
- align : realElement.attributes.align || ''
+ return new CKEDITOR.htmlParser.element( 'img', attributes );
};
- if ( realElementType )
- attributes._cke_real_element_type = realElementType;
+ /**
+ * @member CKEDITOR.editor
+ * @todo
+ */
+ CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) {
+ if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT )
+ return null;
- if ( isResizable )
- attributes._cke_resizable = isResizable;
+ var element = CKEDITOR.dom.element.createFromHtml( decodeURIComponent( fakeElement.data( 'cke-realelement' ) ), this.document );
- return new CKEDITOR.htmlParser.element( 'img', attributes );
-};
+ if ( fakeElement.data( 'cke-resizable' ) ) {
+ var width = fakeElement.getStyle( 'width' ),
+ height = fakeElement.getStyle( 'height' );
-CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement )
-{
- if ( fakeElement.getAttribute( '_cke_real_node_type' ) != CKEDITOR.NODE_ELEMENT )
- return null;
+ width && element.setAttribute( 'width', replaceCssLength( element.getAttribute( 'width' ), width ) );
+ height && element.setAttribute( 'height', replaceCssLength( element.getAttribute( 'height' ), height ) );
+ }
+
+ return element;
+ };
- return CKEDITOR.dom.element.createFromHtml(
- decodeURIComponent( fakeElement.getAttribute( '_cke_realelement' ) ),
- this.document );
-};
+})();
diff --git a/devel/third-party/ckeditor/plugins/filebrowser/plugin.js b/devel/third-party/ckeditor/plugins/filebrowser/plugin.js
index 176ce05..e607f03 100644
--- a/devel/third-party/ckeditor/plugins/filebrowser/plugin.js
+++ b/devel/third-party/ckeditor/plugins/filebrowser/plugin.js
@@ -1,18 +1,18 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @fileOverview The "filebrowser" plugin, it adds support for file uploads and
+ * @fileOverview The "filebrowser" plugin that adds support for file uploads and
* browsing.
*
- * When file is selected inside of the file browser or uploaded, its url is
- * inserted automatically to a field, which is described in the 'filebrowser'
- * attribute. To specify field that should be updated, pass the tab id and
- * element id, separated with a colon.
+ * When a file is uploaded or selected inside the file browser, its URL is
+ * inserted automatically into a field defined in the <code>filebrowser</code>
+ * attribute. In order to specify a field that should be updated, pass the tab ID and
+ * the element ID, separated with a colon.<br /><br />
*
- * Example 1: (Browse)
+ * <strong>Example 1: (Browse)</strong>
*
* <pre>
* {
@@ -23,10 +23,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* }
* </pre>
*
- * If you set the 'filebrowser' attribute on any element other than
- * 'fileButton', the 'Browse' action will be triggered.
+ * If you set the <code>filebrowser</code> attribute for an element other than
+ * the <code>fileButton</code>, the <code>Browse</code> action will be triggered.<br /><br />
*
- * Example 2: (Quick Upload)
+ * <strong>Example 2: (Quick Upload)</strong>
*
* <pre>
* {
@@ -38,23 +38,23 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* }
* </pre>
*
- * If you set the 'filebrowser' attribute on a fileButton element, the
- * 'QuickUpload' action will be executed.
+ * If you set the <code>filebrowser</code> attribute for a <code>fileButton</code>
+ * element, the <code>QuickUpload</code> action will be executed.<br /><br />
*
- * Filebrowser plugin also supports more advanced configuration (through
- * javascript object).
+ * The filebrowser plugin also supports more advanced configuration performed through
+ * a JavaScript object.
*
* The following settings are supported:
*
- * <pre>
- * [action] - Browse or QuickUpload
- * [target] - field to update, tabId:elementId
- * [params] - additional arguments to be passed to the server connector (optional)
- * [onSelect] - function to execute when file is selected/uploaded (optional)
- * [url] - the URL to be called (optional)
- * </pre>
+ * <ul>
+ * <li><code>action</code> – <code>Browse</code> or <code>QuickUpload</code>.</li>
+ * <li><code>target</code> – the field to update in the <code><em>tabId:elementId</em></code> format.</li>
+ * <li><code>params</code> – additional arguments to be passed to the server connector (optional).</li>
+ * <li><code>onSelect</code> – a function to execute when the file is selected/uploaded (optional).</li>
+ * <li><code>url</code> – the URL to be called (optional).</li>
+ * </ul>
*
- * Example 3: (Quick Upload)
+ * <strong>Example 3: (Quick Upload)</strong>
*
* <pre>
* {
@@ -63,16 +63,16 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* id : 'buttonId',
* filebrowser :
* {
- * action : 'QuickUpload', //required
- * target : 'tab1:elementId', //required
- * params : //optional
+ * action : 'QuickUpload', // required
+ * target : 'tab1:elementId', // required
+ * params : // optional
* {
* type : 'Files',
* currentFolder : '/folder/'
* },
- * onSelect : function( fileUrl, errorMessage ) //optional
+ * onSelect : function( fileUrl, errorMessage ) // optional
* {
- * // Do not call the built-in selectFuntion
+ * // Do not call the built-in selectFuntion.
* // return false;
* }
* },
@@ -80,14 +80,16 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* }
* </pre>
*
- * Suppose we have a file element with id 'myFile', text field with id
- * 'elementId' and a fileButton. If filebowser.url is not specified explicitly,
- * form action will be set to 'filebrowser[DialogName]UploadUrl' or, if not
- * specified, to 'filebrowserUploadUrl'. Additional parameters from 'params'
- * object will be added to the query string. It is possible to create your own
- * uploadHandler and cancel the built-in updateTargetElement command.
+ * Suppose you have a file element with an ID of <code>myFile</code>, a text
+ * field with an ID of <code>elementId</code> and a <code>fileButton</code>.
+ * If the <code>filebowser.url</code> attribute is not specified explicitly,
+ * the form action will be set to <code>filebrowser[<em>DialogWindowName</em>]UploadUrl</code>
+ * or, if not specified, to <code>filebrowserUploadUrl</code>. Additional parameters
+ * from the <code>params</code> object will be added to the query string. It is
+ * possible to create your own <code>uploadHandler</code> and cancel the built-in
+ * <code>updateTargetElement</code> command.<br /><br />
*
- * Example 4: (Browse)
+ * <strong>Example 4: (Browse)</strong>
*
* <pre>
* {
@@ -103,31 +105,27 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* }
* </pre>
*
- * In this example, after pressing a button, file browser will be opened in a
- * popup. If we don't specify filebrowser.url attribute,
- * 'filebrowser[DialogName]BrowseUrl' or 'filebrowserBrowseUrl' will be used.
- * After selecting a file in a file browser, an element with id 'elementId' will
- * be updated. Just like in the third example, a custom 'onSelect' function may be
- * defined.
+ * In this example, when the button is pressed, the file browser will be opened in a
+ * popup window. If you do not specify the <code>filebrowser.url</code> attribute,
+ * <code>filebrowser[<em>DialogName</em>]BrowseUrl</code> or
+ * <code>filebrowserBrowseUrl</code> will be used. After selecting a file in the file
+ * browser, an element with an ID of <code>elementId</code> will be updated. Just
+ * like in the third example, a custom <code>onSelect</code> function may be defined.
*/
-( function()
-{
- /**
- * Adds (additional) arguments to given url.
- *
- * @param {String}
- * url The url.
- * @param {Object}
- * params Additional parameters.
- */
- function addQueryString( url, params )
- {
+
+(function() {
+ // Adds (additional) arguments to given url.
+ //
+ // @param {String}
+ // url The url.
+ // @param {Object}
+ // params Additional parameters.
+ function addQueryString( url, params ) {
var queryString = [];
if ( !params )
return url;
- else
- {
+ else {
for ( var i in params )
queryString.push( i + "=" + encodeURIComponent( params[ i ] ) );
}
@@ -135,37 +133,29 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return url + ( ( url.indexOf( "?" ) != -1 ) ? "&" : "?" ) + queryString.join( "&" );
}
- /**
- * Make a string's first character uppercase.
- *
- * @param {String}
- * str String.
- */
- function ucFirst( str )
- {
+ // Make a string's first character uppercase.
+ //
+ // @param {String}
+ // str String.
+ function ucFirst( str ) {
str += '';
var f = str.charAt( 0 ).toUpperCase();
return f + str.substr( 1 );
}
- /**
- * The onlick function assigned to the 'Browse Server' button. Opens the
- * file browser and updates target field when file is selected.
- *
- * @param {CKEDITOR.event}
- * evt The event object.
- */
- function browseServer( evt )
- {
+ // The onlick function assigned to the 'Browse Server' button. Opens the
+ // file browser and updates target field when file is selected.
+ //
+ // @param {CKEDITOR.event}
+ // evt The event object.
+ function browseServer( evt ) {
var dialog = this.getDialog();
var editor = dialog.getParentEditor();
editor._.filebrowserSe = this;
- var width = editor.config[ 'filebrowser' + ucFirst( dialog.getName() ) + 'WindowWidth' ]
- || editor.config.filebrowserWindowWidth || '80%';
- var height = editor.config[ 'filebrowser' + ucFirst( dialog.getName() ) + 'WindowHeight' ]
- || editor.config.filebrowserWindowHeight || '70%';
+ var width = editor.config[ 'filebrowser' + ucFirst( dialog.getName() ) + 'WindowWidth' ] || editor.config.filebrowserWindowWidth || '80%';
+ var height = editor.config[ 'filebrowser' + ucFirst( dialog.getName() ) + 'WindowHeight' ] || editor.config.filebrowserWindowHeight || '70%';
var params = this.filebrowser.params || {};
params.CKEditor = editor.name;
@@ -174,19 +164,17 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
params.langCode = editor.langCode;
var url = addQueryString( this.filebrowser.url, params );
- editor.popup( url, width, height, editor.config.fileBrowserWindowFeatures );
+ // TODO: V4: Remove backward compatibility (#8163).
+ editor.popup( url, width, height, editor.config.filebrowserWindowFeatures || editor.config.fileBrowserWindowFeatures );
}
- /**
- * The onlick function assigned to the 'Upload' button. Makes the final
- * decision whether form is really submitted and updates target field when
- * file is uploaded.
- *
- * @param {CKEDITOR.event}
- * evt The event object.
- */
- function uploadFile( evt )
- {
+ // The onlick function assigned to the 'Upload' button. Makes the final
+ // decision whether form is really submitted and updates target field when
+ // file is uploaded.
+ //
+ // @param {CKEDITOR.event}
+ // evt The event object.
+ function uploadFile( evt ) {
var dialog = this.getDialog();
var editor = dialog.getParentEditor();
@@ -202,17 +190,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return true;
}
- /**
- * Setups the file element.
- *
- * @param {CKEDITOR.ui.dialog.file}
- * fileInput The file element used during file upload.
- * @param {Object}
- * filebrowser Object containing filebrowser settings assigned to
- * the fileButton associated with this file element.
- */
- function setupFileElement( editor, fileInput, filebrowser )
- {
+ // Setups the file element.
+ //
+ // @param {CKEDITOR.ui.dialog.file}
+ // fileInput The file element used during file upload.
+ // @param {Object}
+ // filebrowser Object containing filebrowser settings assigned to
+ // the fileButton associated with this file element.
+ function setupFileElement( editor, fileInput, filebrowser ) {
var params = filebrowser.params || {};
params.CKEditor = editor.name;
params.CKEditorFuncNum = editor._.filebrowserFn;
@@ -223,64 +208,60 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
fileInput.filebrowser = filebrowser;
}
- /**
- * Traverse through the content definition and attach filebrowser to
- * elements with 'filebrowser' attribute.
- *
- * @param String
- * dialogName Dialog name.
- * @param {CKEDITOR.dialog.dialogDefinitionObject}
- * definition Dialog definition.
- * @param {Array}
- * elements Array of {@link CKEDITOR.dialog.contentDefinition}
- * objects.
- */
- function attachFileBrowser( editor, dialogName, definition, elements )
- {
+ // Traverse through the content definition and attach filebrowser to
+ // elements with 'filebrowser' attribute.
+ //
+ // @param String
+ // dialogName Dialog name.
+ // @param {CKEDITOR.dialog.definitionObject}
+ // definition Dialog definition.
+ // @param {Array}
+ // elements Array of {@link CKEDITOR.dialog.definition.content}
+ // objects.
+ function attachFileBrowser( editor, dialogName, definition, elements ) {
var element, fileInput;
- for ( var i in elements )
- {
+ for ( var i in elements ) {
element = elements[ i ];
- if ( element.type == 'hbox' || element.type == 'vbox' )
+ if ( element.type == 'hbox' || element.type == 'vbox' || element.type == 'fieldset' )
attachFileBrowser( editor, dialogName, definition, element.children );
if ( !element.filebrowser )
continue;
- if ( typeof element.filebrowser == 'string' )
- {
- var fb =
- {
- action : ( element.type == 'fileButton' ) ? 'QuickUpload' : 'Browse',
- target : element.filebrowser
+ if ( typeof element.filebrowser == 'string' ) {
+ var fb = {
+ action: ( element.type == 'fileButton' ) ? 'QuickUpload' : 'Browse',
+ target: element.filebrowser
};
element.filebrowser = fb;
}
- if ( element.filebrowser.action == 'Browse' )
- {
- var url = element.filebrowser.url || editor.config[ 'filebrowser' + ucFirst( dialogName ) + 'BrowseUrl' ]
- || editor.config.filebrowserBrowseUrl;
+ if ( element.filebrowser.action == 'Browse' ) {
+ var url = element.filebrowser.url;
+ if ( url === undefined ) {
+ url = editor.config[ 'filebrowser' + ucFirst( dialogName ) + 'BrowseUrl' ];
+ if ( url === undefined )
+ url = editor.config.filebrowserBrowseUrl;
+ }
- if ( url )
- {
+ if ( url ) {
element.onClick = browseServer;
element.filebrowser.url = url;
element.hidden = false;
}
- }
- else if ( element.filebrowser.action == 'QuickUpload' && element[ 'for' ] )
- {
- url = element.filebrowser.url || editor.config[ 'filebrowser' + ucFirst( dialogName ) + 'UploadUrl' ]
- || editor.config.filebrowserUploadUrl;
+ } else if ( element.filebrowser.action == 'QuickUpload' && element[ 'for' ] ) {
+ url = element.filebrowser.url;
+ if ( url === undefined ) {
+ url = editor.config[ 'filebrowser' + ucFirst( dialogName ) + 'UploadUrl' ];
+ if ( url === undefined )
+ url = editor.config.filebrowserUploadUrl;
+ }
- if ( url )
- {
+ if ( url ) {
var onClick = element.onClick;
- element.onClick = function( evt )
- {
+ element.onClick = function( evt ) {
// "element" here means the definition object, so we need to find the correct
// button to scope the event call
var sender = evt.sender;
@@ -298,49 +279,38 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
- /**
- * Updates the target element with the url of uploaded/selected file.
- *
- * @param {String}
- * url The url of a file.
- */
- function updateTargetElement( url, sourceElement )
- {
+ // Updates the target element with the url of uploaded/selected file.
+ //
+ // @param {String}
+ // url The url of a file.
+ function updateTargetElement( url, sourceElement ) {
var dialog = sourceElement.getDialog();
var targetElement = sourceElement.filebrowser.target || null;
- url = url.replace( /#/g, '%23' );
// If there is a reference to targetElement, update it.
- if ( targetElement )
- {
+ if ( targetElement ) {
var target = targetElement.split( ':' );
var element = dialog.getContentElement( target[ 0 ], target[ 1 ] );
- if ( element )
- {
+ if ( element ) {
element.setValue( url );
dialog.selectPage( target[ 0 ] );
}
}
}
- /**
- * Returns true if filebrowser is configured in one of the elements.
- *
- * @param {CKEDITOR.dialog.dialogDefinitionObject}
- * definition Dialog definition.
- * @param String
- * tabId The tab id where element(s) can be found.
- * @param String
- * elementId The element id (or ids, separated with a semicolon) to check.
- */
- function isConfigured( definition, tabId, elementId )
- {
- if ( elementId.indexOf( ";" ) !== -1 )
- {
+ // Returns true if filebrowser is configured in one of the elements.
+ //
+ // @param {CKEDITOR.dialog.definitionObject}
+ // definition Dialog definition.
+ // @param String
+ // tabId The tab id where element(s) can be found.
+ // @param String
+ // elementId The element id (or ids, separated with a semicolon) to check.
+ function isConfigured( definition, tabId, elementId ) {
+ if ( elementId.indexOf( ";" ) !== -1 ) {
var ids = elementId.split( ";" );
- for ( var i = 0 ; i < ids.length ; i++ )
- {
- if ( isConfigured( definition, tabId, ids[i]) )
+ for ( var i = 0; i < ids.length; i++ ) {
+ if ( isConfigured( definition, tabId, ids[ i ] ) )
return true;
}
return false;
@@ -350,8 +320,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return ( elementFileBrowser && elementFileBrowser.url );
}
- function setUrl( fileUrl, data )
- {
+ function setUrl( fileUrl, data ) {
var dialog = this._.filebrowserSe.getDialog(),
targetInput = this._.filebrowserSe[ 'for' ],
onSelect = this._.filebrowserSe.filebrowser.onSelect;
@@ -373,119 +342,153 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
updateTargetElement( fileUrl, this._.filebrowserSe );
}
- CKEDITOR.plugins.add( 'filebrowser',
- {
- init : function( editor, pluginPath )
- {
+ CKEDITOR.plugins.add( 'filebrowser', {
+ requires: 'popup',
+ init: function( editor, pluginPath ) {
editor._.filebrowserFn = CKEDITOR.tools.addFunction( setUrl, editor );
+ editor.on( 'destroy', function() {
+ CKEDITOR.tools.removeFunction( this._.filebrowserFn );
+ });
}
- } );
+ });
- CKEDITOR.on( 'dialogDefinition', function( evt )
- {
+ CKEDITOR.on( 'dialogDefinition', function( evt ) {
var definition = evt.data.definition,
element;
// Associate filebrowser to elements with 'filebrowser' attribute.
- for ( var i in definition.contents )
- {
- if ( ( element = definition.contents[ i ] ) )
- {
+ for ( var i in definition.contents ) {
+ if ( ( element = definition.contents[ i ] ) ) {
attachFileBrowser( evt.editor, evt.data.name, definition, element.elements );
- if ( element.hidden && element.filebrowser )
- {
+ if ( element.hidden && element.filebrowser ) {
element.hidden = !isConfigured( definition, element[ 'id' ], element.filebrowser );
}
}
}
- } );
+ });
-} )();
+})();
/**
- * The location of an external file browser, that should be launched when "Browse Server" button is pressed.
- * If configured, the "Browse Server" button will appear in Link, Image and Flash dialogs.
- * @see The <a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)">File Browser/Uploader</a> documentation.
- * @name CKEDITOR.config.filebrowserBrowseUrl
+ * The location of an external file browser that should be launched when the **Browse Server**
+ * button is pressed. If configured, the **Browse Server** button will appear in the
+ * **Link**, **Image**, and **Flash** dialog windows.
+ *
+ * See the [File Browser/Uploader](http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader\)) documentation.
+ *
+ * config.filebrowserBrowseUrl = '/browser/browse.php';
+ *
* @since 3.0
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserBrowseUrl = '/browser/browse.php';
+ * @cfg {String} [filebrowserBrowseUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The location of a script that handles file uploads.
- * If set, the "Upload" tab will appear in "Link", "Image" and "Flash" dialogs.
- * @name CKEDITOR.config.filebrowserUploadUrl
- * @see The <a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)">File Browser/Uploader</a> documentation.
+ * The location of the script that handles file uploads.
+ * If set, the **Upload** tab will appear in the **Link**, **Image**,
+ * and **Flash** dialog windows.
+ *
+ * See the [File Browser/Uploader](http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader\)) documentation.
+ *
+ * config.filebrowserUploadUrl = '/uploader/upload.php';
+ *
* @since 3.0
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserUploadUrl = '/uploader/upload.php';
+ * @cfg {String} [filebrowserUploadUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Image dialog.
- * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
- * @name CKEDITOR.config.filebrowserImageBrowseUrl
+ * The location of an external file browser that should be launched when the **Browse Server**
+ * button is pressed in the **Image** dialog window.
+ *
+ * If not set, CKEditor will use {@link CKEDITOR.config#filebrowserBrowseUrl}.
+ *
+ * config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
+ *
* @since 3.0
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
+ * @cfg {String} [filebrowserImageBrowseUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Flash dialog.
- * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
- * @name CKEDITOR.config.filebrowserFlashBrowseUrl
+ * The location of an external file browser that should be launched when the **Browse Server**
+ * button is pressed in the **Flash** dialog window.
+ *
+ * If not set, CKEditor will use {@link CKEDITOR.config#filebrowserBrowseUrl}.
+ *
+ * config.filebrowserFlashBrowseUrl = '/browser/browse.php?type=Flash';
+ *
* @since 3.0
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserFlashBrowseUrl = '/browser/browse.php?type=Flash';
+ * @cfg {String} [filebrowserFlashBrowseUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The location of a script that handles file uploads in the Image dialog.
- * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserUploadUrl}.
- * @name CKEDITOR.config.filebrowserImageUploadUrl
+ * The location of the script that handles file uploads in the **Image** dialog window.
+ *
+ * If not set, CKEditor will use {@link CKEDITOR.config#filebrowserUploadUrl}.
+ *
+ * config.filebrowserImageUploadUrl = '/uploader/upload.php?type=Images';
+ *
* @since 3.0
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserImageUploadUrl = '/uploader/upload.php?type=Images';
+ * @cfg {String} [filebrowserImageUploadUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The location of a script that handles file uploads in the Flash dialog.
- * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserUploadUrl}.
- * @name CKEDITOR.config.filebrowserFlashUploadUrl
+ * The location of the script that handles file uploads in the **Flash** dialog window.
+ *
+ * If not set, CKEditor will use {@link CKEDITOR.config#filebrowserUploadUrl}.
+ *
+ * config.filebrowserFlashUploadUrl = '/uploader/upload.php?type=Flash';
+ *
* @since 3.0
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserFlashUploadUrl = '/uploader/upload.php?type=Flash';
+ * @cfg {String} filebrowserFlashUploadUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Link tab of Image dialog.
- * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
- * @name CKEDITOR.config.filebrowserImageBrowseLinkUrl
+ * The location of an external file browser that should be launched when the **Browse Server**
+ * button is pressed in the **Link** tab of the **Image** dialog window.
+ *
+ * If not set, CKEditor will use {@link CKEDITOR.config#filebrowserBrowseUrl}.
+ *
+ * config.filebrowserImageBrowseLinkUrl = '/browser/browse.php';
+ *
* @since 3.2
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * config.filebrowserImageBrowseLinkUrl = '/browser/browse.php';
+ * @cfg {String} [filebrowserImageBrowseLinkUrl='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
/**
- * The "features" to use in the file browser popup window.
- * @name CKEDITOR.config.filebrowserWindowFeatures
+ * The features to use in the file browser popup window.
+ *
+ * config.filebrowserWindowFeatures = 'resizable=yes,scrollbars=no';
+ *
* @since 3.4.1
- * @type String
- * @default 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes'
- * @example
- * config.filebrowserWindowFeatures = 'resizable=yes,scrollbars=no';
+ * @cfg {String} [filebrowserWindowFeatures='location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes']
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The width of the file browser popup window. It can be a number denoting a value in
+ * pixels or a percent string.
+ *
+ * config.filebrowserWindowWidth = 750;
+ *
+ * config.filebrowserWindowWidth = '50%';
+ *
+ * @cfg {Number/String} [filebrowserWindowWidth='80%']
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The height of the file browser popup window. It can be a number denoting a value in
+ * pixels or a percent string.
+ *
+ * config.filebrowserWindowHeight = 580;
+ *
+ * config.filebrowserWindowHeight = '50%';
+ *
+ * @cfg {Number/String} [filebrowserWindowHeight='70%']
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/find/dialogs/find.js b/devel/third-party/ckeditor/plugins/find/dialogs/find.js
index bc9f8a4..a7168c7 100644
--- a/devel/third-party/ckeditor/plugins/find/dialogs/find.js
+++ b/devel/third-party/ckeditor/plugins/find/dialogs/find.js
@@ -1,818 +1,718 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-(function()
-{
+(function() {
var isReplace;
- function findEvaluator( node )
- {
+ function findEvaluator( node ) {
return node.type == CKEDITOR.NODE_TEXT && node.getLength() > 0 && ( !isReplace || !node.isReadOnly() );
}
- /**
- * Elements which break characters been considered as sequence.
- */
- function nonCharactersBoundary( node )
- {
- return !( node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary(
- CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$empty, CKEDITOR.dtd.$nonEditable ) ) );
+ // Elements which break characters been considered as sequence.
+ function nonCharactersBoundary( node ) {
+ return !( node.type == CKEDITOR.NODE_ELEMENT && node.isBlockBoundary( CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$empty, CKEDITOR.dtd.$nonEditable ) ) );
}
- /**
- * Get the cursor object which represent both current character and it's dom
- * position thing.
- */
- var cursorStep = function()
- {
- return {
- textNode : this.textNode,
- offset : this.offset,
- character : this.textNode ?
- this.textNode.getText().charAt( this.offset ) : null,
- hitMatchBoundary : this._.matchBoundary
+ // Get the cursor object which represent both current character and it's dom
+ // position thing.
+ var cursorStep = function() {
+ return {
+ textNode: this.textNode,
+ offset: this.offset,
+ character: this.textNode ? this.textNode.getText().charAt( this.offset ) : null,
+ hitMatchBoundary: this._.matchBoundary
+ };
};
- };
var pages = [ 'find', 'replace' ],
fieldsMapping = [
- [ 'txtFindFind', 'txtFindReplace' ],
- [ 'txtFindCaseChk', 'txtReplaceCaseChk' ],
- [ 'txtFindWordChk', 'txtReplaceWordChk' ],
- [ 'txtFindCyclic', 'txtReplaceCyclic' ] ];
-
- /**
- * Synchronize corresponding filed values between 'replace' and 'find' pages.
- * @param {String} currentPageId The page id which receive values.
- */
- function syncFieldsBetweenTabs( currentPageId )
- {
- var sourceIndex, targetIndex,
- sourceField, targetField;
+ [ 'txtFindFind', 'txtFindReplace' ],
+ [ 'txtFindCaseChk', 'txtReplaceCaseChk' ],
+ [ 'txtFindWordChk', 'txtReplaceWordChk' ],
+ [ 'txtFindCyclic', 'txtReplaceCyclic' ] ];
+
+ // Synchronize corresponding filed values between 'replace' and 'find' pages.
+ // @param {String} currentPageId The page id which receive values.
+ function syncFieldsBetweenTabs( currentPageId ) {
+ var sourceIndex, targetIndex, sourceField, targetField;
sourceIndex = currentPageId === 'find' ? 1 : 0;
targetIndex = 1 - sourceIndex;
- var i, l = fieldsMapping.length;
- for ( i = 0 ; i < l ; i++ )
- {
- sourceField = this.getContentElement( pages[ sourceIndex ],
- fieldsMapping[ i ][ sourceIndex ] );
- targetField = this.getContentElement( pages[ targetIndex ],
- fieldsMapping[ i ][ targetIndex ] );
+ var i,
+ l = fieldsMapping.length;
+ for ( i = 0; i < l; i++ ) {
+ sourceField = this.getContentElement( pages[ sourceIndex ], fieldsMapping[ i ][ sourceIndex ] );
+ targetField = this.getContentElement( pages[ targetIndex ], fieldsMapping[ i ][ targetIndex ] );
targetField.setValue( sourceField.getValue() );
}
}
- var findDialog = function( editor, startupPage )
- {
- // Style object for highlights: (#5018)
- // 1. Defined as full match style to avoid compromising ordinary text color styles.
- // 2. Must be apply onto inner-most text to avoid conflicting with ordinary text color styles visually.
- var highlightStyle = new CKEDITOR.style( CKEDITOR.tools.extend( { fullMatch : true, childRule : function(){ return false; } },
- editor.config.find_highlight ) );
-
- /**
- * Iterator which walk through the specified range char by char. By
- * default the walking will not stop at the character boundaries, until
- * the end of the range is encountered.
- * @param { CKEDITOR.dom.range } range
- * @param {Boolean} matchWord Whether the walking will stop at character boundary.
- */
- var characterWalker = function( range , matchWord )
- {
- var walker =
- new CKEDITOR.dom.walker( range );
- walker.guard = matchWord ? nonCharactersBoundary : null;
- walker[ 'evaluator' ] = findEvaluator;
- walker.breakOnFalse = true;
-
- this._ = {
- matchWord : matchWord,
- walker : walker,
- matchBoundary : false
- };
- };
-
- characterWalker.prototype = {
- next : function()
- {
- return this.move();
- },
-
- back : function()
- {
- return this.move( true );
- },
-
- move : function( rtl )
- {
- var currentTextNode = this.textNode;
- // Already at the end of document, no more character available.
- if ( currentTextNode === null )
- return cursorStep.call( this );
+ var findDialog = function( editor, startupPage ) {
+ // Style object for highlights: (#5018)
+ // 1. Defined as full match style to avoid compromising ordinary text color styles.
+ // 2. Must be apply onto inner-most text to avoid conflicting with ordinary text color styles visually.
+ var highlightStyle = new CKEDITOR.style( CKEDITOR.tools.extend({
+ attributes: { 'data-cke-highlight':1 },
+ fullMatch: 1, ignoreReadonly: 1, childRule: function() {
+ return 0;
+ } }, editor.config.find_highlight, true ) );
+
+ // Iterator which walk through the specified range char by char. By
+ // default the walking will not stop at the character boundaries, until
+ // the end of the range is encountered.
+ // @param { CKEDITOR.dom.range } range
+ // @param {Boolean} matchWord Whether the walking will stop at character boundary.
+ var characterWalker = function( range, matchWord ) {
+ var self = this;
+ var walker = new CKEDITOR.dom.walker( range );
+ walker.guard = matchWord ? nonCharactersBoundary : function( node ) {
+ !nonCharactersBoundary( node ) && ( self._.matchBoundary = true );
+ };
+ walker[ 'evaluator' ] = findEvaluator;
+ walker.breakOnFalse = 1;
+
+ if ( range.startContainer.type == CKEDITOR.NODE_TEXT ) {
+ this.textNode = range.startContainer;
+ this.offset = range.startOffset - 1;
+ }
- this._.matchBoundary = false;
+ this._ = {
+ matchWord: matchWord,
+ walker: walker,
+ matchBoundary: false
+ };
+ };
- // There are more characters in the text node, step forward.
- if ( currentTextNode
- && rtl
- && this.offset > 0 )
- {
- this.offset--;
- return cursorStep.call( this );
- }
- else if ( currentTextNode
- && this.offset < currentTextNode.getLength() - 1 )
- {
- this.offset++;
- return cursorStep.call( this );
- }
- else
- {
- currentTextNode = null;
- // At the end of the text node, walking foward for the next.
- while ( !currentTextNode )
- {
- currentTextNode =
- this._.walker[ rtl ? 'previous' : 'next' ].call( this._.walker );
-
- // Stop searching if we're need full word match OR
- // already reach document end.
- if ( this._.matchWord && !currentTextNode
- ||this._.walker._.end )
- break;
+ characterWalker.prototype = {
+ next: function() {
+ return this.move();
+ },
- // Marking as match character boundaries.
- if ( !currentTextNode
- && !nonCharactersBoundary( this._.walker.current ) )
- this._.matchBoundary = true;
+ back: function() {
+ return this.move( true );
+ },
+ move: function( rtl ) {
+ var currentTextNode = this.textNode;
+ // Already at the end of document, no more character available.
+ if ( currentTextNode === null )
+ return cursorStep.call( this );
+
+ this._.matchBoundary = false;
+
+ // There are more characters in the text node, step forward.
+ if ( currentTextNode && rtl && this.offset > 0 ) {
+ this.offset--;
+ return cursorStep.call( this );
+ } else if ( currentTextNode && this.offset < currentTextNode.getLength() - 1 ) {
+ this.offset++;
+ return cursorStep.call( this );
+ } else {
+ currentTextNode = null;
+ // At the end of the text node, walking foward for the next.
+ while ( !currentTextNode ) {
+ currentTextNode = this._.walker[ rtl ? 'previous' : 'next' ].call( this._.walker );
+
+ // Stop searching if we're need full word match OR
+ // already reach document end.
+ if ( this._.matchWord && !currentTextNode || this._.walker._.end )
+ break;
+ }
+ // Found a fresh text node.
+ this.textNode = currentTextNode;
+ if ( currentTextNode )
+ this.offset = rtl ? currentTextNode.getLength() - 1 : 0;
+ else
+ this.offset = 0;
}
- // Found a fresh text node.
- this.textNode = currentTextNode;
- if ( currentTextNode )
- this.offset = rtl ? currentTextNode.getLength() - 1 : 0;
- else
- this.offset = 0;
- }
-
- return cursorStep.call( this );
- }
- };
+ return cursorStep.call( this );
+ }
- /**
- * A range of cursors which represent a trunk of characters which try to
- * match, it has the same length as the pattern string.
- */
- var characterRange = function( characterWalker, rangeLength )
- {
- this._ = {
- walker : characterWalker,
- cursors : [],
- rangeLength : rangeLength,
- highlightRange : null,
- isMatched : false
};
- };
- characterRange.prototype = {
/**
- * Translate this range to {@link CKEDITOR.dom.range}
+ * A range of cursors which represent a trunk of characters which try to
+ * match, it has the same length as the pattern string.
+ *
+ * **Note:** This class isn't accessible from global scope.
+ *
+ * @private
+ * @class CKEDITOR.plugins.find.characterRange
+ * @constructor Creates a characterRange class instance.
*/
- toDomRange : function()
- {
- var range = new CKEDITOR.dom.range( editor.document );
- var cursors = this._.cursors;
- if ( cursors.length < 1 )
- {
- var textNode = this._.walker.textNode;
- if ( textNode )
+ var characterRange = function( characterWalker, rangeLength ) {
+ this._ = {
+ walker: characterWalker,
+ cursors: [],
+ rangeLength: rangeLength,
+ highlightRange: null,
+ isMatched: 0
+ };
+ };
+
+ characterRange.prototype = {
+ /**
+ * Translate this range to {@link CKEDITOR.dom.range}.
+ */
+ toDomRange: function() {
+ var range = editor.createRange();
+ var cursors = this._.cursors;
+ if ( cursors.length < 1 ) {
+ var textNode = this._.walker.textNode;
+ if ( textNode )
range.setStartAfter( textNode );
- else
- return null;
- }
- else
- {
- var first = cursors[0],
+ else
+ return null;
+ } else {
+ var first = cursors[ 0 ],
last = cursors[ cursors.length - 1 ];
- range.setStart( first.textNode, first.offset );
- range.setEnd( last.textNode, last.offset + 1 );
- }
+ range.setStart( first.textNode, first.offset );
+ range.setEnd( last.textNode, last.offset + 1 );
+ }
- return range;
- },
- /**
- * Reflect the latest changes from dom range.
- */
- updateFromDomRange : function( domRange )
- {
- var cursor,
+ return range;
+ },
+
+ /**
+ * Reflect the latest changes from dom range.
+ */
+ updateFromDomRange: function( domRange ) {
+ var cursor,
walker = new characterWalker( domRange );
- this._.cursors = [];
- do
- {
- cursor = walker.next();
- if ( cursor.character )
- this._.cursors.push( cursor );
- }
- while ( cursor.character );
- this._.rangeLength = this._.cursors.length;
- },
+ this._.cursors = [];
+ do {
+ cursor = walker.next();
+ if ( cursor.character ) this._.cursors.push( cursor );
+ }
+ while ( cursor.character );
+ this._.rangeLength = this._.cursors.length;
+ },
- setMatched : function()
- {
- this._.isMatched = true;
- },
+ setMatched: function() {
+ this._.isMatched = true;
+ },
- clearMatched : function()
- {
- this._.isMatched = false;
- },
+ clearMatched: function() {
+ this._.isMatched = false;
+ },
- isMatched : function()
- {
- return this._.isMatched;
- },
+ isMatched: function() {
+ return this._.isMatched;
+ },
- /**
- * Hightlight the current matched chunk of text.
- */
- highlight : function()
- {
- // Do not apply if nothing is found.
- if ( this._.cursors.length < 1 )
- return;
-
- // Remove the previous highlight if there's one.
- if ( this._.highlightRange )
- this.removeHighlight();
-
- // Apply the highlight.
- var range = this.toDomRange(),
- bookmark = range.createBookmark();
- highlightStyle.applyToRange( range );
- range.moveToBookmark( bookmark );
- this._.highlightRange = range;
-
- // Scroll the editor to the highlighted area.
- var element = range.startContainer;
- if ( element.type != CKEDITOR.NODE_ELEMENT )
- element = element.getParent();
- element.scrollIntoView();
-
- // Update the character cursors.
- this.updateFromDomRange( range );
- },
+ /**
+ * Hightlight the current matched chunk of text.
+ */
+ highlight: function() {
+ // Do not apply if nothing is found.
+ if ( this._.cursors.length < 1 )
+ return;
+
+ // Remove the previous highlight if there's one.
+ if ( this._.highlightRange )
+ this.removeHighlight();
+
+ // Apply the highlight.
+ var range = this.toDomRange(),
+ bookmark = range.createBookmark();
+ highlightStyle.applyToRange( range );
+ range.moveToBookmark( bookmark );
+ this._.highlightRange = range;
+
+ // Scroll the editor to the highlighted area.
+ var element = range.startContainer;
+ if ( element.type != CKEDITOR.NODE_ELEMENT )
+ element = element.getParent();
+ element.scrollIntoView();
+
+ // Update the character cursors.
+ this.updateFromDomRange( range );
+ },
- /**
- * Remove highlighted find result.
- */
- removeHighlight : function()
- {
- if ( !this._.highlightRange )
- return;
-
- var bookmark = this._.highlightRange.createBookmark();
- highlightStyle.removeFromRange( this._.highlightRange );
- this._.highlightRange.moveToBookmark( bookmark );
- this.updateFromDomRange( this._.highlightRange );
- this._.highlightRange = null;
- },
-
- isReadOnly : function()
- {
- if ( !this._.highlightRange )
- return 0;
+ /**
+ * Remove highlighted find result.
+ */
+ removeHighlight: function() {
+ if ( !this._.highlightRange )
+ return;
+
+ var bookmark = this._.highlightRange.createBookmark();
+ highlightStyle.removeFromRange( this._.highlightRange );
+ this._.highlightRange.moveToBookmark( bookmark );
+ this.updateFromDomRange( this._.highlightRange );
+ this._.highlightRange = null;
+ },
- return this._.highlightRange.startContainer.isReadOnly();
- },
+ isReadOnly: function() {
+ if ( !this._.highlightRange )
+ return 0;
- moveBack : function()
- {
- var retval = this._.walker.back(),
- cursors = this._.cursors;
+ return this._.highlightRange.startContainer.isReadOnly();
+ },
- if ( retval.hitMatchBoundary )
- this._.cursors = cursors = [];
+ moveBack: function() {
+ var retval = this._.walker.back(),
+ cursors = this._.cursors;
- cursors.unshift( retval );
- if ( cursors.length > this._.rangeLength )
- cursors.pop();
+ if ( retval.hitMatchBoundary )
+ this._.cursors = cursors = [];
- return retval;
- },
+ cursors.unshift( retval );
+ if ( cursors.length > this._.rangeLength )
+ cursors.pop();
- moveNext : function()
- {
- var retval = this._.walker.next(),
- cursors = this._.cursors;
+ return retval;
+ },
- // Clear the cursors queue if we've crossed a match boundary.
- if ( retval.hitMatchBoundary )
- this._.cursors = cursors = [];
+ moveNext: function() {
+ var retval = this._.walker.next(),
+ cursors = this._.cursors;
- cursors.push( retval );
- if ( cursors.length > this._.rangeLength )
- cursors.shift();
+ // Clear the cursors queue if we've crossed a match boundary.
+ if ( retval.hitMatchBoundary )
+ this._.cursors = cursors = [];
- return retval;
- },
+ cursors.push( retval );
+ if ( cursors.length > this._.rangeLength )
+ cursors.shift();
- getEndCharacter : function()
- {
- var cursors = this._.cursors;
- if ( cursors.length < 1 )
- return null;
+ return retval;
+ },
+
+ getEndCharacter: function() {
+ var cursors = this._.cursors;
+ if ( cursors.length < 1 )
+ return null;
- return cursors[ cursors.length - 1 ].character;
- },
+ return cursors[ cursors.length - 1 ].character;
+ },
- getNextCharacterRange : function( maxLength )
- {
- var lastCursor,
- nextRangeWalker,
+ getNextCharacterRange: function( maxLength ) {
+ var lastCursor, nextRangeWalker,
cursors = this._.cursors;
- if ( ( lastCursor = cursors[ cursors.length - 1 ] ) && lastCursor.textNode )
- nextRangeWalker = new characterWalker( getRangeAfterCursor( lastCursor ) );
- // In case it's an empty range (no cursors), figure out next range from walker (#4951).
- else
- nextRangeWalker = this._.walker;
+ if ( ( lastCursor = cursors[ cursors.length - 1 ] ) && lastCursor.textNode )
+ nextRangeWalker = new characterWalker( getRangeAfterCursor( lastCursor ) );
+ // In case it's an empty range (no cursors), figure out next range from walker (#4951).
+ else
+ nextRangeWalker = this._.walker;
+
+ return new characterRange( nextRangeWalker, maxLength );
+ },
- return new characterRange( nextRangeWalker, maxLength );
- },
+ getCursors: function() {
+ return this._.cursors;
+ }
+ };
- getCursors : function()
- {
- return this._.cursors;
+
+ // The remaining document range after the character cursor.
+ function getRangeAfterCursor( cursor, inclusive ) {
+ var range = editor.createRange();
+ range.setStart( cursor.textNode, ( inclusive ? cursor.offset : cursor.offset + 1 ) );
+ range.setEndAt( editor.editable(), CKEDITOR.POSITION_BEFORE_END );
+ return range;
}
- };
+ // The document range before the character cursor.
+ function getRangeBeforeCursor( cursor ) {
+ var range = editor.createRange();
+ range.setStartAt( editor.editable(), CKEDITOR.POSITION_AFTER_START );
+ range.setEnd( cursor.textNode, cursor.offset );
+ return range;
+ }
- // The remaining document range after the character cursor.
- function getRangeAfterCursor( cursor , inclusive )
- {
- var range = new CKEDITOR.dom.range();
- range.setStart( cursor.textNode,
- ( inclusive ? cursor.offset : cursor.offset + 1 ) );
- range.setEndAt( editor.document.getBody(),
- CKEDITOR.POSITION_BEFORE_END );
- return range;
- }
+ var KMP_NOMATCH = 0,
+ KMP_ADVANCED = 1,
+ KMP_MATCHED = 2;
+
+ // Examination the occurrence of a word which implement KMP algorithm.
+ var kmpMatcher = function( pattern, ignoreCase ) {
+ var overlap = [ -1 ];
+ if ( ignoreCase )
+ pattern = pattern.toLowerCase();
+ for ( var i = 0; i < pattern.length; i++ ) {
+ overlap.push( overlap[ i ] + 1 );
+ while ( overlap[ i + 1 ] > 0 && pattern.charAt( i ) != pattern.charAt( overlap[ i + 1 ] - 1 ) )
+ overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1;
+ }
- // The document range before the character cursor.
- function getRangeBeforeCursor( cursor )
- {
- var range = new CKEDITOR.dom.range();
- range.setStartAt( editor.document.getBody(),
- CKEDITOR.POSITION_AFTER_START );
- range.setEnd( cursor.textNode, cursor.offset );
- return range;
- }
+ this._ = {
+ overlap: overlap,
+ state: 0,
+ ignoreCase: !!ignoreCase,
+ pattern: pattern
+ };
+ };
+
+ kmpMatcher.prototype = {
+ feedCharacter: function( c ) {
+ if ( this._.ignoreCase )
+ c = c.toLowerCase();
+
+ while ( true ) {
+ if ( c == this._.pattern.charAt( this._.state ) ) {
+ this._.state++;
+ if ( this._.state == this._.pattern.length ) {
+ this._.state = 0;
+ return KMP_MATCHED;
+ }
+ return KMP_ADVANCED;
+ } else if ( !this._.state )
+ return KMP_NOMATCH;
+ else
+ this._.state = this._.overlap[ this._.state ];
+ }
- var KMP_NOMATCH = 0,
- KMP_ADVANCED = 1,
- KMP_MATCHED = 2;
- /**
- * Examination the occurrence of a word which implement KMP algorithm.
- */
- var kmpMatcher = function( pattern, ignoreCase )
- {
- var overlap = [ -1 ];
- if ( ignoreCase )
- pattern = pattern.toLowerCase();
- for ( var i = 0 ; i < pattern.length ; i++ )
- {
- overlap.push( overlap[i] + 1 );
- while ( overlap[ i + 1 ] > 0
- && pattern.charAt( i ) != pattern
- .charAt( overlap[ i + 1 ] - 1 ) )
- overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1;
- }
+ return null;
+ },
- this._ = {
- overlap : overlap,
- state : 0,
- ignoreCase : !!ignoreCase,
- pattern : pattern
+ reset: function() {
+ this._.state = 0;
+ }
};
- };
- kmpMatcher.prototype =
- {
- feedCharacter : function( c )
- {
- if ( this._.ignoreCase )
- c = c.toLowerCase();
+ var wordSeparatorRegex = /[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/;
- while ( true )
- {
- if ( c == this._.pattern.charAt( this._.state ) )
- {
- this._.state++;
- if ( this._.state == this._.pattern.length )
- {
- this._.state = 0;
- return KMP_MATCHED;
- }
- return KMP_ADVANCED;
+ var isWordSeparator = function( c ) {
+ if ( !c )
+ return true;
+ var code = c.charCodeAt( 0 );
+ return ( code >= 9 && code <= 0xd ) || ( code >= 0x2000 && code <= 0x200a ) || wordSeparatorRegex.test( c );
+ };
+
+ var finder = {
+ searchRange: null,
+ matchRange: null,
+ find: function( pattern, matchCase, matchWord, matchCyclic, highlightMatched, cyclicRerun ) {
+ if ( !this.matchRange )
+ this.matchRange = new characterRange( new characterWalker( this.searchRange ), pattern.length );
+ else {
+ this.matchRange.removeHighlight();
+ this.matchRange = this.matchRange.getNextCharacterRange( pattern.length );
}
- else if ( !this._.state )
- return KMP_NOMATCH;
- else
- this._.state = this._.overlap[ this._.state ];
- }
- return null;
- },
+ var matcher = new kmpMatcher( pattern, !matchCase ),
+ matchState = KMP_NOMATCH,
+ character = '%';
+
+ while ( character !== null ) {
+ this.matchRange.moveNext();
+ while ( ( character = this.matchRange.getEndCharacter() ) ) {
+ matchState = matcher.feedCharacter( character );
+ if ( matchState == KMP_MATCHED )
+ break;
+ if ( this.matchRange.moveNext().hitMatchBoundary )
+ matcher.reset();
+ }
- reset : function()
- {
- this._.state = 0;
- }
- };
+ if ( matchState == KMP_MATCHED ) {
+ if ( matchWord ) {
+ var cursors = this.matchRange.getCursors(),
+ tail = cursors[ cursors.length - 1 ],
+ head = cursors[ 0 ];
- var wordSeparatorRegex =
- /[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/;
-
- var isWordSeparator = function( c )
- {
- if ( !c )
- return true;
- var code = c.charCodeAt( 0 );
- return ( code >= 9 && code <= 0xd )
- || ( code >= 0x2000 && code <= 0x200a )
- || wordSeparatorRegex.test( c );
- };
+ var rangeBefore = getRangeBeforeCursor( head ),
+ rangeAfter = getRangeAfterCursor( tail );
- var finder = {
- searchRange : null,
- matchRange : null,
- find : function( pattern, matchCase, matchWord, matchCyclic, highlightMatched, cyclicRerun )
- {
- if ( !this.matchRange )
- this.matchRange =
- new characterRange(
- new characterWalker( this.searchRange ),
- pattern.length );
- else
- {
- this.matchRange.removeHighlight();
- this.matchRange = this.matchRange.getNextCharacterRange( pattern.length );
- }
+ // The word boundary checks requires to trim the text nodes. (#9036)
+ rangeBefore.trim();
+ rangeAfter.trim();
- var matcher = new kmpMatcher( pattern, !matchCase ),
- matchState = KMP_NOMATCH,
- character = '%';
+ var headWalker = new characterWalker( rangeBefore, true ),
+ tailWalker = new characterWalker( rangeAfter, true );
- while ( character !== null )
- {
- this.matchRange.moveNext();
- while ( ( character = this.matchRange.getEndCharacter() ) )
- {
- matchState = matcher.feedCharacter( character );
- if ( matchState == KMP_MATCHED )
- break;
- if ( this.matchRange.moveNext().hitMatchBoundary )
- matcher.reset();
+ if ( !( isWordSeparator( headWalker.back().character ) && isWordSeparator( tailWalker.next().character ) ) )
+ continue;
+ }
+ this.matchRange.setMatched();
+ if ( highlightMatched !== false )
+ this.matchRange.highlight();
+ return true;
+ }
}
- if ( matchState == KMP_MATCHED )
- {
- if ( matchWord )
- {
- var cursors = this.matchRange.getCursors(),
- tail = cursors[ cursors.length - 1 ],
- head = cursors[ 0 ];
+ this.matchRange.clearMatched();
+ this.matchRange.removeHighlight();
+ // Clear current session and restart with the default search
+ // range.
+ // Re-run the finding once for cyclic.(#3517)
+ if ( matchCyclic && !cyclicRerun ) {
+ this.searchRange = getSearchRange( 1 );
+ this.matchRange = null;
+ return arguments.callee.apply( this, Array.prototype.slice.call( arguments ).concat( [ true ] ) );
+ }
- var headWalker = new characterWalker( getRangeBeforeCursor( head ), true ),
- tailWalker = new characterWalker( getRangeAfterCursor( tail ), true );
+ return false;
+ },
- if ( ! ( isWordSeparator( headWalker.back().character )
- && isWordSeparator( tailWalker.next().character ) ) )
- continue;
+ // Record how much replacement occurred toward one replacing.
+ replaceCounter: 0,
+
+ replace: function( dialog, pattern, newString, matchCase, matchWord, matchCyclic, isReplaceAll ) {
+ isReplace = 1;
+
+ // Successiveness of current replace/find.
+ var result = 0;
+
+ // 1. Perform the replace when there's already a match here.
+ // 2. Otherwise perform the find but don't replace it immediately.
+ if ( this.matchRange && this.matchRange.isMatched() && !this.matchRange._.isReplaced && !this.matchRange.isReadOnly() ) {
+ // Turn off highlight for a while when saving snapshots.
+ this.matchRange.removeHighlight();
+ var domRange = this.matchRange.toDomRange();
+ var text = editor.document.createText( newString );
+ if ( !isReplaceAll ) {
+ // Save undo snaps before and after the replacement.
+ var selection = editor.getSelection();
+ selection.selectRanges( [ domRange ] );
+ editor.fire( 'saveSnapshot' );
+ }
+ domRange.deleteContents();
+ domRange.insertNode( text );
+ if ( !isReplaceAll ) {
+ selection.selectRanges( [ domRange ] );
+ editor.fire( 'saveSnapshot' );
}
- this.matchRange.setMatched();
- if ( highlightMatched !== false )
+ this.matchRange.updateFromDomRange( domRange );
+ if ( !isReplaceAll )
this.matchRange.highlight();
- return true;
- }
- }
-
- this.matchRange.clearMatched();
- this.matchRange.removeHighlight();
- // Clear current session and restart with the default search
- // range.
- // Re-run the finding once for cyclic.(#3517)
- if ( matchCyclic && !cyclicRerun )
- {
- this.searchRange = getSearchRange( true );
- this.matchRange = null;
- return arguments.callee.apply( this,
- Array.prototype.slice.call( arguments ).concat( [ true ] ) );
- }
+ this.matchRange._.isReplaced = true;
+ this.replaceCounter++;
+ result = 1;
+ } else
+ result = this.find( pattern, matchCase, matchWord, matchCyclic, !isReplaceAll );
- return false;
- },
+ isReplace = 0;
- /**
- * Record how much replacement occurred toward one replacing.
- */
- replaceCounter : 0,
-
- replace : function( dialog, pattern, newString, matchCase, matchWord,
- matchCyclic , isReplaceAll )
- {
- isReplace = 1;
-
- // Successiveness of current replace/find.
- var result = false;
-
- // 1. Perform the replace when there's already a match here.
- // 2. Otherwise perform the find but don't replace it immediately.
- if ( this.matchRange && this.matchRange.isMatched()
- && !this.matchRange._.isReplaced && !this.matchRange.isReadOnly() )
- {
- // Turn off highlight for a while when saving snapshots.
- this.matchRange.removeHighlight();
- var domRange = this.matchRange.toDomRange();
- var text = editor.document.createText( newString );
- if ( !isReplaceAll )
- {
- // Save undo snaps before and after the replacement.
- var selection = editor.getSelection();
- selection.selectRanges( [ domRange ] );
- editor.fire( 'saveSnapshot' );
- }
- domRange.deleteContents();
- domRange.insertNode( text );
- if ( !isReplaceAll )
- {
- selection.selectRanges( [ domRange ] );
- editor.fire( 'saveSnapshot' );
- }
- this.matchRange.updateFromDomRange( domRange );
- if ( !isReplaceAll )
- this.matchRange.highlight();
- this.matchRange._.isReplaced = true;
- this.replaceCounter++;
- result = true;
+ return result;
}
- else
- result = this.find( pattern, matchCase, matchWord, matchCyclic, !isReplaceAll );
-
- isReplace = 0;
+ };
- return result;
+ // The range in which find/replace happened, receive from user
+ // selection prior.
+ function getSearchRange( isDefault ) {
+ var searchRange,
+ sel = editor.getSelection(),
+ editable = editor.editable();
+
+ if ( sel && !isDefault ) {
+ searchRange = sel.getRanges()[ 0 ].clone();
+ searchRange.collapse( true );
+ } else {
+ searchRange = editor.createRange();
+ searchRange.setStartAt( editable, CKEDITOR.POSITION_AFTER_START );
+ }
+ searchRange.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );
+ return searchRange;
}
- };
- /**
- * The range in which find/replace happened, receive from user
- * selection prior.
- */
- function getSearchRange( isDefault )
- {
- var searchRange,
- sel = editor.getSelection(),
- body = editor.document.getBody();
- if ( sel && !isDefault )
- {
- searchRange = sel.getRanges()[ 0 ].clone();
- searchRange.collapse( true );
- }
- else
- {
- searchRange = new CKEDITOR.dom.range();
- searchRange.setStartAt( body, CKEDITOR.POSITION_AFTER_START );
- }
- searchRange.setEndAt( body, CKEDITOR.POSITION_BEFORE_END );
- return searchRange;
- }
-
- return {
- title : editor.lang.findAndReplace.title,
- resizable : CKEDITOR.DIALOG_RESIZE_NONE,
- minWidth : 350,
- minHeight : 165,
- buttons : [ CKEDITOR.dialog.cancelButton ], //Cancel button only.
- contents : [
- {
- id : 'find',
- label : editor.lang.findAndReplace.find,
- title : editor.lang.findAndReplace.find,
- accessKey : '',
- elements : [
+ var lang = editor.lang.find;
+ return {
+ title: lang.title,
+ resizable: CKEDITOR.DIALOG_RESIZE_NONE,
+ minWidth: 350,
+ minHeight: 170,
+ buttons: [ CKEDITOR.dialog.cancelButton ], // Cancel button only.
+ contents: [
+ {
+ id: 'find',
+ label: lang.find,
+ title: lang.find,
+ accessKey: '',
+ elements: [
{
- type : 'hbox',
- widths : [ '230px', '90px' ],
- children :
- [
- {
- type : 'text',
- id : 'txtFindFind',
- label : editor.lang.findAndReplace.findWhat,
- isChanged : false,
- labelLayout : 'horizontal',
- accessKey : 'F'
- },
- {
- type : 'button',
- align : 'left',
- style : 'width:100%',
- label : editor.lang.findAndReplace.find,
- onClick : function()
- {
- var dialog = this.getDialog();
- if ( !finder.find( dialog.getValueOf( 'find', 'txtFindFind' ),
- dialog.getValueOf( 'find', 'txtFindCaseChk' ),
- dialog.getValueOf( 'find', 'txtFindWordChk' ),
- dialog.getValueOf( 'find', 'txtFindCyclic' ) ) )
- alert( editor.lang.findAndReplace
- .notFoundMsg );
- }
- }
- ]
+ type: 'hbox',
+ widths: [ '230px', '90px' ],
+ children: [
+ {
+ type: 'text',
+ id: 'txtFindFind',
+ label: lang.findWhat,
+ isChanged: false,
+ labelLayout: 'horizontal',
+ accessKey: 'F'
},
+ {
+ type: 'button',
+ id: 'btnFind',
+ align: 'left',
+ style: 'width:100%',
+ label: lang.find,
+ onClick: function() {
+ var dialog = this.getDialog();
+ if ( !finder.find( dialog.getValueOf( 'find', 'txtFindFind' ), dialog.getValueOf( 'find', 'txtFindCaseChk' ), dialog.getValueOf( 'find', 'txtFindWordChk' ), dialog.getValueOf( 'find', 'txtFindCyclic' ) ) )
+ alert( lang.notFoundMsg );
+ }
+ }
+ ]
+ },
{
- type : 'vbox',
- padding : 0,
- children :
- [
+ type: 'fieldset',
+ label: CKEDITOR.tools.htmlEncode( lang.findOptions ),
+ style: 'margin-top:29px',
+ children: [
+ {
+ type: 'vbox',
+ padding: 0,
+ children: [
{
- type : 'checkbox',
- id : 'txtFindCaseChk',
- isChanged : false,
- style : 'margin-top:28px',
- label : editor.lang.findAndReplace.matchCase
- },
+ type: 'checkbox',
+ id: 'txtFindCaseChk',
+ isChanged: false,
+ label: lang.matchCase
+ },
{
- type : 'checkbox',
- id : 'txtFindWordChk',
- isChanged : false,
- label : editor.lang.findAndReplace.matchWord
- },
+ type: 'checkbox',
+ id: 'txtFindWordChk',
+ isChanged: false,
+ label: lang.matchWord
+ },
{
- type : 'checkbox',
- id : 'txtFindCyclic',
- isChanged : false,
- 'default' : true,
- label : editor.lang.findAndReplace.matchCyclic
- }
+ type: 'checkbox',
+ id: 'txtFindCyclic',
+ isChanged: false,
+ 'default': true,
+ label: lang.matchCyclic
+ }
]
}
+ ]
+ }
]
},
- {
- id : 'replace',
- label : editor.lang.findAndReplace.replace,
- accessKey : 'M',
- elements : [
+ {
+ id: 'replace',
+ label: lang.replace,
+ accessKey: 'M',
+ elements: [
{
- type : 'hbox',
- widths : [ '230px', '90px' ],
- children :
- [
- {
- type : 'text',
- id : 'txtFindReplace',
- label : editor.lang.findAndReplace.findWhat,
- isChanged : false,
- labelLayout : 'horizontal',
- accessKey : 'F'
- },
- {
- type : 'button',
- align : 'left',
- style : 'width:100%',
- label : editor.lang.findAndReplace.replace,
- onClick : function()
- {
- var dialog = this.getDialog();
- if ( !finder.replace( dialog,
- dialog.getValueOf( 'replace', 'txtFindReplace' ),
- dialog.getValueOf( 'replace', 'txtReplace' ),
- dialog.getValueOf( 'replace', 'txtReplaceCaseChk' ),
- dialog.getValueOf( 'replace', 'txtReplaceWordChk' ),
- dialog.getValueOf( 'replace', 'txtReplaceCyclic' ) ) )
- alert( editor.lang.findAndReplace
- .notFoundMsg );
- }
- }
- ]
+ type: 'hbox',
+ widths: [ '230px', '90px' ],
+ children: [
+ {
+ type: 'text',
+ id: 'txtFindReplace',
+ label: lang.findWhat,
+ isChanged: false,
+ labelLayout: 'horizontal',
+ accessKey: 'F'
},
+ {
+ type: 'button',
+ id: 'btnFindReplace',
+ align: 'left',
+ style: 'width:100%',
+ label: lang.replace,
+ onClick: function() {
+ var dialog = this.getDialog();
+ if ( !finder.replace( dialog, dialog.getValueOf( 'replace', 'txtFindReplace' ), dialog.getValueOf( 'replace', 'txtReplace' ), dialog.getValueOf( 'replace', 'txtReplaceCaseChk' ), dialog.getValueOf( 'replace', 'txtReplaceWordChk' ), dialog.getValueOf( 'replace', 'txtReplaceCyclic' ) ) )
+ alert( lang.notFoundMsg );
+ }
+ }
+ ]
+ },
{
- type : 'hbox',
- widths : [ '230px', '90px' ],
- children :
- [
- {
- type : 'text',
- id : 'txtReplace',
- label : editor.lang.findAndReplace.replaceWith,
- isChanged : false,
- labelLayout : 'horizontal',
- accessKey : 'R'
- },
- {
- type : 'button',
- align : 'left',
- style : 'width:100%',
- label : editor.lang.findAndReplace.replaceAll,
- isChanged : false,
- onClick : function()
- {
- var dialog = this.getDialog();
- var replaceNums;
-
- finder.replaceCounter = 0;
-
- // Scope to full document.
- finder.searchRange = getSearchRange( true );
- if ( finder.matchRange )
- {
- finder.matchRange.removeHighlight();
- finder.matchRange = null;
- }
- editor.fire( 'saveSnapshot' );
- while ( finder.replace( dialog,
- dialog.getValueOf( 'replace', 'txtFindReplace' ),
- dialog.getValueOf( 'replace', 'txtReplace' ),
- dialog.getValueOf( 'replace', 'txtReplaceCaseChk' ),
- dialog.getValueOf( 'replace', 'txtReplaceWordChk' ),
- false, true ) )
- { /*jsl:pass*/ }
-
- if ( finder.replaceCounter )
- {
- alert( editor.lang.findAndReplace.replaceSuccessMsg.replace( /%1/, finder.replaceCounter ) );
- editor.fire( 'saveSnapshot' );
- }
- else
- alert( editor.lang.findAndReplace.notFoundMsg );
- }
- }
- ]
+ type: 'hbox',
+ widths: [ '230px', '90px' ],
+ children: [
+ {
+ type: 'text',
+ id: 'txtReplace',
+ label: lang.replaceWith,
+ isChanged: false,
+ labelLayout: 'horizontal',
+ accessKey: 'R'
},
+ {
+ type: 'button',
+ id: 'btnReplaceAll',
+ align: 'left',
+ style: 'width:100%',
+ label: lang.replaceAll,
+ isChanged: false,
+ onClick: function() {
+ var dialog = this.getDialog();
+ var replaceNums;
+
+ finder.replaceCounter = 0;
+
+ // Scope to full document.
+ finder.searchRange = getSearchRange( 1 );
+ if ( finder.matchRange ) {
+ finder.matchRange.removeHighlight();
+ finder.matchRange = null;
+ }
+ editor.fire( 'saveSnapshot' );
+ while ( finder.replace( dialog, dialog.getValueOf( 'replace', 'txtFindReplace' ), dialog.getValueOf( 'replace', 'txtReplace' ), dialog.getValueOf( 'replace', 'txtReplaceCaseChk' ), dialog.getValueOf( 'replace', 'txtReplaceWordChk' ), false, true ) ) {
+ /*jsl:pass*/
+ }
+
+ if ( finder.replaceCounter ) {
+ alert( lang.replaceSuccessMsg.replace( /%1/, finder.replaceCounter ) );
+ editor.fire( 'saveSnapshot' );
+ } else
+ alert( lang.notFoundMsg );
+ }
+ }
+ ]
+ },
{
- type : 'vbox',
- padding : 0,
- children :
- [
+ type: 'fieldset',
+ label: CKEDITOR.tools.htmlEncode( lang.findOptions ),
+ children: [
+ {
+ type: 'vbox',
+ padding: 0,
+ children: [
{
- type : 'checkbox',
- id : 'txtReplaceCaseChk',
- isChanged : false,
- label : editor.lang.findAndReplace
- .matchCase
- },
+ type: 'checkbox',
+ id: 'txtReplaceCaseChk',
+ isChanged: false,
+ label: lang.matchCase
+ },
{
- type : 'checkbox',
- id : 'txtReplaceWordChk',
- isChanged : false,
- label : editor.lang.findAndReplace
- .matchWord
- },
+ type: 'checkbox',
+ id: 'txtReplaceWordChk',
+ isChanged: false,
+ label: lang.matchWord
+ },
{
- type : 'checkbox',
- id : 'txtReplaceCyclic',
- isChanged : false,
- 'default' : true,
- label : editor.lang.findAndReplace
- .matchCyclic
- }
+ type: 'checkbox',
+ id: 'txtReplaceCyclic',
+ isChanged: false,
+ 'default': true,
+ label: lang.matchCyclic
+ }
]
}
+ ]
+ }
]
}
- ],
- onLoad : function()
- {
- var dialog = this;
-
- //keep track of the current pattern field in use.
- var patternField, wholeWordChkField;
-
- //Ignore initial page select on dialog show
- var isUserSelect = false;
- this.on('hide', function()
- {
- isUserSelect = false;
- } );
- this.on('show', function()
- {
- isUserSelect = true;
- } );
-
- this.selectPage = CKEDITOR.tools.override( this.selectPage, function( originalFunc )
- {
- return function( pageId )
- {
+ ],
+ onLoad: function() {
+ var dialog = this;
+
+ // Keep track of the current pattern field in use.
+ var patternField, wholeWordChkField;
+
+ // Ignore initial page select on dialog show
+ var isUserSelect = 0;
+ this.on( 'hide', function() {
+ isUserSelect = 0;
+ });
+ this.on( 'show', function() {
+ isUserSelect = 1;
+ });
+
+ this.selectPage = CKEDITOR.tools.override( this.selectPage, function( originalFunc ) {
+ return function( pageId ) {
originalFunc.call( dialog, pageId );
var currPage = dialog._.tabs[ pageId ];
@@ -820,66 +720,66 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
patternFieldId = pageId === 'find' ? 'txtFindFind' : 'txtFindReplace';
wholeWordChkFieldId = pageId === 'find' ? 'txtFindWordChk' : 'txtReplaceWordChk';
- patternField = dialog.getContentElement( pageId,
- patternFieldId );
- wholeWordChkField = dialog.getContentElement( pageId,
- wholeWordChkFieldId );
+ patternField = dialog.getContentElement( pageId, patternFieldId );
+ wholeWordChkField = dialog.getContentElement( pageId, wholeWordChkFieldId );
- // prepare for check pattern text filed 'keyup' event
- if ( !currPage.initialized )
- {
- patternFieldInput = CKEDITOR.document
- .getById( patternField._.inputId );
+ // Prepare for check pattern text filed 'keyup' event
+ if ( !currPage.initialized ) {
+ patternFieldInput = CKEDITOR.document.getById( patternField._.inputId );
currPage.initialized = true;
}
+ // Synchronize fields on tab switch.
if ( isUserSelect )
- // synchronize fields on tab switch.
syncFieldsBetweenTabs.call( this, pageId );
};
- } );
-
- },
- onShow : function()
- {
- // Establish initial searching start position.
- finder.searchRange = getSearchRange();
-
- this.selectPage( startupPage );
- },
- onHide : function()
- {
- var range;
- if ( finder.matchRange && finder.matchRange.isMatched() )
- {
- finder.matchRange.removeHighlight();
- editor.focus();
-
- range = finder.matchRange.toDomRange();
- if ( range )
- editor.getSelection().selectRanges( [ range ] );
- }
+ });
- // Clear current session before dialog close
- delete finder.matchRange;
- },
- onFocus : function()
- {
- if ( startupPage == 'replace' )
- return this.getContentElement( 'replace', 'txtFindReplace' );
- else
- return this.getContentElement( 'find', 'txtFindFind' );
- }
+ },
+ onShow: function() {
+ // Establish initial searching start position.
+ finder.searchRange = getSearchRange();
+
+ // Fill in the find field with selected text.
+ var selectedText = this.getParentEditor().getSelection().getSelectedText(),
+ patternFieldId = ( startupPage == 'find' ? 'txtFindFind' : 'txtFindReplace' );
+
+ var field = this.getContentElement( startupPage, patternFieldId );
+ field.setValue( selectedText );
+ field.select();
+
+ this.selectPage( startupPage );
+
+ this[ ( startupPage == 'find' && this._.editor.readOnly ? 'hide' : 'show' ) + 'Page' ]( 'replace' );
+ },
+ onHide: function() {
+ var range;
+ if ( finder.matchRange && finder.matchRange.isMatched() ) {
+ finder.matchRange.removeHighlight();
+ editor.focus();
+
+ range = finder.matchRange.toDomRange();
+ if ( range )
+ editor.getSelection().selectRanges( [ range ] );
+ }
+
+ // Clear current session before dialog close
+ delete finder.matchRange;
+ },
+ onFocus: function() {
+ if ( startupPage == 'replace' )
+ return this.getContentElement( 'replace', 'txtFindReplace' );
+ else
+ return this.getContentElement( 'find', 'txtFindFind' );
+ }
+ };
};
- };
- CKEDITOR.dialog.add( 'find', function( editor )
- {
- return findDialog( editor, 'find' );
- });
+ CKEDITOR.dialog.add( 'find', function( editor ) {
+ return findDialog( editor, 'find' );
+ });
- CKEDITOR.dialog.add( 'replace', function( editor )
- {
- return findDialog( editor, 'replace' );
- });
+ CKEDITOR.dialog.add( 'replace', function( editor ) {
+ return findDialog( editor, 'replace' );
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/find/icons/find-rtl.png b/devel/third-party/ckeditor/plugins/find/icons/find-rtl.png
new file mode 100644
index 0000000..7d8b9f8
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/find/icons/find-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/find/icons/find.png b/devel/third-party/ckeditor/plugins/find/icons/find.png
new file mode 100644
index 0000000..7d8b9f8
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/find/icons/find.png differ
diff --git a/devel/third-party/ckeditor/plugins/find/icons/replace.png b/devel/third-party/ckeditor/plugins/find/icons/replace.png
new file mode 100644
index 0000000..92f79c4
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/find/icons/replace.png differ
diff --git a/devel/third-party/ckeditor/plugins/find/lang/af.js b/devel/third-party/ckeditor/plugins/find/lang/af.js
new file mode 100644
index 0000000..1ca8437
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/af.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'af', {
+ find: 'Soek',
+ findOptions: 'Find Options',
+ findWhat: 'Soek na:',
+ matchCase: 'Hoof/kleinletter sensitief',
+ matchCyclic: 'Soek deurlopend',
+ matchWord: 'Hele woord moet voorkom',
+ notFoundMsg: 'Teks nie gevind nie.',
+ replace: 'Vervang',
+ replaceAll: 'Vervang alles',
+ replaceSuccessMsg: '%1 voorkoms(te) vervang.',
+ replaceWith: 'Vervang met:',
+ title: 'Soek en vervang'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ar.js b/devel/third-party/ckeditor/plugins/find/lang/ar.js
new file mode 100644
index 0000000..bffd332
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ar.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ar', {
+ find: 'Ø¨ØØ«',
+ findOptions: 'Find Options',
+ findWhat: 'Ø§ÙØ¨ØØ« بÙ:',
+ matchCase: 'Ù
Ø·Ø§Ø¨ÙØ© ØØ§ÙØ© Ø§ÙØ£ØØ±Ù',
+ matchCyclic: 'Ù
Ø·Ø§Ø¨ÙØ© Ø¯ÙØ±ÙØ©',
+ matchWord: 'Ù
Ø·Ø§Ø¨ÙØ© باÙÙØ§Ù
Ù',
+ notFoundMsg: 'ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠اÙÙØµ اÙÙ
ØØ¯Ø¯.',
+ replace: 'إستبداÙ',
+ replaceAll: 'إستبدا٠اÙÙÙ',
+ replaceSuccessMsg: 'تÙ
استبدا٠1% Ù
Ù Ø§ÙØØ§ÙØ§Øª ',
+ replaceWith: 'إستبدا٠بÙ:',
+ title: 'Ø¨ØØ« ÙØ§Ø³ØªØ¨Ø¯Ø§Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/bg.js b/devel/third-party/ckeditor/plugins/find/lang/bg.js
new file mode 100644
index 0000000..82c1381
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/bg.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'bg', {
+ find: 'ТÑÑÑене',
+ findOptions: 'Find Options',
+ findWhat: 'ТÑÑÑи за:',
+ matchCase: 'СÑвпадение',
+ matchCyclic: 'ЦиклиÑно ÑÑвпадение',
+ matchWord: 'СÑвпадение Ñ Ð´Ñма',
+ notFoundMsg: 'УказаниÑÑ ÑекÑÑ Ð½Ðµ е намеÑен.',
+ replace: 'ÐÑепокÑиване',
+ replaceAll: 'ÐÑепокÑий вÑиÑки',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'ÐÑепокÑива Ñ:',
+ title: 'ТÑÑÑене и пÑепокÑиване'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/bn.js b/devel/third-party/ckeditor/plugins/find/lang/bn.js
new file mode 100644
index 0000000..19e2bc5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/bn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'bn', {
+ find: 'à¦à§à¦à§',
+ findOptions: 'Find Options',
+ findWhat: 'যা à¦à§à¦à¦à¦¤à§ হবà§:',
+ matchCase: 'à¦à§à¦¸ মিলাà¦',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'পà§à¦°à¦¾ শবà§à¦¦ মà§à¦²à¦¾à¦',
+ notFoundMsg: 'à¦à¦ªà¦¨à¦¾à¦° à¦à¦²à§à¦²à§à¦à¦¿à¦¤ à¦à§à¦à¦¸à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿',
+ replace: 'রিপà§à¦²à§à¦¸',
+ replaceAll: 'সব বদলৠদাà¦',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'যার সাথৠবদলাতৠহবà§:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/bs.js b/devel/third-party/ckeditor/plugins/find/lang/bs.js
new file mode 100644
index 0000000..ade954d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/bs.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'bs', {
+ find: 'Naði',
+ findOptions: 'Find Options',
+ findWhat: 'Naði šta:',
+ matchCase: 'Uporeðuj velika/mala slova',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Uporeðuj samo cijelu rijeè',
+ notFoundMsg: 'Traženi tekst nije pronaðen.',
+ replace: 'Zamjeni',
+ replaceAll: 'Zamjeni sve',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Zamjeni sa:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ca.js b/devel/third-party/ckeditor/plugins/find/lang/ca.js
new file mode 100644
index 0000000..4e4fdd2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ca.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ca', {
+ find: 'Cerca',
+ findOptions: 'Find Options',
+ findWhat: 'Cerca:',
+ matchCase: 'Distingeix majúscules/minúscules',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Només paraules completes',
+ notFoundMsg: 'El text especificat no s\'ha trobat.',
+ replace: 'Reemplaça',
+ replaceAll: 'Reemplaça-ho tot',
+ replaceSuccessMsg: '%1 ocurrència/es reemplaçada/es.',
+ replaceWith: 'Remplaça amb:',
+ title: 'Cerca i reemplaça'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/cs.js b/devel/third-party/ckeditor/plugins/find/lang/cs.js
new file mode 100644
index 0000000..eed0e91
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/cs.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'cs', {
+ find: 'Hledat',
+ findOptions: 'Možnosti hledánÃ',
+ findWhat: 'Co hledat:',
+ matchCase: 'RozliÅ¡ovat velikost pÃsma',
+ matchCyclic: 'Procházet opakovanÄ',
+ matchWord: 'Pouze celá slova',
+ notFoundMsg: 'Hledaný text nebyl nalezen.',
+ replace: 'Nahradit',
+ replaceAll: 'Nahradit vše',
+ replaceSuccessMsg: '%1 nahrazenÃ.',
+ replaceWith: 'ÄÃm nahradit:',
+ title: 'NajÃt a nahradit'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/cy.js b/devel/third-party/ckeditor/plugins/find/lang/cy.js
new file mode 100644
index 0000000..6dfcfd5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/cy.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'cy', {
+ find: 'Chwilio',
+ findOptions: 'Chwilio Opsiynau',
+ findWhat: 'Chwilio\'r term:',
+ matchCase: 'Cyfateb i\'r cas',
+ matchCyclic: 'Cyfateb cylchol',
+ matchWord: 'Cyfateb gair cyfan',
+ notFoundMsg: 'Nid oedd y testun wedi\'i ddarganfod.',
+ replace: 'Amnewid',
+ replaceAll: 'Amnewid pob un',
+ replaceSuccessMsg: 'Amnewidiwyd %1 achlysur.',
+ replaceWith: 'Amnewid gyda:',
+ title: 'Chwilio ac Amnewid'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/da.js b/devel/third-party/ckeditor/plugins/find/lang/da.js
new file mode 100644
index 0000000..f66324a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/da.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'da', {
+ find: 'Søg',
+ findOptions: 'Find muligheder',
+ findWhat: 'Søg efter:',
+ matchCase: 'Forskel på store og små bogstaver',
+ matchCyclic: 'Match cyklisk',
+ matchWord: 'Kun hele ord',
+ notFoundMsg: 'Søgeteksten blev ikke fundet',
+ replace: 'Erstat',
+ replaceAll: 'Erstat alle',
+ replaceSuccessMsg: '%1 forekomst(er) erstattet.',
+ replaceWith: 'Erstat med:',
+ title: 'Søg og erstat'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/de.js b/devel/third-party/ckeditor/plugins/find/lang/de.js
new file mode 100644
index 0000000..33568c8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/de.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'de', {
+ find: 'Suchen',
+ findOptions: 'Suchoptionen',
+ findWhat: 'Suche nach:',
+ matchCase: 'GroÃ-Kleinschreibung beachten',
+ matchCyclic: 'Zyklische Suche',
+ matchWord: 'Nur ganze Worte suchen',
+ notFoundMsg: 'Der gesuchte Text wurde nicht gefunden.',
+ replace: 'Ersetzen',
+ replaceAll: 'Alle ersetzen',
+ replaceSuccessMsg: '%1 vorkommen ersetzt.',
+ replaceWith: 'Ersetze mit:',
+ title: 'Suchen und Ersetzen'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/el.js b/devel/third-party/ckeditor/plugins/find/lang/el.js
new file mode 100644
index 0000000..ea19720
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/el.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'el', {
+ find: 'ÎναζήÏηÏη',
+ findOptions: 'Find Options',
+ findWhat: 'ÎναζήÏηÏη για:',
+ matchCase: 'ÎλεγÏÎ¿Ï ÏεζÏν/κεÏαλαίÏν',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'ÎÏÏεÏη ÏλήÏοÏ
Ï Î»ÎξηÏ',
+ notFoundMsg: 'Το κείμενο δεν βÏÎθηκε.',
+ replace: 'ÎνÏικαÏάÏÏαÏη',
+ replaceAll: 'ÎνÏικαÏάÏÏαÏη ÎλÏν',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'ÎνÏικαÏάÏÏαÏη με:',
+ title: 'ÎναζήÏηÏη και ÎνÏικαÏάÏÏαÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/en-au.js b/devel/third-party/ckeditor/plugins/find/lang/en-au.js
new file mode 100644
index 0000000..d89fff6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/en-au.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'en-au', {
+ find: 'Find',
+ findOptions: 'Find Options',
+ findWhat: 'Find what:',
+ matchCase: 'Match case',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Match whole word',
+ notFoundMsg: 'The specified text was not found.',
+ replace: 'Replace',
+ replaceAll: 'Replace All',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Replace with:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/en-ca.js b/devel/third-party/ckeditor/plugins/find/lang/en-ca.js
new file mode 100644
index 0000000..b1afce1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/en-ca.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'en-ca', {
+ find: 'Find',
+ findOptions: 'Find Options',
+ findWhat: 'Find what:',
+ matchCase: 'Match case',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Match whole word',
+ notFoundMsg: 'The specified text was not found.',
+ replace: 'Replace',
+ replaceAll: 'Replace All',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Replace with:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/en-gb.js b/devel/third-party/ckeditor/plugins/find/lang/en-gb.js
new file mode 100644
index 0000000..73c6100
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/en-gb.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'en-gb', {
+ find: 'Find',
+ findOptions: 'Find Options',
+ findWhat: 'Find what:',
+ matchCase: 'Match case',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Match whole word',
+ notFoundMsg: 'The specified text was not found.',
+ replace: 'Replace',
+ replaceAll: 'Replace All',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Replace with:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/en.js b/devel/third-party/ckeditor/plugins/find/lang/en.js
new file mode 100644
index 0000000..63fd86d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/en.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'en', {
+ find: 'Find',
+ findOptions: 'Find Options',
+ findWhat: 'Find what:',
+ matchCase: 'Match case',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Match whole word',
+ notFoundMsg: 'The specified text was not found.',
+ replace: 'Replace',
+ replaceAll: 'Replace All',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Replace with:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/eo.js b/devel/third-party/ckeditor/plugins/find/lang/eo.js
new file mode 100644
index 0000000..7d3d851
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/eo.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'eo', {
+ find: 'SerÄi',
+ findOptions: 'Opcioj pri SerÄado',
+ findWhat: 'SerÄi:',
+ matchCase: 'Kongruigi Usklecon',
+ matchCyclic: 'Cikla SerÄado',
+ matchWord: 'Tuta Vorto',
+ notFoundMsg: 'La celteksto ne estas trovita.',
+ replace: 'AnstataÅigi',
+ replaceAll: 'AnstataÅigi Äion',
+ replaceSuccessMsg: '%1 anstataÅigita(j) apero(j).',
+ replaceWith: 'AnstataÅigi per:',
+ title: 'SerÄi kaj AnstataÅigi'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/es.js b/devel/third-party/ckeditor/plugins/find/lang/es.js
new file mode 100644
index 0000000..4ac495c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/es.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'es', {
+ find: 'Buscar',
+ findOptions: 'Opciones de búsqueda',
+ findWhat: 'Texto a buscar:',
+ matchCase: 'Coincidir may/min',
+ matchCyclic: 'Buscar en todo el contenido',
+ matchWord: 'Coincidir toda la palabra',
+ notFoundMsg: 'El texto especificado no ha sido encontrado.',
+ replace: 'Reemplazar',
+ replaceAll: 'Reemplazar Todo',
+ replaceSuccessMsg: 'La expresión buscada ha sido reemplazada %1 veces.',
+ replaceWith: 'Reemplazar con:',
+ title: 'Buscar y Reemplazar'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/et.js b/devel/third-party/ckeditor/plugins/find/lang/et.js
new file mode 100644
index 0000000..84e5a5e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/et.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'et', {
+ find: 'Otsi',
+ findOptions: 'Otsingu valikud',
+ findWhat: 'Otsitav:',
+ matchCase: 'Suur- ja väiketähtede eristamine',
+ matchCyclic: 'Jätkatakse algusest',
+ matchWord: 'Ainult terved sõnad',
+ notFoundMsg: 'Otsitud teksti ei leitud.',
+ replace: 'Asenda',
+ replaceAll: 'Asenda kõik',
+ replaceSuccessMsg: '%1 vastet asendati.',
+ replaceWith: 'Asendus:',
+ title: 'Otsimine ja asendamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/eu.js b/devel/third-party/ckeditor/plugins/find/lang/eu.js
new file mode 100644
index 0000000..ea2fa21
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/eu.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'eu', {
+ find: 'Bilatu',
+ findOptions: 'Find Options',
+ findWhat: 'Zer bilatu:',
+ matchCase: 'Maiuskula/minuskula',
+ matchCyclic: 'Bilaketa ziklikoa',
+ matchWord: 'Esaldi osoa bilatu',
+ notFoundMsg: 'Idatzitako testua ez da topatu.',
+ replace: 'Ordezkatu',
+ replaceAll: 'Ordeztu Guztiak',
+ replaceSuccessMsg: 'Zenbat aldiz ordeztua: %1',
+ replaceWith: 'Zerekin ordeztu:',
+ title: 'Bilatu eta Ordeztu'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/fa.js b/devel/third-party/ckeditor/plugins/find/lang/fa.js
new file mode 100644
index 0000000..64387ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/fa.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'fa', {
+ find: 'جستجÙ',
+ findOptions: 'گزÛÙÙÙØ§Û جستجÙ',
+ findWhat: 'ÚÙ ÚÛØ² را Ù
ÛÛØ§Ø¨Ûد:',
+ matchCase: 'ÙÙ
ساÙÛ Ø¯Ø± Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ÙÙÛØ³ÙÙØ§',
+ matchCyclic: 'ÙÙ
ساÙÛ Ø¨Ø§ ÚØ±Ø®Ù',
+ matchWord: 'ÙÙ
ساÙÛ Ø¨Ø§ ÙØ§ÚÙÙ´ کاÙ
Ù',
+ notFoundMsg: 'Ù
ت٠Ù
ÙØ±Ø¯Ùظر ÛØ§Ùت ÙØ´Ø¯.',
+ replace: 'جاÛگزÛÙÛ',
+ replaceAll: 'جاÛگزÛÙÛ ÙÙ
ÙÙ´ ÛØ§ÙتÙÙØ§',
+ replaceSuccessMsg: '%1 رخداد جاÛگزÛ٠شد.',
+ replaceWith: 'جاÛگزÛÙÛ Ø¨Ø§:',
+ title: 'جستج٠٠جاÛگزÛÙÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/fi.js b/devel/third-party/ckeditor/plugins/find/lang/fi.js
new file mode 100644
index 0000000..8543fe0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/fi.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'fi', {
+ find: 'Etsi',
+ findOptions: 'Hakuasetukset',
+ findWhat: 'Etsi mitä:',
+ matchCase: 'Sama kirjainkoko',
+ matchCyclic: 'Kierrä ympäri',
+ matchWord: 'Koko sana',
+ notFoundMsg: 'Etsittyä tekstiä ei löytynyt.',
+ replace: 'Korvaa',
+ replaceAll: 'Korvaa kaikki',
+ replaceSuccessMsg: '%1 esiintymä(ä) korvattu.',
+ replaceWith: 'Korvaa tällä:',
+ title: 'Etsi ja korvaa'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/fo.js b/devel/third-party/ckeditor/plugins/find/lang/fo.js
new file mode 100644
index 0000000..a6f7fbf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/fo.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'fo', {
+ find: 'Leita',
+ findOptions: 'Finn møguleikar',
+ findWhat: 'Finn:',
+ matchCase: 'Munur á stórum og smáum bókstavum',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Bert heil orð',
+ notFoundMsg: 'Leititeksturin varð ikki funnin',
+ replace: 'Yvirskriva',
+ replaceAll: 'Yvirskriva alt',
+ replaceSuccessMsg: '%1 úrslit broytt.',
+ replaceWith: 'Yvirskriva við:',
+ title: 'Finn og broyt'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/find/lang/fr-ca.js
new file mode 100644
index 0000000..b1d2d70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/fr-ca.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'fr-ca', {
+ find: 'Chercher',
+ findOptions: 'Find Options',
+ findWhat: 'Rechercher:',
+ matchCase: 'Respecter la casse',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Mot entier',
+ notFoundMsg: 'Le texte indiqué est introuvable.',
+ replace: 'Remplacer',
+ replaceAll: 'Tout remplacer',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Remplacer par:',
+ title: 'Chercher et Remplacer'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/fr.js b/devel/third-party/ckeditor/plugins/find/lang/fr.js
new file mode 100644
index 0000000..8c7d1a5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/fr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'fr', {
+ find: 'Trouver',
+ findOptions: 'Options de recherche',
+ findWhat: 'Expression à trouver: ',
+ matchCase: 'Respecter la casse',
+ matchCyclic: 'Boucler',
+ matchWord: 'Mot entier uniquement',
+ notFoundMsg: 'Le texte spécifié ne peut être trouvé.',
+ replace: 'Remplacer',
+ replaceAll: 'Remplacer tout',
+ replaceSuccessMsg: '%1 occurrence(s) replacée(s).',
+ replaceWith: 'Remplacer par: ',
+ title: 'Trouver et remplacer'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/gl.js b/devel/third-party/ckeditor/plugins/find/lang/gl.js
new file mode 100644
index 0000000..baeeace
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/gl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'gl', {
+ find: 'Procurar',
+ findOptions: 'Find Options',
+ findWhat: 'Texto a procurar:',
+ matchCase: 'Coincidir Mai./min.',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Coincidir con toda a palabra',
+ notFoundMsg: 'Non te atopou o texto indicado.',
+ replace: 'Substituir',
+ replaceAll: 'Substitiur Todo',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Substituir con:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/gu.js b/devel/third-party/ckeditor/plugins/find/lang/gu.js
new file mode 100644
index 0000000..3900353
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/gu.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'gu', {
+ find: 'શà«àª§àªµà«àª',
+ findOptions: 'વà«àªàª²à«àªª શà«àª§à«',
+ findWhat: 'ઠશà«àª§à«',
+ matchCase: 'àªà«àª¸ સરàªàª¾ રાàªà«',
+ matchCyclic: 'સરàªàª¾àªµàªµàª¾ બધા',
+ matchWord: 'બàªàª¾ શબà«àª¦ સરàªàª¾ રાàªà«',
+ notFoundMsg: 'તમૠશà«àª§à«àª²à« àªà«àªà«àª¸à«àª નથૠમળà«',
+ replace: 'રિપà«àª²à«àª¸/બદલવà«àª',
+ replaceAll: 'બàªàª¾ બદલૠ',
+ replaceSuccessMsg: '%1 ફà«àª°àª«àª¾àª°à« બાદલાયા àªà«.',
+ replaceWith: 'àªàª¨àª¾àª¥à« બદલà«',
+ title: 'શà«àª§àªµà«àª àª
નૠબદલવà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/he.js b/devel/third-party/ckeditor/plugins/find/lang/he.js
new file mode 100644
index 0000000..c08593b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/he.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'he', {
+ find: '××פ×ש',
+ findOptions: '×פשר×××ת ××פ×ש',
+ findWhat: '××פ×ש ××ר××ת:',
+ matchCase: '×××× × ××× ××ת××ת רש××ת ××§×× ×ת (Case)',
+ matchCyclic: '×ת××× ××××ר×ת',
+ matchWord: '×ת××× ××××× ×××××',
+ notFoundMsg: '×××§×¡× ××××קש ×× × ×צ×.',
+ replace: '×××פ×',
+ replaceAll: '××××¤× ××× ××¢×××',
+ replaceSuccessMsg: '%1 ×קס××× ××××פ×.',
+ replaceWith: '××××¤× ×××ר××ת:',
+ title: '××פ×ש ××××פ×'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/hi.js b/devel/third-party/ckeditor/plugins/find/lang/hi.js
new file mode 100644
index 0000000..8aaf8a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/hi.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'hi', {
+ find: 'à¤à¥à¤à¥à¤',
+ findOptions: 'Find Options',
+ findWhat: 'यह à¤à¥à¤à¥à¤:',
+ matchCase: 'à¤à¥à¤¸ मिलायà¥à¤',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'पà¥à¤°à¤¾ शबà¥à¤¦ मिलायà¥à¤',
+ notFoundMsg: 'à¤à¤ªà¤à¥ दà¥à¤µà¤¾à¤°à¤¾ दिया à¤à¤¯à¤¾ à¤à¥à¤à¥à¤¸à¥à¤ नहà¥à¤ मिला',
+ replace: 'रà¥à¤ªà¥à¤²à¥à¤¸',
+ replaceAll: 'सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'à¤à¤¸à¤¸à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤:',
+ title: 'à¤à¥à¤à¥à¤ à¤à¤° बदलà¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/hr.js b/devel/third-party/ckeditor/plugins/find/lang/hr.js
new file mode 100644
index 0000000..8a28c67
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/hr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'hr', {
+ find: 'PronaÄi',
+ findOptions: 'Opcije traženja',
+ findWhat: 'PronaÄi:',
+ matchCase: 'Usporedi mala/velika slova',
+ matchCyclic: 'Usporedi kružno',
+ matchWord: 'Usporedi cijele rijeÄi',
+ notFoundMsg: 'Traženi tekst nije pronaÄen.',
+ replace: 'Zamijeni',
+ replaceAll: 'Zamijeni sve',
+ replaceSuccessMsg: 'Zamijenjeno %1 pojmova.',
+ replaceWith: 'Zamijeni s:',
+ title: 'PronaÄi i zamijeni'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/hu.js b/devel/third-party/ckeditor/plugins/find/lang/hu.js
new file mode 100644
index 0000000..90eaeb3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/hu.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'hu', {
+ find: 'Keresés',
+ findOptions: 'Find Options',
+ findWhat: 'Keresett szöveg:',
+ matchCase: 'kis- és nagybetű megkülönböztetése',
+ matchCyclic: 'Ciklikus keresés',
+ matchWord: 'csak ha ez a teljes szó',
+ notFoundMsg: 'A keresett szöveg nem található.',
+ replace: 'Csere',
+ replaceAll: 'Az összes cseréje',
+ replaceSuccessMsg: '%1 egyezÅség cserélve.',
+ replaceWith: 'Csere erre:',
+ title: 'Keresés és csere'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/is.js b/devel/third-party/ckeditor/plugins/find/lang/is.js
new file mode 100644
index 0000000..601bcce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/is.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'is', {
+ find: 'Leita',
+ findOptions: 'Find Options',
+ findWhat: 'Leita að:',
+ matchCase: 'Gera greinarmun á¡ há¡- og lágstöfum',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Aðeins heil orð',
+ notFoundMsg: 'Leitartexti fannst ekki!',
+ replace: 'Skipta út',
+ replaceAll: 'Skipta út allsstaðar',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Skipta út fyrir:',
+ title: 'Finna og skipta'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/it.js b/devel/third-party/ckeditor/plugins/find/lang/it.js
new file mode 100644
index 0000000..9ecb056
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/it.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'it', {
+ find: 'Trova',
+ findOptions: 'Opzioni di ricerca',
+ findWhat: 'Trova:',
+ matchCase: 'Maiuscole/minuscole',
+ matchCyclic: 'Ricerca ciclica',
+ matchWord: 'Solo parole intere',
+ notFoundMsg: 'L\'elemento cercato non è stato trovato.',
+ replace: 'Sostituisci',
+ replaceAll: 'Sostituisci tutto',
+ replaceSuccessMsg: '%1 occorrenza(e) sostituite.',
+ replaceWith: 'Sostituisci con:',
+ title: 'Cerca e Sostituisci'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ja.js b/devel/third-party/ckeditor/plugins/find/lang/ja.js
new file mode 100644
index 0000000..f69f57c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ja.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ja', {
+ find: 'æ¤ç´¢',
+ findOptions: 'Find Options',
+ findWhat: 'æ¤ç´¢ããæåå:',
+ matchCase: '大æåã¨å°æåãåºå¥ãã',
+ matchCyclic: 'ä¸å¨ãã',
+ matchWord: 'åèªåä½ã§æ¢ã',
+ notFoundMsg: 'æå®ãããæååã¯è¦ã¤ããã¾ããã§ããã',
+ replace: 'ç½®ãæã',
+ replaceAll: 'ãã¹ã¦ç½®æã',
+ replaceSuccessMsg: '%1 åç½®æãã¾ããã',
+ replaceWith: 'ç½®æãããæåå:',
+ title: 'æ¤ç´¢ãã¦ç½®æ'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ka.js b/devel/third-party/ckeditor/plugins/find/lang/ka.js
new file mode 100644
index 0000000..b5c95cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ka.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ka', {
+ find: 'á«áááá',
+ findOptions: 'Find Options',
+ findWhat: 'á¡áá«áááááá á¢áá¥á¡á¢á:',
+ matchCase: 'áááá áá ááá¢áá á áá¡ááááá¡ ááááá®áááá',
+ matchCyclic: 'áááá£áááá¢áá¡ ááááá¨á ááá¡áááá¡ ááá á ááááááá ááá¬á§ááá',
+ matchWord: 'ááááá á¡áá¢á§ááá¡ ááááá®áááá',
+ notFoundMsg: 'áááááááá£áá á¢áá¥á¡á¢á áá áááá«áááá.',
+ replace: 'á¨ááªááá',
+ replaceAll: 'á§ááááá¡ á¨ááªááá',
+ replaceSuccessMsg: '%1 ááá«áááááá á¨áááªáááá.',
+ replaceWith: 'á¨ááªáááá¡ á¢áá¥á¡á¢á:',
+ title: 'á«áááá áá á¨ááªááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/km.js b/devel/third-party/ckeditor/plugins/find/lang/km.js
new file mode 100644
index 0000000..b7d978f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/km.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'km', {
+ find: 'ááááááá',
+ findOptions: 'Find Options',
+ findWhat: 'áááááááá¢ááá¸:',
+ matchCase: 'áááááááá¼ááá',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'áááá¼ááá¶ááááá¶ááá¢áá',
+ notFoundMsg: 'áá¶áááááá áááá·ááá¾ááá á',
+ replace: 'áááá½á',
+ replaceAll: 'áááá½ááá¶ááá¢áá',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'áááá½ááá¶áá½á:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ko.js b/devel/third-party/ckeditor/plugins/find/lang/ko.js
new file mode 100644
index 0000000..c7f4b23
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ko.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ko', {
+ find: '찾기',
+ findOptions: 'Find Options',
+ findWhat: 'ì°¾ì 문ìì´:',
+ matchCase: 'ëì문ì 구ë¶',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'ì¨ì í ë¨ì´',
+ notFoundMsg: '문ìì´ì ì°¾ì ì ììµëë¤.',
+ replace: 'ë°ê¾¸ê¸°',
+ replaceAll: '모ë ë°ê¾¸ê¸°',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'ë°ê¿ 문ìì´:',
+ title: '찾기 & ë°ê¾¸ê¸°'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ku.js b/devel/third-party/ckeditor/plugins/find/lang/ku.js
new file mode 100644
index 0000000..0a65e98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ku.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ku', {
+ find: 'Ú¯ÙÚØ§Ù',
+ findOptions: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙکاÙÛ Ú¯ÙÚØ§Ù',
+ findWhat: 'Ú¯ÙÚØ§Ù Ø¨ÙØ¯ÙÙØ§Û:',
+ matchCase: 'Ø¬ÛØ§Ú©Ø±Ø¯ÙÙÙÙ ÙÙÙÛÙØ§Ù Ù¾ÛØªÛ Ú¯ÙÙØ±Ù٠بÚÙÙÙ',
+ matchCyclic: 'Ú¯ÙÚØ§Ù ÙÙÙÙÙ
ÙÙ Ù¾ÙÚÙÚ©Ù',
+ matchWord: 'تÙÙÙØ§ ÙÙÙ
ÙÙ ÙØ´ÙÚ©Ù',
+ notFoundMsg: 'ÙÛÚ Ø¯ÙÙÙ Ú¯ÙÚØ§ÙÛÙ ÙÙØ¯ÛزراÙÙ.',
+ replace: 'ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§Ù',
+ replaceAll: 'ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§ÙÛ ÙÙÙ
ÙÙÛ',
+ replaceSuccessMsg: ' Ù¾ÛØ´ÙاتÙ(Û) ÙÙØ¨Ø±Û Ø¯Ø§ÙØ±Ø§. %1',
+ replaceWith: 'ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§Ù بÙ:',
+ title: 'Ú¯ÙÚØ§Ù ÙÙ ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/lt.js b/devel/third-party/ckeditor/plugins/find/lang/lt.js
new file mode 100644
index 0000000..ba9f3f2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/lt.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'lt', {
+ find: 'Rasti',
+ findOptions: 'Paieškos nustatymai',
+ findWhat: 'Surasti tekstÄ
:',
+ matchCase: 'Skirti didžiÄ
sias ir mažÄ
sias raides',
+ matchCyclic: 'Sutampantis cikliškumas',
+ matchWord: 'Atitikti pilnÄ
žodį',
+ notFoundMsg: 'Nurodytas tekstas nerastas.',
+ replace: 'Pakeisti',
+ replaceAll: 'Pakeisti viskÄ
',
+ replaceSuccessMsg: '%1 sutapimas(ų) buvo pakeisti.',
+ replaceWith: 'Pakeisti tekstu:',
+ title: 'Surasti ir pakeisti'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/lv.js b/devel/third-party/ckeditor/plugins/find/lang/lv.js
new file mode 100644
index 0000000..c6cec41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/lv.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'lv', {
+ find: 'MeklÄt',
+ findOptions: 'MeklÄt uzstÄdÄ«jumi',
+ findWhat: 'MeklÄt:',
+ matchCase: 'Reģistrjūtīgs',
+ matchCyclic: 'Sakrist cikliski',
+ matchWord: 'JÄsakrÄ«t pilnÄ«bÄ',
+ notFoundMsg: 'NorÄdÄ«tÄ frÄze netika atrasta.',
+ replace: 'Nomainīt',
+ replaceAll: 'Aizvietot visu',
+ replaceSuccessMsg: '%1 gadījums(i) aizvietoti',
+ replaceWith: 'Nomainīt uz:',
+ title: 'MeklÄt un aizvietot'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/mk.js b/devel/third-party/ckeditor/plugins/find/lang/mk.js
new file mode 100644
index 0000000..a49ff2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/mk.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'mk', {
+ find: 'Find',
+ findOptions: 'Find Options',
+ findWhat: 'Find what:',
+ matchCase: 'Match case',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Match whole word',
+ notFoundMsg: 'The specified text was not found.',
+ replace: 'Replace',
+ replaceAll: 'Replace All',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Replace with:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/mn.js b/devel/third-party/ckeditor/plugins/find/lang/mn.js
new file mode 100644
index 0000000..b8b8bd7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/mn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'mn', {
+ find: 'ХайÑ
',
+ findOptions: 'ХайÑ
ÑонголÑÑÑд',
+ findWhat: 'ХайÑ
үг/Ò¯ÑÑг:',
+ matchCase: 'ТÑнÑÑÑ
Ñөлөв',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'ТÑнÑÑÑ
бүÑÑн үг',
+ notFoundMsg: 'ХайÑан биÑвÑÑийг олÑонгүй.',
+ replace: 'ÐÑлÑÑлаÑ
',
+ replaceAll: 'Ðүгдийг Ð½Ñ ÑолиÑ
',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'СолиÑ
үг:',
+ title: 'Хайж оÑлÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ms.js b/devel/third-party/ckeditor/plugins/find/lang/ms.js
new file mode 100644
index 0000000..f8a5837
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ms.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ms', {
+ find: 'Cari',
+ findOptions: 'Find Options',
+ findWhat: 'Perkataan yang dicari:',
+ matchCase: 'Padanan case huruf',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Padana Keseluruhan perkataan',
+ notFoundMsg: 'Text yang dicari tidak dijumpai.',
+ replace: 'Ganti',
+ replaceAll: 'Ganti semua',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Diganti dengan:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/nb.js b/devel/third-party/ckeditor/plugins/find/lang/nb.js
new file mode 100644
index 0000000..74b6699
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/nb.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'nb', {
+ find: 'Søk',
+ findOptions: 'Søkealternativer',
+ findWhat: 'Søk etter:',
+ matchCase: 'Skill mellom store og små bokstaver',
+ matchCyclic: 'Søk i hele dokumentet',
+ matchWord: 'Bare hele ord',
+ notFoundMsg: 'Fant ikke søketeksten.',
+ replace: 'Erstatt',
+ replaceAll: 'Erstatt alle',
+ replaceSuccessMsg: '%1 tilfelle(r) erstattet.',
+ replaceWith: 'Erstatt med:',
+ title: 'Søk og erstatt'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/nl.js b/devel/third-party/ckeditor/plugins/find/lang/nl.js
new file mode 100644
index 0000000..793665e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/nl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'nl', {
+ find: 'Zoeken',
+ findOptions: 'Zoekopties',
+ findWhat: 'Zoeken naar:',
+ matchCase: 'Hoofdlettergevoelig',
+ matchCyclic: 'Doorlopend zoeken',
+ matchWord: 'Hele woord moet voorkomen',
+ notFoundMsg: 'De opgegeven tekst is niet gevonden.',
+ replace: 'Vervangen',
+ replaceAll: 'Alles vervangen',
+ replaceSuccessMsg: '%1 resultaten vervangen.',
+ replaceWith: 'Vervangen met:',
+ title: 'Zoeken en vervangen'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/no.js b/devel/third-party/ckeditor/plugins/find/lang/no.js
new file mode 100644
index 0000000..b295a25
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/no.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'no', {
+ find: 'Søk',
+ findOptions: 'Søkealternativer',
+ findWhat: 'Søk etter:',
+ matchCase: 'Skill mellom store og små bokstaver',
+ matchCyclic: 'Søk i hele dokumentet',
+ matchWord: 'Bare hele ord',
+ notFoundMsg: 'Fant ikke søketeksten.',
+ replace: 'Erstatt',
+ replaceAll: 'Erstatt alle',
+ replaceSuccessMsg: '%1 tilfelle(r) erstattet.',
+ replaceWith: 'Erstatt med:',
+ title: 'Søk og erstatt'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/pl.js b/devel/third-party/ckeditor/plugins/find/lang/pl.js
new file mode 100644
index 0000000..4cebdd0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/pl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'pl', {
+ find: 'Znajdź',
+ findOptions: 'Opcje wyszukiwania',
+ findWhat: 'Znajdź:',
+ matchCase: 'UwzglÄdnij wielkoÅÄ liter',
+ matchCyclic: 'Cykliczne dopasowanie',
+ matchWord: 'CaÅe sÅowa',
+ notFoundMsg: 'Nie znaleziono szukanego hasÅa.',
+ replace: 'ZamieÅ',
+ replaceAll: 'ZamieÅ wszystko',
+ replaceSuccessMsg: '%1 wystÄ
pieÅ zastÄ
pionych.',
+ replaceWith: 'ZastÄ
p przez:',
+ title: 'Znajdź i zamieÅ'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/pt-br.js b/devel/third-party/ckeditor/plugins/find/lang/pt-br.js
new file mode 100644
index 0000000..c15ffc3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/pt-br.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'pt-br', {
+ find: 'Localizar',
+ findOptions: 'Opções',
+ findWhat: 'Procurar por:',
+ matchCase: 'Coincidir Maiúsculas/Minúsculas',
+ matchCyclic: 'Coincidir cÃclico',
+ matchWord: 'Coincidir a palavra inteira',
+ notFoundMsg: 'O texto especificado não foi encontrado.',
+ replace: 'Substituir',
+ replaceAll: 'Substituir Tudo',
+ replaceSuccessMsg: '%1 ocorrência(s) substituÃda(s).',
+ replaceWith: 'Substituir por:',
+ title: 'Localizar e Substituir'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/pt.js b/devel/third-party/ckeditor/plugins/find/lang/pt.js
new file mode 100644
index 0000000..097177e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/pt.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'pt', {
+ find: 'Procurar',
+ findOptions: 'Find Options',
+ findWhat: 'Texto a Procurar:',
+ matchCase: 'Maiúsculas/Minúsculas',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Coincidir com toda a palavra',
+ notFoundMsg: 'O texto especificado não foi encontrado.',
+ replace: 'Substituir',
+ replaceAll: 'Substituir Tudo',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Substituir por:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ro.js b/devel/third-party/ckeditor/plugins/find/lang/ro.js
new file mode 100644
index 0000000..24eeceb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ro.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ro', {
+ find: 'GÄseÅte',
+ findOptions: 'Find Options',
+ findWhat: 'GÄseÅte:',
+ matchCase: 'DeosebeÅte majuscule de minuscule (Match case)',
+ matchCyclic: 'PotriveÈte ciclic',
+ matchWord: 'Doar cuvintele întregi',
+ notFoundMsg: 'Textul specificat nu a fost gÄsit.',
+ replace: 'ÃnlocuieÅte',
+ replaceAll: 'ÃnlocuieÅte tot',
+ replaceSuccessMsg: '%1 cÄutÄri înlocuite.',
+ replaceWith: 'ÃnlocuieÅte cu:',
+ title: 'GÄseÅte Åi înlocuieÅte'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ru.js b/devel/third-party/ckeditor/plugins/find/lang/ru.js
new file mode 100644
index 0000000..fafb6a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ru.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ru', {
+ find: 'ÐайÑи',
+ findOptions: 'ÐпÑии поиÑка',
+ findWhat: 'ÐайÑи:',
+ matchCase: 'УÑиÑÑваÑÑ ÑегиÑÑÑ',
+ matchCyclic: 'Ðо вÑÐµÐ¼Ñ ÑекÑÑÑ',
+ matchWord: 'ТолÑко Ñлово Ñеликом',
+ notFoundMsg: 'ÐÑкомÑй ÑекÑÑ Ð½Ðµ найден.',
+ replace: 'ÐамениÑÑ',
+ replaceAll: 'ÐамениÑÑ Ð²ÑÑ',
+ replaceSuccessMsg: 'УÑпеÑно заменено %1 Ñаз(а).',
+ replaceWith: 'ÐамениÑÑ Ð½Ð°:',
+ title: 'ÐоиÑк и замена'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/sk.js b/devel/third-party/ckeditor/plugins/find/lang/sk.js
new file mode 100644
index 0000000..9693c79
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/sk.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'sk', {
+ find: 'Hľadať',
+ findOptions: 'Nájsť možnosti',
+ findWhat: 'Äo hľadaÅ¥:',
+ matchCase: 'RozliÅ¡ovaÅ¥ malé a veľké pÃsmená',
+ matchCyclic: 'Cykliť zhodu',
+ matchWord: 'Len celé slová',
+ notFoundMsg: 'Hľadaný text nebol nájdený.',
+ replace: 'Nahradiť',
+ replaceAll: 'Nahradiť všetko',
+ replaceSuccessMsg: '%1 výskyt(ov) nahradených.',
+ replaceWith: 'ÄÃm nahradiÅ¥:',
+ title: 'Nájsť a nahradiť'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/sl.js b/devel/third-party/ckeditor/plugins/find/lang/sl.js
new file mode 100644
index 0000000..dd23496
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/sl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'sl', {
+ find: 'Najdi',
+ findOptions: 'Find Options',
+ findWhat: 'Najdi:',
+ matchCase: 'Razlikuj velike in male Ärke',
+ matchCyclic: 'Primerjaj znake v cirilici',
+ matchWord: 'Samo cele besede',
+ notFoundMsg: 'Navedeno besedilo ni bilo najdeno.',
+ replace: 'Zamenjaj',
+ replaceAll: 'Zamenjaj vse',
+ replaceSuccessMsg: '%1 pojavitev je bilo zamenjano.',
+ replaceWith: 'Zamenjaj z:',
+ title: 'Najdi in zamenjaj'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/find/lang/sr-latn.js
new file mode 100644
index 0000000..760cb0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/sr-latn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'sr-latn', {
+ find: 'Pretraga',
+ findOptions: 'Find Options',
+ findWhat: 'Pronadi:',
+ matchCase: 'Razlikuj mala i velika slova',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'Uporedi cele reci',
+ notFoundMsg: 'Traženi tekst nije pronaÄen.',
+ replace: 'Zamena',
+ replaceAll: 'Zameni sve',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Zameni sa:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/sr.js b/devel/third-party/ckeditor/plugins/find/lang/sr.js
new file mode 100644
index 0000000..175f7dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/sr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'sr', {
+ find: 'ÐÑеÑÑага',
+ findOptions: 'Find Options',
+ findWhat: 'ÐÑонаÑи:',
+ matchCase: 'РазликÑÑ Ð²ÐµÐ»Ð¸ÐºÐ° и мала Ñлова',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'УпоÑеди Ñеле ÑеÑи',
+ notFoundMsg: 'ТÑажени ÑекÑÑ Ð½Ð¸Ñе пÑонаÑен.',
+ replace: 'Ðамена',
+ replaceAll: 'Ðамени Ñве',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'Ðамени Ñа:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/sv.js b/devel/third-party/ckeditor/plugins/find/lang/sv.js
new file mode 100644
index 0000000..d8de57e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/sv.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'sv', {
+ find: 'Sök',
+ findOptions: 'Find Options',
+ findWhat: 'Sök efter:',
+ matchCase: 'Skiftläge',
+ matchCyclic: 'Matcha cykliska',
+ matchWord: 'Inkludera hela ord',
+ notFoundMsg: 'Angiven text kunde ej hittas.',
+ replace: 'Ersätt',
+ replaceAll: 'Ersätt alla',
+ replaceSuccessMsg: '%1 förekomst(er) ersatta.',
+ replaceWith: 'Ersätt med:',
+ title: 'Sök och ersätt'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/th.js b/devel/third-party/ckeditor/plugins/find/lang/th.js
new file mode 100644
index 0000000..ca215c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/th.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'th', {
+ find: 'à¸à¹à¸à¸«à¸²',
+ findOptions: 'Find Options',
+ findWhat: 'à¸à¹à¸à¸«à¸²à¸à¸³à¸§à¹à¸²:',
+ matchCase: 'à¸à¸±à¸§à¹à¸«à¸à¹-à¹à¸¥à¹à¸ à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸',
+ matchCyclic: 'Match cyclic',
+ matchWord: 'à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸à¸à¸¸à¸à¸à¸³',
+ notFoundMsg: 'à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸µà¹à¸à¹à¸à¸«à¸².',
+ replace: 'à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¸à¸à¸µà¹',
+ replaceAll: 'à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹à¸à¸',
+ replaceSuccessMsg: '%1 occurrence(s) replaced.',
+ replaceWith: 'à¹à¸à¸à¸à¸µà¹à¸à¹à¸§à¸¢:',
+ title: 'Find and Replace'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/tr.js b/devel/third-party/ckeditor/plugins/find/lang/tr.js
new file mode 100644
index 0000000..8d9d191
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/tr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'tr', {
+ find: 'Bul',
+ findOptions: 'Seçenekleri Bul',
+ findWhat: 'Aranan:',
+ matchCase: 'Büyük/küçük harf duyarlı',
+ matchCyclic: 'EÅleÅen döngü',
+ matchWord: 'Kelimenin tamamı uysun',
+ notFoundMsg: 'Belirtilen yazı bulunamadı.',
+ replace: 'DeÄiÅtir',
+ replaceAll: 'Tümünü DeÄiÅtir',
+ replaceSuccessMsg: '%1 bulunanlardan deÄiÅtirildi.',
+ replaceWith: 'Bununla deÄiÅtir:',
+ title: 'Bul ve DeÄiÅtir'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/ug.js b/devel/third-party/ckeditor/plugins/find/lang/ug.js
new file mode 100644
index 0000000..5310a43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/ug.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'ug', {
+ find: 'Ø¦ÙØ²Ø¯Û',
+ findOptions: 'Ø¦ÙØ²Ø¯ÛØ´ تاÙÙØ§ÙÙ
ÙØ³Ù',
+ findWhat: 'Ø¦ÙØ²Ø¯Û:',
+ matchCase: 'ÚÙÚ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ÙÙ Ù¾ÛØ±ÙÙÛÙØ¯Ûر',
+ matchCyclic: 'ئاÙÙØ§ÙÙ
ا Ù
اسÙÙØ´ÙØ´',
+ matchWord: 'Ù¾ÛØªÛÙ Ø³ÛØ² Ù
اسÙÙØ´ÙØ´',
+ notFoundMsg: 'بÛÙÚ¯ÙÙÛÙÚ¯Û٠تÛÙÙØ³ØªÙ٠تاپاÙÙ
ÙØ¯Ù',
+ replace: 'ئاÙÙ
Ø§Ø´ØªÛØ±',
+ replaceAll: 'Ú¾ÛÙ
Ù
ÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±',
+ replaceSuccessMsg: 'جÛÙ
ئ٠%1 Ø¬Ø§ÙØ¯ÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±ÛØ´ تاÙ
اÙ
ÙØ§ÙدÙ',
+ replaceWith: 'ئاÙÙ
Ø§Ø´ØªÛØ±:',
+ title: 'Ø¦ÙØ²Ø¯ÛÙ¾ ئاÙÙ
Ø§Ø´ØªÛØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/uk.js b/devel/third-party/ckeditor/plugins/find/lang/uk.js
new file mode 100644
index 0000000..860197c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/uk.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'uk', {
+ find: 'ÐоÑÑк',
+ findOptions: 'ÐаÑамеÑÑи ÐоÑÑкÑ',
+ findWhat: 'ШÑкаÑи:',
+ matchCase: 'ÐÑаÑ
овÑваÑи ÑегÑÑÑÑ',
+ matchCyclic: 'ЦиклÑÑна замÑна',
+ matchWord: 'ÐбÑг ÑÑлиÑ
ÑлÑв',
+ notFoundMsg: 'Ðказаний ÑекÑÑ Ð½Ðµ знайдено.',
+ replace: 'ÐамÑна',
+ replaceAll: 'ÐамÑниÑи вÑе',
+ replaceSuccessMsg: '%1 ÑпÑвпадÑнÑ(нÑ) замÑнено.',
+ replaceWith: 'ÐамÑниÑи на:',
+ title: 'ÐнайÑи Ñ Ð·Ð°Ð¼ÑниÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/vi.js b/devel/third-party/ckeditor/plugins/find/lang/vi.js
new file mode 100644
index 0000000..8d4b148
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/vi.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'vi', {
+ find: 'Tìm kiếm',
+ findOptions: 'Tìm tùy chá»n',
+ findWhat: 'Tìm chuá»i:',
+ matchCase: 'Phân biá»t chữ hoa/thưá»ng',
+ matchCyclic: 'Giá»ng má»t phần',
+ matchWord: 'Giá»ng toà n bá» từ',
+ notFoundMsg: 'Không tìm thấy chuá»i cần tìm.',
+ replace: 'Thay thế',
+ replaceAll: 'Thay thế tất cả',
+ replaceSuccessMsg: '%1 vá» trà Äã ÄÆ°á»£c thay thế.',
+ replaceWith: 'Thay bằng:',
+ title: 'Tìm kiếm và thay thế'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/find/lang/zh-cn.js
new file mode 100644
index 0000000..64aec7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/zh-cn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'zh-cn', {
+ find: 'æ¥æ¾',
+ findOptions: 'æ¥æ¾é项',
+ findWhat: 'æ¥æ¾:',
+ matchCase: 'åºå大å°å',
+ matchCyclic: '循ç¯å¹é
',
+ matchWord: 'å
¨åå¹é
',
+ notFoundMsg: 'æå®ææ¬æ²¡ææ¾å°',
+ replace: 'æ¿æ¢',
+ replaceAll: 'å
¨é¨æ¿æ¢',
+ replaceSuccessMsg: 'å
±å®æ %1 夿¿æ¢.',
+ replaceWith: 'æ¿æ¢:',
+ title: 'æ¥æ¾åæ¿æ¢'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/lang/zh.js b/devel/third-party/ckeditor/plugins/find/lang/zh.js
new file mode 100644
index 0000000..46112fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/find/lang/zh.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'find', 'zh', {
+ find: 'å°æ¾',
+ findOptions: 'Find Options',
+ findWhat: 'å°æ¾:',
+ matchCase: '大å°å¯«é ç¸ç¬¦',
+ matchCyclic: 'å¾ªç°æç´¢',
+ matchWord: 'å
¨åç¸ç¬¦',
+ notFoundMsg: 'æªæ¾å°æå®çæåã',
+ replace: 'å代',
+ replaceAll: 'å
¨é¨å代',
+ replaceSuccessMsg: 'å
±å®æ %1 次å代',
+ replaceWith: 'å代:',
+ title: 'å°æ¾èå代'
+});
diff --git a/devel/third-party/ckeditor/plugins/find/plugin.js b/devel/third-party/ckeditor/plugins/find/plugin.js
index 7b4ceca..704e151 100644
--- a/devel/third-party/ckeditor/plugins/find/plugin.js
+++ b/devel/third-party/ckeditor/plugins/find/plugin.js
@@ -1,46 +1,50 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.plugins.add( 'find',
-{
- init : function( editor )
- {
- var forms = CKEDITOR.plugins.find;
- editor.ui.addButton( 'Find',
- {
- label : editor.lang.findAndReplace.find,
- command : 'find'
- });
+CKEDITOR.plugins.add( 'find', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'find,find-rtl,replace', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
var findCommand = editor.addCommand( 'find', new CKEDITOR.dialogCommand( 'find' ) );
findCommand.canUndo = false;
+ findCommand.readOnly = 1;
- editor.ui.addButton( 'Replace',
- {
- label : editor.lang.findAndReplace.replace,
- command : 'replace'
- });
var replaceCommand = editor.addCommand( 'replace', new CKEDITOR.dialogCommand( 'replace' ) );
replaceCommand.canUndo = false;
- CKEDITOR.dialog.add( 'find', this.path + 'dialogs/find.js' );
- CKEDITOR.dialog.add( 'replace', this.path + 'dialogs/find.js' );
- },
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( 'Find', {
+ label: editor.lang.find.find,
+ command: 'find',
+ toolbar: 'find,10'
+ });
+
+ editor.ui.addButton( 'Replace', {
+ label: editor.lang.find.replace,
+ command: 'replace',
+ toolbar: 'find,20'
+ });
+ }
- requires : [ 'styles' ]
-} );
+ CKEDITOR.dialog.add( 'find', this.path + 'dialogs/find.js' );
+ CKEDITOR.dialog.add( 'replace', this.path + 'dialogs/find.js' );
+ }
+});
/**
* Defines the style to be used to highlight results with the find dialog.
- * @type Object
- * @default { element : 'span', styles : { 'background-color' : '#004', 'color' : '#fff' } }
- * @example
- * // Highlight search results with blue on yellow.
- * config.find_highlight =
- * {
- * element : 'span',
- * styles : { 'background-color' : '#ff0', 'color' : '#00f' }
- * };
+ *
+ * // Highlight search results with blue on yellow.
+ * config.find_highlight = {
+ * element: 'span',
+ * styles: { 'background-color': '#ff0', color: '#00f' }
+ * };
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.find_highlight = { element : 'span', styles : { 'background-color' : '#004', 'color' : '#fff' } };
+CKEDITOR.config.find_highlight = {
+ element: 'span', styles: { 'background-color': '#004', color: '#fff' } };
diff --git a/devel/third-party/ckeditor/plugins/flash/dialogs/flash.js b/devel/third-party/ckeditor/plugins/flash/dialogs/flash.js
index 861cc34..be02767 100644
--- a/devel/third-party/ckeditor/plugins/flash/dialogs/flash.js
+++ b/devel/third-party/ckeditor/plugins/flash/dialogs/flash.js
@@ -1,116 +1,150 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-(function()
-{
- /*
- * It is possible to set things in three different places.
- * 1. As attributes in the object tag.
- * 2. As param tags under the object tag.
- * 3. As attributes in the embed tag.
- * It is possible for a single attribute to be present in more than one place.
- * So let's define a mapping between a sementic attribute and its syntactic
- * equivalents.
- * Then we'll set and retrieve attribute values according to the mapping,
- * instead of having to check and set each syntactic attribute every time.
- *
- * Reference: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701
- */
+(function() {
+ // It is possible to set things in three different places.
+ // 1. As attributes in the object tag.
+ // 2. As param tags under the object tag.
+ // 3. As attributes in the embed tag.
+ // It is possible for a single attribute to be present in more than one place.
+ // So let's define a mapping between a sementic attribute and its syntactic
+ // equivalents.
+ // Then we'll set and retrieve attribute values according to the mapping,
+ // instead of having to check and set each syntactic attribute every time.
+ //
+ // Reference: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701
var ATTRTYPE_OBJECT = 1,
ATTRTYPE_PARAM = 2,
ATTRTYPE_EMBED = 4;
- var attributesMap =
- {
- id : [ { type : ATTRTYPE_OBJECT, name : 'id' } ],
- classid : [ { type : ATTRTYPE_OBJECT, name : 'classid' } ],
- codebase : [ { type : ATTRTYPE_OBJECT, name : 'codebase'} ],
- pluginspage : [ { type : ATTRTYPE_EMBED, name : 'pluginspage' } ],
- src : [ { type : ATTRTYPE_PARAM, name : 'movie' }, { type : ATTRTYPE_EMBED, name : 'src' } ],
- name : [ { type : ATTRTYPE_EMBED, name : 'name' } ],
- align : [ { type : ATTRTYPE_OBJECT, name : 'align' } ],
- title : [ { type : ATTRTYPE_OBJECT, name : 'title' }, { type : ATTRTYPE_EMBED, name : 'title' } ],
- 'class' : [ { type : ATTRTYPE_OBJECT, name : 'class' }, { type : ATTRTYPE_EMBED, name : 'class'} ],
- width : [ { type : ATTRTYPE_OBJECT, name : 'width' }, { type : ATTRTYPE_EMBED, name : 'width' } ],
- height : [ { type : ATTRTYPE_OBJECT, name : 'height' }, { type : ATTRTYPE_EMBED, name : 'height' } ],
- hSpace : [ { type : ATTRTYPE_OBJECT, name : 'hSpace' }, { type : ATTRTYPE_EMBED, name : 'hSpace' } ],
- vSpace : [ { type : ATTRTYPE_OBJECT, name : 'vSpace' }, { type : ATTRTYPE_EMBED, name : 'vSpace' } ],
- style : [ { type : ATTRTYPE_OBJECT, name : 'style' }, { type : ATTRTYPE_EMBED, name : 'style' } ],
- type : [ { type : ATTRTYPE_EMBED, name : 'type' } ]
+ var attributesMap = {
+ id: [ {
+ type: ATTRTYPE_OBJECT, name: 'id'
+ }],
+ classid: [ {
+ type: ATTRTYPE_OBJECT, name: 'classid'
+ }],
+ codebase: [ {
+ type: ATTRTYPE_OBJECT, name: 'codebase'
+ }],
+ pluginspage: [ {
+ type: ATTRTYPE_EMBED, name: 'pluginspage'
+ }],
+ src: [ {
+ type: ATTRTYPE_PARAM, name: 'movie'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'src'
+ }, {
+ type: ATTRTYPE_OBJECT, name: 'data'
+ }],
+ name: [ {
+ type: ATTRTYPE_EMBED, name: 'name'
+ }],
+ align: [ {
+ type: ATTRTYPE_OBJECT, name: 'align'
+ }],
+ 'class': [ {
+ type: ATTRTYPE_OBJECT, name: 'class'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'class'
+ }],
+ width: [ {
+ type: ATTRTYPE_OBJECT, name: 'width'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'width'
+ }],
+ height: [ {
+ type: ATTRTYPE_OBJECT, name: 'height'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'height'
+ }],
+ hSpace: [ {
+ type: ATTRTYPE_OBJECT, name: 'hSpace'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'hSpace'
+ }],
+ vSpace: [ {
+ type: ATTRTYPE_OBJECT, name: 'vSpace'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'vSpace'
+ }],
+ style: [ {
+ type: ATTRTYPE_OBJECT, name: 'style'
+ }, {
+ type: ATTRTYPE_EMBED, name: 'style'
+ }],
+ type: [ {
+ type: ATTRTYPE_EMBED, name: 'type'
+ }]
};
- var names = [ 'play', 'loop', 'menu', 'quality', 'scale', 'salign', 'wmode', 'bgcolor', 'base', 'flashvars', 'allowScriptAccess',
- 'allowFullScreen' ];
- for ( var i = 0 ; i < names.length ; i++ )
- attributesMap[ names[i] ] = [ { type : ATTRTYPE_EMBED, name : names[i] }, { type : ATTRTYPE_PARAM, name : names[i] } ];
+ var names = [ 'play', 'loop', 'menu', 'quality', 'scale', 'salign', 'wmode', 'bgcolor', 'base', 'flashvars', 'allowScriptAccess', 'allowFullScreen' ];
+ for ( var i = 0; i < names.length; i++ )
+ attributesMap[ names[ i ] ] = [ {
+ type: ATTRTYPE_EMBED, name: names[ i ]
+ }, {
+ type: ATTRTYPE_PARAM, name: names[ i ]
+ }];
names = [ 'allowFullScreen', 'play', 'loop', 'menu' ];
- for ( i = 0 ; i < names.length ; i++ )
- attributesMap[ names[i] ][0]['default'] = attributesMap[ names[i] ][1]['default'] = true;
+ for ( i = 0; i < names.length; i++ )
+ attributesMap[ names[ i ] ][ 0 ][ 'default' ] = attributesMap[ names[ i ] ][ 1 ][ 'default' ] = true;
- function loadValue( objectNode, embedNode, paramMap )
- {
+ var defaultToPixel = CKEDITOR.tools.cssLength;
+
+ function loadValue( objectNode, embedNode, paramMap ) {
var attributes = attributesMap[ this.id ];
if ( !attributes )
return;
var isCheckbox = ( this instanceof CKEDITOR.ui.dialog.checkbox );
- for ( var i = 0 ; i < attributes.length ; i++ )
- {
+ for ( var i = 0; i < attributes.length; i++ ) {
var attrDef = attributes[ i ];
- switch ( attrDef.type )
- {
+ switch ( attrDef.type ) {
case ATTRTYPE_OBJECT:
if ( !objectNode )
continue;
- if ( objectNode.getAttribute( attrDef.name ) !== null )
- {
+ if ( objectNode.getAttribute( attrDef.name ) !== null ) {
var value = objectNode.getAttribute( attrDef.name );
if ( isCheckbox )
this.setValue( value.toLowerCase() == 'true' );
else
this.setValue( value );
return;
- }
- else if ( isCheckbox )
+ } else if ( isCheckbox )
this.setValue( !!attrDef[ 'default' ] );
break;
case ATTRTYPE_PARAM:
if ( !objectNode )
continue;
- if ( attrDef.name in paramMap )
- {
+ if ( attrDef.name in paramMap ) {
value = paramMap[ attrDef.name ];
if ( isCheckbox )
this.setValue( value.toLowerCase() == 'true' );
else
this.setValue( value );
return;
- }
- else if ( isCheckbox )
+ } else if ( isCheckbox )
this.setValue( !!attrDef[ 'default' ] );
break;
case ATTRTYPE_EMBED:
if ( !embedNode )
continue;
- if ( embedNode.getAttribute( attrDef.name ) )
- {
+ if ( embedNode.getAttribute( attrDef.name ) ) {
value = embedNode.getAttribute( attrDef.name );
if ( isCheckbox )
this.setValue( value.toLowerCase() == 'true' );
else
this.setValue( value );
return;
- }
- else if ( isCheckbox )
+ } else if ( isCheckbox )
this.setValue( !!attrDef[ 'default' ] );
}
}
}
- function commitValue( objectNode, embedNode, paramMap )
- {
+ function commitValue( objectNode, embedNode, paramMap ) {
var attributes = attributesMap[ this.id ];
if ( !attributes )
return;
@@ -118,13 +152,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var isRemove = ( this.getValue() === '' ),
isCheckbox = ( this instanceof CKEDITOR.ui.dialog.checkbox );
- for ( var i = 0 ; i < attributes.length ; i++ )
- {
- var attrDef = attributes[i];
- switch ( attrDef.type )
- {
+ for ( var i = 0; i < attributes.length; i++ ) {
+ var attrDef = attributes[ i ];
+ switch ( attrDef.type ) {
case ATTRTYPE_OBJECT:
- if ( !objectNode )
+ // Avoid applying the data attribute when not needed (#7733)
+ if ( !objectNode || ( attrDef.name == 'data' && embedNode && !objectNode.hasAttribute( 'data' ) ) )
continue;
var value = this.getValue();
if ( isRemove || isCheckbox && value === attrDef[ 'default' ] )
@@ -136,19 +169,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( !objectNode )
continue;
value = this.getValue();
- if ( isRemove || isCheckbox && value === attrDef[ 'default' ] )
- {
+ if ( isRemove || isCheckbox && value === attrDef[ 'default' ] ) {
if ( attrDef.name in paramMap )
paramMap[ attrDef.name ].remove();
- }
- else
- {
+ } else {
if ( attrDef.name in paramMap )
paramMap[ attrDef.name ].setAttribute( 'value', value );
- else
- {
+ else {
var param = CKEDITOR.dom.element.createFromHtml( '<cke:param></cke:param>', objectNode.getDocument() );
- param.setAttributes( { name : attrDef.name, value : value } );
+ param.setAttributes({ name: attrDef.name, value: value } );
if ( objectNode.getChildCount() < 1 )
param.appendTo( objectNode );
else
@@ -160,7 +189,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( !embedNode )
continue;
value = this.getValue();
- if ( isRemove || isCheckbox && value === attrDef[ 'default' ])
+ if ( isRemove || isCheckbox && value === attrDef[ 'default' ] )
embedNode.removeAttribute( attrDef.name );
else
embedNode.setAttribute( attrDef.name, value );
@@ -168,50 +197,46 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
- CKEDITOR.dialog.add( 'flash', function( editor )
- {
+ CKEDITOR.dialog.add( 'flash', function( editor ) {
var makeObjectTag = !editor.config.flashEmbedTagOnly,
makeEmbedTag = editor.config.flashAddEmbedTag || editor.config.flashEmbedTagOnly;
var previewPreloader,
- previewAreaHtml = '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) +'<br>' +
+ previewAreaHtml = '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) + '<br>' +
'<div id="cke_FlashPreviewLoader' + CKEDITOR.tools.getNextNumber() + '" style="display:none"><div class="loading"> </div></div>' +
'<div id="cke_FlashPreviewBox' + CKEDITOR.tools.getNextNumber() + '" class="FlashPreviewBox"></div></div>';
return {
- title : editor.lang.flash.title,
- minWidth : 420,
- minHeight : 310,
- onShow : function()
- {
+ title: editor.lang.flash.title,
+ minWidth: 420,
+ minHeight: 310,
+ onShow: function() {
// Clear previously saved elements.
this.fakeImage = this.objectNode = this.embedNode = null;
previewPreloader = new CKEDITOR.dom.element( 'embed', editor.document );
// Try to detect any embed or object tag that has Flash parameters.
var fakeImage = this.getSelectedElement();
- if ( fakeImage && fakeImage.getAttribute( '_cke_real_element_type' ) && fakeImage.getAttribute( '_cke_real_element_type' ) == 'flash' )
- {
+ if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'flash' ) {
this.fakeImage = fakeImage;
var realElement = editor.restoreRealElement( fakeImage ),
- objectNode = null, embedNode = null, paramMap = {};
- if ( realElement.getName() == 'cke:object' )
- {
+ objectNode = null,
+ embedNode = null,
+ paramMap = {};
+ if ( realElement.getName() == 'cke:object' ) {
objectNode = realElement;
var embedList = objectNode.getElementsByTag( 'embed', 'cke' );
if ( embedList.count() > 0 )
embedNode = embedList.getItem( 0 );
var paramList = objectNode.getElementsByTag( 'param', 'cke' );
- for ( var i = 0, length = paramList.count() ; i < length ; i++ )
- {
+ for ( var i = 0, length = paramList.count(); i < length; i++ ) {
var item = paramList.getItem( i ),
name = item.getAttribute( 'name' ),
value = item.getAttribute( 'value' );
paramMap[ name ] = value;
}
- }
- else if ( realElement.getName() == 'cke:embed' )
+ } else if ( realElement.getName() == 'cke:embed' )
embedNode = realElement;
this.objectNode = objectNode;
@@ -220,479 +245,411 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
this.setupContent( objectNode, embedNode, paramMap, fakeImage );
}
},
- onOk : function()
- {
+ onOk: function() {
// If there's no selected object or embed, create one. Otherwise, reuse the
// selected object and embed nodes.
var objectNode = null,
embedNode = null,
paramMap = null;
- if ( !this.fakeImage )
- {
- if ( makeObjectTag )
- {
+ if ( !this.fakeImage ) {
+ if ( makeObjectTag ) {
objectNode = CKEDITOR.dom.element.createFromHtml( '<cke:object></cke:object>', editor.document );
var attributes = {
- classid : 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
- codebase : 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'
+ classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
+ codebase: 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'
};
objectNode.setAttributes( attributes );
}
- if ( makeEmbedTag )
- {
+ if ( makeEmbedTag ) {
embedNode = CKEDITOR.dom.element.createFromHtml( '<cke:embed></cke:embed>', editor.document );
- embedNode.setAttributes(
- {
- type : 'application/x-shockwave-flash',
- pluginspage : 'http://www.macromedia.com/go/getflashplayer'
- } );
+ embedNode.setAttributes({
+ type: 'application/x-shockwave-flash',
+ pluginspage: 'http://www.macromedia.com/go/getflashplayer'
+ });
if ( objectNode )
embedNode.appendTo( objectNode );
}
- }
- else
- {
+ } else {
objectNode = this.objectNode;
embedNode = this.embedNode;
}
// Produce the paramMap if there's an object tag.
- if ( objectNode )
- {
+ if ( objectNode ) {
paramMap = {};
var paramList = objectNode.getElementsByTag( 'param', 'cke' );
- for ( var i = 0, length = paramList.count() ; i < length ; i++ )
+ for ( var i = 0, length = paramList.count(); i < length; i++ )
paramMap[ paramList.getItem( i ).getAttribute( 'name' ) ] = paramList.getItem( i );
}
// A subset of the specified attributes/styles
// should also be applied on the fake element to
// have better visual effect. (#5240)
- var extraStyles = {}, extraAttributes = {};
+ var extraStyles = {},
+ extraAttributes = {};
this.commitContent( objectNode, embedNode, paramMap, extraStyles, extraAttributes );
// Refresh the fake image.
var newFakeImage = editor.createFakeElement( objectNode || embedNode, 'cke_flash', 'flash', true );
newFakeImage.setAttributes( extraAttributes );
newFakeImage.setStyles( extraStyles );
- if ( this.fakeImage )
- {
+ if ( this.fakeImage ) {
newFakeImage.replace( this.fakeImage );
editor.getSelection().selectElement( newFakeImage );
- }
- else
+ } else
editor.insertElement( newFakeImage );
},
- onHide : function()
- {
+ onHide: function() {
if ( this.preview )
- this.preview.setHtml('');
+ this.preview.setHtml( '' );
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.common.generalTab,
- accessKey : 'I',
- elements :
- [
+ id: 'info',
+ label: editor.lang.common.generalTab,
+ accessKey: 'I',
+ elements: [
+ {
+ type: 'vbox',
+ padding: 0,
+ children: [
{
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'hbox',
- widths : [ '280px', '110px' ],
- align : 'right',
- children :
- [
- {
- id : 'src',
- type : 'text',
- label : editor.lang.common.url,
- required : true,
- validate : CKEDITOR.dialog.validate.notEmpty( editor.lang.flash.validateSrc ),
- setup : loadValue,
- commit : commitValue,
- onLoad : function()
- {
- var dialog = this.getDialog(),
- updatePreview = function( src ){
- // Query the preloader to figure out the url impacted by based href.
- previewPreloader.setAttribute( 'src', src );
- dialog.preview.setHtml( '<embed height="100%" width="100%" src="'
- + CKEDITOR.tools.htmlEncode( previewPreloader.getAttribute( 'src' ) )
- + '" type="application/x-shockwave-flash"></embed>' );
- };
- // Preview element
- dialog.preview = dialog.getContentElement( 'info', 'preview' ).getElement().getChild( 3 );
+ type: 'hbox',
+ widths: [ '280px', '110px' ],
+ align: 'right',
+ children: [
+ {
+ id: 'src',
+ type: 'text',
+ label: editor.lang.common.url,
+ required: true,
+ validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.flash.validateSrc ),
+ setup: loadValue,
+ commit: commitValue,
+ onLoad: function() {
+ var dialog = this.getDialog(),
+ updatePreview = function( src ) {
+ // Query the preloader to figure out the url impacted by based href.
+ previewPreloader.setAttribute( 'src', src );
+ dialog.preview.setHtml( '<embed height="100%" width="100%" src="' + CKEDITOR.tools.htmlEncode( previewPreloader.getAttribute( 'src' ) )
+ + '" type="application/x-shockwave-flash"></embed>' );
+ };
+ // Preview element
+ dialog.preview = dialog.getContentElement( 'info', 'preview' ).getElement().getChild( 3 );
- // Sync on inital value loaded.
- this.on( 'change', function( evt ){
+ // Sync on inital value loaded.
+ this.on( 'change', function( evt ) {
- if ( evt.data && evt.data.value )
- updatePreview( evt.data.value );
- } );
- // Sync when input value changed.
- this.getInputElement().on( 'change', function( evt ){
+ if ( evt.data && evt.data.value )
+ updatePreview( evt.data.value );
+ });
+ // Sync when input value changed.
+ this.getInputElement().on( 'change', function( evt ) {
- updatePreview( this.getValue() );
- }, this );
- }
- },
- {
- type : 'button',
- id : 'browse',
- filebrowser : 'info:src',
- hidden : true,
- // v-align with the 'src' field.
- // TODO: We need something better than a fixed size here.
- style : 'display:inline-block;margin-top:10px;',
- label : editor.lang.common.browseServer
- }
- ]
- }
- ]
+ updatePreview( this.getValue() );
+ }, this );
+ }
},
+ {
+ type: 'button',
+ id: 'browse',
+ filebrowser: 'info:src',
+ hidden: true,
+ // v-align with the 'src' field.
+ // TODO: We need something better than a fixed size here.
+ style: 'display:inline-block;margin-top:10px;',
+ label: editor.lang.common.browseServer
+ }
+ ]
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '25%', '25%', '25%', '25%', '25%' ],
+ children: [
{
- type : 'hbox',
- widths : [ '25%', '25%', '25%', '25%', '25%' ],
- children :
- [
- {
- type : 'text',
- id : 'width',
- style : 'width:95px',
- label : editor.lang.flash.width,
- validate : CKEDITOR.dialog.validate.integer( editor.lang.flash.validateWidth ),
- setup : function( objectNode, embedNode, paramMap, fakeImage )
- {
- loadValue.apply( this, arguments );
- if ( fakeImage )
- {
- var fakeImageWidth = parseInt( fakeImage.$.style.width, 10 );
- if ( !isNaN( fakeImageWidth ) )
- this.setValue( fakeImageWidth );
- }
- },
- commit : function( objectNode, embedNode, paramMap, extraStyles )
- {
- commitValue.apply( this, arguments );
- if ( this.getValue() )
- extraStyles.width = this.getValue() + 'px';
- }
- },
- {
- type : 'text',
- id : 'height',
- style : 'width:95px',
- label : editor.lang.flash.height,
- validate : CKEDITOR.dialog.validate.integer( editor.lang.flash.validateHeight ),
- setup : function( objectNode, embedNode, paramMap, fakeImage )
- {
- loadValue.apply( this, arguments );
- if ( fakeImage )
- {
- var fakeImageHeight = parseInt( fakeImage.$.style.height, 10 );
- if ( !isNaN( fakeImageHeight ) )
- this.setValue( fakeImageHeight );
- }
- },
- commit : function( objectNode, embedNode, paramMap, extraStyles )
- {
- commitValue.apply( this, arguments );
- if ( this.getValue() )
- extraStyles.height = this.getValue() + 'px';
- }
- },
- {
- type : 'text',
- id : 'hSpace',
- style : 'width:95px',
- label : editor.lang.flash.hSpace,
- validate : CKEDITOR.dialog.validate.integer( editor.lang.flash.validateHSpace ),
- setup : loadValue,
- commit : commitValue
- },
- {
- type : 'text',
- id : 'vSpace',
- style : 'width:95px',
- label : editor.lang.flash.vSpace,
- validate : CKEDITOR.dialog.validate.integer( editor.lang.flash.validateVSpace ),
- setup : loadValue,
- commit : commitValue
- }
- ]
- },
+ type: 'text',
+ id: 'width',
+ style: 'width:95px',
+ label: editor.lang.common.width,
+ validate: CKEDITOR.dialog.validate.htmlLength( editor.lang.common.invalidHtmlLength.replace( '%1', editor.lang.common.width ) ),
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ type: 'text',
+ id: 'height',
+ style: 'width:95px',
+ label: editor.lang.common.height,
+ validate: CKEDITOR.dialog.validate.htmlLength( editor.lang.common.invalidHtmlLength.replace( '%1', editor.lang.common.height ) ),
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ type: 'text',
+ id: 'hSpace',
+ style: 'width:95px',
+ label: editor.lang.flash.hSpace,
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.flash.validateHSpace ),
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ type: 'text',
+ id: 'vSpace',
+ style: 'width:95px',
+ label: editor.lang.flash.vSpace,
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.flash.validateVSpace ),
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'vbox',
+ children: [
{
- type : 'vbox',
- children :
- [
- {
- type : 'html',
- id : 'preview',
- style : 'width:95%;',
- html : previewAreaHtml
- }
- ]
- }
+ type: 'html',
+ id: 'preview',
+ style: 'width:95%;',
+ html: previewAreaHtml
+ }
]
+ }
+ ]
+ },
+ {
+ id: 'Upload',
+ hidden: true,
+ filebrowser: 'uploadButton',
+ label: editor.lang.common.upload,
+ elements: [
+ {
+ type: 'file',
+ id: 'upload',
+ label: editor.lang.common.upload,
+ size: 38
},
+ {
+ type: 'fileButton',
+ id: 'uploadButton',
+ label: editor.lang.common.uploadSubmit,
+ filebrowser: 'info:src',
+ 'for': [ 'Upload', 'upload' ]
+ }
+ ]
+ },
{
- id : 'Upload',
- hidden : true,
- filebrowser : 'uploadButton',
- label : editor.lang.common.upload,
- elements :
- [
+ id: 'properties',
+ label: editor.lang.flash.propertiesTab,
+ elements: [
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
{
- type : 'file',
- id : 'upload',
- label : editor.lang.common.upload,
- size : 38
- },
+ id: 'scale',
+ type: 'select',
+ label: editor.lang.flash.scale,
+ 'default': '',
+ style: 'width : 100%;',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.flash.scaleAll, 'showall' ],
+ [ editor.lang.flash.scaleNoBorder, 'noborder' ],
+ [ editor.lang.flash.scaleFit, 'exactfit' ]
+ ],
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ id: 'allowScriptAccess',
+ type: 'select',
+ label: editor.lang.flash.access,
+ 'default': '',
+ style: 'width : 100%;',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.flash.accessAlways, 'always' ],
+ [ editor.lang.flash.accessSameDomain, 'samedomain' ],
+ [ editor.lang.flash.accessNever, 'never' ]
+ ],
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ id: 'wmode',
+ type: 'select',
+ label: editor.lang.flash.windowMode,
+ 'default': '',
+ style: 'width : 100%;',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.flash.windowModeWindow, 'window' ],
+ [ editor.lang.flash.windowModeOpaque, 'opaque' ],
+ [ editor.lang.flash.windowModeTransparent, 'transparent' ]
+ ],
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ id: 'quality',
+ type: 'select',
+ label: editor.lang.flash.quality,
+ 'default': 'high',
+ style: 'width : 100%;',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.flash.qualityBest, 'best' ],
+ [ editor.lang.flash.qualityHigh, 'high' ],
+ [ editor.lang.flash.qualityAutoHigh, 'autohigh' ],
+ [ editor.lang.flash.qualityMedium, 'medium' ],
+ [ editor.lang.flash.qualityAutoLow, 'autolow' ],
+ [ editor.lang.flash.qualityLow, 'low' ]
+ ],
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
{
- type : 'fileButton',
- id : 'uploadButton',
- label : editor.lang.common.uploadSubmit,
- filebrowser : 'info:src',
- 'for' : [ 'Upload', 'upload' ]
+ id: 'align',
+ type: 'select',
+ label: editor.lang.common.align,
+ 'default': '',
+ style: 'width : 100%;',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.common.alignLeft, 'left' ],
+ [ editor.lang.flash.alignAbsBottom, 'absBottom' ],
+ [ editor.lang.flash.alignAbsMiddle, 'absMiddle' ],
+ [ editor.lang.flash.alignBaseline, 'baseline' ],
+ [ editor.lang.common.alignBottom, 'bottom' ],
+ [ editor.lang.common.alignMiddle, 'middle' ],
+ [ editor.lang.common.alignRight, 'right' ],
+ [ editor.lang.flash.alignTextTop, 'textTop' ],
+ [ editor.lang.common.alignTop, 'top' ]
+ ],
+ setup: loadValue,
+ commit: function( objectNode, embedNode, paramMap, extraStyles, extraAttributes ) {
+ var value = this.getValue();
+ commitValue.apply( this, arguments );
+ value && ( extraAttributes.align = value );
}
+ },
+ {
+ type: 'html',
+ html: '<div></div>'
+ }
]
},
- {
- id : 'properties',
- label : editor.lang.flash.propertiesTab,
- elements :
- [
+ {
+ type: 'fieldset',
+ label: CKEDITOR.tools.htmlEncode( editor.lang.flash.flashvars ),
+ children: [
{
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- id : 'scale',
- type : 'select',
- label : editor.lang.flash.scale,
- 'default' : '',
- style : 'width : 100%;',
- items :
- [
- [ editor.lang.common.notSet , ''],
- [ editor.lang.flash.scaleAll, 'showall' ],
- [ editor.lang.flash.scaleNoBorder, 'noborder' ],
- [ editor.lang.flash.scaleFit, 'exactfit' ]
- ],
- setup : loadValue,
- commit : commitValue
- },
- {
- id : 'allowScriptAccess',
- type : 'select',
- label : editor.lang.flash.access,
- 'default' : '',
- style : 'width : 100%;',
- items :
- [
- [ editor.lang.common.notSet , ''],
- [ editor.lang.flash.accessAlways, 'always' ],
- [ editor.lang.flash.accessSameDomain, 'samedomain' ],
- [ editor.lang.flash.accessNever, 'never' ]
- ],
- setup : loadValue,
- commit : commitValue
- }
- ]
+ type: 'vbox',
+ padding: 0,
+ children: [
+ {
+ type: 'checkbox',
+ id: 'menu',
+ label: editor.lang.flash.chkMenu,
+ 'default': true,
+ setup: loadValue,
+ commit: commitValue
},
- {
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- id : 'wmode',
- type : 'select',
- label : editor.lang.flash.windowMode,
- 'default' : '',
- style : 'width : 100%;',
- items :
- [
- [ editor.lang.common.notSet , '' ],
- [ editor.lang.flash.windowModeWindow, 'window' ],
- [ editor.lang.flash.windowModeOpaque, 'opaque' ],
- [ editor.lang.flash.windowModeTransparent, 'transparent' ]
- ],
- setup : loadValue,
- commit : commitValue
- },
- {
- id : 'quality',
- type : 'select',
- label : editor.lang.flash.quality,
- 'default' : 'high',
- style : 'width : 100%;',
- items :
- [
- [ editor.lang.common.notSet , '' ],
- [ editor.lang.flash.qualityBest, 'best' ],
- [ editor.lang.flash.qualityHigh, 'high' ],
- [ editor.lang.flash.qualityAutoHigh, 'autohigh' ],
- [ editor.lang.flash.qualityMedium, 'medium' ],
- [ editor.lang.flash.qualityAutoLow, 'autolow' ],
- [ editor.lang.flash.qualityLow, 'low' ]
- ],
- setup : loadValue,
- commit : commitValue
- }
- ]
+ {
+ type: 'checkbox',
+ id: 'play',
+ label: editor.lang.flash.chkPlay,
+ 'default': true,
+ setup: loadValue,
+ commit: commitValue
},
- {
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- id : 'align',
- type : 'select',
- label : editor.lang.flash.align,
- 'default' : '',
- style : 'width : 100%;',
- items :
- [
- [ editor.lang.common.notSet , ''],
- [ editor.lang.flash.alignLeft , 'left'],
- [ editor.lang.flash.alignAbsBottom , 'absBottom'],
- [ editor.lang.flash.alignAbsMiddle , 'absMiddle'],
- [ editor.lang.flash.alignBaseline , 'baseline'],
- [ editor.lang.flash.alignBottom , 'bottom'],
- [ editor.lang.flash.alignMiddle , 'middle'],
- [ editor.lang.flash.alignRight , 'right'],
- [ editor.lang.flash.alignTextTop , 'textTop'],
- [ editor.lang.flash.alignTop , 'top']
- ],
- setup : loadValue,
- commit : function( objectNode, embedNode, paramMap, extraStyles, extraAttributes )
- {
- var value = this.getValue();
- commitValue.apply( this, arguments );
- value && ( extraAttributes.align = value );
- }
- },
- {
- type : 'html',
- html : '<div></div>'
- }
- ]
+ {
+ type: 'checkbox',
+ id: 'loop',
+ label: editor.lang.flash.chkLoop,
+ 'default': true,
+ setup: loadValue,
+ commit: commitValue
},
- {
- type : 'fieldset',
- label : CKEDITOR.tools.htmlEncode( editor.lang.flash.flashvars ),
- children :
- [
- {
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'checkbox',
- id : 'menu',
- label : editor.lang.flash.chkMenu,
- 'default' : true,
- setup : loadValue,
- commit : commitValue
- },
- {
- type : 'checkbox',
- id : 'play',
- label : editor.lang.flash.chkPlay,
- 'default' : true,
- setup : loadValue,
- commit : commitValue
- },
- {
- type : 'checkbox',
- id : 'loop',
- label : editor.lang.flash.chkLoop,
- 'default' : true,
- setup : loadValue,
- commit : commitValue
- },
- {
- type : 'checkbox',
- id : 'allowFullScreen',
- label : editor.lang.flash.chkFull,
- 'default' : true,
- setup : loadValue,
- commit : commitValue
- }
- ]
- }
- ]
+ {
+ type: 'checkbox',
+ id: 'allowFullScreen',
+ label: editor.lang.flash.chkFull,
+ 'default': true,
+ setup: loadValue,
+ commit: commitValue
}
+ ]
+ }
]
- },
+ }
+ ]
+ },
{
- id : 'advanced',
- label : editor.lang.common.advancedTab,
- elements :
- [
+ id: 'advanced',
+ label: editor.lang.common.advancedTab,
+ elements: [
+ {
+ type: 'hbox',
+ children: [
{
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
- {
- type : 'text',
- id : 'id',
- label : editor.lang.common.id,
- setup : loadValue,
- commit : commitValue
- },
- {
- type : 'text',
- id : 'title',
- label : editor.lang.common.advisoryTitle,
- setup : loadValue,
- commit : commitValue
- }
- ]
- },
+ type: 'text',
+ id: 'id',
+ label: editor.lang.common.id,
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
{
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
- {
- type : 'text',
- id : 'bgcolor',
- label : editor.lang.flash.bgcolor,
- setup : loadValue,
- commit : commitValue
- },
- {
- type : 'text',
- id : 'class',
- label : editor.lang.common.cssClass,
- setup : loadValue,
- commit : commitValue
- }
- ]
- },
+ type: 'text',
+ id: 'bgcolor',
+ label: editor.lang.flash.bgcolor,
+ setup: loadValue,
+ commit: commitValue
+ },
{
- type : 'text',
- id : 'style',
- label : editor.lang.common.cssStyle,
- setup : loadValue,
- commit : commitValue
- }
+ type: 'text',
+ id: 'class',
+ label: editor.lang.common.cssClass,
+ setup: loadValue,
+ commit: commitValue
+ }
]
+ },
+ {
+ type: 'text',
+ id: 'style',
+ validate: CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ),
+ label: editor.lang.common.cssStyle,
+ setup: loadValue,
+ commit: commitValue
}
+ ]
+ }
]
};
- } );
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/flash/icons/flash.png b/devel/third-party/ckeditor/plugins/flash/icons/flash.png
new file mode 100644
index 0000000..042beae
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/flash/icons/flash.png differ
diff --git a/devel/third-party/ckeditor/plugins/flash/images/placeholder.png b/devel/third-party/ckeditor/plugins/flash/images/placeholder.png
new file mode 100644
index 0000000..0bc6caa
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/flash/images/placeholder.png differ
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/af.js b/devel/third-party/ckeditor/plugins/flash/lang/af.js
new file mode 100644
index 0000000..30e1279
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/af.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'af', {
+ access: 'Skrip toegang',
+ accessAlways: 'Altyd',
+ accessNever: 'Nooit',
+ accessSameDomain: 'Selfde domeinnaam',
+ alignAbsBottom: 'Absoluut-onder',
+ alignAbsMiddle: 'Absoluut-middel',
+ alignBaseline: 'Basislyn',
+ alignTextTop: 'Teks bo',
+ bgcolor: 'Agtergrondkleur',
+ chkFull: 'Laat volledige skerm toe',
+ chkLoop: 'Herhaal',
+ chkMenu: 'Flash spyskaart aan',
+ chkPlay: 'Speel outomaties',
+ flashvars: 'Veranderlikes vir Flash',
+ hSpace: 'HSpasie',
+ properties: 'Flash eienskappe',
+ propertiesTab: 'Eienskappe',
+ quality: 'Kwaliteit',
+ qualityAutoHigh: 'Outomaties hoog',
+ qualityAutoLow: 'Outomaties laag',
+ qualityBest: 'Beste',
+ qualityHigh: 'Hoog',
+ qualityLow: 'Laag',
+ qualityMedium: 'Gemiddeld',
+ scale: 'Skaal',
+ scaleAll: 'Wys alles',
+ scaleFit: 'Presiese pas',
+ scaleNoBorder: 'Geen rand',
+ title: 'Flash eienskappe',
+ vSpace: 'VSpasie',
+ validateHSpace: 'HSpasie moet \'n heelgetal wees.',
+ validateSrc: 'Voeg die URL in',
+ validateVSpace: 'VSpasie moet \'n heelgetal wees.',
+ windowMode: 'Venster modus',
+ windowModeOpaque: 'Ondeursigtig',
+ windowModeTransparent: 'Deursigtig',
+ windowModeWindow: 'Venster'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ar.js b/devel/third-party/ckeditor/plugins/flash/lang/ar.js
new file mode 100644
index 0000000..43efa1a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ar.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ar', {
+ access: 'دخÙ٠اÙÙØµ Ø§ÙØ¨Ø±Ù
جÙ',
+ accessAlways: 'دائÙ
اÙ',
+ accessNever: 'Ù
Ø·ÙÙØ§Ù',
+ accessSameDomain: 'ÙÙØ³ اÙÙØ·Ø§Ù',
+ alignAbsBottom: 'أسÙ٠اÙÙØµ',
+ alignAbsMiddle: 'ÙØ³Ø· Ø§ÙØ³Ø·Ø±',
+ alignBaseline: 'عÙÙ Ø§ÙØ³Ø·Ø±',
+ alignTextTop: 'أعÙ٠اÙÙØµ',
+ bgcolor: 'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',
+ chkFull: 'Ù
ÙØ¡ Ø§ÙØ´Ø§Ø´Ø©',
+ chkLoop: 'ØªÙØ±Ø§Ø±',
+ chkMenu: 'تÙ
ÙÙÙ ÙØ§Ø¦Ù
Ø© ÙÙÙÙ
اÙÙÙØ§Ø´',
+ chkPlay: 'تشغÙ٠تÙÙØ§Ø¦Ù',
+ flashvars: 'Ù
ØªØºÙØ±Ø§Øª اÙÙÙØ§Ø´',
+ hSpace: 'تباعد Ø£ÙÙÙ',
+ properties: 'خصائص اÙÙÙØ§Ø´',
+ propertiesTab: 'Ø§ÙØ®ØµØ§Ø¦Øµ',
+ quality: 'Ø¬ÙØ¯Ø©',
+ qualityAutoHigh: 'عاÙÙØ© تÙÙØ§Ø¦ÙاÙ',
+ qualityAutoLow: 'Ù
ÙØ®Ùضة تÙÙØ§Ø¦ÙاÙ',
+ qualityBest: 'Ø£ÙØ¶Ù',
+ qualityHigh: 'عاÙÙØ©',
+ qualityLow: 'Ù
ÙØ®Ùضة',
+ qualityMedium: 'Ù
ØªÙØ³Ø·Ø©',
+ scale: 'Ø§ÙØØ¬Ù
',
+ scaleAll: 'Ø¥Ø¸ÙØ§Ø± اÙÙÙ',
+ scaleFit: 'ضبط تاÙ
',
+ scaleNoBorder: 'Ø¨ÙØ§ ØØ¯Ùد',
+ title: 'خصائص ÙÙÙÙ
اÙÙÙØ§Ø´',
+ vSpace: 'تباعد عÙ
ÙØ¯Ù',
+ validateHSpace: 'HSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ validateSrc: 'ÙØ¶Ùا٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·',
+ validateVSpace: 'VSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ windowMode: 'ÙØ¶Ø¹ اÙÙØ§Ùذة',
+ windowModeOpaque: 'ØºÙØ± Ø´ÙØ§Ù',
+ windowModeTransparent: 'Ø´ÙØ§Ù',
+ windowModeWindow: 'ÙØ§Ùذة'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/bg.js b/devel/third-party/ckeditor/plugins/flash/lang/bg.js
new file mode 100644
index 0000000..23c26f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/bg.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'bg', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Ðинаги',
+ accessNever: 'Ðикога',
+ accessSameDomain: 'СÑÑиÑÑ Ð´Ð¾Ð¼ÐµÐ¹Ð½',
+ alignAbsBottom: 'Ðай-долÑ',
+ alignAbsMiddle: 'ТоÑно по ÑÑедаÑа',
+ alignBaseline: 'Ðазова линиÑ',
+ alignTextTop: 'ÐÑÑÑ
Ñ ÑекÑÑа',
+ bgcolor: 'ЦвÑÑ Ð½Ð° Ñона',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'ЦикÑл',
+ chkMenu: 'РазÑеÑено Flash менÑ',
+ chkPlay: 'ÐвÑо. пÑÑкане',
+ flashvars: 'ÐÑоменливи за ФлаÑ',
+ hSpace: 'ХоÑизонÑален оÑÑÑÑп',
+ properties: 'ÐаÑÑÑойки за ÑлаÑ',
+ propertiesTab: 'ÐаÑÑÑойки',
+ quality: 'ÐаÑеÑÑво',
+ qualityAutoHigh: 'ÐвÑо. виÑоко',
+ qualityAutoLow: 'ÐвÑо. ниÑко',
+ qualityBest: 'ÐÑлиÑно',
+ qualityHigh: 'ÐиÑоко',
+ qualityLow: 'ÐиÑко',
+ qualityMedium: 'СÑедно',
+ scale: 'ÐÑазмеÑÑване',
+ scaleAll: 'Ðоказва вÑиÑко',
+ scaleFit: 'СпоÑед мÑÑÑоÑо',
+ scaleNoBorder: 'Ðез Ñамка',
+ title: 'ÐаÑÑÑойки за ÑлаÑ',
+ vSpace: 'ÐеÑÑикален оÑÑÑÑп',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Уеб адÑеÑа не ÑÑÑбва да е пÑазен.',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Режим на пÑозоÑеÑа',
+ windowModeOpaque: 'ÐлÑÑноÑÑ',
+ windowModeTransparent: 'ÐÑозÑаÑноÑÑ',
+ windowModeWindow: 'ÐÑозоÑеÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/bn.js b/devel/third-party/ckeditor/plugins/flash/lang/bn.js
new file mode 100644
index 0000000..60d74a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/bn.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'bn', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs নà§à¦à§',
+ alignAbsMiddle: 'Abs à¦à¦ªà¦°',
+ alignBaseline: 'মà§à¦² রà§à¦à¦¾',
+ alignTextTop: 'à¦à§à¦à§à¦¸à¦ à¦à¦ªà¦°',
+ bgcolor: 'বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'লà§à¦ª',
+ chkMenu: 'ফà§à¦²à§à¦¯à¦¾à¦¶ মà§à¦¨à§ à¦à¦¨à¦¾à¦¬à¦² à¦à¦°',
+ chkPlay: 'à¦
à¦à§ পà§à¦²à§',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸',
+ properties: 'ফà§à¦²à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'সà§à¦à§à¦²',
+ scaleAll: 'সব দà§à¦à¦¾à¦',
+ scaleFit: 'নিà¦à§à¦à¦¤ ফিà¦',
+ scaleNoBorder: 'à¦à§à¦¨à§ বরà§à¦¡à¦¾à¦° নà§à¦',
+ title: 'ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ vSpace: 'à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/bs.js b/devel/third-party/ckeditor/plugins/flash/lang/bs.js
new file mode 100644
index 0000000..d7454a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/bs.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'bs', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs dole',
+ alignAbsMiddle: 'Abs sredina',
+ alignBaseline: 'Bazno',
+ alignTextTop: 'Vrh teksta',
+ bgcolor: 'Boja pozadine',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Loop', // MISSING
+ chkMenu: 'Enable Flash Menu', // MISSING
+ chkPlay: 'Auto Play', // MISSING
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'HSpace',
+ properties: 'Flash Properties', // MISSING
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Scale', // MISSING
+ scaleAll: 'Show all', // MISSING
+ scaleFit: 'Exact Fit', // MISSING
+ scaleNoBorder: 'No Border', // MISSING
+ title: 'Flash Properties', // MISSING
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Molimo ukucajte URL link',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ca.js b/devel/third-party/ckeditor/plugins/flash/lang/ca.js
new file mode 100644
index 0000000..da2272e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ca.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ca', {
+ access: 'Accés a scripts',
+ accessAlways: 'Sempre',
+ accessNever: 'Mai',
+ accessSameDomain: 'El mateix domini',
+ alignAbsBottom: 'Abs Bottom',
+ alignAbsMiddle: 'Abs Middle',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Top',
+ bgcolor: 'Color de Fons',
+ chkFull: 'Permetre la pantalla completa',
+ chkLoop: 'Bucle',
+ chkMenu: 'Habilita menú Flash',
+ chkPlay: 'Reprodució automà tica',
+ flashvars: 'Variables de Flash',
+ hSpace: 'Espaiat horit.',
+ properties: 'Propietats del Flash',
+ propertiesTab: 'Propietats',
+ quality: 'Qualitat',
+ qualityAutoHigh: 'Alta automà tica',
+ qualityAutoLow: 'Baixa automà tica',
+ qualityBest: 'La millor',
+ qualityHigh: 'Alta',
+ qualityLow: 'Baixa',
+ qualityMedium: 'Mitjana',
+ scale: 'Escala',
+ scaleAll: 'Mostra-ho tot',
+ scaleFit: 'Mida exacta',
+ scaleNoBorder: 'Sense vores',
+ title: 'Propietats del Flash',
+ vSpace: 'Espaiat vert.',
+ validateHSpace: 'L\'espaiat horitzonatal ha de ser un nombre.',
+ validateSrc: 'Si us plau, escrigui l\'enllaç URL',
+ validateVSpace: 'L\'espaiat vertical ha de ser un nombre.',
+ windowMode: 'Mode de la finestra',
+ windowModeOpaque: 'Opaca',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Finestra'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/cs.js b/devel/third-party/ckeditor/plugins/flash/lang/cs.js
new file mode 100644
index 0000000..836a6c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/cs.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'cs', {
+ access: 'PÅÃstup ke skriptu',
+ accessAlways: 'Vždy',
+ accessNever: 'Nikdy',
+ accessSameDomain: 'Ve stejné doménÄ',
+ alignAbsBottom: 'Zcela dolů',
+ alignAbsMiddle: 'DoprostÅed',
+ alignBaseline: 'Na úÄaÅÃ',
+ alignTextTop: 'Na hornà okraj textu',
+ bgcolor: 'Barva pozadÃ',
+ chkFull: 'Povolit celoobrazovkový režim',
+ chkLoop: 'OpakovánÃ',
+ chkMenu: 'NabÃdka Flash',
+ chkPlay: 'Automatické spuÅ¡tÄnÃ',
+ flashvars: 'PromÄnné pro Flash',
+ hSpace: 'Horizontálnà mezera',
+ properties: 'Vlastnosti Flashe',
+ propertiesTab: 'Vlastnosti',
+ quality: 'Kvalita',
+ qualityAutoHigh: 'Vysoká - auto',
+ qualityAutoLow: 'NÃzká - auto',
+ qualityBest: 'NejlepÅ¡Ã',
+ qualityHigh: 'Vysoká',
+ qualityLow: 'NejnižšÃ',
+ qualityMedium: 'StÅednÃ',
+ scale: 'Zobrazit',
+ scaleAll: 'Zobrazit vše',
+ scaleFit: 'PÅizpůsobit',
+ scaleNoBorder: 'Bez okraje',
+ title: 'Vlastnosti Flashe',
+ vSpace: 'Vertikálnà mezera',
+ validateHSpace: 'Zadaná horizontálnà mezera musà být ÄÃslo.',
+ validateSrc: 'Zadejte prosÃm URL odkazu',
+ validateVSpace: 'Zadaná vertikálnà mezera musà být ÄÃslo.',
+ windowMode: 'Režim okna',
+ windowModeOpaque: 'Neprůhledné',
+ windowModeTransparent: 'Průhledné',
+ windowModeWindow: 'Okno'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/cy.js b/devel/third-party/ckeditor/plugins/flash/lang/cy.js
new file mode 100644
index 0000000..6ff0929
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/cy.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'cy', {
+ access: 'Mynediad Sgript',
+ accessAlways: 'Pob amser',
+ accessNever: 'Byth',
+ accessSameDomain: 'R\'un parth',
+ alignAbsBottom: 'Gwaelod Abs',
+ alignAbsMiddle: 'Canol Abs',
+ alignBaseline: 'Baslinell',
+ alignTextTop: 'Testun Top',
+ bgcolor: 'Lliw cefndir',
+ chkFull: 'Caniatà u Sgrin Llawn',
+ chkLoop: 'Lwpio',
+ chkMenu: 'Galluogi Dewislen Flash',
+ chkPlay: 'AwtoChwarae',
+ flashvars: 'Newidynnau ar gyfer Flash',
+ hSpace: 'BwlchLl',
+ properties: 'Priodweddau Flash',
+ propertiesTab: 'Priodweddau',
+ quality: 'Ansawdd',
+ qualityAutoHigh: 'Uchel Awto',
+ qualityAutoLow: 'Isel Awto',
+ qualityBest: 'Gorau',
+ qualityHigh: 'Uchel',
+ qualityLow: 'Isel',
+ qualityMedium: 'Canolig',
+ scale: 'Graddfa',
+ scaleAll: 'Dangos pob',
+ scaleFit: 'Ffit Union',
+ scaleNoBorder: 'Dim Ymyl',
+ title: 'Priodweddau Flash',
+ vSpace: 'BwlchF',
+ validateHSpace: 'Rhaid i\'r BwlchLl fod yn rhif.',
+ validateSrc: 'Ni all yr URL fod yn wag.',
+ validateVSpace: 'Rhaid i\'r BwlchF fod yn rhif.',
+ windowMode: 'Modd ffenestr',
+ windowModeOpaque: 'Afloyw',
+ windowModeTransparent: 'Tryloyw',
+ windowModeWindow: 'Ffenestr'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/da.js b/devel/third-party/ckeditor/plugins/flash/lang/da.js
new file mode 100644
index 0000000..ab64aff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/da.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'da', {
+ access: 'Scriptadgang',
+ accessAlways: 'Altid',
+ accessNever: 'Aldrig',
+ accessSameDomain: 'Samme domæne',
+ alignAbsBottom: 'Absolut nederst',
+ alignAbsMiddle: 'Absolut centreret',
+ alignBaseline: 'Grundlinje',
+ alignTextTop: 'Toppen af teksten',
+ bgcolor: 'Baggrundsfarve',
+ chkFull: 'Tillad fuldskærm',
+ chkLoop: 'Gentagelse',
+ chkMenu: 'Vis Flash-menu',
+ chkPlay: 'Automatisk afspilning',
+ flashvars: 'Variabler for Flash',
+ hSpace: 'Vandret margen',
+ properties: 'Egenskaber for Flash',
+ propertiesTab: 'Egenskaber',
+ quality: 'Kvalitet',
+ qualityAutoHigh: 'Auto høj',
+ qualityAutoLow: 'Auto lav',
+ qualityBest: 'Bedste',
+ qualityHigh: 'Høj',
+ qualityLow: 'Lav',
+ qualityMedium: 'Medium',
+ scale: 'Skalér',
+ scaleAll: 'Vis alt',
+ scaleFit: 'Tilpas størrelse',
+ scaleNoBorder: 'Ingen ramme',
+ title: 'Egenskaber for Flash',
+ vSpace: 'Lodret margen',
+ validateHSpace: 'Vandret margen skal være et tal.',
+ validateSrc: 'Indtast hyperlink URL!',
+ validateVSpace: 'Lodret margen skal være et tal.',
+ windowMode: 'Vinduestilstand',
+ windowModeOpaque: 'Gennemsigtig (opaque)',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Vindue'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/de.js b/devel/third-party/ckeditor/plugins/flash/lang/de.js
new file mode 100644
index 0000000..5cd35a2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/de.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'de', {
+ access: 'Skript Zugang',
+ accessAlways: 'Immer',
+ accessNever: 'Nie',
+ accessSameDomain: 'Gleiche Domain',
+ alignAbsBottom: 'Abs Unten',
+ alignAbsMiddle: 'Abs Mitte',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Oben',
+ bgcolor: 'Hintergrundfarbe',
+ chkFull: 'Vollbildmodus erlauben',
+ chkLoop: 'Endlosschleife',
+ chkMenu: 'Flash-Menü aktivieren',
+ chkPlay: 'Automatisch Abspielen',
+ flashvars: 'Variablen für Flash',
+ hSpace: 'Horizontal-Abstand',
+ properties: 'Flash-Eigenschaften',
+ propertiesTab: 'Eigenschaften',
+ quality: 'Qualität',
+ qualityAutoHigh: 'Auto Hoch',
+ qualityAutoLow: 'Auto Niedrig',
+ qualityBest: 'Beste',
+ qualityHigh: 'Hoch',
+ qualityLow: 'Niedrig',
+ qualityMedium: 'Medium',
+ scale: 'Skalierung',
+ scaleAll: 'Alles anzeigen',
+ scaleFit: 'Passgenau',
+ scaleNoBorder: 'Ohne Rand',
+ title: 'Flash-Eigenschaften',
+ vSpace: 'Vertikal-Abstand',
+ validateHSpace: 'HSpace muss eine Zahl sein.',
+ validateSrc: 'Bitte geben Sie die Link-URL an',
+ validateVSpace: 'VSpace muss eine Zahl sein.',
+ windowMode: 'Fenster Modus',
+ windowModeOpaque: 'Deckend',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Fenster'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/el.js b/devel/third-party/ckeditor/plugins/flash/lang/el.js
new file mode 100644
index 0000000..2f43874
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/el.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'el', {
+ access: 'Î ÏÏÏβαÏη Script',
+ accessAlways: 'ΠάνÏα',
+ accessNever: 'ΠοÏÎ',
+ accessSameDomain: 'Îδιο Ïνομα ÏομÎα',
+ alignAbsBottom: 'ÎÏÏλÏ
Ïα ÎάÏÏ',
+ alignAbsMiddle: 'ÎÏÏλÏ
Ïα ÏÏη ÎÎÏη',
+ alignBaseline: 'ÎÏαμμή ÎάÏηÏ',
+ alignTextTop: 'ÎοÏÏ
Ïή ÎειμÎνοÏ
',
+ bgcolor: 'ΧÏÏμα Î¥ÏοβάθÏοÏ
',
+ chkFull: 'Îα ÎÏιÏÏÎÏεÏαι η Î Ïοβολή Ïε ΠλήÏη ÎθÏνη',
+ chkLoop: 'ÎÏανάληÏη',
+ chkMenu: 'ÎνεÏγοÏοίηÏη Flash Menu',
+ chkPlay: 'ÎÏ
ÏÏμαÏη ÎκÏÎλεÏη',
+ flashvars: 'ÎεÏαβληÏÎÏ Î³Î¹Î± Flash',
+ hSpace: 'ÎÏιζÏνÏιο ÎιάÏÏημα',
+ properties: 'ÎδιÏÏηÏÎµÏ Flash',
+ propertiesTab: 'ÎδιÏÏηÏεÏ',
+ quality: 'ΠοιÏÏηÏα',
+ qualityAutoHigh: 'ÎÏ
ÏÏμαÏη Î¥Ïηλή',
+ qualityAutoLow: 'ÎÏ
ÏÏμαÏη Χαμηλή',
+ qualityBest: 'ÎαλÏÏεÏη',
+ qualityHigh: 'Î¥Ïηλή',
+ qualityLow: 'Χαμηλή',
+ qualityMedium: 'ÎεÏαία',
+ scale: 'ÎεγÎθÏ
νÏη',
+ scaleAll: 'ÎμÏάνιÏη ÏλÏν',
+ scaleFit: 'ÎκÏιβÎÏ ÎÎγεθοÏ',
+ scaleNoBorder: 'ΧÏÏÎ¯Ï Î ÎµÏίγÏαμμα',
+ title: 'ÎδιÏÏηÏÎµÏ Flash',
+ vSpace: 'ÎάθεÏο ÎιάÏÏημα',
+ validateHSpace: 'Το HSpace ÏÏÎÏει να είναι αÏιθμÏÏ.',
+ validateSrc: 'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)',
+ validateVSpace: 'Το VSpace ÏÏÎÏει να είναι αÏιθμÏÏ.',
+ windowMode: 'ΤÏÏÏÎ¿Ï Î»ÎµÎ¹ÏοÏ
ÏÎ³Î¯Î±Ï ÏαÏαθÏÏοÏ
.',
+ windowModeOpaque: 'ΣÏ
μÏαγÎÏ',
+ windowModeTransparent: 'ÎιάÏανο',
+ windowModeWindow: 'ΠαÏάθÏ
Ïο'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/en-au.js b/devel/third-party/ckeditor/plugins/flash/lang/en-au.js
new file mode 100644
index 0000000..41c4441
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/en-au.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'en-au', {
+ access: 'Script Access',
+ accessAlways: 'Always',
+ accessNever: 'Never',
+ accessSameDomain: 'Same domain',
+ alignAbsBottom: 'Abs Bottom',
+ alignAbsMiddle: 'Abs Middle',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Top',
+ bgcolor: 'Background colour',
+ chkFull: 'Allow Fullscreen',
+ chkLoop: 'Loop',
+ chkMenu: 'Enable Flash Menu',
+ chkPlay: 'Auto Play',
+ flashvars: 'Variables for Flash',
+ hSpace: 'HSpace',
+ properties: 'Flash Properties',
+ propertiesTab: 'Properties',
+ quality: 'Quality',
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Scale',
+ scaleAll: 'Show all',
+ scaleFit: 'Exact Fit',
+ scaleNoBorder: 'No Border',
+ title: 'Flash Properties',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.',
+ validateSrc: 'URL must not be empty.',
+ validateVSpace: 'VSpace must be a number.',
+ windowMode: 'Window mode',
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/en-ca.js b/devel/third-party/ckeditor/plugins/flash/lang/en-ca.js
new file mode 100644
index 0000000..48de47a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/en-ca.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'en-ca', {
+ access: 'Script Access',
+ accessAlways: 'Always',
+ accessNever: 'Never',
+ accessSameDomain: 'Same domain',
+ alignAbsBottom: 'Abs Bottom',
+ alignAbsMiddle: 'Abs Middle',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Top',
+ bgcolor: 'Background colour',
+ chkFull: 'Allow Fullscreen',
+ chkLoop: 'Loop',
+ chkMenu: 'Enable Flash Menu',
+ chkPlay: 'Auto Play',
+ flashvars: 'Variables for Flash',
+ hSpace: 'HSpace',
+ properties: 'Flash Properties',
+ propertiesTab: 'Properties',
+ quality: 'Quality',
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Scale',
+ scaleAll: 'Show all',
+ scaleFit: 'Exact Fit',
+ scaleNoBorder: 'No Border',
+ title: 'Flash Properties',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.',
+ validateSrc: 'URL must not be empty.',
+ validateVSpace: 'VSpace must be a number.',
+ windowMode: 'Window mode',
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/en-gb.js b/devel/third-party/ckeditor/plugins/flash/lang/en-gb.js
new file mode 100644
index 0000000..2ed07c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/en-gb.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'en-gb', {
+ access: 'Script Access',
+ accessAlways: 'Always',
+ accessNever: 'Never',
+ accessSameDomain: 'Same domain',
+ alignAbsBottom: 'Abs Bottom',
+ alignAbsMiddle: 'Abs Middle',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Top',
+ bgcolor: 'Background colour',
+ chkFull: 'Allow Fullscreen',
+ chkLoop: 'Loop',
+ chkMenu: 'Enable Flash Menu',
+ chkPlay: 'Auto Play',
+ flashvars: 'Variables for Flash',
+ hSpace: 'HSpace',
+ properties: 'Flash Properties',
+ propertiesTab: 'Properties',
+ quality: 'Quality',
+ qualityAutoHigh: 'Auto High',
+ qualityAutoLow: 'Auto Low',
+ qualityBest: 'Best',
+ qualityHigh: 'High',
+ qualityLow: 'Low',
+ qualityMedium: 'Medium',
+ scale: 'Scale',
+ scaleAll: 'Show all',
+ scaleFit: 'Exact Fit',
+ scaleNoBorder: 'No Border',
+ title: 'Flash Properties',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.',
+ validateSrc: 'URL must not be empty.',
+ validateVSpace: 'VSpace must be a number.',
+ windowMode: 'Window mode',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Window'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/en.js b/devel/third-party/ckeditor/plugins/flash/lang/en.js
new file mode 100644
index 0000000..d478800
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/en.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'en', {
+ access: 'Script Access',
+ accessAlways: 'Always',
+ accessNever: 'Never',
+ accessSameDomain: 'Same domain',
+ alignAbsBottom: 'Abs Bottom',
+ alignAbsMiddle: 'Abs Middle',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Top',
+ bgcolor: 'Background color',
+ chkFull: 'Allow Fullscreen',
+ chkLoop: 'Loop',
+ chkMenu: 'Enable Flash Menu',
+ chkPlay: 'Auto Play',
+ flashvars: 'Variables for Flash',
+ hSpace: 'HSpace',
+ properties: 'Flash Properties',
+ propertiesTab: 'Properties',
+ quality: 'Quality',
+ qualityAutoHigh: 'Auto High',
+ qualityAutoLow: 'Auto Low',
+ qualityBest: 'Best',
+ qualityHigh: 'High',
+ qualityLow: 'Low',
+ qualityMedium: 'Medium',
+ scale: 'Scale',
+ scaleAll: 'Show all',
+ scaleFit: 'Exact Fit',
+ scaleNoBorder: 'No Border',
+ title: 'Flash Properties',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.',
+ validateSrc: 'URL must not be empty.',
+ validateVSpace: 'VSpace must be a number.',
+ windowMode: 'Window mode',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Window'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/eo.js b/devel/third-party/ckeditor/plugins/flash/lang/eo.js
new file mode 100644
index 0000000..f7f9344
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/eo.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'eo', {
+ access: 'Atingi skriptojn',
+ accessAlways: 'Äiam',
+ accessNever: 'Neniam',
+ accessSameDomain: 'Sama domajno',
+ alignAbsBottom: 'Absoluta Malsupro',
+ alignAbsMiddle: 'Absoluta Centro',
+ alignBaseline: 'TekstoMalsupro',
+ alignTextTop: 'TekstoSupro',
+ bgcolor: 'Fona Koloro',
+ chkFull: 'Permesi tutekranon',
+ chkLoop: 'Iteracio',
+ chkMenu: 'Ebligi flaÅmenuon',
+ chkPlay: 'AÅtomata legado',
+ flashvars: 'Variabloj por FlaÅo',
+ hSpace: 'Horizontala Spaco',
+ properties: 'FlaÅatributoj',
+ propertiesTab: 'Atributoj',
+ quality: 'Kvalito',
+ qualityAutoHigh: 'AÅtomate alta',
+ qualityAutoLow: 'AÅtomate malalta',
+ qualityBest: 'Plej bona',
+ qualityHigh: 'Alta',
+ qualityLow: 'Malalta',
+ qualityMedium: 'Meza',
+ scale: 'Skalo',
+ scaleAll: 'Montri Äion',
+ scaleFit: 'Origina grando',
+ scaleNoBorder: 'Neniu bordero',
+ title: 'FlaÅatributoj',
+ vSpace: 'Vertikala Spaco',
+ validateHSpace: 'Horizontala Spaco devas esti nombro.',
+ validateSrc: 'Bonvolu entajpi la retadreson (URL)',
+ validateVSpace: 'Vertikala Spaco devas esti nombro.',
+ windowMode: 'Fenestra reÄimo',
+ windowModeOpaque: 'Opaka',
+ windowModeTransparent: 'Travidebla',
+ windowModeWindow: 'Fenestro'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/es.js b/devel/third-party/ckeditor/plugins/flash/lang/es.js
new file mode 100644
index 0000000..77693bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/es.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'es', {
+ access: 'Acceso de scripts',
+ accessAlways: 'Siempre',
+ accessNever: 'Nunca',
+ accessSameDomain: 'Mismo dominio',
+ alignAbsBottom: 'Abs inferior',
+ alignAbsMiddle: 'Abs centro',
+ alignBaseline: 'LÃnea de base',
+ alignTextTop: 'Tope del texto',
+ bgcolor: 'Color de Fondo',
+ chkFull: 'Permitir pantalla completa',
+ chkLoop: 'Repetir',
+ chkMenu: 'Activar Menú Flash',
+ chkPlay: 'Autoejecución',
+ flashvars: 'Opciones',
+ hSpace: 'Esp.Horiz',
+ properties: 'Propiedades de Flash',
+ propertiesTab: 'Propiedades',
+ quality: 'Calidad',
+ qualityAutoHigh: 'Auto Alta',
+ qualityAutoLow: 'Auto Baja',
+ qualityBest: 'La mejor',
+ qualityHigh: 'Alta',
+ qualityLow: 'Baja',
+ qualityMedium: 'Media',
+ scale: 'Escala',
+ scaleAll: 'Mostrar todo',
+ scaleFit: 'Ajustado',
+ scaleNoBorder: 'Sin Borde',
+ title: 'Propiedades de Flash',
+ vSpace: 'Esp.Vert',
+ validateHSpace: 'Esp.Horiz debe ser un número.',
+ validateSrc: 'Por favor escriba el vÃnculo URL',
+ validateVSpace: 'Esp.Vert debe ser un número.',
+ windowMode: 'WindowMode',
+ windowModeOpaque: 'Opaco',
+ windowModeTransparent: 'Transparente',
+ windowModeWindow: 'Ventana'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/et.js b/devel/third-party/ckeditor/plugins/flash/lang/et.js
new file mode 100644
index 0000000..0ae6b6a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/et.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'et', {
+ access: 'Skriptide ligipääs',
+ accessAlways: 'Kõigile',
+ accessNever: 'Mitte ühelegi',
+ accessSameDomain: 'Samalt domeenilt',
+ alignAbsBottom: 'Abs alla',
+ alignAbsMiddle: 'Abs keskele',
+ alignBaseline: 'Baasjoonele',
+ alignTextTop: 'Tekstist üles',
+ bgcolor: 'Tausta värv',
+ chkFull: 'Täisekraan lubatud',
+ chkLoop: 'Korduv',
+ chkMenu: 'Flashi menüü lubatud',
+ chkPlay: 'Automaatne start ',
+ flashvars: 'Flashi muutujad',
+ hSpace: 'H. vaheruum',
+ properties: 'Flashi omadused',
+ propertiesTab: 'Omadused',
+ quality: 'Kvaliteet',
+ qualityAutoHigh: 'Automaatne kõrge',
+ qualityAutoLow: 'Automaatne madal',
+ qualityBest: 'Parim',
+ qualityHigh: 'Kõrge',
+ qualityLow: 'Madal',
+ qualityMedium: 'Keskmine',
+ scale: 'Mastaap',
+ scaleAll: 'Näidatakse kõike',
+ scaleFit: 'Täpne sobivus',
+ scaleNoBorder: 'Ãärist ei ole',
+ title: 'Flashi omadused',
+ vSpace: 'V. vaheruum',
+ validateHSpace: 'H. vaheruum peab olema number.',
+ validateSrc: 'Palun kirjuta lingi URL',
+ validateVSpace: 'V. vaheruum peab olema number.',
+ windowMode: 'Akna režiim',
+ windowModeOpaque: 'Läbipaistmatu',
+ windowModeTransparent: 'Läbipaistev',
+ windowModeWindow: 'Aken'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/eu.js b/devel/third-party/ckeditor/plugins/flash/lang/eu.js
new file mode 100644
index 0000000..af8349e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/eu.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'eu', {
+ access: 'Scriptak baimendu',
+ accessAlways: 'Beti',
+ accessNever: 'Inoiz ere ez',
+ accessSameDomain: 'Domeinu berdinekoak',
+ alignAbsBottom: 'Abs Behean',
+ alignAbsMiddle: 'Abs Erdian',
+ alignBaseline: 'Oinan',
+ alignTextTop: 'Testua Goian',
+ bgcolor: 'Atzeko kolorea',
+ chkFull: 'Onartu Pantaila osoa',
+ chkLoop: 'Begizta',
+ chkMenu: 'Flasharen Menua Gaitu',
+ chkPlay: 'Automatikoki Erreproduzitu',
+ flashvars: 'Flash Aldagaiak',
+ hSpace: 'HSpace',
+ properties: 'Flasharen Ezaugarriak',
+ propertiesTab: 'Ezaugarriak',
+ quality: 'Kalitatea',
+ qualityAutoHigh: 'Auto Altua',
+ qualityAutoLow: 'Auto Baxua',
+ qualityBest: 'Hoberena',
+ qualityHigh: 'Altua',
+ qualityLow: 'Baxua',
+ qualityMedium: 'Ertaina',
+ scale: 'Eskalatu',
+ scaleAll: 'Dena erakutsi',
+ scaleFit: 'Doitu',
+ scaleNoBorder: 'Ertzik gabe',
+ title: 'Flasharen Ezaugarriak',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace zenbaki bat izan behar da.',
+ validateSrc: 'Mesedez URL esteka idatzi',
+ validateVSpace: 'VSpace zenbaki bat izan behar da.',
+ windowMode: 'Leihoaren modua',
+ windowModeOpaque: 'Opakoa',
+ windowModeTransparent: 'Gardena',
+ windowModeWindow: 'Leihoa'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/fa.js b/devel/third-party/ckeditor/plugins/flash/lang/fa.js
new file mode 100644
index 0000000..a730eac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/fa.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'fa', {
+ access: 'Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ø§Ø³Ú©Ø±Ûپت',
+ accessAlways: 'ÙÙ
ÛØ´Ù',
+ accessNever: 'ÙØ±Ú¯Ø²',
+ accessSameDomain: 'ÙÙ
ا٠داÙ
ÙÙ',
+ alignAbsBottom: 'پائÛÙ Ù
Ø·ÙÙ',
+ alignAbsMiddle: 'ÙØ³Ø· Ù
Ø·ÙÙ',
+ alignBaseline: 'خط پاÛÙ',
+ alignTextTop: 'Ù
ØªÙ Ø¨Ø§ÙØ§',
+ bgcolor: 'رÙÚ¯ پسزÙ
ÛÙÙ',
+ chkFull: 'اجاز٠تÙ
اÙ
ØµÙØÙ',
+ chkLoop: 'Ø§Ø¬Ø±Ø§Û Ù¾ÛØ§Ù¾Û',
+ chkMenu: 'در دسترس Ø¨ÙØ¯Ù Ù
ÙÙÛ ÙÙØ´',
+ chkPlay: 'آغاز Ø®ÙØ¯Ú©Ø§Ø±',
+ flashvars: 'Ù
ÙØ§Ø¯Ûر Ø¨Ø±Ø§Û ÙÙØ´',
+ hSpace: 'ÙØ§ØµÙÙÙ´ اÙÙÛ',
+ properties: 'ÙÛÚÚ¯ÛÙØ§Û ÙÙØ´',
+ propertiesTab: 'ÙÛÚÚ¯ÛÙØ§',
+ quality: 'Ú©ÛÙÛØª',
+ qualityAutoHigh: 'Ø¨Ø§ÙØ§ - Ø®ÙØ¯Ú©Ø§Ø±',
+ qualityAutoLow: 'پاÛÛÙ - Ø®ÙØ¯Ú©Ø§Ø±',
+ qualityBest: 'Ø¨ÙØªØ±ÛÙ',
+ qualityHigh: 'Ø¨Ø§ÙØ§',
+ qualityLow: 'پاÛÛÙ',
+ qualityMedium: 'Ù
ØªÙØ³Ø·',
+ scale: 'Ù
ÙÛØ§Ø³',
+ scaleAll: 'ÙÙ
Ø§ÛØ´ ÙÙ
Ù',
+ scaleFit: 'جاÛÚ¯ÛØ±Û کاÙ
Ù',
+ scaleNoBorder: 'بدÙ٠کراÙ',
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙÙØ´',
+ vSpace: 'ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û',
+ validateHSpace: 'Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø§ÙÙÛ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ validateSrc: 'ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد',
+ validateVSpace: 'Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø¹Ù
ÙØ¯Û Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ windowMode: 'ØØ§Ùت Ù¾ÙØ¬Ø±Ù',
+ windowModeOpaque: 'Ù
ات',
+ windowModeTransparent: 'Ø´ÙØ§Ù',
+ windowModeWindow: 'Ù¾ÙØ¬Ø±Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/fi.js b/devel/third-party/ckeditor/plugins/flash/lang/fi.js
new file mode 100644
index 0000000..73f1a6a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/fi.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'fi', {
+ access: 'Skriptien pääsy',
+ accessAlways: 'Aina',
+ accessNever: 'Ei koskaan',
+ accessSameDomain: 'Sama verkkotunnus',
+ alignAbsBottom: 'Aivan alas',
+ alignAbsMiddle: 'Aivan keskelle',
+ alignBaseline: 'Alas (teksti)',
+ alignTextTop: 'Ylös (teksti)',
+ bgcolor: 'Taustaväri',
+ chkFull: 'Salli kokoruututila',
+ chkLoop: 'Toisto',
+ chkMenu: 'Näytä Flash-valikko',
+ chkPlay: 'Automaattinen käynnistys',
+ flashvars: 'Muuttujat Flash:lle',
+ hSpace: 'Vaakatila',
+ properties: 'Flash-ominaisuudet',
+ propertiesTab: 'Ominaisuudet',
+ quality: 'Laatu',
+ qualityAutoHigh: 'Automaattinen korkea',
+ qualityAutoLow: 'Automaattinen matala',
+ qualityBest: 'Paras',
+ qualityHigh: 'Korkea',
+ qualityLow: 'Matala',
+ qualityMedium: 'Keskitaso',
+ scale: 'Levitä',
+ scaleAll: 'Näytä kaikki',
+ scaleFit: 'Tarkka koko',
+ scaleNoBorder: 'Ei rajaa',
+ title: 'Flash ominaisuudet',
+ vSpace: 'Pystytila',
+ validateHSpace: 'Vaakatilan täytyy olla numero.',
+ validateSrc: 'Linkille on kirjoitettava URL',
+ validateVSpace: 'Pystytilan täytyy olla numero.',
+ windowMode: 'Ikkuna tila',
+ windowModeOpaque: 'Läpinäkyvyys',
+ windowModeTransparent: 'Läpinäkyvä',
+ windowModeWindow: 'Ikkuna'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/fo.js b/devel/third-party/ckeditor/plugins/flash/lang/fo.js
new file mode 100644
index 0000000..58037c2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/fo.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'fo', {
+ access: 'Script atgongd',
+ accessAlways: 'AltÃð',
+ accessNever: 'OngantÃð',
+ accessSameDomain: 'Sama navnaøki',
+ alignAbsBottom: 'Abs botnur',
+ alignAbsMiddle: 'Abs miðja',
+ alignBaseline: 'Basislinja',
+ alignTextTop: 'Tekst toppur',
+ bgcolor: 'Bakgrundslitur',
+ chkFull: 'Loyv fullan skerm',
+ chkLoop: 'Endurspæl',
+ chkMenu: 'Ger Flash skrá virkna',
+ chkPlay: 'Avspælingin byrjar sjálv',
+ flashvars: 'Variablar fyri Flash',
+ hSpace: 'Høgri breddi',
+ properties: 'Flash eginleikar',
+ propertiesTab: 'Eginleikar',
+ quality: 'Góðska',
+ qualityAutoHigh: 'Auto høg',
+ qualityAutoLow: 'Auto Lág',
+ qualityBest: 'Besta',
+ qualityHigh: 'Høg',
+ qualityLow: 'Lág',
+ qualityMedium: 'Meðal',
+ scale: 'Skalering',
+ scaleAll: 'VÃs alt',
+ scaleFit: 'Neyv skalering',
+ scaleNoBorder: 'Eingin bordi',
+ title: 'Flash eginleikar',
+ vSpace: 'Vinstri breddi',
+ validateHSpace: 'HSpace má vera eitt tal.',
+ validateSrc: 'Vinarliga skriva tilknýti (URL)',
+ validateVSpace: 'VSpace má vera eitt tal.',
+ windowMode: 'Slag av rúti',
+ windowModeOpaque: 'Ikki transparent',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Rútur'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/flash/lang/fr-ca.js
new file mode 100644
index 0000000..07b88ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/fr-ca.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'fr-ca', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs Bas',
+ alignAbsMiddle: 'Abs Milieu',
+ alignBaseline: 'Bas du texte',
+ alignTextTop: 'Haut du texte',
+ bgcolor: 'Couleur de fond',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Boucle',
+ chkMenu: 'Activer le menu Flash',
+ chkPlay: 'Lecture automatique',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'Espacement horizontal',
+ properties: 'Propriétés de l\'animation Flash',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Affichage',
+ scaleAll: 'Par défaut (tout montrer)',
+ scaleFit: 'Ajuster aux dimensions',
+ scaleNoBorder: 'Sans bordure',
+ title: 'Propriétés de l\'animation Flash',
+ vSpace: 'Espacement vertical',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Veuillez saisir l\'URL',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/fr.js b/devel/third-party/ckeditor/plugins/flash/lang/fr.js
new file mode 100644
index 0000000..7841048
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/fr.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'fr', {
+ access: 'Accès aux scripts',
+ accessAlways: 'Toujours',
+ accessNever: 'Jamais',
+ accessSameDomain: 'Même domaine',
+ alignAbsBottom: 'Bas absolu',
+ alignAbsMiddle: 'Milieu absolu',
+ alignBaseline: 'Bas du texte',
+ alignTextTop: 'Haut du texte',
+ bgcolor: 'Couleur d\'arrière-plan',
+ chkFull: 'Permettre le plein écran',
+ chkLoop: 'Boucle',
+ chkMenu: 'Activer le menu Flash',
+ chkPlay: 'Jouer automatiquement',
+ flashvars: 'Variables du Flash',
+ hSpace: 'Espacement horizontal',
+ properties: 'Propriétés du Flash',
+ propertiesTab: 'Propriétés',
+ quality: 'Qualité',
+ qualityAutoHigh: 'Haute Auto',
+ qualityAutoLow: 'Basse Auto',
+ qualityBest: 'Meilleure',
+ qualityHigh: 'Haute',
+ qualityLow: 'Basse',
+ qualityMedium: 'Moyenne',
+ scale: 'Echelle',
+ scaleAll: 'Afficher tout',
+ scaleFit: 'Taille d\'origine',
+ scaleNoBorder: 'Pas de bordure',
+ title: 'Propriétés du Flash',
+ vSpace: 'Espacement vertical',
+ validateHSpace: 'L\'espacement horizontal doit être un nombre.',
+ validateSrc: 'L\'adresse ne doit pas être vide.',
+ validateVSpace: 'L\'espacement vertical doit être un nombre.',
+ windowMode: 'Mode fenêtre',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Fenêtre'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/gl.js b/devel/third-party/ckeditor/plugins/flash/lang/gl.js
new file mode 100644
index 0000000..7e6b5d6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/gl.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'gl', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs Inferior',
+ alignAbsMiddle: 'Abs Centro',
+ alignBaseline: 'Liña Base',
+ alignTextTop: 'Tope do Texto',
+ bgcolor: 'Cor do Fondo',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Bucle',
+ chkMenu: 'Activar Menú Flash',
+ chkPlay: 'Auto Execución',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'Esp. Horiz.',
+ properties: 'Propriedades Flash',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Escalar',
+ scaleAll: 'Amosar Todo',
+ scaleFit: 'Encaixar axustando',
+ scaleNoBorder: 'Sen Borde',
+ title: 'Propriedades Flash',
+ vSpace: 'Esp. Vert.',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Por favor, escriba a ligazón URL',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/gu.js b/devel/third-party/ckeditor/plugins/flash/lang/gu.js
new file mode 100644
index 0000000..a79ed22
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/gu.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'gu', {
+ access: 'સà«àªà«àª°à«àªªà«àª àªàªà«àª¸à«àª¸',
+ accessAlways: 'હમà«àª¶àª¾àª',
+ accessNever: 'નહà«',
+ accessSameDomain: 'àªàª ડà«àª®à«àª¨',
+ alignAbsBottom: 'Abs નà«àªà«',
+ alignAbsMiddle: 'Abs àªàªªàª°',
+ alignBaseline: 'àªàª§àª¾àª° લà«àªà«',
+ alignTextTop: 'àªà«àªà«àª¸à«àª àªàªªàª°',
+ bgcolor: 'બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,',
+ chkFull: 'ફà«àª² સà«àªà«àª°à«àª¨ àªàª°àªµà«àª',
+ chkLoop: 'લà«àªª',
+ chkMenu: 'ફà«àª²à«
શ મà«àª¨à«àª¯à« નૠપà«àª°àª¯à«àª àªàª°à«',
+ chkPlay: 'àªàªà«/સà«àªµàª¯àª પà«àª²à«',
+ flashvars: 'ફલà«àª¶ ના વિàªàª²à«àªªà«',
+ hSpace: 'સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾',
+ properties: 'ફà«àª²à«
શના àªà«àª£',
+ propertiesTab: 'àªà«àª£',
+ quality: 'àªà«àª£àª§àª°à«àª®',
+ qualityAutoHigh: 'àªàªà« àªàªàªà«àª',
+ qualityAutoLow: 'àªàªà« નà«àªà«àª',
+ qualityBest: 'શà«àª°à«àª·à«àª ',
+ qualityHigh: 'àªàªàªà«àª',
+ qualityLow: 'નà«àªà«àª',
+ qualityMedium: 'મધà«àª¯àª®',
+ scale: 'સà«àªà«àª²',
+ scaleAll: 'સà«àªà«àª² àªàª²/બધૠબતાવà«',
+ scaleFit: 'સà«àªà«àª² àªàªàª¦àª® ફà«àª',
+ scaleNoBorder: 'સà«àªà«àª² બà«àª°à«àª¡àª° વàªàª°',
+ title: 'ફà«àª²à«
શ àªà«àª£',
+ vSpace: 'લàªàª¬àª°à«àªª àªàªà«àª¯àª¾',
+ validateHSpace: 'HSpace àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ validateSrc: 'લિàªàª URL àªàª¾àªàªª àªàª°à«',
+ validateVSpace: 'VSpace àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ windowMode: 'વિનà«àª¡à« મà«àª¡',
+ windowModeOpaque: 'àª
પારદરà«àª¶àª',
+ windowModeTransparent: 'પારદરà«àª¶àª',
+ windowModeWindow: 'વિનà«àª¡à«'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/he.js b/devel/third-party/ckeditor/plugins/flash/lang/he.js
new file mode 100644
index 0000000..0596c1e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/he.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'he', {
+ access: '××שת סקר×פ×',
+ accessAlways: 'ת×××',
+ accessNever: '××£ פע×',
+ accessSameDomain: '×××××× ×××',
+ alignAbsBottom: '×ת×ת×ת ×××ס×××××ת',
+ alignAbsMiddle: '×ר××× ××ס×××××',
+ alignBaseline: '××§× ×ת×ת×ת',
+ alignTextTop: '×ר×ש ××קס×',
+ bgcolor: 'צ××¢ רקע',
+ chkFull: '×פשר ×××× ×××',
+ chkLoop: '×××××',
+ chkMenu: '×פשר תפר×× ×¤××ש',
+ chkPlay: '× ×××× ×××××××',
+ flashvars: '××©×ª× ×× ×פ××ש',
+ hSpace: '×ר××× ××פק×',
+ properties: '××פ××× × ×¤××ש',
+ propertiesTab: '××פ××× ××',
+ quality: '××××ת',
+ qualityAutoHigh: '××××× ×××××××ת',
+ qualityAutoLow: '× ×××× ×××××××ת',
+ qualityBest: '××¢×××',
+ qualityHigh: '×××××',
+ qualityLow: '× ××××',
+ qualityMedium: '×××צעת',
+ scale: '××××',
+ scaleAll: '××¦× ×××',
+ scaleFit: '×ת××× ××ש××ת',
+ scaleNoBorder: '××× ×××××ת',
+ title: '××פ×× × ×¤××ש',
+ vSpace: '×ר××× ×× ××',
+ validateHSpace: '××ר××× ××××¤×§× ×××× ××××ת ×ספר.',
+ validateSrc: '×ש ×××§××× ×ת ×ת××ת סר××× ×פ××ש (URL)',
+ validateVSpace: '××ר××× ××× ×× ×××× ××××ת ×ספר.',
+ windowMode: '××¦× ××××',
+ windowModeOpaque: '××××',
+ windowModeTransparent: 'שק××£',
+ windowModeWindow: '××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/hi.js b/devel/third-party/ckeditor/plugins/flash/lang/hi.js
new file mode 100644
index 0000000..29a076c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/hi.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'hi', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs नà¥à¤à¥',
+ alignAbsMiddle: 'Abs à¤à¤ªà¤°',
+ alignBaseline: 'मà¥à¤² रà¥à¤à¤¾',
+ alignTextTop: 'à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤ªà¤°',
+ bgcolor: 'बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'लà¥à¤ª',
+ chkMenu: 'à¥à¥à¤²à¥à¤¶ मà¥
नà¥à¤¯à¥ à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤',
+ chkPlay: 'à¤à¤à¥ पà¥à¤²à¥',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸',
+ properties: 'à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'सà¥à¤à¥à¤²',
+ scaleAll: 'सà¤à¥ दिà¤à¤¾à¤¯à¥à¤',
+ scaleFit: 'बिलà¥à¤à¥à¤² à¥à¤¿à¤',
+ scaleNoBorder: 'à¤à¥à¤ बà¥à¤°à¥à¤¡à¤° नहà¥à¤',
+ title: 'à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ vSpace: 'वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/hr.js b/devel/third-party/ckeditor/plugins/flash/lang/hr.js
new file mode 100644
index 0000000..1a69b1b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/hr.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'hr', {
+ access: 'Script Access',
+ accessAlways: 'Uvijek',
+ accessNever: 'Nikad',
+ accessSameDomain: 'Ista domena',
+ alignAbsBottom: 'Abs dolje',
+ alignAbsMiddle: 'Abs sredina',
+ alignBaseline: 'Bazno',
+ alignTextTop: 'Vrh teksta',
+ bgcolor: 'Boja pozadine',
+ chkFull: 'OmoguÄi Fullscreen',
+ chkLoop: 'Ponavljaj',
+ chkMenu: 'OmoguÄi Flash izbornik',
+ chkPlay: 'Auto Play',
+ flashvars: 'Varijable za Flash',
+ hSpace: 'HSpace',
+ properties: 'Flash svojstva',
+ propertiesTab: 'Svojstva',
+ quality: 'Kvaliteta',
+ qualityAutoHigh: 'Auto High',
+ qualityAutoLow: 'Auto Low',
+ qualityBest: 'Best',
+ qualityHigh: 'High',
+ qualityLow: 'Low',
+ qualityMedium: 'Medium',
+ scale: 'Omjer',
+ scaleAll: 'Prikaži sve',
+ scaleFit: 'ToÄna veliÄina',
+ scaleNoBorder: 'Bez okvira',
+ title: 'Flash svojstva',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace mora biti broj.',
+ validateSrc: 'Molimo upišite URL link',
+ validateVSpace: 'VSpace mora biti broj.',
+ windowMode: 'Vrsta prozora',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Window'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/hu.js b/devel/third-party/ckeditor/plugins/flash/lang/hu.js
new file mode 100644
index 0000000..aae3e93
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/hu.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'hu', {
+ access: 'Szkript hozzáférés',
+ accessAlways: 'Mindig',
+ accessNever: 'Soha',
+ accessSameDomain: 'Azonos domainrÅl',
+ alignAbsBottom: 'Legaljára',
+ alignAbsMiddle: 'Közepére',
+ alignBaseline: 'Alapvonalhoz',
+ alignTextTop: 'Szöveg tetejére',
+ bgcolor: 'HáttérszÃn',
+ chkFull: 'Teljes képernyŠengedélyezése',
+ chkLoop: 'Folyamatosan',
+ chkMenu: 'Flash menü engedélyezése',
+ chkPlay: 'Automata lejátszás',
+ flashvars: 'Flash változók',
+ hSpace: 'VÃzsz. táv',
+ properties: 'Flash tulajdonságai',
+ propertiesTab: 'Tulajdonságok',
+ quality: 'MinÅség',
+ qualityAutoHigh: 'Automata jó',
+ qualityAutoLow: 'Automata gyenge',
+ qualityBest: 'Legjobb',
+ qualityHigh: 'Jó',
+ qualityLow: 'Gyenge',
+ qualityMedium: 'Közepes',
+ scale: 'Méretezés',
+ scaleAll: 'Mindent mutat',
+ scaleFit: 'Teljes kitöltés',
+ scaleNoBorder: 'Keret nélkül',
+ title: 'Flash tulajdonságai',
+ vSpace: 'Függ. táv',
+ validateHSpace: 'A vÃzszintes távolsűág mezÅbe csak számokat Ãrhat.',
+ validateSrc: 'Adja meg a hivatkozás webcÃmét',
+ validateVSpace: 'A függÅleges távolsűág mezÅbe csak számokat Ãrhat.',
+ windowMode: 'Ablak mód',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Window'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/is.js b/devel/third-party/ckeditor/plugins/flash/lang/is.js
new file mode 100644
index 0000000..a3f01ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/is.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'is', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs neðst',
+ alignAbsMiddle: 'Abs miðjuð',
+ alignBaseline: 'GrunnlÃna',
+ alignTextTop: 'Efri brún texta',
+ bgcolor: 'Bakgrunnslitur',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Endurtekning',
+ chkMenu: 'Sýna Flash-valmynd',
+ chkPlay: 'Sjálfvirk spilun',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'Vinstri bil',
+ properties: 'Eigindi Flash',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Skali',
+ scaleAll: 'Sýna allt',
+ scaleFit: 'Fella skala að stærð',
+ scaleNoBorder: 'Ãn ramma',
+ title: 'Eigindi Flash',
+ vSpace: 'Hægri bil',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Sláðu inn veffang stiklunnar!',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/it.js b/devel/third-party/ckeditor/plugins/flash/lang/it.js
new file mode 100644
index 0000000..a02c90a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/it.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'it', {
+ access: 'Accesso Script',
+ accessAlways: 'Sempre',
+ accessNever: 'Mai',
+ accessSameDomain: 'Solo stesso dominio',
+ alignAbsBottom: 'In basso assoluto',
+ alignAbsMiddle: 'Centrato assoluto',
+ alignBaseline: 'Linea base',
+ alignTextTop: 'In alto al testo',
+ bgcolor: 'Colore sfondo',
+ chkFull: 'Permetti la modalità tutto schermo',
+ chkLoop: 'Riavvio automatico',
+ chkMenu: 'Abilita Menu di Flash',
+ chkPlay: 'Avvio Automatico',
+ flashvars: 'Variabili per Flash',
+ hSpace: 'HSpace',
+ properties: 'Proprietà Oggetto Flash',
+ propertiesTab: 'Proprietà ',
+ quality: 'Qualità ',
+ qualityAutoHigh: 'Alta Automatica',
+ qualityAutoLow: 'Bassa Automatica',
+ qualityBest: 'Massima',
+ qualityHigh: 'Alta',
+ qualityLow: 'Bassa',
+ qualityMedium: 'Intermedia',
+ scale: 'Ridimensiona',
+ scaleAll: 'Mostra Tutto',
+ scaleFit: 'Dimensione Esatta',
+ scaleNoBorder: 'Senza Bordo',
+ title: 'Proprietà Oggetto Flash',
+ vSpace: 'VSpace',
+ validateHSpace: 'L\'HSpace dev\'essere un numero.',
+ validateSrc: 'Devi inserire l\'URL del collegamento',
+ validateVSpace: 'Il VSpace dev\'essere un numero.',
+ windowMode: 'Modalità finestra',
+ windowModeOpaque: 'Opaca',
+ windowModeTransparent: 'Trasparente',
+ windowModeWindow: 'Finestra'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ja.js b/devel/third-party/ckeditor/plugins/flash/lang/ja.js
new file mode 100644
index 0000000..48cf6e7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ja.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ja', {
+ access: 'ã¹ããªã¯ãã¢ã¯ã»ã¹(AllowScriptAccess)',
+ accessAlways: 'ãã¹ã¦ã®å ´åã«éä¿¡å¯è½(Always)',
+ accessNever: 'ãã¹ã¦ã®å ´åã«éä¿¡ä¸å¯è½(Never)',
+ accessSameDomain: 'åä¸ãã¡ã¤ã³ã®ã¿ã«éä¿¡å¯è½(Same domain)',
+ alignAbsBottom: 'ä¸é¨(絶対ç)',
+ alignAbsMiddle: 'ä¸å¤®(絶対ç)',
+ alignBaseline: 'ãã¼ã¹ã©ã¤ã³',
+ alignTextTop: 'ããã¹ãä¸é¨',
+ bgcolor: 'èæ¯è²',
+ chkFull: 'ãã«ã¹ã¯ãªã¼ã³è¨±å¯',
+ chkLoop: 'ã«ã¼ãåç',
+ chkMenu: 'Flashã¡ãã¥ã¼å¯è½',
+ chkPlay: 'åç',
+ flashvars: 'ãã©ãã·ã¥ã«æ¸¡ã夿°(FlashVars)',
+ hSpace: '横éé',
+ properties: 'Flash ããããã£',
+ propertiesTab: 'ããããã£',
+ quality: 'ç»è³ª',
+ qualityAutoHigh: 'èªå/é«',
+ qualityAutoLow: 'èªå/ä½',
+ qualityBest: 'å質åªå
',
+ qualityHigh: 'é«',
+ qualityLow: 'ä½',
+ qualityMedium: 'ä¸',
+ scale: 'æ¡å¤§ç¸®å°è¨å®',
+ scaleAll: 'ãã¹ã¦è¡¨ç¤º',
+ scaleFit: 'ä¸ä¸å·¦å³ã«ãã£ãã',
+ scaleNoBorder: 'å¤ãè¦ããªãæ§ã«æ¡å¤§',
+ title: 'Flash ããããã£',
+ vSpace: '縦éé',
+ validateHSpace: '横ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ validateSrc: 'ãªã³ã¯URLãå
¥åãã¦ãã ããã',
+ validateVSpace: '縦ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ windowMode: 'ã¦ã£ã³ãã¦ã¢ã¼ã',
+ windowModeOpaque: 'èæ¯ãä¸éæè¨å®',
+ windowModeTransparent: 'èæ¯ãééè¨å®',
+ windowModeWindow: 'æ¨æº'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ka.js b/devel/third-party/ckeditor/plugins/flash/lang/ka.js
new file mode 100644
index 0000000..d93ea95
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ka.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ka', {
+ access: 'á¡áá ááá¢áá¡ á¬ááááá',
+ accessAlways: 'á§áááááááá¡',
+ accessNever: 'áá áá¡áá áá¡',
+ accessSameDomain: 'ááááá áááááá',
+ alignAbsBottom: 'á©áá á©áá¡ á¥áááááá ááá¬áááá¡ á¡á¬áá ááá á¢áá¥á¡á¢áá¡áááá¡',
+ alignAbsMiddle: 'á©áá á©áá¡ á¨á£á ááá¬áááá¡ á¡á¬áá ááá á¢áá¥á¡á¢áá¡áááá¡',
+ alignBaseline: 'á¡áááááá¡á á®áááá¡ á¡á¬áá ááá',
+ alignTextTop: 'á¢áá¥á¡á¢á ááááááá',
+ bgcolor: 'á¤áááá¡ á¤áá á',
+ chkFull: 'ááááá ááá áááá¡ ááá¨áááá',
+ chkLoop: 'á©ááªááááá',
+ chkMenu: 'Flash-áá¡ ááááá£á¡ ááá¨áááá',
+ chkPlay: 'ááá¢á ááá¨áááá',
+ flashvars: 'áªááááááá Flash-áá¡áááá¡',
+ hSpace: 'á°áá áá. á¡ááá áªá',
+ properties: 'Flash-áá¡ ááá áááá¢á ááá',
+ propertiesTab: 'ááá áááá¢á ááá',
+ quality: 'á®áá áá¡á®á',
+ qualityAutoHigh: 'ááá¦ááá (ááá¢áááá¢á£á á)',
+ qualityAutoLow: 'á«ááááá áááááá',
+ qualityBest: 'á¡áá£ááááá¡á',
+ qualityHigh: 'ááá¦ááá',
+ qualityLow: 'áááááá',
+ qualityMedium: 'á¡áá¨á£ááá',
+ scale: 'ááá¡á¨á¢áááá ááá',
+ scaleAll: 'á§ááááá¤á áá¡ á©áááááá',
+ scaleFit: 'áá£á¡á¢á á©áá¡áá',
+ scaleNoBorder: 'á©áá á©áá¡ ááá áá¨á',
+ title: 'Flash-áá¡ ááá áááá¢á ááá',
+ vSpace: 'ááá á¢. á¡ááá áªá',
+ validateHSpace: 'á°áá ááááá¢ááá£á á á¡ááá áªá áá á£ááá áá§áá¡ áªáá áááá.',
+ validateSrc: 'URL áá á£ááá áá§áá¡ áªáá áááá.',
+ validateVSpace: 'ááá á¢ááááá£á á á¡ááá áªá áá á£ááá áá§áá¡ áªáá áááá.',
+ windowMode: 'á¤ááá¯á áá¡ á ááááá',
+ windowModeOpaque: 'ááá£ááááá áááá',
+ windowModeTransparent: 'ááááááá áááá',
+ windowModeWindow: 'á¤ááá¯áá á'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/km.js b/devel/third-party/ckeditor/plugins/flash/lang/km.js
new file mode 100644
index 0000000..0771e15
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/km.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'km', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs Bottom', // MISSING
+ alignAbsMiddle: 'Abs Middle', // MISSING
+ alignBaseline: 'ááááá¶áááá¶áá¼ááááá¶á',
+ alignTextTop: 'áá¾á¢ááááá',
+ bgcolor: 'ááááááááá¶áááááá',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'á
ááá½ááá',
+ chkMenu: 'áááá á¶á ááºáá»ááááá Flash',
+ chkPlay: 'áááááááááááááááááá',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'áááá¶áááá¹á',
+ properties: 'áá¶áááááá Flash',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'ááá á',
+ scaleAll: 'áááá á¶ááá¶ááá¢áá',
+ scaleFit: 'áááá¼ááááá',
+ scaleNoBorder: 'áá·ááááá á¶áááá»á',
+ title: 'áá¶áááááá Flash',
+ vSpace: 'áááá¶ááááááá',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'áá¼áááááá á¢á¶ááááááá¶á URL',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ko.js b/devel/third-party/ckeditor/plugins/flash/lang/ko.js
new file mode 100644
index 0000000..326ebfb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ko.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ko', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'ì¤ìë(Abs Bottom)',
+ alignAbsMiddle: 'ì¤ì¤ê°(Abs Middle)',
+ alignBaseline: '기ì¤ì ',
+ alignTextTop: 'ê¸ììë¨',
+ bgcolor: 'ë°°ê²½ ìì',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'ë°ë³µ',
+ chkMenu: 'íëì¬ë©ë´ ê°ë¥',
+ chkPlay: 'ìëì¬ì',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'ìíì¬ë°±',
+ properties: 'íëì¬ ìì±',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'ìì',
+ scaleAll: '모ë보기',
+ scaleFit: 'ìììëì¡°ì ',
+ scaleNoBorder: 'ê²½ê³ì ìì',
+ title: 'íëì¬ ë±ë¡ì ë³´',
+ vSpace: 'ìì§ì¬ë°±',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'ë§í¬ URLì ì
ë ¥íììì.',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ku.js b/devel/third-party/ckeditor/plugins/flash/lang/ku.js
new file mode 100644
index 0000000..f550280
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ku.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ku', {
+ access: 'Ø¯ÙØ³ØªÙ¾ÛÚ¯ÙÛØ´ØªÙÛ ÙÙÙØ³Ø±Ø§Ù',
+ accessAlways: 'ÙÙÙ
ÛØ´Ù',
+ accessNever: 'ÙÙØ±Ú¯Ûز',
+ accessSameDomain: 'ÙÙÙ
ا٠دÛÙ
ÙÛÙ',
+ alignAbsBottom: 'ÙÙ ÚÛØ±ÙÙÙ',
+ alignAbsMiddle: 'ÙÙÙØ§ÙÙÙØ¯',
+ alignBaseline: 'ÙÛÚµÛØ¨ÙÛÚÛØª',
+ alignTextTop: 'دÙÙ ÙÙØ³ÙرÙÙÙ',
+ bgcolor: 'ÚÙÙÚ¯Û Ù¾Ø§Ø´Ø¨ÙÙÙ
ا',
+ chkFull: 'ÚÛÙ¾ÛØ¯Ø§Ù Ø¨Ù Ù¾Ú Ø¨ÙÙ¾ÚÛ Ø´Ø§Ø´Ù',
+ chkLoop: 'گرÛ',
+ chkMenu: 'ÚØ§ÙاککردÙÛ ÙÛØ³ØªÙÛ ÙÙØ§Ø´',
+ chkPlay: 'Ù¾ÛکردÙÛ ÛØ§Ù ÙÛØ¯Ø§ÙÛ Ø®Ûکار',
+ flashvars: 'Ú¯ÛÚØ§ÙÙÚ©Ø§Ù Ø¨Û ÙÙØ§Ø´',
+ hSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ',
+ properties: 'خاسÛÙØªÛ ÙÙØ§Ø´',
+ propertiesTab: 'خاسÛÙØª',
+ quality: 'Ø¬ÛØ±Ø§ÛÙØªÛ',
+ qualityAutoHigh: 'Ø¨ÙØ±Ø²Û Ø®Ûکار',
+ qualityAutoLow: 'ÙØ²Ù
Û Ø®Ûکار',
+ qualityBest: 'باشترÛÙ',
+ qualityHigh: 'Ø¨ÙØ±Ø²Û',
+ qualityLow: 'ÙØ²Ù
',
+ qualityMedium: 'Ù
اÙ
ÙØ§ÙÙÙØ¯',
+ scale: 'Ù¾ÛÙØ§ÙÙ',
+ scaleAll: 'ÙÛØ´Ø§ÙداÙÛ ÙÙÙ
ÙÙ',
+ scaleFit: 'بÙÙØ±Ø¯Û بگÙÙØ¬Ûت',
+ scaleNoBorder: 'Ø¨Û Ù¾ÙØ±Ø§ÙÛØ²',
+ title: 'خاسÛÙØªÛ ÙÙØ§Ø´',
+ vSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ',
+ validateHSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ validateSrc: 'ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر ÙØ§Ø¨Ûت Ø®Ø§ÚµÛ Ø¨ÛØª',
+ validateVSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ windowMode: 'Ø´ÛÙØ§Ø²Û Ù¾ÙÙØ¬ÙرÙ',
+ windowModeOpaque: 'ÙØ§ÚÙÙÙ',
+ windowModeTransparent: 'ÚÛØ´Ù',
+ windowModeWindow: 'Ù¾ÙÙØ¬ÙرÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/lt.js b/devel/third-party/ckeditor/plugins/flash/lang/lt.js
new file mode 100644
index 0000000..42f867e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/lt.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'lt', {
+ access: 'Skripto priÄjimas',
+ accessAlways: 'Visada',
+ accessNever: 'Niekada',
+ accessSameDomain: 'Tas pats domenas',
+ alignAbsBottom: 'AbsoliuÄiÄ
apaÄiÄ
',
+ alignAbsMiddle: 'Absoliutų vidurį',
+ alignBaseline: 'ApatinÄ linijÄ
',
+ alignTextTop: 'Teksto viršūnÄ',
+ bgcolor: 'Fono spalva',
+ chkFull: 'Leisti per visÄ
ekranÄ
',
+ chkLoop: 'Ciklas',
+ chkMenu: 'Leisti Flash meniu',
+ chkPlay: 'Automatinis paleidimas',
+ flashvars: 'Flash kintamieji',
+ hSpace: 'Hor.ErdvÄ',
+ properties: 'Flash savybÄs',
+ propertiesTab: 'Nustatymai',
+ quality: 'KokybÄ',
+ qualityAutoHigh: 'Automatiškai Gera',
+ qualityAutoLow: 'Automatiškai Žema',
+ qualityBest: 'Geriausia',
+ qualityHigh: 'Gera',
+ qualityLow: 'Žema',
+ qualityMedium: 'VidutinÄ',
+ scale: 'Mastelis',
+ scaleAll: 'Rodyti visÄ
',
+ scaleFit: 'Tikslus atitikimas',
+ scaleNoBorder: 'Be rÄmelio',
+ title: 'Flash savybÄs',
+ vSpace: 'Vert.ErdvÄ',
+ validateHSpace: 'HSpace turi bÅ«ti skaiÄius.',
+ validateSrc: 'Prašome įvesti nuorodos URL',
+ validateVSpace: 'VSpace turi bÅ«ti skaiÄius.',
+ windowMode: 'Lango režimas',
+ windowModeOpaque: 'Nepermatomas',
+ windowModeTransparent: 'Permatomas',
+ windowModeWindow: 'Langas'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/lv.js b/devel/third-party/ckeditor/plugins/flash/lang/lv.js
new file mode 100644
index 0000000..3152774
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/lv.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'lv', {
+ access: 'Skripta pieeja',
+ accessAlways: 'VienmÄr',
+ accessNever: 'Nekad',
+ accessSameDomain: 'Tas pats domÄns',
+ alignAbsBottom: 'AbsolÅ«ti apakÅ¡Ä',
+ alignAbsMiddle: 'AbsolÅ«ti vertikÄli centrÄts',
+ alignBaseline: 'PamatrindÄ',
+ alignTextTop: 'Teksta augÅ¡Ä',
+ bgcolor: 'Fona krÄsa',
+ chkFull: 'PilnekrÄns',
+ chkLoop: 'NepÄrtraukti',
+ chkMenu: 'Atļaut Flash izvÄlni',
+ chkPlay: 'AutomÄtiska atskaÅoÅ¡ana',
+ flashvars: 'Flash mainīgie',
+ hSpace: 'HorizontÄlÄ telpa',
+ properties: 'Flash īpašības',
+ propertiesTab: 'UzstÄdÄ«jumi',
+ quality: 'KvalitÄte',
+ qualityAutoHigh: 'AutomÄtiski Augsta',
+ qualityAutoLow: 'AutomÄtiski Zema',
+ qualityBest: 'LabÄkÄ',
+ qualityHigh: 'Augsta',
+ qualityLow: 'Zema',
+ qualityMedium: 'VidÄja',
+ scale: 'MainÄ«t izmÄru',
+ scaleAll: 'RÄdÄ«t visu',
+ scaleFit: 'PrecÄ«zs izmÄrs',
+ scaleNoBorder: 'Bez rÄmja',
+ title: 'Flash īpašības',
+ vSpace: 'VertikÄlÄ telpa',
+ validateHSpace: 'Hspace jÄbÅ«t skaitlim',
+ validateSrc: 'LÅ«dzu norÄdi hipersaiti',
+ validateVSpace: 'Vspace jÄbÅ«t skaitlim',
+ windowMode: 'Loga režīms',
+ windowModeOpaque: 'Necaurspīdīgs',
+ windowModeTransparent: 'Caurspīdīgs',
+ windowModeWindow: 'Logs'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/mk.js b/devel/third-party/ckeditor/plugins/flash/lang/mk.js
new file mode 100644
index 0000000..aea4cf0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/mk.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'mk', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs Bottom', // MISSING
+ alignAbsMiddle: 'Abs Middle', // MISSING
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Text Top', // MISSING
+ bgcolor: 'Background color', // MISSING
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Loop', // MISSING
+ chkMenu: 'Enable Flash Menu', // MISSING
+ chkPlay: 'Auto Play', // MISSING
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'HSpace', // MISSING
+ properties: 'Flash Properties', // MISSING
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Scale', // MISSING
+ scaleAll: 'Show all', // MISSING
+ scaleFit: 'Exact Fit', // MISSING
+ scaleNoBorder: 'No Border', // MISSING
+ title: 'Flash Properties', // MISSING
+ vSpace: 'VSpace', // MISSING
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'URL must not be empty.', // MISSING
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/mn.js b/devel/third-party/ckeditor/plugins/flash/lang/mn.js
new file mode 100644
index 0000000..03de403
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/mn.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'mn', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'ÐнÑлогÑÑд',
+ accessNever: 'Ð¥ÑзÑÑ Ñ Ò¯Ð³Ò¯Ð¹',
+ accessSameDomain: 'Ðайнга',
+ alignAbsBottom: 'Abs доод Ñалд',
+ alignAbsMiddle: 'Abs ÐÑнд Ñалд',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'ТекÑÑ Ð´ÑÑÑ',
+ bgcolor: 'ÐÑвÑгÑÑ Ó©Ð½Ð³Ó©',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'ÐавÑаÑ
',
+ chkMenu: 'Ð¤Ð»Ð°Ñ ÑÑÑ Ð¸Ð´Ð²ÑÑ
жүүлÑÑ
',
+ chkPlay: 'ÐвÑомаÑÐ°Ð°Ñ ÑоглоÑ
',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'Хөндлөн зай',
+ properties: 'Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Ó¨ÑгөгÑгөÑ
',
+ scaleAll: 'Ðүгдийг Ñ
аÑÑÑлаÑ
',
+ scaleFit: 'Яг ÑааÑÑÑлаÑ
',
+ scaleNoBorder: 'Ð¥Ò¯ÑÑÑгүй',
+ title: 'Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ',
+ vSpace: 'ÐоÑоо зай',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Ðинк URL-ÑÑ ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ms.js b/devel/third-party/ckeditor/plugins/flash/lang/ms.js
new file mode 100644
index 0000000..996ac52
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ms.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ms', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Bawah Mutlak',
+ alignAbsMiddle: 'Pertengahan Mutlak',
+ alignBaseline: 'Garis Dasar',
+ alignTextTop: 'Atas Text',
+ bgcolor: 'Warna Latarbelakang',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Loop', // MISSING
+ chkMenu: 'Enable Flash Menu', // MISSING
+ chkPlay: 'Auto Play', // MISSING
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'Ruang Melintang',
+ properties: 'Flash Properties', // MISSING
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Scale', // MISSING
+ scaleAll: 'Show all', // MISSING
+ scaleFit: 'Exact Fit', // MISSING
+ scaleNoBorder: 'No Border', // MISSING
+ title: 'Flash Properties', // MISSING
+ vSpace: 'Ruang Menegak',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Sila taip sambungan URL',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/nb.js b/devel/third-party/ckeditor/plugins/flash/lang/nb.js
new file mode 100644
index 0000000..120db4e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/nb.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'nb', {
+ access: 'Scripttilgang',
+ accessAlways: 'Alltid',
+ accessNever: 'Aldri',
+ accessSameDomain: 'Samme domene',
+ alignAbsBottom: 'Abs bunn',
+ alignAbsMiddle: 'Abs midten',
+ alignBaseline: 'Bunnlinje',
+ alignTextTop: 'Tekst topp',
+ bgcolor: 'Bakgrunnsfarge',
+ chkFull: 'Tillat fullskjerm',
+ chkLoop: 'Loop',
+ chkMenu: 'Slå på Flash-meny',
+ chkPlay: 'Autospill',
+ flashvars: 'Variabler for flash',
+ hSpace: 'HMarg',
+ properties: 'Egenskaper for Flash-objekt',
+ propertiesTab: 'Egenskaper',
+ quality: 'Kvalitet',
+ qualityAutoHigh: 'Auto høy',
+ qualityAutoLow: 'Auto lav',
+ qualityBest: 'Best',
+ qualityHigh: 'Høy',
+ qualityLow: 'Lav',
+ qualityMedium: 'Medium',
+ scale: 'Skaler',
+ scaleAll: 'Vis alt',
+ scaleFit: 'Skaler til å passe',
+ scaleNoBorder: 'Ingen ramme',
+ title: 'Flash-egenskaper',
+ vSpace: 'VMarg',
+ validateHSpace: 'HMarg må være et tall.',
+ validateSrc: 'Vennligst skriv inn lenkens url.',
+ validateVSpace: 'VMarg må være et tall.',
+ windowMode: 'Vindumodus',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Gjennomsiktig',
+ windowModeWindow: 'Vindu'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/nl.js b/devel/third-party/ckeditor/plugins/flash/lang/nl.js
new file mode 100644
index 0000000..5d5bcfb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/nl.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'nl', {
+ access: 'Script toegang',
+ accessAlways: 'Altijd',
+ accessNever: 'Nooit',
+ accessSameDomain: 'Zelfde domeinnaam',
+ alignAbsBottom: 'Absoluut-onder',
+ alignAbsMiddle: 'Absoluut-midden',
+ alignBaseline: 'Basislijn',
+ alignTextTop: 'Boven tekst',
+ bgcolor: 'Achtergrondkleur',
+ chkFull: 'Schermvullend toestaan',
+ chkLoop: 'Herhalen',
+ chkMenu: 'Flashmenu\'s inschakelen',
+ chkPlay: 'Automatisch afspelen',
+ flashvars: 'Variabelen voor Flash',
+ hSpace: 'HSpace',
+ properties: 'Eigenschappen Flash',
+ propertiesTab: 'Eigenschappen',
+ quality: 'Kwaliteit',
+ qualityAutoHigh: 'Automatisch hoog',
+ qualityAutoLow: 'Automatisch laag',
+ qualityBest: 'Beste',
+ qualityHigh: 'Hoog',
+ qualityLow: 'Laag',
+ qualityMedium: 'Gemiddeld',
+ scale: 'Schaal',
+ scaleAll: 'Alles tonen',
+ scaleFit: 'Precies passend',
+ scaleNoBorder: 'Geen rand',
+ title: 'Eigenschappen Flash',
+ vSpace: 'VSpace',
+ validateHSpace: 'De HSpace moet een getal zijn.',
+ validateSrc: 'De URL mag niet leeg zijn.',
+ validateVSpace: 'De VSpace moet een getal zijn.',
+ windowMode: 'Venster modus',
+ windowModeOpaque: 'Ondoorzichtig',
+ windowModeTransparent: 'Doorzichtig',
+ windowModeWindow: 'Venster'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/no.js b/devel/third-party/ckeditor/plugins/flash/lang/no.js
new file mode 100644
index 0000000..928dc26
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/no.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'no', {
+ access: 'Scripttilgang',
+ accessAlways: 'Alltid',
+ accessNever: 'Aldri',
+ accessSameDomain: 'Samme domene',
+ alignAbsBottom: 'Abs bunn',
+ alignAbsMiddle: 'Abs midten',
+ alignBaseline: 'Bunnlinje',
+ alignTextTop: 'Tekst topp',
+ bgcolor: 'Bakgrunnsfarge',
+ chkFull: 'Tillat fullskjerm',
+ chkLoop: 'Loop',
+ chkMenu: 'Slå på Flash-meny',
+ chkPlay: 'Autospill',
+ flashvars: 'Variabler for flash',
+ hSpace: 'HMarg',
+ properties: 'Egenskaper for Flash-objekt',
+ propertiesTab: 'Egenskaper',
+ quality: 'Kvalitet',
+ qualityAutoHigh: 'Auto høy',
+ qualityAutoLow: 'Auto lav',
+ qualityBest: 'Best',
+ qualityHigh: 'Høy',
+ qualityLow: 'Lav',
+ qualityMedium: 'Medium',
+ scale: 'Skaler',
+ scaleAll: 'Vis alt',
+ scaleFit: 'Skaler til å passe',
+ scaleNoBorder: 'Ingen ramme',
+ title: 'Flash-egenskaper',
+ vSpace: 'VMarg',
+ validateHSpace: 'HMarg må være et tall.',
+ validateSrc: 'Vennligst skriv inn lenkens url.',
+ validateVSpace: 'VMarg må være et tall.',
+ windowMode: 'Vindumodus',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Gjennomsiktig',
+ windowModeWindow: 'Vindu'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/pl.js b/devel/third-party/ckeditor/plugins/flash/lang/pl.js
new file mode 100644
index 0000000..b9a0b4b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/pl.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'pl', {
+ access: 'DostÄp skryptów',
+ accessAlways: 'Zawsze',
+ accessNever: 'Nigdy',
+ accessSameDomain: 'Ta sama domena',
+ alignAbsBottom: 'Do doÅu',
+ alignAbsMiddle: 'Do Årodka w pionie',
+ alignBaseline: 'Do linii bazowej',
+ alignTextTop: 'Do góry tekstu',
+ bgcolor: 'Kolor tÅa',
+ chkFull: 'Zezwól na peÅny ekran',
+ chkLoop: 'PÄtla',
+ chkMenu: 'WÅÄ
cz menu',
+ chkPlay: 'Autoodtwarzanie',
+ flashvars: 'Zmienne obiektu Flash',
+ hSpace: 'OdstÄp poziomy',
+ properties: 'WÅaÅciwoÅci obiektu Flash',
+ propertiesTab: 'WÅaÅciwoÅci',
+ quality: 'JakoÅÄ',
+ qualityAutoHigh: 'Auto wysoka',
+ qualityAutoLow: 'Auto niska',
+ qualityBest: 'Najlepsza',
+ qualityHigh: 'Wysoka',
+ qualityLow: 'Niska',
+ qualityMedium: 'Årednia',
+ scale: 'Skaluj',
+ scaleAll: 'Pokaż wszystko',
+ scaleFit: 'DokÅadne dopasowanie',
+ scaleNoBorder: 'Bez obramowania',
+ title: 'WÅaÅciwoÅci obiektu Flash',
+ vSpace: 'OdstÄp pionowy',
+ validateHSpace: 'OdstÄp poziomy musi byÄ liczbÄ
.',
+ validateSrc: 'Podaj adres URL',
+ validateVSpace: 'OdstÄp pionowy musi byÄ liczbÄ
.',
+ windowMode: 'Tryb okna',
+ windowModeOpaque: 'Nieprzezroczyste',
+ windowModeTransparent: 'Przezroczyste',
+ windowModeWindow: 'Okno'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/pt-br.js b/devel/third-party/ckeditor/plugins/flash/lang/pt-br.js
new file mode 100644
index 0000000..d240be8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/pt-br.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'pt-br', {
+ access: 'Acesso ao script',
+ accessAlways: 'Sempre',
+ accessNever: 'Nunca',
+ accessSameDomain: 'Acessar Mesmo DomÃnio',
+ alignAbsBottom: 'Inferior Absoluto',
+ alignAbsMiddle: 'Centralizado Absoluto',
+ alignBaseline: 'Baseline',
+ alignTextTop: 'Superior Absoluto',
+ bgcolor: 'Cor do Plano de Fundo',
+ chkFull: 'Permitir tela cheia',
+ chkLoop: 'Tocar Infinitamente',
+ chkMenu: 'Habilita Menu Flash',
+ chkPlay: 'Tocar Automaticamente',
+ flashvars: 'Variáveis do Flash',
+ hSpace: 'HSpace',
+ properties: 'Propriedades do Flash',
+ propertiesTab: 'Propriedades',
+ quality: 'Qualidade',
+ qualityAutoHigh: 'Qualidade Alta Automática',
+ qualityAutoLow: 'Qualidade Baixa Automática',
+ qualityBest: 'Qualidade Melhor',
+ qualityHigh: 'Qualidade Alta',
+ qualityLow: 'Qualidade Baixa',
+ qualityMedium: 'Qualidade Média',
+ scale: 'Escala',
+ scaleAll: 'Mostrar tudo',
+ scaleFit: 'Escala Exata',
+ scaleNoBorder: 'Sem Borda',
+ title: 'Propriedades do Flash',
+ vSpace: 'VSpace',
+ validateHSpace: 'O HSpace tem que ser um número',
+ validateSrc: 'Por favor, digite o endereço do link',
+ validateVSpace: 'O VSpace tem que ser um número.',
+ windowMode: 'Modo da janela',
+ windowModeOpaque: 'Opaca',
+ windowModeTransparent: 'Transparente',
+ windowModeWindow: 'Janela'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/pt.js b/devel/third-party/ckeditor/plugins/flash/lang/pt.js
new file mode 100644
index 0000000..9e36e83
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/pt.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'pt', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs inferior',
+ alignAbsMiddle: 'Abs centro',
+ alignBaseline: 'Linha de base',
+ alignTextTop: 'Topo do texto',
+ bgcolor: 'Cor de Fundo',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Loop',
+ chkMenu: 'Permitir Menu do Flash',
+ chkPlay: 'Reproduzir automaticamente',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'Esp.Horiz',
+ properties: 'Propriedades do Flash',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Escala',
+ scaleAll: 'Mostrar tudo',
+ scaleFit: 'Tamanho Exacto',
+ scaleNoBorder: 'Sem Limites',
+ title: 'Propriedades do Flash',
+ vSpace: 'Esp.Vert',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Por favor introduza a hiperligação URL',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ro.js b/devel/third-party/ckeditor/plugins/flash/lang/ro.js
new file mode 100644
index 0000000..812ce37
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ro.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ro', {
+ access: 'Acces script',
+ accessAlways: 'Ãntotdeauna',
+ accessNever: 'NiciodatÄ',
+ accessSameDomain: 'AcelaÈi domeniu',
+ alignAbsBottom: 'Jos absolut (Abs Bottom)',
+ alignAbsMiddle: 'Mijloc absolut (Abs Middle)',
+ alignBaseline: 'Linia de jos (Baseline)',
+ alignTextTop: 'Text sus',
+ bgcolor: 'Coloarea fundalului',
+ chkFull: 'Permite pe tot ecranul',
+ chkLoop: 'RepetÄ (Loop)',
+ chkMenu: 'ActiveazÄ meniul flash',
+ chkPlay: 'RuleazÄ automat',
+ flashvars: 'Variabile pentru flash',
+ hSpace: 'HSpace',
+ properties: 'ProprietÄÅ£ile flashului',
+ propertiesTab: 'ProprietÄÈi',
+ quality: 'Calitate',
+ qualityAutoHigh: 'Auto înaltÄ',
+ qualityAutoLow: 'Auto JoasÄ',
+ qualityBest: 'Cea mai bunÄ',
+ qualityHigh: 'ÃnaltÄ',
+ qualityLow: 'JoasÄ',
+ qualityMedium: 'Medie',
+ scale: 'ScalÄ',
+ scaleAll: 'AratÄ tot',
+ scaleFit: 'PotriveÅte',
+ scaleNoBorder: 'FÄrÄ bordurÄ (No border)',
+ title: 'ProprietÄÅ£ile flashului',
+ vSpace: 'VSpace',
+ validateHSpace: 'Hspace trebuie sÄ fie un numÄr.',
+ validateSrc: 'VÄ rugÄm sÄ scrieÅ£i URL-ul',
+ validateVSpace: 'VSpace trebuie sÄ fie un numÄr',
+ windowMode: 'Mod fereastrÄ',
+ windowModeOpaque: 'OpacÄ',
+ windowModeTransparent: 'TransparentÄ',
+ windowModeWindow: 'FereastrÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ru.js b/devel/third-party/ckeditor/plugins/flash/lang/ru.js
new file mode 100644
index 0000000..fe050f3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ru.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ru', {
+ access: 'ÐоÑÑÑп к ÑкÑипÑам',
+ accessAlways: 'ÐÑегда',
+ accessNever: 'Ðикогда',
+ accessSameDomain: 'Ð Ñом же домене',
+ alignAbsBottom: 'Ðо Ð½Ð¸Ð·Ñ ÑекÑÑа',
+ alignAbsMiddle: 'Ðо ÑеÑедине ÑекÑÑа',
+ alignBaseline: 'Ðо базовой линии',
+ alignTextTop: 'Ðо веÑÑ
Ñ ÑекÑÑа',
+ bgcolor: 'Ð¦Ð²ÐµÑ Ñона',
+ chkFull: 'РазÑеÑиÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑаннÑй Ñежим',
+ chkLoop: 'ÐовÑоÑÑÑÑ',
+ chkMenu: 'ÐклÑÑиÑÑ Ð¼ÐµÐ½Ñ Flash',
+ chkPlay: 'ÐвÑомаÑиÑеÑкое воÑпÑоизведение',
+ flashvars: 'ÐеÑеменнÑе Ð´Ð»Ñ Flash',
+ hSpace: 'ÐоÑиз. оÑÑÑÑп',
+ properties: 'СвойÑÑва Flash',
+ propertiesTab: 'СвойÑÑва',
+ quality: 'ÐаÑеÑÑво',
+ qualityAutoHigh: 'ÐапÑÑк на вÑÑоком',
+ qualityAutoLow: 'ÐапÑÑк на низком',
+ qualityBest: 'ÐÑÑÑее',
+ qualityHigh: 'ÐÑÑокое',
+ qualityLow: 'Ðизкое',
+ qualityMedium: 'СÑеднее',
+ scale: 'ÐаÑÑÑабиÑоваÑÑ',
+ scaleAll: 'ÐÑопоÑÑионалÑно',
+ scaleFit: 'ÐаполнÑÑÑ',
+ scaleNoBorder: 'ÐаÑ
одиÑÑ Ð·Ð° гÑаниÑÑ',
+ title: 'СвойÑÑва Flash',
+ vSpace: 'ÐеÑÑик. оÑÑÑÑп',
+ validateHSpace: 'ÐоÑизонÑалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.',
+ validateSrc: 'ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²Ð²ÐµÑÑи ÑÑÑлкÑ',
+ validateVSpace: 'ÐеÑÑикалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.',
+ windowMode: 'ÐзаимодейÑÑвие Ñ Ð¾ÐºÐ½Ð¾Ð¼',
+ windowModeOpaque: 'ÐепÑозÑаÑнÑй',
+ windowModeTransparent: 'ÐÑозÑаÑнÑй',
+ windowModeWindow: 'ÐбÑÑнÑй'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/sk.js b/devel/third-party/ckeditor/plugins/flash/lang/sk.js
new file mode 100644
index 0000000..9bc1f8a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/sk.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'sk', {
+ access: 'PrÃstup skriptu',
+ accessAlways: 'Vždy',
+ accessNever: 'Nikdy',
+ accessSameDomain: 'Rovnaká doména',
+ alignAbsBottom: 'Ãplne dole',
+ alignAbsMiddle: 'Do stredu',
+ alignBaseline: 'Na základnú Äiaru',
+ alignTextTop: 'Na horný okraj textu',
+ bgcolor: 'Farba pozadia',
+ chkFull: 'Povoliť zobrazenie na celú obrazovku (fullscreen)',
+ chkLoop: 'Opakovanie',
+ chkMenu: 'Povoliť Flash Menu',
+ chkPlay: 'Automatické prehrávanie',
+ flashvars: 'Premenné pre Flash',
+ hSpace: 'H-medzera',
+ properties: 'Vlastnosti Flashu',
+ propertiesTab: 'Vlastnosti',
+ quality: 'Kvalita',
+ qualityAutoHigh: 'Automaticky vysoká',
+ qualityAutoLow: 'Automaticky nÃzka',
+ qualityBest: 'Najlepšia',
+ qualityHigh: 'Vysoká',
+ qualityLow: 'NÃzka',
+ qualityMedium: 'Stredná',
+ scale: 'Mierka',
+ scaleAll: 'Zobraziť všetko',
+ scaleFit: 'Roztiahnuť, aby sedelo presne',
+ scaleNoBorder: 'Bez okrajov',
+ title: 'Vlastnosti Flashu',
+ vSpace: 'V-medzera',
+ validateHSpace: 'H-medzera musà byÅ¥ ÄÃslo.',
+ validateSrc: 'URL nesmie byť prázdne.',
+ validateVSpace: 'V-medzera musà byÅ¥ ÄÃslo',
+ windowMode: 'Mód okna',
+ windowModeOpaque: 'Nepriehľadný',
+ windowModeTransparent: 'Priehľadný',
+ windowModeWindow: 'Okno'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/sl.js b/devel/third-party/ckeditor/plugins/flash/lang/sl.js
new file mode 100644
index 0000000..29848ab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/sl.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'sl', {
+ access: 'Dostop skript',
+ accessAlways: 'Vedno',
+ accessNever: 'Nikoli',
+ accessSameDomain: 'Samo ista domena',
+ alignAbsBottom: 'Popolnoma na dno',
+ alignAbsMiddle: 'Popolnoma v sredino',
+ alignBaseline: 'Na osnovno Ärto',
+ alignTextTop: 'Besedilo na vrh',
+ bgcolor: 'Barva ozadja',
+ chkFull: 'Dovoli celozaslonski naÄin',
+ chkLoop: 'Ponavljanje',
+ chkMenu: 'OmogoÄi Flash Meni',
+ chkPlay: 'Samodejno predvajaj',
+ flashvars: 'Spremenljivke za Flash',
+ hSpace: 'Vodoravni razmik',
+ properties: 'Lastnosti Flash',
+ propertiesTab: 'Lastnosti',
+ quality: 'Kakovost',
+ qualityAutoHigh: 'Samodejno visoka',
+ qualityAutoLow: 'Samodejno nizka',
+ qualityBest: 'Najvišja',
+ qualityHigh: 'Visoka',
+ qualityLow: 'Nizka',
+ qualityMedium: 'Srednja',
+ scale: 'PoveÄava',
+ scaleAll: 'Pokaži vse',
+ scaleFit: 'NatanÄno prileganje',
+ scaleNoBorder: 'Brez obrobe',
+ title: 'Lastnosti Flash',
+ vSpace: 'NavpiÄni razmik',
+ validateHSpace: 'Vodoravni razmik mora biti število.',
+ validateSrc: 'Vnesite URL povezave',
+ validateVSpace: 'NavpiÄni razmik mora biti Å¡tevilo.',
+ windowMode: 'Vrsta okna',
+ windowModeOpaque: 'Motno',
+ windowModeTransparent: 'Prosojno',
+ windowModeWindow: 'Okno'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/flash/lang/sr-latn.js
new file mode 100644
index 0000000..9ca651f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/sr-latn.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'sr-latn', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs dole',
+ alignAbsMiddle: 'Abs sredina',
+ alignBaseline: 'Bazno',
+ alignTextTop: 'Vrh teksta',
+ bgcolor: 'Boja pozadine',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'Ponavljaj',
+ chkMenu: 'UkljuÄi fleÅ¡ meni',
+ chkPlay: 'Automatski start',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'HSpace',
+ properties: 'Osobine fleša',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'Skaliraj',
+ scaleAll: 'Prikaži sve',
+ scaleFit: 'Popuni površinu',
+ scaleNoBorder: 'Bez ivice',
+ title: 'Osobine fleša',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'Unesite URL linka',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/sr.js b/devel/third-party/ckeditor/plugins/flash/lang/sr.js
new file mode 100644
index 0000000..94607dd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/sr.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'sr', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'Abs доле',
+ alignAbsMiddle: 'Abs ÑÑедина',
+ alignBaseline: 'Ðазно',
+ alignTextTop: 'ÐÑÑ
ÑекÑÑа',
+ bgcolor: 'ÐоÑа позадине',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'ÐонавÑаÑ',
+ chkMenu: 'УкÑÑÑи ÑÐ»ÐµÑ Ð¼ÐµÐ½Ð¸',
+ chkPlay: 'ÐÑÑомаÑÑки ÑÑаÑÑ',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'HSpace',
+ properties: 'ÐÑобине ФлеÑа',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'СкалиÑаÑ',
+ scaleAll: 'ÐÑикажи Ñве',
+ scaleFit: 'ÐопÑни повÑÑинÑ',
+ scaleNoBorder: 'Ðез ивиÑе',
+ title: 'ÐÑобине ÑлеÑа',
+ vSpace: 'VSpace',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'УнеÑиÑе УРРлинка',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/sv.js b/devel/third-party/ckeditor/plugins/flash/lang/sv.js
new file mode 100644
index 0000000..9f09ccb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/sv.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'sv', {
+ access: 'Script-tillgång',
+ accessAlways: 'Alltid',
+ accessNever: 'Aldrig',
+ accessSameDomain: 'Samma domän',
+ alignAbsBottom: 'Absolut nederkant',
+ alignAbsMiddle: 'Absolut centrering',
+ alignBaseline: 'Baslinje',
+ alignTextTop: 'Text överkant',
+ bgcolor: 'Bakgrundsfärg',
+ chkFull: 'Tillåt helskärm',
+ chkLoop: 'Upprepa/Loopa',
+ chkMenu: 'Aktivera Flashmeny',
+ chkPlay: 'Automatisk uppspelning',
+ flashvars: 'Variabler för Flash',
+ hSpace: 'Horis. marginal',
+ properties: 'Flashegenskaper',
+ propertiesTab: 'Egenskaper',
+ quality: 'Kvalitet',
+ qualityAutoHigh: 'Auto Hög',
+ qualityAutoLow: 'Auto LÃ¥g',
+ qualityBest: 'Bäst',
+ qualityHigh: 'Hög',
+ qualityLow: 'LÃ¥g',
+ qualityMedium: 'Medium',
+ scale: 'Skala',
+ scaleAll: 'Visa allt',
+ scaleFit: 'Exakt passning',
+ scaleNoBorder: 'Ingen ram',
+ title: 'Flashegenskaper',
+ vSpace: 'Vert. marginal',
+ validateHSpace: 'HSpace måste vara ett nummer.',
+ validateSrc: 'Var god ange länkens URL',
+ validateVSpace: 'VSpace måste vara ett nummer.',
+ windowMode: 'Fönsterläge',
+ windowModeOpaque: 'Opaque',
+ windowModeTransparent: 'Transparent',
+ windowModeWindow: 'Fönster'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/th.js b/devel/third-party/ckeditor/plugins/flash/lang/th.js
new file mode 100644
index 0000000..23fc1f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/th.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'th', {
+ access: 'Script Access', // MISSING
+ accessAlways: 'Always', // MISSING
+ accessNever: 'Never', // MISSING
+ accessSameDomain: 'Same domain', // MISSING
+ alignAbsBottom: 'à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸à¸ªà¸¸à¸',
+ alignAbsMiddle: 'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',
+ alignBaseline: 'à¸à¸´à¸à¸à¸£à¸£à¸à¸±à¸',
+ alignTextTop: 'à¹à¸à¹à¸à¸±à¸§à¸à¸±à¸à¸©à¸£',
+ bgcolor: 'สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸',
+ chkFull: 'Allow Fullscreen', // MISSING
+ chkLoop: 'à¹à¸¥à¹à¸à¸§à¸à¸£à¸à¸ Loop',
+ chkMenu: 'à¹à¸«à¹à¹à¸à¹à¸à¸²à¸à¹à¸¡à¸à¸¹à¸à¸à¸ Flash',
+ chkPlay: 'à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ Auto Play',
+ flashvars: 'Variables for Flash', // MISSING
+ hSpace: 'ระยะà¹à¸à¸§à¸à¸à¸',
+ properties: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash',
+ propertiesTab: 'Properties', // MISSING
+ quality: 'Quality', // MISSING
+ qualityAutoHigh: 'Auto High', // MISSING
+ qualityAutoLow: 'Auto Low', // MISSING
+ qualityBest: 'Best', // MISSING
+ qualityHigh: 'High', // MISSING
+ qualityLow: 'Low', // MISSING
+ qualityMedium: 'Medium', // MISSING
+ scale: 'à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ Scale',
+ scaleAll: 'à¹à¸ªà¸à¸à¹à¸«à¹à¹à¸«à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸ Show all',
+ scaleFit: 'à¹à¸ªà¸à¸à¹à¸«à¹à¸à¸à¸à¸µà¸à¸±à¸à¸à¸·à¹à¸à¸à¸µà¹ Exact Fit',
+ scaleNoBorder: 'à¹à¸¡à¹à¹à¸ªà¸à¸à¹à¸ªà¹à¸à¸à¸à¸ No Border',
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash',
+ vSpace: 'ระยะà¹à¸à¸§à¸à¸±à¹à¸',
+ validateHSpace: 'HSpace must be a number.', // MISSING
+ validateSrc: 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)',
+ validateVSpace: 'VSpace must be a number.', // MISSING
+ windowMode: 'Window mode', // MISSING
+ windowModeOpaque: 'Opaque', // MISSING
+ windowModeTransparent: 'Transparent', // MISSING
+ windowModeWindow: 'Window' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/tr.js b/devel/third-party/ckeditor/plugins/flash/lang/tr.js
new file mode 100644
index 0000000..7076f5b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/tr.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'tr', {
+ access: 'Kod İzni',
+ accessAlways: 'Herzaman',
+ accessNever: 'Asla',
+ accessSameDomain: 'Aynı domain',
+ alignAbsBottom: 'Tam Altı',
+ alignAbsMiddle: 'Tam Ortası',
+ alignBaseline: 'Taban Ãizgisi',
+ alignTextTop: 'Yazı Tepeye',
+ bgcolor: 'Arka Renk',
+ chkFull: 'Tam ekrana İzinver',
+ chkLoop: 'Döngü',
+ chkMenu: 'Flash Menüsünü Kullan',
+ chkPlay: 'Otomatik Oynat',
+ flashvars: 'Flash DeÄerleri',
+ hSpace: 'Yatay BoÅluk',
+ properties: 'Flash Ãzellikleri',
+ propertiesTab: 'Ãzellikler',
+ quality: 'Kalite',
+ qualityAutoHigh: 'Otomatik Yükseklik',
+ qualityAutoLow: 'Otomatik DüÅüklük',
+ qualityBest: 'En iyi',
+ qualityHigh: 'Yüksek',
+ qualityLow: 'DüÅük',
+ qualityMedium: 'Orta',
+ scale: 'Boyutlandır',
+ scaleAll: 'Hepsini Göster',
+ scaleFit: 'Tam SıÄdır',
+ scaleNoBorder: 'Kenar Yok',
+ title: 'Flash Ãzellikleri',
+ vSpace: 'Dikey BoÅluk',
+ validateHSpace: 'HSpace sayı olmalıdır.',
+ validateSrc: 'Lütfen köprü URL\'sini yazın',
+ validateVSpace: 'VSpace sayı olmalıdır.',
+ windowMode: 'Pencere modu',
+ windowModeOpaque: 'Opak',
+ windowModeTransparent: 'Åeffaf',
+ windowModeWindow: 'Pencere'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/ug.js b/devel/third-party/ckeditor/plugins/flash/lang/ug.js
new file mode 100644
index 0000000..31e4303
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/ug.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'ug', {
+ access: 'ÙÙÙÙØ§Ø²Ù
ا زÙÙØ§Ø±ÛتÙÛ ÙÙÙ ÙÙÙ',
+ accessAlways: 'Ú¾ÛÙ
ÙØ´Û',
+ accessNever: 'Ú¾ÛØ±Ú¯Ùز',
+ accessSameDomain: 'Ø¦ÙØ®Ø´Ø§Ø´ Ø¯Ø§Ø¦ÙØ±ÙدÛ',
+ alignAbsBottom: 'Ù
ÛØªÙÛ٠ئاستÙ',
+ alignAbsMiddle: 'Ù
ÛØªÙÛÙ Ø¦ÙØªØªÛرا',
+ alignBaseline: 'ئاساسÙÙ Ø³ÙØ²ÙÙ',
+ alignTextTop: 'تÛÙÙØ³Øª Ø¦ÛØ³ØªÙدÛ',
+ bgcolor: 'تÛÚ¯ÙÙ٠رÛÚÚ¯Ù',
+ chkFull: 'Ù¾ÛØªÛ٠ئÛÙØ±Ø§ÙÙÙ ÙÙØ²ØºØ§Øª',
+ chkLoop: 'دÛÛØ±ÙÙ',
+ chkMenu: 'Flash ØªÙØ²ÙÙ
ÙÙÙÙÙ ÙÙØ²ØºØ§Øª',
+ chkPlay: 'Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ ÚØ§Ù',
+ flashvars: 'Flash Ø¦ÛØ²Ú¯ÛرگÛÚÙ',
+ hSpace: 'ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙ',
+ properties: 'Flash خاسÙÙÙ',
+ propertiesTab: 'خاسÙÙÙ',
+ quality: 'سÛÙ¾ÛØª',
+ qualityAutoHigh: 'ÙÛÙÙØ±Ù (ئاپتÙÙ
اتÙÙ)',
+ qualityAutoLow: 'تÛÛÛÙ (ئاپتÙÙ
اتÙÙ)',
+ qualityBest: 'ئÛÚ ÙØ§Ø®Ø´Ù',
+ qualityHigh: 'ÙÛÙÙØ±Ù',
+ qualityLow: 'تÛÛÛÙ',
+ qualityMedium: 'Ø¦ÙØªØªÛرا (ئاپتÙÙ
اتÙÙ)',
+ scale: 'ÙÙØ³Ø¨ÙتÙ',
+ scaleAll: 'Ú¾ÛÙ
Ù
ÙÙÙ ÙÛØ±Ø³Ûت',
+ scaleFit: 'ÙÛØªØ¦ÙÙ Ù
اسÙÙØ´ÙØ´',
+ scaleNoBorder: 'Ú¯ÙØ±ÛÛÙ ÙÙÙ',
+ title: 'Ù
Ø§ÛØ²Û',
+ vSpace: 'بÙÙÙØºØ§ ئارÙÙÙÙ',
+ validateHSpace: 'ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ validateSrc: 'Ø¦ÛØ³ÙÙ Ú¾ÛØ¬Ø¬Ûت Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ',
+ validateVSpace: 'بÙÙÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ windowMode: 'ÙÛØ²ÙÛ٠ھاÙÙØªÙ',
+ windowModeOpaque: 'Ø®ÙØ±Û',
+ windowModeTransparent: 'Ø³ÛØ²ÛÙ',
+ windowModeWindow: 'ÙÛØ²ÙÛÙ Ú¯ÛÛØ¯ÙسÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/uk.js b/devel/third-party/ckeditor/plugins/flash/lang/uk.js
new file mode 100644
index 0000000..570e039
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/uk.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'uk', {
+ access: 'ÐоÑÑÑп до ÑкÑипÑа',
+ accessAlways: 'Ðавжди',
+ accessNever: 'ÐÑколи',
+ accessSameDomain: 'Ð Ñого ж домена',
+ alignAbsBottom: 'Ðо нижнÑÐ¾Ð¼Ñ ÐºÑÐ°Ñ (abs)',
+ alignAbsMiddle: 'Ðо ÑеÑÐµÐ´Ð¸Ð½Ñ (abs)',
+ alignBaseline: 'Ðо базовÑй лÑнÑÑ',
+ alignTextTop: 'ТекÑÑ Ð¿Ð¾ веÑÑ
нÑÐ¾Ð¼Ñ ÐºÑаÑ',
+ bgcolor: 'ÐолÑÑ ÑонÑ',
+ chkFull: 'ÐозволиÑи повноекÑанний пеÑеглÑд',
+ chkLoop: 'ЦиклÑÑно',
+ chkMenu: 'ÐозволиÑи Ð¼ÐµÐ½Ñ Flash',
+ chkPlay: 'ÐвÑопÑогÑаваннÑ',
+ flashvars: 'ÐмÑÐ½Ð½Ñ Flash',
+ hSpace: 'ÐоÑиз. вÑдÑÑÑп',
+ properties: 'ÐлаÑÑивоÑÑÑ Flash',
+ propertiesTab: 'ÐлаÑÑивоÑÑÑ',
+ quality: 'ЯкÑÑÑÑ',
+ qualityAutoHigh: 'ÐвÑом. вÑдмÑнна',
+ qualityAutoLow: 'ÐвÑом. низÑка',
+ qualityBest: 'ÐÑдмÑнна',
+ qualityHigh: 'ÐиÑока',
+ qualityLow: 'ÐизÑка',
+ qualityMedium: 'СеÑеднÑ',
+ scale: 'ÐаÑÑÑаб',
+ scaleAll: 'ÐоказаÑи вÑе',
+ scaleFit: 'ÐоÑ. ÑозмÑÑ',
+ scaleNoBorder: 'Ðез Ñамки',
+ title: 'ÐлаÑÑивоÑÑÑ Flash',
+ vSpace: 'ÐеÑÑ. вÑдÑÑÑп',
+ validateHSpace: 'ÐоÑиз. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.',
+ validateSrc: 'ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ URL поÑиланнÑ',
+ validateVSpace: 'ÐеÑÑ. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.',
+ windowMode: 'ÐÑконний Ñежим',
+ windowModeOpaque: 'ÐепÑозоÑÑÑÑÑ',
+ windowModeTransparent: 'ÐÑозоÑÑÑÑÑ',
+ windowModeWindow: 'ÐÑкно'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/vi.js b/devel/third-party/ckeditor/plugins/flash/lang/vi.js
new file mode 100644
index 0000000..88a4e1a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/vi.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'vi', {
+ access: 'Truy cáºp mã',
+ accessAlways: 'Luôn luôn',
+ accessNever: 'Không bao giá»',
+ accessSameDomain: 'Cùng tên miá»n',
+ alignAbsBottom: 'Dưá»i tuyá»t Äá»i',
+ alignAbsMiddle: 'Giữa tuyá»t Äá»i',
+ alignBaseline: 'ÄÆ°á»ng cÆ¡ sá»',
+ alignTextTop: 'PhÃa trên chữ',
+ bgcolor: 'Mà u ná»n',
+ chkFull: 'Cho phép toà n mà n hình',
+ chkLoop: 'Lặp',
+ chkMenu: 'Cho phép báºt menu cá»§a Flash',
+ chkPlay: 'Tá»± Äá»ng chạy',
+ flashvars: 'Các biến sỠdà nh cho Flash',
+ hSpace: 'Khoảng Äá»m ngang',
+ properties: 'Thuá»c tÃnh Flash',
+ propertiesTab: 'Thuá»c tÃnh',
+ quality: 'Chất lượng',
+ qualityAutoHigh: 'Cao tá»± Äá»ng',
+ qualityAutoLow: 'Thấp tá»± Äá»ng',
+ qualityBest: 'Tá»t nhất',
+ qualityHigh: 'Cao',
+ qualityLow: 'Thấp',
+ qualityMedium: 'Trung bình',
+ scale: 'Tá»· lá»',
+ scaleAll: 'Hiá»n thá» tất cả',
+ scaleFit: 'Vừa vặn',
+ scaleNoBorder: 'Không ÄÆ°á»ng viá»n',
+ title: 'Thuá»c tÃnh Flash',
+ vSpace: 'Khoảng Äá»m dá»c',
+ validateHSpace: 'Khoảng Äá»m ngang phải là sá» nguyên.',
+ validateSrc: 'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết',
+ validateVSpace: 'Khoảng Äá»m dá»c phải là sá» nguyên.',
+ windowMode: 'Chế Äá» cá»a sá»',
+ windowModeOpaque: 'Má» Äục',
+ windowModeTransparent: 'Trong suá»t',
+ windowModeWindow: 'Cá»a sá»'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/flash/lang/zh-cn.js
new file mode 100644
index 0000000..346bc32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/zh-cn.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'zh-cn', {
+ access: 'å
è®¸èæ¬è®¿é®',
+ accessAlways: 'æ»æ¯',
+ accessNever: 'ä»ä¸',
+ accessSameDomain: 'åå',
+ alignAbsBottom: 'ç»å¯¹åºé¨',
+ alignAbsMiddle: 'ç»å¯¹å±
ä¸',
+ alignBaseline: 'åºçº¿',
+ alignTextTop: 'ææ¬ä¸æ¹',
+ bgcolor: 'èæ¯é¢è²',
+ chkFull: 'å¯ç¨å
¨å±',
+ chkLoop: '循ç¯',
+ chkMenu: 'å¯ç¨ Flash èå',
+ chkPlay: 'èªå¨ææ¾',
+ flashvars: 'Flash åé',
+ hSpace: 'æ°´å¹³é´è·',
+ properties: 'Flash 屿§',
+ propertiesTab: '屿§',
+ quality: 'è´¨é',
+ qualityAutoHigh: 'é«(èªå¨)',
+ qualityAutoLow: 'ä½(èªå¨)',
+ qualityBest: 'æå¥½',
+ qualityHigh: 'é«',
+ qualityLow: 'ä½',
+ qualityMedium: 'ä¸(èªå¨)',
+ scale: '缩æ¾',
+ scaleAll: 'å
¨é¨æ¾ç¤º',
+ scaleFit: 'ä¸¥æ ¼å¹é
',
+ scaleNoBorder: 'æ è¾¹æ¡',
+ title: 'æ é¢',
+ vSpace: 'åç´é´è·',
+ validateHSpace: 'æ°´å¹³é´è·å¿
须为æ°åæ ¼å¼',
+ validateSrc: '请è¾å
¥æºæä»¶å°å',
+ validateVSpace: 'åç´é´è·å¿
须为æ°åæ ¼å¼',
+ windowMode: 'çªä½æ¨¡å¼',
+ windowModeOpaque: 'ä¸éæ',
+ windowModeTransparent: 'éæ',
+ windowModeWindow: 'çªä½'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/lang/zh.js b/devel/third-party/ckeditor/plugins/flash/lang/zh.js
new file mode 100644
index 0000000..c050899
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/flash/lang/zh.js
@@ -0,0 +1,43 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'flash', 'zh', {
+ access: 'å
許è
³æ¬è¨ªå',
+ accessAlways: 'æ°¸é ',
+ accessNever: 'æ°¸ä¸',
+ accessSameDomain: 'ç¸ååå',
+ alignAbsBottom: 'çµå°ä¸æ¹',
+ alignAbsMiddle: 'çµå°ä¸é',
+ alignBaseline: 'åºæºç·',
+ alignTextTop: 'æå䏿¹',
+ bgcolor: 'èæ¯é¡è²',
+ chkFull: 'ååå
¨è¢å¹é¡¯ç¤º',
+ chkLoop: 'éè¤',
+ chkMenu: 'éåé¸å®',
+ chkPlay: 'èªåææ¾',
+ flashvars: 'Flash è®æ¸',
+ hSpace: 'æ°´å¹³è·é¢',
+ properties: 'Flash 屬æ§',
+ propertiesTab: '屬æ§',
+ quality: 'è³ªç´ ',
+ qualityAutoHigh: 'é«ï¼èªåï¼',
+ qualityAutoLow: 'ä½ï¼èªåï¼',
+ qualityBest: 'æå¥½',
+ qualityHigh: 'é«',
+ qualityLow: 'ä½',
+ qualityMedium: 'ä¸ï¼èªåï¼',
+ scale: '縮æ¾',
+ scaleAll: 'å
¨é¨é¡¯ç¤º',
+ scaleFit: '精確符å',
+ scaleNoBorder: 'ç¡éæ¡',
+ title: 'Flash 屬æ§',
+ vSpace: 'åç´è·é¢',
+ validateHSpace: 'æ°´å¹³éè·å¿
é çºæ¸åæ ¼å¼',
+ validateSrc: 'è«è¼¸å
¥æ¬²é£çµç URL',
+ validateVSpace: 'åç´éè·å¿
é çºæ¸åæ ¼å¼',
+ windowMode: 'è¦çªæ¨¡å¼',
+ windowModeOpaque: 'ä¸éæ',
+ windowModeTransparent: 'éæ',
+ windowModeWindow: 'è¦çª'
+});
diff --git a/devel/third-party/ckeditor/plugins/flash/plugin.js b/devel/third-party/ckeditor/plugins/flash/plugin.js
index 65e76c5..5250bde 100644
--- a/devel/third-party/ckeditor/plugins/flash/plugin.js
+++ b/devel/third-party/ckeditor/plugins/flash/plugin.js
@@ -1,58 +1,27 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var flashFilenameRegex = /\.swf(?:$|\?)/i,
- numberRegex = /^\d+(?:\.\d+)?$/;
-
- function cssifyLength( length )
- {
- if ( numberRegex.test( length ) )
- return length + 'px';
- return length;
- }
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var flashFilenameRegex = /\.swf(?:$|\?)/i;
- function isFlashEmbed( element )
- {
+ function isFlashEmbed( element ) {
var attributes = element.attributes;
return ( attributes.type == 'application/x-shockwave-flash' || flashFilenameRegex.test( attributes.src || '' ) );
}
- function createFakeElement( editor, realElement )
- {
- var fakeElement = editor.createFakeParserElement( realElement, 'cke_flash', 'flash', true ),
- fakeStyle = fakeElement.attributes.style || '';
-
- var width = realElement.attributes.width,
- height = realElement.attributes.height;
-
- if ( typeof width != 'undefined' )
- fakeStyle = fakeElement.attributes.style = fakeStyle + 'width:' + cssifyLength( width ) + ';';
-
- if ( typeof height != 'undefined' )
- fakeStyle = fakeElement.attributes.style = fakeStyle + 'height:' + cssifyLength( height ) + ';';
-
- return fakeElement;
+ function createFakeElement( editor, realElement ) {
+ return editor.createFakeParserElement( realElement, 'cke_flash', 'flash', true );
}
- CKEDITOR.plugins.add( 'flash',
- {
- init : function( editor )
- {
- editor.addCommand( 'flash', new CKEDITOR.dialogCommand( 'flash' ) );
- editor.ui.addButton( 'Flash',
- {
- label : editor.lang.common.flash,
- command : 'flash'
- });
- CKEDITOR.dialog.add( 'flash', this.path + 'dialogs/flash.js' );
-
- editor.addCss(
- 'img.cke_flash' +
+ CKEDITOR.plugins.add( 'flash', {
+ requires: 'dialog,fakeobjects',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'flash', // %REMOVE_LINE_CORE%
+ onLoad: function() {
+ CKEDITOR.addCss( 'img.cke_flash' +
'{' +
'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +
'background-position: center center;' +
@@ -63,112 +32,105 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
'}'
);
+ },
+ init: function( editor ) {
+ editor.addCommand( 'flash', new CKEDITOR.dialogCommand( 'flash' ) );
+ editor.ui.addButton && editor.ui.addButton( 'Flash', {
+ label: editor.lang.common.flash,
+ command: 'flash',
+ toolbar: 'insert,20'
+ });
+ CKEDITOR.dialog.add( 'flash', this.path + 'dialogs/flash.js' );
+
// If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- flash :
- {
- label : editor.lang.flash.properties,
- command : 'flash',
- group : 'flash'
- }
- });
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ flash: {
+ label: editor.lang.flash.properties,
+ command: 'flash',
+ group: 'flash'
+ }
+ });
}
- editor.on( 'doubleclick', function( evt )
- {
- var element = evt.data.element;
+ editor.on( 'doubleclick', function( evt ) {
+ var element = evt.data.element;
- if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'flash' )
- evt.data.dialog = 'flash';
- });
+ if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'flash' )
+ evt.data.dialog = 'flash';
+ });
// If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( element && element.is( 'img' ) && !element.isReadOnly()
- && element.getAttribute( '_cke_real_element_type' ) == 'flash' )
- return { flash : CKEDITOR.TRISTATE_OFF };
- });
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element, selection ) {
+ if ( element && element.is( 'img' ) && !element.isReadOnly() && element.data( 'cke-real-element-type' ) == 'flash' )
+ return { flash: CKEDITOR.TRISTATE_OFF };
+ });
}
},
- afterInit : function( editor )
- {
+ afterInit: function( editor ) {
var dataProcessor = editor.dataProcessor,
dataFilter = dataProcessor && dataProcessor.dataFilter;
- if ( dataFilter )
- {
- dataFilter.addRules(
- {
- elements :
- {
- 'cke:object' : function( element )
- {
- var attributes = element.attributes,
- classId = attributes.classid && String( attributes.classid ).toLowerCase();
-
- if ( !classId )
- {
- // Look for the inner <embed>
- for ( var i = 0 ; i < element.children.length ; i++ )
- {
- if ( element.children[ i ].name == 'cke:embed' )
- {
- if ( !isFlashEmbed( element.children[ i ] ) )
- return null;
-
- return createFakeElement( editor, element );
- }
+ if ( dataFilter ) {
+ dataFilter.addRules({
+ elements: {
+ 'cke:object': function( element ) {
+ var attributes = element.attributes,
+ classId = attributes.classid && String( attributes.classid ).toLowerCase();
+
+ if ( !classId && !isFlashEmbed( element ) ) {
+ // Look for the inner <embed>
+ for ( var i = 0; i < element.children.length; i++ ) {
+ if ( element.children[ i ].name == 'cke:embed' ) {
+ if ( !isFlashEmbed( element.children[ i ] ) )
+ return null;
+
+ return createFakeElement( editor, element );
}
- return null;
}
+ return null;
+ }
- return createFakeElement( editor, element );
- },
+ return createFakeElement( editor, element );
+ },
- 'cke:embed' : function( element )
- {
- if ( !isFlashEmbed( element ) )
- return null;
+ 'cke:embed': function( element ) {
+ if ( !isFlashEmbed( element ) )
+ return null;
- return createFakeElement( editor, element );
- }
+ return createFakeElement( editor, element );
}
- },
- 5);
+ }
+ }, 5 );
}
- },
-
- requires : [ 'fakeobjects' ]
+ }
});
})();
-CKEDITOR.tools.extend( CKEDITOR.config,
-{
+CKEDITOR.tools.extend( CKEDITOR.config, {
/**
- * Save as EMBED tag only. This tag is unrecommended.
- * @type Boolean
- * @default false
+ * Save as `<embed>` tag only. This tag is unrecommended.
+ *
+ * @cfg {Boolean} [flashEmbedTagOnly=false]
+ * @member CKEDITOR.config
*/
- flashEmbedTagOnly : false,
+ flashEmbedTagOnly: false,
/**
- * Add EMBED tag as alternative: <object><embed></embed></object>
- * @type Boolean
- * @default false
+ * Add `<embed>` tag as alternative: `<object><embed></embed></object>`.
+ *
+ * @cfg {Boolean} [flashAddEmbedTag=false]
+ * @member CKEDITOR.config
*/
- flashAddEmbedTag : true,
+ flashAddEmbedTag: true,
/**
- * Use embedTagOnly and addEmbedTag values on edit.
- * @type Boolean
- * @default false
+ * Use {@link #flashEmbedTagOnly} and {@link #flashAddEmbedTag} values on edit.
+ *
+ * @cfg {Boolean} [flashConvertOnEdit=false]
+ * @member CKEDITOR.config
*/
- flashConvertOnEdit : false
-} );
+ flashConvertOnEdit: false
+});
diff --git a/devel/third-party/ckeditor/plugins/floatingspace/plugin.js b/devel/third-party/ckeditor/plugins/floatingspace/plugin.js
new file mode 100644
index 0000000..1d1ef3f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/floatingspace/plugin.js
@@ -0,0 +1,332 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var floatSpaceTpl = CKEDITOR.addTemplate( 'floatcontainer', '<div' +
+ ' id="cke_{name}"' +
+ ' class="cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} ' + CKEDITOR.env.cssClass + '"' +
+ ' dir="{langDir}"' +
+ ' title="' + ( CKEDITOR.env.gecko ? ' ' : '' ) + '"' +
+ ' lang="{langCode}"' +
+ ' role="application"' +
+ ' style="{style}"' +
+ '>' +
+ '<div class="cke_inner">' +
+ '<div id="{topId}" class="cke_top" role="presentation">{content}</div>' +
+ '</div>' +
+ '</div>' );
+
+ CKEDITOR.plugins.add( 'floatingspace', {
+ init: function( editor ) {
+ editor.on( 'contentDom', function() {
+ attach( editor );
+ });
+ }
+ });
+
+ var win = CKEDITOR.document.getWindow();
+ var pixelate = CKEDITOR.tools.cssLength;
+
+ function scrollOffset( side ) {
+ var pageOffset = side == 'left' ? 'pageXOffset' : 'pageYOffset',
+ docScrollOffset = side == 'left' ? 'scrollLeft' : 'scrollTop';
+ return ( pageOffset in win.$ ) ? win.$[ pageOffset ] : CKEDITOR.document.$.documentElement[ docScrollOffset ];
+ }
+
+ function attach( editor ) {
+ // Indicates the vertical aligning mode.
+ var mode;
+
+ // Allow minor adjustments of the float space from custom configs.
+ var config = editor.config;
+ var dockedOffsetX = config.floatSpaceDockedOffsetX || 0,
+ dockedOffsetY = config.floatSpaceDockedOffsetY || 0,
+ pinnedOffsetX = config.floatSpacePinnedOffsetX || 0,
+ pinnedOffsetY = config.floatSpacePinnedOffsetY || 0;
+
+ var layout = function( evt ) {
+ // Update the float space position.
+ function updatePos( pos, prop, val ) {
+ floatSpace.setStyle( prop, pixelate( val ) );
+ floatSpace.setStyle( 'position', pos );
+ }
+
+ // Change the current mode and update float space position accordingly.
+ function changeMode( newMode ) {
+ var editorPos = editable.getDocumentPosition();
+ switch ( newMode ) {
+ case 'top':
+ updatePos( 'absolute', 'top', editorPos.y - spaceHeight - dockedOffsetY );
+ break;
+ case 'pin':
+ updatePos( 'fixed', 'top', pinnedOffsetY );
+ break;
+ case 'bottom':
+ updatePos( 'absolute', 'top', editorPos.y + ( editorRect.height || editorRect.bottom - editorRect.top ) + dockedOffsetY );
+ break;
+ }
+
+ mode = newMode;
+ }
+
+ // Show up the space on focus gain.
+ evt.name == 'focus' && floatSpace.show();
+
+ // Reset the horizontal position for below measurement.
+ floatSpace.removeStyle( 'left' );
+ floatSpace.removeStyle( 'right' );
+
+ // Compute the screen position from the TextRectangle object would
+ // be very simple, even though the "width"/"height" property is not
+ // available for all, it's safe to figure that out from the rest.
+
+ // http://help.dottoro.com/ljgupwlp.php
+ var editable = editor.editable(),
+ spaceRect = floatSpace.getClientRect(),
+ editorRect = editable.getClientRect(),
+ spaceHeight = spaceRect.height,
+ pageScrollX = scrollOffset( 'left' );
+
+ // We initialize it as pin mode.
+ if ( !mode ) {
+ mode = 'pin';
+ changeMode( 'pin' );
+ // Call for a refresh to the actual layout.
+ layout( evt );
+ return;
+ }
+ // Pin the space element while page scrolls down to pull it off the view port.
+ else if ( mode == 'top' && spaceRect.top < pinnedOffsetY )
+ changeMode( 'pin' );
+ else if ( mode == 'pin' ) {
+ // Restore into docked top from pin.
+ if ( editorRect.top > dockedOffsetY + spaceHeight )
+ changeMode( 'top' );
+ // Docked the space below editable when page scrolls down and the space masks
+ // the final few lines of the content.
+ else if ( editorRect.bottom - spaceRect.bottom < spaceHeight )
+ changeMode( 'bottom' );
+ } else if ( mode == 'bottom' ) {
+ // Jump to top mode. ( with pin mode skipped)
+ if ( editorRect.top > dockedOffsetY + spaceHeight )
+ changeMode( 'top' );
+ // Restore into pin mode from docked bottom.
+ else if ( editorRect.bottom > 2 * spaceHeight + pinnedOffsetY )
+ changeMode( 'pin' );
+ }
+
+ var viewRect = win.getViewPaneSize();
+ var mid = viewRect.width / 2;
+ var alignSide =
+ ( editorRect.left > 0 && editorRect.right < viewRect.width &&
+ editorRect.width > spaceRect.width ) ?
+ ( editor.config.contentsLangDirection == 'rtl' ? 'right' : 'left' ) :
+ ( mid - editorRect.left > editorRect.right - mid ? 'left' :
+ 'right' ),
+ offset;
+
+ // (#9769) If viewport width is less than space width,
+ // make sure space never cross the left boundary of the viewport.
+ // In other words: top-left corner of the space is always visible.
+ if ( spaceRect.width > viewRect.width ) {
+ alignSide = 'left';
+ offset = 0;
+ }
+ else {
+ if ( alignSide == 'left' ) {
+ // If the space rect fits into viewport, align it
+ // to the left edge of editor:
+ //
+ // +------------------------ Viewport -+
+ // | |
+ // | +------------- Space -+ |
+ // | | | |
+ // | +---------------------+ |
+ // | +------------------ Editor -+ |
+ // | | | |
+ //
+ if ( editorRect.left > 0 )
+ offset = editorRect.left;
+
+ // If the left part of the editor is cut off by the left
+ // edge of the viewport, stick the space to the viewport:
+ //
+ // +------------------------ Viewport -+
+ // | |
+ // +---------------- Space -+ |
+ // | | |
+ // +------------------------+ |
+ // +----|------------- Editor -+ |
+ // | | | |
+ //
+ else
+ offset = 0;
+ }
+ else {
+ // If the space rect fits into viewport, align it
+ // to the right edge of editor:
+ //
+ // +------------------------ Viewport -+
+ // | |
+ // | +------------- Space -+ |
+ // | | | |
+ // | +---------------------+ |
+ // | +------------------ Editor -+ |
+ // | | | |
+ //
+ if ( editorRect.right < viewRect.width )
+ offset = viewRect.width - editorRect.right;
+
+ // If the right part of the editor is cut off by the right
+ // edge of the viewport, stick the space to the viewport:
+ //
+ // +------------------------ Viewport -+
+ // | |
+ // | +------------- Space -+
+ // | | |
+ // | +---------------------+
+ // | +-----------------|- Editor -+
+ // | | | |
+ //
+ else
+ offset = 0;
+ }
+
+ // (#9769) Finally, stick the space to the opposite side of
+ // the viewport when it's cut off horizontally on the left/right
+ // side like below.
+ //
+ // This trick reveals cut off space in some edge cases and
+ // hence it improves accessibility.
+ //
+ // +------------------------ Viewport -+
+ // | |
+ // | +--------------------|-- Space -+
+ // | | | |
+ // | +--------------------|----------+
+ // | +------- Editor -+ |
+ // | | | |
+ //
+ // becomes:
+ //
+ // +------------------------ Viewport -+
+ // | |
+ // | +----------------------- Space -+
+ // | | |
+ // | +-------------------------------+
+ // | +------- Editor -+ |
+ // | | | |
+ //
+ if ( offset + spaceRect.width > viewRect.width ) {
+ alignSide = alignSide == 'left' ? 'right' : 'left';
+ offset = 0;
+ }
+ }
+
+ floatSpace.setStyle( alignSide, pixelate( ( mode == 'pin' ? pinnedOffsetX : dockedOffsetX ) + offset + ( mode == 'pin' ? 0 : pageScrollX ) ) );
+ };
+
+ var body = CKEDITOR.document.getBody();
+
+
+ var vars = {
+ id : editor.id,
+ name: editor.name,
+ langDir: editor.lang.dir,
+ langCode: editor.langCode
+ };
+
+ // Get the HTML for the predefined spaces.
+ var topHtml = editor.fire( 'uiSpace', { space: 'top', html: '' } ).html;
+ if ( topHtml ) {
+ var floatSpace = body.append( CKEDITOR.dom.element.createFromHtml( floatSpaceTpl.output( CKEDITOR.tools.extend({
+ topId: editor.ui.spaceId( 'top' ),
+ content: topHtml,
+ style: 'display:none;z-index:' + ( editor.config.baseFloatZIndex - 1 )
+ }, vars ) ) ) );
+
+ // There's no need for the floatSpace to be selectable.
+ floatSpace.unselectable();
+
+ // Prevent clicking on non-buttons area of the space from blurring editor.
+ floatSpace.on( 'mousedown', function( evt ) {
+ evt = evt.data;
+ if ( !evt.getTarget().hasAscendant( 'a', 1 ) )
+ evt.preventDefault();
+ });
+
+ editor.on( 'focus', function( evt ) {
+ layout( evt );
+ win.on( 'scroll', layout );
+ win.on( 'resize', layout );
+ });
+
+ editor.on( 'blur', function() {
+ floatSpace.hide();
+ win.removeListener( 'scroll', layout );
+ win.removeListener( 'resize', layout );
+ });
+
+ editor.on( 'destroy', function() {
+ win.removeListener( 'scroll', layout );
+ win.removeListener( 'resize', layout );
+ floatSpace.clearCustomData();
+ floatSpace.remove();
+ });
+
+ // Handle initial focus.
+ if ( editor.focusManager.hasFocus )
+ floatSpace.show();
+
+ // Register this UI space to the focus manager.
+ editor.focusManager.add( floatSpace, 1 );
+ }
+ }
+
+})();
+
+/**
+ * Along with {@link #floatSpaceDockedOffsetY} it defines the
+ * amount of offset (in pixels) between float space and the editable left/right
+ * boundaries when space element is docked at either side of the editable.
+ *
+ * config.floatSpaceDockedOffsetX = 10;
+ *
+ * @cfg {Number} [floatSpaceDockedOffsetX=0]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Along with {@link #floatSpaceDockedOffsetX} it defines the
+ * amount of offset (in pixels) between float space and the editable top/bottom
+ * boundaries when space element is docked at either side of the editable.
+ *
+ * config.floatSpaceDockedOffsetY = 10;
+ *
+ * @cfg {Number} [floatSpaceDockedOffsetY=0]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Along with {@link #floatSpacePinnedOffsetY} it defines the
+ * amount of offset (in pixels) between float space and the view port boundaries
+ * when space element is pinned.
+ *
+ * config.floatSpacePinnedOffsetX = 20;
+ *
+ * @cfg {Number} [floatSpacePinnedOffsetX=0]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Along with {@link #floatSpacePinnedOffsetX} it defines the
+ * amount of offset (in pixels) between float space and the view port boundaries
+ * when space element is pinned.
+ *
+ * config.floatSpacePinnedOffsetY = 20;
+ *
+ * @cfg {Number} [floatSpacePinnedOffsetY=0]
+ * @member CKEDITOR.config
+ */
diff --git a/devel/third-party/ckeditor/plugins/floatpanel/plugin.js b/devel/third-party/ckeditor/plugins/floatpanel/plugin.js
index 178459e..f861b93 100644
--- a/devel/third-party/ckeditor/plugins/floatpanel/plugin.js
+++ b/devel/third-party/ckeditor/plugins/floatpanel/plugin.js
@@ -1,119 +1,165 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'floatpanel',
-{
- requires : [ 'panel' ]
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'floatpanel', {
+ requires: 'panel'
});
-(function()
-{
+(function() {
var panels = {};
- var isShowing = false;
- function getPanel( editor, doc, parentElement, definition, level )
- {
+ function getPanel( editor, doc, parentElement, definition, level ) {
// Generates the panel key: docId-eleId-skinName-langDir[-uiColor][-CSSs][-level]
- var key =
- doc.getUniqueId() +
- '-' + parentElement.getUniqueId() +
- '-' + editor.skinName +
- '-' + editor.lang.dir +
- ( ( editor.uiColor && ( '-' + editor.uiColor ) ) || '' ) +
- ( ( definition.css && ( '-' + definition.css ) ) || '' ) +
- ( ( level && ( '-' + level ) ) || '' );
-
- var panel = panels[ key ];
-
- if ( !panel )
- {
+ var key = CKEDITOR.tools.genKey( doc.getUniqueId(), parentElement.getUniqueId(), editor.lang.dir, editor.uiColor || '', definition.css || '', level || '' ),
+ panel = panels[ key ];
+
+ if ( !panel ) {
panel = panels[ key ] = new CKEDITOR.ui.panel( doc, definition );
- panel.element = parentElement.append( CKEDITOR.dom.element.createFromHtml( panel.renderHtml( editor ), doc ) );
+ panel.element = parentElement.append( CKEDITOR.dom.element.createFromHtml( panel.render( editor ), doc ) );
- panel.element.setStyles(
- {
- display : 'none',
- position : 'absolute'
- });
+ panel.element.setStyles({
+ display: 'none',
+ position: 'absolute'
+ });
}
return panel;
}
- CKEDITOR.ui.floatPanel = CKEDITOR.tools.createClass(
- {
- $ : function( editor, parentElement, definition, level )
- {
- definition.forceIFrame = true;
+ /**
+ * Represents a floating panel UI element.
+ *
+ * It's reused by rich combos, color combos, menus, etc.
+ * and it renders its content using {@link CKEDITOR.ui.panel}.
+ *
+ * @class
+ * @todo
+ */
+ CKEDITOR.ui.floatPanel = CKEDITOR.tools.createClass({
+ /**
+ * Creates a floatPanel class instance.
+ *
+ * @constructor
+ * @param {CKEDITOR.editor} editor
+ * @param {CKEDITOR.dom.element} parentElement
+ * @param {Object} definition Definition of the panel that will be floating.
+ * @param {Number} level
+ */
+ $: function( editor, parentElement, definition, level ) {
+ definition.forceIFrame = 1;
+
+ // In case of editor with floating toolbar append panels that should float
+ // to the main UI element.
+ if ( definition.toolbarRelated && editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
+ parentElement = CKEDITOR.document.getById( 'cke_' + editor.name );
var doc = parentElement.getDocument(),
panel = getPanel( editor, doc, parentElement, definition, level || 0 ),
element = panel.element,
- iframe = element.getFirst().getFirst();
+ iframe = element.getFirst(),
+ that = this;
+
+ // Disable native browser menu. (#4825)
+ element.disableContextMenu();
+
+ // Floating panels are placed outside the main editor UI, so we must
+ // make them application regions as well. (#9543)
+ element.setAttribute( 'role', 'application' );
this.element = element;
- this._ =
- {
+ this._ = {
+ editor: editor,
// The panel that will be floating.
- panel : panel,
- parentElement : parentElement,
- definition : definition,
- document : doc,
- iframe : iframe,
- children : [],
- dir : editor.lang.dir
+ panel: panel,
+ parentElement: parentElement,
+ definition: definition,
+ document: doc,
+ iframe: iframe,
+ children: [],
+ dir: editor.lang.dir
};
+
+ editor.on( 'mode', hide );
+ editor.on( 'resize', hide );
+ // Window resize doesn't cause hide on blur. (#9800)
+ doc.getWindow().on( 'resize', hide );
+
+ // We need a wrapper because events implementation doesn't allow to attach
+ // one listener more than once for the same event on the same object.
+ // Remember that floatPanel#hide is shared between all instances.
+ function hide() {
+ that.hide();
+ }
},
- proto :
- {
- addBlock : function( name, block )
- {
+ proto: {
+ /**
+ * @todo
+ */
+ addBlock: function( name, block ) {
return this._.panel.addBlock( name, block );
},
- addListBlock : function( name, multiSelect )
- {
+ /**
+ * @todo
+ */
+ addListBlock: function( name, multiSelect ) {
return this._.panel.addListBlock( name, multiSelect );
},
- getBlock : function( name )
- {
+ /**
+ * @todo
+ */
+ getBlock: function( name ) {
return this._.panel.getBlock( name );
},
- /*
- corner (LTR):
- 1 = top-left
- 2 = top-right
- 3 = bottom-right
- 4 = bottom-left
-
- corner (RTL):
- 1 = top-right
- 2 = top-left
- 3 = bottom-left
- 4 = bottom-right
+ /**
+ * Shows panel block.
+ *
+ * @param {String} name
+ * @param {CKEDITOR.dom.element} offsetParent Positioned parent.
+ * @param {Number} corner
+ *
+ * * For LTR (left to right) oriented editor:
+ * * `1` = top-left
+ * * `2` = top-right
+ * * `3` = bottom-right
+ * * `4` = bottom-left
+ * * For RTL (right to left):
+ * * `1` = top-right
+ * * `2` = top-left
+ * * `3` = bottom-left
+ * * `4` = bottom-right
+ *
+ * @param {Number} [offsetX=0]
+ * @param {Number} [offsetY=0]
+ * @todo what do exactly these params mean (especially corner)?
*/
- showBlock : function( name, offsetParent, corner, offsetX, offsetY )
- {
+ showBlock: function( name, offsetParent, corner, offsetX, offsetY ) {
var panel = this._.panel,
block = panel.showBlock( name );
this.allowBlur( false );
- isShowing = true;
+
+ // Record from where the focus is when open panel.
+ var editable = this._.editor.editable();
+ this._.returnFocus = editable.hasFocus ? editable : new CKEDITOR.dom.element( CKEDITOR.document.$.activeElement );
var element = this.element,
iframe = this._.iframe,
- definition = this._.definition,
- position = offsetParent.getDocumentPosition( element.getDocument() ),
- rtl = this._.dir == 'rtl';
-
- var left = position.x + ( offsetX || 0 ),
- top = position.y + ( offsetY || 0 );
+ // Non IE prefer the event into a window object.
+ focused = CKEDITOR.env.ie ? iframe : new CKEDITOR.dom.window( iframe.$.contentWindow ),
+ doc = element.getDocument(),
+ positionedAncestor = this._.parentElement.getPositionedAncestor(),
+ position = offsetParent.getDocumentPosition( doc ),
+ positionedAncestorPosition = positionedAncestor ? positionedAncestor.getDocumentPosition( doc ) : { x: 0, y: 0 },
+ rtl = this._.dir == 'rtl',
+ left = position.x + ( offsetX || 0 ) - positionedAncestorPosition.x,
+ top = position.y + ( offsetY || 0 ) - positionedAncestorPosition.y;
// Floating panels are off by (-1px, 0px) in RTL mode. (#3438)
if ( rtl && ( corner == 1 || corner == 4 ) )
@@ -127,11 +173,12 @@ CKEDITOR.plugins.add( 'floatpanel',
// Memorize offsetParent by it's ID.
this._.panel._.offsetParentId = offsetParent.getId();
- element.setStyles(
- {
- top : '-30000px',
- display : ''
- });
+ element.setStyles({
+ top: top + 'px',
+ left: 0,
+ display: ''
+ });
+
// Don't use display or visibility style because we need to
// calculate the rendering layout later and focus the element.
element.setOpacity( 0 );
@@ -139,186 +186,264 @@ CKEDITOR.plugins.add( 'floatpanel',
// To allow the context menu to decrease back their width
element.getFirst().removeStyle( 'width' );
+ // Report to focus manager.
+ this._.editor.focusManager.add( focused );
+
// Configure the IFrame blur event. Do that only once.
- if ( !this._.blurSet )
- {
- // Non IE prefer the event into a window object.
- var focused = CKEDITOR.env.ie ? iframe : new CKEDITOR.dom.window( iframe.$.contentWindow );
+ if ( !this._.blurSet ) {
// With addEventListener compatible browsers, we must
// useCapture when registering the focus/blur events to
// guarantee they will be firing in all situations. (#3068, #3222 )
CKEDITOR.event.useCapture = true;
- focused.on( 'blur', function( ev )
- {
- if ( !this.allowBlur() )
- return;
-
- // As we are using capture to register the listener,
- // the blur event may get fired even when focusing
- // inside the window itself, so we must ensure the
- // target is out of it.
- var target;
- if ( CKEDITOR.env.ie && !this.allowBlur()
- || ( target = ev.data.getTarget() )
- && target.getName && target.getName() != 'iframe' )
- return;
-
- if ( this.visible && !this._.activeChild && !isShowing )
- this.hide();
- },
- this );
-
- focused.on( 'focus', function()
- {
- this._.focused = true;
- this.hideChild();
- this.allowBlur( true );
- },
- this );
+ focused.on( 'blur', function( ev ) {
+
+ // As we are using capture to register the listener,
+ // the blur event may get fired even when focusing
+ // inside the window itself, so we must ensure the
+ // target is out of it.
+ if ( !this.allowBlur() || ev.data.getPhase() != CKEDITOR.EVENT_PHASE_AT_TARGET )
+ return;
+
+ if ( this.visible && !this._.activeChild ) {
+ // Panel close is caused by user's navigating away the focus, e.g. click outside the panel.
+ // DO NOT restore focus in this case.
+ delete this._.returnFocus;
+ this.hide();
+ }
+ }, this );
+
+ focused.on( 'focus', function() {
+ this._.focused = true;
+ this.hideChild();
+ this.allowBlur( true );
+ }, this );
CKEDITOR.event.useCapture = false;
this._.blurSet = 1;
}
- panel.onEscape = CKEDITOR.tools.bind( function( keystroke )
- {
- if ( this.onEscape && this.onEscape( keystroke ) === false )
- return false;
- },
- this );
+ panel.onEscape = CKEDITOR.tools.bind( function( keystroke ) {
+ if ( this.onEscape && this.onEscape( keystroke ) === false )
+ return false;
+ }, this );
- CKEDITOR.tools.setTimeout( function()
- {
- if ( rtl )
- left -= element.$.offsetWidth;
+ CKEDITOR.tools.setTimeout( function() {
+ var panelLoad = CKEDITOR.tools.bind( function() {
+ var target = element;
- var panelLoad = CKEDITOR.tools.bind( function ()
- {
- var target = element.getFirst();
+ // Reset panel width as the new content can be narrower
+ // than the old one. (#9355)
+ target.removeStyle( 'width' );
- if ( block.autoSize )
- {
- // We must adjust first the width or IE6 could include extra lines in the height computation
- var widthNode = block.element.$;
+ if ( block.autoSize ) {
+ var panelDoc = block.element.getDocument();
+ var width = ( CKEDITOR.env.webkit? block.element : panelDoc.getBody() )[ '$' ].scrollWidth;
- if ( CKEDITOR.env.gecko || CKEDITOR.env.opera )
- widthNode = widthNode.parentNode;
+ // Account for extra height needed due to IE quirks box model bug:
+ // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug
+ // (#3426)
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && width > 0 )
+ width += ( target.$.offsetWidth || 0 ) - ( target.$.clientWidth || 0 ) + 3;
- if ( CKEDITOR.env.ie )
- widthNode = widthNode.document.body;
+ // Add some extra pixels to improve the appearance.
+ width += 10;
- var width = widthNode.scrollWidth;
- // Account for extra height needed due to IE quirks box model bug:
- // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug
- // (#3426)
- if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && width > 0 )
- width += ( target.$.offsetWidth || 0 ) - ( target.$.clientWidth || 0 );
- // A little extra at the end.
- // If not present, IE6 might break into the next line, but also it looks better this way
- width += 4 ;
+ target.setStyle( 'width', width + 'px' );
- target.setStyle( 'width', width + 'px' );
+ var height = block.element.$.scrollHeight;
- // IE doesn't compute the scrollWidth if a filter is applied previously
- block.element.addClass( 'cke_frameLoaded' );
+ // Account for extra height needed due to IE quirks box model bug:
+ // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug
+ // (#3426)
+ if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && height > 0 )
+ height += ( target.$.offsetHeight || 0 ) - ( target.$.clientHeight || 0 ) + 3;
- var height = block.element.$.scrollHeight;
+ target.setStyle( 'height', height + 'px' );
- // Account for extra height needed due to IE quirks box model bug:
- // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug
- // (#3426)
- if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && height > 0 )
- height += ( target.$.offsetHeight || 0 ) - ( target.$.clientHeight || 0 );
+ // Fix IE < 8 visibility.
+ panel._.currentBlock.element.setStyle( 'display', 'none' ).removeStyle( 'display' );
+ } else
+ target.removeStyle( 'height' );
- target.setStyle( 'height', height + 'px' );
+ // Flip panel layout horizontally in RTL with known width.
+ if ( rtl )
+ left -= element.$.offsetWidth;
- // Fix IE < 8 visibility.
- panel._.currentBlock.element.setStyle( 'display', 'none' ).removeStyle( 'display' );
+ // Pop the style now for measurement.
+ element.setStyle( 'left', left + 'px' );
+
+ /* panel layout smartly fit the viewport size. */
+ var panelElement = panel.element,
+ panelWindow = panelElement.getWindow(),
+ rect = element.$.getBoundingClientRect(),
+ viewportSize = panelWindow.getViewPaneSize();
+
+ // Compensation for browsers that dont support "width" and "height".
+ var rectWidth = rect.width || rect.right - rect.left,
+ rectHeight = rect.height || rect.bottom - rect.top;
+
+ // Check if default horizontal layout is impossible.
+ var spaceAfter = rtl ? rect.right : viewportSize.width - rect.left,
+ spaceBefore = rtl ? viewportSize.width - rect.right : rect.left;
+
+ if ( rtl ) {
+ if ( spaceAfter < rectWidth ) {
+ // Flip to show on right.
+ if ( spaceBefore > rectWidth )
+ left += rectWidth;
+ // Align to window left.
+ else if ( viewportSize.width > rectWidth )
+ left = left - rect.left;
+ // Align to window right, never cutting the panel at right.
+ else
+ left = left - rect.right + viewportSize.width;
}
+ } else if ( spaceAfter < rectWidth ) {
+ // Flip to show on left.
+ if ( spaceBefore > rectWidth )
+ left -= rectWidth;
+ // Align to window right.
+ else if ( viewportSize.width > rectWidth )
+ left = left - rect.right + viewportSize.width;
+ // Align to window left, never cutting the panel at left.
else
- target.removeStyle( 'height' );
-
- var panelElement = panel.element,
- panelWindow = panelElement.getWindow(),
- windowScroll = panelWindow.getScrollPosition(),
- viewportSize = panelWindow.getViewPaneSize(),
- panelSize =
- {
- 'height' : panelElement.$.offsetHeight,
- 'width' : panelElement.$.offsetWidth
- };
-
- // If the menu is horizontal off, shift it toward
- // the opposite language direction.
- if ( rtl ? left < 0 : left + panelSize.width > viewportSize.width + windowScroll.x )
- left += ( panelSize.width * ( rtl ? 1 : -1 ) );
-
- // Vertical off screen is simpler.
- if ( top + panelSize.height > viewportSize.height + windowScroll.y )
- top -= panelSize.height;
-
- // If IE is in RTL, we have troubles with absolute
- // position and horizontal scrolls. Here we have a
- // series of hacks to workaround it. (#6146)
- if ( CKEDITOR.env.ie )
- {
- var offsetParent = new CKEDITOR.dom.element( element.$.offsetParent ),
- scrollParent = offsetParent;
-
- // Quirks returns <body>, but standards returns <html>.
- if ( scrollParent.getName() == 'html' )
- scrollParent = scrollParent.getDocument().getBody();
-
- if ( scrollParent.getComputedStyle( 'direction' ) == 'rtl' )
- {
- // For IE8, there is not much logic on this, but it works.
- if ( CKEDITOR.env.ie8Compat )
- left -= element.getDocument().getDocumentElement().$.scrollLeft * 2;
- else
- left -= ( offsetParent.$.scrollWidth - offsetParent.$.clientWidth );
- }
+ left = left - rect.left;
+ }
+
+
+ // Check if the default vertical layout is possible.
+ var spaceBelow = viewportSize.height - rect.top,
+ spaceAbove = rect.top;
+
+ if ( spaceBelow < rectHeight ) {
+ // Flip to show above.
+ if ( spaceAbove > rectHeight )
+ top -= rectHeight;
+ // Align to window bottom.
+ else if ( viewportSize.height > rectHeight )
+ top = top - rect.bottom + viewportSize.height;
+ // Align to top, never cutting the panel at top.
+ else
+ top = top - rect.top;
+ }
+
+ // If IE is in RTL, we have troubles with absolute
+ // position and horizontal scrolls. Here we have a
+ // series of hacks to workaround it. (#6146)
+ if ( CKEDITOR.env.ie ) {
+ var offsetParent = new CKEDITOR.dom.element( element.$.offsetParent ),
+ scrollParent = offsetParent;
+
+ // Quirks returns <body>, but standards returns <html>.
+ if ( scrollParent.getName() == 'html' )
+ scrollParent = scrollParent.getDocument().getBody();
+
+ if ( scrollParent.getComputedStyle( 'direction' ) == 'rtl' ) {
+ // For IE8, there is not much logic on this, but it works.
+ if ( CKEDITOR.env.ie8Compat )
+ left -= element.getDocument().getDocumentElement().$.scrollLeft * 2;
+ else
+ left -= ( offsetParent.$.scrollWidth - offsetParent.$.clientWidth );
}
-
- element.setStyles(
- {
- top : top + 'px',
- left : left + 'px'
- } );
- element.setOpacity( 1 );
- } , this );
-
- panel.isLoaded ? panelLoad() : panel.onLoad = panelLoad;
-
- // Set the panel frame focus, so the blur event gets fired.
- CKEDITOR.tools.setTimeout( function()
- {
- iframe.$.contentWindow.focus();
- // We need this get fired manually because of unfired focus() function.
- this.allowBlur( true );
- }, 0, this);
- }, 0, this);
+ }
+
+ // Trigger the onHide event of the previously active panel to prevent
+ // incorrect styles from being applied (#6170)
+ var innerElement = element.getFirst(),
+ activePanel;
+ if ( ( activePanel = innerElement.getCustomData( 'activePanel' ) ) )
+ activePanel.onHide && activePanel.onHide.call( this, 1 );
+ innerElement.setCustomData( 'activePanel', this );
+
+ element.setStyles({
+ top: top + 'px',
+ left: left + 'px'
+ });
+ element.setOpacity( 1 );
+ }, this );
+
+ panel.isLoaded ? panelLoad() : panel.onLoad = panelLoad;
+
+ // Set the panel frame focus, so the blur event gets fired.
+ CKEDITOR.tools.setTimeout( function() {
+
+ this.focus();
+
+ // We need this get fired manually because of unfired focus() function.
+ this.allowBlur( true );
+ this._.editor.fire( 'panelShow', this );
+ }, 0, this );
+ }, CKEDITOR.env.air ? 200 : 0, this );
this.visible = 1;
if ( this.onShow )
this.onShow.call( this );
- isShowing = false;
},
- hide : function()
- {
- if ( this.visible && ( !this.onHide || this.onHide.call( this ) !== true ) )
- {
+ /**
+ * Restores last focused element or simply focus panel window.
+ */
+ focus: function() {
+ // Webkit requires to blur any previous focused page element, in
+ // order to properly fire the "focus" event.
+ if ( CKEDITOR.env.webkit ) {
+ var active = CKEDITOR.document.getActive();
+ !active.equals( this._.iframe ) && active.$.blur();
+ }
+
+ // Restore last focused element or simply focus panel window.
+ var focus = this._.lastFocused || this._.iframe.getFrameDocument().getWindow();
+ focus.focus();
+ },
+
+ /**
+ * @todo
+ */
+ blur: function() {
+ var doc = this._.iframe.getFrameDocument(),
+ active = doc.getActive();
+
+ active.is( 'a' ) && ( this._.lastFocused = active );
+ },
+
+ /**
+ * Hides panel.
+ *
+ * @todo
+ */
+ hide: function( returnFocus ) {
+ if ( this.visible && ( !this.onHide || this.onHide.call( this ) !== true ) ) {
this.hideChild();
+ // Blur previously focused element. (#6671)
+ CKEDITOR.env.gecko && this._.iframe.getFrameDocument().$.activeElement.blur();
this.element.setStyle( 'display', 'none' );
this.visible = 0;
+ this.element.getFirst().removeCustomData( 'activePanel' );
+
+ // Return focus properly. (#6247)
+ var focusReturn = returnFocus && this._.returnFocus;
+ if ( focusReturn ) {
+ // Webkit requires focus moved out panel iframe first.
+ if ( CKEDITOR.env.webkit && focusReturn.type )
+ focusReturn.getWindow().$.focus();
+
+ focusReturn.focus();
+ }
+
+ delete this._.lastFocused;
+
+ this._.editor.fire( 'panelHide', this );
}
},
- allowBlur : function( allow ) // Prevent editor from hiding the panel. #3222.
+ /**
+ * @todo
+ */
+ allowBlur: function( allow ) // Prevent editor from hiding the panel. #3222.
{
var panel = this._.panel;
if ( allow != undefined )
@@ -327,62 +452,81 @@ CKEDITOR.plugins.add( 'floatpanel',
return panel.allowBlur;
},
- showAsChild : function( panel, blockName, offsetParent, corner, offsetX, offsetY )
- {
+ /**
+ * Shows specified panel as a child of one block of this one.
+ *
+ * @param {CKEDITOR.ui.floatPanel} panel
+ * @param {String} blockName
+ * @param {CKEDITOR.dom.element} offsetParent Positioned parent.
+ * @param {Number} corner
+ *
+ * * For LTR (left to right) oriented editor:
+ * * `1` = top-left
+ * * `2` = top-right
+ * * `3` = bottom-right
+ * * `4` = bottom-left
+ * * For RTL (right to left):
+ * * `1` = top-right
+ * * `2` = top-left
+ * * `3` = bottom-left
+ * * `4` = bottom-right
+ *
+ * @param {Number} [offsetX=0]
+ * @param {Number} [offsetY=0]
+ * @todo
+ */
+ showAsChild: function( panel, blockName, offsetParent, corner, offsetX, offsetY ) {
// Skip reshowing of child which is already visible.
if ( this._.activeChild == panel && panel._.panel._.offsetParentId == offsetParent.getId() )
return;
this.hideChild();
- panel.onHide = CKEDITOR.tools.bind( function()
- {
- // Use a timeout, so we give time for this menu to get
- // potentially focused.
- CKEDITOR.tools.setTimeout( function()
- {
- if ( !this._.focused )
- this.hide();
- },
- 0, this );
- },
- this );
+ panel.onHide = CKEDITOR.tools.bind( function() {
+ // Use a timeout, so we give time for this menu to get
+ // potentially focused.
+ CKEDITOR.tools.setTimeout( function() {
+ if ( !this._.focused )
+ this.hide();
+ }, 0, this );
+ }, this );
this._.activeChild = panel;
this._.focused = false;
panel.showBlock( blockName, offsetParent, corner, offsetX, offsetY );
+ this.blur();
/* #3767 IE: Second level menu may not have borders */
- if ( CKEDITOR.env.ie7Compat || ( CKEDITOR.env.ie8 && CKEDITOR.env.ie6Compat ) )
- {
- setTimeout(function()
- {
- panel.element.getChild( 0 ).$.style.cssText += '';
- }, 100);
+ if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {
+ setTimeout( function() {
+ panel.element.getChild( 0 ).$.style.cssText += '';
+ }, 100 );
}
},
- hideChild : function()
- {
+ /**
+ * @todo
+ */
+ hideChild: function( restoreFocus ) {
var activeChild = this._.activeChild;
- if ( activeChild )
- {
+ if ( activeChild ) {
delete activeChild.onHide;
delete this._.activeChild;
activeChild.hide();
+
+ // At this point focus should be moved back to parent panel.
+ restoreFocus && this.focus();
}
}
}
});
- CKEDITOR.on( 'instanceDestroyed', function()
- {
+ CKEDITOR.on( 'instanceDestroyed', function() {
var isLastInstance = CKEDITOR.tools.isEmpty( CKEDITOR.instances );
- for ( var i in panels )
- {
+ for ( var i in panels ) {
var panel = panels[ i ];
// Safe to destroy it since there're no more instances.(#4241)
if ( isLastInstance )
diff --git a/devel/third-party/ckeditor/plugins/font/lang/af.js b/devel/third-party/ckeditor/plugins/font/lang/af.js
new file mode 100644
index 0000000..1f29c2a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/af.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'af', {
+ fontSize: {
+ label: 'Grootte',
+ voiceLabel: 'Fontgrootte',
+ panelTitle: 'Fontgrootte'
+ },
+ label: 'Font',
+ panelTitle: 'Fontnaam',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ar.js b/devel/third-party/ckeditor/plugins/font/lang/ar.js
new file mode 100644
index 0000000..b486b0b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ar.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ar', {
+ fontSize: {
+ label: 'ØØ¬Ù
Ø§ÙØ®Ø·',
+ voiceLabel: 'ØØ¬Ù
Ø§ÙØ®Ø·',
+ panelTitle: 'ØØ¬Ù
Ø§ÙØ®Ø·'
+ },
+ label: 'خط',
+ panelTitle: 'ØØ¬Ù
Ø§ÙØ®Ø·',
+ voiceLabel: 'ØØ¬Ù
Ø§ÙØ®Ø·'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/bg.js b/devel/third-party/ckeditor/plugins/font/lang/bg.js
new file mode 100644
index 0000000..ee25bc6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/bg.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'bg', {
+ fontSize: {
+ label: 'РазмеÑ',
+ voiceLabel: 'Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑÑиÑÑ',
+ panelTitle: 'Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑÑиÑÑ'
+ },
+ label: 'ШÑиÑÑ',
+ panelTitle: 'Ðме на ÑÑиÑÑ',
+ voiceLabel: 'ШÑиÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/bn.js b/devel/third-party/ckeditor/plugins/font/lang/bn.js
new file mode 100644
index 0000000..8c8d29b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/bn.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'bn', {
+ fontSize: {
+ label: 'সাà¦à¦',
+ voiceLabel: 'Font Size',
+ panelTitle: 'সাà¦à¦'
+ },
+ label: 'ফনà§à¦',
+ panelTitle: 'ফনà§à¦',
+ voiceLabel: 'ফনà§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/bs.js b/devel/third-party/ckeditor/plugins/font/lang/bs.js
new file mode 100644
index 0000000..4dbc8a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/bs.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'bs', {
+ fontSize: {
+ label: 'Velièina',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Velièina'
+ },
+ label: 'Font',
+ panelTitle: 'Font',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ca.js b/devel/third-party/ckeditor/plugins/font/lang/ca.js
new file mode 100644
index 0000000..b57776c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ca.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ca', {
+ fontSize: {
+ label: 'Mida',
+ voiceLabel: 'Mida de la lletra',
+ panelTitle: 'Mida'
+ },
+ label: 'Tipus de lletra',
+ panelTitle: 'Tipus de lletra',
+ voiceLabel: 'Tipus de lletra'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/cs.js b/devel/third-party/ckeditor/plugins/font/lang/cs.js
new file mode 100644
index 0000000..5457f28
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/cs.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'cs', {
+ fontSize: {
+ label: 'Velikost',
+ voiceLabel: 'Velikost pÃsma',
+ panelTitle: 'Velikost'
+ },
+ label: 'PÃsmo',
+ panelTitle: 'PÃsmo',
+ voiceLabel: 'PÃsmo'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/cy.js b/devel/third-party/ckeditor/plugins/font/lang/cy.js
new file mode 100644
index 0000000..b9bb32f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/cy.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'cy', {
+ fontSize: {
+ label: 'Maint',
+ voiceLabel: 'Maint y Ffont',
+ panelTitle: 'Maint y Ffont'
+ },
+ label: 'Ffont',
+ panelTitle: 'Enw\'r Ffont',
+ voiceLabel: 'Ffont'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/da.js b/devel/third-party/ckeditor/plugins/font/lang/da.js
new file mode 100644
index 0000000..a1d18fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/da.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'da', {
+ fontSize: {
+ label: 'Skriftstørrelse',
+ voiceLabel: 'Skriftstørrelse',
+ panelTitle: 'Skriftstørrelse'
+ },
+ label: 'Skrifttype',
+ panelTitle: 'Skrifttype',
+ voiceLabel: 'Skrifttype'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/de.js b/devel/third-party/ckeditor/plugins/font/lang/de.js
new file mode 100644
index 0000000..b40629c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/de.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'de', {
+ fontSize: {
+ label: 'GröÃe',
+ voiceLabel: 'SchrifgröÃe',
+ panelTitle: 'GröÃe'
+ },
+ label: 'Schriftart',
+ panelTitle: 'Schriftart',
+ voiceLabel: 'Schriftart'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/el.js b/devel/third-party/ckeditor/plugins/font/lang/el.js
new file mode 100644
index 0000000..d3d4902
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/el.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'el', {
+ fontSize: {
+ label: 'ÎÎγεθοÏ',
+ voiceLabel: 'ÎÎÎ³ÎµÎ¸Î¿Ï Î³ÏαμμαÏοÏειÏάÏ',
+ panelTitle: 'ÎÎÎ³ÎµÎ¸Î¿Ï ÎÏαμμαÏοÏειÏάÏ'
+ },
+ label: 'ÎÏαμμαÏοÏειÏά',
+ panelTitle: 'Îνομα ÎÏαμμαÏοÏειÏάÏ',
+ voiceLabel: 'ÎÏαμμαÏοÏειÏά'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/en-au.js b/devel/third-party/ckeditor/plugins/font/lang/en-au.js
new file mode 100644
index 0000000..ed25efb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/en-au.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'en-au', {
+ fontSize: {
+ label: 'Size',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Font Size'
+ },
+ label: 'Font',
+ panelTitle: 'Font Name',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/en-ca.js b/devel/third-party/ckeditor/plugins/font/lang/en-ca.js
new file mode 100644
index 0000000..34d5887
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/en-ca.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'en-ca', {
+ fontSize: {
+ label: 'Size',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Font Size'
+ },
+ label: 'Font',
+ panelTitle: 'Font Name',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/en-gb.js b/devel/third-party/ckeditor/plugins/font/lang/en-gb.js
new file mode 100644
index 0000000..fe6bf04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/en-gb.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'en-gb', {
+ fontSize: {
+ label: 'Size',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Font Size'
+ },
+ label: 'Font',
+ panelTitle: 'Font Name',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/en.js b/devel/third-party/ckeditor/plugins/font/lang/en.js
new file mode 100644
index 0000000..240f6e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/en.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'en', {
+ fontSize: {
+ label: 'Size',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Font Size'
+ },
+ label: 'Font',
+ panelTitle: 'Font Name',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/eo.js b/devel/third-party/ckeditor/plugins/font/lang/eo.js
new file mode 100644
index 0000000..b5a6ac2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/eo.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'eo', {
+ fontSize: {
+ label: 'Grado',
+ voiceLabel: 'Tipara grado',
+ panelTitle: 'Tipara grado'
+ },
+ label: 'Tiparo',
+ panelTitle: 'Tipara nomo',
+ voiceLabel: 'Tiparo'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/es.js b/devel/third-party/ckeditor/plugins/font/lang/es.js
new file mode 100644
index 0000000..32dfa93
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/es.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'es', {
+ fontSize: {
+ label: 'Tamaño',
+ voiceLabel: 'Tamaño de fuente',
+ panelTitle: 'Tamaño'
+ },
+ label: 'Fuente',
+ panelTitle: 'Fuente',
+ voiceLabel: 'Fuente'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/et.js b/devel/third-party/ckeditor/plugins/font/lang/et.js
new file mode 100644
index 0000000..4a1701b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/et.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'et', {
+ fontSize: {
+ label: 'Suurus',
+ voiceLabel: 'Kirja suurus',
+ panelTitle: 'Suurus'
+ },
+ label: 'Kiri',
+ panelTitle: 'Kiri',
+ voiceLabel: 'Kiri'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/eu.js b/devel/third-party/ckeditor/plugins/font/lang/eu.js
new file mode 100644
index 0000000..5df2889
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/eu.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'eu', {
+ fontSize: {
+ label: 'Tamaina',
+ voiceLabel: 'Tamaina',
+ panelTitle: 'Tamaina'
+ },
+ label: 'Letra-tipoa',
+ panelTitle: 'Letra-tipoa',
+ voiceLabel: 'Letra-tipoa'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/fa.js b/devel/third-party/ckeditor/plugins/font/lang/fa.js
new file mode 100644
index 0000000..bfe2244
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/fa.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'fa', {
+ fontSize: {
+ label: 'Ø§ÙØ¯Ø§Ø²Ù',
+ voiceLabel: 'Ø§ÙØ¯Ø§Ø²Ù ÙÙÙ
',
+ panelTitle: 'Ø§ÙØ¯Ø§Ø²Ù'
+ },
+ label: 'ÙÙÙ
',
+ panelTitle: 'ÙÙÙ
',
+ voiceLabel: 'ÙÙÙ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/fi.js b/devel/third-party/ckeditor/plugins/font/lang/fi.js
new file mode 100644
index 0000000..ab53488
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/fi.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'fi', {
+ fontSize: {
+ label: 'Koko',
+ voiceLabel: 'Kirjaisimen koko',
+ panelTitle: 'Koko'
+ },
+ label: 'Kirjaisinlaji',
+ panelTitle: 'Kirjaisinlaji',
+ voiceLabel: 'Kirjaisinlaji'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/fo.js b/devel/third-party/ckeditor/plugins/font/lang/fo.js
new file mode 100644
index 0000000..84d05d4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/fo.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'fo', {
+ fontSize: {
+ label: 'Skriftstødd',
+ voiceLabel: 'Skriftstødd',
+ panelTitle: 'Skriftstødd'
+ },
+ label: 'Skrift',
+ panelTitle: 'Skrift',
+ voiceLabel: 'Skrift'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/font/lang/fr-ca.js
new file mode 100644
index 0000000..e12cc69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/fr-ca.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'fr-ca', {
+ fontSize: {
+ label: 'Taille',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Taille'
+ },
+ label: 'Police',
+ panelTitle: 'Police',
+ voiceLabel: 'Police'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/fr.js b/devel/third-party/ckeditor/plugins/font/lang/fr.js
new file mode 100644
index 0000000..79e60cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/fr.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'fr', {
+ fontSize: {
+ label: 'Taille',
+ voiceLabel: 'Taille de police',
+ panelTitle: 'Taille de police'
+ },
+ label: 'Police',
+ panelTitle: 'Style de police',
+ voiceLabel: 'Police'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/gl.js b/devel/third-party/ckeditor/plugins/font/lang/gl.js
new file mode 100644
index 0000000..b80df62
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/gl.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'gl', {
+ fontSize: {
+ label: 'Tamaño',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Tamaño'
+ },
+ label: 'Tipo',
+ panelTitle: 'Tipo',
+ voiceLabel: 'Tipo'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/gu.js b/devel/third-party/ckeditor/plugins/font/lang/gu.js
new file mode 100644
index 0000000..986b40c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/gu.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'gu', {
+ fontSize: {
+ label: 'ફà«àª¨à«àª સાàªàª/àªàª¦',
+ voiceLabel: 'ફà«àª¨à«àª સાàªàª',
+ panelTitle: 'ફà«àª¨à«àª સાàªàª/àªàª¦'
+ },
+ label: 'ફà«àª¨à«àª',
+ panelTitle: 'ફà«àª¨à«àª',
+ voiceLabel: 'ફà«àª¨à«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/he.js b/devel/third-party/ckeditor/plugins/font/lang/he.js
new file mode 100644
index 0000000..77ef2c9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/he.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'he', {
+ fontSize: {
+ label: '××××',
+ voiceLabel: '××××',
+ panelTitle: '××××'
+ },
+ label: '××פ×',
+ panelTitle: '××פ×',
+ voiceLabel: '××פ×'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/hi.js b/devel/third-party/ckeditor/plugins/font/lang/hi.js
new file mode 100644
index 0000000..2bf8184
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/hi.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'hi', {
+ fontSize: {
+ label: 'साà¤à¥',
+ voiceLabel: 'Font Size',
+ panelTitle: 'साà¤à¥'
+ },
+ label: 'à¥à¥à¤¨à¥à¤',
+ panelTitle: 'à¥à¥à¤¨à¥à¤',
+ voiceLabel: 'à¥à¥à¤¨à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/hr.js b/devel/third-party/ckeditor/plugins/font/lang/hr.js
new file mode 100644
index 0000000..7491c47
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/hr.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'hr', {
+ fontSize: {
+ label: 'VeliÄina',
+ voiceLabel: 'VeliÄina slova',
+ panelTitle: 'VeliÄina'
+ },
+ label: 'Font',
+ panelTitle: 'Font',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/hu.js b/devel/third-party/ckeditor/plugins/font/lang/hu.js
new file mode 100644
index 0000000..5328ce0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/hu.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'hu', {
+ fontSize: {
+ label: 'Méret',
+ voiceLabel: 'Betűméret',
+ panelTitle: 'Méret'
+ },
+ label: 'BetűtÃpus',
+ panelTitle: 'BetűtÃpus',
+ voiceLabel: 'BetűtÃpus'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/is.js b/devel/third-party/ckeditor/plugins/font/lang/is.js
new file mode 100644
index 0000000..f5a213a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/is.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'is', {
+ fontSize: {
+ label: 'Leturstærð ',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Leturstærð '
+ },
+ label: 'Leturgerð ',
+ panelTitle: 'Leturgerð ',
+ voiceLabel: 'Leturgerð '
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/it.js b/devel/third-party/ckeditor/plugins/font/lang/it.js
new file mode 100644
index 0000000..1cb1f30
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/it.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'it', {
+ fontSize: {
+ label: 'Dimensione',
+ voiceLabel: 'Dimensione Carattere',
+ panelTitle: 'Dimensione'
+ },
+ label: 'Carattere',
+ panelTitle: 'Carattere',
+ voiceLabel: 'Carattere'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ja.js b/devel/third-party/ckeditor/plugins/font/lang/ja.js
new file mode 100644
index 0000000..2db80a2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ja.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ja', {
+ fontSize: {
+ label: 'ãµã¤ãº',
+ voiceLabel: 'ãã©ã³ããµã¤ãº',
+ panelTitle: 'ãµã¤ãº'
+ },
+ label: 'ãã©ã³ã',
+ panelTitle: 'ãã©ã³ã',
+ voiceLabel: 'ãã©ã³ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ka.js b/devel/third-party/ckeditor/plugins/font/lang/ka.js
new file mode 100644
index 0000000..5066266
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ka.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ka', {
+ fontSize: {
+ label: 'áááá',
+ voiceLabel: 'á¢áá¥á¡á¢áá¡ áááá',
+ panelTitle: 'á¢áá¥á¡á¢áá¡ áááá'
+ },
+ label: 'á¤ááá¢á',
+ panelTitle: 'á¤ááá¢áá¡ á¡áá®ááá',
+ voiceLabel: 'á¤ááá¢á'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/km.js b/devel/third-party/ckeditor/plugins/font/lang/km.js
new file mode 100644
index 0000000..e9a16f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/km.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'km', {
+ fontSize: {
+ label: 'ááá á',
+ voiceLabel: 'Font Size',
+ panelTitle: 'ááá á'
+ },
+ label: 'á ááá»á',
+ panelTitle: 'á ááá»á',
+ voiceLabel: 'á ááá»á'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ko.js b/devel/third-party/ckeditor/plugins/font/lang/ko.js
new file mode 100644
index 0000000..5481c07
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ko.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ko', {
+ fontSize: {
+ label: 'ê¸ì í¬ê¸°',
+ voiceLabel: 'Font Size',
+ panelTitle: 'ê¸ì í¬ê¸°'
+ },
+ label: 'í°í¸',
+ panelTitle: 'í°í¸',
+ voiceLabel: 'í°í¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ku.js b/devel/third-party/ckeditor/plugins/font/lang/ku.js
new file mode 100644
index 0000000..0cf3b80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ku.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ku', {
+ fontSize: {
+ label: 'Ú¯ÙÙØ±ÙÛÛ',
+ voiceLabel: 'Ú¯ÙÙØ±ÙÛÛ ÙÛÙØª',
+ panelTitle: 'Ú¯ÙÙØ±ÙÛÛ ÙÛÙØª'
+ },
+ label: 'ÙÛÙØª',
+ panelTitle: 'ÙØ§ÙÛ ÙÛÙØª',
+ voiceLabel: 'ÙÛÙØª'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/lt.js b/devel/third-party/ckeditor/plugins/font/lang/lt.js
new file mode 100644
index 0000000..f08619f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/lt.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'lt', {
+ fontSize: {
+ label: 'Å rifto dydis',
+ voiceLabel: 'Å rifto dydis',
+ panelTitle: 'Å rifto dydis'
+ },
+ label: 'Å riftas',
+ panelTitle: 'Å riftas',
+ voiceLabel: 'Å riftas'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/lv.js b/devel/third-party/ckeditor/plugins/font/lang/lv.js
new file mode 100644
index 0000000..2cef419
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/lv.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'lv', {
+ fontSize: {
+ label: 'IzmÄrs',
+ voiceLabel: 'Fonta izmeÅs',
+ panelTitle: 'IzmÄrs'
+ },
+ label: 'Å rifts',
+ panelTitle: 'Å rifts',
+ voiceLabel: 'Fonts'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/mk.js b/devel/third-party/ckeditor/plugins/font/lang/mk.js
new file mode 100644
index 0000000..875867c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/mk.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'mk', {
+ fontSize: {
+ label: 'Size',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Font Size'
+ },
+ label: 'Font', // MISSING
+ panelTitle: 'Font Name', // MISSING
+ voiceLabel: 'Font' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/mn.js b/devel/third-party/ckeditor/plugins/font/lang/mn.js
new file mode 100644
index 0000000..fe75e76
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/mn.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'mn', {
+ fontSize: {
+ label: 'Ð¥ÑмжÑÑ',
+ voiceLabel: 'Ò®Ñгийн Ñ
ÑмжÑÑ',
+ panelTitle: 'Ò®Ñгийн Ñ
ÑмжÑÑ'
+ },
+ label: 'Ò®Ñгийн Ñ
ÑлбÑÑ',
+ panelTitle: 'ҮгÑийн Ñ
ÑлбÑÑийн нÑÑ',
+ voiceLabel: 'ҮгÑийн Ñ
ÑлбÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ms.js b/devel/third-party/ckeditor/plugins/font/lang/ms.js
new file mode 100644
index 0000000..e5db675
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ms.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ms', {
+ fontSize: {
+ label: 'Saiz',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Saiz'
+ },
+ label: 'Font',
+ panelTitle: 'Font',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/nb.js b/devel/third-party/ckeditor/plugins/font/lang/nb.js
new file mode 100644
index 0000000..8b638da
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/nb.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'nb', {
+ fontSize: {
+ label: 'Størrelse',
+ voiceLabel: 'Font Størrelse',
+ panelTitle: 'Størrelse'
+ },
+ label: 'Skrift',
+ panelTitle: 'Skrift',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/nl.js b/devel/third-party/ckeditor/plugins/font/lang/nl.js
new file mode 100644
index 0000000..d17d609
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/nl.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'nl', {
+ fontSize: {
+ label: 'Lettergrootte',
+ voiceLabel: 'Lettergrootte',
+ panelTitle: 'Lettergrootte'
+ },
+ label: 'Lettertype',
+ panelTitle: 'Lettertype',
+ voiceLabel: 'Lettertype'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/no.js b/devel/third-party/ckeditor/plugins/font/lang/no.js
new file mode 100644
index 0000000..d492bd3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/no.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'no', {
+ fontSize: {
+ label: 'Størrelse',
+ voiceLabel: 'Font Størrelse',
+ panelTitle: 'Størrelse'
+ },
+ label: 'Skrift',
+ panelTitle: 'Skrift',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/pl.js b/devel/third-party/ckeditor/plugins/font/lang/pl.js
new file mode 100644
index 0000000..4fbe642
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/pl.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'pl', {
+ fontSize: {
+ label: 'Rozmiar',
+ voiceLabel: 'Rozmiar czcionki',
+ panelTitle: 'Rozmiar'
+ },
+ label: 'Czcionka',
+ panelTitle: 'Czcionka',
+ voiceLabel: 'Czcionka'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/pt-br.js b/devel/third-party/ckeditor/plugins/font/lang/pt-br.js
new file mode 100644
index 0000000..8f5f7f7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/pt-br.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'pt-br', {
+ fontSize: {
+ label: 'Tamanho',
+ voiceLabel: 'Tamanho da fonte',
+ panelTitle: 'Tamanho'
+ },
+ label: 'Fonte',
+ panelTitle: 'Fonte',
+ voiceLabel: 'Fonte'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/pt.js b/devel/third-party/ckeditor/plugins/font/lang/pt.js
new file mode 100644
index 0000000..52256e3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/pt.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'pt', {
+ fontSize: {
+ label: 'Tamanho',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Tamanho'
+ },
+ label: 'Tipo de Letra',
+ panelTitle: 'Tipo de Letra',
+ voiceLabel: 'Tipo de Letra'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ro.js b/devel/third-party/ckeditor/plugins/font/lang/ro.js
new file mode 100644
index 0000000..3565262
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ro.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ro', {
+ fontSize: {
+ label: 'MÄrime',
+ voiceLabel: 'Font Size',
+ panelTitle: 'MÄrime'
+ },
+ label: 'Font',
+ panelTitle: 'Font',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ru.js b/devel/third-party/ckeditor/plugins/font/lang/ru.js
new file mode 100644
index 0000000..88b602ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ru.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ru', {
+ fontSize: {
+ label: 'РазмеÑ',
+ voiceLabel: 'Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа',
+ panelTitle: 'Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа'
+ },
+ label: 'ШÑиÑÑ',
+ panelTitle: 'ШÑиÑÑ',
+ voiceLabel: 'ШÑиÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/sk.js b/devel/third-party/ckeditor/plugins/font/lang/sk.js
new file mode 100644
index 0000000..e6876fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/sk.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'sk', {
+ fontSize: {
+ label: 'Veľkosť',
+ voiceLabel: 'VeľkosÅ¥ pÃsma',
+ panelTitle: 'VeľkosÅ¥ pÃsma'
+ },
+ label: 'Font',
+ panelTitle: 'Názov fontu',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/sl.js b/devel/third-party/ckeditor/plugins/font/lang/sl.js
new file mode 100644
index 0000000..b5112bf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/sl.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'sl', {
+ fontSize: {
+ label: 'Velikost',
+ voiceLabel: 'Velikost',
+ panelTitle: 'Velikost'
+ },
+ label: 'Pisava',
+ panelTitle: 'Pisava',
+ voiceLabel: 'Pisava'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/font/lang/sr-latn.js
new file mode 100644
index 0000000..ca8a136
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/sr-latn.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'sr-latn', {
+ fontSize: {
+ label: 'VeliÄina fonta',
+ voiceLabel: 'Font Size',
+ panelTitle: 'VeliÄina fonta'
+ },
+ label: 'Font',
+ panelTitle: 'Font',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/sr.js b/devel/third-party/ckeditor/plugins/font/lang/sr.js
new file mode 100644
index 0000000..cfb2124
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/sr.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'sr', {
+ fontSize: {
+ label: 'ÐелиÑина ÑонÑа',
+ voiceLabel: 'Font Size',
+ panelTitle: 'ÐелиÑина ÑонÑа'
+ },
+ label: 'ФонÑ',
+ panelTitle: 'ФонÑ',
+ voiceLabel: 'ФонÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/sv.js b/devel/third-party/ckeditor/plugins/font/lang/sv.js
new file mode 100644
index 0000000..80cd5d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/sv.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'sv', {
+ fontSize: {
+ label: 'Storlek',
+ voiceLabel: 'Teckenstorlek',
+ panelTitle: 'Storlek'
+ },
+ label: 'Typsnitt',
+ panelTitle: 'Typsnitt',
+ voiceLabel: 'Typsnitt'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/th.js b/devel/third-party/ckeditor/plugins/font/lang/th.js
new file mode 100644
index 0000000..810bd8c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/th.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'th', {
+ fontSize: {
+ label: 'à¸à¸à¸²à¸',
+ voiceLabel: 'Font Size',
+ panelTitle: 'à¸à¸à¸²à¸'
+ },
+ label: 'à¹à¸à¸à¸à¸±à¸à¸©à¸£',
+ panelTitle: 'à¹à¸à¸à¸à¸±à¸à¸©à¸£',
+ voiceLabel: 'à¹à¸à¸à¸à¸±à¸à¸©à¸£'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/tr.js b/devel/third-party/ckeditor/plugins/font/lang/tr.js
new file mode 100644
index 0000000..176dffb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/tr.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'tr', {
+ fontSize: {
+ label: 'Boyut',
+ voiceLabel: 'Font Size',
+ panelTitle: 'Boyut'
+ },
+ label: 'Yazı Türü',
+ panelTitle: 'Yazı Türü',
+ voiceLabel: 'Font'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/ug.js b/devel/third-party/ckeditor/plugins/font/lang/ug.js
new file mode 100644
index 0000000..7c8d42d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/ug.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'ug', {
+ fontSize: {
+ label: 'ÚÙÚÙÛÙÙ',
+ voiceLabel: 'Ø®ÛØª ÚÙÚÙÛÙÙ',
+ panelTitle: 'ÚÙÚÙÛÙÙ'
+ },
+ label: 'Ø®ÛØª ÙÛØ³Ø®Ø§',
+ panelTitle: 'Ø®ÛØª ÙÛØ³Ø®Ø§',
+ voiceLabel: 'Ø®ÛØª ÙÛØ³Ø®Ø§'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/uk.js b/devel/third-party/ckeditor/plugins/font/lang/uk.js
new file mode 100644
index 0000000..203242d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/uk.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'uk', {
+ fontSize: {
+ label: 'РозмÑÑ',
+ voiceLabel: 'РозмÑÑ ÑÑиÑÑÑ',
+ panelTitle: 'РозмÑÑ'
+ },
+ label: 'ШÑиÑÑ',
+ panelTitle: 'ШÑиÑÑ',
+ voiceLabel: 'ШÑиÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/vi.js b/devel/third-party/ckeditor/plugins/font/lang/vi.js
new file mode 100644
index 0000000..62f432a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/vi.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'vi', {
+ fontSize: {
+ label: 'Cỡ chữ',
+ voiceLabel: 'KÃch cỡ phông',
+ panelTitle: 'Cỡ chữ'
+ },
+ label: 'Phông',
+ panelTitle: 'Phông',
+ voiceLabel: 'Phông'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/font/lang/zh-cn.js
new file mode 100644
index 0000000..95f42aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/zh-cn.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'zh-cn', {
+ fontSize: {
+ label: '大å°',
+ voiceLabel: 'æå大å°',
+ panelTitle: '大å°'
+ },
+ label: 'åä½',
+ panelTitle: 'åä½',
+ voiceLabel: 'åä½'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/lang/zh.js b/devel/third-party/ckeditor/plugins/font/lang/zh.js
new file mode 100644
index 0000000..7078164
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/font/lang/zh.js
@@ -0,0 +1,14 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'font', 'zh', {
+ fontSize: {
+ label: '大å°',
+ voiceLabel: 'æå大å°',
+ panelTitle: '大å°'
+ },
+ label: 'åé«',
+ panelTitle: 'åé«',
+ voiceLabel: 'åé«'
+});
diff --git a/devel/third-party/ckeditor/plugins/font/plugin.js b/devel/third-party/ckeditor/plugins/font/plugin.js
index 8dba467..84dce63 100644
--- a/devel/third-party/ckeditor/plugins/font/plugin.js
+++ b/devel/third-party/ckeditor/plugins/font/plugin.js
@@ -1,12 +1,10 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- function addCombo( editor, comboName, styleType, lang, entries, defaultLabel, styleDefinition )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ function addCombo( editor, comboName, styleType, lang, entries, defaultLabel, styleDefinition, order ) {
var config = editor.config;
// Gets the list of fonts from the settings.
@@ -15,12 +13,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Create style objects for all fonts.
var styles = {};
- for ( var i = 0 ; i < names.length ; i++ )
- {
+ for ( var i = 0; i < names.length; i++ ) {
var parts = names[ i ];
- if ( parts )
- {
+ if ( parts ) {
parts = parts.split( '/' );
var vars = {},
@@ -30,120 +26,104 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
styles[ name ] = new CKEDITOR.style( styleDefinition, vars );
styles[ name ]._.definition.name = name;
- }
- else
+ } else
names.splice( i--, 1 );
}
- editor.ui.addRichCombo( comboName,
- {
- label : lang.label,
- title : lang.panelTitle,
- className : 'cke_' + ( styleType == 'size' ? 'fontSize' : 'font' ),
- panel :
- {
- css : editor.skin.editor.css.concat( config.contentsCss ),
- multiSelect : false,
- attributes : { 'aria-label' : lang.panelTitle }
- },
-
- init : function()
- {
- this.startGroup( lang.panelTitle );
-
- for ( var i = 0 ; i < names.length ; i++ )
- {
- var name = names[ i ];
-
- // Add the tag entry to the panel list.
- this.add( name, styles[ name ].buildPreview(), name );
- }
- },
-
- onClick : function( value )
- {
- editor.focus();
- editor.fire( 'saveSnapshot' );
-
- var style = styles[ value ];
-
- if ( this.getValue() == value )
- style.remove( editor.document );
- else
- style.apply( editor.document );
-
- editor.fire( 'saveSnapshot' );
- },
-
- onRender : function()
- {
- editor.on( 'selectionChange', function( ev )
- {
- var currentValue = this.getValue();
-
- var elementPath = ev.data.path,
- elements = elementPath.elements;
-
- // For each element into the elements path.
- for ( var i = 0, element ; i < elements.length ; i++ )
- {
- element = elements[i];
-
- // Check if the element is removable by any of
- // the styles.
- for ( var value in styles )
- {
- if ( styles[ value ].checkElementRemovable( element, true ) )
- {
- if ( value != currentValue )
- this.setValue( value );
- return;
- }
- }
- }
+ editor.ui.addRichCombo( comboName, {
+ label: lang.label,
+ title: lang.panelTitle,
+ toolbar: 'styles,' + order,
- // If no styles match, just empty it.
- this.setValue( '', defaultLabel );
- },
- this);
+ panel: {
+ css: [ CKEDITOR.skin.getPath( 'editor' ) ].concat( config.contentsCss ),
+ multiSelect: false,
+ attributes: { 'aria-label': lang.panelTitle }
+ },
+
+ init: function() {
+ this.startGroup( lang.panelTitle );
+
+ for ( var i = 0; i < names.length; i++ ) {
+ var name = names[ i ];
+
+ // Add the tag entry to the panel list.
+ this.add( name, styles[ name ].buildPreview(), name );
}
- });
- }
+ },
+
+ onClick: function( value ) {
+ editor.focus();
+ editor.fire( 'saveSnapshot' );
+
+ var style = styles[ value ];
+
+ editor[ this.getValue() == value ? 'removeStyle' : 'applyStyle' ]( style );
+ editor.fire( 'saveSnapshot' );
+ },
+
+ onRender: function() {
+ editor.on( 'selectionChange', function( ev ) {
+ var currentValue = this.getValue();
+
+ var elementPath = ev.data.path,
+ elements = elementPath.elements;
+
+ // For each element into the elements path.
+ for ( var i = 0, element; i < elements.length; i++ ) {
+ element = elements[ i ];
+
+ // Check if the element is removable by any of
+ // the styles.
+ for ( var value in styles ) {
+ if ( styles[ value ].checkElementMatch( element, true ) ) {
+ if ( value != currentValue )
+ this.setValue( value );
+ return;
+ }
+ }
+ }
- CKEDITOR.plugins.add( 'font',
- {
- requires : [ 'richcombo', 'styles' ],
+ // If no styles match, just empty it.
+ this.setValue( '', defaultLabel );
+ }, this );
+ }
+ });
+ }
- init : function( editor )
- {
+ CKEDITOR.plugins.add( 'font', {
+ requires: 'richcombo',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
var config = editor.config;
- addCombo( editor, 'Font', 'family', editor.lang.font, config.font_names, config.font_defaultLabel, config.font_style );
- addCombo( editor, 'FontSize', 'size', editor.lang.fontSize, config.fontSize_sizes, config.fontSize_defaultLabel, config.fontSize_style );
+ addCombo( editor, 'Font', 'family', editor.lang.font, config.font_names, config.font_defaultLabel, config.font_style, 30 );
+ addCombo( editor, 'FontSize', 'size', editor.lang.font.fontSize, config.fontSize_sizes, config.fontSize_defaultLabel, config.fontSize_style, 40 );
}
});
})();
/**
* The list of fonts names to be displayed in the Font combo in the toolbar.
- * Entries are separated by semi-colons (;), while it's possible to have more
+ * Entries are separated by semi-colons (`';'`), while it's possible to have more
* than one font for each entry, in the HTML way (separated by comma).
*
* A display name may be optionally defined by prefixing the entries with the
- * name and the slash character. For example, "Arial/Arial, Helvetica, sans-serif"
- * will be displayed as "Arial" in the list, but will be outputted as
- * "Arial, Helvetica, sans-serif".
- * @type String
- * @example
- * config.font_names =
- * 'Arial/Arial, Helvetica, sans-serif;' +
- * 'Times New Roman/Times New Roman, Times, serif;' +
- * 'Verdana';
- * @example
- * config.font_names = 'Arial;Times New Roman;Verdana';
+ * name and the slash character. For example, `'Arial/Arial, Helvetica, sans-serif'`
+ * will be displayed as `'Arial'` in the list, but will be outputted as
+ * `'Arial, Helvetica, sans-serif'`.
+ *
+ * config.font_names =
+ * 'Arial/Arial, Helvetica, sans-serif;' +
+ * 'Times New Roman/Times New Roman, Times, serif;' +
+ * 'Verdana';
+ *
+ * config.font_names = 'Arial;Times New Roman;Verdana';
+ *
+ * @cfg {String} [font_names=see source]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.font_names =
- 'Arial/Arial, Helvetica, sans-serif;' +
+CKEDITOR.config.font_names = 'Arial/Arial, Helvetica, sans-serif;' +
'Comic Sans MS/Comic Sans MS, cursive;' +
'Courier New/Courier New, Courier, monospace;' +
'Georgia/Georgia, serif;' +
@@ -156,79 +136,87 @@ CKEDITOR.config.font_names =
/**
* The text to be displayed in the Font combo is none of the available values
* matches the current cursor position or text selection.
- * @type String
- * @example
- * // If the default site font is Arial, we may making it more explicit to the end user.
- * config.font_defaultLabel = 'Arial';
+ *
+ * // If the default site font is Arial, we may making it more explicit to the end user.
+ * config.font_defaultLabel = 'Arial';
+ *
+ * @cfg {String} [font_defaultLabel='']
+ * @member CKEDITOR.config
*/
CKEDITOR.config.font_defaultLabel = '';
/**
* The style definition to be used to apply the font in the text.
- * @type Object
- * @example
- * // This is actually the default value for it.
- * config.font_style =
- * {
- * element : 'span',
- * styles : { 'font-family' : '#(family)' },
- * overrides : [ { element : 'font', attributes : { 'face' : null } } ]
+ *
+ * // This is actually the default value for it.
+ * config.font_style = {
+ * element: 'span',
+ * styles: { 'font-family': '#(family)' },
+ * overrides: [ { element: 'font', attributes: { 'face': null } } ]
* };
+ *
+ * @cfg {Object} [font_style=see example]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.font_style =
- {
- element : 'span',
- styles : { 'font-family' : '#(family)' },
- overrides : [ { element : 'font', attributes : { 'face' : null } } ]
- };
+CKEDITOR.config.font_style = {
+ element: 'span',
+ styles: { 'font-family': '#(family)' },
+ overrides: [ {
+ element: 'font', attributes: { 'face': null }
+ }]
+};
/**
* The list of fonts size to be displayed in the Font Size combo in the
- * toolbar. Entries are separated by semi-colons (;).
+ * toolbar. Entries are separated by semi-colons (`';'`).
*
- * Any kind of "CSS like" size can be used, like "12px", "2.3em", "130%",
- * "larger" or "x-small".
+ * Any kind of "CSS like" size can be used, like `'12px'`, `'2.3em'`, `'130%'`,
+ * `'larger'` or `'x-small'`.
*
* A display name may be optionally defined by prefixing the entries with the
- * name and the slash character. For example, "Bigger Font/14px" will be
- * displayed as "Bigger Font" in the list, but will be outputted as "14px".
- * @type String
- * @default '8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px'
- * @example
- * config.fontSize_sizes = '16/16px;24/24px;48/48px;';
- * @example
- * config.fontSize_sizes = '12px;2.3em;130%;larger;x-small';
- * @example
- * config.fontSize_sizes = '12 Pixels/12px;Big/2.3em;30 Percent More/130%;Bigger/larger;Very Small/x-small';
+ * name and the slash character. For example, `'Bigger Font/14px'` will be
+ * displayed as `'Bigger Font'` in the list, but will be outputted as `'14px'`.
+ *
+ * config.fontSize_sizes = '16/16px;24/24px;48/48px;';
+ *
+ * config.fontSize_sizes = '12px;2.3em;130%;larger;x-small';
+ *
+ * config.fontSize_sizes = '12 Pixels/12px;Big/2.3em;30 Percent More/130%;Bigger/larger;Very Small/x-small';
+ *
+ * @cfg {String} [fontSize_sizes=see source]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.fontSize_sizes =
- '8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px';
+CKEDITOR.config.fontSize_sizes = '8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px';
/**
* The text to be displayed in the Font Size combo is none of the available
* values matches the current cursor position or text selection.
- * @type String
- * @example
- * // If the default site font size is 12px, we may making it more explicit to the end user.
- * config.fontSize_defaultLabel = '12px';
+ *
+ * // If the default site font size is 12px, we may making it more explicit to the end user.
+ * config.fontSize_defaultLabel = '12px';
+ *
+ * @cfg {String} [fontSize_defaultLabel='']
+ * @member CKEDITOR.config
*/
CKEDITOR.config.fontSize_defaultLabel = '';
/**
* The style definition to be used to apply the font size in the text.
- * @type Object
- * @example
- * // This is actually the default value for it.
- * config.fontSize_style =
- * {
- * element : 'span',
- * styles : { 'font-size' : '#(size)' },
- * overrides : [ { element : 'font', attributes : { 'size' : null } } ]
- * };
+ *
+ * // This is actually the default value for it.
+ * config.fontSize_style = {
+ * element: 'span',
+ * styles: { 'font-size': '#(size)' },
+ * overrides: [ { element :'font', attributes: { 'size': null } } ]
+ * };
+ *
+ * @cfg {Object} [fontSize_style=see example]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.fontSize_style =
- {
- element : 'span',
- styles : { 'font-size' : '#(size)' },
- overrides : [ { element : 'font', attributes : { 'size' : null } } ]
- };
+CKEDITOR.config.fontSize_style = {
+ element: 'span',
+ styles: { 'font-size': '#(size)' },
+ overrides: [ {
+ element: 'font', attributes: { 'size': null }
+ }]
+};
diff --git a/devel/third-party/ckeditor/plugins/format/lang/af.js b/devel/third-party/ckeditor/plugins/format/lang/af.js
new file mode 100644
index 0000000..b15cf9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/af.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'af', {
+ label: 'Opmaak',
+ panelTitle: 'Opmaak',
+ tag_address: 'Adres',
+ tag_div: 'Normaal (DIV)',
+ tag_h1: 'Opskrif 1',
+ tag_h2: 'Opskrif 2',
+ tag_h3: 'Opskrif 3',
+ tag_h4: 'Opskrif 4',
+ tag_h5: 'Opskrif 5',
+ tag_h6: 'Opskrif 6',
+ tag_p: 'Normaal',
+ tag_pre: 'Opgemaak'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ar.js b/devel/third-party/ckeditor/plugins/format/lang/ar.js
new file mode 100644
index 0000000..e2c3a34
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ar.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ar', {
+ label: 'ØªÙØ³ÙÙ',
+ panelTitle: 'ØªÙØ³Ù٠اÙÙÙØ±Ø©',
+ tag_address: 'عÙÙØ§Ù',
+ tag_div: 'عاد٠(DIV)',
+ tag_h1: 'Ø§ÙØ¹ÙÙØ§Ù 1',
+ tag_h2: 'Ø§ÙØ¹ÙÙØ§Ù 2',
+ tag_h3: 'Ø§ÙØ¹ÙÙØ§Ù 3',
+ tag_h4: 'Ø§ÙØ¹ÙÙØ§Ù 4',
+ tag_h5: 'Ø§ÙØ¹ÙÙØ§Ù 5',
+ tag_h6: 'Ø§ÙØ¹ÙÙØ§Ù 6',
+ tag_p: 'عادÙ',
+ tag_pre: 'Ù
ÙØ³ÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/bg.js b/devel/third-party/ckeditor/plugins/format/lang/bg.js
new file mode 100644
index 0000000..ed5e1f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/bg.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'bg', {
+ label: 'ФоÑмаÑ',
+ panelTitle: 'ФоÑмаÑ',
+ tag_address: 'ÐдÑеÑ',
+ tag_div: 'ÐаÑагÑÐ°Ñ (DIV)',
+ tag_h1: 'Ðаглавие 1',
+ tag_h2: 'Ðаглавие 2',
+ tag_h3: 'Ðаглавие 3',
+ tag_h4: 'Ðаглавие 4',
+ tag_h5: 'Ðаглавие 5',
+ tag_h6: 'Ðаглавие 6',
+ tag_p: 'ÐоÑмален',
+ tag_pre: 'ФоÑмаÑиÑан'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/bn.js b/devel/third-party/ckeditor/plugins/format/lang/bn.js
new file mode 100644
index 0000000..6001b08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/bn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'bn', {
+ label: 'ফনà§à¦ ফরমà§à¦',
+ panelTitle: 'ফনà§à¦ ফরমà§à¦',
+ tag_address: 'ঠিà¦à¦¾à¦¨à¦¾',
+ tag_div: 'শà§à¦°à§à¦·à¦ (DIV)',
+ tag_h1: 'শà§à¦°à§à¦·à¦ à§§',
+ tag_h2: 'শà§à¦°à§à¦·à¦ ২',
+ tag_h3: 'শà§à¦°à§à¦·à¦ à§©',
+ tag_h4: 'শà§à¦°à§à¦·à¦ ৪',
+ tag_h5: 'শà§à¦°à§à¦·à¦ à§«',
+ tag_h6: 'শà§à¦°à§à¦·à¦ ৬',
+ tag_p: 'সাধারণ',
+ tag_pre: 'ফরà§à¦®à§à¦à§à¦¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/bs.js b/devel/third-party/ckeditor/plugins/format/lang/bs.js
new file mode 100644
index 0000000..7defa12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/bs.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'bs', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)', // MISSING
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ca.js b/devel/third-party/ckeditor/plugins/format/lang/ca.js
new file mode 100644
index 0000000..f2ae95b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ca.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ca', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Adreça',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Encapçalament 1',
+ tag_h2: 'Encapçalament 2',
+ tag_h3: 'Encapçalament 3',
+ tag_h4: 'Encapçalament 4',
+ tag_h5: 'Encapçalament 5',
+ tag_h6: 'Encapçalament 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatejat'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/cs.js b/devel/third-party/ckeditor/plugins/format/lang/cs.js
new file mode 100644
index 0000000..906f907
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/cs.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'cs', {
+ label: 'Formát',
+ panelTitle: 'Formát',
+ tag_address: 'Adresa',
+ tag_div: 'Normálnà (DIV)',
+ tag_h1: 'Nadpis 1',
+ tag_h2: 'Nadpis 2',
+ tag_h3: 'Nadpis 3',
+ tag_h4: 'Nadpis 4',
+ tag_h5: 'Nadpis 5',
+ tag_h6: 'Nadpis 6',
+ tag_p: 'NormálnÃ',
+ tag_pre: 'Naformátováno'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/cy.js b/devel/third-party/ckeditor/plugins/format/lang/cy.js
new file mode 100644
index 0000000..40913e0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/cy.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'cy', {
+ label: 'Fformat',
+ panelTitle: 'Fformat Paragraff',
+ tag_address: 'Cyfeiriad',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Pennawd 1',
+ tag_h2: 'Pennawd 2',
+ tag_h3: 'Pennawd 3',
+ tag_h4: 'Pennawd 4',
+ tag_h5: 'Pennawd 5',
+ tag_h6: 'Pennawd 6',
+ tag_p: 'Normal',
+ tag_pre: 'Wedi\'i Fformatio'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/da.js b/devel/third-party/ckeditor/plugins/format/lang/da.js
new file mode 100644
index 0000000..e2b116d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/da.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'da', {
+ label: 'Formatering',
+ panelTitle: 'Formatering',
+ tag_address: 'Adresse',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Overskrift 1',
+ tag_h2: 'Overskrift 2',
+ tag_h3: 'Overskrift 3',
+ tag_h4: 'Overskrift 4',
+ tag_h5: 'Overskrift 5',
+ tag_h6: 'Overskrift 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formateret'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/de.js b/devel/third-party/ckeditor/plugins/format/lang/de.js
new file mode 100644
index 0000000..f62b84f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/de.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'de', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Addresse',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Ãberschrift 1',
+ tag_h2: 'Ãberschrift 2',
+ tag_h3: 'Ãberschrift 3',
+ tag_h4: 'Ãberschrift 4',
+ tag_h5: 'Ãberschrift 5',
+ tag_h6: 'Ãberschrift 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatiert'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/el.js b/devel/third-party/ckeditor/plugins/format/lang/el.js
new file mode 100644
index 0000000..8e063b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/el.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'el', {
+ label: 'ÎοÏÏοÏοίηÏη',
+ panelTitle: 'ÎοÏÏοÏοίηÏη ΠαÏαγÏάÏοÏ
',
+ tag_address: 'ÎιεÏθÏ
νÏη',
+ tag_div: 'ÎÎ±Î½Î¿Î½Î¹ÎºÏ (DIV)',
+ tag_h1: 'ÎÏικεÏαλίδα 1',
+ tag_h2: 'ÎÏικεÏαλίδα 2',
+ tag_h3: 'ÎÏικεÏαλίδα 3',
+ tag_h4: 'ÎÏικεÏαλίδα 4',
+ tag_h5: 'ÎÏικεÏαλίδα 5',
+ tag_h6: 'ÎÏικεÏαλίδα 6',
+ tag_p: 'ÎανονικÏ',
+ tag_pre: 'ÎοÏÏοÏοιημÎνο'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/en-au.js b/devel/third-party/ckeditor/plugins/format/lang/en-au.js
new file mode 100644
index 0000000..93b36c5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/en-au.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'en-au', {
+ label: 'Format',
+ panelTitle: 'Paragraph Format',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/en-ca.js b/devel/third-party/ckeditor/plugins/format/lang/en-ca.js
new file mode 100644
index 0000000..fa9bc01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/en-ca.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'en-ca', {
+ label: 'Format',
+ panelTitle: 'Paragraph Format',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/en-gb.js b/devel/third-party/ckeditor/plugins/format/lang/en-gb.js
new file mode 100644
index 0000000..4202b54
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/en-gb.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'en-gb', {
+ label: 'Format',
+ panelTitle: 'Paragraph Format',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/en.js b/devel/third-party/ckeditor/plugins/format/lang/en.js
new file mode 100644
index 0000000..b7b176d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/en.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'en', {
+ label: 'Format',
+ panelTitle: 'Paragraph Format',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/eo.js b/devel/third-party/ckeditor/plugins/format/lang/eo.js
new file mode 100644
index 0000000..9216cec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/eo.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'eo', {
+ label: 'Formato',
+ panelTitle: 'ParagrafFormato',
+ tag_address: 'Adreso',
+ tag_div: 'Normala (DIV)',
+ tag_h1: 'Titolo 1',
+ tag_h2: 'Titolo 2',
+ tag_h3: 'Titolo 3',
+ tag_h4: 'Titolo 4',
+ tag_h5: 'Titolo 5',
+ tag_h6: 'Titolo 6',
+ tag_p: 'Normala',
+ tag_pre: 'Formatita'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/es.js b/devel/third-party/ckeditor/plugins/format/lang/es.js
new file mode 100644
index 0000000..06d07d4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/es.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'es', {
+ label: 'Formato',
+ panelTitle: 'Formato',
+ tag_address: 'Dirección',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Encabezado 1',
+ tag_h2: 'Encabezado 2',
+ tag_h3: 'Encabezado 3',
+ tag_h4: 'Encabezado 4',
+ tag_h5: 'Encabezado 5',
+ tag_h6: 'Encabezado 6',
+ tag_p: 'Normal',
+ tag_pre: 'Con formato'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/et.js b/devel/third-party/ckeditor/plugins/format/lang/et.js
new file mode 100644
index 0000000..c85c2c5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/et.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'et', {
+ label: 'Vorming',
+ panelTitle: 'Vorming',
+ tag_address: 'Aadress',
+ tag_div: 'Tavaline (DIV)',
+ tag_h1: 'Pealkiri 1',
+ tag_h2: 'Pealkiri 2',
+ tag_h3: 'Pealkiri 3',
+ tag_h4: 'Pealkiri 4',
+ tag_h5: 'Pealkiri 5',
+ tag_h6: 'Pealkiri 6',
+ tag_p: 'Tavaline',
+ tag_pre: 'Vormindatud'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/eu.js b/devel/third-party/ckeditor/plugins/format/lang/eu.js
new file mode 100644
index 0000000..af4ac0c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/eu.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'eu', {
+ label: 'Formatua',
+ panelTitle: 'Formatua',
+ tag_address: 'Helbidea',
+ tag_div: 'Paragrafoa (DIV)',
+ tag_h1: 'Izenburua 1',
+ tag_h2: 'Izenburua 2',
+ tag_h3: 'Izenburua 3',
+ tag_h4: 'Izenburua 4',
+ tag_h5: 'Izenburua 5',
+ tag_h6: 'Izenburua 6',
+ tag_p: 'Arrunta',
+ tag_pre: 'Formateatua'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/fa.js b/devel/third-party/ckeditor/plugins/format/lang/fa.js
new file mode 100644
index 0000000..83f0cb1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/fa.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'fa', {
+ label: 'ÙØ±Ù
ت',
+ panelTitle: 'ÙØ±Ù
ت',
+ tag_address: 'آدرس',
+ tag_div: 'Ø¨ÙØ¯',
+ tag_h1: 'سرÙÙÛØ³ 1',
+ tag_h2: 'سرÙÙÛØ³ 2',
+ tag_h3: 'سرÙÙÛØ³ 3',
+ tag_h4: 'سرÙÙÛØ³ 4',
+ tag_h5: 'سرÙÙÛØ³ 5',
+ tag_h6: 'سرÙÙÛØ³ 6',
+ tag_p: 'ÙØ±Ù
اÙ',
+ tag_pre: 'ÙØ±Ù
ت شدÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/fi.js b/devel/third-party/ckeditor/plugins/format/lang/fi.js
new file mode 100644
index 0000000..68b375a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/fi.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'fi', {
+ label: 'Muotoilu',
+ panelTitle: 'Muotoilu',
+ tag_address: 'Osoite',
+ tag_div: 'Normaali (DIV)',
+ tag_h1: 'Otsikko 1',
+ tag_h2: 'Otsikko 2',
+ tag_h3: 'Otsikko 3',
+ tag_h4: 'Otsikko 4',
+ tag_h5: 'Otsikko 5',
+ tag_h6: 'Otsikko 6',
+ tag_p: 'Normaali',
+ tag_pre: 'Muotoiltu'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/fo.js b/devel/third-party/ckeditor/plugins/format/lang/fo.js
new file mode 100644
index 0000000..04b7fde
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/fo.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'fo', {
+ label: 'Skriftsnið',
+ panelTitle: 'Skriftsnið',
+ tag_address: 'Adressa',
+ tag_div: 'Vanligt (DIV)',
+ tag_h1: 'Yvirskrift 1',
+ tag_h2: 'Yvirskrift 2',
+ tag_h3: 'Yvirskrift 3',
+ tag_h4: 'Yvirskrift 4',
+ tag_h5: 'Yvirskrift 5',
+ tag_h6: 'Yvirskrift 6',
+ tag_p: 'Vanligt',
+ tag_pre: 'Sniðgivið'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/format/lang/fr-ca.js
new file mode 100644
index 0000000..1915a81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/fr-ca.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'fr-ca', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Adresse',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'En-tête 1',
+ tag_h2: 'En-tête 2',
+ tag_h3: 'En-tête 3',
+ tag_h4: 'En-tête 4',
+ tag_h5: 'En-tête 5',
+ tag_h6: 'En-tête 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formaté'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/fr.js b/devel/third-party/ckeditor/plugins/format/lang/fr.js
new file mode 100644
index 0000000..0f592d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/fr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'fr', {
+ label: 'Format',
+ panelTitle: 'Format de paragraphe',
+ tag_address: 'Adresse',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Titre 1',
+ tag_h2: 'Titre 2',
+ tag_h3: 'Titre 3',
+ tag_h4: 'Titre 4',
+ tag_h5: 'Titre 5',
+ tag_h6: 'Titre 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formaté'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/gl.js b/devel/third-party/ckeditor/plugins/format/lang/gl.js
new file mode 100644
index 0000000..62a8f14
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/gl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'gl', {
+ label: 'Formato',
+ panelTitle: 'Formato',
+ tag_address: 'Enderezo',
+ tag_div: 'Paragraph (DIV)',
+ tag_h1: 'Enacabezado 1',
+ tag_h2: 'Encabezado 2',
+ tag_h3: 'Encabezado 3',
+ tag_h4: 'Encabezado 4',
+ tag_h5: 'Encabezado 5',
+ tag_h6: 'Encabezado 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formateado'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/gu.js b/devel/third-party/ckeditor/plugins/format/lang/gu.js
new file mode 100644
index 0000000..e719b7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/gu.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'gu', {
+ label: 'ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«',
+ panelTitle: 'ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«',
+ tag_address: 'સરનામà«àª',
+ tag_div: 'શà«àª°à«àª·àª (DIV)',
+ tag_h1: 'શà«àª°à«àª·àª 1',
+ tag_h2: 'શà«àª°à«àª·àª 2',
+ tag_h3: 'શà«àª°à«àª·àª 3',
+ tag_h4: 'શà«àª°à«àª·àª 4',
+ tag_h5: 'શà«àª°à«àª·àª 5',
+ tag_h6: 'શà«àª°à«àª·àª 6',
+ tag_p: 'સામાનà«àª¯',
+ tag_pre: 'ફà«àª°à«àª®àªà«àª¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/he.js b/devel/third-party/ckeditor/plugins/format/lang/he.js
new file mode 100644
index 0000000..b4cc5b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/he.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'he', {
+ label: '×¢×צ××',
+ panelTitle: '×¢×צ××',
+ tag_address: '×ת××ת',
+ tag_div: '× ×ר××× (DIV)',
+ tag_h1: '××תרת',
+ tag_h2: '××תרת 2',
+ tag_h3: '××תרת 3',
+ tag_h4: '××תרת 4',
+ tag_h5: '××תרת 5',
+ tag_h6: '××תרת 6',
+ tag_p: '× ×ר×××',
+ tag_pre: '×§××'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/hi.js b/devel/third-party/ckeditor/plugins/format/lang/hi.js
new file mode 100644
index 0000000..5c6ecee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/hi.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'hi', {
+ label: 'à¥à¥à¤°à¥à¤®à¥à¤',
+ panelTitle: 'à¥à¥à¤°à¥à¤®à¥à¤',
+ tag_address: 'पता',
+ tag_div: 'शà¥à¤°à¥à¤·à¤ (DIV)',
+ tag_h1: 'शà¥à¤°à¥à¤·à¤ 1',
+ tag_h2: 'शà¥à¤°à¥à¤·à¤ 2',
+ tag_h3: 'शà¥à¤°à¥à¤·à¤ 3',
+ tag_h4: 'शà¥à¤°à¥à¤·à¤ 4',
+ tag_h5: 'शà¥à¤°à¥à¤·à¤ 5',
+ tag_h6: 'शà¥à¤°à¥à¤·à¤ 6',
+ tag_p: 'साधारण',
+ tag_pre: 'à¥à¥à¤°à¥à¤®à¥à¤à¥
ड'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/hr.js b/devel/third-party/ckeditor/plugins/format/lang/hr.js
new file mode 100644
index 0000000..af8032c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/hr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'hr', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatirano'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/hu.js b/devel/third-party/ckeditor/plugins/format/lang/hu.js
new file mode 100644
index 0000000..6cdb8bf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/hu.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'hu', {
+ label: 'Formátum',
+ panelTitle: 'Formátum',
+ tag_address: 'CÃmsor',
+ tag_div: 'Bekezdés (DIV)',
+ tag_h1: 'Fejléc 1',
+ tag_h2: 'Fejléc 2',
+ tag_h3: 'Fejléc 3',
+ tag_h4: 'Fejléc 4',
+ tag_h5: 'Fejléc 5',
+ tag_h6: 'Fejléc 6',
+ tag_p: 'Normál',
+ tag_pre: 'Formázott'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/is.js b/devel/third-party/ckeditor/plugins/format/lang/is.js
new file mode 100644
index 0000000..5749d01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/is.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'is', {
+ label: 'StÃlsnið',
+ panelTitle: 'StÃlsnið',
+ tag_address: 'Vistfang',
+ tag_div: 'Venjulegt (DIV)',
+ tag_h1: 'Fyrirsögn 1',
+ tag_h2: 'Fyrirsögn 2',
+ tag_h3: 'Fyrirsögn 3',
+ tag_h4: 'Fyrirsögn 4',
+ tag_h5: 'Fyrirsögn 5',
+ tag_h6: 'Fyrirsögn 6',
+ tag_p: 'Venjulegt letur',
+ tag_pre: 'Forsniðið'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/it.js b/devel/third-party/ckeditor/plugins/format/lang/it.js
new file mode 100644
index 0000000..f2d3d4d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/it.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'it', {
+ label: 'Formato',
+ panelTitle: 'Formato',
+ tag_address: 'Indirizzo',
+ tag_div: 'Paragrafo (DIV)',
+ tag_h1: 'Titolo 1',
+ tag_h2: 'Titolo 2',
+ tag_h3: 'Titolo 3',
+ tag_h4: 'Titolo 4',
+ tag_h5: 'Titolo 5',
+ tag_h6: 'Titolo 6',
+ tag_p: 'Normale',
+ tag_pre: 'Formattato'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ja.js b/devel/third-party/ckeditor/plugins/format/lang/ja.js
new file mode 100644
index 0000000..38b1ba4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ja.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ja', {
+ label: 'ãã©ã¼ããã',
+ panelTitle: 'ãã©ã¼ããã',
+ tag_address: 'ã¢ãã¬ã¹',
+ tag_div: 'æ¨æº (DIV)',
+ tag_h1: 'è¦åºã 1',
+ tag_h2: 'è¦åºã 2',
+ tag_h3: 'è¦åºã 3',
+ tag_h4: 'è¦åºã 4',
+ tag_h5: 'è¦åºã 5',
+ tag_h6: 'è¦åºã 6',
+ tag_p: 'æ¨æº',
+ tag_pre: 'æ¸å¼ä»ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ka.js b/devel/third-party/ckeditor/plugins/format/lang/ka.js
new file mode 100644
index 0000000..ee95d43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ka.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ka', {
+ label: 'á¤ááá ááá¢áá ááá',
+ panelTitle: 'á¤áá ááá¢áá ááá',
+ tag_address: 'ááá¡áááá áá',
+ tag_div: 'á©ááá£áááá ááá (DIV)',
+ tag_h1: 'á¡áááá£á á 1',
+ tag_h2: 'á¡áááá£á á 2',
+ tag_h3: 'á¡áááá£á á 3',
+ tag_h4: 'á¡áááá£á á 4',
+ tag_h5: 'á¡áááá£á á 5',
+ tag_h6: 'á¡áááá£á á 6',
+ tag_p: 'á©ááá£áááá ááá',
+ tag_pre: 'á¤áá ááá¢áá ááá£áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/km.js b/devel/third-party/ckeditor/plugins/format/lang/km.js
new file mode 100644
index 0000000..d26c43b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/km.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'km', {
+ label: 'áá
áá¶',
+ panelTitle: 'áá
áá¶',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ko.js b/devel/third-party/ckeditor/plugins/format/lang/ko.js
new file mode 100644
index 0000000..dfff409
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ko.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ko', {
+ label: 'í¬ë§·',
+ panelTitle: 'í¬ë§·',
+ tag_address: 'Address',
+ tag_div: 'Normal (DIV)', // MISSING
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ku.js b/devel/third-party/ckeditor/plugins/format/lang/ku.js
new file mode 100644
index 0000000..9cd8c13
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ku.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ku', {
+ label: 'ÚØ§Ø²Ø§ÙدÙÙÙÙ',
+ panelTitle: 'Ø¨ÙØ´Û ÚØ§Ø²Ø§ÙدÙÙÙÙ',
+ tag_address: 'ÙØ§ÙÙÛØ´Ø§Ù',
+ tag_div: '(DIV)-Û Ø¦Ø§Ø³Ø§ÛÛ',
+ tag_h1: 'Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¡',
+ tag_h2: 'Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¢',
+ tag_h3: 'Ø³ÙØ±ÙÙÙØ³ÙÛ Ù£',
+ tag_h4: 'Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¤',
+ tag_h5: 'Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¥',
+ tag_h6: 'Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¦',
+ tag_p: 'ئاساÛÛ',
+ tag_pre: 'Ø´ÛÙØ§Ø²Ú©Ø±Ø§Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/lt.js b/devel/third-party/ckeditor/plugins/format/lang/lt.js
new file mode 100644
index 0000000..acea4b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/lt.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'lt', {
+ label: 'Å rifto formatas',
+ panelTitle: 'Å rifto formatas',
+ tag_address: 'Kreipinio',
+ tag_div: 'Normalus (DIV)',
+ tag_h1: 'Antraštinis 1',
+ tag_h2: 'Antraštinis 2',
+ tag_h3: 'Antraštinis 3',
+ tag_h4: 'Antraštinis 4',
+ tag_h5: 'Antraštinis 5',
+ tag_h6: 'Antraštinis 6',
+ tag_p: 'Normalus',
+ tag_pre: 'Formuotas'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/lv.js b/devel/third-party/ckeditor/plugins/format/lang/lv.js
new file mode 100644
index 0000000..8ba2400
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/lv.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'lv', {
+ label: 'FormÄts',
+ panelTitle: 'FormÄts',
+ tag_address: 'Adrese',
+ tag_div: 'Rindkopa (DIV)',
+ tag_h1: 'Virsraksts 1',
+ tag_h2: 'Virsraksts 2',
+ tag_h3: 'Virsraksts 3',
+ tag_h4: 'Virsraksts 4',
+ tag_h5: 'Virsraksts 5',
+ tag_h6: 'Virsraksts 6',
+ tag_p: 'NormÄls teksts',
+ tag_pre: 'FormatÄts teksts'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/mk.js b/devel/third-party/ckeditor/plugins/format/lang/mk.js
new file mode 100644
index 0000000..bba40fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/mk.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'mk', {
+ label: 'Format', // MISSING
+ panelTitle: 'Paragraph Format', // MISSING
+ tag_address: 'Address', // MISSING
+ tag_div: 'Normal (DIV)', // MISSING
+ tag_h1: 'Heading 1', // MISSING
+ tag_h2: 'Heading 2', // MISSING
+ tag_h3: 'Heading 3', // MISSING
+ tag_h4: 'Heading 4', // MISSING
+ tag_h5: 'Heading 5', // MISSING
+ tag_h6: 'Heading 6', // MISSING
+ tag_p: 'Normal', // MISSING
+ tag_pre: 'Formatted' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/mn.js b/devel/third-party/ckeditor/plugins/format/lang/mn.js
new file mode 100644
index 0000000..2db2674
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/mn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'mn', {
+ label: 'ÐаÑаÑгаÑÑн загваÑ',
+ panelTitle: 'ÐаÑаÑгаÑÑн загваÑ',
+ tag_address: 'ХаÑг',
+ tag_div: 'Paragraph (DIV)',
+ tag_h1: 'ÐаÑÑиг 1',
+ tag_h2: 'ÐаÑÑиг 2',
+ tag_h3: 'ÐаÑÑиг 3',
+ tag_h4: 'ÐаÑÑиг 4',
+ tag_h5: 'ÐаÑÑиг 5',
+ tag_h6: 'ÐаÑÑиг 6',
+ tag_p: 'Ð¥Ñвийн',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ms.js b/devel/third-party/ckeditor/plugins/format/lang/ms.js
new file mode 100644
index 0000000..072cef9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ms.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ms', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Alamat',
+ tag_div: 'Perenggan (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Telah Diformat'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/nb.js b/devel/third-party/ckeditor/plugins/format/lang/nb.js
new file mode 100644
index 0000000..45e31ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/nb.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'nb', {
+ label: 'Format',
+ panelTitle: 'Avsnittsformat',
+ tag_address: 'Adresse',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Overskrift 1',
+ tag_h2: 'Overskrift 2',
+ tag_h3: 'Overskrift 3',
+ tag_h4: 'Overskrift 4',
+ tag_h5: 'Overskrift 5',
+ tag_h6: 'Overskrift 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatert'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/nl.js b/devel/third-party/ckeditor/plugins/format/lang/nl.js
new file mode 100644
index 0000000..bf37b09
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/nl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'nl', {
+ label: 'Opmaak',
+ panelTitle: 'Opmaak',
+ tag_address: 'Adres',
+ tag_div: 'Normaal (DIV)',
+ tag_h1: 'Kop 1',
+ tag_h2: 'Kop 2',
+ tag_h3: 'Kop 3',
+ tag_h4: 'Kop 4',
+ tag_h5: 'Kop 5',
+ tag_h6: 'Kop 6',
+ tag_p: 'Normaal',
+ tag_pre: 'Met opmaak'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/no.js b/devel/third-party/ckeditor/plugins/format/lang/no.js
new file mode 100644
index 0000000..7bc786c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/no.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'no', {
+ label: 'Format',
+ panelTitle: 'Avsnittsformat',
+ tag_address: 'Adresse',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Overskrift 1',
+ tag_h2: 'Overskrift 2',
+ tag_h3: 'Overskrift 3',
+ tag_h4: 'Overskrift 4',
+ tag_h5: 'Overskrift 5',
+ tag_h6: 'Overskrift 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatert'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/pl.js b/devel/third-party/ckeditor/plugins/format/lang/pl.js
new file mode 100644
index 0000000..aa31afc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/pl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'pl', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Adres',
+ tag_div: 'Normalny (DIV)',
+ tag_h1: 'NagÅówek 1',
+ tag_h2: 'NagÅówek 2',
+ tag_h3: 'NagÅówek 3',
+ tag_h4: 'NagÅówek 4',
+ tag_h5: 'NagÅówek 5',
+ tag_h6: 'NagÅówek 6',
+ tag_p: 'Normalny',
+ tag_pre: 'Tekst sformatowany'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/pt-br.js b/devel/third-party/ckeditor/plugins/format/lang/pt-br.js
new file mode 100644
index 0000000..72bb30a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/pt-br.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'pt-br', {
+ label: 'Formatação',
+ panelTitle: 'Formatação',
+ tag_address: 'Endereço',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'TÃtulo 1',
+ tag_h2: 'TÃtulo 2',
+ tag_h3: 'TÃtulo 3',
+ tag_h4: 'TÃtulo 4',
+ tag_h5: 'TÃtulo 5',
+ tag_h6: 'TÃtulo 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatado'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/pt.js b/devel/third-party/ckeditor/plugins/format/lang/pt.js
new file mode 100644
index 0000000..3077dfe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/pt.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'pt', {
+ label: 'Formato',
+ panelTitle: 'Formato',
+ tag_address: 'Endereço',
+ tag_div: 'Normal (DIV)', // MISSING
+ tag_h1: 'TÃtulo 1',
+ tag_h2: 'TÃtulo 2',
+ tag_h3: 'TÃtulo 3',
+ tag_h4: 'TÃtulo 4',
+ tag_h5: 'TÃtulo 5',
+ tag_h6: 'TÃtulo 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatado'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ro.js b/devel/third-party/ckeditor/plugins/format/lang/ro.js
new file mode 100644
index 0000000..4f069d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ro.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ro', {
+ label: 'Formatare',
+ panelTitle: 'Formatare',
+ tag_address: 'AdresÄ',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatat'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ru.js b/devel/third-party/ckeditor/plugins/format/lang/ru.js
new file mode 100644
index 0000000..4a67879
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ru.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ru', {
+ label: 'ФоÑмаÑиÑование',
+ panelTitle: 'ФоÑмаÑиÑование',
+ tag_address: 'ÐдÑеÑ',
+ tag_div: 'ÐбÑÑное (div)',
+ tag_h1: 'Ðаголовок 1',
+ tag_h2: 'Ðаголовок 2',
+ tag_h3: 'Ðаголовок 3',
+ tag_h4: 'Ðаголовок 4',
+ tag_h5: 'Ðаголовок 5',
+ tag_h6: 'Ðаголовок 6',
+ tag_p: 'ÐбÑÑное',
+ tag_pre: 'ÐоноÑиÑинное'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/sk.js b/devel/third-party/ckeditor/plugins/format/lang/sk.js
new file mode 100644
index 0000000..1f1b8ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/sk.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'sk', {
+ label: 'Formát',
+ panelTitle: 'Formát',
+ tag_address: 'Adresa',
+ tag_div: 'Normálny (DIV)',
+ tag_h1: 'Nadpis 1',
+ tag_h2: 'Nadpis 2',
+ tag_h3: 'Nadpis 3',
+ tag_h4: 'Nadpis 4',
+ tag_h5: 'Nadpis 5',
+ tag_h6: 'Nadpis 6',
+ tag_p: 'Normálny',
+ tag_pre: 'Formátovaný'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/sl.js b/devel/third-party/ckeditor/plugins/format/lang/sl.js
new file mode 100644
index 0000000..afc0593
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/sl.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'sl', {
+ label: 'Oblika',
+ panelTitle: 'Oblika',
+ tag_address: 'Napis',
+ tag_div: 'Navaden (DIV)',
+ tag_h1: 'Naslov 1',
+ tag_h2: 'Naslov 2',
+ tag_h3: 'Naslov 3',
+ tag_h4: 'Naslov 4',
+ tag_h5: 'Naslov 5',
+ tag_h6: 'Naslov 6',
+ tag_p: 'Navaden',
+ tag_pre: 'Oblikovan'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/format/lang/sr-latn.js
new file mode 100644
index 0000000..dfe1c7e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/sr-latn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'sr-latn', {
+ label: 'Format',
+ panelTitle: 'Format',
+ tag_address: 'Adresa',
+ tag_div: 'Normal (DIV)', // MISSING
+ tag_h1: 'Naslov 1',
+ tag_h2: 'Naslov 2',
+ tag_h3: 'Naslov 3',
+ tag_h4: 'Naslov 4',
+ tag_h5: 'Naslov 5',
+ tag_h6: 'Naslov 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatirano'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/sr.js b/devel/third-party/ckeditor/plugins/format/lang/sr.js
new file mode 100644
index 0000000..548edce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/sr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'sr', {
+ label: 'ФоÑмаÑ',
+ panelTitle: 'ФоÑмаÑ',
+ tag_address: 'Adresa',
+ tag_div: 'Normal (DIV)', // MISSING
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatirano'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/sv.js b/devel/third-party/ckeditor/plugins/format/lang/sv.js
new file mode 100644
index 0000000..8381f88
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/sv.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'sv', {
+ label: 'Teckenformat',
+ panelTitle: 'Teckenformat',
+ tag_address: 'Adress',
+ tag_div: 'Normal (DIV)',
+ tag_h1: 'Rubrik 1',
+ tag_h2: 'Rubrik 2',
+ tag_h3: 'Rubrik 3',
+ tag_h4: 'Rubrik 4',
+ tag_h5: 'Rubrik 5',
+ tag_h6: 'Rubrik 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formaterad'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/th.js b/devel/third-party/ckeditor/plugins/format/lang/th.js
new file mode 100644
index 0000000..1822895
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/th.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'th', {
+ label: 'รูà¸à¹à¸à¸',
+ panelTitle: 'รูà¸à¹à¸à¸',
+ tag_address: 'Address',
+ tag_div: 'Paragraph (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Normal',
+ tag_pre: 'Formatted'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/tr.js b/devel/third-party/ckeditor/plugins/format/lang/tr.js
new file mode 100644
index 0000000..ff10b94
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/tr.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'tr', {
+ label: 'Biçim',
+ panelTitle: 'Biçim',
+ tag_address: 'Adres',
+ tag_div: 'Paragraf (DIV)',
+ tag_h1: 'BaÅlık 1',
+ tag_h2: 'BaÅlık 2',
+ tag_h3: 'BaÅlık 3',
+ tag_h4: 'BaÅlık 4',
+ tag_h5: 'BaÅlık 5',
+ tag_h6: 'BaÅlık 6',
+ tag_p: 'Normal',
+ tag_pre: 'Biçimli'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/ug.js b/devel/third-party/ckeditor/plugins/format/lang/ug.js
new file mode 100644
index 0000000..91f610e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/ug.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'ug', {
+ label: 'Ù¾ÙÚÙÙ
',
+ panelTitle: 'Ù¾ÙÚÙÙ
',
+ tag_address: 'Ø¦Ø§Ø¯Ø±ÛØ³',
+ tag_div: 'ئابزاس (DIV)',
+ tag_h1: 'Ù
Ø§ÛØ²Û 1',
+ tag_h2: 'Ù
Ø§ÛØ²Û 2',
+ tag_h3: 'Ù
Ø§ÛØ²Û 3',
+ tag_h4: 'Ù
Ø§ÛØ²Û 4',
+ tag_h5: 'Ù
Ø§ÛØ²Û 5',
+ tag_h6: 'Ù
Ø§ÛØ²Û 6',
+ tag_p: 'Ø¦Ø§Ø¯ÛØªØªÙÙÙ',
+ tag_pre: 'ØªÙØ²ÙÙØºØ§Ù Ù¾ÙÚÙÙ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/uk.js b/devel/third-party/ckeditor/plugins/format/lang/uk.js
new file mode 100644
index 0000000..3dad7a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/uk.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'uk', {
+ label: 'ФоÑмаÑÑваннÑ',
+ panelTitle: 'ФоÑмаÑÑÐ²Ð°Ð½Ð½Ñ Ð¿Ð°ÑагÑаÑа',
+ tag_address: 'ÐдÑеÑа',
+ tag_div: 'ÐоÑмалÑний (div)',
+ tag_h1: 'Ðаголовок 1',
+ tag_h2: 'Ðаголовок 2',
+ tag_h3: 'Ðаголовок 3',
+ tag_h4: 'Ðаголовок 4',
+ tag_h5: 'Ðаголовок 5',
+ tag_h6: 'Ðаголовок 6',
+ tag_p: 'ÐоÑмалÑний',
+ tag_pre: 'ФоÑмаÑований'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/vi.js b/devel/third-party/ckeditor/plugins/format/lang/vi.js
new file mode 100644
index 0000000..07453e3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/vi.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'vi', {
+ label: 'Äá»nh dạng',
+ panelTitle: 'Äá»nh dạng',
+ tag_address: 'Address',
+ tag_div: 'Bình thưá»ng (DIV)',
+ tag_h1: 'Heading 1',
+ tag_h2: 'Heading 2',
+ tag_h3: 'Heading 3',
+ tag_h4: 'Heading 4',
+ tag_h5: 'Heading 5',
+ tag_h6: 'Heading 6',
+ tag_p: 'Bình thưá»ng (P)',
+ tag_pre: 'Äã thiết láºp'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/format/lang/zh-cn.js
new file mode 100644
index 0000000..962afc8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/zh-cn.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'zh-cn', {
+ label: 'æ ¼å¼',
+ panelTitle: 'æ ¼å¼',
+ tag_address: 'å°å',
+ tag_div: '段è½(DIV)',
+ tag_h1: 'æ é¢ 1',
+ tag_h2: 'æ é¢ 2',
+ tag_h3: 'æ é¢ 3',
+ tag_h4: 'æ é¢ 4',
+ tag_h5: 'æ é¢ 5',
+ tag_h6: 'æ é¢ 6',
+ tag_p: 'æ®é',
+ tag_pre: 'å·²ç¼ææ ¼å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/lang/zh.js b/devel/third-party/ckeditor/plugins/format/lang/zh.js
new file mode 100644
index 0000000..432580c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/format/lang/zh.js
@@ -0,0 +1,18 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'format', 'zh', {
+ label: 'æ ¼å¼',
+ panelTitle: 'æ ¼å¼',
+ tag_address: 'ä½å',
+ tag_div: 'ä¸è¬ (DIV)',
+ tag_h1: 'æ¨é¡ 1',
+ tag_h2: 'æ¨é¡ 2',
+ tag_h3: 'æ¨é¡ 3',
+ tag_h4: 'æ¨é¡ 4',
+ tag_h5: 'æ¨é¡ 5',
+ tag_h6: 'æ¨é¡ 6',
+ tag_p: 'ä¸è¬',
+ tag_pre: 'å·²æ ¼å¼å'
+});
diff --git a/devel/third-party/ckeditor/plugins/format/plugin.js b/devel/third-party/ckeditor/plugins/format/plugin.js
index bb0d997..06145ed 100644
--- a/devel/third-party/ckeditor/plugins/format/plugin.js
+++ b/devel/third-party/ckeditor/plugins/format/plugin.js
@@ -1,14 +1,15 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.plugins.add( 'format',
-{
- requires : [ 'richcombo', 'styles' ],
+CKEDITOR.plugins.add( 'format', {
+ requires: 'richcombo',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- init : function( editor )
- {
var config = editor.config,
lang = editor.lang.format;
@@ -17,76 +18,75 @@ CKEDITOR.plugins.add( 'format',
// Create style objects for all defined styles.
var styles = {};
- for ( var i = 0 ; i < tags.length ; i++ )
- {
+ for ( var i = 0; i < tags.length; i++ ) {
var tag = tags[ i ];
styles[ tag ] = new CKEDITOR.style( config[ 'format_' + tag ] );
styles[ tag ]._.enterMode = editor.config.enterMode;
}
- editor.ui.addRichCombo( 'Format',
- {
- label : lang.label,
- title : lang.panelTitle,
- className : 'cke_format',
- panel :
- {
- css : editor.skin.editor.css.concat( config.contentsCss ),
- multiSelect : false,
- attributes : { 'aria-label' : lang.panelTitle }
- },
-
- init : function()
- {
- this.startGroup( lang.panelTitle );
-
- for ( var tag in styles )
- {
- var label = lang[ 'tag_' + tag ];
-
- // Add the tag entry to the panel list.
- this.add( tag, '<' + tag + '>' + label + '</' + tag + '>', label );
- }
- },
+ editor.ui.addRichCombo( 'Format', {
+ label: lang.label,
+ title: lang.panelTitle,
+ toolbar: 'styles,20',
+
+ panel: {
+ css: [ CKEDITOR.skin.getPath( 'editor' ) ].concat( config.contentsCss ),
+ multiSelect: false,
+ attributes: { 'aria-label': lang.panelTitle }
+ },
+
+ init: function() {
+ this.startGroup( lang.panelTitle );
+
+ for ( var tag in styles ) {
+ var label = lang[ 'tag_' + tag ];
+
+ // Add the tag entry to the panel list.
+ this.add( tag, styles[ tag ].buildPreview( label ), label );
+ }
+ },
+
+ onClick: function( value ) {
+ editor.focus();
+ editor.fire( 'saveSnapshot' );
- onClick : function( value )
- {
- editor.focus();
+ var style = styles[ value ],
+ elementPath = editor.elementPath();
+
+ editor[ style.checkActive( elementPath ) ? 'removeStyle' : 'applyStyle' ]( style );
+
+ // Save the undo snapshot after all changes are affected. (#4899)
+ setTimeout( function() {
editor.fire( 'saveSnapshot' );
+ }, 0 );
+ },
+
+ onRender: function() {
+ editor.on( 'selectionChange', function( ev ) {
+
+ var currentTag = this.getValue(),
+ elementPath = ev.data.path,
+ isEnabled = !editor.readOnly && elementPath.isContextFor( 'p' );
- styles[ value ].apply( editor.document );
-
- // Save the undo snapshot after all changes are affected. (#4899)
- setTimeout( function()
- {
- editor.fire( 'saveSnapshot' );
- }, 0 );
- },
-
- onRender : function()
- {
- editor.on( 'selectionChange', function( ev )
- {
- var currentTag = this.getValue();
-
- var elementPath = ev.data.path;
-
- for ( var tag in styles )
- {
- if ( styles[ tag ].checkActive( elementPath ) )
- {
- if ( tag != currentTag )
- this.setValue( tag, editor.lang.format[ 'tag_' + tag ] );
- return;
- }
+ // Disable the command when selection path is "blockless".
+ this[ isEnabled ? 'enable' : 'disable' ]();
+
+ if ( isEnabled ) {
+
+ for ( var tag in styles ) {
+ if ( styles[ tag ].checkActive( elementPath ) ) {
+ if ( tag != currentTag )
+ this.setValue( tag, editor.lang.format[ 'tag_' + tag ] );
+ return;
}
+ }
- // If no styles match, just empty it.
- this.setValue( '' );
- },
- this);
- }
- });
+ // If no styles match, just empty it.
+ this.setValue( '' );
+ }
+ }, this );
+ }
+ });
}
});
@@ -94,101 +94,112 @@ CKEDITOR.plugins.add( 'format',
* A list of semi colon separated style names (by default tags) representing
* the style definition for each entry to be displayed in the Format combo in
* the toolbar. Each entry must have its relative definition configuration in a
- * setting named "format_(tagName)". For example, the "p" entry has its
- * definition taken from config.format_p.
- * @type String
- * @default 'p;h1;h2;h3;h4;h5;h6;pre;address;div'
- * @example
- * config.format_tags = 'p;h2;h3;pre'
+ * setting named `'format_(tagName)'`. For example, the `'p'` entry has its
+ * definition taken from `config.format_p`.
+ *
+ * config.format_tags = 'p;h2;h3;pre';
+ *
+ * @cfg {String} [format_tags='p;h1;h2;h3;h4;h5;h6;pre;address;div']
+ * @member CKEDITOR.config
*/
CKEDITOR.config.format_tags = 'p;h1;h2;h3;h4;h5;h6;pre;address;div';
/**
- * The style definition to be used to apply the "Normal" format.
- * @type Object
- * @default { element : 'p' }
- * @example
- * config.format_p = { element : 'p', attributes : { class : 'normalPara' } };
+ * The style definition to be used to apply the `'Normal'` format.
+ *
+ * config.format_p = { element : 'p', attributes : { 'class' : 'normalPara' } };
+ *
+ * @cfg {Object} [format_p={ element: 'p' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_p = { element : 'p' };
+CKEDITOR.config.format_p = { element: 'p' };
/**
- * The style definition to be used to apply the "Normal (DIV)" format.
- * @type Object
- * @default { element : 'div' }
- * @example
- * config.format_div = { element : 'div', attributes : { class : 'normalDiv' } };
+ * The style definition to be used to apply the `'Normal (DIV)'` format.
+ *
+ * config.format_div = { element : 'div', attributes : { 'class' : 'normalDiv' } };
+ *
+ * @cfg {Object} [format_div={ element: 'div' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_div = { element : 'div' };
+CKEDITOR.config.format_div = { element: 'div' };
/**
- * The style definition to be used to apply the "Formatted" format.
- * @type Object
- * @default { element : 'pre' }
- * @example
- * config.format_pre = { element : 'pre', attributes : { class : 'code' } };
+ * The style definition to be used to apply the `'Formatted'` format.
+ *
+ * config.format_pre = { element: 'pre', attributes: { 'class': 'code' } };
+ *
+ * @cfg {Object} [format_pre={ element: 'pre' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_pre = { element : 'pre' };
+CKEDITOR.config.format_pre = { element: 'pre' };
/**
- * The style definition to be used to apply the "Address" format.
- * @type Object
- * @default { element : 'address' }
- * @example
- * config.format_address = { element : 'address', attributes : { class : 'styledAddress' } };
+ * The style definition to be used to apply the `'Address'` format.
+ *
+ * config.format_address = { element: 'address', attributes: { 'class': 'styledAddress' } };
+ *
+ * @cfg {Object} [format_address={ element: 'address' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_address = { element : 'address' };
+CKEDITOR.config.format_address = { element: 'address' };
/**
- * The style definition to be used to apply the "Heading 1" format.
- * @type Object
- * @default { element : 'h1' }
- * @example
- * config.format_h1 = { element : 'h1', attributes : { class : 'contentTitle1' } };
+ * The style definition to be used to apply the ``'Heading 1'` format.
+ *
+ * config.format_h1 = { element: 'h1', attributes: { 'class': 'contentTitle1' } };
+ *
+ * @cfg {Object} [format_h1={ element: 'h1' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_h1 = { element : 'h1' };
+CKEDITOR.config.format_h1 = { element: 'h1' };
/**
- * The style definition to be used to apply the "Heading 1" format.
- * @type Object
- * @default { element : 'h2' }
- * @example
- * config.format_h2 = { element : 'h2', attributes : { class : 'contentTitle2' } };
+ * The style definition to be used to apply the `'Heading 1'` format.
+ *
+ * config.format_h2 = { element: 'h2', attributes: { 'class': 'contentTitle2' } };
+ *
+ * @cfg {Object} [format_h2={ element: 'h2' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_h2 = { element : 'h2' };
+CKEDITOR.config.format_h2 = { element: 'h2' };
/**
- * The style definition to be used to apply the "Heading 1" format.
- * @type Object
- * @default { element : 'h3' }
- * @example
- * config.format_h3 = { element : 'h3', attributes : { class : 'contentTitle3' } };
+ * The style definition to be used to apply the `'Heading 1'` format.
+ *
+ * config.format_h3 = { element: 'h3', attributes: { 'class': 'contentTitle3' } };
+ *
+ * @cfg {Object} [format_h3={ element: 'h3' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_h3 = { element : 'h3' };
+CKEDITOR.config.format_h3 = { element: 'h3' };
/**
- * The style definition to be used to apply the "Heading 1" format.
- * @type Object
- * @default { element : 'h4' }
- * @example
- * config.format_h4 = { element : 'h4', attributes : { class : 'contentTitle4' } };
+ * The style definition to be used to apply the `'Heading 1'` format.
+ *
+ * config.format_h4 = { element: 'h4', attributes: { 'class': 'contentTitle4' } };
+ *
+ * @cfg {Object} [format_h4={ element: 'h4' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_h4 = { element : 'h4' };
+CKEDITOR.config.format_h4 = { element: 'h4' };
/**
- * The style definition to be used to apply the "Heading 1" format.
- * @type Object
- * @default { element : 'h5' }
- * @example
- * config.format_h5 = { element : 'h5', attributes : { class : 'contentTitle5' } };
+ * The style definition to be used to apply the `'Heading 1'` format.
+ *
+ * config.format_h5 = { element: 'h5', attributes: { 'class': 'contentTitle5' } };
+ *
+ * @cfg {Object} [format_h5={ element: 'h5' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_h5 = { element : 'h5' };
+CKEDITOR.config.format_h5 = { element: 'h5' };
/**
- * The style definition to be used to apply the "Heading 1" format.
- * @type Object
- * @default { element : 'h6' }
- * @example
- * config.format_h6 = { element : 'h6', attributes : { class : 'contentTitle6' } };
+ * The style definition to be used to apply the `'Heading 1'` format.
+ *
+ * config.format_h6 = { element: 'h6', attributes: { 'class': 'contentTitle6' } };
+ *
+ * @cfg {Object} [format_h6={ element: 'h6' }]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.format_h6 = { element : 'h6' };
+CKEDITOR.config.format_h6 = { element: 'h6' };
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/button.js b/devel/third-party/ckeditor/plugins/forms/dialogs/button.js
index 86cb4d7..0abc6eb 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/button.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/button.js
@@ -1,135 +1,100 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'button', function( editor )
-{
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'button', function( editor ) {
+ function commitAttributes( element ) {
+ var val = this.getValue();
+ if ( val ) {
+ element.attributes[ this.id ] = val;
+ if ( this.id == 'name' )
+ element.attributes[ 'data-cke-saved-name' ] = val;
+ } else {
+ delete element.attributes[ this.id ];
+ if ( this.id == 'name' )
+ delete element.attributes[ 'data-cke-saved-name' ];
+ }
+ }
+
return {
- title : editor.lang.button.title,
- minWidth : 350,
- minHeight : 150,
- onShow : function()
- {
+ title: editor.lang.forms.button.title,
+ minWidth: 350,
+ minHeight: 150,
+ onShow: function() {
delete this.button;
var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getName() == "input" )
- {
+ if ( element && element.is( 'input' ) ) {
var type = element.getAttribute( 'type' );
- if ( type == "button" || type == "reset" || type == "submit" )
- {
+ if ( type in { button:1,reset:1,submit:1 } ) {
this.button = element;
this.setupContent( element );
}
}
},
- onOk : function()
- {
- var editor,
+ onOk: function() {
+ var editor = this.getParentEditor(),
element = this.button,
isInsertMode = !element;
- if ( isInsertMode )
- {
- editor = this.getParentEditor();
- element = editor.document.createElement( 'input' );
- }
+ var fake = element ? CKEDITOR.htmlParser.fragment.fromHtml( element.getOuterHtml() ).children[ 0 ] : new CKEDITOR.htmlParser.element( 'input' );
+ this.commitContent( fake );
+
+ var writer = new CKEDITOR.htmlParser.basicWriter();
+ fake.writeHtml( writer );
+ var newElement = CKEDITOR.dom.element.createFromHtml( writer.getHtml(), editor.document );
if ( isInsertMode )
- editor.insertElement( element );
- this.commitContent( { element : element } );
+ editor.insertElement( newElement );
+ else {
+ newElement.replace( element );
+ editor.getSelection().selectElement( newElement );
+ }
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.button.title,
- title : editor.lang.button.title,
- elements : [
- {
- id : '_cke_saved_name',
- type : 'text',
- label : editor.lang.common.name,
- 'default' : '',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( data )
- {
- var element = data.element;
-
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
- },
- {
- id : 'value',
- type : 'text',
- label : editor.lang.button.text,
- accessKey : 'V',
- 'default' : '',
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'value' ) || '' );
- },
- commit : function( data )
- {
- var element = data.element;
-
- if ( this.getValue() )
- element.setAttribute( 'value', this.getValue() );
- else
- element.removeAttribute( 'value' );
- }
- },
- {
- id : 'type',
- type : 'select',
- label : editor.lang.button.type,
- 'default' : 'button',
- accessKey : 'T',
- items :
- [
- [ editor.lang.button.typeBtn, 'button' ],
- [ editor.lang.button.typeSbm, 'submit' ],
- [ editor.lang.button.typeRst, 'reset' ]
- ],
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'type' ) || '' );
- },
- commit : function( data )
- {
- var element = data.element;
-
- if ( CKEDITOR.env.ie )
- {
- var elementType = element.getAttribute( 'type' );
- var currentType = this.getValue();
-
- if ( currentType != elementType )
- {
- var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + currentType +
- '"></input>', editor.document );
- element.copyAttributes( replace, { type : 1 } );
- replace.replace( element );
- editor.getSelection().selectElement( replace );
- data.element = replace;
- }
- }
- else
- element.setAttribute( 'type', this.getValue() );
- }
- }
- ]
+ id: 'info',
+ label: editor.lang.forms.button.title,
+ title: editor.lang.forms.button.title,
+ elements: [
+ {
+ id: 'name',
+ type: 'text',
+ label: editor.lang.common.name,
+ 'default': '',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ },
+ commit: commitAttributes
+ },
+ {
+ id: 'value',
+ type: 'text',
+ label: editor.lang.forms.button.text,
+ accessKey: 'V',
+ 'default': '',
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'value' ) || '' );
+ },
+ commit: commitAttributes
+ },
+ {
+ id: 'type',
+ type: 'select',
+ label: editor.lang.forms.button.type,
+ 'default': 'button',
+ accessKey: 'T',
+ items: [
+ [ editor.lang.forms.button.typeBtn, 'button' ],
+ [ editor.lang.forms.button.typeSbm, 'submit' ],
+ [ editor.lang.forms.button.typeRst, 'reset' ]
+ ],
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'type' ) || '' );
+ },
+ commit: commitAttributes
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/checkbox.js b/devel/third-party/ckeditor/plugins/forms/dialogs/checkbox.js
index 92bcddb..b24656a 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/checkbox.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/checkbox.js
@@ -1,155 +1,130 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'checkbox', function( editor )
-{
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'checkbox', function( editor ) {
return {
- title : editor.lang.checkboxAndRadio.checkboxTitle,
- minWidth : 350,
- minHeight : 140,
- onShow : function()
- {
+ title: editor.lang.forms.checkboxAndRadio.checkboxTitle,
+ minWidth: 350,
+ minHeight: 140,
+ onShow: function() {
delete this.checkbox;
var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getAttribute( 'type' ) == "checkbox" )
- {
+ if ( element && element.getAttribute( 'type' ) == 'checkbox' ) {
this.checkbox = element;
this.setupContent( element );
}
},
- onOk : function()
- {
+ onOk: function() {
var editor,
element = this.checkbox,
isInsertMode = !element;
- if ( isInsertMode )
- {
+ if ( isInsertMode ) {
editor = this.getParentEditor();
element = editor.document.createElement( 'input' );
element.setAttribute( 'type', 'checkbox' );
- }
-
- if ( isInsertMode )
editor.insertElement( element );
- this.commitContent( { element : element } );
+ }
+ this.commitContent({ element: element } );
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.checkboxAndRadio.checkboxTitle,
- title : editor.lang.checkboxAndRadio.checkboxTitle,
- startupFocus : 'txtName',
- elements : [
- {
- id : 'txtName',
- type : 'text',
- label : editor.lang.common.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( data )
- {
- var element = data.element;
+ id: 'info',
+ label: editor.lang.forms.checkboxAndRadio.checkboxTitle,
+ title: editor.lang.forms.checkboxAndRadio.checkboxTitle,
+ startupFocus: 'txtName',
+ elements: [
+ {
+ id: 'txtName',
+ type: 'text',
+ label: editor.lang.common.name,
+ 'default': '',
+ accessKey: 'N',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ },
+ commit: function( data ) {
+ var element = data.element;
- // IE failed to update 'name' property on input elements, protect it now.
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
- },
- {
- id : 'txtValue',
- type : 'text',
- label : editor.lang.checkboxAndRadio.value,
- 'default' : '',
- accessKey : 'V',
- setup : function( element )
- {
- var value = element.getAttribute( 'value' );
- // IE Return 'on' as default attr value.
- this.setValue( CKEDITOR.env.ie && value == 'on' ? '' : value );
- },
- commit : function( data )
- {
- var element = data.element,
- value = this.getValue();
+ // IE failed to update 'name' property on input elements, protect it now.
+ if ( this.getValue() )
+ element.data( 'cke-saved-name', this.getValue() );
+ else {
+ element.data( 'cke-saved-name', false );
+ element.removeAttribute( 'name' );
+ }
+ }
+ },
+ {
+ id: 'txtValue',
+ type: 'text',
+ label: editor.lang.forms.checkboxAndRadio.value,
+ 'default': '',
+ accessKey: 'V',
+ setup: function( element ) {
+ var value = element.getAttribute( 'value' );
+ // IE Return 'on' as default attr value.
+ this.setValue( CKEDITOR.env.ie && value == 'on' ? '' : value );
+ },
+ commit: function( data ) {
+ var element = data.element,
+ value = this.getValue();
- if ( value && !( CKEDITOR.env.ie && value == 'on' ) )
- element.setAttribute( 'value', value );
- else
- {
- if ( CKEDITOR.env.ie )
- {
- // Remove attribute 'value' of checkbox #4721.
- var checkbox = new CKEDITOR.dom.element( 'input', element.getDocument() );
- element.copyAttributes( checkbox, { value: 1 } );
- checkbox.replace( element );
- editor.getSelection().selectElement( checkbox );
- data.element = checkbox;
- }
- else
- element.removeAttribute( 'value' );
- }
- }
- },
- {
- id : 'cmbSelected',
- type : 'checkbox',
- label : editor.lang.checkboxAndRadio.selected,
- 'default' : '',
- accessKey : 'S',
- value : "checked",
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'checked' ) );
- },
- commit : function( data )
- {
- var element = data.element;
+ if ( value && !( CKEDITOR.env.ie && value == 'on' ) )
+ element.setAttribute( 'value', value );
+ else {
+ if ( CKEDITOR.env.ie ) {
+ // Remove attribute 'value' of checkbox (#4721).
+ var checkbox = new CKEDITOR.dom.element( 'input', element.getDocument() );
+ element.copyAttributes( checkbox, { value:1 } );
+ checkbox.replace( element );
+ editor.getSelection().selectElement( checkbox );
+ data.element = checkbox;
+ } else
+ element.removeAttribute( 'value' );
+ }
+ }
+ },
+ {
+ id: 'cmbSelected',
+ type: 'checkbox',
+ label: editor.lang.forms.checkboxAndRadio.selected,
+ 'default': '',
+ accessKey: 'S',
+ value: "checked",
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'checked' ) );
+ },
+ commit: function( data ) {
+ var element = data.element;
- if ( CKEDITOR.env.ie )
- {
- var isElementChecked = !!element.getAttribute( 'checked' );
- var isChecked = !!this.getValue();
+ if ( CKEDITOR.env.ie ) {
+ var isElementChecked = !!element.getAttribute( 'checked' ),
+ isChecked = !!this.getValue();
- if ( isElementChecked != isChecked )
- {
- var replace = CKEDITOR.dom.element.createFromHtml( '<input type="checkbox"'
- + ( isChecked ? ' checked="checked"' : '' )
- + '/>', editor.document );
+ if ( isElementChecked != isChecked ) {
+ var replace = CKEDITOR.dom.element.createFromHtml( '<input type="checkbox"' + ( isChecked ? ' checked="checked"' : '' )
+ + '/>', editor.document );
- element.copyAttributes( replace, { type : 1, checked : 1 } );
- replace.replace( element );
- editor.getSelection().selectElement( replace );
- data.element = replace;
- }
- }
- else
- {
- var value = this.getValue();
- if ( value )
- element.setAttribute( 'checked', 'checked' );
- else
- element.removeAttribute( 'checked' );
- }
+ element.copyAttributes( replace, { type:1,checked:1 } );
+ replace.replace( element );
+ editor.getSelection().selectElement( replace );
+ data.element = replace;
}
+ } else {
+ var value = this.getValue();
+ if ( value )
+ element.setAttribute( 'checked', 'checked' );
+ else
+ element.removeAttribute( 'checked' );
}
- ]
+ }
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/form.js b/devel/third-party/ckeditor/plugins/forms/dialogs/form.js
index 43c29c3..58bf9a3 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/form.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/form.js
@@ -1,177 +1,151 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'form', function( editor )
-{
- var autoAttributes =
- {
- action : 1,
- id : 1,
- method : 1,
- enctype : 1,
- target : 1
- };
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'form', function( editor ) {
+ var autoAttributes = { action:1,id:1,method:1,enctype:1,target:1 };
return {
- title : editor.lang.form.title,
- minWidth : 350,
- minHeight : 200,
- onShow : function()
- {
+ title: editor.lang.forms.form.title,
+ minWidth: 350,
+ minHeight: 200,
+ onShow: function() {
delete this.form;
- var element = this.getParentEditor().getSelection().getStartElement();
- var form = element && element.getAscendant( 'form', true );
- if ( form )
- {
+ var path = this.getParentEditor().elementPath(),
+ form = path.contains( 'form', 1 );
+
+ if ( form ) {
this.form = form;
this.setupContent( form );
}
},
- onOk : function()
- {
+ onOk: function() {
var editor,
element = this.form,
isInsertMode = !element;
- if ( isInsertMode )
- {
+ if ( isInsertMode ) {
editor = this.getParentEditor();
element = editor.document.createElement( 'form' );
- element.append( editor.document.createElement( 'br' ) );
+ !CKEDITOR.env.ie && element.append( editor.document.createElement( 'br' ) );
}
if ( isInsertMode )
editor.insertElement( element );
this.commitContent( element );
},
- onLoad : function()
- {
- function autoSetup( element )
- {
+ onLoad: function() {
+ function autoSetup( element ) {
this.setValue( element.getAttribute( this.id ) || '' );
}
- function autoCommit( element )
- {
+ function autoCommit( element ) {
if ( this.getValue() )
element.setAttribute( this.id, this.getValue() );
else
element.removeAttribute( this.id );
}
- this.foreach( function( contentObj )
- {
- if ( autoAttributes[ contentObj.id ] )
- {
- contentObj.setup = autoSetup;
- contentObj.commit = autoCommit;
- }
- } );
+ this.foreach( function( contentObj ) {
+ if ( autoAttributes[ contentObj.id ] ) {
+ contentObj.setup = autoSetup;
+ contentObj.commit = autoCommit;
+ }
+ });
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.form.title,
- title : editor.lang.form.title,
- elements : [
+ id: 'info',
+ label: editor.lang.forms.form.title,
+ title: editor.lang.forms.form.title,
+ elements: [
+ {
+ id: 'txtName',
+ type: 'text',
+ label: editor.lang.common.name,
+ 'default': '',
+ accessKey: 'N',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.data( 'cke-saved-name', this.getValue() );
+ else {
+ element.data( 'cke-saved-name', false );
+ element.removeAttribute( 'name' );
+ }
+ }
+ },
+ {
+ id: 'action',
+ type: 'text',
+ label: editor.lang.forms.form.action,
+ 'default': '',
+ accessKey: 'T'
+ },
+ {
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
{
- id : 'txtName',
- type : 'text',
- label : editor.lang.common.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue( element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
- },
+ id: 'id',
+ type: 'text',
+ label: editor.lang.common.id,
+ 'default': '',
+ accessKey: 'I'
+ },
{
- id : 'action',
- type : 'text',
- label : editor.lang.form.action,
- 'default' : '',
- accessKey : 'T'
- },
+ id: 'enctype',
+ type: 'select',
+ label: editor.lang.forms.form.encoding,
+ style: 'width:100%',
+ accessKey: 'E',
+ 'default': '',
+ items: [
+ [ '' ],
+ [ 'text/plain' ],
+ [ 'multipart/form-data' ],
+ [ 'application/x-www-form-urlencoded' ]
+ ]
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
{
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
- {
- id : 'id',
- type : 'text',
- label : editor.lang.common.id,
- 'default' : '',
- accessKey : 'I'
- },
- {
- id : 'enctype',
- type : 'select',
- label : editor.lang.form.encoding,
- style : 'width:100%',
- accessKey : 'E',
- 'default' : '',
- items :
- [
- [ '' ],
- [ 'text/plain' ],
- [ 'multipart/form-data' ],
- [ 'application/x-www-form-urlencoded' ]
- ]
- }
+ id: 'target',
+ type: 'select',
+ label: editor.lang.common.target,
+ style: 'width:100%',
+ accessKey: 'M',
+ 'default': '',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.common.targetNew, '_blank' ],
+ [ editor.lang.common.targetTop, '_top' ],
+ [ editor.lang.common.targetSelf, '_self' ],
+ [ editor.lang.common.targetParent, '_parent' ]
]
- },
+ },
{
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
- {
- id : 'target',
- type : 'select',
- label : editor.lang.common.target,
- style : 'width:100%',
- accessKey : 'M',
- 'default' : '',
- items :
- [
- [ editor.lang.common.notSet, '' ],
- [ editor.lang.common.targetNew, '_blank' ],
- [ editor.lang.common.targetTop, '_top' ],
- [ editor.lang.common.targetSelf, '_self' ],
- [ editor.lang.common.targetParent, '_parent' ]
- ]
- },
- {
- id : 'method',
- type : 'select',
- label : editor.lang.form.method,
- accessKey : 'M',
- 'default' : 'GET',
- items :
- [
- [ 'GET', 'get' ],
- [ 'POST', 'post' ]
- ]
- }
+ id: 'method',
+ type: 'select',
+ label: editor.lang.forms.form.method,
+ accessKey: 'M',
+ 'default': 'GET',
+ items: [
+ [ 'GET', 'get' ],
+ [ 'POST', 'post' ]
]
- }
+ }
]
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/hiddenfield.js b/devel/third-party/ckeditor/plugins/forms/dialogs/hiddenfield.js
index 4d823b1..601a088 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/hiddenfield.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/hiddenfield.js
@@ -1,98 +1,85 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'hiddenfield', function( editor )
-{
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'hiddenfield', function( editor ) {
return {
- title : editor.lang.hidden.title,
- hiddenField : null,
- minWidth : 350,
- minHeight : 110,
- onShow : function()
- {
+ title: editor.lang.forms.hidden.title,
+ hiddenField: null,
+ minWidth: 350,
+ minHeight: 110,
+ onShow: function() {
delete this.hiddenField;
var editor = this.getParentEditor(),
selection = editor.getSelection(),
element = selection.getSelectedElement();
- if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
- {
+ if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' ) {
this.hiddenField = element;
element = editor.restoreRealElement( this.hiddenField );
this.setupContent( element );
selection.selectElement( this.hiddenField );
}
},
- onOk : function()
- {
+ onOk: function() {
var name = this.getValueOf( 'info', '_cke_saved_name' ),
value = this.getValueOf( 'info', 'value' ),
editor = this.getParentEditor(),
- element = CKEDITOR.env.ie ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' );
+ element = CKEDITOR.env.ie && !( CKEDITOR.document.$.documentMode >= 8 ) ? editor.document.createElement( '<input name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) : editor.document.createElement( 'input' );
element.setAttribute( 'type', 'hidden' );
this.commitContent( element );
var fakeElement = editor.createFakeElement( element, 'cke_hidden', 'hiddenfield' );
if ( !this.hiddenField )
editor.insertElement( fakeElement );
- else
- {
+ else {
fakeElement.replace( this.hiddenField );
editor.getSelection().selectElement( fakeElement );
}
return true;
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.hidden.title,
- title : editor.lang.hidden.title,
- elements : [
- {
- id : '_cke_saved_name',
- type : 'text',
- label : editor.lang.hidden.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'name', this.getValue() );
- else
- {
- element.removeAttribute( 'name' );
- }
- }
- },
- {
- id : 'value',
- type : 'text',
- label : editor.lang.hidden.value,
- 'default' : '',
- accessKey : 'V',
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'value' ) || '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'value', this.getValue() );
- else
- element.removeAttribute( 'value' );
- }
+ id: 'info',
+ label: editor.lang.forms.hidden.title,
+ title: editor.lang.forms.hidden.title,
+ elements: [
+ {
+ id: '_cke_saved_name',
+ type: 'text',
+ label: editor.lang.forms.hidden.name,
+ 'default': '',
+ accessKey: 'N',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.setAttribute( 'name', this.getValue() );
+ else {
+ element.removeAttribute( 'name' );
}
- ]
+ }
+ },
+ {
+ id: 'value',
+ type: 'text',
+ label: editor.lang.forms.hidden.value,
+ 'default': '',
+ accessKey: 'V',
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'value' ) || '' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.setAttribute( 'value', this.getValue() );
+ else
+ element.removeAttribute( 'value' );
+ }
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/radio.js b/devel/third-party/ckeditor/plugins/forms/dialogs/radio.js
index a967388..ebdf951 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/radio.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/radio.js
@@ -1,32 +1,27 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'radio', function( editor )
-{
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'radio', function( editor ) {
return {
- title : editor.lang.checkboxAndRadio.radioTitle,
- minWidth : 350,
- minHeight : 140,
- onShow : function()
- {
+ title: editor.lang.forms.checkboxAndRadio.radioTitle,
+ minWidth: 350,
+ minHeight: 140,
+ onShow: function() {
delete this.radioButton;
var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getName() == "input" && element.getAttribute( 'type' ) == "radio" )
- {
+ if ( element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'radio' ) {
this.radioButton = element;
this.setupContent( element );
}
},
- onOk : function()
- {
+ onOk: function() {
var editor,
element = this.radioButton,
isInsertMode = !element;
- if ( isInsertMode )
- {
+ if ( isInsertMode ) {
editor = this.getParentEditor();
element = editor.document.createElement( 'input' );
element.setAttribute( 'type', 'radio' );
@@ -34,102 +29,87 @@ CKEDITOR.dialog.add( 'radio', function( editor )
if ( isInsertMode )
editor.insertElement( element );
- this.commitContent( { element : element } );
+ this.commitContent({ element: element } );
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.checkboxAndRadio.radioTitle,
- title : editor.lang.checkboxAndRadio.radioTitle,
- elements : [
- {
- id : 'name',
- type : 'text',
- label : editor.lang.common.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( data )
- {
- var element = data.element;
+ id: 'info',
+ label: editor.lang.forms.checkboxAndRadio.radioTitle,
+ title: editor.lang.forms.checkboxAndRadio.radioTitle,
+ elements: [
+ {
+ id: 'name',
+ type: 'text',
+ label: editor.lang.common.name,
+ 'default': '',
+ accessKey: 'N',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ },
+ commit: function( data ) {
+ var element = data.element;
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
- },
- {
- id : 'value',
- type : 'text',
- label : editor.lang.checkboxAndRadio.value,
- 'default' : '',
- accessKey : 'V',
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'value' ) || '' );
- },
- commit : function( data )
- {
- var element = data.element;
+ if ( this.getValue() )
+ element.data( 'cke-saved-name', this.getValue() );
+ else {
+ element.data( 'cke-saved-name', false );
+ element.removeAttribute( 'name' );
+ }
+ }
+ },
+ {
+ id: 'value',
+ type: 'text',
+ label: editor.lang.forms.checkboxAndRadio.value,
+ 'default': '',
+ accessKey: 'V',
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'value' ) || '' );
+ },
+ commit: function( data ) {
+ var element = data.element;
- if ( this.getValue() )
- element.setAttribute( 'value', this.getValue() );
- else
- element.removeAttribute( 'value' );
- }
- },
- {
- id : 'checked',
- type : 'checkbox',
- label : editor.lang.checkboxAndRadio.selected,
- 'default' : '',
- accessKey : 'S',
- value : "checked",
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'checked' ) );
- },
- commit : function( data )
- {
- var element = data.element;
+ if ( this.getValue() )
+ element.setAttribute( 'value', this.getValue() );
+ else
+ element.removeAttribute( 'value' );
+ }
+ },
+ {
+ id: 'checked',
+ type: 'checkbox',
+ label: editor.lang.forms.checkboxAndRadio.selected,
+ 'default': '',
+ accessKey: 'S',
+ value: "checked",
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'checked' ) );
+ },
+ commit: function( data ) {
+ var element = data.element;
- if ( !CKEDITOR.env.ie )
- {
- if ( this.getValue() )
- element.setAttribute( 'checked', 'checked' );
- else
- element.removeAttribute( 'checked' );
- }
- else
- {
- var isElementChecked = element.getAttribute( 'checked' );
- var isChecked = !!this.getValue();
+ if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera ) ) {
+ if ( this.getValue() )
+ element.setAttribute( 'checked', 'checked' );
+ else
+ element.removeAttribute( 'checked' );
+ } else {
+ var isElementChecked = element.getAttribute( 'checked' );
+ var isChecked = !!this.getValue();
- if ( isElementChecked != isChecked )
- {
- var replace = CKEDITOR.dom.element.createFromHtml( '<input type="radio"'
- + ( isChecked ? ' checked="checked"' : '' )
- + '></input>', editor.document );
- element.copyAttributes( replace, { type : 1, checked : 1 } );
- replace.replace( element );
- editor.getSelection().selectElement( replace );
- data.element = replace;
- }
- }
+ if ( isElementChecked != isChecked ) {
+ var replace = CKEDITOR.dom.element.createFromHtml( '<input type="radio"' + ( isChecked ? ' checked="checked"' : '' )
+ + '></input>', editor.document );
+ element.copyAttributes( replace, { type:1,checked:1 } );
+ replace.replace( element );
+ editor.getSelection().selectElement( replace );
+ data.element = replace;
}
}
- ]
+ }
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/select.js b/devel/third-party/ckeditor/plugins/forms/dialogs/select.js
index 7bd91e5..53aaf58 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/select.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/select.js
@@ -1,12 +1,10 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'select', function( editor )
-{
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'select', function( editor ) {
// Add a new option to a SELECT object (combo or list).
- function addOption( combo, optionText, optionValue, documentObject, index )
- {
+ function addOption( combo, optionText, optionValue, documentObject, index ) {
combo = getSelect( combo );
var oOption;
if ( documentObject )
@@ -14,19 +12,16 @@ CKEDITOR.dialog.add( 'select', function( editor )
else
oOption = document.createElement( "OPTION" );
- if ( combo && oOption && oOption.getName() == 'option' )
- {
+ if ( combo && oOption && oOption.getName() == 'option' ) {
if ( CKEDITOR.env.ie ) {
- if ( !isNaN( parseInt( index, 10) ) )
+ if ( !isNaN( parseInt( index, 10 ) ) )
combo.$.options.add( oOption.$, index );
else
combo.$.options.add( oOption.$ );
oOption.$.innerHTML = optionText.length > 0 ? optionText : '';
- oOption.$.value = optionValue;
- }
- else
- {
+ oOption.$.value = optionValue;
+ } else {
if ( index !== null && index < combo.getChildCount() )
combo.getChild( index < 0 ? 0 : index ).insertBeforeMe( oOption );
else
@@ -35,23 +30,20 @@ CKEDITOR.dialog.add( 'select', function( editor )
oOption.setText( optionText.length > 0 ? optionText : '' );
oOption.setValue( optionValue );
}
- }
- else
+ } else
return false;
return oOption;
}
// Remove all selected options from a SELECT object.
- function removeSelectedOptions( combo )
- {
+ function removeSelectedOptions( combo ) {
combo = getSelect( combo );
// Save the selected index
var iSelectedIndex = getSelectedIndex( combo );
// Remove all selected options.
- for ( var i = combo.getChildren().count() - 1 ; i >= 0 ; i-- )
- {
+ for ( var i = combo.getChildren().count() - 1; i >= 0; i-- ) {
if ( combo.getChild( i ).$.selected )
combo.getChild( i ).remove();
}
@@ -60,8 +52,7 @@ CKEDITOR.dialog.add( 'select', function( editor )
setSelectedIndex( combo, iSelectedIndex );
}
//Modify option from a SELECT object.
- function modifyOption( combo, index, title, value )
- {
+ function modifyOption( combo, index, title, value ) {
combo = getSelect( combo );
if ( index < 0 )
return false;
@@ -70,15 +61,15 @@ CKEDITOR.dialog.add( 'select', function( editor )
child.setValue( value );
return child;
}
- function removeAllOptions( combo )
- {
+
+ function removeAllOptions( combo ) {
combo = getSelect( combo );
- while ( combo.getChild( 0 ) && combo.getChild( 0 ).remove() )
- { /*jsl:pass*/ }
+ while ( combo.getChild( 0 ) && combo.getChild( 0 ).remove() ) {
+ /*jsl:pass*/
+ }
}
// Moves the selected option by a number of steps (also negative).
- function changeOptionPosition( combo, steps, documentObject )
- {
+ function changeOptionPosition( combo, steps, documentObject ) {
combo = getSelect( combo );
var iActualIndex = getSelectedIndex( combo );
if ( iActualIndex < 0 )
@@ -92,8 +83,8 @@ CKEDITOR.dialog.add( 'select', function( editor )
return false;
var oOption = combo.getChild( iActualIndex ),
- sText = oOption.getText(),
- sValue = oOption.getValue();
+ sText = oOption.getText(),
+ sValue = oOption.getValue();
oOption.remove();
@@ -101,13 +92,13 @@ CKEDITOR.dialog.add( 'select', function( editor )
setSelectedIndex( combo, iFinalIndex );
return oOption;
}
- function getSelectedIndex( combo )
- {
+
+ function getSelectedIndex( combo ) {
combo = getSelect( combo );
return combo ? combo.$.selectedIndex : -1;
}
- function setSelectedIndex( combo, index )
- {
+
+ function setSelectedIndex( combo, index ) {
combo = getSelect( combo );
if ( index < 0 )
return null;
@@ -115,42 +106,39 @@ CKEDITOR.dialog.add( 'select', function( editor )
combo.$.selectedIndex = ( index >= count ) ? ( count - 1 ) : index;
return combo;
}
- function getOptions( combo )
- {
+
+ function getOptions( combo ) {
combo = getSelect( combo );
return combo ? combo.getChildren() : false;
}
- function getSelect( obj )
- {
- if ( obj && obj.domId && obj.getInputElement().$ ) // Dialog element.
- return obj.getInputElement();
+
+ function getSelect( obj ) {
+ if ( obj && obj.domId && obj.getInputElement().$ ) // Dialog element.
+ return obj.getInputElement();
else if ( obj && obj.$ )
return obj;
return false;
}
return {
- title : editor.lang.select.title,
- minWidth : CKEDITOR.env.ie ? 460 : 395,
- minHeight : CKEDITOR.env.ie ? 320 : 300,
- onShow : function()
- {
+ title: editor.lang.forms.select.title,
+ minWidth: CKEDITOR.env.ie ? 460 : 395,
+ minHeight: CKEDITOR.env.ie ? 320 : 300,
+ onShow: function() {
delete this.selectBox;
this.setupContent( 'clear' );
var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getName() == "select" )
- {
+ if ( element && element.getName() == "select" ) {
this.selectBox = element;
this.setupContent( element.getName(), element );
// Load Options into dialog.
var objOptions = getOptions( element );
- for ( var i = 0 ; i < objOptions.count() ; i++ )
+ for ( var i = 0; i < objOptions.count(); i++ )
this.setupContent( 'option', objOptions.getItem( i ) );
}
},
- onOk : function()
- {
+ onOk: function() {
var editor = this.getParentEditor(),
element = this.selectBox,
isInsertMode = !element;
@@ -159,398 +147,357 @@ CKEDITOR.dialog.add( 'select', function( editor )
element = editor.document.createElement( 'select' );
this.commitContent( element );
- if ( isInsertMode )
- {
+ if ( isInsertMode ) {
editor.insertElement( element );
- if ( CKEDITOR.env.ie )
- {
+ if ( CKEDITOR.env.ie ) {
var sel = editor.getSelection(),
bms = sel.createBookmarks();
- setTimeout(function()
- {
+ setTimeout( function() {
sel.selectBookmarks( bms );
}, 0 );
}
}
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.select.selectInfo,
- title : editor.lang.select.selectInfo,
- accessKey : '',
- elements : [
+ id: 'info',
+ label: editor.lang.forms.select.selectInfo,
+ title: editor.lang.forms.select.selectInfo,
+ accessKey: '',
+ elements: [
+ {
+ id: 'txtName',
+ type: 'text',
+ widths: [ '25%', '75%' ],
+ labelLayout: 'horizontal',
+ label: editor.lang.common.name,
+ 'default': '',
+ accessKey: 'N',
+ style: 'width:350px',
+ setup: function( name, element ) {
+ if ( name == 'clear' )
+ this.setValue( this[ 'default' ] || '' );
+ else if ( name == 'select' ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ }
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.data( 'cke-saved-name', this.getValue() );
+ else {
+ element.data( 'cke-saved-name', false );
+ element.removeAttribute( 'name' );
+ }
+ }
+ },
+ {
+ id: 'txtValue',
+ type: 'text',
+ widths: [ '25%', '75%' ],
+ labelLayout: 'horizontal',
+ label: editor.lang.forms.select.value,
+ style: 'width:350px',
+ 'default': '',
+ className: 'cke_disabled',
+ onLoad: function() {
+ this.getInputElement().setAttribute( 'readOnly', true );
+ },
+ setup: function( name, element ) {
+ if ( name == 'clear' )
+ this.setValue( '' );
+ else if ( name == 'option' && element.getAttribute( 'selected' ) )
+ this.setValue( element.$.value );
+ }
+ },
+ {
+ type: 'hbox',
+ widths: [ '175px', '170px' ],
+ children: [
{
- id : 'txtName',
- type : 'text',
- widths : [ '25%','75%' ],
- labelLayout : 'horizontal',
- label : editor.lang.common.name,
- 'default' : '',
- accessKey : 'N',
- align : 'center',
- style : 'width:350px',
- setup : function( name, element )
+ id: 'txtSize',
+ type: 'text',
+ labelLayout: 'horizontal',
+ label: editor.lang.forms.select.size,
+ 'default': '',
+ accessKey: 'S',
+ style: 'width:175px',
+ validate: function() {
+ var func = CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed );
+ return ( ( this.getValue() === '' ) || func.apply( this ) );
+ },
+ setup: function( name, element ) {
+ if ( name == 'select' )
+ this.setValue( element.getAttribute( 'size' ) || '' );
+ if ( CKEDITOR.env.webkit )
+ this.getInputElement().setStyle( 'width', '86px' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.setAttribute( 'size', this.getValue() );
+ else
+ element.removeAttribute( 'size' );
+ }
+ },
+ {
+ type: 'html',
+ html: '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.forms.select.lines ) + '</span>'
+ }
+ ]
+ },
+ {
+ type: 'html',
+ html: '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.forms.select.opAvail ) + '</span>'
+ },
+ {
+ type: 'hbox',
+ widths: [ '115px', '115px', '100px' ],
+ children: [
+ {
+ type: 'vbox',
+ children: [
{
+ id: 'txtOptName',
+ type: 'text',
+ label: editor.lang.forms.select.opText,
+ style: 'width:115px',
+ setup: function( name, element ) {
if ( name == 'clear' )
- this.setValue( this['default'] || '' );
- else if ( name == 'select' )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- }
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' ) ;
- element.removeAttribute( 'name' );
- }
+ this.setValue( "" );
}
},
- {
- id : 'txtValue',
- type : 'text',
- widths : [ '25%','75%' ],
- labelLayout : 'horizontal',
- label : editor.lang.select.value,
- style : 'width:350px',
- 'default' : '',
- className : 'cke_disabled',
- onLoad : function()
{
- this.getInputElement().setAttribute( 'readOnly', true );
+ type: 'select',
+ id: 'cmbName',
+ label: '',
+ title: '',
+ size: 5,
+ style: 'width:115px;height:75px',
+ items: [],
+ onChange: function() {
+ var dialog = this.getDialog(),
+ values = dialog.getContentElement( 'info', 'cmbValue' ),
+ optName = dialog.getContentElement( 'info', 'txtOptName' ),
+ optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
+ iIndex = getSelectedIndex( this );
+
+ setSelectedIndex( values, iIndex );
+ optName.setValue( this.getValue() );
+ optValue.setValue( values.getValue() );
+ },
+ setup: function( name, element ) {
+ if ( name == 'clear' )
+ removeAllOptions( this );
+ else if ( name == 'option' )
+ addOption( this, element.getText(), element.getText(), this.getDialog().getParentEditor().document );
},
- setup : function( name, element )
+ commit: function( element ) {
+ var dialog = this.getDialog(),
+ optionsNames = getOptions( this ),
+ optionsValues = getOptions( dialog.getContentElement( 'info', 'cmbValue' ) ),
+ selectValue = dialog.getContentElement( 'info', 'txtValue' ).getValue();
+
+ removeAllOptions( element );
+
+ for ( var i = 0; i < optionsNames.count(); i++ ) {
+ var oOption = addOption( element, optionsNames.getItem( i ).getValue(), optionsValues.getItem( i ).getValue(), dialog.getParentEditor().document );
+ if ( optionsValues.getItem( i ).getValue() == selectValue ) {
+ oOption.setAttribute( 'selected', 'selected' );
+ oOption.selected = true;
+ }
+ }
+ }
+ }
+ ]
+ },
+ {
+ type: 'vbox',
+ children: [
{
+ id: 'txtOptValue',
+ type: 'text',
+ label: editor.lang.forms.select.opValue,
+ style: 'width:115px',
+ setup: function( name, element ) {
if ( name == 'clear' )
- this.setValue( '' );
- else if ( name == 'option' && element.getAttribute( 'selected' ) )
- this.setValue( element.$.value );
+ this.setValue( "" );
}
},
- {
- type : 'hbox',
- widths : [ '175px', '170px' ],
- align : 'center',
- children :
- [
- {
- id : 'txtSize',
- type : 'text',
- align : 'center',
- labelLayout : 'horizontal',
- label : editor.lang.select.size,
- 'default' : '',
- accessKey : 'S',
- style : 'width:175px',
- validate: function()
- {
- var func = CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed );
- return ( ( this.getValue() === '' ) || func.apply( this ) );
- },
- setup : function( name, element )
- {
- if ( name == 'select' )
- this.setValue( element.getAttribute( 'size' ) || '' );
- if ( CKEDITOR.env.webkit )
- this.getInputElement().setStyle( 'width', '86px' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'size', this.getValue() );
- else
- element.removeAttribute( 'size' );
- }
- },
- {
- type : 'html',
- html : '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.select.lines ) + '</span>'
+ {
+ type: 'select',
+ id: 'cmbValue',
+ label: '',
+ size: 5,
+ style: 'width:115px;height:75px',
+ items: [],
+ onChange: function() {
+ var dialog = this.getDialog(),
+ names = dialog.getContentElement( 'info', 'cmbName' ),
+ optName = dialog.getContentElement( 'info', 'txtOptName' ),
+ optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
+ iIndex = getSelectedIndex( this );
+
+ setSelectedIndex( names, iIndex );
+ optName.setValue( names.getValue() );
+ optValue.setValue( this.getValue() );
+ },
+ setup: function( name, element ) {
+ if ( name == 'clear' )
+ removeAllOptions( this );
+ else if ( name == 'option' ) {
+ var oValue = element.getValue();
+ addOption( this, oValue, oValue, this.getDialog().getParentEditor().document );
+ if ( element.getAttribute( 'selected' ) == 'selected' )
+ this.getDialog().getContentElement( 'info', 'txtValue' ).setValue( oValue );
}
- ]
- },
+ }
+ }
+ ]
+ },
{
- type : 'html',
- html : '<span>' + CKEDITOR.tools.htmlEncode( editor.lang.select.opAvail ) + '</span>'
+ type: 'vbox',
+ padding: 5,
+ children: [
+ {
+ type: 'button',
+ id: 'btnAdd',
+ style: '',
+ label: editor.lang.forms.select.btnAdd,
+ title: editor.lang.forms.select.btnAdd,
+ style: 'width:100%;',
+ onClick: function() {
+ //Add new option.
+ var dialog = this.getDialog(),
+ parentEditor = dialog.getParentEditor(),
+ optName = dialog.getContentElement( 'info', 'txtOptName' ),
+ optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
+ names = dialog.getContentElement( 'info', 'cmbName' ),
+ values = dialog.getContentElement( 'info', 'cmbValue' );
+
+ addOption( names, optName.getValue(), optName.getValue(), dialog.getParentEditor().document );
+ addOption( values, optValue.getValue(), optValue.getValue(), dialog.getParentEditor().document );
+
+ optName.setValue( "" );
+ optValue.setValue( "" );
+ }
},
- {
- type : 'hbox',
- widths : [ '115px', '115px' ,'100px' ],
- align : 'top',
- children :
- [
- {
- type : 'vbox',
- children :
- [
- {
- id : 'txtOptName',
- type : 'text',
- label : editor.lang.select.opText,
- style : 'width:115px',
- setup : function( name, element )
- {
- if ( name == 'clear' )
- this.setValue( "" );
- }
- },
- {
- type : 'select',
- id : 'cmbName',
- label : '',
- title : '',
- size : 5,
- style : 'width:115px;height:75px',
- items : [],
- onChange : function()
- {
- var dialog = this.getDialog(),
- values = dialog.getContentElement( 'info', 'cmbValue' ),
- optName = dialog.getContentElement( 'info', 'txtOptName' ),
- optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
- iIndex = getSelectedIndex( this );
-
- setSelectedIndex( values, iIndex );
- optName.setValue( this.getValue() );
- optValue.setValue( values.getValue() );
- },
- setup : function( name, element )
- {
- if ( name == 'clear' )
- removeAllOptions( this );
- else if ( name == 'option' )
- addOption( this, element.getText(), element.getText(),
- this.getDialog().getParentEditor().document );
- },
- commit : function( element )
- {
- var dialog = this.getDialog(),
- optionsNames = getOptions( this ),
- optionsValues = getOptions( dialog.getContentElement( 'info', 'cmbValue' ) ),
- selectValue = dialog.getContentElement( 'info', 'txtValue' ).getValue();
-
- removeAllOptions( element );
-
- for ( var i = 0 ; i < optionsNames.count() ; i++ )
- {
- var oOption = addOption( element, optionsNames.getItem( i ).getValue(),
- optionsValues.getItem( i ).getValue(), dialog.getParentEditor().document );
- if ( optionsValues.getItem( i ).getValue() == selectValue )
- {
- oOption.setAttribute( 'selected', 'selected' );
- oOption.selected = true;
- }
- }
- }
- }
- ]
- },
- {
- type : 'vbox',
- children :
- [
- {
- id : 'txtOptValue',
- type : 'text',
- label : editor.lang.select.opValue,
- style : 'width:115px',
- setup : function( name, element )
- {
- if ( name == 'clear' )
- this.setValue( "" );
- }
- },
- {
- type : 'select',
- id : 'cmbValue',
- label : '',
- size : 5,
- style : 'width:115px;height:75px',
- items : [],
- onChange : function()
- {
- var dialog = this.getDialog(),
- names = dialog.getContentElement( 'info', 'cmbName' ),
- optName = dialog.getContentElement( 'info', 'txtOptName' ),
- optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
- iIndex = getSelectedIndex( this );
-
- setSelectedIndex( names, iIndex );
- optName.setValue( names.getValue() );
- optValue.setValue( this.getValue() );
- },
- setup : function( name, element )
- {
- if ( name == 'clear' )
- removeAllOptions( this );
- else if ( name == 'option' )
- {
- var oValue = element.getValue();
- addOption( this, oValue, oValue,
- this.getDialog().getParentEditor().document );
- if ( element.getAttribute( 'selected' ) == 'selected' )
- this.getDialog().getContentElement( 'info', 'txtValue' ).setValue( oValue );
- }
- }
- }
- ]
- },
- {
- type : 'vbox',
- padding : 5,
- children :
- [
- {
- type : 'button',
- style : '',
- label : editor.lang.select.btnAdd,
- title : editor.lang.select.btnAdd,
- style : 'width:100%;',
- onClick : function()
- {
- //Add new option.
- var dialog = this.getDialog(),
- parentEditor = dialog.getParentEditor(),
- optName = dialog.getContentElement( 'info', 'txtOptName' ),
- optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
- names = dialog.getContentElement( 'info', 'cmbName' ),
- values = dialog.getContentElement( 'info', 'cmbValue' );
-
- addOption(names, optName.getValue(), optName.getValue(), dialog.getParentEditor().document );
- addOption(values, optValue.getValue(), optValue.getValue(), dialog.getParentEditor().document );
-
- optName.setValue( "" );
- optValue.setValue( "" );
- }
- },
- {
- type : 'button',
- label : editor.lang.select.btnModify,
- title : editor.lang.select.btnModify,
- style : 'width:100%;',
- onClick : function()
- {
- //Modify selected option.
- var dialog = this.getDialog(),
- optName = dialog.getContentElement( 'info', 'txtOptName' ),
- optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
- names = dialog.getContentElement( 'info', 'cmbName' ),
- values = dialog.getContentElement( 'info', 'cmbValue' ),
- iIndex = getSelectedIndex( names );
-
- if ( iIndex >= 0 )
- {
- modifyOption( names, iIndex, optName.getValue(), optName.getValue() );
- modifyOption( values, iIndex, optValue.getValue(), optValue.getValue() );
- }
- }
- },
- {
- type : 'button',
- style : 'width:100%;',
- label : editor.lang.select.btnUp,
- title : editor.lang.select.btnUp,
- onClick : function()
- {
- //Move up.
- var dialog = this.getDialog(),
- names = dialog.getContentElement( 'info', 'cmbName' ),
- values = dialog.getContentElement( 'info', 'cmbValue' );
-
- changeOptionPosition( names, -1, dialog.getParentEditor().document );
- changeOptionPosition( values, -1, dialog.getParentEditor().document );
- }
- },
- {
- type : 'button',
- style : 'width:100%;',
- label : editor.lang.select.btnDown,
- title : editor.lang.select.btnDown,
- onClick : function()
- {
- //Move down.
- var dialog = this.getDialog(),
- names = dialog.getContentElement( 'info', 'cmbName' ),
- values = dialog.getContentElement( 'info', 'cmbValue' );
-
- changeOptionPosition( names, 1, dialog.getParentEditor().document );
- changeOptionPosition( values, 1, dialog.getParentEditor().document );
- }
- }
- ]
+ {
+ type: 'button',
+ id: 'btnModify',
+ label: editor.lang.forms.select.btnModify,
+ title: editor.lang.forms.select.btnModify,
+ style: 'width:100%;',
+ onClick: function() {
+ //Modify selected option.
+ var dialog = this.getDialog(),
+ optName = dialog.getContentElement( 'info', 'txtOptName' ),
+ optValue = dialog.getContentElement( 'info', 'txtOptValue' ),
+ names = dialog.getContentElement( 'info', 'cmbName' ),
+ values = dialog.getContentElement( 'info', 'cmbValue' ),
+ iIndex = getSelectedIndex( names );
+
+ if ( iIndex >= 0 ) {
+ modifyOption( names, iIndex, optName.getValue(), optName.getValue() );
+ modifyOption( values, iIndex, optValue.getValue(), optValue.getValue() );
}
- ]
+ }
},
+ {
+ type: 'button',
+ id: 'btnUp',
+ style: 'width:100%;',
+ label: editor.lang.forms.select.btnUp,
+ title: editor.lang.forms.select.btnUp,
+ onClick: function() {
+ //Move up.
+ var dialog = this.getDialog(),
+ names = dialog.getContentElement( 'info', 'cmbName' ),
+ values = dialog.getContentElement( 'info', 'cmbValue' );
+
+ changeOptionPosition( names, -1, dialog.getParentEditor().document );
+ changeOptionPosition( values, -1, dialog.getParentEditor().document );
+ }
+ },
+ {
+ type: 'button',
+ id: 'btnDown',
+ style: 'width:100%;',
+ label: editor.lang.forms.select.btnDown,
+ title: editor.lang.forms.select.btnDown,
+ onClick: function() {
+ //Move down.
+ var dialog = this.getDialog(),
+ names = dialog.getContentElement( 'info', 'cmbName' ),
+ values = dialog.getContentElement( 'info', 'cmbValue' );
+
+ changeOptionPosition( names, 1, dialog.getParentEditor().document );
+ changeOptionPosition( values, 1, dialog.getParentEditor().document );
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '40%', '20%', '40%' ],
+ children: [
{
- type : 'hbox',
- widths : [ '40%', '20%', '40%' ],
- children :
- [
- {
- type : 'button',
- label : editor.lang.select.btnSetValue,
- title : editor.lang.select.btnSetValue,
- onClick : function()
- {
- //Set as default value.
- var dialog = this.getDialog(),
- values = dialog.getContentElement( 'info', 'cmbValue' ),
- txtValue = dialog.getContentElement( 'info', 'txtValue' );
- txtValue.setValue( values.getValue() );
- }
- },
- {
- type : 'button',
- label : editor.lang.select.btnDelete,
- title : editor.lang.select.btnDelete,
- onClick : function()
- {
- // Delete option.
- var dialog = this.getDialog(),
- names = dialog.getContentElement( 'info', 'cmbName' ),
- values = dialog.getContentElement( 'info', 'cmbValue' ),
- optName = dialog.getContentElement( 'info', 'txtOptName' ),
- optValue = dialog.getContentElement( 'info', 'txtOptValue' );
-
- removeSelectedOptions( names );
- removeSelectedOptions( values );
-
- optName.setValue( "" );
- optValue.setValue( "" );
- }
- },
- {
- id : 'chkMulti',
- type : 'checkbox',
- label : editor.lang.select.chkMulti,
- 'default' : '',
- accessKey : 'M',
- value : "checked",
- setup : function( name, element )
- {
- if ( name == 'select' )
- this.setValue( element.getAttribute( 'multiple' ) );
- if ( CKEDITOR.env.webkit )
- this.getElement().getParent().setStyle( 'vertical-align', 'middle' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'multiple', this.getValue() );
- else
- element.removeAttribute( 'multiple' );
- }
- }
- ]
+ type: 'button',
+ id: 'btnSetValue',
+ label: editor.lang.forms.select.btnSetValue,
+ title: editor.lang.forms.select.btnSetValue,
+ onClick: function() {
+ //Set as default value.
+ var dialog = this.getDialog(),
+ values = dialog.getContentElement( 'info', 'cmbValue' ),
+ txtValue = dialog.getContentElement( 'info', 'txtValue' );
+ txtValue.setValue( values.getValue() );
+ }
+ },
+ {
+ type: 'button',
+ id: 'btnDelete',
+ label: editor.lang.forms.select.btnDelete,
+ title: editor.lang.forms.select.btnDelete,
+ onClick: function() {
+ // Delete option.
+ var dialog = this.getDialog(),
+ names = dialog.getContentElement( 'info', 'cmbName' ),
+ values = dialog.getContentElement( 'info', 'cmbValue' ),
+ optName = dialog.getContentElement( 'info', 'txtOptName' ),
+ optValue = dialog.getContentElement( 'info', 'txtOptValue' );
+
+ removeSelectedOptions( names );
+ removeSelectedOptions( values );
+
+ optName.setValue( "" );
+ optValue.setValue( "" );
}
+ },
+ {
+ id: 'chkMulti',
+ type: 'checkbox',
+ label: editor.lang.forms.select.chkMulti,
+ 'default': '',
+ accessKey: 'M',
+ value: "checked",
+ setup: function( name, element ) {
+ if ( name == 'select' )
+ this.setValue( element.getAttribute( 'multiple' ) );
+ if ( CKEDITOR.env.webkit )
+ this.getElement().getParent().setStyle( 'vertical-align', 'middle' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.setAttribute( 'multiple', this.getValue() );
+ else
+ element.removeAttribute( 'multiple' );
+ }
+ }
]
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/textarea.js b/devel/third-party/ckeditor/plugins/forms/dialogs/textarea.js
index a8ba271..87eb2f3 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/textarea.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/textarea.js
@@ -1,32 +1,27 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'textarea', function( editor )
-{
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'textarea', function( editor ) {
return {
- title : editor.lang.textarea.title,
- minWidth : 350,
- minHeight : 150,
- onShow : function()
- {
+ title: editor.lang.forms.textarea.title,
+ minWidth: 350,
+ minHeight: 220,
+ onShow: function() {
delete this.textarea;
var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getName() == "textarea" )
- {
+ if ( element && element.getName() == "textarea" ) {
this.textarea = element;
this.setupContent( element );
}
},
- onOk : function()
- {
+ onOk: function() {
var editor,
element = this.textarea,
isInsertMode = !element;
- if ( isInsertMode )
- {
+ if ( isInsertMode ) {
editor = this.getParentEditor();
element = editor.document.createElement( 'textarea' );
}
@@ -35,80 +30,89 @@ CKEDITOR.dialog.add( 'textarea', function( editor )
if ( isInsertMode )
editor.insertElement( element );
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.textarea.title,
- title : editor.lang.textarea.title,
- elements : [
+ id: 'info',
+ label: editor.lang.forms.textarea.title,
+ title: editor.lang.forms.textarea.title,
+ elements: [
+ {
+ id: '_cke_saved_name',
+ type: 'text',
+ label: editor.lang.common.name,
+ 'default': '',
+ accessKey: 'N',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.data( 'cke-saved-name', this.getValue() );
+ else {
+ element.data( 'cke-saved-name', false );
+ element.removeAttribute( 'name' );
+ }
+ }
+ },
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
{
- id : '_cke_saved_name',
- type : 'text',
- label : editor.lang.common.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
+ id: 'cols',
+ type: 'text',
+ label: editor.lang.forms.textarea.cols,
+ 'default': '',
+ accessKey: 'C',
+ style: 'width:50px',
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
+ setup: function( element ) {
+ var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' );
+ this.setValue( value || '' );
},
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.setAttribute( 'cols', this.getValue() );
+ else
+ element.removeAttribute( 'cols' );
+ }
+ },
{
- id : 'cols',
- type : 'text',
- label : editor.lang.textarea.cols,
- 'default' : '',
- accessKey : 'C',
- style : 'width:50px',
- validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
- setup : function( element )
- {
- var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' );
- this.setValue( value || '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'cols', this.getValue() );
- else
- element.removeAttribute( 'cols' );
- }
+ id: 'rows',
+ type: 'text',
+ label: editor.lang.forms.textarea.rows,
+ 'default': '',
+ accessKey: 'R',
+ style: 'width:50px',
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
+ setup: function( element ) {
+ var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' );
+ this.setValue( value || '' );
},
- {
- id : 'rows',
- type : 'text',
- label : editor.lang.textarea.rows,
- 'default' : '',
- accessKey : 'R',
- style : 'width:50px',
- validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
- setup : function( element )
- {
- var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' );
- this.setValue( value || '' );
- },
- commit : function( element )
- {
- if ( this.getValue() )
- element.setAttribute( 'rows', this.getValue() );
- else
- element.removeAttribute( 'rows' );
- }
+ commit: function( element ) {
+ if ( this.getValue() )
+ element.setAttribute( 'rows', this.getValue() );
+ else
+ element.removeAttribute( 'rows' );
}
+ }
]
+ },
+ {
+ id: 'value',
+ type: 'textarea',
+ label: editor.lang.forms.textfield.value,
+ 'default': '',
+ setup: function( element ) {
+ this.setValue( element.$.defaultValue );
+ },
+ commit: function( element ) {
+ element.$.value = element.$.defaultValue = this.getValue();
+ }
}
+
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/dialogs/textfield.js b/devel/third-party/ckeditor/plugins/forms/dialogs/textfield.js
index a2a4d3d..e612f9f 100644
--- a/devel/third-party/ckeditor/plugins/forms/dialogs/textfield.js
+++ b/devel/third-party/ckeditor/plugins/forms/dialogs/textfield.js
@@ -1,199 +1,182 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-CKEDITOR.dialog.add( 'textfield', function( editor )
-{
- var autoAttributes =
- {
- value : 1,
- size : 1,
- maxLength : 1
- };
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+CKEDITOR.dialog.add( 'textfield', function( editor ) {
+ var autoAttributes = { value:1,size:1,maxLength:1 };
- var acceptedTypes =
- {
- text : 1,
- password : 1
- };
+ var acceptedTypes = { email:1,password:1,search:1,tel:1,text:1,url:1 };
+
+ function autoCommit( data ) {
+ var element = data.element;
+ var value = this.getValue();
+
+ value ? element.setAttribute( this.id, value ) : element.removeAttribute( this.id );
+ }
+
+ function autoSetup( element ) {
+ var value = element.hasAttribute( this.id ) && element.getAttribute( this.id );
+ this.setValue( value || '' );
+ }
return {
- title : editor.lang.textfield.title,
- minWidth : 350,
- minHeight : 150,
- onShow : function()
- {
+ title: editor.lang.forms.textfield.title,
+ minWidth: 350,
+ minHeight: 150,
+ onShow: function() {
delete this.textField;
var element = this.getParentEditor().getSelection().getSelectedElement();
- if ( element && element.getName() == "input" &&
- ( acceptedTypes[ element.getAttribute( 'type' ) ] || !element.getAttribute( 'type' ) ) )
- {
+ if ( element && element.getName() == "input" && ( acceptedTypes[ element.getAttribute( 'type' ) ] || !element.getAttribute( 'type' ) ) ) {
this.textField = element;
this.setupContent( element );
}
},
- onOk : function()
- {
- var editor,
+ onOk: function() {
+ var editor = this.getParentEditor(),
element = this.textField,
isInsertMode = !element;
- if ( isInsertMode )
- {
- editor = this.getParentEditor();
+ if ( isInsertMode ) {
element = editor.document.createElement( 'input' );
element.setAttribute( 'type', 'text' );
}
- if ( isInsertMode )
- editor.insertElement( element );
- this.commitContent( { element : element } );
- },
- onLoad : function()
- {
- var autoSetup = function( element )
- {
- var value = element.hasAttribute( this.id ) && element.getAttribute( this.id );
- this.setValue( value || '' );
- };
+ var data = { element: element };
- var autoCommit = function( data )
- {
- var element = data.element;
- var value = this.getValue();
+ if ( isInsertMode )
+ editor.insertElement( data.element );
- if ( value )
- element.setAttribute( this.id, value );
- else
- element.removeAttribute( this.id );
- };
+ this.commitContent( data );
- this.foreach( function( contentObj )
- {
- if ( autoAttributes[ contentObj.id ] )
- {
+ // Element might be replaced by commitment.
+ if ( !isInsertMode )
+ editor.getSelection().selectElement( data.element );
+ },
+ onLoad: function() {
+ this.foreach( function( contentObj ) {
+ if ( contentObj.getValue ) {
+ if ( !contentObj.setup )
contentObj.setup = autoSetup;
+ if ( !contentObj.commit )
contentObj.commit = autoCommit;
- }
- } );
+ }
+ });
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.textfield.title,
- title : editor.lang.textfield.title,
- elements : [
+ id: 'info',
+ label: editor.lang.forms.textfield.title,
+ title: editor.lang.forms.textfield.title,
+ elements: [
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
{
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- id : '_cke_saved_name',
- type : 'text',
- label : editor.lang.textfield.name,
- 'default' : '',
- accessKey : 'N',
- setup : function( element )
- {
- this.setValue(
- element.getAttribute( '_cke_saved_name' ) ||
- element.getAttribute( 'name' ) ||
- '' );
- },
- commit : function( data )
- {
- var element = data.element;
-
- if ( this.getValue() )
- element.setAttribute( '_cke_saved_name', this.getValue() );
- else
- {
- element.removeAttribute( '_cke_saved_name' );
- element.removeAttribute( 'name' );
- }
- }
- },
- {
- id : 'value',
- type : 'text',
- label : editor.lang.textfield.value,
- 'default' : '',
- accessKey : 'V'
- }
- ]
+ id: '_cke_saved_name',
+ type: 'text',
+ label: editor.lang.forms.textfield.name,
+ 'default': '',
+ accessKey: 'N',
+ setup: function( element ) {
+ this.setValue( element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '' );
},
- {
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- id : 'size',
- type : 'text',
- label : editor.lang.textfield.charWidth,
- 'default' : '',
- accessKey : 'C',
- style : 'width:50px',
- validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
- },
- {
- id : 'maxLength',
- type : 'text',
- label : editor.lang.textfield.maxChars,
- 'default' : '',
- accessKey : 'M',
- style : 'width:50px',
- validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
- }
- ],
- onLoad : function()
- {
- // Repaint the style for IE7 (#6068)
- if ( CKEDITOR.env.ie7Compat )
- this.getElement().setStyle( 'zoom', '100%' );
+ commit: function( data ) {
+ var element = data.element;
+
+ if ( this.getValue() )
+ element.data( 'cke-saved-name', this.getValue() );
+ else {
+ element.data( 'cke-saved-name', false );
+ element.removeAttribute( 'name' );
}
- },
+ }
+ },
{
- id : 'type',
- type : 'select',
- label : editor.lang.textfield.type,
- 'default' : 'text',
- accessKey : 'M',
- items :
- [
- [ editor.lang.textfield.typeText, 'text' ],
- [ editor.lang.textfield.typePass, 'password' ]
- ],
- setup : function( element )
- {
- this.setValue( element.getAttribute( 'type' ) );
- },
- commit : function( data )
- {
- var element = data.element;
+ id: 'value',
+ type: 'text',
+ label: editor.lang.forms.textfield.value,
+ 'default': '',
+ accessKey: 'V',
+ commit: function( data ) {
+ if ( CKEDITOR.env.ie && !this.getValue() ) {
+ var element = data.element,
+ fresh = new CKEDITOR.dom.element( 'input', editor.document );
+ element.copyAttributes( fresh, { value:1 } );
+ fresh.replace( element );
+ data.element = fresh;
+ } else
+ autoCommit.call( this, data );
+ }
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ id: 'size',
+ type: 'text',
+ label: editor.lang.forms.textfield.charWidth,
+ 'default': '',
+ accessKey: 'C',
+ style: 'width:50px',
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
+ },
+ {
+ id: 'maxLength',
+ type: 'text',
+ label: editor.lang.forms.textfield.maxChars,
+ 'default': '',
+ accessKey: 'M',
+ style: 'width:50px',
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed )
+ }
+ ],
+ onLoad: function() {
+ // Repaint the style for IE7 (#6068)
+ if ( CKEDITOR.env.ie7Compat )
+ this.getElement().setStyle( 'zoom', '100%' );
+ }
+ },
+ {
+ id: 'type',
+ type: 'select',
+ label: editor.lang.forms.textfield.type,
+ 'default': 'text',
+ accessKey: 'M',
+ items: [
+ [ editor.lang.forms.textfield.typeEmail, 'email' ],
+ [ editor.lang.forms.textfield.typePass, 'password' ],
+ [ editor.lang.forms.textfield.typeSearch, 'search' ],
+ [ editor.lang.forms.textfield.typeTel, 'tel' ],
+ [ editor.lang.forms.textfield.typeText, 'text' ],
+ [ editor.lang.forms.textfield.typeUrl, 'url' ]
+ ],
+ setup: function( element ) {
+ this.setValue( element.getAttribute( 'type' ) );
+ },
+ commit: function( data ) {
+ var element = data.element;
- if ( CKEDITOR.env.ie )
- {
- var elementType = element.getAttribute( 'type' );
- var myType = this.getValue();
+ if ( CKEDITOR.env.ie ) {
+ var elementType = element.getAttribute( 'type' );
+ var myType = this.getValue();
- if ( elementType != myType )
- {
- var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + myType + '"></input>', editor.document );
- element.copyAttributes( replace, { type : 1 } );
- replace.replace( element );
- editor.getSelection().selectElement( replace );
- data.element = replace;
- }
- }
- else
- element.setAttribute( 'type', this.getValue() );
+ if ( elementType != myType ) {
+ var replace = CKEDITOR.dom.element.createFromHtml( '<input type="' + myType + '"></input>', editor.document );
+ element.copyAttributes( replace, { type:1 } );
+ replace.replace( element );
+ data.element = replace;
}
- }
- ]
+ } else
+ element.setAttribute( 'type', this.getValue() );
+ }
}
+ ]
+ }
]
};
});
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/button.png b/devel/third-party/ckeditor/plugins/forms/icons/button.png
new file mode 100644
index 0000000..966df40
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/button.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/checkbox.png b/devel/third-party/ckeditor/plugins/forms/icons/checkbox.png
new file mode 100644
index 0000000..156a95b
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/checkbox.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/form.png b/devel/third-party/ckeditor/plugins/forms/icons/form.png
new file mode 100644
index 0000000..28149fb
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/form.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/hiddenfield.png b/devel/third-party/ckeditor/plugins/forms/icons/hiddenfield.png
new file mode 100644
index 0000000..3b9be1e
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/hiddenfield.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/imagebutton.png b/devel/third-party/ckeditor/plugins/forms/icons/imagebutton.png
new file mode 100644
index 0000000..cc8f825
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/imagebutton.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/radio.png b/devel/third-party/ckeditor/plugins/forms/icons/radio.png
new file mode 100644
index 0000000..01d5fc4
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/radio.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/select-rtl.png b/devel/third-party/ckeditor/plugins/forms/icons/select-rtl.png
new file mode 100644
index 0000000..93c824d
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/select-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/select.png b/devel/third-party/ckeditor/plugins/forms/icons/select.png
new file mode 100644
index 0000000..28dbc36
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/select.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/textarea-rtl.png b/devel/third-party/ckeditor/plugins/forms/icons/textarea-rtl.png
new file mode 100644
index 0000000..6efe793
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/textarea-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/textarea.png b/devel/third-party/ckeditor/plugins/forms/icons/textarea.png
new file mode 100644
index 0000000..5858815
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/textarea.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/textfield-rtl.png b/devel/third-party/ckeditor/plugins/forms/icons/textfield-rtl.png
new file mode 100644
index 0000000..d567352
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/textfield-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/icons/textfield.png b/devel/third-party/ckeditor/plugins/forms/icons/textfield.png
new file mode 100644
index 0000000..d567352
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/icons/textfield.png differ
diff --git a/devel/third-party/ckeditor/plugins/forms/images/hiddenfield.gif b/devel/third-party/ckeditor/plugins/forms/images/hiddenfield.gif
new file mode 100644
index 0000000..953f643
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/forms/images/hiddenfield.gif differ
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/af.js b/devel/third-party/ckeditor/plugins/forms/lang/af.js
new file mode 100644
index 0000000..95d23c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/af.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'af', {
+ button: {
+ title: 'Knop eienskappe',
+ text: 'Teks (Waarde)',
+ type: 'Soort',
+ typeBtn: 'Knop',
+ typeSbm: 'Stuur',
+ typeRst: 'Maak leeg'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Merkhokkie eienskappe',
+ radioTitle: 'Radioknoppie eienskappe',
+ value: 'Waarde',
+ selected: 'Geselekteer'
+ },
+ form: {
+ title: 'Vorm eienskappe',
+ menu: 'Vorm eienskappe',
+ action: 'Aksie',
+ method: 'Metode',
+ encoding: 'Kodering'
+ },
+ hidden: {
+ title: 'Verborge veld eienskappe',
+ name: 'Naam',
+ value: 'Waarde'
+ },
+ select: {
+ title: 'Keuseveld eienskappe',
+ selectInfo: 'Info',
+ opAvail: 'Beskikbare opsies',
+ value: 'Waarde',
+ size: 'Grootte',
+ lines: 'Lyne',
+ chkMulti: 'Laat meer as een keuse toe',
+ opText: 'Teks',
+ opValue: 'Waarde',
+ btnAdd: 'Byvoeg',
+ btnModify: 'Wysig',
+ btnUp: 'Op',
+ btnDown: 'Af',
+ btnSetValue: 'Stel as geselekteerde waarde',
+ btnDelete: 'Verwyder'
+ },
+ textarea: {
+ title: 'Teks-area eienskappe',
+ cols: 'Kolomme',
+ rows: 'Rye'
+ },
+ textfield: {
+ title: 'Teksveld eienskappe',
+ name: 'Naam',
+ value: 'Waarde',
+ charWidth: 'Breedte (karakters)',
+ maxChars: 'Maksimum karakters',
+ type: 'Soort',
+ typeText: 'Teks',
+ typePass: 'Wagwoord',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ar.js b/devel/third-party/ckeditor/plugins/forms/lang/ar.js
new file mode 100644
index 0000000..848d9a0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ar.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ar', {
+ button: {
+ title: 'خصائص زر Ø§ÙØ¶ØºØ·',
+ text: 'اÙÙÙÙ
Ø©/Ø§ÙØªØ³Ù
ÙØ©',
+ type: 'ÙÙØ¹ Ø§ÙØ²Ø±',
+ typeBtn: 'زر',
+ typeSbm: 'إرساÙ',
+ typeRst: 'إعادة تعÙÙÙ'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'خصائص Ø®Ø§ÙØ© Ø§ÙØ¥Ø®ØªÙار',
+ radioTitle: 'خصائص زر Ø§ÙØ®Ùار',
+ value: 'اÙÙÙÙ
Ø©',
+ selected: 'Ù
ØØ¯Ø¯'
+ },
+ form: {
+ title: 'خصائص اÙÙÙ
ÙØ°Ø¬',
+ menu: 'خصائص اÙÙÙ
ÙØ°Ø¬',
+ action: 'اسÙ
اÙÙ
ÙÙ',
+ method: 'Ø§ÙØ£Ø³ÙÙØ¨',
+ encoding: 'تشÙÙØ±'
+ },
+ hidden: {
+ title: 'خصائص Ø§ÙØÙ٠اÙÙ
Ø®ÙÙ',
+ name: 'Ø§ÙØ§Ø³Ù
',
+ value: 'اÙÙÙÙ
Ø©'
+ },
+ select: {
+ title: 'خصائص Ø§Ø®ØªÙØ§Ø± Ø§ÙØÙÙ',
+ selectInfo: 'اختار Ù
عÙÙÙ
ات',
+ opAvail: 'Ø§ÙØ®Ùارات اÙÙ
ØªØ§ØØ©',
+ value: 'اÙÙÙÙ
Ø©',
+ size: 'Ø§ÙØØ¬Ù
',
+ lines: 'Ø§ÙØ£Ø³Ø·Ø±',
+ chkMulti: 'Ø§ÙØ³Ù
Ø§Ø Ø¨ØªØØ¯Ùدات Ù
تعددة',
+ opText: 'اÙÙØµ',
+ opValue: 'اÙÙÙÙ
Ø©',
+ btnAdd: 'Ø¥Ø¶Ø§ÙØ©',
+ btnModify: 'تعدÙÙ',
+ btnUp: 'أعÙÙ',
+ btnDown: 'أسÙÙ',
+ btnSetValue: 'إجعÙÙØ§ Ù
ØØ¯Ø¯Ø©',
+ btnDelete: 'Ø¥Ø²Ø§ÙØ©'
+ },
+ textarea: {
+ title: 'خصائص Ù
Ø³Ø§ØØ© اÙÙØµ',
+ cols: 'Ø§ÙØ£Ø¹Ù
دة',
+ rows: 'Ø§ÙØµÙÙÙ'
+ },
+ textfield: {
+ title: 'خصائص Ù
ربع اÙÙØµ',
+ name: 'Ø§ÙØ§Ø³Ù
',
+ value: 'اÙÙÙÙ
Ø©',
+ charWidth: 'عرض Ø§ÙØ³Ù
ات',
+ maxChars: 'Ø§ÙØµÙ عدد ÙÙØ³Ù
ات',
+ type: 'ÙÙØ¹ اÙÙ
ØØªÙÙ',
+ typeText: 'ÙØµ',
+ typePass: 'ÙÙÙ
Ø© Ù
Ø±ÙØ±',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/bg.js b/devel/third-party/ckeditor/plugins/forms/lang/bg.js
new file mode 100644
index 0000000..2514a75
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/bg.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'bg', {
+ button: {
+ title: 'ÐаÑÑÑойки на бÑÑона',
+ text: 'ТекÑÑ (ÑÑойноÑÑ)',
+ type: 'Тип',
+ typeBtn: 'ÐÑÑон',
+ typeSbm: 'Ðобави',
+ typeRst: 'ÐÑлиÑане'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'ÐаÑÑÑойки на ÑадиобÑÑон',
+ value: 'СÑойноÑÑ',
+ selected: 'ÐзбÑано'
+ },
+ form: {
+ title: 'ÐаÑÑÑойки на ÑоÑмаÑа',
+ menu: 'ÐаÑÑÑойки на ÑоÑмаÑа',
+ action: 'ÐейÑÑвие',
+ method: 'ÐеÑод',
+ encoding: 'ÐодиÑане'
+ },
+ hidden: {
+ title: 'ÐаÑÑÑойки за ÑкÑиÑо поле',
+ name: 'Ðме',
+ value: 'СÑойноÑÑ'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'ÐалиÑни опÑии',
+ value: 'СÑойноÑÑ',
+ size: 'РазмеÑ',
+ lines: 'линии',
+ chkMulti: 'Allow multiple selections',
+ opText: 'ТекÑÑ',
+ opValue: 'СÑойноÑÑ',
+ btnAdd: 'Ðобави',
+ btnModify: 'ÐÑомени',
+ btnUp: 'Ðа гоÑе',
+ btnDown: 'Ðа долÑ',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'ÐзÑÑиване'
+ },
+ textarea: {
+ title: 'ÐпÑии за ÑекÑÑоваÑа зона',
+ cols: 'Ðолони',
+ rows: 'Редове'
+ },
+ textfield: {
+ title: 'ÐаÑÑÑойки за ÑекÑÑово поле',
+ name: 'Ðме',
+ value: 'СÑойноÑÑ',
+ charWidth: 'ШиÑина на знаÑиÑе',
+ maxChars: 'ÐакÑ. знаÑи',
+ type: 'Тип',
+ typeText: 'ТекÑÑ',
+ typePass: 'ÐаÑола',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/bn.js b/devel/third-party/ckeditor/plugins/forms/lang/bn.js
new file mode 100644
index 0000000..3e99703
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/bn.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'bn', {
+ button: {
+ title: 'বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ text: 'à¦à§à¦à§à¦¸à¦ (à¦à§à¦¯à¦¾à¦²à§)',
+ type: 'পà§à¦°à¦à¦¾à¦°',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'à¦à§à¦ বà¦à§à¦¸ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ radioTitle: 'রà§à¦¡à¦¿à¦ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ value: 'à¦à§à¦¯à¦¾à¦²à§',
+ selected: 'সিলà§à¦à§à¦à§à¦¡'
+ },
+ form: {
+ title: 'ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ menu: 'ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ action: 'à¦à¦à¦¶à§à¦¯à¦¨',
+ method: 'পদà§à¦§à¦¤à¦¿',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ name: 'নাম',
+ value: 'à¦à§à¦¯à¦¾à¦²à§'
+ },
+ select: {
+ title: 'বাà¦à¦¾à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ selectInfo: 'তথà§à¦¯',
+ opAvail: 'à¦
নà§à¦¯à¦¾à¦¨à§à¦¯ বিà¦à¦²à§à¦ª',
+ value: 'à¦à§à¦¯à¦¾à¦²à§',
+ size: 'সাà¦à¦',
+ lines: 'লাà¦à¦¨ সমà§à¦¹',
+ chkMulti: 'à¦à¦à¦¾à¦§à¦¿à¦ সিলà§à¦à¦¶à¦¨ à¦à¦²à¦¾à¦ à¦à¦°',
+ opText: 'à¦à§à¦à§à¦¸à¦',
+ opValue: 'à¦à§à¦¯à¦¾à¦²à§',
+ btnAdd: 'যà§à¦à§à¦¤',
+ btnModify: 'বদলৠদাà¦',
+ btnUp: 'à¦à¦ªà¦°',
+ btnDown: 'নà§à¦à§',
+ btnSetValue: 'বাà¦à¦¾à¦ à¦à¦°à¦¾ à¦à§à¦¯à¦¾à¦²à§ হিসà§à¦¬à§ সà§à¦ à¦à¦°',
+ btnDelete: 'ডিলà§à¦'
+ },
+ textarea: {
+ title: 'à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ cols: 'à¦à¦²à¦¾à¦®',
+ rows: 'রà§'
+ },
+ textfield: {
+ title: 'à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ name: 'নাম',
+ value: 'à¦à§à¦¯à¦¾à¦²à§',
+ charWidth: 'à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° পà§à¦°à¦¶à¦¸à§à¦¤à¦¤à¦¾',
+ maxChars: 'সরà§à¦¬à¦¾à¦§à¦¿à¦ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦°',
+ type: 'à¦à¦¾à¦à¦ª',
+ typeText: 'à¦à§à¦à§à¦¸à¦',
+ typePass: 'পাসà¦à§à¦¾à¦°à§à¦¡',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/bs.js b/devel/third-party/ckeditor/plugins/forms/lang/bs.js
new file mode 100644
index 0000000..fa728ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/bs.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'bs', {
+ button: {
+ title: 'Button Properties',
+ text: 'Text (Value)',
+ type: 'Type',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'Radio Button Properties',
+ value: 'Value',
+ selected: 'Selected'
+ },
+ form: {
+ title: 'Form Properties',
+ menu: 'Form Properties',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field Properties',
+ name: 'Name',
+ value: 'Value'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'Available Options',
+ value: 'Value',
+ size: 'Size',
+ lines: 'lines',
+ chkMulti: 'Allow multiple selections',
+ opText: 'Text',
+ opValue: 'Value',
+ btnAdd: 'Add',
+ btnModify: 'Modify',
+ btnUp: 'Up',
+ btnDown: 'Down',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'Delete'
+ },
+ textarea: {
+ title: 'Textarea Properties',
+ cols: 'Columns',
+ rows: 'Rows'
+ },
+ textfield: {
+ title: 'Text Field Properties',
+ name: 'Name',
+ value: 'Value',
+ charWidth: 'Character Width',
+ maxChars: 'Maximum Characters',
+ type: 'Type',
+ typeText: 'Text',
+ typePass: 'Password',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ca.js b/devel/third-party/ckeditor/plugins/forms/lang/ca.js
new file mode 100644
index 0000000..c1a0ca7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ca.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ca', {
+ button: {
+ title: 'Propietats del botó',
+ text: 'Text (Valor)',
+ type: 'Tipus',
+ typeBtn: 'Botó',
+ typeSbm: 'Transmet formulari',
+ typeRst: 'Reinicia formulari'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Propietats de la casella de verificació',
+ radioTitle: 'Propietats del botó d\'opció',
+ value: 'Valor',
+ selected: 'Seleccionat'
+ },
+ form: {
+ title: 'Propietats del formulari',
+ menu: 'Propietats del formulari',
+ action: 'Acció',
+ method: 'Mètode',
+ encoding: 'Codificació'
+ },
+ hidden: {
+ title: 'Propietats del camp ocult',
+ name: 'Nom',
+ value: 'Valor'
+ },
+ select: {
+ title: 'Propietats del camp de selecció',
+ selectInfo: 'Info',
+ opAvail: 'Opcions disponibles',
+ value: 'Valor',
+ size: 'Mida',
+ lines: 'LÃnies',
+ chkMulti: 'Permet múltiples seleccions',
+ opText: 'Text',
+ opValue: 'Valor',
+ btnAdd: 'Afegeix',
+ btnModify: 'Modifica',
+ btnUp: 'Amunt',
+ btnDown: 'Avall',
+ btnSetValue: 'Selecciona per defecte',
+ btnDelete: 'Elimina'
+ },
+ textarea: {
+ title: 'Propietats de l\'Ã rea de text',
+ cols: 'Columnes',
+ rows: 'Files'
+ },
+ textfield: {
+ title: 'Propietats del camp de text',
+ name: 'Nom',
+ value: 'Valor',
+ charWidth: 'Amplada',
+ maxChars: 'Nombre mà xim de carà cters',
+ type: 'Tipus',
+ typeText: 'Text',
+ typePass: 'Contrasenya',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/cs.js b/devel/third-party/ckeditor/plugins/forms/lang/cs.js
new file mode 100644
index 0000000..6217ef1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/cs.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'cs', {
+ button: {
+ title: 'Vlastnosti tlaÄÃtka',
+ text: 'Popisek',
+ type: 'Typ',
+ typeBtn: 'TlaÄÃtko',
+ typeSbm: 'Odeslat',
+ typeRst: 'Obnovit'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Vlastnosti zaÅ¡krtávacÃho polÃÄka',
+ radioTitle: 'Vlastnosti pÅepÃnaÄe',
+ value: 'Hodnota',
+ selected: 'Zaškrtnuto'
+ },
+ form: {
+ title: 'Vlastnosti formuláÅe',
+ menu: 'Vlastnosti formuláÅe',
+ action: 'Akce',
+ method: 'Metoda',
+ encoding: 'KódovánÃ'
+ },
+ hidden: {
+ title: 'Vlastnosti skrytého pole',
+ name: 'Název',
+ value: 'Hodnota'
+ },
+ select: {
+ title: 'Vlastnosti seznamu',
+ selectInfo: 'Info',
+ opAvail: 'Dostupná nastavenÃ',
+ value: 'Hodnota',
+ size: 'Velikost',
+ lines: 'Åádků',
+ chkMulti: 'Povolit mnohonásobné výbÄry',
+ opText: 'Text',
+ opValue: 'Hodnota',
+ btnAdd: 'PÅidat',
+ btnModify: 'ZmÄnit',
+ btnUp: 'Nahoru',
+ btnDown: 'Dolů',
+ btnSetValue: 'Nastavit jako vybranou hodnotu',
+ btnDelete: 'Smazat'
+ },
+ textarea: {
+ title: 'Vlastnosti textové oblasti',
+ cols: 'Sloupců',
+ rows: 'Åádků'
+ },
+ textfield: {
+ title: 'Vlastnosti textového pole',
+ name: 'Název',
+ value: 'Hodnota',
+ charWidth: 'Å ÃÅka ve znacÃch',
+ maxChars: 'Maximálnà poÄet znaků',
+ type: 'Typ',
+ typeText: 'Text',
+ typePass: 'Heslo',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/cy.js b/devel/third-party/ckeditor/plugins/forms/lang/cy.js
new file mode 100644
index 0000000..955fe80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/cy.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'cy', {
+ button: {
+ title: 'Priodweddau Botymau',
+ text: 'Testun (Gwerth)',
+ type: 'Math',
+ typeBtn: 'Botwm',
+ typeSbm: 'Gyrru',
+ typeRst: 'Ailosod'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Priodweddau Blwch Ticio',
+ radioTitle: 'Priodweddau Botwm Radio',
+ value: 'Gwerth',
+ selected: 'Dewiswyd'
+ },
+ form: {
+ title: 'Priodweddau Ffurflen',
+ menu: 'Priodweddau Ffurflen',
+ action: 'Gweithred',
+ method: 'Dull',
+ encoding: 'Amgodio'
+ },
+ hidden: {
+ title: 'Priodweddau Maes Cudd',
+ name: 'Enw',
+ value: 'Gwerth'
+ },
+ select: {
+ title: 'Priodweddau Maes Dewis',
+ selectInfo: 'Gwyb Dewis',
+ opAvail: 'Opsiynau ar Gael',
+ value: 'Gwerth',
+ size: 'Maint',
+ lines: 'llinellau',
+ chkMulti: 'Caniatà u aml-ddewisiadau',
+ opText: 'Testun',
+ opValue: 'Gwerth',
+ btnAdd: 'Ychwanegu',
+ btnModify: 'Newid',
+ btnUp: 'Lan',
+ btnDown: 'Lawr',
+ btnSetValue: 'Gosod fel gwerth a ddewiswyd',
+ btnDelete: 'Dileu'
+ },
+ textarea: {
+ title: 'Priodweddau Ardal Testun',
+ cols: 'Colofnau',
+ rows: 'Rhesi'
+ },
+ textfield: {
+ title: 'Priodweddau Maes Testun',
+ name: 'Enw',
+ value: 'Gwerth',
+ charWidth: 'Lled Nod',
+ maxChars: 'Uchafswm y Nodau',
+ type: 'Math',
+ typeText: 'Testun',
+ typePass: 'Cyfrinair',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/da.js b/devel/third-party/ckeditor/plugins/forms/lang/da.js
new file mode 100644
index 0000000..cc07a83
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/da.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'da', {
+ button: {
+ title: 'Egenskaber for knap',
+ text: 'Tekst',
+ type: 'Type',
+ typeBtn: 'Knap',
+ typeSbm: 'Send',
+ typeRst: 'Nulstil'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Egenskaber for afkrydsningsfelt',
+ radioTitle: 'Egenskaber for alternativknap',
+ value: 'Værdi',
+ selected: 'Valgt'
+ },
+ form: {
+ title: 'Egenskaber for formular',
+ menu: 'Egenskaber for formular',
+ action: 'Handling',
+ method: 'Metode',
+ encoding: 'Kodning (encoding)'
+ },
+ hidden: {
+ title: 'Egenskaber for skjult felt',
+ name: 'Navn',
+ value: 'Værdi'
+ },
+ select: {
+ title: 'Egenskaber for liste',
+ selectInfo: 'Generelt',
+ opAvail: 'Valgmuligheder',
+ value: 'Værdi',
+ size: 'Størrelse',
+ lines: 'Linjer',
+ chkMulti: 'Tillad flere valg',
+ opText: 'Tekst',
+ opValue: 'Værdi',
+ btnAdd: 'Tilføj',
+ btnModify: 'Redigér',
+ btnUp: 'Op',
+ btnDown: 'Ned',
+ btnSetValue: 'Sæt som valgt',
+ btnDelete: 'Slet'
+ },
+ textarea: {
+ title: 'Egenskaber for tekstboks',
+ cols: 'Kolonner',
+ rows: 'Rækker'
+ },
+ textfield: {
+ title: 'Egenskaber for tekstfelt',
+ name: 'Navn',
+ value: 'Værdi',
+ charWidth: 'Bredde (tegn)',
+ maxChars: 'Max. antal tegn',
+ type: 'Type',
+ typeText: 'Tekst',
+ typePass: 'Adgangskode',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/de.js b/devel/third-party/ckeditor/plugins/forms/lang/de.js
new file mode 100644
index 0000000..8313fff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/de.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'de', {
+ button: {
+ title: 'Button-Eigenschaften',
+ text: 'Text (Wert)',
+ type: 'Typ',
+ typeBtn: 'Button',
+ typeSbm: 'Absenden',
+ typeRst: 'Zurücksetzen'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox-Eigenschaften',
+ radioTitle: 'Optionsfeld-Eigenschaften',
+ value: 'Wert',
+ selected: 'ausgewählt'
+ },
+ form: {
+ title: 'Formular-Eigenschaften',
+ menu: 'Formular-Eigenschaften',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Zeichenkodierung'
+ },
+ hidden: {
+ title: 'Verstecktes Feld-Eigenschaften',
+ name: 'Name',
+ value: 'Wert'
+ },
+ select: {
+ title: 'Auswahlfeld-Eigenschaften',
+ selectInfo: 'Info',
+ opAvail: 'Mögliche Optionen',
+ value: 'Wert',
+ size: 'GröÃe',
+ lines: 'Linien',
+ chkMulti: 'Erlaube Mehrfachauswahl',
+ opText: 'Text',
+ opValue: 'Wert',
+ btnAdd: 'Hinzufügen',
+ btnModify: 'Ãndern',
+ btnUp: 'Hoch',
+ btnDown: 'Runter',
+ btnSetValue: 'Setze als Standardwert',
+ btnDelete: 'Entfernen'
+ },
+ textarea: {
+ title: 'Textfeld (mehrzeilig) Eigenschaften',
+ cols: 'Spalten',
+ rows: 'Reihen'
+ },
+ textfield: {
+ title: 'Textfeld (einzeilig) Eigenschaften',
+ name: 'Name',
+ value: 'Wert',
+ charWidth: 'Zeichenbreite',
+ maxChars: 'Max. Zeichen',
+ type: 'Typ',
+ typeText: 'Text',
+ typePass: 'Passwort',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/el.js b/devel/third-party/ckeditor/plugins/forms/lang/el.js
new file mode 100644
index 0000000..c2556e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/el.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'el', {
+ button: {
+ title: 'ÎδιÏÏηÏÎµÏ ÎοÏ
μÏιοÏ',
+ text: 'Îείμενο (Τιμή)',
+ type: 'ΤÏÏοÏ',
+ typeBtn: 'ÎοÏ
μÏί',
+ typeSbm: 'Î¥Ïοβολή',
+ typeRst: 'ÎÏαναÏοÏά'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ÎδιÏÏηÏÎµÏ ÎοÏ
ÏÎ¹Î¿Ï ÎÏιλογήÏ',
+ radioTitle: 'ÎδιÏÏηÏÎµÏ ÎοÏ
μÏÎ¹Î¿Ï ÎÏιλογήÏ',
+ value: 'Τιμή',
+ selected: 'ÎÏιλεγμÎνο'
+ },
+ form: {
+ title: 'ÎδιÏÏηÏÎµÏ Î¦ÏÏμαÏ',
+ menu: 'ÎδιÏÏηÏÎµÏ Î¦ÏÏμαÏ',
+ action: 'ÎÏάÏη',
+ method: 'ÎÎθοδοÏ',
+ encoding: 'ÎÏδικοÏοίηÏη'
+ },
+ hidden: {
+ title: 'ÎδιÏÏηÏÎµÏ ÎÏÏ
ÏÎ¿Ï Î ÎµÎ´Î¯Î¿Ï
',
+ name: 'Îνομα',
+ value: 'Τιμή'
+ },
+ select: {
+ title: 'ÎδιÏÏηÏÎµÏ Î ÎµÎ´Î¯Î¿Ï
ÎÏιλογήÏ',
+ selectInfo: 'ΠληÏοÏοÏÎ¯ÎµÏ Î ÎµÎ´Î¯Î¿Ï
ÎÏιλογήÏ',
+ opAvail: 'ÎιαθÎÏÎ¹Î¼ÎµÏ ÎÏιλογÎÏ',
+ value: 'Τιμή',
+ size: 'ÎÎγεθοÏ',
+ lines: 'γÏαμμÎÏ',
+ chkMulti: 'Îα εÏιÏÏÎÏονÏαι οι ÏολλαÏλÎÏ ÎµÏιλογÎÏ',
+ opText: 'Îείμενο',
+ opValue: 'Τιμή',
+ btnAdd: 'Î ÏοÏθήκη',
+ btnModify: 'ΤÏοÏοÏοίηÏη',
+ btnUp: 'ΠάνÏ',
+ btnDown: 'ÎάÏÏ',
+ btnSetValue: 'Î ÏοεÏιλογή',
+ btnDelete: 'ÎιαγÏαÏή'
+ },
+ textarea: {
+ title: 'ÎδιÏÏηÏÎµÏ Î ÎµÏιοÏÎ®Ï ÎειμÎνοÏ
',
+ cols: 'ΣÏήλεÏ',
+ rows: 'ΣειÏÎÏ'
+ },
+ textfield: {
+ title: 'ÎδιÏÏηÏÎµÏ Î ÎµÎ´Î¯Î¿Ï
ÎειμÎνοÏ
',
+ name: 'Îνομα',
+ value: 'Τιμή',
+ charWidth: 'ΠλάÏÎ¿Ï Î§Î±ÏακÏήÏÏν',
+ maxChars: 'ÎÎγιÏÏοι ÏαÏακÏήÏεÏ',
+ type: 'ΤÏÏοÏ',
+ typeText: 'Îείμενο',
+ typePass: 'ÎÏδικÏÏ',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/en-au.js b/devel/third-party/ckeditor/plugins/forms/lang/en-au.js
new file mode 100644
index 0000000..e2ba823
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/en-au.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'en-au', {
+ button: {
+ title: 'Button Properties',
+ text: 'Text (Value)',
+ type: 'Type',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'Radio Button Properties',
+ value: 'Value',
+ selected: 'Selected'
+ },
+ form: {
+ title: 'Form Properties',
+ menu: 'Form Properties',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field Properties',
+ name: 'Name',
+ value: 'Value'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'Available Options',
+ value: 'Value',
+ size: 'Size',
+ lines: 'lines',
+ chkMulti: 'Allow multiple selections',
+ opText: 'Text',
+ opValue: 'Value',
+ btnAdd: 'Add',
+ btnModify: 'Modify',
+ btnUp: 'Up',
+ btnDown: 'Down',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'Delete'
+ },
+ textarea: {
+ title: 'Textarea Properties',
+ cols: 'Columns',
+ rows: 'Rows'
+ },
+ textfield: {
+ title: 'Text Field Properties',
+ name: 'Name',
+ value: 'Value',
+ charWidth: 'Character Width',
+ maxChars: 'Maximum Characters',
+ type: 'Type',
+ typeText: 'Text',
+ typePass: 'Password',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/en-ca.js b/devel/third-party/ckeditor/plugins/forms/lang/en-ca.js
new file mode 100644
index 0000000..b96d01d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/en-ca.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'en-ca', {
+ button: {
+ title: 'Button Properties',
+ text: 'Text (Value)',
+ type: 'Type',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'Radio Button Properties',
+ value: 'Value',
+ selected: 'Selected'
+ },
+ form: {
+ title: 'Form Properties',
+ menu: 'Form Properties',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field Properties',
+ name: 'Name',
+ value: 'Value'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'Available Options',
+ value: 'Value',
+ size: 'Size',
+ lines: 'lines',
+ chkMulti: 'Allow multiple selections',
+ opText: 'Text',
+ opValue: 'Value',
+ btnAdd: 'Add',
+ btnModify: 'Modify',
+ btnUp: 'Up',
+ btnDown: 'Down',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'Delete'
+ },
+ textarea: {
+ title: 'Textarea Properties',
+ cols: 'Columns',
+ rows: 'Rows'
+ },
+ textfield: {
+ title: 'Text Field Properties',
+ name: 'Name',
+ value: 'Value',
+ charWidth: 'Character Width',
+ maxChars: 'Maximum Characters',
+ type: 'Type',
+ typeText: 'Text',
+ typePass: 'Password',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/en-gb.js b/devel/third-party/ckeditor/plugins/forms/lang/en-gb.js
new file mode 100644
index 0000000..14e11d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/en-gb.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'en-gb', {
+ button: {
+ title: 'Button Properties',
+ text: 'Text (Value)',
+ type: 'Type',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'Radio Button Properties',
+ value: 'Value',
+ selected: 'Selected'
+ },
+ form: {
+ title: 'Form Properties',
+ menu: 'Form Properties',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field Properties',
+ name: 'Name',
+ value: 'Value'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'Available Options',
+ value: 'Value',
+ size: 'Size',
+ lines: 'lines',
+ chkMulti: 'Allow multiple selections',
+ opText: 'Text',
+ opValue: 'Value',
+ btnAdd: 'Add',
+ btnModify: 'Modify',
+ btnUp: 'Up',
+ btnDown: 'Down',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'Delete'
+ },
+ textarea: {
+ title: 'Textarea Properties',
+ cols: 'Columns',
+ rows: 'Rows'
+ },
+ textfield: {
+ title: 'Text Field Properties',
+ name: 'Name',
+ value: 'Value',
+ charWidth: 'Character Width',
+ maxChars: 'Maximum Characters',
+ type: 'Type',
+ typeText: 'Text',
+ typePass: 'Password',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/en.js b/devel/third-party/ckeditor/plugins/forms/lang/en.js
new file mode 100644
index 0000000..5825643
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/en.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'en', {
+ button: {
+ title: 'Button Properties',
+ text: 'Text (Value)',
+ type: 'Type',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'Radio Button Properties',
+ value: 'Value',
+ selected: 'Selected'
+ },
+ form: {
+ title: 'Form Properties',
+ menu: 'Form Properties',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field Properties',
+ name: 'Name',
+ value: 'Value'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'Available Options',
+ value: 'Value',
+ size: 'Size',
+ lines: 'lines',
+ chkMulti: 'Allow multiple selections',
+ opText: 'Text',
+ opValue: 'Value',
+ btnAdd: 'Add',
+ btnModify: 'Modify',
+ btnUp: 'Up',
+ btnDown: 'Down',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'Delete'
+ },
+ textarea: {
+ title: 'Textarea Properties',
+ cols: 'Columns',
+ rows: 'Rows'
+ },
+ textfield: {
+ title: 'Text Field Properties',
+ name: 'Name',
+ value: 'Value',
+ charWidth: 'Character Width',
+ maxChars: 'Maximum Characters',
+ type: 'Type',
+ typeText: 'Text',
+ typePass: 'Password',
+ typeEmail: 'Email',
+ typeSearch: 'Search',
+ typeTel: 'Telephone Number',
+ typeUrl: 'URL'
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/eo.js b/devel/third-party/ckeditor/plugins/forms/lang/eo.js
new file mode 100644
index 0000000..7fd5438
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/eo.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'eo', {
+ button: {
+ title: 'Butonaj atributoj',
+ text: 'Teksto (Valoro)',
+ type: 'Tipo',
+ typeBtn: 'Butono',
+ typeSbm: 'Validigi (submit)',
+ typeRst: 'Remeti en la originstaton (Reset)'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Markobutonaj Atributoj',
+ radioTitle: 'Radiobutonaj Atributoj',
+ value: 'Valoro',
+ selected: 'Selektita'
+ },
+ form: {
+ title: 'Formularaj Atributoj',
+ menu: 'Formularaj Atributoj',
+ action: 'Ago',
+ method: 'Metodo',
+ encoding: 'Kodoprezento'
+ },
+ hidden: {
+ title: 'Atributoj de KaÅita Kampo',
+ name: 'Nomo',
+ value: 'Valoro'
+ },
+ select: {
+ title: 'Atributoj de Elekta Kampo',
+ selectInfo: 'Informoj pri la rulummenuo',
+ opAvail: 'Elektoj Disponeblaj',
+ value: 'Valoro',
+ size: 'Grando',
+ lines: 'Linioj',
+ chkMulti: 'Permesi Plurajn Elektojn',
+ opText: 'Teksto',
+ opValue: 'Valoro',
+ btnAdd: 'Aldoni',
+ btnModify: 'Modifi',
+ btnUp: 'Supren',
+ btnDown: 'Malsupren',
+ btnSetValue: 'Agordi kiel Elektitan Valoron',
+ btnDelete: 'Forigi'
+ },
+ textarea: {
+ title: 'Atributoj de Teksta Areo',
+ cols: 'Kolumnoj',
+ rows: 'Linioj'
+ },
+ textfield: {
+ title: 'Atributoj de Teksta Kampo',
+ name: 'Nomo',
+ value: 'Valoro',
+ charWidth: 'SignolarÄo',
+ maxChars: 'Maksimuma Nombro da Signoj',
+ type: 'Tipo',
+ typeText: 'Teksto',
+ typePass: 'Pasvorto',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/es.js b/devel/third-party/ckeditor/plugins/forms/lang/es.js
new file mode 100644
index 0000000..de37ef5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/es.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'es', {
+ button: {
+ title: 'Propiedades de Botón',
+ text: 'Texto (Valor)',
+ type: 'Tipo',
+ typeBtn: 'Boton',
+ typeSbm: 'Enviar',
+ typeRst: 'Reestablecer'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Propiedades de Casilla',
+ radioTitle: 'Propiedades de Botón de Radio',
+ value: 'Valor',
+ selected: 'Seleccionado'
+ },
+ form: {
+ title: 'Propiedades de Formulario',
+ menu: 'Propiedades de Formulario',
+ action: 'Acción',
+ method: 'Método',
+ encoding: 'Codificación'
+ },
+ hidden: {
+ title: 'Propiedades de Campo Oculto',
+ name: 'Nombre',
+ value: 'Valor'
+ },
+ select: {
+ title: 'Propiedades de Campo de Selección',
+ selectInfo: 'Información',
+ opAvail: 'Opciones disponibles',
+ value: 'Valor',
+ size: 'Tamaño',
+ lines: 'Lineas',
+ chkMulti: 'Permitir múltiple selección',
+ opText: 'Texto',
+ opValue: 'Valor',
+ btnAdd: 'Agregar',
+ btnModify: 'Modificar',
+ btnUp: 'Subir',
+ btnDown: 'Bajar',
+ btnSetValue: 'Establecer como predeterminado',
+ btnDelete: 'Eliminar'
+ },
+ textarea: {
+ title: 'Propiedades de Area de Texto',
+ cols: 'Columnas',
+ rows: 'Filas'
+ },
+ textfield: {
+ title: 'Propiedades de Campo de Texto',
+ name: 'Nombre',
+ value: 'Valor',
+ charWidth: 'Caracteres de ancho',
+ maxChars: 'Máximo caracteres',
+ type: 'Tipo',
+ typeText: 'Texto',
+ typePass: 'Contraseña',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/et.js b/devel/third-party/ckeditor/plugins/forms/lang/et.js
new file mode 100644
index 0000000..8903b0c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/et.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'et', {
+ button: {
+ title: 'Nupu omadused',
+ text: 'Tekst (väärtus)',
+ type: 'Liik',
+ typeBtn: 'Nupp',
+ typeSbm: 'Saada',
+ typeRst: 'Lähtesta'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Märkeruudu omadused',
+ radioTitle: 'Raadionupu omadused',
+ value: 'Väärtus',
+ selected: 'Märgitud'
+ },
+ form: {
+ title: 'Vormi omadused',
+ menu: 'Vormi omadused',
+ action: 'Toiming',
+ method: 'Meetod',
+ encoding: 'Kodeering'
+ },
+ hidden: {
+ title: 'Varjatud lahtri omadused',
+ name: 'Nimi',
+ value: 'Väärtus'
+ },
+ select: {
+ title: 'Valiklahtri omadused',
+ selectInfo: 'Info',
+ opAvail: 'Võimalikud valikud:',
+ value: 'Väärtus',
+ size: 'Suurus',
+ lines: 'ridu',
+ chkMulti: 'Võimalik mitu valikut',
+ opText: 'Tekst',
+ opValue: 'Väärtus',
+ btnAdd: 'Lisa',
+ btnModify: 'Muuda',
+ btnUp: 'Ãles',
+ btnDown: 'Alla',
+ btnSetValue: 'Määra vaikimisi',
+ btnDelete: 'Kustuta'
+ },
+ textarea: {
+ title: 'Tekstiala omadused',
+ cols: 'Veerge',
+ rows: 'Ridu'
+ },
+ textfield: {
+ title: 'Tekstilahtri omadused',
+ name: 'Nimi',
+ value: 'Väärtus',
+ charWidth: 'Laius (tähemärkides)',
+ maxChars: 'Maksimaalselt tähemärke',
+ type: 'Liik',
+ typeText: 'Tekst',
+ typePass: 'Parool',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/eu.js b/devel/third-party/ckeditor/plugins/forms/lang/eu.js
new file mode 100644
index 0000000..edbde6b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/eu.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'eu', {
+ button: {
+ title: 'Botoiaren Ezaugarriak',
+ text: 'Testua (Balorea)',
+ type: 'Mota',
+ typeBtn: 'Botoia',
+ typeSbm: 'Bidali',
+ typeRst: 'Garbitu'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Kontrol-laukiko Ezaugarriak',
+ radioTitle: 'Aukera-botoiaren Ezaugarriak',
+ value: 'Balorea',
+ selected: 'Hautatuta'
+ },
+ form: {
+ title: 'Formularioaren Ezaugarriak',
+ menu: 'Formularioaren Ezaugarriak',
+ action: 'Ekintza',
+ method: 'Metodoa',
+ encoding: 'Kodeketa'
+ },
+ hidden: {
+ title: 'Ezkutuko Eremuaren Ezaugarriak',
+ name: 'Izena',
+ value: 'Balorea'
+ },
+ select: {
+ title: 'Hautespen Eremuaren Ezaugarriak',
+ selectInfo: 'Informazioa',
+ opAvail: 'Aukera Eskuragarriak',
+ value: 'Balorea',
+ size: 'Tamaina',
+ lines: 'lerro kopurura',
+ chkMulti: 'Hautaketa anitzak baimendu',
+ opText: 'Testua',
+ opValue: 'Balorea',
+ btnAdd: 'Gehitu',
+ btnModify: 'Aldatu',
+ btnUp: 'Gora',
+ btnDown: 'Behera',
+ btnSetValue: 'Aukeratutako balorea ezarri',
+ btnDelete: 'Ezabatu'
+ },
+ textarea: {
+ title: 'Testu-arearen Ezaugarriak',
+ cols: 'Zutabeak',
+ rows: 'Lerroak'
+ },
+ textfield: {
+ title: 'Testu Eremuaren Ezaugarriak',
+ name: 'Izena',
+ value: 'Balorea',
+ charWidth: 'Zabalera',
+ maxChars: 'Zenbat karaktere gehienez',
+ type: 'Mota',
+ typeText: 'Testua',
+ typePass: 'Pasahitza',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/fa.js b/devel/third-party/ckeditor/plugins/forms/lang/fa.js
new file mode 100644
index 0000000..614d550
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/fa.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'fa', {
+ button: {
+ title: 'ÙÛÚÚ¯ÛÙØ§Û دکÙ
Ù',
+ text: 'Ù
ت٠(Ù
ÙØ¯Ø§Ø±)',
+ type: 'ÙÙØ¹',
+ typeBtn: 'دکÙ
Ù',
+ typeSbm: 'ثبت',
+ typeRst: 'Ø¨Ø§Ø²ÙØ´Ø§ÙÛ (Reset)'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ÙÛÚÚ¯ÛÙØ§Û خاÙÙÙ´ گزÛÙÙØ§Û',
+ radioTitle: 'ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ رادÛÙÛÛ',
+ value: 'Ù
ÙØ¯Ø§Ø±',
+ selected: 'Ø¨Ø±Ú¯Ø²ÛØ¯Ù'
+ },
+ form: {
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
',
+ menu: 'ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
',
+ action: 'رÙÛØ¯Ø§Ø¯',
+ method: 'Ù
تد',
+ encoding: 'رÙ
زÙگارÛ'
+ },
+ hidden: {
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù¾ÙÙØ§Ù',
+ name: 'ÙØ§Ù
',
+ value: 'Ù
ÙØ¯Ø§Ø±'
+ },
+ select: {
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û',
+ selectInfo: 'Ø§Ø·ÙØ§Ø¹Ø§Øª',
+ opAvail: 'گزÛÙÙÙØ§Û دردسترس',
+ value: 'Ù
ÙØ¯Ø§Ø±',
+ size: 'Ø§ÙØ¯Ø§Ø²Ù',
+ lines: 'Ø®Ø·ÙØ·',
+ chkMulti: 'گزÛÙØ´ ÚÙØ¯Ú¯Ø§ÙÙ ÙØ±Ø§ÙÙ
باشد',
+ opText: 'Ù
تÙ',
+ opValue: 'Ù
ÙØ¯Ø§Ø±',
+ btnAdd: 'Ø§ÙØ²ÙدÙ',
+ btnModify: 'ÙÛØ±Ø§ÛØ´',
+ btnUp: 'Ø¨Ø§ÙØ§',
+ btnDown: 'پائÛÙ',
+ btnSetValue: 'ØªÙØ¸ÛÙ
ب٠عÙÙØ§Ù Ù
ÙØ¯Ø§Ø± Ø¨Ø±Ú¯Ø²ÛØ¯Ù',
+ btnDelete: 'پاککردÙ'
+ },
+ textarea: {
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙØ§ØÛÙÙ´ Ù
تÙÛ',
+ cols: 'ستÙÙÙØ§',
+ rows: 'Ø³Ø·Ø±ÙØ§'
+ },
+ textfield: {
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù
تÙÛ',
+ name: 'ÙØ§Ù
',
+ value: 'Ù
ÙØ¯Ø§Ø±',
+ charWidth: 'Ù¾ÙÙØ§Û ÙÙÛØ³Ù',
+ maxChars: 'Ø¨ÛØ´ÛÙÙÙ´ ÙÙÛØ³ÙÙØ§',
+ type: 'ÙÙØ¹',
+ typeText: 'Ù
تÙ',
+ typePass: 'Ú¯Ø°Ø±ÙØ§ÚÙ',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/fi.js b/devel/third-party/ckeditor/plugins/forms/lang/fi.js
new file mode 100644
index 0000000..e705fd9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/fi.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'fi', {
+ button: {
+ title: 'Painikkeen ominaisuudet',
+ text: 'Teksti (arvo)',
+ type: 'Tyyppi',
+ typeBtn: 'Painike',
+ typeSbm: 'Lähetä',
+ typeRst: 'Tyhjennä'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Valintaruudun ominaisuudet',
+ radioTitle: 'Radiopainikkeen ominaisuudet',
+ value: 'Arvo',
+ selected: 'Valittu'
+ },
+ form: {
+ title: 'Lomakkeen ominaisuudet',
+ menu: 'Lomakkeen ominaisuudet',
+ action: 'Toiminto',
+ method: 'Tapa',
+ encoding: 'Enkoodaus'
+ },
+ hidden: {
+ title: 'Piilokentän ominaisuudet',
+ name: 'Nimi',
+ value: 'Arvo'
+ },
+ select: {
+ title: 'Valintakentän ominaisuudet',
+ selectInfo: 'Info',
+ opAvail: 'Ominaisuudet',
+ value: 'Arvo',
+ size: 'Koko',
+ lines: 'Rivit',
+ chkMulti: 'Salli usea valinta',
+ opText: 'Teksti',
+ opValue: 'Arvo',
+ btnAdd: 'Lisää',
+ btnModify: 'Muuta',
+ btnUp: 'Ylös',
+ btnDown: 'Alas',
+ btnSetValue: 'Aseta valituksi',
+ btnDelete: 'Poista'
+ },
+ textarea: {
+ title: 'Tekstilaatikon ominaisuudet',
+ cols: 'Sarakkeita',
+ rows: 'Rivejä'
+ },
+ textfield: {
+ title: 'Tekstikentän ominaisuudet',
+ name: 'Nimi',
+ value: 'Arvo',
+ charWidth: 'Leveys',
+ maxChars: 'Maksimi merkkimäärä',
+ type: 'Tyyppi',
+ typeText: 'Teksti',
+ typePass: 'Salasana',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/fo.js b/devel/third-party/ckeditor/plugins/forms/lang/fo.js
new file mode 100644
index 0000000..fb15718
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/fo.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'fo', {
+ button: {
+ title: 'Eginleikar fyri knøtt',
+ text: 'Tekstur',
+ type: 'Slag',
+ typeBtn: 'Knøttur',
+ typeSbm: 'Send',
+ typeRst: 'Nullstilla'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Eginleikar fyri flugubein',
+ radioTitle: 'Eginleikar fyri radioknøtt',
+ value: 'Virði',
+ selected: 'Valt'
+ },
+ form: {
+ title: 'Eginleikar fyri Form',
+ menu: 'Eginleikar fyri Form',
+ action: 'Hending',
+ method: 'Háttur',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Eginleikar fyri fjaldan teig',
+ name: 'Navn',
+ value: 'Virði'
+ },
+ select: {
+ title: 'Eginleikar fyri valskrá',
+ selectInfo: 'Upplýsingar',
+ opAvail: 'Tøkir møguleikar',
+ value: 'Virði',
+ size: 'Stødd',
+ lines: 'Linjur',
+ chkMulti: 'Loyv fleiri valmøguleikum samstundis',
+ opText: 'Tekstur',
+ opValue: 'Virði',
+ btnAdd: 'Legg afturat',
+ btnModify: 'Broyt',
+ btnUp: 'Upp',
+ btnDown: 'Niður',
+ btnSetValue: 'Set sum valt virði',
+ btnDelete: 'Strika'
+ },
+ textarea: {
+ title: 'Eginleikar fyri tekstumráði',
+ cols: 'kolonnur',
+ rows: 'røðir'
+ },
+ textfield: {
+ title: 'Eginleikar fyri tekstteig',
+ name: 'Navn',
+ value: 'Virði',
+ charWidth: 'Breidd (sjónlig tekn)',
+ maxChars: 'Mest loyvdu tekn',
+ type: 'Slag',
+ typeText: 'Tekstur',
+ typePass: 'Loyniorð',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/forms/lang/fr-ca.js
new file mode 100644
index 0000000..e8f8f78
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/fr-ca.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'fr-ca', {
+ button: {
+ title: 'Propriétés du bouton',
+ text: 'Texte (Valeur)',
+ type: 'Type',
+ typeBtn: 'Bouton',
+ typeSbm: 'Soumettre',
+ typeRst: 'Réinitialiser'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Propriétés de la case à cocher',
+ radioTitle: 'Propriétés du bouton radio',
+ value: 'Valeur',
+ selected: 'Sélectionné'
+ },
+ form: {
+ title: 'Propriétés du formulaire',
+ menu: 'Propriétés du formulaire',
+ action: 'Action',
+ method: 'Méthode',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Propriétés du champ caché',
+ name: 'Nom',
+ value: 'Valeur'
+ },
+ select: {
+ title: 'Propriétés de la liste/du menu',
+ selectInfo: 'Info',
+ opAvail: 'Options disponibles',
+ value: 'Valeur',
+ size: 'Taille',
+ lines: 'lignes',
+ chkMulti: 'Sélection multiple',
+ opText: 'Texte',
+ opValue: 'Valeur',
+ btnAdd: 'Ajouter',
+ btnModify: 'Modifier',
+ btnUp: 'Monter',
+ btnDown: 'Descendre',
+ btnSetValue: 'Valeur sélectionnée',
+ btnDelete: 'Supprimer'
+ },
+ textarea: {
+ title: 'Propriétés de la zone de texte',
+ cols: 'Colonnes',
+ rows: 'Lignes'
+ },
+ textfield: {
+ title: 'Propriétés du champ texte',
+ name: 'Nom',
+ value: 'Valeur',
+ charWidth: 'Largeur en caractères',
+ maxChars: 'Nombre maximum de caractères',
+ type: 'Type',
+ typeText: 'Texte',
+ typePass: 'Mot de passe',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/fr.js b/devel/third-party/ckeditor/plugins/forms/lang/fr.js
new file mode 100644
index 0000000..cef771b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/fr.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'fr', {
+ button: {
+ title: 'Propriétés du bouton',
+ text: 'Texte (Value)',
+ type: 'Type',
+ typeBtn: 'Bouton',
+ typeSbm: 'Validation (submit)',
+ typeRst: 'Remise à zéro'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Propriétés de la case à cocher',
+ radioTitle: 'Propriétés du bouton Radio',
+ value: 'Valeur',
+ selected: 'Sélectionné'
+ },
+ form: {
+ title: 'Propriétés du formulaire',
+ menu: 'Propriétés du formulaire',
+ action: 'Action',
+ method: 'Méthode',
+ encoding: 'Encodage'
+ },
+ hidden: {
+ title: 'Propriétés du champ caché',
+ name: 'Nom',
+ value: 'Valeur'
+ },
+ select: {
+ title: 'Propriétés du menu déroulant',
+ selectInfo: 'Informations sur le menu déroulant',
+ opAvail: 'Options disponibles',
+ value: 'Valeur',
+ size: 'Taille',
+ lines: 'Lignes',
+ chkMulti: 'Permettre les sélections multiples',
+ opText: 'Texte',
+ opValue: 'Valeur',
+ btnAdd: 'Ajouter',
+ btnModify: 'Modifier',
+ btnUp: 'Haut',
+ btnDown: 'Bas',
+ btnSetValue: 'Définir comme valeur sélectionnée',
+ btnDelete: 'Supprimer'
+ },
+ textarea: {
+ title: 'Propriétés de la zone de texte',
+ cols: 'Colonnes',
+ rows: 'Lignes'
+ },
+ textfield: {
+ title: 'Propriétés du champ texte',
+ name: 'Nom',
+ value: 'Valeur',
+ charWidth: 'Taille des caractères',
+ maxChars: 'Nombre maximum de caractères',
+ type: 'Type',
+ typeText: 'Texte',
+ typePass: 'Mot de passe',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/gl.js b/devel/third-party/ckeditor/plugins/forms/lang/gl.js
new file mode 100644
index 0000000..ac5a0a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/gl.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'gl', {
+ button: {
+ title: 'Propriedades do Botón',
+ text: 'Texto (Valor)',
+ type: 'Tipo',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Propriedades do Cadro de Verificación',
+ radioTitle: 'Propriedades do Botón de Radio',
+ value: 'Valor',
+ selected: 'Seleccionado'
+ },
+ form: {
+ title: 'Propriedades do Formulario',
+ menu: 'Propriedades do Formulario',
+ action: 'Acción',
+ method: 'Método',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Propriedades do Campo Oculto',
+ name: 'Nome',
+ value: 'Valor'
+ },
+ select: {
+ title: 'Propriedades do Campo de Selección',
+ selectInfo: 'Info',
+ opAvail: 'Opcións Disponibles',
+ value: 'Valor',
+ size: 'Tamaño',
+ lines: 'liñas',
+ chkMulti: 'Permitir múltiples seleccións',
+ opText: 'Texto',
+ opValue: 'Valor',
+ btnAdd: 'Engadir',
+ btnModify: 'Modificar',
+ btnUp: 'Subir',
+ btnDown: 'Baixar',
+ btnSetValue: 'Definir como valor por defecto',
+ btnDelete: 'Borrar'
+ },
+ textarea: {
+ title: 'Propriedades da Ãrea de Texto',
+ cols: 'Columnas',
+ rows: 'Filas'
+ },
+ textfield: {
+ title: 'Propriedades do Campo de Texto',
+ name: 'Nome',
+ value: 'Valor',
+ charWidth: 'Tamaño do Caracter',
+ maxChars: 'Máximo de Caracteres',
+ type: 'Tipo',
+ typeText: 'Texto',
+ typePass: 'Chave',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/gu.js b/devel/third-party/ckeditor/plugins/forms/lang/gu.js
new file mode 100644
index 0000000..14dc57f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/gu.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'gu', {
+ button: {
+ title: 'બàªàª¨àª¨àª¾ àªà«àª£',
+ text: 'àªà«àªà«àª¸à«àª (વà«
લà«àª¯à«)',
+ type: 'પà«àª°àªàª¾àª°',
+ typeBtn: 'બàªàª¨',
+ typeSbm: 'સબà«àª®àª¿àª',
+ typeRst: 'રિસà«àª'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'àªà«àª બà«àªà«àª¸ àªà«àª£',
+ radioTitle: 'રà«àª¡àª¿àª બàªàª¨àª¨àª¾ àªà«àª£',
+ value: 'વà«
લà«àª¯à«',
+ selected: 'સિલà«àªà«àªà«àª¡'
+ },
+ form: {
+ title: 'ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£',
+ menu: 'ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£',
+ action: 'àªà«àª°àª¿àª¯àª¾',
+ method: 'પદà«àª§àª¤àª¿',
+ encoding: 'àª
નà«àªà«àª¡à«àª¨à«àª'
+ },
+ hidden: {
+ title: 'àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',
+ name: 'નામ',
+ value: 'વà«
લà«àª¯à«'
+ },
+ select: {
+ title: 'પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',
+ selectInfo: 'સà«àªàª¨àª¾',
+ opAvail: 'àªàªªàª²àª¬à«àª§ વિàªàª²à«àªª',
+ value: 'વà«
લà«àª¯à«',
+ size: 'સાàªàª',
+ lines: 'લà«àªà«àª',
+ chkMulti: 'àªàªàª¥à« વધારૠપસàªàª¦ àªàª°à« શàªà«',
+ opText: 'àªà«àªà«àª¸à«àª',
+ opValue: 'વà«
લà«àª¯à«',
+ btnAdd: 'àªàª®à«àª°àªµà«àª',
+ btnModify: 'બદલવà«àª',
+ btnUp: 'àªàªªàª°',
+ btnDown: 'નà«àªà«',
+ btnSetValue: 'પસàªàª¦ àªàª°àª²à« વà«
લà«àª¯à« સà«àª àªàª°à«',
+ btnDelete: 'રદ àªàª°àªµà«àª'
+ },
+ textarea: {
+ title: 'àªà«àªà«àª¸à«àª àªàª
રિàª, શબà«àª¦ વિસà«àª¤àª¾àª°àª¨àª¾ àªà«àª£',
+ cols: 'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',
+ rows: 'પàªàªà«àª¤àª¿àª'
+ },
+ textfield: {
+ title: 'àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',
+ name: 'નામ',
+ value: 'વà«
લà«àª¯à«',
+ charWidth: 'àªà«àª°à«àªà«àªàª°àª¨à« પહà«àª³àª¾àª',
+ maxChars: 'àª
ધિàªàª¤àª® àªà«àª°à«àªà«àªàª°',
+ type: 'àªàª¾àªàªª',
+ typeText: 'àªà«àªà«àª¸à«àª',
+ typePass: 'પાસવરà«àª¡',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/he.js b/devel/third-party/ckeditor/plugins/forms/lang/he.js
new file mode 100644
index 0000000..7eb90f5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/he.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'he', {
+ button: {
+ title: '××פ××× × ×פת×ר',
+ text: '××§×¡× (ער×)',
+ type: 'ס××',
+ typeBtn: '×פת×ר',
+ typeSbm: 'ש××××',
+ typeRst: '××פ×ס'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: '××פ××× × ×ª××ת ס××××',
+ radioTitle: '××פ××× × ×××¦× ×פשר×××ת',
+ value: 'ער×',
+ selected: '×ס×××'
+ },
+ form: {
+ title: '××פ×× × ××פס',
+ menu: '××פ×× × ××פס',
+ action: 'ש×× ××',
+ method: 'ס×× ×©××××',
+ encoding: '×§××××'
+ },
+ hidden: {
+ title: '××פ×× × ×©×× ××××',
+ name: 'ש×',
+ value: 'ער×'
+ },
+ select: {
+ title: '××פ××× × ×©×× ×××ר×',
+ selectInfo: '××××¢',
+ opAvail: '×פשר×××ת ×××× ×ת',
+ value: 'ער×',
+ size: '××××',
+ lines: 'ש×ר×ת',
+ chkMulti: '××פש×ר ×××ר×ת ×ר×××ת',
+ opText: '×קס×',
+ opValue: 'ער×',
+ btnAdd: '××ספ×',
+ btnModify: 'ש×× ××',
+ btnUp: '×××¢××',
+ btnDown: '××××',
+ btnSetValue: '×§×××¢× ××ר×רת ××××',
+ btnDelete: '××××§×'
+ },
+ textarea: {
+ title: '××פ××× × ××××ר ×קס×',
+ cols: '×¢××××ת',
+ rows: 'ש×ר×ת'
+ },
+ textfield: {
+ title: '××פ××× × ×©×× ×קס×',
+ name: 'ש×',
+ value: 'ער×',
+ charWidth: 'ר××× ××¤× ×ª××××',
+ maxChars: '×קס×××× ×ª××××',
+ type: 'ס××',
+ typeText: '×קס×',
+ typePass: 'ס×ס××',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/hi.js b/devel/third-party/ckeditor/plugins/forms/lang/hi.js
new file mode 100644
index 0000000..e6f85ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/hi.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'hi', {
+ button: {
+ title: 'बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ text: 'à¤à¥à¤à¥à¤¸à¥à¤ (वà¥à¤²à¥à¤¯à¥)',
+ type: 'पà¥à¤°à¤à¤¾à¤°',
+ typeBtn: 'बà¤à¤¨',
+ typeSbm: 'सबà¥à¤®à¤¿à¤',
+ typeRst: 'रिसà¥à¤'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'à¤à¥
ठबà¥à¤à¥à¤¸ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ radioTitle: 'रà¥à¤¡à¤¿à¤ बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ value: 'वà¥à¤²à¥à¤¯à¥',
+ selected: 'सà¥
लà¥
à¤à¥à¤à¥
ड'
+ },
+ form: {
+ title: 'à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ menu: 'à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ action: 'à¤à¥à¤°à¤¿à¤¯à¤¾',
+ method: 'तरà¥à¤à¤¾',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ name: 'नाम',
+ value: 'वà¥à¤²à¥à¤¯à¥'
+ },
+ select: {
+ title: 'à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ selectInfo: 'सà¥à¤à¤¨à¤¾',
+ opAvail: 'à¤à¤ªà¤²à¤¬à¥à¤§ विà¤à¤²à¥à¤ª',
+ value: 'वà¥à¤²à¥à¤¯à¥',
+ size: 'साà¤à¥',
+ lines: 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤',
+ chkMulti: 'à¤à¤ सॠà¤à¥à¤¯à¤¾à¤¦à¤¾ विà¤à¤²à¥à¤ª à¤à¥à¤¨à¤¨à¥ दà¥à¤',
+ opText: 'à¤à¥à¤à¥à¤¸à¥à¤',
+ opValue: 'वà¥à¤²à¥à¤¯à¥',
+ btnAdd: 'à¤à¥à¥à¥à¤',
+ btnModify: 'बदलà¥à¤',
+ btnUp: 'à¤à¤ªà¤°',
+ btnDown: 'नà¥à¤à¥',
+ btnSetValue: 'à¤à¥à¤¨à¥ à¤à¤ वà¥à¤²à¥à¤¯à¥ सà¥
ठà¤à¤°à¥à¤',
+ btnDelete: 'डिलà¥à¤'
+ },
+ textarea: {
+ title: 'à¤à¥à¤à¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ cols: 'à¤à¤¾à¤²à¤®',
+ rows: 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤'
+ },
+ textfield: {
+ title: 'à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ name: 'नाम',
+ value: 'वà¥à¤²à¥à¤¯à¥',
+ charWidth: 'à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥ à¤à¥à¥à¤¾à¤',
+ maxChars: 'à¤
धिà¤à¤¤à¤® à¤à¤°à¥
à¤à¥à¤à¤°',
+ type: 'à¤à¤¾à¤à¤ª',
+ typeText: 'à¤à¥à¤à¥à¤¸à¥à¤',
+ typePass: 'पासà¥à¤µà¤°à¥à¤¡',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/hr.js b/devel/third-party/ckeditor/plugins/forms/lang/hr.js
new file mode 100644
index 0000000..a32ed81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/hr.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'hr', {
+ button: {
+ title: 'Image Button svojstva',
+ text: 'Tekst (vrijednost)',
+ type: 'Vrsta',
+ typeBtn: 'Gumb',
+ typeSbm: 'Pošalji',
+ typeRst: 'Poništi'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox svojstva',
+ radioTitle: 'Radio Button svojstva',
+ value: 'Vrijednost',
+ selected: 'Odabrano'
+ },
+ form: {
+ title: 'Form svojstva',
+ menu: 'Form svojstva',
+ action: 'Akcija',
+ method: 'Metoda',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field svojstva',
+ name: 'Ime',
+ value: 'Vrijednost'
+ },
+ select: {
+ title: 'Selection svojstva',
+ selectInfo: 'Info',
+ opAvail: 'Dostupne opcije',
+ value: 'Vrijednost',
+ size: 'VeliÄina',
+ lines: 'linija',
+ chkMulti: 'Dozvoli višestruki odabir',
+ opText: 'Tekst',
+ opValue: 'Vrijednost',
+ btnAdd: 'Dodaj',
+ btnModify: 'Promijeni',
+ btnUp: 'Gore',
+ btnDown: 'Dolje',
+ btnSetValue: 'Postavi kao odabranu vrijednost',
+ btnDelete: 'Obriši'
+ },
+ textarea: {
+ title: 'Textarea svojstva',
+ cols: 'Kolona',
+ rows: 'Redova'
+ },
+ textfield: {
+ title: 'Text Field svojstva',
+ name: 'Ime',
+ value: 'Vrijednost',
+ charWidth: 'Å irina',
+ maxChars: 'Najviše karaktera',
+ type: 'Vrsta',
+ typeText: 'Tekst',
+ typePass: 'Å ifra',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/hu.js b/devel/third-party/ckeditor/plugins/forms/lang/hu.js
new file mode 100644
index 0000000..bd0ca09
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/hu.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'hu', {
+ button: {
+ title: 'Gomb tulajdonságai',
+ text: 'Szöveg (Ãrték)',
+ type: 'TÃpus',
+ typeBtn: 'Gomb',
+ typeSbm: 'Küldés',
+ typeRst: 'Alaphelyzet'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'JelölÅnégyzet tulajdonságai',
+ radioTitle: 'Választógomb tulajdonságai',
+ value: 'Ãrték',
+ selected: 'Kiválasztott'
+ },
+ form: {
+ title: 'Űrlap tulajdonságai',
+ menu: 'Űrlap tulajdonságai',
+ action: 'Adatfeldolgozást végzŠhivatkozás',
+ method: 'Adatküldés módja',
+ encoding: 'Kódolás'
+ },
+ hidden: {
+ title: 'Rejtett mezŠtulajdonságai',
+ name: 'Név',
+ value: 'Ãrték'
+ },
+ select: {
+ title: 'LegördülŠlista tulajdonságai',
+ selectInfo: 'Alaptulajdonságok',
+ opAvail: 'ElérhetŠopciók',
+ value: 'Ãrték',
+ size: 'Méret',
+ lines: 'sor',
+ chkMulti: 'több sor is kiválasztható',
+ opText: 'Szöveg',
+ opValue: 'Ãrték',
+ btnAdd: 'Hozzáad',
+ btnModify: 'MódosÃt',
+ btnUp: 'Fel',
+ btnDown: 'Le',
+ btnSetValue: 'Legyen az alapértelmezett érték',
+ btnDelete: 'Töröl'
+ },
+ textarea: {
+ title: 'Szövegterület tulajdonságai',
+ cols: 'Karakterek száma egy sorban',
+ rows: 'Sorok száma'
+ },
+ textfield: {
+ title: 'SzövegmezŠtulajdonságai',
+ name: 'Név',
+ value: 'Ãrték',
+ charWidth: 'MegjelenÃtett karakterek száma',
+ maxChars: 'Maximális karakterszám',
+ type: 'TÃpus',
+ typeText: 'Szöveg',
+ typePass: 'Jelszó',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/is.js b/devel/third-party/ckeditor/plugins/forms/lang/is.js
new file mode 100644
index 0000000..941af48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/is.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'is', {
+ button: {
+ title: 'Eigindi hnapps',
+ text: 'Texti',
+ type: 'Gerð',
+ typeBtn: 'Hnappur',
+ typeSbm: 'Staðfesta',
+ typeRst: 'Hreinsa'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Eigindi markreits',
+ radioTitle: 'Eigindi valhnapps',
+ value: 'Gildi',
+ selected: 'Valið'
+ },
+ form: {
+ title: 'Eigindi innsláttarforms',
+ menu: 'Eigindi innsláttarforms',
+ action: 'Aðgerð',
+ method: 'Aðferð',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Eigindi falins svæðis',
+ name: 'Nafn',
+ value: 'Gildi'
+ },
+ select: {
+ title: 'Eigindi lista',
+ selectInfo: 'Upplýsingar',
+ opAvail: 'Kostir',
+ value: 'Gildi',
+ size: 'Stærð',
+ lines: 'lÃnur',
+ chkMulti: 'Leyfa fleiri kosti',
+ opText: 'Texti',
+ opValue: 'Gildi',
+ btnAdd: 'Bæta við',
+ btnModify: 'Breyta',
+ btnUp: 'Upp',
+ btnDown: 'Niður',
+ btnSetValue: 'Merkja sem valið',
+ btnDelete: 'Eyða'
+ },
+ textarea: {
+ title: 'Eigindi textasvæðis',
+ cols: 'Dálkar',
+ rows: 'LÃnur'
+ },
+ textfield: {
+ title: 'Eigindi textareits',
+ name: 'Nafn',
+ value: 'Gildi',
+ charWidth: 'Breidd (leturtákn)',
+ maxChars: 'Hámarksfjöldi leturtákna',
+ type: 'Gerð',
+ typeText: 'Texti',
+ typePass: 'Lykilorð',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/it.js b/devel/third-party/ckeditor/plugins/forms/lang/it.js
new file mode 100644
index 0000000..d25b62b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/it.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'it', {
+ button: {
+ title: 'Proprietà bottone',
+ text: 'Testo (Valore)',
+ type: 'Tipo',
+ typeBtn: 'Bottone',
+ typeSbm: 'Invio',
+ typeRst: 'Annulla'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Proprietà checkbox',
+ radioTitle: 'Proprietà radio button',
+ value: 'Valore',
+ selected: 'Selezionato'
+ },
+ form: {
+ title: 'Proprietà modulo',
+ menu: 'Proprietà modulo',
+ action: 'Azione',
+ method: 'Metodo',
+ encoding: 'Codifica'
+ },
+ hidden: {
+ title: 'Proprietà campo nascosto',
+ name: 'Nome',
+ value: 'Valore'
+ },
+ select: {
+ title: 'Proprietà menu di selezione',
+ selectInfo: 'Info',
+ opAvail: 'Opzioni disponibili',
+ value: 'Valore',
+ size: 'Dimensione',
+ lines: 'righe',
+ chkMulti: 'Permetti selezione multipla',
+ opText: 'Testo',
+ opValue: 'Valore',
+ btnAdd: 'Aggiungi',
+ btnModify: 'Modifica',
+ btnUp: 'Su',
+ btnDown: 'Gi',
+ btnSetValue: 'Imposta come predefinito',
+ btnDelete: 'Rimuovi'
+ },
+ textarea: {
+ title: 'Proprietà area di testo',
+ cols: 'Colonne',
+ rows: 'Righe'
+ },
+ textfield: {
+ title: 'Proprietà campo di testo',
+ name: 'Nome',
+ value: 'Valore',
+ charWidth: 'Larghezza',
+ maxChars: 'Numero massimo di caratteri',
+ type: 'Tipo',
+ typeText: 'Testo',
+ typePass: 'Password',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ja.js b/devel/third-party/ckeditor/plugins/forms/lang/ja.js
new file mode 100644
index 0000000..580e6d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ja.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ja', {
+ button: {
+ title: 'ãã¿ã³ ããããã£',
+ text: 'ããã¹ã (å¤)',
+ type: 'ã¿ã¤ã',
+ typeBtn: 'ãã¿ã³',
+ typeSbm: 'éä¿¡',
+ typeRst: 'ãªã»ãã'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ãã§ãã¯ããã¯ã¹ ããããã£',
+ radioTitle: 'ã©ã¸ãªãã¿ã³ ããããã£',
+ value: 'å¤',
+ selected: '鏿æ¸ã¿'
+ },
+ form: {
+ title: 'ãã©ã¼ã ããããã£',
+ menu: 'ãã©ã¼ã ããããã£',
+ action: 'ã¢ã¯ã·ã§ã³',
+ method: 'ã¡ã½ãã',
+ encoding: 'ã¨ã³ã³ã¼ãã£ã³ã°'
+ },
+ hidden: {
+ title: 'ä¸å¯è¦ãã£ã¼ã«ã ããããã£',
+ name: 'åå',
+ value: 'å¤'
+ },
+ select: {
+ title: '鏿ãã£ã¼ã«ã ããããã£',
+ selectInfo: 'æ
å ±',
+ opAvail: 'å©ç¨å¯è½ãªãªãã·ã§ã³',
+ value: '鏿é
ç®å¤',
+ size: 'ãµã¤ãº',
+ lines: 'è¡',
+ chkMulti: 'è¤æ°é
ç®é¸æã許å¯',
+ opText: '鏿é
ç®å',
+ opValue: 'å¤',
+ btnAdd: '追å ',
+ btnModify: 'ç·¨é',
+ btnUp: 'ä¸ã¸',
+ btnDown: 'ä¸ã¸',
+ btnSetValue: '鏿ããå¤ãè¨å®',
+ btnDelete: 'åé¤'
+ },
+ textarea: {
+ title: 'ããã¹ãã¨ãªã¢ ããããã£',
+ cols: 'å',
+ rows: 'è¡'
+ },
+ textfield: {
+ title: 'ï¼è¡ããã¹ã ããããã£',
+ name: 'åå',
+ value: 'å¤',
+ charWidth: 'ãµã¤ãº',
+ maxChars: 'æå¤§é·',
+ type: 'ã¿ã¤ã',
+ typeText: 'ããã¹ã',
+ typePass: 'ãã¹ã¯ã¼ãå
¥å',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ka.js b/devel/third-party/ckeditor/plugins/forms/lang/ka.js
new file mode 100644
index 0000000..28eac7a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ka.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ka', {
+ button: {
+ title: 'á¦áááááá¡ ááá áááá¢á ááá',
+ text: 'á¢áá¥á¡á¢á',
+ type: 'á¢ááá',
+ typeBtn: 'á¦ááááá',
+ typeSbm: 'áááááááá',
+ typeRst: 'ááá¡á£á¤áááááá'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ááááá¨áááá¡ á¦áááááá¡ (Checkbox) ááá áááá¢á ááá',
+ radioTitle: 'áá¡áá á©ááá á¦áááááá¡ (Radio) ááá áááá¢á ááá',
+ value: 'á¢áá¥á¡á¢á',
+ selected: 'áá á©áá£áá'
+ },
+ form: {
+ title: 'á¤áá ááá¡ ááá áááá¢á ááá',
+ menu: 'á¤áá ááá¡ ááá áááá¢á ááá',
+ action: 'á¥áááááá',
+ method: 'áááááá',
+ encoding: 'ááááá ááá'
+ },
+ hidden: {
+ title: 'áááá£áá ááááá¡ ááá áááá¢á ááá',
+ name: 'á¡áá®ááá',
+ value: 'áááá¨ááááááá'
+ },
+ select: {
+ title: 'áá á©áááá¡ ááááá¡ ááá áááá¢á ááá',
+ selectInfo: 'ááá¤áá áááªáá',
+ opAvail: 'á¨áá¡áá«áááááá ááá áááá¢ááá',
+ value: 'áááá¨ááááááá',
+ size: 'áááá',
+ lines: 'á®ááááá',
+ chkMulti: 'áá áááááááá áá á©áááááá¡ á¡áá¨á£ááááá',
+ opText: 'á¢áá¥á¡á¢á',
+ opValue: 'áááá¨ááááááá',
+ btnAdd: 'ááááá¢ááá',
+ btnModify: 'á¨ááªááá',
+ btnUp: 'ááááá',
+ btnDown: 'á¥ááááá',
+ btnSetValue: 'áááá á©áá£á áááá¨ááááááááá ááá§ááááá',
+ btnDelete: 'á¬áá¨áá'
+ },
+ textarea: {
+ title: 'á¢áá¥á¡á¢á£á á áá áá¡ ááá áááá¢á ááá',
+ cols: 'á¡ááá¢ááá',
+ rows: 'á¡á¢á áá¥ááááá'
+ },
+ textfield: {
+ title: 'á¢áá¥á¡á¢á£á á ááááá¡ ááá áááá¢á ááá',
+ name: 'á¡áá®ááá',
+ value: 'áááá¨ááááááá',
+ charWidth: 'á¡ááááááá¡ áááá',
+ maxChars: 'áá¡ááááá¡ ááá¥á¡ááááá£á á ááááááá',
+ type: 'á¢ááá',
+ typeText: 'á¢áá¥á¡á¢á',
+ typePass: 'ááá ááá',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/km.js b/devel/third-party/ckeditor/plugins/forms/lang/km.js
new file mode 100644
index 0000000..91c8ceb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/km.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'km', {
+ button: {
+ title: 'áá¶áááááá ááá¼áá»á',
+ text: 'á¢ááááá(áááá)',
+ type: 'áááááá',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'áá¶áááááááááá¢áááááá¾ááá¾á',
+ radioTitle: 'áá¶ááááááááá¼áá»ááááááá',
+ value: 'áááá',
+ selected: 'áá¶ááááá¾ááá¾á'
+ },
+ form: {
+ title: 'áá¶ááááááááááá',
+ menu: 'áá¶ááááááááááá',
+ action: 'ááááááá¶á',
+ method: 'áá·áá¸',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'áá¶áááááááá½ááá¶áá',
+ name: 'ááááá',
+ value: 'áááá'
+ },
+ select: {
+ title: 'áá¶áááááááá½ááááá¾ááá¾á',
+ selectInfo: 'ááááá¶á',
+ opAvail: 'áá¶áááááááááá¾ááá¾á áááá¢á¶á
ááááááá¶á',
+ value: 'áááá',
+ size: 'ááá á',
+ lines: 'ááááá¶áá',
+ chkMulti: 'á¢áá»áááá¶áá¢áááááá¾ááá¾áá
ááá¾á',
+ opText: 'áá¶ááá',
+ opValue: 'áááá',
+ btnAdd: 'áááááá',
+ btnModify: 'áááá¶áááááá¼á',
+ btnUp: 'áá¾',
+ btnDown: 'ááááá',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'ááá'
+ },
+ textarea: {
+ title: 'áá¶áááááááááááááááááá¢ááááá',
+ cols: 'áá¼ááá',
+ rows: 'áá¼áááááá'
+ },
+ textfield: {
+ title: 'áá¶áááááááá½áá¢ááááá',
+ name: 'ááááá',
+ value: 'áááá',
+ charWidth: 'ááá¹á á¢áááá',
+ maxChars: 'á¢ááááá¢áá·ááá·áá¶',
+ type: 'áááááá',
+ typeText: 'áá¶ááá',
+ typePass: 'áá¶ááááááá¶áá',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ko.js b/devel/third-party/ckeditor/plugins/forms/lang/ko.js
new file mode 100644
index 0000000..6b5117b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ko.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ko', {
+ button: {
+ title: 'ë²í¼ ìì±',
+ text: 'ë²í¼ê¸ì(ê°)',
+ type: 'ë²í¼ì¢
ë¥',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ì²´í¬ë°ì¤ ìì±',
+ radioTitle: 'ë¼ëì¤ë²í¼ ìì±',
+ value: 'ê°',
+ selected: 'ì íë¨'
+ },
+ form: {
+ title: 'í¼ ìì±',
+ menu: 'í¼ ìì±',
+ action: 'ì¤íê²½ë¡(Action)',
+ method: 'ë°©ë²(Method)',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'ì¨ê¹íë ìì±',
+ name: 'ì´ë¦',
+ value: 'ê°'
+ },
+ select: {
+ title: 'í¼ì¹¨ëª©ë¡ ìì±',
+ selectInfo: 'ì ë³´',
+ opAvail: 'ì íìµì
',
+ value: 'ê°',
+ size: 'ì¸ë¡í¬ê¸°',
+ lines: 'ì¤',
+ chkMulti: 'ì¬ë¬í목 ì í íì©',
+ opText: 'ì´ë¦',
+ opValue: 'ê°',
+ btnAdd: 'ì¶ê°',
+ btnModify: 'ë³ê²½',
+ btnUp: 'ìë¡',
+ btnDown: 'ìëë¡',
+ btnSetValue: 'ì íëê²ì¼ë¡ ì¤ì ',
+ btnDelete: 'ìì '
+ },
+ textarea: {
+ title: 'ì
ë ¥ìì ìì±',
+ cols: '칸ì',
+ rows: 'ì¤ì'
+ },
+ textfield: {
+ title: 'ì
ë ¥íë ìì±',
+ name: 'ì´ë¦',
+ value: 'ê°',
+ charWidth: 'ê¸ì ëë¹',
+ maxChars: 'ìµë ê¸ìì',
+ type: 'ì¢
ë¥',
+ typeText: '문ìì´',
+ typePass: 'ë¹ë°ë²í¸',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ku.js b/devel/third-party/ckeditor/plugins/forms/lang/ku.js
new file mode 100644
index 0000000..1748d61
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ku.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ku', {
+ button: {
+ title: 'خاسÛÙØªÛ دÙÚ¯Ù
Ù',
+ text: '(ÙØ±Ø®Û) دÙÙ',
+ type: 'Ø¬ÛØ±',
+ typeBtn: 'دÙÚ¯Ù
Ù',
+ typeSbm: 'ÙØ§Ø±Ø¯Ù',
+ typeRst: 'ÚÛکخستÙÙÙÙ'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'خاسÛÙØªÛ ÚÙÙØ§Ø±Ú¯ÛØ´Û Ù¾Ø´Ú©ÙÛÙ',
+ radioTitle: 'خاسÛÙØªÛ جÛگرÙÙÙÛ Ø¯ÙÚ¯Ù
Ù',
+ value: 'ÙØ±Ø®',
+ selected: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯Ø±Ø§'
+ },
+ form: {
+ title: 'خاسÛÙØªÛ Ø¯Ø§ÚØ´ØªÙ',
+ menu: 'خاسÛÙØªÛ Ø¯Ø§ÚØ´ØªÙ',
+ action: 'کردار',
+ method: 'ÚÛÚ¯Ù',
+ encoding: 'بÙÚ©ÛØ¯Ú©Ùر'
+ },
+ hidden: {
+ title: 'خاسÛÙØªÛ خاÙÙÛ Ø´Ø§Ø±Ø¯Ø±Ø§ÙÙ',
+ name: 'ÙØ§Ù',
+ value: 'ÙØ±Ø®'
+ },
+ select: {
+ title: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ Ø®Ø§Ø³ÛÙØªÛ خاÙÙ',
+ selectInfo: 'زاÙÛØ§Ø±Û',
+ opAvail: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙØ¨ÙÙ',
+ value: 'ÙØ±Ø®',
+ size: 'Ú¯ÙÙØ±ÙÛÛ',
+ lines: 'ÙÛÚµÙکاÙ',
+ chkMulti: 'ÚÛØ¯Ø§Ù بÙÙØ±Ù ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù',
+ opText: 'دÙÙ',
+ opValue: 'ÙØ±Ø®',
+ btnAdd: 'Ø²ÛØ§Ø¯Ú©Ø±Ø¯Ù',
+ btnModify: 'Ú¯ÛÚØ§ÙکارÛ',
+ btnUp: 'Ø³ÙØ±ÙÙÙ',
+ btnDown: 'Ø®ÙØ§Ø±ÙÙÙ',
+ btnSetValue: 'دابÙÛ ÙÙÙ ÙØ±Ø®ÛÚ©Û ÙÙڵبÚÛØ±Ø¯Ø±Ø§Ù',
+ btnDelete: 'سÚÛÙÙÙÙ'
+ },
+ textarea: {
+ title: 'خاسÛÙØªÛ ÚÙÙØ¨ÙØ±Û Ø¯ÙÙ',
+ cols: 'Ø¦ÙØ³ØªÙÙÛÙکاÙ',
+ rows: 'ÚÛØ²ÙکاÙ'
+ },
+ textfield: {
+ title: 'خاسÛÙØªÛ خاÙÙÛ Ø¯ÙÙ',
+ name: 'ÙØ§Ù',
+ value: 'ÙØ±Ø®',
+ charWidth: 'پاÙÛ ÙÙÙØ³Ù',
+ maxChars: 'ئÙÙÙ¾ÙÚÛ ÙÙÙØ³Ù',
+ type: 'Ø¬ÛØ±',
+ typeText: 'دÙÙ',
+ typePass: 'Ù¾ÛÙ¾ÙÚÙÙØ´Ù',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/lt.js b/devel/third-party/ckeditor/plugins/forms/lang/lt.js
new file mode 100644
index 0000000..12b45ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/lt.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'lt', {
+ button: {
+ title: 'Mygtuko savybÄs',
+ text: 'Tekstas (ReikÅ¡mÄ)',
+ type: 'Tipas',
+ typeBtn: 'Mygtukas',
+ typeSbm: 'Siųsti',
+ typeRst: 'Išvalyti'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Žymimojo langelio savybÄs',
+ radioTitle: 'Žymimosios akutÄs savybÄs',
+ value: 'ReikÅ¡mÄ',
+ selected: 'PažymÄtas'
+ },
+ form: {
+ title: 'Formos savybÄs',
+ menu: 'Formos savybÄs',
+ action: 'Veiksmas',
+ method: 'Metodas',
+ encoding: 'Kodavimas'
+ },
+ hidden: {
+ title: 'Nerodomo lauko savybÄs',
+ name: 'Vardas',
+ value: 'ReikÅ¡mÄ'
+ },
+ select: {
+ title: 'Atrankos lauko savybÄs',
+ selectInfo: 'Informacija',
+ opAvail: 'Galimos parinktys',
+ value: 'ReikÅ¡mÄ',
+ size: 'Dydis',
+ lines: 'eiluÄių',
+ chkMulti: 'Leisti daugeriopÄ
atrankÄ
',
+ opText: 'Tekstas',
+ opValue: 'ReikÅ¡mÄ',
+ btnAdd: 'Įtraukti',
+ btnModify: 'Modifikuoti',
+ btnUp: 'Aukštyn',
+ btnDown: 'Žemyn',
+ btnSetValue: 'Laikyti pažymÄta reikÅ¡me',
+ btnDelete: 'Trinti'
+ },
+ textarea: {
+ title: 'Teksto srities savybÄs',
+ cols: 'Ilgis',
+ rows: 'Plotis'
+ },
+ textfield: {
+ title: 'Teksto lauko savybÄs',
+ name: 'Vardas',
+ value: 'ReikÅ¡mÄ',
+ charWidth: 'Ilgis simboliais',
+ maxChars: 'Maksimalus simbolių skaiÄius',
+ type: 'Tipas',
+ typeText: 'Tekstas',
+ typePass: 'Slaptažodis',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/lv.js b/devel/third-party/ckeditor/plugins/forms/lang/lv.js
new file mode 100644
index 0000000..554015c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/lv.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'lv', {
+ button: {
+ title: 'Pogas īpašības',
+ text: 'Teksts (vÄrtÄ«ba)',
+ type: 'Tips',
+ typeBtn: 'Poga',
+ typeSbm: 'Nosūtīt',
+ typeRst: 'Atcelt'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'AtzÄ«mÄÅ¡anas kastÄ«tes Ä«pašības',
+ radioTitle: 'IzvÄles poga Ä«pašības',
+ value: 'VÄrtÄ«ba',
+ selected: 'IezÄ«mÄts'
+ },
+ form: {
+ title: 'Formas īpašības',
+ menu: 'Formas īpašības',
+ action: 'Darbība',
+ method: 'Metode',
+ encoding: 'KodÄjums'
+ },
+ hidden: {
+ title: 'PaslÄptÄs teksta rindas Ä«pašības',
+ name: 'Nosaukums',
+ value: 'VÄrtÄ«ba'
+ },
+ select: {
+ title: 'IezÄ«mÄÅ¡anas lauka Ä«pašības',
+ selectInfo: 'InformÄcija',
+ opAvail: 'PieejamÄs iespÄjas',
+ value: 'VÄrtÄ«ba',
+ size: 'IzmÄrs',
+ lines: 'rindas',
+ chkMulti: 'Atļaut vairÄkus iezÄ«mÄjumus',
+ opText: 'Teksts',
+ opValue: 'VÄrtÄ«ba',
+ btnAdd: 'Pievienot',
+ btnModify: 'Veikt izmaiÅas',
+ btnUp: 'Augšup',
+ btnDown: 'Lejup',
+ btnSetValue: 'Noteikt kÄ iezÄ«mÄto vÄrtÄ«bu',
+ btnDelete: 'DzÄst'
+ },
+ textarea: {
+ title: 'Teksta laukuma īpašības',
+ cols: 'Kolonnas',
+ rows: 'Rindas'
+ },
+ textfield: {
+ title: 'Teksta rindas īpašības',
+ name: 'Nosaukums',
+ value: 'VÄrtÄ«ba',
+ charWidth: 'Simbolu platums',
+ maxChars: 'Simbolu maksimÄlais daudzums',
+ type: 'Tips',
+ typeText: 'Teksts',
+ typePass: 'Parole',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/mk.js b/devel/third-party/ckeditor/plugins/forms/lang/mk.js
new file mode 100644
index 0000000..3819808
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/mk.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'mk', {
+ button: {
+ title: 'Button Properties',
+ text: 'Text (Value)',
+ type: 'Type',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Checkbox Properties',
+ radioTitle: 'Radio Button Properties',
+ value: 'Value',
+ selected: 'Selected'
+ },
+ form: {
+ title: 'Form Properties',
+ menu: 'Form Properties',
+ action: 'Action',
+ method: 'Method',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Hidden Field Properties',
+ name: 'Name',
+ value: 'Value'
+ },
+ select: {
+ title: 'Selection Field Properties',
+ selectInfo: 'Select Info',
+ opAvail: 'Available Options',
+ value: 'Value',
+ size: 'Size',
+ lines: 'lines',
+ chkMulti: 'Allow multiple selections',
+ opText: 'Text',
+ opValue: 'Value',
+ btnAdd: 'Add',
+ btnModify: 'Modify',
+ btnUp: 'Up',
+ btnDown: 'Down',
+ btnSetValue: 'Set as selected value',
+ btnDelete: 'Delete'
+ },
+ textarea: {
+ title: 'Textarea Properties',
+ cols: 'Columns',
+ rows: 'Rows'
+ },
+ textfield: {
+ title: 'Text Field Properties',
+ name: 'Name',
+ value: 'Value',
+ charWidth: 'Character Width',
+ maxChars: 'Maximum Characters',
+ type: 'Type',
+ typeText: 'Text',
+ typePass: 'Password',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/mn.js b/devel/third-party/ckeditor/plugins/forms/lang/mn.js
new file mode 100644
index 0000000..cac82fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/mn.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'mn', {
+ button: {
+ title: 'ТовÑÐ½Ñ Ñинж ÑанаÑ',
+ text: 'ТÑкÑÑ (УÑга)',
+ type: 'ТөÑөл',
+ typeBtn: 'ТовÑ',
+ typeSbm: 'Submit',
+ typeRst: 'ÐолиÑ
'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ЧекбокÑÐ½Ñ Ñинж ÑанаÑ',
+ radioTitle: 'Радио ÑовÑÐ½Ñ Ñинж ÑанаÑ',
+ value: 'УÑга',
+ selected: 'СонгогдÑон'
+ },
+ form: {
+ title: 'ФоÑм Ñинж ÑанаÑ',
+ menu: 'ФоÑм Ñинж ÑанаÑ',
+ action: 'ҮйлдÑл',
+ method: 'ÐÑга',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'ÐÑÑÑ ÑалбаÑÑн Ñинж ÑанаÑ',
+ name: 'ÐÑÑ',
+ value: 'УÑга'
+ },
+ select: {
+ title: 'Ð¡Ð¾Ð³Ð¾Ð³Ñ ÑалбаÑÑн Ñинж ÑанаÑ',
+ selectInfo: 'ÐÑдÑÑлÑл',
+ opAvail: 'ÐдвÑÑ
ÑÑй ÑонголÑ',
+ value: 'УÑга',
+ size: 'Ð¥ÑмжÑÑ',
+ lines: 'ÐÓ©Ñ',
+ chkMulti: 'Ðлон зүйл зÑÑÑг ÑонгоÑ
Ñг зөвÑÓ©Ó©ÑÓ©Ñ
',
+ opText: 'ТÑкÑÑ',
+ opValue: 'УÑга',
+ btnAdd: 'ÐÑмÑÑ
',
+ btnModify: 'Ó¨Ó©ÑÑлөÑ
',
+ btnUp: 'ÐÑÑÑ',
+ btnDown: 'ÐооÑ',
+ btnSetValue: 'СонгогдÑан ÑÑга онооÑ
',
+ btnDelete: 'УÑÑгаÑ
'
+ },
+ textarea: {
+ title: 'ТекÑÑ Ð¾ÑÑÐ½Ñ Ñинж ÑанаÑ',
+ cols: 'Ðагана',
+ rows: 'ÐÓ©Ñ'
+ },
+ textfield: {
+ title: 'ТекÑÑ ÑалбаÑÑн Ñинж ÑанаÑ',
+ name: 'ÐÑÑ',
+ value: 'УÑга',
+ charWidth: 'ТÑмдÑгÑÑн Ó©Ñгөн',
+ maxChars: 'Хамгийн иÑ
ÑÑмдÑгÑ',
+ type: 'ТөÑөл',
+ typeText: 'ТекÑÑ',
+ typePass: 'ÐÑÑÑ Ò¯Ð³',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ms.js b/devel/third-party/ckeditor/plugins/forms/lang/ms.js
new file mode 100644
index 0000000..f2f88ba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ms.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ms', {
+ button: {
+ title: 'Ciri-ciri Butang',
+ text: 'Teks (Nilai)',
+ type: 'Jenis',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Ciri-ciri Checkbox',
+ radioTitle: 'Ciri-ciri Butang Radio',
+ value: 'Nilai',
+ selected: 'Dipilih'
+ },
+ form: {
+ title: 'Ciri-ciri Borang',
+ menu: 'Ciri-ciri Borang',
+ action: 'Tindakan borang',
+ method: 'Cara borang dihantar',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Ciri-ciri Field Tersembunyi',
+ name: 'Nama',
+ value: 'Nilai'
+ },
+ select: {
+ title: 'Ciri-ciri Selection Field',
+ selectInfo: 'Select Info',
+ opAvail: 'Pilihan sediada',
+ value: 'Nilai',
+ size: 'Saiz',
+ lines: 'garisan',
+ chkMulti: 'Benarkan pilihan pelbagai',
+ opText: 'Teks',
+ opValue: 'Nilai',
+ btnAdd: 'Tambah Pilihan',
+ btnModify: 'Ubah Pilihan',
+ btnUp: 'Naik ke atas',
+ btnDown: 'Turun ke bawah',
+ btnSetValue: 'Set sebagai nilai terpilih',
+ btnDelete: 'Padam'
+ },
+ textarea: {
+ title: 'Ciri-ciri Textarea',
+ cols: 'Lajur',
+ rows: 'Baris'
+ },
+ textfield: {
+ title: 'Ciri-ciri Text Field',
+ name: 'Nama',
+ value: 'Nilai',
+ charWidth: 'Lebar isian',
+ maxChars: 'Isian Maksimum',
+ type: 'Jenis',
+ typeText: 'Teks',
+ typePass: 'Kata Laluan',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/nb.js b/devel/third-party/ckeditor/plugins/forms/lang/nb.js
new file mode 100644
index 0000000..328bb20
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/nb.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'nb', {
+ button: {
+ title: 'Egenskaper for knapp',
+ text: 'Tekst (verdi)',
+ type: 'Type',
+ typeBtn: 'Knapp',
+ typeSbm: 'Send',
+ typeRst: 'Nullstill'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Egenskaper for avmerkingsboks',
+ radioTitle: 'Egenskaper for alternativknapp',
+ value: 'Verdi',
+ selected: 'Valgt'
+ },
+ form: {
+ title: 'Egenskaper for skjema',
+ menu: 'Egenskaper for skjema',
+ action: 'Handling',
+ method: 'Metode',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Egenskaper for skjult felt',
+ name: 'Navn',
+ value: 'Verdi'
+ },
+ select: {
+ title: 'Egenskaper for rullegardinliste',
+ selectInfo: 'Info',
+ opAvail: 'Tilgjenglige alternativer',
+ value: 'Verdi',
+ size: 'Størrelse',
+ lines: 'Linjer',
+ chkMulti: 'Tillat flervalg',
+ opText: 'Tekst',
+ opValue: 'Verdi',
+ btnAdd: 'Legg til',
+ btnModify: 'Endre',
+ btnUp: 'Opp',
+ btnDown: 'Ned',
+ btnSetValue: 'Sett som valgt',
+ btnDelete: 'Slett'
+ },
+ textarea: {
+ title: 'Egenskaper for tekstområde',
+ cols: 'Kolonner',
+ rows: 'Rader'
+ },
+ textfield: {
+ title: 'Egenskaper for tekstfelt',
+ name: 'Navn',
+ value: 'Verdi',
+ charWidth: 'Tegnbredde',
+ maxChars: 'Maks antall tegn',
+ type: 'Type',
+ typeText: 'Tekst',
+ typePass: 'Passord',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/nl.js b/devel/third-party/ckeditor/plugins/forms/lang/nl.js
new file mode 100644
index 0000000..fa58817
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/nl.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'nl', {
+ button: {
+ title: 'Eigenschappen knop',
+ text: 'Tekst (waarde)',
+ type: 'Soort',
+ typeBtn: 'Knop',
+ typeSbm: 'Versturen',
+ typeRst: 'Leegmaken'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Eigenschappen aanvinkvakje',
+ radioTitle: 'Eigenschappen selectievakje',
+ value: 'Waarde',
+ selected: 'Geselecteerd'
+ },
+ form: {
+ title: 'Eigenschappen formulier',
+ menu: 'Eigenschappen formulier',
+ action: 'Actie',
+ method: 'Methode',
+ encoding: 'Codering'
+ },
+ hidden: {
+ title: 'Eigenschappen verborgen veld',
+ name: 'Naam',
+ value: 'Waarde'
+ },
+ select: {
+ title: 'Eigenschappen selectieveld',
+ selectInfo: 'Informatie',
+ opAvail: 'Beschikbare opties',
+ value: 'Waarde',
+ size: 'Grootte',
+ lines: 'Regels',
+ chkMulti: 'Gecombineerde selecties toestaan',
+ opText: 'Tekst',
+ opValue: 'Waarde',
+ btnAdd: 'Toevoegen',
+ btnModify: 'Wijzigen',
+ btnUp: 'Omhoog',
+ btnDown: 'Omlaag',
+ btnSetValue: 'Als geselecteerde waarde instellen',
+ btnDelete: 'Verwijderen'
+ },
+ textarea: {
+ title: 'Eigenschappen tekstvak',
+ cols: 'Kolommen',
+ rows: 'Rijen'
+ },
+ textfield: {
+ title: 'Eigenschappen tekstveld',
+ name: 'Naam',
+ value: 'Waarde',
+ charWidth: 'Breedte (tekens)',
+ maxChars: 'Maximum aantal tekens',
+ type: 'Soort',
+ typeText: 'Tekst',
+ typePass: 'Wachtwoord',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/no.js b/devel/third-party/ckeditor/plugins/forms/lang/no.js
new file mode 100644
index 0000000..a7a85cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/no.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'no', {
+ button: {
+ title: 'Egenskaper for knapp',
+ text: 'Tekst (verdi)',
+ type: 'Type',
+ typeBtn: 'Knapp',
+ typeSbm: 'Send',
+ typeRst: 'Nullstill'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Egenskaper for avmerkingsboks',
+ radioTitle: 'Egenskaper for alternativknapp',
+ value: 'Verdi',
+ selected: 'Valgt'
+ },
+ form: {
+ title: 'Egenskaper for skjema',
+ menu: 'Egenskaper for skjema',
+ action: 'Handling',
+ method: 'Metode',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Egenskaper for skjult felt',
+ name: 'Navn',
+ value: 'Verdi'
+ },
+ select: {
+ title: 'Egenskaper for rullegardinliste',
+ selectInfo: 'Info',
+ opAvail: 'Tilgjenglige alternativer',
+ value: 'Verdi',
+ size: 'Størrelse',
+ lines: 'Linjer',
+ chkMulti: 'Tillat flervalg',
+ opText: 'Tekst',
+ opValue: 'Verdi',
+ btnAdd: 'Legg til',
+ btnModify: 'Endre',
+ btnUp: 'Opp',
+ btnDown: 'Ned',
+ btnSetValue: 'Sett som valgt',
+ btnDelete: 'Slett'
+ },
+ textarea: {
+ title: 'Egenskaper for tekstområde',
+ cols: 'Kolonner',
+ rows: 'Rader'
+ },
+ textfield: {
+ title: 'Egenskaper for tekstfelt',
+ name: 'Navn',
+ value: 'Verdi',
+ charWidth: 'Tegnbredde',
+ maxChars: 'Maks antall tegn',
+ type: 'Type',
+ typeText: 'Tekst',
+ typePass: 'Passord',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/pl.js b/devel/third-party/ckeditor/plugins/forms/lang/pl.js
new file mode 100644
index 0000000..4ac63f3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/pl.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'pl', {
+ button: {
+ title: 'WÅaÅciwoÅci przycisku',
+ text: 'Tekst (WartoÅÄ)',
+ type: 'Typ',
+ typeBtn: 'Przycisk',
+ typeSbm: 'WyÅlij',
+ typeRst: 'WyczyÅÄ'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'WÅaÅciwoÅci pola wyboru (checkbox)',
+ radioTitle: 'WÅaÅciwoÅci przycisku opcji (radio)',
+ value: 'WartoÅÄ',
+ selected: 'Zaznaczone'
+ },
+ form: {
+ title: 'WÅaÅciwoÅci formularza',
+ menu: 'WÅaÅciwoÅci formularza',
+ action: 'Akcja',
+ method: 'Metoda',
+ encoding: 'Kodowanie'
+ },
+ hidden: {
+ title: 'WÅaÅciwoÅci pola ukrytego',
+ name: 'Nazwa',
+ value: 'WartoÅÄ'
+ },
+ select: {
+ title: 'WÅaÅciwoÅci listy wyboru',
+ selectInfo: 'Informacje',
+ opAvail: 'DostÄpne opcje',
+ value: 'WartoÅÄ',
+ size: 'Rozmiar',
+ lines: 'wierszy',
+ chkMulti: 'Wielokrotny wybór',
+ opText: 'Tekst',
+ opValue: 'WartoÅÄ',
+ btnAdd: 'Dodaj',
+ btnModify: 'ZmieÅ',
+ btnUp: 'Do góry',
+ btnDown: 'Do doÅu',
+ btnSetValue: 'Ustaw jako zaznaczonÄ
',
+ btnDelete: 'UsuÅ'
+ },
+ textarea: {
+ title: 'WÅaÅciwoÅci obszaru tekstowego',
+ cols: 'Liczba kolumn',
+ rows: 'Liczba wierszy'
+ },
+ textfield: {
+ title: 'WÅaÅciwoÅci pola tekstowego',
+ name: 'Nazwa',
+ value: 'WartoÅÄ',
+ charWidth: 'SzerokoÅÄ w znakach',
+ maxChars: 'SzerokoÅÄ maksymalna',
+ type: 'Typ',
+ typeText: 'Tekst',
+ typePass: 'HasÅo',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/pt-br.js b/devel/third-party/ckeditor/plugins/forms/lang/pt-br.js
new file mode 100644
index 0000000..1975f5b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/pt-br.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'pt-br', {
+ button: {
+ title: 'Formatar Botão',
+ text: 'Texto (Valor)',
+ type: 'Tipo',
+ typeBtn: 'Botão',
+ typeSbm: 'Enviar',
+ typeRst: 'Limpar'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Formatar Caixa de Seleção',
+ radioTitle: 'Formatar Botão de Opção',
+ value: 'Valor',
+ selected: 'Selecionado'
+ },
+ form: {
+ title: 'Formatar Formulário',
+ menu: 'Formatar Formulário',
+ action: 'Ação',
+ method: 'Método',
+ encoding: 'Codificação'
+ },
+ hidden: {
+ title: 'Formatar Campo Oculto',
+ name: 'Nome',
+ value: 'Valor'
+ },
+ select: {
+ title: 'Formatar Caixa de Listagem',
+ selectInfo: 'Informações',
+ opAvail: 'Opções disponÃveis',
+ value: 'Valor',
+ size: 'Tamanho',
+ lines: 'linhas',
+ chkMulti: 'Permitir múltiplas seleções',
+ opText: 'Texto',
+ opValue: 'Valor',
+ btnAdd: 'Adicionar',
+ btnModify: 'Modificar',
+ btnUp: 'Para cima',
+ btnDown: 'Para baixo',
+ btnSetValue: 'Definir como selecionado',
+ btnDelete: 'Remover'
+ },
+ textarea: {
+ title: 'Formatar Ãrea de Texto',
+ cols: 'Colunas',
+ rows: 'Linhas'
+ },
+ textfield: {
+ title: 'Formatar Caixa de Texto',
+ name: 'Nome',
+ value: 'Valor',
+ charWidth: 'Comprimento (em caracteres)',
+ maxChars: 'Número Máximo de Caracteres',
+ type: 'Tipo',
+ typeText: 'Texto',
+ typePass: 'Senha',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/pt.js b/devel/third-party/ckeditor/plugins/forms/lang/pt.js
new file mode 100644
index 0000000..2056009
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/pt.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'pt', {
+ button: {
+ title: 'Propriedades do Botão',
+ text: 'Texto (Valor)',
+ type: 'Tipo',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Propriedades da Caixa de Verificação',
+ radioTitle: 'Propriedades do Botão de Opção',
+ value: 'Valor',
+ selected: 'Seleccionado'
+ },
+ form: {
+ title: 'Propriedades do Formulário',
+ menu: 'Propriedades do Formulário',
+ action: 'Acção',
+ method: 'Método',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Propriedades do Campo Escondido',
+ name: 'Nome',
+ value: 'Valor'
+ },
+ select: {
+ title: 'Propriedades da Caixa de Combinação',
+ selectInfo: 'Informação',
+ opAvail: 'Opções PossÃveis',
+ value: 'Valor',
+ size: 'Tamanho',
+ lines: 'linhas',
+ chkMulti: 'Permitir selecções múltiplas',
+ opText: 'Texto',
+ opValue: 'Valor',
+ btnAdd: 'Adicionar',
+ btnModify: 'Modificar',
+ btnUp: 'Para cima',
+ btnDown: 'Para baixo',
+ btnSetValue: 'Definir um valor por defeito',
+ btnDelete: 'Apagar'
+ },
+ textarea: {
+ title: 'Propriedades da Ãrea de Texto',
+ cols: 'Colunas',
+ rows: 'Linhas'
+ },
+ textfield: {
+ title: 'Propriedades do Campo de Texto',
+ name: 'Nome',
+ value: 'Valor',
+ charWidth: 'Tamanho do caracter',
+ maxChars: 'Nr. Máximo de Caracteres',
+ type: 'Tipo',
+ typeText: 'Texto',
+ typePass: 'Palavra-chave',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ro.js b/devel/third-party/ckeditor/plugins/forms/lang/ro.js
new file mode 100644
index 0000000..439e761
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ro.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ro', {
+ button: {
+ title: 'ProprietÄÅ£i buton',
+ text: 'Text (Valoare)',
+ type: 'Tip',
+ typeBtn: 'Buton',
+ typeSbm: 'Trimite',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ProprietÄÅ£i bifÄ (Checkbox)',
+ radioTitle: 'ProprietÄÅ£i buton radio (Radio Button)',
+ value: 'Valoare',
+ selected: 'Selectat'
+ },
+ form: {
+ title: 'ProprietÄÅ£i formular (Form)',
+ menu: 'ProprietÄÅ£i formular (Form)',
+ action: 'Acţiune',
+ method: 'MetodÄ',
+ encoding: 'Encodare'
+ },
+ hidden: {
+ title: 'ProprietÄÅ£i câmp ascuns (Hidden Field)',
+ name: 'Nume',
+ value: 'Valoare'
+ },
+ select: {
+ title: 'ProprietÄÅ£i câmp selecÅ£ie (Selection Field)',
+ selectInfo: 'Informaţii',
+ opAvail: 'Opţiuni disponibile',
+ value: 'Valoare',
+ size: 'MÄrime',
+ lines: 'linii',
+ chkMulti: 'Permite selecţii multiple',
+ opText: 'Text',
+ opValue: 'Valoare',
+ btnAdd: 'AdaugÄ',
+ btnModify: 'ModificÄ',
+ btnUp: 'Sus',
+ btnDown: 'Jos',
+ btnSetValue: 'SeteazÄ ca valoare selectatÄ',
+ btnDelete: 'Återge'
+ },
+ textarea: {
+ title: 'ProprietÄÅ£i suprafaÅ£Ä text (Textarea)',
+ cols: 'Coloane',
+ rows: 'Linii'
+ },
+ textfield: {
+ title: 'ProprietÄÅ£i câmp text (Text Field)',
+ name: 'Nume',
+ value: 'Valoare',
+ charWidth: 'LÄrgimea caracterului',
+ maxChars: 'Caractere maxime',
+ type: 'Tip',
+ typeText: 'Text',
+ typePass: 'ParolÄ',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ru.js b/devel/third-party/ckeditor/plugins/forms/lang/ru.js
new file mode 100644
index 0000000..95bc18a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ru.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ru', {
+ button: {
+ title: 'СвойÑÑва кнопки',
+ text: 'ТекÑÑ (ÐнаÑение)',
+ type: 'Тип',
+ typeBtn: 'Ðнопка',
+ typeSbm: 'ÐÑпÑавка',
+ typeRst: 'СбÑоÑ'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'СвойÑÑва Ñлаговой кнопки',
+ radioTitle: 'СвойÑÑва кнопки вÑбоÑа',
+ value: 'ÐнаÑение',
+ selected: 'ÐÑбÑано'
+ },
+ form: {
+ title: 'СвойÑÑва ÑоÑмÑ',
+ menu: 'СвойÑÑва ÑоÑмÑ',
+ action: 'ÐейÑÑвие',
+ method: 'ÐеÑод',
+ encoding: 'ÐодиÑовка'
+ },
+ hidden: {
+ title: 'СвойÑÑва ÑкÑÑÑого полÑ',
+ name: 'ÐмÑ',
+ value: 'ÐнаÑение'
+ },
+ select: {
+ title: 'СвойÑÑва ÑпиÑка вÑбоÑа',
+ selectInfo: 'ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑпиÑке вÑбоÑа',
+ opAvail: 'ÐоÑÑÑпнÑе ваÑианÑÑ',
+ value: 'ÐнаÑение',
+ size: 'РазмеÑ',
+ lines: 'ÑÑÑок(и)',
+ chkMulti: 'РазÑеÑиÑÑ Ð²ÑÐ±Ð¾Ñ Ð½ÐµÑколÑкиÑ
ваÑианÑов',
+ opText: 'ТекÑÑ',
+ opValue: 'ÐнаÑение',
+ btnAdd: 'ÐобавиÑÑ',
+ btnModify: 'ÐзмениÑÑ',
+ btnUp: 'ÐоднÑÑÑ',
+ btnDown: 'ÐпÑÑÑиÑÑ',
+ btnSetValue: 'ÐомеÑиÑÑ ÐºÐ°Ðº вÑбÑанное',
+ btnDelete: 'УдалиÑÑ'
+ },
+ textarea: {
+ title: 'СвойÑÑва многоÑÑÑоÑного ÑекÑÑового полÑ',
+ cols: 'Ðолонок',
+ rows: 'СÑÑок'
+ },
+ textfield: {
+ title: 'СвойÑÑва ÑекÑÑового полÑ',
+ name: 'ÐмÑ',
+ value: 'ÐнаÑение',
+ charWidth: 'ШиÑина Ð¿Ð¾Ð»Ñ (в ÑимволаÑ
)',
+ maxChars: 'ÐакÑ. колиÑеÑÑво Ñимволов',
+ type: 'Тип ÑодеÑжимого',
+ typeText: 'ТекÑÑ',
+ typePass: 'ÐаÑолÑ',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/sk.js b/devel/third-party/ckeditor/plugins/forms/lang/sk.js
new file mode 100644
index 0000000..6fb0f52
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/sk.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'sk', {
+ button: {
+ title: 'Vlastnosti tlaÄidla',
+ text: 'Text (Hodnota)',
+ type: 'Typ',
+ typeBtn: 'TlaÄidlo',
+ typeSbm: 'Odoslať',
+ typeRst: 'Resetovať'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Vlastnosti zaÅ¡krtávacieho polÃÄka',
+ radioTitle: 'Vlastnosti prepÃnaÄa (radio button)',
+ value: 'Hodnota',
+ selected: 'Vybrané (selected)'
+ },
+ form: {
+ title: 'Vlastnosti formulára',
+ menu: 'Vlastnosti formulára',
+ action: 'Akcia (action)',
+ method: 'Metóda (method)',
+ encoding: 'Kódovanie (encoding)'
+ },
+ hidden: {
+ title: 'Vlastnosti skrytého poľa',
+ name: 'Názov (name)',
+ value: 'Hodnota'
+ },
+ select: {
+ title: 'Vlastnosti rozbaľovacieho zoznamu',
+ selectInfo: 'Informácie o výbere',
+ opAvail: 'Dostupné možnosti',
+ value: 'Hodnota',
+ size: 'Veľkosť',
+ lines: 'riadkov',
+ chkMulti: 'Povoliť viacnásobný výber',
+ opText: 'Text',
+ opValue: 'Hodnota',
+ btnAdd: 'Pridať',
+ btnModify: 'Upraviť',
+ btnUp: 'Hore',
+ btnDown: 'Dole',
+ btnSetValue: 'Nastaviť ako vybranú hodnotu',
+ btnDelete: 'Vymazať'
+ },
+ textarea: {
+ title: 'Vlastnosti textovej oblasti (textarea)',
+ cols: 'Stĺpcov',
+ rows: 'Riadkov'
+ },
+ textfield: {
+ title: 'Vlastnosti textového poľa',
+ name: 'Názov (name)',
+ value: 'Hodnota',
+ charWidth: 'Å Ãrka poľa (podľa znakov)',
+ maxChars: 'Maximálny poÄet znakov',
+ type: 'Typ',
+ typeText: 'Text',
+ typePass: 'Heslo',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/sl.js b/devel/third-party/ckeditor/plugins/forms/lang/sl.js
new file mode 100644
index 0000000..d41be46
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/sl.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'sl', {
+ button: {
+ title: 'Lastnosti gumba',
+ text: 'Besedilo (Vrednost)',
+ type: 'Tip',
+ typeBtn: 'Gumb',
+ typeSbm: 'Potrdi',
+ typeRst: 'Ponastavi'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Lastnosti potrditvenega polja',
+ radioTitle: 'Lastnosti izbirnega polja',
+ value: 'Vrednost',
+ selected: 'Izbrano'
+ },
+ form: {
+ title: 'Lastnosti obrazca',
+ menu: 'Lastnosti obrazca',
+ action: 'Akcija',
+ method: 'Metoda',
+ encoding: 'Kodiranje znakov'
+ },
+ hidden: {
+ title: 'Lastnosti skritega polja',
+ name: 'Ime',
+ value: 'Vrednost'
+ },
+ select: {
+ title: 'Lastnosti spustnega seznama',
+ selectInfo: 'Podatki',
+ opAvail: 'Razpoložljive izbire',
+ value: 'Vrednost',
+ size: 'Velikost',
+ lines: 'vrstic',
+ chkMulti: 'Dovoli izbor veÄih vrstic',
+ opText: 'Besedilo',
+ opValue: 'Vrednost',
+ btnAdd: 'Dodaj',
+ btnModify: 'Spremeni',
+ btnUp: 'Gor',
+ btnDown: 'Dol',
+ btnSetValue: 'Postavi kot privzeto izbiro',
+ btnDelete: 'Izbriši'
+ },
+ textarea: {
+ title: 'Lastnosti vnosnega obmoÄja',
+ cols: 'Stolpcev',
+ rows: 'Vrstic'
+ },
+ textfield: {
+ title: 'Lastnosti vnosnega polja',
+ name: 'Ime',
+ value: 'Vrednost',
+ charWidth: 'Dolžina',
+ maxChars: 'NajveÄje Å¡tevilo znakov',
+ type: 'Tip',
+ typeText: 'Besedilo',
+ typePass: 'Geslo',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/forms/lang/sr-latn.js
new file mode 100644
index 0000000..9d7a46c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/sr-latn.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'sr-latn', {
+ button: {
+ title: 'Osobine dugmeta',
+ text: 'Tekst (vrednost)',
+ type: 'Tip',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Osobine polja za potvrdu',
+ radioTitle: 'Osobine radio-dugmeta',
+ value: 'Vrednost',
+ selected: 'OznaÄeno'
+ },
+ form: {
+ title: 'Osobine forme',
+ menu: 'Osobine forme',
+ action: 'Akcija',
+ method: 'Metoda',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'Osobine skrivenog polja',
+ name: 'Naziv',
+ value: 'Vrednost'
+ },
+ select: {
+ title: 'Osobine izbornog polja',
+ selectInfo: 'Info',
+ opAvail: 'Dostupne opcije',
+ value: 'Vrednost',
+ size: 'VeliÄina',
+ lines: 'linija',
+ chkMulti: 'Dozvoli višestruku selekciju',
+ opText: 'Tekst',
+ opValue: 'Vrednost',
+ btnAdd: 'Dodaj',
+ btnModify: 'Izmeni',
+ btnUp: 'Gore',
+ btnDown: 'Dole',
+ btnSetValue: 'Podesi kao oznaÄenu vrednost',
+ btnDelete: 'Obriši'
+ },
+ textarea: {
+ title: 'Osobine zone teksta',
+ cols: 'Broj kolona',
+ rows: 'Broj redova'
+ },
+ textfield: {
+ title: 'Osobine tekstualnog polja',
+ name: 'Naziv',
+ value: 'Vrednost',
+ charWidth: 'Å irina (karaktera)',
+ maxChars: 'Maksimalno karaktera',
+ type: 'Tip',
+ typeText: 'Tekst',
+ typePass: 'Lozinka',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/sr.js b/devel/third-party/ckeditor/plugins/forms/lang/sr.js
new file mode 100644
index 0000000..eff73f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/sr.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'sr', {
+ button: {
+ title: 'ÐÑобине дÑгмеÑа',
+ text: 'ТекÑÑ (вÑедноÑÑ)',
+ type: 'Tип',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ÐÑобине поÑа за поÑвÑдÑ',
+ radioTitle: 'ÐÑобине Ñадио-дÑгмеÑа',
+ value: 'ÐÑедноÑÑ',
+ selected: 'ÐзнаÑено'
+ },
+ form: {
+ title: 'ÐÑобине ÑоÑме',
+ menu: 'ÐÑобине ÑоÑме',
+ action: 'AкÑиÑа',
+ method: 'MеÑода',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'ÐÑобине ÑкÑивеног поÑа',
+ name: 'Ðазив',
+ value: 'ÐÑедноÑÑ'
+ },
+ select: {
+ title: 'ÐÑобине избоÑног поÑа',
+ selectInfo: 'ÐнÑо',
+ opAvail: 'ÐоÑÑÑпне опÑиÑе',
+ value: 'ÐÑедноÑÑ',
+ size: 'ÐелиÑина',
+ lines: 'линиÑа',
+ chkMulti: 'Ðозволи виÑеÑÑÑÑÐºÑ ÑелекÑиÑÑ',
+ opText: 'ТекÑÑ',
+ opValue: 'ÐÑедноÑÑ',
+ btnAdd: 'ÐодаÑ',
+ btnModify: 'Ðзмени',
+ btnUp: 'ÐоÑе',
+ btnDown: 'Ðоле',
+ btnSetValue: 'ÐодеÑи као ознаÑÐµÐ½Ñ Ð²ÑедноÑÑ',
+ btnDelete: 'ÐбÑиÑи'
+ },
+ textarea: {
+ title: 'ÐÑобине зоне ÑекÑÑа',
+ cols: 'ÐÑÐ¾Ñ ÐºÐ¾Ð»Ð¾Ð½Ð°',
+ rows: 'ÐÑÐ¾Ñ Ñедова'
+ },
+ textfield: {
+ title: 'ÐÑобине ÑекÑÑÑалног поÑа',
+ name: 'Ðазив',
+ value: 'ÐÑедноÑÑ',
+ charWidth: 'ШиÑина (каÑакÑеÑа)',
+ maxChars: 'ÐакÑимално каÑакÑеÑа',
+ type: 'Тип',
+ typeText: 'ТекÑÑ',
+ typePass: 'Ðозинка',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/sv.js b/devel/third-party/ckeditor/plugins/forms/lang/sv.js
new file mode 100644
index 0000000..bfcdde9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/sv.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'sv', {
+ button: {
+ title: 'Egenskaper för knapp',
+ text: 'Text (värde)',
+ type: 'Typ',
+ typeBtn: 'Knapp',
+ typeSbm: 'Skicka',
+ typeRst: 'Ã
terställ'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Egenskaper för kryssruta',
+ radioTitle: 'Egenskaper för alternativknapp',
+ value: 'Värde',
+ selected: 'Vald'
+ },
+ form: {
+ title: 'Egenskaper för formulär',
+ menu: 'Egenskaper för formulär',
+ action: 'Funktion',
+ method: 'Metod',
+ encoding: 'Kodning'
+ },
+ hidden: {
+ title: 'Egenskaper för dolt fält',
+ name: 'Namn',
+ value: 'Värde'
+ },
+ select: {
+ title: 'Egenskaper för flervalslista',
+ selectInfo: 'Information',
+ opAvail: 'Befintliga val',
+ value: 'Värde',
+ size: 'Storlek',
+ lines: 'Linjer',
+ chkMulti: 'Tillåt flerval',
+ opText: 'Text',
+ opValue: 'Värde',
+ btnAdd: 'Lägg till',
+ btnModify: 'Redigera',
+ btnUp: 'Upp',
+ btnDown: 'Ner',
+ btnSetValue: 'Markera som valt värde',
+ btnDelete: 'Radera'
+ },
+ textarea: {
+ title: 'Egenskaper för textruta',
+ cols: 'Kolumner',
+ rows: 'Rader'
+ },
+ textfield: {
+ title: 'Egenskaper för textfält',
+ name: 'Namn',
+ value: 'Värde',
+ charWidth: 'Teckenbredd',
+ maxChars: 'Max antal tecken',
+ type: 'Typ',
+ typeText: 'Text',
+ typePass: 'Lösenord',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/th.js b/devel/third-party/ckeditor/plugins/forms/lang/th.js
new file mode 100644
index 0000000..cc2a704
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/th.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'th', {
+ button: {
+ title: 'รายละà¹à¸à¸µà¸¢à¸à¸à¸à¸ à¸à¸¸à¹à¸¡',
+ text: 'à¸à¹à¸à¸à¸§à¸²à¸¡ (à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£)',
+ type: 'à¸à¹à¸à¸à¸§à¸²à¸¡',
+ typeBtn: 'Button',
+ typeSbm: 'Submit',
+ typeRst: 'Reset'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸',
+ radioTitle: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸',
+ value: 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
+ selected: 'à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸'
+ },
+ form: {
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡',
+ menu: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡',
+ action: 'à¹à¸à¸à¸à¸±à¹à¸',
+ method: 'à¹à¸¡à¸à¸à¸',
+ encoding: 'Encoding'
+ },
+ hidden: {
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',
+ name: 'à¸à¸·à¹à¸',
+ value: 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£'
+ },
+ select: {
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',
+ selectInfo: 'à¸à¸´à¸à¹à¸',
+ opAvail: 'รายà¸à¸²à¸£à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',
+ value: 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
+ size: 'à¸à¸à¸²à¸',
+ lines: 'à¸à¸£à¸£à¸à¸±à¸',
+ chkMulti: 'à¹à¸¥à¸·à¸à¸à¸«à¸¥à¸²à¸¢à¸à¹à¸²à¹à¸à¹',
+ opText: 'à¸à¹à¸à¸à¸§à¸²à¸¡',
+ opValue: 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
+ btnAdd: 'à¹à¸à¸´à¹à¸¡',
+ btnModify: 'à¹à¸à¹à¹à¸',
+ btnUp: 'à¸à¸',
+ btnDown: 'ลà¹à¸²à¸',
+ btnSetValue: 'à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸',
+ btnDelete: 'ลà¸'
+ },
+ textarea: {
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¹à¸à¹à¸£à¸µà¸¢',
+ cols: 'สà¸à¸¡à¸ à¹',
+ rows: 'à¹à¸à¸§'
+ },
+ textfield: {
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹',
+ name: 'à¸à¸·à¹à¸',
+ value: 'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',
+ charWidth: 'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',
+ maxChars: 'à¸à¸³à¸à¸§à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸ªà¸¹à¸à¸ªà¸¸à¸',
+ type: 'à¸à¸à¸´à¸',
+ typeText: 'à¸à¹à¸à¸à¸§à¸²à¸¡',
+ typePass: 'รหัสà¸à¹à¸²à¸',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/tr.js b/devel/third-party/ckeditor/plugins/forms/lang/tr.js
new file mode 100644
index 0000000..a499d68
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/tr.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'tr', {
+ button: {
+ title: 'DüÄme Ãzellikleri',
+ text: 'Metin (DeÄer)',
+ type: 'Tip',
+ typeBtn: 'DüÄme',
+ typeSbm: 'Gönder',
+ typeRst: 'Sıfırla'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Onay Kutusu Ãzellikleri',
+ radioTitle: 'Seçenek DüÄmesi Ãzellikleri',
+ value: 'DeÄer',
+ selected: 'Seçili'
+ },
+ form: {
+ title: 'Form Ãzellikleri',
+ menu: 'Form Ãzellikleri',
+ action: 'İÅlem',
+ method: 'Yöntem',
+ encoding: 'Kodlama'
+ },
+ hidden: {
+ title: 'Gizli Veri Ãzellikleri',
+ name: 'Ad',
+ value: 'DeÄer'
+ },
+ select: {
+ title: 'Seçim Menüsü Ãzellikleri',
+ selectInfo: 'Bilgi',
+ opAvail: 'Mevcut Seçenekler',
+ value: 'DeÄer',
+ size: 'Boyut',
+ lines: 'satır',
+ chkMulti: 'Ãoklu seçime izin ver',
+ opText: 'Metin',
+ opValue: 'DeÄer',
+ btnAdd: 'Ekle',
+ btnModify: 'Düzenle',
+ btnUp: 'Yukarı',
+ btnDown: 'AÅaÄı',
+ btnSetValue: 'Seçili deÄer olarak ata',
+ btnDelete: 'Sil'
+ },
+ textarea: {
+ title: 'Ãok Satırlı Metin Ãzellikleri',
+ cols: 'Sütunlar',
+ rows: 'Satırlar'
+ },
+ textfield: {
+ title: 'Metin GiriÅi Ãzellikleri',
+ name: 'Ad',
+ value: 'DeÄer',
+ charWidth: 'Karakter GeniÅliÄi',
+ maxChars: 'En Fazla Karakter',
+ type: 'Tür',
+ typeText: 'Metin',
+ typePass: 'Åifre',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/ug.js b/devel/third-party/ckeditor/plugins/forms/lang/ug.js
new file mode 100644
index 0000000..5259a2a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/ug.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'ug', {
+ button: {
+ title: 'تÙÙ¾ÚØ§ خاسÙÙÙÙ',
+ text: 'بÛÙÚ¯Û (ÙÙÙ
Ù
ÛØª)',
+ type: 'تÙÙ¾Ù',
+ typeBtn: 'تÙÙ¾ÚØ§',
+ typeSbm: 'ØªØ§Ù¾Ø´ÛØ±',
+ typeRst: 'Ø¦ÛØ³ÙÙÚ¯Û ÙØ§ÙØªÛØ±'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ÙÛÙ¾ تاÙÙØ§Ø´ خاسÙÙÙÙ',
+ radioTitle: 'تا٠تاÙÙØ§Ø´ تÙÙ¾ÚØ§ خاسÙÙÙÙ',
+ value: 'تاÙÙÙØºØ§Ù ÙÙÙ
Ù
ÛØª',
+ selected: 'تاÙÙØ§ÙغاÙ'
+ },
+ form: {
+ title: 'Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ',
+ menu: 'Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ',
+ action: 'Ù
ÛØ´ØºÛÙØ§Øª',
+ method: 'Ø¦ÛØ³ÛÙ',
+ encoding: 'Ø¬ÛØ¯ÛÛÙ ÙÙØ¯ÙÙÙÙØ´Ù'
+ },
+ hidden: {
+ title: 'ÙÙØ´ÛرÛÙ Ø¯Ø§Ø¦ÙØ±Û خاسÙÙÙÙ',
+ name: 'ئات',
+ value: 'Ø¯ÛØ³ÙÛÙ¾ÙÙ ÙÙÙ
Ù
ÙØªÙ'
+ },
+ select: {
+ title: 'Ø¬ÛØ¯ÛÛÙ/ØªÙØ²ÙÙ
خاسÙÙÙÙ',
+ selectInfo: 'ئÛÚÛØ± تاÙÙØ§Ú',
+ opAvail: 'تاÙÙØ§Ø´ ØªÛØ±ÙÙØ±Ù',
+ value: 'ÙÙÙ
Ù
ÛØª',
+ size: 'ئÛÚ¯ÙØ²ÙÙÙÙ',
+ lines: 'ÙÛØ±',
+ chkMulti: 'ÙÛÙ¾ تاÙÙØ§Ø´ÚاÙ',
+ opText: 'تاÙÙØ§ÙÙ
ا تÛÙÙØ³ØªÙ',
+ opValue: 'تاÙÙØ§ÙÙ
ا ÙÙÙ
Ù
ÙØªÙ',
+ btnAdd: 'ÙÙØ´',
+ btnModify: 'Ø¦ÛØ²Ú¯Ûرت',
+ btnUp: 'Ø¦ÛØ³ØªÙÚ¯Û',
+ btnDown: 'Ø¦Ø§Ø³ØªÙØºØ§',
+ btnSetValue: 'Ø¯ÛØ³ÙÛÙ¾Ù٠تاÙÙØ§ÙÙ
ا ÙÙÙ
Ù
ÙØªÙÚ¯Û ØªÛÚØ´Û',
+ btnDelete: 'ئÛÚÛØ±'
+ },
+ textarea: {
+ title: ' ÙÛÙ¾ ÙÛØ±ÙÛ٠تÛÙÙØ³Øª خاسÙÙÙÙ',
+ cols: 'Ú¾ÛØ±Ù¾ ÙÛÚÙÙÙÙ',
+ rows: 'ÙÛØ± ساÙÙ'
+ },
+ textfield: {
+ title: 'تا٠ÙÛØ±ÙÛ٠تÛÙÙØ³Øª خاسÙÙÙÙ',
+ name: 'ئات',
+ value: 'Ø¯ÛØ³ÙÛÙ¾ÙÙ ÙÙÙ
Ù
ÙØªÙ',
+ charWidth: 'Ú¾ÛØ±Ù¾ ÙÛÚÙÙÙÙ',
+ maxChars: 'ئÛÚ ÙÛÙ¾ Ú¾ÛØ±Ù¾ ساÙÙ',
+ type: 'تÙÙ¾Ù',
+ typeText: 'تÛÙÙØ³Øª',
+ typePass: 'ئÙÙ
',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/uk.js b/devel/third-party/ckeditor/plugins/forms/lang/uk.js
new file mode 100644
index 0000000..dab5be4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/uk.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'uk', {
+ button: {
+ title: 'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸',
+ text: 'ÐнаÑеннÑ',
+ type: 'Тип',
+ typeBtn: 'Ðнопка (button)',
+ typeSbm: 'ÐадÑÑлаÑи (submit)',
+ typeRst: 'ÐÑиÑÑиÑи (reset)'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'ÐлаÑÑивоÑÑÑ Ð³Ð°Ð»Ð¾Ñки',
+ radioTitle: 'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ вибоÑÑ',
+ value: 'ÐнаÑеннÑ',
+ selected: 'ÐбÑана'
+ },
+ form: {
+ title: 'ÐлаÑÑивоÑÑÑ ÑоÑми',
+ menu: 'ÐлаÑÑивоÑÑÑ ÑоÑми',
+ action: 'ÐÑÑ',
+ method: 'ÐеÑод',
+ encoding: 'ÐодÑваннÑ'
+ },
+ hidden: {
+ title: 'ÐлаÑÑивоÑÑÑ Ð¿ÑиÑ
ованого полÑ',
+ name: 'Ðм\'Ñ',
+ value: 'ÐнаÑеннÑ'
+ },
+ select: {
+ title: 'ÐлаÑÑивоÑÑÑ ÑпиÑкÑ',
+ selectInfo: 'ÐнÑо',
+ opAvail: 'ÐоÑÑÑÐ¿Ð½Ñ Ð²Ð°ÑÑанÑи',
+ value: 'ÐнаÑеннÑ',
+ size: 'ÐÑлÑкÑÑÑÑ',
+ lines: 'видимиÑ
позиÑÑй Ñ ÑпиÑкÑ',
+ chkMulti: 'СпиÑок з мÑлÑÑивибоÑом',
+ opText: 'ТекÑÑ',
+ opValue: 'ÐнаÑеннÑ',
+ btnAdd: 'ÐобавиÑи',
+ btnModify: 'ÐмÑниÑи',
+ btnUp: 'ÐгоÑÑ',
+ btnDown: 'Ðниз',
+ btnSetValue: 'ÐÑÑановиÑи Ñк обÑане знаÑеннÑ',
+ btnDelete: 'ÐидалиÑи'
+ },
+ textarea: {
+ title: 'ÐлаÑÑивоÑÑÑ ÑекÑÑÐ¾Ð²Ð¾Ñ Ð¾Ð±Ð»Ð°ÑÑÑ',
+ cols: 'СÑовбÑÑ',
+ rows: 'Ð Ñдки'
+ },
+ textfield: {
+ title: 'ÐлаÑÑивоÑÑÑ ÑекÑÑового полÑ',
+ name: 'Ðм\'Ñ',
+ value: 'ÐнаÑеннÑ',
+ charWidth: 'ШиÑина',
+ maxChars: 'ÐакÑ. к-ÑÑ ÑимволÑв',
+ type: 'Тип',
+ typeText: 'ТекÑÑ',
+ typePass: 'ÐаÑолÑ',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/vi.js b/devel/third-party/ckeditor/plugins/forms/lang/vi.js
new file mode 100644
index 0000000..09ea2b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/vi.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'vi', {
+ button: {
+ title: 'Thuá»c tÃnh cá»§a nút',
+ text: 'Chuá»i hiá»n thá» (giá trá»)',
+ type: 'Kiá»u',
+ typeBtn: 'Nút bấm',
+ typeSbm: 'Nút gá»i',
+ typeRst: 'Nút nháºp lại'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'Thuá»c tÃnh nút kiá»m',
+ radioTitle: 'Thuá»c tÃnh nút chá»n',
+ value: 'Giá trá»',
+ selected: 'ÄÆ°á»£c chá»n'
+ },
+ form: {
+ title: 'Thuá»c tÃnh biá»u mẫu',
+ menu: 'Thuá»c tÃnh biá»u mẫu',
+ action: 'Hà nh Äá»ng',
+ method: 'Phương thức',
+ encoding: 'Bảng mã'
+ },
+ hidden: {
+ title: 'Thuá»c tÃnh trưá»ng ẩn',
+ name: 'Tên',
+ value: 'Giá trá»'
+ },
+ select: {
+ title: 'Thuá»c tÃnh ô chá»n',
+ selectInfo: 'Thông tin',
+ opAvail: 'Các tùy chá»n có thá» sá» dụng',
+ value: 'Giá trá»',
+ size: 'KÃch cỡ',
+ lines: 'dòng',
+ chkMulti: 'Cho phép chá»n nhiá»u',
+ opText: 'VÄn bản',
+ opValue: 'Giá trá»',
+ btnAdd: 'Thêm',
+ btnModify: 'Thay Äá»i',
+ btnUp: 'Lên',
+ btnDown: 'Xuá»ng',
+ btnSetValue: 'Giá trá» ÄÆ°á»£c chá»n',
+ btnDelete: 'Nút xoá'
+ },
+ textarea: {
+ title: 'Thuá»c tÃnh vùng vÄn bản',
+ cols: 'Sá» cá»t',
+ rows: 'SỠhà ng'
+ },
+ textfield: {
+ title: 'Thuá»c tÃnh trưá»ng vÄn bản',
+ name: 'Tên',
+ value: 'Giá trá»',
+ charWidth: 'Äá» rá»ng cá»§a ký tá»±',
+ maxChars: 'Sá» ký tá»± tá»i Äa',
+ type: 'Kiá»u',
+ typeText: 'Ký tự',
+ typePass: 'Máºt khẩu',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/forms/lang/zh-cn.js
new file mode 100644
index 0000000..bf4cdde
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/zh-cn.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'zh-cn', {
+ button: {
+ title: 'æé®å±æ§',
+ text: 'æ ç¾(å¼)',
+ type: 'ç±»å',
+ typeBtn: 'æé®',
+ typeSbm: 'æäº¤',
+ typeRst: 'é设'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'å¤éæ¡å±æ§',
+ radioTitle: 'åéæé®å±æ§',
+ value: 'éå®å¼',
+ selected: 'å·²å¾é'
+ },
+ form: {
+ title: '表å屿§',
+ menu: '表å屿§',
+ action: 'å¨ä½',
+ method: 'æ¹æ³',
+ encoding: '表åç¼ç '
+ },
+ hidden: {
+ title: 'éèå屿§',
+ name: 'åç§°',
+ value: 'åå§å¼'
+ },
+ select: {
+ title: 'èå/åè¡¨å±æ§',
+ selectInfo: 'éæ©ä¿¡æ¯',
+ opAvail: 'å¯é项',
+ value: 'å¼',
+ size: 'é«åº¦',
+ lines: 'è¡',
+ chkMulti: 'å
许å¤é',
+ opText: 'éé¡¹ææ¬',
+ opValue: 'é项å¼',
+ btnAdd: 'æ·»å ',
+ btnModify: 'ä¿®æ¹',
+ btnUp: 'ä¸ç§»',
+ btnDown: 'ä¸ç§»',
+ btnSetValue: '设为åå§éå®',
+ btnDelete: 'å é¤'
+ },
+ textarea: {
+ title: 'å¤è¡ææ¬å±æ§',
+ cols: 'å符宽度',
+ rows: 'è¡æ°'
+ },
+ textfield: {
+ title: 'åè¡ææ¬å±æ§',
+ name: 'åç§°',
+ value: 'åå§å¼',
+ charWidth: 'å符宽度',
+ maxChars: 'æå¤å符æ°',
+ type: 'ç±»å',
+ typeText: 'ææ¬',
+ typePass: 'å¯ç ',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/lang/zh.js b/devel/third-party/ckeditor/plugins/forms/lang/zh.js
new file mode 100644
index 0000000..daebb6b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/forms/lang/zh.js
@@ -0,0 +1,68 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'forms', 'zh', {
+ button: {
+ title: 'æé屬æ§',
+ text: '顯示æå (å¼)',
+ type: 'é¡å',
+ typeBtn: 'æé (Button)',
+ typeSbm: 'éåº (Submit)',
+ typeRst: 'éè¨ (Reset)'
+ },
+ checkboxAndRadio: {
+ checkboxTitle: 'æ ¸åæ¹å¡å±¬æ§',
+ radioTitle: 'é¸é
æé屬æ§',
+ value: 'é¸åå¼',
+ selected: 'å·²é¸å'
+ },
+ form: {
+ title: '表å®å±¬æ§',
+ menu: '表å®å±¬æ§',
+ action: 'åä½',
+ method: 'æ¹æ³',
+ encoding: '表å®ç·¨ç¢¼'
+ },
+ hidden: {
+ title: 'é±èæ¬ä½å±¬æ§',
+ name: 'å稱',
+ value: 'å¼'
+ },
+ select: {
+ title: 'æ¸
å®/é¸å®å±¬æ§',
+ selectInfo: 'è³è¨',
+ opAvail: 'å¯ç¨é¸é
',
+ value: 'å¼',
+ size: '大å°',
+ lines: 'è¡',
+ chkMulti: 'å¯å¤é¸',
+ opText: '顯示æå',
+ opValue: 'é¸åå¼',
+ btnAdd: 'æ°å¢',
+ btnModify: 'ä¿®æ¹',
+ btnUp: 'ä¸ç§»',
+ btnDown: 'ä¸ç§»',
+ btnSetValue: 'è¨çºé è¨å¼',
+ btnDelete: 'åªé¤'
+ },
+ textarea: {
+ title: 'æååå屬æ§',
+ cols: 'åå
寬度',
+ rows: '忏'
+ },
+ textfield: {
+ title: 'æåæ¹å¡å±¬æ§',
+ name: 'å稱',
+ value: 'å¼',
+ charWidth: 'åå
寬度',
+ maxChars: 'æå¤åå
æ¸',
+ type: 'é¡å',
+ typeText: 'æå',
+ typePass: 'å¯ç¢¼',
+ typeEmail: 'Email', // MISSING
+ typeSearch: 'Search', // MISSING
+ typeTel: 'Telephone Number', // MISSING
+ typeUrl: 'URL' // MISSING
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/forms/plugin.js b/devel/third-party/ckeditor/plugins/forms/plugin.js
index 7d8ea45..21d6242 100644
--- a/devel/third-party/ckeditor/plugins/forms/plugin.js
+++ b/devel/third-party/ckeditor/plugins/forms/plugin.js
@@ -1,27 +1,24 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Forms Plugin
+ * @fileOverview Forms Plugin
*/
-CKEDITOR.plugins.add( 'forms',
-{
- init : function( editor )
- {
- var lang = editor.lang;
-
- editor.addCss(
- 'form' +
+CKEDITOR.plugins.add( 'forms', {
+ requires: 'dialog,fakeobjects',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'button,checkbox,form,hiddenfield,imagebutton,radio,select,select-rtl,textarea,textarea-rtl,textfield', // %REMOVE_LINE_CORE%
+ onLoad: function() {
+ CKEDITOR.addCss( '.cke_editable form' +
'{' +
'border: 1px dotted #FF0000;' +
'padding: 2px;' +
'}\n' );
- editor.addCss(
- 'img.cke_hidden' +
+ CKEDITOR.addCss( 'img.cke_hidden' +
'{' +
'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/hiddenfield.gif' ) + ');' +
'background-position: center center;' +
@@ -31,251 +28,239 @@ CKEDITOR.plugins.add( 'forms',
'height: 16px !important;' +
'}' );
+ },
+ init: function( editor ) {
+ var lang = editor.lang,
+ order = 0,
+ textfieldTypes = { email:1,password:1,search:1,tel:1,text:1,url:1 };
+
// All buttons use the same code to register. So, to avoid
// duplications, let's use this tool function.
- var addButtonCommand = function( buttonName, commandName, dialogFile )
- {
- editor.addCommand( commandName, new CKEDITOR.dialogCommand( commandName ) );
-
- editor.ui.addButton( buttonName,
- {
- label : lang.common[ buttonName.charAt(0).toLowerCase() + buttonName.slice(1) ],
- command : commandName
+ var addButtonCommand = function( buttonName, commandName, dialogFile ) {
+ var def = {};
+ commandName == 'form' && ( def.context = 'form' );
+
+ editor.addCommand( commandName, new CKEDITOR.dialogCommand( commandName, def ) );
+
+ editor.ui.addButton && editor.ui.addButton( buttonName, {
+ label: lang.common[ buttonName.charAt( 0 ).toLowerCase() + buttonName.slice( 1 ) ],
+ command: commandName,
+ toolbar: 'forms,' + ( order += 10 )
});
- CKEDITOR.dialog.add( commandName, dialogFile );
- };
+ CKEDITOR.dialog.add( commandName, dialogFile );
+ };
var dialogPath = this.path + 'dialogs/';
- addButtonCommand( 'Form', 'form', dialogPath + 'form.js' );
- addButtonCommand( 'Checkbox', 'checkbox', dialogPath + 'checkbox.js' );
- addButtonCommand( 'Radio', 'radio', dialogPath + 'radio.js' );
- addButtonCommand( 'TextField', 'textfield', dialogPath + 'textfield.js' );
- addButtonCommand( 'Textarea', 'textarea', dialogPath + 'textarea.js' );
- addButtonCommand( 'Select', 'select', dialogPath + 'select.js' );
- addButtonCommand( 'Button', 'button', dialogPath + 'button.js' );
- addButtonCommand( 'ImageButton', 'imagebutton', CKEDITOR.plugins.getPath('image') + 'dialogs/image.js' );
- addButtonCommand( 'HiddenField', 'hiddenfield', dialogPath + 'hiddenfield.js' );
+ !editor.blockless && addButtonCommand( 'Form', 'form', dialogPath + 'form.js' );
+ addButtonCommand( 'Checkbox', 'checkbox', dialogPath + 'checkbox.js' );
+ addButtonCommand( 'Radio', 'radio', dialogPath + 'radio.js' );
+ addButtonCommand( 'TextField', 'textfield', dialogPath + 'textfield.js' );
+ addButtonCommand( 'Textarea', 'textarea', dialogPath + 'textarea.js' );
+ addButtonCommand( 'Select', 'select', dialogPath + 'select.js' );
+ addButtonCommand( 'Button', 'button', dialogPath + 'button.js' );
+
+ // If the "image" plugin is loaded.
+ var imagePlugin = CKEDITOR.plugins.get( 'image' );
+ imagePlugin && addButtonCommand( 'ImageButton', 'imagebutton', CKEDITOR.plugins.getPath( 'image' ) + 'dialogs/image.js' );
+
+ addButtonCommand( 'HiddenField', 'hiddenfield', dialogPath + 'hiddenfield.js' );
// If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- form :
- {
- label : lang.form.menu,
- command : 'form',
- group : 'form'
- },
-
- checkbox :
- {
- label : lang.checkboxAndRadio.checkboxTitle,
- command : 'checkbox',
- group : 'checkbox'
- },
-
- radio :
- {
- label : lang.checkboxAndRadio.radioTitle,
- command : 'radio',
- group : 'radio'
- },
-
- textfield :
- {
- label : lang.textfield.title,
- command : 'textfield',
- group : 'textfield'
- },
-
- hiddenfield :
- {
- label : lang.hidden.title,
- command : 'hiddenfield',
- group : 'hiddenfield'
- },
-
- imagebutton :
- {
- label : lang.image.titleButton,
- command : 'imagebutton',
- group : 'imagebutton'
- },
-
- button :
- {
- label : lang.button.title,
- command : 'button',
- group : 'button'
- },
-
- select :
- {
- label : lang.select.title,
- command : 'select',
- group : 'select'
- },
-
- textarea :
- {
- label : lang.textarea.title,
- command : 'textarea',
- group : 'textarea'
- }
- });
- }
+ if ( editor.addMenuItems ) {
+ var items = {
+ checkbox: {
+ label: lang.forms.checkboxAndRadio.checkboxTitle,
+ command: 'checkbox',
+ group: 'checkbox'
+ },
+
+ radio: {
+ label: lang.forms.checkboxAndRadio.radioTitle,
+ command: 'radio',
+ group: 'radio'
+ },
+
+ textfield: {
+ label: lang.forms.textfield.title,
+ command: 'textfield',
+ group: 'textfield'
+ },
+
+ hiddenfield: {
+ label: lang.forms.hidden.title,
+ command: 'hiddenfield',
+ group: 'hiddenfield'
+ },
+
+ imagebutton: {
+ label: lang.image.titleButton,
+ command: 'imagebutton',
+ group: 'imagebutton'
+ },
+
+ button: {
+ label: lang.forms.button.title,
+ command: 'button',
+ group: 'button'
+ },
+
+ select: {
+ label: lang.forms.select.title,
+ command: 'select',
+ group: 'select'
+ },
+
+ textarea: {
+ label: lang.forms.textarea.title,
+ command: 'textarea',
+ group: 'textarea'
+ }
+ };
- // If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element )
- {
- if ( element && element.hasAscendant( 'form', true ) && !element.isReadOnly() )
- return { form : CKEDITOR.TRISTATE_OFF };
- });
+ !editor.blockless && ( items.form = {
+ label: lang.forms.form.menu,
+ command: 'form',
+ group: 'form'
+ });
- editor.contextMenu.addListener( function( element )
- {
- if ( element && !element.isReadOnly() )
- {
- var name = element.getName();
+ editor.addMenuItems( items );
- if ( name == 'select' )
- return { select : CKEDITOR.TRISTATE_OFF };
+ }
- if ( name == 'textarea' )
- return { textarea : CKEDITOR.TRISTATE_OFF };
+ // If the "contextmenu" plugin is loaded, register the listeners.
+ if ( editor.contextMenu ) {
+ !editor.blockless && editor.contextMenu.addListener( function( element, selection, path ) {
+ var form = path.contains( 'form', 1 );
+ if ( form && !form.isReadOnly() )
+ return { form: CKEDITOR.TRISTATE_OFF };
+ });
- if ( name == 'input' )
- {
- var type = element.getAttribute( 'type' );
+ editor.contextMenu.addListener( function( element ) {
+ if ( element && !element.isReadOnly() ) {
+ var name = element.getName();
- if ( type == 'text' || type == 'password' )
- return { textfield : CKEDITOR.TRISTATE_OFF };
+ if ( name == 'select' )
+ return { select: CKEDITOR.TRISTATE_OFF };
- if ( type == 'button' || type == 'submit' || type == 'reset' )
- return { button : CKEDITOR.TRISTATE_OFF };
+ if ( name == 'textarea' )
+ return { textarea: CKEDITOR.TRISTATE_OFF };
- if ( type == 'checkbox' )
- return { checkbox : CKEDITOR.TRISTATE_OFF };
+ if ( name == 'input' ) {
+ var type = element.getAttribute( 'type' ) || 'text';
+ switch ( type ) {
+ case 'button':
+ case 'submit':
+ case 'reset':
+ return { button: CKEDITOR.TRISTATE_OFF };
- if ( type == 'radio' )
- return { radio : CKEDITOR.TRISTATE_OFF };
+ case 'checkbox':
+ return { checkbox: CKEDITOR.TRISTATE_OFF };
- if ( type == 'image' )
- return { imagebutton : CKEDITOR.TRISTATE_OFF };
+ case 'radio':
+ return { radio: CKEDITOR.TRISTATE_OFF };
+
+ case 'image':
+ return imagePlugin ? { imagebutton: CKEDITOR.TRISTATE_OFF } : null;
}
- if ( name == 'img' && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
- return { hiddenfield : CKEDITOR.TRISTATE_OFF };
+ if ( textfieldTypes[ type ] )
+ return { textfield: CKEDITOR.TRISTATE_OFF };
}
- });
- }
- editor.on( 'doubleclick', function( evt )
- {
- var element = evt.data.element;
-
- if ( element.is( 'form' ) )
- evt.data.dialog = 'form';
- else if ( element.is( 'select' ) )
- evt.data.dialog = 'select';
- else if ( element.is( 'textarea' ) )
- evt.data.dialog = 'textarea';
- else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
- evt.data.dialog = 'hiddenfield';
- else if ( element.is( 'input' ) )
- {
- var type = element.getAttribute( 'type' );
-
- switch ( type )
- {
- case 'text' : case 'password':
- evt.data.dialog = 'textfield';
- break;
- case 'button' : case 'submit' : case 'reset' :
- evt.data.dialog = 'button';
- break;
- case 'checkbox' :
- evt.data.dialog = 'checkbox';
- break;
- case 'radio' :
- evt.data.dialog = 'radio';
- break;
- case 'image' :
- evt.data.dialog = 'imagebutton';
- break;
- }
+ if ( name == 'img' && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
+ return { hiddenfield: CKEDITOR.TRISTATE_OFF };
}
});
+ }
+
+ editor.on( 'doubleclick', function( evt ) {
+ var element = evt.data.element;
+
+ if ( !editor.blockless && element.is( 'form' ) )
+ evt.data.dialog = 'form';
+ else if ( element.is( 'select' ) )
+ evt.data.dialog = 'select';
+ else if ( element.is( 'textarea' ) )
+ evt.data.dialog = 'textarea';
+ else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' )
+ evt.data.dialog = 'hiddenfield';
+ else if ( element.is( 'input' ) ) {
+ var type = element.getAttribute( 'type' ) || 'text';
+ switch ( type ) {
+ case 'button':
+ case 'submit':
+ case 'reset':
+ evt.data.dialog = 'button';
+ break;
+ case 'checkbox':
+ evt.data.dialog = 'checkbox';
+ break;
+ case 'radio':
+ evt.data.dialog = 'radio';
+ break;
+ case 'image':
+ evt.data.dialog = 'imagebutton';
+ break;
+ }
+ if ( textfieldTypes[ type ] )
+ evt.data.dialog = 'textfield';
+ }
+ });
},
- afterInit : function( editor )
- {
+ afterInit: function( editor ) {
var dataProcessor = editor.dataProcessor,
htmlFilter = dataProcessor && dataProcessor.htmlFilter,
dataFilter = dataProcessor && dataProcessor.dataFilter;
// Cleanup certain IE form elements default values.
- if ( CKEDITOR.env.ie )
- {
- htmlFilter && htmlFilter.addRules(
- {
- elements :
- {
- input : function( input )
- {
+ if ( CKEDITOR.env.ie ) {
+ htmlFilter && htmlFilter.addRules({
+ elements: {
+ input: function( input ) {
var attrs = input.attributes,
type = attrs.type;
+ // Old IEs don't provide type for Text inputs #5522
+ if ( !type )
+ attrs.type = 'text';
if ( type == 'checkbox' || type == 'radio' )
attrs.value == 'on' && delete attrs.value;
}
}
- } );
+ });
}
- if ( dataFilter )
- {
- dataFilter.addRules(
- {
- elements :
- {
- input : function( element )
- {
+ if ( dataFilter ) {
+ dataFilter.addRules({
+ elements: {
+ input: function( element ) {
if ( element.attributes.type == 'hidden' )
return editor.createFakeParserElement( element, 'cke_hidden', 'hiddenfield' );
}
}
- } );
+ });
}
- },
- requires : [ 'image', 'fakeobjects' ]
-} );
-
-if ( CKEDITOR.env.ie )
-{
- CKEDITOR.dom.element.prototype.hasAttribute = function( name )
- {
- var $attr = this.$.attributes.getNamedItem( name );
-
- if ( this.getName() == 'input' )
- {
- switch ( name )
- {
- case 'class' :
- return this.$.className.length > 0;
- case 'checked' :
- return !!this.$.checked;
- case 'value' :
- var type = this.getAttribute( 'type' );
- if ( type == 'checkbox' || type == 'radio' )
- return this.$.value != 'on';
- break;
- default:
+ }
+});
+
+if ( CKEDITOR.env.ie ) {
+ CKEDITOR.dom.element.prototype.hasAttribute = CKEDITOR.tools.override( CKEDITOR.dom.element.prototype.hasAttribute, function( original ) {
+ return function( name ) {
+ var $attr = this.$.attributes.getNamedItem( name );
+
+ if ( this.getName() == 'input' ) {
+ switch ( name ) {
+ case 'class':
+ return this.$.className.length > 0;
+ case 'checked':
+ return !!this.$.checked;
+ case 'value':
+ var type = this.getAttribute( 'type' );
+ return type == 'checkbox' || type == 'radio' ? this.$.value != 'on' : this.$.value;
+ }
}
- }
- return !!( $attr && $attr.specified );
- };
+ return original.apply( this, arguments );
+ };
+ });
}
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/icons/horizontalrule.png b/devel/third-party/ckeditor/plugins/horizontalrule/icons/horizontalrule.png
new file mode 100644
index 0000000..73d3dc2
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/horizontalrule/icons/horizontalrule.png differ
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/af.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/af.js
new file mode 100644
index 0000000..640d612
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'af', {
+ toolbar: 'Horisontale lyn invoeg'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ar.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ar.js
new file mode 100644
index 0000000..086f0e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ar', {
+ toolbar: 'خط ÙØ§ØµÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/bg.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/bg.js
new file mode 100644
index 0000000..dd3348f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'bg', {
+ toolbar: 'ÐмÑкване на Ñ
оÑизонÑална линиÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/bn.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/bn.js
new file mode 100644
index 0000000..53a4c99
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'bn', {
+ toolbar: 'রà§à¦à¦¾ যà§à¦à§à¦¤ à¦à¦°'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/bs.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/bs.js
new file mode 100644
index 0000000..edc49e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'bs', {
+ toolbar: 'Ubaci horizontalnu liniju'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ca.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ca.js
new file mode 100644
index 0000000..5f748d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ca', {
+ toolbar: 'Insereix lÃnia horitzontal'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/cs.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/cs.js
new file mode 100644
index 0000000..4175220
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'cs', {
+ toolbar: 'Vložit vodorovnou linku'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/cy.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/cy.js
new file mode 100644
index 0000000..6ecad53
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'cy', {
+ toolbar: 'Mewnosod Llinell Lorweddol'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/da.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/da.js
new file mode 100644
index 0000000..e70db72
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'da', {
+ toolbar: 'Indsæt vandret streg'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/de.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/de.js
new file mode 100644
index 0000000..6bb2cf6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'de', {
+ toolbar: 'Horizontale Linie einfügen'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/el.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/el.js
new file mode 100644
index 0000000..86060b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'el', {
+ toolbar: 'ÎιÏαγÏγή ÎÏιζÏνÏÎ¹Î±Ï ÎÏαμμήÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-au.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-au.js
new file mode 100644
index 0000000..b8010a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'en-au', {
+ toolbar: 'Insert Horizontal Line'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-ca.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-ca.js
new file mode 100644
index 0000000..7fda705
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'en-ca', {
+ toolbar: 'Insert Horizontal Line'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-gb.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-gb.js
new file mode 100644
index 0000000..405636c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'en-gb', {
+ toolbar: 'Insert Horizontal Line'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/en.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en.js
new file mode 100644
index 0000000..5c78031
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'en', {
+ toolbar: 'Insert Horizontal Line'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/eo.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/eo.js
new file mode 100644
index 0000000..42ff177
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'eo', {
+ toolbar: 'Enmeti Horizontalan Linion'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/es.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/es.js
new file mode 100644
index 0000000..bbec612
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'es', {
+ toolbar: 'Insertar LÃnea Horizontal'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/et.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/et.js
new file mode 100644
index 0000000..d7cb31a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'et', {
+ toolbar: 'Horisontaaljoone sisestamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/eu.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/eu.js
new file mode 100644
index 0000000..9cb2e22
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'eu', {
+ toolbar: 'Txertatu Marra Horizontala'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/fa.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fa.js
new file mode 100644
index 0000000..1fce12c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'fa', {
+ toolbar: 'Ú¯ÙØ¬Ø§Ùد٠خط اÙÙÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/fi.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fi.js
new file mode 100644
index 0000000..3b59ef6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'fi', {
+ toolbar: 'Lisää murtoviiva'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/fo.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fo.js
new file mode 100644
index 0000000..918a6ac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'fo', {
+ toolbar: 'Ger vatnrætta linju'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fr-ca.js
new file mode 100644
index 0000000..22a554a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'fr-ca', {
+ toolbar: 'Insérer un séparateur'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/fr.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fr.js
new file mode 100644
index 0000000..c13cce7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'fr', {
+ toolbar: 'Ligne horizontale'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/gl.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/gl.js
new file mode 100644
index 0000000..4836671
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'gl', {
+ toolbar: 'Inserir Liña Horizontal'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/gu.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/gu.js
new file mode 100644
index 0000000..3a4dc57
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'gu', {
+ toolbar: 'સમસà«àª¤àª°à«àª¯ રà«àªàª¾ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/he.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/he.js
new file mode 100644
index 0000000..7795312
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'he', {
+ toolbar: '××ספת ×§× ××פק×'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/hi.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/hi.js
new file mode 100644
index 0000000..e2887ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'hi', {
+ toolbar: 'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² रà¥à¤à¤¾ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/hr.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/hr.js
new file mode 100644
index 0000000..dc8d78c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'hr', {
+ toolbar: 'Ubaci vodoravnu liniju'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/hu.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/hu.js
new file mode 100644
index 0000000..842d6a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'hu', {
+ toolbar: 'Elválasztóvonal beillesztése'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/is.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/is.js
new file mode 100644
index 0000000..54dd1dd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'is', {
+ toolbar: 'Lóðrétt lÃna'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/it.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/it.js
new file mode 100644
index 0000000..1be1bc1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'it', {
+ toolbar: 'Inserisci riga orizzontale'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ja.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ja.js
new file mode 100644
index 0000000..9fcce42
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ja', {
+ toolbar: '横罫ç·'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ka.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ka.js
new file mode 100644
index 0000000..b5fe9a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ka', {
+ toolbar: 'á°áá ááááá¢ááá£á á á®áááá¡ á©áá¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/km.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/km.js
new file mode 100644
index 0000000..0e71308
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'km', {
+ toolbar: 'ááááááááááá¶ááááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ko.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ko.js
new file mode 100644
index 0000000..4f44c34
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ko', {
+ toolbar: 'ìíì ì½ì
'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ku.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ku.js
new file mode 100644
index 0000000..c258a95
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ku', {
+ toolbar: 'Ø¯Ø§ÙØ§ÙÛ ÙÛÙÛ Ø¦Ø§Ø³ÛÛÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/lt.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/lt.js
new file mode 100644
index 0000000..0ca4938
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'lt', {
+ toolbar: 'Ä®terpti horizontaliÄ
linijÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/lv.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/lv.js
new file mode 100644
index 0000000..6423b75
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'lv', {
+ toolbar: 'Ievietot horizontÄlu AtdalÄ«tÄjsvÄ«tru'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/mk.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/mk.js
new file mode 100644
index 0000000..caca745
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'mk', {
+ toolbar: 'Insert Horizontal Line' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/mn.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/mn.js
new file mode 100644
index 0000000..7f83dd6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'mn', {
+ toolbar: 'Хөндлөн зÑÑÐ°Ð°Ñ Ð¾ÑÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ms.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ms.js
new file mode 100644
index 0000000..19165bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ms', {
+ toolbar: 'Masukkan Garisan Membujur'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/nb.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/nb.js
new file mode 100644
index 0000000..0d7980c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'nb', {
+ toolbar: 'Sett inn horisontal linje'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/nl.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/nl.js
new file mode 100644
index 0000000..73d7884
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'nl', {
+ toolbar: 'Horizontale lijn invoegen'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/no.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/no.js
new file mode 100644
index 0000000..a79dab7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'no', {
+ toolbar: 'Sett inn horisontal linje'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/pl.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/pl.js
new file mode 100644
index 0000000..de63fc6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'pl', {
+ toolbar: 'Wstaw poziomÄ
liniÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/pt-br.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/pt-br.js
new file mode 100644
index 0000000..acfa43c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'pt-br', {
+ toolbar: 'Inserir Linha Horizontal'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/pt.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/pt.js
new file mode 100644
index 0000000..f41ee30
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'pt', {
+ toolbar: 'Inserir Linha Horizontal'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ro.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ro.js
new file mode 100644
index 0000000..4a1b1f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ro', {
+ toolbar: 'InsereazÄ linie orizontalÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ru.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ru.js
new file mode 100644
index 0000000..18f2811
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ru', {
+ toolbar: 'ÐÑÑавиÑÑ Ð³Ð¾ÑизонÑалÑнÑÑ Ð»Ð¸Ð½Ð¸Ñ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/sk.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sk.js
new file mode 100644
index 0000000..3d57b47
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'sk', {
+ toolbar: 'VložiÅ¥ vodorovnú Äiaru'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/sl.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sl.js
new file mode 100644
index 0000000..b9d8e2f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'sl', {
+ toolbar: 'Vstavi vodoravno Ärto'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sr-latn.js
new file mode 100644
index 0000000..f8b3316
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'sr-latn', {
+ toolbar: 'Unesi horizontalnu liniju'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/sr.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sr.js
new file mode 100644
index 0000000..5554723
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'sr', {
+ toolbar: 'УнеÑи Ñ
оÑизонÑÐ°Ð»Ð½Ñ Ð»Ð¸Ð½Ð¸ÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/sv.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sv.js
new file mode 100644
index 0000000..36fdab7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'sv', {
+ toolbar: 'Infoga horisontal linje'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/th.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/th.js
new file mode 100644
index 0000000..b5518ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'th', {
+ toolbar: 'à¹à¸à¸£à¸à¹à¸ªà¹à¸à¸à¸±à¹à¸à¸à¸£à¸£à¸à¸±à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/tr.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/tr.js
new file mode 100644
index 0000000..4cde865
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'tr', {
+ toolbar: 'Yatay Satır Ekle'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/ug.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ug.js
new file mode 100644
index 0000000..f75e6c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'ug', {
+ toolbar: 'ØªÙØºØ±Ø§ Ø³ÙØ²ÙÙ ÙÙØ³ØªÛر'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/uk.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/uk.js
new file mode 100644
index 0000000..30d93ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'uk', {
+ toolbar: 'ÐоÑизонÑалÑна лÑнÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/vi.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/vi.js
new file mode 100644
index 0000000..854f5eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'vi', {
+ toolbar: 'Chèn ÄÆ°á»ng phân cách ngang'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/zh-cn.js
new file mode 100644
index 0000000..b3e172d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'zh-cn', {
+ toolbar: 'æå
¥æ°´å¹³çº¿'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/lang/zh.js b/devel/third-party/ckeditor/plugins/horizontalrule/lang/zh.js
new file mode 100644
index 0000000..4283633
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'horizontalrule', 'zh', {
+ toolbar: 'æå
¥æ°´å¹³ç·'
+});
diff --git a/devel/third-party/ckeditor/plugins/horizontalrule/plugin.js b/devel/third-party/ckeditor/plugins/horizontalrule/plugin.js
index a5d1edd..98745d3 100644
--- a/devel/third-party/ckeditor/plugins/horizontalrule/plugin.js
+++ b/devel/third-party/ckeditor/plugins/horizontalrule/plugin.js
@@ -1,36 +1,37 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Horizontal Rule plugin.
+ * @fileOverview Horizontal Rule plugin.
*/
-(function()
-{
- var horizontalruleCmd =
- {
- canUndo : false, // The undo snapshot will be handled by 'insertElement'.
- exec : function( editor )
- {
- editor.insertElement( editor.document.createElement( 'hr' ) );
+(function() {
+ var horizontalruleCmd = {
+ canUndo: false, // The undo snapshot will be handled by 'insertElement'.
+ exec: function( editor ) {
+ var hr = editor.document.createElement( 'hr' );
+ editor.insertElement( hr );
}
};
var pluginName = 'horizontalrule';
// Register a plugin named "horizontalrule".
- CKEDITOR.plugins.add( pluginName,
- {
- init : function( editor )
- {
+ CKEDITOR.plugins.add( pluginName, {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'horizontalrule', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
+
editor.addCommand( pluginName, horizontalruleCmd );
- editor.ui.addButton( 'HorizontalRule',
- {
- label : editor.lang.horizontalrule,
- command : pluginName
- });
+ editor.ui.addButton && editor.ui.addButton( 'HorizontalRule', {
+ label: editor.lang.horizontalrule.toolbar,
+ command: pluginName,
+ toolbar: 'insert,40'
+ });
}
});
})();
diff --git a/devel/third-party/ckeditor/plugins/htmldataprocessor/plugin.js b/devel/third-party/ckeditor/plugins/htmldataprocessor/plugin.js
deleted file mode 100644
index c431c03..0000000
--- a/devel/third-party/ckeditor/plugins/htmldataprocessor/plugin.js
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- // Regex to scan for at the end of blocks, which are actually placeholders.
- // Safari transforms the to \xa0. (#4172)
- var tailNbspRegex = /^[\t\r\n ]*(?: |\xa0)$/;
-
- var protectedSourceMarker = '{cke_protected}';
-
- // Return the last non-space child node of the block (#4344).
- function lastNoneSpaceChild( block )
- {
- var lastIndex = block.children.length,
- last = block.children[ lastIndex - 1 ];
- while ( last && last.type == CKEDITOR.NODE_TEXT && !CKEDITOR.tools.trim( last.value ) )
- last = block.children[ --lastIndex ];
- return last;
- }
-
- function trimFillers( block, fromSource )
- {
- // If the current node is a block, and if we're converting from source or
- // we're not in IE then search for and remove any tailing BR node.
- //
- // Also, any at the end of blocks are fillers, remove them as well.
- // (#2886)
- var children = block.children, lastChild = lastNoneSpaceChild( block );
- if ( lastChild )
- {
- if ( ( fromSource || !CKEDITOR.env.ie ) && lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.name == 'br' )
- children.pop();
- if ( lastChild.type == CKEDITOR.NODE_TEXT && tailNbspRegex.test( lastChild.value ) )
- children.pop();
- }
- }
-
- function blockNeedsExtension( block )
- {
- var lastChild = lastNoneSpaceChild( block );
-
- return !lastChild
- || lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.name == 'br'
- // Some of the controls in form needs extension too,
- // to move cursor at the end of the form. (#4791)
- || block.name == 'form' && lastChild.name == 'input';
- }
-
- function extendBlockForDisplay( block )
- {
- trimFillers( block, true );
-
- if ( blockNeedsExtension( block ) )
- {
- if ( CKEDITOR.env.ie )
- block.add( new CKEDITOR.htmlParser.text( '\xa0' ) );
- else
- block.add( new CKEDITOR.htmlParser.element( 'br', {} ) );
- }
- }
-
- function extendBlockForOutput( block )
- {
- trimFillers( block );
-
- if ( blockNeedsExtension( block ) )
- block.add( new CKEDITOR.htmlParser.text( '\xa0' ) );
- }
-
- var dtd = CKEDITOR.dtd;
-
- // Find out the list of block-like tags that can contain <br>.
- var blockLikeTags = CKEDITOR.tools.extend( {}, dtd.$block, dtd.$listItem, dtd.$tableContent );
- for ( var i in blockLikeTags )
- {
- if ( ! ( 'br' in dtd[i] ) )
- delete blockLikeTags[i];
- }
- // We just avoid filler in <pre> right now.
- // TODO: Support filler for <pre>, line break is also occupy line height.
- delete blockLikeTags.pre;
- var defaultDataFilterRules =
- {
- elements : {},
- attributeNames :
- [
- // Event attributes (onXYZ) must not be directly set. They can become
- // active in the editing area (IE|WebKit).
- [ ( /^on/ ), '_cke_pa_on' ]
- ]
- };
-
- var defaultDataBlockFilterRules = { elements : {} };
-
- for ( i in blockLikeTags )
- defaultDataBlockFilterRules.elements[ i ] = extendBlockForDisplay;
-
- var defaultHtmlFilterRules =
- {
- elementNames :
- [
- // Remove the "cke:" namespace prefix.
- [ ( /^cke:/ ), '' ],
-
- // Ignore <?xml:namespace> tags.
- [ ( /^\?xml:namespace$/ ), '' ]
- ],
-
- attributeNames :
- [
- // Attributes saved for changes and protected attributes.
- [ ( /^_cke_(saved|pa)_/ ), '' ],
-
- // All "_cke" attributes are to be ignored.
- [ ( /^_cke.*/ ), '' ],
-
- [ 'hidefocus', '' ]
- ],
-
- elements :
- {
- $ : function( element )
- {
- var attribs = element.attributes;
-
- if ( attribs )
- {
- // Elements marked as temporary are to be ignored.
- if ( attribs.cke_temp )
- return false;
-
- // Remove duplicated attributes - #3789.
- var attributeNames = [ 'name', 'href', 'src' ],
- savedAttributeName;
- for ( var i = 0 ; i < attributeNames.length ; i++ )
- {
- savedAttributeName = '_cke_saved_' + attributeNames[ i ];
- savedAttributeName in attribs && ( delete attribs[ attributeNames[ i ] ] );
- }
- }
-
- return element;
- },
-
- embed : function( element )
- {
- var parent = element.parent;
-
- // If the <embed> is child of a <object>, copy the width
- // and height attributes from it.
- if ( parent && parent.name == 'object' )
- {
- var parentWidth = parent.attributes.width,
- parentHeight = parent.attributes.height;
- parentWidth && ( element.attributes.width = parentWidth );
- parentHeight && ( element.attributes.height = parentHeight );
- }
- },
- // Restore param elements into self-closing.
- param : function( param )
- {
- param.children = [];
- param.isEmpty = true;
- return param;
- },
-
- // Remove empty link but not empty anchor.(#3829)
- a : function( element )
- {
- if ( !( element.children.length ||
- element.attributes.name ||
- element.attributes._cke_saved_name ) )
- {
- return false;
- }
- },
-
- html : function( element )
- {
- delete element.attributes.contenteditable;
- delete element.attributes[ 'class' ];
- },
-
- body : function( element )
- {
- delete element.attributes.spellcheck;
- delete element.attributes.contenteditable;
- },
-
- style : function( element )
- {
- var child = element.children[ 0 ];
- child && child.value && ( child.value = CKEDITOR.tools.trim( child.value ));
-
- if ( !element.attributes.type )
- element.attributes.type = 'text/css';
- },
-
- title : function( element )
- {
- var titleText = element.children[ 0 ];
- titleText && ( titleText.value = element.attributes[ '_cke_title' ] || '' );
- }
- },
-
- attributes :
- {
- 'class' : function( value, element )
- {
- // Remove all class names starting with "cke_".
- return CKEDITOR.tools.ltrim( value.replace( /(?:^|\s+)cke_[^\s]*/g, '' ) ) || false;
- }
- },
-
- comment : function( contents )
- {
- // If this is a comment for protected source.
- if ( contents.substr( 0, protectedSourceMarker.length ) == protectedSourceMarker )
- {
- // Remove the extra marker for real comments from it.
- if ( contents.substr( protectedSourceMarker.length, 3 ) == '{C}' )
- contents = contents.substr( protectedSourceMarker.length + 3 );
- else
- contents = contents.substr( protectedSourceMarker.length );
-
- return new CKEDITOR.htmlParser.cdata( decodeURIComponent( contents ) );
- }
-
- return contents;
- }
- };
-
- var defaultHtmlBlockFilterRules = { elements : {} };
-
- for ( i in blockLikeTags )
- defaultHtmlBlockFilterRules.elements[ i ] = extendBlockForOutput;
-
- if ( CKEDITOR.env.ie )
- {
- // IE outputs style attribute in capital letters. We should convert
- // them back to lower case.
- defaultHtmlFilterRules.attributes.style = function( value, element )
- {
- return value.toLowerCase();
- };
- }
-
- function protectReadOnly( element )
- {
- element.attributes.contenteditable = "false";
- }
- function unprotectReadyOnly( element )
- {
- delete element.attributes.contenteditable;
- }
- // Disable form elements editing mode provided by some browers. (#5746)
- for ( i in { input : 1, textarea : 1 } )
- {
- defaultDataFilterRules.elements[ i ] = protectReadOnly;
- defaultHtmlFilterRules.elements[ i ] = unprotectReadyOnly;
- }
-
- var protectAttributeRegex = /<((?:a|area|img|input)[\s\S]*?\s)((href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+)))([^>]*)>/gi,
- findSavedSrcRegex = /\s_cke_saved_src\s*=/;
-
- var protectElementsRegex = /(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,
- encodedElementsRegex = /<cke:encoded>([^<]*)<\/cke:encoded>/gi;
-
- var protectElementNamesRegex = /(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,
- unprotectElementNamesRegex = /(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi;
-
- var protectSelfClosingRegex = /<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;
-
- function protectAttributes( html )
- {
- return html.replace( protectAttributeRegex, function( tag, beginning, fullAttr, attrName, end )
- {
- // We should not rewrite the _cke_saved_src attribute (#5218)
- if ( attrName == 'src' && findSavedSrcRegex.test( tag ) )
- return tag;
- else
- return '<' + beginning + fullAttr + ' _cke_saved_' + fullAttr + end + '>';
- });
- }
-
- function protectElements( html )
- {
- return html.replace( protectElementsRegex, function( match )
- {
- return '<cke:encoded>' + encodeURIComponent( match ) + '</cke:encoded>';
- });
- }
-
- function unprotectElements( html )
- {
- return html.replace( encodedElementsRegex, function( match, encoded )
- {
- return decodeURIComponent( encoded );
- });
- }
-
- function protectElementsNames( html )
- {
- return html.replace( protectElementNamesRegex, '$1cke:$2');
- }
-
- function unprotectElementNames( html )
- {
- return html.replace( unprotectElementNamesRegex, '$1$2' );
- }
-
- function protectSelfClosingElements( html )
- {
- return html.replace( protectSelfClosingRegex, '<cke:$1$2></cke:$1>' );
- }
-
- function protectRealComments( html )
- {
- return html.replace( /<!--(?!{cke_protected})[\s\S]+?-->/g, function( match )
- {
- return '<!--' + protectedSourceMarker +
- '{C}' +
- encodeURIComponent( match ).replace( /--/g, '%2D%2D' ) +
- '-->';
- });
- }
-
- function unprotectRealComments( html )
- {
- return html.replace( /<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g, function( match, data )
- {
- return decodeURIComponent( data );
- });
- }
-
- function protectSource( data, protectRegexes )
- {
- var protectedHtml = [],
- tempRegex = /<\!--\{cke_temp(comment)?\}(\d*?)-->/g;
-
- var regexes =
- [
- // Script tags will also be forced to be protected, otherwise
- // IE will execute them.
- ( /<script[\s\S]*?<\/script>/gi ),
-
- // <noscript> tags (get lost in IE and messed up in FF).
- /<noscript[\s\S]*?<\/noscript>/gi
- ]
- .concat( protectRegexes );
-
- // First of any other protection, we must protect all comments
- // to avoid loosing them (of course, IE related).
- // Note that we use a different tag for comments, as we need to
- // transform them when applying filters.
- data = data.replace( (/<!--[\s\S]*?-->/g), function( match )
- {
- return '<!--{cke_tempcomment}' + ( protectedHtml.push( match ) - 1 ) + '-->';
- });
-
- for ( var i = 0 ; i < regexes.length ; i++ )
- {
- data = data.replace( regexes[i], function( match )
- {
- match = match.replace( tempRegex, // There could be protected source inside another one. (#3869).
- function( $, isComment, id )
- {
- return protectedHtml[ id ];
- }
- );
- return '<!--{cke_temp}' + ( protectedHtml.push( match ) - 1 ) + '-->';
- });
- }
- data = data.replace( tempRegex, function( $, isComment, id )
- {
- return '<!--' + protectedSourceMarker +
- ( isComment ? '{C}' : '' ) +
- encodeURIComponent( protectedHtml[ id ] ).replace( /--/g, '%2D%2D' ) +
- '-->';
- }
- );
- return data;
- }
-
- CKEDITOR.plugins.add( 'htmldataprocessor',
- {
- requires : [ 'htmlwriter' ],
-
- init : function( editor )
- {
- var dataProcessor = editor.dataProcessor = new CKEDITOR.htmlDataProcessor( editor );
-
- dataProcessor.writer.forceSimpleAmpersand = editor.config.forceSimpleAmpersand;
-
- dataProcessor.dataFilter.addRules( defaultDataFilterRules );
- dataProcessor.dataFilter.addRules( defaultDataBlockFilterRules );
- dataProcessor.htmlFilter.addRules( defaultHtmlFilterRules );
- dataProcessor.htmlFilter.addRules( defaultHtmlBlockFilterRules );
- }
- });
-
- CKEDITOR.htmlDataProcessor = function( editor )
- {
- this.editor = editor;
-
- this.writer = new CKEDITOR.htmlWriter();
- this.dataFilter = new CKEDITOR.htmlParser.filter();
- this.htmlFilter = new CKEDITOR.htmlParser.filter();
- };
-
- CKEDITOR.htmlDataProcessor.prototype =
- {
- toHtml : function( data, fixForBody )
- {
- // The source data is already HTML, but we need to clean
- // it up and apply the filter.
-
- data = protectSource( data, this.editor.config.protectedSource );
-
- // Before anything, we must protect the URL attributes as the
- // browser may changing them when setting the innerHTML later in
- // the code.
- data = protectAttributes( data );
-
- // Protect elements than can't be set inside a DIV. E.g. IE removes
- // style tags from innerHTML. (#3710)
- data = protectElements( data );
-
- // Certain elements has problem to go through DOM operation, protect
- // them by prefixing 'cke' namespace. (#3591)
- data = protectElementsNames( data );
-
- // All none-IE browsers ignore self-closed custom elements,
- // protecting them into open-close. (#3591)
- data = protectSelfClosingElements( data );
-
- // Call the browser to help us fixing a possibly invalid HTML
- // structure.
- var div = new CKEDITOR.dom.element( 'div' );
- // Add fake character to workaround IE comments bug. (#3801)
- div.setHtml( 'a' + data );
- data = div.getHtml().substr( 1 );
-
- // Unprotect "some" of the protected elements at this point.
- data = unprotectElementNames( data );
-
- data = unprotectElements( data );
-
- // Restore the comments that have been protected, in this way they
- // can be properly filtered.
- data = unprotectRealComments( data );
-
- // Now use our parser to make further fixes to the structure, as
- // well as apply the filter.
- var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data, fixForBody ),
- writer = new CKEDITOR.htmlParser.basicWriter();
-
- fragment.writeHtml( writer, this.dataFilter );
- data = writer.getHtml( true );
-
- // Protect the real comments again.
- data = protectRealComments( data );
-
- return data;
- },
-
- toDataFormat : function( html, fixForBody )
- {
- var writer = this.writer,
- fragment = CKEDITOR.htmlParser.fragment.fromHtml( html, fixForBody );
-
- writer.reset();
-
- fragment.writeHtml( writer, this.htmlFilter );
-
- return writer.getHtml( true );
- }
- };
-})();
-
-/**
- * Whether to force using "&" instead of "&" in elements attributes
- * values. It's not recommended to change this setting for compliance with the
- * W3C XHTML 1.0 standards
- * (<a href="http://www.w3.org/TR/xhtml1/#C_12">C.12, XHTML 1.0</a>).
- * @type Boolean
- * @default false
- * @example
- * config.forceSimpleAmpersand = false;
- */
-CKEDITOR.config.forceSimpleAmpersand = false;
diff --git a/devel/third-party/ckeditor/plugins/htmlwriter/plugin.js b/devel/third-party/ckeditor/plugins/htmlwriter/plugin.js
index 46fadde..dc173d5 100644
--- a/devel/third-party/ckeditor/plugins/htmlwriter/plugin.js
+++ b/devel/third-party/ckeditor/plugins/htmlwriter/plugin.js
@@ -1,155 +1,160 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'htmlwriter', {
+ init: function( editor ) {
+ var writer = new CKEDITOR.htmlWriter();
-CKEDITOR.plugins.add( 'htmlwriter' );
+ writer.forceSimpleAmpersand = editor.config.forceSimpleAmpersand;
+ writer.indentationChars = editor.config.dataIndentationChars || '\t';
+
+ // Overwrite default basicWriter initialized in hmtlDataProcessor constructor.
+ editor.dataProcessor.writer = writer;
+ }
+});
/**
* Class used to write HTML data.
- * @constructor
- * @example
- * var writer = new CKEDITOR.htmlWriter();
- * writer.openTag( 'p' );
- * writer.attribute( 'class', 'MyClass' );
- * writer.openTagClose( 'p' );
- * writer.text( 'Hello' );
- * writer.closeTag( 'p' );
- * alert( writer.getHtml() ); "<p class="MyClass">Hello</p>"
+ *
+ * var writer = new CKEDITOR.htmlWriter();
+ * writer.openTag( 'p' );
+ * writer.attribute( 'class', 'MyClass' );
+ * writer.openTagClose( 'p' );
+ * writer.text( 'Hello' );
+ * writer.closeTag( 'p' );
+ * alert( writer.getHtml() ); // '<p class="MyClass">Hello</p>'
+ *
+ * @class
+ * @extends CKEDITOR.htmlParser.basicWriter
*/
-CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
-{
- base : CKEDITOR.htmlParser.basicWriter,
-
- $ : function()
- {
+CKEDITOR.htmlWriter = CKEDITOR.tools.createClass({
+ base: CKEDITOR.htmlParser.basicWriter,
+
+ /**
+ * Creates a htmlWriter class instance.
+ *
+ * @constructor
+ */
+ $: function() {
// Call the base contructor.
this.base();
/**
* The characters to be used for each identation step.
- * @type String
- * @default "\t" (tab)
- * @example
- * // Use two spaces for indentation.
- * editorInstance.dataProcessor.writer.indentationChars = ' ';
+ *
+ * // Use tab for indentation.
+ * editorInstance.dataProcessor.writer.indentationChars = '\t';
*/
this.indentationChars = '\t';
/**
- * The characters to be used to close "self-closing" elements, like "br" or
- * "img".
- * @type String
- * @default " />"
- * @example
- * // Use HTML4 notation for self-closing elements.
- * editorInstance.dataProcessor.writer.selfClosingEnd = '>';
+ * The characters to be used to close "self-closing" elements, like `<br>` or `<img>`.
+ *
+ * // Use HTML4 notation for self-closing elements.
+ * editorInstance.dataProcessor.writer.selfClosingEnd = '>';
*/
this.selfClosingEnd = ' />';
/**
* The characters to be used for line breaks.
- * @type String
- * @default "\n" (LF)
- * @example
- * // Use CRLF for line breaks.
- * editorInstance.dataProcessor.writer.lineBreakChars = '\r\n';
+ *
+ * // Use CRLF for line breaks.
+ * editorInstance.dataProcessor.writer.lineBreakChars = '\r\n';
*/
this.lineBreakChars = '\n';
- this.forceSimpleAmpersand = false;
-
- this.sortAttributes = true;
+ this.sortAttributes = 1;
- this._.indent = false;
+ this._.indent = 0;
this._.indentation = '';
+ // Indicate preformatted block context status. (#5789)
+ this._.inPre = 0;
this._.rules = {};
var dtd = CKEDITOR.dtd;
- for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )
- {
- this.setRules( e,
- {
- indent : true,
- breakBeforeOpen : true,
- breakAfterOpen : true,
- breakBeforeClose : !dtd[ e ][ '#' ],
- breakAfterClose : true
- });
+ for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) ) {
+ this.setRules( e, {
+ indent: !dtd[ e ][ '#' ],
+ breakBeforeOpen: 1,
+ breakBeforeClose: !dtd[ e ][ '#' ],
+ breakAfterClose: 1,
+ needsSpace: ( e in dtd.$block ) && !( e in { li:1,dt:1,dd:1 } )
+ });
}
- this.setRules( 'br',
- {
- breakAfterOpen : true
- });
+ this.setRules( 'br', { breakAfterOpen:1 } );
- this.setRules( 'title',
- {
- indent : false,
- breakAfterOpen : false
- });
+ this.setRules( 'title', {
+ indent: 0,
+ breakAfterOpen: 0
+ });
- this.setRules( 'style',
- {
- indent : false,
- breakBeforeClose : true
- });
+ this.setRules( 'style', {
+ indent: 0,
+ breakBeforeClose: 1
+ });
- // Disable indentation on <pre>.
- this.setRules( 'pre',
- {
- indent: false
- });
+ this.setRules( 'pre', {
+ breakAfterOpen: 1, // Keep line break after the opening tag
+ indent: 0 // Disable indentation on <pre>.
+ });
},
- proto :
- {
+ proto: {
/**
* Writes the tag opening part for a opener tag.
+ *
+ * // Writes '<p'.
+ * writer.openTag( 'p', { class : 'MyClass', id : 'MyId' } );
+ *
* @param {String} tagName The element name for this tag.
* @param {Object} attributes The attributes defined for this tag. The
- * attributes could be used to inspect the tag.
- * @example
- * // Writes "<p".
- * writer.openTag( 'p', { class : 'MyClass', id : 'MyId' } );
+ * attributes could be used to inspect the tag.
*/
- openTag : function( tagName, attributes )
- {
+ openTag: function( tagName, attributes ) {
var rules = this._.rules[ tagName ];
+ if ( this._.afterCloser && rules && rules.needsSpace && this._.needsSpace )
+ this._.output.push( '\n' );
+
if ( this._.indent )
this.indentation();
// Do not break if indenting.
- else if ( rules && rules.breakBeforeOpen )
- {
+ else if ( rules && rules.breakBeforeOpen ) {
this.lineBreak();
this.indentation();
}
this._.output.push( '<', tagName );
+
+ this._.afterCloser = 0;
},
/**
* Writes the tag closing part for a opener tag.
+ *
+ * // Writes '>'.
+ * writer.openTagClose( 'p', false );
+ *
+ * // Writes ' />'.
+ * writer.openTagClose( 'br', true );
+ *
* @param {String} tagName The element name for this tag.
* @param {Boolean} isSelfClose Indicates that this is a self-closing tag,
- * like "br" or "img".
- * @example
- * // Writes ">".
- * writer.openTagClose( 'p', false );
- * @example
- * // Writes " />".
- * writer.openTagClose( 'br', true );
+ * like `<br>` or `<img>`.
*/
- openTagClose : function( tagName, isSelfClose )
- {
+ openTagClose: function( tagName, isSelfClose ) {
var rules = this._.rules[ tagName ];
- if ( isSelfClose )
+ if ( isSelfClose ) {
this._.output.push( this.selfClosingEnd );
- else
- {
+
+ if ( rules && rules.breakAfterClose )
+ this._.needsSpace = rules.needsSpace;
+ } else {
this._.output.push( '>' );
if ( rules && rules.indent )
@@ -158,22 +163,22 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
if ( rules && rules.breakAfterOpen )
this.lineBreak();
+ tagName == 'pre' && ( this._.inPre = 1 );
},
/**
* Writes an attribute. This function should be called after opening the
* tag with {@link #openTagClose}.
+ *
+ * // Writes ' class="MyClass"'.
+ * writer.attribute( 'class', 'MyClass' );
+ *
* @param {String} attName The attribute name.
* @param {String} attValue The attribute value.
- * @example
- * // Writes ' class="MyClass"'.
- * writer.attribute( 'class', 'MyClass' );
*/
- attribute : function( attName, attValue )
- {
+ attribute: function( attName, attValue ) {
- if ( typeof attValue == 'string' )
- {
+ if ( typeof attValue == 'string' ) {
this.forceSimpleAmpersand && ( attValue = attValue.replace( /&/g, '&' ) );
// Browsers don't always escape special character in attribute values. (#4683, #4719).
attValue = CKEDITOR.tools.htmlEncodeAttr( attValue );
@@ -184,13 +189,13 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
/**
* Writes a closer tag.
+ *
+ * // Writes '</p>'.
+ * writer.closeTag( 'p' );
+ *
* @param {String} tagName The element name for this tag.
- * @example
- * // Writes "</p>".
- * writer.closeTag( 'p' );
*/
- closeTag : function( tagName )
- {
+ closeTag: function( tagName ) {
var rules = this._.rules[ tagName ];
if ( rules && rules.indent )
@@ -199,31 +204,34 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
if ( this._.indent )
this.indentation();
// Do not break if indenting.
- else if ( rules && rules.breakBeforeClose )
- {
+ else if ( rules && rules.breakBeforeClose ) {
this.lineBreak();
this.indentation();
}
this._.output.push( '</', tagName, '>' );
+ tagName == 'pre' && ( this._.inPre = 0 );
- if ( rules && rules.breakAfterClose )
+ if ( rules && rules.breakAfterClose ) {
this.lineBreak();
+ this._.needsSpace = rules.needsSpace;
+ }
+
+ this._.afterCloser = 1;
},
/**
* Writes text.
+ *
+ * // Writes 'Hello Word'.
+ * writer.text( 'Hello Word' );
+ *
* @param {String} text The text value
- * @example
- * // Writes "Hello Word".
- * writer.text( 'Hello Word' );
*/
- text : function( text )
- {
- if ( this._.indent )
- {
+ text: function( text ) {
+ if ( this._.indent ) {
this.indentation();
- text = CKEDITOR.tools.ltrim( text );
+ !this._.inPre && ( text = CKEDITOR.tools.ltrim( text ) );
}
this._.output.push( text );
@@ -231,13 +239,13 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
/**
* Writes a comment.
+ *
+ * // Writes "<!-- My comment -->".
+ * writer.comment( ' My comment ' );
+ *
* @param {String} comment The comment text.
- * @example
- * // Writes "<!-- My comment -->".
- * writer.comment( ' My comment ' );
*/
- comment : function( comment )
- {
+ comment: function( comment ) {
if ( this._.indent )
this.indentation();
@@ -246,63 +254,73 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
/**
* Writes a line break. It uses the {@link #lineBreakChars} property for it.
- * @example
- * // Writes "\n" (e.g.).
- * writer.lineBreak();
+ *
+ * // Writes '\n' (e.g.).
+ * writer.lineBreak();
*/
- lineBreak : function()
- {
- if ( this._.output.length > 0 )
+ lineBreak: function() {
+ if ( !this._.inPre && this._.output.length > 0 )
this._.output.push( this.lineBreakChars );
- this._.indent = true;
+ this._.indent = 1;
+ },
+
+ /**
+ * Writes the current indentation chars. It uses the {@link #indentationChars}
+ * property, repeating it for the current indentation steps.
+ *
+ * // Writes '\t' (e.g.).
+ * writer.indentation();
+ */
+ indentation: function() {
+ if ( !this._.inPre && this._.indentation )
+ this._.output.push( this._.indentation );
+ this._.indent = 0;
},
/**
- * Writes the current indentation chars. It uses the
- * {@link #indentationChars} property, repeating it for the current
- * indentation steps.
- * @example
- * // Writes "\t" (e.g.).
- * writer.indentation();
+ * Empties the current output buffer. It also brings back the default
+ * values of the writer flags.
+ *
+ * writer.reset();
*/
- indentation : function()
- {
- this._.output.push( this._.indentation );
- this._.indent = false;
+ reset: function() {
+ this._.output = [];
+ this._.indent = 0;
+ this._.indentation = '';
+ this._.afterCloser = 0;
+ this._.inPre = 0;
},
/**
* Sets formatting rules for a give element. The possible rules are:
- * <ul>
- * <li><b>indent</b>: indent the element contents.</li>
- * <li><b>breakBeforeOpen</b>: break line before the opener tag for this element.</li>
- * <li><b>breakAfterOpen</b>: break line after the opener tag for this element.</li>
- * <li><b>breakBeforeClose</b>: break line before the closer tag for this element.</li>
- * <li><b>breakAfterClose</b>: break line after the closer tag for this element.</li>
- * </ul>
*
- * All rules default to "false". Each call to the function overrides
+ * * `indent`: indent the element contents.
+ * * `breakBeforeOpen`: break line before the opener tag for this element.
+ * * `breakAfterOpen`: break line after the opener tag for this element.
+ * * `breakBeforeClose`: break line before the closer tag for this element.
+ * * `breakAfterClose`: break line after the closer tag for this element.
+ *
+ * All rules default to `false`. Each call to the function overrides
* already present rules, leaving the undefined untouched.
*
- * By default, all elements available in the {@link CKEDITOR.dtd.$block),
- * {@link CKEDITOR.dtd.$listItem} and {@link CKEDITOR.dtd.$tableContent}
- * lists have all the above rules set to "true". Additionaly, the "br"
- * element has the "breakAfterOpen" set to "true".
+ * By default, all elements available in the {@link CKEDITOR.dtd#$block},
+ * {@link CKEDITOR.dtd#$listItem} and {@link CKEDITOR.dtd#$tableContent}
+ * lists have all the above rules set to `true`. Additionaly, the `<br>`
+ * element has the `breakAfterOpen` set to `true`.
+ *
+ * // Break line before and after "img" tags.
+ * writer.setRules( 'img', {
+ * breakBeforeOpen: true
+ * breakAfterOpen: true
+ * } );
+ *
+ * // Reset the rules for the "h1" tag.
+ * writer.setRules( 'h1', {} );
+ *
* @param {String} tagName The element name to which set the rules.
* @param {Object} rules An object containing the element rules.
- * @example
- * // Break line before and after "img" tags.
- * writer.setRules( 'img',
- * {
- * breakBeforeOpen : true
- * breakAfterOpen : true
- * });
- * @example
- * // Reset the rules for the "h1" tag.
- * writer.setRules( 'h1', {} );
*/
- setRules : function( tagName, rules )
- {
+ setRules: function( tagName, rules ) {
var currentRules = this._.rules[ tagName ];
if ( currentRules )
@@ -312,3 +330,30 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
}
}
});
+
+/**
+ * Whether to force using `'&'` instead of `'&'` in elements attributes
+ * values, it's not recommended to change this setting for compliance with the
+ * W3C XHTML 1.0 standards ([C.12, XHTML 1.0](http://www.w3.org/TR/xhtml1/#C_12)).
+ *
+ * // Use `'&'` instead of `'&'`
+ * CKEDITOR.config.forceSimpleAmpersand = true;
+ *
+ * @cfg {Boolean} [forceSimpleAmpersand=false]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The characters to be used for indenting the HTML produced by the editor.
+ * Using characters different than `' '` (space) and `'\t'` (tab) is definitely
+ * a bad idea as it'll mess the code.
+ *
+ * // No indentation.
+ * CKEDITOR.config.dataIndentationChars = '';
+ *
+ * // Use two spaces for indentation.
+ * CKEDITOR.config.dataIndentationChars = ' ';
+ *
+ * @cfg {String} [dataIndentationChars='\t']
+ * @member CKEDITOR.config
+ */
diff --git a/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla b/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla
new file mode 100644
index 0000000..27e68cc
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.fla differ
diff --git a/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf b/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf
new file mode 100644
index 0000000..dbe17b6
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/outputforflash.swf differ
diff --git a/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js b/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js
new file mode 100644
index 0000000..f55260e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/htmlwriter/samples/assets/outputforflash/swfobject.js
@@ -0,0 +1,5 @@
+/*jsl:ignoreall*/
+/* SWFObject v2.2 <http://code.google.com/p/swfobject/>
+ is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
+*/
+var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace
(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("
body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[a
f].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(
){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.pare
ntNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'
" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}r
eturn X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z
=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(
var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}ret
urn""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
diff --git a/devel/third-party/ckeditor/plugins/htmlwriter/samples/outputforflash.html b/devel/third-party/ckeditor/plugins/htmlwriter/samples/outputforflash.html
new file mode 100644
index 0000000..987700f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/htmlwriter/samples/outputforflash.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>Output for Flash — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <script src="../../../ckeditor.js"></script>
+ <script src="../../../samples/sample.js"></script>
+ <script src="assets/outputforflash/swfobject.js"></script>
+ <link href="../../../samples/sample.css" rel="stylesheet">
+ <meta name="ckeditor-sample-required-plugins" content="sourcearea">
+ <meta name="ckeditor-sample-name" content="Output for Flash">
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
+ <meta name="ckeditor-sample-description" content="Configuring CKEditor to produce HTML code that can be used with Adobe Flash.">
+ <style>
+
+ .alert
+ {
+ background: #ffa84c;
+ padding: 10px 15px;
+ font-weight: bold;
+ display: block;
+ margin-bottom: 20px;
+ }
+
+ </style>
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » Producing Flash Compliant HTML Output
+ </h1>
+ <div class="description">
+ <p>
+ This sample shows how to configure CKEditor to output
+ HTML code that can be used with
+ <a class="samples" href="http://www.adobe.com/livedocs/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000922.html">
+ Adobe Flash</a>.
+ The code will contain a subset of standard HTML elements like <code><b></code>,
+ <code><i></code>, and <code><p></code> as well as HTML attributes.
+ </p>
+ <p>
+ To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard
+ JavaScript call, and define CKEditor features to use HTML elements and attributes.
+ </p>
+ <p>
+ For details on how to create this setup check the source code of this sample page.
+ </p>
+ </div>
+ <p>
+ To see how it works, create some content in the editing area of CKEditor on the left
+ and send it to the Flash object on the right side of the page by using the
+ <strong>Send to Flash</strong> button.
+ </p>
+ <table style="width: 100%; border-spacing: 0; border-collapse:collapse;">
+ <tr>
+ <td style="width: 100%">
+ <textarea cols="80" id="editor1" name="editor1" rows="10"><p><b><font size="18" style="font-size:18px;">Flash and HTML</font></b></p><p> </p><p>It is possible to have <a href="http://ckeditor.com">CKEditor</a> creating content that will be later loaded inside <b>Flash</b> objects and animations.</p><p> </p><p>Flash has a few limitations when dealing with HTML:</p><p> </p><ul><li>It has limited support on tags.</li><li>There is no margin between block elements, like paragraphs.</li></ul></textarea>
+ <script>
+
+ if ( document.location.protocol == 'file:' )
+ alert( 'Warning: This samples does not work when loaded from local filesystem' +
+ 'due to security restrictions implemented in Flash.' +
+ '\n\nPlease load the sample from a web server instead.' );
+
+ var editor = CKEDITOR.replace( 'editor1', {
+ /*
+ * Ensure that htmlwriter plugin, which is required for this sample, is loaded.
+ */
+ extraPlugins: 'htmlwriter',
+
+ height: 290,
+ width: '100%',
+ toolbar: [
+ [ 'Source', '-', 'Bold', 'Italic', 'Underline', '-', 'BulletedList', '-', 'Link', 'Unlink' ],
+ [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock' ],
+ '/',
+ [ 'Font', 'FontSize' ],
+ [ 'TextColor', '-', 'About' ]
+ ],
+
+ /*
+ * Style sheet for the contents
+ */
+ contentsCss: 'body {color:#000; background-color#FFF; font-family: Arial; font-size:80%;} p, ol, ul {margin-top: 0px; margin-bottom: 0px;}',
+
+ /*
+ * Quirks doctype
+ */
+ docType: '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',
+
+ /*
+ * Core styles.
+ */
+ coreStyles_bold: { element: 'b' },
+ coreStyles_italic: { element: 'i' },
+ coreStyles_underline: { element: 'u' },
+
+ /*
+ * Font face.
+ */
+
+ // Define the way font elements will be applied to the document. The "font"
+ // element will be used.
+ font_style: {
+ element: 'font',
+ attributes: { 'face': '#(family)' }
+ },
+
+ /*
+ * Font sizes.
+ */
+
+ // The CSS part of the font sizes isn't used by Flash, it is there to get the
+ // font rendered correctly in CKEditor.
+ fontSize_sizes: '8px/8;9px/9;10px/10;11px/11;12px/12;14px/14;16px/16;18px/18;20px/20;22px/22;24px/24;26px/26;28px/28;36px/36;48px/48;72px/72',
+ fontSize_style: {
+ element: 'font',
+ attributes: { 'size': '#(size)' },
+ styles: { 'font-size': '#(size)px' }
+ } ,
+
+ /*
+ * Font colors.
+ */
+ colorButton_enableMore: true,
+
+ colorButton_foreStyle: {
+ element: 'font',
+ attributes: { 'color': '#(color)' }
+ },
+
+ colorButton_backStyle: {
+ element: 'font',
+ styles: { 'background-color': '#(color)' }
+ },
+
+ on: { 'instanceReady': configureFlashOutput }
+ });
+
+ /*
+ * Adjust the behavior of the dataProcessor to match the
+ * requirements of Flash
+ */
+ function configureFlashOutput( ev ) {
+ var editor = ev.editor,
+ dataProcessor = editor.dataProcessor,
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+
+ // Out self closing tags the HTML4 way, like <br>.
+ dataProcessor.writer.selfClosingEnd = '>';
+
+ // Make output formatting match Flash expectations
+ var dtd = CKEDITOR.dtd;
+ for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) ) {
+ dataProcessor.writer.setRules( e, {
+ indent: false,
+ breakBeforeOpen: false,
+ breakAfterOpen: false,
+ breakBeforeClose: false,
+ breakAfterClose: false
+ });
+ }
+ dataProcessor.writer.setRules( 'br', {
+ indent: false,
+ breakBeforeOpen: false,
+ breakAfterOpen: false,
+ breakBeforeClose: false,
+ breakAfterClose: false
+ });
+
+ // Output properties as attributes, not styles.
+ htmlFilter.addRules( {
+ elements: {
+ $: function( element ) {
+ var style, match, width, height, align;
+
+ // Output dimensions of images as width and height
+ if ( element.name == 'img' ) {
+ style = element.attributes.style;
+
+ if ( style ) {
+ // Get the width from the style.
+ match = ( /(?:^|\s)width\s*:\s*(\d+)px/i ).exec( style );
+ width = match && match[1];
+
+ // Get the height from the style.
+ match = ( /(?:^|\s)height\s*:\s*(\d+)px/i ).exec( style );
+ height = match && match[1];
+
+ if ( width ) {
+ element.attributes.style = element.attributes.style.replace( /(?:^|\s)width\s*:\s*(\d+)px;?/i , '' );
+ element.attributes.width = width;
+ }
+
+ if ( height ) {
+ element.attributes.style = element.attributes.style.replace( /(?:^|\s)height\s*:\s*(\d+)px;?/i , '' );
+ element.attributes.height = height;
+ }
+ }
+ }
+
+ // Output alignment of paragraphs using align
+ if ( element.name == 'p' ) {
+ style = element.attributes.style;
+
+ if ( style ) {
+ // Get the align from the style.
+ match = ( /(?:^|\s)text-align\s*:\s*(\w*);?/i ).exec( style );
+ align = match && match[1];
+
+ if ( align ) {
+ element.attributes.style = element.attributes.style.replace( /(?:^|\s)text-align\s*:\s*(\w*);?/i , '' );
+ element.attributes.align = align;
+ }
+ }
+ }
+
+ if ( element.attributes.style === '' )
+ delete element.attributes.style;
+
+ return element;
+ }
+ }
+ });
+ }
+
+ function sendToFlash() {
+ var html = CKEDITOR.instances.editor1.getData() ;
+
+ // Quick fix for link color.
+ html = html.replace( /<a /g, '<font color="#0000FF"><u><a ' )
+ html = html.replace( /<\/a>/g, '</a></u></font>' )
+
+ var flash = document.getElementById( 'ckFlashContainer' ) ;
+ flash.setData( html ) ;
+ }
+
+ CKEDITOR.domReady( function() {
+ if ( !swfobject.hasFlashPlayerVersion( '8' ) ) {
+ CKEDITOR.dom.element.createFromHtml( '<span class="alert">' +
+ 'At least Adobe Flash Player 8 is required to run this sample. ' +
+ 'You can download it from <a href="http://get.adobe.com/flashplayer">Adobe\'s website</a>.' +
+ '</span>' ).insertBefore( editor.element );
+ }
+
+ swfobject.embedSWF(
+ 'assets/outputforflash/outputforflash.swf',
+ 'ckFlashContainer',
+ '550',
+ '400',
+ '8',
+ { wmode: 'transparent' }
+ );
+ });
+
+ </script>
+ <p>
+ <input type="button" value="Send to Flash" onclick="sendToFlash();">
+ </p>
+ </td>
+ <td style="vertical-align: top; padding-left: 20px">
+ <div id="ckFlashContainer"></div>
+ </td>
+ </tr>
+ </table>
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/htmlwriter/samples/outputhtml.html b/devel/third-party/ckeditor/plugins/htmlwriter/samples/outputhtml.html
new file mode 100644
index 0000000..1dddd0d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/htmlwriter/samples/outputhtml.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>HTML Compliant Output — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <script src="../../../ckeditor.js"></script>
+ <script src="../../../samples/sample.js"></script>
+ <link href="../../../samples/sample.css" rel="stylesheet">
+ <meta name="ckeditor-sample-required-plugins" content="sourcearea">
+ <meta name="ckeditor-sample-name" content="Output HTML">
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
+ <meta name="ckeditor-sample-description" content="Configuring CKEditor to produce legacy HTML 4 code.">
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » Producing HTML Compliant Output
+ </h1>
+ <div class="description">
+ <p>
+ This sample shows how to configure CKEditor to output valid
+ <a class="samples" href="http://www.w3.org/TR/html401/">HTML 4.01</a> code.
+ Traditional HTML elements like <code><b></code>,
+ <code><i></code>, and <code><font></code> are used in place of
+ <code><strong></code>, <code><em></code>, and CSS styles.
+ </p>
+ <p>
+ To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard
+ JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes.
+ </p>
+ <p>
+ A snippet of the configuration code can be seen below; check the source of this page for
+ full definition:
+ </p>
+<pre class="samples">
+CKEDITOR.replace( '<em>textarea_id</em>', {
+ coreStyles_bold: { element: 'b' },
+ coreStyles_italic: { element: 'i' },
+
+ fontSize_style: {
+ element: 'font',
+ attributes: { 'size': '#(size)' }
+ }
+
+ ...
+});</pre>
+ </div>
+ <form action="../../../samples/sample_posteddata.php" method="post">
+ <p>
+ <label for="editor1">
+ Editor 1:
+ </label>
+ <textarea cols="80" id="editor1" name="editor1" rows="10"><p>This is some <b>sample text</b>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>
+ <script>
+
+ CKEDITOR.replace( 'editor1', {
+ /*
+ * Ensure that htmlwriter plugin, which is required for this sample, is loaded.
+ */
+ extraPlugins: 'htmlwriter',
+
+ /*
+ * Style sheet for the contents
+ */
+ contentsCss: 'body {color:#000; background-color#:FFF;}',
+
+ /*
+ * Simple HTML5 doctype
+ */
+ docType: '<!DOCTYPE HTML>',
+
+ /*
+ * Core styles.
+ */
+ coreStyles_bold: { element: 'b' },
+ coreStyles_italic: { element: 'i' },
+ coreStyles_underline: { element: 'u' },
+ coreStyles_strike: { element: 'strike' },
+
+ /*
+ * Font face.
+ */
+
+ // Define the way font elements will be applied to the document.
+ // The "font" element will be used.
+ font_style: {
+ element: 'font',
+ attributes: { 'face': '#(family)' }
+ },
+
+ /*
+ * Font sizes.
+ */
+ fontSize_sizes: 'xx-small/1;x-small/2;small/3;medium/4;large/5;x-large/6;xx-large/7',
+ fontSize_style: {
+ element: 'font',
+ attributes: { 'size': '#(size)' }
+ } ,
+
+ /*
+ * Font colors.
+ */
+ colorButton_enableMore: true,
+
+ colorButton_foreStyle: {
+ element: 'font',
+ attributes: { 'color': '#(color)' }
+ },
+
+ colorButton_backStyle: {
+ element: 'font',
+ styles: { 'background-color': '#(color)' }
+ },
+
+ /*
+ * Styles combo.
+ */
+ stylesSet: [
+ { name: 'Computer Code', element: 'code' },
+ { name: 'Keyboard Phrase', element: 'kbd' },
+ { name: 'Sample Text', element: 'samp' },
+ { name: 'Variable', element: 'var' },
+ { name: 'Deleted Text', element: 'del' },
+ { name: 'Inserted Text', element: 'ins' },
+ { name: 'Cited Work', element: 'cite' },
+ { name: 'Inline Quotation', element: 'q' }
+ ],
+
+ on: { 'instanceReady': configureHtmlOutput }
+ });
+
+ /*
+ * Adjust the behavior of the dataProcessor to avoid styles
+ * and make it look like FCKeditor HTML output.
+ */
+ function configureHtmlOutput( ev ) {
+ var editor = ev.editor,
+ dataProcessor = editor.dataProcessor,
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+
+ // Out self closing tags the HTML4 way, like <br>.
+ dataProcessor.writer.selfClosingEnd = '>';
+
+ // Make output formatting behave similar to FCKeditor
+ var dtd = CKEDITOR.dtd;
+ for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) ) {
+ dataProcessor.writer.setRules( e, {
+ indent: true,
+ breakBeforeOpen: true,
+ breakAfterOpen: false,
+ breakBeforeClose: !dtd[ e ][ '#' ],
+ breakAfterClose: true
+ });
+ }
+
+ // Output properties as attributes, not styles.
+ htmlFilter.addRules( {
+ elements: {
+ $: function( element ) {
+ // Output dimensions of images as width and height
+ if ( element.name == 'img' ) {
+ var style = element.attributes.style;
+
+ if ( style ) {
+ // Get the width from the style.
+ var match = ( /(?:^|\s)width\s*:\s*(\d+)px/i ).exec( style ),
+ width = match && match[ 1 ];
+
+ // Get the height from the style.
+ match = ( /(?:^|\s)height\s*:\s*(\d+)px/i ).exec( style );
+ var height = match && match[ 1 ];
+
+ if ( width ) {
+ element.attributes.style = element.attributes.style.replace( /(?:^|\s)width\s*:\s*(\d+)px;?/i , '' );
+ element.attributes.width = width;
+ }
+
+ if ( height ) {
+ element.attributes.style = element.attributes.style.replace( /(?:^|\s)height\s*:\s*(\d+)px;?/i , '' );
+ element.attributes.height = height;
+ }
+ }
+ }
+
+ // Output alignment of paragraphs using align
+ if ( element.name == 'p' ) {
+ style = element.attributes.style;
+
+ if ( style ) {
+ // Get the align from the style.
+ match = ( /(?:^|\s)text-align\s*:\s*(\w*);/i ).exec( style );
+ var align = match && match[ 1 ];
+
+ if ( align ) {
+ element.attributes.style = element.attributes.style.replace( /(?:^|\s)text-align\s*:\s*(\w*);?/i , '' );
+ element.attributes.align = align;
+ }
+ }
+ }
+
+ if ( !element.attributes.style )
+ delete element.attributes.style;
+
+ return element;
+ }
+ },
+
+ attributes: {
+ style: function( value, element ) {
+ // Return #RGB for background and border colors
+ return CKEDITOR.tools.convertRgbToHex( value );
+ }
+ }
+ });
+ }
+
+ </script>
+ </p>
+ <p>
+ <input type="submit" value="Submit">
+ </p>
+ </form>
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/iframe/dialogs/iframe.js b/devel/third-party/ckeditor/plugins/iframe/dialogs/iframe.js
new file mode 100644
index 0000000..db41a36
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/dialogs/iframe.js
@@ -0,0 +1,210 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ // Map 'true' and 'false' values to match W3C's specifications
+ // http://www.w3.org/TR/REC-html40/present/frames.html#h-16.5
+ var checkboxValues = {
+ scrolling: { 'true': 'yes', 'false': 'no' },
+ frameborder: { 'true': '1', 'false': '0' }
+ };
+
+ function loadValue( iframeNode ) {
+ var isCheckbox = this instanceof CKEDITOR.ui.dialog.checkbox;
+ if ( iframeNode.hasAttribute( this.id ) ) {
+ var value = iframeNode.getAttribute( this.id );
+ if ( isCheckbox )
+ this.setValue( checkboxValues[ this.id ][ 'true' ] == value.toLowerCase() );
+ else
+ this.setValue( value );
+ }
+ }
+
+ function commitValue( iframeNode ) {
+ var isRemove = this.getValue() === '',
+ isCheckbox = this instanceof CKEDITOR.ui.dialog.checkbox,
+ value = this.getValue();
+ if ( isRemove )
+ iframeNode.removeAttribute( this.att || this.id );
+ else if ( isCheckbox )
+ iframeNode.setAttribute( this.id, checkboxValues[ this.id ][ value ] );
+ else
+ iframeNode.setAttribute( this.att || this.id, value );
+ }
+
+ CKEDITOR.dialog.add( 'iframe', function( editor ) {
+ var iframeLang = editor.lang.iframe,
+ commonLang = editor.lang.common,
+ dialogadvtab = editor.plugins.dialogadvtab;
+ return {
+ title: iframeLang.title,
+ minWidth: 350,
+ minHeight: 260,
+ onShow: function() {
+ // Clear previously saved elements.
+ this.fakeImage = this.iframeNode = null;
+
+ var fakeImage = this.getSelectedElement();
+ if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'iframe' ) {
+ this.fakeImage = fakeImage;
+
+ var iframeNode = editor.restoreRealElement( fakeImage );
+ this.iframeNode = iframeNode;
+
+ this.setupContent( iframeNode );
+ }
+ },
+ onOk: function() {
+ var iframeNode;
+ if ( !this.fakeImage )
+ iframeNode = new CKEDITOR.dom.element( 'iframe' );
+ else
+ iframeNode = this.iframeNode;
+
+ // A subset of the specified attributes/styles
+ // should also be applied on the fake element to
+ // have better visual effect. (#5240)
+ var extraStyles = {},
+ extraAttributes = {};
+ this.commitContent( iframeNode, extraStyles, extraAttributes );
+
+ // Refresh the fake image.
+ var newFakeImage = editor.createFakeElement( iframeNode, 'cke_iframe', 'iframe', true );
+ newFakeImage.setAttributes( extraAttributes );
+ newFakeImage.setStyles( extraStyles );
+ if ( this.fakeImage ) {
+ newFakeImage.replace( this.fakeImage );
+ editor.getSelection().selectElement( newFakeImage );
+ } else
+ editor.insertElement( newFakeImage );
+ },
+ contents: [
+ {
+ id: 'info',
+ label: commonLang.generalTab,
+ accessKey: 'I',
+ elements: [
+ {
+ type: 'vbox',
+ padding: 0,
+ children: [
+ {
+ id: 'src',
+ type: 'text',
+ label: commonLang.url,
+ required: true,
+ validate: CKEDITOR.dialog.validate.notEmpty( iframeLang.noUrl ),
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ children: [
+ {
+ id: 'width',
+ type: 'text',
+ style: 'width:100%',
+ labelLayout: 'vertical',
+ label: commonLang.width,
+ validate: CKEDITOR.dialog.validate.htmlLength( commonLang.invalidHtmlLength.replace( '%1', commonLang.width ) ),
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ id: 'height',
+ type: 'text',
+ style: 'width:100%',
+ labelLayout: 'vertical',
+ label: commonLang.height,
+ validate: CKEDITOR.dialog.validate.htmlLength( commonLang.invalidHtmlLength.replace( '%1', commonLang.height ) ),
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ id: 'align',
+ type: 'select',
+ 'default': '',
+ items: [
+ [ commonLang.notSet, '' ],
+ [ commonLang.alignLeft, 'left' ],
+ [ commonLang.alignRight, 'right' ],
+ [ commonLang.alignTop, 'top' ],
+ [ commonLang.alignMiddle, 'middle' ],
+ [ commonLang.alignBottom, 'bottom' ]
+ ],
+ style: 'width:100%',
+ labelLayout: 'vertical',
+ label: commonLang.align,
+ setup: function( iframeNode, fakeImage ) {
+ loadValue.apply( this, arguments );
+ if ( fakeImage ) {
+ var fakeImageAlign = fakeImage.getAttribute( 'align' );
+ this.setValue( fakeImageAlign && fakeImageAlign.toLowerCase() || '' );
+ }
+ },
+ commit: function( iframeNode, extraStyles, extraAttributes ) {
+ commitValue.apply( this, arguments );
+ if ( this.getValue() )
+ extraAttributes.align = this.getValue();
+ }
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ id: 'scrolling',
+ type: 'checkbox',
+ label: iframeLang.scrolling,
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ id: 'frameborder',
+ type: 'checkbox',
+ label: iframeLang.border,
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ id: 'name',
+ type: 'text',
+ label: commonLang.name,
+ setup: loadValue,
+ commit: commitValue
+ },
+ {
+ id: 'title',
+ type: 'text',
+ label: commonLang.advisoryTitle,
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ id: 'longdesc',
+ type: 'text',
+ label: commonLang.longDescr,
+ setup: loadValue,
+ commit: commitValue
+ }
+ ]
+ },
+ dialogadvtab && dialogadvtab.createAdvancedTab( editor, { id:1,classes:1,styles:1 } )
+ ]
+ };
+ });
+})();
diff --git a/devel/third-party/ckeditor/plugins/iframe/icons/iframe.png b/devel/third-party/ckeditor/plugins/iframe/icons/iframe.png
new file mode 100644
index 0000000..e357cf9
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/iframe/icons/iframe.png differ
diff --git a/devel/third-party/ckeditor/plugins/iframe/images/placeholder.png b/devel/third-party/ckeditor/plugins/iframe/images/placeholder.png
new file mode 100644
index 0000000..b40c7b2
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/iframe/images/placeholder.png differ
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/af.js b/devel/third-party/ckeditor/plugins/iframe/lang/af.js
new file mode 100644
index 0000000..7f055e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/af.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'af', {
+ border: 'Wys rand van raam',
+ noUrl: 'Gee die iframe URL',
+ scrolling: 'Skuifbalke aan',
+ title: 'IFrame Eienskappe',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ar.js b/devel/third-party/ckeditor/plugins/iframe/lang/ar.js
new file mode 100644
index 0000000..8048c59
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ar.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ar', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/bg.js b/devel/third-party/ckeditor/plugins/iframe/lang/bg.js
new file mode 100644
index 0000000..c483f3a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/bg.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'bg', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame наÑÑÑойки',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/bn.js b/devel/third-party/ckeditor/plugins/iframe/lang/bn.js
new file mode 100644
index 0000000..8b9b3fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/bn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'bn', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/bs.js b/devel/third-party/ckeditor/plugins/iframe/lang/bs.js
new file mode 100644
index 0000000..112db70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/bs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'bs', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ca.js b/devel/third-party/ckeditor/plugins/iframe/lang/ca.js
new file mode 100644
index 0000000..04fdbf2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ca', {
+ border: 'Mostra la vora del marc',
+ noUrl: 'Si us plau, introduïu la URL de l\'iframe URL',
+ scrolling: 'Activa les barrres de desplaçament',
+ title: 'Propietats IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/cs.js b/devel/third-party/ckeditor/plugins/iframe/lang/cs.js
new file mode 100644
index 0000000..09cc61f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/cs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'cs', {
+ border: 'Zobrazit okraj',
+ noUrl: 'Zadejte prosÃm URL obsahu pro IFrame',
+ scrolling: 'Zapnout posuvnÃky',
+ title: 'Vlastnosti IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/cy.js b/devel/third-party/ckeditor/plugins/iframe/lang/cy.js
new file mode 100644
index 0000000..0bad29a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/cy.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'cy', {
+ border: 'Dangos ymyl y ffrâm',
+ noUrl: 'Rhowch fath URL yr iframe',
+ scrolling: 'Galluogi bariau sgrolio',
+ title: 'Priodweddau IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/da.js b/devel/third-party/ckeditor/plugins/iframe/lang/da.js
new file mode 100644
index 0000000..ddb4580
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/da.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'da', {
+ border: 'Vis kant på rammen',
+ noUrl: 'Venligst indsæt URL på iframen',
+ scrolling: 'Aktiver scrollbars',
+ title: 'Iframe egenskaber',
+ toolbar: 'Iframe'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/de.js b/devel/third-party/ckeditor/plugins/iframe/lang/de.js
new file mode 100644
index 0000000..35976f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/de.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'de', {
+ border: 'Rahmen anzeigen',
+ noUrl: 'Bitte geben Sie die IFrame-URL an',
+ scrolling: 'Rollbalken anzeigen',
+ title: 'IFrame-Eigenschaften',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/el.js b/devel/third-party/ckeditor/plugins/iframe/lang/el.js
new file mode 100644
index 0000000..2a91a24
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/el.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'el', {
+ border: 'Î Ïοβολή ÏεÏιγÏάμμαÏÎ¿Ï ÏλαιÏίοÏ
',
+ noUrl: 'ΠαÏακαλοÏμε ειÏάγεÏαι Ïο URL ÏοÏ
iframe',
+ scrolling: 'ÎνεÏγοÏοίηÏη μÏαÏÏν κÏλιÏηÏ',
+ title: 'IFrame Properties',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/en-au.js b/devel/third-party/ckeditor/plugins/iframe/lang/en-au.js
new file mode 100644
index 0000000..b7b301f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/en-au.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'en-au', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/en-ca.js b/devel/third-party/ckeditor/plugins/iframe/lang/en-ca.js
new file mode 100644
index 0000000..3773163
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/en-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'en-ca', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/en-gb.js b/devel/third-party/ckeditor/plugins/iframe/lang/en-gb.js
new file mode 100644
index 0000000..40501c4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/en-gb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'en-gb', {
+ border: 'Show frame border',
+ noUrl: 'Please type the iframe URL',
+ scrolling: 'Enable scrollbars',
+ title: 'IFrame Properties',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/en.js b/devel/third-party/ckeditor/plugins/iframe/lang/en.js
new file mode 100644
index 0000000..8e06861
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/en.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'en', {
+ border: 'Show frame border',
+ noUrl: 'Please type the iframe URL',
+ scrolling: 'Enable scrollbars',
+ title: 'IFrame Properties',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/eo.js b/devel/third-party/ckeditor/plugins/iframe/lang/eo.js
new file mode 100644
index 0000000..6682a1c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/eo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'eo', {
+ border: 'Montri borderon de kadro (frame)',
+ noUrl: 'Bonvolu entajpi la retadreson de la ligilo al la enlinia kadro (IFrame)',
+ scrolling: 'Ebligi rulumskalon',
+ title: 'Atributoj de la enlinia kadro (IFrame)',
+ toolbar: 'Enlinia kadro (IFrame)'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/es.js b/devel/third-party/ckeditor/plugins/iframe/lang/es.js
new file mode 100644
index 0000000..67e12e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/es.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'es', {
+ border: 'Mostrar borde del marco',
+ noUrl: 'Por favor, escriba la dirección del iframe',
+ scrolling: 'Activar barras de desplazamiento',
+ title: 'Propiedades de iframe',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/et.js b/devel/third-party/ckeditor/plugins/iframe/lang/et.js
new file mode 100644
index 0000000..3104150
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/et.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'et', {
+ border: 'Raami äärise näitamine',
+ noUrl: 'Vali iframe URLi liik',
+ scrolling: 'Kerimisribade lubamine',
+ title: 'IFrame omadused',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/eu.js b/devel/third-party/ckeditor/plugins/iframe/lang/eu.js
new file mode 100644
index 0000000..6cf9e67
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/eu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'eu', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/fa.js b/devel/third-party/ckeditor/plugins/iframe/lang/fa.js
new file mode 100644
index 0000000..0281834
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/fa.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'fa', {
+ border: 'ÙÙ
Ø§ÛØ´ Ø®Ø·ÙØ· frame',
+ noUrl: 'ÙØ·Ùا Ù
Ø³ÛØ± URL iframe را درج Ú©ÙÛØ¯',
+ scrolling: 'ÙÙ
Ø§ÛØ´ Ø®Ø·Ú©Ø´ÙØ§',
+ title: 'ÙÛÚÚ¯ÛÙØ§Û IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/fi.js b/devel/third-party/ckeditor/plugins/iframe/lang/fi.js
new file mode 100644
index 0000000..3add4f2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/fi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'fi', {
+ border: 'Näytä kehyksen reunat',
+ noUrl: 'Anna IFrame-kehykselle lähdeosoite (src)',
+ scrolling: 'Näytä vierityspalkit',
+ title: 'IFrame-kehyksen ominaisuudet',
+ toolbar: 'IFrame-kehys'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/fo.js b/devel/third-party/ckeditor/plugins/iframe/lang/fo.js
new file mode 100644
index 0000000..d4fe7de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/fo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'fo', {
+ border: 'VÃs frame kant',
+ noUrl: 'Vinarliga skriva URL til iframe',
+ scrolling: 'Loyv scrollbars',
+ title: 'Møguleikar fyri IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/iframe/lang/fr-ca.js
new file mode 100644
index 0000000..0612051
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/fr-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'fr-ca', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/fr.js b/devel/third-party/ckeditor/plugins/iframe/lang/fr.js
new file mode 100644
index 0000000..18de920
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/fr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'fr', {
+ border: 'Afficher une bordure de la IFrame',
+ noUrl: 'Veuillez entrer l\'adresse du lien de la IFrame',
+ scrolling: 'Permettre à la barre de défilement',
+ title: 'Propriétés de la IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/gl.js b/devel/third-party/ckeditor/plugins/iframe/lang/gl.js
new file mode 100644
index 0000000..bbcffee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/gl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'gl', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/gu.js b/devel/third-party/ckeditor/plugins/iframe/lang/gu.js
new file mode 100644
index 0000000..dfc6880
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/gu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'gu', {
+ border: 'ફà«àª°à«àª® બà«àª°à«àª¡à«àª° બતાવવà«',
+ noUrl: 'iframe URL àªàª¾àªàªªà« àªàª°à«',
+ scrolling: 'સà«àªà«àª°à«àª²àª¬àª¾àª° àªàª¾àª²à« àªàª°àªµàª¾',
+ title: 'IFrame વિàªàª²à«àªªà«',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/he.js b/devel/third-party/ckeditor/plugins/iframe/lang/he.js
new file mode 100644
index 0000000..def1d29
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/he.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'he', {
+ border: '×ר×× ×ס×רת ×××××',
+ noUrl: '×ש ×××× ×ס ×ת××ת ×××××.',
+ scrolling: '×פשר ×¤×¡× ×××××',
+ title: '××פ××× × ×××× ×¤× ××× (iframe)',
+ toolbar: '×××× ×¤× ××× (iframe)'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/hi.js b/devel/third-party/ckeditor/plugins/iframe/lang/hi.js
new file mode 100644
index 0000000..4e4e8be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/hi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'hi', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/hr.js b/devel/third-party/ckeditor/plugins/iframe/lang/hr.js
new file mode 100644
index 0000000..ea460c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/hr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'hr', {
+ border: 'Prikaži okvir IFrame-a',
+ noUrl: 'Unesite URL iframe-a',
+ scrolling: 'OmoguÄi trake za skrolanje',
+ title: 'IFrame svojstva',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/hu.js b/devel/third-party/ckeditor/plugins/iframe/lang/hu.js
new file mode 100644
index 0000000..c87d6d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/hu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'hu', {
+ border: 'Legyen keret',
+ noUrl: 'Kérem Ãrja be a iframe URL-t',
+ scrolling: 'GördÃtÅsáv bekapcsolása',
+ title: 'IFrame Tulajdonságok',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/is.js b/devel/third-party/ckeditor/plugins/iframe/lang/is.js
new file mode 100644
index 0000000..755c913
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/is.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'is', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/it.js b/devel/third-party/ckeditor/plugins/iframe/lang/it.js
new file mode 100644
index 0000000..ecd2395
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/it.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'it', {
+ border: 'Mostra il bordo',
+ noUrl: 'Inserire l\'URL del campo IFrame',
+ scrolling: 'Abilita scrollbar',
+ title: 'Proprietà IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ja.js b/devel/third-party/ckeditor/plugins/iframe/lang/ja.js
new file mode 100644
index 0000000..f2ac066
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ja.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ja', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ka.js b/devel/third-party/ckeditor/plugins/iframe/lang/ka.js
new file mode 100644
index 0000000..32d6e4b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ka.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ka', {
+ border: 'á©áá á©áá¡ ááááá©ááá',
+ noUrl: 'ááá áá¤áá iframe-áá¡ URL',
+ scrolling: 'ááááá®ááááá¡ ááááááá¡ ááá¨áááá',
+ title: 'IFrame-áá¡ ááá áááá¢á ááá',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/km.js b/devel/third-party/ckeditor/plugins/iframe/lang/km.js
new file mode 100644
index 0000000..576f2f3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/km.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'km', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ko.js b/devel/third-party/ckeditor/plugins/iframe/lang/ko.js
new file mode 100644
index 0000000..46d9bdf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ko.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ko', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ku.js b/devel/third-party/ckeditor/plugins/iframe/lang/ku.js
new file mode 100644
index 0000000..0dc48b7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ku.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ku', {
+ border: 'ÙÛØ´Ø§ÙداÙÛ ÙØ§Ú©Ûش٠بÙÚÙÙØ§Ø±Ø¯ÙÙØ±Û ÚÙÙØ§Ø±ÚÛÙÙ',
+ noUrl: 'تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر بÙÙÙØ³Ù Ø¨Û ÚÙÙØ§Ø±ÚÛÙÙ',
+ scrolling: 'ÚØ§ÙاککردÙÛ ÙØ§ØªÙÙÚÛÙ¾ÛکردÙ',
+ title: 'Ø¯ÛØ§ÙÛÚ¯Û ÚÙÙØ§Ø±ÚÛÙÙ',
+ toolbar: 'ÚÙÙØ§Ø±ÚÛÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/lt.js b/devel/third-party/ckeditor/plugins/iframe/lang/lt.js
new file mode 100644
index 0000000..c30ccd5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/lt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'lt', {
+ border: 'Rodyti rÄmelį',
+ noUrl: 'Nurodykite iframe nuorodÄ
',
+ scrolling: 'Įjungti slankiklius',
+ title: 'IFrame nustatymai',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/lv.js b/devel/third-party/ckeditor/plugins/iframe/lang/lv.js
new file mode 100644
index 0000000..0108dca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/lv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'lv', {
+ border: 'RÄdÄ«t rÄmi',
+ noUrl: 'NorÄdiet iframe adresi',
+ scrolling: 'Atļaut ritjoslas',
+ title: 'IFrame uzstÄdÄ«jumi',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/mk.js b/devel/third-party/ckeditor/plugins/iframe/lang/mk.js
new file mode 100644
index 0000000..65b2e9b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/mk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'mk', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/mn.js b/devel/third-party/ckeditor/plugins/iframe/lang/mn.js
new file mode 100644
index 0000000..b54b4a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/mn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'mn', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ms.js b/devel/third-party/ckeditor/plugins/iframe/lang/ms.js
new file mode 100644
index 0000000..a340bd0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ms.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ms', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/nb.js b/devel/third-party/ckeditor/plugins/iframe/lang/nb.js
new file mode 100644
index 0000000..7fc04f5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/nb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'nb', {
+ border: 'Viss ramme rundt iframe',
+ noUrl: 'Vennligst skriv inn URL for iframe',
+ scrolling: 'Aktiver scrollefelt',
+ title: 'Egenskaper for IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/nl.js b/devel/third-party/ckeditor/plugins/iframe/lang/nl.js
new file mode 100644
index 0000000..43ef656
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/nl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'nl', {
+ border: 'Framerand tonen',
+ noUrl: 'Geef de IFrame URL in',
+ scrolling: 'Scrollbalken inschakelen',
+ title: 'IFrame eigenschappen',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/no.js b/devel/third-party/ckeditor/plugins/iframe/lang/no.js
new file mode 100644
index 0000000..1164d5f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/no.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'no', {
+ border: 'Viss ramme rundt iframe',
+ noUrl: 'Vennligst skriv inn URL for iframe',
+ scrolling: 'Aktiver scrollefelt',
+ title: 'Egenskaper for IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/pl.js b/devel/third-party/ckeditor/plugins/iframe/lang/pl.js
new file mode 100644
index 0000000..986aaba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/pl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'pl', {
+ border: 'Pokaż obramowanie obiektu IFrame',
+ noUrl: 'Podaj adres URL elementu IFrame',
+ scrolling: 'WÅÄ
cz paski przewijania',
+ title: 'WÅaÅciwoÅci elementu IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/pt-br.js b/devel/third-party/ckeditor/plugins/iframe/lang/pt-br.js
new file mode 100644
index 0000000..3444f71
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/pt-br.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'pt-br', {
+ border: 'Mostra borda do iframe',
+ noUrl: 'Insira a URL do iframe',
+ scrolling: 'Abilita scrollbars',
+ title: 'Propriedade do IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/pt.js b/devel/third-party/ckeditor/plugins/iframe/lang/pt.js
new file mode 100644
index 0000000..026de13
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/pt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'pt', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ro.js b/devel/third-party/ckeditor/plugins/iframe/lang/ro.js
new file mode 100644
index 0000000..b6605ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ro.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ro', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ru.js b/devel/third-party/ckeditor/plugins/iframe/lang/ru.js
new file mode 100644
index 0000000..02d429f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ru.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ru', {
+ border: 'ÐоказаÑÑ Ð³ÑаниÑÑ ÑÑейма',
+ noUrl: 'ÐожалÑйÑÑа, введиÑе ÑÑÑÐ»ÐºÑ ÑÑейма',
+ scrolling: 'ÐÑобÑажаÑÑ Ð¿Ð¾Ð»Ð¾ÑÑ Ð¿ÑокÑÑÑки',
+ title: 'СвойÑÑва iFrame',
+ toolbar: 'iFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/sk.js b/devel/third-party/ckeditor/plugins/iframe/lang/sk.js
new file mode 100644
index 0000000..5c5b6cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/sk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'sk', {
+ border: 'Zobraziť rám frame-u',
+ noUrl: 'ProsÃm, vložte URL iframe',
+ scrolling: 'Povoliť skrolovanie',
+ title: 'Vlastnosti IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/sl.js b/devel/third-party/ckeditor/plugins/iframe/lang/sl.js
new file mode 100644
index 0000000..4c713c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/sl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'sl', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/iframe/lang/sr-latn.js
new file mode 100644
index 0000000..25b08cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/sr-latn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'sr-latn', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/sr.js b/devel/third-party/ckeditor/plugins/iframe/lang/sr.js
new file mode 100644
index 0000000..9fd61ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/sr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'sr', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/sv.js b/devel/third-party/ckeditor/plugins/iframe/lang/sv.js
new file mode 100644
index 0000000..02fbecf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/sv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'sv', {
+ border: 'Visa ramkant',
+ noUrl: 'Skriv in URL för iFrame',
+ scrolling: 'Aktivera rullningslister',
+ title: 'iFrame Egenskaper',
+ toolbar: 'iFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/th.js b/devel/third-party/ckeditor/plugins/iframe/lang/th.js
new file mode 100644
index 0000000..a9ef9d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/th.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'th', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/tr.js b/devel/third-party/ckeditor/plugins/iframe/lang/tr.js
new file mode 100644
index 0000000..16a8ccf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/tr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'tr', {
+ border: 'Ãerceve sınırlarını göster',
+ noUrl: 'Lütfen IFrame köprü (URL) baÄlantısını yazın',
+ scrolling: 'Kaydırma çubuklarını aktif et',
+ title: 'IFrame Ãzellikleri',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/ug.js b/devel/third-party/ckeditor/plugins/iframe/lang/ug.js
new file mode 100644
index 0000000..d792d66
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/ug.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'ug', {
+ border: 'ÙØ§ÙدÛÙ Ú¯ÙØ±ÛÛÙÙÙØ±ÙÙÙ ÙÛØ±Ø³Ûت',
+ noUrl: 'ÙØ§ÙدÛÙÙÙÚ Ø¦Ø§Ø¯Ø±ÛØ³Ù(Url)ÙÙ ÙÙØ±Ú¯ÛزÛÚ',
+ scrolling: 'دÙÙ
ÙÙÙÙ
ا Ø³ÛØ±Ú¯ÛÚÙÛ ÙÙÙ ÙÙÙ',
+ title: 'IFrame خاسÙÙÙ',
+ toolbar: 'IFrame '
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/uk.js b/devel/third-party/ckeditor/plugins/iframe/lang/uk.js
new file mode 100644
index 0000000..9e27fb1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/uk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'uk', {
+ border: 'ÐоказаÑи Ñамки ÑÑеймÑ',
+ noUrl: 'ÐÑÐ´Ñ Ð»Ð°Ñка введÑÑÑ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ IFrame',
+ scrolling: 'УвÑмкнÑÑи пÑокÑÑÑкÑ',
+ title: 'ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ IFrame',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/vi.js b/devel/third-party/ckeditor/plugins/iframe/lang/vi.js
new file mode 100644
index 0000000..31480de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/vi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'vi', {
+ border: 'Hiá»n thá» viá»n khung',
+ noUrl: 'Vui lòng nháºp Äá»a chá» iframe',
+ scrolling: 'KÃch hoạt thanh cuá»n',
+ title: 'Thuá»c tÃnh iframe',
+ toolbar: 'Iframe'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/iframe/lang/zh-cn.js
new file mode 100644
index 0000000..4cc048b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/zh-cn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'zh-cn', {
+ border: 'æ¾ç¤ºæ¡æ¶è¾¹æ¡',
+ noUrl: '请è¾å
¥æ¡æ¶ç URL',
+ scrolling: 'å
许æ»å¨æ¡',
+ title: 'IFrame 屿§',
+ toolbar: 'IFrame'
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/lang/zh.js b/devel/third-party/ckeditor/plugins/iframe/lang/zh.js
new file mode 100644
index 0000000..7790edb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/lang/zh.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'iframe', 'zh', {
+ border: 'Show frame border', // MISSING
+ noUrl: 'Please type the iframe URL', // MISSING
+ scrolling: 'Enable scrollbars', // MISSING
+ title: 'IFrame Properties', // MISSING
+ toolbar: 'IFrame' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/iframe/plugin.js b/devel/third-party/ckeditor/plugins/iframe/plugin.js
new file mode 100644
index 0000000..26ff95b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/iframe/plugin.js
@@ -0,0 +1,75 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ CKEDITOR.plugins.add( 'iframe', {
+ requires: 'dialog,fakeobjects',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'iframe', // %REMOVE_LINE_CORE%
+ onLoad: function() {
+ CKEDITOR.addCss( 'img.cke_iframe' +
+ '{' +
+ 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +
+ 'background-position: center center;' +
+ 'background-repeat: no-repeat;' +
+ 'border: 1px solid #a9a9a9;' +
+ 'width: 80px;' +
+ 'height: 80px;' +
+ '}'
+ );
+ },
+ init: function( editor ) {
+ var pluginName = 'iframe',
+ lang = editor.lang.iframe;
+
+ CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/iframe.js' );
+ editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
+
+ editor.ui.addButton && editor.ui.addButton( 'Iframe', {
+ label: lang.toolbar,
+ command: pluginName,
+ toolbar: 'insert,80'
+ });
+
+ editor.on( 'doubleclick', function( evt ) {
+ var element = evt.data.element;
+ if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )
+ evt.data.dialog = 'iframe';
+ });
+
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ iframe: {
+ label: lang.title,
+ command: 'iframe',
+ group: 'image'
+ }
+ });
+ }
+
+ // If the "contextmenu" plugin is loaded, register the listeners.
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element, selection ) {
+ if ( element && element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )
+ return { iframe: CKEDITOR.TRISTATE_OFF };
+ });
+ }
+ },
+ afterInit: function( editor ) {
+ var dataProcessor = editor.dataProcessor,
+ dataFilter = dataProcessor && dataProcessor.dataFilter;
+
+ if ( dataFilter ) {
+ dataFilter.addRules({
+ elements: {
+ iframe: function( element ) {
+ return editor.createFakeParserElement( element, 'cke_iframe', 'iframe', true );
+ }
+ }
+ });
+ }
+ }
+ });
+})();
diff --git a/devel/third-party/ckeditor/plugins/iframedialog/plugin.js b/devel/third-party/ckeditor/plugins/iframedialog/plugin.js
deleted file mode 100644
index dcde6fe..0000000
--- a/devel/third-party/ckeditor/plugins/iframedialog/plugin.js
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview Plugin for making iframe based dialogs.
- */
-
-CKEDITOR.plugins.add( 'iframedialog',
-{
- requires : [ 'dialog' ],
- onLoad : function()
- {
- CKEDITOR.dialog.addIframe = function( name, title, src, width, height, onContentLoad )
- {
- var element =
- {
- type : 'iframe',
- src : src,
- width : '100%',
- height : '100%'
- };
-
- if ( typeof( onContentLoad ) == 'function' )
- element.onContentLoad = onContentLoad;
-
- var definition =
- {
- title : title,
- minWidth : width,
- minHeight : height,
- contents :
- [
- {
- id : 'iframe',
- label : title,
- expand : true,
- elements : [ element ]
- }
- ]
- };
-
- return this.add( name, function(){ return definition; } );
- };
-
- (function()
- {
- /**
- * An iframe element.
- * @extends CKEDITOR.ui.dialog.uiElement
- * @example
- * @constructor
- * @param {CKEDITOR.dialog} dialog
- * Parent dialog object.
- * @param {CKEDITOR.dialog.uiElementDefinition} elementDefinition
- * The element definition. Accepted fields:
- * <ul>
- * <li><strong>src</strong> (Required) The src field of the iframe. </li>
- * <li><strong>width</strong> (Required) The iframe's width.</li>
- * <li><strong>height</strong> (Required) The iframe's height.</li>
- * <li><strong>onContentLoad</strong> (Optional) A function to be executed
- * after the iframe's contents has finished loading.</li>
- * </ul>
- * @param {Array} htmlList
- * List of HTML code to output to.
- */
- var iframeElement = function( dialog, elementDefinition, htmlList )
- {
- if ( arguments.length < 3 )
- return;
-
- var _ = ( this._ || ( this._ = {} ) ),
- contentLoad = elementDefinition.onContentLoad && CKEDITOR.tools.bind( elementDefinition.onContentLoad, this ),
- cssWidth = CKEDITOR.tools.cssLength( elementDefinition.width ),
- cssHeight = CKEDITOR.tools.cssLength( elementDefinition.height );
- _.frameId = CKEDITOR.tools.getNextNumber() + '_iframe';
-
- // IE BUG: Parent container does not resize to contain the iframe automatically.
- dialog.on( 'load', function()
- {
- var iframe = CKEDITOR.document.getById( _.frameId ),
- parentContainer = iframe.getParent();
-
- parentContainer.setStyles(
- {
- width : cssWidth,
- height : cssHeight
- } );
- } );
-
- var attributes =
- {
- src : '%2',
- id : _.frameId,
- frameborder : 0,
- allowtransparency : true
- };
- var myHtml = [];
-
- if ( typeof( elementDefinition.onContentLoad ) == 'function' )
- attributes.onload = 'CKEDITOR.tools.callFunction(%1);';
-
- CKEDITOR.ui.dialog.uiElement.call( this, dialog, elementDefinition, myHtml, 'iframe',
- {
- width : cssWidth,
- height : cssHeight
- }, attributes, '' );
-
- // Put a placeholder for the first time.
- htmlList.push( '<div style="width:' + cssWidth + ';height:' + cssHeight + ';" id="' + this.domId + '"></div>' );
-
- // Iframe elements should be refreshed whenever it is shown.
- myHtml = myHtml.join( '' );
- dialog.on( 'show', function()
- {
- var iframe = CKEDITOR.document.getById( _.frameId ),
- parentContainer = iframe.getParent(),
- callIndex = CKEDITOR.tools.addFunction( contentLoad ),
- html = myHtml.replace( '%1', callIndex ).replace( '%2', CKEDITOR.tools.htmlEncode( elementDefinition.src ) );
- parentContainer.setHtml( html );
- } );
- };
-
- iframeElement.prototype = new CKEDITOR.ui.dialog.uiElement;
-
- CKEDITOR.dialog.addUIElement( 'iframe',
- {
- build : function( dialog, elementDefinition, output )
- {
- return new iframeElement( dialog, elementDefinition, output );
- }
- } );
- })();
- }
-} );
diff --git a/devel/third-party/ckeditor/plugins/image/dialogs/image.js b/devel/third-party/ckeditor/plugins/image/dialogs/image.js
index 72a4c45..08789f4 100644
--- a/devel/third-party/ckeditor/plugins/image/dialogs/image.js
+++ b/devel/third-party/ckeditor/plugins/image/dialogs/image.js
@@ -1,1396 +1,1195 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var imageDialog = function( editor, dialogType )
- {
- // Load image preview.
- var IMAGE = 1,
- LINK = 2,
- PREVIEW = 4,
- CLEANUP = 8,
- regexGetSize = /^\s*(\d+)((px)|\%)?\s*$/i,
- regexGetSizeOrEmpty = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i,
- pxLengthRegex = /^\d+px$/;
-
- var onSizeChange = function()
- {
- var value = this.getValue(), // This = input element.
- dialog = this.getDialog(),
- aMatch = value.match( regexGetSize ); // Check value
- if ( aMatch )
- {
- if ( aMatch[2] == '%' ) // % is allowed - > unlock ratio.
- switchLockRatio( dialog, false ); // Unlock.
- value = aMatch[1];
- }
-
- // Only if ratio is locked
- if ( dialog.lockRatio )
- {
- var oImageOriginal = dialog.originalElement;
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
- {
- if ( this.id == 'txtHeight' )
- {
- if ( value && value != '0' )
- value = Math.round( oImageOriginal.$.width * ( value / oImageOriginal.$.height ) );
- if ( !isNaN( value ) )
- dialog.setValueOf( 'info', 'txtWidth', value );
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var imageDialog = function( editor, dialogType ) {
+ // Load image preview.
+ var IMAGE = 1,
+ LINK = 2,
+ PREVIEW = 4,
+ CLEANUP = 8,
+ regexGetSize = /^\s*(\d+)((px)|\%)?\s*$/i,
+ regexGetSizeOrEmpty = /(^\s*(\d+)((px)|\%)?\s*$)|^$/i,
+ pxLengthRegex = /^\d+px$/;
+
+ var onSizeChange = function() {
+ var value = this.getValue(),
+ // This = input element.
+ dialog = this.getDialog(),
+ aMatch = value.match( regexGetSize ); // Check value
+ if ( aMatch ) {
+ if ( aMatch[ 2 ] == '%' ) // % is allowed - > unlock ratio.
+ switchLockRatio( dialog, false ); // Unlock.
+ value = aMatch[ 1 ];
}
- else //this.id = txtWidth.
- {
- if ( value && value != '0' )
- value = Math.round( oImageOriginal.$.height * ( value / oImageOriginal.$.width ) );
- if ( !isNaN( value ) )
- dialog.setValueOf( 'info', 'txtHeight', value );
+
+ // Only if ratio is locked
+ if ( dialog.lockRatio ) {
+ var oImageOriginal = dialog.originalElement;
+ if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' ) {
+ if ( this.id == 'txtHeight' ) {
+ if ( value && value != '0' )
+ value = Math.round( oImageOriginal.$.width * ( value / oImageOriginal.$.height ) );
+ if ( !isNaN( value ) )
+ dialog.setValueOf( 'info', 'txtWidth', value );
+ } else //this.id = txtWidth.
+ {
+ if ( value && value != '0' )
+ value = Math.round( oImageOriginal.$.height * ( value / oImageOriginal.$.width ) );
+ if ( !isNaN( value ) )
+ dialog.setValueOf( 'info', 'txtHeight', value );
+ }
+ }
}
- }
+ updatePreview( dialog );
+ };
+
+ var updatePreview = function( dialog ) {
+ //Don't load before onShow.
+ if ( !dialog.originalElement || !dialog.preview )
+ return 1;
+
+ // Read attributes and update imagePreview;
+ dialog.commitContent( PREVIEW, dialog.preview );
+ return 0;
+ };
+
+ // Custom commit dialog logic, where we're intended to give inline style
+ // field (txtdlgGenStyle) higher priority to avoid overwriting styles contribute
+ // by other fields.
+ function commitContent() {
+ var args = arguments;
+ var inlineStyleField = this.getContentElement( 'advanced', 'txtdlgGenStyle' );
+ inlineStyleField && inlineStyleField.commit.apply( inlineStyleField, args );
+
+ this.foreach( function( widget ) {
+ if ( widget.commit && widget.id != 'txtdlgGenStyle' )
+ widget.commit.apply( widget, args );
+ });
}
- updatePreview( dialog );
- };
- var updatePreview = function( dialog )
- {
- //Don't load before onShow.
- if ( !dialog.originalElement || !dialog.preview )
- return 1;
-
- // Read attributes and update imagePreview;
- dialog.commitContent( PREVIEW, dialog.preview );
- return 0;
- };
-
- // Custom commit dialog logic, where we're intended to give inline style
- // field (txtdlgGenStyle) higher priority to avoid overwriting styles contribute
- // by other fields.
- function commitContent()
- {
- var args = arguments;
- var inlineStyleField = this.getContentElement( 'advanced', 'txtdlgGenStyle' );
- inlineStyleField && inlineStyleField.commit.apply( inlineStyleField, args );
-
- this.foreach( function( widget )
- {
- if ( widget.commit && widget.id != 'txtdlgGenStyle' )
- widget.commit.apply( widget, args );
- });
- }
-
- // Avoid recursions.
- var incommit;
-
- // Synchronous field values to other impacted fields is required, e.g. border
- // size change should alter inline-style text as well.
- function commitInternally( targetFields )
- {
- if ( incommit )
- return;
-
- incommit = 1;
-
- var dialog = this.getDialog(),
- element = dialog.imageElement;
- if ( element )
- {
- // Commit this field and broadcast to target fields.
- this.commit( IMAGE, element );
-
- targetFields = [].concat( targetFields );
- var length = targetFields.length,
- field;
- for ( var i = 0; i < length; i++ )
- {
- field = dialog.getContentElement.apply( dialog, targetFields[ i ].split( ':' ) );
- // May cause recursion.
- field && field.setup( IMAGE, element );
+ // Avoid recursions.
+ var incommit;
+
+ // Synchronous field values to other impacted fields is required, e.g. border
+ // size change should alter inline-style text as well.
+ function commitInternally( targetFields ) {
+ if ( incommit )
+ return;
+
+ incommit = 1;
+
+ var dialog = this.getDialog(),
+ element = dialog.imageElement;
+ if ( element ) {
+ // Commit this field and broadcast to target fields.
+ this.commit( IMAGE, element );
+
+ targetFields = [].concat( targetFields );
+ var length = targetFields.length,
+ field;
+ for ( var i = 0; i < length; i++ ) {
+ field = dialog.getContentElement.apply( dialog, targetFields[ i ].split( ':' ) );
+ // May cause recursion.
+ field && field.setup( IMAGE, element );
+ }
}
- }
- incommit = 0;
- }
-
- var switchLockRatio = function( dialog, value )
- {
- var oImageOriginal = dialog.originalElement;
+ incommit = 0;
+ }
- // Dialog may already closed. (#5505)
- if( !oImageOriginal )
- return null;
+ var switchLockRatio = function( dialog, value ) {
+ if ( !dialog.getContentElement( 'info', 'ratioLock' ) )
+ return null;
+
+ var oImageOriginal = dialog.originalElement;
+
+ // Dialog may already closed. (#5505)
+ if ( !oImageOriginal )
+ return null;
+
+ // Check image ratio and original image ratio, but respecting user's preference.
+ if ( value == 'check' ) {
+ if ( !dialog.userlockRatio && oImageOriginal.getCustomData( 'isReady' ) == 'true' ) {
+ var width = dialog.getValueOf( 'info', 'txtWidth' ),
+ height = dialog.getValueOf( 'info', 'txtHeight' ),
+ originalRatio = oImageOriginal.$.width * 1000 / oImageOriginal.$.height,
+ thisRatio = width * 1000 / height;
+ dialog.lockRatio = false; // Default: unlock ratio
+
+ if ( !width && !height )
+ dialog.lockRatio = true;
+ else if ( !isNaN( originalRatio ) && !isNaN( thisRatio ) ) {
+ if ( Math.round( originalRatio ) == Math.round( thisRatio ) )
+ dialog.lockRatio = true;
+ }
+ }
+ } else if ( value != undefined )
+ dialog.lockRatio = value;
+ else {
+ dialog.userlockRatio = 1;
+ dialog.lockRatio = !dialog.lockRatio;
+ }
- var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
+ var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
+ if ( dialog.lockRatio )
+ ratioButton.removeClass( 'cke_btn_unlocked' );
+ else
+ ratioButton.addClass( 'cke_btn_unlocked' );
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
- {
- if ( value == 'check' ) // Check image ratio and original image ratio.
- {
- var width = dialog.getValueOf( 'info', 'txtWidth' ),
- height = dialog.getValueOf( 'info', 'txtHeight' ),
- originalRatio = oImageOriginal.$.width * 1000 / oImageOriginal.$.height,
- thisRatio = width * 1000 / height;
- dialog.lockRatio = false; // Default: unlock ratio
+ ratioButton.setAttribute( 'aria-checked', dialog.lockRatio );
- if ( !width && !height )
- dialog.lockRatio = true;
- else if ( !isNaN( originalRatio ) && !isNaN( thisRatio ) )
- {
- if ( Math.round( originalRatio ) == Math.round( thisRatio ) )
- dialog.lockRatio = true;
+ // Ratio button hc presentation - WHITE SQUARE / BLACK SQUARE
+ if ( CKEDITOR.env.hc ) {
+ var icon = ratioButton.getChild( 0 );
+ icon.setHtml( dialog.lockRatio ? CKEDITOR.env.ie ? '\u25A0' : '\u25A3' : CKEDITOR.env.ie ? '\u25A1' : '\u25A2' );
}
- }
- else if ( value != undefined )
- dialog.lockRatio = value;
- else
- dialog.lockRatio = !dialog.lockRatio;
- }
- else if ( value != 'check' ) // I can't lock ratio if ratio is unknown.
- dialog.lockRatio = false;
-
- if ( dialog.lockRatio )
- ratioButton.removeClass( 'cke_btn_unlocked' );
- else
- ratioButton.addClass( 'cke_btn_unlocked' );
- var lang = dialog._.editor.lang.image,
- label = lang[ dialog.lockRatio ? 'unlockRatio' : 'lockRatio' ];
+ return dialog.lockRatio;
+ };
- ratioButton.setAttribute( 'title', label );
- ratioButton.getFirst().setText( label );
-
- return dialog.lockRatio;
- };
+ var resetSize = function( dialog ) {
+ var oImageOriginal = dialog.originalElement;
+ if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' ) {
+ var widthField = dialog.getContentElement( 'info', 'txtWidth' ),
+ heightField = dialog.getContentElement( 'info', 'txtHeight' );
+ widthField && widthField.setValue( oImageOriginal.$.width );
+ heightField && heightField.setValue( oImageOriginal.$.height );
+ }
+ updatePreview( dialog );
+ };
- var resetSize = function( dialog )
- {
- var oImageOriginal = dialog.originalElement;
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
- {
- dialog.setValueOf( 'info', 'txtWidth', oImageOriginal.$.width );
- dialog.setValueOf( 'info', 'txtHeight', oImageOriginal.$.height );
- }
- updatePreview( dialog );
- };
+ var setupDimension = function( type, element ) {
+ if ( type != IMAGE )
+ return;
- var setupDimension = function( type, element )
- {
- if ( type != IMAGE )
- return;
-
- function checkDimension( size, defaultValue )
- {
- var aMatch = size.match( regexGetSize );
- if ( aMatch )
- {
- if ( aMatch[2] == '%' ) // % is allowed.
- {
- aMatch[1] += '%';
- switchLockRatio( dialog, false ); // Unlock ratio
+ function checkDimension( size, defaultValue ) {
+ var aMatch = size.match( regexGetSize );
+ if ( aMatch ) {
+ if ( aMatch[ 2 ] == '%' ) // % is allowed.
+ {
+ aMatch[ 1 ] += '%';
+ switchLockRatio( dialog, false ); // Unlock ratio
+ }
+ return aMatch[ 1 ];
+ }
+ return defaultValue;
}
- return aMatch[1];
- }
- return defaultValue;
- }
- var dialog = this.getDialog(),
- value = '',
- dimension = (( this.id == 'txtWidth' )? 'width' : 'height' ),
- size = element.getAttribute( dimension );
+ var dialog = this.getDialog(),
+ value = '',
+ dimension = this.id == 'txtWidth' ? 'width' : 'height',
+ size = element.getAttribute( dimension );
- if ( size )
- value = checkDimension( size, value );
- value = checkDimension( element.getStyle( dimension ), value );
+ if ( size )
+ value = checkDimension( size, value );
+ value = checkDimension( element.getStyle( dimension ), value );
- this.setValue( value );
- };
+ this.setValue( value );
+ };
- var previewPreloader;
+ var previewPreloader;
- var onImgLoadEvent = function()
- {
- // Image is ready.
- var original = this.originalElement;
- original.setCustomData( 'isReady', 'true' );
- original.removeListener( 'load', onImgLoadEvent );
- original.removeListener( 'error', onImgLoadErrorEvent );
- original.removeListener( 'abort', onImgLoadErrorEvent );
+ var onImgLoadEvent = function() {
+ // Image is ready.
+ var original = this.originalElement;
+ original.setCustomData( 'isReady', 'true' );
+ original.removeListener( 'load', onImgLoadEvent );
+ original.removeListener( 'error', onImgLoadErrorEvent );
+ original.removeListener( 'abort', onImgLoadErrorEvent );
- // Hide loader
- CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
+ // Hide loader
+ CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
- // New image -> new domensions
- if ( !this.dontResetSize )
- resetSize( this );
+ // New image -> new domensions
+ if ( !this.dontResetSize )
+ resetSize( this );
- if ( this.firstLoad )
- CKEDITOR.tools.setTimeout( function(){ switchLockRatio( this, 'check' ); }, 0, this );
+ if ( this.firstLoad )
+ CKEDITOR.tools.setTimeout( function() {
+ switchLockRatio( this, 'check' );
+ }, 0, this );
- this.firstLoad = false;
- this.dontResetSize = false;
- };
+ this.firstLoad = false;
+ this.dontResetSize = false;
+ };
- var onImgLoadErrorEvent = function()
- {
- // Error. Image is not loaded.
- var original = this.originalElement;
- original.removeListener( 'load', onImgLoadEvent );
- original.removeListener( 'error', onImgLoadErrorEvent );
- original.removeListener( 'abort', onImgLoadErrorEvent );
+ var onImgLoadErrorEvent = function() {
+ // Error. Image is not loaded.
+ var original = this.originalElement;
+ original.removeListener( 'load', onImgLoadEvent );
+ original.removeListener( 'error', onImgLoadErrorEvent );
+ original.removeListener( 'abort', onImgLoadErrorEvent );
- // Set Error image.
- var noimage = CKEDITOR.getUrl( editor.skinPath + 'images/noimage.png' );
+ // Set Error image.
+ var noimage = CKEDITOR.getUrl( CKEDITOR.plugins.get( 'image' ).path + 'images/noimage.png' );
- if ( this.preview )
- this.preview.setAttribute( 'src', noimage );
+ if ( this.preview )
+ this.preview.setAttribute( 'src', noimage );
- // Hide loader
- CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
- switchLockRatio( this, false ); // Unlock.
- };
+ // Hide loader
+ CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
+ switchLockRatio( this, false ); // Unlock.
+ };
- var numbering = function( id )
- {
- return CKEDITOR.tools.getNextId() + '_' + id;
- },
- btnLockSizesId = numbering( 'btnLockSizes' ),
- btnResetSizeId = numbering( 'btnResetSize' ),
- imagePreviewLoaderId = numbering( 'ImagePreviewLoader' ),
- imagePreviewBoxId = numbering( 'ImagePreviewBox' ),
- previewLinkId = numbering( 'previewLink' ),
- previewImageId = numbering( 'previewImage' );
-
- return {
- title : ( dialogType == 'image' ) ? editor.lang.image.title : editor.lang.image.titleButton,
- minWidth : 420,
- minHeight : 310,
- onShow : function()
- {
- this.imageElement = false;
- this.linkElement = false;
-
- // Default: create a new element.
- this.imageEditMode = false;
- this.linkEditMode = false;
-
- this.lockRatio = true;
- this.dontResetSize = false;
- this.firstLoad = true;
- this.addLink = false;
-
- var editor = this.getParentEditor(),
- sel = this.getParentEditor().getSelection(),
- element = sel.getSelectedElement(),
- link = element && element.getAscendant( 'a' );
-
- //Hide loader.
- CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
- // Create the preview before setup the dialog contents.
- previewPreloader = new CKEDITOR.dom.element( 'img', editor.document );
- this.preview = CKEDITOR.document.getById( previewImageId );
-
- // Copy of the image
- this.originalElement = editor.document.createElement( 'img' );
- this.originalElement.setAttribute( 'alt', '' );
- this.originalElement.setCustomData( 'isReady', 'false' );
-
- if ( link )
- {
- this.linkElement = link;
- this.linkEditMode = true;
-
- // Look for Image element.
- var linkChildren = link.getChildren();
- if ( linkChildren.count() == 1 ) // 1 child.
- {
- var childTagName = linkChildren.getItem( 0 ).getName();
- if ( childTagName == 'img' || childTagName == 'input' )
+ var numbering = function( id ) {
+ return CKEDITOR.tools.getNextId() + '_' + id;
+ },
+ btnLockSizesId = numbering( 'btnLockSizes' ),
+ btnResetSizeId = numbering( 'btnResetSize' ),
+ imagePreviewLoaderId = numbering( 'ImagePreviewLoader' ),
+ previewLinkId = numbering( 'previewLink' ),
+ previewImageId = numbering( 'previewImage' );
+
+ return {
+ title: editor.lang.image[ dialogType == 'image' ? 'title' : 'titleButton' ],
+ minWidth: 420,
+ minHeight: 360,
+ onShow: function() {
+ this.imageElement = false;
+ this.linkElement = false;
+
+ // Default: create a new element.
+ this.imageEditMode = false;
+ this.linkEditMode = false;
+
+ this.lockRatio = true;
+ this.userlockRatio = 0;
+ this.dontResetSize = false;
+ this.firstLoad = true;
+ this.addLink = false;
+
+ var editor = this.getParentEditor(),
+ sel = editor.getSelection(),
+ element = sel && sel.getSelectedElement(),
+ link = element && editor.elementPath( element ).contains( 'a', 1 );
+
+ //Hide loader.
+ CKEDITOR.document.getById( imagePreviewLoaderId ).setStyle( 'display', 'none' );
+ // Create the preview before setup the dialog contents.
+ previewPreloader = new CKEDITOR.dom.element( 'img', editor.document );
+ this.preview = CKEDITOR.document.getById( previewImageId );
+
+ // Copy of the image
+ this.originalElement = editor.document.createElement( 'img' );
+ this.originalElement.setAttribute( 'alt', '' );
+ this.originalElement.setCustomData( 'isReady', 'false' );
+
+ if ( link ) {
+ this.linkElement = link;
+ this.linkEditMode = true;
+
+ // Look for Image element.
+ var linkChildren = link.getChildren();
+ if ( linkChildren.count() == 1 ) // 1 child.
{
- this.imageElement = linkChildren.getItem( 0 );
- if ( this.imageElement.getName() == 'img' )
- this.imageEditMode = 'img';
- else if ( this.imageElement.getName() == 'input' )
- this.imageEditMode = 'input';
+ var childTagName = linkChildren.getItem( 0 ).getName();
+ if ( childTagName == 'img' || childTagName == 'input' ) {
+ this.imageElement = linkChildren.getItem( 0 );
+ if ( this.imageElement.getName() == 'img' )
+ this.imageEditMode = 'img';
+ else if ( this.imageElement.getName() == 'input' )
+ this.imageEditMode = 'input';
+ }
}
+ // Fill out all fields.
+ if ( dialogType == 'image' )
+ this.setupContent( LINK, link );
}
- // Fill out all fields.
- if ( dialogType == 'image' )
- this.setupContent( LINK, link );
- }
- if ( element && element.getName() == 'img' && !element.getAttribute( '_cke_realelement' )
- || element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'image' )
- {
- this.imageEditMode = element.getName();
- this.imageElement = element;
- }
+ if ( element && element.getName() == 'img' && !element.data( 'cke-realelement' ) || element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'image' ) {
+ this.imageEditMode = element.getName();
+ this.imageElement = element;
+ }
- if ( this.imageEditMode )
- {
- // Use the original element as a buffer from since we don't want
- // temporary changes to be committed, e.g. if the dialog is canceled.
- this.cleanImageElement = this.imageElement;
- this.imageElement = this.cleanImageElement.clone( true, true );
+ if ( this.imageEditMode ) {
+ // Use the original element as a buffer from since we don't want
+ // temporary changes to be committed, e.g. if the dialog is canceled.
+ this.cleanImageElement = this.imageElement;
+ this.imageElement = this.cleanImageElement.clone( true, true );
- // Fill out all fields.
- this.setupContent( IMAGE, this.imageElement );
+ // Fill out all fields.
+ this.setupContent( IMAGE, this.imageElement );
+ } else
+ this.imageElement = editor.document.createElement( 'img' );
// Refresh LockRatio button
- switchLockRatio ( this, true );
- }
- else
- this.imageElement = editor.document.createElement( 'img' );
-
- // Dont show preview if no URL given.
- if ( !CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtUrl' ) ) )
- {
- this.preview.removeAttribute( 'src' );
- this.preview.setStyle( 'display', 'none' );
- }
- },
- onOk : function()
- {
- // Edit existing Image.
- if ( this.imageEditMode )
- {
- var imgTagName = this.imageEditMode;
-
- // Image dialog and Input element.
- if ( dialogType == 'image' && imgTagName == 'input' && confirm( editor.lang.image.button2Img ) )
- {
- // Replace INPUT-> IMG
- imgTagName = 'img';
- this.imageElement = editor.document.createElement( 'img' );
- this.imageElement.setAttribute( 'alt', '' );
- editor.insertElement( this.imageElement );
- }
- // ImageButton dialog and Image element.
- else if ( dialogType != 'image' && imgTagName == 'img' && confirm( editor.lang.image.img2Button ))
- {
- // Replace IMG -> INPUT
- imgTagName = 'input';
- this.imageElement = editor.document.createElement( 'input' );
- this.imageElement.setAttributes(
- {
- type : 'image',
- alt : ''
- }
- );
- editor.insertElement( this.imageElement );
- }
- else
- {
- // Restore the original element before all commits.
- this.imageElement = this.cleanImageElement;
- delete this.cleanImageElement;
+ switchLockRatio( this, true );
+
+ // Dont show preview if no URL given.
+ if ( !CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtUrl' ) ) ) {
+ this.preview.removeAttribute( 'src' );
+ this.preview.setStyle( 'display', 'none' );
}
- }
- else // Create a new image.
- {
- // Image dialog -> create IMG element.
- if ( dialogType == 'image' )
- this.imageElement = editor.document.createElement( 'img' );
- else
+ },
+ onOk: function() {
+ // Edit existing Image.
+ if ( this.imageEditMode ) {
+ var imgTagName = this.imageEditMode;
+
+ // Image dialog and Input element.
+ if ( dialogType == 'image' && imgTagName == 'input' && confirm( editor.lang.image.button2Img ) ) {
+ // Replace INPUT-> IMG
+ imgTagName = 'img';
+ this.imageElement = editor.document.createElement( 'img' );
+ this.imageElement.setAttribute( 'alt', '' );
+ editor.insertElement( this.imageElement );
+ }
+ // ImageButton dialog and Image element.
+ else if ( dialogType != 'image' && imgTagName == 'img' && confirm( editor.lang.image.img2Button ) ) {
+ // Replace IMG -> INPUT
+ imgTagName = 'input';
+ this.imageElement = editor.document.createElement( 'input' );
+ this.imageElement.setAttributes({
+ type: 'image',
+ alt: ''
+ });
+ editor.insertElement( this.imageElement );
+ } else {
+ // Restore the original element before all commits.
+ this.imageElement = this.cleanImageElement;
+ delete this.cleanImageElement;
+ }
+ } else // Create a new image.
{
- this.imageElement = editor.document.createElement( 'input' );
- this.imageElement.setAttribute ( 'type' ,'image' );
+ // Image dialog -> create IMG element.
+ if ( dialogType == 'image' )
+ this.imageElement = editor.document.createElement( 'img' );
+ else {
+ this.imageElement = editor.document.createElement( 'input' );
+ this.imageElement.setAttribute( 'type', 'image' );
+ }
+ this.imageElement.setAttribute( 'alt', '' );
}
- this.imageElement.setAttribute( 'alt', '' );
- }
-
- // Create a new link.
- if ( !this.linkEditMode )
- this.linkElement = editor.document.createElement( 'a' );
-
- // Set attributes.
- this.commitContent( IMAGE, this.imageElement );
- this.commitContent( LINK, this.linkElement );
- // Remove empty style attribute.
- if ( !this.imageElement.getAttribute( 'style' ) )
- this.imageElement.removeAttribute( 'style' );
-
- // Insert a new Image.
- if ( !this.imageEditMode )
- {
- if ( this.addLink )
+ // Create a new link.
+ if ( !this.linkEditMode )
+ this.linkElement = editor.document.createElement( 'a' );
+
+ // Set attributes.
+ this.commitContent( IMAGE, this.imageElement );
+ this.commitContent( LINK, this.linkElement );
+
+ // Remove empty style attribute.
+ if ( !this.imageElement.getAttribute( 'style' ) )
+ this.imageElement.removeAttribute( 'style' );
+
+ // Insert a new Image.
+ if ( !this.imageEditMode ) {
+ if ( this.addLink ) {
+ //Insert a new Link.
+ if ( !this.linkEditMode ) {
+ editor.insertElement( this.linkElement );
+ this.linkElement.append( this.imageElement, false );
+ } else //Link already exists, image not.
+ editor.insertElement( this.imageElement );
+ } else
+ editor.insertElement( this.imageElement );
+ } else // Image already exists.
{
- //Insert a new Link.
- if ( !this.linkEditMode )
- {
- editor.insertElement(this.linkElement);
- this.linkElement.append(this.imageElement, false);
+ //Add a new link element.
+ if ( !this.linkEditMode && this.addLink ) {
+ editor.insertElement( this.linkElement );
+ this.imageElement.appendTo( this.linkElement );
+ }
+ //Remove Link, Image exists.
+ else if ( this.linkEditMode && !this.addLink ) {
+ editor.getSelection().selectElement( this.linkElement );
+ editor.insertElement( this.imageElement );
}
- else //Link already exists, image not.
- editor.insertElement(this.imageElement );
}
- else
- editor.insertElement( this.imageElement );
- }
- else // Image already exists.
- {
- //Add a new link element.
- if ( !this.linkEditMode && this.addLink )
- {
- editor.insertElement( this.linkElement );
- this.imageElement.appendTo( this.linkElement );
+ },
+ onLoad: function() {
+ if ( dialogType != 'image' )
+ this.hidePage( 'Link' ); //Hide Link tab.
+ var doc = this._.element.getDocument();
+
+ if ( this.getContentElement( 'info', 'ratioLock' ) ) {
+ this.addFocusable( doc.getById( btnResetSizeId ), 5 );
+ this.addFocusable( doc.getById( btnLockSizesId ), 5 );
}
- //Remove Link, Image exists.
- else if ( this.linkEditMode && !this.addLink )
- {
- editor.getSelection().selectElement( this.linkElement );
- editor.insertElement( this.imageElement );
+
+ this.commitContent = commitContent;
+ },
+ onHide: function() {
+ if ( this.preview )
+ this.commitContent( CLEANUP, this.preview );
+
+ if ( this.originalElement ) {
+ this.originalElement.removeListener( 'load', onImgLoadEvent );
+ this.originalElement.removeListener( 'error', onImgLoadErrorEvent );
+ this.originalElement.removeListener( 'abort', onImgLoadErrorEvent );
+ this.originalElement.remove();
+ this.originalElement = false; // Dialog is closed.
}
- }
- },
- onLoad : function()
- {
- if ( dialogType != 'image' )
- this.hidePage( 'Link' ); //Hide Link tab.
- var doc = this._.element.getDocument();
- this.addFocusable( doc.getById( btnResetSizeId ), 5 );
- this.addFocusable( doc.getById( btnLockSizesId ), 5 );
-
- this.commitContent = commitContent;
- },
- onHide : function()
- {
- if ( this.preview )
- this.commitContent( CLEANUP, this.preview );
-
- if ( this.originalElement )
- {
- this.originalElement.removeListener( 'load', onImgLoadEvent );
- this.originalElement.removeListener( 'error', onImgLoadErrorEvent );
- this.originalElement.removeListener( 'abort', onImgLoadErrorEvent );
- this.originalElement.remove();
- this.originalElement = false; // Dialog is closed.
- }
- delete this.imageElement;
- },
- contents : [
- {
- id : 'info',
- label : editor.lang.image.infoTab,
- accessKey : 'I',
- elements :
- [
- {
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'hbox',
- widths : [ '280px', '110px' ],
- align : 'right',
- children :
- [
- {
- id : 'txtUrl',
- type : 'text',
- label : editor.lang.common.url,
- required: true,
- onChange : function()
- {
- var dialog = this.getDialog(),
- newUrl = this.getValue();
-
- //Update original image
- if ( newUrl.length > 0 ) //Prevent from load before onShow
- {
- dialog = this.getDialog();
- var original = dialog.originalElement;
-
- dialog.preview.removeStyle( 'display' );
-
- original.setCustomData( 'isReady', 'false' );
- // Show loader
- var loader = CKEDITOR.document.getById( imagePreviewLoaderId );
- if ( loader )
- loader.setStyle( 'display', '' );
-
- original.on( 'load', onImgLoadEvent, dialog );
- original.on( 'error', onImgLoadErrorEvent, dialog );
- original.on( 'abort', onImgLoadErrorEvent, dialog );
- original.setAttribute( 'src', newUrl );
-
- // Query the preloader to figure out the url impacted by based href.
- previewPreloader.setAttribute( 'src', newUrl );
- dialog.preview.setAttribute( 'src', previewPreloader.$.src );
- updatePreview( dialog );
- }
- // Dont show preview if no URL given.
- else if ( dialog.preview )
- {
- dialog.preview.removeAttribute( 'src' );
- dialog.preview.setStyle( 'display', 'none' );
- }
- },
- setup : function( type, element )
- {
- if ( type == IMAGE )
- {
- var url = element.getAttribute( '_cke_saved_src' ) || element.getAttribute( 'src' );
- var field = this;
-
- this.getDialog().dontResetSize = true;
-
- field.setValue( url ); // And call this.onChange()
- // Manually set the initial value.(#4191)
- field.setInitValue();
- }
- },
- commit : function( type, element )
- {
- if ( type == IMAGE && ( this.getValue() || this.isChanged() ) )
- {
- element.setAttribute( '_cke_saved_src', decodeURI( this.getValue() ) );
- element.setAttribute( 'src', decodeURI( this.getValue() ) );
- }
- else if ( type == CLEANUP )
- {
- element.setAttribute( 'src', '' ); // If removeAttribute doesn't work.
- element.removeAttribute( 'src' );
- }
- },
- validate : CKEDITOR.dialog.validate.notEmpty( editor.lang.image.urlMissing )
- },
- {
- type : 'button',
- id : 'browse',
- // v-align with the 'txtUrl' field.
- // TODO: We need something better than a fixed size here.
- style : 'display:inline-block;margin-top:10px;',
- align : 'center',
- label : editor.lang.common.browseServer,
- hidden : true,
- filebrowser : 'info:txtUrl'
- }
- ]
- }
- ]
- },
+ delete this.imageElement;
+ },
+ contents: [
+ {
+ id: 'info',
+ label: editor.lang.image.infoTab,
+ accessKey: 'I',
+ elements: [
{
- id : 'txtAlt',
- type : 'text',
- label : editor.lang.image.alt,
- accessKey : 'T',
- 'default' : '',
- onChange : function()
+ type: 'vbox',
+ padding: 0,
+ children: [
{
- updatePreview( this.getDialog() );
- },
- setup : function( type, element )
- {
- if ( type == IMAGE )
- this.setValue( element.getAttribute( 'alt' ) );
- },
- commit : function( type, element )
- {
- if ( type == IMAGE )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'alt', this.getValue() );
- }
- else if ( type == PREVIEW )
+ type: 'hbox',
+ widths: [ '280px', '110px' ],
+ align: 'right',
+ children: [
{
- element.setAttribute( 'alt', this.getValue() );
- }
- else if ( type == CLEANUP )
+ id: 'txtUrl',
+ type: 'text',
+ label: editor.lang.common.url,
+ required: true,
+ onChange: function() {
+ var dialog = this.getDialog(),
+ newUrl = this.getValue();
+
+ //Update original image
+ if ( newUrl.length > 0 ) //Prevent from load before onShow
+ {
+ dialog = this.getDialog();
+ var original = dialog.originalElement;
+
+ dialog.preview.removeStyle( 'display' );
+
+ original.setCustomData( 'isReady', 'false' );
+ // Show loader
+ var loader = CKEDITOR.document.getById( imagePreviewLoaderId );
+ if ( loader )
+ loader.setStyle( 'display', '' );
+
+ original.on( 'load', onImgLoadEvent, dialog );
+ original.on( 'error', onImgLoadErrorEvent, dialog );
+ original.on( 'abort', onImgLoadErrorEvent, dialog );
+ original.setAttribute( 'src', newUrl );
+
+ // Query the preloader to figure out the url impacted by based href.
+ previewPreloader.setAttribute( 'src', newUrl );
+ dialog.preview.setAttribute( 'src', previewPreloader.$.src );
+ updatePreview( dialog );
+ }
+ // Dont show preview if no URL given.
+ else if ( dialog.preview ) {
+ dialog.preview.removeAttribute( 'src' );
+ dialog.preview.setStyle( 'display', 'none' );
+ }
+ },
+ setup: function( type, element ) {
+ if ( type == IMAGE ) {
+ var url = element.data( 'cke-saved-src' ) || element.getAttribute( 'src' );
+ var field = this;
+
+ this.getDialog().dontResetSize = true;
+
+ field.setValue( url ); // And call this.onChange()
+ // Manually set the initial value.(#4191)
+ field.setInitValue();
+ }
+ },
+ commit: function( type, element ) {
+ if ( type == IMAGE && ( this.getValue() || this.isChanged() ) ) {
+ element.data( 'cke-saved-src', this.getValue() );
+ element.setAttribute( 'src', this.getValue() );
+ } else if ( type == CLEANUP ) {
+ element.setAttribute( 'src', '' ); // If removeAttribute doesn't work.
+ element.removeAttribute( 'src' );
+ }
+ },
+ validate: CKEDITOR.dialog.validate.notEmpty( editor.lang.image.urlMissing )
+ },
{
- element.removeAttribute( 'alt' );
- }
+ type: 'button',
+ id: 'browse',
+ // v-align with the 'txtUrl' field.
+ // TODO: We need something better than a fixed size here.
+ style: 'display:inline-block;margin-top:10px;',
+ align: 'center',
+ label: editor.lang.common.browseServer,
+ hidden: true,
+ filebrowser: 'info:txtUrl'
}
+ ]
+ }
+ ]
+ },
+ {
+ id: 'txtAlt',
+ type: 'text',
+ label: editor.lang.image.alt,
+ accessKey: 'T',
+ 'default': '',
+ onChange: function() {
+ updatePreview( this.getDialog() );
+ },
+ setup: function( type, element ) {
+ if ( type == IMAGE )
+ this.setValue( element.getAttribute( 'alt' ) );
},
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'alt', this.getValue() );
+ } else if ( type == PREVIEW ) {
+ element.setAttribute( 'alt', this.getValue() );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'alt' );
+ }
+ }
+ },
{
- type : 'hbox',
- widths : [ '140px', '240px' ],
- children :
- [
+ type: 'hbox',
+ children: [
+ {
+ id: 'basic',
+ type: 'vbox',
+ children: [
{
- type : 'vbox',
- padding : 10,
- children :
- [
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ type: 'vbox',
+ padding: 1,
+ children: [
{
- type : 'hbox',
- widths : [ '70%', '30%' ],
- children :
- [
- {
- type : 'vbox',
- padding : 1,
- children :
- [
- {
- type : 'text',
- width: '40px',
- id : 'txtWidth',
- labelLayout : 'horizontal',
- label : editor.lang.image.width,
- onKeyUp : onSizeChange,
- onChange : function()
- {
- commitInternally.call( this, 'advanced:txtdlgGenStyle' );
- },
- validate : function()
- {
- var aMatch = this.getValue().match( regexGetSizeOrEmpty );
- if ( !aMatch )
- alert( editor.lang.image.validateWidth );
- return !!aMatch;
- },
- setup : setupDimension,
- commit : function( type, element, internalCommit )
- {
- var value = this.getValue();
- if ( type == IMAGE )
- {
- if ( value )
- element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
- else if ( !value && this.isChanged( ) )
- element.removeStyle( 'width' );
-
- !internalCommit && element.removeAttribute( 'width' );
- }
- else if ( type == PREVIEW )
- {
- var aMatch = value.match( regexGetSize );
- if ( !aMatch )
- {
- var oImageOriginal = this.getDialog().originalElement;
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
- element.setStyle( 'width', oImageOriginal.$.width + 'px');
- }
- else
- element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
- }
- else if ( type == CLEANUP )
- {
- element.removeAttribute( 'width' );
- element.removeStyle( 'width' );
- }
- }
- },
- {
- type : 'text',
- id : 'txtHeight',
- width: '40px',
- labelLayout : 'horizontal',
- label : editor.lang.image.height,
- onKeyUp : onSizeChange,
- onChange : function()
- {
- commitInternally.call( this, 'advanced:txtdlgGenStyle' );
- },
- validate : function()
- {
- var aMatch = this.getValue().match( regexGetSizeOrEmpty );
- if ( !aMatch )
- alert( editor.lang.image.validateHeight );
- return !!aMatch;
- },
- setup : setupDimension,
- commit : function( type, element, internalCommit )
- {
- var value = this.getValue();
- if ( type == IMAGE )
- {
- if ( value )
- element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
- else if ( !value && this.isChanged( ) )
- element.removeStyle( 'height' );
-
- if ( !internalCommit && type == IMAGE )
- element.removeAttribute( 'height' );
- }
- else if ( type == PREVIEW )
- {
- var aMatch = value.match( regexGetSize );
- if ( !aMatch )
- {
- var oImageOriginal = this.getDialog().originalElement;
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
- element.setStyle( 'height', oImageOriginal.$.height + 'px' );
- }
- else
- element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
- }
- else if ( type == CLEANUP )
- {
- element.removeAttribute( 'height' );
- element.removeStyle( 'height' );
- }
- }
- }
- ]
- },
- {
- type : 'html',
- style : 'margin-top:10px;width:40px;height:40px;',
- onLoad : function()
- {
- // Activate Reset button
- var resetButton = CKEDITOR.document.getById( btnResetSizeId ),
- ratioButton = CKEDITOR.document.getById( btnLockSizesId );
- if ( resetButton )
- {
- resetButton.on( 'click', function(evt)
- {
- resetSize( this );
- evt.data.preventDefault();
- }, this.getDialog() );
- resetButton.on( 'mouseover', function()
- {
- this.addClass( 'cke_btn_over' );
- }, resetButton );
- resetButton.on( 'mouseout', function()
- {
- this.removeClass( 'cke_btn_over' );
- }, resetButton );
- }
- // Activate (Un)LockRatio button
- if ( ratioButton )
- {
- ratioButton.on( 'click', function(evt)
- {
- var locked = switchLockRatio( this ),
- oImageOriginal = this.originalElement,
- width = this.getValueOf( 'info', 'txtWidth' );
-
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' && width )
- {
- var height = oImageOriginal.$.height / oImageOriginal.$.width * width;
- if ( !isNaN( height ) )
- {
- this.setValueOf( 'info', 'txtHeight', Math.round( height ) );
- updatePreview( this );
- }
- }
- evt.data.preventDefault();
- }, this.getDialog() );
- ratioButton.on( 'mouseover', function()
- {
- this.addClass( 'cke_btn_over' );
- }, ratioButton );
- ratioButton.on( 'mouseout', function()
- {
- this.removeClass( 'cke_btn_over' );
- }, ratioButton );
- }
- },
- html : '<div>'+
- '<a href="javascript:void(0)" tabindex="-1" title="' + editor.lang.image.unlockRatio +
- '" class="cke_btn_locked" id="' + btnLockSizesId + '" role="button"><span class="cke_label">' + editor.lang.image.unlockRatio + '</span></a>' +
- '<a href="javascript:void(0)" tabindex="-1" title="' + editor.lang.image.resetSize +
- '" class="cke_btn_reset" id="' + btnResetSizeId + '" role="button"><span class="cke_label">' + editor.lang.image.resetSize + '</span></a>'+
- '</div>'
- }
- ]
+ type: 'text',
+ width: '40px',
+ id: 'txtWidth',
+ label: editor.lang.common.width,
+ onKeyUp: onSizeChange,
+ onChange: function() {
+ commitInternally.call( this, 'advanced:txtdlgGenStyle' );
+ },
+ validate: function() {
+ var aMatch = this.getValue().match( regexGetSizeOrEmpty ),
+ isValid = !!( aMatch && parseInt( aMatch[ 1 ], 10 ) !== 0 );
+ if ( !isValid )
+ alert( editor.lang.common.invalidWidth );
+ return isValid;
},
+ setup: setupDimension,
+ commit: function( type, element, internalCommit ) {
+ var value = this.getValue();
+ if ( type == IMAGE ) {
+ if ( value )
+ element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
+ else
+ element.removeStyle( 'width' );
+
+ !internalCommit && element.removeAttribute( 'width' );
+ } else if ( type == PREVIEW ) {
+ var aMatch = value.match( regexGetSize );
+ if ( !aMatch ) {
+ var oImageOriginal = this.getDialog().originalElement;
+ if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
+ element.setStyle( 'width', oImageOriginal.$.width + 'px' );
+ } else
+ element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'width' );
+ element.removeStyle( 'width' );
+ }
+ }
+ },
{
- type : 'vbox',
- padding : 1,
- children :
- [
- {
- type : 'text',
- id : 'txtBorder',
- width: '60px',
- labelLayout : 'horizontal',
- label : editor.lang.image.border,
- 'default' : '',
- onKeyUp : function()
- {
- updatePreview( this.getDialog() );
- },
- onChange : function()
- {
- commitInternally.call( this, 'advanced:txtdlgGenStyle' );
- },
- validate : CKEDITOR.dialog.validate.integer( editor.lang.image.validateBorder ),
- setup : function( type, element )
- {
- if ( type == IMAGE )
- {
- var value,
- borderStyle = element.getStyle( 'border-width' );
- borderStyle = borderStyle && borderStyle.match( /^(\d+px)(?: \1 \1 \1)?$/ );
- value = borderStyle && parseInt( borderStyle[ 1 ], 10 );
- isNaN ( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'border' ) );
- this.setValue( value );
- }
- },
- commit : function( type, element, internalCommit )
- {
- var value = parseInt( this.getValue(), 10 );
- if ( type == IMAGE || type == PREVIEW )
- {
- if ( !isNaN( value ) )
- {
- element.setStyle( 'border-width', CKEDITOR.tools.cssLength( value ) );
- element.setStyle( 'border-style', 'solid' );
- }
- else if ( !value && this.isChanged() )
- {
- element.removeStyle( 'border-width' );
- element.removeStyle( 'border-style' );
- element.removeStyle( 'border-color' );
- }
-
- if ( !internalCommit && type == IMAGE )
- element.removeAttribute( 'border' );
- }
- else if ( type == CLEANUP )
- {
- element.removeAttribute( 'border' );
- element.removeStyle( 'border-width' );
- element.removeStyle( 'border-style' );
- element.removeStyle( 'border-color' );
- }
- }
- },
- {
- type : 'text',
- id : 'txtHSpace',
- width: '60px',
- labelLayout : 'horizontal',
- label : editor.lang.image.hSpace,
- 'default' : '',
- onKeyUp : function()
- {
- updatePreview( this.getDialog() );
- },
- onChange : function()
- {
- commitInternally.call( this, 'advanced:txtdlgGenStyle' );
- },
- validate : CKEDITOR.dialog.validate.integer( editor.lang.image.validateHSpace ),
- setup : function( type, element )
- {
- if ( type == IMAGE )
- {
- var value,
- marginLeftPx,
- marginRightPx,
- marginLeftStyle = element.getStyle( 'margin-left' ),
- marginRightStyle = element.getStyle( 'margin-right' );
-
- marginLeftStyle = marginLeftStyle && marginLeftStyle.match( pxLengthRegex );
- marginRightStyle = marginRightStyle && marginRightStyle.match( pxLengthRegex );
- marginLeftPx = parseInt( marginLeftStyle, 10 );
- marginRightPx = parseInt( marginRightStyle, 10 );
-
- value = ( marginLeftPx == marginRightPx ) && marginLeftPx;
- isNaN( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'hspace' ) );
-
- this.setValue( value );
- }
- },
- commit : function( type, element, internalCommit )
- {
- var value = parseInt( this.getValue(), 10 );
- if ( type == IMAGE || type == PREVIEW )
- {
- if ( !isNaN( value ) )
- {
- element.setStyle( 'margin-left', CKEDITOR.tools.cssLength( value ) );
- element.setStyle( 'margin-right', CKEDITOR.tools.cssLength( value ) );
- }
- else if ( !value && this.isChanged( ) )
- {
- element.removeStyle( 'margin-left' );
- element.removeStyle( 'margin-right' );
- }
-
- if ( !internalCommit && type == IMAGE )
- element.removeAttribute( 'hspace' );
- }
- else if ( type == CLEANUP )
- {
- element.removeAttribute( 'hspace' );
- element.removeStyle( 'margin-left' );
- element.removeStyle( 'margin-right' );
- }
- }
- },
- {
- type : 'text',
- id : 'txtVSpace',
- width : '60px',
- labelLayout : 'horizontal',
- label : editor.lang.image.vSpace,
- 'default' : '',
- onKeyUp : function()
- {
- updatePreview( this.getDialog() );
- },
- onChange : function()
- {
- commitInternally.call( this, 'advanced:txtdlgGenStyle' );
- },
- validate : CKEDITOR.dialog.validate.integer( editor.lang.image.validateVSpace ),
- setup : function( type, element )
- {
- if ( type == IMAGE )
- {
- var value,
- marginTopPx,
- marginBottomPx,
- marginTopStyle = element.getStyle( 'margin-top' ),
- marginBottomStyle = element.getStyle( 'margin-bottom' );
-
- marginTopStyle = marginTopStyle && marginTopStyle.match( pxLengthRegex );
- marginBottomStyle = marginBottomStyle && marginBottomStyle.match( pxLengthRegex );
- marginTopPx = parseInt( marginTopStyle, 10 );
- marginBottomPx = parseInt( marginBottomStyle, 10 );
-
- value = ( marginTopPx == marginBottomPx ) && marginTopPx;
- isNaN ( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'vspace' ) );
- this.setValue( value );
- }
- },
- commit : function( type, element, internalCommit )
- {
- var value = parseInt( this.getValue(), 10 );
- if ( type == IMAGE || type == PREVIEW )
- {
- if ( !isNaN( value ) )
- {
- element.setStyle( 'margin-top', CKEDITOR.tools.cssLength( value ) );
- element.setStyle( 'margin-bottom', CKEDITOR.tools.cssLength( value ) );
- }
- else if ( !value && this.isChanged( ) )
- {
- element.removeStyle( 'margin-top' );
- element.removeStyle( 'margin-bottom' );
- }
-
- if ( !internalCommit && type == IMAGE )
- element.removeAttribute( 'vspace' );
- }
- else if ( type == CLEANUP )
- {
- element.removeAttribute( 'vspace' );
- element.removeStyle( 'margin-top' );
- element.removeStyle( 'margin-bottom' );
- }
- }
- },
- {
- id : 'cmbAlign',
- type : 'select',
- labelLayout : 'horizontal',
- widths : [ '35%','65%' ],
- style : 'width:90px',
- label : editor.lang.image.align,
- 'default' : '',
- items :
- [
- [ editor.lang.common.notSet , ''],
- [ editor.lang.image.alignLeft , 'left'],
- [ editor.lang.image.alignRight , 'right']
- // Backward compatible with v2 on setup when specified as attribute value,
- // while these values are no more available as select options.
- // [ editor.lang.image.alignAbsBottom , 'absBottom'],
- // [ editor.lang.image.alignAbsMiddle , 'absMiddle'],
- // [ editor.lang.image.alignBaseline , 'baseline'],
- // [ editor.lang.image.alignTextTop , 'text-top'],
- // [ editor.lang.image.alignBottom , 'bottom'],
- // [ editor.lang.image.alignMiddle , 'middle'],
- // [ editor.lang.image.alignTop , 'top']
- ],
- onChange : function()
- {
- updatePreview( this.getDialog() );
- commitInternally.call( this, 'advanced:txtdlgGenStyle' );
- },
- setup : function( type, element )
- {
- if ( type == IMAGE )
- {
- var value = element.getStyle( 'float' );
- switch( value )
- {
- // Ignore those unrelated values.
- case 'inherit':
- case 'none':
- value = '';
- }
-
- !value && ( value = ( element.getAttribute( 'align' ) || '' ).toLowerCase() );
- this.setValue( value );
- }
- },
- commit : function( type, element, internalCommit )
- {
- var value = this.getValue();
- if ( type == IMAGE || type == PREVIEW )
- {
- if ( value )
- element.setStyle( 'float', value );
- else
- element.removeStyle( 'float' );
-
- if ( !internalCommit && type == IMAGE )
- {
- value = ( element.getAttribute( 'align' ) || '' ).toLowerCase();
- switch( value )
- {
- // we should remove it only if it matches "left" or "right",
- // otherwise leave it intact.
- case 'left':
- case 'right':
- element.removeAttribute( 'align' );
- }
- }
- }
- else if ( type == CLEANUP )
- element.removeStyle( 'float' );
-
+ type: 'text',
+ id: 'txtHeight',
+ width: '40px',
+ label: editor.lang.common.height,
+ onKeyUp: onSizeChange,
+ onChange: function() {
+ commitInternally.call( this, 'advanced:txtdlgGenStyle' );
+ },
+ validate: function() {
+ var aMatch = this.getValue().match( regexGetSizeOrEmpty ),
+ isValid = !!( aMatch && parseInt( aMatch[ 1 ], 10 ) !== 0 );
+ if ( !isValid )
+ alert( editor.lang.common.invalidHeight );
+ return isValid;
+ },
+ setup: setupDimension,
+ commit: function( type, element, internalCommit ) {
+ var value = this.getValue();
+ if ( type == IMAGE ) {
+ if ( value )
+ element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
+ else
+ element.removeStyle( 'height' );
+
+ !internalCommit && element.removeAttribute( 'height' );
+ } else if ( type == PREVIEW ) {
+ var aMatch = value.match( regexGetSize );
+ if ( !aMatch ) {
+ var oImageOriginal = this.getDialog().originalElement;
+ if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
+ element.setStyle( 'height', oImageOriginal.$.height + 'px' );
+ } else
+ element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'height' );
+ element.removeStyle( 'height' );
+ }
+ }
+ }
+ ]
+ },
+ {
+ id: 'ratioLock',
+ type: 'html',
+ style: 'margin-top:30px;width:40px;height:40px;',
+ onLoad: function() {
+ // Activate Reset button
+ var resetButton = CKEDITOR.document.getById( btnResetSizeId ),
+ ratioButton = CKEDITOR.document.getById( btnLockSizesId );
+ if ( resetButton ) {
+ resetButton.on( 'click', function( evt ) {
+ resetSize( this );
+ evt.data && evt.data.preventDefault();
+ }, this.getDialog() );
+ resetButton.on( 'mouseover', function() {
+ this.addClass( 'cke_btn_over' );
+ }, resetButton );
+ resetButton.on( 'mouseout', function() {
+ this.removeClass( 'cke_btn_over' );
+ }, resetButton );
+ }
+ // Activate (Un)LockRatio button
+ if ( ratioButton ) {
+ ratioButton.on( 'click', function( evt ) {
+ var locked = switchLockRatio( this ),
+ oImageOriginal = this.originalElement,
+ width = this.getValueOf( 'info', 'txtWidth' );
+
+ if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' && width ) {
+ var height = oImageOriginal.$.height / oImageOriginal.$.width * width;
+ if ( !isNaN( height ) ) {
+ this.setValueOf( 'info', 'txtHeight', Math.round( height ) );
+ updatePreview( this );
}
}
- ]
+ evt.data && evt.data.preventDefault();
+ }, this.getDialog() );
+ ratioButton.on( 'mouseover', function() {
+ this.addClass( 'cke_btn_over' );
+ }, ratioButton );
+ ratioButton.on( 'mouseout', function() {
+ this.removeClass( 'cke_btn_over' );
+ }, ratioButton );
}
- ]
+ },
+ html: '<div>' +
+ '<a href="javascript:void(0)" tabindex="-1" title="' + editor.lang.image.lockRatio +
+ '" class="cke_btn_locked" id="' + btnLockSizesId + '" role="checkbox"><span class="cke_icon"></span><span class="cke_label">' + editor.lang.image.lockRatio + '</span></a>' +
+ '<a href="javascript:void(0)" tabindex="-1" title="' + editor.lang.image.resetSize +
+ '" class="cke_btn_reset" id="' + btnResetSizeId + '" role="button"><span class="cke_label">' + editor.lang.image.resetSize + '</span></a>' +
+ '</div>'
+ }
+ ]
+ },
+ {
+ type: 'vbox',
+ padding: 1,
+ children: [
+ {
+ type: 'text',
+ id: 'txtBorder',
+ width: '60px',
+ label: editor.lang.image.border,
+ 'default': '',
+ onKeyUp: function() {
+ updatePreview( this.getDialog() );
+ },
+ onChange: function() {
+ commitInternally.call( this, 'advanced:txtdlgGenStyle' );
+ },
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.image.validateBorder ),
+ setup: function( type, element ) {
+ if ( type == IMAGE ) {
+ var value,
+ borderStyle = element.getStyle( 'border-width' );
+ borderStyle = borderStyle && borderStyle.match( /^(\d+px)(?: \1 \1 \1)?$/ );
+ value = borderStyle && parseInt( borderStyle[ 1 ], 10 );
+ isNaN( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'border' ) );
+ this.setValue( value );
+ }
+ },
+ commit: function( type, element, internalCommit ) {
+ var value = parseInt( this.getValue(), 10 );
+ if ( type == IMAGE || type == PREVIEW ) {
+ if ( !isNaN( value ) ) {
+ element.setStyle( 'border-width', CKEDITOR.tools.cssLength( value ) );
+ element.setStyle( 'border-style', 'solid' );
+ } else if ( !value && this.isChanged() )
+ element.removeStyle( 'border' );
+
+ if ( !internalCommit && type == IMAGE )
+ element.removeAttribute( 'border' );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'border' );
+ element.removeStyle( 'border-width' );
+ element.removeStyle( 'border-style' );
+ element.removeStyle( 'border-color' );
+ }
+ }
+ },
+ {
+ type: 'text',
+ id: 'txtHSpace',
+ width: '60px',
+ label: editor.lang.image.hSpace,
+ 'default': '',
+ onKeyUp: function() {
+ updatePreview( this.getDialog() );
+ },
+ onChange: function() {
+ commitInternally.call( this, 'advanced:txtdlgGenStyle' );
+ },
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.image.validateHSpace ),
+ setup: function( type, element ) {
+ if ( type == IMAGE ) {
+ var value, marginLeftPx, marginRightPx,
+ marginLeftStyle = element.getStyle( 'margin-left' ),
+ marginRightStyle = element.getStyle( 'margin-right' );
+
+ marginLeftStyle = marginLeftStyle && marginLeftStyle.match( pxLengthRegex );
+ marginRightStyle = marginRightStyle && marginRightStyle.match( pxLengthRegex );
+ marginLeftPx = parseInt( marginLeftStyle, 10 );
+ marginRightPx = parseInt( marginRightStyle, 10 );
+
+ value = ( marginLeftPx == marginRightPx ) && marginLeftPx;
+ isNaN( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'hspace' ) );
+
+ this.setValue( value );
+ }
+ },
+ commit: function( type, element, internalCommit ) {
+ var value = parseInt( this.getValue(), 10 );
+ if ( type == IMAGE || type == PREVIEW ) {
+ if ( !isNaN( value ) ) {
+ element.setStyle( 'margin-left', CKEDITOR.tools.cssLength( value ) );
+ element.setStyle( 'margin-right', CKEDITOR.tools.cssLength( value ) );
+ } else if ( !value && this.isChanged() ) {
+ element.removeStyle( 'margin-left' );
+ element.removeStyle( 'margin-right' );
+ }
+
+ if ( !internalCommit && type == IMAGE )
+ element.removeAttribute( 'hspace' );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'hspace' );
+ element.removeStyle( 'margin-left' );
+ element.removeStyle( 'margin-right' );
+ }
+ }
+ },
+ {
+ type: 'text',
+ id: 'txtVSpace',
+ width: '60px',
+ label: editor.lang.image.vSpace,
+ 'default': '',
+ onKeyUp: function() {
+ updatePreview( this.getDialog() );
+ },
+ onChange: function() {
+ commitInternally.call( this, 'advanced:txtdlgGenStyle' );
+ },
+ validate: CKEDITOR.dialog.validate.integer( editor.lang.image.validateVSpace ),
+ setup: function( type, element ) {
+ if ( type == IMAGE ) {
+ var value, marginTopPx, marginBottomPx,
+ marginTopStyle = element.getStyle( 'margin-top' ),
+ marginBottomStyle = element.getStyle( 'margin-bottom' );
+
+ marginTopStyle = marginTopStyle && marginTopStyle.match( pxLengthRegex );
+ marginBottomStyle = marginBottomStyle && marginBottomStyle.match( pxLengthRegex );
+ marginTopPx = parseInt( marginTopStyle, 10 );
+ marginBottomPx = parseInt( marginBottomStyle, 10 );
+
+ value = ( marginTopPx == marginBottomPx ) && marginTopPx;
+ isNaN( parseInt( value, 10 ) ) && ( value = element.getAttribute( 'vspace' ) );
+ this.setValue( value );
+ }
+ },
+ commit: function( type, element, internalCommit ) {
+ var value = parseInt( this.getValue(), 10 );
+ if ( type == IMAGE || type == PREVIEW ) {
+ if ( !isNaN( value ) ) {
+ element.setStyle( 'margin-top', CKEDITOR.tools.cssLength( value ) );
+ element.setStyle( 'margin-bottom', CKEDITOR.tools.cssLength( value ) );
+ } else if ( !value && this.isChanged() ) {
+ element.removeStyle( 'margin-top' );
+ element.removeStyle( 'margin-bottom' );
+ }
+
+ if ( !internalCommit && type == IMAGE )
+ element.removeAttribute( 'vspace' );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'vspace' );
+ element.removeStyle( 'margin-top' );
+ element.removeStyle( 'margin-bottom' );
+ }
+ }
},
+ {
+ id: 'cmbAlign',
+ type: 'select',
+ widths: [ '35%', '65%' ],
+ style: 'width:90px',
+ label: editor.lang.common.align,
+ 'default': '',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.common.alignLeft, 'left' ],
+ [ editor.lang.common.alignRight, 'right' ]
+ // Backward compatible with v2 on setup when specified as attribute value,
+ // while these values are no more available as select options.
+ // [ editor.lang.image.alignAbsBottom , 'absBottom'],
+ // [ editor.lang.image.alignAbsMiddle , 'absMiddle'],
+ // [ editor.lang.image.alignBaseline , 'baseline'],
+ // [ editor.lang.image.alignTextTop , 'text-top'],
+ // [ editor.lang.image.alignBottom , 'bottom'],
+ // [ editor.lang.image.alignMiddle , 'middle'],
+ // [ editor.lang.image.alignTop , 'top']
+ ],
+ onChange: function() {
+ updatePreview( this.getDialog() );
+ commitInternally.call( this, 'advanced:txtdlgGenStyle' );
+ },
+ setup: function( type, element ) {
+ if ( type == IMAGE ) {
+ var value = element.getStyle( 'float' );
+ switch ( value ) {
+ // Ignore those unrelated values.
+ case 'inherit':
+ case 'none':
+ value = '';
+ }
+
+ !value && ( value = ( element.getAttribute( 'align' ) || '' ).toLowerCase() );
+ this.setValue( value );
+ }
+ },
+ commit: function( type, element, internalCommit ) {
+ var value = this.getValue();
+ if ( type == IMAGE || type == PREVIEW ) {
+ if ( value )
+ element.setStyle( 'float', value );
+ else
+ element.removeStyle( 'float' );
+
+ if ( !internalCommit && type == IMAGE ) {
+ value = ( element.getAttribute( 'align' ) || '' ).toLowerCase();
+ switch ( value ) {
+ // we should remove it only if it matches "left" or "right",
+ // otherwise leave it intact.
+ case 'left':
+ case 'right':
+ element.removeAttribute( 'align' );
+ }
+ }
+ } else if ( type == CLEANUP )
+ element.removeStyle( 'float' );
+
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ type: 'vbox',
+ height: '250px',
+ children: [
{
- type : 'vbox',
- height : '250px',
- children :
- [
- {
- type : 'html',
- style : 'width:95%;',
- html : '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) +'<br>'+
- '<div id="' + imagePreviewLoaderId + '" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div>'+
- '<div id="' + imagePreviewBoxId + '" class="ImagePreviewBox"><table><tr><td>'+
- '<a href="javascript:void(0)" target="_blank" onclick="return false;" id="' + previewLinkId + '">'+
- '<img id="' + previewImageId + '" alt="" /></a>' +
- ( editor.config.image_previewText ||
- 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. '+
- 'Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, '+
+ type: 'html',
+ id: 'htmlPreview',
+ style: 'width:95%;',
+ html: '<div>' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) + '<br>' +
+ '<div id="' + imagePreviewLoaderId + '" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div>' +
+ '<div class="ImagePreviewBox"><table><tr><td>' +
+ '<a href="javascript:void(0)" target="_blank" onclick="return false;" id="' + previewLinkId + '">' +
+ '<img id="' + previewImageId + '" alt="" /></a>' +
+ ( editor.config.image_previewText || 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ' +
+ 'Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, ' +
'nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.' ) +
- '</td></tr></table></div></div>'
- }
- ]
+ '</td></tr></table></div></div>'
}
]
}
+ ]
+ }
]
},
- {
- id : 'Link',
- label : editor.lang.link.title,
- padding : 0,
- elements :
- [
+ {
+ id: 'Link',
+ label: editor.lang.image.linkTab,
+ padding: 0,
+ elements: [
{
- id : 'txtUrl',
- type : 'text',
- label : editor.lang.common.url,
- style : 'width: 100%',
- 'default' : '',
- setup : function( type, element )
- {
- if ( type == LINK )
- {
- var href = element.getAttribute( '_cke_saved_href' );
- if ( !href )
- href = element.getAttribute( 'href' );
- this.setValue( href );
- }
- },
- commit : function( type, element )
- {
- if ( type == LINK )
- {
- if ( this.getValue() || this.isChanged() )
- {
- element.setAttribute( '_cke_saved_href', decodeURI( this.getValue() ) );
- element.setAttribute( 'href', 'javascript:void(0)/*' +
- CKEDITOR.tools.getNextNumber() + '*/' );
-
- if ( this.getValue() || !editor.config.image_removeLinkByEmptyURL )
- this.getDialog().addLink = true;
- }
- }
+ id: 'txtUrl',
+ type: 'text',
+ label: editor.lang.common.url,
+ style: 'width: 100%',
+ 'default': '',
+ setup: function( type, element ) {
+ if ( type == LINK ) {
+ var href = element.data( 'cke-saved-href' );
+ if ( !href )
+ href = element.getAttribute( 'href' );
+ this.setValue( href );
}
},
+ commit: function( type, element ) {
+ if ( type == LINK ) {
+ if ( this.getValue() || this.isChanged() ) {
+ var url = decodeURI( this.getValue() );
+ element.data( 'cke-saved-href', url );
+ element.setAttribute( 'href', url );
+
+ if ( this.getValue() || !editor.config.image_removeLinkByEmptyURL )
+ this.getDialog().addLink = true;
+ }
+ }
+ }
+ },
{
- type : 'button',
- id : 'browse',
- filebrowser :
- {
- action : 'Browse',
- target: 'Link:txtUrl',
- url: editor.config.filebrowserImageBrowseLinkUrl || editor.config.filebrowserBrowseUrl
- },
- style : 'float:right',
- hidden : true,
- label : editor.lang.common.browseServer
+ type: 'button',
+ id: 'browse',
+ filebrowser: {
+ action: 'Browse',
+ target: 'Link:txtUrl',
+ url: editor.config.filebrowserImageBrowseLinkUrl
},
+ style: 'float:right',
+ hidden: true,
+ label: editor.lang.common.browseServer
+ },
{
- id : 'cmbTarget',
- type : 'select',
- label : editor.lang.common.target,
- 'default' : '',
- items :
- [
- [ editor.lang.common.notSet , ''],
- [ editor.lang.common.targetNew , '_blank'],
- [ editor.lang.common.targetTop , '_top'],
- [ editor.lang.common.targetSelf , '_self'],
- [ editor.lang.common.targetParent , '_parent']
+ id: 'cmbTarget',
+ type: 'select',
+ label: editor.lang.common.target,
+ 'default': '',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.common.targetNew, '_blank' ],
+ [ editor.lang.common.targetTop, '_top' ],
+ [ editor.lang.common.targetSelf, '_self' ],
+ [ editor.lang.common.targetParent, '_parent' ]
],
- setup : function( type, element )
- {
- if ( type == LINK )
- this.setValue( element.getAttribute( 'target' ) );
- },
- commit : function( type, element )
- {
- if ( type == LINK )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'target', this.getValue() );
- }
+ setup: function( type, element ) {
+ if ( type == LINK )
+ this.setValue( element.getAttribute( 'target' ) || '' );
+ },
+ commit: function( type, element ) {
+ if ( type == LINK ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'target', this.getValue() );
}
}
+ }
]
},
- {
- id : 'Upload',
- hidden : true,
- filebrowser : 'uploadButton',
- label : editor.lang.image.upload,
- elements :
- [
+ {
+ id: 'Upload',
+ hidden: true,
+ filebrowser: 'uploadButton',
+ label: editor.lang.image.upload,
+ elements: [
{
- type : 'file',
- id : 'upload',
- label : editor.lang.image.btnUpload,
- style: 'height:40px',
- size : 38
- },
+ type: 'file',
+ id: 'upload',
+ label: editor.lang.image.btnUpload,
+ style: 'height:40px',
+ size: 38
+ },
{
- type : 'fileButton',
- id : 'uploadButton',
- filebrowser : 'info:txtUrl',
- label : editor.lang.image.btnUpload,
- 'for' : [ 'Upload', 'upload' ]
- }
+ type: 'fileButton',
+ id: 'uploadButton',
+ filebrowser: 'info:txtUrl',
+ label: editor.lang.image.btnUpload,
+ 'for': [ 'Upload', 'upload' ]
+ }
]
},
- {
- id : 'advanced',
- label : editor.lang.common.advancedTab,
- elements :
- [
+ {
+ id: 'advanced',
+ label: editor.lang.common.advancedTab,
+ elements: [
{
- type : 'hbox',
- widths : [ '50%', '25%', '25%' ],
- children :
- [
- {
- type : 'text',
- id : 'linkId',
- label : editor.lang.common.id,
- setup : function( type, element )
- {
- if ( type == IMAGE )
- this.setValue( element.getAttribute( 'id' ) );
- },
- commit : function( type, element )
- {
- if ( type == IMAGE )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'id', this.getValue() );
- }
- }
- },
- {
- id : 'cmbLangDir',
- type : 'select',
- style : 'width : 100px;',
- label : editor.lang.common.langDir,
- 'default' : '',
- items :
- [
- [ editor.lang.common.notSet, '' ],
- [ editor.lang.common.langDirLtr, 'ltr' ],
- [ editor.lang.common.langDirRtl, 'rtl' ]
- ],
- setup : function( type, element )
- {
- if ( type == IMAGE )
- this.setValue( element.getAttribute( 'dir' ) );
- },
- commit : function( type, element )
- {
- if ( type == IMAGE )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'dir', this.getValue() );
- }
- }
- },
- {
- type : 'text',
- id : 'txtLangCode',
- label : editor.lang.common.langCode,
- 'default' : '',
- setup : function( type, element )
- {
- if ( type == IMAGE )
- this.setValue( element.getAttribute( 'lang' ) );
- },
- commit : function( type, element )
- {
- if ( type == IMAGE )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'lang', this.getValue() );
- }
- }
+ type: 'hbox',
+ widths: [ '50%', '25%', '25%' ],
+ children: [
+ {
+ type: 'text',
+ id: 'linkId',
+ label: editor.lang.common.id,
+ setup: function( type, element ) {
+ if ( type == IMAGE )
+ this.setValue( element.getAttribute( 'id' ) );
+ },
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'id', this.getValue() );
}
- ]
+ }
},
- {
- type : 'text',
- id : 'txtGenLongDescr',
- label : editor.lang.common.longDescr,
- setup : function( type, element )
{
+ id: 'cmbLangDir',
+ type: 'select',
+ style: 'width : 100px;',
+ label: editor.lang.common.langDir,
+ 'default': '',
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.common.langDirLtr, 'ltr' ],
+ [ editor.lang.common.langDirRtl, 'rtl' ]
+ ],
+ setup: function( type, element ) {
if ( type == IMAGE )
- this.setValue( element.getAttribute( 'longDesc' ) );
+ this.setValue( element.getAttribute( 'dir' ) );
},
- commit : function( type, element )
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'dir', this.getValue() );
+ }
+ }
+ },
{
+ type: 'text',
+ id: 'txtLangCode',
+ label: editor.lang.common.langCode,
+ 'default': '',
+ setup: function( type, element ) {
if ( type == IMAGE )
- {
+ this.setValue( element.getAttribute( 'lang' ) );
+ },
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'longDesc', this.getValue() );
+ element.setAttribute( 'lang', this.getValue() );
}
}
- },
+ }
+ ]
+ },
{
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
- {
- type : 'text',
- id : 'txtGenClass',
- label : editor.lang.common.cssClass,
- 'default' : '',
- setup : function( type, element )
- {
- if ( type == IMAGE )
- this.setValue( element.getAttribute( 'class' ) );
- },
- commit : function( type, element )
- {
- if ( type == IMAGE )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'class', this.getValue() );
- }
- }
- },
- {
- type : 'text',
- id : 'txtGenTitle',
- label : editor.lang.common.advisoryTitle,
- 'default' : '',
- onChange : function()
- {
- updatePreview( this.getDialog() );
- },
- setup : function( type, element )
- {
- if ( type == IMAGE )
- this.setValue( element.getAttribute( 'title' ) );
- },
- commit : function( type, element )
- {
- if ( type == IMAGE )
- {
- if ( this.getValue() || this.isChanged() )
- element.setAttribute( 'title', this.getValue() );
- }
- else if ( type == PREVIEW )
- {
- element.setAttribute( 'title', this.getValue() );
- }
- else if ( type == CLEANUP )
- {
- element.removeAttribute( 'title' );
- }
- }
- }
- ]
+ type: 'text',
+ id: 'txtGenLongDescr',
+ label: editor.lang.common.longDescr,
+ setup: function( type, element ) {
+ if ( type == IMAGE )
+ this.setValue( element.getAttribute( 'longDesc' ) );
},
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'longDesc', this.getValue() );
+ }
+ }
+ },
{
- type : 'text',
- id : 'txtdlgGenStyle',
- label : editor.lang.common.cssStyle,
- 'default' : '',
- setup : function( type, element )
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
{
+ type: 'text',
+ id: 'txtGenClass',
+ label: editor.lang.common.cssClass,
+ 'default': '',
+ setup: function( type, element ) {
if ( type == IMAGE )
- {
- var genStyle = element.getAttribute( 'style' );
- if ( !genStyle && element.$.style.cssText )
- genStyle = element.$.style.cssText;
- this.setValue( genStyle );
-
- var height = element.$.style.height,
- width = element.$.style.width,
- aMatchH = ( height ? height : '' ).match( regexGetSize ),
- aMatchW = ( width ? width : '').match( regexGetSize );
-
- this.attributesInStyle =
- {
- height : !!aMatchH,
- width : !!aMatchW
- };
- }
+ this.setValue( element.getAttribute( 'class' ) );
},
- onChange : function ()
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'class', this.getValue() );
+ }
+ }
+ },
{
- commitInternally.call( this,
- [ 'info:cmbFloat', 'info:cmbAlign',
- 'info:txtVSpace', 'info:txtHSpace',
- 'info:txtBorder',
- 'info:txtWidth', 'info:txtHeight' ] );
- updatePreview( this );
+ type: 'text',
+ id: 'txtGenTitle',
+ label: editor.lang.common.advisoryTitle,
+ 'default': '',
+ onChange: function() {
+ updatePreview( this.getDialog() );
},
- commit : function( type, element )
- {
- if ( type == IMAGE && ( this.getValue() || this.isChanged() ) )
- {
- element.setAttribute( 'style', this.getValue() );
+ setup: function( type, element ) {
+ if ( type == IMAGE )
+ this.setValue( element.getAttribute( 'title' ) );
+ },
+ commit: function( type, element ) {
+ if ( type == IMAGE ) {
+ if ( this.getValue() || this.isChanged() )
+ element.setAttribute( 'title', this.getValue() );
+ } else if ( type == PREVIEW ) {
+ element.setAttribute( 'title', this.getValue() );
+ } else if ( type == CLEANUP ) {
+ element.removeAttribute( 'title' );
}
}
}
+ ]
+ },
+ {
+ type: 'text',
+ id: 'txtdlgGenStyle',
+ label: editor.lang.common.cssStyle,
+ validate: CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ),
+ 'default': '',
+ setup: function( type, element ) {
+ if ( type == IMAGE ) {
+ var genStyle = element.getAttribute( 'style' );
+ if ( !genStyle && element.$.style.cssText )
+ genStyle = element.$.style.cssText;
+ this.setValue( genStyle );
+
+ var height = element.$.style.height,
+ width = element.$.style.width,
+ aMatchH = ( height ? height : '' ).match( regexGetSize ),
+ aMatchW = ( width ? width : '' ).match( regexGetSize );
+
+ this.attributesInStyle = {
+ height: !!aMatchH,
+ width: !!aMatchW
+ };
+ }
+ },
+ onChange: function() {
+ commitInternally.call( this, [ 'info:cmbFloat', 'info:cmbAlign',
+ 'info:txtVSpace', 'info:txtHSpace',
+ 'info:txtBorder',
+ 'info:txtWidth', 'info:txtHeight' ] );
+ updatePreview( this );
+ },
+ commit: function( type, element ) {
+ if ( type == IMAGE && ( this.getValue() || this.isChanged() ) ) {
+ element.setAttribute( 'style', this.getValue() );
+ }
+ }
+ }
]
}
- ]
+ ]
+ };
};
- };
- CKEDITOR.dialog.add( 'image', function( editor )
- {
- return imageDialog( editor, 'image' );
- });
+ CKEDITOR.dialog.add( 'image', function( editor ) {
+ return imageDialog( editor, 'image' );
+ });
- CKEDITOR.dialog.add( 'imagebutton', function( editor )
- {
- return imageDialog( editor, 'imagebutton' );
- });
+ CKEDITOR.dialog.add( 'imagebutton', function( editor ) {
+ return imageDialog( editor, 'imagebutton' );
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/image/icons/image.png b/devel/third-party/ckeditor/plugins/image/icons/image.png
new file mode 100644
index 0000000..3e07ac8
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/image/icons/image.png differ
diff --git a/share/static/RichText/skins/kama/images/noimage.png b/devel/third-party/ckeditor/plugins/image/images/noimage.png
similarity index 100%
rename from share/static/RichText/skins/kama/images/noimage.png
rename to devel/third-party/ckeditor/plugins/image/images/noimage.png
diff --git a/devel/third-party/ckeditor/plugins/image/lang/af.js b/devel/third-party/ckeditor/plugins/image/lang/af.js
new file mode 100644
index 0000000..1ac785d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/af.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'af', {
+ alertUrl: 'Gee URL van afbeelding.',
+ alt: 'Alternatiewe teks',
+ border: 'Rand',
+ btnUpload: 'Stuur na bediener',
+ button2Img: 'Wil u die geselekteerde afbeeldingsknop vervang met \'n eenvoudige afbeelding?',
+ hSpace: 'HSpasie',
+ img2Button: 'Wil u die geselekteerde afbeelding vervang met \'n afbeeldingsknop?',
+ infoTab: 'Afbeelding informasie',
+ linkTab: 'Skakel',
+ lockRatio: 'Vaste proporsie',
+ menu: 'Afbeelding eienskappe',
+ resetSize: 'Herstel grootte',
+ title: 'Afbeelding eienskappe',
+ titleButton: 'Afbeeldingsknop eienskappe',
+ upload: 'Oplaai',
+ urlMissing: 'Die URL na die afbeelding ontbreek.',
+ vSpace: 'VSpasie',
+ validateBorder: 'Rand moet \'n heelgetal wees.',
+ validateHSpace: 'HSpasie moet \'n heelgetal wees.',
+ validateVSpace: 'VSpasie moet \'n heelgetal wees.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ar.js b/devel/third-party/ckeditor/plugins/image/lang/ar.js
new file mode 100644
index 0000000..cb90a1c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ar.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ar', {
+ alertUrl: 'ÙØ¶ÙØ§Ù Ø£ÙØªØ¨ اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ØªÙØ¬Ø¯ عÙÙÙ ÙØ°Ù Ø§ÙØµÙرة.',
+ alt: 'عÙÙØ§Ù Ø§ÙØµÙرة',
+ border: 'سÙ
Ù Ø§ÙØØ¯ÙØ¯',
+ btnUpload: 'أرسÙÙØ§ ÙÙØ®Ø§Ø¯Ù
',
+ button2Img: 'ÙÙ ØªØ±ÙØ¯ تØÙÙ٠زر Ø§ÙØµÙرة اÙÙ
ختار Ø¥ÙÙ ØµÙØ±Ø© Ø¨Ø³ÙØ·Ø©Ø',
+ hSpace: 'تباعد Ø£ÙÙÙ',
+ img2Button: 'ÙÙ ØªØ±ÙØ¯ تØÙÙÙ Ø§ÙØµÙرة اÙÙ
ختارة Ø¥Ù٠زر ØµÙØ±Ø©Ø',
+ infoTab: 'Ù
عÙÙÙ
ات Ø§ÙØµÙرة',
+ linkTab: 'Ø§ÙØ±Ø§Ø¨Ø·',
+ lockRatio: 'ØªÙØ§Ø³Ù Ø§ÙØØ¬Ù
',
+ menu: 'خصائص Ø§ÙØµÙرة',
+ resetSize: 'إستعادة Ø§ÙØØ¬Ù
Ø§ÙØ£ØµÙÙ',
+ title: 'خصائص Ø§ÙØµÙرة',
+ titleButton: 'خصائص زر Ø§ÙØµÙرة',
+ upload: 'Ø±ÙØ¹',
+ urlMissing: 'عÙÙØ§Ù Ù
صدر Ø§ÙØµÙرة Ù
ÙÙÙØ¯',
+ vSpace: 'تباعد عÙ
ÙØ¯Ù',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/bg.js b/devel/third-party/ckeditor/plugins/image/lang/bg.js
new file mode 100644
index 0000000..97099b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/bg.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'bg', {
+ alertUrl: 'ÐолÑ, вÑведеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ Ð´Ð¾ изобÑажениеÑо',
+ alt: 'ÐлÑеÑнаÑивен ÑекÑÑ',
+ border: 'Рамка',
+ btnUpload: 'ÐзпÑаÑи Ñ Ð½Ð° ÑÑÑвÑÑа',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'ХоÑизонÑален оÑÑÑÑп',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'ÐнÑо за Ñнимка',
+ linkTab: 'ÐÑÑзка',
+ lockRatio: 'ÐаклÑÑване на ÑÑоÑноÑениеÑо',
+ menu: 'ÐаÑÑÑойки за Ñнимка',
+ resetSize: 'ÐÑлиÑане на ÑазмеÑ',
+ title: 'ÐаÑÑÑойки за Ñнимка',
+ titleButton: 'ÐаÑÑойки за бÑÑон за Ñнимка',
+ upload: 'ÐаÑване',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'ÐеÑÑикален оÑÑÑÑп',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/bn.js b/devel/third-party/ckeditor/plugins/image/lang/bn.js
new file mode 100644
index 0000000..2cf28bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/bn.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'bn', {
+ alertUrl: 'à¦
নà§à¦à§à¦°à¦¹à¦ à¦à¦°à§ à¦à¦¬à¦¿à¦° URL à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
+ alt: 'বিà¦à¦²à§à¦ª à¦à§à¦à§à¦¸à¦',
+ border: 'বরà§à¦¡à¦¾à¦°',
+ btnUpload: 'à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'à¦à¦¬à¦¿à¦° তথà§à¦¯',
+ linkTab: 'লিà¦à¦',
+ lockRatio: 'à¦
নà§à¦ªà¦¾à¦¤ লঠà¦à¦°',
+ menu: 'à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ resetSize: 'সাà¦à¦ পà§à¦°à§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à§ ফিরিà§à§ দাà¦',
+ title: 'à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ titleButton: 'à¦à¦¬à¦¿ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ upload: 'à¦à¦ªà¦²à§à¦¡',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/bs.js b/devel/third-party/ckeditor/plugins/image/lang/bs.js
new file mode 100644
index 0000000..38de24d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/bs.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'bs', {
+ alertUrl: 'Molimo ukucajte URL od slike.',
+ alt: 'Tekst na slici',
+ border: 'Okvir',
+ btnUpload: 'Å alji na server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Info slike',
+ linkTab: 'Link',
+ lockRatio: 'Zakljuèaj odnos',
+ menu: 'Svojstva slike',
+ resetSize: 'Resetuj dimenzije',
+ title: 'Svojstva slike',
+ titleButton: 'Image Button Properties', // MISSING
+ upload: 'Å alji',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ca.js b/devel/third-party/ckeditor/plugins/image/lang/ca.js
new file mode 100644
index 0000000..2ee2b13
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ca.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ca', {
+ alertUrl: 'Si us plau, escriviu la URL de la imatge',
+ alt: 'Text alternatiu',
+ border: 'Vora',
+ btnUpload: 'Envia-la al servidor',
+ button2Img: 'Voleu transformar el botó d\'imatge seleccionat en una simple imatge?',
+ hSpace: 'Espaiat horit.',
+ img2Button: 'Voleu transformar la imatge seleccionada en un botó d\'imatge?',
+ infoTab: 'Informació de la imatge',
+ linkTab: 'Enllaç',
+ lockRatio: 'Bloqueja les proporcions',
+ menu: 'Propietats de la imatge',
+ resetSize: 'Restaura la mida',
+ title: 'Propietats de la imatge',
+ titleButton: 'Propietats del botó d\'imatge',
+ upload: 'Puja',
+ urlMissing: 'Falta la URL de la imatge.',
+ vSpace: 'Espaiat vert.',
+ validateBorder: 'La vora ha de ser un nombre enter.',
+ validateHSpace: 'HSpace ha de ser un nombre enter.',
+ validateVSpace: 'VSpace ha de ser un nombre enter.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/cs.js b/devel/third-party/ckeditor/plugins/image/lang/cs.js
new file mode 100644
index 0000000..aa2639e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/cs.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'cs', {
+ alertUrl: 'Zadejte prosÃm URL obrázku',
+ alt: 'Alternativnà text',
+ border: 'Okraje',
+ btnUpload: 'Odeslat na server',
+ button2Img: 'SkuteÄnÄ chcete pÅevést zvolené obrázkové tlaÄÃtko na obyÄejný obrázek?',
+ hSpace: 'Horizontálnà mezera',
+ img2Button: 'SkuteÄnÄ chcete pÅevést zvolený obrázek na obrázkové tlaÄÃtko?',
+ infoTab: 'Informace o obrázku',
+ linkTab: 'Odkaz',
+ lockRatio: 'Zámek',
+ menu: 'Vlastnosti obrázku',
+ resetSize: 'Původnà velikost',
+ title: 'Vlastnosti obrázku',
+ titleButton: 'Vlastnostà obrázkového tlaÄÃtka',
+ upload: 'Odeslat',
+ urlMissing: 'Zadané URL zdroje obrázku nebylo nalezeno.',
+ vSpace: 'Vertikálnà mezera',
+ validateBorder: 'Okraj musà být nastaven v celých ÄÃslech.',
+ validateHSpace: 'Horizontálnà mezera musà být nastavena v celých ÄÃslech.',
+ validateVSpace: 'Vertikálnà mezera musà být nastavena v celých ÄÃslech.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/cy.js b/devel/third-party/ckeditor/plugins/image/lang/cy.js
new file mode 100644
index 0000000..5d23160
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/cy.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'cy', {
+ alertUrl: 'Rhowch URL y ddelwedd',
+ alt: 'Testun Amgen',
+ border: 'Ymyl',
+ btnUpload: 'Anfon i\'r Gweinydd',
+ button2Img: 'Ydych am drawsffurfio\'r botwm ddelwedd hwn ar ddelwedd syml?',
+ hSpace: 'BwlchLl',
+ img2Button: 'Ydych am drawsffurfio\'r ddelwedd hon ar fotwm delwedd?',
+ infoTab: 'Gwyb Delwedd',
+ linkTab: 'Dolen',
+ lockRatio: 'Cloi Cymhareb',
+ menu: 'Priodweddau Delwedd',
+ resetSize: 'Ailosod Maint',
+ title: 'Priodweddau Delwedd',
+ titleButton: 'Priodweddau Botwm Delwedd',
+ upload: 'lanlwytho',
+ urlMissing: 'URL gwreiddiol y ddelwedd ar goll.',
+ vSpace: 'BwlchF',
+ validateBorder: 'Rhaid i\'r ymyl fod yn gyfanrif.',
+ validateHSpace: 'Rhaid i\'r HSpace fod yn gyfanrif.',
+ validateVSpace: 'Rhaid i\'r VSpace fod yn gyfanrif.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/da.js b/devel/third-party/ckeditor/plugins/image/lang/da.js
new file mode 100644
index 0000000..e45960d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/da.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'da', {
+ alertUrl: 'Indtast stien til billedet',
+ alt: 'Alternativ tekst',
+ border: 'Ramme',
+ btnUpload: 'Upload fil til serveren',
+ button2Img: 'Vil du lave billedknappen om til et almindeligt billede?',
+ hSpace: 'Vandret margen',
+ img2Button: 'Vil du lave billedet om til en billedknap?',
+ infoTab: 'Generelt',
+ linkTab: 'Hyperlink',
+ lockRatio: 'Lås størrelsesforhold',
+ menu: 'Egenskaber for billede',
+ resetSize: 'Nulstil størrelse',
+ title: 'Egenskaber for billede',
+ titleButton: 'Egenskaber for billedknap',
+ upload: 'Upload',
+ urlMissing: 'Kilde på billed-URL mangler',
+ vSpace: 'Lodret margen',
+ validateBorder: 'Kant skal være et helt nummer.',
+ validateHSpace: 'HSpace skal være et helt nummer.',
+ validateVSpace: 'VSpace skal være et helt nummer.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/de.js b/devel/third-party/ckeditor/plugins/image/lang/de.js
new file mode 100644
index 0000000..cffdab5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/de.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'de', {
+ alertUrl: 'Bitte geben Sie die Bild-URL an',
+ alt: 'Alternativer Text',
+ border: 'Rahmen',
+ btnUpload: 'Zum Server senden',
+ button2Img: 'Möchten Sie den gewählten Bild-Button in ein einfaches Bild umwandeln?',
+ hSpace: 'Horizontal-Abstand',
+ img2Button: 'Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?',
+ infoTab: 'Bild-Info',
+ linkTab: 'Link',
+ lockRatio: 'GröÃenverhältnis beibehalten',
+ menu: 'Bild-Eigenschaften',
+ resetSize: 'GröÃe zurücksetzen',
+ title: 'Bild-Eigenschaften',
+ titleButton: 'Bildbutton-Eigenschaften',
+ upload: 'Hochladen',
+ urlMissing: 'Imagequelle URL fehlt.',
+ vSpace: 'Vertikal-Abstand',
+ validateBorder: 'Rahmen muà eine ganze Zahl sein.',
+ validateHSpace: 'Horizontal-Abstand muà eine ganze Zahl sein.',
+ validateVSpace: 'Vertikal-Abstand muà eine ganze Zahl sein.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/el.js b/devel/third-party/ckeditor/plugins/image/lang/el.js
new file mode 100644
index 0000000..914483f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/el.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'el', {
+ alertUrl: 'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏÎ·Ï ÎµÎ¹ÎºÏναÏ',
+ alt: 'ÎναλλακÏÎ¹ÎºÏ Îείμενο',
+ border: 'ΠεÏίγÏαμμα',
+ btnUpload: 'ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή',
+ button2Img: 'ÎÎλεÏε να μεÏαÏÏÎÏεÏε Ïο εÏιλεγμÎνο κοÏ
μÏί εικÏÎ½Î±Ï Ïε αÏλή εικÏνα;',
+ hSpace: 'ÎÏιζÏνÏιο ÎιάÏÏημα',
+ img2Button: 'ÎÎλεÏε να μεÏαμοÏÏÏÏεÏε Ïην εÏιλεγμÎνη εικÏνα ÏοÏ
είναι ÏÎ¬Î½Ï Ïε Îνα κοÏ
μÏί;',
+ infoTab: 'ΠληÏοÏοÏÎ¯ÎµÏ ÎικÏναÏ',
+ linkTab: 'ΣÏνδεÏμοÏ',
+ lockRatio: 'ÎλείδÏμα ÎναλογίαÏ',
+ menu: 'ÎδιÏÏηÏÎµÏ ÎικÏναÏ',
+ resetSize: 'ÎÏαναÏοÏά ÎÏÏÎ¹ÎºÎ¿Ï ÎεγÎθοÏ
Ï',
+ title: 'ÎδιÏÏηÏÎµÏ ÎικÏναÏ',
+ titleButton: 'ÎδιÏÏηÏÎµÏ ÎοÏ
μÏÎ¹Î¿Ï ÎικÏναÏ',
+ upload: 'ÎνÎβαÏμα',
+ urlMissing: 'Το URL ÏÎ·Î³Î®Ï Î³Î¹Î± Ïην εικÏνα λείÏει.',
+ vSpace: 'ÎάθεÏο ÎιάÏÏημα',
+ validateBorder: 'Το ÏεÏίγÏαμμα ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÎºÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ.',
+ validateHSpace: 'Το HSpace ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÎºÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ.',
+ validateVSpace: 'Το VSpace ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÎºÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/en-au.js b/devel/third-party/ckeditor/plugins/image/lang/en-au.js
new file mode 100644
index 0000000..c75686f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/en-au.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'en-au', {
+ alertUrl: 'Please type the image URL',
+ alt: 'Alternative Text',
+ border: 'Border',
+ btnUpload: 'Send it to the Server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?',
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?',
+ infoTab: 'Image Info',
+ linkTab: 'Link',
+ lockRatio: 'Lock Ratio',
+ menu: 'Image Properties',
+ resetSize: 'Reset Size',
+ title: 'Image Properties',
+ titleButton: 'Image Button Properties',
+ upload: 'Upload',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/en-ca.js b/devel/third-party/ckeditor/plugins/image/lang/en-ca.js
new file mode 100644
index 0000000..2889888
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/en-ca.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'en-ca', {
+ alertUrl: 'Please type the image URL',
+ alt: 'Alternative Text',
+ border: 'Border',
+ btnUpload: 'Send it to the Server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?',
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?',
+ infoTab: 'Image Info',
+ linkTab: 'Link',
+ lockRatio: 'Lock Ratio',
+ menu: 'Image Properties',
+ resetSize: 'Reset Size',
+ title: 'Image Properties',
+ titleButton: 'Image Button Properties',
+ upload: 'Upload',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/en-gb.js b/devel/third-party/ckeditor/plugins/image/lang/en-gb.js
new file mode 100644
index 0000000..aa47e87
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/en-gb.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'en-gb', {
+ alertUrl: 'Please type the image URL',
+ alt: 'Alternative Text',
+ border: 'Border',
+ btnUpload: 'Send it to the Server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?',
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?',
+ infoTab: 'Image Info',
+ linkTab: 'Link',
+ lockRatio: 'Lock Ratio',
+ menu: 'Image Properties',
+ resetSize: 'Reset Size',
+ title: 'Image Properties',
+ titleButton: 'Image Button Properties',
+ upload: 'Upload',
+ urlMissing: 'Image source URL is missing.',
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.',
+ validateHSpace: 'HSpace must be a whole number.',
+ validateVSpace: 'VSpace must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/en.js b/devel/third-party/ckeditor/plugins/image/lang/en.js
new file mode 100644
index 0000000..672a147
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/en.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'en', {
+ alertUrl: 'Please type the image URL',
+ alt: 'Alternative Text',
+ border: 'Border',
+ btnUpload: 'Send it to the Server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?',
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?',
+ infoTab: 'Image Info',
+ linkTab: 'Link',
+ lockRatio: 'Lock Ratio',
+ menu: 'Image Properties',
+ resetSize: 'Reset Size',
+ title: 'Image Properties',
+ titleButton: 'Image Button Properties',
+ upload: 'Upload',
+ urlMissing: 'Image source URL is missing.',
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.',
+ validateHSpace: 'HSpace must be a whole number.',
+ validateVSpace: 'VSpace must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/eo.js b/devel/third-party/ckeditor/plugins/image/lang/eo.js
new file mode 100644
index 0000000..def4918
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/eo.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'eo', {
+ alertUrl: 'Bonvolu tajpi la retadreson de la bildo',
+ alt: 'AnstataÅiga Teksto',
+ border: 'Bordero',
+ btnUpload: 'Sendu al Servilo',
+ button2Img: 'Äu vi volas transformi la selektitan bildbutonon en simplan bildon?',
+ hSpace: 'Horizontala Spaco',
+ img2Button: 'Äu vi volas transformi la selektitan bildon en bildbutonon?',
+ infoTab: 'Informoj pri Bildo',
+ linkTab: 'Ligilo',
+ lockRatio: 'Konservi Proporcion',
+ menu: 'Atributoj de Bildo',
+ resetSize: 'Origina Grando',
+ title: 'Atributoj de Bildo',
+ titleButton: 'Bildbutonaj Atributoj',
+ upload: 'AlÅuti',
+ urlMissing: 'La fontretadreso de la bildo mankas.',
+ vSpace: 'Vertikala Spaco',
+ validateBorder: 'La bordero devas esti entjera nombro.',
+ validateHSpace: 'La horizontala spaco devas esti entjera nombro.',
+ validateVSpace: 'La vertikala spaco devas esti entjera nombro.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/es.js b/devel/third-party/ckeditor/plugins/image/lang/es.js
new file mode 100644
index 0000000..82a83a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/es.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'es', {
+ alertUrl: 'Por favor escriba la URL de la imagen',
+ alt: 'Texto Alternativo',
+ border: 'Borde',
+ btnUpload: 'Enviar al Servidor',
+ button2Img: '¿Desea convertir el botón de imagen en una simple imagen?',
+ hSpace: 'Esp.Horiz',
+ img2Button: '¿Desea convertir la imagen en un botón de imagen?',
+ infoTab: 'Información de Imagen',
+ linkTab: 'VÃnculo',
+ lockRatio: 'Proporcional',
+ menu: 'Propiedades de Imagen',
+ resetSize: 'Tamaño Original',
+ title: 'Propiedades de Imagen',
+ titleButton: 'Propiedades de Botón de Imagen',
+ upload: 'Cargar',
+ urlMissing: 'Debe indicar la URL de la imagen.',
+ vSpace: 'Esp.Vert',
+ validateBorder: 'El borde debe ser un número.',
+ validateHSpace: 'El espaciado horizontal debe ser un número.',
+ validateVSpace: 'El espaciado vertical debe ser un número.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/et.js b/devel/third-party/ckeditor/plugins/image/lang/et.js
new file mode 100644
index 0000000..4c84474
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/et.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'et', {
+ alertUrl: 'Palun kirjuta pildi URL',
+ alt: 'Alternatiivne tekst',
+ border: 'Joon',
+ btnUpload: 'Saada serverisse',
+ button2Img: 'Kas tahad teisendada valitud pildiga nupu tavaliseks pildiks?',
+ hSpace: 'H. vaheruum',
+ img2Button: 'Kas tahad teisendada valitud tavalise pildi pildiga nupuks?',
+ infoTab: 'Pildi info',
+ linkTab: 'Link',
+ lockRatio: 'Lukusta kuvasuhe',
+ menu: 'Pildi omadused',
+ resetSize: 'Lähtesta suurus',
+ title: 'Pildi omadused',
+ titleButton: 'Piltnupu omadused',
+ upload: 'Lae üles',
+ urlMissing: 'Pildi lähte-URL on puudu.',
+ vSpace: 'V. vaheruum',
+ validateBorder: 'Ãärise laius peab olema täisarv.',
+ validateHSpace: 'Horisontaalne vaheruum peab olema täisarv.',
+ validateVSpace: 'Vertikaalne vaheruum peab olema täisarv.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/eu.js b/devel/third-party/ckeditor/plugins/image/lang/eu.js
new file mode 100644
index 0000000..f4b6a80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/eu.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'eu', {
+ alertUrl: 'Mesedez Irudiaren URLa idatzi',
+ alt: 'Ordezko Testua',
+ border: 'Ertza',
+ btnUpload: 'Zerbitzarira bidalia',
+ button2Img: 'Aukeratutako irudi botoia, irudi normal batean eraldatu nahi duzu?',
+ hSpace: 'HSpace',
+ img2Button: 'Aukeratutako irudia, irudi botoi batean eraldatu nahi duzu?',
+ infoTab: 'Irudi informazioa',
+ linkTab: 'Esteka',
+ lockRatio: 'Erlazioa Blokeatu',
+ menu: 'Irudi Ezaugarriak',
+ resetSize: 'Tamaina Berrezarri',
+ title: 'Irudi Ezaugarriak',
+ titleButton: 'Irudi Botoiaren Ezaugarriak',
+ upload: 'Gora Kargatu',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/fa.js b/devel/third-party/ckeditor/plugins/image/lang/fa.js
new file mode 100644
index 0000000..af42f94
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/fa.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'fa', {
+ alertUrl: 'ÙØ·Ùا URL تصÙÛØ± را بÙÙÛØ³Ûد',
+ alt: 'Ù
ت٠جاÛگزÛÙ',
+ border: 'ÙØ¨Ù',
+ btnUpload: 'Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª',
+ button2Img: 'Ø¢ÛØ§ Ù
اÛÙÛØ¯ از ÛÚ© تصÙÛØ± ساد٠رÙÛ Ø¯Ú©Ù
٠تصÙÛØ±Û Ø§ÙØªØ®Ø§Ø¨ Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø',
+ hSpace: 'ÙØ§ØµÙÙÙ´ اÙÙÛ',
+ img2Button: 'Ø¢ÛØ§ Ù
اÛÙÛØ¯ از ÛÚ© دکÙ
٠تصÙÛØ±Û رÙÛ ØªØµÙÛØ± Ø§ÙØªØ®Ø§Ø¨ Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø',
+ infoTab: 'Ø§Ø·ÙØ§Ø¹Ø§Øª تصÙÛØ±',
+ linkTab: 'Ù¾ÛÙÙØ¯',
+ lockRatio: 'ÙÙÙ Ú©Ø±Ø¯Ù ÙØ³Ø¨Øª',
+ menu: 'ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±',
+ resetSize: 'Ø¨Ø§Ø²ÙØ´Ø§ÙÛ Ø§ÙØ¯Ø§Ø²Ù',
+ title: 'ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±',
+ titleButton: 'ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ تصÙÛØ±Û',
+ upload: 'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',
+ urlMissing: 'آدرس URL اصÙÛ ØªØµÙÛØ± ÛØ§Ùت ÙØ´Ø¯.',
+ vSpace: 'ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û',
+ validateBorder: 'Ù
ÙØ¯Ø§Ø± Ø®Ø·ÙØ· Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ validateHSpace: 'Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø§ÙÙÛ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ validateVSpace: 'Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø¹Ù
ÙØ¯Û Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/fi.js b/devel/third-party/ckeditor/plugins/image/lang/fi.js
new file mode 100644
index 0000000..f9bd12c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/fi.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'fi', {
+ alertUrl: 'Kirjoita kuvan osoite (URL)',
+ alt: 'Vaihtoehtoinen teksti',
+ border: 'Kehys',
+ btnUpload: 'Lähetä palvelimelle',
+ button2Img: 'Haluatko muuntaa valitun kuvanäppäimen kuvaksi?',
+ hSpace: 'Vaakatila',
+ img2Button: 'Haluatko muuntaa valitun kuvan kuvanäppäimeksi?',
+ infoTab: 'Kuvan tiedot',
+ linkTab: 'Linkki',
+ lockRatio: 'Lukitse suhteet',
+ menu: 'Kuvan ominaisuudet',
+ resetSize: 'Alkuperäinen koko',
+ title: 'Kuvan ominaisuudet',
+ titleButton: 'Kuvapainikkeen ominaisuudet',
+ upload: 'Lisää kuva',
+ urlMissing: 'Kuvan lähdeosoite puuttuu.',
+ vSpace: 'Pystytila',
+ validateBorder: 'Kehyksen täytyy olla kokonaisluku.',
+ validateHSpace: 'HSpace-määrityksen täytyy olla kokonaisluku.',
+ validateVSpace: 'VSpace-määrityksen täytyy olla kokonaisluku.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/fo.js b/devel/third-party/ckeditor/plugins/image/lang/fo.js
new file mode 100644
index 0000000..4fd63de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/fo.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'fo', {
+ alertUrl: 'Rita slóðina til myndina',
+ alt: 'Alternativur tekstur',
+ border: 'Bordi',
+ btnUpload: 'Send til ambætaran',
+ button2Img: 'Skal valdi myndaknøttur gerast til vanliga mynd?',
+ hSpace: 'Høgri breddi',
+ img2Button: 'Skal valda mynd gerast til myndaknøtt?',
+ infoTab: 'Myndaupplýsingar',
+ linkTab: 'Tilknýti',
+ lockRatio: 'Læs lutfallið',
+ menu: 'Myndaeginleikar',
+ resetSize: 'Upprunastødd',
+ title: 'Myndaeginleikar',
+ titleButton: 'Eginleikar fyri myndaknøtt',
+ upload: 'Send',
+ urlMissing: 'URL til mynd manglar.',
+ vSpace: 'Vinstri breddi',
+ validateBorder: 'Bordi má vera eitt heiltal.',
+ validateHSpace: 'HSpace má vera eitt heiltal.',
+ validateVSpace: 'VSpace má vera eitt heiltal.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/image/lang/fr-ca.js
new file mode 100644
index 0000000..f4bdfeb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/fr-ca.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'fr-ca', {
+ alertUrl: 'Veuillez saisir l\'URL de l\'image',
+ alt: 'Texte de remplacement',
+ border: 'Bordure',
+ btnUpload: 'Envoyer sur le serveur',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'Espacement horizontal',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Informations sur l\'image',
+ linkTab: 'Lien',
+ lockRatio: 'Garder les proportions',
+ menu: 'Propriétés de l\'image',
+ resetSize: 'Taille originale',
+ title: 'Propriétés de l\'image',
+ titleButton: 'Propriétés du bouton image',
+ upload: 'Télécharger',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'Espacement vertical',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/fr.js b/devel/third-party/ckeditor/plugins/image/lang/fr.js
new file mode 100644
index 0000000..351c8d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/fr.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'fr', {
+ alertUrl: 'Veuillez entrer l\'adresse de l\'image',
+ alt: 'Texte de remplacement',
+ border: 'Bordure',
+ btnUpload: 'Envoyer sur le serveur',
+ button2Img: 'Voulez-vous transformer le bouton image sélectionné en simple image?',
+ hSpace: 'Espacement horizontal',
+ img2Button: 'Voulez-vous transformer l\'image en bouton image?',
+ infoTab: 'Informations sur l\'image',
+ linkTab: 'Lien',
+ lockRatio: 'Conserver les proportions',
+ menu: 'Propriétés de l\'image',
+ resetSize: 'Taille d\'origine',
+ title: 'Propriétés de l\'image',
+ titleButton: 'Propriétés du bouton image',
+ upload: 'Envoyer',
+ urlMissing: 'L\'adresse source de l\'image est manquante.',
+ vSpace: 'Espacement vertical',
+ validateBorder: 'Bordure doit être un entier.',
+ validateHSpace: 'HSpace doit être un entier.',
+ validateVSpace: 'VSpace doit être un entier.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/gl.js b/devel/third-party/ckeditor/plugins/image/lang/gl.js
new file mode 100644
index 0000000..b6be64f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/gl.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'gl', {
+ alertUrl: 'Por favor, escriba a URL da imaxe',
+ alt: 'Texto Alternativo',
+ border: 'LÃmite',
+ btnUpload: 'Enviar ó Servidor',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'Esp. Horiz.',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Información da Imaxe',
+ linkTab: 'Ligazón',
+ lockRatio: 'Proporcional',
+ menu: 'Propriedades da Imaxe',
+ resetSize: 'Tamaño Orixinal',
+ title: 'Propriedades da Imaxe',
+ titleButton: 'Propriedades do Botón de Imaxe',
+ upload: 'Carregar',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'Esp. Vert.',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/gu.js b/devel/third-party/ckeditor/plugins/image/lang/gu.js
new file mode 100644
index 0000000..f4045ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/gu.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'gu', {
+ alertUrl: 'àªàª¿àª¤à«àª°àª¨à« URL àªàª¾àªàªª àªàª°à«',
+ alt: 'àªàª²à«àªàª°à«àª¨àª àªà«àªà«àª¸à«àª',
+ border: 'બà«àª°à«àª¡àª°',
+ btnUpload: 'ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª',
+ button2Img: 'તમારૠàªàª®à«àª બàªàª¨àª¨à« સાદૠàªàª®à«àªàª®àª¾àª બદલવà«àª àªà«.',
+ hSpace: 'સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾',
+ img2Button: 'તમારૠસાદૠàªàª®à«àªàª¨à« àªàª®à«àª બàªàª¨àª®àª¾àª બદલવà«àª àªà«.',
+ infoTab: 'àªàª¿àª¤à«àª° નૠàªàª¾àª£àªàª¾àª°à«',
+ linkTab: 'લિàªàª',
+ lockRatio: 'લà«àª àªà«àª£à«àª¤à«àª¤àª°',
+ menu: 'àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£',
+ resetSize: 'રà«àª¸à«àª સાàªàª',
+ title: 'àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£',
+ titleButton: 'àªàª¿àª¤à«àª° બàªàª¨àª¨àª¾ àªà«àª£',
+ upload: 'àª
પલà«àª¡',
+ urlMissing: 'àªàª®à«àªàª¨à« મà«àª³ URL àªà« નહà«.',
+ vSpace: 'લàªàª¬àª°à«àªª àªàªà«àª¯àª¾',
+ validateBorder: 'બà«àª°à«àª¡à«àª° àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ validateHSpace: 'HSpaceàªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ validateVSpace: 'VSpace àªàªàªàª¡à« હà«àªµà« àªà«àªàª. '
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/he.js b/devel/third-party/ckeditor/plugins/image/lang/he.js
new file mode 100644
index 0000000..de4c833
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/he.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'he', {
+ alertUrl: '×ש ×××§××× ×ת ×ת××ת ×ת××× ×',
+ alt: '××§×¡× ×××פ×',
+ border: '×ס×רת',
+ btnUpload: 'ש×××× ×שרת',
+ button2Img: '××× ××פ×× ×ת ת××× ×ª ××פת×ר ×ת××× × ×¤×©×××?',
+ hSpace: '×ר××× ××פק×',
+ img2Button: '××× ××פ×× ×ת ×ת××× × ××פת×ר ת××× ×?',
+ infoTab: '××××¢ ×¢× ×ת××× ×',
+ linkTab: '×§×ש×ר',
+ lockRatio: '× ×¢××ת ×××ס',
+ menu: 'ת××× ×ת ×ת××× ×',
+ resetSize: '××פ×ס ×××××',
+ title: '××פ××× × ×ת××× ×',
+ titleButton: '××פ×× × ×פת×ר ת××× ×',
+ upload: '××¢×××',
+ urlMissing: '×ת××ת ×ת××× × ×סר×.',
+ vSpace: '×ר××× ×× ××',
+ validateBorder: 'ש×× ××ס×רת ×××× ××××ת ×ספר ש××.',
+ validateHSpace: 'ש×× ××ר××× ××××¤×§× ×××× ××××ת ×ספר ש××.',
+ validateVSpace: 'ש×× ××ר××× ××× ×× ×××× ××××ת ×ספר ש××.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/hi.js b/devel/third-party/ckeditor/plugins/image/lang/hi.js
new file mode 100644
index 0000000..1f149bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/hi.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'hi', {
+ alertUrl: 'तसà¥à¤µà¥à¤° à¤à¤¾ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤ ',
+ alt: 'वà¥à¤à¤²à¥à¤ªà¤¿à¤ à¤à¥à¤à¥à¤¸à¥à¤',
+ border: 'बà¥à¤°à¥à¤¡à¤°',
+ btnUpload: 'à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'तसà¥à¤µà¥à¤° à¤à¥ à¤à¤¾à¤¨à¤à¤¾à¤°à¥',
+ linkTab: 'लिà¤à¤',
+ lockRatio: 'लà¥à¤ à¤
नà¥à¤ªà¤¾à¤¤',
+ menu: 'तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ resetSize: 'रà¥à¤¸à¥
ठसाà¤à¥',
+ title: 'तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ titleButton: 'तसà¥à¤µà¥à¤° बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ upload: 'à¤
पलà¥à¤¡',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/hr.js b/devel/third-party/ckeditor/plugins/image/lang/hr.js
new file mode 100644
index 0000000..0f1c12c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/hr.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'hr', {
+ alertUrl: 'Unesite URL slike',
+ alt: 'Alternativni tekst',
+ border: 'Okvir',
+ btnUpload: 'Pošalji na server',
+ button2Img: 'Želite li promijeniti odabrani gumb u jednostavnu sliku?',
+ hSpace: 'HSpace',
+ img2Button: 'Želite li promijeniti odabranu sliku u gumb?',
+ infoTab: 'Info slike',
+ linkTab: 'Link',
+ lockRatio: 'ZakljuÄaj odnos',
+ menu: 'Svojstva slika',
+ resetSize: 'ObriÅ¡i veliÄinu',
+ title: 'Svojstva slika',
+ titleButton: 'Image Button svojstva',
+ upload: 'Pošalji',
+ urlMissing: 'Nedostaje URL slike.',
+ vSpace: 'VSpace',
+ validateBorder: 'Okvir mora biti cijeli broj.',
+ validateHSpace: 'HSpace mora biti cijeli broj',
+ validateVSpace: 'VSpace mora biti cijeli broj.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/hu.js b/devel/third-party/ckeditor/plugins/image/lang/hu.js
new file mode 100644
index 0000000..c3fa8e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/hu.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'hu', {
+ alertUrl: 'Töltse ki a kép webcÃmét',
+ alt: 'Buborék szöveg',
+ border: 'Keret',
+ btnUpload: 'Küldés a szerverre',
+ button2Img: 'A kiválasztott képgombból sima képet szeretne csinálni?',
+ hSpace: 'VÃzsz. táv',
+ img2Button: 'A kiválasztott képbÅl képgombot szeretne csinálni?',
+ infoTab: 'Alaptulajdonságok',
+ linkTab: 'Hivatkozás',
+ lockRatio: 'Arány megtartása',
+ menu: 'Kép tulajdonságai',
+ resetSize: 'Eredeti méret',
+ title: 'Kép tulajdonságai',
+ titleButton: 'Képgomb tulajdonságai',
+ upload: 'Feltöltés',
+ urlMissing: 'Hiányzik a kép URL-je',
+ vSpace: 'Függ. táv',
+ validateBorder: 'A keret méretének egész számot kell beÃrni!',
+ validateHSpace: 'VÃzszintes távolságnak egész számot kell beÃrni!',
+ validateVSpace: 'FüggÅleges távolságnak egész számot kell beÃrni!'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/is.js b/devel/third-party/ckeditor/plugins/image/lang/is.js
new file mode 100644
index 0000000..8cc1c4d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/is.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'is', {
+ alertUrl: 'Sláðu inn slóðina að myndinni',
+ alt: 'Baklægur texti',
+ border: 'Rammi',
+ btnUpload: 'Hlaða upp',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'Vinstri bil',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Almennt',
+ linkTab: 'Stikla',
+ lockRatio: 'Festa stærðarhlutfall',
+ menu: 'Eigindi myndar',
+ resetSize: 'Reikna stærð',
+ title: 'Eigindi myndar',
+ titleButton: 'Eigindi myndahnapps',
+ upload: 'Hlaða upp',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'Hægri bil',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/it.js b/devel/third-party/ckeditor/plugins/image/lang/it.js
new file mode 100644
index 0000000..96eea41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/it.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'it', {
+ alertUrl: 'Devi inserire l\'URL per l\'immagine',
+ alt: 'Testo alternativo',
+ border: 'Bordo',
+ btnUpload: 'Invia al server',
+ button2Img: 'Vuoi trasformare il bottone immagine selezionato in un\'immagine semplice?',
+ hSpace: 'HSpace',
+ img2Button: 'Vuoi trasferomare l\'immagine selezionata in un bottone immagine?',
+ infoTab: 'Informazioni immagine',
+ linkTab: 'Collegamento',
+ lockRatio: 'Blocca rapporto',
+ menu: 'Proprietà immagine',
+ resetSize: 'Reimposta dimensione',
+ title: 'Proprietà immagine',
+ titleButton: 'Proprietà bottone immagine',
+ upload: 'Carica',
+ urlMissing: 'Manca l\'URL dell\'immagine.',
+ vSpace: 'VSpace',
+ validateBorder: 'Il campo Bordo deve essere un numero intero.',
+ validateHSpace: 'Il campo HSpace deve essere un numero intero.',
+ validateVSpace: 'Il campo VSpace deve essere un numero intero.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ja.js b/devel/third-party/ckeditor/plugins/image/lang/ja.js
new file mode 100644
index 0000000..da6ce34
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ja.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ja', {
+ alertUrl: 'ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã',
+ alt: '代æ¿ããã¹ã',
+ border: 'ãã¼ãã¼',
+ btnUpload: 'ãµã¼ãã¼ã«éä¿¡',
+ button2Img: '鏿ãããã¿ã³ãç»åã«ç½®ãæãã¾ããï¼',
+ hSpace: '横éé',
+ img2Button: '鏿ããç»åããã¿ã³ã«ç½®ãæãã¾ããï¼',
+ infoTab: 'ã¤ã¡ã¼ã¸ æ
å ±',
+ linkTab: 'ãªã³ã¯',
+ lockRatio: 'ããã¯æ¯ç',
+ menu: 'ã¤ã¡ã¼ã¸ ããããã£',
+ resetSize: 'ãµã¤ãºãªã»ãã',
+ title: 'ã¤ã¡ã¼ã¸ ããããã£',
+ titleButton: 'ç»åãã¿ã³ ããããã£',
+ upload: 'ã¢ãããã¼ã',
+ urlMissing: 'ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã',
+ vSpace: '縦éé',
+ validateBorder: 'ãã¼ãã¼ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ validateHSpace: '横ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ validateVSpace: '縦ééã¯æ°å¤ã§å
¥åãã¦ãã ããã'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ka.js b/devel/third-party/ckeditor/plugins/image/lang/ka.js
new file mode 100644
index 0000000..8e5968a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ka.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ka', {
+ alertUrl: 'ááá áá¤áá á¡á£á áááá¡ URL',
+ alt: 'á¡ááááªááá á¢áá¥á¡á¢á',
+ border: 'á©áá á©á',
+ btnUpload: 'á¡áá ááá áá¡áááá¡ áááááááá',
+ button2Img: 'áá¡á£á á áá á©áá£áá á¡á£á áááááá á¦áááááá¡ ááááá¥áªááá á©ááá£áááá áá á¦áááááá?',
+ hSpace: 'á°áá ááááá¢ááá£á á á¡ááá áªá',
+ img2Button: 'áá¡á£á á áá á©áá£áá á©ááá£áááá ááá á¦áááááá¡ ááááá¥áªááá á¡á£á ááááá á¦áááááá?',
+ infoTab: 'á¡á£á áááá¡ ááá¤áá ááªáá',
+ linkTab: 'ááá£áá',
+ lockRatio: 'áá áááá áªááá¡ á¨áááá á©á£áááá',
+ menu: 'á¡á£á áááá¡ ááá áááá¢á ááá',
+ resetSize: 'ááááá¡ áááá á£áááá',
+ title: 'á¡á£á áááá¡ ááá áááá¢á ááá',
+ titleButton: 'á¡á£á áááááá á¦áááááá¡ ááá áááá¢á ááá',
+ upload: 'áá¢ááá ááá',
+ urlMissing: 'á¡á£á áááá¡ URL áá áá á¨ááá¡ááá£áá.',
+ vSpace: 'ááá á¢ááááá£á á á¡ááá áªá',
+ validateBorder: 'á©áá á©á ááááá á ááªá®áá á£ááá áá§áá¡.',
+ validateHSpace: 'á°áá ááááá¢ááá£á á á¡ááá áªá ááááá á ááªá®áá á£ááá áá§áá¡.',
+ validateVSpace: 'ááá á¢ááááá£á á á¡ááá áªá ááááá á ááªá®áá á£ááá áá§áá¡.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/km.js b/devel/third-party/ckeditor/plugins/image/lang/km.js
new file mode 100644
index 0000000..399c99c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/km.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'km', {
+ alertUrl: 'áá¼áááááááá¶ááááááá¶ááááááá¼ááá¶á',
+ alt: 'á¢ááááááááá½á',
+ border: 'ááá»á',
+ btnUpload: 'ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'áááá¶áááá¹á',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'ááááá¶áá¢ááá¸áá¼ááá¶á',
+ linkTab: 'áááá¶áá',
+ lockRatio: 'á¢áááá¶á¡á»á',
+ menu: 'áá¶áááááááá¼ááá¶á',
+ resetSize: 'áááááááá áá¡á¾ááá·á',
+ title: 'áá¶áááááááá¼ááá¶á',
+ titleButton: 'áá¶ááááááááá¼áá»ááá¼ááá¶á',
+ upload: 'áá¶ááá',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'áááá¶ááááááá',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ko.js b/devel/third-party/ckeditor/plugins/image/lang/ko.js
new file mode 100644
index 0000000..8a166f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ko.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ko', {
+ alertUrl: 'ì´ë¯¸ì§ URLì ì
ë ¥íììì',
+ alt: 'ì´ë¯¸ì§ ì¤ëª
',
+ border: 'í
ë리',
+ btnUpload: 'ìë²ë¡ ì ì¡',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'ìíì¬ë°±',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'ì´ë¯¸ì§ ì ë³´',
+ linkTab: 'ë§í¬',
+ lockRatio: 'ë¹ì¨ ì ì§',
+ menu: 'ì´ë¯¸ì§ ì¤ì ',
+ resetSize: 'ìë í¬ê¸°ë¡',
+ title: 'ì´ë¯¸ì§ ì¤ì ',
+ titleButton: 'ì´ë¯¸ì§ë²í¼ ìì±',
+ upload: 'ì
ë¡ë',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'ìì§ì¬ë°±',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ku.js b/devel/third-party/ckeditor/plugins/image/lang/ku.js
new file mode 100644
index 0000000..1ca3b24
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ku.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ku', {
+ alertUrl: 'تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙØ±Û ÙÛÙ٠بÙÙÙØ³Ù',
+ alt: 'جÛگرÙÙÙÛ Ø¯ÙÙ',
+ border: 'Ù¾ÙØ±Ø§ÙÛØ²',
+ btnUpload: 'ÙØ§Ø±Ø¯ÙÛ Ø¨Û ÚØ§ÚÙ',
+ button2Img: 'ØªÛ Ø¯ÙØªÙÙÛØª دÙÚ¯Ù
ÙÛ ÙÛÙÙÛ Ø¯ÛØ§Ø±Ûکرا٠بگÛÚÛØª Ø¨Û ÙÛÙÙÚ©Û Ø¦Ø§Ø³Ø§ÛÛØ',
+ hSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ',
+ img2Button: 'ØªÛ Ø¯ÙØªÙÙÛØª ÙÛÙÙÛ Ø¯ÛØ§Ø±Ûکرا٠بگÛÚÛØª Ø¨Û Ø¯ÙÚ¯Ù
ÙÛ ÙÛÙÙØ',
+ infoTab: 'زاÙÛØ§Ø±Û ÙÛÙÙ',
+ linkTab: 'Ø¨ÙØ³ØªÙر',
+ lockRatio: 'داخستÙÛ ÚÛÚÙ',
+ menu: 'خاسÛÙØªÛ ÙÛÙÙ',
+ resetSize: 'ÚÛکخستÙÙÙÙÛ ÙÙØ¨Ø§Ø±Ù',
+ title: 'خاسÛÙØªÛ ÙÛÙÙ',
+ titleButton: 'خاسÛÙØªÛ دÙÚ¯Ù
ÙÛ ÙÛÙÙ',
+ upload: 'بارکردÙ',
+ urlMissing: 'Ø³ÙØ±ÚاÙÙÛ Ø¨ÙØ³ØªÙØ±Û ÙÛÙ٠بزرÙ',
+ vSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ',
+ validateBorder: 'Ù¾ÙØ±Ø§ÙÛØ² Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ØªÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ validateHSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ØªÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ validateVSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ØªÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/lt.js b/devel/third-party/ckeditor/plugins/image/lang/lt.js
new file mode 100644
index 0000000..b56ed48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/lt.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'lt', {
+ alertUrl: 'Prašome įvesti vaizdo URL',
+ alt: 'Alternatyvus Tekstas',
+ border: 'RÄmelis',
+ btnUpload: 'Siųsti į serverį',
+ button2Img: 'Ar norite mygtukÄ
paversti paprastu paveiksliuku?',
+ hSpace: 'Hor.ErdvÄ',
+ img2Button: 'Ar norite paveiksliukÄ
paversti mygtuku?',
+ infoTab: 'Vaizdo informacija',
+ linkTab: 'Nuoroda',
+ lockRatio: 'IÅ¡laikyti proporcijÄ
',
+ menu: 'Vaizdo savybÄs',
+ resetSize: 'Atstatyti dydį',
+ title: 'Vaizdo savybÄs',
+ titleButton: 'Vaizdinio mygtuko savybÄs',
+ upload: 'Nusiųsti',
+ urlMissing: 'Paveiksliuko nuorodos nÄra.',
+ vSpace: 'Vert.ErdvÄ',
+ validateBorder: 'ReikÅ¡mÄ turi bÅ«ti sveikas skaiÄius.',
+ validateHSpace: 'ReikÅ¡mÄ turi bÅ«ti sveikas skaiÄius.',
+ validateVSpace: 'ReikÅ¡mÄ turi bÅ«ti sveikas skaiÄius.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/lv.js b/devel/third-party/ckeditor/plugins/image/lang/lv.js
new file mode 100644
index 0000000..1094dac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/lv.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'lv', {
+ alertUrl: 'LÅ«dzu norÄdÄ«t attÄla hipersaiti',
+ alt: 'Alternatīvais teksts',
+ border: 'RÄmis',
+ btnUpload: 'Nosūtīt serverim',
+ button2Img: 'Vai vÄlaties pÄrveidot izvÄlÄto attÄla pogu uz attÄla?',
+ hSpace: 'HorizontÄlÄ telpa',
+ img2Button: 'Vai vÄlaties pÄrveidot izvÄlÄto attÄlu uz attÄla pogas?',
+ infoTab: 'InformÄcija par attÄlu',
+ linkTab: 'Hipersaite',
+ lockRatio: 'Nemainīga Augstuma/Platuma attiecība',
+ menu: 'AttÄla Ä«pašības',
+ resetSize: 'Atjaunot sÄkotnÄjo izmÄru',
+ title: 'AttÄla Ä«pašības',
+ titleButton: 'AttÄlpogas Ä«pašības',
+ upload: 'AugÅ¡upielÄdÄt',
+ urlMissing: 'TrÅ«kst attÄla atraÅ¡anÄs adrese.',
+ vSpace: 'VertikÄlÄ telpa',
+ validateBorder: 'Apmalei jÄbÅ«t veselam skaitlim',
+ validateHSpace: 'HSpace jÄbÅ«t veselam skaitlim',
+ validateVSpace: 'VSpace jÄbÅ«t veselam skaitlim'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/mk.js b/devel/third-party/ckeditor/plugins/image/lang/mk.js
new file mode 100644
index 0000000..1a8a2ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/mk.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'mk', {
+ alertUrl: 'Please type the image URL', // MISSING
+ alt: 'Alternative Text', // MISSING
+ border: 'Border', // MISSING
+ btnUpload: 'Send it to the Server', // MISSING
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'HSpace', // MISSING
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Image Info', // MISSING
+ linkTab: 'Link', // MISSING
+ lockRatio: 'Lock Ratio', // MISSING
+ menu: 'Image Properties', // MISSING
+ resetSize: 'Reset Size', // MISSING
+ title: 'Image Properties', // MISSING
+ titleButton: 'Image Button Properties', // MISSING
+ upload: 'Upload', // MISSING
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace', // MISSING
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/mn.js b/devel/third-party/ckeditor/plugins/image/lang/mn.js
new file mode 100644
index 0000000..9c32c4a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/mn.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'mn', {
+ alertUrl: 'ÐÑÑÐ°Ð³Ð½Ñ URL-Ñн ÑÓ©Ñлийн Ñонгоно ÑÑ',
+ alt: 'ÐÑÑгийг оÑлоÑ
биÑвÑÑ',
+ border: 'Ð¥Ò¯ÑÑÑ',
+ btnUpload: 'Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'Хөндлөн зай',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'ÐÑÑÐ°Ð³Ð½Ñ Ð¼ÑдÑÑлÑл',
+ linkTab: 'ХолбооÑ',
+ lockRatio: 'Радио ÑүгжиÑ
',
+ menu: 'ÐÑÑаг',
+ resetSize: 'Ñ
ÑмжÑÑ Ð´Ð°Ñ
ин онооÑ
',
+ title: 'ÐÑÑаг',
+ titleButton: 'ÐÑÑган ÑовÑÐ½Ñ Ñинж ÑанаÑ',
+ upload: 'Ð¥ÑÑлаÑ
',
+ urlMissing: 'ÐÑÑгийн ÑÑ
ÑÑÑвалжийн Ñ
аÑг (URL) байÑ
гүй байна.',
+ vSpace: 'ÐоÑоо зай',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ms.js b/devel/third-party/ckeditor/plugins/image/lang/ms.js
new file mode 100644
index 0000000..5d01674
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ms.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ms', {
+ alertUrl: 'Sila taip URL untuk fail gambar',
+ alt: 'Text Alternatif',
+ border: 'Border',
+ btnUpload: 'Hantar ke Server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'Ruang Melintang',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Info Imej',
+ linkTab: 'Sambungan',
+ lockRatio: 'Tetapkan Nisbah',
+ menu: 'Ciri-ciri Imej',
+ resetSize: 'Saiz Set Semula',
+ title: 'Ciri-ciri Imej',
+ titleButton: 'Ciri-ciri Butang Bergambar',
+ upload: 'Muat Naik',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'Ruang Menegak',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/nb.js b/devel/third-party/ckeditor/plugins/image/lang/nb.js
new file mode 100644
index 0000000..657b8fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/nb.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'nb', {
+ alertUrl: 'Vennligst skriv bilde-urlen',
+ alt: 'Alternativ tekst',
+ border: 'Ramme',
+ btnUpload: 'Send det til serveren',
+ button2Img: 'Vil du endre den valgte bildeknappen til et vanlig bilde?',
+ hSpace: 'HMarg',
+ img2Button: 'Vil du endre det valgte bildet til en bildeknapp?',
+ infoTab: 'Bildeinformasjon',
+ linkTab: 'Lenke',
+ lockRatio: 'LÃ¥s forhold',
+ menu: 'Bildeegenskaper',
+ resetSize: 'Tilbakestill størrelse',
+ title: 'Bildeegenskaper',
+ titleButton: 'Egenskaper for bildeknapp',
+ upload: 'Last opp',
+ urlMissing: 'Bildets adresse mangler.',
+ vSpace: 'VMarg',
+ validateBorder: 'Ramme må være et heltall.',
+ validateHSpace: 'HMarg må være et heltall.',
+ validateVSpace: 'VMarg må være et heltall.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/nl.js b/devel/third-party/ckeditor/plugins/image/lang/nl.js
new file mode 100644
index 0000000..2d3eee5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/nl.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'nl', {
+ alertUrl: 'Geef de URL van de afbeelding',
+ alt: 'Alternatieve tekst',
+ border: 'Rand',
+ btnUpload: 'Naar server verzenden',
+ button2Img: 'Wilt u de geselecteerde afbeeldingsknop vervangen door een eenvoudige afbeelding?',
+ hSpace: 'HSpace',
+ img2Button: 'Wilt u de geselecteerde afbeelding vervangen door een afbeeldingsknop?',
+ infoTab: 'Informatie afbeelding',
+ linkTab: 'Link',
+ lockRatio: 'Afmetingen vergrendelen',
+ menu: 'Eigenschappen afbeelding',
+ resetSize: 'Afmetingen resetten',
+ title: 'Eigenschappen afbeelding',
+ titleButton: 'Eigenschappen afbeeldingsknop',
+ upload: 'Upload',
+ urlMissing: 'De URL naar de afbeelding ontbreekt.',
+ vSpace: 'VSpace',
+ validateBorder: 'Rand moet een heel nummer zijn.',
+ validateHSpace: 'HSpace moet een heel nummer zijn.',
+ validateVSpace: 'VSpace moet een heel nummer zijn.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/no.js b/devel/third-party/ckeditor/plugins/image/lang/no.js
new file mode 100644
index 0000000..f1d5b4c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/no.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'no', {
+ alertUrl: 'Vennligst skriv bilde-urlen',
+ alt: 'Alternativ tekst',
+ border: 'Ramme',
+ btnUpload: 'Send det til serveren',
+ button2Img: 'Vil du endre den valgte bildeknappen til et vanlig bilde?',
+ hSpace: 'HMarg',
+ img2Button: 'Vil du endre det valgte bildet til en bildeknapp?',
+ infoTab: 'Bildeinformasjon',
+ linkTab: 'Lenke',
+ lockRatio: 'LÃ¥s forhold',
+ menu: 'Bildeegenskaper',
+ resetSize: 'Tilbakestill størrelse',
+ title: 'Bildeegenskaper',
+ titleButton: 'Egenskaper for bildeknapp',
+ upload: 'Last opp',
+ urlMissing: 'Bildets adresse mangler.',
+ vSpace: 'VMarg',
+ validateBorder: 'Ramme må være et heltall.',
+ validateHSpace: 'HMarg må være et heltall.',
+ validateVSpace: 'VMarg må være et heltall.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/pl.js b/devel/third-party/ckeditor/plugins/image/lang/pl.js
new file mode 100644
index 0000000..d20b1bf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/pl.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'pl', {
+ alertUrl: 'Podaj adres obrazka.',
+ alt: 'Tekst zastÄpczy',
+ border: 'Obramowanie',
+ btnUpload: 'WyÅlij',
+ button2Img: 'Czy chcesz przekonwertowaÄ zaznaczony przycisk graficzny do zwykÅego obrazka?',
+ hSpace: 'OdstÄp poziomy',
+ img2Button: 'Czy chcesz przekonwertowaÄ zaznaczony obrazek do przycisku graficznego?',
+ infoTab: 'Informacje o obrazku',
+ linkTab: 'HiperÅÄ
cze',
+ lockRatio: 'Zablokuj proporcje',
+ menu: 'WÅaÅciwoÅci obrazka',
+ resetSize: 'PrzywrÃ³Ä rozmiar',
+ title: 'WÅaÅciwoÅci obrazka',
+ titleButton: 'WÅaÅciwoÅci przycisku graficznego',
+ upload: 'WyÅlij',
+ urlMissing: 'Podaj adres URL obrazka.',
+ vSpace: 'OdstÄp pionowy',
+ validateBorder: 'WartoÅÄ obramowania musi byÄ liczbÄ
caÅkowitÄ
.',
+ validateHSpace: 'WartoÅÄ odstÄpu poziomego musi byÄ liczbÄ
caÅkowitÄ
.',
+ validateVSpace: 'WartoÅÄ odstÄpu pionowego musi byÄ liczbÄ
caÅkowitÄ
.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/pt-br.js b/devel/third-party/ckeditor/plugins/image/lang/pt-br.js
new file mode 100644
index 0000000..0f13eec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/pt-br.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'pt-br', {
+ alertUrl: 'Por favor, digite a URL da imagem.',
+ alt: 'Texto Alternativo',
+ border: 'Borda',
+ btnUpload: 'Enviar para o Servidor',
+ button2Img: 'Deseja transformar o botão de imagem em uma imagem comum?',
+ hSpace: 'HSpace',
+ img2Button: 'Deseja transformar a imagem em um botão de imagem?',
+ infoTab: 'Informações da Imagem',
+ linkTab: 'Link',
+ lockRatio: 'Travar Proporções',
+ menu: 'Formatar Imagem',
+ resetSize: 'Redefinir para o Tamanho Original',
+ title: 'Formatar Imagem',
+ titleButton: 'Formatar Botão de Imagem',
+ upload: 'Enviar',
+ urlMissing: 'URL da imagem está faltando.',
+ vSpace: 'VSpace',
+ validateBorder: 'A borda deve ser um número inteiro.',
+ validateHSpace: 'O HSpace deve ser um número inteiro.',
+ validateVSpace: 'O VSpace deve ser um número inteiro.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/pt.js b/devel/third-party/ckeditor/plugins/image/lang/pt.js
new file mode 100644
index 0000000..0b6514f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/pt.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'pt', {
+ alertUrl: 'Por favor introduza o URL da imagem',
+ alt: 'Texto Alternativo',
+ border: 'Limite',
+ btnUpload: 'Enviar para o Servidor',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'Esp.Horiz',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Informação da Imagem',
+ linkTab: 'Hiperligação',
+ lockRatio: 'Proporcional',
+ menu: 'Propriedades da Imagem',
+ resetSize: 'Tamanho Original',
+ title: 'Propriedades da Imagem',
+ titleButton: 'Propriedades do Botão de imagens',
+ upload: 'Carregar',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'Esp.Vert',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ro.js b/devel/third-party/ckeditor/plugins/image/lang/ro.js
new file mode 100644
index 0000000..f04c894
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ro.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ro', {
+ alertUrl: 'VÄ rugÄm sÄ scrieÅ£i URL-ul imaginii',
+ alt: 'Text alternativ',
+ border: 'Margine',
+ btnUpload: 'Trimite la server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Informaţii despre imagine',
+ linkTab: 'Link (LegÄturÄ web)',
+ lockRatio: 'PÄstreazÄ proporÅ£iile',
+ menu: 'ProprietÄÅ£ile imaginii',
+ resetSize: 'ReseteazÄ mÄrimea',
+ title: 'ProprietÄÅ£ile imaginii',
+ titleButton: 'ProprietÄÅ£i buton imagine (Image Button)',
+ upload: 'ÃncarcÄ',
+ urlMissing: 'Sursa URL a imaginii lipseÈte.',
+ vSpace: 'VSpace',
+ validateBorder: 'Bordura trebuie sÄ fie un numÄr întreg.',
+ validateHSpace: 'Hspace trebuie sÄ fie un numÄr întreg.',
+ validateVSpace: 'Vspace trebuie sÄ fie un numÄr întreg.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ru.js b/devel/third-party/ckeditor/plugins/image/lang/ru.js
new file mode 100644
index 0000000..e0eb7c9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ru.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ru', {
+ alertUrl: 'ÐожалÑйÑÑа, введиÑе ÑÑÑÐ»ÐºÑ Ð½Ð° изобÑажение',
+ alt: 'ÐлÑÑеÑнаÑивнÑй ÑекÑÑ',
+ border: 'ÐÑаниÑа',
+ btnUpload: 'ÐагÑÑзиÑÑ Ð½Ð° ÑеÑвеÑ',
+ button2Img: 'ÐÑ Ð¶ÐµÐ»Ð°ÐµÑе пÑеобÑазоваÑÑ ÑÑо изобÑажение-ÐºÐ½Ð¾Ð¿ÐºÑ Ð² обÑÑное изобÑажение?',
+ hSpace: 'ÐоÑиз. оÑÑÑÑп',
+ img2Button: 'ÐÑ Ð¶ÐµÐ»Ð°ÐµÑе пÑеобÑазоваÑÑ ÑÑо обÑÑное изобÑажение в изобÑажение-кнопкÑ?',
+ infoTab: 'ÐаннÑе об изобÑажении',
+ linkTab: 'СÑÑлка',
+ lockRatio: 'СоÑ
ÑанÑÑÑ Ð¿ÑопоÑÑии',
+ menu: 'СвойÑÑва изобÑажениÑ',
+ resetSize: 'ÐеÑнÑÑÑ Ð¾Ð±ÑÑнÑе ÑазмеÑÑ',
+ title: 'СвойÑÑва изобÑажениÑ',
+ titleButton: 'СвойÑÑва изобÑажениÑ-кнопки',
+ upload: 'ÐагÑÑзиÑÑ',
+ urlMissing: 'Ðе Ñказана ÑÑÑлка на изобÑажение.',
+ vSpace: 'ÐеÑÑик. оÑÑÑÑп',
+ validateBorder: 'Ð Ð°Ð·Ð¼ÐµÑ Ð³ÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð·Ð°Ð´Ð°Ð½ ÑиÑлом.',
+ validateHSpace: 'ÐоÑизонÑалÑнÑй оÑÑÑÑп должен бÑÑÑ Ð·Ð°Ð´Ð°Ð½ ÑиÑлом.',
+ validateVSpace: 'ÐеÑÑикалÑнÑй оÑÑÑÑп должен бÑÑÑ Ð·Ð°Ð´Ð°Ð½ ÑиÑлом.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/sk.js b/devel/third-party/ckeditor/plugins/image/lang/sk.js
new file mode 100644
index 0000000..da3c976
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/sk.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'sk', {
+ alertUrl: 'Zadajte prosÃm URL obrázka',
+ alt: 'AlternatÃvny text',
+ border: 'Rám (border)',
+ btnUpload: 'Odoslať to na server',
+ button2Img: 'Chcete zmeniÅ¥ vybrané obrázkové tlaÄidlo na jednoduchý obrázok?',
+ hSpace: 'H-medzera',
+ img2Button: 'Chcete zmeniÅ¥ vybraný obrázok na obrázkové tlaÄidlo?',
+ infoTab: 'Informácie o obrázku',
+ linkTab: 'Odkaz',
+ lockRatio: 'Pomer zámky',
+ menu: 'Vlastnosti obrázka',
+ resetSize: 'Pôvodná veľkosť',
+ title: 'Vlastnosti obrázka',
+ titleButton: 'Vlastnosti obrázkového tlaÄidla',
+ upload: 'Nahrať',
+ urlMissing: 'Chýba URL zdroja obrázka.',
+ vSpace: 'V-medzera',
+ validateBorder: 'Rám (border) musà byÅ¥ celé ÄÃslo.',
+ validateHSpace: 'H-medzera musà byÅ¥ celé ÄÃslo.',
+ validateVSpace: 'V-medzera musà byÅ¥ celé ÄÃslo.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/sl.js b/devel/third-party/ckeditor/plugins/image/lang/sl.js
new file mode 100644
index 0000000..f999abf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/sl.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'sl', {
+ alertUrl: 'Vnesite URL slike',
+ alt: 'Nadomestno besedilo',
+ border: 'Obroba',
+ btnUpload: 'Pošlji na strežnik',
+ button2Img: 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?',
+ hSpace: 'Vodoravni razmik',
+ img2Button: 'Želiš pretvoriti izbrano sliko v gumb s sliko?',
+ infoTab: 'Podatki o sliki',
+ linkTab: 'Povezava',
+ lockRatio: 'Zakleni razmerje',
+ menu: 'Lastnosti slike',
+ resetSize: 'Ponastavi velikost',
+ title: 'Lastnosti slike',
+ titleButton: 'Lastnosti gumba s sliko',
+ upload: 'Pošlji',
+ urlMissing: 'Manjka vir (URL) slike.',
+ vSpace: 'NavpiÄni razmik',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/image/lang/sr-latn.js
new file mode 100644
index 0000000..02755b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/sr-latn.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'sr-latn', {
+ alertUrl: 'Unesite URL slike',
+ alt: 'Alternativni tekst',
+ border: 'Okvir',
+ btnUpload: 'Pošalji na server',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'Info slike',
+ linkTab: 'Link',
+ lockRatio: 'ZakljuÄaj odnos',
+ menu: 'Osobine slika',
+ resetSize: 'Resetuj veliÄinu',
+ title: 'Osobine slika',
+ titleButton: 'Osobine dugmeta sa slikom',
+ upload: 'Pošalji',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/sr.js b/devel/third-party/ckeditor/plugins/image/lang/sr.js
new file mode 100644
index 0000000..d780f2e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/sr.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'sr', {
+ alertUrl: 'УнеÑиÑе УРРÑлике',
+ alt: 'ÐлÑеÑнаÑивни ÑекÑÑ',
+ border: 'ÐквиÑ',
+ btnUpload: 'ÐоÑаÑи на ÑеÑвеÑ',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'HSpace',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'ÐнÑо Ñлике',
+ linkTab: 'Ðинк',
+ lockRatio: 'ÐакÑÑÑÐ°Ñ Ð¾Ð´Ð½Ð¾Ñ',
+ menu: 'ÐÑобине Ñлика',
+ resetSize: 'РеÑеÑÑÑ Ð²ÐµÐ»Ð¸ÑинÑ',
+ title: 'ÐÑобине Ñлика',
+ titleButton: 'ÐÑобине дÑгмеÑа Ñа Ñликом',
+ upload: 'ÐоÑаÑи',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'VSpace',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/sv.js b/devel/third-party/ckeditor/plugins/image/lang/sv.js
new file mode 100644
index 0000000..d064247
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/sv.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'sv', {
+ alertUrl: 'Var god och ange bildens URL',
+ alt: 'Alternativ text',
+ border: 'Kant',
+ btnUpload: 'Skicka till server',
+ button2Img: 'Vill du omvandla den valda bildknappen på en enkel bild?',
+ hSpace: 'Horis. marginal',
+ img2Button: 'Vill du omvandla den valda bildknappen på en enkel bild?',
+ infoTab: 'Bildinformation',
+ linkTab: 'Länk',
+ lockRatio: 'Lås höjd/bredd förhållanden',
+ menu: 'Bildegenskaper',
+ resetSize: 'Ã
terställ storlek',
+ title: 'Bildegenskaper',
+ titleButton: 'Egenskaper för bildknapp',
+ upload: 'Ladda upp',
+ urlMissing: 'Bildkällans URL saknas.',
+ vSpace: 'Vert. marginal',
+ validateBorder: 'Kantlinje måste vara ett heltal.',
+ validateHSpace: 'HSpace måste vara ett heltal.',
+ validateVSpace: 'VSpace måste vara ett heltal.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/th.js b/devel/third-party/ckeditor/plugins/image/lang/th.js
new file mode 100644
index 0000000..55439d7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/th.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'th', {
+ alertUrl: 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸à¹à¸à¸¥à¹à¸£à¸¹à¸à¸ าภ(URL)',
+ alt: 'à¸à¸³à¸à¸£à¸°à¸à¸à¸à¸£à¸¹à¸à¸ าà¸',
+ border: 'à¸à¸à¸²à¸à¸à¸à¸à¸£à¸¹à¸',
+ btnUpload: 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)',
+ button2Img: 'Do you want to transform the selected image button on a simple image?', // MISSING
+ hSpace: 'ระยะà¹à¸à¸§à¸à¸à¸',
+ img2Button: 'Do you want to transform the selected image on a image button?', // MISSING
+ infoTab: 'à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸£à¸¹à¸à¸ าà¸',
+ linkTab: 'ลิà¹à¸à¸à¹',
+ lockRatio: 'à¸à¸³à¸«à¸à¸à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ à¸à¸§à¹à¸²à¸-สูภà¹à¸à¸à¸à¸à¸à¸µà¹',
+ menu: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸',
+ resetSize: 'à¸à¸³à¸«à¸à¸à¸£à¸¹à¸à¹à¸à¹à¸²à¸à¸à¸²à¸à¸à¸£à¸´à¸',
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸',
+ titleButton: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸',
+ upload: 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'ระยะà¹à¸à¸§à¸à¸±à¹à¸',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/tr.js b/devel/third-party/ckeditor/plugins/image/lang/tr.js
new file mode 100644
index 0000000..a762446
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/tr.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'tr', {
+ alertUrl: 'Lütfen resmin URL\'sini yazınız',
+ alt: 'Alternatif Yazı',
+ border: 'Kenar',
+ btnUpload: 'Sunucuya Yolla',
+ button2Img: 'Seçili resim butonunu basit resime çevirmek istermisiniz?',
+ hSpace: 'Yatay BoÅluk',
+ img2Button: 'Seçili olan resimi, resimli butona çevirmek istermisiniz?',
+ infoTab: 'Resim Bilgisi',
+ linkTab: 'Köprü',
+ lockRatio: 'Oranı Kilitle',
+ menu: 'Resim Ãzellikleri',
+ resetSize: 'Boyutu BaÅa Döndür',
+ title: 'Resim Ãzellikleri',
+ titleButton: 'Resimli DüÄme Ãzellikleri',
+ upload: 'KarÅıya Yükle',
+ urlMissing: 'Resmin URL kaynaÄı eksiktir.',
+ vSpace: 'Dikey BoÅluk',
+ validateBorder: 'Ãerçeve tam sayı olmalıdır.',
+ validateHSpace: 'HSpace tam sayı olmalıdır.',
+ validateVSpace: 'VSpace tam sayı olmalıdır.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/ug.js b/devel/third-party/ckeditor/plugins/image/lang/ug.js
new file mode 100644
index 0000000..2174b19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/ug.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'ug', {
+ alertUrl: 'Ø³ÛØ±Ûت Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ',
+ alt: 'تÛÙÙØ³Øª ئاÙÙ
Ø§Ø´ØªÛØ±',
+ border: 'Ú¯ÙØ±ÛÛÙ ÚÙÚÙÛÙÙ',
+ btnUpload: 'Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرغا ÙÛÙÙÛ',
+ button2Img: 'ÙÛÛÛØªØªÙÙ٠تÙÙ¾ÚÙÙÙ Ø³ÛØ±ÛتÙÛ Ø¦ÛØ²Ú¯ÛرتÛÙ
Ø³ÙØ²Ø',
+ hSpace: 'ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙÙ',
+ img2Button: 'ÙÛÛÛØªØªÙÙÙ Ø³ÛØ±ÛتÙ٠تÙÙ¾ÚÙØºØ§ Ø¦ÛØ²Ú¯ÛرتÛÙ
Ø³ÙØ²Ø',
+ infoTab: 'Ø³ÛØ±Ûت',
+ linkTab: 'ئÛÙØ§ÙÙ
ا',
+ lockRatio: 'ÙÙØ³Ø¨ÛتÙÙ ÙÛÙÛÙ¾ÙØ§',
+ menu: 'Ø³ÛØ±Ûت خاسÙÙÙÙ',
+ resetSize: 'Ø¦ÛØ³ÙÙ ÚÙÚÙÛÙ',
+ title: 'Ø³ÛØ±Ûت خاسÙÙÙÙ',
+ titleButton: 'Ø³ÛØ±Ûت Ø¯Ø§Ø¦ÙØ±Û خاسÙÙÙÙ',
+ upload: 'ÙÛÙÙÛ',
+ urlMissing: 'Ø³ÛØ±ÛتÙÙÚ Ø¦ÛØ³ÙÙ Ú¾ÛØ¬Ø¬Ûت Ø¦Ø§Ø¯Ø±ÛØ³Ù ÙÛÙ
',
+ vSpace: 'بÙÙÙØºØ§ ئارÙÙÙÙÙ',
+ validateBorder: 'Ú¯ÙØ±ÛÛÙ ÚÙÚÙÛÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ validateHSpace: 'ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û',
+ validateVSpace: 'بÙÙÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/uk.js b/devel/third-party/ckeditor/plugins/image/lang/uk.js
new file mode 100644
index 0000000..9e1cf36
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/uk.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'uk', {
+ alertUrl: 'ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ URL зобÑаженнÑ',
+ alt: 'ÐлÑÑеÑнаÑивний ÑекÑÑ',
+ border: 'Рамка',
+ btnUpload: 'ÐадÑÑлаÑи на ÑеÑвеÑ',
+ button2Img: 'ÐажаÑÑе пеÑеÑвоÑиÑи обÑÐ°Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÑ-зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° пÑоÑÑе зобÑаженнÑ?',
+ hSpace: 'ÐоÑиз. вÑдÑÑÑп',
+ img2Button: 'ÐажаÑÑе пеÑеÑвоÑиÑи обÑане зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° кнопкÑ-зобÑаженнÑ?',
+ infoTab: 'ÐнÑоÑмаÑÑÑ Ð¿Ñо зобÑаженнÑ',
+ linkTab: 'ÐоÑиланнÑ',
+ lockRatio: 'ÐбеÑегÑи пÑопоÑÑÑÑ',
+ menu: 'ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ',
+ resetSize: 'ÐÑиÑÑиÑи Ð¿Ð¾Ð»Ñ ÑозмÑÑÑв',
+ title: 'ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ',
+ titleButton: 'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñз зобÑаженнÑм',
+ upload: 'ÐадÑÑлаÑи',
+ urlMissing: 'ÐкажÑÑÑ URL зобÑаженнÑ.',
+ vSpace: 'ÐеÑÑ. вÑдÑÑÑп',
+ validateBorder: 'ШиÑина Ñамки повинна бÑÑи ÑÑлим ÑиÑлом.',
+ validateHSpace: 'ÐоÑиз. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.',
+ validateVSpace: 'ÐеÑÑ. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/vi.js b/devel/third-party/ckeditor/plugins/image/lang/vi.js
new file mode 100644
index 0000000..0c70644
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/vi.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'vi', {
+ alertUrl: 'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn cá»§a ảnh',
+ alt: 'Chú thÃch ảnh',
+ border: 'ÄÆ°á»ng viá»n',
+ btnUpload: 'Tải lên máy chủ',
+ button2Img: 'Bạn có muá»n chuyá»n nút bấm bằng ảnh ÄÆ°á»£c chá»n thà nh ảnh?',
+ hSpace: 'Khoảng Äá»m ngang',
+ img2Button: 'Bạn có muá»n chuyá»n Äá»i ảnh ÄÆ°á»£c chá»n thà nh nút bấm bằng ảnh?',
+ infoTab: 'Thông tin của ảnh',
+ linkTab: 'Tab liên kết',
+ lockRatio: 'Giữ nguyên tá»· lá»',
+ menu: 'Thuá»c tÃnh cá»§a ảnh',
+ resetSize: 'KÃch thưá»c gá»c',
+ title: 'Thuá»c tÃnh cá»§a ảnh',
+ titleButton: 'Thuá»c tÃnh nút cá»§a ảnh',
+ upload: 'Tải lên',
+ urlMissing: 'Thiếu ÄÆ°á»ng dẫn hình ảnh',
+ vSpace: 'Khoảng Äá»m dá»c',
+ validateBorder: 'Chiá»u rá»ng cá»§a ÄÆ°á»ng viá»n phải là má»t sá» nguyên dương',
+ validateHSpace: 'Khoảng Äá»m ngang phải là má»t sá» nguyên dương',
+ validateVSpace: 'Khoảng Äá»m dá»c phải là má»t sá» nguyên dương'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/image/lang/zh-cn.js
new file mode 100644
index 0000000..1930925
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/zh-cn.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'zh-cn', {
+ alertUrl: '请è¾å
¥å¾è±¡å°å',
+ alt: 'æ¿æ¢ææ¬',
+ border: 'è¾¹æ¡å¤§å°',
+ btnUpload: 'ä¸ä¼ å°æå¡å¨ä¸',
+ button2Img: 'ç¡®å®è¦æå½åæé®æ¹å为å¾åå?',
+ hSpace: 'æ°´å¹³é´è·',
+ img2Button: 'ç¡®å®è¦æå½åå¾åæ¹å为æé®å?',
+ infoTab: 'å¾è±¡',
+ linkTab: '龿¥',
+ lockRatio: 'é宿¯ä¾',
+ menu: 'å¾è±¡å±æ§',
+ resetSize: 'åå§å°ºå¯¸',
+ title: 'å¾è±¡å±æ§',
+ titleButton: 'å¾åå屿§',
+ upload: 'ä¸ä¼ ',
+ urlMissing: '缺å°å¾åæºæä»¶å°å',
+ vSpace: 'åç´é´è·',
+ validateBorder: 'è¾¹æ¡å¤§å°å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
+ validateHSpace: 'æ°´å¹³é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
+ validateVSpace: 'åç´é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/image/lang/zh.js b/devel/third-party/ckeditor/plugins/image/lang/zh.js
new file mode 100644
index 0000000..51845ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/image/lang/zh.js
@@ -0,0 +1,26 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'image', 'zh', {
+ alertUrl: 'è«è¼¸å
¥å½±å URL',
+ alt: 'æ¿ä»£æå',
+ border: 'éæ¡',
+ btnUpload: 'ä¸å³è³ä¼ºæå¨',
+ button2Img: 'è¦æå½±åæéæ¹æå½±ååï¼',
+ hSpace: 'æ°´å¹³è·é¢',
+ img2Button: 'è¦æå½±åæ¹æå½±åæéåï¼',
+ infoTab: 'å½±åè³è¨',
+ linkTab: 'è¶
é£çµ',
+ lockRatio: 'çæ¯ä¾',
+ menu: 'å½±å屬æ§',
+ resetSize: 'éè¨çºå大å°',
+ title: 'å½±å屬æ§',
+ titleButton: 'å½±åæé屬æ§',
+ upload: 'ä¸å³',
+ urlMissing: 'Image source URL is missing.', // MISSING
+ vSpace: 'åç´è·é¢',
+ validateBorder: 'Border must be a whole number.', // MISSING
+ validateHSpace: 'HSpace must be a whole number.', // MISSING
+ validateVSpace: 'VSpace must be a whole number.' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/image/plugin.js b/devel/third-party/ckeditor/plugins/image/plugin.js
index 6757aa3..f9b4aad 100644
--- a/devel/third-party/ckeditor/plugins/image/plugin.js
+++ b/devel/third-party/ckeditor/plugins/image/plugin.js
@@ -1,81 +1,146 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Image plugin
+ * @fileOverview Image plugin
*/
-CKEDITOR.plugins.add( 'image',
-{
- init : function( editor )
- {
- var pluginName = 'image';
+(function() {
+
+ CKEDITOR.plugins.add( 'image', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'image', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ var pluginName = 'image';
- // Register the dialog.
- CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/image.js' );
+ // Register the dialog.
+ CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/image.js' );
- // Register the command.
- editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
+ // Register the command.
+ editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
- // Register the toolbar button.
- editor.ui.addButton( 'Image',
- {
- label : editor.lang.common.image,
- command : pluginName
+ // Register the toolbar button.
+ editor.ui.addButton && editor.ui.addButton( 'Image', {
+ label: editor.lang.common.image,
+ command: pluginName,
+ toolbar: 'insert,10'
});
- editor.on( 'doubleclick', function( evt )
- {
+ editor.on( 'doubleclick', function( evt ) {
var element = evt.data.element;
- if ( element.is( 'img' ) && !element.getAttribute( '_cke_realelement' ) )
+ if ( element.is( 'img' ) && !element.data( 'cke-realelement' ) && !element.isReadOnly() )
evt.data.dialog = 'image';
});
- // If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- image :
- {
- label : editor.lang.image.menu,
- command : 'image',
- group : 'image'
+ // If the "menu" plugin is loaded, register the menu items.
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ image: {
+ label: editor.lang.image.menu,
+ command: 'image',
+ group: 'image'
}
});
- }
+ }
- // If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !element || !element.is( 'img' ) || element.getAttribute( '_cke_realelement' ) || element.isReadOnly() )
- return null;
-
- return { image : CKEDITOR.TRISTATE_OFF };
+ // If the "contextmenu" plugin is loaded, register the listeners.
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element, selection ) {
+ if ( getSelectedImage( editor, element ) )
+ return { image: CKEDITOR.TRISTATE_OFF };
});
+ }
+ },
+ afterInit: function( editor ) {
+ // Customize the behavior of the alignment commands. (#7430)
+ setupAlignCommand( 'left' );
+ setupAlignCommand( 'right' );
+ setupAlignCommand( 'center' );
+ setupAlignCommand( 'block' );
+
+ function setupAlignCommand( value ) {
+ var command = editor.getCommand( 'justify' + value );
+ if ( command ) {
+ if ( value == 'left' || value == 'right' ) {
+ command.on( 'exec', function( evt ) {
+ var img = getSelectedImage( editor ),
+ align;
+ if ( img ) {
+ align = getImageAlignment( img );
+ if ( align == value ) {
+ img.removeStyle( 'float' );
+
+ // Remove "align" attribute when necessary.
+ if ( value == getImageAlignment( img ) )
+ img.removeAttribute( 'align' );
+ } else
+ img.setStyle( 'float', value );
+
+ evt.cancel();
+ }
+ });
+ }
+
+ command.on( 'refresh', function( evt ) {
+ var img = getSelectedImage( editor ),
+ align;
+ if ( img ) {
+ align = getImageAlignment( img );
+
+ this.setState(
+ ( align == value ) ? CKEDITOR.TRISTATE_ON : ( value == 'right' || value == 'left' ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+
+ evt.cancel();
+ }
+ });
+ }
+ }
+ }
+ });
+
+ function getSelectedImage( editor, element ) {
+ if ( !element ) {
+ var sel = editor.getSelection();
+ element = sel.getSelectedElement();
}
+
+ if ( element && element.is( 'img' ) && !element.data( 'cke-realelement' ) && !element.isReadOnly() )
+ return element;
+ }
+
+ function getImageAlignment( element ) {
+ var align = element.getStyle( 'float' );
+
+ if ( align == 'inherit' || align == 'none' )
+ align = 0;
+
+ if ( !align )
+ align = element.getAttribute( 'align' );
+
+ return align;
}
-} );
+
+})();
/**
* Whether to remove links when emptying the link URL field in the image dialog.
- * @type Boolean
- * @default true
- * @example
- * config.image_removeLinkByEmptyURL = false;
+ *
+ * config.image_removeLinkByEmptyURL = false;
+ *
+ * @cfg {Boolean} [image_removeLinkByEmptyURL=true]
+ * @member CKEDITOR.config
*/
CKEDITOR.config.image_removeLinkByEmptyURL = true;
/**
- * Padding text to set off the image in preview area.
- * @name CKEDITOR.config.image_previewText
- * @type String
- * @default "Lorem ipsum dolor..." placehoder text.
- * @example
- * config.image_previewText = CKEDITOR.tools.repeat( '___ ', 100 );
+ * Padding text to set off the image in preview area.
+ *
+ * config.image_previewText = CKEDITOR.tools.repeat( '___ ', 100 );
+ *
+ * @cfg {String} [image_previewText='Lorem ipsum dolor...' (placeholder text)]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/indent/icons/indent-rtl.png b/devel/third-party/ckeditor/plugins/indent/icons/indent-rtl.png
new file mode 100644
index 0000000..c13b9a9
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/indent/icons/indent-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/indent/icons/indent.png b/devel/third-party/ckeditor/plugins/indent/icons/indent.png
new file mode 100644
index 0000000..7156bbb
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/indent/icons/indent.png differ
diff --git a/devel/third-party/ckeditor/plugins/indent/icons/outdent-rtl.png b/devel/third-party/ckeditor/plugins/indent/icons/outdent-rtl.png
new file mode 100644
index 0000000..2f5071b
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/indent/icons/outdent-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/indent/icons/outdent.png b/devel/third-party/ckeditor/plugins/indent/icons/outdent.png
new file mode 100644
index 0000000..e037b1f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/indent/icons/outdent.png differ
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/af.js b/devel/third-party/ckeditor/plugins/indent/lang/af.js
new file mode 100644
index 0000000..d50ddbb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'af', {
+ indent: 'Vergroot inspring',
+ outdent: 'Verklein inspring'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ar.js b/devel/third-party/ckeditor/plugins/indent/lang/ar.js
new file mode 100644
index 0000000..069c9dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ar', {
+ indent: 'Ø²ÙØ§Ø¯Ø© اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',
+ outdent: 'Ø¥ÙÙØ§Øµ اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/bg.js b/devel/third-party/ckeditor/plugins/indent/lang/bg.js
new file mode 100644
index 0000000..4f6dea0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'bg', {
+ indent: 'УвелиÑаване на оÑÑÑÑпа',
+ outdent: 'ÐамалÑване на оÑÑÑÑпа'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/bn.js b/devel/third-party/ckeditor/plugins/indent/lang/bn.js
new file mode 100644
index 0000000..2f1507b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'bn', {
+ indent: 'à¦à¦¨à¦¡à§à¦¨à§à¦ বাà§à¦¾à¦',
+ outdent: 'à¦à¦¨à¦¡à§à¦¨à§à¦ à¦à¦®à¦¾à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/bs.js b/devel/third-party/ckeditor/plugins/indent/lang/bs.js
new file mode 100644
index 0000000..292c4cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'bs', {
+ indent: 'Poveæaj uvod',
+ outdent: 'Smanji uvod'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ca.js b/devel/third-party/ckeditor/plugins/indent/lang/ca.js
new file mode 100644
index 0000000..5faad40
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ca', {
+ indent: 'Augmenta el sagnat',
+ outdent: 'Redueix el sagnat'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/cs.js b/devel/third-party/ckeditor/plugins/indent/lang/cs.js
new file mode 100644
index 0000000..e08cd1f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'cs', {
+ indent: 'ZvÄtÅ¡it odsazenÃ',
+ outdent: 'ZmenÅ¡it odsazenÃ'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/cy.js b/devel/third-party/ckeditor/plugins/indent/lang/cy.js
new file mode 100644
index 0000000..126606b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'cy', {
+ indent: 'Cynyddu\'r Mewnoliad',
+ outdent: 'Lleihau\'r Mewnoliad'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/da.js b/devel/third-party/ckeditor/plugins/indent/lang/da.js
new file mode 100644
index 0000000..ddd74d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'da', {
+ indent: 'Forøg indrykning',
+ outdent: 'Formindsk indrykning'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/de.js b/devel/third-party/ckeditor/plugins/indent/lang/de.js
new file mode 100644
index 0000000..3519163
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'de', {
+ indent: 'Einzug erhöhen',
+ outdent: 'Einzug verringern'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/el.js b/devel/third-party/ckeditor/plugins/indent/lang/el.js
new file mode 100644
index 0000000..8ee0c04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'el', {
+ indent: 'ÎÏξηÏη ÎÏοÏήÏ',
+ outdent: 'ÎείÏÏη ÎÏοÏήÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/en-au.js b/devel/third-party/ckeditor/plugins/indent/lang/en-au.js
new file mode 100644
index 0000000..ea7d130
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'en-au', {
+ indent: 'Increase Indent',
+ outdent: 'Decrease Indent'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/en-ca.js b/devel/third-party/ckeditor/plugins/indent/lang/en-ca.js
new file mode 100644
index 0000000..7732d93
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'en-ca', {
+ indent: 'Increase Indent',
+ outdent: 'Decrease Indent'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/en-gb.js b/devel/third-party/ckeditor/plugins/indent/lang/en-gb.js
new file mode 100644
index 0000000..1359042
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'en-gb', {
+ indent: 'Increase Indent',
+ outdent: 'Decrease Indent'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/en.js b/devel/third-party/ckeditor/plugins/indent/lang/en.js
new file mode 100644
index 0000000..eca8168
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'en', {
+ indent: 'Increase Indent',
+ outdent: 'Decrease Indent'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/eo.js b/devel/third-party/ckeditor/plugins/indent/lang/eo.js
new file mode 100644
index 0000000..14b3e01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'eo', {
+ indent: 'Pligrandigi KrommarÄenon',
+ outdent: 'Malpligrandigi KrommarÄenon'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/es.js b/devel/third-party/ckeditor/plugins/indent/lang/es.js
new file mode 100644
index 0000000..6dd1e87
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'es', {
+ indent: 'Aumentar SangrÃa',
+ outdent: 'Disminuir SangrÃa'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/et.js b/devel/third-party/ckeditor/plugins/indent/lang/et.js
new file mode 100644
index 0000000..df8a194
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'et', {
+ indent: 'Taande suurendamine',
+ outdent: 'Taande vähendamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/eu.js b/devel/third-party/ckeditor/plugins/indent/lang/eu.js
new file mode 100644
index 0000000..ea5eb92
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'eu', {
+ indent: 'Handitu Koska',
+ outdent: 'Txikitu Koska'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/fa.js b/devel/third-party/ckeditor/plugins/indent/lang/fa.js
new file mode 100644
index 0000000..005bc7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'fa', {
+ indent: 'Ø§ÙØ²Ø§ÛØ´ ØªÙØ±ÙتگÛ',
+ outdent: 'Ú©Ø§ÙØ´ ØªÙØ±ÙتگÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/fi.js b/devel/third-party/ckeditor/plugins/indent/lang/fi.js
new file mode 100644
index 0000000..d7eb244
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'fi', {
+ indent: 'Suurenna sisennystä',
+ outdent: 'Pienennä sisennystä'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/fo.js b/devel/third-party/ckeditor/plugins/indent/lang/fo.js
new file mode 100644
index 0000000..7d75791
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'fo', {
+ indent: 'Ãkja reglubrotarinntriv',
+ outdent: 'Minka reglubrotarinntriv'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/indent/lang/fr-ca.js
new file mode 100644
index 0000000..ea99241
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'fr-ca', {
+ indent: 'Augmenter le retrait',
+ outdent: 'Diminuer le retrait'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/fr.js b/devel/third-party/ckeditor/plugins/indent/lang/fr.js
new file mode 100644
index 0000000..a305b86
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'fr', {
+ indent: 'Augmenter le retrait (tabulation)',
+ outdent: 'Diminuer le retrait (tabulation)'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/gl.js b/devel/third-party/ckeditor/plugins/indent/lang/gl.js
new file mode 100644
index 0000000..22edd66
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'gl', {
+ indent: 'Aumentar SangrÃa',
+ outdent: 'Disminuir SangrÃa'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/gu.js b/devel/third-party/ckeditor/plugins/indent/lang/gu.js
new file mode 100644
index 0000000..cab3260
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'gu', {
+ indent: 'àªàª¨à«àª¡à«àª¨à«àª, લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ વધારવà«',
+ outdent: 'àªàª¨à«àª¡à«àª¨à«àª લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ àªàªàª¾àª¡àªµà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/he.js b/devel/third-party/ckeditor/plugins/indent/lang/he.js
new file mode 100644
index 0000000..a12e33b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'he', {
+ indent: '××××ת ××××',
+ outdent: '××§×× ×ª ××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/hi.js b/devel/third-party/ckeditor/plugins/indent/lang/hi.js
new file mode 100644
index 0000000..2dd6174
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'hi', {
+ indent: 'à¤à¤¨à¥à¤¡à¥
नà¥à¤ बà¥à¤¾à¤¯à¥à¤',
+ outdent: 'à¤à¤¨à¥à¤¡à¥
नà¥à¤ à¤à¤® à¤à¤°à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/hr.js b/devel/third-party/ckeditor/plugins/indent/lang/hr.js
new file mode 100644
index 0000000..46ee245
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'hr', {
+ indent: 'Pomakni udesno',
+ outdent: 'Pomakni ulijevo'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/hu.js b/devel/third-party/ckeditor/plugins/indent/lang/hu.js
new file mode 100644
index 0000000..6c76a34
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'hu', {
+ indent: 'Behúzás növelése',
+ outdent: 'Behúzás csökkentése'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/is.js b/devel/third-party/ckeditor/plugins/indent/lang/is.js
new file mode 100644
index 0000000..c6e88fb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'is', {
+ indent: 'Minnka inndrátt',
+ outdent: 'Auka inndrátt'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/it.js b/devel/third-party/ckeditor/plugins/indent/lang/it.js
new file mode 100644
index 0000000..07f89b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'it', {
+ indent: 'Aumenta rientro',
+ outdent: 'Riduci rientro'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ja.js b/devel/third-party/ckeditor/plugins/indent/lang/ja.js
new file mode 100644
index 0000000..e7c17f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ja', {
+ indent: 'ã¤ã³ãã³ã',
+ outdent: 'ã¤ã³ãã³ãè§£é¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ka.js b/devel/third-party/ckeditor/plugins/indent/lang/ka.js
new file mode 100644
index 0000000..e472fd9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ka', {
+ indent: 'ááá¢áá á¨áá¬ááá',
+ outdent: 'áááááááá á¨áá¬ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/km.js b/devel/third-party/ckeditor/plugins/indent/lang/km.js
new file mode 100644
index 0000000..5971eab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'km', {
+ indent: 'áááááááá¶áá
á¼áááááá¶áá',
+ outdent: 'ááááááá¶áá
á¼áááááá¶áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ko.js b/devel/third-party/ckeditor/plugins/indent/lang/ko.js
new file mode 100644
index 0000000..29beb98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ko', {
+ indent: 'ë¤ì¬ì°ê¸°',
+ outdent: 'ë´ì´ì°ê¸°'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ku.js b/devel/third-party/ckeditor/plugins/indent/lang/ku.js
new file mode 100644
index 0000000..3dced77
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ku', {
+ indent: 'Ø²ÛØ§Ø¯Ú©Ø±Ø¯ÙÛ Ø¨ÛØ´Ø§ÛÛ',
+ outdent: 'Ú©ÛÙ
کردÙÛÙÛÛ Ø¨ÛØ´Ø§ÛÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/lt.js b/devel/third-party/ckeditor/plugins/indent/lang/lt.js
new file mode 100644
index 0000000..0f10935
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'lt', {
+ indent: 'Padidinti įtraukÄ
',
+ outdent: 'Sumažinti įtraukÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/lv.js b/devel/third-party/ckeditor/plugins/indent/lang/lv.js
new file mode 100644
index 0000000..fabd993
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'lv', {
+ indent: 'PalielinÄt atkÄpi',
+ outdent: 'SamazinÄt atkÄpi'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/mk.js b/devel/third-party/ckeditor/plugins/indent/lang/mk.js
new file mode 100644
index 0000000..46f89bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'mk', {
+ indent: 'Increase Indent', // MISSING
+ outdent: 'Decrease Indent' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/mn.js b/devel/third-party/ckeditor/plugins/indent/lang/mn.js
new file mode 100644
index 0000000..8e4b2f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'mn', {
+ indent: 'Ðогол Ð¼Ó©Ñ Ñ
аÑаÑ
',
+ outdent: 'Ðогол Ð¼Ó©Ñ Ð½ÑмÑÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ms.js b/devel/third-party/ckeditor/plugins/indent/lang/ms.js
new file mode 100644
index 0000000..a0a2d3b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ms', {
+ indent: 'Tambahkan Inden',
+ outdent: 'Kurangkan Inden'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/nb.js b/devel/third-party/ckeditor/plugins/indent/lang/nb.js
new file mode 100644
index 0000000..9e344d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'nb', {
+ indent: 'Ãk innrykk',
+ outdent: 'Reduser innrykk'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/nl.js b/devel/third-party/ckeditor/plugins/indent/lang/nl.js
new file mode 100644
index 0000000..cd7100f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'nl', {
+ indent: 'Inspringing vergroten',
+ outdent: 'Inspringing verkleinen'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/no.js b/devel/third-party/ckeditor/plugins/indent/lang/no.js
new file mode 100644
index 0000000..b95d6eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'no', {
+ indent: 'Ãk innrykk',
+ outdent: 'Reduser innrykk'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/pl.js b/devel/third-party/ckeditor/plugins/indent/lang/pl.js
new file mode 100644
index 0000000..9a10c38
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'pl', {
+ indent: 'ZwiÄksz wciÄcie',
+ outdent: 'Zmniejsz wciÄcie'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/pt-br.js b/devel/third-party/ckeditor/plugins/indent/lang/pt-br.js
new file mode 100644
index 0000000..2f8a957
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'pt-br', {
+ indent: 'Aumentar Recuo',
+ outdent: 'Diminuir Recuo'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/pt.js b/devel/third-party/ckeditor/plugins/indent/lang/pt.js
new file mode 100644
index 0000000..8d2b7ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'pt', {
+ indent: 'Aumentar Avanço',
+ outdent: 'Diminuir Avanço'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ro.js b/devel/third-party/ckeditor/plugins/indent/lang/ro.js
new file mode 100644
index 0000000..c1a9c9e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ro', {
+ indent: 'CreÅte indentarea',
+ outdent: 'Scade indentarea'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ru.js b/devel/third-party/ckeditor/plugins/indent/lang/ru.js
new file mode 100644
index 0000000..0643903
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ru', {
+ indent: 'УвелиÑиÑÑ Ð¾ÑÑÑÑп',
+ outdent: 'УменÑÑиÑÑ Ð¾ÑÑÑÑп'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/sk.js b/devel/third-party/ckeditor/plugins/indent/lang/sk.js
new file mode 100644
index 0000000..acf960b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'sk', {
+ indent: 'ZväÄÅ¡iÅ¥ odsadenie',
+ outdent: 'Zmenšiť odsadenie'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/sl.js b/devel/third-party/ckeditor/plugins/indent/lang/sl.js
new file mode 100644
index 0000000..e8e8da8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'sl', {
+ indent: 'PoveÄaj zamik',
+ outdent: 'Zmanjšaj zamik'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/indent/lang/sr-latn.js
new file mode 100644
index 0000000..9fe0a55
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'sr-latn', {
+ indent: 'UveÄaj levu marginu',
+ outdent: 'Smanji levu marginu'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/sr.js b/devel/third-party/ckeditor/plugins/indent/lang/sr.js
new file mode 100644
index 0000000..6d894ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'sr', {
+ indent: 'УвеÑÐ°Ñ Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ',
+ outdent: 'СмаÑи Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/sv.js b/devel/third-party/ckeditor/plugins/indent/lang/sv.js
new file mode 100644
index 0000000..ea56a57
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'sv', {
+ indent: 'Ãka indrag',
+ outdent: 'Minska indrag'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/th.js b/devel/third-party/ckeditor/plugins/indent/lang/th.js
new file mode 100644
index 0000000..2137f2e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'th', {
+ indent: 'à¹à¸à¸´à¹à¸¡à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²',
+ outdent: 'ลà¸à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/tr.js b/devel/third-party/ckeditor/plugins/indent/lang/tr.js
new file mode 100644
index 0000000..57b10ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'tr', {
+ indent: 'Sekme Arttır',
+ outdent: 'Sekme Azalt'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/ug.js b/devel/third-party/ckeditor/plugins/indent/lang/ug.js
new file mode 100644
index 0000000..63c962f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'ug', {
+ indent: 'ØªØ§Ø±Ø§ÙØª',
+ outdent: 'ÙÛÚÛÙØª'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/uk.js b/devel/third-party/ckeditor/plugins/indent/lang/uk.js
new file mode 100644
index 0000000..765a230
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'uk', {
+ indent: 'ÐбÑлÑÑиÑи вÑдÑÑÑп',
+ outdent: 'ÐменÑиÑи вÑдÑÑÑп'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/vi.js b/devel/third-party/ckeditor/plugins/indent/lang/vi.js
new file mode 100644
index 0000000..c0c3734
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'vi', {
+ indent: 'Dá»ch và o trong',
+ outdent: 'Dá»ch ra ngoà i'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/indent/lang/zh-cn.js
new file mode 100644
index 0000000..15cf559
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'zh-cn', {
+ indent: 'å¢å 缩è¿é',
+ outdent: 'åå°ç¼©è¿é'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/lang/zh.js b/devel/third-party/ckeditor/plugins/indent/lang/zh.js
new file mode 100644
index 0000000..dcfa448
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/indent/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'indent', 'zh', {
+ indent: 'å¢å 縮æ',
+ outdent: 'æ¸å°ç¸®æ'
+});
diff --git a/devel/third-party/ckeditor/plugins/indent/plugin.js b/devel/third-party/ckeditor/plugins/indent/plugin.js
index 4c1406e..0d58fd0 100644
--- a/devel/third-party/ckeditor/plugins/indent/plugin.js
+++ b/devel/third-party/ckeditor/plugins/indent/plugin.js
@@ -1,100 +1,83 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Increse and decrease indent commands.
+ * @fileOverview Increse and decrease indent commands.
*/
-(function()
-{
- var listNodeNames = { ol : 1, ul : 1 };
-
- var isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
+(function() {
+ var listNodeNames = { ol:1,ul:1 },
+ isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true );
- function setState( editor, state )
- {
- editor.getCommand( this.name ).setState( state );
- }
-
- function onSelectionChange( evt )
- {
- var editor = evt.editor;
-
- var elementPath = evt.data.path,
- list = elementPath && elementPath.contains( listNodeNames );
-
- if ( list )
- return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
-
- if ( !this.useIndentClasses && this.name == 'indent' )
- return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
-
- var path = evt.data.path,
- firstBlock = path.block || path.blockLimit;
- if ( !firstBlock )
- return setState.call( this, editor, CKEDITOR.TRISTATE_DISABLED );
-
- if ( this.useIndentClasses )
- {
- var indentClass = firstBlock.$.className.match( this.classNameRegex ),
- indentStep = 0;
- if ( indentClass )
- {
- indentClass = indentClass[1];
- indentStep = this.indentClassMap[ indentClass ];
- }
- if ( ( this.name == 'outdent' && !indentStep ) ||
- ( this.name == 'indent' && indentStep == editor.config.indentClasses.length ) )
- return setState.call( this, editor, CKEDITOR.TRISTATE_DISABLED );
- return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
- }
- else
- {
- var indent = parseInt( firstBlock.getStyle( getIndentCssProperty( firstBlock ) ), 10 );
- if ( isNaN( indent ) )
- indent = 0;
- if ( indent <= 0 )
- return setState.call( this, editor, CKEDITOR.TRISTATE_DISABLED );
- return setState.call( this, editor, CKEDITOR.TRISTATE_OFF );
- }
- }
-
- function indentCommand( editor, name )
- {
+ function indentCommand( editor, name ) {
this.name = name;
this.useIndentClasses = editor.config.indentClasses && editor.config.indentClasses.length > 0;
- if ( this.useIndentClasses )
- {
+ if ( this.useIndentClasses ) {
this.classNameRegex = new RegExp( '(?:^|\\s+)(' + editor.config.indentClasses.join( '|' ) + ')(?=$|\\s)' );
this.indentClassMap = {};
- for ( var i = 0 ; i < editor.config.indentClasses.length ; i++ )
- this.indentClassMap[ editor.config.indentClasses[i] ] = i + 1;
+ for ( var i = 0; i < editor.config.indentClasses.length; i++ )
+ this.indentClassMap[ editor.config.indentClasses[ i ] ] = i + 1;
}
this.startDisabled = name == 'outdent';
}
// Returns the CSS property to be used for identing a given element.
- function getIndentCssProperty( element )
- {
- return element.getComputedStyle( 'direction' ) == 'ltr' ? 'margin-left' : 'margin-right';
+ function getIndentCssProperty( element, dir ) {
+ return ( dir || element.getComputedStyle( 'direction' ) ) == 'ltr' ? 'margin-left' : 'margin-right';
}
- function isListItem( node )
- {
- return node.type = CKEDITOR.NODE_ELEMENT && node.is( 'li' );
+ function isListItem( node ) {
+ return node.type == CKEDITOR.NODE_ELEMENT && node.is( 'li' );
}
indentCommand.prototype = {
- exec : function( editor )
- {
- var self = this, database = {};
+ // It applies to a "block-like" context.
+ context: 'p',
+ refresh: function( editor, path ) {
+ var list = path && path.contains( listNodeNames ),
+ firstBlock = path.block || path.blockLimit;
+
+ if ( list )
+ this.setState( CKEDITOR.TRISTATE_OFF );
+
+ else if ( !this.useIndentClasses && this.name == 'indent' )
+ this.setState( CKEDITOR.TRISTATE_OFF );
- function indentList( listNode )
- {
+ else if ( !firstBlock )
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
+
+ else if ( this.useIndentClasses ) {
+ var indentClass = firstBlock.$.className.match( this.classNameRegex ),
+ indentStep = 0;
+
+ if ( indentClass ) {
+ indentClass = indentClass[ 1 ];
+ indentStep = this.indentClassMap[ indentClass ];
+ }
+
+ if ( ( this.name == 'outdent' && !indentStep ) || ( this.name == 'indent' && indentStep == editor.config.indentClasses.length ) )
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
+ else
+ this.setState( CKEDITOR.TRISTATE_OFF );
+ } else {
+ var indent = parseInt( firstBlock.getStyle( getIndentCssProperty( firstBlock ) ), 10 );
+ if ( isNaN( indent ) )
+ indent = 0;
+ if ( indent <= 0 )
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
+ else
+ this.setState( CKEDITOR.TRISTATE_OFF );
+ }
+ },
+ exec: function( editor ) {
+ var self = this,
+ database = {};
+
+ function indentList( listNode ) {
// Our starting and ending points of the range might be inside some blocks under a list item...
// So before playing with the iterator, we need to expand the block to include the list items.
var startContainer = range.startContainer,
@@ -111,8 +94,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var block = startContainer,
itemsToMove = [],
stopFlag = false;
- while ( !stopFlag )
- {
+ while ( !stopFlag ) {
if ( block.equals( endContainer ) )
stopFlag = true;
itemsToMove.push( block );
@@ -126,16 +108,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// possible about the surrounding lists, we need to feed it the further
// ancestor node that is still a list.
var listParents = listNode.getParents( true );
- for ( var i = 0 ; i < listParents.length ; i++ )
- {
- if ( listParents[i].getName && listNodeNames[ listParents[i].getName() ] )
- {
- listNode = listParents[i];
+ for ( var i = 0; i < listParents.length; i++ ) {
+ if ( listParents[ i ].getName && listNodeNames[ listParents[ i ].getName() ] ) {
+ listNode = listParents[ i ];
break;
}
}
var indentOffset = self.name == 'indent' ? 1 : -1,
- startItem = itemsToMove[0],
+ startItem = itemsToMove[ 0 ],
lastItem = itemsToMove[ itemsToMove.length - 1 ];
// Convert the list DOM tree into a one dimensional array.
@@ -143,38 +123,35 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Apply indenting or outdenting on the array.
var baseIndent = listArray[ lastItem.getCustomData( 'listarray_index' ) ].indent;
- for ( i = startItem.getCustomData( 'listarray_index' ); i <= lastItem.getCustomData( 'listarray_index' ); i++ )
- {
+ for ( i = startItem.getCustomData( 'listarray_index' ); i <= lastItem.getCustomData( 'listarray_index' ); i++ ) {
listArray[ i ].indent += indentOffset;
// Make sure the newly created sublist get a brand-new element of the same type. (#5372)
- var listRoot = listArray[ i ].parent;
- listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() );
+ if ( indentOffset > 0 ) {
+ var listRoot = listArray[ i ].parent;
+ listArray[ i ].parent = new CKEDITOR.dom.element( listRoot.getName(), listRoot.getDocument() );
+ }
}
- for ( i = lastItem.getCustomData( 'listarray_index' ) + 1 ;
- i < listArray.length && listArray[i].indent > baseIndent ; i++ )
- listArray[i].indent += indentOffset;
+ for ( i = lastItem.getCustomData( 'listarray_index' ) + 1;
+ i < listArray.length && listArray[ i ].indent > baseIndent; i++ )
+ listArray[ i ].indent += indentOffset;
// Convert the array back to a DOM forest (yes we might have a few subtrees now).
// And replace the old list with the new forest.
- var newListDir = listNode.getAttribute( 'dir' ) || listNode.getStyle( 'direction' );
- var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, newListDir );
+ var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, listNode.getDirection() );
// Avoid nested <li> after outdent even they're visually same,
// recording them for later refactoring.(#3982)
- if ( self.name == 'outdent' )
- {
+ if ( self.name == 'outdent' ) {
var parentLiElement;
- if ( ( parentLiElement = listNode.getParent() ) && parentLiElement.is( 'li' ) )
- {
+ if ( ( parentLiElement = listNode.getParent() ) && parentLiElement.is( 'li' ) ) {
var children = newList.listNode.getChildren(),
pendingLis = [],
count = children.count(),
child;
- for ( i = count - 1 ; i >= 0 ; i-- )
- {
- if ( ( child = children.getItem( i ) ) && child.is && child.is( 'li' ) )
+ for ( i = count - 1; i >= 0; i-- ) {
+ if ( ( child = children.getItem( i ) ) && child.is && child.is( 'li' ) )
pendingLis.push( child );
}
}
@@ -184,21 +161,18 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
newList.listNode.replace( listNode );
// Move the nested <li> to be appeared after the parent.
- if ( pendingLis && pendingLis.length )
- {
- for ( i = 0; i < pendingLis.length ; i++ )
- {
+ if ( pendingLis && pendingLis.length ) {
+ for ( i = 0; i < pendingLis.length; i++ ) {
var li = pendingLis[ i ],
followingList = li;
// Nest preceding <ul>/<ol> inside current <li> if any.
- while ( ( followingList = followingList.getNext() ) &&
- followingList.is &&
- followingList.getName() in listNodeNames )
- {
+ while ( ( followingList = followingList.getNext() ) && followingList.is && followingList.getName() in listNodeNames ) {
// IE requires a filler NBSP for nested list inside empty list item,
// otherwise the list item will be inaccessiable. (#4476)
- if ( CKEDITOR.env.ie && !li.getFirst( function( node ){ return isNotWhitespaces( node ) && isNotBookmark( node ); } ) )
+ if ( CKEDITOR.env.ie && !li.getFirst( function( node ) {
+ return isNotWhitespaces( node ) && isNotBookmark( node );
+ }))
li.append( range.document.createText( '\u00a0' ) );
li.append( followingList );
@@ -209,30 +183,26 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
- function indentBlock()
- {
+ function indentBlock() {
var iterator = range.createIterator(),
enterMode = editor.config.enterMode;
iterator.enforceRealBlocks = true;
iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR;
var block;
- while ( ( block = iterator.getNextParagraph() ) )
+ while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) )
indentElement( block );
}
- function indentElement( element )
- {
+ function indentElement( element, dir ) {
if ( element.getCustomData( 'indent_processed' ) )
return false;
- if ( self.useIndentClasses )
- {
+ if ( self.useIndentClasses ) {
// Transform current class name to indent step index.
var indentClass = element.$.className.match( self.classNameRegex ),
- indentStep = 0;
- if ( indentClass )
- {
- indentClass = indentClass[1];
+ indentStep = 0;
+ if ( indentClass ) {
+ indentClass = indentClass[ 1 ];
indentStep = self.indentClassMap[ indentClass ];
}
@@ -248,93 +218,81 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
indentStep = Math.min( indentStep, editor.config.indentClasses.length );
indentStep = Math.max( indentStep, 0 );
- var className = CKEDITOR.tools.ltrim( element.$.className.replace( self.classNameRegex, '' ) );
- if ( indentStep < 1 )
- element.$.className = className;
- else
+ element.$.className = CKEDITOR.tools.ltrim( element.$.className.replace( self.classNameRegex, '' ) );
+ if ( indentStep > 0 )
element.addClass( editor.config.indentClasses[ indentStep - 1 ] );
- }
- else
- {
- var indentCssProperty = getIndentCssProperty( element );
- var currentOffset = parseInt( element.getStyle( indentCssProperty ), 10 );
+ } else {
+ var indentCssProperty = getIndentCssProperty( element, dir ),
+ currentOffset = parseInt( element.getStyle( indentCssProperty ), 10 );
if ( isNaN( currentOffset ) )
currentOffset = 0;
- currentOffset += ( self.name == 'indent' ? 1 : -1 ) * editor.config.indentOffset;
+ var indentOffset = editor.config.indentOffset || 40;
+ currentOffset += ( self.name == 'indent' ? 1 : -1 ) * indentOffset;
if ( currentOffset < 0 )
return false;
currentOffset = Math.max( currentOffset, 0 );
- currentOffset = Math.ceil( currentOffset / editor.config.indentOffset ) * editor.config.indentOffset;
- element.setStyle( indentCssProperty, currentOffset ? currentOffset + editor.config.indentUnit : '' );
+ currentOffset = Math.ceil( currentOffset / indentOffset ) * indentOffset;
+ element.setStyle( indentCssProperty, currentOffset ? currentOffset + ( editor.config.indentUnit || 'px' ) : '' );
if ( element.getAttribute( 'style' ) === '' )
element.removeAttribute( 'style' );
}
- CKEDITOR.dom.element.setMarker( database, element, 'indent_processed', true );
+ CKEDITOR.dom.element.setMarker( database, element, 'indent_processed', 1 );
return true;
}
var selection = editor.getSelection(),
- bookmarks = selection.createBookmarks( true ),
- ranges = selection && selection.getRanges( true ),
+ bookmarks = selection.createBookmarks( 1 ),
+ ranges = selection && selection.getRanges( 1 ),
range;
- var skipBookmarks = function( node )
- {
- return ! node.hasAttribute( '_cke_bookmark' );
- };
var iterator = ranges.createIterator();
- while ( ( range = iterator.getNextRange() ) )
- {
- // Do not indent body. (#6138)
- range.shrink( CKEDITOR.SHRINK_ELEMENT );
- if ( range.endContainer.getName() == 'body' )
- range.setEndAt( range.endContainer.getLast( skipBookmarks ), CKEDITOR.POSITION_BEFORE_END );
-
- var startContainer = range.startContainer,
- endContainer = range.endContainer,
- rangeRoot = range.getCommonAncestor(),
+ while ( ( range = iterator.getNextRange() ) ) {
+ var rangeRoot = range.getCommonAncestor(),
nearestListBlock = rangeRoot;
- while ( nearestListBlock && !( nearestListBlock.type == CKEDITOR.NODE_ELEMENT &&
- listNodeNames[ nearestListBlock.getName() ] ) )
+ while ( nearestListBlock && !( nearestListBlock.type == CKEDITOR.NODE_ELEMENT && listNodeNames[ nearestListBlock.getName() ] ) )
nearestListBlock = nearestListBlock.getParent();
+ // Avoid having selection enclose the entire list. (#6138)
+ // [<ul><li>...</li></ul>] =><ul><li>[...]</li></ul>
+ if ( !nearestListBlock ) {
+ var selectedNode = range.getEnclosedNode();
+ if ( selectedNode && selectedNode.type == CKEDITOR.NODE_ELEMENT && selectedNode.getName() in listNodeNames ) {
+ range.setStartAt( selectedNode, CKEDITOR.POSITION_AFTER_START );
+ range.setEndAt( selectedNode, CKEDITOR.POSITION_BEFORE_END );
+ nearestListBlock = selectedNode;
+ }
+ }
+
// Avoid selection anchors under list root.
// <ul>[<li>...</li>]</ul> => <ul><li>[...]</li></ul>
- if ( nearestListBlock && startContainer.type == CKEDITOR.NODE_ELEMENT
- && startContainer.getName() in listNodeNames )
- {
+ if ( nearestListBlock && range.startContainer.type == CKEDITOR.NODE_ELEMENT && range.startContainer.getName() in listNodeNames ) {
var walker = new CKEDITOR.dom.walker( range );
walker.evaluator = isListItem;
range.startContainer = walker.next();
}
- if ( nearestListBlock && endContainer.type == CKEDITOR.NODE_ELEMENT
- && endContainer.getName() in listNodeNames )
- {
+ if ( nearestListBlock && range.endContainer.type == CKEDITOR.NODE_ELEMENT && range.endContainer.getName() in listNodeNames ) {
walker = new CKEDITOR.dom.walker( range );
walker.evaluator = isListItem;
range.endContainer = walker.previous();
}
- if ( nearestListBlock )
- {
- var firstListItem = nearestListBlock.getFirst( function( node )
- {
- return node.type == CKEDITOR.NODE_ELEMENT && node.is( 'li' );
- }),
+ if ( nearestListBlock ) {
+ var firstListItem = nearestListBlock.getFirst( isListItem ),
+ hasMultipleItems = !!firstListItem.getNext( isListItem ),
rangeStart = range.startContainer,
indentWholeList = firstListItem.equals( rangeStart ) || firstListItem.contains( rangeStart );
- // Indent the entire list if cursor is inside the first list item. (#3893)
- if ( !( indentWholeList && indentElement( nearestListBlock ) ) )
+ // Indent the entire list if cursor is inside the first list item. (#3893)
+ // Only do that for indenting or when using indent classes or when there is something to outdent. (#6141)
+ if ( !( indentWholeList && ( self.name == 'indent' || self.useIndentClasses || parseInt( nearestListBlock.getStyle( getIndentCssProperty( nearestListBlock ) ), 10 ) ) && indentElement( nearestListBlock, !hasMultipleItems && firstListItem.getDirection() ) ) )
indentList( nearestListBlock );
- }
- else
+ } else
indentBlock();
}
@@ -346,102 +304,114 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
};
- CKEDITOR.plugins.add( 'indent',
- {
- init : function( editor )
- {
- // Register commands.
- var indent = new indentCommand( editor, 'indent' ),
- outdent = new indentCommand( editor, 'outdent' );
- editor.addCommand( 'indent', indent );
- editor.addCommand( 'outdent', outdent );
-
- // Register the toolbar buttons.
- editor.ui.addButton( 'Indent',
- {
- label : editor.lang.indent,
- command : 'indent'
- });
- editor.ui.addButton( 'Outdent',
- {
- label : editor.lang.outdent,
- command : 'outdent'
- });
-
- // Register the state changing handlers.
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, indent ) );
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, outdent ) );
-
+ CKEDITOR.plugins.add( 'indent', {
+ // TODO: Remove this dependency.
+ requires: 'list',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'indent,indent-rtl,outdent,outdent-rtl', // %REMOVE_LINE_CORE%
+ onLoad: function() {
// [IE6/7] Raw lists are using margin instead of padding for visual indentation in wysiwyg mode. (#3893)
- if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat )
- {
- editor.addCss(
- "ul,ol" +
+ if ( CKEDITOR.env.ie6Compat || CKEDITOR.env.ie7Compat ) {
+ CKEDITOR.addCss( ".cke_editable ul," +
+ ".cke_editable ol" +
"{" +
" margin-left: 0px;" +
" padding-left: 40px;" +
"}" );
}
},
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- requires : [ 'domiterator', 'list' ]
- } );
-})();
+ // Register commands.
+ var indent = editor.addCommand( 'indent', new indentCommand( editor, 'indent' ) ),
+ outdent = editor.addCommand( 'outdent', new indentCommand( editor, 'outdent' ) );
+
+ if ( editor.ui.addButton ) {
+ // Register the toolbar buttons.
+ editor.ui.addButton( 'Indent', {
+ label: editor.lang.indent.indent,
+ command: 'indent',
+ directional: true,
+ toolbar: 'indent,20'
+ });
+ editor.ui.addButton( 'Outdent', {
+ label: editor.lang.indent.outdent,
+ command: 'outdent',
+ directional: true,
+ toolbar: 'indent,10'
+ });
+ }
-CKEDITOR.tools.extend( CKEDITOR.config,
- {
- indentOffset : 40,
- indentUnit : 'px',
- indentClasses : null
- });
+ // Register dirChanged listener.
+ editor.on( 'dirChanged', function( e ) {
+ var range = editor.createRange();
+ range.setStartBefore( e.data.node );
+ range.setEndAfter( e.data.node );
+
+ var walker = new CKEDITOR.dom.walker( range ),
+ node;
+
+ while ( ( node = walker.next() ) ) {
+ if ( node.type == CKEDITOR.NODE_ELEMENT ) {
+ // A child with the defined dir is to be ignored.
+ if ( !node.equals( e.data.node ) && node.getDirection() ) {
+ range.setStartAfter( node );
+ walker = new CKEDITOR.dom.walker( range );
+ continue;
+ }
-/**
- * Size of each indentation step
- * @type Number
- * @example
- * config.indentOffset = 40;
- */
+ // Switch alignment classes.
+ var classes = editor.config.indentClasses;
+ if ( classes ) {
+ var suffix = ( e.data.dir == 'ltr' ) ? [ '_rtl', '' ] : [ '', '_rtl' ];
+ for ( var i = 0; i < classes.length; i++ ) {
+ if ( node.hasClass( classes[ i ] + suffix[ 0 ] ) ) {
+ node.removeClass( classes[ i ] + suffix[ 0 ] );
+ node.addClass( classes[ i ] + suffix[ 1 ] );
+ }
+ }
+ }
- /**
- * Unit for the indentation style
- * @type String
- * @example
- * config.indentUnit = 'px';
- */
+ // Switch the margins.
+ var marginLeft = node.getStyle( 'margin-right' ),
+ marginRight = node.getStyle( 'margin-left' );
- /**
- * List of classes to use for indenting the contents.
- * @type Array
- * @example
- * // Don't use classes for indenting. (this is the default value)
- * config.indentClasses = null;
- * @example
- * // Use the classes 'Indent1', 'Indent2', 'Indent3'
- * config.indentClasses = ['Indent1', 'Indent2', 'Indent3'];
- */
+ marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' );
+ marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' );
+ }
+ }
+ });
+ }
+ });
+})();
/**
- * Size of each indentation step
- * @type Number
- * @default 40
- * @example
- * config.indentOffset = 4;
+ * Size of each indentation step.
+ *
+ * config.indentOffset = 4;
+ *
+ * @cfg {Number} [indentOffset=40]
+ * @member CKEDITOR.config
*/
- /**
- * Unit for the indentation style
- * @type String
- * @default 'px'
- * @example
- * config.indentUnit = 'em';
+/**
+ * Unit for the indentation style.
+ *
+ * config.indentUnit = 'em';
+ *
+ * @cfg {String} [indentUnit='px']
+ * @member CKEDITOR.config
*/
- /**
- * List of classes to use for indenting the contents. If it's null, no classes will be used
+/**
+ * List of classes to use for indenting the contents. If it's `null`, no classes will be used
* and instead the {@link #indentUnit} and {@link #indentOffset} properties will be used.
- * @type Array
- * default null
- * @example
- * // Use the classes 'Indent1', 'Indent2', 'Indent3'
- * config.indentClasses = ['Indent1', 'Indent2', 'Indent3'];
+ *
+ * // Use the classes 'Indent1', 'Indent2', 'Indent3'
+ * config.indentClasses = ['Indent1', 'Indent2', 'Indent3'];
+ *
+ * @cfg {Array} [indentClasses=null]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/justify/icons/justifyblock.png b/devel/third-party/ckeditor/plugins/justify/icons/justifyblock.png
new file mode 100644
index 0000000..a22b5ec
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/justify/icons/justifyblock.png differ
diff --git a/devel/third-party/ckeditor/plugins/justify/icons/justifycenter.png b/devel/third-party/ckeditor/plugins/justify/icons/justifycenter.png
new file mode 100644
index 0000000..854a272
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/justify/icons/justifycenter.png differ
diff --git a/devel/third-party/ckeditor/plugins/justify/icons/justifyleft.png b/devel/third-party/ckeditor/plugins/justify/icons/justifyleft.png
new file mode 100644
index 0000000..7d48bab
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/justify/icons/justifyleft.png differ
diff --git a/devel/third-party/ckeditor/plugins/justify/icons/justifyright.png b/devel/third-party/ckeditor/plugins/justify/icons/justifyright.png
new file mode 100644
index 0000000..ba220ee
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/justify/icons/justifyright.png differ
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/af.js b/devel/third-party/ckeditor/plugins/justify/lang/af.js
new file mode 100644
index 0000000..8ab5a58
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/af.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'af', {
+ block: 'Uitvul',
+ center: 'Sentreer',
+ left: 'Links oplyn',
+ right: 'Regs oplyn'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ar.js b/devel/third-party/ckeditor/plugins/justify/lang/ar.js
new file mode 100644
index 0000000..5531022
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ar.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ar', {
+ block: 'ضبط',
+ center: 'ØªÙØ³ÙØ·',
+ left: 'Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙØ³Ø§Ø±',
+ right: 'Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙÙ
ÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/bg.js b/devel/third-party/ckeditor/plugins/justify/lang/bg.js
new file mode 100644
index 0000000..44580b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/bg.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'bg', {
+ block: 'ÐвÑÑÑÑанно подÑавнÑване',
+ center: 'ЦенÑÑÑ',
+ left: 'ÐодÑавни в лÑво',
+ right: 'ÐодÑавни в дÑÑно'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/bn.js b/devel/third-party/ckeditor/plugins/justify/lang/bn.js
new file mode 100644
index 0000000..0e28606
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/bn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'bn', {
+ block: 'বà§à¦²à¦ à¦à¦¾à¦¸à§à¦à¦¿à¦«à¦¾à¦',
+ center: 'মাঠবরাবর à¦à§à¦·à¦¾',
+ left: 'বা দিà¦à§ à¦à§à¦à¦·à¦¾',
+ right: 'ডান দিà¦à§ à¦à§à¦à¦·à¦¾'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/bs.js b/devel/third-party/ckeditor/plugins/justify/lang/bs.js
new file mode 100644
index 0000000..683c4d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/bs.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'bs', {
+ block: 'Puno poravnanje',
+ center: 'Centralno poravnanje',
+ left: 'Lijevo poravnanje',
+ right: 'Desno poravnanje'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ca.js b/devel/third-party/ckeditor/plugins/justify/lang/ca.js
new file mode 100644
index 0000000..7497ee9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ca.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ca', {
+ block: 'Justificat',
+ center: 'Centrat',
+ left: 'Alinea a l\'esquerra',
+ right: 'Alinea a la dreta'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/cs.js b/devel/third-party/ckeditor/plugins/justify/lang/cs.js
new file mode 100644
index 0000000..8134d46
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/cs.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'cs', {
+ block: 'Zarovnat do bloku',
+ center: 'Zarovnat na stÅed',
+ left: 'Zarovnat vlevo',
+ right: 'Zarovnat vpravo'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/cy.js b/devel/third-party/ckeditor/plugins/justify/lang/cy.js
new file mode 100644
index 0000000..106e6f3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/cy.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'cy', {
+ block: 'Aliniad Bloc',
+ center: 'Alinio i\'r Canol',
+ left: 'Alinio i\'r Chwith',
+ right: 'Alinio i\'r Dde'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/da.js b/devel/third-party/ckeditor/plugins/justify/lang/da.js
new file mode 100644
index 0000000..8c4bbbc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/da.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'da', {
+ block: 'Lige margener',
+ center: 'Centreret',
+ left: 'Venstrestillet',
+ right: 'Højrestillet'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/de.js b/devel/third-party/ckeditor/plugins/justify/lang/de.js
new file mode 100644
index 0000000..e730163
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/de.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'de', {
+ block: 'Blocksatz',
+ center: 'Zentriert',
+ left: 'Linksbündig',
+ right: 'Rechtsbündig'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/el.js b/devel/third-party/ckeditor/plugins/justify/lang/el.js
new file mode 100644
index 0000000..e34f627
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/el.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'el', {
+ block: 'ΠλήÏÎ·Ï Î£ÏοίÏιÏη',
+ center: 'ΣÏοίÏιÏη ÏÏο ÎÎνÏÏο',
+ left: 'ΣÏοίÏιÏη ÎÏιÏÏεÏά',
+ right: 'ΣÏοίÏιÏη Îεξιά'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/en-au.js b/devel/third-party/ckeditor/plugins/justify/lang/en-au.js
new file mode 100644
index 0000000..e97c90a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/en-au.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'en-au', {
+ block: 'Justify',
+ center: 'Centre',
+ left: 'Align Left',
+ right: 'Align Right'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/en-ca.js b/devel/third-party/ckeditor/plugins/justify/lang/en-ca.js
new file mode 100644
index 0000000..436a26e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/en-ca.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'en-ca', {
+ block: 'Justify',
+ center: 'Centre',
+ left: 'Align Left',
+ right: 'Align Right'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/en-gb.js b/devel/third-party/ckeditor/plugins/justify/lang/en-gb.js
new file mode 100644
index 0000000..8332268
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/en-gb.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'en-gb', {
+ block: 'Justify',
+ center: 'Centre',
+ left: 'Align Left',
+ right: 'Align Right'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/en.js b/devel/third-party/ckeditor/plugins/justify/lang/en.js
new file mode 100644
index 0000000..04114ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/en.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'en', {
+ block: 'Justify',
+ center: 'Center',
+ left: 'Align Left',
+ right: 'Align Right'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/eo.js b/devel/third-party/ckeditor/plugins/justify/lang/eo.js
new file mode 100644
index 0000000..0459073
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/eo.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'eo', {
+ block: 'Äisrandigi AmbaÅflanke',
+ center: 'Centrigi',
+ left: 'Äisrandigi maldekstren',
+ right: 'Äisrandigi dekstren'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/es.js b/devel/third-party/ckeditor/plugins/justify/lang/es.js
new file mode 100644
index 0000000..a219a43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/es.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'es', {
+ block: 'Justificado',
+ center: 'Centrar',
+ left: 'Alinear a Izquierda',
+ right: 'Alinear a Derecha'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/et.js b/devel/third-party/ckeditor/plugins/justify/lang/et.js
new file mode 100644
index 0000000..9810691
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/et.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'et', {
+ block: 'Rööpjoondus',
+ center: 'Keskjoondus',
+ left: 'Vasakjoondus',
+ right: 'Paremjoondus'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/eu.js b/devel/third-party/ckeditor/plugins/justify/lang/eu.js
new file mode 100644
index 0000000..32a3293
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/eu.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'eu', {
+ block: 'Justifikatu',
+ center: 'Lerrokatu Erdian',
+ left: 'Lerrokatu Ezkerrean',
+ right: 'Lerrokatu Eskuman'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/fa.js b/devel/third-party/ckeditor/plugins/justify/lang/fa.js
new file mode 100644
index 0000000..0a71c32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/fa.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'fa', {
+ block: 'بÙÙÚ©ÚÛÙ',
+ center: 'Ù
ÛØ§ÙÚÛÙ',
+ left: 'ÚÙ¾ÚÛÙ',
+ right: 'راستÚÛÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/fi.js b/devel/third-party/ckeditor/plugins/justify/lang/fi.js
new file mode 100644
index 0000000..54b6dbf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/fi.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'fi', {
+ block: 'Tasaa molemmat reunat',
+ center: 'Keskitä',
+ left: 'Tasaa vasemmat reunat',
+ right: 'Tasaa oikeat reunat'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/fo.js b/devel/third-party/ckeditor/plugins/justify/lang/fo.js
new file mode 100644
index 0000000..9109cbd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/fo.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'fo', {
+ block: 'Javnir tekstkantar',
+ center: 'Miðsett',
+ left: 'Vinstrasett',
+ right: 'Høgrasett'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/justify/lang/fr-ca.js
new file mode 100644
index 0000000..89b4264
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/fr-ca.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'fr-ca', {
+ block: 'Texte justifié',
+ center: 'Centrer',
+ left: 'Aligner à gauche',
+ right: 'Aligner à Droite'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/fr.js b/devel/third-party/ckeditor/plugins/justify/lang/fr.js
new file mode 100644
index 0000000..a1cf28d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/fr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'fr', {
+ block: 'Justifier',
+ center: 'Centrer',
+ left: 'Aligner à gauche',
+ right: 'Aligner à droite'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/gl.js b/devel/third-party/ckeditor/plugins/justify/lang/gl.js
new file mode 100644
index 0000000..c0d4cd8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/gl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'gl', {
+ block: 'Xustificado',
+ center: 'Centrado',
+ left: 'Aliñar á Esquerda',
+ right: 'Aliñar á Dereita'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/gu.js b/devel/third-party/ckeditor/plugins/justify/lang/gu.js
new file mode 100644
index 0000000..2d3bbd8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/gu.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'gu', {
+ block: 'બà«àª²à«àª, àª
àªàª¤àª°àª¾àª¯ àªàª¸à«àªàª¿àª«àª¾àª',
+ center: 'સàªàªà«àªàª¦à«àª°àª£/સà«àªàªàª°àª¿àªàª',
+ left: 'ડાબૠબાàªà«àª/બાàªà« તરફ',
+ right: 'àªàª®àª£à« બાàªà«àª/બાàªà« તરફ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/he.js b/devel/third-party/ckeditor/plugins/justify/lang/he.js
new file mode 100644
index 0000000..63efd33
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/he.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'he', {
+ block: '××ש×ר ×ש×××××',
+ center: '×ר×××',
+ left: '××ש×ר ×ש×××',
+ right: '××ש×ר ×××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/hi.js b/devel/third-party/ckeditor/plugins/justify/lang/hi.js
new file mode 100644
index 0000000..e5188fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/hi.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'hi', {
+ block: 'बà¥à¤²à¥à¤ à¤à¤¸à¥à¤à¥à¥à¤¾à¤',
+ center: 'बà¥à¤ मà¥à¤',
+ left: 'बायà¥à¤ तरफ',
+ right: 'दायà¥à¤ तरफ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/hr.js b/devel/third-party/ckeditor/plugins/justify/lang/hr.js
new file mode 100644
index 0000000..d5e071f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/hr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'hr', {
+ block: 'Blok poravnanje',
+ center: 'Središnje poravnanje',
+ left: 'Lijevo poravnanje',
+ right: 'Desno poravnanje'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/hu.js b/devel/third-party/ckeditor/plugins/justify/lang/hu.js
new file mode 100644
index 0000000..0d2caa6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/hu.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'hu', {
+ block: 'Sorkizárt',
+ center: 'Középre',
+ left: 'Balra',
+ right: 'Jobbra'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/is.js b/devel/third-party/ckeditor/plugins/justify/lang/is.js
new file mode 100644
index 0000000..9ff5f3e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/is.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'is', {
+ block: 'Jafna báðum megin',
+ center: 'Miðja texta',
+ left: 'Vinstrijöfnun',
+ right: 'Hægrijöfnun'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/it.js b/devel/third-party/ckeditor/plugins/justify/lang/it.js
new file mode 100644
index 0000000..8f4f20a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/it.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'it', {
+ block: 'Giustifica',
+ center: 'Centra',
+ left: 'Allinea a sinistra',
+ right: 'Allinea a destra'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ja.js b/devel/third-party/ckeditor/plugins/justify/lang/ja.js
new file mode 100644
index 0000000..76af14e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ja.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ja', {
+ block: '両端æã',
+ center: 'ä¸å¤®æã',
+ left: 'å·¦æã',
+ right: '峿ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ka.js b/devel/third-party/ckeditor/plugins/justify/lang/ka.js
new file mode 100644
index 0000000..e2f1691
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ka.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ka', {
+ block: 'ááááá¡á¬áá ááá',
+ center: 'á¨á£áá¨á á¡á¬áá ááá',
+ left: 'ááá áªá®ááá á¡á¬áá ááá',
+ right: 'ááá á¯áááá á¡á¬áá ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/km.js b/devel/third-party/ckeditor/plugins/justify/lang/km.js
new file mode 100644
index 0000000..9477ede
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/km.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'km', {
+ block: 'áááá¹ááááá¶á',
+ center: 'áááá¹áááááá¶á',
+ left: 'áááá¹áááááá',
+ right: 'áááá¹ááááá¶á'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ko.js b/devel/third-party/ckeditor/plugins/justify/lang/ko.js
new file mode 100644
index 0000000..f65c8fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ko.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ko', {
+ block: 'ì쪽 ë§ì¶¤',
+ center: 'ê°ì´ë° ì ë ¬',
+ left: 'ì¼ìª½ ì ë ¬',
+ right: 'ì¤ë¥¸ìª½ ì ë ¬'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ku.js b/devel/third-party/ckeditor/plugins/justify/lang/ku.js
new file mode 100644
index 0000000..7259019
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ku.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ku', {
+ block: 'ÙØ§ÙستÙÙÙÛ',
+ center: 'ÙØ§ÙÙÚØ§Ø³Øª',
+ left: 'بÙÙÛÚµ کردÙÛ ÚÙÙ¾',
+ right: 'بÙÙÛÚµ کردÙÛ ÚØ§Ø³Øª'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/lt.js b/devel/third-party/ckeditor/plugins/justify/lang/lt.js
new file mode 100644
index 0000000..eaaa4f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/lt.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'lt', {
+ block: 'Lygiuoti abi puses',
+ center: 'Centruoti',
+ left: 'Lygiuoti kairÄ',
+ right: 'Lygiuoti deÅ¡inÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/lv.js b/devel/third-party/ckeditor/plugins/justify/lang/lv.js
new file mode 100644
index 0000000..3b58e5a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/lv.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'lv', {
+ block: 'IzlÄ«dzinÄt malas',
+ center: 'IzlÄ«dzinÄt pret centru',
+ left: 'IzlÄ«dzinÄt pa kreisi',
+ right: 'IzlÄ«dzinÄt pa labi'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/mk.js b/devel/third-party/ckeditor/plugins/justify/lang/mk.js
new file mode 100644
index 0000000..7efb399
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/mk.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'mk', {
+ block: 'Justify', // MISSING
+ center: 'Center', // MISSING
+ left: 'Align Left', // MISSING
+ right: 'Align Right' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/mn.js b/devel/third-party/ckeditor/plugins/justify/lang/mn.js
new file mode 100644
index 0000000..6036d24
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/mn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'mn', {
+ block: 'ТÑгÑлÑÑ
',
+ center: 'ÐоллÑÑлаÑ
',
+ left: 'Ðүүн Ñалд ÑÑлгаÑ
',
+ right: 'ÐаÑÑÑн Ñалд ÑÑлгаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ms.js b/devel/third-party/ckeditor/plugins/justify/lang/ms.js
new file mode 100644
index 0000000..20675cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ms.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ms', {
+ block: 'Jajaran Blok',
+ center: 'Jajaran Tengah',
+ left: 'Jajaran Kiri',
+ right: 'Jajaran Kanan'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/nb.js b/devel/third-party/ckeditor/plugins/justify/lang/nb.js
new file mode 100644
index 0000000..4a1bed4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/nb.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'nb', {
+ block: 'Blokkjuster',
+ center: 'Midtstill',
+ left: 'Venstrejuster',
+ right: 'Høyrejuster'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/nl.js b/devel/third-party/ckeditor/plugins/justify/lang/nl.js
new file mode 100644
index 0000000..b696e5f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/nl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'nl', {
+ block: 'Uitvullen',
+ center: 'Centreren',
+ left: 'Links uitlijnen',
+ right: 'Rechts uitlijnen'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/no.js b/devel/third-party/ckeditor/plugins/justify/lang/no.js
new file mode 100644
index 0000000..154c3d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/no.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'no', {
+ block: 'Blokkjuster',
+ center: 'Midtstill',
+ left: 'Venstrejuster',
+ right: 'Høyrejuster'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/pl.js b/devel/third-party/ckeditor/plugins/justify/lang/pl.js
new file mode 100644
index 0000000..91e3643
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/pl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'pl', {
+ block: 'Wyjustuj',
+ center: 'WyÅrodkuj',
+ left: 'Wyrównaj do lewej',
+ right: 'Wyrównaj do prawej'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/pt-br.js b/devel/third-party/ckeditor/plugins/justify/lang/pt-br.js
new file mode 100644
index 0000000..e0c2e7a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/pt-br.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'pt-br', {
+ block: 'Justificado',
+ center: 'Centralizar',
+ left: 'Alinhar Esquerda',
+ right: 'Alinhar Direita'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/pt.js b/devel/third-party/ckeditor/plugins/justify/lang/pt.js
new file mode 100644
index 0000000..01190eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/pt.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'pt', {
+ block: 'Justificado',
+ center: 'Alinhar ao Centro',
+ left: 'Alinhar à Esquerda',
+ right: 'Alinhar à Direita'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ro.js b/devel/third-party/ckeditor/plugins/justify/lang/ro.js
new file mode 100644
index 0000000..e209a17
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ro.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ro', {
+ block: 'Aliniere în bloc (Block Justify)',
+ center: 'Aliniere centralÄ',
+ left: 'Aliniere la stânga',
+ right: 'Aliniere la dreapta'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ru.js b/devel/third-party/ckeditor/plugins/justify/lang/ru.js
new file mode 100644
index 0000000..e00e1dd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ru.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ru', {
+ block: 'Ðо ÑиÑине',
+ center: 'Ðо ÑенÑÑÑ',
+ left: 'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
+ right: 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/sk.js b/devel/third-party/ckeditor/plugins/justify/lang/sk.js
new file mode 100644
index 0000000..39a7d9f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/sk.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'sk', {
+ block: 'Zarovnať do bloku',
+ center: 'Zarovnať na stred',
+ left: 'Zarovnať vľavo',
+ right: 'Zarovnať vpravo'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/sl.js b/devel/third-party/ckeditor/plugins/justify/lang/sl.js
new file mode 100644
index 0000000..98b9c19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/sl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'sl', {
+ block: 'Obojestranska poravnava',
+ center: 'Sredinska poravnava',
+ left: 'Leva poravnava',
+ right: 'Desna poravnava'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/justify/lang/sr-latn.js
new file mode 100644
index 0000000..88363d5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/sr-latn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'sr-latn', {
+ block: 'Obostrano ravnanje',
+ center: 'Centriran tekst',
+ left: 'Levo ravnanje',
+ right: 'Desno ravnanje'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/sr.js b/devel/third-party/ckeditor/plugins/justify/lang/sr.js
new file mode 100644
index 0000000..ccbb719
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/sr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'sr', {
+ block: 'ÐбоÑÑÑано ÑавнаÑе',
+ center: 'ЦенÑÑиÑан ÑекÑÑ',
+ left: 'Ðево ÑавнаÑе',
+ right: 'ÐеÑно ÑавнаÑе'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/sv.js b/devel/third-party/ckeditor/plugins/justify/lang/sv.js
new file mode 100644
index 0000000..a1652ed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/sv.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'sv', {
+ block: 'Justera till marginaler',
+ center: 'Centrera',
+ left: 'Vänsterjustera',
+ right: 'Högerjustera'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/th.js b/devel/third-party/ckeditor/plugins/justify/lang/th.js
new file mode 100644
index 0000000..7454982
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/th.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'th', {
+ block: 'à¸à¸±à¸à¸à¸à¸à¸µà¸«à¸à¹à¸²à¸à¸£à¸°à¸à¸²à¸©',
+ center: 'à¸à¸±à¸à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',
+ left: 'à¸à¸±à¸à¸à¸´à¸à¸à¹à¸²à¸¢',
+ right: 'à¸à¸±à¸à¸à¸´à¸à¸à¸§à¸²'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/tr.js b/devel/third-party/ckeditor/plugins/justify/lang/tr.js
new file mode 100644
index 0000000..7e3af47
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/tr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'tr', {
+ block: 'İki Kenara YaslanmıÅ',
+ center: 'OrtalanmıÅ',
+ left: 'Sola Dayalı',
+ right: 'SaÄa Dayalı'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/ug.js b/devel/third-party/ckeditor/plugins/justify/lang/ug.js
new file mode 100644
index 0000000..e9244bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/ug.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'ug', {
+ block: 'ئÙÙÙÙ ØªÛØ±ÛپتÙÙ ØªÙØºØ±ÙÙØ§',
+ center: 'Ø¦ÙØªØªÛØ±ÙØºØ§ ØªÙØºØ±ÙÙØ§',
+ left: 'سÙÙØºØ§ ØªÙØºØ±ÙÙØ§',
+ right: 'ئÙÚØºØ§ ØªÙØºØ±ÙÙØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/uk.js b/devel/third-party/ckeditor/plugins/justify/lang/uk.js
new file mode 100644
index 0000000..cdc8b88
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/uk.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'uk', {
+ block: 'Ðо ÑиÑинÑ',
+ center: 'Ðо ÑенÑÑÑ',
+ left: 'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',
+ right: 'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/vi.js b/devel/third-party/ckeditor/plugins/justify/lang/vi.js
new file mode 100644
index 0000000..8043811
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/vi.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'vi', {
+ block: 'Canh Äá»u',
+ center: 'Canh giữa',
+ left: 'Canh trái',
+ right: 'Canh phải'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/justify/lang/zh-cn.js
new file mode 100644
index 0000000..981e4ab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/zh-cn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'zh-cn', {
+ block: '两端对é½',
+ center: 'å±
ä¸',
+ left: '左对é½',
+ right: 'å³å¯¹é½'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/lang/zh.js b/devel/third-party/ckeditor/plugins/justify/lang/zh.js
new file mode 100644
index 0000000..e42a95e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/justify/lang/zh.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'justify', 'zh', {
+ block: 'å·¦å³å°é½',
+ center: 'ç½®ä¸',
+ left: 'é å·¦å°é½',
+ right: 'é å³å°é½'
+});
diff --git a/devel/third-party/ckeditor/plugins/justify/plugin.js b/devel/third-party/ckeditor/plugins/justify/plugin.js
index 036434d..aa657cc 100644
--- a/devel/third-party/ckeditor/plugins/justify/plugin.js
+++ b/devel/third-party/ckeditor/plugins/justify/plugin.js
@@ -1,37 +1,21 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Justify commands.
+ * @fileOverview Justify commands.
*/
-(function()
-{
- function getState( editor, path )
- {
- var firstBlock = path.block || path.blockLimit;
-
- if ( !firstBlock || firstBlock.getName() == 'body' )
- return CKEDITOR.TRISTATE_OFF;
-
- return ( getAlignment( firstBlock, editor.config.useComputedState ) == this.value ) ?
- CKEDITOR.TRISTATE_ON :
- CKEDITOR.TRISTATE_OFF;
- }
-
- function getAlignment( element, useComputedState )
- {
+(function() {
+ function getAlignment( element, useComputedState ) {
useComputedState = useComputedState === undefined || useComputedState;
var align;
if ( useComputedState )
align = element.getComputedStyle( 'text-align' );
- else
- {
- while ( !element.hasAttribute || !( element.hasAttribute( 'align' ) || element.getStyle( 'text-align' ) ) )
- {
+ else {
+ while ( !element.hasAttribute || !( element.hasAttribute( 'align' ) || element.getStyle( 'text-align' ) ) ) {
var parent = element.getParent();
if ( !parent )
break;
@@ -40,41 +24,34 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
align = element.getStyle( 'text-align' ) || element.getAttribute( 'align' ) || '';
}
- align && ( align = align.replace( /-moz-|-webkit-|start|auto/i, '' ) );
+ // Sometimes computed values doesn't tell.
+ align && ( align = align.replace( /(?:-(?:moz|webkit)-)?(?:start|auto)/i, '' ) );
!align && useComputedState && ( align = element.getComputedStyle( 'direction' ) == 'rtl' ? 'right' : 'left' );
return align;
}
- function onSelectionChange( evt )
- {
- var command = evt.editor.getCommand( this.name );
- command.state = getState.call( this, evt.editor, evt.data.path );
- command.fire( 'state' );
- }
-
- function justifyCommand( editor, name, value )
- {
+ function justifyCommand( editor, name, value ) {
+ this.editor = editor;
this.name = name;
this.value = value;
+ this.context = 'p';
var classes = editor.config.justifyClasses;
- if ( classes )
- {
- switch ( value )
- {
- case 'left' :
- this.cssClassName = classes[0];
+ if ( classes ) {
+ switch ( value ) {
+ case 'left':
+ this.cssClassName = classes[ 0 ];
break;
- case 'center' :
- this.cssClassName = classes[1];
+ case 'center':
+ this.cssClassName = classes[ 1 ];
break;
- case 'right' :
- this.cssClassName = classes[2];
+ case 'right':
+ this.cssClassName = classes[ 2 ];
break;
- case 'justify' :
- this.cssClassName = classes[3];
+ case 'justify':
+ this.cssClassName = classes[ 3 ];
break;
}
@@ -82,9 +59,54 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
+ function onDirChanged( e ) {
+ var editor = e.editor;
+
+ var range = editor.createRange();
+ range.setStartBefore( e.data.node );
+ range.setEndAfter( e.data.node );
+
+ var walker = new CKEDITOR.dom.walker( range ),
+ node;
+
+ while ( ( node = walker.next() ) ) {
+ if ( node.type == CKEDITOR.NODE_ELEMENT ) {
+ // A child with the defined dir is to be ignored.
+ if ( !node.equals( e.data.node ) && node.getDirection() ) {
+ range.setStartAfter( node );
+ walker = new CKEDITOR.dom.walker( range );
+ continue;
+ }
+
+ // Switch the alignment.
+ var classes = editor.config.justifyClasses;
+ if ( classes ) {
+ // The left align class.
+ if ( node.hasClass( classes[ 0 ] ) ) {
+ node.removeClass( classes[ 0 ] );
+ node.addClass( classes[ 2 ] );
+ }
+ // The right align class.
+ else if ( node.hasClass( classes[ 2 ] ) ) {
+ node.removeClass( classes[ 2 ] );
+ node.addClass( classes[ 0 ] );
+ }
+ }
+
+ // Always switch CSS margins.
+ var style = 'text-align';
+ var align = node.getStyle( style );
+
+ if ( align == 'left' )
+ node.setStyle( style, 'right' );
+ else if ( align == 'right' )
+ node.setStyle( style, 'left' );
+ }
+ }
+ }
+
justifyCommand.prototype = {
- exec : function( editor )
- {
+ exec: function( editor ) {
var selection = editor.getSelection(),
enterMode = editor.config.enterMode;
@@ -95,39 +117,31 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
ranges = selection.getRanges( true );
var cssClassName = this.cssClassName,
- iterator,
- block;
+ iterator, block;
var useComputedState = editor.config.useComputedState;
useComputedState = useComputedState === undefined || useComputedState;
- for ( var i = ranges.length - 1 ; i >= 0 ; i-- )
- {
+ for ( var i = ranges.length - 1; i >= 0; i-- ) {
iterator = ranges[ i ].createIterator();
iterator.enlargeBr = enterMode != CKEDITOR.ENTER_BR;
- while ( ( block = iterator.getNextParagraph() ) )
- {
+ while ( ( block = iterator.getNextParagraph( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ) ) {
block.removeAttribute( 'align' );
block.removeStyle( 'text-align' );
// Remove any of the alignment classes from the className.
- var className = cssClassName && ( block.$.className =
- CKEDITOR.tools.ltrim( block.$.className.replace( this.cssClassRegex, '' ) ) );
+ var className = cssClassName && ( block.$.className = CKEDITOR.tools.ltrim( block.$.className.replace( this.cssClassRegex, '' ) ) );
- var apply =
- ( this.state == CKEDITOR.TRISTATE_OFF ) &&
- ( !useComputedState || ( getAlignment( block, true ) != this.value ) );
+ var apply = ( this.state == CKEDITOR.TRISTATE_OFF ) && ( !useComputedState || ( getAlignment( block, true ) != this.value ) );
- if ( cssClassName )
- {
+ if ( cssClassName ) {
// Append the desired class name.
if ( apply )
block.addClass( cssClassName );
else if ( !className )
block.removeAttribute( 'class' );
- }
- else if ( apply )
+ } else if ( apply )
block.setStyle( 'text-align', this.value );
}
@@ -136,13 +150,22 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
editor.focus();
editor.forceNextSelectionCheck();
selection.selectBookmarks( bookmarks );
+ },
+
+ refresh: function( editor, path ) {
+ var firstBlock = path.block || path.blockLimit;
+
+ this.setState( firstBlock.getName() != 'body' && getAlignment( firstBlock, this.editor.config.useComputedState ) == this.value ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
}
};
- CKEDITOR.plugins.add( 'justify',
- {
- init : function( editor )
- {
+ CKEDITOR.plugins.add( 'justify', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'justifyblock,justifycenter,justifyleft,justifyright', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
+
var left = new justifyCommand( editor, 'justifyleft', 'left' ),
center = new justifyCommand( editor, 'justifycenter', 'center' ),
right = new justifyCommand( editor, 'justifyright', 'right' ),
@@ -153,38 +176,43 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
editor.addCommand( 'justifyright', right );
editor.addCommand( 'justifyblock', justify );
- editor.ui.addButton( 'JustifyLeft',
- {
- label : editor.lang.justify.left,
- command : 'justifyleft'
- } );
- editor.ui.addButton( 'JustifyCenter',
- {
- label : editor.lang.justify.center,
- command : 'justifycenter'
- } );
- editor.ui.addButton( 'JustifyRight',
- {
- label : editor.lang.justify.right,
- command : 'justifyright'
- } );
- editor.ui.addButton( 'JustifyBlock',
- {
- label : editor.lang.justify.block,
- command : 'justifyblock'
- } );
-
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, left ) );
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, right ) );
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, center ) );
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, justify ) );
- },
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( 'JustifyLeft', {
+ label: editor.lang.justify.left,
+ command: 'justifyleft',
+ toolbar: 'align,10'
+ });
+ editor.ui.addButton( 'JustifyCenter', {
+ label: editor.lang.justify.center,
+ command: 'justifycenter',
+ toolbar: 'align,20'
+ });
+ editor.ui.addButton( 'JustifyRight', {
+ label: editor.lang.justify.right,
+ command: 'justifyright',
+ toolbar: 'align,30'
+ });
+ editor.ui.addButton( 'JustifyBlock', {
+ label: editor.lang.justify.block,
+ command: 'justifyblock',
+ toolbar: 'align,40'
+ });
+ }
- requires : [ 'domiterator' ]
+ editor.on( 'dirChanged', onDirChanged );
+ }
});
})();
-CKEDITOR.tools.extend( CKEDITOR.config,
- {
- justifyClasses : null
- } );
+/**
+ * List of classes to use for aligning the contents. If it's `null`, no classes will be used
+ * and instead the corresponding CSS values will be used.
+ *
+ * The array should contain 4 members, in the following order: left, center, right, justify.
+ *
+ * // Use the classes 'AlignLeft', 'AlignCenter', 'AlignRight', 'AlignJustify'
+ * config.justifyClasses = [ 'AlignLeft', 'AlignCenter', 'AlignRight', 'AlignJustify' ];
+ *
+ * @cfg {Array} [justifyClasses=null]
+ * @member CKEDITOR.config
+ */
diff --git a/devel/third-party/ckeditor/plugins/keystrokes/plugin.js b/devel/third-party/ckeditor/plugins/keystrokes/plugin.js
deleted file mode 100644
index 73c0085..0000000
--- a/devel/third-party/ckeditor/plugins/keystrokes/plugin.js
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-// Register a plugin named "sample".
-CKEDITOR.plugins.add( 'keystrokes',
-{
- beforeInit : function( editor )
- {
- /**
- * Controls keystrokes typing in this editor instance.
- * @name CKEDITOR.editor.prototype.keystrokeHandler
- * @type CKEDITOR.keystrokeHandler
- * @example
- */
- editor.keystrokeHandler = new CKEDITOR.keystrokeHandler( editor );
-
- editor.specialKeys = {};
- },
-
- init : function( editor )
- {
- var keystrokesConfig = editor.config.keystrokes,
- blockedConfig = editor.config.blockedKeystrokes;
-
- var keystrokes = editor.keystrokeHandler.keystrokes,
- blockedKeystrokes = editor.keystrokeHandler.blockedKeystrokes;
-
- for ( var i = 0 ; i < keystrokesConfig.length ; i++ )
- {
- keystrokes[ keystrokesConfig[i][0] ] = keystrokesConfig[i][1];
- }
-
- for ( i = 0 ; i < blockedConfig.length ; i++ )
- {
- blockedKeystrokes[ blockedConfig[i] ] = 1;
- }
- }
-});
-
-/**
- * Controls keystrokes typing in an editor instance.
- * @constructor
- * @param {CKEDITOR.editor} editor The editor instance.
- * @example
- */
-CKEDITOR.keystrokeHandler = function( editor )
-{
- if ( editor.keystrokeHandler )
- return editor.keystrokeHandler;
-
- /**
- * List of keystrokes associated to commands. Each entry points to the
- * command to be executed.
- * @type Object
- * @example
- */
- this.keystrokes = {};
-
- /**
- * List of keystrokes that should be blocked if not defined at
- * {@link keystrokes}. In this way it is possible to block the default
- * browser behavior for those keystrokes.
- * @type Object
- * @example
- */
- this.blockedKeystrokes = {};
-
- this._ =
- {
- editor : editor
- };
-
- return this;
-};
-
-(function()
-{
- var cancel;
-
- var onKeyDown = function( event )
- {
- // The DOM event object is passed by the "data" property.
- event = event.data;
-
- var keyCombination = event.getKeystroke();
- var command = this.keystrokes[ keyCombination ];
- var editor = this._.editor;
-
- cancel = ( editor.fire( 'key', { keyCode : keyCombination } ) === true );
-
- if ( !cancel )
- {
- if ( command )
- {
- var data = { from : 'keystrokeHandler' };
- cancel = ( editor.execCommand( command, data ) !== false );
- }
-
- if ( !cancel )
- {
- var handler = editor.specialKeys[ keyCombination ];
- cancel = ( handler && handler( editor ) === true );
-
- if ( !cancel )
- cancel = !!this.blockedKeystrokes[ keyCombination ];
- }
- }
-
- if ( cancel )
- event.preventDefault( true );
-
- return !cancel;
- };
-
- var onKeyPress = function( event )
- {
- if ( cancel )
- {
- cancel = false;
- event.data.preventDefault( true );
- }
- };
-
- CKEDITOR.keystrokeHandler.prototype =
- {
- /**
- * Attaches this keystroke handle to a DOM object. Keystrokes typed
- ** over this object will get handled by this keystrokeHandler.
- * @param {CKEDITOR.dom.domObject} domObject The DOM object to attach
- * to.
- * @example
- */
- attach : function( domObject )
- {
- // For most browsers, it is enough to listen to the keydown event
- // only.
- domObject.on( 'keydown', onKeyDown, this );
-
- // Some browsers instead, don't cancel key events in the keydown, but in the
- // keypress. So we must do a longer trip in those cases.
- if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
- domObject.on( 'keypress', onKeyPress, this );
- }
- };
-})();
-
-/**
- * A list of keystrokes to be blocked if not defined in the {@link CKEDITOR.config.keystrokes}
- * setting. In this way it is possible to block the default browser behavior
- * for those keystrokes.
- * @type Array
- * @default (see example)
- * @example
- * // This is actually the default value.
- * config.blockedKeystrokes =
- * [
- * CKEDITOR.CTRL + 66 /*B*/,
- * CKEDITOR.CTRL + 73 /*I*/,
- * CKEDITOR.CTRL + 85 /*U*/
- * ];
- */
-CKEDITOR.config.blockedKeystrokes =
-[
- CKEDITOR.CTRL + 66 /*B*/,
- CKEDITOR.CTRL + 73 /*I*/,
- CKEDITOR.CTRL + 85 /*U*/
-];
-
-/**
- * A list associating keystrokes to editor commands. Each element in the list
- * is an array where the first item is the keystroke, and the second is the
- * name of the command to be executed.
- * @type Array
- * @default (see example)
- * @example
- * // This is actually the default value.
- * config.keystrokes =
- * [
- * [ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ],
- * [ CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' ],
- *
- * [ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ],
- *
- * [ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ],
- * [ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ],
- * [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ],
- *
- * [ CKEDITOR.CTRL + 76 /*L*/, 'link' ],
- *
- * [ CKEDITOR.CTRL + 66 /*B*/, 'bold' ],
- * [ CKEDITOR.CTRL + 73 /*I*/, 'italic' ],
- * [ CKEDITOR.CTRL + 85 /*U*/, 'underline' ],
- *
- * [ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ]
- * ];
- */
-CKEDITOR.config.keystrokes =
-[
- [ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ],
- [ CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' ],
-
- [ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ],
- [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ],
-
- [ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ],
- [ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ],
- [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ],
-
- [ CKEDITOR.CTRL + 76 /*L*/, 'link' ],
-
- [ CKEDITOR.CTRL + 66 /*B*/, 'bold' ],
- [ CKEDITOR.CTRL + 73 /*I*/, 'italic' ],
- [ CKEDITOR.CTRL + 85 /*U*/, 'underline' ],
-
- [ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ],
- [ CKEDITOR.ALT + 48 /*0*/, 'a11yHelp' ]
-];
-
-/**
- * Fired when any keyboard key (or combination) is pressed into the editing area.
- * @name CKEDITOR#key
- * @event
- * @param {Number} data.keyCode A number representing the key code (or
- * combination). It is the sum of the current key code and the
- * {@link CKEDITOR.CTRL}, {@link CKEDITOR.SHIFT} and {@link CKEDITOR.ALT}
- * constants, if those are pressed.
- */
diff --git a/devel/third-party/ckeditor/plugins/link/dialogs/anchor.js b/devel/third-party/ckeditor/plugins/link/dialogs/anchor.js
index 1d28b27..daa4660 100644
--- a/devel/third-party/ckeditor/plugins/link/dialogs/anchor.js
+++ b/devel/third-party/ckeditor/plugins/link/dialogs/anchor.js
@@ -1,99 +1,120 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'anchor', function( editor )
-{
+CKEDITOR.dialog.add( 'anchor', function( editor ) {
// Function called in onShow to load selected element.
- var loadElements = function( editor, selection, element )
- {
- this.editMode = true;
- this.editObj = element;
+ var loadElements = function( element ) {
+ this._.selectedElement = element;
- var attributeValue = this.editObj.getAttribute( 'name' );
- if ( attributeValue )
- this.setValueOf( 'info','txtName', attributeValue );
- else
- this.setValueOf( 'info','txtName', "" );
- };
+ var attributeValue = element.data( 'cke-saved-name' );
+ this.setValueOf( 'info', 'txtName', attributeValue || '' );
+ };
+
+ function createFakeAnchor( editor, anchor ) {
+ return editor.createFakeElement( anchor, 'cke_anchor', 'anchor' );
+ }
return {
- title : editor.lang.anchor.title,
- minWidth : 300,
- minHeight : 60,
- onOk : function()
- {
- // Always create a new anchor, because of IE BUG.
- var name = this.getValueOf( 'info', 'txtName' ),
- element = CKEDITOR.env.ie ?
- editor.document.createElement( '<a name="' + CKEDITOR.tools.htmlEncode( name ) + '">' ) :
- editor.document.createElement( 'a' );
+ title: editor.lang.link.anchor.title,
+ minWidth: 300,
+ minHeight: 60,
+ onOk: function() {
+ var name = CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtName' ) );
+ var attributes = {
+ id: name,
+ name: name,
+ 'data-cke-saved-name': name
+ };
- // Move contents and attributes of old anchor to new anchor.
- if ( this.editMode )
- {
- this.editObj.copyAttributes( element, { name : 1 } );
- this.editObj.moveChildren( element );
- }
+ if ( this._.selectedElement ) {
+ if ( this._.selectedElement.data( 'cke-realelement' ) ) {
+ var newFake = createFakeAnchor( editor, editor.document.createElement( 'a', { attributes: attributes } ) );
+ newFake.replace( this._.selectedElement );
+ } else
+ this._.selectedElement.setAttributes( attributes );
+ } else {
+ var sel = editor.getSelection(),
+ range = sel && sel.getRanges()[ 0 ];
- // Set name.
- element.removeAttribute( '_cke_saved_name' );
- element.setAttribute( 'name', name );
+ // Empty anchor
+ if ( range.collapsed ) {
+ if ( CKEDITOR.plugins.link.synAnchorSelector )
+ attributes[ 'class' ] = 'cke_anchor_empty';
- // Insert a new anchor.
- var fakeElement = editor.createFakeElement( element, 'cke_anchor', 'anchor' );
- if ( !this.editMode )
- editor.insertElement( fakeElement );
- else
- {
- fakeElement.replace( this.fakeObj );
- editor.getSelection().selectElement( fakeElement );
+ if ( CKEDITOR.plugins.link.emptyAnchorFix ) {
+ attributes[ 'contenteditable' ] = 'false';
+ attributes[ 'data-cke-editable' ] = 1;
+ }
+
+ var anchor = editor.document.createElement( 'a', { attributes: attributes } );
+
+ // Transform the anchor into a fake element for browsers that need it.
+ if ( CKEDITOR.plugins.link.fakeAnchor )
+ anchor = createFakeAnchor( editor, anchor );
+
+ range.insertNode( anchor );
+ } else {
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
+ attributes[ 'class' ] = 'cke_anchor';
+
+ // Apply style.
+ var style = new CKEDITOR.style({ element: 'a', attributes: attributes } );
+ style.type = CKEDITOR.STYLE_INLINE;
+ editor.applyStyle( style );
+ }
}
+ },
- return true;
+ onHide: function() {
+ delete this._.selectedElement;
},
- onShow : function()
- {
- this.editObj = false;
- this.fakeObj = false;
- this.editMode = false;
- var selection = editor.getSelection();
- var element = selection.getSelectedElement();
- if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
- {
- this.fakeObj = element;
- element = editor.restoreRealElement( this.fakeObj );
- loadElements.apply( this, [ editor, selection, element ] );
- selection.selectElement( this.fakeObj );
+ onShow: function() {
+ var selection = editor.getSelection(),
+ fullySelected = selection.getSelectedElement(),
+ partialSelected;
+
+ // Detect the anchor under selection.
+ if ( fullySelected ) {
+ if ( CKEDITOR.plugins.link.fakeAnchor ) {
+ var realElement = CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, fullySelected );
+ realElement && loadElements.call( this, realElement );
+ this._.selectedElement = fullySelected;
+ } else if ( fullySelected.is( 'a' ) && fullySelected.hasAttribute( 'name' ) )
+ loadElements.call( this, fullySelected );
+ } else {
+ partialSelected = CKEDITOR.plugins.link.getSelectedLink( editor );
+ if ( partialSelected ) {
+ loadElements.call( this, partialSelected );
+ selection.selectElement( partialSelected );
+ }
}
+
this.getContentElement( 'info', 'txtName' ).focus();
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.anchor.title,
- accessKey : 'I',
- elements :
- [
- {
- type : 'text',
- id : 'txtName',
- label : editor.lang.anchor.name,
- required: true,
- validate : function()
- {
- if ( !this.getValue() )
- {
- alert( editor.lang.anchor.errorName );
- return false;
- }
- return true;
- }
+ id: 'info',
+ label: editor.lang.link.anchor.title,
+ accessKey: 'I',
+ elements: [
+ {
+ type: 'text',
+ id: 'txtName',
+ label: editor.lang.link.anchor.name,
+ required: true,
+ validate: function() {
+ if ( !this.getValue() ) {
+ alert( editor.lang.link.anchor.errorName );
+ return false;
}
- ]
+ return true;
+ }
}
+ ]
+ }
]
};
-} );
+});
diff --git a/devel/third-party/ckeditor/plugins/link/dialogs/link.js b/devel/third-party/ckeditor/plugins/link/dialogs/link.js
index 204d863..d004aab 100644
--- a/devel/third-party/ckeditor/plugins/link/dialogs/link.js
+++ b/devel/third-party/ckeditor/plugins/link/dialogs/link.js
@@ -1,81 +1,75 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'link', function( editor )
-{
+CKEDITOR.dialog.add( 'link', function( editor ) {
var plugin = CKEDITOR.plugins.link;
// Handles the event when the "Target" selection box is changed.
- var targetChanged = function()
- {
- var dialog = this.getDialog(),
- popupFeatures = dialog.getContentElement( 'target', 'popupFeatures' ),
- targetName = dialog.getContentElement( 'target', 'linkTargetName' ),
- value = this.getValue();
-
- if ( !popupFeatures || !targetName )
- return;
-
- popupFeatures = popupFeatures.getElement();
- popupFeatures.hide();
- targetName.setValue( '' );
-
- switch ( value )
- {
- case 'frame' :
- targetName.setLabel( editor.lang.link.targetFrameName );
- targetName.getElement().show();
- break;
- case 'popup' :
- popupFeatures.show();
- targetName.setLabel( editor.lang.link.targetPopupName );
- targetName.getElement().show();
- break;
- default :
- targetName.setValue( value );
- targetName.getElement().hide();
- break;
- }
+ var targetChanged = function() {
+ var dialog = this.getDialog(),
+ popupFeatures = dialog.getContentElement( 'target', 'popupFeatures' ),
+ targetName = dialog.getContentElement( 'target', 'linkTargetName' ),
+ value = this.getValue();
+
+ if ( !popupFeatures || !targetName )
+ return;
+
+ popupFeatures = popupFeatures.getElement();
+ popupFeatures.hide();
+ targetName.setValue( '' );
+
+ switch ( value ) {
+ case 'frame':
+ targetName.setLabel( editor.lang.link.targetFrameName );
+ targetName.getElement().show();
+ break;
+ case 'popup':
+ popupFeatures.show();
+ targetName.setLabel( editor.lang.link.targetPopupName );
+ targetName.getElement().show();
+ break;
+ default:
+ targetName.setValue( value );
+ targetName.getElement().hide();
+ break;
+ }
- };
+ };
// Handles the event when the "Type" selection box is changed.
- var linkTypeChanged = function()
- {
- var dialog = this.getDialog(),
- partIds = [ 'urlOptions', 'anchorOptions', 'emailOptions' ],
- typeValue = this.getValue(),
- uploadTab = dialog.definition.getContents( 'upload' ),
- uploadInitiallyHidden = uploadTab && uploadTab.hidden;
-
- if ( typeValue == 'url' )
- {
- if ( editor.config.linkShowTargetTab )
- dialog.showPage( 'target' );
- if ( !uploadInitiallyHidden )
- dialog.showPage( 'upload' );
- }
- else
- {
- dialog.hidePage( 'target' );
- if ( !uploadInitiallyHidden )
- dialog.hidePage( 'upload' );
- }
+ var linkTypeChanged = function() {
+ var dialog = this.getDialog(),
+ partIds = [ 'urlOptions', 'anchorOptions', 'emailOptions' ],
+ typeValue = this.getValue(),
+ uploadTab = dialog.definition.getContents( 'upload' ),
+ uploadInitiallyHidden = uploadTab && uploadTab.hidden;
+
+ if ( typeValue == 'url' ) {
+ if ( editor.config.linkShowTargetTab )
+ dialog.showPage( 'target' );
+ if ( !uploadInitiallyHidden )
+ dialog.showPage( 'upload' );
+ } else {
+ dialog.hidePage( 'target' );
+ if ( !uploadInitiallyHidden )
+ dialog.hidePage( 'upload' );
+ }
- for ( var i = 0 ; i < partIds.length ; i++ )
- {
- var element = dialog.getContentElement( 'info', partIds[i] );
- if ( !element )
- continue;
+ for ( var i = 0; i < partIds.length; i++ ) {
+ var element = dialog.getContentElement( 'info', partIds[ i ] );
+ if ( !element )
+ continue;
- element = element.getElement().getParent().getParent();
- if ( partIds[i] == typeValue + 'Options' )
- element.show();
- else
- element.hide();
- }
- };
+ element = element.getElement().getParent().getParent();
+ if ( partIds[ i ] == typeValue + 'Options' )
+ element.show();
+ else
+ element.hide();
+ }
+
+ dialog.layout();
+ };
// Loads the parameters in a selected link to the link dialog fields.
var javascriptProtocolRegex = /^javascript:/,
@@ -88,1054 +82,963 @@ CKEDITOR.dialog.add( 'link', function( editor )
encodedEmailLinkRegex = /^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,
functionCallProtectedEmailLinkRegex = /^javascript:([^(]+)\(([^)]+)\)$/;
- var popupRegex =
- /\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/;
+ var popupRegex = /\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/;
var popupFeaturesRegex = /(?:^|,)([^=]+)=(\d+|yes|no)/gi;
- var parseLink = function( editor, element )
- {
- var href = ( element && ( element.getAttribute( '_cke_saved_href' ) || element.getAttribute( 'href' ) ) ) || '',
- javascriptMatch,
- emailMatch,
- anchorMatch,
- urlMatch,
- retval = {};
-
- if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) )
- {
- if ( emailProtection == 'encode' )
- {
- href = href.replace( encodedEmailLinkRegex,
- function ( match, protectedAddress, rest )
- {
- return 'mailto:' +
- String.fromCharCode.apply( String, protectedAddress.split( ',' ) ) +
- ( rest && unescapeSingleQuote( rest ) );
- });
+ var parseLink = function( editor, element ) {
+ var href = ( element && ( element.data( 'cke-saved-href' ) || element.getAttribute( 'href' ) ) ) || '',
+ javascriptMatch, emailMatch, anchorMatch, urlMatch,
+ retval = {};
+
+ if ( ( javascriptMatch = href.match( javascriptProtocolRegex ) ) ) {
+ if ( emailProtection == 'encode' ) {
+ href = href.replace( encodedEmailLinkRegex, function( match, protectedAddress, rest ) {
+ return 'mailto:' +
+ String.fromCharCode.apply( String, protectedAddress.split( ',' ) ) +
+ ( rest && unescapeSingleQuote( rest ) );
+ });
+ }
+ // Protected email link as function call.
+ else if ( emailProtection ) {
+ href.replace( functionCallProtectedEmailLinkRegex, function( match, funcName, funcArgs ) {
+ if ( funcName == compiledProtectionFunction.name ) {
+ retval.type = 'email';
+ var email = retval.email = {};
+
+ var paramRegex = /[^,\s]+/g,
+ paramQuoteRegex = /(^')|('$)/g,
+ paramsMatch = funcArgs.match( paramRegex ),
+ paramsMatchLength = paramsMatch.length,
+ paramName, paramVal;
+
+ for ( var i = 0; i < paramsMatchLength; i++ ) {
+ paramVal = decodeURIComponent( unescapeSingleQuote( paramsMatch[ i ].replace( paramQuoteRegex, '' ) ) );
+ paramName = compiledProtectionFunction.params[ i ].toLowerCase();
+ email[ paramName ] = paramVal;
+ }
+ email.address = [ email.name, email.domain ].join( '@' );
+ }
+ });
+ }
}
- // Protected email link as function call.
- else if ( emailProtection )
- {
- href.replace( functionCallProtectedEmailLinkRegex, function( match, funcName, funcArgs )
- {
- if ( funcName == compiledProtectionFunction.name )
- {
- retval.type = 'email';
- var email = retval.email = {};
- var paramRegex = /[^,\s]+/g,
- paramQuoteRegex = /(^')|('$)/g,
- paramsMatch = funcArgs.match( paramRegex ),
- paramsMatchLength = paramsMatch.length,
- paramName,
- paramVal;
+ if ( !retval.type ) {
+ if ( ( anchorMatch = href.match( anchorRegex ) ) ) {
+ retval.type = 'anchor';
+ retval.anchor = {};
+ retval.anchor.name = retval.anchor.id = anchorMatch[ 1 ];
+ }
+ // Protected email link as encoded string.
+ else if ( ( emailMatch = href.match( emailRegex ) ) ) {
+ var subjectMatch = href.match( emailSubjectRegex ),
+ bodyMatch = href.match( emailBodyRegex );
+
+ retval.type = 'email';
+ var email = ( retval.email = {} );
+ email.address = emailMatch[ 1 ];
+ subjectMatch && ( email.subject = decodeURIComponent( subjectMatch[ 1 ] ) );
+ bodyMatch && ( email.body = decodeURIComponent( bodyMatch[ 1 ] ) );
+ }
+ // urlRegex matches empty strings, so need to check for href as well.
+ else if ( href && ( urlMatch = href.match( urlRegex ) ) ) {
+ retval.type = 'url';
+ retval.url = {};
+ retval.url.protocol = urlMatch[ 1 ];
+ retval.url.url = urlMatch[ 2 ];
+ } else
+ retval.type = 'url';
+ }
- for ( var i = 0; i < paramsMatchLength; i++ )
- {
- paramVal = decodeURIComponent( unescapeSingleQuote( paramsMatch[ i ].replace( paramQuoteRegex, '' ) ) );
- paramName = compiledProtectionFunction.params[ i ].toLowerCase();
- email[ paramName ] = paramVal;
+ // Load target and popup settings.
+ if ( element ) {
+ var target = element.getAttribute( 'target' );
+ retval.target = {};
+ retval.adv = {};
+
+ // IE BUG: target attribute is an empty string instead of null in IE if it's not set.
+ if ( !target ) {
+ var onclick = element.data( 'cke-pa-onclick' ) || element.getAttribute( 'onclick' ),
+ onclickMatch = onclick && onclick.match( popupRegex );
+ if ( onclickMatch ) {
+ retval.target.type = 'popup';
+ retval.target.name = onclickMatch[ 1 ];
+
+ var featureMatch;
+ while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[ 2 ] ) ) ) {
+ // Some values should remain numbers (#7300)
+ if ( ( featureMatch[ 2 ] == 'yes' || featureMatch[ 2 ] == '1' ) && !( featureMatch[ 1 ] in { height:1,width:1,top:1,left:1 } ) )
+ retval.target[ featureMatch[ 1 ] ] = true;
+ else if ( isFinite( featureMatch[ 2 ] ) )
+ retval.target[ featureMatch[ 1 ] ] = featureMatch[ 2 ];
}
- email.address = [ email.name, email.domain ].join( '@' );
}
- } );
- }
- }
-
- if ( !retval.type )
- {
- if ( ( anchorMatch = href.match( anchorRegex ) ) )
- {
- retval.type = 'anchor';
- retval.anchor = {};
- retval.anchor.name = retval.anchor.id = anchorMatch[1];
- }
- // Protected email link as encoded string.
- else if ( ( emailMatch = href.match( emailRegex ) ) )
- {
- var subjectMatch = href.match( emailSubjectRegex ),
- bodyMatch = href.match( emailBodyRegex );
-
- retval.type = 'email';
- var email = ( retval.email = {} );
- email.address = emailMatch[ 1 ];
- subjectMatch && ( email.subject = decodeURIComponent( subjectMatch[ 1 ] ) );
- bodyMatch && ( email.body = decodeURIComponent( bodyMatch[ 1 ] ) );
- }
- // urlRegex matches empty strings, so need to check for href as well.
- else if ( href && ( urlMatch = href.match( urlRegex ) ) )
- {
- retval.type = 'url';
- retval.url = {};
- retval.url.protocol = urlMatch[1];
- retval.url.url = urlMatch[2];
- }
- else
- retval.type = 'url';
- }
+ } else {
+ var targetMatch = target.match( selectableTargets );
+ if ( targetMatch )
+ retval.target.type = retval.target.name = target;
+ else {
+ retval.target.type = 'frame';
+ retval.target.name = target;
+ }
+ }
- // Load target and popup settings.
- if ( element )
- {
- var target = element.getAttribute( 'target' );
- retval.target = {};
- retval.adv = {};
+ var me = this;
+ var advAttr = function( inputName, attrName ) {
+ var value = element.getAttribute( attrName );
+ if ( value !== null )
+ retval.adv[ inputName ] = value || '';
+ };
+ advAttr( 'advId', 'id' );
+ advAttr( 'advLangDir', 'dir' );
+ advAttr( 'advAccessKey', 'accessKey' );
- // IE BUG: target attribute is an empty string instead of null in IE if it's not set.
- if ( !target )
- {
- var onclick = element.getAttribute( '_cke_pa_onclick' ) || element.getAttribute( 'onclick' ),
- onclickMatch = onclick && onclick.match( popupRegex );
- if ( onclickMatch )
- {
- retval.target.type = 'popup';
- retval.target.name = onclickMatch[1];
+ retval.adv.advName = element.data( 'cke-saved-name' ) || element.getAttribute( 'name' ) || '';
+ advAttr( 'advLangCode', 'lang' );
+ advAttr( 'advTabIndex', 'tabindex' );
+ advAttr( 'advTitle', 'title' );
+ advAttr( 'advContentType', 'type' );
+ CKEDITOR.plugins.link.synAnchorSelector ? retval.adv.advCSSClasses = getLinkClass( element ) : advAttr( 'advCSSClasses', 'class' );
+ advAttr( 'advCharset', 'charset' );
+ advAttr( 'advStyles', 'style' );
+ advAttr( 'advRel', 'rel' );
+ }
- var featureMatch;
- while ( ( featureMatch = popupFeaturesRegex.exec( onclickMatch[2] ) ) )
- {
- if ( featureMatch[2] == 'yes' || featureMatch[2] == '1' )
- retval.target[ featureMatch[1] ] = true;
- else if ( isFinite( featureMatch[2] ) )
- retval.target[ featureMatch[1] ] = featureMatch[2];
- }
+ // Find out whether we have any anchors in the editor.
+ var anchors = retval.anchors = [],
+ i, count, item;
+
+ // For some browsers we set contenteditable="false" on anchors, making document.anchors not to include them, so we must traverse the links manually (#7893).
+ if ( CKEDITOR.plugins.link.emptyAnchorFix ) {
+ var links = editor.document.getElementsByTag( 'a' );
+ for ( i = 0, count = links.count(); i < count; i++ ) {
+ item = links.getItem( i );
+ if ( item.data( 'cke-saved-name' ) || item.hasAttribute( 'name' ) )
+ anchors.push({ name: item.data( 'cke-saved-name' ) || item.getAttribute( 'name' ), id: item.getAttribute( 'id' ) } );
}
- }
- else
- {
- var targetMatch = target.match( selectableTargets );
- if ( targetMatch )
- retval.target.type = retval.target.name = target;
- else
- {
- retval.target.type = 'frame';
- retval.target.name = target;
+ } else {
+ var anchorList = new CKEDITOR.dom.nodeList( editor.document.$.anchors );
+ for ( i = 0, count = anchorList.count(); i < count; i++ ) {
+ item = anchorList.getItem( i );
+ anchors[ i ] = { name: item.getAttribute( 'name' ), id: item.getAttribute( 'id' ) };
}
}
- var me = this;
- var advAttr = function( inputName, attrName )
- {
- var value = element.getAttribute( attrName );
- if ( value !== null )
- retval.adv[ inputName ] = value || '';
- };
- advAttr( 'advId', 'id' );
- advAttr( 'advLangDir', 'dir' );
- advAttr( 'advAccessKey', 'accessKey' );
- advAttr( 'advName', 'name' );
- advAttr( 'advLangCode', 'lang' );
- advAttr( 'advTabIndex', 'tabindex' );
- advAttr( 'advTitle', 'title' );
- advAttr( 'advContentType', 'type' );
- advAttr( 'advCSSClasses', 'class' );
- advAttr( 'advCharset', 'charset' );
- advAttr( 'advStyles', 'style' );
- }
-
- // Find out whether we have any anchors in the editor.
- // Get all IMG elements in CK document.
- var elements = editor.document.getElementsByTag( 'img' ),
- realAnchors = new CKEDITOR.dom.nodeList( editor.document.$.anchors ),
- anchors = retval.anchors = [];
-
- for ( var i = 0; i < elements.count() ; i++ )
- {
- var item = elements.getItem( i );
- if ( item.getAttribute( '_cke_realelement' ) && item.getAttribute( '_cke_real_element_type' ) == 'anchor' )
- {
- anchors.push( editor.restoreRealElement( item ) );
+ if ( CKEDITOR.plugins.link.fakeAnchor ) {
+ var imgs = editor.document.getElementsByTag( 'img' );
+ for ( i = 0, count = imgs.count(); i < count; i++ ) {
+ if ( ( item = CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, imgs.getItem( i ) ) ) )
+ anchors.push({ name: item.getAttribute( 'name' ), id: item.getAttribute( 'id' ) } );
+ }
}
- }
- for ( i = 0 ; i < realAnchors.count() ; i++ )
- anchors.push( realAnchors.getItem( i ) );
+ // Record down the selected element in the dialog.
+ this._.selectedElement = element;
+ return retval;
+ };
- for ( i = 0 ; i < anchors.length ; i++ )
- {
- item = anchors[ i ];
- anchors[ i ] = { name : item.getAttribute( 'name' ), id : item.getAttribute( 'id' ) };
- }
+ var setupParams = function( page, data ) {
+ if ( data[ page ] )
+ this.setValue( data[ page ][ this.id ] || '' );
+ };
- // Record down the selected element in the dialog.
- this._.selectedElement = element;
+ var setupPopupParams = function( data ) {
+ return setupParams.call( this, 'target', data );
+ };
- return retval;
- };
+ var setupAdvParams = function( data ) {
+ return setupParams.call( this, 'adv', data );
+ };
- var setupParams = function( page, data )
- {
- if ( data[page] )
- this.setValue( data[page][this.id] || '' );
- };
+ var commitParams = function( page, data ) {
+ if ( !data[ page ] )
+ data[ page ] = {};
- var setupPopupParams = function( data )
- {
- return setupParams.call( this, 'target', data );
- };
+ data[ page ][ this.id ] = this.getValue() || '';
+ };
- var setupAdvParams = function( data )
- {
- return setupParams.call( this, 'adv', data );
- };
+ var commitPopupParams = function( data ) {
+ return commitParams.call( this, 'target', data );
+ };
- var commitParams = function( page, data )
- {
- if ( !data[page] )
- data[page] = {};
+ var commitAdvParams = function( data ) {
+ return commitParams.call( this, 'adv', data );
+ };
- data[page][this.id] = this.getValue() || '';
- };
-
- var commitPopupParams = function( data )
- {
- return commitParams.call( this, 'target', data );
- };
-
- var commitAdvParams = function( data )
- {
- return commitParams.call( this, 'adv', data );
- };
-
- function unescapeSingleQuote( str )
- {
+ function unescapeSingleQuote( str ) {
return str.replace( /\\'/g, '\'' );
}
- function escapeSingleQuote( str )
- {
+ function escapeSingleQuote( str ) {
return str.replace( /'/g, '\\$&' );
}
var emailProtection = editor.config.emailProtection || '';
// Compile the protection function pattern.
- if ( emailProtection && emailProtection != 'encode' )
- {
+ if ( emailProtection && emailProtection != 'encode' ) {
var compiledProtectionFunction = {};
- emailProtection.replace( /^([^(]+)\(([^)]+)\)$/, function( match, funcName, params )
- {
+ emailProtection.replace( /^([^(]+)\(([^)]+)\)$/, function( match, funcName, params ) {
compiledProtectionFunction.name = funcName;
compiledProtectionFunction.params = [];
- params.replace( /[^,\s]+/g, function( param )
- {
+ params.replace( /[^,\s]+/g, function( param ) {
compiledProtectionFunction.params.push( param );
- } );
- } );
+ });
+ });
}
- function protectEmailLinkAsFunction( email )
- {
+ function protectEmailLinkAsFunction( email ) {
var retval,
name = compiledProtectionFunction.name,
params = compiledProtectionFunction.params,
- paramName,
- paramValue;
+ paramName, paramValue;
retval = [ name, '(' ];
- for ( var i = 0; i < params.length; i++ )
- {
+ for ( var i = 0; i < params.length; i++ ) {
paramName = params[ i ].toLowerCase();
paramValue = email[ paramName ];
i > 0 && retval.push( ',' );
- retval.push( '\'',
- paramValue ?
- escapeSingleQuote( encodeURIComponent( email[ paramName ] ) )
- : '',
- '\'');
+ retval.push( '\'', paramValue ? escapeSingleQuote( encodeURIComponent( email[ paramName ] ) ) : '', '\'' );
}
retval.push( ')' );
return retval.join( '' );
}
- function protectEmailAddressAsEncodedString( address )
- {
+ function protectEmailAddressAsEncodedString( address ) {
var charCode,
length = address.length,
encodedChars = [];
- for ( var i = 0; i < length; i++ )
- {
+ for ( var i = 0; i < length; i++ ) {
charCode = address.charCodeAt( i );
encodedChars.push( charCode );
}
return 'String.fromCharCode(' + encodedChars.join( ',' ) + ')';
}
+ function getLinkClass( ele ) {
+ var className = ele.getAttribute( 'class' );
+ return className ? className.replace( /\s*(?:cke_anchor_empty|cke_anchor)(?:\s*$)?/g, '' ) : '';
+ }
+
+ var commonLang = editor.lang.common,
+ linkLang = editor.lang.link;
+
return {
- title : editor.lang.link.title,
- minWidth : 350,
- minHeight : 230,
- contents : [
+ title: linkLang.title,
+ minWidth: 350,
+ minHeight: 230,
+ contents: [
{
- id : 'info',
- label : editor.lang.link.info,
- title : editor.lang.link.info,
- elements :
- [
+ id: 'info',
+ label: linkLang.info,
+ title: linkLang.info,
+ elements: [
+ {
+ id: 'linkType',
+ type: 'select',
+ label: linkLang.type,
+ 'default': 'url',
+ items: [
+ [ linkLang.toUrl, 'url' ],
+ [ linkLang.toAnchor, 'anchor' ],
+ [ linkLang.toEmail, 'email' ]
+ ],
+ onChange: linkTypeChanged,
+ setup: function( data ) {
+ if ( data.type )
+ this.setValue( data.type );
+ },
+ commit: function( data ) {
+ data.type = this.getValue();
+ }
+ },
+ {
+ type: 'vbox',
+ id: 'urlOptions',
+ children: [
{
- id : 'linkType',
- type : 'select',
- label : editor.lang.link.type,
- 'default' : 'url',
- items :
- [
- [ editor.lang.link.toUrl, 'url' ],
- [ editor.lang.link.toAnchor, 'anchor' ],
- [ editor.lang.link.toEmail, 'email' ]
- ],
- onChange : linkTypeChanged,
- setup : function( data )
+ type: 'hbox',
+ widths: [ '25%', '75%' ],
+ children: [
{
- if ( data.type )
- this.setValue( data.type );
+ id: 'protocol',
+ type: 'select',
+ label: commonLang.protocol,
+ 'default': 'http://',
+ items: [
+ // Force 'ltr' for protocol names in BIDI. (#5433)
+ [ 'http://\u200E', 'http://' ],
+ [ 'https://\u200E', 'https://' ],
+ [ 'ftp://\u200E', 'ftp://' ],
+ [ 'news://\u200E', 'news://' ],
+ [ linkLang.other, '' ]
+ ],
+ setup: function( data ) {
+ if ( data.url )
+ this.setValue( data.url.protocol || '' );
},
- commit : function( data )
- {
- data.type = this.getValue();
+ commit: function( data ) {
+ if ( !data.url )
+ data.url = {};
+
+ data.url.protocol = this.getValue();
}
},
+ {
+ type: 'text',
+ id: 'url',
+ label: commonLang.url,
+ required: true,
+ onLoad: function() {
+ this.allowOnChange = true;
+ },
+ onKeyUp: function() {
+ this.allowOnChange = false;
+ var protocolCmb = this.getDialog().getContentElement( 'info', 'protocol' ),
+ url = this.getValue(),
+ urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/i,
+ urlOnChangeTestOther = /^((javascript:)|[#\/\.\?])/i;
+
+ var protocol = urlOnChangeProtocol.exec( url );
+ if ( protocol ) {
+ this.setValue( url.substr( protocol[ 0 ].length ) );
+ protocolCmb.setValue( protocol[ 0 ].toLowerCase() );
+ } else if ( urlOnChangeTestOther.test( url ) )
+ protocolCmb.setValue( '' );
+
+ this.allowOnChange = true;
+ },
+ onChange: function() {
+ if ( this.allowOnChange ) // Dont't call on dialog load.
+ this.onKeyUp();
+ },
+ validate: function() {
+ var dialog = this.getDialog();
+
+ if ( dialog.getContentElement( 'info', 'linkType' ) && dialog.getValueOf( 'info', 'linkType' ) != 'url' )
+ return true;
+
+ if ( (/javascript\:/).test( this.getValue() ) ) {
+ alert( commonLang.invalidValue );
+ return false;
+ }
+
+ if ( this.getDialog().fakeObj ) // Edit Anchor.
+ return true;
+
+ var func = CKEDITOR.dialog.validate.notEmpty( linkLang.noUrl );
+ return func.apply( this );
+ },
+ setup: function( data ) {
+ this.allowOnChange = false;
+ if ( data.url )
+ this.setValue( data.url.url );
+ this.allowOnChange = true;
+
+ },
+ commit: function( data ) {
+ // IE will not trigger the onChange event if the mouse has been used
+ // to carry all the operations #4724
+ this.onChange();
+
+ if ( !data.url )
+ data.url = {};
+
+ data.url.url = this.getValue();
+ this.allowOnChange = false;
+ }
+ }
+ ],
+ setup: function( data ) {
+ if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+ this.getElement().show();
+ }
+ },
{
- type : 'vbox',
- id : 'urlOptions',
- children :
- [
+ type: 'button',
+ id: 'browse',
+ hidden: 'true',
+ filebrowser: 'info:url',
+ label: commonLang.browseServer
+ }
+ ]
+ },
+ {
+ type: 'vbox',
+ id: 'anchorOptions',
+ width: 260,
+ align: 'center',
+ padding: 0,
+ children: [
+ {
+ type: 'fieldset',
+ id: 'selectAnchorText',
+ label: linkLang.selectAnchor,
+ setup: function( data ) {
+ if ( data.anchors.length > 0 )
+ this.getElement().show();
+ else
+ this.getElement().hide();
+ },
+ children: [
+ {
+ type: 'hbox',
+ id: 'selectAnchor',
+ children: [
{
- type : 'hbox',
- widths : [ '25%', '75%' ],
- children :
- [
- {
- id : 'protocol',
- type : 'select',
- label : editor.lang.common.protocol,
- 'default' : 'http://',
- items :
- [
- // Force 'ltr' for protocol names in BIDI. (#5433)
- [ 'http://\u200E', 'http://' ],
- [ 'https://\u200E', 'https://' ],
- [ 'ftp://\u200E', 'ftp://' ],
- [ 'news://\u200E', 'news://' ],
- [ editor.lang.link.other , '' ]
- ],
- setup : function( data )
- {
- if ( data.url )
- this.setValue( data.url.protocol || '' );
- },
- commit : function( data )
- {
- if ( !data.url )
- data.url = {};
-
- data.url.protocol = this.getValue();
- }
- },
- {
- type : 'text',
- id : 'url',
- label : editor.lang.common.url,
- required: true,
- onLoad : function ()
- {
- this.allowOnChange = true;
- },
- onKeyUp : function()
- {
- this.allowOnChange = false;
- var protocolCmb = this.getDialog().getContentElement( 'info', 'protocol' ),
- url = this.getValue(),
- urlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi,
- urlOnChangeTestOther = /^((javascript:)|[#\/\.\?])/gi;
-
- var protocol = urlOnChangeProtocol.exec( url );
- if ( protocol )
- {
- this.setValue( url.substr( protocol[ 0 ].length ) );
- protocolCmb.setValue( protocol[ 0 ].toLowerCase() );
- }
- else if ( urlOnChangeTestOther.test( url ) )
- protocolCmb.setValue( '' );
-
- this.allowOnChange = true;
- },
- onChange : function()
- {
- if ( this.allowOnChange ) // Dont't call on dialog load.
- this.onKeyUp();
- },
- validate : function()
- {
- var dialog = this.getDialog();
-
- if ( dialog.getContentElement( 'info', 'linkType' ) &&
- dialog.getValueOf( 'info', 'linkType' ) != 'url' )
- return true;
-
- if ( this.getDialog().fakeObj ) // Edit Anchor.
- return true;
-
- var func = CKEDITOR.dialog.validate.notEmpty( editor.lang.link.noUrl );
- return func.apply( this );
- },
- setup : function( data )
- {
- this.allowOnChange = false;
- if ( data.url )
- this.setValue( data.url.url );
- this.allowOnChange = true;
-
- },
- commit : function( data )
- {
- // IE will not trigger the onChange event if the mouse has been used
- // to carry all the operations #4724
- this.onChange();
-
- if ( !data.url )
- data.url = {};
-
- data.url.url = this.getValue();
- this.allowOnChange = false;
- }
- }
+ type: 'select',
+ id: 'anchorName',
+ 'default': '',
+ label: linkLang.anchorName,
+ style: 'width: 100%;',
+ items: [
+ [ '' ]
],
- setup : function( data )
- {
- if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
- this.getElement().show();
+ setup: function( data ) {
+ this.clear();
+ this.add( '' );
+ for ( var i = 0; i < data.anchors.length; i++ ) {
+ if ( data.anchors[ i ].name )
+ this.add( data.anchors[ i ].name );
}
+
+ if ( data.anchor )
+ this.setValue( data.anchor.name );
+
+ var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
+ if ( linkType && linkType.getValue() == 'email' )
+ this.focus();
},
- {
- type : 'button',
- id : 'browse',
- hidden : 'true',
- filebrowser : 'info:url',
- label : editor.lang.common.browseServer
+ commit: function( data ) {
+ if ( !data.anchor )
+ data.anchor = {};
+
+ data.anchor.name = this.getValue();
}
- ]
- },
- {
- type : 'vbox',
- id : 'anchorOptions',
- width : 260,
- align : 'center',
- padding : 0,
- children :
- [
- {
- type : 'fieldset',
- id : 'selectAnchorText',
- label : editor.lang.link.selectAnchor,
- setup : function( data )
- {
- if ( data.anchors.length > 0 )
- this.getElement().show();
- else
- this.getElement().hide();
- },
- children :
- [
- {
- type : 'hbox',
- id : 'selectAnchor',
- children :
- [
- {
- type : 'select',
- id : 'anchorName',
- 'default' : '',
- label : editor.lang.link.anchorName,
- style : 'width: 100%;',
- items :
- [
- [ '' ]
- ],
- setup : function( data )
- {
- this.clear();
- this.add( '' );
- for ( var i = 0 ; i < data.anchors.length ; i++ )
- {
- if ( data.anchors[i].name )
- this.add( data.anchors[i].name );
- }
-
- if ( data.anchor )
- this.setValue( data.anchor.name );
-
- var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
- if ( linkType && linkType.getValue() == 'email' )
- this.focus();
- },
- commit : function( data )
- {
- if ( !data.anchor )
- data.anchor = {};
-
- data.anchor.name = this.getValue();
- }
- },
- {
- type : 'select',
- id : 'anchorId',
- 'default' : '',
- label : editor.lang.link.anchorId,
- style : 'width: 100%;',
- items :
- [
- [ '' ]
- ],
- setup : function( data )
- {
- this.clear();
- this.add( '' );
- for ( var i = 0 ; i < data.anchors.length ; i++ )
- {
- if ( data.anchors[i].id )
- this.add( data.anchors[i].id );
- }
-
- if ( data.anchor )
- this.setValue( data.anchor.id );
- },
- commit : function( data )
- {
- if ( !data.anchor )
- data.anchor = {};
-
- data.anchor.id = this.getValue();
- }
- }
- ],
- setup : function( data )
- {
- if ( data.anchors.length > 0 )
- this.getElement().show();
- else
- this.getElement().hide();
- }
- }
- ]
- },
+ },
{
- type : 'html',
- id : 'noAnchors',
- style : 'text-align: center;',
- html : '<div role="label" tabIndex="-1">' + CKEDITOR.tools.htmlEncode( editor.lang.link.noAnchors ) + '</div>',
- // Focus the first element defined in above html.
- focus : true,
- setup : function( data )
- {
- if ( data.anchors.length < 1 )
- this.getElement().show();
- else
- this.getElement().hide();
+ type: 'select',
+ id: 'anchorId',
+ 'default': '',
+ label: linkLang.anchorId,
+ style: 'width: 100%;',
+ items: [
+ [ '' ]
+ ],
+ setup: function( data ) {
+ this.clear();
+ this.add( '' );
+ for ( var i = 0; i < data.anchors.length; i++ ) {
+ if ( data.anchors[ i ].id )
+ this.add( data.anchors[ i ].id );
}
+
+ if ( data.anchor )
+ this.setValue( data.anchor.id );
+ },
+ commit: function( data ) {
+ if ( !data.anchor )
+ data.anchor = {};
+
+ data.anchor.id = this.getValue();
}
+ }
],
- setup : function( data )
- {
- if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+ setup: function( data ) {
+ if ( data.anchors.length > 0 )
+ this.getElement().show();
+ else
this.getElement().hide();
}
+ }
+ ]
+ },
+ {
+ type: 'html',
+ id: 'noAnchors',
+ style: 'text-align: center;',
+ html: '<div role="note" tabIndex="-1">' + CKEDITOR.tools.htmlEncode( linkLang.noAnchors ) + '</div>',
+ // Focus the first element defined in above html.
+ focus: true,
+ setup: function( data ) {
+ if ( data.anchors.length < 1 )
+ this.getElement().show();
+ else
+ this.getElement().hide();
+ }
+ }
+ ],
+ setup: function( data ) {
+ if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+ this.getElement().hide();
+ }
+ },
+ {
+ type: 'vbox',
+ id: 'emailOptions',
+ padding: 1,
+ children: [
+ {
+ type: 'text',
+ id: 'emailAddress',
+ label: linkLang.emailAddress,
+ required: true,
+ validate: function() {
+ var dialog = this.getDialog();
+
+ if ( !dialog.getContentElement( 'info', 'linkType' ) || dialog.getValueOf( 'info', 'linkType' ) != 'email' )
+ return true;
+
+ var func = CKEDITOR.dialog.validate.notEmpty( linkLang.noEmail );
+ return func.apply( this );
},
+ setup: function( data ) {
+ if ( data.email )
+ this.setValue( data.email.address );
+
+ var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
+ if ( linkType && linkType.getValue() == 'email' )
+ this.select();
+ },
+ commit: function( data ) {
+ if ( !data.email )
+ data.email = {};
+
+ data.email.address = this.getValue();
+ }
+ },
{
- type : 'vbox',
- id : 'emailOptions',
- padding : 1,
- children :
- [
- {
- type : 'text',
- id : 'emailAddress',
- label : editor.lang.link.emailAddress,
- required : true,
- validate : function()
- {
- var dialog = this.getDialog();
-
- if ( !dialog.getContentElement( 'info', 'linkType' ) ||
- dialog.getValueOf( 'info', 'linkType' ) != 'email' )
- return true;
-
- var func = CKEDITOR.dialog.validate.notEmpty( editor.lang.link.noEmail );
- return func.apply( this );
- },
- setup : function( data )
- {
- if ( data.email )
- this.setValue( data.email.address );
-
- var linkType = this.getDialog().getContentElement( 'info', 'linkType' );
- if ( linkType && linkType.getValue() == 'email' )
- this.select();
- },
- commit : function( data )
- {
- if ( !data.email )
- data.email = {};
-
- data.email.address = this.getValue();
- }
- },
- {
- type : 'text',
- id : 'emailSubject',
- label : editor.lang.link.emailSubject,
- setup : function( data )
- {
- if ( data.email )
- this.setValue( data.email.subject );
- },
- commit : function( data )
- {
- if ( !data.email )
- data.email = {};
-
- data.email.subject = this.getValue();
- }
- },
- {
- type : 'textarea',
- id : 'emailBody',
- label : editor.lang.link.emailBody,
- rows : 3,
- 'default' : '',
- setup : function( data )
- {
- if ( data.email )
- this.setValue( data.email.body );
- },
- commit : function( data )
- {
- if ( !data.email )
- data.email = {};
-
- data.email.body = this.getValue();
- }
- }
+ type: 'text',
+ id: 'emailSubject',
+ label: linkLang.emailSubject,
+ setup: function( data ) {
+ if ( data.email )
+ this.setValue( data.email.subject );
+ },
+ commit: function( data ) {
+ if ( !data.email )
+ data.email = {};
+
+ data.email.subject = this.getValue();
+ }
+ },
+ {
+ type: 'textarea',
+ id: 'emailBody',
+ label: linkLang.emailBody,
+ rows: 3,
+ 'default': '',
+ setup: function( data ) {
+ if ( data.email )
+ this.setValue( data.email.body );
+ },
+ commit: function( data ) {
+ if ( !data.email )
+ data.email = {};
+
+ data.email.body = this.getValue();
+ }
+ }
+ ],
+ setup: function( data ) {
+ if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
+ this.getElement().hide();
+ }
+ }
+ ]
+ },
+ {
+ id: 'target',
+ label: linkLang.target,
+ title: linkLang.target,
+ elements: [
+ {
+ type: 'hbox',
+ widths: [ '50%', '50%' ],
+ children: [
+ {
+ type: 'select',
+ id: 'linkTargetType',
+ label: commonLang.target,
+ 'default': 'notSet',
+ style: 'width : 100%;',
+ 'items': [
+ [ commonLang.notSet, 'notSet' ],
+ [ linkLang.targetFrame, 'frame' ],
+ [ linkLang.targetPopup, 'popup' ],
+ [ commonLang.targetNew, '_blank' ],
+ [ commonLang.targetTop, '_top' ],
+ [ commonLang.targetSelf, '_self' ],
+ [ commonLang.targetParent, '_parent' ]
],
- setup : function( data )
- {
- if ( !this.getDialog().getContentElement( 'info', 'linkType' ) )
- this.getElement().hide();
- }
+ onChange: targetChanged,
+ setup: function( data ) {
+ if ( data.target )
+ this.setValue( data.target.type || 'notSet' );
+ targetChanged.call( this );
+ },
+ commit: function( data ) {
+ if ( !data.target )
+ data.target = {};
+
+ data.target.type = this.getValue();
+ }
+ },
+ {
+ type: 'text',
+ id: 'linkTargetName',
+ label: linkLang.targetFrameName,
+ 'default': '',
+ setup: function( data ) {
+ if ( data.target )
+ this.setValue( data.target.name );
+ },
+ commit: function( data ) {
+ if ( !data.target )
+ data.target = {};
+
+ data.target.name = this.getValue().replace( /\W/gi, '' );
}
+ }
]
},
- {
- id : 'target',
- label : editor.lang.link.target,
- title : editor.lang.link.target,
- elements :
- [
+ {
+ type: 'vbox',
+ width: '100%',
+ align: 'center',
+ padding: 2,
+ id: 'popupFeatures',
+ children: [
{
- type : 'hbox',
- widths : [ '50%', '50%' ],
- children :
- [
+ type: 'fieldset',
+ label: linkLang.popupFeatures,
+ children: [
+ {
+ type: 'hbox',
+ children: [
{
- type : 'select',
- id : 'linkTargetType',
- label : editor.lang.common.target,
- 'default' : 'notSet',
- style : 'width : 100%;',
- 'items' :
- [
- [ editor.lang.common.notSet, 'notSet' ],
- [ editor.lang.link.targetFrame, 'frame' ],
- [ editor.lang.link.targetPopup, 'popup' ],
- [ editor.lang.common.targetNew, '_blank' ],
- [ editor.lang.common.targetTop, '_top' ],
- [ editor.lang.common.targetSelf, '_self' ],
- [ editor.lang.common.targetParent, '_parent' ]
- ],
- onChange : targetChanged,
- setup : function( data )
- {
- if ( data.target )
- this.setValue( data.target.type );
- targetChanged.call( this );
- },
- commit : function( data )
- {
- if ( !data.target )
- data.target = {};
-
- data.target.type = this.getValue();
- }
- },
+ type: 'checkbox',
+ id: 'resizable',
+ label: linkLang.popupResizable,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+ },
{
- type : 'text',
- id : 'linkTargetName',
- label : editor.lang.link.targetFrameName,
- 'default' : '',
- setup : function( data )
- {
- if ( data.target )
- this.setValue( data.target.name );
- },
- commit : function( data )
- {
- if ( !data.target )
- data.target = {};
-
- data.target.name = this.getValue().replace(/\W/gi, '');
- }
- }
+ type: 'checkbox',
+ id: 'status',
+ label: linkLang.popupStatusBar,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ }
]
},
- {
- type : 'vbox',
- width : 260,
- align : 'center',
- padding : 2,
- id : 'popupFeatures',
- children :
- [
+ {
+ type: 'hbox',
+ children: [
{
- type : 'fieldset',
- label : editor.lang.link.popupFeatures,
- children :
- [
- {
- type : 'hbox',
- children :
- [
- {
- type : 'checkbox',
- id : 'resizable',
- label : editor.lang.link.popupResizable,
- setup : setupPopupParams,
- commit : commitPopupParams
- },
- {
- type : 'checkbox',
- id : 'status',
- label : editor.lang.link.popupStatusBar,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- }
- ]
- },
- {
- type : 'hbox',
- children :
- [
- {
- type : 'checkbox',
- id : 'location',
- label : editor.lang.link.popupLocationBar,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- },
- {
- type : 'checkbox',
- id : 'toolbar',
- label : editor.lang.link.popupToolbar,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- }
- ]
- },
- {
- type : 'hbox',
- children :
- [
- {
- type : 'checkbox',
- id : 'menubar',
- label : editor.lang.link.popupMenuBar,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- },
- {
- type : 'checkbox',
- id : 'fullscreen',
- label : editor.lang.link.popupFullScreen,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- }
- ]
- },
- {
- type : 'hbox',
- children :
- [
- {
- type : 'checkbox',
- id : 'scrollbars',
- label : editor.lang.link.popupScrollBars,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- },
- {
- type : 'checkbox',
- id : 'dependent',
- label : editor.lang.link.popupDependent,
- setup : setupPopupParams,
- commit : commitPopupParams
-
- }
- ]
- },
- {
- type : 'hbox',
- children :
- [
- {
- type : 'text',
- widths : [ '30%', '70%' ],
- labelLayout : 'horizontal',
- label : editor.lang.link.popupWidth,
- id : 'width',
- setup : setupPopupParams,
- commit : commitPopupParams
-
- },
- {
- type : 'text',
- labelLayout : 'horizontal',
- widths : [ '55%', '45%' ],
- label : editor.lang.link.popupLeft,
- id : 'left',
- setup : setupPopupParams,
- commit : commitPopupParams
-
- }
- ]
- },
- {
- type : 'hbox',
- children :
- [
- {
- type : 'text',
- labelLayout : 'horizontal',
- widths : [ '30%', '70%' ],
- label : editor.lang.link.popupHeight,
- id : 'height',
- setup : setupPopupParams,
- commit : commitPopupParams
-
- },
- {
- type : 'text',
- labelLayout : 'horizontal',
- label : editor.lang.link.popupTop,
- widths : [ '55%', '45%' ],
- id : 'top',
- setup : setupPopupParams,
- commit : commitPopupParams
-
- }
- ]
- }
- ]
- }
+ type: 'checkbox',
+ id: 'location',
+ label: linkLang.popupLocationBar,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ },
+ {
+ type: 'checkbox',
+ id: 'toolbar',
+ label: linkLang.popupToolbar,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ children: [
+ {
+ type: 'checkbox',
+ id: 'menubar',
+ label: linkLang.popupMenuBar,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ },
+ {
+ type: 'checkbox',
+ id: 'fullscreen',
+ label: linkLang.popupFullScreen,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ children: [
+ {
+ type: 'checkbox',
+ id: 'scrollbars',
+ label: linkLang.popupScrollBars,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ },
+ {
+ type: 'checkbox',
+ id: 'dependent',
+ label: linkLang.popupDependent,
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ children: [
+ {
+ type: 'text',
+ widths: [ '50%', '50%' ],
+ labelLayout: 'horizontal',
+ label: commonLang.width,
+ id: 'width',
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ },
+ {
+ type: 'text',
+ labelLayout: 'horizontal',
+ widths: [ '50%', '50%' ],
+ label: linkLang.popupLeft,
+ id: 'left',
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ children: [
+ {
+ type: 'text',
+ labelLayout: 'horizontal',
+ widths: [ '50%', '50%' ],
+ label: commonLang.height,
+ id: 'height',
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ },
+ {
+ type: 'text',
+ labelLayout: 'horizontal',
+ label: linkLang.popupTop,
+ widths: [ '50%', '50%' ],
+ id: 'top',
+ setup: setupPopupParams,
+ commit: commitPopupParams
+
+ }
]
}
+ ]
+ }
]
+ }
+ ]
+ },
+ {
+ id: 'upload',
+ label: linkLang.upload,
+ title: linkLang.upload,
+ hidden: true,
+ filebrowser: 'uploadButton',
+ elements: [
+ {
+ type: 'file',
+ id: 'upload',
+ label: commonLang.upload,
+ style: 'height:40px',
+ size: 29
},
+ {
+ type: 'fileButton',
+ id: 'uploadButton',
+ label: commonLang.uploadSubmit,
+ filebrowser: 'info:url',
+ 'for': [ 'upload', 'upload' ]
+ }
+ ]
+ },
{
- id : 'upload',
- label : editor.lang.link.upload,
- title : editor.lang.link.upload,
- hidden : true,
- filebrowser : 'uploadButton',
- elements :
- [
+ id: 'advanced',
+ label: linkLang.advanced,
+ title: linkLang.advanced,
+ elements: [
+ {
+ type: 'vbox',
+ padding: 1,
+ children: [
{
- type : 'file',
- id : 'upload',
- label : editor.lang.common.upload,
- style: 'height:40px',
- size : 29
+ type: 'hbox',
+ widths: [ '45%', '35%', '20%' ],
+ children: [
+ {
+ type: 'text',
+ id: 'advId',
+ label: linkLang.id,
+ setup: setupAdvParams,
+ commit: commitAdvParams
+ },
+ {
+ type: 'select',
+ id: 'advLangDir',
+ label: linkLang.langDir,
+ 'default': '',
+ style: 'width:110px',
+ items: [
+ [ commonLang.notSet, '' ],
+ [ linkLang.langDirLTR, 'ltr' ],
+ [ linkLang.langDirRTL, 'rtl' ]
+ ],
+ setup: setupAdvParams,
+ commit: commitAdvParams
},
+ {
+ type: 'text',
+ id: 'advAccessKey',
+ width: '80px',
+ label: linkLang.acccessKey,
+ maxLength: 1,
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
+ }
+ ]
+ },
{
- type : 'fileButton',
- id : 'uploadButton',
- label : editor.lang.common.uploadSubmit,
- filebrowser : 'info:url',
- 'for' : [ 'upload', 'upload' ]
+ type: 'hbox',
+ widths: [ '45%', '35%', '20%' ],
+ children: [
+ {
+ type: 'text',
+ label: linkLang.name,
+ id: 'advName',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
+ },
+ {
+ type: 'text',
+ label: linkLang.langCode,
+ id: 'advLangCode',
+ width: '110px',
+ 'default': '',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
+ },
+ {
+ type: 'text',
+ label: linkLang.tabIndex,
+ id: 'advTabIndex',
+ width: '80px',
+ maxLength: 5,
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
}
+ ]
+ }
]
},
- {
- id : 'advanced',
- label : editor.lang.link.advanced,
- title : editor.lang.link.advanced,
- elements :
- [
+ {
+ type: 'vbox',
+ padding: 1,
+ children: [
{
- type : 'vbox',
- padding : 1,
- children :
- [
- {
- type : 'hbox',
- widths : [ '45%', '35%', '20%' ],
- children :
- [
- {
- type : 'text',
- id : 'advId',
- label : editor.lang.link.id,
- setup : setupAdvParams,
- commit : commitAdvParams
- },
- {
- type : 'select',
- id : 'advLangDir',
- label : editor.lang.link.langDir,
- 'default' : '',
- style : 'width:110px',
- items :
- [
- [ editor.lang.common.notSet, '' ],
- [ editor.lang.link.langDirLTR, 'ltr' ],
- [ editor.lang.link.langDirRTL, 'rtl' ]
- ],
- setup : setupAdvParams,
- commit : commitAdvParams
- },
- {
- type : 'text',
- id : 'advAccessKey',
- width : '80px',
- label : editor.lang.link.acccessKey,
- maxLength : 1,
- setup : setupAdvParams,
- commit : commitAdvParams
-
- }
- ]
- },
- {
- type : 'hbox',
- widths : [ '45%', '35%', '20%' ],
- children :
- [
- {
- type : 'text',
- label : editor.lang.link.name,
- id : 'advName',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- },
- {
- type : 'text',
- label : editor.lang.link.langCode,
- id : 'advLangCode',
- width : '110px',
- 'default' : '',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- },
- {
- type : 'text',
- label : editor.lang.link.tabIndex,
- id : 'advTabIndex',
- width : '80px',
- maxLength : 5,
- setup : setupAdvParams,
- commit : commitAdvParams
-
- }
- ]
- }
- ]
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
+ {
+ type: 'text',
+ label: linkLang.advisoryTitle,
+ 'default': '',
+ id: 'advTitle',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
},
+ {
+ type: 'text',
+ label: linkLang.advisoryContentType,
+ 'default': '',
+ id: 'advContentType',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
+ }
+ ]
+ },
{
- type : 'vbox',
- padding : 1,
- children :
- [
- {
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
- {
- type : 'text',
- label : editor.lang.link.advisoryTitle,
- 'default' : '',
- id : 'advTitle',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- },
- {
- type : 'text',
- label : editor.lang.link.advisoryContentType,
- 'default' : '',
- id : 'advContentType',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- }
- ]
- },
- {
- type : 'hbox',
- widths : [ '45%', '55%' ],
- children :
- [
- {
- type : 'text',
- label : editor.lang.link.cssClasses,
- 'default' : '',
- id : 'advCSSClasses',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- },
- {
- type : 'text',
- label : editor.lang.link.charset,
- 'default' : '',
- id : 'advCharset',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- }
- ]
- },
- {
- type : 'hbox',
- children :
- [
- {
- type : 'text',
- label : editor.lang.link.styles,
- 'default' : '',
- id : 'advStyles',
- setup : setupAdvParams,
- commit : commitAdvParams
-
- }
- ]
- }
- ]
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
+ {
+ type: 'text',
+ label: linkLang.cssClasses,
+ 'default': '',
+ id: 'advCSSClasses',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
+ },
+ {
+ type: 'text',
+ label: linkLang.charset,
+ 'default': '',
+ id: 'advCharset',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+
}
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '45%', '55%' ],
+ children: [
+ {
+ type: 'text',
+ label: linkLang.rel,
+ 'default': '',
+ id: 'advRel',
+ setup: setupAdvParams,
+ commit: commitAdvParams
+ },
+ {
+ type: 'text',
+ label: linkLang.styles,
+ 'default': '',
+ id: 'advStyles',
+ validate: CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ),
+ setup: setupAdvParams,
+ commit: commitAdvParams
+ }
+ ]
+ }
]
}
+ ]
+ }
],
- onShow : function()
- {
- this.fakeObj = false;
-
+ onShow: function() {
var editor = this.getParentEditor(),
selection = editor.getSelection(),
element = null;
@@ -1143,145 +1046,132 @@ CKEDITOR.dialog.add( 'link', function( editor )
// Fill in all the relevant fields if there's already one link selected.
if ( ( element = plugin.getSelectedLink( editor ) ) && element.hasAttribute( 'href' ) )
selection.selectElement( element );
- else if ( ( element = selection.getSelectedElement() ) && element.is( 'img' )
- && element.getAttribute( '_cke_real_element_type' )
- && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
- {
- this.fakeObj = element;
- element = editor.restoreRealElement( this.fakeObj );
- selection.selectElement( this.fakeObj );
- }
else
element = null;
this.setupContent( parseLink.apply( this, [ editor, element ] ) );
},
- onOk : function()
- {
- var attributes = { href : 'javascript:void(0)/*' + CKEDITOR.tools.getNextNumber() + '*/' },
+ onOk: function() {
+ var attributes = {},
removeAttributes = [],
- data = { href : attributes.href },
+ data = {},
me = this,
editor = this.getParentEditor();
this.commitContent( data );
// Compose the URL.
- switch ( data.type || 'url' )
- {
+ switch ( data.type || 'url' ) {
case 'url':
var protocol = ( data.url && data.url.protocol != undefined ) ? data.url.protocol : 'http://',
- url = ( data.url && data.url.url ) || '';
- attributes._cke_saved_href = ( url.indexOf( '/' ) === 0 ) ? url : protocol + url;
+ url = ( data.url && CKEDITOR.tools.trim( data.url.url ) ) || '';
+ attributes[ 'data-cke-saved-href' ] = ( url.indexOf( '/' ) === 0 ) ? url : protocol + url;
break;
case 'anchor':
var name = ( data.anchor && data.anchor.name ),
id = ( data.anchor && data.anchor.id );
- attributes._cke_saved_href = '#' + ( name || id || '' );
+ attributes[ 'data-cke-saved-href' ] = '#' + ( name || id || '' );
break;
case 'email':
var linkHref,
- email = data.email,
+ email = data.email,
address = email.address;
- switch( emailProtection )
- {
- case '' :
- case 'encode' :
- {
- var subject = encodeURIComponent( email.subject || '' ),
- body = encodeURIComponent( email.body || '' );
-
- // Build the e-mail parameters first.
- var argList = [];
- subject && argList.push( 'subject=' + subject );
- body && argList.push( 'body=' + body );
- argList = argList.length ? '?' + argList.join( '&' ) : '';
-
- if ( emailProtection == 'encode' )
+ switch ( emailProtection ) {
+ case '':
+ case 'encode':
{
- linkHref = [ 'javascript:void(location.href=\'mailto:\'+',
- protectEmailAddressAsEncodedString( address ) ];
- // parameters are optional.
- argList && linkHref.push( '+\'', escapeSingleQuote( argList ), '\'' );
-
- linkHref.push( ')' );
+ var subject = encodeURIComponent( email.subject || '' ),
+ body = encodeURIComponent( email.body || '' );
+
+ // Build the e-mail parameters first.
+ var argList = [];
+ subject && argList.push( 'subject=' + subject );
+ body && argList.push( 'body=' + body );
+ argList = argList.length ? '?' + argList.join( '&' ) : '';
+
+ if ( emailProtection == 'encode' ) {
+ linkHref = [ 'javascript:void(location.href=\'mailto:\'+',
+ protectEmailAddressAsEncodedString( address ) ];
+ // parameters are optional.
+ argList && linkHref.push( '+\'', escapeSingleQuote( argList ), '\'' );
+
+ linkHref.push( ')' );
+ } else
+ linkHref = [ 'mailto:', address, argList ];
+
+ break;
}
- else
- linkHref = [ 'mailto:', address, argList ];
-
- break;
- }
- default :
- {
- // Separating name and domain.
- var nameAndDomain = address.split( '@', 2 );
- email.name = nameAndDomain[ 0 ];
- email.domain = nameAndDomain[ 1 ];
+ default:
+ {
+ // Separating name and domain.
+ var nameAndDomain = address.split( '@', 2 );
+ email.name = nameAndDomain[ 0 ];
+ email.domain = nameAndDomain[ 1 ];
- linkHref = [ 'javascript:', protectEmailLinkAsFunction( email ) ];
- }
+ linkHref = [ 'javascript:', protectEmailLinkAsFunction( email ) ];
+ }
}
- attributes._cke_saved_href = linkHref.join( '' );
+ attributes[ 'data-cke-saved-href' ] = linkHref.join( '' );
break;
}
// Popups and target.
- if ( data.target )
- {
- if ( data.target.type == 'popup' )
- {
+ if ( data.target ) {
+ if ( data.target.type == 'popup' ) {
var onclickList = [ 'window.open(this.href, \'',
- data.target.name || '', '\', \'' ];
+ data.target.name || '', '\', \'' ];
var featureList = [ 'resizable', 'status', 'location', 'toolbar', 'menubar', 'fullscreen',
- 'scrollbars', 'dependent' ];
+ 'scrollbars', 'dependent' ];
var featureLength = featureList.length;
- var addFeature = function( featureName )
- {
- if ( data.target[ featureName ] )
- featureList.push( featureName + '=' + data.target[ featureName ] );
- };
+ var addFeature = function( featureName ) {
+ if ( data.target[ featureName ] )
+ featureList.push( featureName + '=' + data.target[ featureName ] );
+ };
- for ( var i = 0 ; i < featureLength ; i++ )
- featureList[i] = featureList[i] + ( data.target[ featureList[i] ] ? '=yes' : '=no' ) ;
+ for ( var i = 0; i < featureLength; i++ )
+ featureList[ i ] = featureList[ i ] + ( data.target[ featureList[ i ] ] ? '=yes' : '=no' );
addFeature( 'width' );
addFeature( 'left' );
addFeature( 'height' );
addFeature( 'top' );
onclickList.push( featureList.join( ',' ), '\'); return false;' );
- attributes[ '_cke_pa_onclick' ] = onclickList.join( '' );
- }
- else
- {
+ attributes[ 'data-cke-pa-onclick' ] = onclickList.join( '' );
+
+ // Add the "target" attribute. (#5074)
+ removeAttributes.push( 'target' );
+ } else {
if ( data.target.type != 'notSet' && data.target.name )
attributes.target = data.target.name;
else
removeAttributes.push( 'target' );
- removeAttributes.push( '_cke_pa_onclick', 'onclick' );
+ removeAttributes.push( 'data-cke-pa-onclick', 'onclick' );
}
}
// Advanced attributes.
- if ( data.adv )
- {
- var advAttr = function( inputName, attrName )
- {
- var value = data.adv[ inputName ];
- if ( value )
- attributes[attrName] = value;
- else
- removeAttributes.push( attrName );
- };
+ if ( data.adv ) {
+ var advAttr = function( inputName, attrName ) {
+ var value = data.adv[ inputName ];
+ if ( value )
+ attributes[ attrName ] = value;
+ else
+ removeAttributes.push( attrName );
+ };
- if ( this._.selectedElement )
- advAttr( 'advId', 'id' );
+ advAttr( 'advId', 'id' );
advAttr( 'advLangDir', 'dir' );
advAttr( 'advAccessKey', 'accessKey' );
- advAttr( 'advName', 'name' );
+
+ if ( data.adv[ 'advName' ] )
+ attributes[ 'name' ] = attributes[ 'data-cke-saved-name' ] = data.adv[ 'advName' ];
+ else
+ removeAttributes = removeAttributes.concat( [ 'data-cke-saved-name', 'name' ] );
+
advAttr( 'advLangCode', 'lang' );
advAttr( 'advTabIndex', 'tabindex' );
advAttr( 'advTitle', 'title' );
@@ -1289,103 +1179,65 @@ CKEDITOR.dialog.add( 'link', function( editor )
advAttr( 'advCSSClasses', 'class' );
advAttr( 'advCharset', 'charset' );
advAttr( 'advStyles', 'style' );
+ advAttr( 'advRel', 'rel' );
}
- if ( !this._.selectedElement )
- {
- // Create element if current selection is collapsed.
- var selection = editor.getSelection(),
- ranges = selection.getRanges( true );
- if ( ranges.length == 1 && ranges[0].collapsed )
- {
+
+ var selection = editor.getSelection();
+
+ // Browser need the "href" fro copy/paste link to work. (#6641)
+ attributes.href = attributes[ 'data-cke-saved-href' ];
+
+ if ( !this._.selectedElement ) {
+ var range = selection.getRanges( 1 )[ 0 ];
+
+ // Use link URL as text with a collapsed cursor.
+ if ( range.collapsed ) {
// Short mailto link text view (#5736).
- var text = new CKEDITOR.dom.text( data.type == 'email' ?
- data.email.address : attributes._cke_saved_href, editor.document );
- ranges[0].insertNode( text );
- ranges[0].selectNodeContents( text );
- selection.selectRanges( ranges );
+ var text = new CKEDITOR.dom.text( data.type == 'email' ? data.email.address : attributes[ 'data-cke-saved-href' ], editor.document );
+ range.insertNode( text );
+ range.selectNodeContents( text );
}
// Apply style.
- var style = new CKEDITOR.style( { element : 'a', attributes : attributes } );
- style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.
- style.apply( editor.document );
-
- // Id. Apply only to the first link.
- if ( data.adv && data.adv.advId )
- {
- var links = this.getParentEditor().document.$.getElementsByTagName( 'a' );
- for ( i = 0 ; i < links.length ; i++ )
- {
- if ( links[i].href == attributes.href )
- {
- links[i].id = data.adv.advId;
- break;
- }
- }
- }
- }
- else
- {
+ var style = new CKEDITOR.style({ element: 'a', attributes: attributes } );
+ style.type = CKEDITOR.STYLE_INLINE; // need to override... dunno why.
+ style.applyToRange( range );
+ range.select();
+ } else {
// We're only editing an existing link, so just overwrite the attributes.
var element = this._.selectedElement,
- href = element.getAttribute( '_cke_saved_href' ),
+ href = element.data( 'cke-saved-href' ),
textView = element.getHtml();
- // IE BUG: Setting the name attribute to an existing link doesn't work.
- // Must re-create the link from weired syntax to workaround.
- if ( CKEDITOR.env.ie && attributes.name != element.getAttribute( 'name' ) )
- {
- var newElement = new CKEDITOR.dom.element( '<a name="' + CKEDITOR.tools.htmlEncode( attributes.name ) + '">',
- editor.document );
-
- selection = editor.getSelection();
-
- element.moveChildren( newElement );
- element.copyAttributes( newElement, { name : 1 } );
- newElement.replace( element );
- element = newElement;
-
- selection.selectElement( element );
- }
-
element.setAttributes( attributes );
element.removeAttributes( removeAttributes );
+
+ if ( data.adv && data.adv.advName && CKEDITOR.plugins.link.synAnchorSelector )
+ element.addClass( element.getChildCount() ? 'cke_anchor' : 'cke_anchor_empty' );
+
// Update text view when user changes protocol (#4612).
- if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 )
- {
+ if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {
// Short mailto link text view (#5736).
- element.setHtml( data.type == 'email' ?
- data.email.address : attributes._cke_saved_href );
+ element.setHtml( data.type == 'email' ? data.email.address : attributes[ 'data-cke-saved-href' ] );
}
- // Make the element display as an anchor if a name has been set.
- if ( element.getAttribute( 'name' ) )
- element.addClass( 'cke_anchor' );
- else
- element.removeClass( 'cke_anchor' );
-
- if ( this.fakeObj )
- editor.createFakeElement( element, 'cke_anchor', 'anchor' ).replace( this.fakeObj );
+ selection.selectElement( element );
delete this._.selectedElement;
}
},
- onLoad : function()
- {
+ onLoad: function() {
if ( !editor.config.linkShowAdvancedTab )
- this.hidePage( 'advanced' ); //Hide Advanded tab.
+ this.hidePage( 'advanced' ); //Hide Advanded tab.
if ( !editor.config.linkShowTargetTab )
- this.hidePage( 'target' ); //Hide Target tab.
-
+ this.hidePage( 'target' ); //Hide Target tab.
},
// Inital focus on 'url' field if link is of type URL.
- onFocus : function()
- {
+ onFocus: function() {
var linkType = this.getContentElement( 'info', 'linkType' ),
- urlField;
- if ( linkType && linkType.getValue( ) == 'url' )
- {
+ urlField;
+ if ( linkType && linkType.getValue() == 'url' ) {
urlField = this.getContentElement( 'info', 'url' );
urlField.select();
}
@@ -1395,26 +1247,29 @@ CKEDITOR.dialog.add( 'link', function( editor )
/**
* The e-mail address anti-spam protection option. The protection will be
- * applied when creating or modifying e-mail links through the editor interface.<br>
+ * applied when creating or modifying e-mail links through the editor interface.
+ *
* Two methods of protection can be choosed:
- * <ol> <li>The e-mail parts (name, domain and any other query string) are
- * assembled into a function call pattern. Such function must be
- * provided by the developer in the pages that will use the contents.
- * <li>Only the e-mail address is obfuscated into a special string that
- * has no meaning for humans or spam bots, but which is properly
- * rendered and accepted by the browser.</li></ol>
+ *
+ * 1. The e-mail parts (name, domain and any other query string) are
+ * assembled into a function call pattern. Such function must be
+ * provided by the developer in the pages that will use the contents.
+ * 2. Only the e-mail address is obfuscated into a special string that
+ * has no meaning for humans or spam bots, but which is properly
+ * rendered and accepted by the browser.
+ *
* Both approaches require JavaScript to be enabled.
- * @name CKEDITOR.config.emailProtection
+ *
+ * // href="mailto:tester at ckeditor.com?subject=subject&body=body"
+ * config.emailProtection = '';
+ *
+ * // href="<a href=\"javascript:void(location.href=\'mailto:\'+String.fromCharCode(116,101,115,116,101,114,64,99,107,101,100,105,116,111,114,46,99,111,109)+\'?subject=subject&body=body\')\">e-mail</a>"
+ * config.emailProtection = 'encode';
+ *
+ * // href="javascript:mt('tester','ckeditor.com','subject','body')"
+ * config.emailProtection = 'mt(NAME,DOMAIN,SUBJECT,BODY)';
+ *
* @since 3.1
- * @type String
- * @default '' (empty string = disabled)
- * @example
- * // href="mailto:tester at ckeditor.com?subject=subject&body=body"
- * config.emailProtection = '';
- * @example
- * // href="<a href=\"javascript:void(location.href=\'mailto:\'+String.fromCharCode(116,101,115,116,101,114,64,99,107,101,100,105,116,111,114,46,99,111,109)+\'?subject=subject&body=body\')\">e-mail</a>"
- * config.emailProtection = 'encode';
- * @example
- * // href="javascript:mt('tester','ckeditor.com','subject','body')"
- * config.emailProtection = 'mt(NAME,DOMAIN,SUBJECT,BODY)';
+ * @cfg {String} [emailProtection='' (empty string = disabled)]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/link/icons/anchor-rtl.png b/devel/third-party/ckeditor/plugins/link/icons/anchor-rtl.png
new file mode 100644
index 0000000..0cde630
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/link/icons/anchor-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/link/icons/anchor.png b/devel/third-party/ckeditor/plugins/link/icons/anchor.png
new file mode 100644
index 0000000..fac7f2b
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/link/icons/anchor.png differ
diff --git a/devel/third-party/ckeditor/plugins/link/icons/link.png b/devel/third-party/ckeditor/plugins/link/icons/link.png
new file mode 100644
index 0000000..24fa71f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/link/icons/link.png differ
diff --git a/devel/third-party/ckeditor/plugins/link/icons/unlink.png b/devel/third-party/ckeditor/plugins/link/icons/unlink.png
new file mode 100644
index 0000000..77e97f1
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/link/icons/unlink.png differ
diff --git a/devel/third-party/ckeditor/plugins/link/images/anchor.png b/devel/third-party/ckeditor/plugins/link/images/anchor.png
new file mode 100644
index 0000000..5025df5
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/link/images/anchor.png differ
diff --git a/devel/third-party/ckeditor/plugins/link/lang/af.js b/devel/third-party/ckeditor/plugins/link/lang/af.js
new file mode 100644
index 0000000..6ddb179
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/af.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'af', {
+ acccessKey: 'Toegangsleutel',
+ advanced: 'Gevorderd',
+ advisoryContentType: 'Aanbevole inhoudstipe',
+ advisoryTitle: 'Aanbevole titel',
+ anchor: {
+ toolbar: 'Anker byvoeg/verander',
+ menu: 'Anker-eienskappe',
+ title: 'Anker-eienskappe',
+ name: 'Ankernaam',
+ errorName: 'Voltooi die ankernaam asseblief',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Op element Id',
+ anchorName: 'Op ankernaam',
+ charset: 'Karakterstel van geskakelde bron',
+ cssClasses: 'CSS klasse',
+ emailAddress: 'E-posadres',
+ emailBody: 'Berig-inhoud',
+ emailSubject: 'Berig-onderwerp',
+ id: 'Id',
+ info: 'Skakel informasie',
+ langCode: 'Taalkode',
+ langDir: 'Skryfrigting',
+ langDirLTR: 'Links na regs (LTR)',
+ langDirRTL: 'Regs na links (RTL)',
+ menu: 'Wysig skakel',
+ name: 'Naam',
+ noAnchors: '(Geen ankers beskikbaar in dokument)',
+ noEmail: 'Gee die e-posadres',
+ noUrl: 'Gee die skakel se URL',
+ other: '<ander>',
+ popupDependent: 'Afhanklik (Netscape)',
+ popupFeatures: 'Eienskappe van opspringvenster',
+ popupFullScreen: 'Volskerm (IE)',
+ popupLeft: 'Posisie links',
+ popupLocationBar: 'Adresbalk',
+ popupMenuBar: 'Spyskaartbalk',
+ popupResizable: 'Herskaalbaar',
+ popupScrollBars: 'Skuifbalke',
+ popupStatusBar: 'Statusbalk',
+ popupToolbar: 'Werkbalk',
+ popupTop: 'Posisie bo',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Kies \'n anker',
+ styles: 'Styl',
+ tabIndex: 'Tab indeks',
+ target: 'Doel',
+ targetFrame: '<raam>',
+ targetFrameName: 'Naam van doelraam',
+ targetPopup: '<opspringvenster>',
+ targetPopupName: 'Naam van opspringvenster',
+ title: 'Skakel',
+ toAnchor: 'Anker in bladsy',
+ toEmail: 'E-pos',
+ toUrl: 'URL',
+ toolbar: 'Skakel invoeg/wysig',
+ type: 'Skakelsoort',
+ unlink: 'Verwyder skakel',
+ upload: 'Oplaai'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ar.js b/devel/third-party/ckeditor/plugins/link/lang/ar.js
new file mode 100644
index 0000000..13bfe8e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ar.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ar', {
+ acccessKey: 'Ù
ÙØ§ØªÙØ Ø§ÙØ¥Ø®ØªØµØ§Ø±',
+ advanced: 'Ù
ØªÙØ¯Ù
',
+ advisoryContentType: 'ÙÙØ¹ Ø§ÙØªÙØ±ÙØ±',
+ advisoryTitle: 'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',
+ anchor: {
+ toolbar: 'إشارة Ù
Ø±Ø¬Ø¹ÙØ©',
+ menu: 'ØªØØ±Ùر Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
+ title: 'خصائص Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
+ name: 'اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
+ errorName: 'Ø§ÙØ±Ø¬Ø§Ø¡ ÙØªØ§Ø¨Ø© اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'ØØ³Ø¨ رÙÙ
Ø§ÙØ¹Ùصر',
+ anchorName: 'ØØ³Ø¨ Ø§ÙØ§Ø³Ù
',
+ charset: 'ترÙ
ÙØ² اÙÙ
ادة اÙÙ
Ø·ÙÙØ¨Ø©',
+ cssClasses: 'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',
+ emailAddress: 'عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø¥ÙÙØªØ±ÙÙÙ',
+ emailBody: 'Ù
ØØªÙÙ Ø§ÙØ±Ø³Ø§ÙØ©',
+ emailSubject: 'Ù
ÙØ¶Ùع Ø§ÙØ±Ø³Ø§ÙØ©',
+ id: 'ÙÙÙØ©',
+ info: 'Ù
عÙÙÙ
ات Ø§ÙØ±Ø§Ø¨Ø·',
+ langCode: 'ÙÙØ¯ اÙÙØµ',
+ langDir: 'إتجا٠اÙÙØµ',
+ langDirLTR: 'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',
+ langDirRTL: 'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',
+ menu: 'ØªØØ±Ùر رابط',
+ name: 'Ø§ÙØ§Ø³Ù
',
+ noAnchors: '(ÙØ§ ØªÙØ¬Ø¯ Ø¹ÙØ§Ù
ات Ù
Ø±Ø¬Ø¹ÙØ© ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯)',
+ noEmail: 'Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ',
+ noUrl: 'Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·',
+ other: '<أخرÙ>',
+ popupDependent: 'تابع (Netscape)',
+ popupFeatures: 'خصائص اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©',
+ popupFullScreen: 'Ù
ÙØ¦ Ø§ÙØ´Ø§Ø´Ø© (IE)',
+ popupLeft: 'Ø§ÙØªÙ
Ø±ÙØ² ÙÙÙØ³Ø§Ø±',
+ popupLocationBar: 'Ø´Ø±ÙØ· Ø§ÙØ¹ÙÙØ§Ù',
+ popupMenuBar: 'اÙÙÙØ§Ø¦Ù
Ø§ÙØ±Ø¦ÙØ³ÙØ©',
+ popupResizable: 'ÙØ§Ø¨ÙØ© Ø§ÙØªØ´ÙÙÙ',
+ popupScrollBars: 'أشرطة Ø§ÙØªÙ
Ø±ÙØ±',
+ popupStatusBar: 'Ø´Ø±ÙØ· Ø§ÙØØ§ÙØ©',
+ popupToolbar: 'Ø´Ø±ÙØ· Ø§ÙØ£Ø¯Ùات',
+ popupTop: 'Ø§ÙØªÙ
Ø±ÙØ² ÙÙØ£Ø¹ÙÙ',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'اختر Ø¹ÙØ§Ù
Ø© Ù
Ø±Ø¬Ø¹ÙØ©',
+ styles: 'ÙÙ
Ø·',
+ tabIndex: 'Ø§ÙØªØ±ØªÙب',
+ target: 'ÙØ¯Ù Ø§ÙØ±Ø§Ø¨Ø·',
+ targetFrame: '<إطار>',
+ targetFrameName: 'اسÙ
Ø§ÙØ¥Ø·Ø§Ø± اÙÙ
Ø³ØªÙØ¯Ù',
+ targetPopup: '<ÙØ§Ùذة Ù
ÙØ¨Ø«ÙØ©>',
+ targetPopupName: 'اسÙ
اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©',
+ title: 'إرتباط تشعبÙ',
+ toAnchor: 'Ù
ÙØ§Ù ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯',
+ toEmail: 'Ø¨Ø±ÙØ¯ Ø¥ÙÙØªØ±ÙÙÙ',
+ toUrl: 'Ø§ÙØ±Ø§Ø¨Ø·',
+ toolbar: 'رابط',
+ type: 'ÙÙØ¹ Ø§ÙØ±Ø¨Ø·',
+ unlink: 'Ø¥Ø²Ø§ÙØ© رابط',
+ upload: 'Ø±ÙØ¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/bg.js b/devel/third-party/ckeditor/plugins/link/lang/bg.js
new file mode 100644
index 0000000..5b75faa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/bg.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'bg', {
+ acccessKey: 'ÐлÑÑ Ð·Ð° доÑÑÑп',
+ advanced: 'РазÑиÑено',
+ advisoryContentType: 'ÐÑепоÑÑÑиÑелен Ñип на ÑÑдÑÑжаниеÑо',
+ advisoryTitle: 'ÐÑепоÑÑÑиÑелно заглавие',
+ anchor: {
+ toolbar: 'ÐоÑва',
+ menu: 'ÐÑомÑна на коÑва',
+ title: 'ÐаÑÑÑойки на коÑва',
+ name: 'Ðме на коÑва',
+ errorName: 'ÐÐ¾Ð»Ñ Ð²ÑведеÑе име на коÑваÑа',
+ remove: 'ÐÑемаÑ
ване на коÑва'
+ },
+ anchorId: 'Ðо ID на елеменÑ',
+ anchorName: 'Ðо име на коÑва',
+ charset: 'Тип на ÑвÑÑÐ·Ð°Ð½Ð¸Ñ ÑеÑÑÑÑ',
+ cssClasses: 'ÐлаÑове за CSS',
+ emailAddress: 'E-mail aдÑеÑ',
+ emailBody: 'СÑдÑÑжание',
+ emailSubject: 'Тема',
+ id: 'ID',
+ info: 'ÐнÑо за вÑÑзкаÑа',
+ langCode: 'Ðод за езика',
+ langDir: 'ÐоÑока на езика',
+ langDirLTR: 'ÐÑво на ÐÑÑно (ÐнÐ)',
+ langDirRTL: 'ÐÑÑно на ÐÑво (ÐнÐ)',
+ menu: 'ÐÑомÑна на вÑÑзка',
+ name: 'Ðме',
+ noAnchors: '(ÐÑма коÑви в ÑекÑÑÐ¸Ñ Ð´Ð¾ÐºÑменÑ)',
+ noEmail: 'ÐÐ¾Ð»Ñ Ð²ÑведеÑе e-mail aдÑеÑ',
+ noUrl: 'ÐÐ¾Ð»Ñ Ð²ÑведеÑе URL адÑеÑа',
+ other: '<дÑÑго>',
+ popupDependent: 'ÐавиÑимоÑÑ (Netscape)',
+ popupFeatures: 'ФÑнкÑии на изкаÑÐ°Ñ Ð¿ÑозоÑеÑ',
+ popupFullScreen: 'ЦÑл екÑан (IE)',
+ popupLeft: 'ÐÑва позиÑиÑ',
+ popupLocationBar: 'ÐенÑа Ñ Ð»Ð¾ÐºÐ°ÑиÑÑа',
+ popupMenuBar: 'ÐенÑа за менÑ',
+ popupResizable: 'ÐÑазмеÑÑем',
+ popupScrollBars: 'СкÑолеÑи',
+ popupStatusBar: 'СÑаÑÑÑна ленÑа',
+ popupToolbar: 'ÐенÑа Ñ Ð¸Ð½ÑÑÑÑменÑи',
+ popupTop: 'ÐоÑна позиÑиÑ',
+ rel: 'ÐÑÑзка',
+ selectAnchor: 'ÐзбеÑеÑе коÑва',
+ styles: 'СÑил',
+ tabIndex: 'Ред на доÑÑÑп',
+ target: 'Цел',
+ targetFrame: '<frame>',
+ targetFrameName: 'Ðме на ÑелевиÑÑ Ð¿ÑозоÑеÑ',
+ targetPopup: '<изкаÑÐ°Ñ Ð¿ÑозоÑеÑ>',
+ targetPopupName: 'Ðме на изкаÑÐ°Ñ Ð¿ÑозоÑеÑ',
+ title: 'ÐÑÑзка',
+ toAnchor: 'ÐÑÑзка кÑм коÑва в ÑекÑÑа',
+ toEmail: 'E-mail',
+ toUrl: 'Уеб адÑеÑ',
+ toolbar: 'ÐÑÑзка',
+ type: 'Тип на вÑÑзкаÑа',
+ unlink: 'ÐÑемаÑ
ни вÑÑзкаÑа',
+ upload: 'ÐаÑване'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/bn.js b/devel/third-party/ckeditor/plugins/link/lang/bn.js
new file mode 100644
index 0000000..e1addb4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/bn.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'bn', {
+ acccessKey: 'à¦à¦à§à¦¸à§à¦¸ à¦à§',
+ advanced: 'à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡',
+ advisoryContentType: 'পরামরà§à¦¶ à¦à¦¨à§à¦à§à¦¨à§à¦à§à¦° পà§à¦°à¦à¦¾à¦°',
+ advisoryTitle: 'পরামরà§à¦¶ শà§à¦°à§à¦·à¦',
+ anchor: {
+ toolbar: 'নà§à¦à§à¦à¦°',
+ menu: 'নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ title: 'নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ name: 'নà§à¦à¦°à§à¦° নাম',
+ errorName: 'নà§à¦à¦°à§à¦° নাম à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'নà§à¦à¦°à§à¦° à¦à¦à¦¡à¦¿ দিà§à§',
+ anchorName: 'নà§à¦à¦°à§à¦° নাম দিà§à§',
+ charset: 'লিà¦à¦ রিসà§à¦°à§à¦¸ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦° সà§à¦',
+ cssClasses: 'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',
+ emailAddress: 'à¦à¦®à§à¦à¦² ঠিà¦à¦¾à¦¨à¦¾',
+ emailBody: 'মà§à¦¸à§à¦à§à¦° দà§à¦¹',
+ emailSubject: 'মà§à¦¸à§à¦à§à¦° বিষà§',
+ id: 'à¦à¦à¦¡à¦¿',
+ info: 'লিà¦à¦ তথà§à¦¯',
+ langCode: 'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',
+ langDir: 'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',
+ langDirLTR: 'বাম থà§à¦à§ ডান (LTR)',
+ langDirRTL: 'ডান থà§à¦à§ বাম (RTL)',
+ menu: 'লিà¦à¦ সমà§à¦ªà¦¾à¦¦à¦¨',
+ name: 'নাম',
+ noAnchors: '(No anchors available in the document)', // MISSING
+ noEmail: 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦®à§à¦à¦² à¦à¦¡à§à¦°à§à¦¸ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
+ noUrl: 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',
+ other: '<other>', // MISSING
+ popupDependent: 'ডিপà§à¦¨à§à¦¡à§à¦¨à§à¦ (Netscape)',
+ popupFeatures: 'পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§ ফà§à¦à¦¾à¦° সমà§à¦¹',
+ popupFullScreen: 'পà§à¦°à§à¦£ পরà§à¦¦à¦¾ à¦à§à§à§ (IE)',
+ popupLeft: 'বামà§à¦° পà¦à¦¿à¦¶à¦¨',
+ popupLocationBar: 'লà§à¦à§à¦¶à¦¨ বার',
+ popupMenuBar: 'মà§à¦¨à§à¦¯à§ বার',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'সà§à¦à§à¦°à¦² বার',
+ popupStatusBar: 'সà§à¦à§à¦¯à¦¾à¦à¦¾à¦¸ বার',
+ popupToolbar: 'à¦à§à¦² বার',
+ popupTop: 'ডানà§à¦° পà¦à¦¿à¦¶à¦¨',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'নà§à¦à¦° বাà¦à¦¾à¦',
+ styles: 'সà§à¦à¦¾à¦à¦²',
+ tabIndex: 'à¦à§à¦¯à¦¾à¦¬ à¦à¦¨à§à¦¡à§à¦à§à¦¸',
+ target: 'à¦à¦¾à¦°à§à¦à§à¦',
+ targetFrame: '<ফà§à¦°à§à¦®>',
+ targetFrameName: 'à¦à¦¾à¦°à§à¦à§à¦ ফà§à¦°à§à¦®à§à¦° নাম',
+ targetPopup: '<পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§>',
+ targetPopupName: 'পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§à¦° নাম',
+ title: 'লিà¦à¦',
+ toAnchor: 'à¦à¦ পà§à¦à§ নà§à¦à¦° à¦à¦°',
+ toEmail: 'à¦à¦®à§à¦à¦²',
+ toUrl: 'URL',
+ toolbar: 'লিà¦à¦ যà§à¦à§à¦¤ à¦à¦°',
+ type: 'লিà¦à¦ পà§à¦°à¦à¦¾à¦°',
+ unlink: 'লিà¦à¦ সরাà¦',
+ upload: 'à¦à¦ªà¦²à§à¦¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/bs.js b/devel/third-party/ckeditor/plugins/link/lang/bs.js
new file mode 100644
index 0000000..4fc2aea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/bs.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'bs', {
+ acccessKey: 'Pristupna tipka',
+ advanced: 'Naprednije',
+ advisoryContentType: 'Advisory vrsta sadržaja',
+ advisoryTitle: 'Advisory title',
+ anchor: {
+ toolbar: 'Anchor',
+ menu: 'Edit Anchor',
+ title: 'Anchor Properties',
+ name: 'Anchor Name',
+ errorName: 'Please type the anchor name',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Po Id-u elementa',
+ anchorName: 'Po nazivu sidra',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Klase CSS stilova',
+ emailAddress: 'E-Mail Adresa',
+ emailBody: 'Poruka',
+ emailSubject: 'Subjekt poruke',
+ id: 'Id',
+ info: 'Link info',
+ langCode: 'Smjer pisanja',
+ langDir: 'Smjer pisanja',
+ langDirLTR: 'S lijeva na desno (LTR)',
+ langDirRTL: 'S desna na lijevo (RTL)',
+ menu: 'Izmjeni link',
+ name: 'Naziv',
+ noAnchors: '(Nema dostupnih sidra na stranici)',
+ noEmail: 'Molimo ukucajte e-mail adresu',
+ noUrl: 'Molimo ukucajte URL link',
+ other: '<other>', // MISSING
+ popupDependent: 'Ovisno (Netscape)',
+ popupFeatures: 'Moguænosti popup prozora',
+ popupFullScreen: 'Cijeli ekran (IE)',
+ popupLeft: 'Lijeva pozicija',
+ popupLocationBar: 'Traka za lokaciju',
+ popupMenuBar: 'Izborna traka',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Scroll traka',
+ popupStatusBar: 'Statusna traka',
+ popupToolbar: 'Traka sa alatima',
+ popupTop: 'Gornja pozicija',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Izaberi sidro',
+ styles: 'Stil',
+ tabIndex: 'Tab indeks',
+ target: 'Prozor',
+ targetFrame: '<frejm>',
+ targetFrameName: 'Target Frame Name', // MISSING
+ targetPopup: '<popup prozor>',
+ targetPopupName: 'Naziv popup prozora',
+ title: 'Link',
+ toAnchor: 'Sidro na ovoj stranici',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Ubaci/Izmjeni link',
+ type: 'Tip linka',
+ unlink: 'Izbriši link',
+ upload: 'Å alji'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ca.js b/devel/third-party/ckeditor/plugins/link/lang/ca.js
new file mode 100644
index 0000000..533f97c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ca.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ca', {
+ acccessKey: 'Clau d\'accés',
+ advanced: 'Avançat',
+ advisoryContentType: 'Tipus de contingut consultiu',
+ advisoryTitle: 'TÃtol consultiu',
+ anchor: {
+ toolbar: 'Insereix/Edita à ncora',
+ menu: 'Propietats de l\'Ã ncora',
+ title: 'Propietats de l\'Ã ncora',
+ name: 'Nom de l\'Ã ncora',
+ errorName: 'Si us plau, escriviu el nom de l\'ancora',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Per Id d\'element',
+ anchorName: 'Per nom d\'Ã ncora',
+ charset: 'Conjunt de carà cters font enllaçat',
+ cssClasses: 'Classes del full d\'estil',
+ emailAddress: 'Adreça de correu electrònic',
+ emailBody: 'Cos del missatge',
+ emailSubject: 'Assumpte del missatge',
+ id: 'Id',
+ info: 'Informació de l\'enllaç',
+ langCode: 'Direcció de l\'idioma',
+ langDir: 'Direcció de l\'idioma',
+ langDirLTR: 'D\'esquerra a dreta (LTR)',
+ langDirRTL: 'De dreta a esquerra (RTL)',
+ menu: 'Edita l\'enllaç',
+ name: 'Nom',
+ noAnchors: '(No hi ha à ncores disponibles en aquest document)',
+ noEmail: 'Si us plau, escrigui l\'adreça correu electrònic',
+ noUrl: 'Si us plau, escrigui l\'enllaç URL',
+ other: '<altre>',
+ popupDependent: 'Depenent (Netscape)',
+ popupFeatures: 'CaracterÃstiques finestra popup',
+ popupFullScreen: 'Pantalla completa (IE)',
+ popupLeft: 'Posició esquerra',
+ popupLocationBar: 'Barra d\'adreça',
+ popupMenuBar: 'Barra de menú',
+ popupResizable: 'Redimensionable',
+ popupScrollBars: 'Barres d\'scroll',
+ popupStatusBar: 'Barra d\'estat',
+ popupToolbar: 'Barra d\'eines',
+ popupTop: 'Posició dalt',
+ rel: 'Relació',
+ selectAnchor: 'Selecciona una à ncora',
+ styles: 'Estil',
+ tabIndex: 'Index de Tab',
+ target: 'DestÃ',
+ targetFrame: '<marc>',
+ targetFrameName: 'Nom del marc de destÃ',
+ targetPopup: '<finestra emergent>',
+ targetPopupName: 'Nom finestra popup',
+ title: 'Enllaç',
+ toAnchor: 'Ãncora en aquesta pà gina',
+ toEmail: 'Correu electrònic',
+ toUrl: 'URL',
+ toolbar: 'Insereix/Edita enllaç',
+ type: 'Tipus d\'enllaç',
+ unlink: 'Elimina l\'enllaç',
+ upload: 'Puja'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/cs.js b/devel/third-party/ckeditor/plugins/link/lang/cs.js
new file mode 100644
index 0000000..9f48195
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/cs.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'cs', {
+ acccessKey: 'PÅÃstupový klÃÄ',
+ advanced: 'RozÅ¡ÃÅené',
+ advisoryContentType: 'Pomocný typ obsahu',
+ advisoryTitle: 'Pomocný titulek',
+ anchor: {
+ toolbar: 'Záložka',
+ menu: 'Vlastnosti záložky',
+ title: 'Vlastnosti záložky',
+ name: 'Název záložky',
+ errorName: 'Zadejte prosÃm název záložky',
+ remove: 'Odstranit záložku'
+ },
+ anchorId: 'Podle Id objektu',
+ anchorName: 'Podle jména kotvy',
+ charset: 'PÅiÅazená znaková sada',
+ cssClasses: 'TÅÃda stylu',
+ emailAddress: 'E-mailová adresa',
+ emailBody: 'TÄlo zprávy',
+ emailSubject: 'PÅedmÄt zprávy',
+ id: 'Id',
+ info: 'Informace o odkazu',
+ langCode: 'Kód jazyka',
+ langDir: 'SmÄr jazyka',
+ langDirLTR: 'Zleva doprava (LTR)',
+ langDirRTL: 'Zprava doleva (RTL)',
+ menu: 'ZmÄnit odkaz',
+ name: 'Jméno',
+ noAnchors: '(Ve stránce nenà definována žádná kotva!)',
+ noEmail: 'Zadejte prosÃm e-mailovou adresu',
+ noUrl: 'Zadejte prosÃm URL odkazu',
+ other: '<jiný>',
+ popupDependent: 'Závislost (Netscape)',
+ popupFeatures: 'Vlastnosti vyskakovacÃho okna',
+ popupFullScreen: 'Celá obrazovka (IE)',
+ popupLeft: 'Levý okraj',
+ popupLocationBar: 'Panel umÃstÄnÃ',
+ popupMenuBar: 'Panel nabÃdky',
+ popupResizable: 'UmožÅujÃcà mÄnit velikost',
+ popupScrollBars: 'PosuvnÃky',
+ popupStatusBar: 'Stavový Åádek',
+ popupToolbar: 'Panel nástrojů',
+ popupTop: 'Hornà okraj',
+ rel: 'Vztah',
+ selectAnchor: 'Vybrat kotvu',
+ styles: 'Styl',
+ tabIndex: 'PoÅadà prvku',
+ target: 'CÃl',
+ targetFrame: '<rámec>',
+ targetFrameName: 'Název cÃlového rámu',
+ targetPopup: '<vyskakovacà okno>',
+ targetPopupName: 'Název vyskakovacÃho okna',
+ title: 'Odkaz',
+ toAnchor: 'Kotva v této stránce',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Odkaz',
+ type: 'Typ odkazu',
+ unlink: 'Odstranit odkaz',
+ upload: 'Odeslat'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/cy.js b/devel/third-party/ckeditor/plugins/link/lang/cy.js
new file mode 100644
index 0000000..8c0b56b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/cy.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'cy', {
+ acccessKey: 'Allwedd Mynediad',
+ advanced: 'Uwch',
+ advisoryContentType: 'Math y Cynnwys Cynghorol',
+ advisoryTitle: 'Teitl Cynghorol',
+ anchor: {
+ toolbar: 'Angor',
+ menu: 'Golygwch yr Angor',
+ title: 'Priodweddau\'r Angor',
+ name: 'Enw\'r Angor',
+ errorName: 'Teipiwch enw\'r angor',
+ remove: 'Tynnwch yr Angor'
+ },
+ anchorId: 'Gan Id yr Elfen',
+ anchorName: 'Gan Enw\'r Angor',
+ charset: 'Set nodau\'r Adnodd Cysylltiedig',
+ cssClasses: 'Dosbarthiadau Dalen Arddull',
+ emailAddress: 'Cyfeiriad E-Bost',
+ emailBody: 'Pwnc y Neges',
+ emailSubject: 'Testun y Message Subject',
+ id: 'Id',
+ info: 'Gwyb ar y Ddolen',
+ langCode: 'Cod Iaith',
+ langDir: 'Cyfeiriad Iaith',
+ langDirLTR: 'Chwith i\'r Dde (LTR)',
+ langDirRTL: 'Dde i\'r Chwith (RTL)',
+ menu: 'Golygu Dolen',
+ name: 'Enw',
+ noAnchors: '(Dim angorau ar gael yn y ddogfen)',
+ noEmail: 'Teipiwch gyfeiriad yr e-bost',
+ noUrl: 'Teipiwch URL y ddolen',
+ other: '<eraill>',
+ popupDependent: 'Dibynnol (Netscape)',
+ popupFeatures: 'Nodweddion Ffenestr Bop',
+ popupFullScreen: 'Sgrin Llawn (IE)',
+ popupLeft: 'Safle Chwith',
+ popupLocationBar: 'Bar Safle',
+ popupMenuBar: 'Dewislen',
+ popupResizable: 'Ailfeintiol',
+ popupScrollBars: 'Barrau Sgrolio',
+ popupStatusBar: 'Bar Statws',
+ popupToolbar: 'Bar Offer',
+ popupTop: 'Safle Top',
+ rel: 'Perthynas',
+ selectAnchor: 'Dewiswch Angor',
+ styles: 'Arddull',
+ tabIndex: 'Indecs Tab',
+ target: 'Targed',
+ targetFrame: '<ffrâm>',
+ targetFrameName: 'Enw Ffrâm y Targed',
+ targetPopup: '<ffenestr bop>',
+ targetPopupName: 'Enw Ffenestr Bop',
+ title: 'Dolen',
+ toAnchor: 'Dolen at angor yn y testun',
+ toEmail: 'E-bost',
+ toUrl: 'URL',
+ toolbar: 'Dolen',
+ type: 'Math y Ddolen',
+ unlink: 'Datgysylltu',
+ upload: 'Lanlwytho'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/da.js b/devel/third-party/ckeditor/plugins/link/lang/da.js
new file mode 100644
index 0000000..d96fef0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/da.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'da', {
+ acccessKey: 'Genvejstast',
+ advanced: 'Avanceret',
+ advisoryContentType: 'Indholdstype',
+ advisoryTitle: 'Titel',
+ anchor: {
+ toolbar: 'Indsæt/redigér bogmærke',
+ menu: 'Egenskaber for bogmærke',
+ title: 'Egenskaber for bogmærke',
+ name: 'Bogmærkenavn',
+ errorName: 'Indtast bogmærkenavn',
+ remove: 'Fjern bogmærke'
+ },
+ anchorId: 'Efter element-Id',
+ anchorName: 'Efter ankernavn',
+ charset: 'Tegnsæt',
+ cssClasses: 'Typografiark',
+ emailAddress: 'E-mailadresse',
+ emailBody: 'Besked',
+ emailSubject: 'Emne',
+ id: 'Id',
+ info: 'Generelt',
+ langCode: 'Tekstretning',
+ langDir: 'Tekstretning',
+ langDirLTR: 'Fra venstre mod højre (LTR)',
+ langDirRTL: 'Fra højre mod venstre (RTL)',
+ menu: 'Redigér hyperlink',
+ name: 'Navn',
+ noAnchors: '(Ingen bogmærker i dokumentet)',
+ noEmail: 'Indtast e-mailadresse!',
+ noUrl: 'Indtast hyperlink-URL!',
+ other: '<anden>',
+ popupDependent: 'Koblet/dependent (Netscape)',
+ popupFeatures: 'Egenskaber for popup',
+ popupFullScreen: 'Fuld skærm (IE)',
+ popupLeft: 'Position fra venstre',
+ popupLocationBar: 'Adresselinje',
+ popupMenuBar: 'Menulinje',
+ popupResizable: 'Justérbar',
+ popupScrollBars: 'Scrollbar',
+ popupStatusBar: 'Statuslinje',
+ popupToolbar: 'Værktøjslinje',
+ popupTop: 'Position fra toppen',
+ rel: 'Relation',
+ selectAnchor: 'Vælg et anker',
+ styles: 'Typografi',
+ tabIndex: 'Tabulatorindeks',
+ target: 'MÃ¥l',
+ targetFrame: '<ramme>',
+ targetFrameName: 'Destinationsvinduets navn',
+ targetPopup: '<popup vindue>',
+ targetPopupName: 'Popupvinduets navn',
+ title: 'Egenskaber for hyperlink',
+ toAnchor: 'Bogmærke på denne side',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Indsæt/redigér hyperlink',
+ type: 'Type',
+ unlink: 'Fjern hyperlink',
+ upload: 'Upload'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/de.js b/devel/third-party/ckeditor/plugins/link/lang/de.js
new file mode 100644
index 0000000..fc535a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/de.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'de', {
+ acccessKey: 'Zugriffstaste',
+ advanced: 'Erweitert',
+ advisoryContentType: 'Inhaltstyp',
+ advisoryTitle: 'Titel Beschreibung',
+ anchor: {
+ toolbar: 'Anker einfügen/editieren',
+ menu: 'Anker-Eigenschaften',
+ title: 'Anker-Eigenschaften',
+ name: 'Anker Name',
+ errorName: 'Bitte geben Sie den Namen des Ankers ein',
+ remove: 'Anker entfernen'
+ },
+ anchorId: 'nach Element Id',
+ anchorName: 'nach Anker Name',
+ charset: 'Ziel-Zeichensatz',
+ cssClasses: 'Stylesheet Klasse',
+ emailAddress: 'E-Mail Adresse',
+ emailBody: 'Nachrichtentext',
+ emailSubject: 'Betreffzeile',
+ id: 'Id',
+ info: 'Link-Info',
+ langCode: 'Sprachenkürzel',
+ langDir: 'Schreibrichtung',
+ langDirLTR: 'Links nach Rechts (LTR)',
+ langDirRTL: 'Rechts nach Links (RTL)',
+ menu: 'Link editieren',
+ name: 'Name',
+ noAnchors: '(keine Anker im Dokument vorhanden)',
+ noEmail: 'Bitte geben Sie e-Mail Adresse an',
+ noUrl: 'Bitte geben Sie die Link-URL an',
+ other: '<andere>',
+ popupDependent: 'Abhängig (Netscape)',
+ popupFeatures: 'Pop-up Fenster-Eigenschaften',
+ popupFullScreen: 'Vollbild (IE)',
+ popupLeft: 'Linke Position',
+ popupLocationBar: 'Adress-Leiste',
+ popupMenuBar: 'Menü-Leiste',
+ popupResizable: 'GröÃe änderbar',
+ popupScrollBars: 'Rollbalken',
+ popupStatusBar: 'Statusleiste',
+ popupToolbar: 'Symbolleiste',
+ popupTop: 'Obere Position',
+ rel: 'Beziehung',
+ selectAnchor: 'Anker auswählen',
+ styles: 'Style',
+ tabIndex: 'Tab-Index',
+ target: 'Zielseite',
+ targetFrame: '<Frame>',
+ targetFrameName: 'Ziel-Fenster-Name',
+ targetPopup: '<Pop-up Fenster>',
+ targetPopupName: 'Pop-up Fenster-Name',
+ title: 'Link',
+ toAnchor: 'Anker in dieser Seite',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Link einfügen/editieren',
+ type: 'Link-Typ',
+ unlink: 'Link entfernen',
+ upload: 'Hochladen'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/el.js b/devel/third-party/ckeditor/plugins/link/lang/el.js
new file mode 100644
index 0000000..1590208
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/el.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'el', {
+ acccessKey: 'ΣÏ
νÏÏμεÏ
Ïη',
+ advanced: 'Îια ÏÏοÏÏÏημÎνοÏ
Ï',
+ advisoryContentType: 'ÎνδεικÏικÏÏ Î¤ÏÏÎ¿Ï Î ÎµÏιεÏομÎνοÏ
',
+ advisoryTitle: 'ÎνδεικÏικÏÏ Î¤Î¯ÏλοÏ',
+ anchor: {
+ toolbar: 'ÎιÏαγÏγή/εÏεξεÏγαÏία ÎγκÏ
ÏαÏ',
+ menu: 'ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ',
+ title: 'ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ',
+ name: 'Îνομα άγκÏ
ÏαÏ',
+ errorName: 'ΠαÏακαλοÏμε ειÏάγεÏε Ïνομα άγκÏ
ÏαÏ',
+ remove: 'ÎÏαίÏεÏη ÎγκÏ
ÏαÏ'
+ },
+ anchorId: 'ÎάÏει ÏοÏ
Element Id',
+ anchorName: 'ÎάÏει ÏοÏ
ÎνÏμαÏÎ¿Ï ÏÎ·Ï Î¬Î³ÎºÏ
ÏαÏ',
+ charset: 'ÎÏδικοÏοίηÏη ΧαÏακÏήÏÏν Î ÏοÏαÏÏημÎÎ½Î·Ï Î Î·Î³Î®Ï',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'ÎιεÏθÏ
νÏη e-mail',
+ emailBody: 'Îείμενο ÎηνÏμαÏοÏ',
+ emailSubject: 'ÎÎμα ÎηνÏμαÏοÏ',
+ id: 'Id',
+ info: 'ΠληÏοÏοÏÎ¯ÎµÏ Î£Ï
νδÎÏμοÏ
',
+ langCode: 'ÎαÏεÏθÏ
νÏη ÎειμÎνοÏ
',
+ langDir: 'ÎαÏεÏθÏ
νÏη ÎειμÎνοÏ
',
+ langDirLTR: 'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',
+ langDirRTL: 'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',
+ menu: 'ÎÏεξεÏγαÏία ΣÏ
νδÎÏμοÏ
',
+ name: 'Îνομα',
+ noAnchors: '(Îεν Ï
ÏάÏÏοÏ
ν άγκÏ
ÏÎµÏ ÏÏο κείμενο)',
+ noEmail: 'ÎιÏάγεÏε Ïην διεÏθÏ
νÏη ηλεκÏÏÎ¿Î½Î¹ÎºÎ¿Ï ÏαÏÏ
δÏομείοÏ
',
+ noUrl: 'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)',
+ other: '<άλλο>',
+ popupDependent: 'ÎξαÏÏημÎνο (Netscape)',
+ popupFeatures: 'ÎÏιλογÎÏ ÎναδÏ
ÏμενοÏ
ΠαÏαθÏÏοÏ
',
+ popupFullScreen: 'ΠλήÏÎ·Ï ÎθÏνη (IE)',
+ popupLeft: 'ÎÎÏη ÎÏιÏÏεÏά',
+ popupLocationBar: 'ÎÏαμμή ΤοÏοθεÏίαÏ',
+ popupMenuBar: 'ÎÏαμμή ÎÏιλογÏν',
+ popupResizable: 'Î ÏοÏαÏμοζÏμενο ÎÎγεθοÏ',
+ popupScrollBars: 'ÎÏάÏÎµÏ ÎÏλιÏηÏ',
+ popupStatusBar: 'ÎÏαμμή ÎαÏάÏÏαÏηÏ',
+ popupToolbar: 'ÎÏγαλειοθήκη',
+ popupTop: 'ÎÎÏη ΠάνÏ',
+ rel: 'ΣÏÎÏη',
+ selectAnchor: 'ÎÏιλÎξÏε μια άγκÏ
Ïα',
+ styles: 'ÎοÏÏή',
+ tabIndex: 'ΣειÏά ÎεÏαÏήδηÏηÏ',
+ target: 'ΠαÏάθÏ
Ïο Î ÏοοÏιÏμοÏ',
+ targetFrame: '<ÏλαίÏιο>',
+ targetFrameName: 'Îνομα ΠαÏαθÏÏοÏ
Î ÏοοÏιÏμοÏ',
+ targetPopup: '<αναδÏ
Ïμενο ÏαÏάθÏ
Ïο>',
+ targetPopupName: 'Îνομα ÎναδÏ
ÏμενοÏ
ΠαÏαθÏÏοÏ
',
+ title: 'ΣÏνδεÏμοÏ',
+ toAnchor: 'ÎγκÏ
Ïα Ïε αÏ
Ïή Ïη Ïελίδα',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'ΣÏνδεÏμοÏ',
+ type: 'ΤÏÏÎ¿Ï Î£Ï
νδÎÏμοÏ
',
+ unlink: 'ÎÏαίÏεÏη ΣÏ
νδÎÏμοÏ
(Link)',
+ upload: 'ÎνÎβαÏμα'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/en-au.js b/devel/third-party/ckeditor/plugins/link/lang/en-au.js
new file mode 100644
index 0000000..dde733d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/en-au.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en-au', {
+ acccessKey: 'Access Key',
+ advanced: 'Advanced',
+ advisoryContentType: 'Advisory Content Type',
+ advisoryTitle: 'Advisory Title',
+ anchor: {
+ toolbar: 'Anchor',
+ menu: 'Edit Anchor',
+ title: 'Anchor Properties',
+ name: 'Anchor Name',
+ errorName: 'Please type the anchor name',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'By Element Id',
+ anchorName: 'By Anchor Name',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'E-Mail Address',
+ emailBody: 'Message Body',
+ emailSubject: 'Message Subject',
+ id: 'Id',
+ info: 'Link Info',
+ langCode: 'Language Code',
+ langDir: 'Language Direction',
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ menu: 'Edit Link',
+ name: 'Name',
+ noAnchors: '(No anchors available in the document)',
+ noEmail: 'Please type the e-mail address',
+ noUrl: 'Please type the link URL',
+ other: '<other>',
+ popupDependent: 'Dependent (Netscape)',
+ popupFeatures: 'Popup Window Features',
+ popupFullScreen: 'Full Screen (IE)',
+ popupLeft: 'Left Position',
+ popupLocationBar: 'Location Bar',
+ popupMenuBar: 'Menu Bar',
+ popupResizable: 'Resizable',
+ popupScrollBars: 'Scroll Bars',
+ popupStatusBar: 'Status Bar',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Top Position',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Select an Anchor',
+ styles: 'Style',
+ tabIndex: 'Tab Index',
+ target: 'Target',
+ targetFrame: '<frame>',
+ targetFrameName: 'Target Frame Name',
+ targetPopup: '<popup window>',
+ targetPopupName: 'Popup Window Name',
+ title: 'Link',
+ toAnchor: 'Link to anchor in the text',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Link',
+ type: 'Link Type',
+ unlink: 'Unlink',
+ upload: 'Upload'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/en-ca.js b/devel/third-party/ckeditor/plugins/link/lang/en-ca.js
new file mode 100644
index 0000000..1da3e48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/en-ca.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en-ca', {
+ acccessKey: 'Access Key',
+ advanced: 'Advanced',
+ advisoryContentType: 'Advisory Content Type',
+ advisoryTitle: 'Advisory Title',
+ anchor: {
+ toolbar: 'Anchor',
+ menu: 'Edit Anchor',
+ title: 'Anchor Properties',
+ name: 'Anchor Name',
+ errorName: 'Please type the anchor name',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'By Element Id',
+ anchorName: 'By Anchor Name',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'E-Mail Address',
+ emailBody: 'Message Body',
+ emailSubject: 'Message Subject',
+ id: 'Id',
+ info: 'Link Info',
+ langCode: 'Language Code',
+ langDir: 'Language Direction',
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ menu: 'Edit Link',
+ name: 'Name',
+ noAnchors: '(No anchors available in the document)',
+ noEmail: 'Please type the e-mail address',
+ noUrl: 'Please type the link URL',
+ other: '<other>',
+ popupDependent: 'Dependent (Netscape)',
+ popupFeatures: 'Popup Window Features',
+ popupFullScreen: 'Full Screen (IE)',
+ popupLeft: 'Left Position',
+ popupLocationBar: 'Location Bar',
+ popupMenuBar: 'Menu Bar',
+ popupResizable: 'Resizable',
+ popupScrollBars: 'Scroll Bars',
+ popupStatusBar: 'Status Bar',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Top Position',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Select an Anchor',
+ styles: 'Style',
+ tabIndex: 'Tab Index',
+ target: 'Target',
+ targetFrame: '<frame>',
+ targetFrameName: 'Target Frame Name',
+ targetPopup: '<popup window>',
+ targetPopupName: 'Popup Window Name',
+ title: 'Link',
+ toAnchor: 'Link to anchor in the text',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Link',
+ type: 'Link Type',
+ unlink: 'Unlink',
+ upload: 'Upload'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/en-gb.js b/devel/third-party/ckeditor/plugins/link/lang/en-gb.js
new file mode 100644
index 0000000..e7a822c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/en-gb.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en-gb', {
+ acccessKey: 'Access Key',
+ advanced: 'Advanced',
+ advisoryContentType: 'Advisory Content Type',
+ advisoryTitle: 'Advisory Title',
+ anchor: {
+ toolbar: 'Anchor',
+ menu: 'Edit Anchor',
+ title: 'Anchor Properties',
+ name: 'Anchor Name',
+ errorName: 'Please type the anchor name',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'By Element Id',
+ anchorName: 'By Anchor Name',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'E-Mail Address',
+ emailBody: 'Message Body',
+ emailSubject: 'Message Subject',
+ id: 'Id',
+ info: 'Link Info',
+ langCode: 'Language Code',
+ langDir: 'Language Direction',
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ menu: 'Edit Link',
+ name: 'Name',
+ noAnchors: '(No anchors available in the document)',
+ noEmail: 'Please type the e-mail address',
+ noUrl: 'Please type the link URL',
+ other: '<other>',
+ popupDependent: 'Dependent (Netscape)',
+ popupFeatures: 'Popup Window Features',
+ popupFullScreen: 'Full Screen (IE)',
+ popupLeft: 'Left Position',
+ popupLocationBar: 'Location Bar',
+ popupMenuBar: 'Menu Bar',
+ popupResizable: 'Resizable',
+ popupScrollBars: 'Scroll Bars',
+ popupStatusBar: 'Status Bar',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Top Position',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Select an Anchor',
+ styles: 'Style',
+ tabIndex: 'Tab Index',
+ target: 'Target',
+ targetFrame: '<frame>',
+ targetFrameName: 'Target Frame Name',
+ targetPopup: '<popup window>',
+ targetPopupName: 'Popup Window Name',
+ title: 'Link',
+ toAnchor: 'Link to anchor in the text',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Link',
+ type: 'Link Type',
+ unlink: 'Unlink',
+ upload: 'Upload'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/en.js b/devel/third-party/ckeditor/plugins/link/lang/en.js
new file mode 100644
index 0000000..b03f4f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/en.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'en', {
+ acccessKey: 'Access Key',
+ advanced: 'Advanced',
+ advisoryContentType: 'Advisory Content Type',
+ advisoryTitle: 'Advisory Title',
+ anchor: {
+ toolbar: 'Anchor',
+ menu: 'Edit Anchor',
+ title: 'Anchor Properties',
+ name: 'Anchor Name',
+ errorName: 'Please type the anchor name',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'By Element Id',
+ anchorName: 'By Anchor Name',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'E-Mail Address',
+ emailBody: 'Message Body',
+ emailSubject: 'Message Subject',
+ id: 'Id',
+ info: 'Link Info',
+ langCode: 'Language Code',
+ langDir: 'Language Direction',
+ langDirLTR: 'Left to Right (LTR)',
+ langDirRTL: 'Right to Left (RTL)',
+ menu: 'Edit Link',
+ name: 'Name',
+ noAnchors: '(No anchors available in the document)',
+ noEmail: 'Please type the e-mail address',
+ noUrl: 'Please type the link URL',
+ other: '<other>',
+ popupDependent: 'Dependent (Netscape)',
+ popupFeatures: 'Popup Window Features',
+ popupFullScreen: 'Full Screen (IE)',
+ popupLeft: 'Left Position',
+ popupLocationBar: 'Location Bar',
+ popupMenuBar: 'Menu Bar',
+ popupResizable: 'Resizable',
+ popupScrollBars: 'Scroll Bars',
+ popupStatusBar: 'Status Bar',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Top Position',
+ rel: 'Relationship',
+ selectAnchor: 'Select an Anchor',
+ styles: 'Style',
+ tabIndex: 'Tab Index',
+ target: 'Target',
+ targetFrame: '<frame>',
+ targetFrameName: 'Target Frame Name',
+ targetPopup: '<popup window>',
+ targetPopupName: 'Popup Window Name',
+ title: 'Link',
+ toAnchor: 'Link to anchor in the text',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Link',
+ type: 'Link Type',
+ unlink: 'Unlink',
+ upload: 'Upload'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/eo.js b/devel/third-party/ckeditor/plugins/link/lang/eo.js
new file mode 100644
index 0000000..2392b26
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/eo.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'eo', {
+ acccessKey: 'Fulmoklavo',
+ advanced: 'Speciala',
+ advisoryContentType: 'Enhavotipo',
+ advisoryTitle: 'Priskriba Titolo',
+ anchor: {
+ toolbar: 'Ankro',
+ menu: 'Enmeti/ÅanÄi Ankron',
+ title: 'Ankraj Atributoj',
+ name: 'Ankra Nomo',
+ errorName: 'Bv entajpi la ankran nomon',
+ remove: 'Forigi Ankron'
+ },
+ anchorId: 'Per Elementidentigilo',
+ anchorName: 'Per Ankronomo',
+ charset: 'Signaro de la Ligita Rimedo',
+ cssClasses: 'Klasoj de Stilfolioj',
+ emailAddress: 'RetpoÅto',
+ emailBody: 'MesaÄa korpo',
+ emailSubject: 'MesaÄa Temo',
+ id: 'Id',
+ info: 'Informoj pri la Ligilo',
+ langCode: 'Lingva Kodo',
+ langDir: 'Skribdirekto',
+ langDirLTR: 'De maldekstro dekstren (LTR)',
+ langDirRTL: 'De dekstro maldekstren (RTL)',
+ menu: 'ÅanÄi Ligilon',
+ name: 'Nomo',
+ noAnchors: '<Ne disponeblas ankroj en la dokumento>',
+ noEmail: 'Bonvolu entajpi la retpoÅtadreson',
+ noUrl: 'Bonvolu entajpi la URL-on',
+ other: '<alia>',
+ popupDependent: 'Dependa (Netscape)',
+ popupFeatures: 'Atributoj de la Åprucfenestro',
+ popupFullScreen: 'Tutekrane (IE)',
+ popupLeft: 'Maldekstra Pozicio',
+ popupLocationBar: 'Adresobreto',
+ popupMenuBar: 'Menubreto',
+ popupResizable: 'DimensiÅanÄebla',
+ popupScrollBars: 'Rulumskaloj',
+ popupStatusBar: 'Statobreto',
+ popupToolbar: 'Ilobreto',
+ popupTop: 'Supra Pozicio',
+ rel: 'Rilato',
+ selectAnchor: 'Elekti Ankron',
+ styles: 'Stilo',
+ tabIndex: 'Taba Indekso',
+ target: 'Celo',
+ targetFrame: '<kadro>',
+ targetFrameName: 'Nomo de CelKadro',
+ targetPopup: '<Åprucfenestro>',
+ targetPopupName: 'Nomo de Åprucfenestro',
+ title: 'Ligilo',
+ toAnchor: 'Ankri en tiu Äi paÄo',
+ toEmail: 'RetpoÅto',
+ toUrl: 'URL',
+ toolbar: 'Enmeti/ÅanÄi Ligilon',
+ type: 'Tipo de Ligilo',
+ unlink: 'Forigi Ligilon',
+ upload: 'AlÅuti'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/es.js b/devel/third-party/ckeditor/plugins/link/lang/es.js
new file mode 100644
index 0000000..ed33220
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/es.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'es', {
+ acccessKey: 'Tecla de Acceso',
+ advanced: 'Avanzado',
+ advisoryContentType: 'Tipo de Contenido',
+ advisoryTitle: 'TÃtulo',
+ anchor: {
+ toolbar: 'Referencia',
+ menu: 'Propiedades de Referencia',
+ title: 'Propiedades de Referencia',
+ name: 'Nombre de la Referencia',
+ errorName: 'Por favor, complete el nombre de la Referencia',
+ remove: 'Quitar Referencia'
+ },
+ anchorId: 'Por ID de elemento',
+ anchorName: 'Por Nombre de Referencia',
+ charset: 'Fuente de caracteres vinculado',
+ cssClasses: 'Clases de hojas de estilo',
+ emailAddress: 'Dirección de E-Mail',
+ emailBody: 'Cuerpo del Mensaje',
+ emailSubject: 'TÃtulo del Mensaje',
+ id: 'Id',
+ info: 'Información de VÃnculo',
+ langCode: 'Código idioma',
+ langDir: 'Orientación',
+ langDirLTR: 'Izquierda a Derecha (LTR)',
+ langDirRTL: 'Derecha a Izquierda (RTL)',
+ menu: 'Editar VÃnculo',
+ name: 'Nombre',
+ noAnchors: '(No hay referencias disponibles en el documento)',
+ noEmail: 'Por favor escriba la dirección de e-mail',
+ noUrl: 'Por favor escriba el vÃnculo URL',
+ other: '<otro>',
+ popupDependent: 'Dependiente (Netscape)',
+ popupFeatures: 'CaracterÃsticas de Ventana Emergente',
+ popupFullScreen: 'Pantalla Completa (IE)',
+ popupLeft: 'Posición Izquierda',
+ popupLocationBar: 'Barra de ubicación',
+ popupMenuBar: 'Barra de Menú',
+ popupResizable: 'Redimensionable',
+ popupScrollBars: 'Barras de desplazamiento',
+ popupStatusBar: 'Barra de Estado',
+ popupToolbar: 'Barra de Herramientas',
+ popupTop: 'Posición Derecha',
+ rel: 'Relación',
+ selectAnchor: 'Seleccionar una referencia',
+ styles: 'Estilo',
+ tabIndex: 'Indice de tabulación',
+ target: 'Destino',
+ targetFrame: '<marco>',
+ targetFrameName: 'Nombre del Marco Destino',
+ targetPopup: '<ventana emergente>',
+ targetPopupName: 'Nombre de Ventana Emergente',
+ title: 'VÃnculo',
+ toAnchor: 'Referencia en esta página',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Insertar/Editar VÃnculo',
+ type: 'Tipo de vÃnculo',
+ unlink: 'Eliminar VÃnculo',
+ upload: 'Cargar'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/et.js b/devel/third-party/ckeditor/plugins/link/lang/et.js
new file mode 100644
index 0000000..68d376b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/et.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'et', {
+ acccessKey: 'Juurdepääsu võti',
+ advanced: 'Täpsemalt',
+ advisoryContentType: 'Juhendava sisu tüüp',
+ advisoryTitle: 'Juhendav tiitel',
+ anchor: {
+ toolbar: 'Ankru sisestamine/muutmine',
+ menu: 'Ankru omadused',
+ title: 'Ankru omadused',
+ name: 'Ankru nimi',
+ errorName: 'Palun sisesta ankru nimi',
+ remove: 'Eemalda ankur'
+ },
+ anchorId: 'Elemendi id järgi',
+ anchorName: 'Ankru nime järgi',
+ charset: 'Lingitud ressursi märgistik',
+ cssClasses: 'Stiilistiku klassid',
+ emailAddress: 'E-posti aadress',
+ emailBody: 'Sõnumi tekst',
+ emailSubject: 'Sõnumi teema',
+ id: 'ID',
+ info: 'Lingi info',
+ langCode: 'Keele suund',
+ langDir: 'Keele suund',
+ langDirLTR: 'Vasakult paremale (LTR)',
+ langDirRTL: 'Paremalt vasakule (RTL)',
+ menu: 'Muuda linki',
+ name: 'Nimi',
+ noAnchors: '(Selles dokumendis pole ankruid)',
+ noEmail: 'Palun kirjuta e-posti aadress',
+ noUrl: 'Palun kirjuta lingi URL',
+ other: '<muu>',
+ popupDependent: 'Sõltuv (Netscape)',
+ popupFeatures: 'Hüpikakna omadused',
+ popupFullScreen: 'Täisekraan (IE)',
+ popupLeft: 'Vasak asukoht',
+ popupLocationBar: 'Aadressiriba',
+ popupMenuBar: 'Menüüriba',
+ popupResizable: 'Suurust saab muuta',
+ popupScrollBars: 'Kerimisribad',
+ popupStatusBar: 'Olekuriba',
+ popupToolbar: 'Tööriistariba',
+ popupTop: 'Ãlemine asukoht',
+ rel: 'Suhe',
+ selectAnchor: 'Vali ankur',
+ styles: 'Laad',
+ tabIndex: 'Tab indeks',
+ target: 'Sihtkoht',
+ targetFrame: '<raam>',
+ targetFrameName: 'Sihtmärk raami nimi',
+ targetPopup: '<hüpikaken>',
+ targetPopupName: 'Hüpikakna nimi',
+ title: 'Link',
+ toAnchor: 'Ankur sellel lehel',
+ toEmail: 'E-post',
+ toUrl: 'URL',
+ toolbar: 'Lingi lisamine/muutmine',
+ type: 'Lingi liik',
+ unlink: 'Lingi eemaldamine',
+ upload: 'Lae üles'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/eu.js b/devel/third-party/ckeditor/plugins/link/lang/eu.js
new file mode 100644
index 0000000..3df2dcc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/eu.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'eu', {
+ acccessKey: 'Sarbide-gakoa',
+ advanced: 'Aurreratua',
+ advisoryContentType: 'Eduki Mota (Content Type)',
+ advisoryTitle: 'Izenburua',
+ anchor: {
+ toolbar: 'Aingura',
+ menu: 'Ainguraren Ezaugarriak',
+ title: 'Ainguraren Ezaugarriak',
+ name: 'Ainguraren Izena',
+ errorName: 'Idatzi ainguraren izena',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Elementuaren ID-gatik',
+ anchorName: 'Aingura izenagatik',
+ charset: 'Estekatutako Karaktere Multzoa',
+ cssClasses: 'Estilo-orriko Klaseak',
+ emailAddress: 'ePosta Helbidea',
+ emailBody: 'Mezuaren Gorputza',
+ emailSubject: 'Mezuaren Gaia',
+ id: 'Id',
+ info: 'Estekaren Informazioa',
+ langCode: 'Hizkuntzaren Norabidea',
+ langDir: 'Hizkuntzaren Norabidea',
+ langDirLTR: 'Ezkerretik Eskumara(LTR)',
+ langDirRTL: 'Eskumatik Ezkerrera (RTL)',
+ menu: 'Aldatu Esteka',
+ name: 'Izena',
+ noAnchors: '(Ez daude aingurak eskuragarri dokumentuan)',
+ noEmail: 'Mesedez ePosta helbidea idatzi',
+ noUrl: 'Mesedez URL esteka idatzi',
+ other: '<other>', // MISSING
+ popupDependent: 'Menpekoa (Netscape)',
+ popupFeatures: 'Popup Leihoaren Ezaugarriak',
+ popupFullScreen: 'Pantaila Osoa (IE)',
+ popupLeft: 'Ezkerreko Posizioa',
+ popupLocationBar: 'Kokaleku Barra',
+ popupMenuBar: 'Menu Barra',
+ popupResizable: 'Tamaina Aldakorra',
+ popupScrollBars: 'Korritze Barrak',
+ popupStatusBar: 'Egoera Barra',
+ popupToolbar: 'Tresna Barra',
+ popupTop: 'Goiko Posizioa',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Aingura bat hautatu',
+ styles: 'Estiloa',
+ tabIndex: 'Tabulazio Indizea',
+ target: 'Target (Helburua)',
+ targetFrame: '<marko>',
+ targetFrameName: 'Marko Helburuaren Izena',
+ targetPopup: '<popup leihoa>',
+ targetPopupName: 'Popup Leihoaren Izena',
+ title: 'Esteka',
+ toAnchor: 'Aingura orrialde honetan',
+ toEmail: 'ePosta',
+ toUrl: 'URL',
+ toolbar: 'Txertatu/Editatu Esteka',
+ type: 'Esteka Mota',
+ unlink: 'Kendu Esteka',
+ upload: 'Gora kargatu'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/fa.js b/devel/third-party/ckeditor/plugins/link/lang/fa.js
new file mode 100644
index 0000000..b871457
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/fa.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fa', {
+ acccessKey: 'Ú©ÙÛØ¯ Ø¯Ø³ØªÛØ§Ø¨Û',
+ advanced: 'Ù¾ÛØ´Ø±ÙتÙ',
+ advisoryContentType: 'ÙÙØ¹ Ù
ØØªÙØ§Û Ú©Ù
Ú©Û',
+ advisoryTitle: 'عÙÙØ§Ù Ú©Ù
Ú©Û',
+ anchor: {
+ toolbar: 'Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ ÙÙگر',
+ menu: 'ÙÛÚÚ¯ÛÙØ§Û ÙÙگر',
+ title: 'ÙÛÚÚ¯ÛÙØ§Û ÙÙگر',
+ name: 'ÙØ§Ù
ÙÙگر',
+ errorName: 'ÙØ·Ùا ÙØ§Ù
ÙÙگر را بÙÙÛØ³Ûد',
+ remove: 'ØØ°Ù ÙÙگر'
+ },
+ anchorId: 'با Ø´ÙØ§Ø³ÙÙ´ اÙÙ
اÙ',
+ anchorName: 'با ÙØ§Ù
ÙÙگر',
+ charset: 'ÙÙÛØ³Ùگا٠Ù
ÙØ¨Ø¹ Ù¾ÛÙÙØ¯ شدÙ',
+ cssClasses: 'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)',
+ emailAddress: 'ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û',
+ emailBody: 'Ù
ØªÙ Ù¾ÛØ§Ù
',
+ emailSubject: 'Ù
ÙØ¶Ùع Ù¾ÛØ§Ù
',
+ id: 'Ø´ÙØ§Ø³Ù',
+ info: 'Ø§Ø·ÙØ§Ø¹Ø§Øª Ù¾ÛÙÙØ¯',
+ langCode: 'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',
+ langDir: 'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',
+ langDirLTR: 'ÚÙ¾ ب٠راست (LTR)',
+ langDirRTL: 'راست ب٠ÚÙ¾ (RTL)',
+ menu: 'ÙÛØ±Ø§ÛØ´ Ù¾ÛÙÙØ¯',
+ name: 'ÙØ§Ù
',
+ noAnchors: '(در اÛÙ Ø³ÙØ¯ ÙÙÚ¯Ø±Û Ø¯Ø±Ø¯Ø³ØªØ±Ø³ ÙÛØ³Øª)',
+ noEmail: 'ÙØ·Ùا ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û Ø±Ø§ بÙÙÛØ³Ûد',
+ noUrl: 'ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد',
+ other: '<Ø³Ø§ÛØ±>',
+ popupDependent: 'ÙØ§Ø¨Ø³ØªÙ (Netscape)',
+ popupFeatures: 'ÙÛÚÚ¯ÛÙØ§Û Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ',
+ popupFullScreen: 'تÙ
اÙ
ØµÙØÙ (IE)',
+ popupLeft: 'Ù
ÙÙØ¹Ûت ÚÙ¾',
+ popupLocationBar: 'ÙÙØ§Ø± Ù
ÙÙØ¹Ûت',
+ popupMenuBar: 'ÙÙØ§Ø± Ù
ÙÙ',
+ popupResizable: 'ÙØ§Ø¨Ù تغÛÛØ± Ø§ÙØ¯Ø§Ø²Ù',
+ popupScrollBars: 'Ù
ÛÙÙÙØ§Û Ù¾ÛÙ
Ø§ÛØ´',
+ popupStatusBar: 'ÙÙØ§Ø± ÙØ¶Ø¹Ûت',
+ popupToolbar: 'ÙÙØ§Ø±Ø§Ø¨Ø²Ø§Ø±',
+ popupTop: 'Ù
ÙÙØ¹Ûت Ø¨Ø§ÙØ§',
+ rel: 'ÙØ§Ø¨Ø³ØªÚ¯Û',
+ selectAnchor: 'ÛÚ© ÙÙگر برگزÛÙÛØ¯',
+ styles: 'Ø´ÛÙÙ(style)',
+ tabIndex: 'ÙÙ
اÛÙÙ´ Ø¯Ø³ØªØ±Ø³Û Ø¨Ø§ برگÙ',
+ target: 'Ù
ÙØµØ¯',
+ targetFrame: '<ÙØ±ÛÙ
>',
+ targetFrameName: 'ÙØ§Ù
ÙØ±ÛÙ
Ù
ÙØµØ¯',
+ targetPopup: '<Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ>',
+ targetPopupName: 'ÙØ§Ù
Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ',
+ title: 'Ù¾ÛÙÙØ¯',
+ toAnchor: 'ÙÙگر در ÙÙ
ÛÙ ØµÙØÙ',
+ toEmail: 'پست اÙکترÙÙÛÚ©Û',
+ toUrl: 'URL',
+ toolbar: 'Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ Ù¾ÛÙÙØ¯',
+ type: 'ÙÙØ¹ Ù¾ÛÙÙØ¯',
+ unlink: 'برداشت٠پÛÙÙØ¯',
+ upload: 'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/fi.js b/devel/third-party/ckeditor/plugins/link/lang/fi.js
new file mode 100644
index 0000000..1a69b90
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/fi.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fi', {
+ acccessKey: 'Pikanäppäin',
+ advanced: 'Lisäominaisuudet',
+ advisoryContentType: 'Avustava sisällön tyyppi',
+ advisoryTitle: 'Avustava otsikko',
+ anchor: {
+ toolbar: 'Lisää ankkuri/muokkaa ankkuria',
+ menu: 'Ankkurin ominaisuudet',
+ title: 'Ankkurin ominaisuudet',
+ name: 'Nimi',
+ errorName: 'Ankkurille on kirjoitettava nimi',
+ remove: 'Poista ankkuri'
+ },
+ anchorId: 'Ankkurin ID:n mukaan',
+ anchorName: 'Ankkurin nimen mukaan',
+ charset: 'Linkitetty kirjaimisto',
+ cssClasses: 'Tyyliluokat',
+ emailAddress: 'Sähköpostiosoite',
+ emailBody: 'Viesti',
+ emailSubject: 'Aihe',
+ id: 'Tunniste',
+ info: 'Linkin tiedot',
+ langCode: 'Kielen suunta',
+ langDir: 'Kielen suunta',
+ langDirLTR: 'Vasemmalta oikealle (LTR)',
+ langDirRTL: 'Oikealta vasemmalle (RTL)',
+ menu: 'Muokkaa linkkiä',
+ name: 'Nimi',
+ noAnchors: '(Ei ankkureita tässä dokumentissa)',
+ noEmail: 'Kirjoita sähköpostiosoite',
+ noUrl: 'Linkille on kirjoitettava URL',
+ other: '<muu>',
+ popupDependent: 'Riippuva (Netscape)',
+ popupFeatures: 'Popup ikkunan ominaisuudet',
+ popupFullScreen: 'Täysi ikkuna (IE)',
+ popupLeft: 'Vasemmalta (px)',
+ popupLocationBar: 'Osoiterivi',
+ popupMenuBar: 'Valikkorivi',
+ popupResizable: 'Venytettävä',
+ popupScrollBars: 'Vierityspalkit',
+ popupStatusBar: 'Tilarivi',
+ popupToolbar: 'Vakiopainikkeet',
+ popupTop: 'Ylhäältä (px)',
+ rel: 'Suhde',
+ selectAnchor: 'Valitse ankkuri',
+ styles: 'Tyyli',
+ tabIndex: 'Tabulaattori indeksi',
+ target: 'Kohde',
+ targetFrame: '<kehys>',
+ targetFrameName: 'Kohdekehyksen nimi',
+ targetPopup: '<popup ikkuna>',
+ targetPopupName: 'Popup ikkunan nimi',
+ title: 'Linkki',
+ toAnchor: 'Ankkuri tässä sivussa',
+ toEmail: 'Sähköposti',
+ toUrl: 'Osoite',
+ toolbar: 'Lisää linkki/muokkaa linkkiä',
+ type: 'Linkkityyppi',
+ unlink: 'Poista linkki',
+ upload: 'Lisää tiedosto'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/fo.js b/devel/third-party/ckeditor/plugins/link/lang/fo.js
new file mode 100644
index 0000000..e0b29e7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/fo.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fo', {
+ acccessKey: 'Snarvegisknöttur',
+ advanced: 'Fjølbroytt',
+ advisoryContentType: 'Vegleiðandi innihaldsslag',
+ advisoryTitle: 'Vegleiðandi heiti',
+ anchor: {
+ toolbar: 'Ger/broyt marknastein',
+ menu: 'Eginleikar fyri marknastein',
+ title: 'Eginleikar fyri marknastein',
+ name: 'Heiti marknasteinsins',
+ errorName: 'Vinarliga rita marknasteinsins heiti',
+ remove: 'Strika marknastein'
+ },
+ anchorId: 'Eftir element Id',
+ anchorName: 'Eftir navni á marknasteini',
+ charset: 'Atknýtt teknsett',
+ cssClasses: 'Typografi klassar',
+ emailAddress: 'Teldupost-adressa',
+ emailBody: 'Breyðtekstur',
+ emailSubject: 'Evni',
+ id: 'Id',
+ info: 'Tilknýtis upplýsingar',
+ langCode: 'Tekstkós',
+ langDir: 'Tekstkós',
+ langDirLTR: 'Frá vinstru til høgru (LTR)',
+ langDirRTL: 'Frá høgru til vinstru (RTL)',
+ menu: 'Broyt tilknýti',
+ name: 'Navn',
+ noAnchors: '(Eingir marknasteinar eru à hesum dokumentið)',
+ noEmail: 'Vinarliga skriva teldupost-adressu',
+ noUrl: 'Vinarliga skriva tilknýti (URL)',
+ other: '<annað>',
+ popupDependent: 'Bundið (Netscape)',
+ popupFeatures: 'Popup vindeygans vÃðkaðu eginleikar',
+ popupFullScreen: 'Fullur skermur (IE)',
+ popupLeft: 'Frástøða frá vinstru',
+ popupLocationBar: 'Adressulinja',
+ popupMenuBar: 'Skrábjálki',
+ popupResizable: 'Stødd kann broytast',
+ popupScrollBars: 'Rullibjálki',
+ popupStatusBar: 'Støðufrágreiðingarbjálki',
+ popupToolbar: 'Amboðsbjálki',
+ popupTop: 'Frástøða frá Ãerva',
+ rel: 'Relatión',
+ selectAnchor: 'Vel ein marknastein',
+ styles: 'Typografi',
+ tabIndex: 'Tabulator indeks',
+ target: 'Target',
+ targetFrame: '<ramma>',
+ targetFrameName: 'VÃs navn vindeygans',
+ targetPopup: '<popup vindeyga>',
+ targetPopupName: 'Popup vindeygans navn',
+ title: 'Tilknýti',
+ toAnchor: 'Tilknýti til marknastein à tekstinum',
+ toEmail: 'Teldupostur',
+ toUrl: 'URL',
+ toolbar: 'Ger/broyt tilknýti',
+ type: 'Tilknýtisslag',
+ unlink: 'Strika tilknýti',
+ upload: 'Send til ambætaran'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/link/lang/fr-ca.js
new file mode 100644
index 0000000..05a4919
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/fr-ca.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fr-ca', {
+ acccessKey: 'Ãquivalent clavier',
+ advanced: 'Avancée',
+ advisoryContentType: 'Type de contenu',
+ advisoryTitle: 'Titre',
+ anchor: {
+ toolbar: 'Insérer/modifier l\'ancre',
+ menu: 'Propriétés de l\'ancre',
+ title: 'Propriétés de l\'ancre',
+ name: 'Nom de l\'ancre',
+ errorName: 'Veuillez saisir le nom de l\'ancre',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Par id',
+ anchorName: 'Par nom',
+ charset: 'Encodage de caractère',
+ cssClasses: 'Classes de feuilles de style',
+ emailAddress: 'Adresse E-Mail',
+ emailBody: 'Corps du message',
+ emailSubject: 'Sujet du message',
+ id: 'Id',
+ info: 'Informations sur le lien',
+ langCode: 'Sens d\'écriture',
+ langDir: 'Sens d\'écriture',
+ langDirLTR: 'De gauche à droite (LTR)',
+ langDirRTL: 'De droite à gauche (RTL)',
+ menu: 'Modifier le lien',
+ name: 'Nom',
+ noAnchors: '(Pas d\'ancre disponible dans le document)',
+ noEmail: 'Veuillez saisir l\'adresse e-mail',
+ noUrl: 'Veuillez saisir l\'URL',
+ other: '<other>', // MISSING
+ popupDependent: 'Dépendante (Netscape)',
+ popupFeatures: 'Caractéristiques de la fenêtre popup',
+ popupFullScreen: 'Plein écran (IE)',
+ popupLeft: 'Position à partir de la gauche',
+ popupLocationBar: 'Barre d\'adresses',
+ popupMenuBar: 'Barre de menu',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Barres de défilement',
+ popupStatusBar: 'Barre d\'état',
+ popupToolbar: 'Barre d\'outils',
+ popupTop: 'Position à partir du haut',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Sélectionner une ancre',
+ styles: 'Style',
+ tabIndex: 'Ordre de tabulation',
+ target: 'Destination',
+ targetFrame: '<Cadre>',
+ targetFrameName: 'Nom du cadre de destination',
+ targetPopup: '<fenêtre popup>',
+ targetPopupName: 'Nom de la fenêtre popup',
+ title: 'Propriétés du lien',
+ toAnchor: 'Ancre dans cette page',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Insérer/modifier le lien',
+ type: 'Type de lien',
+ unlink: 'Supprimer le lien',
+ upload: 'Télécharger'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/fr.js b/devel/third-party/ckeditor/plugins/link/lang/fr.js
new file mode 100644
index 0000000..f9524d4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/fr.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'fr', {
+ acccessKey: 'Touche d\'accessibilité',
+ advanced: 'Avancé',
+ advisoryContentType: 'Type de contenu (ex: text/html)',
+ advisoryTitle: 'Description (title)',
+ anchor: {
+ toolbar: 'Ancre',
+ menu: 'Editer l\'ancre',
+ title: 'Propriétés de l\'ancre',
+ name: 'Nom de l\'ancre',
+ errorName: 'Veuillez entrer le nom de l\'ancre.',
+ remove: 'Supprimer l\'ancre'
+ },
+ anchorId: 'Par ID d\'élément',
+ anchorName: 'Par nom d\'ancre',
+ charset: 'Charset de la cible',
+ cssClasses: 'Classe CSS',
+ emailAddress: 'Adresse E-Mail',
+ emailBody: 'Corps du message',
+ emailSubject: 'Sujet du message',
+ id: 'Id',
+ info: 'Infos sur le lien',
+ langCode: 'Code de langue',
+ langDir: 'Sens d\'écriture',
+ langDirLTR: 'Gauche à droite',
+ langDirRTL: 'Droite à gauche',
+ menu: 'Editer le lien',
+ name: 'Nom',
+ noAnchors: '(Aucune ancre disponible dans ce document)',
+ noEmail: 'Veuillez entrer l\'adresse e-mail',
+ noUrl: 'Veuillez entrer l\'adresse du lien',
+ other: '<autre>',
+ popupDependent: 'Dépendante (Netscape)',
+ popupFeatures: 'Options de la fenêtre popup',
+ popupFullScreen: 'Plein écran (IE)',
+ popupLeft: 'Position gauche',
+ popupLocationBar: 'Barre d\'adresse',
+ popupMenuBar: 'Barre de menu',
+ popupResizable: 'Redimensionnable',
+ popupScrollBars: 'Barres de défilement',
+ popupStatusBar: 'Barre de status',
+ popupToolbar: 'Barre d\'outils',
+ popupTop: 'Position haute',
+ rel: 'Relation',
+ selectAnchor: 'Sélectionner l\'ancre',
+ styles: 'Style',
+ tabIndex: 'Index de tabulation',
+ target: 'Cible',
+ targetFrame: '<cadre>',
+ targetFrameName: 'Nom du Cadre destination',
+ targetPopup: '<fenêtre popup>',
+ targetPopupName: 'Nom de la fenêtre popup',
+ title: 'Lien',
+ toAnchor: 'Transformer le lien en ancre dans le texte',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Lien',
+ type: 'Type de lien',
+ unlink: 'Supprimer le lien',
+ upload: 'Envoyer'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/gl.js b/devel/third-party/ckeditor/plugins/link/lang/gl.js
new file mode 100644
index 0000000..76fd8ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/gl.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'gl', {
+ acccessKey: 'Chave de Acceso',
+ advanced: 'Advanzado',
+ advisoryContentType: 'Tipo de Contido',
+ advisoryTitle: 'TÃtulo',
+ anchor: {
+ toolbar: 'Inserir/Editar Referencia',
+ menu: 'Propriedades da Referencia',
+ title: 'Propriedades da Referencia',
+ name: 'Nome da Referencia',
+ errorName: 'Por favor, escriba o nome da referencia',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Por Element Id',
+ anchorName: 'Por Nome de Referencia',
+ charset: 'Fonte de Caracteres Vinculado',
+ cssClasses: 'Clases da Folla de Estilos',
+ emailAddress: 'Enderezo de E-Mail',
+ emailBody: 'Corpo do Mensaxe',
+ emailSubject: 'Asunto do Mensaxe',
+ id: 'Id',
+ info: 'Información da Ligazón',
+ langCode: 'Orientación do Idioma',
+ langDir: 'Orientación do Idioma',
+ langDirLTR: 'Esquerda a Dereita (LTR)',
+ langDirRTL: 'Dereita a Esquerda (RTL)',
+ menu: 'Editar Ligazón',
+ name: 'Nome',
+ noAnchors: '(Non hai referencias disponibles no documento)',
+ noEmail: 'Por favor, escriba o enderezo de e-mail',
+ noUrl: 'Por favor, escriba a ligazón URL',
+ other: '<outro>',
+ popupDependent: 'Dependente (Netscape)',
+ popupFeatures: 'CaracterÃsticas da Xanela Emerxente',
+ popupFullScreen: 'A Toda Pantalla (IE)',
+ popupLeft: 'Posición Esquerda',
+ popupLocationBar: 'Barra de Localización',
+ popupMenuBar: 'Barra de Menú',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Barras de Desplazamento',
+ popupStatusBar: 'Barra de Estado',
+ popupToolbar: 'Barra de Ferramentas',
+ popupTop: 'Posición dende Arriba',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Seleccionar unha Referencia',
+ styles: 'Estilo',
+ tabIndex: 'Ãndice de Tabulación',
+ target: 'Destino',
+ targetFrame: '<frame>',
+ targetFrameName: 'Nome do Marco Destino',
+ targetPopup: '<Xanela Emerxente>',
+ targetPopupName: 'Nome da Xanela Emerxente',
+ title: 'Ligazón',
+ toAnchor: 'Referencia nesta páxina',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Inserir/Editar Ligazón',
+ type: 'Tipo de Ligazón',
+ unlink: 'Eliminar Ligazón',
+ upload: 'Carregar'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/gu.js b/devel/third-party/ckeditor/plugins/link/lang/gu.js
new file mode 100644
index 0000000..1cb454b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/gu.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'gu', {
+ acccessKey: 'àªàªà«àª¸à«àª¸ àªà«',
+ advanced: 'àª
ડà«àªµàª¾àª¨à«àª¸àª¡',
+ advisoryContentType: 'મà«àªà«àª¯ àªàª¨à«àªà«àª¨à«àª પà«àª°àªàª¾àª°',
+ advisoryTitle: 'મà«àªà«àª¯ મથાળà«àª',
+ anchor: {
+ toolbar: 'àªàªàªàª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',
+ menu: 'àªàªàªàª°àª¨àª¾ àªà«àª£',
+ title: 'àªàªàªàª°àª¨àª¾ àªà«àª£',
+ name: 'àªàªàªàª°àª¨à«àª નામ',
+ errorName: 'àªàªàªàª°àª¨à«àª નામ àªàª¾àªàªª àªàª°à«',
+ remove: 'સà«àª¥àª¿àª° નàªàª°àªµà«àª'
+ },
+ anchorId: 'àªàªàªàª° àªàª²àª¿àª®àª¨à«àª Id થૠપસàªàª¦ àªàª°à«',
+ anchorName: 'àªàªàªàª° નામથૠપસàªàª¦ àªàª°à«',
+ charset: 'લિàªàª રિસà«àª°à«àª¸ àªà«
રિàªà«àªàª° સà«àª',
+ cssClasses: 'સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸',
+ emailAddress: 'àª-મà«àª² સરનામà«àª',
+ emailBody: 'સàªàª¦à«àª¶',
+ emailSubject: 'àª-મà«àª² વિષય',
+ id: 'Id',
+ info: 'લિàªàª àªàª¨à«àª«à« àªà«
બ',
+ langCode: 'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',
+ langDir: 'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',
+ langDirLTR: 'ડાબૠથૠàªàª®àª£à« (LTR)',
+ langDirRTL: 'àªàª®àª£à« થૠડાબૠ(RTL)',
+ menu: ' લિàªàª àªàª¡àª¿àª/માઠફà«àª°àª«àª¾àª° àªàª°àªµà«',
+ name: 'નામ',
+ noAnchors: '(ડà«àªà«àª¯à«àª®àª¨à«àªàª®àª¾àª àªàªàªàª°àª¨à« સàªàªà«àª¯àª¾)',
+ noEmail: 'àª-મà«àª² સરનામà«àª àªàª¾àªàªª àªàª°à«',
+ noUrl: 'લિàªàª URL àªàª¾àªàªª àªàª°à«',
+ other: '<other> <àª
નà«àª¯>',
+ popupDependent: 'ડિપà«àª¨à«àª¡àª¨à«àª (Netscape)',
+ popupFeatures: 'પà«àªª-àª
પ વિનà«àª¡à« ફà«àªàª°àª¸à«
',
+ popupFullScreen: 'ફà«àª² સà«àªà«àª°à«àª¨ (IE)',
+ popupLeft: 'ડાબૠબાàªà«',
+ popupLocationBar: 'લà«àªà«àª¶àª¨ બાર',
+ popupMenuBar: 'મà«àª¨à«àª¯à« બાર',
+ popupResizable: 'રà«àª¸àª¾àªàªàªàª¬àª²',
+ popupScrollBars: 'સà«àªà«àª°à«àª² બાર',
+ popupStatusBar: 'સà«àªà«
àªàª¸ બાર',
+ popupToolbar: 'àªà«àª² બાર',
+ popupTop: 'àªàª®àª£à« બાàªà«',
+ rel: 'સàªàª¬àªàª§àª¨à« સà«àª¥àª¿àª¤àª¿',
+ selectAnchor: 'àªàªàªàª° પસàªàª¦ àªàª°à«',
+ styles: 'સà«àªàª¾àªàª²',
+ tabIndex: 'àªà«
બ àªàª¨à«àª¡à«àªà«àª¸',
+ target: 'àªàª¾àª°à«àªà«àª/લàªà«àª·à«àª¯',
+ targetFrame: '<ફà«àª°à«àª®>',
+ targetFrameName: 'àªàª¾àª°à«àªà«àª ફà«àª°à«àª® નà«àª નામ',
+ targetPopup: '<પà«àªª-àª
પ વિનà«àª¡à«>',
+ targetPopupName: 'પà«àªª-àª
પ વિનà«àª¡à« નà«àª નામ',
+ title: 'લિàªàª',
+ toAnchor: 'ઠપà«àªàª¨à« àªàªàªàª°',
+ toEmail: 'àª-મà«àª²',
+ toUrl: 'URL',
+ toolbar: 'લિàªàª àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',
+ type: 'લિàªàª પà«àª°àªàª¾àª°',
+ unlink: 'લિàªàª àªàª¾àª¢àªµà«',
+ upload: 'àª
પલà«àª¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/he.js b/devel/third-party/ckeditor/plugins/link/lang/he.js
new file mode 100644
index 0000000..173411c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/he.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'he', {
+ acccessKey: '×קש ××ש×',
+ advanced: '×פשר×××ת ×תק×××ת',
+ advisoryContentType: 'Content Type ××צע',
+ advisoryTitle: '××תרת ××צעת',
+ anchor: {
+ toolbar: '××ספת/ער××ת × ×§××ת ×¢××××',
+ menu: '××פ××× × × ×§××ת ×¢××××',
+ title: '××פ××× × × ×§××ת ×¢××××',
+ name: '×©× ×× ×§××ת ×¢××××',
+ errorName: '×ש ×××§××× ×©× ×× ×§××ת ×¢××××',
+ remove: '×××קת × ×§××ת ×¢××××'
+ },
+ anchorId: 'עפ"× ××××× (ID) ××××× ×',
+ anchorName: 'עפ"× ×©× ××¢×××',
+ charset: '×§×××× ××ש×× ×××§×שר',
+ cssClasses: '×××××× ×ת ×¢×צ×× ×§××צ×ת',
+ emailAddress: '×ת××ת ××××"×',
+ emailBody: '×××£ ×××××¢×',
+ emailSubject: '× ××©× ×××××¢×',
+ id: '××××× (ID)',
+ info: '××××¢ ×¢× ××§×ש×ר',
+ langCode: '×§×× ×©×¤×',
+ langDir: '××××× ×©×¤×',
+ langDirLTR: 'ש××× ××××× (LTR)',
+ langDirRTL: '×××× ×ש××× (RTL)',
+ menu: '××פ××× × ×§×ש×ר',
+ name: 'ש×',
+ noAnchors: '(××× ×¢××× ×× ×××× ×× ×××£)',
+ noEmail: '×ש ×××§××× ×ת ×ת××ת ××××"×',
+ noUrl: '×ש ×××§××× ×ת ×ת××ת ××§×ש×ר (URL)',
+ other: '<××ר>',
+ popupDependent: 'ת××× (Netscape)',
+ popupFeatures: 'ת××× ×ת ××××× ××§×פץ',
+ popupFullScreen: '××¡× ××× (IE)',
+ popupLeft: '×××§×× ×¦× ×©×××',
+ popupLocationBar: 'סר×× ×ת××ת',
+ popupMenuBar: 'סר×× ×ª×¤×¨××',
+ popupResizable: 'ש×× ×× ××××',
+ popupScrollBars: '× ××ª× ××××××',
+ popupStatusBar: 'סר×× ×××××',
+ popupToolbar: 'סר×× ×××××',
+ popupTop: '×××§×× ×¦× ×¢××××',
+ rel: 'קשר ××××××',
+ selectAnchor: '×××רת ×¢×××',
+ styles: 'ס×× ××',
+ tabIndex: '×ספר ×××',
+ target: '××ר×',
+ targetFrame: '<×ס×רת>',
+ targetFrameName: '×©× ×ס×רת ×××¢×',
+ targetPopup: '<×××× ×§×פץ>',
+ targetPopupName: '×©× ××××× ××§×פץ',
+ title: '×§×ש×ר',
+ toAnchor: '×¢××× ××¢××× ××',
+ toEmail: '×××"×',
+ toUrl: '×ת××ת (URL)',
+ toolbar: '××ספת/ער××ת ×§×ש×ר',
+ type: 'ס×× ×§×ש×ר',
+ unlink: '×סרת ××§×ש×ר',
+ upload: '××¢×××'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/hi.js b/devel/third-party/ckeditor/plugins/link/lang/hi.js
new file mode 100644
index 0000000..691a93b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/hi.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'hi', {
+ acccessKey: 'à¤à¤à¥à¤¸à¥
स à¤à¥',
+ advanced: 'à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡',
+ advisoryContentType: 'परामरà¥à¤¶ à¤à¤¨à¥à¤à¥
नà¥à¤ पà¥à¤°à¤à¤¾à¤°',
+ advisoryTitle: 'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',
+ anchor: {
+ toolbar: 'à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',
+ menu: 'à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ title: 'à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ name: 'à¤à¤à¤à¤° à¤à¤¾ नाम',
+ errorName: 'à¤à¤à¤à¤° à¤à¤¾ नाम à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'à¤à¤²à¥à¤®à¥
नà¥à¤ Id सà¥',
+ anchorName: 'à¤à¤à¤à¤° नाम सà¥',
+ charset: 'लिà¤à¤ रिसà¥à¤°à¥à¤¸ à¤à¤°à¥
à¤à¥à¤à¤° सà¥
à¤',
+ cssClasses: 'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',
+ emailAddress: 'à¤-मà¥à¤² पता',
+ emailBody: 'सà¤à¤¦à¥à¤¶',
+ emailSubject: 'सà¤à¤¦à¥à¤¶ विषय',
+ id: 'Id',
+ info: 'लिà¤à¤ ',
+ langCode: 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
+ langDir: 'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',
+ langDirLTR: 'बायà¥à¤ सॠदायà¥à¤ (LTR)',
+ langDirRTL: 'दायà¥à¤ सॠबायà¥à¤ (RTL)',
+ menu: 'लिà¤à¤ सà¤à¤ªà¤¾à¤¦à¤¨',
+ name: 'नाम',
+ noAnchors: '(डà¥à¤à¥à¤¯à¥à¤®à¥
नà¥à¤ मà¥à¤ à¤à¤à¤à¤°à¥à¤¸ à¤à¥ सà¤à¤à¥à¤¯à¤¾)',
+ noEmail: 'à¤-मà¥à¤² पता à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',
+ noUrl: 'लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',
+ other: '<à¤
नà¥à¤¯>',
+ popupDependent: 'डिपà¥à¤¨à¥à¤¡à¥
नà¥à¤ (Netscape)',
+ popupFeatures: 'पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¥à¥à¤à¤°à¥à¤¸',
+ popupFullScreen: 'à¥à¥à¤² सà¥à¤à¥à¤°à¥à¤¨ (IE)',
+ popupLeft: 'बायà¥à¤ तरफ',
+ popupLocationBar: 'लà¥à¤à¥à¤¶à¤¨ बार',
+ popupMenuBar: 'मà¥
नà¥à¤¯à¥ बार',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'सà¥à¤à¥à¤°à¥à¤² बार',
+ popupStatusBar: 'सà¥à¤à¥à¤à¤¸ बार',
+ popupToolbar: 'à¤à¥à¤² बार',
+ popupTop: 'दायà¥à¤ तरफ',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'à¤à¤à¤à¤° à¤à¥à¤¨à¥à¤',
+ styles: 'सà¥à¤à¤¾à¤à¤²',
+ tabIndex: 'à¤à¥à¤¬ à¤à¤¨à¥à¤¡à¥
à¤à¥à¤¸',
+ target: 'à¤à¤¾à¤°à¥à¤à¥à¤',
+ targetFrame: '<à¥à¥à¤°à¥à¤®>',
+ targetFrameName: 'à¤à¤¾à¤°à¥à¤à¥à¤ à¥à¥à¤°à¥à¤® à¤à¤¾ नाम',
+ targetPopup: '<पà¥à¤ª-à¤
प विनà¥à¤¡à¥>',
+ targetPopupName: 'पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¤à¤¾ नाम',
+ title: 'लिà¤à¤',
+ toAnchor: 'à¤à¤¸ पà¥à¤ à¤à¤¾ à¤à¤à¤à¤°',
+ toEmail: 'à¤-मà¥à¤²',
+ toUrl: 'URL',
+ toolbar: 'लिà¤à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',
+ type: 'लिà¤à¤ पà¥à¤°à¤à¤¾à¤°',
+ unlink: 'लिà¤à¤ हà¤à¤¾à¤¯à¥à¤',
+ upload: 'à¤
पलà¥à¤¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/hr.js b/devel/third-party/ckeditor/plugins/link/lang/hr.js
new file mode 100644
index 0000000..f1bf5f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/hr.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'hr', {
+ acccessKey: 'Pristupna tipka',
+ advanced: 'Napredno',
+ advisoryContentType: 'Advisory vrsta sadržaja',
+ advisoryTitle: 'Advisory naslov',
+ anchor: {
+ toolbar: 'Ubaci/promijeni sidro',
+ menu: 'Svojstva sidra',
+ title: 'Svojstva sidra',
+ name: 'Ime sidra',
+ errorName: 'Molimo unesite ime sidra',
+ remove: 'Ukloni sidro'
+ },
+ anchorId: 'Po Id elementa',
+ anchorName: 'Po nazivu sidra',
+ charset: 'Kodna stranica povezanih resursa',
+ cssClasses: 'Stylesheet klase',
+ emailAddress: 'E-Mail adresa',
+ emailBody: 'Sadržaj poruke',
+ emailSubject: 'Naslov',
+ id: 'Id',
+ info: 'Link Info',
+ langCode: 'Smjer jezika',
+ langDir: 'Smjer jezika',
+ langDirLTR: 'S lijeva na desno (LTR)',
+ langDirRTL: 'S desna na lijevo (RTL)',
+ menu: 'Promijeni link',
+ name: 'Naziv',
+ noAnchors: '(Nema dostupnih sidra)',
+ noEmail: 'Molimo upišite e-mail adresu',
+ noUrl: 'Molimo upišite URL link',
+ other: '<drugi>',
+ popupDependent: 'Ovisno (Netscape)',
+ popupFeatures: 'MoguÄnosti popup prozora',
+ popupFullScreen: 'Cijeli ekran (IE)',
+ popupLeft: 'Lijeva pozicija',
+ popupLocationBar: 'Traka za lokaciju',
+ popupMenuBar: 'Izborna traka',
+ popupResizable: 'Promjenjiva veliÄina',
+ popupScrollBars: 'Scroll traka',
+ popupStatusBar: 'Statusna traka',
+ popupToolbar: 'Traka s alatima',
+ popupTop: 'Gornja pozicija',
+ rel: 'Veza',
+ selectAnchor: 'Odaberi sidro',
+ styles: 'Stil',
+ tabIndex: 'Tab Indeks',
+ target: 'Meta',
+ targetFrame: '<okvir>',
+ targetFrameName: 'Ime ciljnog okvira',
+ targetPopup: '<popup prozor>',
+ targetPopupName: 'Naziv popup prozora',
+ title: 'Link',
+ toAnchor: 'Sidro na ovoj stranici',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Ubaci/promijeni link',
+ type: 'Link vrsta',
+ unlink: 'Ukloni link',
+ upload: 'Pošalji'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/hu.js b/devel/third-party/ckeditor/plugins/link/lang/hu.js
new file mode 100644
index 0000000..dfc7336
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/hu.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'hu', {
+ acccessKey: 'Billentyűkombináció',
+ advanced: 'További opciók',
+ advisoryContentType: 'Súgó tartalomtÃpusa',
+ advisoryTitle: 'Súgócimke',
+ anchor: {
+ toolbar: 'Horgony beillesztése/szerkesztése',
+ menu: 'Horgony tulajdonságai',
+ title: 'Horgony tulajdonságai',
+ name: 'Horgony neve',
+ errorName: 'Kérem adja meg a horgony nevét',
+ remove: 'Horgony eltávolÃtása'
+ },
+ anchorId: 'AzonosÃtó szerint',
+ anchorName: 'Horgony név szerint',
+ charset: 'Hivatkozott tartalom kódlapja',
+ cssClasses: 'StÃluskészlet',
+ emailAddress: 'E-Mail cÃm',
+ emailBody: 'Ãzenet',
+ emailSubject: 'Ãzenet tárgya',
+ id: 'Id',
+ info: 'Alaptulajdonságok',
+ langCode: 'Ãrás iránya',
+ langDir: 'Ãrás iránya',
+ langDirLTR: 'Balról jobbra',
+ langDirRTL: 'Jobbról balra',
+ menu: 'Hivatkozás módosÃtása',
+ name: 'Név',
+ noAnchors: '(Nincs horgony a dokumentumban)',
+ noEmail: 'Adja meg az E-Mail cÃmet',
+ noUrl: 'Adja meg a hivatkozás webcÃmét',
+ other: '<más>',
+ popupDependent: 'SzülÅhöz kapcsolt (csak Netscape)',
+ popupFeatures: 'Felugró ablak jellemzÅi',
+ popupFullScreen: 'Teljes képernyŠ(csak IE)',
+ popupLeft: 'Bal pozÃció',
+ popupLocationBar: 'CÃmsor',
+ popupMenuBar: 'Menü sor',
+ popupResizable: 'Ãtméretezés',
+ popupScrollBars: 'GördÃtÅsáv',
+ popupStatusBar: 'Ãllapotsor',
+ popupToolbar: 'Eszköztár',
+ popupTop: 'FelsÅ pozÃció',
+ rel: 'Kapcsolat tÃpusa',
+ selectAnchor: 'Horgony választása',
+ styles: 'StÃlus',
+ tabIndex: 'Tabulátor index',
+ target: 'Tartalom megjelenÃtése',
+ targetFrame: '<keretben>',
+ targetFrameName: 'Keret neve',
+ targetPopup: '<felugró ablakban>',
+ targetPopupName: 'Felugró ablak neve',
+ title: 'Hivatkozás tulajdonságai',
+ toAnchor: 'Horgony az oldalon',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Hivatkozás beillesztése/módosÃtása',
+ type: 'Hivatkozás tÃpusa',
+ unlink: 'Hivatkozás törlése',
+ upload: 'Feltöltés'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/is.js b/devel/third-party/ckeditor/plugins/link/lang/is.js
new file mode 100644
index 0000000..0475803
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/is.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'is', {
+ acccessKey: 'Skammvalshnappur',
+ advanced: 'Tæknilegt',
+ advisoryContentType: 'Tegund innihalds',
+ advisoryTitle: 'Titill',
+ anchor: {
+ toolbar: 'Stofna/breyta kaflamerki',
+ menu: 'Eigindi kaflamerkis',
+ title: 'Eigindi kaflamerkis',
+ name: 'Nafn bókamerkis',
+ errorName: 'Sláðu inn nafn bókamerkis!',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Eftir auðkenni einingar',
+ anchorName: 'Eftir akkerisnafni',
+ charset: 'Táknróf',
+ cssClasses: 'StÃlsniðsflokkur',
+ emailAddress: 'Netfang',
+ emailBody: 'Meginmál',
+ emailSubject: 'Efni',
+ id: 'Auðkenni',
+ info: 'Almennt',
+ langCode: 'Lesstefna',
+ langDir: 'Lesstefna',
+ langDirLTR: 'Frá vinstri til hægri (LTR)',
+ langDirRTL: 'Frá hægri til vinstri (RTL)',
+ menu: 'Breyta stiklu',
+ name: 'Nafn',
+ noAnchors: '<Engin bókamerki á skrá>',
+ noEmail: 'Sláðu inn netfang!',
+ noUrl: 'Sláðu inn veffang stiklunnar!',
+ other: '<annar>',
+ popupDependent: 'Háð venslum (Netscape)',
+ popupFeatures: 'Eigindi sprettiglugga',
+ popupFullScreen: 'Heilskjár (IE)',
+ popupLeft: 'Fjarlægð frá vinstri',
+ popupLocationBar: 'FanglÃna',
+ popupMenuBar: 'VallÃna',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Skrunstikur',
+ popupStatusBar: 'Stöðustika',
+ popupToolbar: 'Verkfærastika',
+ popupTop: 'Fjarlægð frá efri brún',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Veldu akkeri',
+ styles: 'StÃll',
+ tabIndex: 'Raðnúmer innsláttarreits',
+ target: 'Mark',
+ targetFrame: '<rammi>',
+ targetFrameName: 'Nafn markglugga',
+ targetPopup: '<sprettigluggi>',
+ targetPopupName: 'Nafn sprettiglugga',
+ title: 'Stikla',
+ toAnchor: 'Bókamerki á þessari sÃðu',
+ toEmail: 'Netfang',
+ toUrl: 'Vefslóð',
+ toolbar: 'Stofna/breyta stiklu',
+ type: 'Stikluflokkur',
+ unlink: 'Fjarlægja stiklu',
+ upload: 'Senda upp'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/it.js b/devel/third-party/ckeditor/plugins/link/lang/it.js
new file mode 100644
index 0000000..6c25900
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/it.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'it', {
+ acccessKey: 'Scorciatoia<br />da tastiera',
+ advanced: 'Avanzate',
+ advisoryContentType: 'Tipo della risorsa collegata',
+ advisoryTitle: 'Titolo',
+ anchor: {
+ toolbar: 'Inserisci/Modifica Ancora',
+ menu: 'Proprietà ancora',
+ title: 'Proprietà ancora',
+ name: 'Nome ancora',
+ errorName: 'Inserici il nome dell\'ancora',
+ remove: 'Rimuovi l\'ancora'
+ },
+ anchorId: 'Per id elemento',
+ anchorName: 'Per Nome',
+ charset: 'Set di caretteri della risorsa collegata',
+ cssClasses: 'Nome classe CSS',
+ emailAddress: 'Indirizzo E-Mail',
+ emailBody: 'Corpo del messaggio',
+ emailSubject: 'Oggetto del messaggio',
+ id: 'Id',
+ info: 'Informazioni collegamento',
+ langCode: 'Direzione scrittura',
+ langDir: 'Direzione scrittura',
+ langDirLTR: 'Da Sinistra a Destra (LTR)',
+ langDirRTL: 'Da Destra a Sinistra (RTL)',
+ menu: 'Modifica collegamento',
+ name: 'Nome',
+ noAnchors: '(Nessuna ancora disponibile nel documento)',
+ noEmail: 'Devi inserire un\'indirizzo e-mail',
+ noUrl: 'Devi inserire l\'URL del collegamento',
+ other: '<altro>',
+ popupDependent: 'Dipendente (Netscape)',
+ popupFeatures: 'Caratteristiche finestra popup',
+ popupFullScreen: 'A tutto schermo (IE)',
+ popupLeft: 'Posizione da sinistra',
+ popupLocationBar: 'Barra degli indirizzi',
+ popupMenuBar: 'Barra del menu',
+ popupResizable: 'Ridimensionabile',
+ popupScrollBars: 'Barre di scorrimento',
+ popupStatusBar: 'Barra di stato',
+ popupToolbar: 'Barra degli strumenti',
+ popupTop: 'Posizione dall\'alto',
+ rel: 'Relazioni',
+ selectAnchor: 'Scegli Ancora',
+ styles: 'Stile',
+ tabIndex: 'Ordine di tabulazione',
+ target: 'Destinazione',
+ targetFrame: '<riquadro>',
+ targetFrameName: 'Nome del riquadro di destinazione',
+ targetPopup: '<finestra popup>',
+ targetPopupName: 'Nome finestra popup',
+ title: 'Collegamento',
+ toAnchor: 'Ancora nella pagina',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Inserisci/Modifica collegamento',
+ type: 'Tipo di Collegamento',
+ unlink: 'Elimina collegamento',
+ upload: 'Carica'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ja.js b/devel/third-party/ckeditor/plugins/link/lang/ja.js
new file mode 100644
index 0000000..12f2aef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ja.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ja', {
+ acccessKey: 'ã¢ã¯ã»ã¹ãã¼',
+ advanced: 'é«åº¦ãªè¨å®',
+ advisoryContentType: 'Content Type屿§',
+ advisoryTitle: 'Title屿§',
+ anchor: {
+ toolbar: 'ã¢ã³ã«ã¼æ¿å
¥/ç·¨é',
+ menu: 'ã¢ã³ã«ã¼ ããããã£',
+ title: 'ã¢ã³ã«ã¼ ããããã£',
+ name: 'ã¢ã³ã«ã¼å',
+ errorName: 'ã¢ã³ã«ã¼åãå¿
ãå
¥åãã¦ãã ããã',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'ã¨ã¬ã¡ã³ãID',
+ anchorName: 'ã¢ã³ã«ã¼å',
+ charset: 'ãªã³ã¯charset屿§',
+ cssClasses: 'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',
+ emailAddress: 'E-Mail ã¢ãã¬ã¹',
+ emailBody: 'æ¬æ',
+ emailSubject: 'ä»¶å',
+ id: 'Id',
+ info: 'ãã¤ãã¼ãªã³ã¯ æ
å ±',
+ langCode: 'è¨èªã³ã¼ã',
+ langDir: 'æå表è¨ã®æ¹å',
+ langDirLTR: 'å·¦ããå³ (LTR)',
+ langDirRTL: 'å³ããå·¦ (RTL)',
+ menu: 'ãªã³ã¯ç·¨é',
+ name: 'Name屿§',
+ noAnchors: '(ããã¥ã¡ã³ãã«ããã¦å©ç¨å¯è½ãªã¢ã³ã«ã¼ã¯ããã¾ããã)',
+ noEmail: 'ã¡ã¼ã«ã¢ãã¬ã¹ãå
¥åãã¦ãã ããã',
+ noUrl: 'ãªã³ã¯URLãå
¥åãã¦ãã ããã',
+ other: '<ãã®ä»ã®>',
+ popupDependent: 'éããã¦ã£ã³ãã¦ã«é£åãã¦éãã (Netscape)',
+ popupFeatures: 'ãããã¢ããã¦ã£ã³ãã¦ç¹å¾´',
+ popupFullScreen: 'å
¨ç»é¢ã¢ã¼ã(IE)',
+ popupLeft: '左端ããã®åº§æ¨ã§æå®',
+ popupLocationBar: 'ãã±ã¼ã·ã§ã³ãã¼',
+ popupMenuBar: 'ã¡ãã¥ã¼ãã¼',
+ popupResizable: 'ãµã¤ãºå¯å¤',
+ popupScrollBars: 'ã¹ã¯ãã¼ã«ãã¼',
+ popupStatusBar: 'ã¹ãã¼ã¿ã¹ãã¼',
+ popupToolbar: 'ãã¼ã«ãã¼',
+ popupTop: 'ä¸ç«¯ããã®åº§æ¨ã§æå®',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'ã¢ã³ã«ã¼ã鏿',
+ styles: 'ã¹ã¿ã¤ã«ã·ã¼ã',
+ tabIndex: 'ã¿ãã¤ã³ããã¯ã¹',
+ target: 'ã¿ã¼ã²ãã',
+ targetFrame: '<ãã¬ã¼ã >',
+ targetFrameName: 'ç®çã®ãã¬ã¼ã å',
+ targetPopup: '<ãããã¢ããã¦ã£ã³ãã¦>',
+ targetPopupName: 'ãããã¢ããã¦ã£ã³ãã¦å',
+ title: 'ãã¤ãã¼ãªã³ã¯',
+ toAnchor: 'ãã®ãã¼ã¸ã®ã¢ã³ã«ã¼',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'ãªã³ã¯æ¿å
¥/ç·¨é',
+ type: 'ãªã³ã¯ã¿ã¤ã',
+ unlink: 'ãªã³ã¯åé¤',
+ upload: 'ã¢ãããã¼ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ka.js b/devel/third-party/ckeditor/plugins/link/lang/ka.js
new file mode 100644
index 0000000..1e57a25
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ka.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ka', {
+ acccessKey: 'á¬áááááá¡ á¦ááááá',
+ advanced: 'ááá¬áá áááááá',
+ advisoryContentType: 'á¨áááááá¡áá¡ á¢ááá',
+ advisoryTitle: 'á¡áááá£á á',
+ anchor: {
+ toolbar: 'á¦á£áá',
+ menu: 'á¦á£ááá¡ á áááá¥á¢áá ááá',
+ title: 'á¦á£ááá¡ ááá áááá¢á ááá',
+ name: 'á¦á£áá£á¡ á¡áá®ááá',
+ errorName: 'ááá áá¤áá á¦á£ááá¡ á¡áá®ááá',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'ááááááá¢áá¡ Id-á',
+ anchorName: 'á¦á£ááá¡ á¡áá®áááá',
+ charset: 'ááááá ááá',
+ cssClasses: 'CSS áááá¡á',
+ emailAddress: 'ááá¤áá¡á¢áá¡ ááá¡áááá áááá',
+ emailBody: 'á¬áá áááá¡ á¢áá¥á¡á¢á',
+ emailSubject: 'á¬áá áááá¡ á¡áááá£á á',
+ id: 'Id',
+ info: 'ááá£ááá¡ ááá¤áá áááªáá',
+ langCode: 'áááá¡ áááá',
+ langDir: 'áááá¡ ááááá áá£áááá',
+ langDirLTR: 'ááá áªá®ááááá ááá á¯áááá (LTR)',
+ langDirRTL: 'ááá á¯áááááá ááá áªá®ááá (RTL)',
+ menu: 'ááá£ááá¡ á áááá¥á¢áá ááá',
+ name: 'á¡áá®ááá',
+ noAnchors: '(áá áááá£áááá¢á¨á á¦á£áá áá áá)',
+ noEmail: 'ááá áá¤áá ááá¤áá¡á¢áá¡ ááá¡áááá áá',
+ noUrl: 'ááá áá¤áá ááá£ááá¡ URL',
+ other: '<á¡á®áá>',
+ popupDependent: 'áááááááááá£áá (Netscape)',
+ popupFeatures: 'Popup á¤ááá¯á áá¡ ááá áááá¢á ááá',
+ popupFullScreen: 'ááááá ááá ááá (IE)',
+ popupLeft: 'ááá áªá®ááá áááááªáá',
+ popupLocationBar: 'áááááááªááá¡ áááá',
+ popupMenuBar: 'ááááá£á¡ áááá',
+ popupResizable: 'áªáááááááá ááááá',
+ popupScrollBars: 'ááááá®ááááá¡ áááááá',
+ popupStatusBar: 'á¡á¢áá¢á£á¡áá¡ áááá',
+ popupToolbar: 'á®ááá¡áá¬á§ááá áááá',
+ popupTop: 'áááá áááááªáá',
+ rel: 'áááá¨áá á',
+ selectAnchor: 'ááá á©ááá á¦á£áá',
+ styles: 'CSS á¡á¢ááá',
+ tabIndex: 'Tab-áá¡ ááááá¥á¡á',
+ target: 'ááá®á¡ááá¡ áááááá',
+ targetFrame: '<frame>',
+ targetFrameName: 'Frame-áá¡ á¡áá®ááá',
+ targetPopup: '<popup á¤ááá¯áá á>',
+ targetPopupName: 'Popup á¤ááá¯á áá¡ á¡áá®ááá',
+ title: 'ááá£áá',
+ toAnchor: 'ááá£áá á¢áá¥á¡á¢á¨á á¦á£áááá',
+ toEmail: 'ááá¤áá¡á¢á',
+ toUrl: 'URL',
+ toolbar: 'ááá£áá',
+ type: 'ááá£ááá¡ á¢ááá',
+ unlink: 'ááá£ááá¡ ááá®á¡áá',
+ upload: 'áá¥áá©áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/km.js b/devel/third-party/ckeditor/plugins/link/lang/km.js
new file mode 100644
index 0000000..bc13a68
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/km.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'km', {
+ acccessKey: 'áḠáááá¶ááá
á¼á',
+ advanced: 'áááá·áááááá',
+ advisoryContentType: 'ááááááá¢ááááá áááá¹áááá¶',
+ advisoryTitle: 'á
ááááá¾á áááá¹áááá¶',
+ anchor: {
+ toolbar: 'áááááá/áááááá áá»áááá¶',
+ menu: 'áá¶áááááááá»áááá¶',
+ title: 'áá¶áááááááá»áááá¶',
+ name: 'ááááááá»ááááááá¶',
+ errorName: 'áá¼áááááá ááááááá»ááááááá¶',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'áá¶á Id',
+ anchorName: 'áá¶áááááááááááá»áááá¶',
+ charset: 'ááááá¼áá¢áááááááááááá¶áá',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'á¢áá¸ááá',
+ emailBody: 'á¢ááááá',
+ emailSubject: 'á
ááááá¾áá¢ááááá',
+ id: 'Id',
+ info: 'ááááá¶áá¢ááá¸áááá¶áá',
+ langCode: 'áá·ááá
áá¶áá¶',
+ langDir: 'áá·ááá
áá¶áá¶',
+ langDirLTR: 'áá¸ááááááá
áááá¶á(LTR)',
+ langDirRTL: 'áá¸áááá¶ááá
ááááá(RTL)',
+ menu: 'áááááááááá¶áá',
+ name: 'ááááá',
+ noAnchors: '(No anchors available in the document)', // MISSING
+ noEmail: 'áá¼áááááá á¢á¶ááááááá¶á á¢áá¸ááá',
+ noUrl: 'áá¼áááááá á¢á¶ááááááá¶á URL',
+ other: '<other>', // MISSING
+ popupDependent: 'á¢á¶ááááááá¾ (Netscape)',
+ popupFeatures: 'áááááááááááá¸ááá¼áááá',
+ popupFullScreen: 'á¢ááááá»áááá(IE)',
+ popupLeft: 'áá¸áá¶áááá¶áááááá',
+ popupLocationBar: 'ááá¶ áá¸áá¶áá',
+ popupMenuBar: 'ááá¶ ááºáá»á',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'ááá¶ áá¶á',
+ popupStatusBar: 'ááá¶ ááááá¶á',
+ popupToolbar: 'ááá¶ á©ááááá',
+ popupTop: 'áá¸áá¶áááá¶ááá¾',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'áááá¾ááá¾ááá»áááá¶',
+ styles: 'ááá¼á',
+ tabIndex: 'ááá Tab',
+ target: 'ááááá
',
+ targetFrame: '<á áááááá>',
+ targetFrameName: 'áááááá ááááááááááá¶ááááá
',
+ targetPopup: '<áá¸ááá¼á ááá>',
+ targetPopupName: 'ááááááá¸ááá¼áááá',
+ title: 'áááá¶áá',
+ toAnchor: 'áá»áááá¶áá
áááá»ááááááááá',
+ toEmail: 'á¢áá¸ááá',
+ toUrl: 'URL',
+ toolbar: 'áááááá/áááááá áááá¶áá',
+ type: 'áááááááááá¶áá',
+ unlink: 'ááááááá¶áá',
+ upload: 'áá¶ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ko.js b/devel/third-party/ckeditor/plugins/link/lang/ko.js
new file mode 100644
index 0000000..ecb168b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ko.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ko', {
+ acccessKey: 'ìì¸ì¤ í¤',
+ advanced: 'ìì¸í',
+ advisoryContentType: 'Advisory Content Type',
+ advisoryTitle: 'Advisory Title',
+ anchor: {
+ toolbar: 'ì±
ê°í¼ ì½ì
/ë³ê²½',
+ menu: 'ì±
ê°í¼ ìì±',
+ title: 'ì±
ê°í¼ ìì±',
+ name: 'ì±
ê°í¼ ì´ë¦',
+ errorName: 'ì±
ê°í¼ ì´ë¦ì ì
ë ¥íììì.',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'ì±
ê°í¼ ID',
+ anchorName: 'ì±
ê°í¼ ì´ë¦',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet Classes',
+ emailAddress: 'ì´ë©ì¼ 주ì',
+ emailBody: 'ë´ì©',
+ emailSubject: 'ì 목',
+ id: 'ID',
+ info: 'ë§í¬ ì ë³´',
+ langCode: 'ì°ê¸° ë°©í¥',
+ langDir: 'ì°ê¸° ë°©í¥',
+ langDirLTR: 'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',
+ langDirRTL: 'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',
+ menu: 'ë§í¬ ìì ',
+ name: 'Name',
+ noAnchors: '(문ìì ì±
ê°í¼ê° ììµëë¤.)',
+ noEmail: 'ì´ë©ì¼ì£¼ì를 ì
ë ¥íììì.',
+ noUrl: 'ë§í¬ URLì ì
ë ¥íììì.',
+ other: '<기í>',
+ popupDependent: 'Dependent (Netscape)',
+ popupFeatures: 'íì
ì°½ ì¤ì ',
+ popupFullScreen: 'ì ì²´íë©´ (IE)',
+ popupLeft: 'ì¼ìª½ ìì¹',
+ popupLocationBar: '주ìíìì¤',
+ popupMenuBar: 'ë©ë´ë°',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'ì¤í¬ë¡¤ë°',
+ popupStatusBar: 'ìíë°',
+ popupToolbar: 'í´ë°',
+ popupTop: 'ì쪽 ìì¹',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'ì±
ê°í¼ ì í',
+ styles: 'Style',
+ tabIndex: 'í ìì',
+ target: 'íê²',
+ targetFrame: '<íë ì>',
+ targetFrameName: 'íê² íë ì ì´ë¦',
+ targetPopup: '<íì
ì°½>',
+ targetPopupName: 'íì
ì°½ ì´ë¦',
+ title: 'ë§í¬',
+ toAnchor: 'ì±
ê°í¼',
+ toEmail: 'ì´ë©ì¼',
+ toUrl: 'URL',
+ toolbar: 'ë§í¬ ì½ì
/ë³ê²½',
+ type: 'ë§í¬ ì¢
ë¥',
+ unlink: 'ë§í¬ ìì ',
+ upload: 'ì
ë¡ë'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ku.js b/devel/third-party/ckeditor/plugins/link/lang/ku.js
new file mode 100644
index 0000000..e2299f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ku.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ku', {
+ acccessKey: 'Ú©ÙÛÙÛ Ø¯ÙØ³ØªÙ¾ÛÚ¯ÙÛØ´ØªÙ',
+ advanced: 'Ù¾ÛØ´Ú©ÙÙØªÙÙ',
+ advisoryContentType: 'Ø¬ÛØ±Û ÙØ§ÙÙÚÛÚ©Û ÚØ§ÙÛÚکار',
+ advisoryTitle: 'ÚØ§ÙÛÚÚ©Ø§Ø±Û Ø³ÙØ±Ø¯ÛÚ',
+ anchor: {
+ toolbar: 'Ø¯Ø§ÙØ§Ù/ÚØ§Ú©Ø³Ø§Ø²Û ÙÙÙÚ¯ÙØ±',
+ menu: 'ÚØ§Ú©Ø³Ø§Ø²Û ÙÙÙÚ¯ÙØ±',
+ title: 'خاسÛÙØªÛ ÙÙÙÚ¯ÙØ±',
+ name: 'ÙØ§ÙÛ ÙÙÙÚ¯ÙØ±',
+ errorName: 'تکاÛÙ ÙØ§ÙÛ ÙÙÙÚ¯ÙØ± بÙÙÙØ³Ù',
+ remove: 'ÙØ§Ø¨Ø±Ø¯ÙÛ ÙÙÙÚ¯ÙØ±'
+ },
+ anchorId: 'بÙÙ¾ÛÛ ÙØ§Ø³ÙاÙ
ÙÛ ØªÙØ®Ù
',
+ anchorName: 'بÙÙ¾ÛÛ ÙØ§ÙÛ ÙÙÙÚ¯ÙØ±',
+ charset: 'Ø¨ÛØ³ØªÛØ±Û Ø³ÛØ±ÚاÙÛÛ ÙÙÙØ³Ù',
+ cssClasses: 'Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÙÚÙ',
+ emailAddress: 'ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦ÛÙ
ÙÛÙ',
+ emailBody: 'ÙØ§ÙÙÚÛÚ©Û ÙØ§Ù
Ù',
+ emailSubject: 'Ø¨Ø§Ø¨ÙØªÛ ÙØ§Ù
Ù',
+ id: 'ÙØ§Ø³ÙاÙ
Ù',
+ info: 'زاÙÛØ§Ø±Û Ø¨ÛØ³ØªÛر',
+ langCode: 'ÙÛÙ
Ø§Û Ø²Ù
اÙ',
+ langDir: 'ئاراستÙÛ Ø²Ù
اÙ',
+ langDirLTR: 'ÚÙÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)',
+ langDirRTL: 'ÚØ§Ø³Øª Ø¨Û ÚÙÙ¾ (RTL)',
+ menu: 'ÚØ§Ú©Ø³Ø§Ø²Û Ø¨ÛØ³ØªÛر',
+ name: 'ÙØ§Ù',
+ noAnchors: '(ÙÛÚ Ø¬ÛØ±ÛÚ©Û ÙÙÙÚ¯ÙØ± ئاÙ
اد٠ÙÛÙ ÙÙÙ
Ù¾ÙÚÙÛÙ)',
+ noEmail: 'تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦ÛÙ
ÙÛ٠بÙÙÙØ³Ù',
+ noUrl: 'تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر بÙÙÙØ³Ù',
+ other: '<ÙÛØªØ±>',
+ popupDependent: 'Ù¾ÛÙÙØ¨Ùسترا٠(Netscape)',
+ popupFeatures: 'خاسÛÙØªÛ Ù¾ÙÙØ¬ÙرÙÛ Ø³ÙØ±ÙÙÚµØ¯ÙØ±',
+ popupFullScreen: 'Ù¾Ú Ø¨ÙÙ¾ÚÛ Ø´Ø§Ø´Ù (IE)',
+ popupLeft: 'جÛÚ¯Ø§Û ÚÙÙ¾',
+ popupLocationBar: 'ÙÛÚµÛ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر',
+ popupMenuBar: 'ÙÛÚµÛ ÙÛØ³ØªÙ',
+ popupResizable: 'ØªÙØ§ÙØ§Û Ú¯ÛÚÛÙÛ ÙÙØ¨Ø§Ø±Ù',
+ popupScrollBars: 'ÙÛÚµÛ ÙØ§ØªÙÙÚÛÙ¾ÛکردÙ',
+ popupStatusBar: 'ÙÛÚµÛ Ø¯ÛØ®',
+ popupToolbar: 'ÙÛÚµÛ ØªÙÙڵاÙ
راز',
+ popupTop: 'جÛÚ¯Ø§Û Ø³ÙØ±ÙÙÙ',
+ rel: 'Ù¾ÙÛÙÙÙØ¯Û (rel)',
+ selectAnchor: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙÙÚ¯ÙØ±ÛÙ',
+ styles: 'Ø´ÛÙØ§Ø²',
+ tabIndex: 'Ø¨Ø§Ø²Ø¯ÙØ±Û ØªØ§Ø¨Û Ø¦ÛÙØ¯Ûکس',
+ target: 'ئاÙ
Ø§ÙØ¬',
+ targetFrame: '<ÚÙÙØ§Ø±ÚÛÙÙ>',
+ targetFrameName: 'ÙØ§ÙÛ Ø¦Ø§Ù
Ø§ÙØ¬Û ÚÙÙØ§Ø±ÚÛÙÙ',
+ targetPopup: '<Ù¾ÙÙØ¬ÙرÙÛ Ø³ÙØ±ÙÙÚµØ¯ÙØ±>',
+ targetPopupName: 'ÙØ§ÙÛ Ù¾ÙÙØ¬ÙرÙÛ Ø³ÙØ±ÙÙÚµØ¯ÙØ±',
+ title: 'Ø¨ÛØ³ØªÛر',
+ toAnchor: 'Ø¨ÙØ³ØªÙر Ø¨Û ÙÙÙÚ¯ÙØ± Ù٠دÙÙ',
+ toEmail: 'ئÛÙ
ÙÛÙ',
+ toUrl: 'ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر',
+ toolbar: 'Ø¯Ø§ÙØ§Ù/ÚÛکخستÙÛ Ø¨ÛØ³ØªÛر',
+ type: 'Ø¬ÛØ±Û Ø¨ÙØ³ØªÙر',
+ unlink: 'ÙØ§Ø¨Ø±Ø¯ÙÛ Ø¨ÛØ³ØªÛر',
+ upload: 'بارکردÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/lt.js b/devel/third-party/ckeditor/plugins/link/lang/lt.js
new file mode 100644
index 0000000..513cf44
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/lt.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'lt', {
+ acccessKey: 'Prieigos raktas',
+ advanced: 'Papildomas',
+ advisoryContentType: 'Konsultacinio turinio tipas',
+ advisoryTitle: 'KonsultacinÄ antraÅ¡tÄ',
+ anchor: {
+ toolbar: 'Ä®terpti/modifikuoti žymÄ',
+ menu: 'ŽymÄs savybÄs',
+ title: 'ŽymÄs savybÄs',
+ name: 'ŽymÄs vardas',
+ errorName: 'PraÅ¡ome įvesti žymÄs vardÄ
',
+ remove: 'PaÅ¡alinti žymÄ'
+ },
+ anchorId: 'Pagal žymÄs Id',
+ anchorName: 'Pagal žymÄs vardÄ
',
+ charset: 'Susietų iÅ¡teklių simbolių lentelÄ',
+ cssClasses: 'Stilių lentelÄs klasÄs',
+ emailAddress: 'El.pašto adresas',
+ emailBody: 'ŽinutÄs turinys',
+ emailSubject: 'ŽinutÄs tema',
+ id: 'Id',
+ info: 'Nuorodos informacija',
+ langCode: 'Teksto kryptis',
+ langDir: 'Teksto kryptis',
+ langDirLTR: 'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',
+ langDirRTL: 'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',
+ menu: 'Taisyti nuorodÄ
',
+ name: 'Vardas',
+ noAnchors: '(Å iame dokumente žymių nÄra)',
+ noEmail: 'PraÅ¡ome įvesti el.paÅ¡to adresÄ
',
+ noUrl: 'Prašome įvesti nuorodos URL',
+ other: '<kitas>',
+ popupDependent: 'Priklausomas (Netscape)',
+ popupFeatures: 'IÅ¡skleidžiamo lango savybÄs',
+ popupFullScreen: 'Visas ekranas (IE)',
+ popupLeft: 'KairÄ pozicija',
+ popupLocationBar: 'Adreso juosta',
+ popupMenuBar: 'Meniu juosta',
+ popupResizable: 'Kintamas dydis',
+ popupScrollBars: 'Slinkties juostos',
+ popupStatusBar: 'Būsenos juosta',
+ popupToolbar: 'Mygtukų juosta',
+ popupTop: 'VirÅ¡utinÄ pozicija',
+ rel: 'SÄ
sajos',
+ selectAnchor: 'Pasirinkite žymÄ',
+ styles: 'Stilius',
+ tabIndex: 'Tabuliavimo indeksas',
+ target: 'Paskirties vieta',
+ targetFrame: '<kadras>',
+ targetFrameName: 'Paskirties kadro vardas',
+ targetPopup: '<išskleidžiamas langas>',
+ targetPopupName: 'Paskirties lango vardas',
+ title: 'Nuoroda',
+ toAnchor: 'ŽymÄ Å¡iame puslapyje',
+ toEmail: 'El.paštas',
+ toUrl: 'Nuoroda',
+ toolbar: 'Ä®terpti/taisyti nuorodÄ
',
+ type: 'Nuorodos tipas',
+ unlink: 'Panaikinti nuorodÄ
',
+ upload: 'Siųsti'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/lv.js b/devel/third-party/ckeditor/plugins/link/lang/lv.js
new file mode 100644
index 0000000..4c3d050
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/lv.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'lv', {
+ acccessKey: 'Pieejas taustiÅÅ¡',
+ advanced: 'IzvÄrstais',
+ advisoryContentType: 'Konsultatīvs satura tips',
+ advisoryTitle: 'Konsultatīvs virsraksts',
+ anchor: {
+ toolbar: 'Ievietot/Labot iezīmi',
+ menu: 'Labot iezīmi',
+ title: 'IezÄ«mes uzstÄdÄ«jumi',
+ name: 'Iezīmes nosaukums',
+ errorName: 'LÅ«dzu norÄdiet iezÄ«mes nosaukumu',
+ remove: 'NoÅemt iezÄ«mi'
+ },
+ anchorId: 'PÄc elementa ID',
+ anchorName: 'PÄc iezÄ«mes nosaukuma',
+ charset: 'PievienotÄ resursa kodÄjums',
+ cssClasses: 'Stilu saraksta klases',
+ emailAddress: 'E-pasta adrese',
+ emailBody: 'ZiÅas saturs',
+ emailSubject: 'ZiÅas tÄma',
+ id: 'ID',
+ info: 'Hipersaites informÄcija',
+ langCode: 'Valodas kods',
+ langDir: 'Valodas lasīšanas virziens',
+ langDirLTR: 'No kreisÄs uz labo (LTR)',
+ langDirRTL: 'No labÄs uz kreiso (RTL)',
+ menu: 'Labot hipersaiti',
+ name: 'Nosaukums',
+ noAnchors: '(Å ajÄ dokumentÄ nav iezÄ«mju)',
+ noEmail: 'LÅ«dzu norÄdi e-pasta adresi',
+ noUrl: 'LÅ«dzu norÄdi hipersaiti',
+ other: '<cits>',
+ popupDependent: 'Atkarīgs (Netscape)',
+ popupFeatures: 'UznirstoÅ¡Ä loga nosaukums Ä«pašības',
+ popupFullScreen: 'PilnÄ ekrÄnÄ (IE)',
+ popupLeft: 'KreisÄ koordinÄte',
+ popupLocationBar: 'AtraÅ¡anÄs vietas josla',
+ popupMenuBar: 'IzvÄlnes josla',
+ popupResizable: 'MÄrogojams',
+ popupScrollBars: 'Ritjoslas',
+ popupStatusBar: 'Statusa josla',
+ popupToolbar: 'Rīku josla',
+ popupTop: 'AugÅ¡ÄjÄ koordinÄte',
+ rel: 'RelÄcija',
+ selectAnchor: 'IzvÄlÄties iezÄ«mi',
+ styles: 'Stils',
+ tabIndex: 'CiļÅu indekss',
+ target: 'MÄrÄ·is',
+ targetFrame: '<ietvars>',
+ targetFrameName: 'MÄrÄ·a ietvara nosaukums',
+ targetPopup: '<uznirstoÅ¡Ä logÄ>',
+ targetPopupName: 'UznirstoÅ¡Ä loga nosaukums',
+ title: 'Hipersaite',
+ toAnchor: 'IezÄ«me Å¡ajÄ lapÄ',
+ toEmail: 'E-pasts',
+ toUrl: 'Adrese',
+ toolbar: 'Ievietot/Labot hipersaiti',
+ type: 'Hipersaites tips',
+ unlink: 'NoÅemt hipersaiti',
+ upload: 'AugÅ¡upielÄdÄt'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/mk.js b/devel/third-party/ckeditor/plugins/link/lang/mk.js
new file mode 100644
index 0000000..61f255f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/mk.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'mk', {
+ acccessKey: 'Access Key', // MISSING
+ advanced: 'Advanced', // MISSING
+ advisoryContentType: 'Advisory Content Type', // MISSING
+ advisoryTitle: 'Advisory Title', // MISSING
+ anchor: {
+ toolbar: 'Anchor',
+ menu: 'Edit Anchor',
+ title: 'Anchor Properties',
+ name: 'Anchor Name',
+ errorName: 'Please type the anchor name',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'By Element Id', // MISSING
+ anchorName: 'By Anchor Name', // MISSING
+ charset: 'Linked Resource Charset', // MISSING
+ cssClasses: 'Stylesheet Classes', // MISSING
+ emailAddress: 'E-Mail Address', // MISSING
+ emailBody: 'Message Body', // MISSING
+ emailSubject: 'Message Subject', // MISSING
+ id: 'Id', // MISSING
+ info: 'Link Info', // MISSING
+ langCode: 'Language Code', // MISSING
+ langDir: 'Language Direction', // MISSING
+ langDirLTR: 'Left to Right (LTR)', // MISSING
+ langDirRTL: 'Right to Left (RTL)', // MISSING
+ menu: 'Edit Link', // MISSING
+ name: 'Name',
+ noAnchors: '(No anchors available in the document)', // MISSING
+ noEmail: 'Please type the e-mail address', // MISSING
+ noUrl: 'Please type the link URL', // MISSING
+ other: '<other>', // MISSING
+ popupDependent: 'Dependent (Netscape)', // MISSING
+ popupFeatures: 'Popup Window Features', // MISSING
+ popupFullScreen: 'Full Screen (IE)', // MISSING
+ popupLeft: 'Left Position', // MISSING
+ popupLocationBar: 'Location Bar', // MISSING
+ popupMenuBar: 'Menu Bar', // MISSING
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Scroll Bars', // MISSING
+ popupStatusBar: 'Status Bar', // MISSING
+ popupToolbar: 'Toolbar', // MISSING
+ popupTop: 'Top Position', // MISSING
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Select an Anchor', // MISSING
+ styles: 'Style', // MISSING
+ tabIndex: 'Tab Index', // MISSING
+ target: 'Target', // MISSING
+ targetFrame: '<frame>', // MISSING
+ targetFrameName: 'Target Frame Name', // MISSING
+ targetPopup: '<popup window>', // MISSING
+ targetPopupName: 'Popup Window Name', // MISSING
+ title: 'Link', // MISSING
+ toAnchor: 'Link to anchor in the text', // MISSING
+ toEmail: 'E-mail', // MISSING
+ toUrl: 'URL', // MISSING
+ toolbar: 'Link', // MISSING
+ type: 'Link Type', // MISSING
+ unlink: 'Unlink', // MISSING
+ upload: 'Upload' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/mn.js b/devel/third-party/ckeditor/plugins/link/lang/mn.js
new file mode 100644
index 0000000..c605fcf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/mn.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'mn', {
+ acccessKey: 'ХолбоÑ
ÑүлÑ
Ò¯Ò¯Ñ',
+ advanced: 'ÐÑмÑлÑ',
+ advisoryContentType: 'ÐөвлөлдөÑ
ÑÓ©Ñлийн агÑÑлга',
+ advisoryTitle: 'ÐөвлөлдөÑ
гаÑÑиг',
+ anchor: {
+ toolbar: 'ÐангÑÑ',
+ menu: 'ÐангÑÑг болоÑÑÑÑлаÑ
',
+ title: 'ÐангÑÑгийн Ñинж ÑанаÑ',
+ name: 'ÐангÑÑгийн нÑÑ',
+ errorName: 'ÐангÑÑгийн нÑÑийг оÑÑÑлна ÑÑ',
+ remove: 'ÐангÑÑг ÑÑÑгаÑ
'
+ },
+ anchorId: 'ÐлемÑнÑйн Id нÑÑÑÑÑ',
+ anchorName: 'ÐангÑÑгийн нÑÑÑÑÑ',
+ charset: 'ТÑмдÑÐ³Ñ Ð¾Ð½Ð¾Ð¾Ñ
нөөÑөд Ñ
олбогдÑон',
+ cssClasses: 'Stylesheet клаÑÑÑÑд',
+ emailAddress: 'Ð-ÑÑÑдангийн Ñ
аÑг',
+ emailBody: 'ÐÑÑваÑÐ½Ñ Ð¸Ñ
бие',
+ emailSubject: 'ÐÑÑваÑÐ½Ñ Ð³Ð°ÑÑиг',
+ id: 'Id',
+ info: 'ХолбооÑÑн ÑÑÑ
ай мÑдÑÑлÑл',
+ langCode: 'Ð¥Ñлний код',
+ langDir: 'Ð¥Ñлний ÑиглÑл',
+ langDirLTR: 'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)',
+ langDirRTL: 'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)',
+ menu: 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°ÑваÑлаÑ
',
+ name: 'ÐÑÑ',
+ noAnchors: '(ÐаÑÐ¸Ð¼Ñ Ð±Ð¸Ñиг зангÑÑгүй байна)',
+ noEmail: 'Ð-ÑÑÑдангий Ñ
аÑгаа ÑÐ¸Ð²Ð½Ñ Ò¯Ò¯',
+ noUrl: 'ХолбооÑÐ½Ñ URL Ñ
аÑгийг ÑÐ¸Ð²Ð½Ñ Ò¯Ò¯',
+ other: '<other>', // MISSING
+ popupDependent: 'ХамааÑай (Netscape)',
+ popupFeatures: 'Popup ÑонÑ
Ð½Ñ Ð¾Ð½Ñлог',
+ popupFullScreen: 'ЦонÑ
дүүÑгÑÑ
(Internet Explorer)',
+ popupLeft: 'Ðүүн байÑлал',
+ popupLocationBar: 'Location Ñ
ÑÑÑг',
+ popupMenuBar: 'ЦÑÑний ÑамбаÑ',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'СкÑол Ñ
ÑÑÑгүүд',
+ popupStatusBar: 'СÑаÑÑÑ Ñ
ÑÑÑг',
+ popupToolbar: 'ÐÐ°Ð³Ð°Ð¶Ð½Ñ ÑамбаÑ',
+ popupTop: 'ÐÑÑд байÑлал',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'ÐÑг зангÑÑг Ñонгоно ÑÑ',
+ styles: 'ÐагваÑ',
+ tabIndex: 'Tab индекÑ',
+ target: 'ÐайÑлал',
+ targetFrame: '<ÐгÑÑлаÑ
Ñ
Ò¯ÑÑÑ>',
+ targetFrameName: 'ÐÑиÑ
ÑÑемÑн нÑÑ',
+ targetPopup: '<popup ÑонÑ
>',
+ targetPopupName: 'Popup ÑонÑ
Ð½Ñ Ð½ÑÑ',
+ title: 'ХолбооÑ',
+ toAnchor: 'ÐÐ½Ñ Ð±Ð¸ÑвÑÑ Ð´ÑÑ
зангÑÑ ÑÑÑ Ð¾ÑиÑ
Ñ
олбооÑ',
+ toEmail: 'Ð-заÑ
иа',
+ toUrl: 'ÑаÑ
им Ñ
ÑÑдаÑÐ½Ñ Ñ
аÑг (URL)',
+ toolbar: 'ХолбооÑ',
+ type: 'Ðинкийн ÑÓ©Ñөл',
+ unlink: 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð°Ð²Ñ Ñ
аÑÑ
',
+ upload: 'Ð¥ÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ms.js b/devel/third-party/ckeditor/plugins/link/lang/ms.js
new file mode 100644
index 0000000..92e9954
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ms.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ms', {
+ acccessKey: 'Kunci Akses',
+ advanced: 'Advanced',
+ advisoryContentType: 'Jenis Kandungan Makluman',
+ advisoryTitle: 'Tajuk Makluman',
+ anchor: {
+ toolbar: 'Masukkan/Sunting Pautan',
+ menu: 'Ciri-ciri Pautan',
+ title: 'Ciri-ciri Pautan',
+ name: 'Nama Pautan',
+ errorName: 'Sila taip nama pautan',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'dengan menggunakan ID elemen',
+ anchorName: 'dengan menggunakan nama pautan',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Kelas-kelas Stylesheet',
+ emailAddress: 'Alamat E-Mail',
+ emailBody: 'Isi Kandungan Mesej',
+ emailSubject: 'Subjek Mesej',
+ id: 'Id',
+ info: 'Butiran Sambungan',
+ langCode: 'Arah Tulisan',
+ langDir: 'Arah Tulisan',
+ langDirLTR: 'Kiri ke Kanan (LTR)',
+ langDirRTL: 'Kanan ke Kiri (RTL)',
+ menu: 'Sunting Sambungan',
+ name: 'Nama',
+ noAnchors: '(Tiada pautan terdapat dalam dokumen ini)',
+ noEmail: 'Sila taip alamat e-mail',
+ noUrl: 'Sila taip sambungan URL',
+ other: '<lain>',
+ popupDependent: 'Bergantungan (Netscape)',
+ popupFeatures: 'Ciri Tetingkap Popup',
+ popupFullScreen: 'Skrin Penuh (IE)',
+ popupLeft: 'Posisi Kiri',
+ popupLocationBar: 'Bar Lokasi',
+ popupMenuBar: 'Bar Menu',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Bar-bar skrol',
+ popupStatusBar: 'Bar Status',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Posisi Atas',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Sila pilih pautan',
+ styles: 'Stail',
+ tabIndex: 'Indeks Tab ',
+ target: 'Sasaran',
+ targetFrame: '<bingkai>',
+ targetFrameName: 'Nama Bingkai Sasaran',
+ targetPopup: '<tetingkap popup>',
+ targetPopupName: 'Nama Tetingkap Popup',
+ title: 'Sambungan',
+ toAnchor: 'Pautan dalam muka surat ini',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Masukkan/Sunting Sambungan',
+ type: 'Jenis Sambungan',
+ unlink: 'Buang Sambungan',
+ upload: 'Muat Naik'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/nb.js b/devel/third-party/ckeditor/plugins/link/lang/nb.js
new file mode 100644
index 0000000..323e1d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/nb.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'nb', {
+ acccessKey: 'Aksessknapp',
+ advanced: 'Avansert',
+ advisoryContentType: 'Type',
+ advisoryTitle: 'Tittel',
+ anchor: {
+ toolbar: 'Sett inn/Rediger anker',
+ menu: 'Egenskaper for anker',
+ title: 'Egenskaper for anker',
+ name: 'Ankernavn',
+ errorName: 'Vennligst skriv inn ankernavnet',
+ remove: 'Fjern anker'
+ },
+ anchorId: 'Element etter ID',
+ anchorName: 'Anker etter navn',
+ charset: 'Lenket tegnsett',
+ cssClasses: 'Stilarkklasser',
+ emailAddress: 'E-postadresse',
+ emailBody: 'Melding',
+ emailSubject: 'Meldingsemne',
+ id: 'Id',
+ info: 'Lenkeinfo',
+ langCode: 'Språkkode',
+ langDir: 'Språkretning',
+ langDirLTR: 'Venstre til høyre (VTH)',
+ langDirRTL: 'Høyre til venstre (HTV)',
+ menu: 'Rediger lenke',
+ name: 'Navn',
+ noAnchors: '(Ingen anker i dokumentet)',
+ noEmail: 'Vennligst skriv inn e-postadressen',
+ noUrl: 'Vennligst skriv inn lenkens URL',
+ other: '<annen>',
+ popupDependent: 'Avhenging (Netscape)',
+ popupFeatures: 'Egenskaper for popup-vindu',
+ popupFullScreen: 'Fullskjerm (IE)',
+ popupLeft: 'Venstre posisjon',
+ popupLocationBar: 'Adresselinje',
+ popupMenuBar: 'Menylinje',
+ popupResizable: 'Skalerbar',
+ popupScrollBars: 'Scrollbar',
+ popupStatusBar: 'Statuslinje',
+ popupToolbar: 'Verktøylinje',
+ popupTop: 'Topp-posisjon',
+ rel: 'Relasjon (rel)',
+ selectAnchor: 'Velg et anker',
+ styles: 'Stil',
+ tabIndex: 'Tabindeks',
+ target: 'MÃ¥l',
+ targetFrame: '<ramme>',
+ targetFrameName: 'MÃ¥lramme',
+ targetPopup: '<popup-vindu>',
+ targetPopupName: 'Navn på popup-vindu',
+ title: 'Lenke',
+ toAnchor: 'Lenke til anker i teksten',
+ toEmail: 'E-post',
+ toUrl: 'URL',
+ toolbar: 'Sett inn/Rediger lenke',
+ type: 'Lenketype',
+ unlink: 'Fjern lenke',
+ upload: 'Last opp'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/nl.js b/devel/third-party/ckeditor/plugins/link/lang/nl.js
new file mode 100644
index 0000000..af7b1f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/nl.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'nl', {
+ acccessKey: 'Toegangstoets',
+ advanced: 'Geavanceerd',
+ advisoryContentType: 'Aanbevolen content-type',
+ advisoryTitle: 'Adviserende titel',
+ anchor: {
+ toolbar: 'Interne link',
+ menu: 'Eigenschappen interne link',
+ title: 'Eigenschappen interne link',
+ name: 'Naam interne link',
+ errorName: 'Geef de naam van de interne link op',
+ remove: 'Interne link verwijderen'
+ },
+ anchorId: 'Op kenmerk interne link',
+ anchorName: 'Op naam interne link',
+ charset: 'Karakterset van gelinkte bron',
+ cssClasses: 'Stylesheet-klassen',
+ emailAddress: 'E-mailadres',
+ emailBody: 'Inhoud bericht',
+ emailSubject: 'Onderwerp bericht',
+ id: 'Id',
+ info: 'Linkomschrijving',
+ langCode: 'Taalcode',
+ langDir: 'Schrijfrichting',
+ langDirLTR: 'Links naar rechts (LTR)',
+ langDirRTL: 'Rechts naar links (RTL)',
+ menu: 'Link wijzigen',
+ name: 'Naam',
+ noAnchors: '(Geen interne links in document gevonden)',
+ noEmail: 'Geef een e-mailadres',
+ noUrl: 'Geef de link van de URL',
+ other: '<ander>',
+ popupDependent: 'Afhankelijk (Netscape)',
+ popupFeatures: 'Instellingen popupvenster',
+ popupFullScreen: 'Volledig scherm (IE)',
+ popupLeft: 'Positie links',
+ popupLocationBar: 'Locatiemenu',
+ popupMenuBar: 'Menubalk',
+ popupResizable: 'Herschaalbaar',
+ popupScrollBars: 'Schuifbalken',
+ popupStatusBar: 'Statusbalk',
+ popupToolbar: 'Werkbalk',
+ popupTop: 'Positie boven',
+ rel: 'Relatie',
+ selectAnchor: 'Kies een interne link',
+ styles: 'Stijl',
+ tabIndex: 'Tabvolgorde',
+ target: 'Doelvenster',
+ targetFrame: '<frame>',
+ targetFrameName: 'Naam doelframe',
+ targetPopup: '<popupvenster>',
+ targetPopupName: 'Naam popupvenster',
+ title: 'Link',
+ toAnchor: 'Interne link in pagina',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Link invoegen/wijzigen',
+ type: 'Linktype',
+ unlink: 'Link verwijderen',
+ upload: 'Upload'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/no.js b/devel/third-party/ckeditor/plugins/link/lang/no.js
new file mode 100644
index 0000000..77860a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/no.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'no', {
+ acccessKey: 'Aksessknapp',
+ advanced: 'Avansert',
+ advisoryContentType: 'Type',
+ advisoryTitle: 'Tittel',
+ anchor: {
+ toolbar: 'Sett inn/Rediger anker',
+ menu: 'Egenskaper for anker',
+ title: 'Egenskaper for anker',
+ name: 'Ankernavn',
+ errorName: 'Vennligst skriv inn ankernavnet',
+ remove: 'Fjern anker'
+ },
+ anchorId: 'Element etter ID',
+ anchorName: 'Anker etter navn',
+ charset: 'Lenket tegnsett',
+ cssClasses: 'Stilarkklasser',
+ emailAddress: 'E-postadresse',
+ emailBody: 'Melding',
+ emailSubject: 'Meldingsemne',
+ id: 'Id',
+ info: 'Lenkeinfo',
+ langCode: 'Språkkode',
+ langDir: 'Språkretning',
+ langDirLTR: 'Venstre til høyre (VTH)',
+ langDirRTL: 'Høyre til venstre (HTV)',
+ menu: 'Rediger lenke',
+ name: 'Navn',
+ noAnchors: '(Ingen anker i dokumentet)',
+ noEmail: 'Vennligst skriv inn e-postadressen',
+ noUrl: 'Vennligst skriv inn lenkens URL',
+ other: '<annen>',
+ popupDependent: 'Avhenging (Netscape)',
+ popupFeatures: 'Egenskaper for popup-vindu',
+ popupFullScreen: 'Fullskjerm (IE)',
+ popupLeft: 'Venstre posisjon',
+ popupLocationBar: 'Adresselinje',
+ popupMenuBar: 'Menylinje',
+ popupResizable: 'Skalerbar',
+ popupScrollBars: 'Scrollbar',
+ popupStatusBar: 'Statuslinje',
+ popupToolbar: 'Verktøylinje',
+ popupTop: 'Topp-posisjon',
+ rel: 'Relasjon (rel)',
+ selectAnchor: 'Velg et anker',
+ styles: 'Stil',
+ tabIndex: 'Tabindeks',
+ target: 'MÃ¥l',
+ targetFrame: '<ramme>',
+ targetFrameName: 'MÃ¥lramme',
+ targetPopup: '<popup-vindu>',
+ targetPopupName: 'Navn på popup-vindu',
+ title: 'Lenke',
+ toAnchor: 'Lenke til anker i teksten',
+ toEmail: 'E-post',
+ toUrl: 'URL',
+ toolbar: 'Sett inn/Rediger lenke',
+ type: 'Lenketype',
+ unlink: 'Fjern lenke',
+ upload: 'Last opp'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/pl.js b/devel/third-party/ckeditor/plugins/link/lang/pl.js
new file mode 100644
index 0000000..2f84902
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/pl.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'pl', {
+ acccessKey: 'Klawisz dostÄpu',
+ advanced: 'Zaawansowane',
+ advisoryContentType: 'Typ MIME obiektu docelowego',
+ advisoryTitle: 'Opis obiektu docelowego',
+ anchor: {
+ toolbar: 'Wstaw/edytuj kotwicÄ',
+ menu: 'WÅaÅciwoÅci kotwicy',
+ title: 'WÅaÅciwoÅci kotwicy',
+ name: 'Nazwa kotwicy',
+ errorName: 'Wpisz nazwÄ kotwicy',
+ remove: 'UsuÅ kotwicÄ'
+ },
+ anchorId: 'Wg identyfikatora',
+ anchorName: 'Wg nazwy',
+ charset: 'Kodowanie znaków obiektu docelowego',
+ cssClasses: 'Nazwa klasy CSS',
+ emailAddress: 'Adres e-mail',
+ emailBody: 'TreÅÄ',
+ emailSubject: 'Temat',
+ id: 'Id',
+ info: 'Informacje ',
+ langCode: 'Kod jÄzyka',
+ langDir: 'Kierunek tekstu',
+ langDirLTR: 'Od lewej do prawej (LTR)',
+ langDirRTL: 'Od prawej do lewej (RTL)',
+ menu: 'Edytuj odnoÅnik',
+ name: 'Nazwa',
+ noAnchors: '(W dokumencie nie zdefiniowano żadnych kotwic)',
+ noEmail: 'Podaj adres e-mail',
+ noUrl: 'Podaj adres URL',
+ other: '<inny>',
+ popupDependent: 'Okno zależne (Netscape)',
+ popupFeatures: 'WÅaÅciwoÅci wyskakujÄ
cego okna',
+ popupFullScreen: 'PeÅny ekran (IE)',
+ popupLeft: 'Pozycja w poziomie',
+ popupLocationBar: 'Pasek adresu',
+ popupMenuBar: 'Pasek menu',
+ popupResizable: 'Skalowalny',
+ popupScrollBars: 'Paski przewijania',
+ popupStatusBar: 'Pasek statusu',
+ popupToolbar: 'Pasek narzÄdzi',
+ popupTop: 'Pozycja w pionie',
+ rel: 'Relacja',
+ selectAnchor: 'Wybierz kotwicÄ',
+ styles: 'Styl',
+ tabIndex: 'Indeks kolejnoÅci',
+ target: 'Obiekt docelowy',
+ targetFrame: '<ramka>',
+ targetFrameName: 'Nazwa ramki docelowej',
+ targetPopup: '<wyskakujÄ
ce okno>',
+ targetPopupName: 'Nazwa wyskakujÄ
cego okna',
+ title: 'OdnoÅnik',
+ toAnchor: 'OdnoÅnik wewnÄ
trz strony (kotwica)',
+ toEmail: 'Adres e-mail',
+ toUrl: 'Adres URL',
+ toolbar: 'Wstaw/edytuj odnoÅnik',
+ type: 'Typ odnoÅnika',
+ unlink: 'UsuÅ odnoÅnik',
+ upload: 'WyÅlij'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/pt-br.js b/devel/third-party/ckeditor/plugins/link/lang/pt-br.js
new file mode 100644
index 0000000..121d170
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/pt-br.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'pt-br', {
+ acccessKey: 'Chave de Acesso',
+ advanced: 'Avançado',
+ advisoryContentType: 'Tipo de Conteúdo',
+ advisoryTitle: 'TÃtulo',
+ anchor: {
+ toolbar: 'Inserir/Editar Ãncora',
+ menu: 'Formatar Ãncora',
+ title: 'Formatar Ãncora',
+ name: 'Nome da Ãncora',
+ errorName: 'Por favor, digite o nome da âncora',
+ remove: 'Remover Ãncora'
+ },
+ anchorId: 'Id da âncora',
+ anchorName: 'Nome da âncora',
+ charset: 'Charset do Link',
+ cssClasses: 'Classe de CSS',
+ emailAddress: 'Endereço E-Mail',
+ emailBody: 'Corpo da Mensagem',
+ emailSubject: 'Assunto da Mensagem',
+ id: 'Id',
+ info: 'Informações',
+ langCode: 'Direção do idioma',
+ langDir: 'Direção do idioma',
+ langDirLTR: 'Esquerda para Direita (LTR)',
+ langDirRTL: 'Direita para Esquerda (RTL)',
+ menu: 'Editar Link',
+ name: 'Nome',
+ noAnchors: '(Não há âncoras no documento)',
+ noEmail: 'Por favor, digite o endereço de e-mail',
+ noUrl: 'Por favor, digite o endereço do Link',
+ other: '<outro>',
+ popupDependent: 'Dependente (Netscape)',
+ popupFeatures: 'Propriedades da Janela Pop-up',
+ popupFullScreen: 'Modo Tela Cheia (IE)',
+ popupLeft: 'Esquerda',
+ popupLocationBar: 'Barra de Endereços',
+ popupMenuBar: 'Barra de Menus',
+ popupResizable: 'Redimensionável',
+ popupScrollBars: 'Barras de Rolagem',
+ popupStatusBar: 'Barra de Status',
+ popupToolbar: 'Barra de Ferramentas',
+ popupTop: 'Topo',
+ rel: 'Tipo de Relação',
+ selectAnchor: 'Selecione uma âncora',
+ styles: 'Estilos',
+ tabIndex: 'Ãndice de Tabulação',
+ target: 'Destino',
+ targetFrame: '<frame>',
+ targetFrameName: 'Nome do Frame de Destino',
+ targetPopup: '<janela popup>',
+ targetPopupName: 'Nome da Janela Pop-up',
+ title: 'Editar Link',
+ toAnchor: 'Ãncora nesta página',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Inserir/Editar Link',
+ type: 'Tipo de hiperlink',
+ unlink: 'Remover Link',
+ upload: 'Enviar ao Servidor'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/pt.js b/devel/third-party/ckeditor/plugins/link/lang/pt.js
new file mode 100644
index 0000000..4314da9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/pt.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'pt', {
+ acccessKey: 'Chave de Acesso',
+ advanced: 'Avançado',
+ advisoryContentType: 'Tipo de Conteúdo',
+ advisoryTitle: 'TÃtulo',
+ anchor: {
+ toolbar: ' Inserir/Editar Ãncora',
+ menu: 'Propriedades da Ãncora',
+ title: 'Propriedades da Ãncora',
+ name: 'Nome da Ãncora',
+ errorName: 'Por favor, introduza o nome da âncora',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Por ID de elemento',
+ anchorName: 'Por Nome de Referência',
+ charset: 'Fonte de caracteres vinculado',
+ cssClasses: 'Classes de Estilo de Folhas Classes',
+ emailAddress: 'Endereço de E-Mail',
+ emailBody: 'Corpo da Mensagem',
+ emailSubject: 'TÃtulo de Mensagem',
+ id: 'ID',
+ info: 'Informação de Hiperligação',
+ langCode: 'Orientação de idioma',
+ langDir: 'Orientação de idioma',
+ langDirLTR: 'Esquerda à Direita (LTR)',
+ langDirRTL: 'Direita a Esquerda (RTL)',
+ menu: 'Editar Hiperligação',
+ name: 'Nome',
+ noAnchors: '(Não há referências disponÃveis no documento)',
+ noEmail: 'Por favor introduza o endereço de e-mail',
+ noUrl: 'Por favor introduza a hiperligação URL',
+ other: '<outro>',
+ popupDependent: 'Dependente (Netscape)',
+ popupFeatures: 'CaracterÃsticas de Janela de Popup',
+ popupFullScreen: 'Janela Completa (IE)',
+ popupLeft: 'Posição Esquerda',
+ popupLocationBar: 'Barra de localização',
+ popupMenuBar: 'Barra de Menu',
+ popupResizable: 'Redimensionável',
+ popupScrollBars: 'Barras de deslocamento',
+ popupStatusBar: 'Barra de Estado',
+ popupToolbar: 'Barra de Ferramentas',
+ popupTop: 'Posição Direita',
+ rel: 'Relação',
+ selectAnchor: 'Seleccionar una referência',
+ styles: 'Estilo',
+ tabIndex: 'Ãndice de Tubulação',
+ target: 'Destino',
+ targetFrame: '<Frame>',
+ targetFrameName: 'Nome do Frame Destino',
+ targetPopup: '<Janela de popup>',
+ targetPopupName: 'Nome da Janela de Popup',
+ title: 'Hiperligação',
+ toAnchor: 'Referência a esta página',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Inserir/Editar Hiperligação',
+ type: 'Tipo de Hiperligação',
+ unlink: 'Eliminar Hiperligação',
+ upload: 'Carregar'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ro.js b/devel/third-party/ckeditor/plugins/link/lang/ro.js
new file mode 100644
index 0000000..cdbec4f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ro.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ro', {
+ acccessKey: 'Tasta de acces',
+ advanced: 'Avansat',
+ advisoryContentType: 'Tipul consultativ al titlului',
+ advisoryTitle: 'Titlul consultativ',
+ anchor: {
+ toolbar: 'InsereazÄ/EditeazÄ ancorÄ',
+ menu: 'ProprietÄÅ£i ancorÄ',
+ title: 'ProprietÄÅ£i ancorÄ',
+ name: 'Numele ancorei',
+ errorName: 'VÄ rugÄm scrieÅ£i numele ancorei',
+ remove: 'EliminÄ ancora'
+ },
+ anchorId: 'dupÄ Id-ul elementului',
+ anchorName: 'dupÄ numele ancorei',
+ charset: 'Setul de caractere al resursei legate',
+ cssClasses: 'Clasele cu stilul paginii (CSS)',
+ emailAddress: 'AdresÄ de e-mail',
+ emailBody: 'OpÈiuni Meniu Contextual',
+ emailSubject: 'Subiectul mesajului',
+ id: 'Id',
+ info: 'InformaÅ£ii despre link (LegÄturÄ web)',
+ langCode: 'Direcţia cuvintelor',
+ langDir: 'Direcţia cuvintelor',
+ langDirLTR: 'stânga-dreapta (LTR)',
+ langDirRTL: 'dreapta-stânga (RTL)',
+ menu: 'EditeazÄ Link',
+ name: 'Nume',
+ noAnchors: '(Nicio ancorÄ disponibilÄ Ã®n document)',
+ noEmail: 'VÄ rugÄm sÄ scrieÅ£i adresa de e-mail',
+ noUrl: 'VÄ rugÄm sÄ scrieÅ£i URL-ul',
+ other: '<alt>',
+ popupDependent: 'Dependent (Netscape)',
+ popupFeatures: 'ProprietÄÅ£ile ferestrei popup',
+ popupFullScreen: 'Tot ecranul (Full Screen)(IE)',
+ popupLeft: 'Poziţia la stânga',
+ popupLocationBar: 'Bara de locaţie',
+ popupMenuBar: 'Bara de meniu',
+ popupResizable: 'Redimensionabil',
+ popupScrollBars: 'Bare de derulare',
+ popupStatusBar: 'Bara de status',
+ popupToolbar: 'Bara de opţiuni',
+ popupTop: 'Poziţia la dreapta',
+ rel: 'RelaÈie',
+ selectAnchor: 'SelectaÅ£i o ancorÄ',
+ styles: 'Stil',
+ tabIndex: 'Indexul tabului',
+ target: 'Å¢intÄ (Target)',
+ targetFrame: '<frame>',
+ targetFrameName: 'Numele frameului Å£intÄ',
+ targetPopup: '<fereastra popup>',
+ targetPopupName: 'Numele ferestrei popup',
+ title: 'Link (LegÄturÄ web)',
+ toAnchor: 'AncorÄ Ã®n aceastÄ paginÄ',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'InsereazÄ/EditeazÄ link (legÄturÄ web)',
+ type: 'Tipul link-ului (al legÄturii web)',
+ unlink: 'ÃnlÄturÄ link (legÄturÄ web)',
+ upload: 'ÃncarcÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ru.js b/devel/third-party/ckeditor/plugins/link/lang/ru.js
new file mode 100644
index 0000000..3dbb275
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ru.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ru', {
+ acccessKey: 'ÐлавиÑа доÑÑÑпа',
+ advanced: 'ÐополниÑелÑно',
+ advisoryContentType: 'Тип ÑодеÑжимого',
+ advisoryTitle: 'Ðаголовок',
+ anchor: {
+ toolbar: 'ÐÑÑавиÑÑ / ÑедакÑиÑоваÑÑ ÑкоÑÑ',
+ menu: 'ÐзмениÑÑ ÑкоÑÑ',
+ title: 'СвойÑÑва ÑкоÑÑ',
+ name: 'ÐÐ¼Ñ ÑкоÑÑ',
+ errorName: 'ÐожалÑйÑÑа, введиÑе Ð¸Ð¼Ñ ÑкоÑÑ',
+ remove: 'УдалиÑÑ ÑкоÑÑ'
+ },
+ anchorId: 'Ðо иденÑиÑикаÑоÑÑ',
+ anchorName: 'Ðо имени',
+ charset: 'ÐодиÑовка ÑеÑÑÑÑа',
+ cssClasses: 'ÐлаÑÑÑ CSS',
+ emailAddress: 'Email адÑеÑ',
+ emailBody: 'ТекÑÑ ÑообÑениÑ',
+ emailSubject: 'Тема ÑообÑениÑ',
+ id: 'ÐденÑиÑикаÑоÑ',
+ info: 'ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑÑÑлке',
+ langCode: 'Ðод ÑзÑка',
+ langDir: 'ÐапÑавление ÑекÑÑа',
+ langDirLTR: 'Слева напÑаво (LTR)',
+ langDirRTL: 'СпÑава налево (RTL)',
+ menu: 'РедакÑиÑоваÑÑ ÑÑÑлкÑ',
+ name: 'ÐмÑ',
+ noAnchors: '(РдокÑменÑе Ð½ÐµÑ Ð½Ð¸ одного ÑкоÑÑ)',
+ noEmail: 'ÐожалÑйÑÑа, введиÑе email адÑеÑ',
+ noUrl: 'ÐожалÑйÑÑа, введиÑе ÑÑÑлкÑ',
+ other: '<дÑÑгой>',
+ popupDependent: 'ÐавиÑимое (Netscape)',
+ popupFeatures: 'ÐаÑамеÑÑÑ Ð²ÑплÑваÑÑего окна',
+ popupFullScreen: 'ÐолноÑкÑанное (IE)',
+ popupLeft: 'ÐÑÑÑÑп Ñлева',
+ popupLocationBar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð°Ð´ÑеÑа',
+ popupMenuBar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ',
+ popupResizable: 'ÐзменÑемÑй ÑазмеÑ',
+ popupScrollBars: 'ÐолоÑÑ Ð¿ÑокÑÑÑки',
+ popupStatusBar: 'СÑÑока ÑоÑÑоÑниÑ',
+ popupToolbar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',
+ popupTop: 'ÐÑÑÑÑп ÑвеÑÑ
Ñ',
+ rel: 'ÐÑноÑение',
+ selectAnchor: 'ÐÑбеÑиÑе ÑкоÑÑ',
+ styles: 'СÑилÑ',
+ tabIndex: 'ÐоÑледоваÑелÑноÑÑÑ Ð¿ÐµÑеÑ
ода',
+ target: 'ЦелÑ',
+ targetFrame: '<ÑÑейм>',
+ targetFrameName: 'ÐÐ¼Ñ Ñелевого ÑÑейма',
+ targetPopup: '<вÑплÑваÑÑее окно>',
+ targetPopupName: 'ÐÐ¼Ñ Ð²ÑплÑваÑÑего окна',
+ title: 'СÑÑлка',
+ toAnchor: 'СÑÑлка на ÑкоÑÑ Ð² ÑекÑÑе',
+ toEmail: 'Email',
+ toUrl: 'СÑÑлка',
+ toolbar: 'ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑÑÑлкÑ',
+ type: 'Тип ÑÑÑлки',
+ unlink: 'УбÑаÑÑ ÑÑÑлкÑ',
+ upload: 'ÐагÑÑзка'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/sk.js b/devel/third-party/ckeditor/plugins/link/lang/sk.js
new file mode 100644
index 0000000..8146346
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/sk.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sk', {
+ acccessKey: 'PrÃstupový kľúÄ',
+ advanced: 'RozÅ¡Ãrené',
+ advisoryContentType: 'Pomocný typ obsahu',
+ advisoryTitle: 'Pomocný titulok',
+ anchor: {
+ toolbar: 'Kotva',
+ menu: 'Upraviť kotvu',
+ title: 'Vlastnosti kotvy',
+ name: 'Názov kotvy',
+ errorName: 'Zadajte prosÃm názov kotvy',
+ remove: 'Odstrániť kotvu'
+ },
+ anchorId: 'Podľa Id objektu',
+ anchorName: 'Podľa mena kotvy',
+ charset: 'Priradená znaková sada',
+ cssClasses: 'Triedy štýlu',
+ emailAddress: 'E-Mailová adresa',
+ emailBody: 'Telo správy',
+ emailSubject: 'Predmet správy',
+ id: 'Id',
+ info: 'Informácie o odkaze',
+ langCode: 'Orientácia jazyka',
+ langDir: 'Orientácia jazyka',
+ langDirLTR: 'Zľava doprava (LTR)',
+ langDirRTL: 'Sprava doľava (RTL)',
+ menu: 'Upraviť odkaz',
+ name: 'Názov',
+ noAnchors: '(V dokumente nie sú dostupné žiadne kotvy)',
+ noEmail: 'Zadajte prosÃm e-mailovú adresu',
+ noUrl: 'Zadajte prosÃm URL odkazu',
+ other: '<iný>',
+ popupDependent: 'Závislosť (Netscape)',
+ popupFeatures: 'Vlastnosti vyskakovacieho okna',
+ popupFullScreen: 'Celá obrazovka (IE)',
+ popupLeft: 'Ľavý okraj',
+ popupLocationBar: 'Panel umiestnenia (location bar)',
+ popupMenuBar: 'Panel ponuky (menu bar)',
+ popupResizable: 'Meniteľná veľkosť (resizable)',
+ popupScrollBars: 'PosuvnÃky (scroll bars)',
+ popupStatusBar: 'Stavový riadok (status bar)',
+ popupToolbar: 'Panel nástrojov (toolbar)',
+ popupTop: 'Horný okraj',
+ rel: 'Vzťah (rel)',
+ selectAnchor: 'Vybrať kotvu',
+ styles: 'Štýl',
+ tabIndex: 'Poradie prvku (tab index)',
+ target: 'Cieľ',
+ targetFrame: '<rámec>',
+ targetFrameName: 'Názov rámu cieľa',
+ targetPopup: '<vyskakovacie okno>',
+ targetPopupName: 'Názov vyskakovacieho okna',
+ title: 'Odkaz',
+ toAnchor: 'Odkaz na kotvu v texte',
+ toEmail: 'E-mail',
+ toUrl: 'URL',
+ toolbar: 'Odkaz',
+ type: 'Typ odkazu',
+ unlink: 'Odstrániť odkaz',
+ upload: 'Nahrať'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/sl.js b/devel/third-party/ckeditor/plugins/link/lang/sl.js
new file mode 100644
index 0000000..221da68
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/sl.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sl', {
+ acccessKey: 'Vstopno geslo',
+ advanced: 'Napredno',
+ advisoryContentType: 'Predlagani tip vsebine (content-type)',
+ advisoryTitle: 'Predlagani naslov',
+ anchor: {
+ toolbar: 'Vstavi/uredi zaznamek',
+ menu: 'Lastnosti zaznamka',
+ title: 'Lastnosti zaznamka',
+ name: 'Ime zaznamka',
+ errorName: 'Prosim vnesite ime zaznamka',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Po ID-ju elementa',
+ anchorName: 'Po imenu zaznamka',
+ charset: 'Kodna tabela povezanega vira',
+ cssClasses: 'Razred stilne predloge',
+ emailAddress: 'Elektronski naslov',
+ emailBody: 'Vsebina sporoÄila',
+ emailSubject: 'Predmet sporoÄila',
+ id: 'Id',
+ info: 'Podatki o povezavi',
+ langCode: 'Smer jezika',
+ langDir: 'Smer jezika',
+ langDirLTR: 'Od leve proti desni (LTR)',
+ langDirRTL: 'Od desne proti levi (RTL)',
+ menu: 'Uredi povezavo',
+ name: 'Ime',
+ noAnchors: '(V tem dokumentu ni zaznamkov)',
+ noEmail: 'Vnesite elektronski naslov',
+ noUrl: 'Vnesite URL povezave',
+ other: '<drug>',
+ popupDependent: 'Podokno (Netscape)',
+ popupFeatures: 'ZnaÄilnosti pojavnega okna',
+ popupFullScreen: 'Celozaslonska slika (IE)',
+ popupLeft: 'Lega levo',
+ popupLocationBar: 'Naslovna vrstica',
+ popupMenuBar: 'Menijska vrstica',
+ popupResizable: 'Spremenljive velikosti',
+ popupScrollBars: 'Drsniki',
+ popupStatusBar: 'Vrstica stanja',
+ popupToolbar: 'Orodna vrstica',
+ popupTop: 'Lega na vrhu',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Izberi zaznamek',
+ styles: 'Slog',
+ tabIndex: 'Å tevilka tabulatorja',
+ target: 'Cilj',
+ targetFrame: '<okvir>',
+ targetFrameName: 'Ime ciljnega okvirja',
+ targetPopup: '<pojavno okno>',
+ targetPopupName: 'Ime pojavnega okna',
+ title: 'Povezava',
+ toAnchor: 'Zaznamek na tej strani',
+ toEmail: 'Elektronski naslov',
+ toUrl: 'URL',
+ toolbar: 'Vstavi/uredi povezavo',
+ type: 'Vrsta povezave',
+ unlink: 'Odstrani povezavo',
+ upload: 'Prenesi'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/link/lang/sr-latn.js
new file mode 100644
index 0000000..5ed6bbc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/sr-latn.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sr-latn', {
+ acccessKey: 'Pristupni taster',
+ advanced: 'Napredni tagovi',
+ advisoryContentType: 'Advisory vrsta sadržaja',
+ advisoryTitle: 'Advisory naslov',
+ anchor: {
+ toolbar: 'Unesi/izmeni sidro',
+ menu: 'Osobine sidra',
+ title: 'Osobine sidra',
+ name: 'Ime sidra',
+ errorName: 'Unesite ime sidra',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Po Id-ju elementa',
+ anchorName: 'Po nazivu sidra',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet klase',
+ emailAddress: 'E-Mail adresa',
+ emailBody: 'Sadržaj poruke',
+ emailSubject: 'Naslov',
+ id: 'Id',
+ info: 'Link Info',
+ langCode: 'Smer jezika',
+ langDir: 'Smer jezika',
+ langDirLTR: 'S leva na desno (LTR)',
+ langDirRTL: 'S desna na levo (RTL)',
+ menu: 'Izmeni link',
+ name: 'Naziv',
+ noAnchors: '(Nema dostupnih sidra)',
+ noEmail: 'Otkucajte adresu elektronske pote',
+ noUrl: 'Unesite URL linka',
+ other: '<оÑÑало>',
+ popupDependent: 'Zavisno (Netscape)',
+ popupFeatures: 'MoguÄnosti popup prozora',
+ popupFullScreen: 'Prikaz preko celog ekrana (IE)',
+ popupLeft: 'Od leve ivice ekrana (px)',
+ popupLocationBar: 'Lokacija',
+ popupMenuBar: 'Kontekstni meni',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'Scroll bar',
+ popupStatusBar: 'Statusna linija',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Od vrha ekrana (px)',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'Odaberi sidro',
+ styles: 'Stil',
+ tabIndex: 'Tab indeks',
+ target: 'Meta',
+ targetFrame: '<okvir>',
+ targetFrameName: 'Naziv odredišnog frejma',
+ targetPopup: '<popup prozor>',
+ targetPopupName: 'Naziv popup prozora',
+ title: 'Link',
+ toAnchor: 'Sidro na ovoj stranici',
+ toEmail: 'E-Mail',
+ toUrl: 'URL',
+ toolbar: 'Unesi/izmeni link',
+ type: 'Vrsta linka',
+ unlink: 'Ukloni link',
+ upload: 'Pošalji'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/sr.js b/devel/third-party/ckeditor/plugins/link/lang/sr.js
new file mode 100644
index 0000000..114c3ab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/sr.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sr', {
+ acccessKey: 'ÐÑиÑÑÑпни ÑаÑÑеÑ',
+ advanced: 'ÐапÑедни Ñагови',
+ advisoryContentType: 'Advisory вÑÑÑа ÑадÑжаÑа',
+ advisoryTitle: 'Advisory наÑлов',
+ anchor: {
+ toolbar: 'УнеÑи/измени ÑидÑо',
+ menu: 'ÐÑобине ÑидÑа',
+ title: 'ÐÑобине ÑидÑа',
+ name: 'Ðме ÑидÑа',
+ errorName: 'Ðолимо ÐÐ°Ñ Ð´Ð° ÑнеÑеÑе име ÑидÑа',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'Ðo Ðд-jÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñа',
+ anchorName: 'Ðо Ð½Ð°Ð·Ð¸Ð²Ñ ÑидÑа',
+ charset: 'Linked Resource Charset',
+ cssClasses: 'Stylesheet клаÑе',
+ emailAddress: 'ÐдÑеÑа елекÑÑонÑке поÑÑе',
+ emailBody: 'СадÑÐ¶Ð°Ñ Ð¿Ð¾ÑÑке',
+ emailSubject: 'ÐаÑлов',
+ id: 'Ðд',
+ info: 'Ðинк инÑо',
+ langCode: 'Ð¡Ð¼ÐµÑ Ñезика',
+ langDir: 'Ð¡Ð¼ÐµÑ Ñезика',
+ langDirLTR: 'С лева на деÑно (LTR)',
+ langDirRTL: 'С деÑна на лево (RTL)',
+ menu: 'ÐÑомени линк',
+ name: 'Ðазив',
+ noAnchors: '(Ðема доÑÑÑпниÑ
ÑидÑа)',
+ noEmail: 'ÐÑкÑÑаÑÑе адÑеÑÑ ÐµÐ»ÐµÐºÑÑонÑке поÑÑе',
+ noUrl: 'УнеÑиÑе УРРлинка',
+ other: '<other>', // MISSING
+ popupDependent: 'ÐавиÑно (Netscape)',
+ popupFeatures: 'ÐогÑÑноÑÑи иÑкаÑÑÑег пÑозоÑа',
+ popupFullScreen: 'ÐÑиказ пÑеко Ñелог екÑана (ÐE)',
+ popupLeft: 'Ðд леве ивиÑе екÑана (пикÑела)',
+ popupLocationBar: 'ÐокаÑиÑа',
+ popupMenuBar: 'ÐонÑекÑÑни мени',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'СкÑол баÑ',
+ popupStatusBar: 'СÑаÑÑÑна линиÑа',
+ popupToolbar: 'Toolbar',
+ popupTop: 'Ðд вÑÑ
а екÑана (пикÑела)',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'ÐдабеÑи ÑидÑо',
+ styles: 'СÑил',
+ tabIndex: 'Таб индекÑ',
+ target: 'MeÑa',
+ targetFrame: '<оквиÑ>',
+ targetFrameName: 'Ðазив одÑедиÑног ÑÑеÑма',
+ targetPopup: '<иÑкаÑÑÑи пÑозоÑ>',
+ targetPopupName: 'Ðазив иÑкаÑÑÑег пÑозоÑа',
+ title: 'Ðинк',
+ toAnchor: 'СидÑо на Ð¾Ð²Ð¾Ñ ÑÑÑаниÑи',
+ toEmail: 'EлекÑÑонÑка поÑÑа',
+ toUrl: 'УРÐ',
+ toolbar: 'УнеÑи/измени линк',
+ type: 'ÐÑÑÑа линка',
+ unlink: 'Уклони линк',
+ upload: 'ÐоÑаÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/sv.js b/devel/third-party/ckeditor/plugins/link/lang/sv.js
new file mode 100644
index 0000000..601b9ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/sv.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'sv', {
+ acccessKey: 'Behörighetsnyckel',
+ advanced: 'Avancerad',
+ advisoryContentType: 'Innehållstyp',
+ advisoryTitle: 'Titel',
+ anchor: {
+ toolbar: 'Infoga/Redigera ankarlänk',
+ menu: 'Egenskaper för ankarlänk',
+ title: 'Egenskaper för ankarlänk',
+ name: 'Ankarnamn',
+ errorName: 'Var god ange ett ankarnamn',
+ remove: 'Radera ankare'
+ },
+ anchorId: 'efter objektid',
+ anchorName: 'efter ankarnamn',
+ charset: 'Teckenuppställning',
+ cssClasses: 'Stylesheet class',
+ emailAddress: 'E-postadress',
+ emailBody: 'Innehåll',
+ emailSubject: 'Ãmne',
+ id: 'Id',
+ info: 'Länkinformation',
+ langCode: 'Språkriktning',
+ langDir: 'Språkriktning',
+ langDirLTR: 'Vänster till höger (VTH)',
+ langDirRTL: 'Höger till vänster (HTV)',
+ menu: 'Redigera länk',
+ name: 'Namn',
+ noAnchors: '(Inga ankare kunde hittas)',
+ noEmail: 'Var god ange E-postadress',
+ noUrl: 'Var god ange länkens URL',
+ other: '<annan>',
+ popupDependent: 'Beroende (endast Netscape)',
+ popupFeatures: 'Popup-fönstrets egenskaper',
+ popupFullScreen: 'Helskärm (endast IE)',
+ popupLeft: 'Position från vänster',
+ popupLocationBar: 'Adressfält',
+ popupMenuBar: 'Menyfält',
+ popupResizable: 'Resizable',
+ popupScrollBars: 'Scrolllista',
+ popupStatusBar: 'Statusfält',
+ popupToolbar: 'Verktygsfält',
+ popupTop: 'Position från sidans topp',
+ rel: 'Förhållande',
+ selectAnchor: 'Välj ett ankare',
+ styles: 'Stilmall',
+ tabIndex: 'Tabindex',
+ target: 'MÃ¥l',
+ targetFrame: '<ram>',
+ targetFrameName: 'MÃ¥lets ramnamn',
+ targetPopup: '<popup-fönster>',
+ targetPopupName: 'Popup-fönstrets namn',
+ title: 'Länk',
+ toAnchor: 'Ankare i sidan',
+ toEmail: 'E-post',
+ toUrl: 'URL',
+ toolbar: 'Infoga/Redigera länk',
+ type: 'Länktyp',
+ unlink: 'Radera länk',
+ upload: 'Ladda upp'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/th.js b/devel/third-party/ckeditor/plugins/link/lang/th.js
new file mode 100644
index 0000000..b212123
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/th.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'th', {
+ acccessKey: 'à¹à¸à¸à¹à¸à¸ª à¸à¸µà¸¢à¹',
+ advanced: 'à¸à¸±à¹à¸à¸ªà¸¹à¸',
+ advisoryContentType: 'à¸à¸à¸´à¸à¸à¸à¸à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
+ advisoryTitle: 'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',
+ anchor: {
+ toolbar: 'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor',
+ menu: 'รายละà¹à¸à¸µà¸¢à¸ Anchor',
+ title: 'รายละà¹à¸à¸µà¸¢à¸ Anchor',
+ name: 'à¸à¸·à¹à¸ Anchor',
+ errorName: 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸·à¹à¸à¸à¸à¸ Anchor',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'à¹à¸à¸à¸µ',
+ anchorName: 'à¸à¸·à¹à¸',
+ charset: 'ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£',
+ cssClasses: 'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ emailAddress: 'à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)',
+ emailBody: 'à¸à¹à¸à¸à¸§à¸²à¸¡',
+ emailSubject: 'หัวà¹à¸£à¸·à¹à¸à¸',
+ id: 'à¹à¸à¸à¸µ',
+ info: 'รายละà¹à¸à¸µà¸¢à¸',
+ langCode: 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
+ langDir: 'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',
+ langDirLTR: 'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',
+ langDirRTL: 'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',
+ menu: 'à¹à¸à¹à¹à¸ ลิà¸à¸à¹',
+ name: 'à¸à¸·à¹à¸',
+ noAnchors: '(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¸ ายà¹à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹)',
+ noEmail: 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸¡à¸¥à¹ (E-mail)',
+ noUrl: 'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)',
+ other: '<à¸à¸·à¹à¸ à¹>',
+ popupDependent: 'à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (Netscape)',
+ popupFeatures: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)',
+ popupFullScreen: 'à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (IE5.5++ à¹à¸à¹à¸²à¸à¸±à¹à¸)',
+ popupLeft: 'à¸à¸´à¸à¸±à¸à¸à¹à¸²à¸¢ (Left Position)',
+ popupLocationBar: 'à¹à¸ªà¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸¥à¹',
+ popupMenuBar: 'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¡à¸à¸¹',
+ popupResizable: 'Resizable', // MISSING
+ popupScrollBars: 'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¥à¸·à¹à¸à¸',
+ popupStatusBar: 'à¹à¸ªà¸à¸à¹à¸à¸à¸ªà¸à¸²à¸à¸°',
+ popupToolbar: 'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸',
+ popupTop: 'à¸à¸´à¸à¸±à¸à¸à¸ (Top Position)',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'ระà¸à¸¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)',
+ styles: 'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',
+ tabIndex: 'ลำà¸à¸±à¸à¸à¸à¸ à¹à¸à¹à¸',
+ target: 'à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸¥à¸´à¸à¸à¹',
+ targetFrame: '<à¹à¸à¸´à¸à¹à¸à¹à¸à¸£à¸¡>',
+ targetFrameName: 'à¸à¸·à¹à¸à¸à¸²à¸£à¹à¹à¸à¹à¸à¹à¸à¸£à¸¡',
+ targetPopup: '<à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)>',
+ targetPopupName: 'ระà¸à¸¸à¸à¸·à¹à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)',
+ title: 'ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸§à¹à¸ à¸à¸µà¹à¸¡à¸¥à¹ รูà¸à¸ าภหรืà¸à¹à¸à¸¥à¹à¸à¸·à¹à¸à¹',
+ toAnchor: 'à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)',
+ toEmail: 'สà¹à¸à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)',
+ toUrl: 'à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸ URL',
+ toolbar: 'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ ลิà¸à¸à¹',
+ type: 'à¸à¸£à¸°à¹à¸ à¸à¸à¸à¸à¸¥à¸´à¸à¸à¹',
+ unlink: 'ลภลิà¸à¸à¹',
+ upload: 'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/tr.js b/devel/third-party/ckeditor/plugins/link/lang/tr.js
new file mode 100644
index 0000000..7ab3e45
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/tr.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'tr', {
+ acccessKey: 'EriÅim TuÅu',
+ advanced: 'GeliÅmiÅ',
+ advisoryContentType: 'DanıÅma İçerik Türü',
+ advisoryTitle: 'DanıÅma BaÅlıÄı',
+ anchor: {
+ toolbar: 'BaÄlantı Ekle/Düzenle',
+ menu: 'BaÄlantı Ãzellikleri',
+ title: 'BaÄlantı Ãzellikleri',
+ name: 'BaÄlantı Adı',
+ errorName: 'Lütfen baÄlantı için ad giriniz',
+ remove: 'BaÄlantıyı Kaldır'
+ },
+ anchorId: 'Eleman Kimlik Numarası ile',
+ anchorName: 'BaÄlantı Adı ile',
+ charset: 'BaÄlı Kaynak Karakter Gurubu',
+ cssClasses: 'Biçem Sayfası Sınıfları',
+ emailAddress: 'E-Posta Adresi',
+ emailBody: 'İleti Gövdesi',
+ emailSubject: 'İleti Konusu',
+ id: 'Id',
+ info: 'Link Bilgisi',
+ langCode: 'Dil Yönü',
+ langDir: 'Dil Yönü',
+ langDirLTR: 'Soldan SaÄa (LTR)',
+ langDirRTL: 'SaÄdan Sola (RTL)',
+ menu: 'Link Düzenle',
+ name: 'Ad',
+ noAnchors: '(Bu belgede hiç çapa yok)',
+ noEmail: 'Lütfen E-posta adresini yazın',
+ noUrl: 'Lütfen Link URL\'sini yazın',
+ other: '<diÄer>',
+ popupDependent: 'BaÄımlı (Netscape)',
+ popupFeatures: 'Yeni Açılan Pencere Ãzellikleri',
+ popupFullScreen: 'Tam Ekran (IE)',
+ popupLeft: 'Sola Göre Konum',
+ popupLocationBar: 'Yer ÃubuÄu',
+ popupMenuBar: 'Menü ÃubuÄu',
+ popupResizable: 'Resizable',
+ popupScrollBars: 'Kaydırma Ãubukları',
+ popupStatusBar: 'Durum ÃubuÄu',
+ popupToolbar: 'Araç ÃubuÄu',
+ popupTop: 'Yukarıya Göre Konum',
+ rel: 'İliÅki',
+ selectAnchor: 'BaÄlantı Seç',
+ styles: 'Biçem',
+ tabIndex: 'Sekme İndeksi',
+ target: 'Hedef',
+ targetFrame: '<çerçeve>',
+ targetFrameName: 'Hedef Ãerçeve Adı',
+ targetPopup: '<yeni açılan pencere>',
+ targetPopupName: 'Yeni Açılan Pencere Adı',
+ title: 'Link',
+ toAnchor: 'Bu sayfada çapa',
+ toEmail: 'E-Posta',
+ toUrl: 'URL',
+ toolbar: 'Link Ekle/Düzenle',
+ type: 'Link Türü',
+ unlink: 'Köprü Kaldır',
+ upload: 'KarÅıya Yükle'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/ug.js b/devel/third-party/ckeditor/plugins/link/lang/ug.js
new file mode 100644
index 0000000..4b7be6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/ug.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'ug', {
+ acccessKey: 'زÙÙØ§Ø±Ûت ÙÛÙÛÙ¾ÙØ§',
+ advanced: 'ئاÙÙÙ',
+ advisoryContentType: 'Ù
ÛØ²Ù
Û٠تÙÙ¾Ù',
+ advisoryTitle: 'Ù
Ø§ÛØ²Û',
+ anchor: {
+ toolbar: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ÙØ³Ù ÙÙØ³ØªÛر/تÛÚ¾Ø±ÙØ±ÙÛ',
+ menu: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ا خاسÙÙÙÙ',
+ title: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ا خاسÙÙÙÙ',
+ name: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئاتÙ',
+ errorName: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئاتÙÙÙ ÙÙØ±Ú¯ÛزÛÚ',
+ remove: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÚÛØ±'
+ },
+ anchorId: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ID س٠بÙÙÙÚÛ',
+ anchorName: 'ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئات٠بÙÙÙÚÛ',
+ charset: 'Ú¾ÛØ±Ù¾ ÙÙØ¯ÙÙÙÙØ´Ù',
+ cssClasses: 'Ø¦ÛØ³ÙÛØ¨ Ø®ÙÙ٠ئاتÙ',
+ emailAddress: 'Ø¦Ø§Ø¯Ø±ÛØ³',
+ emailBody: 'Ù
ÛØ²Ù
ÛÙ',
+ emailSubject: 'Ù
Ø§ÛØ²Û',
+ id: 'ID',
+ info: 'ئÛÙØ§ÙÙ
ا ئÛÚÛØ±Ù',
+ langCode: 'تÙÙ ÙÙØ¯Ù',
+ langDir: 'تÙÙ ÙÛÙÙÙÙØ´Ù',
+ langDirLTR: 'سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)',
+ langDirRTL: 'ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)',
+ menu: 'ئÛÙØ§ÙÙ
ا تÛÚ¾Ø±ÙØ±',
+ name: 'ئات',
+ noAnchors: '(Ø¨Û Ù¾ÛØªÛÙØªÛ Ø¦ÙØ´ÙÛØªÙÙÙ٠بÙÙÙØ¯Ùغا٠ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ÙÙÙ)',
+ noEmail: 'ئÛÙØ®Ûت Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ',
+ noUrl: 'ئÛÙØ§ÙÙ
ا Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ',
+ other: 'â¹Ø¨Ø§Ø´Ùاâº',
+ popupDependent: 'تÛÛÛ (NS)',
+ popupFeatures: 'ÙØ§ÚÙÙØ´ ÙÛØ²ÙÛ٠خاسÙÙÙÙ',
+ popupFullScreen: 'Ù¾ÛØªÛ٠ئÛÙØ±Ø§Ù (IE)',
+ popupLeft: 'سÙÙ',
+ popupLocationBar: 'Ø¦Ø§Ø¯Ø±ÛØ³ Ø¨Ø§ÙØ¯Ø§Ù',
+ popupMenuBar: 'ØªÙØ²ÙÙ
ÙÙÙ Ø¨Ø§ÙØ¯Ø§Ù',
+ popupResizable: 'ÚÙÚÙÛÙÙ Ø¦ÛØ²Ú¯ÛØ±ØªÙØ´ÚاÙ',
+ popupScrollBars: 'دÙÙ
ÙÙÙÙ
ا Ø³ÛØ±Ú¯ÛÚ',
+ popupStatusBar: 'ھاÙÛØª Ø¨Ø§ÙØ¯Ø§Ù',
+ popupToolbar: 'ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù',
+ popupTop: 'ئÙÚ',
+ rel: 'باغÙÙÙÙØ´',
+ selectAnchor: 'Ø¨ÙØ± ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ تاÙÙØ§Ú',
+ styles: 'ÙÛØ± ئÙÚÙØ¯ÙÙÙ Ø¦ÛØ³ÙÛØ¨Ù',
+ tabIndex: 'Tab ØªÛØ±ØªÙÙ¾Ù',
+ target: 'ÙÙØ´Ø§Ù',
+ targetFrame: 'â¹ÙØ§ÙØ¯ÛÙâº',
+ targetFrameName: 'ÙÙØ´Ø§Ù ÙØ§ÙدÛ٠ئاتÙ',
+ targetPopup: 'â¹ÙاÚÙÙØ´ ÙÛØ²ÙÛÙâº',
+ targetPopupName: 'ÙØ§ÚÙÙØ´ ÙÛØ²ÙÛ٠ئاتÙ',
+ title: 'ئÛÙØ§ÙÙ
ا',
+ toAnchor: 'Ø¨ÛØª ئÙÚÙØ¯ÙÙÙ ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ÙØ³Ù',
+ toEmail: 'ئÛÙØ®Ûت',
+ toUrl: 'Ø¦Ø§Ø¯Ø±ÛØ³',
+ toolbar: 'ئÛÙØ§ÙÙ
ا ÙÙØ³ØªÛر/تÛÚ¾Ø±ÙØ±ÙÛ',
+ type: 'ئÛÙØ§ÙÙ
ا تÙÙ¾Ù',
+ unlink: 'ئÛÙØ§ÙÙ
ا بÙÙØ§Ø± ÙÙÙ',
+ upload: 'ÙÛÙÙÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/uk.js b/devel/third-party/ckeditor/plugins/link/lang/uk.js
new file mode 100644
index 0000000..bbe46ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/uk.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'uk', {
+ acccessKey: 'ÐаÑÑÑа клавÑÑа',
+ advanced: 'ÐодаÑкове',
+ advisoryContentType: 'Тип вмÑÑÑÑ',
+ advisoryTitle: 'Ðаголовок',
+ anchor: {
+ toolbar: 'ÐÑÑавиÑи/РедагÑваÑи ÑкÑÑ',
+ menu: 'ÐлаÑÑивоÑÑÑ ÑкоÑÑ',
+ title: 'ÐлаÑÑивоÑÑÑ ÑкоÑÑ',
+ name: 'Ðм\'Ñ ÑкоÑÑ',
+ errorName: 'ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ Ñм\'Ñ ÑкоÑÑ',
+ remove: 'ÐÑибÑаÑи ÑкÑÑ'
+ },
+ anchorId: 'Ðа ÑденÑиÑÑкаÑоÑом елеменÑÑ',
+ anchorName: 'Ðа Ñм\'Ñм елеменÑÑ',
+ charset: 'ÐодÑваннÑ',
+ cssClasses: 'ÐÐ»Ð°Ñ CSS',
+ emailAddress: 'ÐдÑеÑа ел. поÑÑи',
+ emailBody: 'ТÑло повÑдомленнÑ',
+ emailSubject: 'Тема лиÑÑа',
+ id: 'ÐденÑиÑÑкаÑоÑ',
+ info: 'ÐнÑоÑмаÑÑÑ Ð¿Ð¾ÑиланнÑ',
+ langCode: 'Ðод мови',
+ langDir: 'ÐапÑÑмок мови',
+ langDirLTR: 'ÐлÑва напÑаво (LTR)',
+ langDirRTL: 'СпÑава налÑво (RTL)',
+ menu: 'ÐÑÑавиÑи поÑиланнÑ',
+ name: 'Ðм\'Ñ',
+ noAnchors: '(Ð ÑÑÐ¾Ð¼Ñ Ð´Ð¾ÐºÑменÑÑ Ð½ÐµÐ¼Ð°Ñ ÑкоÑÑв)',
+ noEmail: 'ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ Ð°Ð´ÑÐµÑ ÐµÐ». поÑÑи',
+ noUrl: 'ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ URL поÑиланнÑ',
+ other: '<ÑнÑий>',
+ popupDependent: 'Ðалежний (Netscape)',
+ popupFeatures: 'ÐлаÑÑивоÑÑÑ Ð²Ð¸Ð¿Ð»Ð¸Ð²Ð°ÑÑого вÑкна',
+ popupFullScreen: 'Ðовний екÑан (IE)',
+ popupLeft: 'ÐозиÑÑÑ Ð·Ð»Ñва',
+ popupLocationBar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð»Ð¾ÐºÐ°ÑÑÑ',
+ popupMenuBar: 'ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ',
+ popupResizable: 'ÐаÑÑÑабоване',
+ popupScrollBars: 'СÑÑÑÑки пÑокÑÑÑки',
+ popupStatusBar: 'Ð Ñдок ÑÑаÑÑÑÑ',
+ popupToolbar: 'ÐÐ°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв',
+ popupTop: 'ÐозиÑÑÑ Ð·Ð²ÐµÑÑ
Ñ',
+ rel: 'Ðв\'Ñзок',
+ selectAnchor: 'ÐбеÑÑÑÑ ÑкÑÑ',
+ styles: 'СÑÐ¸Ð»Ñ CSS',
+ tabIndex: 'ÐоÑлÑдовнÑÑÑÑ Ð¿ÐµÑеÑ
одÑ',
+ target: 'ЦÑлÑ',
+ targetFrame: '<ÑÑейм>',
+ targetFrameName: 'Ðм\'Ñ ÑÑлÑового ÑÑеймÑ',
+ targetPopup: '<випливаÑÑе вÑкно>',
+ targetPopupName: 'Ðм\'Ñ Ð²Ð¸Ð¿Ð»Ð¸Ð²Ð°ÑÑого вÑкна',
+ title: 'ÐоÑиланнÑ',
+ toAnchor: 'ЯкÑÑ Ð½Ð° ÑÑ ÑÑоÑÑнкÑ',
+ toEmail: 'Ðл. поÑÑа',
+ toUrl: 'URL',
+ toolbar: 'ÐÑÑавиÑи/РедагÑваÑи поÑиланнÑ',
+ type: 'Тип поÑиланнÑ',
+ unlink: 'ÐидалиÑи поÑиланнÑ',
+ upload: 'ÐадÑÑлаÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/vi.js b/devel/third-party/ckeditor/plugins/link/lang/vi.js
new file mode 100644
index 0000000..8b25b9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/vi.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'vi', {
+ acccessKey: 'PhÃm há» trợ truy cáºp',
+ advanced: 'Má» rá»ng',
+ advisoryContentType: 'Ná»i dung hưá»ng dẫn',
+ advisoryTitle: 'Nhan Äá» hưá»ng dẫn',
+ anchor: {
+ toolbar: 'Chèn/Sá»a Äiá»m neo',
+ menu: 'Thuá»c tÃnh Äiá»m neo',
+ title: 'Thuá»c tÃnh Äiá»m neo',
+ name: 'Tên cá»§a Äiá»m neo',
+ errorName: 'Hãy nháºp và o tên cá»§a Äiá»m neo',
+ remove: 'Xóa neo'
+ },
+ anchorId: 'Theo Äá»nh danh thà nh phần',
+ anchorName: 'Theo tên Äiá»m neo',
+ charset: 'Bảng mã cá»§a tà i nguyên ÄÆ°á»£c liên kết Äến',
+ cssClasses: 'Lá»p Stylesheet',
+ emailAddress: 'Thư Äiá»n tá»',
+ emailBody: 'Ná»i dung thông Äiá»p',
+ emailSubject: 'Tiêu Äá» thông Äiá»p',
+ id: 'Äá»nh danh',
+ info: 'Thông tin liên kết',
+ langCode: 'Mã ngôn ngữ',
+ langDir: 'Hưá»ng ngôn ngữ',
+ langDirLTR: 'Trái sang phải (LTR)',
+ langDirRTL: 'Phải sang trái (RTL)',
+ menu: 'Sá»a liên kết',
+ name: 'Tên',
+ noAnchors: '(Không có Äiá»m neo nà o trong tà i liá»u)',
+ noEmail: 'Hãy ÄÆ°a và o Äá»a chá» thư Äiá»n tá»',
+ noUrl: 'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết (URL)',
+ other: '<khác>',
+ popupDependent: 'Phụ thuá»c (Netscape)',
+ popupFeatures: 'Äặc Äiá»m cá»§a cá»a sá» Popup',
+ popupFullScreen: 'Toà n mà n hình (IE)',
+ popupLeft: 'VỠtrà bên trái',
+ popupLocationBar: 'Thanh vá» trÃ',
+ popupMenuBar: 'Thanh Menu',
+ popupResizable: 'Có thá» thay Äá»i kÃch cỡ',
+ popupScrollBars: 'Thanh cuá»n',
+ popupStatusBar: 'Thanh trạng thái',
+ popupToolbar: 'Thanh công cụ',
+ popupTop: 'Vá» trà phÃa trên',
+ rel: 'Quan há»',
+ selectAnchor: 'Chá»n má»t Äiá»m neo',
+ styles: 'Kiá»u (style)',
+ tabIndex: 'Chá» sá» cá»§a Tab',
+ target: 'ÄÃch',
+ targetFrame: '<khung>',
+ targetFrameName: 'Tên khung ÄÃch',
+ targetPopup: '<cá»a sá» popup>',
+ targetPopupName: 'Tên cá»a sá» Popup',
+ title: 'Liên kết',
+ toAnchor: 'Neo trong trang nà y',
+ toEmail: 'Thư Äiá»n tá»',
+ toUrl: 'URL',
+ toolbar: 'Chèn/Sá»a liên kết',
+ type: 'Kiá»u liên kết',
+ unlink: 'Xoá liên kết',
+ upload: 'Tải lên'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/link/lang/zh-cn.js
new file mode 100644
index 0000000..e9c427f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/zh-cn.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'zh-cn', {
+ acccessKey: '访é®é®',
+ advanced: 'é«çº§',
+ advisoryContentType: 'å
容类å',
+ advisoryTitle: 'æ é¢',
+ anchor: {
+ toolbar: 'æå
¥/ç¼è¾éç¹é¾æ¥',
+ menu: 'éç¹é¾æ¥å±æ§',
+ title: 'éç¹é¾æ¥å±æ§',
+ name: 'éç¹åç§°',
+ errorName: '请è¾å
¥éç¹åç§°',
+ remove: 'å é¤éç¹'
+ },
+ anchorId: 'æéç¹ ID',
+ anchorName: 'æéç¹åç§°',
+ charset: 'å符ç¼ç ',
+ cssClasses: 'æ ·å¼ç±»åç§°',
+ emailAddress: 'å°å',
+ emailBody: 'å
容',
+ emailSubject: '主é¢',
+ id: 'ID',
+ info: 'è¶
龿¥ä¿¡æ¯',
+ langCode: 'è¯è¨ä»£ç ',
+ langDir: 'è¯è¨æ¹å',
+ langDirLTR: 'ä»å·¦å°å³ (LTR)',
+ langDirRTL: 'ä»å³å°å·¦ (RTL)',
+ menu: 'ç¼è¾è¶
龿¥',
+ name: 'åç§°',
+ noAnchors: '(æ¤ææ¡£æ²¡æå¯ç¨çéç¹)',
+ noEmail: '请è¾å
¥çµåé®ä»¶å°å',
+ noUrl: '请è¾å
¥è¶
龿¥å°å',
+ other: '<å
¶ä»>',
+ popupDependent: 'ä¾é (NS)',
+ popupFeatures: 'å¼¹åºçªå£å±æ§',
+ popupFullScreen: 'å
¨å± (IE)',
+ popupLeft: 'å·¦',
+ popupLocationBar: 'å°åæ ',
+ popupMenuBar: 'èåæ ',
+ popupResizable: 'å¯ç¼©æ¾',
+ popupScrollBars: 'æ»å¨æ¡',
+ popupStatusBar: 'ç¶ææ ',
+ popupToolbar: 'å·¥å
·æ ',
+ popupTop: 'å³',
+ rel: 'å
³è',
+ selectAnchor: 'éæ©ä¸ä¸ªéç¹',
+ styles: 'è¡å
æ ·å¼',
+ tabIndex: 'Tab 鮿¬¡åº',
+ target: 'ç®æ ',
+ targetFrame: '<æ¡æ¶>',
+ targetFrameName: 'ç®æ æ¡æ¶åç§°',
+ targetPopup: '<å¼¹åºçªå£>',
+ targetPopupName: 'å¼¹åºçªå£åç§°',
+ title: 'è¶
龿¥',
+ toAnchor: '页å
éç¹é¾æ¥',
+ toEmail: 'çµåé®ä»¶',
+ toUrl: 'å°å',
+ toolbar: 'æå
¥/ç¼è¾è¶
龿¥',
+ type: 'è¶
龿¥ç±»å',
+ unlink: 'åæ¶è¶
龿¥',
+ upload: 'ä¸ä¼ '
+});
diff --git a/devel/third-party/ckeditor/plugins/link/lang/zh.js b/devel/third-party/ckeditor/plugins/link/lang/zh.js
new file mode 100644
index 0000000..f8221a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/link/lang/zh.js
@@ -0,0 +1,65 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'link', 'zh', {
+ acccessKey: 'ååéµ',
+ advanced: 'é²é',
+ advisoryContentType: 'å
§å®¹é¡å',
+ advisoryTitle: 'æ¨é¡',
+ anchor: {
+ toolbar: 'æå
¥/編輯é¨é»',
+ menu: 'é¨é»å±¬æ§',
+ title: 'é¨é»å±¬æ§',
+ name: 'é¨é»å稱',
+ errorName: 'è«è¼¸å
¥é¨é»å稱',
+ remove: 'Remove Anchor'
+ },
+ anchorId: 'ä¾å
ä»¶ ID',
+ anchorName: 'ä¾é¨é»å稱',
+ charset: 'é£çµè³æºä¹ç·¨ç¢¼',
+ cssClasses: '樣å¼è¡¨é¡å¥',
+ emailAddress: 'é»åéµä»¶',
+ emailBody: 'éµä»¶å
§å®¹',
+ emailSubject: 'éµä»¶ä¸»æ¨',
+ id: 'ID',
+ info: 'è¶
é£çµè³è¨',
+ langCode: 'èªè¨æ¹å',
+ langDir: 'èªè¨æ¹å',
+ langDirLTR: 'ç±å·¦èå³ (LTR)',
+ langDirRTL: 'ç±å³èå·¦ (RTL)',
+ menu: '編輯è¶
é£çµ',
+ name: 'å稱',
+ noAnchors: '(æ¬æä»¶å°ç¡å¯ç¨ä¹é¨é»)',
+ noEmail: 'è«è¼¸å
¥é»åéµä»¶ä½å',
+ noUrl: 'è«è¼¸å
¥æ¬²é£çµç URL',
+ other: '<å
¶ä»>',
+ popupDependent: 'å¾å±¬ (NS)',
+ popupFeatures: '快顯è¦çªå±¬æ§',
+ popupFullScreen: 'å
¨è¢å¹ (IE)',
+ popupLeft: 'å·¦',
+ popupLocationBar: 'ç¶²åå',
+ popupMenuBar: 'é¸å®å',
+ popupResizable: 'å¯ç¸®æ¾',
+ popupScrollBars: 'æ²è»¸',
+ popupStatusBar: 'çæ
å',
+ popupToolbar: 'å·¥å
·å',
+ popupTop: 'å³',
+ rel: 'Relationship', // MISSING
+ selectAnchor: 'è«é¸æé¨é»',
+ styles: '樣å¼',
+ tabIndex: 'å®ä½é åº',
+ target: 'ç®æ¨',
+ targetFrame: '<æ¡æ¶>',
+ targetFrameName: 'ç®æ¨æ¡æ¶å稱',
+ targetPopup: '<快顯è¦çª>',
+ targetPopupName: '快顯è¦çªå稱',
+ title: 'è¶
é£çµ',
+ toAnchor: 'æ¬é é¨é»',
+ toEmail: 'é»åéµä»¶',
+ toUrl: 'URL',
+ toolbar: 'æå
¥/編輯è¶
é£çµ',
+ type: 'è¶
飿¥é¡å',
+ unlink: 'ç§»é¤è¶
é£çµ',
+ upload: 'ä¸å³'
+});
diff --git a/devel/third-party/ckeditor/plugins/link/plugin.js b/devel/third-party/ckeditor/plugins/link/plugin.js
index 3cdc6fb..f3ec71f 100644
--- a/devel/third-party/ckeditor/plugins/link/plugin.js
+++ b/devel/third-party/ckeditor/plugins/link/plugin.js
@@ -1,238 +1,348 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'link',
-{
- init : function( editor )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'link', {
+ requires: 'dialog,fakeobjects',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'anchor,anchor-rtl,link,unlink', // %REMOVE_LINE_CORE%
+ onLoad: function() {
+ // Add the CSS styles for anchor placeholders.
+ var baseStyle = 'background:url(' + CKEDITOR.getUrl( this.path + 'images/anchor.png' ) + ') no-repeat %1 center;' +
+ 'border:1px dotted #00f;';
+
+ var template = '.%2 a.cke_anchor,' +
+ '.%2 a.cke_anchor_empty' +
+ ',.cke_editable.%2 a[name]' +
+ ',.cke_editable.%2 a[data-cke-saved-name]' +
+ '{' +
+ baseStyle +
+ 'padding-%1:18px;' +
+ // Show the arrow cursor for the anchor image (FF at least).
+ 'cursor:auto;' +
+ '}' +
+ ( CKEDITOR.env.ie ? ( 'a.cke_anchor_empty' +
+ '{' +
+ // Make empty anchor selectable on IE.
+ 'display:inline-block;' +
+ '}'
+ ) : '' ) +
+ '.%2 img.cke_anchor' +
+ '{' +
+ baseStyle +
+ 'width:16px;' +
+ 'min-height:15px;' +
+ // The default line-height on IE.
+ 'height:1.15em;' +
+ // Opera works better with "middle" (even if not perfect)
+ 'vertical-align:' + ( CKEDITOR.env.opera ? 'middle' : 'text-bottom' ) + ';' +
+ '}';
+
+ // Styles with contents direction awareness.
+ function cssWithDir( dir ) {
+ return template.replace( /%1/g, dir == 'rtl' ? 'right' : 'left' ).replace( /%2/g, 'cke_contents_' + dir );
+ }
+
+ CKEDITOR.addCss( cssWithDir( 'ltr' ) + cssWithDir( 'rtl' ) );
+ },
+
+ init: function( editor ) {
// Add the link and unlink buttons.
editor.addCommand( 'link', new CKEDITOR.dialogCommand( 'link' ) );
editor.addCommand( 'anchor', new CKEDITOR.dialogCommand( 'anchor' ) );
editor.addCommand( 'unlink', new CKEDITOR.unlinkCommand() );
- editor.ui.addButton( 'Link',
- {
- label : editor.lang.link.toolbar,
- command : 'link'
- } );
- editor.ui.addButton( 'Unlink',
- {
- label : editor.lang.unlink,
- command : 'unlink'
- } );
- editor.ui.addButton( 'Anchor',
- {
- label : editor.lang.anchor.toolbar,
- command : 'anchor'
- } );
+ editor.addCommand( 'removeAnchor', new CKEDITOR.removeAnchorCommand() );
+
+ editor.setKeystroke( CKEDITOR.CTRL + 76 /*L*/, 'link' );
+
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( 'Link', {
+ label: editor.lang.link.toolbar,
+ command: 'link',
+ toolbar: 'links,10'
+ });
+ editor.ui.addButton( 'Unlink', {
+ label: editor.lang.link.unlink,
+ command: 'unlink',
+ toolbar: 'links,20'
+ });
+ editor.ui.addButton( 'Anchor', {
+ label: editor.lang.link.anchor.toolbar,
+ command: 'anchor',
+ toolbar: 'links,30'
+ });
+ }
+
CKEDITOR.dialog.add( 'link', this.path + 'dialogs/link.js' );
CKEDITOR.dialog.add( 'anchor', this.path + 'dialogs/anchor.js' );
- // Add the CSS styles for anchor placeholders.
- editor.addCss(
- 'img.cke_anchor' +
- '{' +
- 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/anchor.gif' ) + ');' +
- 'background-position: center center;' +
- 'background-repeat: no-repeat;' +
- 'border: 1px solid #a9a9a9;' +
- 'width: 18px !important;' +
- 'height: 18px !important;' +
- '}\n' +
- 'a.cke_anchor' +
- '{' +
- 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/anchor.gif' ) + ');' +
- 'background-position: 0 center;' +
- 'background-repeat: no-repeat;' +
- 'border: 1px solid #a9a9a9;' +
- 'padding-left: 18px;' +
- '}'
- );
-
- // Register selection change handler for the unlink button.
- editor.on( 'selectionChange', function( evt )
- {
- /*
- * Despite our initial hope, document.queryCommandEnabled() does not work
- * for this in Firefox. So we must detect the state by element paths.
- */
- var command = editor.getCommand( 'unlink' ),
- element = evt.data.path.lastElement && evt.data.path.lastElement.getAscendant( 'a', true );
- if ( element && element.getName() == 'a' && element.getAttribute( 'href' ) )
- command.setState( CKEDITOR.TRISTATE_OFF );
- else
- command.setState( CKEDITOR.TRISTATE_DISABLED );
- } );
-
- editor.on( 'doubleclick', function( evt )
- {
- var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element;
-
- if ( element.is( 'a' ) )
- evt.data.dialog = ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link';
- else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
+ editor.on( 'doubleclick', function( evt ) {
+ var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element;
+
+ if ( !element.isReadOnly() ) {
+ if ( element.is( 'a' ) ) {
+ evt.data.dialog = ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ? 'anchor' : 'link';
+ editor.getSelection().selectElement( element );
+ } else if ( CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element ) )
evt.data.dialog = 'anchor';
- });
+ }
+ });
// If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- anchor :
- {
- label : editor.lang.anchor.menu,
- command : 'anchor',
- group : 'anchor'
- },
-
- link :
- {
- label : editor.lang.link.menu,
- command : 'link',
- group : 'link',
- order : 1
- },
-
- unlink :
- {
- label : editor.lang.unlink,
- command : 'unlink',
- group : 'link',
- order : 5
- }
- });
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ anchor: {
+ label: editor.lang.link.anchor.menu,
+ command: 'anchor',
+ group: 'anchor',
+ order: 1
+ },
+
+ removeAnchor: {
+ label: editor.lang.link.anchor.remove,
+ command: 'removeAnchor',
+ group: 'anchor',
+ order: 5
+ },
+
+ link: {
+ label: editor.lang.link.menu,
+ command: 'link',
+ group: 'link',
+ order: 1
+ },
+
+ unlink: {
+ label: editor.lang.link.unlink,
+ command: 'unlink',
+ group: 'link',
+ order: 5
+ }
+ });
}
// If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !element || element.isReadOnly() )
- return null;
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element, selection ) {
+ if ( !element || element.isReadOnly() )
+ return null;
- var isAnchor = ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' );
+ var anchor = CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element );
- if ( !isAnchor )
- {
- if ( !( element = CKEDITOR.plugins.link.getSelectedLink( editor ) ) )
- return null;
+ if ( !anchor && !( anchor = CKEDITOR.plugins.link.getSelectedLink( editor ) ) )
+ return null;
- isAnchor = ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) );
- }
+ var menu = {};
+
+ if ( anchor.getAttribute( 'href' ) && anchor.getChildCount() )
+ menu = { link: CKEDITOR.TRISTATE_OFF, unlink: CKEDITOR.TRISTATE_OFF };
+
+ if ( anchor && anchor.hasAttribute( 'name' ) )
+ menu.anchor = menu.removeAnchor = CKEDITOR.TRISTATE_OFF;
- return isAnchor ?
- { anchor : CKEDITOR.TRISTATE_OFF } :
- { link : CKEDITOR.TRISTATE_OFF, unlink : CKEDITOR.TRISTATE_OFF };
- });
+ return menu;
+ });
}
},
- afterInit : function( editor )
- {
+ afterInit: function( editor ) {
// Register a filter to displaying placeholders after mode change.
var dataProcessor = editor.dataProcessor,
- dataFilter = dataProcessor && dataProcessor.dataFilter;
-
- if ( dataFilter )
- {
- dataFilter.addRules(
- {
- elements :
- {
- a : function( element )
- {
- var attributes = element.attributes;
- if ( attributes.name && !attributes.href )
- return editor.createFakeParserElement( element, 'cke_anchor', 'anchor' );
- }
+ dataFilter = dataProcessor && dataProcessor.dataFilter,
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter,
+ pathFilters = editor._.elementsPath && editor._.elementsPath.filters;
+
+ if ( dataFilter ) {
+ dataFilter.addRules({
+ elements: {
+ a: function( element ) {
+ var attributes = element.attributes;
+ if ( !attributes.name )
+ return null;
+
+ var isEmpty = !element.children.length;
+
+ if ( CKEDITOR.plugins.link.synAnchorSelector ) {
+ // IE needs a specific class name to be applied
+ // to the anchors, for appropriate styling.
+ var ieClass = isEmpty ? 'cke_anchor_empty' : 'cke_anchor';
+ var cls = attributes[ 'class' ];
+ if ( attributes.name && ( !cls || cls.indexOf( ieClass ) < 0 ) )
+ attributes[ 'class' ] = ( cls || '' ) + ' ' + ieClass;
+
+ if ( isEmpty && CKEDITOR.plugins.link.emptyAnchorFix ) {
+ attributes.contenteditable = 'false';
+ attributes[ 'data-cke-editable' ] = 1;
+ }
+ } else if ( CKEDITOR.plugins.link.fakeAnchor && isEmpty )
+ return editor.createFakeParserElement( element, 'cke_anchor', 'anchor' );
+
+ return null;
}
- });
+ }
+ });
}
- },
- requires : [ 'fakeobjects' ]
-} );
+ if ( CKEDITOR.plugins.link.emptyAnchorFix && htmlFilter ) {
+ htmlFilter.addRules({
+ elements: {
+ a: function( element ) {
+ delete element.attributes.contenteditable;
+ }
+ }
+ });
+ }
+
+ if ( pathFilters ) {
+ pathFilters.push( function( element, name ) {
+ if ( name == 'a' ) {
+ if ( CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, element ) || ( element.getAttribute( 'name' ) && ( !element.getAttribute( 'href' ) || !element.getChildCount() ) ) ) {
+ return 'anchor';
+ }
+ }
+ });
+ }
+ }
+});
-CKEDITOR.plugins.link =
-{
+/**
+ * Set of link plugin's helpers.
+ *
+ * @class
+ * @singleton
+ */
+CKEDITOR.plugins.link = {
/**
- * Get the surrounding link element of current selection.
- * @param editor
- * @example CKEDITOR.plugins.link.getSelectedLink( editor );
+ * Get the surrounding link element of current selection.
+ *
+ * CKEDITOR.plugins.link.getSelectedLink( editor );
+ *
+ * // The following selection will all return the link element.
+ *
+ * <a href="#">li^nk</a>
+ * <a href="#">[link]</a>
+ * text[<a href="#">link]</a>
+ * <a href="#">li[nk</a>]
+ * [<b><a href="#">li]nk</a></b>]
+ * [<a href="#"><b>li]nk</b></a>
+ *
* @since 3.2.1
- * The following selection will all return the link element.
- * <pre>
- * <a href="#">li^nk</a>
- * <a href="#">[link]</a>
- * text[<a href="#">link]</a>
- * <a href="#">li[nk</a>]
- * [<b><a href="#">li]nk</a></b>]
- * [<a href="#"><b>li]nk</b></a>
- * </pre>
+ * @param {CKEDITOR.editor} editor
*/
- getSelectedLink : function( editor )
- {
- try
- {
- var selection = editor.getSelection();
- if ( selection.getType() == CKEDITOR.SELECTION_ELEMENT )
- {
- var selectedElement = selection.getSelectedElement();
- if ( selectedElement.is( 'a' ) )
- return selectedElement;
- }
+ getSelectedLink: function( editor ) {
+ var selection = editor.getSelection();
+ var selectedElement = selection.getSelectedElement();
+ if ( selectedElement && selectedElement.is( 'a' ) )
+ return selectedElement;
+
+ var range = selection.getRanges( true )[ 0 ];
- var range = selection.getRanges( true )[ 0 ];
+ if ( range ) {
range.shrink( CKEDITOR.SHRINK_TEXT );
- var root = range.getCommonAncestor();
- return root.getAscendant( 'a', true );
+ return editor.elementPath( range.getCommonAncestor() ).contains( 'a', 1 );
+ }
+ return null;
+ },
+
+ /**
+ * Opera and WebKit don't make it possible to select empty anchors. Fake
+ * elements must be used for them.
+ *
+ * @readonly
+ * @property {Boolean}
+ */
+ fakeAnchor: CKEDITOR.env.opera || CKEDITOR.env.webkit,
+
+ /**
+ * For browsers that don't support CSS3 `a[name]:empty()`, note IE9 is included because of #7783.
+ *
+ * @readonly
+ * @property {Boolean}
+ */
+ synAnchorSelector: CKEDITOR.env.ie,
+
+ /**
+ * For browsers that have editing issue with empty anchor.
+ *
+ * @readonly
+ * @property {Boolean}
+ */
+ emptyAnchorFix: CKEDITOR.env.ie && CKEDITOR.env.version < 8,
+
+ /**
+ * @param {CKEDITOR.editor} editor
+ * @param {CKEDITOR.dom.element} element
+ * @todo
+ */
+ tryRestoreFakeAnchor: function( editor, element ) {
+ if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'anchor' ) {
+ var link = editor.restoreRealElement( element );
+ if ( link.data( 'cke-saved-name' ) )
+ return link;
}
- catch( e ) { return null; }
}
};
-CKEDITOR.unlinkCommand = function(){};
-CKEDITOR.unlinkCommand.prototype =
-{
- /** @ignore */
- exec : function( editor )
- {
- /*
- * execCommand( 'unlink', ... ) in Firefox leaves behind <span> tags at where
- * the <a> was, so again we have to remove the link ourselves. (See #430)
- *
- * TODO: Use the style system when it's complete. Let's use execCommand()
- * as a stopgap solution for now.
- */
- var selection = editor.getSelection(),
- bookmarks = selection.createBookmarks(),
- ranges = selection.getRanges(),
- rangeRoot,
- element;
-
- for ( var i = 0 ; i < ranges.length ; i++ )
- {
- rangeRoot = ranges[i].getCommonAncestor( true );
- element = rangeRoot.getAscendant( 'a', true );
- if ( !element )
- continue;
- ranges[i].selectNodeContents( element );
- }
+// TODO Much probably there's no need to expose these as public objects.
+
+CKEDITOR.unlinkCommand = function() {};
+CKEDITOR.unlinkCommand.prototype = {
+ exec: function( editor ) {
+ var style = new CKEDITOR.style( { element:'a',type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1 } );
+ editor.removeStyle( style );
+ },
+
+ refresh: function( editor, path ) {
+ // Despite our initial hope, document.queryCommandEnabled() does not work
+ // for this in Firefox. So we must detect the state by element paths.
+
+ var element = path.lastElement && path.lastElement.getAscendant( 'a', true );
- selection.selectRanges( ranges );
- editor.document.$.execCommand( 'unlink', false, null );
- selection.selectBookmarks( bookmarks );
+ if ( element && element.getName() == 'a' && element.getAttribute( 'href' ) && element.getChildCount() )
+ this.setState( CKEDITOR.TRISTATE_OFF );
+ else
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
},
- startDisabled : true
+ contextSensitive: 1,
+ startDisabled: 1
};
-CKEDITOR.tools.extend( CKEDITOR.config,
-{
- linkShowAdvancedTab : true,
- linkShowTargetTab : true
-} );
+CKEDITOR.removeAnchorCommand = function() {};
+CKEDITOR.removeAnchorCommand.prototype = {
+ exec: function( editor ) {
+ var sel = editor.getSelection(),
+ bms = sel.createBookmarks(),
+ anchor;
+ if ( sel && ( anchor = sel.getSelectedElement() ) && ( CKEDITOR.plugins.link.fakeAnchor && !anchor.getChildCount() ? CKEDITOR.plugins.link.tryRestoreFakeAnchor( editor, anchor ) : anchor.is( 'a' ) ) )
+ anchor.remove( 1 );
+ else {
+ if ( ( anchor = CKEDITOR.plugins.link.getSelectedLink( editor ) ) ) {
+ if ( anchor.hasAttribute( 'href' ) ) {
+ anchor.removeAttributes( { name:1,'data-cke-saved-name':1 } );
+ anchor.removeClass( 'cke_anchor' );
+ } else
+ anchor.remove( 1 );
+ }
+ }
+ sel.selectBookmarks( bms );
+ }
+};
+
+CKEDITOR.tools.extend( CKEDITOR.config, {
+ /**
+ * @cfg {Boolean} [linkShowAdvancedTab=true]
+ * @member CKEDITOR.config
+ * @todo
+ */
+ linkShowAdvancedTab: true,
+
+ /**
+ * @cfg {Boolean} [linkShowTargetTab=true]
+ * @member CKEDITOR.config
+ * @todo
+ */
+ linkShowTargetTab: true
+});
diff --git a/devel/third-party/ckeditor/plugins/list/icons/bulletedlist-rtl.png b/devel/third-party/ckeditor/plugins/list/icons/bulletedlist-rtl.png
new file mode 100644
index 0000000..148f810
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/list/icons/bulletedlist-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/list/icons/bulletedlist.png b/devel/third-party/ckeditor/plugins/list/icons/bulletedlist.png
new file mode 100644
index 0000000..38dcdea
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/list/icons/bulletedlist.png differ
diff --git a/devel/third-party/ckeditor/plugins/list/icons/numberedlist-rtl.png b/devel/third-party/ckeditor/plugins/list/icons/numberedlist-rtl.png
new file mode 100644
index 0000000..144cbe6
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/list/icons/numberedlist-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/list/icons/numberedlist.png b/devel/third-party/ckeditor/plugins/list/icons/numberedlist.png
new file mode 100644
index 0000000..44e5726
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/list/icons/numberedlist.png differ
diff --git a/devel/third-party/ckeditor/plugins/list/lang/af.js b/devel/third-party/ckeditor/plugins/list/lang/af.js
new file mode 100644
index 0000000..da649fb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'af', {
+ bulletedlist: 'Ongenommerde lys',
+ numberedlist: 'Genommerde lys'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ar.js b/devel/third-party/ckeditor/plugins/list/lang/ar.js
new file mode 100644
index 0000000..b651e84
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ar', {
+ bulletedlist: 'ادخاÙ/ØØ°Ù تعداد ÙÙØ·Ù',
+ numberedlist: 'ادخاÙ/ØØ°Ù تعداد رÙÙ
Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/bg.js b/devel/third-party/ckeditor/plugins/list/lang/bg.js
new file mode 100644
index 0000000..a1af712
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'bg', {
+ bulletedlist: 'ÐмÑкване/ÐÑемаÑ
ване на ÑоÑков ÑпиÑÑк',
+ numberedlist: 'ÐмÑкване/ÐÑемаÑ
ване на номеÑиÑан ÑпиÑÑк'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/bn.js b/devel/third-party/ckeditor/plugins/list/lang/bn.js
new file mode 100644
index 0000000..877cd41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'bn', {
+ bulletedlist: 'বà§à¦²à§à¦ লিসà§à¦ লà§à¦¬à§à¦²',
+ numberedlist: 'সাà¦à¦à§à¦¯à¦¿à¦ লিসà§à¦à§à¦° লà§à¦¬à§à¦²'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/bs.js b/devel/third-party/ckeditor/plugins/list/lang/bs.js
new file mode 100644
index 0000000..6caf39b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'bs', {
+ bulletedlist: 'Lista',
+ numberedlist: 'Numerisana lista'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ca.js b/devel/third-party/ckeditor/plugins/list/lang/ca.js
new file mode 100644
index 0000000..b2ca4fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ca', {
+ bulletedlist: 'Llista de pics',
+ numberedlist: 'Llista numerada'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/cs.js b/devel/third-party/ckeditor/plugins/list/lang/cs.js
new file mode 100644
index 0000000..3a991dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'cs', {
+ bulletedlist: 'Odrážky',
+ numberedlist: 'ÄÃslovánÃ'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/cy.js b/devel/third-party/ckeditor/plugins/list/lang/cy.js
new file mode 100644
index 0000000..d6b6dab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'cy', {
+ bulletedlist: 'Mewnosod/Tynnu Rhestr Bwled',
+ numberedlist: 'Mewnosod/Tynnu Rhestr Rhifol'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/da.js b/devel/third-party/ckeditor/plugins/list/lang/da.js
new file mode 100644
index 0000000..d60a6a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'da', {
+ bulletedlist: 'Punktopstilling',
+ numberedlist: 'Talopstilling'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/de.js b/devel/third-party/ckeditor/plugins/list/lang/de.js
new file mode 100644
index 0000000..5bbe93c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'de', {
+ bulletedlist: 'Liste',
+ numberedlist: 'Nummerierte Liste'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/el.js b/devel/third-party/ckeditor/plugins/list/lang/el.js
new file mode 100644
index 0000000..bdea9fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'el', {
+ bulletedlist: 'ÎιÏαγÏγή/ÎÏομάκÏÏ
νÏη ÎίÏÏÎ±Ï ÎοÏ
κκίδÏν',
+ numberedlist: 'ÎιÏαγÏγή/ÎÏομάκÏÏ
νÏη ÎÏιθμημÎÎ½Î·Ï ÎίÏÏαÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/en-au.js b/devel/third-party/ckeditor/plugins/list/lang/en-au.js
new file mode 100644
index 0000000..283e816
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'en-au', {
+ bulletedlist: 'Insert/Remove Bulleted List',
+ numberedlist: 'Insert/Remove Numbered List'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/en-ca.js b/devel/third-party/ckeditor/plugins/list/lang/en-ca.js
new file mode 100644
index 0000000..3db8aad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'en-ca', {
+ bulletedlist: 'Insert/Remove Bulleted List',
+ numberedlist: 'Insert/Remove Numbered List'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/en-gb.js b/devel/third-party/ckeditor/plugins/list/lang/en-gb.js
new file mode 100644
index 0000000..119e247
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'en-gb', {
+ bulletedlist: 'Insert/Remove Bulleted List',
+ numberedlist: 'Insert/Remove Numbered List'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/en.js b/devel/third-party/ckeditor/plugins/list/lang/en.js
new file mode 100644
index 0000000..d52ecd0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'en', {
+ bulletedlist: 'Insert/Remove Bulleted List',
+ numberedlist: 'Insert/Remove Numbered List'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/eo.js b/devel/third-party/ckeditor/plugins/list/lang/eo.js
new file mode 100644
index 0000000..8b18c30
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'eo', {
+ bulletedlist: 'Bula Listo',
+ numberedlist: 'Numera Listo'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/es.js b/devel/third-party/ckeditor/plugins/list/lang/es.js
new file mode 100644
index 0000000..c365da7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'es', {
+ bulletedlist: 'Viñetas',
+ numberedlist: 'Numeración'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/et.js b/devel/third-party/ckeditor/plugins/list/lang/et.js
new file mode 100644
index 0000000..8577845
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'et', {
+ bulletedlist: 'Punktloend',
+ numberedlist: 'Numberloend'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/eu.js b/devel/third-party/ckeditor/plugins/list/lang/eu.js
new file mode 100644
index 0000000..3d2bfcc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'eu', {
+ bulletedlist: 'Buletdun Zerrenda',
+ numberedlist: 'Zenbakidun Zerrenda'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/fa.js b/devel/third-party/ckeditor/plugins/list/lang/fa.js
new file mode 100644
index 0000000..e8cef99
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'fa', {
+ bulletedlist: 'ÙÙØ±Ø³Øª ÙÙØ·ÙاÛ',
+ numberedlist: 'ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±ÙØ¯Ø§Ø±'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/fi.js b/devel/third-party/ckeditor/plugins/list/lang/fi.js
new file mode 100644
index 0000000..92b9357
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'fi', {
+ bulletedlist: 'Luottelomerkit',
+ numberedlist: 'Numerointi'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/fo.js b/devel/third-party/ckeditor/plugins/list/lang/fo.js
new file mode 100644
index 0000000..4c0c908
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'fo', {
+ bulletedlist: 'Punktmerktur listi',
+ numberedlist: 'Talmerktur listi'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/list/lang/fr-ca.js
new file mode 100644
index 0000000..259bf28
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'fr-ca', {
+ bulletedlist: 'Liste à puces',
+ numberedlist: 'Liste numérotée'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/fr.js b/devel/third-party/ckeditor/plugins/list/lang/fr.js
new file mode 100644
index 0000000..e3a89fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'fr', {
+ bulletedlist: 'Insérer/Supprimer la liste à puces',
+ numberedlist: 'Insérer/Supprimer la liste numérotée'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/gl.js b/devel/third-party/ckeditor/plugins/list/lang/gl.js
new file mode 100644
index 0000000..dc05e48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'gl', {
+ bulletedlist: 'Marcas',
+ numberedlist: 'Lista Numerada'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/gu.js b/devel/third-party/ckeditor/plugins/list/lang/gu.js
new file mode 100644
index 0000000..277b471
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'gu', {
+ bulletedlist: 'બà«àª²à«àª સà«àªàª¿',
+ numberedlist: 'સàªàªà«àª¯àª¾àªàªàª¨ સà«àªàª¿'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/he.js b/devel/third-party/ckeditor/plugins/list/lang/he.js
new file mode 100644
index 0000000..6abaa59
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'he', {
+ bulletedlist: 'רש××ת × ×§×××ת',
+ numberedlist: 'רש××× ×××ספרת'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/hi.js b/devel/third-party/ckeditor/plugins/list/lang/hi.js
new file mode 100644
index 0000000..f551a61
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'hi', {
+ bulletedlist: 'बà¥à¤²à¥
ठसà¥à¤à¥',
+ numberedlist: 'à¤
à¤à¤à¥à¤¯ सà¥à¤à¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/hr.js b/devel/third-party/ckeditor/plugins/list/lang/hr.js
new file mode 100644
index 0000000..c276041
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'hr', {
+ bulletedlist: 'ObiÄna lista',
+ numberedlist: 'BrojÄana lista'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/hu.js b/devel/third-party/ckeditor/plugins/list/lang/hu.js
new file mode 100644
index 0000000..b6f960c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'hu', {
+ bulletedlist: 'Felsorolás',
+ numberedlist: 'Számozás'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/is.js b/devel/third-party/ckeditor/plugins/list/lang/is.js
new file mode 100644
index 0000000..b43a76d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'is', {
+ bulletedlist: 'Punktalisti',
+ numberedlist: 'Númeraður listi'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/it.js b/devel/third-party/ckeditor/plugins/list/lang/it.js
new file mode 100644
index 0000000..2e27a3a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'it', {
+ bulletedlist: 'Elenco puntato',
+ numberedlist: 'Elenco numerato'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ja.js b/devel/third-party/ckeditor/plugins/list/lang/ja.js
new file mode 100644
index 0000000..4577d48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ja', {
+ bulletedlist: 'ç®æ¡æ¸ã',
+ numberedlist: '段è½çªå·'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ka.js b/devel/third-party/ckeditor/plugins/list/lang/ka.js
new file mode 100644
index 0000000..4ab934a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ka', {
+ bulletedlist: 'á¦áááááá á¡áá',
+ numberedlist: 'áááááááá ááá á¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/km.js b/devel/third-party/ckeditor/plugins/list/lang/km.js
new file mode 100644
index 0000000..60ac066
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'km', {
+ bulletedlist: 'ááááá¸áá¶áááááááá¼á',
+ numberedlist: 'ááááá¸áá¶á¢áááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ko.js b/devel/third-party/ckeditor/plugins/list/lang/ko.js
new file mode 100644
index 0000000..647009e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ko', {
+ bulletedlist: 'ìììë 목ë¡',
+ numberedlist: 'ìììë 목ë¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ku.js b/devel/third-party/ckeditor/plugins/list/lang/ku.js
new file mode 100644
index 0000000..ac4016a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ku', {
+ bulletedlist: 'Ø¯Ø§ÙØ§Ù/ÙØ§Ø¨Ø±Ø¯ÙÛ Ø®Ø§ÚµÛ ÙÛØ³Øª',
+ numberedlist: 'Ø¯Ø§ÙØ§Ù/ÙØ§Ø¨Ø±Ø¯ÙÛ ÚÙ
ارÛÛ ÙÛØ³Øª'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/lt.js b/devel/third-party/ckeditor/plugins/list/lang/lt.js
new file mode 100644
index 0000000..a787c7b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'lt', {
+ bulletedlist: 'Suženklintas sÄ
rašas',
+ numberedlist: 'Numeruotas sÄ
rašas'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/lv.js b/devel/third-party/ckeditor/plugins/list/lang/lv.js
new file mode 100644
index 0000000..316c6be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'lv', {
+ bulletedlist: 'Pievienot/NoÅemt vienkÄrÅ¡u sarakstu',
+ numberedlist: 'NumurÄts saraksts'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/mk.js b/devel/third-party/ckeditor/plugins/list/lang/mk.js
new file mode 100644
index 0000000..08332ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'mk', {
+ bulletedlist: 'Insert/Remove Bulleted List', // MISSING
+ numberedlist: 'Insert/Remove Numbered List' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/mn.js b/devel/third-party/ckeditor/plugins/list/lang/mn.js
new file mode 100644
index 0000000..88db782
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'mn', {
+ bulletedlist: 'ЦÑгÑÑй жагÑаалÑ',
+ numberedlist: 'ÐÑгааÑлагдÑан жагÑаалÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ms.js b/devel/third-party/ckeditor/plugins/list/lang/ms.js
new file mode 100644
index 0000000..26f6fd0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ms', {
+ bulletedlist: 'Senarai tidak bernombor',
+ numberedlist: 'Senarai bernombor'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/nb.js b/devel/third-party/ckeditor/plugins/list/lang/nb.js
new file mode 100644
index 0000000..8a6e0b6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'nb', {
+ bulletedlist: 'Legg til/Fjern punktmerket liste',
+ numberedlist: 'Legg til/Fjern nummerert liste'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/nl.js b/devel/third-party/ckeditor/plugins/list/lang/nl.js
new file mode 100644
index 0000000..9ac8a5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'nl', {
+ bulletedlist: 'Opsomming',
+ numberedlist: 'Genummerde lijst'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/no.js b/devel/third-party/ckeditor/plugins/list/lang/no.js
new file mode 100644
index 0000000..aeb892d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'no', {
+ bulletedlist: 'Legg til/Fjern punktmerket liste',
+ numberedlist: 'Legg til/Fjern nummerert liste'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/pl.js b/devel/third-party/ckeditor/plugins/list/lang/pl.js
new file mode 100644
index 0000000..b59f9d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'pl', {
+ bulletedlist: 'Lista wypunktowana',
+ numberedlist: 'Lista numerowana'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/pt-br.js b/devel/third-party/ckeditor/plugins/list/lang/pt-br.js
new file mode 100644
index 0000000..4807c76
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'pt-br', {
+ bulletedlist: 'Lista sem números',
+ numberedlist: 'Lista numerada'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/pt.js b/devel/third-party/ckeditor/plugins/list/lang/pt.js
new file mode 100644
index 0000000..ed939a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'pt', {
+ bulletedlist: 'Marcas',
+ numberedlist: 'Numeração'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ro.js b/devel/third-party/ckeditor/plugins/list/lang/ro.js
new file mode 100644
index 0000000..7557edb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ro', {
+ bulletedlist: 'InsereazÄ / EliminÄ ListÄ cu puncte',
+ numberedlist: 'InsereazÄ / EliminÄ ListÄ numerotatÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ru.js b/devel/third-party/ckeditor/plugins/list/lang/ru.js
new file mode 100644
index 0000000..475fc30
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ru', {
+ bulletedlist: 'ÐÑÑавиÑÑ / ÑдалиÑÑ Ð¼Ð°ÑкиÑованнÑй ÑпиÑок',
+ numberedlist: 'ÐÑÑавиÑÑ / ÑдалиÑÑ Ð½ÑмеÑованнÑй ÑпиÑок'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/sk.js b/devel/third-party/ckeditor/plugins/list/lang/sk.js
new file mode 100644
index 0000000..42debc2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'sk', {
+ bulletedlist: 'Vložiť/Odstrániť zoznam s odrážkami',
+ numberedlist: 'VložiÅ¥/OdstrániÅ¥ ÄÃslovaný zoznam'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/sl.js b/devel/third-party/ckeditor/plugins/list/lang/sl.js
new file mode 100644
index 0000000..8e5be6a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'sl', {
+ bulletedlist: 'OznaÄen seznam',
+ numberedlist: 'OÅ¡tevilÄen seznam'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/list/lang/sr-latn.js
new file mode 100644
index 0000000..0d9ecc6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'sr-latn', {
+ bulletedlist: 'Nenabrojiva lista',
+ numberedlist: 'Nabrojiva lista'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/sr.js b/devel/third-party/ckeditor/plugins/list/lang/sr.js
new file mode 100644
index 0000000..243836c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'sr', {
+ bulletedlist: 'ÐенабÑоÑива лиÑÑа',
+ numberedlist: 'ÐабÑоÑÐ¸Ð²Ñ Ð»Ð¸ÑÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/sv.js b/devel/third-party/ckeditor/plugins/list/lang/sv.js
new file mode 100644
index 0000000..179ccea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'sv', {
+ bulletedlist: 'Punktlista',
+ numberedlist: 'Numrerad lista'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/th.js b/devel/third-party/ckeditor/plugins/list/lang/th.js
new file mode 100644
index 0000000..22f7895
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'th', {
+ bulletedlist: 'ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹',
+ numberedlist: 'ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/tr.js b/devel/third-party/ckeditor/plugins/list/lang/tr.js
new file mode 100644
index 0000000..afa2a98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'tr', {
+ bulletedlist: 'Simgeli Liste',
+ numberedlist: 'Numaralı Liste'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/ug.js b/devel/third-party/ckeditor/plugins/list/lang/ug.js
new file mode 100644
index 0000000..59fed9b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'ug', {
+ bulletedlist: 'ØªÛØ± بÛÙÚ¯Û ØªÙØ²ÙÙ
Ù',
+ numberedlist: 'ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ± ØªÙØ²ÙÙ
Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/uk.js b/devel/third-party/ckeditor/plugins/list/lang/uk.js
new file mode 100644
index 0000000..0df05c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'uk', {
+ bulletedlist: 'ÐаÑкÑÑований ÑпиÑок',
+ numberedlist: 'ÐÑмеÑований ÑпиÑок'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/vi.js b/devel/third-party/ckeditor/plugins/list/lang/vi.js
new file mode 100644
index 0000000..909c0e4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'vi', {
+ bulletedlist: 'Chèn/Xoá Danh sách không thứ tự',
+ numberedlist: 'Chèn/Xoá Danh sách có thứ tự'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/list/lang/zh-cn.js
new file mode 100644
index 0000000..1f4021d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'zh-cn', {
+ bulletedlist: '项ç®å表',
+ numberedlist: 'ç¼å·å表'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/lang/zh.js b/devel/third-party/ckeditor/plugins/list/lang/zh.js
new file mode 100644
index 0000000..7d5fb5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/list/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'list', 'zh', {
+ bulletedlist: 'é
ç®æ¸
å®',
+ numberedlist: 'ç·¨èæ¸
å®'
+});
diff --git a/devel/third-party/ckeditor/plugins/list/plugin.js b/devel/third-party/ckeditor/plugins/list/plugin.js
index b0d5e8c..355a9a7 100644
--- a/devel/third-party/ckeditor/plugins/list/plugin.js
+++ b/devel/third-party/ckeditor/plugins/list/plugin.js
@@ -1,26 +1,54 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Insert and remove numbered and bulleted lists.
+ * @fileOverview Insert and remove numbered and bulleted lists.
*/
-(function()
-{
- var listNodeNames = { ol : 1, ul : 1 },
+(function() {
+ var listNodeNames = { ol:1,ul:1 },
emptyTextRegex = /^[\n\r\t ]*$/;
+ var whitespaces = CKEDITOR.dom.walker.whitespaces(),
+ bookmarks = CKEDITOR.dom.walker.bookmark(),
+ nonEmpty = function( node ) {
+ return !( whitespaces( node ) || bookmarks( node ) );
+ },
+ blockBogus = CKEDITOR.dom.walker.bogus();
+
+ function cleanUpDirection( element ) {
+ var dir, parent, parentDir;
+ if ( ( dir = element.getDirection() ) ) {
+ parent = element.getParent();
+ while ( parent && !( parentDir = parent.getDirection() ) )
+ parent = parent.getParent();
+
+ if ( dir == parentDir )
+ element.removeAttribute( 'dir' );
+ }
+ }
+
+ // Inheirt inline styles from another element.
+ function inheirtInlineStyles( parent, el ) {
+ var style = parent.getAttribute( 'style' );
+
+ // Put parent styles before child styles.
+ style && el.setAttribute( 'style', style.replace( /([^;])$/, '$1;' ) + ( el.getAttribute( 'style' ) || '' ) );
+ }
+
CKEDITOR.plugins.list = {
- /*
+ /**
* Convert a DOM list tree into a data structure that is easier to
* manipulate. This operation should be non-intrusive in the sense that it
* does not change the DOM tree, with the exception that it may add some
* markers to the list item nodes when database is specified.
+ *
+ * @member CKEDITOR.plugins.list
+ * @todo params
*/
- listToArray : function( listNode, database, baseArray, baseIndentLevel, grandparentNode )
- {
+ listToArray: function( listNode, database, baseArray, baseIndentLevel, grandparentNode ) {
if ( !listNodeNames[ listNode.getName() ] )
return [];
@@ -30,35 +58,35 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
baseArray = [];
// Iterate over all list items to and look for inner lists.
- for ( var i = 0, count = listNode.getChildCount() ; i < count ; i++ )
- {
+ for ( var i = 0, count = listNode.getChildCount(); i < count; i++ ) {
var listItem = listNode.getChild( i );
+ // Fixing malformed nested lists by moving it into a previous list item. (#6236)
+ if ( listItem.type == CKEDITOR.NODE_ELEMENT && listItem.getName() in CKEDITOR.dtd.$list )
+ CKEDITOR.plugins.list.listToArray( listItem, database, baseArray, baseIndentLevel + 1 );
+
// It may be a text node or some funny stuff.
if ( listItem.$.nodeName.toLowerCase() != 'li' )
continue;
- var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem, contents : [] };
- if ( !grandparentNode )
- {
+ var itemObj = { 'parent': listNode, indent: baseIndentLevel, element: listItem, contents: [] };
+ if ( !grandparentNode ) {
itemObj.grandparent = listNode.getParent();
if ( itemObj.grandparent && itemObj.grandparent.$.nodeName.toLowerCase() == 'li' )
itemObj.grandparent = itemObj.grandparent.getParent();
- }
- else
+ } else
itemObj.grandparent = grandparentNode;
if ( database )
CKEDITOR.dom.element.setMarker( database, listItem, 'listarray_index', baseArray.length );
baseArray.push( itemObj );
- for ( var j = 0, itemChildCount = listItem.getChildCount(), child; j < itemChildCount ; j++ )
- {
+ for ( var j = 0, itemChildCount = listItem.getChildCount(), child; j < itemChildCount; j++ ) {
child = listItem.getChild( j );
if ( child.type == CKEDITOR.NODE_ELEMENT && listNodeNames[ child.getName() ] )
- // Note the recursion here, it pushes inner list items with
- // +1 indentation in the correct order.
- CKEDITOR.plugins.list.listToArray( child, database, baseArray, baseIndentLevel + 1, itemObj.grandparent );
+ // Note the recursion here, it pushes inner list items with
+ // +1 indentation in the correct order.
+ CKEDITOR.plugins.list.listToArray( child, database, baseArray, baseIndentLevel + 1, itemObj.grandparent );
else
itemObj.contents.push( child );
}
@@ -66,83 +94,113 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return baseArray;
},
- // Convert our internal representation of a list back to a DOM forest.
- arrayToList : function( listArray, database, baseIndex, paragraphMode, dir )
- {
+ /**
+ * Convert our internal representation of a list back to a DOM forest.
+ *
+ * @member CKEDITOR.plugins.list
+ * @todo params
+ */
+ arrayToList: function( listArray, database, baseIndex, paragraphMode, dir ) {
if ( !baseIndex )
baseIndex = 0;
if ( !listArray || listArray.length < baseIndex + 1 )
return null;
- var doc = listArray[ baseIndex ].parent.getDocument(),
+ var i,
+ doc = listArray[ baseIndex ].parent.getDocument(),
retval = new CKEDITOR.dom.documentFragment( doc ),
rootNode = null,
currentIndex = baseIndex,
indentLevel = Math.max( listArray[ baseIndex ].indent, 0 ),
currentListItem = null,
+ orgDir, block,
paragraphName = ( paragraphMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
- while ( true )
- {
- var item = listArray[ currentIndex ];
- if ( item.indent == indentLevel )
- {
- if ( !rootNode || listArray[ currentIndex ].parent.getName() != rootNode.getName() )
- {
- rootNode = listArray[ currentIndex ].parent.clone( false, true );
+ while ( 1 ) {
+ var item = listArray[ currentIndex ],
+ itemGrandParent = item.grandparent;
+
+ orgDir = item.element.getDirection( 1 );
+
+ if ( item.indent == indentLevel ) {
+ if ( !rootNode || listArray[ currentIndex ].parent.getName() != rootNode.getName() ) {
+ rootNode = listArray[ currentIndex ].parent.clone( false, 1 );
+ dir && rootNode.setAttribute( 'dir', dir );
retval.append( rootNode );
}
- currentListItem = rootNode.append( item.element.clone( false, true ) );
- for ( var i = 0 ; i < item.contents.length ; i++ )
- currentListItem.append( item.contents[i].clone( true, true ) );
+ currentListItem = rootNode.append( item.element.clone( 0, 1 ) );
+
+ if ( orgDir != rootNode.getDirection( 1 ) )
+ currentListItem.setAttribute( 'dir', orgDir );
+
+ for ( i = 0; i < item.contents.length; i++ )
+ currentListItem.append( item.contents[ i ].clone( 1, 1 ) );
currentIndex++;
- }
- else if ( item.indent == Math.max( indentLevel, 0 ) + 1 )
- {
- var listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode );
+ } else if ( item.indent == Math.max( indentLevel, 0 ) + 1 ) {
+ // Maintain original direction (#6861).
+ var currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ),
+ listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode, currDir != orgDir ? orgDir : null );
+
+ // If the next block is an <li> with another list tree as the first
+ // child, we'll need to append a filler (<br>/NBSP) or the list item
+ // wouldn't be editable. (#6724)
+ if ( !currentListItem.getChildCount() && CKEDITOR.env.ie && !( doc.$.documentMode > 7 ) )
+ currentListItem.append( doc.createText( '\xa0' ) );
currentListItem.append( listData.listNode );
currentIndex = listData.nextIndex;
- }
- else if ( item.indent == -1 && !baseIndex && item.grandparent )
- {
- currentListItem;
- if ( listNodeNames[ item.grandparent.getName() ] )
+ } else if ( item.indent == -1 && !baseIndex && itemGrandParent ) {
+ if ( listNodeNames[ itemGrandParent.getName() ] ) {
currentListItem = item.element.clone( false, true );
- else
- {
- // Create completely new blocks here, attributes are dropped.
- if ( dir || ( paragraphMode != CKEDITOR.ENTER_BR && item.grandparent.getName() != 'td' ) )
- {
- currentListItem = doc.createElement( paragraphName );
- if ( dir )
- currentListItem.setAttribute( 'dir', dir );
- }
- else
- currentListItem = new CKEDITOR.dom.documentFragment( doc );
- }
+ if ( orgDir != itemGrandParent.getDirection( 1 ) )
+ currentListItem.setAttribute( 'dir', orgDir );
+ } else
+ currentListItem = new CKEDITOR.dom.documentFragment( doc );
+
+ // Migrate all children to the new container,
+ // apply the proper text direction.
+ var dirLoose = itemGrandParent.getDirection( 1 ) != orgDir,
+ li = item.element,
+ className = li.getAttribute( 'class' ),
+ style = li.getAttribute( 'style' );
+
+ var needsBlock = currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT && ( paragraphMode != CKEDITOR.ENTER_BR || dirLoose || style || className );
+
+ var child,
+ count = item.contents.length;
+ for ( i = 0; i < count; i++ ) {
+ child = item.contents[ i ];
+
+ if ( child.type == CKEDITOR.NODE_ELEMENT && child.isBlockBoundary() ) {
+ // Apply direction on content blocks.
+ if ( dirLoose && !child.getDirection() )
+ child.setAttribute( 'dir', orgDir );
+
+ inheirtInlineStyles( li, child );
+
+ className && child.addClass( className );
+ } else if ( needsBlock ) {
+ // Establish new block to hold text direction and styles.
+ if ( !block ) {
+ block = doc.createElement( paragraphName );
+ dirLoose && block.setAttribute( 'dir', orgDir );
+ }
- for ( i = 0 ; i < item.contents.length ; i++ )
- currentListItem.append( item.contents[i].clone( true, true ) );
+ // Copy over styles to new block;
+ style && block.setAttribute( 'style', style );
+ className && block.setAttribute( 'class', className );
- if ( currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT
- && currentIndex != listArray.length - 1 )
- {
- if ( currentListItem.getLast()
- && currentListItem.getLast().type == CKEDITOR.NODE_ELEMENT
- && currentListItem.getLast().getAttribute( 'type' ) == '_moz' )
- currentListItem.getLast().remove();
- currentListItem.appendBogus();
+ block.append( child.clone( 1, 1 ) );
+ }
+
+ currentListItem.append( block || child.clone( 1, 1 ) );
}
- if ( currentListItem.type == CKEDITOR.NODE_ELEMENT &&
- currentListItem.getName() == paragraphName &&
- currentListItem.$.firstChild )
- {
- currentListItem.trim();
- var firstChild = currentListItem.getFirst();
- if ( firstChild.type == CKEDITOR.NODE_ELEMENT && firstChild.isBlockBoundary() )
- {
- var tmp = new CKEDITOR.dom.documentFragment( doc );
- currentListItem.moveChildren( tmp );
- currentListItem = tmp;
+ if ( currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT && currentIndex != listArray.length - 1 ) {
+ var last = currentListItem.getLast();
+ if ( last && last.type == CKEDITOR.NODE_ELEMENT && last.getAttribute( 'type' ) == '_moz' ) {
+ last.remove();
+ }
+
+ if ( !( last = currentListItem.getLast( nonEmpty ) && last.type == CKEDITOR.NODE_ELEMENT && last.getName() in CKEDITOR.dtd.$block ) ) {
+ currentListItem.append( doc.createElement( 'br' ) );
}
}
@@ -152,58 +210,38 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
retval.append( currentListItem );
rootNode = null;
currentIndex++;
- }
- else
+ } else
return null;
+ block = null;
+
if ( listArray.length <= currentIndex || Math.max( listArray[ currentIndex ].indent, 0 ) < indentLevel )
break;
}
- // Clear marker attributes for the new list tree made of cloned nodes, if any.
- if ( database )
- {
- var currentNode = retval.getFirst();
- while ( currentNode )
- {
- if ( currentNode.type == CKEDITOR.NODE_ELEMENT )
+ if ( database ) {
+ var currentNode = retval.getFirst(),
+ listRoot = listArray[ 0 ].parent;
+
+ while ( currentNode ) {
+ if ( currentNode.type == CKEDITOR.NODE_ELEMENT ) {
+ // Clear marker attributes for the new list tree made of cloned nodes, if any.
CKEDITOR.dom.element.clearMarkers( database, currentNode );
+
+ // Clear redundant direction attribute specified on list items.
+ if ( currentNode.getName() in CKEDITOR.dtd.$listItem )
+ cleanUpDirection( currentNode );
+ }
+
currentNode = currentNode.getNextSourceNode();
}
}
- return { listNode : retval, nextIndex : currentIndex };
+ return { listNode: retval, nextIndex: currentIndex };
}
};
- function setState( editor, state )
- {
- editor.getCommand( this.name ).setState( state );
- }
-
- function onSelectionChange( evt )
- {
- var path = evt.data.path,
- blockLimit = path.blockLimit,
- elements = path.elements,
- element;
-
- // Grouping should only happen under blockLimit.(#3940).
- for ( var i = 0 ; i < elements.length && ( element = elements[ i ] )
- && !element.equals( blockLimit ); i++ )
- {
- if ( listNodeNames[ elements[i].getName() ] )
- {
- return setState.call( this, evt.editor,
- this.type == elements[i].getName() ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
- }
- }
-
- return setState.call( this, evt.editor, CKEDITOR.TRISTATE_OFF );
- }
-
- function changeListType( editor, groupObj, database, listsCreated )
- {
+ function changeListType( editor, groupObj, database, listsCreated ) {
// This case is easy...
// 1. Convert the whole list into a one-dimensional array.
// 2. Change the list type by modifying the array.
@@ -212,9 +250,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var listArray = CKEDITOR.plugins.list.listToArray( groupObj.root, database ),
selectedListItems = [];
- for ( var i = 0 ; i < groupObj.contents.length ; i++ )
- {
- var itemNode = groupObj.contents[i];
+ for ( var i = 0; i < groupObj.contents.length; i++ ) {
+ var itemNode = groupObj.contents[ i ];
itemNode = itemNode.getAscendant( 'li', true );
if ( !itemNode || itemNode.getCustomData( 'list_item_processed' ) )
continue;
@@ -223,21 +260,28 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
var root = groupObj.root,
- fakeParent = root.getDocument().createElement( this.type );
- // Copy all attributes, except from 'start' and 'type'.
- root.copyAttributes( fakeParent, { start : 1, type : 1 } );
- // The list-style-type property should be ignored.
- fakeParent.removeStyle( 'list-style-type' );
-
- for ( i = 0 ; i < selectedListItems.length ; i++ )
- {
- var listIndex = selectedListItems[i].getCustomData( 'listarray_index' );
- listArray[listIndex].parent = fakeParent;
+ doc = root.getDocument(),
+ listNode, newListNode;
+
+ for ( i = 0; i < selectedListItems.length; i++ ) {
+ var listIndex = selectedListItems[ i ].getCustomData( 'listarray_index' );
+ listNode = listArray[ listIndex ].parent;
+
+ // Switch to new list node for this particular item.
+ if ( !listNode.is( this.type ) ) {
+ newListNode = doc.createElement( this.type );
+ // Copy all attributes, except from 'start' and 'type'.
+ listNode.copyAttributes( newListNode, { start:1,type:1 } );
+ // The list-style-type property should be ignored.
+ newListNode.removeStyle( 'list-style-type' );
+ listArray[ listIndex ].parent = newListNode;
+ }
}
+
var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode );
- var child, length = newList.listNode.getChildCount();
- for ( i = 0 ; i < length && ( child = newList.listNode.getChild( i ) ) ; i++ )
- {
+ var child,
+ length = newList.listNode.getChildCount();
+ for ( i = 0; i < length && ( child = newList.listNode.getChild( i ) ); i++ ) {
if ( child.getName() == this.type )
listsCreated.push( child );
}
@@ -246,8 +290,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var headerTagRegex = /^h[1-6]$/;
- function createList( editor, groupObj, listsCreated )
- {
+ function createList( editor, groupObj, listsCreated ) {
var contents = groupObj.contents,
doc = groupObj.root.getDocument(),
listContents = [];
@@ -255,30 +298,46 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// It is possible to have the contents returned by DomRangeIterator to be the same as the root.
// e.g. when we're running into table cells.
// In such a case, enclose the childNodes of contents[0] into a <div>.
- if ( contents.length == 1 && contents[0].equals( groupObj.root ) )
- {
+ if ( contents.length == 1 && contents[ 0 ].equals( groupObj.root ) ) {
var divBlock = doc.createElement( 'div' );
- contents[0].moveChildren && contents[0].moveChildren( divBlock );
- contents[0].append( divBlock );
- contents[0] = divBlock;
+ contents[ 0 ].moveChildren && contents[ 0 ].moveChildren( divBlock );
+ contents[ 0 ].append( divBlock );
+ contents[ 0 ] = divBlock;
}
// Calculate the common parent node of all content blocks.
- var commonParent = groupObj.contents[0].getParent();
- for ( var i = 0 ; i < contents.length ; i++ )
- commonParent = commonParent.getCommonAncestor( contents[i].getParent() );
+ var commonParent = groupObj.contents[ 0 ].getParent();
+ for ( var i = 0; i < contents.length; i++ )
+ commonParent = commonParent.getCommonAncestor( contents[ i ].getParent() );
+
+ var useComputedState = editor.config.useComputedState,
+ listDir, explicitDirection;
+
+ useComputedState = useComputedState === undefined || useComputedState;
// We want to insert things that are in the same tree level only, so calculate the contents again
// by expanding the selected blocks to the same tree level.
- for ( i = 0 ; i < contents.length ; i++ )
- {
- var contentNode = contents[i],
+ for ( i = 0; i < contents.length; i++ ) {
+ var contentNode = contents[ i ],
parentNode;
- while ( ( parentNode = contentNode.getParent() ) )
- {
- if ( parentNode.equals( commonParent ) )
- {
+ while ( ( parentNode = contentNode.getParent() ) ) {
+ if ( parentNode.equals( commonParent ) ) {
listContents.push( contentNode );
+
+ // Determine the lists's direction.
+ if ( !explicitDirection && contentNode.getDirection() )
+ explicitDirection = 1;
+
+ var itemDir = contentNode.getDirection( useComputedState );
+
+ if ( listDir !== null ) {
+ // If at least one LI have a different direction than current listDir, we can't have listDir.
+ if ( listDir && listDir != itemDir )
+ listDir = null;
+ else
+ listDir = itemDir;
+ }
+
break;
}
contentNode = parentNode;
@@ -290,39 +349,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Insert the list to the DOM tree.
var insertAnchor = listContents[ listContents.length - 1 ].getNext(),
- listNode = doc.createElement( this.type ),
- dir;
+ listNode = doc.createElement( this.type );
listsCreated.push( listNode );
- while ( listContents.length )
- {
- var contentBlock = listContents.shift(),
- listItem = doc.createElement( 'li' );
+
+ var contentBlock, listItem;
+
+ while ( listContents.length ) {
+ contentBlock = listContents.shift();
+ listItem = doc.createElement( 'li' );
// Preserve preformat block and heading structure when converting to list item. (#5335) (#5271)
if ( contentBlock.is( 'pre' ) || headerTagRegex.test( contentBlock.getName() ) )
contentBlock.appendTo( listItem );
- else
- {
- if ( contentBlock.hasAttribute( 'dir' ) )
- {
- dir = dir || contentBlock.getAttribute( 'dir' );
- contentBlock.removeAttribute( 'dir' );
- }
+ else {
contentBlock.copyAttributes( listItem );
+ // Remove direction attribute after it was merged into list root. (#7657)
+ if ( listDir && contentBlock.getDirection() ) {
+ listItem.removeStyle( 'direction' );
+ listItem.removeAttribute( 'dir' );
+ }
contentBlock.moveChildren( listItem );
contentBlock.remove();
-
- // Append a bogus BR to force the LI to render at full height
- if ( !CKEDITOR.env.ie )
- listItem.appendBogus();
}
listItem.appendTo( listNode );
}
- if ( dir )
- listNode.setAttribute( 'dir', dir );
+ // Apply list root dir only if it has been explicitly declared.
+ if ( listDir && explicitDirection )
+ listNode.setAttribute( 'dir', listDir );
if ( insertAnchor )
listNode.insertBefore( insertAnchor );
@@ -330,16 +386,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
listNode.appendTo( commonParent );
}
- function removeList( editor, groupObj, database )
- {
+ function removeList( editor, groupObj, database ) {
// This is very much like the change list type operation.
// Except that we're changing the selected items' indent to -1 in the list array.
var listArray = CKEDITOR.plugins.list.listToArray( groupObj.root, database ),
selectedListItems = [];
- for ( var i = 0 ; i < groupObj.contents.length ; i++ )
- {
- var itemNode = groupObj.contents[i];
+ for ( var i = 0; i < groupObj.contents.length; i++ ) {
+ var itemNode = groupObj.contents[ i ];
itemNode = itemNode.getAscendant( 'li', true );
if ( !itemNode || itemNode.getCustomData( 'list_item_processed' ) )
continue;
@@ -348,43 +402,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
var lastListIndex = null;
- for ( i = 0 ; i < selectedListItems.length ; i++ )
- {
- var listIndex = selectedListItems[i].getCustomData( 'listarray_index' );
- listArray[listIndex].indent = -1;
+ for ( i = 0; i < selectedListItems.length; i++ ) {
+ var listIndex = selectedListItems[ i ].getCustomData( 'listarray_index' );
+ listArray[ listIndex ].indent = -1;
lastListIndex = listIndex;
}
// After cutting parts of the list out with indent=-1, we still have to maintain the array list
// model's nextItem.indent <= currentItem.indent + 1 invariant. Otherwise the array model of the
// list cannot be converted back to a real DOM list.
- for ( i = lastListIndex + 1 ; i < listArray.length ; i++ )
- {
- if ( listArray[i].indent > listArray[i-1].indent + 1 )
- {
- var indentOffset = listArray[i-1].indent + 1 - listArray[i].indent;
- var oldIndent = listArray[i].indent;
- while ( listArray[i] && listArray[i].indent >= oldIndent )
- {
- listArray[i].indent += indentOffset;
+ for ( i = lastListIndex + 1; i < listArray.length; i++ ) {
+ if ( listArray[ i ].indent > listArray[ i - 1 ].indent + 1 ) {
+ var indentOffset = listArray[ i - 1 ].indent + 1 - listArray[ i ].indent;
+ var oldIndent = listArray[ i ].indent;
+ while ( listArray[ i ] && listArray[ i ].indent >= oldIndent ) {
+ listArray[ i ].indent += indentOffset;
i++;
}
i--;
}
}
- var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode,
- groupObj.root.getAttribute( 'dir' ) );
+ var newList = CKEDITOR.plugins.list.arrayToList( listArray, database, null, editor.config.enterMode, groupObj.root.getAttribute( 'dir' ) );
// Compensate <br> before/after the list node if the surrounds are non-blocks.(#3836)
- var docFragment = newList.listNode, boundaryNode, siblingNode;
- function compensateBrs( isStart )
- {
- if ( ( boundaryNode = docFragment[ isStart ? 'getFirst' : 'getLast' ]() )
- && !( boundaryNode.is && boundaryNode.isBlockBoundary() )
- && ( siblingNode = groupObj.root[ isStart ? 'getPrevious' : 'getNext' ]
- ( CKEDITOR.dom.walker.whitespaces( true ) ) )
- && !( siblingNode.is && siblingNode.isBlockBoundary( { br : 1 } ) ) )
+ var docFragment = newList.listNode,
+ boundaryNode, siblingNode;
+
+ function compensateBrs( isStart ) {
+ if ( ( boundaryNode = docFragment[ isStart ? 'getFirst' : 'getLast' ]() ) && !( boundaryNode.is && boundaryNode.isBlockBoundary() ) && ( siblingNode = groupObj.root[ isStart ? 'getPrevious' : 'getNext' ]
+ ( CKEDITOR.dom.walker.invisible( true ) ) ) && !( siblingNode.is && siblingNode.isBlockBoundary( { br:1 } ) ) )
editor.document.createElement( 'br' )[ isStart ? 'insertBefore' : 'insertAfter' ]( boundaryNode );
}
compensateBrs( true );
@@ -393,59 +440,54 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
docFragment.replace( groupObj.root );
}
- function listCommand( name, type )
- {
+ function listCommand( name, type ) {
this.name = name;
this.type = type;
+ this.context = type;
+ }
+
+ var elementType = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT );
+
+ // Merge child nodes with direction preserved. (#7448)
+ function mergeChildren( from, into, refNode, forward ) {
+ var child, itemDir;
+ while ( ( child = from[ forward ? 'getLast' : 'getFirst' ]( elementType ) ) ) {
+ if ( ( itemDir = child.getDirection( 1 ) ) !== into.getDirection( 1 ) )
+ child.setAttribute( 'dir', itemDir );
+
+ child.remove();
+
+ refNode ? child[ forward ? 'insertBefore' : 'insertAfter' ]( refNode ) : into.append( child, forward );
+ }
}
listCommand.prototype = {
- exec : function( editor )
- {
- editor.focus();
+ exec: function( editor ) {
+ // Run state check first of all.
+ this.refresh( editor, editor.elementPath() );
var doc = editor.document,
+ config = editor.config,
selection = editor.getSelection(),
ranges = selection && selection.getRanges( true );
- // There should be at least one selected range.
- if ( !ranges || ranges.length < 1 )
- return;
-
// Midas lists rule #1 says we can create a list even in an empty document.
// But DOM iterator wouldn't run if the document is really empty.
// So create a paragraph if the document is empty and we're going to create a list.
- if ( this.state == CKEDITOR.TRISTATE_OFF )
- {
- var body = doc.getBody();
- body.trim();
- if ( !body.getFirst() )
- {
- var paragraph = doc.createElement( editor.config.enterMode == CKEDITOR.ENTER_P ? 'p' :
- ( editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'br' ) );
- paragraph.appendTo( body );
- ranges = new CKEDITOR.dom.rangeList( [ new CKEDITOR.dom.range( doc ) ] );
- // IE exception on inserting anything when anchor inside <br>.
- if ( paragraph.is( 'br' ) )
- {
- ranges[ 0 ].setStartBefore( paragraph );
- ranges[ 0 ].setEndAfter( paragraph );
- }
- else
- ranges[ 0 ].selectNodeContents( paragraph );
+ if ( this.state == CKEDITOR.TRISTATE_OFF ) {
+ var editable = editor.editable();
+ if ( !editable.getFirst( nonEmpty ) ) {
+ config.enterMode == CKEDITOR.ENTER_BR ? editable.appendBogus() : ranges[ 0 ].fixBlock( 1, config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
+
selection.selectRanges( ranges );
}
// Maybe a single range there enclosing the whole list,
// turn on the list state manually(#4129).
- else
- {
+ else {
var range = ranges.length == 1 && ranges[ 0 ],
enclosedNode = range && range.getEnclosedNode();
- if ( enclosedNode && enclosedNode.is
- && this.type == enclosedNode.getName() )
- {
- setState.call( this, editor, CKEDITOR.TRISTATE_ON );
- }
+ if ( enclosedNode && enclosedNode.is && this.type == enclosedNode.getName() )
+ this.setState( CKEDITOR.TRISTATE_ON );
}
}
@@ -458,8 +500,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
rangeIterator = ranges.createIterator(),
index = 0;
- while ( ( range = rangeIterator.getNextRange() ) && ++index )
- {
+ while ( ( range = rangeIterator.getNextRange() ) && ++index ) {
var boundaryNodes = range.getBoundaryNodes(),
startNode = boundaryNodes.startNode,
endNode = boundaryNodes.endNode;
@@ -475,27 +516,24 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
iterator.forceBrBreak = ( this.state == CKEDITOR.TRISTATE_OFF );
- while ( ( block = iterator.getNextParagraph() ) )
- {
+ while ( ( block = iterator.getNextParagraph() ) ) {
// Avoid duplicate blocks get processed across ranges.
- if( block.getCustomData( 'list_block' ) )
+ if ( block.getCustomData( 'list_block' ) )
continue;
else
CKEDITOR.dom.element.setMarker( database, block, 'list_block', 1 );
- var path = new CKEDITOR.dom.elementPath( block ),
+ var path = editor.elementPath( block ),
pathElements = path.elements,
pathElementsCount = pathElements.length,
listNode = null,
- processedFlag = false,
+ processedFlag = 0,
blockLimit = path.blockLimit,
element;
// First, try to group by a list ancestor.
- for ( var i = pathElementsCount - 1; i >= 0 && ( element = pathElements[ i ] ); i-- )
- {
- if ( listNodeNames[ element.getName() ]
- && blockLimit.contains( element ) ) // Don't leak outside block limit (#3940).
+ for ( var i = pathElementsCount - 1; i >= 0 && ( element = pathElements[ i ] ); i-- ) {
+ if ( listNodeNames[ element.getName() ] && blockLimit.contains( element ) ) // Don't leak outside block limit (#3940).
{
// If we've encountered a list inside a block limit
// The last group object of the block limit element should
@@ -507,13 +545,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var groupObj = element.getCustomData( 'list_group_object' );
if ( groupObj )
groupObj.contents.push( block );
- else
- {
- groupObj = { root : element, contents : [ block ] };
+ else {
+ groupObj = { root: element, contents: [ block ] };
listGroups.push( groupObj );
CKEDITOR.dom.element.setMarker( database, element, 'list_group_object', groupObj );
}
- processedFlag = true;
+ processedFlag = 1;
break;
}
}
@@ -525,9 +562,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var root = blockLimit;
if ( root.getCustomData( 'list_group_object_' + index ) )
root.getCustomData( 'list_group_object_' + index ).contents.push( block );
- else
- {
- groupObj = { root : root, contents : [ block ] };
+ else {
+ groupObj = { root: root, contents: [ block ] };
CKEDITOR.dom.element.setMarker( database, root, 'list_group_object_' + index, groupObj );
listGroups.push( groupObj );
}
@@ -538,58 +574,70 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// We either have to build lists or remove lists, for removing a list does not makes sense when we are looking
// at the group that's not rooted at lists. So we have three cases to handle.
var listsCreated = [];
- while ( listGroups.length > 0 )
- {
+ while ( listGroups.length > 0 ) {
groupObj = listGroups.shift();
- if ( this.state == CKEDITOR.TRISTATE_OFF )
- {
+ if ( this.state == CKEDITOR.TRISTATE_OFF ) {
if ( listNodeNames[ groupObj.root.getName() ] )
changeListType.call( this, editor, groupObj, database, listsCreated );
else
createList.call( this, editor, groupObj, listsCreated );
- }
- else if ( this.state == CKEDITOR.TRISTATE_ON && listNodeNames[ groupObj.root.getName() ] )
+ } else if ( this.state == CKEDITOR.TRISTATE_ON && listNodeNames[ groupObj.root.getName() ] )
removeList.call( this, editor, groupObj, database );
}
- // For all new lists created, merge adjacent, same type lists.
- for ( i = 0 ; i < listsCreated.length ; i++ )
- {
- listNode = listsCreated[i];
- var mergeSibling, listCommand = this;
- ( mergeSibling = function( rtl ){
-
- var sibling = listNode[ rtl ?
- 'getPrevious' : 'getNext' ]( CKEDITOR.dom.walker.whitespaces( true ) );
- if ( sibling && sibling.getName &&
- sibling.getName() == listCommand.type )
- {
- sibling.remove();
- // Move children order by merge direction.(#3820)
- sibling.moveChildren( listNode, rtl ? true : false );
- }
- } )();
- mergeSibling( true );
- }
+ // For all new lists created, merge into adjacent, same type lists.
+ for ( i = 0; i < listsCreated.length; i++ )
+ mergeListSiblings( listsCreated[ i ] );
// Clean up, restore selection and update toolbar button states.
CKEDITOR.dom.element.clearAllMarkers( database );
selection.selectBookmarks( bookmarks );
editor.focus();
+ },
+
+ refresh: function( editor, path ) {
+ var list = path.contains( listNodeNames, 1 ),
+ limit = path.blockLimit || path.root;
+
+ // 1. Only a single type of list activate.
+ // 2. Do not show list outside of block limit.
+ if ( list && limit.contains( list ) )
+ this.setState( list.is( this.type ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
+ else
+ this.setState( CKEDITOR.TRISTATE_OFF );
}
};
var dtd = CKEDITOR.dtd;
var tailNbspRegex = /[\t\r\n ]*(?: |\xa0)$/;
- function indexOfFirstChildElement( element, tagNameList )
+ // Merge list adjacent, of same type lists.
+ function mergeListSiblings( listNode )
{
+ var mergeSibling;
+ ( mergeSibling = function( rtl )
+ {
+ var sibling = listNode[ rtl ? 'getPrevious' : 'getNext' ]( nonEmpty );
+ if ( sibling &&
+ sibling.type == CKEDITOR.NODE_ELEMENT &&
+ sibling.is( listNode.getName() ) )
+ {
+ // Move children order by merge direction.(#3820)
+ mergeChildren( listNode, sibling, null, !rtl );
+
+ listNode.remove();
+ listNode = sibling;
+ }
+ } )();
+ mergeSibling( 1 );
+ }
+
+ function indexOfFirstChildElement( element, tagNameList ) {
var child,
children = element.children,
length = children.length;
- for ( var i = 0 ; i < length ; i++ )
- {
+ for ( var i = 0; i < length; i++ ) {
child = children[ i ];
if ( child.name && ( child.name in tagNameList ) )
return i;
@@ -598,86 +646,316 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return length;
}
- function getExtendNestedListFilter( isHtmlFilter )
- {
- // An element filter function that corrects nested list start in an empty
- // list item for better displaying/outputting. (#3165)
- return function( listItem )
- {
- var children = listItem.children,
- firstNestedListIndex = indexOfFirstChildElement( listItem, dtd.$list ),
- firstNestedList = children[ firstNestedListIndex ],
- nodeBefore = firstNestedList && firstNestedList.previous,
- tailNbspmatch;
-
- if ( nodeBefore
- && ( nodeBefore.name && nodeBefore.name == 'br'
- || nodeBefore.value && ( tailNbspmatch = nodeBefore.value.match( tailNbspRegex ) ) ) )
- {
- var fillerNode = nodeBefore;
-
- // Always use 'nbsp' as filler node if we found a nested list appear
- // in front of a list item.
- if ( !( tailNbspmatch && tailNbspmatch.index ) && fillerNode == children[ 0 ] )
- children[ 0 ] = ( isHtmlFilter || CKEDITOR.env.ie ) ?
- new CKEDITOR.htmlParser.text( '\xa0' ) :
- new CKEDITOR.htmlParser.element( 'br', {} );
-
- // Otherwise the filler is not needed anymore.
- else if ( fillerNode.name == 'br' )
- children.splice( firstNestedListIndex - 1, 1 );
+ // Check if node is block element that recieves text.
+ function isTextBlock( node ) {
+ return node.type == CKEDITOR.NODE_ELEMENT && ( node.getName() in CKEDITOR.dtd.$block || node.getName() in CKEDITOR.dtd.$listItem ) && CKEDITOR.dtd[ node.getName() ][ '#' ];
+ }
+
+ // Join visually two block lines.
+ function joinNextLineToCursor( editor, cursor, nextCursor ) {
+ editor.fire( 'saveSnapshot' );
+
+ // Merge with previous block's content.
+ nextCursor.enlarge( CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS );
+ var frag = nextCursor.extractContents();
+
+ cursor.trim( false, true );
+ var bm = cursor.createBookmark();
+
+ // Kill original bogus;
+ var currentPath = new CKEDITOR.dom.elementPath( cursor.startContainer ),
+ pathBlock = currentPath.block,
+ currentBlock = currentPath.lastElement.getAscendant( 'li', 1 ) || pathBlock,
+ nextPath = new CKEDITOR.dom.elementPath( nextCursor.startContainer ),
+ nextLi = nextPath.contains( CKEDITOR.dtd.$listItem ),
+ nextList = nextPath.contains( CKEDITOR.dtd.$list ),
+ last;
+
+ // Remove bogus node the current block/pseudo block.
+ if ( pathBlock ) {
+ var bogus = pathBlock.getBogus();
+ bogus && bogus.remove();
+ }
+ else if ( nextList ) {
+ last = nextList.getPrevious( nonEmpty );
+ if ( last && blockBogus( last ) )
+ last.remove();
+ }
+
+ // Kill the tail br in extracted.
+ last = frag.getLast();
+ if ( last && last.type == CKEDITOR.NODE_ELEMENT && last.is( 'br' ) )
+ last.remove();
+
+ // Insert fragment at the range position.
+ var nextNode = cursor.startContainer.getChild( cursor.startOffset );
+ if ( nextNode )
+ frag.insertBefore( nextNode );
+ else
+ cursor.startContainer.append( frag );
+
+ // Move the sub list nested in the next list item.
+ if ( nextLi ) {
+ var sublist = getSubList( nextLi );
+ if ( sublist ) {
+ // If next line is in the sub list of the current list item.
+ if ( currentBlock.contains( nextLi ) ) {
+ mergeChildren( sublist, nextLi.getParent(), nextLi );
+ sublist.remove();
+ }
+ // Migrate the sub list to current list item.
else
- fillerNode.value = fillerNode.value.replace( tailNbspRegex, '' );
+ currentBlock.append( sublist );
+ }
+ }
+
+ var nextBlock, parent;
+ // Remove any remaining zombies path blocks at the end after line merged.
+ while ( nextCursor.checkStartOfBlock() && nextCursor.checkEndOfBlock() ) {
+ nextPath = nextCursor.startPath();
+ nextBlock = nextPath.block;
+
+ // Check if also to remove empty list.
+ if ( nextBlock.is( 'li' ) ) {
+ parent = nextBlock.getParent();
+ if ( nextBlock.equals( parent.getLast( nonEmpty ) ) && nextBlock.equals( parent.getFirst( nonEmpty ) ) )
+ nextBlock = parent;
}
- };
+ nextCursor.moveToPosition( nextBlock, CKEDITOR.POSITION_BEFORE_START );
+ nextBlock.remove();
+ }
+
+ // Check if need to further merge with the list resides after the merged block. (#9080)
+ var walkerRng = nextCursor.clone(), editable = editor.editable();
+ walkerRng.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );
+ var walker = new CKEDITOR.dom.walker( walkerRng );
+ walker.evaluator = function( node ) { return nonEmpty( node ) && !blockBogus( node ); };
+ var next = walker.next();
+ if ( next && next.type == CKEDITOR.NODE_ELEMENT && next.getName() in CKEDITOR.dtd.$list )
+ mergeListSiblings( next );
+
+ cursor.moveToBookmark( bm );
+
+ // Make fresh selection.
+ cursor.select();
+
+ editor.fire( 'saveSnapshot' );
}
- var defaultListDataFilterRules = { elements : {} };
- for ( var i in dtd.$listItem )
- defaultListDataFilterRules.elements[ i ] = getExtendNestedListFilter();
+ function getSubList( li ) {
+ var last = li.getLast( nonEmpty );
+ return last && last.type == CKEDITOR.NODE_ELEMENT && last.getName() in listNodeNames ? last : null;
+ }
- var defaultListHtmlFilterRules = { elements : {} };
- for ( i in dtd.$listItem )
- defaultListHtmlFilterRules.elements[ i ] = getExtendNestedListFilter( true );
+ CKEDITOR.plugins.add( 'list', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'bulletedlist,bulletedlist-rtl,numberedlist,numberedlist-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- CKEDITOR.plugins.add( 'list',
- {
- init : function( editor )
- {
// Register commands.
- var numberedListCommand = new listCommand( 'numberedlist', 'ol' ),
- bulletedListCommand = new listCommand( 'bulletedlist', 'ul' );
- editor.addCommand( 'numberedlist', numberedListCommand );
- editor.addCommand( 'bulletedlist', bulletedListCommand );
+ editor.addCommand( 'numberedlist', new listCommand( 'numberedlist', 'ol' ) );
+ editor.addCommand( 'bulletedlist', new listCommand( 'bulletedlist', 'ul' ) );
// Register the toolbar button.
- editor.ui.addButton( 'NumberedList',
- {
- label : editor.lang.numberedlist,
- command : 'numberedlist'
- } );
- editor.ui.addButton( 'BulletedList',
- {
- label : editor.lang.bulletedlist,
- command : 'bulletedlist'
- } );
-
- // Register the state changing handlers.
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, numberedListCommand ) );
- editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, bulletedListCommand ) );
- },
-
- afterInit : function ( editor )
- {
- var dataProcessor = editor.dataProcessor;
- if ( dataProcessor )
- {
- dataProcessor.dataFilter.addRules( defaultListDataFilterRules );
- dataProcessor.htmlFilter.addRules( defaultListHtmlFilterRules );
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( 'NumberedList', {
+ label: editor.lang.list.numberedlist,
+ command: 'numberedlist',
+ directional: true,
+ toolbar: 'list,10'
+ });
+ editor.ui.addButton( 'BulletedList', {
+ label: editor.lang.list.bulletedlist,
+ command: 'bulletedlist',
+ directional: true,
+ toolbar: 'list,20'
+ });
}
- },
- requires : [ 'domiterator' ]
- } );
+ // Handled backspace/del key to join list items. (#8248,#9080)
+ editor.on( 'key', function( evt ) {
+ var key = evt.data.keyCode;
+
+ // DEl/BACKSPACE
+ if ( editor.mode == 'wysiwyg' && key in { 8:1,46:1 } ) {
+ var sel = editor.getSelection(),
+ range = sel.getRanges()[ 0 ],
+ path = range.startPath();
+
+ if ( !range.collapsed )
+ return;
+
+ path = new CKEDITOR.dom.elementPath( range.startContainer );
+ var isBackspace = key == 8;
+ var editable = editor.editable();
+ var walker = new CKEDITOR.dom.walker( range.clone() );
+ walker.evaluator = function( node ) {
+ return nonEmpty( node ) && !blockBogus( node );
+ };
+ // Backspace/Del behavior at the start/end of table is handled in core.
+ walker.guard = function( node, isOut ) {
+ return !( isOut && node.type == CKEDITOR.NODE_ELEMENT && node.is( 'table' ) );
+ };
+
+ var cursor = range.clone();
+
+ if ( isBackspace ) {
+ var previous, joinWith;
+
+ // Join a sub list's first line, with the previous visual line in parent.
+ if ( ( previous = path.contains( listNodeNames ) ) &&
+ range.checkBoundaryOfElement( previous, CKEDITOR.START ) &&
+ ( previous = previous.getParent() ) && previous.is( 'li' ) &&
+ ( previous = getSubList( previous ) ) ) {
+ joinWith = previous;
+ previous = previous.getPrevious( nonEmpty );
+ // Place cursor before the nested list.
+ cursor.moveToPosition(
+ previous && blockBogus( previous ) ? previous : joinWith,
+ CKEDITOR.POSITION_BEFORE_START );
+ }
+ // Join any line following a list, with the last visual line of the list.
+ else {
+ walker.range.setStartAt( editable, CKEDITOR.POSITION_AFTER_START );
+ walker.range.setEnd( range.startContainer, range.startOffset );
+
+ previous = walker.previous();
+
+ if ( previous && previous.type == CKEDITOR.NODE_ELEMENT &&
+ ( previous.getName() in listNodeNames ||
+ previous.is( 'li' ) ) ) {
+ if ( !previous.is( 'li' ) ) {
+ walker.range.selectNodeContents( previous );
+ walker.reset();
+ walker.evaluator = isTextBlock;
+ previous = walker.previous();
+ }
+
+ joinWith = previous;
+ // Place cursor at the end of previous block.
+ cursor.moveToElementEditEnd( joinWith );
+ }
+ }
+
+ if ( joinWith ) {
+ joinNextLineToCursor( editor, cursor, range );
+ evt.cancel();
+ }
+ else {
+ var list = path.contains( listNodeNames );
+ // Backspace pressed at the start of list outdents the first list item. (#9129)
+ if ( list && range.checkBoundaryOfElement( list, CKEDITOR.START ) ) {
+ li = list.getFirst( nonEmpty );
+
+ if ( range.checkBoundaryOfElement( li, CKEDITOR.START ) ) {
+ previous = list.getPrevious( nonEmpty );
+
+ // Only if the list item contains a sub list, do nothing but
+ // simply move cursor backward one character.
+ if ( getSubList( li ) ) {
+ if ( previous ) {
+ range.moveToElementEditEnd( previous );
+ range.select();
+ }
+
+ evt.cancel();
+ }
+ else {
+ editor.execCommand( 'outdent' );
+ evt.cancel();
+ }
+ }
+ }
+ }
+
+ } else {
+
+ var next, nextLine, li = path.contains( 'li' );
+
+ if ( li ) {
+ walker.range.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );
+
+ var last = li.getLast( nonEmpty );
+ var block = last && isTextBlock( last ) ? last : li;
+
+ // Indicate cursor at the visual end of an list item.
+ var isAtEnd = 0;
+
+ next = walker.next();
+
+ // When list item contains a sub list.
+ if ( next && next.type == CKEDITOR.NODE_ELEMENT &&
+ next.getName() in listNodeNames &&
+ next.equals( last ) )
+ {
+ isAtEnd = 1;
+
+ // Move to the first item in sub list.
+ next = walker.next();
+ }
+ // Right at the end of list item.
+ else if ( range.checkBoundaryOfElement( block, CKEDITOR.END ) )
+ isAtEnd = 1;
+
+
+ if ( isAtEnd && next ) {
+ // Put cursor range there.
+ nextLine = range.clone();
+ nextLine.moveToElementEditStart( next );
+
+ joinNextLineToCursor( editor, cursor, nextLine );
+ evt.cancel();
+ }
+ }
+ else
+ {
+ // Handle Del key pressed before the list.
+ walker.range.setEndAt( editable, CKEDITOR.POSITION_BEFORE_END );
+ next = walker.next();
+
+ if ( next && next.type == CKEDITOR.NODE_ELEMENT &&
+ next.is( listNodeNames ) ) {
+ // The start <li>
+ next = next.getFirst( nonEmpty );
+
+ // Simply remove the current empty block, move cursor to the
+ // subsequent list.
+ if ( path.block &&
+ range.checkStartOfBlock() &&
+ range.checkEndOfBlock() ) {
+ path.block.remove();
+ range.moveToElementEditStart( next );
+ range.select();
+ evt.cancel();
+ }
+ // Preventing the default (merge behavior), but simply move
+ // the cursor one character forward if subsequent list item
+ // contains sub list.
+ else if ( getSubList( next ) ) {
+ range.moveToElementEditStart( next );
+ range.select();
+ evt.cancel();
+ }
+ // Merge the first list item with the current line.
+ else {
+ nextLine = range.clone();
+ nextLine.moveToElementEditStart( next );
+ joinNextLineToCursor( editor, cursor, nextLine );
+ evt.cancel();
+ }
+ }
+ }
+
+ }
+
+ // The backspace/del could potentially put cursor at a bad position,
+ // being it handled or not, check immediately the selection to have it fixed.
+ setTimeout( function() { editor.selectionChange( 1 ); } );
+ }
+ });
+ }
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/listblock/plugin.js b/devel/third-party/ckeditor/plugins/listblock/plugin.js
index 63f85c7..e7f2480 100644
--- a/devel/third-party/ckeditor/plugins/listblock/plugin.js
+++ b/devel/third-party/ckeditor/plugins/listblock/plugin.js
@@ -1,257 +1,230 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'listblock',
-{
- requires : [ 'panel' ],
-
- onLoad : function()
- {
- CKEDITOR.ui.panel.prototype.addListBlock = function( name, definition )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'listblock', {
+ requires: 'panel',
+
+ onLoad: function() {
+ var list = CKEDITOR.addTemplate( 'panel-list', '<ul role="presentation" class="cke_panel_list">{items}</ul>' ),
+ listItem = CKEDITOR.addTemplate( 'panel-list-item', '<li id="{id}" class="cke_panel_listItem" role=presentation>' +
+ '<a id="{id}_option" _cke_focus=1 hidefocus=true' +
+ ' title="{title}"' +
+ ' href="javascript:void(\'{val}\')" ' +
+ ' {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;"' + // #188
+ ' role="option">' +
+ '{text}' +
+ '</a>' +
+ '</li>' ),
+ listGroup = CKEDITOR.addTemplate( 'panel-list-group', '<h1 id="{id}" class="cke_panel_grouptitle" role="presentation" >{label}</h1>' );
+
+ CKEDITOR.ui.panel.prototype.addListBlock = function( name, definition ) {
return this.addBlock( name, new CKEDITOR.ui.listBlock( this.getHolderElement(), definition ) );
};
- CKEDITOR.ui.listBlock = CKEDITOR.tools.createClass(
- {
- base : CKEDITOR.ui.panel.block,
+ CKEDITOR.ui.listBlock = CKEDITOR.tools.createClass({
+ base: CKEDITOR.ui.panel.block,
+
+ $: function( blockHolder, blockDefinition ) {
+ blockDefinition = blockDefinition || {};
+
+ var attribs = blockDefinition.attributes || ( blockDefinition.attributes = {} );
+ ( this.multiSelect = !!blockDefinition.multiSelect ) && ( attribs[ 'aria-multiselectable' ] = true );
+ // Provide default role of 'listbox'.
+ !attribs.role && ( attribs.role = 'listbox' );
+
+ // Call the base contructor.
+ this.base.apply( this, arguments );
+
+ var keys = this.keys;
+ keys[ 40 ] = 'next'; // ARROW-DOWN
+ keys[ 9 ] = 'next'; // TAB
+ keys[ 38 ] = 'prev'; // ARROW-UP
+ keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB
+ keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE
+ CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041).
+
+ this._.pendingHtml = [];
+ this._.pendingList = [];
+ this._.items = {};
+ this._.groups = {};
+ },
+
+ _: {
+ close: function() {
+ if ( this._.started ) {
+ var output = list.output({ items: this._.pendingList.join( '' ) } );
+ this._.pendingList = [];
+ this._.pendingHtml.push( output );
+ delete this._.started;
+ }
+ },
+
+ getClick: function() {
+ if ( !this._.click ) {
+ this._.click = CKEDITOR.tools.addFunction( function( value ) {
+ var marked = this.toggle( value );
+ if ( this.onClick )
+ this.onClick( value, marked );
+ }, this );
+ }
+ return this._.click;
+ }
+ },
+
+ proto: {
+ add: function( value, html, title ) {
+ var id = CKEDITOR.tools.getNextId();
- $ : function( blockHolder, blockDefinition )
- {
- blockDefinition = blockDefinition || {};
+ if ( !this._.started ) {
+ this._.started = 1;
+ this._.size = this._.size || 0;
+ }
+
+ this._.items[ value ] = id;
+
+ var data = {
+ id: id,
+ val: value,
+ onclick: CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick',
+ clickFn: this._.getClick(),
+ title: title || value,
+ text: html || value
+ };
- var attribs = blockDefinition.attributes || ( blockDefinition.attributes = {} );
- ( this.multiSelect = !!blockDefinition.multiSelect ) &&
- ( attribs[ 'aria-multiselectable' ] = true );
- // Provide default role of 'listbox'.
- !attribs.role && ( attribs.role = 'listbox' );
+ this._.pendingList.push( listItem.output( data ) );
+ },
+
+ startGroup: function( title ) {
+ this._.close();
- // Call the base contructor.
- this.base.apply( this, arguments );
+ var id = CKEDITOR.tools.getNextId();
- var keys = this.keys;
- keys[ 40 ] = 'next'; // ARROW-DOWN
- keys[ 9 ] = 'next'; // TAB
- keys[ 38 ] = 'prev'; // ARROW-UP
- keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB
- keys[ 32 ] = 'click'; // SPACE
+ this._.groups[ title ] = id;
+
+ this._.pendingHtml.push( listGroup.output({ id: id, label: title } ) );
+ },
+
+ commit: function() {
+ this._.close();
+ this.element.appendHtml( this._.pendingHtml.join( '' ) );
+ delete this._.size;
this._.pendingHtml = [];
- this._.items = {};
- this._.groups = {};
},
- _ :
- {
- close : function()
- {
- if ( this._.started )
- {
- this._.pendingHtml.push( '</ul>' );
- delete this._.started;
- }
- },
-
- getClick : function()
- {
- if ( !this._.click )
- {
- this._.click = CKEDITOR.tools.addFunction( function( value )
- {
- var marked = true;
-
- if ( this.multiSelect )
- marked = this.toggle( value );
- else
- this.mark( value );
-
- if ( this.onClick )
- this.onClick( value, marked );
- },
- this );
- }
- return this._.click;
+ toggle: function( value ) {
+ var isMarked = this.isMarked( value );
+
+ if ( isMarked )
+ this.unmark( value );
+ else
+ this.mark( value );
+
+ return !isMarked;
+ },
+
+ hideGroup: function( groupTitle ) {
+ var group = this.element.getDocument().getById( this._.groups[ groupTitle ] ),
+ list = group && group.getNext();
+
+ if ( group ) {
+ group.setStyle( 'display', 'none' );
+
+ if ( list && list.getName() == 'ul' )
+ list.setStyle( 'display', 'none' );
}
},
- proto :
- {
- add : function( value, html, title )
- {
- var pendingHtml = this._.pendingHtml,
- id = 'cke_' + CKEDITOR.tools.getNextNumber();
-
- if ( !this._.started )
- {
- pendingHtml.push( '<ul role="presentation" class=cke_panel_list>' );
- this._.started = 1;
- this._.size = this._.size || 0;
- }
+ hideItem: function( value ) {
+ this.element.getDocument().getById( this._.items[ value ] ).setStyle( 'display', 'none' );
+ },
- this._.items[ value ] = id;
-
- pendingHtml.push(
- '<li id=', id, ' class=cke_panel_listItem>' +
- '<a id="', id, '_option" _cke_focus=1 hidefocus=true' +
- ' title="', title || value, '"' +
- ' href="javascript:void(\'', value, '\')"' +
- ' onclick="CKEDITOR.tools.callFunction(', this._.getClick(), ',\'', value, '\'); return false;"',
- ' role="option"' +
- ' aria-posinset="' + ++this._.size + '">',
- html || value,
- '</a>' +
- '</li>' );
- },
-
- startGroup : function( title )
- {
- this._.close();
-
- var id = 'cke_' + CKEDITOR.tools.getNextNumber();
-
- this._.groups[ title ] = id;
-
- this._.pendingHtml.push( '<h1 role="presentation" id=', id, ' class=cke_panel_grouptitle>', title, '</h1>' );
- },
-
- commit : function()
- {
- this._.close();
- this.element.appendHtml( this._.pendingHtml.join( '' ) );
-
- var items = this._.items,
- doc = this.element.getDocument();
- for ( var value in items )
- doc.getById( items[ value ] + '_option' ).setAttribute( 'aria-setsize', this._.size );
- delete this._.size;
-
- this._.pendingHtml = [];
- },
-
- toggle : function( value )
- {
- var isMarked = this.isMarked( value );
-
- if ( isMarked )
- this.unmark( value );
- else
- this.mark( value );
-
- return !isMarked;
- },
-
- hideGroup : function( groupTitle )
- {
- var group = this.element.getDocument().getById( this._.groups[ groupTitle ] ),
- list = group && group.getNext();
-
- if ( group )
- {
- group.setStyle( 'display', 'none' );
-
- if ( list && list.getName() == 'ul' )
- list.setStyle( 'display', 'none' );
- }
- },
-
- hideItem : function( value )
- {
- this.element.getDocument().getById( this._.items[ value ] ).setStyle( 'display', 'none' );
- },
-
- showAll : function()
- {
- var items = this._.items,
- groups = this._.groups,
- doc = this.element.getDocument();
-
- for ( var value in items )
- {
- doc.getById( items[ value ] ).setStyle( 'display', '' );
- }
+ showAll: function() {
+ var items = this._.items,
+ groups = this._.groups,
+ doc = this.element.getDocument();
- for ( var title in groups )
- {
- var group = doc.getById( groups[ title ] ),
- list = group.getNext();
+ for ( var value in items ) {
+ doc.getById( items[ value ] ).setStyle( 'display', '' );
+ }
- group.setStyle( 'display', '' );
+ for ( var title in groups ) {
+ var group = doc.getById( groups[ title ] ),
+ list = group.getNext();
- if ( list && list.getName() == 'ul' )
- list.setStyle( 'display', '' );
- }
- },
+ group.setStyle( 'display', '' );
+
+ if ( list && list.getName() == 'ul' )
+ list.setStyle( 'display', '' );
+ }
+ },
- mark : function( value )
- {
- if ( !this.multiSelect )
- this.unmarkAll();
+ mark: function( value ) {
+ if ( !this.multiSelect )
+ this.unmarkAll();
- var itemId = this._.items[ value ],
- item = this.element.getDocument().getById( itemId );
- item.addClass( 'cke_selected' );
+ var itemId = this._.items[ value ],
+ item = this.element.getDocument().getById( itemId );
+ item.addClass( 'cke_selected' );
- this.element.getDocument().getById( itemId + '_option' ).setAttribute( 'aria-selected', true );
- this.element.setAttribute( 'aria-activedescendant', itemId + '_option' );
+ this.element.getDocument().getById( itemId + '_option' ).setAttribute( 'aria-selected', true );
+ this.onMark && this.onMark( item );
+ },
- this.onMark && this.onMark( item );
- },
+ unmark: function( value ) {
+ var doc = this.element.getDocument(),
+ itemId = this._.items[ value ],
+ item = doc.getById( itemId );
- unmark : function( value )
- {
- this.element.getDocument().getById( this._.items[ value ] ).removeClass( 'cke_selected' );
- this.onUnmark && this.onUnmark( this._.items[ value ] );
- },
+ item.removeClass( 'cke_selected' );
+ doc.getById( itemId + '_option' ).removeAttribute( 'aria-selected' );
- unmarkAll : function()
- {
- var items = this._.items,
- doc = this.element.getDocument();
+ this.onUnmark && this.onUnmark( item );
+ },
- for ( var value in items )
- {
- doc.getById( items[ value ] ).removeClass( 'cke_selected' );
- }
+ unmarkAll: function() {
+ var items = this._.items,
+ doc = this.element.getDocument();
- this.onUnmark && this.onUnmark();
- },
-
- isMarked : function( value )
- {
- return this.element.getDocument().getById( this._.items[ value ] ).hasClass( 'cke_selected' );
- },
-
- focus : function( value )
- {
- this._.focusIndex = -1;
-
- if ( value )
- {
- var selected = this.element.getDocument().getById( this._.items[ value ] ).getFirst();
-
- var links = this.element.getElementsByTag( 'a' ),
- link,
- i = -1;
-
- while ( ( link = links.getItem( ++i ) ) )
- {
- if ( link.equals( selected ) )
- {
- this._.focusIndex = i;
- break;
- }
- }
+ for ( var value in items ) {
+ var itemId = items[ value ];
- setTimeout( function()
- {
- selected.focus();
- },
- 0 );
+ doc.getById( itemId ).removeClass( 'cke_selected' );
+ doc.getById( itemId + '_option' ).removeAttribute( 'aria-selected' );
+ }
+
+ this.onUnmark && this.onUnmark();
+ },
+
+ isMarked: function( value ) {
+ return this.element.getDocument().getById( this._.items[ value ] ).hasClass( 'cke_selected' );
+ },
+
+ focus: function( value ) {
+ this._.focusIndex = -1;
+
+ if ( value ) {
+ var selected = this.element.getDocument().getById( this._.items[ value ] ).getFirst();
+
+ var links = this.element.getElementsByTag( 'a' ),
+ link,
+ i = -1;
+
+ while ( ( link = links.getItem( ++i ) ) ) {
+ if ( link.equals( selected ) ) {
+ this._.focusIndex = i;
+ break;
+ }
}
+
+ setTimeout( function() {
+ selected.focus();
+ }, 0 );
}
}
- });
+ }
+ });
}
});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/dialogs/liststyle.js b/devel/third-party/ckeditor/plugins/liststyle/dialogs/liststyle.js
index d14ebb5..5cefb3f 100644
--- a/devel/third-party/ckeditor/plugins/liststyle/dialogs/liststyle.js
+++ b/devel/third-party/ckeditor/plugins/liststyle/dialogs/liststyle.js
@@ -1,187 +1,185 @@
-/*
- * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
* For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-(function()
-{
- function getListElement( editor, listTag )
- {
+(function() {
+ function getListElement( editor, listTag ) {
var range;
- try { range = editor.getSelection().getRanges()[ 0 ]; }
- catch( e ) { return null; }
+ try {
+ range = editor.getSelection().getRanges()[ 0 ];
+ } catch ( e ) {
+ return null;
+ }
range.shrink( CKEDITOR.SHRINK_TEXT );
- return range.getCommonAncestor().getAscendant( listTag, true );
+ return editor.elementPath( range.getCommonAncestor() ).contains( listTag, 1 );
}
+ var listItem = function( node ) {
+ return node.type == CKEDITOR.NODE_ELEMENT && node.is( 'li' );
+ };
+
var mapListStyle = {
- 'a' : 'lower-alpha',
- 'A' : 'upper-alpha',
- 'i' : 'lower-roman',
- 'I' : 'upper-roman',
- '1' : 'decimal',
- 'disc' : 'disc',
+ 'a': 'lower-alpha',
+ 'A': 'upper-alpha',
+ 'i': 'lower-roman',
+ 'I': 'upper-roman',
+ '1': 'decimal',
+ 'disc': 'disc',
'circle': 'circle',
- 'square' : 'square'
+ 'square': 'square'
};
- function listStyle( editor, startupPage )
- {
- if ( startupPage == 'bulletedListStyle' )
- {
+ function listStyle( editor, startupPage ) {
+ var lang = editor.lang.liststyle;
+ if ( startupPage == 'bulletedListStyle' ) {
return {
- title : editor.lang.list.bulletedTitle,
- minWidth : 300,
- minHeight : 50,
- contents :
- [
+ title: lang.bulletedTitle,
+ minWidth: 300,
+ minHeight: 50,
+ contents: [
{
- id : 'info',
- accessKey : 'I',
- elements :
- [
- {
- type : 'select',
- label : editor.lang.list.type,
- id : 'type',
- style : 'width: 150px; margin: auto;',
- items :
- [
- [ editor.lang.list.notset, '' ],
- [ editor.lang.list.circle, 'circle' ],
- [ editor.lang.list.disc, 'disc' ],
- [ editor.lang.list.square, 'square' ]
- ],
- setup : function( element )
- {
- var value = element.getStyle( 'list-style-type' )
- || mapListStyle[ element.getAttribute( 'type' ) ]
- || element.getAttribute( 'type' )
- || '';
-
- this.setValue( value );
- },
- commit : function( element )
- {
- var value = this.getValue();
- if ( value )
- element.setStyle( 'list-style-type', value );
- else
- element.removeStyle( 'list-style-type' );
- }
- }
- ]
+ id: 'info',
+ accessKey: 'I',
+ elements: [
+ {
+ type: 'select',
+ label: lang.type,
+ id: 'type',
+ align: 'center',
+ style: 'width:150px',
+ items: [
+ [ lang.notset, '' ],
+ [ lang.circle, 'circle' ],
+ [ lang.disc, 'disc' ],
+ [ lang.square, 'square' ]
+ ],
+ setup: function( element ) {
+ var value = element.getStyle( 'list-style-type' ) || mapListStyle[ element.getAttribute( 'type' ) ] || element.getAttribute( 'type' ) || '';
+
+ this.setValue( value );
+ },
+ commit: function( element ) {
+ var value = this.getValue();
+ if ( value )
+ element.setStyle( 'list-style-type', value );
+ else
+ element.removeStyle( 'list-style-type' );
+ }
}
+ ]
+ }
],
- onShow: function()
- {
+ onShow: function() {
var editor = this.getParentEditor(),
element = getListElement( editor, 'ul' );
element && this.setupContent( element );
},
- onOk: function()
- {
+ onOk: function() {
var editor = this.getParentEditor(),
element = getListElement( editor, 'ul' );
element && this.commitContent( element );
}
};
- }
- else if ( startupPage == 'numberedListStyle' )
- {
-
- var listStyleOptions =
- [
- [ editor.lang.list.notset, '' ],
- [ editor.lang.list.lowerRoman, 'lower-roman' ],
- [ editor.lang.list.upperRoman, 'upper-roman' ],
- [ editor.lang.list.lowerAlpha, 'lower-alpha' ],
- [ editor.lang.list.upperAlpha, 'upper-alpha' ],
- [ editor.lang.list.decimal, 'decimal' ]
- ];
-
- if ( !CKEDITOR.env.ie || CKEDITOR.env.version > 7 )
- {
+ } else if ( startupPage == 'numberedListStyle' ) {
+
+ var listStyleOptions = [
+ [ lang.notset, '' ],
+ [ lang.lowerRoman, 'lower-roman' ],
+ [ lang.upperRoman, 'upper-roman' ],
+ [ lang.lowerAlpha, 'lower-alpha' ],
+ [ lang.upperAlpha, 'upper-alpha' ],
+ [ lang.decimal, 'decimal' ]
+ ];
+
+ if ( !CKEDITOR.env.ie || CKEDITOR.env.version > 7 ) {
listStyleOptions.concat( [
- [ editor.lang.list.armenian, 'armenian' ],
- [ editor.lang.list.decimalLeadingZero, 'decimal-leading-zero' ],
- [ editor.lang.list.georgian, 'georgian' ],
- [ editor.lang.list.lowerGreek, 'lower-greek' ]
- ]);
+ [ lang.armenian, 'armenian' ],
+ [ lang.decimalLeadingZero, 'decimal-leading-zero' ],
+ [ lang.georgian, 'georgian' ],
+ [ lang.lowerGreek, 'lower-greek' ]
+ ] );
}
return {
- title : editor.lang.list.numberedTitle,
- minWidth : 300,
- minHeight : 50,
- contents :
- [
+ title: lang.numberedTitle,
+ minWidth: 300,
+ minHeight: 50,
+ contents: [
{
- id : 'info',
- accessKey : 'I',
- elements :
- [
+ id: 'info',
+ accessKey: 'I',
+ elements: [
+ {
+ type: 'hbox',
+ widths: [ '25%', '75%' ],
+ children: [
{
- type : 'hbox',
- widths : [ '25%', '75%' ],
- children :
- [
- {
- label : editor.lang.list.start,
- type : 'text',
- id : 'start',
- validate : CKEDITOR.dialog.validate.integer( editor.lang.list.validateStartNumber ),
- setup : function( element )
- {
- var value = element.getAttribute( 'start' ) || 1;
- value && this.setValue( value );
- },
- commit : function( element )
- {
- element.setAttribute( 'start', this.getValue() );
- }
- },
- {
- type : 'select',
- label : editor.lang.list.type,
- id : 'type',
- style : 'width: 100%;',
- items : listStyleOptions,
- setup : function( element )
- {
- var value = element.getStyle( 'list-style-type' )
- || mapListStyle[ element.getAttribute( 'type' ) ]
- || element.getAttribute( 'type' )
- || '';
-
- this.setValue( value );
- },
- commit : function( element )
- {
- var value = this.getValue();
- if ( value )
- element.setStyle( 'list-style-type', value );
- else
- element.removeStyle( 'list-style-type' );
- }
- }
- ]
+ label: lang.start,
+ type: 'text',
+ id: 'start',
+ validate: CKEDITOR.dialog.validate.integer( lang.validateStartNumber ),
+ setup: function( element ) {
+ // List item start number dominates.
+ var value = element.getFirst( listItem ).getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1;
+ value && this.setValue( value );
+ },
+ commit: function( element ) {
+ var firstItem = element.getFirst( listItem );
+ var oldStart = firstItem.getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1;
+
+ // Force start number on list root.
+ element.getFirst( listItem ).removeAttribute( 'value' );
+ var val = parseInt( this.getValue(), 10 );
+ if ( isNaN( val ) )
+ element.removeAttribute( 'start' );
+ else
+ element.setAttribute( 'start', val );
+
+ // Update consequent list item numbering.
+ var nextItem = firstItem,
+ conseq = oldStart,
+ startNumber = isNaN( val ) ? 1 : val;
+ while ( ( nextItem = nextItem.getNext( listItem ) ) && conseq++ ) {
+ if ( nextItem.getAttribute( 'value' ) == conseq )
+ nextItem.setAttribute( 'value', startNumber + conseq - oldStart );
+ }
}
+ },
+ {
+ type: 'select',
+ label: lang.type,
+ id: 'type',
+ style: 'width: 100%;',
+ items: listStyleOptions,
+ setup: function( element ) {
+ var value = element.getStyle( 'list-style-type' ) || mapListStyle[ element.getAttribute( 'type' ) ] || element.getAttribute( 'type' ) || '';
+
+ this.setValue( value );
+ },
+ commit: function( element ) {
+ var value = this.getValue();
+ if ( value )
+ element.setStyle( 'list-style-type', value );
+ else
+ element.removeStyle( 'list-style-type' );
+ }
+ }
]
}
+ ]
+ }
],
- onShow: function()
- {
+ onShow: function() {
var editor = this.getParentEditor(),
element = getListElement( editor, 'ol' );
element && this.setupContent( element );
},
- onOk: function()
- {
+ onOk: function() {
var editor = this.getParentEditor(),
element = getListElement( editor, 'ol' );
@@ -191,13 +189,11 @@
}
}
- CKEDITOR.dialog.add( 'numberedListStyle', function( editor )
- {
- return listStyle( editor, 'numberedListStyle' );
- });
+ CKEDITOR.dialog.add( 'numberedListStyle', function( editor ) {
+ return listStyle( editor, 'numberedListStyle' );
+ });
- CKEDITOR.dialog.add( 'bulletedListStyle', function( editor )
- {
- return listStyle( editor, 'bulletedListStyle' );
- });
+ CKEDITOR.dialog.add( 'bulletedListStyle', function( editor ) {
+ return listStyle( editor, 'bulletedListStyle' );
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/af.js b/devel/third-party/ckeditor/plugins/liststyle/lang/af.js
new file mode 100644
index 0000000..891b0b7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/af.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'af', {
+ armenian: 'Armeense nommering',
+ bulletedTitle: 'Eienskappe van ongenommerde lys',
+ circle: 'Sirkel',
+ decimal: 'Desimale syfers (1, 2, 3, ens.)',
+ decimalLeadingZero: 'Desimale syfers met voorloopnul (01, 02, 03, ens.)',
+ disc: 'Skyf',
+ georgian: 'Georgiese nommering (an, ban, gan, ens.)',
+ lowerAlpha: 'Kleinletters (a, b, c, d, e, ens.)',
+ lowerGreek: 'Griekse kleinletters (alpha, beta, gamma, ens.)',
+ lowerRoman: 'Romeinse kleinletters (i, ii, iii, iv, v, ens.)',
+ none: 'Geen',
+ notset: '<nie ingestel nie>',
+ numberedTitle: 'Eienskappe van genommerde lys',
+ square: 'Vierkant',
+ start: 'Begin',
+ type: 'Tipe',
+ upperAlpha: 'Hoofletters (A, B, C, D, E, ens.)',
+ upperRoman: 'Romeinse hoofletters (I, II, III, IV, V, ens.)',
+ validateStartNumber: 'Beginnommer van lys moet \'n heelgetal wees.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ar.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ar.js
new file mode 100644
index 0000000..e8a5dc6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ar.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ar', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/bg.js b/devel/third-party/ckeditor/plugins/liststyle/lang/bg.js
new file mode 100644
index 0000000..6268301
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/bg.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'bg', {
+ armenian: 'ÐÑменÑко номеÑиÑане',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'ÐÑÑг',
+ decimal: 'ЧиÑла (1, 2, 3 и дÑ.)',
+ decimalLeadingZero: 'ЧиÑла Ñ Ð²Ð¾Ð´ÐµÑа нÑла (01, 02, 03 и Ñ.н.)',
+ disc: 'ÐиÑк',
+ georgian: 'ÐÑÑзинÑко номеÑиÑане (an, ban, gan, и Ñ.н.)',
+ lowerAlpha: 'Ðалки бÑкви (а, б, в, г, д и Ñ.н.)',
+ lowerGreek: 'Ðалки гÑÑÑки бÑкви (алÑа, беÑа, гама и Ñ.н.)',
+ lowerRoman: 'Ðалки ÑимÑки ÑиÑла (i, ii, iii, iv, v и Ñ.н.)',
+ none: 'ÐÑма',
+ notset: '<не е Ñказано>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'ÐвадÑаÑ',
+ start: 'СÑаÑÑ',
+ type: 'Тип',
+ upperAlpha: 'Ðолеми бÑкви (Ð, Ð, Ð, Ð, Ри Ñ.н.)',
+ upperRoman: 'Ðолеми ÑимÑки ÑиÑла (I, II, III, IV, V и Ñ.н.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/bn.js b/devel/third-party/ckeditor/plugins/liststyle/lang/bn.js
new file mode 100644
index 0000000..2eb2fe4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/bn.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'bn', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/bs.js b/devel/third-party/ckeditor/plugins/liststyle/lang/bs.js
new file mode 100644
index 0000000..c300814
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/bs.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'bs', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ca.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ca.js
new file mode 100644
index 0000000..db8dd7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ca.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ca', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/cs.js b/devel/third-party/ckeditor/plugins/liststyle/lang/cs.js
new file mode 100644
index 0000000..42a04b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/cs.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'cs', {
+ armenian: 'Arménské',
+ bulletedTitle: 'Vlastnosti odrážek',
+ circle: 'Kroužky',
+ decimal: 'Arabská ÄÃsla (1, 2, 3, atd.)',
+ decimalLeadingZero: 'Arabská ÄÃsla uvozená nulou (01, 02, 03, atd.)',
+ disc: 'KoleÄka',
+ georgian: 'GruzÃnské (an, ban, gan, atd.)',
+ lowerAlpha: 'Malá latinka (a, b, c, d, e, atd.)',
+ lowerGreek: 'Malé Åecké (alpha, beta, gamma, atd.)',
+ lowerRoman: 'Malé ÅÃmské (i, ii, iii, iv, v, atd.)',
+ none: 'Nic',
+ notset: '<nenastaveno>',
+ numberedTitle: 'Vlastnosti ÄÃslovánÃ',
+ square: 'Ätverce',
+ start: 'PoÄátek',
+ type: 'Typ',
+ upperAlpha: 'Velká latinka (A, B, C, D, E, atd.)',
+ upperRoman: 'Velké ÅÃmské (I, II, III, IV, V, atd.)',
+ validateStartNumber: 'ÄÃslovánà musà zaÄÃnat celým ÄÃslem.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/cy.js b/devel/third-party/ckeditor/plugins/liststyle/lang/cy.js
new file mode 100644
index 0000000..84a3992
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/cy.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'cy', {
+ armenian: 'Rhifau Armeneg',
+ bulletedTitle: 'Priodweddau Rhestr Fwled',
+ circle: 'Cylch',
+ decimal: 'Degol (1, 2, 3, ayyb.)',
+ decimalLeadingZero: 'Degol â sero arweiniol (01, 02, 03, ayyb.)',
+ disc: 'Disg',
+ georgian: 'Rhifau Sioraidd (an, ban, gan, ayyb.)',
+ lowerAlpha: 'Alffa Is (a, b, c, d, e, ayyb.)',
+ lowerGreek: 'Groeg Is (alpha, beta, gamma, ayyb.)',
+ lowerRoman: 'Rhufeinig Is (i, ii, iii, iv, v, ayyb.)',
+ none: 'Dim',
+ notset: '<heb osod>',
+ numberedTitle: 'Priodweddau Rhestr Rifol',
+ square: 'Sgwâr',
+ start: 'Dechrau',
+ type: 'Math',
+ upperAlpha: 'Alffa Uwch (A, B, C, D, E, ayyb.)',
+ upperRoman: 'Rhufeinig Uwch (I, II, III, IV, V, ayyb.)',
+ validateStartNumber: 'Rhaid bod y rhif cychwynnol yn gyfanrif.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/da.js b/devel/third-party/ckeditor/plugins/liststyle/lang/da.js
new file mode 100644
index 0000000..6c2ef95
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/da.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'da', {
+ armenian: 'Armensk nummering',
+ bulletedTitle: 'Værdier for cirkelpunktopstilling',
+ circle: 'Cirkel',
+ decimal: 'Decimal (1, 2, 3, osv.)',
+ decimalLeadingZero: 'Decimaler med 0 først (01, 02, 03, etc.)',
+ disc: 'Værdier for diskpunktopstilling',
+ georgian: 'Georgiansk nummering (an, ban, gan, etc.)',
+ lowerAlpha: 'Små alfabet (a, b, c, d, e, etc.)',
+ lowerGreek: 'Små græsk (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Små romerske (i, ii, iii, iv, v, etc.)',
+ none: 'Ingen',
+ notset: '<ikke defineret>',
+ numberedTitle: 'Egenskaber for nummereret liste',
+ square: 'Firkant',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Store alfabet (A, B, C, D, E, etc.)',
+ upperRoman: 'Store romerske (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'Den nummererede liste skal starte med et rundt nummer'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/de.js b/devel/third-party/ckeditor/plugins/liststyle/lang/de.js
new file mode 100644
index 0000000..3e046b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/de.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'de', {
+ armenian: 'Armenisch Nummerierung',
+ bulletedTitle: 'Listen-Eigenschaften',
+ circle: 'Ring',
+ decimal: 'Dezimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Dezimal mit führende Null (01, 02, 03, etc.)',
+ disc: 'Kreis',
+ georgian: 'Georgisch Nummerierung (an, ban, gan, etc.)',
+ lowerAlpha: 'Klein alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Klein griechisch (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Klein römisch (i, ii, iii, iv, v, etc.)',
+ none: 'Keine',
+ notset: '<nicht gesetzt>',
+ numberedTitle: 'Nummerierte Listen-Eigenschaften',
+ square: 'Quadrat',
+ start: 'Start',
+ type: 'Typ',
+ upperAlpha: 'Groà alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Groà römisch (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List Startnummer muss eine ganze Zahl sein.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/el.js b/devel/third-party/ckeditor/plugins/liststyle/lang/el.js
new file mode 100644
index 0000000..6f496c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/el.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'el', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'ÎδιÏÏηÏÎµÏ ÎίÏÏÎ±Ï Î£Î·Î¼ÎµÎ¯Ïν',
+ circle: 'ÎÏκλοÏ',
+ decimal: 'ÎεκαδικÏÏ (1, 2, 3, κÏλ)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'ÎίÏκοÏ',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'ΤίÏοÏα',
+ notset: '<δεν ÎÏει οÏιÏÏεί>',
+ numberedTitle: 'ÎδιÏÏηÏÎµÏ ÎÏιθμημÎÎ½Î·Ï ÎίÏÏÎ±Ï ',
+ square: 'ΤεÏÏάγÏνο',
+ start: 'ÎκκίνηÏη',
+ type: 'ΤÏÏοÏ',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'ΠαÏιθμÏÏ ÎµÎºÎºÎ¯Î½Î·ÏÎ·Ï ÏÎ·Ï Î±ÏίθμηÏÎ·Ï ÏÏÎÏει να είναι ακÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/en-au.js b/devel/third-party/ckeditor/plugins/liststyle/lang/en-au.js
new file mode 100644
index 0000000..fe30662
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/en-au.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'en-au', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/en-ca.js b/devel/third-party/ckeditor/plugins/liststyle/lang/en-ca.js
new file mode 100644
index 0000000..b34da5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/en-ca.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'en-ca', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/en-gb.js b/devel/third-party/ckeditor/plugins/liststyle/lang/en-gb.js
new file mode 100644
index 0000000..6b9f294
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/en-gb.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'en-gb', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/en.js b/devel/third-party/ckeditor/plugins/liststyle/lang/en.js
new file mode 100644
index 0000000..03b6a41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/en.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'en', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/eo.js b/devel/third-party/ckeditor/plugins/liststyle/lang/eo.js
new file mode 100644
index 0000000..0d5626c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/eo.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'eo', {
+ armenian: 'Armena nombrado',
+ bulletedTitle: 'Atributoj de Bula Listo',
+ circle: 'Cirklo',
+ decimal: 'Dekumaj Nombroj (1, 2, 3, ktp.)',
+ decimalLeadingZero: 'Dekumaj Nombroj malantaÅ nulo (01, 02, 03, ktp.)',
+ disc: 'Disko',
+ georgian: 'Gruza nombrado (an, ban, gan, ktp.)',
+ lowerAlpha: 'Minusklaj Literoj (a, b, c, d, e, ktp.)',
+ lowerGreek: 'Grekaj Minusklaj Literoj (alpha, beta, gamma, ktp.)',
+ lowerRoman: 'Minusklaj Romanaj Nombroj (i, ii, iii, iv, v, ktp.)',
+ none: 'Neniu',
+ notset: '<DefaÅlta>',
+ numberedTitle: 'Atributoj de Numera Listo',
+ square: 'kvadrato',
+ start: 'Komenco',
+ type: 'Tipo',
+ upperAlpha: 'Majusklaj Literoj (A, B, C, D, E, ktp.)',
+ upperRoman: 'Majusklaj Romanaj Nombroj (I, II, III, IV, V, ktp.)',
+ validateStartNumber: 'La unua listero devas esti entjera nombro.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/es.js b/devel/third-party/ckeditor/plugins/liststyle/lang/es.js
new file mode 100644
index 0000000..c9213c2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/es.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'es', {
+ armenian: 'Numeración armenia',
+ bulletedTitle: 'Propiedades de viñetas',
+ circle: 'CÃrculo',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal con cero inicial (01, 02, 03, etc.)',
+ disc: 'Disco',
+ georgian: 'Numeración georgiana (an, ban, gan, etc.)',
+ lowerAlpha: 'Alfabeto en minúsculas (a, b, c, d, e, etc.)',
+ lowerGreek: 'Letras griegas (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Números romanos en minúsculas (i, ii, iii, iv, v, etc.)',
+ none: 'Ninguno',
+ notset: '<sin establecer>',
+ numberedTitle: 'Propiedades de lista numerada',
+ square: 'Cuadrado',
+ start: 'Inicio',
+ type: 'Tipo',
+ upperAlpha: 'Alfabeto en mayúsculas (A, B, C, D, E, etc.)',
+ upperRoman: 'Números romanos en mayúsculas (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'El Inicio debe ser un número entero.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/et.js b/devel/third-party/ckeditor/plugins/liststyle/lang/et.js
new file mode 100644
index 0000000..64caa5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/et.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'et', {
+ armenian: 'Armeenia numbrid',
+ bulletedTitle: 'Punktloendi omadused',
+ circle: 'Ring',
+ decimal: 'Numbrid (1, 2, 3, jne)',
+ decimalLeadingZero: 'Numbrid algusnulliga (01, 02, 03, jne)',
+ disc: 'Täpp',
+ georgian: 'Gruusia numbrid (an, ban, gan, jne)',
+ lowerAlpha: 'Väiketähed (a, b, c, d, e, jne)',
+ lowerGreek: 'Kreeka väiketähed (alpha, beta, gamma, jne)',
+ lowerRoman: 'Väiksed rooma numbrid (i, ii, iii, iv, v, jne)',
+ none: 'Puudub',
+ notset: '<pole määratud>',
+ numberedTitle: 'Numberloendi omadused',
+ square: 'Ruut',
+ start: 'Algus',
+ type: 'Liik',
+ upperAlpha: 'Suurtähed (A, B, C, D, E, jne)',
+ upperRoman: 'Suured rooma numbrid (I, II, III, IV, V, jne)',
+ validateStartNumber: 'Loendi algusnumber peab olema täisarv.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/eu.js b/devel/third-party/ckeditor/plugins/liststyle/lang/eu.js
new file mode 100644
index 0000000..ac0bd0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/eu.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'eu', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/fa.js b/devel/third-party/ckeditor/plugins/liststyle/lang/fa.js
new file mode 100644
index 0000000..36f97e4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/fa.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'fa', {
+ armenian: 'Ø´Ù
ارÙÚ¯Ø°Ø§Ø±Û Ø§Ø±Ù
ÙÛ',
+ bulletedTitle: 'ÙÛÚÚ¯ÛÙØ§Û ÙÙØ±Ø³Øª Ú¯ÙÙÙÙØ¯Ø§Ø±',
+ circle: 'Ø¯Ø§ÛØ±Ù',
+ decimal: 'Ø¯ÙØ¯ÙÛ (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Ø¯ÙØ¯ÙÛ ÙÙ
را٠با ØµÙØ± (01, 02, 03, etc.)',
+ disc: 'ØµÙØÙ Ú¯Ø±Ø¯',
+ georgian: 'Ø´Ù
ارÙÚ¯Ø°Ø§Ø±Û Ú¯Ø±ÛÚ¯ÙØ±ÛÙ (an, ban, gan, etc.)',
+ lowerAlpha: 'پاÙÙÛØ³ اÙÙØ¨Ø§ÛÛ (a, b, c, d, e, etc.)',
+ lowerGreek: 'پاÙÙÛØ³ ÛÙÙØ§ÙÛ (alpha, beta, gamma, etc.)',
+ lowerRoman: 'پاÙÙÛØ³ رÙÙ
Û (i, ii, iii, iv, v, etc.)',
+ none: 'ÙÛÚ',
+ notset: '<ØªÙØ¸ÛÙ
ÙØ´Ø¯Ù>',
+ numberedTitle: 'ÙÛÚÚ¯ÛÙØ§Û ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±ÙØ¯Ø§Ø±',
+ square: 'ÚÙØ§Ø±Ú¯ÙØ´',
+ start: 'Ø´Ø±ÙØ¹',
+ type: 'ÙÙØ¹',
+ upperAlpha: 'Ø¨Ø§ÙØ§ÙÙÛØ³ اÙÙØ¨Ø§ÛÛ (A, B, C, D, E, etc.)',
+ upperRoman: 'Ø¨Ø§ÙØ§ÙÙÛØ³ رÙÙ
Û (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±Ù Ø´Ø±ÙØ¹ Ø¨Ø§ÛØ¯ ÛÚ© عدد صØÛØ Ø¨Ø§Ø´Ø¯.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/fi.js b/devel/third-party/ckeditor/plugins/liststyle/lang/fi.js
new file mode 100644
index 0000000..702e07d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/fi.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'fi', {
+ armenian: 'Armeenialainen numerointi',
+ bulletedTitle: 'Numeroimattoman listan ominaisuudet',
+ circle: 'Ympyrä',
+ decimal: 'Desimaalit (1, 2, 3, jne.)',
+ decimalLeadingZero: 'Desimaalit, alussa nolla (01, 02, 03, jne.)',
+ disc: 'Levy',
+ georgian: 'Georgialainen numerointi (an, ban, gan, etc.)',
+ lowerAlpha: 'Pienet aakkoset (a, b, c, d, e, jne.)',
+ lowerGreek: 'Pienet kreikkalaiset (alpha, beta, gamma, jne.)',
+ lowerRoman: 'Pienet roomalaiset (i, ii, iii, iv, v, jne.)',
+ none: 'Ei mikään',
+ notset: '<ei asetettu>',
+ numberedTitle: 'Numeroidun listan ominaisuudet',
+ square: 'Neliö',
+ start: 'Alku',
+ type: 'Tyyppi',
+ upperAlpha: 'Isot aakkoset (A, B, C, D, E, jne.)',
+ upperRoman: 'Isot roomalaiset (I, II, III, IV, V, jne.)',
+ validateStartNumber: 'Listan ensimmäisen numeron tulee olla kokonaisluku.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/fo.js b/devel/third-party/ckeditor/plugins/liststyle/lang/fo.js
new file mode 100644
index 0000000..88362f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/fo.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'fo', {
+ armenian: 'Armensk talskipan',
+ bulletedTitle: 'Eginleikar fyri lista við prikkum',
+ circle: 'Sirkul',
+ decimal: 'Vanlig tøl (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Tøl við null frammanfyri (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgisk talskipan (an, ban, gan, osv.)',
+ lowerAlpha: 'LÃtlir bókstavir (a, b, c, d, e, etc.)',
+ lowerGreek: 'Grikskt við lÃtlum (alpha, beta, gamma, etc.)',
+ lowerRoman: 'LÃtil rómaratøl (i, ii, iii, iv, v, etc.)',
+ none: 'Einki',
+ notset: '<ikki sett>',
+ numberedTitle: 'Eginleikar fyri lista við tølum',
+ square: 'Fýrkantur',
+ start: 'Byrjan',
+ type: 'Slag',
+ upperAlpha: 'Stórir bókstavir (A, B, C, D, E, etc.)',
+ upperRoman: 'Stór rómaratøl (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'Byrjunartalið fyri lista má vera eitt heiltal.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/liststyle/lang/fr-ca.js
new file mode 100644
index 0000000..c8eae24
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/fr-ca.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'fr-ca', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/fr.js b/devel/third-party/ckeditor/plugins/liststyle/lang/fr.js
new file mode 100644
index 0000000..5da1f8a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/fr.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'fr', {
+ armenian: 'Numération arménienne',
+ bulletedTitle: 'Propriétés de la liste à puces',
+ circle: 'Cercle',
+ decimal: 'Décimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Décimal précédé par un 0 (01, 02, 03, etc.)',
+ disc: 'Disque',
+ georgian: 'Numération géorgienne (an, ban, gan, etc.)',
+ lowerAlpha: 'Alphabétique minuscules (a, b, c, d, e, etc.)',
+ lowerGreek: 'Grec minuscule (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)',
+ none: 'Aucun',
+ notset: '<Non défini>',
+ numberedTitle: 'Propriétés de la liste numérotée',
+ square: 'Carré',
+ start: 'Début',
+ type: 'Type',
+ upperAlpha: 'Alphabétique majuscules (A, B, C, D, E, etc.)',
+ upperRoman: 'Nombres romains majuscules (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'Le premier élément de la liste doit être un nombre entier.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/gl.js b/devel/third-party/ckeditor/plugins/liststyle/lang/gl.js
new file mode 100644
index 0000000..089bb2c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/gl.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'gl', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/gu.js b/devel/third-party/ckeditor/plugins/liststyle/lang/gu.js
new file mode 100644
index 0000000..f614942
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/gu.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'gu', {
+ armenian: 'àª
રમà«àª¨àª¿àª¯àª¨ àªàªàªàª¡àª¾ પદà«àª§àª¤àª¿',
+ bulletedTitle: 'બà«àª²à«àªà«àª¡ લà«àª¸à«àªàª¨àª¾ àªà«àª£',
+ circle: 'વરà«àª¤à«àª³',
+ decimal: 'àªàªàªàª¡àª¾ (1, 2, 3, etc.)',
+ decimalLeadingZero: 'સà«àª¨à«àª¯ àªàªàª³ àªàªàªàª¡àª¾ (01, 02, 03, etc.)',
+ disc: 'ડિસà«àª',
+ georgian: 'àªà«àªàª°à«àªàª¿àª¯àª¨ àªàªàªàª¡àª¾ પદà«àª§àª¤àª¿ (an, ban, gan, etc.)',
+ lowerAlpha: 'àªàª²à«àª«àª¾ નાના (a, b, c, d, e, etc.)',
+ lowerGreek: 'àªà«àª°à«àª નાના (alpha, beta, gamma, etc.)',
+ lowerRoman: 'રà«àª®àª¨ નાના (i, ii, iii, iv, v, etc.)',
+ none: 'àªàª¸à« ',
+ notset: '<સà«àª નથà«>',
+ numberedTitle: 'àªàªàªàª¡àª¾àª¨àª¾ લà«àª¸à«àªàª¨àª¾ àªà«àª£',
+ square: 'àªà«àª°àª¸',
+ start: 'શરૠàªàª°àªµà«àª',
+ type: 'પà«àª°àªàª¾àª°',
+ upperAlpha: 'àªàª²à«àª«àª¾ મà«àªàª¾ (A, B, C, D, E, etc.)',
+ upperRoman: 'રà«àª®àª¨ મà«àªàª¾ (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'લà«àª¸à«àªàª¨àª¾ સરà«àªàª¤àª¨à« àªàªàªàª¡à« પà«àª°à« હà«àªµà« àªà«àªàª.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/he.js b/devel/third-party/ckeditor/plugins/liststyle/lang/he.js
new file mode 100644
index 0000000..c7f2fff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/he.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'he', {
+ armenian: 'ספר×ת ×ר×× ××ת',
+ bulletedTitle: 'ת××× ×ת רש××ת ת××××××',
+ circle: '×¢×××× ×¨××§',
+ decimal: 'ספר×ת (1, 2, 3 ×××\')',
+ decimalLeadingZero: 'ספר×ת ×¢× 0 ××ת××× (01, 02, 03 ×××\')',
+ disc: '×¢×××× ×××',
+ georgian: 'ספר×ת ××××ר×××ת (an, ban, gan ×××\')',
+ lowerAlpha: '××ת××ת ×× ××××ת ×§×× ×ת (a, b, c, d, e ×××\')',
+ lowerGreek: '××ת××ת ×××× ××ת ×§×× ×ת (alpha, beta, gamma ×××\')',
+ lowerRoman: 'ספ××¨× ×¨×××ת ×××ת××ת ×§×× ×ת (i, ii, iii, iv, v ×××\')',
+ none: '×××',
+ notset: '<×× × ×§××¢>',
+ numberedTitle: 'ת××× ×ת רש××× ×××ספרת',
+ square: 'ר××××¢',
+ start: 'ת×××ת ×ספ×ר',
+ type: 'ס××',
+ upperAlpha: '××ת××ת ×× ××××ת ×××××ת (A, B, C, D, E ×××\')',
+ upperRoman: 'ספ××¨× ×¨××××ת ×××ת××ת ×××××ת (I, II, III, IV, V ×××\')',
+ validateStartNumber: 'ש×× ×ª×××ת ××ספ×ר ×××× ××××× ×ספר ש××.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/hi.js b/devel/third-party/ckeditor/plugins/liststyle/lang/hi.js
new file mode 100644
index 0000000..94232a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/hi.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'hi', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/hr.js b/devel/third-party/ckeditor/plugins/liststyle/lang/hr.js
new file mode 100644
index 0000000..e2d1ea6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/hr.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'hr', {
+ armenian: 'Armenijska numeracija',
+ bulletedTitle: 'Svojstva liste',
+ circle: 'Krug',
+ decimal: 'Decimalna numeracija (1, 2, 3, itd.)',
+ decimalLeadingZero: 'Decimalna s vodeÄom nulom (01, 02, 03, itd)',
+ disc: 'Disk',
+ georgian: 'Gruzijska numeracija(an, ban, gan, etc.)',
+ lowerAlpha: 'Znakovi mala slova (a, b, c, d, e, itd.)',
+ lowerGreek: 'GrÄka numeracija mala slova (alfa, beta, gama, itd).',
+ lowerRoman: 'Romanska numeracija mala slova (i, ii, iii, iv, v, itd.)',
+ none: 'Bez',
+ notset: '<nije odreÄen>',
+ numberedTitle: 'Svojstva brojÄane liste',
+ square: 'Kvadrat',
+ start: 'PoÄetak',
+ type: 'Vrsta',
+ upperAlpha: 'Znakovi velika slova (A, B, C, D, E, itd.)',
+ upperRoman: 'Romanska numeracija velika slova (I, II, III, IV, V, itd.)',
+ validateStartNumber: 'PoÄetak brojÄane liste mora biti cijeli broj.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/hu.js b/devel/third-party/ckeditor/plugins/liststyle/lang/hu.js
new file mode 100644
index 0000000..b1f7f27
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/hu.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'hu', {
+ armenian: 'Ãrmény számozás',
+ bulletedTitle: 'Pontozott lista tulajdonságai',
+ circle: 'Kör',
+ decimal: 'Arab számozás (1, 2, 3, stb.)',
+ decimalLeadingZero: 'Számozás bevezetŠnullákkal (01, 02, 03, stb.)',
+ disc: 'Korong',
+ georgian: 'Grúz számozás (an, ban, gan, stb.)',
+ lowerAlpha: 'Kisbetűs (a, b, c, d, e, stb.)',
+ lowerGreek: 'Görög (alpha, beta, gamma, stb.)',
+ lowerRoman: 'Római kisbetűs (i, ii, iii, iv, v, stb.)',
+ none: 'Nincs',
+ notset: '<Nincs beállÃtva>',
+ numberedTitle: 'Sorszámozott lista tulajdonságai',
+ square: 'Négyzet',
+ start: 'KezdÅszám',
+ type: 'TÃpus',
+ upperAlpha: 'Nagybetűs (A, B, C, D, E, stb.)',
+ upperRoman: 'Római nagybetűs (I, II, III, IV, V, stb.)',
+ validateStartNumber: 'A kezdÅszám nem lehet tört érték.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/is.js b/devel/third-party/ckeditor/plugins/liststyle/lang/is.js
new file mode 100644
index 0000000..8e69814
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/is.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'is', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/it.js b/devel/third-party/ckeditor/plugins/liststyle/lang/it.js
new file mode 100644
index 0000000..e43dc32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/it.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'it', {
+ armenian: 'Numerazione Armena',
+ bulletedTitle: 'Proprietà liste puntate',
+ circle: 'Cerchio',
+ decimal: 'Decimale (1, 2, 3, ecc.)',
+ decimalLeadingZero: 'Decimale preceduto da 0 (01, 02, 03, ecc.)',
+ disc: 'Disco',
+ georgian: 'Numerazione Georgiana (an, ban, gan, ecc.)',
+ lowerAlpha: 'Alfabetico minuscolo (a, b, c, d, e, ecc.)',
+ lowerGreek: 'Greco minuscolo (alpha, beta, gamma, ecc.)',
+ lowerRoman: 'Numerazione Romana minuscola (i, ii, iii, iv, v, ecc.)',
+ none: 'Nessuno',
+ notset: '<non impostato>',
+ numberedTitle: 'Proprietà liste numerate',
+ square: 'Quadrato',
+ start: 'Inizio',
+ type: 'Tipo',
+ upperAlpha: 'Alfabetico maiuscolo (A, B, C, D, E, ecc.)',
+ upperRoman: 'Numerazione Romana maiuscola (I, II, III, IV, V, ecc.)',
+ validateStartNumber: 'Il numero di inizio di una lista numerata deve essere un numero intero.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ja.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ja.js
new file mode 100644
index 0000000..817898b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ja.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ja', {
+ armenian: 'ã¢ã«ã¡ãã¢æ°å',
+ bulletedTitle: 'ç®æ¡æ¸ã ããããã£',
+ circle: 'ç½ä¸¸',
+ decimal: 'æ°å (1, 2, 3, etc.)',
+ decimalLeadingZero: 'ä¸ä½æ¡ã«0ãã¤ããæ°å (01, 02, 03, etc.)',
+ disc: 'é»ä¸¸',
+ georgian: 'ã°ã«ã¸ã¢æ°å (an, ban, gan, etc.)',
+ lowerAlpha: 'å°æåã¢ã«ãã¡ããã (a, b, c, d, e, etc.)',
+ lowerGreek: 'å°æåã®ãªã·ã£æå (alpha, beta, gamma, etc.)',
+ lowerRoman: 'å°æåãã¼ãæ°å (i, ii, iii, iv, v, etc.)',
+ none: 'ãªã',
+ notset: '<ãªã>',
+ numberedTitle: '段è½çªå· ããããã£',
+ square: 'åè§',
+ start: 'éå§',
+ type: 'ã¿ã¤ã',
+ upperAlpha: '大æåã¢ã«ãã¡ããã (A, B, C, D, E, etc.)',
+ upperRoman: '大æåãã¼ãæ°å (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'ãªã¹ãéå§çªå·ã¯æ°å¤ã§å
¥åãã¦ãã ããã'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ka.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ka.js
new file mode 100644
index 0000000..54c4d08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ka.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ka', {
+ armenian: 'á¡ááá®á£á á áááááááá áá',
+ bulletedTitle: 'á¦áááááááá á¡ááá¡ ááá áááá¢á ááá',
+ circle: 'á¬á áá¬áá á',
+ decimal: 'á ááªá®ááááá (1, 2, 3, ..)',
+ decimalLeadingZero: 'áá£ááá ááá¬á§ááá£áá á ááªá®ááááá (01, 02, 03, ..)',
+ disc: 'á¬á á',
+ georgian: 'á¥áá áá£áá áááááááá áá (áá, ááá, ááá, ..)',
+ lowerAlpha: 'ááá¢áá á áááááá£á á áá¡ááááá (a, b, c, d, e, ..)',
+ lowerGreek: 'ááá¢áá á ááá á«áá£áá áá¡ááááá (ááá¤á, ááá¢á, áááá, ..)',
+ lowerRoman: 'á áááá£áá áááááááá ááªá ááá¢áá á áªáá¤á áááá (i, ii, iii, iv, v, ..)',
+ none: 'áá áá¤áá á',
+ notset: '<áá áá¤áá á>',
+ numberedTitle: 'áááááááá ááá á¡ááá¡ ááá áááá¢á ááá',
+ square: 'ááááá áá¢á',
+ start: 'á¡áá¬á§áá¡á',
+ type: 'á¢ááá',
+ upperAlpha: 'áááá áááááá£á á áá¡ááááá (A, B, C, D, E, ..)',
+ upperRoman: 'á áááá£áá áááááááá áá áááá áªáá¤á áááá (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'á¡ááá¡ á¡áá¬á§áá¡á ááááá á ááªá®áá á£ááá áá§áá¡.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/km.js b/devel/third-party/ckeditor/plugins/liststyle/lang/km.js
new file mode 100644
index 0000000..d5e02da
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/km.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'km', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ko.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ko.js
new file mode 100644
index 0000000..a0a350c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ko.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ko', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ku.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ku.js
new file mode 100644
index 0000000..6756c16
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ku.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ku', {
+ armenian: 'ئاراستÙÛ ÚÙ
ارÙÛ Ø¦ÙØ±Ù
ÙÙÛ',
+ bulletedTitle: 'خاسÛÙØªÛ ÙÛØ³ØªÛ خاڵÛ',
+ circle: 'بازÙÙ',
+ decimal: 'ÚÙ
ار٠(1, 2, 3, ÙÙÙÛØªØ±.)',
+ decimalLeadingZero: 'ÚÙ
ار٠سÙÚÛ ÙÙÙ¾ÛØ´ÙÙÙ (01, 02, 03, ÙÙÙÛØªØ±.)',
+ disc: 'Ù¾ÙÙ¾Ú©Ù',
+ georgian: 'ئاراستÙÛ ÚÙ
ارÙÛ Ø¬ÛÚØ¬Û (an, ban, gan, ÙÙÙÛØªØ±.)',
+ lowerAlpha: 'ئÙÙÙØ§Ø¨ÛÛ Ø¨ÚÙÙÙ (a, b, c, d, e, ÙÙÙÛØªØ±.)',
+ lowerGreek: 'ÛÛÙØ§ÙÛ Ø¨ÚÙÙÙ (alpha, beta, gamma, ÙÙÙÛØªØ±.)',
+ lowerRoman: 'ÚÙ
ارÙÛ ÚÛÙ
Û Ø¨ÚÙÙÙ (i, ii, iii, iv, v, ÙÙÙÛØªØ±.)',
+ none: 'ÙÛÚ',
+ notset: '<داÙÙÙØ¯Ø±Ø§ÙÙ>',
+ numberedTitle: 'خاسÛÙØªÛ ÙÛØ³ØªÛ ÚÙ
ارÙÛÛ',
+ square: 'ÚÙÙØ±Ø§Ú¯ÛØ´Ù',
+ start: 'Ø¯ÙØ³ØªÙ¾ÛکردÙ',
+ type: 'Ø¬ÛØ±',
+ upperAlpha: 'ئÙÙÙØ§Ø¨ÛÛ Ú¯ÙÙØ±Ù (A, B, C, D, E, ÙÙÙÛØªØ±.)',
+ upperRoman: 'ÚÙ
ارÙÛ ÚÛÙ
Û Ú¯ÙÙØ±Ù (I, II, III, IV, V, ÙÙÙÛØªØ±.)',
+ validateStartNumber: 'Ø¯ÙØ³ØªÙ¾ÛÚ©ÙØ±Û ÙÛØ³ØªÛ ÚÙ
ارÙÛÛ Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/lt.js b/devel/third-party/ckeditor/plugins/liststyle/lang/lt.js
new file mode 100644
index 0000000..ca709c5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/lt.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'lt', {
+ armenian: 'ArmÄniÅ¡ki skaitmenys',
+ bulletedTitle: 'Ženklelinio sÄ
rašo nustatymai',
+ circle: 'Apskritimas',
+ decimal: 'Dešimtainis (1, 2, 3, t.t)',
+ decimalLeadingZero: 'Dešimtainis su nuliu priekyje (01, 02, 03, t.t)',
+ disc: 'Diskas',
+ georgian: 'Gruziniški skaitmenys (an, ban, gan, t.t)',
+ lowerAlpha: 'Mažosios Alpha (a, b, c, d, e, t.t)',
+ lowerGreek: 'Mažosios Graikų (alpha, beta, gamma, t.t)',
+ lowerRoman: 'Mažosios RomÄnų (i, ii, iii, iv, v, t.t)',
+ none: 'Niekas',
+ notset: '<nenurodytas>',
+ numberedTitle: 'Skaitmeninio sÄ
rašo nustatymai',
+ square: 'Kvadratas',
+ start: 'Pradžia',
+ type: 'Rūšis',
+ upperAlpha: 'Didžiosios Alpha (A, B, C, D, E, t.t)',
+ upperRoman: 'Didžiosios RomÄnų (I, II, III, IV, V, t.t)',
+ validateStartNumber: 'SÄ
raÅ¡o pradžios skaitmuo turi bÅ«ti sveikas skaiÄius.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/lv.js b/devel/third-party/ckeditor/plugins/liststyle/lang/lv.js
new file mode 100644
index 0000000..30bdb67
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/lv.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'lv', {
+ armenian: 'ArmÄÅu skaitļi',
+ bulletedTitle: 'VienkÄrÅ¡a saraksta uzstÄdÄ«jumi',
+ circle: 'Aplis',
+ decimal: 'DecimÄlie (1, 2, 3, utt)',
+ decimalLeadingZero: 'DecimÄlie ar nulli (01, 02, 03, utt)',
+ disc: 'Disks',
+ georgian: 'GruzÄ«Åu skaitļi (an, ban, gan, utt)',
+ lowerAlpha: 'Mazie alfabÄta (a, b, c, d, e, utt)',
+ lowerGreek: 'Mazie grieÄ·u (alfa, beta, gamma, utt)',
+ lowerRoman: 'Mazie romÄÅu (i, ii, iii, iv, v, utt)',
+ none: 'Nekas',
+ notset: '<nav norÄdÄ«ts>',
+ numberedTitle: 'NumurÄta saraksta uzstÄdÄ«jumi',
+ square: 'KvadrÄts',
+ start: 'SÄkt',
+ type: 'Tips',
+ upperAlpha: 'Lielie alfabÄta (A, B, C, D, E, utt)',
+ upperRoman: 'Lielie romÄÅu (I, II, III, IV, V, utt)',
+ validateStartNumber: 'Saraksta sÄkuma numuram jÄbÅ«t veselam skaitlim'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/mk.js b/devel/third-party/ckeditor/plugins/liststyle/lang/mk.js
new file mode 100644
index 0000000..cb410b3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/mk.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'mk', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/mn.js b/devel/third-party/ckeditor/plugins/liststyle/lang/mn.js
new file mode 100644
index 0000000..b9e66cd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/mn.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'mn', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'ТөÑөл',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ms.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ms.js
new file mode 100644
index 0000000..b66d7da
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ms.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ms', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/nb.js b/devel/third-party/ckeditor/plugins/liststyle/lang/nb.js
new file mode 100644
index 0000000..8069079
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/nb.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'nb', {
+ armenian: 'Armensk nummerering',
+ bulletedTitle: 'Egenskaper for punktmerket liste',
+ circle: 'Sirkel',
+ decimal: 'Tall (1, 2, 3, osv.)',
+ decimalLeadingZero: 'Tall, med førstesiffer null (01, 02, 03, osv.)',
+ disc: 'Disk',
+ georgian: 'Georgisk nummerering (an, ban, gan, osv.)',
+ lowerAlpha: 'Alfabetisk, små (a, b, c, d, e, osv.)',
+ lowerGreek: 'Gresk, små (alpha, beta, gamma, osv.)',
+ lowerRoman: 'Romertall, små (i, ii, iii, iv, v, osv.)',
+ none: 'Ingen',
+ notset: '<ikke satt>',
+ numberedTitle: 'Egenskaper for nummerert liste',
+ square: 'Firkant',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Alfabetisk, store (A, B, C, D, E, osv.)',
+ upperRoman: 'Romertall, store (I, II, III, IV, V, osv.)',
+ validateStartNumber: 'Starten på listen må være et heltall.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/nl.js b/devel/third-party/ckeditor/plugins/liststyle/lang/nl.js
new file mode 100644
index 0000000..e6c50c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/nl.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'nl', {
+ armenian: 'Armeense nummering',
+ bulletedTitle: 'Eigenschappen lijst met opsommingstekens',
+ circle: 'Cirkel',
+ decimal: 'Cijfers (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Cijfers beginnen met nul (01, 02, 03, etc.)',
+ disc: 'Schijf',
+ georgian: 'Georgische nummering (an, ban, gan, etc.)',
+ lowerAlpha: 'Kleine letters (a, b, c, d, e, etc.)',
+ lowerGreek: 'Grieks kleine letters (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Romeins kleine letters (i, ii, iii, iv, v, etc.)',
+ none: 'Geen',
+ notset: '<niet gezet>',
+ numberedTitle: 'Eigenschappen genummerde lijst',
+ square: 'Vierkant',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Hoofdletters (A, B, C, D, E, etc.)',
+ upperRoman: 'Romeinse hoofdletters (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'Startnummer van de lijst moet een heel nummer zijn.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/no.js b/devel/third-party/ckeditor/plugins/liststyle/lang/no.js
new file mode 100644
index 0000000..89000ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/no.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'no', {
+ armenian: 'Armensk nummerering',
+ bulletedTitle: 'Egenskaper for punktmerket liste',
+ circle: 'Sirkel',
+ decimal: 'Tall (1, 2, 3, osv.)',
+ decimalLeadingZero: 'Tall, med førstesiffer null (01, 02, 03, osv.)',
+ disc: 'Disk',
+ georgian: 'Georgisk nummerering (an, ban, gan, osv.)',
+ lowerAlpha: 'Alfabetisk, små (a, b, c, d, e, osv.)',
+ lowerGreek: 'Gresk, små (alpha, beta, gamma, osv.)',
+ lowerRoman: 'Romertall, små (i, ii, iii, iv, v, osv.)',
+ none: 'Ingen',
+ notset: '<ikke satt>',
+ numberedTitle: 'Egenskaper for nummerert liste',
+ square: 'Firkant',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Alfabetisk, store (A, B, C, D, E, osv.)',
+ upperRoman: 'Romertall, store (I, II, III, IV, V, osv.)',
+ validateStartNumber: 'Starten på listen må være et heltall.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/pl.js b/devel/third-party/ckeditor/plugins/liststyle/lang/pl.js
new file mode 100644
index 0000000..b388130
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/pl.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'pl', {
+ armenian: 'Numerowanie armeÅskie',
+ bulletedTitle: 'WÅaÅciwoÅci list wypunktowanych',
+ circle: 'KoÅo',
+ decimal: 'Liczby (1, 2, 3 itd.)',
+ decimalLeadingZero: 'Liczby z poczÄ
tkowym zerem (01, 02, 03 itd.)',
+ disc: 'OkrÄ
g',
+ georgian: 'Numerowanie gruziÅskie (an, ban, gan itd.)',
+ lowerAlpha: 'MaÅe litery (a, b, c, d, e itd.)',
+ lowerGreek: 'MaÅe litery greckie (alpha, beta, gamma itd.)',
+ lowerRoman: 'MaÅe cyfry rzymskie (i, ii, iii, iv, v itd.)',
+ none: 'Brak',
+ notset: '<nie ustawiono>',
+ numberedTitle: 'WÅaÅciwoÅci list numerowanych',
+ square: 'Kwadrat',
+ start: 'PoczÄ
tek',
+ type: 'Typ punktora',
+ upperAlpha: 'Duże litery (A, B, C, D, E itd.)',
+ upperRoman: 'Duże cyfry rzymskie (I, II, III, IV, V itd.)',
+ validateStartNumber: 'ListÄ musi rozpoczynaÄ liczba caÅkowita.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/pt-br.js b/devel/third-party/ckeditor/plugins/liststyle/lang/pt-br.js
new file mode 100644
index 0000000..c0a611b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/pt-br.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'pt-br', {
+ armenian: 'Numeração Armêna',
+ bulletedTitle: 'Propriedades da Lista sem Numeros',
+ circle: 'CÃrculo',
+ decimal: 'Numeração Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Numeração Decimal com zeros (01, 02, 03, etc.)',
+ disc: 'Disco',
+ georgian: 'Numeração da Geórgia (an, ban, gan, etc.)',
+ lowerAlpha: 'Numeração Alfabética minúscula (a, b, c, d, e, etc.)',
+ lowerGreek: 'Numeração Grega minúscula (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Numeração Romana minúscula (i, ii, iii, iv, v, etc.)',
+ none: 'Nenhum',
+ notset: '<não definido>',
+ numberedTitle: 'Propriedades da Lista Numerada',
+ square: 'Quadrado',
+ start: 'InÃcio',
+ type: 'Tipo',
+ upperAlpha: 'Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)',
+ upperRoman: 'Numeração Romana maiúscula (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'O número inicial da lista deve ser um número inteiro.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/pt.js b/devel/third-party/ckeditor/plugins/liststyle/lang/pt.js
new file mode 100644
index 0000000..934e8e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/pt.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'pt', {
+ armenian: 'Numeração armênia',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'CÃrculo',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disco',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'Nenhum',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Quadrado',
+ start: 'Iniciar',
+ type: 'Tipo',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ro.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ro.js
new file mode 100644
index 0000000..7d1438e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ro.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ro', {
+ armenian: 'Numerotare armenianÄ',
+ bulletedTitle: 'ProprietÄÈile listei cu simboluri',
+ circle: 'Cerc',
+ decimal: 'Decimale (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimale cu zero în faÈÄ (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Numerotare georgianÄ (an, ban, gan, etc.)',
+ lowerAlpha: 'Litere mici (a, b, c, d, e, etc.)',
+ lowerGreek: 'Litere greceÈti mici (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Cifre romane mici (i, ii, iii, iv, v, etc.)',
+ none: 'Nimic',
+ notset: '<nesetat>',
+ numberedTitle: 'ProprietÄÈile listei numerotate',
+ square: 'PÄtrat',
+ start: 'Start',
+ type: 'Tip',
+ upperAlpha: 'Litere mari (A, B, C, D, E, etc.)',
+ upperRoman: 'Cifre romane mari (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'Ãnceputul listei trebuie sÄ fie un numÄr întreg.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ru.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ru.js
new file mode 100644
index 0000000..ec04fe9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ru.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ru', {
+ armenian: 'ÐÑмÑнÑÐºÐ°Ñ Ð½ÑмеÑаÑиÑ',
+ bulletedTitle: 'СвойÑÑва маÑкиÑованного ÑпиÑка',
+ circle: 'ÐÑÑг',
+ decimal: 'ÐеÑÑÑиÑнÑе (1, 2, 3, и Ñ.д.)',
+ decimalLeadingZero: 'ÐеÑÑÑиÑнÑе Ñ Ð²ÐµÐ´ÑÑим нÑлÑм (01, 02, 03, и Ñ.д.)',
+ disc: 'ÐкÑÑжноÑÑÑ',
+ georgian: 'ÐÑÑзинÑÐºÐ°Ñ Ð½ÑмеÑаÑÐ¸Ñ (ани, бани, гани, и Ñ.д.)',
+ lowerAlpha: 'СÑÑоÑнÑе лаÑинÑкие (a, b, c, d, e, и Ñ.д.)',
+ lowerGreek: 'СÑÑоÑнÑе гÑеÑеÑкие (алÑÑа, беÑа, гамма, и Ñ.д.)',
+ lowerRoman: 'СÑÑоÑнÑе ÑимÑкие (i, ii, iii, iv, v, и Ñ.д.)',
+ none: 'ÐеÑ',
+ notset: '<не Ñказано>',
+ numberedTitle: 'СвойÑÑва нÑмеÑованного ÑпиÑка',
+ square: 'ÐвадÑаÑ',
+ start: 'ÐаÑÐ¸Ð½Ð°Ñ Ñ',
+ type: 'Тип',
+ upperAlpha: 'ÐаглавнÑе лаÑинÑкие (A, B, C, D, E, и Ñ.д.)',
+ upperRoman: 'ÐаглавнÑе ÑимÑкие (I, II, III, IV, V, и Ñ.д.)',
+ validateStartNumber: 'ÐеÑвÑй Ð½Ð¾Ð¼ÐµÑ ÑпиÑка должен бÑÑÑ Ð·Ð°Ð´Ð°Ð½ обÑÑнÑм ÑелÑм ÑиÑлом.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/sk.js b/devel/third-party/ckeditor/plugins/liststyle/lang/sk.js
new file mode 100644
index 0000000..bf9ae63
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/sk.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'sk', {
+ armenian: 'Arménske ÄÃslovanie',
+ bulletedTitle: 'Vlastnosti odrážkového zoznamu',
+ circle: 'Kruh',
+ decimal: 'ÄÃselné (1, 2, 3, atÄ.)',
+ decimalLeadingZero: 'ÄÃselné s nulou (01, 02, 03, atÄ.)',
+ disc: 'Disk',
+ georgian: 'Gregoriánske ÄÃslovanie (an, ban, gan, atÄ.)',
+ lowerAlpha: 'Malé latinské (a, b, c, d, e, atÄ.)',
+ lowerGreek: 'Malé grécke (alfa, beta, gama, atÄ.)',
+ lowerRoman: 'Malé rÃmske (i, ii, iii, iv, v, atÄ.)',
+ none: 'NiÄ',
+ notset: '<nenastavené>',
+ numberedTitle: 'Vlastnosti ÄÃselného zoznamu',
+ square: 'Å tvorec',
+ start: 'ZaÄiatok',
+ type: 'Typ',
+ upperAlpha: 'Veľké latinské (A, B, C, D, E, atÄ.)',
+ upperRoman: 'Veľké rÃmske (I, II, III, IV, V, atÄ.)',
+ validateStartNumber: 'ZaÄiatoÄné ÄÃslo ÄÃselného zoznamu musà byÅ¥ celé ÄÃslo.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/sl.js b/devel/third-party/ckeditor/plugins/liststyle/lang/sl.js
new file mode 100644
index 0000000..0f788ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/sl.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'sl', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/liststyle/lang/sr-latn.js
new file mode 100644
index 0000000..b780610
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/sr-latn.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'sr-latn', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/sr.js b/devel/third-party/ckeditor/plugins/liststyle/lang/sr.js
new file mode 100644
index 0000000..63f7eef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/sr.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'sr', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/sv.js b/devel/third-party/ckeditor/plugins/liststyle/lang/sv.js
new file mode 100644
index 0000000..4ca5279
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/sv.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'sv', {
+ armenian: 'Armenisk numrering',
+ bulletedTitle: 'Egenskaper för punktlista',
+ circle: 'Cirkel',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal nolla (01, 02, 03, etc.)',
+ disc: 'Disk',
+ georgian: 'Georgisk numrering (an, ban, gan, etc.)',
+ lowerAlpha: 'Alpha gemener (a, b, c, d, e, etc.)',
+ lowerGreek: 'Grekiska gemener (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Romerska gemener (i, ii, iii, iv, v, etc.)',
+ none: 'Ingen',
+ notset: '<ej angiven>',
+ numberedTitle: 'Egenskaper för punktlista',
+ square: 'Fyrkant',
+ start: 'Start',
+ type: 'Typ',
+ upperAlpha: 'Alpha versaler (A, B, C, D, E, etc.)',
+ upperRoman: 'Romerska versaler (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/th.js b/devel/third-party/ckeditor/plugins/liststyle/lang/th.js
new file mode 100644
index 0000000..212aff3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/th.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'th', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/tr.js b/devel/third-party/ckeditor/plugins/liststyle/lang/tr.js
new file mode 100644
index 0000000..b5d0e8c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/tr.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'tr', {
+ armenian: 'Ermenice sayılandırma',
+ bulletedTitle: 'Simgeli Liste Ãzellikleri',
+ circle: 'Daire',
+ decimal: 'Ondalık (1, 2, 3, vs.)',
+ decimalLeadingZero: 'BaÅı sıfırlı ondalık (01, 02, 03, vs.)',
+ disc: 'Disk',
+ georgian: 'Gürcüce numaralandırma (an, ban, gan, vs.)',
+ lowerAlpha: 'Küçük Alpha (a, b, c, d, e, vs.)',
+ lowerGreek: 'Küçük Greek (alpha, beta, gamma, vs.)',
+ lowerRoman: 'Küçük Roman (i, ii, iii, iv, v, vs.)',
+ none: 'Yok',
+ notset: '<ayarlanmamıÅ>',
+ numberedTitle: 'SayılandırılmıŠListe Ãzellikleri',
+ square: 'Kare',
+ start: 'BaÅla',
+ type: 'Tipi',
+ upperAlpha: 'Büyük Alpha (A, B, C, D, E, vs.)',
+ upperRoman: 'Büyük Roman (I, II, III, IV, V, vs.)',
+ validateStartNumber: 'Liste baÅlangıcı tam sayı olmalıdır.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/ug.js b/devel/third-party/ckeditor/plugins/liststyle/lang/ug.js
new file mode 100644
index 0000000..ac188ba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/ug.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'ug', {
+ armenian: 'ÙÛØ¯ÙÙ
ÙÙ Ø¦ÛØ±Ù
ÙÙÙÙÛ ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ±Ù Ø´ÛÙÙÙ',
+ bulletedTitle: 'ØªÛØ± بÛÙÚ¯Û ØªÙØ²ÙÙ
خاسÙÙÙÙ',
+ circle: 'Ø¨ÙØ´ ÚÛÙ
Ø¨ÛØ±',
+ decimal: 'سا٠(1, 2, 3 ÙØ§ØªØ§Ø±ÙÙÙ)',
+ decimalLeadingZero: 'ÙÛÙØ¯ÙÙ Ø¨Ø§Ø´ÙØ§Ùغا٠سا٠بÛÙÚ¯Û (01, 02, 03 ÙØ§ØªØ§Ø±ÙÙÙ)',
+ disc: 'تÙÙØ¯ÛرÛÙØºØ§Ù ÚÛÙ
Ø¨ÛØ±',
+ georgian: 'ÙÛØ¯ÙÙ
ÙÙ Ø¬ÙØ±Ø¬ÙÙÛ ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ±Ù Ø´ÛÙÙÙ (an, ban, gan ÙØ§ØªØ§Ø±ÙÙÙ)',
+ lowerAlpha: 'ئÙÙÚ¯ÙÙØ²ÚÛ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ (a, b, c, d, e ÙØ§ØªØ§Ø±ÙÙÙ)',
+ lowerGreek: 'گرÛÙÚÛ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ (alpha, beta, gamma ÙØ§ØªØ§Ø±ÙÙÙ)',
+ lowerRoman: 'ÙÙÚÙÙ Ú¾ÛØ±Ù¾ÙÙ٠رÙÙ
رÛÙÙÙ
Ù (i, ii, iii, iv, v ÙØ§ØªØ§Ø±ÙÙÙ)',
+ none: 'بÛÙÚ¯Û ÙÙÙ',
+ notset: 'â¹ØªÛÚØ´ÛÙÙ
ÙÚ¯ÛÙâº',
+ numberedTitle: 'ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ± ØªÙØ²ÙÙ
خاسÙÙÙÙ',
+ square: 'تÙÙØ¯ÛرÛÙØºØ§Ù ØªÛØª ÚØ§Ø³Ø§',
+ start: 'باشÙÙÙÙØ´ ÙÙÙ
ÛØ±Ù',
+ type: 'بÛÙÚ¯Û ØªÙÙ¾Ù',
+ upperAlpha: 'ئÙÙÚ¯ÙÙØ²ÚÛ ÚÙÚ Ú¾ÛØ±Ù¾ (A, B, C, D, E ÙØ§ØªØ§Ø±ÙÙÙ)',
+ upperRoman: 'ÚÙÚ Ú¾ÛØ±Ù¾ÙÙ٠رÙÙ
رÛÙÙÙ
Ù (I, II, III, IV, V ÙØ§ØªØ§Ø±ÙÙÙ)',
+ validateStartNumber: 'ØªÙØ²ÙÙ
باشÙÙÙÙØ´ ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ±Ù ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠پÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù ÙØ§Ø²ÙÙ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/uk.js b/devel/third-party/ckeditor/plugins/liststyle/lang/uk.js
new file mode 100644
index 0000000..34e957c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/uk.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'uk', {
+ armenian: 'ÐÑÑменÑÑка нÑмеÑаÑÑÑ',
+ bulletedTitle: 'ÐпÑÑÑ Ð¼Ð°Ñкованого ÑпиÑкÑ',
+ circle: 'ÐÑлÑÑе',
+ decimal: 'ÐеÑÑÑÐºÐ¾Ð²Ñ (1, 2, 3 Ñ Ñ.д.)',
+ decimalLeadingZero: 'ÐеÑÑÑÐºÐ¾Ð²Ñ Ð· нÑлем (01, 02, 03 Ñ Ñ.д.)',
+ disc: 'ÐÑÑжеÑок',
+ georgian: 'ÐÑÑзинÑÑка нÑмеÑаÑÑÑ (an, ban, gan Ñ Ñ.д.)',
+ lowerAlpha: 'ÐÐ°Ð»Ñ Ð»Ð°Ñ. бÑкви (a, b, c, d, e Ñ Ñ.д.)',
+ lowerGreek: 'ÐÐ°Ð»Ñ Ð³Ñ. бÑкви (алÑÑа, беÑа, гамма Ñ Ñ.д.)',
+ lowerRoman: 'ÐÐ°Ð»Ñ ÑимÑÑÐºÑ (i, ii, iii, iv, v Ñ Ñ.д.)',
+ none: 'Ðема',
+ notset: '<не вказано>',
+ numberedTitle: 'ÐпÑÑÑ Ð½ÑмеÑованого ÑпиÑкÑ',
+ square: 'ÐвадÑаÑик',
+ start: 'ÐоÑаÑи з...',
+ type: 'Тип',
+ upperAlpha: 'ÐÐµÐ»Ð¸ÐºÑ Ð»Ð°Ñ. бÑкви (A, B, C, D, E Ñ Ñ.д.)',
+ upperRoman: 'ÐÐµÐ»Ð¸ÐºÑ ÑимÑÑÐºÑ (I, II, III, IV, V Ñ Ñ.д.)',
+ validateStartNumber: 'ÐоÑаÑковий Ð½Ð¾Ð¼ÐµÑ ÑпиÑÐºÑ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ бÑÑи ÑÑлим ÑиÑлом.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/vi.js b/devel/third-party/ckeditor/plugins/liststyle/lang/vi.js
new file mode 100644
index 0000000..ae3ec06
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/vi.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'vi', {
+ armenian: 'Sá» theo kiá»u Armenian',
+ bulletedTitle: 'Thuá»c tÃnh danh sách không thứ tá»±',
+ circle: 'Khuyên tròn',
+ decimal: 'Kiá»u sá» (1, 2, 3 ...)',
+ decimalLeadingZero: 'Kiá»u sá» (01, 02, 03...)',
+ disc: 'Hình ÄÄ©a',
+ georgian: 'Sá» theo kiá»u Georgian (an, ban, gan...)',
+ lowerAlpha: 'Kiá»u abc thưá»ng (a, b, c, d, e...)',
+ lowerGreek: 'Kiá»u Hy Lạp (alpha, beta, gamma...)',
+ lowerRoman: 'Sá» La Mã kiá»u thưá»ng (i, ii, iii, iv, v...)',
+ none: 'Không gì cả',
+ notset: '<không thiết láºp>',
+ numberedTitle: 'Thuá»c tÃnh danh sách có thứ tá»±',
+ square: 'Hình vuông',
+ start: 'Bắt Äầu',
+ type: 'Kiá»u loại',
+ upperAlpha: 'Kiá»u ABC HOA (A, B, C, D, E...)',
+ upperRoman: 'Sá» La Mã kiá»u HOA (I, II, III, IV, V...)',
+ validateStartNumber: 'Sá» bắt Äầu danh sách phải là má»t sá» nguyên.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/liststyle/lang/zh-cn.js
new file mode 100644
index 0000000..eca6da2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/zh-cn.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'zh-cn', {
+ armenian: 'ä¼ ç»çäºç¾å°¼äºç¼å·æ¹å¼',
+ bulletedTitle: '项ç®åè¡¨å±æ§',
+ circle: '空å¿å',
+ decimal: 'æ°å (1, 2, 3, ç)',
+ decimalLeadingZero: '0å¼å¤´çæ°åæ è®°(01, 02, 03, ç)',
+ disc: 'å®å¿å',
+ georgian: 'ä¼ ç»ç乿²»äºç¼å·æ¹å¼(an, ban, gan, ç)',
+ lowerAlpha: 'å°åè±æåæ¯(a, b, c, d, e, ç)',
+ lowerGreek: 'å°åå¸è
忝(alpha, beta, gamma, ç)',
+ lowerRoman: 'å°åç½é©¬æ°å(i, ii, iii, iv, v, ç)',
+ none: 'æ æ è®°',
+ notset: '<没æè®¾ç½®>',
+ numberedTitle: 'ç¼å·åè¡¨å±æ§',
+ square: 'å®å¿æ¹å',
+ start: 'å¼å§åºå·',
+ type: 'æ è®°ç±»å',
+ upperAlpha: '大åè±æåæ¯(A, B, C, D, E, ç)',
+ upperRoman: '大åç½é©¬æ°å(I, II, III, IV, V, ç)',
+ validateStartNumber: 'å表å¼å§åºå·å¿
é¡»ä¸ºæ´æ°æ ¼å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/lang/zh.js b/devel/third-party/ckeditor/plugins/liststyle/lang/zh.js
new file mode 100644
index 0000000..9477770
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/liststyle/lang/zh.js
@@ -0,0 +1,25 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'liststyle', 'zh', {
+ armenian: 'Armenian numbering',
+ bulletedTitle: 'Bulleted List Properties',
+ circle: 'Circle',
+ decimal: 'Decimal (1, 2, 3, etc.)',
+ decimalLeadingZero: 'Decimal leading zero (01, 02, 03, etc.)',
+ disc: 'Disc',
+ georgian: 'Georgian numbering (an, ban, gan, etc.)',
+ lowerAlpha: 'Lower Alpha (a, b, c, d, e, etc.)',
+ lowerGreek: 'Lower Greek (alpha, beta, gamma, etc.)',
+ lowerRoman: 'Lower Roman (i, ii, iii, iv, v, etc.)',
+ none: 'None',
+ notset: '<not set>',
+ numberedTitle: 'Numbered List Properties',
+ square: 'Square',
+ start: 'Start',
+ type: 'Type',
+ upperAlpha: 'Upper Alpha (A, B, C, D, E, etc.)',
+ upperRoman: 'Upper Roman (I, II, III, IV, V, etc.)',
+ validateStartNumber: 'List start number must be a whole number.'
+});
diff --git a/devel/third-party/ckeditor/plugins/liststyle/plugin.js b/devel/third-party/ckeditor/plugins/liststyle/plugin.js
index 8e23cca..215c8a2 100644
--- a/devel/third-party/ckeditor/plugins/liststyle/plugin.js
+++ b/devel/third-party/ckeditor/plugins/liststyle/plugin.js
@@ -1,64 +1,49 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-(function()
-{
- CKEDITOR.plugins.liststyle =
- {
- requires : [ 'dialog' ],
- init : function( editor )
- {
+(function() {
+ CKEDITOR.plugins.liststyle = {
+ requires: 'dialog,contextmenu',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
editor.addCommand( 'numberedListStyle', new CKEDITOR.dialogCommand( 'numberedListStyle' ) );
CKEDITOR.dialog.add( 'numberedListStyle', this.path + 'dialogs/liststyle.js' );
editor.addCommand( 'bulletedListStyle', new CKEDITOR.dialogCommand( 'bulletedListStyle' ) );
CKEDITOR.dialog.add( 'bulletedListStyle', this.path + 'dialogs/liststyle.js' );
- // If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- //Register map group;
- editor.addMenuGroup("list", 108);
+ //Register map group;
+ editor.addMenuGroup( "list", 108 );
- editor.addMenuItems(
- {
- numberedlist :
- {
- label : editor.lang.list.numberedTitle,
- group : 'list',
- command: 'numberedListStyle'
- },
- bulletedlist :
- {
- label : editor.lang.list.bulletedTitle,
- group : 'list',
- command: 'bulletedListStyle'
- }
- });
- }
+ editor.addMenuItems({
+ numberedlist: {
+ label: editor.lang.liststyle.numberedTitle,
+ group: 'list',
+ command: 'numberedListStyle'
+ },
+ bulletedlist: {
+ label: editor.lang.liststyle.bulletedTitle,
+ group: 'list',
+ command: 'bulletedListStyle'
+ }
+ });
- // If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !element || element.isReadOnly() )
- return null;
+ editor.contextMenu.addListener( function( element, selection ) {
+ if ( !element || element.isReadOnly() )
+ return null;
- while ( element )
- {
- var name = element.getName();
- if ( name == 'ol' )
- return { numberedlist: CKEDITOR.TRISTATE_OFF };
- else if ( name == 'ul' )
- return { bulletedlist: CKEDITOR.TRISTATE_OFF };
+ while ( element ) {
+ var name = element.getName();
+ if ( name == 'ol' )
+ return { numberedlist: CKEDITOR.TRISTATE_OFF };
+ else if ( name == 'ul' )
+ return { bulletedlist: CKEDITOR.TRISTATE_OFF };
- element = element.getParent();
- }
- return null;
- });
- }
+ element = element.getParent();
+ }
+ return null;
+ });
}
};
diff --git a/devel/third-party/ckeditor/plugins/magicline/dev/magicline.html b/devel/third-party/ckeditor/plugins/magicline/dev/magicline.html
new file mode 100644
index 0000000..35b0fbc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/magicline/dev/magicline.html
@@ -0,0 +1,594 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>Magicline muddy trenches – CKEditor Sample</title>
+ <script src="../../../ckeditor.js"></script>
+ <link href="../../../samples/sample.css" rel="stylesheet">
+ <style>
+ body {
+ margin: 0 0 130px;
+ }
+ #dev {
+ border-top: 1px solid #555;
+ position: fixed;
+ bottom: 0px;
+ left: 0px;
+ right: 0px;
+ height: 110px;
+ background: #B5E5EE;
+ font-size: 15px;
+ }
+ #dev .hl {
+ color: red;
+ }
+ #tr_upper, #tr_lower {
+ padding: 3px 6px;
+ }
+ #tr_upper {
+ background: rgba(255,0,0,.3);
+ }
+ #tr_lower {
+ background: rgba(0,255,0,.3);
+ }
+
+ #dev p {
+ margin: 0;
+ padding: 0;
+ }
+
+ #timeData,
+ #triggerData,
+ #mouseData,
+ #hiddenData {
+ position: absolute;
+ }
+ #timeData {
+ right: 10px;
+ top: 10px;
+ }
+ #hiddenData {
+ right: 10px;
+ top: 40px;
+ }
+ #mouseData {
+ left: 10px;
+ top: 10px;
+ }
+ #dev h2 {
+ top: 10px;
+ left: 10px;
+ }
+ #triggerData {
+ bottom: 10px;
+ left: 10px;
+ }
+ </style>
+</head>
+<body>
+ <h1 class="samples">
+ CKEditor Sample — magicline muddy trenches
+ </h1>
+
+ <h2>Various cases</h2>
+ <textarea cols="80" id="editor1" name="editor1" rows="10">
+ <div style="padding: 20px; background: gray; width: 300px" class="1">Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim.</div>
+ <div style="background: violet; padding: 30px" class="static">Position static</div>
+ <dl class="2">
+ <dt>Key</dt><dd>Value</dd>
+ </dl>
+ <div>Whatever</div>
+ <hr id="hr">
+ <div style="
+ display: block;
+ cursor: pointer;
+ background: green;
+ height: 50px; width: 50px;" >aasd
+ </div>
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>
+ <hr>
+ <hr>
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>
+ <table border="1" class="first">
+ <tbody><tr>
+ <td>
+ Table Cell 1
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Table Cell 2<br>
+ Table Cell 2<br>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div style="border: 1px solid red; padding: 50px">
+ Parent
+ <div style="border: 10px solid green; padding: 10px">Child</div>
+ </div>
+ I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body.
+ I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body. I'm in a body.
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>
+ <table border="1" style="margin: 15px 0 100px" class="outer">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>
+ <table border="10" class="inner">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="1" style="margin: 15px" class="third">
+ <tbody><tr>
+ <td>
+ Table Cell 1
+ </td>
+ <td>
+ Table Cell 1
+ </td>
+ <td>
+ Table Cell 1
+ </td>
+ <td>
+ Table Cell 1
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Table Cell 2
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="1" style="margin: 15px" class="fourth">
+ <tbody><tr>
+ <td>
+ Table Cell 1
+ </td>
+ <td>
+ Table Cell 1
+ </td>
+ <td>
+ Table Cell 1
+ </td>
+ <td>
+ Table Cell 1
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Table Cell 2
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <ul style="" class="fifth">
+ <li name="ul_first">List item</li>
+ <li name="ul_second">
+ <ol style="">
+ <li name="ol_first">Nested item</li>
+ <li>Nested item</li>
+ <li>Nested item</li>
+ </ol>
+ </li>
+ <li>List item</li>
+ </ul>
+ <table border="1" class="table#123">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="1" align="right" class="aligned">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="1" style="float: right" class="floated">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="1" align=""class="table#124">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ <table border="1"class="table#125">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ <p> enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas male</p>
+ <table border="1"class="table#126">
+ <tbody>
+ <tr>
+ <td>Table Cell 1</td>
+ </tr>
+ <tr>
+ <td>Table Cell 2<br> Table Cell 2<br></td>
+ </tr>
+ </tbody>
+ </table>
+ <div style="background: orange; margin: 20px">Upper div</div>
+ <table style="background: blue; margin: 20px"><tr><td>Lower table</td></tr></table>
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>
+ <div><strong>I'm a div. Let me stay here.</strong></div><dl>
+ <dt>Key</dt>
+ <dd>pendisse a pellentesque dui, non felis</dd>
+ <dt>Key</dt>
+ <dd>pendisse a pellentesque dui, non felis</dd>
+ </dl>
+ <div class="11" style="padding: 20px; background: pink; width: 400px">
+ Parent
+ <div class="12" style="padding: 20px; background: orange">
+ <!-- comment -->
+ <!-- another comment -->
+ <div class="13" style="padding: 20px; background: green">
+ Child#2
+ </div>
+ </div>
+ </div>
+ </textarea>
+
+ <h2>Odd case: first (last) element at the very beginning, short editable</h2>
+ <textarea cols="80" id="editor2" name="editor1a" rows="10">
+ <table border="1" style="width: 300px">
+ <tbody>
+ <tr>
+ <td>
+ Test</td>
+ </tr>
+ </tbody>
+ </table>
+ </textarea>
+
+ <h2>Large document, put everywhere</h2>
+ <textarea id="editor3">
+ <p><div class="navbar" align="center" style="color: rgb(0, 0, 0);font-family: sans-serif;font-size: medium;"><a accesskey="p" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">previous</a>Â Â Â <a accesskey="n" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/idl-definitions.html" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">next</a>Â Â Â <a accesskey="c" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/Overview.html#contents" style="color: rgb(102, 0, 153);background-image: initial;background-attachment:
initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">contents</a>Â Â Â <a accesskey="i" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/def-index.html" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">index</a><hr title="Navigation area separator"></div><div class="noprint" style="color: rgb(0, 0, 0);font-family: sans-serif;font-size: medium;text-align: right;"><p style="font-family: monospace;font-size: small;">13 November, 2000</p></div><div class="div1" style="color: rgb(0, 0, 0);font-family: sans-serif;font-size: medium;"><a id="Range" name="Range"></a><h1 id="Range-h1" class="div1" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;backgroun
d-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 27px;font-weight: normal; background-color: violet">2. Document Object Model Range</h1><dl style="background: green"><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><i>Editors</i></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Peter Sharpe, SoftQuad Software Inc.</dd><dd style="margin-top: 0px;margin-bottom: 0px;">Vidur Apparao, Netscape Communications Corp.</dd><dd style="margin-top: 0px;margin-bottom: 0px;">Lauren Wood, SoftQuad Software Inc.</dd></dl><div class="noprint"><h2 id="table-of-contents" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">Table of contents</h2><ul class="toc" style="list-style-type: none;list-style-position: initial;list-style-image: initial;"><li class
="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-introduction" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.1. Introduction</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Definitions" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial; background: red">2.2. Definitions and Notation</a><ul class="toc" style="list-style-type: none;list-style-position: initial;list-style-image: initial;"><li class="tocline4" style="font-style: italic;"><a class="tocxr
ef" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Position" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.2.1. Position</a></li><li class="tocline4" style="font-style: italic;"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Containment" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.2.2. Selection and Partial Selection</a></li><li class="tocline4" style="font-style: italic;"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Notation" style="color:
rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.2.3. Notation</a></li></ul></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Creating" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.3. Creating a Range</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Changing" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position
: initial initial;background-repeat: initial initial;">2.4. Changing a Range's Position</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Comparing" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.5. Comparing Range Boundary-Points</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Deleting-Content" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.6. Deleting Content with a Range</a></li><li class="tocline3"><a class="tocxref" href="
http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Extracting" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.7. Extracting Content</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Cloning" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.8. Cloning Content</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Inserting" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;bac
kground-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.9. Inserting Content</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Surrounding" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.10. Surrounding Content</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Misc" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.11. Miscellaneous Me
mbers</a></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.12. Range modification under document mutation</a><ul class="toc" style="list-style-type: none;list-style-position: initial;list-style-image: initial;"><li class="tocline4" style="font-style: italic;"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Insertions" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.12.1. Insertions</a></li><li class="toc
line4" style="font-style: italic;"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Deletions" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.12.2. Deletions</a></li></ul></li><li class="tocline3"><a class="tocxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Interface" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">2.13. Formal Description of the Range Interface</a><ul class="toc" style="list-style-type: none;list-style-position: initial;list-style-image: initial;"><li class="tocline4" style="font-s
tyle: italic;"><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">Range</a>, <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-DocumentRange-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">DocumentRange</a>, <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-p
osition: initial initial;background-repeat: initial initial;">RangeException</a>, <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeExceptionCode" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">RangeExceptionCode</a></li></ul></li></ul></div><div class="div2"><a id="Level-2-Range-introduction" name="Level-2-Range-introduction"></a><h2 id="Level-2-Range-introduction-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.1. Introduction</h2><p>A Range identifies a range of content in a Document, DocumentFragment or Attr. It is contiguous in the sense that it can be characterized
as selecting all of the content between a pair of boundary-points.</p><p><b>Note:</b>Â In a text editor or a word processor, a user can make a selection by pressing down the mouse at one point in a document, moving the mouse to another point, and releasing the mouse. The resulting selection is contiguous and consists of the content between the two points.</p><p>The term 'selecting' does not mean that every Range corresponds to a selection made by a GUI user;however, such a selection can be returned to a DOM user as a Range.</p><p><b>Note:</b>Â In bidirectional writing (Arabic, Hebrew), a range may correspond to a logical selection that is not necessarily contiguous when displayed. A visually contiguous selection, also used in some cases, may not correspond to a single logical selection, and may therefore have to be represented by more than one range.</p><p>The Range interface provides methods for accessing and manipulating the document tree at a higher level than similar met
hods in the Node interface. The expectation is that each of the methods provided by the Range interface for the insertion, deletion and copying of content can be directly mapped to a series of Node editing operations enabled by DOM Core. In this sense, the Range operations can be viewed as convenience methods that also enable the implementation to optimize common editing patterns.</p><p>This chapter describes the Range interface, including methods for creating and moving a Range and methods for manipulating content with Ranges.</p><p>The interfaces found within this section are not mandatory. A DOM application may use the <code>hasFeature(feature, version)</code> method of the <code>DOMImplementation</code> interface with parameter values "Range" and "2.0" (respectively) to determine whether or not this module is supported by the implementation. In order to fully support this module, an implementation must also support the "Core" feature defined defined in the DOM Level
2 Core specification [<a class="noxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/references.html#DOMCore" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">DOM Level 2 Core</a>]. Please refer to additional information about <a href="http://www.w3.org/TR/DOM-Level-2-Core/introduction.html#ID-Conformance" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>conformance</em></a> in the DOM Level 2 Core specification [<a class="noxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/references.html#DOMCore" style="color: rgb(102, 0, 153);background-image: initial;background-
attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">DOM Level 2 Core</a>].</p></div><div class="div2" style="background: blue;"><a id="Level-2-Range-Definitions" name="Level-2-Range-Definitions"></a><h2 id="Level-2-Range-Definitions-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal; background: red">2.2. Definitions and Notation</h2><div style="background: yellow" class="div3"><a id="Level-2-Range-Position" name="Level-2-Range-Position"></a><h3 id="Level-2-Range-Position-h3" class="div3" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size
: 19px;font-weight: normal;">2.2.1. Position</h3><p>This chapter refers to two different representations of a document: the text or source form that includes the document markup and the tree representation similar to the one described in the introduction section of the DOM Level 2 Core [<a class="noxref" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/references.html#DOMCore" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">DOM Level 2 Core</a>].</p><p>A Range consists of two <i>boundary-points</i> corresponding to the start and the end of the Range. <a id="td-boundarypoint" name="td-boundarypoint"></a>A boundary-point's position in a Document or DocumentFragment tree can be characterized by a node and an offset. <a id="td-container" name="td-container"></a>The node is cal
led the <i>container</i> of the boundary-point and of its position. <a id="td-ancestor-container" name="td-ancestor-container"></a>The container and its ancestors are the <i>ancestor container</i>s of the boundary-point and of its position.<a id="td-offset" name="td-offset"></a>The offset within the node is called the <i>offset</i> of the boundary-point and its position. If the container is an Attr, Document, DocumentFragment, Element or EntityReference node, the offset is between its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-child" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>child</em></a> nodes. If the container is a CharacterData, Comment or ProcessingInstruction node, the offset is between the <a href="http://www.w3.org/TR/DOM-Le
vel-2-Traversal-Range/glossary.html#dt-16-bit-unit" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>16-bit units</em></a> of the UTF-16 encoded string contained by it.</p><p>The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-points</em></a> of a Range must have a common <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;backgrou
nd-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> which is either a Document, DocumentFragment or Attr node. That is, the content of a Range must be entirely within the subtree rooted by a single Document, DocumentFragment or Attr Node. <a id="td-root-container" name="td-root-container"></a>This common <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> is known as the <i>root container</i> of the Range. <a id="td-context-tree" name="td-context-tree"></a>The tree rooted by the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-root-c
ontainer" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>root container</em></a> is known as the Range's <i>context tree</i>.</p><p>The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of a <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial init
ial;background-repeat: initial initial;"><em>boundary-point</em></a> of a Range must be an Element, Comment, ProcessingInstruction, EntityReference, CDATASection, Document, DocumentFragment, Attr, or Text node. None of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a>s of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> of a Range can be a Docum
entType, Entity or Notation node.</p><p>In terms of the text representation of a document, the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-points</em></a> of a Range can only be on token boundaries. That is, the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> of the text range cannot be in the middle of a start- or end-tag of an element or within the name of an entity o
r character reference. A Range locates a contiguous portion of the content of the structure model.</p><p>The relationship between locations in a text representation of the document and in the Node tree interface of the DOM is illustrated in the following diagram:<br></p><div align="center"><hr width="90%" size="2"><img src="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/images/RangeExample.gif" alt="Range Example"><hr width="90%" size="2"><b>Range Example</b><hr width="90%" size="2"></div><p>In this diagram, four different Ranges are illustrated. The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-points</em></a> of each Range are labelled with <i>s#</i> (the start of the Range
) and <i>e#</i> (the end of the Range), where # is the number of the Range. For Range 2, the start is in the BODY element and is immediately after the H1 element and immediately before the P element, so its position is between the H1 and P children of BODY. The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of a <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> whose <a h
ref="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> is not a CharacterData node is 0 if it is before the first child, 1 if between the first and second child, and so on. So, for the start of the Range 2, the<a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> is BODY and the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);backg
round-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> is 1. The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of a <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> whose <a href="http://www.w3.org/TR
/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> is a CharacterData node is obtained similarly but using <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-16-bit-unit" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>16-bit unit</em></a> positions instead. For example, the<a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-cl
ip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> labelled s1 of the Range 1 has a Text node (the one containing "Title") as its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> and an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of 2 since it is between the second and third <a href="ht
tp://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-16-bit-unit" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>16-bit unit</em></a>.</p><p>Notice that the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s of Ranges 3 and 4 correspond to the same location in the text representation. An important feature of the Range is that a <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image
: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> of a Range can unambiguously represent every position within the document tree.</p><p>The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>s and <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial
initial;"><em>offset</em></a>s of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s can be obtained through the following read-only Range attributes:</p><div class="eg"><pre style="margin-left: 2em;"> readonly attribute Node startContainer;readonly attribute long startOffset;readonly attribute Node endContainer;readonly attribute long endOffset;</pre></div><p><a id="td-collapsed" name="td-collapsed"></a>If the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;
background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s of a Range have the same <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>s and <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a>s, the Range is said to be a <i>collapsed</i> Range. (This is often referred to as an insertion point in a user agent.)</p></div><div class="div3"><a id="Lev
el-2-Range-Containment" name="Level-2-Range-Containment"></a><h3 id="Level-2-Range-Containment-h3" class="div3" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 19px;font-weight: normal;">2.2.2. Selection and Partial Selection</h3><p><a id="td-selected" name="td-selected"></a>A node or <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-16-bit-unit" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>16-bit unit</em></a> unit is said to be <i>selected</i> by a Range if it is between the two <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);backgrou
nd-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s of the Range, that is, if the position immediately before the node or 16-bit unit is before the end of the Range and the position immediately after the node or 16-bit unit is after the start of the range. For example, in terms of a text representation of the document, an element would be <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>selected</em></a>by a Range if its corresponding start-tag was located after the start of the Range and its end-tag was located before
the end of the Range. In the examples in the above diagram, the Range 2<a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>selects</em></a> the P node and the Range 3 <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>selects</em></a> the text node containing the text "Blah xyz."</p><p><a id="td-partially-selected" name="td-partially-selected"></a>A node is said to be <i>partially selected</i> by a Range if it is an <a
href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of exactly one <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> of the Range. For example, consider Range 1 in the above diagram. The element H1 is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background
-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selected</em></a> by that Range since the start of the Range is within one of its children.</p></div><div class="div3"><a id="Level-2-Range-Notation" name="Level-2-Range-Notation"></a><h3 id="Level-2-Range-Notation-h3" class="div3" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 19px;font-weight: normal;">2.2.3. Notation</h3><p>Many of the examples in this chapter are illustrated using a text representation of a document. The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: ini
tial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s of a Range are indicated by displaying the characters (be they markup or data characters) between the two <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s in bold, as in</p><div class="eg"><pre style="margin-left: 2em;"> <FOO>A<b>BC<BAR>DE</b>F</BAR></FOO></pre></div><p>When both <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparen
t;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s are at the same position, they are indicated with a bold caret ('<b>^</b>'), as in</p><div class="eg"><pre style="margin-left: 2em;"> <FOO>A<b>^</b>BC<BAR>DEF</BAR></FOO></pre></div></div></div><div class="div2"><a id="Level-2-Range-Creating" name="Level-2-Range-Creating"></a><h2 id="Level-2-Range-Creating-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.3. Creating a Range</h2><p>A Range is created by calling the <code>createRange()</code> method on the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-DocumentRange-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initi
al;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>DocumentRange</code></a> interface. This interface can be obtained from the object implementing the <code>Document</code> interface using binding-specific casting methods.</p><div class="eg"><pre style="margin-left: 2em;"> interface DocumentRange{Range createRange();}</pre></div><p>The initial state of the Range returned from this method is such that both of its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a>s are positioned at the beginning of the corresponding Document, before any content. In other words, the <a href="http://www.w3.org/TR/DOM-Level-2-
Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of each <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> is the Document node and the offset within that node is 0.</p><p>Like some objects created using methods in the Document interface (such as Nodes and DocumentFragments), Ranges created via a particular document instance can select only content associated with that Document, or with DocumentFragments and Attr
s for which that Document is the <code>ownerDocument</code>. Such Ranges, then, can not be used with other Document instances.</p></div><div class="div2"><a id="Level-2-Range-Changing" name="Level-2-Range-Changing"></a><h2 id="Level-2-Range-Changing-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.4. Changing a Range's Position</h2><p>A Range's position can be specified by setting the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> and <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Ra
nge/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of each boundary-point with the <code>setStart</code> and <code>setEnd</code> methods.</p><div class="eg"><pre style="margin-left: 2em;"> void setStart(in Node parent, in long offset) raises(RangeException);void setEnd(in Node parent, in long offset) raises(RangeException);</pre></div><p>If one boundary-point of a Range is set to have a <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-root-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>root container</
em></a> other than the current one for the Range, the Range is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a> to the new position. This enforces the restriction that both boundary-points of a Range must have the same <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-root-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>root container</em></a>.</p><p>The start position of a Range is guaranteed to never be after the end position. To enforce this
restriction, if the start is set to be at a position after the end, the Range is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a> to that position. Similarly, if the end is set to be at a position before the start, the Range is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a> to that position.</p><p>It is also possible to set a Range's position relative to nodes in the tree:</p>
<div class="eg"><pre style="margin-left: 2em;"> void setStartBefore(in Node node);raises(RangeException);void setStartAfter(in Node node);raises(RangeException);void setEndBefore(in Node node);raises(RangeException);void setEndAfter(in Node node);raises(RangeException);</pre></div><p>The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-parent" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>parent</em></a> of the node becomes the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;
"><em>container</em></a> of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> and the Range is subject to the same restrictions as given above in the description of <code>setStart()</code>and <code>setEnd()</code>.</p><p>A Range can be <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a> to either boundary-point:</p><div class="eg"><pre style="margin-left: 2em;"> void
collapse(in boolean toStart);</pre></div><p>Passing <code>TRUE</code> as the parameter <code>toStart</code> will <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapse</em></a> the Range to its start, <code>FALSE</code> to its end.</p><p>Testing whether a Range is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a> can be done by examining the <code>collapsed</code> attribute:</p><div cla
ss="eg"><pre style="margin-left: 2em;"> readonly attribute boolean collapsed;</pre></div><p>The following methods can be used to make a Range select the contents of a node or the node itself.</p><div class="eg"><pre style="margin-left: 2em;"> void selectNode(in Node n);void selectNodeContents(in Node n);</pre></div><p>The following examples demonstrate the operation of the methods <code>selectNode</code> and <code>selectNodeContents</code>:</p><div class="eg"><pre style="margin-left: 2em;">Before: <b>^</b><BAR><FOO>A<MOO>B</MOO>C</FOO></BAR>After Range.selectNodeContents(FOO): <BAR><FOO><b>A<MOO>B</MOO>C</b></FOO></BAR>(In this case, FOO is the parent of both boundary-points)After Range.selectNode(FOO):<BAR><b><FOO>A<MOO>B</MOO>C</FOO></b></BAR></pre></div></div><div class="div2"><a id="Level-2-Range-Comparing" name="Level-2-Range-Comparing"></a><h2 id="Level-2-Range-Comparing-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;back
ground-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.5. Comparing Range Boundary-Points</h2><p>It is possible to compare two Ranges by comparing their boundary-points:</p><div class="eg"><pre style="margin-left: 2em;"> short compareBoundaryPoints(in CompareHow how, in Range sourceRange) raises(RangeException);</pre></div><p>where <code>CompareHow</code> is one of four values: <code>START_TO_START</code>, <code>START_TO_END</code>, <code>END_TO_END</code> and <code>END_TO_START</code>. The return value is -1, 0 or 1 depending on whether the corresponding boundary-point of the Range is before, equal to, or after the corresponding boundary-point of <code>sourceRange</code>. An exception is thrown if the two Ranges have different <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-root-container" style="color: rgb(102, 0, 153);background-image: initial;backgrou
nd-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>root container</em></a>s.</p><p>The result of comparing two boundary-points (or positions) is specified below. An informal but not always correct specification is that an boundary-point is before, equal to, or after another if it corresponds to a location in a text representation before, equal to, or after the other's corresponding location.</p><p><a id="td-comparison" name="td-comparison"></a>Let A and B be two boundary-points or positions. Then one of the following holds: A is <i>before</i> B, A is <i>equal to</i> B, or A is <i>after</i> B. Which one holds is specified in the following by examining four cases:</p><p>In the first case the boundary-points have the same <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);backgr
ound-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>. A is <i>before</i> B if its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> is less than the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of B, A is <i>eq
ual to</i> B if its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> is equal to the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of B, and A is <i>after</i> B if its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initi
al;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> is greater than the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of B.</p><p>In the second case a child node C of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of A is an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-anc
estor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of B. In this case, A is <i>before</i> B if the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of A is less than or equal to the index of the child node C and A is <i>after</i>B otherwise.</p><p>In the third case a child node C of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-atta
chment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of B is an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of A. In this case, A is <i>before</i> B if the index of the child node C is less than the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial in
itial;"><em>offset</em></a> of B and A is <i>after</i> B otherwise.</p><p>In the fourth case, none of three other cases hold: the containers of A and B are <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-sibling" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>siblings</em></a> or <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-descendant" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>descendants</em></a> of sibling nodes. In this case, A is <i>before</i> B if the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Ra
nge/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of A is before the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of B in a pre-order traversal of the Ranges' <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-posit
ion: initial initial;background-repeat: initial initial;"><em>context tree</em></a> and A is <i>after</i> B otherwise.</p><p>Note that because the same location in a text representation of the document can correspond to two different positions in the DOM tree, it is possible for two boundary-points to not compare equal even though they would be equal in the text representation. For this reason, the informal definition above can sometimes be incorrect.</p></div><div class="div2"><a id="Level-2-Range-Deleting-Content" name="Level-2-Range-Deleting-Content"></a><h2 id="Level-2-Range-Deleting-Content-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.6. Deleting Content with a Range</h2><p>One can delete the contents selected by a Range with:</p><div class="eg"><pre style="margin-left: 2em;"> v
oid deleteContents();</pre></div><p><code>deleteContents()</code> deletes all nodes and characters selected by the Range. All other nodes and characters remain in the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>context tree</em></a> of the Range. Some examples of this deletion operation are:</p><div class="eg"><pre style="margin-left: 2em;">(1) <FOO>A<b>B<MOO>CD</MOO></b>CD</FOO>--><FOO>A<b>^</b>CD</FOO></pre></div><div class="eg"><pre style="margin-left: 2em;">(2) <FOO>A<MOO>B<b>C</MOO>D</b>E</FOO>--><FOO>A<MOO>B</MOO><b>^</b>E</FOO></pre></div><div class="eg"><pre style="margin-left: 2em;">(3) <FOO>X<b>Y<BAR>Z</b>W</BAR>Q</FOO>--><FOO>X<b>^</b><BAR>W</BAR>Q</FOO></pre></div><div class
="eg"><pre style="margin-left: 2em;">(4) <FOO><BAR1>A<b>B</BAR1><BAR2/><BAR3>C</b>D</BAR3></FOO>--><FOO><BAR1>A</BAR1><b>^</b><BAR3>D</BAR3></pre></div><p>After <code>deleteContents()</code> is invoked on a Range, the Range is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a>. If no node was <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selected</em></a> by the Range, then it
is <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a> to its original start point, as in example (1). If a node was <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selected</em></a> by the Range and was an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: i
nitial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of the start of the Range and no <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-ancestor" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor</em></a> of the node satisfies these two conditions, then the Range is collapsed to the position immediately after the node, as in examples (2) and (4). If a node was <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-colo
r: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selected</em></a> by the Range and was an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of the end of the Range and no ancestor of the node satisfies these two conditions, then the Range is collapsed to the position immediately before the node, as in examples (3) and (4).</p><p>Note that if deletion of a Range leaves adjacent Text nodes, they are not automatically merged, and empty Text nodes are not automatically removed. Two Text nodes should be joined only if each is the container of one of the boundary-points of a Range whose contents are deleted. To
merge adjacent Text nodes, or remove empty text nodes, the <code>normalize()</code> method on the <code>Node</code>interface should be used.</p></div><div class="div2"><a id="Level-2-Range-Extracting" name="Level-2-Range-Extracting"></a><h2 id="Level-2-Range-Extracting-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.7. Extracting Content</h2><p>If the contents of a Range need to be extracted rather than deleted, the following method may be used:</p><div class="eg"><pre style="margin-left: 2em;"> DocumentFragment extractContents();</pre></div><p>The <code>extractContents()</code> method removes nodes from the Range's <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: in
itial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>context tree</em></a> similarly to the <code>deleteContents()</code> method. In addition, it places the deleted contents in a new <code>DocumentFragment</code>. The following examples illustrate the contents of the returned DocumentFragment:</p><div class="eg"><pre style="margin-left: 2em;">(1) <FOO>A<b>B<MOO>CD</MOO></b>CD</FOO>-->B<MOO>CD</MOO></pre></div><div class="eg"><pre style="margin-left: 2em;">(2) <FOO>A<MOO>B<b>C</MOO>D</b>E</FOO>--><MOO>C<MOO>D</pre></div><div class="eg"><pre style="margin-left: 2em;">(3) <FOO>X<b>Y<BAR>Z</b>W</BAR>Q</FOO>-->Y<BAR>Z</BAR></pre></div><div class="eg"><pre style="margin-left: 2em;">(4)<FOO><BAR1>A<b>B</BAR1><BAR2/><BAR3>C</b>D</BAR3></FOO>--><BAR1>B</BAR1><BAR2/><BAR3>C</BAR3></pre></div><p>It is important to note that nodes that are <a href="http://www.w3.org/TR/D
OM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selected</em></a> by the Range are cloned. Since part of such a node's contents must remain in the Range's <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>context tree</em></a> and part of the contents must be moved to the new DocumentFragment, a clone of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0,
153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selected</em></a> node is included in the new DocumentFragment. Note that cloning does not take place for <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>selected</em></a> elements;these nodes are moved to the new DocumentFragment.</p></div><div class="div2"><a id="Level-2-Range-Cloning" name="Level-2-Range-Cloning"></a><h2 id="Level-2-Range-Cloning-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initi
al;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.8. Cloning Content</h2><p>The contents of a Range may be duplicated using the following method:</p><div class="eg"><pre style="margin-left: 2em;"> DocumentFragment cloneContents();</pre></div><p>This method returns a <code>DocumentFragment</code> that is similar to the one returned by the method <code>extractContents()</code>. However, in this case, the original nodes and character data in the Range are not removed from the Range's <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>context tree</em></a>. Instead, all of the nodes and text content within the returned <code>Do
cumentFragment</code> are cloned.</p></div><div class="div2"><a id="Level-2-Range-Inserting" name="Level-2-Range-Inserting"></a><h2 id="Level-2-Range-Inserting-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.9. Inserting Content</h2><p>A node may be inserted into a Range using the following method:</p><div class="eg"><pre style="margin-left: 2em;"> void insertNode(in Node n) raises(RangeException);</pre></div><p>The <code>insertNode()</code> method inserts the specified node into the Range's <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;backg
round-repeat: initial initial;"><em>context tree</em></a>. The node is inserted at the start <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> of the Range, without modifying it.</p><p>If the start boundary point of the Range is in a <code>Text</code> node, the <code>insertNode</code> operation splits the <code>Text</code> node at the boundary point. If the node to be inserted is also a <code>Text</code> node, the resulting adjacent<code>Text</code> nodes are not normalized automatically;this operation is left to the application.</p><p>The Node passed into this method can be a <code>DocumentFragment</code>. In that case, the contents of the <code>DocumentFra
gment</code> are inserted at the start <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-boundarypoint" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>boundary-point</em></a> of the Range, but the <code>DocumentFragment</code>itself is not. Note that if the Node represents the root of a sub-tree, the entire sub-tree is inserted.</p><p>The same rules that apply to the <code>insertBefore()</code> method on the Node interface apply here. Specifically, the Node passed in, if it already has a parent, will be removed from its existing position.</p></div><div class="div2"><a id="Level-2-Range-Surrounding" name="Level-2-Range-Surrounding"></a><h2 id="Level-2-Range-Surrounding-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image:
initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.10. Surrounding Content</h2><p>The insertion of a single node to subsume the content selected by a Range can be performed with:</p><div class="eg"><pre style="margin-left: 2em;"> void surroundContents(in Node newParent);</pre></div><p>The <code>surroundContents()</code> method causes all of the content selected by the Range to be rooted by the specified node. The nodes may not be Attr, Entity, DocumentType, Notation, Document, or DocumentFragment nodes. Calling <code>surroundContents()</code> with the Element node FOO in the following examples yields:</p><div class="eg"><pre style="margin-left: 2em;"> Before: <BAR>A<b>B<MOO>C</MOO>D</b>E</BAR>After surroundContents(FOO):<BAR>A<b><FOO>B<MOO>C</MOO>D</FOO></b>E</BAR></pre></div><p>Another way of describing the effect of this method on the Range's <a href="http://w
ww.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-context-tree" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>context tree</em></a> is to decompose it in terms of other operations:</p><ol><li>Remove the contents selected by the Range with a call to <code>extractContents()</code>.</li><li>Insert the node <code>newParent</code> where the Range is collapsed (after the extraction) with <code>insertNode().</code></li><li>Insert the entire contents of the extracted DocumentFragment into <code>newParent</code>. Specifically, invoke the <code>appendChild()</code> on <code>newParent</code> passing in the DocumentFragment returned as a result of the call to <code>extractContents()</code></li><li>Select <code>newParent</code> and all of its contents with <code>selectN
ode()</code>.</li></ol><p>The <code>surroundContents()</code> method raises an exception if the Range <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selects</em></a> a non-Text node. An example of a Range for which <code>surroundContents()</code>raises an exception is:</p><div class="eg"><pre style="margin-left: 2em;"> <FOO>A<b>B<BAR>C</b>D</BAR>E</FOO></pre></div><p>If the node <code>newParent</code> has any children, those children are removed before its insertion. Also, if the node <code>newParent</code> already has a parent, it is removed from the original parent's <code>childNodes</code> list.</p></div><div class="div2"><a id="Level-2-Range-Misc" name="Level-2-
Range-Misc"></a><h2 id="Level-2-Range-Misc-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.11. Miscellaneous Members</h2><p>One can clone a Range:</p><div class="eg"><pre style="margin-left: 2em;"> Range cloneRange();</pre></div><p>This creates a new Range which selects exactly the same content as that selected by the Range on which the method <code>cloneRange</code> was invoked. No content is affected by this operation.</p><p>Because the boundary-points of a Range do not necessarily have the same <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;bac
kground-repeat: initial initial;"><em>container</em></a>s, use:</p><div class="eg"><pre style="margin-left: 2em;"> readonly attribute Node commonAncestorContainer;</pre></div><p>to get the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of both boundary-points that is furthest down from the Range's <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-root-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>root container</em></a></p><
p>One can get a copy of all the character data selected or partially selected by a Range with:</p><div class="eg"><pre style="margin-left: 2em;"> DOMString toString();</pre></div><p>This does nothing more than simply concatenate all the character data selected by the Range. This includes character data in both <code>Text</code> and <code>CDATASection</code> nodes.</p></div><div class="div2"><a id="Level-2-Range-Mutation" name="Level-2-Range-Mutation"></a><h2 id="Level-2-Range-Mutation-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.12. Range modification under document mutation</h2><p>As a document is modified, the Ranges within the document need to be updated. For example, if one boundary-point of a Range is within a node and that node is removed from the document, then the Range woul
d be invalid unless it is fixed up in some way. This section describes how Ranges are modified under document mutations so that they remain valid.</p><p>There are two general principles which apply to Ranges under document mutation: The first is that all Ranges in a document will remain valid after any mutation operation and the second is that, as much as possible, all Ranges will select the same portion of the document after any mutation operation.</p><p>Any mutation of the document tree which affect Ranges can be considered to be a combination of basic deletion and insertion operations. In fact, it can be convenient to think of those operations as being accomplished using the <code>deleteContents()</code> and <code>insertNode()</code> Range methods and, in the case of Text mutations, the <code>splitText()</code> and <code>normalize()</code> methods.</p><div class="div3"><a id="Level-2-Range-Insertions" name="Level-2-Range-Insertions"></a><h3 id="Level-2-Range-Inser
tions-h3" class="div3" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 19px;font-weight: normal;">2.12.1. Insertions</h3><p>An insertion occurs at a single point, the insertion point, in the document. For any Range in the document tree, consider each boundary-point. The only case in which the boundary-point will be changed after the insertion is when the boundary-point and the insertion point have the same <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> and the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-o
ffset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of the insertion point is strictly less than the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a> of the Range's boundary-point. In that case the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position:
initial initial;background-repeat: initial initial;"><em>offset</em></a> of the Range's boundary-point will be increased so that it is between the same nodes or characters as it was before the insertion.</p><p>Note that when content is inserted at a boundary-point, it is ambiguous as to where the boundary-point should be repositioned if its relative position is to be maintained. There are two possibilities: at the start or at the end of the newly inserted content. We have chosen that in this case neither the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> nor <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-offset" style="color: rgb(102, 0, 153);back
ground-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>offset</em></a>Â of the boundary-point is changed. As a result, the boundary-point will be positioned at the start of the newly inserted content.</p><p><em>Examples:</em></p><p>Suppose the Range selects the following:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd efgh X<b>Y blah i</b>jkl</P></pre></div><p>Consider the insertion of the text "<i>inserted text</i>" at the following positions:</p><div class="eg"><pre style="margin-left: 2em;">1. Before the 'X':<P>Abcd efgh <i>inserted text</i>X<b>Y blah i</b>jkl</P>2. After the 'X':<P>Abcd efgh X<b><i>inserted text</i>Y blah i</b>jkl</P>3. After the 'Y':<P>Abcd efgh X<b>Y<i>inserted text</i> blah i</b>jkl</P>4. After the 'h' in "Y blah":<P>Abcd efgh X<b>Y blah<i>inserted text</i> i</b>jkl</P></pre></div></di
v><div class="div3"><a id="Level-2-Range-Deletions" name="Level-2-Range-Deletions"></a><h3 id="Level-2-Range-Deletions-h3" class="div3" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 19px;font-weight: normal;">2.12.2. Deletions</h3><p>Any deletion from the document tree can be considered as a sequence of <code>deleteContents()</code> operations applied to a minimal set of disjoint Ranges. To specify how a Range is modified under deletions we need only consider what happens to a Range under a single <code>deleteContents()</code>operation of another Range. And, in fact, we need only consider what happens to a single boundary-point of the Range since both boundary-points are modified using the same algorithm.</p><p>If a boundary-point of the original Range is within the content being deleted, then after the deletion it will be at the
same position as the resulting boundary-point of the (now <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-collapsed" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>collapsed</em></a>) Range used to delete the contents.</p><p>If a boundary-point is after the content being deleted then it is not affected by the deletion unless its <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> is also the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges
.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of one of the boundary-points of the Range being deleted. If there is such a common <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>, then the index of the boundary-point is modified so that the boundary-point maintains its position relative to the content of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image:
initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>.</p><p>If a boundary-point is before the content being deleted then it is not affected by the deletion at all.</p><p><em>Examples:</em></p><p>In these examples, the Range on which <code>deleteContents()</code>is invoked is indicated by the underline.</p><p><em>Example 1.</em></p><p>Before:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd <u>efgh T</u><b><u>he</u> Range i</b>jkl</P></pre></div><p>After:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd <b>Range i</b>jkl</P></pre></div><p><em>Example 2.</em></p><p>Before:</p><div class="eg"><pre style="margin-left: 2em;"><p>Abcd <u>efgh T<b>he Range i</b>j</u>kl</p></pre></div><p>After:</p><div class="eg"><pre style="margin-left: 2em;"><p>Abcd <b>^</b>kl</p></pre></div><p><em>Example 3.</em></p>
<p>Before:</p><div class="eg"><pre style="margin-left: 2em;"><P>ABCD <u>efgh T</u><b><u>he <EM>R</u>ange</b></EM>ijkl</P></pre></div><p>After:</p><div class="eg"><pre style="margin-left: 2em;"><P>ABCD <EM><b>ange</b></EM>ijkl</P></pre></div><p>In this example, the container of the start boundary-point after the deletion is the Text node holding the string "ange".</p><p><em>Example 4.</em></p><p>Before:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd <u>efgh T</u><b>he Range i</b>jkl</P></pre></div><p>After:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd <b>he Range i</b>jkl</P></pre></div><p><em>Example 5.</em></p><p>Before:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd <u><EM>efgh T<b>he Range i</b>j</EM></u>kl</P></pre></div><p>After:</p><div class="eg"><pre style="margin-left: 2em;"><P>Abcd <b>^</b>kl</P></pre></div></div></div><div class="div2"><a id="Level-2-Range-Interface" name="Level-2-Range-Interface"></a><h2 id="Level-2-Range-Interf
ace-h2" class="div2" style="text-align: left;color: rgb(0, 90, 156);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: white;font-size: 22px;font-weight: normal;">2.13. Formal Description of the Range Interface</h2><p>To summarize, the complete, formal description of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>Range</code></a> interface is given below:</p><dl ><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Interface <i><a id="Level-2-Range-idl" name="Level-2-Range-idl">Range</a></i></b> (introduced in <b class="since">DOM Level 2</b>)</dt><dd style="margin-top: 0px;margin-bottom:
0px;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><br><b>IDL Definition</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="idl-code" style="font-family: monospace;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-top-color: black;border-right-color: black;border-bottom-color: black;border-left-color: black;border-image: initial;white-space: pre;background-color: rgb(223, 223, 223);"><pre style="margin-left: 2em;">// Introduced in DOM Level 2:interface Range{readonly attribute Node startContainer;// raises(DOMException) on retrieval readonly attribute long startOffset;// raises(DOMException) on retrieval readonly attribute Node endContainer;// raises(DOMException) on retrieval readonly attribute long endOffset;// raises(DOMException)
on retrieval readonly attribute boolean collapsed;// raises(DOMException) on retrieval readonly attribute Node commonAncestorContainer;// raises(DOMException) on retrieval void setStart(in Node refNode, in long offset) raises(RangeException, DOMException);void setEnd(in Node refNode, in long offset) raises(RangeException, DOMException);void setStartBefore(in Node refNode) raises(RangeException, DOMException);void setStartAfter(in Node refNode) raises(RangeException, DOMException);void setEndBefore(in Node refNode) raises(RangeException, DOMException);void setEndAfter(in Node refNode) raises(RangeException, DOMException);void collapse(in boolean toStart) raises(DOMException);void selectNode(in Node refNode) raises(RangeException, DOMException);void selectNodeContents(in Node refNode) raises(RangeException, DOMException);// Comp
areHow const unsigned short START_TO_START=0;const unsigned short START_TO_END=1;const unsigned short END_TO_END=2;const unsigned short END_TO_START=3;short compareBoundaryPoints(in unsigned short how, in Range sourceRange) raises(DOMException);void deleteContents() raises(DOMException);DocumentFragment extractContents() raises(DOMException);DocumentFragment cloneContents() raises(DOMException);void insertNode(in Node newNode) raises(DOMException, RangeException);void surroundContents(in Node newParent) raises(DOMException, RangeException);Range cloneRange() raises(DOMException);DOMString toString() raises(DOMException);void detach() raises(DOMException);};</pre></div><br></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Definition group <i><a id="Level2-Range-compareHow" name="Level2-Range-compareHow">CompareHow</a></i></b></dt><dd sty
le="margin-top: 0px;margin-bottom: 0px;"><p>Passed as a parameter to the <code>compareBoundaryPoints</code> method.</p><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Defined Constants</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="constant-name" style="background-color: rgb(221, 255, 210);">END_TO_END</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Compare end boundary-point of <code>sourceRange</code> to end boundary-point of Range on which <code>compareBoundaryPoints</code> is invoked.</dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="constant-name" style="background-color: rgb(221, 255, 210);">END_TO_START</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Compare end boundary-point of <code>sourceRange</code> to start boundary-point of Range on which <code>compareBoundaryPoints</code> is invoke
d.</dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="constant-name" style="background-color: rgb(221, 255, 210);">START_TO_END</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Compare start boundary-point of <code>sourceRange</code> to end boundary-point of Range on which <code>compareBoundaryPoints</code> is invoked.</dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="constant-name" style="background-color: rgb(221, 255, 210);">START_TO_START</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Compare start boundary-point of <code>sourceRange</code> to start boundary-point of Range on which <code>compareBoundaryPoints</code> is invoked.</dd></dl></dd></dl></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Attributes</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="attribute-n
ame" style="background-color: rgb(255, 255, 210);"><a id="Level-2-Range-attr-collapsed" name="Level-2-Range-attr-collapsed">collapsed</a></code> of type <code>boolean</code>, readonly</dt><dd style="margin-top: 0px;margin-bottom: 0px;">TRUE if the Range is collapsed<br><div class="exceptions"><b>Exceptions on retrieval</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="attribute-name" style="background-color: rgb(255, 255, 210);"><a id="Level-2-Range-attr-commonParent" name="Level-2-Range-attr-commonParent">commonAncestorCo
ntainer</a></code> of type <code>Node</code>, readonly</dt><dd style="margin-top: 0px;margin-bottom: 0px;">The <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-deepest" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>deepest</em></a> common <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of the Range's two boundary-points.<br><div class="exceptions"><b>Exceptions on retrieval</b><div class="exceptiontable" style="margin-left: 1em;">
<table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="attribute-name" style="background-color: rgb(255, 255, 210);"><a id="Level-2-Range-attr-endParent" name="Level-2-Range-attr-endParent">endContainer</a></code> of type <code>Node</code>, readonly</dt><dd style="margin-top: 0px;margin-bottom: 0px;">Node within which the Range ends<br><div class="exceptions"><b>Exceptions on retrieval</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short descrip
tion" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="attribute-name" style="background-color: rgb(255, 255, 210);"><a id="Level-2-Range-attr-endOffset" name="Level-2-Range-attr-endOffset">endOffset</a></code> of type <code>long</code>, readonly</dt><dd style="margin-top: 0px;margin-bottom: 0px;">Offset within the ending node of the Range.<br><div class="exceptions"><b>Exceptions on retrieval</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</c
ode> has already been invoked on this object.</p></td></tr></tbody></table></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="attribute-name" style="background-color: rgb(255, 255, 210);"><a id="Level-2-Range-attr-startParent" name="Level-2-Range-attr-startParent">startContainer</a></code> of type <code>Node</code>, readonly</dt><dd style="margin-top: 0px;margin-bottom: 0px;">Node within which the Range begins<br><div class="exceptions"><b>Exceptions on retrieval</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0
px;font-weight: bold;"><code class="attribute-name" style="background-color: rgb(255, 255, 210);"><a id="Level-2-Range-attr-startOffset" name="Level-2-Range-attr-startOffset">startOffset</a></code> of type <code>long</code>, readonly</dt><dd style="margin-top: 0px;margin-bottom: 0px;">Offset within the starting node of the Range.<br><div class="exceptions"><b>Exceptions on retrieval</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div></dd></dl></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Methods</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><dl><dt style="margin-top: 0
px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-cloneContents" name="Level2-Range-method-cloneContents">cloneContents</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Duplicates the contents of a Range<div class="return"><b>Return Value</b><div class="returntable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tbody><tr><td valign="top"><p><code>DocumentFragment</code></p></td><td><p>A DocumentFragment that contains content equivalent to this Range.</p></td></tr></tbody></table></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border
="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be extracted into the new DocumentFragment.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Parameters</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-clone" name="Level2-Range-method-clone">cloneRange</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Produces a new Range whose boundary-points are equal to the boundary-points of the Range.<div class="return"><b>Return Value</b><div class="returntable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tbody><tr><
td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>Range</code></a></p></td><td><p>The duplicated Range.</p></td></tr></tbody></table></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Parameters</b></div></div></dd><dt style="margin-top: 0px;marg
in-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-collapse" name="Level2-Range-method-collapse">collapse</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Collapse a Range onto one of its boundary-points<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">toStart</code> of type <code>boolean</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">If TRUE, collapses the Range onto its start;if FALSE, collapses it onto its end.<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a sho
rt description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-compareBoundaryPoints" name="Level2-Range-method-compareBoundaryPoints">compareBoundaryPoints</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Compare the boundary-points of two Ranges in a document.<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">how</code> of type <code>unsigned short</code></dt><dd style="margin-top: 0
px;margin-bottom: 0px;">A code representing the type of comparison, as defined above.<br></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">sourceRange</code> of type <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>Range</code></a></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The <code>Range</code> on which this current <code>Range</code> is compared to.<br></dd></dl></div></div><div class="return"><b>Return Value</b><div class="returntable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short descri
ption" border="0"><tbody><tr><td valign="top"><p><code>short</code></p></td><td><p>-1, 0 or 1 depending on whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of<code>sourceRange</code>.</p></td></tr></tbody></table></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same Document or DocumentFragment.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="backgroun
d-color: rgb(217, 230, 248);"><a id="Level2-Range-method-deleteContents" name="Level2-Range-method-deleteContents">deleteContents</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content.<div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes that contain any of the content of the Range are read-only.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div>
<div><b>No Parameters</b></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-detach" name="Level2-Range-method-detach">detach</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range. Subsequent calls to any methods or attribute getters on this Range will result in a <code>DOMException</code> being thrown with an error code of <code>INVALID_STATE_ERR</code>.<div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMExc
eption</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Parameters</b></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-extractContents" name="Level2-Range-method-extractContents">extractContents</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Moves the contents of a Range from the containing document or document fragment to a new DocumentFragment.<div class="return"><b>Return Value</b><div class="returntable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tbody><tr><td valign="top"><p><code>DocumentFragment</code></p></td><td><p>A DocumentFragment
containing the extracted contents.</p></td></tr></tbody></table></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes which contain any of the content of the Range are read-only.</p><p>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be extracted into the new DocumentFragment.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Parameters</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rg
b(217, 230, 248);"><a id="Level2-Range-method-insertNode" name="Level2-Range-method-insertNode">insertNode</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Inserts a node into the Document or DocumentFragment at the start of the Range. If the container is a Text node, this will be split at the start of the Range (as if the Text node's splitText method was performed at the insertion point) and the insertion will occur between the two resulting Text nodes. Adjacent Text nodes will not be automatically merged. If the node to be inserted is a DocumentFragment node, the children will be inserted rather than the DocumentFragment node itself.<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">newNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;ma
rgin-bottom: 0px;">The node to insert at the start of the Range<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>NO_MODIFICATION_ALLOWED_ERR: Raised if an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of the start of the Range is read-only.</p><p>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal
-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of the start of the Range were not created from the same document.</p><p>HIERARCHY_REQUEST_ERR: Raised if the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of the start of the Range is of a type that does not allow children of the type of <code>newNode</code> or if <code>newNode</code>is an ancestor of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an Attr, Entity, Notation, or Document node.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt
style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-selectNode" name="Level2-Range-method-selectNode">selectNode</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Select a node and its contents<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The node to select.<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign
="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if an ancestor of <code>refNode</code> is an Entity, Notation or DocumentType node or if <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);
"><a id="Level2-Range-method-selectNodeContents" name="Level2-Range-method-selectNodeContents">selectNodeContents</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Select the contents within a node<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Node to select from<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="col
or: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor of <code>refNode</code> is an Entity, Notation or DocumentType node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-setEnd" name="Level2-Range-method-setEnd">setEnd</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Sets the att
ributes describing the end of a Range.<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The <code>refNode</code> value. This parameter must be different from <code>null</code>.<br></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">offset</code> of type <code>long</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The <code>endOffset</code> value.<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and
a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor of <code>refNode</code> is an Entity, Notation, or DocumentType node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater than the number of child units in <code>refNode</code>. Child units are <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-16-bit-unit" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;backgro
und-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>16-bit units</em></a> if <code>refNode</code> is a type of CharacterData node (e.g., a Text or Comment node) or a ProcessingInstruction node. Child units are Nodes in all other cases.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-setEndAfter" name="Level2-Range-method-setEndAfter">setEndAfter</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Sets the end of a Range to be after a node<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="marg
in-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Range ends after <code>refNode</code>.<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if the ro
ot container of <code>refNode</code> is not an Attr, Document or DocumentFragment node or if <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-setEndBefore" name="Level2-Range-method-setEndBefore">setEndBefore</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Sets the end position to be before a node.<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" st
yle="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Range ends before <code>refNode</code><br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if the root container of <code>refNode</code> is not an Attr, Document, or DocumentFragme
nt node or if <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-setStart" name="Level2-Range-method-setStart">setStart</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Sets the attributes describing the start of the Range.<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</
code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The <code>refNode</code> value. This parameter must be different from <code>null</code>.<br></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">offset</code> of type <code>long</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The <code>startOffset</code> value.<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: tr
ansparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor of <code>refNode</code> is an Entity, Notation, or DocumentType node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater than the number of child units in <code>refNode</code>. Child units are <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/glossary.html#dt-16-bit-unit" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>16-bit units</em></a> if <code>refNode</code> is a type of CharacterData node (e.g., a Text or Comment node) or a ProcessingInstruction node. Child units
are Nodes in all other cases.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-setStartAfter" name="Level2-Range-method-setStartAfter">setStartAfter</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Sets the start position to be after a node<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Range starts after <code>refNode</code><br></dd></dl></div></div><div class="exce
ptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if the root container of <code>refNode</code> is not an Attr, Document, or DocumentFragment node or if <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>deta
ch()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-setStartBefore" name="Level2-Range-setStartBefore">setStartBefore</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Sets the start position to be before a node<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">refNode</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">Range starts before <code>refNode</code><br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table
summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>INVALID_NODE_TYPE_ERR: Raised if the root container of <code>refNode</code> is not an Attr, Document, or DocumentFragment node or if <code>refNode</code> is a Document, DocumentFragment, Attr, Entity, or Notation node.</p></td></tr><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></d
iv></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-surroundContents" name="Level2-Range-method-surroundContents">surroundContents</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.<div class="parameters"><b>Parameters</b><div class="paramtable" style="margin-left: 1em;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="parameter-name" style="background-color: rgb(254, 230, 248);">newParent</code> of type <code>Node</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">The node to surround the contents with.<br></dd></dl></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"
><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>NO_MODIFICATION_ALLOWED_ERR: Raised if an <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-ancestor-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>ancestor container</em></a> of either boundary-point of the Range is read-only.</p><p>WRONG_DOCUMENT_ERR: Raised if <code>newParent</code> and the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: init
ial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of the start of the Range were not created from the same document.</p><p>HIERARCHY_REQUEST_ERR: Raised if the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> of the start of the Range is of a type that does not allow children of the type of <code>newParent</code> or if<code>newParent</code> is an ancestor of the <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background
-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a> or if <code>node</code> would end up with a child node of a type not allowed by the type of <code>node</code>.</p><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a></p></td><td><p>BAD_BOUNDARYPOINTS_ERR: Raised if the Range <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-partially-selected" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin
: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>partially selects</em></a> a non-text node.</p><p>INVALID_NODE_TYPE_ERR: Raised if <code>node</code> is an Attr, Entity, DocumentType, Notation, Document, or DocumentFragment node.</p></td></tr></tbody></table></div></div><div><b>No Return Value</b></div></div></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217, 230, 248);"><a id="Level2-Range-method-toString" name="Level2-Range-method-toString">toString</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">Returns the contents of a Range as a string. This string contains only the data characters, not any markup.<div class="return"><b>Return Value</b><div class="returntable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the return
value, the second contains a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMString</code></p></td><td><p>The contents of the Range.</p></td></tr></tbody></table></div></div><div class="exceptions"><b>Exceptions</b><div class="exceptiontable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the exception, the second contains the specific error code and a short description" border="0"><tbody><tr><td valign="top"><p><code>DOMException</code></p></td><td><p>INVALID_STATE_ERR: Raised if <code>detach()</code> has already been invoked on this object.</p></td></tr></tbody></table></div></div><div><b>No Parameters</b></div></div></dd></dl></dd></dl></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Interface <i><a id="Level-2-DocumentRange-idl" name="Level-2-DocumentRange-idl">DocumentRange</a></i></b> (introduced in <b class="since">DOM Level 2</b>)</dt><dd style="margin-top: 0px;margin-bot
tom: 0px;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><br><b>IDL Definition</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="idl-code" style="font-family: monospace;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-top-color: black;border-right-color: black;border-bottom-color: black;border-left-color: black;border-image: initial;white-space: pre;background-color: rgb(223, 223, 223);"><pre style="margin-left: 2em;">// Introduced in DOM Level 2:interface DocumentRange{Range createRange();};</pre></div><br></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Methods</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="method-name" style="background-color: rgb(217,
230, 248);"><a id="Level2-DocumentRange-method-createRange" name="Level2-DocumentRange-method-createRange">createRange</a></code></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="method">This interface can be obtained from the object implementing the <code>Document</code> interface using binding-specific casting methods.<div class="return"><b>Return Value</b><div class="returntable" style="margin-left: 1em;"><table summary="Layout table: the first cell contains the type of the return value, the second contains a short description" border="0"><tbody><tr><td valign="top"><p><a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-idl" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>Range</code></a></p></td><td><p>The initial state of
the Range returned from this method is such that both of its boundary-points are positioned at the beginning of the corresponding Document, before any content. The Range returned can only be used to select content associated with this Document, or with DocumentFragments and Attrs for which this Document is the <code>ownerDocument</code>.</p></td></tr></tbody></table></div></div><div><b>No Parameters</b></div><div><b>No Exceptions</b></div></div></dd></dl></dd></dl></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Exception <i><a id="RangeException" name="RangeException">RangeException</a></i></b> introduced in <b class="version">DOM Level 2</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><p>Range operations may throw a <a href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#RangeException" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initi
al;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><code>RangeException</code></a>Â as specified in their method descriptions.</p><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><br><b>IDL Definition</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><div class="idl-code" style="font-family: monospace;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-top-color: black;border-right-color: black;border-bottom-color: black;border-left-color: black;border-image: initial;white-space: pre;background-color: rgb(223, 223, 223);"><pre style="margin-left: 2em;">// Introduced in DOM Level 2:exception RangeException{unsigned short code;};// RangeExceptionCodeconst unsigned short BAD_BOUNDARYPOINTS_ERR=1;const unsigned short INVALID_NODE_TYPE_ER
R=2;</pre></div><br></dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Definition group <i><a id="RangeExceptionCode" name="RangeExceptionCode">RangeExceptionCode</a></i></b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><p>An integer indicating the type of error generated.</p><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><b>Defined Constants</b></dt><dd style="margin-top: 0px;margin-bottom: 0px;"><dl><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="constant-name" style="background-color: rgb(221, 255, 210);">BAD_BOUNDARYPOINTS_ERR</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">If the boundary-points of a Range do not meet specific requirements.</dd><dt style="margin-top: 0px;margin-bottom: 0px;font-weight: bold;"><code class="constant-name" style="background-color: rgb(221, 255, 210);">INVALID_NODE_TYPE_ERR</code></dt><dd style="margin-top: 0px;margin-bottom: 0px;">If the <a hre
f="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#td-container" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;"><em>container</em></a>Â of an boundary-point of a Range is being set to either a node of an invalid type or a node with an ancestor of an invalid type.</dd></dl></dd></dl></dd></dl></dd></dl></div></div><div class="navbar" align="center" style="color: rgb(0, 0, 0);font-family: sans-serif;font-size: medium;"><hr title="Navigation area separator"><a accesskey="p" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initia
l initial;">previous</a>Â Â Â <a accesskey="n" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/idl-definitions.html" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">next</a>Â Â Â <a accesskey="c" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/Overview.html#contents" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: transparent;background-position: initial initial;background-repeat: initial initial;">contents</a>Â Â Â <a accesskey="i" href="http://www.w3.org/TR/DOM-Level-2-Traversal-Range/def-index.html" style="color: rgb(102, 0, 153);background-image: initial;background-attachment: initial;background-origin: initial;background-clip: initial;background-color: tra
nsparent;background-position: initial initial;background-repeat: initial initial;">index</a></div></p><dl></dl>
+ </textarea>
+
+ <h2>Deeply nested divs</h2>
+ <textarea name="editor4">
+ <p>Â </p><h1 id="mainHeader" style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; font-weight: normal; font-size: 26px; color: rgb(7, 130, 193); font-family: Arial, Helvetica, sans-serif; background-color: rgb(226, 226, 226); ">Jobs</h1><div id="node-438" class="node node-type-page" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 18px; color: rgb(85, 85, 85); font-family: Arial, Helvetica, sans-seri
f; background-color: rgb(226, 226, 226); "><div class="node-inner" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><div class="meta" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Â </div><div class="content" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0p
x; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><div class="contentBox" style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 15px; padding-right: 15px; padding-bottom: 1px; padding-left: 15px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; background-color: rgb(239, 239, 239); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(226, 226, 226); border-right-color: rgb(226, 226, 226); border-bottom-color: rgb(226, 226, 226); border-left-color: rgb(226, 226, 226); position: relative; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px;
padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">CKSource is a successful company with thousands of customers all around the world, including top names like IBM and Oracle. Our company is growing fast, with impressive sales results. This strong growth expands our range of opportunities, followed by the growth of our team. Take this chance and <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">join us!</strong></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0
px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Working in a <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">successful Open Source project </strong>is certainly a lot of fun. CKEditor is one of the most frequently used text editors out there, and this success means new responsibilities. We are providing a key component for the software that is powering the Web today. It is downloaded daily by thousands of people all around the world and used b
y hundreds of thousands out there.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">We are constantly looking for top-notch, creative, and enthusiastic professionals ready to join our international team.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">We offer a work culture where ideas are free to fly and diversity is our everyday life.</p><p style="margin-top: 0px; margin
-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">There is no need to relocate. No matter where you are, as long as you love what you do, you are the right person for us!</p><div class="post joboffer" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; border-top-width: 1px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; border-top-style: solid; border-top-color: rgb(229, 230, 231); " id=""><h2 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px
; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; font-size: 15px; color: rgb(0, 0, 0); ">AJD - Advanced JavaScript Developer</h2><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Location: <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; borde
r-color: initial; border-image: initial; line-height: 1.5em; ">Europe and Its Neighbourhood</strong> (from GMT 0 to GMT +2).</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Employment type: <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Full time</strong>.</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px;
padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">We are looking for talented people to join our team. Ideal candidates will have:</p><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-right: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height
: 1.5em; ">Several years of experience with professional JavaScript programming, which we consider is;<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-right: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Writing pure, object-oriented JavaScript applications.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px
; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Ability to create complex JavaScript applications based on your own skills only (excluding usage of external libraries such as jQuery, Prototype, Dojo, or MooTools).</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Being aware and able to solving asynchronous issues.</li></ul></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0
px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">In-depth knowledge of core Web standards, like HTML, XML, DOM, and CSS â including their intrinsic implementation differences among browsers (with IE6 also);</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Ability to understand and fix complicated DOM manipulation problems.</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-widt
h: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Good (enough) English speaking and writing skills. This is the language used in the company.</li></ul><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">"Wow" candidates will also have (not required though):</p><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-right: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0p
x; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Experience with CKEditor or FCKeditor, having possibly collaborated with the project;</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Experience with rich text editors;</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border
-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Experience with HTML5, CSS3 development;</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Experience with Test Cases (like YUI Test);</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">A Bachelor's or Master's degree in Computer Science;</l
i><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Passion for Open Source.</li></ul></div><div class="post" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 0px; padding-bottom: 30px; padding-left: 0px; border-top-width: 1px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; border-top-style: solid; border-top-color: rgb(229, 230, 231); " id=""><h3 style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left
: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; font-size: 14px; ">In return we offer:</h3><ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-right: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Permanent full time employment contract;</li><li style="margin-top: 0px; margin-right
: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Flexible working hours;</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Competitive salary;</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-st
yle: initial; border-color: initial; border-image: initial; line-height: 1.5em; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Work </strong>from <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">home</strong> (you will forget what a traffic jam is);</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px
; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Working with smart and motivated <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">professionals</strong>;</li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-i
mage: initial; line-height: 1.5em; ">Becoming a <strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">part of great team</strong> who delivers worldwide known software.</li></ul><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Let us start talking. Tell us about the projects you have worked on and your role in them; point to your experience and anything you think might ma
ke you a perfect candidate. Contact us with your CV at: <a href="" title="jobs at (spam protection) cksource dot com" id="jobmail1" style="color: rgb(24, 157, 225); ">jobs at cksource.com</a> now!</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">We are sure you will enjoy it!</p></div><div class="post" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 10px; padding-right: 0px; padding-bottom: 30px; padding-left: 0px; border-top-width: 1px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; border-top-style: solid;
border-top-color: rgb(229, 230, 231); "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">Please note we only accept CV's in English. Your application must include the following note:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; line-height: 1.5em; ">"I hereby authorize you to process my personal data included in my job application for the needs of the recruitment process (in accordance to the P
ersonal Data Protection Act 29.08.1997 no 133 position 883).â</p></div></div></div></div></div><dl></dl>
+ </textarea>
+
+ <h2>Line custom look</h2>
+ <div id="hood">
+ <h1>
+ <img alt="" src="http://a.cksource.com/c/1/inc/img/demo-little-red.jpg" style="margin-left: 10px; margin-right: 10px; float: left; width: 120px; height: 168px;" />Little Red Riding Hood</h1>
+ <p>
+ "<b>Little Red Riding Hood</b>" is a famous <a href="http://en.wikipedia.org/wiki/Fairy_tale" title="Fairy tale">fairy tale</a> about a young girl's encounter with a wolf. The story has been changed considerably in its history and subject to numerous modern adaptations and readings.</p>
+ <table align="right" border="1" cellpadding="1" cellspacing="1" style="width: 200px;">
+ <caption>
+ <strong>International Names</strong></caption>
+ <tbody>
+ <tr>
+ <td>
+ Chinese</td>
+ <td>
+ <i>å°ç´
帽</i></td>
+ </tr>
+ <tr>
+ <td>
+ Italian</td>
+ <td>
+ <i>Cappuccetto Rosso</i></td>
+ </tr>
+ <tr>
+ <td>
+ Spanish</td>
+ <td>
+ <i>Caperucita Roja</i></td>
+ </tr>
+ </tbody>
+ </table>
+ <hr>
+ <hr>
+ <p>
+ The version most widely known today is based on the <a href="http://en.wikipedia.org/wiki/Brothers_Grimm" title="Brothers Grimm">Brothers Grimm</a> variant. It is about a girl called Little Red Riding Hood, after the red <a href="http://en.wikipedia.org/wiki/Hood_%28headgear%29" title="Hood (headgear)">hooded</a> <a href="http://en.wikipedia.org/wiki/Cape" title="Cape">cape</a> or <a href="http://en.wikipedia.org/wiki/Cloak" title="Cloak">cloak</a> she wears. The girl walks through the woods to deliver food to her sick grandmother.</p>
+ <p>
+ A wolf wants to eat the girl but is afraid to do so in public. He approaches the girl, and she naïvely tells him where she is going. He suggests the girl pick some flowers, which she does. In the meantime, he goes to the grandmother's house and gains entry by pretending to be the girl. He swallows the grandmother whole, and waits for the girl, disguised as the grandmother.</p>
+ <p>
+ When the girl arrives, she notices he looks very strange to be her grandma. In most retellings, this eventually culminates with Little Red Riding Hood saying, "My, what big teeth you have!"<br />
+ To which the wolf replies, "The better to eat you with," and swallows her whole, too.</p>
+ <p>
+ A <a href="http://en.wikipedia.org/wiki/Hunter" title="Hunter">hunter</a>, however, comes to the rescue and cuts the wolf open. Little Red Riding Hood and her grandmother emerge unharmed. They fill the wolf's body with heavy stones, which drown him when he falls into a well. Other versions of the story have had the grandmother shut in the closet instead of eaten, and some have Little Red Riding Hood saved by the hunter as the wolf advances on her rather than after she is eaten.</p>
+ <p>
+ The tale makes the clearest contrast between the safe world of the village and the dangers of the <a href="http://en.wikipedia.org/wiki/Enchanted_forest" title="Enchanted forest">forest</a>, conventional antitheses that are essentially medieval, though no written versions are as old as that.</p>
+ </div>
+
+ <h2>Extreme inline editing</h2>
+ <div id="interpret" contenteditable="true" style="left: 123px; outline: 1px solid red; border: 15px solid green; position: relative; top: 30; left: 30px;">
+ <div style="padding: 20px; background: gray; width: 300px" class="1">Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim.</div>
+ <div style="background: violet; padding: 30px;" class="static">
+ Position static
+ <div style="background: green; padding: 30px; border: 14px solid orange">foo</div>
+ </div>
+ <dl class="2">
+ <dt>Key</dt><dd>Value</dd>
+ </dl>
+ <div>Whatever</div>
+ <hr id="hr">
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>
+ <hr>
+ <hr>
+ <p>Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies</p>
+ <div style="background: green; padding: 30px; width: 200px">foo</div>
+ </div>
+
+ <h2>Enter mode: BR</h2>
+ <textarea cols="80" id="editor5" name="editor5" rows="10">
+ Foo<br />
+ <hr style="margin: 50px" />
+ <hr style="margin: 50px" />
+ Foo
+ </textarea>
+
+ <div id="dev">
+ <p id="mouseData">
+ <span>Mouse over: <strong id="over"></strong></span>
+ <span style="display: block">Mouse Y-pos.: <span id="my"></span></span>
+ </p>
+ <p id="triggerData">
+ <span id="tr_type"></span>
+ <span id="tr_upper"></span>
+ <span id="tr_lower"></span>
+ <span id="tr_edge"></span>
+ </dl>
+ <p id="timeData">Time: <span id="time"></span></p>
+ <p id="hiddenData">Hidden state: <span id="hid"></span></p>
+ </div>
+ <script>
+
+ 'use strict';
+
+ function fixedWidthNumber( text, chars ) {
+ return ( Array( chars ).join( 0 ) + text ).slice( -chars );
+ }
+
+ var DEBUG = {
+ startTimer: function() {
+ DEBUG.timer = new Date().getTime();
+ },
+
+ stopTimer: (function() {
+ var label = CKEDITOR.document.getById( 'time' ),
+ max = 0,
+ count = 0,
+ values = [],
+ mean = 0,
+ time = 0;
+
+ return function() {
+ time = new Date().getTime() - DEBUG.timer;
+ max = Math.max( time, max );
+
+ values.unshift( time );
+ ( 20 in values ) && values.pop();
+ mean = 0;
+
+ for( var i = 0 ; i < values.length ; i++ )
+ mean += values[ i ];
+
+ mean = mean / i;
+
+ label.setText( fixedWidthNumber( time, 3 ) +
+ ' ms, mean: ' + fixedWidthNumber( 0 | mean, 3 ) +
+ ' ms, max: ' + fixedWidthNumber( max, 3 ) +
+ ' ms' )
+ count++;
+ }
+ })(),
+
+ mousePos: (function( y, element )
+ {
+ var my = CKEDITOR.document.getById( 'my' ),
+ over = CKEDITOR.document.getById( 'over' ),
+ name;
+
+ return function( y, element ) {
+ my.setText( y );
+
+ if( element && element.$ && element.type == CKEDITOR.NODE_ELEMENT ) {
+ try {
+ name = element.getName();
+ over.setText( name + '.' + element.getAttribute( 'class' ) );
+ } catch( e ) {}
+ }
+ else
+ over.setText( '-' );
+ }
+ })(),
+
+ showTrigger: (function( trigger )
+ {
+ var tr_type = CKEDITOR.document.getById( 'tr_type' ),
+ tr_upper = CKEDITOR.document.getById( 'tr_upper' ),
+ tr_lower = CKEDITOR.document.getById( 'tr_lower' ),
+ tr_edge = CKEDITOR.document.getById( 'tr_edge' ),
+ tup, tbo, upper, lower;
+
+ return function( trigger ) {
+ tup && tup.removeAttribute('id') && ( tup = null );
+ tbo && tbo.removeAttribute('id') && ( tbo = null );
+
+ if ( !trigger )
+ return tr_type.setText( '-' ) &&
+ tr_upper.setText( '-' ) &&
+ tr_lower.setText( '-' ) &&
+ tr_edge.setText( '-' );
+
+ upper = trigger.upper,
+ lower = trigger.lower;
+
+ tr_type.setText( trigger.type == 2 ? 'EXPAND': 'EDGE' );
+ tr_upper.setText( upper ? upper.getName() + '.' + upper.getAttribute( 'class' ): 'NULL' );
+ tr_lower.setText( lower ? lower.getName() + '.' + lower.getAttribute( 'class' ): 'NULL' );
+ tr_edge.setText( trigger.edge ? [ 'EDGE_TOP', 'EDGE_BOTTOM', 'EDGE_MIDDLE' ][ trigger.edge - 1 ]: 'NULL' );
+
+ upper && ( tup = upper ) && tup.setAttribute( 'id', 'tup' );
+ lower && ( tbo = lower ) && tbo.setAttribute( 'id', 'tbo' );
+ }
+ })(),
+
+ showHidden: (function( state )
+ {
+ var cnt = CKEDITOR.document.getById( 'hid' );
+
+ return function( state ) {
+ cnt[ state ? 'addClass': 'removeClass' ]( 'hl' );
+ cnt.setText( state ? 'enabled': 'disabled' );
+ }
+ })(),
+
+ markElement: function( element ) {
+ if( !isHtml( element ))
+ return;
+
+ DEBUG.marked && DEBUG.marked.setStyles( {
+ 'outline': 'none'
+ } );
+
+ DEBUG.marked = element;
+
+ element.setStyles( {
+ 'outline': 'red solid 2px'
+ } );
+ },
+
+ // Log functions.
+ log: function() {},
+ logElements: function() {},
+ groupStart: function() {},
+ groupEnd: function() {},
+ logEnd: function() {},
+ logElementsEnd: function() {}
+ };
+
+ var logEnable = {
+ log: function() {
+ var args = [];
+ for( var i = 0; i < arguments.length ; i++ )
+ args.push( arguments[ i ] );
+
+ console.log.apply( console, args );
+ },
+
+ logElements: function( elements, labels, info ) {
+ var log = {},
+ label;
+
+ for ( var i = 0 ; i < elements.length; i++ ) {
+ label = labels ? labels [ i ] : i;
+
+ if( !elements[ i ] ) {
+ log[ label ] = {
+ 'name': 'null',
+ 'class': 'null'
+ }
+ }
+ else {
+ log[ labels ? labels [ i ]: i ] = {
+ 'name': elements[ i ].is ? elements[ i ].getName(): 'null',
+ 'class': elements[ i ].is ? elements[ i ].getAttribute( 'class' ): 'null'
+ }
+ }
+ }
+
+ typeof JSON != 'undefined' && DEBUG.log( ( info ? info.toUpperCase() + ' ': '' ) + JSON.stringify( log ) );
+ },
+
+ groupStart: function( label ) {
+ console.group( label );
+ },
+
+ groupEnd: function() {
+ console.groupEnd();
+ },
+
+ logEnd: function() {
+ DEBUG.log.apply( null, arguments );
+ DEBUG.groupEnd();
+ },
+
+ logElementsEnd: function() {
+ DEBUG.logElements.apply( null, arguments );
+ DEBUG.groupEnd();
+ }
+ }
+
+ // Enable console.log debugging with ?debug address parameter.
+ window.location.href.match( /debug$/g ) ? CKEDITOR.tools.extend( DEBUG, logEnable, true ): null;
+
+ // CKEDITOR.addCss('\
+ // #tup { outline: #FEB2B2 solid 2px; box-shadow: 3px 3px 0 #FEB2B2; } \
+ // #tbo { outline: #B2FEB2 solid 2px; box-shadow: 3px 3px 0 #B2FEB2; } \
+ // p { background: pink }\
+ // ');
+
+ CKEDITOR.replace( 'editor1' );
+
+ CKEDITOR.replace( 'editor2', { height: 150 } );
+
+ CKEDITOR.replace( 'editor3', {
+ magicline_everywhere: 1,
+ magicline_holdDistance: .2,
+ language: 'pl'
+ });
+
+ CKEDITOR.replace( 'editor4' );
+
+ CKEDITOR.replace( 'hood', {
+ magicline_color: 'green'
+ });
+
+ CKEDITOR.replace( 'editor5', {
+ enterMode : CKEDITOR.ENTER_BR
+ });
+
+ </script>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/magicline/images/icon.png b/devel/third-party/ckeditor/plugins/magicline/images/icon.png
new file mode 100644
index 0000000..b5de5ba
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/magicline/images/icon.png differ
diff --git a/devel/third-party/ckeditor/plugins/magicline/lang/en.js b/devel/third-party/ckeditor/plugins/magicline/lang/en.js
new file mode 100644
index 0000000..67b2b44
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/magicline/lang/en.js
@@ -0,0 +1,8 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'magicline', 'en', {
+ title: 'Insert paragraph here'
+});
diff --git a/devel/third-party/ckeditor/plugins/magicline/lang/pl.js b/devel/third-party/ckeditor/plugins/magicline/lang/pl.js
new file mode 100644
index 0000000..281d583
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/magicline/lang/pl.js
@@ -0,0 +1,8 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'magicline', 'pl', {
+ title: 'Wstaw nowy paragraf'
+});
diff --git a/devel/third-party/ckeditor/plugins/magicline/plugin.js b/devel/third-party/ckeditor/plugins/magicline/plugin.js
new file mode 100644
index 0000000..47f4f0a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/magicline/plugin.js
@@ -0,0 +1,1732 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview Allows accessing difficult focus spaces.
+ */
+
+'use strict';
+
+(function() {
+ CKEDITOR.plugins.add( 'magicline', {
+ lang: 'en,pl', // %REMOVE_LINE_CORE%
+ init: initPlugin
+ });
+
+ // Activates the box inside of an editor.
+ function initPlugin( editor ) {
+
+ var enterBehaviors = {};
+ enterBehaviors[ CKEDITOR.ENTER_BR ] = 'br';
+ enterBehaviors[ CKEDITOR.ENTER_P ] = 'p';
+ enterBehaviors[ CKEDITOR.ENTER_DIV ] = 'div';
+
+ // Configurables
+ var config = editor.config,
+ triggerOffset = config.magicline_triggerOffset || 30,
+ enterMode = config.enterMode,
+ that = {
+ // Global stuff is being initialized here.
+ editor: editor,
+ enterBehavior: enterBehaviors[ enterMode ], // A tag which is to be inserted by the magicline.
+ enterMode: enterMode,
+ triggerOffset: triggerOffset,
+ holdDistance: 0 | triggerOffset * ( config.magicline_holdDistance || 0.5 ),
+ boxColor: config.magicline_color || '#ff0000',
+ rtl: config.contentsLangDirection == 'rtl',
+ triggers: config.magicline_everywhere ? DTD_BLOCK : { table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1 }
+ },
+ scrollTimeout, checkMouseTimeoutPending, checkMouseTimeout, checkMouseTimer;
+
+ // %REMOVE_START%
+ // Internal DEBUG uses tools located in the topmost window.
+
+ // (#9701) Due to security limitations some browsers may throw
+ // errors when accessing window.top object. Do it safely first then.
+ try {
+ that.debug = window.top.DEBUG;
+ }
+ catch ( e ) {}
+
+ that.debug = that.debug || {
+ groupEnd: function() {},
+ groupStart: function() {},
+ log: function() {},
+ logElements: function() {},
+ logElementsEnd: function() {},
+ logEnd: function() {},
+ mousePos: function() {},
+ showHidden: function() {},
+ showTrigger: function() {},
+ startTimer: function() {},
+ stopTimer: function() {}
+ };
+ // %REMOVE_END%
+
+ // Simple irrelevant elements filter.
+ that.isRelevant = function( node ) {
+ return isHtml( node ) // -> Node must be an existing HTML element.
+ && !isLine( that, node ) // -> Node can be neither the box nor its child.
+ && !isFlowBreaker( node ); // -> Node can be neither floated nor positioned nor aligned.
+ };
+
+ editor.on( 'contentDom', addListeners, this );
+
+ function addListeners() {
+ var editable = editor.editable(),
+ doc = editor.document,
+ win = editor.window,
+ listener;
+
+ // Global stuff is being initialized here.
+ extend( that, {
+ editable: editable,
+ inInlineMode: editable.isInline(),
+ doc: doc,
+ win: win
+ }, true );
+
+ // This is the boundary of the editor. For inline the boundary is editable itself.
+ // For framed editor, the HTML element is a real boundary.
+ that.boundary = that.inInlineMode ? that.editable : that.doc.getDocumentElement();
+
+ // Enabling the box inside of inline editable is pointless.
+ // There's no need to access spaces inside paragraphs, links, spans, etc.
+ if ( editable.is( dtd.$inline ) )
+ return;
+
+ // Handle in-line editing by setting appropriate position.
+ // If current position is static, make it relative and clear top/left coordinates.
+ if ( that.inInlineMode && !isPositioned( editable ) ) {
+ editable.setStyles({
+ position: 'relative',
+ top: null,
+ left: null
+ });
+ }
+ // Enable the box. Let it produce children elements, initialize
+ // event handlers and own methods.
+ initLine.call( this, that );
+
+ // Get view dimensions and scroll positions.
+ // At this stage (before any checkMouse call) it is used mostly
+ // by tests. Nevertheless it a crucial thing.
+ updateWindowSize( that );
+
+ // Remove the box before an undo image is created.
+ // This is important. If we didn't do that, the *undo thing* would revert the box into an editor.
+ // Thanks to that, undo doesn't even know about the existence of the box.
+ editable.attachListener( editor, 'beforeUndoImage', function() {
+ that.line.detach();
+ });
+
+ // Removes the box HTML from editor data string if getData is called.
+ // Thanks to that, an editor never yields data polluted by the box.
+ // Listen with very high priority, so line will be removed before other
+ // listeners will see it.
+ editable.attachListener( editor, 'beforeGetData', function() {
+ // If the box is in editable, remove it.
+ if ( that.line.wrap.getParent() ) {
+ that.line.detach();
+
+ // Restore line in the last listener for 'getData'.
+ editor.once( 'getData', function() {
+ that.line.attach();
+ }, null, null, 1000 );
+ }
+ }, null, null, 0 );
+
+ // Hide the box on mouseout if mouse leaves document.
+ editable.attachListener( that.inInlineMode ? doc : doc.getWindow().getFrame(), 'mouseout', function( event ) {
+ if ( editor.mode != 'wysiwyg' )
+ return;
+
+ // Check for inline-mode editor. If so, check mouse position
+ // and remove the box if mouse outside of an editor.
+ if ( that.inInlineMode ) {
+ var mouse = {
+ x: event.data.$.clientX,
+ y: event.data.$.clientY
+ };
+
+ updateWindowSize( that );
+ updateEditableSize( that, true );
+
+ var size = that.view.editable,
+ scroll = that.view.scroll;
+
+ // If outside of an editor...
+ if ( !inBetween( mouse.x, size.left - scroll.x, size.right - scroll.x ) || !inBetween( mouse.y, size.top - scroll.y, size.bottom - scroll.y ) ) {
+ clearTimeout( checkMouseTimer );
+ checkMouseTimer = null;
+ that.line.detach();
+ }
+ }
+
+ else {
+ clearTimeout( checkMouseTimer );
+ checkMouseTimer = null;
+ that.line.detach();
+ }
+ });
+
+ // This one deactivates hidden mode of an editor which
+ // prevents the box from being shown.
+ editable.attachListener( editable, 'keyup', function( event ) {
+ that.hiddenMode = 0;
+ that.debug.showHidden( that.hiddenMode ); // %REMOVE_LINE%
+ });
+
+ editable.attachListener( editable, 'keydown', function( event ) {
+ if ( editor.mode != 'wysiwyg' )
+ return;
+
+ var keyStroke = event.data.getKeystroke(),
+ selection = editor.getSelection(),
+ selected = selection.getStartElement();
+
+ switch ( keyStroke ) {
+ // Shift pressed
+ case 2228240: // IE
+ case 16:
+ that.hiddenMode = 1;
+ that.line.detach();
+ }
+
+ that.debug.showHidden( that.hiddenMode ); // %REMOVE_LINE%
+ });
+
+ // This method ensures that checkMouse aren't executed
+ // in parallel and no more frequently than specified in timeout function.
+ // In framed editor, document is used as a trigger, to provide magicline
+ // functionality when mouse is below the body (short content, short body).
+ editable.attachListener( that.inInlineMode ? editable : doc, 'mousemove', function( event ) {
+ checkMouseTimeoutPending = true;
+
+ if ( editor.mode != 'wysiwyg' || checkMouseTimer )
+ return;
+
+ // IE<9 requires this event-driven object to be created
+ // outside of the setTimeout statement.
+ // Otherwise it loses the event object with its properties.
+ var mouse = {
+ x: event.data.$.clientX,
+ y: event.data.$.clientY
+ };
+
+ checkMouseTimer = setTimeout( function() {
+ checkMouse( mouse );
+ }, 30 ); // balances performance and accessibility
+ });
+
+ // This one removes box on scroll event.
+ // It is to avoid box displacement.
+ editable.attachListener( win, 'scroll', function( event ) {
+ if ( editor.mode != 'wysiwyg' )
+ return;
+
+ that.line.detach();
+
+ // To figure this out just look at the mouseup
+ // event handler below.
+ if ( env.webkit ) {
+ that.hiddenMode = 1;
+
+ clearTimeout( scrollTimeout );
+ scrollTimeout = setTimeout( function() {
+ that.hiddenMode = 0;
+ that.debug.showHidden( that.hiddenMode ); // %REMOVE_LINE%
+ }, 50 );
+
+ that.debug.showHidden( that.hiddenMode ); // %REMOVE_LINE%
+ }
+ });
+
+ // Those event handlers remove the box on mousedown
+ // and don't reveal it until the mouse is released.
+ // It is to prevent box insertion e.g. while scrolling
+ // (w/ scrollbar), selecting and so on.
+ editable.attachListener( win, 'mousedown', function( event ) {
+ if ( editor.mode != 'wysiwyg' )
+ return;
+
+ that.line.detach();
+ that.hiddenMode = 1;
+
+ that.debug.showHidden( that.hiddenMode ); // %REMOVE_LINE%
+ });
+
+ // Google Chrome doesn't trigger this on the scrollbar (since 2009...)
+ // so it is totally useless to check for scroll finish
+ // see: http://code.google.com/p/chromium/issues/detail?id=14204
+ editable.attachListener( win, 'mouseup', function( event ) {
+ that.hiddenMode = 0;
+ that.debug.showHidden( that.hiddenMode ); // %REMOVE_LINE%
+ });
+
+ // Editor commands for accessing difficult focus spaces.
+ editor.addCommand( 'accessPreviousSpace', accessFocusSpaceCmd( that ) );
+ editor.addCommand( 'accessNextSpace', accessFocusSpaceCmd( that, true ) );
+
+ editor.setKeystroke( [
+ [ config.magicline_keystrokePrevious, 'accessPreviousSpace' ],
+ [ config.magicline_keystrokeNext, 'accessNextSpace' ]
+ ] );
+
+ // Revert magicline hot node on undo/redo.
+ editor.on( 'loadSnapshot', function( event ) {
+ var elements = doc.getElementsByTag( that.enterBehavior ),
+ element;
+
+ for ( var i = elements.count(); i--; ) {
+ if ( ( element = elements.getItem( i ) ).hasAttribute( 'data-cke-magicline-hot' ) ) {
+ // Restore hotNode
+ that.hotNode = element;
+ // Restore last access direction
+ that.lastCmdDirection = element.getAttribute( 'data-cke-magicline-dir' ) === 'true' ? true : false;
+ break;
+ }
+ }
+ } );
+
+ // This method handles mousemove mouse for box toggling.
+ // It uses mouse position to determine underlying element, then
+ // it tries to use different trigger type in order to place the box
+ // in correct place. The following procedure is executed periodically.
+ function checkMouse( mouse ) {
+ that.debug.groupStart( 'CheckMouse' ); // %REMOVE_LINE%
+ that.debug.startTimer(); // %REMOVE_LINE%
+
+ that.mouse = mouse;
+ that.trigger = null;
+
+ checkMouseTimer = null;
+ updateWindowSize( that );
+
+ if ( checkMouseTimeoutPending // -> There must be an event pending.
+ && !that.hiddenMode // -> Can't be in hidden mode.
+ && editor.focusManager.hasFocus // -> Editor must have focus.
+ && !that.line.mouseNear() // -> Mouse pointer can't be close to the box.
+ && ( that.element = elementFromMouse( that, true ) ) ) // -> There must be valid element.
+ {
+ // If trigger exists, and trigger is correct -> show the box
+ if ( that.trigger = triggerEditable( that ) || triggerEdge( that ) || triggerExpand( that ) ) {
+ that.line.attach().place();
+ }
+
+ // Otherwise remove the box
+ else {
+ that.trigger = null;
+ that.line.detach();
+ }
+
+ that.debug.showTrigger( that.trigger ); // %REMOVE_LINE%
+ that.debug.mousePos( mouse.y, that.element ); // %REMOVE_LINE%
+
+ checkMouseTimeoutPending = false;
+ }
+
+ that.debug.stopTimer(); // %REMOVE_LINE%
+ that.debug.groupEnd(); // %REMOVE_LINE%
+ }
+
+ // This one allows testing and debugging. It reveals some
+ // inner methods to the world.
+ this.backdoor = {
+ accessFocusSpace: accessFocusSpace,
+ boxTrigger: boxTrigger,
+ isLine: isLine,
+ getAscendantTrigger: getAscendantTrigger,
+ getNonEmptyNeighbour: getNonEmptyNeighbour,
+ getSize: getSize,
+ that: that,
+ triggerEdge: triggerEdge,
+ triggerEditable: triggerEditable,
+ triggerExpand: triggerExpand
+ };
+ }
+ }
+
+ // Some shorthands for common methods to save bytes
+ var extend = CKEDITOR.tools.extend,
+ newElement = CKEDITOR.dom.element,
+ newElementFromHtml = newElement.createFromHtml,
+ env = CKEDITOR.env,
+ dtd = CKEDITOR.dtd,
+
+ // Constant values, types and so on.
+ EDGE_TOP = 128,
+ EDGE_BOTTOM = 64,
+ EDGE_MIDDLE = 32,
+ TYPE_EDGE = 16,
+ TYPE_EXPAND = 8,
+ LOOK_TOP = 4,
+ LOOK_BOTTOM = 2,
+ LOOK_NORMAL = 1,
+ WHITE_SPACE = '\u00A0',
+ DTD_LISTITEM = dtd.$listItem,
+ DTD_TABLECONTENT = dtd.$tableContent,
+ DTD_NONACCESSIBLE = extend( {}, dtd.$nonEditable, dtd.$empty ),
+ DTD_BLOCK = dtd.$block,
+
+ // Minimum time that must elapse between two update*Size calls.
+ // It prevents constant getComuptedStyle calls and improves performance.
+ CACHE_TIME = 100,
+
+ // Shared CSS stuff for box elements
+ CSS_COMMON = 'width:0px;height:0px;padding:0px;margin:0px;display:block;' + 'z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;',
+ CSS_TRIANGLE = CSS_COMMON + 'border-color:transparent;display:block;border-style:solid;',
+ TRIANGLE_HTML = '<span>' + WHITE_SPACE + '</span>';
+
+ function areSiblings( that, upper, lower ) {
+ return isHtml( upper ) && isHtml( lower ) && lower.equals( upper.getNext( function( node ) {
+ return !( isEmptyTextNode( node ) || isComment( node ) || isFlowBreaker( node ) );
+ }) );
+ }
+
+ // boxTrigger is an abstract type which describes
+ // the relationship between elements that may result
+ // in showing the box.
+ //
+ // The following type is used by numerous methods
+ // to share information about the hypothetical box placement
+ // and look by referring to boxTrigger properties.
+ function boxTrigger( triggerSetup ) {
+ this.upper = triggerSetup[ 0 ];
+ this.lower = triggerSetup[ 1 ];
+ this.set.apply( this, triggerSetup.slice( 2 ) );
+ }
+
+ boxTrigger.prototype = {
+ set: function( edge, type, look ) {
+ this.properties = edge + type + ( look || LOOK_NORMAL );
+ return this;
+ },
+
+ is: function( property ) {
+ return ( this.properties & property ) == property;
+ }
+ };
+
+ var elementFromMouse = ( function() {
+ function elementFromPoint( doc, mouse ) {
+ return new CKEDITOR.dom.element( doc.$.elementFromPoint( mouse.x, mouse.y ) );
+ }
+
+ return function( that, ignoreBox, forceMouse ) {
+ if ( !that.mouse )
+ return null;
+
+ var doc = that.doc,
+ lineWrap = that.line.wrap,
+ mouse = forceMouse || that.mouse,
+ element = elementFromPoint( doc, mouse );
+
+ // If ignoreBox is set and element is the box, it means that we
+ // need to hide the box for a while, repeat elementFromPoint
+ // and show it again.
+ if ( ignoreBox && isLine( that, element ) ) {
+ lineWrap.hide();
+ element = elementFromPoint( doc, mouse );
+ lineWrap.show();
+ }
+
+ // Return nothing if:
+ // \-> Element is not HTML.
+ if ( !( element && element.type == CKEDITOR.NODE_ELEMENT && element.$ ) ) {
+ return null;
+ }
+
+ // Also return nothing if:
+ // \-> We're IE<9 and element is out of the top-level element (editable for inline and HTML for framed).
+ // This is due to the bug which allows IE<9 firing mouse events on element
+ // with contenteditable=true while doing selection out (far, away) of the element.
+ // Thus we must always be sure that we stay in editable or HTML.
+ if ( env.ie && env.version < 9 ) {
+ if ( !( that.boundary.equals( element ) || that.boundary.contains( element ) ) )
+ return null;
+ }
+
+ return element;
+ };
+ })();
+
+ // Gets the closest parent node that belongs to triggers group.
+ function getAscendantTrigger( that ) {
+ var node = that.element,
+ trigger;
+
+ if ( node && isHtml( node ) ) {
+ return ( trigger = node.getAscendant( that.triggers, true ) ) &&
+ !trigger.contains( that.editable ) &&
+ !trigger.equals( that.editable ) ? trigger : null;
+ }
+
+ return null;
+ }
+
+ function getMidpoint( that, upper, lower ) {
+ updateSize( that, upper );
+ updateSize( that, lower );
+
+ var upperSizeBottom = upper.size.bottom,
+ lowerSizeTop = lower.size.top;
+
+ return upperSizeBottom && lowerSizeTop ? 0 | ( upperSizeBottom + lowerSizeTop ) / 2 : upperSizeBottom || lowerSizeTop;
+ }
+
+ // Get nearest node (either text or HTML), but:
+ // \-> Omit all empty text nodes (containing white characters only).
+ // \-> Omit BR elements
+ // \-> Omit flow breakers.
+ function getNonEmptyNeighbour( that, node, goBack ) {
+ node = node[ goBack ? 'getPrevious' : 'getNext' ]( function( node ) {
+ return ( isTextNode( node ) && !isEmptyTextNode( node ) ) ||
+ ( isHtml( node ) && !isFlowBreaker( node ) && !isLine( that, node ) );
+ });
+
+ return node;
+ }
+
+ function inBetween( val, lower, upper ) {
+ return val > lower && val < upper;
+ }
+
+ // Access space line consists of a few elements (spans):
+ // \-> Line wrapper.
+ // \-> Line.
+ // \-> Line triangles: left triangle (LT), right triangle (RT).
+ // \-> Button handler (BTN).
+ //
+ // +--------------------------------------------------- line.wrap (span) -----+
+ // | +---------------------------------------------------- line (span) -----+ |
+ // | | +- LT \ +- BTN -+ / RT -+ | |
+ // | | | \ | | | / | | |
+ // | | | / | <__| | \ | | |
+ // | | +-----/ +-------+ \-----+ | |
+ // | +----------------------------------------------------------------------+ |
+ // +--------------------------------------------------------------------------+
+ //
+ function initLine( that ) {
+ var doc = that.doc,
+ // This the main box element that holds triangles and the insertion button
+ line = newElementFromHtml( '<span contenteditable="false" style="' + CSS_COMMON + 'position:absolute;border-top:1px dashed ' + that.boxColor + '"></span>', doc );
+
+ extend( line, {
+
+ attach: function() {
+ // Only if not already attached
+ if ( !this.wrap.getParent() )
+ this.wrap.appendTo( that.editable, true );
+
+ return this;
+ },
+
+ // Looks are as follows: [ LOOK_TOP, LOOK_BOTTOM, LOOK_NORMAL ].
+ lineChildren: [
+ extend(
+ newElementFromHtml( '<span title="' + that.editor.lang.magicline.title +
+ '" contenteditable="false">↵</span>', doc ), {
+ base: CSS_COMMON + 'height:17px;width:17px;' + ( that.rtl ? 'left' : 'right' ) + ':17px;'
+ + 'background:url(' + this.path + 'images/icon.png) center no-repeat ' + that.boxColor + ';cursor:pointer;'
+ + ( env.hc ? 'font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;' : '' ),
+ looks: [
+ 'top:-8px;' + CKEDITOR.tools.cssVendorPrefix( 'border-radius', '2px', 1 ),
+ 'top:-17px;' + CKEDITOR.tools.cssVendorPrefix( 'border-radius', '2px 2px 0px 0px', 1 ),
+ 'top:-1px;' + CKEDITOR.tools.cssVendorPrefix( 'border-radius', '0px 0px 2px 2px', 1 )
+ ]
+ }),
+ extend( newElementFromHtml( TRIANGLE_HTML, doc ), {
+ base: CSS_TRIANGLE + 'left:0px;border-left-color:' + that.boxColor + ';',
+ looks: [
+ 'border-width:8px 0 8px 8px;top:-8px',
+ 'border-width:8px 0 0 8px;top:-8px',
+ 'border-width:0 0 8px 8px;top:0px'
+ ]
+ }),
+ extend( newElementFromHtml( TRIANGLE_HTML, doc ), {
+ base: CSS_TRIANGLE + 'right:0px;border-right-color:' + that.boxColor + ';',
+ looks: [
+ 'border-width:8px 8px 8px 0;top:-8px',
+ 'border-width:8px 8px 0 0;top:-8px',
+ 'border-width:0 8px 8px 0;top:0px'
+ ]
+ })
+ ],
+
+ detach: function() {
+ // Detach only if already attached.
+ if ( this.wrap.getParent() )
+ this.wrap.remove();
+
+ return this;
+ },
+
+ // Checks whether mouseY is around an element by comparing boundaries and considering
+ // an offset distance.
+ mouseNear: function() {
+ that.debug.groupStart( 'mouseNear' ); // %REMOVE_LINE%
+
+ updateSize( that, this );
+ var offset = that.holdDistance,
+ size = this.size;
+
+ // Determine neighborhood by element dimensions and offsets.
+ if ( size && inBetween( that.mouse.y, size.top - offset, size.bottom + offset ) && inBetween( that.mouse.x, size.left - offset, size.right + offset ) ) {
+ that.debug.logEnd( 'Mouse is near.' ); // %REMOVE_LINE%
+ return true;
+ }
+
+ that.debug.logEnd( 'Mouse isn\'t near.' ); // %REMOVE_LINE%
+ return false;
+ },
+
+ // Adjusts position of the box according to the trigger properties.
+ // If also affects look of the box depending on the type of the trigger.
+ place: function() {
+ var view = that.view,
+ editable = that.editable,
+ trigger = that.trigger,
+ upper = trigger.upper,
+ lower = trigger.lower,
+ any = upper || lower,
+ parent = any.getParent(),
+ styleSet = {};
+
+ // Save recent trigger for further insertion.
+ // It is necessary due to the fact, that that.trigger may
+ // contain different boxTrigger at the moment of insertion
+ // or may be even null.
+ this.trigger = trigger;
+
+ upper && updateSize( that, upper, true );
+ lower && updateSize( that, lower, true );
+ updateSize( that, parent, true );
+
+ // Yeah, that's gonna be useful in inline-mode case.
+ if ( that.inInlineMode )
+ updateEditableSize( that, true );
+
+ // Set X coordinate (left, right, width).
+ if ( parent.equals( editable ) ) {
+ styleSet.left = view.scroll.x;
+ styleSet.right = -view.scroll.x;
+ styleSet.width = '';
+ } else {
+ styleSet.left = any.size.left - any.size.margin.left + view.scroll.x - ( that.inInlineMode ? view.editable.left + view.editable.border.left : 0 );
+ styleSet.width = any.size.outerWidth + any.size.margin.left + any.size.margin.right + view.scroll.x;
+ styleSet.right = '';
+ }
+
+ // Set Y coordinate (top) for trigger consisting of two elements.
+ if ( upper && lower ) {
+ // No margins at all or they're equal. Place box right between.
+ if ( upper.size.margin.bottom === lower.size.margin.top )
+ styleSet.top = 0 | ( upper.size.bottom + upper.size.margin.bottom / 2 );
+ else {
+ // Upper margin < lower margin. Place at lower margin.
+ if ( upper.size.margin.bottom < lower.size.margin.top )
+ styleSet.top = upper.size.bottom + upper.size.margin.bottom;
+ // Upper margin > lower margin. Place at upper margin - lower margin.
+ else
+ styleSet.top = upper.size.bottom + upper.size.margin.bottom - lower.size.margin.top;
+ }
+ }
+ // Set Y coordinate (top) for single-edge trigger.
+ else if ( !upper )
+ styleSet.top = lower.size.top - lower.size.margin.top;
+ else if ( !lower )
+ styleSet.top = upper.size.bottom + upper.size.margin.bottom;
+
+ // Set box button modes if close to the viewport horizontal edge
+ // or look forced by the trigger.
+ if ( trigger.is( LOOK_TOP ) || inBetween( styleSet.top, view.scroll.y - 15, view.scroll.y + 5 ) ) {
+ styleSet.top = that.inInlineMode ? 0 : view.scroll.y;
+ this.look( LOOK_TOP );
+ } else if ( trigger.is( LOOK_BOTTOM ) || inBetween( styleSet.top, view.pane.bottom - 5, view.pane.bottom + 15 ) ) {
+ styleSet.top = that.inInlineMode ?
+ view.editable.height + view.editable.padding.top + view.editable.padding.bottom
+ :
+ view.pane.bottom - 1;
+
+ this.look( LOOK_BOTTOM );
+ } else {
+ if ( that.inInlineMode )
+ styleSet.top -= view.editable.top + view.editable.border.top;
+
+ this.look( LOOK_NORMAL );
+ }
+
+ if ( that.inInlineMode ) {
+ // 1px bug here...
+ styleSet.top--;
+
+ // Consider the editable to be an element with overflow:scroll
+ // and non-zero scrollTop/scrollLeft value.
+ // For example: divarea editable. (#9383)
+ styleSet.top += view.editable.scroll.top;
+ styleSet.left += view.editable.scroll.left;
+ }
+
+ // Append `px` prefixes.
+ for ( var style in styleSet )
+ styleSet[ style ] = CKEDITOR.tools.cssLength( styleSet[ style ] );
+
+ this.setStyles( styleSet );
+ },
+
+ // Changes look of the box according to current needs.
+ // Three different styles are available: [ LOOK_TOP, LOOK_BOTTOM, LOOK_NORMAL ].
+ look: function( look ) {
+ if ( this.oldLook == look )
+ return;
+
+ for ( var i = this.lineChildren.length, child; i--; )
+ ( child = this.lineChildren[ i ] ).setAttribute( 'style', child.base + child.looks[ 0 | look / 2 ] );
+
+ this.oldLook = look;
+ },
+
+ wrap: new newElement( 'span', that.doc )
+
+ });
+
+ // Insert children into the box.
+ for ( var i = line.lineChildren.length; i--; )
+ line.lineChildren[ i ].appendTo( line );
+
+ // Set default look of the box.
+ line.look( LOOK_NORMAL );
+
+ // Using that wrapper prevents IE (8,9) from resizing editable area at the moment
+ // of box insertion. This works thanks to the fact, that positioned box is wrapped by
+ // an inline element. So much tricky.
+ line.appendTo( line.wrap );
+
+ // Make the box unselectable.
+ line.unselectable();
+
+ // Handle accessSpace node insertion.
+ line.lineChildren[ 0 ].on( 'mouseup', function( event ) {
+ line.detach();
+
+ accessFocusSpace( that, function( accessNode ) {
+ // Use old trigger that was saved by 'place' method. Look: line.place
+ var trigger = that.line.trigger;
+
+ accessNode[ trigger.is( EDGE_TOP ) ? 'insertBefore' : 'insertAfter' ]
+ ( trigger.is( EDGE_TOP ) ? trigger.lower : trigger.upper );
+ }, true );
+
+ that.editor.focus();
+
+ if ( !env.ie && that.enterMode != CKEDITOR.ENTER_BR )
+ that.hotNode.scrollIntoView();
+
+ event.data.preventDefault( true );
+ });
+
+ // Prevents IE9 from displaying the resize box and disables drag'n'drop functionality.
+ line.on( 'mousedown', function( event ) {
+ event.data.preventDefault( true );
+ });
+
+ that.line = line;
+ }
+
+ // This function allows accessing any focus space according to the insert function:
+ // * For enterMode ENTER_P it creates P element filled with dummy white-space.
+ // * For enterMode ENTER_DIV it creates DIV element filled with dummy white-space.
+ // * For enterMode ENTER_BR it creates BR element or in IE.
+ //
+ // The node is being inserted according to insertFunction. Finally the method
+ // selects the non-breaking space making the node ready for typing.
+ function accessFocusSpace( that, insertFunction, doSave ) {
+ var range = new CKEDITOR.dom.range( that.doc ),
+ editor = that.editor,
+ accessNode;
+
+ // IE requires text node of in ENTER_BR mode.
+ if ( env.ie && that.enterMode == CKEDITOR.ENTER_BR )
+ accessNode = that.doc.createText( WHITE_SPACE );
+
+ // In other cases a regular element is used.
+ else {
+ accessNode = new newElement( that.enterBehavior, that.doc );
+
+ if ( that.enterMode != CKEDITOR.ENTER_BR ) {
+ var dummy = that.doc.createText( WHITE_SPACE );
+ dummy.appendTo( accessNode );
+ }
+ }
+
+ doSave && editor.fire( 'saveSnapshot' );
+
+ insertFunction( accessNode );
+ //dummy.appendTo( accessNode );
+ range.moveToPosition( accessNode, CKEDITOR.POSITION_AFTER_START );
+ editor.getSelection().selectRanges( [ range ] );
+ that.hotNode = accessNode;
+
+ doSave && editor.fire( 'saveSnapshot' );
+ }
+
+ // Access focus space on demand by taking an element under the caret as a reference.
+ // The space is accessed provided the element under the caret is trigger AND:
+ //
+ // 1. First/last-child of its parent:
+ // +----------------------- Parent element -+
+ // | +------------------------------ DIV -+ | <-- Access before
+ // | | Foo^ | |
+ // | | | |
+ // | +------------------------------------+ | <-- Access after
+ // +----------------------------------------+
+ //
+ // OR
+ //
+ // 2. It has a direct sibling element, which is also a trigger:
+ // +-------------------------------- DIV#1 -+
+ // | Foo^ |
+ // | |
+ // +----------------------------------------+
+ // <-- Access here
+ // +-------------------------------- DIV#2 -+
+ // | Bar |
+ // | |
+ // +----------------------------------------+
+ //
+ // OR
+ //
+ // 3. It has a direct sibling, which is a trigger and has a valid neighbour trigger,
+ // but belongs to dtd.$.empty/nonEditable:
+ // +------------------------------------ P -+
+ // | Foo^ |
+ // | |
+ // +----------------------------------------+
+ // +----------------------------------- HR -+
+ // <-- Access here
+ // +-------------------------------- DIV#2 -+
+ // | Bar |
+ // | |
+ // +----------------------------------------+
+ //
+ function accessFocusSpaceCmd( that, insertAfter ) {
+ return {
+ canUndo: true,
+ modes: { wysiwyg: 1 },
+ exec: ( function() {
+
+ // Inserts line (accessNode) at the position by taking target node as a reference.
+ function doAccess( target ) {
+ // Remove old hotNode under certain circumstances.
+ var hotNodeChar = ( env.ie && env.version < 9 ? ' ' : WHITE_SPACE ),
+ removeOld = that.hotNode && // Old hotNode must exist.
+ that.hotNode.getText() == hotNodeChar && // Old hotNode hasn't been changed.
+ that.element.equals( that.hotNode ) && // Caret is inside old hotNode.
+ that.lastCmdDirection === !!insertAfter; // Command is executed in the same direction.
+
+ accessFocusSpace( that, function( accessNode ) {
+ if ( removeOld && that.hotNode )
+ that.hotNode.remove();
+
+ accessNode[ insertAfter ? 'insertAfter' : 'insertBefore' ]( target );
+
+ // Make this element distinguishable. Also remember the direction
+ // it's been inserted into document.
+ accessNode.setAttributes( {
+ 'data-cke-magicline-hot': 1,
+ 'data-cke-magicline-dir': !!insertAfter
+ } );
+
+ // Save last direction of the command (is insertAfter?).
+ that.lastCmdDirection = !!insertAfter;
+ } );
+
+ if( !env.ie && that.enterMode != CKEDITOR.ENTER_BR )
+ that.hotNode.scrollIntoView();
+
+ // Detach the line if was visible (previously triggered by mouse).
+ that.line.detach();
+ }
+
+ return function( editor ) {
+ var selected = editor.getSelection().getStartElement();
+
+ // (#9833) Go down to the closest non-inline element in DOM structure
+ // since inline elements don't participate in in magicline.
+ selected = selected.getAscendant( DTD_BLOCK, 1 );
+
+ // Sometimes it may happen that there's no parent block below selected element
+ // or, for example, getAscendant reaches editable or editable parent.
+ // We must avoid such pathological cases.
+ if ( !selected || selected.equals( that.editable ) || selected.contains( that.editable ) )
+ return;
+
+ // That holds element from mouse. Replace it with the
+ // element under the caret.
+ that.element = selected;
+
+ // (3.) Handle the following cases where selected neighbour
+ // is a trigger inaccessible for the caret AND:
+ // - Is first/last-child
+ // OR
+ // - Has a sibling, which is also a trigger.
+ var neighbor = getNonEmptyNeighbour( that, selected, !insertAfter ),
+ neighborSibling;
+
+ // Check for a neighbour that belongs to triggers.
+ // Consider only non-accessible elements (they cannot have any children)
+ // since they cannot be given a caret inside, to run the command
+ // the regular way (1. & 2.).
+ if ( isHtml( neighbor ) && neighbor.is( that.triggers ) && neighbor.is( DTD_NONACCESSIBLE ) &&
+ (
+ // Check whether neighbor is first/last-child.
+ !getNonEmptyNeighbour( that, neighbor, !insertAfter )
+ ||
+ // Check for a sibling of a neighbour that also is a trigger.
+ (
+ ( neighborSibling = getNonEmptyNeighbour( that, neighbor, !insertAfter ) ) &&
+ isHtml( neighborSibling ) &&
+ neighborSibling.is( that.triggers )
+ )
+ )
+ ) {
+ doAccess( neighbor );
+ return;
+ }
+
+ // Look for possible target element DOWN "selected" DOM branch (towards editable)
+ // that belong to that.triggers
+ var target = getAscendantTrigger( that, selected );
+
+ // No HTML target -> no access.
+ if ( !isHtml( target ) )
+ return;
+
+ // (1.) Target is first/last child -> access.
+ if ( !getNonEmptyNeighbour( that, target, !insertAfter ) ) {
+ doAccess( target );
+ return;
+ }
+
+ var sibling = getNonEmptyNeighbour( that, target, !insertAfter );
+
+ // (2.) Target has a sibling that belongs to that.triggers -> access.
+ if ( sibling && isHtml( sibling ) && sibling.is( that.triggers ) ) {
+ doAccess( target );
+ return;
+ }
+ };
+ })()
+ };
+ }
+
+ function isLine( that, node ) {
+ if ( !( node && node.type == CKEDITOR.NODE_ELEMENT && node.$ ) )
+ return false;
+
+ var line = that.line;
+
+ return line.wrap.equals( node ) || line.wrap.contains( node );
+ }
+
+ // Is text node containing white-spaces only?
+ var isEmptyTextNode = CKEDITOR.dom.walker.whitespaces();
+
+ // Is fully visible HTML node?
+ function isHtml( node ) {
+ return node && node.type == CKEDITOR.NODE_ELEMENT && node.$; // IE requires that
+ }
+
+ function isFloated( element ) {
+ if ( !isHtml( element ) )
+ return false;
+
+ var options = { left:1,right:1,center:1 };
+
+ return !!( options[ element.getComputedStyle( 'float' ) ] || options[ element.getAttribute( 'align' ) ] );
+ }
+
+ function isFlowBreaker( element ) {
+ if ( !isHtml( element ) )
+ return false;
+
+ return isPositioned( element ) || isFloated( element );
+ }
+
+ // Isn't node of NODE_COMMENT type?
+ var isComment = CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_COMMENT );
+
+ function isPositioned( element ) {
+ return !!{ absolute:1,fixed:1,relative:1 }[ element.getComputedStyle( 'position' ) ];
+ }
+
+ // Is text node?
+ function isTextNode( node ) {
+ return node && node.type == CKEDITOR.NODE_TEXT;
+ }
+
+ function isTrigger( that, element ) {
+ return isHtml( element ) ? element.is( that.triggers ) : null;
+ }
+
+ // This function checks vertically is there's a relevant child between element's edge
+ // and the pointer.
+ // \-> Table contents are omitted.
+ function isChildBetweenPointerAndEdge( that, parent, edgeBottom ) {
+ var edgeChild = parent[ edgeBottom ? 'getLast' : 'getFirst' ]( function( node ) {
+ return that.isRelevant( node ) && !node.is( DTD_TABLECONTENT );
+ });
+
+ if ( !edgeChild )
+ return false;
+
+ updateSize( that, edgeChild );
+
+ return edgeBottom ? edgeChild.size.top > that.mouse.y : edgeChild.size.bottom < that.mouse.y;
+ }
+
+ // This method handles edge cases:
+ // \-> Mouse is around upper or lower edge of view pane.
+ // \-> Also scroll position is either minimal or maximal.
+ // \-> It's OK to show LOOK_TOP(BOTTOM) type line.
+ //
+ // This trigger doesn't need additional post-filtering.
+ //
+ // +----------------------------- Editable -+ /--
+ // | +---------------------- First child -+ | | <-- Top edge (first child)
+ // | | | | |
+ // | | | | | * Mouse activation area *
+ // | | | | |
+ // | | ... | | \-- Top edge + trigger offset
+ // | . . |
+ // | |
+ // | . . |
+ // | | ... | | /-- Bottom edge - trigger offset
+ // | | | | |
+ // | | | | | * Mouse activation area *
+ // | | | | |
+ // | +----------------------- Last child -+ | | <-- Bottom edge (last child)
+ // +----------------------------------------+ \--
+ //
+ function triggerEditable( that ) {
+ that.debug.groupStart( 'triggerEditable' ); // %REMOVE_LINE%
+
+ var editable = that.editable,
+ mouse = that.mouse,
+ view = that.view,
+ triggerOffset = that.triggerOffset,
+ triggerLook;
+
+ // Update editable dimensions.
+ updateEditableSize( that );
+
+ // This flag determines whether checking bottom trigger.
+ var bottomTrigger = mouse.y > ( that.inInlineMode ?
+ view.editable.top + view.editable.height / 2
+ :
+ // This is to handle case when editable.height / 2 <<< pane.height.
+ Math.min( view.editable.height, view.pane.height ) / 2 ),
+
+ // Edge node according to bottomTrigger.
+ edgeNode = editable[ bottomTrigger ? 'getLast' : 'getFirst' ]( function( node ) {
+ return !( isEmptyTextNode( node ) || isComment( node ) );
+ });
+
+ // There's no edge node. Abort.
+ if ( !edgeNode ) {
+ that.debug.logEnd( 'ABORT. No edge node found.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // If the edgeNode in editable is ML, get the next one.
+ if ( isLine( that, edgeNode ) ) {
+ edgeNode = that.line.wrap[ bottomTrigger ? 'getPrevious' : 'getNext' ]( function( node ) {
+ return !( isEmptyTextNode( node ) || isComment( node ) );
+ });
+ }
+
+ // Exclude bad nodes (no ML needed then):
+ // \-> Edge node is text.
+ // \-> Edge node is floated, etc.
+ //
+ // Edge node *must be* a valid trigger at this stage as well.
+ if ( !isHtml( edgeNode ) || isFlowBreaker( edgeNode ) || !isTrigger( that, edgeNode ) ) {
+ that.debug.logEnd( 'ABORT. Invalid edge node.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Update size of edge node. Dimensions will be necessary.
+ updateSize( that, edgeNode );
+
+ // Return appropriate trigger according to bottomTrigger.
+ // \-> Top edge trigger case first.
+ if ( !bottomTrigger && // Top trigger case.
+ edgeNode.size.top >= 0 && // Check if the first element is fully visible.
+ inBetween( mouse.y, 0, edgeNode.size.top + triggerOffset ) ) { // Check if mouse in [0, edgeNode.top + triggerOffset].
+
+ // Determine trigger look.
+ triggerLook = that.inInlineMode || view.scroll.y === 0 ?
+ LOOK_TOP : LOOK_NORMAL;
+
+ that.debug.logEnd( 'SUCCESS. Created box trigger. EDGE_TOP.' ); // %REMOVE_LINE%
+
+ return new boxTrigger( [ null, edgeNode,
+ EDGE_TOP,
+ TYPE_EDGE,
+ triggerLook
+ ] );
+ }
+
+ // \-> Bottom case.
+ else if ( bottomTrigger &&
+ edgeNode.size.bottom <= view.pane.height && // Check if the last element is fully visible
+ inBetween( mouse.y, // Check if mouse in...
+ edgeNode.size.bottom - triggerOffset, view.pane.height ) ) { // [ edgeNode.bottom - triggerOffset, paneHeight ]
+
+ // Determine trigger look.
+ triggerLook = that.inInlineMode ||
+ inBetween( edgeNode.size.bottom, view.pane.height - triggerOffset, view.pane.height ) ?
+ LOOK_BOTTOM : LOOK_NORMAL;
+
+ that.debug.logEnd( 'SUCCESS. Created box trigger. EDGE_BOTTOM.' ); // %REMOVE_LINE%
+
+ return new boxTrigger( [ edgeNode, null,
+ EDGE_BOTTOM,
+ TYPE_EDGE,
+ triggerLook
+ ] );
+ }
+
+ that.debug.logEnd( 'ABORT. No trigger created.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // This method covers cases *inside* of an element:
+ // \-> The pointer is in the top (bottom) area of an element and there's
+ // HTML node before (after) this element.
+ // \-> An element being the first or last child of its parent.
+ //
+ // +----------------------- Parent element -+
+ // | +----------------------- Element #1 -+ | /--
+ // | | | | | * Mouse activation area (as first child) *
+ // | | | | \--
+ // | | | | /--
+ // | | | | | * Mouse activation area (Element #2) *
+ // | +------------------------------------+ | \--
+ // | |
+ // | +----------------------- Element #2 -+ | /--
+ // | | | | | * Mouse activation area (Element #1) *
+ // | | | | \--
+ // | | | |
+ // | +------------------------------------+ |
+ // | |
+ // | Text node is here. |
+ // | |
+ // | +----------------------- Element #3 -+ |
+ // | | | |
+ // | | | |
+ // | | | | /--
+ // | | | | | * Mouse activation area (as last child) *
+ // | +------------------------------------+ | \--
+ // +----------------------------------------+
+ //
+ function triggerEdge( that ) {
+ that.debug.groupStart( 'triggerEdge' ); // %REMOVE_LINE%
+
+ var mouse = that.mouse,
+ view = that.view,
+ triggerOffset = that.triggerOffset;
+
+ // Get the ascendant trigger basing on elementFromMouse.
+ var element = getAscendantTrigger( that );
+
+ that.debug.logElements( [ element ], [ 'Ascendant trigger' ], 'First stage' ); // %REMOVE_LINE%
+
+ // Abort if there's no appropriate element.
+ if ( !element ) {
+ that.debug.logEnd( 'ABORT. No element, element is editable or element contains editable.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Dimensions will be necessary.
+ updateSize( that, element );
+
+ // If triggerOffset is larger than a half of element's height,
+ // use an offset of 1/2 of element's height. If the offset wasn't reduced,
+ // top area would cover most (all) cases.
+ var fixedOffset = Math.min( triggerOffset,
+ 0 | ( element.size.outerHeight / 2 ) ),
+
+ // This variable will hold the trigger to be returned.
+ triggerSetup = [],
+ triggerLook,
+
+ // This flag determines whether dealing with a bottom trigger.
+ bottomTrigger;
+
+ // \-> Top trigger.
+ if ( inBetween( mouse.y, element.size.top - 1, element.size.top + fixedOffset ) )
+ bottomTrigger = false;
+ // \-> Bottom trigger.
+ else if ( inBetween( mouse.y, element.size.bottom - fixedOffset, element.size.bottom + 1 ) )
+ bottomTrigger = true;
+ // \-> Abort. Not in a valid trigger space.
+ else {
+ that.debug.logEnd( 'ABORT. Not around of any edge.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Reject wrong elements.
+ // \-> Reject an element which is a flow breaker.
+ // \-> Reject an element which has a child above/below the mouse pointer.
+ // \-> Reject an element which belongs to list items.
+ if( isFlowBreaker( element ) ||
+ isChildBetweenPointerAndEdge( that, element, bottomTrigger ) ||
+ element.getParent().is( DTD_LISTITEM ) ) {
+ that.debug.logEnd( 'ABORT. element is wrong', element ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Get sibling according to bottomTrigger.
+ var elementSibling = getNonEmptyNeighbour( that, element, !bottomTrigger );
+
+ // No sibling element.
+ // This is a first or last child case.
+ if ( !elementSibling ) {
+ // No need to reject the element as it has already been done before.
+ // Prepare a trigger.
+
+ // Determine trigger look.
+ if ( element.equals( that.editable[ bottomTrigger ? 'getLast' : 'getFirst' ]( that.isRelevant ) ) ) {
+ updateEditableSize( that );
+
+ if ( bottomTrigger && inBetween( mouse.y,
+ element.size.bottom - fixedOffset, view.pane.height ) &&
+ inBetween( element.size.bottom, view.pane.height - fixedOffset, view.pane.height ) ) {
+ triggerLook = LOOK_BOTTOM;
+ }
+ else if ( inBetween( mouse.y, 0, element.size.top + fixedOffset ) ) {
+ triggerLook = LOOK_TOP;
+ }
+ }
+ else
+ triggerLook = LOOK_NORMAL;
+
+ triggerSetup = [ null, element ][ bottomTrigger ? 'reverse' : 'concat' ]().concat( [
+ bottomTrigger ? EDGE_BOTTOM : EDGE_TOP,
+ TYPE_EDGE,
+ triggerLook,
+ element.equals( that.editable[ bottomTrigger ? 'getLast' : 'getFirst' ]( that.isRelevant ) ) ?
+ ( bottomTrigger ? LOOK_BOTTOM : LOOK_TOP ) : LOOK_NORMAL
+ ] );
+
+ that.debug.log( 'Configured edge trigger of ' + ( bottomTrigger ? 'EDGE_BOTTOM' : 'EDGE_TOP' ) ); // %REMOVE_LINE%
+ }
+
+ // Abort. Sibling is a text element.
+ else if ( isTextNode( elementSibling ) ) {
+ that.debug.logEnd( 'ABORT. Sibling is non-empty text element' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Check if the sibling is a HTML element.
+ // If so, create an TYPE_EDGE, EDGE_MIDDLE trigger.
+ else if ( isHtml( elementSibling ) ) {
+ // Reject wrong elementSiblings.
+ // \-> Reject an elementSibling which is a flow breaker.
+ // \-> Reject an elementSibling which isn't a trigger.
+ // \-> Reject an elementSibling which belongs to list items.
+ if( isFlowBreaker( elementSibling ) ||
+ !isTrigger( that, elementSibling ) ||
+ elementSibling.getParent().is( DTD_LISTITEM ) ) {
+ that.debug.logEnd( 'ABORT. elementSibling is wrong', elementSibling ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Prepare a trigger.
+ triggerSetup = [ elementSibling, element ][ bottomTrigger ? 'reverse' : 'concat' ]().concat( [
+ EDGE_MIDDLE,
+ TYPE_EDGE
+ ] );
+
+ that.debug.log( 'Configured edge trigger of EDGE_MIDDLE' ); // %REMOVE_LINE%
+ }
+
+ if ( 0 in triggerSetup ) {
+ that.debug.logEnd( 'SUCCESS. Returning a trigger.' ); // %REMOVE_LINE%
+ return new boxTrigger( triggerSetup );
+ }
+
+ that.debug.logEnd( 'ABORT. No trigger generated.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // Checks iteratively up and down in search for elements using elementFromMouse method.
+ // Useful if between two triggers.
+ //
+ // +----------------------- Parent element -+
+ // | +----------------------- Element #1 -+ |
+ // | | | |
+ // | | | |
+ // | | | |
+ // | +------------------------------------+ |
+ // | | /--
+ // | . | |
+ // | . +-- Floated -+ | |
+ // | | | | | | * Mouse activation area *
+ // | | | IGNORE | | |
+ // | X | | | | Method searches vertically for sibling elements.
+ // | | +------------+ | | Start point is X (mouse-y coordinate).
+ // | | | | Floated elements, comments and empty text nodes are omitted.
+ // | . | |
+ // | . | |
+ // | | \--
+ // | +----------------------- Element #2 -+ |
+ // | | | |
+ // | | | |
+ // | | | |
+ // | | | |
+ // | +------------------------------------+ |
+ // +----------------------------------------+
+ //
+ var triggerExpand = ( function() {
+ // The heart of the procedure. This method creates triggers that are
+ // filtered by expandFilter method.
+ function expandEngine( that ) {
+ that.debug.groupStart( 'expandEngine' ); // %REMOVE_LINE%
+
+ var startElement = that.element,
+ upper, lower, trigger;
+
+ if ( !isHtml( startElement ) || startElement.contains( that.editable ) ) {
+ that.debug.logEnd( 'ABORT. No start element, or start element contains editable.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ trigger = verticalSearch( that,
+ function( current, startElement ) {
+ return !startElement.equals( current ); // stop when start element and the current one differ
+ }, function( that, mouse ) {
+ return elementFromMouse( that, true, mouse );
+ }, startElement ),
+
+ upper = trigger.upper,
+ lower = trigger.lower;
+
+ that.debug.logElements( [ upper, lower ], [ 'Upper', 'Lower' ], 'Pair found' ); // %REMOVE_LINE%
+
+ // Success: two siblings have been found
+ if ( areSiblings( that, upper, lower ) ) {
+ that.debug.logEnd( 'SUCCESS. Expand trigger created.' ); // %REMOVE_LINE%
+ return trigger.set( EDGE_MIDDLE, TYPE_EXPAND );
+ }
+
+ that.debug.logElements( [ startElement, upper, lower ], // %REMOVE_LINE%
+ [ 'Start', 'Upper', 'Lower' ], 'Post-processing' ); // %REMOVE_LINE%
+
+ // Danger. Dragons ahead.
+ // No siblings have been found during previous phase, post-processing may be necessary.
+ // We can traverse DOM until a valid pair of elements around the pointer is found.
+
+ // Prepare for post-processing:
+ // 1. Determine if upper and lower are children of startElement.
+ // 1.1. If so, find their ascendants that are closest to startElement (one level deeper than startElement).
+ // 1.2. Otherwise use first/last-child of the startElement as upper/lower. Why?:
+ // a) upper/lower belongs to another branch of the DOM tree.
+ // b) verticalSearch encountered an edge of the viewport and failed.
+ // 1.3. Make sure upper and lower still exist. Why?:
+ // a) Upper and lower may be not belong to the branch of the startElement (may not exist at all) and
+ // startElement has no children.
+ // 2. Perform the post-processing.
+ // 2.1. Gather dimensions of an upper element.
+ // 2.2. Abort if lower edge of upper is already under the mouse pointer. Why?:
+ // a) We expect upper to be above and lower below the mouse pointer.
+ // 3. Perform iterative search while upper != lower.
+ // 3.1. Find the upper-next element. If there's no such element, break current search. Why?:
+ // a) There's no point in further search if there are only text nodes ahead.
+ // 3.2. Calculate the distance between the middle point of ( upper, upperNext ) and mouse-y.
+ // 3.3. If the distance is shorter than the previous best, save it (save upper, upperNext as well).
+ // 3.4. If the optimal pair is found, assign it back to the trigger.
+
+ // 1.1., 1.2.
+ if ( upper && startElement.contains( upper ) ) {
+ while ( !upper.getParent().equals( startElement ) )
+ upper = upper.getParent();
+ } else {
+ upper = startElement.getFirst( function( node ) {
+ return expandSelector( that, node );
+ });
+ }
+
+ if ( lower && startElement.contains( lower ) ) {
+ while ( !lower.getParent().equals( startElement ) )
+ lower = lower.getParent();
+ } else {
+ lower = startElement.getLast( function( node ) {
+ return expandSelector( that, node );
+ });
+ }
+
+ // 1.3.
+ if ( !upper || !lower ) {
+ that.debug.logEnd( 'ABORT. There is no upper or no lower element.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // 2.1.
+ updateSize( that, upper );
+ updateSize( that, lower );
+
+ if ( !checkMouseBetweenElements( that, upper, lower ) ) {
+ that.debug.logEnd( 'ABORT. Mouse is already above upper or below lower.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ var minDistance = Number.MAX_VALUE,
+ currentDistance, upperNext, minElement, minElementNext;
+
+ while ( lower && !lower.equals( upper ) ) {
+ // 3.1.
+ if ( !( upperNext = upper.getNext( that.isRelevant ) ) )
+ break;
+
+ // 3.2.
+ currentDistance = Math.abs( getMidpoint( that, upper, upperNext ) - that.mouse.y );
+
+ // 3.3.
+ if ( currentDistance < minDistance ) {
+ minDistance = currentDistance;
+ minElement = upper;
+ minElementNext = upperNext;
+ }
+
+ upper = upperNext;
+ updateSize( that, upper );
+ }
+
+ that.debug.logElements( [ minElement, minElementNext ], // %REMOVE_LINE%
+ [ 'Min', 'MinNext' ], 'Post-processing results' ); // %REMOVE_LINE%
+
+ // 3.4.
+ if ( !minElement || !minElementNext ) {
+ that.debug.logEnd( 'ABORT. No Min or MinNext' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ if ( !checkMouseBetweenElements( that, minElement, minElementNext ) ) {
+ that.debug.logEnd( 'ABORT. Mouse is already above minElement or below minElementNext.' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ // An element of minimal distance has been found. Assign it to the trigger.
+ trigger.upper = minElement;
+ trigger.lower = minElementNext;
+
+ // Success: post-processing revealed a pair of elements.
+ that.debug.logEnd( 'SUCCESSFUL post-processing. Trigger created.' ); // %REMOVE_LINE%
+ return trigger.set( EDGE_MIDDLE, TYPE_EXPAND );
+ }
+
+ // This is default element selector used by the engine.
+ function expandSelector( that, node ) {
+ return !( isTextNode( node )
+ || isComment( node )
+ || isFlowBreaker( node )
+ || isLine( that, node )
+ || ( node.type == CKEDITOR.NODE_ELEMENT && node.$ && node.is( 'br' ) ) );
+ }
+
+ // This method checks whether mouse-y is between the top edge of upper
+ // and bottom edge of lower.
+ //
+ // NOTE: This method assumes that updateSize has already been called
+ // for the elements and is up-to-date.
+ //
+ // +---------------------------- Upper -+ /--
+ // | | |
+ // +------------------------------------+ |
+ // |
+ // ... |
+ // |
+ // X | * Return true for mouse-y in this range *
+ // |
+ // ... |
+ // |
+ // +---------------------------- Lower -+ |
+ // | | |
+ // +------------------------------------+ \--
+ //
+ function checkMouseBetweenElements( that, upper, lower ) {
+ return inBetween( that.mouse.y, upper.size.top, lower.size.bottom );
+ }
+
+ // A method for trigger filtering. Accepts or rejects trigger pairs
+ // by their location in DOM etc.
+ function expandFilter( that, trigger ) {
+ that.debug.groupStart( 'expandFilter' ); // %REMOVE_LINE%
+
+ var upper = trigger.upper,
+ lower = trigger.lower;
+
+ if ( !upper || !lower // NOT: EDGE_MIDDLE trigger ALWAYS has two elements.
+ || isFlowBreaker( lower ) || isFlowBreaker( upper ) // NOT: one of the elements is floated or positioned
+ || lower.equals( upper ) || upper.equals( lower ) // NOT: two trigger elements, one equals another.
+ || lower.contains( upper ) || upper.contains( lower ) ) { // NOT: two trigger elements, one contains another.
+ that.debug.logEnd( 'REJECTED. No upper or no lower or they contain each other.' ); // %REMOVE_LINE%
+
+ return false;
+ }
+
+ // YES: two trigger elements, pure siblings.
+ else if ( isTrigger( that, upper ) && isTrigger( that, lower ) && areSiblings( that, upper, lower ) ) {
+ that.debug.logElementsEnd( [ upper, lower ], // %REMOVE_LINE%
+ [ 'upper', 'lower' ], 'APPROVED EDGE_MIDDLE' ); // %REMOVE_LINE%
+
+ return true;
+ }
+
+ that.debug.logElementsEnd( [ upper, lower ], // %REMOVE_LINE%
+ [ 'upper', 'lower' ], 'Rejected unknown pair' ); // %REMOVE_LINE%
+
+ return false;
+ }
+
+ // Simple wrapper for expandEngine and expandFilter.
+ return function( that ) {
+ that.debug.groupStart( 'triggerExpand' ); // %REMOVE_LINE%
+
+ var trigger = expandEngine( that );
+
+ that.debug.groupEnd(); // %REMOVE_LINE%
+ return trigger && expandFilter( that, trigger ) ? trigger : null;
+ };
+ })();
+
+ // Collects dimensions of an element.
+ var sizePrefixes = [ 'top', 'left', 'right', 'bottom' ];
+
+ function getSize( that, element, ignoreScroll, force ) {
+ var getStyle = (function() {
+ // Better "cache and reuse" than "call again and again".
+ var computed = env.ie ? element.$.currentStyle : that.win.$.getComputedStyle( element.$, '' );
+
+ return env.ie ?
+ function( propertyName ) {
+ return computed[ CKEDITOR.tools.cssStyleToDomStyle( propertyName ) ];
+ } : function( propertyName ) {
+ return computed.getPropertyValue( propertyName );
+ };
+ })(),
+ docPosition = element.getDocumentPosition(),
+ border = {},
+ margin = {},
+ padding = {},
+ box = {};
+
+ for ( var i = sizePrefixes.length; i--; ) {
+ border[ sizePrefixes[ i ] ] = parseInt( getStyle( 'border-' + sizePrefixes[ i ] + '-width' ), 10 ) || 0;
+ padding[ sizePrefixes[ i ] ] = parseInt( getStyle( 'padding-' + sizePrefixes[ i ] ), 10 ) || 0;
+ margin[ sizePrefixes[ i ] ] = parseInt( getStyle( 'margin-' + sizePrefixes[ i ] ), 10 ) || 0;
+ }
+
+ // updateWindowSize if forced to do so OR NOT ignoring scroll.
+ if ( !ignoreScroll || force )
+ updateWindowSize( that, force );
+
+ box.top = docPosition.y - ( ignoreScroll ? 0 : that.view.scroll.y ), box.left = docPosition.x - ( ignoreScroll ? 0 : that.view.scroll.x ),
+
+ // w/ borders and paddings.
+ box.outerWidth = element.$.offsetWidth, box.outerHeight = element.$.offsetHeight,
+
+ // w/o borders and paddings.
+ box.height = box.outerHeight - ( padding.top + padding.bottom + border.top + border.bottom ), box.width = box.outerWidth - ( padding.left + padding.right + border.left + border.right ),
+
+ box.bottom = box.top + box.outerHeight, box.right = box.left + box.outerWidth;
+
+ if ( that.inInlineMode ) {
+ box.scroll = {
+ top: element.$.scrollTop,
+ left: element.$.scrollLeft
+ };
+ }
+
+ return extend({
+ border: border,
+ padding: padding,
+ margin: margin,
+ ignoreScroll: ignoreScroll
+ }, box, true );
+ }
+
+ function updateSize( that, element, ignoreScroll ) {
+ if ( !isHtml( element ) ) // i.e. an element is hidden
+ return ( element.size = null ); // -> reset size to make it useless for other methods
+
+ if ( !element.size )
+ element.size = {};
+
+ // Abort if there was a similar query performed recently.
+ // This kind of caching provides great performance improvement.
+ else if ( element.size.ignoreScroll == ignoreScroll && element.size.date > new Date() - CACHE_TIME ) {
+ that.debug.log( 'element.size: get from cache' ); // %REMOVE_LINE%
+ return null;
+ }
+
+ that.debug.log( 'element.size: capture' ); // %REMOVE_LINE%
+
+ return extend( element.size, getSize( that, element, ignoreScroll ), {
+ date: +new Date()
+ }, true );
+ }
+
+ // Updates that.view.editable object.
+ // This one must be called separately outside of updateWindowSize
+ // to prevent cyclic dependency getSize<->updateWindowSize.
+ // It calls getSize with force flag to avoid getWindowSize cache (look: getSize).
+ function updateEditableSize( that, ignoreScroll ) {
+ that.view.editable = getSize( that, that.editable, ignoreScroll, true );
+ }
+
+ function updateWindowSize( that, force ) {
+ if ( !that.view )
+ that.view = {};
+
+ var view = that.view;
+
+ if ( !force && view && view.date > new Date() - CACHE_TIME ) {
+ that.debug.log( 'win.size: get from cache' ); // %REMOVE_LINE%
+ return;
+ }
+
+ that.debug.log( 'win.size: capturing' ); // %REMOVE_LINE%
+
+ var win = that.win,
+ scroll = win.getScrollPosition(),
+ paneSize = win.getViewPaneSize();
+
+ extend( that.view, {
+ scroll: {
+ x: scroll.x,
+ y: scroll.y,
+ width: that.doc.$.documentElement.scrollWidth - paneSize.width,
+ height: that.doc.$.documentElement.scrollHeight - paneSize.height
+ },
+ pane: {
+ width: paneSize.width,
+ height: paneSize.height,
+ bottom: paneSize.height + scroll.y
+ },
+ date: +new Date()
+ }, true );
+ }
+
+ // This method searches document vertically using given
+ // select criterion until stop criterion is fulfilled.
+ function verticalSearch( that, stopCondition, selectCriterion, startElement ) {
+ var upper = startElement,
+ lower = startElement,
+ mouseStep = 0,
+ upperFound = false,
+ lowerFound = false,
+ viewPaneHeight = that.view.pane.height,
+ mouse = that.mouse;
+
+ while ( mouse.y + mouseStep < viewPaneHeight && mouse.y - mouseStep > 0 ) {
+ if ( !upperFound )
+ upperFound = stopCondition( upper, startElement );
+
+ if ( !lowerFound )
+ lowerFound = stopCondition( lower, startElement );
+
+ // Still not found...
+ if ( !upperFound && mouse.y - mouseStep > 0 )
+ upper = selectCriterion( that, { x: mouse.x, y: mouse.y - mouseStep } );
+
+ if ( !lowerFound && mouse.y + mouseStep < viewPaneHeight )
+ lower = selectCriterion( that, { x: mouse.x, y: mouse.y + mouseStep } );
+
+ if ( upperFound && lowerFound )
+ break;
+
+ // Instead of ++ to reduce the number of invocations by half.
+ // It's trades off accuracy in some edge cases for improved performance.
+ mouseStep += 2;
+ }
+
+ return new boxTrigger( [ upper, lower, null, null ] );
+ }
+
+})();
+
+/**
+ * Sets the default vertical distance between element edge and mouse pointer that
+ * causes the box to appear. The distance is expressed in pixels (px).
+ *
+ * // Changes the offset to 15px.
+ * CKEDITOR.config.magicline_triggerOffset = 15;
+ *
+ * @cfg {Number} [magicline_triggerOffset=30]
+ * @member CKEDITOR.config
+ * @see CKEDITOR.config#magicline_holdDistance
+ */
+
+/**
+ * Defines the distance between mouse pointer and the box, within
+ * which the box stays revealed and no other focus space is offered to be accessed.
+ * The value is relative to {@link #magicline_triggerOffset}.
+ *
+ * // Increases the distance to 80% of CKEDITOR.config.magicline_triggerOffset.
+ * CKEDITOR.config.magicline_holdDistance = .8;
+ *
+ * @cfg {Number} [magicline_holdDistance=0.5]
+ * @member CKEDITOR.config
+ * @see CKEDITOR.config#magicline_triggerOffset
+ */
+
+/**
+ * Defines default keystroke that access the closest unreachable focus space **before**
+ * the caret (start of the selection). If there's no any focus space, selection remains.
+ *
+ * // Changes keystroke to CTRL + ,
+ * CKEDITOR.config.magicline_keystrokePrevious = CKEDITOR.CTRL + 188;
+ *
+ * @cfg {Number} [magicline_keystrokePrevious=CKEDITOR.CTRL + CKEDITOR.ALT + 219 (CTRL + ALT + [)]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.magicline_keystrokePrevious = CKEDITOR.CTRL + CKEDITOR.ALT + 219; // CTRL + ALT + [
+
+/**
+ * Defines default keystroke that access the closest unreachable focus space **after**
+ * the caret (start of the selection). If there's no any focus space, selection remains.
+ *
+ * // Changes keystroke to CTRL + .
+ * CKEDITOR.config.magicline_keystrokeNext = CKEDITOR.CTRL + 190;
+ *
+ * @cfg {Number} [magicline_keystrokeNext=CKEDITOR.CTRL + CKEDITOR.ALT + 221 (CTRL + ALT + ])]
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.magicline_keystrokeNext = CKEDITOR.CTRL + CKEDITOR.ALT + 221; // CTRL + ALT + ]
+
+/**
+ * Defines box color. The color may be adjusted to enhance readability.
+ *
+ * // Changes color to blue.
+ * CKEDITOR.config.magicline_color = '#0000FF';
+ *
+ * @cfg {String} [magicline_color='#FF0000']
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Activates plugin mode that considers all focus spaces between
+ * {@link CKEDITOR.dtd#$block} elements as accessible by the box.
+ *
+ * // Enables "put everywhere" mode.
+ * CKEDITOR.config.magicline_putEverywhere = true;
+ *
+ * @cfg {Boolean} [magicline_putEverywhere=false]
+ * @member CKEDITOR.config
+ */
diff --git a/devel/third-party/ckeditor/plugins/magicline/samples/magicline.html b/devel/third-party/ckeditor/plugins/magicline/samples/magicline.html
new file mode 100644
index 0000000..77e9093
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/magicline/samples/magicline.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>Using Magicline plugin — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <script src="../../../ckeditor.js"></script>
+ <link rel="stylesheet" href="../../../samples/sample.css">
+ <meta name="ckeditor-sample-name" content="Magicline plugin">
+ <meta name="ckeditor-sample-group" content="Plugins">
+ <meta name="ckeditor-sample-description" content="Using the Magicline plugin to access difficult focus spaces.">
+ <meta name="ckeditor-sample-isnew" content="1">
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » Using Magicline plugin
+ </h1>
+ <div class="description">
+ <p>
+ This sample shows the advantages of <strong>Magicline</strong> plugin
+ which is to enhance the editing process. Thanks to this plugin,
+ a number of difficult focus spaces which are inaccessible due to
+ browser issues can now be focused.
+ </p>
+ <p>
+ <strong>Magicline</strong> plugin shows a red line with a handler
+ which, when clicked, inserts a paragraph and allows typing. To see this,
+ focus an editor and move your mouse above the focus space you want
+ to access. The plugin is enabled by default so no additional
+ configuration is necessary.
+ </p>
+ </div>
+ <div>
+ <label for="editor1">
+ Editor 1:
+ </label>
+ <div class="description">
+ <p>
+ This editor uses a default <strong>Magicline</strong> setup.
+ </p>
+ </div>
+ <textarea cols="80" id="editor1" name="editor1" rows="10">
+ <table border="1" cellpadding="1" cellspacing="1" style="width: 100%; ">
+ <tbody>
+ <tr>
+ <td>This table</td>
+ <td>is the</td>
+ <td>very first</td>
+ <td>element of the document.</td>
+ </tr>
+ <tr>
+ <td>We are still</td>
+ <td>able to acces</td>
+ <td>the space before it.</td>
+ <td>
+ <table border="1" cellpadding="1" cellspacing="1" style="width: 100%; ">
+ <tbody>
+ <tr>
+ <td>This table is inside of a cell of another table.</td>
+ </tr>
+ <tr>
+ <td>We can type either before or after it though.</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p>
+
+ <hr />
+ <hr />
+ <ol>
+ <li>This numbered list...</li>
+ <li>...is a neighbour of a horizontal line...</li>
+ <li>...and another list.</li>
+ </ol>
+
+ <ul>
+ <li>We can type between the lists...</li>
+ <li>...thanks to <strong>Magicline</strong>.</li>
+ </ul>
+
+ <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>
+
+ <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>
+
+ <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>
+
+ <div style="border: 2px dashed green; background: #ddd; text-align: center;">
+ <p>This text is wrapped in a <tt>DIV</tt> element. We can type after this element though.</p>
+ </div>
+ </textarea>
+ <script>
+
+ // This call can be placed at any point after the
+ // <textarea>, or inside a <head><script> in a
+ // window.onload event handler.
+
+ CKEDITOR.replace( 'editor1', {
+ extraPlugins: 'magicline' // Ensure that magicline plugin, which is required for this sample, is loaded.
+ } );
+
+ </script>
+ </div>
+ <br>
+ <div>
+ <label for="editor2">
+ Editor 2:
+ </label>
+ <div class="description">
+ <p>
+ This editor is using a blue line.
+ </p>
+<pre class="samples">
+CKEDITOR.replace( 'editor2', {
+ magicline_color: 'blue'
+});</pre>
+ </div>
+ <textarea cols="80" id="editor2" name="editor2" rows="10">
+ <table border="1" cellpadding="1" cellspacing="1" style="width: 100%; ">
+ <tbody>
+ <tr>
+ <td>This table</td>
+ <td>is the</td>
+ <td>very first</td>
+ <td>element of the document.</td>
+ </tr>
+ <tr>
+ <td>We are still</td>
+ <td>able to acces</td>
+ <td>the space before it.</td>
+ <td>
+ <table border="1" cellpadding="1" cellspacing="1" style="width: 100%; ">
+ <tbody>
+ <tr>
+ <td>This table is inside of a cell of another table.</td>
+ </tr>
+ <tr>
+ <td>We can type either before or after it though.</td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Two succesive horizontal lines (<tt>HR</tt> tags). We can access the space in between:</p>
+
+ <hr />
+ <hr />
+ <ol>
+ <li>This numbered list...</li>
+ <li>...is a neighbour of a horizontal line...</li>
+ <li>...and another list.</li>
+ </ol>
+
+ <ul>
+ <li>We can type between the lists...</li>
+ <li>...thanks to <strong>Magicline</strong>.</li>
+ </ul>
+
+ <p>Lorem ipsum dolor sit amet dui. Morbi vel turpis. Nullam et leo. Etiam rutrum, urna tellus dui vel tincidunt mattis egestas, justo fringilla vel, massa. Phasellus.</p>
+
+ <p>Quisque iaculis, dui lectus varius vitae, tortor. Proin lacus. Pellentesque ac lacus. Aenean nonummy commodo nec, pede. Etiam blandit risus elit.</p>
+
+ <p>Ut pretium. Vestibulum rutrum in, adipiscing elit. Sed in quam in purus sem vitae pede. Pellentesque bibendum, urna sem vel risus. Vivamus posuere metus. Aliquam gravida iaculis nisl. Nam enim. Aliquam erat ac lacus tellus ac felis.</p>
+
+ <div style="border: 2px dashed green; background: #ddd; text-align: center;">
+ <p>This text is wrapped in a <tt>DIV</tt> element. We can type after this element though.</p>
+ </div>
+ </textarea>
+ <script>
+
+ // This call can be placed at any point after the
+ // <textarea>, or inside a <head><script> in a
+ // window.onload event handler.
+
+ CKEDITOR.replace( 'editor2', {
+ extraPlugins: 'magicline', // Ensure that magicline plugin, which is required for this sample, is loaded.
+ magicline_color: 'blue' // Blue line
+ });
+
+ </script>
+ </div>
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/maximize/icons/maximize.png b/devel/third-party/ckeditor/plugins/maximize/icons/maximize.png
new file mode 100644
index 0000000..a5bee88
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/maximize/icons/maximize.png differ
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/af.js b/devel/third-party/ckeditor/plugins/maximize/lang/af.js
new file mode 100644
index 0000000..7aa6299
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'af', {
+ maximize: 'Maksimaliseer',
+ minimize: 'Minimaliseer'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ar.js b/devel/third-party/ckeditor/plugins/maximize/lang/ar.js
new file mode 100644
index 0000000..9b9cd6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ar', {
+ maximize: 'ØªÙØ¨Ùر',
+ minimize: 'ØªØµØºÙØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/bg.js b/devel/third-party/ckeditor/plugins/maximize/lang/bg.js
new file mode 100644
index 0000000..a2f22f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'bg', {
+ maximize: 'ÐакÑимизиÑане',
+ minimize: 'ÐинимизиÑане'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/bn.js b/devel/third-party/ckeditor/plugins/maximize/lang/bn.js
new file mode 100644
index 0000000..ec3a301
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'bn', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/bs.js b/devel/third-party/ckeditor/plugins/maximize/lang/bs.js
new file mode 100644
index 0000000..63ada9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'bs', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ca.js b/devel/third-party/ckeditor/plugins/maximize/lang/ca.js
new file mode 100644
index 0000000..ec3af03
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ca', {
+ maximize: 'Maximitza',
+ minimize: 'Minimitza'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/cs.js b/devel/third-party/ckeditor/plugins/maximize/lang/cs.js
new file mode 100644
index 0000000..fcd8237
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'cs', {
+ maximize: 'Maximalizovat',
+ minimize: 'Minimalizovat'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/cy.js b/devel/third-party/ckeditor/plugins/maximize/lang/cy.js
new file mode 100644
index 0000000..c874be9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'cy', {
+ maximize: 'Mwyhau',
+ minimize: 'Lleihau'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/da.js b/devel/third-party/ckeditor/plugins/maximize/lang/da.js
new file mode 100644
index 0000000..c8015f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'da', {
+ maximize: 'Maksimér',
+ minimize: 'Minimér'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/de.js b/devel/third-party/ckeditor/plugins/maximize/lang/de.js
new file mode 100644
index 0000000..3b324d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'de', {
+ maximize: 'Maximieren',
+ minimize: 'Minimieren'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/el.js b/devel/third-party/ckeditor/plugins/maximize/lang/el.js
new file mode 100644
index 0000000..17c66c9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'el', {
+ maximize: 'ÎεγιÏÏοÏοίηÏη',
+ minimize: 'ÎλαÏιÏÏοÏοίηÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/en-au.js b/devel/third-party/ckeditor/plugins/maximize/lang/en-au.js
new file mode 100644
index 0000000..61a3f73
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'en-au', {
+ maximize: 'Maximize',
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/en-ca.js b/devel/third-party/ckeditor/plugins/maximize/lang/en-ca.js
new file mode 100644
index 0000000..6ce8ef9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'en-ca', {
+ maximize: 'Maximize',
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/en-gb.js b/devel/third-party/ckeditor/plugins/maximize/lang/en-gb.js
new file mode 100644
index 0000000..df578f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'en-gb', {
+ maximize: 'Maximise',
+ minimize: 'Minimise'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/en.js b/devel/third-party/ckeditor/plugins/maximize/lang/en.js
new file mode 100644
index 0000000..f41c61a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'en', {
+ maximize: 'Maximize',
+ minimize: 'Minimize'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/eo.js b/devel/third-party/ckeditor/plugins/maximize/lang/eo.js
new file mode 100644
index 0000000..f547568
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'eo', {
+ maximize: 'Pligrandigi',
+ minimize: 'Malgrandigi'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/es.js b/devel/third-party/ckeditor/plugins/maximize/lang/es.js
new file mode 100644
index 0000000..a542fd3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'es', {
+ maximize: 'Maximizar',
+ minimize: 'Minimizar'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/et.js b/devel/third-party/ckeditor/plugins/maximize/lang/et.js
new file mode 100644
index 0000000..e564658
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'et', {
+ maximize: 'Maksimeerimine',
+ minimize: 'Minimeerimine'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/eu.js b/devel/third-party/ckeditor/plugins/maximize/lang/eu.js
new file mode 100644
index 0000000..d509ea3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'eu', {
+ maximize: 'Maximizatu',
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/fa.js b/devel/third-party/ckeditor/plugins/maximize/lang/fa.js
new file mode 100644
index 0000000..a460640
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'fa', {
+ maximize: 'ØØ¯Ø§Ú©Ø«Ø± کردÙ',
+ minimize: 'ØØ¯Ø§Ù٠کردÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/fi.js b/devel/third-party/ckeditor/plugins/maximize/lang/fi.js
new file mode 100644
index 0000000..f848989
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'fi', {
+ maximize: 'Suurenna',
+ minimize: 'Pienennä'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/fo.js b/devel/third-party/ckeditor/plugins/maximize/lang/fo.js
new file mode 100644
index 0000000..c54bac5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'fo', {
+ maximize: 'Maksimera',
+ minimize: 'Minimera'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/maximize/lang/fr-ca.js
new file mode 100644
index 0000000..1084727
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'fr-ca', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/fr.js b/devel/third-party/ckeditor/plugins/maximize/lang/fr.js
new file mode 100644
index 0000000..d534533
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'fr', {
+ maximize: 'Agrandir',
+ minimize: 'Minimiser'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/gl.js b/devel/third-party/ckeditor/plugins/maximize/lang/gl.js
new file mode 100644
index 0000000..a1a907c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'gl', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/gu.js b/devel/third-party/ckeditor/plugins/maximize/lang/gu.js
new file mode 100644
index 0000000..8b9494c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'gu', {
+ maximize: 'મà«àªà«àª àªàª°àªµà«àª',
+ minimize: 'નાનà«àª àªàª°àªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/he.js b/devel/third-party/ckeditor/plugins/maximize/lang/he.js
new file mode 100644
index 0000000..ede41b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'he', {
+ maximize: '××××× ××קס××××',
+ minimize: '××§×× × ×××× ××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/hi.js b/devel/third-party/ckeditor/plugins/maximize/lang/hi.js
new file mode 100644
index 0000000..9410d47
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'hi', {
+ maximize: 'मà¥à¤à¥à¤¸à¤¿à¤®à¤¾à¤à¤à¤¼',
+ minimize: 'मिनिमाà¤à¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/hr.js b/devel/third-party/ckeditor/plugins/maximize/lang/hr.js
new file mode 100644
index 0000000..d31c292
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'hr', {
+ maximize: 'PoveÄaj',
+ minimize: 'Smanji'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/hu.js b/devel/third-party/ckeditor/plugins/maximize/lang/hu.js
new file mode 100644
index 0000000..d882356
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'hu', {
+ maximize: 'Teljes méret',
+ minimize: 'Kis méret'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/is.js b/devel/third-party/ckeditor/plugins/maximize/lang/is.js
new file mode 100644
index 0000000..6524119
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'is', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/it.js b/devel/third-party/ckeditor/plugins/maximize/lang/it.js
new file mode 100644
index 0000000..cda8b86
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'it', {
+ maximize: 'Massimizza',
+ minimize: 'Minimizza'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ja.js b/devel/third-party/ckeditor/plugins/maximize/lang/ja.js
new file mode 100644
index 0000000..a20f268
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ja', {
+ maximize: 'æå¤§å',
+ minimize: 'æå°å'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ka.js b/devel/third-party/ckeditor/plugins/maximize/lang/ka.js
new file mode 100644
index 0000000..4e89e69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ka', {
+ maximize: 'áááááááá',
+ minimize: 'ááááá¢áá ááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/km.js b/devel/third-party/ckeditor/plugins/maximize/lang/km.js
new file mode 100644
index 0000000..49b9323
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'km', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ko.js b/devel/third-party/ckeditor/plugins/maximize/lang/ko.js
new file mode 100644
index 0000000..3dead8d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ko', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ku.js b/devel/third-party/ckeditor/plugins/maximize/lang/ku.js
new file mode 100644
index 0000000..2ff73a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ku', {
+ maximize: 'ئÛÙÙ¾ÙÚÛ Ú¯ÛÙØ±ÛÛÛ',
+ minimize: 'ئÛÙÙ¾ÛÚÛ Ø¨ÚÙÙÚ©Û'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/lt.js b/devel/third-party/ckeditor/plugins/maximize/lang/lt.js
new file mode 100644
index 0000000..b5ccdda
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'lt', {
+ maximize: 'Išdidinti',
+ minimize: 'Sumažinti'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/lv.js b/devel/third-party/ckeditor/plugins/maximize/lang/lv.js
new file mode 100644
index 0000000..c786553
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'lv', {
+ maximize: 'MaksimizÄt',
+ minimize: 'MinimizÄt'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/mk.js b/devel/third-party/ckeditor/plugins/maximize/lang/mk.js
new file mode 100644
index 0000000..04b02b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'mk', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/mn.js b/devel/third-party/ckeditor/plugins/maximize/lang/mn.js
new file mode 100644
index 0000000..c55b4b3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'mn', {
+ maximize: 'ÐÑлгÑÑ Ð´Ò¯Ò¯ÑгÑÑ
',
+ minimize: 'ЦонÑ
Ñг багÑгаж Ñ
аÑÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ms.js b/devel/third-party/ckeditor/plugins/maximize/lang/ms.js
new file mode 100644
index 0000000..f558336
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ms', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/nb.js b/devel/third-party/ckeditor/plugins/maximize/lang/nb.js
new file mode 100644
index 0000000..1cf9186
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'nb', {
+ maximize: 'Maksimer',
+ minimize: 'Minimer'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/nl.js b/devel/third-party/ckeditor/plugins/maximize/lang/nl.js
new file mode 100644
index 0000000..abd9a66
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'nl', {
+ maximize: 'Maximaliseren',
+ minimize: 'Minimaliseren'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/no.js b/devel/third-party/ckeditor/plugins/maximize/lang/no.js
new file mode 100644
index 0000000..27b5427
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'no', {
+ maximize: 'Maksimer',
+ minimize: 'Minimer'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/pl.js b/devel/third-party/ckeditor/plugins/maximize/lang/pl.js
new file mode 100644
index 0000000..c0a0f48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'pl', {
+ maximize: 'Maksymalizuj',
+ minimize: 'Minimalizuj'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/pt-br.js b/devel/third-party/ckeditor/plugins/maximize/lang/pt-br.js
new file mode 100644
index 0000000..9f28f19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'pt-br', {
+ maximize: 'Maximizar',
+ minimize: 'Minimize'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/pt.js b/devel/third-party/ckeditor/plugins/maximize/lang/pt.js
new file mode 100644
index 0000000..d3cf174
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'pt', {
+ maximize: 'Maximizar',
+ minimize: 'Minimizar'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ro.js b/devel/third-party/ckeditor/plugins/maximize/lang/ro.js
new file mode 100644
index 0000000..f4d3a80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ro', {
+ maximize: 'MÄreÈte',
+ minimize: 'MicÈoreazÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ru.js b/devel/third-party/ckeditor/plugins/maximize/lang/ru.js
new file mode 100644
index 0000000..4421460
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ru', {
+ maximize: 'РазвеÑнÑÑÑ',
+ minimize: 'СвеÑнÑÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/sk.js b/devel/third-party/ckeditor/plugins/maximize/lang/sk.js
new file mode 100644
index 0000000..d525f22
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'sk', {
+ maximize: 'Maximalizovať',
+ minimize: 'Minimalizovať'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/sl.js b/devel/third-party/ckeditor/plugins/maximize/lang/sl.js
new file mode 100644
index 0000000..667e980
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'sl', {
+ maximize: 'Maksimiraj',
+ minimize: 'Minimiraj'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/maximize/lang/sr-latn.js
new file mode 100644
index 0000000..ecc882a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'sr-latn', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/sr.js b/devel/third-party/ckeditor/plugins/maximize/lang/sr.js
new file mode 100644
index 0000000..eb13e2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'sr', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/sv.js b/devel/third-party/ckeditor/plugins/maximize/lang/sv.js
new file mode 100644
index 0000000..85d648a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'sv', {
+ maximize: 'Maximera',
+ minimize: 'Minimera'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/th.js b/devel/third-party/ckeditor/plugins/maximize/lang/th.js
new file mode 100644
index 0000000..8d00306
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'th', {
+ maximize: 'Maximize', // MISSING
+ minimize: 'Minimize' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/tr.js b/devel/third-party/ckeditor/plugins/maximize/lang/tr.js
new file mode 100644
index 0000000..400f83a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'tr', {
+ maximize: 'Büyült',
+ minimize: 'Küçült'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/ug.js b/devel/third-party/ckeditor/plugins/maximize/lang/ug.js
new file mode 100644
index 0000000..27c3dc1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'ug', {
+ maximize: 'ÚÙÚØ§Ùت',
+ minimize: 'ÙÙÚÙÙÙÛØª'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/uk.js b/devel/third-party/ckeditor/plugins/maximize/lang/uk.js
new file mode 100644
index 0000000..4af4fbd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'uk', {
+ maximize: 'ÐакÑимÑзÑваÑи',
+ minimize: 'ÐÑнÑмÑзÑваÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/vi.js b/devel/third-party/ckeditor/plugins/maximize/lang/vi.js
new file mode 100644
index 0000000..1cc1229
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'vi', {
+ maximize: 'Phóng to tá»i Äa',
+ minimize: 'Thu nhá»'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/maximize/lang/zh-cn.js
new file mode 100644
index 0000000..5c1c0b6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'zh-cn', {
+ maximize: 'å
¨å±',
+ minimize: 'æå°å'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/lang/zh.js b/devel/third-party/ckeditor/plugins/maximize/lang/zh.js
new file mode 100644
index 0000000..24c8dda
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/maximize/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'maximize', 'zh', {
+ maximize: 'æå¤§å',
+ minimize: 'æå°å'
+});
diff --git a/devel/third-party/ckeditor/plugins/maximize/plugin.js b/devel/third-party/ckeditor/plugins/maximize/plugin.js
index 9f18043..e28e46e 100644
--- a/devel/third-party/ckeditor/plugins/maximize/plugin.js
+++ b/devel/third-party/ckeditor/plugins/maximize/plugin.js
@@ -1,23 +1,19 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- function protectFormStyles( formElement )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ function protectFormStyles( formElement ) {
if ( !formElement || formElement.type != CKEDITOR.NODE_ELEMENT || formElement.getName() != 'form' )
return [];
- var hijackRecord = [];
- var hijackNames = [ 'style', 'className' ];
- for ( var i = 0 ; i < hijackNames.length ; i++ )
- {
- var name = hijackNames[i];
+ var hijackRecord = [],
+ hijackNames = [ 'style', 'className' ];
+ for ( var i = 0; i < hijackNames.length; i++ ) {
+ var name = hijackNames[ i ];
var $node = formElement.$.elements.namedItem( name );
- if ( $node )
- {
+ if ( $node ) {
var hijackNode = new CKEDITOR.dom.element( $node );
hijackRecord.push( [ hijackNode, hijackNode.nextSibling ] );
hijackNode.remove();
@@ -27,17 +23,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return hijackRecord;
}
- function restoreFormStyles( formElement, hijackRecord )
- {
+ function restoreFormStyles( formElement, hijackRecord ) {
if ( !formElement || formElement.type != CKEDITOR.NODE_ELEMENT || formElement.getName() != 'form' )
return;
- if ( hijackRecord.length > 0 )
- {
- for ( var i = hijackRecord.length - 1 ; i >= 0 ; i-- )
- {
- var node = hijackRecord[i][0];
- var sibling = hijackRecord[i][1];
+ if ( hijackRecord.length > 0 ) {
+ for ( var i = hijackRecord.length - 1; i >= 0; i-- ) {
+ var node = hijackRecord[ i ][ 0 ];
+ var sibling = hijackRecord[ i ][ 1 ];
if ( sibling )
node.insertBefore( sibling );
else
@@ -46,29 +39,26 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
- function saveStyles( element, isInsideEditor )
- {
+ function saveStyles( element, isInsideEditor ) {
var data = protectFormStyles( element );
var retval = {};
var $element = element.$;
- if ( !isInsideEditor )
- {
+ if ( !isInsideEditor ) {
retval[ 'class' ] = $element.className || '';
$element.className = '';
}
retval.inline = $element.style.cssText || '';
- if ( !isInsideEditor ) // Reset any external styles that might interfere. (#2474)
- $element.style.cssText = 'position: static; overflow: visible';
+ if ( !isInsideEditor ) // Reset any external styles that might interfere. (#2474)
+ $element.style.cssText = 'position: static; overflow: visible';
restoreFormStyles( data );
return retval;
}
- function restoreStyles( element, savedStyles )
- {
+ function restoreStyles( element, savedStyles ) {
var data = protectFormStyles( element );
var $element = element.$;
if ( 'class' in savedStyles )
@@ -78,15 +68,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
restoreFormStyles( data );
}
- function refreshCursor( editor )
- {
+ function refreshCursor( editor ) {
// Refresh all editor instances on the page (#5724).
var all = CKEDITOR.instances;
- for ( var i in all )
- {
+ for ( var i in all ) {
var one = all[ i ];
- if ( one.mode == 'wysiwyg' )
- {
+ if ( one.mode == 'wysiwyg' && !one.readOnly ) {
var body = one.document.getBody();
// Refresh 'contentEditable' otherwise
// DOM lifting breaks design mode. (#5560)
@@ -95,249 +82,220 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
- if ( editor.focusManager.hasFocus )
- {
+ if ( editor.editable().hasFocus ) {
editor.toolbox.focus();
editor.focus();
}
}
- /**
- * Adding an iframe shim to this element, OR removing the existing one if already applied.
- * Note: This will only affect IE version below 7.
- */
- function createIframeShim( element )
- {
- if ( !CKEDITOR.env.ie || CKEDITOR.env.version > 6 )
- return null;
-
- var shim = CKEDITOR.dom.element.createFromHtml( '<iframe frameborder="0" tabindex="-1"' +
- ' src="javascript:' +
- 'void((function(){' +
- 'document.open();' +
- ( CKEDITOR.env.isCustomDomain() ? 'document.domain=\'' + this.getDocument().$.domain + '\';' : '' ) +
- 'document.close();' +
- '})())"' +
- ' style="display:block;position:absolute;z-index:-1;' +
- 'progid:DXImageTransform.Microsoft.Alpha(opacity=0);' +
- '"></iframe>' );
- return element.append( shim, true );
- }
+ CKEDITOR.plugins.add( 'maximize', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'maximize', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ // Maximize plugin isn't available in inline mode yet.
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
+ return;
- CKEDITOR.plugins.add( 'maximize',
- {
- init : function( editor )
- {
var lang = editor.lang;
- var mainDocument = CKEDITOR.document;
- var mainWindow = mainDocument.getWindow();
+ var mainDocument = CKEDITOR.document,
+ mainWindow = mainDocument.getWindow();
// Saved selection and scroll position for the editing area.
- var savedSelection;
- var savedScroll;
+ var savedSelection, savedScroll;
// Saved scroll position for the outer window.
var outerScroll;
- var shim;
-
// Saved resize handler function.
- function resizeHandler()
- {
+ function resizeHandler() {
var viewPaneSize = mainWindow.getViewPaneSize();
- shim && shim.setStyles( { width : viewPaneSize.width + 'px', height : viewPaneSize.height + 'px' } );
editor.resize( viewPaneSize.width, viewPaneSize.height, null, true );
}
// Retain state after mode switches.
var savedState = CKEDITOR.TRISTATE_OFF;
- editor.addCommand( 'maximize',
- {
- modes : { wysiwyg : 1, source : 1 },
- editorFocus : false,
- exec : function()
+ editor.addCommand( 'maximize', {
+ // Disabled on iOS (#8307).
+ modes: { wysiwyg: !CKEDITOR.env.iOS, source: !CKEDITOR.env.iOS },
+ readOnly: 1,
+ editorFocus: false,
+ exec: function() {
+ var container = editor.container.getChild( 1 );
+ var contents = editor.ui.space( 'contents' );
+
+ // Save current selection and scroll position in editing area.
+ if ( editor.mode == 'wysiwyg' ) {
+ var selection = editor.getSelection();
+ savedSelection = selection && selection.getRanges();
+ savedScroll = mainWindow.getScrollPosition();
+ } else {
+ var $textarea = editor.editable().$;
+ savedSelection = !CKEDITOR.env.ie && [ $textarea.selectionStart, $textarea.selectionEnd ];
+ savedScroll = [ $textarea.scrollLeft, $textarea.scrollTop ];
+ }
+
+ if ( this.state == CKEDITOR.TRISTATE_OFF ) // Go fullscreen if the state is off.
{
- var container = editor.container.getChild( 1 );
- var contents = editor.getThemeSpace( 'contents' );
-
- // Save current selection and scroll position in editing area.
- if ( editor.mode == 'wysiwyg' )
- {
- var selection = editor.getSelection();
- savedSelection = selection && selection.getRanges();
- savedScroll = mainWindow.getScrollPosition();
+ // Add event handler for resizing.
+ mainWindow.on( 'resize', resizeHandler );
+
+ // Save the scroll bar position.
+ outerScroll = mainWindow.getScrollPosition();
+
+ // Save and reset the styles for the entire node tree.
+ var currentNode = editor.container;
+ while ( ( currentNode = currentNode.getParent() ) ) {
+ currentNode.setCustomData( 'maximize_saved_styles', saveStyles( currentNode ) );
+ // Show under floatpanels (-1) and context menu (-2).
+ currentNode.setStyle( 'z-index', editor.config.baseFloatZIndex - 5 );
}
- else
- {
- var $textarea = editor.textarea.$;
- savedSelection = !CKEDITOR.env.ie && [ $textarea.selectionStart, $textarea.selectionEnd ];
- savedScroll = [ $textarea.scrollLeft, $textarea.scrollTop ];
+ contents.setCustomData( 'maximize_saved_styles', saveStyles( contents, true ) );
+ container.setCustomData( 'maximize_saved_styles', saveStyles( container, true ) );
+
+ // Hide scroll bars.
+ var styles = {
+ overflow: CKEDITOR.env.webkit ? '' : 'hidden', // #6896
+ width: 0,
+ height: 0
+ };
+
+ mainDocument.getDocumentElement().setStyles( styles );
+ !CKEDITOR.env.gecko && mainDocument.getDocumentElement().setStyle( 'position', 'fixed' );
+ !( CKEDITOR.env.gecko && CKEDITOR.env.quirks ) && mainDocument.getBody().setStyles( styles );
+
+ // Scroll to the top left (IE needs some time for it - #4923).
+ CKEDITOR.env.ie ? setTimeout( function() {
+ mainWindow.$.scrollTo( 0, 0 );
+ }, 0 ) : mainWindow.$.scrollTo( 0, 0 );
+
+ // Resize and move to top left.
+ // Special treatment for FF Quirks (#7284)
+ container.setStyle( 'position', CKEDITOR.env.gecko && CKEDITOR.env.quirks ? 'fixed' : 'absolute' );
+ container.$.offsetLeft; // SAFARI BUG: See #2066.
+ container.setStyles({
+ // Show under floatpanels (-1) and context menu (-2).
+ 'z-index': editor.config.baseFloatZIndex - 5,
+ left: '0px',
+ top: '0px'
+ });
+
+ // Add cke_maximized class before resize handle since that will change things sizes (#5580)
+ container.addClass( 'cke_maximized' );
+
+ resizeHandler();
+
+ // Still not top left? Fix it. (Bug #174)
+ var offset = container.getDocumentPosition();
+ container.setStyles({
+ left: ( -1 * offset.x ) + 'px',
+ top: ( -1 * offset.y ) + 'px'
+ });
+
+ // Fixing positioning editor chrome in Firefox break design mode. (#5149)
+ CKEDITOR.env.gecko && refreshCursor( editor );
+
+ } else if ( this.state == CKEDITOR.TRISTATE_ON ) // Restore from fullscreen if the state is on.
+ {
+ // Remove event handler for resizing.
+ mainWindow.removeListener( 'resize', resizeHandler );
+
+ // Restore CSS styles for the entire node tree.
+ var editorElements = [ contents, container ];
+ for ( var i = 0; i < editorElements.length; i++ ) {
+ restoreStyles( editorElements[ i ], editorElements[ i ].getCustomData( 'maximize_saved_styles' ) );
+ editorElements[ i ].removeCustomData( 'maximize_saved_styles' );
}
- if ( this.state == CKEDITOR.TRISTATE_OFF ) // Go fullscreen if the state is off.
- {
- // Add event handler for resizing.
- mainWindow.on( 'resize', resizeHandler );
-
- // Save the scroll bar position.
- outerScroll = mainWindow.getScrollPosition();
-
- // Save and reset the styles for the entire node tree.
- var currentNode = editor.container;
- while ( ( currentNode = currentNode.getParent() ) )
- {
- currentNode.setCustomData( 'maximize_saved_styles', saveStyles( currentNode ) );
- currentNode.setStyle( 'z-index', editor.config.baseFloatZIndex - 1 );
- }
- contents.setCustomData( 'maximize_saved_styles', saveStyles( contents, true ) );
- container.setCustomData( 'maximize_saved_styles', saveStyles( container, true ) );
-
- // Hide scroll bars.
- if ( CKEDITOR.env.ie )
- {
- mainDocument.$.documentElement.style.overflow =
- mainDocument.getBody().$.style.overflow = 'hidden';
- }
- else
- {
- mainDocument.getBody().setStyles(
- {
- overflow : 'hidden',
- width : '0px',
- height : '0px'
- } );
- }
-
- // Scroll to the top left (IE needs some time for it - #4923).
- CKEDITOR.env.ie ?
- setTimeout( function() { mainWindow.$.scrollTo( 0, 0 ); }, 0 ) :
- mainWindow.$.scrollTo( 0, 0 );
-
- // Resize and move to top left.
- var viewPaneSize = mainWindow.getViewPaneSize();
- container.setStyle( 'position', 'absolute' );
- container.$.offsetLeft; // SAFARI BUG: See #2066.
- container.setStyles(
- {
- 'z-index' : editor.config.baseFloatZIndex - 1,
- left : '0px',
- top : '0px'
- } );
-
- shim = createIframeShim( container ); // IE6 select element penetration when maximized. (#4459)
-
- // Add cke_maximized class before resize handle since that will change things sizes (#5580)
- container.addClass( 'cke_maximized' );
-
- resizeHandler();
-
- // Still not top left? Fix it. (Bug #174)
- var offset = container.getDocumentPosition();
- container.setStyles(
- {
- left : ( -1 * offset.x ) + 'px',
- top : ( -1 * offset.y ) + 'px'
- } );
+ currentNode = editor.container;
+ while ( ( currentNode = currentNode.getParent() ) ) {
+ restoreStyles( currentNode, currentNode.getCustomData( 'maximize_saved_styles' ) );
+ currentNode.removeCustomData( 'maximize_saved_styles' );
+ }
- // Fixing positioning editor chrome in Firefox break design mode. (#5149)
- CKEDITOR.env.gecko && refreshCursor( editor );
+ // Restore the window scroll position.
+ CKEDITOR.env.ie ? setTimeout( function() {
+ mainWindow.$.scrollTo( outerScroll.x, outerScroll.y );
+ }, 0 ) : mainWindow.$.scrollTo( outerScroll.x, outerScroll.y );
+ // Remove cke_maximized class.
+ container.removeClass( 'cke_maximized' );
+
+ // Webkit requires a re-layout on editor chrome. (#6695)
+ if ( CKEDITOR.env.webkit ) {
+ container.setStyle( 'display', 'inline' );
+ setTimeout( function() {
+ container.setStyle( 'display', 'block' );
+ }, 0 );
}
- else if ( this.state == CKEDITOR.TRISTATE_ON ) // Restore from fullscreen if the state is on.
- {
- // Remove event handler for resizing.
- mainWindow.removeListener( 'resize', resizeHandler );
-
- // Restore CSS styles for the entire node tree.
- var editorElements = [ contents, container ];
- for ( var i = 0 ; i < editorElements.length ; i++ )
- {
- restoreStyles( editorElements[i], editorElements[i].getCustomData( 'maximize_saved_styles' ) );
- editorElements[i].removeCustomData( 'maximize_saved_styles' );
- }
-
- currentNode = editor.container;
- while ( ( currentNode = currentNode.getParent() ) )
- {
- restoreStyles( currentNode, currentNode.getCustomData( 'maximize_saved_styles' ) );
- currentNode.removeCustomData( 'maximize_saved_styles' );
- }
-
- // Restore the window scroll position.
- CKEDITOR.env.ie ?
- setTimeout( function() { mainWindow.$.scrollTo( outerScroll.x, outerScroll.y ); }, 0 ) :
- mainWindow.$.scrollTo( outerScroll.x, outerScroll.y );
-
- // Remove cke_maximized class.
- container.removeClass( 'cke_maximized' );
-
- if ( shim )
- {
- shim.remove();
- shim = null;
- }
-
- // Emit a resize event, because this time the size is modified in
- // restoreStyles.
- editor.fire( 'resize' );
- }
- this.toggleState();
+ // Emit a resize event, because this time the size is modified in
+ // restoreStyles.
+ editor.fire( 'resize' );
+ }
+
+ this.toggleState();
- // Toggle button label.
- var button = this.uiItems[ 0 ];
- var label = ( this.state == CKEDITOR.TRISTATE_OFF )
- ? lang.maximize : lang.minimize;
- var buttonNode = editor.element.getDocument().getById( button._.id );
+ // Toggle button label.
+ var button = this.uiItems[ 0 ];
+ // Only try to change the button if it exists (#6166)
+ if ( button ) {
+ var label = ( this.state == CKEDITOR.TRISTATE_OFF ) ? lang.maximize.maximize : lang.maximize.minimize;
+ var buttonNode = CKEDITOR.document.getById( button._.id );
buttonNode.getChild( 1 ).setHtml( label );
buttonNode.setAttribute( 'title', label );
buttonNode.setAttribute( 'href', 'javascript:void("' + label + '");' );
+ }
- // Restore selection and scroll position in editing area.
- if ( editor.mode == 'wysiwyg' )
- {
- if ( savedSelection )
- {
- // Fixing positioning editor chrome in Firefox break design mode. (#5149)
- CKEDITOR.env.gecko && refreshCursor( editor );
-
- editor.getSelection().selectRanges(savedSelection);
- var element = editor.getSelection().getStartElement();
- element && element.scrollIntoView( true );
- }
-
- else
- mainWindow.$.scrollTo( savedScroll.x, savedScroll.y );
- }
- else
- {
- if ( savedSelection )
- {
- $textarea.selectionStart = savedSelection[0];
- $textarea.selectionEnd = savedSelection[1];
- }
- $textarea.scrollLeft = savedScroll[0];
- $textarea.scrollTop = savedScroll[1];
- }
+ // Restore selection and scroll position in editing area.
+ if ( editor.mode == 'wysiwyg' ) {
+ if ( savedSelection ) {
+ // Fixing positioning editor chrome in Firefox break design mode. (#5149)
+ CKEDITOR.env.gecko && refreshCursor( editor );
- savedSelection = savedScroll = null;
- savedState = this.state;
- },
- canUndo : false
- } );
-
- editor.ui.addButton( 'Maximize',
- {
- label : lang.maximize,
- command : 'maximize'
- } );
-
- // Restore the command state after mode change.
- editor.on( 'mode', function()
- {
- editor.getCommand( 'maximize' ).setState( savedState );
- }, null, null, 100 );
+ editor.getSelection().selectRanges( savedSelection );
+ var element = editor.getSelection().getStartElement();
+ element && element.scrollIntoView( true );
+ } else
+ mainWindow.$.scrollTo( savedScroll.x, savedScroll.y );
+ } else {
+ if ( savedSelection ) {
+ $textarea.selectionStart = savedSelection[ 0 ];
+ $textarea.selectionEnd = savedSelection[ 1 ];
+ }
+ $textarea.scrollLeft = savedScroll[ 0 ];
+ $textarea.scrollTop = savedScroll[ 1 ];
+ }
+
+ savedSelection = savedScroll = null;
+ savedState = this.state;
+
+ editor.fire( 'maximize', this.state );
+ },
+ canUndo: false
+ });
+
+ editor.ui.addButton && editor.ui.addButton( 'Maximize', {
+ label: lang.maximize.maximize,
+ command: 'maximize',
+ toolbar: 'tools,10'
+ });
+
+ // Restore the command state after mode change, unless it has been changed to disabled (#6467)
+ editor.on( 'mode', function() {
+ var command = editor.getCommand( 'maximize' );
+ command.setState( command.state == CKEDITOR.TRISTATE_DISABLED ? CKEDITOR.TRISTATE_DISABLED : savedState );
+ }, null, null, 100 );
}
- } );
+ });
})();
+
+/**
+ * Event fired when the maximize command is called.
+ * It also indicates whether an editor is maximized or not.
+ *
+ * @event maximize
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {Number} data Current state of the command. See {@link CKEDITOR#TRISTATE_ON} and {@link CKEDITOR#TRISTATE_OFF}.
+ */
diff --git a/devel/third-party/ckeditor/plugins/menu/plugin.js b/devel/third-party/ckeditor/plugins/menu/plugin.js
index 74fbb4f..e039b6b 100644
--- a/devel/third-party/ckeditor/plugins/menu/plugin.js
+++ b/devel/third-party/ckeditor/plugins/menu/plugin.js
@@ -1,67 +1,154 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'menu',
-{
- beforeInit : function( editor )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'menu', {
+ requires: 'floatpanel',
+
+ beforeInit: function( editor ) {
var groups = editor.config.menu_groups.split( ',' ),
groupsOrder = editor._.menuGroups = {},
menuItems = editor._.menuItems = {};
- for ( var i = 0 ; i < groups.length ; i++ )
+ for ( var i = 0; i < groups.length; i++ )
groupsOrder[ groups[ i ] ] = i + 1;
- editor.addMenuGroup = function( name, order )
- {
- groupsOrder[ name ] = order || 100;
- };
-
- editor.addMenuItem = function( name, definition )
- {
- if ( groupsOrder[ definition.group ] )
- menuItems[ name ] = new CKEDITOR.menuItem( this, name, definition );
- };
-
- editor.addMenuItems = function( definitions )
- {
- for ( var itemName in definitions )
- {
- this.addMenuItem( itemName, definitions[ itemName ] );
- }
- };
-
- editor.getMenuItem = function( name )
- {
- return menuItems[ name ];
- };
- },
-
- requires : [ 'floatpanel' ]
+ /**
+ * Registers an item group to the editor context menu in order to make it
+ * possible to associate it with menu items later.
+ *
+ * @param {String} name Specify a group name.
+ * @param {Number} [order=100] Define the display sequence of this group
+ * inside the menu. A smaller value gets displayed first.
+ * @member CKEDITOR.editor
+ */
+ editor.addMenuGroup = function( name, order ) {
+ groupsOrder[ name ] = order || 100;
+ };
+
+ /**
+ * Adds an item from the specified definition to the editor context menu.
+ *
+ * @method
+ * @param {String} name The menu item name.
+ * @param {Object} definition The menu item definition.
+ * @member CKEDITOR.editor
+ */
+ editor.addMenuItem = function( name, definition ) {
+ if ( groupsOrder[ definition.group ] )
+ menuItems[ name ] = new CKEDITOR.menuItem( this, name, definition );
+ };
+
+ /**
+ * Adds one or more items from the specified definition array to the editor context menu.
+ *
+ * @method
+ * @param {Array} definitions List of definitions for each menu item as if {@link #addMenuItem} is called.
+ * @member CKEDITOR.editor
+ */
+ editor.addMenuItems = function( definitions ) {
+ for ( var itemName in definitions ) {
+ this.addMenuItem( itemName, definitions[ itemName ] );
+ }
+ };
+
+ /**
+ * Retrieves a particular menu item definition from the editor context menu.
+ *
+ * @method
+ * @param {String} name The name of the desired menu item.
+ * @returns {Object}
+ * @member CKEDITOR.editor
+ */
+ editor.getMenuItem = function( name ) {
+ return menuItems[ name ];
+ };
+
+ /**
+ * Removes a particular menu item added before from the editor context menu.
+ *
+ * @since 3.6.1
+ * @method
+ * @param {String} name The name of the desired menu item.
+ * @member CKEDITOR.editor
+ */
+ editor.removeMenuItem = function( name ) {
+ delete menuItems[ name ];
+ };
+ }
});
-(function()
-{
- CKEDITOR.menu = CKEDITOR.tools.createClass(
- {
- $ : function( editor, definition )
- {
+(function() {
+ var menuItemSource = '<span class="cke_menuitem">' +
+ '<a id="{id}"' +
+ ' class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}"' +
+ ' title="{title}"' +
+ ' tabindex="-1"' +
+ '_cke_focus=1' +
+ ' hidefocus="true"' +
+ ' role="menuitem"' +
+ ' aria-haspopup="{hasPopup}"' +
+ ' aria-disabled="{disabled}"' +
+ ' aria-pressed="{pressed}"';
+
+ // Some browsers don't cancel key events in the keydown but in the
+ // keypress.
+ // TODO: Check if really needed for Gecko+Mac.
+ if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
+ menuItemSource += ' onkeypress="return false;"';
+
+ // With Firefox, we need to force the button to redraw, otherwise it
+ // will remain in the focus state.
+ if ( CKEDITOR.env.gecko )
+ menuItemSource += ' onblur="this.style.cssText = this.style.cssText;"';
+
+ // #188
+ menuItemSource += ' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});"' +
+ ' onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" ' +
+ ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) +
+ '="CKEDITOR.tools.callFunction({clickFn},{index}); return false;"' +
+ '>';
+
+ menuItemSource +=
+ '<span class="cke_menubutton_inner">' +
+ '<span class="cke_menubutton_icon">' +
+ '<span class="cke_button_icon cke_button__{iconName}_icon" style="{iconStyle}"></span>' +
+ '</span>' +
+ '<span class="cke_menubutton_label">' +
+ '{label}' +
+ '</span>' +
+ '{arrowHtml}' +
+ '</span>' +
+ '</a></span>';
+
+ var menuArrowSource = '<span class="cke_menuarrow">' +
+ '<span>{label}</span>' +
+ '</span>';
+
+ var menuItemTpl = CKEDITOR.addTemplate( 'menuItem', menuItemSource ),
+ menuArrowTpl = CKEDITOR.addTemplate( 'menuArrow', menuArrowSource );
+
+ /**
+ * @class
+ * @todo
+ */
+ CKEDITOR.menu = CKEDITOR.tools.createClass({
+ $: function( editor, definition ) {
definition = this._.definition = definition || {};
- this.id = 'cke_' + CKEDITOR.tools.getNextNumber();
+ this.id = CKEDITOR.tools.getNextId();
this.editor = editor;
this.items = [];
+ this._.listeners = [];
this._.level = definition.level || 1;
- var panelDefinition = CKEDITOR.tools.extend( {}, definition.panel,
- {
- css : editor.skin.editor.css,
- level : this._.level - 1,
- block : {}
- } );
+ var panelDefinition = CKEDITOR.tools.extend( {}, definition.panel, {
+ css: [ CKEDITOR.skin.getPath( 'editor' ) ],
+ level: this._.level - 1,
+ block: {}
+ });
var attrs = panelDefinition.block.attributes = ( panelDefinition.attributes || {} );
// Provide default role of 'menu'.
@@ -69,46 +156,83 @@ CKEDITOR.plugins.add( 'menu',
this._.panelDefinition = panelDefinition;
},
- _ :
- {
- showSubMenu : function( index )
- {
+ _: {
+ onShow: function() {
+ var selection = this.editor.getSelection(),
+ start = selection && selection.getStartElement(),
+ path = this.editor.elementPath(),
+ listeners = this._.listeners;
+
+ this.removeAll();
+ // Call all listeners, filling the list of items to be displayed.
+ for ( var i = 0; i < listeners.length; i++ ) {
+ var listenerItems = listeners[ i ]( start, selection, path );
+
+ if ( listenerItems ) {
+ for ( var itemName in listenerItems ) {
+ var item = this.editor.getMenuItem( itemName );
+
+ if ( item && ( !item.command || this.editor.getCommand( item.command ).state ) ) {
+ item.state = listenerItems[ itemName ];
+ this.add( item );
+ }
+ }
+ }
+ }
+ },
+
+ onClick: function( item ) {
+ this.hide();
+
+ if ( item.onClick )
+ item.onClick();
+ else if ( item.command )
+ this.editor.execCommand( item.command );
+ },
+
+ onEscape: function( keystroke ) {
+ var parent = this.parent;
+ // 1. If it's sub-menu, close it, with focus restored on this.
+ // 2. In case of a top-menu, close it, with focus returned to page.
+ if ( parent )
+ parent._.panel.hideChild( 1 );
+ else if ( keystroke == 27 )
+ this.hide( 1 );
+
+ return false;
+ },
+
+ onHide: function() {
+ this.onHide && this.onHide();
+ },
+
+ showSubMenu: function( index ) {
var menu = this._.subMenu,
item = this.items[ index ],
subItemDefs = item.getItems && item.getItems();
// If this item has no subitems, we just hide the submenu, if
// available, and return back.
- if ( !subItemDefs )
- {
- this._.panel.hideChild();
+ if ( !subItemDefs ) {
+ // Hide sub menu with focus returned.
+ this._.panel.hideChild( 1 );
return;
}
- // Record parent menu focused item first (#3389).
- var block = this._.panel.getBlock( this.id );
- block._.focusIndex = index;
-
// Create the submenu, if not available, or clean the existing
// one.
if ( menu )
menu.removeAll();
- else
- {
- menu = this._.subMenu = new CKEDITOR.menu( this.editor,
- CKEDITOR.tools.extend( {}, this._.definition, { level : this._.level + 1 }, true ) );
+ else {
+ menu = this._.subMenu = new CKEDITOR.menu( this.editor, CKEDITOR.tools.extend( {}, this._.definition, { level: this._.level + 1 }, true ) );
menu.parent = this;
- menu.onClick = CKEDITOR.tools.bind( this.onClick, this );
- // Sub menu use their own scope for binding onEscape.
- menu.onEscape = this.onEscape;
+ menu._.onClick = CKEDITOR.tools.bind( this._.onClick, this );
}
// Add all submenu items to the menu.
- for ( var subItemName in subItemDefs )
- {
+ for ( var subItemName in subItemDefs ) {
var subItem = this.editor.getMenuItem( subItemName );
- if ( subItem )
- {
+ if ( subItem ) {
subItem.state = subItemDefs[ subItemName ];
menu.add( subItem );
}
@@ -118,14 +242,16 @@ CKEDITOR.plugins.add( 'menu',
var element = this._.panel.getBlock( this.id ).element.getDocument().getById( this.id + String( index ) );
// Show the submenu.
- menu.show( element, 2 );
+ // This timeout is needed to give time for the sub-menu get
+ // focus when JAWS is running. (#9844)
+ setTimeout( function() {
+ menu.show( element, 2 );
+ },0);
}
},
- proto :
- {
- add : function( item )
- {
+ proto: {
+ add: function( item ) {
// Later we may sort the items, but Array#sort is not stable in
// some browsers, here we're forcing the original sequence with
// 'order' attribute if it hasn't been assigned. (#3868)
@@ -135,106 +261,104 @@ CKEDITOR.plugins.add( 'menu',
this.items.push( item );
},
- removeAll : function()
- {
+ removeAll: function() {
this.items = [];
},
- show : function( offsetParent, corner, offsetX, offsetY )
- {
+ show: function( offsetParent, corner, offsetX, offsetY ) {
+ // Not for sub menu.
+ if ( !this.parent ) {
+ this._.onShow();
+ // Don't menu with zero items.
+ if ( !this.items.length )
+ return;
+ }
+
+ corner = corner || ( this.editor.lang.dir == 'rtl' ? 2 : 1 );
+
var items = this.items,
editor = this.editor,
panel = this._.panel,
element = this._.element;
// Create the floating panel for this menu.
- if ( !panel )
- {
- panel = this._.panel = new CKEDITOR.ui.floatPanel( this.editor,
- CKEDITOR.document.getBody(),
- this._.panelDefinition,
- this._.level );
-
- panel.onEscape = CKEDITOR.tools.bind( function( keystroke )
- {
- if ( this.onEscape && this.onEscape( keystroke ) === false )
+ if ( !panel ) {
+ panel = this._.panel = new CKEDITOR.ui.floatPanel( this.editor, CKEDITOR.document.getBody(), this._.panelDefinition, this._.level );
+
+ panel.onEscape = CKEDITOR.tools.bind( function( keystroke ) {
+ if ( this._.onEscape( keystroke ) === false )
return false;
- },
- this );
+ }, this );
+
+ panel.onShow = function() {
+ // Menu need CSS resets, compensate class name.
+ var holder = panel._.panel.getHolderElement();
+ holder.getParent().addClass( 'cke cke_reset_all' );
+ };
- panel.onHide = CKEDITOR.tools.bind( function()
- {
- this.onHide && this.onHide();
- },
- this );
+ panel.onHide = CKEDITOR.tools.bind( function() {
+ this._.onHide && this._.onHide();
+ }, this );
// Create an autosize block inside the panel.
var block = panel.addBlock( this.id, this._.panelDefinition.block );
block.autoSize = true;
var keys = block.keys;
- keys[ 40 ] = 'next'; // ARROW-DOWN
- keys[ 9 ] = 'next'; // TAB
- keys[ 38 ] = 'prev'; // ARROW-UP
- keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB
- keys[ 32 ] = 'click'; // SPACE
- keys[ ( editor.lang.dir == 'rtl' ? 37 : 39 ) ] = 'click'; // ARROW-RIGHT/ARROW-LEFT(rtl)
+ keys[ 40 ] = 'next'; // ARROW-DOWN
+ keys[ 9 ] = 'next'; // TAB
+ keys[ 38 ] = 'prev'; // ARROW-UP
+ keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB
+ keys[ ( editor.lang.dir == 'rtl' ? 37 : 39 ) ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // ARROW-RIGHT/ARROW-LEFT(rtl)
+ keys[ 32 ] = CKEDITOR.env.ie ? 'mouseup' : 'click'; // SPACE
+ CKEDITOR.env.ie && ( keys[ 13 ] = 'mouseup' ); // Manage ENTER, since onclick is blocked in IE (#8041).
element = this._.element = block.element;
- element.addClass( editor.skinClass );
var elementDoc = element.getDocument();
elementDoc.getBody().setStyle( 'overflow', 'hidden' );
elementDoc.getElementsByTag( 'html' ).getItem( 0 ).setStyle( 'overflow', 'hidden' );
- this._.itemOverFn = CKEDITOR.tools.addFunction( function( index )
- {
- clearTimeout( this._.showSubTimeout );
- this._.showSubTimeout = CKEDITOR.tools.setTimeout( this._.showSubMenu, editor.config.menu_subMenuDelay, this, [ index ] );
- },
- this);
-
- this._.itemOutFn = CKEDITOR.tools.addFunction( function( index )
- {
- clearTimeout( this._.showSubTimeout );
- },
- this);
-
- this._.itemClickFn = CKEDITOR.tools.addFunction( function( index )
- {
- var item = this.items[ index ];
-
- if ( item.state == CKEDITOR.TRISTATE_DISABLED )
- {
- this.hide();
- return;
- }
+ this._.itemOverFn = CKEDITOR.tools.addFunction( function( index ) {
+ clearTimeout( this._.showSubTimeout );
+ this._.showSubTimeout = CKEDITOR.tools.setTimeout( this._.showSubMenu, editor.config.menu_subMenuDelay || 400, this, [ index ] );
+ }, this );
+
+ this._.itemOutFn = CKEDITOR.tools.addFunction( function( index ) {
+ clearTimeout( this._.showSubTimeout );
+ }, this );
+
+ this._.itemClickFn = CKEDITOR.tools.addFunction( function( index ) {
+ var item = this.items[ index ];
+
+ if ( item.state == CKEDITOR.TRISTATE_DISABLED ) {
+ this.hide( 1 );
+ return;
+ }
- if ( item.getItems )
- this._.showSubMenu( index );
- else
- this.onClick && this.onClick( item );
- },
- this);
+ if ( item.getItems )
+ this._.showSubMenu( index );
+ else
+ this._.onClick( item );
+ }, this );
}
// Put the items in the right order.
sortItems( items );
- var chromeRoot = editor.container.getChild( 1 );
- var mixedContentClass = chromeRoot.hasClass( 'cke_mixed_dir_content' ) ? ' cke_mixed_dir_content' : '';
+ // Apply the editor mixed direction status to menu.
+ var path = editor.elementPath(),
+ mixedDirCls = ( path && path.direction() != editor.lang.dir ) ? ' cke_mixed_dir_content' : '';
// Build the HTML that composes the menu and its items.
- var output = [ '<div class="cke_menu' + mixedContentClass + '" role="presentation">' ];
+ var output = [ '<div class="cke_menu' + mixedDirCls + '" role="presentation">' ];
var length = items.length,
lastGroup = length && items[ 0 ].group;
- for ( var i = 0 ; i < length ; i++ )
- {
+ for ( var i = 0; i < length; i++ ) {
var item = items[ i ];
- if ( lastGroup != item.group )
- {
+ if ( lastGroup != item.group ) {
output.push( '<div class="cke_menuseparator" role="separator"></div>' );
lastGroup = item.group;
}
@@ -247,6 +371,8 @@ CKEDITOR.plugins.add( 'menu',
// Inject the HTML inside the panel.
element.setHtml( output.join( '' ) );
+ CKEDITOR.ui.fire( 'ready', this );
+
// Show the panel.
if ( this.parent )
this.parent._.panel.showAsChild( panel, this.id, offsetParent, corner, offsetX, offsetY );
@@ -256,154 +382,125 @@ CKEDITOR.plugins.add( 'menu',
editor.fire( 'menuShow', [ panel ] );
},
- hide : function()
- {
- this._.panel && this._.panel.hide();
+ addListener: function( listenerFn ) {
+ this._.listeners.push( listenerFn );
+ },
+
+ hide: function( returnFocus ) {
+ this._.onHide && this._.onHide();
+ this._.panel && this._.panel.hide( returnFocus );
}
}
});
- function sortItems( items )
- {
- items.sort( function( itemA, itemB )
- {
- if ( itemA.group < itemB.group )
- return -1;
- else if ( itemA.group > itemB.group )
- return 1;
-
- return itemA.order < itemB.order ? -1 :
- itemA.order > itemB.order ? 1 :
- 0;
- });
+ function sortItems( items ) {
+ items.sort( function( itemA, itemB ) {
+ if ( itemA.group < itemB.group )
+ return -1;
+ else if ( itemA.group > itemB.group )
+ return 1;
+
+ return itemA.order < itemB.order ? -1 : itemA.order > itemB.order ? 1 : 0;
+ });
}
-})();
-CKEDITOR.menuItem = CKEDITOR.tools.createClass(
-{
- $ : function( editor, name, definition )
- {
- CKEDITOR.tools.extend( this, definition,
+ /**
+ * @class
+ * @todo
+ */
+ CKEDITOR.menuItem = CKEDITOR.tools.createClass({
+ $: function( editor, name, definition ) {
+ CKEDITOR.tools.extend( this, definition,
// Defaults
{
- order : 0,
- className : 'cke_button_' + name
+ order: 0,
+ className: 'cke_menubutton__' + name
});
- // Transform the group name into its order number.
- this.group = editor._.menuGroups[ this.group ];
-
- this.editor = editor;
- this.name = name;
- },
-
- proto :
- {
- render : function( menu, index, output )
- {
- var id = menu.id + String( index ),
- state = ( typeof this.state == 'undefined' ) ? CKEDITOR.TRISTATE_OFF : this.state;
-
- var classes = ' cke_' + (
- state == CKEDITOR.TRISTATE_ON ? 'on' :
- state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' :
- 'off' );
-
- var htmlLabel = this.label;
-
- if ( this.className )
- classes += ' ' + this.className;
-
- var hasSubMenu = this.getItems;
-
- output.push(
- '<span class="cke_menuitem">' +
- '<a id="', id, '"' +
- ' class="', classes, '" href="javascript:void(\'', ( this.label || '' ).replace( "'", '' ), '\')"' +
- ' title="', this.label, '"' +
- ' tabindex="-1"' +
- '_cke_focus=1' +
- ' hidefocus="true"' +
- ' role="menuitem"' +
- ( hasSubMenu ? 'aria-haspopup="true"' : '' ) +
- ( state == CKEDITOR.TRISTATE_DISABLED ? 'aria-disabled="true"' : '' ) +
- ( state == CKEDITOR.TRISTATE_ON ? 'aria-pressed="true"' : '' ) );
-
- // Some browsers don't cancel key events in the keydown but in the
- // keypress.
- // TODO: Check if really needed for Gecko+Mac.
- if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
- {
- output.push(
- ' onkeypress="return false;"' );
- }
+ // Transform the group name into its order number.
+ this.group = editor._.menuGroups[ this.group ];
- // With Firefox, we need to force the button to redraw, otherwise it
- // will remain in the focus state.
- if ( CKEDITOR.env.gecko )
- {
- output.push(
- ' onblur="this.style.cssText = this.style.cssText;"' );
- }
+ this.editor = editor;
+ this.name = name;
+ },
- var offset = ( this.iconOffset || 0 ) * -16;
- output.push(
-// ' onkeydown="return CKEDITOR.ui.button._.keydown(', index, ', event);"' +
- ' onmouseover="CKEDITOR.tools.callFunction(', menu._.itemOverFn, ',', index, ');"' +
- ' onmouseout="CKEDITOR.tools.callFunction(', menu._.itemOutFn, ',', index, ');"' +
- ' onclick="CKEDITOR.tools.callFunction(', menu._.itemClickFn, ',', index, '); return false;"' +
- '>' +
- '<span class="cke_icon_wrapper"><span class="cke_icon"' +
- ( this.icon ? ' style="background-image:url(' + CKEDITOR.getUrl( this.icon ) + ');background-position:0 ' + offset + 'px;"'
- : '' ) +
- '></span></span>' +
- '<span class="cke_label">' );
-
- if ( hasSubMenu )
- {
- output.push(
- '<span class="cke_menuarrow">',
- '<span>&#',
- ( this.editor.lang.dir == 'rtl' ?
- '9668' : // BLACK LEFT-POINTING POINTER
- '9658' ), // BLACK RIGHT-POINTING POINTER
- ';</span>',
- '</span>' );
+ proto: {
+ render: function( menu, index, output ) {
+ var id = menu.id + String( index ),
+ state = ( typeof this.state == 'undefined' ) ? CKEDITOR.TRISTATE_OFF : this.state;
+
+ var stateName = state == CKEDITOR.TRISTATE_ON ? 'on' : state == CKEDITOR.TRISTATE_DISABLED ? 'disabled' : 'off';
+
+ var hasSubMenu = this.getItems;
+ // ltr: BLACK LEFT-POINTING POINTER
+ // rtl: BLACK RIGHT-POINTING POINTER
+ var arrowLabel = '&#' + ( this.editor.lang.dir == 'rtl' ? '9668' : '9658' ) + ';';
+
+ var iconName = this.name;
+ if ( this.icon && !( /\./ ).test( this.icon ) )
+ iconName = this.icon;
+
+ var params = {
+ id: id,
+ name: this.name,
+ iconName: iconName,
+ label: this.label,
+ cls: this.className || '',
+ state: stateName,
+ hasPopup: hasSubMenu ? 'true' : 'false',
+ disabled: state == CKEDITOR.TRISTATE_DISABLED,
+ pressed: state == CKEDITOR.TRISTATE_ON,
+ title: this.label,
+ href: 'javascript:void(\'' + ( this.label || '' ).replace( "'" + '' ) + '\')',
+ hoverFn: menu._.itemOverFn,
+ moveOutFn: menu._.itemOutFn,
+ clickFn: menu._.itemClickFn,
+ index: index,
+ iconStyle: CKEDITOR.skin.getIconStyle( iconName, ( this.editor.lang.dir == 'rtl' ), iconName == this.icon ? null : this.icon, this.iconOffset ),
+ arrowHtml: hasSubMenu ? menuArrowTpl.output({ label: arrowLabel } ) : ''
+ };
+
+ menuItemTpl.output( params, output );
}
-
- output.push(
- htmlLabel,
- '</span>' +
- '</a>' +
- '</span>' );
}
- }
-});
+ });
+
+})();
+
/**
- * The amount of time, in milliseconds, the editor waits before showing submenu
- * options when moving the mouse over options that contains submenus, like the
+ * The amount of time, in milliseconds, the editor waits before displaying submenu
+ * options when moving the mouse over options that contain submenus, like the
* "Cell Properties" entry for tables.
- * @type Number
- * @default 400
- * @example
- * // Remove the submenu delay.
- * config.menu_subMenuDelay = 0;
+ *
+ * // Remove the submenu delay.
+ * config.menu_subMenuDelay = 0;
+ *
+ * @cfg {Number} [menu_subMenuDelay=400]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Fired when a menu is shown.
+ *
+ * @event menuShow
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {CKEDITOR.ui.panel[]} data
*/
-CKEDITOR.config.menu_subMenuDelay = 400;
/**
* A comma separated list of items group names to be displayed in the context
- * menu. The items order will reflect the order in this list if no priority
- * has been definted in the groups.
- * @type String
- * @default 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea'
- * @example
- * config.menu_groups = 'clipboard,table,anchor,link,image';
+ * menu. The order of items will reflect the order specified in this list if
+ * no priority was defined in the groups.
+ *
+ * config.menu_groups = 'clipboard,table,anchor,link,image';
+ *
+ * @cfg {String} [menu_groups=see source]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.menu_groups =
- 'clipboard,' +
+CKEDITOR.config.menu_groups = 'clipboard,' +
'form,' +
- 'tablecell,tablecellproperties,tablerow,tablecolumn,table,'+
+ 'tablecell,tablecellproperties,tablerow,tablecolumn,table,' +
'anchor,link,image,flash,' +
'checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div';
diff --git a/devel/third-party/ckeditor/plugins/menubutton/plugin.js b/devel/third-party/ckeditor/plugins/menubutton/plugin.js
index bd98f79..57ccabd 100644
--- a/devel/third-party/ckeditor/plugins/menubutton/plugin.js
+++ b/devel/third-party/ckeditor/plugins/menubutton/plugin.js
@@ -1,94 +1,99 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'menubutton',
-{
- requires : [ 'button', 'contextmenu' ],
- beforeInit : function( editor )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'menubutton', {
+ requires: 'button,menu',
+ onLoad: function() {
+ var clickFn = function( editor ) {
+ var _ = this._;
+
+ // Do nothing if this button is disabled.
+ if ( _.state === CKEDITOR.TRISTATE_DISABLED )
+ return;
+
+ _.previousState = _.state;
+
+ // Check if we already have a menu for it, otherwise just create it.
+ var menu = _.menu;
+ if ( !menu ) {
+ menu = _.menu = new CKEDITOR.menu( editor, {
+ panel: {
+ className: 'cke_menu_panel',
+ attributes: { 'aria-label': editor.lang.common.options }
+ }
+ });
+
+ menu.onHide = CKEDITOR.tools.bind( function() {
+ this.setState( this.modes && this.modes[ editor.mode ] ? _.previousState : CKEDITOR.TRISTATE_DISABLED );
+ }, this );
+
+ // Initialize the menu items at this point.
+ if ( this.onMenu )
+ menu.addListener( this.onMenu );
+ }
+
+ if ( _.on ) {
+ menu.hide();
+ return;
+ }
+
+ this.setState( CKEDITOR.TRISTATE_ON );
+
+ // This timeout is needed to give time for the panel get focus
+ // when JAWS is running. (#9842)
+ setTimeout( function() {
+ menu.show( CKEDITOR.document.getById( _.id ), 4 );
+ },0);
+ };
+
+ /**
+ * @class
+ * @extends CKEDITOR.ui.button
+ * @todo
+ */
+ CKEDITOR.ui.menuButton = CKEDITOR.tools.createClass({
+ base: CKEDITOR.ui.button,
+
+ /**
+ * Creates a menuButton class instance.
+ *
+ * @constructor
+ * @param Object definition
+ * @todo
+ */
+ $: function( definition ) {
+ // We don't want the panel definition in this object.
+ var panelDefinition = definition.panel;
+ delete definition.panel;
+
+ this.base( definition );
+
+ this.hasArrow = true;
+
+ this.click = clickFn;
+ },
+
+ statics: {
+ handler: {
+ create: function( definition ) {
+ return new CKEDITOR.ui.menuButton( definition );
+ }
+ }
+ }
+ });
+ },
+ beforeInit: function( editor ) {
editor.ui.addHandler( CKEDITOR.UI_MENUBUTTON, CKEDITOR.ui.menuButton.handler );
}
});
/**
* Button UI element.
- * @constant
- * @example
+ *
+ * @readonly
+ * @property {String} [='menubutton']
+ * @member CKEDITOR
*/
-CKEDITOR.UI_MENUBUTTON = 5;
-
-(function()
-{
- var clickFn = function( editor )
- {
- var _ = this._;
-
- // Do nothing if this button is disabled.
- if ( _.state === CKEDITOR.TRISTATE_DISABLED )
- return;
-
- _.previousState = _.state;
-
- // Check if we already have a menu for it, otherwise just create it.
- var menu = _.menu;
- if ( !menu )
- {
- menu = _.menu = new CKEDITOR.plugins.contextMenu( editor );
- menu.definition.panel.attributes[ 'aria-label' ] = editor.lang.common.options;
-
- menu.onHide = CKEDITOR.tools.bind( function()
- {
- this.setState( _.previousState );
- },
- this );
-
- // Initialize the menu items at this point.
- if ( this.onMenu )
- {
- menu.addListener( this.onMenu );
- }
- }
-
- if ( _.on )
- {
- menu.hide();
- return;
- }
-
- this.setState( CKEDITOR.TRISTATE_ON );
-
- menu.show( CKEDITOR.document.getById( this._.id ), 4 );
- };
-
-
- CKEDITOR.ui.menuButton = CKEDITOR.tools.createClass(
- {
- base : CKEDITOR.ui.button,
-
- $ : function( definition )
- {
- // We don't want the panel definition in this object.
- var panelDefinition = definition.panel;
- delete definition.panel;
-
- this.base( definition );
-
- this.hasArrow = true;
-
- this.click = clickFn;
- },
-
- statics :
- {
- handler :
- {
- create : function( definition )
- {
- return new CKEDITOR.ui.menuButton( definition );
- }
- }
- }
- });
-})();
+CKEDITOR.UI_MENUBUTTON = 'menubutton';
diff --git a/devel/third-party/ckeditor/plugins/newpage/icons/newpage-rtl.png b/devel/third-party/ckeditor/plugins/newpage/icons/newpage-rtl.png
new file mode 100644
index 0000000..a5f38f3
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/newpage/icons/newpage-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/newpage/icons/newpage.png b/devel/third-party/ckeditor/plugins/newpage/icons/newpage.png
new file mode 100644
index 0000000..16c48f8
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/newpage/icons/newpage.png differ
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/af.js b/devel/third-party/ckeditor/plugins/newpage/lang/af.js
new file mode 100644
index 0000000..5d70458
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'af', {
+ toolbar: 'Nuwe bladsy'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ar.js b/devel/third-party/ckeditor/plugins/newpage/lang/ar.js
new file mode 100644
index 0000000..ef12e9e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ar', {
+ toolbar: 'ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/bg.js b/devel/third-party/ckeditor/plugins/newpage/lang/bg.js
new file mode 100644
index 0000000..1d69132
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'bg', {
+ toolbar: 'Ðова ÑÑÑаниÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/bn.js b/devel/third-party/ckeditor/plugins/newpage/lang/bn.js
new file mode 100644
index 0000000..0e108a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'bn', {
+ toolbar: 'নতà§à¦¨ পà§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/bs.js b/devel/third-party/ckeditor/plugins/newpage/lang/bs.js
new file mode 100644
index 0000000..8e4fd6e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'bs', {
+ toolbar: 'Novi dokument'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ca.js b/devel/third-party/ckeditor/plugins/newpage/lang/ca.js
new file mode 100644
index 0000000..73a8cb7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ca', {
+ toolbar: 'Nova pà gina'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/cs.js b/devel/third-party/ckeditor/plugins/newpage/lang/cs.js
new file mode 100644
index 0000000..7af7dd7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'cs', {
+ toolbar: 'Nová stránka'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/cy.js b/devel/third-party/ckeditor/plugins/newpage/lang/cy.js
new file mode 100644
index 0000000..09c899a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'cy', {
+ toolbar: 'Tudalen newydd'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/da.js b/devel/third-party/ckeditor/plugins/newpage/lang/da.js
new file mode 100644
index 0000000..5bf9031
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'da', {
+ toolbar: 'Ny side'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/de.js b/devel/third-party/ckeditor/plugins/newpage/lang/de.js
new file mode 100644
index 0000000..42d0970
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'de', {
+ toolbar: 'Neue Seite'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/el.js b/devel/third-party/ckeditor/plugins/newpage/lang/el.js
new file mode 100644
index 0000000..434cdc4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'el', {
+ toolbar: 'ÎÎα Σελίδα'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/en-au.js b/devel/third-party/ckeditor/plugins/newpage/lang/en-au.js
new file mode 100644
index 0000000..b4f5b0b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'en-au', {
+ toolbar: 'New Page'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/en-ca.js b/devel/third-party/ckeditor/plugins/newpage/lang/en-ca.js
new file mode 100644
index 0000000..809c2f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'en-ca', {
+ toolbar: 'New Page'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/en-gb.js b/devel/third-party/ckeditor/plugins/newpage/lang/en-gb.js
new file mode 100644
index 0000000..03a15ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'en-gb', {
+ toolbar: 'New Page'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/en.js b/devel/third-party/ckeditor/plugins/newpage/lang/en.js
new file mode 100644
index 0000000..e8db2d6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'en', {
+ toolbar: 'New Page'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/eo.js b/devel/third-party/ckeditor/plugins/newpage/lang/eo.js
new file mode 100644
index 0000000..abfc003
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'eo', {
+ toolbar: 'Nova PaÄo'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/es.js b/devel/third-party/ckeditor/plugins/newpage/lang/es.js
new file mode 100644
index 0000000..bb24f01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'es', {
+ toolbar: 'Nueva Página'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/et.js b/devel/third-party/ckeditor/plugins/newpage/lang/et.js
new file mode 100644
index 0000000..62e21dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'et', {
+ toolbar: 'Uus leht'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/eu.js b/devel/third-party/ckeditor/plugins/newpage/lang/eu.js
new file mode 100644
index 0000000..34ffae4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'eu', {
+ toolbar: 'Orrialde Berria'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/fa.js b/devel/third-party/ckeditor/plugins/newpage/lang/fa.js
new file mode 100644
index 0000000..1d09ac5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'fa', {
+ toolbar: 'برگÙÙ´ تازÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/fi.js b/devel/third-party/ckeditor/plugins/newpage/lang/fi.js
new file mode 100644
index 0000000..a872b32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'fi', {
+ toolbar: 'Tyhjennä'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/fo.js b/devel/third-party/ckeditor/plugins/newpage/lang/fo.js
new file mode 100644
index 0000000..b2ce719
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'fo', {
+ toolbar: 'Nýggj sÃða'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/newpage/lang/fr-ca.js
new file mode 100644
index 0000000..2381f8a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'fr-ca', {
+ toolbar: 'Nouvelle page'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/fr.js b/devel/third-party/ckeditor/plugins/newpage/lang/fr.js
new file mode 100644
index 0000000..3de28ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'fr', {
+ toolbar: 'Nouvelle page'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/gl.js b/devel/third-party/ckeditor/plugins/newpage/lang/gl.js
new file mode 100644
index 0000000..942feb6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'gl', {
+ toolbar: 'Nova Páxina'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/gu.js b/devel/third-party/ckeditor/plugins/newpage/lang/gu.js
new file mode 100644
index 0000000..511143a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'gu', {
+ toolbar: 'નવૠપાનà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/he.js b/devel/third-party/ckeditor/plugins/newpage/lang/he.js
new file mode 100644
index 0000000..b567922
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'he', {
+ toolbar: '××£ ××ש'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/hi.js b/devel/third-party/ckeditor/plugins/newpage/lang/hi.js
new file mode 100644
index 0000000..bb3ffa4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'hi', {
+ toolbar: 'नया पà¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/hr.js b/devel/third-party/ckeditor/plugins/newpage/lang/hr.js
new file mode 100644
index 0000000..7dcb9e7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'hr', {
+ toolbar: 'Nova stranica'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/hu.js b/devel/third-party/ckeditor/plugins/newpage/lang/hu.js
new file mode 100644
index 0000000..900f702
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'hu', {
+ toolbar: 'Ãj oldal'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/is.js b/devel/third-party/ckeditor/plugins/newpage/lang/is.js
new file mode 100644
index 0000000..e9ca9e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'is', {
+ toolbar: 'Ný sÃða'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/it.js b/devel/third-party/ckeditor/plugins/newpage/lang/it.js
new file mode 100644
index 0000000..f1a8969
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'it', {
+ toolbar: 'Nuova pagina vuota'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ja.js b/devel/third-party/ckeditor/plugins/newpage/lang/ja.js
new file mode 100644
index 0000000..5dc353a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ja', {
+ toolbar: 'æ°ãããã¼ã¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ka.js b/devel/third-party/ckeditor/plugins/newpage/lang/ka.js
new file mode 100644
index 0000000..06f136d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ka', {
+ toolbar: 'áá®ááá áááá áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/km.js b/devel/third-party/ckeditor/plugins/newpage/lang/km.js
new file mode 100644
index 0000000..9e47f41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'km', {
+ toolbar: 'ááááááááá¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ko.js b/devel/third-party/ckeditor/plugins/newpage/lang/ko.js
new file mode 100644
index 0000000..0fe1c71
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ko', {
+ toolbar: 'ì 문ì'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ku.js b/devel/third-party/ckeditor/plugins/newpage/lang/ku.js
new file mode 100644
index 0000000..22e7d0b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ku', {
+ toolbar: 'Ù¾ÛÚÛÛÛÚ©Û ÙÙÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/lt.js b/devel/third-party/ckeditor/plugins/newpage/lang/lt.js
new file mode 100644
index 0000000..e808aeb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'lt', {
+ toolbar: 'Naujas puslapis'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/lv.js b/devel/third-party/ckeditor/plugins/newpage/lang/lv.js
new file mode 100644
index 0000000..996614d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'lv', {
+ toolbar: 'Jauna lapa'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/mk.js b/devel/third-party/ckeditor/plugins/newpage/lang/mk.js
new file mode 100644
index 0000000..1c68401
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'mk', {
+ toolbar: 'New Page' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/mn.js b/devel/third-party/ckeditor/plugins/newpage/lang/mn.js
new file mode 100644
index 0000000..0285366
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'mn', {
+ toolbar: 'Ð¨Ð¸Ð½Ñ Ñ
ÑÑдаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ms.js b/devel/third-party/ckeditor/plugins/newpage/lang/ms.js
new file mode 100644
index 0000000..7ee1851
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ms', {
+ toolbar: 'Helaian Baru'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/nb.js b/devel/third-party/ckeditor/plugins/newpage/lang/nb.js
new file mode 100644
index 0000000..ffa2623
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'nb', {
+ toolbar: 'Ny side'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/nl.js b/devel/third-party/ckeditor/plugins/newpage/lang/nl.js
new file mode 100644
index 0000000..5dc0a67
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'nl', {
+ toolbar: 'Nieuwe pagina'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/no.js b/devel/third-party/ckeditor/plugins/newpage/lang/no.js
new file mode 100644
index 0000000..16df1d5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'no', {
+ toolbar: 'Ny side'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/pl.js b/devel/third-party/ckeditor/plugins/newpage/lang/pl.js
new file mode 100644
index 0000000..131e1d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'pl', {
+ toolbar: 'Nowa strona'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/pt-br.js b/devel/third-party/ckeditor/plugins/newpage/lang/pt-br.js
new file mode 100644
index 0000000..7de89e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'pt-br', {
+ toolbar: 'Novo'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/pt.js b/devel/third-party/ckeditor/plugins/newpage/lang/pt.js
new file mode 100644
index 0000000..80c97d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'pt', {
+ toolbar: 'Nova Página'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ro.js b/devel/third-party/ckeditor/plugins/newpage/lang/ro.js
new file mode 100644
index 0000000..c1702ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ro', {
+ toolbar: 'PaginÄ nouÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ru.js b/devel/third-party/ckeditor/plugins/newpage/lang/ru.js
new file mode 100644
index 0000000..01fa4bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ru', {
+ toolbar: 'ÐÐ¾Ð²Ð°Ñ ÑÑÑаниÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/sk.js b/devel/third-party/ckeditor/plugins/newpage/lang/sk.js
new file mode 100644
index 0000000..72c4472
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'sk', {
+ toolbar: 'Nová stránka'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/sl.js b/devel/third-party/ckeditor/plugins/newpage/lang/sl.js
new file mode 100644
index 0000000..394c09d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'sl', {
+ toolbar: 'Nova stran'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/newpage/lang/sr-latn.js
new file mode 100644
index 0000000..a004660
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'sr-latn', {
+ toolbar: 'Nova stranica'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/sr.js b/devel/third-party/ckeditor/plugins/newpage/lang/sr.js
new file mode 100644
index 0000000..92aa728
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'sr', {
+ toolbar: 'Ðова ÑÑÑаниÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/sv.js b/devel/third-party/ckeditor/plugins/newpage/lang/sv.js
new file mode 100644
index 0000000..4065a3f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'sv', {
+ toolbar: 'Ny sida'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/th.js b/devel/third-party/ckeditor/plugins/newpage/lang/th.js
new file mode 100644
index 0000000..72161c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'th', {
+ toolbar: 'สรà¹à¸²à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¹à¸«à¸¡à¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/tr.js b/devel/third-party/ckeditor/plugins/newpage/lang/tr.js
new file mode 100644
index 0000000..918d2fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'tr', {
+ toolbar: 'Yeni Sayfa'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/ug.js b/devel/third-party/ckeditor/plugins/newpage/lang/ug.js
new file mode 100644
index 0000000..bf150ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'ug', {
+ toolbar: 'ÙÛÚÙ Ø¨ÛØª'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/uk.js b/devel/third-party/ckeditor/plugins/newpage/lang/uk.js
new file mode 100644
index 0000000..d7c568c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'uk', {
+ toolbar: 'Ðова ÑÑоÑÑнка'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/vi.js b/devel/third-party/ckeditor/plugins/newpage/lang/vi.js
new file mode 100644
index 0000000..348b878
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'vi', {
+ toolbar: 'Trang má»i'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/newpage/lang/zh-cn.js
new file mode 100644
index 0000000..63fe54d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'zh-cn', {
+ toolbar: 'æ°å»º'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/lang/zh.js b/devel/third-party/ckeditor/plugins/newpage/lang/zh.js
new file mode 100644
index 0000000..e16906c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/newpage/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'newpage', 'zh', {
+ toolbar: 'éæ°æªæ¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/newpage/plugin.js b/devel/third-party/ckeditor/plugins/newpage/plugin.js
index 62c5405..263da1a 100644
--- a/devel/third-party/ckeditor/plugins/newpage/plugin.js
+++ b/devel/third-party/ckeditor/plugins/newpage/plugin.js
@@ -1,54 +1,50 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Horizontal Page Break
+ * @fileOverview Horizontal Page Break.
*/
// Register a plugin named "newpage".
-CKEDITOR.plugins.add( 'newpage',
-{
- init : function( editor )
- {
- editor.addCommand( 'newpage',
- {
- modes : { wysiwyg:1, source:1 },
-
- exec : function( editor )
- {
- var command = this;
- editor.setData( editor.config.newpage_html, function()
- {
- // Save the undo snapshot after all document changes are affected. (#4889)
- setTimeout( function ()
- {
- editor.fire( 'afterCommandExec',
- {
- name: command.name,
- command: command
- } );
+CKEDITOR.plugins.add( 'newpage', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'newpage,newpage-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ editor.addCommand( 'newpage', { modes:{wysiwyg:1,source:1 },
- }, 200 );
- } );
+ exec: function( editor ) {
+ var command = this;
+ editor.setData( editor.config.newpage_html || '', function() {
editor.focus();
- },
- async : true
- });
+ // Save the undo snapshot after all document changes are affected. (#4889)
+ setTimeout( function() {
+ editor.fire( 'afterCommandExec', {
+ name: 'newpage',
+ command: command
+ });
+ editor.selectionChange();
- editor.ui.addButton( 'NewPage',
- {
- label : editor.lang.newPage,
- command : 'newpage'
- });
+ }, 200 );
+ });
+ },
+ async: true
+ });
+
+ editor.ui.addButton && editor.ui.addButton( 'NewPage', {
+ label: editor.lang.newpage.toolbar,
+ command: 'newpage',
+ toolbar: 'document,20'
+ });
}
});
+
/**
* The HTML to load in the editor when the "new page" command is executed.
- * @type String
- * @default ''
- * @example
- * config.newpage_html = '<p>Type your text here.</p>';
+ *
+ * config.newpage_html = '<p>Type your text here.</p>';
+ *
+ * @cfg {String} [newpage_html='']
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.newpage_html = '';
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png b/devel/third-party/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png
new file mode 100644
index 0000000..6ad482c
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pagebreak/icons/pagebreak-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/icons/pagebreak.png b/devel/third-party/ckeditor/plugins/pagebreak/icons/pagebreak.png
new file mode 100644
index 0000000..6f9a330
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pagebreak/icons/pagebreak.png differ
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/images/pagebreak.gif b/devel/third-party/ckeditor/plugins/pagebreak/images/pagebreak.gif
new file mode 100644
index 0000000..8d1cffd
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pagebreak/images/pagebreak.gif differ
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/af.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/af.js
new file mode 100644
index 0000000..dbeba49
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'af', {
+ alt: 'Bladsy-einde',
+ toolbar: 'Bladsy-einde invoeg'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ar.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ar.js
new file mode 100644
index 0000000..8318f34
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ar', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Ø¥Ø¯Ø®Ø§Ù ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/bg.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/bg.js
new file mode 100644
index 0000000..26f6cbe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'bg', {
+ alt: 'РазделÑне на ÑÑÑаниÑи',
+ toolbar: 'ÐмÑкване на нова ÑÑÑаниÑа пÑи пеÑаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/bn.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/bn.js
new file mode 100644
index 0000000..6533d43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'bn', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'পà§à¦ বà§à¦°à§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/bs.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/bs.js
new file mode 100644
index 0000000..14ef84c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'bs', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ca.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ca.js
new file mode 100644
index 0000000..3417336
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ca', {
+ alt: 'Salt de pà gina',
+ toolbar: 'Insereix salt de pà gina'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/cs.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/cs.js
new file mode 100644
index 0000000..a827bd8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'cs', {
+ alt: 'Konec stránky',
+ toolbar: 'Vložit konec stránky'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/cy.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/cy.js
new file mode 100644
index 0000000..d1f55f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'cy', {
+ alt: 'Toriad Tudalen',
+ toolbar: 'Mewnosod Toriad Tudalen i Argraffu'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/da.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/da.js
new file mode 100644
index 0000000..20596dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'da', {
+ alt: 'Sideskift',
+ toolbar: 'Indsæt sideskift'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/de.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/de.js
new file mode 100644
index 0000000..18d4296
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'de', {
+ alt: 'Seitenumbruch einfügen',
+ toolbar: 'Seitenumbruch einfügen'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/el.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/el.js
new file mode 100644
index 0000000..2cccdaa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'el', {
+ alt: 'Îλλαγή ΣελίδαÏ',
+ toolbar: 'ÎιÏαγÏγή ÏÎλοÏ
Ï ÏελίδαÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/en-au.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/en-au.js
new file mode 100644
index 0000000..926afc3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'en-au', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/en-ca.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/en-ca.js
new file mode 100644
index 0000000..11746c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'en-ca', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/en-gb.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/en-gb.js
new file mode 100644
index 0000000..42caced
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'en-gb', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/en.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/en.js
new file mode 100644
index 0000000..5069343
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'en', {
+ alt: 'Page Break',
+ toolbar: 'Insert Page Break for Printing'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/eo.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/eo.js
new file mode 100644
index 0000000..2d7aca6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'eo', {
+ alt: 'PaÄavanco',
+ toolbar: 'Enmeti PaÄavancon por Presado'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/es.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/es.js
new file mode 100644
index 0000000..337668b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'es', {
+ alt: 'Salto de página',
+ toolbar: 'Insertar Salto de Página'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/et.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/et.js
new file mode 100644
index 0000000..31ba947
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'et', {
+ alt: 'Lehevahetuskoht',
+ toolbar: 'Lehevahetuskoha sisestamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/eu.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/eu.js
new file mode 100644
index 0000000..62d9cb8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'eu', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Txertatu Orrialde-jauzia'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/fa.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/fa.js
new file mode 100644
index 0000000..10f8a46
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'fa', {
+ alt: 'Ø´Ú©Ø³ØªÙ ØµÙØÙ',
+ toolbar: 'Ú¯ÙØ¬Ø§ÙØ¯Ù Ø´Ú©Ø³ØªÚ¯Û Ù¾Ø§ÛØ§Ù برگÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/fi.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/fi.js
new file mode 100644
index 0000000..13ee7b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'fi', {
+ alt: 'Sivunvaihto',
+ toolbar: 'Lisää sivunvaihto'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/fo.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/fo.js
new file mode 100644
index 0000000..8fc8e99
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'fo', {
+ alt: 'SÃðuskift',
+ toolbar: 'Ger sÃðuskift'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/fr-ca.js
new file mode 100644
index 0000000..e14ab0b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'fr-ca', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insérer un saut de page'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/fr.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/fr.js
new file mode 100644
index 0000000..4b8d2ed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'fr', {
+ alt: 'Saut de page',
+ toolbar: 'Saut de page'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/gl.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/gl.js
new file mode 100644
index 0000000..bd2774f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'gl', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Inserir Salto de Páxina'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/gu.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/gu.js
new file mode 100644
index 0000000..bff7477
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'gu', {
+ alt: 'નવà«àª પાનà«àª',
+ toolbar: 'àªàª¨à«àª¸àª°à«àª પà«àªàª¬à«àª°à«àª/પાનાનૠàª
લઠàªàª°àªµà«àª/દાàªàª² àªàª°àªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/he.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/he.js
new file mode 100644
index 0000000..3f8e2b6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'he', {
+ alt: 'ש××רת ××£',
+ toolbar: '××ספת ש××רת ××£'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/hi.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/hi.js
new file mode 100644
index 0000000..58e6150
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'hi', {
+ alt: 'पà¥à¤ बà¥à¤°à¥à¤',
+ toolbar: 'पà¥à¤ बà¥à¤°à¥à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤à¥ à¤à¤°à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/hr.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/hr.js
new file mode 100644
index 0000000..568b015
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'hr', {
+ alt: 'Prijelom stranice',
+ toolbar: 'Ubaci prijelom stranice'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/hu.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/hu.js
new file mode 100644
index 0000000..3a4bc97
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'hu', {
+ alt: 'Oldaltörés',
+ toolbar: 'Oldaltörés beillesztése'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/is.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/is.js
new file mode 100644
index 0000000..b616972
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'is', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Setja inn sÃðuskil'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/it.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/it.js
new file mode 100644
index 0000000..08b8850
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'it', {
+ alt: 'Interruzione di pagina',
+ toolbar: 'Inserisci interruzione di pagina'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ja.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ja.js
new file mode 100644
index 0000000..eea61d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ja', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'æ¹ãã¼ã¸æ¿å
¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ka.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ka.js
new file mode 100644
index 0000000..c70c45b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ka', {
+ alt: 'áááá ááá¡ á¬á§ááá¢á',
+ toolbar: 'áááá ááá¡ á¬á§ááá¢á ááááááá¡áááá¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/km.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/km.js
new file mode 100644
index 0000000..82c8da0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'km', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'áááááá áá¶ááááá¶á
áááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ko.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ko.js
new file mode 100644
index 0000000..de7fb7a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ko', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ku.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ku.js
new file mode 100644
index 0000000..9b940e7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ku', {
+ alt: 'پشÙÙÛ Ù¾ÛÚÛ',
+ toolbar: 'Ø¯Ø§ÙØ§ÙÛ Ù¾Ø´ÙÙÛ Ù¾ÛÚÛ Ø¨Û ÚØ§Ù¾Ú©Ø±Ø¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/lt.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/lt.js
new file mode 100644
index 0000000..807789e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'lt', {
+ alt: 'Puslapio skirtukas',
+ toolbar: 'Ä®terpti puslapių skirtukÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/lv.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/lv.js
new file mode 100644
index 0000000..039cc02
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'lv', {
+ alt: 'Lapas pÄrnesums',
+ toolbar: 'Ievietot lapas pÄrtraukumu drukai'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/mk.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/mk.js
new file mode 100644
index 0000000..7615be8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'mk', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/mn.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/mn.js
new file mode 100644
index 0000000..949df43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'mn', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Ð¥ÑÑÐ´Ð°Ñ ÑÑÑгааÑÐ»Ð°Ð³Ñ Ð¾ÑÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ms.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ms.js
new file mode 100644
index 0000000..fc47c12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ms', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/nb.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/nb.js
new file mode 100644
index 0000000..6332860
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'nb', {
+ alt: 'Sideskift',
+ toolbar: 'Sett inn sideskift for utskrift'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/nl.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/nl.js
new file mode 100644
index 0000000..cb37341
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'nl', {
+ alt: 'Pagina-einde',
+ toolbar: 'Pagina-einde invoegen'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/no.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/no.js
new file mode 100644
index 0000000..0023ece
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'no', {
+ alt: 'Sideskift',
+ toolbar: 'Sett inn sideskift for utskrift'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/pl.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/pl.js
new file mode 100644
index 0000000..f978e49
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'pl', {
+ alt: 'Wstaw podziaÅ strony',
+ toolbar: 'Wstaw podziaÅ strony'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/pt-br.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/pt-br.js
new file mode 100644
index 0000000..bee120d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'pt-br', {
+ alt: 'Quebra de Página',
+ toolbar: 'Inserir Quebra de Página'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/pt.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/pt.js
new file mode 100644
index 0000000..1de5d11
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'pt', {
+ alt: 'Quebra de página',
+ toolbar: 'Inserir Quebra de Página'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ro.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ro.js
new file mode 100644
index 0000000..82162ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ro', {
+ alt: 'Page Break',
+ toolbar: 'InsereazÄ separator de paginÄ (Page Break)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ru.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ru.js
new file mode 100644
index 0000000..70b7a7b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ru', {
+ alt: 'РазÑÑв ÑÑÑаниÑÑ',
+ toolbar: 'ÐÑÑавиÑÑ ÑазÑÑв ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¿ÐµÑаÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/sk.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/sk.js
new file mode 100644
index 0000000..8049695
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'sk', {
+ alt: 'Zalomenie strany',
+ toolbar: 'VložiÅ¥ oddeľovaÄ stránky pre tlaÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/sl.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/sl.js
new file mode 100644
index 0000000..2c76c91
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'sl', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Vstavi prelom strani'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/sr-latn.js
new file mode 100644
index 0000000..ba84979
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'sr-latn', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/sr.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/sr.js
new file mode 100644
index 0000000..f29566a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'sr', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'Insert Page Break for Printing' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/sv.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/sv.js
new file mode 100644
index 0000000..37bd4bc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'sv', {
+ alt: 'Sidbrytning',
+ toolbar: 'Infoga sidbrytning'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/th.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/th.js
new file mode 100644
index 0000000..01784aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'th', {
+ alt: 'Page Break', // MISSING
+ toolbar: 'à¹à¸à¸£à¸à¸à¸±à¸§à¹à¸à¹à¸à¸«à¸à¹à¸² Page Break'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/tr.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/tr.js
new file mode 100644
index 0000000..171b91e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'tr', {
+ alt: 'Sayfa Sonu',
+ toolbar: 'Sayfa Sonu Ekle'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/ug.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/ug.js
new file mode 100644
index 0000000..6517f32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'ug', {
+ alt: 'Ø¨ÛØª Ø¦Ø§ÙØ±ÙغÛÚ',
+ toolbar: 'Ø¨ÛØª Ø¦Ø§ÙØ±ÙغÛÚ ÙÙØ³ØªÛر'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/uk.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/uk.js
new file mode 100644
index 0000000..8808b6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'uk', {
+ alt: 'РозÑив СÑоÑÑнки',
+ toolbar: 'ÐÑÑавиÑи ÑозÑив ÑÑоÑÑнки'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/vi.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/vi.js
new file mode 100644
index 0000000..e5d5be1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'vi', {
+ alt: 'Ngắt trang',
+ toolbar: 'Chèn ngắt trang'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/zh-cn.js
new file mode 100644
index 0000000..98b07be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'zh-cn', {
+ alt: 'å页符',
+ toolbar: 'æå
¥å页符'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/lang/zh.js b/devel/third-party/ckeditor/plugins/pagebreak/lang/zh.js
new file mode 100644
index 0000000..a5fd577
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pagebreak/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pagebreak', 'zh', {
+ alt: 'åé 符è',
+ toolbar: 'æå
¥åé 符è'
+});
diff --git a/devel/third-party/ckeditor/plugins/pagebreak/plugin.js b/devel/third-party/ckeditor/plugins/pagebreak/plugin.js
index e3e05d5..5cfebe3 100644
--- a/devel/third-party/ckeditor/plugins/pagebreak/plugin.js
+++ b/devel/third-party/ckeditor/plugins/pagebreak/plugin.js
@@ -1,121 +1,129 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Horizontal Page Break
+ * @fileOverview Horizontal Page Break
*/
// Register a plugin named "pagebreak".
-CKEDITOR.plugins.add( 'pagebreak',
-{
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'pagebreak', {
+ requires: 'fakeobjects',
+
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'pagebreak,pagebreak-rtl', // %REMOVE_LINE_CORE%
+ onLoad: function() {
+ var cssStyles = [
+ '{',
+ 'background: url(' + CKEDITOR.getUrl( this.path + 'images/pagebreak.gif' ) + ') no-repeat center center;',
+ 'clear: both;',
+ 'width:100%; _width:99.9%;',
+ 'border-top: #999999 1px dotted;',
+ 'border-bottom: #999999 1px dotted;',
+ 'padding:0;',
+ 'height: 5px;',
+ 'cursor: default;',
+ '}'
+ ].join( '' ).replace( /;/g, ' !important;' ); // Increase specificity to override other styles, e.g. block outline.
+
+ // Add the style that renders our placeholder.
+ CKEDITOR.addCss( 'div.cke_pagebreak' + cssStyles );
+ },
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
+
// Register the command.
editor.addCommand( 'pagebreak', CKEDITOR.plugins.pagebreakCmd );
// Register the toolbar button.
- editor.ui.addButton( 'PageBreak',
- {
- label : editor.lang.pagebreak,
- command : 'pagebreak'
+ editor.ui.addButton && editor.ui.addButton( 'PageBreak', {
+ label: editor.lang.pagebreak.toolbar,
+ command: 'pagebreak',
+ toolbar: 'insert,70'
+ });
+
+ // Opera needs help to select the page-break.
+ CKEDITOR.env.opera && editor.on( 'contentDom', function() {
+ editor.document.on( 'click', function( evt ) {
+ var target = evt.data.getTarget();
+ if ( target.is( 'div' ) && target.hasClass( 'cke_pagebreak' ) )
+ editor.getSelection().selectElement( target );
});
-
- // Add the style that renders our placeholder.
- editor.addCss(
- 'img.cke_pagebreak' +
- '{' +
- 'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/pagebreak.gif' ) + ');' +
- 'background-position: center center;' +
- 'background-repeat: no-repeat;' +
- 'clear: both;' +
- 'display: block;' +
- 'float: none;' +
- 'width:100% !important; _width:99.9% !important;' +
- 'border-top: #999999 1px dotted;' +
- 'border-bottom: #999999 1px dotted;' +
- 'height: 5px !important;' +
- 'page-break-after: always;' +
-
- '}' );
+ });
},
- afterInit : function( editor )
- {
- // Register a filter to displaying placeholders after mode change.
+ afterInit: function( editor ) {
+ var label = editor.lang.pagebreak.alt;
+ // Register a filter to displaying placeholders after mode change.
var dataProcessor = editor.dataProcessor,
- dataFilter = dataProcessor && dataProcessor.dataFilter;
-
- if ( dataFilter )
- {
- dataFilter.addRules(
- {
- elements :
- {
- div : function( element )
- {
- var attributes = element.attributes,
- style = attributes && attributes.style,
- child = style && element.children.length == 1 && element.children[ 0 ],
- childStyle = child && ( child.name == 'span' ) && child.attributes.style;
-
- if ( childStyle && ( /page-break-after\s*:\s*always/i ).test( style ) && ( /display\s*:\s*none/i ).test( childStyle ) )
- {
- var fakeImg = editor.createFakeParserElement( element, 'cke_pagebreak', 'div' );
- var label = editor.lang.pagebreakAlt;
- fakeImg.attributes[ 'alt' ] = label;
- fakeImg.attributes[ 'aria-label' ] = label;
- return fakeImg;
- }
+ dataFilter = dataProcessor && dataProcessor.dataFilter,
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+
+ if ( htmlFilter ) {
+ htmlFilter.addRules({
+ attributes: {
+ 'class': function( value, element ) {
+ var className = value.replace( 'cke_pagebreak', '' );
+ if ( className != value ) {
+ var span = CKEDITOR.htmlParser.fragment.fromHtml( '<span style="display: none;"> </span>' );
+ element.children.length = 0;
+ element.add( span );
+ var attrs = element.attributes;
+ delete attrs[ 'aria-label' ];
+ delete attrs.contenteditable;
+ delete attrs.title;
}
+ return className;
}
- });
+ }
+ }, 5 );
}
- },
- requires : [ 'fakeobjects' ]
+ if ( dataFilter ) {
+ dataFilter.addRules({
+ elements: {
+ div: function( element ) {
+ var attributes = element.attributes,
+ style = attributes && attributes.style,
+ child = style && element.children.length == 1 && element.children[ 0 ],
+ childStyle = child && ( child.name == 'span' ) && child.attributes.style;
+
+ if ( childStyle && ( /page-break-after\s*:\s*always/i ).test( style ) && ( /display\s*:\s*none/i ).test( childStyle ) ) {
+ attributes.contenteditable = "false";
+ attributes[ 'class' ] = "cke_pagebreak";
+ attributes[ 'data-cke-display-name' ] = "pagebreak";
+ attributes[ 'aria-label' ] = label;
+ attributes[ 'title' ] = label;
+
+ element.children.length = 0;
+ }
+ }
+ }
+ });
+ }
+ }
});
-CKEDITOR.plugins.pagebreakCmd =
-{
- exec : function( editor )
- {
- // Create the element that represents a print break.
- var label = editor.lang.pagebreakAlt;
- var breakObject = CKEDITOR.dom.element.createFromHtml( '<div style="page-break-after: always;"><span style="display: none;"> </span></div>' );
-
- // Creates the fake image used for this element.
- breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );
- breakObject.setAttribute( 'alt', label );
- breakObject.setAttribute( 'aria-label', label );
-
- var ranges = editor.getSelection().getRanges( true );
-
- editor.fire( 'saveSnapshot' );
+// TODO Much probably there's no need to expose this object as public object.
- for ( var range, i = ranges.length - 1 ; i >= 0; i-- )
- {
- range = ranges[ i ];
+CKEDITOR.plugins.pagebreakCmd = {
+ exec: function( editor ) {
+ var label = editor.lang.pagebreak.alt;
- if ( i < ranges.length -1 )
- breakObject = breakObject.clone( true );
+ // Create read-only element that represents a print break.
+ var pagebreak = CKEDITOR.dom.element.createFromHtml( '<div style="' +
+ 'page-break-after: always;"' +
+ 'contenteditable="false" ' +
+ 'title="' + label + '" ' +
+ 'aria-label="' + label + '" ' +
+ 'data-cke-display-name="pagebreak" ' +
+ 'class="cke_pagebreak">' +
+ '</div>', editor.document );
- range.splitBlock( 'p' );
- range.insertNode( breakObject );
- if ( i == ranges.length - 1 )
- {
- range.moveToPosition( breakObject, CKEDITOR.POSITION_AFTER_END );
- range.select();
- }
-
- var previous = breakObject.getPrevious();
-
- if ( previous && CKEDITOR.dtd[ previous.getName() ].div )
- breakObject.move( previous );
- }
-
- editor.fire( 'saveSnapshot' );
- }
+ editor.insertElement( pagebreak );
+ },
+ context: 'div'
};
diff --git a/devel/third-party/ckeditor/plugins/panel/plugin.js b/devel/third-party/ckeditor/plugins/panel/plugin.js
index c7c6adb..c847856 100644
--- a/devel/third-party/ckeditor/plugins/panel/plugin.js
+++ b/devel/third-party/ckeditor/plugins/panel/plugin.js
@@ -1,398 +1,373 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'panel',
-{
- beforeInit : function( editor )
- {
- editor.ui.addHandler( CKEDITOR.UI_PANEL, CKEDITOR.ui.panel.handler );
- }
-});
-
-/**
- * Panel UI element.
- * @constant
- * @example
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-CKEDITOR.UI_PANEL = 2;
-
-CKEDITOR.ui.panel = function( document, definition )
-{
- // Copy all definition properties to this object.
- if ( definition )
- CKEDITOR.tools.extend( this, definition );
-
- // Set defaults.
- CKEDITOR.tools.extend( this,
- {
- className : '',
- css : []
+
+(function() {
+ CKEDITOR.plugins.add( 'panel', {
+ beforeInit: function( editor ) {
+ editor.ui.addHandler( CKEDITOR.UI_PANEL, CKEDITOR.ui.panel.handler );
+ }
+ });
+
+ /**
+ * Panel UI element.
+ *
+ * @readonly
+ * @property {String} [='panel']
+ * @member CKEDITOR
+ */
+ CKEDITOR.UI_PANEL = 'panel';
+
+ /**
+ * @class
+ * @constructor Creates a panel class instance.
+ * @param {CKEDITOR.dom.document} document
+ * @param {Object} definition
+ */
+ CKEDITOR.ui.panel = function( document, definition ) {
+ // Copy all definition properties to this object.
+ if ( definition )
+ CKEDITOR.tools.extend( this, definition );
+
+ // Set defaults.
+ CKEDITOR.tools.extend( this, {
+ className: '',
+ css: []
});
- this.id = CKEDITOR.tools.getNextNumber();
- this.document = document;
+ this.id = CKEDITOR.tools.getNextId();
+ this.document = document;
+ this.isFramed = this.forceIFrame || this.css.length;
- this._ =
- {
- blocks : {}
+ this._ = {
+ blocks: {}
+ };
};
-};
-
-/**
- * Transforms a rich combo definition in a {@link CKEDITOR.ui.richCombo}
- * instance.
- * @type Object
- * @example
- */
-CKEDITOR.ui.panel.handler =
-{
- create : function( definition )
- {
- return new CKEDITOR.ui.panel( definition );
- }
-};
-
-CKEDITOR.ui.panel.prototype =
-{
- renderHtml : function( editor )
- {
- var output = [];
- this.render( editor, output );
- return output.join( '' );
- },
/**
- * Renders the combo.
- * @param {CKEDITOR.editor} editor The editor instance which this button is
- * to be used by.
- * @param {Array} output The output array to which append the HTML relative
- * to this button.
- * @example
+ * Represents panel handler object.
+ *
+ * @class
+ * @singleton
+ * @extends CKEDITOR.ui.handlerDefinition
*/
- render : function( editor, output )
- {
- var id = 'cke_' + this.id;
-
- output.push(
- '<div class="', editor.skinClass ,'"' +
- ' lang="', editor.langCode, '"' +
- ' role="presentation"' +
- // iframe loading need sometime, keep the panel hidden(#4186).
- ' style="display:none;z-index:' + ( editor.config.baseFloatZIndex + 1 ) + '">' +
- '<div' +
- ' id=', id,
- ' dir=', editor.lang.dir,
- ' role="presentation"' +
- ' class="cke_panel cke_', editor.lang.dir );
-
- if ( this.className )
- output.push( ' ', this.className );
-
- output.push(
- '">' );
-
- if ( this.forceIFrame || this.css.length )
- {
- output.push(
- '<iframe id="', id, '_frame"' +
- ' frameborder="0"' +
- ' role="application" src="javascript:void(' );
-
- output.push(
- // Support for custom document.domain in IE.
- CKEDITOR.env.isCustomDomain() ?
- '(function(){' +
- 'document.open();' +
- 'document.domain=\'' + document.domain + '\';' +
- 'document.close();' +
- '})()'
- :
- '0' );
-
- output.push(
- ')"></iframe>' );
+ CKEDITOR.ui.panel.handler = {
+ /**
+ * Transforms a panel definition in a {@link CKEDITOR.ui.panel} instance.
+ *
+ * @param {Object} definition
+ * @returns {CKEDITOR.ui.panel}
+ */
+ create: function( definition ) {
+ return new CKEDITOR.ui.panel( definition );
}
+ };
- output.push(
- '</div>' +
- '</div>' );
-
- return id;
- },
-
- getHolderElement : function()
- {
- var holder = this._.holder;
-
- if ( !holder )
- {
- if ( this.forceIFrame || this.css.length )
- {
- var iframe = this.document.getById( 'cke_' + this.id + '_frame' ),
- parentDiv = iframe.getParent(),
- dir = parentDiv.getAttribute( 'dir' ),
- className = parentDiv.getParent().getAttribute( 'class' ),
- langCode = parentDiv.getParent().getAttribute( 'lang' ),
- doc = iframe.getFrameDocument();
- // Initialize the IFRAME document body.
- doc.$.open();
-
- // Support for custom document.domain in IE.
- if ( CKEDITOR.env.isCustomDomain() )
- doc.$.domain = document.domain;
-
- var onLoad = CKEDITOR.tools.addFunction( CKEDITOR.tools.bind( function( ev )
- {
- this.isLoaded = true;
- if ( this.onLoad )
- this.onLoad();
- }, this ) );
-
- doc.$.write(
- '<!DOCTYPE html>' +
- '<html dir="' + dir + '" class="' + className + '_container" lang="' + langCode + '">' +
- '<head>' +
- '<style>.' + className + '_container{visibility:hidden}</style>' +
- '</head>' +
- '<body class="cke_' + dir + ' cke_panel_frame ' + CKEDITOR.env.cssClass + '" style="margin:0;padding:0"' +
- ' onload="( window.CKEDITOR || window.parent.CKEDITOR ).tools.callFunction(' + onLoad + ');"></body>' +
- // It looks strange, but for FF2, the styles must go
- // after <body>, so it (body) becames immediatelly
- // available. (#3031)
- CKEDITOR.tools.buildStyleHtml( this.css ) +
- '<\/html>' );
- doc.$.close();
-
- var win = doc.getWindow();
-
- // Register the CKEDITOR global.
- win.$.CKEDITOR = CKEDITOR;
-
- doc.on( 'keydown', function( evt )
- {
- var keystroke = evt.data.getKeystroke(),
- dir = this.document.getById( 'cke_' + this.id ).getAttribute( 'dir' );
-
- // Delegate key processing to block.
- if ( this._.onKeyDown && this._.onKeyDown( keystroke ) === false )
- {
- evt.data.preventDefault();
- return;
- }
+ var panelTpl = CKEDITOR.addTemplate( 'panel', '<div lang="{langCode}" id="{id}" dir={dir}' +
+ ' class="cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}"' +
+ ' style="z-index:{z-index}" role="presentation">' +
+ '{frame}' +
+ '</div>' );
- // ESC/ARROW-LEFT(ltr) OR ARROW-RIGHT(rtl)
- if ( keystroke == 27 || keystroke == ( dir == 'rtl' ? 39 : 37 ) )
- {
- if ( this.onEscape && this.onEscape( keystroke ) === false )
- evt.data.preventDefault( );
- }
- },
- this );
+ var frameTpl = CKEDITOR.addTemplate( 'panel-frame', '<iframe id="{id}" class="cke_panel_frame" role="application" frameborder="0" src="{src}"></iframe>' );
- holder = doc.getBody();
- holder.unselectable();
- }
- else
- holder = this.document.getById( 'cke_' + this.id );
+ var frameDocTpl = CKEDITOR.addTemplate( 'panel-frame-inner', '<!DOCTYPE html>' +
+ '<html class="cke_panel_container {env}" dir="{dir}" lang="{langCode}">' +
+ '<head>{css}</head>' +
+ '<body class="cke_{dir}"' +
+ ' style="margin:0;padding:0" onload="{onload}"></body>' +
+ '<\/html>' );
- this._.holder = holder;
- }
+ /** @class CKEDITOR.ui.panel */
+ CKEDITOR.ui.panel.prototype = {
+ /**
+ * Renders the combo.
+ *
+ * @param {CKEDITOR.editor} editor The editor instance which this button is
+ * to be used by.
+ * @param {Array} [output] The output array to which append the HTML relative
+ * to this button.
+ */
+ render: function( editor, output ) {
+ this.getHolderElement = function() {
+ var holder = this._.holder;
+
+ if ( !holder ) {
+ if ( this.isFramed ) {
+ var iframe = this.document.getById( this.id + '_frame' ),
+ parentDiv = iframe.getParent(),
+ doc = iframe.getFrameDocument();
+
+ // Make it scrollable on iOS. (#8308)
+ CKEDITOR.env.iOS && parentDiv.setStyles({
+ 'overflow': 'scroll',
+ '-webkit-overflow-scrolling': 'touch'
+ });
+
+ var onLoad = CKEDITOR.tools.addFunction( CKEDITOR.tools.bind( function( ev ) {
+ this.isLoaded = true;
+ if ( this.onLoad )
+ this.onLoad();
+ }, this ) );
+
+ doc.write( frameDocTpl.output( CKEDITOR.tools.extend({
+ css: CKEDITOR.tools.buildStyleHtml( this.css ),
+ onload: 'window.parent.CKEDITOR.tools.callFunction(' + onLoad + ');'
+ }, data ) ) );
+
+ var win = doc.getWindow();
+
+ // Register the CKEDITOR global.
+ win.$.CKEDITOR = CKEDITOR;
+
+ // Arrow keys for scrolling is only preventable with 'keypress' event in Opera (#4534).
+ doc.on( 'key' + ( CKEDITOR.env.opera ? 'press' : 'down' ), function( evt ) {
+ var keystroke = evt.data.getKeystroke(),
+ dir = this.document.getById( this.id ).getAttribute( 'dir' );
+
+ // Delegate key processing to block.
+ if ( this._.onKeyDown && this._.onKeyDown( keystroke ) === false ) {
+ evt.data.preventDefault();
+ return;
+ }
+
+ // ESC/ARROW-LEFT(ltr) OR ARROW-RIGHT(rtl)
+ if ( keystroke == 27 || keystroke == ( dir == 'rtl' ? 39 : 37 ) ) {
+ if ( this.onEscape && this.onEscape( keystroke ) === false )
+ evt.data.preventDefault();
+ }
+ }, this );
+
+ holder = doc.getBody();
+ holder.unselectable();
+ CKEDITOR.env.air && CKEDITOR.tools.callFunction( onLoad );
+ } else
+ holder = this.document.getById( this.id );
+
+ this._.holder = holder;
+ }
+
+ return holder;
+ };
+
+ var data = {
+ editorId: editor.id,
+ id: this.id,
+ langCode: editor.langCode,
+ dir: editor.lang.dir,
+ cls: this.className,
+ frame: '',
+ env: CKEDITOR.env.cssClass,
+ 'z-index': editor.config.baseFloatZIndex + 1
+ };
+
+ if ( this.isFramed ) {
+ data.frame = frameTpl.output({
+ id: this.id + '_frame',
+ src: 'javascript:void(document.open(),' + ( CKEDITOR.env.isCustomDomain() ? 'document.domain=\'' + document.domain + '\',' : '' )
+ + 'document.close())">'
+ });
+ }
- return holder;
- },
-
- addBlock : function( name, block )
- {
- block = this._.blocks[ name ] = block instanceof CKEDITOR.ui.panel.block ? block
- : new CKEDITOR.ui.panel.block( this.getHolderElement(), block );
-
- if ( !this._.currentBlock )
- this.showBlock( name );
-
- return block;
- },
-
- getBlock : function( name )
- {
- return this._.blocks[ name ];
- },
-
- showBlock : function( name )
- {
- var blocks = this._.blocks,
- block = blocks[ name ],
- current = this._.currentBlock,
- holder = this.forceIFrame ?
- this.document.getById( 'cke_' + this.id + '_frame' )
- : this._.holder;
-
- // Disable context menu for block panel.
- holder.getParent().getParent().disableContextMenu();
-
- if ( current )
- {
- // Clean up the current block's effects on holder.
- holder.removeAttributes( current.attributes );
- current.hide();
- }
+ var html = panelTpl.output( data );
- this._.currentBlock = block;
+ if ( output )
+ output.push( html );
- holder.setAttributes( block.attributes );
- CKEDITOR.fire( 'ariaWidget', holder );
+ return html;
+ },
- // Reset the focus index, so it will always go into the first one.
- block._.focusIndex = -1;
+ /**
+ * @todo
+ */
+ addBlock: function( name, block ) {
+ block = this._.blocks[ name ] = block instanceof CKEDITOR.ui.panel.block ? block : new CKEDITOR.ui.panel.block( this.getHolderElement(), block );
- this._.onKeyDown = block.onKeyDown && CKEDITOR.tools.bind( block.onKeyDown, block );
+ if ( !this._.currentBlock )
+ this.showBlock( name );
- block.onMark = function( item )
- {
- holder.setAttribute( 'aria-activedescendant', item.getId() + '_option' );
- };
+ return block;
+ },
- block.onUnmark = function()
- {
- holder.removeAttribute( 'aria-activedescendant' );
- };
+ /**
+ * @todo
+ */
+ getBlock: function( name ) {
+ return this._.blocks[ name ];
+ },
- block.show();
-
- return block;
- },
-
- destroy : function()
- {
- this.element && this.element.remove();
- }
-};
-
-CKEDITOR.ui.panel.block = CKEDITOR.tools.createClass(
-{
- $ : function( blockHolder, blockDefinition )
- {
- this.element = blockHolder.append(
- blockHolder.getDocument().createElement( 'div',
- {
- attributes :
- {
- 'tabIndex' : -1,
- 'class' : 'cke_panel_block',
- 'role' : 'presentation'
- },
- styles :
- {
- display : 'none'
- }
- }) );
+ /**
+ * @todo
+ */
+ showBlock: function( name ) {
+ var blocks = this._.blocks,
+ block = blocks[ name ],
+ current = this._.currentBlock;
+
+ // ARIA role works better in IE on the body element, while on the iframe
+ // for FF. (#8864)
+ var holder = !this.forceIFrame || CKEDITOR.env.ie ? this._.holder : this.document.getById( this.id + '_frame' );
+
+ if ( current ) {
+ // Clean up the current block's effects on holder.
+ holder.removeAttributes( current.attributes );
+ current.hide();
+ }
- // Copy all definition properties to this object.
- if ( blockDefinition )
- CKEDITOR.tools.extend( this, blockDefinition );
+ this._.currentBlock = block;
- if ( !this.attributes.title )
- this.attributes.title = this.attributes[ 'aria-label' ];
+ holder.setAttributes( block.attributes );
+ CKEDITOR.fire( 'ariaWidget', holder );
- this.keys = {};
+ // Reset the focus index, so it will always go into the first one.
+ block._.focusIndex = -1;
- this._.focusIndex = -1;
+ this._.onKeyDown = block.onKeyDown && CKEDITOR.tools.bind( block.onKeyDown, block );
- // Disable context menu for panels.
- this.element.disableContextMenu();
- },
+ block.show();
- _ : {
+ return block;
+ },
/**
- * Mark the item specified by the index as current activated.
+ * @todo
*/
- markItem: function( index )
- {
- if ( index == -1 )
- return;
- var links = this.element.getElementsByTag( 'a' );
- var item = links.getItem( this._.focusIndex = index );
-
- // Safari need focus on the iframe window first(#3389), but we need
- // lock the blur to avoid hiding the panel.
- if ( CKEDITOR.env.webkit )
- item.getDocument().getWindow().focus();
- item.focus();
-
- this.onMark && this.onMark( item );
+ destroy: function() {
+ this.element && this.element.remove();
}
- },
+ };
- proto :
- {
- show : function()
- {
- this.element.setStyle( 'display', '' );
+ /**
+ * @class
+ *
+ * @todo class and all methods
+ */
+ CKEDITOR.ui.panel.block = CKEDITOR.tools.createClass({
+ /**
+ * Creates a block class instances.
+ *
+ * @constructor
+ * @todo
+ */
+ $: function( blockHolder, blockDefinition ) {
+ this.element = blockHolder.append( blockHolder.getDocument().createElement( 'div', {
+ attributes: {
+ 'tabIndex': -1,
+ 'class': 'cke_panel_block',
+ 'role': 'presentation'
+ },
+ styles: {
+ display: 'none'
+ }
+ }));
+
+ // Copy all definition properties to this object.
+ if ( blockDefinition )
+ CKEDITOR.tools.extend( this, blockDefinition );
+
+ if ( !this.attributes.title )
+ this.attributes.title = this.attributes[ 'aria-label' ];
+
+ this.keys = {};
+
+ this._.focusIndex = -1;
+
+ // Disable context menu for panels.
+ this.element.disableContextMenu();
},
- hide : function()
- {
- if ( !this.onHide || this.onHide.call( this ) !== true )
- this.element.setStyle( 'display', 'none' );
+ _: {
+
+ /**
+ * Mark the item specified by the index as current activated.
+ */
+ markItem: function( index ) {
+ if ( index == -1 )
+ return;
+ var links = this.element.getElementsByTag( 'a' );
+ var item = links.getItem( this._.focusIndex = index );
+
+ // Safari need focus on the iframe window first(#3389), but we need
+ // lock the blur to avoid hiding the panel.
+ if ( CKEDITOR.env.webkit || CKEDITOR.env.opera )
+ item.getDocument().getWindow().focus();
+ item.focus();
+
+ this.onMark && this.onMark( item );
+ }
},
- onKeyDown : function( keystroke )
- {
- var keyAction = this.keys[ keystroke ];
- switch ( keyAction )
- {
- // Move forward.
- case 'next' :
- var index = this._.focusIndex,
- links = this.element.getElementsByTag( 'a' ),
- link;
-
- while ( ( link = links.getItem( ++index ) ) )
- {
- // Move the focus only if the element is marked with
- // the _cke_focus and it it's visible (check if it has
- // width).
- if ( link.getAttribute( '_cke_focus' ) && link.$.offsetWidth )
- {
- this._.focusIndex = index;
- link.focus();
- break;
+ proto: {
+ show: function() {
+ this.element.setStyle( 'display', '' );
+ },
+
+ hide: function() {
+ if ( !this.onHide || this.onHide.call( this ) !== true )
+ this.element.setStyle( 'display', 'none' );
+ },
+
+ onKeyDown: function( keystroke ) {
+ var keyAction = this.keys[ keystroke ];
+ switch ( keyAction ) {
+ // Move forward.
+ case 'next':
+ var index = this._.focusIndex,
+ links = this.element.getElementsByTag( 'a' ),
+ link;
+
+ while ( ( link = links.getItem( ++index ) ) ) {
+ // Move the focus only if the element is marked with
+ // the _cke_focus and it it's visible (check if it has
+ // width).
+ if ( link.getAttribute( '_cke_focus' ) && link.$.offsetWidth ) {
+ this._.focusIndex = index;
+ link.focus();
+ break;
+ }
}
- }
- return false;
-
- // Move backward.
- case 'prev' :
- index = this._.focusIndex;
- links = this.element.getElementsByTag( 'a' );
-
- while ( index > 0 && ( link = links.getItem( --index ) ) )
- {
- // Move the focus only if the element is marked with
- // the _cke_focus and it it's visible (check if it has
- // width).
- if ( link.getAttribute( '_cke_focus' ) && link.$.offsetWidth )
- {
- this._.focusIndex = index;
- link.focus();
- break;
+ return false;
+
+ // Move backward.
+ case 'prev':
+ index = this._.focusIndex;
+ links = this.element.getElementsByTag( 'a' );
+
+ while ( index > 0 && ( link = links.getItem( --index ) ) ) {
+ // Move the focus only if the element is marked with
+ // the _cke_focus and it it's visible (check if it has
+ // width).
+ if ( link.getAttribute( '_cke_focus' ) && link.$.offsetWidth ) {
+ this._.focusIndex = index;
+ link.focus();
+ break;
+ }
}
- }
- return false;
+ return false;
- case 'click' :
- index = this._.focusIndex;
- link = index >= 0 && this.element.getElementsByTag( 'a' ).getItem( index );
+ case 'click':
+ case 'mouseup':
+ index = this._.focusIndex;
+ link = index >= 0 && this.element.getElementsByTag( 'a' ).getItem( index );
- if ( link )
- link.$.click ? link.$.click() : link.$.onclick();
+ if ( link )
+ link.$[ keyAction ] ? link.$[ keyAction ]() : link.$[ 'on' + keyAction ]();
- return false;
- }
+ return false;
+ }
- return true;
+ return true;
+ }
}
- }
-});
+ });
+
+})();
+
+/**
+ * Fired when a panel is added to the document.
+ *
+ * @event ariaWidget
+ * @member CKEDITOR
+ * @param {Object} data The element wrapping the panel.
+ */
diff --git a/devel/third-party/ckeditor/plugins/panelbutton/plugin.js b/devel/third-party/ckeditor/plugins/panelbutton/plugin.js
index 4e017b4..14f6498 100644
--- a/devel/third-party/ckeditor/plugins/panelbutton/plugin.js
+++ b/devel/third-party/ckeditor/plugins/panelbutton/plugin.js
@@ -1,147 +1,138 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'panelbutton',
-{
- requires : [ 'button' ],
- beforeInit : function( editor )
- {
- editor.ui.addHandler( CKEDITOR.UI_PANELBUTTON, CKEDITOR.ui.panelButton.handler );
- }
-});
-
-/**
- * Button UI element.
- * @constant
- * @example
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-CKEDITOR.UI_PANELBUTTON = 4;
-(function()
-{
- var clickFn = function( editor )
- {
- var _ = this._;
+CKEDITOR.plugins.add( 'panelbutton', {
+ requires: 'button',
+ onLoad: function() {
+ function clickFn( editor ) {
+ var _ = this._;
- if ( _.state == CKEDITOR.TRISTATE_DISABLED )
- return;
+ if ( _.state == CKEDITOR.TRISTATE_DISABLED )
+ return;
- this.createPanel( editor );
-
- if ( _.on )
- {
- _.panel.hide();
- return;
- }
+ this.createPanel( editor );
- _.panel.showBlock( this._.id, this.document.getById( this._.id ), 4 );
- };
-
-
- CKEDITOR.ui.panelButton = CKEDITOR.tools.createClass(
- {
- base : CKEDITOR.ui.button,
-
- $ : function( definition )
- {
- // We don't want the panel definition in this object.
- var panelDefinition = definition.panel;
- delete definition.panel;
-
- this.base( definition );
+ if ( _.on ) {
+ _.panel.hide();
+ return;
+ }
- this.document = ( panelDefinition
- && panelDefinition.parent
- && panelDefinition.parent.getDocument() )
- || CKEDITOR.document;
+ _.panel.showBlock( this._.id, this.document.getById( this._.id ), 4 );
+ }
- panelDefinition.block =
- {
- attributes : panelDefinition.attributes
- };
+ /**
+ * @class
+ * @extends CKEDITOR.ui.button
+ * @todo class and methods
+ */
+ CKEDITOR.ui.panelButton = CKEDITOR.tools.createClass({
+ base: CKEDITOR.ui.button,
+
+ /**
+ * Creates a panelButton class instance.
+ *
+ * @constructor
+ */
+ $: function( definition ) {
+ // We don't want the panel definition in this object.
+ var panelDefinition = definition.panel || {};
+ delete definition.panel;
+
+ this.base( definition );
+
+ this.document = ( panelDefinition.parent && panelDefinition.parent.getDocument() ) || CKEDITOR.document;
+
+ panelDefinition.block = {
+ attributes: panelDefinition.attributes
+ };
+ panelDefinition.toolbarRelated = true;
+
+ this.hasArrow = true;
+
+ this.click = clickFn;
+
+ this._ = {
+ panelDefinition: panelDefinition
+ };
+ },
+
+ statics: {
+ handler: {
+ create: function( definition ) {
+ return new CKEDITOR.ui.panelButton( definition );
+ }
+ }
+ },
- this.hasArrow = true;
+ proto: {
+ createPanel: function( editor ) {
+ var _ = this._;
- this.click = clickFn;
+ if ( _.panel )
+ return;
- this._ =
- {
- panelDefinition : panelDefinition
- };
- },
+ var panelDefinition = this._.panelDefinition,
+ panelBlockDefinition = this._.panelDefinition.block,
+ panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
+ panel = this._.panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
+ block = panel.addBlock( _.id, panelBlockDefinition ),
+ me = this;
- statics :
- {
- handler :
- {
- create : function( definition )
- {
- return new CKEDITOR.ui.panelButton( definition );
- }
- }
- },
-
- proto :
- {
- createPanel : function( editor )
- {
- var _ = this._;
-
- if ( _.panel )
- return;
-
- var panelDefinition = this._.panelDefinition || {},
- panelBlockDefinition = this._.panelDefinition.block,
- panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
- panel = this._.panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
- block = panel.addBlock( _.id, panelBlockDefinition ),
- me = this;
-
- panel.onShow = function()
- {
+ panel.onShow = function() {
if ( me.className )
- this.element.getFirst().addClass( me.className + '_panel' );
+ this.element.addClass( me.className + '_panel' );
- _.oldState = me._.state;
me.setState( CKEDITOR.TRISTATE_ON );
_.on = 1;
+ me.editorFocus && editor.focus();
+
if ( me.onOpen )
me.onOpen();
};
- panel.onHide = function()
- {
+ panel.onHide = function( preventOnClose ) {
if ( me.className )
this.element.getFirst().removeClass( me.className + '_panel' );
- me.setState( _.oldState );
+ me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
_.on = 0;
- if ( me.onClose )
+ if ( !preventOnClose && me.onClose )
me.onClose();
};
- panel.onEscape = function()
- {
- panel.hide();
+ panel.onEscape = function() {
+ panel.hide( 1 );
me.document.getById( _.id ).focus();
};
- if ( this.onBlock )
- this.onBlock( panel, block );
+ if ( this.onBlock )
+ this.onBlock( panel, block );
- block.onHide = function()
- {
- _.on = 0;
- me.setState( CKEDITOR.TRISTATE_OFF );
- };
+ block.onHide = function() {
+ _.on = 0;
+ me.setState( CKEDITOR.TRISTATE_OFF );
+ };
+ }
}
- }
- });
+ });
-})();
+ },
+ beforeInit: function( editor ) {
+ editor.ui.addHandler( CKEDITOR.UI_PANELBUTTON, CKEDITOR.ui.panelButton.handler );
+ }
+});
+
+/**
+ * Button UI element.
+ *
+ * @readonly
+ * @property {String} [='panelbutton']
+ * @member CKEDITOR
+ */
+CKEDITOR.UI_PANELBUTTON = 'panelbutton';
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/filter/default.js b/devel/third-party/ckeditor/plugins/pastefromword/filter/default.js
index 61ceaf8..c773a18 100644
--- a/devel/third-party/ckeditor/plugins/pastefromword/filter/default.js
+++ b/devel/third-party/ckeditor/plugins/pastefromword/filter/default.js
@@ -1,35 +1,30 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-(function()
-{
+(function() {
var fragmentPrototype = CKEDITOR.htmlParser.fragment.prototype,
elementPrototype = CKEDITOR.htmlParser.element.prototype;
- fragmentPrototype.onlyChild = elementPrototype.onlyChild = function()
- {
+ fragmentPrototype.onlyChild = elementPrototype.onlyChild = function() {
var children = this.children,
count = children.length,
firstChild = ( count == 1 ) && children[ 0 ];
return firstChild || null;
};
- elementPrototype.removeAnyChildWithName = function( tagName )
- {
+ elementPrototype.removeAnyChildWithName = function( tagName ) {
var children = this.children,
childs = [],
child;
- for ( var i = 0; i < children.length; i++ )
- {
+ for ( var i = 0; i < children.length; i++ ) {
child = children[ i ];
if ( !child.name )
continue;
- if ( child.name == tagName )
- {
+ if ( child.name == tagName ) {
childs.push( child );
children.splice( i--, 1 );
}
@@ -38,25 +33,21 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return childs;
};
- elementPrototype.getAncestor = function( tagNameRegex )
- {
+ elementPrototype.getAncestor = function( tagNameRegex ) {
var parent = this.parent;
while ( parent && !( parent.name && parent.name.match( tagNameRegex ) ) )
parent = parent.parent;
return parent;
};
- fragmentPrototype.firstChild = elementPrototype.firstChild = function( evaluator )
- {
+ fragmentPrototype.firstChild = elementPrototype.firstChild = function( evaluator ) {
var child;
- for ( var i = 0 ; i < this.children.length ; i++ )
- {
+ for ( var i = 0; i < this.children.length; i++ ) {
child = this.children[ i ];
if ( evaluator( child ) )
return child;
- else if ( child.name )
- {
+ else if ( child.name ) {
child = child.firstChild( evaluator );
if ( child )
return child;
@@ -67,19 +58,16 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
};
// Adding a (set) of styles to the element's 'style' attributes.
- elementPrototype.addStyle = function( name, value, isPrepend )
- {
- var styleText, addingStyleText = '';
+ elementPrototype.addStyle = function( name, value, isPrepend ) {
+ var styleText,
+ addingStyleText = '';
// name/value pair.
if ( typeof value == 'string' )
addingStyleText += name + ':' + value + ';';
- else
- {
+ else {
// style literal.
- if ( typeof name == 'object' )
- {
- for ( var style in name )
- {
+ if ( typeof name == 'object' ) {
+ for ( var style in name ) {
if ( name.hasOwnProperty( style ) )
addingStyleText += style + ':' + name[ style ] + ';';
}
@@ -96,488 +84,549 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
styleText = this.attributes.style || '';
- styleText = ( isPrepend ?
- [ addingStyleText, styleText ]
- : [ styleText, addingStyleText ] ).join( ';' );
+ styleText = ( isPrepend ? [ addingStyleText, styleText ] : [ styleText, addingStyleText ] ).join( ';' );
this.attributes.style = styleText.replace( /^;|;(?=;)/, '' );
};
+ // Retrieve a style property value of the element.
+ elementPrototype.getStyle = function( name ) {
+ var styles = this.attributes.style;
+ if ( styles ) {
+ styles = CKEDITOR.tools.parseCssText( styles, 1 );
+ return styles[ name ];
+ }
+ };
+
/**
* Return the DTD-valid parent tag names of the specified one.
- * @param tagName
+ *
+ * @member CKEDITOR.dtd
+ * @param {String} tagName
+ * @returns {Object}
*/
- CKEDITOR.dtd.parentOf = function( tagName )
- {
+ CKEDITOR.dtd.parentOf = function( tagName ) {
var result = {};
- for ( var tag in this )
- {
+ for ( var tag in this ) {
if ( tag.indexOf( '$' ) == -1 && this[ tag ][ tagName ] )
result[ tag ] = 1;
}
return result;
};
- var cssLengthRelativeUnit = /^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i;
- var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/; // e.g. 0px 0pt 0px
+ // 1. move consistent list item styles up to list root.
+ // 2. clear out unnecessary list item numbering.
+ function postProcessList( list ) {
+ var children = list.children,
+ child, attrs,
+ count = list.children.length,
+ match, mergeStyle,
+ styleTypeRegexp = /list-style-type:(.*?)(?:;|$)/,
+ stylesFilter = CKEDITOR.plugins.pastefromword.filters.stylesFilter;
+
+ attrs = list.attributes;
+ if ( styleTypeRegexp.exec( attrs.style ) )
+ return;
+
+ for ( var i = 0; i < count; i++ ) {
+ child = children[ i ];
- var listBaseIndent = 0,
- previousListItemMargin;
+ if ( child.attributes.value && Number( child.attributes.value ) == i + 1 )
+ delete child.attributes.value;
- CKEDITOR.plugins.pastefromword =
- {
- utils :
- {
- // Create a <cke:listbullet> which indicate an list item type.
- createListBulletMarker : function ( bulletStyle, bulletText )
- {
- var marker = new CKEDITOR.htmlParser.element( 'cke:listbullet' ),
- listType;
-
- // TODO: Support more list style type from MS-Word.
- if ( !bulletStyle )
- {
- bulletStyle = 'decimal';
- listType = 'ol';
- }
- else if ( bulletStyle[ 2 ] )
- {
- if ( !isNaN( bulletStyle[ 1 ] ) )
- bulletStyle = 'decimal';
- // No way to distinguish between Roman numerals and Alphas,
- // detect them as a whole.
- else if ( /^[a-z]+$/.test( bulletStyle[ 1 ] ) )
- bulletStyle = 'lower-alpha';
- else if ( /^[A-Z]+$/.test( bulletStyle[ 1 ] ) )
- bulletStyle = 'upper-alpha';
- // Simply use decimal for the rest forms of unrepresentable
- // numerals, e.g. Chinese...
- else
- bulletStyle = 'decimal';
-
- listType = 'ol';
- }
- else
- {
- if ( /[l\u00B7\u2002]/.test( bulletStyle[ 1 ] ) )
- bulletStyle = 'disc';
- else if ( /[\u006F\u00D8]/.test( bulletStyle[ 1 ] ) )
- bulletStyle = 'circle';
- else if ( /[\u006E\u25C6]/.test( bulletStyle[ 1 ] ) )
- bulletStyle = 'square';
- else
- bulletStyle = 'disc';
-
- listType = 'ul';
+ match = styleTypeRegexp.exec( child.attributes.style );
+
+ if ( match ) {
+ if ( match[ 1 ] == mergeStyle || !mergeStyle )
+ mergeStyle = match[ 1 ];
+ else {
+ mergeStyle = null;
+ break;
}
+ }
+ }
- // Represent list type as CSS style.
- marker.attributes =
- {
- 'cke:listtype' : listType,
- 'style' : 'list-style-type:' + bulletStyle + ';'
- };
+ if ( mergeStyle ) {
+ for ( i = 0; i < count; i++ ) {
+ attrs = children[ i ].attributes;
+ attrs.style && ( attrs.style = stylesFilter( [ [ 'list-style-type' ] ] )( attrs.style ) || '' );
+ }
+
+ list.addStyle( 'list-style-type', mergeStyle );
+ }
+ }
+
+ var cssLengthRelativeUnit = /^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i;
+ var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/; // e.g. 0px 0pt 0px
+ var romanLiternalPattern = '^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$',
+ lowerRomanLiteralRegex = new RegExp( romanLiternalPattern ),
+ upperRomanLiteralRegex = new RegExp( romanLiternalPattern.toUpperCase() );
+
+ var orderedPatterns = { 'decimal': /\d+/, 'lower-roman': lowerRomanLiteralRegex, 'upper-roman': upperRomanLiteralRegex, 'lower-alpha': /^[a-z]+$/, 'upper-alpha': /^[A-Z]+$/ },
+ unorderedPatterns = { 'disc': /[l\u00B7\u2002]/, 'circle': /[\u006F\u00D8]/, 'square': /[\u006E\u25C6]/ },
+ listMarkerPatterns = { 'ol': orderedPatterns, 'ul': unorderedPatterns },
+ romans = [ [ 1000, 'M' ], [ 900, 'CM' ], [ 500, 'D' ], [ 400, 'CD' ], [ 100, 'C' ], [ 90, 'XC' ], [ 50, 'L' ], [ 40, 'XL' ], [ 10, 'X' ], [ 9, 'IX' ], [ 5, 'V' ], [ 4, 'IV' ], [ 1, 'I' ] ],
+ alpahbets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ // Convert roman numbering back to decimal.
+ function fromRoman( str ) {
+ str = str.toUpperCase();
+ var l = romans.length,
+ retVal = 0;
+ for ( var i = 0; i < l; ++i ) {
+ for ( var j = romans[ i ], k = j[ 1 ].length; str.substr( 0, k ) == j[ 1 ]; str = str.substr( k ) )
+ retVal += j[ 0 ];
+ }
+ return retVal;
+ }
+
+ // Convert alphabet numbering back to decimal.
+ function fromAlphabet( str ) {
+ str = str.toUpperCase();
+ var l = alpahbets.length,
+ retVal = 1;
+ for ( var x = 1; str.length > 0; x *= l ) {
+ retVal += alpahbets.indexOf( str.charAt( str.length - 1 ) ) * x;
+ str = str.substr( 0, str.length - 1 );
+ }
+ return retVal;
+ }
+
+ var listBaseIndent = 0,
+ previousListItemMargin = null,
+ previousListId;
+
+ var plugin = ( CKEDITOR.plugins.pastefromword = {
+ utils: {
+ // Create a <cke:listbullet> which indicate an list item type.
+ createListBulletMarker: function( bullet, bulletText ) {
+ var marker = new CKEDITOR.htmlParser.element( 'cke:listbullet' );
+ marker.attributes = { 'cke:listsymbol': bullet[ 0 ] };
marker.add( new CKEDITOR.htmlParser.text( bulletText ) );
return marker;
},
- isListBulletIndicator : function( element )
- {
+ isListBulletIndicator: function( element ) {
var styleText = element.attributes && element.attributes.style;
if ( /mso-list\s*:\s*Ignore/i.test( styleText ) )
return true;
},
- isContainingOnlySpaces : function( element )
- {
+ isContainingOnlySpaces: function( element ) {
var text;
- return ( ( text = element.onlyChild() )
- && ( /^(:?\s| )+$/ ).test( text.value ) );
+ return ( ( text = element.onlyChild() ) && ( /^(:?\s| )+$/ ).test( text.value ) );
},
- resolveList : function( element )
- {
+ resolveList: function( element ) {
// <cke:listbullet> indicate a list item.
var attrs = element.attributes,
listMarker;
- if ( ( listMarker = element.removeAnyChildWithName( 'cke:listbullet' ) )
- && listMarker.length
- && ( listMarker = listMarker[ 0 ] ) )
- {
+ if ( ( listMarker = element.removeAnyChildWithName( 'cke:listbullet' ) ) && listMarker.length && ( listMarker = listMarker[ 0 ] ) ) {
element.name = 'cke:li';
- if ( attrs.style )
- {
- attrs.style = CKEDITOR.plugins.pastefromword.filters.stylesFilter(
- [
- // Text-indent is not representing list item level any more.
- [ 'text-indent' ],
- [ 'line-height' ],
- // Resolve indent level from 'margin-left' value.
- [ ( /^margin(:?-left)?$/ ), null, function( margin )
- {
- // Be able to deal with component/short-hand form style.
- var values = margin.split( ' ' );
- margin = values[ 3 ] || values[ 1 ] || values [ 0 ];
- margin = parseInt( margin, 10 );
-
- // Figure out the indent unit by looking at the first increament.
- if ( !listBaseIndent && previousListItemMargin && margin > previousListItemMargin )
- listBaseIndent = margin - previousListItemMargin;
-
- attrs[ 'cke:margin' ] = previousListItemMargin = margin;
- } ]
- ] )( attrs.style, element ) || '' ;
+ if ( attrs.style ) {
+ attrs.style = plugin.filters.stylesFilter( [
+ // Text-indent is not representing list item level any more.
+ [ 'text-indent' ],
+ [ 'line-height' ],
+ // First attempt is to resolve indent level from on a constant margin increment.
+ [ ( /^margin(:?-left)?$/ ), null, function( margin ) {
+ // Deal with component/short-hand form.
+ var values = margin.split( ' ' );
+ margin = CKEDITOR.tools.convertToPx( values[ 3 ] || values[ 1 ] || values[ 0 ] );
+
+ // Figure out the indent unit by checking the first time of incrementation.
+ if ( !listBaseIndent && previousListItemMargin !== null && margin > previousListItemMargin )
+ listBaseIndent = margin - previousListItemMargin;
+
+ previousListItemMargin = margin;
+
+ attrs[ 'cke:indent' ] = listBaseIndent && ( Math.ceil( margin / listBaseIndent ) + 1 ) || 1;
+ }],
+ // The best situation: "mso-list:l0 level1 lfo2" tells the belonged list root, list item indentation, etc.
+ [ ( /^mso-list$/ ), null, function( val ) {
+ val = val.split( ' ' );
+ var listId = Number( val[ 0 ].match( /\d+/ ) ),
+ indent = Number( val[ 1 ].match( /\d+/ ) );
+
+ if ( indent == 1 ) {
+ listId !== previousListId && ( attrs[ 'cke:reset' ] = 1 );
+ previousListId = listId;
+ }
+ attrs[ 'cke:indent' ] = indent;
+ }]
+ ] )( attrs.style, element ) || '';
}
- // Inherit list-type-style from bullet.
- var listBulletAttrs = listMarker.attributes,
- listBulletStyle = listBulletAttrs.style;
+ // First level list item might be presented without a margin.
- element.addStyle( listBulletStyle );
- CKEDITOR.tools.extend( attrs, listBulletAttrs );
+
+ // In case all above doesn't apply.
+ if ( !attrs[ 'cke:indent' ] ) {
+ previousListItemMargin = 0;
+ attrs[ 'cke:indent' ] = 1;
+ }
+
+ // Inherit attributes from bullet.
+ CKEDITOR.tools.extend( attrs, listMarker.attributes );
return true;
}
+ // Current list disconnected.
+ else
+ previousListId = previousListItemMargin = listBaseIndent = null;
return false;
},
- // Convert various length units to 'px' in ignorance of DPI.
- convertToPx : ( function ()
- {
- var calculator = CKEDITOR.dom.element.createFromHtml(
- '<div style="position:absolute;left:-9999px;' +
- 'top:-9999px;margin:0px;padding:0px;border:0px;"' +
- '></div>', CKEDITOR.document );
- CKEDITOR.document.getBody().append( calculator );
-
- return function( cssLength )
- {
- if ( cssLengthRelativeUnit.test( cssLength ) )
- {
- calculator.setStyle( 'width', cssLength );
- return calculator.$.clientWidth + 'px';
- }
-
- return cssLength;
- };
- } )(),
-
// Providing a shorthand style then retrieve one or more style component values.
- getStyleComponents : ( function()
- {
- var calculator = CKEDITOR.dom.element.createFromHtml(
- '<div style="position:absolute;left:-9999px;top:-9999px;"></div>',
- CKEDITOR.document );
+ getStyleComponents: (function() {
+ var calculator = CKEDITOR.dom.element.createFromHtml( '<div style="position:absolute;left:-9999px;top:-9999px;"></div>', CKEDITOR.document );
CKEDITOR.document.getBody().append( calculator );
- return function( name, styleValue, fetchList )
- {
+ return function( name, styleValue, fetchList ) {
calculator.setStyle( name, styleValue );
var styles = {},
count = fetchList.length;
for ( var i = 0; i < count; i++ )
- styles[ fetchList[ i ] ] = calculator.getStyle( fetchList[ i ] );
+ styles[ fetchList[ i ] ] = calculator.getStyle( fetchList[ i ] );
return styles;
};
- } )(),
+ })(),
- listDtdParents : CKEDITOR.dtd.parentOf( 'ol' )
+ listDtdParents: CKEDITOR.dtd.parentOf( 'ol' )
},
- filters :
- {
- // Transform a normal list into flat list items only presentation.
- // E.g. <ul><li>level1<ol><li>level2</li></ol></li> =>
- // <cke:li cke:listtype="ul" cke:indent="1">level1</cke:li>
- // <cke:li cke:listtype="ol" cke:indent="2">level2</cke:li>
- flattenList : function( element )
- {
- var attrs = element.attributes,
- parent = element.parent;
-
- var listStyleType,
- indentLevel = 1;
-
- // Resolve how many level nested.
- while ( parent )
- {
- parent.attributes && parent.attributes[ 'cke:list'] && indentLevel++;
- parent = parent.parent;
- }
+ filters: {
+ // Transform a normal list into flat list items only presentation.
+ // E.g. <ul><li>level1<ol><li>level2</li></ol></li> =>
+ // <cke:li cke:listtype="ul" cke:indent="1">level1</cke:li>
+ // <cke:li cke:listtype="ol" cke:indent="2">level2</cke:li>
+ flattenList: function( element, level ) {
+ level = typeof level == 'number' ? level : 1;
- // All list items are of the same type.
- switch ( attrs.type )
- {
- case 'a' :
- listStyleType = 'lower-alpha';
- break;
+ var attrs = element.attributes,
+ listStyleType;
+
+ // All list items are of the same type.
+ switch ( attrs.type ) {
+ case 'a':
+ listStyleType = 'lower-alpha';
+ break;
+ case '1':
+ listStyleType = 'decimal';
+ break;
// TODO: Support more list style type from MS-Word.
- }
+ }
- var children = element.children,
- child;
+ var children = element.children,
+ child;
- for ( var i = 0; i < children.length; i++ )
- {
- child = children[ i ];
- var attributes = child.attributes;
+ for ( var i = 0; i < children.length; i++ ) {
+ child = children[ i ];
- if ( child.name in CKEDITOR.dtd.$listItem )
- {
- var listItemChildren = child.children,
- count = listItemChildren.length,
- last = listItemChildren[ count - 1 ];
-
- // Move out nested list.
- if ( last.name in CKEDITOR.dtd.$list )
- {
- children.splice( i + 1, 0, last );
- last.parent = element;
-
- // Remove the parent list item if it's just a holder.
- if ( !--listItemChildren.length )
- children.splice( i, 1 );
- }
+ if ( child.name in CKEDITOR.dtd.$listItem ) {
+ var attributes = child.attributes,
+ listItemChildren = child.children,
+ count = listItemChildren.length,
+ last = listItemChildren[ count - 1 ];
- child.name = 'cke:li';
- attributes[ 'cke:indent' ] = indentLevel;
- previousListItemMargin = 0;
- attributes[ 'cke:listtype' ] = element.name;
- listStyleType && child.addStyle( 'list-style-type', listStyleType, true );
+ // Move out nested list.
+ if ( last.name in CKEDITOR.dtd.$list ) {
+ element.add( last, i + 1 );
+
+ // Remove the parent list item if it's just a holder.
+ if ( !--listItemChildren.length )
+ children.splice( i--, 1 );
}
+
+ child.name = 'cke:li';
+
+ // Inherit numbering from list root on the first list item.
+ attrs.start && !i && ( attributes.value = attrs.start );
+
+ plugin.filters.stylesFilter( [
+ [ 'tab-stops', null, function( val ) {
+ var margin = val.split( ' ' )[ 1 ].match( cssLengthRelativeUnit );
+ margin && ( previousListItemMargin = CKEDITOR.tools.convertToPx( margin[ 0 ] ) );
+ }],
+ ( level == 1 ? [ 'mso-list', null, function( val ) {
+ val = val.split( ' ' );
+ var listId = Number( val[ 0 ].match( /\d+/ ) );
+ listId !== previousListId && ( attributes[ 'cke:reset' ] = 1 );
+ previousListId = listId;
+ }] : null )
+ ] )( attributes.style );
+
+ attributes[ 'cke:indent' ] = level;
+ attributes[ 'cke:listtype' ] = element.name;
+ attributes[ 'cke:list-style-type' ] = listStyleType;
+ }
+ // Flatten sub list.
+ else if ( child.name in CKEDITOR.dtd.$list ) {
+ // Absorb sub list children.
+ arguments.callee.apply( this, [ child, level + 1 ] );
+ children = children.slice( 0, i ).concat( child.children ).concat( children.slice( i + 1 ) );
+ element.children = [];
+ for ( var j = 0, num = children.length; j < num; j++ )
+ element.add( children[ j ] );
}
+ }
- delete element.name;
+ delete element.name;
- // We're loosing tag name here, signalize this element as a list.
- attrs[ 'cke:list' ] = 1;
- },
+ // We're loosing tag name here, signalize this element as a list.
+ attrs[ 'cke:list' ] = 1;
+ },
- /**
- * Try to collect all list items among the children and establish one
- * or more HTML list structures for them.
- * @param element
- */
- assembleList : function( element )
- {
- var children = element.children, child,
- listItem, // The current processing cke:li element.
- listItemAttrs,
- listType, // Determine the root type of the list.
- listItemIndent, // Indent level of current list item.
- lastListItem, // The previous one just been added to the list.
- list, parentList, // Current staging list and it's parent list if any.
- indent;
-
- for ( var i = 0; i < children.length; i++ )
- {
- child = children[ i ];
-
- if ( 'cke:li' == child.name )
- {
- child.name = 'li';
- listItem = child;
- listItemAttrs = listItem.attributes;
- listType = listItem.attributes[ 'cke:listtype' ];
-
- // List item indent level might come from a real list indentation or
- // been resolved from a pseudo list item's margin value, even get
- // no indentation at all.
- listItemIndent = parseInt( listItemAttrs[ 'cke:indent' ], 10 )
- || listBaseIndent && ( Math.ceil( listItemAttrs[ 'cke:margin' ] / listBaseIndent ) )
- || 1;
-
- // Ignore the 'list-style-type' attribute if it's matched with
- // the list root element's default style type.
- listItemAttrs.style && ( listItemAttrs.style =
- CKEDITOR.plugins.pastefromword.filters.stylesFilter(
- [
- [ 'list-style-type', listType == 'ol' ? 'decimal' : 'disc' ]
- ] )( listItemAttrs.style )
- || '' );
-
- if ( !list )
- {
- list = new CKEDITOR.htmlParser.element( listType );
- list.add( listItem );
- children[ i ] = list;
- }
- else
- {
- if ( listItemIndent > indent )
- {
- list = new CKEDITOR.htmlParser.element( listType );
- list.add( listItem );
- lastListItem.add( list );
- }
- else if ( listItemIndent < indent )
- {
- // There might be a negative gap between two list levels. (#4944)
- var diff = indent - listItemIndent,
- parent;
- while ( diff-- && ( parent = list.parent ) )
- list = parent.parent;
-
- list.add( listItem );
+ // Try to collect all list items among the children and establish one
+ // or more HTML list structures for them.
+ // @param element
+ assembleList: function( element ) {
+ var children = element.children,
+ child, listItem, // The current processing cke:li element.
+ listItemAttrs, listItemIndent, // Indent level of current list item.
+ lastIndent, lastListItem, // The previous one just been added to the list.
+ list, // Current staging list and it's parent list if any.
+ openedLists = [],
+ previousListStyleType, previousListType;
+
+ // Properties of the list item are to be resolved from the list bullet.
+ var bullet, listType, listStyleType, itemNumeric;
+
+ for ( var i = 0; i < children.length; i++ ) {
+ child = children[ i ];
+
+ if ( 'cke:li' == child.name ) {
+ child.name = 'li';
+ listItem = child;
+ listItemAttrs = listItem.attributes;
+ bullet = listItemAttrs[ 'cke:listsymbol' ];
+ bullet = bullet && bullet.match( /^(?:[(]?)([^\s]+?)([.)]?)$/ );
+ listType = listStyleType = itemNumeric = null;
+
+ if ( listItemAttrs[ 'cke:ignored' ] ) {
+ children.splice( i--, 1 );
+ continue;
+ }
+
+
+ // This's from a new list root.
+ listItemAttrs[ 'cke:reset' ] && ( list = lastIndent = lastListItem = null );
+
+ // List item indent level might come from a real list indentation or
+ // been resolved from a pseudo list item's margin value, even get
+ // no indentation at all.
+ listItemIndent = Number( listItemAttrs[ 'cke:indent' ] );
+
+ // We're moving out of the current list, cleaning up.
+ if ( listItemIndent != lastIndent )
+ previousListType = previousListStyleType = null;
+
+ // List type and item style are already resolved.
+ if ( !bullet ) {
+ listType = listItemAttrs[ 'cke:listtype' ] || 'ol';
+ listStyleType = listItemAttrs[ 'cke:list-style-type' ];
+ } else {
+ // Probably share the same list style type with previous list item,
+ // give it priority to avoid ambiguous between C(Alpha) and C.(Roman).
+ if ( previousListType && listMarkerPatterns[ previousListType ][ previousListStyleType ].test( bullet[ 1 ] ) ) {
+ listType = previousListType;
+ listStyleType = previousListStyleType;
+ } else {
+ for ( var type in listMarkerPatterns ) {
+ for ( var style in listMarkerPatterns[ type ] ) {
+ if ( listMarkerPatterns[ type ][ style ].test( bullet[ 1 ] ) ) {
+ // Small numbering has higher priority, when dealing with ambiguous
+ // between C(Alpha) and C.(Roman).
+ if ( type == 'ol' && ( /alpha|roman/ ).test( style ) ) {
+ var num = /roman/.test( style ) ? fromRoman( bullet[ 1 ] ) : fromAlphabet( bullet[ 1 ] );
+ if ( !itemNumeric || num < itemNumeric ) {
+ itemNumeric = num;
+ listType = type;
+ listStyleType = style;
+ }
+ } else {
+ listType = type;
+ listStyleType = style;
+ break;
+ }
+ }
+ }
}
- else
- list.add( listItem );
+ }
- children.splice( i--, 1 );
+ // Simply use decimal/disc for the rest forms of unrepresentable
+ // numerals, e.g. Chinese..., but as long as there a second part
+ // included, it has a bigger chance of being a order list ;)
+ !listType && ( listType = bullet[ 2 ] ? 'ol' : 'ul' );
+ }
+
+ previousListType = listType;
+ previousListStyleType = listStyleType || ( listType == 'ol' ? 'decimal' : 'disc' );
+ if ( listStyleType && listStyleType != ( listType == 'ol' ? 'decimal' : 'disc' ) )
+ listItem.addStyle( 'list-style-type', listStyleType );
+
+ // Figure out start numbering.
+ if ( listType == 'ol' && bullet ) {
+ switch ( listStyleType ) {
+ case 'decimal':
+ itemNumeric = Number( bullet[ 1 ] );
+ break;
+ case 'lower-roman':
+ case 'upper-roman':
+ itemNumeric = fromRoman( bullet[ 1 ] );
+ break;
+ case 'lower-alpha':
+ case 'upper-alpha':
+ itemNumeric = fromAlphabet( bullet[ 1 ] );
+ break;
}
- lastListItem = listItem;
- indent = listItemIndent;
+ // Always create the numbering, swipe out unnecessary ones later.
+ listItem.attributes.value = itemNumeric;
}
- else
- list = null;
- }
- listBaseIndent = 0;
- },
+ // Start the list construction.
+ if ( !list ) {
+ openedLists.push( list = new CKEDITOR.htmlParser.element( listType ) );
+ list.add( listItem );
+ children[ i ] = list;
+ } else {
+ if ( listItemIndent > lastIndent ) {
+ openedLists.push( list = new CKEDITOR.htmlParser.element( listType ) );
+ list.add( listItem );
+ lastListItem.add( list );
+ } else if ( listItemIndent < lastIndent ) {
+ // There might be a negative gap between two list levels. (#4944)
+ var diff = lastIndent - listItemIndent,
+ parent;
+ while ( diff-- && ( parent = list.parent ) )
+ list = parent.parent;
- /**
- * A simple filter which always rejecting.
- */
- falsyFilter : function( value )
- {
- return false;
- },
+ list.add( listItem );
+ } else
+ list.add( listItem );
- /**
- * A filter dedicated on the 'style' attribute filtering, e.g. dropping/replacing style properties.
- * @param styles {Array} in form of [ styleNameRegexp, styleValueRegexp,
- * newStyleValue/newStyleGenerator, newStyleName ] where only the first
- * parameter is mandatory.
- * @param whitelist {Boolean} Whether the {@param styles} will be considered as a white-list.
- */
- stylesFilter : function( styles, whitelist )
- {
- return function( styleText, element )
- {
- var rules = [];
- // html-encoded quote might be introduced by 'font-family'
- // from MS-Word which confused the following regexp. e.g.
- //'font-family: "Lucida, Console"'
- styleText
- .replace( /"/g, '"' )
- .replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,
- function( match, name, value )
- {
- name = name.toLowerCase();
- name == 'font-family' && ( value = value.replace( /["']/g, '' ) );
-
- var namePattern,
- valuePattern,
- newValue,
- newName;
- for ( var i = 0 ; i < styles.length; i++ )
- {
- if ( styles[ i ] )
- {
- namePattern = styles[ i ][ 0 ];
- valuePattern = styles[ i ][ 1 ];
- newValue = styles[ i ][ 2 ];
- newName = styles[ i ][ 3 ];
-
- if ( name.match( namePattern )
- && ( !valuePattern || value.match( valuePattern ) ) )
- {
- name = newName || name;
- whitelist && ( newValue = newValue || value );
-
- if ( typeof newValue == 'function' )
- newValue = newValue( value, element, name );
-
- // Return an couple indicate both name and value
- // changed.
- if ( newValue && newValue.push )
- name = newValue[ 0 ], newValue = newValue[ 1 ];
-
- if ( typeof newValue == 'string' )
- rules.push( [ name, newValue ] );
- return;
- }
- }
- }
+ children.splice( i--, 1 );
+ }
- !whitelist && rules.push( [ name, value ] );
+ lastListItem = listItem;
+ lastIndent = listItemIndent;
+ } else if ( list )
+ list = lastIndent = lastListItem = null;
+ }
- });
+ for ( i = 0; i < openedLists.length; i++ )
+ postProcessList( openedLists[ i ] );
- for ( var i = 0 ; i < rules.length ; i++ )
- rules[ i ] = rules[ i ].join( ':' );
- return rules.length ?
- ( rules.join( ';' ) + ';' ) : false;
- };
- },
+ list = lastIndent = lastListItem = previousListId = previousListItemMargin = listBaseIndent = null;
+ },
- /**
- * Migrate the element by decorate styles on it.
- * @param styleDefiniton
- * @param variables
- */
- elementMigrateFilter : function ( styleDefiniton, variables )
- {
- return function( element )
- {
- var styleDef =
- variables ?
- new CKEDITOR.style( styleDefiniton, variables )._.definition
- : styleDefiniton;
- element.name = styleDef.element;
- CKEDITOR.tools.extend( element.attributes, CKEDITOR.tools.clone( styleDef.attributes ) );
- element.addStyle( CKEDITOR.style.getStyleText( styleDef ) );
- };
- },
+ // A simple filter which always rejecting.
+ falsyFilter: function( value ) {
+ return false;
+ },
- /**
- * Migrate styles by creating a new nested stylish element.
- * @param styleDefinition
- */
- styleMigrateFilter : function( styleDefinition, variableName )
- {
-
- var elementMigrateFilter = this.elementMigrateFilter;
- return function( value, element )
- {
- // Build an stylish element first.
- var styleElement = new CKEDITOR.htmlParser.element( null ),
- variables = {};
-
- variables[ variableName ] = value;
- elementMigrateFilter( styleDefinition, variables )( styleElement );
- // Place the new element inside the existing span.
- styleElement.children = element.children;
- element.children = [ styleElement ];
- };
- },
+ // A filter dedicated on the 'style' attribute filtering, e.g. dropping/replacing style properties.
+ // @param styles {Array} in form of [ styleNameRegexp, styleValueRegexp,
+ // newStyleValue/newStyleGenerator, newStyleName ] where only the first
+ // parameter is mandatory.
+ // @param whitelist {Boolean} Whether the {@param styles} will be considered as a white-list.
+ stylesFilter: function( styles, whitelist ) {
+ return function( styleText, element ) {
+ var rules = [];
+ // html-encoded quote might be introduced by 'font-family'
+ // from MS-Word which confused the following regexp. e.g.
+ //'font-family: "Lucida, Console"'
+ ( styleText || '' ).replace( /"/g, '"' ).replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value ) {
+ name = name.toLowerCase();
+ name == 'font-family' && ( value = value.replace( /["']/g, '' ) );
+
+ var namePattern, valuePattern, newValue, newName;
+ for ( var i = 0; i < styles.length; i++ ) {
+ if ( styles[ i ] ) {
+ namePattern = styles[ i ][ 0 ];
+ valuePattern = styles[ i ][ 1 ];
+ newValue = styles[ i ][ 2 ];
+ newName = styles[ i ][ 3 ];
+
+ if ( name.match( namePattern ) && ( !valuePattern || value.match( valuePattern ) ) ) {
+ name = newName || name;
+ whitelist && ( newValue = newValue || value );
+
+ if ( typeof newValue == 'function' )
+ newValue = newValue( value, element, name );
+
+ // Return an couple indicate both name and value
+ // changed.
+ if ( newValue && newValue.push )
+ name = newValue[ 0 ], newValue = newValue[ 1 ];
+
+ if ( typeof newValue == 'string' )
+ rules.push( [ name, newValue ] );
+ return;
+ }
+ }
+ }
- /**
- * A filter which remove cke-namespaced-attribute on
- * all none-cke-namespaced elements.
- * @param value
- * @param element
- */
- bogusAttrFilter : function( value, element )
- {
- if ( element.name.indexOf( 'cke:' ) == -1 )
- return false;
- },
+ !whitelist && rules.push( [ name, value ] );
- /**
- * A filter which will be used to apply inline css style according the stylesheet
- * definition rules, is generated lazily when filtering.
- */
- applyStyleFilter : null
+ });
+ for ( var i = 0; i < rules.length; i++ )
+ rules[ i ] = rules[ i ].join( ':' );
+ return rules.length ? ( rules.join( ';' ) + ';' ) : false;
+ };
+ },
+
+ // Migrate the element by decorate styles on it.
+ // @param styleDefinition
+ // @param variables
+ elementMigrateFilter: function( styleDefinition, variables ) {
+ return styleDefinition ? function( element ) {
+ var styleDef = variables ? new CKEDITOR.style( styleDefinition, variables )._.definition : styleDefinition;
+ element.name = styleDef.element;
+ CKEDITOR.tools.extend( element.attributes, CKEDITOR.tools.clone( styleDef.attributes ) );
+ element.addStyle( CKEDITOR.style.getStyleText( styleDef ) );
+ } : function(){};
+ },
+
+ // Migrate styles by creating a new nested stylish element.
+ // @param styleDefinition
+ styleMigrateFilter: function( styleDefinition, variableName ) {
+
+ var elementMigrateFilter = this.elementMigrateFilter;
+ return styleDefinition ? function( value, element ) {
+ // Build an stylish element first.
+ var styleElement = new CKEDITOR.htmlParser.element( null ),
+ variables = {};
+
+ variables[ variableName ] = value;
+ elementMigrateFilter( styleDefinition, variables )( styleElement );
+ // Place the new element inside the existing span.
+ styleElement.children = element.children;
+ element.children = [ styleElement ];
+ } : function(){};
+ },
+
+ // A filter which remove cke-namespaced-attribute on
+ // all none-cke-namespaced elements.
+ // @param value
+ // @param element
+ bogusAttrFilter: function( value, element ) {
+ if ( element.name.indexOf( 'cke:' ) == -1 )
+ return false;
},
- getRules : function( editor )
- {
+ // A filter which will be used to apply inline css style according the stylesheet
+ // definition rules, is generated lazily when filtering.
+ applyStyleFilter: null
+
+ },
+
+ getRules: function( editor ) {
var dtd = CKEDITOR.dtd,
blockLike = CKEDITOR.tools.extend( {}, dtd.$block, dtd.$listItem, dtd.$tableContent ),
config = editor.config,
@@ -592,7 +641,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
isListBulletIndicator = this.utils.isListBulletIndicator,
containsNothingButSpaces = this.utils.isContainingOnlySpaces,
resolveListItem = this.utils.resolveList,
- convertToPx = this.utils.convertToPx,
+ convertToPx = function( value ) {
+ value = CKEDITOR.tools.convertToPx( value );
+ return isNaN( value ) ? value : value + 'px';
+ },
getStyleComponents = this.utils.getStyleComponents,
listDtdParents = this.utils.listDtdParents,
removeFontStyles = config.pasteFromWordRemoveFontStyles !== false,
@@ -600,45 +652,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return {
- elementNames :
- [
+ elementNames: [
// Remove script, meta and link elements.
[ ( /meta|link|script/ ), '' ]
],
- root : function( element )
- {
+ root: function( element ) {
element.filterChildren();
assembleList( element );
},
- elements :
- {
- '^' : function( element )
- {
+ elements: {
+ '^': function( element ) {
// Transform CSS style declaration to inline style.
var applyStyleFilter;
if ( CKEDITOR.env.gecko && ( applyStyleFilter = filters.applyStyleFilter ) )
applyStyleFilter( element );
},
- $ : function( element )
- {
+ $: function( element ) {
var tagName = element.name || '',
attrs = element.attributes;
// Convert length unit of width/height on blocks to
// a more editor-friendly way (px).
- if ( tagName in blockLike
- && attrs.style )
- {
- attrs.style = stylesFilter(
- [ [ ( /^(:?width|height)$/ ), null, convertToPx ] ] )( attrs.style ) || '';
+ if ( tagName in blockLike && attrs.style ) {
+ attrs.style = stylesFilter( [ [ ( /^(:?width|height)$/ ), null, convertToPx ] ] )( attrs.style ) || '';
}
// Processing headings.
- if ( tagName.match( /h\d/ ) )
- {
+ if ( tagName.match( /h\d/ ) ) {
element.filterChildren();
// Is the heading actually a list item?
if ( resolveListItem( element ) )
@@ -648,22 +691,18 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
elementMigrateFilter( config[ 'format_' + tagName ] )( element );
}
// Remove inline elements which contain only empty spaces.
- else if ( tagName in dtd.$inline )
- {
+ else if ( tagName in dtd.$inline ) {
element.filterChildren();
if ( containsNothingButSpaces( element ) )
delete element.name;
}
// Remove element with ms-office namespace,
// with it's content preserved, e.g. 'o:p'.
- else if ( tagName.indexOf( ':' ) != -1
- && tagName.indexOf( 'cke' ) == -1 )
- {
+ else if ( tagName.indexOf( ':' ) != -1 && tagName.indexOf( 'cke' ) == -1 ) {
element.filterChildren();
// Restore image real link from vml.
- if ( tagName == 'v:imagedata' )
- {
+ if ( tagName == 'v:imagedata' ) {
var href = element.attributes[ 'o:href' ];
if ( href )
element.attributes.src = href;
@@ -674,8 +713,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
// Assembling list items into a whole list.
- if ( tagName in listDtdParents )
- {
+ if ( tagName in listDtdParents ) {
element.filterChildren();
assembleList( element );
}
@@ -684,58 +722,48 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// We'll drop any style sheet, but Firefox conclude
// certain styles in a single style element, which are
// required to be changed into inline ones.
- 'style' : function( element )
- {
- if ( CKEDITOR.env.gecko )
- {
+ 'style': function( element ) {
+ if ( CKEDITOR.env.gecko ) {
// Grab only the style definition section.
var styleDefSection = element.onlyChild().value.match( /\/\* Style Definitions \*\/([\s\S]*?)\/\*/ ),
styleDefText = styleDefSection && styleDefSection[ 1 ],
rules = {}; // Storing the parsed result.
- if ( styleDefText )
- {
+ if ( styleDefText ) {
styleDefText
- // Remove line-breaks.
- .replace(/[\n\r]/g,'')
- // Extract selectors and style properties.
- .replace( /(.+?)\{(.+?)\}/g,
- function( rule, selectors, styleBlock )
- {
- selectors = selectors.split( ',' );
- var length = selectors.length, selector;
- for ( var i = 0; i < length; i++ )
- {
- // Assume MS-Word mostly generate only simple
- // selector( [Type selector][Class selector]).
- CKEDITOR.tools.trim( selectors[ i ] )
- .replace( /^(\w+)(\.[\w-]+)?$/g,
- function( match, tagName, className )
- {
- tagName = tagName || '*';
- className = className.substring( 1, className.length );
-
- // Reject MS-Word Normal styles.
- if ( className.match( /MsoNormal/ ) )
- return;
-
- if ( !rules[ tagName ] )
- rules[ tagName ] = {};
- if ( className )
- rules[ tagName ][ className ] = styleBlock;
- else
- rules[ tagName ] = styleBlock;
- } );
- }
+ // Remove line-breaks.
+ .replace( /[\n\r]/g, '' )
+ // Extract selectors and style properties.
+ .replace( /(.+?)\{(.+?)\}/g, function( rule, selectors, styleBlock ) {
+ selectors = selectors.split( ',' );
+ var length = selectors.length,
+ selector;
+ for ( var i = 0; i < length; i++ ) {
+ // Assume MS-Word mostly generate only simple
+ // selector( [Type selector][Class selector]).
+ CKEDITOR.tools.trim( selectors[ i ] ).replace( /^(\w+)(\.[\w-]+)?$/g, function( match, tagName, className ) {
+ tagName = tagName || '*';
+ className = className.substring( 1, className.length );
+
+ // Reject MS-Word Normal styles.
+ if ( className.match( /MsoNormal/ ) )
+ return;
+
+ if ( !rules[ tagName ] )
+ rules[ tagName ] = {};
+ if ( className )
+ rules[ tagName ][ className ] = styleBlock;
+ else
+ rules[ tagName ] = styleBlock;
});
+ }
+ });
- filters.applyStyleFilter = function( element )
- {
+ filters.applyStyleFilter = function( element ) {
var name = rules[ '*' ] ? '*' : element.name,
className = element.attributes && element.attributes[ 'class' ],
style;
- if ( name in rules )
- {
+ if ( name in rules ) {
style = rules[ name ];
if ( typeof style == 'object' )
style = style[ className ];
@@ -748,8 +776,22 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return false;
},
- 'p' : function( element )
- {
+ 'p': function( element ) {
+ // A a fall-back approach to resolve list item in browsers
+ // that doesn't include "mso-list:Ignore" on list bullets,
+ // note it's not perfect as not all list style (e.g. "heading list") is shipped
+ // with this pattern. (#6662)
+ if ( ( /MsoListParagraph/i ).exec( element.attributes[ 'class' ] ) || element.getStyle( 'mso-list' ) ) {
+ var bulletText = element.firstChild( function( node ) {
+ return node.type == CKEDITOR.NODE_TEXT && !containsNothingButSpaces( node.parent );
+ });
+
+ var bullet = bulletText && bulletText.parent;
+ if ( bullet ) {
+ bullet.addStyle( 'mso-list', 'Ignore' );
+ }
+ }
+
element.filterChildren();
// Is the paragraph actually a list item?
@@ -758,53 +800,46 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Adapt paragraph formatting to editor's convention
// according to enter-mode.
- if ( config.enterMode == CKEDITOR.ENTER_BR )
- {
+ if ( config.enterMode == CKEDITOR.ENTER_BR ) {
// We suffer from attribute/style lost in this situation.
delete element.name;
element.add( new CKEDITOR.htmlParser.element( 'br' ) );
- }
- else
+ } else
elementMigrateFilter( config[ 'format_' + ( config.enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) ] )( element );
},
- 'div' : function( element )
- {
+ 'div': function( element ) {
// Aligned table with no text surrounded is represented by a wrapper div, from which
// table cells inherit as text-align styles, which is wrong.
// Instead we use a clear-float div after the table to properly achieve the same layout.
var singleChild = element.onlyChild();
- if ( singleChild && singleChild.name == 'table' )
- {
+ if ( singleChild && singleChild.name == 'table' ) {
var attrs = element.attributes;
singleChild.attributes = CKEDITOR.tools.extend( singleChild.attributes, attrs );
attrs.style && singleChild.addStyle( attrs.style );
var clearFloatDiv = new CKEDITOR.htmlParser.element( 'div' );
- clearFloatDiv.addStyle( 'clear' ,'both' );
+ clearFloatDiv.addStyle( 'clear', 'both' );
element.add( clearFloatDiv );
delete element.name;
}
},
- 'td' : function ( element )
- {
+ 'td': function( element ) {
// 'td' in 'thead' is actually <th>.
- if ( element.getAncestor( 'thead') )
+ if ( element.getAncestor( 'thead' ) )
element.name = 'th';
},
// MS-Word sometimes present list as a mixing of normal list
// and pseudo-list, normalize the previous ones into pseudo form.
- 'ol' : flattenList,
- 'ul' : flattenList,
- 'dl' : flattenList,
-
- 'font' : function( element )
- {
- // IE/Safari: drop the font tag if it comes from list bullet text.
- if ( !CKEDITOR.env.gecko && isListBulletIndicator( element.parent ) )
- {
+ 'ol': flattenList,
+ 'ul': flattenList,
+ 'dl': flattenList,
+
+ 'font': function( element ) {
+ // Drop the font tag if it comes from list bullet text.
+ if ( isListBulletIndicator( element.parent ) ) {
delete element.name;
return;
}
@@ -815,35 +850,29 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
styleText = attrs.style,
parent = element.parent;
- if ( 'font' == parent.name ) // Merge nested <font> tags.
+ if ( 'font' == parent.name ) // Merge nested <font> tags.
{
- CKEDITOR.tools.extend( parent.attributes,
- element.attributes );
+ CKEDITOR.tools.extend( parent.attributes, element.attributes );
styleText && parent.addStyle( styleText );
delete element.name;
}
// Convert the merged into a span with all attributes preserved.
- else
- {
+ else {
styleText = styleText || '';
// IE's having those deprecated attributes, normalize them.
- if ( attrs.color )
- {
+ if ( attrs.color ) {
attrs.color != '#000000' && ( styleText += 'color:' + attrs.color + ';' );
delete attrs.color;
}
- if ( attrs.face )
- {
+ if ( attrs.face ) {
styleText += 'font-family:' + attrs.face + ';';
delete attrs.face;
}
// TODO: Mapping size in ranges of xx-small,
// x-small, small, medium, large, x-large, xx-large.
- if ( attrs.size )
- {
+ if ( attrs.size ) {
styleText += 'font-size:' +
- ( attrs.size > 3 ? 'large'
- : ( attrs.size < 3 ? 'small' : 'medium' ) ) + ';';
+ ( attrs.size > 3 ? 'large' : ( attrs.size < 3 ? 'small' : 'medium' ) ) + ';';
delete attrs.size;
}
@@ -852,31 +881,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
},
- 'span' : function( element )
- {
- // IE/Safari: remove the span if it comes from list bullet text.
- if ( !CKEDITOR.env.gecko && isListBulletIndicator( element.parent ) )
+ 'span': function( element ) {
+ // Remove the span if it comes from list bullet text.
+ if ( isListBulletIndicator( element.parent ) )
return false;
element.filterChildren();
- if ( containsNothingButSpaces( element ) )
- {
+ if ( containsNothingButSpaces( element ) ) {
delete element.name;
return null;
}
- // For IE/Safari: List item bullet type is supposed to be indicated by
+ // List item bullet type is supposed to be indicated by
// the text of a span with style 'mso-list : Ignore' or an image.
- if ( !CKEDITOR.env.gecko && isListBulletIndicator( element ) )
- {
- var listSymbolNode = element.firstChild( function( node )
- {
+ if ( isListBulletIndicator( element ) ) {
+ var listSymbolNode = element.firstChild( function( node ) {
return node.value || node.name == 'img';
});
- var listSymbol = listSymbolNode && ( listSymbolNode.value || 'l.' ),
- listType = listSymbol.match( /^([^\s]+?)([.)]?)$/ );
- return createListBulletMarker( listType, listSymbol );
+ var listSymbol = listSymbolNode && ( listSymbolNode.value || 'l.' ),
+ listType = listSymbol && listSymbol.match( /^(?:[(]?)([^\s]+?)([.)]?)$/ );
+
+ if ( listType ) {
+ var marker = createListBulletMarker( listType, listSymbol );
+ // Some non-existed list items might be carried by an inconsequential list, indicate by "mso-hide:all/display:none",
+ // those are to be removed later, now mark it with "cke:ignored".
+ var ancestor = element.getAncestor( 'span' );
+ if ( ancestor && ( / mso-hide:\s*all|display:\s*none / ).test( ancestor.attributes.style ) )
+ marker.attributes[ 'cke:ignored' ] = 1;
+ return marker;
+ }
}
// Update the src attribute of image element with href.
@@ -887,46 +921,49 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Assume MS-Word mostly carry font related styles on <span>,
// adapting them to editor's convention.
- if ( styleText )
- {
- attrs.style = stylesFilter(
- [
- // Drop 'inline-height' style which make lines overlapping.
- [ 'line-height' ],
- [ ( /^font-family$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'font_style' ], 'family' ) : null ] ,
- [ ( /^font-size$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'fontSize_style' ], 'size' ) : null ] ,
- [ ( /^color$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_foreStyle' ], 'color' ) : null ] ,
- [ ( /^background-color$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_backStyle' ], 'color' ) : null ]
- ] )( styleText, element ) || '';
+ if ( styleText ) {
+ attrs.style = stylesFilter( [
+ // Drop 'inline-height' style which make lines overlapping.
+ [ 'line-height' ],
+ [ ( /^font-family$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'font_style' ], 'family' ) : null ],
+ [ ( /^font-size$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'fontSize_style' ], 'size' ) : null ],
+ [ ( /^color$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_foreStyle' ], 'color' ) : null ],
+ [ ( /^background-color$/ ), null, !removeFontStyles ? styleMigrateFilter( config[ 'colorButton_backStyle' ], 'color' ) : null ]
+ ] )( styleText, element ) || '';
}
+ if ( !attrs.style )
+ delete attrs.style;
+
+ if ( CKEDITOR.tools.isEmpty( attrs ) )
+ delete element.name;
+
return null;
},
// Migrate basic style formats to editor configured ones.
- 'b' : elementMigrateFilter( config[ 'coreStyles_bold' ] ),
- 'i' : elementMigrateFilter( config[ 'coreStyles_italic' ] ),
- 'u' : elementMigrateFilter( config[ 'coreStyles_underline' ] ),
- 's' : elementMigrateFilter( config[ 'coreStyles_strike' ] ),
- 'sup' : elementMigrateFilter( config[ 'coreStyles_superscript' ] ),
- 'sub' : elementMigrateFilter( config[ 'coreStyles_subscript' ] ),
+ 'b': elementMigrateFilter( config[ 'coreStyles_bold' ] ),
+ 'i': elementMigrateFilter( config[ 'coreStyles_italic' ] ),
+ 'u': elementMigrateFilter( config[ 'coreStyles_underline' ] ),
+ 's': elementMigrateFilter( config[ 'coreStyles_strike' ] ),
+ 'sup': elementMigrateFilter( config[ 'coreStyles_superscript' ] ),
+ 'sub': elementMigrateFilter( config[ 'coreStyles_subscript' ] ),
// Editor doesn't support anchor with content currently (#3582),
// drop such anchors with content preserved.
- 'a' : function( element )
- {
+ 'a': function( element ) {
var attrs = element.attributes;
if ( attrs && !attrs.href && attrs.name )
delete element.name;
+ else if ( CKEDITOR.env.webkit && attrs.href && attrs.href.match( /file:\/\/\/[\S]+#/i ) )
+ attrs.href = attrs.href.replace( /file:\/\/\/[^#]+/i, '' );
},
- 'cke:listbullet' : function( element )
- {
+ 'cke:listbullet': function( element ) {
if ( element.getAncestor( /h\d/ ) && !config.pasteFromWordNumberedHeadingToList )
delete element.name;
- }
+ }
},
- attributeNames :
- [
+ attributeNames: [
// Remove onmouseover and onmouseout events (from MS Word comments effect)
[ ( /^onmouse(:?out|over)/ ), '' ],
// Onload on image element.
@@ -937,65 +974,55 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
[ ( /^lang/ ), '' ]
],
- attributes :
- {
- 'style' : stylesFilter(
- removeStyles ?
+ attributes: {
+ 'style': stylesFilter( removeStyles ?
// Provide a white-list of styles that we preserve, those should
// be the ones that could later be altered with editor tools.
[
- // Preserve margin-left/right which used as default indent style in the editor.
- [ ( /^margin$|^margin-(?!bottom|top)/ ), null, function( value, element, name )
- {
- if ( element.name in { p : 1, div : 1 } )
- {
- var indentStyleName = config.contentsLangDirection == 'ltr' ?
- 'margin-left' : 'margin-right';
-
- // Extract component value from 'margin' shorthand.
- if ( name == 'margin' )
- {
- value = getStyleComponents( name, value,
- [ indentStyleName ] )[ indentStyleName ];
- }
- else if ( name != indentStyleName )
- return null;
+ // Leave list-style-type
+ [ ( /^list-style-type$/ ), null ],
- if ( value && !emptyMarginRegex.test( value ) )
- return [ indentStyleName, value ];
- }
+ // Preserve margin-left/right which used as default indent style in the editor.
+ [ ( /^margin$|^margin-(?!bottom|top)/ ), null, function( value, element, name ) {
+ if ( element.name in { p:1,div:1 } ) {
+ var indentStyleName = config.contentsLangDirection == 'ltr' ? 'margin-left' : 'margin-right';
+
+ // Extract component value from 'margin' shorthand.
+ if ( name == 'margin' ) {
+ value = getStyleComponents( name, value, [ indentStyleName ] )[ indentStyleName ];
+ } else if ( name != indentStyleName )
+ return null;
+
+ if ( value && !emptyMarginRegex.test( value ) )
+ return [ indentStyleName, value ];
+ }
- return null;
- } ],
+ return null;
+ }],
// Preserve clear float style.
[ ( /^clear$/ ) ],
- [ ( /^border.*|margin.*|vertical-align|float$/ ), null,
- function( value, element )
- {
- if ( element.name == 'img' )
- return value;
- } ],
-
- [ (/^width|height$/ ), null,
- function( value, element )
- {
- if ( element.name in { table : 1, td : 1, th : 1, img : 1 } )
- return value;
- } ]
+ [ ( /^border.*|margin.*|vertical-align|float$/ ), null, function( value, element ) {
+ if ( element.name == 'img' )
+ return value;
+ }],
+
+ [ ( /^width|height$/ ), null, function( value, element ) {
+ if ( element.name in { table:1,td:1,th:1,img:1 } )
+ return value;
+ }]
] :
// Otherwise provide a black-list of styles that we remove.
[
[ ( /^mso-/ ) ],
// Fixing color values.
- [ ( /-color$/ ), null, function( value )
- {
+ [ ( /-color$/ ), null, function( value ) {
if ( value == 'transparent' )
return false;
if ( CKEDITOR.env.gecko )
return value.replace( /-moz-use-text-color/g, 'transparent' );
- } ],
+ }],
// Remove empty margin values, e.g. 0.00001pt 0em 0pt
[ ( /^margin$/ ), emptyMarginRegex ],
[ 'text-indent', '0cm' ],
@@ -1006,14 +1033,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
], removeStyles ),
// Prefer width styles over 'width' attributes.
- 'width' : function( value, element )
- {
+ 'width': function( value, element ) {
if ( element.name in dtd.$tableContent )
return false;
},
// Prefer border styles over table 'border' attributes.
- 'border' : function( value, element )
- {
+ 'border': function( value, element ) {
if ( element.name in dtd.$tableContent )
return false;
},
@@ -1021,15 +1046,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Only Firefox carry style sheet from MS-Word, which
// will be applied by us manually. For other browsers
// the css className is useless.
- 'class' : falsyFilter,
+ 'class': falsyFilter,
// MS-Word always generate 'background-color' along with 'bgcolor',
// simply drop the deprecated attributes.
- 'bgcolor' : falsyFilter,
+ 'bgcolor': falsyFilter,
// Deprecate 'valign' attribute in favor of 'vertical-align'.
- 'valign' : removeStyles ? falsyFilter : function( value, element )
- {
+ 'valign': removeStyles ? falsyFilter : function( value, element ) {
element.addStyle( 'vertical-align', value );
return false;
}
@@ -1038,54 +1062,45 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Fore none-IE, some useful data might be buried under these IE-conditional
// comments where RegExp were the right approach to dig them out where usual approach
// is transform it into a fake element node which hold the desired data.
- comment :
- !CKEDITOR.env.ie ?
- function( value, node )
- {
- var imageInfo = value.match( /<img.*?>/ ),
- listInfo = value.match( /^\[if !supportLists\]([\s\S]*?)\[endif\]$/ );
-
- // Seek for list bullet indicator.
- if ( listInfo )
- {
- // Bullet symbol could be either text or an image.
- var listSymbol = listInfo[ 1 ] || ( imageInfo && 'l.' ),
- listType = listSymbol && listSymbol.match( />([^\s]+?)([.)]?)</ );
- return createListBulletMarker( listType, listSymbol );
- }
+ comment: !CKEDITOR.env.ie ? function( value, node ) {
+ var imageInfo = value.match( /<img.*?>/ ),
+ listInfo = value.match( /^\[if !supportLists\]([\s\S]*?)\[endif\]$/ );
+
+ // Seek for list bullet indicator.
+ if ( listInfo ) {
+ // Bullet symbol could be either text or an image.
+ var listSymbol = listInfo[ 1 ] || ( imageInfo && 'l.' ),
+ listType = listSymbol && listSymbol.match( />(?:[(]?)([^\s]+?)([.)]?)</ );
+ return createListBulletMarker( listType, listSymbol );
+ }
- // Reveal the <img> element in conditional comments for Firefox.
- if ( CKEDITOR.env.gecko && imageInfo )
- {
- var img = CKEDITOR.htmlParser.fragment.fromHtml( imageInfo[ 0 ] ).children[ 0 ],
- previousComment = node.previous,
- // Try to dig the real image link from vml markup from previous comment text.
- imgSrcInfo = previousComment && previousComment.value.match( /<v:imagedata[^>]*o:href=['"](.*?)['"]/ ),
- imgSrc = imgSrcInfo && imgSrcInfo[ 1 ];
-
- // Is there a real 'src' url to be used?
- imgSrc && ( img.attributes.src = imgSrc );
- return img;
- }
+ // Reveal the <img> element in conditional comments for Firefox.
+ if ( CKEDITOR.env.gecko && imageInfo ) {
+ var img = CKEDITOR.htmlParser.fragment.fromHtml( imageInfo[ 0 ] ).children[ 0 ],
+ previousComment = node.previous,
+ // Try to dig the real image link from vml markup from previous comment text.
+ imgSrcInfo = previousComment && previousComment.value.match( /<v:imagedata[^>]*o:href=['"](.*?)['"]/ ),
+ imgSrc = imgSrcInfo && imgSrcInfo[ 1 ];
+
+ // Is there a real 'src' url to be used?
+ imgSrc && ( img.attributes.src = imgSrc );
+ return img;
+ }
- return false;
- }
- : falsyFilter
+ return false;
+ } : falsyFilter
};
}
- };
+ });
// The paste processor here is just a reduced copy of html data processor.
- var pasteProcessor = function()
- {
- this.dataFilter = new CKEDITOR.htmlParser.filter();
- };
+ var pasteProcessor = function() {
+ this.dataFilter = new CKEDITOR.htmlParser.filter();
+ };
- pasteProcessor.prototype =
- {
- toHtml : function( data )
- {
- var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data, false ),
+ pasteProcessor.prototype = {
+ toHtml: function( data ) {
+ var fragment = CKEDITOR.htmlParser.fragment.fromHtml( data ),
writer = new CKEDITOR.htmlParser.basicWriter();
fragment.writeHtml( writer, this.dataFilter );
@@ -1093,14 +1108,34 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
};
- CKEDITOR.cleanWord = function( data, editor )
- {
+ CKEDITOR.cleanWord = function( data, editor ) {
// Firefox will be confused by those downlevel-revealed IE conditional
// comments, fixing them first( convert it to upperlevel-revealed one ).
// e.g. <![if !vml]>...<![endif]>
if ( CKEDITOR.env.gecko )
data = data.replace( /(<!--\[if[^<]*?\])-->([\S\s]*?)<!--(\[endif\]-->)/gi, '$1$2$3' );
+ // #9456 - Webkit doesn't wrap list number with span, which is crucial for filter to recognize list.
+ //
+ // <p class="MsoListParagraphCxSpLast" style="text-indent:-18.0pt;mso-list:l0 level1 lfo2">
+ // <!--[if !supportLists]-->
+ // 3.<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> </span>
+ // <!--[endif]-->Test3<o:p></o:p>
+ // </p>
+ //
+ // Transform to:
+ //
+ // <p class="MsoListParagraphCxSpLast" style="text-indent:-18.0pt;mso-list:l0 level1 lfo2">
+ // <!--[if !supportLists]-->
+ // <span>
+ // 3.<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';"> </span>
+ // </span>
+ // <!--[endif]-->Test3<o:p></o:p>
+ // </p>
+ if ( CKEDITOR.env.webkit ) {
+ data = data.replace( /(class="MsoListParagraph[^>]+><!--\[if !supportLists\]-->)([^<]+<span[^<]+<\/span>)(<!--\[endif\]-->)/gi, '$1<span>$2</span>$3' );
+ }
+
var dataProcessor = new pasteProcessor(),
dataFilter = dataProcessor.dataFilter;
@@ -1108,18 +1143,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
dataFilter.addRules( CKEDITOR.plugins.pastefromword.getRules( editor ) );
// Allow extending data filter rules.
- editor.fire( 'beforeCleanWord', { filter : dataFilter } );
+ editor.fire( 'beforeCleanWord', { filter: dataFilter } );
- try
- {
- data = dataProcessor.toHtml( data, false );
- }
- catch ( e )
- {
+ try {
+ data = dataProcessor.toHtml( data );
+ } catch ( e ) {
alert( editor.lang.pastefromword.error );
}
- /* Below post processing those things that are unable to delivered by filter rules. */
+ // Below post processing those things that are unable to delivered by filter rules.
// Remove 'cke' namespaced attribute used in filter rules as marker.
data = data.replace( /cke:.*?".*?"/g, '' );
@@ -1136,35 +1168,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Whether to ignore all font related formatting styles, including:
- * <ul> <li>font size;</li>
- * <li>font family;</li>
- * <li>font foreground/background color.</li></ul>
- * @name CKEDITOR.config.pasteFromWordRemoveFontStyles
+ *
+ * * font size;
+ * * font family;
+ * * font foreground/background color.
+ *
+ * config.pasteFromWordRemoveFontStyles = false;
+ *
* @since 3.1
- * @type Boolean
- * @default true
- * @example
- * config.pasteFromWordRemoveFontStyles = false;
+ * @cfg {Boolean} [pasteFromWordRemoveFontStyles=true]
+ * @member CKEDITOR.config
*/
/**
* Whether to transform MS Word outline numbered headings into lists.
- * @name CKEDITOR.config.pasteFromWordNumberedHeadingToList
+ *
+ * config.pasteFromWordNumberedHeadingToList = true;
+ *
* @since 3.1
- * @type Boolean
- * @default false
- * @example
- * config.pasteFromWordNumberedHeadingToList = true;
+ * @cfg {Boolean} [pasteFromWordNumberedHeadingToList=false]
+ * @member CKEDITOR.config
*/
/**
* Whether to remove element styles that can't be managed with the editor. Note
* that this doesn't handle the font specific styles, which depends on the
- * {@link CKEDITOR.config.pasteFromWordRemoveFontStyles} setting instead.
- * @name CKEDITOR.config.pasteFromWordRemoveStyles
+ * {@link #pasteFromWordRemoveFontStyles} setting instead.
+ *
+ * config.pasteFromWordRemoveStyles = false;
+ *
* @since 3.1
- * @type Boolean
- * @default true
- * @example
- * config.pasteFromWordRemoveStyles = false;
+ * @cfg {Boolean} [pasteFromWordRemoveStyles=true]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/icons/pastefromword-rtl.png b/devel/third-party/ckeditor/plugins/pastefromword/icons/pastefromword-rtl.png
new file mode 100644
index 0000000..16dd946
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pastefromword/icons/pastefromword-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/icons/pastefromword.png b/devel/third-party/ckeditor/plugins/pastefromword/icons/pastefromword.png
new file mode 100644
index 0000000..9a499aa
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pastefromword/icons/pastefromword.png differ
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/af.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/af.js
new file mode 100644
index 0000000..d5d50db
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/af.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'af', {
+ confirmCleanup: 'Die teks wat u wil plak lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit geplak word?',
+ error: 'Die geplakte teks kon nie skoongemaak word nie, weens \'n interne fout',
+ title: 'Plak vanuit Word',
+ toolbar: 'Plak vanuit Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ar.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ar.js
new file mode 100644
index 0000000..fa9af8c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ar.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ar', {
+ confirmCleanup: 'ÙØ¨Ø¯Ù أ٠اÙÙØµ اÙÙ
راد ÙØµÙÙ Ù
ÙØ³ÙØ® Ù
Ù Ø¨Ø±ÙØ§Ù
ج ÙÙØ±Ø¯. ÙÙ ØªÙØ¯ ØªÙØ¸ÙÙÙ ÙØ¨Ù Ø§ÙØ´Ø±Ùع Ù٠عÙ
ÙÙØ© اÙÙØµÙØ',
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'ÙØµÙ Ù
Ù ÙÙØ±Ø¯',
+ toolbar: 'ÙØµÙ Ù
Ù ÙÙØ±Ø¯'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/bg.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/bg.js
new file mode 100644
index 0000000..a6aff81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/bg.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'bg', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'ÐмÑкни Ð¾Ñ MS Word',
+ toolbar: 'ÐмÑкни Ð¾Ñ MS Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/bn.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/bn.js
new file mode 100644
index 0000000..882490b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/bn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'bn', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'পà§à¦¸à§à¦ (শবà§à¦¦)',
+ toolbar: 'পà§à¦¸à§à¦ (শবà§à¦¦)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/bs.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/bs.js
new file mode 100644
index 0000000..2ec4357
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/bs.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'bs', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Zalijepi iz Word-a',
+ toolbar: 'Zalijepi iz Word-a'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ca.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ca.js
new file mode 100644
index 0000000..62e24a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ca.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ca', {
+ confirmCleanup: 'El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?',
+ error: 'No ha estat possible netejar les dades enganxades degut a un error intern',
+ title: 'Enganxa des del Word',
+ toolbar: 'Enganxa des del Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/cs.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/cs.js
new file mode 100644
index 0000000..a39664c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/cs.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'cs', {
+ confirmCleanup: 'Jak je vidÄt, vkládaný text je kopÃrován z Wordu. Chcete jej pÅed vloženÃm vyÄistit?',
+ error: 'Z důvodu vnitÅnà chyby nebylo možné provést vyÄiÅ¡tÄnà vkládaného textu.',
+ title: 'Vložit z Wordu',
+ toolbar: 'Vložit z Wordu'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/cy.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/cy.js
new file mode 100644
index 0000000..364228a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/cy.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'cy', {
+ confirmCleanup: 'Mae\'r testun rydych chi am ludo wedi\'i gopïo o Word. Ydych chi am ei lanhau cyn ei ludo?',
+ error: 'Doedd dim modd glanhau y data a ludwyd oherwydd gwall mewnol',
+ title: 'Gludo o Word',
+ toolbar: 'Gludo o Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/da.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/da.js
new file mode 100644
index 0000000..43981cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/da.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'da', {
+ confirmCleanup: 'Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?',
+ error: 'Det var ikke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl',
+ title: 'Indsæt fra Word',
+ toolbar: 'Indsæt fra Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/de.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/de.js
new file mode 100644
index 0000000..c592fca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/de.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'de', {
+ confirmCleanup: 'Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?',
+ error: 'Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen',
+ title: 'Aus MS-Word einfügen',
+ toolbar: 'Aus MS-Word einfügen'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/el.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/el.js
new file mode 100644
index 0000000..edadc10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/el.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'el', {
+ confirmCleanup: 'Το κείμενο ÏοÏ
εÏικολλάÏαι ÏαίνεÏαι να είναι ανÏιγÏαμμÎνο αÏÏ Ïο Word. ÎήÏÏÏ Î¸Î± θÎλαÏε να καθαÏιÏÏεί ÏÏοÏÎ¿Ï ÎµÏικολληθεί;',
+ error: 'Îεν ήÏαν δÏ
ναÏÏ Î½Î± καθαÏιÏÏοÏν Ïα δεδομÎνα λÏÎ³Ï ÎµÎ½ÏÏ ÎµÏÏÏεÏÎ¹ÎºÎ¿Ï ÏÏάλμαÏοÏ',
+ title: 'ÎÏικÏλληÏη αÏÏ Ïο Word',
+ toolbar: 'ÎÏικÏλληÏη αÏÏ Ïο Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/en-au.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/en-au.js
new file mode 100644
index 0000000..75035fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/en-au.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'en-au', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Paste from Word',
+ toolbar: 'Paste from Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/en-ca.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/en-ca.js
new file mode 100644
index 0000000..2deb5b3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/en-ca.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'en-ca', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Paste from Word',
+ toolbar: 'Paste from Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/en-gb.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/en-gb.js
new file mode 100644
index 0000000..e8b7f6e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/en-gb.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'en-gb', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',
+ error: 'It was not possible to clean up the pasted data due to an internal error',
+ title: 'Paste from Word',
+ toolbar: 'Paste from Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/en.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/en.js
new file mode 100644
index 0000000..7b283c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/en.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'en', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',
+ error: 'It was not possible to clean up the pasted data due to an internal error',
+ title: 'Paste from Word',
+ toolbar: 'Paste from Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/eo.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/eo.js
new file mode 100644
index 0000000..e8d3984
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/eo.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'eo', {
+ confirmCleanup: 'La teksto, kiun vi volas interglui, Åajnas esti kopiita el Word. Äu vi deziras purigi Äin antaÅ intergluo?',
+ error: 'Ne eblis purigi la intergluitajn datenojn pro interna eraro',
+ title: 'Interglui el Word',
+ toolbar: 'Interglui el Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/es.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/es.js
new file mode 100644
index 0000000..2e08764
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/es.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'es', {
+ confirmCleanup: 'El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?',
+ error: 'No ha sido posible limpiar los datos debido a un error interno',
+ title: 'Pegar desde Word',
+ toolbar: 'Pegar desde Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/et.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/et.js
new file mode 100644
index 0000000..e028698
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/et.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'et', {
+ confirmCleanup: 'Tekst, mida tahad asetada näib pärinevat Wordist. Kas tahad selle enne asetamist puhastada?',
+ error: 'Asetatud andmete puhastamine ei olnud sisemise vea tõttu võimalik',
+ title: 'Asetamine Wordist',
+ toolbar: 'Asetamine Wordist'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/eu.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/eu.js
new file mode 100644
index 0000000..753f999
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/eu.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'eu', {
+ confirmCleanup: 'Itsatsi nahi duzun testua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?',
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Itsatsi Word-etik',
+ toolbar: 'Itsatsi Word-etik'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/fa.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/fa.js
new file mode 100644
index 0000000..37a9f4d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/fa.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'fa', {
+ confirmCleanup: 'Ù
تÙÛ Ú©Ù Ù
ÛØ®ÙاÙÛØ¯ Ø¨ÚØ³Ø¨Ø§ÙÛØ¯ Ø¨Ù ÙØ¸Ø± Ù
ÛØ±Ø³Ø¯ ک٠از Word Ú©Ù¾Û Ø´Ø¯Ù Ø§Ø³Øª. Ø¢ÛØ§ Ù
ÛØ®ÙاÙÛØ¯ ÙØ¨Ù از ÚØ³Ø¨Ø§Ùد٠آ٠را Ù¾Ø§Ú©Ø³Ø§Ø²Û Ú©ÙÛØ¯Ø',
+ error: 'ب٠دÙÛÙ Ø¨Ø±ÙØ² Ø®Ø·Ø§Û Ø¯Ø§Ø®ÙÛ Ø§Ù
Ú©Ø§Ù Ù¾Ø§Ú©Ø³Ø§Ø²Û Ø§Ø·ÙØ§Ø¹Ø§Øª Ø¨Ø§Ø²ÙØ´Ø§ÙÛ Ø´Ø¯Ù ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.',
+ title: 'ÚØ³Ø¨Ø§Ùد٠از Word',
+ toolbar: 'ÚØ³Ø¨Ø§Ùد٠از Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/fi.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/fi.js
new file mode 100644
index 0000000..56534a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/fi.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'fi', {
+ confirmCleanup: 'Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)',
+ error: 'Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia',
+ title: 'Liitä Word-dokumentista',
+ toolbar: 'Liitä Word-dokumentista'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/fo.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/fo.js
new file mode 100644
index 0000000..68af95a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/fo.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'fo', {
+ confirmCleanup: 'Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?',
+ error: 'Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil',
+ title: 'Innrita frá Word',
+ toolbar: 'Innrita frá Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/fr-ca.js
new file mode 100644
index 0000000..2ca3847
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/fr-ca.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'fr-ca', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Coller en tant que Word (formaté)',
+ toolbar: 'Coller en tant que Word (formaté)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/fr.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/fr.js
new file mode 100644
index 0000000..698ba21
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/fr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'fr', {
+ confirmCleanup: 'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?',
+ error: 'Il n\'a pas été possible de nettoyer les données collées à la suite d\'une erreur interne.',
+ title: 'Coller depuis Word',
+ toolbar: 'Coller depuis Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/gl.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/gl.js
new file mode 100644
index 0000000..79f24b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/gl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'gl', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Pegar dende Word',
+ toolbar: 'Pegar dende Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/gu.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/gu.js
new file mode 100644
index 0000000..d2d1355
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/gu.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'gu', {
+ confirmCleanup: 'તમૠàªà« àªà«àªà«àª·à«àª¤à« àªà«àªªà« àªàª°à« રહà«àª¯àª¾ àªà« àªà« વરà«àª¡ નૠàªà«. àªà«àªªà« àªàª°àª¤àª¾ પà«àª¹àª²àª¾ સાફ àªàª°àªµà« àªà«?',
+ error: 'પà«àª¸à«àª àªàª°à«àª²à« ડà«àªàª¾ àªàª¨à«àªàª°àª¨àª² àªàª°àª° ના લà«àª¥à« સાફ àªàª°à« શàªàª¾àª¯à« નથà«.',
+ title: 'પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)',
+ toolbar: 'પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/he.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/he.js
new file mode 100644
index 0000000..2e1a6bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/he.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'he', {
+ confirmCleanup: '× ×¨×× ×××§×¡× ×©××××× ×ª× ××××××§ ××§××¨× ××§×××¥ ××ר×. ××× ×רצ×× × ×× ×§×ת ×××ª× ××¨× ×××××§×?',
+ error: '×× × ××ª× ××× ×× ×§×ת ×ת ×××××¢ ××©× ×ª×§×× ×¤× ×××ת.',
+ title: '××××§× ×-Word',
+ toolbar: '××××§× ×-Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/hi.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/hi.js
new file mode 100644
index 0000000..51ca965
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/hi.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'hi', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)',
+ toolbar: 'पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/hr.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/hr.js
new file mode 100644
index 0000000..dbf097d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/hr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'hr', {
+ confirmCleanup: 'Tekst koji želite zalijepiti Äini se da je kopiran iz Worda. Želite li prije oÄistiti tekst?',
+ error: 'Nije moguÄe oÄistiti podatke za ljepljenje zbog interne greÅ¡ke',
+ title: 'Zalijepi iz Worda',
+ toolbar: 'Zalijepi iz Worda'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/hu.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/hu.js
new file mode 100644
index 0000000..2793576
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/hu.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'hu', {
+ confirmCleanup: 'Ãgy tűnik a beillesztett szöveget Word-bÅl másolt át. Meg szeretné tisztÃtani a szöveget? (ajánlott)',
+ error: 'Egy belsÅ hiba miatt nem sikerült megtisztÃtani a szöveget',
+ title: 'Beillesztés Word-bÅl',
+ toolbar: 'Beillesztés Word-bÅl'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/is.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/is.js
new file mode 100644
index 0000000..f019866
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/is.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'is', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'LÃma úr Word',
+ toolbar: 'LÃma úr Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/it.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/it.js
new file mode 100644
index 0000000..07da6a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/it.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'it', {
+ confirmCleanup: 'Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?',
+ error: 'Non è stato possibile eliminarre il testo incollato a causa di un errore interno.',
+ title: 'Incolla da Word',
+ toolbar: 'Incolla da Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ja.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ja.js
new file mode 100644
index 0000000..cd44e70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ja.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ja', {
+ confirmCleanup: 'è²¼ãä»ããè¡ãããã¹ãã¯ãã¯ã¼ãæç« ããã³ãã¼ããããã¨ãã¦ãã¾ããè²¼ãä»ããåã«ã¯ãªã¼ãã³ã°ãè¡ãã¾ããï¼',
+ error: 'å
é¨ã¨ã©ã¼ã«ããè²¼ãä»ãããã¼ã¿ãã¯ãªã¢ã§ãã¾ããã§ãã',
+ title: 'ã¯ã¼ãæç« ããè²¼ãä»ã',
+ toolbar: 'ã¯ã¼ãæç« ããè²¼ãä»ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ka.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ka.js
new file mode 100644
index 0000000..bbaba6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ka.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ka', {
+ confirmCleanup: 'á©áá¡áá¡áááá á¢áá¥á¡á¢á ááá ááááá áááááá¢ááááá¡ áááá¡ - áááááá ááá¡á á¬áááá¡á¬áá ááá¬ááááá?',
+ error: 'á¨ááá á¨ááªááááá¡ áááá ááá ááá®áá á®áá á¢áá¥á¡á¢áá¡ ááá¬ááááá',
+ title: 'ááá ááááá á©áá¡áá',
+ toolbar: 'ááá ááááá á©áá¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/km.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/km.js
new file mode 100644
index 0000000..6bd45c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/km.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'km', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'á
ááááá¶áááḠWord',
+ toolbar: 'á
ááááá¶áááḠWord'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ko.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ko.js
new file mode 100644
index 0000000..ffc5c25
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ko.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ko', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'MS Word íììì ë¶ì¬ë£ê¸°',
+ toolbar: 'MS Word íììì ë¶ì¬ë£ê¸°'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ku.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ku.js
new file mode 100644
index 0000000..7d39e6f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ku.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ku', {
+ confirmCleanup: 'ئÙÙ
دÙÙÙÛ Ø¨ÙØªÙÙ
Ø§Û Ø¨ÛÙÚ©ÛÙÛ Ù¾ÛØ¯ÙÚÛØª ÙÙ word ÙÛÙØ±Ø§Ø¨Ûت. Ø¯ÙØªÙÙÛØª Ù¾Ø§Ú©Û Ø¨Ú©ÙÛÙÙ Ù¾ÛØ´ ئÙÙÙÛ Ø¨ÛÙÚ©ÛÙÛØ',
+ error: 'ÙÛÚ ÚÛÚ¯ÙÛÙÙ ÙÙØ¨ÙÙ ÙÙÙÚ©Ø§ÙØ¯ÙÛ Ø¯ÙÙÙک٠بÙÙÛÛ ÙÙÚµÙÚ©Û ÙØ§ÙÙØ®ÛÛÛ',
+ title: 'ÙÚ©Ø§ÙØ¯ÙÛ ÙÙÙØ§ÛÙÙ Word',
+ toolbar: 'ÙÚ©Ø§ÙØ¯ÙÛ ÙÙÚÛÛ Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/lt.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/lt.js
new file mode 100644
index 0000000..2a3cbe9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/lt.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'lt', {
+ confirmCleanup: 'Tekstas, kurį įkeliate yra kopijuojamas iš Word. Ar norite jį išvalyti prieš įkeliant?',
+ error: 'DÄl vidinių sutrikimų, nepavyko iÅ¡valyti įkeliamo teksto',
+ title: 'Ä®dÄti iÅ¡ Word',
+ toolbar: 'Ä®dÄti iÅ¡ Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/lv.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/lv.js
new file mode 100644
index 0000000..427f184
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/lv.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'lv', {
+ confirmCleanup: 'Teksts, kuru vÄlaties ielÄ«mÄt, izskatÄs ir nokopÄts no Word. Vai vÄlaties to iztÄ«rÄ«t pirms ielÄ«mÄÅ¡anas?',
+ error: 'IekÅ¡Äjas kļūdas dÄļ, neizdevÄs iztÄ«rÄ«t ielÄ«mÄtos datus.',
+ title: 'Ievietot no Worda',
+ toolbar: 'Ievietot no Worda'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/mk.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/mk.js
new file mode 100644
index 0000000..ae58291
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/mk.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'mk', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Paste from Word', // MISSING
+ toolbar: 'Paste from Word' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/mn.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/mn.js
new file mode 100644
index 0000000..4e941d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/mn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'mn', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
',
+ toolbar: 'Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ms.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ms.js
new file mode 100644
index 0000000..fd1f023
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ms.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ms', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Tampal dari Word',
+ toolbar: 'Tampal dari Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/nb.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/nb.js
new file mode 100644
index 0000000..09c3da0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/nb.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'nb', {
+ confirmCleanup: 'Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?',
+ error: 'Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil',
+ title: 'Lim inn fra Word',
+ toolbar: 'Lim inn fra Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/nl.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/nl.js
new file mode 100644
index 0000000..9ea84f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/nl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'nl', {
+ confirmCleanup: 'De tekst die u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?',
+ error: 'Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout',
+ title: 'Plakken als Word-gegevens',
+ toolbar: 'Plakken als Word-gegevens'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/no.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/no.js
new file mode 100644
index 0000000..a90666d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/no.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'no', {
+ confirmCleanup: 'Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?',
+ error: 'Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil',
+ title: 'Lim inn fra Word',
+ toolbar: 'Lim inn fra Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/pl.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/pl.js
new file mode 100644
index 0000000..56620a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/pl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'pl', {
+ confirmCleanup: 'Tekst, który chcesz wkleiÄ, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyÅciÄ przed wklejeniem?',
+ error: 'Wyczyszczenie wklejonych danych nie byÅo możliwe z powodu wystÄ
pienia bÅÄdu.',
+ title: 'Wklej z programu MS Word',
+ toolbar: 'Wklej z programu MS Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/pt-br.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/pt-br.js
new file mode 100644
index 0000000..d260303
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/pt-br.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'pt-br', {
+ confirmCleanup: 'O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?',
+ error: 'Não foi possÃvel limpar os dados colados devido a um erro interno',
+ title: 'Colar do Word',
+ toolbar: 'Colar do Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/pt.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/pt.js
new file mode 100644
index 0000000..e1976fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/pt.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'pt', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Colar do Word',
+ toolbar: 'Colar do Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ro.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ro.js
new file mode 100644
index 0000000..27e4746
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ro.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ro', {
+ confirmCleanup: 'Textul pe care doriÈi sÄ-l lipiÈi este din Word. DoriÈi curÄÈarea textului înante de a-l adÄuga?',
+ error: 'Nu a fost posibilÄ curÄÈarea datelor adÄugate datoritÄ unei erori interne',
+ title: 'AdaugÄ din Word',
+ toolbar: 'AdaugÄ din Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ru.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ru.js
new file mode 100644
index 0000000..1079426
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ru.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ru', {
+ confirmCleanup: 'ТекÑÑ, коÑоÑÑй Ð²Ñ Ð¶ÐµÐ»Ð°ÐµÑе вÑÑавиÑÑ, по вÑей видимоÑÑи, бÑл ÑкопиÑован из Word. СледÑÐµÑ Ð»Ð¸ оÑиÑÑиÑÑ ÐµÐ³Ð¾ пеÑед вÑÑавкой?',
+ error: 'Ðевозможно оÑиÑÑиÑÑ Ð²ÑÑавленнÑе даннÑе из-за внÑÑÑенней оÑибки',
+ title: 'ÐÑÑавиÑÑ Ð¸Ð· Word',
+ toolbar: 'ÐÑÑавиÑÑ Ð¸Ð· Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/sk.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/sk.js
new file mode 100644
index 0000000..f2d4387
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/sk.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'sk', {
+ confirmCleanup: 'Vkladaný text vyzerá byÅ¥ skopÃrovaný z Wordu. Chcete ho automaticky vyÄistiÅ¥ pred vkladanÃm?',
+ error: 'Nebolo možné vyÄistiÅ¥ vložené dáta kvôli internej chybe',
+ title: 'Vložiť z Wordu',
+ toolbar: 'Vložiť z Wordu'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/sl.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/sl.js
new file mode 100644
index 0000000..d771a4c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/sl.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'sl', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Prilepi iz Worda',
+ toolbar: 'Prilepi iz Worda'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/sr-latn.js
new file mode 100644
index 0000000..a32ba9f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/sr-latn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'sr-latn', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Zalepi iz Worda',
+ toolbar: 'Zalepi iz Worda'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/sr.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/sr.js
new file mode 100644
index 0000000..8a24db5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/sr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'sr', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'Ðалепи из Worda',
+ toolbar: 'Ðалепи из Worda'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/sv.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/sv.js
new file mode 100644
index 0000000..95038b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/sv.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'sv', {
+ confirmCleanup: 'Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa innan du klistrar?',
+ error: 'Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel',
+ title: 'Klistra in från Word',
+ toolbar: 'Klistra in från Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/th.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/th.js
new file mode 100644
index 0000000..af84bd5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/th.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'th', {
+ confirmCleanup: 'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?', // MISSING
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸',
+ toolbar: 'วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/tr.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/tr.js
new file mode 100644
index 0000000..3c2cf18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/tr.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'tr', {
+ confirmCleanup: 'YapıÅtırmaya çalıÅtıÄınız metin Word\'den kopyalanmıÅtır. YapıÅtırmadan önce silmek istermisiniz?',
+ error: 'YapıÅtırmadaki veri bilgisi hata düzelene kadar silinmeyecektir',
+ title: 'Word\'den YapıÅtır',
+ toolbar: 'Word\'den YapıÅtır'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/ug.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/ug.js
new file mode 100644
index 0000000..482aad5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/ug.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'ug', {
+ confirmCleanup: 'Ø³ÙØ² ÚØ§Ù¾ÙÙÙ
اÙÚ٠بÙÙØºØ§Ù Ù
ÛØ²Ù
ÛÙ MS Word تÙÙ ÙÛÙÚ¯ÛÙØ¯ÛÙ ÙÙÙÙØ¯ÛØ MS Word Ù¾ÙÚÙÙ
ÙÙ٠تازÙÙÙÛÛØªÙÛÙØ¯ÙÙ ÙÛÙÙÙ Ø¦Ø§ÙØ¯ÙÙ ÚØ§Ù¾ÙاÙ
Ø¯ÛØ',
+ error: 'ئÙÚÙ٠خاتاÙÙ٠سÛÛÛØ¨ÙدÙÙ ÚØ§Ù¾ÙØ§ÙØ¯Ùغا٠ساÙÙÙÙ Ù
ÛÙÛÙ
اتÙ٠تازÙÙÙÙØ§ÙÙ
Ø§ÙØ¯Û',
+ title: 'MS Word تÙÙ ÚØ§Ù¾Ùا',
+ toolbar: 'MS Word تÙÙ ÚØ§Ù¾Ùا'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/uk.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/uk.js
new file mode 100644
index 0000000..afa4e20
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/uk.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'uk', {
+ confirmCleanup: 'ТекÑÑ, Ñо Ðи намагаÑÑеÑÑ Ð²ÑÑавиÑи, ÑÑ
ожий на ÑкопÑйований з Word. ÐажаÑÑе оÑиÑÑиÑи його ÑоÑмаÑÑÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑед вÑÑавлÑннÑм?',
+ error: 'Ðеможливо оÑиÑÑиÑи ÑоÑмаÑÑÐ²Ð°Ð½Ð½Ñ ÑеÑез внÑÑÑÑÑÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ.',
+ title: 'ÐÑÑавиÑи з Word',
+ toolbar: 'ÐÑÑавиÑи з Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/vi.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/vi.js
new file mode 100644
index 0000000..354aca3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/vi.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'vi', {
+ confirmCleanup: 'VÄn bản bạn muá»n dán có kèm Äá»nh dạng cá»§a Word. Bạn có muá»n loại bá» Äá»nh dạng Word trưá»c khi dán?',
+ error: 'Không thá» Äá» là m sạch các dữ liá»u dán do má»t lá»i ná»i bá»',
+ title: 'Dán vá»i Äá»nh dạng Word',
+ toolbar: 'Dán vá»i Äá»nh dạng Word'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/zh-cn.js
new file mode 100644
index 0000000..d451db9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/zh-cn.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'zh-cn', {
+ confirmCleanup: 'æ¨è¦ç²è´´çå
容好忝æ¥èª MS Word, æ¯å¦è¦æ¸
é¤ MS Word æ ¼å¼ååç²è´´?',
+ error: 'ç±äºå
é¨éè¯¯æ æ³æ¸
çè¦ç²è´´çæ°æ®',
+ title: 'ä» MS Word ç²è´´',
+ toolbar: 'ä» MS Word ç²è´´'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/lang/zh.js b/devel/third-party/ckeditor/plugins/pastefromword/lang/zh.js
new file mode 100644
index 0000000..5caf6a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastefromword/lang/zh.js
@@ -0,0 +1,10 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastefromword', 'zh', {
+ confirmCleanup: 'æ¨æ³è²¼ä¸çæå似乿¯èª Word è¤è£½èä¾ï¼è«åæ¨æ¯å¦è¦å
æ¸
é¤ Word çæ ¼å¼å¾åè¡è²¼ä¸ï¼',
+ error: 'It was not possible to clean up the pasted data due to an internal error', // MISSING
+ title: 'èª Word è²¼ä¸',
+ toolbar: 'èª Word è²¼ä¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastefromword/plugin.js b/devel/third-party/ckeditor/plugins/pastefromword/plugin.js
index d50b3f0..cab8894 100644
--- a/devel/third-party/ckeditor/plugins/pastefromword/plugin.js
+++ b/devel/third-party/ckeditor/plugins/pastefromword/plugin.js
@@ -1,122 +1,144 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-(function()
-{
- CKEDITOR.plugins.add( 'pastefromword',
- {
- init : function( editor )
- {
-
- // Flag indicate this command is actually been asked instead of a generic
- // pasting.
- var forceFromWord = 0;
- var resetFromWord = function()
- {
- setTimeout( function() { forceFromWord = 0; }, 0 );
- };
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ CKEDITOR.plugins.add( 'pastefromword', {
+ requires: 'clipboard',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'pastefromword,pastefromword-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ var commandName = 'pastefromword',
+ // Flag indicate this command is actually been asked instead of a generic pasting.
+ forceFromWord = 0,
+ path = this.path;
+
+ editor.addCommand( commandName, {
+ // Snapshots are done manually by editable.insertXXX methods.
+ canUndo: false,
+ async: true,
+
+ exec: function( editor ) {
+ var cmd = this;
- // Features bring by this command beside the normal process:
- // 1. No more bothering of user about the clean-up.
- // 2. Perform the clean-up even if content is not from MS-Word.
- // (e.g. from a MS-Word similar application.)
- editor.addCommand( 'pastefromword',
- {
- canUndo : false,
- exec : function()
- {
forceFromWord = 1;
- if ( editor.execCommand( 'paste' ) === false )
- {
- editor.on( 'dialogHide', function ( evt )
- {
- evt.removeListener();
- resetFromWord();
- });
- }
- else
- resetFromWord();
+ // Force html mode for incomming paste events sequence.
+ editor.once( 'beforePaste', forceHtmlMode );
+
+ editor.getClipboardData({ title: editor.lang.pastefromword.title }, function( data ) {
+ // Do not use editor#paste, because it would start from beforePaste event.
+ data && editor.fire( 'paste', { type: 'html', dataValue: data.dataValue } );
+
+ editor.fire( 'afterCommandExec', {
+ name: commandName,
+ command: cmd,
+ returnValue: !!data
+ });
+ });
}
});
// Register the toolbar button.
- editor.ui.addButton( 'PasteFromWord',
- {
- label : editor.lang.pastefromword.toolbar,
- command : 'pastefromword'
- });
-
- editor.on( 'paste', function( evt )
- {
+ editor.ui.addButton && editor.ui.addButton( 'PasteFromWord', {
+ label: editor.lang.pastefromword.toolbar,
+ command: commandName,
+ toolbar: 'clipboard,50'
+ });
+
+ editor.on( 'pasteState', function( evt ) {
+ editor.getCommand( commandName ).setState( evt.data );
+ });
+
+ // Features bring by this command beside the normal process:
+ // 1. No more bothering of user about the clean-up.
+ // 2. Perform the clean-up even if content is not from MS-Word.
+ // (e.g. from a MS-Word similar application.)
+ // 3. Listen with high priority (3), so clean up is done before content
+ // type sniffing (priority = 6).
+ editor.on( 'paste', function( evt ) {
var data = evt.data,
- mswordHtml;
+ mswordHtml = data.dataValue;
// MS-WORD format sniffing.
- if ( ( mswordHtml = data[ 'html' ] )
- && ( forceFromWord || ( /(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/ ).test( mswordHtml ) ) )
- {
- var isLazyLoad = this.loadFilterRules( function()
- {
- // Event continuation with the original data.
- if ( isLazyLoad )
- editor.fire( 'paste', data );
- else if ( !editor.config.pasteFromWordPromptCleanup
- || ( forceFromWord || confirm( editor.lang.pastefromword.confirmCleanup ) ) )
- {
- data[ 'html' ] = CKEDITOR.cleanWord( mswordHtml, editor );
- }
- });
+ if ( mswordHtml && ( forceFromWord || ( /(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/ ).test( mswordHtml ) ) ) {
+ // If filter rules aren't loaded then cancel 'paste' event,
+ // load them and when they'll get loaded fire new paste event
+ // for which data will be filtered in second execution of
+ // this listener.
+ var isLazyLoad = loadFilterRules( editor, path, function() {
+ // Event continuation with the original data.
+ if ( isLazyLoad )
+ editor.fire( 'paste', data );
+ else if ( !editor.config.pasteFromWordPromptCleanup || ( forceFromWord || confirm( editor.lang.pastefromword.confirmCleanup ) ) ) {
+ data.dataValue = CKEDITOR.cleanWord( mswordHtml, editor );
+ }
+ });
// The cleanup rules are to be loaded, we should just cancel
// this event.
isLazyLoad && evt.cancel();
}
- }, this );
- },
+ }, null, null, 3 );
- loadFilterRules : function( callback )
- {
+ function resetFromWord( evt ) {
+ evt && evt.removeListener();
+ editor.removeListener( 'beforePaste', forceHtmlMode );
+ forceFromWord && setTimeout( function() {
+ forceFromWord = 0;
+ }, 0 );
+ }
+ }
- var isLoaded = CKEDITOR.cleanWord;
+ });
- if ( isLoaded )
- callback();
- else
- {
- var filterFilePath = CKEDITOR.getUrl(
- CKEDITOR.config.pasteFromWordCleanupFile
- || ( this.path + 'filter/default.js' ) );
+ function loadFilterRules( editor, path, callback ) {
+ var isLoaded = CKEDITOR.cleanWord;
- // Load with busy indicator.
- CKEDITOR.scriptLoader.load( filterFilePath, callback, null, false, true );
- }
+ if ( isLoaded )
+ callback();
+ else {
+ var filterFilePath = CKEDITOR.getUrl( editor.config.pasteFromWordCleanupFile || ( path + 'filter/default.js' ) );
- return !isLoaded;
+ // Load with busy indicator.
+ CKEDITOR.scriptLoader.load( filterFilePath, callback, null, true );
}
- });
+
+ return !isLoaded;
+ }
+
+ function forceHtmlMode( evt ) {
+ evt.data.type = 'html';
+ }
})();
+
/**
- * Whether to prompt the user about the clean up of content being pasted from
- * MS Word.
- * @name CKEDITOR.config.pasteFromWordPromptCleanup
+ * Whether to prompt the user about the clean up of content being pasted from MS Word.
+ *
+ * config.pasteFromWordPromptCleanup = true;
+ *
* @since 3.1
- * @type Boolean
- * @default undefined
- * @example
- * config.pasteFromWordPromptCleanup = true;
+ * @cfg {Boolean} [pasteFromWordPromptCleanup=false]
+ * @member CKEDITOR.config
*/
/**
* The file that provides the MS Word cleanup function for pasting operations.
- * Note: This is a global configuration shared by all editor instances present
+ *
+ * **Note:** This is a global configuration shared by all editor instances present
* in the page.
- * @name CKEDITOR.config.pasteFromWordCleanupFile
+ *
+ * // Load from 'pastefromword' plugin 'filter' sub folder (custom.js file) using path relative to CKEditor installation folder.
+ * CKEDITOR.config.pasteFromWordCleanupFile = 'plugins/pastefromword/filter/custom.js';
+ *
+ * // Load from 'pastefromword' plugin 'filter' sub folder (custom.js file) using full path (including CKEditor installation folder).
+ * CKEDITOR.config.pasteFromWordCleanupFile = '/ckeditor/plugins/pastefromword/filter/custom.js';
+ *
+ * // Load custom.js file from 'customFilerts' folder (located in server's root) using full URL.
+ * CKEDITOR.config.pasteFromWordCleanupFile = 'http://my.example.com/customFilerts/custom.js';
+ *
* @since 3.1
- * @type String
- * @default 'default'
- * @example
- * // Load from 'pastefromword' plugin 'filter' sub folder (custom.js file).
- * CKEDITOR.config.pasteFromWordCleanupFile = 'custom';
+ * @cfg {String} [pasteFromWordCleanupFile=<plugin path> + 'filter/default.js']
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/pastetext/dialogs/pastetext.js b/devel/third-party/ckeditor/plugins/pastetext/dialogs/pastetext.js
deleted file mode 100644
index 82e4217..0000000
--- a/devel/third-party/ckeditor/plugins/pastetext/dialogs/pastetext.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- CKEDITOR.dialog.add( 'pastetext', function( editor )
- {
- return {
- title : editor.lang.pasteText.title,
-
- minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 368 : 350,
- minHeight : 240,
-
- onShow : function()
- {
- // Reset the textarea value.
- this.getContentElement( 'general', 'content' ).getInputElement().setValue( '' );
- },
-
- onOk : function()
- {
- // Get the textarea value.
- var text = this.getContentElement( 'general', 'content' ).getInputElement().getValue(),
- editor = this.getParentEditor();
-
- setTimeout( function()
- {
- editor.fire( 'paste', { 'text' : text } );
- }, 0 );
- },
-
- contents :
- [
- {
- label : editor.lang.common.generalTab,
- id : 'general',
- elements :
- [
- {
- type : 'html',
- id : 'pasteMsg',
- html : '<div style="white-space:normal;width:340px;">' + editor.lang.clipboard.pasteMsg + '</div>'
- },
- {
- type : 'textarea',
- id : 'content',
- className : 'cke_pastetext',
-
- onLoad : function()
- {
- var label = this.getDialog().getContentElement( 'general', 'pasteMsg' ).getElement(),
- input = this.getElement().getElementsByTag( 'textarea' ).getItem( 0 );
-
- input.setAttribute( 'aria-labelledby', label.$.id );
- input.setStyle( 'direction', editor.config.contentsLangDirection );
- },
-
- focus : function()
- {
- this.getElement().focus();
- }
- }
- ]
- }
- ]
- };
- });
-})();
diff --git a/devel/third-party/ckeditor/plugins/pastetext/icons/pastetext-rtl.png b/devel/third-party/ckeditor/plugins/pastetext/icons/pastetext-rtl.png
new file mode 100644
index 0000000..d8a73bc
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pastetext/icons/pastetext-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/pastetext/icons/pastetext.png b/devel/third-party/ckeditor/plugins/pastetext/icons/pastetext.png
new file mode 100644
index 0000000..518a43e
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/pastetext/icons/pastetext.png differ
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/af.js b/devel/third-party/ckeditor/plugins/pastetext/lang/af.js
new file mode 100644
index 0000000..816160e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'af', {
+ button: 'Plak as eenvoudige teks',
+ title: 'Plak as eenvoudige teks'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ar.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ar.js
new file mode 100644
index 0000000..d0fa432
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ar', {
+ button: 'ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·',
+ title: 'ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/bg.js b/devel/third-party/ckeditor/plugins/pastetext/lang/bg.js
new file mode 100644
index 0000000..a3bc8c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'bg', {
+ button: 'ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ',
+ title: 'ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/bn.js b/devel/third-party/ckeditor/plugins/pastetext/lang/bn.js
new file mode 100644
index 0000000..eee3a93
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'bn', {
+ button: 'সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°',
+ title: 'সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/bs.js b/devel/third-party/ckeditor/plugins/pastetext/lang/bs.js
new file mode 100644
index 0000000..dc84616
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'bs', {
+ button: 'Zalijepi kao obièan tekst',
+ title: 'Zalijepi kao obièan tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ca.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ca.js
new file mode 100644
index 0000000..510ff77
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ca', {
+ button: 'Enganxa com a text no formatat',
+ title: 'Enganxa com a text no formatat'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/cs.js b/devel/third-party/ckeditor/plugins/pastetext/lang/cs.js
new file mode 100644
index 0000000..3823903
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'cs', {
+ button: 'Vložit jako Äistý text',
+ title: 'Vložit jako Äistý text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/cy.js b/devel/third-party/ckeditor/plugins/pastetext/lang/cy.js
new file mode 100644
index 0000000..38d63ed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'cy', {
+ button: 'Gludo fel testun plaen',
+ title: 'Gludo fel Testun Plaen'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/da.js b/devel/third-party/ckeditor/plugins/pastetext/lang/da.js
new file mode 100644
index 0000000..1d612c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'da', {
+ button: 'Indsæt som ikke-formateret tekst',
+ title: 'Indsæt som ikke-formateret tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/de.js b/devel/third-party/ckeditor/plugins/pastetext/lang/de.js
new file mode 100644
index 0000000..0d9a43f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'de', {
+ button: 'Als Text einfügen',
+ title: 'Als Text einfügen'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/el.js b/devel/third-party/ckeditor/plugins/pastetext/lang/el.js
new file mode 100644
index 0000000..5fa4e7e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'el', {
+ button: 'ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο',
+ title: 'ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/en-au.js b/devel/third-party/ckeditor/plugins/pastetext/lang/en-au.js
new file mode 100644
index 0000000..9fe08a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'en-au', {
+ button: 'Paste as plain text',
+ title: 'Paste as Plain Text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/en-ca.js b/devel/third-party/ckeditor/plugins/pastetext/lang/en-ca.js
new file mode 100644
index 0000000..857d63e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'en-ca', {
+ button: 'Paste as plain text',
+ title: 'Paste as Plain Text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/en-gb.js b/devel/third-party/ckeditor/plugins/pastetext/lang/en-gb.js
new file mode 100644
index 0000000..4b5985f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'en-gb', {
+ button: 'Paste as plain text',
+ title: 'Paste as Plain Text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/en.js b/devel/third-party/ckeditor/plugins/pastetext/lang/en.js
new file mode 100644
index 0000000..d9514ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'en', {
+ button: 'Paste as plain text',
+ title: 'Paste as Plain Text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/eo.js b/devel/third-party/ckeditor/plugins/pastetext/lang/eo.js
new file mode 100644
index 0000000..c991b38
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'eo', {
+ button: 'Interglui kiel platan tekston',
+ title: 'Interglui kiel platan tekston'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/es.js b/devel/third-party/ckeditor/plugins/pastetext/lang/es.js
new file mode 100644
index 0000000..88b4497
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'es', {
+ button: 'Pegar como Texto Plano',
+ title: 'Pegar como Texto Plano'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/et.js b/devel/third-party/ckeditor/plugins/pastetext/lang/et.js
new file mode 100644
index 0000000..0a71c2f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'et', {
+ button: 'Asetamine tavalise tekstina',
+ title: 'Asetamine tavalise tekstina'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/eu.js b/devel/third-party/ckeditor/plugins/pastetext/lang/eu.js
new file mode 100644
index 0000000..f969dff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'eu', {
+ button: 'Testu Arrunta bezala Itsatsi',
+ title: 'Testu Arrunta bezala Itsatsi'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/fa.js b/devel/third-party/ckeditor/plugins/pastetext/lang/fa.js
new file mode 100644
index 0000000..63f2d51
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'fa', {
+ button: 'ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù',
+ title: 'ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/fi.js b/devel/third-party/ckeditor/plugins/pastetext/lang/fi.js
new file mode 100644
index 0000000..56d6974
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'fi', {
+ button: 'Liitä tekstinä',
+ title: 'Liitä tekstinä'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/fo.js b/devel/third-party/ckeditor/plugins/pastetext/lang/fo.js
new file mode 100644
index 0000000..4700048
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'fo', {
+ button: 'Innrita som reinan tekst',
+ title: 'Innrita som reinan tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/pastetext/lang/fr-ca.js
new file mode 100644
index 0000000..a93cf38
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'fr-ca', {
+ button: 'Coller comme texte',
+ title: 'Coller comme texte'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/fr.js b/devel/third-party/ckeditor/plugins/pastetext/lang/fr.js
new file mode 100644
index 0000000..fa07f3b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'fr', {
+ button: 'Coller comme texte sans mise en forme',
+ title: 'Coller comme texte sans mise en forme'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/gl.js b/devel/third-party/ckeditor/plugins/pastetext/lang/gl.js
new file mode 100644
index 0000000..15de929
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'gl', {
+ button: 'Pegar como texto plano',
+ title: 'Pegar como texto plano'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/gu.js b/devel/third-party/ckeditor/plugins/pastetext/lang/gu.js
new file mode 100644
index 0000000..6bab8bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'gu', {
+ button: 'પà«àª¸à«àª (àªà«àªà«àª¸à«àª)',
+ title: 'પà«àª¸à«àª (àªà«àªà«àª¸à«àª)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/he.js b/devel/third-party/ckeditor/plugins/pastetext/lang/he.js
new file mode 100644
index 0000000..deca6e7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'he', {
+ button: '××××§× ×××§×¡× ×¤×©××',
+ title: '××××§× ×××§×¡× ×¤×©××'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/hi.js b/devel/third-party/ckeditor/plugins/pastetext/lang/hi.js
new file mode 100644
index 0000000..2041690
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'hi', {
+ button: 'पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)',
+ title: 'पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/hr.js b/devel/third-party/ckeditor/plugins/pastetext/lang/hr.js
new file mode 100644
index 0000000..7f1413a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'hr', {
+ button: 'Zalijepi kao Äisti tekst',
+ title: 'Zalijepi kao Äisti tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/hu.js b/devel/third-party/ckeditor/plugins/pastetext/lang/hu.js
new file mode 100644
index 0000000..498efb0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'hu', {
+ button: 'Beillesztés formázatlan szövegként',
+ title: 'Beillesztés formázatlan szövegként'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/is.js b/devel/third-party/ckeditor/plugins/pastetext/lang/is.js
new file mode 100644
index 0000000..f447f9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'is', {
+ button: 'LÃma sem ósniðinn texta',
+ title: 'LÃma sem ósniðinn texta'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/it.js b/devel/third-party/ckeditor/plugins/pastetext/lang/it.js
new file mode 100644
index 0000000..131f2c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'it', {
+ button: 'Incolla come testo semplice',
+ title: 'Incolla come testo semplice'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ja.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ja.js
new file mode 100644
index 0000000..c0b07b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ja', {
+ button: 'ãã¬ã¼ã³ããã¹ãè²¼ãä»ã',
+ title: 'ãã¬ã¼ã³ããã¹ãè²¼ãä»ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ka.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ka.js
new file mode 100644
index 0000000..9200f44
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ka', {
+ button: 'áá®áááá á¢áá¥á¡á¢áá¡ á©áá¡áá',
+ title: 'áá®áááá á¢áá¥á¡á¢áá¡ á©áá¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/km.js b/devel/third-party/ckeditor/plugins/pastetext/lang/km.js
new file mode 100644
index 0000000..51dbc9f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'km', {
+ button: 'á
ááááá¶ááá¢ááááááááááá¶',
+ title: 'á
ááááá¶ááá¢ááááááááááá¶'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ko.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ko.js
new file mode 100644
index 0000000..8f5711c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ko', {
+ button: 'í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°',
+ title: 'í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ku.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ku.js
new file mode 100644
index 0000000..13aa984
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ku', {
+ button: 'ÙÚ©Ø§ÙØ¯ÙÛ ÙÙ٠دÙÙÛ ÚÙÙÙ',
+ title: 'ÙÚ©Ø§ÙØ¯ÙÛ ÙÙ٠دÙÙÛ ÚÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/lt.js b/devel/third-party/ckeditor/plugins/pastetext/lang/lt.js
new file mode 100644
index 0000000..dd82863
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'lt', {
+ button: 'Ä®dÄti kaip grynÄ
tekstÄ
',
+ title: 'Ä®dÄti kaip grynÄ
tekstÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/lv.js b/devel/third-party/ckeditor/plugins/pastetext/lang/lv.js
new file mode 100644
index 0000000..f7bf489
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'lv', {
+ button: 'Ievietot kÄ vienkÄrÅ¡u tekstu',
+ title: 'Ievietot kÄ vienkÄrÅ¡u tekstu'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/mk.js b/devel/third-party/ckeditor/plugins/pastetext/lang/mk.js
new file mode 100644
index 0000000..2f576c2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'mk', {
+ button: 'Paste as plain text', // MISSING
+ title: 'Paste as Plain Text' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/mn.js b/devel/third-party/ckeditor/plugins/pastetext/lang/mn.js
new file mode 100644
index 0000000..06a3aa1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'mn', {
+ button: 'Ðнгийн биÑвÑÑÑÑÑ Ð±ÑÑлгаÑ
',
+ title: 'Ðнгийн биÑвÑÑÑÑÑ Ð±ÑÑлгаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ms.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ms.js
new file mode 100644
index 0000000..094161e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ms', {
+ button: 'Tampal sebagai text biasa',
+ title: 'Tampal sebagai text biasa'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/nb.js b/devel/third-party/ckeditor/plugins/pastetext/lang/nb.js
new file mode 100644
index 0000000..390ac1a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'nb', {
+ button: 'Lim inn som ren tekst',
+ title: 'Lim inn som ren tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/nl.js b/devel/third-party/ckeditor/plugins/pastetext/lang/nl.js
new file mode 100644
index 0000000..6d4bf69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'nl', {
+ button: 'Plakken als platte tekst',
+ title: 'Plakken als platte tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/no.js b/devel/third-party/ckeditor/plugins/pastetext/lang/no.js
new file mode 100644
index 0000000..337dcd1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'no', {
+ button: 'Lim inn som ren tekst',
+ title: 'Lim inn som ren tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/pl.js b/devel/third-party/ckeditor/plugins/pastetext/lang/pl.js
new file mode 100644
index 0000000..88e7551
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'pl', {
+ button: 'Wklej jako czysty tekst',
+ title: 'Wklej jako czysty tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/pt-br.js b/devel/third-party/ckeditor/plugins/pastetext/lang/pt-br.js
new file mode 100644
index 0000000..65f66dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'pt-br', {
+ button: 'Colar como Texto sem Formatação',
+ title: 'Colar como Texto sem Formatação'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/pt.js b/devel/third-party/ckeditor/plugins/pastetext/lang/pt.js
new file mode 100644
index 0000000..a80ec21
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'pt', {
+ button: 'Colar como Texto Simples',
+ title: 'Colar como Texto Simples'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ro.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ro.js
new file mode 100644
index 0000000..3ce2b89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ro', {
+ button: 'AdaugÄ ca text simplu (Plain Text)',
+ title: 'AdaugÄ ca text simplu (Plain Text)'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ru.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ru.js
new file mode 100644
index 0000000..828d6bf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ru', {
+ button: 'ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ',
+ title: 'ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/sk.js b/devel/third-party/ckeditor/plugins/pastetext/lang/sk.js
new file mode 100644
index 0000000..c5aae76
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'sk', {
+ button: 'VložiÅ¥ ako Äistý text',
+ title: 'VložiÅ¥ ako Äistý text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/sl.js b/devel/third-party/ckeditor/plugins/pastetext/lang/sl.js
new file mode 100644
index 0000000..9a022bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'sl', {
+ button: 'Prilepi kot golo besedilo',
+ title: 'Prilepi kot golo besedilo'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/pastetext/lang/sr-latn.js
new file mode 100644
index 0000000..3deeee7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'sr-latn', {
+ button: 'Zalepi kao Äist tekst',
+ title: 'Zalepi kao Äist tekst'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/sr.js b/devel/third-party/ckeditor/plugins/pastetext/lang/sr.js
new file mode 100644
index 0000000..9a95b41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'sr', {
+ button: 'Ðалепи као ÑиÑÑ ÑекÑÑ',
+ title: 'Ðалепи као ÑиÑÑ ÑекÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/sv.js b/devel/third-party/ckeditor/plugins/pastetext/lang/sv.js
new file mode 100644
index 0000000..509ab05
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'sv', {
+ button: 'Klistra in som vanlig text',
+ title: 'Klistra in som vanlig text'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/th.js b/devel/third-party/ckeditor/plugins/pastetext/lang/th.js
new file mode 100644
index 0000000..155b19c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'th', {
+ button: 'วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²',
+ title: 'วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/tr.js b/devel/third-party/ckeditor/plugins/pastetext/lang/tr.js
new file mode 100644
index 0000000..e9e41d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'tr', {
+ button: 'Düz Metin Olarak YapıÅtır',
+ title: 'Düz Metin Olarak YapıÅtır'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/ug.js b/devel/third-party/ckeditor/plugins/pastetext/lang/ug.js
new file mode 100644
index 0000000..2bb3a35
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'ug', {
+ button: 'Ù¾ÙÚÙÙ
Ù ÙÙ٠تÛÙÙØ³Øª سÛÙ¾ÙØªÙØ¯Û ÚØ§Ù¾Ùا',
+ title: 'Ù¾ÙÚÙÙ
Ù ÙÙ٠تÛÙÙØ³Øª سÛÙ¾ÙØªÙØ¯Û ÚØ§Ù¾Ùا'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/uk.js b/devel/third-party/ckeditor/plugins/pastetext/lang/uk.js
new file mode 100644
index 0000000..e8063ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'uk', {
+ button: 'ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ',
+ title: 'ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/vi.js b/devel/third-party/ckeditor/plugins/pastetext/lang/vi.js
new file mode 100644
index 0000000..c1ec832
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'vi', {
+ button: 'Dán theo Äá»nh dạng vÄn bản thuần',
+ title: 'Dán theo Äá»nh dạng vÄn bản thuần'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/pastetext/lang/zh-cn.js
new file mode 100644
index 0000000..8f80526
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'zh-cn', {
+ button: 'ç²è´´ä¸ºæ æ ¼å¼ææ¬',
+ title: 'ç²è´´ä¸ºæ æ ¼å¼ææ¬'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/lang/zh.js b/devel/third-party/ckeditor/plugins/pastetext/lang/zh.js
new file mode 100644
index 0000000..a9ecaed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/pastetext/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'pastetext', 'zh', {
+ button: 'è²¼çºç´æåæ ¼å¼',
+ title: 'è²¼çºç´æåæ ¼å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/pastetext/plugin.js b/devel/third-party/ckeditor/plugins/pastetext/plugin.js
index 2d03974..45d4800 100644
--- a/devel/third-party/ckeditor/plugins/pastetext/plugin.js
+++ b/devel/third-party/ckeditor/plugins/pastetext/plugin.js
@@ -1,135 +1,63 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Paste as plain text plugin
+ * @fileOverview Paste as plain text plugin.
*/
-(function()
-{
+(function() {
// The pastetext command definition.
- var pasteTextCmd =
- {
- exec : function( editor )
- {
- var clipboardText = CKEDITOR.tools.tryThese(
- function()
- {
- var clipboardText = window.clipboardData.getData( 'Text' );
- if ( !clipboardText )
- throw 0;
- return clipboardText;
- }
- // Any other approach that's working...
- );
-
- if ( !clipboardText ) // Clipboard access privilege is not granted.
- {
- editor.openDialog( 'pastetext' );
- return false;
- }
- else
- editor.fire( 'paste', { 'text' : clipboardText } );
-
- return true;
+ var pasteTextCmd = {
+ // Snapshots are done manually by editable.insertXXX methods.
+ canUndo: false,
+ async: true,
+
+ exec: function( editor ) {
+ editor.getClipboardData({ title: editor.lang.pastetext.title }, function( data ) {
+ // Do not use editor#paste, because it would start from beforePaste event.
+ data && editor.fire( 'paste', { type: 'text', dataValue: data.dataValue } );
+
+ editor.fire( 'afterCommandExec', {
+ name: 'pastetext',
+ command: pasteTextCmd,
+ returnValue: !!data
+ });
+ });
}
};
- function doInsertText( doc, text )
- {
- // Native text insertion.
- if ( CKEDITOR.env.ie )
- {
- var selection = doc.selection;
- if ( selection.type == 'Control' )
- selection.clear();
- selection.createRange().pasteHTML( text );
- }
- else
- doc.execCommand( 'inserthtml', false, text );
- }
-
// Register the plugin.
- CKEDITOR.plugins.add( 'pastetext',
- {
- init : function( editor )
- {
- var commandName = 'pastetext',
- command = editor.addCommand( commandName, pasteTextCmd );
-
- editor.ui.addButton( 'PasteText',
- {
- label : editor.lang.pasteText.button,
- command : commandName
+ CKEDITOR.plugins.add( 'pastetext', {
+ requires: 'clipboard',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'pastetext,pastetext-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ var commandName = 'pastetext';
+
+ editor.addCommand( commandName, pasteTextCmd );
+
+ editor.ui.addButton && editor.ui.addButton( 'PasteText', {
+ label: editor.lang.pastetext.button,
+ command: commandName,
+ toolbar: 'clipboard,40'
+ });
+
+ if ( editor.config.forcePasteAsPlainText ) {
+ editor.on( 'beforePaste', function( evt ) {
+ // Do NOT overwrite if HTML format is explicitly requested.
+ // This allows pastefromword dominates over pastetext.
+ if ( evt.data.type != 'html' )
+ evt.data.type = 'text';
});
-
- CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/pastetext.js' ) );
-
- if ( editor.config.forcePasteAsPlainText )
- {
- // Intercept the default pasting process.
- editor.on( 'beforeCommandExec', function ( evt )
- {
- if ( evt.data.name == 'paste' )
- {
- editor.execCommand( 'pastetext' );
- evt.cancel();
- }
- }, null, null, 0 );
}
- },
-
- requires : [ 'clipboard' ]
- });
- function doEnter( editor, mode, times, forceMode )
- {
- while ( times-- )
- {
- CKEDITOR.plugins.enterkey[ mode == CKEDITOR.ENTER_BR ? 'enterBr' : 'enterBlock' ]
- ( editor, mode, null, forceMode );
+ editor.on( 'pasteState', function( evt ) {
+ editor.getCommand( commandName ).setState( evt.data );
+ });
}
- }
-
- CKEDITOR.editor.prototype.insertText = function( text )
- {
- this.focus();
- this.fire( 'saveSnapshot' );
-
- var mode = this.getSelection().getStartElement().hasAscendant( 'pre', true ) ? CKEDITOR.ENTER_BR : this.config.enterMode,
- isEnterBrMode = mode == CKEDITOR.ENTER_BR,
- doc = this.document.$,
- self = this,
- line;
-
- text = CKEDITOR.tools.htmlEncode( text.replace( /\r\n|\r/g, '\n' ) );
-
- var startIndex = 0;
- text.replace( /\n+/g, function( match, lastIndex )
- {
- line = text.substring( startIndex, lastIndex );
- startIndex = lastIndex + match.length;
- line.length && doInsertText( doc, line );
-
- var lineBreakNums = match.length,
- // Duo consequence line-break as a enter block.
- enterBlockTimes = isEnterBrMode ? 0 : Math.floor( lineBreakNums / 2 ),
- // Per link-break as a enter br.
- enterBrTimes = isEnterBrMode ? lineBreakNums : lineBreakNums % 2;
-
- // Line-breaks are converted to editor enter key strokes.
- doEnter( self, mode, enterBlockTimes );
- doEnter( self, CKEDITOR.ENTER_BR, enterBrTimes, isEnterBrMode ? false : true );
- });
-
- // Insert the last text line of text.
- line = text.substring( startIndex, text.length );
- line.length && doInsertText( doc, line );
-
- this.fire( 'saveSnapshot' );
- };
+ });
})();
@@ -137,9 +65,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* Whether to force all pasting operations to insert on plain text into the
* editor, loosing any formatting information possibly available in the source
* text.
- * @name CKEDITOR.config.forcePasteAsPlainText
- * @type Boolean
- * @default false
- * @example
- * config.forcePasteAsPlainText = true;
+ *
+ * **Note:** paste from word (dialog) is not affected by this configuration.
+ *
+ * config.forcePasteAsPlainText = true;
+ *
+ * @cfg {Boolean} [forcePasteAsPlainText=false]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/popup/plugin.js b/devel/third-party/ckeditor/plugins/popup/plugin.js
index fb7f2c4..26d5240 100644
--- a/devel/third-party/ckeditor/plugins/popup/plugin.js
+++ b/devel/third-party/ckeditor/plugins/popup/plugin.js
@@ -1,22 +1,23 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
CKEDITOR.plugins.add( 'popup' );
-CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
-{
+CKEDITOR.tools.extend( CKEDITOR.editor.prototype, {
/**
- * Opens Browser in a popup. The "width" and "height" parameters accept
+ * Opens Browser in a popup. The `width` and `height` parameters accept
* numbers (pixels) or percent (of screen size) values.
+ *
+ * @member CKEDITOR.editor
* @param {String} url The url of the external file browser.
- * @param {String} width Popup window width.
- * @param {String} height Popup window height.
- * @param {String} options Popup window features.
+ * @param {Number/String} [width='80%'] Popup window width.
+ * @param {Number/String} [height='70%'] Popup window height.
+ * @param {String} [options='location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes']
+ * Popup window features.
*/
- popup : function( url, width, height, options )
- {
+ popup: function( url, width, height, options ) {
width = width || '80%';
height = height || '70%';
@@ -33,12 +34,11 @@ CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
height = 420;
var top = parseInt( ( window.screen.height - height ) / 2, 10 ),
- left = parseInt( ( window.screen.width - width ) / 2, 10 );
+ left = parseInt( ( window.screen.width - width ) / 2, 10 );
- options = ( options || 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes' ) +
- ',width=' + width +
+ options = ( options || 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes' ) + ',width=' + width +
',height=' + height +
- ',top=' + top +
+ ',top=' + top +
',left=' + left;
var popupWindow = window.open( '', null, options, true );
@@ -47,15 +47,16 @@ CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
if ( !popupWindow )
return false;
- try
- {
- popupWindow.moveTo( left, top );
- popupWindow.resizeTo( width, height );
+ try {
+ // Chrome is problematic with moveTo/resizeTo, but it's not really needed here (#8855).
+ var ua = navigator.userAgent.toLowerCase();
+ if ( ua.indexOf( ' chrome/' ) == -1 ) {
+ popupWindow.moveTo( left, top );
+ popupWindow.resizeTo( width, height );
+ }
popupWindow.focus();
popupWindow.location.href = url;
- }
- catch (e)
- {
+ } catch ( e ) {
popupWindow = window.open( url, null, options, true );
}
diff --git a/devel/third-party/ckeditor/plugins/preview/icons/preview-rtl.png b/devel/third-party/ckeditor/plugins/preview/icons/preview-rtl.png
new file mode 100644
index 0000000..68f8b59
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/preview/icons/preview-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/preview/icons/preview.png b/devel/third-party/ckeditor/plugins/preview/icons/preview.png
new file mode 100644
index 0000000..e69d001
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/preview/icons/preview.png differ
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/af.js b/devel/third-party/ckeditor/plugins/preview/lang/af.js
new file mode 100644
index 0000000..b9b52fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'af', {
+ preview: 'Voorbeeld'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ar.js b/devel/third-party/ckeditor/plugins/preview/lang/ar.js
new file mode 100644
index 0000000..c866af5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ar', {
+ preview: 'Ù
عاÙÙØ© Ø§ÙØµÙØØ©'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/bg.js b/devel/third-party/ckeditor/plugins/preview/lang/bg.js
new file mode 100644
index 0000000..0176631
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'bg', {
+ preview: 'ÐÑеглед'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/bn.js b/devel/third-party/ckeditor/plugins/preview/lang/bn.js
new file mode 100644
index 0000000..334aa4e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'bn', {
+ preview: 'পà§à¦°à¦¿à¦à¦¿à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/bs.js b/devel/third-party/ckeditor/plugins/preview/lang/bs.js
new file mode 100644
index 0000000..8b0c3d7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'bs', {
+ preview: 'Prikaži'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ca.js b/devel/third-party/ckeditor/plugins/preview/lang/ca.js
new file mode 100644
index 0000000..a415928
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ca', {
+ preview: 'Visualització prèvia'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/cs.js b/devel/third-party/ckeditor/plugins/preview/lang/cs.js
new file mode 100644
index 0000000..96aaab7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'cs', {
+ preview: 'Náhled'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/cy.js b/devel/third-party/ckeditor/plugins/preview/lang/cy.js
new file mode 100644
index 0000000..9f3cbd5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'cy', {
+ preview: 'Rhagolwg'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/da.js b/devel/third-party/ckeditor/plugins/preview/lang/da.js
new file mode 100644
index 0000000..79a849b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'da', {
+ preview: 'Vis eksempel'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/de.js b/devel/third-party/ckeditor/plugins/preview/lang/de.js
new file mode 100644
index 0000000..2db4119
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'de', {
+ preview: 'Vorschau'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/el.js b/devel/third-party/ckeditor/plugins/preview/lang/el.js
new file mode 100644
index 0000000..d8e7af1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'el', {
+ preview: 'Î ÏοεÏιÏκÏÏιÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/en-au.js b/devel/third-party/ckeditor/plugins/preview/lang/en-au.js
new file mode 100644
index 0000000..2f03fad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'en-au', {
+ preview: 'Preview'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/en-ca.js b/devel/third-party/ckeditor/plugins/preview/lang/en-ca.js
new file mode 100644
index 0000000..5e9ac18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'en-ca', {
+ preview: 'Preview'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/en-gb.js b/devel/third-party/ckeditor/plugins/preview/lang/en-gb.js
new file mode 100644
index 0000000..257293e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'en-gb', {
+ preview: 'Preview'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/en.js b/devel/third-party/ckeditor/plugins/preview/lang/en.js
new file mode 100644
index 0000000..cd6bce0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'en', {
+ preview: 'Preview'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/eo.js b/devel/third-party/ckeditor/plugins/preview/lang/eo.js
new file mode 100644
index 0000000..4787cdd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'eo', {
+ preview: 'Vidigi Aspekton'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/es.js b/devel/third-party/ckeditor/plugins/preview/lang/es.js
new file mode 100644
index 0000000..fd8dc40
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'es', {
+ preview: 'Vista Previa'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/et.js b/devel/third-party/ckeditor/plugins/preview/lang/et.js
new file mode 100644
index 0000000..d0435fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'et', {
+ preview: 'Eelvaade'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/eu.js b/devel/third-party/ckeditor/plugins/preview/lang/eu.js
new file mode 100644
index 0000000..0aabb0c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'eu', {
+ preview: 'Aurrebista'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/fa.js b/devel/third-party/ckeditor/plugins/preview/lang/fa.js
new file mode 100644
index 0000000..5f7101e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'fa', {
+ preview: 'Ù¾ÛØ´ÙÙ
Ø§ÛØ´'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/fi.js b/devel/third-party/ckeditor/plugins/preview/lang/fi.js
new file mode 100644
index 0000000..4738dea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'fi', {
+ preview: 'Esikatsele'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/fo.js b/devel/third-party/ckeditor/plugins/preview/lang/fo.js
new file mode 100644
index 0000000..0ee9515
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'fo', {
+ preview: 'Frumsýning'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/preview/lang/fr-ca.js
new file mode 100644
index 0000000..b7e19fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'fr-ca', {
+ preview: 'Previsualiser'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/fr.js b/devel/third-party/ckeditor/plugins/preview/lang/fr.js
new file mode 100644
index 0000000..d4ed5f7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'fr', {
+ preview: 'Aperçu'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/gl.js b/devel/third-party/ckeditor/plugins/preview/lang/gl.js
new file mode 100644
index 0000000..e7422b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'gl', {
+ preview: 'Vista Previa'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/gu.js b/devel/third-party/ckeditor/plugins/preview/lang/gu.js
new file mode 100644
index 0000000..b4f1277
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'gu', {
+ preview: 'પà«àª°à«àªµàª¦àª°à«àª¶àª¨'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/he.js b/devel/third-party/ckeditor/plugins/preview/lang/he.js
new file mode 100644
index 0000000..99391a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'he', {
+ preview: 'תצ××× ××§××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/hi.js b/devel/third-party/ckeditor/plugins/preview/lang/hi.js
new file mode 100644
index 0000000..29af69e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'hi', {
+ preview: 'पà¥à¤°à¥à¤µà¥à¤¯à¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/hr.js b/devel/third-party/ckeditor/plugins/preview/lang/hr.js
new file mode 100644
index 0000000..22cc227
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'hr', {
+ preview: 'Pregledaj'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/hu.js b/devel/third-party/ckeditor/plugins/preview/lang/hu.js
new file mode 100644
index 0000000..8d7f2ff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'hu', {
+ preview: 'ElÅnézet'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/is.js b/devel/third-party/ckeditor/plugins/preview/lang/is.js
new file mode 100644
index 0000000..5ff4cf4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'is', {
+ preview: 'Forskoða'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/it.js b/devel/third-party/ckeditor/plugins/preview/lang/it.js
new file mode 100644
index 0000000..887118d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'it', {
+ preview: 'Anteprima'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ja.js b/devel/third-party/ckeditor/plugins/preview/lang/ja.js
new file mode 100644
index 0000000..9071e87
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ja', {
+ preview: 'ãã¬ãã¥ã¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ka.js b/devel/third-party/ckeditor/plugins/preview/lang/ka.js
new file mode 100644
index 0000000..b81d911
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ka', {
+ preview: 'ááááá®áááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/km.js b/devel/third-party/ckeditor/plugins/preview/lang/km.js
new file mode 100644
index 0000000..6ad2b66
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'km', {
+ preview: 'áá¾ááá¶ááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ko.js b/devel/third-party/ckeditor/plugins/preview/lang/ko.js
new file mode 100644
index 0000000..90e1cc0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ko', {
+ preview: '미리보기'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ku.js b/devel/third-party/ckeditor/plugins/preview/lang/ku.js
new file mode 100644
index 0000000..2ee73fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ku', {
+ preview: 'Ù¾ÛØ´Ø¨ÛÙÛÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/lt.js b/devel/third-party/ckeditor/plugins/preview/lang/lt.js
new file mode 100644
index 0000000..895945a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'lt', {
+ preview: 'Peržiūra'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/lv.js b/devel/third-party/ckeditor/plugins/preview/lang/lv.js
new file mode 100644
index 0000000..33d5e5d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'lv', {
+ preview: 'Priekšskatīt'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/mk.js b/devel/third-party/ckeditor/plugins/preview/lang/mk.js
new file mode 100644
index 0000000..c5784cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'mk', {
+ preview: 'Preview' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/mn.js b/devel/third-party/ckeditor/plugins/preview/lang/mn.js
new file mode 100644
index 0000000..1c5e24b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'mn', {
+ preview: 'УÑидÑлан Ñ
аÑаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ms.js b/devel/third-party/ckeditor/plugins/preview/lang/ms.js
new file mode 100644
index 0000000..7e6ba1b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ms', {
+ preview: 'Prebiu'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/nb.js b/devel/third-party/ckeditor/plugins/preview/lang/nb.js
new file mode 100644
index 0000000..0b17b3a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'nb', {
+ preview: 'Forhåndsvis'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/nl.js b/devel/third-party/ckeditor/plugins/preview/lang/nl.js
new file mode 100644
index 0000000..688168c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'nl', {
+ preview: 'Voorbeeld'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/no.js b/devel/third-party/ckeditor/plugins/preview/lang/no.js
new file mode 100644
index 0000000..758aee1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'no', {
+ preview: 'Forhåndsvis'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/pl.js b/devel/third-party/ckeditor/plugins/preview/lang/pl.js
new file mode 100644
index 0000000..10b3491
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'pl', {
+ preview: 'PodglÄ
d'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/pt-br.js b/devel/third-party/ckeditor/plugins/preview/lang/pt-br.js
new file mode 100644
index 0000000..c94da32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'pt-br', {
+ preview: 'Visualizar'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/pt.js b/devel/third-party/ckeditor/plugins/preview/lang/pt.js
new file mode 100644
index 0000000..999a593
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'pt', {
+ preview: 'Pré-visualizar'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ro.js b/devel/third-party/ckeditor/plugins/preview/lang/ro.js
new file mode 100644
index 0000000..98ad1c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ro', {
+ preview: 'Previzualizare'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ru.js b/devel/third-party/ckeditor/plugins/preview/lang/ru.js
new file mode 100644
index 0000000..bc45ff2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ru', {
+ preview: 'ÐÑедваÑиÑелÑнÑй пÑоÑмоÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/sk.js b/devel/third-party/ckeditor/plugins/preview/lang/sk.js
new file mode 100644
index 0000000..13d6c5f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'sk', {
+ preview: 'Náhľad'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/sl.js b/devel/third-party/ckeditor/plugins/preview/lang/sl.js
new file mode 100644
index 0000000..5c2422b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'sl', {
+ preview: 'Predogled'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/preview/lang/sr-latn.js
new file mode 100644
index 0000000..667bb7b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'sr-latn', {
+ preview: 'Izgled stranice'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/sr.js b/devel/third-party/ckeditor/plugins/preview/lang/sr.js
new file mode 100644
index 0000000..1038bd5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'sr', {
+ preview: 'Ðзглед ÑÑÑаниÑе'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/sv.js b/devel/third-party/ckeditor/plugins/preview/lang/sv.js
new file mode 100644
index 0000000..7965706
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'sv', {
+ preview: 'Förhandsgranska'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/th.js b/devel/third-party/ckeditor/plugins/preview/lang/th.js
new file mode 100644
index 0000000..5cd7975
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'th', {
+ preview: 'à¸à¸¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸±à¸§à¸à¸¢à¹à¸²à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/tr.js b/devel/third-party/ckeditor/plugins/preview/lang/tr.js
new file mode 100644
index 0000000..06bc656
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'tr', {
+ preview: 'Ãn İzleme'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/ug.js b/devel/third-party/ckeditor/plugins/preview/lang/ug.js
new file mode 100644
index 0000000..49a7f8e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'ug', {
+ preview: 'Ø¦Ø§ÙØ¯ÙÙ ÙÛØ²Ûت'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/uk.js b/devel/third-party/ckeditor/plugins/preview/lang/uk.js
new file mode 100644
index 0000000..21b9c67
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'uk', {
+ preview: 'ÐопеÑеднÑй пеÑеглÑд'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/vi.js b/devel/third-party/ckeditor/plugins/preview/lang/vi.js
new file mode 100644
index 0000000..fa0890c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'vi', {
+ preview: 'Xem trưá»c'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/preview/lang/zh-cn.js
new file mode 100644
index 0000000..8d1834e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'zh-cn', {
+ preview: 'é¢è§'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/lang/zh.js b/devel/third-party/ckeditor/plugins/preview/lang/zh.js
new file mode 100644
index 0000000..3c07d79
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'preview', 'zh', {
+ preview: 'é 覽'
+});
diff --git a/devel/third-party/ckeditor/plugins/preview/plugin.js b/devel/third-party/ckeditor/plugins/preview/plugin.js
index dd53d43..bdd5418 100644
--- a/devel/third-party/ckeditor/plugins/preview/plugin.js
+++ b/devel/third-party/ckeditor/plugins/preview/plugin.js
@@ -1,38 +1,31 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Preview plugin.
+ * @fileOverview Preview plugin.
*/
-(function()
-{
- var previewCmd =
- {
- modes : { wysiwyg:1, source:1 },
- canUndo : false,
- exec : function( editor )
- {
+(function() {
+ var pluginPath;
+
+ var previewCmd = { modes:{wysiwyg:1,source:1 },
+ canUndo: false,
+ readOnly: 1,
+ exec: function( editor ) {
var sHTML,
config = editor.config,
baseTag = config.baseHref ? '<base href="' + config.baseHref + '"/>' : '',
isCustomDomain = CKEDITOR.env.isCustomDomain();
- if ( config.fullPage )
- {
- sHTML = editor.getData()
- .replace( /<head>/, '$&' + baseTag )
- .replace( /[^>]*(?=<\/title>)/, editor.lang.preview );
- }
- else
- {
+ if ( config.fullPage ) {
+ sHTML = editor.getData().replace( /<head>/, '$&' + baseTag ).replace( /[^>]*(?=<\/title>)/, '$& — ' + editor.lang.preview.preview );
+ } else {
var bodyHtml = '<body ',
- body = editor.document && editor.document.getBody();
+ body = editor.document && editor.document.getBody();
- if ( body )
- {
+ if ( body ) {
if ( body.getAttribute( 'id' ) )
bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" ';
if ( body.getAttribute( 'class' ) )
@@ -41,33 +34,30 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
bodyHtml += '>';
- sHTML =
- editor.config.docType +
- '<html dir="' + editor.config.contentsLangDirection + '">' +
+ sHTML = editor.config.docType + '<html dir="' + editor.config.contentsLangDirection + '">' +
'<head>' +
- baseTag +
- '<title>' + editor.lang.preview + '</title>' +
- CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) +
+ baseTag +
+ '<title>' + editor.lang.preview.preview + '</title>' +
+ CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) +
'</head>' + bodyHtml +
- editor.getData() +
+ editor.getData() +
'</body></html>';
}
- var iWidth = 640, // 800 * 0.8,
- iHeight = 420, // 600 * 0.7,
- iLeft = 80; // (800 - 0.8 * 800) /2 = 800 * 0.1.
- try
- {
+ var iWidth = 640,
+ // 800 * 0.8,
+ iHeight = 420,
+ // 600 * 0.7,
+ iLeft = 80; // (800 - 0.8 * 800) /2 = 800 * 0.1.
+ try {
var screen = window.screen;
iWidth = Math.round( screen.width * 0.8 );
iHeight = Math.round( screen.height * 0.7 );
iLeft = Math.round( screen.width * 0.1 );
- }
- catch ( e ){}
+ } catch ( e ) {}
var sOpenUrl = '';
- if ( isCustomDomain )
- {
+ if ( isCustomDomain ) {
window._cke_htmlToLoad = sHTML;
sOpenUrl = 'javascript:void( (function(){' +
'document.open();' +
@@ -78,14 +68,26 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
'})() )';
}
+ // With Firefox only, we need to open a special preview page, so
+ // anchors will work properly on it. (#9047)
+ if ( CKEDITOR.env.gecko ) {
+ window._cke_htmlToLoad = sHTML;
+ sOpenUrl = pluginPath + 'preview.html';
+ }
+
var oWindow = window.open( sOpenUrl, null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' +
iWidth + ',height=' + iHeight + ',left=' + iLeft );
- if ( !isCustomDomain )
- {
- oWindow.document.open();
- oWindow.document.write( sHTML );
- oWindow.document.close();
+ if ( !isCustomDomain && !CKEDITOR.env.gecko ) {
+ var doc = oWindow.document;
+ doc.open();
+ doc.write( sHTML );
+ doc.close();
+
+ // Chrome will need this to show the embedded. (#8016)
+ CKEDITOR.env.webkit && setTimeout( function() {
+ doc.body.innerHTML += '';
+ }, 0 );
}
}
};
@@ -93,16 +95,23 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var pluginName = 'preview';
// Register a plugin named "preview".
- CKEDITOR.plugins.add( pluginName,
- {
- init : function( editor )
- {
+ CKEDITOR.plugins.add( pluginName, {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'preview,preview-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+
+ // Preview is not used for the inline creator.
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
+ return;
+
+ pluginPath = this.path;
+
editor.addCommand( pluginName, previewCmd );
- editor.ui.addButton( 'Preview',
- {
- label : editor.lang.preview,
- command : pluginName
- });
+ editor.ui.addButton && editor.ui.addButton( 'Preview', {
+ label: editor.lang.preview.preview,
+ command: pluginName,
+ toolbar: 'document,40'
+ });
}
});
})();
diff --git a/devel/third-party/ckeditor/plugins/preview/preview.html b/devel/third-party/ckeditor/plugins/preview/preview.html
new file mode 100644
index 0000000..d6c4937
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/preview/preview.html
@@ -0,0 +1,10 @@
+<script>
+
+var doc = document;
+doc.open();
+doc.write( window.opener._cke_htmlToLoad );
+doc.close();
+
+delete window.opener._cke_htmlToLoad;
+
+</script>
diff --git a/devel/third-party/ckeditor/plugins/print/icons/print.png b/devel/third-party/ckeditor/plugins/print/icons/print.png
new file mode 100644
index 0000000..e74dfff
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/print/icons/print.png differ
diff --git a/devel/third-party/ckeditor/plugins/print/lang/af.js b/devel/third-party/ckeditor/plugins/print/lang/af.js
new file mode 100644
index 0000000..e7f7625
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'af', {
+ toolbar: 'Druk'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ar.js b/devel/third-party/ckeditor/plugins/print/lang/ar.js
new file mode 100644
index 0000000..90f7bcd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ar', {
+ toolbar: 'طباعة'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/bg.js b/devel/third-party/ckeditor/plugins/print/lang/bg.js
new file mode 100644
index 0000000..a668072
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'bg', {
+ toolbar: 'ÐеÑаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/bn.js b/devel/third-party/ckeditor/plugins/print/lang/bn.js
new file mode 100644
index 0000000..f992a23
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'bn', {
+ toolbar: 'পà§à¦°à¦¿à¦¨à§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/bs.js b/devel/third-party/ckeditor/plugins/print/lang/bs.js
new file mode 100644
index 0000000..978c1d9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'bs', {
+ toolbar: 'Å tampaj'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ca.js b/devel/third-party/ckeditor/plugins/print/lang/ca.js
new file mode 100644
index 0000000..ac69b7b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ca', {
+ toolbar: 'Imprimeix'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/cs.js b/devel/third-party/ckeditor/plugins/print/lang/cs.js
new file mode 100644
index 0000000..168750d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'cs', {
+ toolbar: 'Tisk'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/cy.js b/devel/third-party/ckeditor/plugins/print/lang/cy.js
new file mode 100644
index 0000000..925875f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'cy', {
+ toolbar: 'Argraffu'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/da.js b/devel/third-party/ckeditor/plugins/print/lang/da.js
new file mode 100644
index 0000000..9ff08b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'da', {
+ toolbar: 'Udskriv'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/de.js b/devel/third-party/ckeditor/plugins/print/lang/de.js
new file mode 100644
index 0000000..b282eba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'de', {
+ toolbar: 'Drucken'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/el.js b/devel/third-party/ckeditor/plugins/print/lang/el.js
new file mode 100644
index 0000000..35c8666
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'el', {
+ toolbar: 'ÎκÏÏÏÏÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/en-au.js b/devel/third-party/ckeditor/plugins/print/lang/en-au.js
new file mode 100644
index 0000000..cb0c61c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'en-au', {
+ toolbar: 'Print'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/en-ca.js b/devel/third-party/ckeditor/plugins/print/lang/en-ca.js
new file mode 100644
index 0000000..c9817d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'en-ca', {
+ toolbar: 'Print'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/en-gb.js b/devel/third-party/ckeditor/plugins/print/lang/en-gb.js
new file mode 100644
index 0000000..e16524e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'en-gb', {
+ toolbar: 'Print'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/en.js b/devel/third-party/ckeditor/plugins/print/lang/en.js
new file mode 100644
index 0000000..9203f8f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'en', {
+ toolbar: 'Print'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/eo.js b/devel/third-party/ckeditor/plugins/print/lang/eo.js
new file mode 100644
index 0000000..0a4a74a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'eo', {
+ toolbar: 'Presi'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/es.js b/devel/third-party/ckeditor/plugins/print/lang/es.js
new file mode 100644
index 0000000..3666544
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'es', {
+ toolbar: 'Imprimir'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/et.js b/devel/third-party/ckeditor/plugins/print/lang/et.js
new file mode 100644
index 0000000..aa6db4a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'et', {
+ toolbar: 'Printimine'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/eu.js b/devel/third-party/ckeditor/plugins/print/lang/eu.js
new file mode 100644
index 0000000..1374992
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'eu', {
+ toolbar: 'Inprimatu'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/fa.js b/devel/third-party/ckeditor/plugins/print/lang/fa.js
new file mode 100644
index 0000000..9e948d5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'fa', {
+ toolbar: 'ÚØ§Ù¾'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/fi.js b/devel/third-party/ckeditor/plugins/print/lang/fi.js
new file mode 100644
index 0000000..39c9250
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'fi', {
+ toolbar: 'Tulosta'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/fo.js b/devel/third-party/ckeditor/plugins/print/lang/fo.js
new file mode 100644
index 0000000..1ab8451
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'fo', {
+ toolbar: 'Prenta'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/print/lang/fr-ca.js
new file mode 100644
index 0000000..f9b0d59
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'fr-ca', {
+ toolbar: 'Imprimer'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/fr.js b/devel/third-party/ckeditor/plugins/print/lang/fr.js
new file mode 100644
index 0000000..9ddac9b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'fr', {
+ toolbar: 'Imprimer'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/gl.js b/devel/third-party/ckeditor/plugins/print/lang/gl.js
new file mode 100644
index 0000000..aa07bc2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'gl', {
+ toolbar: 'Imprimir'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/gu.js b/devel/third-party/ckeditor/plugins/print/lang/gu.js
new file mode 100644
index 0000000..4891d52
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'gu', {
+ toolbar: 'પà«àª°àª¿àª¨à«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/he.js b/devel/third-party/ckeditor/plugins/print/lang/he.js
new file mode 100644
index 0000000..afe1b2a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'he', {
+ toolbar: '××פס×'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/hi.js b/devel/third-party/ckeditor/plugins/print/lang/hi.js
new file mode 100644
index 0000000..292f293
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'hi', {
+ toolbar: 'पà¥à¤°à¤¿à¤¨à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/hr.js b/devel/third-party/ckeditor/plugins/print/lang/hr.js
new file mode 100644
index 0000000..7c43240
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'hr', {
+ toolbar: 'Ispiši'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/hu.js b/devel/third-party/ckeditor/plugins/print/lang/hu.js
new file mode 100644
index 0000000..0d43ac5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'hu', {
+ toolbar: 'Nyomtatás'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/is.js b/devel/third-party/ckeditor/plugins/print/lang/is.js
new file mode 100644
index 0000000..f4f5758
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'is', {
+ toolbar: 'Prenta'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/it.js b/devel/third-party/ckeditor/plugins/print/lang/it.js
new file mode 100644
index 0000000..45ea178
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'it', {
+ toolbar: 'Stampa'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ja.js b/devel/third-party/ckeditor/plugins/print/lang/ja.js
new file mode 100644
index 0000000..7653f0d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ja', {
+ toolbar: 'å°å·'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ka.js b/devel/third-party/ckeditor/plugins/print/lang/ka.js
new file mode 100644
index 0000000..ac1d915
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ka', {
+ toolbar: 'áááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/km.js b/devel/third-party/ckeditor/plugins/print/lang/km.js
new file mode 100644
index 0000000..2ffc285
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'km', {
+ toolbar: 'ááááá»ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ko.js b/devel/third-party/ckeditor/plugins/print/lang/ko.js
new file mode 100644
index 0000000..6076f0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ko', {
+ toolbar: 'ì¸ìí기'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ku.js b/devel/third-party/ckeditor/plugins/print/lang/ku.js
new file mode 100644
index 0000000..47a8efe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ku', {
+ toolbar: 'ÚØ§Ù¾Ú©Ø±Ø¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/lt.js b/devel/third-party/ckeditor/plugins/print/lang/lt.js
new file mode 100644
index 0000000..c2125a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'lt', {
+ toolbar: 'Spausdinti'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/lv.js b/devel/third-party/ckeditor/plugins/print/lang/lv.js
new file mode 100644
index 0000000..ee34688
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'lv', {
+ toolbar: 'DrukÄt'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/mk.js b/devel/third-party/ckeditor/plugins/print/lang/mk.js
new file mode 100644
index 0000000..5bac34d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'mk', {
+ toolbar: 'Print' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/mn.js b/devel/third-party/ckeditor/plugins/print/lang/mn.js
new file mode 100644
index 0000000..1e97ab7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'mn', {
+ toolbar: 'Ð¥ÑвлÑÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ms.js b/devel/third-party/ckeditor/plugins/print/lang/ms.js
new file mode 100644
index 0000000..6d8a2d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ms', {
+ toolbar: 'Cetak'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/nb.js b/devel/third-party/ckeditor/plugins/print/lang/nb.js
new file mode 100644
index 0000000..4a76f02
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'nb', {
+ toolbar: 'Skriv ut'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/nl.js b/devel/third-party/ckeditor/plugins/print/lang/nl.js
new file mode 100644
index 0000000..ce3cf10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'nl', {
+ toolbar: 'Printen'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/no.js b/devel/third-party/ckeditor/plugins/print/lang/no.js
new file mode 100644
index 0000000..35e7449
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'no', {
+ toolbar: 'Skriv ut'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/pl.js b/devel/third-party/ckeditor/plugins/print/lang/pl.js
new file mode 100644
index 0000000..8dbee4e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'pl', {
+ toolbar: 'Drukuj'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/pt-br.js b/devel/third-party/ckeditor/plugins/print/lang/pt-br.js
new file mode 100644
index 0000000..6327199
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'pt-br', {
+ toolbar: 'Imprimir'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/pt.js b/devel/third-party/ckeditor/plugins/print/lang/pt.js
new file mode 100644
index 0000000..54a5ddf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'pt', {
+ toolbar: 'Imprimir'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ro.js b/devel/third-party/ckeditor/plugins/print/lang/ro.js
new file mode 100644
index 0000000..9cc79aa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ro', {
+ toolbar: 'PrinteazÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ru.js b/devel/third-party/ckeditor/plugins/print/lang/ru.js
new file mode 100644
index 0000000..9cf4386
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ru', {
+ toolbar: 'ÐеÑаÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/sk.js b/devel/third-party/ckeditor/plugins/print/lang/sk.js
new file mode 100644
index 0000000..c17db08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'sk', {
+ toolbar: 'TlaÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/sl.js b/devel/third-party/ckeditor/plugins/print/lang/sl.js
new file mode 100644
index 0000000..1f95fe8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'sl', {
+ toolbar: 'Natisni'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/print/lang/sr-latn.js
new file mode 100644
index 0000000..f75fb65
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'sr-latn', {
+ toolbar: 'Å tampa'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/sr.js b/devel/third-party/ckeditor/plugins/print/lang/sr.js
new file mode 100644
index 0000000..6d0351b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'sr', {
+ toolbar: 'ШÑампа'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/sv.js b/devel/third-party/ckeditor/plugins/print/lang/sv.js
new file mode 100644
index 0000000..fb415e3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'sv', {
+ toolbar: 'Skriv ut'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/th.js b/devel/third-party/ckeditor/plugins/print/lang/th.js
new file mode 100644
index 0000000..b1fda0e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'th', {
+ toolbar: 'สัà¹à¸à¸à¸´à¸¡à¸à¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/tr.js b/devel/third-party/ckeditor/plugins/print/lang/tr.js
new file mode 100644
index 0000000..f0ab269
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'tr', {
+ toolbar: 'Yazdır'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/ug.js b/devel/third-party/ckeditor/plugins/print/lang/ug.js
new file mode 100644
index 0000000..596e454
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'ug', {
+ toolbar: 'باس '
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/uk.js b/devel/third-party/ckeditor/plugins/print/lang/uk.js
new file mode 100644
index 0000000..087188e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'uk', {
+ toolbar: 'ÐÑÑк'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/vi.js b/devel/third-party/ckeditor/plugins/print/lang/vi.js
new file mode 100644
index 0000000..3bc71f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'vi', {
+ toolbar: 'In'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/print/lang/zh-cn.js
new file mode 100644
index 0000000..ffd8ca8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'zh-cn', {
+ toolbar: 'æå°'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/lang/zh.js b/devel/third-party/ckeditor/plugins/print/lang/zh.js
new file mode 100644
index 0000000..cb85d99
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/print/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'print', 'zh', {
+ toolbar: 'åå°'
+});
diff --git a/devel/third-party/ckeditor/plugins/print/plugin.js b/devel/third-party/ckeditor/plugins/print/plugin.js
index 8145093..8a18cd8 100644
--- a/devel/third-party/ckeditor/plugins/print/plugin.js
+++ b/devel/third-party/ckeditor/plugins/print/plugin.js
@@ -1,34 +1,36 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Print Plugin
+ * @fileOverview Print Plugin
*/
-CKEDITOR.plugins.add( 'print',
-{
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'print', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'print,', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ // Print plugin isn't available in inline mode yet.
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
+ return;
+
var pluginName = 'print';
// Register the command.
var command = editor.addCommand( pluginName, CKEDITOR.plugins.print );
// Register the toolbar button.
- editor.ui.addButton( 'Print',
- {
- label : editor.lang.print,
- command : pluginName
- });
+ editor.ui.addButton && editor.ui.addButton( 'Print', {
+ label: editor.lang.print.toolbar,
+ command: pluginName,
+ toolbar: 'document,50'
+ });
}
-} );
+});
-CKEDITOR.plugins.print =
-{
- exec : function( editor )
- {
+CKEDITOR.plugins.print = {
+ exec: function( editor ) {
if ( CKEDITOR.env.opera )
return;
else if ( CKEDITOR.env.gecko )
@@ -36,6 +38,7 @@ CKEDITOR.plugins.print =
else
editor.document.$.execCommand( "Print" );
},
- canUndo : false,
- modes : { wysiwyg : !( CKEDITOR.env.opera ) } // It is imposible to print the inner document in Opera.
+ canUndo: false,
+ readOnly: 1,
+ modes: { wysiwyg: !( CKEDITOR.env.opera ) } // It is imposible to print the inner document in Opera.
};
diff --git a/devel/third-party/ckeditor/plugins/removeformat/icons/removeformat.png b/devel/third-party/ckeditor/plugins/removeformat/icons/removeformat.png
new file mode 100644
index 0000000..c313632
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/removeformat/icons/removeformat.png differ
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/af.js b/devel/third-party/ckeditor/plugins/removeformat/lang/af.js
new file mode 100644
index 0000000..021b188
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'af', {
+ toolbar: 'Verwyder opmaak'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ar.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ar.js
new file mode 100644
index 0000000..0be4e23
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ar', {
+ toolbar: 'Ø¥Ø²Ø§ÙØ© Ø§ÙØªÙسÙÙØ§Øª'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/bg.js b/devel/third-party/ckeditor/plugins/removeformat/lang/bg.js
new file mode 100644
index 0000000..18e3443
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'bg', {
+ toolbar: 'ÐÑемаÑ
ване на ÑоÑмаÑиÑанеÑо'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/bn.js b/devel/third-party/ckeditor/plugins/removeformat/lang/bn.js
new file mode 100644
index 0000000..f1b23d2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'bn', {
+ toolbar: 'ফরমà§à¦ সরাà¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/bs.js b/devel/third-party/ckeditor/plugins/removeformat/lang/bs.js
new file mode 100644
index 0000000..3314a71
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'bs', {
+ toolbar: 'Poništi format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ca.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ca.js
new file mode 100644
index 0000000..7b0742e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ca', {
+ toolbar: 'Elimina Format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/cs.js b/devel/third-party/ckeditor/plugins/removeformat/lang/cs.js
new file mode 100644
index 0000000..7b03bd8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'cs', {
+ toolbar: 'Odstranit formátovánÃ'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/cy.js b/devel/third-party/ckeditor/plugins/removeformat/lang/cy.js
new file mode 100644
index 0000000..3fd5e1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'cy', {
+ toolbar: 'Tynnu Fformat'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/da.js b/devel/third-party/ckeditor/plugins/removeformat/lang/da.js
new file mode 100644
index 0000000..95baacf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'da', {
+ toolbar: 'Fjern formatering'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/de.js b/devel/third-party/ckeditor/plugins/removeformat/lang/de.js
new file mode 100644
index 0000000..01595d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'de', {
+ toolbar: 'Formatierungen entfernen'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/el.js b/devel/third-party/ckeditor/plugins/removeformat/lang/el.js
new file mode 100644
index 0000000..765c828
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'el', {
+ toolbar: 'ÎÏαίÏεÏη ÎοÏÏοÏοίηÏηÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/en-au.js b/devel/third-party/ckeditor/plugins/removeformat/lang/en-au.js
new file mode 100644
index 0000000..2eb37ac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'en-au', {
+ toolbar: 'Remove Format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/en-ca.js b/devel/third-party/ckeditor/plugins/removeformat/lang/en-ca.js
new file mode 100644
index 0000000..183ff18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'en-ca', {
+ toolbar: 'Remove Format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/en-gb.js b/devel/third-party/ckeditor/plugins/removeformat/lang/en-gb.js
new file mode 100644
index 0000000..3648e9e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'en-gb', {
+ toolbar: 'Remove Format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/en.js b/devel/third-party/ckeditor/plugins/removeformat/lang/en.js
new file mode 100644
index 0000000..c94ef08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'en', {
+ toolbar: 'Remove Format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/eo.js b/devel/third-party/ckeditor/plugins/removeformat/lang/eo.js
new file mode 100644
index 0000000..57c9f6e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'eo', {
+ toolbar: 'Forigi Formaton'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/es.js b/devel/third-party/ckeditor/plugins/removeformat/lang/es.js
new file mode 100644
index 0000000..90323f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'es', {
+ toolbar: 'Eliminar Formato'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/et.js b/devel/third-party/ckeditor/plugins/removeformat/lang/et.js
new file mode 100644
index 0000000..9c0394f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'et', {
+ toolbar: 'Vormingu eemaldamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/eu.js b/devel/third-party/ckeditor/plugins/removeformat/lang/eu.js
new file mode 100644
index 0000000..80c3ae5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'eu', {
+ toolbar: 'Kendu Formatua'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/fa.js b/devel/third-party/ckeditor/plugins/removeformat/lang/fa.js
new file mode 100644
index 0000000..159577f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'fa', {
+ toolbar: 'Ø¨Ø±Ø¯Ø§Ø´ØªÙ ÙØ±Ù
ت'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/fi.js b/devel/third-party/ckeditor/plugins/removeformat/lang/fi.js
new file mode 100644
index 0000000..ac5660e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'fi', {
+ toolbar: 'Poista muotoilu'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/fo.js b/devel/third-party/ckeditor/plugins/removeformat/lang/fo.js
new file mode 100644
index 0000000..0a55b70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'fo', {
+ toolbar: 'Strika sniðgeving'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/removeformat/lang/fr-ca.js
new file mode 100644
index 0000000..2addbec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'fr-ca', {
+ toolbar: 'Supprimer le formatage'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/fr.js b/devel/third-party/ckeditor/plugins/removeformat/lang/fr.js
new file mode 100644
index 0000000..c192eb5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'fr', {
+ toolbar: 'Supprimer la mise en forme'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/gl.js b/devel/third-party/ckeditor/plugins/removeformat/lang/gl.js
new file mode 100644
index 0000000..94a5a9d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'gl', {
+ toolbar: 'Eliminar Formato'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/gu.js b/devel/third-party/ckeditor/plugins/removeformat/lang/gu.js
new file mode 100644
index 0000000..49a972e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'gu', {
+ toolbar: 'ફà«àª°à«àª®àª àªàª¾àª¢àªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/he.js b/devel/third-party/ckeditor/plugins/removeformat/lang/he.js
new file mode 100644
index 0000000..5001e20
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'he', {
+ toolbar: '×סרת ××¢×צ××'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/hi.js b/devel/third-party/ckeditor/plugins/removeformat/lang/hi.js
new file mode 100644
index 0000000..f373a27
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'hi', {
+ toolbar: 'à¥à¥à¤°à¥à¤®à¥à¤ हà¤à¤¾à¤¯à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/hr.js b/devel/third-party/ckeditor/plugins/removeformat/lang/hr.js
new file mode 100644
index 0000000..5f50528
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'hr', {
+ toolbar: 'Ukloni formatiranje'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/hu.js b/devel/third-party/ckeditor/plugins/removeformat/lang/hu.js
new file mode 100644
index 0000000..c498654
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'hu', {
+ toolbar: 'Formázás eltávolÃtása'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/is.js b/devel/third-party/ckeditor/plugins/removeformat/lang/is.js
new file mode 100644
index 0000000..c37f5ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'is', {
+ toolbar: 'Fjarlægja snið'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/it.js b/devel/third-party/ckeditor/plugins/removeformat/lang/it.js
new file mode 100644
index 0000000..803b5b5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'it', {
+ toolbar: 'Elimina formattazione'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ja.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ja.js
new file mode 100644
index 0000000..e813840
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ja', {
+ toolbar: 'ãã©ã¼ãããåé¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ka.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ka.js
new file mode 100644
index 0000000..81beef1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ka', {
+ toolbar: 'á¤áá ááá¢áá áááá¡ ááá®á¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/km.js b/devel/third-party/ckeditor/plugins/removeformat/lang/km.js
new file mode 100644
index 0000000..d15f2b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'km', {
+ toolbar: 'áááá
áá áá¶ááá
áá¶'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ko.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ko.js
new file mode 100644
index 0000000..5620d32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ko', {
+ toolbar: 'í¬ë§· ì§ì°ê¸°'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ku.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ku.js
new file mode 100644
index 0000000..531cde9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ku', {
+ toolbar: 'ÙØ§Ø¨Ø±Ø¯ÙÛ Ø¯Ø§ÚØ´ØªÛÚ©Û'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/lt.js b/devel/third-party/ckeditor/plugins/removeformat/lang/lt.js
new file mode 100644
index 0000000..d74da42
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'lt', {
+ toolbar: 'Panaikinti formatÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/lv.js b/devel/third-party/ckeditor/plugins/removeformat/lang/lv.js
new file mode 100644
index 0000000..2d2aa56
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'lv', {
+ toolbar: 'NoÅemt stilus'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/mk.js b/devel/third-party/ckeditor/plugins/removeformat/lang/mk.js
new file mode 100644
index 0000000..7d261a5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'mk', {
+ toolbar: 'Remove Format' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/mn.js b/devel/third-party/ckeditor/plugins/removeformat/lang/mn.js
new file mode 100644
index 0000000..d3faebc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'mn', {
+ toolbar: 'ÐаÑаÑгаÑÑн загваÑÑг Ð°Ð²Ñ Ñ
аÑÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ms.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ms.js
new file mode 100644
index 0000000..ba0aac2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ms', {
+ toolbar: 'Buang Format'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/nb.js b/devel/third-party/ckeditor/plugins/removeformat/lang/nb.js
new file mode 100644
index 0000000..652cf45
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'nb', {
+ toolbar: 'Fjern formatering'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/nl.js b/devel/third-party/ckeditor/plugins/removeformat/lang/nl.js
new file mode 100644
index 0000000..93bd72b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'nl', {
+ toolbar: 'Opmaak verwijderen'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/no.js b/devel/third-party/ckeditor/plugins/removeformat/lang/no.js
new file mode 100644
index 0000000..ef6cfbf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'no', {
+ toolbar: 'Fjern formatering'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/pl.js b/devel/third-party/ckeditor/plugins/removeformat/lang/pl.js
new file mode 100644
index 0000000..0133272
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'pl', {
+ toolbar: 'UsuÅ formatowanie'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/pt-br.js b/devel/third-party/ckeditor/plugins/removeformat/lang/pt-br.js
new file mode 100644
index 0000000..9698019
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'pt-br', {
+ toolbar: 'Remover Formatação'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/pt.js b/devel/third-party/ckeditor/plugins/removeformat/lang/pt.js
new file mode 100644
index 0000000..7f21a0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'pt', {
+ toolbar: 'Eliminar Formato'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ro.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ro.js
new file mode 100644
index 0000000..e225c65
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ro', {
+ toolbar: 'ÃnlÄturÄ formatarea'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ru.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ru.js
new file mode 100644
index 0000000..e695e3b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ru', {
+ toolbar: 'УбÑаÑÑ ÑоÑмаÑиÑование'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/sk.js b/devel/third-party/ckeditor/plugins/removeformat/lang/sk.js
new file mode 100644
index 0000000..80baef0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'sk', {
+ toolbar: 'Odstrániť formátovanie'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/sl.js b/devel/third-party/ckeditor/plugins/removeformat/lang/sl.js
new file mode 100644
index 0000000..b55ebc8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'sl', {
+ toolbar: 'Odstrani oblikovanje'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/removeformat/lang/sr-latn.js
new file mode 100644
index 0000000..fc20f76
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'sr-latn', {
+ toolbar: 'Ukloni formatiranje'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/sr.js b/devel/third-party/ckeditor/plugins/removeformat/lang/sr.js
new file mode 100644
index 0000000..50aca5e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'sr', {
+ toolbar: 'Уклони ÑоÑмаÑиÑаÑе'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/sv.js b/devel/third-party/ckeditor/plugins/removeformat/lang/sv.js
new file mode 100644
index 0000000..858b37a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'sv', {
+ toolbar: 'Radera formatering'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/th.js b/devel/third-party/ckeditor/plugins/removeformat/lang/th.js
new file mode 100644
index 0000000..66a8912
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'th', {
+ toolbar: 'ลà¹à¸²à¸à¸£à¸¹à¸à¹à¸à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/tr.js b/devel/third-party/ckeditor/plugins/removeformat/lang/tr.js
new file mode 100644
index 0000000..f293f4e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'tr', {
+ toolbar: 'Biçimi Kaldır'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/ug.js b/devel/third-party/ckeditor/plugins/removeformat/lang/ug.js
new file mode 100644
index 0000000..d954cdb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'ug', {
+ toolbar: 'Ù¾ÙÚÙÙ
ÙÙ ÚÙÙÙØ±ÙÛÛØª'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/uk.js b/devel/third-party/ckeditor/plugins/removeformat/lang/uk.js
new file mode 100644
index 0000000..ec60212
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'uk', {
+ toolbar: 'ÐÑиÑÑиÑи ÑоÑмаÑÑваннÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/vi.js b/devel/third-party/ckeditor/plugins/removeformat/lang/vi.js
new file mode 100644
index 0000000..003f794
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'vi', {
+ toolbar: 'Xoá Äá»nh dạng'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/removeformat/lang/zh-cn.js
new file mode 100644
index 0000000..ee8ae9e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'zh-cn', {
+ toolbar: 'æ¸
餿 ¼å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/lang/zh.js b/devel/third-party/ckeditor/plugins/removeformat/lang/zh.js
new file mode 100644
index 0000000..19af357
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/removeformat/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'removeformat', 'zh', {
+ toolbar: 'æ¸
餿 ¼å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/removeformat/plugin.js b/devel/third-party/ckeditor/plugins/removeformat/plugin.js
index 28b4ea7..96648eb 100644
--- a/devel/third-party/ckeditor/plugins/removeformat/plugin.js
+++ b/devel/third-party/ckeditor/plugins/removeformat/plugin.js
@@ -1,57 +1,44 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'removeformat',
-{
- requires : [ 'selection' ],
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'removeformat', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'removeformat', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
editor.addCommand( 'removeFormat', CKEDITOR.plugins.removeformat.commands.removeformat );
- editor.ui.addButton( 'RemoveFormat',
- {
- label : editor.lang.removeFormat,
- command : 'removeFormat'
- });
-
- editor._.removeFormat = { filters: [] };
+ editor.ui.addButton && editor.ui.addButton( 'RemoveFormat', {
+ label: editor.lang.removeformat.toolbar,
+ command: 'removeFormat',
+ toolbar: 'cleanup,10'
+ });
}
});
-CKEDITOR.plugins.removeformat =
-{
- commands :
- {
- removeformat :
- {
- exec : function( editor )
- {
- var tagsRegex = editor._.removeFormatRegex ||
- ( editor._.removeFormatRegex = new RegExp( '^(?:' + editor.config.removeFormatTags.replace( /,/g,'|' ) + ')$', 'i' ) );
+CKEDITOR.plugins.removeformat = {
+ commands: {
+ removeformat: {
+ exec: function( editor ) {
+ var tagsRegex = editor._.removeFormatRegex || ( editor._.removeFormatRegex = new RegExp( '^(?:' + editor.config.removeFormatTags.replace( /,/g, '|' ) + ')$', 'i' ) );
- var removeAttributes = editor._.removeAttributes ||
- ( editor._.removeAttributes = editor.config.removeFormatAttributes.split( ',' ) );
+ var removeAttributes = editor._.removeAttributes || ( editor._.removeAttributes = editor.config.removeFormatAttributes.split( ',' ) );
var filter = CKEDITOR.plugins.removeformat.filter;
- var ranges = editor.getSelection().getRanges( true ),
+ var ranges = editor.getSelection().getRanges( 1 ),
iterator = ranges.createIterator(),
range;
- while ( ( range = iterator.getNextRange() ) )
- {
- if ( range.collapsed )
- continue;
-
- range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+ while ( ( range = iterator.getNextRange() ) ) {
+ if ( !range.collapsed )
+ range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
// Bookmark the range so we can re-select it after processing.
- var bookmark = range.createBookmark();
-
- // The style will be applied within the bookmark boundaries.
- var startNode = bookmark.startNode;
- var endNode = bookmark.endNode;
+ var bookmark = range.createBookmark(),
+ // The style will be applied within the bookmark boundaries.
+ startNode = bookmark.startNode,
+ endNode = bookmark.endNode,
+ currentNode;
// We need to check the selection boundaries (bookmark spans) to break
// the code in a way that we can properly remove partially selected nodes.
@@ -63,75 +50,70 @@ CKEDITOR.plugins.removeformat =
// removal logic, having something that could be represented this way:
// <b>This is </b>[<b>some text</b> to show <b>the</b>]<b> problem</b>
- var breakParent = function( node )
- {
- // Let's start checking the start boundary.
- var path = new CKEDITOR.dom.elementPath( node );
- var pathElements = path.elements;
+ var breakParent = function( node ) {
+ // Let's start checking the start boundary.
+ var path = editor.elementPath( node ),
+ pathElements = path.elements;
- for ( var i = 1, pathElement ; pathElement = pathElements[ i ] ; i++ )
- {
- if ( pathElement.equals( path.block ) || pathElement.equals( path.blockLimit ) )
- break;
+ for ( var i = 1, pathElement; pathElement = pathElements[ i ]; i++ ) {
+ if ( pathElement.equals( path.block ) || pathElement.equals( path.blockLimit ) )
+ break;
- // If this element can be removed (even partially).
- if ( tagsRegex.test( pathElement.getName() ) && filter( editor, pathElement ) )
- node.breakParent( pathElement );
- }
- };
+ // If this element can be removed (even partially).
+ if ( tagsRegex.test( pathElement.getName() ) && filter( editor, pathElement ) )
+ node.breakParent( pathElement );
+ }
+ };
breakParent( startNode );
- breakParent( endNode );
-
- // Navigate through all nodes between the bookmarks.
- var currentNode = startNode.getNextSourceNode( true, CKEDITOR.NODE_ELEMENT );
-
- while ( currentNode )
- {
- // If we have reached the end of the selection, stop looping.
- if ( currentNode.equals( endNode ) )
- break;
-
- // Cache the next node to be processed. Do it now, because
- // currentNode may be removed.
- var nextNode = currentNode.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT );
-
- // This node must not be a fake element.
- if ( !( currentNode.getName() == 'img'
- && currentNode.getAttribute( '_cke_realelement' ) )
- && filter( editor, currentNode ) )
- {
- // Remove elements nodes that match with this style rules.
- if ( tagsRegex.test( currentNode.getName() ) )
- currentNode.remove( true );
- else
- {
- currentNode.removeAttributes( removeAttributes );
- editor.fire( 'removeFormatCleanup', currentNode );
+ if ( endNode ) {
+ breakParent( endNode );
+
+ // Navigate through all nodes between the bookmarks.
+ currentNode = startNode.getNextSourceNode( true, CKEDITOR.NODE_ELEMENT );
+
+ while ( currentNode ) {
+ // If we have reached the end of the selection, stop looping.
+ if ( currentNode.equals( endNode ) )
+ break;
+
+ // Cache the next node to be processed. Do it now, because
+ // currentNode may be removed.
+ var nextNode = currentNode.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT );
+
+ // This node must not be a fake element.
+ if ( !( currentNode.getName() == 'img' && currentNode.data( 'cke-realelement' ) ) && filter( editor, currentNode ) ) {
+ // Remove elements nodes that match with this style rules.
+ if ( tagsRegex.test( currentNode.getName() ) )
+ currentNode.remove( 1 );
+ else {
+ currentNode.removeAttributes( removeAttributes );
+ editor.fire( 'removeFormatCleanup', currentNode );
+ }
}
- }
- currentNode = nextNode;
+ currentNode = nextNode;
+ }
}
range.moveToBookmark( bookmark );
}
+ // The selection path may not changed, but we should force a selection
+ // change event to refresh command states, due to the above attribution change. (#9238)
+ editor.forceNextSelectionCheck();
editor.getSelection().selectRanges( ranges );
}
}
},
- /**
- * Perform the remove format filters on the passed element.
- * @param {CKEDITOR.editor} editor
- * @param {CKEDITOR.dom.element} element
- */
- filter : function ( editor, element )
- {
- var filters = editor._.removeFormat.filters;
- for ( var i = 0; i < filters.length; i++ )
- {
+ // Perform the remove format filters on the passed element.
+ // @param {CKEDITOR.editor} editor
+ // @param {CKEDITOR.dom.element} element
+ filter: function( editor, element ) {
+ // If editor#addRemoveFotmatFilter hasn't been executed yet value is not initialized.
+ var filters = editor._.removeFormatFilters || [];
+ for ( var i = 0; i < filters.length; i++ ) {
if ( filters[ i ]( element ) === false )
return false;
}
@@ -142,43 +124,50 @@ CKEDITOR.plugins.removeformat =
/**
* Add to a collection of functions to decide whether a specific
* element should be considered as formatting element and thus
- * could be removed during <b>removeFormat</b> command,
- * Note: Only available with the existence of 'removeformat' plugin.
+ * could be removed during `removeFormat` command.
+ *
+ * **Note:** Only available with the existence of `removeformat` plugin.
+ *
+ * // Don't remove empty span.
+ * editor.addRemoveFormatFilter( function( element ) {
+ * return !( element.is( 'span' ) && CKEDITOR.tools.isEmpty( element.getAttributes() ) );
+ * } );
+ *
* @since 3.3
+ * @member CKEDITOR.editor
* @param {Function} func The function to be called, which will be passed a {CKEDITOR.dom.element} element to test.
- * @example
- * // Don't remove empty span
- * editor.addRemoveFormatFilter.push( function( element )
- * {
- * return !( element.is( 'span' ) && CKEDITOR.tools.isEmpty( element.getAttributes() ) );
- * });
*/
-CKEDITOR.editor.prototype.addRemoveFormatFilter = function( func )
-{
- this._.removeFormat.filters.push( func );
+CKEDITOR.editor.prototype.addRemoveFormatFilter = function( func ) {
+ if ( !this._.removeFormatFilters )
+ this._.removeFormatFilters = [];
+
+ this._.removeFormatFilters.push( func );
};
/**
- * A comma separated list of elements to be removed when executing the "remove
- " format" command. Note that only inline elements are allowed.
- * @type String
- * @default 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var'
- * @example
+ * A comma separated list of elements to be removed when executing the `remove
+ * format` command. Note that only inline elements are allowed.
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.removeFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var';
/**
* A comma separated list of elements attributes to be removed when executing
- * the "remove format" command.
- * @type String
- * @default 'class,style,lang,width,height,align,hspace,valign'
- * @example
+ * the `remove format` command.
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.removeFormatAttributes = 'class,style,lang,width,height,align,hspace,valign';
/**
* Fired after an element was cleaned by the removeFormat plugin.
- * @name CKEDITOR#removeFormatCleanup
- * @event
- * @param {Object} data.element The element that was cleaned up.
+ *
+ * @event removeFormatCleanup
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param data
+ * @param {CKEDITOR.dom.element} data.element The element that was cleaned up.
*/
diff --git a/devel/third-party/ckeditor/plugins/resize/plugin.js b/devel/third-party/ckeditor/plugins/resize/plugin.js
index 6f31bd3..b6f2815 100644
--- a/devel/third-party/ckeditor/plugins/resize/plugin.js
+++ b/devel/third-party/ckeditor/plugins/resize/plugin.js
@@ -1,157 +1,169 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'resize',
-{
- init : function( editor )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'resize', {
+ init: function( editor ) {
var config = editor.config;
+ var spaceId = editor.ui.spaceId( 'resizer' );
+
+ // Resize in the same direction of chrome,
+ // which is identical to dir of editor element. (#6614)
+ var resizeDir = editor.element ? editor.element.getDirection( 1 ) : 'ltr';
- !config.resize_dir && ( config.resize_dir = 'both' );
+ !config.resize_dir && ( config.resize_dir = 'vertical' );
( config.resize_maxWidth == undefined ) && ( config.resize_maxWidth = 3000 );
( config.resize_maxHeight == undefined ) && ( config.resize_maxHeight = 3000 );
( config.resize_minWidth == undefined ) && ( config.resize_minWidth = 750 );
( config.resize_minHeight == undefined ) && ( config.resize_minHeight = 250 );
- if ( config.resize_enabled !== false )
- {
+ if ( config.resize_enabled !== false ) {
var container = null,
- origin,
- startSize,
- resizeHorizontal = ( config.resize_dir == 'both' || config.resize_dir == 'horizontal' ) &&
- ( config.resize_minWidth != config.resize_maxWidth ),
- resizeVertical = ( config.resize_dir == 'both' || config.resize_dir == 'vertical' ) &&
- ( config.resize_minHeight != config.resize_maxHeight );
-
- function dragHandler( evt )
- {
+ origin, startSize,
+ resizeHorizontal = ( config.resize_dir == 'both' || config.resize_dir == 'horizontal' ) && ( config.resize_minWidth != config.resize_maxWidth ),
+ resizeVertical = ( config.resize_dir == 'both' || config.resize_dir == 'vertical' ) && ( config.resize_minHeight != config.resize_maxHeight );
+
+ function dragHandler( evt ) {
var dx = evt.data.$.screenX - origin.x,
dy = evt.data.$.screenY - origin.y,
width = startSize.width,
height = startSize.height,
- internalWidth = width + dx * ( editor.lang.dir == 'rtl' ? -1 : 1 ),
+ internalWidth = width + dx * ( resizeDir == 'rtl' ? -1 : 1 ),
internalHeight = height + dy;
if ( resizeHorizontal )
- width = Math.max( config.resize_minWidth, Math.min( internalWidth, config.resize_maxWidth ) );
+ width = Math.max( config.resize_minWidth, Math.min( internalWidth, config.resize_maxWidth ) );
if ( resizeVertical )
- height = Math.max( config.resize_minHeight, Math.min( internalHeight, config.resize_maxHeight ) );
+ height = Math.max( config.resize_minHeight, Math.min( internalHeight, config.resize_maxHeight ) );
- editor.resize( width, height );
+ // DO NOT impose fixed size with single direction resize. (#6308)
+ editor.resize( resizeHorizontal ? width : null, height );
}
- function dragEndHandler ( evt )
- {
+ function dragEndHandler( evt ) {
CKEDITOR.document.removeListener( 'mousemove', dragHandler );
CKEDITOR.document.removeListener( 'mouseup', dragEndHandler );
- if ( editor.document )
- {
+ if ( editor.document ) {
editor.document.removeListener( 'mousemove', dragHandler );
editor.document.removeListener( 'mouseup', dragEndHandler );
}
}
- var mouseDownFn = CKEDITOR.tools.addFunction( function( $event )
- {
- if ( !container )
- container = editor.getResizable();
-
- startSize = { width : container.$.offsetWidth || 0, height : container.$.offsetHeight || 0 };
- origin = { x : $event.screenX, y : $event.screenY };
-
- config.resize_minWidth > startSize.width && ( config.resize_minWidth = startSize.width );
- config.resize_minHeight > startSize.height && ( config.resize_minHeight = startSize.height );
-
- CKEDITOR.document.on( 'mousemove', dragHandler );
- CKEDITOR.document.on( 'mouseup', dragEndHandler );
-
- if ( editor.document )
- {
- editor.document.on( 'mousemove', dragHandler );
- editor.document.on( 'mouseup', dragEndHandler );
- }
- });
-
- editor.on( 'destroy', function() { CKEDITOR.tools.removeFunction( mouseDownFn ); } );
-
- editor.on( 'themeSpace', function( event )
- {
- if ( event.data.space == 'bottom' )
- {
- var direction = '';
- if ( resizeHorizontal && !resizeVertical)
- direction = ' cke_resizer_horizontal';
- if ( !resizeHorizontal && resizeVertical)
- direction = ' cke_resizer_vertical';
-
- event.data.html += '<div class="cke_resizer' + direction + '"' +
- ' title="' + CKEDITOR.tools.htmlEncode( editor.lang.resize ) + '"' +
- ' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event)"' +
- '></div>';
- }
- }, editor, null, 100 );
+ var mouseDownFn = CKEDITOR.tools.addFunction( function( $event ) {
+ if ( !container )
+ container = editor.getResizable();
+
+ startSize = { width: container.$.offsetWidth || 0, height: container.$.offsetHeight || 0 };
+ origin = { x: $event.screenX, y: $event.screenY };
+
+ config.resize_minWidth > startSize.width && ( config.resize_minWidth = startSize.width );
+ config.resize_minHeight > startSize.height && ( config.resize_minHeight = startSize.height );
+
+ CKEDITOR.document.on( 'mousemove', dragHandler );
+ CKEDITOR.document.on( 'mouseup', dragEndHandler );
+
+ if ( editor.document ) {
+ editor.document.on( 'mousemove', dragHandler );
+ editor.document.on( 'mouseup', dragEndHandler );
+ }
+
+ $event.preventDefault && $event.preventDefault();
+ });
+
+ editor.on( 'destroy', function() {
+ CKEDITOR.tools.removeFunction( mouseDownFn );
+ });
+
+ editor.on( 'uiSpace', function( event ) {
+ if ( event.data.space == 'bottom' ) {
+ var direction = '';
+ if ( resizeHorizontal && !resizeVertical )
+ direction = ' cke_resizer_horizontal';
+ if ( !resizeHorizontal && resizeVertical )
+ direction = ' cke_resizer_vertical';
+
+ var resizerHtml =
+ '<span' +
+ ' id="' + spaceId + '"' +
+ ' class="cke_resizer' + direction + ' cke_resizer_' + resizeDir + '"' +
+ ' title="' + CKEDITOR.tools.htmlEncode( editor.lang.common.resize ) + '"' +
+ ' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event)"' +
+ '>' +
+ // BLACK LOWER RIGHT TRIANGLE (ltr)
+ // BLACK LOWER LEFT TRIANGLE (rtl)
+ ( resizeDir == 'ltr' ? '\u25E2' : '\u25E3' ) +
+ '</span>';
+
+ // Always sticks the corner of botttom space.
+ resizeDir == 'ltr' && direction == 'ltr' ? event.data.html += resizerHtml : event.data.html = resizerHtml + event.data.html;
+ }
+ }, editor, null, 100 );
+
+ // Toggle the visibility of the resizer when an editor is being maximized or minimized.
+ editor.on( 'maximize', function( event ) {
+ editor.ui.space( 'resizer' )[ event.data == CKEDITOR.TRISTATE_ON ? 'hide' : 'show' ]();
+ });
}
}
-} );
+});
/**
- * The minimum editor width, in pixels, when resizing it with the resize handle.
- * Note: It fallbacks to editor's actual width if that's smaller than the default value.
- * @name CKEDITOR.config.resize_minWidth
- * @type Number
- * @default 750
- * @example
- * config.resize_minWidth = 500;
+ * The minimum editor width, in pixels, when resizing the editor interface by using the resize handle.
+ * Note: It falls back to editor's actual width if it is smaller than the default value.
+ *
+ * config.resize_minWidth = 500;
+ *
+ * @cfg {Number} [resize_minWidth=750]
+ * @member CKEDITOR.config
*/
/**
- * The minimum editor height, in pixels, when resizing it with the resize handle.
- * Note: It fallbacks to editor's actual height if that's smaller than the default value.
- * @name CKEDITOR.config.resize_minHeight
- * @type Number
- * @default 250
- * @example
- * config.resize_minHeight = 600;
+ * The minimum editor height, in pixels, when resizing the editor interface by using the resize handle.
+ * Note: It falls back to editor's actual height if it is smaller than the default value.
+ *
+ * config.resize_minHeight = 600;
+ *
+ * @cfg {Number} [resize_minHeight=250]
+ * @member CKEDITOR.config
*/
/**
- * The maximum editor width, in pixels, when resizing it with the resize handle.
- * @name CKEDITOR.config.resize_maxWidth
- * @type Number
- * @default 3000
- * @example
- * config.resize_maxWidth = 750;
+ * The maximum editor width, in pixels, when resizing the editor interface by using the resize handle.
+ *
+ * config.resize_maxWidth = 750;
+ *
+ * @cfg {Number} [resize_maxWidth=3000]
+ * @member CKEDITOR.config
*/
/**
- * The maximum editor height, in pixels, when resizing it with the resize handle.
- * @name CKEDITOR.config.resize_maxHeight
- * @type Number
- * @default 3000
- * @example
- * config.resize_maxHeight = 600;
+ * The maximum editor height, in pixels, when resizing the editor interface by using the resize handle.
+ *
+ * config.resize_maxHeight = 600;
+ *
+ * @cfg {Number} [resize_maxHeight=3000]
+ * @member CKEDITOR.config
*/
/**
- * Whether to enable the resizing feature. If disabled the resize handler will not be visible.
- * @name CKEDITOR.config.resize_enabled
- * @type Boolean
- * @default true
- * @example
- * config.resize_enabled = false;
+ * Whether to enable the resizing feature. If this feature is disabled, the resize handle will not be visible.
+ *
+ * config.resize_enabled = false;
+ *
+ * @cfg {Boolean} [resize_enabled=true]
+ * @member CKEDITOR.config
*/
/**
- * The directions to which the editor resizing is enabled. Possible values
- * are "both", "vertical" and "horizontal".
- * @name CKEDITOR.config.resize_dir
- * @type String
- * @default 'both'
+ * The dimensions for which the editor resizing is enabled. Possible values
+ * are `both`, `vertical`, and `horizontal`.
+ *
+ * config.resize_dir = 'both';
+ *
* @since 3.3
- * @example
- * config.resize_dir = 'vertical';
+ * @cfg {String} [resize_dir='vertical']
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/richcombo/plugin.js b/devel/third-party/ckeditor/plugins/richcombo/plugin.js
index 710b946..86f6c8a 100644
--- a/devel/third-party/ckeditor/plugins/richcombo/plugin.js
+++ b/devel/third-party/ckeditor/plugins/richcombo/plugin.js
@@ -1,370 +1,414 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.plugins.add( 'richcombo',
-{
- requires : [ 'floatpanel', 'listblock', 'button' ],
+CKEDITOR.plugins.add( 'richcombo', {
+ requires: 'floatpanel,listblock,button',
- beforeInit : function( editor )
- {
+ beforeInit: function( editor ) {
editor.ui.addHandler( CKEDITOR.UI_RICHCOMBO, CKEDITOR.ui.richCombo.handler );
}
});
-/**
- * Button UI element.
- * @constant
- * @example
- */
-CKEDITOR.UI_RICHCOMBO = 3;
-
-CKEDITOR.ui.richCombo = CKEDITOR.tools.createClass(
-{
- $ : function( definition )
- {
- // Copy all definition properties to this object.
- CKEDITOR.tools.extend( this, definition,
+(function() {
+ var template = '<span id="{id}"' +
+ ' class="cke_combo cke_combo__{name} {cls}"' +
+ ' role="presentation">' +
+ '<span id="{id}_label" class="cke_combo_label">{label}</span>' +
+ '<a class="cke_combo_button" hidefocus=true title="{title}" tabindex="-1"' +
+ ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 && !CKEDITOR.env.hc ? '' : '" href="javascript:void(\'{titleJs}\')"' ) +
+ ' hidefocus="true"' +
+ ' role="button"' +
+ ' aria-labelledby="{id}_label"' +
+ ' aria-haspopup="true"';
+
+ // Some browsers don't cancel key events in the keydown but in the
+ // keypress.
+ // TODO: Check if really needed for Gecko+Mac.
+ if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
+ template += ' onkeypress="return false;"';
+
+ // With Firefox, we need to force the button to redraw, otherwise it
+ // will remain in the focus state.
+ if ( CKEDITOR.env.gecko )
+ template += ' onblur="this.style.cssText = this.style.cssText;"';
+
+ template +=
+ ' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);"' +
+ ' onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" ' +
+ ' onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" ' +
+ ( CKEDITOR.env.ie ? 'onclick="return false;" onmouseup' : 'onclick' ) + // #188
+ '="CKEDITOR.tools.callFunction({clickFn},this);return false;">' +
+ '<span id="{id}_text" class="cke_combo_text cke_combo_inlinelabel">{label}</span>' +
+ '<span class="cke_combo_open">' +
+ '<span class="cke_combo_arrow">' +
+ // BLACK DOWN-POINTING TRIANGLE
+ ( CKEDITOR.env.hc ? '▼' : CKEDITOR.env.air ? ' ' : '' ) +
+ '</span>' +
+ '</span>' +
+ '</a>' +
+ '</span>';
+
+ var rcomboTpl = CKEDITOR.addTemplate( 'combo', template );
+
+ /**
+ * Button UI element.
+ *
+ * @readonly
+ * @property {String} [='richcombo']
+ * @member CKEDITOR
+ */
+ CKEDITOR.UI_RICHCOMBO = 'richcombo';
+
+ /**
+ * @class
+ * @todo
+ */
+ CKEDITOR.ui.richCombo = CKEDITOR.tools.createClass({
+ $: function( definition ) {
+ // Copy all definition properties to this object.
+ CKEDITOR.tools.extend( this, definition,
// Set defaults.
{
- title : definition.label,
- modes : { wysiwyg : 1 }
+ // The combo won't participate in toolbar grouping.
+ canGroup: false,
+ title: definition.label,
+ modes: { wysiwyg:1 },
+ editorFocus: 1
});
- // We don't want the panel definition in this object.
- var panelDefinition = this.panel || {};
- delete this.panel;
-
- this.id = CKEDITOR.tools.getNextNumber();
-
- this.document = ( panelDefinition
- && panelDefinition.parent
- && panelDefinition.parent.getDocument() )
- || CKEDITOR.document;
-
- panelDefinition.className = ( panelDefinition.className || '' ) + ' cke_rcombopanel';
- panelDefinition.block =
- {
- multiSelect : panelDefinition.multiSelect,
- attributes : panelDefinition.attributes
- };
-
- this._ =
- {
- panelDefinition : panelDefinition,
- items : {},
- state : CKEDITOR.TRISTATE_OFF
- };
- },
-
- statics :
- {
- handler :
- {
- create : function( definition )
- {
- return new CKEDITOR.ui.richCombo( definition );
- }
- }
- },
-
- proto :
- {
- renderHtml : function( editor )
- {
- var output = [];
- this.render( editor, output );
- return output.join( '' );
- },
+ // We don't want the panel definition in this object.
+ var panelDefinition = this.panel || {};
+ delete this.panel;
- /**
- * Renders the combo.
- * @param {CKEDITOR.editor} editor The editor instance which this button is
- * to be used by.
- * @param {Array} output The output array to which append the HTML relative
- * to this button.
- * @example
- */
- render : function( editor, output )
- {
- var env = CKEDITOR.env;
+ this.id = CKEDITOR.tools.getNextNumber();
- var id = 'cke_' + this.id;
- var clickFn = CKEDITOR.tools.addFunction( function( $element )
- {
- var _ = this._;
+ this.document = ( panelDefinition.parent && panelDefinition.parent.getDocument() ) || CKEDITOR.document;
- if ( _.state == CKEDITOR.TRISTATE_DISABLED )
- return;
-
- this.createPanel( editor );
+ panelDefinition.className = 'cke_combopanel';
+ panelDefinition.block = {
+ multiSelect: panelDefinition.multiSelect,
+ attributes: panelDefinition.attributes
+ };
+ panelDefinition.toolbarRelated = true;
- if ( _.on )
- {
- _.panel.hide();
- return;
- }
+ this._ = {
+ panelDefinition: panelDefinition,
+ items: {}
+ };
+ },
- if ( !_.committed )
- {
- _.list.commit();
- _.committed = 1;
- }
+ proto: {
+ renderHtml: function( editor ) {
+ var output = [];
+ this.render( editor, output );
+ return output.join( '' );
+ },
+
+ /**
+ * Renders the combo.
+ * @param {CKEDITOR.editor} editor The editor instance which this button is
+ * to be used by.
+ * @param {Array} output The output array to which append the HTML relative
+ * to this button.
+ * @example
+ */
+ render: function( editor, output ) {
+ var env = CKEDITOR.env;
+
+ var id = 'cke_' + this.id;
+ var clickFn = CKEDITOR.tools.addFunction( function( el ) {
+
+ // Restore locked selection in Opera.
+ if ( selLocked ) {
+ editor.unlockSelection( 1 );
+ selLocked = 0;
+ }
+
+ instance.execute( el );
+ }, this );
+
+ var combo = this;
+ var instance = {
+ id: id,
+ combo: this,
+ focus: function() {
+ var element = CKEDITOR.document.getById( id ).getChild( 1 );
+ element.focus();
+ },
+ execute: function( el ) {
+ var _ = combo._;
+
+ if ( _.state == CKEDITOR.TRISTATE_DISABLED )
+ return;
+
+ combo.createPanel( editor );
+
+ if ( _.on ) {
+ _.panel.hide();
+ return;
+ }
+
+ combo.commit();
+ var value = combo.getValue();
+ if ( value )
+ _.list.mark( value );
+ else
+ _.list.unmarkAll();
+
+ _.panel.showBlock( combo.id, new CKEDITOR.dom.element( el ), 4 );
+ },
+ clickFn: clickFn
+ };
- var value = this.getValue();
- if ( value )
- _.list.mark( value );
- else
- _.list.unmarkAll();
-
- _.panel.showBlock( this.id, new CKEDITOR.dom.element( $element ), 4 );
- },
- this );
-
- var instance = {
- id : id,
- combo : this,
- focus : function()
- {
- var element = CKEDITOR.document.getById( id ).getChild( 1 );
- element.focus();
- },
- clickFn : clickFn
- };
+ function updateState() {
+ var state = this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;
+ this.setState( editor.readOnly && !this.readOnly ? CKEDITOR.TRISTATE_DISABLED : state );
+ this.setValue( '' );
+ }
- editor.on( 'mode', function()
- {
- this.setState( this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
- },
- this );
+ editor.on( 'mode', updateState, this );
+ // If this combo is sensitive to readOnly state, update it accordingly.
+ !this.readOnly && editor.on( 'readOnly', updateState, this );
- var keyDownFn = CKEDITOR.tools.addFunction( function( ev, element )
- {
+ var keyDownFn = CKEDITOR.tools.addFunction( function( ev, element ) {
ev = new CKEDITOR.dom.event( ev );
var keystroke = ev.getKeystroke();
- switch ( keystroke )
- {
- case 13 : // ENTER
- case 32 : // SPACE
- case 40 : // ARROW-DOWN
+ switch ( keystroke ) {
+ case 13: // ENTER
+ case 32: // SPACE
+ case 40: // ARROW-DOWN
// Show panel
CKEDITOR.tools.callFunction( clickFn, element );
break;
- default :
+ default:
// Delegate the default behavior to toolbar button key handling.
- instance.onkey( instance, keystroke );
+ instance.onkey( instance, keystroke );
}
// Avoid subsequent focus grab on editor document.
ev.preventDefault();
});
- // For clean up
- instance.keyDownFn = keyDownFn;
-
- output.push(
- '<span class="cke_rcombo">',
- '<span id=', id );
-
- if ( this.className )
- output.push( ' class="', this.className, ' cke_off"');
-
- output.push(
- '>',
- '<span id="' + id+ '_label" class=cke_label>', this.label, '</span>',
- '<a hidefocus=true title="', this.title, '" tabindex="-1"',
- env.gecko && env.version >= 10900 && !env.hc ? '' : ' href="javascript:void(\'' + this.label + '\')"',
- ' role="button" aria-labelledby="', id , '_label" aria-describedby="', id, '_text" aria-haspopup="true"' );
+ var focusFn = CKEDITOR.tools.addFunction( function() {
+ instance.onfocus && instance.onfocus();
+ });
- // Some browsers don't cancel key events in the keydown but in the
- // keypress.
- // TODO: Check if really needed for Gecko+Mac.
- if ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.mac ) )
- {
- output.push(
- ' onkeypress="return false;"' );
- }
+ var selLocked = 0;
+ var mouseDownFn = CKEDITOR.tools.addFunction( function() {
+ // Opera: lock to prevent loosing editable text selection when clicking on button.
+ if ( CKEDITOR.env.opera ) {
+ var edt = editor.editable();
+ if ( edt.isInline() && edt.hasFocus ) {
+ editor.lockSelection();
+ selLocked = 1;
+ }
+ }
+ });
- // With Firefox, we need to force it to redraw, otherwise it
- // will remain in the focus state.
- if ( CKEDITOR.env.gecko )
- {
- output.push(
- ' onblur="this.style.cssText = this.style.cssText;"' );
- }
+ // For clean up
+ instance.keyDownFn = keyDownFn;
+
+ var params = {
+ id: id,
+ name: this.name || this.command,
+ label: this.label,
+ title: this.title,
+ cls: this.className || '',
+ titleJs: env.gecko && env.version >= 10900 && !env.hc ? '' : ( this.title || '' ).replace( "'", '' ),
+ keydownFn: keyDownFn,
+ mousedownFn: mouseDownFn,
+ focusFn: focusFn,
+ clickFn: clickFn
+ };
- output.push(
- ' onkeydown="CKEDITOR.tools.callFunction( ', keyDownFn, ', event, this );"' +
- ' onclick="CKEDITOR.tools.callFunction(', clickFn, ', this); return false;">' +
- '<span>' +
- '<span id="' + id + '_text" class="cke_text cke_inline_label">' + this.label + '</span>' +
- '</span>' +
- '<span class=cke_openbutton>' + ( CKEDITOR.env.hc ? '<span>▼</span>' : '' ) + '</span>' + // BLACK DOWN-POINTING TRIANGLE
- '</a>' +
- '</span>' +
- '</span>' );
+ rcomboTpl.output( params, output );
- if ( this.onRender )
- this.onRender();
+ if ( this.onRender )
+ this.onRender();
- return instance;
- },
+ return instance;
+ },
- createPanel : function( editor )
- {
- if ( this._.panel )
- return;
+ createPanel: function( editor ) {
+ if ( this._.panel )
+ return;
- var panelDefinition = this._.panelDefinition,
- panelBlockDefinition = this._.panelDefinition.block,
- panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
- panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
- list = panel.addListBlock( this.id, panelBlockDefinition ),
- me = this;
+ var panelDefinition = this._.panelDefinition,
+ panelBlockDefinition = this._.panelDefinition.block,
+ panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),
+ namedPanelCls = 'cke_combopanel__' + this.name,
+ panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),
+ list = panel.addListBlock( this.id, panelBlockDefinition ),
+ me = this;
- panel.onShow = function()
- {
- if ( me.className )
- this.element.getFirst().addClass( me.className + '_panel' );
+ panel.onShow = function() {
+ this.element.addClass( namedPanelCls );
me.setState( CKEDITOR.TRISTATE_ON );
- list.focus( !me.multiSelect && me.getValue() );
+ list.focus( !list.multiSelect && me.getValue() );
me._.on = 1;
+ me.editorFocus && editor.focus();
+
if ( me.onOpen )
me.onOpen();
};
- panel.onHide = function()
- {
- if ( me.className )
- this.element.getFirst().removeClass( me.className + '_panel' );
+ panel.onHide = function( preventOnClose ) {
+ this.element.removeClass( namedPanelCls );
- me.setState( CKEDITOR.TRISTATE_OFF );
+ me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
me._.on = 0;
- if ( me.onClose )
+ if ( !preventOnClose && me.onClose )
me.onClose();
};
- panel.onEscape = function()
- {
- panel.hide();
- me.document.getById( 'cke_' + me.id ).getFirst().getNext().focus();
+ panel.onEscape = function() {
+ // Hide drop-down with focus returned.
+ panel.hide( 1 );
};
- list.onClick = function( value, marked )
- {
- // Move the focus to the main windows, otherwise it will stay
- // into the floating panel, even if invisible, and Safari and
- // Opera will go a bit crazy.
- me.document.getWindow().focus();
+ list.onClick = function( value, marked ) {
if ( me.onClick )
me.onClick.call( me, value, marked );
- if ( marked )
- me.setValue( value, me._.items[ value ] );
- else
- me.setValue( '' );
-
panel.hide();
};
- this._.panel = panel;
- this._.list = list;
+ this._.panel = panel;
+ this._.list = list;
- panel.getBlock( this.id ).onHide = function()
- {
+ panel.getBlock( this.id ).onHide = function() {
me._.on = 0;
me.setState( CKEDITOR.TRISTATE_OFF );
};
- if ( this.init )
- this.init();
- },
-
- setValue : function( value, text )
- {
- this._.value = value;
-
- var textElement = this.document.getById( 'cke_' + this.id + '_text' );
-
- if ( !( value || text ) )
- {
- text = this.label;
- textElement.addClass( 'cke_inline_label' );
+ if ( this.init )
+ this.init();
+ },
+
+ setValue: function( value, text ) {
+ this._.value = value;
+
+ var textElement = this.document.getById( 'cke_' + this.id + '_text' );
+ if ( textElement ) {
+ if ( !( value || text ) ) {
+ text = this.label;
+ textElement.addClass( 'cke_combo_inlinelabel' );
+ } else
+ textElement.removeClass( 'cke_combo_inlinelabel' );
+
+ textElement.setText( typeof text != 'undefined' ? text : value );
+ }
+ },
+
+ getValue: function() {
+ return this._.value || '';
+ },
+
+ unmarkAll: function() {
+ this._.list.unmarkAll();
+ },
+
+ mark: function( value ) {
+ this._.list.mark( value );
+ },
+
+ hideItem: function( value ) {
+ this._.list.hideItem( value );
+ },
+
+ hideGroup: function( groupTitle ) {
+ this._.list.hideGroup( groupTitle );
+ },
+
+ showAll: function() {
+ this._.list.showAll();
+ },
+
+ add: function( value, html, text ) {
+ this._.items[ value ] = text || value;
+ this._.list.add( value, html, text );
+ },
+
+ startGroup: function( title ) {
+ this._.list.startGroup( title );
+ },
+
+ commit: function() {
+ if ( !this._.committed ) {
+ this._.list.commit();
+ this._.committed = 1;
+ CKEDITOR.ui.fire( 'ready', this );
+ }
+ this._.committed = 1;
+ },
+
+ setState: function( state ) {
+ if ( this._.state == state )
+ return;
+
+ var el = this.document.getById( 'cke_' + this.id );
+ el.setState( state, 'cke_combo' );
+
+ state == CKEDITOR.TRISTATE_DISABLED ?
+ el.setAttribute( 'aria-disabled', true ) :
+ el.removeAttribute( 'aria-disabled' );
+
+ this._.state = state;
+ },
+
+ enable: function() {
+ if ( this._.state == CKEDITOR.TRISTATE_DISABLED )
+ this.setState( this._.lastState );
+ },
+
+ disable: function() {
+ if ( this._.state != CKEDITOR.TRISTATE_DISABLED ) {
+ this._.lastState = this._.state;
+ this.setState( CKEDITOR.TRISTATE_DISABLED );
+ }
}
- else
- textElement.removeClass( 'cke_inline_label' );
-
- textElement.setHtml( typeof text != 'undefined' ? text : value );
- },
-
- getValue : function()
- {
- return this._.value || '';
- },
-
- unmarkAll : function()
- {
- this._.list.unmarkAll();
- },
-
- mark : function( value )
- {
- this._.list.mark( value );
- },
-
- hideItem : function( value )
- {
- this._.list.hideItem( value );
- },
-
- hideGroup : function( groupTitle )
- {
- this._.list.hideGroup( groupTitle );
},
- showAll : function()
- {
- this._.list.showAll();
- },
-
- add : function( value, html, text )
- {
- this._.items[ value ] = text || value;
- this._.list.add( value, html, text );
- },
-
- startGroup : function( title )
- {
- this._.list.startGroup( title );
- },
-
- commit : function()
- {
- this._.list.commit();
- },
-
- setState : function( state )
- {
- if ( this._.state == state )
- return;
-
- this.document.getById( 'cke_' + this.id ).setState( state );
-
- this._.state = state;
+ /**
+ * Represents richCombo handler object.
+ *
+ * @class CKEDITOR.ui.richCombo.handler
+ * @singleton
+ * @extends CKEDITOR.ui.handlerDefinition
+ */
+ statics: {
+ handler: {
+ /**
+ * Transforms a richCombo definition in a {@link CKEDITOR.ui.richCombo} instance.
+ *
+ * @param {Object} definition
+ * @returns {CKEDITOR.ui.richCombo}
+ */
+ create: function( definition ) {
+ return new CKEDITOR.ui.richCombo( definition );
+ }
+ }
}
- }
-});
-
-CKEDITOR.ui.prototype.addRichCombo = function( name, definition )
-{
- this.add( name, CKEDITOR.UI_RICHCOMBO, definition );
-};
+ });
+
+ /**
+ * @member CKEDITOR.ui
+ * @param {String}
+ * @param {Object} definition
+ * @todo
+ */
+ CKEDITOR.ui.prototype.addRichCombo = function( name, definition ) {
+ this.add( name, CKEDITOR.UI_RICHCOMBO, definition );
+ };
+
+})();
diff --git a/devel/third-party/ckeditor/plugins/save/icons/save.png b/devel/third-party/ckeditor/plugins/save/icons/save.png
new file mode 100644
index 0000000..6cade5e
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/save/icons/save.png differ
diff --git a/devel/third-party/ckeditor/plugins/save/lang/af.js b/devel/third-party/ckeditor/plugins/save/lang/af.js
new file mode 100644
index 0000000..6b1b389
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'af', {
+ toolbar: 'Bewaar'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ar.js b/devel/third-party/ckeditor/plugins/save/lang/ar.js
new file mode 100644
index 0000000..f92f61e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ar', {
+ toolbar: 'ØÙظ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/bg.js b/devel/third-party/ckeditor/plugins/save/lang/bg.js
new file mode 100644
index 0000000..0f8417e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'bg', {
+ toolbar: 'ÐапиÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/bn.js b/devel/third-party/ckeditor/plugins/save/lang/bn.js
new file mode 100644
index 0000000..6e02070
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'bn', {
+ toolbar: 'সà¦à¦°à¦à§à¦·à¦¨ à¦à¦°'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/bs.js b/devel/third-party/ckeditor/plugins/save/lang/bs.js
new file mode 100644
index 0000000..3cf6f4d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'bs', {
+ toolbar: 'Snimi'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ca.js b/devel/third-party/ckeditor/plugins/save/lang/ca.js
new file mode 100644
index 0000000..1604120
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ca', {
+ toolbar: 'Desa'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/cs.js b/devel/third-party/ckeditor/plugins/save/lang/cs.js
new file mode 100644
index 0000000..02ae169
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'cs', {
+ toolbar: 'Uložit'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/cy.js b/devel/third-party/ckeditor/plugins/save/lang/cy.js
new file mode 100644
index 0000000..34f8418
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'cy', {
+ toolbar: 'Cadw'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/da.js b/devel/third-party/ckeditor/plugins/save/lang/da.js
new file mode 100644
index 0000000..8f143e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'da', {
+ toolbar: 'Gem'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/de.js b/devel/third-party/ckeditor/plugins/save/lang/de.js
new file mode 100644
index 0000000..50912b7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'de', {
+ toolbar: 'Speichern'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/el.js b/devel/third-party/ckeditor/plugins/save/lang/el.js
new file mode 100644
index 0000000..3f76757
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'el', {
+ toolbar: 'ÎÏοθήκεÏ
Ïη'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/en-au.js b/devel/third-party/ckeditor/plugins/save/lang/en-au.js
new file mode 100644
index 0000000..2fb9af4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'en-au', {
+ toolbar: 'Save'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/en-ca.js b/devel/third-party/ckeditor/plugins/save/lang/en-ca.js
new file mode 100644
index 0000000..adeeb6d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'en-ca', {
+ toolbar: 'Save'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/en-gb.js b/devel/third-party/ckeditor/plugins/save/lang/en-gb.js
new file mode 100644
index 0000000..465b4ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'en-gb', {
+ toolbar: 'Save'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/en.js b/devel/third-party/ckeditor/plugins/save/lang/en.js
new file mode 100644
index 0000000..cab97b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'en', {
+ toolbar: 'Save'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/eo.js b/devel/third-party/ckeditor/plugins/save/lang/eo.js
new file mode 100644
index 0000000..9bfed0c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'eo', {
+ toolbar: 'Konservi'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/es.js b/devel/third-party/ckeditor/plugins/save/lang/es.js
new file mode 100644
index 0000000..5a03a6d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'es', {
+ toolbar: 'Guardar'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/et.js b/devel/third-party/ckeditor/plugins/save/lang/et.js
new file mode 100644
index 0000000..ddfc57a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'et', {
+ toolbar: 'Salvestamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/eu.js b/devel/third-party/ckeditor/plugins/save/lang/eu.js
new file mode 100644
index 0000000..a86c8f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'eu', {
+ toolbar: 'Gorde'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/fa.js b/devel/third-party/ckeditor/plugins/save/lang/fa.js
new file mode 100644
index 0000000..b449712
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'fa', {
+ toolbar: 'Ø°Ø®ÛØ±Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/fi.js b/devel/third-party/ckeditor/plugins/save/lang/fi.js
new file mode 100644
index 0000000..e787a23
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'fi', {
+ toolbar: 'Tallenna'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/fo.js b/devel/third-party/ckeditor/plugins/save/lang/fo.js
new file mode 100644
index 0000000..7d12df4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'fo', {
+ toolbar: 'Goym'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/save/lang/fr-ca.js
new file mode 100644
index 0000000..c0ffc69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'fr-ca', {
+ toolbar: 'Sauvegarder'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/fr.js b/devel/third-party/ckeditor/plugins/save/lang/fr.js
new file mode 100644
index 0000000..f37e7ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'fr', {
+ toolbar: 'Enregistrer'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/gl.js b/devel/third-party/ckeditor/plugins/save/lang/gl.js
new file mode 100644
index 0000000..59dc911
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'gl', {
+ toolbar: 'Gardar'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/gu.js b/devel/third-party/ckeditor/plugins/save/lang/gu.js
new file mode 100644
index 0000000..fd908c8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'gu', {
+ toolbar: 'સà«àªµ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/he.js b/devel/third-party/ckeditor/plugins/save/lang/he.js
new file mode 100644
index 0000000..1de6bb1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'he', {
+ toolbar: 'ש××ר×'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/hi.js b/devel/third-party/ckeditor/plugins/save/lang/hi.js
new file mode 100644
index 0000000..88522ee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'hi', {
+ toolbar: 'सà¥à¤µ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/hr.js b/devel/third-party/ckeditor/plugins/save/lang/hr.js
new file mode 100644
index 0000000..a6c94f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'hr', {
+ toolbar: 'Snimi'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/hu.js b/devel/third-party/ckeditor/plugins/save/lang/hu.js
new file mode 100644
index 0000000..584fb05
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'hu', {
+ toolbar: 'Mentés'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/is.js b/devel/third-party/ckeditor/plugins/save/lang/is.js
new file mode 100644
index 0000000..349a25b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'is', {
+ toolbar: 'Vista'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/it.js b/devel/third-party/ckeditor/plugins/save/lang/it.js
new file mode 100644
index 0000000..8722333
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'it', {
+ toolbar: 'Salva'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ja.js b/devel/third-party/ckeditor/plugins/save/lang/ja.js
new file mode 100644
index 0000000..e392c39
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ja', {
+ toolbar: 'ä¿å'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ka.js b/devel/third-party/ckeditor/plugins/save/lang/ka.js
new file mode 100644
index 0000000..aa66c3b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ka', {
+ toolbar: 'á©áá¬áá á'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/km.js b/devel/third-party/ckeditor/plugins/save/lang/km.js
new file mode 100644
index 0000000..88e7ad6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'km', {
+ toolbar: 'ááááá¶áá»á'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ko.js b/devel/third-party/ckeditor/plugins/save/lang/ko.js
new file mode 100644
index 0000000..96b9736
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ko', {
+ toolbar: 'ì ì¥í기'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ku.js b/devel/third-party/ckeditor/plugins/save/lang/ku.js
new file mode 100644
index 0000000..214fe6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ku', {
+ toolbar: 'پاشکÛÙØªÚ©Ø±Ø¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/lt.js b/devel/third-party/ckeditor/plugins/save/lang/lt.js
new file mode 100644
index 0000000..a3cd302
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'lt', {
+ toolbar: 'Išsaugoti'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/lv.js b/devel/third-party/ckeditor/plugins/save/lang/lv.js
new file mode 100644
index 0000000..8d4ef6e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'lv', {
+ toolbar: 'SaglabÄt'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/mk.js b/devel/third-party/ckeditor/plugins/save/lang/mk.js
new file mode 100644
index 0000000..586e370
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'mk', {
+ toolbar: 'Save' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/mn.js b/devel/third-party/ckeditor/plugins/save/lang/mn.js
new file mode 100644
index 0000000..94bde8e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'mn', {
+ toolbar: 'ХадгалаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ms.js b/devel/third-party/ckeditor/plugins/save/lang/ms.js
new file mode 100644
index 0000000..3bc4ff9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ms', {
+ toolbar: 'Simpan'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/nb.js b/devel/third-party/ckeditor/plugins/save/lang/nb.js
new file mode 100644
index 0000000..8847e13
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'nb', {
+ toolbar: 'Lagre'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/nl.js b/devel/third-party/ckeditor/plugins/save/lang/nl.js
new file mode 100644
index 0000000..6328bec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'nl', {
+ toolbar: 'Opslaan'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/no.js b/devel/third-party/ckeditor/plugins/save/lang/no.js
new file mode 100644
index 0000000..fa3b1f5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'no', {
+ toolbar: 'Lagre'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/pl.js b/devel/third-party/ckeditor/plugins/save/lang/pl.js
new file mode 100644
index 0000000..33b3997
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'pl', {
+ toolbar: 'Zapisz'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/pt-br.js b/devel/third-party/ckeditor/plugins/save/lang/pt-br.js
new file mode 100644
index 0000000..ef26dbc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'pt-br', {
+ toolbar: 'Salvar'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/pt.js b/devel/third-party/ckeditor/plugins/save/lang/pt.js
new file mode 100644
index 0000000..184463c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'pt', {
+ toolbar: 'Guardar'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ro.js b/devel/third-party/ckeditor/plugins/save/lang/ro.js
new file mode 100644
index 0000000..e7faeb0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ro', {
+ toolbar: 'SalveazÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ru.js b/devel/third-party/ckeditor/plugins/save/lang/ru.js
new file mode 100644
index 0000000..c5076cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ru', {
+ toolbar: 'СоÑ
ÑаниÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/sk.js b/devel/third-party/ckeditor/plugins/save/lang/sk.js
new file mode 100644
index 0000000..14b9401
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'sk', {
+ toolbar: 'Uložiť'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/sl.js b/devel/third-party/ckeditor/plugins/save/lang/sl.js
new file mode 100644
index 0000000..26dac4b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'sl', {
+ toolbar: 'Shrani'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/save/lang/sr-latn.js
new file mode 100644
index 0000000..43150bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'sr-latn', {
+ toolbar: 'SaÄuvaj'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/sr.js b/devel/third-party/ckeditor/plugins/save/lang/sr.js
new file mode 100644
index 0000000..b9ac6fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'sr', {
+ toolbar: 'СаÑÑваÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/sv.js b/devel/third-party/ckeditor/plugins/save/lang/sv.js
new file mode 100644
index 0000000..8826f91
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'sv', {
+ toolbar: 'Spara'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/th.js b/devel/third-party/ckeditor/plugins/save/lang/th.js
new file mode 100644
index 0000000..7d94363
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'th', {
+ toolbar: 'à¸à¸±à¸à¸à¸¶à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/tr.js b/devel/third-party/ckeditor/plugins/save/lang/tr.js
new file mode 100644
index 0000000..243ba9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'tr', {
+ toolbar: 'Kaydet'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/ug.js b/devel/third-party/ckeditor/plugins/save/lang/ug.js
new file mode 100644
index 0000000..87ad54f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'ug', {
+ toolbar: 'ساÙÙØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/uk.js b/devel/third-party/ckeditor/plugins/save/lang/uk.js
new file mode 100644
index 0000000..dd0b1d7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'uk', {
+ toolbar: 'ÐбеÑегÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/vi.js b/devel/third-party/ckeditor/plugins/save/lang/vi.js
new file mode 100644
index 0000000..5f9fc21
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'vi', {
+ toolbar: 'Lưu'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/save/lang/zh-cn.js
new file mode 100644
index 0000000..d92fbc0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'zh-cn', {
+ toolbar: 'ä¿å'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/lang/zh.js b/devel/third-party/ckeditor/plugins/save/lang/zh.js
new file mode 100644
index 0000000..943e38b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/save/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'save', 'zh', {
+ toolbar: 'å²å'
+});
diff --git a/devel/third-party/ckeditor/plugins/save/plugin.js b/devel/third-party/ckeditor/plugins/save/plugin.js
index 73fd23d..11beff9 100644
--- a/devel/third-party/ckeditor/plugins/save/plugin.js
+++ b/devel/third-party/ckeditor/plugins/save/plugin.js
@@ -1,30 +1,23 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @fileSave plugin.
+ * @fileOverview Save plugin.
*/
-(function()
-{
- var saveCmd =
- {
- modes : { wysiwyg:1, source:1 },
+(function() {
+ var saveCmd = { modes:{wysiwyg:1,source:1 },
+ readOnly: 1,
- exec : function( editor )
- {
+ exec: function( editor ) {
var $form = editor.element.$.form;
- if ( $form )
- {
- try
- {
+ if ( $form ) {
+ try {
$form.submit();
- }
- catch( e )
- {
+ } catch ( e ) {
// If there's a button named "submit" then the form.submit
// function is masked and can't be called in IE/FF, so we
// call the click() method of that button.
@@ -38,18 +31,23 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var pluginName = 'save';
// Register a plugin named "save".
- CKEDITOR.plugins.add( pluginName,
- {
- init : function( editor )
- {
+ CKEDITOR.plugins.add( pluginName, {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'save', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+
+ // Save plugin is for replace mode only.
+ if ( editor.elementMode != CKEDITOR.ELEMENT_MODE_REPLACE )
+ return;
+
var command = editor.addCommand( pluginName, saveCmd );
- command.modes = { wysiwyg : !!( editor.element.$.form ) };
+ command.modes = { wysiwyg: !!( editor.element.$.form ) };
- editor.ui.addButton( 'Save',
- {
- label : editor.lang.save,
- command : pluginName
- });
+ editor.ui.addButton && editor.ui.addButton( 'Save', {
+ label: editor.lang.save.toolbar,
+ command: pluginName,
+ toolbar: 'document,10'
+ });
}
});
})();
diff --git a/devel/third-party/ckeditor/plugins/scayt/LICENSE.md b/devel/third-party/ckeditor/plugins/scayt/LICENSE.md
new file mode 100644
index 0000000..844ab4d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/LICENSE.md
@@ -0,0 +1,28 @@
+Software License Agreement
+==========================
+
+**CKEditor SCAYT Plugin**
+Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+* GNU General Public License Version 2 or later (the "GPL"):
+ http://www.gnu.org/licenses/gpl.html
+
+* GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
+ http://www.gnu.org/licenses/lgpl.html
+
+* Mozilla Public License Version 1.1 or later (the "MPL"):
+ http://www.mozilla.org/MPL/MPL-1.1.html
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
+
+Sources of Intellectual Property Included in this plugin
+--------------------------------------------------------
+
+Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
diff --git a/devel/third-party/ckeditor/plugins/scayt/README.md b/devel/third-party/ckeditor/plugins/scayt/README.md
new file mode 100644
index 0000000..0f51958
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/README.md
@@ -0,0 +1,25 @@
+CKEditor SCAYT Plugin
+=====================
+
+This plugin brings Spell Check As You Type (SCAYT) into CKEditor.
+
+SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
+
+Installation
+------------
+
+1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation.
+2. Enable the "scayt" plugin in the CKEditor configuration file (config.js):
+
+ config.extraPlugins = 'scayt';
+
+That's all. SCAYT will appear on the editor toolbar and will be ready to use.
+
+License
+-------
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
+
+Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
diff --git a/devel/third-party/ckeditor/plugins/scayt/dialogs/options.js b/devel/third-party/ckeditor/plugins/scayt/dialogs/options.js
index f745d82..dbcc258 100644
--- a/devel/third-party/ckeditor/plugins/scayt/dialogs/options.js
+++ b/devel/third-party/ckeditor/plugins/scayt/dialogs/options.js
@@ -1,532 +1,471 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'scaytcheck', function( editor )
-{
+CKEDITOR.dialog.add( 'scaytcheck', function( editor ) {
var firstLoad = true,
captions,
doc = CKEDITOR.document,
- tags = [],
+ editorName = editor.name,
+ tags = CKEDITOR.plugins.scayt.getUiTabs( editor ),
i,
contents = [],
- userDicActive = false,
+ userDicActive = 0,
dic_buttons = [
// [0] contains buttons for creating
- "dic_create,dic_restore",
+ "dic_create_" + editorName + ",dic_restore_" + editorName,
// [1] contains buton for manipulation
- "dic_rename,dic_delete"
+ "dic_rename_" + editorName + ",dic_delete_" + editorName
],
- optionsIds= [ 'mixedCase','mixedWithDigits','allCaps','ignoreDomainNames' ];
+ optionsIds = [ 'mixedCase', 'mixedWithDigits', 'allCaps', 'ignoreDomainNames' ];
// common operations
- function getBOMAllOptions () {
- return document.forms.optionsbar["options"];
+ function getBOMAllOptions() {
+ if ( typeof document.forms[ "optionsbar_" + editorName ] != "undefined" )
+ return document.forms[ "optionsbar_" + editorName ][ "options" ];
+ return [];
}
- function getBOMAllLangs () {
- return document.forms.languagesbar["scayt_lang"];
+
+ function getBOMAllLangs() {
+ if ( typeof document.forms[ "languagesbar_" + editorName ] != "undefined" )
+ return document.forms[ "languagesbar_" + editorName ][ "scayt_lang" ];
+ return [];
}
- function setCheckedValue(radioObj, newValue) {
- if (!radioObj)
+ function setCheckedValue( radioObj, newValue ) {
+ if ( !radioObj )
return;
var radioLength = radioObj.length;
- if (radioLength == undefined) {
- radioObj.checked = (radioObj.value == newValue.toString());
+ if ( radioLength == undefined ) {
+ radioObj.checked = radioObj.value == newValue.toString();
return;
}
- for (var i = 0; i < radioLength; i++) {
- radioObj[i].checked = false;
- if (radioObj[i].value == newValue.toString()) {
- radioObj[i].checked = true;
- }
+ for ( var i = 0; i < radioLength; i++ ) {
+ radioObj[ i ].checked = false;
+ if ( radioObj[ i ].value == newValue.toString() )
+ radioObj[ i ].checked = true;
}
}
- var tags_contents = [
- {
- id : 'options',
- label : editor.lang.scayt.optionsTab,
- elements : [
- {
- type : 'html',
- id : 'options',
- html : '<form name="optionsbar"><div class="inner_options">' +
- ' <div class="messagebox"></div>' +
- ' <div style="display:none;">' +
- ' <input type="checkbox" name="options" id="allCaps" />' +
- ' <label for="allCaps" id="label_allCaps"></label>' +
- ' </div>' +
- ' <div style="display:none;">' +
- ' <input name="options" type="checkbox" id="ignoreDomainNames" />' +
- ' <label for="ignoreDomainNames" id="label_ignoreDomainNames"></label>' +
- ' </div>' +
- ' <div style="display:none;">' +
- ' <input name="options" type="checkbox" id="mixedCase" />' +
- ' <label for="mixedCase" id="label_mixedCase"></label>' +
- ' </div>' +
- ' <div style="display:none;">' +
- ' <input name="options" type="checkbox" id="mixedWithDigits" />' +
- ' <label for="mixedWithDigits" id="label_mixedWithDigits"></label>' +
- ' </div>' +
- '</div></form>'
- }
- ]
- },
- {
- id : 'langs',
- label : editor.lang.scayt.languagesTab,
- elements : [
- {
- type : 'html',
- id : 'langs',
- html : '<form name="languagesbar"><div class="inner_langs">' +
- ' <div class="messagebox"></div> ' +
- ' <div style="float:left;width:45%;margin-left:5px;" id="scayt_lcol" ></div>' +
- ' <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol"></div>' +
- '</div></form>'
- }
- ]
- },
- {
- id : 'dictionaries',
- label : editor.lang.scayt.dictionariesTab,
- elements : [
- {
- type : 'html',
- style: '',
- id : 'dictionaries',
- html : '<form name="dictionarybar"><div class="inner_dictionary" style="text-align:left; white-space:normal; width:320px; overflow: hidden;">' +
- ' <div style="margin:5px auto; width:80%;white-space:normal; overflow:hidden;" id="dic_message"> </div>' +
- ' <div style="margin:5px auto; width:80%;white-space:normal;"> ' +
- ' <span class="cke_dialog_ui_labeled_label" >Dictionary name</span><br>'+
- ' <span class="cke_dialog_ui_labeled_content" >'+
- ' <div class="cke_dialog_ui_input_text">'+
- ' <input id="dic_name" type="text" class="cke_dialog_ui_input_text"/>'+
- ' </div></span></div>'+
- ' <div style="margin:5px auto; width:80%;white-space:normal;">'+
- ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create">'+
- ' </a>' +
- ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete">'+
- ' </a>' +
- ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename">'+
- ' </a>' +
- ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore">'+
- ' </a>' +
- ' </div>' +
- ' <div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info"></div>' +
- '</div></form>'
- }
- ]
- },
- {
- id : 'about',
- label : editor.lang.scayt.aboutTab,
- elements : [
- {
- type : 'html',
- id : 'about',
- style : 'margin: 5px 5px;',
- html : '<div id="scayt_about"></div>'
- }
- ]
- }
- ];
+ var lang = editor.lang.scayt;
+ var tags_contents = [
+ {
+ id: 'options',
+ label: lang.optionsTab,
+ elements: [
+ {
+ type: 'html',
+ id: 'options',
+ html: '<form name="optionsbar_' + editorName + '"><div class="inner_options">' +
+ ' <div class="messagebox"></div>' +
+ ' <div style="display:none;">' +
+ ' <input type="checkbox" name="options" id="allCaps_' + editorName + '" />' +
+ ' <label for="allCaps" id="label_allCaps_' + editorName + '"></label>' +
+ ' </div>' +
+ ' <div style="display:none;">' +
+ ' <input name="options" type="checkbox" id="ignoreDomainNames_' + editorName + '" />' +
+ ' <label for="ignoreDomainNames" id="label_ignoreDomainNames_' + editorName + '"></label>' +
+ ' </div>' +
+ ' <div style="display:none;">' +
+ ' <input name="options" type="checkbox" id="mixedCase_' + editorName + '" />' +
+ ' <label for="mixedCase" id="label_mixedCase_' + editorName + '"></label>' +
+ ' </div>' +
+ ' <div style="display:none;">' +
+ ' <input name="options" type="checkbox" id="mixedWithDigits_' + editorName + '" />' +
+ ' <label for="mixedWithDigits" id="label_mixedWithDigits_' + editorName + '"></label>' +
+ ' </div>' +
+ '</div></form>'
+ }
+ ]
+ },
+ {
+ id: 'langs',
+ label: lang.languagesTab,
+ elements: [
+ {
+ type: 'html',
+ id: 'langs',
+ html: '<form name="languagesbar_' + editorName + '"><div class="inner_langs">' +
+ ' <div class="messagebox"></div> ' +
+ ' <div style="float:left;width:45%;margin-left:5px;" id="scayt_lcol_' + editorName + '" ></div>' +
+ ' <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol_' + editorName + '"></div>' +
+ '</div></form>'
+ }
+ ]
+ },
+ {
+ id: 'dictionaries',
+ label: lang.dictionariesTab,
+ elements: [
+ {
+ type: 'html',
+ style: '',
+ id: 'dictionaries',
+ html: '<form name="dictionarybar_' + editorName + '"><div class="inner_dictionary" style="text-align:left; white-space:normal; width:320px; overflow: hidden;">' +
+ ' <div style="margin:5px auto; width:80%;white-space:normal; overflow:hidden;" id="dic_message_' + editorName + '"> </div>' +
+ ' <div style="margin:5px auto; width:80%;white-space:normal;"> ' +
+ ' <span class="cke_dialog_ui_labeled_label" >Dictionary name</span><br>' +
+ ' <span class="cke_dialog_ui_labeled_content" >' +
+ ' <div class="cke_dialog_ui_input_text">' +
+ ' <input id="dic_name_' + editorName + '" type="text" class="cke_dialog_ui_input_text"/>' +
+ ' </div></span></div>' +
+ ' <div style="margin:5px auto; width:80%;white-space:normal;">' +
+ ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create_' + editorName + '">' +
+ ' </a>' +
+ ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete_' + editorName + '">' +
+ ' </a>' +
+ ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename_' + editorName + '">' +
+ ' </a>' +
+ ' <a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore_' + editorName + '">' +
+ ' </a>' +
+ ' </div>' +
+ ' <div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info_' + editorName + '"></div>' +
+ '</div></form>'
+ }
+ ]
+ },
+ {
+ id: 'about',
+ label: lang.aboutTab,
+ elements: [
+ {
+ type: 'html',
+ id: 'about',
+ style: 'margin: 5px 5px;',
+ html: '<div id="scayt_about_' + editorName + '"></div>'
+ }
+ ]
+ }
+ ];
var dialogDefiniton = {
- title : editor.lang.scayt.title,
- minWidth : 360,
- minHeight : 220,
- onShow : function()
- {
+ title: lang.title,
+ minWidth: 360,
+ minHeight: 220,
+ onShow: function() {
var dialog = this;
dialog.data = editor.fire( 'scaytDialog', {} );
dialog.options = dialog.data.scayt_control.option();
- dialog.sLang = dialog.data.scayt_control.sLang;
+ dialog.chosed_lang = dialog.sLang = dialog.data.scayt_control.sLang;
- if ( !dialog.data || !dialog.data.scayt || !dialog.data.scayt_control )
- {
+ if ( !dialog.data || !dialog.data.scayt || !dialog.data.scayt_control ) {
alert( 'Error loading application service' );
dialog.hide();
return;
}
var stop = 0;
- if ( firstLoad )
- {
- dialog.data.scayt.getCaption( editor.langCode || 'en', function( caps )
- {
- if ( stop++ > 0 ) // Once only
- return;
+ if ( firstLoad ) {
+ dialog.data.scayt.getCaption( editor.langCode || 'en', function( caps ) {
+ if ( stop++ > 0 ) // Once only
+ return;
captions = caps;
init_with_captions.apply( dialog );
reload.apply( dialog );
firstLoad = false;
});
- }
- else
+ } else
reload.apply( dialog );
dialog.selectPage( dialog.data.tab );
},
- onOk : function()
- {
- var scayt_control = this.data.scayt_control;
+ onOk: function() {
+ var scayt_control = this.data.scayt_control;
scayt_control.option( this.options );
- // Setup languge if it was changed.
+ // Setup language if it was changed.
var csLang = this.chosed_lang;
scayt_control.setLang( csLang );
scayt_control.refresh();
},
- onCancel: function()
- {
+ onCancel: function() {
var o = getBOMAllOptions();
- for (i in o)
- o[i].checked = false;
+ for ( var i in o )
+ o[ i ].checked = false;
- setCheckedValue(getBOMAllLangs(),"");
+ setCheckedValue( getBOMAllLangs(), "" );
},
- contents : contents
+ contents: contents
};
var scayt_control = CKEDITOR.plugins.scayt.getScayt( editor );
- tags = CKEDITOR.plugins.scayt.uiTabs;
-
- for ( i in tags )
- {
+ for ( i = 0; i < tags.length; i++ ) {
if ( tags[ i ] == 1 )
contents[ contents.length ] = tags_contents[ i ];
}
- if ( tags[2] == 1 )
- userDicActive = true;
-
-
- var init_with_captions = function()
- {
- var dialog = this,
- lang_list = dialog.data.scayt.getLangList(),
- buttons = [ 'dic_create','dic_delete','dic_rename','dic_restore' ],
- labels = optionsIds,
- i;
-
- // Add buttons titles
- if ( userDicActive )
- {
- for ( i = 0; i < buttons.length; i++ )
- {
- var button = buttons[ i ];
- doc.getById( button ).setHtml( '<span class="cke_dialog_ui_button">' + captions[ 'button_' + button] +'</span>' );
+ if ( tags[ 2 ] == 1 )
+ userDicActive = 1;
+
+ var init_with_captions = function() {
+ var dialog = this,
+ lang_list = dialog.data.scayt.getLangList(),
+ buttonCaptions = [ 'dic_create', 'dic_delete', 'dic_rename', 'dic_restore' ],
+ buttonIds = [],
+ langList = [],
+ labels = optionsIds,
+ i;
+
+ // Add buttons titles
+ if ( userDicActive ) {
+ for ( i = 0; i < buttonCaptions.length; i++ ) {
+ buttonIds[ i ] = buttonCaptions[ i ] + "_" + editorName;
+ doc.getById( buttonIds[ i ] ).setHtml( '<span class="cke_dialog_ui_button">' + captions[ 'button_' + buttonCaptions[ i ] ] + '</span>' );
+ }
+ doc.getById( 'dic_info_' + editorName ).setHtml( captions[ 'dic_info' ] );
}
- doc.getById( 'dic_info' ).setHtml( captions[ 'dic_info' ] );
- }
-
- // Fill options and dictionary labels.
- if ( tags[0] == 1 )
- {
- for ( i in labels )
- {
- var label = 'label_' + labels[ i ],
- labelElement = doc.getById( label );
-
- if ( 'undefined' != typeof labelElement
- && 'undefined' != typeof captions[ label ]
- && 'undefined' != typeof dialog.options[labels[ i ]] )
- {
- labelElement.setHtml( captions[ label ] );
- var labelParent = labelElement.getParent();
- labelParent.$.style.display = "block";
+ // Fill options and dictionary labels.
+ if ( tags[ 0 ] == 1 ) {
+ for ( i in labels ) {
+ var labelCaption = 'label_' + labels[ i ],
+ labelId = labelCaption + '_' + editorName,
+ labelElement = doc.getById( labelId );
+
+ if ( 'undefined' != typeof labelElement && 'undefined' != typeof captions[ labelCaption ] && 'undefined' != typeof dialog.options[ labels[ i ] ] ) {
+ labelElement.setHtml( captions[ labelCaption ] );
+ var labelParent = labelElement.getParent();
+ labelParent.$.style.display = "block";
+ }
}
}
- }
- var about = '<p><img src="' + window.scayt.getAboutInfo().logoURL + '" /></p>' +
+ var about = '<p><img src="' + window.scayt.getAboutInfo().logoURL + '" /></p>' +
'<p>' + captions[ 'version' ] + window.scayt.getAboutInfo().version.toString() + '</p>' +
'<p>' + captions[ 'about_throwt_copy' ] + '</p>';
- doc.getById( 'scayt_about' ).setHtml( about );
+ doc.getById( 'scayt_about_' + editorName ).setHtml( about );
- // Create languages tab.
- var createOption = function( option, list )
- {
- var label = doc.createElement( 'label' );
- label.setAttribute( 'for', 'cke_option' + option );
- label.setHtml( list[ option ] );
-
- if ( dialog.sLang == option ) // Current.
- dialog.chosed_lang = option;
-
- var div = doc.createElement( 'div' );
- var radio = CKEDITOR.dom.element.createFromHtml( '<input id="cke_option' +
- option + '" type="radio" ' +
- ( dialog.sLang == option ? 'checked="checked"' : '' ) +
- ' value="' + option + '" name="scayt_lang" />' );
-
- radio.on( 'click', function()
- {
- this.$.checked = true;
+ // Create languages tab.
+ var createOption = function( option, list ) {
+ var label = doc.createElement( 'label' );
+ label.setAttribute( 'for', 'cke_option' + option );
+ label.setHtml( list[ option ] );
+
+ if ( dialog.sLang == option ) // Current.
dialog.chosed_lang = option;
- });
- div.append( radio );
- div.append( label );
+ var div = doc.createElement( 'div' );
+ var radio = CKEDITOR.dom.element.createFromHtml( '<input id="cke_option' +
+ option + '" type="radio" ' +
+ ( dialog.sLang == option ? 'checked="checked"' : '' ) +
+ ' value="' + option + '" name="scayt_lang" />' );
- return {
- lang : list[ option ],
- code : option,
- radio : div
- };
- };
+ radio.on( 'click', function() {
+ this.$.checked = true;
+ dialog.chosed_lang = option;
+ });
- var langList = [];
- if (tags[1] ==1 )
- {
- for ( i in lang_list.rtl )
- langList[ langList.length ] = createOption( i, lang_list.ltr );
+ div.append( radio );
+ div.append( label );
+
+ return {
+ lang: list[ option ],
+ code: option,
+ radio: div
+ };
+ };
+
+ if ( tags[ 1 ] == 1 ) {
+ for ( i in lang_list.rtl )
+ langList[ langList.length ] = createOption( i, lang_list.ltr );
- for ( i in lang_list.ltr )
- langList[ langList.length ] = createOption( i, lang_list.ltr );
+ for ( i in lang_list.ltr )
+ langList[ langList.length ] = createOption( i, lang_list.ltr );
- langList.sort( function( lang1, lang2 )
- {
- return ( lang2.lang > lang1.lang ) ? -1 : 1 ;
+ langList.sort( function( lang1, lang2 ) {
+ return ( lang2.lang > lang1.lang ) ? -1 : 1;
});
- var fieldL = doc.getById( 'scayt_lcol' ),
- fieldR = doc.getById( 'scayt_rcol' );
- for ( i=0; i < langList.length; i++ )
- {
- var field = ( i < langList.length / 2 ) ? fieldL : fieldR;
- field.append( langList[ i ].radio );
+ var fieldL = doc.getById( 'scayt_lcol_' + editorName ),
+ fieldR = doc.getById( 'scayt_rcol_' + editorName );
+ for ( i = 0; i < langList.length; i++ ) {
+ var field = ( i < langList.length / 2 ) ? fieldL : fieldR;
+ field.append( langList[ i ].radio );
+ }
}
- }
- // user dictionary handlers
- var dic = {};
- dic.dic_create = function( el, dic_name , dic_buttons )
- {
- // comma separated button's ids include repeats if exists
- var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
-
- var err_massage = captions["err_dic_create"];
- var suc_massage = captions["succ_dic_create"];
-
- window.scayt.createUserDictionary(dic_name,
- function(arg)
- {
- hide_dic_buttons ( all_buttons );
- display_dic_buttons ( dic_buttons[1] );
- suc_massage = suc_massage.replace("%s" , arg.dname );
- dic_success_message (suc_massage);
- },
- function(arg)
- {
- err_massage = err_massage.replace("%s" ,arg.dname );
- dic_error_message ( err_massage + "( "+ (arg.message || "") +")");
+ // user dictionary handlers
+ var dic = {};
+ dic.dic_create = function( el, dic_name, dic_buttons ) {
+ // comma separated button's ids include repeats if exists
+ var all_buttons = dic_buttons[ 0 ] + ',' + dic_buttons[ 1 ];
+
+ var err_massage = captions[ "err_dic_create" ];
+ var suc_massage = captions[ "succ_dic_create" ];
+
+ window.scayt.createUserDictionary( dic_name, function( arg ) {
+ hide_dic_buttons( all_buttons );
+ display_dic_buttons( dic_buttons[ 1 ] );
+ suc_massage = suc_massage.replace( "%s", arg.dname );
+ dic_success_message( suc_massage );
+ }, function( arg ) {
+ err_massage = err_massage.replace( "%s", arg.dname );
+ dic_error_message( err_massage + "( " + ( arg.message || "" ) + ")" );
});
- };
+ };
- dic.dic_rename = function( el, dic_name )
- {
- //
- // try to rename dictionary
- var err_massage = captions["err_dic_rename"] || "";
- var suc_massage = captions["succ_dic_rename"] || "";
- window.scayt.renameUserDictionary(dic_name,
- function(arg)
- {
- suc_massage = suc_massage.replace("%s" , arg.dname );
- set_dic_name( dic_name );
- dic_success_message ( suc_massage );
- },
- function(arg)
- {
- err_massage = err_massage.replace("%s" , arg.dname );
- set_dic_name( dic_name );
- dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );
- });
- };
+ dic.dic_rename = function( el, dic_name ) {
+ //
+ // try to rename dictionary
+ var err_massage = captions[ "err_dic_rename" ] || "";
+ var suc_massage = captions[ "succ_dic_rename" ] || "";
+ window.scayt.renameUserDictionary( dic_name, function( arg ) {
+ suc_massage = suc_massage.replace( "%s", arg.dname );
+ set_dic_name( dic_name );
+ dic_success_message( suc_massage );
+ }, function( arg ) {
+ err_massage = err_massage.replace( "%s", arg.dname );
+ set_dic_name( dic_name );
+ dic_error_message( err_massage + "( " + ( arg.message || "" ) + " )" );
+ });
+ };
- dic.dic_delete = function ( el, dic_name , dic_buttons )
- {
- var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
- var err_massage = captions["err_dic_delete"];
- var suc_massage = captions["succ_dic_delete"];
-
- // try to delete dictionary
- window.scayt.deleteUserDictionary(
- function(arg)
- {
- suc_massage = suc_massage.replace("%s" , arg.dname );
- hide_dic_buttons ( all_buttons );
- display_dic_buttons ( dic_buttons[0] );
+ dic.dic_delete = function( el, dic_name, dic_buttons ) {
+ var all_buttons = dic_buttons[ 0 ] + ',' + dic_buttons[ 1 ];
+ var err_massage = captions[ "err_dic_delete" ];
+ var suc_massage = captions[ "succ_dic_delete" ];
+
+ // try to delete dictionary
+ window.scayt.deleteUserDictionary( function( arg ) {
+ suc_massage = suc_massage.replace( "%s", arg.dname );
+ hide_dic_buttons( all_buttons );
+ display_dic_buttons( dic_buttons[ 0 ] );
set_dic_name( "" ); // empty input field
dic_success_message( suc_massage );
- },
- function(arg)
- {
- err_massage = err_massage.replace("%s" , arg.dname );
- dic_error_message(err_massage);
+ }, function( arg ) {
+ err_massage = err_massage.replace( "%s", arg.dname );
+ dic_error_message( err_massage );
});
- };
+ };
- dic.dic_restore = dialog.dic_restore || function ( el, dic_name , dic_buttons )
- {
+ dic.dic_restore = dialog.dic_restore ||
+ function( el, dic_name, dic_buttons ) {
// try to restore existing dictionary
- var all_buttons = dic_buttons[0] + ',' + dic_buttons[1];
- var err_massage = captions["err_dic_restore"];
- var suc_massage = captions["succ_dic_restore"];
-
- window.scayt.restoreUserDictionary(dic_name,
- function(arg)
- {
- suc_massage = suc_massage.replace("%s" , arg.dname );
- hide_dic_buttons ( all_buttons );
- display_dic_buttons(dic_buttons[1]);
- dic_success_message( suc_massage );
- },
- function(arg)
- {
- err_massage = err_massage.replace("%s" , arg.dname );
- dic_error_message( err_massage );
- });
+ var all_buttons = dic_buttons[ 0 ] + ',' + dic_buttons[ 1 ];
+ var err_massage = captions[ "err_dic_restore" ];
+ var suc_massage = captions[ "succ_dic_restore" ];
+
+ window.scayt.restoreUserDictionary( dic_name, function( arg ) {
+ suc_massage = suc_massage.replace( "%s", arg.dname );
+ hide_dic_buttons( all_buttons );
+ display_dic_buttons( dic_buttons[ 1 ] );
+ dic_success_message( suc_massage );
+ }, function( arg ) {
+ err_massage = err_massage.replace( "%s", arg.dname );
+ dic_error_message( err_massage );
+ });
};
- function onDicButtonClick( ev )
- {
- var dic_name = doc.getById('dic_name').getValue();
- if ( !dic_name )
- {
- dic_error_message(" Dictionary name should not be empty. ");
- return false;
- }
- try{
- var el = id = ev.data.getTarget().getParent();
- var id = el.getId();
- dic[ id ].apply( null, [ el, dic_name, dic_buttons ] );
- }catch(err){
- dic_error_message(" Dictionary error. ");
- }
+ function onDicButtonClick( ev ) {
+ var dic_name = doc.getById( 'dic_name_' + editorName ).getValue();
+ if ( !dic_name ) {
+ dic_error_message( " Dictionary name should not be empty. " );
+ return false;
+ }
+ try {
+ var el = ev.data.getTarget().getParent();
+ var id = /(dic_\w+)_[\w\d]+/.exec( el.getId() )[ 1 ];
+ dic[ id ].apply( null, [ el, dic_name, dic_buttons ] );
+ } catch ( err ) {
+ dic_error_message( " Dictionary error. " );
+ }
- return true;
- }
+ return true;
+ }
- // ** bind event listeners
- var arr_buttons = ( dic_buttons[0] + ',' + dic_buttons[1] ).split( ',' ),
- l;
+ // ** bind event listeners
+ var arr_buttons = ( dic_buttons[ 0 ] + ',' + dic_buttons[ 1 ] ).split( ',' ),
+ l;
- for ( i = 0, l = arr_buttons.length ; i < l ; i += 1 )
- {
- var dic_button = doc.getById(arr_buttons[i]);
- if ( dic_button )
- dic_button.on( 'click', onDicButtonClick, this );
- }
- };
+ for ( i = 0, l = arr_buttons.length; i < l; i += 1 ) {
+ var dic_button = doc.getById( arr_buttons[ i ] );
+ if ( dic_button )
+ dic_button.on( 'click', onDicButtonClick, this );
+ }
+ };
- var reload = function()
- {
- var dialog = this;
- // for enabled options tab
- if (tags[0] == 1){
- var opto = getBOMAllOptions();
+ var reload = function() {
+ var dialog = this;
+ // for enabled options tab
+ if ( tags[ 0 ] == 1 ) {
+ var opto = getBOMAllOptions();
- // Animate options.
- for ( var k=0,l = opto.length; k<l;k++ )
- {
+ // Animate options.
+ for ( var k = 0, l = opto.length; k < l; k++ ) {
- var i = opto[k].id;
- var checkbox = doc.getById( i );
+ var i = opto[ k ].id;
+ var checkbox = doc.getById( i );
- if ( checkbox )
- {
- opto[k].checked = false;
- //alert (opto[k].removeAttribute)
- if ( dialog.options[ i ] == 1 )
- {
- opto[k].checked = true;
- }
+ if ( checkbox ) {
+ opto[ k ].checked = false;
+ //alert (opto[k].removeAttribute)
+ if ( dialog.options[ i.split( "_" )[ 0 ] ] == 1 ) {
+ opto[ k ].checked = true;
+ }
- // Bind events. Do it only once.
- if ( firstLoad )
- {
- checkbox.on( 'click', function()
- {
- dialog.options[ this.getId() ] = this.$.checked ? 1 : 0 ;
- });
+ // Bind events. Do it only once.
+ if ( firstLoad ) {
+ checkbox.on( 'click', function() {
+ dialog.options[ this.getId().split( "_" )[ 0 ] ] = this.$.checked ? 1 : 0;
+ });
+ }
}
}
}
- }
- //for enabled languages tab
- if ( tags[1] == 1 )
- {
- var domLang = doc.getById("cke_option"+dialog.sLang);
- setCheckedValue(domLang.$,dialog.sLang);
- }
+ //for enabled languages tab
+ if ( tags[ 1 ] == 1 ) {
+ var domLang = doc.getById( "cke_option" + dialog.sLang );
+ setCheckedValue( domLang.$, dialog.sLang );
+ }
- // * user dictionary
- if ( userDicActive )
- {
- window.scayt.getNameUserDictionary(
- function( o )
- {
+ // * user dictionary
+ if ( userDicActive ) {
+ window.scayt.getNameUserDictionary( function( o ) {
var dic_name = o.dname;
- hide_dic_buttons( dic_buttons[0] + ',' + dic_buttons[1] );
- if ( dic_name )
- {
- doc.getById( 'dic_name' ).setValue(dic_name);
- display_dic_buttons( dic_buttons[1] );
- }
- else
- display_dic_buttons( dic_buttons[0] );
-
- },
- function ()
- {
- doc.getById( 'dic_name' ).setValue("");
+ hide_dic_buttons( dic_buttons[ 0 ] + ',' + dic_buttons[ 1 ] );
+ if ( dic_name ) {
+ doc.getById( 'dic_name_' + editorName ).setValue( dic_name );
+ display_dic_buttons( dic_buttons[ 1 ] );
+ } else
+ display_dic_buttons( dic_buttons[ 0 ] );
+
+ }, function() {
+ doc.getById( 'dic_name_' + editorName ).setValue( "" );
});
- dic_success_message("");
- }
+ dic_success_message( "" );
+ }
- };
+ };
- function dic_error_message ( m )
- {
- doc.getById('dic_message').setHtml('<span style="color:red;">' + m + '</span>' );
+ function dic_error_message( m ) {
+ doc.getById( 'dic_message_' + editorName ).setHtml( '<span style="color:red;">' + m + '</span>' );
}
- function dic_success_message ( m )
- {
- doc.getById('dic_message').setHtml('<span style="color:blue;">' + m + '</span>') ;
+
+ function dic_success_message( m ) {
+ doc.getById( 'dic_message_' + editorName ).setHtml( '<span style="color:blue;">' + m + '</span>' );
}
- function display_dic_buttons ( sIds )
- {
+ function display_dic_buttons( sIds ) {
sIds = String( sIds );
- var aIds = sIds.split(',');
- for ( var i=0, l = aIds.length; i < l ; i+=1)
- {
- doc.getById( aIds[i] ).$.style.display = "inline";
- }
-
+ var aIds = sIds.split( ',' );
+ for ( var i = 0, l = aIds.length; i < l; i += 1 )
+ doc.getById( aIds[ i ] ).$.style.display = "inline";
}
- function hide_dic_buttons ( sIds )
- {
+
+ function hide_dic_buttons( sIds ) {
sIds = String( sIds );
- var aIds = sIds.split(',');
- for ( var i = 0, l = aIds.length; i < l ; i += 1 )
- {
- doc.getById( aIds[i] ).$.style.display = "none";
- }
+ var aIds = sIds.split( ',' );
+ for ( var i = 0, l = aIds.length; i < l; i += 1 )
+ doc.getById( aIds[ i ] ).$.style.display = "none";
}
- function set_dic_name ( dic_name )
- {
- doc.getById('dic_name').$.value= dic_name;
+
+ function set_dic_name( dic_name ) {
+ doc.getById( 'dic_name_' + editorName ).$.value = dic_name;
}
return dialogDefiniton;
diff --git a/devel/third-party/ckeditor/plugins/scayt/icons/scayt.png b/devel/third-party/ckeditor/plugins/scayt/icons/scayt.png
new file mode 100644
index 0000000..701ceee
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/scayt/icons/scayt.png differ
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/af.js b/devel/third-party/ckeditor/plugins/scayt/lang/af.js
new file mode 100644
index 0000000..b629fe5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/af.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'af', {
+ about: 'SCAYT info',
+ aboutTab: 'Info',
+ addWord: 'Voeg woord by',
+ allCaps: 'Ignoreer woorde in hoofletters',
+ dic_create: 'Skep',
+ dic_delete: 'Verwijder',
+ dic_field_name: 'Naam van woordeboek',
+ dic_info: 'Aanvanklik word die gebruikerswoordeboek in \'n koekie gestoor. Koekies is egter beperk in grootte. Wanneer die gebruikerswoordeboek te groot vir \'n koekie geword het, kan dit op ons bediener gestoor word. Om u persoonlike woordeboek op ons bediener te stoor, gee asb. \'n naam vir u woordeboek. Indien u alreeds \'n gestoorde woordeboek het, tik die naam en kliek op die Herstel knop.',
+ dic_rename: 'Hernoem',
+ dic_restore: 'Herstel',
+ dictionariesTab: 'Woordeboeke',
+ disable: 'SCAYT af',
+ emptyDic: 'Woordeboeknaam mag nie leeg wees nie.',
+ enable: 'SCAYT aan',
+ ignore: 'Ignoreer',
+ ignoreAll: 'Ignoreer alles',
+ ignoreDomainNames: 'Ignoreer domeinname',
+ langs: 'Tale',
+ languagesTab: 'Tale',
+ mixedCase: 'Ignoreer woorde met hoof- en kleinletters',
+ mixedWithDigits: 'Ignoreer woorde met syfers',
+ moreSuggestions: 'Meer voorstelle',
+ opera_title: 'Nie ondersteun deur Opera nie',
+ options: 'Opsies',
+ optionsTab: 'Opsies',
+ title: 'Speltoets terwyl u tik',
+ toggle: 'SCAYT wissel aan/af',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ar.js b/devel/third-party/ckeditor/plugins/scayt/lang/ar.js
new file mode 100644
index 0000000..1692d1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ar.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ar', {
+ about: 'ع٠SCAYT',
+ aboutTab: 'عÙ',
+ addWord: 'Ø¥Ø¶Ø§ÙØ© ÙÙÙ
Ø©',
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'ÙÙØ§Ù
ÙØ³',
+ disable: 'تعطÙÙ SCAYT',
+ emptyDic: 'اسÙ
اÙÙØ§Ù
ÙØ³ ÙØ¬Ø¨ Ø£ÙØ§ ÙÙÙÙ ÙØ§Ø±ØºØ§Ù.',
+ enable: 'ØªÙØ¹ÙÙ SCAYT',
+ ignore: 'تجاÙÙ',
+ ignoreAll: 'تجاÙ٠اÙÙÙ',
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'ÙØºØ§Øª',
+ languagesTab: 'ÙØºØ§Øª',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'اÙÙ
Ø²ÙØ¯ Ù
٠اÙÙ
ÙØªØ±ØØ§Øª',
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Ø®ÙØ§Ø±Ø§Øª',
+ optionsTab: 'Ø®ÙØ§Ø±Ø§Øª',
+ title: 'تدÙÙ٠إÙ
ÙØ§Ø¦Ù Ø£Ø«ÙØ§Ø¡ اÙÙØªØ§Ø¨Ø©',
+ toggle: 'ØªØ«Ø¨ÙØª SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/bg.js b/devel/third-party/ckeditor/plugins/scayt/lang/bg.js
new file mode 100644
index 0000000..f6269fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/bg.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'bg', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'ÐÑноÑно',
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Ðов',
+ dic_delete: 'ÐзÑÑиване',
+ dic_field_name: 'Ðме на ÑеÑнк',
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'ÐÑеименÑване',
+ dic_restore: 'ÐÑзÑановÑване',
+ dictionariesTab: 'РеÑниÑи',
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'ÐзиÑи',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'ÐгноÑиÑани дÑми и ÑиÑÑи',
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/bn.js b/devel/third-party/ckeditor/plugins/scayt/lang/bn.js
new file mode 100644
index 0000000..0968696
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/bn.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'bn', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/bs.js b/devel/third-party/ckeditor/plugins/scayt/lang/bs.js
new file mode 100644
index 0000000..69a9263
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/bs.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'bs', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ca.js b/devel/third-party/ckeditor/plugins/scayt/lang/ca.js
new file mode 100644
index 0000000..dc4667f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ca.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ca', {
+ about: 'Quant a l\'SCAYT',
+ aboutTab: 'Quant a',
+ addWord: 'Afegeix una paraula',
+ allCaps: 'Ignora paraules en majúscules',
+ dic_create: 'Crea',
+ dic_delete: 'Elimina',
+ dic_field_name: 'Nom del diccionari',
+ dic_info: 'Inicialment el diccionari d\'usuari s\'emmagatzema en una galeta. De totes maneres, les galetes tenen la mida limitada. Quan el diccionari creix massa, llavors el diccionari es pot emmagatzemar al nostre servidor. Per desar el vostre diccionari personal al nostre servidor heu d.\'especificar un nom pel diccionari. Si ja heu desat un diccionari, teclegeu si us plau el seu nom i cliqueu el botó de restauració.',
+ dic_rename: 'Canvia el nom',
+ dic_restore: 'Restaura',
+ dictionariesTab: 'Diccionaris',
+ disable: 'Deshabilita SCAYT',
+ emptyDic: 'El nom del diccionari no hauria d\'estar buit.',
+ enable: 'Habilitat l\'SCAYT',
+ ignore: 'Ignora',
+ ignoreAll: 'Ignora\'ls tots',
+ ignoreDomainNames: 'Ignora els noms de domini',
+ langs: 'Idiomes',
+ languagesTab: 'Idiomes',
+ mixedCase: 'Ignora paraules amb majúscules i minúscules',
+ mixedWithDigits: 'Ignora paraules amb números ',
+ moreSuggestions: 'Més suggerències',
+ opera_title: 'No és compatible amb l\'Opera',
+ options: 'Opcions',
+ optionsTab: 'Opcions',
+ title: 'Spell Check As You Type',
+ toggle: 'Commuta l\'SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/cs.js b/devel/third-party/ckeditor/plugins/scayt/lang/cs.js
new file mode 100644
index 0000000..f95b76a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/cs.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'cs', {
+ about: 'O aplikaci SCAYT',
+ aboutTab: 'O aplikaci',
+ addWord: 'PÅidat slovo',
+ allCaps: 'Ignorovat slova tvoÅená velkými pÃsmeny',
+ dic_create: 'VytvoÅit',
+ dic_delete: 'Smazat',
+ dic_field_name: 'Název slovnÃku',
+ dic_info: 'ZpoÄátku se uživatelský slovnÃk ukládá do cookies ve vaÅ¡em prohlÞeÄi. OvÅ¡em cookies majà omezenou velikost, takže když slovnÃk dosáhne velikosti, kdy se již do cookies nevejde, může být uložen na naÅ¡em serveru. Chcete-li uložit váš osobnà slovnÃk na naÅ¡em serveru, je tÅeba slovnÃk nejdÅÃve pojmenovat. Máte-li již slovnÃk pojmenován a uložen, zadejte jeho název a klepnÄte na tlaÄÃtko Obnovit.',
+ dic_rename: 'PÅejmenovat',
+ dic_restore: 'Obnovit',
+ dictionariesTab: 'SlovnÃky',
+ disable: 'Vypnout SCAYT',
+ emptyDic: 'Název slovnÃku nesmà být prázdný.',
+ enable: 'Zapnout SCAYT',
+ ignore: 'PÅeskoÄit',
+ ignoreAll: 'PÅeskoÄit vÅ¡e',
+ ignoreDomainNames: 'Ignorovat doménová jména',
+ langs: 'Jazyky',
+ languagesTab: 'Jazyky',
+ mixedCase: 'Ignorovat slova obsahujÃcà různou velikost pÃsma',
+ mixedWithDigits: 'Ignorovat slova obsahujÃcà ÄÃsla',
+ moreSuggestions: 'VÃce návrhů',
+ opera_title: 'Toto Opera nepodporuje',
+ options: 'NastavenÃ',
+ optionsTab: 'NastavenÃ',
+ title: 'Kontrola pravopisu bÄhem psanà (SCAYT)',
+ toggle: 'VypÃnaÄ SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/cy.js b/devel/third-party/ckeditor/plugins/scayt/lang/cy.js
new file mode 100644
index 0000000..11b452c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/cy.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'cy', {
+ about: 'Ynghylch SCAYT',
+ aboutTab: 'Ynghylch',
+ addWord: 'Ychwanegu Gair',
+ allCaps: 'Anwybyddu Geiriau Nodau Uwch i Gyd',
+ dic_create: 'Creu',
+ dic_delete: 'Dileu',
+ dic_field_name: 'Enw\'r geiriadur',
+ dic_info: 'Ar y cychwyn, caiff y Geiriadur ei storio mewn Cwci. Er, mae terfyn ar faint cwcis. Pan fydd Gweiriadur Defnyddiwr yn tyfu tu hwnt i gyfyngiadau maint Cwci, caiff y geiriadur ei storio ar ein gweinydd ni. er mwyn storio eich geiriadur poersonol chi ar ein gweinydd, bydd angen i chi osod enw ar gyfer y geiriadur. Os oes geiriadur \'da chi ar ein gweinydd yn barod, teipiwch ei enw a chliciwch y botwm Adfer.',
+ dic_rename: 'Ailenwi',
+ dic_restore: 'Adfer',
+ dictionariesTab: 'Geiriaduron',
+ disable: 'Analluogi SCAYT',
+ emptyDic: 'Ni ddylai enw\'r geiriadur fod yn wag.',
+ enable: 'Galluogi SCAYT',
+ ignore: 'Anwybyddu',
+ ignoreAll: 'Anwybyddu pob',
+ ignoreDomainNames: 'Anwybyddu Enwau Parth',
+ langs: 'Ieithoedd',
+ languagesTab: 'Ieithoedd',
+ mixedCase: 'Anwybyddu Geiriau â Chymysgedd Nodau Uwch ac Is',
+ mixedWithDigits: 'Anwybyddu Geiriau â Rhifau',
+ moreSuggestions: 'Awgrymiadau pellach',
+ opera_title: 'Heb ei gynnal gan Opera',
+ options: 'Opsiynau',
+ optionsTab: 'Opsiynau',
+ title: 'Gwirio\'r Sillafu Wrth Deipio',
+ toggle: 'Togl SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/da.js b/devel/third-party/ckeditor/plugins/scayt/lang/da.js
new file mode 100644
index 0000000..0fa4cb0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/da.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'da', {
+ about: 'Om SCAYT',
+ aboutTab: 'Om',
+ addWord: 'Tilføj ord',
+ allCaps: 'Ignorer alle store bogstaver',
+ dic_create: 'Opret',
+ dic_delete: 'Slet',
+ dic_field_name: 'Navn på ordbog',
+ dic_info: 'Til start er brugerordbogen gemt i en Cookie. Dog har Cookies en begrænsning på størrelse. Når ordbogen når en bestemt størrelse kan den blive gemt på vores server. For at gemme din personlige ordbog på vores server skal du angive et navn for denne. Såfremt du allerede har gemt en ordbog, skriv navnet på denne og klik på Gendan knappen.',
+ dic_rename: 'Omdøb',
+ dic_restore: 'Gendan',
+ dictionariesTab: 'Ordbøger',
+ disable: 'Deaktivér SCAYT',
+ emptyDic: 'Ordbogsnavn må ikke være tom.',
+ enable: 'Aktivér SCAYT',
+ ignore: 'Ignorér',
+ ignoreAll: 'Ignorér alle',
+ ignoreDomainNames: 'Ignorér domænenavne',
+ langs: 'Sprog',
+ languagesTab: 'Sprog',
+ mixedCase: 'Ignorer ord med store og små bogstaver',
+ mixedWithDigits: 'Ignorér ord med numre',
+ moreSuggestions: 'Flere forslag',
+ opera_title: 'Ikke supporteret af Opera',
+ options: 'Indstillinger',
+ optionsTab: 'Indstillinger',
+ title: 'Stavekontrol mens du skriver',
+ toggle: 'Skift/toggle SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/de.js b/devel/third-party/ckeditor/plugins/scayt/lang/de.js
new file mode 100644
index 0000000..38be3eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/de.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'de', {
+ about: 'Ãber SCAYT',
+ aboutTab: 'Ãber',
+ addWord: 'Wort hinzufügen',
+ allCaps: 'Groà geschriebenen Wörter ignorieren',
+ dic_create: 'Erzeugen',
+ dic_delete: 'Löschen',
+ dic_field_name: 'Wörterbuchname',
+ dic_info: 'Anfangs wird das Benutzerwörterbuch in einem Cookie gespeichert. Allerdings sind Cookies in der GröÃe begrenzt. Wenn das Benutzerwörterbuch bis zu einem Punkt wächst, wo es nicht mehr in einem Cookie gespeichert werden kann, wird das Benutzerwörterbuch auf dem Server gespeichert. Um Ihr persönliches Wörterbuch auf dem Server zu speichern, müssen Sie einen Namen für das Wörterbuch angeben. Falls Sie schon ein gespeicherte Wörterbuch haben, geben Sie bitte dessen Namen ein und klicken Sie auf die Schaltfläche Wiederherstellen.',
+ dic_rename: 'Umbenennen',
+ dic_restore: 'Wiederherstellen',
+ dictionariesTab: 'Wörterbücher',
+ disable: 'SCAYT ausschalten',
+ emptyDic: 'Wörterbuchname sollte leer sein.',
+ enable: 'SCAYT einschalten',
+ ignore: 'Ignorieren',
+ ignoreAll: 'Alle ignorieren',
+ ignoreDomainNames: 'Domain-Namen ignorieren',
+ langs: 'Sprachen',
+ languagesTab: 'Sprachen',
+ mixedCase: 'Wörter mit gemischte Setzkasten ignorieren',
+ mixedWithDigits: 'Wörter mit Zahlen ignorieren',
+ moreSuggestions: 'Mehr Vorschläge',
+ opera_title: 'Nicht von Opera unterstützt',
+ options: 'Optionen',
+ optionsTab: 'Optionen',
+ title: 'Rechtschreibprüfung während der Texteingabe (SCAYT)',
+ toggle: 'SCAYT umschalten',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/el.js b/devel/third-party/ckeditor/plugins/scayt/lang/el.js
new file mode 100644
index 0000000..9f91497
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/el.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'el', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'ΠεÏί',
+ addWord: 'Î ÏοÏθήκη ÏÏο λεξικÏ',
+ allCaps: 'Îα αγνοοÏνÏαι ÏÎ»ÎµÏ Î¿Î¹ λÎÎ¾ÎµÎ¹Ï Ïε κεÏαλαία',
+ dic_create: 'ÎημιοÏ
Ïγία',
+ dic_delete: 'ÎιαγÏαÏή',
+ dic_field_name: 'Îνομα λεξικοÏ',
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'ÎεÏονομαÏία',
+ dic_restore: 'ÎνάκÏηÏη',
+ dictionariesTab: 'Îεξικά',
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Το Ïνομα ÏοÏ
Î»ÎµÎ¾Î¹ÎºÎ¿Ï Î´ÎµÎ½ ÏÏÎÏει να είναι κενÏ.',
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'ÎγνÏηÏε Ïο',
+ ignoreAll: 'Îα αγνοηθοÏν Ïλα',
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'ÎλÏÏÏεÏ',
+ languagesTab: 'ÎλÏÏÏεÏ',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'ΠεÏιÏÏÏÏεÏÎµÏ ÏÏοÏάÏειÏ',
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'ÎÏιλογÎÏ',
+ optionsTab: 'ÎÏιλογÎÏ',
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/en-au.js b/devel/third-party/ckeditor/plugins/scayt/lang/en-au.js
new file mode 100644
index 0000000..935e861
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/en-au.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'en-au', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT',// MISSING
+ noSuggestions: 'No suggestion' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/en-ca.js b/devel/third-party/ckeditor/plugins/scayt/lang/en-ca.js
new file mode 100644
index 0000000..25ca0ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/en-ca.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'en-ca', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT',// MISSING
+ noSuggestions: 'No suggestion' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/en-gb.js b/devel/third-party/ckeditor/plugins/scayt/lang/en-gb.js
new file mode 100644
index 0000000..e4574e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/en-gb.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'en-gb', {
+ about: 'About SCAYT',
+ aboutTab: 'About',
+ addWord: 'Add Word',
+ allCaps: 'Ignore All-Caps Words',
+ dic_create: 'Create',
+ dic_delete: 'Delete',
+ dic_field_name: 'Dictionary name',
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',
+ dic_rename: 'Rename',
+ dic_restore: 'Restore',
+ dictionariesTab: 'Dictionaries',
+ disable: 'Disable SCAYT',
+ emptyDic: 'Dictionary name should not be empty.',
+ enable: 'Enable SCAYT',
+ ignore: 'Ignore',
+ ignoreAll: 'Ignore All',
+ ignoreDomainNames: 'Ignore Domain Names',
+ langs: 'Languages',
+ languagesTab: 'Languages',
+ mixedCase: 'Ignore Words with Mixed Case',
+ mixedWithDigits: 'Ignore Words with Numbers',
+ moreSuggestions: 'More suggestions',
+ opera_title: 'Not supported by Opera',
+ options: 'Options',
+ optionsTab: 'Options',
+ title: 'Spell Check As You Type',
+ toggle: 'Toggle SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/en.js b/devel/third-party/ckeditor/plugins/scayt/lang/en.js
new file mode 100644
index 0000000..1dff11f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/en.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'en', {
+ about: 'About SCAYT',
+ aboutTab: 'About',
+ addWord: 'Add Word',
+ allCaps: 'Ignore All-Caps Words',
+ dic_create: 'Create',
+ dic_delete: 'Delete',
+ dic_field_name: 'Dictionary name',
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',
+ dic_rename: 'Rename',
+ dic_restore: 'Restore',
+ dictionariesTab: 'Dictionaries',
+ disable: 'Disable SCAYT',
+ emptyDic: 'Dictionary name should not be empty.',
+ enable: 'Enable SCAYT',
+ ignore: 'Ignore',
+ ignoreAll: 'Ignore All',
+ ignoreDomainNames: 'Ignore Domain Names',
+ langs: 'Languages',
+ languagesTab: 'Languages',
+ mixedCase: 'Ignore Words with Mixed Case',
+ mixedWithDigits: 'Ignore Words with Numbers',
+ moreSuggestions: 'More suggestions',
+ opera_title: 'Not supported by Opera',
+ options: 'Options',
+ optionsTab: 'Options',
+ title: 'Spell Check As You Type',
+ toggle: 'Toggle SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/eo.js b/devel/third-party/ckeditor/plugins/scayt/lang/eo.js
new file mode 100644
index 0000000..c1c7fea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/eo.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'eo', {
+ about: 'Pri OKDVT',
+ aboutTab: 'Pri',
+ addWord: 'Almeti la vorton',
+ allCaps: 'Ignori la vortojn skribitajn nur per Äefliteroj',
+ dic_create: 'Krei',
+ dic_delete: 'Forigi',
+ dic_field_name: 'Vortaronomo',
+ dic_info: 'Komence la vortaro de la uzanto estas konservita en kuketo. Tamen la kuketgrando estas limigita. Kiam la vortaro de la uzanto atingas grandon, kiu ne plu ebligas konservi Äin en kuketo, tiam la vortaro povas esti konservata en niaj serviloj. Por konservi vian personan vortaron en nian servilon, vi devas indiki nomon por tiu vortaro. Se vi jam havas konservitan vortaron, bonvolu entajpi ties nomon kaj alklaki la restaÅrbutonon.',
+ dic_rename: 'Renomi',
+ dic_restore: 'RestaÅri',
+ dictionariesTab: 'Vortaroj',
+ disable: 'Malebligi OKDVT',
+ emptyDic: 'La vortaronomo ne devus esti malplena.',
+ enable: 'Ebligi OKDVT',
+ ignore: 'Ignori',
+ ignoreAll: 'Ignori Äion',
+ ignoreDomainNames: 'Ignori domajnajn nomojn',
+ langs: 'Lingvoj',
+ languagesTab: 'Lingvoj',
+ mixedCase: 'Ignori vortojn kun miksa uskleco',
+ mixedWithDigits: 'Ignori vortojn kun nombroj',
+ moreSuggestions: 'Pli da sugestoj',
+ opera_title: 'Ne subportata de Opera',
+ options: 'Opcioj',
+ optionsTab: 'Opcioj',
+ title: 'OrtografiKontrolado Dum Vi Tajpas (OKDVT)',
+ toggle: 'Baskuligi OKDVT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/es.js b/devel/third-party/ckeditor/plugins/scayt/lang/es.js
new file mode 100644
index 0000000..1c66b32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/es.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'es', {
+ about: 'Acerca de Corrector',
+ aboutTab: 'Acerca de',
+ addWord: 'Añadir palabra',
+ allCaps: 'Omitir palabras en MAYÃSCULAS',
+ dic_create: 'Crear',
+ dic_delete: 'Borrar',
+ dic_field_name: 'Nombre del diccionario',
+ dic_info: 'Inicialmente el Diccionario de usuario se guarda en una Cookie. Sin embargo, las cookies están limitadas en tamaño. Cuando el diccionario crece a un punto en el que no se puede guardar en una Cookie, el diccionario puede ser almacenado en nuestro servidor. Para almacenar su diccionario personalizado en nuestro servidor debe especificar un nombre para su diccionario. Si ya ha guardado un diccionaro, por favor, escriba su nombre y pulse el botón Recuperar',
+ dic_rename: 'Renombrar',
+ dic_restore: 'Recuperar',
+ dictionariesTab: 'Diccionarios',
+ disable: 'Desactivar Corrector',
+ emptyDic: 'El nombre del diccionario no puede estar en blanco.',
+ enable: 'Activar Corrector',
+ ignore: 'Ignorar',
+ ignoreAll: 'Ignorar Todas',
+ ignoreDomainNames: 'Omitir nombres de dominio',
+ langs: 'Idiomas',
+ languagesTab: 'Idiomas',
+ mixedCase: 'Ignorar palabras con combinación de mayúsculas y minúsculas',
+ mixedWithDigits: 'Omitir palabras con números',
+ moreSuggestions: 'Más sugerencias',
+ opera_title: 'No soportado en Opera',
+ options: 'Opciones',
+ optionsTab: 'Opciones',
+ title: 'Comprobar OrtografÃa Mientras Escribe',
+ toggle: 'Cambiar Corrector',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/et.js b/devel/third-party/ckeditor/plugins/scayt/lang/et.js
new file mode 100644
index 0000000..1e7b66c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/et.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'et', {
+ about: 'SCAYT-ist lähemalt',
+ aboutTab: 'Lähemalt',
+ addWord: 'Lisa sõna',
+ allCaps: 'Läbivate suurtähtedega sõnade eiramine',
+ dic_create: 'Loo',
+ dic_delete: 'Kustuta',
+ dic_field_name: 'Sõnaraamatu nimi',
+ dic_info: 'Alguses säilitatakse kasutaja sõnaraamatut küpsises. Küpsise suurus on piiratud. Pärast sõnaraamatu kasvamist nii suureks, et see küpsisesse ei mahu, võib sõnaraamatut hoida meie serveris. Oma isikliku sõnaraamatu hoidmiseks meie serveris pead andma sellele nime. Kui sa juba oled sõnaraamatu salvestanud, sisesta selle nimi ja klõpsa taastamise nupule.',
+ dic_rename: 'Nimeta ümber',
+ dic_restore: 'Taasta',
+ dictionariesTab: 'Sõnaraamatud',
+ disable: 'SCAYT keelatud',
+ emptyDic: 'Sõnaraamatu nimi ei tohi olla tühi.',
+ enable: 'SCAYT lubatud',
+ ignore: 'Eira',
+ ignoreAll: 'Eira kõiki',
+ ignoreDomainNames: 'Domeeninimede eiramine',
+ langs: 'Keeled',
+ languagesTab: 'Keeled',
+ mixedCase: 'Tavapäratu tõstuga sõnade eiramine',
+ mixedWithDigits: 'Numbreid sisaldavate sõnade eiramine',
+ moreSuggestions: 'Veel soovitusi',
+ opera_title: 'Operas pole toetatud',
+ options: 'Valikud',
+ optionsTab: 'Valikud',
+ title: 'Ãigekirjakontroll kirjutamise ajal',
+ toggle: 'SCAYT sisse/välja lülitamine',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/eu.js b/devel/third-party/ckeditor/plugins/scayt/lang/eu.js
new file mode 100644
index 0000000..99ff257
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/eu.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'eu', {
+ about: 'SCAYTi buruz',
+ aboutTab: 'Honi buruz',
+ addWord: 'Hitza Gehitu',
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Hiztegiak',
+ disable: 'Desgaitu SCAYT',
+ emptyDic: 'Hiztegiaren izena ezin da hutsik egon.',
+ enable: 'Gaitu SCAYT',
+ ignore: 'Baztertu',
+ ignoreAll: 'Denak baztertu',
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Hizkuntzak',
+ languagesTab: 'Hizkuntzak',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'Iradokizun gehiago',
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Aukerak',
+ optionsTab: 'Aukerak',
+ title: 'Ortografia Zuzenketa Idatzi Ahala (SCAYT)',
+ toggle: 'SCAYT aldatu',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/fa.js b/devel/third-party/ckeditor/plugins/scayt/lang/fa.js
new file mode 100644
index 0000000..eeb0f89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/fa.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'fa', {
+ about: 'دربار٠SCAYT',
+ aboutTab: 'دربارÙ',
+ addWord: 'Ø§ÙØ²Ùد٠Word',
+ allCaps: 'ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ ÙÙ
Ù Ú©ÙØ§Ù-ÙØ§ÚÙÙØ§',
+ dic_create: 'Ø§ÛØ¬Ø§Ø¯',
+ dic_delete: 'ØØ°Ù',
+ dic_field_name: 'ÙØ§Ù
دÛÚ©Ø´ÙØ±Û',
+ dic_info: 'در ابتدا دÛÚ©Ø´ÙØ±Û کاربر در Ú©ÙÚ©Û Ø°Ø®ÛØ±Ù Ù
ÛØ´Ùد. با اÛÙ ØØ§ÙØ Ú©ÙÚ©ÛÙØ§ در Ø§ÙØ¯Ø§Ø²Ù Ù
ØØ¯Ùد Ø´Ø¯ÙØ§Ùد. ÙÙØªÛ ک٠دÛÚ©Ø´ÙØ±Û Ú©Ø§Ø±Ø¨Ø±Û Ø¨Ø²Ø±Ú¯ Ù
ÛØ´Ùد ٠ب٠ÙÙØ·ÙØ§Û Ú©Ù ÙÙ
ÛØªÙØ§ÙØ¯ در Ú©ÙÚ©Û Ø°Ø®ÛØ±Ù Ø´ÙØ¯Ø پس از آ٠دÛÚ©Ø´ÙØ±Û Ù
Ù
ک٠است بر رÙÛ Ø³Ø±ÙØ± Ù
ا Ø°Ø®ÛØ±Ù Ø´ÙØ¯. Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù دÛÚ©Ø´ÙØ±Û Ø´Ø®ØµÛ Ø´Ù
ا بر رÙÛ Ø³Ø±ÙØ± Ù
Ø§Ø Ø¨Ø§ÛØ¯ ÛÚ© ÙØ§Ù
Ø¨Ø±Ø§Û Ø¯ÛÚ©Ø´ÙØ±Û Ø®ÙØ¯ Ù
شخص ÙÙ
اÛÛØ¯. اگر Ø´Ù
ا ÙØ¨Ùا ÛÚ© دÛÚ©Ø´ÙØ±Û رÙÛ Ø³Ø±ÙØ± Ù
ا Ø°Ø®ÛØ±Ù Ú©Ø±Ø¯ÙØ§ÛØ¯Ø ÙØ·Ùا ÙØ§Ù
Ø¢ÙØ±Ø§ درج ٠رÙÛ Ø¯Ú©Ù
Ù Ø¨Ø§Ø²ÛØ§Ùت Ú©ÙÛÚ© ÙÙ
اÛÛØ¯.',
+ dic_rename: 'تغÛÛØ± ÙØ§Ù
',
+ dic_restore: 'Ø¨Ø§Ø²ÛØ§Ùت',
+ dictionariesTab: 'دÛÚ©Ø´ÙØ±ÛÙØ§',
+ disable: 'ØºÛØ±ÙØ¹Ø§ÙØ³Ø§Ø²Û SCAYT',
+ emptyDic: 'ÙØ§Ù
دÛÚ©Ø´ÙØ±Û ÙØ¨Ø§Ûد خاÙÛ Ø¨Ø§Ø´Ø¯.',
+ enable: 'ÙØ¹Ø§ÙØ³Ø§Ø²Û SCAYT',
+ ignore: 'Ø¹Ø¨ÙØ± کردÙ',
+ ignoreAll: 'Ø¹Ø¨ÙØ± کرد٠از ÙÙ
Ù',
+ ignoreDomainNames: 'Ø¹Ø¨ÙØ± از ÙØ§Ù
ÙØ§Û داÙ
ÙÙ',
+ langs: 'زباÙÙØ§',
+ languagesTab: 'زباÙÙØ§',
+ mixedCase: 'Ø¹Ø¨ÙØ± از Ú©ÙÙ
Ø§ØªÛ Ù
رکب از ØØ±Ù٠بزرگ Ù Ú©ÙÚÚ©',
+ mixedWithDigits: 'Ø¹Ø¨ÙØ± از Ú©ÙÙ
ات ب٠ÙÙ
را٠عدد',
+ moreSuggestions: 'Ù¾ÛØ´ÙÙØ§Ø¯ÙØ§Û Ø¨ÛØ´ØªØ±',
+ opera_title: 'ØªÙØ³Ø· اپرا Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÙ
ÛØ´Ùد',
+ options: 'گزÛÙÙÙØ§',
+ optionsTab: 'گزÛÙÙÙØ§',
+ title: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§Û تاÛÙ¾ Ø´Ù
ا',
+ toggle: 'ضاÙ
Ù SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/fi.js b/devel/third-party/ckeditor/plugins/scayt/lang/fi.js
new file mode 100644
index 0000000..a3cf6cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/fi.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'fi', {
+ about: 'Tietoja oikoluvusta kirjoitetaessa',
+ aboutTab: 'Tietoa',
+ addWord: 'Lisää sana',
+ allCaps: 'Ohita sanat, jotka on kirjoitettu kokonaan isoilla kirjaimilla',
+ dic_create: 'Luo',
+ dic_delete: 'Poista',
+ dic_field_name: 'Sanakirjan nimi',
+ dic_info: 'Oletuksena sanakirjat tallennetaan evästeeseen, mutta evästeiden koko on kuitenkin rajallinen. Sanakirjan kasvaessa niin suureksi, ettei se enää mahdu evästeeseen, sanakirja täytyy tallentaa palvelimellemme. Tallentaaksesi sanakirjasi palvelimellemme tulee sinun antaa sille nimi. Jos olet jo tallentanut sanakirjan, anna sen nimi ja klikkaa Palauta-painiketta',
+ dic_rename: 'Nimeä uudelleen',
+ dic_restore: 'Palauta',
+ dictionariesTab: 'Sanakirjat',
+ disable: 'Poista käytöstä oikoluku kirjoitetaessa',
+ emptyDic: 'Sanakirjan nimi on annettava.',
+ enable: 'Ota käyttöön oikoluku kirjoitettaessa',
+ ignore: 'Ohita',
+ ignoreAll: 'Ohita kaikki',
+ ignoreDomainNames: 'Ohita verkkotunnukset',
+ langs: 'Kielet',
+ languagesTab: 'Kielet',
+ mixedCase: 'Ohita sanat, joissa on sekoitettu isoja ja pieniä kirjaimia',
+ mixedWithDigits: 'Ohita sanat, joissa on numeroita',
+ moreSuggestions: 'Lisää ehdotuksia',
+ opera_title: 'Opera ei tue tätä ominaisuutta',
+ options: 'Asetukset',
+ optionsTab: 'Asetukset',
+ title: 'Oikolue kirjoitettaessa',
+ toggle: 'Vaihda oikoluku kirjoittaessa tilaa',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/fo.js b/devel/third-party/ckeditor/plugins/scayt/lang/fo.js
new file mode 100644
index 0000000..0707ea1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/fo.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'fo', {
+ about: 'Um SCAYT',
+ aboutTab: 'Um',
+ addWord: 'Legg orð afturat',
+ allCaps: 'Loyp orð við bert stórum stavum um',
+ dic_create: 'Upprætta nýggja',
+ dic_delete: 'Strika',
+ dic_field_name: 'Orðabókanavn',
+ dic_info: 'Upprunaliga er brúkara-orðabókin goymd à eini cookie à tÃnum egna kaga. Men hesar cookies eru avmarkaðar à stødd. Tá brúkara-orðabókin veksur seg ov stóra til eina cookie, so er møguligt at goyma hana á ambætara okkara. Fyri at goyma persónligu orðabókina á ambætaranum eigur tú at velja eitt navn til tÃna skuffu. Hevur tú longu goymt eina orðabók, so vinarliga skriva navnið og klikk á knøttin Endurskapa.',
+ dic_rename: 'Broyt',
+ dic_restore: 'Endurskapa',
+ dictionariesTab: 'Orðabøkur',
+ disable: 'Nokta SCAYT',
+ emptyDic: 'Heiti á orðabók eigur ikki at vera tómt.',
+ enable: 'Loyv SCAYT',
+ ignore: 'Ignorera',
+ ignoreAll: 'Ignorera alt',
+ ignoreDomainNames: 'loyp økisnøvn um',
+ langs: 'Tungumál',
+ languagesTab: 'Tungumál',
+ mixedCase: 'Loyp orð við blandaðum smáum og stórum stavum um',
+ mixedWithDigits: 'Loyp orð við tølum um',
+ moreSuggestions: 'Fleiri tilráðingar',
+ opera_title: 'Ikki stuðlað à Opera',
+ options: 'Uppseting',
+ optionsTab: 'Uppseting',
+ title: 'Kanna stavseting, meðan tú skrivar',
+ toggle: 'Toggle SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/scayt/lang/fr-ca.js
new file mode 100644
index 0000000..175e387
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/fr-ca.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'fr-ca', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/fr.js b/devel/third-party/ckeditor/plugins/scayt/lang/fr.js
new file mode 100644
index 0000000..38ecd9d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/fr.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'fr', {
+ about: 'A propos de SCAYT',
+ aboutTab: 'Ã propos de',
+ addWord: 'Ajouter le mot',
+ allCaps: 'Ignorer les mots entièrement en majuscules',
+ dic_create: 'Créer',
+ dic_delete: 'Effacer',
+ dic_field_name: 'Nom du dictionnaire',
+ dic_info: 'Initialement, le dictionnaire de l\'utilisateur est stocké dans un cookie. Cependant, les cookies sont limités en taille. Quand le dictionnaire atteint une taille qu\'il n\'est plus possible de stocker dans un cookie, il peut alors être stocké sur nos serveurs. Afin de stocker votre dictionnaire personnel sur nos serveurs, vous devez spécifier un nom pour ce dictionnaire. Si vous avez déjà un dictionnaire stocké, merci de taper son nom puis cliquer sur Restaurer pour le récupérer.',
+ dic_rename: 'Renommer',
+ dic_restore: 'Restaurer',
+ dictionariesTab: 'Dictionnaires',
+ disable: 'Désactiver SCAYT',
+ emptyDic: 'Le nom du dictionnaire ne devrait pas être vide.',
+ enable: 'Activer SCAYT',
+ ignore: 'Ignorer',
+ ignoreAll: 'Ignorer Tout',
+ ignoreDomainNames: 'Ignorer les noms de domaines',
+ langs: 'Langues',
+ languagesTab: 'Langues',
+ mixedCase: 'Ignorer les mots à casse multiple',
+ mixedWithDigits: 'Ignorer les mots contenant des chiffres',
+ moreSuggestions: 'Plus de suggestions',
+ opera_title: 'Non supporté par Opera',
+ options: 'Options',
+ optionsTab: 'Options',
+ title: 'Vérification de l\'Orthographe en Cours de Frappe (SCAYT)',
+ toggle: 'Activer/Désactiver SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/gl.js b/devel/third-party/ckeditor/plugins/scayt/lang/gl.js
new file mode 100644
index 0000000..b78bfe1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/gl.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'gl', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/gu.js b/devel/third-party/ckeditor/plugins/scayt/lang/gu.js
new file mode 100644
index 0000000..89b89e9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/gu.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'gu', {
+ about: 'SCAYT વિષà«',
+ aboutTab: 'વિષà«',
+ addWord: 'શબà«àª¦ àªàª®à«àª°àªµà«',
+ allCaps: 'àªàª²-àªà«àªªà«àª¸ વરà«àª¡ àªà«àª¡à« દà«.',
+ dic_create: 'બનાવવà«àª',
+ dic_delete: 'àªàª¾àª¢à« નાàªàªµà«àª',
+ dic_field_name: 'શબà«àª¦àªà«àª¶ નામ',
+ dic_info: 'પà«àª¹àª²àª¾ User Dictionary, Cookie તરà«àªà« સà«àªà«àª° થાય àªà«. પણ Cookie નૠસમતા àªàªà« àªà«. àªàª¯àª¾àª°à« User Dictionary, Cookie તરà«àªà« સà«àªà«àª° ના àªàª°à« શàªàª¾àª¯, તà«àª¯àª¾àª°à« તૠàª
મારા સરà«àªµàª° પર સà«àªà«àª° થાય àªà«. તમારૠવà«àª¯àª¤àª¿àªàª¤ ડà«àªàª¸à«àª¨àª°à« નૠસરà«àªµàª° પર સà«àªà«àª° àªàª°àªµàª¾ માàªà« તમારૠતà«àª¨à«àª નામ àªàªªàªµà«àª પડશà«. àªà« તમૠતમારૠડà«àªàª¸à«àª¨àª°à« નà«àª નામ àªàªªà«àª²à«àª હà«àª¯ તૠતમૠરિસà«àªà«àª° બàªàª¨ àªà«àª²à«àª àªàª°à« શàªà«.',
+ dic_rename: 'નવà«àª નામ àªàªªàªµà«àª',
+ dic_restore: 'પાàªà«àª ',
+ dictionariesTab: 'શબà«àª¦àªà«àª¶',
+ disable: 'SCAYT ડિસà«àª¬àª² àªàª°àªµà«àª',
+ emptyDic: 'ડિàªà«àª¸àª¨àª°à«àª¨à«àª નામ àªàª¾àª²à« ના હà«àª¯.',
+ enable: 'SCAYT àªàª¨à«àª¬àª² àªàª°àªµà«àª',
+ ignore: 'àªàªà«àª¨à«àª°',
+ ignoreAll: 'બધા àªàªà«àª¨à«àª° ',
+ ignoreDomainNames: 'ડà«àª®à«àª¨ નામ àªà«àª¡à« દà«.',
+ langs: 'àªàª¾àª·àª¾àª',
+ languagesTab: 'àªàª¾àª·àª¾',
+ mixedCase: 'મિàªà«àª¸ àªà«àª¸ વરà«àª¡ àªà«àª¡à« દà«.',
+ mixedWithDigits: 'àªàªàªàª¡àª¾ વાળા શબà«àª¦ àªà«àª¡à« દà«.',
+ moreSuggestions: 'વધારૠવિàªàª²à«àªªà«',
+ opera_title: 'àªàªªà«àª°àª¾àª®àª¾àª સપà«àª°à«àª નથà«',
+ options: 'વિàªàª²à«àªªà«',
+ optionsTab: 'વિàªàª²à«àªªà«',
+ title: 'àªàª¾àªàªª àªàª°àª¤àª¾ સà«àªªà«àª² તપાસà«',
+ toggle: 'SCAYT àªà«àªàª²',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/he.js b/devel/third-party/ckeditor/plugins/scayt/lang/he.js
new file mode 100644
index 0000000..b10e6d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/he.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'he', {
+ about: '××××ת SCAYT',
+ aboutTab: '××××ת',
+ addWord: '××ספת ××××',
+ allCaps: '×תע×× ×××××× ×©×× ××ת××ת××× ×××××ת',
+ dic_create: '×צ×ר×',
+ dic_delete: '××××§×',
+ dic_field_name: '×©× ××××××',
+ dic_info: '××ת××× ××××× ××שת×ש ×××××¡× ××¢××××, ×× ×¢××××ת ××××××ת ×××§××. ××שר ×××××× ××××¢ ××××× ×× ××× ××× × ×××× ××ת×××¡× ××¢××××, ×××××× ×¦×¨×× ××ת×××¡× ××©×¨×ª× ×. ××©× ×× ×¢××× ×תת ×©× ××××××. ×× ××ר ×ש ×× ××××× ××××ס×, ×ש ×××× ×ס ×ת ש×× ××××××¥ ×¢× ×פת×ר ×ש×××ר.',
+ dic_rename: 'ש×× ×× ×©×',
+ dic_restore: 'ש×××ר',
+ dictionariesTab: '×××××',
+ disable: '××× SCAYT',
+ emptyDic: '×ש ××××ר ×××××.',
+ enable: '×פשר SCAYT',
+ ignore: '×תע×××ת',
+ ignoreAll: '×תע×××ת ××××',
+ ignoreDomainNames: '×תע×× ×ש××ת ×ת××',
+ langs: 'שפ×ת',
+ languagesTab: 'שפ×ת',
+ mixedCase: '×תע×× ×××××× ×¢× ××ת××ת ×××××ת ××§×× ×ת ××××',
+ mixedWithDigits: '×תע×× ×××××× ×¢× ×ספר××',
+ moreSuggestions: '×צע×ת × ×ספ×ת',
+ opera_title: '×× ×××× ××פ××¤× ××פר×',
+ options: '×פשר×××ת',
+ optionsTab: '×פשר×××ת',
+ title: '×××קת ×××ת ×××× ×ת××× (SCAYT)',
+ toggle: 'ש×× ×× SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/hi.js b/devel/third-party/ckeditor/plugins/scayt/lang/hi.js
new file mode 100644
index 0000000..c2c24a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/hi.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'hi', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/hr.js b/devel/third-party/ckeditor/plugins/scayt/lang/hr.js
new file mode 100644
index 0000000..38b1237
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/hr.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'hr', {
+ about: 'O SCAYT',
+ aboutTab: 'O SCAYT',
+ addWord: 'Dodaj rijeÄ',
+ allCaps: 'Ignoriraj rijeÄi s velikim slovima',
+ dic_create: 'Napravi',
+ dic_delete: 'Obriši',
+ dic_field_name: 'Naziv rijeÄnika',
+ dic_info: 'Na poÄetku se korisniÄki RijeÄnik sprema u Cookie. Nažalost, veliÄina im je ograniÄena. Kada korisniÄki RijeÄnik naraste preko te veliÄine, RijeÄnik Äe biti smjeÅ¡ten na naÅ¡ server. Kako bi se korisniÄki RijeÄnik spremio na naÅ¡ server morate odabrati naziv VaÅ¡eg RijeÄnika. Ukoliko ste veÄ prije spremali RijeÄnik na naÅ¡e servere, unesite naziv RijeÄnika i pritisnite na Povrati.',
+ dic_rename: 'Promijeni naziv',
+ dic_restore: 'Povrati',
+ dictionariesTab: 'RjeÄnici',
+ disable: 'OnemoguÄi SCAYT',
+ emptyDic: 'Naziv rjeÄnika ne smije biti prazno.',
+ enable: 'OmoguÄi SCAYT',
+ ignore: 'Zanemari',
+ ignoreAll: 'Zanemari sve',
+ ignoreDomainNames: 'Ignoriraj nazive domena',
+ langs: 'Jezici',
+ languagesTab: 'Jezici',
+ mixedCase: 'Ignoriraj rijeÄi s mijeÅ¡anim slovima',
+ mixedWithDigits: 'Ignoriraj rijeÄi s brojevima',
+ moreSuggestions: 'Više prijedloga',
+ opera_title: 'Nije podržano u Operi',
+ options: 'Opcije',
+ optionsTab: 'Opcije',
+ title: 'Provjeri pravopis tijekom tipkanja (SCAYT)',
+ toggle: 'OmoguÄu/OnemoguÄi SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/hu.js b/devel/third-party/ckeditor/plugins/scayt/lang/hu.js
new file mode 100644
index 0000000..f42177a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/hu.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'hu', {
+ about: 'SCAYT névjegy',
+ aboutTab: 'Névjegy',
+ addWord: 'Szó hozzáadása',
+ allCaps: 'Nagybetűs szavak kihagyása',
+ dic_create: 'Létrehozás',
+ dic_delete: 'Törlés',
+ dic_field_name: 'Szótár neve',
+ dic_info: 'Kezdetben a felhasználói szótár böngészÅ sütiben tárolódik. Azonban a sütik maximális mérete korlátozott. Amikora a szótár akkora lesz, hogy már sütiben nem lehet tárolni, akkor a szótárat tárolhatja a szerveren is. Ehhez egy nevet kell megadni a szótárhoz. Amennyiben már van szerveren tárolt szótára, adja meg a nevét és kattintson a visszaállÃtás gombra.',
+ dic_rename: 'Ãtnevezés',
+ dic_restore: 'VisszaállÃtás',
+ dictionariesTab: 'Szótár',
+ disable: 'SCAYT letiltása',
+ emptyDic: 'A szótár nevét meg kell adni.',
+ enable: 'SCAYT engedélyezése',
+ ignore: 'Kihagy',
+ ignoreAll: 'Ãsszes kihagyása',
+ ignoreDomainNames: 'Domain nevek kihagyása',
+ langs: 'Nyelvek',
+ languagesTab: 'Nyelvek',
+ mixedCase: 'Kis és nagybetűt is tartalmazó szavak kihagyása',
+ mixedWithDigits: 'Számokat tartalmazó szavak kihagyása',
+ moreSuggestions: 'További javaslatok',
+ opera_title: 'Az Opera nem támogatja',
+ options: 'BeállÃtások',
+ optionsTab: 'BeállÃtások',
+ title: 'HelyesÃrás ellenÅrzés gépelés közben',
+ toggle: 'SCAYT kapcsolása',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/is.js b/devel/third-party/ckeditor/plugins/scayt/lang/is.js
new file mode 100644
index 0000000..1651d09
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/is.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'is', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/it.js b/devel/third-party/ckeditor/plugins/scayt/lang/it.js
new file mode 100644
index 0000000..f82743c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/it.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'it', {
+ about: 'About COMS',
+ aboutTab: 'Info',
+ addWord: 'Aggiungi Parola',
+ allCaps: 'Ignora Parole in maiuscolo',
+ dic_create: 'Crea',
+ dic_delete: 'Cancella',
+ dic_field_name: 'Nome del dizionario',
+ dic_info: 'Inizialmente il dizionario utente è memorizzato in un Cookie. I Cookie però hanno una dimensioni massima limitata. Quando il dizionario utente creasce a tal punto da non poter più essere memorizzato in un Cookie, allora il dizionario può essere memorizzato sul nostro server. Per memorizzare il proprio dizionario personale sul nostro server, è necessario specificare un nome per il proprio dizionario. Se avete già memorizzato un dizionario, inserite il nome che gli avete dato e premete il pulsante Ripristina.',
+ dic_rename: 'Rinomina',
+ dic_restore: 'Ripristina',
+ dictionariesTab: 'Dizionari',
+ disable: 'Disabilita COMS',
+ emptyDic: 'Il nome del dizionario non può essere vuoto.',
+ enable: 'Abilita COMS',
+ ignore: 'Ignora',
+ ignoreAll: 'Ignora tutti',
+ ignoreDomainNames: 'Ignora nomi di dominio',
+ langs: 'Lingue',
+ languagesTab: 'Lingue',
+ mixedCase: 'Ignora parole con maiuscole e minuscole',
+ mixedWithDigits: 'Ignora parole con numeri',
+ moreSuggestions: 'Altri suggerimenti',
+ opera_title: 'Non supportato da Opera',
+ options: 'Opzioni',
+ optionsTab: 'Opzioni',
+ title: 'Controllo Ortografico Mentre Scrivi',
+ toggle: 'Inverti abilitazione SCOMS',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ja.js b/devel/third-party/ckeditor/plugins/scayt/lang/ja.js
new file mode 100644
index 0000000..d2c01f1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ja.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ja', {
+ about: 'SCAYTï¾ï¾ï½°ï½¼ï¾ï½®ï¾',
+ aboutTab: 'ãã¼ã¸ã§ã³æ
å ±',
+ addWord: 'èªå¥è¿½å ',
+ allCaps: 'å
¨ã¦å¤§æåã®åèªãç¡è¦',
+ dic_create: 'ç»é²',
+ dic_delete: 'åé¤',
+ dic_field_name: 'è¾æ¸å',
+ dic_info: 'å§ãã¦ã¼ã¶ã¼ãã£ã¬ã¯ããªã¯ãCookieã«ä¿åããã¾ããä½ã Cookie ã¯ãµã¤ãºã«å¶éãããã¾ããã¦ã¼ã¶ã¼ãã£ã¬ã¯ããªãCookieã«ä¿åã§ããªããµã¤ãºã«å°éããã¨ãã£ã¬ã¯ããªã¯ãµã¼ãã¼ä¸ã«ä¿åããã¾ããå人ã®ãã£ã¬ã¯ããªããµã¼ãã¼ä¸ã«ä¿åããã«ã¯ããã£ã¬ã¯ããªåãæç¤ºããå¿
è¦ãããã¾ããããæ¢ã«ä¿åããããã£ã¬ã¯ããªãããå ´åããã®ååãå
¥åããå
ã«æ»ããã¿ã³ãæ¼ãã¦ãã ããã',
+ dic_rename: 'åå夿´',
+ dic_restore: 'å
ã«æ»ã',
+ dictionariesTab: 'è¾æ¸',
+ disable: 'SCAYTç¡å¹',
+ emptyDic: 'è¾æ¸åã¯å¿
ãå
¥åãã¦ãã ãã',
+ enable: 'SCAYTæå¹',
+ ignore: 'ç¡è¦',
+ ignoreAll: 'ãã¹ã¦ç¡è¦',
+ ignoreDomainNames: 'ãã¡ã¤ã³åãç¡è¦',
+ langs: 'è¨èª',
+ languagesTab: 'è¨èª',
+ mixedCase: '大æåå°æåæ··å¨ã®åèªãç¡è¦',
+ mixedWithDigits: 'æ°åä»ãåèªãç¡è¦',
+ moreSuggestions: 'ä»ã®åè£',
+ opera_title: 'Operaã§ã¯ãµãã¼ãããã¾ãã',
+ options: 'ãªãã·ã§ã³',
+ optionsTab: 'ãªãã·ã§ã³',
+ title: 'ã¹ãã«ãã§ãã¯è¨å®(SCAYT)',
+ toggle: 'SCAYTåæ¿',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ka.js b/devel/third-party/ckeditor/plugins/scayt/lang/ka.js
new file mode 100644
index 0000000..e2d9506
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ka.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ka', {
+ about: 'SCAYT-áá¡ á¨áá¡áá®áá',
+ aboutTab: 'ááá¤áá áááªáá',
+ addWord: 'á¡áá¢á§ááá¡ ááááá¢ááá',
+ allCaps: 'áááá áá¡ááááá ááá¬áá ááá á¡áá¢á§ááááá¡ á£áá£áááááá§áá¤á',
+ dic_create: 'á¨áá¥ááá',
+ dic_delete: 'á¬áá¨áá',
+ dic_field_name: 'ááá¥á¡áááááá¡ á¡áá®ááá',
+ dic_info: 'áááááááá ááááá áááá®ááá ááááá¡ ááá¥á¡ááááá áááá®ááá Cookie-á¨á. áá£ááªá Cookie á¨ááá¦á£áá£ááá ááááá¨á. á ááªá ááá¥á¡áááááá¡ áááá ááááá áááá á¡áááááá áá¡ á¨ááá«áááá á¨áááááá®áá á©áááá¡ á¡áá ááá áá. á©áááá¡ á¡áá ááá áá ááá¥á¡ááááá¡ á¨áá¡áááá®áá á£ááá ááá£ááááá ááá¡á á¡áá®ááá. áᣠá£áá ááá¥áá ááá¥á¡ááááá, ááá áá¤áá ááá¡á á¡áá®ááá áá áááááá áá "áááá á£ááááá¡" á¦ááááá¡.',
+ dic_rename: 'ááááá á¥áááá',
+ dic_restore: 'áááá á£áááá',
+ dictionariesTab: 'ááá¥á¡ááááááá',
+ disable: 'SCAYT-áá¡ ááááá ááá',
+ emptyDic: 'ááá¥á¡áááááá¡ á¡áá¢á§áá áá á£ááá áá§áá¡ áªáá áááá.',
+ enable: 'SCAYT-áá¡ á©áá ááá',
+ ignore: 'á£áá£áááááá§áá¤á',
+ ignoreAll: 'á§ááááá¡ á£áá£áááááá§áá¤á',
+ ignoreDomainNames: 'áááááá£á á á¡áá®áááááá¡ á£áá£áááááá§áá¤á',
+ langs: 'ááááá',
+ languagesTab: 'ááááá',
+ mixedCase: 'á¨áá áá£áá áá¡áááááá á¡áá¢á§ááááá¡ á£áá£áááááá§áá¤á',
+ mixedWithDigits: 'áªáá¤á áááááá á¡áá¢á§ááááá¡ á£áá£áááááá§áá¤á',
+ moreSuggestions: 'ááá¢á á¨ááááááááááá',
+ opera_title: 'áá áá áá®áá ááááá ááá Opera-á¡ áááá ',
+ options: 'ááá áááá¢á ááá',
+ optionsTab: 'ááá áááá¢á ááá',
+ title: 'ááá ááá¬áá áá¡ á¨áááá¬áááá áá áá¤áá¡áá¡',
+ toggle: 'SCAYT-áá¡ ááááá ááá',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/km.js b/devel/third-party/ckeditor/plugins/scayt/lang/km.js
new file mode 100644
index 0000000..7bd001c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/km.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'km', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ko.js b/devel/third-party/ckeditor/plugins/scayt/lang/ko.js
new file mode 100644
index 0000000..5419be6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ko.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ko', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ku.js b/devel/third-party/ckeditor/plugins/scayt/lang/ku.js
new file mode 100644
index 0000000..b1dc68a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ku.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ku', {
+ about: 'Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ SCAYT',
+ aboutTab: 'Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ',
+ addWord: 'Ø²ÛØ§Ø¯Ú©Ø±Ø¯ÙÛ ÙÙØ´Ù',
+ allCaps: 'پشتگÙÛØ®Ø³ØªÙÛ ÙØ´Ø§ÙÙÛ Ù¾ÛÚ©ÙØ§ØªÙÙÙ ÙÙÙ¾ÛØªÛ Ú¯ÙÙØ±Ù',
+ dic_create: 'درÙÙØ³ØªÚ©Ø±Ø¯Ù',
+ dic_delete: 'سÚÛÙÙÙÙ',
+ dic_field_name: 'ÙØ§ÙÛ ÙÙØ±ÙÙÙÚ¯',
+ dic_info: 'ÙÙØ¨ÙÚÛÙÙØ¯Ø§ ÙÙØ±ÙÙÙÚ¯Û Ø¨ÙکارÙÛÙÙØ± Ú©Ûگاکرد٠کراÙÙ ÙÙ Ø´ÙکرÛÚ©Ù Cookie, ÙÙØ±ÚÛÙÛÙ Ø¨ÛØª Ø´ÙÚ©ÛØ±Ú©Ù سÙÙÙØ±Ø¯Ø§Ø± کراÙÙ ÙÙ ÙÙØ¨Ø§Ø±Ù Ú©ÛگاکردÙ.کاتÛÙ ÙÙØ±ÙÙÙÚ¯Û Ø¨ÙکارÙÛÙÙØ± Ú¯ÙÛØ´ØªÙ ئÙÙ
خاڵÙÛ Ú©ÙÙØ§ØªÙØ§ÙØ±Ûت Ø²ÛØ§ØªØ± Ú©ÛÚ¯Ø§Ú©Ø±Ø¯Ù Ø¨Ú©Ø±ÛØª ÙÙ Ø´ÙکرÛÚ©ÙØ ئÙÙØ³Ø§ ÙÙØ±ÙÙÙÚ¯ÙÚ©Ù Ù¾ÛÙÛØ³ØªÙ Ú©ÛÚ¯Ø§Ø¨Ú©Ø±ÛØª ÙÙ ÚØ§ÚÙÚ©ÙÛ Ø¦ÛÙ
Ù. Ø¨Û Ú©ÛگاکردÙÛ Ø²Ø§ÙÛØ§Ø±Û ØªØ§ÛØ¨ÙØªÛ ÙÙØ±ÙÙÙÚ¯ÙÚ©Ù ÙÙ ÚØ§ÚÙÚ©ÙÛ Ø¦ÛÙ
Ù, Ù¾ÛÙÛØ³ØªÙ ÙØ§ÙÛÙ ÙÙڵبÚÛØ±Ûت Ø¨Û ÙÙØ±ÙÙÙÚ¯ÙÚ©Ù. Ú¯ÙØ± ØªÛ ÙÙØ±ÙÙÙÚ¯ÛÚ©Û Ú©ÛÚ¯Ø§Ú©Ø±Ø§ÙØª ÙÙÛÙ, تکاÛÙ ÙØ§ÙÛ ÙÙØ±ÙÙÙÚ¯Ùک٠بÙÙÙØ³Ù ÙÙ Ú©ÙÛÚ©Û Ø¯ÙÚ¯Ù
ÙÛ Ú¯ÙÚØ§ÙدÙÙÙ٠بکÙ.',
+ dic_rename: 'Ú¯ÛÚÛÙÛ ÙØ§Ù',
+ dic_restore: 'Ú¯ÙÚØ§ÙدÙÙÙÙ',
+ dictionariesTab: 'ÙÙØ±ÙÙÙÚ¯ÙکاÙ',
+ disable: 'ÙØ§ÚØ§ÙØ§Ú©Ú©Ø±Ø¯ÙÛ SCAYT',
+ emptyDic: 'ÙØ§ÙÛ ÙÙØ±ÙÙÙÚ¯ ÙØ§Ø¨Ûت Ø®Ø§ÚµÛ Ø¨ÛØª.',
+ enable: 'ÚØ§ÙاککردÙÛ SCAYT',
+ ignore: 'پشتگÙÛØ®Ø³ØªÙ',
+ ignoreAll: 'پشتگÙÛØ®Ø³ØªÙÛ ÙÙÙ
ÙÙÛ',
+ ignoreDomainNames: 'پشتگÙÛØ®Ø³ØªÙÛ Ø¯ÛÙ
ÙÛÙ',
+ langs: 'زÙ
اÙÙکاÙ',
+ languagesTab: 'زÙ
اÙÙکاÙ',
+ mixedCase: 'پشتگÙÛØ®Ø³ØªÙÛ ÙØ´Ø§ÙÙÛ Ù¾ÛÚ©ÙØ§ØªÙÙÙ ÙÙÙ¾ÛØªÛ Ú¯ÙÙØ±Ù٠بÚÙÙÙ',
+ mixedWithDigits: 'پشتگÙÛØ®Ø³ØªÙÛ ÙØ´Ø§ÙÙÛ Ù¾ÛÚ©ÙØ§ØªÙÙÙ ÙÙÚÙ
ارÙ',
+ moreSuggestions: 'Ù¾ÛØ´ÙÛØ§Ø±Û Ø²ÛØ§ØªØ±',
+ opera_title: 'پشتÛÙØ§ÙÛ ÙÙکراÙÙ ÙÙÙØ§ÛÙÙ Opera',
+ options: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù',
+ optionsTab: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù',
+ title: 'پشکÙÛÙÛ ÙÙÙØ³Ù ÙÙÚ©Ø§ØªÛ ÙÙÙØ³ÛÙ',
+ toggle: 'Ú¯ÛÚÛÙÛ SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/lt.js b/devel/third-party/ckeditor/plugins/scayt/lang/lt.js
new file mode 100644
index 0000000..e0dcaf5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/lt.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'lt', {
+ about: 'Apie SCAYT',
+ aboutTab: 'Apie',
+ addWord: 'PridÄti žodį',
+ allCaps: 'Ignoruoti visas didžiÄ
sias raides',
+ dic_create: 'Sukurti',
+ dic_delete: 'Ištrinti',
+ dic_field_name: 'Žodyno pavadinimas',
+ dic_info: 'Paprastai žodynas yra saugojamas sausainÄliuose (cookies), kurių dydis, bet kokiu atveju, yra apribotas. Esant sausainÄlių apimties perviÅ¡iui, viskas bus saugoma serveryje. Jei norite iÅ¡ kart viskÄ
saugoti serveryje, turite sugalvoti žodynui pavadinimÄ
. Jei jau turite žodynÄ
, įraÅ¡ykite pavadinimÄ
ir nuspauskite Atstatyti mygtukÄ
.',
+ dic_rename: 'Pervadinti',
+ dic_restore: 'Atstatyti',
+ dictionariesTab: 'Žodynai',
+ disable: 'Išjungti SCAYT',
+ emptyDic: 'Žodyno vardas neturÄtų bÅ«ti tuÅ¡Äias.',
+ enable: 'Įjungti SCAYT',
+ ignore: 'Ignoruoti',
+ ignoreAll: 'Ignoruoti viskÄ
',
+ ignoreDomainNames: 'Ignoruoti domenų vardus',
+ langs: 'Kalbos',
+ languagesTab: 'Kalbos',
+ mixedCase: 'Ignoruoti maišyto dydžio raides',
+ mixedWithDigits: 'Ignoruoti raides su skaiÄiais',
+ moreSuggestions: 'Daugiau patarimų',
+ opera_title: 'Nepalaikoma narÅ¡yklÄje Opera',
+ options: 'Parametrai',
+ optionsTab: 'Parametrai',
+ title: 'Tikrinti klaidas kai rašoma',
+ toggle: 'Perjungti SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/lv.js b/devel/third-party/ckeditor/plugins/scayt/lang/lv.js
new file mode 100644
index 0000000..f376fe6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/lv.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'lv', {
+ about: 'Par SCAYT',
+ aboutTab: 'Par',
+ addWord: 'Pievienot vÄrdu',
+ allCaps: 'IgnorÄt vÄrdus ar lielajiem burtiem',
+ dic_create: 'Izveidot',
+ dic_delete: 'DzÄst',
+ dic_field_name: 'VÄrdnÄ«cas nosaukums',
+ dic_info: 'SÄkumÄ lietotÄja vÄrdnÄ«ca tiek glabÄta Cookie. DiemžÄl, Cookie ir ierobežots izmÄrs. Kad vÄrdnÄ«ca sasniegs izmÄru, ka to vairs nevar glabÄt Cookie, tÄ tiks noglabÄta uz servera. Lai saglabÄtu personÄ«go vÄrdnÄ«cu uz jÅ«su servera, jums jÄnorÄda tÄs nosaukums. Ja jÅ«s jau esiet noglabÄjuÅ¡i vÄrdnÄ«cu, lÅ«dzu ierakstiet tÄs nosaukum un nospiediet Atjaunot pogu.',
+ dic_rename: 'PÄrsaukt',
+ dic_restore: 'Atjaunot',
+ dictionariesTab: 'VÄrdnÄ«cas',
+ disable: 'AtslÄgt SCAYT',
+ emptyDic: 'VÄrdnÄ«cas nosaukums nevar bÅ«t tukÅ¡s.',
+ enable: 'IeslÄgt SCAYT',
+ ignore: 'IgnorÄt',
+ ignoreAll: 'IgnorÄt visu',
+ ignoreDomainNames: 'IgnorÄt domÄnu nosaukumus',
+ langs: 'Valodas',
+ languagesTab: 'Valodas',
+ mixedCase: 'IgnorÄt vÄrdus ar jauktu reÄ£istru burtiem',
+ mixedWithDigits: 'IgnorÄt vÄrdus ar skaitļiem',
+ moreSuggestions: 'VairÄk ieteikumi',
+ opera_title: 'Opera neatbalsta',
+ options: 'UzstÄdÄ«jumi',
+ optionsTab: 'UzstÄdÄ«jumi',
+ title: 'PÄrbaudÄ«t gramatiku rakstot',
+ toggle: 'PÄrslÄgt SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/mk.js b/devel/third-party/ckeditor/plugins/scayt/lang/mk.js
new file mode 100644
index 0000000..de5aa83
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/mk.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'mk', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/mn.js b/devel/third-party/ckeditor/plugins/scayt/lang/mn.js
new file mode 100644
index 0000000..bb7cf01
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/mn.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'mn', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Ðий болгоÑ
',
+ dic_delete: 'УÑÑгаÑ
',
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'ÐÑÑийг ÑолиÑ
',
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Ð¢Ð¾Ð»Ñ Ð±Ð¸Ñгүүд',
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Ð¥Ñлүүд',
+ languagesTab: 'Ð¥Ñлүүд',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'СонголÑ',
+ optionsTab: 'СонголÑ',
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ms.js b/devel/third-party/ckeditor/plugins/scayt/lang/ms.js
new file mode 100644
index 0000000..9191106
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ms.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ms', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/nb.js b/devel/third-party/ckeditor/plugins/scayt/lang/nb.js
new file mode 100644
index 0000000..fbee53b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/nb.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'nb', {
+ about: 'Om SCAYT',
+ aboutTab: 'Om',
+ addWord: 'Legg til ord',
+ allCaps: 'Ikke kontroller ord med kun store bokstaver',
+ dic_create: 'Opprett',
+ dic_delete: 'Slett',
+ dic_field_name: 'Ordboknavn',
+ dic_info: 'Brukerordboken lagres først i en informasjonskapsel på din maskin, men det er en begrensning på hvor mye som kan lagres her. Når ordboken blir for stor til å lagres i en informasjonskapsel, vil vi i stedet lagre ordboken på vår server. For å lagre din personlige ordbok på vår server, burde du velge et navn for ordboken din. Hvis du allerede har lagret en ordbok, vennligst skriv inn ordbokens navn og klikk på Gjenopprett-knappen.',
+ dic_rename: 'Gi nytt navn',
+ dic_restore: 'Gjenopprett',
+ dictionariesTab: 'Ordbøker',
+ disable: 'Slå av SCAYT',
+ emptyDic: 'Ordboknavn bør ikke være tom.',
+ enable: 'Slå på SCAYT',
+ ignore: 'Ignorer',
+ ignoreAll: 'Ignorer Alle',
+ ignoreDomainNames: 'Ikke kontroller domenenavn',
+ langs: 'Språk',
+ languagesTab: 'Språk',
+ mixedCase: 'Ikke kontroller ord med blandet små og store bokstaver',
+ mixedWithDigits: 'Ikke kontroller ord som inneholder tall',
+ moreSuggestions: 'Flere forslag',
+ opera_title: 'Ikke støttet av Opera',
+ options: 'Valg',
+ optionsTab: 'Valg',
+ title: 'Stavekontroll mens du skriver',
+ toggle: 'Veksle SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/nl.js b/devel/third-party/ckeditor/plugins/scayt/lang/nl.js
new file mode 100644
index 0000000..025986d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/nl.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'nl', {
+ about: 'Over SCAYT',
+ aboutTab: 'Over',
+ addWord: 'Woord toevoegen',
+ allCaps: 'Negeer woorden helemaal in hoofdletters',
+ dic_create: 'Aanmaken',
+ dic_delete: 'Verwijderen',
+ dic_field_name: 'Naam woordenboek',
+ dic_info: 'Initieel wordt het gebruikerswoordenboek opgeslagen in een cookie. Cookies zijn echter beperkt in grootte. Zodra het gebruikerswoordenboek het punt bereikt waarop het niet meer in een cookie opgeslagen kan worden, dan wordt het woordenboek op de server opgeslagen. Om je persoonlijke woordenboek op je eigen server op te slaan, moet je een mapnaam opgeven. Indien je al een woordenboek hebt opgeslagen, typ dan de naam en klik op de Terugzetten knop.',
+ dic_rename: 'Hernoemen',
+ dic_restore: 'Terugzetten',
+ dictionariesTab: 'Woordenboeken',
+ disable: 'SCAYT uitschakelen',
+ emptyDic: 'De naam van het woordenboek mag niet leeg zijn.',
+ enable: 'SCAYT inschakelen',
+ ignore: 'Negeren',
+ ignoreAll: 'Alles negeren',
+ ignoreDomainNames: 'Negeer domeinnamen',
+ langs: 'Talen',
+ languagesTab: 'Talen',
+ mixedCase: 'Negeer woorden met hoofd- en kleine letters',
+ mixedWithDigits: 'Negeer woorden met cijfers',
+ moreSuggestions: 'Meer suggesties',
+ opera_title: 'Niet ondersteund door Opera',
+ options: 'Opties',
+ optionsTab: 'Opties',
+ title: 'Controleer de spelling tijdens het typen',
+ toggle: 'SCAYT in/uitschakelen',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/no.js b/devel/third-party/ckeditor/plugins/scayt/lang/no.js
new file mode 100644
index 0000000..05059dd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/no.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'no', {
+ about: 'Om SCAYT',
+ aboutTab: 'Om',
+ addWord: 'Legg til ord',
+ allCaps: 'Ikke kontroller ord med kun store bokstaver',
+ dic_create: 'Opprett',
+ dic_delete: 'Slett',
+ dic_field_name: 'Ordboknavn',
+ dic_info: 'Brukerordboken lagres først i en informasjonskapsel på din maskin, men det er en begrensning på hvor mye som kan lagres her. Når ordboken blir for stor til å lagres i en informasjonskapsel, vil vi i stedet lagre ordboken på vår server. For å lagre din personlige ordbok på vår server, burde du velge et navn for ordboken din. Hvis du allerede har lagret en ordbok, vennligst skriv inn ordbokens navn og klikk på Gjenopprett-knappen.',
+ dic_rename: 'Gi nytt navn',
+ dic_restore: 'Gjenopprett',
+ dictionariesTab: 'Ordbøker',
+ disable: 'Slå av SCAYT',
+ emptyDic: 'Ordboknavn bør ikke være tom.',
+ enable: 'Slå på SCAYT',
+ ignore: 'Ignorer',
+ ignoreAll: 'Ignorer Alle',
+ ignoreDomainNames: 'Ikke kontroller domenenavn',
+ langs: 'Språk',
+ languagesTab: 'Språk',
+ mixedCase: 'Ikke kontroller ord med blandet små og store bokstaver',
+ mixedWithDigits: 'Ikke kontroller ord som inneholder tall',
+ moreSuggestions: 'Flere forslag',
+ opera_title: 'Ikke støttet av Opera',
+ options: 'Valg',
+ optionsTab: 'Valg',
+ title: 'Stavekontroll mens du skriver',
+ toggle: 'Veksle SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/pl.js b/devel/third-party/ckeditor/plugins/scayt/lang/pl.js
new file mode 100644
index 0000000..49c3ae4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/pl.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'pl', {
+ about: 'Informacje o SCAYT',
+ aboutTab: 'Informacje o SCAYT',
+ addWord: 'Dodaj sÅowo',
+ allCaps: 'Ignoruj wyrazy pisane dużymi literami',
+ dic_create: 'Utwórz',
+ dic_delete: 'UsuÅ',
+ dic_field_name: 'Nazwa sÅownika',
+ dic_info: 'PoczÄ
tkowo sÅownik użytkownika przechowywany jest w cookie. Pliki cookie majÄ
jednak ograniczonÄ
pojemnoÅÄ. JeÅli sÅownik użytkownika przekroczy wielkoÅÄ dopuszczalnÄ
dla pliku cookie, możliwe jest przechowanie go na naszym serwerze. W celu zapisania sÅownika na serwerze niezbÄdne jest nadanie mu nazwy. JeÅli sÅownik zostaÅ już zapisany na serwerze, wystarczy podaÄ jego nazwÄ i nacisnÄ
Ä przycisk PrzywróÄ.',
+ dic_rename: 'ZmieÅ nazwÄ',
+ dic_restore: 'PrzywróÄ',
+ dictionariesTab: 'SÅowniki',
+ disable: 'WyÅÄ
cz SCAYT',
+ emptyDic: 'Nazwa sÅownika nie może byÄ pusta.',
+ enable: 'WÅÄ
cz SCAYT',
+ ignore: 'Ignoruj',
+ ignoreAll: 'Ignoruj wszystkie',
+ ignoreDomainNames: 'Ignoruj nazwy domen',
+ langs: 'JÄzyki',
+ languagesTab: 'JÄzyki',
+ mixedCase: 'Ignoruj wyrazy pisane dużymi i maÅymi literami',
+ mixedWithDigits: 'Ignoruj wyrazy zawierajÄ
ce cyfry',
+ moreSuggestions: 'WiÄcej sugestii',
+ opera_title: 'Funkcja nie jest obsÅugiwana przez przeglÄ
darkÄ Opera',
+ options: 'Opcje',
+ optionsTab: 'Opcje',
+ title: 'Sprawdź pisowniÄ podczas pisania (SCAYT)',
+ toggle: 'PrzeÅÄ
cz SCAYT',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/pt-br.js b/devel/third-party/ckeditor/plugins/scayt/lang/pt-br.js
new file mode 100644
index 0000000..3172629
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/pt-br.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'pt-br', {
+ about: 'Sobre a correção ortográfica durante a digitação',
+ aboutTab: 'Sobre',
+ addWord: 'Adicionar palavra',
+ allCaps: 'Ignorar palavras maiúsculas',
+ dic_create: 'Criar',
+ dic_delete: 'Excluir',
+ dic_field_name: 'Nome do Dicionário',
+ dic_info: 'Inicialmente, o dicionário do usuário fica armazenado em um Cookie. Porém, Cookies tem tamanho limitado, portanto quand o dicionário do usuário atingir o tamanho limite poderá ser armazenado no nosso servidor. Para armazenar seu dicionário pessoal no nosso servidor deverá especificar um nome para ele. Se já tiver um dicionário armazenado por favor especifique o seu nome e clique em Restaurar.',
+ dic_rename: 'Renomear',
+ dic_restore: 'Restaurar',
+ dictionariesTab: 'Dicionários',
+ disable: 'Desabilitar correção ortográfica durante a digitação',
+ emptyDic: 'O nome do dicionário não deveria estar vazio.',
+ enable: 'Habilitar correção ortográfica durante a digitação',
+ ignore: 'Ignorar',
+ ignoreAll: 'Ignorar todas',
+ ignoreDomainNames: 'Ignorar nomes de domÃnio',
+ langs: 'Idiomas',
+ languagesTab: 'Idiomas',
+ mixedCase: 'Ignorar palavras com maiúsculas e minúsculas misturadas',
+ mixedWithDigits: 'Ignorar palavras com números',
+ moreSuggestions: 'Mais sugestões',
+ opera_title: 'Não suportado no Opera',
+ options: 'Opções',
+ optionsTab: 'Opções',
+ title: 'Correção ortográfica durante a digitação',
+ toggle: 'Ativar/desativar correção ortográfica durante a digitação',
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/pt.js b/devel/third-party/ckeditor/plugins/scayt/lang/pt.js
new file mode 100644
index 0000000..ad9dba7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/pt.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'pt', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ro.js b/devel/third-party/ckeditor/plugins/scayt/lang/ro.js
new file mode 100644
index 0000000..1c56b16
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ro.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ro', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT', // MISSING
+ noSuggestions: 'No suggestion'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ru.js b/devel/third-party/ckeditor/plugins/scayt/lang/ru.js
new file mode 100644
index 0000000..4d4d6bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ru.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ru', {
+ about: 'Ð SCAYT',
+ aboutTab: 'Ð SCAYT',
+ addWord: 'ÐобавиÑÑ Ñлово',
+ allCaps: 'ÐгноÑиÑоваÑÑ Ñлова из заглавнÑÑ
бÑкв',
+ dic_create: 'СоздаÑÑ',
+ dic_delete: 'УдалиÑÑ',
+ dic_field_name: 'Ðазвание ÑловаÑÑ',
+ dic_info: 'ÐзнаÑалÑно, полÑзоваÑелÑÑкий ÑловаÑÑ Ñ
ÑаниÑÑÑ Ð² cookie, коÑоÑÑе огÑаниÑÐµÐ½Ñ Ð² ÑазмеÑе. Ðогда ÑловаÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²ÑÑаÑÑÐ°ÐµÑ Ð´Ð¾ ÑазмеÑов, ÑÑо его невозможно Ñ
ÑаниÑÑ Ð² cookie, он пеÑеноÑиÑÑÑ Ð½Ð° Ñ
Ñанение на Ð½Ð°Ñ ÑеÑвеÑ. ЧÑÐ¾Ð±Ñ ÑоÑ
ÑаниÑÑ Ð²Ð°Ñ ÑловаÑÑ Ð½Ð° наÑем ÑеÑвеÑе, вам ÑледÑÐµÑ ÑказаÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ваÑего ÑловаÑÑ. ÐÑли Ñ Ð²Ð°Ñ Ñже бÑл ÑловаÑÑ, коÑоÑÑй Ð²Ñ ÑоÑ
ÑанÑли на наÑем ÑеÑвеÑе, Ñо ÑкажиÑе здеÑÑ ÐµÐ³Ð¾ название и нажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ ÐоÑÑÑановиÑÑ.',
+ dic_rename: 'ÐеÑеименоваÑÑ',
+ dic_restore: 'ÐоÑÑÑановиÑÑ',
+ dictionariesTab: 'СловаÑи',
+ disable: 'ÐÑклÑÑиÑÑ SCAYT',
+ emptyDic: 'ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑказаÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ÑловаÑÑ.',
+ enable: 'ÐклÑÑиÑÑ SCAYT',
+ ignore: 'ÐÑопÑÑÑиÑÑ',
+ ignoreAll: 'ÐÑопÑÑÑиÑÑ Ð²ÑÑ',
+ ignoreDomainNames: 'ÐгноÑиÑоваÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð½Ñе имена',
+ langs: 'ЯзÑки',
+ languagesTab: 'ЯзÑки',
+ mixedCase: 'ÐгноÑиÑоваÑÑ Ñлова из бÑкв в Ñазном ÑегиÑÑÑе',
+ mixedWithDigits: 'ÐгноÑиÑоваÑÑ Ñлова, ÑодеÑжаÑие ÑиÑÑÑ',
+ moreSuggestions: 'ÐÑÑ Ð²Ð°ÑианÑÑ',
+ opera_title: 'Ðе поддеÑживаеÑÑÑ Opera',
+ options: 'ÐаÑÑÑойки',
+ optionsTab: 'ÐаÑамеÑÑÑ',
+ title: 'ÐÑовеÑка оÑÑогÑаÑии по меÑе ввода (SCAYT)',
+ toggle: 'ÐеÑеклÑÑиÑÑ SCAYT',
+ noSuggestions: 'ÐÐµÑ Ð²Ð°ÑианÑов'
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/sk.js b/devel/third-party/ckeditor/plugins/scayt/lang/sk.js
new file mode 100644
index 0000000..fe9c0a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/sk.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'sk', {
+ about: 'O KPPP (Kontrola pravopisu poÄas pÃsania)',
+ aboutTab: 'O',
+ addWord: 'Pridať slovo',
+ allCaps: 'IgnorovaÅ¥ slová pÃsané veľkými pÃsmenami',
+ dic_create: 'Vytvoriť',
+ dic_delete: 'Vymazať',
+ dic_field_name: 'Názov slovnÃka',
+ dic_info: 'SpoÄiatku je užÃvateľský slovnÃk uložený v cookie. Cookie vÅ¡ak majú obmedzenú veľkosÅ¥. KeÄ užÃvateľský slovnÃk narastie do bodu, kedy nemôže byÅ¥ uložený v cookie, potom musà byÅ¥ slovnÃk uložený na naÅ¡om serveri. Pre uloženie vášho osobného slovnÃka na náš server by ste mali zadaÅ¥ názov pre váš slovnÃk. Ak už máte uložený slovnÃk, prosÃme, napÃÅ¡te jeho názov a kliknite tlaÄidlo ObnoviÅ¥.',
+ dic_rename: 'Premenovať',
+ dic_restore: 'Obnoviť',
+ dictionariesTab: 'SlovnÃky',
+ disable: 'ZakázaÅ¥ KPPP (Kontrola pravopisu poÄas pÃsania)',
+ emptyDic: 'Názov slovnÃka by nemal byÅ¥ prázdny.',
+ enable: 'PovoliÅ¥ KPPP (Kontrola pravopisu poÄas pÃsania)',
+ ignore: 'Ignorovať',
+ ignoreAll: 'Ignorovať všetko',
+ ignoreDomainNames: 'Iznorovať názvy domén',
+ langs: 'Jazyky',
+ languagesTab: 'Jazyky',
+ mixedCase: 'IgnorovaÅ¥ slová so smieÅ¡anými veľkými a malými pÃsmenami',
+ mixedWithDigits: 'IgnorovaÅ¥ slová s ÄÃslami',
+ moreSuggestions: 'Viac návrhov',
+ opera_title: 'Nepodporované Operou',
+ options: 'Možnosti',
+ optionsTab: 'Možnosti',
+ title: 'Kontrola pravopisu poÄas pÃsania',
+ toggle: 'Prepnúť KPPP (Kontrola pravopisu poÄas pÃsania)',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/sl.js b/devel/third-party/ckeditor/plugins/scayt/lang/sl.js
new file mode 100644
index 0000000..671e253
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/sl.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'sl', {
+ about: 'O storitvi SCAYT',
+ aboutTab: 'O storitvi',
+ addWord: 'Dodaj besedo',
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Slovarji',
+ disable: 'OnemogoÄi SCAYT',
+ emptyDic: 'Ime slovarja ne more biti prazno.',
+ enable: 'OmogoÄi SCAYT',
+ ignore: 'Prezri',
+ ignoreAll: 'Prezri vse',
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Jeziki',
+ languagesTab: 'Jeziki',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'VeÄ predlogov',
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Možnosti',
+ optionsTab: 'Možnosti',
+ title: 'Ärkovanje med tipkanjem',
+ toggle: 'Preklopi SCAYT',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/scayt/lang/sr-latn.js
new file mode 100644
index 0000000..66ca602
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/sr-latn.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'sr-latn', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT',// MISSING
+ noSuggestions: 'No suggestion' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/sr.js b/devel/third-party/ckeditor/plugins/scayt/lang/sr.js
new file mode 100644
index 0000000..d75b07b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/sr.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'sr', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT',// MISSING
+ noSuggestions: 'No suggestion' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/sv.js b/devel/third-party/ckeditor/plugins/scayt/lang/sv.js
new file mode 100644
index 0000000..667e294
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/sv.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'sv', {
+ about: 'Om SCAYT',
+ aboutTab: 'Om',
+ addWord: 'Lägg till ord',
+ allCaps: 'Ignorera alla ord med enbart versaler',
+ dic_create: 'Skapa',
+ dic_delete: 'Ta bort',
+ dic_field_name: 'Ordlistans namn',
+ dic_info: 'Inledningsvis lagras ordlistan i en cookie. När ordlista växer till en punkt där det inte kan lagras i en cookie, lagras den pÃ¥ vÃ¥r server. För att lagra din personliga ordlista pÃ¥ vÃ¥r server du ska ange ett namn för din ordbok. Om du redan har en lagrad ordbok, skriv namnet och klicka pÃ¥ knappen Ã
terställ.',
+ dic_rename: 'Byt namn',
+ dic_restore: 'Ã
terställ',
+ dictionariesTab: 'Ordlistor',
+ disable: 'Inaktivera SCAYT',
+ emptyDic: 'Ordlistans namn får ej vara tomt.',
+ enable: 'Aktivera SCAYT',
+ ignore: 'Ignorera',
+ ignoreAll: 'Ignorera alla',
+ ignoreDomainNames: 'Ignorera domännamn',
+ langs: 'Språk',
+ languagesTab: 'Språk',
+ mixedCase: 'Ignorera ord med blandat shiftläge',
+ mixedWithDigits: 'Ignorera ord med nummer',
+ moreSuggestions: 'Fler förslag',
+ opera_title: 'Stöds ej av Opera',
+ options: 'Inställningar',
+ optionsTab: 'Inställningar',
+ title: 'Stavningskontroll medan du skriver',
+ toggle: 'Växla SCAYT',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/th.js b/devel/third-party/ckeditor/plugins/scayt/lang/th.js
new file mode 100644
index 0000000..5691e32
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/th.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'th', {
+ about: 'About SCAYT', // MISSING
+ aboutTab: 'About', // MISSING
+ addWord: 'Add Word', // MISSING
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'Dictionaries', // MISSING
+ disable: 'Disable SCAYT', // MISSING
+ emptyDic: 'Dictionary name should not be empty.', // MISSING
+ enable: 'Enable SCAYT', // MISSING
+ ignore: 'Ignore', // MISSING
+ ignoreAll: 'Ignore All', // MISSING
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'Languages', // MISSING
+ languagesTab: 'Languages', // MISSING
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'More suggestions', // MISSING
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'Options', // MISSING
+ optionsTab: 'Options', // MISSING
+ title: 'Spell Check As You Type', // MISSING
+ toggle: 'Toggle SCAYT',// MISSING
+ noSuggestions: 'No suggestion' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/tr.js b/devel/third-party/ckeditor/plugins/scayt/lang/tr.js
new file mode 100644
index 0000000..803cabf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/tr.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'tr', {
+ about: 'SCAYT\'ı hakkında',
+ aboutTab: 'Hakkında',
+ addWord: 'Kelime Ekle',
+ allCaps: 'Tüm büyük küçük kelimeleri yoksay',
+ dic_create: 'OluÅtur',
+ dic_delete: 'Sil',
+ dic_field_name: 'Sözlük adı',
+ dic_info: 'BaÅlangıçta Kullanıcı SözlüÄü bir çerezde saklanır. Ancak, Ãerezler boyutu sınırlıdır. Kullanıcı SözlüÄü, çerezin içinde saklanamayacaÄı bir noktada, bizim sunucularımızın içindeki sözlükte saklanabilir. Bizim sunucu üzerinde kiÅisel Sözlük saklamanız için, SözlüÄe bir ad belirtmelisiniz. EÄer zaten bir saklı Sözlük varsa, lütfen adını yazın ve Geri Yükle düÄmesini tıklayın.',
+ dic_rename: 'Yeniden adlandır',
+ dic_restore: 'Geri al',
+ dictionariesTab: 'Sözlükler',
+ disable: 'SCAYT\'ı pasifleÅtir',
+ emptyDic: 'Sözlük adı boŠolamaz.',
+ enable: 'SCAYT\'ı etkinleÅtir',
+ ignore: 'Yoksay',
+ ignoreAll: 'Tümünü Yoksay',
+ ignoreDomainNames: 'Domain adlarını yoksay',
+ langs: 'Diller',
+ languagesTab: 'Diller',
+ mixedCase: 'KarıÅık büyüklük ile Sözcükler yoksay',
+ mixedWithDigits: 'Sayılarla Kelimeler yoksay',
+ moreSuggestions: 'Daha fazla öneri',
+ opera_title: 'Opera tarafından desteklenmemektedir',
+ options: 'Seçenekler',
+ optionsTab: 'Seçenekler',
+ title: 'GirmiÅ olduÄunuz kelime denetimi',
+ toggle: 'SCAYT\'ı deÄiÅtir',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/ug.js b/devel/third-party/ckeditor/plugins/scayt/lang/ug.js
new file mode 100644
index 0000000..bdaeeaf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/ug.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'ug', {
+ about: 'Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ Ú¾ÛÙÙÙØ¯Û',
+ aboutTab: 'Ú¾ÛÙÙÙØ¯Û',
+ addWord: 'Ø³ÛØ² ÙÙØ´',
+ allCaps: 'ÚÙÚ Ú¾ÛØ±Ù¾ØªÛ ÙÛØ²ÙÙØºØ§Ù Ú¾ÛÙ
Ù
Û Ø³ÛØ²Ú¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ dic_create: 'ÙÛØ±',
+ dic_delete: 'ئÛÚÛØ±',
+ dic_field_name: 'ÙÛØºÛت ئاتÙ',
+ dic_info: 'باشÙÙÙÙØ´ØªØ§ Ø¦ÙØ´ÙÛØªÙÛÚÙ ÙÛØºÙت٠Cookie غا ساÙÙÙÙÙØ¯Û ئÛÙ
Ù
ا Cookie ÙÙÚ Ø³ÙØºÙÙ
Ù ÚÛÙÙÙ٠بÙÙØºØ§ÚÙØ§Ø Ø¦ÙØ´ÙÛØªÙÛÚÙ ÙÛØºÙت٠ÙÛÙ¾ÙÙÙÙ¾ Cookie ÚÛÙÙÙÙ
ÙØ³ÙدÙÙ Ø¦ÛØ´ÙÙ¾ ÙÛØªÙÛÙØ¯Û ساÙÙÙØºÙÙ٠بÙÙÙ
Ø§ÙØ¯ÛØ Ø¨Û ÚØ§ØºØ¯Ø§ ÙÛØºÙتÙÚÙØ²ÙÙ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ
ÙØ²ØºØ§ ساÙÙÙØ³ÙÚÙØ² بÙÙÙØ¯Û. Ø´ÛØ®Ø³ÙÙ ÙÛØºÙتÙÚÙØ²ÙÙ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ
ÙØ²ØºØ§ ساÙÙÙÙ
اÙÚ٠بÙÙØ³ÙÚÙØ² ÙÛØºÙتÙÚÙØ²Ú¯Û ئاتتÙÙ Ø¨ÙØ±ÙÙ ÙÙÙÛÚØ ئÛÚ¯ÛØ± Ù
ÛÙØ§Ø²ÙÙ
ØªÛØ±ÙÙ
ÙØ²Ø¯Ø§ Ø³ÙØ²ÙÙÚ ÙÛØºÙتÙÚÙØ²Ø¯ÙÙ Ø¨ÙØ±Ø³Ù بÙÙØ³Ø§ ÙÛØºÛت ئاتÙÙÙ ÙÙØ±Ú¯ÛزÛÙ¾ Ø¦ÛØ³ÙÙÚ¯Û ÙØ§ÙØªÛØ± تÙÙ¾ÚÙØ³ÙÙÙ Ø¨ÛØ³ÙÚ.',
+ dic_rename: 'ئات Ø¦ÛØ²Ú¯Ûرت',
+ dic_restore: 'Ø¦ÛØ³ÙÙÚ¯Û ÙÛÙØªÛر',
+ dictionariesTab: 'ÙÛØºÛت',
+ disable: 'Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ÙÙ ÚÛÙÙÛ',
+ emptyDic: 'ÙÛØºÛت Ø¦Ø§ØªÙ Ø¨ÙØ´ ÙØ§ÙÙ
Ø§ÙØ¯Û',
+ enable: 'Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ÙÙ ÙÙØ²ØºØ§Øª',
+ ignore: 'Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ ignoreAll: 'Ú¾ÛÙ
Ù
ÙØ³ÙÚ¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ ignoreDomainNames: 'Ø¯Ø§Ø¦ÙØ±Û Ø¦Ø§ØªÙØºØ§ Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ langs: 'تÙÙ',
+ languagesTab: 'تÙÙ',
+ mixedCase: 'ÚÙÚ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ بÙÙÛ٠ئارÙÙØ§Ø´ ÙÛØ²ÙÙØºØ§Ù Ø³ÛØ²Ú¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ mixedWithDigits: 'سا٠بار Ø³ÛØ²Ú¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ moreSuggestions: 'ØªÛØ®ÙÙ
Û ÙÛÙ¾ ئÙÙ
ÙØ§ تÛÛØ³ÙÙÛØ³Ù',
+ opera_title: 'Opera ØªÙØ±ÙÛØ±Ú¯ÛÙÙ ÙÙÙÙÙÙ
Ø§ÙØ¯Û',
+ options: 'تاÙÙØ§ÙÙ
ا',
+ optionsTab: 'تاÙÙØ§ÙÙ
ا',
+ title: 'Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´Ûر',
+ toggle: 'Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ÙÙ ÛØ§ÙÙØªÙÙÙ ØªÙØ®ØªØ§Øª/ÙÙØ²ØºØ§Øª',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/uk.js b/devel/third-party/ckeditor/plugins/scayt/lang/uk.js
new file mode 100644
index 0000000..871062c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/uk.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'uk', {
+ about: 'ÐÑо SCAYT',
+ aboutTab: 'ÐÑо SCAYT',
+ addWord: 'ÐодаÑи Ñлово',
+ allCaps: 'ÐÑопÑÑÑиÑи пÑопиÑÐ½Ñ Ñлова',
+ dic_create: 'СÑвоÑиÑи',
+ dic_delete: 'ÐидалиÑи',
+ dic_field_name: 'Ðазва Ñловника',
+ dic_info: 'Як пÑавило, коÑиÑÑÑваÑÑÐºÑ Ñловники збеÑÑгаÑÑÑÑÑ Ñ cookie-ÑайлаÑ
. Ðднак, cookie-Ñайли маÑÑÑ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° ÑозмÑÑ. ЯкÑо коÑиÑÑÑваÑÑкий Ñловник зÑоÑÑÐ°Ñ Ð² обÑÑÐ·Ñ Ð½Ð°ÑÑÑлÑки, Ñо вже не може бÑÑи збеÑежений Ñ cookie-ÑайлÑ, ÑÐ¾Ð´Ñ Ð¹Ð¾Ð³Ð¾ можна збеÑегÑи на наÑÐ¾Ð¼Ñ ÑеÑвеÑÑ. Щоб збеÑегÑи ÐÐ°Ñ Ð¿ÐµÑÑоналÑний Ñловник на наÑÐ¾Ð¼Ñ ÑеÑвеÑÑ Ð½ÐµÐ¾Ð±Ñ
Ñдно вказаÑи Ð½Ð°Ð·Ð²Ñ Ñловника. ЯкÑо Ðи вже збеÑÑгали Ñловник на ÑеÑвеÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ Ð½Ð°Ð·Ð²Ñ Ð·Ð±ÐµÑеженого Ñловника Ñ Ð½Ð°ÑиÑнÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÑ ÐÑдновиÑи.',
+ dic_rename: 'ÐеÑейменÑваÑи',
+ dic_restore: 'ÐÑдновиÑи',
+ dictionariesTab: 'Словники',
+ disable: 'ÐимкнÑÑи SCAYT',
+ emptyDic: 'Ðазва Ñловника повинна бÑÑи вказана.',
+ enable: 'ÐвÑмкнÑÑи SCAYT',
+ ignore: 'ÐÑопÑÑÑиÑи',
+ ignoreAll: 'ÐÑопÑÑÑиÑи вÑÑ',
+ ignoreDomainNames: 'ÐÑопÑÑÑиÑи Ð´Ð¾Ð¼ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸',
+ langs: 'Ðови',
+ languagesTab: 'Ðови',
+ mixedCase: 'ÐÑопÑÑÑиÑи Ñлова Ð·Ñ Ð·Ð¼ÑÑаним ÑегÑÑÑÑом',
+ mixedWithDigits: 'ÐÑопÑÑÑиÑи Ñлова, Ñо мÑÑÑÑÑÑ ÑиÑÑи',
+ moreSuggestions: 'ÐÑлÑÑе ваÑÑанÑÑв',
+ opera_title: 'Ðе пÑдÑÑимÑÑÑÑÑÑ Ð² Opera',
+ options: 'ÐпÑÑÑ',
+ optionsTab: 'ÐпÑÑÑ',
+ title: 'ÐеÑеÑÑÑка оÑÑогÑаÑÑÑ Ð¿Ð¾ мÑÑÑ Ð½Ð°Ð±Ð¾ÑÑ',
+ toggle: 'ÐеÑемкнÑÑи SCAYT',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/vi.js b/devel/third-party/ckeditor/plugins/scayt/lang/vi.js
new file mode 100644
index 0000000..ac91e5b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/vi.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'vi', {
+ about: 'Thông tin vỠSCAYT',
+ aboutTab: 'Thông tin',
+ addWord: 'Thêm từ',
+ allCaps: 'Không phân biá»t chữ HOA chữ thưá»ng',
+ dic_create: 'Tạo',
+ dic_delete: 'Xóa',
+ dic_field_name: 'Tên từ Äiá»n',
+ dic_info: 'Ban Äầu, từ Äiá»n ngưá»i dùng ÄÆ°á»£c lưu trữ trong má»t cookie. Tuy nhiên, kÃch thưá»c cookie bá» giá»i hạn. Khi ngưá»i sá» dụng từ Äiá»n phát triá»n Äến Äiá»m không thá» ÄÆ°á»£c lưu trữ trong cookie, từ Äiá»n sẽ ÄÆ°á»£c lưu trữ trên máy chá»§ cá»§a chúng tôi. Äá» lưu trữ từ Äiá»n cá nhân cá»§a bạn trên máy chá»§ cá»§a chúng tôi, bạn nên xác Äá»nh má»t tên cho từ Äiá»n cá»§a bạn. Nếu bạn Äã có má»t cuá»n từ Äiá»n ÄÆ°á»£c lưu trữ, xin vui lòng gõ tên cá»§a nó và nhấn và o nút Khôi phục.',
+ dic_rename: 'Thay tên',
+ dic_restore: 'Phục há»i',
+ dictionariesTab: 'Từ Äiá»n',
+ disable: 'Tắt SCAYT',
+ emptyDic: 'Tên cá»§a từ Äiá»n không ÄÆ°á»£c Äá» trá»ng.',
+ enable: 'Báºt SCAYT',
+ ignore: 'Bá» qua',
+ ignoreAll: 'BỠqua tất cả',
+ ignoreDomainNames: 'Bá» qua tên miá»n',
+ langs: 'Ngôn ngữ',
+ languagesTab: 'Tab ngôn ngữ',
+ mixedCase: 'Không phân biá»t loại chữ',
+ mixedWithDigits: 'Không phân biá»t chữ và sá»',
+ moreSuggestions: 'Äá» xuất thêm',
+ opera_title: 'Không há» trợ trên trình duyá»t Opera',
+ options: 'Tùy chá»n',
+ optionsTab: 'Tùy chá»n',
+ title: 'Kiá»m tra chÃnh tả ngay khi gõ chữ (SCAYT)',
+ toggle: 'Báºt tắt SCAYT',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/scayt/lang/zh-cn.js
new file mode 100644
index 0000000..2c66b38
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/zh-cn.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'zh-cn', {
+ about: 'å
³äºå³æ¶æ¼åæ£æ¥',
+ aboutTab: 'å
³äº',
+ addWord: 'æ·»å åè¯',
+ allCaps: 'å¿½ç¥ææå¤§ååè¯',
+ dic_create: 'å建',
+ dic_delete: 'å é¤',
+ dic_field_name: 'åå
¸åç§°',
+ dic_info: 'ä¸å¼å§ç¨æ·è¯å
¸å¨åå¨ Cookie ä¸, 使¯ Cookies ç容鿝æéç, å½ç¨æ·è¯å
¸å¢é¿å°è¶
åº Cookie éå¶æ¶å°±æ æ³åå¨åäº, è¿æ¶æ¨å¯ä»¥å°è¯å
¸å¨å尿们çæå¡å¨ä¸. è¦ææ¨ç个人è¯å
¸å°å¨å尿们çæå¡å¨ä¸çè¯, éè¦ä¸ºæ¨çè¯å
¸æå®ä¸ä¸ªåç§°, 妿æ¨å¨æä»¬çæå¡å¨ä¸å·²ç»æå¨åæä¸ä¸ªè¯å
¸, 请è¾å
¥è¯å
¸åç§°å¹¶æè¿åæé®.',
+ dic_rename: 'éå½å',
+ dic_restore: 'è¿å',
+ dictionariesTab: 'åå
¸',
+ disable: 'ç¦ç¨å³æ¶æ¼åæ£æ¥',
+ emptyDic: 'åå
¸åä¸åºä¸ºç©º.',
+ enable: 'å¯ç¨å³æ¶æ¼åæ£æ¥',
+ ignore: '忽ç¥',
+ ignoreAll: 'å
¨é¨å¿½ç¥',
+ ignoreDomainNames: '忽ç¥åå',
+ langs: 'è¯è¨',
+ languagesTab: 'è¯è¨',
+ mixedCase: '忽ç¥å¤§å°åæ··åçåè¯',
+ mixedWithDigits: '忽ç¥å¸¦æ°åçåè¯',
+ moreSuggestions: 'æ´å¤æ¼å建议',
+ opera_title: '䏿¯æ Opera æµè§å¨',
+ options: 'é项',
+ optionsTab: 'é项',
+ title: '峿¶æ¼åæ£æ¥',
+ toggle: 'æå/å¯ç¨å³æ¶æ¼åæ£æ¥',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/lang/zh.js b/devel/third-party/ckeditor/plugins/scayt/lang/zh.js
new file mode 100644
index 0000000..5602512
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/scayt/lang/zh.js
@@ -0,0 +1,34 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'scayt', 'zh', {
+ about: '鿼峿æ¼å¯«æª¢æ¥',
+ aboutTab: 'éæ¼',
+ addWord: 'æ·»å å®è©',
+ allCaps: 'Ignore All-Caps Words', // MISSING
+ dic_create: 'Create', // MISSING
+ dic_delete: 'Delete', // MISSING
+ dic_field_name: 'Dictionary name', // MISSING
+ dic_info: 'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.', // MISSING
+ dic_rename: 'Rename', // MISSING
+ dic_restore: 'Restore', // MISSING
+ dictionariesTab: 'åå
¸',
+ disable: 'éé峿æ¼å¯«æª¢æ¥',
+ emptyDic: 'åå
¸å䏿çºç©º.',
+ enable: 'åç¨å³ææ¼å¯«æª¢æ¥',
+ ignore: '忽ç¥',
+ ignoreAll: 'å
¨é¨å¿½ç¥',
+ ignoreDomainNames: 'Ignore Domain Names', // MISSING
+ langs: 'èªè¨',
+ languagesTab: 'èªè¨',
+ mixedCase: 'Ignore Words with Mixed Case', // MISSING
+ mixedWithDigits: 'Ignore Words with Numbers', // MISSING
+ moreSuggestions: 'æ´å¤æ¼å¯«å»ºè°',
+ opera_title: 'Not supported by Opera', // MISSING
+ options: 'é¸é
',
+ optionsTab: 'é¸é
',
+ title: '峿æ¼å¯«æª¢æ¥',
+ toggle: 'åç¨ï¼éé峿æ¼å¯«æª¢æ¥',
+ noSuggestions: 'No suggestion'// MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/scayt/plugin.js b/devel/third-party/ckeditor/plugins/scayt/plugin.js
index ec64fed..6928ca7 100644
--- a/devel/third-party/ckeditor/plugins/scayt/plugin.js
+++ b/devel/third-party/ckeditor/plugins/scayt/plugin.js
@@ -1,215 +1,190 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview Spell Check As You Type (SCAYT).
* Button name : Scayt.
*/
-(function()
-{
- var commandName = 'scaytcheck',
- openPage = '';
+(function() {
+ var commandName = 'scaytcheck',
+ wscCommandName = 'checkspell',
+ openPage = '';
// Checks if a value exists in an array
- function in_array(needle, haystack)
- {
- var found = false, key;
- for (key in haystack)
- {
- if ((haystack[key] === needle) || ( haystack[key] == needle))
- {
- found = true;
+ function in_array( needle, haystack ) {
+ var found = 0,
+ key;
+ for ( key in haystack ) {
+ if ( haystack[ key ] == needle ) {
+ found = 1;
break;
}
}
return found;
}
- var onEngineLoad = function()
- {
- var editor = this;
-
- var createInstance = function() // Create new instance every time Document is created.
- {
- // Initialise Scayt instance.
- var oParams = {};
- // Get the iframe.
- oParams.srcNodeRef = editor.document.getWindow().$.frameElement;
- // syntax : AppName.AppVersion at AppRevision
- oParams.assocApp = 'CKEDITOR.' + CKEDITOR.version + '@' + CKEDITOR.revision;
- oParams.customerid = editor.config.scayt_customerid || '1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';
- oParams.customDictionaryIds = editor.config.scayt_customDictionaryIds || '';
- oParams.userDictionaryName = editor.config.scayt_userDictionaryName || '';
- oParams.sLang = editor.config.scayt_sLang || 'en_US';
-
- // Introduce SCAYT onLoad callback. (#5632)
- oParams.onLoad = function()
+ var onEngineLoad = function() {
+ var editor = this;
+
+ var createInstance = function( ev ) // Create new instance every time Document is created.
{
- // Draw down word marker to avoid being covered by background-color style.(#5466)
- if ( !( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) )
- this.addStyle( this.selectorCss(), 'padding-bottom: 2px !important;' );
+ if ( typeof plugin.instances[ editor.name ] != 'undefined' || plugin.instances[ editor.name ] != null )
+ return;
- // Call scayt_control.focus when SCAYT loaded
- // and only if editor has focus and scayt control creates at first time (#5720)
- if ( editor.focusManager.hasFocus && !plugin.isControlRestored( editor ) )
- this.focus();
+ var config = editor.config;
+ // Initialise Scayt instance.
+ var oParams = {};
+ // Get the iframe.
- };
+ if(editor.editable().$.nodeName == 'BODY')
+ oParams.srcNodeRef = editor.document.getWindow().$.frameElement;
+ else
+ oParams.srcNodeRef = editor.editable().$;
+
+ // syntax : AppName.AppVersion at AppRevision
+ oParams.assocApp = 'CKEDITOR.' + CKEDITOR.version + '@' + CKEDITOR.revision;
+ oParams.customerid = config.scayt_customerid || '1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';
+ oParams.customDictionaryIds = config.scayt_customDictionaryIds || '';
+ oParams.userDictionaryName = config.scayt_userDictionaryName || '';
+ oParams.sLang = config.scayt_sLang || 'en_US';
+
+ // Introduce SCAYT onLoad callback. (#5632)
+ oParams.onLoad = function() {
+ // Draw down word marker to avoid being covered by background-color style.(#5466)
+ if ( !( CKEDITOR.env.ie && CKEDITOR.env.version < 8 ) )
+ this.addStyle( this.selectorCss(), 'padding-bottom: 2px !important;' );
+
+ // Call scayt_control.focus when SCAYT loaded
+ // and only if editor has focus and scayt control creates at first time (#5720)
+ if ( editor.editable().hasFocus && !plugin.isControlRestored( editor ) )
+ this.focus();
- oParams.onBeforeChange = function()
- {
- if ( plugin.getScayt( editor ) && !editor.checkDirty() )
- setTimeout( function(){ editor.resetDirty(); }, 0 );
- };
+ };
- var scayt_custom_params = window.scayt_custom_params;
- if ( typeof scayt_custom_params == 'object')
- {
- for ( var k in scayt_custom_params )
- {
- oParams[ k ] = scayt_custom_params[ k ];
- }
- }
- // needs for restoring a specific scayt control settings
- if ( plugin.getControlId(editor) )
- oParams.id = plugin.getControlId(editor);
+ oParams.onBeforeChange = function() {
+ if ( plugin.getScayt( editor ) && !editor.checkDirty() )
+ setTimeout( function() {
+ editor.resetDirty();
+ }, 0 );
+ };
- var scayt_control = new window.scayt( oParams );
+ var scayt_custom_params = window.scayt_custom_params;
+ if ( typeof scayt_custom_params == 'object' ) {
+ for ( var k in scayt_custom_params )
+ oParams[ k ] = scayt_custom_params[ k ];
+ }
+ // needs for restoring a specific scayt control settings
+ if ( plugin.getControlId( editor ) )
+ oParams.id = plugin.getControlId( editor );
- scayt_control.afterMarkupRemove.push( function( node )
- {
- ( new CKEDITOR.dom.element( node, scayt_control.document ) ).mergeSiblings();
- } );
+ var scayt_control = new window.scayt( oParams );
- // Copy config.
- var lastInstance = plugin.instances[ editor.name ];
- if ( lastInstance )
- {
- scayt_control.sLang = lastInstance.sLang;
- scayt_control.option( lastInstance.option() );
- scayt_control.paused = lastInstance.paused;
+ scayt_control.afterMarkupRemove.push( function( node ) {
+ ( new CKEDITOR.dom.element( node, scayt_control.document ) ).mergeSiblings();
+ });
+
+ // Copy config.
+ var lastInstance = plugin.instances[ editor.name ];
+ if ( lastInstance ) {
+ scayt_control.sLang = lastInstance.sLang;
+ scayt_control.option( lastInstance.option() );
+ scayt_control.paused = lastInstance.paused;
+ }
+
+ plugin.instances[ editor.name ] = scayt_control;
+
+ try {
+ scayt_control.setDisabled( plugin.isPaused( editor ) === false );
+ } catch ( e ) {}
+
+ editor.fire( 'showScaytState' );
+ };
+
+ function bindInlineModeEvents() {
+ editor.once( 'focus', createInstance );
+ editor.once( 'blur', destroyInstance );
}
- plugin.instances[ editor.name ] = scayt_control;
+ function destroyInstance( ev ) {
+ var editor = ev.editor,
+ scayt_instance = plugin.getScayt( editor ),
+ inline_mode = ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE );
- //window.scayt.uiTags
- var menuGroup = 'scaytButton';
- var uiTabs = window.scayt.uiTags;
- var fTabs = [];
+ // SCAYT instance might already get destroyed by mode switch (#5744).
+ if ( !scayt_instance )
+ return;
- for (var i = 0,l=4; i<l; i++)
- fTabs.push( uiTabs[i] && plugin.uiTabs[i] );
+ plugin.setPaused( editor, !scayt_instance.disabled );
+ // store a control id for restore a specific scayt control settings
+ plugin.setControlId( editor, scayt_instance.id );
+ scayt_instance.destroy( true );
+ delete plugin.instances[ editor.name ];
- plugin.uiTabs = fTabs;
- try {
- scayt_control.setDisabled( plugin.isPaused( editor ) === false );
- } catch (e) {}
+ if ( inline_mode ) bindInlineModeEvents();
+ }
- editor.fire( 'showScaytState' );
- };
+ ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ) ? bindInlineModeEvents() : editor.on( 'contentDom', createInstance );
- editor.on( 'contentDom', createInstance );
- editor.on( 'contentDomUnload', function()
- {
+ editor.on( 'contentDomUnload', function() {
// Remove scripts.
var scripts = CKEDITOR.document.getElementsByTag( 'script' ),
- scaytIdRegex = /^dojoIoScript(\d+)$/i,
- scaytSrcRegex = /^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;
+ scaytIdRegex = /^dojoIoScript(\d+)$/i,
+ scaytSrcRegex = /^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;
- for ( var i=0; i < scripts.count(); i++ )
- {
+ for ( var i = 0; i < scripts.count(); i++ ) {
var script = scripts.getItem( i ),
id = script.getId(),
src = script.getAttribute( 'src' );
- if ( id && src && id.match( scaytIdRegex ) && src.match( scaytSrcRegex ))
+ if ( id && src && id.match( scaytIdRegex ) && src.match( scaytSrcRegex ) )
script.remove();
}
});
- editor.on( 'beforeCommandExec', function( ev ) // Disable SCAYT before Source command execution.
+ editor.on( 'beforeCommandExec', function( ev ) // Disable SCAYT before Source command execution.
{
- if ( (ev.data.name == 'source' || ev.data.name == 'newpage') && editor.mode == 'wysiwyg' )
- {
- var scayt_instance = plugin.getScayt( editor );
- if ( scayt_instance )
- {
- plugin.setPaused( editor, !scayt_instance.disabled );
- // store a control id for restore a specific scayt control settings
- plugin.setControlId( editor, scayt_instance.id );
- scayt_instance.destroy( true );
- delete plugin.instances[ editor.name ];
- }
- }
- // Catch on source mode switch off (#5720)
- else if ( ev.data.name == 'source' && editor.mode == 'source' )
+ if ( ev.data.name == 'source' && editor.mode == 'source' )
plugin.markControlRestore( editor );
});
- editor.on( 'afterCommandExec', function( ev )
- {
+ editor.on( 'afterCommandExec', function( ev ) {
if ( !plugin.isScaytEnabled( editor ) )
return;
if ( editor.mode == 'wysiwyg' && ( ev.data.name == 'undo' || ev.data.name == 'redo' ) )
- window.setTimeout( function() { plugin.getScayt( editor ).refresh(); }, 10 );
+ window.setTimeout( function() {
+ plugin.getScayt( editor ).refresh();
+ }, 10 );
});
- editor.on( 'destroy', function( ev )
- {
- var editor = ev.editor,
- scayt_instance = plugin.getScayt( editor );
+ editor.on( 'destroy', destroyInstance );
- // SCAYT instance might already get destroyed by mode switch (#5744).
- if ( !scayt_instance )
- return;
+ // Listen to data manipulation to reflect scayt markup.
+ editor.on( 'setData', destroyInstance );
- delete plugin.instances[ editor.name ];
- // store a control id for restore a specific scayt control settings
- plugin.setControlId( editor, scayt_instance.id );
- scayt_instance.destroy( true );
- });
-
- // Listen to data manipulation to reflect scayt markup.
- editor.on( 'afterSetData', function()
- {
- if ( plugin.isScaytEnabled( editor ) ) {
- window.setTimeout( function()
- {
- var instance = plugin.getScayt( editor );
- instance && instance.refresh();
- }, 10 );
- }
- });
-
- // Reload spell-checking for current word after insertion completed.
- editor.on( 'insertElement', function()
- {
+ // Reload spell-checking for current word after insertion completed.
+ editor.on( 'insertElement', function() {
var scayt_instance = plugin.getScayt( editor );
- if ( plugin.isScaytEnabled( editor ) )
- {
+ if ( plugin.isScaytEnabled( editor ) ) {
// Unlock the selection before reload, SCAYT will take
// care selection update.
if ( CKEDITOR.env.ie )
editor.getSelection().unlock( true );
// Return focus to the editor and refresh SCAYT markup (#5573).
- window.setTimeout( function()
- {
+ window.setTimeout( function() {
scayt_instance.focus();
scayt_instance.refresh();
}, 10 );
}
}, this, null, 50 );
- editor.on( 'insertHtml', function()
- {
+ editor.on( 'insertHtml', function() {
var scayt_instance = plugin.getScayt( editor );
- if ( plugin.isScaytEnabled( editor ) )
- {
+ if ( plugin.isScaytEnabled( editor ) ) {
// Unlock the selection before reload, SCAYT will take
// care selection update.
if ( CKEDITOR.env.ie )
@@ -217,15 +192,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Return focus to the editor (#5573)
// Refresh SCAYT markup
- window.setTimeout( function()
- {
+ window.setTimeout( function() {
scayt_instance.focus();
scayt_instance.refresh();
}, 10 );
}
}, this, null, 50 );
- editor.on( 'scaytDialog', function( ev ) // Communication with dialog.
+ editor.on( 'scaytDialog', function( ev ) // Communication with dialog.
{
ev.data.djConfig = window.djConfig;
ev.data.scayt_control = plugin.getScayt( editor );
@@ -233,197 +207,177 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
ev.data.scayt = window.scayt;
});
- var dataProcessor = editor.dataProcessor,
- htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+ var dataProcessor = editor.dataProcessor,
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter;
- if ( htmlFilter )
- {
- htmlFilter.addRules(
- {
- elements :
- {
- span : function( element )
- {
- if ( element.attributes.scayt_word && element.attributes.scaytid )
- {
- delete element.name; // Write children, but don't write this node.
+ if ( htmlFilter ) {
+ htmlFilter.addRules({
+ elements: {
+ span: function( element ) {
+ if ( element.attributes[ 'data-scayt_word' ] && element.attributes[ 'data-scaytid' ] ) {
+ delete element.name; // Write children, but don't write this node.
return element;
}
}
}
- }
- );
- }
+ });
+ }
- // Override Image.equals method avoid CK snapshot module to add SCAYT markup to snapshots. (#5546)
- var undoImagePrototype = CKEDITOR.plugins.undo.Image.prototype;
- undoImagePrototype.equals = CKEDITOR.tools.override( undoImagePrototype.equals, function( org )
- {
- return function( otherImage )
- {
- var thisContents = this.contents,
- otherContents = otherImage.contents;
- var scayt_instance = plugin.getScayt( this.editor );
- // Making the comparison based on content without SCAYT word markers.
- if ( scayt_instance && plugin.isScaytReady( this.editor ) )
- {
- // scayt::reset might return value undefined. (#5742)
- this.contents = scayt_instance.reset( thisContents ) || '';
- otherImage.contents = scayt_instance.reset( otherContents ) || '';
- }
+ // Override Image.equals method avoid CK snapshot module to add SCAYT markup to snapshots. (#5546)
+ var undoImagePrototype = CKEDITOR.plugins.undo.Image.prototype;
+ undoImagePrototype.equals = CKEDITOR.tools.override( undoImagePrototype.equals, function( org ) {
+ return function( otherImage ) {
+ var thisContents = this.contents,
+ otherContents = otherImage.contents;
+ var scayt_instance = plugin.getScayt( this.editor );
+ // Making the comparison based on content without SCAYT word markers.
+ if ( scayt_instance && plugin.isScaytReady( this.editor ) ) {
+ // scayt::reset might return value undefined. (#5742)
+ this.contents = scayt_instance.reset( thisContents ) || '';
+ otherImage.contents = scayt_instance.reset( otherContents ) || '';
+ }
- var retval = org.apply( this, arguments );
+ var retval = org.apply( this, arguments );
- this.contents = thisContents;
- otherImage.contents = otherContents;
- return retval;
- };
- });
+ this.contents = thisContents;
+ otherImage.contents = otherContents;
+ return retval;
+ };
+ });
- if ( editor.document )
- createInstance();
- };
+ if(editor.document && (editor.elementMode != CKEDITOR.ELEMENT_MODE_INLINE || editor.focusManager.hasFocus)){
+ createInstance();
+ }
+ };
-CKEDITOR.plugins.scayt =
- {
- engineLoaded : false,
- instances : {},
+ CKEDITOR.plugins.scayt = {
+ engineLoaded: false,
+ instances: {},
// Data storage for SCAYT control, based on editor instances
- controlInfo : {},
- setControlInfo : function( editor, o )
- {
- if ( editor && editor.name && typeof ( this.controlInfo[ editor.name ] ) != 'object' )
+ controlInfo: {},
+ setControlInfo: function( editor, o ) {
+ if ( editor && editor.name && typeof( this.controlInfo[ editor.name ] ) != 'object' )
this.controlInfo[ editor.name ] = {};
for ( var infoOpt in o )
this.controlInfo[ editor.name ][ infoOpt ] = o[ infoOpt ];
},
- isControlRestored : function ( editor )
- {
- if ( editor &&
- editor.name &&
- this.controlInfo[ editor.name ] )
- {
- return this.controlInfo[ editor.name ].restored ;
+ isControlRestored: function( editor ) {
+ if ( editor && editor.name && this.controlInfo[ editor.name ] ) {
+ return this.controlInfo[ editor.name ].restored;
}
return false;
},
- markControlRestore : function ( editor )
- {
- this.setControlInfo( editor,{ restored:true } );
+ markControlRestore: function( editor ) {
+ this.setControlInfo( editor, { restored: true } );
},
- setControlId: function (editor, id)
- {
- this.setControlInfo( editor,{ id:id } );
+ setControlId: function( editor, id ) {
+ this.setControlInfo( editor, { id: id } );
},
- getControlId: function (editor)
- {
- if ( editor &&
- editor.name &&
- this.controlInfo[ editor.name ] &&
- this.controlInfo[ editor.name ].id )
- {
+ getControlId: function( editor ) {
+ if ( editor && editor.name && this.controlInfo[ editor.name ] && this.controlInfo[ editor.name ].id ) {
return this.controlInfo[ editor.name ].id;
}
return null;
},
- setPaused: function ( editor , bool )
- {
- this.setControlInfo( editor,{ paused:bool } );
+ setPaused: function( editor, bool ) {
+ this.setControlInfo( editor, { paused: bool } );
},
- isPaused: function (editor)
- {
- if ( editor &&
- editor.name &&
- this.controlInfo[editor.name] )
- {
- return this.controlInfo[editor.name].paused ;
+ isPaused: function( editor ) {
+ if ( editor && editor.name && this.controlInfo[ editor.name ] ) {
+ return this.controlInfo[ editor.name ].paused;
}
return undefined;
},
- getScayt : function( editor )
- {
+ getScayt: function( editor ) {
return this.instances[ editor.name ];
},
- isScaytReady : function( editor )
- {
- return this.engineLoaded === true &&
- 'undefined' !== typeof window.scayt && this.getScayt( editor );
+ isScaytReady: function( editor ) {
+ return this.engineLoaded === true && 'undefined' !== typeof window.scayt && this.getScayt( editor );
},
- isScaytEnabled : function( editor )
- {
+ isScaytEnabled: function( editor ) {
var scayt_instance = this.getScayt( editor );
return ( scayt_instance ) ? scayt_instance.disabled === false : false;
},
- loadEngine : function( editor )
- {
- // SCAYT doesn't work with Firefox2, Opera.
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 || CKEDITOR.env.opera )
+ getUiTabs: function( editor ) {
+ var uiTabs = [];
+
+ // read UI tabs value from config
+ var configUiTabs = editor.config.scayt_uiTabs || "1,1,1";
+
+ // convert string to array
+ configUiTabs = configUiTabs.split( ',' );
+
+ // "About us" should be always shown for standard config
+ configUiTabs[ 3 ] = "1";
+
+ for ( var i = 0; i < 4; i++ ) {
+ uiTabs[ i ] = ( typeof window.scayt != "undefined" && typeof window.scayt.uiTags != "undefined" ) ? ( parseInt( configUiTabs[ i ], 10 ) && window.scayt.uiTags[ i ] ) : parseInt( configUiTabs[ i ], 10 );
+ }
+
+ if(typeof editor.plugins.wsc == "object")
+ uiTabs.push(1);
+ else
+ uiTabs.push(0);
+
+ return uiTabs;
+ },
+ loadEngine: function( editor ) {
+ // SCAYT doesn't work with Firefox2, Opera and AIR.
+ if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 || CKEDITOR.env.opera || CKEDITOR.env.air )
return editor.fire( 'showScaytState' );
if ( this.engineLoaded === true )
- return onEngineLoad.apply( editor ); // Add new instance.
- else if ( this.engineLoaded == -1 ) // We are waiting.
- return CKEDITOR.on( 'scaytReady', function(){ onEngineLoad.apply( editor ); } ); // Use function(){} to avoid rejection as duplicate.
+ return onEngineLoad.apply( editor ); // Add new instance.
+ else if ( this.engineLoaded == -1 ) // We are waiting.
+ return CKEDITOR.on( 'scaytReady', function() {
+ onEngineLoad.apply( editor );
+ }); // Use function(){} to avoid rejection as duplicate.
CKEDITOR.on( 'scaytReady', onEngineLoad, editor );
- CKEDITOR.on( 'scaytReady', function()
- {
- this.engineLoaded = true;
- },
- this,
- null,
- 0
- ); // First to run.
+ CKEDITOR.on( 'scaytReady', function() {
+ this.engineLoaded = true;
+ }, this, null, 0 ); // First to run.
- this.engineLoaded = -1; // Loading in progress.
+ this.engineLoaded = -1; // Loading in progress.
// compose scayt url
var protocol = document.location.protocol;
// Default to 'http' for unknown.
- protocol = protocol.search( /https?:/) != -1? protocol : 'http:';
- var baseUrl = 'svc.spellchecker.net/scayt25/loader__base.js';
+ protocol = protocol.search( /https?:/ ) != -1 ? protocol : 'http:';
+ var baseUrl = 'svc.webspellchecker.net/scayt26/loader__base.js';
- var scaytUrl = editor.config.scayt_srcUrl || ( protocol + '//' + baseUrl );
- var scaytConfigBaseUrl = plugin.parseUrl( scaytUrl ).path + '/';
+ var scaytUrl = editor.config.scayt_srcUrl || ( protocol + '//' + baseUrl );
+ var scaytConfigBaseUrl = plugin.parseUrl( scaytUrl ).path + '/';
- if( window.scayt == undefined )
- {
- CKEDITOR._djScaytConfig =
- {
+ if ( window.scayt == undefined ) {
+ CKEDITOR._djScaytConfig = {
baseUrl: scaytConfigBaseUrl,
- addOnLoad:
- [
+ addOnLoad: [
function()
{
- CKEDITOR.fireOnce( 'scaytReady' );
- }
+ CKEDITOR.fireOnce( 'scaytReady' );
+ }
],
isDebug: false
};
// Append javascript code.
- CKEDITOR.document.getHead().append(
- CKEDITOR.document.createElement( 'script',
- {
- attributes :
- {
- type : 'text/javascript',
- async : 'true',
- src : scaytUrl
- }
- })
- );
- }
- else
+ CKEDITOR.document.getHead().append( CKEDITOR.document.createElement( 'script', {
+ attributes: {
+ type: 'text/javascript',
+ async: 'true',
+ src: scaytUrl
+ }
+ }));
+ } else
CKEDITOR.fireOnce( 'scaytReady' );
return null;
},
- parseUrl : function ( data )
- {
+ parseUrl: function( data ) {
var match;
- if ( data.match && ( match = data.match(/(.*)[\/\\](.*?\.\w+)$/) ) )
- return { path: match[1], file: match[2] };
+ if ( data.match && ( match = data.match( /(.*)[\/\\](.*?\.\w+)$/ ) ) )
+ return { path: match[ 1 ], file: match[ 2 ] };
else
return data;
}
@@ -432,29 +386,25 @@ CKEDITOR.plugins.scayt =
var plugin = CKEDITOR.plugins.scayt;
// Context menu constructing.
- var addButtonCommand = function( editor, buttonName, buttonLabel, commandName, command, menugroup, menuOrder )
- {
- editor.addCommand( commandName, command );
-
- // If the "menu" plugin is loaded, register the menu item.
- editor.addMenuItem( commandName,
- {
- label : buttonLabel,
- command : commandName,
- group : menugroup,
- order : menuOrder
+ var addButtonCommand = function( editor, buttonName, buttonLabel, commandName, command, menugroup, menuOrder ) {
+ editor.addCommand( commandName, command );
+
+ // If the "menu" plugin is loaded, register the menu item.
+ editor.addMenuItem( commandName, {
+ label: buttonLabel,
+ command: commandName,
+ group: menugroup,
+ order: menuOrder
});
- };
+ };
- var commandDefinition =
- {
- preserveState : true,
- editorFocus : false,
+ var commandDefinition = {
+ preserveState: true,
+ editorFocus: false,
+ canUndo: false,
- exec: function( editor )
- {
- if ( plugin.isScaytReady( editor ) )
- {
+ exec: function( editor ) {
+ if ( plugin.isScaytReady( editor ) ) {
var isEnabled = plugin.isScaytEnabled( editor );
this.setState( isEnabled ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_ON );
@@ -466,11 +416,11 @@ CKEDITOR.plugins.scayt =
// scayt_control.focus();
//
// now focus is set certainly
- scayt_control.focus( );
+ scayt_control.focus();
scayt_control.setDisabled( isEnabled );
- }
- else if ( !editor.config.scayt_autoStartup && plugin.engineLoaded >= 0 ) // Load first time
+ } else if ( !editor.config.scayt_autoStartup && plugin.engineLoaded >= 0 ) // Load first time
{
+ editor.focus();
this.setState( CKEDITOR.TRISTATE_DISABLED );
plugin.loadEngine( editor );
}
@@ -478,181 +428,190 @@ CKEDITOR.plugins.scayt =
};
// Add scayt plugin.
- CKEDITOR.plugins.add( 'scayt',
- {
- requires : [ 'menubutton' ],
-
- beforeInit : function( editor )
- {
- var items_order = editor.config.scayt_contextMenuItemsOrder
- || 'suggest|moresuggest|control',
+ CKEDITOR.plugins.add( 'scayt', {
+ requires: 'menubutton,dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'scayt', // %REMOVE_LINE_CORE%
+
+ beforeInit: function( editor ) {
+
+ var items_order = editor.config.scayt_contextMenuItemsOrder || 'suggest|moresuggest|control',
items_order_str = "";
items_order = items_order.split( '|' );
- if ( items_order && items_order.length )
- {
- for ( var pos in items_order )
+ if ( items_order && items_order.length ) {
+ for ( var pos = 0; pos < items_order.length; pos++ )
items_order_str += 'scayt_' + items_order[ pos ] + ( items_order.length != parseInt( pos, 10 ) + 1 ? ',' : '' );
}
// Put it on top of all context menu items (#5717)
- editor.config.menu_groups = items_order_str + ',' + editor.config.menu_groups;
+ editor.config.menu_groups = items_order_str + ',' + editor.config.menu_groups;
},
- init : function( editor )
- {
- var moreSuggestions = {};
- var mainSuggestions = {};
+ init: function( editor ) {
+
+ // Delete span[data-scaytid] when text pasting in editor (#6921)
+ var dataFilter = editor.dataProcessor && editor.dataProcessor.dataFilter;
+ var dataFilterRules = {
+ elements: {
+ span: function( element ) {
+ var attrs = element.attributes;
+ if ( attrs && attrs[ 'data-scaytid' ] )
+ delete element.name;
+ }
+ }
+ };
+ dataFilter && dataFilter.addRules( dataFilterRules );
+
+ var moreSuggestions = {},
+ mainSuggestions = {};
// Scayt command.
var command = editor.addCommand( commandName, commandDefinition );
// Add Options dialog.
CKEDITOR.dialog.add( commandName, CKEDITOR.getUrl( this.path + 'dialogs/options.js' ) );
- // read ui tags
- var confuiTabs = editor.config.scayt_uiTabs || '1,1,1';
- var uiTabs =[];
- // string to array convert
- confuiTabs = confuiTabs.split( ',' );
- // check array length ! always must be 3 filled with 1 or 0
- for (var i=0,l=3; i<l; i++)
- {
- var flag = parseInt(confuiTabs[i] || '1' ,10);
- uiTabs.push( flag );
- }
+
+ var uiTabs = plugin.getUiTabs( editor );
var menuGroup = 'scaytButton';
editor.addMenuGroup( menuGroup );
+ // Temporary hack - place scayt's groups at the beginning of the context menu.
+ editor.addMenuGroup( 'scayt_suggest', -10 );
+ editor.addMenuGroup( 'scayt_moresuggest', -9 );
+ editor.addMenuGroup( 'scayt_control', -8 );
+
// combine menu items to render
- var uiMuneItems = {};
+ var uiMenuItems = {};
+
+ var lang = editor.lang.scayt;
// always added
- uiMuneItems.scaytToggle =
- {
- label : editor.lang.scayt.enable,
- command : commandName,
- group : menuGroup
- };
+ uiMenuItems.scaytToggle = {
+ label: lang.enable,
+ command: commandName,
+ group: menuGroup
+ };
- if (uiTabs[0] == 1)
- uiMuneItems.scaytOptions =
- {
- label : editor.lang.scayt.options,
- group : menuGroup,
- onClick : function()
- {
- openPage = 'options';
- editor.openDialog( commandName );
- }
- };
+ if ( uiTabs[ 0 ] == 1 )
+ uiMenuItems.scaytOptions = {
+ label: lang.options,
+ group: menuGroup,
+ onClick: function() {
+ openPage = 'options';
+ editor.openDialog( commandName );
+ }
+ };
- if (uiTabs[1] == 1)
- uiMuneItems.scaytLangs =
- {
- label : editor.lang.scayt.langs,
- group : menuGroup,
- onClick : function()
- {
- openPage = 'langs';
- editor.openDialog( commandName );
- }
- };
- if (uiTabs[2] == 1)
- uiMuneItems.scaytDict =
- {
- label : editor.lang.scayt.dictionariesTab,
- group : menuGroup,
- onClick : function()
- {
- openPage = 'dictionaries';
- editor.openDialog( commandName );
- }
- };
+ if ( uiTabs[ 1 ] == 1 )
+ uiMenuItems.scaytLangs = {
+ label: lang.langs,
+ group: menuGroup,
+ onClick: function() {
+ openPage = 'langs';
+ editor.openDialog( commandName );
+ }
+ };
+ if ( uiTabs[ 2 ] == 1 )
+ uiMenuItems.scaytDict = {
+ label: lang.dictionariesTab,
+ group: menuGroup,
+ onClick: function() {
+ openPage = 'dictionaries';
+ editor.openDialog( commandName );
+ }
+ };
// always added
- uiMuneItems.scaytAbout =
- {
- label : editor.lang.scayt.about,
- group : menuGroup,
- onClick : function()
- {
- openPage = 'about';
- editor.openDialog( commandName );
- }
+ uiMenuItems.scaytAbout = {
+ label: editor.lang.scayt.about,
+ group: menuGroup,
+ onClick: function() {
+ openPage = 'about';
+ editor.openDialog( commandName );
}
- ;
+ };
- uiTabs[3] = 1; // about us tab is always on
- plugin.uiTabs = uiTabs;
+ if ( uiTabs[4] == 1 )
+ uiMenuItems.scaytWSC = {
+ label : editor.lang.wsc.toolbar,
+ group : menuGroup,
+ command : wscCommandName
+ };
- editor.addMenuItems( uiMuneItems );
+ editor.addMenuItems( uiMenuItems );
+
+ editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON, {
+ label: lang.title,
+ title: CKEDITOR.env.opera ? lang.opera_title : lang.title,
+ modes: { wysiwyg:1 },
+ toolbar: 'spellchecker,20',
+ onRender: function() {
+ command.on( 'state', function() {
+ this.setState( command.state );
+ }, this );
+ },
+ onMenu: function() {
+ var isEnabled = plugin.isScaytEnabled( editor );
- editor.ui.add( 'Scayt', CKEDITOR.UI_MENUBUTTON,
- {
- label : editor.lang.scayt.title,
- title : CKEDITOR.env.opera ? editor.lang.scayt.opera_title : editor.lang.scayt.title,
- className : 'cke_button_scayt',
- onRender: function()
- {
- command.on( 'state', function()
- {
- this.setState( command.state );
- },
- this);
- },
- onMenu : function()
- {
- var isEnabled = plugin.isScaytEnabled( editor );
+ editor.getMenuItem( 'scaytToggle' ).label = lang[ isEnabled ? 'disable' : 'enable' ];
- editor.getMenuItem( 'scaytToggle' ).label = editor.lang.scayt[ isEnabled ? 'disable' : 'enable' ];
+ var uiTabs = plugin.getUiTabs( editor );
- return {
- scaytToggle : CKEDITOR.TRISTATE_OFF,
- scaytOptions : isEnabled && plugin.uiTabs[0] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- scaytLangs : isEnabled && plugin.uiTabs[1] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- scaytDict : isEnabled && plugin.uiTabs[2] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- scaytAbout : isEnabled && plugin.uiTabs[3] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
- };
- }
- });
+ return {
+ scaytToggle: CKEDITOR.TRISTATE_OFF,
+ scaytOptions: isEnabled && uiTabs[ 0 ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytLangs: isEnabled && uiTabs[ 1 ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytDict: isEnabled && uiTabs[ 2 ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytAbout: isEnabled && uiTabs[ 3 ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ scaytWSC: uiTabs[4] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
+ };
+ }
+ });
// If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu && editor.addMenuItems )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !plugin.isScaytEnabled( editor )
- || selection.getCommonAncestor().isReadOnly() )
- return null;
-
- var scayt_control = plugin.getScayt( editor ),
- node = scayt_control.getScaytNode();
-
- if ( !node )
- return null;
-
- var word = scayt_control.getWord( node );
-
- if ( !word )
- return null;
-
- var sLang = scayt_control.getLang(),
- _r = {},
- items_suggestion = window.scayt.getSuggestion( word, sLang );
- if ( !items_suggestion || !items_suggestion.length )
- return null;
- // Remove unused commands and menuitems
- for ( i in moreSuggestions )
- {
- delete editor._.menuItems[ i ];
- delete editor._.commands[ i ];
- }
- for ( i in mainSuggestions )
- {
- delete editor._.menuItems[ i ];
- delete editor._.commands[ i ];
- }
- moreSuggestions = {}; // Reset items.
+ if ( editor.contextMenu && editor.addMenuItems ) {
+ editor.contextMenu.addListener( function( element, selection ) {
+ if ( !plugin.isScaytEnabled( editor ) || selection.getRanges()[ 0 ].checkReadOnly() )
+ return null;
+
+ var scayt_control = plugin.getScayt( editor ),
+ node = scayt_control.getScaytNode();
+
+ if ( !node )
+ return null;
+
+ var word = scayt_control.getWord( node );
+
+ if ( !word )
+ return null;
+
+ var sLang = scayt_control.getLang(),
+ _r = {}, contextCommands = editor.config.scayt_contextCommands || 'all',
+ items_suggestion = window.scayt.getSuggestion( word, sLang );
+
+ contextCommands = contextCommands.split( '|' );
+
+ // Remove unused commands and menuitems
+
+ for ( var m in moreSuggestions ) {
+ delete editor._.menuItems[ m ];
+ delete editor.commands[ m ];
+ }
+ for ( m in mainSuggestions ) {
+ delete editor._.menuItems[ m ];
+ delete editor.commands[ m ];
+ }
+
+ if ( !items_suggestion || !items_suggestion.length ){
+ var no_sugg = {
+ exec: function() {}
+ };
+ addButtonCommand( editor, 'no_sugg', lang.noSuggestions, 'scayt_no_sugg', no_sugg, 'scayt_control', 1, true );
+ mainSuggestions[ 'scayt_no_sugg' ] = CKEDITOR.TRISTATE_OFF;
+ }else{
+ // Reset items.
+ moreSuggestions = {};
mainSuggestions = {};
var moreSuggestionsUnable = editor.config.scayt_moreSuggestions || 'on';
@@ -662,133 +621,105 @@ CKEDITOR.plugins.scayt =
( typeof maxSuggestions != 'number' ) && ( maxSuggestions = 5 );
!maxSuggestions && ( maxSuggestions = items_suggestion.length );
- var contextCommands = editor.config.scayt_contextCommands || 'all';
- contextCommands = contextCommands.split( '|' );
-
- for ( var i = 0, l = items_suggestion.length; i < l; i += 1 )
- {
- var commandName = 'scayt_suggestion_' + items_suggestion[i].replace( ' ', '_' );
- var exec = ( function( el, s )
- {
- return {
- exec: function()
- {
- scayt_control.replace(el, s);
- }
- };
- })( node, items_suggestion[i] );
-
- if ( i < maxSuggestions )
- {
- addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
- commandName, exec, 'scayt_suggest', i + 1 );
+ for ( var i = 0, l = items_suggestion.length; i < l; i += 1 ) {
+ var commandName = 'scayt_suggestion_' + items_suggestion[ i ].replace( ' ', '_' );
+ var exec = (function( el, s ) {
+ return {
+ exec: function() {
+ scayt_control.replace( el, s );
+ }
+ };
+ })( node, items_suggestion[ i ] );
+
+ if ( i < maxSuggestions ) {
+ addButtonCommand( editor, 'button_' + commandName, items_suggestion[ i ], commandName, exec, 'scayt_suggest', i + 1 );
_r[ commandName ] = CKEDITOR.TRISTATE_OFF;
mainSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
- }
- else if ( moreSuggestionsUnable == 'on' )
- {
- addButtonCommand( editor, 'button_' + commandName, items_suggestion[i],
- commandName, exec, 'scayt_moresuggest', i + 1 );
+ } else if ( moreSuggestionsUnable == 'on' ) {
+ addButtonCommand( editor, 'button_' + commandName, items_suggestion[ i ], commandName, exec, 'scayt_moresuggest', i + 1 );
moreSuggestions[ commandName ] = CKEDITOR.TRISTATE_OFF;
moreSuggestionsUnableAdded = true;
}
}
- if ( moreSuggestionsUnableAdded )
- {
+ if ( moreSuggestionsUnableAdded ) {
// Register the More suggestions group;
- editor.addMenuItem( 'scayt_moresuggest',
- {
- label : editor.lang.scayt.moreSuggestions,
- group : 'scayt_moresuggest',
- order : 10,
- getItems : function()
- {
+ editor.addMenuItem( 'scayt_moresuggest', {
+ label: lang.moreSuggestions,
+ group: 'scayt_moresuggest',
+ order: 10,
+ getItems: function() {
return moreSuggestions;
}
});
mainSuggestions[ 'scayt_moresuggest' ] = CKEDITOR.TRISTATE_OFF;
}
+ }
- if ( in_array( 'all', contextCommands ) || in_array( 'ignore', contextCommands) )
- {
- var ignore_command = {
- exec: function(){
- scayt_control.ignore( node );
- }
- };
- addButtonCommand( editor, 'ignore', editor.lang.scayt.ignore, 'scayt_ignore', ignore_command, 'scayt_control', 1 );
- mainSuggestions[ 'scayt_ignore' ] = CKEDITOR.TRISTATE_OFF;
- }
+ if ( in_array( 'all', contextCommands ) || in_array( 'ignore', contextCommands ) ) {
+ var ignore_command = {
+ exec: function() {
+ scayt_control.ignore( node );
+ }
+ };
+ addButtonCommand( editor, 'ignore', lang.ignore, 'scayt_ignore', ignore_command, 'scayt_control', 2 );
+ mainSuggestions[ 'scayt_ignore' ] = CKEDITOR.TRISTATE_OFF;
+ }
- if ( in_array( 'all', contextCommands ) || in_array( 'ignoreall', contextCommands ) )
- {
- var ignore_all_command = {
- exec: function(){
- scayt_control.ignoreAll( node );
- }
- };
- addButtonCommand(editor, 'ignore_all', editor.lang.scayt.ignoreAll, 'scayt_ignore_all', ignore_all_command, 'scayt_control', 2);
- mainSuggestions['scayt_ignore_all'] = CKEDITOR.TRISTATE_OFF;
- }
+ if ( in_array( 'all', contextCommands ) || in_array( 'ignoreall', contextCommands ) ) {
+ var ignore_all_command = {
+ exec: function() {
+ scayt_control.ignoreAll( node );
+ }
+ };
+ addButtonCommand( editor, 'ignore_all', lang.ignoreAll, 'scayt_ignore_all', ignore_all_command, 'scayt_control', 3 );
+ mainSuggestions[ 'scayt_ignore_all' ] = CKEDITOR.TRISTATE_OFF;
+ }
- if ( in_array( 'all', contextCommands ) || in_array( 'add', contextCommands ) )
- {
- var addword_command = {
- exec: function(){
- window.scayt.addWordToUserDictionary( node );
- }
- };
- addButtonCommand(editor, 'add_word', editor.lang.scayt.addWord, 'scayt_add_word', addword_command, 'scayt_control', 3);
- mainSuggestions['scayt_add_word'] = CKEDITOR.TRISTATE_OFF;
- }
+ if ( in_array( 'all', contextCommands ) || in_array( 'add', contextCommands ) ) {
+ var addword_command = {
+ exec: function() {
+ window.scayt.addWordToUserDictionary( node );
+ }
+ };
+ addButtonCommand( editor, 'add_word', lang.addWord, 'scayt_add_word', addword_command, 'scayt_control', 4 );
+ mainSuggestions[ 'scayt_add_word' ] = CKEDITOR.TRISTATE_OFF;
+ }
- if ( scayt_control.fireOnContextMenu )
- scayt_control.fireOnContextMenu( editor );
+ if ( scayt_control.fireOnContextMenu )
+ scayt_control.fireOnContextMenu( editor );
- return mainSuggestions;
- });
+ return mainSuggestions;
+ });
}
- var showInitialState = function()
- {
- editor.removeListener( 'showScaytState', showInitialState );
-
- if ( !CKEDITOR.env.opera )
- command.setState( plugin.isScaytEnabled( editor ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
- else
+ var showInitialState = function( evt ) {
+ evt.removeListener();
+ if ( CKEDITOR.env.opera || CKEDITOR.env.air )
command.setState( CKEDITOR.TRISTATE_DISABLED );
+ else
+ command.setState( plugin.isScaytEnabled( editor ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
};
editor.on( 'showScaytState', showInitialState );
-
- if ( CKEDITOR.env.opera )
- {
- editor.on( 'instanceReady', function()
- {
- showInitialState();
- });
- }
+ editor.on( 'instanceReady', showInitialState );
// Start plugin
- if ( editor.config.scayt_autoStartup )
- {
- editor.on( 'instanceReady', function()
- {
+ if ( editor.config.scayt_autoStartup ) {
+ editor.on( 'instanceReady', function() {
plugin.loadEngine( editor );
});
}
},
- afterInit : function( editor )
- {
+ afterInit: function( editor ) {
+
// Prevent word marker line from displaying in elements path and been removed when cleaning format. (#3570) (#4125)
var elementsPathFilters,
- scaytFilter = function( element )
- {
- if ( element.hasAttribute( 'scaytid' ) )
- return false;
- };
+ scaytFilter = function( element ) {
+ if ( element.hasAttribute( 'data-scaytid' ) )
+ return false;
+ };
if ( editor._.elementsPath && ( elementsPathFilters = editor._.elementsPath.filters ) )
elementsPathFilters.push( scaytFilter );
@@ -800,144 +731,154 @@ CKEDITOR.plugins.scayt =
})();
/**
- * If enabled (true), turns on SCAYT automatically after loading the editor.
- * @name CKEDITOR.config.scayt_autoStartup
- * @type Boolean
- * @default false
- * @example
- * config.scayt_autoStartup = true;
+ * If enabled (set to `true`), turns on SCAYT automatically
+ * after loading the editor.
+ *
+ * config.scayt_autoStartup = true;
+ *
+ * @cfg {Boolean} [scayt_autoStartup=false]
+ * @member CKEDITOR.config
*/
/**
* Defines the number of SCAYT suggestions to show in the main context menu.
- * The possible values are:
- * <ul>
- * <li>0 (zero): All suggestions are displayed in the main context menu.</li>
- * <li>Positive number: The maximum number of suggestions to shown in context
- * menu. Other entries will be shown in "More Suggestions" sub-menu.</li>
- * <li>Negative number: No suggestions are shown in the main context menu. All
- * entries will be listed in the "Suggestions" sub-menu.</li>
- * </ul>
- * @name CKEDITOR.config.scayt_maxSuggestions
- * @type Number
- * @default 5
- * @example
- * // Display only three suggestions in the main context menu.
- * config.scayt_maxSuggestions = 3;
- * @example
- * // Do not show the suggestions directly.
- * config.scayt_maxSuggestions = -1;
+ * Possible values are:
+ *
+ * * `0` (zero) – All suggestions are displayed in the main context menu.
+ * * Positive number – The maximum number of suggestions to show in the context
+ * menu. Other entries will be shown in the "More Suggestions" sub-menu.
+ * * Negative number – No suggestions are shown in the main context menu. All
+ * entries will be listed in the the "Suggestions" sub-menu.
+ *
+ * Examples:
+ *
+ * // Display only three suggestions in the main context menu.
+ * config.scayt_maxSuggestions = 3;
+ *
+ * // Do not show the suggestions directly.
+ * config.scayt_maxSuggestions = -1;
+ *
+ * @cfg {Number} [scayt_maxSuggestions=5]
+ * @member CKEDITOR.config
*/
/**
- * Sets the customer ID for SCAYT. Required for migration from free version
- * with banner to paid version.
- * @name CKEDITOR.config.scayt_customerid
- * @type String
- * @default ''
+ * Sets the customer ID for SCAYT. Required for migration from free,
+ * ad-supported version to paid, ad-free version.
+ *
+ * // Load SCAYT using my customer ID.
+ * config.scayt_customerid = 'your-encrypted-customer-id';
+ *
+ * @cfg {String} [scayt_customerid='']
* @example
- * // Load SCAYT using my customer ID.
- * config.scayt_customerid = 'your-encrypted-customer-id';
+ * @member CKEDITOR.config
*/
/**
* Enables/disables the "More Suggestions" sub-menu in the context menu.
- * The possible values are "on" or "off".
- * @name CKEDITOR.config.scayt_moreSuggestions
- * @type String
- * @default 'on'
- * @example
- * // Disables the "More Suggestions" sub-menu.
- * config.scayt_moreSuggestions = 'off';
+ * Possible values are `'on'` and `'off'`.
+ *
+ * // Disables the "More Suggestions" sub-menu.
+ * config.scayt_moreSuggestions = 'off';
+ *
+ * @cfg {String} [scayt_moreSuggestions='on']
+ * @member CKEDITOR.config
*/
/**
* Customizes the display of SCAYT context menu commands ("Add Word", "Ignore"
- * and "Ignore All"). It must be a string with one or more of the following
- * words separated by a pipe ("|"):
- * <ul>
- * <li>"off": disables all options.</li>
- * <li>"all": enables all options.</li>
- * <li>"ignore": enables the "Ignore" option.</li>
- * <li>"ignoreall": enables the "Ignore All" option.</li>
- * <li>"add": enables the "Add Word" option.</li>
- * </ul>
- * @name CKEDITOR.config.scayt_contextCommands
- * @type String
- * @default 'all'
- * @example
- * // Show only "Add Word" and "Ignore All" in the context menu.
- * config.scayt_contextCommands = 'add|ignoreall';
+ * and "Ignore All"). This must be a string with one or more of the following
+ * words separated by a pipe character (`'|'`):
+ *
+ * * `off` – disables all options.
+ * * `all` – enables all options.
+ * * `ignore` – enables the "Ignore" option.
+ * * `ignoreall` – enables the "Ignore All" option.
+ * * `add` – enables the "Add Word" option.
+ *
+ * Example:
+ *
+ * // Show only "Add Word" and "Ignore All" in the context menu.
+ * config.scayt_contextCommands = 'add|ignoreall';
+ *
+ * @cfg {String} [scayt_contextCommands='all']
+ * @member CKEDITOR.config
*/
/**
- * Sets the default spellchecking language for SCAYT.
- * @name CKEDITOR.config.scayt_sLang
- * @type String
- * @default 'en_US'
- * @example
- * // Sets SCAYT to German.
- * config.scayt_sLang = 'de_DE';
+ * Sets the default spell checking language for SCAYT. Possible values are:
+ * `'en_US'`, `'en_GB'`, `'pt_BR'`, `'da_DK'`,
+ * `'nl_NL'`, `'en_CA'`, `'fi_FI'`, `'fr_FR'`,
+ * `'fr_CA'`, `'de_DE'`, `'el_GR'`, `'it_IT'`,
+ * `'nb_NO'`, `'pt_PT'`, `'es_ES'`, `'sv_SE'`.
+ *
+ * // Sets SCAYT to German.
+ * config.scayt_sLang = 'de_DE';
+ *
+ * @cfg {String} [scayt_sLang='en_US']
+ * @member CKEDITOR.config
*/
/**
- * Sets the visibility of the SCAYT tabs in the settings dialog and toolbar
- * button. The value must contain a "1" (enabled) or "0" (disabled) number for
- * each of the following entries, in this precise order, separated by a
- * comma (","): "Options", "Languages" and "Dictionary".
- * @name CKEDITOR.config.scayt_uiTabs
- * @type String
- * @default '1,1,1'
- * @example
- * // Hide the "Languages" tab.
- * config.scayt_uiTabs = '1,0,1';
+ * Sets the visibility of particular tabs in the SCAYT dialog window and toolbar
+ * button. This setting must contain a `1` (enabled) or `0`
+ * (disabled) value for each of the following entries, in this precise order,
+ * separated by a comma (`','`): `'Options'`, `'Languages'`, and `'Dictionary'`.
+ *
+ * // Hides the "Languages" tab.
+ * config.scayt_uiTabs = '1,0,1';
+ *
+ * @cfg {String} [scayt_uiTabs='1,1,1']
+ * @member CKEDITOR.config
*/
/**
- * Set the URL to SCAYT core. Required to switch to licensed version of SCAYT application.
- * Further details at http://wiki.spellchecker.net/doku.php?id=3rd:wysiwyg:fckeditor:wscckf3l .
- * @name CKEDITOR.config.scayt_srcUrl
- * @type String
- * @default ''
- * @example
- * config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js";
+ * Sets the URL to SCAYT core. Required to switch to the licensed version of SCAYT application.
+ *
+ * Further details available at [http://wiki.webspellchecker.net/doku.php?id=migration:hosredfreetolicensedck](http://wiki.webspellchecker.net/doku.php?id=migration:hosredfreetolicensedck)
+ *
+ * config.scayt_srcUrl = "http://my-host/spellcheck/lf/scayt/scayt.js";
+ *
+ * @cfg {String} [scayt_srcUrl='']
+ * @member CKEDITOR.config
*/
/**
- * Links SCAYT to custom dictionaries. It's a string containing dictionary ids
- * separared by commas (","). Available only for licensed version.
- * Further details at http://wiki.spellchecker.net/doku.php?id=custom_dictionary_support .
- * @name CKEDITOR.config.scayt_customDictionaryIds
- * @type String
- * @default ''
- * @example
- * config.scayt_customDictionaryIds = '3021,3456,3478"';
+ * Links SCAYT to custom dictionaries. This is a string containing dictionary IDs
+ * separared by commas (`','`). Available only for the licensed version.
+ *
+ * Further details at [http://wiki.webspellchecker.net/doku.php?id=installationandconfiguration:customdictionaries:licensed](http://wiki.webspellchecker.net/doku.php?id=installationandconfiguration:customdictionaries:licensed)
+ *
+ * config.scayt_customDictionaryIds = '3021,3456,3478"';
+ *
+ * @cfg {String} [scayt_customDictionaryIds='']
+ * @member CKEDITOR.config
*/
/**
- * Makes it possible to activate a custom dictionary on SCAYT. The user
- * dictionary name must be used. Available only for licensed version.
- * @name CKEDITOR.config.scayt_userDictionaryName
- * @type String
- * @default ''
- * @example
- * config.scayt_userDictionaryName = 'MyDictionary';
+ * Makes it possible to activate a custom dictionary in SCAYT. The user
+ * dictionary name must be used. Available only for the licensed version.
+ *
+ * config.scayt_userDictionaryName = 'MyDictionary';
+ *
+ * @cfg {String} [scayt_userDictionaryName='']
+ * @member CKEDITOR.config
*/
/**
- * Define order of placing of SCAYT context menu items by groups.
- * It must be a string with one or more of the following
- * words separated by a pipe ("|"):
- * <ul>
- * <li>'suggest' - main suggestion word list,</li>
- * <li>'moresuggest' - more suggestions word list,</li>
- * <li>'control' - SCAYT commands, such as 'Ignore' and 'Add Word'</li>
- * </ul>
+ * Defines the order SCAYT context menu items by groups.
+ * This must be a string with one or more of the following
+ * words separated by a pipe character (`'|'`):
*
- * @name CKEDITOR.config.scayt_contextMenuItemsOrder
- * @type String
- * @default 'suggest|moresuggest|control'
- * @example
- * config.scayt_contextMenuItemsOrder = 'moresuggest|control|suggest';
+ * * `suggest` – main suggestion word list,
+ * * `moresuggest` – more suggestions word list,
+ * * `control` – SCAYT commands, such as "Ignore" and "Add Word".
+ *
+ * Example:
+ *
+ * config.scayt_contextMenuItemsOrder = 'moresuggest|control|suggest';
+ *
+ * @cfg {String} [scayt_contextMenuItemsOrder='suggest|moresuggest|control']
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/selectall/icons/selectall.png b/devel/third-party/ckeditor/plugins/selectall/icons/selectall.png
new file mode 100644
index 0000000..7a9babe
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/selectall/icons/selectall.png differ
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/af.js b/devel/third-party/ckeditor/plugins/selectall/lang/af.js
new file mode 100644
index 0000000..ab8dea6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'af', {
+ toolbar: 'Selekteer alles'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ar.js b/devel/third-party/ckeditor/plugins/selectall/lang/ar.js
new file mode 100644
index 0000000..c331d47
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ar', {
+ toolbar: 'ØªØØ¯Ùد اÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/bg.js b/devel/third-party/ckeditor/plugins/selectall/lang/bg.js
new file mode 100644
index 0000000..a228492
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'bg', {
+ toolbar: 'ÐзбеÑи вÑиÑко'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/bn.js b/devel/third-party/ckeditor/plugins/selectall/lang/bn.js
new file mode 100644
index 0000000..7fbe219
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'bn', {
+ toolbar: 'সব সিলà§à¦à§à¦ à¦à¦°'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/bs.js b/devel/third-party/ckeditor/plugins/selectall/lang/bs.js
new file mode 100644
index 0000000..eee1207
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'bs', {
+ toolbar: 'Selektuj sve'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ca.js b/devel/third-party/ckeditor/plugins/selectall/lang/ca.js
new file mode 100644
index 0000000..134ce95
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ca', {
+ toolbar: 'Selecciona-ho tot'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/cs.js b/devel/third-party/ckeditor/plugins/selectall/lang/cs.js
new file mode 100644
index 0000000..8b19554
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'cs', {
+ toolbar: 'Vybrat vše'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/cy.js b/devel/third-party/ckeditor/plugins/selectall/lang/cy.js
new file mode 100644
index 0000000..2a5505e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'cy', {
+ toolbar: 'Dewis Popeth'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/da.js b/devel/third-party/ckeditor/plugins/selectall/lang/da.js
new file mode 100644
index 0000000..fe163db
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'da', {
+ toolbar: 'Vælg alt'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/de.js b/devel/third-party/ckeditor/plugins/selectall/lang/de.js
new file mode 100644
index 0000000..9d3291e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'de', {
+ toolbar: 'Alles auswählen'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/el.js b/devel/third-party/ckeditor/plugins/selectall/lang/el.js
new file mode 100644
index 0000000..741a570
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'el', {
+ toolbar: 'ÎÏιλογή ÏλÏν'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/en-au.js b/devel/third-party/ckeditor/plugins/selectall/lang/en-au.js
new file mode 100644
index 0000000..02abc7d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'en-au', {
+ toolbar: 'Select All'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/en-ca.js b/devel/third-party/ckeditor/plugins/selectall/lang/en-ca.js
new file mode 100644
index 0000000..73a37a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'en-ca', {
+ toolbar: 'Select All'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/en-gb.js b/devel/third-party/ckeditor/plugins/selectall/lang/en-gb.js
new file mode 100644
index 0000000..cfe57da
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'en-gb', {
+ toolbar: 'Select All'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/en.js b/devel/third-party/ckeditor/plugins/selectall/lang/en.js
new file mode 100644
index 0000000..ae5d618
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'en', {
+ toolbar: 'Select All'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/eo.js b/devel/third-party/ckeditor/plugins/selectall/lang/eo.js
new file mode 100644
index 0000000..c8d8b1c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'eo', {
+ toolbar: 'Elekti Äion'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/es.js b/devel/third-party/ckeditor/plugins/selectall/lang/es.js
new file mode 100644
index 0000000..d013086
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'es', {
+ toolbar: 'Seleccionar Todo'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/et.js b/devel/third-party/ckeditor/plugins/selectall/lang/et.js
new file mode 100644
index 0000000..93f404b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'et', {
+ toolbar: 'Kõige valimine'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/eu.js b/devel/third-party/ckeditor/plugins/selectall/lang/eu.js
new file mode 100644
index 0000000..02441f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'eu', {
+ toolbar: 'Hautatu dena'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/fa.js b/devel/third-party/ckeditor/plugins/selectall/lang/fa.js
new file mode 100644
index 0000000..d39a0c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'fa', {
+ toolbar: 'گزÛÙØ´ ÙÙ
Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/fi.js b/devel/third-party/ckeditor/plugins/selectall/lang/fi.js
new file mode 100644
index 0000000..19fcd97
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'fi', {
+ toolbar: 'Valitse kaikki'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/fo.js b/devel/third-party/ckeditor/plugins/selectall/lang/fo.js
new file mode 100644
index 0000000..8a684ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'fo', {
+ toolbar: 'Markera alt'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/selectall/lang/fr-ca.js
new file mode 100644
index 0000000..4e4e22c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'fr-ca', {
+ toolbar: 'Tout sélectionner'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/fr.js b/devel/third-party/ckeditor/plugins/selectall/lang/fr.js
new file mode 100644
index 0000000..45740bf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'fr', {
+ toolbar: 'Tout sélectionner'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/gl.js b/devel/third-party/ckeditor/plugins/selectall/lang/gl.js
new file mode 100644
index 0000000..12d4339
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'gl', {
+ toolbar: 'Seleccionar todo'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/gu.js b/devel/third-party/ckeditor/plugins/selectall/lang/gu.js
new file mode 100644
index 0000000..884e3ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'gu', {
+ toolbar: 'બàªà«àª પસàªàª¦ àªàª°àªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/he.js b/devel/third-party/ckeditor/plugins/selectall/lang/he.js
new file mode 100644
index 0000000..4acb149
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'he', {
+ toolbar: '×××רת ×××'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/hi.js b/devel/third-party/ckeditor/plugins/selectall/lang/hi.js
new file mode 100644
index 0000000..2f084a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'hi', {
+ toolbar: 'सब सà¥
लà¥
à¤à¥à¤ à¤à¤°à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/hr.js b/devel/third-party/ckeditor/plugins/selectall/lang/hr.js
new file mode 100644
index 0000000..f00fc46
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'hr', {
+ toolbar: 'Odaberi sve'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/hu.js b/devel/third-party/ckeditor/plugins/selectall/lang/hu.js
new file mode 100644
index 0000000..0d70707
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'hu', {
+ toolbar: 'Mindent kijelöl'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/is.js b/devel/third-party/ckeditor/plugins/selectall/lang/is.js
new file mode 100644
index 0000000..ef999fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'is', {
+ toolbar: 'Velja allt'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/it.js b/devel/third-party/ckeditor/plugins/selectall/lang/it.js
new file mode 100644
index 0000000..d932d98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'it', {
+ toolbar: 'Seleziona tutto'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ja.js b/devel/third-party/ckeditor/plugins/selectall/lang/ja.js
new file mode 100644
index 0000000..2c6b133
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ja', {
+ toolbar: 'ãã¹ã¦é¸æ'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ka.js b/devel/third-party/ckeditor/plugins/selectall/lang/ka.js
new file mode 100644
index 0000000..61652dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ka', {
+ toolbar: 'á§ááááá¤á áá¡ ááááá¨ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/km.js b/devel/third-party/ckeditor/plugins/selectall/lang/km.js
new file mode 100644
index 0000000..0c904cd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'km', {
+ toolbar: 'áááá¾ááá¾ááá¶ááá¢áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ko.js b/devel/third-party/ckeditor/plugins/selectall/lang/ko.js
new file mode 100644
index 0000000..595d707
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ko', {
+ toolbar: 'ì ì²´ì í'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ku.js b/devel/third-party/ckeditor/plugins/selectall/lang/ku.js
new file mode 100644
index 0000000..c4f68dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ku', {
+ toolbar: 'ÙÛØ´Ø§ÙکردÙÛ ÙÛÙ
ÙÙÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/lt.js b/devel/third-party/ckeditor/plugins/selectall/lang/lt.js
new file mode 100644
index 0000000..1b936af
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'lt', {
+ toolbar: 'PažymÄti viskÄ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/lv.js b/devel/third-party/ckeditor/plugins/selectall/lang/lv.js
new file mode 100644
index 0000000..04ffebe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'lv', {
+ toolbar: 'IezÄ«mÄt visu'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/mk.js b/devel/third-party/ckeditor/plugins/selectall/lang/mk.js
new file mode 100644
index 0000000..b08fde0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'mk', {
+ toolbar: 'Select All' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/mn.js b/devel/third-party/ckeditor/plugins/selectall/lang/mn.js
new file mode 100644
index 0000000..79d51ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'mn', {
+ toolbar: 'Ðүгдийг Ð½Ñ ÑонгоÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ms.js b/devel/third-party/ckeditor/plugins/selectall/lang/ms.js
new file mode 100644
index 0000000..1147d59
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ms', {
+ toolbar: 'Pilih Semua'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/nb.js b/devel/third-party/ckeditor/plugins/selectall/lang/nb.js
new file mode 100644
index 0000000..df72354
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'nb', {
+ toolbar: 'Merk alt'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/nl.js b/devel/third-party/ckeditor/plugins/selectall/lang/nl.js
new file mode 100644
index 0000000..e3be2cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'nl', {
+ toolbar: 'Alles selecteren'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/no.js b/devel/third-party/ckeditor/plugins/selectall/lang/no.js
new file mode 100644
index 0000000..e3bac2a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'no', {
+ toolbar: 'Merk alt'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/pl.js b/devel/third-party/ckeditor/plugins/selectall/lang/pl.js
new file mode 100644
index 0000000..703405d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'pl', {
+ toolbar: 'Zaznacz wszystko'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/pt-br.js b/devel/third-party/ckeditor/plugins/selectall/lang/pt-br.js
new file mode 100644
index 0000000..91cb97a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'pt-br', {
+ toolbar: 'Selecionar Tudo'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/pt.js b/devel/third-party/ckeditor/plugins/selectall/lang/pt.js
new file mode 100644
index 0000000..9c21405
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'pt', {
+ toolbar: 'Seleccionar Tudo'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ro.js b/devel/third-party/ckeditor/plugins/selectall/lang/ro.js
new file mode 100644
index 0000000..973c66f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ro', {
+ toolbar: 'SelecteazÄ tot'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ru.js b/devel/third-party/ckeditor/plugins/selectall/lang/ru.js
new file mode 100644
index 0000000..d3a16a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ru', {
+ toolbar: 'ÐÑделиÑÑ Ð²Ñе'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/sk.js b/devel/third-party/ckeditor/plugins/selectall/lang/sk.js
new file mode 100644
index 0000000..14552f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'sk', {
+ toolbar: 'Vybrať všetko'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/sl.js b/devel/third-party/ckeditor/plugins/selectall/lang/sl.js
new file mode 100644
index 0000000..7b19ecd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'sl', {
+ toolbar: 'Izberi vse'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/selectall/lang/sr-latn.js
new file mode 100644
index 0000000..9cca4f9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'sr-latn', {
+ toolbar: 'OznaÄi sve'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/sr.js b/devel/third-party/ckeditor/plugins/selectall/lang/sr.js
new file mode 100644
index 0000000..12b7c0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'sr', {
+ toolbar: 'ÐзнаÑи Ñве'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/sv.js b/devel/third-party/ckeditor/plugins/selectall/lang/sv.js
new file mode 100644
index 0000000..fb1c3d6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'sv', {
+ toolbar: 'Markera allt'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/th.js b/devel/third-party/ckeditor/plugins/selectall/lang/th.js
new file mode 100644
index 0000000..8a0eacf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'th', {
+ toolbar: 'à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/tr.js b/devel/third-party/ckeditor/plugins/selectall/lang/tr.js
new file mode 100644
index 0000000..b037c1b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'tr', {
+ toolbar: 'Tümünü Seç'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/ug.js b/devel/third-party/ckeditor/plugins/selectall/lang/ug.js
new file mode 100644
index 0000000..1c1b9a0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'ug', {
+ toolbar: 'Ú¾ÛÙ
Ù
ÙÙ٠تاÙÙØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/uk.js b/devel/third-party/ckeditor/plugins/selectall/lang/uk.js
new file mode 100644
index 0000000..e938429
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'uk', {
+ toolbar: 'ÐидÑлиÑи вÑе'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/vi.js b/devel/third-party/ckeditor/plugins/selectall/lang/vi.js
new file mode 100644
index 0000000..040d2fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'vi', {
+ toolbar: 'Chá»n tất cả'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/selectall/lang/zh-cn.js
new file mode 100644
index 0000000..582c793
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'zh-cn', {
+ toolbar: 'å
¨é'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/lang/zh.js b/devel/third-party/ckeditor/plugins/selectall/lang/zh.js
new file mode 100644
index 0000000..f6ae499
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'selectall', 'zh', {
+ toolbar: 'å
¨é¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/selectall/plugin.js b/devel/third-party/ckeditor/plugins/selectall/plugin.js
new file mode 100644
index 0000000..4510b86
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/selectall/plugin.js
@@ -0,0 +1,57 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/**
+ * @fileOverview The "selectall" plugin provides an editor command that
+ * allows selecting the entire content of editable area.
+ * This plugin also enables a toolbar button for the feature.
+ */
+
+(function() {
+ CKEDITOR.plugins.add( 'selectall', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'selectall', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ editor.addCommand( 'selectAll', { modes:{wysiwyg:1,source:1 },
+ exec: function( editor ) {
+ var editable = editor.editable();
+
+ if ( editable.is( 'textarea' ) ) {
+ var textarea = editable.$;
+
+ if ( CKEDITOR.env.ie )
+ textarea.createTextRange().execCommand( 'SelectAll' );
+ else {
+ textarea.selectionStart = 0;
+ textarea.selectionEnd = textarea.value.length;
+ }
+
+ textarea.focus();
+ } else {
+ if ( editable.is( 'body' ) )
+ editor.document.$.execCommand( 'SelectAll', false, null );
+ else {
+ var range = editor.createRange();
+ range.selectNodeContents( editable );
+ range.select();
+ }
+
+ // Force triggering selectionChange (#7008)
+ editor.forceNextSelectionCheck();
+ editor.selectionChange();
+ }
+
+ },
+ canUndo: false
+ });
+
+ editor.ui.addButton && editor.ui.addButton( 'SelectAll', {
+ label: editor.lang.selectall.toolbar,
+ command: 'selectAll',
+ toolbar: 'selection,10'
+ });
+ }
+ });
+})();
diff --git a/devel/third-party/ckeditor/plugins/selection/plugin.js b/devel/third-party/ckeditor/plugins/selection/plugin.js
deleted file mode 100644
index f0d2c44..0000000
--- a/devel/third-party/ckeditor/plugins/selection/plugin.js
+++ /dev/null
@@ -1,1367 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- // #### checkSelectionChange : START
-
- // The selection change check basically saves the element parent tree of
- // the current node and check it on successive requests. If there is any
- // change on the tree, then the selectionChange event gets fired.
- function checkSelectionChange()
- {
- try
- {
- // In IE, the "selectionchange" event may still get thrown when
- // releasing the WYSIWYG mode, so we need to check it first.
- var sel = this.getSelection();
- if ( !sel || !sel.document.getWindow().$ )
- return;
-
- var firstElement = sel.getStartElement();
- var currentPath = new CKEDITOR.dom.elementPath( firstElement );
-
- if ( !currentPath.compare( this._.selectionPreviousPath ) )
- {
- this._.selectionPreviousPath = currentPath;
- this.fire( 'selectionChange', { selection : sel, path : currentPath, element : firstElement } );
- }
- }
- catch (e)
- {}
- }
-
- var checkSelectionChangeTimer,
- checkSelectionChangeTimeoutPending;
-
- function checkSelectionChangeTimeout()
- {
- // Firing the "OnSelectionChange" event on every key press started to
- // be too slow. This function guarantees that there will be at least
- // 200ms delay between selection checks.
-
- checkSelectionChangeTimeoutPending = true;
-
- if ( checkSelectionChangeTimer )
- return;
-
- checkSelectionChangeTimeoutExec.call( this );
-
- checkSelectionChangeTimer = CKEDITOR.tools.setTimeout( checkSelectionChangeTimeoutExec, 200, this );
- }
-
- function checkSelectionChangeTimeoutExec()
- {
- checkSelectionChangeTimer = null;
-
- if ( checkSelectionChangeTimeoutPending )
- {
- // Call this with a timeout so the browser properly moves the
- // selection after the mouseup. It happened that the selection was
- // being moved after the mouseup when clicking inside selected text
- // with Firefox.
- CKEDITOR.tools.setTimeout( checkSelectionChange, 0, this );
-
- checkSelectionChangeTimeoutPending = false;
- }
- }
-
- // #### checkSelectionChange : END
-
- var selectAllCmd =
- {
- modes : { wysiwyg : 1, source : 1 },
- exec : function( editor )
- {
- switch ( editor.mode )
- {
- case 'wysiwyg' :
- editor.document.$.execCommand( 'SelectAll', false, null );
- break;
- case 'source' :
- // Select the contents of the textarea
- var textarea = editor.textarea.$ ;
- if ( CKEDITOR.env.ie )
- {
- textarea.createTextRange().execCommand( 'SelectAll' ) ;
- }
- else
- {
- textarea.selectionStart = 0 ;
- textarea.selectionEnd = textarea.value.length ;
- }
- textarea.focus() ;
- }
- },
- canUndo : false
- };
-
- CKEDITOR.plugins.add( 'selection',
- {
- init : function( editor )
- {
- editor.on( 'contentDom', function()
- {
- var doc = editor.document,
- body = doc.getBody(),
- html = doc.getDocumentElement();
-
- if ( CKEDITOR.env.ie )
- {
- // Other browsers don't loose the selection if the
- // editor document loose the focus. In IE, we don't
- // have support for it, so we reproduce it here, other
- // than firing the selection change event.
-
- var savedRange,
- saveEnabled,
- restoreEnabled = 1;
-
- // "onfocusin" is fired before "onfocus". It makes it
- // possible to restore the selection before click
- // events get executed.
- body.on( 'focusin', function( evt )
- {
- // If there are elements with layout they fire this event but
- // it must be ignored to allow edit its contents #4682
- if ( evt.data.$.srcElement.nodeName != 'BODY' )
- return;
-
- // If we have saved a range, restore it at this
- // point.
- if ( savedRange )
- {
- if ( restoreEnabled )
- {
- // Well not break because of this.
- try
- {
- savedRange.select();
- }
- catch (e)
- {}
- }
-
- savedRange = null;
- }
- });
-
- body.on( 'focus', function()
- {
- // Enable selections to be saved.
- saveEnabled = true;
-
- saveSelection();
- });
-
- body.on( 'beforedeactivate', function( evt )
- {
- // Ignore this event if it's caused by focus switch between
- // internal editable control type elements, e.g. layouted paragraph. (#4682)
- if ( evt.data.$.toElement )
- return;
-
- // Disable selections from being saved.
- saveEnabled = false;
- restoreEnabled = 1;
- });
-
- // IE before version 8 will leave cursor blinking inside the document after
- // editor blurred unless we clean up the selection. (#4716)
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
- {
- editor.on( 'blur', function( evt )
- {
- editor.document && editor.document.$.selection.empty();
- });
- }
-
- // Listening on document element ensures that
- // scrollbar is included. (#5280)
- html.on( 'mousedown', function ()
- {
- // Lock restore selection now, as we have
- // a followed 'click' event which introduce
- // new selection. (#5735)
- restoreEnabled = 0;
- });
-
- html.on( 'mouseup', function ()
- {
- restoreEnabled = 1;
- });
-
- // In IE6/7 the blinking cursor appears, but contents are
- // not editable. (#5634)
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
- {
- // The 'click' event is not fired when clicking the
- // scrollbars, so we can use it to check whether
- // the empty space following <body> has been clicked.
- html.on( 'click', function( evt )
- {
- if ( evt.data.getTarget().getName() == 'html' )
- editor.getSelection().getRanges()[ 0 ].select();
- });
- }
-
- var scroll;
- // IE fires the "selectionchange" event when clicking
- // inside a selection. We don't want to capture that.
- body.on( 'mousedown', function( evt )
- {
- // IE scrolls document to top on right mousedown
- // when editor has no focus, remember this scroll
- // position and revert it before context menu opens. (#5778)
- if ( evt.data.$.button == 2 )
- {
- var sel = editor.document.$.selection;
- if ( sel.type == 'None' )
- scroll = editor.window.getScrollPosition();
- }
- disableSave();
- });
-
- body.on( 'mouseup',
- function( evt )
- {
- // Restore recorded scroll position when needed on right mouseup.
- if ( evt.data.$.button == 2 && scroll )
- {
- editor.document.$.documentElement.scrollLeft = scroll.x;
- editor.document.$.documentElement.scrollTop = scroll.y;
- }
- scroll = null;
-
- saveEnabled = true;
- setTimeout( function()
- {
- saveSelection( true );
- },
- 0 );
- });
-
- body.on( 'keydown', disableSave );
- body.on( 'keyup',
- function()
- {
- saveEnabled = true;
- saveSelection();
- });
-
-
- // IE is the only to provide the "selectionchange"
- // event.
- doc.on( 'selectionchange', saveSelection );
-
- function disableSave()
- {
- saveEnabled = false;
- }
-
- function saveSelection( testIt )
- {
- if ( saveEnabled )
- {
- var doc = editor.document,
- sel = editor.getSelection(),
- nativeSel = sel && sel.getNative();
-
- // There is a very specific case, when clicking
- // inside a text selection. In that case, the
- // selection collapses at the clicking point,
- // but the selection object remains in an
- // unknown state, making createRange return a
- // range at the very start of the document. In
- // such situation we have to test the range, to
- // be sure it's valid.
- if ( testIt && nativeSel && nativeSel.type == 'None' )
- {
- // The "InsertImage" command can be used to
- // test whether the selection is good or not.
- // If not, it's enough to give some time to
- // IE to put things in order for us.
- if ( !doc.$.queryCommandEnabled( 'InsertImage' ) )
- {
- CKEDITOR.tools.setTimeout( saveSelection, 50, this, true );
- return;
- }
- }
-
- // Avoid saving selection from within text input. (#5747)
- var parentTag;
- if ( nativeSel && nativeSel.type && nativeSel.type != 'Control'
- && ( parentTag = nativeSel.createRange() )
- && ( parentTag = parentTag.parentElement() )
- && ( parentTag = parentTag.nodeName )
- && parentTag.toLowerCase() in { input: 1, textarea : 1 } )
- {
- return;
- }
-
- savedRange = nativeSel && sel.getRanges()[ 0 ];
-
- checkSelectionChangeTimeout.call( editor );
- }
- }
- }
- else
- {
- // In other browsers, we make the selection change
- // check based on other events, like clicks or keys
- // press.
-
- doc.on( 'mouseup', checkSelectionChangeTimeout, editor );
- doc.on( 'keyup', checkSelectionChangeTimeout, editor );
- }
- });
-
- editor.addCommand( 'selectAll', selectAllCmd );
- editor.ui.addButton( 'SelectAll',
- {
- label : editor.lang.selectAll,
- command : 'selectAll'
- });
-
- editor.selectionChange = checkSelectionChangeTimeout;
- }
- });
-
- /**
- * Gets the current selection from the editing area when in WYSIWYG mode.
- * @returns {CKEDITOR.dom.selection} A selection object or null if not on
- * WYSIWYG mode or no selection is available.
- * @example
- * var selection = CKEDITOR.instances.editor1.<b>getSelection()</b>;
- * alert( selection.getType() );
- */
- CKEDITOR.editor.prototype.getSelection = function()
- {
- return this.document && this.document.getSelection();
- };
-
- CKEDITOR.editor.prototype.forceNextSelectionCheck = function()
- {
- delete this._.selectionPreviousPath;
- };
-
- /**
- * Gets the current selection from the document.
- * @returns {CKEDITOR.dom.selection} A selection object.
- * @example
- * var selection = CKEDITOR.instances.editor1.document.<b>getSelection()</b>;
- * alert( selection.getType() );
- */
- CKEDITOR.dom.document.prototype.getSelection = function()
- {
- var sel = new CKEDITOR.dom.selection( this );
- return ( !sel || sel.isInvalid ) ? null : sel;
- };
-
- /**
- * No selection.
- * @constant
- * @example
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_NONE )
- * alert( 'Nothing is selected' );
- */
- CKEDITOR.SELECTION_NONE = 1;
-
- /**
- * Text or collapsed selection.
- * @constant
- * @example
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_TEXT )
- * alert( 'Text is selected' );
- */
- CKEDITOR.SELECTION_TEXT = 2;
-
- /**
- * Element selection.
- * @constant
- * @example
- * if ( editor.getSelection().getType() == CKEDITOR.SELECTION_ELEMENT )
- * alert( 'An element is selected' );
- */
- CKEDITOR.SELECTION_ELEMENT = 3;
-
- /**
- * Manipulates the selection in a DOM document.
- * @constructor
- * @example
- */
- CKEDITOR.dom.selection = function( document )
- {
- var lockedSelection = document.getCustomData( 'cke_locked_selection' );
-
- if ( lockedSelection )
- return lockedSelection;
-
- this.document = document;
- this.isLocked = false;
- this._ =
- {
- cache : {}
- };
-
- /**
- * IE BUG: The selection's document may be a different document than the
- * editor document. Return null if that's the case.
- */
- if ( CKEDITOR.env.ie )
- {
- var range = this.getNative().createRange();
- if ( !range
- || ( range.item && range.item(0).ownerDocument != this.document.$ )
- || ( range.parentElement && range.parentElement().ownerDocument != this.document.$ ) )
- {
- this.isInvalid = true;
- }
- }
-
- return this;
- };
-
- var styleObjectElements =
- {
- img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,
- a:1, input:1, form:1, select:1, textarea:1, button:1, fieldset:1, th:1, thead:1, tfoot:1
- };
-
- CKEDITOR.dom.selection.prototype =
- {
- /**
- * Gets the native selection object from the browser.
- * @function
- * @returns {Object} The native selection object.
- * @example
- * var selection = editor.getSelection().<b>getNative()</b>;
- */
- getNative :
- CKEDITOR.env.ie ?
- function()
- {
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.$.selection );
- }
- :
- function()
- {
- return this._.cache.nativeSel || ( this._.cache.nativeSel = this.document.getWindow().$.getSelection() );
- },
-
- /**
- * Gets the type of the current selection. The following values are
- * available:
- * <ul>
- * <li>{@link CKEDITOR.SELECTION_NONE} (1): No selection.</li>
- * <li>{@link CKEDITOR.SELECTION_TEXT} (2): Text is selected or
- * collapsed selection.</li>
- * <li>{@link CKEDITOR.SELECTION_ELEMENT} (3): A element
- * selection.</li>
- * </ul>
- * @function
- * @returns {Number} One of the following constant values:
- * {@link CKEDITOR.SELECTION_NONE}, {@link CKEDITOR.SELECTION_TEXT} or
- * {@link CKEDITOR.SELECTION_ELEMENT}.
- * @example
- * if ( editor.getSelection().<b>getType()</b> == CKEDITOR.SELECTION_TEXT )
- * alert( 'Text is selected' );
- */
- getType :
- CKEDITOR.env.ie ?
- function()
- {
- var cache = this._.cache;
- if ( cache.type )
- return cache.type;
-
- var type = CKEDITOR.SELECTION_NONE;
-
- try
- {
- var sel = this.getNative(),
- ieType = sel.type;
-
- if ( ieType == 'Text' )
- type = CKEDITOR.SELECTION_TEXT;
-
- if ( ieType == 'Control' )
- type = CKEDITOR.SELECTION_ELEMENT;
-
- // It is possible that we can still get a text range
- // object even when type == 'None' is returned by IE.
- // So we'd better check the object returned by
- // createRange() rather than by looking at the type.
- if ( sel.createRange().parentElement )
- type = CKEDITOR.SELECTION_TEXT;
- }
- catch(e) {}
-
- return ( cache.type = type );
- }
- :
- function()
- {
- var cache = this._.cache;
- if ( cache.type )
- return cache.type;
-
- var type = CKEDITOR.SELECTION_TEXT;
-
- var sel = this.getNative();
-
- if ( !sel )
- type = CKEDITOR.SELECTION_NONE;
- else if ( sel.rangeCount == 1 )
- {
- // Check if the actual selection is a control (IMG,
- // TABLE, HR, etc...).
-
- var range = sel.getRangeAt(0),
- startContainer = range.startContainer;
-
- if ( startContainer == range.endContainer
- && startContainer.nodeType == 1
- && ( range.endOffset - range.startOffset ) == 1
- && styleObjectElements[ startContainer.childNodes[ range.startOffset ].nodeName.toLowerCase() ] )
- {
- type = CKEDITOR.SELECTION_ELEMENT;
- }
- }
-
- return ( cache.type = type );
- },
-
- /**
- * Retrieve the {@link CKEDITOR.dom.range} instances that represent the current selection.
- * Note: Some browsers returns multiple ranges even on a sequent selection, e.g. Firefox returns
- * one range for each table cell when one or more table row is selected.
- * @return {Array}
- * @example
- * var ranges = selection.getRanges();
- * alert(ranges.length);
- */
- getRanges : (function ()
- {
- var func = CKEDITOR.env.ie ?
- ( function()
- {
- // Finds the container and offset for a specific boundary
- // of an IE range.
- var getBoundaryInformation = function( range, start )
- {
- // Creates a collapsed range at the requested boundary.
- range = range.duplicate();
- range.collapse( start );
-
- // Gets the element that encloses the range entirely.
- var parent = range.parentElement();
- var siblings = parent.childNodes;
-
- var testRange;
-
- for ( var i = 0 ; i < siblings.length ; i++ )
- {
- var child = siblings[ i ];
- if ( child.nodeType == 1 )
- {
- testRange = range.duplicate();
-
- testRange.moveToElementText( child );
-
- var comparisonStart = testRange.compareEndPoints( 'StartToStart', range ),
- comparisonEnd = testRange.compareEndPoints( 'EndToStart', range );
-
- testRange.collapse();
-
- if ( comparisonStart > 0 )
- break;
- // When selection stay at the side of certain self-closing elements, e.g. BR,
- // our comparison will never shows an equality. (#4824)
- else if ( !comparisonStart
- || comparisonEnd == 1 && comparisonStart == -1 )
- return { container : parent, offset : i };
- else if ( !comparisonEnd )
- return { container : parent, offset : i + 1 };
-
- testRange = null;
- }
- }
-
- if ( !testRange )
- {
- testRange = range.duplicate();
- testRange.moveToElementText( parent );
- testRange.collapse( false );
- }
-
- testRange.setEndPoint( 'StartToStart', range );
- // IE report line break as CRLF with range.text but
- // only LF with textnode.nodeValue, normalize them to avoid
- // breaking character counting logic below. (#3949)
- var distance = testRange.text.replace( /(\r\n|\r)/g, '\n' ).length;
-
- try
- {
- while ( distance > 0 )
- distance -= siblings[ --i ].nodeValue.length;
- }
- // Measurement in IE could be somtimes wrong because of <select> element. (#4611)
- catch( e )
- {
- distance = 0;
- }
-
-
- if ( distance === 0 )
- {
- return {
- container : parent,
- offset : i
- };
- }
- else
- {
- return {
- container : siblings[ i ],
- offset : -distance
- };
- }
- };
-
- return function()
- {
- // IE doesn't have range support (in the W3C way), so we
- // need to do some magic to transform selections into
- // CKEDITOR.dom.range instances.
-
- var sel = this.getNative(),
- nativeRange = sel && sel.createRange(),
- type = this.getType(),
- range;
-
- if ( !sel )
- return [];
-
- if ( type == CKEDITOR.SELECTION_TEXT )
- {
- range = new CKEDITOR.dom.range( this.document );
-
- var boundaryInfo = getBoundaryInformation( nativeRange, true );
- range.setStart( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
-
- boundaryInfo = getBoundaryInformation( nativeRange );
- range.setEnd( new CKEDITOR.dom.node( boundaryInfo.container ), boundaryInfo.offset );
-
- return [ range ];
- }
- else if ( type == CKEDITOR.SELECTION_ELEMENT )
- {
- var retval = [];
-
- for ( var i = 0 ; i < nativeRange.length ; i++ )
- {
- var element = nativeRange.item( i ),
- parentElement = element.parentNode,
- j = 0;
-
- range = new CKEDITOR.dom.range( this.document );
-
- for (; j < parentElement.childNodes.length && parentElement.childNodes[j] != element ; j++ )
- { /*jsl:pass*/ }
-
- range.setStart( new CKEDITOR.dom.node( parentElement ), j );
- range.setEnd( new CKEDITOR.dom.node( parentElement ), j + 1 );
- retval.push( range );
- }
-
- return retval;
- }
-
- return [];
- };
- })()
- :
- function()
- {
-
- // On browsers implementing the W3C range, we simply
- // tranform the native ranges in CKEDITOR.dom.range
- // instances.
-
- var ranges = [],
- range,
- doc = this.document,
- sel = this.getNative();
-
- if ( !sel )
- return ranges;
-
- // On WebKit, it may happen that we'll have no selection
- // available. We normalize it here by replicating the
- // behavior of other browsers.
- if ( !sel.rangeCount )
- {
- range = new CKEDITOR.dom.range( doc );
- range.moveToElementEditStart( doc.getBody() );
- ranges.push( range );
- }
-
- for ( var i = 0 ; i < sel.rangeCount ; i++ )
- {
- var nativeRange = sel.getRangeAt( i );
-
- range = new CKEDITOR.dom.range( doc );
-
- range.setStart( new CKEDITOR.dom.node( nativeRange.startContainer ), nativeRange.startOffset );
- range.setEnd( new CKEDITOR.dom.node( nativeRange.endContainer ), nativeRange.endOffset );
- ranges.push( range );
- }
- return ranges;
- };
-
- return function( onlyEditables )
- {
- var cache = this._.cache;
- if ( cache.ranges && !onlyEditables )
- return cache.ranges;
- else if ( !cache.ranges )
- cache.ranges = new CKEDITOR.dom.rangeList( func.call( this ) );
-
- // Split range into multiple by read-only nodes.
- if ( onlyEditables )
- {
- var ranges = cache.ranges;
- for ( var i = 0; i < ranges.length; i++ )
- {
- var range = ranges[ i ];
-
- // Drop range spans inside one ready-only node.
- var parent = range.getCommonAncestor();
- if ( parent.isReadOnly())
- ranges.splice( i, 1 );
-
- if ( range.collapsed )
- continue;
-
- var startContainer = range.startContainer,
- endContainer = range.endContainer,
- startOffset = range.startOffset,
- endOffset = range.endOffset,
- walkerRange = range.clone();
-
- // Range may start inside a non-editable element, restart range
- // by the end of it.
- var readOnly;
- if ( ( readOnly = startContainer.isReadOnly() ) )
- range.setStartAfter( readOnly );
-
- // Enlarge range start/end with text node to avoid walker
- // being DOM destructive, it doesn't interfere our checking
- // of elements below as well.
- if ( startContainer && startContainer.type == CKEDITOR.NODE_TEXT )
- {
- if ( startOffset >= startContainer.getLength() )
- walkerRange.setStartAfter( startContainer );
- else
- walkerRange.setStartBefore( startContainer );
- }
-
- if ( endContainer && endContainer.type == CKEDITOR.NODE_TEXT )
- {
- if ( !endOffset )
- walkerRange.setEndBefore( endContainer );
- else
- walkerRange.setEndAfter( endContainer );
- }
-
- // Looking for non-editable element inside the range.
- var walker = new CKEDITOR.dom.walker( walkerRange );
- walker.evaluator = function( node )
- {
- if ( node.type == CKEDITOR.NODE_ELEMENT
- && node.getAttribute( 'contenteditable' ) == 'false' )
- {
- var newRange = range.clone();
- range.setEndBefore( node );
-
- // Drop collapsed range around read-only elements,
- // it make sure the range list empty when selecting
- // only non-editable elements.
- if ( range.collapsed )
- ranges.splice( i--, 1 );
-
- // Avoid creating invalid range.
- if ( !( node.getPosition( walkerRange.endContainer ) & CKEDITOR.POSITION_CONTAINS ) )
- {
- newRange.setStartAfter( node );
- if ( !newRange.collapsed )
- ranges.splice( i + 1, 0, newRange );
- }
-
- return true;
- }
-
- return false;
- };
-
- walker.next();
- }
- }
-
- return cache.ranges;
- };
- })(),
-
- /**
- * Gets the DOM element in which the selection starts.
- * @returns {CKEDITOR.dom.element} The element at the beginning of the
- * selection.
- * @example
- * var element = editor.getSelection().<b>getStartElement()</b>;
- * alert( element.getName() );
- */
- getStartElement : function()
- {
- var cache = this._.cache;
- if ( cache.startElement !== undefined )
- return cache.startElement;
-
- var node,
- sel = this.getNative();
-
- switch ( this.getType() )
- {
- case CKEDITOR.SELECTION_ELEMENT :
- return this.getSelectedElement();
-
- case CKEDITOR.SELECTION_TEXT :
-
- var range = this.getRanges()[0];
-
- if ( range )
- {
- if ( !range.collapsed )
- {
- range.optimize();
-
- // Decrease the range content to exclude particial
- // selected node on the start which doesn't have
- // visual impact. ( #3231 )
- while ( true )
- {
- var startContainer = range.startContainer,
- startOffset = range.startOffset;
- // Limit the fix only to non-block elements.(#3950)
- if ( startOffset == ( startContainer.getChildCount ?
- startContainer.getChildCount() : startContainer.getLength() )
- && !startContainer.isBlockBoundary() )
- range.setStartAfter( startContainer );
- else break;
- }
-
- node = range.startContainer;
-
- if ( node.type != CKEDITOR.NODE_ELEMENT )
- return node.getParent();
-
- node = node.getChild( range.startOffset );
-
- if ( !node || node.type != CKEDITOR.NODE_ELEMENT )
- return range.startContainer;
-
- var child = node.getFirst();
- while ( child && child.type == CKEDITOR.NODE_ELEMENT )
- {
- node = child;
- child = child.getFirst();
- }
-
- return node;
- }
- }
-
- if ( CKEDITOR.env.ie )
- {
- range = sel.createRange();
- range.collapse( true );
-
- node = range.parentElement();
- }
- else
- {
- node = sel.anchorNode;
-
- if ( node && node.nodeType != 1 )
- node = node.parentNode;
- }
- }
-
- return cache.startElement = ( node ? new CKEDITOR.dom.element( node ) : null );
- },
-
- /**
- * Gets the current selected element.
- * @returns {CKEDITOR.dom.element} The selected element. Null if no
- * selection is available or the selection type is not
- * {@link CKEDITOR.SELECTION_ELEMENT}.
- * @example
- * var element = editor.getSelection().<b>getSelectedElement()</b>;
- * alert( element.getName() );
- */
- getSelectedElement : function()
- {
- var cache = this._.cache;
- if ( cache.selectedElement !== undefined )
- return cache.selectedElement;
-
- var self = this;
-
- var node = CKEDITOR.tools.tryThese(
- // Is it native IE control type selection?
- function()
- {
- return self.getNative().createRange().item( 0 );
- },
- // Figure it out by checking if there's a single enclosed
- // node of the range.
- function()
- {
- var range = self.getRanges()[ 0 ],
- enclosed,
- selected;
-
- // Check first any enclosed element, e.g. <ul>[<li><a href="#">item</a></li>]</ul>
- for ( var i = 2; i && !( ( enclosed = range.getEnclosedNode() )
- && ( enclosed.type == CKEDITOR.NODE_ELEMENT )
- && styleObjectElements[ enclosed.getName() ]
- && ( selected = enclosed ) ); i-- )
- {
- // Then check any deep wrapped element, e.g. [<b><i><img /></i></b>]
- range.shrink( CKEDITOR.SHRINK_ELEMENT );
- }
-
- return selected.$;
- });
-
- return cache.selectedElement = ( node ? new CKEDITOR.dom.element( node ) : null );
- },
-
- lock : function()
- {
- // Call all cacheable function.
- this.getRanges();
- this.getStartElement();
- this.getSelectedElement();
-
- // The native selection is not available when locked.
- this._.cache.nativeSel = {};
-
- this.isLocked = true;
-
- // Save this selection inside the DOM document.
- this.document.setCustomData( 'cke_locked_selection', this );
- },
-
- unlock : function( restore )
- {
- var doc = this.document,
- lockedSelection = doc.getCustomData( 'cke_locked_selection' );
-
- if ( lockedSelection )
- {
- doc.setCustomData( 'cke_locked_selection', null );
-
- if ( restore )
- {
- var selectedElement = lockedSelection.getSelectedElement(),
- ranges = !selectedElement && lockedSelection.getRanges();
-
- this.isLocked = false;
- this.reset();
-
- doc.getBody().focus();
-
- if ( selectedElement )
- this.selectElement( selectedElement );
- else
- this.selectRanges( ranges );
- }
- }
-
- if ( !lockedSelection || !restore )
- {
- this.isLocked = false;
- this.reset();
- }
- },
-
- reset : function()
- {
- this._.cache = {};
- },
-
- /**
- * Make the current selection of type {@link CKEDITOR.SELECTION_ELEMENT} by enclosing the specified element.
- * @param element
- */
- selectElement : function( element )
- {
- if ( this.isLocked )
- {
- var range = new CKEDITOR.dom.range( this.document );
- range.setStartBefore( element );
- range.setEndAfter( element );
-
- this._.cache.selectedElement = element;
- this._.cache.startElement = element;
- this._.cache.ranges = new CKEDITOR.dom.rangeList( range );
- this._.cache.type = CKEDITOR.SELECTION_ELEMENT;
-
- return;
- }
-
- if ( CKEDITOR.env.ie )
- {
- this.getNative().empty();
-
- try
- {
- // Try to select the node as a control.
- range = this.document.$.body.createControlRange();
- range.addElement( element.$ );
- range.select();
- }
- catch(e)
- {
- // If failed, select it as a text range.
- range = this.document.$.body.createTextRange();
- range.moveToElementText( element.$ );
- range.select();
- }
- finally
- {
- this.document.fire( 'selectionchange' );
- }
-
- this.reset();
- }
- else
- {
- // Create the range for the element.
- range = this.document.$.createRange();
- range.selectNode( element.$ );
-
- // Select the range.
- var sel = this.getNative();
- sel.removeAllRanges();
- sel.addRange( range );
-
- this.reset();
- }
- },
-
- /**
- * Adding the specified ranges to document selection preceding
- * by clearing up the original selection.
- * @param {CKEDITOR.dom.range} ranges
- */
- selectRanges : function( ranges )
- {
- if ( this.isLocked )
- {
- this._.cache.selectedElement = null;
- this._.cache.startElement = ranges[ 0 ] && ranges[ 0 ].getTouchedStartNode();
- this._.cache.ranges = new CKEDITOR.dom.rangeList( ranges );
- this._.cache.type = CKEDITOR.SELECTION_TEXT;
-
- return;
- }
-
- if ( CKEDITOR.env.ie )
- {
- if ( ranges.length > 1 )
- {
- // IE doesn't accept multiple ranges selection, so we join all into one.
- var last = ranges[ ranges.length -1 ] ;
- ranges[ 0 ].setEnd( last.endContainer, last.endOffset );
- ranges.length = 1;
- }
-
- if ( ranges[ 0 ] )
- ranges[ 0 ].select();
-
- this.reset();
- }
- else
- {
- var sel = this.getNative();
-
- if ( ranges.length )
- sel.removeAllRanges();
-
- for ( var i = 0 ; i < ranges.length ; i++ )
- {
- // Joining sequential ranges introduced by
- // readonly elements protection.
- if ( i < ranges.length -1 )
- {
- var left = ranges[ i ], right = ranges[ i +1 ],
- between = left.clone();
- between.setStart( left.endContainer, left.endOffset );
- between.setEnd( right.startContainer, right.startOffset );
-
- // Don't confused by Firefox adjancent multi-ranges
- // introduced by table cells selection.
- if ( !between.collapsed )
- {
- between.shrink( CKEDITOR.NODE_ELEMENT, true );
- if ( between.getCommonAncestor().isReadOnly())
- {
- right.setStart( left.startContainer, left.startOffset );
- ranges.splice( i--, 1 );
- continue;
- }
- }
- }
-
- var range = ranges[ i ];
- var nativeRange = this.document.$.createRange();
- var startContainer = range.startContainer;
-
- // In FF2, if we have a collapsed range, inside an empty
- // element, we must add something to it otherwise the caret
- // will not be visible.
- // In Opera instead, the selection will be moved out of the
- // element. (#4657)
- if ( range.collapsed &&
- ( CKEDITOR.env.opera || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) &&
- startContainer.type == CKEDITOR.NODE_ELEMENT &&
- !startContainer.getChildCount() )
- {
- startContainer.appendText( '' );
- }
-
- nativeRange.setStart( startContainer.$, range.startOffset );
- nativeRange.setEnd( range.endContainer.$, range.endOffset );
-
- // Select the range.
- sel.addRange( nativeRange );
- }
-
- this.reset();
- }
- },
-
- /**
- * Create bookmark for every single of this selection range (from #getRanges)
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark} method,
- * with extra cares to avoid interferon among those ranges. Same arguments are
- * received as with the underlay range method.
- */
- createBookmarks : function( serializable )
- {
- return this.getRanges().createBookmarks( serializable );
- },
-
- /**
- * Create bookmark for every single of this selection range (from #getRanges)
- * by calling the {@link CKEDITOR.dom.range.prototype.createBookmark2} method,
- * with extra cares to avoid interferon among those ranges. Same arguments are
- * received as with the underlay range method.
- */
- createBookmarks2 : function( normalized )
- {
- return this.getRanges().createBookmarks2( normalized );
- },
-
- /**
- * Select the virtual ranges denote by the bookmarks by calling #selectRanges.
- * @param bookmarks
- */
- selectBookmarks : function( bookmarks )
- {
- var ranges = [];
- for ( var i = 0 ; i < bookmarks.length ; i++ )
- {
- var range = new CKEDITOR.dom.range( this.document );
- range.moveToBookmark( bookmarks[i] );
- ranges.push( range );
- }
- this.selectRanges( ranges );
- return this;
- },
-
- /**
- * Retrieve the common ancestor node of the first range and the last range.
- */
- getCommonAncestor : function()
- {
- var ranges = this.getRanges(),
- startNode = ranges[ 0 ].startContainer,
- endNode = ranges[ ranges.length - 1 ].endContainer;
- return startNode.getCommonAncestor( endNode );
- },
-
- /**
- * Moving scroll bar to the current selection's start position.
- */
- scrollIntoView : function()
- {
- // If we have split the block, adds a temporary span at the
- // range position and scroll relatively to it.
- var start = this.getStartElement();
- start.scrollIntoView();
- }
- };
-})();
-
-( function()
-{
- var notWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),
- fillerTextRegex = /\ufeff|\u00a0/,
- nonCells = { table:1,tbody:1,tr:1 };
-
- CKEDITOR.dom.range.prototype.select =
- CKEDITOR.env.ie ?
- // V2
- function( forceExpand )
- {
- var collapsed = this.collapsed;
- var isStartMarkerAlone;
- var dummySpan;
-
- // IE doesn't support selecting the entire table row/cell, move the selection into cells, e.g.
- // <table><tbody><tr>[<td>cell</b></td>... => <table><tbody><tr><td>[cell</td>...
- if ( this.startContainer.type == CKEDITOR.NODE_ELEMENT && this.startContainer.getName() in nonCells
- || this.endContainer.type == CKEDITOR.NODE_ELEMENT && this.endContainer.getName() in nonCells )
- {
- this.shrink( CKEDITOR.NODE_ELEMENT, true );
- }
-
- var bookmark = this.createBookmark();
-
- // Create marker tags for the start and end boundaries.
- var startNode = bookmark.startNode;
-
- var endNode;
- if ( !collapsed )
- endNode = bookmark.endNode;
-
- // Create the main range which will be used for the selection.
- var ieRange = this.document.$.body.createTextRange();
-
- // Position the range at the start boundary.
- ieRange.moveToElementText( startNode.$ );
- ieRange.moveStart( 'character', 1 );
-
- if ( endNode )
- {
- // Create a tool range for the end.
- var ieRangeEnd = this.document.$.body.createTextRange();
-
- // Position the tool range at the end.
- ieRangeEnd.moveToElementText( endNode.$ );
-
- // Move the end boundary of the main range to match the tool range.
- ieRange.setEndPoint( 'EndToEnd', ieRangeEnd );
- ieRange.moveEnd( 'character', -1 );
- }
- else
- {
- // The isStartMarkerAlone logic comes from V2. It guarantees that the lines
- // will expand and that the cursor will be blinking on the right place.
- // Actually, we are using this flag just to avoid using this hack in all
- // situations, but just on those needed.
- var next = startNode.getNext( notWhitespaces );
- isStartMarkerAlone = ( !( next && next.getText && next.getText().match( fillerTextRegex ) ) // already a filler there?
- && ( forceExpand || !startNode.hasPrevious() || ( startNode.getPrevious().is && startNode.getPrevious().is( 'br' ) ) ) );
-
- // Append a temporary <span></span> before the selection.
- // This is needed to avoid IE destroying selections inside empty
- // inline elements, like <b></b> (#253).
- // It is also needed when placing the selection right after an inline
- // element to avoid the selection moving inside of it.
- dummySpan = this.document.createElement( 'span' );
- dummySpan.setHtml( '' ); // Zero Width No-Break Space (U+FEFF). See #1359.
- dummySpan.insertBefore( startNode );
-
- if ( isStartMarkerAlone )
- {
- // To expand empty blocks or line spaces after <br>, we need
- // instead to have any char, which will be later deleted using the
- // selection.
- // \ufeff = Zero Width No-Break Space (U+FEFF). (#1359)
- this.document.createText( '\ufeff' ).insertBefore( startNode );
- }
- }
-
- // Remove the markers (reset the position, because of the changes in the DOM tree).
- this.setStartBefore( startNode );
- startNode.remove();
-
- if ( collapsed )
- {
- if ( isStartMarkerAlone )
- {
- // Move the selection start to include the temporary \ufeff.
- ieRange.moveStart( 'character', -1 );
-
- ieRange.select();
-
- // Remove our temporary stuff.
- this.document.$.selection.clear();
- }
- else
- ieRange.select();
-
- this.moveToPosition( dummySpan, CKEDITOR.POSITION_BEFORE_START );
- dummySpan.remove();
- }
- else
- {
- this.setEndBefore( endNode );
- endNode.remove();
- ieRange.select();
- }
-
- this.document.fire( 'selectionchange' );
- }
- :
- function()
- {
- var startContainer = this.startContainer;
-
- // If we have a collapsed range, inside an empty element, we must add
- // something to it, otherwise the caret will not be visible.
- if ( this.collapsed && startContainer.type == CKEDITOR.NODE_ELEMENT && !startContainer.getChildCount() )
- startContainer.append( new CKEDITOR.dom.text( '' ) );
-
- var nativeRange = this.document.$.createRange();
- nativeRange.setStart( startContainer.$, this.startOffset );
-
- try
- {
- nativeRange.setEnd( this.endContainer.$, this.endOffset );
- }
- catch ( e )
- {
- // There is a bug in Firefox implementation (it would be too easy
- // otherwise). The new start can't be after the end (W3C says it can).
- // So, let's create a new range and collapse it to the desired point.
- if ( e.toString().indexOf( 'NS_ERROR_ILLEGAL_VALUE' ) >= 0 )
- {
- this.collapse( true );
- nativeRange.setEnd( this.endContainer.$, this.endOffset );
- }
- else
- throw( e );
- }
-
- var selection = this.document.getSelection().getNative();
- selection.removeAllRanges();
- selection.addRange( nativeRange );
- };
-} )();
diff --git a/devel/third-party/ckeditor/plugins/showblocks/icons/showblocks-rtl.png b/devel/third-party/ckeditor/plugins/showblocks/icons/showblocks-rtl.png
new file mode 100644
index 0000000..2e3f488
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/icons/showblocks-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/icons/showblocks.png b/devel/third-party/ckeditor/plugins/showblocks/icons/showblocks.png
new file mode 100644
index 0000000..e88b789
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/icons/showblocks.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_address.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_address.png
new file mode 100644
index 0000000..1ee67aa
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_address.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_blockquote.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_blockquote.png
new file mode 100644
index 0000000..cae3aec
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_blockquote.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_div.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_div.png
new file mode 100644
index 0000000..c71f397
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_div.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_h1.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_h1.png
new file mode 100644
index 0000000..3a64347
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_h1.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_h2.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_h2.png
new file mode 100644
index 0000000..8062ebe
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_h2.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_h3.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_h3.png
new file mode 100644
index 0000000..5b6a403
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_h3.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_h4.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_h4.png
new file mode 100644
index 0000000..6c7f795
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_h4.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_h5.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_h5.png
new file mode 100644
index 0000000..e153de0
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_h5.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_h6.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_h6.png
new file mode 100644
index 0000000..c8d993a
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_h6.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_p.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_p.png
new file mode 100644
index 0000000..4e6035d
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_p.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/images/block_pre.png b/devel/third-party/ckeditor/plugins/showblocks/images/block_pre.png
new file mode 100644
index 0000000..d11a0ff
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/showblocks/images/block_pre.png differ
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/af.js b/devel/third-party/ckeditor/plugins/showblocks/lang/af.js
new file mode 100644
index 0000000..2d38fa8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'af', {
+ toolbar: 'Toon blokke'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ar.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ar.js
new file mode 100644
index 0000000..32af718
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ar', {
+ toolbar: 'Ù
خطط ØªÙØµÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/bg.js b/devel/third-party/ckeditor/plugins/showblocks/lang/bg.js
new file mode 100644
index 0000000..6c349b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'bg', {
+ toolbar: 'Ðоказва блокове'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/bn.js b/devel/third-party/ckeditor/plugins/showblocks/lang/bn.js
new file mode 100644
index 0000000..4b4824b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'bn', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/bs.js b/devel/third-party/ckeditor/plugins/showblocks/lang/bs.js
new file mode 100644
index 0000000..e998767
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'bs', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ca.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ca.js
new file mode 100644
index 0000000..821d21c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ca', {
+ toolbar: 'Mostra els blocs'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/cs.js b/devel/third-party/ckeditor/plugins/showblocks/lang/cs.js
new file mode 100644
index 0000000..6bf9719
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'cs', {
+ toolbar: 'Ukázat bloky'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/cy.js b/devel/third-party/ckeditor/plugins/showblocks/lang/cy.js
new file mode 100644
index 0000000..b9e3a5e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'cy', {
+ toolbar: 'Dangos Blociau'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/da.js b/devel/third-party/ckeditor/plugins/showblocks/lang/da.js
new file mode 100644
index 0000000..ae444d5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'da', {
+ toolbar: 'Vis afsnitsmærker'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/de.js b/devel/third-party/ckeditor/plugins/showblocks/lang/de.js
new file mode 100644
index 0000000..59f380e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'de', {
+ toolbar: 'Blöcke anzeigen'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/el.js b/devel/third-party/ckeditor/plugins/showblocks/lang/el.js
new file mode 100644
index 0000000..bad9027
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'el', {
+ toolbar: 'Î Ïοβολή ΠεÏιοÏÏν'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/en-au.js b/devel/third-party/ckeditor/plugins/showblocks/lang/en-au.js
new file mode 100644
index 0000000..bae8bf1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'en-au', {
+ toolbar: 'Show Blocks'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/en-ca.js b/devel/third-party/ckeditor/plugins/showblocks/lang/en-ca.js
new file mode 100644
index 0000000..498f4d6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'en-ca', {
+ toolbar: 'Show Blocks'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/en-gb.js b/devel/third-party/ckeditor/plugins/showblocks/lang/en-gb.js
new file mode 100644
index 0000000..982850d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'en-gb', {
+ toolbar: 'Show Blocks'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/en.js b/devel/third-party/ckeditor/plugins/showblocks/lang/en.js
new file mode 100644
index 0000000..307ee94
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'en', {
+ toolbar: 'Show Blocks'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/eo.js b/devel/third-party/ckeditor/plugins/showblocks/lang/eo.js
new file mode 100644
index 0000000..5e63384
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'eo', {
+ toolbar: 'Montri la blokojn'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/es.js b/devel/third-party/ckeditor/plugins/showblocks/lang/es.js
new file mode 100644
index 0000000..0a9dbd6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'es', {
+ toolbar: 'Mostrar bloques'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/et.js b/devel/third-party/ckeditor/plugins/showblocks/lang/et.js
new file mode 100644
index 0000000..9e3bb14
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'et', {
+ toolbar: 'Blokkide näitamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/eu.js b/devel/third-party/ckeditor/plugins/showblocks/lang/eu.js
new file mode 100644
index 0000000..540aa7a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'eu', {
+ toolbar: 'Blokeak erakutsi'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/fa.js b/devel/third-party/ckeditor/plugins/showblocks/lang/fa.js
new file mode 100644
index 0000000..7b94506
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'fa', {
+ toolbar: 'ÙÙ
Ø§ÛØ´ بÙÙÚ©ÙØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/fi.js b/devel/third-party/ckeditor/plugins/showblocks/lang/fi.js
new file mode 100644
index 0000000..0dc372e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'fi', {
+ toolbar: 'Näytä elementit'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/fo.js b/devel/third-party/ckeditor/plugins/showblocks/lang/fo.js
new file mode 100644
index 0000000..af98960
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'fo', {
+ toolbar: 'VÃs blokkar'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/showblocks/lang/fr-ca.js
new file mode 100644
index 0000000..7be95c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'fr-ca', {
+ toolbar: 'Afficher les blocs'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/fr.js b/devel/third-party/ckeditor/plugins/showblocks/lang/fr.js
new file mode 100644
index 0000000..59b271c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'fr', {
+ toolbar: 'Afficher les blocs'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/gl.js b/devel/third-party/ckeditor/plugins/showblocks/lang/gl.js
new file mode 100644
index 0000000..32ee5c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'gl', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/gu.js b/devel/third-party/ckeditor/plugins/showblocks/lang/gu.js
new file mode 100644
index 0000000..420383e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'gu', {
+ toolbar: 'બà«àª²à«àª બતાવવà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/he.js b/devel/third-party/ckeditor/plugins/showblocks/lang/he.js
new file mode 100644
index 0000000..213666c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'he', {
+ toolbar: '×צ×ת ××××§××'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/hi.js b/devel/third-party/ckeditor/plugins/showblocks/lang/hi.js
new file mode 100644
index 0000000..84b74fb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'hi', {
+ toolbar: 'बà¥à¤²à¥à¤ दिà¤à¤¾à¤¯à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/hr.js b/devel/third-party/ckeditor/plugins/showblocks/lang/hr.js
new file mode 100644
index 0000000..bab9bae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'hr', {
+ toolbar: 'Prikaži blokove'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/hu.js b/devel/third-party/ckeditor/plugins/showblocks/lang/hu.js
new file mode 100644
index 0000000..199eccc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'hu', {
+ toolbar: 'Blokkok megjelenÃtése'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/is.js b/devel/third-party/ckeditor/plugins/showblocks/lang/is.js
new file mode 100644
index 0000000..6c3937b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'is', {
+ toolbar: 'Sýna blokkir'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/it.js b/devel/third-party/ckeditor/plugins/showblocks/lang/it.js
new file mode 100644
index 0000000..3f67fa2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'it', {
+ toolbar: 'Visualizza Blocchi'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ja.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ja.js
new file mode 100644
index 0000000..9d463fb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ja', {
+ toolbar: 'ãããã¯è¡¨ç¤º'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ka.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ka.js
new file mode 100644
index 0000000..3b84a43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ka', {
+ toolbar: 'áá ááááá¡ á©áááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/km.js b/devel/third-party/ckeditor/plugins/showblocks/lang/km.js
new file mode 100644
index 0000000..dcc5bab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'km', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ko.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ko.js
new file mode 100644
index 0000000..59e09e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ko', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ku.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ku.js
new file mode 100644
index 0000000..7b9e961
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ku', {
+ toolbar: 'ÙÛØ´Ø§ÙداÙÛ Ø¨ÛØ±Ø¨ÛستÛکاÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/lt.js b/devel/third-party/ckeditor/plugins/showblocks/lang/lt.js
new file mode 100644
index 0000000..e9b38f2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'lt', {
+ toolbar: 'Rodyti blokus'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/lv.js b/devel/third-party/ckeditor/plugins/showblocks/lang/lv.js
new file mode 100644
index 0000000..49bd894
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'lv', {
+ toolbar: 'ParÄdÄ«t blokus'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/mk.js b/devel/third-party/ckeditor/plugins/showblocks/lang/mk.js
new file mode 100644
index 0000000..16a38f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'mk', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/mn.js b/devel/third-party/ckeditor/plugins/showblocks/lang/mn.js
new file mode 100644
index 0000000..d81e8d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'mn', {
+ toolbar: 'ХавÑангÑÑдÑг Ñ
аÑÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ms.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ms.js
new file mode 100644
index 0000000..e61ecb5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ms', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/nb.js b/devel/third-party/ckeditor/plugins/showblocks/lang/nb.js
new file mode 100644
index 0000000..b686ddd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'nb', {
+ toolbar: 'Vis blokker'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/nl.js b/devel/third-party/ckeditor/plugins/showblocks/lang/nl.js
new file mode 100644
index 0000000..2119f45
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'nl', {
+ toolbar: 'Toon blokken'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/no.js b/devel/third-party/ckeditor/plugins/showblocks/lang/no.js
new file mode 100644
index 0000000..0a026fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'no', {
+ toolbar: 'Vis blokker'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/pl.js b/devel/third-party/ckeditor/plugins/showblocks/lang/pl.js
new file mode 100644
index 0000000..ede79fb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'pl', {
+ toolbar: 'Pokaż bloki'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/pt-br.js b/devel/third-party/ckeditor/plugins/showblocks/lang/pt-br.js
new file mode 100644
index 0000000..5587601
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'pt-br', {
+ toolbar: 'Mostrar blocos de código'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/pt.js b/devel/third-party/ckeditor/plugins/showblocks/lang/pt.js
new file mode 100644
index 0000000..7b861a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'pt', {
+ toolbar: 'Exibir blocos'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ro.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ro.js
new file mode 100644
index 0000000..d784edc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ro', {
+ toolbar: 'AratÄ blocurile'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ru.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ru.js
new file mode 100644
index 0000000..cbace81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ru', {
+ toolbar: 'ÐÑобÑажаÑÑ Ð±Ð»Ð¾ÐºÐ¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/sk.js b/devel/third-party/ckeditor/plugins/showblocks/lang/sk.js
new file mode 100644
index 0000000..dbfdd22
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'sk', {
+ toolbar: 'Ukázať bloky'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/sl.js b/devel/third-party/ckeditor/plugins/showblocks/lang/sl.js
new file mode 100644
index 0000000..6d926d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'sl', {
+ toolbar: 'Prikaži ograde'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/showblocks/lang/sr-latn.js
new file mode 100644
index 0000000..aca8646
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'sr-latn', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/sr.js b/devel/third-party/ckeditor/plugins/showblocks/lang/sr.js
new file mode 100644
index 0000000..d7fb4d5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'sr', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/sv.js b/devel/third-party/ckeditor/plugins/showblocks/lang/sv.js
new file mode 100644
index 0000000..8956927
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'sv', {
+ toolbar: 'Visa block'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/th.js b/devel/third-party/ckeditor/plugins/showblocks/lang/th.js
new file mode 100644
index 0000000..e7acfa4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'th', {
+ toolbar: 'Show Blocks' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/tr.js b/devel/third-party/ckeditor/plugins/showblocks/lang/tr.js
new file mode 100644
index 0000000..15a2384
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'tr', {
+ toolbar: 'Blokları Göster'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/ug.js b/devel/third-party/ckeditor/plugins/showblocks/lang/ug.js
new file mode 100644
index 0000000..c82f230
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'ug', {
+ toolbar: 'بÛÙÛÙÙÙ ÙÛØ±Ø³Ûت'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/uk.js b/devel/third-party/ckeditor/plugins/showblocks/lang/uk.js
new file mode 100644
index 0000000..13a47ab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'uk', {
+ toolbar: 'ÐоказÑваÑи блоки'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/vi.js b/devel/third-party/ckeditor/plugins/showblocks/lang/vi.js
new file mode 100644
index 0000000..9450daa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'vi', {
+ toolbar: 'Hiá»n thá» các khá»i'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/showblocks/lang/zh-cn.js
new file mode 100644
index 0000000..542e5e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'zh-cn', {
+ toolbar: 'æ¾ç¤ºåºå'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/lang/zh.js b/devel/third-party/ckeditor/plugins/showblocks/lang/zh.js
new file mode 100644
index 0000000..d0cedf8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/showblocks/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'showblocks', 'zh', {
+ toolbar: '顯示åå¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/showblocks/plugin.js b/devel/third-party/ckeditor/plugins/showblocks/plugin.js
index 818e833..ddb5245 100644
--- a/devel/third-party/ckeditor/plugins/showblocks/plugin.js
+++ b/devel/third-party/ckeditor/plugins/showblocks/plugin.js
@@ -1,7 +1,7 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "showblocks" plugin. Enable it will make all block level
@@ -9,148 +9,174 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* displayed on the left-right corner.
*/
-(function()
-{
- var cssTemplate = '.%2 p,'+
- '.%2 div,'+
- '.%2 pre,'+
- '.%2 address,'+
- '.%2 blockquote,'+
- '.%2 h1,'+
- '.%2 h2,'+
- '.%2 h3,'+
- '.%2 h4,'+
- '.%2 h5,'+
- '.%2 h6'+
- '{'+
- 'background-repeat: no-repeat;'+
- 'background-position: top %3;'+
- 'border: 1px dotted gray;'+
- 'padding-top: 8px;'+
- 'padding-%3: 8px;'+
- '}'+
-
- '.%2 p'+
- '{'+
- '%1p.png);'+
- '}'+
-
- '.%2 div'+
- '{'+
- '%1div.png);'+
- '}'+
-
- '.%2 pre'+
- '{'+
- '%1pre.png);'+
- '}'+
-
- '.%2 address'+
- '{'+
- '%1address.png);'+
- '}'+
-
- '.%2 blockquote'+
- '{'+
- '%1blockquote.png);'+
- '}'+
-
- '.%2 h1'+
- '{'+
- '%1h1.png);'+
- '}'+
-
- '.%2 h2'+
- '{'+
- '%1h2.png);'+
- '}'+
-
- '.%2 h3'+
- '{'+
- '%1h3.png);'+
- '}'+
-
- '.%2 h4'+
- '{'+
- '%1h4.png);'+
- '}'+
-
- '.%2 h5'+
- '{'+
- '%1h5.png);'+
- '}'+
-
- '.%2 h6'+
- '{'+
- '%1h6.png);'+
- '}';
-
- var cssTemplateRegex = /%1/g, cssClassRegex = /%2/g, backgroundPositionRegex = /%3/g;
-
- var commandDefinition =
- {
- preserveState : true,
- editorFocus : false,
-
- exec : function ( editor )
- {
+(function() {
+ var commandDefinition = {
+ readOnly: 1,
+ preserveState: true,
+ editorFocus: false,
+
+ exec: function( editor ) {
this.toggleState();
this.refresh( editor );
},
- refresh : function( editor )
- {
- var funcName = ( this.state == CKEDITOR.TRISTATE_ON ) ? 'addClass' : 'removeClass';
- editor.document.getBody()[ funcName ]( 'cke_show_blocks' );
+ refresh: function( editor ) {
+ if ( editor.document ) {
+ // Show blocks turns inactive after editor loses focus when in inline.
+ var showBlocks = this.state == CKEDITOR.TRISTATE_ON &&
+ ( editor.elementMode != CKEDITOR.ELEMENT_MODE_INLINE ||
+ editor.focusManager.hasFocus );
+
+ var funcName = showBlocks ? 'attachClass' : 'removeClass';
+ editor.editable()[ funcName ]( 'cke_show_blocks' );
+ }
}
};
- CKEDITOR.plugins.add( 'showblocks',
- {
- requires : [ 'wysiwygarea' ],
+ CKEDITOR.plugins.add( 'showblocks', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'showblocks,showblocks-rtl', // %REMOVE_LINE_CORE%
+ onLoad: function() {
+ var cssTemplate = '.%2 p,' +
+ '.%2 div,' +
+ '.%2 pre,' +
+ '.%2 address,' +
+ '.%2 blockquote,' +
+ '.%2 h1,' +
+ '.%2 h2,' +
+ '.%2 h3,' +
+ '.%2 h4,' +
+ '.%2 h5,' +
+ '.%2 h6' +
+ '{' +
+ 'background-repeat: no-repeat;' +
+ 'border: 1px dotted gray;' +
+ 'padding-top: 8px;' +
+ '}' +
+
+ '.%2 p' +
+ '{' +
+ '%1p.png);' +
+ '}' +
+
+ '.%2 div' +
+ '{' +
+ '%1div.png);' +
+ '}' +
+
+ '.%2 pre' +
+ '{' +
+ '%1pre.png);' +
+ '}' +
+
+ '.%2 address' +
+ '{' +
+ '%1address.png);' +
+ '}' +
+
+ '.%2 blockquote' +
+ '{' +
+ '%1blockquote.png);' +
+ '}' +
+
+ '.%2 h1' +
+ '{' +
+ '%1h1.png);' +
+ '}' +
+
+ '.%2 h2' +
+ '{' +
+ '%1h2.png);' +
+ '}' +
+
+ '.%2 h3' +
+ '{' +
+ '%1h3.png);' +
+ '}' +
+
+ '.%2 h4' +
+ '{' +
+ '%1h4.png);' +
+ '}' +
+
+ '.%2 h5' +
+ '{' +
+ '%1h5.png);' +
+ '}' +
+
+ '.%2 h6' +
+ '{' +
+ '%1h6.png);' +
+ '}';
+
+ // Styles with contents direction awareness.
+ function cssWithDir( dir ) {
+ var template = '.%1.%2 p,' +
+ '.%1.%2 div,' +
+ '.%1.%2 pre,' +
+ '.%1.%2 address,' +
+ '.%1.%2 blockquote,' +
+ '.%1.%2 h1,' +
+ '.%1.%2 h2,' +
+ '.%1.%2 h3,' +
+ '.%1.%2 h4,' +
+ '.%1.%2 h5,' +
+ '.%1.%2 h6' +
+ '{' +
+ 'background-position: top %3;' +
+ 'padding-%3: 8px;' +
+ '}';
+
+ return template.replace( /%1/g, 'cke_show_blocks' ).replace( /%2/g, 'cke_contents_' + dir ).replace( /%3/g, dir == 'rtl' ? 'right' : 'left' );
+ }
+
+ CKEDITOR.addCss( cssTemplate.replace( /%1/g, 'background-image: url(' + CKEDITOR.getUrl( this.path ) + 'images/block_' ).replace( /%2/g, 'cke_show_blocks ' ) + cssWithDir( 'ltr' ) + cssWithDir( 'rtl' ) );
+ },
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
- init : function( editor )
- {
var command = editor.addCommand( 'showblocks', commandDefinition );
command.canUndo = false;
if ( editor.config.startupOutlineBlocks )
command.setState( CKEDITOR.TRISTATE_ON );
- editor.addCss( cssTemplate
- .replace( cssTemplateRegex, 'background-image: url(' + CKEDITOR.getUrl( this.path ) + 'images/block_' )
- .replace( cssClassRegex, 'cke_show_blocks ' )
- .replace( backgroundPositionRegex, editor.lang.dir == 'rtl' ? 'right' : 'left' ) );
-
- editor.ui.addButton( 'ShowBlocks',
- {
- label : editor.lang.showBlocks,
- command : 'showblocks'
- });
+ editor.ui.addButton && editor.ui.addButton( 'ShowBlocks', {
+ label: editor.lang.showblocks.toolbar,
+ command: 'showblocks',
+ toolbar: 'tools,20'
+ });
// Refresh the command on setData.
- editor.on( 'mode', function()
- {
- if ( command.state != CKEDITOR.TRISTATE_DISABLED )
- command.refresh( editor );
- });
+ editor.on( 'mode', function() {
+ if ( command.state != CKEDITOR.TRISTATE_DISABLED )
+ command.refresh( editor );
+ });
+
+ // Refresh the command on focus/blur in inline.
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE ) {
+ function onFocusBlur() {
+ command.refresh( editor );
+ }
+ editor.on( 'focus', onFocusBlur );
+ editor.on( 'blur', onFocusBlur );
+ }
// Refresh the command on setData.
- editor.on( 'contentDom', function()
- {
- if ( command.state != CKEDITOR.TRISTATE_DISABLED )
- command.refresh( editor );
- });
+ editor.on( 'contentDom', function() {
+ if ( command.state != CKEDITOR.TRISTATE_DISABLED )
+ command.refresh( editor );
+ });
}
});
-} )();
+})();
/**
- * Whether to automaticaly enable the "show block" command when the editor
- * loads.
- * @type Boolean
- * @default false
- * @example
- * config.startupOutlineBlocks = true;
+ * Whether to automaticaly enable the show block" command when the editor loads.
+ *
+ * config.startupOutlineBlocks = true;
+ *
+ * @cfg {Boolean} [startupOutlineBlocks=false]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.startupOutlineBlocks = false;
diff --git a/devel/third-party/ckeditor/plugins/showborders/plugin.js b/devel/third-party/ckeditor/plugins/showborders/plugin.js
index 9219206..57e1b19 100644
--- a/devel/third-party/ckeditor/plugins/showborders/plugin.js
+++ b/devel/third-party/ckeditor/plugins/showborders/plugin.js
@@ -1,66 +1,65 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "show border" plugin. The command display visible outline
* border line around all table elements if table doesn't have a none-zero 'border' attribute specified.
*/
-(function()
-{
- var showBorderClassName = 'cke_show_border',
- cssStyleText,
- cssTemplate =
- // TODO: For IE6, we don't have child selector support,
- // where nested table cells could be incorrect.
- ( CKEDITOR.env.ie6Compat ?
- [
- '.%1 table.%2,',
- '.%1 table.%2 td, .%1 table.%2 th,',
- '{',
- 'border : #d3d3d3 1px dotted',
- '}'
- ] :
- [
- '.%1 table.%2,',
- '.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,',
- '.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,',
- '.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,',
- '.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th',
- '{',
- 'border : #d3d3d3 1px dotted',
- '}'
- ] ).join( '' );
-
- cssStyleText = cssTemplate.replace( /%2/g, showBorderClassName ).replace( /%1/g, 'cke_show_borders ' );
-
- var commandDefinition =
- {
- preserveState : true,
- editorFocus : false,
-
- exec : function ( editor )
- {
+(function() {
+ var commandDefinition = {
+ preserveState: true,
+ editorFocus: false,
+ readOnly: 1,
+
+ exec: function( editor ) {
this.toggleState();
this.refresh( editor );
},
- refresh : function( editor )
- {
- var funcName = ( this.state == CKEDITOR.TRISTATE_ON ) ? 'addClass' : 'removeClass';
- editor.document.getBody()[ funcName ]( 'cke_show_borders' );
+ refresh: function( editor ) {
+ if ( editor.document ) {
+ var funcName = ( this.state == CKEDITOR.TRISTATE_ON ) ? 'attachClass' : 'removeClass';
+ editor.editable()[ funcName ]( 'cke_show_borders' );
+ }
}
};
- CKEDITOR.plugins.add( 'showborders',
- {
- requires : [ 'wysiwygarea' ],
- modes : { 'wysiwyg' : 1 },
+ var showBorderClassName = 'cke_show_border';
+
+ CKEDITOR.plugins.add( 'showborders', {
+ modes: { 'wysiwyg':1 },
+
+ onLoad: function() {
+ var cssStyleText,
+ cssTemplate =
+ // TODO: For IE6, we don't have child selector support,
+ // where nested table cells could be incorrect.
+ ( CKEDITOR.env.ie6Compat ? [
+ '.%1 table.%2,',
+ '.%1 table.%2 td, .%1 table.%2 th',
+ '{',
+ 'border : #d3d3d3 1px dotted',
+ '}'
+ ] : [
+ '.%1 table.%2,',
+ '.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,',
+ '.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,',
+ '.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,',
+ '.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th',
+ '{',
+ 'border : #d3d3d3 1px dotted',
+ '}'
+ ] ).join( '' );
+
+ cssStyleText = cssTemplate.replace( /%2/g, showBorderClassName ).replace( /%1/g, 'cke_show_borders ' );
+
+ CKEDITOR.addCss( cssStyleText );
+ },
- init : function( editor )
- {
+ init: function( editor ) {
var command = editor.addCommand( 'showborders', commandDefinition );
command.canUndo = false;
@@ -68,134 +67,108 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( editor.config.startupShowBorders !== false )
command.setState( CKEDITOR.TRISTATE_ON );
- editor.addCss( cssStyleText );
-
// Refresh the command on setData.
- editor.on( 'mode', function()
- {
- if ( command.state != CKEDITOR.TRISTATE_DISABLED )
- command.refresh( editor );
- }, null, null, 100 );
+ editor.on( 'mode', function() {
+ if ( command.state != CKEDITOR.TRISTATE_DISABLED )
+ command.refresh( editor );
+ }, null, null, 100 );
// Refresh the command on wysiwyg frame reloads.
- editor.on( 'contentDom', function()
- {
- if ( command.state != CKEDITOR.TRISTATE_DISABLED )
- command.refresh( editor );
- });
-
- editor.on( 'removeFormatCleanup', function( evt )
- {
- var element = evt.data;
- if ( editor.getCommand( 'showborders' ).state == CKEDITOR.TRISTATE_ON &&
- element.is( 'table' ) && ( !element.hasAttribute( 'border' ) || parseInt( element.getAttribute( 'border' ), 10 ) <= 0 ) )
- element.addClass( showBorderClassName );
- });
+ editor.on( 'contentDom', function() {
+ if ( command.state != CKEDITOR.TRISTATE_DISABLED )
+ command.refresh( editor );
+ });
+
+ editor.on( 'removeFormatCleanup', function( evt ) {
+ var element = evt.data;
+ if ( editor.getCommand( 'showborders' ).state == CKEDITOR.TRISTATE_ON && element.is( 'table' ) && ( !element.hasAttribute( 'border' ) || parseInt( element.getAttribute( 'border' ), 10 ) <= 0 ) )
+ element.addClass( showBorderClassName );
+ });
},
- afterInit : function( editor )
- {
+ afterInit: function( editor ) {
var dataProcessor = editor.dataProcessor,
dataFilter = dataProcessor && dataProcessor.dataFilter,
htmlFilter = dataProcessor && dataProcessor.htmlFilter;
- if ( dataFilter )
- {
- dataFilter.addRules(
- {
- elements :
- {
- 'table' : function( element )
- {
- var attributes = element.attributes,
- cssClass = attributes[ 'class' ],
- border = parseInt( attributes.border, 10 );
-
- if ( !border || border <= 0 )
- attributes[ 'class' ] = ( cssClass || '' ) + ' ' + showBorderClassName;
- }
+ if ( dataFilter ) {
+ dataFilter.addRules({
+ elements: {
+ 'table': function( element ) {
+ var attributes = element.attributes,
+ cssClass = attributes[ 'class' ],
+ border = parseInt( attributes.border, 10 );
+
+ if ( ( !border || border <= 0 ) && ( !cssClass || cssClass.indexOf( showBorderClassName ) == -1 ) )
+ attributes[ 'class' ] = ( cssClass || '' ) + ' ' + showBorderClassName;
}
- } );
+ }
+ });
}
- if ( htmlFilter )
- {
- htmlFilter.addRules(
- {
- elements :
- {
- 'table' : function( table )
- {
+ if ( htmlFilter ) {
+ htmlFilter.addRules({
+ elements: {
+ 'table': function( table ) {
var attributes = table.attributes,
cssClass = attributes[ 'class' ];
- cssClass && ( attributes[ 'class' ] =
- cssClass.replace( showBorderClassName, '' )
- .replace( /\s{2}/, ' ' )
- .replace( /^\s+|\s+$/, '' ) );
+ cssClass && ( attributes[ 'class' ] = cssClass.replace( showBorderClassName, '' ).replace( /\s{2}/, ' ' ).replace( /^\s+|\s+$/, '' ) );
}
}
- } );
+ });
}
}
});
// Table dialog must be aware of it.
- CKEDITOR.on( 'dialogDefinition', function( ev )
- {
+ CKEDITOR.on( 'dialogDefinition', function( ev ) {
var dialogName = ev.data.name;
- if ( dialogName == 'table' || dialogName == 'tableProperties' )
- {
+ if ( dialogName == 'table' || dialogName == 'tableProperties' ) {
var dialogDefinition = ev.data.definition,
infoTab = dialogDefinition.getContents( 'info' ),
borderField = infoTab.get( 'txtBorder' ),
originalCommit = borderField.commit;
- borderField.commit = CKEDITOR.tools.override( originalCommit, function( org )
- {
- return function( data, selectedTable )
- {
- org.apply( this, arguments );
- var value = parseInt( this.getValue(), 10 );
- selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
- };
- } );
+ borderField.commit = CKEDITOR.tools.override( originalCommit, function( org ) {
+ return function( data, selectedTable ) {
+ org.apply( this, arguments );
+ var value = parseInt( this.getValue(), 10 );
+ selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
+ };
+ });
var advTab = dialogDefinition.getContents( 'advanced' ),
classField = advTab && advTab.get( 'advCSSClasses' );
- if ( classField )
- {
- classField.setup = CKEDITOR.tools.override( classField.setup, function( originalSetup )
- {
- return function()
- {
- originalSetup.apply( this, arguments );
- this.setValue( this.getValue().replace( /cke_show_border/, '' ) );
- };
- });
-
- classField.commit = CKEDITOR.tools.override( classField.commit, function( originalCommit )
- {
- return function( data, element )
- {
- originalCommit.apply( this, arguments );
-
- if ( !parseInt( element.getAttribute( 'border' ), 10 ) )
- element.addClass( 'cke_show_border' );
- };
- });
+ if ( classField ) {
+ classField.setup = CKEDITOR.tools.override( classField.setup, function( originalSetup ) {
+ return function() {
+ originalSetup.apply( this, arguments );
+ this.setValue( this.getValue().replace( /cke_show_border/, '' ) );
+ };
+ });
+
+ classField.commit = CKEDITOR.tools.override( classField.commit, function( originalCommit ) {
+ return function( data, element ) {
+ originalCommit.apply( this, arguments );
+
+ if ( !parseInt( element.getAttribute( 'border' ), 10 ) )
+ element.addClass( 'cke_show_border' );
+ };
+ });
}
}
});
-} )();
+})();
/**
* Whether to automatically enable the "show borders" command when the editor loads.
- * @type Boolean
- * @default true
- * @example
- * config.startupShowBorders = false;
+ *
+ * config.startupShowBorders = false;
+ *
+ * @cfg {Boolean} [startupShowBorders=true]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/smiley/dialogs/smiley.js b/devel/third-party/ckeditor/plugins/smiley/dialogs/smiley.js
index 8371fb1..7127842 100644
--- a/devel/third-party/ckeditor/plugins/smiley/dialogs/smiley.js
+++ b/devel/third-party/ckeditor/plugins/smiley/dialogs/smiley.js
@@ -1,130 +1,116 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'smiley', function( editor )
-{
+CKEDITOR.dialog.add( 'smiley', function( editor ) {
var config = editor.config,
lang = editor.lang.smiley,
images = config.smiley_images,
columns = config.smiley_columns || 8,
i;
- /**
- * Simulate "this" of a dialog for non-dialog events.
- * @type {CKEDITOR.dialog}
- */
+ // Simulate "this" of a dialog for non-dialog events.
+ // @type {CKEDITOR.dialog}
var dialog;
- var onClick = function( evt )
- {
- var target = evt.data.getTarget(),
- targetName = target.getName();
+ var onClick = function( evt ) {
+ var target = evt.data.getTarget(),
+ targetName = target.getName();
- if ( targetName == 'a' )
- target = target.getChild( 0 );
- else if ( targetName != 'img' )
- return;
-
- var src = target.getAttribute( 'cke_src' ),
- title = target.getAttribute( 'title' );
+ if ( targetName == 'a' )
+ target = target.getChild( 0 );
+ else if ( targetName != 'img' )
+ return;
- var img = editor.document.createElement( 'img',
- {
- attributes :
- {
- src : src,
- _cke_saved_src : src,
- title : title,
- alt : title
+ var src = target.getAttribute( 'cke_src' ),
+ title = target.getAttribute( 'title' );
+
+ var img = editor.document.createElement( 'img', {
+ attributes: {
+ src: src,
+ 'data-cke-saved-src': src,
+ title: title,
+ alt: title,
+ width: target.$.width,
+ height: target.$.height
}
});
- editor.insertElement( img );
+ editor.insertElement( img );
- dialog.hide();
- evt.data.preventDefault();
- };
+ dialog.hide();
+ evt.data.preventDefault();
+ };
- var onKeydown = CKEDITOR.tools.addFunction( function( ev, element )
- {
+ var onKeydown = CKEDITOR.tools.addFunction( function( ev, element ) {
ev = new CKEDITOR.dom.event( ev );
element = new CKEDITOR.dom.element( element );
var relative, nodeToMove;
- var keystroke = ev.getKeystroke();
- var rtl = editor.lang.dir == 'rtl';
- switch ( keystroke )
- {
+ var keystroke = ev.getKeystroke(),
+ rtl = editor.lang.dir == 'rtl';
+ switch ( keystroke ) {
// UP-ARROW
- case 38 :
+ case 38:
// relative is TR
- if ( ( relative = element.getParent().getParent().getPrevious() ) )
- {
- nodeToMove = relative.getChild( [element.getParent().getIndex(), 0] );
+ if ( ( relative = element.getParent().getParent().getPrevious() ) ) {
+ nodeToMove = relative.getChild( [ element.getParent().getIndex(), 0 ] );
nodeToMove.focus();
}
ev.preventDefault();
break;
- // DOWN-ARROW
- case 40 :
+ // DOWN-ARROW
+ case 40:
// relative is TR
- if ( ( relative = element.getParent().getParent().getNext() ) )
- {
- nodeToMove = relative.getChild( [element.getParent().getIndex(), 0] );
+ if ( ( relative = element.getParent().getParent().getNext() ) ) {
+ nodeToMove = relative.getChild( [ element.getParent().getIndex(), 0 ] );
if ( nodeToMove )
nodeToMove.focus();
}
ev.preventDefault();
break;
- // ENTER
- // SPACE
- case 32 :
- onClick( { data: ev } );
+ // ENTER
+ // SPACE
+ case 32:
+ onClick({ data: ev } );
ev.preventDefault();
break;
- // RIGHT-ARROW
- case rtl ? 37 : 39 :
- // TAB
- case 9 :
+ // RIGHT-ARROW
+ case rtl ? 37:
+ 39 :
// relative is TD
- if ( ( relative = element.getParent().getNext() ) )
- {
+ if ( ( relative = element.getParent().getNext() ) ) {
nodeToMove = relative.getChild( 0 );
nodeToMove.focus();
- ev.preventDefault(true);
+ ev.preventDefault( true );
}
// relative is TR
- else if ( ( relative = element.getParent().getParent().getNext() ) )
- {
- nodeToMove = relative.getChild( [0, 0] );
+ else if ( ( relative = element.getParent().getParent().getNext() ) ) {
+ nodeToMove = relative.getChild( [ 0, 0 ] );
if ( nodeToMove )
nodeToMove.focus();
- ev.preventDefault(true);
+ ev.preventDefault( true );
}
break;
- // LEFT-ARROW
- case rtl ? 39 : 37 :
- // SHIFT + TAB
- case CKEDITOR.SHIFT + 9 :
+ // LEFT-ARROW
+ case rtl ? 39:
+ 37 :
// relative is TD
- if ( ( relative = element.getParent().getPrevious() ) )
- {
+ if ( ( relative = element.getParent().getPrevious() ) ) {
nodeToMove = relative.getChild( 0 );
nodeToMove.focus();
- ev.preventDefault(true);
+ ev.preventDefault( true );
}
// relative is TR
- else if ( ( relative = element.getParent().getParent().getPrevious() ) )
- {
+ else if ( ( relative = element.getParent().getParent().getPrevious() ) ) {
nodeToMove = relative.getLast().getChild( 0 );
nodeToMove.focus();
- ev.preventDefault(true);
+ ev.preventDefault( true );
}
break;
- default :
+ default:
// Do not stop not handled events.
return;
}
@@ -132,85 +118,75 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
// Build the HTML for the smiley images table.
var labelId = CKEDITOR.tools.getNextId() + '_smiley_emtions_label';
- var html =
- [
+ var html = [
'<div>' +
- '<span id="' + labelId + '" class="cke_voice_label">' + lang.options +'</span>',
- '<table role="listbox" aria-labelledby="' + labelId + '" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',
+ '<span id="' + labelId + '" class="cke_voice_label">' + lang.options + '</span>',
+ '<table role="listbox" aria-labelledby="' + labelId + '" style="width:100%;height:100%;border-collapse:separate;" cellspacing="2" cellpadding="2"',
CKEDITOR.env.ie && CKEDITOR.env.quirks ? ' style="position:absolute;"' : '',
'><tbody>'
- ];
+ ];
var size = images.length;
- for ( i = 0 ; i < size ; i++ )
- {
+ for ( i = 0; i < size; i++ ) {
if ( i % columns === 0 )
- html.push( '<tr>' );
+ html.push( '<tr role="presentation">' );
var smileyLabelId = 'cke_smile_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
- html.push(
- '<td class="cke_dark_background cke_centered" style="vertical-align: middle;">' +
- '<a href="javascript:void(0)" role="option"',
- ' aria-posinset="' + ( i +1 ) + '"',
- ' aria-setsize="' + size + '"',
- ' aria-labelledby="' + smileyLabelId + '"',
- ' class="cke_smile cke_hand" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">',
- '<img class="cke_hand" title="', config.smiley_descriptions[i], '"' +
- ' cke_src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '" alt="', config.smiley_descriptions[i], '"',
- ' src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '"',
- // IE BUG: Below is a workaround to an IE image loading bug to ensure the image sizes are correct.
- ( CKEDITOR.env.ie ? ' onload="this.setAttribute(\'width\', 2); this.removeAttribute(\'width\');" ' : '' ),
- '>' +
- '<span id="' + smileyLabelId + '" class="cke_voice_label">' +config.smiley_descriptions[ i ] + '</span>' +
- '</a>',
- '</td>' );
+ html.push( '<td class="cke_dark_background cke_centered" style="vertical-align: middle;" role="presentation">' +
+ '<a href="javascript:void(0)" role="option"', ' aria-posinset="' + ( i + 1 ) + '"', ' aria-setsize="' + size + '"', ' aria-labelledby="' + smileyLabelId + '"', ' class="cke_smile cke_hand" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ', onKeydown, ', event, this );">', '<img class="cke_hand" title="', config.smiley_descriptions[ i ], '"' +
+ ' cke_src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '" alt="', config.smiley_descriptions[ i ], '"', ' src="', CKEDITOR.tools.htmlEncode( config.smiley_path + images[ i ] ), '"',
+ // IE BUG: Below is a workaround to an IE image loading bug to ensure the image sizes are correct.
+ ( CKEDITOR.env.ie ? ' onload="this.setAttribute(\'width\', 2); this.removeAttribute(\'width\');" ' : '' ), '>' +
+ '<span id="' + smileyLabelId + '" class="cke_voice_label">' + config.smiley_descriptions[ i ] + '</span>' +
+ '</a>', '</td>' );
if ( i % columns == columns - 1 )
html.push( '</tr>' );
}
- if ( i < columns - 1 )
- {
- for ( ; i < columns - 1 ; i++ )
+ if ( i < columns - 1 ) {
+ for ( ; i < columns - 1; i++ )
html.push( '<td></td>' );
html.push( '</tr>' );
}
html.push( '</tbody></table></div>' );
- var smileySelector =
- {
- type : 'html',
- html : html.join( '' ),
- onLoad : function( event )
- {
+ var smileySelector = {
+ type: 'html',
+ id: 'smileySelector',
+ html: html.join( '' ),
+ onLoad: function( event ) {
dialog = event.sender;
},
- focus : function()
- {
- var firstSmile = this.getElement().getElementsByTag( 'a' ).getItem( 0 );
- firstSmile.focus();
- },
- onClick : onClick,
- style : 'width: 100%; border-collapse: separate;'
+ focus: function() {
+ var self = this;
+ // IE need a while to move the focus (#6539).
+ setTimeout( function() {
+ var firstSmile = self.getElement().getElementsByTag( 'a' ).getItem( 0 );
+ firstSmile.focus();
+ }, 0 );
+ },
+ onClick: onClick,
+ style: 'width: 100%; border-collapse: separate;'
};
return {
- title : editor.lang.smiley.title,
- minWidth : 270,
- minHeight : 120,
- contents : [
+ title: editor.lang.smiley.title,
+ minWidth: 270,
+ minHeight: 120,
+ contents: [
{
- id : 'tab1',
- label : '',
- title : '',
- expand : true,
- padding : 0,
- elements : [
- smileySelector
- ]
- }
+ id: 'tab1',
+ label: '',
+ title: '',
+ expand: true,
+ padding: 0,
+ elements: [
+ smileySelector
+ ]
+ }
],
- buttons : [ CKEDITOR.dialog.cancelButton ]
+ buttons: [ CKEDITOR.dialog.cancelButton ]
};
-} );
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/icons/smiley.png b/devel/third-party/ckeditor/plugins/smiley/icons/smiley.png
new file mode 100644
index 0000000..c1ef15f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/icons/smiley.png differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/angel_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/angel_smile.gif
new file mode 100644
index 0000000..2cf4894
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/angel_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/angry_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/angry_smile.gif
new file mode 100644
index 0000000..40b52d3
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/angry_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/broken_heart.gif b/devel/third-party/ckeditor/plugins/smiley/images/broken_heart.gif
new file mode 100644
index 0000000..b6d0166
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/broken_heart.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/confused_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/confused_smile.gif
new file mode 100644
index 0000000..a52db7a
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/confused_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/cry_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/cry_smile.gif
new file mode 100644
index 0000000..1ef6ba4
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/cry_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/devil_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/devil_smile.gif
new file mode 100644
index 0000000..bfb2507
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/devil_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/embaressed_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/embaressed_smile.gif
new file mode 100644
index 0000000..d9cedc5
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/embaressed_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/embarrassed_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/embarrassed_smile.gif
new file mode 100644
index 0000000..d9cedc5
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/embarrassed_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/envelope.gif b/devel/third-party/ckeditor/plugins/smiley/images/envelope.gif
new file mode 100644
index 0000000..94e0b1f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/envelope.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/heart.gif b/devel/third-party/ckeditor/plugins/smiley/images/heart.gif
new file mode 100644
index 0000000..680ae2f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/heart.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/kiss.gif b/devel/third-party/ckeditor/plugins/smiley/images/kiss.gif
new file mode 100644
index 0000000..70e5255
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/kiss.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/lightbulb.gif b/devel/third-party/ckeditor/plugins/smiley/images/lightbulb.gif
new file mode 100644
index 0000000..d44c2ff
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/lightbulb.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/omg_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/omg_smile.gif
new file mode 100644
index 0000000..ab7ea69
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/omg_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/regular_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/regular_smile.gif
new file mode 100644
index 0000000..e5bc34b
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/regular_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/sad_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/sad_smile.gif
new file mode 100644
index 0000000..ae4cf1e
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/sad_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/shades_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/shades_smile.gif
new file mode 100644
index 0000000..b454017
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/shades_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/teeth_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/teeth_smile.gif
new file mode 100644
index 0000000..7d734d1
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/teeth_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/thumbs_down.gif b/devel/third-party/ckeditor/plugins/smiley/images/thumbs_down.gif
new file mode 100644
index 0000000..90b9978
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/thumbs_down.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/thumbs_up.gif b/devel/third-party/ckeditor/plugins/smiley/images/thumbs_up.gif
new file mode 100644
index 0000000..b633284
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/thumbs_up.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/tongue_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/tongue_smile.gif
new file mode 100644
index 0000000..b2e657f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/tongue_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/tounge_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/tounge_smile.gif
new file mode 100644
index 0000000..b2e657f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/tounge_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif
new file mode 100644
index 0000000..7709882
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/images/wink_smile.gif b/devel/third-party/ckeditor/plugins/smiley/images/wink_smile.gif
new file mode 100644
index 0000000..b210295
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/smiley/images/wink_smile.gif differ
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/af.js b/devel/third-party/ckeditor/plugins/smiley/lang/af.js
new file mode 100644
index 0000000..baa397f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/af.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'af', {
+ options: 'Lagbekkie opsies',
+ title: 'Voeg lagbekkie by',
+ toolbar: 'Lagbekkie'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ar.js b/devel/third-party/ckeditor/plugins/smiley/lang/ar.js
new file mode 100644
index 0000000..d0ab8bb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ar.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ar', {
+ options: 'Smiley Options', // MISSING
+ title: 'إدراج ابتساÙ
ات',
+ toolbar: 'ابتساÙ
ات'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/bg.js b/devel/third-party/ckeditor/plugins/smiley/lang/bg.js
new file mode 100644
index 0000000..686f91a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/bg.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'bg', {
+ options: 'ÐпÑии за ÑÑмивкаÑа',
+ title: 'ÐмÑкване на ÑÑмивка',
+ toolbar: 'УÑмивка'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/bn.js b/devel/third-party/ckeditor/plugins/smiley/lang/bn.js
new file mode 100644
index 0000000..3850d52
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/bn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'bn', {
+ options: 'Smiley Options', // MISSING
+ title: 'সà§à¦®à¦¾à¦à¦²à§ যà§à¦à§à¦¤ à¦à¦°',
+ toolbar: 'সà§à¦®à¦¾à¦à¦²à§'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/bs.js b/devel/third-party/ckeditor/plugins/smiley/lang/bs.js
new file mode 100644
index 0000000..ef63747
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/bs.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'bs', {
+ options: 'Smiley Options', // MISSING
+ title: 'Ubaci smješka',
+ toolbar: 'Smješko'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ca.js b/devel/third-party/ckeditor/plugins/smiley/lang/ca.js
new file mode 100644
index 0000000..9d43f42
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ca.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ca', {
+ options: 'Opcions d\'emoticones',
+ title: 'Insereix una icona',
+ toolbar: 'Icona'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/cs.js b/devel/third-party/ckeditor/plugins/smiley/lang/cs.js
new file mode 100644
index 0000000..5d3e234
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/cs.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'cs', {
+ options: 'Nastavenà smajlÃků',
+ title: 'Vkládánà smajlÃků',
+ toolbar: 'SmajlÃci'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/cy.js b/devel/third-party/ckeditor/plugins/smiley/lang/cy.js
new file mode 100644
index 0000000..a0d4b63
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/cy.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'cy', {
+ options: 'Opsiynau Gwenogluniau',
+ title: 'Mewnosod Gwenoglun',
+ toolbar: 'Gwenoglun'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/da.js b/devel/third-party/ckeditor/plugins/smiley/lang/da.js
new file mode 100644
index 0000000..81026a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/da.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'da', {
+ options: 'Smileymuligheder',
+ title: 'Vælg smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/de.js b/devel/third-party/ckeditor/plugins/smiley/lang/de.js
new file mode 100644
index 0000000..b7cfb8a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/de.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'de', {
+ options: 'Smiley Optionen',
+ title: 'Smiley auswählen',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/el.js b/devel/third-party/ckeditor/plugins/smiley/lang/el.js
new file mode 100644
index 0000000..5dc59bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/el.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'el', {
+ options: 'ÎÏιλογÎÏ Smiley',
+ title: 'ÎÏιλÎξÏε Îνα Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/en-au.js b/devel/third-party/ckeditor/plugins/smiley/lang/en-au.js
new file mode 100644
index 0000000..ce8169c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/en-au.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'en-au', {
+ options: 'Smiley Options', // MISSING
+ title: 'Insert a Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/en-ca.js b/devel/third-party/ckeditor/plugins/smiley/lang/en-ca.js
new file mode 100644
index 0000000..75dded0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/en-ca.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'en-ca', {
+ options: 'Smiley Options', // MISSING
+ title: 'Insert a Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/en-gb.js b/devel/third-party/ckeditor/plugins/smiley/lang/en-gb.js
new file mode 100644
index 0000000..206fd11
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/en-gb.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'en-gb', {
+ options: 'Smiley Options',
+ title: 'Insert a Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/en.js b/devel/third-party/ckeditor/plugins/smiley/lang/en.js
new file mode 100644
index 0000000..c5c8b10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/en.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'en', {
+ options: 'Smiley Options',
+ title: 'Insert a Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/eo.js b/devel/third-party/ckeditor/plugins/smiley/lang/eo.js
new file mode 100644
index 0000000..9b64fe6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/eo.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'eo', {
+ options: 'Opcioj pri mienvinjetoj',
+ title: 'Enmeti Mienvinjeton',
+ toolbar: 'Mienvinjeto'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/es.js b/devel/third-party/ckeditor/plugins/smiley/lang/es.js
new file mode 100644
index 0000000..375ec70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/es.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'es', {
+ options: 'Opciones de emoticonos',
+ title: 'Insertar un Emoticon',
+ toolbar: 'Emoticonos'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/et.js b/devel/third-party/ckeditor/plugins/smiley/lang/et.js
new file mode 100644
index 0000000..bdc4693
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/et.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'et', {
+ options: 'Emotikonide valikud',
+ title: 'Sisesta emotikon',
+ toolbar: 'Emotikon'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/eu.js b/devel/third-party/ckeditor/plugins/smiley/lang/eu.js
new file mode 100644
index 0000000..e65b810
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/eu.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'eu', {
+ options: 'Smiley Options', // MISSING
+ title: 'Aurpegiera Sartu',
+ toolbar: 'Aurpegierak'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/fa.js b/devel/third-party/ckeditor/plugins/smiley/lang/fa.js
new file mode 100644
index 0000000..b243b21
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/fa.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'fa', {
+ options: 'گزÛÙÙÙØ§Û Ø®ÙØ¯Ø§ÙÚ©',
+ title: 'Ú¯ÙØ¬Ø§ÙØ¯Ù Ø®ÙØ¯Ø§ÙÚ©',
+ toolbar: 'Ø®ÙØ¯Ø§ÙÚ©'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/fi.js b/devel/third-party/ckeditor/plugins/smiley/lang/fi.js
new file mode 100644
index 0000000..750d507
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/fi.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'fi', {
+ options: 'Hymiön ominaisuudet',
+ title: 'Lisää hymiö',
+ toolbar: 'Hymiö'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/fo.js b/devel/third-party/ckeditor/plugins/smiley/lang/fo.js
new file mode 100644
index 0000000..71270a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/fo.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'fo', {
+ options: 'Møguleikar fyri Smiley',
+ title: 'Vel Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/smiley/lang/fr-ca.js
new file mode 100644
index 0000000..c2e3a31
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/fr-ca.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'fr-ca', {
+ options: 'Smiley Options', // MISSING
+ title: 'Insérer un Emoticon',
+ toolbar: 'Emoticon'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/fr.js b/devel/third-party/ckeditor/plugins/smiley/lang/fr.js
new file mode 100644
index 0000000..5fa2d20
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/fr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'fr', {
+ options: 'Options des émoticones',
+ title: 'Insérer un émoticone',
+ toolbar: 'Ãmoticones'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/gl.js b/devel/third-party/ckeditor/plugins/smiley/lang/gl.js
new file mode 100644
index 0000000..b2e0297
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/gl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'gl', {
+ options: 'Smiley Options', // MISSING
+ title: 'Inserte un Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/gu.js b/devel/third-party/ckeditor/plugins/smiley/lang/gu.js
new file mode 100644
index 0000000..c583551
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/gu.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'gu', {
+ options: 'સમà«àª¯à«àª²à« વિàªàª²à«àªªà«',
+ title: 'સà«àª®àª¾àªàª²à« પસàªàª¦ àªàª°à«',
+ toolbar: 'સà«àª®àª¾àªàª²à«'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/he.js b/devel/third-party/ckeditor/plugins/smiley/lang/he.js
new file mode 100644
index 0000000..928d30f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/he.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'he', {
+ options: '×פשר×××ת ס××××××',
+ title: '××ספת ס×××××',
+ toolbar: 'ס×××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/hi.js b/devel/third-party/ckeditor/plugins/smiley/lang/hi.js
new file mode 100644
index 0000000..50ceb92
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/hi.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'hi', {
+ options: 'Smiley Options', // MISSING
+ title: 'सà¥à¤®à¤¾à¤à¤²à¥ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',
+ toolbar: 'सà¥à¤®à¤¾à¤à¤²à¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/hr.js b/devel/third-party/ckeditor/plugins/smiley/lang/hr.js
new file mode 100644
index 0000000..18520fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/hr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'hr', {
+ options: 'Opcije smješka',
+ title: 'Ubaci smješka',
+ toolbar: 'Smješko'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/hu.js b/devel/third-party/ckeditor/plugins/smiley/lang/hu.js
new file mode 100644
index 0000000..e4bd676
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/hu.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'hu', {
+ options: 'Hangulatjel opciók',
+ title: 'Hangulatjel beszúrása',
+ toolbar: 'Hangulatjelek'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/is.js b/devel/third-party/ckeditor/plugins/smiley/lang/is.js
new file mode 100644
index 0000000..79076a5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/is.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'is', {
+ options: 'Smiley Options', // MISSING
+ title: 'Velja svip',
+ toolbar: 'Svipur'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/it.js b/devel/third-party/ckeditor/plugins/smiley/lang/it.js
new file mode 100644
index 0000000..65b7cc0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/it.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'it', {
+ options: 'Opzioni Smiley',
+ title: 'Inserisci emoticon',
+ toolbar: 'Emoticon'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ja.js b/devel/third-party/ckeditor/plugins/smiley/lang/ja.js
new file mode 100644
index 0000000..cd5c183
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ja.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ja', {
+ options: 'çµµæåãªãã·ã§ã³',
+ title: 'é¡æåæ¿å
¥',
+ toolbar: 'çµµæå'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ka.js b/devel/third-party/ckeditor/plugins/smiley/lang/ka.js
new file mode 100644
index 0000000..1e8dc1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ka.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ka', {
+ options: 'á¡ááªáááááá¡ ááá áááá¢á ááá',
+ title: 'á¡ááªáááááá¡ á©áá¡áá',
+ toolbar: 'á¡ááªááááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/km.js b/devel/third-party/ckeditor/plugins/smiley/lang/km.js
new file mode 100644
index 0000000..9bb79ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/km.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'km', {
+ options: 'Smiley Options', // MISSING
+ title: 'ááááá¼ááá¼ááá¶á',
+ toolbar: 'áá¼ááá¶á'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ko.js b/devel/third-party/ckeditor/plugins/smiley/lang/ko.js
new file mode 100644
index 0000000..8185ce7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ko.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ko', {
+ options: 'Smiley Options', // MISSING
+ title: 'ìì´ì½ ì½ì
',
+ toolbar: 'ìì´ì½'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ku.js b/devel/third-party/ckeditor/plugins/smiley/lang/ku.js
new file mode 100644
index 0000000..c80505a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ku.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ku', {
+ options: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ Ø²ÙØ±Ø¯ÙØ®ÙÙÙ',
+ title: 'Ø¯Ø§ÙØ§ÙÛ Ø²ÙØ±Ø¯ÙØ®ÙÙÙÛÙÙ',
+ toolbar: 'Ø²ÙØ±Ø¯ÙØ®ÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/lt.js b/devel/third-party/ckeditor/plugins/smiley/lang/lt.js
new file mode 100644
index 0000000..fae7872
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/lt.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'lt', {
+ options: 'Å ypsenÄlių nustatymai',
+ title: 'Įterpti veidelį',
+ toolbar: 'Veideliai'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/lv.js b/devel/third-party/ckeditor/plugins/smiley/lang/lv.js
new file mode 100644
index 0000000..770b8c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/lv.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'lv', {
+ options: 'SmaidiÅu uzstÄdÄ«jumi',
+ title: 'Ievietot smaidiÅu',
+ toolbar: 'SmaidiÅi'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/mk.js b/devel/third-party/ckeditor/plugins/smiley/lang/mk.js
new file mode 100644
index 0000000..d323926
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/mk.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'mk', {
+ options: 'Smiley Options', // MISSING
+ title: 'Insert a Smiley', // MISSING
+ toolbar: 'Smiley' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/mn.js b/devel/third-party/ckeditor/plugins/smiley/lang/mn.js
new file mode 100644
index 0000000..b79ee30
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/mn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'mn', {
+ options: 'Smiley Options', // MISSING
+ title: 'ТодоÑÑ
Ð¾Ð¹Ð»Ð¾Ð»Ñ Ð¾ÑÑÑлаÑ
',
+ toolbar: 'ТодоÑÑ
ойлолÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ms.js b/devel/third-party/ckeditor/plugins/smiley/lang/ms.js
new file mode 100644
index 0000000..ee3fe10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ms.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ms', {
+ options: 'Smiley Options', // MISSING
+ title: 'Masukkan Smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/nb.js b/devel/third-party/ckeditor/plugins/smiley/lang/nb.js
new file mode 100644
index 0000000..3b4aa87
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/nb.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'nb', {
+ options: 'Alternativer for smil',
+ title: 'Sett inn smil',
+ toolbar: 'Smil'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/nl.js b/devel/third-party/ckeditor/plugins/smiley/lang/nl.js
new file mode 100644
index 0000000..0c07544
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/nl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'nl', {
+ options: 'Smiley opties',
+ title: 'Smiley invoegen',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/no.js b/devel/third-party/ckeditor/plugins/smiley/lang/no.js
new file mode 100644
index 0000000..9faa496
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/no.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'no', {
+ options: 'Alternativer for smil',
+ title: 'Sett inn smil',
+ toolbar: 'Smil'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/pl.js b/devel/third-party/ckeditor/plugins/smiley/lang/pl.js
new file mode 100644
index 0000000..981bd4e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/pl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'pl', {
+ options: 'Opcje emotikonów',
+ title: 'Wstaw emotikona',
+ toolbar: 'Emotikony'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/pt-br.js b/devel/third-party/ckeditor/plugins/smiley/lang/pt-br.js
new file mode 100644
index 0000000..dbeabdc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/pt-br.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'pt-br', {
+ options: 'Opções de Emoticons',
+ title: 'Inserir Emoticon',
+ toolbar: 'Emoticon'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/pt.js b/devel/third-party/ckeditor/plugins/smiley/lang/pt.js
new file mode 100644
index 0000000..1e9d600
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/pt.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'pt', {
+ options: 'Smiley Options', // MISSING
+ title: 'Inserir um Emoticon',
+ toolbar: 'Emoticons'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ro.js b/devel/third-party/ckeditor/plugins/smiley/lang/ro.js
new file mode 100644
index 0000000..a9179fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ro.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ro', {
+ options: 'OpÈiuni figuri expresive',
+ title: 'InsereazÄ o figurÄ expresivÄ (Emoticon)',
+ toolbar: 'FigurÄ expresivÄ (Emoticon)'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ru.js b/devel/third-party/ckeditor/plugins/smiley/lang/ru.js
new file mode 100644
index 0000000..176ae70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ru.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ru', {
+ options: 'ÐÑÐ±Ð¾Ñ Ñмайла',
+ title: 'ÐÑÑавиÑÑ Ñмайл',
+ toolbar: 'СмайлÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/sk.js b/devel/third-party/ckeditor/plugins/smiley/lang/sk.js
new file mode 100644
index 0000000..ab9b301
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/sk.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'sk', {
+ options: 'Možnosti smajlÃkov',
+ title: 'VložiÅ¥ smajlÃka',
+ toolbar: 'SmajlÃky'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/sl.js b/devel/third-party/ckeditor/plugins/smiley/lang/sl.js
new file mode 100644
index 0000000..45cabe5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/sl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'sl', {
+ options: 'Smiley Options', // MISSING
+ title: 'Vstavi smeška',
+ toolbar: 'Smeško'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/smiley/lang/sr-latn.js
new file mode 100644
index 0000000..d97af90
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/sr-latn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'sr-latn', {
+ options: 'Smiley Options', // MISSING
+ title: 'Unesi smajlija',
+ toolbar: 'Smajli'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/sr.js b/devel/third-party/ckeditor/plugins/smiley/lang/sr.js
new file mode 100644
index 0000000..b7a71ed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/sr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'sr', {
+ options: 'Smiley Options', // MISSING
+ title: 'УнеÑи ÑмаÑлиÑа',
+ toolbar: 'СмаÑли'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/sv.js b/devel/third-party/ckeditor/plugins/smiley/lang/sv.js
new file mode 100644
index 0000000..2d9af92
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/sv.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'sv', {
+ options: 'Smileyinställningar',
+ title: 'Infoga smiley',
+ toolbar: 'Smiley'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/th.js b/devel/third-party/ckeditor/plugins/smiley/lang/th.js
new file mode 100644
index 0000000..1a69304
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/th.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'th', {
+ options: 'Smiley Options', // MISSING
+ title: 'à¹à¸à¸£à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹',
+ toolbar: 'รูà¸à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/tr.js b/devel/third-party/ckeditor/plugins/smiley/lang/tr.js
new file mode 100644
index 0000000..84da5fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/tr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'tr', {
+ options: 'İfade Seçenekleri',
+ title: 'İfade Ekle',
+ toolbar: 'İfade'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/ug.js b/devel/third-party/ckeditor/plugins/smiley/lang/ug.js
new file mode 100644
index 0000000..c4c6b16
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/ug.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'ug', {
+ options: 'ÚÙØ±Ø§Ù ئÙÙ¾Ø§Ø¯Û Ø³ÙÙØ¨ÛÙÚ¯Û ØªØ§ÙÙØ§ÙÙ
ÙØ³Ù',
+ title: 'ÚÙØ±Ø§Ù ئÙÙ¾Ø§Ø¯Û Ø³ÙÙØ¨ÛÙÚ¯Û ÙÙØ³ØªÛر',
+ toolbar: 'ÚÙØ±Ø§Ù ئÙپادÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/uk.js b/devel/third-party/ckeditor/plugins/smiley/lang/uk.js
new file mode 100644
index 0000000..e5e1804
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/uk.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'uk', {
+ options: 'ÐпÑÑÑ ÑмайликÑв',
+ title: 'ÐÑÑавиÑи Ñмайлик',
+ toolbar: 'Смайлик'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/vi.js b/devel/third-party/ckeditor/plugins/smiley/lang/vi.js
new file mode 100644
index 0000000..8320570
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/vi.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'vi', {
+ options: 'Tùy chá»n hình biá»u lá» cảm xúc',
+ title: 'Chèn hình biá»u lá» cảm xúc (mặt cưá»i)',
+ toolbar: 'Hình biá»u lá» cảm xúc (mặt cưá»i)'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/smiley/lang/zh-cn.js
new file mode 100644
index 0000000..5fd43c8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/zh-cn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'zh-cn', {
+ options: '表æ
徿 é项',
+ title: 'æå
¥è¡¨æ
徿 ',
+ toolbar: '表æ
符'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/lang/zh.js b/devel/third-party/ckeditor/plugins/smiley/lang/zh.js
new file mode 100644
index 0000000..b890011
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/smiley/lang/zh.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'smiley', 'zh', {
+ options: 'Smiley Options', // MISSING
+ title: 'æå
¥è¡¨æ
符è',
+ toolbar: '表æ
符è'
+});
diff --git a/devel/third-party/ckeditor/plugins/smiley/plugin.js b/devel/third-party/ckeditor/plugins/smiley/plugin.js
index a915189..da9936a 100644
--- a/devel/third-party/ckeditor/plugins/smiley/plugin.js
+++ b/devel/third-party/ckeditor/plugins/smiley/plugin.js
@@ -1,94 +1,91 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'smiley',
-{
- requires : [ 'dialog' ],
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'smiley', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'smiley', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
editor.config.smiley_path = editor.config.smiley_path || ( this.path + 'images/' );
editor.addCommand( 'smiley', new CKEDITOR.dialogCommand( 'smiley' ) );
- editor.ui.addButton( 'Smiley',
- {
- label : editor.lang.smiley.toolbar,
- command : 'smiley'
- });
+ editor.ui.addButton && editor.ui.addButton( 'Smiley', {
+ label: editor.lang.smiley.toolbar,
+ command: 'smiley',
+ toolbar: 'insert,50'
+ });
CKEDITOR.dialog.add( 'smiley', this.path + 'dialogs/smiley.js' );
}
-} );
+});
/**
- * The base path used to build the URL for the smiley images. It must end with
- * a slash.
- * @name CKEDITOR.config.smiley_path
- * @type String
- * @default {@link CKEDITOR.basePath} + 'plugins/smiley/images/'
- * @example
- * config.smiley_path = 'http://www.example.com/images/smileys/';
- * @example
- * config.smiley_path = '/images/smileys/';
+ * The base path used to build the URL for the smiley images. It must end with a slash.
+ *
+ * config.smiley_path = 'http://www.example.com/images/smileys/';
+ *
+ * config.smiley_path = '/images/smileys/';
+ *
+ * @cfg {String} [smiley_path=CKEDITOR.basePath + 'plugins/smiley/images/']
+ * @member CKEDITOR.config
*/
/**
* The file names for the smileys to be displayed. These files must be
- * contained inside the URL path defined with the
- * {@link CKEDITOR.config.smiley_path} setting.
- * @type Array
- * @default (see example)
- * @example
- * // This is actually the default value.
- * config.smiley_images = [
- * 'regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif',
- * 'embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif',
- * 'devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif',
- * 'broken_heart.gif','kiss.gif','envelope.gif'];
+ * contained inside the URL path defined with the {@link #smiley_path} setting.
+ *
+ * // This is actually the default value.
+ * config.smiley_images = [
+ * 'regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tongue_smile.gif',
+ * 'embarrassed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif',
+ * 'devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif',
+ * 'broken_heart.gif','kiss.gif','envelope.gif'
+ * ];
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.smiley_images = [
- 'regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif',
- 'embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif',
- 'devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif',
- 'broken_heart.gif','kiss.gif','envelope.gif'];
+ 'regular_smile.gif', 'sad_smile.gif', 'wink_smile.gif', 'teeth_smile.gif', 'confused_smile.gif', 'tongue_smile.gif',
+ 'embarrassed_smile.gif', 'omg_smile.gif', 'whatchutalkingabout_smile.gif', 'angry_smile.gif', 'angel_smile.gif', 'shades_smile.gif',
+ 'devil_smile.gif', 'cry_smile.gif', 'lightbulb.gif', 'thumbs_down.gif', 'thumbs_up.gif', 'heart.gif',
+ 'broken_heart.gif', 'kiss.gif', 'envelope.gif' ];
/**
* The description to be used for each of the smileys defined in the
- * {@link CKEDITOR.config.smiley_images} setting. Each entry in this array list
- * must match its relative pair in the {@link CKEDITOR.config.smiley_images}
+ * {@link CKEDITOR.config#smiley_images} setting. Each entry in this array list
+ * must match its relative pair in the {@link CKEDITOR.config#smiley_images}
* setting.
- * @type Array
- * @default The textual descriptions of smiley.
- * @example
- * // Default settings.
- * config.smiley_descriptions =
- * [
- * 'smiley', 'sad', 'wink', 'laugh', 'frown', 'cheeky', 'blush', 'surprise',
- * 'indecision', 'angry', 'angel', 'cool', 'devil', 'crying', 'enlightened', 'no',
- * 'yes', 'heart', 'broken heart', 'kiss', 'mail'
- * ];
- * @example
- * // Use textual emoticons as description.
- * config.smiley_descriptions =
- * [
- * ':)', ':(', ';)', ':D', ':/', ':P', ':*)', ':-o',
- * ':|', '>:(', 'o:)', '8-)', '>:-)', ';(', '', '', '',
- * '', '', ':-*', ''
- * ];
+ *
+ * // Default settings.
+ * config.smiley_descriptions = [
+ * 'smiley', 'sad', 'wink', 'laugh', 'frown', 'cheeky', 'blush', 'surprise',
+ * 'indecision', 'angry', 'angel', 'cool', 'devil', 'crying', 'enlightened', 'no',
+ * 'yes', 'heart', 'broken heart', 'kiss', 'mail'
+ * ];
+ *
+ * // Use textual emoticons as description.
+ * config.smiley_descriptions = [
+ * ':)', ':(', ';)', ':D', ':/', ':P', ':*)', ':-o',
+ * ':|', '>:(', 'o:)', '8-)', '>:-)', ';(', '', '', '',
+ * '', '', ':-*', ''
+ * ];
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.smiley_descriptions =
- [
- 'smiley', 'sad', 'wink', 'laugh', 'frown', 'cheeky', 'blush', 'surprise',
- 'indecision', 'angry', 'angel', 'cool', 'devil', 'crying', 'enlightened', 'no',
- 'yes', 'heart', 'broken heart', 'kiss', 'mail'
- ];
+CKEDITOR.config.smiley_descriptions = [
+ 'smiley', 'sad', 'wink', 'laugh', 'frown', 'cheeky', 'blush', 'surprise',
+ 'indecision', 'angry', 'angel', 'cool', 'devil', 'crying', 'enlightened', 'no',
+ 'yes', 'heart', 'broken heart', 'kiss', 'mail'
+];
/**
* The number of columns to be generated by the smilies matrix.
- * @name CKEDITOR.config.smiley_columns
- * @type Number
- * @default 8
+ *
+ * config.smiley_columns = 6;
+ *
* @since 3.3.2
- * @example
- * config.smiley_columns = 6;
+ * @cfg {Number} [smiley_columns=8]
+ * @member CKEDITOR.config
*/
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/icons/source-rtl.png b/devel/third-party/ckeditor/plugins/sourcearea/icons/source-rtl.png
new file mode 100644
index 0000000..2efa25d
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/sourcearea/icons/source-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/icons/source.png b/devel/third-party/ckeditor/plugins/sourcearea/icons/source.png
new file mode 100644
index 0000000..ffd830d
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/sourcearea/icons/source.png differ
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/af.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/af.js
new file mode 100644
index 0000000..987b6e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/af.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'af', {
+ toolbar: 'Bron'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ar.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ar.js
new file mode 100644
index 0000000..475dfa7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ar.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ar', {
+ toolbar: 'اÙÙ
صدر'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/bg.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/bg.js
new file mode 100644
index 0000000..a1ce36a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/bg.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'bg', {
+ toolbar: 'ÐзÑоÑник'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/bn.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/bn.js
new file mode 100644
index 0000000..e5285b2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/bn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'bn', {
+ toolbar: 'সà§à¦°à§à¦¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/bs.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/bs.js
new file mode 100644
index 0000000..d810a06
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/bs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'bs', {
+ toolbar: 'HTML kôd'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ca.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ca.js
new file mode 100644
index 0000000..9a2d1ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ca', {
+ toolbar: 'Codi font'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/cs.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/cs.js
new file mode 100644
index 0000000..2d37f50
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/cs.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'cs', {
+ toolbar: 'Zdroj'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/cy.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/cy.js
new file mode 100644
index 0000000..07d59e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/cy.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'cy', {
+ toolbar: 'HTML'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/da.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/da.js
new file mode 100644
index 0000000..279e281
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/da.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'da', {
+ toolbar: 'Kilde'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/de.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/de.js
new file mode 100644
index 0000000..997ffd8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/de.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'de', {
+ toolbar: 'Quellcode'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/el.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/el.js
new file mode 100644
index 0000000..2249848
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/el.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'el', {
+ toolbar: 'HTML κÏδικαÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/en-au.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/en-au.js
new file mode 100644
index 0000000..0393466
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/en-au.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'en-au', {
+ toolbar: 'Source'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/en-ca.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/en-ca.js
new file mode 100644
index 0000000..a2340f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/en-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'en-ca', {
+ toolbar: 'Source'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/en-gb.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/en-gb.js
new file mode 100644
index 0000000..2cc91b0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/en-gb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'en-gb', {
+ toolbar: 'Source'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/en.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/en.js
new file mode 100644
index 0000000..d0b543f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/en.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'en', {
+ toolbar: 'Source'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/eo.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/eo.js
new file mode 100644
index 0000000..38a2033
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/eo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'eo', {
+ toolbar: 'Fonto'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/es.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/es.js
new file mode 100644
index 0000000..bcf5458
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/es.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'es', {
+ toolbar: 'Fuente HTML'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/et.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/et.js
new file mode 100644
index 0000000..e293b89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/et.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'et', {
+ toolbar: 'Lähtekood'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/eu.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/eu.js
new file mode 100644
index 0000000..7b11ac3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/eu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'eu', {
+ toolbar: 'HTML Iturburua'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/fa.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/fa.js
new file mode 100644
index 0000000..8560bac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/fa.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'fa', {
+ toolbar: 'Ù
ÙØ¨Ø¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/fi.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/fi.js
new file mode 100644
index 0000000..0db374a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/fi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'fi', {
+ toolbar: 'Koodi'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/fo.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/fo.js
new file mode 100644
index 0000000..89281fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/fo.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'fo', {
+ toolbar: 'Kelda'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/fr-ca.js
new file mode 100644
index 0000000..079d0f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/fr-ca.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'fr-ca', {
+ toolbar: 'Source'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/fr.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/fr.js
new file mode 100644
index 0000000..23b843c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/fr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'fr', {
+ toolbar: 'Source'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/gl.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/gl.js
new file mode 100644
index 0000000..81b4a8b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/gl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'gl', {
+ toolbar: 'Código Fonte'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/gu.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/gu.js
new file mode 100644
index 0000000..0c25441
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/gu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'gu', {
+ toolbar: 'મà«àª³ àªà« પà«àª°àª¾àª¥àª®àª¿àª દસà«àª¤àª¾àªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/he.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/he.js
new file mode 100644
index 0000000..018dc1b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/he.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'he', {
+ toolbar: '××§×ר'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/hi.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/hi.js
new file mode 100644
index 0000000..c9c984a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/hi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'hi', {
+ toolbar: 'सà¥à¤°à¥à¤¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/hr.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/hr.js
new file mode 100644
index 0000000..412f959
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/hr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'hr', {
+ toolbar: 'Kôd'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/hu.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/hu.js
new file mode 100644
index 0000000..aea51d9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/hu.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'hu', {
+ toolbar: 'Forráskód'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/is.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/is.js
new file mode 100644
index 0000000..7cdea9d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/is.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'is', {
+ toolbar: 'Kóði'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/it.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/it.js
new file mode 100644
index 0000000..17754ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/it.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'it', {
+ toolbar: 'Codice Sorgente'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ja.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ja.js
new file mode 100644
index 0000000..6fdc6ba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ja.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ja', {
+ toolbar: 'ã½ã¼ã¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ka.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ka.js
new file mode 100644
index 0000000..c3fd1ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ka.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ka', {
+ toolbar: 'áááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/km.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/km.js
new file mode 100644
index 0000000..62abf98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/km.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'km', {
+ toolbar: 'áá¼á'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ko.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ko.js
new file mode 100644
index 0000000..467f7fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ko.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ko', {
+ toolbar: 'ìì¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ku.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ku.js
new file mode 100644
index 0000000..4a652f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ku.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ku', {
+ toolbar: 'Ø³ÛØ±ÚاÙÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/lt.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/lt.js
new file mode 100644
index 0000000..3f7e567
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/lt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'lt', {
+ toolbar: 'Å altinis'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/lv.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/lv.js
new file mode 100644
index 0000000..eaaaa04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/lv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'lv', {
+ toolbar: 'HTML kods'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/mk.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/mk.js
new file mode 100644
index 0000000..33b1e29
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/mk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'mk', {
+ toolbar: 'Source' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/mn.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/mn.js
new file mode 100644
index 0000000..2df9ca4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/mn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'mn', {
+ toolbar: 'Ðод'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ms.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ms.js
new file mode 100644
index 0000000..897c358
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ms.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ms', {
+ toolbar: 'Sumber'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/nb.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/nb.js
new file mode 100644
index 0000000..806a614
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/nb.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'nb', {
+ toolbar: 'Kilde'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/nl.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/nl.js
new file mode 100644
index 0000000..61220e0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/nl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'nl', {
+ toolbar: 'Code'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/no.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/no.js
new file mode 100644
index 0000000..729a690
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/no.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'no', {
+ toolbar: 'Kilde'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/pl.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/pl.js
new file mode 100644
index 0000000..9208c7e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/pl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'pl', {
+ toolbar: 'ŹródÅo dokumentu'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/pt-br.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/pt-br.js
new file mode 100644
index 0000000..6a83c71
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/pt-br.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'pt-br', {
+ toolbar: 'Código-Fonte'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/pt.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/pt.js
new file mode 100644
index 0000000..98dbc27
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/pt.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'pt', {
+ toolbar: 'Fonte'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ro.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ro.js
new file mode 100644
index 0000000..611336c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ro.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ro', {
+ toolbar: 'Sursa'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ru.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ru.js
new file mode 100644
index 0000000..7928122
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ru.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ru', {
+ toolbar: 'ÐÑÑоÑник'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/sk.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/sk.js
new file mode 100644
index 0000000..d19b326
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/sk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'sk', {
+ toolbar: 'Zdroj'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/sl.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/sl.js
new file mode 100644
index 0000000..15e28f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/sl.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'sl', {
+ toolbar: 'Izvorna koda'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/sr-latn.js
new file mode 100644
index 0000000..d4ab433
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/sr-latn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'sr-latn', {
+ toolbar: 'Kôd'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/sr.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/sr.js
new file mode 100644
index 0000000..6e5795f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/sr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'sr', {
+ toolbar: 'Kôд'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/sv.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/sv.js
new file mode 100644
index 0000000..7e59ae1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/sv.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'sv', {
+ toolbar: 'Källa'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/th.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/th.js
new file mode 100644
index 0000000..ef3f63b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/th.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'th', {
+ toolbar: 'à¸à¸¹à¸£à¸«à¸±à¸ª HTML'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/tr.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/tr.js
new file mode 100644
index 0000000..c1c9743
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/tr.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'tr', {
+ toolbar: 'Kaynak'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/ug.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/ug.js
new file mode 100644
index 0000000..acab47b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/ug.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'ug', {
+ toolbar: 'Ù
ÛÙØ¨Û'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/uk.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/uk.js
new file mode 100644
index 0000000..e52d50e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/uk.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'uk', {
+ toolbar: 'ÐжеÑело'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/vi.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/vi.js
new file mode 100644
index 0000000..13f9e69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/vi.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'vi', {
+ toolbar: 'Mã HTML'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/zh-cn.js
new file mode 100644
index 0000000..3b3b98f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'zh-cn', {
+ toolbar: 'æºç '
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/lang/zh.js b/devel/third-party/ckeditor/plugins/sourcearea/lang/zh.js
new file mode 100644
index 0000000..c5fe794
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/sourcearea/lang/zh.js
@@ -0,0 +1,7 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'sourcearea', 'zh', {
+ toolbar: 'åå§ç¢¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/sourcearea/plugin.js b/devel/third-party/ckeditor/plugins/sourcearea/plugin.js
index fe39339..34faf64 100644
--- a/devel/third-party/ckeditor/plugins/sourcearea/plugin.js
+++ b/devel/third-party/ckeditor/plugins/sourcearea/plugin.js
@@ -1,207 +1,149 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "sourcearea" plugin. It registers the "source" editing
* mode, which displays the raw data being edited in the editor.
*/
-CKEDITOR.plugins.add( 'sourcearea',
-{
- requires : [ 'editingblock' ],
-
- init : function( editor )
- {
- var sourcearea = CKEDITOR.plugins.sourcearea,
- win = CKEDITOR.document.getWindow();
-
- editor.on( 'editingBlockReady', function()
- {
- var textarea,
- onResize;
-
- editor.addMode( 'source',
- {
- load : function( holderElement, data )
- {
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
- holderElement.setStyle( 'position', 'relative' );
-
- // Create the source area <textarea>.
- editor.textarea = textarea = new CKEDITOR.dom.element( 'textarea' );
- textarea.setAttributes(
- {
- dir : 'ltr',
- tabIndex : CKEDITOR.env.webkit ? -1 : editor.tabIndex,
- 'role' : 'textbox',
- 'aria-label' : editor.lang.editorTitle.replace( '%1', editor.name )
- });
- textarea.addClass( 'cke_source' );
- textarea.addClass( 'cke_enable_context_menu' );
-
- var styles =
- {
- // IE7 has overflow the <textarea> from wrapping table cell.
- width : CKEDITOR.env.ie7Compat ? '99%' : '100%',
- height : '100%',
- resize : 'none',
- outline : 'none',
- 'text-align' : 'left'
- };
-
- // Having to make <textarea> fixed sized to conque the following bugs:
- // 1. The textarea height/width='100%' doesn't constraint to the 'td' in IE6/7.
- // 2. Unexpected vertical-scrolling behavior happens whenever focus is moving out of editor
- // if text content within it has overflowed. (#4762)
- if ( CKEDITOR.env.ie )
- {
- onResize = function()
- {
- // Holder rectange size is stretched by textarea,
- // so hide it just for a moment.
- textarea.hide();
- textarea.setStyle( 'height', holderElement.$.clientHeight + 'px' );
- textarea.setStyle( 'width', holderElement.$.clientWidth + 'px' );
- // When we have proper holder size, show textarea again.
- textarea.show();
- };
-
- editor.on( 'resize', onResize );
- win.on( 'resize', onResize );
- setTimeout( onResize, 0 );
- }
- else
- {
- // By some yet unknown reason, we must stop the
- // mousedown propagation for the textarea,
- // otherwise it's not possible to place the caret
- // inside of it (non IE).
- textarea.on( 'mousedown', function( evt )
- {
- evt.data.stopPropagation();
- } );
- }
-
- // Reset the holder element and append the
- // <textarea> to it.
- holderElement.setHtml( '' );
- holderElement.append( textarea );
- textarea.setStyles( styles );
-
- editor.fire( 'ariaWidget', textarea );
-
- textarea.on( 'blur', function()
- {
- editor.focusManager.blur();
- });
-
- textarea.on( 'focus', function()
- {
- editor.focusManager.focus();
- });
-
- // The editor data "may be dirty" after this point.
- editor.mayBeDirty = true;
-
- // Set the <textarea> value.
- this.loadData( data );
-
- var keystrokeHandler = editor.keystrokeHandler;
- if ( keystrokeHandler )
- keystrokeHandler.attach( textarea );
-
- setTimeout( function()
- {
- editor.mode = 'source';
- editor.fire( 'mode' );
- },
- ( CKEDITOR.env.gecko || CKEDITOR.env.webkit ) ? 100 : 0 );
- },
-
- loadData : function( data )
- {
- textarea.setValue( data );
- editor.fire( 'dataReady' );
- },
-
- getData : function()
- {
- return textarea.getValue();
- },
-
- getSnapshotData : function()
- {
- return textarea.getValue();
- },
-
- unload : function( holderElement )
- {
- textarea.clearCustomData();
- editor.textarea = textarea = null;
-
- if ( onResize )
- {
- editor.removeListener( 'resize', onResize );
- win.removeListener( 'resize', onResize );
- }
-
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 8 )
- holderElement.removeStyle( 'position' );
- },
-
- focus : function()
- {
- textarea.focus();
- }
- });
+(function() {
+ CKEDITOR.plugins.add( 'sourcearea', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'source,source-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ // Source mode isn't available in inline mode yet.
+ if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
+ return;
+
+ var sourcearea = CKEDITOR.plugins.sourcearea;
+
+ editor.addMode( 'source', function( callback ) {
+ var contentsSpace = editor.ui.space( 'contents' ),
+ textarea = contentsSpace.getDocument().createElement( 'textarea' );
+
+ textarea.setStyles(
+ CKEDITOR.tools.extend({
+ // IE7 has overflow the <textarea> from wrapping table cell.
+ width: CKEDITOR.env.ie7Compat ? '99%' : '100%',
+ height: '100%',
+ resize: 'none',
+ outline: 'none',
+ 'text-align': 'left'
+ },
+ CKEDITOR.tools.cssVendorPrefix( 'tab-size', editor.config.sourceAreaTabSize || 4 ) ) );
+
+ textarea.addClass( 'cke_source cke_reset cke_enable_context_menu' );
+
+ editor.ui.space( 'contents' ).append( textarea );
+
+ var editable = editor.editable( new sourceEditable( editor, textarea ) );
+
+ // Fill the textarea with the current editor data.
+ editable.setData( editor.getData( 1 ) );
+
+ // Having to make <textarea> fixed sized to conquer the following bugs:
+ // 1. The textarea height/width='100%' doesn't constraint to the 'td' in IE6/7.
+ // 2. Unexpected vertical-scrolling behavior happens whenever focus is moving out of editor
+ // if text content within it has overflowed. (#4762)
+ if ( CKEDITOR.env.ie ) {
+ editable.attachListener( editor, 'resize', onResize, editable );
+ editable.attachListener( CKEDITOR.document.getWindow(), 'resize', onResize, editable );
+ CKEDITOR.tools.setTimeout( onResize, 0, editable );
+ }
+
+ editor.fire( 'ariaWidget', this );
+
+ callback();
});
- editor.addCommand( 'source', sourcearea.commands.source );
+ editor.addCommand( 'source', sourcearea.commands.source );
- if ( editor.ui.addButton )
- {
- editor.ui.addButton( 'Source',
- {
- label : editor.lang.source,
- command : 'source'
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( 'Source', {
+ label: editor.lang.sourcearea.toolbar,
+ command: 'source',
+ toolbar: 'mode,10'
});
- }
+ }
- editor.on( 'mode', function()
- {
- editor.getCommand( 'source' ).setState(
- editor.mode == 'source' ?
- CKEDITOR.TRISTATE_ON :
- CKEDITOR.TRISTATE_OFF );
+ editor.on( 'mode', function() {
+ editor.getCommand( 'source' ).setState( editor.mode == 'source' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );
});
- }
-});
-/**
- * Holds the definition of commands an UI elements included with the sourcearea
- * plugin.
- * @example
- */
-CKEDITOR.plugins.sourcearea =
-{
- commands :
- {
- source :
- {
- modes : { wysiwyg:1, source:1 },
- editorFocus : false,
-
- exec : function( editor )
- {
+ function onResize() {
+ // Holder rectange size is stretched by textarea,
+ // so hide it just for a moment.
+ this.hide();
+ this.setStyle( 'height', this.getParent().$.clientHeight + 'px' );
+ this.setStyle( 'width', this.getParent().$.clientWidth + 'px' );
+ // When we have proper holder size, show textarea again.
+ this.show();
+ }
+ }
+ });
+
+ var sourceEditable = CKEDITOR.tools.createClass({
+ base: CKEDITOR.editable,
+ proto: {
+ setData: function( data ) {
+ this.setValue( data );
+ this.editor.fire( 'dataReady' );
+ },
+
+ getData: function() {
+ return this.getValue();
+ },
+
+ // Insertions are not supported in source editable.
+ insertHtml: function() {},
+ insertElement: function() {},
+ insertText: function() {},
+
+ // Read-only support for textarea.
+ setReadOnly: function( isReadOnly ) {
+ this[ ( isReadOnly ? 'set' : 'remove' ) + 'Attribute' ]( 'readOnly', 'readonly' );
+ },
+
+ detach: function() {
+ sourceEditable.baseProto.detach.call( this );
+ this.clearCustomData();
+ this.remove();
+ }
+ }
+ });
+})();
+
+CKEDITOR.plugins.sourcearea = {
+ commands: {
+ source: {
+ modes: { wysiwyg:1,source:1 },
+ editorFocus: false,
+ readOnly: 1,
+ exec: function( editor ) {
if ( editor.mode == 'wysiwyg' )
editor.fire( 'saveSnapshot' );
editor.getCommand( 'source' ).setState( CKEDITOR.TRISTATE_DISABLED );
editor.setMode( editor.mode == 'source' ? 'wysiwyg' : 'source' );
},
- canUndo : false
+ canUndo: false
}
}
};
+
+/**
+ * Controls CSS tab-size property of the sourcearea view.
+ *
+ * **Note:** Works only with {@link #dataIndentationChars}
+ * set to `'\t'`. Please consider that not all browsers support CSS
+ * `tab-size` property yet.
+ *
+ * // Set tab-size to 20 characters.
+ * CKEDITOR.config.sourceAreaTabSize = 20;
+ *
+ * @cfg {Number} [sourceAreaTabSize=4]
+ * @member CKEDITOR.config
+ * @see CKEDITOR.config#dataIndentationChars
+ */
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
new file mode 100644
index 0000000..8df716d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt
@@ -0,0 +1,20 @@
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+
+cs.js Found: 118 Missing: 0
+cy.js Found: 118 Missing: 0
+de.js Found: 118 Missing: 0
+el.js Found: 16 Missing: 102
+eo.js Found: 118 Missing: 0
+et.js Found: 31 Missing: 87
+fa.js Found: 24 Missing: 94
+fi.js Found: 23 Missing: 95
+fr.js Found: 118 Missing: 0
+hr.js Found: 23 Missing: 95
+it.js Found: 118 Missing: 0
+nb.js Found: 118 Missing: 0
+nl.js Found: 118 Missing: 0
+no.js Found: 118 Missing: 0
+tr.js Found: 118 Missing: 0
+ug.js Found: 39 Missing: 79
+zh-cn.js Found: 118 Missing: 0
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ca.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ca.js
new file mode 100644
index 0000000..7649fff
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ca.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'ca', {
+ euro: 'SÃmbol d\'euro',
+ lsquo: 'Signe de cometa simple esquerra',
+ rsquo: 'Signe de cometa simple dreta',
+ ldquo: 'Signe de cometa doble esquerra',
+ rdquo: 'Signe de cometa doble dreta',
+ ndash: 'Guió',
+ mdash: 'Guió baix',
+ iexcl: 'Signe d\'exclamació inversa',
+ cent: 'SÃmbol de percentatge',
+ pound: 'SÃmbol de lliura',
+ curren: 'SÃmbol de moneda',
+ yen: 'SÃmbol de Yen',
+ brvbar: 'Broken bar', // MISSING
+ sect: 'Section sign', // MISSING
+ uml: 'Dièresi',
+ copy: 'SÃmbol de Copyright',
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Left-pointing double angle quotation mark', // MISSING
+ not: 'Not sign', // MISSING
+ reg: 'SÃmbol registrat',
+ macr: 'Macron', // MISSING
+ deg: 'Degree sign', // MISSING
+ sup2: 'Superscript two', // MISSING
+ sup3: 'Superscript three', // MISSING
+ acute: 'Acute accent', // MISSING
+ micro: 'Micro sign', // MISSING
+ para: 'Pilcrow sign', // MISSING
+ middot: 'Middle dot', // MISSING
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Superscript one', // MISSING
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'Right-pointing double angle quotation mark', // MISSING
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Inverted question mark', // MISSING
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Rightwards arrow', // MISSING
+ rArr: 'Rightwards double arrow', // MISSING
+ hArr: 'Left right double arrow', // MISSING
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'Almost equal to' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/cs.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/cs.js
new file mode 100644
index 0000000..94cbb59
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/cs.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'cs', {
+ euro: 'Znak eura',
+ lsquo: 'PoÄáteÄnà uvozovka jednoduchá',
+ rsquo: 'Koncová uvozovka jednoduchá',
+ ldquo: 'PoÄáteÄnà uvozovka dvojitá',
+ rdquo: 'Koncová uvozovka dvojitá',
+ ndash: 'En pomlÄka',
+ mdash: 'Em pomlÄka',
+ iexcl: 'Obrácený vykÅiÄnÃk',
+ cent: 'Znak centu',
+ pound: 'Znak libry',
+ curren: 'Znak mÄny',
+ yen: 'Znak jenu',
+ brvbar: 'PÅeruÅ¡ená svislá Äára',
+ sect: 'Znak oddÃlu',
+ uml: 'PÅehláska',
+ copy: 'Znak copyrightu',
+ ordf: 'Ženský indikátor rodu',
+ laquo: 'Znak dvojitých lomených uvozovek vlevo',
+ not: 'Logistický zápor',
+ reg: 'Znak registrace',
+ macr: 'PomlÄka nad',
+ deg: 'Znak stupnÄ',
+ sup2: 'Dvojka jako hornà index',
+ sup3: 'Trojka jako hornà index',
+ acute: 'Äárka nad vpravo',
+ micro: 'Znak mikro',
+ para: 'Znak odstavce',
+ middot: 'TeÄka uprostÅed',
+ cedil: 'Ocásek vlevo',
+ sup1: 'JedniÄka jako hornà index',
+ ordm: 'Mužský indikátor rodu',
+ raquo: 'Znak dvojitých lomených uvozovek vpravo',
+ frac14: 'ObyÄejný zlomek jedna Ätvrtina',
+ frac12: 'ObyÄejný zlomek jedna polovina',
+ frac34: 'ObyÄejný zlomek tÅi Ätvrtiny',
+ iquest: 'Znak obráceného otaznÃku',
+ Agrave: 'Velké pÃsmeno latinky A s Äárkou nad vlevo',
+ Aacute: 'Velké pÃsmeno latinky A s Äárkou nad vpravo',
+ Acirc: 'Velké pÃsmeno latinky A s vokánÄm',
+ Atilde: 'Velké pÃsmeno latinky A s tildou',
+ Auml: 'Velké pÃsmeno latinky A s dvÄma teÄkami',
+ Aring: 'Velké pÃsmeno latinky A s kroužkem nad',
+ AElig: 'Velké pÃsmeno latinky Ae',
+ Ccedil: 'Velké pÃsmeno latinky C s ocáskem vlevo',
+ Egrave: 'Velké pÃsmeno latinky E s Äárkou nad vlevo',
+ Eacute: 'Velké pÃsmeno latinky E s Äárkou nad vpravo',
+ Ecirc: 'Velké pÃsmeno latinky E s vokánÄm',
+ Euml: 'Velké pÃsmeno latinky E s dvÄma teÄkami',
+ Igrave: 'Velké pÃsmeno latinky I s Äárkou nad vlevo',
+ Iacute: 'Velké pÃsmeno latinky I s Äárkou nad vpravo',
+ Icirc: 'Velké pÃsmeno latinky I s vokánÄm',
+ Iuml: 'Velké pÃsmeno latinky I s dvÄma teÄkami',
+ ETH: 'Velké pÃsmeno latinky Eth',
+ Ntilde: 'Velké pÃsmeno latinky N s tildou',
+ Ograve: 'Velké pÃsmeno latinky O s Äárkou nad vlevo',
+ Oacute: 'Velké pÃsmeno latinky O s Äárkou nad vpravo',
+ Ocirc: 'Velké pÃsmeno latinky O s vokánÄm',
+ Otilde: 'Velké pÃsmeno latinky O s tildou',
+ Ouml: 'Velké pÃsmeno latinky O s dvÄma teÄkami',
+ times: 'Znak násobenÃ',
+ Oslash: 'Velké pÃsmeno latinky O pÅeÅ¡krtnuté',
+ Ugrave: 'Velké pÃsmeno latinky U s Äárkou nad vlevo',
+ Uacute: 'Velké pÃsmeno latinky U s Äárkou nad vpravo',
+ Ucirc: 'Velké pÃsmeno latinky U s vokánÄm',
+ Uuml: 'Velké pÃsmeno latinky U s dvÄma teÄkami',
+ Yacute: 'Velké pÃsmeno latinky Y s Äárkou nad vpravo',
+ THORN: 'Velké pÃsmeno latinky Thorn',
+ szlig: 'Malé pÃsmeno latinky ostré s',
+ agrave: 'Malé pÃsmeno latinky a s Äárkou nad vlevo',
+ aacute: 'Malé pÃsmeno latinky a s Äárkou nad vpravo',
+ acirc: 'Malé pÃsmeno latinky a s vokánÄm',
+ atilde: 'Malé pÃsmeno latinky a s tildou',
+ auml: 'Malé pÃsmeno latinky a s dvÄma teÄkami',
+ aring: 'Malé pÃsmeno latinky a s kroužkem nad',
+ aelig: 'Malé pÃsmeno latinky ae',
+ ccedil: 'Malé pÃsmeno latinky c s ocáskem vlevo',
+ egrave: 'Malé pÃsmeno latinky e s Äárkou nad vlevo',
+ eacute: 'Malé pÃsmeno latinky e s Äárkou nad vpravo',
+ ecirc: 'Malé pÃsmeno latinky e s vokánÄm',
+ euml: 'Malé pÃsmeno latinky e s dvÄma teÄkami',
+ igrave: 'Malé pÃsmeno latinky i s Äárkou nad vlevo',
+ iacute: 'Malé pÃsmeno latinky i s Äárkou nad vpravo',
+ icirc: 'Malé pÃsmeno latinky i s vokánÄm',
+ iuml: 'Malé pÃsmeno latinky i s dvÄma teÄkami',
+ eth: 'Malé pÃsmeno latinky eth',
+ ntilde: 'Malé pÃsmeno latinky n s tildou',
+ ograve: 'Malé pÃsmeno latinky o s Äárkou nad vlevo',
+ oacute: 'Malé pÃsmeno latinky o s Äárkou nad vpravo',
+ ocirc: 'Malé pÃsmeno latinky o s vokánÄm',
+ otilde: 'Malé pÃsmeno latinky o s tildou',
+ ouml: 'Malé pÃsmeno latinky o s dvÄma teÄkami',
+ divide: 'Znak dÄlenÃ',
+ oslash: 'Malé pÃsmeno latinky o pÅeÅ¡krtnuté',
+ ugrave: 'Malé pÃsmeno latinky u s Äárkou nad vlevo',
+ uacute: 'Malé pÃsmeno latinky u s Äárkou nad vpravo',
+ ucirc: 'Malé pÃsmeno latinky u s vokánÄm',
+ uuml: 'Malé pÃsmeno latinky u s dvÄma teÄkami',
+ yacute: 'Malé pÃsmeno latinky y s Äárkou nad vpravo',
+ thorn: 'Malé pÃsmeno latinky thorn',
+ yuml: 'Malé pÃsmeno latinky y s dvÄma teÄkami',
+ OElig: 'Velká ligatura latinky OE',
+ oelig: 'Malá ligatura latinky OE',
+ '372': 'Velké pÃsmeno latinky W s vokánÄm',
+ '374': 'Velké pÃsmeno latinky Y s vokánÄm',
+ '373': 'Malé pÃsmeno latinky w s vokánÄm',
+ '375': 'Malé pÃsmeno latinky y s vokánÄm',
+ sbquo: 'Dolnà 9 uvozovka jednoduchá',
+ '8219': 'Hornà obrácená 9 uvozovka jednoduchá',
+ bdquo: 'Dolnà 9 uvozovka dvojitá',
+ hellip: 'TrojteÄkový úvod',
+ trade: 'Obchodnà znaÄka',
+ '9658': 'Äerný ukazatel smÄÅujÃcà vpravo',
+ bull: 'KoleÄko',
+ rarr: 'Å ipka vpravo',
+ rArr: 'Dvojitá šipka vpravo',
+ hArr: 'Dvojitá šipka vlevo a vpravo',
+ diams: 'Äerné piky',
+ asymp: 'TémÄÅ se rovná'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/cy.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/cy.js
new file mode 100644
index 0000000..4756a44
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/cy.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'cy', {
+ euro: 'Arwydd yr Ewro',
+ lsquo: 'Dyfynnod chwith unigol',
+ rsquo: 'Dyfynnod dde unigol',
+ ldquo: 'Dyfynnod chwith dwbl',
+ rdquo: 'Dyfynnod dde dwbl',
+ ndash: 'Cysylltnod en',
+ mdash: 'Cysylltnod em',
+ iexcl: 'Ebychnod gwrthdro',
+ cent: 'Arwydd sent',
+ pound: 'Arwydd punt',
+ curren: 'Arwydd arian cyfred',
+ yen: 'Arwydd yen',
+ brvbar: 'Bar toriedig',
+ sect: 'Arwydd adran',
+ uml: 'Didolnod',
+ copy: 'Arwydd hawlfraint',
+ ordf: 'Dangosydd benywaidd',
+ laquo: 'Dyfynnod dwbl ar ongl i\'r chwith',
+ not: 'Arwydd Nid',
+ reg: 'Arwydd cofrestredig',
+ macr: 'Macron',
+ deg: 'Arwydd gradd',
+ sup2: 'Dau uwchsgript',
+ sup3: 'Tri uwchsgript',
+ acute: 'Acen ddyrchafedig',
+ micro: 'Arwydd micro',
+ para: 'Arwydd pilcrow',
+ middot: 'Dot canol',
+ cedil: 'Sedila',
+ sup1: 'Un uwchsgript',
+ ordm: 'Dangosydd gwrywaidd',
+ raquo: 'Dyfynnod dwbl ar ongl i\'r dde',
+ frac14: 'Ffracsiwn cyffredin un cwarter',
+ frac12: 'Ffracsiwn cyffredin un hanner',
+ frac34: 'Ffracsiwn cyffredin tri chwarter',
+ iquest: 'Marc cwestiwn gwrthdroëdig',
+ Agrave: 'Priflythyren A Lladinaidd gydag acen ddisgynedig',
+ Aacute: 'Priflythyren A Lladinaidd gydag acen ddyrchafedig',
+ Acirc: 'Priflythyren A Lladinaidd gydag acen grom',
+ Atilde: 'Priflythyren A Lladinaidd gyda thild',
+ Auml: 'Priflythyren A Lladinaidd gyda didolnod',
+ Aring: 'Priflythyren A Lladinaidd gyda chylch uwchben',
+ AElig: 'Priflythyren à Lladinaidd',
+ Ccedil: 'Priflythyren C Lladinaidd gyda sedila',
+ Egrave: 'Priflythyren E Lladinaidd gydag acen ddisgynedig',
+ Eacute: 'Priflythyren E Lladinaidd gydag acen ddyrchafedig',
+ Ecirc: 'Priflythyren E Lladinaidd gydag acen grom',
+ Euml: 'Priflythyren E Lladinaidd gyda didolnod',
+ Igrave: 'Priflythyren I Lladinaidd gydag acen ddisgynedig',
+ Iacute: 'Priflythyren I Lladinaidd gydag acen ddyrchafedig',
+ Icirc: 'Priflythyren I Lladinaidd gydag acen grom',
+ Iuml: 'Priflythyren I Lladinaidd gyda didolnod',
+ ETH: 'Priflythyren Eth',
+ Ntilde: 'Priflythyren N Lladinaidd gyda thild',
+ Ograve: 'Priflythyren O Lladinaidd gydag acen ddisgynedig',
+ Oacute: 'Priflythyren O Lladinaidd gydag acen ddyrchafedig',
+ Ocirc: 'Priflythyren O Lladinaidd gydag acen grom',
+ Otilde: 'Priflythyren O Lladinaidd gyda thild',
+ Ouml: 'Priflythyren O Lladinaidd gyda didolnod',
+ times: 'Arwydd lluosi',
+ Oslash: 'Priflythyren O Lladinaidd gyda strôc',
+ Ugrave: 'Priflythyren U Lladinaidd gydag acen ddisgynedig',
+ Uacute: 'Priflythyren U Lladinaidd gydag acen ddyrchafedig',
+ Ucirc: 'Priflythyren U Lladinaidd gydag acen grom',
+ Uuml: 'Priflythyren U Lladinaidd gyda didolnod',
+ Yacute: 'Priflythyren Y Lladinaidd gydag acen ddyrchafedig',
+ THORN: 'Priflythyren Thorn',
+ szlig: 'Llythyren s fach Lladinaidd siarp ',
+ agrave: 'Llythyren a fach Lladinaidd gydag acen ddisgynedig',
+ aacute: 'Llythyren a fach Lladinaidd gydag acen ddyrchafedig',
+ acirc: 'Llythyren a fach Lladinaidd gydag acen grom',
+ atilde: 'Llythyren a fach Lladinaidd gyda thild',
+ auml: 'Llythyren a fach Lladinaidd gyda didolnod',
+ aring: 'Llythyren a fach Lladinaidd gyda chylch uwchben',
+ aelig: 'Llythyren æ fach Lladinaidd',
+ ccedil: 'Llythyren c fach Lladinaidd gyda sedila',
+ egrave: 'Llythyren e fach Lladinaidd gydag acen ddisgynedig',
+ eacute: 'Llythyren e fach Lladinaidd gydag acen ddyrchafedig',
+ ecirc: 'Llythyren e fach Lladinaidd gydag acen grom',
+ euml: 'Llythyren e fach Lladinaidd gyda didolnod',
+ igrave: 'Llythyren i fach Lladinaidd gydag acen ddisgynedig',
+ iacute: 'Llythyren i fach Lladinaidd gydag acen ddyrchafedig',
+ icirc: 'Llythyren i fach Lladinaidd gydag acen grom',
+ iuml: 'Llythyren i fach Lladinaidd gyda didolnod',
+ eth: 'Llythyren eth fach',
+ ntilde: 'Llythyren n fach Lladinaidd gyda thild',
+ ograve: 'Llythyren o fach Lladinaidd gydag acen ddisgynedig',
+ oacute: 'Llythyren o fach Lladinaidd gydag acen ddyrchafedig',
+ ocirc: 'Llythyren o fach Lladinaidd gydag acen grom',
+ otilde: 'Llythyren o fach Lladinaidd gyda thild',
+ ouml: 'Llythyren o fach Lladinaidd gyda didolnod',
+ divide: 'Arwydd rhannu',
+ oslash: 'Llyth',
+ ugrave: 'Llythyren u fach Lladinaidd gydag acen ddisgynedig',
+ uacute: 'Llythyren u fach Lladinaidd gydag acen ddyrchafedig',
+ ucirc: 'Llythyren u fach Lladinaidd gydag acen grom',
+ uuml: 'Llythyren u fach Lladinaidd gyda didolnod',
+ yacute: 'Llythyren y fach Lladinaidd gydag acen ddisgynedig',
+ thorn: 'Llythyren o fach Lladinaidd gyda strôc',
+ yuml: 'Llythyren y fach Lladinaidd gyda didolnod',
+ OElig: 'Priflythyren cwlwm OE Lladinaidd ',
+ oelig: 'Priflythyren cwlwm oe Lladinaidd ',
+ '372': 'Priflythyren W gydag acen grom',
+ '374': 'Priflythyren Y gydag acen grom',
+ '373': 'Llythyren w fach gydag acen grom',
+ '375': 'Llythyren y fach gydag acen grom',
+ sbquo: 'Dyfynnod sengl 9-isel',
+ '8219': 'Dyfynnod sengl 9-uchel cildro',
+ bdquo: 'Dyfynnod dwbl 9-isel',
+ hellip: 'Coll geiriau llorweddol',
+ trade: 'Arwydd marc masnachol',
+ '9658': 'Pwyntydd du i\'r dde',
+ bull: 'Bwled',
+ rarr: 'Saeth i\'r dde',
+ rArr: 'Saeth ddwbl i\'r dde',
+ hArr: 'Saeth ddwbl i\'r chwith',
+ diams: 'Siwt diemwnt du',
+ asymp: 'Bron yn hafal iddo'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/de.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/de.js
new file mode 100644
index 0000000..96dc0d8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/de.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'de', {
+ euro: 'Euro Zeichen',
+ lsquo: 'Hochkomma links',
+ rsquo: 'Hochkomma rechts',
+ ldquo: 'Anführungszeichen links',
+ rdquo: 'Anführungszeichen rechts',
+ ndash: 'kleiner Strich',
+ mdash: 'mittlerer Strich',
+ iexcl: 'invertiertes Ausrufezeichen',
+ cent: 'Cent',
+ pound: 'Pfund',
+ curren: 'Währung',
+ yen: 'Yen',
+ brvbar: 'gestrichelte Linie',
+ sect: '§ Zeichen',
+ uml: 'Diäresis',
+ copy: 'Copyright',
+ ordf: 'Feminine ordinal Anzeige',
+ laquo: 'Nach links zeigenden Doppel-Winkel Anführungszeichen',
+ not: 'Not-Zeichen',
+ reg: 'Registriert',
+ macr: 'Längezeichen',
+ deg: 'Grad',
+ sup2: 'Hoch 2',
+ sup3: 'Hoch 3',
+ acute: 'Akzentzeichen ',
+ micro: 'Micro',
+ para: 'Pilcrow-Zeichen',
+ middot: 'Mittelpunkt',
+ cedil: 'Cedilla',
+ sup1: 'Hoch 1',
+ ordm: 'Männliche Ordnungszahl Anzeige',
+ raquo: 'Nach rechts zeigenden Doppel-Winkel Anführungszeichen',
+ frac14: 'ein Viertel',
+ frac12: 'Hälfte',
+ frac34: 'Dreiviertel',
+ iquest: 'Umgekehrtes Fragezeichen',
+ Agrave: 'Lateinischer Buchstabe A mit AkzentGrave',
+ Aacute: 'Lateinischer Buchstabe A mit Akutakzent',
+ Acirc: 'Lateinischer Buchstabe A mit Zirkumflex',
+ Atilde: 'Lateinischer Buchstabe A mit Tilde',
+ Auml: 'Lateinischer Buchstabe A mit Trema',
+ Aring: 'Lateinischer Buchstabe A mit Ring oben',
+ AElig: 'Lateinischer Buchstabe Ã',
+ Ccedil: 'Lateinischer Buchstabe C mit Cedille',
+ Egrave: 'Lateinischer Buchstabe E mit AkzentGrave',
+ Eacute: 'Lateinischer Buchstabe E mit Akutakzent',
+ Ecirc: 'Lateinischer Buchstabe E mit Zirkumflex',
+ Euml: 'Lateinischer Buchstabe E Trema',
+ Igrave: 'Lateinischer Buchstabe I mit AkzentGrave',
+ Iacute: 'Lateinischer Buchstabe I mit Akutakzent',
+ Icirc: 'Lateinischer Buchstabe I mit Zirkumflex',
+ Iuml: 'Lateinischer Buchstabe I mit Trema',
+ ETH: 'Lateinischer Buchstabe Eth',
+ Ntilde: 'Lateinischer Buchstabe N mit Tilde',
+ Ograve: 'Lateinischer Buchstabe O mit AkzentGrave',
+ Oacute: 'Lateinischer Buchstabe O mit Akutakzent',
+ Ocirc: 'Lateinischer Buchstabe O mit Zirkumflex',
+ Otilde: 'Lateinischer Buchstabe O mit Tilde',
+ Ouml: 'Lateinischer Buchstabe O mit Trema',
+ times: 'Multiplikation',
+ Oslash: 'Lateinischer Buchstabe O durchgestrichen',
+ Ugrave: 'Lateinischer Buchstabe U mit Akzentgrave',
+ Uacute: 'Lateinischer Buchstabe U mit Akutakzent',
+ Ucirc: 'Lateinischer Buchstabe U mit Zirkumflex',
+ Uuml: 'Lateinischer Buchstabe a mit Trema',
+ Yacute: 'Lateinischer Buchstabe a mit Akzent',
+ THORN: 'Lateinischer Buchstabe mit Dorn',
+ szlig: 'Kleiner lateinischer Buchstabe scharfe s',
+ agrave: 'Kleiner lateinischer Buchstabe a mit Accent grave',
+ aacute: 'Kleiner lateinischer Buchstabe a mit Akut',
+ acirc: 'Lateinischer Buchstabe a mit Zirkumflex',
+ atilde: 'Lateinischer Buchstabe a mit Tilde',
+ auml: 'Kleiner lateinischer Buchstabe a mit Trema',
+ aring: 'Kleiner lateinischer Buchstabe a mit Ring oben',
+ aelig: 'Lateinischer Buchstabe æ',
+ ccedil: 'Kleiner lateinischer Buchstabe c mit Cedille',
+ egrave: 'Kleiner lateinischer Buchstabe e mit Accent grave',
+ eacute: 'Kleiner lateinischer Buchstabe e mit Akut',
+ ecirc: 'Kleiner lateinischer Buchstabe e mit Zirkumflex',
+ euml: 'Kleiner lateinischer Buchstabe e mit Trema',
+ igrave: 'Kleiner lateinischer Buchstabe i mit AkzentGrave',
+ iacute: 'Kleiner lateinischer Buchstabe i mit Akzent',
+ icirc: 'Kleiner lateinischer Buchstabe i mit Zirkumflex',
+ iuml: 'Kleiner lateinischer Buchstabe i mit Trema',
+ eth: 'Kleiner lateinischer Buchstabe eth',
+ ntilde: 'Kleiner lateinischer Buchstabe n mit Tilde',
+ ograve: 'Kleiner lateinischer Buchstabe o mit Accent grave',
+ oacute: 'Kleiner lateinischer Buchstabe o mit Akzent',
+ ocirc: 'Kleiner lateinischer Buchstabe o mit Zirkumflex',
+ otilde: 'Lateinischer Buchstabe i mit Tilde',
+ ouml: 'Kleiner lateinischer Buchstabe o mit Trema',
+ divide: 'Divisionszeichen',
+ oslash: 'Kleiner lateinischer Buchstabe o durchgestrichen',
+ ugrave: 'Kleiner lateinischer Buchstabe u mit Accent grave',
+ uacute: 'Kleiner lateinischer Buchstabe u mit Akut',
+ ucirc: 'Kleiner lateinischer Buchstabe u mit Zirkumflex',
+ uuml: 'Kleiner lateinischer Buchstabe u mit Trema',
+ yacute: 'Kleiner lateinischer Buchstabe y mit Akut',
+ thorn: 'Kleiner lateinischer Buchstabe Dorn',
+ yuml: 'Kleiner lateinischer Buchstabe y mit Trema',
+ OElig: 'Lateinischer Buchstabe Ligatur OE',
+ oelig: 'Kleiner lateinischer Buchstabe Ligatur OE',
+ '372': 'Lateinischer Buchstabe W mit Zirkumflex',
+ '374': 'Lateinischer Buchstabe Y mit Zirkumflex',
+ '373': 'Kleiner lateinischer Buchstabe w mit Zirkumflex',
+ '375': 'Kleiner lateinischer Buchstabe y mit Zirkumflex',
+ sbquo: 'Tiefergestelltes Komma',
+ '8219': 'Rumgedrehtes Komma',
+ bdquo: 'Doppeltes Anführungszeichen unten',
+ hellip: 'horizontale Auslassungspunkte',
+ trade: 'Handelszeichen',
+ '9658': 'Dreickspfeil rechts',
+ bull: 'Bullet',
+ rarr: 'Pfeil rechts',
+ rArr: 'Doppelpfeil rechts',
+ hArr: 'Doppelpfeil links',
+ diams: 'Karo',
+ asymp: 'Ungefähr'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/el.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/el.js
new file mode 100644
index 0000000..30919e9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/el.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'el', {
+ euro: 'ΣÏμβολο ÎÏ
ÏÏ',
+ lsquo: 'ÎÏιÏÏεÏÏÏ ÏαÏακÏήÏÎ±Ï Î¼Î¿Î½Î¿Ï ÎµÎ¹ÏαγÏγικοÏ',
+ rsquo: 'ÎεξιÏÏ ÏαÏακÏήÏÎ±Ï Î¼Î¿Î½Î¿Ï ÎµÎ¹ÏαγÏγικοÏ',
+ ldquo: 'ÎÏιÏÏεÏÏÏ ÏαÏακÏήÏÎ±Ï Î´Î¹ÏÎ»Î¿Ï ÎµÎ¹ÏαγÏγικοÏ',
+ rdquo: 'ÎεξιÏÏ ÏαÏακÏήÏÎ±Ï Î´Î¹ÏÎ»Î¿Ï ÎµÎ¹ÏαγÏγικοÏ',
+ ndash: 'ΠαÏλα en',
+ mdash: 'ΠαÏλα em',
+ iexcl: 'ÎνάÏοδο θαÏ
μαÏÏικÏ',
+ cent: 'ΣÏμβολο ΣενÏ',
+ pound: 'ΣÏμβολο λίÏαÏ',
+ curren: 'ΣÏμβολο ÏÏ
ναλλαγμαÏÎ¹ÎºÎ®Ï Î¼Î¿Î½Î¬Î´Î±Ï',
+ yen: 'ΣÏμβολο ÎιÎν',
+ brvbar: 'ΣÏαÏμÎνη μÏάÏα',
+ sect: 'ΣÏμβολο ÏμήμαÏοÏ',
+ uml: 'ÎιαίÏεÏη',
+ copy: 'ΣÏμβολο ÏνεÏ
μαÏικÏν δικαιÏμάÏÏν',
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Left-pointing double angle quotation mark', // MISSING
+ not: 'Not sign', // MISSING
+ reg: 'Registered sign', // MISSING
+ macr: 'Macron', // MISSING
+ deg: 'Degree sign', // MISSING
+ sup2: 'Superscript two', // MISSING
+ sup3: 'Superscript three', // MISSING
+ acute: 'Acute accent', // MISSING
+ micro: 'Micro sign', // MISSING
+ para: 'Pilcrow sign', // MISSING
+ middot: 'Middle dot', // MISSING
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Superscript one', // MISSING
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'Right-pointing double angle quotation mark', // MISSING
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Inverted question mark', // MISSING
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Rightwards arrow', // MISSING
+ rArr: 'Rightwards double arrow', // MISSING
+ hArr: 'Left right double arrow', // MISSING
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'Almost equal to' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/en.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/en.js
new file mode 100644
index 0000000..ac3fd09
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/en.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'en', {
+ euro: 'Euro sign',
+ lsquo: 'Left single quotation mark',
+ rsquo: 'Right single quotation mark',
+ ldquo: 'Left double quotation mark',
+ rdquo: 'Right double quotation mark',
+ ndash: 'En dash',
+ mdash: 'Em dash',
+ iexcl: 'Inverted exclamation mark',
+ cent: 'Cent sign',
+ pound: 'Pound sign',
+ curren: 'Currency sign',
+ yen: 'Yen sign',
+ brvbar: 'Broken bar',
+ sect: 'Section sign',
+ uml: 'Diaeresis',
+ copy: 'Copyright sign',
+ ordf: 'Feminine ordinal indicator',
+ laquo: 'Left-pointing double angle quotation mark',
+ not: 'Not sign',
+ reg: 'Registered sign',
+ macr: 'Macron',
+ deg: 'Degree sign',
+ sup2: 'Superscript two',
+ sup3: 'Superscript three',
+ acute: 'Acute accent',
+ micro: 'Micro sign',
+ para: 'Pilcrow sign',
+ middot: 'Middle dot',
+ cedil: 'Cedilla',
+ sup1: 'Superscript one',
+ ordm: 'Masculine ordinal indicator',
+ raquo: 'Right-pointing double angle quotation mark',
+ frac14: 'Vulgar fraction one quarter',
+ frac12: 'Vulgar fraction one half',
+ frac34: 'Vulgar fraction three quarters',
+ iquest: 'Inverted question mark',
+ Agrave: 'Latin capital letter A with grave accent',
+ Aacute: 'Latin capital letter A with acute accent',
+ Acirc: 'Latin capital letter A with circumflex',
+ Atilde: 'Latin capital letter A with tilde',
+ Auml: 'Latin capital letter A with diaeresis',
+ Aring: 'Latin capital letter A with ring above',
+ AElig: 'Latin Capital letter Ã',
+ Ccedil: 'Latin capital letter C with cedilla',
+ Egrave: 'Latin capital letter E with grave accent',
+ Eacute: 'Latin capital letter E with acute accent',
+ Ecirc: 'Latin capital letter E with circumflex',
+ Euml: 'Latin capital letter E with diaeresis',
+ Igrave: 'Latin capital letter I with grave accent',
+ Iacute: 'Latin capital letter I with acute accent',
+ Icirc: 'Latin capital letter I with circumflex',
+ Iuml: 'Latin capital letter I with diaeresis',
+ ETH: 'Latin capital letter Eth',
+ Ntilde: 'Latin capital letter N with tilde',
+ Ograve: 'Latin capital letter O with grave accent',
+ Oacute: 'Latin capital letter O with acute accent',
+ Ocirc: 'Latin capital letter O with circumflex',
+ Otilde: 'Latin capital letter O with tilde',
+ Ouml: 'Latin capital letter O with diaeresis',
+ times: 'Multiplication sign',
+ Oslash: 'Latin capital letter O with stroke',
+ Ugrave: 'Latin capital letter U with grave accent',
+ Uacute: 'Latin capital letter U with acute accent',
+ Ucirc: 'Latin capital letter U with circumflex',
+ Uuml: 'Latin capital letter U with diaeresis',
+ Yacute: 'Latin capital letter Y with acute accent',
+ THORN: 'Latin capital letter Thorn',
+ szlig: 'Latin small letter sharp s',
+ agrave: 'Latin small letter a with grave accent',
+ aacute: 'Latin small letter a with acute accent',
+ acirc: 'Latin small letter a with circumflex',
+ atilde: 'Latin small letter a with tilde',
+ auml: 'Latin small letter a with diaeresis',
+ aring: 'Latin small letter a with ring above',
+ aelig: 'Latin small letter æ',
+ ccedil: 'Latin small letter c with cedilla',
+ egrave: 'Latin small letter e with grave accent',
+ eacute: 'Latin small letter e with acute accent',
+ ecirc: 'Latin small letter e with circumflex',
+ euml: 'Latin small letter e with diaeresis',
+ igrave: 'Latin small letter i with grave accent',
+ iacute: 'Latin small letter i with acute accent',
+ icirc: 'Latin small letter i with circumflex',
+ iuml: 'Latin small letter i with diaeresis',
+ eth: 'Latin small letter eth',
+ ntilde: 'Latin small letter n with tilde',
+ ograve: 'Latin small letter o with grave accent',
+ oacute: 'Latin small letter o with acute accent',
+ ocirc: 'Latin small letter o with circumflex',
+ otilde: 'Latin small letter o with tilde',
+ ouml: 'Latin small letter o with diaeresis',
+ divide: 'Division sign',
+ oslash: 'Latin small letter o with stroke',
+ ugrave: 'Latin small letter u with grave accent',
+ uacute: 'Latin small letter u with acute accent',
+ ucirc: 'Latin small letter u with circumflex',
+ uuml: 'Latin small letter u with diaeresis',
+ yacute: 'Latin small letter y with acute accent',
+ thorn: 'Latin small letter thorn',
+ yuml: 'Latin small letter y with diaeresis',
+ OElig: 'Latin capital ligature OE',
+ oelig: 'Latin small ligature oe',
+ '372': 'Latin capital letter W with circumflex',
+ '374': 'Latin capital letter Y with circumflex',
+ '373': 'Latin small letter w with circumflex',
+ '375': 'Latin small letter y with circumflex',
+ sbquo: 'Single low-9 quotation mark',
+ '8219': 'Single high-reversed-9 quotation mark',
+ bdquo: 'Double low-9 quotation mark',
+ hellip: 'Horizontal ellipsis',
+ trade: 'Trade mark sign',
+ '9658': 'Black right-pointing pointer',
+ bull: 'Bullet',
+ rarr: 'Rightwards arrow',
+ rArr: 'Rightwards double arrow',
+ hArr: 'Left right double arrow',
+ diams: 'Black diamond suit',
+ asymp: 'Almost equal to'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/eo.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/eo.js
new file mode 100644
index 0000000..fcc2ece
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/eo.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'eo', {
+ euro: 'EÅrosigno',
+ lsquo: 'Supra 6-citilo',
+ rsquo: 'Supra 9-citilo',
+ ldquo: 'Supra 66-citilo',
+ rdquo: 'Supra 99-citilo',
+ ndash: 'Streketo',
+ mdash: 'Substreko',
+ iexcl: 'Renversita krisigno',
+ cent: 'Cendosigno',
+ pound: 'Pundosigno',
+ curren: 'Monersigno',
+ yen: 'Enosigno',
+ brvbar: 'Rompita vertikala streko',
+ sect: 'Kurba paragrafo',
+ uml: 'Tremao',
+ copy: 'Kopirajtosigno',
+ ordf: 'Adjektiva numerfinaĵo',
+ laquo: 'Duobla malplio-citilo',
+ not: 'Negohoko',
+ reg: 'Registrita marko',
+ macr: 'Superstreko',
+ deg: 'Gradosigno',
+ sup2: 'Supra indico 2',
+ sup3: 'Supra indico 3',
+ acute: 'Dekstra korno',
+ micro: 'Mikrosigno',
+ para: 'Rekta paragrafo',
+ middot: 'Meza punkto',
+ cedil: 'Zoeto',
+ sup1: 'Supra indico 1',
+ ordm: 'Substantiva numerfinaĵo',
+ raquo: 'Duobla plio-citilo',
+ frac14: 'Kvaronosigno',
+ frac12: 'Duonosigno',
+ frac34: 'Trikvaronosigno',
+ iquest: 'renversita demandosigno',
+ Agrave: 'Latina Äeflitero A kun liva korno',
+ Aacute: 'Latina Äeflitero A kun dekstra korno',
+ Acirc: 'Latina Äeflitero A kun Äapelo',
+ Atilde: 'Latina Äeflitero A kun tildo',
+ Auml: 'Latina Äeflitero A kun tremao',
+ Aring: 'Latina Äeflitero A kun superringo',
+ AElig: 'Latina Äeflitera ligaturo Ã',
+ Ccedil: 'Latina Äeflitero C kun zoeto',
+ Egrave: 'Latina Äeflitero E kun liva korno',
+ Eacute: 'Latina Äeflitero E kun dekstra korno',
+ Ecirc: 'Latina Äeflitero E kun Äapelo',
+ Euml: 'Latina Äeflitero E kun tremao',
+ Igrave: 'Latina Äeflitero I kun liva korno',
+ Iacute: 'Latina Äeflitero I kun dekstra korno',
+ Icirc: 'Latina Äeflitero I kun Äapelo',
+ Iuml: 'Latina Äeflitero I kun tremao',
+ ETH: 'Latina Äeflitero islanda edo',
+ Ntilde: 'Latina Äeflitero N kun tildo',
+ Ograve: 'Latina Äeflitero O kun liva korno',
+ Oacute: 'Latina Äeflitero O kun dekstra korno',
+ Ocirc: 'Latina Äeflitero O kun Äapelo',
+ Otilde: 'Latina Äeflitero O kun tildo',
+ Ouml: 'Latina Äeflitero O kun tremao',
+ times: 'Multipliko',
+ Oslash: 'Latina Äeflitero O trastrekita',
+ Ugrave: 'Latina Äeflitero U kun liva korno',
+ Uacute: 'Latina Äeflitero U kun dekstra korno',
+ Ucirc: 'Latina Äeflitero U kun Äapelo',
+ Uuml: 'Latina Äeflitero U kun tremao',
+ Yacute: 'Latina Äeflitero Y kun dekstra korno',
+ THORN: 'Latina Äeflitero islanda dorno',
+ szlig: 'Latina etlitero germana sozo (akra s)',
+ agrave: 'Latina etlitero a kun liva korno',
+ aacute: 'Latina etlitero a kun dekstra korno',
+ acirc: 'Latina etlitero a kun Äapelo',
+ atilde: 'Latina etlitero a kun tildo',
+ auml: 'Latina etlitero a kun tremao',
+ aring: 'Latina etlitero a kun superringo',
+ aelig: 'Latina etlitera ligaturo æ',
+ ccedil: 'Latina etlitero c kun zoeto',
+ egrave: 'Latina etlitero e kun liva korno',
+ eacute: 'Latina etlitero e kun dekstra korno',
+ ecirc: 'Latina etlitero e kun Äapelo',
+ euml: 'Latina etlitero e kun tremao',
+ igrave: 'Latina etlitero i kun liva korno',
+ iacute: 'Latina etlitero i kun dekstra korno',
+ icirc: 'Latina etlitero i kun Äapelo',
+ iuml: 'Latina etlitero i kun tremao',
+ eth: 'Latina etlitero islanda edo',
+ ntilde: 'Latina etlitero n kun tildo',
+ ograve: 'Latina etlitero o kun liva korno',
+ oacute: 'Latina etlitero o kun dekstra korno',
+ ocirc: 'Latina etlitero o kun Äapelo',
+ otilde: 'Latina etlitero o kun tildo',
+ ouml: 'Latina etlitero o kun tremao',
+ divide: 'Dividosigno',
+ oslash: 'Latina etlitero o trastrekita',
+ ugrave: 'Latina etlitero u kun liva korno',
+ uacute: 'Latina etlitero u kun dekstra korno',
+ ucirc: 'Latina etlitero u kun Äapelo',
+ uuml: 'Latina etlitero u kun tremao',
+ yacute: 'Latina etlitero y kun dekstra korno',
+ thorn: 'Latina etlitero islanda dorno',
+ yuml: 'Latina etlitero y kun tremao',
+ OElig: 'Latina Äeflitera ligaturo Å',
+ oelig: 'Latina etlitera ligaturo Å',
+ '372': 'Latina Äeflitero W kun Äapelo',
+ '374': 'Latina Äeflitero Y kun Äapelo',
+ '373': 'Latina etlitero w kun Äapelo',
+ '375': 'Latina etlitero y kun Äapelo',
+ sbquo: 'Suba 9-citilo',
+ '8219': 'Supra renversita 9-citilo',
+ bdquo: 'Suba 99-citilo',
+ hellip: 'Tripunkto',
+ trade: 'Varmarka signo',
+ '9658': 'Nigra sago dekstren',
+ bull: 'Bulmarko',
+ rarr: 'Sago dekstren',
+ rArr: 'Duobla sago dekstren',
+ hArr: 'Duobla sago maldekstren',
+ diams: 'Nigra kvadrato',
+ asymp: 'PreskaÅ egala'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/et.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/et.js
new file mode 100644
index 0000000..159dec6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/et.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'et', {
+ euro: 'Euromärk',
+ lsquo: 'Alustav ühekordne jutumärk',
+ rsquo: 'Lõpetav ühekordne jutumärk',
+ ldquo: 'Alustav kahekordne jutumärk',
+ rdquo: 'Lõpetav kahekordne jutumärk',
+ ndash: 'Enn-kriips',
+ mdash: 'Emm-kriips',
+ iexcl: 'Pööratud hüüumärk',
+ cent: 'Sendimärk',
+ pound: 'Naela märk',
+ curren: 'Valuutamärk',
+ yen: 'Jeeni märk',
+ brvbar: 'Katkestatud kriips',
+ sect: 'Lõigu märk',
+ uml: 'Täpid',
+ copy: 'Autoriõiguse märk',
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Left-pointing double angle quotation mark', // MISSING
+ not: 'Ei-märk',
+ reg: 'Registered sign', // MISSING
+ macr: 'Macron', // MISSING
+ deg: 'Kraadimärk',
+ sup2: 'Ãlaindeks kaks',
+ sup3: 'Ãlaindeks kolm',
+ acute: 'Acute accent', // MISSING
+ micro: 'Mikro-märk',
+ para: 'Pilcrow sign', // MISSING
+ middot: 'Keskpunkt',
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Ãlaindeks üks',
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'Right-pointing double angle quotation mark', // MISSING
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Inverted question mark', // MISSING
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Ladina suur A tildega',
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Täppidega ladina suur O',
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Kandilise katusega suur ladina U',
+ Uuml: 'Täppidega ladina suur U',
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Ladina väike terav s',
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Kandilise katusega ladina väike a',
+ atilde: 'Tildega ladina väike a',
+ auml: 'Täppidega ladina väike a',
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Rightwards arrow', // MISSING
+ rArr: 'Rightwards double arrow', // MISSING
+ hArr: 'Left right double arrow', // MISSING
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'Almost equal to' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fa.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fa.js
new file mode 100644
index 0000000..95694d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fa.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'fa', {
+ euro: 'ÙØ´Ø§Ù ÛÙØ±Ù',
+ lsquo: 'Ø¹ÙØ§Ù
ت ÙÙÙ ÙÙÙ ØªÚ©Û ÚÙ¾',
+ rsquo: 'Ø¹ÙØ§Ù
ت ÙÙÙ ÙÙÙ ØªÚ©Û Ø±Ø§Ø³Øª',
+ ldquo: 'Ø¹ÙØ§Ù
ت Ø¯ÙØªØ§ÛÛ ÙÙÙ ÙÙÙ ÚÙ¾',
+ rdquo: 'Ø¹ÙØ§Ù
ت Ø¯ÙØªØ§ÛÛ ÙÙÙ ÙÙ٠راست',
+ ndash: 'خط ØªÛØ±Ù En',
+ mdash: 'خط ØªÛØ±Ù Em',
+ iexcl: 'Ø¹ÙØ§Ù
ت Ú¯Ø°Ø§Ø±Û Ø¨Ù Ø¹ÙÙØ§Ù Ø¹ÙØ§Ù
ت تعجب ÙØ§Ø±ÙÙÙ',
+ cent: 'ÙØ´Ø§Ù Ø³ÙØª',
+ pound: 'ÙØ´Ø§Ù Ù¾ÙÙØ¯',
+ curren: 'ÙØ´Ø§Ù ارز',
+ yen: 'ÙØ´Ø§Ù ÛÙ',
+ brvbar: 'ÙÙØ§Ø± شکستÙ',
+ sect: 'ÙØ´Ø§Ù بخش',
+ uml: 'Diaeresis', // MISSING
+ copy: 'ÙØ´Ø§Ù Ú©Ù¾Û Ø±Ø§ÛØª',
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Left-pointing double angle quotation mark', // MISSING
+ not: 'Ø¹ÙØ§Ù
ت ثبت ÙØ´Ø¯Ù',
+ reg: 'Ø¹ÙØ§Ù
ت ثبت شدÙ',
+ macr: 'Macron', // MISSING
+ deg: 'ÙØ´Ø§Ù درجÙ',
+ sup2: 'Ø¨Ø§ÙØ§ÙÙÛØ³ دÙ',
+ sup3: 'Ø¨Ø§ÙØ§ÙÙÛØ³ سÙ',
+ acute: 'ÙÙØ¬Ù غÙÛØ¸',
+ micro: 'ÙØ´Ø§Ù Ù
اÛکرÙ',
+ para: 'Pilcrow sign', // MISSING
+ middot: 'ÙÙØ·Ù Ù
ÛØ§ÙÛ',
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Superscript one', // MISSING
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'ÙØ´Ø§Ù زاÙÛÙâØ¯Ø§Ø± Ø¯ÙØªØ§ÛÛ ÙÙÙ ÙÙ٠راست ÚÛÙ',
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Inverted question mark', // MISSING
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Rightwards arrow', // MISSING
+ rArr: 'Rightwards double arrow', // MISSING
+ hArr: 'Ø¬ÙØªâÙÙ
Ø§Û Ø¯ÙØªØ§ÛÛ ÚÙ¾ ب٠راست',
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'ØªÙØ±Ûبا برابر با'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fi.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fi.js
new file mode 100644
index 0000000..96a1e36
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fi.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'fi', {
+ euro: 'Euron merkki',
+ lsquo: 'Vasen yksittäinen lainausmerkki',
+ rsquo: 'Oikea yksittäinen lainausmerkki',
+ ldquo: 'Vasen kaksoislainausmerkki',
+ rdquo: 'Oikea kaksoislainausmerkki',
+ ndash: 'En dash', // MISSING
+ mdash: 'Em dash', // MISSING
+ iexcl: 'Inverted exclamation mark', // MISSING
+ cent: 'Sentin merkki',
+ pound: 'Punnan merkki',
+ curren: 'Valuuttamerkki',
+ yen: 'Yenin merkki',
+ brvbar: 'Broken bar', // MISSING
+ sect: 'Section sign', // MISSING
+ uml: 'Diaeresis', // MISSING
+ copy: 'Copyright sign', // MISSING
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Left-pointing double angle quotation mark', // MISSING
+ not: 'Not sign', // MISSING
+ reg: 'Rekisteröity merkki',
+ macr: 'Macron', // MISSING
+ deg: 'Asteen merkki',
+ sup2: 'Yläindeksi kaksi',
+ sup3: 'Yläindeksi kolme',
+ acute: 'Acute accent', // MISSING
+ micro: 'Mikron merkki',
+ para: 'Pilcrow sign', // MISSING
+ middot: 'Middle dot', // MISSING
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Yläindeksi yksi',
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'Right-pointing double angle quotation mark', // MISSING
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Ylösalaisin oleva kysymysmerkki',
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Kertomerkki',
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Jakomerkki',
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Tavaramerkki merkki',
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Nuoli oikealle',
+ rArr: 'Kaksoisnuoli oikealle',
+ hArr: 'Kaksoisnuoli oikealle ja vasemmalle',
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'Noin'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fr.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fr.js
new file mode 100644
index 0000000..04f0321
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/fr.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'fr', {
+ euro: 'Symbole Euro',
+ lsquo: 'Guillemet simple ouvrant',
+ rsquo: 'Guillemet simple fermant',
+ ldquo: 'Guillemet double ouvrant',
+ rdquo: 'Guillemet double fermant',
+ ndash: 'Tiret haut',
+ mdash: 'Tiret bas underscore',
+ iexcl: 'Point d\'exclamation inversé',
+ cent: 'Symbole Cent',
+ pound: 'Symbole Livre Sterling',
+ curren: 'Symbole monétaire',
+ yen: 'Symbole Yen',
+ brvbar: 'Barre verticale scindée',
+ sect: 'Section',
+ uml: 'Tréma',
+ copy: 'Symbole Copyright',
+ ordf: 'Indicateur ordinal féminin',
+ laquo: 'Guillemet français ouvrant',
+ not: 'Crochet de négation',
+ reg: 'Marque déposée',
+ macr: 'Macron',
+ deg: 'Degré',
+ sup2: 'Exposant 2',
+ sup3: '\\tExposant 3',
+ acute: 'Accent aigu',
+ micro: 'Omicron',
+ para: 'Paragraphe',
+ middot: 'Point médian',
+ cedil: 'Cédille',
+ sup1: '\\tExposant 1',
+ ordm: 'Indicateur ordinal masculin',
+ raquo: 'Guillemet français fermant',
+ frac14: 'Un quart',
+ frac12: 'Un demi',
+ frac34: 'Trois quarts',
+ iquest: 'Point d\'interrogation inversé',
+ Agrave: 'A majuscule accent grave',
+ Aacute: 'A majuscule accent aigu',
+ Acirc: 'A majuscule accent circonflexe',
+ Atilde: 'A majuscule avec caron',
+ Auml: 'A majuscule tréma',
+ Aring: 'A majuscule avec un rond au-dessus',
+ AElig: 'à majuscule ligaturés',
+ Ccedil: 'C majuscule cédille',
+ Egrave: 'E majuscule accent grave',
+ Eacute: 'E majuscule accent aigu',
+ Ecirc: 'E majuscule accent circonflexe',
+ Euml: 'E majuscule tréma',
+ Igrave: 'I majuscule accent grave',
+ Iacute: 'I majuscule accent aigu',
+ Icirc: 'I majuscule accent circonflexe',
+ Iuml: 'I majuscule tréma',
+ ETH: 'Lettre majuscule islandaise ED',
+ Ntilde: 'N majuscule avec caron',
+ Ograve: 'O majuscule accent grave',
+ Oacute: 'O majuscule accent aigu',
+ Ocirc: 'O majuscule accent circonflexe',
+ Otilde: 'O majuscule avec caron',
+ Ouml: 'O majuscule tréma',
+ times: 'Multiplication',
+ Oslash: 'O majuscule barré',
+ Ugrave: 'U majuscule accent grave',
+ Uacute: 'U majuscule accent aigu',
+ Ucirc: 'U majuscule accent circonflexe',
+ Uuml: 'U majuscule tréma',
+ Yacute: 'Y majuscule accent aigu',
+ THORN: 'Lettre islandaise Thorn majuscule',
+ szlig: 'Lettre minuscule allemande s dur',
+ agrave: 'a minuscule accent grave',
+ aacute: 'a minuscule accent aigu',
+ acirc: 'a minuscule accent circonflexe',
+ atilde: 'a minuscule avec caron',
+ auml: 'a minuscule tréma',
+ aring: 'a minuscule avec un rond au-dessus',
+ aelig: 'æ minuscule ligaturés',
+ ccedil: 'c minuscule cédille',
+ egrave: 'e minuscule accent grave',
+ eacute: 'e minuscule accent aigu',
+ ecirc: 'e minuscule accent circonflexe',
+ euml: 'e minuscule tréma',
+ igrave: 'i minuscule accent grave',
+ iacute: 'i minuscule accent aigu',
+ icirc: 'i minuscule accent circonflexe',
+ iuml: 'i minuscule tréma',
+ eth: 'Lettre minuscule islandaise ED',
+ ntilde: 'n minuscule avec caron',
+ ograve: 'o minuscule accent grave',
+ oacute: 'o minuscule accent aigu',
+ ocirc: 'o minuscule accent circonflexe',
+ otilde: 'o minuscule avec caron',
+ ouml: 'o minuscule tréma',
+ divide: 'Division',
+ oslash: 'o minuscule barré',
+ ugrave: 'u minuscule accent grave',
+ uacute: 'u minuscule accent aigu',
+ ucirc: 'u minuscule accent circonflexe',
+ uuml: 'u minuscule tréma',
+ yacute: 'y minuscule accent aigu',
+ thorn: 'Lettre islandaise thorn minuscule',
+ yuml: 'y minuscule tréma',
+ OElig: 'ligature majuscule latine Å',
+ oelig: 'ligature minuscule latine Å',
+ '372': 'W majuscule accent circonflexe',
+ '374': 'Y majuscule accent circonflexe',
+ '373': 'w minuscule accent circonflexe',
+ '375': 'y minuscule accent circonflexe',
+ sbquo: 'Guillemet simple fermant (anglais)',
+ '8219': 'Guillemet-virgule supérieur culbuté',
+ bdquo: 'Guillemet-virgule double inférieur',
+ hellip: 'Points de suspension',
+ trade: 'Marque commerciale (trade mark)',
+ '9658': 'Flèche noire pointant vers la droite',
+ bull: 'Gros point médian',
+ rarr: 'Flèche vers la droite',
+ rArr: 'Double flèche vers la droite',
+ hArr: 'Double flèche vers la gauche',
+ diams: 'Carreau noir',
+ asymp: 'Presque égal'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/he.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/he.js
new file mode 100644
index 0000000..14b566f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/he.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'he', {
+ euro: '××ר×',
+ lsquo: 'Left single quotation mark', // MISSING
+ rsquo: 'Right single quotation mark', // MISSING
+ ldquo: 'Left double quotation mark', // MISSING
+ rdquo: 'Right double quotation mark', // MISSING
+ ndash: 'En dash', // MISSING
+ mdash: 'Em dash', // MISSING
+ iexcl: 'Inverted exclamation mark', // MISSING
+ cent: 'Cent sign', // MISSING
+ pound: 'Pound sign', // MISSING
+ curren: 'Currency sign', // MISSING
+ yen: 'Yen sign', // MISSING
+ brvbar: 'Broken bar', // MISSING
+ sect: 'Section sign', // MISSING
+ uml: 'Diaeresis', // MISSING
+ copy: 'Copyright sign', // MISSING
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Left-pointing double angle quotation mark', // MISSING
+ not: 'Not sign', // MISSING
+ reg: 'Registered sign', // MISSING
+ macr: 'Macron', // MISSING
+ deg: 'Degree sign', // MISSING
+ sup2: 'Superscript two', // MISSING
+ sup3: 'Superscript three', // MISSING
+ acute: 'Acute accent', // MISSING
+ micro: 'Micro sign', // MISSING
+ para: 'Pilcrow sign', // MISSING
+ middot: 'Middle dot', // MISSING
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Superscript one', // MISSING
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'Right-pointing double angle quotation mark', // MISSING
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Inverted question mark', // MISSING
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Rightwards arrow', // MISSING
+ rArr: 'Rightwards double arrow', // MISSING
+ hArr: 'Left right double arrow', // MISSING
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'Almost equal to' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/hr.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/hr.js
new file mode 100644
index 0000000..85e2e35
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/hr.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'hr', {
+ euro: 'Euro znak',
+ lsquo: 'Lijevi jednostruki navodnik',
+ rsquo: 'Desni jednostruki navodnik',
+ ldquo: 'Lijevi dvostruki navodnik',
+ rdquo: 'Desni dvostruki navodnik',
+ ndash: 'En crtica',
+ mdash: 'Em crtica',
+ iexcl: 'Naopaki uskliÄnik',
+ cent: 'Cent znak',
+ pound: 'Funta znak',
+ curren: 'Znak valute',
+ yen: 'Yen znak',
+ brvbar: 'Potrgana preÄka',
+ sect: 'Znak odjeljka',
+ uml: 'Diaeresis', // MISSING
+ copy: 'Copyright znak',
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'Lijevi dvostruki uglati navodnik',
+ not: 'Not znak',
+ reg: 'Registered znak',
+ macr: 'Macron', // MISSING
+ deg: 'Stupanj znak',
+ sup2: 'Superscript two', // MISSING
+ sup3: 'Superscript three', // MISSING
+ acute: 'Acute accent', // MISSING
+ micro: 'Micro sign', // MISSING
+ para: 'Pilcrow sign', // MISSING
+ middot: 'Srednja toÄka',
+ cedil: 'Cedilla', // MISSING
+ sup1: 'Superscript one', // MISSING
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'Desni dvostruku uglati navodnik',
+ frac14: 'Vulgar fraction one quarter', // MISSING
+ frac12: 'Vulgar fraction one half', // MISSING
+ frac34: 'Vulgar fraction three quarters', // MISSING
+ iquest: 'Naopaki upitnik',
+ Agrave: 'Veliko latinsko slovo A s akcentom',
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'Latin capital letter O with grave accent', // MISSING
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'Latin small letter n with tilde', // MISSING
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'Rightwards arrow', // MISSING
+ rArr: 'Rightwards double arrow', // MISSING
+ hArr: 'Left right double arrow', // MISSING
+ diams: 'Black diamond suit', // MISSING
+ asymp: 'Almost equal to' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/it.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/it.js
new file mode 100644
index 0000000..8aabf7c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/it.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'it', {
+ euro: 'Simbolo Euro',
+ lsquo: 'Virgoletta singola sinistra',
+ rsquo: 'Virgoletta singola destra',
+ ldquo: 'Virgolette aperte',
+ rdquo: 'Virgolette chiuse',
+ ndash: 'Trattino',
+ mdash: 'Trattino lungo',
+ iexcl: 'Punto esclavamativo invertito',
+ cent: 'Simbolo Cent',
+ pound: 'Simbolo Sterlina',
+ curren: 'Simbolo Moneta',
+ yen: 'Simbolo Yen',
+ brvbar: 'Barra interrotta',
+ sect: 'Simbolo di sezione',
+ uml: 'Dieresi',
+ copy: 'Simbolo Copyright',
+ ordf: 'Indicatore ordinale femminile',
+ laquo: 'Virgolette basse aperte',
+ not: 'Nessun segno',
+ reg: 'Simbolo Registrato',
+ macr: 'Macron',
+ deg: 'Simbolo Grado',
+ sup2: 'Apice Due',
+ sup3: 'Apice Tre',
+ acute: 'Accento acuto',
+ micro: 'Simbolo Micro',
+ para: 'Simbolo Paragrafo',
+ middot: 'Punto centrale',
+ cedil: 'Cediglia',
+ sup1: 'Apice Uno',
+ ordm: 'Indicatore ordinale maschile',
+ raquo: 'Virgolette basse chiuse',
+ frac14: 'Frazione volgare un quarto',
+ frac12: 'Frazione volgare un mezzo',
+ frac34: 'Frazione volgare tre quarti',
+ iquest: 'Punto interrogativo invertito',
+ Agrave: 'Lettera maiuscola latina A con accento grave',
+ Aacute: 'Lettera maiuscola latina A con accento acuto',
+ Acirc: 'Lettera maiuscola latina A con accento circonflesso',
+ Atilde: 'Lettera maiuscola latina A con tilde',
+ Auml: 'Lettera maiuscola latina A con dieresi',
+ Aring: 'Lettera maiuscola latina A con anello sopra',
+ AElig: 'Lettera maiuscola latina AE',
+ Ccedil: 'Lettera maiuscola latina C con cediglia',
+ Egrave: 'Lettera maiuscola latina E con accento grave',
+ Eacute: 'Lettera maiuscola latina E con accento acuto',
+ Ecirc: 'Lettera maiuscola latina E con accento circonflesso',
+ Euml: 'Lettera maiuscola latina E con dieresi',
+ Igrave: 'Lettera maiuscola latina I con accento grave',
+ Iacute: 'Lettera maiuscola latina I con accento acuto',
+ Icirc: 'Lettera maiuscola latina I con accento circonflesso',
+ Iuml: 'Lettera maiuscola latina I con dieresi',
+ ETH: 'Lettera maiuscola latina Eth',
+ Ntilde: 'Lettera maiuscola latina N con tilde',
+ Ograve: 'Lettera maiuscola latina O con accento grave',
+ Oacute: 'Lettera maiuscola latina O con accento acuto',
+ Ocirc: 'Lettera maiuscola latina O con accento circonflesso',
+ Otilde: 'Lettera maiuscola latina O con tilde',
+ Ouml: 'Lettera maiuscola latina O con dieresi',
+ times: 'Simbolo di moltiplicazione',
+ Oslash: 'Lettera maiuscola latina O barrata',
+ Ugrave: 'Lettera maiuscola latina U con accento grave',
+ Uacute: 'Lettera maiuscola latina U con accento acuto',
+ Ucirc: 'Lettera maiuscola latina U con accento circonflesso',
+ Uuml: 'Lettera maiuscola latina U con accento circonflesso',
+ Yacute: 'Lettera maiuscola latina Y con accento acuto',
+ THORN: 'Lettera maiuscola latina Thorn',
+ szlig: 'Lettera latina minuscola doppia S',
+ agrave: 'Lettera minuscola latina a con accento grave',
+ aacute: 'Lettera minuscola latina a con accento acuto',
+ acirc: 'Lettera minuscola latina a con accento circonflesso',
+ atilde: 'Lettera minuscola latina a con tilde',
+ auml: 'Lettera minuscola latina a con dieresi',
+ aring: 'Lettera minuscola latina a con anello superiore',
+ aelig: 'Lettera minuscola latina ae',
+ ccedil: 'Lettera minuscola latina c con cediglia',
+ egrave: 'Lettera minuscola latina e con accento grave',
+ eacute: 'Lettera minuscola latina e con accento acuto',
+ ecirc: 'Lettera minuscola latina e con accento circonflesso',
+ euml: 'Lettera minuscola latina e con dieresi',
+ igrave: 'Lettera minuscola latina i con accento grave',
+ iacute: 'Lettera minuscola latina i con accento acuto',
+ icirc: 'Lettera minuscola latina i con accento circonflesso',
+ iuml: 'Lettera minuscola latina i con dieresi',
+ eth: 'Lettera minuscola latina eth',
+ ntilde: 'Lettera minuscola latina n con tilde',
+ ograve: 'Lettera minuscola latina o con accento grave',
+ oacute: 'Lettera minuscola latina o con accento acuto',
+ ocirc: 'Lettera minuscola latina o con accento circonflesso',
+ otilde: 'Lettera minuscola latina o con tilde',
+ ouml: 'Lettera minuscola latina o con dieresi',
+ divide: 'Simbolo di divisione',
+ oslash: 'Lettera minuscola latina o barrata',
+ ugrave: 'Lettera minuscola latina u con accento grave',
+ uacute: 'Lettera minuscola latina u con accento acuto',
+ ucirc: 'Lettera minuscola latina u con accento circonflesso',
+ uuml: 'Lettera minuscola latina u con dieresi',
+ yacute: 'Lettera minuscola latina y con accento acuto',
+ thorn: 'Lettera minuscola latina thorn',
+ yuml: 'Lettera minuscola latina y con dieresi',
+ OElig: 'Legatura maiuscola latina OE',
+ oelig: 'Legatura minuscola latina oe',
+ '372': 'Lettera maiuscola latina W con accento circonflesso',
+ '374': 'Lettera maiuscola latina Y con accento circonflesso',
+ '373': 'Lettera minuscola latina w con accento circonflesso',
+ '375': 'Lettera minuscola latina y con accento circonflesso',
+ sbquo: 'Singola virgoletta bassa low-9',
+ '8219': 'Singola virgoletta bassa low-9 inversa',
+ bdquo: 'Doppia virgoletta bassa low-9',
+ hellip: 'Ellissi orizzontale',
+ trade: 'Simbolo TM',
+ '9658': 'Puntatore nero rivolto verso destra',
+ bull: 'Punto',
+ rarr: 'Freccia verso destra',
+ rArr: 'Doppia freccia verso destra',
+ hArr: 'Doppia freccia sinistra destra',
+ diams: 'Simbolo nero diamante',
+ asymp: 'Quasi uguale a'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ku.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ku.js
new file mode 100644
index 0000000..67d4b2a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ku.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'ku', {
+ euro: 'ÙÛØ´Ø§ÙÙâÛ ÛÛØ±Û',
+ lsquo: 'ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û ØªØ§Ú©Û ÚÙâÙ¾',
+ rsquo: 'ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û ØªØ§Ú©Û ÚØ§Ø³Øª',
+ ldquo: 'ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û دÙÙÙÛÙØ¯ÙâÛ ÚÙâÙ¾',
+ rdquo: 'ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û دÙÙÙÛÙØ¯ÙâÛ ÚØ§Ø³Øª',
+ ndash: 'تÙâÙÙâÚµÛ Ú©ÙØ±Øª',
+ mdash: 'تÙâÙÙâÚµÛ Ø¯Ø±ÛÚ',
+ iexcl: 'ÙÛØ´Ø§ÙÙâÛ ÙÙâÚµÙâÙÚ¯ÛÚÛ Ø³ÙâØ±Ø³ÙÚÙ
ÛÙÙâØ±',
+ cent: 'ÙÛØ´Ø§ÙÙâÛ Ø³ÙâÙØª',
+ pound: 'ÙÛØ´Ø§ÙÙâÛ Ù¾Ø§ÙÙâÙØ¯',
+ curren: 'ÙÛØ´Ø§ÙÙâÛ Ø¯Ø±Ø§Ù',
+ yen: 'ÙÛØ´Ø§ÙÙâÛ ÛÙâÙÛ ÚØ§Ù¾ÛÙÛ',
+ brvbar: 'Ø´Ø±ÛØªÛ ئÙâØ³ØªÙÙÙÛ Ù¾ÚÚØ§Ù',
+ sect: 'ÙÛØ´Ø§ÙÙâÛ Ø¯ÙÙ s ÙÙâØ³ÙâØ±ÛÙâÙ',
+ uml: 'خاڵ',
+ copy: 'ÙÛØ´Ø§ÙÙâÛ Ù
اÙÛ ÚØ§Ù¾',
+ ordf: 'ÙÛÚµ ÙÙâØ³ÙâØ± Ù¾ÛØªÛ a',
+ laquo: 'دÙÙ ØªÛØ±Û بÙâØ¯ÙÙØ§ÛÙâÚ©Û ÚÙâÙ¾',
+ not: 'ÙÛØ´Ø§ÙÙâÛ ÙÙâØ®ÛØ±',
+ reg: 'ÙÛØ´Ø§ÙÙâÛ R ÙÙâÙØ§Ù بازÙÙâØ¯Ø§',
+ macr: 'Ù
اکÚÙÙÙ',
+ deg: 'ÙÛØ´Ø§ÙÙâÛ Ù¾ÙÙ',
+ sup2: 'سÙâØ±ÙÙÙØ³Û دÙÙ',
+ sup3: 'سÙâØ±ÙÙÙØ³Û سÛ',
+ acute: 'ÙØ§Ø±Û تÛÚ',
+ micro: 'ÙÛØ´Ø§ÙÙâÛ u Ù٠درÛÚÛ ÚÙâÙ¾Û Ø®ÙØ§Ø±ÙÙ',
+ para: 'ÙÛØ´Ø§ÙÙâÛÙ¾ÙâÚÙâگراÙ',
+ middot: 'ÙØ§ÙÙâÚØ§Ø³ØªÛ خاڵ',
+ cedil: 'ÙÛØ´Ø§ÙÙâÛ c ÚÛØ± ÚÙÙکرÙâ',
+ sup1: 'سÙâØ±ÙÙÙØ³Û ÛÙâÙ',
+ ordm: 'ÙÛÚµ ÙÙâÚÛØ± Ù¾ÛØªÛ o',
+ raquo: 'دÙÙ ØªÛØ±Û بÙâØ¯ÙÙØ§ÛÙâÚ©Û ÚØ§Ø³Øª',
+ frac14: 'ÛÙâÙ ÙÙâØ³ÙâØ± ÚÙÙØ§Ø±',
+ frac12: 'ÛÙâÙ ÙÙâØ³ÙâØ± دÙÙ',
+ frac34: 'Ø³Û ÙÙâØ³ÙâØ± ÚÙÙØ§Ø±',
+ iquest: 'ÙÛÙ
Ø§Û ÙÙâÚµÙâÙÚ¯ÛØ±Û Ù¾Ø±Ø³ÛØ§Ø±',
+ Agrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ Aacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ Acirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Atilde: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ',
+ Auml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Aring: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã
',
+ AElig: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã',
+ Ccedil: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ C-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÛØ± ÚÙÙکرÙâ',
+ Egrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ Eacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ Ecirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Euml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Igrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ Iacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ Icirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Iuml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ ETH: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±ÙâÛ',
+ Ntilde: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ N-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ',
+ Ograve: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ Oacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ Ocirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Otilde: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ',
+ Ouml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ times: 'ÙÛØ´Ø§ÙÙâÛ ÙÛکداÙ',
+ Oslash: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã ÙÙâÚ¯ÙâÚµ ÙÛÙ
Ø§Û Ø¯Úµ ÙÙâØ³ØªØ§Ù',
+ Ugrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ Uacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ Ucirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Uuml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ Yacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Y-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ THORN: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ø¯ÚÚ©Û Ú¯ÙâÙØ±Ù',
+ szlig: 'Ù¾ÛØªÛ ÙØ§ØªÙÛ ÙÙÙ٠تÛÚÛ s',
+ agrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ aacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ acirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ atilde: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ',
+ auml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ aring: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ã¥-Û Ø¨ÚÙÙÙ',
+ aelig: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ã¦-Û Ø¨ÚÙÙÙ',
+ ccedil: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ c-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÛØ± ÚÙÙکرÙâ',
+ egrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ eacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ ecirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ euml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ igrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ iacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ icirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ iuml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ eth: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ',
+ ntilde: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ n-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ',
+ ograve: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ oacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ ocirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ otilde: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ',
+ ouml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ divide: 'ÙÛØ´Ø§ÙÙâÛ Ø¯Ø§Ø¨ÙâØ´',
+ oslash: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã¸ ÙÙâÚ¯ÙâÚµ ÙÛÙ
Ø§Û Ø¯Úµ ÙÙâØ³ØªØ§Ù',
+ ugrave: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±',
+ uacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ ucirc: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ uuml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ yacute: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ y-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ',
+ thorn: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ø¯ÚÚ©Û Ø¨ÚÙÙÙ',
+ yuml: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ y-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ OElig: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ù¾ÛÚ©ÙâÙÙâÙÙÙØ³Ø±Ø§ÙÛ OE',
+ oelig: 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ø¨ÚÙÙÚ©Û Ù¾ÛÚ©ÙâÙÙâÙÙÙØ³Ø±Ø§ÙÛ oe',
+ '372': 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ W-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ '374': 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Y-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ '373': 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ w-Û Ø¨ÚÙÙÚ©Û ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ '375': 'Ù¾ÛØªÛ ÙØ§ØªÛÙÛ y-Û Ø¨ÚÙÙÚ©Û ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û',
+ sbquo: 'ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ ÙØ²Ù
',
+ '8219': 'ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø¨ÙâØ±Ø²Û Ù¾ÛÚÙâÙØ§ÙÙ',
+ bdquo: 'دÙÙ ÙØ§Ø±ÛزÙâÛ ØªÙâÙÛØ´ ÛÙâÙ',
+ hellip: 'ئاسÛÛÛ Ø¨Ø§Ø²ÙÙ',
+ trade: 'ÙÛØ´Ø§ÙÙâÛ Ø¨Ø§Ø²Ø±Ú¯Ø§ÙÛ',
+ '9658': 'ئاراستÙâÛ ÚÙâØ´Û Ø¯ÙâØ³ØªÛ ÚØ§Ø³Øª',
+ bull: 'ÙÛØ´ÙâÙ',
+ rarr: 'ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª',
+ rArr: 'دÙÙØªÛØ±Û Ø¯ÙâØ³ØªÛ ÚØ§Ø³Øª',
+ hArr: 'دÙÙ ØªÛØ±Û ÚØ§Ø³Øª Ù ÚÙâÙ¾',
+ diams: 'ÚÙâØ´Û Ù¾Ø§ÙڵاÙÙâÛÛ',
+ asymp: 'ÙÛØ´Ø§ÙÙâÛ ÛÙâکساÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/lv.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/lv.js
new file mode 100644
index 0000000..cc3704c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/lv.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'lv', {
+ euro: 'Euro zīme',
+ lsquo: 'KreisÄ vienkÄrtÄ«ga pÄdiÅa',
+ rsquo: 'LabÄ vienkÄrtÄ«ga pÄdiÅa',
+ ldquo: 'KreisÄ dubult pÄdiÅa',
+ rdquo: 'LabÄ dubult pÄdiÅa',
+ ndash: 'En svītra',
+ mdash: 'Em svītra',
+ iexcl: 'Apgriezta izsaukuma zīme',
+ cent: 'Centu naudas zīme',
+ pound: 'SterliÅu mÄrciÅu naudas zÄ«me',
+ curren: 'Valūtas zīme',
+ yen: 'Jenu naudas zīme',
+ brvbar: 'VertikÄla pÄrrauta lÄ«nija',
+ sect: 'ParagrÄfa zÄ«me',
+ uml: 'Diakritiska zīme',
+ copy: 'Autortiesību zīme',
+ ordf: 'Sievišķas kÄrtas rÄdÄ«tÄjs',
+ laquo: 'KreisÄ dubult stÅ«ra pÄdiÅu zÄ«me',
+ not: 'Neparakstīts',
+ reg: 'ReÄ£istrÄta zÄ«me',
+ macr: 'Garumzīme',
+ deg: 'GrÄdu zÄ«me',
+ sup2: 'Augšraksts divi',
+ sup3: 'Augšraksts trīs',
+ acute: 'Akūta uzsvara zīme',
+ micro: 'Mikro zīme',
+ para: 'Rindkopas zīme ',
+ middot: 'VidÄjs punkts',
+ cedil: 'ÄÄ·Ä«tis zem burta',
+ sup1: 'Augšraksts viens',
+ ordm: 'VÄ«rišķīgas kÄrtas rÄdÄ«tÄjs',
+ raquo: 'LabÄ dubult stÅ«ra pÄdiÅu zÄ«me',
+ frac14: 'VulgÄra frakcija 1/4',
+ frac12: 'VulgÄra frakcija 1/2',
+ frac34: 'VulgÄra frakcija 3/4',
+ iquest: 'Apgriezta jautÄjuma zÄ«me',
+ Agrave: 'Lielais latÄ«Åu burts A ar uzsvara zÄ«mi',
+ Aacute: 'Lielais latÄ«Åu burts A ar akÅ«tu uzsvara zÄ«mi',
+ Acirc: 'Lielais latÄ«Åu burts A ar diakritisku zÄ«mi',
+ Atilde: 'Lielais latÄ«Åu burts A ar tildi ',
+ Auml: 'Lielais latÄ«Åu burts A ar diakritisko zÄ«mi',
+ Aring: 'Lielais latÄ«Åu burts A ar aplÄ«ti augÅ¡Ä',
+ AElig: 'Lielais latÄ«Åu burts Ã',
+ Ccedil: 'Lielais latÄ«Åu burts C ar ÄÄ·Ä«ti zem burta',
+ Egrave: 'Lielais latÄ«Åu burts E ar apostrofu',
+ Eacute: 'Lielais latÄ«Åu burts E ar akÅ«tu uzsvara zÄ«mi',
+ Ecirc: 'Lielais latÄ«Åu burts E ar diakritisko zÄ«mi',
+ Euml: 'Lielais latÄ«Åu burts E ar diakritisko zÄ«mi',
+ Igrave: 'Lielais latÄ«Åu burts I ar uzsvaras zÄ«mi',
+ Iacute: 'Lielais latÄ«Åu burts I ar akÅ«tu uzsvara zÄ«mi',
+ Icirc: 'Lielais latÄ«Åu burts I ar diakritisko zÄ«mi',
+ Iuml: 'Lielais latÄ«Åu burts I ar diakritisko zÄ«mi',
+ ETH: 'Lielais latÄ«Åu burts Eth',
+ Ntilde: 'Lielais latÄ«Åu burts N ar tildi',
+ Ograve: 'Lielais latÄ«Åu burts O ar uzsvara zÄ«mi',
+ Oacute: 'Lielais latÄ«Åu burts O ar akÅ«to uzsvara zÄ«mi',
+ Ocirc: 'Lielais latÄ«Åu burts O ar diakritisko zÄ«mi',
+ Otilde: 'Lielais latÄ«Åu burts O ar tildi',
+ Ouml: 'Lielais latÄ«Åu burts O ar diakritisko zÄ«mi',
+ times: 'ReizinÄÅ¡anas zÄ«me ',
+ Oslash: 'Lielais latÄ«Åu burts O ar iesvÄ«trojumu',
+ Ugrave: 'Lielais latÄ«Åu burts U ar uzsvaras zÄ«mi',
+ Uacute: 'Lielais latÄ«Åu burts U ar akÅ«to uzsvars zÄ«mi',
+ Ucirc: 'Lielais latÄ«Åu burts U ar diakritisko zÄ«mi',
+ Uuml: 'Lielais latÄ«Åu burts U ar diakritisko zÄ«mi',
+ Yacute: 'Lielais latÄ«Åu burts Y ar akÅ«to uzsvaras zÄ«mi',
+ THORN: 'Lielais latÄ«Åu burts torn',
+ szlig: 'Mazs latÄ«Åu burts ar ligatÅ«ru',
+ agrave: 'Mazs latÄ«Åu burts a ar uzsvara zÄ«mi',
+ aacute: 'Mazs latÄ«Åu burts a ar akÅ«to uzsvara zÄ«mi',
+ acirc: 'Mazs latÄ«Åu burts a ar diakritisko zÄ«mi',
+ atilde: 'Mazs latÄ«Åu burts a ar tildi',
+ auml: 'Mazs latÄ«Åu burts a ar diakritisko zÄ«mi',
+ aring: 'Mazs latÄ«Åu burts a ar aplÄ«ti augÅ¡Ä',
+ aelig: 'Mazs latÄ«Åu burts æ',
+ ccedil: 'Mazs latÄ«Åu burts c ar ÄÄ·Ä«ti zem burta',
+ egrave: 'Mazs latÄ«Åu burts e ar uzsvara zÄ«mi ',
+ eacute: 'Mazs latÄ«Åu burts e ar akÅ«tu uzsvara zÄ«mi',
+ ecirc: 'Mazs latÄ«Åu burts e ar diakritisko zÄ«mi',
+ euml: 'Mazs latÄ«Åu burts e ar diakritisko zÄ«mi',
+ igrave: 'Mazs latÄ«Åu burts i ar uzsvara zÄ«mi ',
+ iacute: 'Mazs latÄ«Åu burts i ar akÅ«tu uzsvara zÄ«mi',
+ icirc: 'Mazs latÄ«Åu burts i ar diakritisko zÄ«mi',
+ iuml: 'Mazs latÄ«Åu burts i ar diakritisko zÄ«mi',
+ eth: 'Mazs latÄ«Åu burts eth',
+ ntilde: 'Mazs latÄ«Åu burts n ar tildi',
+ ograve: 'Mazs latÄ«Åu burts o ar uzsvara zÄ«mi ',
+ oacute: 'Mazs latÄ«Åu burts o ar akÅ«tu uzsvara zÄ«mi',
+ ocirc: 'Mazs latÄ«Åu burts o ar diakritisko zÄ«mi',
+ otilde: 'Mazs latÄ«Åu burts o ar tildi',
+ ouml: 'Mazs latÄ«Åu burts o ar diakritisko zÄ«mi',
+ divide: 'Dalīšanas zīme',
+ oslash: 'Mazs latÄ«Åu burts o ar iesvÄ«trojumu',
+ ugrave: 'Mazs latÄ«Åu burts u ar uzsvara zÄ«mi ',
+ uacute: 'Mazs latÄ«Åu burts u ar akÅ«tu uzsvara zÄ«mi',
+ ucirc: 'Mazs latÄ«Åu burts u ar diakritisko zÄ«mi',
+ uuml: 'Mazs latÄ«Åu burts u ar diakritisko zÄ«mi',
+ yacute: 'Mazs latÄ«Åu burts y ar akÅ«tu uzsvaras zÄ«mi',
+ thorn: 'Mazs latÄ«Åu burts torns',
+ yuml: 'Mazs latÄ«Åu burts y ar diakritisko zÄ«mi',
+ OElig: 'Liela latÄ«Åu ligatÅ«ra OE',
+ oelig: 'Maza latÄ«Åu ligatÅ«ra oe',
+ '372': 'Liels latÄ«Åu burts W ar diakritisko zÄ«mi ',
+ '374': 'Liels latÄ«Åu burts Y ar diakritisko zÄ«mi ',
+ '373': 'Mazs latÄ«Åu burts w ar diakritisko zÄ«mi ',
+ '375': 'Mazs latÄ«Åu burts y ar diakritisko zÄ«mi ',
+ sbquo: 'Mazas-9 vienkÄrtÄ«gas pÄdiÅas',
+ '8219': 'Lielas-9 vienkÄrtÄ«gas apgrieztas pÄdiÅas',
+ bdquo: 'Mazas-9 dubultas pÄdiÅas',
+ hellip: 'HorizontÄli daudzpunkti',
+ trade: 'PreÄu zÄ«mes zÄ«me',
+ '9658': 'Melns pa labi pagriezts radÄ«tÄjs',
+ bull: 'Lode',
+ rarr: 'Bulta pa labi',
+ rArr: 'Dubulta Bulta pa labi',
+ hArr: 'Bulta pa kreisi',
+ diams: 'Dubulta Bulta pa kreisi',
+ asymp: 'GandrÄ«z vienÄds ar'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/nb.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/nb.js
new file mode 100644
index 0000000..62fe26f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/nb.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'nb', {
+ euro: 'Eurosymbol',
+ lsquo: 'Venstre enkelt anførselstegn',
+ rsquo: 'Høyre enkelt anførselstegn',
+ ldquo: 'Venstre dobbelt anførselstegn',
+ rdquo: 'Høyre anførsesltegn',
+ ndash: 'Kort tankestrek',
+ mdash: 'Lang tankestrek',
+ iexcl: 'Omvendt utropstegn',
+ cent: 'Centsymbol',
+ pound: 'Pundsymbol',
+ curren: 'Valutategn',
+ yen: 'Yensymbol',
+ brvbar: 'Brutt loddrett strek',
+ sect: 'Paragraftegn',
+ uml: 'Tøddel',
+ copy: 'Copyrighttegn',
+ ordf: 'Feminin ordensindikator',
+ laquo: 'Venstre anførselstegn',
+ not: 'Negasjonstegn',
+ reg: 'Registrert varemerke-tegn',
+ macr: 'Makron',
+ deg: 'Gradsymbol',
+ sup2: 'Hevet totall',
+ sup3: 'Hevet tretall',
+ acute: 'Akutt aksent',
+ micro: 'Mikrosymbol',
+ para: 'Avsnittstegn',
+ middot: 'Midtstilt prikk',
+ cedil: 'Cedille',
+ sup1: 'Hevet ettall',
+ ordm: 'Maskulin ordensindikator',
+ raquo: 'Høyre anførselstegn',
+ frac14: 'Fjerdedelsbrøk',
+ frac12: 'Halvbrøk',
+ frac34: 'Tre fjerdedelers brøk',
+ iquest: 'Omvendt spørsmålstegn',
+ Agrave: 'Stor A med grav aksent',
+ Aacute: 'Stor A med akutt aksent',
+ Acirc: 'Stor A med cirkumfleks',
+ Atilde: 'Stor A med tilde',
+ Auml: 'Stor A med tøddel',
+ Aring: 'Stor Ã
',
+ AElig: 'Stor Ã',
+ Ccedil: 'Stor C med cedille',
+ Egrave: 'Stor E med grav aksent',
+ Eacute: 'Stor E med akutt aksent',
+ Ecirc: 'Stor E med cirkumfleks',
+ Euml: 'Stor E med tøddel',
+ Igrave: 'Stor I med grav aksent',
+ Iacute: 'Stor I med akutt aksent',
+ Icirc: 'Stor I med cirkumfleks',
+ Iuml: 'Stor I med tøddel',
+ ETH: 'Stor Edd/stungen D',
+ Ntilde: 'Stor N med tilde',
+ Ograve: 'Stor O med grav aksent',
+ Oacute: 'Stor O med akutt aksent',
+ Ocirc: 'Stor O med cirkumfleks',
+ Otilde: 'Stor O med tilde',
+ Ouml: 'Stor O med tøddel',
+ times: 'Multiplikasjonstegn',
+ Oslash: 'Stor Ã',
+ Ugrave: 'Stor U med grav aksent',
+ Uacute: 'Stor U med akutt aksent',
+ Ucirc: 'Stor U med cirkumfleks',
+ Uuml: 'Stor U med tøddel',
+ Yacute: 'Stor Y med akutt aksent',
+ THORN: 'Stor Thorn',
+ szlig: 'Liten dobbelt-s/Eszett',
+ agrave: 'Liten a med grav aksent',
+ aacute: 'Liten a med akutt aksent',
+ acirc: 'Liten a med cirkumfleks',
+ atilde: 'Liten a med tilde',
+ auml: 'Liten a med tøddel',
+ aring: 'Liten å',
+ aelig: 'Liten æ',
+ ccedil: 'Liten c med cedille',
+ egrave: 'Liten e med grav aksent',
+ eacute: 'Liten e med akutt aksent',
+ ecirc: 'Liten e med cirkumfleks',
+ euml: 'Liten e med tøddel',
+ igrave: 'Liten i med grav aksent',
+ iacute: 'Liten i med akutt aksent',
+ icirc: 'Liten i med cirkumfleks',
+ iuml: 'Liten i med tøddel',
+ eth: 'Liten edd/stungen d',
+ ntilde: 'Liten n med tilde',
+ ograve: 'Liten o med grav aksent',
+ oacute: 'Liten o med akutt aksent',
+ ocirc: 'Liten o med cirkumfleks',
+ otilde: 'Liten o med tilde',
+ ouml: 'Liten o med tøddel',
+ divide: 'Divisjonstegn',
+ oslash: 'Liten ø',
+ ugrave: 'Liten u med grav aksent',
+ uacute: 'Liten u med akutt aksent',
+ ucirc: 'Liten u med cirkumfleks',
+ uuml: 'Liten u med tøddel',
+ yacute: 'Liten y med akutt aksent',
+ thorn: 'Liten thorn',
+ yuml: 'Liten y med tøddel',
+ OElig: 'Stor ligatur av O og E',
+ oelig: 'Liten ligatur av o og e',
+ '372': 'Stor W med cirkumfleks',
+ '374': 'Stor Y med cirkumfleks',
+ '373': 'Liten w med cirkumfleks',
+ '375': 'Liten y med cirkumfleks',
+ sbquo: 'Enkelt lavt 9-anførselstegn',
+ '8219': 'Enkelt høyt reversert 9-anførselstegn',
+ bdquo: 'Dobbelt lavt 9-anførselstegn',
+ hellip: 'Ellipse',
+ trade: 'Varemerkesymbol',
+ '9658': 'Svart høyrevendt peker',
+ bull: 'Tykk interpunkt',
+ rarr: 'Høyrevendt pil',
+ rArr: 'Dobbel høyrevendt pil',
+ hArr: 'Dobbel venstrevendt pil',
+ diams: 'Svart ruter',
+ asymp: 'Omtrent likhetstegn'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/nl.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/nl.js
new file mode 100644
index 0000000..a7cde21
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/nl.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'nl', {
+ euro: 'Euro-teken',
+ lsquo: 'Linker enkel aanhalingsteken',
+ rsquo: 'Rechter enkel aanhalingsteken',
+ ldquo: 'Linker dubbel aanhalingsteken',
+ rdquo: 'Rechter dubbel aanhalingsteken',
+ ndash: 'En dash',
+ mdash: 'Em dash',
+ iexcl: 'Omgekeerd uitroepteken',
+ cent: 'Cent-teken',
+ pound: 'Pond-teken',
+ curren: 'Valuta-teken',
+ yen: 'Yen-teken',
+ brvbar: 'Gebroken streep',
+ sect: 'Paragraaf-teken',
+ uml: 'Trema',
+ copy: 'Copyright-teken',
+ ordf: 'Vrouwelijk ordinaal',
+ laquo: 'Linker guillemet',
+ not: 'Ongelijk-teken',
+ reg: 'Geregistreerd handelsmerk-teken',
+ macr: 'Macron',
+ deg: 'Graden-teken',
+ sup2: 'Superscript twee',
+ sup3: 'Superscript drie',
+ acute: 'Accent aigu',
+ micro: 'Mico-teken',
+ para: 'Alinea-teken',
+ middot: 'Halfhoge punt',
+ cedil: 'Cedille',
+ sup1: 'Superscript een',
+ ordm: 'Mannelijk ordinaal',
+ raquo: 'Rechter guillemet',
+ frac14: 'Breuk kwart',
+ frac12: 'Breuk half',
+ frac34: 'Breuk driekwart',
+ iquest: 'Omgekeerd vraagteken',
+ Agrave: 'Latijnse hoofdletter A met een accent grave',
+ Aacute: 'Latijnse hoofdletter A met een accent aigu',
+ Acirc: 'Latijnse hoofdletter A met een circonflexe',
+ Atilde: 'Latijnse hoofdletter A met een tilde',
+ Auml: 'Latijnse hoofdletter A met een trema',
+ Aring: 'Latijnse hoofdletter A met een corona',
+ AElig: 'Latijnse hoofdletter Ã',
+ Ccedil: 'Latijnse hoofdletter C met een cedille',
+ Egrave: 'Latijnse hoofdletter E met een accent grave',
+ Eacute: 'Latijnse hoofdletter E met een accent aigu',
+ Ecirc: 'Latijnse hoofdletter E met een circonflexe',
+ Euml: 'Latijnse hoofdletter E met een trema',
+ Igrave: 'Latijnse hoofdletter I met een accent grave',
+ Iacute: 'Latijnse hoofdletter I met een accent aigu',
+ Icirc: 'Latijnse hoofdletter I met een circonflexe',
+ Iuml: 'Latijnse hoofdletter I met een trema',
+ ETH: 'Latijnse hoofdletter Eth',
+ Ntilde: 'Latijnse hoofdletter N met een tilde',
+ Ograve: 'Latijnse hoofdletter O met een accent grave',
+ Oacute: 'Latijnse hoofdletter O met een accent aigu',
+ Ocirc: 'Latijnse hoofdletter O met een circonflexe',
+ Otilde: 'Latijnse hoofdletter O met een tilde',
+ Ouml: 'Latijnse hoofdletter O met een trema',
+ times: 'Maal-teken',
+ Oslash: 'Latijnse hoofdletter O met een schuine streep',
+ Ugrave: 'Latijnse hoofdletter U met een accent grave',
+ Uacute: 'Latijnse hoofdletter U met een accent aigu',
+ Ucirc: 'Latijnse hoofdletter U met een circonflexe',
+ Uuml: 'Latijnse hoofdletter U met een trema',
+ Yacute: 'Latijnse hoofdletter Y met een accent aigu',
+ THORN: 'Latijnse hoofdletter Thorn',
+ szlig: 'Latijnse kleine ringel-s',
+ agrave: 'Latijnse kleine letter a met een accent grave',
+ aacute: 'Latijnse kleine letter a met een accent aigu',
+ acirc: 'Latijnse kleine letter a met een circonflexe',
+ atilde: 'Latijnse kleine letter a met een tilde',
+ auml: 'Latijnse kleine letter a met een trema',
+ aring: 'Latijnse kleine letter a met een corona',
+ aelig: 'Latijnse kleine letter æ',
+ ccedil: 'Latijnse kleine letter c met een cedille',
+ egrave: 'Latijnse kleine letter e met een accent grave',
+ eacute: 'Latijnse kleine letter e met een accent aigu',
+ ecirc: 'Latijnse kleine letter e met een circonflexe',
+ euml: 'Latijnse kleine letter e met een trema',
+ igrave: 'Latijnse kleine letter i met een accent grave',
+ iacute: 'Latijnse kleine letter i met een accent aigu',
+ icirc: 'Latijnse kleine letter i met een circonflexe',
+ iuml: 'Latijnse kleine letter i met een trema',
+ eth: 'Latijnse kleine letter eth',
+ ntilde: 'Latijnse kleine letter n met een tilde',
+ ograve: 'Latijnse kleine letter o met een accent grave',
+ oacute: 'Latijnse kleine letter o met een accent aigu',
+ ocirc: 'Latijnse kleine letter o met een circonflexe',
+ otilde: 'Latijnse kleine letter o met een tilde',
+ ouml: 'Latijnse kleine letter o met een trema',
+ divide: 'Deel-teken',
+ oslash: 'Latijnse kleine letter o met een schuine streep',
+ ugrave: 'Latijnse kleine letter u met een accent grave',
+ uacute: 'Latijnse kleine letter u met een accent aigu',
+ ucirc: 'Latijnse kleine letter u met een circonflexe',
+ uuml: 'Latijnse kleine letter u met een trema',
+ yacute: 'Latijnse kleine letter y met een accent aigu',
+ thorn: 'Latijnse kleine letter thorn',
+ yuml: 'Latijnse kleine letter y met een trema',
+ OElig: 'Latijnse hoofdletter Å',
+ oelig: 'Latijnse kleine letter Å',
+ '372': 'Latijnse hoofdletter W met een circonflexe',
+ '374': 'Latijnse hoofdletter Y met een circonflexe',
+ '373': 'Latijnse kleine letter w met een circonflexe',
+ '375': 'Latijnse kleine letter y met een circonflexe',
+ sbquo: 'Lage enkele aanhalingsteken',
+ '8219': 'Hoge omgekeerde enkele aanhalingsteken',
+ bdquo: 'Lage dubbele aanhalingsteken',
+ hellip: 'Beletselteken',
+ trade: 'Trademark-teken',
+ '9658': 'Zwarte driehoek naar rechts',
+ bull: 'Bullet',
+ rarr: 'Pijl naar rechts',
+ rArr: 'Dubbele pijl naar rechts',
+ hArr: 'Dubbele pijl naar links',
+ diams: 'Zwart ruitje',
+ asymp: 'Benaderingsteken'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/no.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/no.js
new file mode 100644
index 0000000..1ef7fb0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/no.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'no', {
+ euro: 'Eurosymbol',
+ lsquo: 'Venstre enkelt anførselstegn',
+ rsquo: 'Høyre enkelt anførselstegn',
+ ldquo: 'Venstre dobbelt anførselstegn',
+ rdquo: 'Høyre anførsesltegn',
+ ndash: 'Kort tankestrek',
+ mdash: 'Lang tankestrek',
+ iexcl: 'Omvendt utropstegn',
+ cent: 'Centsymbol',
+ pound: 'Pundsymbol',
+ curren: 'Valutategn',
+ yen: 'Yensymbol',
+ brvbar: 'Brutt loddrett strek',
+ sect: 'Paragraftegn',
+ uml: 'Tøddel',
+ copy: 'Copyrighttegn',
+ ordf: 'Feminin ordensindikator',
+ laquo: 'Venstre anførselstegn',
+ not: 'Negasjonstegn',
+ reg: 'Registrert varemerke-tegn',
+ macr: 'Makron',
+ deg: 'Gradsymbol',
+ sup2: 'Hevet totall',
+ sup3: 'Hevet tretall',
+ acute: 'Akutt aksent',
+ micro: 'Mikrosymbol',
+ para: 'Avsnittstegn',
+ middot: 'Midtstilt prikk',
+ cedil: 'Cedille',
+ sup1: 'Hevet ettall',
+ ordm: 'Maskulin ordensindikator',
+ raquo: 'Høyre anførselstegn',
+ frac14: 'Fjerdedelsbrøk',
+ frac12: 'Halvbrøk',
+ frac34: 'Tre fjerdedelers brøk',
+ iquest: 'Omvendt spørsmålstegn',
+ Agrave: 'Stor A med grav aksent',
+ Aacute: 'Stor A med akutt aksent',
+ Acirc: 'Stor A med cirkumfleks',
+ Atilde: 'Stor A med tilde',
+ Auml: 'Stor A med tøddel',
+ Aring: 'Stor Ã
',
+ AElig: 'Stor Ã',
+ Ccedil: 'Stor C med cedille',
+ Egrave: 'Stor E med grav aksent',
+ Eacute: 'Stor E med akutt aksent',
+ Ecirc: 'Stor E med cirkumfleks',
+ Euml: 'Stor E med tøddel',
+ Igrave: 'Stor I med grav aksent',
+ Iacute: 'Stor I med akutt aksent',
+ Icirc: 'Stor I med cirkumfleks',
+ Iuml: 'Stor I med tøddel',
+ ETH: 'Stor Edd/stungen D',
+ Ntilde: 'Stor N med tilde',
+ Ograve: 'Stor O med grav aksent',
+ Oacute: 'Stor O med akutt aksent',
+ Ocirc: 'Stor O med cirkumfleks',
+ Otilde: 'Stor O med tilde',
+ Ouml: 'Stor O med tøddel',
+ times: 'Multiplikasjonstegn',
+ Oslash: 'Stor Ã',
+ Ugrave: 'Stor U med grav aksent',
+ Uacute: 'Stor U med akutt aksent',
+ Ucirc: 'Stor U med cirkumfleks',
+ Uuml: 'Stor U med tøddel',
+ Yacute: 'Stor Y med akutt aksent',
+ THORN: 'Stor Thorn',
+ szlig: 'Liten dobbelt-s/Eszett',
+ agrave: 'Liten a med grav aksent',
+ aacute: 'Liten a med akutt aksent',
+ acirc: 'Liten a med cirkumfleks',
+ atilde: 'Liten a med tilde',
+ auml: 'Liten a med tøddel',
+ aring: 'Liten å',
+ aelig: 'Liten æ',
+ ccedil: 'Liten c med cedille',
+ egrave: 'Liten e med grav aksent',
+ eacute: 'Liten e med akutt aksent',
+ ecirc: 'Liten e med cirkumfleks',
+ euml: 'Liten e med tøddel',
+ igrave: 'Liten i med grav aksent',
+ iacute: 'Liten i med akutt aksent',
+ icirc: 'Liten i med cirkumfleks',
+ iuml: 'Liten i med tøddel',
+ eth: 'Liten edd/stungen d',
+ ntilde: 'Liten n med tilde',
+ ograve: 'Liten o med grav aksent',
+ oacute: 'Liten o med akutt aksent',
+ ocirc: 'Liten o med cirkumfleks',
+ otilde: 'Liten o med tilde',
+ ouml: 'Liten o med tøddel',
+ divide: 'Divisjonstegn',
+ oslash: 'Liten ø',
+ ugrave: 'Liten u med grav aksent',
+ uacute: 'Liten u med akutt aksent',
+ ucirc: 'Liten u med cirkumfleks',
+ uuml: 'Liten u med tøddel',
+ yacute: 'Liten y med akutt aksent',
+ thorn: 'Liten thorn',
+ yuml: 'Liten y med tøddel',
+ OElig: 'Stor ligatur av O og E',
+ oelig: 'Liten ligatur av o og e',
+ '372': 'Stor W med cirkumfleks',
+ '374': 'Stor Y med cirkumfleks',
+ '373': 'Liten w med cirkumfleks',
+ '375': 'Liten y med cirkumfleks',
+ sbquo: 'Enkelt lavt 9-anførselstegn',
+ '8219': 'Enkelt høyt reversert 9-anførselstegn',
+ bdquo: 'Dobbelt lavt 9-anførselstegn',
+ hellip: 'Ellipse',
+ trade: 'Varemerkesymbol',
+ '9658': 'Svart høyrevendt peker',
+ bull: 'Tykk interpunkt',
+ rarr: 'Høyrevendt pil',
+ rArr: 'Dobbel høyrevendt pil',
+ hArr: 'Dobbel venstrevendt pil',
+ diams: 'Svart ruter',
+ asymp: 'Omtrent likhetstegn'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
new file mode 100644
index 0000000..0f657fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'pt-br', {
+ euro: 'Euro',
+ lsquo: 'Aspas simples esquerda',
+ rsquo: 'Aspas simples direita',
+ ldquo: 'Aspas duplas esquerda',
+ rdquo: 'Aspas duplas direita',
+ ndash: 'Traço',
+ mdash: 'Travessão',
+ iexcl: 'Ponto de exclamação invertido',
+ cent: 'Cent',
+ pound: 'Cerquilha',
+ curren: 'Dinheiro',
+ yen: 'Yen',
+ brvbar: 'Bara interrompida',
+ sect: 'SÃmbolo de Parágrafo',
+ uml: 'Trema',
+ copy: 'Direito de Cópia',
+ ordf: 'Indicador ordinal feminino',
+ laquo: 'Aspas duplas angulares esquerda',
+ not: 'Negação',
+ reg: 'Marca Registrada',
+ macr: 'Mácron',
+ deg: 'Grau',
+ sup2: '2 Superscrito',
+ sup3: '3 Superscrito',
+ acute: 'Acento agudo',
+ micro: 'Micro',
+ para: 'Pé de mosca',
+ middot: 'Ponto mediano',
+ cedil: 'Cedilha',
+ sup1: '1 Superscrito',
+ ordm: 'Indicador ordinal masculino',
+ raquo: 'Aspas duplas angulares direita',
+ frac14: 'Um quarto',
+ frac12: 'Um meio',
+ frac34: 'Três quartos',
+ iquest: 'Interrogação invertida',
+ Agrave: 'A maiúsculo com acento grave',
+ Aacute: 'A maiúsculo com acento agudo',
+ Acirc: 'A maiúsculo com acento circunflexo',
+ Atilde: 'A maiúsculo com til',
+ Auml: 'A maiúsculo com trema',
+ Aring: 'A maiúsculo com anel acima',
+ AElig: 'à maiúsculo',
+ Ccedil: 'à maiúlculo',
+ Egrave: 'E maiúsculo com acento grave',
+ Eacute: 'E maiúsculo com acento agudo',
+ Ecirc: 'E maiúsculo com acento circumflexo',
+ Euml: 'E maiúsculo com trema',
+ Igrave: 'I maiúsculo com acento grave',
+ Iacute: 'I maiúsculo com acento agudo',
+ Icirc: 'I maiúsculo com acento circunflexo',
+ Iuml: 'I maiúsculo com crase',
+ ETH: 'Eth maiúsculo',
+ Ntilde: 'N maiúsculo com til',
+ Ograve: 'O maiúsculo com acento grave',
+ Oacute: 'O maiúsculo com acento agudo',
+ Ocirc: 'O maiúsculo com acento circunflexo',
+ Otilde: 'O maiúsculo com til',
+ Ouml: 'O maiúsculo com trema',
+ times: 'Multiplicação',
+ Oslash: 'Diâmetro',
+ Ugrave: 'U maiúsculo com acento grave',
+ Uacute: 'U maiúsculo com acento agudo',
+ Ucirc: 'U maiúsculo com acento circunflexo',
+ Uuml: 'U maiúsculo com trema',
+ Yacute: 'Y maiúsculo com acento agudo',
+ THORN: 'Thorn maiúsculo',
+ szlig: 'Eszett minúsculo',
+ agrave: 'a minúsculo com acento grave',
+ aacute: 'a minúsculo com acento agudo',
+ acirc: 'a minúsculo com acento circunflexo',
+ atilde: 'a minúsculo com til',
+ auml: 'a minúsculo com trema',
+ aring: 'a minúsculo com anel acima',
+ aelig: 'æ minúsculo',
+ ccedil: 'ç minúsculo',
+ egrave: 'e minúsculo com acento grave',
+ eacute: 'e minúsculo com acento agudo',
+ ecirc: 'e minúsculo com acento circunflexo',
+ euml: 'e minúsculo com trema',
+ igrave: 'i minúsculo com acento grave',
+ iacute: 'i minúsculo com acento agudo',
+ icirc: 'i minúsculo com acento circunflexo',
+ iuml: 'i minúsculo com trema',
+ eth: 'eth minúsculo',
+ ntilde: 'n minúsculo com til',
+ ograve: 'o minúsculo com acento grave',
+ oacute: 'o minúsculo com acento agudo',
+ ocirc: 'o minúsculo com acento circunflexo',
+ otilde: 'o minúsculo com til',
+ ouml: 'o minúsculo com trema',
+ divide: 'Divisão',
+ oslash: 'o minúsculo com cortado ou diâmetro',
+ ugrave: 'u minúsculo com acento grave',
+ uacute: 'u minúsculo com acento agudo',
+ ucirc: 'u minúsculo com acento circunflexo',
+ uuml: 'u minúsculo com trema',
+ yacute: 'y minúsculo com acento agudo',
+ thorn: 'thorn minúsculo',
+ yuml: 'y minúsculo com trema',
+ OElig: 'Ligação tipográfica OE maiúscula',
+ oelig: 'Ligação tipográfica oe minúscula',
+ '372': 'W maiúsculo com acento circunflexo',
+ '374': 'Y maiúsculo com acento circunflexo',
+ '373': 'w minúsculo com acento circunflexo',
+ '375': 'y minúsculo com acento circunflexo',
+ sbquo: 'Aspas simples inferior direita',
+ '8219': 'Aspas simples superior esquerda',
+ bdquo: 'Aspas duplas inferior direita',
+ hellip: 'Reticências',
+ trade: 'Trade mark',
+ '9658': 'Ponta de seta preta para direita',
+ bull: 'Ponto lista',
+ rarr: 'Seta para direita',
+ rArr: 'Seta dupla para direita',
+ hArr: 'Seta dupla direita e esquerda',
+ diams: 'Ouros',
+ asymp: 'Aproximadamente'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/sk.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/sk.js
new file mode 100644
index 0000000..17df2f4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/sk.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'sk', {
+ euro: 'Znak eura',
+ lsquo: 'Ľavá jednoduchá úvodzovka',
+ rsquo: 'Pravá jednoduchá úvodzovka',
+ ldquo: 'Pravá dvojitá úvodzovka',
+ rdquo: 'Pravá dvojitá úvodzovka',
+ ndash: 'En pomlÄka',
+ mdash: 'Em pomlÄka',
+ iexcl: 'Obrátený výkriÄnÃk',
+ cent: 'Znak centu',
+ pound: 'Znak libry',
+ curren: 'Znak meny',
+ yen: 'Znak jenu',
+ brvbar: 'PreruÅ¡ená zvislá Äiara',
+ sect: 'Znak odseku',
+ uml: 'Prehláska',
+ copy: 'Znak copyrightu',
+ ordf: 'Ženský indikátor rodu',
+ laquo: 'Znak dvojitých lomených úvodzoviek vľavo',
+ not: 'Logistický zápor',
+ reg: 'Znak registrácie',
+ macr: 'PomlÄka nad',
+ deg: 'Znak stupÅa',
+ sup2: 'Dvojka ako horný index',
+ sup3: 'Trojka ako horný index',
+ acute: 'DĺžeÅ',
+ micro: 'Znak mikro',
+ para: 'Znak odstavca',
+ middot: 'Bodka uprostred',
+ cedil: 'Chvost vľavo',
+ sup1: 'Jednotka ako horný index',
+ ordm: 'Mužský indikátor rodu',
+ raquo: 'Znak dvojitých lomených úvodzoviek vpravo',
+ frac14: 'ObyÄajný zlomok jedna Å¡tvrtina',
+ frac12: 'ObyÄajný zlomok jedna polovica',
+ frac34: 'ObyÄajný zlomok tri Å¡tvrtiny',
+ iquest: 'OtoÄený otáznik',
+ Agrave: 'Veľké pÃsmeno latinky A s accentom',
+ Aacute: 'Veľké pÃsmeno latinky A s dĺžÅom',
+ Acirc: 'Veľké pÃsmeno latinky A s mäkÄeÅom',
+ Atilde: 'Veľké pÃsmeno latinky A s tildou',
+ Auml: 'Veľké pÃsmeno latinky A s dvoma bodkami',
+ Aring: 'Veľké pÃsmeno latinky A s krúžkom nad',
+ AElig: 'Veľké pÃsmeno latinky Ã',
+ Ccedil: 'Veľké pÃsmeno latinky C s chvostom vľavo',
+ Egrave: 'Veľké pÃsmeno latinky E s accentom',
+ Eacute: 'Veľké pÃsmeno latinky E s dĺžÅom',
+ Ecirc: 'Veľké pÃsmeno latinky E s mäkÄeÅom',
+ Euml: 'Veľké pÃsmeno latinky E s dvoma bodkami',
+ Igrave: 'Veľké pÃsmeno latinky I s accentom',
+ Iacute: 'Veľké pÃsmeno latinky I s dĺžÅom',
+ Icirc: 'Veľké pÃsmeno latinky I s mäkÄeÅom',
+ Iuml: 'Veľké pÃsmeno latinky I s dvoma bodkami',
+ ETH: 'Veľké pÃsmeno latinky Eth',
+ Ntilde: 'Veľké pÃsmeno latinky N s tildou',
+ Ograve: 'Veľké pÃsmeno latinky O s accentom',
+ Oacute: 'Veľké pÃsmeno latinky O s dĺžÅom',
+ Ocirc: 'Veľké pÃsmeno latinky O s mäkÄeÅom',
+ Otilde: 'Veľké pÃsmeno latinky O s tildou',
+ Ouml: 'Veľké pÃsmeno latinky O s dvoma bodkami',
+ times: 'Znak násobenia',
+ Oslash: 'Veľké pÃsmeno latinky O preÅ¡krtnuté',
+ Ugrave: 'Veľké pÃsmeno latinky U s accentom',
+ Uacute: 'Veľké pÃsmeno latinky U s dĺžÅom',
+ Ucirc: 'Veľké pÃsmeno latinky U s mäkÄeÅom',
+ Uuml: 'Veľké pÃsmeno latinky U s dvoma bodkami',
+ Yacute: 'Veľké pÃsmeno latinky Y s dĺžÅom',
+ THORN: 'Veľké pÃsmeno latinky Thorn',
+ szlig: 'Malé pÃsmeno latinky ostré s',
+ agrave: 'Malé pÃsmeno latinky a s accentom',
+ aacute: 'Malé pÃsmeno latinky a s dĺžÅom',
+ acirc: 'Malé pÃsmeno latinky a s mäkÄeÅom',
+ atilde: 'Malé pÃsmeno latinky a s tildou',
+ auml: 'Malé pÃsmeno latinky a s dvoma bodkami',
+ aring: 'Malé pÃsmeno latinky a s krúžkom nad',
+ aelig: 'Malé pÃsmeno latinky æ',
+ ccedil: 'Malé pÃsmeno latinky c s chvostom vľavo',
+ egrave: 'Malé pÃsmeno latinky e s accentom',
+ eacute: 'Malé pÃsmeno latinky e s dĺžÅom',
+ ecirc: 'Malé pÃsmeno latinky e s mäkÄeÅom',
+ euml: 'Malé pÃsmeno latinky e s dvoma bodkami',
+ igrave: 'Malé pÃsmeno latinky i s accentom',
+ iacute: 'Malé pÃsmeno latinky i s dĺžÅom',
+ icirc: 'Malé pÃsmeno latinky i s mäkÄeÅom',
+ iuml: 'Malé pÃsmeno latinky i s dvoma bodkami',
+ eth: 'Malé pÃsmeno latinky eth',
+ ntilde: 'Malé pÃsmeno latinky n s tildou',
+ ograve: 'Malé pÃsmeno latinky o s accentom',
+ oacute: 'Malé pÃsmeno latinky o s dĺžÅom',
+ ocirc: 'Malé pÃsmeno latinky o s mäkÄeÅom',
+ otilde: 'Malé pÃsmeno latinky o s tildou',
+ ouml: 'Malé pÃsmeno latinky o s dvoma bodkami',
+ divide: 'Znak delenia',
+ oslash: 'Malé pÃsmeno latinky o preÅ¡krtnuté',
+ ugrave: 'Malé pÃsmeno latinky u s accentom',
+ uacute: 'Malé pÃsmeno latinky u s dĺžÅom',
+ ucirc: 'Malé pÃsmeno latinky u s mäkÄeÅom',
+ uuml: 'Malé pÃsmeno latinky u s dvoma bodkami',
+ yacute: 'Malé pÃsmeno latinky y s dĺžÅom',
+ thorn: 'Malé pÃsmeno latinky thorn',
+ yuml: 'Malé pÃsmeno latinky y s dvoma bodkami',
+ OElig: 'Veľká ligatúra latinky OE',
+ oelig: 'Malá ligatúra latinky OE',
+ '372': 'Veľké pÃsmeno latinky W s mäkÄeÅom',
+ '374': 'Veľké pÃsmeno latinky Y s mäkÄeÅom',
+ '373': 'Malé pÃsmeno latinky w s mäkÄeÅom',
+ '375': 'Malé pÃsmeno latinky y s mäkÄeÅom',
+ sbquo: 'Dolná jednoduchá 9-úvodzovka',
+ '8219': 'Horná jednoduchá otoÄená 9-úvodzovka',
+ bdquo: 'Dolná dvojitá 9-úvodzovka',
+ hellip: 'Trojbodkový úvod',
+ trade: 'Znak ibchodnej znaÄky',
+ '9658': 'Äierny ukazovateľ smerujúci vpravo',
+ bull: 'Kruh',
+ rarr: 'Å Ãpka vpravo',
+ rArr: 'Dvojitá šipka vpravo',
+ hArr: 'Dvojitá šipka vľavo a vpravo',
+ diams: 'Äierne piky',
+ asymp: 'Skoro sa rovná'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/sv.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/sv.js
new file mode 100644
index 0000000..7b29cdf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/sv.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'sv', {
+ euro: 'Eurotecken',
+ lsquo: 'Enkelt vänster citattecken',
+ rsquo: 'Enkelt höger citattecken',
+ ldquo: 'Dubbelt vänster citattecken',
+ rdquo: 'Dubbelt höger citattecken',
+ ndash: 'Snedstreck',
+ mdash: 'LÃ¥ngt tankstreck',
+ iexcl: 'Inverterad utropstecken',
+ cent: 'Centtecken',
+ pound: 'Pundtecken',
+ curren: 'Valutatecken',
+ yen: 'Yentecken',
+ brvbar: 'Brutet lodrätt streck',
+ sect: 'Paragraftecken',
+ uml: 'Diaeresis',
+ copy: 'Upphovsrättstecken',
+ ordf: 'Feminit ordningstalsindikator',
+ laquo: 'Vänsterställt dubbelt vinkelcitationstecken',
+ not: 'Icke-tecken',
+ reg: 'Registrerad',
+ macr: 'Macron',
+ deg: 'Grader',
+ sup2: 'Upphöjt två',
+ sup3: 'Upphöjt tre',
+ acute: 'Akut accent',
+ micro: 'Mikrotecken',
+ para: 'Alinea',
+ middot: 'Centrerad prick',
+ cedil: 'Cedilj',
+ sup1: 'Upphöjt en',
+ ordm: 'Maskulina ordningsändelsen',
+ raquo: 'Högerställt dubbelt vinkelcitationstecken',
+ frac14: 'Bråktal - en kvart',
+ frac12: 'Bråktal - en halv',
+ frac34: 'Bråktal - tre fjärdedelar',
+ iquest: 'Inverterat frågetecken',
+ Agrave: 'Stort A med grav accent',
+ Aacute: 'Stort A med akutaccent',
+ Acirc: 'Stort A med circumflex',
+ Atilde: 'Stort A med tilde',
+ Auml: 'Stort A med diaresis',
+ Aring: 'Stort A med ring ovan',
+ AElig: 'Stort Ã',
+ Ccedil: 'Stort C med cedilj',
+ Egrave: 'Stort E med grav accent',
+ Eacute: 'Stort E med aktuaccent',
+ Ecirc: 'Stort E med circumflex',
+ Euml: 'Stort E med diaeresis',
+ Igrave: 'Stort I med grav accent',
+ Iacute: 'Stort I med akutaccent',
+ Icirc: 'Stort I med circumflex',
+ Iuml: 'Stort I med diaeresis',
+ ETH: 'Stort Eth',
+ Ntilde: 'Stort N med tilde',
+ Ograve: 'Stort O med grav accent',
+ Oacute: 'Stort O med aktuaccent',
+ Ocirc: 'Stort O med circumflex',
+ Otilde: 'Stort O med tilde',
+ Ouml: 'Stort O med diaeresis',
+ times: 'Multiplicera',
+ Oslash: 'Stor Ã',
+ Ugrave: 'Stort U med grav accent',
+ Uacute: 'Stort U med akutaccent',
+ Ucirc: 'Stort U med circumflex',
+ Uuml: 'Stort U med diaeresis',
+ Yacute: 'Stort Y med akutaccent',
+ THORN: 'Stort Thorn',
+ szlig: 'Litet dubbel-s/Eszett',
+ agrave: 'Litet a med grav accent',
+ aacute: 'Litet a med akutaccent',
+ acirc: 'Litet a med circumflex',
+ atilde: 'Litet a med tilde',
+ auml: 'Litet a med diaeresis',
+ aring: 'Litet a med ring ovan',
+ aelig: 'Bokstaven æ',
+ ccedil: 'Litet c med cedilj',
+ egrave: 'Litet e med grav accent',
+ eacute: 'Litet e med akutaccent',
+ ecirc: 'Litet e med circumflex',
+ euml: 'Litet e med diaeresis',
+ igrave: 'Litet i med grav accent',
+ iacute: 'Litet i med akutaccent',
+ icirc: 'LItet i med circumflex',
+ iuml: 'Litet i med didaeresis',
+ eth: 'Litet eth',
+ ntilde: 'Litet n med tilde',
+ ograve: 'LItet o med grav accent',
+ oacute: 'LItet o med akutaccent',
+ ocirc: 'Litet o med circumflex',
+ otilde: 'LItet o med tilde',
+ ouml: 'Litet o med diaeresis',
+ divide: 'Division',
+ oslash: 'ø',
+ ugrave: 'Litet u med grav accent',
+ uacute: 'Litet u med akutaccent',
+ ucirc: 'LItet u med circumflex',
+ uuml: 'Litet u med diaeresis',
+ yacute: 'Litet y med akutaccent',
+ thorn: 'Litet thorn',
+ yuml: 'Litet y med diaeresis',
+ OElig: 'Stor ligatur av OE',
+ oelig: 'Liten ligatur av oe',
+ '372': 'Stort W med circumflex',
+ '374': 'Stort Y med circumflex',
+ '373': 'Litet w med circumflex',
+ '375': 'Litet y med circumflex',
+ sbquo: 'Enkelt lågt 9-citationstecken',
+ '8219': 'Enkelt högt bakvänt 9-citationstecken',
+ bdquo: 'Dubbelt lågt 9-citationstecken',
+ hellip: 'Horisontellt uteslutningstecken',
+ trade: 'Varumärke',
+ '9658': 'Svart högervänd pekare',
+ bull: 'Listpunkt',
+ rarr: 'Högerpil',
+ rArr: 'Dubbel högerpil',
+ hArr: 'Dubbel vänsterpil',
+ diams: 'Svart ruter',
+ asymp: 'Ungefär lika med'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/tr.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/tr.js
new file mode 100644
index 0000000..0f427ba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/tr.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'tr', {
+ euro: 'Euro iÅareti',
+ lsquo: 'Sol tek tırnak iÅareti',
+ rsquo: 'SaÄ tek tırnak iÅareti',
+ ldquo: 'Sol çift tırnak iÅareti',
+ rdquo: 'SaÄ Ã§ift tırnak iÅareti',
+ ndash: 'En tire',
+ mdash: 'Em tire',
+ iexcl: 'Ters ünlem iÅareti',
+ cent: 'Cent iÅareti',
+ pound: 'Pound iÅareti',
+ curren: 'Para birimi iÅareti',
+ yen: 'Yen iÅareti',
+ brvbar: 'Kırık bar',
+ sect: 'Bölüm iÅareti',
+ uml: 'İki sesli harfin ayrılması',
+ copy: 'Telif hakkı iÅareti',
+ ordf: 'DiÅil sıralı gösterge',
+ laquo: 'Sol-iÅaret çift açı tırnak iÅareti',
+ not: 'Not iÅareti',
+ reg: 'Kayıtlı iÅareti',
+ macr: 'Makron',
+ deg: 'Derece iÅareti',
+ sup2: 'İkili üstsimge',
+ sup3: 'Ãçlü üstsimge',
+ acute: 'Aksan iÅareti',
+ micro: 'Mikro iÅareti',
+ para: 'Pilcrow iÅareti',
+ middot: 'Orta nokta',
+ cedil: 'Kedilla',
+ sup1: 'Ãstsimge',
+ ordm: 'Eril sıralı gösterge',
+ raquo: 'SaÄ iÅaret çift açı tırnak iÅareti',
+ frac14: 'BayaÄı kesrin dörtte biri',
+ frac12: 'BayaÄı kesrin bir yarım',
+ frac34: 'BayaÄı kesrin dörtte üç',
+ iquest: 'Ters soru iÅareti',
+ Agrave: 'Aksanlı latin harfi',
+ Aacute: 'AÅırı aksanıyla Latin harfi',
+ Acirc: 'Ãarpık Latin harfi',
+ Atilde: 'Tilde latin harfi',
+ Auml: 'Sesli harf ayrılımlıı latin harfi',
+ Aring: 'Halkalı latin büyük A harfi',
+ AElig: 'Latin büyük à harfi',
+ Ccedil: 'Latin büyük C harfi ile kedilla',
+ Egrave: 'Aksanlı latin büyük E harfi',
+ Eacute: 'AÅırı vurgulu latin büyük E harfi',
+ Ecirc: 'Ãarpık latin büyük E harfi',
+ Euml: 'Sesli harf ayrılımlıı latin büyük E harfi',
+ Igrave: 'Aksanlı latin büyük I harfi',
+ Iacute: 'AÅırı aksanlı latin büyük I harfi',
+ Icirc: 'Ãarpık latin büyük I harfi',
+ Iuml: 'Sesli harf ayrılımlıı latin büyük I harfi',
+ ETH: 'Latin büyük Eth harfi',
+ Ntilde: 'Tildeli latin büyük N harfi',
+ Ograve: 'Aksanlı latin büyük O harfi',
+ Oacute: 'AÅırı aksanlı latin büyük O harfi',
+ Ocirc: 'Ãarpık latin büyük O harfi',
+ Otilde: 'Tildeli latin büyük O harfi',
+ Ouml: 'Sesli harf ayrılımlı latin büyük O harfi',
+ times: 'Ãarpma iÅareti',
+ Oslash: 'Vurgulu latin büyük O harfi',
+ Ugrave: 'Aksanlı latin büyük U harfi',
+ Uacute: 'AÅırı aksanlı latin büyük U harfi',
+ Ucirc: 'Ãarpık latin büyük U harfi',
+ Uuml: 'Sesli harf ayrılımlı latin büyük U harfi',
+ Yacute: 'AÅırı aksanlı latin büyük Y harfi',
+ THORN: 'Latin büyük Thorn harfi',
+ szlig: 'Latin küçük keskin s harfi',
+ agrave: 'Aksanlı latin küçük a harfi',
+ aacute: 'AÅırı aksanlı latin küçük a harfi',
+ acirc: 'Ãarpık latin küçük a harfi',
+ atilde: 'Tildeli latin küçük a harfi',
+ auml: 'Sesli harf ayrılımlı latin küçük a harfi',
+ aring: 'Halkalı latin küçük a harfi',
+ aelig: 'Latin büyük æ harfi',
+ ccedil: 'Kedillalı latin küçük c harfi',
+ egrave: 'Aksanlı latin küçük e harfi',
+ eacute: 'AÅırı aksanlı latin küçük e harfi',
+ ecirc: 'Ãarpık latin küçük e harfi',
+ euml: 'Sesli harf ayrılımlı latin küçük e harfi',
+ igrave: 'Aksanlı latin küçük i harfi',
+ iacute: 'AÅırı aksanlı latin küçük i harfi',
+ icirc: 'Ãarpık latin küçük i harfi',
+ iuml: 'Sesli harf ayrılımlı latin küçük i harfi',
+ eth: 'Latin küçük eth harfi',
+ ntilde: 'Tildeli latin küçük n harfi',
+ ograve: 'Aksanlı latin küçük o harfi',
+ oacute: 'AÅırı aksanlı latin küçük o harfi',
+ ocirc: 'Ãarpık latin küçük o harfi',
+ otilde: 'Tildeli latin küçük o harfi',
+ ouml: 'Sesli harf ayrılımlı latin küçük o harfi',
+ divide: 'Bölme iÅareti',
+ oslash: 'Vurgulu latin küçük o harfi',
+ ugrave: 'Aksanlı latin küçük u harfi',
+ uacute: 'AÅırı aksanlı latin küçük u harfi',
+ ucirc: 'Ãarpık latin küçük u harfi',
+ uuml: 'Sesli harf ayrılımlı latin küçük u harfi',
+ yacute: 'AÅırı aksanlı latin küçük y harfi',
+ thorn: 'Latin küçük thorn harfi',
+ yuml: 'Sesli harf ayrılımlı latin küçük y harfi',
+ OElig: 'Latin büyük baÄlı OE harfi',
+ oelig: 'Latin küçük baÄlı oe harfi',
+ '372': 'Ãarpık latin büyük W harfi',
+ '374': 'Ãarpık latin büyük Y harfi',
+ '373': 'Ãarpık latin küçük w harfi',
+ '375': 'Ãarpık latin küçük y harfi',
+ sbquo: 'Tek düÅük-9 tırnak iÅareti',
+ '8219': 'Tek yüksek-ters-9 tırnak iÅareti',
+ bdquo: 'Ãift düÅük-9 tırnak iÅareti',
+ hellip: 'Yatay elips',
+ trade: 'Marka tescili iÅareti',
+ '9658': 'Siyah saÄ iÅaret iÅaretçisi',
+ bull: 'Koyu nokta',
+ rarr: 'SaÄa doÄru ok',
+ rArr: 'SaÄa doÄru çift ok',
+ hArr: 'Sol, saÄ Ã§ift ok',
+ diams: 'Siyah elmas takımı',
+ asymp: 'Hemen hemen eÅit'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ug.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ug.js
new file mode 100644
index 0000000..1dd9440
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/ug.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'ug', {
+ euro: 'ÙØ§Ûر٠بÛÙÚ¯ÙØ³Ù',
+ lsquo: 'ÙØ§ÙØ§Ú Ù¾ÛØ´ سÙÙ',
+ rsquo: 'ÙØ§ÙØ§Ú Ù¾ÛØ´ ئÙÚ',
+ ldquo: 'ÙÙØ´ Ù¾ÛØ´ سÙÙ',
+ rdquo: 'ÙÙØ´ Ù¾ÛØ´ ئÙÚ',
+ ndash: 'Ø³ÙØ²ÙÙÚÛ',
+ mdash: 'Ø³ÙØ²ÙÙ',
+ iexcl: 'ئÛÙØ¯ÛØ´',
+ cent: 'تÙÙÙ٠بÛÙÚ¯ÙØ³Ù',
+ pound: 'ÙÙÙØ¯ Ø³ØªÛØ±ÙÙÚ',
+ curren: 'Ù¾Û٠بÛÙÚ¯ÙØ³Ù',
+ yen: 'ÙØ§Ù¾ÙÙÙÙÛ ÙÙÙÙ',
+ brvbar: 'Ø¦ÛØ²ÛÙ Ø¨Ø§ÙØ¯Ø§Ù',
+ sect: 'پاراگرا٠بÛÙÚ¯ÙØ³Ù',
+ uml: 'تاÛÛØ´ Ø¦Ø§ÙØ±ÙØ´ بÛÙÚ¯ÙØ³Ù',
+ copy: 'ÙÛØ´Ø± Ú¾ÙÙÛÙ٠بÛÙÚ¯ÙØ³Ù',
+ ordf: 'Feminine ordinal indicator', // MISSING
+ laquo: 'ÙÙØ´ ØªÙØ±Ùا٠سÙÙ',
+ not: 'غÛÙØ±Ù بÛÙÚ¯Û',
+ reg: 'Ø®ÛØªÙÛØªÙÛÙ ØªØ§ÛØ§Ø± Ù
ارÙÙØ³Ù',
+ macr: 'Ø³ÙØ²ÛØ´ بÛÙÚ¯ÙØ³Ù',
+ deg: 'Ú¯ÙØ±Ø§Ø¯Ûس بÛÙÚ¯ÙØ³Ù',
+ sup2: 'ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙÙØ³ 2',
+ sup3: 'ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙÙØ³ 3',
+ acute: 'Ø¦ÛØ±ØºÛ بÛÙÚ¯ÙØ³Ù',
+ micro: 'Micro sign', // MISSING
+ para: 'ئابزاس بÛÙÚ¯ÙØ³Ù',
+ middot: 'Ø¦ÙØªØªÛرا ÚÛÙÙØª',
+ cedil: 'Ø¦Ø§Ø³ØªÙØºØ§ ÙÙØ´ÛÙÙØ¯Ùغا٠بÛÙÚ¯Û',
+ sup1: 'ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙÙØ³ 1',
+ ordm: 'Masculine ordinal indicator', // MISSING
+ raquo: 'ÙÙØ´ ØªÙØ±Ùا٠ئÙÚ',
+ frac14: 'ئاددÙÙ ÙÛØ³Ùر ØªÛØªØªÙÙ Ø¨ÙØ±',
+ frac12: 'ئاددÙÙ ÙÛØ³Ùر ئÙÙÙÙØ¯ÙÙ Ø¨ÙØ±',
+ frac34: 'ئاددÙÙ ÙÛØ³Ùر ئÛÚØªÙÙ ØªÛØ±Øª',
+ iquest: 'Inverted question mark', // MISSING
+ Agrave: 'Latin capital letter A with grave accent', // MISSING
+ Aacute: 'Latin capital letter A with acute accent', // MISSING
+ Acirc: 'Latin capital letter A with circumflex', // MISSING
+ Atilde: 'Latin capital letter A with tilde', // MISSING
+ Auml: 'Latin capital letter A with diaeresis', // MISSING
+ Aring: 'Latin capital letter A with ring above', // MISSING
+ AElig: 'Latin Capital letter Ã', // MISSING
+ Ccedil: 'Latin capital letter C with cedilla', // MISSING
+ Egrave: 'Latin capital letter E with grave accent', // MISSING
+ Eacute: 'Latin capital letter E with acute accent', // MISSING
+ Ecirc: 'Latin capital letter E with circumflex', // MISSING
+ Euml: 'Latin capital letter E with diaeresis', // MISSING
+ Igrave: 'Latin capital letter I with grave accent', // MISSING
+ Iacute: 'Latin capital letter I with acute accent', // MISSING
+ Icirc: 'Latin capital letter I with circumflex', // MISSING
+ Iuml: 'Latin capital letter I with diaeresis', // MISSING
+ ETH: 'Latin capital letter Eth', // MISSING
+ Ntilde: 'Latin capital letter N with tilde', // MISSING
+ Ograve: 'ÙÙØ´ Ù¾ÛØ´ ئÙÚ',
+ Oacute: 'Latin capital letter O with acute accent', // MISSING
+ Ocirc: 'Latin capital letter O with circumflex', // MISSING
+ Otilde: 'Latin capital letter O with tilde', // MISSING
+ Ouml: 'Latin capital letter O with diaeresis', // MISSING
+ times: 'Multiplication sign', // MISSING
+ Oslash: 'Latin capital letter O with stroke', // MISSING
+ Ugrave: 'Latin capital letter U with grave accent', // MISSING
+ Uacute: 'Latin capital letter U with acute accent', // MISSING
+ Ucirc: 'Latin capital letter U with circumflex', // MISSING
+ Uuml: 'Latin capital letter U with diaeresis', // MISSING
+ Yacute: 'Latin capital letter Y with acute accent', // MISSING
+ THORN: 'Latin capital letter Thorn', // MISSING
+ szlig: 'Latin small letter sharp s', // MISSING
+ agrave: 'Latin small letter a with grave accent', // MISSING
+ aacute: 'Latin small letter a with acute accent', // MISSING
+ acirc: 'Latin small letter a with circumflex', // MISSING
+ atilde: 'Latin small letter a with tilde', // MISSING
+ auml: 'Latin small letter a with diaeresis', // MISSING
+ aring: 'Latin small letter a with ring above', // MISSING
+ aelig: 'Latin small letter æ', // MISSING
+ ccedil: 'Latin small letter c with cedilla', // MISSING
+ egrave: 'Latin small letter e with grave accent', // MISSING
+ eacute: 'Latin small letter e with acute accent', // MISSING
+ ecirc: 'Latin small letter e with circumflex', // MISSING
+ euml: 'Latin small letter e with diaeresis', // MISSING
+ igrave: 'Latin small letter i with grave accent', // MISSING
+ iacute: 'Latin small letter i with acute accent', // MISSING
+ icirc: 'Latin small letter i with circumflex', // MISSING
+ iuml: 'Latin small letter i with diaeresis', // MISSING
+ eth: 'Latin small letter eth', // MISSING
+ ntilde: 'تÙÙ Ù
ÙÙÙØ§Ù Ø³ÙØ¦Ø§Ù بÛÙÚ¯ÙØ³Ù',
+ ograve: 'Latin small letter o with grave accent', // MISSING
+ oacute: 'Latin small letter o with acute accent', // MISSING
+ ocirc: 'Latin small letter o with circumflex', // MISSING
+ otilde: 'Latin small letter o with tilde', // MISSING
+ ouml: 'Latin small letter o with diaeresis', // MISSING
+ divide: 'Division sign', // MISSING
+ oslash: 'Latin small letter o with stroke', // MISSING
+ ugrave: 'Latin small letter u with grave accent', // MISSING
+ uacute: 'Latin small letter u with acute accent', // MISSING
+ ucirc: 'Latin small letter u with circumflex', // MISSING
+ uuml: 'Latin small letter u with diaeresis', // MISSING
+ yacute: 'Latin small letter y with acute accent', // MISSING
+ thorn: 'Latin small letter thorn', // MISSING
+ yuml: 'Latin small letter y with diaeresis', // MISSING
+ OElig: 'Latin capital ligature OE', // MISSING
+ oelig: 'Latin small ligature oe', // MISSING
+ '372': 'Latin capital letter W with circumflex', // MISSING
+ '374': 'Latin capital letter Y with circumflex', // MISSING
+ '373': 'Latin small letter w with circumflex', // MISSING
+ '375': 'Latin small letter y with circumflex', // MISSING
+ sbquo: 'Single low-9 quotation mark', // MISSING
+ '8219': 'Single high-reversed-9 quotation mark', // MISSING
+ bdquo: 'Double low-9 quotation mark', // MISSING
+ hellip: 'Horizontal ellipsis', // MISSING
+ trade: 'Trade mark sign', // MISSING
+ '9658': 'Black right-pointing pointer', // MISSING
+ bull: 'Bullet', // MISSING
+ rarr: 'ئÙÚ ÙØ§ ئÙÙ',
+ rArr: 'ئÙÚ ÙÙØ´ Ø³ÙØ²ÙÙ ÙØ§ ئÙÙ',
+ hArr: 'ئÙÚ Ø³ÙÙ ÙÙØ´ Ø³ÙØ²ÙÙ ÙØ§ ئÙÙ',
+ diams: 'ئÛÙÛ٠غÙÚ',
+ asymp: 'ØªÛØ®Ù
ÙÙÛ٠تÛÚ'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
new file mode 100644
index 0000000..9a19e48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js
@@ -0,0 +1,125 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.setLang( 'specialchar', 'zh-cn', {
+ euro: '欧å
符å·',
+ lsquo: 'å·¦åå¼å·',
+ rsquo: 'å³åå¼å·',
+ ldquo: 'å·¦åå¼å·',
+ rdquo: 'å³åå¼å·',
+ ndash: 'çå线',
+ mdash: 'ç ´æå·',
+ iexcl: 'ç«ç¿»å¹å·',
+ cent: 'å叿 è®°',
+ pound: 'è±éæ è®°',
+ curren: 'è´§å¸æ è®°',
+ yen: 'æ¥å
æ è®°',
+ brvbar: 'é´ææ¡',
+ sect: 'èæ è®°',
+ uml: 'åé³ç¬¦',
+ copy: 'çææææ è®°',
+ ordf: 'é´æ§é¡ºåºæç¤ºç¬¦',
+ laquo: 'å·¦æåå°å¼å·',
+ not: 'éæ è®°',
+ reg: 'æ³¨åæ è®°',
+ macr: 'é¿é³ç¬¦',
+ deg: '度æ è®°',
+ sup2: '䏿 äº',
+ sup3: '䏿 ä¸',
+ acute: 'éé³ç¬¦',
+ micro: '微符',
+ para: 'æ®µè½æ è®°',
+ middot: 'ä¸é´ç¹',
+ cedil: 'ä¸å 符',
+ sup1: '䏿 ä¸',
+ ordm: '鳿§é¡ºåºæç¤ºç¬¦',
+ raquo: '峿åå°å¼å·',
+ frac14: 'æ®éåæ°ååä¹ä¸',
+ frac12: 'æ®éåæ°äºåä¹ä¸',
+ frac34: 'æ®éåæ°ååä¹ä¸',
+ iquest: 'ç«ç¿»é®å·',
+ Agrave: '带æé³ç¬¦çæä¸æå¤§å忝 A',
+ Aacute: '带éé³ç¬¦çæä¸æå¤§å忝 A',
+ Acirc: 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 A',
+ Atilde: '带é¢å符çæä¸æå¤§å忝 A',
+ Auml: '带åé³ç¬¦çæä¸æå¤§å忝 A',
+ Aring: '带ä¸ååçæä¸æå¤§å忝 A',
+ AElig: 'æä¸æå¤§å忝 Ae',
+ Ccedil: '带ä¸å 符çæä¸æå¤§å忝 C',
+ Egrave: '带æé³ç¬¦çæä¸æå¤§å忝 E',
+ Eacute: '带éé³ç¬¦çæä¸æå¤§å忝 E',
+ Ecirc: 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 E',
+ Euml: '带åé³ç¬¦çæä¸æå¤§å忝 E',
+ Igrave: '带æé³ç¬¦çæä¸æå¤§å忝 I',
+ Iacute: '带éé³ç¬¦çæä¸æå¤§å忝 I',
+ Icirc: 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 I',
+ Iuml: '带åé³ç¬¦çæä¸æå¤§å忝 I',
+ ETH: 'æä¸æå¤§å忝 Eth',
+ Ntilde: '带é¢å符çæä¸æå¤§å忝 N',
+ Ograve: '带æé³ç¬¦çæä¸æå¤§å忝 O',
+ Oacute: '带éé³ç¬¦çæä¸æå¤§å忝 O',
+ Ocirc: 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 O',
+ Otilde: '带é¢å符çæä¸æå¤§å忝 O',
+ Ouml: '带åé³ç¬¦çæä¸æå¤§å忝 O',
+ times: 'ä¹å·',
+ Oslash: '带ç²çº¿çæä¸æå¤§å忝 O',
+ Ugrave: '带æé³ç¬¦çæä¸æå¤§å忝 U',
+ Uacute: '带éé³ç¬¦çæä¸æå¤§å忝 U',
+ Ucirc: 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 U',
+ Uuml: '带åé³ç¬¦çæä¸æå¤§å忝 U',
+ Yacute: '带æé³ç¬¦çæä¸æå¤§å忝 Y',
+ THORN: 'æä¸æå¤§å忝 Thorn',
+ szlig: 'æä¸æå°å忝æ¸
é³ S',
+ agrave: '带æé³ç¬¦çæä¸æå°å忝 A',
+ aacute: '带éé³ç¬¦çæä¸æå°å忝 A',
+ acirc: 'å¸¦æ¬æç¬¦çæä¸æå°å忝 A',
+ atilde: '带é¢å符çæä¸æå°å忝 A',
+ auml: '带åé³ç¬¦çæä¸æå°å忝 A',
+ aring: '带ä¸ååçæä¸æå°å忝 A',
+ aelig: 'æä¸æå°å忝 Ae',
+ ccedil: '带ä¸å 符çæä¸æå°å忝 C',
+ egrave: '带æé³ç¬¦çæä¸æå°å忝 E',
+ eacute: '带éé³ç¬¦çæä¸æå°å忝 E',
+ ecirc: 'å¸¦æ¬æç¬¦çæä¸æå°å忝 E',
+ euml: '带åé³ç¬¦çæä¸æå°å忝 E',
+ igrave: '带æé³ç¬¦çæä¸æå°å忝 I',
+ iacute: '带éé³ç¬¦çæä¸æå°å忝 I',
+ icirc: 'å¸¦æ¬æç¬¦çæä¸æå°å忝 I',
+ iuml: '带åé³ç¬¦çæä¸æå°å忝 I',
+ eth: 'æä¸æå°å忝 Eth',
+ ntilde: '带é¢å符çæä¸æå°å忝 N',
+ ograve: '带æé³ç¬¦çæä¸æå°å忝 O',
+ oacute: '带éé³ç¬¦çæä¸æå°å忝 O',
+ ocirc: 'å¸¦æ¬æç¬¦çæä¸æå°å忝 O',
+ otilde: '带é¢å符çæä¸æå°å忝 O',
+ ouml: '带åé³ç¬¦çæä¸æå°å忝 O',
+ divide: 'é¤å·',
+ oslash: '带ç²çº¿çæä¸æå°å忝 O',
+ ugrave: '带æé³ç¬¦çæä¸æå°å忝 U',
+ uacute: '带éé³ç¬¦çæä¸æå°å忝 U',
+ ucirc: 'å¸¦æ¬æç¬¦çæä¸æå°å忝 U',
+ uuml: '带åé³ç¬¦çæä¸æå°å忝 U',
+ yacute: '带æé³ç¬¦çæä¸æå°å忝 Y',
+ thorn: 'æä¸æå°å忝 Thorn',
+ yuml: '带åé³ç¬¦çæä¸æå°å忝 Y',
+ OElig: 'æä¸æå¤§åè¿å Oe',
+ oelig: 'æä¸æå°åè¿å Oe',
+ '372': 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 W',
+ '374': 'å¸¦æ¬æç¬¦çæä¸æå¤§å忝 Y',
+ '373': 'å¸¦æ¬æç¬¦çæä¸æå°å忝 W',
+ '375': 'å¸¦æ¬æç¬¦çæä¸æå°å忝 Y',
+ sbquo: 'åä¸ 9 å½¢å¼å·',
+ '8219': 'å髿¨ªç¿» 9 å½¢å¼å·',
+ bdquo: 'åä¸ 9 å½¢å¼å·',
+ hellip: 'æ°´å¹³çç¥å·',
+ trade: 'åæ æ å¿',
+ '9658': 'å®å¿å³ææé',
+ bull: 'å éå·',
+ rarr: 'åå³ç®å¤´',
+ rArr: 'åå³å线ç®å¤´',
+ hArr: 'å·¦å³å线ç®å¤´',
+ diams: 'å®å¿æ¹å纸ç',
+ asymp: '约çäº'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/dialogs/specialchar.js b/devel/third-party/ckeditor/plugins/specialchar/dialogs/specialchar.js
index 5e706c7..6950d5e 100644
--- a/devel/third-party/ckeditor/plugins/specialchar/dialogs/specialchar.js
+++ b/devel/third-party/ckeditor/plugins/specialchar/dialogs/specialchar.js
@@ -1,142 +1,101 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dialog.add( 'specialchar', function( editor )
-{
- /**
- * Simulate "this" of a dialog for non-dialog events.
- * @type {CKEDITOR.dialog}
- */
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.dialog.add( 'specialchar', function( editor ) {
+ // Simulate "this" of a dialog for non-dialog events.
+ // @type {CKEDITOR.dialog}
var dialog,
- lang = editor.lang.specialChar;
+ lang = editor.lang.specialchar;
- var insertSpecialChar = function ( specialChar )
- {
- var selection = editor.getSelection(),
- ranges = selection.getRanges( true ),
- range, textNode;
-
- editor.fire( 'saveSnapshot' );
-
- for ( var i = ranges.length - 1; i >= 0 ; i-- )
- {
- range = ranges[ i ];
- range.deleteContents();
-
- textNode = CKEDITOR.dom.element.createFromHtml( specialChar );
- range.insertNode( textNode );
- }
-
- if ( range )
- {
- range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END );
- range.select();
- }
+ var onChoice = function( evt ) {
+ var target, value;
+ if ( evt.data )
+ target = evt.data.getTarget();
+ else
+ target = new CKEDITOR.dom.element( evt );
- editor.fire( 'saveSnapshot' );
- };
+ if ( target.getName() == 'a' && ( value = target.getChild( 0 ).getHtml() ) ) {
+ target.removeClass( "cke_light_background" );
+ dialog.hide();
- var onChoice = function( evt )
- {
- var target, value;
- if ( evt.data )
- target = evt.data.getTarget();
- else
- target = new CKEDITOR.dom.element( evt );
-
- if ( target.getName() == 'a' && ( value = target.getChild( 0 ).getHtml() ) )
- {
- target.removeClass( "cke_light_background" );
- dialog.hide();
-
- // Firefox has bug on insert chars into a element use its own API. (#5170)
- if ( CKEDITOR.env.gecko )
- insertSpecialChar( value );
- else
- editor.insertHtml( value );
- }
- };
+ // We must use "insertText" here to keep text styled.
+ var span = editor.document.createElement( 'span' );
+ span.setHtml( value );
+ editor.insertText( span.getText() );
+ }
+ };
var onClick = CKEDITOR.tools.addFunction( onChoice );
var focusedNode;
- var onFocus = function( evt, target )
- {
- var value;
- target = target || evt.data.getTarget();
+ var onFocus = function( evt, target ) {
+ var value;
+ target = target || evt.data.getTarget();
- if ( target.getName() == 'span' )
- target = target.getParent();
+ if ( target.getName() == 'span' )
+ target = target.getParent();
- if ( target.getName() == 'a' && ( value = target.getChild( 0 ).getHtml() ) )
- {
- // Trigger blur manually if there is focused node.
- if ( focusedNode )
- onBlur( null, focusedNode );
+ if ( target.getName() == 'a' && ( value = target.getChild( 0 ).getHtml() ) ) {
+ // Trigger blur manually if there is focused node.
+ if ( focusedNode )
+ onBlur( null, focusedNode );
- var htmlPreview = dialog.getContentElement( 'info', 'htmlPreview' ).getElement();
+ var htmlPreview = dialog.getContentElement( 'info', 'htmlPreview' ).getElement();
- dialog.getContentElement( 'info', 'charPreview' ).getElement().setHtml( value );
- htmlPreview.setHtml( CKEDITOR.tools.htmlEncode( value ) );
- target.getParent().addClass( "cke_light_background" );
+ dialog.getContentElement( 'info', 'charPreview' ).getElement().setHtml( value );
+ htmlPreview.setHtml( CKEDITOR.tools.htmlEncode( value ) );
+ target.getParent().addClass( "cke_light_background" );
- // Memorize focused node.
- focusedNode = target;
- }
- };
+ // Memorize focused node.
+ focusedNode = target;
+ }
+ };
- var onBlur = function( evt, target )
- {
- target = target || evt.data.getTarget();
+ var onBlur = function( evt, target ) {
+ target = target || evt.data.getTarget();
- if ( target.getName() == 'span' )
- target = target.getParent();
+ if ( target.getName() == 'span' )
+ target = target.getParent();
- if ( target.getName() == 'a' )
- {
- dialog.getContentElement( 'info', 'charPreview' ).getElement().setHtml( ' ' );
- dialog.getContentElement( 'info', 'htmlPreview' ).getElement().setHtml( ' ' );
- target.getParent().removeClass( "cke_light_background" );
+ if ( target.getName() == 'a' ) {
+ dialog.getContentElement( 'info', 'charPreview' ).getElement().setHtml( ' ' );
+ dialog.getContentElement( 'info', 'htmlPreview' ).getElement().setHtml( ' ' );
+ target.getParent().removeClass( "cke_light_background" );
- focusedNode = undefined;
- }
- };
+ focusedNode = undefined;
+ }
+ };
- var onKeydown = CKEDITOR.tools.addFunction( function( ev )
- {
+ var onKeydown = CKEDITOR.tools.addFunction( function( ev ) {
ev = new CKEDITOR.dom.event( ev );
// Get an Anchor element.
var element = ev.getTarget();
var relative, nodeToMove;
- var keystroke = ev.getKeystroke();
- var rtl = editor.lang.dir == 'rtl';
+ var keystroke = ev.getKeystroke(),
+ rtl = editor.lang.dir == 'rtl';
- switch ( keystroke )
- {
+ switch ( keystroke ) {
// UP-ARROW
- case 38 :
+ case 38:
// relative is TR
- if ( ( relative = element.getParent().getParent().getPrevious() ) )
- {
- nodeToMove = relative.getChild( [element.getParent().getIndex(), 0] );
+ if ( ( relative = element.getParent().getParent().getPrevious() ) ) {
+ nodeToMove = relative.getChild( [ element.getParent().getIndex(), 0 ] );
nodeToMove.focus();
onBlur( null, element );
onFocus( null, nodeToMove );
}
ev.preventDefault();
break;
- // DOWN-ARROW
- case 40 :
+ // DOWN-ARROW
+ case 40:
// relative is TR
- if ( ( relative = element.getParent().getParent().getNext() ) )
- {
+ if ( ( relative = element.getParent().getParent().getNext() ) ) {
nodeToMove = relative.getChild( [ element.getParent().getIndex(), 0 ] );
- if ( nodeToMove && nodeToMove.type == 1 )
- {
+ if ( nodeToMove && nodeToMove.type == 1 ) {
nodeToMove.focus();
onBlur( null, element );
onFocus( null, nodeToMove );
@@ -144,54 +103,45 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
}
ev.preventDefault();
break;
- // SPACE
- // ENTER is already handled as onClick
- case 32 :
- onChoice( { data: ev } );
+ // SPACE
+ // ENTER is already handled as onClick
+ case 32:
+ onChoice({ data: ev } );
ev.preventDefault();
break;
- // RIGHT-ARROW
- case rtl ? 37 : 39 :
- // TAB
- case 9 :
+ // RIGHT-ARROW
+ case rtl ? 37:
+ 39 :
// relative is TD
- if ( ( relative = element.getParent().getNext() ) )
- {
+ if ( ( relative = element.getParent().getNext() ) ) {
nodeToMove = relative.getChild( 0 );
- if ( nodeToMove.type == 1 )
- {
+ if ( nodeToMove.type == 1 ) {
nodeToMove.focus();
onBlur( null, element );
onFocus( null, nodeToMove );
ev.preventDefault( true );
- }
- else
+ } else
onBlur( null, element );
}
// relative is TR
- else if ( ( relative = element.getParent().getParent().getNext() ) )
- {
+ else if ( ( relative = element.getParent().getParent().getNext() ) ) {
nodeToMove = relative.getChild( [ 0, 0 ] );
- if ( nodeToMove && nodeToMove.type == 1 )
- {
+ if ( nodeToMove && nodeToMove.type == 1 ) {
nodeToMove.focus();
onBlur( null, element );
onFocus( null, nodeToMove );
ev.preventDefault( true );
- }
- else
+ } else
onBlur( null, element );
}
break;
- // LEFT-ARROW
- case rtl ? 39 : 37 :
- // SHIFT + TAB
- case CKEDITOR.SHIFT + 9 :
+ // LEFT-ARROW
+ case rtl ? 39:
+ 37 :
// relative is TD
- if ( ( relative = element.getParent().getPrevious() ) )
- {
+ if ( ( relative = element.getParent().getPrevious() ) ) {
nodeToMove = relative.getChild( 0 );
nodeToMove.focus();
onBlur( null, element );
@@ -199,109 +149,63 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
ev.preventDefault( true );
}
// relative is TR
- else if ( ( relative = element.getParent().getParent().getPrevious() ) )
- {
+ else if ( ( relative = element.getParent().getParent().getPrevious() ) ) {
nodeToMove = relative.getLast().getChild( 0 );
nodeToMove.focus();
onBlur( null, element );
onFocus( null, nodeToMove );
ev.preventDefault( true );
- }
- else
+ } else
onBlur( null, element );
break;
- default :
+ default:
// Do not stop not handled events.
return;
}
});
return {
- title : lang.title,
- minWidth : 430,
- minHeight : 280,
- buttons : [ CKEDITOR.dialog.cancelButton ],
- charColumns : 17,
- chars :
- [
- '!','"','#','$','%','&',"'",'(',')','*','+','-','.','/',
- '0','1','2','3','4','5','6','7','8','9',':',';',
- '<','=','>','?','@',
- 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
- 'P','Q','R','S','T','U','V','W','X','Y','Z',
- '[',']','^','_','`',
- 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
- 'q','r','s','t','u','v','w','x','y','z',
- '{','|','}','~','€(EURO SIGN)','‘(LEFT SINGLE QUOTATION MARK)','’(RIGHT SINGLE QUOTATION MARK)','“(LEFT DOUBLE QUOTATION MARK)',
- '”(RIGHT DOUBLE QUOTATION MARK)','–(EN DASH)','—(EM DASH)','¡(INVERTED EXCLAMATION MARK)','¢(CENT SIGN)','£(POUND SIGN)',
- '¤(CURRENCY SIGN)','¥(YEN SIGN)','¦(BROKEN BAR)','§(SECTION SIGN)','¨(DIAERESIS)','©(COPYRIGHT SIGN)','ª(FEMININE ORDINAL INDICATOR)',
- '«(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','¬(NOT SIGN)','®(REGISTERED SIGN)','¯(MACRON)','°(DEGREE SIGN)','±(PLUS-MINUS SIGN)','²(SUPERSCRIPT TWO)',
- '³(SUPERSCRIPT THREE)','´(ACUTE ACCENT)','µ(MICRO SIGN)','¶(PILCROW SIGN)','·(MIDDLE DOT)','¸(CEDILLA)',
- '¹(SUPERSCRIPT ONE)','º(MASCULINE ORDINAL INDICATOR)','»(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','¼(VULGAR FRACTION ONE QUARTER)','½(VULGAR FRACTION ONE HALF)','¾(VULGAR FRACTION THREE QUARTERS)',
- '¿(INVERTED QUESTION MARK)','À(LATIN CAPITAL LETTER A WITH GRAVE)','Á(LATIN CAPITAL LETTER A WITH ACUTE)','Â(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','Ã(LATIN CAPITAL LETTER A WITH TILDE)','Ä(LATIN CAPITAL LETTER A WITH DIAERESIS)',
- 'Å(LATIN CAPITAL LETTER A WITH RING ABOVE)','Æ(LATIN CAPITAL LETTER AE)','Ç(LATIN CAPITAL LETTER C WITH CEDILLA)','È(LATIN CAPITAL LETTER E WITH GRAVE)','É(LATIN CAPITAL LETTER E WITH ACUTE)','Ê(LATIN CAPITAL LETTER E WITH CIRCUMFLEX)',
- 'Ë(LATIN CAPITAL LETTER E WITH DIAERESIS)','Ì(LATIN CAPITAL LETTER I WITH GRAVE)','Í(LATIN CAPITAL LETTER I WITH ACUTE)','Î(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','Ï(LATIN CAPITAL LETTER I WITH DIAERESIS)','Ð(LATIN CAPITAL LETTER ETH)',
- 'Ñ(LATIN CAPITAL LETTER N WITH TILDE)','Ò(LATIN CAPITAL LETTER O WITH GRAVE)','Ó(LATIN CAPITAL LETTER O WITH ACUTE)','Ô(LATIN CAPITAL LETTER O WITH CIRCUMFLEX)','Õ(LATIN CAPITAL LETTER O WITH TILDE)','Ö(LATIN CAPITAL LETTER O WITH DIAERESIS)',
- '×(MULTIPLICATION SIGN)','Ø(LATIN CAPITAL LETTER O WITH STROKE)','Ù(LATIN CAPITAL LETTER U WITH GRAVE)','Ú(LATIN CAPITAL LETTER U WITH ACUTE)','Û(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','Ü(LATIN CAPITAL LETTER U WITH DIAERESIS)',
- 'Ý(LATIN CAPITAL LETTER Y WITH ACUTE)','Þ(LATIN CAPITAL LETTER THORN)','ß(LATIN SMALL LETTER SHARP S)','à(LATIN SMALL LETTER A WITH GRAVE)','á(LATIN SMALL LETTER A WITH ACUTE)','â(LATIN SMALL LETTER A WITH CIRCUMFLEX)',
- 'ã(LATIN SMALL LETTER A WITH TILDE)','ä(LATIN SMALL LETTER A WITH DIAERESIS)','å(LATIN SMALL LETTER A WITH RING ABOVE)','æ(LATIN SMALL LETTER AE)','ç(LATIN SMALL LETTER C WITH CEDILLA)','è(LATIN SMALL LETTER E WITH GRAVE)',
- 'é(LATIN SMALL LETTER E WITH ACUTE)','ê(LATIN SMALL LETTER E WITH CIRCUMFLEX)','ë(LATIN SMALL LETTER E WITH DIAERESIS)','ì(LATIN SMALL LETTER I WITH GRAVE)','í(LATIN SMALL LETTER I WITH ACUTE)','î(LATIN SMALL LETTER I WITH CIRCUMFLEX)',
- 'ï(LATIN SMALL LETTER I WITH DIAERESIS)','ð(LATIN SMALL LETTER ETH)','ñ(LATIN SMALL LETTER N WITH TILDE)','ò(LATIN SMALL LETTER O WITH GRAVE)','ó(LATIN SMALL LETTER O WITH ACUTE)','ô(LATIN SMALL LETTER O WITH CIRCUMFLEX)',
- 'õ(LATIN SMALL LETTER O WITH TILDE)','ö(LATIN SMALL LETTER O WITH DIAERESIS)',
- '÷(DIVISION SIGN)','ø(LATIN SMALL LETTER O WITH STROKE)',
- 'ù(LATIN SMALL LETTER U WITH GRAVE)','ú(LATIN SMALL LETTER U WITH ACUTE)',
- 'û(LATIN SMALL LETTER U WITH CIRCUMFLEX)','ü(LATIN SMALL LETTER U WITH DIAERESIS)',
- 'ü(LATIN SMALL LETTER U WITH DIAERESIS)','ý(LATIN SMALL LETTER Y WITH ACUTE)','þ(LATIN SMALL LETTER THORN)','ÿ(LATIN SMALL LETTER Y WITH DIAERESIS)',
- 'Œ(LATIN CAPITAL LIGATURE OE)',
- 'œ(LATIN SMALL LIGATURE OE)','Ŵ(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)',
- 'Ŷ(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','ŵ(LATIN SMALL LETTER W WITH CIRCUMFLEX)',
- 'ŷ(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','‚(SINGLE LOW-9 QUOTATION MARK)',
- '‛(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','„(DOUBLE LOW-9 QUOTATION MARK)','…(HORIZONTAL ELLIPSIS)',
- '™(TRADE MARK SIGN)','►(BLACK RIGHT-POINTING POINTER)','•(BULLET)',
- '→(RIGHTWARDS ARROW)','⇒(RIGHTWARDS DOUBLE ARROW)','⇔(LEFT RIGHT DOUBLE ARROW)','♦(BLACK DIAMOND SUIT)','≈(ALMOST EQUAL TO)'
- ],
- onLoad : function()
- {
+ title: lang.title,
+ minWidth: 430,
+ minHeight: 280,
+ buttons: [ CKEDITOR.dialog.cancelButton ],
+ charColumns: 17,
+ onLoad: function() {
var columns = this.definition.charColumns,
- chars = this.definition.chars;
+ extraChars = editor.config.extraSpecialChars,
+ chars = editor.config.specialChars;
- var charsTableLabel = CKEDITOR.tools.getNextId() + '_specialchar_table_label';
+ var charsTableLabel = CKEDITOR.tools.getNextId() + '_specialchar_table_label';
var html = [ '<table role="listbox" aria-labelledby="' + charsTableLabel + '"' +
- ' style="width: 320px; height: 100%; border-collapse: separate;"' +
- ' align="center" cellspacing="2" cellpadding="2" border="0">' ];
+ ' style="width: 320px; height: 100%; border-collapse: separate;"' +
+ ' align="center" cellspacing="2" cellpadding="2" border="0">' ];
var i = 0,
size = chars.length,
- character,
- charDesc;
+ character, charDesc;
- while ( i < size )
- {
- html.push( '<tr>' ) ;
+ while ( i < size ) {
+ html.push( '<tr role="presentation">' );
- for ( var j = 0 ; j < columns ; j++, i++ )
- {
- if ( ( character = chars[ i ] ) )
- {
+ for ( var j = 0; j < columns; j++, i++ ) {
+ if ( ( character = chars[ i ] ) ) {
charDesc = '';
- character = character.replace( /\((.*?)\)/, function( match, desc )
- {
- charDesc = desc;
- return '';
- } );
- // Use character in case description unavailable.
- charDesc = charDesc || character;
+ if ( character instanceof Array ) {
+ charDesc = character[ 1 ];
+ character = character[ 0 ];
+ } else {
+ var _tmpName = character.replace( '&', '' ).replace( ';', '' ).replace( '#', '' );
+
+ // Use character in case description unavailable.
+ charDesc = lang[ _tmpName ] || character;
+ }
- var charLabelId = 'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
+ var charLabelId = 'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
- html.push(
- '<td class="cke_dark_background" style="cursor: default" role="presentation">' +
+ html.push( '<td class="cke_dark_background" style="cursor: default" role="presentation">' +
'<a href="javascript: void(0);" role="option"' +
- ' aria-posinset="' + ( i +1 ) + '"',
- ' aria-setsize="' + size + '"',
- ' aria-labelledby="' + charLabelId + '"',
- ' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="', CKEDITOR.tools.htmlEncode( charDesc ), '"' +
+ ' aria-posinset="' + ( i + 1 ) + '"', ' aria-setsize="' + size + '"', ' aria-labelledby="' + charLabelId + '"', ' class="cke_specialchar" title="', CKEDITOR.tools.htmlEncode( charDesc ), '"' +
' onkeydown="CKEDITOR.tools.callFunction( ' + onKeydown + ', event, this )"' +
' onclick="CKEDITOR.tools.callFunction(' + onClick + ', this); return false;"' +
' tabindex="-1">' +
@@ -310,9 +214,8 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
'</span>' +
'<span class="cke_voice_label" id="' + charLabelId + '">' +
charDesc +
- '</span></a>');
- }
- else
+ '</span></a>' );
+ } else
html.push( '<td class="cke_dark_background"> ' );
html.push( '</td>' );
@@ -320,90 +223,82 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
html.push( '</tr>' );
}
- html.push( '</tbody></table>', '<span id="' + charsTableLabel + '" class="cke_voice_label">' + lang.options +'</span>' );
+ html.push( '</tbody></table>', '<span id="' + charsTableLabel + '" class="cke_voice_label">' + lang.options + '</span>' );
this.getContentElement( 'info', 'charContainer' ).getElement().setHtml( html.join( '' ) );
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.common.generalTab,
- title : editor.lang.common.generalTab,
- padding : 0,
- align : 'top',
- elements : [
+ id: 'info',
+ label: editor.lang.common.generalTab,
+ title: editor.lang.common.generalTab,
+ padding: 0,
+ align: 'top',
+ elements: [
+ {
+ type: 'hbox',
+ align: 'top',
+ widths: [ '320px', '90px' ],
+ children: [
{
- type : 'hbox',
- align : 'top',
- widths : [ '320px', '90px' ],
- children :
- [
+ type: 'html',
+ id: 'charContainer',
+ html: '',
+ onMouseover: onFocus,
+ onMouseout: onBlur,
+ focus: function() {
+ var firstChar = this.getElement().getElementsByTag( 'a' ).getItem( 0 );
+ setTimeout( function() {
+ firstChar.focus();
+ onFocus( null, firstChar );
+ }, 0 );
+ },
+ onShow: function() {
+ var firstChar = this.getElement().getChild( [ 0, 0, 0, 0, 0 ] );
+ setTimeout( function() {
+ firstChar.focus();
+ onFocus( null, firstChar );
+ }, 0 );
+ },
+ onLoad: function( event ) {
+ dialog = event.sender;
+ }
+ },
+ {
+ type: 'hbox',
+ align: 'top',
+ widths: [ '100%' ],
+ children: [
+ {
+ type: 'vbox',
+ align: 'top',
+ children: [
+ {
+ type: 'html',
+ html: '<div></div>'
+ },
{
- type : 'html',
- id : 'charContainer',
- html : '',
- onMouseover : onFocus,
- onMouseout : onBlur,
- focus : function()
- {
- var firstChar = this.getElement().getElementsByTag( 'a' ).getItem( 0 );
- setTimeout(function()
- {
- firstChar.focus();
- onFocus( null, firstChar );
- }, 0 );
- },
- onShow : function()
- {
- var firstChar = this.getElement().getChild( [ 0, 0, 0, 0, 0 ] );
- setTimeout( function()
- {
- firstChar.focus();
- onFocus( null, firstChar );
- }, 0 );
- },
- onLoad : function( event )
- {
- dialog = event.sender;
- }
- },
+ type: 'html',
+ id: 'charPreview',
+ className: 'cke_dark_background',
+ style: 'border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:\'Microsoft Sans Serif\',Arial,Helvetica,Verdana;text-align:center;',
+ html: '<div> </div>'
+ },
{
- type : 'hbox',
- align : 'top',
- widths : [ '100%' ],
- children :
- [
- {
- type : 'vbox',
- align : 'top',
- children :
- [
- {
- type : 'html',
- html : '<div></div>'
- },
- {
- type : 'html',
- id : 'charPreview',
- className : 'cke_dark_background',
- style : 'border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:\'Microsoft Sans Serif\',Arial,Helvetica,Verdana;text-align:center;',
- html : '<div> </div>'
- },
- {
- type : 'html',
- id : 'htmlPreview',
- className : 'cke_dark_background',
- style : 'border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:\'Microsoft Sans Serif\',Arial,Helvetica,Verdana;text-align:center;',
- html : '<div> </div>'
- }
- ]
- }
- ]
- }
+ type: 'html',
+ id: 'htmlPreview',
+ className: 'cke_dark_background',
+ style: 'border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:\'Microsoft Sans Serif\',Arial,Helvetica,Verdana;text-align:center;',
+ html: '<div> </div>'
+ }
]
}
+ ]
+ }
]
}
+ ]
+ }
]
};
-} );
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/icons/specialchar.png b/devel/third-party/ckeditor/plugins/specialchar/icons/specialchar.png
new file mode 100644
index 0000000..00ac1fe
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/specialchar/icons/specialchar.png differ
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/_translationstatus.txt b/devel/third-party/ckeditor/plugins/specialchar/lang/_translationstatus.txt
new file mode 100644
index 0000000..a36ae3c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/_translationstatus.txt
@@ -0,0 +1,63 @@
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+
+af.js Found: 3 Missing: 118
+ar.js Found: 2 Missing: 119
+bg.js Found: 3 Missing: 118
+bn.js Found: 2 Missing: 119
+bs.js Found: 2 Missing: 119
+ca.js Found: 3 Missing: 118
+cs.js Found: 121 Missing: 0
+cy.js Found: 121 Missing: 0
+da.js Found: 3 Missing: 118
+de.js Found: 121 Missing: 0
+el.js Found: 19 Missing: 102
+en-au.js Found: 2 Missing: 119
+en-ca.js Found: 2 Missing: 119
+en-gb.js Found: 3 Missing: 118
+eo.js Found: 121 Missing: 0
+es.js Found: 3 Missing: 118
+et.js Found: 34 Missing: 87
+eu.js Found: 2 Missing: 119
+fa.js Found: 27 Missing: 94
+fi.js Found: 26 Missing: 95
+fo.js Found: 3 Missing: 118
+fr-ca.js Found: 2 Missing: 119
+fr.js Found: 121 Missing: 0
+gl.js Found: 2 Missing: 119
+gu.js Found: 3 Missing: 118
+he.js Found: 3 Missing: 118
+hi.js Found: 2 Missing: 119
+hr.js Found: 26 Missing: 95
+hu.js Found: 3 Missing: 118
+is.js Found: 2 Missing: 119
+it.js Found: 121 Missing: 0
+ja.js Found: 3 Missing: 118
+ka.js Found: 3 Missing: 118
+km.js Found: 2 Missing: 119
+ko.js Found: 2 Missing: 119
+lt.js Found: 3 Missing: 118
+lv.js Found: 2 Missing: 119
+mk.js Found: 0 Missing: 121
+mn.js Found: 2 Missing: 119
+ms.js Found: 2 Missing: 119
+nb.js Found: 121 Missing: 0
+nl.js Found: 121 Missing: 0
+no.js Found: 121 Missing: 0
+pl.js Found: 3 Missing: 118
+pt-br.js Found: 3 Missing: 118
+pt.js Found: 2 Missing: 119
+ro.js Found: 3 Missing: 118
+ru.js Found: 3 Missing: 118
+sk.js Found: 3 Missing: 118
+sl.js Found: 2 Missing: 119
+sr-latn.js Found: 2 Missing: 119
+sr.js Found: 2 Missing: 119
+sv.js Found: 3 Missing: 118
+th.js Found: 2 Missing: 119
+tr.js Found: 121 Missing: 0
+ug.js Found: 42 Missing: 79
+uk.js Found: 3 Missing: 118
+vi.js Found: 3 Missing: 118
+zh-cn.js Found: 121 Missing: 0
+zh.js Found: 2 Missing: 119
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/af.js b/devel/third-party/ckeditor/plugins/specialchar/lang/af.js
new file mode 100644
index 0000000..080faad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/af.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'af', {
+ options: 'Spesiale karakter-opsies',
+ title: 'Kies spesiale karakter',
+ toolbar: 'Voeg spesiaale karakter in'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ar.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ar.js
new file mode 100644
index 0000000..312b681
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ar.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ar', {
+ options: 'Special Character Options', // MISSING
+ title: 'اختر Ø§ÙØ®Ùاص',
+ toolbar: 'إدراج خاص.Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/bg.js b/devel/third-party/ckeditor/plugins/specialchar/lang/bg.js
new file mode 100644
index 0000000..c857a3f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/bg.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'bg', {
+ options: 'ÐпÑии за ÑпеÑиален знак',
+ title: 'ÐÐ·Ð±Ð¾Ñ Ð½Ð° ÑпеÑиален знак',
+ toolbar: 'ÐмÑкване на ÑпеÑиален знак'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/bn.js b/devel/third-party/ckeditor/plugins/specialchar/lang/bn.js
new file mode 100644
index 0000000..64b6eea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/bn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'bn', {
+ options: 'Special Character Options', // MISSING
+ title: 'বিশà§à¦· à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° বাà¦à¦¾à¦ à¦à¦°',
+ toolbar: 'বিশà§à¦· à¦
à¦à§à¦·à¦° যà§à¦à§à¦¤ à¦à¦°'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/bs.js b/devel/third-party/ckeditor/plugins/specialchar/lang/bs.js
new file mode 100644
index 0000000..678a3e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/bs.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'bs', {
+ options: 'Special Character Options', // MISSING
+ title: 'Izaberi specijalni karakter',
+ toolbar: 'Ubaci specijalni karater'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ca.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ca.js
new file mode 100644
index 0000000..5230ea1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ca.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ca', {
+ options: 'Opcions de carà cters especials',
+ title: 'Selecciona el carà cter especial',
+ toolbar: 'Insereix carà cter especial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/cs.js b/devel/third-party/ckeditor/plugins/specialchar/lang/cs.js
new file mode 100644
index 0000000..465c6b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/cs.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'cs', {
+ options: 'Nastavenà speciálnÃch znaků',
+ title: 'VýbÄr speciálnÃho znaku',
+ toolbar: 'Vložit speciálnà znaky'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/cy.js b/devel/third-party/ckeditor/plugins/specialchar/lang/cy.js
new file mode 100644
index 0000000..a8c4e22
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/cy.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'cy', {
+ options: 'Opsiynau Nodau Arbennig',
+ title: 'Dewis Nod Arbennig',
+ toolbar: 'Mewnosod Nodau Arbennig'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/da.js b/devel/third-party/ckeditor/plugins/specialchar/lang/da.js
new file mode 100644
index 0000000..d10875f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/da.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'da', {
+ options: 'Muligheder for specialkarakterer',
+ title: 'Vælg symbol',
+ toolbar: 'Indsæt symbol'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/de.js b/devel/third-party/ckeditor/plugins/specialchar/lang/de.js
new file mode 100644
index 0000000..405db33
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/de.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'de', {
+ options: 'Sonderzeichen Optionen',
+ title: 'Sonderzeichen auswählen',
+ toolbar: 'Sonderzeichen einfügen/editieren'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/el.js b/devel/third-party/ckeditor/plugins/specialchar/lang/el.js
new file mode 100644
index 0000000..c8d0496
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/el.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'el', {
+ options: 'ÎÏιλογÎÏ ÎιδικÏν ΧαÏακÏήÏÏν',
+ title: 'ÎÏιλÎξÏε Îναν ÎÎ¹Î´Î¹ÎºÏ Î§Î±ÏακÏήÏα',
+ toolbar: 'ÎιÏαγÏγή ÎÎ¹Î´Î¹ÎºÎ¿Ï Î§Î±ÏακÏήÏα'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/en-au.js b/devel/third-party/ckeditor/plugins/specialchar/lang/en-au.js
new file mode 100644
index 0000000..46a0df0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/en-au.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'en-au', {
+ options: 'Special Character Options', // MISSING
+ title: 'Select Special Character',
+ toolbar: 'Insert Special Character'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/en-ca.js b/devel/third-party/ckeditor/plugins/specialchar/lang/en-ca.js
new file mode 100644
index 0000000..8ec87af
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/en-ca.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'en-ca', {
+ options: 'Special Character Options', // MISSING
+ title: 'Select Special Character',
+ toolbar: 'Insert Special Character'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/en-gb.js b/devel/third-party/ckeditor/plugins/specialchar/lang/en-gb.js
new file mode 100644
index 0000000..2b94b98
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/en-gb.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'en-gb', {
+ options: 'Special Character Options',
+ title: 'Select Special Character',
+ toolbar: 'Insert Special Character'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/en.js b/devel/third-party/ckeditor/plugins/specialchar/lang/en.js
new file mode 100644
index 0000000..5a73ea6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/en.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'en', {
+ options: 'Special Character Options',
+ title: 'Select Special Character',
+ toolbar: 'Insert Special Character'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/eo.js b/devel/third-party/ckeditor/plugins/specialchar/lang/eo.js
new file mode 100644
index 0000000..ae5c790
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/eo.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'eo', {
+ options: 'Opcioj pri Specialaj Signoj',
+ title: 'Selekti Specialan Signon',
+ toolbar: 'Enmeti Specialan Signon'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/es.js b/devel/third-party/ckeditor/plugins/specialchar/lang/es.js
new file mode 100644
index 0000000..cfd8c10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/es.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'es', {
+ options: 'Opciones de caracteres especiales',
+ title: 'Seleccione un caracter especial',
+ toolbar: 'Insertar Caracter Especial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/et.js b/devel/third-party/ckeditor/plugins/specialchar/lang/et.js
new file mode 100644
index 0000000..5217a0d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/et.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'et', {
+ options: 'Erimärkide valikud',
+ title: 'Erimärgi valimine',
+ toolbar: 'Erimärgi sisestamine'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/eu.js b/devel/third-party/ckeditor/plugins/specialchar/lang/eu.js
new file mode 100644
index 0000000..eca90b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/eu.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'eu', {
+ options: 'Special Character Options', // MISSING
+ title: 'Karaktere Berezia Aukeratu',
+ toolbar: 'Txertatu Karaktere Berezia'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/fa.js b/devel/third-party/ckeditor/plugins/specialchar/lang/fa.js
new file mode 100644
index 0000000..ece6b73
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/fa.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'fa', {
+ options: 'گزÛÙÙÙØ§Û ÙÙÛØ³ÙÙØ§Û ÙÛÚÙ',
+ title: 'گزÛÙØ´ ÙÙÛØ³ÙÙ´ ÙÛÚÙ',
+ toolbar: 'Ú¯ÙØ¬Ø§Ùد٠ÙÙÛØ³ÙÙ´ ÙÛÚÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/fi.js b/devel/third-party/ckeditor/plugins/specialchar/lang/fi.js
new file mode 100644
index 0000000..5e597dc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/fi.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'fi', {
+ options: 'Erikoismerkin ominaisuudet',
+ title: 'Valitse erikoismerkki',
+ toolbar: 'Lisää erikoismerkki'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/fo.js b/devel/third-party/ckeditor/plugins/specialchar/lang/fo.js
new file mode 100644
index 0000000..0efca6d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/fo.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'fo', {
+ options: 'Møguleikar við serteknum',
+ title: 'Vel sertekn',
+ toolbar: 'Set inn sertekn'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/specialchar/lang/fr-ca.js
new file mode 100644
index 0000000..f090c39
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/fr-ca.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'fr-ca', {
+ options: 'Special Character Options', // MISSING
+ title: 'Insérer un caractère spécial',
+ toolbar: 'Insérer un caractère spécial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/fr.js b/devel/third-party/ckeditor/plugins/specialchar/lang/fr.js
new file mode 100644
index 0000000..343340c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/fr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'fr', {
+ options: 'Options des caractères spéciaux',
+ title: 'Sélectionnez un caractère',
+ toolbar: 'Insérer un caractère spécial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/gl.js b/devel/third-party/ckeditor/plugins/specialchar/lang/gl.js
new file mode 100644
index 0000000..629a1b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/gl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'gl', {
+ options: 'Special Character Options', // MISSING
+ title: 'Seleccione Caracter Especial',
+ toolbar: 'Inserir Carácter Especial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/gu.js b/devel/third-party/ckeditor/plugins/specialchar/lang/gu.js
new file mode 100644
index 0000000..7a3b68c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/gu.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'gu', {
+ options: 'સà«àªªà«àª¶àª¿àª
લ àªàª°à«àªà«àªàª°àª¨àª¾ વિàªàª²à«àªªà«',
+ title: 'સà«àªªà«àª¶àª¿àª
લ વિશિષà«àª àª
àªà«àª·àª° પસàªàª¦ àªàª°à«',
+ toolbar: 'વિશિષà«àª àª
àªà«àª·àª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/he.js b/devel/third-party/ckeditor/plugins/specialchar/lang/he.js
new file mode 100644
index 0000000..6f22ba2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/he.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'he', {
+ options: '×פשר×××ת ת×××× ×××××××',
+ title: '×××רת ×ª× ×××××',
+ toolbar: '××ספת ×ª× ×××××'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/hi.js b/devel/third-party/ckeditor/plugins/specialchar/lang/hi.js
new file mode 100644
index 0000000..7e2f2b4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/hi.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'hi', {
+ options: 'Special Character Options', // MISSING
+ title: 'विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥à¤¨à¥à¤',
+ toolbar: 'विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/hr.js b/devel/third-party/ckeditor/plugins/specialchar/lang/hr.js
new file mode 100644
index 0000000..f2e19ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/hr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'hr', {
+ options: 'Opcije specijalnih znakova',
+ title: 'Odaberite posebni karakter',
+ toolbar: 'Ubaci posebne znakove'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/hu.js b/devel/third-party/ckeditor/plugins/specialchar/lang/hu.js
new file mode 100644
index 0000000..1a5c9c8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/hu.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'hu', {
+ options: 'Speciális karakter opciók',
+ title: 'Speciális karakter választása',
+ toolbar: 'Speciális karakter beillesztése'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/is.js b/devel/third-party/ckeditor/plugins/specialchar/lang/is.js
new file mode 100644
index 0000000..96b3db2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/is.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'is', {
+ options: 'Special Character Options', // MISSING
+ title: 'Velja tákn',
+ toolbar: 'Setja inn merki'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/it.js b/devel/third-party/ckeditor/plugins/specialchar/lang/it.js
new file mode 100644
index 0000000..6fd8516
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/it.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'it', {
+ options: 'Opzioni carattere speciale',
+ title: 'Seleziona carattere speciale',
+ toolbar: 'Inserisci carattere speciale'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ja.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ja.js
new file mode 100644
index 0000000..56bcc2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ja.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ja', {
+ options: 'ç¹æ®æåãªãã·ã§ã³',
+ title: 'ç¹æ®æå鏿',
+ toolbar: 'ç¹æ®æåæ¿å
¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ka.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ka.js
new file mode 100644
index 0000000..afc27d9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ka.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ka', {
+ options: 'á¡áááªáááá£á á á¡ááááááá¡ ááá áááá¢á ááá',
+ title: 'á¡áááªáááá£á á á¡ááááááá¡ áá á©ááá',
+ toolbar: 'á¡áááªáááá£á á á¡ááááááá¡ á©áá¡áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/km.js b/devel/third-party/ckeditor/plugins/specialchar/lang/km.js
new file mode 100644
index 0000000..07252cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/km.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'km', {
+ options: 'Special Character Options', // MISSING
+ title: 'áá¼á¢áááááá·ááá',
+ toolbar: 'ááááááá¢áááááá·ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ko.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ko.js
new file mode 100644
index 0000000..ba3c1a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ko.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ko', {
+ options: 'Special Character Options', // MISSING
+ title: 'í¹ì문ì ì í',
+ toolbar: 'í¹ì문ì ì½ì
'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ku.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ku.js
new file mode 100644
index 0000000..22dba18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ku.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ku', {
+ options: 'ÙÛÚµØ¨ÚØ§Ø±Ø¯ÛÛ ÙÙÙØ³ÛÛ ØªØ§ÛØ¨ÛتÛ',
+ title: 'ÙÛÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙÙØ³ÛÛ ØªØ§ÛØ¨ÛتÛ',
+ toolbar: 'Ø¯Ø§ÙØ§ÙÛÛ ÙÙÙØ³ÛÛ ØªØ§ÛØ¨ÛتÛ'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/lt.js b/devel/third-party/ckeditor/plugins/specialchar/lang/lt.js
new file mode 100644
index 0000000..748d334
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/lt.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'lt', {
+ options: 'Specialaus simbolio nustatymai',
+ title: 'Pasirinkite specialų simbolį',
+ toolbar: 'Įterpti specialų simbolį'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/lv.js b/devel/third-party/ckeditor/plugins/specialchar/lang/lv.js
new file mode 100644
index 0000000..4f6b33e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/lv.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'lv', {
+ options: 'SpeciÄlo simbolu uzstÄdÄ«jumi',
+ title: 'Ievietot īpašu simbolu',
+ toolbar: 'Ievietot speciÄlo simbolu'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/mk.js b/devel/third-party/ckeditor/plugins/specialchar/lang/mk.js
new file mode 100644
index 0000000..5907061
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/mk.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'mk', {
+ options: 'Special Character Options', // MISSING
+ title: 'Select Special Character', // MISSING
+ toolbar: 'Insert Special Character' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/mn.js b/devel/third-party/ckeditor/plugins/specialchar/lang/mn.js
new file mode 100644
index 0000000..7140c5d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/mn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'mn', {
+ options: 'Special Character Options', // MISSING
+ title: 'ÐнÑгой ÑÑмдÑÐ³Ñ ÑонгоÑ
',
+ toolbar: 'ÐнÑгой ÑÑмдÑÐ³Ñ Ð¾ÑÑÑлаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ms.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ms.js
new file mode 100644
index 0000000..32e895a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ms.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ms', {
+ options: 'Special Character Options', // MISSING
+ title: 'Sila pilih huruf istimewa',
+ toolbar: 'Masukkan Huruf Istimewa'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/nb.js b/devel/third-party/ckeditor/plugins/specialchar/lang/nb.js
new file mode 100644
index 0000000..2bfadd8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/nb.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'nb', {
+ options: 'Alternativer for spesialtegn',
+ title: 'Velg spesialtegn',
+ toolbar: 'Sett inn spesialtegn'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/nl.js b/devel/third-party/ckeditor/plugins/specialchar/lang/nl.js
new file mode 100644
index 0000000..839e1e4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/nl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'nl', {
+ options: 'Speciale tekens opties',
+ title: 'Selecteer speciaal teken',
+ toolbar: 'Speciaal teken invoegen'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/no.js b/devel/third-party/ckeditor/plugins/specialchar/lang/no.js
new file mode 100644
index 0000000..afecb0a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/no.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'no', {
+ options: 'Alternativer for spesialtegn',
+ title: 'Velg spesialtegn',
+ toolbar: 'Sett inn spesialtegn'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/pl.js b/devel/third-party/ckeditor/plugins/specialchar/lang/pl.js
new file mode 100644
index 0000000..566a4ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/pl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'pl', {
+ options: 'Opcje znaków specjalnych',
+ title: 'Wybierz znak specjalny',
+ toolbar: 'Wstaw znak specjalny'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/pt-br.js b/devel/third-party/ckeditor/plugins/specialchar/lang/pt-br.js
new file mode 100644
index 0000000..0dd661f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/pt-br.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'pt-br', {
+ options: 'Opções de Caractere Especial',
+ title: 'Selecione um Caractere Especial',
+ toolbar: 'Inserir Caractere Especial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/pt.js b/devel/third-party/ckeditor/plugins/specialchar/lang/pt.js
new file mode 100644
index 0000000..0b38233
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/pt.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'pt', {
+ options: 'Special Character Options', // MISSING
+ title: 'Seleccione um caracter especial',
+ toolbar: 'Inserir Caracter Especial'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ro.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ro.js
new file mode 100644
index 0000000..84935ac
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ro.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ro', {
+ options: 'OpÈiuni caractere speciale',
+ title: 'SelecteazÄ caracter special',
+ toolbar: 'InsereazÄ caracter special'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ru.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ru.js
new file mode 100644
index 0000000..a0c5cbd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ru.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ru', {
+ options: 'ÐÑÐ±Ð¾Ñ ÑпеÑиалÑного Ñимвола',
+ title: 'ÐÑбеÑиÑе ÑпеÑиалÑнÑй Ñимвол',
+ toolbar: 'ÐÑÑавиÑÑ ÑпеÑиалÑнÑй Ñимвол'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/sk.js b/devel/third-party/ckeditor/plugins/specialchar/lang/sk.js
new file mode 100644
index 0000000..377181b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/sk.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'sk', {
+ options: 'Možnosti špeciálneho znaku',
+ title: 'Výber špeciálneho znaku',
+ toolbar: 'Vložiť špeciálny znak'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/sl.js b/devel/third-party/ckeditor/plugins/specialchar/lang/sl.js
new file mode 100644
index 0000000..08d669a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/sl.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'sl', {
+ options: 'Special Character Options', // MISSING
+ title: 'Izberi posebni znak',
+ toolbar: 'Vstavi posebni znak'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/specialchar/lang/sr-latn.js
new file mode 100644
index 0000000..ada39ae
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/sr-latn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'sr-latn', {
+ options: 'Special Character Options', // MISSING
+ title: 'Odaberite specijalni karakter',
+ toolbar: 'Unesi specijalni karakter'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/sr.js b/devel/third-party/ckeditor/plugins/specialchar/lang/sr.js
new file mode 100644
index 0000000..2226d19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/sr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'sr', {
+ options: 'Special Character Options', // MISSING
+ title: 'ÐдабеÑиÑе ÑпеÑиÑални каÑакÑеÑ',
+ toolbar: 'УнеÑи ÑпеÑиÑални каÑакÑеÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/sv.js b/devel/third-party/ckeditor/plugins/specialchar/lang/sv.js
new file mode 100644
index 0000000..b7ae80d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/sv.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'sv', {
+ options: 'Special Character Options',
+ title: 'Välj utökat tecken',
+ toolbar: 'Klistra in utökat tecken'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/th.js b/devel/third-party/ckeditor/plugins/specialchar/lang/th.js
new file mode 100644
index 0000000..4b6e45f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/th.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'th', {
+ options: 'Special Character Options', // MISSING
+ title: 'à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©',
+ toolbar: 'à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/tr.js b/devel/third-party/ckeditor/plugins/specialchar/lang/tr.js
new file mode 100644
index 0000000..8814631
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/tr.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'tr', {
+ options: 'Ãzel Karakter Seçenekleri',
+ title: 'Ãzel Karakter Seç',
+ toolbar: 'Ãzel Karakter Ekle'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/ug.js b/devel/third-party/ckeditor/plugins/specialchar/lang/ug.js
new file mode 100644
index 0000000..2f01983
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/ug.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'ug', {
+ options: 'Ø¦Ø§ÙØ§Ú¾ÙØ¯Û Ú¾ÛØ±Ù¾ تاÙÙØ§ÙÙ
ÙØ³Ù',
+ title: 'Ø¦Ø§ÙØ§Ú¾ÙØ¯Û Ú¾ÛØ±Ù¾ تاÙÙØ§Ú',
+ toolbar: 'Ø¦Ø§ÙØ§Ú¾ÙØ¯Û Ú¾ÛØ±Ù¾ ÙÙØ³ØªÛر'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/uk.js b/devel/third-party/ckeditor/plugins/specialchar/lang/uk.js
new file mode 100644
index 0000000..4861f5b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/uk.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'uk', {
+ options: 'ÐпÑÑÑ',
+ title: 'ÐбеÑÑÑÑ ÑпеÑÑалÑний Ñимвол',
+ toolbar: 'СпеÑÑалÑний Ñимвол'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/vi.js b/devel/third-party/ckeditor/plugins/specialchar/lang/vi.js
new file mode 100644
index 0000000..9aed75f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/vi.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'vi', {
+ options: 'Tùy chá»n các ký tá»± Äặc biá»t',
+ title: 'Hãy chá»n ký tá»± Äặc biá»t',
+ toolbar: 'Chèn ký tá»± Äặc biá»t'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/specialchar/lang/zh-cn.js
new file mode 100644
index 0000000..444b232
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/zh-cn.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'zh-cn', {
+ options: 'ç¹æ®ç¬¦å·é项',
+ title: 'éæ©ç¹æ®ç¬¦å·',
+ toolbar: 'æå
¥ç¹æ®ç¬¦å·'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/lang/zh.js b/devel/third-party/ckeditor/plugins/specialchar/lang/zh.js
new file mode 100644
index 0000000..dc3bd75
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/specialchar/lang/zh.js
@@ -0,0 +1,9 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'specialchar', 'zh', {
+ options: 'Special Character Options', // MISSING
+ title: 'è«é¸æç¹æ®ç¬¦è',
+ toolbar: 'æå
¥ç¹æ®ç¬¦è'
+});
diff --git a/devel/third-party/ckeditor/plugins/specialchar/plugin.js b/devel/third-party/ckeditor/plugins/specialchar/plugin.js
index e6b02a7..3aa620f 100644
--- a/devel/third-party/ckeditor/plugins/specialchar/plugin.js
+++ b/devel/third-party/ckeditor/plugins/specialchar/plugin.js
@@ -1,29 +1,69 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Special Character plugin
+ * @fileOverview Special Character plugin
*/
-CKEDITOR.plugins.add( 'specialchar',
-{
- init : function( editor )
- {
- var pluginName = 'specialchar';
+CKEDITOR.plugins.add( 'specialchar', {
+ // List of available localizations.
+ availableLangs: { ca:1,cs:1,cy:1,de:1,en:1,eo:1,et:1,fa:1,fi:1,fr:1,he:1,hr:1,it:1,ku:1,lv:1,nb:1,nl:1,no:1,'pt-br':1,sk:1,sv:1,tr:1,ug:1,'zh-cn':1 },
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ requires: 'dialog',
+ icons: 'specialchar', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ var pluginName = 'specialchar',
+ plugin = this;
// Register the dialog.
CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' );
- // Register the command.
- editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
+ editor.addCommand( pluginName, {
+ exec: function() {
+ var langCode = editor.langCode;
+ langCode =
+ plugin.availableLangs[ langCode ] ? langCode :
+ plugin.availableLangs[ langCode.replace( /-.*/, '' ) ] ? langCode.replace( /-.*/, '' ) :
+ 'en';
+
+ CKEDITOR.scriptLoader.load( CKEDITOR.getUrl( plugin.path + 'dialogs/lang/' + langCode + '.js' ), function() {
+ CKEDITOR.tools.extend( editor.lang.specialchar, plugin.langEntries[ langCode ] );
+ editor.openDialog( pluginName );
+ });
+ },
+ modes: { wysiwyg:1 },
+ canUndo: false
+ });
// Register the toolbar button.
- editor.ui.addButton( 'SpecialChar',
- {
- label : editor.lang.specialChar.toolbar,
- command : pluginName
- });
+ editor.ui.addButton && editor.ui.addButton( 'SpecialChar', {
+ label: editor.lang.specialchar.toolbar,
+ command: pluginName,
+ toolbar: 'insert,50'
+ });
}
-} );
+});
+
+/**
+ * The list of special characters visible in the "Special Character" dialog window.
+ *
+ * config.specialChars = [ '"', '’', [ '&custom;', 'Custom label' ] ];
+ * config.specialChars = config.specialChars.concat( [ '"', [ '’', 'Custom label' ] ] );
+ *
+ * @cfg
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.specialChars = [
+ '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', '-', '.', '/',
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';',
+ '<', '=', '>', '?', '@',
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
+ 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
+ '[', ']', '^', '_', '`',
+ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+ 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+ '{', '|', '}', '~',
+ "€", "‘", "’", "“", "”", "–", "—", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "®", "¯", "°", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ
;", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ŵ", "Ŷ", "ŵ", "ŷ", "‚", "‛", "„", "…", "™", "►", "•", "→", "⇒", "⇔", "♦", "≈"
+];
diff --git a/devel/third-party/ckeditor/plugins/styles/plugin.js b/devel/third-party/ckeditor/plugins/styles/plugin.js
deleted file mode 100644
index 8bab79d..0000000
--- a/devel/third-party/ckeditor/plugins/styles/plugin.js
+++ /dev/null
@@ -1,1445 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'styles',
-{
- requires : [ 'selection' ]
-});
-
-/**
- * Registers a function to be called whenever a style changes its state in the
- * editing area. The current state is passed to the function. The possible
- * states are {@link CKEDITOR.TRISTATE_ON} and {@link CKEDITOR.TRISTATE_OFF}.
- * @param {CKEDITOR.style} The style to be watched.
- * @param {Function} The function to be called when the style state changes.
- * @example
- * // Create a style object for the <b> element.
- * var style = new CKEDITOR.style( { element : 'b' } );
- * var editor = CKEDITOR.instances.editor1;
- * editor.attachStyleStateChange( style, function( state )
- * {
- * if ( state == CKEDITOR.TRISTATE_ON )
- * alert( 'The current state for the B element is ON' );
- * else
- * alert( 'The current state for the B element is OFF' );
- * });
- */
-CKEDITOR.editor.prototype.attachStyleStateChange = function( style, callback )
-{
- // Try to get the list of attached callbacks.
- var styleStateChangeCallbacks = this._.styleStateChangeCallbacks;
-
- // If it doesn't exist, it means this is the first call. So, let's create
- // all the structure to manage the style checks and the callback calls.
- if ( !styleStateChangeCallbacks )
- {
- // Create the callbacks array.
- styleStateChangeCallbacks = this._.styleStateChangeCallbacks = [];
-
- // Attach to the selectionChange event, so we can check the styles at
- // that point.
- this.on( 'selectionChange', function( ev )
- {
- // Loop throw all registered callbacks.
- for ( var i = 0 ; i < styleStateChangeCallbacks.length ; i++ )
- {
- var callback = styleStateChangeCallbacks[ i ];
-
- // Check the current state for the style defined for that
- // callback.
- var currentState = callback.style.checkActive( ev.data.path ) ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF;
-
- // If the state changed since the last check.
- if ( callback.state !== currentState )
- {
- // Call the callback function, passing the current
- // state to it.
- callback.fn.call( this, currentState );
-
- // Save the current state, so it can be compared next
- // time.
- callback.state = currentState;
- }
- }
- });
- }
-
- // Save the callback info, so it can be checked on the next occurrence of
- // selectionChange.
- styleStateChangeCallbacks.push( { style : style, fn : callback } );
-};
-
-CKEDITOR.STYLE_BLOCK = 1;
-CKEDITOR.STYLE_INLINE = 2;
-CKEDITOR.STYLE_OBJECT = 3;
-
-(function()
-{
- var blockElements = { address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 };
- var objectElements = { a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1};
-
- var semicolonFixRegex = /\s*(?:;\s*|$)/;
-
- CKEDITOR.style = function( styleDefinition, variablesValues )
- {
- if ( variablesValues )
- {
- styleDefinition = CKEDITOR.tools.clone( styleDefinition );
-
- replaceVariables( styleDefinition.attributes, variablesValues );
- replaceVariables( styleDefinition.styles, variablesValues );
- }
-
- var element = this.element = ( styleDefinition.element || '*' ).toLowerCase();
-
- this.type =
- ( element == '#' || blockElements[ element ] ) ?
- CKEDITOR.STYLE_BLOCK
- : objectElements[ element ] ?
- CKEDITOR.STYLE_OBJECT
- :
- CKEDITOR.STYLE_INLINE;
-
- this._ =
- {
- definition : styleDefinition
- };
- };
-
- CKEDITOR.style.prototype =
- {
- apply : function( document )
- {
- applyStyle.call( this, document, false );
- },
-
- remove : function( document )
- {
- applyStyle.call( this, document, true );
- },
-
- applyToRange : function( range )
- {
- return ( this.applyToRange =
- this.type == CKEDITOR.STYLE_INLINE ?
- applyInlineStyle
- : this.type == CKEDITOR.STYLE_BLOCK ?
- applyBlockStyle
- : this.type == CKEDITOR.STYLE_OBJECT ?
- applyObjectStyle
- : null ).call( this, range );
- },
-
- removeFromRange : function( range )
- {
- return ( this.removeFromRange =
- this.type == CKEDITOR.STYLE_INLINE ?
- removeInlineStyle
- : this.type == CKEDITOR.STYLE_OBJECT ?
- removeObjectStyle
- : null ).call( this, range );
- },
-
- applyToObject : function( element )
- {
- setupElement( element, this );
- },
-
- /**
- * Get the style state inside an element path. Returns "true" if the
- * element is active in the path.
- */
- checkActive : function( elementPath )
- {
- switch ( this.type )
- {
- case CKEDITOR.STYLE_BLOCK :
- return this.checkElementRemovable( elementPath.block || elementPath.blockLimit, true );
-
- case CKEDITOR.STYLE_OBJECT :
- case CKEDITOR.STYLE_INLINE :
-
- var elements = elementPath.elements;
-
- for ( var i = 0, element ; i < elements.length ; i++ )
- {
- element = elements[ i ];
-
- if ( this.type == CKEDITOR.STYLE_INLINE
- && ( element == elementPath.block || element == elementPath.blockLimit ) )
- continue;
-
- if( this.type == CKEDITOR.STYLE_OBJECT
- && !( element.getName() in objectElements ) )
- continue;
-
- if ( this.checkElementRemovable( element, true ) )
- return true;
- }
- }
- return false;
- },
-
- /**
- * Whether this style can be applied at the element path.
- * @param elementPath
- */
- checkApplicable : function( elementPath )
- {
- switch ( this.type )
- {
- case CKEDITOR.STYLE_INLINE :
- case CKEDITOR.STYLE_BLOCK :
- break;
-
- case CKEDITOR.STYLE_OBJECT :
- return elementPath.lastElement.getAscendant( this.element, true );
- }
-
- return true;
- },
-
- // Checks if an element, or any of its attributes, is removable by the
- // current style definition.
- checkElementRemovable : function( element, fullMatch )
- {
- if ( !element )
- return false;
-
- var def = this._.definition,
- attribs;
-
- // If the element name is the same as the style name.
- if ( element.getName() == this.element )
- {
- // If no attributes are defined in the element.
- if ( !fullMatch && !element.hasAttributes() )
- return true;
-
- attribs = getAttributesForComparison( def );
-
- if ( attribs._length )
- {
- for ( var attName in attribs )
- {
- if ( attName == '_length' )
- continue;
-
- var elementAttr = element.getAttribute( attName ) || '';
-
- // Special treatment for 'style' attribute is required.
- if ( attName == 'style' ?
- compareCssText( attribs[ attName ], normalizeCssText( elementAttr, false ) )
- : attribs[ attName ] == elementAttr )
- {
- if ( !fullMatch )
- return true;
- }
- else if ( fullMatch )
- return false;
- }
- if ( fullMatch )
- return true;
- }
- else
- return true;
- }
-
- // Check if the element can be somehow overriden.
- var override = getOverrides( this )[ element.getName() ] ;
- if ( override )
- {
- // If no attributes have been defined, remove the element.
- if ( !( attribs = override.attributes ) )
- return true;
-
- for ( var i = 0 ; i < attribs.length ; i++ )
- {
- attName = attribs[i][0];
- var actualAttrValue = element.getAttribute( attName );
- if ( actualAttrValue )
- {
- var attValue = attribs[i][1];
-
- // Remove the attribute if:
- // - The override definition value is null;
- // - The override definition value is a string that
- // matches the attribute value exactly.
- // - The override definition value is a regex that
- // has matches in the attribute value.
- if ( attValue === null ||
- ( typeof attValue == 'string' && actualAttrValue == attValue ) ||
- attValue.test( actualAttrValue ) )
- return true;
- }
- }
- }
- return false;
- },
-
- // Builds the preview HTML based on the styles definition.
- buildPreview : function()
- {
- var styleDefinition = this._.definition,
- html = [],
- elementName = styleDefinition.element;
-
- // Avoid <bdo> in the preview.
- if ( elementName == 'bdo' )
- elementName = 'span';
-
- html = [ '<', elementName ];
-
- // Assign all defined attributes.
- var attribs = styleDefinition.attributes;
- if ( attribs )
- {
- for ( var att in attribs )
- {
- html.push( ' ', att, '="', attribs[ att ], '"' );
- }
- }
-
- // Assign the style attribute.
- var cssStyle = CKEDITOR.style.getStyleText( styleDefinition );
- if ( cssStyle )
- html.push( ' style="', cssStyle, '"' );
-
- html.push( '>', styleDefinition.name, '</', elementName, '>' );
-
- return html.join( '' );
- }
- };
-
- // Build the cssText based on the styles definition.
- CKEDITOR.style.getStyleText = function( styleDefinition )
- {
- // If we have already computed it, just return it.
- var stylesDef = styleDefinition._ST;
- if ( stylesDef )
- return stylesDef;
-
- stylesDef = styleDefinition.styles;
-
- // Builds the StyleText.
- var stylesText = ( styleDefinition.attributes && styleDefinition.attributes[ 'style' ] ) || '',
- specialStylesText = '';
-
- if ( stylesText.length )
- stylesText = stylesText.replace( semicolonFixRegex, ';' );
-
- for ( var style in stylesDef )
- {
- var styleVal = stylesDef[ style ],
- text = ( style + ':' + styleVal ).replace( semicolonFixRegex, ';' );
-
- // Some browsers don't support 'inherit' property value, leave them intact. (#5242)
- if ( styleVal == 'inherit' )
- specialStylesText += text;
- else
- stylesText += text;
- }
-
- // Browsers make some changes to the style when applying them. So, here
- // we normalize it to the browser format.
- if ( stylesText.length )
- stylesText = normalizeCssText( stylesText );
-
- stylesText += specialStylesText;
-
- // Return it, saving it to the next request.
- return ( styleDefinition._ST = stylesText );
- };
-
- function applyInlineStyle( range )
- {
- var document = range.document;
-
- if ( range.collapsed )
- {
- // Create the element to be inserted in the DOM.
- var collapsedElement = getElement( this, document );
-
- // Insert the empty element into the DOM at the range position.
- range.insertNode( collapsedElement );
-
- // Place the selection right inside the empty element.
- range.moveToPosition( collapsedElement, CKEDITOR.POSITION_BEFORE_END );
-
- return;
- }
-
- var elementName = this.element;
- var def = this._.definition;
- var isUnknownElement;
-
- // Get the DTD definition for the element. Defaults to "span".
- var dtd = CKEDITOR.dtd[ elementName ] || ( isUnknownElement = true, CKEDITOR.dtd.span );
-
- // Expand the range.
- range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
- range.trim();
-
- // Get the first node to be processed and the last, which concludes the
- // processing.
- var boundaryNodes = range.createBookmark(),
- firstNode = boundaryNodes.startNode,
- lastNode = boundaryNodes.endNode;
-
- var currentNode = firstNode;
-
- var styleRange;
-
- while ( currentNode )
- {
- var applyStyle = false;
-
- if ( currentNode.equals( lastNode ) )
- {
- currentNode = null;
- applyStyle = true;
- }
- else
- {
- var nodeType = currentNode.type;
- var nodeName = nodeType == CKEDITOR.NODE_ELEMENT ? currentNode.getName() : null;
-
- if ( nodeName && currentNode.getAttribute( '_cke_bookmark' ) )
- {
- currentNode = currentNode.getNextSourceNode( true );
- continue;
- }
-
- // Check if the current node can be a child of the style element.
- if ( !nodeName || ( dtd[ nodeName ]
- && ( currentNode.getPosition( lastNode ) | CKEDITOR.POSITION_PRECEDING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED ) == ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IDENTICAL + CKEDITOR.POSITION_IS_CONTAINED )
- && ( !def.childRule || def.childRule( currentNode ) ) ) )
- {
- var currentParent = currentNode.getParent();
-
- // Check if the style element can be a child of the current
- // node parent or if the element is not defined in the DTD.
- if ( currentParent
- && ( ( currentParent.getDtd() || CKEDITOR.dtd.span )[ elementName ] || isUnknownElement )
- && ( !def.parentRule || def.parentRule( currentParent ) ) )
- {
- // This node will be part of our range, so if it has not
- // been started, place its start right before the node.
- // In the case of an element node, it will be included
- // only if it is entirely inside the range.
- if ( !styleRange && ( !nodeName || !CKEDITOR.dtd.$removeEmpty[ nodeName ] || ( currentNode.getPosition( lastNode ) | CKEDITOR.POSITION_PRECEDING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED ) == ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IDENTICAL + CKEDITOR.POSITION_IS_CONTAINED ) ) )
- {
- styleRange = new CKEDITOR.dom.range( document );
- styleRange.setStartBefore( currentNode );
- }
-
- // Non element nodes, or empty elements can be added
- // completely to the range.
- if ( nodeType == CKEDITOR.NODE_TEXT || ( nodeType == CKEDITOR.NODE_ELEMENT && !currentNode.getChildCount() ) )
- {
- var includedNode = currentNode;
- var parentNode;
-
- // This node is about to be included completelly, but,
- // if this is the last node in its parent, we must also
- // check if the parent itself can be added completelly
- // to the range.
- while ( !includedNode.$.nextSibling
- && ( parentNode = includedNode.getParent(), dtd[ parentNode.getName() ] )
- && ( parentNode.getPosition( firstNode ) | CKEDITOR.POSITION_FOLLOWING | CKEDITOR.POSITION_IDENTICAL | CKEDITOR.POSITION_IS_CONTAINED ) == ( CKEDITOR.POSITION_FOLLOWING + CKEDITOR.POSITION_IDENTICAL + CKEDITOR.POSITION_IS_CONTAINED )
- && ( !def.childRule || def.childRule( parentNode ) ) )
- {
- includedNode = parentNode;
- }
-
- styleRange.setEndAfter( includedNode );
-
- // If the included node still is the last node in its
- // parent, it means that the parent can't be included
- // in this style DTD, so apply the style immediately.
- if ( !includedNode.$.nextSibling )
- applyStyle = true;
-
- }
- }
- else
- applyStyle = true;
- }
- else
- applyStyle = true;
-
- // Get the next node to be processed.
- currentNode = currentNode.getNextSourceNode();
- }
-
- // Apply the style if we have something to which apply it.
- if ( applyStyle && styleRange && !styleRange.collapsed )
- {
- // Build the style element, based on the style object definition.
- var styleNode = getElement( this, document );
-
- // Get the element that holds the entire range.
- var parent = styleRange.getCommonAncestor();
-
- // Loop through the parents, removing the redundant attributes
- // from the element to be applied.
- while ( styleNode && parent )
- {
- if ( parent.getName() == elementName )
- {
- for ( var attName in def.attributes )
- {
- if ( styleNode.getAttribute( attName ) == parent.getAttribute( attName ) )
- styleNode.removeAttribute( attName );
- }
-
- for ( var styleName in def.styles )
- {
- if ( styleNode.getStyle( styleName ) == parent.getStyle( styleName ) )
- styleNode.removeStyle( styleName );
- }
-
- if ( !styleNode.hasAttributes() )
- {
- styleNode = null;
- break;
- }
- }
-
- parent = parent.getParent();
- }
-
- if ( styleNode )
- {
- // Move the contents of the range to the style element.
- styleRange.extractContents().appendTo( styleNode );
-
- // Here we do some cleanup, removing all duplicated
- // elements from the style element.
- removeFromInsideElement( this, styleNode );
-
- // Insert it into the range position (it is collapsed after
- // extractContents.
- styleRange.insertNode( styleNode );
-
- // Let's merge our new style with its neighbors, if possible.
- styleNode.mergeSiblings();
-
- // As the style system breaks text nodes constantly, let's normalize
- // things for performance.
- // With IE, some paragraphs get broken when calling normalize()
- // repeatedly. Also, for IE, we must normalize body, not documentElement.
- // IE is also known for having a "crash effect" with normalize().
- // We should try to normalize with IE too in some way, somewhere.
- if ( !CKEDITOR.env.ie )
- styleNode.$.normalize();
- }
-
- // Style applied, let's release the range, so it gets
- // re-initialization in the next loop.
- styleRange = null;
- }
- }
-
- // Remove the bookmark nodes.
- range.moveToBookmark( boundaryNodes );
-
- // Minimize the result range to exclude empty text nodes. (#5374)
- range.shrink( CKEDITOR.SHRINK_TEXT );
- }
-
- function removeInlineStyle( range )
- {
- /*
- * Make sure our range has included all "collpased" parent inline nodes so
- * that our operation logic can be simpler.
- */
- range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
-
- var bookmark = range.createBookmark(),
- startNode = bookmark.startNode;
-
- if ( range.collapsed )
- {
-
- var startPath = new CKEDITOR.dom.elementPath( startNode.getParent() ),
- // The topmost element in elementspatch which we should jump out of.
- boundaryElement;
-
-
- for ( var i = 0, element ; i < startPath.elements.length
- && ( element = startPath.elements[i] ) ; i++ )
- {
- /*
- * 1. If it's collaped inside text nodes, try to remove the style from the whole element.
- *
- * 2. Otherwise if it's collapsed on element boundaries, moving the selection
- * outside the styles instead of removing the whole tag,
- * also make sure other inner styles were well preserverd.(#3309)
- */
- if ( element == startPath.block || element == startPath.blockLimit )
- break;
-
- if ( this.checkElementRemovable( element ) )
- {
- var isStart;
-
- if ( range.collapsed && (
- range.checkBoundaryOfElement( element, CKEDITOR.END ) ||
- ( isStart = range.checkBoundaryOfElement( element, CKEDITOR.START ) ) ) )
- {
- boundaryElement = element;
- boundaryElement.match = isStart ? 'start' : 'end';
- }
- else
- {
- /*
- * Before removing the style node, there may be a sibling to the style node
- * that's exactly the same to the one to be removed. To the user, it makes
- * no difference that they're separate entities in the DOM tree. So, merge
- * them before removal.
- */
- element.mergeSiblings();
- removeFromElement( this, element );
-
- }
- }
- }
-
- // Re-create the style tree after/before the boundary element,
- // the replication start from bookmark start node to define the
- // new range.
- if ( boundaryElement )
- {
- var clonedElement = startNode;
- for ( i = 0 ;; i++ )
- {
- var newElement = startPath.elements[ i ];
- if ( newElement.equals( boundaryElement ) )
- break;
- // Avoid copying any matched element.
- else if ( newElement.match )
- continue;
- else
- newElement = newElement.clone();
- newElement.append( clonedElement );
- clonedElement = newElement;
- }
- clonedElement[ boundaryElement.match == 'start' ?
- 'insertBefore' : 'insertAfter' ]( boundaryElement );
- }
- }
- else
- {
- /*
- * Now our range isn't collapsed. Lets walk from the start node to the end
- * node via DFS and remove the styles one-by-one.
- */
- var endNode = bookmark.endNode,
- me = this;
-
- /*
- * Find out the style ancestor that needs to be broken down at startNode
- * and endNode.
- */
- function breakNodes()
- {
- var startPath = new CKEDITOR.dom.elementPath( startNode.getParent() ),
- endPath = new CKEDITOR.dom.elementPath( endNode.getParent() ),
- breakStart = null,
- breakEnd = null;
- for ( var i = 0 ; i < startPath.elements.length ; i++ )
- {
- var element = startPath.elements[ i ];
-
- if ( element == startPath.block || element == startPath.blockLimit )
- break;
-
- if ( me.checkElementRemovable( element ) )
- breakStart = element;
- }
- for ( i = 0 ; i < endPath.elements.length ; i++ )
- {
- element = endPath.elements[ i ];
-
- if ( element == endPath.block || element == endPath.blockLimit )
- break;
-
- if ( me.checkElementRemovable( element ) )
- breakEnd = element;
- }
-
- if ( breakEnd )
- endNode.breakParent( breakEnd );
- if ( breakStart )
- startNode.breakParent( breakStart );
- }
- breakNodes();
-
- // Now, do the DFS walk.
- var currentNode = startNode.getNext();
- while ( !currentNode.equals( endNode ) )
- {
- /*
- * Need to get the next node first because removeFromElement() can remove
- * the current node from DOM tree.
- */
- var nextNode = currentNode.getNextSourceNode();
- if ( currentNode.type == CKEDITOR.NODE_ELEMENT && this.checkElementRemovable( currentNode ) )
- {
- // Remove style from element or overriding element.
- if ( currentNode.getName() == this.element )
- removeFromElement( this, currentNode );
- else
- removeOverrides( currentNode, getOverrides( this )[ currentNode.getName() ] );
-
- /*
- * removeFromElement() may have merged the next node with something before
- * the startNode via mergeSiblings(). In that case, the nextNode would
- * contain startNode and we'll have to call breakNodes() again and also
- * reassign the nextNode to something after startNode.
- */
- if ( nextNode.type == CKEDITOR.NODE_ELEMENT && nextNode.contains( startNode ) )
- {
- breakNodes();
- nextNode = startNode.getNext();
- }
- }
- currentNode = nextNode;
- }
- }
-
- range.moveToBookmark( bookmark );
-}
-
- function applyObjectStyle( range )
- {
- var root = range.getCommonAncestor( true, true ),
- element = root.getAscendant( this.element, true );
- element && setupElement( element, this );
- }
-
- function removeObjectStyle( range )
- {
- var root = range.getCommonAncestor( true, true ),
- element = root.getAscendant( this.element, true );
-
- if ( !element )
- return;
-
- var style = this;
- var def = style._.definition;
- var attributes = def.attributes;
- var styles = CKEDITOR.style.getStyleText( def );
-
- // Remove all defined attributes.
- if ( attributes )
- {
- for ( var att in attributes )
- {
- element.removeAttribute( att, attributes[ att ] );
- }
- }
-
- // Assign all defined styles.
- if ( def.styles )
- {
- for ( var i in def.styles )
- {
- if ( !def.styles.hasOwnProperty( i ) )
- continue;
-
- element.removeStyle( i );
- }
- }
- }
-
- function applyBlockStyle( range )
- {
- // Serializible bookmarks is needed here since
- // elements may be merged.
- var bookmark = range.createBookmark( true );
-
- var iterator = range.createIterator();
- iterator.enforceRealBlocks = true;
-
- // make recognize <br /> tag as a separator in ENTER_BR mode (#5121)
- if ( this._.enterMode )
- iterator.enlargeBr = ( this._.enterMode != CKEDITOR.ENTER_BR );
-
- var block;
- var doc = range.document;
- var previousPreBlock;
-
- while ( ( block = iterator.getNextParagraph() ) ) // Only one =
- {
- var newBlock = getElement( this, doc );
- replaceBlock( block, newBlock );
- }
-
- range.moveToBookmark( bookmark );
- }
-
- // Replace the original block with new one, with special treatment
- // for <pre> blocks to make sure content format is well preserved, and merging/splitting adjacent
- // when necessary.(#3188)
- function replaceBlock( block, newBlock )
- {
- var newBlockIsPre = newBlock.is( 'pre' );
- var blockIsPre = block.is( 'pre' );
-
- var isToPre = newBlockIsPre && !blockIsPre;
- var isFromPre = !newBlockIsPre && blockIsPre;
-
- if ( isToPre )
- newBlock = toPre( block, newBlock );
- else if ( isFromPre )
- // Split big <pre> into pieces before start to convert.
- newBlock = fromPres( splitIntoPres( block ), newBlock );
- else
- block.moveChildren( newBlock );
-
- newBlock.replace( block );
-
- if ( newBlockIsPre )
- {
- // Merge previous <pre> blocks.
- mergePre( newBlock );
- }
- }
-
- var nonWhitespaces = CKEDITOR.dom.walker.whitespaces( true );
- /**
- * Merge a <pre> block with a previous sibling if available.
- */
- function mergePre( preBlock )
- {
- var previousBlock;
- if ( !( ( previousBlock = preBlock.getPrevious( nonWhitespaces ) )
- && previousBlock.is
- && previousBlock.is( 'pre') ) )
- return;
-
- // Merge the previous <pre> block contents into the current <pre>
- // block.
- //
- // Another thing to be careful here is that currentBlock might contain
- // a '\n' at the beginning, and previousBlock might contain a '\n'
- // towards the end. These new lines are not normally displayed but they
- // become visible after merging.
- var mergedHtml = replace( previousBlock.getHtml(), /\n$/, '' ) + '\n\n' +
- replace( preBlock.getHtml(), /^\n/, '' ) ;
-
- // Krugle: IE normalizes innerHTML from <pre>, breaking whitespaces.
- if ( CKEDITOR.env.ie )
- preBlock.$.outerHTML = '<pre>' + mergedHtml + '</pre>';
- else
- preBlock.setHtml( mergedHtml );
-
- previousBlock.remove();
- }
-
- /**
- * Split into multiple <pre> blocks separated by double line-break.
- * @param preBlock
- */
- function splitIntoPres( preBlock )
- {
- // Exclude the ones at header OR at tail,
- // and ignore bookmark content between them.
- var duoBrRegex = /(\S\s*)\n(?:\s|(<span[^>]+_cke_bookmark.*?\/span>))*\n(?!$)/gi,
- blockName = preBlock.getName(),
- splitedHtml = replace( preBlock.getOuterHtml(),
- duoBrRegex,
- function( match, charBefore, bookmark )
- {
- return charBefore + '</pre>' + bookmark + '<pre>';
- } );
-
- var pres = [];
- splitedHtml.replace( /<pre\b.*?>([\s\S]*?)<\/pre>/gi, function( match, preContent ){
- pres.push( preContent );
- } );
- return pres;
- }
-
- // Wrapper function of String::replace without considering of head/tail bookmarks nodes.
- function replace( str, regexp, replacement )
- {
- var headBookmark = '',
- tailBookmark = '';
-
- str = str.replace( /(^<span[^>]+_cke_bookmark.*?\/span>)|(<span[^>]+_cke_bookmark.*?\/span>$)/gi,
- function( str, m1, m2 ){
- m1 && ( headBookmark = m1 );
- m2 && ( tailBookmark = m2 );
- return '';
- } );
- return headBookmark + str.replace( regexp, replacement ) + tailBookmark;
- }
- /**
- * Converting a list of <pre> into blocks with format well preserved.
- */
- function fromPres( preHtmls, newBlock )
- {
- var docFrag = new CKEDITOR.dom.documentFragment( newBlock.getDocument() );
- for ( var i = 0 ; i < preHtmls.length ; i++ )
- {
- var blockHtml = preHtmls[ i ];
-
- // 1. Trim the first and last line-breaks immediately after and before <pre>,
- // they're not visible.
- blockHtml = blockHtml.replace( /(\r\n|\r)/g, '\n' ) ;
- blockHtml = replace( blockHtml, /^[ \t]*\n/, '' ) ;
- blockHtml = replace( blockHtml, /\n$/, '' ) ;
- // 2. Convert spaces or tabs at the beginning or at the end to
- blockHtml = replace( blockHtml, /^[ \t]+|[ \t]+$/g, function( match, offset, s )
- {
- if ( match.length == 1 ) // one space, preserve it
- return ' ' ;
- else if ( !offset ) // beginning of block
- return CKEDITOR.tools.repeat( ' ', match.length - 1 ) + ' ';
- else // end of block
- return ' ' + CKEDITOR.tools.repeat( ' ', match.length - 1 );
- } ) ;
-
- // 3. Convert \n to <BR>.
- // 4. Convert contiguous (i.e. non-singular) spaces or tabs to
- blockHtml = blockHtml.replace( /\n/g, '<br>' ) ;
- blockHtml = blockHtml.replace( /[ \t]{2,}/g,
- function ( match )
- {
- return CKEDITOR.tools.repeat( ' ', match.length - 1 ) + ' ' ;
- } ) ;
-
- var newBlockClone = newBlock.clone();
- newBlockClone.setHtml( blockHtml );
- docFrag.append( newBlockClone );
- }
- return docFrag;
- }
-
- /**
- * Converting from a non-PRE block to a PRE block in formatting operations.
- */
- function toPre( block, newBlock )
- {
- // First trim the block content.
- var preHtml = block.getHtml();
-
- // 1. Trim head/tail spaces, they're not visible.
- preHtml = replace( preHtml, /(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, '' );
- // 2. Delete ANSI whitespaces immediately before and after <BR> because
- // they are not visible.
- preHtml = preHtml.replace( /[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi, '$1' );
- // 3. Compress other ANSI whitespaces since they're only visible as one
- // single space previously.
- // 4. Convert to spaces since is no longer needed in <PRE>.
- preHtml = preHtml.replace( /([ \t\n\r]+| )/g, ' ' );
- // 5. Convert any <BR /> to \n. This must not be done earlier because
- // the \n would then get compressed.
- preHtml = preHtml.replace( /<br\b[^>]*>/gi, '\n' );
-
- // Krugle: IE normalizes innerHTML to <pre>, breaking whitespaces.
- if ( CKEDITOR.env.ie )
- {
- var temp = block.getDocument().createElement( 'div' );
- temp.append( newBlock );
- newBlock.$.outerHTML = '<pre>' + preHtml + '</pre>';
- newBlock = temp.getFirst().remove();
- }
- else
- newBlock.setHtml( preHtml );
-
- return newBlock;
- }
-
- // Removes a style from an element itself, don't care about its subtree.
- function removeFromElement( style, element )
- {
- var def = style._.definition,
- attributes = CKEDITOR.tools.extend( {}, def.attributes, getOverrides( style )[ element.getName() ] ),
- styles = def.styles,
- // If the style is only about the element itself, we have to remove the element.
- removeEmpty = CKEDITOR.tools.isEmpty( attributes ) && CKEDITOR.tools.isEmpty( styles );
-
- // Remove definition attributes/style from the elemnt.
- for ( var attName in attributes )
- {
- // The 'class' element value must match (#1318).
- if ( ( attName == 'class' || style._.definition.fullMatch )
- && element.getAttribute( attName ) != normalizeProperty( attName, attributes[ attName ] ) )
- continue;
- removeEmpty = element.hasAttribute( attName );
- element.removeAttribute( attName );
- }
-
- for ( var styleName in styles )
- {
- // Full match style insist on having fully equivalence. (#5018)
- if ( style._.definition.fullMatch
- && element.getStyle( styleName ) != normalizeProperty( styleName, styles[ styleName ], true ) )
- continue;
-
- removeEmpty = removeEmpty || !!element.getStyle( styleName );
- element.removeStyle( styleName );
- }
-
- removeEmpty && removeNoAttribsElement( element );
- }
-
- // Removes a style from inside an element.
- function removeFromInsideElement( style, element )
- {
- var def = style._.definition,
- attribs = def.attributes,
- styles = def.styles,
- overrides = getOverrides( style );
-
- var innerElements = element.getElementsByTag( style.element );
-
- for ( var i = innerElements.count(); --i >= 0 ; )
- removeFromElement( style, innerElements.getItem( i ) );
-
- // Now remove any other element with different name that is
- // defined to be overriden.
- for ( var overrideElement in overrides )
- {
- if ( overrideElement != style.element )
- {
- innerElements = element.getElementsByTag( overrideElement ) ;
- for ( i = innerElements.count() - 1 ; i >= 0 ; i-- )
- {
- var innerElement = innerElements.getItem( i );
- removeOverrides( innerElement, overrides[ overrideElement ] ) ;
- }
- }
- }
-
- }
-
- /**
- * Remove overriding styles/attributes from the specific element.
- * Note: Remove the element if no attributes remain.
- * @param {Object} element
- * @param {Object} overrides
- */
- function removeOverrides( element, overrides )
- {
- var attributes = overrides && overrides.attributes ;
-
- if ( attributes )
- {
- for ( var i = 0 ; i < attributes.length ; i++ )
- {
- var attName = attributes[i][0], actualAttrValue ;
-
- if ( ( actualAttrValue = element.getAttribute( attName ) ) )
- {
- var attValue = attributes[i][1] ;
-
- // Remove the attribute if:
- // - The override definition value is null ;
- // - The override definition valie is a string that
- // matches the attribute value exactly.
- // - The override definition value is a regex that
- // has matches in the attribute value.
- if ( attValue === null ||
- ( attValue.test && attValue.test( actualAttrValue ) ) ||
- ( typeof attValue == 'string' && actualAttrValue == attValue ) )
- element.removeAttribute( attName ) ;
- }
- }
- }
-
- removeNoAttribsElement( element );
- }
-
- // If the element has no more attributes, remove it.
- function removeNoAttribsElement( element )
- {
- // If no more attributes remained in the element, remove it,
- // leaving its children.
- if ( !element.hasAttributes() )
- {
- // Removing elements may open points where merging is possible,
- // so let's cache the first and last nodes for later checking.
- var firstChild = element.getFirst();
- var lastChild = element.getLast();
-
- element.remove( true );
-
- if ( firstChild )
- {
- // Check the cached nodes for merging.
- firstChild.type == CKEDITOR.NODE_ELEMENT && firstChild.mergeSiblings();
-
- if ( lastChild && !firstChild.equals( lastChild )
- && lastChild.type == CKEDITOR.NODE_ELEMENT )
- lastChild.mergeSiblings();
- }
- }
- }
-
- function getElement( style, targetDocument )
- {
- var el;
-
- var def = style._.definition;
-
- var elementName = style.element;
-
- // The "*" element name will always be a span for this function.
- if ( elementName == '*' )
- elementName = 'span';
-
- // Create the element.
- el = new CKEDITOR.dom.element( elementName, targetDocument );
-
- return setupElement( el, style );
- }
-
- function setupElement( el, style )
- {
- var def = style._.definition;
- var attributes = def.attributes;
- var styles = CKEDITOR.style.getStyleText( def );
-
- // Assign all defined attributes.
- if ( attributes )
- {
- for ( var att in attributes )
- {
- el.setAttribute( att, attributes[ att ] );
- }
- }
-
- // Assign all defined styles.
- if ( def.styles )
- {
- for ( var i in def.styles )
- {
- if ( !def.styles.hasOwnProperty( i ) )
- continue;
-
- el.setStyle( i, def.styles[ i ] );
- }
- }
-
- return el;
- }
-
- var varRegex = /#\((.+?)\)/g;
- function replaceVariables( list, variablesValues )
- {
- for ( var item in list )
- {
- list[ item ] = list[ item ].replace( varRegex, function( match, varName )
- {
- return variablesValues[ varName ];
- });
- }
- }
-
-
- // Returns an object that can be used for style matching comparison.
- // Attributes names and values are all lowercased, and the styles get
- // merged with the style attribute.
- function getAttributesForComparison( styleDefinition )
- {
- // If we have already computed it, just return it.
- var attribs = styleDefinition._AC;
- if ( attribs )
- return attribs;
-
- attribs = {};
-
- var length = 0;
-
- // Loop through all defined attributes.
- var styleAttribs = styleDefinition.attributes;
- if ( styleAttribs )
- {
- for ( var styleAtt in styleAttribs )
- {
- length++;
- attribs[ styleAtt ] = styleAttribs[ styleAtt ];
- }
- }
-
- // Includes the style definitions.
- var styleText = CKEDITOR.style.getStyleText( styleDefinition );
- if ( styleText )
- {
- if ( !attribs[ 'style' ] )
- length++;
- attribs[ 'style' ] = styleText;
- }
-
- // Appends the "length" information to the object.
- attribs._length = length;
-
- // Return it, saving it to the next request.
- return ( styleDefinition._AC = attribs );
- }
-
- /**
- * Get the the collection used to compare the elements and attributes,
- * defined in this style overrides, with other element. All information in
- * it is lowercased.
- * @param {CKEDITOR.style} style
- */
- function getOverrides( style )
- {
- if ( style._.overrides )
- return style._.overrides;
-
- var overrides = ( style._.overrides = {} ),
- definition = style._.definition.overrides;
-
- if ( definition )
- {
- // The override description can be a string, object or array.
- // Internally, well handle arrays only, so transform it if needed.
- if ( !CKEDITOR.tools.isArray( definition ) )
- definition = [ definition ];
-
- // Loop through all override definitions.
- for ( var i = 0 ; i < definition.length ; i++ )
- {
- var override = definition[i];
- var elementName;
- var overrideEl;
- var attrs;
-
- // If can be a string with the element name.
- if ( typeof override == 'string' )
- elementName = override.toLowerCase();
- // Or an object.
- else
- {
- elementName = override.element ? override.element.toLowerCase() : style.element;
- attrs = override.attributes;
- }
-
- // We can have more than one override definition for the same
- // element name, so we attempt to simply append information to
- // it if it already exists.
- overrideEl = overrides[ elementName ] || ( overrides[ elementName ] = {} );
-
- if ( attrs )
- {
- // The returning attributes list is an array, because we
- // could have different override definitions for the same
- // attribute name.
- var overrideAttrs = ( overrideEl.attributes = overrideEl.attributes || new Array() );
- for ( var attName in attrs )
- {
- // Each item in the attributes array is also an array,
- // where [0] is the attribute name and [1] is the
- // override value.
- overrideAttrs.push( [ attName.toLowerCase(), attrs[ attName ] ] );
- }
- }
- }
- }
-
- return overrides;
- }
-
- // Make the comparison of attribute value easier by standardizing it.
- function normalizeProperty( name, value, isStyle )
- {
- var temp = new CKEDITOR.dom.element( 'span' );
- temp [ isStyle ? 'setStyle' : 'setAttribute' ]( name, value );
- return temp[ isStyle ? 'getStyle' : 'getAttribute' ]( name );
- }
-
- // Make the comparison of style text easier by standardizing it.
- function normalizeCssText( unparsedCssText, nativeNormalize )
- {
- var styleText;
- if ( nativeNormalize !== false )
- {
- // Injects the style in a temporary span object, so the browser parses it,
- // retrieving its final format.
- var temp = new CKEDITOR.dom.element( 'span' );
- temp.setAttribute( 'style', unparsedCssText );
- styleText = temp.getAttribute( 'style' ) || '';
- }
- else
- styleText = unparsedCssText;
-
- // Shrinking white-spaces around colon and semi-colon (#4147).
- // Compensate tail semi-colon.
- return styleText.replace( /\s*([;:])\s*/, '$1' )
- .replace( /([^\s;])$/, '$1;')
- .replace( /,\s+/g, ',' ) // Trimming spaces after comma (e.g. font-family name)(#4107).
- .toLowerCase();
- }
-
- // Turn inline style text properties into one hash.
- function parseStyleText( styleText )
- {
- var retval = {};
- styleText
- .replace( /"/g, '"' )
- .replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value )
- {
- retval[ name ] = value;
- } );
- return retval;
- }
-
- /**
- * Compare two bunch of styles, with the speciality that value 'inherit'
- * is treated as a wildcard which will match any value.
- * @param {Object|String} source
- * @param {Object|String} target
- */
- function compareCssText( source, target )
- {
- typeof source == 'string' && ( source = parseStyleText( source ) );
- typeof target == 'string' && ( target = parseStyleText( target ) );
- for( var name in source )
- {
- if ( !( name in target &&
- ( target[ name ] == source[ name ]
- || source[ name ] == 'inherit'
- || target[ name ] == 'inherit' ) ) )
- {
- return false;
- }
- }
- return true;
- }
-
- function applyStyle( document, remove )
- {
- var selection = document.getSelection(),
- // Bookmark the range so we can re-select it after processing.
- bookmarks = selection.createBookmarks(),
- ranges = selection.getRanges( true ),
- func = remove ? this.removeFromRange : this.applyToRange,
- range;
-
- var iterator = ranges.createIterator();
- while ( ( range = iterator.getNextRange() ) )
- func.call( this, range );
-
- if ( bookmarks.length == 1 && bookmarks[0].collapsed )
- {
- selection.selectRanges( ranges );
- bookmarks[0].startNode.remove();
- }
- else
- selection.selectBookmarks( bookmarks );
- }
-})();
-
-CKEDITOR.styleCommand = function( style )
-{
- this.style = style;
-};
-
-CKEDITOR.styleCommand.prototype.exec = function( editor )
-{
- editor.focus();
-
- var doc = editor.document;
-
- if ( doc )
- {
- if ( this.state == CKEDITOR.TRISTATE_OFF )
- this.style.apply( doc );
- else if ( this.state == CKEDITOR.TRISTATE_ON )
- this.style.remove( doc );
- }
-
- return !!doc;
-};
-
-CKEDITOR.stylesSet = new CKEDITOR.resourceManager( '', 'stylesSet' );
-
-// Backward compatibility (#5025).
-CKEDITOR.addStylesSet = CKEDITOR.tools.bind( CKEDITOR.stylesSet.add, CKEDITOR.stylesSet );
-CKEDITOR.loadStylesSet = function( name, url, callback )
- {
- CKEDITOR.stylesSet.addExternal( name, url, '' );
- CKEDITOR.stylesSet.load( name, callback );
- };
-
-
-/**
- * Gets the current styleSet for this instance
- * @param {Function} The function to be called with the styles data.
- * @example
- * editor.getStylesSet( function( stylesDefinitions ) {} );
- */
-CKEDITOR.editor.prototype.getStylesSet = function( callback )
-{
- if ( !this._.stylesDefinitions )
- {
- var editor = this,
- // Respect the backwards compatible definition entry
- configStyleSet = editor.config.stylesCombo_stylesSet || editor.config.stylesSet || 'default';
-
- // #5352 Allow to define the styles directly in the config object
- if ( configStyleSet instanceof Array )
- {
- editor._.stylesDefinitions = configStyleSet;
- callback( configStyleSet );
- return;
- }
-
- var partsStylesSet = configStyleSet.split( ':' ),
- styleSetName = partsStylesSet[ 0 ],
- externalPath = partsStylesSet[ 1 ],
- pluginPath = CKEDITOR.plugins.registered.styles.path;
-
- CKEDITOR.stylesSet.addExternal( styleSetName,
- externalPath ?
- partsStylesSet.slice( 1 ).join( ':' ) :
- pluginPath + 'styles/' + styleSetName + '.js', '' );
-
- CKEDITOR.stylesSet.load( styleSetName, function( stylesSet )
- {
- editor._.stylesDefinitions = stylesSet[ styleSetName ];
- callback( editor._.stylesDefinitions );
- } ) ;
- }
- else
- callback( this._.stylesDefinitions );
-};
-
-/**
- * The "styles definition set" to use in the editor. They will be used in the
- * styles combo and the Style selector of the div container. <br>
- * The styles may be defined in the page containing the editor, or can be
- * loaded on demand from an external file. In the second case, if this setting
- * contains only a name, the styles definition file will be loaded from the
- * "styles" folder inside the styles plugin folder.
- * Otherwise, this setting has the "name:url" syntax, making it
- * possible to set the URL from which loading the styles file.<br>
- * Previously this setting was available as config.stylesCombo_stylesSet<br>
- * @name CKEDITOR.config.stylesSet
- * @type String|Array
- * @default 'default'
- * @since 3.3
- * @example
- * // Load from the styles' styles folder (mystyles.js file).
- * config.stylesSet = 'mystyles';
- * @example
- * // Load from a relative URL.
- * config.stylesSet = 'mystyles:/editorstyles/styles.js';
- * @example
- * // Load from a full URL.
- * config.stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js';
- * @example
- * // Load from a list of definitions.
- * config.stylesSet = [
- * { name : 'Strong Emphasis', element : 'strong' },
- * { name : 'Emphasis', element : 'em' }, ... ];
- */
diff --git a/devel/third-party/ckeditor/plugins/styles/styles/default.js b/devel/third-party/ckeditor/plugins/styles/styles/default.js
deleted file mode 100644
index c5fd85f..0000000
--- a/devel/third-party/ckeditor/plugins/styles/styles/default.js
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.stylesSet.add( 'default',
-[
- /* Block Styles */
-
- // These styles are already available in the "Format" combo, so they are
- // not needed here by default. You may enable them to avoid placing the
- // "Format" combo in the toolbar, maintaining the same features.
- /*
- { name : 'Paragraph' , element : 'p' },
- { name : 'Heading 1' , element : 'h1' },
- { name : 'Heading 2' , element : 'h2' },
- { name : 'Heading 3' , element : 'h3' },
- { name : 'Heading 4' , element : 'h4' },
- { name : 'Heading 5' , element : 'h5' },
- { name : 'Heading 6' , element : 'h6' },
- { name : 'Preformatted Text', element : 'pre' },
- { name : 'Address' , element : 'address' },
- */
-
- { name : 'Blue Title' , element : 'h3', styles : { 'color' : 'Blue' } },
- { name : 'Red Title' , element : 'h3', styles : { 'color' : 'Red' } },
-
- /* Inline Styles */
-
- // These are core styles available as toolbar buttons. You may opt enabling
- // some of them in the Styles combo, removing them from the toolbar.
- /*
- { name : 'Strong' , element : 'strong', overrides : 'b' },
- { name : 'Emphasis' , element : 'em' , overrides : 'i' },
- { name : 'Underline' , element : 'u' },
- { name : 'Strikethrough' , element : 'strike' },
- { name : 'Subscript' , element : 'sub' },
- { name : 'Superscript' , element : 'sup' },
- */
-
- { name : 'Marker: Yellow' , element : 'span', styles : { 'background-color' : 'Yellow' } },
- { name : 'Marker: Green' , element : 'span', styles : { 'background-color' : 'Lime' } },
-
- { name : 'Big' , element : 'big' },
- { name : 'Small' , element : 'small' },
- { name : 'Typewriter' , element : 'tt' },
-
- { name : 'Computer Code' , element : 'code' },
- { name : 'Keyboard Phrase' , element : 'kbd' },
- { name : 'Sample Text' , element : 'samp' },
- { name : 'Variable' , element : 'var' },
-
- { name : 'Deleted Text' , element : 'del' },
- { name : 'Inserted Text' , element : 'ins' },
-
- { name : 'Cited Work' , element : 'cite' },
- { name : 'Inline Quotation' , element : 'q' },
-
- { name : 'Language: RTL' , element : 'span', attributes : { 'dir' : 'rtl' } },
- { name : 'Language: LTR' , element : 'span', attributes : { 'dir' : 'ltr' } },
-
- /* Object Styles */
-
- {
- name : 'Image on Left',
- element : 'img',
- attributes :
- {
- 'style' : 'padding: 5px; margin-right: 5px',
- 'border' : '2',
- 'align' : 'left'
- }
- },
-
- {
- name : 'Image on Right',
- element : 'img',
- attributes :
- {
- 'style' : 'padding: 5px; margin-left: 5px',
- 'border' : '2',
- 'align' : 'right'
- }
- },
-
- { name : 'Borderless Table', element : 'table', styles: { 'border-style': 'hidden', 'background-color' : '#E6E6FA' } },
- { name : 'Square Bulleted List', element : 'ul', styles : { 'list-style-type' : 'square' } }
-]);
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/af.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/af.js
new file mode 100644
index 0000000..44bb8be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/af.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'af', {
+ label: 'Styl',
+ panelTitle: 'Opmaak style',
+ panelTitle1: 'Blok style',
+ panelTitle2: 'Inlyn style',
+ panelTitle3: 'Objek style'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ar.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ar.js
new file mode 100644
index 0000000..29a8656
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ar.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ar', {
+ label: 'Ø£ÙÙ
اط',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Ø£ÙÙ
اط اÙÙÙØ±Ø©',
+ panelTitle2: 'Ø£ÙÙ
اط Ù
ضÙ
ÙØ©',
+ panelTitle3: 'Ø£ÙÙ
اط اÙÙØ§Ø¦Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/bg.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/bg.js
new file mode 100644
index 0000000..bdecd07
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/bg.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'bg', {
+ label: 'СÑилове',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/bn.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/bn.js
new file mode 100644
index 0000000..1370b6c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/bn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'bn', {
+ label: 'সà§à¦à¦¾à¦à¦²',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/bs.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/bs.js
new file mode 100644
index 0000000..5154e08
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/bs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'bs', {
+ label: 'Stil',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ca.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ca.js
new file mode 100644
index 0000000..c344c5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ca', {
+ label: 'Estil',
+ panelTitle: 'Estils de format',
+ panelTitle1: 'Estils de bloc',
+ panelTitle2: 'Estils incrustats',
+ panelTitle3: 'Estils d\'objecte'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/cs.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/cs.js
new file mode 100644
index 0000000..d322e9e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/cs.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'cs', {
+ label: 'Styl',
+ panelTitle: 'Formátovacà styly',
+ panelTitle1: 'Blokové styly',
+ panelTitle2: 'Åádkové styly',
+ panelTitle3: 'Objektové styly'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/cy.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/cy.js
new file mode 100644
index 0000000..5da6f28
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/cy.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'cy', {
+ label: 'Arddulliau',
+ panelTitle: 'Arddulliau Fformatio',
+ panelTitle1: 'Arddulliau Bloc',
+ panelTitle2: 'Arddulliau Mewnol',
+ panelTitle3: 'Arddulliau Gwrthrych'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/da.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/da.js
new file mode 100644
index 0000000..241d70c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/da.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'da', {
+ label: 'Typografi',
+ panelTitle: 'Formattering på stylesheet',
+ panelTitle1: 'Block typografi',
+ panelTitle2: 'Inline typografi',
+ panelTitle3: 'Object typografi'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/de.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/de.js
new file mode 100644
index 0000000..b1dd628
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/de.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'de', {
+ label: 'Stil',
+ panelTitle: 'Formatierungenstil',
+ panelTitle1: 'Block Stilart',
+ panelTitle2: 'Inline Stilart',
+ panelTitle3: 'Objekt Stilart'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/el.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/el.js
new file mode 100644
index 0000000..d6caa19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/el.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'el', {
+ label: 'ÎοÏÏÎÏ',
+ panelTitle: 'ΣÏÏ
λ ÎοÏÏοÏοίηÏηÏ',
+ panelTitle1: 'ΣÏÏ
λ ÎομμαÏιÏν',
+ panelTitle2: 'ΣÏÏ
λ Îν ΣειÏά',
+ panelTitle3: 'ΣÏÏ
λ ÎνÏικειμÎνÏν'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/en-au.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/en-au.js
new file mode 100644
index 0000000..a9e4f44
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/en-au.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'en-au', {
+ label: 'Styles',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles',
+ panelTitle2: 'Inline Styles',
+ panelTitle3: 'Object Styles'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/en-ca.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/en-ca.js
new file mode 100644
index 0000000..7c0f51c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/en-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'en-ca', {
+ label: 'Styles',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles',
+ panelTitle2: 'Inline Styles',
+ panelTitle3: 'Object Styles'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/en-gb.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/en-gb.js
new file mode 100644
index 0000000..2084c15
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/en-gb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'en-gb', {
+ label: 'Styles',
+ panelTitle: 'Formatting Styles',
+ panelTitle1: 'Block Styles',
+ panelTitle2: 'Inline Styles',
+ panelTitle3: 'Object Styles'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/en.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/en.js
new file mode 100644
index 0000000..751353f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/en.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'en', {
+ label: 'Styles',
+ panelTitle: 'Formatting Styles',
+ panelTitle1: 'Block Styles',
+ panelTitle2: 'Inline Styles',
+ panelTitle3: 'Object Styles'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/eo.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/eo.js
new file mode 100644
index 0000000..8697b19
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/eo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'eo', {
+ label: 'Stiloj',
+ panelTitle: 'Stiloj pri enpaÄigo',
+ panelTitle1: 'Stiloj de blokoj',
+ panelTitle2: 'Enliniaj Stiloj',
+ panelTitle3: 'Stiloj de objektoj'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/es.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/es.js
new file mode 100644
index 0000000..feffa14
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/es.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'es', {
+ label: 'Estilo',
+ panelTitle: 'Estilos para formatear',
+ panelTitle1: 'Estilos de párrafo',
+ panelTitle2: 'Estilos de carácter',
+ panelTitle3: 'Estilos de objeto'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/et.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/et.js
new file mode 100644
index 0000000..74ad27e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/et.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'et', {
+ label: 'Stiil',
+ panelTitle: 'Vormindusstiilid',
+ panelTitle1: 'Blokkstiilid',
+ panelTitle2: 'Reasisesed stiilid',
+ panelTitle3: 'Objektistiilid'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/eu.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/eu.js
new file mode 100644
index 0000000..7db437b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/eu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'eu', {
+ label: 'Estiloa',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Bloke Estiloak',
+ panelTitle2: 'Inline Estiloak',
+ panelTitle3: 'Objektu Estiloak'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/fa.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/fa.js
new file mode 100644
index 0000000..16f83d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/fa.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'fa', {
+ label: 'سبک',
+ panelTitle: 'Ø³Ø¨Ú©ÙØ§Û ÙØ§ÙØ¨Ø¨ÙØ¯Û',
+ panelTitle1: 'Ø³Ø¨Ú©ÙØ§Û بÙÙÚ©',
+ panelTitle2: 'Ø³Ø¨Ú©ÙØ§Û درÙÙØ®Ø·Û',
+ panelTitle3: 'Ø³Ø¨Ú©ÙØ§Û Ø´ÛØ¡'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/fi.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/fi.js
new file mode 100644
index 0000000..fc439dd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/fi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'fi', {
+ label: 'Tyyli',
+ panelTitle: 'Muotoilujen tyylit',
+ panelTitle1: 'Lohkojen tyylit',
+ panelTitle2: 'Rivinsisäiset tyylit',
+ panelTitle3: 'Objektien tyylit'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/fo.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/fo.js
new file mode 100644
index 0000000..2bbcd90
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/fo.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'fo', {
+ label: 'Typografi',
+ panelTitle: 'Formatterings stÃlir',
+ panelTitle1: 'Blokk stÃlir',
+ panelTitle2: 'Inline stÃlir',
+ panelTitle3: 'Object stÃlir'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/fr-ca.js
new file mode 100644
index 0000000..e76021e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/fr-ca.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'fr-ca', {
+ label: 'Style',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/fr.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/fr.js
new file mode 100644
index 0000000..47239b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/fr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'fr', {
+ label: 'Styles',
+ panelTitle: 'Styles de mise en page',
+ panelTitle1: 'Styles de blocs',
+ panelTitle2: 'Styles en ligne',
+ panelTitle3: 'Styles d\'objet'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/gl.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/gl.js
new file mode 100644
index 0000000..c60d3c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/gl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'gl', {
+ label: 'Estilo',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/gu.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/gu.js
new file mode 100644
index 0000000..d632d97
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/gu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'gu', {
+ label: 'શà«àª²à«/રà«àª¤',
+ panelTitle: 'ફà«àª°à«àª®à«àª ',
+ panelTitle1: 'બà«àª²à«àª ',
+ panelTitle2: 'àªàª¨àª²àª¾àªàª¨ ',
+ panelTitle3: 'àªàª¬à«àªà«àªà«àª પદà«àª§àª¤àª¿'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/he.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/he.js
new file mode 100644
index 0000000..637a511
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/he.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'he', {
+ label: 'ס×× ××',
+ panelTitle: 'ס×× ×× ×ת פ×ר××',
+ panelTitle1: 'ס×× ×× ×ת ××××§',
+ panelTitle2: 'ס×× ×× ×ת רצף',
+ panelTitle3: 'ס×× ×× ×ת ××××××§×'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/hi.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/hi.js
new file mode 100644
index 0000000..4acc77f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/hi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'hi', {
+ label: 'सà¥à¤à¤¾à¤à¤²',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/hr.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/hr.js
new file mode 100644
index 0000000..3e24a8a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/hr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'hr', {
+ label: 'Stil',
+ panelTitle: 'Stilovi formatiranja',
+ panelTitle1: 'Block stilovi',
+ panelTitle2: 'Inline stilovi',
+ panelTitle3: 'Object stilovi'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/hu.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/hu.js
new file mode 100644
index 0000000..cc16621
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/hu.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'hu', {
+ label: 'StÃlus',
+ panelTitle: 'Formázási stÃlusok',
+ panelTitle1: 'Blokk stÃlusok',
+ panelTitle2: 'Inline stÃlusok',
+ panelTitle3: 'Objektum stÃlusok'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/is.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/is.js
new file mode 100644
index 0000000..c0d4f17
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/is.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'is', {
+ label: 'StÃlflokkur',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/it.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/it.js
new file mode 100644
index 0000000..0dc2675
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/it.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'it', {
+ label: 'Stile',
+ panelTitle: 'Stili di formattazione',
+ panelTitle1: 'Stili per blocchi',
+ panelTitle2: 'Stili in linea',
+ panelTitle3: 'Stili per oggetti'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ja.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ja.js
new file mode 100644
index 0000000..dfcced8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ja.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ja', {
+ label: 'ã¹ã¿ã¤ã«',
+ panelTitle: 'ã¹ã¿ã¤ã«',
+ panelTitle1: 'ãããã¯ã¹ã¿ã¤ã«',
+ panelTitle2: 'ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«',
+ panelTitle3: 'ãªãã¸ã§ã¯ãã¹ã¿ã¤ã«'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ka.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ka.js
new file mode 100644
index 0000000..8e30658
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ka.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ka', {
+ label: 'á¡á¢ááááá',
+ panelTitle: 'á¤áá ááá¢áá áááá¡ á¡á¢ááááá',
+ panelTitle1: 'áá áá¡ á¡á¢ááááá',
+ panelTitle2: 'áááááá áá£áá á¡á¢ááááá',
+ panelTitle3: 'ááááá¥á¢áá¡ á¡á¢ááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/km.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/km.js
new file mode 100644
index 0000000..03b0bab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/km.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'km', {
+ label: 'ááá¼á',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ko.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ko.js
new file mode 100644
index 0000000..cd25417
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ko.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ko', {
+ label: 'ì¤íì¼',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ku.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ku.js
new file mode 100644
index 0000000..7127af5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ku.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ku', {
+ label: 'Ø´ÛÙØ§Ø²',
+ panelTitle: 'Ø´ÛÙØ§Ø²Û ÚØ§Ø²Ø§ÙدÙÙÙÙ',
+ panelTitle1: 'Ø´ÛÙØ§Ø²Û خشت',
+ panelTitle2: 'Ø´ÛÙØ§Ø²Û ÙØ§ÙÙÛÚµ',
+ panelTitle3: 'Ø´ÛÙØ§Ø²Û Ø¨ÙØ±Ú©Ø§Ø±'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/lt.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/lt.js
new file mode 100644
index 0000000..cff95cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/lt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'lt', {
+ label: 'Stilius',
+ panelTitle: 'Stilių formatavimas',
+ panelTitle1: 'Blokų stiliai',
+ panelTitle2: 'Vidiniai stiliai',
+ panelTitle3: 'Objektų stiliai'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/lv.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/lv.js
new file mode 100644
index 0000000..bdf95e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/lv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'lv', {
+ label: 'Stils',
+ panelTitle: 'FormatÄÅ¡anas stili',
+ panelTitle1: 'Bloka stili',
+ panelTitle2: 'iekļautie stili',
+ panelTitle3: 'Objekta stili'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/mk.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/mk.js
new file mode 100644
index 0000000..dd2356a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/mk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'mk', {
+ label: 'Styles',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/mn.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/mn.js
new file mode 100644
index 0000000..7226f61
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/mn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'mn', {
+ label: 'ÐагваÑ',
+ panelTitle: 'ÐÐ°Ð³Ð²Ð°Ñ Ñ
ÑлбÑÑжүүлÑÑ
',
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ms.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ms.js
new file mode 100644
index 0000000..ec9a595
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ms.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ms', {
+ label: 'Stail',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/nb.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/nb.js
new file mode 100644
index 0000000..4d19396
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/nb.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'nb', {
+ label: 'Stil',
+ panelTitle: 'Stilformater',
+ panelTitle1: 'Blokkstiler',
+ panelTitle2: 'Inlinestiler',
+ panelTitle3: 'Objektstiler'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/nl.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/nl.js
new file mode 100644
index 0000000..8da663a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/nl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'nl', {
+ label: 'Stijl',
+ panelTitle: 'Opmaakstijlen',
+ panelTitle1: 'Blok stijlen',
+ panelTitle2: 'Inline stijlen',
+ panelTitle3: 'Object stijlen'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/no.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/no.js
new file mode 100644
index 0000000..7424a50
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/no.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'no', {
+ label: 'Stil',
+ panelTitle: 'Stilformater',
+ panelTitle1: 'Blokkstiler',
+ panelTitle2: 'Inlinestiler',
+ panelTitle3: 'Objektstiler'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/pl.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/pl.js
new file mode 100644
index 0000000..f69d23a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/pl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'pl', {
+ label: 'Styl',
+ panelTitle: 'Style formatujÄ
ce',
+ panelTitle1: 'Style blokowe',
+ panelTitle2: 'Style liniowe',
+ panelTitle3: 'Style obiektowe'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/pt-br.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/pt-br.js
new file mode 100644
index 0000000..e9b90a2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/pt-br.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'pt-br', {
+ label: 'Estilo',
+ panelTitle: 'Estilos de Formatação',
+ panelTitle1: 'Estilos de bloco',
+ panelTitle2: 'Estilos de texto corrido',
+ panelTitle3: 'Estilos de objeto'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/pt.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/pt.js
new file mode 100644
index 0000000..7310575
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/pt.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'pt', {
+ label: 'Estilo',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ro.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ro.js
new file mode 100644
index 0000000..50fc8a8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ro.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ro', {
+ label: 'Stil',
+ panelTitle: 'Formatarea stilurilor',
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ru.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ru.js
new file mode 100644
index 0000000..9a08794
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ru.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ru', {
+ label: 'СÑили',
+ panelTitle: 'СÑили ÑоÑмаÑиÑованиÑ',
+ panelTitle1: 'СÑили блока',
+ panelTitle2: 'СÑили ÑлеменÑа',
+ panelTitle3: 'СÑили обÑекÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/sk.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/sk.js
new file mode 100644
index 0000000..165e3d6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/sk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'sk', {
+ label: 'Štýly',
+ panelTitle: 'Formátovanie štýlov',
+ panelTitle1: 'Štýly bloku',
+ panelTitle2: 'Vnútroriadkové (inline) štýly',
+ panelTitle3: 'Štýly objeku'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/sl.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/sl.js
new file mode 100644
index 0000000..165b7c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/sl.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'sl', {
+ label: 'Slog',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Slogi odstavkov',
+ panelTitle2: 'Slogi besedila',
+ panelTitle3: 'Slogi objektov'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/sr-latn.js
new file mode 100644
index 0000000..138b0de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/sr-latn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'sr-latn', {
+ label: 'Stil',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/sr.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/sr.js
new file mode 100644
index 0000000..3877618
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/sr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'sr', {
+ label: 'СÑил',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/sv.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/sv.js
new file mode 100644
index 0000000..6dceb3d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/sv.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'sv', {
+ label: 'Anpassad stil',
+ panelTitle: 'Formatmallar',
+ panelTitle1: 'Blockstil',
+ panelTitle2: 'Inbäddad stil',
+ panelTitle3: 'Objektets stil'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/th.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/th.js
new file mode 100644
index 0000000..c7a79c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/th.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'th', {
+ label: 'ลัà¸à¸©à¸à¸°',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'Block Styles', // MISSING
+ panelTitle2: 'Inline Styles', // MISSING
+ panelTitle3: 'Object Styles' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/tr.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/tr.js
new file mode 100644
index 0000000..e617625
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/tr.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'tr', {
+ label: 'Biçem',
+ panelTitle: 'Stilleri Düzenliyor',
+ panelTitle1: 'Blok Stilleri',
+ panelTitle2: 'Inline Stilleri',
+ panelTitle3: 'Nesne Stilleri'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/ug.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/ug.js
new file mode 100644
index 0000000..cc56a5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/ug.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'ug', {
+ label: 'Ø¦ÛØ³ÙÛØ¨',
+ panelTitle: 'Ø¦ÛØ³ÙÛØ¨',
+ panelTitle1: 'بÛÙÛÙ Ø¯ÛØ±ÙØ¬ÙØ³ÙدÙÙ٠ئÛÙÛÙ
ÛÙØª Ø¦ÛØ³ÙÛØ¨Ù',
+ panelTitle2: 'ئÙÚÙÙ Ø¨Ø§ØºÙØ§ÙÙ
ا ئÛÙÛÙ
ÛÙØª Ø¦ÛØ³ÙÛØ¨Ù',
+ panelTitle3: 'ÙÛÚ (Object) ئÛÙÛÙ
ÛÙØª Ø¦ÛØ³ÙÛØ¨Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/uk.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/uk.js
new file mode 100644
index 0000000..4b79829
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/uk.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'uk', {
+ label: 'СÑилÑ',
+ panelTitle: 'СÑÐ¸Ð»Ñ ÑоÑмаÑÑваннÑ',
+ panelTitle1: 'ÐлоÑÐ½Ñ ÑÑилÑ',
+ panelTitle2: 'Ð ÑÐ´ÐºÐ¾Ð²Ñ ÑÑилÑ',
+ panelTitle3: 'Ðб\'ÑкÑÐ½Ñ ÑÑилÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/vi.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/vi.js
new file mode 100644
index 0000000..5ae6021
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/vi.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'vi', {
+ label: 'Kiá»u',
+ panelTitle: 'Phong cách Äá»nh dạng',
+ panelTitle1: 'Kiá»u khá»i',
+ panelTitle2: 'Kiá»u trá»±c tiếp',
+ panelTitle3: 'Kiá»u Äá»i tượng'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/zh-cn.js
new file mode 100644
index 0000000..5954d27
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/zh-cn.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'zh-cn', {
+ label: 'æ ·å¼',
+ panelTitle: 'æ ·å¼',
+ panelTitle1: 'å级å
ç´ æ ·å¼',
+ panelTitle2: 'å
èå
ç´ æ ·å¼',
+ panelTitle3: '对象å
ç´ æ ·å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/lang/zh.js b/devel/third-party/ckeditor/plugins/stylescombo/lang/zh.js
new file mode 100644
index 0000000..ae115d9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/stylescombo/lang/zh.js
@@ -0,0 +1,11 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'stylescombo', 'zh', {
+ label: '樣å¼',
+ panelTitle: 'Formatting Styles', // MISSING
+ panelTitle1: 'å¡ç´å
ç´ æ¨£å¼',
+ panelTitle2: 'å
§è¯å
ç´ æ¨£å¼',
+ panelTitle3: 'ç©ä»¶å
ç´ æ¨£å¼'
+});
diff --git a/devel/third-party/ckeditor/plugins/stylescombo/plugin.js b/devel/third-party/ckeditor/plugins/stylescombo/plugin.js
index f3ebfd5..bb9c578 100644
--- a/devel/third-party/ckeditor/plugins/stylescombo/plugin.js
+++ b/devel/third-party/ckeditor/plugins/stylescombo/plugin.js
@@ -1,35 +1,32 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- CKEDITOR.plugins.add( 'stylescombo',
- {
- requires : [ 'richcombo', 'styles' ],
-
- init : function( editor )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ CKEDITOR.plugins.add( 'stylescombo', {
+ requires: 'richcombo',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+
+ init: function( editor ) {
var config = editor.config,
- lang = editor.lang.stylesCombo,
+ lang = editor.lang.stylescombo,
styles = {},
- stylesList = [];
+ stylesList = [],
+ combo;
- function loadStylesSet( callback )
- {
- editor.getStylesSet( function( stylesDefinitions )
- {
- if ( !stylesList.length )
- {
- var style,
- styleName;
+ function loadStylesSet( callback ) {
+ editor.getStylesSet( function( stylesDefinitions ) {
+ if ( !stylesList.length ) {
+ var style, styleName;
// Put all styles into an Array.
- for ( var i = 0 ; i < stylesDefinitions.length ; i++ )
- {
+ for ( var i = 0, count = stylesDefinitions.length; i < count; i++ ) {
var styleDefinition = stylesDefinitions[ i ];
+ if ( editor.blockless && ( styleDefinition.element in CKEDITOR.dtd.$block ) )
+ continue;
+
styleName = styleDefinition.name;
style = styles[ styleName ] = new CKEDITOR.style( styleDefinition );
@@ -47,161 +44,143 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
});
}
- editor.ui.addRichCombo( 'Styles',
- {
- label : lang.label,
- title : lang.panelTitle,
- className : 'cke_styles',
-
- panel :
- {
- css : editor.skin.editor.css.concat( config.contentsCss ),
- multiSelect : true,
- attributes : { 'aria-label' : lang.panelTitle }
- },
-
- init : function()
- {
- var combo = this;
-
- loadStylesSet( function()
- {
- var style, styleName;
-
- // Loop over the Array, adding all items to the
- // combo.
- var lastType;
- for ( var i = 0 ; i < stylesList.length ; i++ )
- {
- style = stylesList[ i ];
- styleName = style._name;
-
- var type = style.type;
-
- if ( type != lastType )
- {
- combo.startGroup( lang[ 'panelTitle' + String( type ) ] );
- lastType = type;
- }
-
- combo.add(
- styleName,
- style.type == CKEDITOR.STYLE_OBJECT ? styleName : style.buildPreview(),
- styleName );
- }
+ editor.ui.addRichCombo( 'Styles', {
+ label: lang.label,
+ title: lang.panelTitle,
+ toolbar: 'styles,10',
+
+ panel: {
+ css: [ CKEDITOR.skin.getPath( 'editor' ) ].concat( config.contentsCss ),
+ multiSelect: true,
+ attributes: { 'aria-label': lang.panelTitle }
+ },
+
+ init: function() {
+ combo = this;
+
+ loadStylesSet( function() {
+ var style, styleName, lastType, type, i, count;
+
+ // Loop over the Array, adding all items to the
+ // combo.
+ for ( i = 0, count = stylesList.length; i < count; i++ ) {
+ style = stylesList[ i ];
+ styleName = style._name;
+ type = style.type;
+
+ if ( type != lastType ) {
+ combo.startGroup( lang[ 'panelTitle' + String( type ) ] );
+ lastType = type;
+ }
- combo.commit();
-
- combo.onOpen();
- });
- },
-
- onClick : function( value )
- {
- editor.focus();
- editor.fire( 'saveSnapshot' );
-
- var style = styles[ value ],
- selection = editor.getSelection();
-
- var elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );
-
- if ( style.type == CKEDITOR.STYLE_INLINE && style.checkActive( elementPath ) )
- style.remove( editor.document );
- else if ( style.type == CKEDITOR.STYLE_OBJECT && style.checkActive( elementPath ) )
- style.remove( editor.document );
- else
- style.apply( editor.document );
-
- editor.fire( 'saveSnapshot' );
- },
-
- onRender : function()
- {
- editor.on( 'selectionChange', function( ev )
- {
- var currentValue = this.getValue();
-
- var elementPath = ev.data.path,
- elements = elementPath.elements;
-
- // For each element into the elements path.
- for ( var i = 0, element ; i < elements.length ; i++ )
- {
- element = elements[i];
-
- // Check if the element is removable by any of
- // the styles.
- for ( var value in styles )
- {
- if ( styles[ value ].checkElementRemovable( element, true ) )
- {
- if ( value != currentValue )
- this.setValue( value );
- return;
- }
- }
- }
+ combo.add( styleName, style.type == CKEDITOR.STYLE_OBJECT ? styleName : style.buildPreview(), styleName );
+ }
- // If no styles match, just empty it.
- this.setValue( '' );
- },
- this);
- },
-
- onOpen : function()
- {
- if ( CKEDITOR.env.ie || CKEDITOR.env.webkit )
- editor.focus();
-
- var selection = editor.getSelection();
-
- var element = selection.getSelectedElement(),
- elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() );
-
- var counter = [ 0, 0, 0, 0 ];
- this.showAll();
- this.unmarkAll();
- for ( var name in styles )
- {
- var style = styles[ name ],
- type = style.type;
-
- if ( style.checkActive( elementPath ) )
- this.mark( name );
- else if ( type == CKEDITOR.STYLE_OBJECT && !style.checkApplicable( elementPath ) )
- {
- this.hideItem( name );
- counter[ type ]--;
- }
+ combo.commit();
+
+ });
+ },
+
+ onClick: function( value ) {
+ editor.focus();
+ editor.fire( 'saveSnapshot' );
+
+ var style = styles[ value ],
+ elementPath = editor.elementPath();
+
+ editor[ style.checkActive( elementPath ) ? 'removeStyle' : 'applyStyle' ]( style );
+ editor.fire( 'saveSnapshot' );
+ },
- counter[ type ]++;
+ onRender: function() {
+ editor.on( 'selectionChange', function( ev ) {
+ var currentValue = this.getValue(),
+ elementPath = ev.data.path,
+ elements = elementPath.elements;
+
+ // For each element into the elements path.
+ for ( var i = 0, count = elements.length, element; i < count; i++ ) {
+ element = elements[ i ];
+
+ // Check if the element is removable by any of
+ // the styles.
+ for ( var value in styles ) {
+ if ( styles[ value ].checkElementRemovable( element, true ) ) {
+ if ( value != currentValue )
+ this.setValue( value );
+ return;
+ }
+ }
}
- if ( !counter[ CKEDITOR.STYLE_BLOCK ] )
- this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_BLOCK ) ] );
+ // If no styles match, just empty it.
+ this.setValue( '' );
+ }, this );
+ },
+
+ onOpen: function() {
+ var selection = editor.getSelection(),
+ element = selection.getSelectedElement(),
+ elementPath = editor.elementPath( element ),
+ counter = [ 0, 0, 0, 0 ];
+
+ this.showAll();
+ this.unmarkAll();
+ for ( var name in styles ) {
+ var style = styles[ name ],
+ type = style.type;
+
+ // Check if block styles are applicable.
+ if ( type == CKEDITOR.STYLE_BLOCK && !elementPath.isContextFor( style.element ) ) {
+ this.hideItem( name );
+ continue;
+ }
- if ( !counter[ CKEDITOR.STYLE_INLINE ] )
- this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_INLINE ) ] );
+ if ( style.checkActive( elementPath ) )
+ this.mark( name );
+ else if ( type == CKEDITOR.STYLE_OBJECT && !style.checkApplicable( elementPath ) ) {
+ this.hideItem( name );
+ counter[ type ]--;
+ }
- if ( !counter[ CKEDITOR.STYLE_OBJECT ] )
- this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_OBJECT ) ] );
+ counter[ type ]++;
}
- });
- editor.on( 'instanceReady', function() { loadStylesSet(); } );
+ if ( !counter[ CKEDITOR.STYLE_BLOCK ] )
+ this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_BLOCK ) ] );
+
+ if ( !counter[ CKEDITOR.STYLE_INLINE ] )
+ this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_INLINE ) ] );
+
+ if ( !counter[ CKEDITOR.STYLE_OBJECT ] )
+ this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_OBJECT ) ] );
+ },
+
+ // Force a reload of the data
+ reset: function() {
+ if ( combo ) {
+ delete combo._.panel;
+ delete combo._.list;
+ combo._.committed = 0;
+ combo._.items = {};
+ combo._.state = CKEDITOR.TRISTATE_OFF;
+ }
+ styles = {};
+ stylesList = [];
+ loadStylesSet();
+ }
+ });
+
+ editor.on( 'instanceReady', function() {
+ loadStylesSet();
+ });
}
});
- function sortStyles( styleA, styleB )
- {
+ function sortStyles( styleA, styleB ) {
var typeA = styleA.type,
typeB = styleB.type;
- return typeA == typeB ? 0 :
- typeA == CKEDITOR.STYLE_OBJECT ? -1 :
- typeB == CKEDITOR.STYLE_OBJECT ? 1 :
- typeB == CKEDITOR.STYLE_BLOCK ? 1 :
- -1;
+ return typeA == typeB ? 0 : typeA == CKEDITOR.STYLE_OBJECT ? -1 : typeB == CKEDITOR.STYLE_OBJECT ? 1 : typeB == CKEDITOR.STYLE_BLOCK ? 1 : -1;
}
})();
diff --git a/devel/third-party/ckeditor/plugins/tab/plugin.js b/devel/third-party/ckeditor/plugins/tab/plugin.js
index f63cd5b..705efc2 100644
--- a/devel/third-party/ckeditor/plugins/tab/plugin.js
+++ b/devel/third-party/ckeditor/plugins/tab/plugin.js
@@ -1,110 +1,88 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var meta =
- {
- editorFocus : false,
- modes : { wysiwyg:1, source:1 }
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var meta = {
+ editorFocus: false,
+ modes: { wysiwyg:1,source:1 }
};
- var blurCommand =
- {
- exec : function( editor )
- {
- editor.container.focusNext( true, editor.tabIndex );
- }
- };
+ var blurCommand = {
+ exec: function( editor ) {
+ editor.container.focusNext( true, editor.tabIndex );
+ }
+ };
- var blurBackCommand =
- {
- exec : function( editor )
- {
- editor.container.focusPrevious( true, editor.tabIndex );
- }
- };
+ var blurBackCommand = {
+ exec: function( editor ) {
+ editor.container.focusPrevious( true, editor.tabIndex );
+ }
+ };
- function selectNextCellCommand( backward )
- {
+ function selectNextCellCommand( backward ) {
return {
- editorFocus : false,
- canUndo : false,
- modes : { wysiwyg : 1 },
- exec : function( editor )
- {
- if ( editor.focusManager.hasFocus )
- {
+ editorFocus: false,
+ canUndo: false,
+ modes: { wysiwyg:1 },
+ exec: function( editor ) {
+ if ( editor.editable().hasFocus ) {
var sel = editor.getSelection(),
- ancestor = sel.getCommonAncestor(),
- cell;
-
- if ( ( cell = ( ancestor.getAscendant( 'td', true ) || ancestor.getAscendant( 'th', true ) ) ) )
- {
- var resultRange = new CKEDITOR.dom.range( editor.document ),
- next = CKEDITOR.tools.tryThese( function()
- {
- var row = cell.getParent(),
- next = row.$.cells[ cell.$.cellIndex + ( backward ? - 1 : 1 ) ];
-
- // Invalid any empty value.
- next.parentNode.parentNode;
- return next;
- },
- function()
- {
- var row = cell.getParent(),
- table = row.getAscendant( 'table' ),
- nextRow = table.$.rows[ row.$.rowIndex + ( backward ? - 1 : 1 ) ];
-
- return nextRow.cells[ backward? nextRow.cells.length -1 : 0 ];
- });
+ path = new CKEDITOR.dom.elementPath( sel.getCommonAncestor(), sel.root ),
+ cell;
+
+ if ( ( cell = path.contains( { td:1,th:1 }, 1 ) ) ) {
+ var resultRange = editor.createRange(),
+ next = CKEDITOR.tools.tryThese( function() {
+ var row = cell.getParent(),
+ next = row.$.cells[ cell.$.cellIndex + ( backward ? -1 : 1 ) ];
+
+ // Invalid any empty value.
+ next.parentNode.parentNode;
+ return next;
+ }, function() {
+ var row = cell.getParent(),
+ table = row.getAscendant( 'table' ),
+ nextRow = table.$.rows[ row.$.rowIndex + ( backward ? -1 : 1 ) ];
+
+ return nextRow.cells[ backward ? nextRow.cells.length - 1 : 0 ];
+ });
// Clone one more row at the end of table and select the first newly established cell.
- if ( ! ( next || backward ) )
- {
+ if ( !( next || backward ) ) {
var table = cell.getAscendant( 'table' ).$,
- cells = cell.getParent().$.cells;
+ cells = cell.getParent().$.cells;
var newRow = new CKEDITOR.dom.element( table.insertRow( -1 ), editor.document );
- for ( var i = 0, count = cells.length ; i < count; i++ )
- {
- var newCell = newRow.append( new CKEDITOR.dom.element(
- cells[ i ], editor.document ).clone( false, false ) );
+ for ( var i = 0, count = cells.length; i < count; i++ ) {
+ var newCell = newRow.append( new CKEDITOR.dom.element( cells[ i ], editor.document ).clone( false, false ) );
!CKEDITOR.env.ie && newCell.appendBogus();
}
resultRange.moveToElementEditStart( newRow );
- }
- else if ( next )
- {
+ } else if ( next ) {
next = new CKEDITOR.dom.element( next );
resultRange.moveToElementEditStart( next );
// Avoid selecting empty block makes the cursor blind.
if ( !( resultRange.checkStartOfBlock() && resultRange.checkEndOfBlock() ) )
resultRange.selectNodeContents( next );
- }
- else
+ } else
return true;
resultRange.select( true );
return true;
}
}
+
return false;
}
};
}
- CKEDITOR.plugins.add( 'tab',
- {
- requires : [ 'keystrokes' ],
-
- init : function( editor )
- {
+ CKEDITOR.plugins.add( 'tab', {
+ init: function( editor ) {
var tabTools = editor.config.enableTabKeyTools !== false,
tabSpaces = editor.config.tabSpaces || 0,
tabText = '';
@@ -112,46 +90,22 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
while ( tabSpaces-- )
tabText += '\xa0';
- if ( tabText )
- {
- editor.on( 'key', function( ev )
+ if ( tabText ) {
+ editor.on( 'key', function( ev ) {
+ if ( ev.data.keyCode == 9 ) // TAB
{
- if ( ev.data.keyCode == 9 ) // TAB
- {
- editor.insertHtml( tabText );
- ev.cancel();
- }
- });
- }
-
- if ( tabTools )
- {
- editor.on( 'key', function( ev )
- {
- if ( ev.data.keyCode == 9 && editor.execCommand( 'selectNextCell' ) || // TAB
- ev.data.keyCode == ( CKEDITOR.SHIFT + 9 ) && editor.execCommand( 'selectPreviousCell' ) ) // SHIFT+TAB
+ editor.insertHtml( tabText );
ev.cancel();
+ }
});
}
- if ( CKEDITOR.env.webkit || CKEDITOR.env.gecko )
- {
- editor.on( 'key', function( ev )
- {
- var keyCode = ev.data.keyCode;
-
- if ( keyCode == 9 && !tabText ) // TAB
- {
- ev.cancel();
- editor.execCommand( 'blur' );
- }
-
- if ( keyCode == ( CKEDITOR.SHIFT + 9 ) ) // SHIFT+TAB
- {
- editor.execCommand( 'blurBack' );
- ev.cancel();
- }
- });
+ if ( tabTools ) {
+ editor.on( 'key', function( ev ) {
+ if ( ev.data.keyCode == 9 && editor.execCommand( 'selectNextCell' ) || // TAB
+ ev.data.keyCode == ( CKEDITOR.SHIFT + 9 ) && editor.execCommand( 'selectPreviousCell' ) ) // SHIFT+TAB
+ ev.cancel();
+ });
}
editor.addCommand( 'blur', CKEDITOR.tools.extend( blurCommand, meta ) );
@@ -163,40 +117,35 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
})();
/**
- * Moves the UI focus to the element following this element in the tabindex
- * order.
- * @example
- * var element = CKEDITOR.document.getById( 'example' );
- * element.focusNext();
+ * Moves the UI focus to the element following this element in the tabindex order.
+ *
+ * var element = CKEDITOR.document.getById( 'example' );
+ * element.focusNext();
+ *
+ * @param {Boolean} [ignoreChildren=false]
+ * @param {Number} [indexToUse]
+ * @member CKEDITOR.dom.element
*/
-CKEDITOR.dom.element.prototype.focusNext = function( ignoreChildren, indexToUse )
-{
+CKEDITOR.dom.element.prototype.focusNext = function( ignoreChildren, indexToUse ) {
var $ = this.$,
curTabIndex = ( indexToUse === undefined ? this.getTabIndex() : indexToUse ),
- passedCurrent, enteredCurrent,
- elected, electedTabIndex,
- element, elementTabIndex;
+ passedCurrent, enteredCurrent, elected, electedTabIndex, element, elementTabIndex;
- if ( curTabIndex <= 0 )
- {
+ if ( curTabIndex <= 0 ) {
// If this element has tabindex <= 0 then we must simply look for any
// element following it containing tabindex=0.
element = this.getNextSourceNode( ignoreChildren, CKEDITOR.NODE_ELEMENT );
- while ( element )
- {
- if ( element.isVisible() && element.getTabIndex() === 0 )
- {
+ while ( element ) {
+ if ( element.isVisible() && element.getTabIndex() === 0 ) {
elected = element;
break;
}
element = element.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT );
}
- }
- else
- {
+ } else {
// If this element has tabindex > 0 then we must look for:
// 1. An element following this element with the same tabindex.
// 2. The first element in source other with the lowest tabindex
@@ -205,42 +154,33 @@ CKEDITOR.dom.element.prototype.focusNext = function( ignoreChildren, indexToUse
element = this.getDocument().getBody().getFirst();
- while ( ( element = element.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT ) ) )
- {
- if ( !passedCurrent )
- {
- if ( !enteredCurrent && element.equals( this ) )
- {
+ while ( ( element = element.getNextSourceNode( false, CKEDITOR.NODE_ELEMENT ) ) ) {
+ if ( !passedCurrent ) {
+ if ( !enteredCurrent && element.equals( this ) ) {
enteredCurrent = true;
// Ignore this element, if required.
- if ( ignoreChildren )
- {
+ if ( ignoreChildren ) {
if ( !( element = element.getNextSourceNode( true, CKEDITOR.NODE_ELEMENT ) ) )
break;
passedCurrent = 1;
}
- }
- else if ( enteredCurrent && !this.contains( element ) )
+ } else if ( enteredCurrent && !this.contains( element ) )
passedCurrent = 1;
}
if ( !element.isVisible() || ( elementTabIndex = element.getTabIndex() ) < 0 )
continue;
- if ( passedCurrent && elementTabIndex == curTabIndex )
- {
+ if ( passedCurrent && elementTabIndex == curTabIndex ) {
elected = element;
break;
}
- if ( elementTabIndex > curTabIndex && ( !elected || !electedTabIndex || elementTabIndex < electedTabIndex ) )
- {
+ if ( elementTabIndex > curTabIndex && ( !elected || !electedTabIndex || elementTabIndex < electedTabIndex ) ) {
elected = element;
electedTabIndex = elementTabIndex;
- }
- else if ( !elected && elementTabIndex === 0 )
- {
+ } else if ( !elected && elementTabIndex === 0 ) {
elected = element;
electedTabIndex = elementTabIndex;
}
@@ -253,77 +193,67 @@ CKEDITOR.dom.element.prototype.focusNext = function( ignoreChildren, indexToUse
/**
* Moves the UI focus to the element before this element in the tabindex order.
- * @example
- * var element = CKEDITOR.document.getById( 'example' );
- * element.focusPrevious();
+ *
+ * var element = CKEDITOR.document.getById( 'example' );
+ * element.focusPrevious();
+ *
+ * @param {Boolean} [ignoreChildren=false]
+ * @param {Number} [indexToUse]
+ * @member CKEDITOR.dom.element
*/
-CKEDITOR.dom.element.prototype.focusPrevious = function( ignoreChildren, indexToUse )
-{
+CKEDITOR.dom.element.prototype.focusPrevious = function( ignoreChildren, indexToUse ) {
var $ = this.$,
curTabIndex = ( indexToUse === undefined ? this.getTabIndex() : indexToUse ),
- passedCurrent, enteredCurrent,
- elected,
+ passedCurrent, enteredCurrent, elected,
electedTabIndex = 0,
elementTabIndex;
var element = this.getDocument().getBody().getLast();
- while ( ( element = element.getPreviousSourceNode( false, CKEDITOR.NODE_ELEMENT ) ) )
- {
- if ( !passedCurrent )
- {
- if ( !enteredCurrent && element.equals( this ) )
- {
+ while ( ( element = element.getPreviousSourceNode( false, CKEDITOR.NODE_ELEMENT ) ) ) {
+ if ( !passedCurrent ) {
+ if ( !enteredCurrent && element.equals( this ) ) {
enteredCurrent = true;
// Ignore this element, if required.
- if ( ignoreChildren )
- {
+ if ( ignoreChildren ) {
if ( !( element = element.getPreviousSourceNode( true, CKEDITOR.NODE_ELEMENT ) ) )
break;
passedCurrent = 1;
}
- }
- else if ( enteredCurrent && !this.contains( element ) )
+ } else if ( enteredCurrent && !this.contains( element ) )
passedCurrent = 1;
}
if ( !element.isVisible() || ( elementTabIndex = element.getTabIndex() ) < 0 )
continue;
- if ( curTabIndex <= 0 )
- {
+ if ( curTabIndex <= 0 ) {
// If this element has tabindex <= 0 then we must look for:
// 1. An element before this one containing tabindex=0.
// 2. The last element with the highest tabindex.
- if ( passedCurrent && elementTabIndex === 0 )
- {
+ if ( passedCurrent && elementTabIndex === 0 ) {
elected = element;
break;
}
- if ( elementTabIndex > electedTabIndex )
- {
+ if ( elementTabIndex > electedTabIndex ) {
elected = element;
electedTabIndex = elementTabIndex;
}
- }
- else
- {
+ } else {
// If this element has tabindex > 0 we must look for:
// 1. An element preceeding this one, with the same tabindex.
// 2. The last element in source other with the highest tabindex
// that is lower than this element tabindex.
- if ( passedCurrent && elementTabIndex == curTabIndex )
- {
+ if ( passedCurrent && elementTabIndex == curTabIndex ) {
elected = element;
break;
}
- if ( elementTabIndex < curTabIndex && ( !elected || elementTabIndex > electedTabIndex ) )
- {
+ if ( elementTabIndex < curTabIndex && ( !elected || elementTabIndex > electedTabIndex ) ) {
elected = element;
electedTabIndex = elementTabIndex;
}
@@ -335,28 +265,32 @@ CKEDITOR.dom.element.prototype.focusPrevious = function( ignoreChildren, indexTo
};
/**
- * Intructs the editor to add a number of spaces ( ) to the text when
- * hitting the TAB key. If set to zero, the TAB key will be used to move the
+ * Intructs the editor to add a number of spaces (` `) to the text when
+ * hitting the *TAB* key. If set to zero, the *TAB* key will be used to move the
* cursor focus to the next element in the page, out of the editor focus.
- * @name CKEDITOR.config.tabSpaces
- * @type Number
- * @default 0
- * @example
- * config.tabSpaces = 4;
+ *
+ * config.tabSpaces = 4;
+ *
+ * @cfg {Number} [tabSpaces=0]
+ * @member CKEDITOR.config
*/
/**
* Allow context-sensitive tab key behaviors, including the following scenarios:
- * <h5>When selection is anchored inside <b>table cells</b>:</h5>
- * <ul>
- * <li>If TAB is pressed, select the contents of the "next" cell. If in the last cell in the table, add a new row to it and focus its first cell.</li>
- * <li>If SHIFT+TAB is pressed, select the contents of the "previous" cell. Do nothing when it's in the first cell.</li>
- * </ul>
- * @name CKEDITOR.config.enableTabKeyTools
- * @type Boolean
- * @default true
- * @example
- * config.enableTabKeyTools = false;
+ *
+ * When selection is anchored inside **table cells**:
+ *
+ * * If *TAB* is pressed, select the contents of the "next" cell. If in the last
+ * cell in the table, add a new row to it and focus its first cell.
+ * * If *SHIFT+TAB* is pressed, select the contents of the "previous" cell.
+ * Do nothing when it's in the first cell.
+ *
+ * Example:
+ *
+ * config.enableTabKeyTools = false;
+ *
+ * @cfg {Boolean} [enableTabKeyTools=true]
+ * @member CKEDITOR.config
*/
// If the TAB key is not supposed to be enabled for navigation, the following
diff --git a/devel/third-party/ckeditor/plugins/table/dialogs/table.js b/devel/third-party/ckeditor/plugins/table/dialogs/table.js
index c6f8a05..54d8ccf 100644
--- a/devel/third-party/ckeditor/plugins/table/dialogs/table.js
+++ b/devel/third-party/ckeditor/plugins/table/dialogs/table.js
@@ -1,110 +1,120 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,
- heightPattern = /^(\d+(?:\.\d+)?)px$/;
-
- var commitValue = function( data )
- {
- var id = this.id;
- if ( !data.info )
- data.info = {};
- data.info[id] = this.getValue();
- };
-
- function tableDialog( editor, command )
- {
- var makeElement = function( name )
- {
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+(function() {
+ var defaultToPixel = CKEDITOR.tools.cssLength;
+
+ var commitValue = function( data ) {
+ var id = this.id;
+ if ( !data.info )
+ data.info = {};
+ data.info[ id ] = this.getValue();
+ };
+
+ function tableColumns( table ) {
+ var cols = 0,
+ maxCols = 0;
+ for ( var i = 0, row, rows = table.$.rows.length; i < rows; i++ ) {
+ row = table.$.rows[ i ], cols = 0;
+ for ( var j = 0, cell, cells = row.cells.length; j < cells; j++ ) {
+ cell = row.cells[ j ];
+ cols += cell.colSpan;
+ }
+
+ cols > maxCols && ( maxCols = cols );
+ }
+
+ return maxCols;
+ }
+
+
+ // Whole-positive-integer validator.
+ function validatorNum( msg ) {
+ return function() {
+ var value = this.getValue(),
+ pass = !!( CKEDITOR.dialog.validate.integer()( value ) && value > 0 );
+
+ if ( !pass ) {
+ alert( msg );
+ this.select();
+ }
+
+ return pass;
+ };
+ }
+
+ function tableDialog( editor, command ) {
+ var makeElement = function( name ) {
return new CKEDITOR.dom.element( name, editor.document );
};
+ var editable = editor.editable();
+
var dialogadvtab = editor.plugins.dialogadvtab;
return {
- title : editor.lang.table.title,
- minWidth : 310,
- minHeight : CKEDITOR.env.ie ? 310 : 280,
+ title: editor.lang.table.title,
+ minWidth: 310,
+ minHeight: CKEDITOR.env.ie ? 310 : 280,
- onLoad : function()
- {
+ onLoad: function() {
var dialog = this;
var styles = dialog.getContentElement( 'advanced', 'advStyles' );
- if ( styles )
- {
- styles.on( 'change', function( evt )
- {
- // Synchronize width value.
- var width = this.getStyle( 'width', '' ),
- txtWidth = dialog.getContentElement( 'info', 'txtWidth' ),
- cmbWidthType = dialog.getContentElement( 'info', 'cmbWidthType' ),
- isPx = 1;
-
- if ( width )
- {
- isPx = ( width.length < 3 || width.substr( width.length - 1 ) != '%' );
- width = parseInt( width, 10 );
- }
+ if ( styles ) {
+ styles.on( 'change', function( evt ) {
+ // Synchronize width value.
+ var width = this.getStyle( 'width', '' ),
+ txtWidth = dialog.getContentElement( 'info', 'txtWidth' );
- txtWidth && txtWidth.setValue( width, true );
- cmbWidthType && cmbWidthType.setValue( isPx ? 'pixels' : 'percents', true );
+ txtWidth && txtWidth.setValue( width, true );
- // Synchronize height value.
- var height = this.getStyle( 'height', '' ),
- txtHeight = dialog.getContentElement( 'info', 'txtHeight' );
+ // Synchronize height value.
+ var height = this.getStyle( 'height', '' ),
+ txtHeight = dialog.getContentElement( 'info', 'txtHeight' );
- height && ( height = parseInt( height, 10 ) );
- txtHeight && txtHeight.setValue( height, true );
- });
+ txtHeight && txtHeight.setValue( height, true );
+ });
}
},
- onShow : function()
- {
+ onShow: function() {
// Detect if there's a selected table.
var selection = editor.getSelection(),
ranges = selection.getRanges(),
- selectedTable = null;
+ table;
var rowsInput = this.getContentElement( 'info', 'txtRows' ),
colsInput = this.getContentElement( 'info', 'txtCols' ),
widthInput = this.getContentElement( 'info', 'txtWidth' ),
heightInput = this.getContentElement( 'info', 'txtHeight' );
- if ( command == 'tableProperties' )
- {
- if ( ( selectedTable = selection.getSelectedElement() ) )
- selectedTable = selectedTable.getAscendant( 'table', true );
- else if ( ranges.length > 0 )
- {
+ if ( command == 'tableProperties' ) {
+ var selected = selection.getSelectedElement();
+ if ( selected && selected.is( 'table' ) )
+ table = selected;
+ else if ( ranges.length > 0 ) {
// Webkit could report the following range on cell selection (#4948):
// <table><tr><td>[ </td></tr></table>]
if ( CKEDITOR.env.webkit )
ranges[ 0 ].shrink( CKEDITOR.NODE_ELEMENT );
- var rangeRoot = ranges[0].getCommonAncestor( true );
- selectedTable = rangeRoot.getAscendant( 'table', true );
+ table = editor.elementPath( ranges[ 0 ].getCommonAncestor( true ) ).contains( 'table', 1 );
}
// Save a reference to the selected table, and push a new set of default values.
- this._.selectedElement = selectedTable;
+ this._.selectedElement = table;
}
// Enable or disable the row, cols, width fields.
- if ( selectedTable )
- {
- this.setupContent( selectedTable );
+ if ( table ) {
+ this.setupContent( table );
rowsInput && rowsInput.disable();
colsInput && colsInput.disable();
- }
- else
- {
+ } else {
rowsInput && rowsInput.enable();
colsInput && colsInput.enable();
}
@@ -114,13 +124,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
widthInput && widthInput.onChange();
heightInput && heightInput.onChange();
},
- onOk : function()
- {
- if ( this._.selectedElement )
- {
- var selection = editor.getSelection(),
- bms = selection.createBookmarks();
- }
+ onOk: function() {
+ var selection = editor.getSelection(),
+ bms = this._.selectedElement && selection.createBookmarks();
var table = this._.selectedElement || makeElement( 'table' ),
me = this,
@@ -128,22 +134,18 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
this.commitContent( data, table );
- if ( data.info )
- {
+ if ( data.info ) {
var info = data.info;
// Generate the rows and cols.
- if ( !this._.selectedElement )
- {
+ if ( !this._.selectedElement ) {
var tbody = table.append( makeElement( 'tbody' ) ),
rows = parseInt( info.txtRows, 10 ) || 0,
cols = parseInt( info.txtCols, 10 ) || 0;
- for ( var i = 0 ; i < rows ; i++ )
- {
+ for ( var i = 0; i < rows; i++ ) {
var row = tbody.append( makeElement( 'tr' ) );
- for ( var j = 0 ; j < cols ; j++ )
- {
+ for ( var j = 0; j < cols; j++ ) {
var cell = row.append( makeElement( 'td' ) );
if ( !CKEDITOR.env.ie )
cell.append( makeElement( 'br' ) );
@@ -156,19 +158,16 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Should we make a <thead>?
var headers = info.selHeaders;
- if ( !table.$.tHead && ( headers == 'row' || headers == 'both' ) )
- {
+ if ( !table.$.tHead && ( headers == 'row' || headers == 'both' ) ) {
var thead = new CKEDITOR.dom.element( table.$.createTHead() );
tbody = table.getElementsByTag( 'tbody' ).getItem( 0 );
var theRow = tbody.getElementsByTag( 'tr' ).getItem( 0 );
// Change TD to TH:
- for ( i = 0 ; i < theRow.getChildCount() ; i++ )
- {
+ for ( i = 0; i < theRow.getChildCount(); i++ ) {
var th = theRow.getChild( i );
// Skip bookmark nodes. (#6155)
- if ( th.type == CKEDITOR.NODE_ELEMENT && !th.hasAttribute( '_cke_bookmark' ) )
- {
+ if ( th.type == CKEDITOR.NODE_ELEMENT && !th.data( 'cke-bookmark' ) ) {
th.renameNode( 'th' );
th.setAttribute( 'scope', 'col' );
}
@@ -176,21 +175,17 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
thead.append( theRow.remove() );
}
- if ( table.$.tHead !== null && !( headers == 'row' || headers == 'both' ) )
- {
+ if ( table.$.tHead !== null && !( headers == 'row' || headers == 'both' ) ) {
// Move the row out of the THead and put it in the TBody:
thead = new CKEDITOR.dom.element( table.$.tHead );
tbody = table.getElementsByTag( 'tbody' ).getItem( 0 );
var previousFirstRow = tbody.getFirst();
- while ( thead.getChildCount() > 0 )
- {
+ while ( thead.getChildCount() > 0 ) {
theRow = thead.getFirst();
- for ( i = 0; i < theRow.getChildCount() ; i++ )
- {
+ for ( i = 0; i < theRow.getChildCount(); i++ ) {
var newCell = theRow.getChild( i );
- if ( newCell.type == CKEDITOR.NODE_ELEMENT )
- {
+ if ( newCell.type == CKEDITOR.NODE_ELEMENT ) {
newCell.renameNode( 'td' );
newCell.removeAttribute( 'scope' );
}
@@ -201,10 +196,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
// Should we make all first cells in a row TH?
- if ( !this.hasColumnHeaders && ( headers == 'col' || headers == 'both' ) )
- {
- for ( row = 0 ; row < table.$.rows.length ; row++ )
- {
+ if ( !this.hasColumnHeaders && ( headers == 'col' || headers == 'both' ) ) {
+ for ( row = 0; row < table.$.rows.length; row++ ) {
newCell = new CKEDITOR.dom.element( table.$.rows[ row ].cells[ 0 ] );
newCell.renameNode( 'th' );
newCell.setAttribute( 'scope', 'row' );
@@ -212,14 +205,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
// Should we make all first TH-cells in a row make TD? If 'yes' we do it the other way round :-)
- if ( ( this.hasColumnHeaders ) && !( headers == 'col' || headers == 'both' ) )
- {
- for ( i = 0 ; i < table.$.rows.length ; i++ )
- {
- row = new CKEDITOR.dom.element( table.$.rows[i] );
- if ( row.getParent().getName() == 'tbody' )
- {
- newCell = new CKEDITOR.dom.element( row.$.cells[0] );
+ if ( ( this.hasColumnHeaders ) && !( headers == 'col' || headers == 'both' ) ) {
+ for ( i = 0; i < table.$.rows.length; i++ ) {
+ row = new CKEDITOR.dom.element( table.$.rows[ i ] );
+ if ( row.getParent().getName() == 'tbody' ) {
+ newCell = new CKEDITOR.dom.element( row.$.cells[ 0 ] );
newCell.renameNode( 'td' );
newCell.removeAttribute( 'scope' );
}
@@ -227,447 +217,330 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
// Set the width and height.
- var styles = [];
- if ( info.txtHeight )
- table.setStyle( 'height', CKEDITOR.tools.cssLength( info.txtHeight ) );
- else
- table.removeStyle( 'height' );
-
- if ( info.txtWidth )
- {
- var type = info.cmbWidthType || 'pixels';
- table.setStyle( 'width', info.txtWidth + ( type == 'pixels' ? 'px' : '%' ) );
- }
- else
- table.removeStyle( 'width' );
+ info.txtHeight ? table.setStyle( 'height', info.txtHeight ) : table.removeStyle( 'height' );
+ info.txtWidth ? table.setStyle( 'width', info.txtWidth ) : table.removeStyle( 'width' );
if ( !table.getAttribute( 'style' ) )
table.removeAttribute( 'style' );
}
// Insert the table element if we're creating one.
- if ( !this._.selectedElement )
+ if ( !this._.selectedElement ) {
editor.insertElement( table );
- // Properly restore the selection inside table. (#4822)
+ // Override the default cursor position after insertElement to place
+ // cursor inside the first cell (#7959), IE needs a while.
+ setTimeout( function() {
+ var firstCell = new CKEDITOR.dom.element( table.$.rows[ 0 ].cells[ 0 ] );
+ var range = editor.createRange();
+ range.moveToPosition( firstCell, CKEDITOR.POSITION_AFTER_START );
+ range.select();
+ }, 0 );
+ }
+ // Properly restore the selection, (#4822) but don't break
+ // because of this, e.g. updated table caption.
else
+ try {
selection.selectBookmarks( bms );
-
- return true;
+ } catch ( er ) {}
},
- contents : [
+ contents: [
{
- id : 'info',
- label : editor.lang.table.title,
- elements :
- [
+ id: 'info',
+ label: editor.lang.table.title,
+ elements: [
+ {
+ type: 'hbox',
+ widths: [ null, null ],
+ styles: [ 'vertical-align:top' ],
+ children: [
{
- type : 'hbox',
- widths : [ null, null ],
- styles : [ 'vertical-align:top' ],
- children :
- [
- {
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'text',
- id : 'txtRows',
- 'default' : 3,
- label : editor.lang.table.rows,
- required : true,
- style : 'width:5em',
- validate : function()
- {
- var pass = true,
- value = this.getValue();
- pass = pass && CKEDITOR.dialog.validate.integer()( value )
- && value > 0;
- if ( !pass )
- {
- alert( editor.lang.table.invalidRows );
- this.select();
- }
- return pass;
- },
- setup : function( selectedElement )
- {
- this.setValue( selectedElement.$.rows.length );
- },
- commit : commitValue
- },
- {
- type : 'text',
- id : 'txtCols',
- 'default' : 2,
- label : editor.lang.table.columns,
- required : true,
- style : 'width:5em',
- validate : function()
- {
- var pass = true,
- value = this.getValue();
- pass = pass && CKEDITOR.dialog.validate.integer()( value )
- && value > 0;
- if ( !pass )
- {
- alert( editor.lang.table.invalidCols );
- this.select();
- }
- return pass;
- },
- setup : function( selectedTable )
- {
- this.setValue( selectedTable.$.rows[0].cells.length);
- },
- commit : commitValue
- },
- {
- type : 'html',
- html : ' '
- },
- {
- type : 'select',
- id : 'selHeaders',
- 'default' : '',
- label : editor.lang.table.headers,
- items :
- [
- [ editor.lang.table.headersNone, '' ],
- [ editor.lang.table.headersRow, 'row' ],
- [ editor.lang.table.headersColumn, 'col' ],
- [ editor.lang.table.headersBoth, 'both' ]
- ],
- setup : function( selectedTable )
- {
- // Fill in the headers field.
- var dialog = this.getDialog();
- dialog.hasColumnHeaders = true;
-
- // Check if all the first cells in every row are TH
- for ( var row = 0 ; row < selectedTable.$.rows.length ; row++ )
- {
- // If just one cell isn't a TH then it isn't a header column
- if ( selectedTable.$.rows[row].cells[0].nodeName.toLowerCase() != 'th' )
- {
- dialog.hasColumnHeaders = false;
- break;
- }
- }
-
- // Check if the table contains <thead>.
- if ( ( selectedTable.$.tHead !== null) )
- this.setValue( dialog.hasColumnHeaders ? 'both' : 'row' );
- else
- this.setValue( dialog.hasColumnHeaders ? 'col' : '' );
- },
- commit : commitValue
- },
- {
- type : 'text',
- id : 'txtBorder',
- 'default' : 1,
- label : editor.lang.table.border,
- style : 'width:3em',
- validate : CKEDITOR.dialog.validate['number']( editor.lang.table.invalidBorder ),
- setup : function( selectedTable )
- {
- this.setValue( selectedTable.getAttribute( 'border' ) || '' );
- },
- commit : function( data, selectedTable )
- {
- if ( this.getValue() )
- selectedTable.setAttribute( 'border', this.getValue() );
- else
- selectedTable.removeAttribute( 'border' );
- }
- },
- {
- id : 'cmbAlign',
- type : 'select',
- 'default' : '',
- label : editor.lang.table.align,
- items :
- [
- [ editor.lang.common.notSet , ''],
- [ editor.lang.table.alignLeft , 'left'],
- [ editor.lang.table.alignCenter , 'center'],
- [ editor.lang.table.alignRight , 'right']
- ],
- setup : function( selectedTable )
- {
- this.setValue( selectedTable.getAttribute( 'align' ) || '' );
- },
- commit : function( data, selectedTable )
- {
- if ( this.getValue() )
- selectedTable.setAttribute( 'align', this.getValue() );
- else
- selectedTable.removeAttribute( 'align' );
- }
- }
- ]
- },
- {
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'hbox',
- widths : [ '5em' ],
- children :
- [
- {
- type : 'text',
- id : 'txtWidth',
- style : 'width:5em',
- label : editor.lang.table.width,
- 'default' : 500,
- validate : CKEDITOR.dialog.validate['number']( editor.lang.table.invalidWidth ),
-
- // Extra labelling of width unit type.
- onLoad : function()
- {
- var widthType = this.getDialog().getContentElement( 'info', 'cmbWidthType' ),
- labelElement = widthType.getElement(),
- inputElement = this.getInputElement(),
- ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' );
-
- inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
- },
-
- onChange : function()
- {
- var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' );
-
- if ( styles )
- {
- var value = this.getValue();
-
- if ( value )
- value += this.getDialog().getContentElement( 'info', 'cmbWidthType' ).getValue() == 'percents' ? '%' : 'px';
-
- styles.updateStyle( 'width', value );
- }
- },
-
- setup : function( selectedTable )
- {
- var widthMatch = widthPattern.exec( selectedTable.$.style.width );
- if ( widthMatch )
- this.setValue( widthMatch[1] );
- else
- this.setValue( '' );
- },
- commit : commitValue
- },
- {
- id : 'cmbWidthType',
- type : 'select',
- label : editor.lang.table.widthUnit,
- labelStyle: 'visibility:hidden',
- 'default' : 'pixels',
- items :
- [
- [ editor.lang.table.widthPx , 'pixels'],
- [ editor.lang.table.widthPc , 'percents']
- ],
- setup : function( selectedTable )
- {
- var widthMatch = widthPattern.exec( selectedTable.$.style.width );
- if ( widthMatch )
- this.setValue( widthMatch[2] == 'px' ? 'pixels' : 'percents' );
- },
- onChange : function()
- {
- this.getDialog().getContentElement( 'info', 'txtWidth' ).onChange();
- },
- commit : commitValue
- }
- ]
- },
- {
- type : 'hbox',
- widths : [ '5em' ],
- children :
- [
- {
- type : 'text',
- id : 'txtHeight',
- style : 'width:5em',
- label : editor.lang.table.height,
- 'default' : '',
- validate : CKEDITOR.dialog.validate['number']( editor.lang.table.invalidHeight ),
-
- // Extra labelling of height unit type.
- onLoad : function()
- {
- var heightType = this.getDialog().getContentElement( 'info', 'htmlHeightType' ),
- labelElement = heightType.getElement(),
- inputElement = this.getInputElement(),
- ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' );
-
- inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
- },
-
- onChange : function()
- {
- var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' );
-
- if ( styles )
- {
- var value = this.getValue();
- styles.updateStyle( 'height', value && ( value + 'px' ) );
- }
- },
-
- setup : function( selectedTable )
- {
- var heightMatch = heightPattern.exec( selectedTable.$.style.height );
- if ( heightMatch )
- this.setValue( heightMatch[1] );
- },
- commit : commitValue
- },
- {
- id : 'htmlHeightType',
- type : 'html',
- html : '<div><br />' + editor.lang.table.widthPx + '</div>'
- }
- ]
- },
- {
- type : 'html',
- html : ' '
- },
- {
- type : 'text',
- id : 'txtCellSpace',
- style : 'width:3em',
- label : editor.lang.table.cellSpace,
- 'default' : 1,
- validate : CKEDITOR.dialog.validate['number']( editor.lang.table.invalidCellSpacing ),
- setup : function( selectedTable )
- {
- this.setValue( selectedTable.getAttribute( 'cellSpacing' ) || '' );
- },
- commit : function( data, selectedTable )
- {
- if ( this.getValue() )
- selectedTable.setAttribute( 'cellSpacing', this.getValue() );
- else
- selectedTable.removeAttribute( 'cellSpacing' );
- }
- },
- {
- type : 'text',
- id : 'txtCellPad',
- style : 'width:3em',
- label : editor.lang.table.cellPad,
- 'default' : 1,
- validate : CKEDITOR.dialog.validate['number']( editor.lang.table.invalidCellPadding ),
- setup : function( selectedTable )
- {
- this.setValue( selectedTable.getAttribute( 'cellPadding' ) || '' );
- },
- commit : function( data, selectedTable )
- {
- if ( this.getValue() )
- selectedTable.setAttribute( 'cellPadding', this.getValue() );
- else
- selectedTable.removeAttribute( 'cellPadding' );
- }
- }
- ]
+ type: 'vbox',
+ padding: 0,
+ children: [
+ {
+ type: 'text',
+ id: 'txtRows',
+ 'default': 3,
+ label: editor.lang.table.rows,
+ required: true,
+ controlStyle: 'width:5em',
+ validate: validatorNum( editor.lang.table.invalidRows ),
+ setup: function( selectedElement ) {
+ this.setValue( selectedElement.$.rows.length );
+ },
+ commit: commitValue
+ },
+ {
+ type: 'text',
+ id: 'txtCols',
+ 'default': 2,
+ label: editor.lang.table.columns,
+ required: true,
+ controlStyle: 'width:5em',
+ validate: validatorNum( editor.lang.table.invalidCols ),
+ setup: function( selectedTable ) {
+ this.setValue( tableColumns( selectedTable ) );
+ },
+ commit: commitValue
+ },
+ {
+ type: 'html',
+ html: ' '
+ },
+ {
+ type: 'select',
+ id: 'selHeaders',
+ 'default': '',
+ label: editor.lang.table.headers,
+ items: [
+ [ editor.lang.table.headersNone, '' ],
+ [ editor.lang.table.headersRow, 'row' ],
+ [ editor.lang.table.headersColumn, 'col' ],
+ [ editor.lang.table.headersBoth, 'both' ]
+ ],
+ setup: function( selectedTable ) {
+ // Fill in the headers field.
+ var dialog = this.getDialog();
+ dialog.hasColumnHeaders = true;
+
+ // Check if all the first cells in every row are TH
+ for ( var row = 0; row < selectedTable.$.rows.length; row++ ) {
+ // If just one cell isn't a TH then it isn't a header column
+ var headCell = selectedTable.$.rows[ row ].cells[ 0 ];
+ if ( headCell && headCell.nodeName.toLowerCase() != 'th' ) {
+ dialog.hasColumnHeaders = false;
+ break;
+ }
}
- ]
+
+ // Check if the table contains <thead>.
+ if ( ( selectedTable.$.tHead !== null ) )
+ this.setValue( dialog.hasColumnHeaders ? 'both' : 'row' );
+ else
+ this.setValue( dialog.hasColumnHeaders ? 'col' : '' );
+ },
+ commit: commitValue
},
- {
- type : 'html',
- align : 'right',
- html : ''
+ {
+ type: 'text',
+ id: 'txtBorder',
+ 'default': 1,
+ label: editor.lang.table.border,
+ controlStyle: 'width:3em',
+ validate: CKEDITOR.dialog.validate[ 'number' ]( editor.lang.table.invalidBorder ),
+ setup: function( selectedTable ) {
+ this.setValue( selectedTable.getAttribute( 'border' ) || '' );
+ },
+ commit: function( data, selectedTable ) {
+ if ( this.getValue() )
+ selectedTable.setAttribute( 'border', this.getValue() );
+ else
+ selectedTable.removeAttribute( 'border' );
+ }
},
+ {
+ id: 'cmbAlign',
+ type: 'select',
+ 'default': '',
+ label: editor.lang.common.align,
+ items: [
+ [ editor.lang.common.notSet, '' ],
+ [ editor.lang.common.alignLeft, 'left' ],
+ [ editor.lang.common.alignCenter, 'center' ],
+ [ editor.lang.common.alignRight, 'right' ]
+ ],
+ setup: function( selectedTable ) {
+ this.setValue( selectedTable.getAttribute( 'align' ) || '' );
+ },
+ commit: function( data, selectedTable ) {
+ if ( this.getValue() )
+ selectedTable.setAttribute( 'align', this.getValue() );
+ else
+ selectedTable.removeAttribute( 'align' );
+ }
+ }
+ ]
+ },
{
- type : 'vbox',
- padding : 0,
- children :
- [
+ type: 'vbox',
+ padding: 0,
+ children: [
+ {
+ type: 'hbox',
+ widths: [ '5em' ],
+ children: [
{
- type : 'text',
- id : 'txtCaption',
- label : editor.lang.table.caption,
- setup : function( selectedTable )
- {
- var nodeList = selectedTable.getElementsByTag( 'caption' );
- if ( nodeList.count() > 0 )
- {
- var caption = nodeList.getItem( 0 );
- caption = ( caption.getChild( 0 ) && caption.getChild( 0 ).getText() ) || '';
- caption = CKEDITOR.tools.trim( caption );
- this.setValue( caption );
- }
- },
- commit : function( data, table )
- {
- var caption = this.getValue(),
- captionElement = table.getElementsByTag( 'caption' );
- if ( caption )
- {
- if ( captionElement.count() > 0 )
- {
- captionElement = captionElement.getItem( 0 );
- captionElement.setHtml( '' );
- }
- else
- {
- captionElement = new CKEDITOR.dom.element( 'caption', editor.document );
- if ( table.getChildCount() )
- captionElement.insertBefore( table.getFirst() );
- else
- captionElement.appendTo( table );
- }
- captionElement.append( new CKEDITOR.dom.text( caption, editor.document ) );
- }
- else if ( captionElement.count() > 0 )
- {
- for ( var i = captionElement.count() - 1 ; i >= 0 ; i-- )
- captionElement.getItem( i ).remove();
- }
- }
+ type: 'text',
+ id: 'txtWidth',
+ controlStyle: 'width:5em',
+ label: editor.lang.common.width,
+ title: editor.lang.common.cssLengthTooltip,
+ // Smarter default table width. (#9600)
+ 'default': editable.getSize( 'width' ) < 500 ? '100%' : 500,
+ getValue: defaultToPixel,
+ validate: CKEDITOR.dialog.validate.cssLength( editor.lang.common.invalidCssLength.replace( '%1', editor.lang.common.width ) ),
+ onChange: function() {
+ var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' );
+ styles && styles.updateStyle( 'width', this.getValue() );
},
+ setup: function( selectedTable ) {
+ var val = selectedTable.getStyle( 'width' );
+ this.setValue( val );
+ },
+ commit: commitValue
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '5em' ],
+ children: [
{
- type : 'text',
- id : 'txtSummary',
- label : editor.lang.table.summary,
- setup : function( selectedTable )
- {
- this.setValue( selectedTable.getAttribute( 'summary' ) || '' );
- },
- commit : function( data, selectedTable )
- {
- if ( this.getValue() )
- selectedTable.setAttribute( 'summary', this.getValue() );
- else
- selectedTable.removeAttribute( 'summary' );
- }
- }
+ type: 'text',
+ id: 'txtHeight',
+ controlStyle: 'width:5em',
+ label: editor.lang.common.height,
+ title: editor.lang.common.cssLengthTooltip,
+ 'default': '',
+ getValue: defaultToPixel,
+ validate: CKEDITOR.dialog.validate.cssLength( editor.lang.common.invalidCssLength.replace( '%1', editor.lang.common.height ) ),
+ onChange: function() {
+ var styles = this.getDialog().getContentElement( 'advanced', 'advStyles' );
+ styles && styles.updateStyle( 'height', this.getValue() );
+ },
+
+ setup: function( selectedTable ) {
+ var val = selectedTable.getStyle( 'height' );
+ val && this.setValue( val );
+ },
+ commit: commitValue
+ }
]
+ },
+ {
+ type: 'html',
+ html: ' '
+ },
+ {
+ type: 'text',
+ id: 'txtCellSpace',
+ controlStyle: 'width:3em',
+ label: editor.lang.table.cellSpace,
+ 'default': 1,
+ validate: CKEDITOR.dialog.validate.number( editor.lang.table.invalidCellSpacing ),
+ setup: function( selectedTable ) {
+ this.setValue( selectedTable.getAttribute( 'cellSpacing' ) || '' );
+ },
+ commit: function( data, selectedTable ) {
+ if ( this.getValue() )
+ selectedTable.setAttribute( 'cellSpacing', this.getValue() );
+ else
+ selectedTable.removeAttribute( 'cellSpacing' );
+ }
+ },
+ {
+ type: 'text',
+ id: 'txtCellPad',
+ controlStyle: 'width:3em',
+ label: editor.lang.table.cellPad,
+ 'default': 1,
+ validate: CKEDITOR.dialog.validate.number( editor.lang.table.invalidCellPadding ),
+ setup: function( selectedTable ) {
+ this.setValue( selectedTable.getAttribute( 'cellPadding' ) || '' );
+ },
+ commit: function( data, selectedTable ) {
+ if ( this.getValue() )
+ selectedTable.setAttribute( 'cellPadding', this.getValue() );
+ else
+ selectedTable.removeAttribute( 'cellPadding' );
+ }
}
+ ]
+ }
]
},
+ {
+ type: 'html',
+ align: 'right',
+ html: ''
+ },
+ {
+ type: 'vbox',
+ padding: 0,
+ children: [
+ {
+ type: 'text',
+ id: 'txtCaption',
+ label: editor.lang.table.caption,
+ setup: function( selectedTable ) {
+ this.enable();
+
+ var nodeList = selectedTable.getElementsByTag( 'caption' );
+ if ( nodeList.count() > 0 ) {
+ var caption = nodeList.getItem( 0 );
+ var firstElementChild = caption.getFirst( CKEDITOR.dom.walker.nodeType( CKEDITOR.NODE_ELEMENT ) );
+
+ if ( firstElementChild && !firstElementChild.equals( caption.getBogus() ) ) {
+ this.disable();
+ this.setValue( caption.getText() );
+ return;
+ }
+
+ caption = CKEDITOR.tools.trim( caption.getText() );
+ this.setValue( caption );
+ }
+ },
+ commit: function( data, table ) {
+ if ( !this.isEnabled() )
+ return;
+
+ var caption = this.getValue(),
+ captionElement = table.getElementsByTag( 'caption' );
+ if ( caption ) {
+ if ( captionElement.count() > 0 ) {
+ captionElement = captionElement.getItem( 0 );
+ captionElement.setHtml( '' );
+ } else {
+ captionElement = new CKEDITOR.dom.element( 'caption', editor.document );
+ if ( table.getChildCount() )
+ captionElement.insertBefore( table.getFirst() );
+ else
+ captionElement.appendTo( table );
+ }
+ captionElement.append( new CKEDITOR.dom.text( caption, editor.document ) );
+ } else if ( captionElement.count() > 0 ) {
+ for ( var i = captionElement.count() - 1; i >= 0; i-- )
+ captionElement.getItem( i ).remove();
+ }
+ }
+ },
+ {
+ type: 'text',
+ id: 'txtSummary',
+ label: editor.lang.table.summary,
+ setup: function( selectedTable ) {
+ this.setValue( selectedTable.getAttribute( 'summary' ) || '' );
+ },
+ commit: function( data, selectedTable ) {
+ if ( this.getValue() )
+ selectedTable.setAttribute( 'summary', this.getValue() );
+ else
+ selectedTable.removeAttribute( 'summary' );
+ }
+ }
+ ]
+ }
+ ]
+ },
dialogadvtab && dialogadvtab.createAdvancedTab( editor )
- ]
+ ]
};
}
- CKEDITOR.dialog.add( 'table', function( editor )
- {
- return tableDialog( editor, 'table' );
- } );
- CKEDITOR.dialog.add( 'tableProperties', function( editor )
- {
- return tableDialog( editor, 'tableProperties' );
- } );
+ CKEDITOR.dialog.add( 'table', function( editor ) {
+ return tableDialog( editor, 'table' );
+ });
+ CKEDITOR.dialog.add( 'tableProperties', function( editor ) {
+ return tableDialog( editor, 'tableProperties' );
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/table/icons/table.png b/devel/third-party/ckeditor/plugins/table/icons/table.png
new file mode 100644
index 0000000..f441008
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/table/icons/table.png differ
diff --git a/devel/third-party/ckeditor/plugins/table/lang/af.js b/devel/third-party/ckeditor/plugins/table/lang/af.js
new file mode 100644
index 0000000..75fc24d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/af.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'af', {
+ border: 'Randbreedte',
+ caption: 'Naam',
+ cell: {
+ menu: 'Sel',
+ insertBefore: 'Voeg sel in voor',
+ insertAfter: 'Voeg sel in na',
+ deleteCell: 'Verwyder sel',
+ merge: 'Voeg selle saam',
+ mergeRight: 'Voeg saam na regs',
+ mergeDown: 'Voeg saam ondertoe',
+ splitHorizontal: 'Splits sel horisontaal',
+ splitVertical: 'Splits sel vertikaal',
+ title: 'Sel eienskappe',
+ cellType: 'Sel tipe',
+ rowSpan: 'Omspan rye',
+ colSpan: 'Omspan kolomme',
+ wordWrap: 'Woord terugloop',
+ hAlign: 'Horisontale oplyning',
+ vAlign: 'Vertikale oplyning',
+ alignBaseline: 'Basislyn',
+ bgColor: 'Agtergrondkleur',
+ borderColor: 'Randkleur',
+ data: 'Inhoud',
+ header: 'Opskrif',
+ yes: 'Ja',
+ no: 'Nee',
+ invalidWidth: 'Selbreedte moet \'n getal wees.',
+ invalidHeight: 'Selhoogte moet \'n getal wees.',
+ invalidRowSpan: 'Omspan rye moet \'n heelgetal wees.',
+ invalidColSpan: 'Omspan kolomme moet \'n heelgetal wees.',
+ chooseColor: 'Kies'
+ },
+ cellPad: 'Sel-spasie',
+ cellSpace: 'Sel-afstand',
+ column: {
+ menu: 'Kolom',
+ insertBefore: 'Voeg kolom in voor',
+ insertAfter: 'Voeg kolom in na',
+ deleteColumn: 'Verwyder kolom'
+ },
+ columns: 'Kolomme',
+ deleteTable: 'Verwyder tabel',
+ headers: 'Opskrifte',
+ headersBoth: 'Beide ',
+ headersColumn: 'Eerste kolom',
+ headersNone: 'Geen',
+ headersRow: 'Eerste ry',
+ invalidBorder: 'Randbreedte moet \'n getal wees.',
+ invalidCellPadding: 'Sel-spasie moet \'n getal wees.',
+ invalidCellSpacing: 'Sel-afstand moet \'n getal wees.',
+ invalidCols: 'Aantal kolomme moet \'n getal groter as 0 wees.',
+ invalidHeight: 'Tabelhoogte moet \'n getal wees.',
+ invalidRows: 'Aantal rye moet \'n getal groter as 0 wees.',
+ invalidWidth: 'Tabelbreedte moet \'n getal wees.',
+ menu: 'Tabel eienskappe',
+ row: {
+ menu: 'Ry',
+ insertBefore: 'Voeg ry in voor',
+ insertAfter: 'Voeg ry in na',
+ deleteRow: 'Verwyder ry'
+ },
+ rows: 'Rye',
+ summary: 'Opsomming',
+ title: 'Tabel eienskappe',
+ toolbar: 'Tabel',
+ widthPc: 'persent',
+ widthPx: 'piksels',
+ widthUnit: 'breedte-eenheid'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ar.js b/devel/third-party/ckeditor/plugins/table/lang/ar.js
new file mode 100644
index 0000000..f6d30db
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ar.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ar', {
+ border: 'Ø§ÙØØ¯ÙØ¯',
+ caption: 'اÙÙØµÙ',
+ cell: {
+ menu: 'Ø®ÙÙØ©',
+ insertBefore: 'إدراج Ø®ÙÙØ© ÙØ¨Ù',
+ insertAfter: 'إدراج Ø®ÙÙØ© بعد',
+ deleteCell: 'ØØ°Ù Ø®ÙÙØ©',
+ merge: 'دÙ
ج Ø®ÙØ§Ùا',
+ mergeRight: 'دÙ
ج ÙÙÙÙ
ÙÙ',
+ mergeDown: 'دÙ
ج ÙÙØ£Ø³ÙÙ',
+ splitHorizontal: 'ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© Ø£ÙÙÙØ§Ù',
+ splitVertical: 'ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© عÙ
ÙØ¯ÙاÙ',
+ title: 'خصائص Ø§ÙØ®ÙÙØ©',
+ cellType: 'ÙÙØ¹ Ø§ÙØ®ÙÙØ©',
+ rowSpan: 'اÙ
تداد Ø§ÙØµÙÙÙ',
+ colSpan: 'اÙ
تداد Ø§ÙØ£Ø¹Ù
دة',
+ wordWrap: 'Ø§ÙØªÙا٠اÙÙØµ',
+ hAlign: 'Ù
ØØ§Ø°Ø§Ø© Ø£ÙÙÙØ©',
+ vAlign: 'Ù
ØØ§Ø°Ø§Ø© Ø±Ø£Ø³ÙØ©',
+ alignBaseline: 'خط اÙÙØ§Ø¹Ø¯Ø©',
+ bgColor: 'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',
+ borderColor: 'ÙÙÙ Ø§ÙØØ¯ÙØ¯',
+ data: 'Ø¨ÙØ§Ùات',
+ header: 'عÙÙØ§Ù',
+ yes: 'ÙØ¹Ù
',
+ no: 'ÙØ§',
+ invalidWidth: 'عرض Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ invalidHeight: 'Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ invalidRowSpan: 'اÙ
تداد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.',
+ invalidColSpan: 'اÙ
تداد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.',
+ chooseColor: 'اختر'
+ },
+ cellPad: 'اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',
+ cellSpace: 'تباعد Ø§ÙØ®ÙØ§ÙØ§',
+ column: {
+ menu: 'عÙ
ÙØ¯',
+ insertBefore: 'إدراج عÙ
ÙØ¯ ÙØ¨Ù',
+ insertAfter: 'إدراج عÙ
ÙØ¯ بعد',
+ deleteColumn: 'ØØ°Ù أعÙ
دة'
+ },
+ columns: 'أعÙ
دة',
+ deleteTable: 'ØØ°Ù Ø§ÙØ¬Ø¯ÙÙ',
+ headers: 'Ø§ÙØ¹ÙاÙÙÙ',
+ headersBoth: 'ÙÙØ§ÙÙ
ا',
+ headersColumn: 'Ø§ÙØ¹Ù
ÙØ¯ Ø§ÙØ£ÙÙ',
+ headersNone: 'بدÙÙ',
+ headersRow: 'Ø§ÙØµÙ Ø§ÙØ£ÙÙ',
+ invalidBorder: 'ØØ¬Ù
Ø§ÙØØ¯ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ invalidCellPadding: 'اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø© ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ',
+ invalidCellSpacing: 'اÙÙ
Ø³Ø§ÙØ© بÙÙ Ø§ÙØ®ÙØ§ÙØ§ ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ.',
+ invalidCols: 'عدد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.',
+ invalidHeight: 'Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ invalidRows: 'عدد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.',
+ invalidWidth: 'عرض Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',
+ menu: 'خصائص Ø§ÙØ¬Ø¯ÙÙ',
+ row: {
+ menu: 'صÙ',
+ insertBefore: 'إدراج ØµÙ ÙØ¨Ù',
+ insertAfter: 'إدراج ص٠بعد',
+ deleteRow: 'ØØ°Ù صÙÙÙ'
+ },
+ rows: 'صÙÙÙ',
+ summary: 'Ø§ÙØ®Ùاصة',
+ title: 'خصائص Ø§ÙØ¬Ø¯ÙÙ',
+ toolbar: 'جدÙÙ',
+ widthPc: 'باÙÙ
ئة',
+ widthPx: 'Ø¨ÙØ³Ù',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/bg.js b/devel/third-party/ckeditor/plugins/table/lang/bg.js
new file mode 100644
index 0000000..40a7f41
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/bg.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'bg', {
+ border: 'Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑамкаÑа',
+ caption: 'Ðаглавие',
+ cell: {
+ menu: 'ÐлеÑка',
+ insertBefore: 'ÐмÑкване на клеÑка пÑеди',
+ insertAfter: 'ÐмÑкване на клеÑка Ñлед',
+ deleteCell: 'ÐзÑÑиване на клеÑки',
+ merge: 'Сливане на клеÑки',
+ mergeRight: 'Сливане в дÑÑно',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'ÐаÑÑÑойки на клеÑкаÑа',
+ cellType: 'Тип на клеÑкаÑа',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'ÐвÑо. пÑеноÑ',
+ hAlign: 'ХоÑизонÑално подÑавнÑване',
+ vAlign: 'ÐеÑÑикално подÑавнÑване',
+ alignBaseline: 'Ðазова линиÑ',
+ bgColor: 'Фон',
+ borderColor: 'ЦвÑÑ Ð½Ð° ÑамкаÑа',
+ data: 'Ðанни',
+ header: 'ХедÑÑ',
+ yes: 'Ðа',
+ no: 'Ðе',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'ÐзбеÑеÑе'
+ },
+ cellPad: 'ÐÑделÑне на клеÑкиÑе',
+ cellSpace: 'РазÑоÑние Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»ÐµÑкиÑе',
+ column: {
+ menu: 'Ðолона',
+ insertBefore: 'ÐмÑкване на колона пÑеди',
+ insertAfter: 'ÐмÑкване на колона Ñлед',
+ deleteColumn: 'ÐзÑÑиване на колони'
+ },
+ columns: 'Ðолони',
+ deleteTable: 'ÐзÑÑиване на ÑаблиÑа',
+ headers: 'ХедÑÑи',
+ headersBoth: 'Ðаедно',
+ headersColumn: 'ÐÑÑва колона',
+ headersNone: 'ÐÑма',
+ headersRow: 'ÐÑÑви Ñед',
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'ÐÑоÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¸ ÑÑÑбва да е по-голÑм Ð¾Ñ 0.',
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'ÐÑоÑÑ Ñедове ÑÑÑбва да е по-голÑм Ð¾Ñ 0.',
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'ÐаÑÑÑойки на ÑаблиÑаÑа',
+ row: {
+ menu: 'Ред',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'ÐмÑкване на Ñед Ñлед',
+ deleteRow: 'ÐзÑÑиване на Ñедове'
+ },
+ rows: 'Редове',
+ summary: 'ÐбÑа инÑоÑмаÑиÑ',
+ title: 'ÐаÑÑÑойки на ÑаблиÑаÑа',
+ toolbar: 'ТаблиÑа',
+ widthPc: 'пÑоÑенÑ',
+ widthPx: 'пикÑела',
+ widthUnit: 'единиÑа за ÑиÑина'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/bn.js b/devel/third-party/ckeditor/plugins/table/lang/bn.js
new file mode 100644
index 0000000..767c812
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/bn.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'bn', {
+ border: 'বরà§à¦¡à¦¾à¦° সাà¦à¦',
+ caption: 'শà§à¦°à§à¦·à¦',
+ cell: {
+ menu: 'সà§à¦²',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'সà§à¦² মà§à¦à§ দাà¦',
+ merge: 'সà§à¦² à¦à§à§à¦¾ দাà¦',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'সà§à¦² পà§à¦¯à¦¾à¦¡à¦¿à¦',
+ cellSpace: 'সà§à¦² সà§à¦ªà§à¦¸',
+ column: {
+ menu: 'à¦à¦²à¦¾à¦®',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'à¦à¦²à¦¾à¦® মà§à¦à§ দাà¦'
+ },
+ columns: 'à¦à¦²à¦¾à¦®',
+ deleteTable: 'à¦à§à¦¬à¦¿à¦² ডিলà§à¦ à¦à¦°',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ row: {
+ menu: 'রà§',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'রৠমà§à¦à§ দাà¦'
+ },
+ rows: 'রà§',
+ summary: 'সারাà¦à¦¶',
+ title: 'à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',
+ toolbar: 'à¦à§à¦¬à¦¿à¦²à§à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',
+ widthPc: 'শতà¦à¦°à¦¾',
+ widthPx: 'পিà¦à§à¦¸à§à¦²',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/bs.js b/devel/third-party/ckeditor/plugins/table/lang/bs.js
new file mode 100644
index 0000000..65c8ddf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/bs.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'bs', {
+ border: 'Okvir',
+ caption: 'Naslov',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Briši æelije',
+ merge: 'Spoji æelije',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Uvod æelija',
+ cellSpace: 'Razmak æelija',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Briši kolone'
+ },
+ columns: 'Kolona',
+ deleteTable: 'Delete Table', // MISSING
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Svojstva tabele',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Briši redove'
+ },
+ rows: 'Redova',
+ summary: 'Summary', // MISSING
+ title: 'Svojstva tabele',
+ toolbar: 'Tabela',
+ widthPc: 'posto',
+ widthPx: 'piksela',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ca.js b/devel/third-party/ckeditor/plugins/table/lang/ca.js
new file mode 100644
index 0000000..aa6430a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ca.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ca', {
+ border: 'Mida vora',
+ caption: 'TÃtol',
+ cell: {
+ menu: 'Cel·la',
+ insertBefore: 'Insereix abans',
+ insertAfter: 'Insereix després',
+ deleteCell: 'Suprimeix',
+ merge: 'Fusiona',
+ mergeRight: 'Fusiona a la dreta',
+ mergeDown: 'Fusiona avall',
+ splitHorizontal: 'Divideix horitzontalment',
+ splitVertical: 'Divideix verticalment',
+ title: 'Propietats de la cel·la',
+ cellType: 'Tipus de cel·la',
+ rowSpan: 'Expansió de files',
+ colSpan: 'Expansió de columnes',
+ wordWrap: 'Ajustar al contingut',
+ hAlign: 'Alineació Horizontal',
+ vAlign: 'Alineació Vertical',
+ alignBaseline: 'A la lÃnia base',
+ bgColor: 'Color de fons',
+ borderColor: 'Color de la vora',
+ data: 'Dades',
+ header: 'Capçalera',
+ yes: 'SÃ',
+ no: 'No',
+ invalidWidth: 'L\'amplada de cel·la ha de ser un nombre.',
+ invalidHeight: 'L\'alçada de cel·la ha de ser un nombre.',
+ invalidRowSpan: 'L\'expansió de files ha de ser un nombre enter.',
+ invalidColSpan: 'L\'expansió de columnes ha de ser un nombre enter.',
+ chooseColor: 'Trieu'
+ },
+ cellPad: 'Encoixinament de cel·les',
+ cellSpace: 'Espaiat de cel·les',
+ column: {
+ menu: 'Columna',
+ insertBefore: 'Insereix columna abans de',
+ insertAfter: 'Insereix columna darrera',
+ deleteColumn: 'Suprimeix una columna'
+ },
+ columns: 'Columnes',
+ deleteTable: 'Suprimeix la taula',
+ headers: 'Capçaleres',
+ headersBoth: 'Ambdues',
+ headersColumn: 'Primera columna',
+ headersNone: 'Cap',
+ headersRow: 'Primera fila',
+ invalidBorder: 'El gruix de la vora ha de ser un nombre.',
+ invalidCellPadding: 'L\'encoixinament de cel·la ha de ser un nombre.',
+ invalidCellSpacing: 'L\'espaiat de cel·la ha de ser un nombre.',
+ invalidCols: 'El nombre de columnes ha de ser un nombre major que 0.',
+ invalidHeight: 'L\'alçada de la taula ha de ser un nombre.',
+ invalidRows: 'El nombre de files ha de ser un nombre major que 0.',
+ invalidWidth: 'L\'amplada de la taula ha de ser un nombre.',
+ menu: 'Propietats de la taula',
+ row: {
+ menu: 'Fila',
+ insertBefore: 'Insereix fila abans de',
+ insertAfter: 'Insereix fila darrera',
+ deleteRow: 'Suprimeix una fila'
+ },
+ rows: 'Files',
+ summary: 'Resum',
+ title: 'Propietats de la taula',
+ toolbar: 'Taula',
+ widthPc: 'percentatge',
+ widthPx: 'pÃxels',
+ widthUnit: 'unitat d\'amplada'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/cs.js b/devel/third-party/ckeditor/plugins/table/lang/cs.js
new file mode 100644
index 0000000..858e77c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/cs.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'cs', {
+ border: 'OhraniÄenÃ',
+ caption: 'Popis',
+ cell: {
+ menu: 'BuÅka',
+ insertBefore: 'Vložit buÅku pÅed',
+ insertAfter: 'Vložit buÅku za',
+ deleteCell: 'Smazat buÅky',
+ merge: 'SlouÄit buÅky',
+ mergeRight: 'SlouÄit doprava',
+ mergeDown: 'SlouÄit dolů',
+ splitHorizontal: 'RozdÄlit buÅky vodorovnÄ',
+ splitVertical: 'RozdÄlit buÅky svisle',
+ title: 'Vlastnosti buÅky',
+ cellType: 'Typ buÅky',
+ rowSpan: 'Spojit Åádky',
+ colSpan: 'Spojit sloupce',
+ wordWrap: 'ZalamovánÃ',
+ hAlign: 'Vodorovné zarovnánÃ',
+ vAlign: 'Svislé zarovnánÃ',
+ alignBaseline: 'Na úÄaÅÃ',
+ bgColor: 'Barva pozadÃ',
+ borderColor: 'Barva okraje',
+ data: 'Data',
+ header: 'HlaviÄka',
+ yes: 'Ano',
+ no: 'Ne',
+ invalidWidth: 'Å ÃÅka buÅky musà být ÄÃslo.',
+ invalidHeight: 'Zadaná výška buÅky musà být ÄÃslená.',
+ invalidRowSpan: 'Zadaný poÄet slouÄených Åádků musà být celé ÄÃslo.',
+ invalidColSpan: 'Zadaný poÄet slouÄených sloupců musà být celé ÄÃslo.',
+ chooseColor: 'VýbÄr'
+ },
+ cellPad: 'Odsazenà obsahu v buÅce',
+ cellSpace: 'Vzdálenost bunÄk',
+ column: {
+ menu: 'Sloupec',
+ insertBefore: 'Vložit sloupec pÅed',
+ insertAfter: 'Vložit sloupec za',
+ deleteColumn: 'Smazat sloupec'
+ },
+ columns: 'Sloupce',
+ deleteTable: 'Smazat tabulku',
+ headers: 'ZáhlavÃ',
+ headersBoth: 'ObojÃ',
+ headersColumn: 'Prvnà sloupec',
+ headersNone: 'Žádné',
+ headersRow: 'Prvnà Åádek',
+ invalidBorder: 'Zdaná velikost okraje musà být ÄÃselná.',
+ invalidCellPadding: 'Zadané odsazenà obsahu v buÅce musà být ÄÃselné.',
+ invalidCellSpacing: 'Zadaná vzdálenost bunÄk musà být ÄÃselná.',
+ invalidCols: 'PoÄet sloupců musà být ÄÃslo vÄtšà než 0.',
+ invalidHeight: 'Zadaná výška tabulky musà být ÄÃselná.',
+ invalidRows: 'PoÄet Åádků musà být ÄÃslo vÄtšà než 0.',
+ invalidWidth: 'Å ÃÅka tabulky musà být ÄÃslo.',
+ menu: 'Vlastnosti tabulky',
+ row: {
+ menu: 'Åádek',
+ insertBefore: 'Vložit Åádek pÅed',
+ insertAfter: 'Vložit Åádek za',
+ deleteRow: 'Smazat Åádky'
+ },
+ rows: 'Åádky',
+ summary: 'Souhrn',
+ title: 'Vlastnosti tabulky',
+ toolbar: 'Tabulka',
+ widthPc: 'procent',
+ widthPx: 'bodů',
+ widthUnit: 'jednotka Å¡ÃÅky'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/cy.js b/devel/third-party/ckeditor/plugins/table/lang/cy.js
new file mode 100644
index 0000000..39ca347
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/cy.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'cy', {
+ border: 'Maint yr Ymyl',
+ caption: 'Pennawd',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Mewnosod Cell Cyn',
+ insertAfter: 'Mewnosod Cell Ar Ãl',
+ deleteCell: 'Dileu Celloedd',
+ merge: 'Cyfuno Celloedd',
+ mergeRight: 'Cyfuno i\'r Dde',
+ mergeDown: 'Cyfuno i Lawr',
+ splitHorizontal: 'Hollti\'r Gell yn Lorweddol',
+ splitVertical: 'Hollti\'r Gell yn Fertigol',
+ title: 'Priodweddau\'r Gell',
+ cellType: 'Math y Gell',
+ rowSpan: 'Rhychwant Rhesi',
+ colSpan: 'Rhychwant Colofnau',
+ wordWrap: 'Lapio Geiriau',
+ hAlign: 'Aliniad Llorweddol',
+ vAlign: 'Aliniad Fertigol',
+ alignBaseline: 'Baslinell',
+ bgColor: 'Lliw Cefndir',
+ borderColor: 'Lliw Ymyl',
+ data: 'Data',
+ header: 'Pennyn',
+ yes: 'Ie',
+ no: 'Na',
+ invalidWidth: 'Mae\'n rhaid i led y gell fod yn rhif.',
+ invalidHeight: 'Mae\'n rhaid i uchder y gell fod yn rhif.',
+ invalidRowSpan: 'Mae\'n rhaid i rychwant y rhesi fod yn gyfanrif.',
+ invalidColSpan: 'Mae\'n rhaid i rychwant y colofnau fod yn gyfanrif.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Padio\'r gell',
+ cellSpace: 'Bylchu\'r gell',
+ column: {
+ menu: 'Colofn',
+ insertBefore: 'Mewnosod Colofn Cyn',
+ insertAfter: 'Mewnosod Colofn Ar Ãl',
+ deleteColumn: 'Dileu Colofnau'
+ },
+ columns: 'Colofnau',
+ deleteTable: 'Dileu Tabl',
+ headers: 'Penynnau',
+ headersBoth: 'Y Ddau',
+ headersColumn: 'Colofn gyntaf',
+ headersNone: 'Dim',
+ headersRow: 'Rhes gyntaf',
+ invalidBorder: 'Mae\'n rhaid i faint yr ymyl fod yn rhif.',
+ invalidCellPadding: 'Mae\'n rhaid i badiad y gell fod yn rhif positif.',
+ invalidCellSpacing: 'Mae\'n rhaid i fylchiad y gell fod yn rhif positif.',
+ invalidCols: 'Mae\'n rhaid cael o leiaf un golofn.',
+ invalidHeight: 'Mae\'n rhaid i uchder y tabl fod yn rhif.',
+ invalidRows: 'Mae\'n rhaid cael o leiaf un rhes.',
+ invalidWidth: 'Mae\'n rhaid i led y tabl fod yn rhif.',
+ menu: 'Nodweddion Tabl',
+ row: {
+ menu: 'Rhes',
+ insertBefore: 'Mewnosod Rhes Cyn',
+ insertAfter: 'Mewnosod Rhes Ar Ãl',
+ deleteRow: 'Dileu Rhesi'
+ },
+ rows: 'Rhesi',
+ summary: 'Crynodeb',
+ title: 'Nodweddion Tabl',
+ toolbar: 'Tabl',
+ widthPc: 'y cant',
+ widthPx: 'picsel',
+ widthUnit: 'uned lled'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/da.js b/devel/third-party/ckeditor/plugins/table/lang/da.js
new file mode 100644
index 0000000..1cabca4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/da.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'da', {
+ border: 'Rammebredde',
+ caption: 'Titel',
+ cell: {
+ menu: 'Celle',
+ insertBefore: 'Indsæt celle før',
+ insertAfter: 'Indsæt celle efter',
+ deleteCell: 'Slet celle',
+ merge: 'Flet celler',
+ mergeRight: 'Flet til højre',
+ mergeDown: 'Flet nedad',
+ splitHorizontal: 'Del celle vandret',
+ splitVertical: 'Del celle lodret',
+ title: 'Celleegenskaber',
+ cellType: 'Celletype',
+ rowSpan: 'Række span (rows span)',
+ colSpan: 'Kolonne span (columns span)',
+ wordWrap: 'Tekstombrydning',
+ hAlign: 'Vandret justering',
+ vAlign: 'Lodret justering',
+ alignBaseline: 'Grundlinje',
+ bgColor: 'Baggrundsfarve',
+ borderColor: 'Rammefarve',
+ data: 'Data',
+ header: 'Hoved',
+ yes: 'Ja',
+ no: 'Nej',
+ invalidWidth: 'Cellebredde skal være et tal.',
+ invalidHeight: 'Cellehøjde skal være et tal.',
+ invalidRowSpan: 'Række span skal være et heltal.',
+ invalidColSpan: 'Kolonne span skal være et heltal.',
+ chooseColor: 'Vælg'
+ },
+ cellPad: 'Cellemargen',
+ cellSpace: 'Celleafstand',
+ column: {
+ menu: 'Kolonne',
+ insertBefore: 'Indsæt kolonne før',
+ insertAfter: 'Indsæt kolonne efter',
+ deleteColumn: 'Slet kolonne'
+ },
+ columns: 'Kolonner',
+ deleteTable: 'Slet tabel',
+ headers: 'Hoved',
+ headersBoth: 'Begge',
+ headersColumn: 'Første kolonne',
+ headersNone: 'Ingen',
+ headersRow: 'Første række',
+ invalidBorder: 'Rammetykkelse skal være et tal.',
+ invalidCellPadding: 'Cellemargen skal være et tal.',
+ invalidCellSpacing: 'Celleafstand skal være et tal.',
+ invalidCols: 'Antallet af kolonner skal være større end 0.',
+ invalidHeight: 'Tabelhøjde skal være et tal.',
+ invalidRows: 'Antallet af rækker skal være større end 0.',
+ invalidWidth: 'Tabelbredde skal være et tal.',
+ menu: 'Egenskaber for tabel',
+ row: {
+ menu: 'Række',
+ insertBefore: 'Indsæt række før',
+ insertAfter: 'Indsæt række efter',
+ deleteRow: 'Slet række'
+ },
+ rows: 'Rækker',
+ summary: 'Resumé',
+ title: 'Egenskaber for tabel',
+ toolbar: 'Tabel',
+ widthPc: 'procent',
+ widthPx: 'pixels',
+ widthUnit: 'Bredde på enhed'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/de.js b/devel/third-party/ckeditor/plugins/table/lang/de.js
new file mode 100644
index 0000000..9bf1566
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/de.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'de', {
+ border: 'Rahmen',
+ caption: 'Ãberschrift',
+ cell: {
+ menu: 'Zelle',
+ insertBefore: 'Zelle davor einfügen',
+ insertAfter: 'Zelle danach einfügen',
+ deleteCell: 'Zelle löschen',
+ merge: 'Zellen verbinden',
+ mergeRight: 'Nach rechts verbinden',
+ mergeDown: 'Nach unten verbinden',
+ splitHorizontal: 'Zelle horizontal teilen',
+ splitVertical: 'Zelle vertikal teilen',
+ title: 'Zellen-Eigenschaften',
+ cellType: 'Zellart',
+ rowSpan: 'Anzahl Zeilen verbinden',
+ colSpan: 'Anzahl Spalten verbinden',
+ wordWrap: 'Zeilenumbruch',
+ hAlign: 'Horizontale Ausrichtung',
+ vAlign: 'Vertikale Ausrichtung',
+ alignBaseline: 'Grundlinie',
+ bgColor: 'Hintergrundfarbe',
+ borderColor: 'Rahmenfarbe',
+ data: 'Daten',
+ header: 'Ãberschrift',
+ yes: 'Ja',
+ no: 'Nein',
+ invalidWidth: 'Zellenbreite muà eine Zahl sein.',
+ invalidHeight: 'Zellenhöhe muà eine Zahl sein.',
+ invalidRowSpan: '"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.',
+ invalidColSpan: '"Anzahl Spalten verbinden" muss eine Ganzzahl sein.',
+ chooseColor: 'Wählen'
+ },
+ cellPad: 'Zellenabstand innen',
+ cellSpace: 'Zellenabstand auÃen',
+ column: {
+ menu: 'Spalte',
+ insertBefore: 'Spalte links davor einfügen',
+ insertAfter: 'Spalte rechts danach einfügen',
+ deleteColumn: 'Spalte löschen'
+ },
+ columns: 'Spalte',
+ deleteTable: 'Tabelle löschen',
+ headers: 'Kopfzeile',
+ headersBoth: 'Beide',
+ headersColumn: 'Erste Spalte',
+ headersNone: 'Keine',
+ headersRow: 'Erste Zeile',
+ invalidBorder: 'Die Rahmenbreite muà eine Zahl sein.',
+ invalidCellPadding: 'Der Zellenabstand innen muà eine positive Zahl sein.',
+ invalidCellSpacing: 'Der Zellenabstand auÃen muà eine positive Zahl sein.',
+ invalidCols: 'Die Anzahl der Spalten muà gröÃer als 0 sein..',
+ invalidHeight: 'Die Tabellenbreite muà eine Zahl sein.',
+ invalidRows: 'Die Anzahl der Zeilen muà gröÃer als 0 sein.',
+ invalidWidth: 'Die Tabellenbreite muss eine Zahl sein.',
+ menu: 'Tabellen-Eigenschaften',
+ row: {
+ menu: 'Zeile',
+ insertBefore: 'Zeile oberhalb einfügen',
+ insertAfter: 'Zeile unterhalb einfügen',
+ deleteRow: 'Zeile entfernen'
+ },
+ rows: 'Zeile',
+ summary: 'Inhaltsübersicht',
+ title: 'Tabellen-Eigenschaften',
+ toolbar: 'Tabelle',
+ widthPc: '%',
+ widthPx: 'Pixel',
+ widthUnit: 'Breite Einheit'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/el.js b/devel/third-party/ckeditor/plugins/table/lang/el.js
new file mode 100644
index 0000000..e9a57be
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/el.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'el', {
+ border: 'ΠάÏÎ¿Ï Î ÎµÏιγÏάμμαÏοÏ',
+ caption: 'ÎεζάνÏα',
+ cell: {
+ menu: 'Îελί',
+ insertBefore: 'ÎιÏαγÏγή ÎÎµÎ»Î¹Î¿Ï Î Ïιν',
+ insertAfter: 'ÎιÏαγÏγή ÎÎµÎ»Î¹Î¿Ï ÎεÏά',
+ deleteCell: 'ÎιαγÏαÏή ÎελιÏν',
+ merge: 'ÎνοÏοίηÏη ÎελιÏν',
+ mergeRight: 'ΣÏ
γÏÏνεÏ
Ïη Îε Îεξιά',
+ mergeDown: 'ΣÏ
γÏÏνεÏ
Ïη Îε ÎάÏÏ',
+ splitHorizontal: 'ÎÏιζÏνÏιο ÎοίÏαÏμα ÎελιοÏ',
+ splitVertical: 'ÎαÏακÏÏÏ
Ïο ÎοίÏαÏμα ÎελιοÏ',
+ title: 'ÎδιÏÏηÏÎµÏ ÎελιοÏ',
+ cellType: 'ΤÏÏÎ¿Ï ÎελιοÏ',
+ rowSpan: 'ÎÏÏÎ¿Ï Î£ÎµÎ¹ÏÏν',
+ colSpan: 'ÎÏÏÎ¿Ï Î£ÏηλÏν',
+ wordWrap: 'Word Wrap',
+ hAlign: 'ÎÏιζÏνÏια ΣÏοίÏιÏη',
+ vAlign: 'ÎάθεÏη ΣÏοίÏιÏη',
+ alignBaseline: 'Baseline',
+ bgColor: 'ΧÏÏμα ΦÏνÏοÏ
',
+ borderColor: 'ΧÏÏμα ΠεÏιγÏάμμαÏοÏ',
+ data: 'ÎεδομÎνα',
+ header: 'ÎεÏαλίδα',
+ yes: 'Îαι',
+ no: 'ÎÏι',
+ invalidWidth: 'Το ÏλάÏÎ¿Ï ÏοÏ
ÎºÎµÎ»Î¹Î¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ invalidHeight: 'Το ÏÏÎ¿Ï ÏοÏ
ÎºÎµÎ»Î¹Î¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'ÎÏιλÎξÏε'
+ },
+ cellPad: 'ÎÎμιÏμα κελιÏν',
+ cellSpace: 'ÎιάÏÏημα κελιÏν',
+ column: {
+ menu: 'ΣÏήλη',
+ insertBefore: 'ÎιÏαγÏγή ΣÏÎ®Î»Î·Ï Î Ïιν',
+ insertAfter: 'ÎιÏαγÏγή ΣειÏÎ¬Ï ÎεÏά',
+ deleteColumn: 'ÎιαγÏαÏή ÎολÏνÏν'
+ },
+ columns: 'ÎολÏνεÏ',
+ deleteTable: 'ÎιαγÏαÏή Ïίνακα',
+ headers: 'ÎεÏαλίδεÏ',
+ headersBoth: 'Îαι Ïα δÏο',
+ headersColumn: 'Î ÏÏÏη ΣÏήλη',
+ headersNone: 'ÎανÎνα',
+ headersRow: 'Î ÏÏÏη ΣειÏά',
+ invalidBorder: 'Το ÏάÏÎ¿Ï ÏοÏ
ÏεÏιγÏάμμαÏÎ¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ invalidCellPadding: 'Το γÎμιÏμα μÎÏα ÏÏα κελιά ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ.',
+ invalidCellSpacing: 'ΠαÏÏÏÏαÏη μεÏÎ±Î¾Ï ÏÏν κελιÏν ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ.',
+ invalidCols: 'ΠαÏιθμÏÏ ÏÏν ÏÏηλÏν ÏÏÎÏει να είναι μεγαλÏÏεÏÎ¿Ï Î±ÏÏ 0.',
+ invalidHeight: 'Το ÏÏÎ¿Ï ÏοÏ
Ïίνακα ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ invalidRows: 'ΠαÏιθμÏÏ ÏÏν ÏειÏÏν ÏÏÎÏει να είναι μεγαλÏÏεÏÎ¿Ï Î±ÏÏ 0.',
+ invalidWidth: 'Το ÏλάÏÎ¿Ï ÏοÏ
Ïίνακα ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.',
+ menu: 'ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±',
+ row: {
+ menu: 'ΣειÏά',
+ insertBefore: 'ÎιÏαγÏγή ΣειÏÎ¬Ï ÎÏÏ Î Î¬Î½Ï',
+ insertAfter: 'ÎιÏαγÏγή ΣειÏÎ¬Ï ÎÏÏ ÎάÏÏ',
+ deleteRow: 'ÎιαγÏαÏή ÎÏαμμÏν'
+ },
+ rows: 'ÎÏαμμÎÏ',
+ summary: 'ΠεÏίληÏη',
+ title: 'ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±',
+ toolbar: 'ΠίνακαÏ',
+ widthPc: 'ÏÎ¿Î¹Ï ÎµÎºÎ±ÏÏ',
+ widthPx: 'pixels',
+ widthUnit: 'μονάδα ÏλάÏοÏ
Ï'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/en-au.js b/devel/third-party/ckeditor/plugins/table/lang/en-au.js
new file mode 100644
index 0000000..930dce4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/en-au.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'en-au', {
+ border: 'Border size',
+ caption: 'Caption',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Delete Cells',
+ merge: 'Merge Cells',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Cell padding',
+ cellSpace: 'Cell spacing',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Delete Columns'
+ },
+ columns: 'Columns',
+ deleteTable: 'Delete Table',
+ headers: 'Headers',
+ headersBoth: 'Both',
+ headersColumn: 'First column',
+ headersNone: 'None',
+ headersRow: 'First Row',
+ invalidBorder: 'Border size must be a number.',
+ invalidCellPadding: 'Cell padding must be a number.',
+ invalidCellSpacing: 'Cell spacing must be a number.',
+ invalidCols: 'Number of columns must be a number greater than 0.',
+ invalidHeight: 'Table height must be a number.',
+ invalidRows: 'Number of rows must be a number greater than 0.',
+ invalidWidth: 'Table width must be a number.',
+ menu: 'Table Properties',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Delete Rows'
+ },
+ rows: 'Rows',
+ summary: 'Summary',
+ title: 'Table Properties',
+ toolbar: 'Table',
+ widthPc: 'percent',
+ widthPx: 'pixels',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/en-ca.js b/devel/third-party/ckeditor/plugins/table/lang/en-ca.js
new file mode 100644
index 0000000..8ad8b72
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/en-ca.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'en-ca', {
+ border: 'Border size',
+ caption: 'Caption',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Delete Cells',
+ merge: 'Merge Cells',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Cell padding',
+ cellSpace: 'Cell spacing',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Delete Columns'
+ },
+ columns: 'Columns',
+ deleteTable: 'Delete Table',
+ headers: 'Headers',
+ headersBoth: 'Both',
+ headersColumn: 'First column',
+ headersNone: 'None',
+ headersRow: 'First Row',
+ invalidBorder: 'Border size must be a number.',
+ invalidCellPadding: 'Cell padding must be a number.',
+ invalidCellSpacing: 'Cell spacing must be a number.',
+ invalidCols: 'Number of columns must be a number greater than 0.',
+ invalidHeight: 'Table height must be a number.',
+ invalidRows: 'Number of rows must be a number greater than 0.',
+ invalidWidth: 'Table width must be a number.',
+ menu: 'Table Properties',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Delete Rows'
+ },
+ rows: 'Rows',
+ summary: 'Summary',
+ title: 'Table Properties',
+ toolbar: 'Table',
+ widthPc: 'percent',
+ widthPx: 'pixels',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/en-gb.js b/devel/third-party/ckeditor/plugins/table/lang/en-gb.js
new file mode 100644
index 0000000..dd8f5fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/en-gb.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'en-gb', {
+ border: 'Border size',
+ caption: 'Caption',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Delete Cells',
+ merge: 'Merge Cells',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Cell padding',
+ cellSpace: 'Cell spacing',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Delete Columns'
+ },
+ columns: 'Columns',
+ deleteTable: 'Delete Table',
+ headers: 'Headers',
+ headersBoth: 'Both',
+ headersColumn: 'First column',
+ headersNone: 'None',
+ headersRow: 'First Row',
+ invalidBorder: 'Border size must be a number.',
+ invalidCellPadding: 'Cell padding must be a number.',
+ invalidCellSpacing: 'Cell spacing must be a number.',
+ invalidCols: 'Number of columns must be a number greater than 0.',
+ invalidHeight: 'Table height must be a number.',
+ invalidRows: 'Number of rows must be a number greater than 0.',
+ invalidWidth: 'Table width must be a number.',
+ menu: 'Table Properties',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Delete Rows'
+ },
+ rows: 'Rows',
+ summary: 'Summary',
+ title: 'Table Properties',
+ toolbar: 'Table',
+ widthPc: 'percent',
+ widthPx: 'pixels',
+ widthUnit: 'width unit'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/en.js b/devel/third-party/ckeditor/plugins/table/lang/en.js
new file mode 100644
index 0000000..fb6121a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/en.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'en', {
+ border: 'Border size',
+ caption: 'Caption',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Delete Cells',
+ merge: 'Merge Cells',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Cell padding',
+ cellSpace: 'Cell spacing',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Delete Columns'
+ },
+ columns: 'Columns',
+ deleteTable: 'Delete Table',
+ headers: 'Headers',
+ headersBoth: 'Both',
+ headersColumn: 'First column',
+ headersNone: 'None',
+ headersRow: 'First Row',
+ invalidBorder: 'Border size must be a number.',
+ invalidCellPadding: 'Cell padding must be a positive number.',
+ invalidCellSpacing: 'Cell spacing must be a positive number.',
+ invalidCols: 'Number of columns must be a number greater than 0.',
+ invalidHeight: 'Table height must be a number.',
+ invalidRows: 'Number of rows must be a number greater than 0.',
+ invalidWidth: 'Table width must be a number.',
+ menu: 'Table Properties',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Delete Rows'
+ },
+ rows: 'Rows',
+ summary: 'Summary',
+ title: 'Table Properties',
+ toolbar: 'Table',
+ widthPc: 'percent',
+ widthPx: 'pixels',
+ widthUnit: 'width unit'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/eo.js b/devel/third-party/ckeditor/plugins/table/lang/eo.js
new file mode 100644
index 0000000..e44b701
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/eo.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'eo', {
+ border: 'Bordero',
+ caption: 'Tabeltitolo',
+ cell: {
+ menu: 'Äelo',
+ insertBefore: 'Enmeti Äelon AntaÅ',
+ insertAfter: 'Enmeti Äelon Post',
+ deleteCell: 'Forigi la Äelojn',
+ merge: 'Kunfandi la Äelojn',
+ mergeRight: 'Kunfandi dekstren',
+ mergeDown: 'Kunfandi malsupren ',
+ splitHorizontal: 'Horizontale dividi',
+ splitVertical: 'Vertikale dividi',
+ title: 'Äelatributoj',
+ cellType: 'Äeltipo',
+ rowSpan: 'Kunfando de linioj',
+ colSpan: 'Kunfando de kolumnoj',
+ wordWrap: 'Cezuro',
+ hAlign: 'Horizontala Äisrandigo',
+ vAlign: 'Vertikala Äisrandigo',
+ alignBaseline: 'Malsupro de la teksto',
+ bgColor: 'Fonkoloro',
+ borderColor: 'Borderkoloro',
+ data: 'Datenoj',
+ header: 'Supra paÄotitolo',
+ yes: 'Jes',
+ no: 'No',
+ invalidWidth: 'ÄellarÄo devas esti nombro.',
+ invalidHeight: 'Äelalto devas esti nombro.',
+ invalidRowSpan: 'Kunfando de linioj devas esti entjera nombro.',
+ invalidColSpan: 'Kunfando de kolumnoj devas esti entjera nombro.',
+ chooseColor: 'Elektu'
+ },
+ cellPad: 'Interna MarÄeno de la Äeloj',
+ cellSpace: 'Spaco inter la Äeloj',
+ column: {
+ menu: 'Kolumno',
+ insertBefore: 'Enmeti kolumnon antaÅ',
+ insertAfter: 'Enmeti kolumnon post',
+ deleteColumn: 'Forigi Kolumnojn'
+ },
+ columns: 'Kolumnoj',
+ deleteTable: 'Forigi Tabelon',
+ headers: 'Supraj PaÄotitoloj',
+ headersBoth: 'AmbaÅ',
+ headersColumn: 'Unua kolumno',
+ headersNone: 'Neniu',
+ headersRow: 'Unua linio',
+ invalidBorder: 'La bordergrando devas esti nombro.',
+ invalidCellPadding: 'La interna marÄeno en la Äeloj devas esti pozitiva nombro.',
+ invalidCellSpacing: 'La spaco inter la Äeloj devas esti pozitiva nombro.',
+ invalidCols: 'La nombro de la kolumnoj devas superi 0.',
+ invalidHeight: 'La tabelalto devas esti nombro.',
+ invalidRows: 'La nombro de la linioj devas superi 0.',
+ invalidWidth: 'La tabellarÄo devas esti nombro.',
+ menu: 'Atributoj de Tabelo',
+ row: {
+ menu: 'Linio',
+ insertBefore: 'Enmeti linion antaÅ',
+ insertAfter: 'Enmeti linion post',
+ deleteRow: 'Forigi Liniojn'
+ },
+ rows: 'Linioj',
+ summary: 'Resumo',
+ title: 'Atributoj de Tabelo',
+ toolbar: 'Tabelo',
+ widthPc: 'elcentoj',
+ widthPx: 'Rastrumeroj',
+ widthUnit: 'unuo de larÄo'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/es.js b/devel/third-party/ckeditor/plugins/table/lang/es.js
new file mode 100644
index 0000000..21f7fab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/es.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'es', {
+ border: 'Tamaño de Borde',
+ caption: 'TÃtulo',
+ cell: {
+ menu: 'Celda',
+ insertBefore: 'Insertar celda a la izquierda',
+ insertAfter: 'Insertar celda a la derecha',
+ deleteCell: 'Eliminar Celdas',
+ merge: 'Combinar Celdas',
+ mergeRight: 'Combinar a la derecha',
+ mergeDown: 'Combinar hacia abajo',
+ splitHorizontal: 'Dividir la celda horizontalmente',
+ splitVertical: 'Dividir la celda verticalmente',
+ title: 'Propiedades de celda',
+ cellType: 'Tipo de Celda',
+ rowSpan: 'Expandir filas',
+ colSpan: 'Expandir columnas',
+ wordWrap: 'Ajustar al contenido',
+ hAlign: 'Alineación Horizontal',
+ vAlign: 'Alineación Vertical',
+ alignBaseline: 'Linea de base',
+ bgColor: 'Color de fondo',
+ borderColor: 'Color de borde',
+ data: 'Datos',
+ header: 'Encabezado',
+ yes: 'SÃ',
+ no: 'No',
+ invalidWidth: 'La anchura de celda debe ser un número.',
+ invalidHeight: 'La altura de celda debe ser un número.',
+ invalidRowSpan: 'La expansión de filas debe ser un número entero.',
+ invalidColSpan: 'La expansión de columnas debe ser un número entero.',
+ chooseColor: 'Elegir'
+ },
+ cellPad: 'Esp. interior',
+ cellSpace: 'Esp. e/celdas',
+ column: {
+ menu: 'Columna',
+ insertBefore: 'Insertar columna a la izquierda',
+ insertAfter: 'Insertar columna a la derecha',
+ deleteColumn: 'Eliminar Columnas'
+ },
+ columns: 'Columnas',
+ deleteTable: 'Eliminar Tabla',
+ headers: 'Encabezados',
+ headersBoth: 'Ambas',
+ headersColumn: 'Primera columna',
+ headersNone: 'Ninguno',
+ headersRow: 'Primera fila',
+ invalidBorder: 'El tamaño del borde debe ser un número.',
+ invalidCellPadding: 'El espaciado interior debe ser un número.',
+ invalidCellSpacing: 'El espaciado entre celdas debe ser un número.',
+ invalidCols: 'El número de columnas debe ser un número mayor que 0.',
+ invalidHeight: 'La altura de tabla debe ser un número.',
+ invalidRows: 'El número de filas debe ser un número mayor que 0.',
+ invalidWidth: 'La anchura de tabla debe ser un número.',
+ menu: 'Propiedades de Tabla',
+ row: {
+ menu: 'Fila',
+ insertBefore: 'Insertar fila en la parte superior',
+ insertAfter: 'Insertar fila en la parte inferior',
+ deleteRow: 'Eliminar Filas'
+ },
+ rows: 'Filas',
+ summary: 'SÃntesis',
+ title: 'Propiedades de Tabla',
+ toolbar: 'Tabla',
+ widthPc: 'porcentaje',
+ widthPx: 'pixeles',
+ widthUnit: 'unidad de la anchura'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/et.js b/devel/third-party/ckeditor/plugins/table/lang/et.js
new file mode 100644
index 0000000..1d26420
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/et.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'et', {
+ border: 'Joone suurus',
+ caption: 'Tabeli tiitel',
+ cell: {
+ menu: 'Lahter',
+ insertBefore: 'Sisesta lahter enne',
+ insertAfter: 'Sisesta lahter peale',
+ deleteCell: 'Eemalda lahtrid',
+ merge: 'Ãhenda lahtrid',
+ mergeRight: 'Ãhenda paremale',
+ mergeDown: 'Ãhenda alla',
+ splitHorizontal: 'Poolita lahter horisontaalselt',
+ splitVertical: 'Poolita lahter vertikaalselt',
+ title: 'Lahtri omadused',
+ cellType: 'Lahtri liik',
+ rowSpan: 'Ridade vahe',
+ colSpan: 'Tulpade vahe',
+ wordWrap: 'Sõnade murdmine',
+ hAlign: 'Horisontaalne joondus',
+ vAlign: 'Vertikaalne joondus',
+ alignBaseline: 'Baasjoon',
+ bgColor: 'Tausta värv',
+ borderColor: 'Ãärise värv',
+ data: 'Andmed',
+ header: 'Päis',
+ yes: 'Jah',
+ no: 'Ei',
+ invalidWidth: 'Lahtri laius peab olema number.',
+ invalidHeight: 'Lahtri kõrgus peab olema number.',
+ invalidRowSpan: 'Ridade vahe peab olema täisarv.',
+ invalidColSpan: 'Tulpade vahe peab olema täisarv.',
+ chooseColor: 'Vali'
+ },
+ cellPad: 'Lahtri täidis',
+ cellSpace: 'Lahtri vahe',
+ column: {
+ menu: 'Veerg',
+ insertBefore: 'Sisesta veerg enne',
+ insertAfter: 'Sisesta veerg peale',
+ deleteColumn: 'Eemalda veerud'
+ },
+ columns: 'Veerud',
+ deleteTable: 'Kustuta tabel',
+ headers: 'Päised',
+ headersBoth: 'Mõlemad',
+ headersColumn: 'Esimene tulp',
+ headersNone: 'Puudub',
+ headersRow: 'Esimene rida',
+ invalidBorder: 'Ãärise suurus peab olema number.',
+ invalidCellPadding: 'Lahtrite polsterdus (padding) peab olema positiivne arv.',
+ invalidCellSpacing: 'Lahtrite vahe peab olema positiivne arv.',
+ invalidCols: 'Tulpade arv peab olema nullist suurem.',
+ invalidHeight: 'Tabeli kõrgus peab olema number.',
+ invalidRows: 'Ridade arv peab olema nullist suurem.',
+ invalidWidth: 'Tabeli laius peab olema number.',
+ menu: 'Tabeli omadused',
+ row: {
+ menu: 'Rida',
+ insertBefore: 'Sisesta rida enne',
+ insertAfter: 'Sisesta rida peale',
+ deleteRow: 'Eemalda read'
+ },
+ rows: 'Read',
+ summary: 'Kokkuvõte',
+ title: 'Tabeli omadused',
+ toolbar: 'Tabel',
+ widthPc: 'protsenti',
+ widthPx: 'pikslit',
+ widthUnit: 'laiuse ühik'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/eu.js b/devel/third-party/ckeditor/plugins/table/lang/eu.js
new file mode 100644
index 0000000..6dab99b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/eu.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'eu', {
+ border: 'Ertzaren Zabalera',
+ caption: 'Epigrafea',
+ cell: {
+ menu: 'Gelaxka',
+ insertBefore: 'Txertatu Gelaxka Aurretik',
+ insertAfter: 'Txertatu Gelaxka Ostean',
+ deleteCell: 'Kendu Gelaxkak',
+ merge: 'Batu Gelaxkak',
+ mergeRight: 'Elkartu Eskumara',
+ mergeDown: 'Elkartu Behera',
+ splitHorizontal: 'Banatu Gelaxkak Horizontalki',
+ splitVertical: 'Banatu Gelaxkak Bertikalki',
+ title: 'Gelaxken Ezaugarriak',
+ cellType: 'Gelaxka Mota',
+ rowSpan: 'Hedatutako Lerroak',
+ colSpan: 'Hedatutako Zutabeak',
+ wordWrap: 'Itzulbira',
+ hAlign: 'Lerrokatze Horizontala',
+ vAlign: 'Lerrokatze Bertikala',
+ alignBaseline: 'Oinarri-lerroan',
+ bgColor: 'Fondoaren Kolorea',
+ borderColor: 'Ertzaren Kolorea',
+ data: 'Data',
+ header: 'Goiburua',
+ yes: 'Bai',
+ no: 'Ez',
+ invalidWidth: 'Gelaxkaren zabalera zenbaki bat izan behar da.',
+ invalidHeight: 'Gelaxkaren altuera zenbaki bat izan behar da.',
+ invalidRowSpan: 'Lerroen hedapena zenbaki osoa izan behar da.',
+ invalidColSpan: 'Zutabeen hedapena zenbaki osoa izan behar da.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Gelaxken betegarria',
+ cellSpace: 'Gelaxka arteko tartea',
+ column: {
+ menu: 'Zutabea',
+ insertBefore: 'Txertatu Zutabea Aurretik',
+ insertAfter: 'Txertatu Zutabea Ostean',
+ deleteColumn: 'Ezabatu Zutabeak'
+ },
+ columns: 'Zutabeak',
+ deleteTable: 'Ezabatu Taula',
+ headers: 'Goiburuak',
+ headersBoth: 'Biak',
+ headersColumn: 'Lehen zutabea',
+ headersNone: 'Bat ere ez',
+ headersRow: 'Lehen lerroa',
+ invalidBorder: 'Ertzaren tamaina zenbaki bat izan behar da.',
+ invalidCellPadding: 'Gelaxken betegarria zenbaki bat izan behar da.',
+ invalidCellSpacing: 'Gelaxka arteko tartea zenbaki bat izan behar da.',
+ invalidCols: 'Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.',
+ invalidHeight: 'Taularen altuera zenbaki bat izan behar da.',
+ invalidRows: 'Lerro kopurua 0 baino handiagoa den zenbakia izan behar da.',
+ invalidWidth: 'Taularen zabalera zenbaki bat izan behar da.',
+ menu: 'Taularen Ezaugarriak',
+ row: {
+ menu: 'Lerroa',
+ insertBefore: 'Txertatu Lerroa Aurretik',
+ insertAfter: 'Txertatu Lerroa Ostean',
+ deleteRow: 'Ezabatu Lerroak'
+ },
+ rows: 'Lerroak',
+ summary: 'Laburpena',
+ title: 'Taularen Ezaugarriak',
+ toolbar: 'Taula',
+ widthPc: 'ehuneko',
+ widthPx: 'pixel',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/fa.js b/devel/third-party/ckeditor/plugins/table/lang/fa.js
new file mode 100644
index 0000000..5285baf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/fa.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'fa', {
+ border: 'Ø§ÙØ¯Ø§Ø²ÙÙ´ ÙØ¨Ù',
+ caption: 'عÙÙØ§Ù',
+ cell: {
+ menu: 'سÙÙÙ',
+ insertBefore: 'Ø§ÙØ²Ùد٠سÙÙÙ ÙØ¨Ù از',
+ insertAfter: 'Ø§ÙØ²Ùد٠سÙÙ٠بعد از',
+ deleteCell: 'ØØ°Ù سÙÙÙÙØ§',
+ merge: 'ادغاÙ
سÙÙÙÙØ§',
+ mergeRight: 'ادغاÙ
ب٠راست',
+ mergeDown: 'ادغاÙ
ب٠پاÛÛÙ',
+ splitHorizontal: 'جدا کرد٠اÙÙÛ Ø³ÙÙÙ',
+ splitVertical: 'جدا کرد٠عÙ
ÙØ¯Û سÙÙÙ',
+ title: 'ÙÛÚÚ¯ÛÙØ§Û سÙÙÙ',
+ cellType: 'ÙÙØ¹ سÙÙÙ',
+ rowSpan: 'Ù
ØØ¯Ùد٠ردÛÙÙØ§',
+ colSpan: 'Ù
ØØ¯Ùد٠ستÙÙÙØ§',
+ wordWrap: 'شکست٠کÙÙ
Ù',
+ hAlign: 'ÚÛÙØ´ اÙÙÛ',
+ vAlign: 'ÚÛÙØ´ عÙ
ÙØ¯Û',
+ alignBaseline: 'خط Ù
Ø¨ÙØ§',
+ bgColor: 'رÙÚ¯ زÙ
ÛÙÙ',
+ borderColor: 'رÙÚ¯ Ø®Ø·ÙØ·',
+ data: 'Ø§Ø·ÙØ§Ø¹Ø§Øª',
+ header: 'سرÙÙÛØ³',
+ yes: 'بÙÙ',
+ no: 'Ø®ÛØ±',
+ invalidWidth: 'عرض سÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidHeight: 'Ø§Ø±ØªÙØ§Ø¹ سÙÙÙ Ø¨Ø§ÛØ¯ عدد باشد.',
+ invalidRowSpan: 'Ù
ÙØ¯Ø§Ø± Ù
ØØ¯Ùد٠ردÛÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidColSpan: 'Ù
ÙØ¯Ø§Ø± Ù
ØØ¯Ùد٠ستÙÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ chooseColor: 'Ø§ÙØªØ®Ø§Ø¨'
+ },
+ cellPad: 'ÙØ§ØµÙÙÙ´ پرشد٠در سÙÙÙ',
+ cellSpace: 'ÙØ§ØµÙÙÙ´ Ù
ÛØ§Ù سÙÙÙÙØ§',
+ column: {
+ menu: 'ستÙÙ',
+ insertBefore: 'Ø§ÙØ²Ùد٠ستÙÙ ÙØ¨Ù از',
+ insertAfter: 'Ø§ÙØ²Ùد٠ستÙ٠بعد از',
+ deleteColumn: 'ØØ°Ù ستÙÙÙØ§'
+ },
+ columns: 'ستÙÙÙØ§',
+ deleteTable: 'پاک کرد٠جدÙÙ',
+ headers: 'سرÙÙÛØ³Ùا',
+ headersBoth: 'ÙØ±Ø¯Ù',
+ headersColumn: 'اÙÙÛ٠ستÙÙ',
+ headersNone: 'ÙÛÚ',
+ headersRow: 'اÙÙÛ٠ردÛÙ',
+ invalidBorder: 'Ù
ÙØ¯Ø§Ø± Ø§ÙØ¯Ø§Ø²Ù Ø®Ø·ÙØ· Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidCellPadding: 'Ø¨Ø§ÙØ´ØªÚ© سÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidCellSpacing: 'Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø³ÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidCols: 'تعداد ستÙÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد بزرگتر از 0 باشد.',
+ invalidHeight: 'Ù
ÙØ¯Ø§Ø± Ø§Ø±ØªÙØ§Ø¹ جدÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ invalidRows: 'تعداد ردÛÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد بزرگتر از 0 باشد.',
+ invalidWidth: 'Ù
ÙØ¯Ø§Ø± Ù¾ÙÙØ§Û جدÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.',
+ menu: 'ÙÛÚÚ¯ÛÙØ§Û جدÙÙ',
+ row: {
+ menu: 'سطر',
+ insertBefore: 'Ø§ÙØ²Ùد٠سطر ÙØ¨Ù از',
+ insertAfter: 'Ø§ÙØ²Ùد٠سطر بعد از',
+ deleteRow: 'ØØ°Ù Ø³Ø·Ø±ÙØ§'
+ },
+ rows: 'Ø³Ø·Ø±ÙØ§',
+ summary: 'Ø®ÙØ§ØµÙ',
+ title: 'ÙÛÚÚ¯ÛÙØ§Û جدÙÙ',
+ toolbar: 'جدÙÙ',
+ widthPc: 'درصد',
+ widthPx: 'Ù¾ÛکسÙ',
+ widthUnit: 'ÙØ§ØØ¯ Ù¾ÙÙØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/fi.js b/devel/third-party/ckeditor/plugins/table/lang/fi.js
new file mode 100644
index 0000000..ca42a12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/fi.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'fi', {
+ border: 'Rajan paksuus',
+ caption: 'Otsikko',
+ cell: {
+ menu: 'Solu',
+ insertBefore: 'Lisää solu eteen',
+ insertAfter: 'Lisää solu perään',
+ deleteCell: 'Poista solut',
+ merge: 'Yhdistä solut',
+ mergeRight: 'Yhdistä oikealla olevan kanssa',
+ mergeDown: 'Yhdistä alla olevan kanssa',
+ splitHorizontal: 'Jaa solu vaakasuunnassa',
+ splitVertical: 'Jaa solu pystysuunnassa',
+ title: 'Solun ominaisuudet',
+ cellType: 'Solun tyyppi',
+ rowSpan: 'Rivin jatkuvuus',
+ colSpan: 'Solun jatkuvuus',
+ wordWrap: 'Rivitys',
+ hAlign: 'Horisontaali kohdistus',
+ vAlign: 'Vertikaali kohdistus',
+ alignBaseline: 'Alas (teksti)',
+ bgColor: 'Taustan väri',
+ borderColor: 'Reunan väri',
+ data: 'Data',
+ header: 'Ylätunniste',
+ yes: 'Kyllä',
+ no: 'Ei',
+ invalidWidth: 'Solun leveyden täytyy olla numero.',
+ invalidHeight: 'Solun korkeuden täytyy olla numero.',
+ invalidRowSpan: 'Rivin jatkuvuuden täytyy olla kokonaisluku.',
+ invalidColSpan: 'Solun jatkuvuuden täytyy olla kokonaisluku.',
+ chooseColor: 'Valitse'
+ },
+ cellPad: 'Solujen sisennys',
+ cellSpace: 'Solujen väli',
+ column: {
+ menu: 'Sarake',
+ insertBefore: 'Lisää sarake vasemmalle',
+ insertAfter: 'Lisää sarake oikealle',
+ deleteColumn: 'Poista sarakkeet'
+ },
+ columns: 'Sarakkeet',
+ deleteTable: 'Poista taulu',
+ headers: 'Ylätunnisteet',
+ headersBoth: 'Molemmat',
+ headersColumn: 'Ensimmäinen sarake',
+ headersNone: 'Ei',
+ headersRow: 'Ensimmäinen rivi',
+ invalidBorder: 'Reunan koon täytyy olla numero.',
+ invalidCellPadding: 'Solujen sisennyksen täytyy olla numero.',
+ invalidCellSpacing: 'Solujen välin täytyy olla numero.',
+ invalidCols: 'Sarakkeiden määrän täytyy olla suurempi kuin 0.',
+ invalidHeight: 'Taulun korkeuden täytyy olla numero.',
+ invalidRows: 'Rivien määrän täytyy olla suurempi kuin 0.',
+ invalidWidth: 'Taulun leveyden täytyy olla numero.',
+ menu: 'Taulun ominaisuudet',
+ row: {
+ menu: 'Rivi',
+ insertBefore: 'Lisää rivi yläpuolelle',
+ insertAfter: 'Lisää rivi alapuolelle',
+ deleteRow: 'Poista rivit'
+ },
+ rows: 'Rivit',
+ summary: 'Yhteenveto',
+ title: 'Taulun ominaisuudet',
+ toolbar: 'Taulu',
+ widthPc: 'prosenttia',
+ widthPx: 'pikseliä',
+ widthUnit: 'leveysyksikkö'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/fo.js b/devel/third-party/ckeditor/plugins/table/lang/fo.js
new file mode 100644
index 0000000..02357fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/fo.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'fo', {
+ border: 'Bordabreidd',
+ caption: 'Tabellfrágreiðing',
+ cell: {
+ menu: 'Meski',
+ insertBefore: 'Set meska inn áðrenn',
+ insertAfter: 'Set meska inn aftaná',
+ deleteCell: 'Strika meskar',
+ merge: 'Flætta meskar',
+ mergeRight: 'Flætta meskar til høgru',
+ mergeDown: 'Flætta saman',
+ splitHorizontal: 'Kloyv meska vatnrætt',
+ splitVertical: 'Kloyv meska loddrætt',
+ title: 'Mesku eginleikar',
+ cellType: 'Mesku slag',
+ rowSpan: 'Ræð spenni',
+ colSpan: 'Kolonnu spenni',
+ wordWrap: 'Orðkloyving',
+ hAlign: 'Horisontal plasering',
+ vAlign: 'Loddrøtt plasering',
+ alignBaseline: 'Basislinja',
+ bgColor: 'Bakgrundslitur',
+ borderColor: 'Bordalitur',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Ja',
+ no: 'Nei',
+ invalidWidth: 'Meskubreidd má vera eitt tal.',
+ invalidHeight: 'Meskuhædd má vera eitt tal.',
+ invalidRowSpan: 'Raðspennið má vera eitt heiltal.',
+ invalidColSpan: 'Kolonnuspennið má vera eitt heiltal.',
+ chooseColor: 'Vel'
+ },
+ cellPad: 'Meskubreddi',
+ cellSpace: 'Fjarstøða millum meskar',
+ column: {
+ menu: 'Kolonna',
+ insertBefore: 'Set kolonnu inn áðrenn',
+ insertAfter: 'Set kolonnu inn aftaná',
+ deleteColumn: 'Strika kolonnur'
+ },
+ columns: 'Kolonnur',
+ deleteTable: 'Strika tabell',
+ headers: 'Yvirskriftir',
+ headersBoth: 'Báðir',
+ headersColumn: 'Fyrsta kolonna',
+ headersNone: 'Eingin',
+ headersRow: 'Fyrsta rað',
+ invalidBorder: 'Borda-stødd má vera eitt tal.',
+ invalidCellPadding: 'Cell padding má vera eitt tal.',
+ invalidCellSpacing: 'Cell spacing má vera eitt tal.',
+ invalidCols: 'Talið av kolonnum má vera eitt tal størri enn 0.',
+ invalidHeight: 'Tabell-hædd má vera eitt tal.',
+ invalidRows: 'Talið av røðum má vera eitt tal størri enn 0.',
+ invalidWidth: 'Tabell-breidd má vera eitt tal.',
+ menu: 'Eginleikar fyri tabell',
+ row: {
+ menu: 'Rað',
+ insertBefore: 'Set rað inn áðrenn',
+ insertAfter: 'Set rað inn aftaná',
+ deleteRow: 'Strika røðir'
+ },
+ rows: 'Røðir',
+ summary: 'Samandráttur',
+ title: 'Eginleikar fyri tabell',
+ toolbar: 'Tabell',
+ widthPc: 'prosent',
+ widthPx: 'pixels',
+ widthUnit: 'breiddar unit'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/table/lang/fr-ca.js
new file mode 100644
index 0000000..bce6972
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/fr-ca.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'fr-ca', {
+ border: 'Taille de la bordure',
+ caption: 'Titre',
+ cell: {
+ menu: 'Cellule',
+ insertBefore: 'Insérer une cellule avant',
+ insertAfter: 'Insérer une cellule après',
+ deleteCell: 'Supprimer des cellules',
+ merge: 'Fusionner les cellules',
+ mergeRight: 'Fusionner à droite',
+ mergeDown: 'Fusionner en bas',
+ splitHorizontal: 'Scinder la cellule horizontalement',
+ splitVertical: 'Scinder la cellule verticalement',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Contour',
+ cellSpace: 'Espacement',
+ column: {
+ menu: 'Colonne',
+ insertBefore: 'Insérer une colonne avant',
+ insertAfter: 'Insérer une colonne après',
+ deleteColumn: 'Supprimer des colonnes'
+ },
+ columns: 'Colonnes',
+ deleteTable: 'Supprimer le tableau',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Propriétés du tableau',
+ row: {
+ menu: 'Ligne',
+ insertBefore: 'Insérer une ligne avant',
+ insertAfter: 'Insérer une ligne après',
+ deleteRow: 'Supprimer des lignes'
+ },
+ rows: 'Lignes',
+ summary: 'Résumé',
+ title: 'Propriétés du tableau',
+ toolbar: 'Tableau',
+ widthPc: 'pourcentage',
+ widthPx: 'pixels',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/fr.js b/devel/third-party/ckeditor/plugins/table/lang/fr.js
new file mode 100644
index 0000000..f019d4b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/fr.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'fr', {
+ border: 'Taille de la bordure',
+ caption: 'Titre du tableau',
+ cell: {
+ menu: 'Cellule',
+ insertBefore: 'Insérer une cellule avant',
+ insertAfter: 'Insérer une cellule après',
+ deleteCell: 'Supprimer les cellules',
+ merge: 'Fusionner les cellules',
+ mergeRight: 'Fusionner à droite',
+ mergeDown: 'Fusionner en bas',
+ splitHorizontal: 'Fractionner horizontalement',
+ splitVertical: 'Fractionner verticalement',
+ title: 'Propriétés de la cellule',
+ cellType: 'Type de cellule',
+ rowSpan: 'Fusion de lignes',
+ colSpan: 'Fusion de colonnes',
+ wordWrap: 'Césure',
+ hAlign: 'Alignement Horizontal',
+ vAlign: 'Alignement Vertical',
+ alignBaseline: 'Bas du texte',
+ bgColor: 'Couleur d\'arrière-plan',
+ borderColor: 'Couleur de Bordure',
+ data: 'Données',
+ header: 'Entête',
+ yes: 'Oui',
+ no: 'Non',
+ invalidWidth: 'La Largeur de Cellule doit être un nombre.',
+ invalidHeight: 'La Hauteur de Cellule doit être un nombre.',
+ invalidRowSpan: 'La fusion de lignes doit être un nombre entier.',
+ invalidColSpan: 'La fusion de colonnes doit être un nombre entier.',
+ chooseColor: 'Choisissez'
+ },
+ cellPad: 'Marge interne des cellules',
+ cellSpace: 'Espacement des cellules',
+ column: {
+ menu: 'Colonnes',
+ insertBefore: 'Insérer une colonne avant',
+ insertAfter: 'Insérer une colonne après',
+ deleteColumn: 'Supprimer les colonnes'
+ },
+ columns: 'Colonnes',
+ deleteTable: 'Supprimer le tableau',
+ headers: 'En-Têtes',
+ headersBoth: 'Les deux',
+ headersColumn: 'Première colonne',
+ headersNone: 'Aucunes',
+ headersRow: 'Première ligne',
+ invalidBorder: 'La taille de la bordure doit être un nombre.',
+ invalidCellPadding: 'La marge intérieure des cellules doit être un nombre positif.',
+ invalidCellSpacing: 'L\'espacement des cellules doit être un nombre positif.',
+ invalidCols: 'Le nombre de colonnes doit être supérieur à 0.',
+ invalidHeight: 'La hauteur du tableau doit être un nombre.',
+ invalidRows: 'Le nombre de lignes doit être supérieur à 0.',
+ invalidWidth: 'La largeur du tableau doit être un nombre.',
+ menu: 'Propriétés du tableau',
+ row: {
+ menu: 'Ligne',
+ insertBefore: 'Insérer une ligne avant',
+ insertAfter: 'Insérer une ligne après',
+ deleteRow: 'Supprimer les lignes'
+ },
+ rows: 'Lignes',
+ summary: 'Résumé (description)',
+ title: 'Propriétés du tableau',
+ toolbar: 'Tableau',
+ widthPc: '% pourcents',
+ widthPx: 'pixels',
+ widthUnit: 'unité de largeur'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/gl.js b/devel/third-party/ckeditor/plugins/table/lang/gl.js
new file mode 100644
index 0000000..c7a485c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/gl.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'gl', {
+ border: 'Tamaño do Borde',
+ caption: 'TÃtulo',
+ cell: {
+ menu: 'Cela',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Borrar Cela',
+ merge: 'Unir Celas',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Marxe interior',
+ cellSpace: 'Marxe entre Celas',
+ column: {
+ menu: 'Columna',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Borrar Columnas'
+ },
+ columns: 'Columnas',
+ deleteTable: 'Borrar Táboa',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Propiedades da Táboa',
+ row: {
+ menu: 'Fila',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Borrar Filas'
+ },
+ rows: 'Filas',
+ summary: 'Sumario',
+ title: 'Propiedades da Táboa',
+ toolbar: 'Tabla',
+ widthPc: 'percent',
+ widthPx: 'pixels',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/gu.js b/devel/third-party/ckeditor/plugins/table/lang/gu.js
new file mode 100644
index 0000000..e950fad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/gu.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'gu', {
+ border: 'àªà«àª ાનૠબાàªà«(બà«àª°à«àª¡àª°) સાàªàª',
+ caption: 'મથાળà«àª/àªà«
પà«àª¶àª¨ ',
+ cell: {
+ menu: 'àªà«àª·àª¨àª¾ àªàª¾àª¨àª¾',
+ insertBefore: 'પહà«àª²àª¾àª àªà«àª· àªàª®à«àª°àªµà«',
+ insertAfter: 'પàªà« àªà«àª· àªàª®à«àª°àªµà«',
+ deleteCell: 'àªà«àª· ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«',
+ merge: 'àªà«àª· àªà«àªàª¾ àªàª°àªµàª¾',
+ mergeRight: 'àªàª®àª£à« બાàªà« àªà«àªàª¾ àªàª°àªµàª¾',
+ mergeDown: 'નà«àªà« àªà«àªàª¾ àªàª°àªµàª¾',
+ splitHorizontal: 'àªà«àª·àª¨à« સમસà«àª¤àª°à«àª¯ વિàªàª¾àªàª¨ àªàª°àªµà«àª',
+ splitVertical: 'àªà«àª·àª¨à« સà«àª§à«àª નૠàªàªà«àª વિàªàª¾àªàª¨ àªàª°àªµà«àª',
+ title: 'સà«àª²àª¨àª¾ àªà«àª£',
+ cellType: 'સà«àª²àª¨à« પà«àª°àªàª¾àª°',
+ rowSpan: 'àªàª¡à« àªàªàª¾àª°àª¨à« àªàªà«àª¯àª¾',
+ colSpan: 'àªàªà« àªàª¤àª¾àª°àª¨à« àªàªà«àª¯àª¾',
+ wordWrap: 'વરà«àª¡ રà«àªª',
+ hAlign: 'સપાઠલાàªàª¨àª¦à«àª°à«',
+ vAlign: 'àªàªà« લાàªàª¨àª¦à«àª°à«',
+ alignBaseline: 'બસૠલાàªàª¨',
+ bgColor: 'પાàªàª¾àª³àª¨à« રàªàª',
+ borderColor: 'બà«àª°à«àª¡à«àª° રàªàª',
+ data: 'સà«àªµà«àªà«àª¤ માહિતà«',
+ header: 'મથાળà«àª',
+ yes: 'હા',
+ no: 'ના',
+ invalidWidth: 'સà«àª²àª¨à« પà«àª¹àª²àª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ invalidHeight: 'સà«àª²àª¨à« àªàªàªàª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ invalidRowSpan: 'રૠસà«àªªàª¾àª¨ àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ invalidColSpan: 'àªà«àª²àª® સà«àªªàª¾àª¨ àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ chooseColor: 'પસàªàª¦ àªàª°àªµà«àª'
+ },
+ cellPad: 'સà«àª² પà«
ડિàªàª',
+ cellSpace: 'સà«àª² àª
àªàª¤àª°',
+ column: {
+ menu: 'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',
+ insertBefore: 'પહà«àª²àª¾àª àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«',
+ insertAfter: 'પàªà« àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«',
+ deleteColumn: 'àªà«àª²àª®/àªàªà« àªàªàª¾àª° ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«'
+ },
+ columns: 'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',
+ deleteTable: 'àªà«àª ૠડિલà«àª/àªàª¾àª¢à« નાàªàªµà«àª',
+ headers: 'મથાળા',
+ headersBoth: 'બà«àªµà«àª',
+ headersColumn: 'પહà«àª²à« àªàªà« àªàªàª¾àª°',
+ headersNone: 'નથૠ',
+ headersRow: 'પહà«àª²à« àªàªàª¾àª°',
+ invalidBorder: 'બà«àª°à«àª¡àª° àªàª àªàªàªàª¡à« હà«àªµà« àªà«àªàª',
+ invalidCellPadding: 'સà«àª²àª¨à« àª
àªàª¦àª°àª¨à« àªàªà«àª¯àª¾ સà«àª¨à«àª¯ àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.',
+ invalidCellSpacing: 'સà«àª² વàªà«àªà«àª¨à« àªàªà«àª¯àª¾ સà«àª¨à«àª¯ àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.',
+ invalidCols: 'àªàªà« àªàªàª¾àª°, 0 àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.',
+ invalidHeight: 'àªà«àª¬àª²àª¨à« àªàªàªàª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ invalidRows: 'àªàª¡à« àªàªàª¾àª°, 0 àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.',
+ invalidWidth: 'àªà«àª¬àª²àª¨à« પà«àª¹àª²àª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.',
+ menu: 'àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª',
+ row: {
+ menu: 'પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾',
+ insertBefore: 'પહà«àª²àª¾àª પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«',
+ insertAfter: 'પàªà« પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«',
+ deleteRow: 'પàªàªà«àª¤àª¿àª ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«'
+ },
+ rows: 'પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾',
+ summary: 'àªà«àªàªà« àªàª¹à«àªµàª¾àª²',
+ title: 'àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª',
+ toolbar: 'àªà«àª¬àª², àªà«àª à«',
+ widthPc: 'પà«àª°àª¤àª¿àª¶àª¤',
+ widthPx: 'પિàªàª¸àª²',
+ widthUnit: 'પà«àª¹àª¾àª²àª¾àª àªàªàª®'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/he.js b/devel/third-party/ckeditor/plugins/table/lang/he.js
new file mode 100644
index 0000000..d50a460
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/he.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'he', {
+ border: '×××× ×ס×רת',
+ caption: '××ת××',
+ cell: {
+ menu: '××פ××× × ×ª×',
+ insertBefore: '××ספת ×ª× ××¤× ×',
+ insertAfter: '××ספת ×ª× ××ר×',
+ deleteCell: '×××קת ת×××',
+ merge: '××××× ×ª×××',
+ mergeRight: '××× ×××× ×',
+ mergeDown: '××× ××××',
+ splitHorizontal: 'פ×צ×× ×ª× ××פק×ת',
+ splitVertical: 'פ×צ×× ×ª× ×× ××ת',
+ title: 'ת××× ×ת ×ת×',
+ cellType: 'ס×× ×ת×',
+ rowSpan: '×ת××ת ×ש×ר×ת',
+ colSpan: '×ת××ת ×ת×××',
+ wordWrap: '×× ×עת ×××שת ש×ר×ת',
+ hAlign: '××ש×ר ××פק×',
+ vAlign: '××ש×ר ×× ××',
+ alignBaseline: 'ש×רת ×ס×ס',
+ bgColor: 'צ××¢ רקע',
+ borderColor: 'צ××¢ ×ס×רת',
+ data: '××××¢',
+ header: '××תרת',
+ yes: '××',
+ no: '××',
+ invalidWidth: 'ש×× ×¨××× ××ª× ×××× ××××ת ×ספר.',
+ invalidHeight: 'ש×× ×××× ××ª× ×××× ××××ת ×ספר.',
+ invalidRowSpan: 'ש×× ×ת××ת ×ש×ר×ת ×××× ××××ת ×ספר ש××.',
+ invalidColSpan: 'ש×× ×ת××ת ××¢××××ת ×××× ××××ת ×ספר ש××.',
+ chooseColor: '××ר'
+ },
+ cellPad: 'ר×פ×× ×ª×',
+ cellSpace: '×ר××× ×ª×',
+ column: {
+ menu: '×¢××××',
+ insertBefore: '××ספת ×¢×××× ××¤× ×',
+ insertAfter: '××ספת ×¢×××× ××ר×',
+ deleteColumn: '×××קת ×¢××××ת'
+ },
+ columns: '×¢××××ת',
+ deleteTable: '×××§ ××××',
+ headers: '××תר×ת',
+ headersBoth: '×©× ×××',
+ headersColumn: '×¢×××× ×¨×ש×× ×',
+ headersNone: '×××',
+ headersRow: 'ש××¨× ×¨×ש×× ×',
+ invalidBorder: 'ש×× ×××× ××ס×רת ×××× ××××ת ×ספר.',
+ invalidCellPadding: 'ש×× ×¨×פ×× ×ת××× ×××× ××××ת ×ספר ×××××.',
+ invalidCellSpacing: 'ש×× ×¨×××× ×ת××× ×××× ××××ת ×ספר ×××××.',
+ invalidCols: 'ש×× ×ספר ××¢××××ת ×××× ××××ת ×ספר ×××× × 0.',
+ invalidHeight: 'ש×× ×××× ××××× ×××× ××××ת ×ספר.',
+ invalidRows: 'ש×× ×ספר ×ש×ר×ת ×××× ××××ת ×ספר ×××× × 0.',
+ invalidWidth: 'ש×× ×¨××× ××××× ×××× ××××ת ×ספר.',
+ menu: '××פ××× × ××××',
+ row: {
+ menu: 'ש×ר×',
+ insertBefore: '××ספת ש××¨× ××¤× ×',
+ insertAfter: '××ספת ש××¨× ××ר×',
+ deleteRow: '×××קת ש×ר×ת'
+ },
+ rows: 'ש×ר×ת',
+ summary: 'תקצ×ר',
+ title: '××פ××× × ××××',
+ toolbar: '××××',
+ widthPc: '××××',
+ widthPx: 'פ×קס×××',
+ widthUnit: '××××ת ר×××'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/hi.js b/devel/third-party/ckeditor/plugins/table/lang/hi.js
new file mode 100644
index 0000000..a8212eb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/hi.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'hi', {
+ border: 'बà¥à¤°à¥à¤¡à¤° साà¤à¥',
+ caption: 'शà¥à¤°à¥à¤·à¤',
+ cell: {
+ menu: 'à¤à¤¾à¤¨à¤¾',
+ insertBefore: 'पहलॠसà¥à¤² डालà¥à¤',
+ insertAfter: 'बाद मà¥à¤ सà¥à¤² डालà¥à¤',
+ deleteCell: 'सà¥à¤² डिलà¥à¤ à¤à¤°à¥à¤',
+ merge: 'सà¥à¤² मिलायà¥à¤',
+ mergeRight: 'बाà¤à¤¯à¤¾ विलय',
+ mergeDown: 'नà¥à¤à¥ विलय à¤à¤°à¥à¤',
+ splitHorizontal: 'सà¥à¤² à¤à¥ à¤à¥à¤·à¥à¤¤à¤¿à¤ सà¥à¤¥à¤¿à¤¤à¤¿ मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤',
+ splitVertical: 'सà¥à¤² à¤à¥ लमà¥à¤¬à¤¾à¤à¤¾à¤° मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'सà¥à¤² पà¥à¤¡à¤¿à¤à¤',
+ cellSpace: 'सà¥à¤² à¤
à¤à¤¤à¤°',
+ column: {
+ menu: 'à¤à¤¾à¤²à¤®',
+ insertBefore: 'पहलॠà¤à¤¾à¤²à¤® डालà¥à¤',
+ insertAfter: 'बाद मà¥à¤ à¤à¤¾à¤²à¤® डालà¥à¤',
+ deleteColumn: 'à¤à¤¾à¤²à¤® डिलà¥à¤ à¤à¤°à¥à¤'
+ },
+ columns: 'à¤à¤¾à¤²à¤®',
+ deleteTable: 'à¤à¥à¤¬à¤² डिलà¥à¤ à¤à¤°à¥à¤',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ row: {
+ menu: 'पà¤à¤à¥à¤¤à¤¿',
+ insertBefore: 'पहलॠपà¤à¤à¥à¤¤à¤¿ डालà¥à¤',
+ insertAfter: 'बाद मà¥à¤ पà¤à¤à¥à¤¤à¤¿ डालà¥à¤',
+ deleteRow: 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤ डिलà¥à¤ à¤à¤°à¥à¤'
+ },
+ rows: 'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤',
+ summary: 'साराà¤à¤¶',
+ title: 'à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',
+ toolbar: 'à¤à¥à¤¬à¤²',
+ widthPc: 'पà¥à¤°à¤¤à¤¿à¤¶à¤¤',
+ widthPx: 'पिà¤à¥à¤¸à¥à¤²',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/hr.js b/devel/third-party/ckeditor/plugins/table/lang/hr.js
new file mode 100644
index 0000000..cea8388
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/hr.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'hr', {
+ border: 'VeliÄina okvira',
+ caption: 'Naslov',
+ cell: {
+ menu: 'Äelija',
+ insertBefore: 'Ubaci Äeliju prije',
+ insertAfter: 'Ubaci Äeliju poslije',
+ deleteCell: 'IzbriÅ¡i Äelije',
+ merge: 'Spoji Äelije',
+ mergeRight: 'Spoji desno',
+ mergeDown: 'Spoji dolje',
+ splitHorizontal: 'Podijeli Äeliju vodoravno',
+ splitVertical: 'Podijeli Äeliju okomito',
+ title: 'Svojstva Äelije',
+ cellType: 'Vrsta Äelije',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Prelazak u novi red',
+ hAlign: 'Vodoravno poravnanje',
+ vAlign: 'Okomito poravnanje',
+ alignBaseline: 'Osnovna linija',
+ bgColor: 'Boja pozadine',
+ borderColor: 'Boja ruba',
+ data: 'Podatak',
+ header: 'Zaglavlje',
+ yes: 'Da',
+ no: 'ne',
+ invalidWidth: 'Å irina Äelije mora biti broj.',
+ invalidHeight: 'Visina Äelije mora biti broj.',
+ invalidRowSpan: 'Rows span mora biti cijeli broj.',
+ invalidColSpan: 'Columns span mora biti cijeli broj.',
+ chooseColor: 'Odaberi'
+ },
+ cellPad: 'Razmak Äelija',
+ cellSpace: 'Prostornost Äelija',
+ column: {
+ menu: 'Kolona',
+ insertBefore: 'Ubaci kolonu prije',
+ insertAfter: 'Ubaci kolonu poslije',
+ deleteColumn: 'Izbriši kolone'
+ },
+ columns: 'Kolona',
+ deleteTable: 'Izbriši tablicu',
+ headers: 'Zaglavlje',
+ headersBoth: 'Oba',
+ headersColumn: 'Prva kolona',
+ headersNone: 'Ništa',
+ headersRow: 'Prvi red',
+ invalidBorder: 'Debljina ruba mora biti broj.',
+ invalidCellPadding: 'Razmak Äelija mora biti broj.',
+ invalidCellSpacing: 'Prostornost Äelija mora biti broj.',
+ invalidCols: 'Broj kolona mora biti broj veÄi od 0.',
+ invalidHeight: 'Visina tablice mora biti broj.',
+ invalidRows: 'Broj redova mora biti broj veÄi od 0.',
+ invalidWidth: 'Å irina tablice mora biti broj.',
+ menu: 'Svojstva tablice',
+ row: {
+ menu: 'Red',
+ insertBefore: 'Ubaci red prije',
+ insertAfter: 'Ubaci red poslije',
+ deleteRow: 'Izbriši redove'
+ },
+ rows: 'Redova',
+ summary: 'Sažetak',
+ title: 'Svojstva tablice',
+ toolbar: 'Tablica',
+ widthPc: 'postotaka',
+ widthPx: 'piksela',
+ widthUnit: 'jedinica širine'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/hu.js b/devel/third-party/ckeditor/plugins/table/lang/hu.js
new file mode 100644
index 0000000..e2f2729
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/hu.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'hu', {
+ border: 'Szegélyméret',
+ caption: 'Felirat',
+ cell: {
+ menu: 'Cella',
+ insertBefore: 'Beszúrás balra',
+ insertAfter: 'Beszúrás jobbra',
+ deleteCell: 'Cellák törlése',
+ merge: 'Cellák egyesÃtése',
+ mergeRight: 'Cellák egyesÃtése jobbra',
+ mergeDown: 'Cellák egyesÃtése lefelé',
+ splitHorizontal: 'Cellák szétválasztása vÃzszintesen',
+ splitVertical: 'Cellák szétválasztása függÅlegesen',
+ title: 'Cella tulajdonságai',
+ cellType: 'Cella tÃpusa',
+ rowSpan: 'FüggÅleges egyesÃtés',
+ colSpan: 'VÃzszintes egyesÃtés',
+ wordWrap: 'Hosszú sorok törése',
+ hAlign: 'VÃzszintes igazÃtás',
+ vAlign: 'FüggÅleges igazÃtás',
+ alignBaseline: 'Alapvonalra',
+ bgColor: 'Háttér szÃne',
+ borderColor: 'Keret szÃne',
+ data: 'Adat',
+ header: 'Fejléc',
+ yes: 'Igen',
+ no: 'Nem',
+ invalidWidth: 'A szélesség mezÅbe csak számokat Ãrhat.',
+ invalidHeight: 'A magasság mezÅbe csak számokat Ãrhat.',
+ invalidRowSpan: 'A függÅleges egyesÃtés mezÅbe csak számokat Ãrhat.',
+ invalidColSpan: 'A vÃzszintes egyesÃtés mezÅbe csak számokat Ãrhat.',
+ chooseColor: 'Válasszon'
+ },
+ cellPad: 'Cella belsŠmargó',
+ cellSpace: 'Cella térköz',
+ column: {
+ menu: 'Oszlop',
+ insertBefore: 'Beszúrás balra',
+ insertAfter: 'Beszúrás jobbra',
+ deleteColumn: 'Oszlopok törlése'
+ },
+ columns: 'Oszlopok',
+ deleteTable: 'Táblázat törlése',
+ headers: 'Fejlécek',
+ headersBoth: 'MindkettÅ',
+ headersColumn: 'ElsÅ oszlop',
+ headersNone: 'Nincsenek',
+ headersRow: 'ElsÅ sor',
+ invalidBorder: 'A szegélyméret mezÅbe csak számokat Ãrhat.',
+ invalidCellPadding: 'A cella belsÅ margó mezÅbe csak számokat Ãrhat.',
+ invalidCellSpacing: 'A cella térköz mezÅbe csak számokat Ãrhat.',
+ invalidCols: 'Az oszlopok számának nagyobbnak kell lenni mint 0.',
+ invalidHeight: 'A magasság mezÅbe csak számokat Ãrhat.',
+ invalidRows: 'A sorok számának nagyobbnak kell lenni mint 0.',
+ invalidWidth: 'A szélesség mezÅbe csak számokat Ãrhat.',
+ menu: 'Táblázat tulajdonságai',
+ row: {
+ menu: 'Sor',
+ insertBefore: 'Beszúrás fölé',
+ insertAfter: 'Beszúrás alá',
+ deleteRow: 'Sorok törlése'
+ },
+ rows: 'Sorok',
+ summary: 'LeÃrás',
+ title: 'Táblázat tulajdonságai',
+ toolbar: 'Táblázat',
+ widthPc: 'százalék',
+ widthPx: 'képpont',
+ widthUnit: 'Szélesség egység'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/is.js b/devel/third-party/ckeditor/plugins/table/lang/is.js
new file mode 100644
index 0000000..a9710d0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/is.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'is', {
+ border: 'Breidd ramma',
+ caption: 'Titill',
+ cell: {
+ menu: 'Reitur',
+ insertBefore: 'Skjóta inn reiti fyrir aftan',
+ insertAfter: 'Skjóta inn reiti fyrir framan',
+ deleteCell: 'Fella reit',
+ merge: 'Sameina reiti',
+ mergeRight: 'Sameina til hægri',
+ mergeDown: 'Sameina niður á við',
+ splitHorizontal: 'Kljúfa reit lárétt',
+ splitVertical: 'Kljúfa reit lóðrétt',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'ReitaspássÃa',
+ cellSpace: 'Bil milli reita',
+ column: {
+ menu: 'Dálkur',
+ insertBefore: 'Skjóta inn dálki vinstra megin',
+ insertAfter: 'Skjóta inn dálki hægra megin',
+ deleteColumn: 'Fella dálk'
+ },
+ columns: 'Dálkar',
+ deleteTable: 'Fella töflu',
+ headers: 'Fyrirsagnir',
+ headersBoth: 'Hvort tveggja',
+ headersColumn: 'Fyrsti dálkur',
+ headersNone: 'Engar',
+ headersRow: 'Fyrsta röð',
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Eigindi töflu',
+ row: {
+ menu: 'Röð',
+ insertBefore: 'Skjóta inn röð fyrir ofan',
+ insertAfter: 'Skjóta inn röð fyrir neðan',
+ deleteRow: 'Eyða röð'
+ },
+ rows: 'Raðir',
+ summary: 'Ãfram',
+ title: 'Eigindi töflu',
+ toolbar: 'Tafla',
+ widthPc: 'prósent',
+ widthPx: 'myndeindir',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/it.js b/devel/third-party/ckeditor/plugins/table/lang/it.js
new file mode 100644
index 0000000..fb8449f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/it.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'it', {
+ border: 'Dimensione bordo',
+ caption: 'Intestazione',
+ cell: {
+ menu: 'Cella',
+ insertBefore: 'Inserisci Cella Prima',
+ insertAfter: 'Inserisci Cella Dopo',
+ deleteCell: 'Elimina celle',
+ merge: 'Unisce celle',
+ mergeRight: 'Unisci a Destra',
+ mergeDown: 'Unisci in Basso',
+ splitHorizontal: 'Dividi Cella Orizzontalmente',
+ splitVertical: 'Dividi Cella Verticalmente',
+ title: 'Proprietà della cella',
+ cellType: 'Tipo di cella',
+ rowSpan: 'Su più righe',
+ colSpan: 'Su più colonne',
+ wordWrap: 'Ritorno a capo',
+ hAlign: 'Allineamento orizzontale',
+ vAlign: 'Allineamento verticale',
+ alignBaseline: 'Linea Base',
+ bgColor: 'Colore di Sfondo',
+ borderColor: 'Colore del Bordo',
+ data: 'Dati',
+ header: 'Intestazione',
+ yes: 'Si',
+ no: 'No',
+ invalidWidth: 'La larghezza della cella dev\'essere un numero.',
+ invalidHeight: 'L\'altezza della cella dev\'essere un numero.',
+ invalidRowSpan: 'Il numero di righe dev\'essere un numero intero.',
+ invalidColSpan: 'Il numero di colonne dev\'essere un numero intero.',
+ chooseColor: 'Scegli'
+ },
+ cellPad: 'Padding celle',
+ cellSpace: 'Spaziatura celle',
+ column: {
+ menu: 'Colonna',
+ insertBefore: 'Inserisci Colonna Prima',
+ insertAfter: 'Inserisci Colonna Dopo',
+ deleteColumn: 'Elimina colonne'
+ },
+ columns: 'Colonne',
+ deleteTable: 'Cancella Tabella',
+ headers: 'Intestazione',
+ headersBoth: 'Entrambe',
+ headersColumn: 'Prima Colonna',
+ headersNone: 'Nessuna',
+ headersRow: 'Prima Riga',
+ invalidBorder: 'La dimensione del bordo dev\'essere un numero.',
+ invalidCellPadding: 'Il paging delle celle dev\'essere un numero',
+ invalidCellSpacing: 'La spaziatura tra le celle dev\'essere un numero.',
+ invalidCols: 'Il numero di colonne dev\'essere un numero maggiore di 0.',
+ invalidHeight: 'L\'altezza della tabella dev\'essere un numero.',
+ invalidRows: 'Il numero di righe dev\'essere un numero maggiore di 0.',
+ invalidWidth: 'La larghezza della tabella dev\'essere un numero.',
+ menu: 'Proprietà tabella',
+ row: {
+ menu: 'Riga',
+ insertBefore: 'Inserisci Riga Prima',
+ insertAfter: 'Inserisci Riga Dopo',
+ deleteRow: 'Elimina righe'
+ },
+ rows: 'Righe',
+ summary: 'Indice',
+ title: 'Proprietà tabella',
+ toolbar: 'Tabella',
+ widthPc: 'percento',
+ widthPx: 'pixel',
+ widthUnit: 'unità larghezza'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ja.js b/devel/third-party/ckeditor/plugins/table/lang/ja.js
new file mode 100644
index 0000000..344356f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ja.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ja', {
+ border: 'ãã¼ãã¼ãµã¤ãº',
+ caption: 'ãã£ãã·ã§ã³',
+ cell: {
+ menu: 'ã»ã«',
+ insertBefore: 'ã»ã«ã®åã«æ¿å
¥',
+ insertAfter: 'ã»ã«ã®å¾ã«æ¿å
¥',
+ deleteCell: 'ã»ã«åé¤',
+ merge: 'ã»ã«çµå',
+ mergeRight: 'å³ã«çµå',
+ mergeDown: 'ä¸ã«çµå',
+ splitHorizontal: 'ã»ã«ãæ°´å¹³æ¹ååå²',
+ splitVertical: 'ã»ã«ãåç´æ¹åã«åå²',
+ title: 'ã»ã«ããããã£',
+ cellType: 'ã»ã«ã¿ã¤ã',
+ rowSpan: '縦å¹
(è¡æ°)',
+ colSpan: '横å¹
(åæ°)',
+ wordWrap: 'æãè¿ã',
+ hAlign: 'ã»ã«æ¨ªã®æ´å',
+ vAlign: 'ã»ã«ç¸¦ã®æ´å',
+ alignBaseline: 'ãã¼ã¹ã©ã¤ã³',
+ bgColor: 'èæ¯è²',
+ borderColor: 'ãã¼ãã¼ã«ã©ã¼',
+ data: 'ãã¼ãã«ãã¼ã¿(td)',
+ header: 'ãã¼ãã«ããã(th)',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'ã»ã«å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidHeight: 'ã»ã«é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidRowSpan: '縦å¹
(è¡æ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidColSpan: '横å¹
(åæ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ chooseColor: 'è²ã®é¸æ'
+ },
+ cellPad: 'ã»ã«å
éé',
+ cellSpace: 'ã»ã«å
ä½ç½',
+ column: {
+ menu: 'ã«ã©ã ',
+ insertBefore: 'ã«ã©ã ã®åã«æ¿å
¥',
+ insertAfter: 'ã«ã©ã ã®å¾ã«æ¿å
¥',
+ deleteColumn: 'ååé¤'
+ },
+ columns: 'å',
+ deleteTable: 'ãã¼ãã«åé¤',
+ headers: 'ãã¼ãã«ããã(th)',
+ headersBoth: '両æ¹',
+ headersColumn: 'åãã®åã®ã¿',
+ headersNone: 'ãªã',
+ headersRow: 'åãã®è¡ã®ã¿',
+ invalidBorder: 'ãã¼ãã¼ãµã¤ãºã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidCellPadding: 'ã»ã«å
ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidCellSpacing: 'ã»ã«å
ä½ç½ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidCols: 'åã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidHeight: 'é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidRows: 'è¡ã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã',
+ invalidWidth: 'å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',
+ menu: 'ãã¼ãã« ããããã£',
+ row: {
+ menu: 'è¡',
+ insertBefore: 'è¡ã®åã«æ¿å
¥',
+ insertAfter: 'è¡ã®å¾ã«æ¿å
¥',
+ deleteRow: 'è¡åé¤'
+ },
+ rows: 'è¡',
+ summary: 'ãã¼ãã«ã®æ¦è¦',
+ title: 'ãã¼ãã« ããããã£',
+ toolbar: 'ãã¼ãã«',
+ widthPc: 'ãã¼ã»ã³ã',
+ widthPx: 'ãã¯ã»ã«',
+ widthUnit: 'ã¦ããã'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ka.js b/devel/third-party/ckeditor/plugins/table/lang/ka.js
new file mode 100644
index 0000000..50c5bca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ka.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ka', {
+ border: 'á©áá á©áá¡ áááá',
+ caption: 'á¡áááá£á á',
+ cell: {
+ menu: 'á£á¯á á',
+ insertBefore: 'á£á¯á áá¡ á©áá¡áá ááááááá',
+ insertAfter: 'á£á¯á áá¡ á©áá¡áá ááá á',
+ deleteCell: 'á£á¯á áááá¡ á¬áá¨áá',
+ merge: 'á£á¯á áááá¡ á¨ááá áááá',
+ mergeRight: 'á¨ááá áááá ááá á¯ááááá¡ááá',
+ mergeDown: 'á¨ááá áááá á¥ááááááá¡ááá',
+ splitHorizontal: 'ááá§áá¤á á°áá ááááá¢ááá£á áá',
+ splitVertical: 'ááá§áá¤á ááá á¢ááááá£á áá',
+ title: 'á£á¯á áá¡ ááá áááá¢á ááá',
+ cellType: 'á£á¯á áá¡ á¢ááá',
+ rowSpan: 'á¡á¢á áá¥áááááá¡ ááááááá',
+ colSpan: 'á¡ááá¢áááá¡ ááááááá',
+ wordWrap: 'á¡á¢á áá¥áááá¡ ááááá¢ááá (Word Wrap)',
+ hAlign: 'á°áá ááááá¢ááá£á á á¡á¬áá ááá',
+ vAlign: 'ááá á¢ááááá£á á á¡á¬áá ááá',
+ alignBaseline: 'á«áá ááááá á®áááá¡ ááá¡á¬áá áá',
+ bgColor: 'á¤áááá¡ á¤áá á',
+ borderColor: 'á©áá á©áá¡ á¤áá á',
+ data: 'áááááªááááá',
+ header: 'á¡áááá£á á',
+ yes: 'áááá®',
+ no: 'áá á',
+ invalidWidth: 'á£á¯á áá¡ á¡ááááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidHeight: 'á£á¯á áá¡ á¡áááá¦áá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidRowSpan: 'á¡á¢á áá¥áááááá¡ á áááááááá ááááá á ááªá®áá á£ááá áá§áá¡.',
+ invalidColSpan: 'á¡ááá¢áááá¡ á áááááááá ááááá á ááªá®áá á£ááá áá§áá¡.',
+ chooseColor: 'áá á©ááá'
+ },
+ cellPad: 'á£á¯á áá¡ áááá (padding)',
+ cellSpace: 'á£á¯á áá¡ á¡ááá áªá (spacing)',
+ column: {
+ menu: 'á¡ááá¢á',
+ insertBefore: 'á¡ááá¢áá¡ á©áááá¢ááá á¬áá',
+ insertAfter: 'á¡ááá¢áá¡ á©áááá¢ááá ááá á',
+ deleteColumn: 'á¡ááá¢áááá¡ á¬áá¨áá'
+ },
+ columns: 'á¡ááá¢á',
+ deleteTable: 'áªá®á áááá¡ á¬áá¨áá',
+ headers: 'á¡áááá£á ááá',
+ headersBoth: 'áá ááá',
+ headersColumn: 'ááá áááá á¡ááá¢á',
+ headersNone: 'áá áá¤áá á',
+ headersRow: 'ááá áááá á¡á¢á áá¥ááá',
+ invalidBorder: 'á©áá á©áá¡ áááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidCellPadding: 'á£á¯á áá¡ áááá (padding) á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidCellSpacing: 'á£á¯á áá¡ á¡ááá áªá (spacing) á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidCols: 'á¡ááá¢áááá¡ á áááááááá áááááááá á ááªá®áá á£ááá áá§áá¡.',
+ invalidHeight: 'áªá®á áááá¡ á¡áááá¦áá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ invalidRows: 'á¡á¢á áá¥áááááá¡ á áááááááá áááááááá á ááªá®áá á£ááá áá§áá¡.',
+ invalidWidth: 'áªá®á áááá¡ á¡ááááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.',
+ menu: 'áªá®á áááá¡ ááá áááá¢á ááá',
+ row: {
+ menu: 'á¡á¢á áá¥ááá',
+ insertBefore: 'á¡á¢á áá¥áááá¡ á©áááá¢ááá á¬áá',
+ insertAfter: 'á¡á¢á áá¥áááá¡ á©áááá¢ááá ááá á',
+ deleteRow: 'á¡á¢á áá¥áááááá¡ á¬áá¨áá'
+ },
+ rows: 'á¡á¢á áá¥ááá',
+ summary: 'á¨áá¯ááááá',
+ title: 'áªá®á áááá¡ ááá áááá¢á ááá',
+ toolbar: 'áªá®á ááá',
+ widthPc: 'áá ááªááá¢á',
+ widthPx: 'á¬áá á¢ááá',
+ widthUnit: 'á¡ááááá áá ááá£áá'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/km.js b/devel/third-party/ckeditor/plugins/table/lang/km.js
new file mode 100644
index 0000000..5eac833
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/km.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'km', {
+ border: 'ááá áááá»á',
+ caption: 'á
ááááá¾á',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'áááááá',
+ merge: 'ááááá¼áááá',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'áááááá',
+ cellSpace: 'áááá¶áááá',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'ááááá½ááá'
+ },
+ columns: 'áá½ááá',
+ deleteTable: 'ááááá¶áá¶á',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'áá¶áááááá áá¶áá¶á',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'ááááá½áááááá'
+ },
+ rows: 'áá½áááááá',
+ summary: 'ááá
áááá¸áááááá',
+ title: 'áá¶áááááá áá¶áá¶á',
+ toolbar: 'áá¶áá¶á',
+ widthPc: 'áá¶ááá',
+ widthPx: 'áá¸áááá',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ko.js b/devel/third-party/ckeditor/plugins/table/lang/ko.js
new file mode 100644
index 0000000..d3f5c0b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ko.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ko', {
+ border: 'í
ë리 í¬ê¸°',
+ caption: '캡ì
',
+ cell: {
+ menu: 'ì
/칸(Cell)',
+ insertBefore: 'ìì ì
/칸 ì½ì
',
+ insertAfter: 'ë¤ì ì
/칸 ì½ì
',
+ deleteCell: 'ì
ìì ',
+ merge: 'ì
í©ì¹ê¸°',
+ mergeRight: 'ì¤ë¥¸ìª½ ëì¹ê¸°',
+ mergeDown: 'ì¼ìª½ ëì¹ê¸°',
+ splitHorizontal: 'ìí ëë기',
+ splitVertical: 'ìì§ ëë기',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'ì
ì¬ë°±',
+ cellSpace: 'ì
ê°ê²©',
+ column: {
+ menu: 'ì´(Column)',
+ insertBefore: 'ìì ì´ ì½ì
',
+ insertAfter: 'ë¤ì ì´ ì½ì
',
+ deleteColumn: 'ì¸ë¡ì¤ ìì '
+ },
+ columns: 'ì¸ë¡ì¤',
+ deleteTable: 'í ìì ',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'í ì¤ì ',
+ row: {
+ menu: 'í(Row)',
+ insertBefore: 'ìì í ì½ì
',
+ insertAfter: 'ë¤ì í ì½ì
',
+ deleteRow: 'ê°ë¡ì¤ ìì '
+ },
+ rows: 'ê°ë¡ì¤',
+ summary: 'Summary', // MISSING
+ title: 'í ì¤ì ',
+ toolbar: 'í',
+ widthPc: 'í¼ì¼í¸',
+ widthPx: 'í½ì
',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ku.js b/devel/third-party/ckeditor/plugins/table/lang/ku.js
new file mode 100644
index 0000000..a34a714
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ku.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ku', {
+ border: 'Ú¯ÙÙØ±ÙÛÛ Ù¾ÙØ±Ø§ÙÛØ²',
+ caption: 'Ø³ÙØ±Ø¯ÛÚ',
+ cell: {
+ menu: 'خاÙÙ',
+ insertBefore: 'Ø¯Ø§ÙØ§ÙÛ Ø®Ø§ÙÙ ÙÙÙ¾ÛØ´',
+ insertAfter: 'Ø¯Ø§ÙØ§ÙÛ Ø®Ø§ÙÙ ÙÙپاش',
+ deleteCell: 'سÚÛÙÙÙÙÛ Ø®Ø§ÙÙ',
+ merge: 'تÛÚ©ÙڵکردÙÛ Ø®Ø§ÙÙ',
+ mergeRight: 'تÛÚ©ÙڵکردÙÛ ÙÙÚ¯ÙÚµ ÚØ§Ø³Øª',
+ mergeDown: 'تÛÚ©ÙڵکردÙÛ ÙÙÚ¯ÙÚµ Ø®ÙØ§Ø±ÙÙÙ',
+ splitHorizontal: 'Ø¯Ø§Ø¨ÙØ´Ú©Ø±Ø¯ÙÛ Ø®Ø§ÙÙÛ Ø¦Ø§Ø³ÛÛÛ',
+ splitVertical: 'Ø¯Ø§Ø¨ÙØ´Ú©Ø±Ø¯ÙÛ Ø®Ø§ÙÙÛ Ø¦ÙØ³ØªÙÙÛ',
+ title: 'خاسÛÙØªÛ خاÙÙ',
+ cellType: 'Ø¬ÛØ±Û خاÙÙ',
+ rowSpan: 'Ù
اÙÙÛ ÙÛÙØ§Ù ÚÛØ²',
+ colSpan: 'Ø¨Ø³ØªÛ Ø¦ÙØ³ØªÙÙÛ',
+ wordWrap: 'Ù¾ÛÚØ§ÙÙÙÙÛ ÙØ´Ù',
+ hAlign: 'ÚÛØ²Ú©Ø±Ø¯ÙÛ Ø¦Ø§Ø³ÛÛÛ',
+ vAlign: 'ÚÛØ²Ú©Ø±Ø¯ÙÛ Ø¦ÙØ³ØªÙÙÛ',
+ alignBaseline: 'ÙÛÚµÙØ¨ÙÙÚÙØª',
+ bgColor: 'ÚÙÙÚ¯Û Ù¾Ø§Ø´Ø¨ÙÙÙ
ا',
+ borderColor: 'ÚÙÙÚ¯Û Ù¾ÙØ±Ø§ÙÛØ²',
+ data: 'داتا',
+ header: 'Ø³ÙØ±Ù¾ÙÚÙ',
+ yes: 'بÙÚµÛ',
+ no: 'ÙÙØ®Ûر',
+ invalidWidth: 'پاÙÛ Ø®Ø§ÙÙ Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ invalidHeight: 'درÛÚÛ Ø®Ø§ÙÙ Ø¨ÙØªÙÙØ§ÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ invalidRowSpan: 'Ù
اÙÙÛ ÙÛÙØ§Ù ÚÛØ² Ø¨ÙØªÙÙØ§ÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ invalidColSpan: 'Ù
اÙÙÛ ÙÛÙØ§Ù Ø¦ÙØ³ØªÙÙÛ Ø¨ÙØªÙÙØ§ÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ chooseColor: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù'
+ },
+ cellPad: 'Ø¨ÛØ´Ø§ÛÛ ÙØ§ÙÙ¾ÛØ´',
+ cellSpace: 'Ø¨ÛØ´Ø§ÛÛ Ø®Ø§ÙÙ',
+ column: {
+ menu: 'Ø¦ÙØ³ØªÙÙ',
+ insertBefore: 'Ø¯Ø§ÙØ§ÙÛ Ø¦ÙØ³ØªÙÙ ÙÙÙ¾ÛØ´',
+ insertAfter: 'Ø¯Ø§ÙØ§ÙÛ Ø¦ÙØ³ØªÙÙÙ ÙÙپاش',
+ deleteColumn: 'سÚÛÙÙÙÙÛ Ø¦ÙØ³ØªÙÙÙ'
+ },
+ columns: 'ستÙÙÙÙکاÙ',
+ deleteTable: 'سÚÛÙÙÙÙÛ Ø®Ø´ØªÙ',
+ headers: 'Ø³ÙØ±Ù¾ÙÚÙ',
+ headersBoth: 'ÙÙØ±Ø¯ÙÙÙ',
+ headersColumn: 'ÛÙÚ©ÙÙ
Ø¦ÙØ³ØªÙÙÙ',
+ headersNone: 'ÙÛÚ',
+ headersRow: 'ÛÙÚ©ÙÙ
ÚÛØ²',
+ invalidBorder: 'ÚÙ
ارÙÛ Ù¾ÙØ±Ø§ÙÛØ² Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ invalidCellPadding: 'ÙØ§ÙÙ¾ÛØ´Û خاÙÙ Ø¯ÙØ¨Ûت ÚÙ
ارÙÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª.',
+ invalidCellSpacing: 'Ø¨ÛØ´Ø§ÛÛ Ø®Ø§ÙÙ Ø¯ÙØ¨Ûت ÚÙ
ارÙÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª.',
+ invalidCols: 'ÚÙ
ارÙÛ Ø¦ÙØ³ØªÙÙÙÛ Ø¯ÙØ¨Ûت Ú¯ÙÙØ±Ùتر Ø¨ÛØª ÙÙÚÙ
ارÙÛ 0.',
+ invalidHeight: 'درÛÚÛ Ø®Ø´ØªÙ Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ invalidRows: 'ÚÙ
ارÙÛ ÚÛØ² Ø¯ÙØ¨Ûت Ú¯ÙÙØ±Ùتر Ø¨ÛØª ÙÙÚÙ
ارÙÛ 0.',
+ invalidWidth: 'پاÙÛ Ø®Ø´ØªÙ Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.',
+ menu: 'خاسÛÙØªÛ خشتÙ',
+ row: {
+ menu: 'ÚÛØ²',
+ insertBefore: 'Ø¯Ø§ÙØ§ÙÛ ÚÛØ² ÙÙÙ¾ÛØ´',
+ insertAfter: 'Ø¯Ø§ÙØ§ÙÛ ÚÛØ² ÙÙپاش',
+ deleteRow: 'سÚÛÙÙÙÙÛ ÚÛØ²'
+ },
+ rows: 'ÚÛØ²',
+ summary: 'Ú©ÙØ±ØªÙ',
+ title: 'خاسÛÙØªÛ خشتÙ',
+ toolbar: 'خشتÙ',
+ widthPc: 'ÙÙØ³Ùدا',
+ widthPx: 'ÙÛÙÙØ®Ø§Úµ - Ù¾ÛکسÙ',
+ widthUnit: 'پاÙÛ ÛÙÚ©Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/lt.js b/devel/third-party/ckeditor/plugins/table/lang/lt.js
new file mode 100644
index 0000000..09939a9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/lt.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'lt', {
+ border: 'RÄmelio dydis',
+ caption: 'AntraÅ¡tÄ',
+ cell: {
+ menu: 'Langelis',
+ insertBefore: 'Įterpti langelį prieš',
+ insertAfter: 'Įterpti langelį po',
+ deleteCell: 'Å alinti langelius',
+ merge: 'Sujungti langelius',
+ mergeRight: 'Sujungti su dešine',
+ mergeDown: 'Sujungti su apaÄia',
+ splitHorizontal: 'Skaidyti langelį horizontaliai',
+ splitVertical: 'Skaidyti langelį vertikaliai',
+ title: 'Cell nustatymai',
+ cellType: 'Cell rūšis',
+ rowSpan: 'EiluÄių Span',
+ colSpan: 'Stulpelių Span',
+ wordWrap: 'Sutraukti raides',
+ hAlign: 'Horizontalus lygiavimas',
+ vAlign: 'Vertikalus lygiavimas',
+ alignBaseline: 'ApatinÄ linija',
+ bgColor: 'Fono spalva',
+ borderColor: 'RÄmelio spalva',
+ data: 'Data',
+ header: 'AntraÅ¡tÄ',
+ yes: 'Taip',
+ no: 'Ne',
+ invalidWidth: 'ReikÅ¡mÄ turi bÅ«ti skaiÄius.',
+ invalidHeight: 'ReikÅ¡mÄ turi bÅ«ti skaiÄius.',
+ invalidRowSpan: 'ReikÅ¡mÄ turi bÅ«ti skaiÄius.',
+ invalidColSpan: 'ReikÅ¡mÄ turi bÅ«ti skaiÄius.',
+ chooseColor: 'Pasirinkite'
+ },
+ cellPad: 'Trapas nuo langelio rÄmo iki teksto',
+ cellSpace: 'Tarpas tarp langelių',
+ column: {
+ menu: 'Stulpelis',
+ insertBefore: 'Įterpti stulpelį prieš',
+ insertAfter: 'Įterpti stulpelį po',
+ deleteColumn: 'Å alinti stulpelius'
+ },
+ columns: 'Stulpeliai',
+ deleteTable: 'Å alinti lentelÄ',
+ headers: 'AntraÅ¡tÄs',
+ headersBoth: 'Abu',
+ headersColumn: 'Pirmas stulpelis',
+ headersNone: 'NÄra',
+ headersRow: 'Pirma eilutÄ',
+ invalidBorder: 'ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.',
+ invalidCellPadding: 'ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.',
+ invalidCellSpacing: 'ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.',
+ invalidCols: 'SkaiÄius turi bÅ«ti didesnis nei 0.',
+ invalidHeight: 'ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.',
+ invalidRows: 'SkaiÄius turi bÅ«ti didesnis nei 0.',
+ invalidWidth: 'ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.',
+ menu: 'LentelÄs savybÄs',
+ row: {
+ menu: 'EilutÄ',
+ insertBefore: 'Ä®terpti eilutÄ prieÅ¡',
+ insertAfter: 'Ä®terpti eilutÄ po',
+ deleteRow: 'Å alinti eilutes'
+ },
+ rows: 'EilutÄs',
+ summary: 'Santrauka',
+ title: 'LentelÄs savybÄs',
+ toolbar: 'LentelÄ',
+ widthPc: 'procentais',
+ widthPx: 'taškais',
+ widthUnit: 'ploÄio vienetas'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/lv.js b/devel/third-party/ckeditor/plugins/table/lang/lv.js
new file mode 100644
index 0000000..268f9cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/lv.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'lv', {
+ border: 'RÄmja izmÄrs',
+ caption: 'Leģenda',
+ cell: {
+ menu: 'Šūna',
+ insertBefore: 'Pievienot šūnu pirms',
+ insertAfter: 'Pievienot šūnu pÄc',
+ deleteCell: 'DzÄst rÅ«tiÅas',
+ merge: 'Apvienot rÅ«tiÅas',
+ mergeRight: 'Apvieno pa labi',
+ mergeDown: 'Apvienot uz leju',
+ splitHorizontal: 'SadalÄ«t šūnu horizontÄli',
+ splitVertical: 'SadalÄ«t šūnu vertikÄli',
+ title: 'Å Å«nas uzstÄdÄ«jumi',
+ cellType: 'Šūnas tips',
+ rowSpan: 'Apvienotas rindas',
+ colSpan: 'Apvienotas kolonas',
+ wordWrap: 'VÄrdu pÄrnese',
+ hAlign: 'HorizontÄlais novietojums',
+ vAlign: 'VertikÄlais novietojums',
+ alignBaseline: 'Pamatrinda',
+ bgColor: 'Fona krÄsa',
+ borderColor: 'RÄmja krÄsa',
+ data: 'Dati',
+ header: 'Virsraksts',
+ yes: 'JÄ',
+ no: 'NÄ',
+ invalidWidth: 'Å Å«nas platumam jÄbÅ«t skaitlim',
+ invalidHeight: 'Å Å«nas augstumam jÄbÅ«t skaitlim',
+ invalidRowSpan: 'Apvienojamo rindu skaitam jÄbÅ«t veselam skaitlim',
+ invalidColSpan: 'Apvienojamo kolonu skaitam jÄbÅ«t veselam skaitlim',
+ chooseColor: 'IzvÄlÄties'
+ },
+ cellPad: 'RÅ«tiÅu nobÄ«de',
+ cellSpace: 'RÅ«tiÅu atstatums',
+ column: {
+ menu: 'Kolonna',
+ insertBefore: 'Ievietot kolonu pirms',
+ insertAfter: 'Ievieto kolonu pÄc',
+ deleteColumn: 'DzÄst kolonnas'
+ },
+ columns: 'Kolonnas',
+ deleteTable: 'DzÄst tabulu',
+ headers: 'Virsraksti',
+ headersBoth: 'Abi',
+ headersColumn: 'PirmÄ kolona',
+ headersNone: 'Nekas',
+ headersRow: 'PirmÄ rinda',
+ invalidBorder: 'RÄmju izmÄram jÄbÅ«t skaitlim',
+ invalidCellPadding: 'Å Å«nu atkÄpÄm jÄbÅ«t pozitÄ«vam skaitlim',
+ invalidCellSpacing: 'Å Å«nu atstarpÄm jÄbÅ«t pozitÄ«vam skaitlim',
+ invalidCols: 'Kolonu skaitam jÄbÅ«t lielÄkam par 0',
+ invalidHeight: 'Tabulas augstumam jÄbÅ«t skaitlim',
+ invalidRows: 'Rindu skaitam jÄbÅ«t lielÄkam par 0',
+ invalidWidth: 'Tabulas platumam jÄbÅ«t skaitlim',
+ menu: 'Tabulas īpašības',
+ row: {
+ menu: 'Rinda',
+ insertBefore: 'Ievietot rindu pirms',
+ insertAfter: 'Ievietot rindu pÄc',
+ deleteRow: 'DzÄst rindas'
+ },
+ rows: 'Rindas',
+ summary: 'AnotÄcija',
+ title: 'Tabulas īpašības',
+ toolbar: 'Tabula',
+ widthPc: 'procentuÄli',
+ widthPx: 'pikseļos',
+ widthUnit: 'platuma mÄrvienÄ«ba'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/mk.js b/devel/third-party/ckeditor/plugins/table/lang/mk.js
new file mode 100644
index 0000000..32b2b7a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/mk.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'mk', {
+ border: 'Border size', // MISSING
+ caption: 'Caption', // MISSING
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Delete Cells',
+ merge: 'Merge Cells',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Cell padding', // MISSING
+ cellSpace: 'Cell spacing', // MISSING
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Delete Columns'
+ },
+ columns: 'Columns',
+ deleteTable: 'Delete Table', // MISSING
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Table Properties', // MISSING
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Delete Rows'
+ },
+ rows: 'Rows',
+ summary: 'Summary', // MISSING
+ title: 'Table Properties', // MISSING
+ toolbar: 'Table', // MISSING
+ widthPc: 'percent', // MISSING
+ widthPx: 'pixels', // MISSING
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/mn.js b/devel/third-party/ckeditor/plugins/table/lang/mn.js
new file mode 100644
index 0000000..f6294f8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/mn.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'mn', {
+ border: 'Ð¥Ò¯ÑÑÑний Ñ
ÑмжÑÑ',
+ caption: 'ТайлбаÑ',
+ cell: {
+ menu: 'ÐÒ¯Ñ
/зай',
+ insertBefore: 'ÐÒ¯Ñ
/зай өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
',
+ insertAfter: 'ÐÒ¯Ñ
/зай даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
',
+ deleteCell: 'ÐÒ¯Ñ
ÑÑÑгаÑ
',
+ merge: 'ÐÒ¯Ñ
нÑгÑÑÑ
',
+ mergeRight: 'ÐаÑÑÑн ÑÐ¸Ð¹Ñ Ð½ÑгÑгÑÑ
',
+ mergeDown: 'ÐÐ¾Ð¾Ñ Ð½ÑгÑгÑÑ
',
+ splitHorizontal: 'ÐÒ¯Ñ
/зайг боÑÐ¾Ð¾Ð³Ð¾Ð¾Ñ Ð½Ñ ÑÑÑгааÑлаÑ
',
+ splitVertical: 'ÐÒ¯Ñ
/зайг Ñ
Ó©Ð½Ð´Ð»Ó©Ð½Ð³Ó©Ó©Ñ Ð½Ñ ÑÑÑгааÑлаÑ
',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Ð¥ÑвÑÑÑд ÑÑгÑлÑÑ
аÑга',
+ vAlign: 'ÐоÑоод ÑÑгÑлÑÑ
аÑга',
+ alignBaseline: 'Baseline',
+ bgColor: 'ÐÑвÑгÑÑ Ó©Ð½Ð³Ó©',
+ borderColor: 'Ð¥Ò¯ÑÑÑний өнгө',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Тийм',
+ no: 'Үгүй',
+ invalidWidth: 'Ðүдний Ó©Ñгөн Ð½Ñ Ñоо байÑ
ÑÑÑой.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'СонгоÑ
'
+ },
+ cellPad: 'ÐÒ¯Ñ
доÑоÑлоÑ
(padding)',
+ cellSpace: 'ÐÒ¯Ñ
Ñ
ооÑондÑн зай (spacing)',
+ column: {
+ menu: 'Ðагана',
+ insertBefore: 'Ðагана өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
',
+ insertAfter: 'Ðагана даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
',
+ deleteColumn: 'Ðагана ÑÑÑгаÑ
'
+ },
+ columns: 'Ðагана',
+ deleteTable: 'Ð¥Ò¯ÑнÑÐ³Ñ ÑÑÑгаÑ
',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Ð¥Ò¯ÑнÑгÑийн Ó©Ñгөн Ð½Ñ Ñоо байÑ
ÑÑÑой.',
+ menu: 'Ð¥Ò¯ÑнÑгÑ',
+ row: {
+ menu: 'ÐÓ©Ñ',
+ insertBefore: 'ÐÓ©Ñ Ó©Ð¼Ð½Ó© Ð½Ñ Ð¾ÑÑÑлаÑ
',
+ insertAfter: 'ÐÓ©Ñ Ð´Ð°Ñаа Ð½Ñ Ð¾ÑÑÑлаÑ
',
+ deleteRow: 'ÐÓ©Ñ ÑÑÑгаÑ
'
+ },
+ rows: 'ÐÓ©Ñ',
+ summary: 'ТайлбаÑ',
+ title: 'Ð¥Ò¯ÑнÑгÑ',
+ toolbar: 'Ð¥Ò¯ÑнÑгÑ',
+ widthPc: 'Ñ
ÑвÑ',
+ widthPx: 'ÑÑг',
+ widthUnit: 'Ó©Ñгөний нÑгж'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ms.js b/devel/third-party/ckeditor/plugins/table/lang/ms.js
new file mode 100644
index 0000000..66c1283
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ms.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ms', {
+ border: 'Saiz Border',
+ caption: 'Keterangan',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Buangkan Sel-sel',
+ merge: 'Cantumkan Sel-sel',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Tambahan Ruang Sel',
+ cellSpace: 'Ruangan Antara Sel',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Buangkan Lajur'
+ },
+ columns: 'Jaluran',
+ deleteTable: 'Delete Table', // MISSING
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Ciri-ciri Jadual',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Buangkan Baris'
+ },
+ rows: 'Barisan',
+ summary: 'Summary', // MISSING
+ title: 'Ciri-ciri Jadual',
+ toolbar: 'Jadual',
+ widthPc: 'peratus',
+ widthPx: 'piksel-piksel',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/nb.js b/devel/third-party/ckeditor/plugins/table/lang/nb.js
new file mode 100644
index 0000000..d3abe2b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/nb.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'nb', {
+ border: 'Rammestørrelse',
+ caption: 'Tittel',
+ cell: {
+ menu: 'Celle',
+ insertBefore: 'Sett inn celle før',
+ insertAfter: 'Sett inn celle etter',
+ deleteCell: 'Slett celler',
+ merge: 'Slå sammen celler',
+ mergeRight: 'Slå sammen høyre',
+ mergeDown: 'Slå sammen ned',
+ splitHorizontal: 'Del celle horisontalt',
+ splitVertical: 'Del celle vertikalt',
+ title: 'Celleegenskaper',
+ cellType: 'Celletype',
+ rowSpan: 'Radspenn',
+ colSpan: 'Kolonnespenn',
+ wordWrap: 'Tekstbrytning',
+ hAlign: 'Horisontal justering',
+ vAlign: 'Vertikal justering',
+ alignBaseline: 'Grunnlinje',
+ bgColor: 'Bakgrunnsfarge',
+ borderColor: 'Rammefarge',
+ data: 'Data',
+ header: 'Overskrift',
+ yes: 'Ja',
+ no: 'Nei',
+ invalidWidth: 'Cellebredde må være et tall.',
+ invalidHeight: 'Cellehøyde må være et tall.',
+ invalidRowSpan: 'Radspenn må være et heltall.',
+ invalidColSpan: 'Kolonnespenn må være et heltall.',
+ chooseColor: 'Velg'
+ },
+ cellPad: 'Cellepolstring',
+ cellSpace: 'Cellemarg',
+ column: {
+ menu: 'Kolonne',
+ insertBefore: 'Sett inn kolonne før',
+ insertAfter: 'Sett inn kolonne etter',
+ deleteColumn: 'Slett kolonner'
+ },
+ columns: 'Kolonner',
+ deleteTable: 'Slett tabell',
+ headers: 'Overskrifter',
+ headersBoth: 'Begge',
+ headersColumn: 'Første kolonne',
+ headersNone: 'Ingen',
+ headersRow: 'Første rad',
+ invalidBorder: 'Rammestørrelse må være et tall.',
+ invalidCellPadding: 'Cellepolstring må være et positivt tall.',
+ invalidCellSpacing: 'Cellemarg må være et positivt tall.',
+ invalidCols: 'Antall kolonner må være et tall større enn 0.',
+ invalidHeight: 'Tabellhøyde må være et tall.',
+ invalidRows: 'Antall rader må være et tall større enn 0.',
+ invalidWidth: 'Tabellbredde må være et tall.',
+ menu: 'Egenskaper for tabell',
+ row: {
+ menu: 'Rader',
+ insertBefore: 'Sett inn rad før',
+ insertAfter: 'Sett inn rad etter',
+ deleteRow: 'Slett rader'
+ },
+ rows: 'Rader',
+ summary: 'Sammendrag',
+ title: 'Egenskaper for tabell',
+ toolbar: 'Tabell',
+ widthPc: 'prosent',
+ widthPx: 'piksler',
+ widthUnit: 'Bredde-enhet'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/nl.js b/devel/third-party/ckeditor/plugins/table/lang/nl.js
new file mode 100644
index 0000000..559811d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/nl.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'nl', {
+ border: 'Breedte rand',
+ caption: 'Naam',
+ cell: {
+ menu: 'Cel',
+ insertBefore: 'Voeg cel in voor',
+ insertAfter: 'Voeg cel in achter',
+ deleteCell: 'Cellen verwijderen',
+ merge: 'Cellen samenvoegen',
+ mergeRight: 'Voeg samen naar rechts',
+ mergeDown: 'Voeg samen naar beneden',
+ splitHorizontal: 'Splits cellen horizontaal',
+ splitVertical: 'Splits cellen verticaal',
+ title: 'Cel eigenschappen',
+ cellType: 'Cel type',
+ rowSpan: 'Rijen samenvoegen',
+ colSpan: 'Kolommen samenvoegen',
+ wordWrap: 'Automatische terugloop',
+ hAlign: 'Horizontale uitlijning',
+ vAlign: 'Verticale uitlijning',
+ alignBaseline: 'Basislijn',
+ bgColor: 'Achtergrondkleur',
+ borderColor: 'Kleur rand',
+ data: 'Inhoud',
+ header: 'Kop',
+ yes: 'Ja',
+ no: 'Nee',
+ invalidWidth: 'De celbreedte moet een getal zijn.',
+ invalidHeight: 'De celhoogte moet een getal zijn.',
+ invalidRowSpan: 'Rijen samenvoegen moet een heel getal zijn.',
+ invalidColSpan: 'Kolommen samenvoegen moet een heel getal zijn.',
+ chooseColor: 'Kies'
+ },
+ cellPad: 'Ruimte in de cel',
+ cellSpace: 'Afstand tussen cellen',
+ column: {
+ menu: 'Kolom',
+ insertBefore: 'Voeg kolom in voor',
+ insertAfter: 'Voeg kolom in achter',
+ deleteColumn: 'Kolommen verwijderen'
+ },
+ columns: 'Kolommen',
+ deleteTable: 'Tabel verwijderen',
+ headers: 'Koppen',
+ headersBoth: 'Beide',
+ headersColumn: 'Eerste kolom',
+ headersNone: 'Geen',
+ headersRow: 'Eerste rij',
+ invalidBorder: 'De rand breedte moet een getal zijn.',
+ invalidCellPadding: 'Ruimte in de cel moet een getal zijn.',
+ invalidCellSpacing: 'Afstand tussen cellen moet een getal zijn.',
+ invalidCols: 'Het aantal kolommen moet een getal zijn groter dan 0.',
+ invalidHeight: 'De tabelhoogte moet een getal zijn.',
+ invalidRows: 'Het aantal rijen moet een getal zijn groter dan 0.',
+ invalidWidth: 'De tabelbreedte moet een getal zijn.',
+ menu: 'Eigenschappen tabel',
+ row: {
+ menu: 'Rij',
+ insertBefore: 'Voeg rij in voor',
+ insertAfter: 'Voeg rij in achter',
+ deleteRow: 'Rijen verwijderen'
+ },
+ rows: 'Rijen',
+ summary: 'Samenvatting',
+ title: 'Eigenschappen tabel',
+ toolbar: 'Tabel',
+ widthPc: 'procent',
+ widthPx: 'pixels',
+ widthUnit: 'eenheid breedte'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/no.js b/devel/third-party/ckeditor/plugins/table/lang/no.js
new file mode 100644
index 0000000..66b6f74
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/no.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'no', {
+ border: 'Rammestørrelse',
+ caption: 'Tittel',
+ cell: {
+ menu: 'Celle',
+ insertBefore: 'Sett inn celle før',
+ insertAfter: 'Sett inn celle etter',
+ deleteCell: 'Slett celler',
+ merge: 'Slå sammen celler',
+ mergeRight: 'Slå sammen høyre',
+ mergeDown: 'Slå sammen ned',
+ splitHorizontal: 'Del celle horisontalt',
+ splitVertical: 'Del celle vertikalt',
+ title: 'Celleegenskaper',
+ cellType: 'Celletype',
+ rowSpan: 'Radspenn',
+ colSpan: 'Kolonnespenn',
+ wordWrap: 'Tekstbrytning',
+ hAlign: 'Horisontal justering',
+ vAlign: 'Vertikal justering',
+ alignBaseline: 'Grunnlinje',
+ bgColor: 'Bakgrunnsfarge',
+ borderColor: 'Rammefarge',
+ data: 'Data',
+ header: 'Overskrift',
+ yes: 'Ja',
+ no: 'Nei',
+ invalidWidth: 'Cellebredde må være et tall.',
+ invalidHeight: 'Cellehøyde må være et tall.',
+ invalidRowSpan: 'Radspenn må være et heltall.',
+ invalidColSpan: 'Kolonnespenn må være et heltall.',
+ chooseColor: 'Velg'
+ },
+ cellPad: 'Cellepolstring',
+ cellSpace: 'Cellemarg',
+ column: {
+ menu: 'Kolonne',
+ insertBefore: 'Sett inn kolonne før',
+ insertAfter: 'Sett inn kolonne etter',
+ deleteColumn: 'Slett kolonner'
+ },
+ columns: 'Kolonner',
+ deleteTable: 'Slett tabell',
+ headers: 'Overskrifter',
+ headersBoth: 'Begge',
+ headersColumn: 'Første kolonne',
+ headersNone: 'Ingen',
+ headersRow: 'Første rad',
+ invalidBorder: 'Rammestørrelse må være et tall.',
+ invalidCellPadding: 'Cellepolstring må være et positivt tall.',
+ invalidCellSpacing: 'Cellemarg må være et positivt tall.',
+ invalidCols: 'Antall kolonner må være et tall større enn 0.',
+ invalidHeight: 'Tabellhøyde må være et tall.',
+ invalidRows: 'Antall rader må være et tall større enn 0.',
+ invalidWidth: 'Tabellbredde må være et tall.',
+ menu: 'Egenskaper for tabell',
+ row: {
+ menu: 'Rader',
+ insertBefore: 'Sett inn rad før',
+ insertAfter: 'Sett inn rad etter',
+ deleteRow: 'Slett rader'
+ },
+ rows: 'Rader',
+ summary: 'Sammendrag',
+ title: 'Egenskaper for tabell',
+ toolbar: 'Tabell',
+ widthPc: 'prosent',
+ widthPx: 'piksler',
+ widthUnit: 'Bredde-enhet'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/pl.js b/devel/third-party/ckeditor/plugins/table/lang/pl.js
new file mode 100644
index 0000000..804ee50
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/pl.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'pl', {
+ border: 'GruboÅÄ obramowania',
+ caption: 'TytuÅ',
+ cell: {
+ menu: 'Komórka',
+ insertBefore: 'Wstaw komórkÄ z lewej',
+ insertAfter: 'Wstaw komórkÄ z prawej',
+ deleteCell: 'UsuŠkomórki',
+ merge: 'PoÅÄ
cz komórki',
+ mergeRight: 'PoÅÄ
cz z komórkÄ
z prawej',
+ mergeDown: 'PoÅÄ
cz z komórkÄ
poniżej',
+ splitHorizontal: 'Podziel komórkÄ poziomo',
+ splitVertical: 'Podziel komórkÄ pionowo',
+ title: 'WÅaÅciwoÅci komórki',
+ cellType: 'Typ komórki',
+ rowSpan: 'Scalenie wierszy',
+ colSpan: 'Scalenie komórek',
+ wordWrap: 'Zawijanie sÅów',
+ hAlign: 'Wyrównanie poziome',
+ vAlign: 'Wyrównanie pionowe',
+ alignBaseline: 'Linia bazowa',
+ bgColor: 'Kolor tÅa',
+ borderColor: 'Kolor obramowania',
+ data: 'Dane',
+ header: 'NagÅówek',
+ yes: 'Tak',
+ no: 'Nie',
+ invalidWidth: 'SzerokoÅÄ komórki musi byÄ liczbÄ
.',
+ invalidHeight: 'WysokoÅÄ komórki musi byÄ liczbÄ
.',
+ invalidRowSpan: 'Scalenie wierszy musi byÄ liczbÄ
caÅkowitÄ
.',
+ invalidColSpan: 'Scalenie komórek musi byÄ liczbÄ
caÅkowitÄ
.',
+ chooseColor: 'Wybierz'
+ },
+ cellPad: 'DopeÅnienie komórek',
+ cellSpace: 'OdstÄp pomiÄdzy komórkami',
+ column: {
+ menu: 'Kolumna',
+ insertBefore: 'Wstaw kolumnÄ z lewej',
+ insertAfter: 'Wstaw kolumnÄ z prawej',
+ deleteColumn: 'UsuÅ kolumny'
+ },
+ columns: 'Liczba kolumn',
+ deleteTable: 'UsuÅ tabelÄ',
+ headers: 'NagÅówki',
+ headersBoth: 'Oba',
+ headersColumn: 'Pierwsza kolumna',
+ headersNone: 'Brak',
+ headersRow: 'Pierwszy wiersz',
+ invalidBorder: 'WartoÅÄ obramowania musi byÄ liczbÄ
.',
+ invalidCellPadding: 'DopeÅnienie komórek musi byÄ liczbÄ
dodatniÄ
.',
+ invalidCellSpacing: 'OdstÄp pomiÄdzy komórkami musi byÄ liczbÄ
dodatniÄ
.',
+ invalidCols: 'Liczba kolumn musi byÄ wiÄksza niż 0.',
+ invalidHeight: 'WysokoÅÄ tabeli musi byÄ liczbÄ
.',
+ invalidRows: 'Liczba wierszy musi byÄ wiÄksza niż 0.',
+ invalidWidth: 'SzerokoÅÄ tabeli musi byÄ liczbÄ
.',
+ menu: 'WÅaÅciwoÅci tabeli',
+ row: {
+ menu: 'Wiersz',
+ insertBefore: 'Wstaw wiersz powyżej',
+ insertAfter: 'Wstaw wiersz poniżej',
+ deleteRow: 'UsuÅ wiersze'
+ },
+ rows: 'Liczba wierszy',
+ summary: 'Podsumowanie',
+ title: 'WÅaÅciwoÅci tabeli',
+ toolbar: 'Tabela',
+ widthPc: '%',
+ widthPx: 'piksele',
+ widthUnit: 'jednostka szerokoÅci'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/pt-br.js b/devel/third-party/ckeditor/plugins/table/lang/pt-br.js
new file mode 100644
index 0000000..99f6c70
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/pt-br.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'pt-br', {
+ border: 'Borda',
+ caption: 'Legenda',
+ cell: {
+ menu: 'Célula',
+ insertBefore: 'Inserir célula a esquerda',
+ insertAfter: 'Inserir célula a direita',
+ deleteCell: 'Remover Células',
+ merge: 'Mesclar Células',
+ mergeRight: 'Mesclar com célula a direita',
+ mergeDown: 'Mesclar com célula abaixo',
+ splitHorizontal: 'Dividir célula horizontalmente',
+ splitVertical: 'Dividir célula verticalmente',
+ title: 'Propriedades da célula',
+ cellType: 'Tipo de célula',
+ rowSpan: 'Linhas cobertas',
+ colSpan: 'Colunas cobertas',
+ wordWrap: 'Quebra de palavra',
+ hAlign: 'Alinhamento horizontal',
+ vAlign: 'Alinhamento vertical',
+ alignBaseline: 'Patamar de alinhamento',
+ bgColor: 'Cor de fundo',
+ borderColor: 'Cor das bordas',
+ data: 'Dados',
+ header: 'Cabeçalho',
+ yes: 'Sim',
+ no: 'Não',
+ invalidWidth: 'A largura da célula tem que ser um número.',
+ invalidHeight: 'A altura da célula tem que ser um número.',
+ invalidRowSpan: 'Linhas cobertas tem que ser um número inteiro.',
+ invalidColSpan: 'Colunas cobertas tem que ser um número inteiro.',
+ chooseColor: 'Escolher'
+ },
+ cellPad: 'Margem interna',
+ cellSpace: 'Espaçamento',
+ column: {
+ menu: 'Coluna',
+ insertBefore: 'Inserir coluna a esquerda',
+ insertAfter: 'Inserir coluna a direita',
+ deleteColumn: 'Remover Colunas'
+ },
+ columns: 'Colunas',
+ deleteTable: 'Apagar Tabela',
+ headers: 'Cabeçalho',
+ headersBoth: 'Ambos',
+ headersColumn: 'Primeira coluna',
+ headersNone: 'Nenhum',
+ headersRow: 'Primeira linha',
+ invalidBorder: 'O tamanho da borda tem que ser um número.',
+ invalidCellPadding: 'A margem interna das células tem que ser um número.',
+ invalidCellSpacing: 'O espaçamento das células tem que ser um número.',
+ invalidCols: 'O número de colunas tem que ser um número maior que 0.',
+ invalidHeight: 'A altura da tabela tem que ser um número.',
+ invalidRows: 'O número de linhas tem que ser um número maior que 0.',
+ invalidWidth: 'A largura da tabela tem que ser um número.',
+ menu: 'Formatar Tabela',
+ row: {
+ menu: 'Linha',
+ insertBefore: 'Inserir linha acima',
+ insertAfter: 'Inserir linha abaixo',
+ deleteRow: 'Remover Linhas'
+ },
+ rows: 'Linhas',
+ summary: 'Resumo',
+ title: 'Formatar Tabela',
+ toolbar: 'Tabela',
+ widthPc: '%',
+ widthPx: 'pixels',
+ widthUnit: 'unidade largura'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/pt.js b/devel/third-party/ckeditor/plugins/table/lang/pt.js
new file mode 100644
index 0000000..e4a54fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/pt.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'pt', {
+ border: 'Tamanho do Limite',
+ caption: 'TÃtulo',
+ cell: {
+ menu: 'Célula',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'Eliminar Célula',
+ merge: 'Unir Células',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Esp. interior',
+ cellSpace: 'Esp. e/células',
+ column: {
+ menu: 'Coluna',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Eliminar Coluna'
+ },
+ columns: 'Colunas',
+ deleteTable: 'Eliminar Tabela',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'Nenhum',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Propriedades da Tabela',
+ row: {
+ menu: 'Linha',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Eliminar Linhas'
+ },
+ rows: 'Linhas',
+ summary: 'Sumário',
+ title: 'Propriedades da Tabela',
+ toolbar: 'Tabela',
+ widthPc: 'percentagem',
+ widthPx: 'pixeis',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ro.js b/devel/third-party/ckeditor/plugins/table/lang/ro.js
new file mode 100644
index 0000000..fcf8960
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ro.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ro', {
+ border: 'MÄrimea marginii',
+ caption: 'Titlu (Caption)',
+ cell: {
+ menu: 'CelulÄ',
+ insertBefore: 'InsereazÄ celulÄ Ã®nainte',
+ insertAfter: 'InsereazÄ celulÄ dupÄ',
+ deleteCell: 'Återge celule',
+ merge: 'UneÅte celule',
+ mergeRight: 'UneÅte la dreapta',
+ mergeDown: 'UneÅte jos',
+ splitHorizontal: 'Ãmparte celula pe orizontalÄ',
+ splitVertical: 'Ãmparte celula pe verticalÄ',
+ title: 'ProprietÄÈi celulÄ',
+ cellType: 'Tipul celulei',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Aliniament orizontal',
+ vAlign: 'Aliniament vertical',
+ alignBaseline: 'Baseline',
+ bgColor: 'Culoare fundal',
+ borderColor: 'Culoare bordurÄ',
+ data: 'Data',
+ header: 'Antet',
+ yes: 'Da',
+ no: 'Nu',
+ invalidWidth: 'LÄÈimea celulei trebuie sÄ fie un numÄr.',
+ invalidHeight: 'ÃnÄlÈimea celulei trebuie sÄ fie un numÄr.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Alege'
+ },
+ cellPad: 'Spaţiu în cadrul celulei',
+ cellSpace: 'Spaţiu între celule',
+ column: {
+ menu: 'ColoanÄ',
+ insertBefore: 'InsereazÄ coloanÄ Ã®nainte',
+ insertAfter: 'InsereazÄ coloanÄ dupÄ',
+ deleteColumn: 'Återge celule'
+ },
+ columns: 'Coloane',
+ deleteTable: 'Återge tabel',
+ headers: 'Antente',
+ headersBoth: 'Ambele',
+ headersColumn: 'Prima coloanÄ',
+ headersNone: 'Nimic',
+ headersRow: 'Primul rând',
+ invalidBorder: 'Dimensiunea bordurii trebuie sÄ aibe un numÄr.',
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'SpaÈierea celului trebuie sÄ fie un numÄr pozitiv.',
+ invalidCols: 'NumÄrul coloanelor trebuie sÄ fie mai mare decât 0.',
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'NumÄrul rândurilor trebuie sÄ fie mai mare decât 0.',
+ invalidWidth: 'LÄÈimea tabelului trebuie sÄ fie un numÄr.',
+ menu: 'ProprietÄÅ£ile tabelului',
+ row: {
+ menu: 'Rând',
+ insertBefore: 'InsereazÄ rând înainte',
+ insertAfter: 'InsereazÄ rând dupÄ',
+ deleteRow: 'Återge rânduri'
+ },
+ rows: 'Rânduri',
+ summary: 'Rezumat',
+ title: 'ProprietÄÅ£ile tabelului',
+ toolbar: 'Tabel',
+ widthPc: 'procente',
+ widthPx: 'pixeli',
+ widthUnit: 'unitate lÄÈime'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ru.js b/devel/third-party/ckeditor/plugins/table/lang/ru.js
new file mode 100644
index 0000000..7e7e2e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ru.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ru', {
+ border: 'Ð Ð°Ð·Ð¼ÐµÑ Ð³ÑаниÑ',
+ caption: 'Ðаголовок',
+ cell: {
+ menu: 'ЯÑейка',
+ insertBefore: 'ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ Ñлева',
+ insertAfter: 'ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ ÑпÑава',
+ deleteCell: 'УдалиÑÑ ÑÑейки',
+ merge: 'ÐбÑединиÑÑ ÑÑейки',
+ mergeRight: 'ÐбÑединиÑÑ Ñ Ð¿Ñавой',
+ mergeDown: 'ÐбÑединиÑÑ Ñ Ð½Ð¸Ð¶Ð½ÐµÐ¹',
+ splitHorizontal: 'РазделиÑÑ ÑÑÐµÐ¹ÐºÑ Ð¿Ð¾ гоÑизонÑали',
+ splitVertical: 'РазделиÑÑ ÑÑÐµÐ¹ÐºÑ Ð¿Ð¾ веÑÑикали',
+ title: 'СвойÑÑва ÑÑейки',
+ cellType: 'Тип ÑÑейки',
+ rowSpan: 'ÐбÑединÑÐµÑ ÑÑÑок',
+ colSpan: 'ÐбÑединÑÐµÑ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº',
+ wordWrap: 'ÐеÑÐµÐ½Ð¾Ñ Ð¿Ð¾ Ñловам',
+ hAlign: 'ÐоÑизонÑалÑное вÑÑавнивание',
+ vAlign: 'ÐеÑÑикалÑное вÑÑавнивание',
+ alignBaseline: 'Ðо базовой линии',
+ bgColor: 'Ð¦Ð²ÐµÑ Ñона',
+ borderColor: 'Ð¦Ð²ÐµÑ Ð³ÑаниÑ',
+ data: 'ÐаннÑе',
+ header: 'Ðаголовок',
+ yes: 'Ðа',
+ no: 'ÐеÑ',
+ invalidWidth: 'ШиÑина ÑÑейки должна бÑÑÑ ÑиÑлом.',
+ invalidHeight: 'ÐÑÑоÑа ÑÑейки должна бÑÑÑ ÑиÑлом.',
+ invalidRowSpan: 'ÐолиÑеÑÑво обÑединÑемÑÑ
ÑÑÑок должно бÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑиÑлом.',
+ invalidColSpan: 'ÐолиÑеÑÑво обÑединÑемÑÑ
колонок должно бÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑиÑлом.',
+ chooseColor: 'ÐÑбеÑиÑе'
+ },
+ cellPad: 'ÐнÑÑÑенний оÑÑÑÑп ÑÑеек',
+ cellSpace: 'ÐнеÑний оÑÑÑÑп ÑÑеек',
+ column: {
+ menu: 'Ðолонка',
+ insertBefore: 'ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ñлева',
+ insertAfter: 'ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ ÑпÑава',
+ deleteColumn: 'УдалиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸'
+ },
+ columns: 'Ðолонки',
+ deleteTable: 'УдалиÑÑ ÑаблиÑÑ',
+ headers: 'Ðаголовки',
+ headersBoth: 'СвеÑÑ
Ñ Ð¸ Ñлева',
+ headersColumn: 'ÐÐµÐ²Ð°Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°',
+ headersNone: 'Ðез заголовков',
+ headersRow: 'ÐеÑÑ
нÑÑ ÑÑÑока',
+ invalidBorder: 'Ð Ð°Ð·Ð¼ÐµÑ Ð³ÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ ÑиÑлом.',
+ invalidCellPadding: 'ÐнÑÑÑенний оÑÑÑÑп ÑÑеек (cellpadding) должен бÑÑÑ ÑиÑлом.',
+ invalidCellSpacing: 'ÐнеÑний оÑÑÑÑп ÑÑеек (cellspacing) должен бÑÑÑ ÑиÑлом.',
+ invalidCols: 'ÐолиÑеÑÑво ÑÑолбÑов должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.',
+ invalidHeight: 'ÐÑÑоÑа ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.',
+ invalidRows: 'ÐолиÑеÑÑво ÑÑÑок должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.',
+ invalidWidth: 'ШиÑина ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.',
+ menu: 'СвойÑÑва ÑаблиÑÑ',
+ row: {
+ menu: 'СÑÑока',
+ insertBefore: 'ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ ÑвеÑÑ
Ñ',
+ insertAfter: 'ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ ÑнизÑ',
+ deleteRow: 'УдалиÑÑ ÑÑÑоки'
+ },
+ rows: 'СÑÑоки',
+ summary: 'ÐÑоги',
+ title: 'СвойÑÑва ÑаблиÑÑ',
+ toolbar: 'ТаблиÑа',
+ widthPc: 'пÑоÑенÑов',
+ widthPx: 'пикÑелей',
+ widthUnit: 'единиÑа измеÑениÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/sk.js b/devel/third-party/ckeditor/plugins/table/lang/sk.js
new file mode 100644
index 0000000..00b45a3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/sk.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'sk', {
+ border: 'Å Ãrka rámu (border)',
+ caption: 'Popis',
+ cell: {
+ menu: 'Bunka',
+ insertBefore: 'Vložiť bunku pred',
+ insertAfter: 'Vložiť bunku za',
+ deleteCell: 'Vymazať bunky',
+ merge: 'ZlúÄiÅ¥ bunky',
+ mergeRight: 'ZlúÄiÅ¥ doprava',
+ mergeDown: 'ZlúÄiÅ¥ dole',
+ splitHorizontal: 'Rozdeliť bunky horizontálne',
+ splitVertical: 'Rozdeliť bunky vertikálne',
+ title: 'Vlastnosti bunky',
+ cellType: 'Typ bunky',
+ rowSpan: 'Rozsah riadkov',
+ colSpan: 'Rozsah stĺpcov',
+ wordWrap: 'Zalomovanie riadkov',
+ hAlign: 'Horizontálne zarovnanie',
+ vAlign: 'Vertikálne zarovnanie',
+ alignBaseline: 'Základná Äiara (baseline)',
+ bgColor: 'Farba pozadia',
+ borderColor: 'Farba rámu',
+ data: 'Dáta',
+ header: 'HlaviÄka',
+ yes: 'Ãno',
+ no: 'Nie',
+ invalidWidth: 'Å Ãrka bunky musà byÅ¥ ÄÃslo.',
+ invalidHeight: 'Výška bunky musà byÅ¥ ÄÃslo.',
+ invalidRowSpan: 'Rozsah riadkov musà byÅ¥ celé ÄÃslo.',
+ invalidColSpan: 'Rozsah stĺpcov musà byÅ¥ celé ÄÃslo.',
+ chooseColor: 'Vybrať'
+ },
+ cellPad: 'Odsadenie obsahu (cell padding)',
+ cellSpace: 'Vzdialenosť buniek (cell spacing)',
+ column: {
+ menu: 'Stĺpec',
+ insertBefore: 'Vložiť stĺpec pred',
+ insertAfter: 'Vložiť stĺpec po',
+ deleteColumn: 'Zmazať stĺpce'
+ },
+ columns: 'Stĺpce',
+ deleteTable: 'Vymazať tabuľku',
+ headers: 'HlaviÄka',
+ headersBoth: 'Obe',
+ headersColumn: 'Prvý stĺpec',
+ headersNone: 'Žiadne',
+ headersRow: 'Prvý riadok',
+ invalidBorder: 'Å irka rámu musà byÅ¥ ÄÃslo.',
+ invalidCellPadding: 'Odsadenie v bunkách (cell padding) musà byÅ¥ kladné ÄÃslo.',
+ invalidCellSpacing: 'Medzera mädzi bunkami (cell spacing) musà byÅ¥ kladné ÄÃslo.',
+ invalidCols: 'PoÄet stĺpcov musà byÅ¥ ÄÃslo väÄÅ¡ie ako 0.',
+ invalidHeight: 'Výška tabuľky musà byÅ¥ ÄÃslo.',
+ invalidRows: 'PoÄet riadkov musà byÅ¥ ÄÃslo väÄÅ¡ie ako 0.',
+ invalidWidth: 'Å irka tabuľky musà byÅ¥ ÄÃslo.',
+ menu: 'Vlastnosti tabuľky',
+ row: {
+ menu: 'Riadok',
+ insertBefore: 'Vložiť riadok pred',
+ insertAfter: 'Vložiť riadok po',
+ deleteRow: 'Vymazať riadky'
+ },
+ rows: 'Riadky',
+ summary: 'Prehľad',
+ title: 'Vlastnosti tabuľky',
+ toolbar: 'Tabuľka',
+ widthPc: 'percent',
+ widthPx: 'pixelov',
+ widthUnit: 'jednotka Å¡Ãrky'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/sl.js b/devel/third-party/ckeditor/plugins/table/lang/sl.js
new file mode 100644
index 0000000..79e31ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/sl.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'sl', {
+ border: 'Velikost obrobe',
+ caption: 'Naslov',
+ cell: {
+ menu: 'Celica',
+ insertBefore: 'Vstavi celico pred',
+ insertAfter: 'Vstavi celico za',
+ deleteCell: 'Izbriši celice',
+ merge: 'Združi celice',
+ mergeRight: 'Združi desno',
+ mergeDown: 'Druži navzdol',
+ splitHorizontal: 'Razdeli celico vodoravno',
+ splitVertical: 'Razdeli celico navpiÄno',
+ title: 'Lastnosti celice',
+ cellType: 'Vrsta celice',
+ rowSpan: 'Razpon vrstic',
+ colSpan: 'Razpon stolpcev',
+ wordWrap: 'Prelom besedila',
+ hAlign: 'Vodoravna poravnava',
+ vAlign: 'NavpiÄna poravnava',
+ alignBaseline: 'Osnovnica',
+ bgColor: 'Barva ozadja',
+ borderColor: 'Barva obrobe',
+ data: 'Podatki',
+ header: 'Glava',
+ yes: 'Da',
+ no: 'Ne',
+ invalidWidth: 'Širina celice mora biti število.',
+ invalidHeight: 'Višina celice mora biti število.',
+ invalidRowSpan: 'Razpon vrstic mora biti celo število.',
+ invalidColSpan: 'Razpon stolpcev mora biti celo število.',
+ chooseColor: 'Izberi'
+ },
+ cellPad: 'Polnilo med celicami',
+ cellSpace: 'Razmik med celicami',
+ column: {
+ menu: 'Stolpec',
+ insertBefore: 'Vstavi stolpec pred',
+ insertAfter: 'Vstavi stolpec za',
+ deleteColumn: 'Izbriši stolpce'
+ },
+ columns: 'Stolpci',
+ deleteTable: 'Izbriši tabelo',
+ headers: 'Glave',
+ headersBoth: 'Oboje',
+ headersColumn: 'Prvi stolpec',
+ headersNone: 'Brez',
+ headersRow: 'Prva vrstica',
+ invalidBorder: 'Širina obrobe mora biti število.',
+ invalidCellPadding: 'Zamik celic mora biti število',
+ invalidCellSpacing: 'Razmik med celicami mora biti število.',
+ invalidCols: 'Å tevilo stolpcev mora biti veÄje od 0.',
+ invalidHeight: 'Višina tabele mora biti število.',
+ invalidRows: 'Å tevilo vrstic mora biti veÄje od 0.',
+ invalidWidth: 'Širina tabele mora biti število.',
+ menu: 'Lastnosti tabele',
+ row: {
+ menu: 'Vrstica',
+ insertBefore: 'Vstavi vrstico pred',
+ insertAfter: 'Vstavi vrstico za',
+ deleteRow: 'Izbriši vrstice'
+ },
+ rows: 'Vrstice',
+ summary: 'Povzetek',
+ title: 'Lastnosti tabele',
+ toolbar: 'Tabela',
+ widthPc: 'procentov',
+ widthPx: 'pik',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/table/lang/sr-latn.js
new file mode 100644
index 0000000..8fe6850
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/sr-latn.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'sr-latn', {
+ border: 'VeliÄina okvira',
+ caption: 'Naslov tabele',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'ObriÅ¡i Äelije',
+ merge: 'Spoj celije',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Razmak Äelija',
+ cellSpace: 'Äelijski prostor',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'Obriši kolone'
+ },
+ columns: 'Kolona',
+ deleteTable: 'Delete Table', // MISSING
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'Osobine tabele',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'Obriši redove'
+ },
+ rows: 'Redova',
+ summary: 'Summary', // MISSING
+ title: 'Osobine tabele',
+ toolbar: 'Tabela',
+ widthPc: 'procenata',
+ widthPx: 'piksela',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/sr.js b/devel/third-party/ckeditor/plugins/table/lang/sr.js
new file mode 100644
index 0000000..22a0afd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/sr.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'sr', {
+ border: 'ÐелиÑина оквиÑа',
+ caption: 'ÐаÑлов Ñабеле',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'ÐбÑиÑи ÑелиÑе',
+ merge: 'Ð¡Ð¿Ð¾Ñ ÑелиÑе',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'Размак ÑелиÑа',
+ cellSpace: 'ÐелиÑÑки пÑоÑÑоÑ',
+ column: {
+ menu: 'Column',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'ÐбÑиÑи колоне'
+ },
+ columns: 'Kолона',
+ deleteTable: 'Delete Table', // MISSING
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'ÐÑобине Ñабеле',
+ row: {
+ menu: 'Row',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'ÐбÑиÑи Ñедове'
+ },
+ rows: 'Редова',
+ summary: 'Summary', // MISSING
+ title: 'ÐÑобине Ñабеле',
+ toolbar: 'Табела',
+ widthPc: 'пÑоÑенаÑа',
+ widthPx: 'пикÑела',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/sv.js b/devel/third-party/ckeditor/plugins/table/lang/sv.js
new file mode 100644
index 0000000..bcbc57f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/sv.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'sv', {
+ border: 'Kantstorlek',
+ caption: 'Rubrik',
+ cell: {
+ menu: 'Cell',
+ insertBefore: 'Lägg till cell före',
+ insertAfter: 'Lägg till cell efter',
+ deleteCell: 'Radera celler',
+ merge: 'Sammanfoga celler',
+ mergeRight: 'Sammanfoga höger',
+ mergeDown: 'Sammanfoga ner',
+ splitHorizontal: 'Dela cell horisontellt',
+ splitVertical: 'Dela cell vertikalt',
+ title: 'Egenskaper för cell',
+ cellType: 'Celltyp',
+ rowSpan: 'Rad spann',
+ colSpan: 'Kolumnen spann',
+ wordWrap: 'Radbrytning',
+ hAlign: 'Horisontell justering',
+ vAlign: 'Vertikal justering',
+ alignBaseline: 'Baslinje',
+ bgColor: 'Bakgrundsfärg',
+ borderColor: 'Ramfärg',
+ data: 'Data',
+ header: 'Rubrik',
+ yes: 'Ja',
+ no: 'Nej',
+ invalidWidth: 'Cellens bredd måste vara ett nummer.',
+ invalidHeight: 'Cellens höjd måste vara ett nummer.',
+ invalidRowSpan: 'Radutvidgning måste vara ett heltal.',
+ invalidColSpan: 'Kolumn måste vara ett heltal.',
+ chooseColor: 'Välj'
+ },
+ cellPad: 'Cellutfyllnad',
+ cellSpace: 'Cellavstånd',
+ column: {
+ menu: 'Kolumn',
+ insertBefore: 'Lägg till kolumn före',
+ insertAfter: 'Lägg till kolumn efter',
+ deleteColumn: 'Radera kolumn'
+ },
+ columns: 'Kolumner',
+ deleteTable: 'Radera tabell',
+ headers: 'Rubriker',
+ headersBoth: 'BÃ¥da',
+ headersColumn: 'Första kolumnen',
+ headersNone: 'Ingen',
+ headersRow: 'Första raden',
+ invalidBorder: 'Ram måste vara ett nummer.',
+ invalidCellPadding: 'Luft i cell måste vara ett nummer.',
+ invalidCellSpacing: 'Luft i cell måste vara ett nummer.',
+ invalidCols: 'Antal kolumner måste vara ett nummer större än 0.',
+ invalidHeight: 'Tabellens höjd måste vara ett nummer.',
+ invalidRows: 'Antal rader måste vara större än 0.',
+ invalidWidth: 'Tabell måste vara ett nummer.',
+ menu: 'Tabellegenskaper',
+ row: {
+ menu: 'Rad',
+ insertBefore: 'Lägg till Rad Före',
+ insertAfter: 'Lägg till rad efter',
+ deleteRow: 'Radera rad'
+ },
+ rows: 'Rader',
+ summary: 'Sammanfattning',
+ title: 'Tabellegenskaper',
+ toolbar: 'Tabell',
+ widthPc: 'procent',
+ widthPx: 'pixlar',
+ widthUnit: 'enhet bredd'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/th.js b/devel/third-party/ckeditor/plugins/table/lang/th.js
new file mode 100644
index 0000000..4b661ad
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/th.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'th', {
+ border: 'à¸à¸à¸²à¸à¹à¸ªà¹à¸à¸à¸à¸',
+ caption: 'หัวà¹à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸²à¸£à¸²à¸',
+ cell: {
+ menu: 'à¸à¹à¸à¸à¸à¸²à¸£à¸²à¸',
+ insertBefore: 'Insert Cell Before',
+ insertAfter: 'Insert Cell After',
+ deleteCell: 'ลà¸à¸à¹à¸à¸',
+ merge: 'à¸à¸ªà¸²à¸à¸à¹à¸à¸',
+ mergeRight: 'Merge Right',
+ mergeDown: 'Merge Down',
+ splitHorizontal: 'Split Cell Horizontally',
+ splitVertical: 'Split Cell Vertically',
+ title: 'Cell Properties',
+ cellType: 'Cell Type',
+ rowSpan: 'Rows Span',
+ colSpan: 'Columns Span',
+ wordWrap: 'Word Wrap',
+ hAlign: 'Horizontal Alignment',
+ vAlign: 'Vertical Alignment',
+ alignBaseline: 'Baseline',
+ bgColor: 'Background Color',
+ borderColor: 'Border Color',
+ data: 'Data',
+ header: 'Header',
+ yes: 'Yes',
+ no: 'No',
+ invalidWidth: 'Cell width must be a number.',
+ invalidHeight: 'Cell height must be a number.',
+ invalidRowSpan: 'Rows span must be a whole number.',
+ invalidColSpan: 'Columns span must be a whole number.',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'ระยะà¹à¸à¸§à¸à¸±à¹à¸',
+ cellSpace: 'ระยะà¹à¸à¸§à¸à¸à¸à¸',
+ column: {
+ menu: 'à¸à¸à¸¥à¸±à¸¡à¸à¹',
+ insertBefore: 'Insert Column Before',
+ insertAfter: 'Insert Column After',
+ deleteColumn: 'ลà¸à¸ªà¸à¸¡à¸à¹'
+ },
+ columns: 'สà¸à¸¡à¸à¹',
+ deleteTable: 'ลà¸à¸à¸²à¸£à¸²à¸',
+ headers: 'Headers', // MISSING
+ headersBoth: 'Both', // MISSING
+ headersColumn: 'First column', // MISSING
+ headersNone: 'None',
+ headersRow: 'First Row', // MISSING
+ invalidBorder: 'Border size must be a number.', // MISSING
+ invalidCellPadding: 'Cell padding must be a positive number.', // MISSING
+ invalidCellSpacing: 'Cell spacing must be a positive number.', // MISSING
+ invalidCols: 'Number of columns must be a number greater than 0.', // MISSING
+ invalidHeight: 'Table height must be a number.', // MISSING
+ invalidRows: 'Number of rows must be a number greater than 0.', // MISSING
+ invalidWidth: 'Table width must be a number.', // MISSING
+ menu: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸',
+ row: {
+ menu: 'à¹à¸à¸§',
+ insertBefore: 'Insert Row Before',
+ insertAfter: 'Insert Row After',
+ deleteRow: 'ลà¸à¹à¸à¸§'
+ },
+ rows: 'à¹à¸à¸§',
+ summary: 'สรุà¸à¸à¸§à¸²à¸¡',
+ title: 'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸',
+ toolbar: 'à¸à¸²à¸£à¸²à¸',
+ widthPc: 'à¹à¸à¸à¸£à¹à¹à¸à¹à¸',
+ widthPx: 'à¸à¸¸à¸à¸ªà¸µ',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/tr.js b/devel/third-party/ckeditor/plugins/table/lang/tr.js
new file mode 100644
index 0000000..a91f20f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/tr.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'tr', {
+ border: 'Kenar KalınlıÄı',
+ caption: 'BaÅlık',
+ cell: {
+ menu: 'Hücre',
+ insertBefore: 'Hücre Ekle - Ãnce',
+ insertAfter: 'Hücre Ekle - Sonra',
+ deleteCell: 'Hücre Sil',
+ merge: 'Hücreleri BirleÅtir',
+ mergeRight: 'BirleÅtir - SaÄdaki İle ',
+ mergeDown: 'BirleÅtir - AÅaÄıdaki İle ',
+ splitHorizontal: 'Hücreyi Yatay Böl',
+ splitVertical: 'Hücreyi Dikey Böl',
+ title: 'Hücre Ãzellikleri',
+ cellType: 'Hücre Tipi',
+ rowSpan: 'Satırlar Mesafesi (Span)',
+ colSpan: 'Sütünlar Mesafesi (Span)',
+ wordWrap: 'Kelime Kaydırma',
+ hAlign: 'DüÅey Hizalama',
+ vAlign: 'YataÅ Hizalama',
+ alignBaseline: 'Tabana',
+ bgColor: 'Arkaplan Rengi',
+ borderColor: 'Ãerçeve Rengi',
+ data: 'Veri',
+ header: 'BaÅlık',
+ yes: 'Evet',
+ no: 'Hayır',
+ invalidWidth: 'Hücre geniÅliÄi sayı olmalıdır.',
+ invalidHeight: 'Hücre yüksekliÄi sayı olmalıdır.',
+ invalidRowSpan: 'Satırların mesafesi tam sayı olmalıdır.',
+ invalidColSpan: 'Sütünların mesafesi tam sayı olmalıdır.',
+ chooseColor: 'Seçiniz'
+ },
+ cellPad: 'Izgara yazı arası',
+ cellSpace: 'Izgara kalınlıÄı',
+ column: {
+ menu: 'Sütun',
+ insertBefore: 'Kolon Ekle - Ãnce',
+ insertAfter: 'Kolon Ekle - Sonra',
+ deleteColumn: 'Sütun Sil'
+ },
+ columns: 'Sütunlar',
+ deleteTable: 'Tabloyu Sil',
+ headers: 'BaÅlıklar',
+ headersBoth: 'Her İkisi',
+ headersColumn: 'İlk Sütun',
+ headersNone: 'Yok',
+ headersRow: 'İlk Satır',
+ invalidBorder: 'Ãerceve büyüklüklüÄü sayı olmalıdır.',
+ invalidCellPadding: 'Hücre aralıÄı (padding) sayı olmalıdır.',
+ invalidCellSpacing: 'Hücre boÅluÄu (spacing) sayı olmalıdır.',
+ invalidCols: 'Sütün sayısı 0 sayısından büyük olmalıdır.',
+ invalidHeight: 'Tablo yüksekliÄi sayı olmalıdır.',
+ invalidRows: 'Satır sayısı 0 sayısından büyük olmalıdır.',
+ invalidWidth: 'Tablo geniÅliÄi sayı olmalıdır.',
+ menu: 'Tablo Ãzellikleri',
+ row: {
+ menu: 'Satır',
+ insertBefore: 'Satır Ekle - Ãnce',
+ insertAfter: 'Satır Ekle - Sonra',
+ deleteRow: 'Satır Sil'
+ },
+ rows: 'Satırlar',
+ summary: 'Ãzet',
+ title: 'Tablo Ãzellikleri',
+ toolbar: 'Tablo',
+ widthPc: 'yüzde',
+ widthPx: 'piksel',
+ widthUnit: 'geniÅlik birimi'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/ug.js b/devel/third-party/ckeditor/plugins/table/lang/ug.js
new file mode 100644
index 0000000..6d10af3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/ug.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'ug', {
+ border: 'Ú¯ÙØ±ÛÛÙ',
+ caption: 'Ù
Ø§ÛØ²Û',
+ cell: {
+ menu: 'ÙØ§ØªÛÙÚÛ',
+ insertBefore: 'سÙÙØºØ§ ÙØ§ØªÛÙÚÛ ÙÙØ³ØªÛر',
+ insertAfter: 'ئÙÚØºØ§ ÙØ§ØªÛÙÚÛ ÙÙØ³ØªÛر',
+ deleteCell: 'ÙÛØªÛÙÚÛ Ø¦ÛÚÛØ±',
+ merge: 'ÙØ§ØªÛÙÚÛ Ø¨ÙØ±ÙÛØ´ØªÛر',
+ mergeRight: 'ÙØ§ØªÛÙÚÙÙ٠ئÙÚØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر',
+ mergeDown: 'ÙØ§ØªÛÙÚÙÙÙ Ø¦Ø§Ø³ØªÙØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر',
+ splitHorizontal: 'ÙØ§ØªÛÙÚÙÙÙ ØªÙØºØ±ÙØ³ÙØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر',
+ splitVertical: 'ÙØ§ØªÛÙÚÙÙ٠بÙÙÙØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر',
+ title: 'ÙØ§ØªÛÙÚÛ Ø®Ø§Ø³ÙÙÙÙ',
+ cellType: 'ÙØ§ØªÛÙÚÛ ØªÙÙ¾Ù',
+ rowSpan: 'بÙÙÙØºØ§ ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù ÙÛØ± ساÙÙ',
+ colSpan: 'ØªÙØºØ±ÙØ³ÙØºØ§ ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù Ø¦ÙØ³ØªÙ٠ساÙÙ',
+ wordWrap: 'Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ ÙÛØ± ÙØ§ØªÙا',
+ hAlign: 'ØªÙØºØ±ÙØ³ÙØºØ§ ØªÙØºØ±ÙÙØ§',
+ vAlign: 'بÙÙÙØºØ§ ØªÙØºØ±ÙÙØ§',
+ alignBaseline: 'ئاساسÙÙ Ø³ÙØ²ÙÙ',
+ bgColor: 'تÛÚ¯ÙÙ٠رÛÚÚ¯Ù',
+ borderColor: 'Ú¯ÙØ±ÛÛ٠رÛÚÚ¯Ù',
+ data: 'ساÙÙÙÙ Ù
ÛÙÛÙ
ات',
+ header: 'Ø¬ÛØ¯ÛÛ٠باشÙ',
+ yes: 'Ú¾ÛØ¦Û',
+ no: 'ÙØ§Ù',
+ invalidWidth: 'ÙØ§ØªÛÙÚÛ ÙÛÚÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ invalidHeight: 'ÙØ§ØªÛÙÚÛ Ø¦ÛÚ¯ÙØ²ÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ invalidRowSpan: 'ÙÛØ± ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û ',
+ invalidColSpan: 'Ø¦ÙØ³ØªÙÙ ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û',
+ chooseColor: 'تاÙÙØ§Ú'
+ },
+ cellPad: 'ÙØ§Ù ئارÙÙÙÙ',
+ cellSpace: 'ئارÙÙÙÙ',
+ column: {
+ menu: 'Ø¦ÙØ³ØªÙÙ',
+ insertBefore: 'سÙÙØºØ§ Ø¦ÙØ³ØªÙÙ ÙÙØ³ØªÛر',
+ insertAfter: 'ئÙÚØºØ§ Ø¦ÙØ³ØªÙÙ ÙÙØ³ØªÛر',
+ deleteColumn: 'Ø¦ÙØ³ØªÙ٠ئÛÚÛØ±'
+ },
+ columns: 'Ø¦ÙØ³ØªÙ٠ساÙÙ',
+ deleteTable: 'Ø¬ÛØ¯ÛÛ٠ئÛÚÛØ±',
+ headers: 'Ù
Ø§ÛØ²Û ÙØ§ØªÛÙÚÛ',
+ headersBoth: 'Ø¨ÙØ±ÙÙÚÙ Ø¦ÙØ³ØªÙÙ ÛÛ Ø¨ÙØ±ÙÙÚÙ ÙÛØ±',
+ headersColumn: 'Ø¨ÙØ±ÙÙÚÙ Ø¦ÙØ³ØªÙÙ',
+ headersNone: 'ÙÙÙ',
+ headersRow: 'Ø¨ÙØ±ÙÙÚÙ ÙÛØ±',
+ invalidBorder: 'Ú¯ÙØ±ÛÛ٠تÙÙ
ÙÛÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ invalidCellPadding: 'ÙØ§ØªÛÙÚÙÚ¯Û ÚÙÙÛÙ
سا٠تÙÙØ¯ÛرÛÙÙØ¯Û',
+ invalidCellSpacing: 'ÙØ§ØªÛÙÚÛ Ø¦Ø§Ø±ÙÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ invalidCols: 'بÛÙÚ¯ÙÙÛÙÚ¯ÛÙ ÙÛØ± ساÙÙ ÚÙÙÛÙ
ÙÛÙØ¯ÙÙ ÚÙÚ Ø¨ÙÙÙØ¯Û',
+ invalidHeight: 'Ø¬ÛØ¯ÛÛ٠ئÛÚ¯ÙØ²ÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ invalidRows: 'بÛÙÚ¯ÙÙÛÙÚ¯ÛÙ Ø¦ÙØ³ØªÙ٠ساÙÙ ÚÙÙÛÙ
ÙÛÙØ¯ÙÙ ÚÙÚ Ø¨ÙÙÙØ¯Û',
+ invalidWidth: 'Ø¬ÛØ¯ÛÛÙ ÙÛÚÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û',
+ menu: 'Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ',
+ row: {
+ menu: 'ÙÛØ±',
+ insertBefore: 'Ø¦ÛØ³ØªÙÚ¯Û ÙÛØ± ÙÙØ³ØªÛر',
+ insertAfter: 'Ø¦Ø§Ø³ØªÙØºØ§ ÙÛØ± ÙÙØ³ØªÛر',
+ deleteRow: 'ÙÛØ± ئÛÚÛØ±'
+ },
+ rows: 'ÙÛØ± ساÙÙ',
+ summary: 'Ø¦ÛØ²ÛÙØ¯Û',
+ title: 'Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ',
+ toolbar: 'Ø¬ÛØ¯ÛÛÙ',
+ widthPc: 'Ù¾ÙØ±Ø³ÛÙØª',
+ widthPx: 'Ù¾ÙÙØ³ÛÙ',
+ widthUnit: 'ÙÛÚÙÙÙ Ø¨ÙØ±ÙÙÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/uk.js b/devel/third-party/ckeditor/plugins/table/lang/uk.js
new file mode 100644
index 0000000..e97ec1d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/uk.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'uk', {
+ border: 'РозмÑÑ Ñамки',
+ caption: 'Ðаголовок ÑаблиÑÑ',
+ cell: {
+ menu: 'ÐомÑÑки',
+ insertBefore: 'ÐÑÑавиÑи комÑÑÐºÑ Ð¿ÐµÑед',
+ insertAfter: 'ÐÑÑавиÑи комÑÑÐºÑ Ð¿ÑÑлÑ',
+ deleteCell: 'ÐидалиÑи комÑÑки',
+ merge: 'Ðб\'ÑднаÑи комÑÑки',
+ mergeRight: 'Ðб\'ÑднаÑи ÑпÑава',
+ mergeDown: 'Ðб\'ÑднаÑи донизÑ',
+ splitHorizontal: 'РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ гоÑизонÑалÑ',
+ splitVertical: 'РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ веÑÑикалÑ',
+ title: 'ÐлаÑÑивоÑÑÑ ÐºÐ¾Ð¼ÑÑки',
+ cellType: 'Тип комÑÑки',
+ rowSpan: 'Ðб\'ÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑдкÑв',
+ colSpan: 'Ðб\'ÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑовпÑÑв',
+ wordWrap: 'ÐвÑопеÑенеÑÐµÐ½Ð½Ñ ÑекÑÑÑ',
+ hAlign: 'ÐоÑиз. виÑÑвнÑваннÑ',
+ vAlign: 'ÐеÑÑ. виÑÑвнÑваннÑ',
+ alignBaseline: 'Ðо базовÑй лÑнÑÑ',
+ bgColor: 'ÐолÑÑ ÑонÑ',
+ borderColor: 'ÐолÑÑ Ñамки',
+ data: 'ÐанÑ',
+ header: 'Ðаголовок',
+ yes: 'Так',
+ no: 'ÐÑ',
+ invalidWidth: 'ШиÑина комÑÑки повинна бÑÑи ÑÑлим ÑиÑлом.',
+ invalidHeight: 'ÐиÑоÑа комÑÑки повинна бÑÑи ÑÑлим ÑиÑлом.',
+ invalidRowSpan: 'ÐÑлÑкÑÑÑÑ Ð¾Ð±\'ÑднÑваниÑ
ÑÑдкÑв повинна бÑÑи ÑÑлим ÑиÑлом.',
+ invalidColSpan: 'ÐÑлÑкÑÑÑÑ Ð¾Ð±\'ÑднÑваниÑ
ÑÑовбÑÑв повинна бÑÑи ÑÑлим ÑиÑлом.',
+ chooseColor: 'ÐбÑаÑи'
+ },
+ cellPad: 'ÐнÑÑÑ. вÑдÑÑÑп',
+ cellSpace: 'ÐÑомÑжок',
+ column: {
+ menu: 'СÑовбÑÑ',
+ insertBefore: 'ÐÑÑавиÑи ÑÑовбеÑÑ Ð¿ÐµÑед',
+ insertAfter: 'ÐÑÑавиÑи ÑÑовбеÑÑ Ð¿ÑÑлÑ',
+ deleteColumn: 'ÐидалиÑи ÑÑовбÑÑ'
+ },
+ columns: 'СÑовбÑÑ',
+ deleteTable: 'ÐидалиÑи ÑаблиÑÑ',
+ headers: 'Ðаголовки ÑÑовбÑÑв/ÑÑдкÑв',
+ headersBoth: 'СÑовбÑÑ Ñ ÑÑдки',
+ headersColumn: 'СÑовбÑÑ',
+ headersNone: 'Ðез заголовкÑв',
+ headersRow: 'Ð Ñдки',
+ invalidBorder: 'РозмÑÑ Ñамки повинен бÑÑи ÑÑлим ÑиÑлом.',
+ invalidCellPadding: 'ÐнÑÑÑ. вÑдÑÑÑп комÑÑки повинен бÑÑи ÑÑлим ÑиÑлом.',
+ invalidCellSpacing: 'ÐÑомÑжок мÑж комÑÑками повинен бÑÑи ÑÑлим ÑиÑлом.',
+ invalidCols: 'ÐÑлÑкÑÑÑÑ ÑÑовбÑÑв повинна бÑÑи бÑлÑÑÐ¾Ñ 0.',
+ invalidHeight: 'ÐиÑоÑа ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑÑлим ÑиÑлом.',
+ invalidRows: 'ÐÑлÑкÑÑÑÑ ÑÑдкÑв повинна бÑÑи бÑлÑÑÐ¾Ñ 0.',
+ invalidWidth: 'ШиÑина ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑÑлим ÑиÑлом.',
+ menu: 'ÐлаÑÑивоÑÑÑ ÑаблиÑÑ',
+ row: {
+ menu: 'Ð Ñдки',
+ insertBefore: 'ÐÑÑавиÑи ÑÑдок пеÑед',
+ insertAfter: 'ÐÑÑавиÑи ÑÑдок пÑÑлÑ',
+ deleteRow: 'ÐидалиÑи ÑÑдки'
+ },
+ rows: 'Ð Ñдки',
+ summary: 'ÐеÑалÑний Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ ÑаблиÑÑ',
+ title: 'ÐлаÑÑивоÑÑÑ ÑаблиÑÑ',
+ toolbar: 'ТаблиÑÑ',
+ widthPc: 'вÑдÑоÑкÑв',
+ widthPx: 'пÑкÑелÑв',
+ widthUnit: 'ÐдиниÑÑ Ð²Ð¸Ð¼ÑÑ.'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/vi.js b/devel/third-party/ckeditor/plugins/table/lang/vi.js
new file mode 100644
index 0000000..80c97b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/vi.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'vi', {
+ border: 'KÃch thưá»c ÄÆ°á»ng viá»n',
+ caption: 'Äầu Äá»',
+ cell: {
+ menu: 'Ã',
+ insertBefore: 'Chèn ô PhÃa trưá»c',
+ insertAfter: 'Chèn ô PhÃa sau',
+ deleteCell: 'Xoá ô',
+ merge: 'Kết hợp ô',
+ mergeRight: 'Kết hợp sang phải',
+ mergeDown: 'Kết hợp xuá»ng dưá»i',
+ splitHorizontal: 'Phân tách ô theo chiá»u ngang',
+ splitVertical: 'Phân tách ô theo chiá»u dá»c',
+ title: 'Thuá»c tÃnh cá»§a ô',
+ cellType: 'Kiá»u cá»§a ô',
+ rowSpan: 'Kết hợp hà ng',
+ colSpan: 'Kết hợp cá»t',
+ wordWrap: 'Chữ liá»n hà ng',
+ hAlign: 'Canh lá» ngang',
+ vAlign: 'Canh lá» dá»c',
+ alignBaseline: 'ÄÆ°á»ng cÆ¡ sá»',
+ bgColor: 'Mà u ná»n',
+ borderColor: 'Mà u viá»n',
+ data: 'Dữ liá»u',
+ header: 'Äầu Äá»',
+ yes: 'Có',
+ no: 'Không',
+ invalidWidth: 'Chiá»u rá»ng cá»§a ô phải là má»t sá» nguyên.',
+ invalidHeight: 'Chiá»u cao cá»§a ô phải là má»t sá» nguyên.',
+ invalidRowSpan: 'Sá» hà ng kết hợp phải là má»t sá» nguyên.',
+ invalidColSpan: 'Sá» cá»t kết hợp phải là má»t sá» nguyên.',
+ chooseColor: 'Chá»n mà u'
+ },
+ cellPad: 'Khoảng Äá»m giữ ô và ná»i dung',
+ cellSpace: 'Khoảng cách giữa các ô',
+ column: {
+ menu: 'Cá»t',
+ insertBefore: 'Chèn cá»t phÃa trưá»c',
+ insertAfter: 'Chèn cá»t phÃa sau',
+ deleteColumn: 'Xoá cá»t'
+ },
+ columns: 'Sá» cá»t',
+ deleteTable: 'Xóa bảng',
+ headers: 'Äầu Äá»',
+ headersBoth: 'Cả hai',
+ headersColumn: 'Cá»t Äầu tiên',
+ headersNone: 'Không có',
+ headersRow: 'Hà ng Äầu tiên',
+ invalidBorder: 'KÃch cỡ cá»§a ÄÆ°á»ng biên phải là má»t sá» nguyên.',
+ invalidCellPadding: 'Khoảng Äá»m giữa ô và ná»i dung phải là má»t sá» nguyên.',
+ invalidCellSpacing: 'Khoảng cách giữa các ô phải là má»t sá» nguyên.',
+ invalidCols: 'Sá» lượng cá»t phải là má»t sá» lá»n hÆ¡n 0.',
+ invalidHeight: 'Chiá»u cao cá»§a bảng phải là má»t sá» nguyên.',
+ invalidRows: 'Sá» lượng hà ng phải là má»t sá» lá»n hÆ¡n 0.',
+ invalidWidth: 'Chiá»u rá»ng cá»§a bảng phải là má»t sá» nguyên.',
+ menu: 'Thuá»c tÃnh bảng',
+ row: {
+ menu: 'HÃ ng',
+ insertBefore: 'Chèn hà ng phÃa trưá»c',
+ insertAfter: 'Chèn hà ng phÃa sau',
+ deleteRow: 'Xoá hà ng'
+ },
+ rows: 'SỠhà ng',
+ summary: 'Tóm lược',
+ title: 'Thuá»c tÃnh bảng',
+ toolbar: 'Bảng',
+ widthPc: 'Phần trÄm (%)',
+ widthPx: 'Äiá»m ảnh (px)',
+ widthUnit: 'ÄÆ¡n vá»'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/table/lang/zh-cn.js
new file mode 100644
index 0000000..809c74a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/zh-cn.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'zh-cn', {
+ border: 'è¾¹æ¡',
+ caption: 'æ é¢',
+ cell: {
+ menu: 'åå
æ ¼',
+ insertBefore: 'å¨å·¦ä¾§æå
¥åå
æ ¼',
+ insertAfter: 'å¨å³ä¾§æå
¥åå
æ ¼',
+ deleteCell: 'å é¤åå
æ ¼',
+ merge: 'åå¹¶åå
æ ¼',
+ mergeRight: 'åå³åå¹¶åå
æ ¼',
+ mergeDown: 'åä¸åå¹¶åå
æ ¼',
+ splitHorizontal: 'æ°´å¹³æååå
æ ¼',
+ splitVertical: 'åç´æååå
æ ¼',
+ title: 'åå
æ ¼å±æ§',
+ cellType: 'åå
æ ¼ç±»å',
+ rowSpan: 'çºµè·¨è¡æ°',
+ colSpan: 'æ¨ªè·¨åæ°',
+ wordWrap: 'èªå¨æ¢è¡',
+ hAlign: '水平对é½',
+ vAlign: 'åç´å¯¹é½',
+ alignBaseline: 'åºçº¿',
+ bgColor: 'èæ¯é¢è²',
+ borderColor: 'è¾¹æ¡é¢è²',
+ data: 'æ°æ®',
+ header: '表头',
+ yes: 'æ¯',
+ no: 'å¦',
+ invalidWidth: 'åå
æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼',
+ invalidHeight: 'åå
æ ¼é«åº¦å¿
须为æ°åæ ¼å¼',
+ invalidRowSpan: 'è¡è·¨åº¦å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
+ invalidColSpan: 'å跨度å¿
é¡»ä¸ºæ´æ°æ ¼å¼',
+ chooseColor: 'éæ©'
+ },
+ cellPad: 'è¾¹è·',
+ cellSpace: 'é´è·',
+ column: {
+ menu: 'å',
+ insertBefore: 'å¨å·¦ä¾§æå
¥å',
+ insertAfter: 'å¨å³ä¾§æå
¥å',
+ deleteColumn: 'å é¤å'
+ },
+ columns: 'åæ°',
+ deleteTable: 'å é¤è¡¨æ ¼',
+ headers: 'æ é¢åå
æ ¼',
+ headersBoth: '第ä¸åå第ä¸è¡',
+ headersColumn: '第ä¸å',
+ headersNone: 'æ ',
+ headersRow: '第ä¸è¡',
+ invalidBorder: 'è¾¹æ¡ç²ç»å¿
须为æ°åæ ¼å¼',
+ invalidCellPadding: 'åå
æ ¼å¡«å
å¿
须为æ°åæ ¼å¼',
+ invalidCellSpacing: 'åå
æ ¼é´è·å¿
须为æ°åæ ¼å¼',
+ invalidCols: 'æå®çè¡æ°å¿
须大äºé¶',
+ invalidHeight: 'è¡¨æ ¼é«åº¦å¿
须为æ°åæ ¼å¼',
+ invalidRows: 'æå®çåæ°å¿
须大äºé¶',
+ invalidWidth: 'è¡¨æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼',
+ menu: 'è¡¨æ ¼å±æ§',
+ row: {
+ menu: 'è¡',
+ insertBefore: 'å¨ä¸æ¹æå
¥è¡',
+ insertAfter: 'å¨ä¸æ¹æå
¥è¡',
+ deleteRow: 'å é¤è¡'
+ },
+ rows: 'è¡æ°',
+ summary: 'æè¦',
+ title: 'è¡¨æ ¼å±æ§',
+ toolbar: 'è¡¨æ ¼',
+ widthPc: 'ç¾åæ¯',
+ widthPx: 'åç´ ',
+ widthUnit: '宽度åä½'
+});
diff --git a/devel/third-party/ckeditor/plugins/table/lang/zh.js b/devel/third-party/ckeditor/plugins/table/lang/zh.js
new file mode 100644
index 0000000..2c78b25
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/table/lang/zh.js
@@ -0,0 +1,74 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'table', 'zh', {
+ border: 'éæ¡',
+ caption: 'æ¨é¡',
+ cell: {
+ menu: 'å²åæ ¼',
+ insertBefore: 'åå·¦æå
¥å²åæ ¼',
+ insertAfter: 'å峿å
¥å²åæ ¼',
+ deleteCell: 'åªé¤å²åæ ¼',
+ merge: 'åä½µå²åæ ¼',
+ mergeRight: 'åå³åä½µå²åæ ¼',
+ mergeDown: 'åä¸åä½µå²åæ ¼',
+ splitHorizontal: 'æ©«ååå²å²åæ ¼',
+ splitVertical: '縱ååå²å²åæ ¼',
+ title: 'å²åæ ¼å±¬æ§',
+ cellType: 'å²åæ ¼é¡å¥',
+ rowSpan: 'å²åæ ¼åæ¸',
+ colSpan: 'å²åæ ¼æ¬æ¸',
+ wordWrap: 'èªåæè¡',
+ hAlign: 'æ°´å¹³å°é½',
+ vAlign: 'åç´å°é½',
+ alignBaseline: 'åºç·å°é½',
+ bgColor: 'èæ¯é¡è²',
+ borderColor: 'éæ¡é¡è²',
+ data: 'æ¸æ',
+ header: 'æ¨é¡',
+ yes: 'æ¯',
+ no: 'å¦',
+ invalidWidth: 'å²åæ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼',
+ invalidHeight: 'å²åæ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼',
+ invalidRowSpan: 'å²åæ ¼åæ¸å¿
é çºæ´æ¸æ ¼å¼',
+ invalidColSpan: 'å²åæ ¼æ¬æ¸åº¦å¿
é çºæ´æ¸æ ¼å¼',
+ chooseColor: 'Choose'
+ },
+ cellPad: 'å
§è·',
+ cellSpace: 'éè·',
+ column: {
+ menu: 'æ¬',
+ insertBefore: 'åå·¦æå
¥æ¬',
+ insertAfter: 'å峿å
¥æ¬',
+ deleteColumn: 'åªé¤æ¬'
+ },
+ columns: 'æ¬æ¸',
+ deleteTable: 'åªé¤è¡¨æ ¼',
+ headers: 'æ¨é¡',
+ headersBoth: 'ç¬¬ä¸æ¬å第ä¸å',
+ headersColumn: 'ç¬¬ä¸æ¬',
+ headersNone: 'ç¡æ¨é¡',
+ headersRow: '第ä¸å',
+ invalidBorder: '鿡大å°å¿
é çºæ¸åæ ¼å¼',
+ invalidCellPadding: 'å²åæ ¼å
§è·å¿
é çºæ¸åæ ¼å¼',
+ invalidCellSpacing: 'å²åæ ¼éè·å¿
é çºæ¸åæ ¼å¼',
+ invalidCols: 'å¿
é æä¸ææ´å¤çæ¬',
+ invalidHeight: 'è¡¨æ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼',
+ invalidRows: 'å¿
é æä¸ææ´å¤çå',
+ invalidWidth: 'è¡¨æ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼',
+ menu: 'è¡¨æ ¼å±¬æ§',
+ row: {
+ menu: 'å',
+ insertBefore: 'å䏿å
¥å',
+ insertAfter: 'å䏿å
¥å',
+ deleteRow: 'åªé¤å'
+ },
+ rows: '忏',
+ summary: 'æè¦',
+ title: 'è¡¨æ ¼å±¬æ§',
+ toolbar: 'è¡¨æ ¼',
+ widthPc: 'ç¾åæ¯',
+ widthPx: 'åç´ ',
+ widthUnit: 'width unit' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/table/plugin.js b/devel/third-party/ckeditor/plugins/table/plugin.js
index 9f5ca9d..42c5c8c 100644
--- a/devel/third-party/ckeditor/plugins/table/plugin.js
+++ b/devel/third-party/ckeditor/plugins/table/plugin.js
@@ -1,78 +1,95 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.plugins.add( 'table', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'table', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ if ( editor.blockless )
+ return;
-CKEDITOR.plugins.add( 'table',
-{
- init : function( editor )
- {
var table = CKEDITOR.plugins.table,
lang = editor.lang.table;
- editor.addCommand( 'table', new CKEDITOR.dialogCommand( 'table' ) );
- editor.addCommand( 'tableProperties', new CKEDITOR.dialogCommand( 'tableProperties' ) );
+ editor.addCommand( 'table', new CKEDITOR.dialogCommand( 'table', { context: 'table' } ) );
- editor.ui.addButton( 'Table',
- {
- label : lang.toolbar,
- command : 'table'
+ function createDef( def ) {
+ return CKEDITOR.tools.extend( def || {}, {
+ contextSensitive: 1,
+ refresh: function( editor, path ) {
+ this.setState( path.contains( 'table', 1 ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+ }
});
+ }
+
+ editor.addCommand( 'tableProperties', new CKEDITOR.dialogCommand( 'tableProperties', createDef() ) );
+ editor.addCommand( 'tableDelete', createDef({
+ exec: function( editor ) {
+ var path = editor.elementPath(),
+ table = path.contains( 'table', 1 );
+
+ if ( !table )
+ return;
+
+ // If the table's parent has only one child remove it as well (unless it's the body or a table cell) (#5416, #6289)
+ var parent = table.getParent();
+ if ( parent.getChildCount() == 1 && !parent.is( 'body', 'td', 'th' ) )
+ table = parent;
+
+ var range = editor.createRange();
+ range.moveToPosition( table, CKEDITOR.POSITION_BEFORE_START );
+ table.remove();
+ range.select();
+ }
+ }));
+
+ editor.ui.addButton && editor.ui.addButton( 'Table', {
+ label: lang.toolbar,
+ command: 'table',
+ toolbar: 'insert,30'
+ });
CKEDITOR.dialog.add( 'table', this.path + 'dialogs/table.js' );
CKEDITOR.dialog.add( 'tableProperties', this.path + 'dialogs/table.js' );
// If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- table :
- {
- label : lang.menu,
- command : 'tableProperties',
- group : 'table',
- order : 5
- },
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ table: {
+ label: lang.menu,
+ command: 'tableProperties',
+ group: 'table',
+ order: 5
+ },
- tabledelete :
- {
- label : lang.deleteTable,
- command : 'tableDelete',
- group : 'table',
- order : 1
- }
- } );
+ tabledelete: {
+ label: lang.deleteTable,
+ command: 'tableDelete',
+ group: 'table',
+ order: 1
+ }
+ });
}
- editor.on( 'doubleclick', function( evt )
- {
- var element = evt.data.element;
+ editor.on( 'doubleclick', function( evt ) {
+ var element = evt.data.element;
- if ( element.is( 'table' ) )
- evt.data.dialog = 'tableProperties';
- });
+ if ( element.is( 'table' ) )
+ evt.data.dialog = 'tableProperties';
+ });
// If the "contextmenu" plugin is loaded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !element || element.isReadOnly())
- return null;
-
- var isTable = element.is( 'table' ) || element.hasAscendant( 'table' );
-
- if ( isTable )
- {
- return {
- tabledelete : CKEDITOR.TRISTATE_OFF,
- table : CKEDITOR.TRISTATE_OFF
- };
- }
-
- return null;
- } );
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function() {
+ // menu item state is resolved on commands.
+ return {
+ tabledelete: CKEDITOR.TRISTATE_OFF,
+ table: CKEDITOR.TRISTATE_OFF
+ };
+ });
}
}
-} );
+});
diff --git a/devel/third-party/ckeditor/plugins/tableresize/plugin.js b/devel/third-party/ckeditor/plugins/tableresize/plugin.js
deleted file mode 100644
index f16978a..0000000
--- a/devel/third-party/ckeditor/plugins/tableresize/plugin.js
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var pxUnit = CKEDITOR.tools.cssLength,
- needsIEHacks = CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks || CKEDITOR.env.version < 7 );
-
- function getWidth( el )
- {
- return CKEDITOR.env.ie ? el.$.clientWidth : parseInt( el.getComputedStyle( 'width' ), 10 );
- }
-
- function getBorderWidth( element, side )
- {
- var computed = element.getComputedStyle( 'border-' + side + '-width' ),
- borderMap =
- {
- thin: '0px',
- medium: '1px',
- thick: '2px'
- };
-
- if ( computed.indexOf( 'px' ) < 0 )
- {
- // look up keywords
- if ( computed in borderMap && element.getComputedStyle( 'border-style' ) != 'none' )
- computed = borderMap[ computed ];
- else
- computed = 0;
- }
-
- return parseInt( computed, 10 );
- }
-
- // Gets the table row that contains the most columns.
- function getMasterPillarRow( table )
- {
- var $rows = table.$.rows,
- maxCells = 0, cellsCount,
- $elected, $tr;
-
- for ( var i = 0, len = $rows.length ; i < len; i++ )
- {
- $tr = $rows[ i ];
- cellsCount = $tr.cells.length;
-
- if ( cellsCount > maxCells )
- {
- maxCells = cellsCount;
- $elected = $tr;
- }
- }
-
- return $elected;
- }
-
- function buildTableColumnPillars( table )
- {
- var pillars = [],
- pillarIndex = -1,
- rtl = ( table.getComputedStyle( 'direction' ) == 'rtl' );
-
- // Get the raw row element that cointains the most columns.
- var $tr = getMasterPillarRow( table );
-
- // Get the tbody element and position, which will be used to set the
- // top and bottom boundaries.
- var tbody = new CKEDITOR.dom.element( table.$.tBodies[ 0 ] ),
- tbodyPosition = tbody.getDocumentPosition();
-
- // Loop thorugh all cells, building pillars after each one of them.
- for ( var i = 0, len = $tr.cells.length ; i < len ; i++ )
- {
- // Both the current cell and the successive one will be used in the
- // pillar size calculation.
- var td = new CKEDITOR.dom.element( $tr.cells[ i ] ),
- nextTd = $tr.cells[ i + 1 ] && new CKEDITOR.dom.element( $tr.cells[ i + 1 ] );
-
- pillarIndex += td.$.colSpan || 1;
-
- // Calculate the pillar boundary positions.
- var pillarLeft, pillarRight, pillarWidth, pillarPadding;
-
- var x = td.getDocumentPosition().x;
-
- // Calculate positions based on the current cell.
- rtl ?
- pillarRight = x + getBorderWidth( td, 'left' ) :
- pillarLeft = x + td.$.offsetWidth - getBorderWidth( td, 'right' );
-
- // Calculate positions based on the next cell, if available.
- if ( nextTd )
- {
- x = nextTd.getDocumentPosition().x;
-
- rtl ?
- pillarLeft = x + nextTd.$.offsetWidth - getBorderWidth( nextTd, 'right' ) :
- pillarRight = x + getBorderWidth( nextTd, 'left' );
- }
- // Otherwise calculate positions based on the table (for last cell).
- else
- {
- x = table.getDocumentPosition().x;
-
- rtl ?
- pillarLeft = x :
- pillarRight = x + table.$.offsetWidth;
- }
-
- pillarWidth = Math.max( pillarRight - pillarLeft, 3 );
-
- // Make the pillar touch area at least 14 pixels wide, for easy to use.
- pillarPadding = Math.max( Math.round( 7 - ( pillarWidth / 2 ) ), 0 );
-
- // The pillar should reflects exactly the shape of the hovered
- // column border line.
- pillars.push( {
- table : table,
- index : pillarIndex,
- x : pillarLeft,
- y : tbodyPosition.y,
- width : pillarWidth,
- height: tbody.$.offsetHeight,
- padding : pillarPadding,
- rtl : rtl } );
- }
-
- return pillars;
- }
-
- function getPillarAtPosition( pillars, positionX )
- {
- for ( var i = 0, len = pillars.length ; i < len ; i++ )
- {
- var pillar = pillars[ i ],
- pad = pillar.padding;
-
- if ( positionX >= pillar.x - pad && positionX <= ( pillar.x + pillar.width + pad ) )
- return pillar;
- }
-
- return null;
- }
-
- function cancel( evt )
- {
- ( evt.data || evt ).preventDefault();
- }
-
- function columnResizer( editor )
- {
- var pillar,
- document,
- resizer,
- isResizing,
- startOffset,
- currentShift;
-
- var leftSideCells, rightSideCells, leftShiftBoundary, rightShiftBoundary;
-
- function detach()
- {
- pillar = null;
- currentShift = 0;
- isResizing = 0;
-
- document.removeListener( 'mouseup', onMouseUp );
- resizer.removeListener( 'mousedown', onMouseDown );
- resizer.removeListener( 'mousemove', onMouseMove );
-
- document.getBody().setStyle( 'cursor', 'auto' );
-
- // Hide the resizer (remove it on IE7 - #5890).
- needsIEHacks ? resizer.remove() : resizer.hide();
- }
-
- function resizeStart()
- {
- // Before starting to resize, figure out which cells to change
- // and the boundaries of this resizing shift.
-
- var columnIndex = pillar.index,
- map = CKEDITOR.tools.buildTableMap( pillar.table ),
- leftColumnCells = [],
- rightColumnCells = [],
- leftMinSize = Number.MAX_VALUE,
- rightMinSize = leftMinSize,
- rtl = pillar.rtl;
-
- for ( var i = 0, len = map.length ; i < len ; i++ )
- {
- var row = map[ i ],
- leftCell = row[ columnIndex + ( rtl ? 1 : 0 ) ],
- rightCell = row[ columnIndex + ( rtl ? 0 : 1 ) ];
-
- leftCell = leftCell && new CKEDITOR.dom.element( leftCell );
- rightCell = rightCell && new CKEDITOR.dom.element( rightCell );
-
- if ( !leftCell || !rightCell || !leftCell.equals( rightCell ) )
- {
- leftCell && ( leftMinSize = Math.min( leftMinSize, getWidth( leftCell ) ) );
- rightCell && ( rightMinSize = Math.min( rightMinSize, getWidth( rightCell ) ) );
-
- leftColumnCells.push( leftCell );
- rightColumnCells.push( rightCell );
- }
- }
-
- // Cache the list of cells to be resized.
- leftSideCells = leftColumnCells;
- rightSideCells = rightColumnCells;
-
- // Cache the resize limit boundaries.
- leftShiftBoundary = pillar.x - leftMinSize;
- rightShiftBoundary = pillar.x + rightMinSize;
-
- resizer.setOpacity( 0.5 );
- startOffset = parseInt( resizer.getStyle( 'left' ), 10 );
- currentShift = 0;
- isResizing = 1;
-
- resizer.on( 'mousemove', onMouseMove );
-
- // Prevent the native drag behavior otherwise 'mousemove' won't fire.
- document.on( 'dragstart', cancel );
- }
-
- function resizeEnd()
- {
- isResizing = 0;
-
- resizer.setOpacity( 0 );
-
- currentShift && resizeColumn();
-
- var table = pillar.table;
- setTimeout( function () { table.removeCustomData( '_cke_table_pillars' ); }, 0 );
-
- document.removeListener( 'dragstart', cancel );
- }
-
- function resizeColumn()
- {
- var rtl = pillar.rtl,
- cellsCount = rtl ? rightSideCells.length : leftSideCells.length;
-
- // Perform the actual resize to table cells, only for those by side of the pillar.
- for ( var i = 0 ; i < cellsCount ; i++ )
- {
- var leftCell = leftSideCells[ i ],
- rightCell = rightSideCells[ i ],
- table = pillar.table;
-
- // Defer the resizing to avoid any interference among cells.
- CKEDITOR.tools.setTimeout(
- function( leftCell, leftOldWidth, rightCell, rightOldWidth, tableWidth, sizeShift )
- {
- leftCell && leftCell.setStyle( 'width', pxUnit( Math.max( leftOldWidth + sizeShift, 0 ) ) );
- rightCell && rightCell.setStyle( 'width', pxUnit( Math.max( rightOldWidth - sizeShift, 0 ) ) );
-
- // If we're in the last cell, we need to resize the table as well
- if ( tableWidth )
- table.setStyle( 'width', pxUnit( tableWidth + sizeShift * ( rtl ? -1 : 1 ) ) );
- }
- , 0,
- this, [
- leftCell, leftCell && getWidth( leftCell ),
- rightCell, rightCell && getWidth( rightCell ),
- ( !leftCell || !rightCell ) && ( getWidth( table ) + getBorderWidth( table, 'left' ) + getBorderWidth( table, 'right' ) ),
- currentShift ] );
- }
- }
-
- function onMouseDown( evt )
- {
- cancel( evt );
-
- resizeStart();
-
- document.on( 'mouseup', onMouseUp, this );
- }
-
- function onMouseUp( evt )
- {
- evt.removeListener();
-
- resizeEnd();
- }
-
- function onMouseMove( evt )
- {
- move( evt.data.$.clientX );
- }
-
- document = editor.document;
-
- resizer = CKEDITOR.dom.element.createFromHtml(
- '<div cke_temp=1 contenteditable=false unselectable=on '+
- 'style="position:absolute;cursor:col-resize;filter:alpha(opacity=0);opacity:0;' +
- 'padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"></div>', document );
-
- // Except on IE6/7 (#5890), place the resizer after body to prevent it
- // from being editable.
- if ( !needsIEHacks )
- document.getDocumentElement().append( resizer );
-
- this.attachTo = function( targetPillar )
- {
- // Accept only one pillar at a time.
- if ( isResizing )
- return;
-
- // On IE6/7, we append the resizer everytime we need it. (#5890)
- if ( needsIEHacks )
- {
- document.getBody().append( resizer );
- currentShift = 0;
- }
-
- pillar = targetPillar;
-
- resizer.setStyles(
- {
- width: pxUnit( targetPillar.width ),
- height : pxUnit( targetPillar.height ),
- left : pxUnit( targetPillar.x ),
- top : pxUnit( targetPillar.y )
- });
-
- // In IE6/7, it's not possible to have custom cursors for floating
- // elements in an editable document. Show the resizer in that case,
- // to give the user a visual clue.
- needsIEHacks && resizer.setOpacity( 0.25 );
-
- resizer.on( 'mousedown', onMouseDown, this );
-
- document.getBody().setStyle( 'cursor', 'col-resize' );
-
- // Display the resizer to receive events but don't show it,
- // only change the cursor to resizable shape.
- resizer.show();
- };
-
- var move = this.move = function( posX )
- {
- if ( !pillar )
- return 0;
-
- var pad = pillar.padding;
-
- if ( !isResizing && ( posX < pillar.x - pad || posX > ( pillar.x + pillar.width + pad ) ) )
- {
- detach();
- return 0;
- }
-
- var resizerNewPosition = posX - Math.round( resizer.$.offsetWidth / 2 );
-
- if ( isResizing )
- {
- if ( resizerNewPosition == leftShiftBoundary || resizerNewPosition == rightShiftBoundary )
- return 1;
-
- resizerNewPosition = Math.max( resizerNewPosition, leftShiftBoundary );
- resizerNewPosition = Math.min( resizerNewPosition, rightShiftBoundary );
-
- currentShift = resizerNewPosition - startOffset;
- }
-
- resizer.setStyle( 'left', pxUnit( resizerNewPosition ) );
-
- return 1;
- };
- }
-
- function clearPillarsCache( evt )
- {
- var target = evt.data.getTarget();
-
- if ( evt.name == 'mouseout' )
- {
- // Bypass interal mouse move.
- if ( !target.is ( 'table' ) )
- return;
-
- var dest = new CKEDITOR.dom.element( evt.data.$.relatedTarget || evt.data.$.toElement );
- while( dest && dest.$ && !dest.equals( target ) && !dest.is( 'body' ) )
- dest = dest.getParent();
- if ( !dest || dest.equals( target ) )
- return;
- }
-
- target.getAscendant( 'table', true ).removeCustomData( '_cke_table_pillars' );
- evt.removeListener();
- }
-
- CKEDITOR.plugins.add( 'tableresize',
- {
- requires : [ 'tabletools' ],
- init : function( editor )
- {
- editor.on( 'contentDom', function()
- {
- var resizer;
-
- editor.document.getBody().on( 'mousemove', function( evt )
- {
- evt = evt.data;
-
- // If we're already attached to a pillar, simply move the
- // resizer.
- if ( resizer && resizer.move( evt.$.clientX ) )
- {
- cancel( evt );
- return;
- }
-
- // Considering table, tr, td, tbody but nothing else.
- var target = evt.getTarget(),
- table,
- pillars;
-
- if ( !target.is( 'table' ) && !target.getAscendant( 'tbody', true ) )
- return;
-
- table = target.getAscendant( 'table', true );
-
- if ( !( pillars = table.getCustomData( '_cke_table_pillars' ) ) )
- {
- // Cache table pillars calculation result.
- table.setCustomData( '_cke_table_pillars', ( pillars = buildTableColumnPillars( table ) ) );
- table.on( 'mouseout', clearPillarsCache );
- table.on( 'mousedown', clearPillarsCache );
- }
-
- var pillar = getPillarAtPosition( pillars, evt.$.clientX );
- if ( pillar )
- {
- !resizer && ( resizer = new columnResizer( editor ) );
- resizer.attachTo( pillar );
- }
- });
- });
- }
- });
-
-})();
diff --git a/devel/third-party/ckeditor/plugins/tabletools/dialogs/tableCell.js b/devel/third-party/ckeditor/plugins/tabletools/dialogs/tableCell.js
index 1393e24..fff7e0e 100644
--- a/devel/third-party/ckeditor/plugins/tabletools/dialogs/tableCell.js
+++ b/devel/third-party/ckeditor/plugins/tabletools/dialogs/tableCell.js
@@ -1,533 +1,418 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dialog.add( 'cellProperties', function( editor )
- {
- var langTable = editor.lang.table,
- langCell = langTable.cell,
- langCommon = editor.lang.common,
- validate = CKEDITOR.dialog.validate,
- widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,
- heightPattern = /^(\d+(?:\.\d+)?)px$/,
- bind = CKEDITOR.tools.bind,
- spacer = { type : 'html', html : ' ' };
-
- /**
- *
- * @param dialogName
- * @param callback [ childDialog ]
- */
- function getDialogValue( dialogName, callback )
- {
- var onOk = function()
- {
- releaseHandlers( this );
- callback( this, this._.parentDialog );
- this._.parentDialog.changeFocus( true );
- };
- var onCancel = function()
- {
- releaseHandlers( this );
- this._.parentDialog.changeFocus();
- };
- var releaseHandlers = function( dialog )
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+CKEDITOR.dialog.add( 'cellProperties', function( editor ) {
+ var langTable = editor.lang.table,
+ langCell = langTable.cell,
+ langCommon = editor.lang.common,
+ validate = CKEDITOR.dialog.validate,
+ widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,
+ heightPattern = /^(\d+(?:\.\d+)?)px$/,
+ bind = CKEDITOR.tools.bind,
+ spacer = { type: 'html', html: ' ' },
+ rtl = editor.lang.dir == 'rtl',
+ colorDialog = editor.plugins.colordialog;
+
+ return {
+ title: langCell.title,
+ minWidth: CKEDITOR.env.ie && CKEDITOR.env.quirks ? 450 : 410,
+ minHeight: CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks ) ? 230 : 220,
+ contents: [
{
- dialog.removeListener( 'ok', onOk );
- dialog.removeListener( 'cancel', onCancel );
- };
- var bindToDialog = function( dialog )
- {
- dialog.on( 'ok', onOk );
- dialog.on( 'cancel', onCancel );
- };
- editor.execCommand( dialogName );
- if ( editor._.storedDialogs.colordialog )
- bindToDialog( editor._.storedDialogs.colordialog );
- else
- {
- CKEDITOR.on( 'dialogDefinition', function( e )
+ id: 'info',
+ label: langCell.title,
+ accessKey: 'I',
+ elements: [
{
- if ( e.data.name != dialogName )
- return;
-
- var definition = e.data.definition;
-
- e.removeListener();
- definition.onLoad = CKEDITOR.tools.override( definition.onLoad, function( orginal )
+ type: 'hbox',
+ widths: [ '40%', '5%', '40%' ],
+ children: [
{
- return function()
+ type: 'vbox',
+ padding: 0,
+ children: [
{
- bindToDialog( this );
- definition.onLoad = orginal;
- if ( typeof orginal == 'function' )
- orginal.call( this );
- };
- } );
- });
- }
- }
-
- return {
- title : langCell.title,
- minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 550 : 480,
- minHeight : CKEDITOR.env.ie ? ( CKEDITOR.env.quirks ? 180 : 150 ) : 140,
- contents : [
+ type: 'hbox',
+ widths: [ '70%', '30%' ],
+ children: [
+ {
+ type: 'text',
+ id: 'width',
+ width: '100px',
+ label: langCommon.width,
+ validate: validate[ 'number' ]( langCell.invalidWidth ),
+
+ // Extra labelling of width unit type.
+ onLoad: function() {
+ var widthType = this.getDialog().getContentElement( 'info', 'widthType' ),
+ labelElement = widthType.getElement(),
+ inputElement = this.getInputElement(),
+ ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' );
+
+ inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
+ },
+
+ setup: function( element ) {
+ var widthAttr = parseInt( element.getAttribute( 'width' ), 10 ),
+ widthStyle = parseInt( element.getStyle( 'width' ), 10 );
+
+ !isNaN( widthAttr ) && this.setValue( widthAttr );
+ !isNaN( widthStyle ) && this.setValue( widthStyle );
+ },
+ commit: function( element ) {
+ var value = parseInt( this.getValue(), 10 ),
+ unit = this.getDialog().getValueOf( 'info', 'widthType' );
+
+ if ( !isNaN( value ) )
+ element.setStyle( 'width', value + unit );
+ else
+ element.removeStyle( 'width' );
+
+ element.removeAttribute( 'width' );
+ },
+ 'default': ''
+ },
+ {
+ type: 'select',
+ id: 'widthType',
+ label: editor.lang.table.widthUnit,
+ labelStyle: 'visibility:hidden',
+ 'default': 'px',
+ items: [
+ [ langTable.widthPx, 'px' ],
+ [ langTable.widthPc, '%' ]
+ ],
+ setup: function( selectedCell ) {
+ var widthMatch = widthPattern.exec( selectedCell.getStyle( 'width' ) || selectedCell.getAttribute( 'width' ) );
+ if ( widthMatch )
+ this.setValue( widthMatch[ 2 ] );
+ }
+ }
+ ]
+ },
+ {
+ type: 'hbox',
+ widths: [ '70%', '30%' ],
+ children: [
+ {
+ type: 'text',
+ id: 'height',
+ label: langCommon.height,
+ width: '100px',
+ 'default': '',
+ validate: validate[ 'number' ]( langCell.invalidHeight ),
+
+ // Extra labelling of height unit type.
+ onLoad: function() {
+ var heightType = this.getDialog().getContentElement( 'info', 'htmlHeightType' ),
+ labelElement = heightType.getElement(),
+ inputElement = this.getInputElement(),
+ ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' );
+
+ inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
+ },
+
+ setup: function( element ) {
+ var heightAttr = parseInt( element.getAttribute( 'height' ), 10 ),
+ heightStyle = parseInt( element.getStyle( 'height' ), 10 );
+
+ !isNaN( heightAttr ) && this.setValue( heightAttr );
+ !isNaN( heightStyle ) && this.setValue( heightStyle );
+ },
+ commit: function( element ) {
+ var value = parseInt( this.getValue(), 10 );
+
+ if ( !isNaN( value ) )
+ element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
+ else
+ element.removeStyle( 'height' );
+
+ element.removeAttribute( 'height' );
+ }
+ },
+ {
+ id: 'htmlHeightType',
+ type: 'html',
+ html: '<br />' + langTable.widthPx
+ }
+ ]
+ },
+ spacer,
+ {
+ type: 'select',
+ id: 'wordWrap',
+ label: langCell.wordWrap,
+ 'default': 'yes',
+ items: [
+ [ langCell.yes, 'yes' ],
+ [ langCell.no, 'no' ]
+ ],
+ setup: function( element ) {
+ var wordWrapAttr = element.getAttribute( 'noWrap' ),
+ wordWrapStyle = element.getStyle( 'white-space' );
+
+ if ( wordWrapStyle == 'nowrap' || wordWrapAttr )
+ this.setValue( 'no' );
+ },
+ commit: function( element ) {
+ if ( this.getValue() == 'no' )
+ element.setStyle( 'white-space', 'nowrap' );
+ else
+ element.removeStyle( 'white-space' );
+
+ element.removeAttribute( 'noWrap' );
+ }
+ },
+ spacer,
+ {
+ type: 'select',
+ id: 'hAlign',
+ label: langCell.hAlign,
+ 'default': '',
+ items: [
+ [ langCommon.notSet, '' ],
+ [ langCommon.alignLeft, 'left' ],
+ [ langCommon.alignCenter, 'center' ],
+ [ langCommon.alignRight, 'right' ]
+ ],
+ setup: function( element ) {
+ var alignAttr = element.getAttribute( 'align' ),
+ textAlignStyle = element.getStyle( 'text-align' );
+
+ this.setValue( textAlignStyle || alignAttr || '' );
+ },
+ commit: function( selectedCell ) {
+ var value = this.getValue();
+
+ if ( value )
+ selectedCell.setStyle( 'text-align', value );
+ else
+ selectedCell.removeStyle( 'text-align' );
+
+ selectedCell.removeAttribute( 'align' );
+ }
+ },
+ {
+ type: 'select',
+ id: 'vAlign',
+ label: langCell.vAlign,
+ 'default': '',
+ items: [
+ [ langCommon.notSet, '' ],
+ [ langCommon.alignTop, 'top' ],
+ [ langCommon.alignMiddle, 'middle' ],
+ [ langCommon.alignBottom, 'bottom' ],
+ [ langCell.alignBaseline, 'baseline' ]
+ ],
+ setup: function( element ) {
+ var vAlignAttr = element.getAttribute( 'vAlign' ),
+ vAlignStyle = element.getStyle( 'vertical-align' );
+
+ switch ( vAlignStyle ) {
+ // Ignore all other unrelated style values..
+ case 'top':
+ case 'middle':
+ case 'bottom':
+ case 'baseline':
+ break;
+ default:
+ vAlignStyle = '';
+ }
+
+ this.setValue( vAlignStyle || vAlignAttr || '' );
+ },
+ commit: function( element ) {
+ var value = this.getValue();
+
+ if ( value )
+ element.setStyle( 'vertical-align', value );
+ else
+ element.removeStyle( 'vertical-align' );
+
+ element.removeAttribute( 'vAlign' );
+ }
+ }
+ ]
+ },
+ spacer,
{
- id : 'info',
- label : langCell.title,
- accessKey : 'I',
- elements :
- [
+ type: 'vbox',
+ padding: 0,
+ children: [
{
- type : 'hbox',
- widths : [ '40%', '5%', '40%' ],
- children :
- [
- {
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'hbox',
- widths : [ '70%', '30%' ],
- children :
- [
- {
- type : 'text',
- id : 'width',
- label : langTable.width,
- widths : [ '71%', '29%' ],
- labelLayout : 'horizontal',
- validate : validate[ 'number' ]( langCell.invalidWidth ),
-
- // Extra labelling of width unit type.
- onLoad : function()
- {
- var widthType = this.getDialog().getContentElement( 'info', 'widthType' ),
- labelElement = widthType.getElement(),
- inputElement = this.getInputElement(),
- ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' );
-
- inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
- },
-
- setup : function( element )
- {
- var widthAttr = parseInt( element.getAttribute( 'width' ), 10 ),
- widthStyle = parseInt( element.getStyle( 'width' ), 10 );
-
- !isNaN( widthAttr ) && this.setValue( widthAttr );
- !isNaN( widthStyle ) && this.setValue( widthStyle );
- },
- commit : function( element )
- {
- var value = parseInt( this.getValue(), 10 ),
- unit = this.getDialog().getValueOf( 'info', 'widthType' );
-
- if ( !isNaN( value ) )
- element.setStyle( 'width', value + unit );
- else
- element.removeStyle( 'width' );
-
- element.removeAttribute( 'width' );
- },
- 'default' : ''
- },
- {
- type : 'select',
- id : 'widthType',
- labelLayout : 'horizontal',
- widths : [ '0%', '100%' ],
- label : editor.lang.table.widthUnit,
- labelStyle: 'display:none',
- 'default' : 'px',
- items :
- [
- [ langTable.widthPx, 'px' ],
- [ langTable.widthPc, '%' ]
- ],
- setup : function( selectedCell )
- {
- var widthMatch = widthPattern.exec( selectedCell.getStyle( 'width' ) || selectedCell.getAttribute( 'width' ) );
- if ( widthMatch )
- this.setValue( widthMatch[2] );
- }
- }
- ]
- },
- {
- type : 'hbox',
- widths : [ '70%', '30%' ],
- children :
- [
- {
- type : 'text',
- id : 'height',
- label : langTable.height,
- 'default' : '',
- widths : [ '71%', '29%' ],
- labelLayout : 'horizontal',
- validate : validate[ 'number' ]( langCell.invalidHeight ),
-
- // Extra labelling of height unit type.
- onLoad : function()
- {
- var heightType = this.getDialog().getContentElement( 'info', 'htmlHeightType' ),
- labelElement = heightType.getElement(),
- inputElement = this.getInputElement(),
- ariaLabelledByAttr = inputElement.getAttribute( 'aria-labelledby' );
-
- inputElement.setAttribute( 'aria-labelledby', [ ariaLabelledByAttr, labelElement.$.id ].join( ' ' ) );
- },
-
- setup : function( element )
- {
- var heightAttr = parseInt( element.getAttribute( 'height' ), 10 ),
- heightStyle = parseInt( element.getStyle( 'height' ), 10 );
-
- !isNaN( heightAttr ) && this.setValue( heightAttr );
- !isNaN( heightStyle ) && this.setValue( heightStyle );
- },
- commit : function( element )
- {
- var value = parseInt( this.getValue(), 10 );
-
- if ( !isNaN( value ) )
- element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
- else
- element.removeStyle( 'height' );
-
- element.removeAttribute( 'height' );
- }
- },
- {
- id : 'htmlHeightType',
- type : 'html',
- html : langTable.widthPx
- }
- ]
- },
- spacer,
- {
- type : 'select',
- id : 'wordWrap',
- labelLayout : 'horizontal',
- label : langCell.wordWrap,
- widths : [ '50%', '50%' ],
- 'default' : 'yes',
- items :
- [
- [ langCell.yes, 'yes' ],
- [ langCell.no, 'no' ]
- ],
- setup : function( element )
- {
- var wordWrapAttr = element.getAttribute( 'noWrap' ),
- wordWrapStyle = element.getStyle( 'white-space' );
-
- if ( wordWrapStyle == 'nowrap' || wordWrapAttr )
- this.setValue( 'no' );
- },
- commit : function( element )
- {
- if ( this.getValue() == 'no' )
- element.setStyle( 'white-space', 'nowrap' );
- else
- element.removeStyle( 'white-space' );
-
- element.removeAttribute( 'noWrap' );
- }
- },
- spacer,
- {
- type : 'select',
- id : 'hAlign',
- labelLayout : 'horizontal',
- label : langCell.hAlign,
- widths : [ '50%', '50%' ],
- 'default' : '',
- items :
- [
- [ langCommon.notSet, '' ],
- [ langTable.alignLeft, 'left' ],
- [ langTable.alignCenter, 'center' ],
- [ langTable.alignRight, 'right' ]
- ],
- setup : function( element )
- {
- var alignAttr = element.getAttribute( 'align' ),
- textAlignStyle = element.getStyle( 'text-align');
-
- this.setValue( textAlignStyle || alignAttr || '' );
- },
- commit : function( selectedCell )
- {
- var value = this.getValue();
-
- if ( value )
- selectedCell.setStyle( 'text-align', value );
- else
- selectedCell.removeStyle( 'text-align' );
-
- selectedCell.removeAttribute( 'align' );
- }
- },
- {
- type : 'select',
- id : 'vAlign',
- labelLayout : 'horizontal',
- label : langCell.vAlign,
- widths : [ '50%', '50%' ],
- 'default' : '',
- items :
- [
- [ langCommon.notSet, '' ],
- [ langCell.alignTop, 'top' ],
- [ langCell.alignMiddle, 'middle' ],
- [ langCell.alignBottom, 'bottom' ],
- [ langCell.alignBaseline, 'baseline' ]
- ],
- setup : function( element )
- {
- var vAlignAttr = element.getAttribute( 'vAlign' ),
- vAlignStyle = element.getStyle( 'vertical-align' );
-
- switch( vAlignStyle )
- {
- // Ignore all other unrelated style values..
- case 'top':
- case 'middle':
- case 'bottom':
- case 'baseline':
- break;
- default:
- vAlignStyle = '';
- }
-
- this.setValue( vAlignStyle || vAlignAttr || '' );
- },
- commit : function( element )
- {
- var value = this.getValue();
-
- if ( value )
- element.setStyle( 'vertical-align', value );
- else
- element.removeStyle( 'vertical-align' );
-
- element.removeAttribute( 'vAlign' );
- }
- }
- ]
- },
- spacer,
- {
- type : 'vbox',
- padding : 0,
- children :
- [
- {
- type : 'select',
- id : 'cellType',
- label : langCell.cellType,
- labelLayout : 'horizontal',
- widths : [ '50%', '50%' ],
- 'default' : 'td',
- items :
- [
- [ langCell.data, 'td' ],
- [ langCell.header, 'th' ]
- ],
- setup : function( selectedCell )
- {
- this.setValue( selectedCell.getName() );
- },
- commit : function( selectedCell )
- {
- selectedCell.renameNode( this.getValue() );
- }
- },
- spacer,
- {
- type : 'text',
- id : 'rowSpan',
- label : langCell.rowSpan,
- labelLayout : 'horizontal',
- widths : [ '50%', '50%' ],
- 'default' : '',
- validate : validate.integer( langCell.invalidRowSpan ),
- setup : function( selectedCell )
- {
- var attrVal = parseInt( selectedCell.getAttribute( 'rowSpan' ), 10 );
- if ( attrVal && attrVal != 1 )
- this.setValue( attrVal );
- },
- commit : function( selectedCell )
- {
- var value = parseInt( this.getValue(), 10 );
- if ( value && value != 1 )
- selectedCell.setAttribute( 'rowSpan', this.getValue() );
- else
- selectedCell.removeAttribute( 'rowSpan' );
- }
- },
- {
- type : 'text',
- id : 'colSpan',
- label : langCell.colSpan,
- labelLayout : 'horizontal',
- widths : [ '50%', '50%' ],
- 'default' : '',
- validate : validate.integer( langCell.invalidColSpan ),
- setup : function( element )
- {
- var attrVal = parseInt( element.getAttribute( 'colSpan' ), 10 );
- if ( attrVal && attrVal != 1 )
- this.setValue( attrVal );
- },
- commit : function( selectedCell )
- {
- var value = parseInt( this.getValue(), 10 );
- if ( value && value != 1 )
- selectedCell.setAttribute( 'colSpan', this.getValue() );
- else
- selectedCell.removeAttribute( 'colSpan' );
- }
- },
- spacer,
- {
- type : 'hbox',
- padding : 0,
- widths : [ '80%', '20%' ],
- children :
- [
- {
- type : 'text',
- id : 'bgColor',
- label : langCell.bgColor,
- labelLayout : 'horizontal',
- widths : [ '70%', '30%' ],
- 'default' : '',
- setup : function( element )
- {
- var bgColorAttr = element.getAttribute( 'bgColor' ),
- bgColorStyle = element.getStyle( 'background-color' );
-
- this.setValue( bgColorStyle || bgColorAttr );
- },
- commit : function( selectedCell )
- {
- var value = this.getValue();
-
- if ( value )
- selectedCell.setStyle( 'background-color', this.getValue() );
- else
- selectedCell.removeStyle( 'background-color' );
-
- selectedCell.removeAttribute( 'bgColor');
- }
- },
- {
- type : 'button',
- id : 'bgColorChoose',
- label : langCell.chooseColor,
- style : 'margin-left: 10px',
- onClick : function()
- {
- var self = this;
- getDialogValue( 'colordialog', function( colorDialog )
- {
- self.getDialog().getContentElement( 'info', 'bgColor' ).setValue(
- colorDialog.getContentElement( 'picker', 'selectedColor' ).getValue()
- );
- } );
- }
- }
- ]
- },
- spacer,
- {
- type : 'hbox',
- padding : 0,
- widths : [ '80%', '20%' ],
- children :
- [
- {
- type : 'text',
- id : 'borderColor',
- label : langCell.borderColor,
- labelLayout : 'horizontal',
- widths : [ '70%', '30%' ],
- 'default' : '',
- setup : function( element )
- {
- var borderColorAttr = element.getAttribute( 'borderColor' ),
- borderColorStyle = element.getStyle( 'border-color' );
-
- this.setValue( borderColorStyle || borderColorAttr );
- },
- commit : function( selectedCell )
- {
- var value = this.getValue();
- if ( value )
- selectedCell.setStyle( 'border-color', this.getValue() );
- else
- selectedCell.removeStyle( 'border-color' );
-
- selectedCell.removeAttribute( 'borderColor');
- }
- },
- {
- type : 'button',
- id : 'borderColorChoose',
- label : langCell.chooseColor,
- style : 'margin-left: 10px',
- onClick : function()
- {
- var self = this;
- getDialogValue( 'colordialog', function( colorDialog )
- {
- self.getDialog().getContentElement( 'info', 'borderColor' ).setValue(
- colorDialog.getContentElement( 'picker', 'selectedColor' ).getValue()
- );
- } );
- }
- }
- ]
- }
- ]
- }
- ]
+ type: 'select',
+ id: 'cellType',
+ label: langCell.cellType,
+ 'default': 'td',
+ items: [
+ [ langCell.data, 'td' ],
+ [ langCell.header, 'th' ]
+ ],
+ setup: function( selectedCell ) {
+ this.setValue( selectedCell.getName() );
+ },
+ commit: function( selectedCell ) {
+ selectedCell.renameNode( this.getValue() );
+ }
+ },
+ spacer,
+ {
+ type: 'text',
+ id: 'rowSpan',
+ label: langCell.rowSpan,
+ 'default': '',
+ validate: validate.integer( langCell.invalidRowSpan ),
+ setup: function( selectedCell ) {
+ var attrVal = parseInt( selectedCell.getAttribute( 'rowSpan' ), 10 );
+ if ( attrVal && attrVal != 1 )
+ this.setValue( attrVal );
+ },
+ commit: function( selectedCell ) {
+ var value = parseInt( this.getValue(), 10 );
+ if ( value && value != 1 )
+ selectedCell.setAttribute( 'rowSpan', this.getValue() );
+ else
+ selectedCell.removeAttribute( 'rowSpan' );
+ }
+ },
+ {
+ type: 'text',
+ id: 'colSpan',
+ label: langCell.colSpan,
+ 'default': '',
+ validate: validate.integer( langCell.invalidColSpan ),
+ setup: function( element ) {
+ var attrVal = parseInt( element.getAttribute( 'colSpan' ), 10 );
+ if ( attrVal && attrVal != 1 )
+ this.setValue( attrVal );
+ },
+ commit: function( selectedCell ) {
+ var value = parseInt( this.getValue(), 10 );
+ if ( value && value != 1 )
+ selectedCell.setAttribute( 'colSpan', this.getValue() );
+ else
+ selectedCell.removeAttribute( 'colSpan' );
}
+ },
+ spacer,
+ {
+ type: 'hbox',
+ padding: 0,
+ widths: [ '60%', '40%' ],
+ children: [
+ {
+ type: 'text',
+ id: 'bgColor',
+ label: langCell.bgColor,
+ 'default': '',
+ setup: function( element ) {
+ var bgColorAttr = element.getAttribute( 'bgColor' ),
+ bgColorStyle = element.getStyle( 'background-color' );
+
+ this.setValue( bgColorStyle || bgColorAttr );
+ },
+ commit: function( selectedCell ) {
+ var value = this.getValue();
+
+ if ( value )
+ selectedCell.setStyle( 'background-color', this.getValue() );
+ else
+ selectedCell.removeStyle( 'background-color' );
+
+ selectedCell.removeAttribute( 'bgColor' );
+ }
+ },
+ colorDialog ? {
+ type: 'button',
+ id: 'bgColorChoose',
+ "class": 'colorChooser',
+ label: langCell.chooseColor,
+ onLoad: function() {
+ // Stick the element to the bottom (#5587)
+ this.getElement().getParent().setStyle( 'vertical-align', 'bottom' );
+ },
+ onClick: function() {
+ editor.getColorFromDialog( function( color ) {
+ if ( color )
+ this.getDialog().getContentElement( 'info', 'bgColor' ).setValue( color );
+ this.focus();
+ }, this );
+ }
+ } : spacer
+ ]
+ },
+ spacer,
+ {
+ type: 'hbox',
+ padding: 0,
+ widths: [ '60%', '40%' ],
+ children: [
+ {
+ type: 'text',
+ id: 'borderColor',
+ label: langCell.borderColor,
+ 'default': '',
+ setup: function( element ) {
+ var borderColorAttr = element.getAttribute( 'borderColor' ),
+ borderColorStyle = element.getStyle( 'border-color' );
+
+ this.setValue( borderColorStyle || borderColorAttr );
+ },
+ commit: function( selectedCell ) {
+ var value = this.getValue();
+ if ( value )
+ selectedCell.setStyle( 'border-color', this.getValue() );
+ else
+ selectedCell.removeStyle( 'border-color' );
+
+ selectedCell.removeAttribute( 'borderColor' );
+ }
+ },
+
+ colorDialog ? {
+ type: 'button',
+ id: 'borderColorChoose',
+ "class": 'colorChooser',
+ label: langCell.chooseColor,
+ style: ( rtl ? 'margin-right' : 'margin-left' ) + ': 10px',
+ onLoad: function() {
+ // Stick the element to the bottom (#5587)
+ this.getElement().getParent().setStyle( 'vertical-align', 'bottom' );
+ },
+ onClick: function() {
+ editor.getColorFromDialog( function( color ) {
+ if ( color )
+ this.getDialog().getContentElement( 'info', 'borderColor' ).setValue( color );
+ this.focus();
+ }, this );
+ }
+ } : spacer
+ ]
+ }
]
}
- ],
- onShow : function()
- {
- this.cells = CKEDITOR.plugins.tabletools.getSelectedCells(
- this._.editor.getSelection() );
- this.setupContent( this.cells[ 0 ] );
- },
- onOk : function()
- {
- var selection = this._.editor.getSelection(),
- bookmarks = selection.createBookmarks();
-
- var cells = this.cells;
- for ( var i = 0 ; i < cells.length ; i++ )
- this.commitContent( cells[ i ] );
-
- selection.selectBookmarks( bookmarks );
-
- // Force selectionChange event because of alignment style.
- var firstElement = selection.getStartElement();
- var currentPath = new CKEDITOR.dom.elementPath( firstElement );
-
- this._.editor._.selectionPreviousPath = currentPath;
- this._.editor.fire( 'selectionChange', { selection : selection, path : currentPath, element : firstElement } );
+ ]
}
- };
- } );
+ ]
+ }
+ ],
+ onShow: function() {
+ this.cells = CKEDITOR.plugins.tabletools.getSelectedCells( this._.editor.getSelection() );
+ this.setupContent( this.cells[ 0 ] );
+ },
+ onOk: function() {
+ var selection = this._.editor.getSelection(),
+ bookmarks = selection.createBookmarks();
+
+ var cells = this.cells;
+ for ( var i = 0; i < cells.length; i++ )
+ this.commitContent( cells[ i ] );
+
+ this._.editor.forceNextSelectionCheck();
+ selection.selectBookmarks( bookmarks );
+ this._.editor.selectionChange();
+ }
+ };
+});
diff --git a/devel/third-party/ckeditor/plugins/tabletools/plugin.js b/devel/third-party/ckeditor/plugins/tabletools/plugin.js
index b06f59a..ca9d294 100644
--- a/devel/third-party/ckeditor/plugins/tabletools/plugin.js
+++ b/devel/third-party/ckeditor/plugins/tabletools/plugin.js
@@ -1,66 +1,44 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- function removeRawAttribute( $node, attr )
- {
- if ( CKEDITOR.env.ie )
- $node.removeAttribute( attr );
- else
- delete $node[ attr ];
- }
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+(function() {
var cellNodeRegex = /^(?:td|th)$/;
- function getSelectedCells( selection )
- {
- // Walker will try to split text nodes, which will make the current selection
- // invalid. So save bookmarks before doing anything.
- var bookmarks = selection.createBookmarks();
-
+ function getSelectedCells( selection ) {
var ranges = selection.getRanges();
var retval = [];
var database = {};
- function moveOutOfCellGuard( node )
- {
+ function moveOutOfCellGuard( node ) {
// Apply to the first cell only.
if ( retval.length > 0 )
return;
// If we are exiting from the first </td>, then the td should definitely be
// included.
- if ( node.type == CKEDITOR.NODE_ELEMENT && cellNodeRegex.test( node.getName() )
- && !node.getCustomData( 'selected_cell' ) )
- {
+ if ( node.type == CKEDITOR.NODE_ELEMENT && cellNodeRegex.test( node.getName() ) && !node.getCustomData( 'selected_cell' ) ) {
CKEDITOR.dom.element.setMarker( database, node, 'selected_cell', true );
retval.push( node );
}
}
- for ( var i = 0 ; i < ranges.length ; i++ )
- {
+ for ( var i = 0; i < ranges.length; i++ ) {
var range = ranges[ i ];
- if ( range.collapsed )
- {
+ if ( range.collapsed ) {
// Walker does not handle collapsed ranges yet - fall back to old API.
var startNode = range.getCommonAncestor();
var nearestCell = startNode.getAscendant( 'td', true ) || startNode.getAscendant( 'th', true );
if ( nearestCell )
retval.push( nearestCell );
- }
- else
- {
+ } else {
var walker = new CKEDITOR.dom.walker( range );
var node;
walker.guard = moveOutOfCellGuard;
- while ( ( node = walker.next() ) )
- {
+ while ( ( node = walker.next() ) ) {
// If may be possible for us to have a range like this:
// <td>^1</td><td>^2</td>
// The 2nd td shouldn't be included.
@@ -68,11 +46,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// So we have to take care to include a td we've entered only when we've
// walked into its children.
- var parent = node.getParent();
- if ( parent && cellNodeRegex.test( parent.getName() ) && !parent.getCustomData( 'selected_cell' ) )
- {
- CKEDITOR.dom.element.setMarker( database, parent, 'selected_cell', true );
- retval.push( parent );
+ if ( node.type != CKEDITOR.NODE_ELEMENT || !node.is( CKEDITOR.dtd.table ) ) {
+ var parent = node.getAscendant( 'td', true ) || node.getAscendant( 'th', true );
+ if ( parent && !parent.getCustomData( 'selected_cell' ) ) {
+ CKEDITOR.dom.element.setMarker( database, parent, 'selected_cell', true );
+ retval.push( parent );
+ }
}
}
}
@@ -80,9 +59,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
CKEDITOR.dom.element.clearAllMarkers( database );
- // Restore selection position.
- selection.selectBookmarks( bookmarks );
-
return retval;
}
@@ -90,19 +66,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var i = 0,
last = cellsToDelete.length - 1,
database = {},
- cell,focusedCell,
- tr;
+ cell, focusedCell, tr;
while ( ( cell = cellsToDelete[ i++ ] ) )
CKEDITOR.dom.element.setMarker( database, cell, 'delete_cell', true );
// 1.first we check left or right side focusable cell row by row;
i = 0;
- while ( ( cell = cellsToDelete[ i++ ] ) )
- {
- if ( ( focusedCell = cell.getPrevious() ) && !focusedCell.getCustomData( 'delete_cell' )
- || ( focusedCell = cell.getNext() ) && !focusedCell.getCustomData( 'delete_cell' ) )
- {
+ while ( ( cell = cellsToDelete[ i++ ] ) ) {
+ if ( ( focusedCell = cell.getPrevious() ) && !focusedCell.getCustomData( 'delete_cell' ) || ( focusedCell = cell.getNext() ) && !focusedCell.getCustomData( 'delete_cell' ) ) {
CKEDITOR.dom.element.clearAllMarkers( database );
return focusedCell;
}
@@ -123,84 +95,98 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return null;
}
- function clearRow( $tr )
- {
- // Get the array of row's cells.
- var $cells = $tr.cells;
-
- // Empty all cells.
- for ( var i = 0 ; i < $cells.length ; i++ )
- {
- $cells[ i ].innerHTML = '';
+ function insertRow( selection, insertBefore ) {
+ var cells = getSelectedCells( selection ),
+ firstCell = cells[ 0 ],
+ table = firstCell.getAscendant( 'table' ),
+ doc = firstCell.getDocument(),
+ startRow = cells[ 0 ].getParent(),
+ startRowIndex = startRow.$.rowIndex,
+ lastCell = cells[ cells.length - 1 ],
+ endRowIndex = lastCell.getParent().$.rowIndex + lastCell.$.rowSpan - 1,
+ endRow = new CKEDITOR.dom.element( table.$.rows[ endRowIndex ] ),
+ rowIndex = insertBefore ? startRowIndex : endRowIndex,
+ row = insertBefore ? startRow : endRow;
+
+ var map = CKEDITOR.tools.buildTableMap( table ),
+ cloneRow = map[ rowIndex ],
+ nextRow = insertBefore ? map[ rowIndex - 1 ] : map[ rowIndex + 1 ],
+ width = map[ 0 ].length;
+
+ var newRow = doc.createElement( 'tr' );
+ for ( var i = 0; cloneRow[ i ] && i < width; i++ ) {
+ var cell;
+ // Check whether there's a spanning row here, do not break it.
+ if ( cloneRow[ i ].rowSpan > 1 && nextRow && cloneRow[ i ] == nextRow[ i ] ) {
+ cell = cloneRow[ i ];
+ cell.rowSpan += 1;
+ } else {
+ cell = new CKEDITOR.dom.element( cloneRow[ i ] ).clone();
+ cell.removeAttribute( 'rowSpan' );
+ !CKEDITOR.env.ie && cell.appendBogus();
+ newRow.append( cell );
+ cell = cell.$;
+ }
- if ( !CKEDITOR.env.ie )
- ( new CKEDITOR.dom.element( $cells[ i ] ) ).appendBogus();
+ i += cell.colSpan - 1;
}
- }
-
- function insertRow( selection, insertBefore )
- {
- // Get the row where the selection is placed in.
- var row = selection.getStartElement().getAscendant( 'tr' );
- if ( !row )
- return;
- // Create a clone of the row.
- var newRow = row.clone( true );
-
- insertBefore ?
- newRow.insertBefore( row ) :
- newRow.insertAfter( row );
-
- // Clean the new row.
- clearRow( newRow.$ );
+ insertBefore ? newRow.insertBefore( row ) : newRow.insertAfter( row );
}
- function deleteRows( selectionOrRow )
- {
- if ( selectionOrRow instanceof CKEDITOR.dom.selection )
- {
+ function deleteRows( selectionOrRow ) {
+ if ( selectionOrRow instanceof CKEDITOR.dom.selection ) {
var cells = getSelectedCells( selectionOrRow ),
- cellsCount = cells.length,
- rowsToDelete = [],
- cursorPosition,
- previousRowIndex,
- nextRowIndex;
-
- // Queue up the rows - it's possible and likely that we have duplicates.
- for ( var i = 0 ; i < cellsCount ; i++ )
- {
- var row = cells[ i ].getParent(),
- rowIndex = row.$.rowIndex;
-
- !i && ( previousRowIndex = rowIndex - 1 );
- rowsToDelete[ rowIndex ] = row;
- i == cellsCount - 1 && ( nextRowIndex = rowIndex + 1 );
+ firstCell = cells[ 0 ],
+ table = firstCell.getAscendant( 'table' ),
+ map = CKEDITOR.tools.buildTableMap( table ),
+ startRow = cells[ 0 ].getParent(),
+ startRowIndex = startRow.$.rowIndex,
+ lastCell = cells[ cells.length - 1 ],
+ endRowIndex = lastCell.getParent().$.rowIndex + lastCell.$.rowSpan - 1,
+ rowsToDelete = [];
+
+ // Delete cell or reduce cell spans by checking through the table map.
+ for ( var i = startRowIndex; i <= endRowIndex; i++ ) {
+ var mapRow = map[ i ],
+ row = new CKEDITOR.dom.element( table.$.rows[ i ] );
+
+ for ( var j = 0; j < mapRow.length; j++ ) {
+ var cell = new CKEDITOR.dom.element( mapRow[ j ] ),
+ cellRowIndex = cell.getParent().$.rowIndex;
+
+ if ( cell.$.rowSpan == 1 )
+ cell.remove();
+ // Row spanned cell.
+ else {
+ // Span row of the cell, reduce spanning.
+ cell.$.rowSpan -= 1;
+ // Root row of the cell, root cell to next row.
+ if ( cellRowIndex == i ) {
+ var nextMapRow = map[ i + 1 ];
+ nextMapRow[ j - 1 ] ? cell.insertAfter( new CKEDITOR.dom.element( nextMapRow[ j - 1 ] ) ) : new CKEDITOR.dom.element( table.$.rows[ i + 1 ] ).append( cell, 1 );
+ }
+ }
+
+ j += cell.$.colSpan - 1;
+ }
+
+ rowsToDelete.push( row );
}
- var table = row.getAscendant( 'table' ),
- rows = table.$.rows,
- rowCount = rows.length;
+ var rows = table.$.rows;
// Where to put the cursor after rows been deleted?
// 1. Into next sibling row if any;
// 2. Into previous sibling row if any;
// 3. Into table's parent element if it's the very last row.
- cursorPosition = new CKEDITOR.dom.element(
- nextRowIndex < rowCount && table.$.rows[ nextRowIndex ] ||
- previousRowIndex > 0 && table.$.rows[ previousRowIndex ] ||
- table.$.parentNode );
-
- for ( i = rowsToDelete.length ; i >= 0 ; i-- )
- {
- if ( rowsToDelete[ i ] )
- deleteRows( rowsToDelete[ i ] );
- }
+ var cursorPosition = new CKEDITOR.dom.element( rows[ endRowIndex + 1 ] || ( startRowIndex > 0 ? rows[ startRowIndex - 1 ] : null ) || table.$.parentNode );
+
+ for ( i = rowsToDelete.length; i >= 0; i-- )
+ deleteRows( rowsToDelete[ i ] );
return cursorPosition;
- }
- else if ( selectionOrRow instanceof CKEDITOR.dom.element )
- {
+ } else if ( selectionOrRow instanceof CKEDITOR.dom.element ) {
table = selectionOrRow.getAscendant( 'table' );
if ( table.$.rows.length == 1 )
@@ -209,137 +195,166 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
selectionOrRow.remove();
}
- return 0;
+ return null;
}
- function insertColumn( selection, insertBefore )
- {
- // Get the cell where the selection is placed in.
- var startElement = selection.getStartElement();
- var cell = startElement.getAscendant( 'td', true ) || startElement.getAscendant( 'th', true );
+ function getCellColIndex( cell, isStart ) {
+ var row = cell.getParent(),
+ rowCells = row.$.cells;
- if ( !cell )
- return;
+ var colIndex = 0;
+ for ( var i = 0; i < rowCells.length; i++ ) {
+ var mapCell = rowCells[ i ];
+ colIndex += isStart ? 1 : mapCell.colSpan;
+ if ( mapCell == cell.$ )
+ break;
+ }
- // Get the cell's table.
- var table = cell.getAscendant( 'table' );
- var cellIndex = cell.$.cellIndex;
+ return colIndex - 1;
+ }
+
+ function getColumnsIndices( cells, isStart ) {
+ var retval = isStart ? Infinity : 0;
+ for ( var i = 0; i < cells.length; i++ ) {
+ var colIndex = getCellColIndex( cells[ i ], isStart );
+ if ( isStart ? colIndex < retval : colIndex > retval )
+ retval = colIndex;
+ }
+ return retval;
+ }
+
+ function insertColumn( selection, insertBefore ) {
+ var cells = getSelectedCells( selection ),
+ firstCell = cells[ 0 ],
+ table = firstCell.getAscendant( 'table' ),
+ startCol = getColumnsIndices( cells, 1 ),
+ lastCol = getColumnsIndices( cells ),
+ colIndex = insertBefore ? startCol : lastCol;
+
+ var map = CKEDITOR.tools.buildTableMap( table ),
+ cloneCol = [],
+ nextCol = [],
+ height = map.length;
+
+ for ( var i = 0; i < height; i++ ) {
+ cloneCol.push( map[ i ][ colIndex ] );
+ var nextCell = insertBefore ? map[ i ][ colIndex - 1 ] : map[ i ][ colIndex + 1 ];
+ nextCol.push( nextCell );
+ }
- // Loop through all rows available in the table.
- for ( var i = 0 ; i < table.$.rows.length ; i++ )
- {
- var $row = table.$.rows[ i ];
+ for ( i = 0; i < height; i++ ) {
+ var cell;
- // If the row doesn't have enough cells, ignore it.
- if ( $row.cells.length < ( cellIndex + 1 ) )
+ if ( !cloneCol[ i ] )
continue;
- cell = ( new CKEDITOR.dom.element( $row.cells[ cellIndex ] ) ).clone( false );
+ // Check whether there's a spanning column here, do not break it.
+ if ( cloneCol[ i ].colSpan > 1 && nextCol[ i ] == cloneCol[ i ] ) {
+ cell = cloneCol[ i ];
+ cell.colSpan += 1;
+ } else {
+ cell = new CKEDITOR.dom.element( cloneCol[ i ] ).clone();
+ cell.removeAttribute( 'colSpan' );
+ !CKEDITOR.env.ie && cell.appendBogus();
+ cell[ insertBefore ? 'insertBefore' : 'insertAfter' ].call( cell, new CKEDITOR.dom.element( cloneCol[ i ] ) );
+ cell = cell.$;
+ }
- if ( !CKEDITOR.env.ie )
- cell.appendBogus();
+ i += cell.rowSpan - 1;
+ }
+ }
- // Get back the currently selected cell.
- var baseCell = new CKEDITOR.dom.element( $row.cells[ cellIndex ] );
- if ( insertBefore )
- cell.insertBefore( baseCell );
- else
- cell.insertAfter( baseCell );
+ function deleteColumns( selectionOrCell ) {
+ var cells = getSelectedCells( selectionOrCell ),
+ firstCell = cells[ 0 ],
+ lastCell = cells[ cells.length - 1 ],
+ table = firstCell.getAscendant( 'table' ),
+ map = CKEDITOR.tools.buildTableMap( table ),
+ startColIndex, endColIndex,
+ rowsToDelete = [];
+
+ // Figure out selected cells' column indices.
+ for ( var i = 0, rows = map.length; i < rows; i++ ) {
+ for ( var j = 0, cols = map[ i ].length; j < cols; j++ ) {
+ if ( map[ i ][ j ] == firstCell.$ )
+ startColIndex = j;
+ if ( map[ i ][ j ] == lastCell.$ )
+ endColIndex = j;
+ }
+ }
+
+ // Delete cell or reduce cell spans by checking through the table map.
+ for ( i = startColIndex; i <= endColIndex; i++ ) {
+ for ( j = 0; j < map.length; j++ ) {
+ var mapRow = map[ j ],
+ row = new CKEDITOR.dom.element( table.$.rows[ j ] ),
+ cell = new CKEDITOR.dom.element( mapRow[ i ] );
+
+ if ( cell.$ ) {
+ if ( cell.$.colSpan == 1 )
+ cell.remove();
+ // Reduce the col spans.
+ else
+ cell.$.colSpan -= 1;
+
+ j += cell.$.rowSpan - 1;
+
+ if ( !row.$.cells.length )
+ rowsToDelete.push( row );
+ }
+ }
}
+
+ var firstRowCells = table.$.rows[ 0 ] && table.$.rows[ 0 ].cells;
+
+ // Where to put the cursor after columns been deleted?
+ // 1. Into next cell of the first row if any;
+ // 2. Into previous cell of the first row if any;
+ // 3. Into table's parent element;
+ var cursorPosition = new CKEDITOR.dom.element( firstRowCells[ startColIndex ] || ( startColIndex ? firstRowCells[ startColIndex - 1 ] : table.$.parentNode ) );
+
+ // Delete table rows only if all columns are gone (do not remove empty row).
+ if ( rowsToDelete.length == rows )
+ table.remove();
+
+ return cursorPosition;
}
- function getFocusElementAfterDelCols( cells )
- {
+ function getFocusElementAfterDelCols( cells ) {
var cellIndexList = [],
table = cells[ 0 ] && cells[ 0 ].getAscendant( 'table' ),
- i, length,
- targetIndex, targetCell;
+ i, length, targetIndex, targetCell;
// get the cellIndex list of delete cells
for ( i = 0, length = cells.length; i < length; i++ )
- cellIndexList.push( cells[i].$.cellIndex );
+ cellIndexList.push( cells[ i ].$.cellIndex );
// get the focusable column index
cellIndexList.sort();
- for ( i = 1, length = cellIndexList.length; i < length; i++ )
- {
- if ( cellIndexList[ i ] - cellIndexList[ i - 1 ] > 1 )
- {
+ for ( i = 1, length = cellIndexList.length; i < length; i++ ) {
+ if ( cellIndexList[ i ] - cellIndexList[ i - 1 ] > 1 ) {
targetIndex = cellIndexList[ i - 1 ] + 1;
break;
}
}
if ( !targetIndex )
- targetIndex = cellIndexList[ 0 ] > 0 ? ( cellIndexList[ 0 ] - 1 )
- : ( cellIndexList[ cellIndexList.length - 1 ] + 1 );
+ targetIndex = cellIndexList[ 0 ] > 0 ? ( cellIndexList[ 0 ] - 1 ) : ( cellIndexList[ cellIndexList.length - 1 ] + 1 );
// scan row by row to get the target cell
var rows = table.$.rows;
- for ( i = 0, length = rows.length; i < length ; i++ )
- {
+ for ( i = 0, length = rows.length; i < length; i++ ) {
targetCell = rows[ i ].cells[ targetIndex ];
if ( targetCell )
break;
}
- return targetCell ? new CKEDITOR.dom.element( targetCell ) : table.getPrevious();
+ return targetCell ? new CKEDITOR.dom.element( targetCell ) : table.getPrevious();
}
- function deleteColumns( selectionOrCell )
- {
- if ( selectionOrCell instanceof CKEDITOR.dom.selection )
- {
- var colsToDelete = getSelectedCells( selectionOrCell ),
- elementToFocus = getFocusElementAfterDelCols( colsToDelete );
-
- for ( var i = colsToDelete.length - 1 ; i >= 0 ; i-- )
- {
- if ( colsToDelete[ i ] )
- deleteColumns( colsToDelete[ i ] );
- }
-
- return elementToFocus;
- }
- else if ( selectionOrCell instanceof CKEDITOR.dom.element )
- {
- // Get the cell's table.
- var table = selectionOrCell.getAscendant( 'table' );
- if ( !table )
- return null;
-
- // Get the cell index.
- var cellIndex = selectionOrCell.$.cellIndex;
-
- /*
- * Loop through all rows from down to up, coz it's possible that some rows
- * will be deleted.
- */
- for ( i = table.$.rows.length - 1 ; i >= 0 ; i-- )
- {
- // Get the row.
- var row = new CKEDITOR.dom.element( table.$.rows[ i ] );
-
- // If the cell to be removed is the first one and the row has just one cell.
- if ( !cellIndex && row.$.cells.length == 1 )
- {
- deleteRows( row );
- continue;
- }
-
- // Else, just delete the cell.
- if ( row.$.cells[ cellIndex ] )
- row.$.removeChild( row.$.cells[ cellIndex ] );
- }
- }
-
- return null;
- }
-
- function insertCell( selection, insertBefore )
- {
+ function insertCell( selection, insertBefore ) {
var startElement = selection.getStartElement();
- var cell = startElement.getAscendant( 'td', true ) || startElement.getAscendant( 'th', true );
+ var cell = startElement.getAscendant( 'td', 1 ) || startElement.getAscendant( 'th', 1 );
if ( !cell )
return;
@@ -355,24 +370,20 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
newCell.insertAfter( cell );
}
- function deleteCells( selectionOrCell )
- {
- if ( selectionOrCell instanceof CKEDITOR.dom.selection )
- {
+ function deleteCells( selectionOrCell ) {
+ if ( selectionOrCell instanceof CKEDITOR.dom.selection ) {
var cellsToDelete = getSelectedCells( selectionOrCell );
var table = cellsToDelete[ 0 ] && cellsToDelete[ 0 ].getAscendant( 'table' );
- var cellToFocus = getFocusElementAfterDelCells( cellsToDelete );
+ var cellToFocus = getFocusElementAfterDelCells( cellsToDelete );
- for ( var i = cellsToDelete.length - 1 ; i >= 0 ; i-- )
+ for ( var i = cellsToDelete.length - 1; i >= 0; i-- )
deleteCells( cellsToDelete[ i ] );
if ( cellToFocus )
placeCursorInCell( cellToFocus, true );
else if ( table )
table.remove();
- }
- else if ( selectionOrCell instanceof CKEDITOR.dom.element )
- {
+ } else if ( selectionOrCell instanceof CKEDITOR.dom.element ) {
var tr = selectionOrCell.getParent();
if ( tr.getChildCount() == 1 )
tr.remove();
@@ -382,33 +393,28 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
// Remove filler at end and empty spaces around the cell content.
- function trimCell( cell )
- {
+ function trimCell( cell ) {
var bogus = cell.getBogus();
bogus && bogus.remove();
cell.trim();
}
- function placeCursorInCell( cell, placeAtEnd )
- {
+ function placeCursorInCell( cell, placeAtEnd ) {
var range = new CKEDITOR.dom.range( cell.getDocument() );
- if ( !range[ 'moveToElementEdit' + ( placeAtEnd ? 'End' : 'Start' ) ]( cell ) )
- {
+ if ( !range[ 'moveToElementEdit' + ( placeAtEnd ? 'End' : 'Start' ) ]( cell ) ) {
range.selectNodeContents( cell );
range.collapse( placeAtEnd ? false : true );
}
range.select( true );
}
- function cellInRow( tableMap, rowIndex, cell )
- {
+ function cellInRow( tableMap, rowIndex, cell ) {
var oRow = tableMap[ rowIndex ];
if ( typeof cell == 'undefined' )
return oRow;
- for ( var c = 0 ; oRow && c < oRow.length ; c++ )
- {
- if ( cell.is && oRow[c] == cell.$ )
+ for ( var c = 0; oRow && c < oRow.length; c++ ) {
+ if ( cell.is && oRow[ c ] == cell.$ )
return c;
else if ( c == cell )
return new CKEDITOR.dom.element( oRow[ c ] );
@@ -416,25 +422,20 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return cell.is ? -1 : null;
}
- function cellInCol( tableMap, colIndex, cell )
- {
+ function cellInCol( tableMap, colIndex ) {
var oCol = [];
- for ( var r = 0; r < tableMap.length; r++ )
- {
+ for ( var r = 0; r < tableMap.length; r++ ) {
var row = tableMap[ r ];
- if ( typeof cell == 'undefined' )
- oCol.push( row[ colIndex ] );
- else if ( cell.is && row[ colIndex ] == cell.$ )
- return r;
- else if ( r == cell )
- return new CKEDITOR.dom.element( row[ colIndex ] );
- }
+ oCol.push( row[ colIndex ] );
- return ( typeof cell == 'undefined' )? oCol : cell.is ? -1 : null;
+ // Avoid adding duplicate cells.
+ if ( row[ colIndex ].rowSpan > 1 )
+ r += row[ colIndex ].rowSpan - 1;
+ }
+ return oCol;
}
- function mergeCells( selection, mergeDirection, isDetect )
- {
+ function mergeCells( selection, mergeDirection, isDetect ) {
var cells = getSelectedCells( selection );
// Invalid merge request if:
@@ -442,15 +443,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// 2. In solo mode while not exactly only one selected.
// 3. Cells distributed in different table groups (e.g. from both thead and tbody).
var commonAncestor;
- if ( ( mergeDirection ? cells.length != 1 : cells.length < 2 )
- || ( commonAncestor = selection.getCommonAncestor() )
- && commonAncestor.type == CKEDITOR.NODE_ELEMENT
- && commonAncestor.is( 'table' ) )
- {
+ if ( ( mergeDirection ? cells.length != 1 : cells.length < 2 ) || ( commonAncestor = selection.getCommonAncestor() ) && commonAncestor.type == CKEDITOR.NODE_ELEMENT && commonAncestor.is( 'table' ) ) {
return false;
}
- var cell,
+ var cell,
firstCell = cells[ 0 ],
table = firstCell.getAscendant( 'table' ),
map = CKEDITOR.tools.buildTableMap( table ),
@@ -459,37 +456,32 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
startRow = firstCell.getParent().$.rowIndex,
startColumn = cellInRow( map, startRow, firstCell );
- if ( mergeDirection )
- {
+ if ( mergeDirection ) {
var targetCell;
- try
- {
- targetCell =
- map[ mergeDirection == 'up' ?
- ( startRow - 1 ):
- mergeDirection == 'down' ? ( startRow + 1 ) : startRow ] [
- mergeDirection == 'left' ?
- ( startColumn - 1 ):
- mergeDirection == 'right' ? ( startColumn + 1 ) : startColumn ];
+ try {
+ var rowspan = parseInt( firstCell.getAttribute( 'rowspan' ), 10 ) || 1;
+ var colspan = parseInt( firstCell.getAttribute( 'colspan' ), 10 ) || 1;
- }
- catch( er )
- {
+ targetCell = map[ mergeDirection == 'up' ? ( startRow - rowspan ) : mergeDirection == 'down' ? ( startRow + rowspan ) : startRow ][
+ mergeDirection == 'left' ?
+ ( startColumn - colspan ) :
+ mergeDirection == 'right' ? ( startColumn + colspan ) : startColumn ];
+
+ } catch ( er ) {
return false;
}
// 1. No cell could be merged.
// 2. Same cell actually.
- if ( !targetCell || firstCell.$ == targetCell )
+ if ( !targetCell || firstCell.$ == targetCell )
return false;
// Sort in map order regardless of the DOM sequence.
- cells[ ( mergeDirection == 'up' || mergeDirection == 'left' ) ?
- 'unshift' : 'push' ]( new CKEDITOR.dom.element( targetCell ) );
+ cells[ ( mergeDirection == 'up' || mergeDirection == 'left' ) ? 'unshift' : 'push' ]( new CKEDITOR.dom.element( targetCell ) );
}
// Start from here are merging way ignorance (merge up/right, batch merge).
- var doc = firstCell.getDocument(),
+ var doc = firstCell.getDocument(),
lastRowIndex = startRow,
totalRowSpan = 0,
totalColSpan = 0,
@@ -497,8 +489,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
frag = !isDetect && new CKEDITOR.dom.documentFragment( doc ),
dimension = 0;
- for ( var i = 0; i < cells.length; i++ )
- {
+ for ( var i = 0; i < cells.length; i++ ) {
cell = cells[ i ];
var tr = cell.getParent(),
@@ -511,23 +502,17 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Accumulated the actual places taken by all selected cells.
dimension += colSpan * rowSpan;
// Accumulated the maximum virtual spans from column and row.
- totalColSpan = Math.max( totalColSpan, colIndex - startColumn + colSpan ) ;
+ totalColSpan = Math.max( totalColSpan, colIndex - startColumn + colSpan );
totalRowSpan = Math.max( totalRowSpan, rowIndex - startRow + rowSpan );
- if ( !isDetect )
- {
+ if ( !isDetect ) {
// Trim all cell fillers and check to remove empty cells.
- if ( trimCell( cell ), cell.getChildren().count() )
- {
+ if ( trimCell( cell ), cell.getChildren().count() ) {
// Merge vertically cells as two separated paragraphs.
- if ( rowIndex != lastRowIndex
- && cellFirstChild
- && !( cellFirstChild.isBlockBoundary
- && cellFirstChild.isBlockBoundary( { br : 1 } ) ) )
- {
+ if ( rowIndex != lastRowIndex && cellFirstChild && !( cellFirstChild.isBlockBoundary && cellFirstChild.isBlockBoundary( { br:1 } ) ) ) {
var last = frag.getLast( CKEDITOR.dom.walker.whitespaces( true ) );
if ( last && !( last.is && last.is( 'br' ) ) )
- frag.append( new CKEDITOR.dom.element( 'br' ) );
+ frag.append( 'br' );
}
cell.moveChildren( frag );
@@ -537,8 +522,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
lastRowIndex = rowIndex;
}
- if ( !isDetect )
- {
+ if ( !isDetect ) {
frag.moveChildren( firstCell );
if ( !CKEDITOR.env.ie )
@@ -558,11 +542,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var trs = new CKEDITOR.dom.nodeList( table.$.rows ),
count = trs.count();
- for ( i = count - 1; i >= 0; i-- )
- {
+ for ( i = count - 1; i >= 0; i-- ) {
var tailTr = trs.getItem( i );
- if ( !tailTr.$.cells.length )
- {
+ if ( !tailTr.$.cells.length ) {
tailTr.remove();
count++;
continue;
@@ -577,8 +559,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return ( totalRowSpan * totalColSpan ) == dimension;
}
- function verticalSplitCell ( selection, isDetect )
- {
+ function verticalSplitCell( selection, isDetect ) {
var cells = getSelectedCells( selection );
if ( cells.length > 1 )
return false;
@@ -592,13 +573,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
rowIndex = tr.$.rowIndex,
colIndex = cellInRow( map, rowIndex, cell ),
rowSpan = cell.$.rowSpan,
- newCell,
- newRowSpan,
- newCellRowSpan,
- newRowIndex;
+ newCell, newRowSpan, newCellRowSpan, newRowIndex;
- if ( rowSpan > 1 )
- {
+ if ( rowSpan > 1 ) {
newRowSpan = Math.ceil( rowSpan / 2 );
newCellRowSpan = Math.floor( rowSpan / 2 );
newRowIndex = rowIndex + newRowSpan;
@@ -609,26 +586,20 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
newCell = cell.clone();
// Figure out where to insert the new cell by checking the vitual row.
- for ( var c = 0; c < newCellRow.length; c++ )
- {
+ for ( var c = 0; c < newCellRow.length; c++ ) {
candidateCell = newCellRow[ c ];
// Catch first cell actually following the column.
- if ( candidateCell.parentNode == newCellTr.$
- && c > colIndex )
- {
+ if ( candidateCell.parentNode == newCellTr.$ && c > colIndex ) {
newCell.insertBefore( new CKEDITOR.dom.element( candidateCell ) );
break;
- }
- else
+ } else
candidateCell = null;
}
// The destination row is empty, append at will.
if ( !candidateCell )
newCellTr.append( newCell, true );
- }
- else
- {
+ } else {
newCellRowSpan = newRowSpan = 1;
newCellTr = tr.clone();
@@ -653,8 +624,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return newCell;
}
- function horizontalSplitCell( selection, isDetect )
- {
+ function horizontalSplitCell( selection, isDetect ) {
var cells = getSelectedCells( selection );
if ( cells.length > 1 )
return false;
@@ -668,17 +638,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
rowIndex = tr.$.rowIndex,
colIndex = cellInRow( map, rowIndex, cell ),
colSpan = cell.$.colSpan,
- newCell,
- newColSpan,
- newCellColSpan;
+ newCell, newColSpan, newCellColSpan;
- if ( colSpan > 1 )
- {
+ if ( colSpan > 1 ) {
newColSpan = Math.ceil( colSpan / 2 );
newCellColSpan = Math.floor( colSpan / 2 );
- }
- else
- {
+ } else {
newCellColSpan = newColSpan = 1;
var cellsInSameCol = cellInCol( map, colIndex );
for ( var i = 0; i < cellsInSameCol.length; i++ )
@@ -699,372 +664,294 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return newCell;
}
// Context menu on table caption incorrect (#3834)
- var contextMenuTags = { thead : 1, tbody : 1, tfoot : 1, td : 1, tr : 1, th : 1 };
+ var contextMenuTags = { thead:1,tbody:1,tfoot:1,td:1,tr:1,th:1 };
- CKEDITOR.plugins.tabletools =
- {
- init : function( editor )
- {
+ CKEDITOR.plugins.tabletools = {
+ requires: 'table,dialog,contextmenu',
+ init: function( editor ) {
var lang = editor.lang.table;
- editor.addCommand( 'cellProperties', new CKEDITOR.dialogCommand( 'cellProperties' ) );
+ function createDef( def ) {
+ return CKEDITOR.tools.extend( def || {}, {
+ contextSensitive: 1,
+ refresh: function( editor, path ) {
+ this.setState( path.contains( { td:1,th:1 }, 1 ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+ }
+ });
+ }
+
+ editor.addCommand( 'cellProperties', new CKEDITOR.dialogCommand( 'cellProperties', createDef() ) );
CKEDITOR.dialog.add( 'cellProperties', this.path + 'dialogs/tableCell.js' );
- editor.addCommand( 'tableDelete',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- var startElement = selection && selection.getStartElement();
- var table = startElement && startElement.getAscendant( 'table', true );
-
- if ( !table )
- return;
-
- // Maintain the selection point at where the table was deleted.
- selection.selectElement( table );
- var range = selection.getRanges()[0];
- range.collapse();
- selection.selectRanges( [ range ] );
-
- // If the table's parent has only one child, remove it,except body,as well.( #5416 )
- var parent = table.getParent();
- if ( parent.getChildCount() == 1 && parent.getName() != 'body' )
- parent.remove();
- else
- table.remove();
- }
- } );
-
- editor.addCommand( 'rowDelete',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- placeCursorInCell( deleteRows( selection ) );
- }
- } );
-
- editor.addCommand( 'rowInsertBefore',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- insertRow( selection, true );
- }
- } );
-
- editor.addCommand( 'rowInsertAfter',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- insertRow( selection );
- }
- } );
-
- editor.addCommand( 'columnDelete',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- var element = deleteColumns( selection );
- element && placeCursorInCell( element, true );
- }
- } );
-
- editor.addCommand( 'columnInsertBefore',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- insertColumn( selection, true );
- }
- } );
-
- editor.addCommand( 'columnInsertAfter',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- insertColumn( selection );
- }
- } );
-
- editor.addCommand( 'cellDelete',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- deleteCells( selection );
- }
- } );
+ editor.addCommand( 'rowDelete', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ placeCursorInCell( deleteRows( selection ) );
+ }
+ }));
- editor.addCommand( 'cellMerge',
- {
- exec : function( editor )
- {
- placeCursorInCell( mergeCells( editor.getSelection() ), true );
- }
- } );
+ editor.addCommand( 'rowInsertBefore', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ insertRow( selection, true );
+ }
+ }));
- editor.addCommand( 'cellMergeRight',
- {
- exec : function( editor )
- {
- placeCursorInCell( mergeCells( editor.getSelection(), 'right' ), true );
- }
- } );
+ editor.addCommand( 'rowInsertAfter', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ insertRow( selection );
+ }
+ }));
- editor.addCommand( 'cellMergeDown',
- {
- exec : function( editor )
- {
- placeCursorInCell( mergeCells( editor.getSelection(), 'down' ), true );
- }
- } );
+ editor.addCommand( 'columnDelete', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ var element = deleteColumns( selection );
+ element && placeCursorInCell( element, true );
+ }
+ }));
- editor.addCommand( 'cellVerticalSplit',
- {
- exec : function( editor )
- {
- placeCursorInCell( verticalSplitCell( editor.getSelection() ) );
- }
- } );
+ editor.addCommand( 'columnInsertBefore', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ insertColumn( selection, true );
+ }
+ }));
- editor.addCommand( 'cellHorizontalSplit',
- {
- exec : function( editor )
- {
- placeCursorInCell( horizontalSplitCell( editor.getSelection() ) );
- }
- } );
-
- editor.addCommand( 'cellInsertBefore',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- insertCell( selection, true );
- }
- } );
-
- editor.addCommand( 'cellInsertAfter',
- {
- exec : function( editor )
- {
- var selection = editor.getSelection();
- insertCell( selection );
- }
- } );
+ editor.addCommand( 'columnInsertAfter', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ insertColumn( selection );
+ }
+ }));
+
+ editor.addCommand( 'cellDelete', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ deleteCells( selection );
+ }
+ }));
+
+ editor.addCommand( 'cellMerge', createDef({
+ exec: function( editor ) {
+ placeCursorInCell( mergeCells( editor.getSelection() ), true );
+ }
+ }));
+
+ editor.addCommand( 'cellMergeRight', createDef({
+ exec: function( editor ) {
+ placeCursorInCell( mergeCells( editor.getSelection(), 'right' ), true );
+ }
+ }));
+
+ editor.addCommand( 'cellMergeDown', createDef({
+ exec: function( editor ) {
+ placeCursorInCell( mergeCells( editor.getSelection(), 'down' ), true );
+ }
+ }));
+
+ editor.addCommand( 'cellVerticalSplit', createDef({
+ exec: function( editor ) {
+ placeCursorInCell( verticalSplitCell( editor.getSelection() ) );
+ }
+ }));
+
+ editor.addCommand( 'cellHorizontalSplit', createDef({
+ exec: function( editor ) {
+ placeCursorInCell( horizontalSplitCell( editor.getSelection() ) );
+ }
+ }));
+
+ editor.addCommand( 'cellInsertBefore', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ insertCell( selection, true );
+ }
+ }));
+
+ editor.addCommand( 'cellInsertAfter', createDef({
+ exec: function( editor ) {
+ var selection = editor.getSelection();
+ insertCell( selection );
+ }
+ }));
// If the "menu" plugin is loaded, register the menu items.
- if ( editor.addMenuItems )
- {
- editor.addMenuItems(
- {
- tablecell :
- {
- label : lang.cell.menu,
- group : 'tablecell',
- order : 1,
- getItems : function()
- {
- var selection = editor.getSelection(),
- cells = getSelectedCells( selection );
- return {
- tablecell_insertBefore : CKEDITOR.TRISTATE_OFF,
- tablecell_insertAfter : CKEDITOR.TRISTATE_OFF,
- tablecell_delete : CKEDITOR.TRISTATE_OFF,
- tablecell_merge : mergeCells( selection, null, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- tablecell_merge_right : mergeCells( selection, 'right', true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- tablecell_merge_down : mergeCells( selection, 'down', true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- tablecell_split_vertical : verticalSplitCell( selection, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- tablecell_split_horizontal : horizontalSplitCell( selection, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
- tablecell_properties : cells.length > 0 ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
- };
- }
- },
-
- tablecell_insertBefore :
- {
- label : lang.cell.insertBefore,
- group : 'tablecell',
- command : 'cellInsertBefore',
- order : 5
- },
-
- tablecell_insertAfter :
- {
- label : lang.cell.insertAfter,
- group : 'tablecell',
- command : 'cellInsertAfter',
- order : 10
- },
-
- tablecell_delete :
- {
- label : lang.cell.deleteCell,
- group : 'tablecell',
- command : 'cellDelete',
- order : 15
- },
-
- tablecell_merge :
- {
- label : lang.cell.merge,
- group : 'tablecell',
- command : 'cellMerge',
- order : 16
- },
-
- tablecell_merge_right :
- {
- label : lang.cell.mergeRight,
- group : 'tablecell',
- command : 'cellMergeRight',
- order : 17
- },
-
- tablecell_merge_down :
- {
- label : lang.cell.mergeDown,
- group : 'tablecell',
- command : 'cellMergeDown',
- order : 18
- },
-
- tablecell_split_horizontal :
- {
- label : lang.cell.splitHorizontal,
- group : 'tablecell',
- command : 'cellHorizontalSplit',
- order : 19
- },
-
- tablecell_split_vertical :
- {
- label : lang.cell.splitVertical,
- group : 'tablecell',
- command : 'cellVerticalSplit',
- order : 20
- },
-
- tablecell_properties :
- {
- label : lang.cell.title,
- group : 'tablecellproperties',
- command : 'cellProperties',
- order : 21
- },
-
- tablerow :
- {
- label : lang.row.menu,
- group : 'tablerow',
- order : 1,
- getItems : function()
- {
- return {
- tablerow_insertBefore : CKEDITOR.TRISTATE_OFF,
- tablerow_insertAfter : CKEDITOR.TRISTATE_OFF,
- tablerow_delete : CKEDITOR.TRISTATE_OFF
- };
- }
- },
-
- tablerow_insertBefore :
- {
- label : lang.row.insertBefore,
- group : 'tablerow',
- command : 'rowInsertBefore',
- order : 5
- },
-
- tablerow_insertAfter :
- {
- label : lang.row.insertAfter,
- group : 'tablerow',
- command : 'rowInsertAfter',
- order : 10
- },
-
- tablerow_delete :
- {
- label : lang.row.deleteRow,
- group : 'tablerow',
- command : 'rowDelete',
- order : 15
- },
-
- tablecolumn :
- {
- label : lang.column.menu,
- group : 'tablecolumn',
- order : 1,
- getItems : function()
- {
- return {
- tablecolumn_insertBefore : CKEDITOR.TRISTATE_OFF,
- tablecolumn_insertAfter : CKEDITOR.TRISTATE_OFF,
- tablecolumn_delete : CKEDITOR.TRISTATE_OFF
- };
- }
- },
-
- tablecolumn_insertBefore :
- {
- label : lang.column.insertBefore,
- group : 'tablecolumn',
- command : 'columnInsertBefore',
- order : 5
- },
-
- tablecolumn_insertAfter :
- {
- label : lang.column.insertAfter,
- group : 'tablecolumn',
- command : 'columnInsertAfter',
- order : 10
- },
-
- tablecolumn_delete :
- {
- label : lang.column.deleteColumn,
- group : 'tablecolumn',
- command : 'columnDelete',
- order : 15
+ if ( editor.addMenuItems ) {
+ editor.addMenuItems({
+ tablecell: {
+ label: lang.cell.menu,
+ group: 'tablecell',
+ order: 1,
+ getItems: function() {
+ var selection = editor.getSelection(),
+ cells = getSelectedCells( selection );
+ return {
+ tablecell_insertBefore: CKEDITOR.TRISTATE_OFF,
+ tablecell_insertAfter: CKEDITOR.TRISTATE_OFF,
+ tablecell_delete: CKEDITOR.TRISTATE_OFF,
+ tablecell_merge: mergeCells( selection, null, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ tablecell_merge_right: mergeCells( selection, 'right', true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ tablecell_merge_down: mergeCells( selection, 'down', true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ tablecell_split_vertical: verticalSplitCell( selection, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ tablecell_split_horizontal: horizontalSplitCell( selection, true ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED,
+ tablecell_properties: cells.length > 0 ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED
+ };
+ }
+ },
+
+ tablecell_insertBefore: {
+ label: lang.cell.insertBefore,
+ group: 'tablecell',
+ command: 'cellInsertBefore',
+ order: 5
+ },
+
+ tablecell_insertAfter: {
+ label: lang.cell.insertAfter,
+ group: 'tablecell',
+ command: 'cellInsertAfter',
+ order: 10
+ },
+
+ tablecell_delete: {
+ label: lang.cell.deleteCell,
+ group: 'tablecell',
+ command: 'cellDelete',
+ order: 15
+ },
+
+ tablecell_merge: {
+ label: lang.cell.merge,
+ group: 'tablecell',
+ command: 'cellMerge',
+ order: 16
+ },
+
+ tablecell_merge_right: {
+ label: lang.cell.mergeRight,
+ group: 'tablecell',
+ command: 'cellMergeRight',
+ order: 17
+ },
+
+ tablecell_merge_down: {
+ label: lang.cell.mergeDown,
+ group: 'tablecell',
+ command: 'cellMergeDown',
+ order: 18
+ },
+
+ tablecell_split_horizontal: {
+ label: lang.cell.splitHorizontal,
+ group: 'tablecell',
+ command: 'cellHorizontalSplit',
+ order: 19
+ },
+
+ tablecell_split_vertical: {
+ label: lang.cell.splitVertical,
+ group: 'tablecell',
+ command: 'cellVerticalSplit',
+ order: 20
+ },
+
+ tablecell_properties: {
+ label: lang.cell.title,
+ group: 'tablecellproperties',
+ command: 'cellProperties',
+ order: 21
+ },
+
+ tablerow: {
+ label: lang.row.menu,
+ group: 'tablerow',
+ order: 1,
+ getItems: function() {
+ return {
+ tablerow_insertBefore: CKEDITOR.TRISTATE_OFF,
+ tablerow_insertAfter: CKEDITOR.TRISTATE_OFF,
+ tablerow_delete: CKEDITOR.TRISTATE_OFF
+ };
}
- });
+ },
+
+ tablerow_insertBefore: {
+ label: lang.row.insertBefore,
+ group: 'tablerow',
+ command: 'rowInsertBefore',
+ order: 5
+ },
+
+ tablerow_insertAfter: {
+ label: lang.row.insertAfter,
+ group: 'tablerow',
+ command: 'rowInsertAfter',
+ order: 10
+ },
+
+ tablerow_delete: {
+ label: lang.row.deleteRow,
+ group: 'tablerow',
+ command: 'rowDelete',
+ order: 15
+ },
+
+ tablecolumn: {
+ label: lang.column.menu,
+ group: 'tablecolumn',
+ order: 1,
+ getItems: function() {
+ return {
+ tablecolumn_insertBefore: CKEDITOR.TRISTATE_OFF,
+ tablecolumn_insertAfter: CKEDITOR.TRISTATE_OFF,
+ tablecolumn_delete: CKEDITOR.TRISTATE_OFF
+ };
+ }
+ },
+
+ tablecolumn_insertBefore: {
+ label: lang.column.insertBefore,
+ group: 'tablecolumn',
+ command: 'columnInsertBefore',
+ order: 5
+ },
+
+ tablecolumn_insertAfter: {
+ label: lang.column.insertAfter,
+ group: 'tablecolumn',
+ command: 'columnInsertAfter',
+ order: 10
+ },
+
+ tablecolumn_delete: {
+ label: lang.column.deleteColumn,
+ group: 'tablecolumn',
+ command: 'columnDelete',
+ order: 15
+ }
+ });
}
// If the "contextmenu" plugin is laoded, register the listeners.
- if ( editor.contextMenu )
- {
- editor.contextMenu.addListener( function( element, selection )
- {
- if ( !element || element.isReadOnly() )
- return null;
-
- while ( element )
- {
- if ( element.getName() in contextMenuTags )
- {
- return {
- tablecell : CKEDITOR.TRISTATE_OFF,
- tablerow : CKEDITOR.TRISTATE_OFF,
- tablecolumn : CKEDITOR.TRISTATE_OFF
- };
- }
- element = element.getParent();
- }
+ if ( editor.contextMenu ) {
+ editor.contextMenu.addListener( function( element, selection, path ) {
+ var cell = path.contains( { 'td':1,'th':1 }, 1 );
+ if ( cell && !cell.isReadOnly() ) {
+ return {
+ tablecell: CKEDITOR.TRISTATE_OFF,
+ tablerow: CKEDITOR.TRISTATE_OFF,
+ tablecolumn: CKEDITOR.TRISTATE_OFF
+ };
+ }
- return null;
- } );
+ return null;
+ });
}
},
- getSelectedCells : getSelectedCells
+ getSelectedCells: getSelectedCells
};
CKEDITOR.plugins.add( 'tabletools', CKEDITOR.plugins.tabletools );
@@ -1073,48 +960,45 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Create a two-dimension array that reflects the actual layout of table cells,
* with cell spans, with mappings to the original td elements.
- * @param table {CKEDITOR.dom.element}
+ *
+ * @param {CKEDITOR.dom.element} table
+ * @member CKEDITOR.tools
*/
-CKEDITOR.tools.buildTableMap = function ( table )
-{
- var aRows = table.$.rows ;
+CKEDITOR.tools.buildTableMap = function( table ) {
+ var aRows = table.$.rows;
// Row and Column counters.
- var r = -1 ;
+ var r = -1;
var aMap = [];
- for ( var i = 0 ; i < aRows.length ; i++ )
- {
- r++ ;
- !aMap[r] && ( aMap[r] = [] );
+ for ( var i = 0; i < aRows.length; i++ ) {
+ r++;
+ !aMap[ r ] && ( aMap[ r ] = [] );
- var c = -1 ;
+ var c = -1;
- for ( var j = 0 ; j < aRows[i].cells.length ; j++ )
- {
- var oCell = aRows[i].cells[j] ;
+ for ( var j = 0; j < aRows[ i ].cells.length; j++ ) {
+ var oCell = aRows[ i ].cells[ j ];
- c++ ;
- while ( aMap[r][c] )
- c++ ;
+ c++;
+ while ( aMap[ r ][ c ] )
+ c++;
- var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan ;
- var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan ;
+ var iColSpan = isNaN( oCell.colSpan ) ? 1 : oCell.colSpan;
+ var iRowSpan = isNaN( oCell.rowSpan ) ? 1 : oCell.rowSpan;
- for ( var rs = 0 ; rs < iRowSpan ; rs++ )
- {
- if ( !aMap[r + rs] )
- aMap[r + rs] = [];
+ for ( var rs = 0; rs < iRowSpan; rs++ ) {
+ if ( !aMap[ r + rs ] )
+ aMap[ r + rs ] = [];
- for ( var cs = 0 ; cs < iColSpan ; cs++ )
- {
- aMap[r + rs][c + cs] = aRows[i].cells[j] ;
+ for ( var cs = 0; cs < iColSpan; cs++ ) {
+ aMap[ r + rs ][ c + cs ] = aRows[ i ].cells[ j ];
}
}
- c += iColSpan - 1 ;
+ c += iColSpan - 1;
}
}
- return aMap ;
+ return aMap;
};
diff --git a/devel/third-party/ckeditor/plugins/templates/dialogs/templates.css b/devel/third-party/ckeditor/plugins/templates/dialogs/templates.css
new file mode 100644
index 0000000..e226d79
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/dialogs/templates.css
@@ -0,0 +1,84 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+.cke_tpl_list
+{
+ border: #dcdcdc 2px solid;
+ background-color: #ffffff;
+ overflow-y: auto;
+ overflow-x: hidden;
+ width: 100%;
+ height: 220px;
+}
+
+.cke_tpl_item
+{
+ margin: 5px;
+ padding: 7px;
+ border: #eeeeee 1px solid;
+ *width: 88%;
+}
+
+.cke_tpl_preview
+{
+ border-collapse: separate;
+ text-indent:0;
+ width: 100%;
+}
+.cke_tpl_preview td
+{
+ padding: 2px;
+ vertical-align: middle;
+}
+.cke_tpl_preview .cke_tpl_preview_img
+{
+ width: 100px;
+}
+.cke_tpl_preview span
+{
+ white-space: normal;
+}
+
+.cke_tpl_title
+{
+ font-weight: bold;
+}
+
+.cke_tpl_list a:hover .cke_tpl_item,
+.cke_tpl_list a:focus .cke_tpl_item,
+.cke_tpl_list a:active .cke_tpl_item
+{
+ border: #ff9933 1px solid;
+ background-color: #fffacd;
+}
+
+.cke_tpl_list a:hover *,
+.cke_tpl_list a:focus *,
+.cke_tpl_list a:active *
+{
+ cursor: pointer;
+}
+
+/* IE6 contextual selectors childs won't get :hover transition until,
+ the hover style of the link itself contains certain CSS declarations.*/
+.cke_browser_ie6 .cke_tpl_list a:active,
+.cke_browser_ie6 .cke_tpl_list a:hover,
+.cke_browser_ie6 .cke_tpl_list a:focus
+{
+ background-position: 0 0;
+}
+
+.cke_hc .cke_tpl_list a:hover .cke_tpl_item,
+.cke_hc .cke_tpl_list a:focus .cke_tpl_item,
+.cke_hc .cke_tpl_list a:active .cke_tpl_item
+{
+ border-width: 3px;
+}
+
+.cke_tpl_empty, .cke_tpl_loading
+{
+ text-align: center;
+ padding: 5px;
+}
diff --git a/devel/third-party/ckeditor/plugins/templates/dialogs/templates.js b/devel/third-party/ckeditor/plugins/templates/dialogs/templates.js
index d3d78c6..8b3b70f 100644
--- a/devel/third-party/ckeditor/plugins/templates/dialogs/templates.js
+++ b/devel/third-party/ckeditor/plugins/templates/dialogs/templates.js
@@ -1,231 +1,203 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-(function()
-{
+(function() {
var doc = CKEDITOR.document;
- CKEDITOR.dialog.add( 'templates', function( editor )
- {
- // Constructs the HTML view of the specified templates data.
- function renderTemplatesList( container, templatesDefinitions )
- {
- // clear loading wait text.
- container.setHtml( '' );
-
- for ( var i = 0 ; i < templatesDefinitions.length ; i++ )
- {
- var definition = CKEDITOR.getTemplates( templatesDefinitions[ i ] ),
- imagesPath = definition.imagesPath,
- templates = definition.templates,
- count = templates.length;
-
- for ( var j = 0 ; j < count ; j++ )
- {
- var template = templates[ j ],
- item = createTemplateItem( template, imagesPath );
- item.setAttribute( 'aria-posinset', j + 1 );
- item.setAttribute( 'aria-setsize', count );
- container.append( item );
- }
+ CKEDITOR.dialog.add( 'templates', function( editor ) {
+ // Constructs the HTML view of the specified templates data.
+ function renderTemplatesList( container, templatesDefinitions ) {
+ // clear loading wait text.
+ container.setHtml( '' );
+
+ for ( var i = 0, totalDefs = templatesDefinitions.length; i < totalDefs; i++ ) {
+ var definition = CKEDITOR.getTemplates( templatesDefinitions[ i ] ),
+ imagesPath = definition.imagesPath,
+ templates = definition.templates,
+ count = templates.length;
+
+ for ( var j = 0; j < count; j++ ) {
+ var template = templates[ j ],
+ item = createTemplateItem( template, imagesPath );
+ item.setAttribute( 'aria-posinset', j + 1 );
+ item.setAttribute( 'aria-setsize', count );
+ container.append( item );
}
}
+ }
- function createTemplateItem( template, imagesPath )
- {
- var item = CKEDITOR.dom.element.createFromHtml(
- '<a href="javascript:void(0)" tabIndex="-1" role="option" >' +
- '<div class="cke_tpl_item"></div>' +
- '</a>' );
+ function createTemplateItem( template, imagesPath ) {
+ var item = CKEDITOR.dom.element.createFromHtml( '<a href="javascript:void(0)" tabIndex="-1" role="option" >' +
+ '<div class="cke_tpl_item"></div>' +
+ '</a>' );
- // Build the inner HTML of our new item DIV.
- var html = '<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';
+ // Build the inner HTML of our new item DIV.
+ var html = '<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';
- if ( template.image && imagesPath )
- html += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl( imagesPath + template.image ) + '"' + ( CKEDITOR.env.ie6Compat? ' onload="this.width=this.width"' : '' ) + ' alt="" title=""></td>';
+ if ( template.image && imagesPath )
+ html += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl( imagesPath + template.image ) + '"' + ( CKEDITOR.env.ie6Compat ? ' onload="this.width=this.width"' : '' ) + ' alt="" title=""></td>';
- html += '<td style="white-space:normal;"><span class="cke_tpl_title">' + template.title + '</span><br/>';
+ html += '<td style="white-space:normal;"><span class="cke_tpl_title">' + template.title + '</span><br/>';
- if ( template.description )
- html += '<span>' + template.description + '</span>';
+ if ( template.description )
+ html += '<span>' + template.description + '</span>';
- html += '</td></tr></table>';
+ html += '</td></tr></table>';
- item.getFirst().setHtml( html );
+ item.getFirst().setHtml( html );
- item.on( 'click', function() { insertTemplate( template.html ); } );
+ item.on( 'click', function() {
+ insertTemplate( template.html );
+ });
- return item;
- }
-
- /**
- * Insert the specified template content into editor.
- * @param {Number} index
- */
- function insertTemplate( html )
- {
- var dialog = CKEDITOR.dialog.getCurrent(),
- isInsert = dialog.getValueOf( 'selectTpl', 'chkInsertOpt' );
+ return item;
+ }
- if ( isInsert )
- {
- // Everything should happen after the document is loaded (#4073).
- editor.on( 'contentDom', function( evt )
- {
- evt.removeListener();
- dialog.hide();
-
- // Place the cursor at the first editable place.
- var range = new CKEDITOR.dom.range( editor.document );
- range.moveToElementEditStart( editor.document.getBody() );
- range.select( true );
- setTimeout( function ()
- {
- editor.fire( 'saveSnapshot' );
- }, 0 );
- } );
+ // Insert the specified template content into editor.
+ // @param {Number} index
+ function insertTemplate( html ) {
+ var dialog = CKEDITOR.dialog.getCurrent(),
+ isReplace = dialog.getValueOf( 'selectTpl', 'chkInsertOpt' );
- editor.fire( 'saveSnapshot' );
- editor.setData( html );
- }
- else
- {
- editor.insertHtml( html );
+ if ( isReplace ) {
+ editor.fire( 'saveSnapshot' );
+ // Everything should happen after the document is loaded (#4073).
+ editor.setData( html, function() {
dialog.hide();
+
+ // Place the cursor at the first editable place.
+ var range = editor.createRange();
+ range.moveToElementEditStart( editor.editable() );
+ range.select();
+ setTimeout( function() {
+ editor.fire( 'saveSnapshot' );
+ }, 0 );
+
+ } );
+ } else {
+ editor.insertHtml( html );
+ dialog.hide();
+ }
+ }
+
+ function keyNavigation( evt ) {
+ var target = evt.data.getTarget(),
+ onList = listContainer.equals( target );
+
+ // Keyboard navigation for template list.
+ if ( onList || listContainer.contains( target ) ) {
+ var keystroke = evt.data.getKeystroke(),
+ items = listContainer.getElementsByTag( 'a' ),
+ focusItem;
+
+ if ( items ) {
+ // Focus not yet onto list items?
+ if ( onList )
+ focusItem = items.getItem( 0 );
+ else {
+ switch ( keystroke ) {
+ case 40: // ARROW-DOWN
+ focusItem = target.getNext();
+ break;
+
+ case 38: // ARROW-UP
+ focusItem = target.getPrevious();
+ break;
+
+ case 13: // ENTER
+ case 32: // SPACE
+ target.fire( 'click' );
+ }
+ }
+
+ if ( focusItem ) {
+ focusItem.focus();
+ evt.data.preventDefault();
+ }
}
}
+ }
- function keyNavigation( evt )
- {
- var target = evt.data.getTarget(),
- onList = listContainer.equals( target );
+ // Load skin at first.
+ var plugin = CKEDITOR.plugins.get( 'templates' );
+ CKEDITOR.document.appendStyleSheet( CKEDITOR.getUrl( plugin.path + 'dialogs/templates.css' ) );
- // Keyboard navigation for template list.
- if ( onList || listContainer.contains( target ) )
- {
- var keystroke = evt.data.getKeystroke(),
- items = listContainer.getElementsByTag( 'a' ),
- focusItem;
- if ( items )
+ var listContainer;
+
+ var templateListLabelId = 'cke_tpl_list_label_' + CKEDITOR.tools.getNextNumber(),
+ lang = editor.lang.templates,
+ config = editor.config;
+ return {
+ title: editor.lang.templates.title,
+
+ minWidth: CKEDITOR.env.ie ? 440 : 400,
+ minHeight: 340,
+
+ contents: [
+ {
+ id: 'selectTpl',
+ label: lang.title,
+ elements: [
{
- // Focus not yet onto list items?
- if ( onList )
- focusItem = items.getItem( 0 );
- else
+ type: 'vbox',
+ padding: 5,
+ children: [
{
- switch ( keystroke )
- {
- case 40 : // ARROW-DOWN
- focusItem = target.getNext();
- break;
-
- case 38 : // ARROW-UP
- focusItem = target.getPrevious();
- break;
-
- case 13 : // ENTER
- case 32 : // SPACE
- target.fire( 'click' );
- }
- }
-
- if ( focusItem )
+ id: 'selectTplText',
+ type: 'html',
+ html: '<span>' +
+ lang.selectPromptMsg +
+ '</span>'
+ },
{
- focusItem.focus();
- evt.data.preventDefault();
- }
+ id: 'templatesList',
+ type: 'html',
+ focus: true,
+ html: '<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + templateListLabelId + '">' +
+ '<div class="cke_tpl_loading"><span></span></div>' +
+ '</div>' +
+ '<span class="cke_voice_label" id="' + templateListLabelId + '">' + lang.options + '</span>'
+ },
+ {
+ id: 'chkInsertOpt',
+ type: 'checkbox',
+ label: lang.insertOption,
+ 'default': config.templates_replaceContent
}
+ ]
}
+ ]
}
+ ],
- // Load skin at first.
- CKEDITOR.skins.load( editor, 'templates' );
+ buttons: [ CKEDITOR.dialog.cancelButton ],
- var listContainer;
+ onShow: function() {
+ var templatesListField = this.getContentElement( 'selectTpl', 'templatesList' );
+ listContainer = templatesListField.getElement();
- var templateListLabelId = 'cke_tpl_list_label_' + CKEDITOR.tools.getNextNumber();
- return {
- title :editor.lang.templates.title,
+ CKEDITOR.loadTemplates( config.templates_files, function() {
+ var templates = ( config.templates || 'default' ).split( ',' );
- minWidth : CKEDITOR.env.ie ? 440 : 400,
- minHeight : 340,
-
- contents :
- [
- {
- id :'selectTpl',
- label : editor.lang.templates.title,
- elements :
- [
- {
- type : 'vbox',
- padding : 5,
- children :
- [
- {
- type : 'html',
- html :
- '<span>' +
- editor.lang.templates.selectPromptMsg +
- '</span>'
- },
- {
- id : "templatesList",
- type : 'html',
- focus: true,
- html :
- '<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + templateListLabelId+ '">' +
- '<div class="cke_tpl_loading"><span></span></div>' +
- '</div>' +
- '<span class="cke_voice_label" id="' + templateListLabelId + '">' + editor.lang.templates.options+ '</span>'
- },
- {
- id : 'chkInsertOpt',
- type : 'checkbox',
- label : editor.lang.templates.insertOption,
- 'default' : editor.config.templates_replaceContent
- }
- ]
- }
- ]
+ if ( templates.length ) {
+ renderTemplatesList( listContainer, templates );
+ templatesListField.focus();
+ } else {
+ listContainer.setHtml( '<div class="cke_tpl_empty">' +
+ '<span>' + lang.emptyListMsg + '</span>' +
+ '</div>' );
}
- ],
+ });
- buttons : [ CKEDITOR.dialog.cancelButton ],
-
- onShow : function()
- {
- var templatesListField = this.getContentElement( 'selectTpl' , 'templatesList' );
- listContainer = templatesListField.getElement();
+ this._.element.on( 'keydown', keyNavigation );
+ },
- CKEDITOR.loadTemplates( editor.config.templates_files, function()
- {
- var templates = editor.config.templates.split( ',' );
-
- if ( templates.length )
- {
- renderTemplatesList( listContainer, templates );
- templatesListField.focus();
- }
- else
- {
- listContainer.setHtml(
- '<div class="cke_tpl_empty">' +
- '<span>' + editor.lang.templates.emptyListMsg + '</span>' +
- '</div>' );
- }
- });
-
- this._.element.on( 'keydown', keyNavigation );
- },
-
- onHide : function ()
- {
- this._.element.removeListener( 'keydown', keyNavigation );
- }
- };
- });
+ onHide: function() {
+ this._.element.removeListener( 'keydown', keyNavigation );
+ }
+ };
+ });
})();
diff --git a/devel/third-party/ckeditor/plugins/templates/icons/templates-rtl.png b/devel/third-party/ckeditor/plugins/templates/icons/templates-rtl.png
new file mode 100644
index 0000000..8e4a6f6
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/templates/icons/templates-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/templates/icons/templates.png b/devel/third-party/ckeditor/plugins/templates/icons/templates.png
new file mode 100644
index 0000000..8e4a6f6
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/templates/icons/templates.png differ
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/af.js b/devel/third-party/ckeditor/plugins/templates/lang/af.js
new file mode 100644
index 0000000..c573c0f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/af.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'af', {
+ button: 'Sjablone',
+ emptyListMsg: '(Geen sjablone gedefineer nie)',
+ insertOption: 'Vervang huidige inhoud',
+ options: 'Sjabloon opsies',
+ selectPromptMsg: 'Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):',
+ title: 'Inhoud Sjablone'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ar.js b/devel/third-party/ckeditor/plugins/templates/lang/ar.js
new file mode 100644
index 0000000..3ed7167
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ar.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ar', {
+ button: 'اÙÙÙØ§Ùب',
+ emptyListMsg: '(ÙÙ
ÙØªÙ
تعرÙÙ Ø£Ù ÙØ§Ùب)',
+ insertOption: 'استبدا٠اÙÙ
ØØªÙÙ',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'اختر اÙÙØ§Ùب Ø§ÙØ°Ù ØªÙØ¯ ÙØ¶Ø¹Ù Ù٠اÙÙ
ØØ±Ø±',
+ title: 'ÙÙØ§Ùب اÙÙ
ØØªÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/bg.js b/devel/third-party/ckeditor/plugins/templates/lang/bg.js
new file mode 100644
index 0000000..fd949a4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/bg.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'bg', {
+ button: 'Шаблони',
+ emptyListMsg: '(ÐÑма деÑиниÑани Ñаблони)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'ÐзбеÑеÑе Ñаблон <br>(ÑекÑÑоÑо ÑÑдÑÑжание на ÑедакÑоÑа Ñе бÑде загÑбено):',
+ title: 'Шаблони'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/bn.js b/devel/third-party/ckeditor/plugins/templates/lang/bn.js
new file mode 100644
index 0000000..8954723
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/bn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'bn', {
+ button: 'à¦à§à¦®à¦ªà§à¦²à§à¦',
+ emptyListMsg: '(à¦à§à¦¨ à¦à§à¦®à¦ªà§à¦²à§à¦ ডিফাà¦à¦¨ à¦à¦°à¦¾ নà§à¦)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦¡à¦¿à¦à¦°à§ à¦à¦ªà§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦à§à¦®à¦ªà§à¦²à§à¦ বাà¦à¦¾à¦ à¦à¦°à§à¦¨<br>(à¦à¦¸à¦² à¦à¦¨à¦à§à¦¨à§à¦ হারিà§à§ যাবà§):',
+ title: 'à¦à¦¨à¦à§à¦¨à§à¦ à¦à§à¦®à¦ªà§à¦²à§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/bs.js b/devel/third-party/ckeditor/plugins/templates/lang/bs.js
new file mode 100644
index 0000000..eaebe34
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/bs.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'bs', {
+ button: 'Templates', // MISSING
+ emptyListMsg: '(No templates defined)', // MISSING
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Please select the template to open in the editor', // MISSING
+ title: 'Content Templates' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ca.js b/devel/third-party/ckeditor/plugins/templates/lang/ca.js
new file mode 100644
index 0000000..29c5308
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ca', {
+ button: 'Plantilles',
+ emptyListMsg: '(No hi ha plantilles definides)',
+ insertOption: 'Reemplaça el contingut actual',
+ options: 'Opcions de plantilla',
+ selectPromptMsg: 'Seleccioneu una plantilla per usar a l\'editor<br>(per defecte s\'elimina el contingut actual):',
+ title: 'Plantilles de contingut'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/cs.js b/devel/third-party/ckeditor/plugins/templates/lang/cs.js
new file mode 100644
index 0000000..d74acc7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/cs.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'cs', {
+ button: 'Å ablony',
+ emptyListMsg: '(Nenà definována žádná šablona)',
+ insertOption: 'Nahradit aktuálnà obsah',
+ options: 'Nastavenà šablon',
+ selectPromptMsg: 'ProsÃm zvolte Å¡ablonu pro otevÅenà v editoru<br>(aktuálnà obsah editoru bude ztracen):',
+ title: 'Å ablony obsahu'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/cy.js b/devel/third-party/ckeditor/plugins/templates/lang/cy.js
new file mode 100644
index 0000000..6a52921
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/cy.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'cy', {
+ button: 'Templedi',
+ emptyListMsg: '(Dim templedi wedi\'u diffinio)',
+ insertOption: 'Amnewid y cynnwys go iawn',
+ options: 'Opsiynau Templedi',
+ selectPromptMsg: 'Dewiswch dempled i\'w agor yn y golygydd',
+ title: 'Templedi Cynnwys'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/da.js b/devel/third-party/ckeditor/plugins/templates/lang/da.js
new file mode 100644
index 0000000..af534f7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/da.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'da', {
+ button: 'Skabeloner',
+ emptyListMsg: '(Der er ikke defineret nogen skabelon)',
+ insertOption: 'Erstat det faktiske indhold',
+ options: 'Skabelon muligheder',
+ selectPromptMsg: 'Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):',
+ title: 'Indholdsskabeloner'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/de.js b/devel/third-party/ckeditor/plugins/templates/lang/de.js
new file mode 100644
index 0000000..556069c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/de.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'de', {
+ button: 'Vorlagen',
+ emptyListMsg: '(keine Vorlagen definiert)',
+ insertOption: 'Aktuellen Inhalt ersetzen',
+ options: 'Vorlagen Optionen',
+ selectPromptMsg: 'Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):',
+ title: 'Vorlagen'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/el.js b/devel/third-party/ckeditor/plugins/templates/lang/el.js
new file mode 100644
index 0000000..d7e9194
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/el.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'el', {
+ button: 'Î ÏÏÏÏ
Ïα',
+ emptyListMsg: '(Îεν ÎÏοÏ
ν καθοÏιÏÏεί ÏÏÏÏÏ
Ïα)',
+ insertOption: 'ÎνÏικαÏάÏÏαÏη Ï
ÏάÏÏονÏÏν ÏεÏιεÏομÎνÏν',
+ options: 'ÎÏιλογÎÏ Î ÏοÏÏÏοÏ
',
+ selectPromptMsg: 'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏιλÎξÏε ÏÏÏÏÏ
Ïο για ειÏαγÏγή ÏÏο ÏÏÏγÏαμμα',
+ title: 'Î ÏÏÏÏ
Ïα ΠεÏιεÏομÎνοÏ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/en-au.js b/devel/third-party/ckeditor/plugins/templates/lang/en-au.js
new file mode 100644
index 0000000..ad58104
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/en-au.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'en-au', {
+ button: 'Templates',
+ emptyListMsg: '(No templates defined)',
+ insertOption: 'Replace actual contents',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Please select the template to open in the editor',
+ title: 'Content Templates'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/en-ca.js b/devel/third-party/ckeditor/plugins/templates/lang/en-ca.js
new file mode 100644
index 0000000..1fba4a6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/en-ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'en-ca', {
+ button: 'Templates',
+ emptyListMsg: '(No templates defined)',
+ insertOption: 'Replace actual contents',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Please select the template to open in the editor',
+ title: 'Content Templates'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/en-gb.js b/devel/third-party/ckeditor/plugins/templates/lang/en-gb.js
new file mode 100644
index 0000000..1241394
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/en-gb.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'en-gb', {
+ button: 'Templates',
+ emptyListMsg: '(No templates defined)',
+ insertOption: 'Replace actual contents',
+ options: 'Template Options',
+ selectPromptMsg: 'Please select the template to open in the editor',
+ title: 'Content Templates'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/en.js b/devel/third-party/ckeditor/plugins/templates/lang/en.js
new file mode 100644
index 0000000..3d2ecc4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/en.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'en', {
+ button: 'Templates',
+ emptyListMsg: '(No templates defined)',
+ insertOption: 'Replace actual contents',
+ options: 'Template Options',
+ selectPromptMsg: 'Please select the template to open in the editor',
+ title: 'Content Templates'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/eo.js b/devel/third-party/ckeditor/plugins/templates/lang/eo.js
new file mode 100644
index 0000000..b1a6cfe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/eo.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'eo', {
+ button: 'Åablonoj',
+ emptyListMsg: '(Neniu Åablono difinita)',
+ insertOption: 'AnstataÅigi la nunan enhavon',
+ options: 'Opcioj pri Åablonoj',
+ selectPromptMsg: 'Bonvolu selekti la Åablonon por malfermi Äin en la redaktilo',
+ title: 'Enhavo de Åablonoj'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/es.js b/devel/third-party/ckeditor/plugins/templates/lang/es.js
new file mode 100644
index 0000000..12a97ee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/es.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'es', {
+ button: 'Plantillas',
+ emptyListMsg: '(No hay plantillas definidas)',
+ insertOption: 'Reemplazar el contenido actual',
+ options: 'Opciones de plantillas',
+ selectPromptMsg: 'Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):',
+ title: 'Contenido de Plantillas'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/et.js b/devel/third-party/ckeditor/plugins/templates/lang/et.js
new file mode 100644
index 0000000..fedf02e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/et.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'et', {
+ button: 'Mall',
+ emptyListMsg: '(Ãhtegi malli ei ole defineeritud)',
+ insertOption: 'Praegune sisu asendatakse',
+ options: 'Malli valikud',
+ selectPromptMsg: 'Palun vali mall, mis avada redaktoris<br />(praegune sisu läheb kaotsi):',
+ title: 'Sisumallid'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/eu.js b/devel/third-party/ckeditor/plugins/templates/lang/eu.js
new file mode 100644
index 0000000..f81c44f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/eu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'eu', {
+ button: 'Txantiloiak',
+ emptyListMsg: '(Ez dago definitutako txantiloirik)',
+ insertOption: 'Ordeztu oraingo edukiak',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):',
+ title: 'Eduki Txantiloiak'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/fa.js b/devel/third-party/ckeditor/plugins/templates/lang/fa.js
new file mode 100644
index 0000000..5176cba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/fa.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'fa', {
+ button: 'اÙÚ¯ÙÙØ§',
+ emptyListMsg: '(اÙÚ¯ÙØ¦Û تعرÛÙ ÙØ´Ø¯Ù است)',
+ insertOption: 'Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø¬Ø§ÛگزÛÙ Ø´ÙÙØ¯',
+ options: 'گزÛÙÙÙØ§Û اÙÚ¯Ù',
+ selectPromptMsg: 'ÙØ·Ùا اÙÚ¯ÙÛ Ù
ÙØ±Ø¯Ùظر را Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú©Ø±Ø¯Ù Ø¯Ø± ÙÛØ±Ø§Ûشگر برگزÛÙÛØ¯<br>(Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø§Ø² دست Ø®ÙØ§ÙÙØ¯ Ø±ÙØª):',
+ title: 'اÙÚ¯ÙÙØ§Û Ù
ØØªÙÛØ§Øª'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/fi.js b/devel/third-party/ckeditor/plugins/templates/lang/fi.js
new file mode 100644
index 0000000..81fb9e5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/fi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'fi', {
+ button: 'Pohjat',
+ emptyListMsg: '(Ei määriteltyjä pohjia)',
+ insertOption: 'Korvaa editorin koko sisältö',
+ options: 'Sisältöpohjan ominaisuudet',
+ selectPromptMsg: 'Valitse pohja editoriin<br>(aiempi sisältö menetetään):',
+ title: 'Sisältöpohjat'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/fo.js b/devel/third-party/ckeditor/plugins/templates/lang/fo.js
new file mode 100644
index 0000000..413a762
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/fo.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'fo', {
+ button: 'Skabelónir',
+ emptyListMsg: '(Ongar skabelónir tøkar)',
+ insertOption: 'Yvirskriva núverandi innihald',
+ options: 'Møguleikar fyri Template',
+ selectPromptMsg: 'Vinarliga vel ta skabelón, ið skal opnast à tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):',
+ title: 'Innihaldsskabelónir'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/templates/lang/fr-ca.js
new file mode 100644
index 0000000..4f9ff80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/fr-ca.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'fr-ca', {
+ button: 'Modèles',
+ emptyListMsg: '(Aucun modèle disponible)',
+ insertOption: 'Remplacer tout le contenu actuel',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Sélectionner le modèle à ouvrir dans l\'éditeur<br>(le contenu actuel sera remplacé):',
+ title: 'Modèles de contenu'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/fr.js b/devel/third-party/ckeditor/plugins/templates/lang/fr.js
new file mode 100644
index 0000000..6e3bd48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/fr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'fr', {
+ button: 'Modèles',
+ emptyListMsg: '(Aucun modèle disponible)',
+ insertOption: 'Remplacer le contenu actuel',
+ options: 'Options des modèles',
+ selectPromptMsg: 'Veuillez sélectionner le modèle pour l\'ouvrir dans l\'éditeur',
+ title: 'Contenu des modèles'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/gl.js b/devel/third-party/ckeditor/plugins/templates/lang/gl.js
new file mode 100644
index 0000000..813fa9f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/gl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'gl', {
+ button: 'Plantillas',
+ emptyListMsg: '(Non hai plantillas definidas)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):',
+ title: 'Plantillas de Contido'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/gu.js b/devel/third-party/ckeditor/plugins/templates/lang/gu.js
new file mode 100644
index 0000000..ff40ce4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/gu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'gu', {
+ button: 'àªà«àª®à«àªªà«àª²à«àª',
+ emptyListMsg: '(àªà«àª àªà«àª®à«àªªà«àª²à«àª ડિફાàªàª¨ નથà«)',
+ insertOption: 'મà«àª³ શબà«àª¦àª¨à« બદલà«',
+ options: 'àªà«àª®à«àªªà«àª²à«àªàª¨àª¾ વિàªàª²à«àªªà«',
+ selectPromptMsg: 'àªàª¡àª¿àªàª°àª®àª¾àª àªàªªàª¨ àªàª°àªµàª¾ àªà«àª®à«àªªà«àª²à«àª પસàªàª¦ àªàª°à« (વરà«àª¤àª®àª¾àª¨ àªàª¨à«àªà«àª¨à«àª સà«àªµ નહà«àª થાય):',
+ title: 'àªàª¨à«àªà«àª¨à«àª àªà«àª®à«àªªà«àª²à«àª'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/he.js b/devel/third-party/ckeditor/plugins/templates/lang/he.js
new file mode 100644
index 0000000..7bb48c0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/he.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'he', {
+ button: 'ת×× ××ת',
+ emptyListMsg: '(×× ×××××¨× ×ª×× ××ת)',
+ insertOption: '×××פת ת××× ××ש×',
+ options: '×פשר×××ת ×ת×× ××ת',
+ selectPromptMsg: '×ש ××××ר ת×× ×ת ×פת××× ××¢×ר×.<br />×ת××× ×××§××¨× ××××§:',
+ title: 'ת×××ת ת×××'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/hi.js b/devel/third-party/ckeditor/plugins/templates/lang/hi.js
new file mode 100644
index 0000000..9945a60
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/hi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'hi', {
+ button: 'à¤à¥
मà¥à¤ªà¥à¤²à¥à¤',
+ emptyListMsg: '(à¤à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ डिà¥à¤¾à¤à¤¨ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥)',
+ insertOption: 'मà¥à¤² शबà¥à¤¦à¥à¤ à¤à¥ बदलà¥à¤',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'à¤à¤¡à¤¿à¤à¤° मà¥à¤ à¤à¤ªà¤¨ à¤à¤°à¤¨à¥ हà¥à¤¤à¥ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ à¤à¥à¤¨à¥à¤(वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¤¨à¥à¤à¥
नà¥à¤ सà¥à¤µ नहà¥à¤ हà¥à¤à¤à¥):',
+ title: 'à¤à¤¨à¥à¤à¥à¤¨à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/hr.js b/devel/third-party/ckeditor/plugins/templates/lang/hr.js
new file mode 100644
index 0000000..3c9be48
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/hr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'hr', {
+ button: 'Predlošci',
+ emptyListMsg: '(Nema definiranih predložaka)',
+ insertOption: 'Zamijeni trenutne sadržaje',
+ options: 'Opcije predložaka',
+ selectPromptMsg: 'Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj Äe biti izgubljen):',
+ title: 'Predlošci sadržaja'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/hu.js b/devel/third-party/ckeditor/plugins/templates/lang/hu.js
new file mode 100644
index 0000000..db414e3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/hu.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'hu', {
+ button: 'Sablonok',
+ emptyListMsg: '(Nincs sablon megadva)',
+ insertOption: 'Kicseréli a jelenlegi tartalmat',
+ options: 'Sablon opciók',
+ selectPromptMsg: 'Válassza ki melyik sablon nyÃljon meg a szerkesztÅben<br>(a jelenlegi tartalom elveszik):',
+ title: 'ElérhetŠsablonok'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/is.js b/devel/third-party/ckeditor/plugins/templates/lang/is.js
new file mode 100644
index 0000000..a3cd5b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/is.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'is', {
+ button: 'Sniðmát',
+ emptyListMsg: '(Ekkert sniðmát er skilgreint!)',
+ insertOption: 'Skipta út raunverulegu innihaldi',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Veldu sniðmát til að opna à ritlinum.<br>(Núverandi innihald vÃkur fyrir þvÃ!):',
+ title: 'Innihaldssniðmát'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/it.js b/devel/third-party/ckeditor/plugins/templates/lang/it.js
new file mode 100644
index 0000000..6758b0d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/it.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'it', {
+ button: 'Modelli',
+ emptyListMsg: '(Nessun modello definito)',
+ insertOption: 'Cancella il contenuto corrente',
+ options: 'Opzioni del Modello',
+ selectPromptMsg: 'Seleziona il modello da aprire nell\'editor<br />(il contenuto attuale verrà eliminato):',
+ title: 'Contenuto dei modelli'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ja.js b/devel/third-party/ckeditor/plugins/templates/lang/ja.js
new file mode 100644
index 0000000..30422ea
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ja.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ja', {
+ button: 'ãã³ãã¬ã¼ã(éå½¢)',
+ emptyListMsg: '(ãã³ãã¬ã¼ããå®ç¾©ããã¦ãã¾ãã)',
+ insertOption: 'ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¨ç½®æãããã¾ã',
+ options: 'ãã³ãã¬ã¼ããªãã·ã§ã³',
+ selectPromptMsg: 'ã¨ãã£ã¿ã¼ã§ä½¿ç¨ãããã³ãã¬ã¼ãã鏿ãã¦ãã ããã<br>(ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¯å¤±ããã¾ã):',
+ title: 'ãã³ãã¬ã¼ãå
容'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ka.js b/devel/third-party/ckeditor/plugins/templates/lang/ka.js
new file mode 100644
index 0000000..cda9b16
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ka.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ka', {
+ button: 'ááá áááá',
+ emptyListMsg: '(ááá áá áá áá áááá¡ááá¦áá á£áá)',
+ insertOption: 'áááááááá á á¨áááááá¡áá¡ á¨ááªááá',
+ options: 'ááá ááááá¡ ááá áááá¢á ááá',
+ selectPromptMsg: 'ááá á©ááá ááá áá á áááá¥á¢áá áá¡áááá¡',
+ title: 'ááá áááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/km.js b/devel/third-party/ckeditor/plugins/templates/lang/km.js
new file mode 100644
index 0000000..77a4875
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/km.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'km', {
+ button: 'á¯ááá¶ááááá¼',
+ emptyListMsg: '(áá»ááá¶áá¯ááá¶ááááá¼áááá¼ááá¶áááááá)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'áá¼ááááá¾ááá¾áá¯ááá¶ááááá¼ áá¾áááá¸áá¾ááá
áááá»ááááááá·áá¸áá¶áááááá¢ááááá<br>(á¢ááááááá¹ááá¶ááááá):',
+ title: 'á¯ááá¶ááááá¼ ááááá¢áááááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ko.js b/devel/third-party/ckeditor/plugins/templates/lang/ko.js
new file mode 100644
index 0000000..8a23346
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ko.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ko', {
+ button: 'í
í릿',
+ emptyListMsg: '(í
íë¦¿ì´ ììµëë¤.)',
+ insertOption: 'íì¬ ë´ì© ë°ê¾¸ê¸°',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'ìëí°ìì ì¬ì©í í
í릿ì ì ííììì.<br>(ì§ê¸ê¹ì§ ìì±ë ë´ì©ì ì¬ë¼ì§ëë¤.):',
+ title: 'ë´ì© í
í릿'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ku.js b/devel/third-party/ckeditor/plugins/templates/lang/ku.js
new file mode 100644
index 0000000..ce50d63
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ku.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ku', {
+ button: 'ÚÙÙکار',
+ emptyListMsg: '(ÙÛÚ ÚÙÙکارÛÙ Ø¯ÛØ§Ø±ÛÙÙکراÙÙ)',
+ insertOption: 'ÙÙØ´ÙÛÙ Ø¯Ø§ÙØ§ÙÛ Ø¦ÙÙ
Ù¾ÛÚ©ÙØ§ØªØ§ÙÙÛ Ø¦ÛØ³ØªØ§',
+ options: 'ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙکاÙÛ ÚÙÙکار',
+ selectPromptMsg: 'ÚÙÙکارÛÙ ÙÙڵبÚÛØ±Ù Ø¨Û Ú©Ø±Ø¯ÙÙÙÙÛ ÙÙ Ø³ÙØ±ÙÙÙØ³Ùر:',
+ title: 'Ù¾ÛÚ©ÙØ§ØªÙÛ ÚÙÙکار'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/lt.js b/devel/third-party/ckeditor/plugins/templates/lang/lt.js
new file mode 100644
index 0000000..466e1cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/lt.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'lt', {
+ button: 'Å ablonai',
+ emptyListMsg: '(Å ablonų sÄ
raÅ¡as tuÅ¡Äias)',
+ insertOption: 'Pakeisti dabartinį turinį pasirinktu šablonu',
+ options: 'Template Options',
+ selectPromptMsg: 'Pasirinkite norimÄ
Å¡ablonÄ
<br>(<b>DÄmesio!</b> esamas turinys bus prarastas):',
+ title: 'Turinio šablonai'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/lv.js b/devel/third-party/ckeditor/plugins/templates/lang/lv.js
new file mode 100644
index 0000000..afde3e1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/lv.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'lv', {
+ button: 'Sagataves',
+ emptyListMsg: '(Nav norÄdÄ«tas sagataves)',
+ insertOption: 'Aizvietot paÅ¡reizÄjo saturu',
+ options: 'Sagataves uzstÄdÄ«jumi',
+ selectPromptMsg: 'LÅ«dzu, norÄdiet sagatavi, ko atvÄrt editorÄ<br>(patreizÄjie dati tiks zaudÄti):',
+ title: 'Satura sagataves'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/mk.js b/devel/third-party/ckeditor/plugins/templates/lang/mk.js
new file mode 100644
index 0000000..a319b4b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/mk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'mk', {
+ button: 'Templates', // MISSING
+ emptyListMsg: '(No templates defined)', // MISSING
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Please select the template to open in the editor', // MISSING
+ title: 'Content Templates' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/mn.js b/devel/third-party/ckeditor/plugins/templates/lang/mn.js
new file mode 100644
index 0000000..f7b4535
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/mn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'mn', {
+ button: 'ÐагваÑÑÑд',
+ emptyListMsg: '(ÐÐ°Ð³Ð²Ð°Ñ ÑодоÑÑ
ойлогдоогүй байна)',
+ insertOption: 'Ðдоогийн агÑÑллагÑг даÑж биÑиÑ
',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'ÐагваÑÑг нÑÑж editor-ÑÒ¯Ò¯ Ñонгож оÑÑÑлна ÑÑ<br />(Ðдоогийн агÑÑллагÑг ÑÑÑаж магадгүй):',
+ title: 'ÐагваÑÑн агÑÑлга'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ms.js b/devel/third-party/ckeditor/plugins/templates/lang/ms.js
new file mode 100644
index 0000000..33b1b75
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ms.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ms', {
+ button: 'Templat',
+ emptyListMsg: '(Tiada Templat Disimpan)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):',
+ title: 'Templat Kandungan'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/nb.js b/devel/third-party/ckeditor/plugins/templates/lang/nb.js
new file mode 100644
index 0000000..092ba9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/nb.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'nb', {
+ button: 'Maler',
+ emptyListMsg: '(Ingen maler definert)',
+ insertOption: 'Erstatt gjeldende innhold',
+ options: 'Alternativer for mal',
+ selectPromptMsg: 'Velg malen du vil åpne i redigeringsverktøyet:',
+ title: 'Innholdsmaler'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/nl.js b/devel/third-party/ckeditor/plugins/templates/lang/nl.js
new file mode 100644
index 0000000..fe3a67b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/nl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'nl', {
+ button: 'Sjablonen',
+ emptyListMsg: '(Geen sjablonen gedefinieerd)',
+ insertOption: 'Vervang de huidige inhoud',
+ options: 'Template opties',
+ selectPromptMsg: 'Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):',
+ title: 'Inhoud sjablonen'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/no.js b/devel/third-party/ckeditor/plugins/templates/lang/no.js
new file mode 100644
index 0000000..791b0b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/no.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'no', {
+ button: 'Maler',
+ emptyListMsg: '(Ingen maler definert)',
+ insertOption: 'Erstatt gjeldende innhold',
+ options: 'Alternativer for mal',
+ selectPromptMsg: 'Velg malen du vil åpne i redigeringsverktøyet:',
+ title: 'Innholdsmaler'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/pl.js b/devel/third-party/ckeditor/plugins/templates/lang/pl.js
new file mode 100644
index 0000000..00adbc7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/pl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'pl', {
+ button: 'Szablony',
+ emptyListMsg: '(Brak zdefiniowanych szablonów)',
+ insertOption: 'ZastÄ
p obecnÄ
zawartoÅÄ',
+ options: 'Opcje szablonów',
+ selectPromptMsg: 'Wybierz szablon do otwarcia w edytorze<br>(obecna zawartoÅÄ okna edytora zostanie utracona):',
+ title: 'Szablony zawartoÅci'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/pt-br.js b/devel/third-party/ckeditor/plugins/templates/lang/pt-br.js
new file mode 100644
index 0000000..36540fa
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/pt-br.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'pt-br', {
+ button: 'Modelos de layout',
+ emptyListMsg: '(Não foram definidos modelos de layout)',
+ insertOption: 'Substituir o conteúdo atual',
+ options: 'Opções de Template',
+ selectPromptMsg: 'Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):',
+ title: 'Modelo de layout de conteúdo'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/pt.js b/devel/third-party/ckeditor/plugins/templates/lang/pt.js
new file mode 100644
index 0000000..1736971
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/pt.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'pt', {
+ button: 'Modelos',
+ emptyListMsg: '(Sem modelos definidos)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):',
+ title: 'Modelo de Conteúdo'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ro.js b/devel/third-party/ckeditor/plugins/templates/lang/ro.js
new file mode 100644
index 0000000..942e6f6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ro.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ro', {
+ button: 'Template-uri (Åabloane)',
+ emptyListMsg: '(Niciun template (Åablon) definit)',
+ insertOption: 'ÃnlocuieÅte cuprinsul actual',
+ options: 'OpÈiuni Èabloane',
+ selectPromptMsg: 'VÄ rugÄm selectaÅ£i template-ul (Åablonul) ce se va deschide în editor<br>(conÅ£inutul actual va fi pierdut):',
+ title: 'Template-uri (Åabloane) de conÅ£inut'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ru.js b/devel/third-party/ckeditor/plugins/templates/lang/ru.js
new file mode 100644
index 0000000..c2c6c69
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ru.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ru', {
+ button: 'ШаблонÑ',
+ emptyListMsg: '(не опÑеделено ни одного Ñаблона)',
+ insertOption: 'ÐамениÑÑ ÑекÑÑее ÑодеÑжимое',
+ options: 'ÐаÑамеÑÑÑ Ñаблона',
+ selectPromptMsg: 'ÐожалÑйÑÑа, вÑбеÑиÑе, какой Ñаблон ÑледÑÐµÑ Ð¾ÑкÑÑÑÑ Ð² ÑедакÑоÑе',
+ title: 'Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ ÑодеÑжимого'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/sk.js b/devel/third-party/ckeditor/plugins/templates/lang/sk.js
new file mode 100644
index 0000000..f96033f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/sk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'sk', {
+ button: 'Šablóny',
+ emptyListMsg: '(Žiadne šablóny nedefinované)',
+ insertOption: 'Nahradiť aktuálny obsah',
+ options: 'Možnosti šablóny',
+ selectPromptMsg: 'ProsÃm vyberte Å¡ablónu na otvorenie v editore',
+ title: 'Šablóny obsahu'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/sl.js b/devel/third-party/ckeditor/plugins/templates/lang/sl.js
new file mode 100644
index 0000000..c1a6649
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/sl.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'sl', {
+ button: 'Predloge',
+ emptyListMsg: '(Ni pripravljenih predlog)',
+ insertOption: 'Zamenjaj trenutno vsebino',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):',
+ title: 'Vsebinske predloge'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/templates/lang/sr-latn.js
new file mode 100644
index 0000000..fb4b409
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/sr-latn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'sr-latn', {
+ button: 'Obrasci',
+ emptyListMsg: '(Nema definisanih obrazaca)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):',
+ title: 'Obrasci za sadržaj'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/sr.js b/devel/third-party/ckeditor/plugins/templates/lang/sr.js
new file mode 100644
index 0000000..97c012c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/sr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'sr', {
+ button: 'ÐбÑаÑÑи',
+ emptyListMsg: '(Ðема деÑиниÑаниÑ
обÑазаÑа)',
+ insertOption: 'Replace actual contents', // MISSING
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'Ðолимо ÐÐ°Ñ Ð´Ð° одабеÑеÑе обÑÐ°Ð·Ð°Ñ ÐºÐ¾Ñи Ñе биÑи пÑимеÑен на ÑÑÑаниÑÑ (ÑÑенÑÑни ÑадÑÐ¶Ð°Ñ Ñе биÑи обÑиÑан):',
+ title: 'ÐбÑаÑÑи за ÑадÑжаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/sv.js b/devel/third-party/ckeditor/plugins/templates/lang/sv.js
new file mode 100644
index 0000000..e6a176d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/sv.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'sv', {
+ button: 'Sidmallar',
+ emptyListMsg: '(Ingen mall är vald)',
+ insertOption: 'Ersätt aktuellt innehåll',
+ options: 'Inställningar för mall',
+ selectPromptMsg: 'Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):',
+ title: 'Sidmallar'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/th.js b/devel/third-party/ckeditor/plugins/templates/lang/th.js
new file mode 100644
index 0000000..cc1844c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/th.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'th', {
+ button: 'à¹à¸à¸¡à¹à¸à¸¥à¸',
+ emptyListMsg: '(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸³à¸«à¸à¸à¹à¸à¸¡à¹à¸à¸¥à¸)',
+ insertOption: 'à¹à¸à¸à¸à¸µà¹à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸ à¹à¸à¸¡à¹à¸à¸¥à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¹à¸à¹à¹à¸à¹à¸à¸à¸µà¸à¸´à¸à¹à¸à¸à¸£à¹<br />(à¹à¸à¸·à¹à¸à¸«à¸²à¸ªà¹à¸§à¸à¸à¸µà¹à¸à¸°à¸«à¸²à¸¢à¹à¸):',
+ title: 'à¹à¸à¸¡à¹à¸à¸¥à¸à¸à¸à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/tr.js b/devel/third-party/ckeditor/plugins/templates/lang/tr.js
new file mode 100644
index 0000000..d096fd1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/tr.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'tr', {
+ button: 'Åablonlar',
+ emptyListMsg: '(Belirli bir Åablon seçilmedi)',
+ insertOption: 'Mevcut içerik ile deÄiÅtir',
+ options: 'Åablon Seçenekleri',
+ selectPromptMsg: 'Düzenleyicide açmak için lütfen bir Åablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):',
+ title: 'İçerik Åablonları'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/ug.js b/devel/third-party/ckeditor/plugins/templates/lang/ug.js
new file mode 100644
index 0000000..f8417e7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/ug.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'ug', {
+ button: 'ÙÛÙÙÙ¾',
+ emptyListMsg: '(ÙÛÙÙÙ¾ ÙÙÙ)',
+ insertOption: 'ÙÛÛÛØªØªÙÙÙ Ù
ÛØ²Ù
ÛÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±',
+ options: 'ÙÛÙÙÙ¾ تاÙÙØ§ÙÙ
ÙØ³Ù',
+ selectPromptMsg: 'تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚÙÙÚ Ù
ÛØ²Ù
ÛÙ ÙÛÙÙÙ¾ÙÙ٠تاÙÙØ§Ú:',
+ title: 'Ù
ÛØ²Ù
ÛÙ ÙÛÙÙÙ¾Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/uk.js b/devel/third-party/ckeditor/plugins/templates/lang/uk.js
new file mode 100644
index 0000000..ba8bbb6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/uk.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'uk', {
+ button: 'Шаблони',
+ emptyListMsg: '(Ðе знайдено жодного ÑаблонÑ)',
+ insertOption: 'ÐамÑниÑи поÑоÑний вмÑÑÑ',
+ options: 'ÐпÑÑÑ ÑаблонÑ',
+ selectPromptMsg: 'ÐбеÑÑÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, Ñаблон Ð´Ð»Ñ Ð²ÑдкÑиÑÑÑ Ð² ÑедакÑоÑÑ<br>(поÑоÑний змÑÑÑ Ð±Ñде вÑÑаÑено):',
+ title: 'Шаблони змÑÑÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/vi.js b/devel/third-party/ckeditor/plugins/templates/lang/vi.js
new file mode 100644
index 0000000..d6df753
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/vi.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'vi', {
+ button: 'Mẫu dựng sẵn',
+ emptyListMsg: '(Không có mẫu dá»±ng sẵn nà o ÄÆ°á»£c Äá»nh nghÄ©a)',
+ insertOption: 'Thay thế ná»i dung hiá»n tại',
+ options: 'Tùy chá»n mẫu dá»±ng sẵn',
+ selectPromptMsg: 'Hãy chá»n mẫu dá»±ng sẵn Äá» má» trong trình biên táºp<br>(ná»i dung hiá»n tại sẽ bá» mất):',
+ title: 'Ná»i dung Mẫu dá»±ng sẵn'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/templates/lang/zh-cn.js
new file mode 100644
index 0000000..63244a1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/zh-cn.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'zh-cn', {
+ button: '模æ¿',
+ emptyListMsg: '(æ²¡ææ¨¡æ¿)',
+ insertOption: 'æ¿æ¢å½åå
容',
+ options: '模æ¿é项',
+ selectPromptMsg: 'è¯·éæ©ç¼è¾å¨å
容模æ¿:',
+ title: 'å
容模æ¿'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/lang/zh.js b/devel/third-party/ckeditor/plugins/templates/lang/zh.js
new file mode 100644
index 0000000..9fb74e9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/templates/lang/zh.js
@@ -0,0 +1,12 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'templates', 'zh', {
+ button: '樣ç',
+ emptyListMsg: '(ç¡æ¨£ç)',
+ insertOption: 'å代åæå
§å®¹',
+ options: 'Template Options', // MISSING
+ selectPromptMsg: 'è«é¸ææ¬²éåçæ¨£ç<br> (åæçå
§å®¹å°æè¢«æ¸
é¤):',
+ title: 'å
§å®¹æ¨£ç'
+});
diff --git a/devel/third-party/ckeditor/plugins/templates/plugin.js b/devel/third-party/ckeditor/plugins/templates/plugin.js
index 64d70e0..2036400 100644
--- a/devel/third-party/ckeditor/plugins/templates/plugin.js
+++ b/devel/third-party/ckeditor/plugins/templates/plugin.js
@@ -1,57 +1,50 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- CKEDITOR.plugins.add( 'templates',
- {
- requires : [ 'dialog' ],
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
- init : function( editor )
- {
- CKEDITOR.dialog.add( 'templates', CKEDITOR.getUrl( this.path + 'dialogs/templates.js' ) );
+(function() {
+ CKEDITOR.plugins.add( 'templates', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'templates,templates-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
+ CKEDITOR.dialog.add( 'templates', CKEDITOR.getUrl( this.path + 'dialogs/templates.js' ) );
- editor.addCommand( 'templates', new CKEDITOR.dialogCommand( 'templates' ) );
+ editor.addCommand( 'templates', new CKEDITOR.dialogCommand( 'templates' ) );
- editor.ui.addButton( 'Templates',
- {
- label : editor.lang.templates.button,
- command : 'templates'
- });
- }
- });
+ editor.ui.addButton && editor.ui.addButton( 'Templates', {
+ label: editor.lang.templates.button,
+ command: 'templates',
+ toolbar: 'doctools,10'
+ });
+ }
+ });
var templates = {},
loadedTemplatesFiles = {};
- CKEDITOR.addTemplates = function( name, definition )
- {
+ CKEDITOR.addTemplates = function( name, definition ) {
templates[ name ] = definition;
};
- CKEDITOR.getTemplates = function( name )
- {
+ CKEDITOR.getTemplates = function( name ) {
return templates[ name ];
};
- CKEDITOR.loadTemplates = function( templateFiles, callback )
- {
+ CKEDITOR.loadTemplates = function( templateFiles, callback ) {
// Holds the templates files to be loaded.
var toLoad = [];
// Look for pending template files to get loaded.
- for ( var i = 0 ; i < templateFiles.length ; i++ )
- {
- if ( !loadedTemplatesFiles[ templateFiles[ i ] ] )
- {
+ for ( var i = 0, count = templateFiles.length; i < count; i++ ) {
+ if ( !loadedTemplatesFiles[ templateFiles[ i ] ] ) {
toLoad.push( templateFiles[ i ] );
loadedTemplatesFiles[ templateFiles[ i ] ] = 1;
}
}
- if ( toLoad.length > 0 )
+ if ( toLoad.length )
CKEDITOR.scriptLoader.load( toLoad, callback );
else
setTimeout( callback, 0 );
@@ -62,39 +55,36 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* The templates definition set to use. It accepts a list of names separated by
- * comma. It must match definitions loaded with the templates_files setting.
- * @type String
- * @default 'default'
- * @example
- * config.templates = 'my_templates';
+ * comma. It must match definitions loaded with the {@link #templates_files} setting.
+ *
+ * config.templates = 'my_templates';
+ *
+ * @cfg {String} [templates='default']
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.templates = 'default';
/**
* The list of templates definition files to load.
- * @type (String) Array
- * @default [ 'plugins/templates/templates/default.js' ]
- * @example
- * config.templates_files =
- * [
- * '/editor_templates/site_default.js',
- * 'http://www.example.com/user_templates.js
- * ];
*
+ * config.templates_files = [
+ * '/editor_templates/site_default.js',
+ * 'http://www.example.com/user_templates.js
+ * ];
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.templates_files =
- [
- CKEDITOR.getUrl(
- '_source/' + // @Packager.RemoveLine
- 'plugins/templates/templates/default.js' )
+CKEDITOR.config.templates_files = [
+ CKEDITOR.getUrl( 'plugins/templates/templates/default.js' )
];
/**
* Whether the "Replace actual contents" checkbox is checked by default in the
* Templates dialog.
- * @type Boolean
- * @default true
- * @example
- * config.templates_replaceContent = false;
+ *
+ * config.templates_replaceContent = false;
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.templates_replaceContent = true;
diff --git a/devel/third-party/ckeditor/plugins/templates/templates/default.js b/devel/third-party/ckeditor/plugins/templates/templates/default.js
index 8bf9782..917a1f4 100644
--- a/devel/third-party/ckeditor/plugins/templates/templates/default.js
+++ b/devel/third-party/ckeditor/plugins/templates/templates/default.js
@@ -1,94 +1,89 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
// Register a templates definition set named "default".
-CKEDITOR.addTemplates( 'default',
-{
+CKEDITOR.addTemplates( 'default', {
// The name of sub folder which hold the shortcut preview images of the
// templates.
- imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),
+ imagesPath: CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),
// The templates definitions.
- templates :
- [
- {
- title: 'Image and Title',
- image: 'template1.gif',
- description: 'One main image with a title and text that surround the image.',
- html:
- '<h3>' +
- '<img style="margin-right: 10px" height="100" width="100" align="left"/>' +
- 'Type the title here'+
- '</h3>' +
- '<p>' +
- 'Type the text here' +
- '</p>'
- },
- {
- title: 'Strange Template',
- image: 'template2.gif',
- description: 'A template that defines two colums, each one with a title, and some text.',
- html:
- '<table cellspacing="0" cellpadding="0" style="width:100%" border="0">' +
- '<tr>' +
- '<td style="width:50%">' +
- '<h3>Title 1</h3>' +
- '</td>' +
- '<td></td>' +
- '<td style="width:50%">' +
- '<h3>Title 2</h3>' +
- '</td>' +
- '</tr>' +
- '<tr>' +
- '<td>' +
- 'Text 1' +
- '</td>' +
- '<td></td>' +
- '<td>' +
- 'Text 2' +
- '</td>' +
- '</tr>' +
- '</table>' +
- '<p>' +
- 'More text goes here.' +
- '</p>'
- },
- {
- title: 'Text and Table',
- image: 'template3.gif',
- description: 'A title with some text and a table.',
- html:
- '<div style="width: 80%">' +
- '<h3>' +
- 'Title goes here' +
- '</h3>' +
- '<table style="width:150px;float: right" cellspacing="0" cellpadding="0" border="1">' +
- '<caption style="border:solid 1px black">' +
- '<strong>Table title</strong>' +
- '</caption>' +
- '</tr>' +
- '<tr>' +
- '<td> </td>' +
- '<td> </td>' +
- '<td> </td>' +
- '</tr>' +
- '<tr>' +
- '<td> </td>' +
- '<td> </td>' +
- '<td> </td>' +
- '</tr>' +
- '<tr>' +
- '<td> </td>' +
- '<td> </td>' +
- '<td> </td>' +
- '</tr>' +
- '</table>' +
- '<p>' +
- 'Type the text here' +
- '</p>' +
- '</div>'
- }
- ]
+ templates: [
+ {
+ title: 'Image and Title',
+ image: 'template1.gif',
+ description: 'One main image with a title and text that surround the image.',
+ html: '<h3>' +
+ '<img style="margin-right: 10px" height="100" width="100" align="left"/>' +
+ 'Type the title here' +
+ '</h3>' +
+ '<p>' +
+ 'Type the text here' +
+ '</p>'
+ },
+ {
+ title: 'Strange Template',
+ image: 'template2.gif',
+ description: 'A template that defines two colums, each one with a title, and some text.',
+ html: '<table cellspacing="0" cellpadding="0" style="width:100%" border="0">' +
+ '<tr>' +
+ '<td style="width:50%">' +
+ '<h3>Title 1</h3>' +
+ '</td>' +
+ '<td></td>' +
+ '<td style="width:50%">' +
+ '<h3>Title 2</h3>' +
+ '</td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td>' +
+ 'Text 1' +
+ '</td>' +
+ '<td></td>' +
+ '<td>' +
+ 'Text 2' +
+ '</td>' +
+ '</tr>' +
+ '</table>' +
+ '<p>' +
+ 'More text goes here.' +
+ '</p>'
+ },
+ {
+ title: 'Text and Table',
+ image: 'template3.gif',
+ description: 'A title with some text and a table.',
+ html: '<div style="width: 80%">' +
+ '<h3>' +
+ 'Title goes here' +
+ '</h3>' +
+ '<table style="width:150px;float: right" cellspacing="0" cellpadding="0" border="1">' +
+ '<caption style="border:solid 1px black">' +
+ '<strong>Table title</strong>' +
+ '</caption>' +
+ '</tr>' +
+ '<tr>' +
+ '<td> </td>' +
+ '<td> </td>' +
+ '<td> </td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td> </td>' +
+ '<td> </td>' +
+ '<td> </td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td> </td>' +
+ '<td> </td>' +
+ '<td> </td>' +
+ '</tr>' +
+ '</table>' +
+ '<p>' +
+ 'Type the text here' +
+ '</p>' +
+ '</div>'
+ }
+ ]
});
diff --git a/devel/third-party/ckeditor/plugins/templates/templates/images/template1.gif b/devel/third-party/ckeditor/plugins/templates/templates/images/template1.gif
new file mode 100644
index 0000000..efdabbe
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/templates/templates/images/template1.gif differ
diff --git a/devel/third-party/ckeditor/plugins/templates/templates/images/template2.gif b/devel/third-party/ckeditor/plugins/templates/templates/images/template2.gif
new file mode 100644
index 0000000..d1cebb3
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/templates/templates/images/template2.gif differ
diff --git a/devel/third-party/ckeditor/plugins/templates/templates/images/template3.gif b/devel/third-party/ckeditor/plugins/templates/templates/images/template3.gif
new file mode 100644
index 0000000..db41cb4
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/templates/templates/images/template3.gif differ
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/af.js b/devel/third-party/ckeditor/plugins/toolbar/lang/af.js
new file mode 100644
index 0000000..6de3a81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/af.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'af', {
+ toolbarCollapse: 'Verklein werkbalk',
+ toolbarExpand: 'Vergroot werkbalk',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ar.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ar.js
new file mode 100644
index 0000000..59f2dd6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ar.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ar', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/bg.js b/devel/third-party/ckeditor/plugins/toolbar/lang/bg.js
new file mode 100644
index 0000000..ceff5e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/bg.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'bg', {
+ toolbarCollapse: 'Свиване на ленÑаÑа Ñ Ð¸Ð½ÑÑÑÑменÑи',
+ toolbarExpand: 'РазÑиÑÑване на ленÑаÑа Ñ Ð¸Ð½ÑÑÑÑменÑи',
+ toolbarGroups: {
+ document: 'ÐокÑменÑ',
+ clipboard: 'Clipboard/Undo',
+ editing: 'ÐÑомÑна',
+ forms: 'ФоÑми',
+ basicstyles: 'Ðазови ÑÑилове',
+ paragraph: 'ÐаÑагÑаÑ',
+ links: 'ÐÑÑзки',
+ insert: 'ÐмÑкване',
+ styles: 'СÑилове',
+ colors: 'ЦвеÑове',
+ tools: 'ÐнÑÑÑÑменÑи'
+ },
+ toolbars: 'ÐенÑи Ñ Ð¸Ð½ÑÑÑÑменÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/bn.js b/devel/third-party/ckeditor/plugins/toolbar/lang/bn.js
new file mode 100644
index 0000000..435408f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/bn.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'bn', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/bs.js b/devel/third-party/ckeditor/plugins/toolbar/lang/bs.js
new file mode 100644
index 0000000..a3c05f5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/bs.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'bs', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ca.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ca.js
new file mode 100644
index 0000000..abf47df
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ca.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ca', {
+ toolbarCollapse: 'Redueix la barra d\'eines',
+ toolbarExpand: 'Amplia la barra d\'eines',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor de barra d\'eines'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/cs.js b/devel/third-party/ckeditor/plugins/toolbar/lang/cs.js
new file mode 100644
index 0000000..1e7d939
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/cs.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'cs', {
+ toolbarCollapse: 'Skrýt panel nástrojů',
+ toolbarExpand: 'Zobrazit panel nástrojů',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Schránka/ZpÄt',
+ editing: 'Ãpravy',
+ forms: 'FormuláÅe',
+ basicstyles: 'Základnà styly',
+ paragraph: 'Odstavec',
+ links: 'Odkazy',
+ insert: 'Vložit',
+ styles: 'Styly',
+ colors: 'Barvy',
+ tools: 'Nástroje'
+ },
+ toolbars: 'Panely nástrojů editoru'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/cy.js b/devel/third-party/ckeditor/plugins/toolbar/lang/cy.js
new file mode 100644
index 0000000..e999e50
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/cy.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'cy', {
+ toolbarCollapse: 'Cyfangu\'r Bar Offer',
+ toolbarExpand: 'Ehangu\'r Bar Offer',
+ toolbarGroups: {
+ document: 'Dogfen',
+ clipboard: 'Clipfwrdd/Dadwneud',
+ editing: 'Golygu',
+ forms: 'Ffurflenni',
+ basicstyles: 'Arddulliau Sylfaenol',
+ paragraph: 'Paragraff',
+ links: 'Dolenni',
+ insert: 'Mewnosod',
+ styles: 'Arddulliau',
+ colors: 'Lliwiau',
+ tools: 'Offer'
+ },
+ toolbars: 'Bariau offer golygydd'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/da.js b/devel/third-party/ckeditor/plugins/toolbar/lang/da.js
new file mode 100644
index 0000000..39a7b29
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/da.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'da', {
+ toolbarCollapse: 'Sammenklap værktøjslinje',
+ toolbarExpand: 'Udvid værktøjslinje',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Udklipsholder/Fortryd',
+ editing: 'Redigering',
+ forms: 'Formularer',
+ basicstyles: 'Basis styles',
+ paragraph: 'Paragraf',
+ links: 'Links',
+ insert: 'Indsæt',
+ styles: 'Typografier',
+ colors: 'Farver',
+ tools: 'Værktøjer'
+ },
+ toolbars: 'Editors værktøjslinjer'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/de.js b/devel/third-party/ckeditor/plugins/toolbar/lang/de.js
new file mode 100644
index 0000000..cb2acc6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/de.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'de', {
+ toolbarCollapse: 'Symbolleiste einklappen',
+ toolbarExpand: 'Symbolleiste ausklappen',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Zwischenablage/Rückgängig',
+ editing: 'Editieren',
+ forms: 'Formularen',
+ basicstyles: 'Grundstile',
+ paragraph: 'Absatz',
+ links: 'Links',
+ insert: 'Einfügen',
+ styles: 'Stile',
+ colors: 'Farben',
+ tools: 'Werkzeuge'
+ },
+ toolbars: 'Editor Symbolleisten'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/el.js b/devel/third-party/ckeditor/plugins/toolbar/lang/el.js
new file mode 100644
index 0000000..69784ca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/el.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'el', {
+ toolbarCollapse: 'ΣÏμÏÏηξη ÎÏγαλειοθήκηÏ',
+ toolbarExpand: 'ÎνάÏÏÏ
ξη ÎÏγαλειοθήκηÏ',
+ toolbarGroups: {
+ document: 'ÎγγÏαÏο',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Σε εÏεξεÏγαÏία',
+ forms: 'ΦÏÏμεÏ',
+ basicstyles: 'ÎαÏικά ÏÏÏ
λ',
+ paragraph: 'ΠαÏάγÏαÏοÏ',
+ links: 'ΣÏ
νδÎÏμοι',
+ insert: 'ÎιÏαγÏγή',
+ styles: 'ΣÏÏ
λ',
+ colors: 'ΧÏÏμαÏα',
+ tools: 'ÎÏγαλεία'
+ },
+ toolbars: 'ÎÏÎ³Î±Î»ÎµÎ¹Î¿Î¸Î®ÎºÎµÏ ÎÏεξεÏγαÏÏή'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/en-au.js b/devel/third-party/ckeditor/plugins/toolbar/lang/en-au.js
new file mode 100644
index 0000000..e79b18e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/en-au.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'en-au', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/en-ca.js b/devel/third-party/ckeditor/plugins/toolbar/lang/en-ca.js
new file mode 100644
index 0000000..bff9479
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/en-ca.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'en-ca', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/en-gb.js b/devel/third-party/ckeditor/plugins/toolbar/lang/en-gb.js
new file mode 100644
index 0000000..d75c9bd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/en-gb.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'en-gb', {
+ toolbarCollapse: 'Collapse Toolbar',
+ toolbarExpand: 'Expand Toolbar',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/en.js b/devel/third-party/ckeditor/plugins/toolbar/lang/en.js
new file mode 100644
index 0000000..d3fba80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/en.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'en', {
+ toolbarCollapse: 'Collapse Toolbar',
+ toolbarExpand: 'Expand Toolbar',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/eo.js b/devel/third-party/ckeditor/plugins/toolbar/lang/eo.js
new file mode 100644
index 0000000..6a91f53
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/eo.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'eo', {
+ toolbarCollapse: 'Faldi la ilbreton',
+ toolbarExpand: 'Malfaldi la ilbreton',
+ toolbarGroups: {
+ document: 'Dokumento',
+ clipboard: 'PoÅo/Malfari',
+ editing: 'Redaktado',
+ forms: 'Formularoj',
+ basicstyles: 'Bazaj stiloj',
+ paragraph: 'Paragrafo',
+ links: 'Ligiloj',
+ insert: 'Enmeti',
+ styles: 'Stiloj',
+ colors: 'Koloroj',
+ tools: 'Iloj'
+ },
+ toolbars: 'Ilobretoj de la redaktilo'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/es.js b/devel/third-party/ckeditor/plugins/toolbar/lang/es.js
new file mode 100644
index 0000000..9b556da
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/es.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'es', {
+ toolbarCollapse: 'Contraer barra de herramientas',
+ toolbarExpand: 'Expandir barra de herramientas',
+ toolbarGroups: {
+ document: 'Documento',
+ clipboard: 'Portapapeles/Deshacer',
+ editing: 'Edición',
+ forms: 'Formularios',
+ basicstyles: 'Estilos básicos',
+ paragraph: 'Párrafo',
+ links: 'Enlaces',
+ insert: 'Insertar',
+ styles: 'Estilos',
+ colors: 'Colores',
+ tools: 'Herramientas'
+ },
+ toolbars: 'Barras de herramientas del editor'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/et.js b/devel/third-party/ckeditor/plugins/toolbar/lang/et.js
new file mode 100644
index 0000000..b218f12
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/et.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'et', {
+ toolbarCollapse: 'Tööriistariba peitmine',
+ toolbarExpand: 'Tööriistariba näitamine',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Lõikelaud/tagasivõtmine',
+ editing: 'Muutmine',
+ forms: 'Vormid',
+ basicstyles: 'Põhistiilid',
+ paragraph: 'Lõik',
+ links: 'Lingid',
+ insert: 'Sisesta',
+ styles: 'Stiilid',
+ colors: 'Värvid',
+ tools: 'Tööriistad'
+ },
+ toolbars: 'Redaktori tööriistaribad'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/eu.js b/devel/third-party/ckeditor/plugins/toolbar/lang/eu.js
new file mode 100644
index 0000000..e99df18
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/eu.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'eu', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/fa.js b/devel/third-party/ckeditor/plugins/toolbar/lang/fa.js
new file mode 100644
index 0000000..f786e0c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/fa.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'fa', {
+ toolbarCollapse: 'بست٠ÙÙØ§Ø± ابزار',
+ toolbarExpand: 'بازکرد٠ÙÙØ§Ø± ابزار',
+ toolbarGroups: {
+ document: 'Ø³ÙØ¯',
+ clipboard: 'ØØ§Ùظ٠Ù
ÙÙØª/برگشت',
+ editing: 'در ØØ§Ù ÙÛØ±Ø§ÛØ´',
+ forms: 'ÙØ±Ù
ÙØ§',
+ basicstyles: 'Ø´ÛÙÙÙØ§Û پاÛÙ',
+ paragraph: 'Ø¨ÙØ¯',
+ links: 'Ù¾ÛÙÙØ¯Ùا',
+ insert: 'ÙØ±Ùد',
+ styles: 'Ø´ÛÙÙÙØ§',
+ colors: 'رÙÚ¯ÙØ§',
+ tools: 'Ø§Ø¨Ø²Ø§Ø±ÙØ§'
+ },
+ toolbars: 'ÙÙØ§Ø± ابزار'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/fi.js b/devel/third-party/ckeditor/plugins/toolbar/lang/fi.js
new file mode 100644
index 0000000..8ab55bf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/fi.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'fi', {
+ toolbarCollapse: 'Kutista työkalupalkki',
+ toolbarExpand: 'Laajenna työkalupalkki',
+ toolbarGroups: {
+ document: 'Dokumentti',
+ clipboard: 'Leikepöytä/Kumoa',
+ editing: 'Muokkaus',
+ forms: 'Lomakkeet',
+ basicstyles: 'Perustyylit',
+ paragraph: 'Kappale',
+ links: 'Linkit',
+ insert: 'Lisää',
+ styles: 'Tyylit',
+ colors: 'Värit',
+ tools: 'Työkalut'
+ },
+ toolbars: 'Editorin työkalupalkit'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/fo.js b/devel/third-party/ckeditor/plugins/toolbar/lang/fo.js
new file mode 100644
index 0000000..a4830de
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/fo.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'fo', {
+ toolbarCollapse: 'Lat Toolbar aftur',
+ toolbarExpand: 'VÃs Toolbar',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editering',
+ forms: 'Formar',
+ basicstyles: 'Grundleggjandi Styles',
+ paragraph: 'Reglubrot',
+ links: 'Leinkjur',
+ insert: 'Set inn',
+ styles: 'Styles',
+ colors: 'Litir',
+ tools: 'Tól'
+ },
+ toolbars: 'Editor toolbars'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/toolbar/lang/fr-ca.js
new file mode 100644
index 0000000..95c9ac3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/fr-ca.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'fr-ca', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/fr.js b/devel/third-party/ckeditor/plugins/toolbar/lang/fr.js
new file mode 100644
index 0000000..5463a67
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/fr.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'fr', {
+ toolbarCollapse: 'Enrouler la barre d\'outils',
+ toolbarExpand: 'Dérouler la barre d\'outils',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Presse-papier/Défaire',
+ editing: 'Editer',
+ forms: 'Formulaires',
+ basicstyles: 'Styles de base',
+ paragraph: 'Paragraphe',
+ links: 'Liens',
+ insert: 'Insérer',
+ styles: 'Styles',
+ colors: 'Couleurs',
+ tools: 'Outils'
+ },
+ toolbars: 'Barre d\'outils de l\'éditeur'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/gl.js b/devel/third-party/ckeditor/plugins/toolbar/lang/gl.js
new file mode 100644
index 0000000..5351f88
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/gl.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'gl', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/gu.js b/devel/third-party/ckeditor/plugins/toolbar/lang/gu.js
new file mode 100644
index 0000000..07b0bfc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/gu.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'gu', {
+ toolbarCollapse: 'àªà«àª²àª¬àª¾àª° નાનà«àª àªàª°àªµà«àª',
+ toolbarExpand: 'àªà«àª²àª¬àª¾àª° મà«àªà«àª àªàª°àªµà«àª',
+ toolbarGroups: {
+ document: 'દસà«àª¤àª¾àªµà«àª',
+ clipboard: 'àªà«àª²àª¿àªªàª¬à«àª°à«àª¡/àª
ન',
+ editing: 'àªàª¡à«àª àªàª°àªµà«àª',
+ forms: 'ફà«àª°à«àª®',
+ basicstyles: 'બà«àª¸àª¿àªà« સà«àªàª¾àªàª²',
+ paragraph: 'ફàªàª°à«',
+ links: 'લà«àªàª',
+ insert: 'àªàª®à«àª°àªµà«àª',
+ styles: 'સà«àªàª¾àªàª²',
+ colors: 'રàªàª',
+ tools: 'àªà«àª²à«àª¸'
+ },
+ toolbars: 'àªàª¡à«àªàª° àªà«àª² બાર'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/he.js b/devel/third-party/ckeditor/plugins/toolbar/lang/he.js
new file mode 100644
index 0000000..02d77b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/he.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'he', {
+ toolbarCollapse: '×××¢×ר סר×× ××××',
+ toolbarExpand: '×ר××ת סר×× ××××',
+ toolbarGroups: {
+ document: '×ס××',
+ clipboard: '××× ××××ר×× (Clipboard)/×¦×¢× ××ר××',
+ editing: 'ער×××',
+ forms: '×פס××',
+ basicstyles: '×¢×צ×× ×ס×ס×',
+ paragraph: 'פסק×',
+ links: '×§×ש×ר××',
+ insert: '××× ×¡×',
+ styles: '×¢×צ××',
+ colors: 'צ××¢××',
+ tools: '××××'
+ },
+ toolbars: 'סר××× ×××× ×©× ××¢×ר×'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/hi.js b/devel/third-party/ckeditor/plugins/toolbar/lang/hi.js
new file mode 100644
index 0000000..30aeb7f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/hi.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'hi', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'à¤à¤¡à¤¿à¤à¤° à¤à¥à¤²à¤¬à¤¾à¤°'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/hr.js b/devel/third-party/ckeditor/plugins/toolbar/lang/hr.js
new file mode 100644
index 0000000..3da03ed
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/hr.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'hr', {
+ toolbarCollapse: 'Smanji alatnu traku',
+ toolbarExpand: 'Proširi alatnu traku',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'MeÄuspremnik/PoniÅ¡ti',
+ editing: 'UreÄivanje',
+ forms: 'Forme',
+ basicstyles: 'Osnovni stilovi',
+ paragraph: 'Paragraf',
+ links: 'Veze',
+ insert: 'Umetni',
+ styles: 'Stilovi',
+ colors: 'Boje',
+ tools: 'Alatke'
+ },
+ toolbars: 'Alatne trake ureÄivaÄa teksta'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/hu.js b/devel/third-party/ckeditor/plugins/toolbar/lang/hu.js
new file mode 100644
index 0000000..258fbde
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/hu.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'hu', {
+ toolbarCollapse: 'Eszköztár összecsukása',
+ toolbarExpand: 'Eszköztár szétnyitása',
+ toolbarGroups: {
+ document: 'Dokumentum',
+ clipboard: 'Vágólap/Visszavonás',
+ editing: 'Szerkesztés',
+ forms: 'Űrlapok',
+ basicstyles: 'AlapstÃlusok',
+ paragraph: 'Bekezdés',
+ links: 'Hivatkozások',
+ insert: 'Beszúrás',
+ styles: 'StÃlusok',
+ colors: 'SzÃnek',
+ tools: 'Eszközök'
+ },
+ toolbars: 'SzerkesztŠEszköztár'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/is.js b/devel/third-party/ckeditor/plugins/toolbar/lang/is.js
new file mode 100644
index 0000000..88b7b42
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/is.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'is', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/it.js b/devel/third-party/ckeditor/plugins/toolbar/lang/it.js
new file mode 100644
index 0000000..d176675
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/it.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'it', {
+ toolbarCollapse: 'Minimizza Toolbar',
+ toolbarExpand: 'Espandi Toolbar',
+ toolbarGroups: {
+ document: 'Documento',
+ clipboard: 'Copia negli appunti/Indietro',
+ editing: 'Modifica',
+ forms: 'Form',
+ basicstyles: 'Stili di base',
+ paragraph: 'Paragrafo',
+ links: 'Link',
+ insert: 'Inserisci',
+ styles: 'Stili',
+ colors: 'Colori',
+ tools: 'Strumenti'
+ },
+ toolbars: 'Editor toolbar'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ja.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ja.js
new file mode 100644
index 0000000..1a6ef78
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ja.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ja', {
+ toolbarCollapse: 'ãã¼ã«ãã¼ãéãã',
+ toolbarExpand: 'ãã¼ã«ãã¼ãéã',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ka.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ka.js
new file mode 100644
index 0000000..4b6961f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ka.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ka', {
+ toolbarCollapse: 'á®ááá¡áá¬á§ááá ááááá¡ á¨áá¬ááá',
+ toolbarExpand: 'á®ááá¡áá¬á§ááá ááááá¡ ááááá¬ááá',
+ toolbarGroups: {
+ document: 'áááá£áááá¢á',
+ clipboard: 'Clipboard/ááá£á¥áááá',
+ editing: 'á áááá¥á¢áá ááá',
+ forms: 'á¤áá áááá',
+ basicstyles: 'á«áá ááááá á¡á¢ááááá',
+ paragraph: 'áááááªá',
+ links: 'ááá£áááá',
+ insert: 'á©áá¡áá',
+ styles: 'á¡á¢ááááá',
+ colors: 'á¤áá ááá',
+ tools: 'á®ááá¡áá¬á§áááá'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/km.js b/devel/third-party/ckeditor/plugins/toolbar/lang/km.js
new file mode 100644
index 0000000..4fa1263
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/km.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'km', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ko.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ko.js
new file mode 100644
index 0000000..073cc75
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ko.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ko', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ku.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ku.js
new file mode 100644
index 0000000..0433b68
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ku.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ku', {
+ toolbarCollapse: 'شاردÙÛÙÛ ÙÛÚµÛ ØªÙÙڵاÙ
راز',
+ toolbarExpand: 'ÙÛØ´Ø§ÙداÙÛ ÙÛÚµÛ ØªÙÙڵاÙ
راز',
+ toolbarGroups: {
+ document: 'Ù¾ÙÚÙ',
+ clipboard: 'بÚÛÙ/Ù¾ÙÙÚکردÙÙÙÙ',
+ editing: 'ÚØ§Ú©Ø³Ø§Ø²Û',
+ forms: 'Ø¯Ø§ÚØ´ØªÙ',
+ basicstyles: 'Ø´ÛÙØ§Ø²Û بÙÚÛÙÙÛÛ',
+ paragraph: 'بÚÚ¯Ù',
+ links: 'Ø¨ÙØ³ØªÙر',
+ insert: 'خستÙÙ ÙØ§Ù',
+ styles: 'Ø´ÛÙØ§Ø²',
+ colors: 'ÚÙÙÚ¯ÙکاÙ',
+ tools: 'ئاÙ
رازÙکاÙ'
+ },
+ toolbars: 'تÙÙÚµØ§ÛØ±Ø§Ø²Û Ø¯ÛØ³Ú©Ø§Ø±ÛÚ©ÛØ±'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/lt.js b/devel/third-party/ckeditor/plugins/toolbar/lang/lt.js
new file mode 100644
index 0000000..1bc54a0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/lt.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'lt', {
+ toolbarCollapse: 'Apjungti įrankių juostÄ
',
+ toolbarExpand: 'IÅ¡plÄsti įrankių juostÄ
',
+ toolbarGroups: {
+ document: 'Dokumentas',
+ clipboard: 'AtmintinÄ/Atgal',
+ editing: 'Redagavimas',
+ forms: 'Formos',
+ basicstyles: 'Pagrindiniai stiliai',
+ paragraph: 'Paragrafas',
+ links: 'Nuorodos',
+ insert: 'Įterpti',
+ styles: 'Stiliai',
+ colors: 'Spalvos',
+ tools: 'Įrankiai'
+ },
+ toolbars: 'Redaktoriaus įrankiai'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/lv.js b/devel/third-party/ckeditor/plugins/toolbar/lang/lv.js
new file mode 100644
index 0000000..e2a67b1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/lv.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'lv', {
+ toolbarCollapse: 'AizvÄrt rÄ«kjoslu',
+ toolbarExpand: 'AtvÄrt rÄ«kjoslu',
+ toolbarGroups: {
+ document: 'Dokuments',
+ clipboard: 'Starpliktuve/Atcelt',
+ editing: 'Labošana',
+ forms: 'Formas',
+ basicstyles: 'Pamata stili',
+ paragraph: 'ParagrÄfs',
+ links: 'Saites',
+ insert: 'Ievietot',
+ styles: 'Stili',
+ colors: 'KrÄsas',
+ tools: 'Rīki'
+ },
+ toolbars: 'Redaktora rīkjoslas'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/mk.js b/devel/third-party/ckeditor/plugins/toolbar/lang/mk.js
new file mode 100644
index 0000000..1c244fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/mk.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'mk', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/mn.js b/devel/third-party/ckeditor/plugins/toolbar/lang/mn.js
new file mode 100644
index 0000000..3a6f981
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/mn.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'mn', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'ХолбооÑÑÑд',
+ insert: 'ÐÑÑÑлаÑ
',
+ styles: 'ÐагваÑÑÑд',
+ colors: 'Ðнгөнүүд',
+ tools: 'Ð¥ÑÑÑгÑлүүд'
+ },
+ toolbars: 'ÐолоÑÑÑÑлагÑийн Ñ
ÑÑÑгÑлийн ÑамбаÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ms.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ms.js
new file mode 100644
index 0000000..2b26771
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ms.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ms', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/nb.js b/devel/third-party/ckeditor/plugins/toolbar/lang/nb.js
new file mode 100644
index 0000000..0ec300f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/nb.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'nb', {
+ toolbarCollapse: 'Skjul verktøylinje',
+ toolbarExpand: 'Vis verktøylinje',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Utklippstavle/Angre',
+ editing: 'Redigering',
+ forms: 'Skjema',
+ basicstyles: 'Basisstiler',
+ paragraph: 'Avsnitt',
+ links: 'Lenker',
+ insert: 'Innsetting',
+ styles: 'Stiler',
+ colors: 'Farger',
+ tools: 'Verktøy'
+ },
+ toolbars: 'Verktøylinjer for editor'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/nl.js b/devel/third-party/ckeditor/plugins/toolbar/lang/nl.js
new file mode 100644
index 0000000..f5b06fe
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/nl.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'nl', {
+ toolbarCollapse: 'Werkbalk inklappen',
+ toolbarExpand: 'Werkbalk uitklappen',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Klembord/Ongedaan maken',
+ editing: 'Bewerken',
+ forms: 'Formulieren',
+ basicstyles: 'Basisstijlen',
+ paragraph: 'Paragraaf',
+ links: 'Links',
+ insert: 'Invoegen',
+ styles: 'Stijlen',
+ colors: 'Kleuren',
+ tools: 'Toepassingen'
+ },
+ toolbars: 'Werkbalken'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/no.js b/devel/third-party/ckeditor/plugins/toolbar/lang/no.js
new file mode 100644
index 0000000..8073ad2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/no.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'no', {
+ toolbarCollapse: 'Skjul verktøylinje',
+ toolbarExpand: 'Vis verktøylinje',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Utklippstavle/Angre',
+ editing: 'Redigering',
+ forms: 'Skjema',
+ basicstyles: 'Basisstiler',
+ paragraph: 'Avsnitt',
+ links: 'Lenker',
+ insert: 'Innsetting',
+ styles: 'Stiler',
+ colors: 'Farger',
+ tools: 'Verktøy'
+ },
+ toolbars: 'Verktøylinjer for editor'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/pl.js b/devel/third-party/ckeditor/plugins/toolbar/lang/pl.js
new file mode 100644
index 0000000..825247e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/pl.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'pl', {
+ toolbarCollapse: 'ZwiÅ pasek narzÄdzi',
+ toolbarExpand: 'RozwiÅ pasek narzÄdzi',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Schowek/Wstecz',
+ editing: 'Edycja',
+ forms: 'Formularze',
+ basicstyles: 'Style podstawowe',
+ paragraph: 'Akapit',
+ links: 'HiperÅÄ
cza',
+ insert: 'Wstawianie',
+ styles: 'Style',
+ colors: 'Kolory',
+ tools: 'NarzÄdzia'
+ },
+ toolbars: 'Paski narzÄdzi edytora'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/pt-br.js b/devel/third-party/ckeditor/plugins/toolbar/lang/pt-br.js
new file mode 100644
index 0000000..424e637
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/pt-br.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'pt-br', {
+ toolbarCollapse: 'Diminuir Barra de Ferramentas',
+ toolbarExpand: 'Aumentar Barra de Ferramentas',
+ toolbarGroups: {
+ document: 'Documento',
+ clipboard: 'Clipboard/Desfazer',
+ editing: 'Edição',
+ forms: 'Formulários',
+ basicstyles: 'Estilos Básicos',
+ paragraph: 'Paragrafo',
+ links: 'Links',
+ insert: 'Inserir',
+ styles: 'Estilos',
+ colors: 'Cores',
+ tools: 'Ferramentas'
+ },
+ toolbars: 'Barra de Ferramentas do Editor'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/pt.js b/devel/third-party/ckeditor/plugins/toolbar/lang/pt.js
new file mode 100644
index 0000000..0216314
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/pt.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'pt', {
+ toolbarCollapse: 'Colapsar Barra',
+ toolbarExpand: 'Expandir Barra',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor de barras de ferramentas'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ro.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ro.js
new file mode 100644
index 0000000..4940d89
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ro.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ro', {
+ toolbarCollapse: 'MicÈoreazÄ Bara',
+ toolbarExpand: 'MÄreÈte Bara',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'EditeazÄ bara de unelte'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ru.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ru.js
new file mode 100644
index 0000000..ee19aa0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ru.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ru', {
+ toolbarCollapse: 'СвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',
+ toolbarExpand: 'РазвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',
+ toolbarGroups: {
+ document: 'ÐокÑменÑ',
+ clipboard: 'ÐÑÑÐµÑ Ð¾Ð±Ð¼ÐµÐ½Ð° / ÐÑмена дейÑÑвий',
+ editing: 'ÐоÑÑекÑиÑовка',
+ forms: 'ФоÑмÑ',
+ basicstyles: 'ÐÑоÑÑÑе ÑÑили',
+ paragraph: 'ÐбзаÑ',
+ links: 'СÑÑлки',
+ insert: 'ÐÑÑавка',
+ styles: 'СÑили',
+ colors: 'ЦвеÑа',
+ tools: 'ÐнÑÑÑÑменÑÑ'
+ },
+ toolbars: 'Ðанели инÑÑÑÑменÑов ÑедакÑоÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/sk.js b/devel/third-party/ckeditor/plugins/toolbar/lang/sk.js
new file mode 100644
index 0000000..79d0b3a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/sk.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'sk', {
+ toolbarCollapse: 'Zbaliť lištu nástrojov',
+ toolbarExpand: 'Rozbaliť lištu nástrojov',
+ toolbarGroups: {
+ document: 'Dokument',
+ clipboard: 'Schránka pre kopÃrovanie/Späť',
+ editing: 'Upravovanie',
+ forms: 'Formuláre',
+ basicstyles: 'Základné štýly',
+ paragraph: 'Odstavec',
+ links: 'Odkazy',
+ insert: 'Vložiť',
+ styles: 'Štýly',
+ colors: 'Farby',
+ tools: 'Nástroje'
+ },
+ toolbars: 'Lišty nástrojov editora'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/sl.js b/devel/third-party/ckeditor/plugins/toolbar/lang/sl.js
new file mode 100644
index 0000000..c9ed4d1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/sl.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'sl', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/toolbar/lang/sr-latn.js
new file mode 100644
index 0000000..ba29e40
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/sr-latn.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'sr-latn', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/sr.js b/devel/third-party/ckeditor/plugins/toolbar/lang/sr.js
new file mode 100644
index 0000000..64c1410
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/sr.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'sr', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/sv.js b/devel/third-party/ckeditor/plugins/toolbar/lang/sv.js
new file mode 100644
index 0000000..661bbf7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/sv.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'sv', {
+ toolbarCollapse: 'Dölj verktygsfält',
+ toolbarExpand: 'Visa verktygsfält',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Redigera verktygsfält'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/th.js b/devel/third-party/ckeditor/plugins/toolbar/lang/th.js
new file mode 100644
index 0000000..c0cece5
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/th.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'th', {
+ toolbarCollapse: 'Collapse Toolbar', // MISSING
+ toolbarExpand: 'Expand Toolbar', // MISSING
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: 'Editor toolbars' // MISSING
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/tr.js b/devel/third-party/ckeditor/plugins/toolbar/lang/tr.js
new file mode 100644
index 0000000..9d38708
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/tr.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'tr', {
+ toolbarCollapse: 'Araç çubuklarını topla',
+ toolbarExpand: 'Araç çubuklarını aç',
+ toolbarGroups: {
+ document: 'Belge',
+ clipboard: 'Pano/Geri al',
+ editing: 'Düzenleme',
+ forms: 'Formlar',
+ basicstyles: 'Temel Stiller',
+ paragraph: 'Paragraf',
+ links: 'BaÄlantılar',
+ insert: 'Ekle',
+ styles: 'Stiller',
+ colors: 'Renkler',
+ tools: 'Araçlar'
+ },
+ toolbars: 'Araç çubukları Editörü'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/ug.js b/devel/third-party/ckeditor/plugins/toolbar/lang/ug.js
new file mode 100644
index 0000000..877684c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/ug.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'ug', {
+ toolbarCollapse: 'ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§ÙÙÙ ÙØ§ØªÙا',
+ toolbarExpand: 'ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§ÙÙÙ ÙØ§Ù',
+ toolbarGroups: {
+ document: 'Ù¾ÛØªÛÙ',
+ clipboard: 'ÚØ§Ù¾Ùاش ØªØ§Ø®ØªÙØ³Ù/ÙÛÙÙÛØ§Ù',
+ editing: 'تÛÚ¾Ø±ÙØ±',
+ forms: 'Ø¬ÛØ¯ÛÛÙ',
+ basicstyles: 'ئاساسÙÙ Ø¦ÛØ³ÙÛØ¨',
+ paragraph: 'ئابزاس',
+ links: 'ئÛÙØ§ÙÙ
ا',
+ insert: 'ÙÙØ³ØªÛر',
+ styles: 'Ø¦ÛØ³ÙÛØ¨',
+ colors: 'رÛÚ',
+ tools: 'ÙÙØ±Ø§Ù'
+ },
+ toolbars: 'ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/uk.js b/devel/third-party/ckeditor/plugins/toolbar/lang/uk.js
new file mode 100644
index 0000000..17fcf2f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/uk.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'uk', {
+ toolbarCollapse: 'ÐгоÑнÑÑи Ð¿Ð°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв',
+ toolbarExpand: 'РозгоÑнÑÑи Ð¿Ð°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв',
+ toolbarGroups: {
+ document: 'ÐокÑменÑ',
+ clipboard: 'ÐÑÑÐµÑ Ð¾Ð±Ð¼ÑÐ½Ñ / СкаÑÑваÑи',
+ editing: 'РедагÑваннÑ',
+ forms: 'ФоÑми',
+ basicstyles: 'ÐÑновний СÑилÑ',
+ paragraph: 'ÐаÑагÑаÑ',
+ links: 'ÐоÑиланнÑ',
+ insert: 'ÐÑÑавиÑи',
+ styles: 'СÑилÑ',
+ colors: 'ÐолÑоÑи',
+ tools: 'ÐнÑÑÑÑменÑи'
+ },
+ toolbars: 'ÐÐ°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв ÑедакÑоÑа'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/vi.js b/devel/third-party/ckeditor/plugins/toolbar/lang/vi.js
new file mode 100644
index 0000000..6ca867c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/vi.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'vi', {
+ toolbarCollapse: 'Thu gá»n thanh công cụ',
+ toolbarExpand: 'Má» rá»ng thnah công cụ',
+ toolbarGroups: {
+ document: 'Tà i liá»u',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Chá»nh sá»a',
+ forms: 'Bảng biá»u',
+ basicstyles: 'Kiá»u cÆ¡ bản',
+ paragraph: 'Äoạn',
+ links: 'Liên kết',
+ insert: 'Chèn',
+ styles: 'Kiá»u',
+ colors: 'Mà u sắc',
+ tools: 'Công cụ'
+ },
+ toolbars: 'Thanh công cụ'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/toolbar/lang/zh-cn.js
new file mode 100644
index 0000000..916c5cf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/zh-cn.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'zh-cn', {
+ toolbarCollapse: 'æå å·¥å
·æ ',
+ toolbarExpand: 'å±å¼å·¥å
·æ ',
+ toolbarGroups: {
+ document: 'ææ¡£',
+ clipboard: 'åªè´´æ¿/æ¤é',
+ editing: 'ç¼è¾',
+ forms: '表å',
+ basicstyles: 'åºæ¬æ ¼å¼',
+ paragraph: '段è½',
+ links: '龿¥',
+ insert: 'æå
¥',
+ styles: 'æ ·å¼',
+ colors: 'é¢è²',
+ tools: 'å·¥å
·'
+ },
+ toolbars: 'å·¥å
·æ '
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/lang/zh.js b/devel/third-party/ckeditor/plugins/toolbar/lang/zh.js
new file mode 100644
index 0000000..3837688
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/lang/zh.js
@@ -0,0 +1,22 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'toolbar', 'zh', {
+ toolbarCollapse: 'æå å·¥å
·æ ',
+ toolbarExpand: 'å±å¼å·¥å
·æ ',
+ toolbarGroups: {
+ document: 'Document',
+ clipboard: 'Clipboard/Undo',
+ editing: 'Editing',
+ forms: 'Forms',
+ basicstyles: 'Basic Styles',
+ paragraph: 'Paragraph',
+ links: 'Links',
+ insert: 'Insert',
+ styles: 'Styles',
+ colors: 'Colors',
+ tools: 'Tools'
+ },
+ toolbars: '編輯å¨å·¥å
·æ¬'
+});
diff --git a/devel/third-party/ckeditor/plugins/toolbar/plugin.js b/devel/third-party/ckeditor/plugins/toolbar/plugin.js
index 5287752..e8570b4 100644
--- a/devel/third-party/ckeditor/plugins/toolbar/plugin.js
+++ b/devel/third-party/ckeditor/plugins/toolbar/plugin.js
@@ -1,29 +1,23 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "toolbar" plugin. Renders the default toolbar interface in
* the editor.
*/
-(function()
-{
- var toolbox = function()
- {
- this.toolbars = [];
- this.focusCommandExecuted = false;
- };
+(function() {
+ var toolbox = function() {
+ this.toolbars = [];
+ this.focusCommandExecuted = false;
+ };
- toolbox.prototype.focus = function()
- {
- for ( var t = 0, toolbar ; toolbar = this.toolbars[ t++ ] ; )
- {
- for ( var i = 0, item ; item = toolbar.items[ i++ ] ; )
- {
- if ( item.focus )
- {
+ toolbox.prototype.focus = function() {
+ for ( var t = 0, toolbar; toolbar = this.toolbars[ t++ ]; ) {
+ for ( var i = 0, item; item = toolbar.items[ i++ ]; ) {
+ if ( item.focus ) {
item.focus();
return;
}
@@ -31,21 +25,21 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
};
- var commands =
- {
- toolbarFocus :
- {
- modes : { wysiwyg : 1, source : 1 },
+ var commands = {
+ toolbarFocus: {
+ modes: { wysiwyg:1,source:1 },
+ readOnly: 1,
- exec : function( editor )
- {
- if ( editor.toolbox )
- {
+ exec: function( editor ) {
+ if ( editor.toolbox ) {
editor.toolbox.focusCommandExecuted = true;
- // Make the first button focus accessible. (#3417)
- if ( CKEDITOR.env.ie )
- setTimeout( function(){ editor.toolbox.focus(); }, 100 );
+ // Make the first button focus accessible for IE. (#3417)
+ // Adobe AIR instead need while of delay.
+ if ( CKEDITOR.env.ie || CKEDITOR.env.air )
+ setTimeout( function() {
+ editor.toolbox.focus();
+ }, 100 );
else
editor.toolbox.focus();
}
@@ -53,200 +47,222 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
};
- CKEDITOR.plugins.add( 'toolbar',
- {
- init : function( editor )
- {
- var itemKeystroke = function( item, keystroke )
- {
- var next, nextToolGroup, groupItemsCount;
- var rtl = editor.lang.dir == 'rtl';
+ CKEDITOR.plugins.add( 'toolbar', {
+ requires: 'button',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
- switch ( keystroke )
- {
- case rtl ? 37 : 39 : // RIGHT-ARROW
- case 9 : // TAB
- do
- {
- // Look for the next item in the toolbar.
- next = item.next;
-
- if ( !next )
- {
- nextToolGroup = item.toolbar.next;
- groupItemsCount = nextToolGroup && nextToolGroup.items.length;
-
- // Bypass the empty toolgroups.
- while ( groupItemsCount === 0 )
- {
- nextToolGroup = nextToolGroup.next;
- groupItemsCount = nextToolGroup && nextToolGroup.items.length;
- }
+ init: function( editor ) {
+ var endFlag;
- if ( nextToolGroup )
- next = nextToolGroup.items[ 0 ];
- }
+ var itemKeystroke = function( item, keystroke ) {
+ var next, toolbar;
+ var rtl = editor.lang.dir == 'rtl',
+ toolbarGroupCycling = editor.config.toolbarGroupCycling;
- item = next;
- }
- while ( item && !item.focus )
-
- // If available, just focus it, otherwise focus the
- // first one.
- if ( item )
- item.focus();
- else
- editor.toolbox.focus();
-
- return false;
-
- case rtl ? 39 : 37 : // LEFT-ARROW
- case CKEDITOR.SHIFT + 9 : // SHIFT + TAB
- do
- {
- // Look for the previous item in the toolbar.
- next = item.previous;
-
- if ( !next )
- {
- nextToolGroup = item.toolbar.previous;
- groupItemsCount = nextToolGroup && nextToolGroup.items.length;
-
- // Bypass the empty toolgroups.
- while ( groupItemsCount === 0 )
- {
- nextToolGroup = nextToolGroup.previous;
- groupItemsCount = nextToolGroup && nextToolGroup.items.length;
+ toolbarGroupCycling = toolbarGroupCycling === undefined || toolbarGroupCycling;
+
+ switch ( keystroke ) {
+ case 9: // TAB
+ case CKEDITOR.SHIFT + 9: // SHIFT + TAB
+ // Cycle through the toolbars, starting from the one
+ // closest to the current item.
+ while ( !toolbar || !toolbar.items.length ) {
+ toolbar = keystroke == 9 ? ( ( toolbar ? toolbar.next : item.toolbar.next ) || editor.toolbox.toolbars[ 0 ] ) : ( ( toolbar ? toolbar.previous : item.toolbar.previous ) || editor.toolbox.toolbars[ editor.toolbox.toolbars.length - 1 ] );
+
+ // Look for the first item that accepts focus.
+ if ( toolbar.items.length ) {
+ item = toolbar.items[ endFlag ? ( toolbar.items.length - 1 ) : 0 ];
+ while ( item && !item.focus ) {
+ item = endFlag ? item.previous : item.next;
+
+ if ( !item )
+ toolbar = 0;
+ }
}
+ }
+
+ if ( item )
+ item.focus();
+
+ return false;
- if ( nextToolGroup )
- next = nextToolGroup.items[ groupItemsCount - 1 ];
+ case rtl ? 37:
+ 39 : // RIGHT-ARROW
+ case 40: // DOWN-ARROW
+ next = item;
+ do {
+ // Look for the next item in the toolbar.
+ next = next.next;
+
+ // If it's the last item, cycle to the first one.
+ if ( !next && toolbarGroupCycling ) next = item.toolbar.items[ 0 ];
+ }
+ while ( next && !next.focus )
+
+ // If available, just focus it, otherwise focus the
+ // first one.
+ if ( next )
+ next.focus();
+ else
+ // Send a TAB.
+ itemKeystroke( item, 9 );
+
+ return false;
+
+ case rtl ? 39:
+ 37 : // LEFT-ARROW
+ case 38: // UP-ARROW
+ next = item;
+ do {
+ // Look for the previous item in the toolbar.
+ next = next.previous;
+
+ // If it's the first item, cycle to the last one.
+ if ( !next && toolbarGroupCycling ) next = item.toolbar.items[ item.toolbar.items.length - 1 ];
}
+ while ( next && !next.focus )
+
+ // If available, just focus it, otherwise focus the
+ // last one.
+ if ( next )
+ next.focus();
+ else {
+ endFlag = 1;
+ // Send a SHIFT + TAB.
+ itemKeystroke( item, CKEDITOR.SHIFT + 9 );
+ endFlag = 0;
+ }
+
+ return false;
- item = next;
+ case 27: // ESC
+ editor.focus();
+ return false;
+
+ case 13: // ENTER
+ case 32: // SPACE
+ item.execute();
+ return false;
+ }
+ return true;
+ };
+
+ editor.on( 'uiSpace', function( event ) {
+ if ( event.data.space == editor.config.toolbarLocation ) {
+ editor.toolbox = new toolbox();
+
+ var labelId = CKEDITOR.tools.getNextId(),
+ removeButtons = editor.config.removeButtons;
+
+ removeButtons = removeButtons && removeButtons.split( ',' );
+
+ var output = [
+ '<span id="', labelId, '" class="cke_voice_label">', editor.lang.toolbar.toolbars, '</span>',
+ '<span id="' + editor.ui.spaceId( 'toolbox' ) + '" class="cke_toolbox" role="group" aria-labelledby="', labelId, '" onmousedown="return false;">' ];
+
+ var expanded = editor.config.toolbarStartupExpanded !== false,
+ groupStarted, pendingSeparator;
+
+ // If the toolbar collapser will be available, we'll have
+ // an additional container for all toolbars.
+ if ( editor.config.toolbarCanCollapse && editor.elementMode != CKEDITOR.ELEMENT_MODE_INLINE )
+ output.push( '<span class="cke_toolbox_main"' + ( expanded ? '>' : ' style="display:none">' ) );
+
+ var toolbars = editor.toolbox.toolbars,
+ toolbar = getToolbarConfig( editor );
+
+ for ( var r = 0; r < toolbar.length; r++ ) {
+ var toolbarId,
+ toolbarObj = 0,
+ toolbarName,
+ row = toolbar[ r ],
+ items;
+
+ // It's better to check if the row object is really
+ // available because it's a common mistake to leave
+ // an extra comma in the toolbar definition
+ // settings, which leads on the editor not loading
+ // at all in IE. (#3983)
+ if ( !row )
+ continue;
+
+ if ( groupStarted ) {
+ output.push( '</span>' );
+ groupStarted = 0;
+ pendingSeparator = 0;
}
- while ( item && !item.focus )
-
- // If available, just focus it, otherwise focus the
- // last one.
- if ( item )
- item.focus();
- else
- {
- var lastToolbarItems = editor.toolbox.toolbars[ editor.toolbox.toolbars.length - 1 ].items;
- lastToolbarItems[ lastToolbarItems.length - 1 ].focus();
+
+ if ( row === '/' ) {
+ output.push( '<span class="cke_toolbar_break"></span>' );
+ continue;
}
- return false;
+ items = row.items || row;
- case 27 : // ESC
- editor.focus();
- return false;
+ // Create all items defined for this toolbar.
+ for ( var i = 0; i < items.length; i++ ) {
+ var item,
+ itemName = items[ i ],
+ canGroup;
- case 13 : // ENTER
- case 32 : // SPACE
- item.execute();
- return false;
- }
- return true;
- };
-
- editor.on( 'themeSpace', function( event )
- {
- if ( event.data.space == editor.config.toolbarLocation )
- {
- editor.toolbox = new toolbox();
-
- var labelId = 'cke_' + CKEDITOR.tools.getNextNumber();
-
- var output = [ '<div class="cke_toolbox" role="toolbar" aria-labelledby="', labelId, '"' ],
- expanded = editor.config.toolbarStartupExpanded !== false,
- groupStarted;
-
- output.push( expanded ? '>' : ' style="display:none">' );
-
- // Sends the ARIA label.
- output.push( '<span id="', labelId, '" class="cke_voice_label">', editor.lang.toolbar, '</span>' );
-
- var toolbars = editor.toolbox.toolbars,
- toolbar =
- ( editor.config.toolbar instanceof Array ) ?
- editor.config.toolbar
- :
- editor.config[ 'toolbar_' + editor.config.toolbar ];
-
- for ( var r = 0 ; r < toolbar.length ; r++ )
- {
- var row = toolbar[ r ];
-
- // It's better to check if the row object is really
- // available because it's a common mistake to leave
- // an extra comma in the toolbar definition
- // settings, which leads on the editor not loading
- // at all in IE. (#3983)
- if ( !row )
+ // Ignore items that are configured to be removed.
+ if ( removeButtons && CKEDITOR.tools.indexOf( removeButtons, itemName ) >= 0 )
continue;
- var toolbarId = 'cke_' + CKEDITOR.tools.getNextNumber(),
- toolbarObj = { id : toolbarId, items : [] };
+ item = editor.ui.create( itemName );
- if ( groupStarted )
- {
- output.push( '</div>' );
- groupStarted = 0;
- }
+ if ( item ) {
+ if ( item.type == CKEDITOR.UI_SEPARATOR ) {
+ // Do not add the separator immediately. Just save
+ // it be included if we already have something in
+ // the toolbar and if a new item is to be added (later).
+ pendingSeparator = groupStarted && item;
+ continue;
+ }
- if ( row === '/' )
- {
- output.push( '<div class="cke_break"></div>' );
- continue;
- }
+ canGroup = item.canGroup !== false;
- output.push( '<span id="', toolbarId, '" class="cke_toolbar" role="presentation"><span class="cke_toolbar_start"></span>' );
+ // Initialize the toolbar first, if needed.
+ if ( !toolbarObj ) {
+ // Create the basic toolbar object.
+ toolbarId = CKEDITOR.tools.getNextId();
+ toolbarObj = { id: toolbarId, items: [] };
+ toolbarName = row.name && ( editor.lang.toolbar.toolbarGroups[ row.name ] || row.name );
- // Add the toolbar to the "editor.toolbox.toolbars"
- // array.
- var index = toolbars.push( toolbarObj ) - 1;
+ // Output the toolbar opener.
+ output.push( '<span id="', toolbarId, '" class="cke_toolbar"', ( toolbarName ? ' aria-labelledby="' + toolbarId + '_label"' : '' ), ' role="toolbar">' );
- // Create the next/previous reference.
- if ( index > 0 )
- {
- toolbarObj.previous = toolbars[ index - 1 ];
- toolbarObj.previous.next = toolbarObj;
- }
+ // If a toolbar name is available, send the voice label.
+ toolbarName && output.push( '<span id="', toolbarId, '_label" class="cke_voice_label">', toolbarName, '</span>' );
- // Create all items defined for this toolbar.
- for ( var i = 0 ; i < row.length ; i++ )
- {
- var item,
- itemName = row[ i ];
-
- if ( itemName == '-' )
- item = CKEDITOR.ui.separator;
- else
- item = editor.ui.create( itemName );
-
- if ( item )
- {
- if ( item.canGroup )
- {
- if ( !groupStarted )
- {
- output.push( '<span class="cke_toolgroup" role="presentation">' );
- groupStarted = 1;
- }
+ output.push( '<span class="cke_toolbar_start"></span>' );
+
+ // Add the toolbar to the "editor.toolbox.toolbars"
+ // array.
+ var index = toolbars.push( toolbarObj ) - 1;
+
+ // Create the next/previous reference.
+ if ( index > 0 ) {
+ toolbarObj.previous = toolbars[ index - 1 ];
+ toolbarObj.previous.next = toolbarObj;
}
- else if ( groupStarted )
- {
- output.push( '</span>' );
- groupStarted = 0;
+ }
+
+ if ( canGroup ) {
+ if ( !groupStarted ) {
+ output.push( '<span class="cke_toolgroup" role="presentation">' );
+ groupStarted = 1;
}
+ } else if ( groupStarted ) {
+ output.push( '</span>' );
+ groupStarted = 0;
+ }
+ function addItem( item ) {
var itemObj = item.render( editor, output );
index = toolbarObj.items.push( itemObj ) - 1;
- if ( index > 0 )
- {
+ if ( index > 0 ) {
itemObj.previous = toolbarObj.items[ index - 1 ];
itemObj.previous.next = itemObj;
}
@@ -254,228 +270,466 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
itemObj.toolbar = toolbarObj;
itemObj.onkey = itemKeystroke;
- /*
- * Fix for #3052:
- * Prevent JAWS from focusing the toolbar after document load.
- */
- itemObj.onfocus = function()
- {
+ // Fix for #3052:
+ // Prevent JAWS from focusing the toolbar after document load.
+ itemObj.onfocus = function() {
if ( !editor.toolbox.focusCommandExecuted )
editor.focus();
};
}
- }
- if ( groupStarted )
- {
- output.push( '</span>' );
- groupStarted = 0;
+ if ( pendingSeparator ) {
+ addItem( pendingSeparator );
+ pendingSeparator = 0;
+ }
+
+ addItem( item );
}
+ }
+
+ if ( groupStarted ) {
+ output.push( '</span>' );
+ groupStarted = 0;
+ pendingSeparator = 0;
+ }
+ if ( toolbarObj )
output.push( '<span class="cke_toolbar_end"></span></span>' );
+ }
+
+ if ( editor.config.toolbarCanCollapse )
+ output.push( '</span>' );
+
+ // Not toolbar collapser for inline mode.
+ if ( editor.config.toolbarCanCollapse && editor.elementMode != CKEDITOR.ELEMENT_MODE_INLINE ) {
+ var collapserFn = CKEDITOR.tools.addFunction( function() {
+ editor.execCommand( 'toolbarCollapse' );
+ });
+
+ editor.on( 'destroy', function() {
+ CKEDITOR.tools.removeFunction( collapserFn );
+ });
+
+ editor.addCommand( 'toolbarCollapse', {
+ readOnly: 1,
+ exec: function( editor ) {
+ var collapser = editor.ui.space( 'toolbar_collapser' ),
+ toolbox = collapser.getPrevious(),
+ contents = editor.ui.space( 'contents' ),
+ toolboxContainer = toolbox.getParent(),
+ contentHeight = parseInt( contents.$.style.height, 10 ),
+ previousHeight = toolboxContainer.$.offsetHeight,
+ minClass = 'cke_toolbox_collapser_min',
+ collapsed = collapser.hasClass( minClass );
+
+ if ( !collapsed ) {
+ toolbox.hide();
+ collapser.addClass( minClass );
+ collapser.setAttribute( 'title', editor.lang.toolbar.toolbarExpand );
+ } else {
+ toolbox.show();
+ collapser.removeClass( minClass );
+ collapser.setAttribute( 'title', editor.lang.toolbar.toolbarCollapse );
+ }
+
+ // Update collapser symbol.
+ collapser.getFirst().setText( collapsed ? '\u25B2' : // BLACK UP-POINTING TRIANGLE
+ '\u25C0' ); // BLACK LEFT-POINTING TRIANGLE
+
+ var dy = toolboxContainer.$.offsetHeight - previousHeight;
+ contents.setStyle( 'height', ( contentHeight - dy ) + 'px' );
+
+ editor.fire( 'resize' );
+ },
+
+ modes: { wysiwyg:1,source:1 }
+ });
+
+ editor.setKeystroke( CKEDITOR.ALT + ( CKEDITOR.env.ie || CKEDITOR.env.webkit ? 189 : 109 ) /*-*/, 'toolbarCollapse' );
+
+ output.push( '<a title="' + ( expanded ? editor.lang.toolbar.toolbarCollapse : editor.lang.toolbar.toolbarExpand )
+ + '" id="' + editor.ui.spaceId( 'toolbar_collapser' )
+ + '" tabIndex="-1" class="cke_toolbox_collapser' );
+
+ if ( !expanded )
+ output.push( ' cke_toolbox_collapser_min' );
+
+ output.push( '" onclick="CKEDITOR.tools.callFunction(' + collapserFn + ')">', '<span class="cke_arrow">▲</span>', // BLACK UP-POINTING TRIANGLE
+ '</a>' );
+ }
+
+ output.push( '</span>' );
+ event.data.html += output.join( '' );
+ }
+ });
+
+ editor.on( 'destroy', function() {
+
+ if ( this.toolbox )
+ {
+ var toolbars,
+ index = 0,
+ i, items, instance;
+ toolbars = this.toolbox.toolbars;
+ for ( ; index < toolbars.length; index++ ) {
+ items = toolbars[ index ].items;
+ for ( i = 0; i < items.length; i++ ) {
+ instance = items[ i ];
+ if ( instance.clickFn )
+ CKEDITOR.tools.removeFunction( instance.clickFn );
+ if ( instance.keyDownFn )
+ CKEDITOR.tools.removeFunction( instance.keyDownFn );
}
+ }
+ }
+ });
+
+ // Manage editor focus when navigating the toolbar.
+ editor.on( 'uiReady', function() {
+ var toolbox = editor.ui.space( 'toolbox' );
+ toolbox && editor.focusManager.add( toolbox, 1 );
+ });
- output.push( '</div>' );
-
- if ( editor.config.toolbarCanCollapse )
- {
- var collapserFn = CKEDITOR.tools.addFunction(
- function()
- {
- editor.execCommand( 'toolbarCollapse' );
- } );
-
- editor.on( 'destroy', function () {
- CKEDITOR.tools.removeFunction( collapserFn );
- } );
-
- var collapserId = 'cke_' + CKEDITOR.tools.getNextNumber();
-
- editor.addCommand( 'toolbarCollapse',
- {
- exec : function( editor )
- {
- var collapser = CKEDITOR.document.getById( collapserId );
- var toolbox = collapser.getPrevious();
- var contents = editor.getThemeSpace( 'contents' );
- var toolboxContainer = toolbox.getParent();
- var contentHeight = parseInt( contents.$.style.height, 10 );
- var previousHeight = toolboxContainer.$.offsetHeight;
- var collapsed = !toolbox.isVisible();
-
- if ( !collapsed )
- {
- toolbox.hide();
- collapser.addClass( 'cke_toolbox_collapser_min' );
- collapser.setAttribute( 'title', editor.lang.toolbarExpand );
- }
- else
- {
- toolbox.show();
- collapser.removeClass( 'cke_toolbox_collapser_min' );
- collapser.setAttribute( 'title', editor.lang.toolbarCollapse );
- }
-
- // Update collapser symbol.
- collapser.getFirst().setText( collapsed ?
- '\u25B2' : // BLACK UP-POINTING TRIANGLE
- '\u25C0' ); // BLACK LEFT-POINTING TRIANGLE
-
- var dy = toolboxContainer.$.offsetHeight - previousHeight;
- contents.setStyle( 'height', ( contentHeight - dy ) + 'px' );
-
- editor.fire( 'resize' );
- },
-
- modes : { wysiwyg : 1, source : 1 }
- } );
-
- output.push( '<a title="' + ( expanded ? editor.lang.toolbarCollapse : editor.lang.toolbarExpand )
- + '" id="' + collapserId + '" tabIndex="-1" class="cke_toolbox_collapser' );
-
- if ( !expanded )
- output.push( ' cke_toolbox_collapser_min' );
-
- output.push( '" onclick="CKEDITOR.tools.callFunction(' + collapserFn + ')">',
- '<span>▲</span>', // BLACK UP-POINTING TRIANGLE
- '</a>' );
+ editor.addCommand( 'toolbarFocus', commands.toolbarFocus );
+ editor.setKeystroke( CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' );
+
+ editor.ui.add( '-', CKEDITOR.UI_SEPARATOR, {} );
+ editor.ui.addHandler( CKEDITOR.UI_SEPARATOR, {
+ create: function() {
+ return {
+ render: function( editor, output ) {
+ output.push( '<span class="cke_toolbar_separator" role="separator"></span>' );
+ return {};
}
+ };
+ }
+ });
+ }
+ });
+
+ function getToolbarConfig( editor ) {
+ function buildToolbarConfig() {
+
+ // Object containing all toolbar groups used by ui items.
+ var lookup = getItemDefinedGroups();
+
+ // Take the base for the new toolbar, which is basically a toolbar
+ // definition without items.
+ var toolbar = CKEDITOR.tools.clone( editor.config.toolbarGroups ) || getPrivateToolbarGroups( editor );
+
+ // Fill the toolbar groups with the available ui items.
+ for ( var i = 0; i < toolbar.length; i++ ) {
+ var toolbarGroup = toolbar[ i ];
- event.data.html += output.join( '' );
+ // Skip toolbar break.
+ if ( toolbarGroup == '/' )
+ continue;
+ // Handle simply group name item.
+ else if ( typeof toolbarGroup == 'string' )
+ toolbarGroup = toolbar[ i ] = { name: toolbarGroup };
+
+ var items, subGroups = toolbarGroup.groups;
+
+ // Look for items that match sub groups.
+ if ( subGroups ) {
+ for ( var j = 0, sub; j < subGroups.length; j++ ) {
+ sub = subGroups[ j ];
+
+ // If any ui item is registered for this subgroup.
+ items = lookup[ sub ];
+ items && fillGroup( toolbarGroup, items );
}
+ }
+
+ // Add the main group items as well.
+ items = lookup[ toolbarGroup.name ];
+ items && fillGroup( toolbarGroup, items );
+ }
+
+ return toolbar;
+ }
+
+ // Returns an object containing all toolbar groups used by ui items.
+ function getItemDefinedGroups() {
+ var groups = {},
+ itemName, item, itemToolbar, group, order;
+
+ for ( itemName in editor.ui.items ) {
+ item = editor.ui.items[ itemName ];
+ itemToolbar = item.toolbar || 'others';
+ if ( itemToolbar ) {
+ // Break the toolbar property into its parts: "group_name[,order]".
+ itemToolbar = itemToolbar.split( ',' );
+ group = itemToolbar[ 0 ];
+ order = parseInt( itemToolbar[ 1 ] || -1, 10 );
+
+ // Initialize the group, if necessary.
+ groups[ group ] || ( groups[ group ] = [] );
+
+ // Push the data used to build the toolbar later.
+ groups[ group ].push( { name: itemName, order: order} );
+ }
+ }
+
+ // Put the items in the right order.
+ for ( group in groups ) {
+ groups[ group ] = groups[ group ].sort( function( a, b ) {
+ return a.order == b.order ? 0 :
+ b.order < 0 ? -1 :
+ a.order < 0 ? 1 :
+ a.order < b.order ? -1 :
+ 1;
});
+ }
- editor.addCommand( 'toolbarFocus', commands.toolbarFocus );
+ return groups;
}
- });
-})();
-/**
- * The UI element that renders a toolbar separator.
- * @type Object
- * @example
- */
-CKEDITOR.ui.separator =
-{
- render : function( editor, output )
- {
- output.push( '<span class="cke_separator" role="separator"></span>' );
- return {};
+ function fillGroup( toolbarGroup, uiItems ) {
+
+ if ( uiItems.length ) {
+ if ( toolbarGroup.items )
+ toolbarGroup.items.push( '-' );
+ else
+ toolbarGroup.items = [];
+
+ var item;
+ while ( ( item = uiItems.shift() ) )
+ toolbarGroup.items.push( item.name );
+ }
+ }
+
+ var toolbar = editor.config.toolbar;
+
+ // If it is a string, return the relative "toolbar_name" config.
+ if ( typeof toolbar == 'string' )
+ toolbar = editor.config[ 'toolbar_' + toolbar ];
+
+ // If toolbar hasn't been explicitly defined, build it based on the toolbarGroups.
+ return ( editor.toolbar = toolbar || buildToolbarConfig() );
}
-};
-/**
- * The "theme space" to which rendering the toolbar. For the default theme,
- * the recommended options are "top" and "bottom".
- * @type String
- * @default 'top'
- * @see CKEDITOR.config.theme
- * @example
- * config.toolbarLocation = 'bottom';
- */
-CKEDITOR.config.toolbarLocation = 'top';
+ /**
+ * Add toolbar group. See {@link CKEDITOR.config#toolbarGroups} for more details.
+ *
+ * **Note:** This method won't modify toolbar groups set explicitly by
+ * {@link CKEDITOR.config#toolbarGroups}. It will extend only default setting.
+ *
+ * @param {String} name Group name.
+ * @param {Number/String} previous Name of group after which this one
+ * should be added or `0` if this group should be the first one.
+ * @param {String} [subgroupOf] Name of parent group.
+ * @member CKEDITOR.ui
+ */
+ CKEDITOR.ui.prototype.addToolbarGroup = function( name, previous, subgroupOf ) {
+ // The toolbarGroups from the privates is the one we gonna use for automatic toolbar creation.
+ var toolbarGroups = getPrivateToolbarGroups( this.editor ),
+ atStart = previous === 0,
+ newGroup = { name: name };
+
+ if ( subgroupOf ) {
+ // Transform the subgroupOf name in the real subgroup object.
+ subgroupOf = CKEDITOR.tools.search( toolbarGroups, function( group ) {
+ return group.name == subgroupOf;
+ });
+
+ if ( subgroupOf ) {
+ !subgroupOf.groups && ( subgroupOf.groups = [] ) ;
+
+ if ( previous ) {
+ // Search the "previous" item and add the new one after it.
+ previous = CKEDITOR.tools.indexOf( subgroupOf.groups, previous );
+ if ( previous >= 0 ) {
+ subgroupOf.groups.splice( previous + 1, 0, name );
+ return;
+ }
+ }
+
+ // If no previous found.
+
+ if ( atStart )
+ subgroupOf.groups.splice( 0, 0, name );
+ else
+ subgroupOf.groups.push( name );
+ return;
+ } else {
+ // Ignore "previous" if subgroupOf has not been found.
+ previous = null;
+ }
+ }
+
+ if ( previous ) {
+ // Transform the "previous" name into its index.
+ previous = CKEDITOR.tools.indexOf( toolbarGroups, function( group ) {
+ return group.name == previous;
+ });
+ }
+
+ if ( atStart )
+ toolbarGroups.splice( 0, 0, name );
+ else if ( typeof previous == 'number' )
+ toolbarGroups.splice( previous + 1, 0, newGroup );
+ else
+ toolbarGroups.push( name );
+ };
+
+ function getPrivateToolbarGroups( editor ) {
+ return editor._.toolbarGroups || ( editor._.toolbarGroups = [
+ { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
+ { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
+ { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
+ { name: 'forms' },
+ '/',
+ { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align' ] },
+ { name: 'links' },
+ { name: 'insert' },
+ '/',
+ { name: 'styles' },
+ { name: 'colors' },
+ { name: 'tools' },
+ { name: 'others' },
+ { name: 'about' }
+ ]);
+ }
+})();
/**
- * The toolbar definition. It is an array of toolbars (strips),
- * each one being also an array, containing a list of UI items.
- * Note that this setting is composed by "toolbar_" added by the toolbar name,
- * which in this case is called "Basic". This second part of the setting name
- * can be anything. You must use this name in the
- * {@link CKEDITOR.config.toolbar} setting, so you instruct the editor which
- * toolbar_(name) setting to you.
- * @type Array
- * @example
- * // Defines a toolbar with only one strip containing the "Source" button, a
- * // separator and the "Bold" and "Italic" buttons.
- * <b>config.toolbar_Basic =
- * [
- * [ 'Source', '-', 'Bold', 'Italic' ]
- * ]</b>;
- * config.toolbar = 'Basic';
+ * Separator UI element.
+ *
+ * @readonly
+ * @property {String} [='separator']
+ * @member CKEDITOR
*/
-CKEDITOR.config.toolbar_Basic =
-[
- ['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink','-','About']
-];
+CKEDITOR.UI_SEPARATOR = 'separator';
/**
- * This is the default toolbar definition used by the editor. It contains all
- * editor features.
- * @type Array
- * @default (see example)
- * @example
- * // This is actually the default value.
- * config.toolbar_Full =
- * [
- * ['Source','-','Save','NewPage','Preview','-','Templates'],
- * ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
- * ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
- * ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
- * '/',
- * ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
- * ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
- * ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
- * ['BidiLtr', 'BidiRtl' ],
- * ['Link','Unlink','Anchor'],
- * ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
- * '/',
- * ['Styles','Format','Font','FontSize'],
- * ['TextColor','BGColor'],
- * ['Maximize', 'ShowBlocks','-','About']
- * ];
+ * The "UI space" to which rendering the toolbar. For the default editor implementation,
+ * the recommended options are `'top'` and `'bottom'`.
+ *
+ * config.toolbarLocation = 'bottom';
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.toolbar_Full =
-[
- ['Source','-','Save','NewPage','Preview','-','Templates'],
- ['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
- ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
- ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
- '/',
- ['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
- ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
- ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
- ['BidiLtr', 'BidiRtl' ],
- ['Link','Unlink','Anchor'],
- ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
- '/',
- ['Styles','Format','Font','FontSize'],
- ['TextColor','BGColor'],
- ['Maximize', 'ShowBlocks','-','About']
-];
+CKEDITOR.config.toolbarLocation = 'top';
/**
* The toolbox (alias toolbar) definition. It is a toolbar name or an array of
* toolbars (strips), each one being also an array, containing a list of UI items.
- * @type Array|String
- * @default 'Full'
- * @example
- * // Defines a toolbar with only one strip containing the "Source" button, a
- * // separator and the "Bold" and "Italic" buttons.
- * config.toolbar =
- * [
- * [ 'Source', '-', 'Bold', 'Italic' ]
- * ];
- * @example
- * // Load toolbar_Name where Name = Basic.
- * config.toolbar = 'Basic';
+ *
+ * If set to `null`, generate toolbar automatically using all available buttons
+ * and {@link #toolbarGroups} as a toolbar groups layout.
+ *
+ * // Defines a toolbar with only one strip containing the "Source" button, a
+ * // separator and the "Bold" and "Italic" buttons.
+ * config.toolbar = [
+ * [ 'Source', '-', 'Bold', 'Italic' ]
+ * ];
+ *
+ * // Similar to example the above, defines a "Basic" toolbar with only one strip containing three buttons.
+ * // Note that this setting is composed by "toolbar_" added by the toolbar name, which in this case is called "Basic".
+ * // This second part of the setting name can be anything. You must use this name in the CKEDITOR.config.toolbar setting,
+ * // so you instruct the editor which toolbar_(name) setting to use.
+ * config.toolbar_Basic = [
+ * [ 'Source', '-', 'Bold', 'Italic' ]
+ * ];
+ * // Load toolbar_Name where Name = Basic.
+ * config.toolbar = 'Basic';
+ *
+ * @cfg {Array/String} [toolbar=null]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The toolbar groups definition.
+ *
+ * If toolbar layout isn't explicitly defined by {@link #toolbar} setting, then
+ * this setting is used to group all defined buttons (see {@link CKEDITOR.ui#addButton}).
+ * Buttons are associated with toolbar groups by `toolbar` property in their definition objects.
+ *
+ * New groups may be dynamically added during the editor and plugins initialization by
+ * {@link CKEDITOR.ui#addToolbarGroup}. Although only if default setting was used.
+ *
+ * // Default setting.
+ * config.toolbarGroups = [
+ * { name: 'document', groups: [ 'mode', 'document', 'doctools' ] },
+ * { name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
+ * { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] },
+ * { name: 'forms' },
+ * '/',
+ * { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ * { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align' ] },
+ * { name: 'links' },
+ * { name: 'insert' },
+ * '/',
+ * { name: 'styles' },
+ * { name: 'colors' },
+ * { name: 'tools' },
+ * { name: 'others' },
+ * { name: 'about' }
+ * ];
+ *
+ * @cfg {Array} [toolbarGroups=see example]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.toolbar = 'Full';
/**
* Whether the toolbar can be collapsed by the user. If disabled, the collapser
* button will not be displayed.
- * @type Boolean
- * @default true
- * @example
- * config.toolbarCanCollapse = false;
+ *
+ * config.toolbarCanCollapse = true;
+ *
+ * @cfg {Boolean} [toolbarCanCollapse=false]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.toolbarCanCollapse = true;
/**
* Whether the toolbar must start expanded when the editor is loaded.
- * @name CKEDITOR.config.toolbarStartupExpanded
- * @type Boolean
- * @default true
- * @example
- * config.toolbarStartupExpanded = false;
+ *
+ * Setting this option to `false` will affect toolbar only when
+ * {@link #toolbarCanCollapse} is set to `true`:
+ *
+ * config.toolbarCanCollapse = true;
+ * config.toolbarStartupExpanded = false;
+ *
+ * @cfg {Boolean} [toolbarStartupExpanded=true]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * When enabled, makes the arrow keys navigation cycle within the current
+ * toolbar group. Otherwise the arrows will move through all items available in
+ * the toolbar. The *TAB* key will still be used to quickly jump among the
+ * toolbar groups.
+ *
+ * config.toolbarGroupCycling = false;
+ *
+ * @since 3.6
+ * @cfg {Boolean} [toolbarGroupCycling=true]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * List of toolbar button names that must not be rendered. This will work as
+ * well for non-button toolbar items, like the Font combos.
+ *
+ * config.removeButtons = 'Underline,JustifyCenter';
+ *
+ * This configuration should not be overused, having
+ * {@link CKEDITOR.config#removePlugins} removing features from the editor. In
+ * some cases though, a single plugin may define a set of toolbar buttons and
+ * removeButtons may be useful when just a few of them are to be removed.
+ *
+ * @cfg {String} [removeButtons]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Toolbar definition used by the editor. It is crated from the
+ * {@link CKEDITOR.config#toolbar} if it is set or automatically
+ * based on {@link CKEDITOR.config#toolbarGroups}.
+ *
+ * @property {Object} toolbar
+ * @member CKEDITOR.editor
*/
diff --git a/devel/third-party/ckeditor/plugins/toolbar/samples/toolbar.html b/devel/third-party/ckeditor/plugins/toolbar/samples/toolbar.html
new file mode 100644
index 0000000..6f0b044
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/toolbar/samples/toolbar.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>Toolbar Configuration — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <meta name="ckeditor-sample-name" content="Toolbar Configurations">
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
+ <meta name="ckeditor-sample-description" content="Configuring CKEditor to display full or custom toolbar layout.">
+ <meta name="ckeditor-sample-isnew" content="1">
+ <script src="../../../ckeditor.js"></script>
+ <link href="../../../samples/sample.css" rel="stylesheet">
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » Toolbar Configuration
+ </h1>
+ <div class="description">
+ <p>
+ This sample page demonstrates editor with loaded <a href="#fullToolbar">full toolbar</a> (all registered buttons) and, if
+ current editor's configuration modifies default settings, also editor with <a href="#currentToolbar">modified toolbar</a>.
+ </p>
+
+ <p>Since CKEditor 4 there are two ways to configure toolbar buttons.</p>
+
+ <h2 class="samples">By <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbar">config.toolbar</a></h2>
+
+ <p>
+ You can explicitly define which buttons are displayed in which groups and in which order.
+ This is the more precise setting, but less flexible. If newly added plugin adds its
+ own button you'll have to add it manually to your <code>config.toolbar</code> setting as well.
+ </p>
+
+ <p>To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:</p>
+
+ <pre class="samples">
+CKEDITOR.replace( <em>'textarea_id'</em>, {
+ <strong>toolbar:</strong> [
+ { name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] }, // Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+ [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ], // Defines toolbar group without name.
+ '/', // Line break - next group will be placed in new line.
+ { name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+ ]
+});</pre>
+
+ <h2 class="samples">By <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbarGroups">config.toolbarGroups</a></h2>
+
+ <p>
+ You can define which groups of buttons (like e.g. <code>basicstyles</code>, <code>clipboard</code>
+ and <code>forms</code>) are displayed and in which order. Registered buttons are associated
+ with toolbar groups by <code>toolbar</code> property in their definition.
+ This setting's advantage is that you don't have to modify toolbar configuration
+ when adding/removing plugins which register their own buttons.
+ </p>
+
+ <p>To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:</p>
+
+ <pre class="samples">
+CKEDITOR.replace( <em>'textarea_id'</em>, {
+ <strong>toolbarGroups:</strong> [
+ { name: 'document', groups: [ 'mode', 'document' ] }, // Displays document group with its two subgroups.
+ { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, // Group's name will be used to create voice label.
+ '/', // Line break - next group will be placed in new line.
+ { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ { name: 'links' }
+ ]
+
+ // NOTE: Remember to leave 'toolbar' property with the default value (null).
+});</pre>
+ </div>
+
+ <div id="currentToolbar" style="display: none">
+ <h2 class="samples">Current toolbar configuration</h2>
+ <p>Below you can see editor with current toolbar definition.</p>
+ <textarea cols="80" id="editorCurrent" name="editorCurrent" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>
+ <pre id="editorCurrentCfg" class="samples"></pre>
+ </div>
+
+ <div id="fullToolbar">
+ <h2 class="samples">Full toolbar configuration</h2>
+ <p>Below you can see editor with full toolbar, generated automatically by the editor.</p>
+ <p>
+ <strong>Note</strong>: To create editor instance with full toolbar you don't have to set anything.
+ Just leave <code>toolbar</code> and <code>toolbarGroups</code> with the default, <code>null</code> values.
+ </p>
+ <textarea cols="80" id="editorFull" name="editorFull" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></textarea>
+ <pre id="editorFullCfg" class="samples"></pre>
+ </div>
+
+ <script>
+
+(function() {
+ 'use strict';
+
+ CKEDITOR.config.extraPlugins = 'toolbar';
+
+ CKEDITOR.on( 'instanceReady', function( evt ) {
+ var editor = evt.editor,
+ editorCurrent = editor.name == 'editorCurrent',
+ defaultToolbar = !( editor.config.toolbar || editor.config.toolbarGroups ),
+ pre = CKEDITOR.document.getById( editor.name + 'Cfg' ),
+ output = '';
+
+ if ( editorCurrent ) {
+ // If default toolbar configuration has been modified, show "current toolbar" section.
+ if ( !defaultToolbar )
+ CKEDITOR.document.getById( 'currentToolbar' ).show();
+ else
+ return;
+ }
+
+ // Toolbar isn't set explicitly, so it was created automatically from toolbarGroups.
+ if ( !editor.config.toolbar ) {
+ output +=
+ '// Toolbar configuration generated automatically by the editor based on config.toolbarGroups.\n' +
+ dumpToolbarConfiguration( editor ) +
+ '\n\n' +
+ '// Toolbar groups configuration.\n' +
+ dumpToolbarConfiguration( editor, true )
+ }
+ // Toolbar groups doesn't count in this case - print only toolbar.
+ else {
+ output += '// Toolbar configuration.\n' +
+ dumpToolbarConfiguration( editor );
+ }
+
+ // Recreate to avoid old IE from loosing whitespaces on filling <pre> content.
+ var preOutput = pre.getOuterHtml().replace( /(?=<\/)/, output );
+ CKEDITOR.dom.element.createFromHtml( preOutput ).replace( pre );
+ } );
+
+
+ CKEDITOR.replace( 'editorCurrent', { height: 100 } );
+ CKEDITOR.replace( 'editorFull', {
+ // Reset toolbar settings, so full toolbar will be generated automatically.
+ toolbar: null,
+ toolbarGroups: null,
+ height: 100
+ } );
+
+ function dumpToolbarConfiguration( editor, printGroups ) {
+ var output = [],
+ toolbar = editor.toolbar;
+
+ for ( var i = 0; i < toolbar.length; ++i ) {
+ var group = dumpToolbarGroup( toolbar[ i ], printGroups );
+ if ( group )
+ output.push( group );
+ }
+
+ return 'config.toolbar' + ( printGroups ? 'Groups' : '' ) + ' = [\n\t' + output.join( ',\n\t' ) + '\n];';
+ }
+
+ function dumpToolbarGroup( group, printGroups ) {
+ var output = [];
+
+ if ( typeof group == 'string' )
+ return '\'' + group + '\'';
+ if ( CKEDITOR.tools.isArray( group ) )
+ return dumpToolbarItems( group );
+ // Skip group when printing entire toolbar configuration and there are no items in this group.
+ if ( !printGroups && !group.items )
+ return;
+
+ if ( group.name )
+ output.push( 'name: \'' + group.name + '\'' );
+
+ if ( group.groups )
+ output.push( 'groups: ' + dumpToolbarItems( group.groups ) );
+
+ if ( !printGroups )
+ output.push( 'items: ' + dumpToolbarItems( group.items ) );
+
+ return '{ ' + output.join( ', ' ) + ' }';
+ }
+
+ function dumpToolbarItems( items ) {
+ if ( typeof items == 'string' )
+ return '\'' + items + '\'';
+ return '[ \'' + items.join( '\', \'' ) + '\' ]';
+ }
+
+})();
+ </script>
+
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/plugins/uicolor/dialogs/uicolor.js b/devel/third-party/ckeditor/plugins/uicolor/dialogs/uicolor.js
deleted file mode 100644
index 7d49394..0000000
--- a/devel/third-party/ckeditor/plugins/uicolor/dialogs/uicolor.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dialog.add( 'uicolor', function( editor )
-{
- var dialog, picker, pickerContents,
- // Actual UI color value.
- uiColor = editor.getUiColor(),
- pickerId = 'cke_uicolor_picker' + CKEDITOR.tools.getNextNumber();
-
- function setNewPickerColor( color )
- {
- // Convert HEX representation to RGB, stripping # char.
- if ( /^#/.test( color ) )
- color = window.YAHOO.util.Color.hex2rgb( color.substr( 1 ) );
- picker.setValue( color, true );
- // Refresh picker UI.
- picker.refresh( pickerId );
- }
-
- function setNewUiColor( color, force )
- {
- if ( force || dialog._.contents.tab1.livePeview.getValue() )
- editor.setUiColor( color );
- // Write new config string into textbox.
- dialog._.contents.tab1.configBox.setValue(
- 'config.uiColor = "#' + picker.get( "hex" ) + '"'
- );
- }
-
- pickerContents =
- {
- id : 'yuiColorPicker',
- type : 'html',
- html : "<div id='" + pickerId + "' class='cke_uicolor_picker' style='width: 360px; height: 200px; position: relative;'></div>",
- onLoad : function( event )
- {
- var url = CKEDITOR.getUrl(
- '_source/' + // @Packager.RemoveLine
- 'plugins/uicolor/yui/'
- );
-
- // Create new color picker widget.
- picker = new window.YAHOO.widget.ColorPicker( pickerId,
- {
- showhsvcontrols : true,
- showhexcontrols : true,
- images :
- {
- PICKER_THUMB : url + "assets/picker_thumb.png",
- HUE_THUMB : url + "assets/hue_thumb.png"
- }
- });
-
- // Set actual UI color to the picker.
- if ( uiColor )
- setNewPickerColor( uiColor );
-
- // Subscribe to the rgbChange event.
- picker.on( "rgbChange", function()
- {
- // Reset predefined box.
- dialog._.contents.tab1.predefined.setValue( '' );
- setNewUiColor( '#' + picker.get( 'hex' ) );
- });
-
- // Fix input class names.
- var inputs = new CKEDITOR.dom.nodeList( picker.getElementsByTagName( 'input' ) );
- for ( var i = 0; i < inputs.count() ; i++ )
- inputs.getItem( i ).addClass( 'cke_dialog_ui_input_text' );
- }
- };
-
- var skipPreviewChange = true;
-
- return {
- title : editor.lang.uicolor.title,
- minWidth : 360,
- minHeight : 320,
- onLoad : function()
- {
- dialog = this;
- this.setupContent();
-
- // #3808
- if ( CKEDITOR.env.ie7Compat )
- dialog.parts.contents.setStyle( 'overflow', 'hidden' );
- },
- contents : [
- {
- id : 'tab1',
- label : '',
- title : '',
- expand : true,
- padding : 0,
- elements : [
- pickerContents,
- {
- id : 'tab1',
- type : 'vbox',
- children :
- [
- {
- id : 'livePeview',
- type : 'checkbox',
- label : editor.lang.uicolor.preview,
- 'default' : 1,
- onLoad : function()
- {
- skipPreviewChange = true;
- },
- onChange : function()
- {
- if ( skipPreviewChange )
- return;
- var on = this.getValue(),
- color = on ? '#' + picker.get( 'hex' ) : uiColor;
- setNewUiColor( color, true );
- }
- },
- {
- type : 'hbox',
- children :
- [
- {
- id : 'predefined',
- type : 'select',
- 'default' : '',
- label : editor.lang.uicolor.predefined,
- items :
- [
- [ '' ],
- [ 'Light blue', '#9AB8F3' ],
- [ 'Sand', '#D2B48C' ],
- [ 'Metallic', '#949AAA' ],
- [ 'Purple', '#C2A3C7' ],
- [ 'Olive', '#A2C980' ],
- [ 'Happy green', '#9BD446' ],
- [ 'Jezebel Blue', '#14B8C4' ],
- [ 'Burn', '#FF893A' ],
- [ 'Easy red', '#FF6969' ],
- [ 'Pisces 3', '#48B4F2' ],
- [ 'Aquarius 5', '#487ED4' ],
- [ 'Absinthe', '#A8CF76' ],
- [ 'Scrambled Egg', '#C7A622' ],
- [ 'Hello monday', '#8E8D80' ],
- [ 'Lovely sunshine', '#F1E8B1' ],
- [ 'Recycled air', '#B3C593' ],
- [ 'Down', '#BCBCA4' ],
- [ 'Mark Twain', '#CFE91D' ],
- [ 'Specks of dust', '#D1B596' ],
- [ 'Lollipop', '#F6CE23' ]
- ],
- onChange : function()
- {
- var color = this.getValue();
- if ( color )
- {
- setNewPickerColor( color );
- setNewUiColor( color );
- // Refresh predefined preview box.
- CKEDITOR.document.getById( 'predefinedPreview' ).setStyle( 'background', color );
- }
- else
- CKEDITOR.document.getById( 'predefinedPreview' ).setStyle( 'background', '' );
- },
- onShow : function()
- {
- var color = editor.getUiColor();
- if ( color )
- this.setValue( color );
- }
- },
- {
- id : 'predefinedPreview',
- type : 'html',
- html : '<div id="cke_uicolor_preview" style="border: 1px solid black; padding: 3px; width: 30px;">' +
- '<div id="predefinedPreview" style="width: 30px; height: 30px;"> </div>' +
- '</div>'
- }
- ]
- },
- {
- id : 'configBox',
- type : 'text',
- label : editor.lang.uicolor.config,
- onShow : function()
- {
- var color = editor.getUiColor();
- if ( color )
- this.setValue(
- 'config.uiColor = "' + color + '"'
- );
- }
- }
- ]
- }
- ]
- }
- ],
- buttons : [ CKEDITOR.dialog.okButton ]
- };
-} );
diff --git a/devel/third-party/ckeditor/plugins/uicolor/lang/en.js b/devel/third-party/ckeditor/plugins/uicolor/lang/en.js
deleted file mode 100644
index 9c47822..0000000
--- a/devel/third-party/ckeditor/plugins/uicolor/lang/en.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang( 'uicolor', 'en',
-{
- uicolor :
- {
- title : 'UI Color Picker',
- preview : 'Live preview',
- config : 'Paste this string into your config.js file',
- predefined : 'Predefined color sets'
- }
-});
diff --git a/devel/third-party/ckeditor/plugins/uicolor/plugin.js b/devel/third-party/ckeditor/plugins/uicolor/plugin.js
deleted file mode 100644
index 007f59f..0000000
--- a/devel/third-party/ckeditor/plugins/uicolor/plugin.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add( 'uicolor',
-{
- requires : [ 'dialog' ],
- lang : [ 'en' ],
-
- init : function( editor )
- {
- if ( CKEDITOR.env.ie6Compat )
- return;
-
- editor.addCommand( 'uicolor', new CKEDITOR.dialogCommand( 'uicolor' ) );
- editor.ui.addButton( 'UIColor',
- {
- label : editor.lang.uicolor.title,
- command : 'uicolor',
- icon : this.path + 'uicolor.gif'
- });
- CKEDITOR.dialog.add( 'uicolor', this.path + 'dialogs/uicolor.js' );
-
- // Load YUI js files.
- CKEDITOR.scriptLoader.load( CKEDITOR.getUrl(
- '_source/' + // @Packager.RemoveLine
- 'plugins/uicolor/yui/yui.js'
- ));
-
- // Load YUI css files.
- editor.element.getDocument().appendStyleSheet( CKEDITOR.getUrl(
- '_source/' + // @Packager.RemoveLine
- 'plugins/uicolor/yui/assets/yui.css'
- ));
- }
-} );
diff --git a/devel/third-party/ckeditor/plugins/uicolor/yui/assets/yui.css b/devel/third-party/ckeditor/plugins/uicolor/yui/assets/yui.css
deleted file mode 100644
index e7dbd79..0000000
--- a/devel/third-party/ckeditor/plugins/uicolor/yui/assets/yui.css
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-.yui-h-slider,.yui-v-slider{position:relative;}.yui-h-slider .yui-slider-thumb,.yui-v-slider .yui-slider-thumb{position:absolute;cursor:default;}.yui-skin-sam .yui-h-slider{background:url(bg-h.gif) no-repeat 5px 0;height:28px;width:228px;}.yui-skin-sam .yui-h-slider .yui-slider-thumb{top:4px;}.yui-skin-sam .yui-v-slider{background:url(bg-v.gif) no-repeat 12px 0;height:228px;width:48px;}
-
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker
.yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-c
ontrols li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;}
diff --git a/devel/third-party/ckeditor/plugins/uicolor/yui/yui.js b/devel/third-party/ckeditor/plugins/uicolor/yui/yui.js
deleted file mode 100644
index 714d141..0000000
--- a/devel/third-party/ckeditor/plugins/uicolor/yui/yui.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*jsl:ignoreall*/
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:0},B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B
.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}A=B.match(/Caja\/([^\s]*)/);if(A&&A[1]){C.caja=parseFloat(A[1]);}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,F="[object Array]",C="[object Function]",A=Object.prototype,E=["toString","valueOf"
],D={isArray:function(G){return A.toString.apply(G)===F;},isBoolean:function(G){return typeof G==="boolean";},isFunction:function(G){return A.toString.apply(G)===C;},isNull:function(G){return G===null;},isNumber:function(G){return typeof G==="number"&&isFinite(G);},isObject:function(G){return(G&&(typeof G==="object"||B.isFunction(G)))||false;},isString:function(G){return typeof G==="string";},isUndefined:function(G){return typeof G==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(I,H){var G,K,J;for(G=0;G<E.length;G=G+1){K=E[G];J=H[K];if(B.isFunction(J)&&J!=A[K]){I[K]=J;}}}:function(){},extend:function(J,K,I){if(!K||!J){throw new Error("extend failed, please check that "+"all dependencies are included.");}var H=function(){},G;H.prototype=K.prototype;J.prototype=new H();J.prototype.constructor=J;J.superclass=K.prototype;if(K.prototype.constructor==A.constructor){K.prototype.constructor=K;}if(I){for(G in I){if(B.hasOwnProperty(I,G)){J.prototype[G]=I[G];}}B._IEEnumFix(J.pro
totype,I);}},augmentObject:function(K,J){if(!J||!K){throw new Error("Absorb failed, verify dependencies.");}var G=arguments,I,L,H=G[2];if(H&&H!==true){for(I=2;I<G.length;I=I+1){K[G[I]]=J[G[I]];}}else{for(L in J){if(H||!(L in K)){K[L]=J[L];}}B._IEEnumFix(K,J);}},augmentProto:function(J,I){if(!I||!J){throw new Error("Augment failed, verify dependencies.");}var G=[J.prototype,I.prototype],H;for(H=2;H<arguments.length;H=H+1){G.push(arguments[H]);}B.augmentObject.apply(this,G);},dump:function(G,L){var I,K,N=[],O="{...}",H="f(){...}",M=", ",J=" => ";if(!B.isObject(G)){return G+"";}else{if(G instanceof Date||("nodeType" in G&&"tagName" in G)){return G;}else{if(B.isFunction(G)){return H;}}}L=(B.isNumber(L))?L:3;if(B.isArray(G)){N.push("[");for(I=0,K=G.length;I<K;I=I+1){if(B.isObject(G[I])){N.push((L>0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}if(N.length>1){N.pop();}N.push("]");}else{N.push("{");for(I in G){if(B.hasOwnProperty(G,I)){N.push(I+J);if(B.isObject(G[I])){N.push(
(L>0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}}if(N.length>1){N.pop();}N.push("}");}return N.join("");},substitute:function(V,H,O){var L,K,J,R,S,U,Q=[],I,M="dump",P=" ",G="{",T="}",N;for(;;){L=V.lastIndexOf(G);if(L<0){break;}K=V.indexOf(T,L);if(L+1>=K){break;}I=V.substring(L+1,K);R=I;U=null;J=R.indexOf(P);if(J>-1){U=R.substring(J+1);R=R.substring(0,J);}S=H[R];if(O){S=O(R,S,U);}if(B.isObject(S)){if(B.isArray(S)){S=B.dump(S,parseInt(U,10));}else{U=U||"";N=U.indexOf(M);if(N>-1){U=U.substring(4);}if(S.toString===A.toString||N>-1){S=B.dump(S,parseInt(U,10));}else{S=S.toString();}}}else{if(!B.isString(S)&&!B.isNumber(S)){S="~-"+Q.length+"-~";Q[Q.length]=I;}}V=V.substring(0,L)+S+V.substring(K+1);}for(L=Q.length-1;L>=0;L=L-1){V=V.replace(new RegExp("~-"+L+"-~"),"{"+Q[L]+"}","g");}return V;},trim:function(G){try{return G.replace(/^\s+|\s+$/g,"");}catch(H){return G;}},merge:function(){var J={},H=arguments,G=H.length,I;for(I=0;I<G;I=I+1){B.augmentObject(J,H[I],true);}return
J;},later:function(N,H,O,J,K){N=N||0;H=H||{};var I=O,M=J,L,G;if(B.isString(O)){I=H[O];}if(!I){throw new TypeError("method undefined");}if(!B.isArray(M)){M=[J];}L=function(){I.apply(H,M);};G=(K)?setInterval(L,N):setTimeout(L,N);return{interval:K,cancel:function(){if(this.interval){clearInterval(G);}else{clearTimeout(G);}}};},isValue:function(G){return(B.isObject(G)||B.isString(G)||B.isNumber(G)||B.isBoolean(G));}};B.hasOwnProperty=(A.hasOwnProperty)?function(G,H){return G&&G.hasOwnProperty(H);}:function(G,H){return !B.isUndefined(G[H])&&G.constructor.prototype[H]!==G[H];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.7.0",build:"1796"});(function(){YAHOO.env._id_counter=YAHOO.env._id_counter||0;var E=YAHOO.util,L=YAHOO.lang,m=YAHOO.env.ua,A=YAHOO.lang.trim,d={},h={},N=/^t(?:able|d|h)$/i,X=/color$/i,K=window.document,W=K.documentElement,e="ownerDocument",n="d
efaultView",v="documentElement",t="compatMode",b="offsetLeft",P="offsetTop",u="offsetParent",Z="parentNode",l="nodeType",C="tagName",O="scrollLeft",i="scrollTop",Q="getBoundingClientRect",w="getComputedStyle",a="currentStyle",M="CSS1Compat",c="BackCompat",g="class",F="className",J="",B=" ",s="(?:^|\\s)",k="(?= |$)",U="g",p="position",f="fixed",V="relative",j="left",o="top",r="medium",q="borderLeftWidth",R="borderTopWidth",D=m.opera,I=m.webkit,H=m.gecko,T=m.ie;E.Dom={CUSTOM_ATTRIBUTES:(!W.hasAttribute)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},get:function(y){var AA,Y,z,x,G;if(y){if(y[l]||y.item){return y;}if(typeof y==="string"){AA=y;y=K.getElementById(y);if(y&&y.id===AA){return y;}else{if(y&&K.all){y=null;Y=K.all[AA];for(x=0,G=Y.length;x<G;++x){if(Y[x].id===AA){return Y[x];}}}}return y;}if(y.DOM_EVENTS){y=y.get("element");}if("length" in y){z=[];for(x=0,G=y.length;x<G;++x){z[z.length]=E.Dom.get(y[x]);}return z;}return y;}return null;},getComputedStyle:func
tion(G,Y){if(window[w]){return G[e][n][w](G,null)[Y];}else{if(G[a]){return E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){return function(G,y){y=(y==="float")?y="cssFloat":E.Dom._toCamel(y);var x=G.style[y],Y;if(!x){Y=G[e][n][w](G,null);if(Y){x=Y[y];}}return x;};}else{if(W[a]){return function(G,y){var x;switch(y){case"opacity":x=100;try{x=G.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(z){try{x=G.filters("alpha").opacity;}catch(Y){}}return x/100;case"float":y="styleFloat";default:y=E.Dom._toCamel(y);x=G[a]?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.Dom.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){switch(x){case"opacity":if(L.isString(Y.style.filter)){Y.style.filter="alpha(opacity="+y*100+")";if(!Y[a]||!Y[a].hasLayout){Y.style.zoom=1;}}break;case"float":x="style
Float";default:Y.style[x]=y;}}else{}};}else{return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){if(x=="float"){x="cssFloat";}Y.style[x]=y;}else{}};}}(),getXY:function(G){return E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getStyle(G,"display")!=="none"&&E.Dom._inDoc(G));},_getXY:function(){if(K[v][Q]){return function(y){var z,Y,AA,AF,AE,AD,AC,G,x,AB=Math.floor,AG=false;if(E.Dom._canPosition(y)){AA=y[Q]();AF=y[e];z=E.Dom.getDocumentScrollLeft(AF);Y=E.Dom.getDocumentScrollTop(AF);AG=[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=2;AD=2;AC=AF[t];G=S(AF[v],q);x=S(AF[v],R);if(m.ie===6){if(AC!==c){AE=0;AD=0;}}if((AC==c)){if(G!==r){AE=parseInt(G,10);}if(x!==r){AD=parseInt(x,10);}}AG[0]-=AE;AG[1]-=AD;}if((Y||z)){AG[0]+=z;AG[1]+=Y;}AG[0]=AB(AG[0]);AG[1]=AB(AG[1]);}else{}return AG;};}else{return function(y){var x,Y,AA,AB,AC,z=false,G=y;if(E.Dom._canPosition(y)){z=[y[b],y[P]];x=E.Dom.getDocumentScrollLeft(y[e]);Y=E.Dom.getDocumentScrollTop(y[e]);AC=((H||m.we
bkit>519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b
];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AB=L.trim(AB);AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=G[y];}}if(AE){E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return E.Dom.batch(Y,E.Dom._hasClass,G);},
_hasClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom.getAttribute(x,F)||J;if(Y.exec){G=Y.test(y);}else{G=Y&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom.getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom.getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom.getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom.getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});
-},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom.getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return
G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z<AA;++z){if(Y(G[z])){if(AE){x=G[z];break;}else{x[x.length]=G[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return x;},getElementBy:function(x,G,Y){return E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z){var y=[],Y=(z)?AA:window;x=(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB){if(x[C]||x.length===undefined){return AB.call(Y,x,AA);}for(var G=0;G<x.length;++G){y[y.length]=AB.call(Y,x[G],AA);}}else{return false;}return y;},getDocumentHeight:function(){var Y=(K[t]!=M||I)?K.body.scrollHeight:W.scrollHeight,G=Math.max(Y,E.Dom.getViewportHeight());return G;},getDocumentWidth:function(){var Y=(K[t]!=M||I)?K.body.scrollWidth:W.scrollWidth,G=Math.max(Y,E.Dom.getViewportWidth());return G;},getViewportHeight:function(){var G=self.innerHeight,Y=K[t];if((Y||T)&&!D){G=(Y==M)?W.clientHeight:K.body.clientHeigh
t;}return G;},getViewportWidth:function(){var G=self.innerWidth,Y=K[t];if(Y||T){G=(Y==M)?W.clientWidth:K.body.clientWidth;}return G;},getAncestorBy:function(G,Y){while((G=G[Z])){if(E.Dom._testElement(G,Y)){return G;}}return null;},getAncestorByClassName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return E.Dom.hasClass(y,G);};return E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return y[C]&&y[C].toUpperCase()==G.toUpperCase();};return E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getPreviousSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=G.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getNextSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getNextSiblingBy(G);},getF
irstChildBy:function(G,x){var Y=(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return null;}var Y=(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=E.Dom.get(G);return E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var x=E.Dom.getFirstChildBy(Y,y),G=x?[x]:[];E.Dom.getNextSiblingBy(x,function(z){if(!y||y(z)){G[G.length]=z;}return false;});return G;},getChildren:function(G){G=E.Dom.get(G);if(!G){}return E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=G||K;return Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:function(G){G=G||K;return Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}ret
urn G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return G[Z].insertBefore(Y,G.nextSibling);}else{return G[Z].appendChild(Y);}},getClientRegion:function(){var x=E.Dom.getDocumentScrollTop(),Y=E.Dom.getDocumentScrollLeft(),y=E.Dom.getViewportWidth()+Y,G=E.Dom.getViewportHeight()+x;return new E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;Y.setAttribute(G,x);},getAttribute:function(Y,G){G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;return Y.getAttribute(G);},_toCamel:function(Y){var x=d;function G(y,z){return z.toUpperCase();}return x[Y]||(x[Y]=Y.indexOf("-")===-1?Y:Y.replace(/-([a-z])/gi,G));},_getClassRegex:function(Y){var G;if(Y!==undefined){if(Y.exec){G=Y;}else{G=h[Y];if(!G){Y=Y.replace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=h[Y]=new RegExp(s+Y+k,U);}}}return G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\?\|\[\]\{\}])/g},_testElement:functio
n(G,Y){return G&&G[l]==1&&(!Y||Y(G));},_calcBorders:function(x,y){var Y=parseInt(E.Dom[w](x,R),10)||0,G=parseInt(E.Dom[w](x,q),10)||0;if(H){if(N.test(x[C])){Y=0;G=0;}}y[0]+=G;y[1]+=Y;return y;}};var S=E.Dom[w];if(m.opera){E.Dom[w]=function(Y,G){var x=S(Y,G);if(X.test(G)){x=E.Dom.Color.toRGB(x);}return x;};}if(m.webkit){E.Dom[w]=function(Y,G){var x=S(Y,G);if(x==="rgba(0, 0, 0, 0)"){x="transparent";}return x;};}})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this.y=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this.x=B;this[0]=B;this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bo
ttom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);
-}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWi
dth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,
b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuch
sia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(D,C,B,A){this.type=D;this.scope=C||window;this.silent=B;this.signature=A||YAHO
O.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(A,B,C){if(!A){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(A,B,C);}this.subscribers.push(new YAHOO.util.Subscriber(A,B,C));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!th
is.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.conta
ins=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(S,O,Q,R,P){var M=(YAHOO.lang.isString(S))?[S]:S;for(va
r N=0;N<M.length;N=N+1){F.push({id:M[N],fn:O,obj:Q,overrideContext:R,checkReady:P});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(P,M,N,O){this.onAvailable(P,M,N,O,true);},onDOMReady:function(M,N,O){if(this.DOMReady){setTimeout(function(){var P=window;if(O){if(O===true){P=N;}else{P=O;}}M.call(P,"DOMReady",[],N);},0);}else{this.DOMReadyEvent.subscribe(M,N,O);}},_addListener:function(O,M,Y,S,W,b){if(!Y||!Y.call){return false;}if(this._isValidCollection(O)){var Z=true;for(var T=0,V=O.length;T<V;++T){Z=this.on(O[T],M,Y,S,W)&&Z;}return Z;}else{if(YAHOO.lang.isString(O)){var R=this.getEl(O);if(R){O=R;}else{this.onAvailable(O,function(){YAHOO.util.Event.on(O,M,Y,S,W);});return true;}}}if(!O){return false;}if("unload"==M&&S!==this){J[J.length]=[O,M,Y,S,W];return true;}var N=O;if(W){if(W===true){N=S;}else{N=W;}}var P=function(c){return Y.call(N,YAHOO.util.Event.getEvent(c,O),S);};var a=[O,M,Y,P,N,S,W];var U=I.length;I[U]=a;if(this.useLegacyEvent(O,M)){var Q=this.
getLegacyIndex(O,M);if(Q==-1||O!=G[Q][0]){Q=G.length;B[O.id+M]=Q;G[Q]=[O,M,O["on"+M]];E[Q]=[];O["on"+M]=function(c){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(c),Q);};}E[Q].push(a);}else{try{this._simpleAdd(O,M,P,b);}catch(X){this.lastError=X;this.removeListener(O,M,Y);return false;}}return true;},addListener:function(N,Q,M,O,P){return this._addListener(N,Q,M,O,P,false);},addFocusListener:function(N,M,O,P){return this._addListener(N,K,M,O,P,true);},removeFocusListener:function(N,M){return this.removeListener(N,K,M);},addBlurListener:function(N,M,O,P){return this._addListener(N,L,M,O,P,true);},removeBlurListener:function(N,M){return this.removeListener(N,L,M);},fireLegacyEvent:function(R,P){var T=true,M,V,U,N,S;V=E[P].slice();for(var O=0,Q=V.length;O<Q;++O){U=V[O];if(U&&U[this.WFN]){N=U[this.ADJ_SCOPE];S=U[this.WFN].call(N,R);T=(T&&S);}}M=G[P];if(M&&M[2]){M[2](R);}return T;},getLegacyIndex:function(N,O){var M=this.generateId(N)+O;if(typeof B[M]=="undefined"){r
eturn -1;}else{return B[M];}},useLegacyEvent:function(M,N){return(this.webkit&&this.webkit<419&&("click"==N||"dblclick"==N));},removeListener:function(N,M,V){var Q,T,X;if(typeof N=="string"){N=this.getEl(N);}else{if(this._isValidCollection(N)){var W=true;for(Q=N.length-1;Q>-1;Q--){W=(this.removeListener(N[Q],M,V)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[3];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q<T;++Q){X=O[Q];if(X&&X[this.EL]==N&&X[this.TYPE]==M&&X[this.FN]==V){O.splice(Q,1);break;}}}}else{try{this._simpleRemove(N,M,R[this.WFN],false);}catch(U){this.lastError=U;return false;}}delete I[S][this.WFN];delete I[S][this.FN];
-I.splice(S,1);return true;},getTarget:function(O,N){var M=O.target||O.srcElement;return this.resolveTextNode(M);},resolveTextNode:function(N){try{if(N&&3==N.nodeType){return N.parentNode;}}catch(M){}return N;},getPageX:function(N){var M=N.pageX;if(!M&&0!==M){M=N.clientX||0;if(this.isIE){M+=this._getScrollLeft();}}return M;},getPageY:function(M){var N=M.pageY;if(!N&&0!==N){N=M.clientY||0;if(this.isIE){N+=this._getScrollTop();}}return N;},getXY:function(M){return[this.getPageX(M),this.getPageY(M)];},getRelatedTarget:function(N){var M=N.relatedTarget;if(!M){if(N.type=="mouseout"){M=N.toElement;}else{if(N.type=="mouseover"){M=N.fromElement;}}}return this.resolveTextNode(M);},getTime:function(O){if(!O.time){var N=new Date().getTime();try{O.time=N;}catch(M){this.lastError=M;return N;}}return O.time;},stopEvent:function(M){this.stopPropagation(M);this.preventDefault(M);},stopPropagation:function(M){if(M.stopPropagation){M.stopPropagation();}else{M.cancelBubble=true;}},preventDefaul
t:function(M){if(M.preventDefault){M.preventDefault();}else{M.returnValue=false;}},getEvent:function(O,M){var N=O||window.event;if(!N){var P=this.getEvent.caller;while(P){N=P.arguments[0];if(N&&Event==N.constructor){break;}P=P.caller;}}return N;},getCharCode:function(N){var M=N.keyCode||N.charCode||0;if(YAHOO.env.ua.webkit&&(M in D)){M=D[M];}return M;},_getCacheIndex:function(Q,R,P){for(var O=0,N=I.length;O<N;O=O+1){var M=I[O];if(M&&M[this.FN]==P&&M[this.EL]==Q&&M[this.TYPE]==R){return O;}}return -1;},generateId:function(M){var N=M.id;if(!N){N="yuievtautoid-"+A;++A;M.id=N;}return N;},_isValidCollection:function(N){try{return(N&&typeof N!=="string"&&N.length&&!N.tagName&&!N.alert&&typeof N[0]!=="undefined");}catch(M){return false;}},elCache:{},getEl:function(M){return(typeof M==="string")?document.getElementById(M):M;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(N){if(!H){H=true;var M=YAHOO.util.Event;M._ready();M._tryPrelo
adAttach();}},_ready:function(N){var M=YAHOO.util.Event;if(!M.DOMReady){M.DOMReady=true;M.DOMReadyEvent.fire();M._simpleRemove(document,"DOMContentLoaded",M._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;if(this._interval){clearInterval(this._interval);this._interval=null;}return;}if(this.locked){return;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.locked=true;var S=!H;if(!S){S=(C>0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.overrideContext){if(W.overrideContext===true){U=W.obj;}else{U=W.overrideContext;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N<M;N=N+1){Q=F[N];if(Q){P=this.getEl(Q.id);if(P){if(Q.checkReady){if(H||P.nextSibling||!S){O.push(Q);F[N]=null;}}else{T(P,Q);F[N]=null;}}else{R.push(Q);}}}for(N=0,M=O.length;N<M;N=N+1){Q=O[N];T(this.getEl(Q.id),Q);}C--;if(S){for(N=F.length-1;N>-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{if(this._interval){clearInterval(this._interval);this._
interval=null;}}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this.removeListener(O,N.type,N.fn);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P<M;++P){this.purgeElement(O.childNodes[P],R,T);}}},getListeners:function(O,M){var R=[],N;if(!M){N=[I,J];}else{if(M==="unload"){N=[J];}else{N=[I];}}var T=(YAHOO.lang.isString(O))?this.getEl(O):O;for(var Q=0;Q<N.length;Q=Q+1){var V=N[Q];if(V){for(var S=0,U=V.length;S<U;++S){var P=V[S];if(P&&P[this.EL]===T&&(!M||M===P[this.TYPE])){R.push({type:P[this.TYPE],fn:P[this.FN],obj:P[this.OBJ],adjust:P[this.OVERRIDE],scope:P[this.ADJ_SCOPE],index:S});}}}}return(R.length)?R:null;},_unload:function(T){var N=YAHOO.util.Event,Q,P,O,S,R,U=J.slice(),M;for(Q=0,S=J.length;Q<S;++Q){O=U[Q];if(O){M=window;if(O[N.ADJ_SCOPE]){if(O[N.ADJ_SCOPE]===true){M=O[N.UNLOAD_OBJ];}else{M=O[N.ADJ_SCOPE];}}O[N.FN].call(M,N.getEvent(T,O[
N.EL]),O[N.UNLOAD_OBJ]);U[Q]=null;}}O=null;M=null;J=null;if(I){for(P=I.length-1;P>-1;P--){O=I[P];if(O){N.removeListener(O[N.EL],O[N.TYPE],O[N.FN],P);}}O=null;}G=null;N._simpleRemove(window,"unload",N._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}(
);(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
-/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
-if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);
-}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].overrideContext);}}}return I[G];},fireEvent:function(E,D,A,C){th
is.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(
J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.7.0",build:"1796"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.7.0", build: "1796"});
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom;return{useShim:false,_shimActive:false,_shimState:false,_debugShim:false,_createShim:function(){var C=document.createElement("div");C.id="yui-ddm-shim";if(document.body.firstChild){document.body.insertBefore(C,document.body.firstChild);}else{document.body.appendChild(C);}C.style.display="none";C.style.backgroundColor="red";C.style.position="absolute";C.style.zIndex="99999";B.setStyle(C,"opacity","0");this._shim=C;A.on(C,"mouseup",this.handleMouseUp,this,true);A.on(C,"mousemove",this.handleMouseMove,this,true);A.on(window,"scroll",this._sizeShim,this,true);},_sizeShim:function(){if(this._shimActive){var C=this._shim;C.style.height=B.getDocumentHeight()+"px";C.style.width=B.getDocumentWidth()+"px";C.style.top="0";C.style.left="0";}},_activateShim:function(){if(this.useShim){if(!this._shim){this._createShim();}this._shimActive=true;var C=this._shim,D="0";if(this._debugShim){D="
.5";}B.setStyle(C,"opacity",D);this._sizeShim();C.style.display="block";}},_deactivateShim:function(){this._shim.style.display="none";this._shimActive=false;},_shim:null,ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(E,D){for(var F in this.ids){for(var C in this.ids[F]){var G=this.ids[F][C];if(!this.isTypeOfDD(G)){continue;}G[E].apply(G,D);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(C){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locatio
nCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(D,C){if(!this.initialized){this.init();}if(!this.ids[C]){this.ids[C]={};}this.ids[C][D.id]=D;},removeDDFromGroup:function(E,C){if(!this.ids[C]){this.ids[C]={};}var D=this.ids[C];if(D&&D[E.id]){delete D[E.id];}},_remove:function(E){for(var D in E.groups){if(D){var C=this.ids[D];if(C&&C[E.id]){delete C[E.id];}}}delete this.handleIds[E.id];},regHandle:function(D,C){if(!this.handleIds[D]){this.handleIds[D]={};}this.handleIds[D][C]=C;},isDragDrop:function(C){return(this.getDDById(C))?true:false;},getRelated:function(H,D){var G=[];for(var F in H.groups){for(var E in this.ids[F]){var C=this.ids[F][E];if(!this.isTypeOfDD(C)){continue;}if(!D||C.isTarget){G[G.length]=C;}}}return G;},isLegalTarget:function(G,F){var D=this.getRelated(G,true);for(var E=0,C=D.length;E<C;++E){if(D[E].id==F.id){return true;}}return false;},isTypeOfDD:
function(C){return(C&&C.__ygDragDrop);},isHandle:function(D,C){return(this.handleIds[D]&&this.handleIds[D][C]);},getDDById:function(D){for(var C in this.ids){if(this.ids[C][D]){return this.ids[C][D];}}return null;},handleMouseDown:function(E,D){this.currentTarget=YAHOO.util.Event.getTarget(E);this.dragCurrent=D;var C=D.getEl();this.startX=YAHOO.util.Event.getPageX(E);this.startY=YAHOO.util.Event.getPageY(E);this.deltaX=this.startX-C.offsetLeft;this.deltaY=this.startY-C.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var F=YAHOO.util.DDM;F.startDrag(F.startX,F.startY);F.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(C,E){if(this.dragCurrent&&this.dragCurrent.useShim){this._shimState=this.useShim;this.useShim=true;}this._activateShim();clearTimeout(this.clickTimeout);var D=this.dragCurrent;if(D&&D.events.b4StartDrag){D.b4StartDrag(C,E);D.fireEvent("b4StartDragEvent",{x:C,y:E});}if(D&&D.events.startDrag){D.startDrag(C,E);D.fireEvent("st
artDragEvent",{x:C,y:E});}this.dragThreshMet=true;},handleMouseUp:function(C){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.fromTimeout=false;this.handleMouseMove(C);}this.fromTimeout=false;this.fireEvents(C,true);}else{}this.stopDrag(C);this.stopEvent(C);}},stopEvent:function(C){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(C);}if(this.preventDefault){YAHOO.util.Event.preventDefault(C);}},stopDrag:function(E,D){var C=this.dragCurrent;if(C&&!D){if(this.dragThreshMet){if(C.events.b4EndDrag){C.b4EndDrag(E);C.fireEvent("b4EndDragEvent",{e:E});}if(C.events.endDrag){C.endDrag(E);C.fireEvent("endDragEvent",{e:E});}}if(C.events.mouseUp){C.onMouseUp(E);C.fireEvent("mouseUpEvent",{e:E});}}if(this._shimActive){this._deactivateShim();if(this.dragCurrent&&this.dragCurrent.useShim){this.useShim=this._shimState;this._shimState=false;}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(F){var C=this.dragCur
rent;if(C){if(YAHOO.util.Event.isIE&&!F.button){this.stopEvent(F);return this.handleMouseUp(F);}else{if(F.clientX<0||F.clientY<0){}}if(!this.dragThreshMet){var E=Math.abs(this.startX-YAHOO.util.Event.getPageX(F));var D=Math.abs(this.startY-YAHOO.util.Event.getPageY(F));if(E>this.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(V,L){var a=this.dragCurrent;if(!a||a.isLocked()||a.dragOnly){return;}var N=YAHOO.util.Event.getPageX(V),M=YAHOO.util.Event.getPageY(V),P=new YAHOO.util.Point(N,M),K=a.getTargetCoord(P.x,P.y),F=a.getDragEl(),E=["out","over","drop","enter"],U=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},Q=[],c={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var S in this
.dragOvers){var d=this.dragOvers[S];if(!this.isTypeOfDD(d)){continue;
-}if(!this.isOverTarget(P,d,this.mode,U)){c.outEvts.push(d);}I[S]=true;delete this.dragOvers[S];}for(var R in a.groups){if("string"!=typeof R){continue;}for(S in this.ids[R]){var G=this.ids[R][S];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=a){if(this.isOverTarget(P,G,this.mode,U)){D[R]=true;if(L){c.dropEvts.push(G);}else{if(!I[G.id]){c.enterEvts.push(G);}else{c.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:c.outEvts,enter:c.enterEvts,over:c.overEvts,drop:c.dropEvts,point:P,draggedRegion:U,sourceRegion:this.locationCache[a.id],validDrop:L};for(var C in D){Q.push(C);}if(L&&!c.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(V);a.fireEvent("invalidDropEvent",{e:V});}}for(S=0;S<E.length;S++){var Y=null;if(c[E[S]+"Evts"]){Y=c[E[S]+"Evts"];}if(Y&&Y.length){var H=E[S].charAt(0).toUpperCase()+E[S].substr(1),X="onDrag"+H,J="b4Drag"+H,O="drag"+H+"Event",W="drag"+H;if(this.mode){if(a.events[J]
){a[J](V,Y,Q);a.fireEvent(J+"Event",{event:V,info:Y,group:Q});}if(a.events[W]){a[X](V,Y,Q);a.fireEvent(O,{event:V,info:Y,group:Q});}}else{for(var Z=0,T=Y.length;Z<T;++Z){if(a.events[J]){a[J](V,Y[Z].id,Q[0]);a.fireEvent(J+"Event",{event:V,info:Y[Z].id,group:Q[0]});}if(a.events[W]){a[X](V,Y[Z].id,Q[0]);a.fireEvent(O,{event:V,info:Y[Z].id,group:Q[0]});}}}}}},getBestMatch:function(E){var G=null;var D=E.length;if(D==1){G=E[0];}else{for(var F=0;F<D;++F){var C=E[F];if(this.mode==this.INTERSECT&&C.cursorIsOver){G=C;break;}else{if(!G||!G.overlap||(C.overlap&&G.overlap.getArea()<C.overlap.getArea())){G=C;}}}}return G;},refreshCache:function(D){var F=D||this.ids;for(var C in F){if("string"!=typeof C){continue;}for(var E in this.ids[C]){var G=this.ids[C][E];if(this.isTypeOfDD(G)){var H=this.getLocation(G);if(H){this.locationCache[G.id]=H;}else{delete this.locationCache[G.id];}}}}},verifyEl:function(D){try{if(D){var C=D.offsetParent;if(C){return true;}}}catch(E){}return false;},getLocati
on:function(H){if(!this.isTypeOfDD(H)){return null;}var F=H.getEl(),K,E,D,M,L,N,C,J,G;try{K=YAHOO.util.Dom.getXY(F);}catch(I){}if(!K){return null;}E=K[0];D=E+F.offsetWidth;M=K[1];L=M+F.offsetHeight;N=M-H.padding[0];C=D+H.padding[1];J=L+H.padding[2];G=E-H.padding[3];return new YAHOO.util.Region(N,C,J,G);},isOverTarget:function(K,C,E,F){var G=this.locationCache[C.id];if(!G||!this.useCache){G=this.getLocation(C);this.locationCache[C.id]=G;}if(!G){return false;}C.cursorIsOver=G.contains(K);var J=this.dragCurrent;if(!J||(!E&&!J.constrainX&&!J.constrainY)){return C.cursorIsOver;}C.overlap=null;if(!F){var H=J.getTargetCoord(K.x,K.y);var D=J.getDragEl();F=new YAHOO.util.Region(H.y,H.x+D.offsetWidth,H.y+D.offsetHeight,H.x);}var I=F.intersect(G);if(I){C.overlap=I;return(E)?true:C.cursorIsOver;}else{return false;}},_onUnload:function(D,C){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCa
che:{},getElWrapper:function(D){var C=this.elementCache[D];if(!C||!C.el){C=this.elementCache[D]=new this.ElementWrapper(YAHOO.util.Dom.get(D));}return C;},getElement:function(C){return YAHOO.util.Dom.get(C);},getCss:function(D){var C=YAHOO.util.Dom.get(D);return(C)?C.style:null;},ElementWrapper:function(C){this.el=C||null;this.id=this.el&&C.id;this.css=this.el&&C.style;},getPosX:function(C){return YAHOO.util.Dom.getX(C);},getPosY:function(C){return YAHOO.util.Dom.getY(C);},swapNode:function(E,C){if(E.swapNode){E.swapNode(C);}else{var F=C.parentNode;var D=C.nextSibling;if(D==E){F.insertBefore(E,C);}else{if(C==E.nextSibling){F.insertBefore(C,E);}else{E.parentNode.replaceChild(C,E);F.insertBefore(E,D);}}}},getScroll:function(){var E,C,F=document.documentElement,D=document.body;if(F&&(F.scrollTop||F.scrollLeft)){E=F.scrollTop;C=F.scrollLeft;}else{if(D){E=D.scrollTop;C=D.scrollLeft;}else{}}return{top:E,left:C};},getStyle:function(D,C){return YAHOO.util.Dom.getStyle(D,C);},getScro
llTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(C,E){var D=YAHOO.util.Dom.getXY(E);YAHOO.util.Dom.setXY(C,D);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(D,C){return(D-C);},_timeoutCount:0,_addListeners:function(){var C=YAHOO.util.DDM;if(YAHOO.util.Event&&document){C._onLoad();}else{if(C._timeoutCount>2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototy
pe={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:funct
ion(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);
-}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.
config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this
.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.
mouseDown){H=this.fireEvent("mouseDownEvent",J);}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="str
ing"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+
C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint
;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);
-}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDe
lta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScroll
Left();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return;}var
F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle
(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DD
M.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.7.0",build:"1796"});/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-(function(){var B=YAHOO.util.Dom.getXY,A=YAHOO.util.Event,D=Array.prototype.slice;function C(G,E,F,H){C.ANIM_AVAIL=(!YAHOO.lang.isUndefined(YAHOO.util.Anim));if(G){this.init(G,E,true);this.initSlider(H);this.initThumb(F);}}YAHOO.lang.augmentObject(C,{getHorizSlider:function(F,G,I,H,E){return new C(F,F,new YAHOO.widget.SliderThumb(G,F,I,H,0,0,E),"horiz");},getVertSlider:function(G,H,E,I,F){return new C(G,G,new YAHOO.widget.SliderThumb(H,G,0,0,E,I,F),"vert");},getSliderRegion:function(G,H,J,I,E,K,F){return new C(G,G,new YAHOO.widget.SliderThumb(H,G,J,I,E,K,F),"region");},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(C,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(E){this.type=E;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=C.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncremen
t=20;this.moveComplete=true;this.animationDuration=0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0];},initThumb:function(F){var E=this;this.thumb=F;F.cacheBetweenDrags=true;if(F._isHoriz&&F.xTicks&&F.xTicks.length){this.tickPause=Math.round(360/F.xTicks.length);}else{if(F.yTicks&&F.yTicks.length){this.tickPause=Math.round(360/F.yTicks.length);}}F.onAvailable=function(){return E.setStartSliderState();};F.onMouseDown=function(){E._mouseDown=true;return E.focus();};F.startDrag=function(){E._slideStart();};F.onDrag=function(){E.fireEvents(true);};F.onMouseUp=function(){E.thumbMouseUp();};},onAvailable:function(){this._bindKeyEvents();},_bindKeyEvents:function(){A.on(this.id,"keydown",this.handleKeyDown,this,true);A.on(this.id,"keypress",this.handleKeyPress,this,true);},handleKeyPress:function(F){if(this.enableKeys){var E=A.getCharCode(F);switch(E){case 37:case 38:case 39:case 40:case 36:case 35:A.preventDefault(
F);break;default:}}},handleKeyDown:function(J){if(this.enableKeys){var G=A.getCharCode(J),F=this.thumb,H=this.getXValue(),E=this.getYValue(),I=true;switch(G){case 37:H-=this.keyIncrement;break;case 38:E-=this.keyIncrement;break;case 39:H+=this.keyIncrement;break;case 40:E+=this.keyIncrement;break;case 36:H=F.leftConstraint;E=F.topConstraint;break;case 35:H=F.rightConstraint;E=F.bottomConstraint;break;default:I=false;}if(I){if(F._isRegion){this._setRegionValue(C.SOURCE_KEY_EVENT,H,E,true);}else{this._setValue(C.SOURCE_KEY_EVENT,(F._isHoriz?H:E),true);}A.stopEvent(J);}}},setStartSliderState:function(){this.setThumbCenterPoint();this.baselinePos=B(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion){if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null;}else{this.setRegionValue(0,0,true,true,true);}}else{if(this.deferredSetValue){this._setValue.apply
(this,this.deferredSetValue);this.deferredSetValue=null;}else{this.setValue(0,true,true,true);}}},setThumbCenterPoint:function(){var E=this.thumb.getEl();if(E){this.thumbCenterPoint={x:parseInt(E.offsetWidth/2,10),y:parseInt(E.offsetHeight/2,10)};}},lock:function(){this.thumb.lock();this.locked=true;},unlock:function(){this.thumb.unlock();this.locked=false;},thumbMouseUp:function(){this._mouseDown=false;if(!this.isLocked()&&!this.moveComplete){this.endMove();}},onMouseUp:function(){this._mouseDown=false;if(this.backgroundEnabled&&!this.isLocked()&&!this.moveComplete){this.endMove();}},getThumb:function(){return this.thumb;},focus:function(){this.valueChangeSource=C.SOURCE_UI_EVENT;var E=this.getEl();if(E.focus){try{E.focus();}catch(F){}}this.verifyOffset();return !this.isLocked();},onChange:function(E,F){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue();},getXValue:function(){return this.thumb.getXValue();},getYValue:functio
n(){return this.thumb.getYValue();},setValue:function(){var E=D.call(arguments);E.unshift(C.SOURCE_SET_VALUE);return this._setValue.apply(this,E);},_setValue:function(I,L,G,H,E){var F=this.thumb,K,J;if(!F.available){this.deferredSetValue=arguments;return false;}if(this.isLocked()&&!H){return false;}if(isNaN(L)){return false;}if(F._isRegion){return false;}this._silent=E;this.valueChangeSource=I||C.SOURCE_SET_VALUE;F.lastOffset=[L,L];this.verifyOffset(true);this._slideStart();if(F._isHoriz){K=F.initPageX+L+this.thumbCenterPoint.x;this.moveThumb(K,F.initPageY,G);}else{J=F.initPageY+L+this.thumbCenterPoint.y;this.moveThumb(F.initPageX,J,G);}return true;},setRegionValue:function(){var E=D.call(arguments);E.unshift(C.SOURCE_SET_VALUE);return this._setRegionValue.apply(this,E);},_setRegionValue:function(F,J,H,I,G,K){var L=this.thumb,E,M;if(!L.available){this.deferredSetRegionValue=arguments;return false;}if(this.isLocked()&&!G){return false;}if(isNaN(J)){return false;}if(!L._isRegi
on){return false;}this._silent=K;this.valueChangeSource=F||C.SOURCE_SET_VALUE;L.lastOffset=[J,H];this.verifyOffset(true);this._slideStart();E=L.initPageX+J+this.thumbCenterPoint.x;M=L.initPageY+H+this.thumbCenterPoint.y;this.moveThumb(E,M,I);return true;},verifyOffset:function(F){var G=B(this.getEl()),E=this.thumb;if(!this.thumbCenterPoint||!this.thumbCenterPoint.x){this.setThumbCenterPoint();}if(G){if(G[0]!=this.baselinePos[0]||G[1]!=this.baselinePos[1]){this.setInitPosition();this.baselinePos=G;E.initPageX=this.initPageX+E.startOffset[0];E.initPageY=this.initPageY+E.startOffset[1];E.deltaSetXY=null;this.resetThumbConstraints();return false;}}return true;},moveThumb:function(K,J,I,G){var L=this.thumb,M=this,F,E,H;if(!L.available){return;}L.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);E=L.getTargetCoord(K,J);F=[Math.round(E.x),Math.round(E.y)];if(this.animate&&L._graduated&&!I){this.lock();this.curCoord=B(this.thumb.getEl());this.curCoord=[Math.round(this.curCoo
rd[0]),Math.round(this.curCoord[1])];setTimeout(function(){M.moveOneTick(F);
-},this.tickPause);}else{if(this.animate&&C.ANIM_AVAIL&&!I){this.lock();H=new YAHOO.util.Motion(L.id,{points:{to:F}},this.animationDuration,YAHOO.util.Easing.easeOut);H.onComplete.subscribe(function(){M.unlock();if(!M._mouseDown){M.endMove();}});H.animate();}else{L.setDragElPos(K,J);if(!G&&!this._mouseDown){this.endMove();}}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart();this.fireEvent("slideStart");}this._sliding=true;}},_slideEnd:function(){if(this._sliding&&this.moveComplete){var E=this._silent;this._sliding=false;this._silent=false;this.moveComplete=false;if(!E){this.onSlideEnd();this.fireEvent("slideEnd");}}},moveOneTick:function(F){var H=this.thumb,G=this,I=null,E,J;if(H._isRegion){I=this._getNextX(this.curCoord,F);E=(I!==null)?I[0]:this.curCoord[0];I=this._getNextY(this.curCoord,F);J=(I!==null)?I[1]:this.curCoord[1];I=E!==this.curCoord[0]||J!==this.curCoord[1]?[E,J]:null;}else{if(H._isHoriz){I=this._getNextX(this.curCoord,F);}else{I=t
his._getNextY(this.curCoord,F);}}if(I){this.curCoord=I;this.thumb.alignElWithMouse(H.getEl(),I[0]+this.thumbCenterPoint.x,I[1]+this.thumbCenterPoint.y);if(!(I[0]==F[0]&&I[1]==F[1])){setTimeout(function(){G.moveOneTick(F);},this.tickPause);}else{this.unlock();if(!this._mouseDown){this.endMove();}}}else{this.unlock();if(!this._mouseDown){this.endMove();}}},_getNextX:function(E,F){var H=this.thumb,J,G=[],I=null;if(E[0]>F[0]){J=H.tickSize-this.thumbCenterPoint.x;G=H.getTargetCoord(E[0]-J,E[1]);I=[G.x,G.y];}else{if(E[0]<F[0]){J=H.tickSize+this.thumbCenterPoint.x;G=H.getTargetCoord(E[0]+J,E[1]);I=[G.x,G.y];}else{}}return I;},_getNextY:function(E,F){var H=this.thumb,J,G=[],I=null;if(E[1]>F[1]){J=H.tickSize-this.thumbCenterPoint.y;G=H.getTargetCoord(E[0],E[1]-J);I=[G.x,G.y];}else{if(E[1]<F[1]){J=H.tickSize+this.thumbCenterPoint.y;G=H.getTargetCoord(E[0],E[1]+J);I=[G.x,G.y];}else{}}return I;},b4MouseDown:function(E){if(!this.backgroundEnabled){return false;}this.thumb.autoOffset();th
is.resetThumbConstraints();},onMouseDown:function(F){if(!this.backgroundEnabled||this.isLocked()){return false;}this._mouseDown=true;var E=A.getPageX(F),G=A.getPageY(F);this.focus();this._slideStart();this.moveThumb(E,G);},onDrag:function(F){if(this.backgroundEnabled&&!this.isLocked()){var E=A.getPageX(F),G=A.getPageY(F);this.moveThumb(E,G,true,true);this.fireEvents();}},endMove:function(){this.unlock();this.fireEvents();this.moveComplete=true;this._slideEnd();},resetThumbConstraints:function(){var E=this.thumb;E.setXConstraint(E.leftConstraint,E.rightConstraint,E.xTickSize);E.setYConstraint(E.topConstraint,E.bottomConstraint,E.xTickSize);},fireEvents:function(G){var F=this.thumb,I,H,E;if(!G){F.cachePosition();}if(!this.isLocked()){if(F._isRegion){I=F.getXValue();H=F.getYValue();if(I!=this.previousX||H!=this.previousY){if(!this._silent){this.onChange(I,H);this.fireEvent("change",{x:I,y:H});}}this.previousX=I;this.previousY=H;}else{E=F.getValue();if(E!=this.previousVal){if(!t
his._silent){this.onChange(E);this.fireEvent("change",E);}}this.previousVal=E;}}},toString:function(){return("Slider ("+this.type+") "+this.id);}});YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);YAHOO.widget.Slider=C;})();YAHOO.widget.SliderThumb=function(G,B,E,D,A,F,C){if(G){YAHOO.widget.SliderThumb.superclass.constructor.call(this,G,B);this.parentElId=B;}this.isTarget=false;this.tickSize=C;this.maintainOffset=true;this.initSlider(E,D,A,F,C);this.scroll=false;};YAHOO.extend(YAHOO.widget.SliderThumb,YAHOO.util.DD,{startOffset:null,dragOnly:true,_isHoriz:false,_prevVal:0,_graduated:false,getOffsetFromParent0:function(C){var A=YAHOO.util.Dom.getXY(this.getEl()),B=C||YAHOO.util.Dom.getXY(this.parentElId);return[(A[0]-B[0]),(A[1]-B[1])];},getOffsetFromParent:function(H){var A=this.getEl(),E,I,F,B,K,D,C,J,G;if(!this.deltaOffset){I=YAHOO.util.Dom.getXY(A);F=H||YAHOO.util.Dom.getXY(this.parentElId);E=[(I[0]-F[0]),(I[1]-F[1])];B=parseInt(YAHOO.util.Dom.getStyle(A,"left"),10);K=
parseInt(YAHOO.util.Dom.getStyle(A,"top"),10);D=B-E[0];C=K-E[1];if(isNaN(D)||isNaN(C)){}else{this.deltaOffset=[D,C];}}else{J=parseInt(YAHOO.util.Dom.getStyle(A,"left"),10);G=parseInt(YAHOO.util.Dom.getStyle(A,"top"),10);E=[J+this.deltaOffset[0],G+this.deltaOffset[1]];}return E;},initSlider:function(D,C,A,E,B){this.initLeft=D;this.initRight=C;this.initUp=A;this.initDown=E;this.setXConstraint(D,C,B);this.setYConstraint(A,E,B);if(B&&B>1){this._graduated=true;}this._isHoriz=(D||C);this._isVert=(A||E);this._isRegion=(this._isHoriz&&this._isVert);},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize=0;this._graduated=false;},getValue:function(){return(this._isHoriz)?this.getXValue():this.getYValue();},getXValue:function(){if(!this.available){return 0;}var A=this.getOffsetFromParent();if(YAHOO.lang.isNumber(A[0])){this.lastOffset=A;return(A[0]-this.startOffset[0]);}else{return(this.lastOffset[0]-this.startOffset[0]);}},getYValue:function(){
if(!this.available){return 0;}var A=this.getOffsetFromParent();if(YAHOO.lang.isNumber(A[1])){this.lastOffset=A;return(A[1]-this.startOffset[1]);}else{return(this.lastOffset[1]-this.startOffset[1]);}},toString:function(){return"SliderThumb "+this.id;},onChange:function(A,B){}});(function(){var A=YAHOO.util.Event,B=YAHOO.widget;function C(I,F,H,D){var G=this,J={min:false,max:false},E,K;this.minSlider=I;this.maxSlider=F;this.activeSlider=I;this.isHoriz=I.thumb._isHoriz;E=this.minSlider.thumb.onMouseDown;K=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){G.activeSlider=G.minSlider;E.apply(this,arguments);};this.maxSlider.thumb.onMouseDown=function(){G.activeSlider=G.maxSlider;K.apply(this,arguments);};this.minSlider.thumb.onAvailable=function(){I.setStartSliderState();J.min=true;if(J.max){G.fireEvent("ready",G);}};this.maxSlider.thumb.onAvailable=function(){F.setStartSliderState();J.max=true;if(J.min){G.fireEvent("ready",G);}};I.onMouseDown=F.onMouseD
own=function(L){return this.backgroundEnabled&&G._handleMouseDown(L);
-};I.onDrag=F.onDrag=function(L){G._handleDrag(L);};I.onMouseUp=F.onMouseUp=function(L){G._handleMouseUp(L);};I._bindKeyEvents=function(){G._bindKeyEvents(this);};F._bindKeyEvents=function(){};I.subscribe("change",this._handleMinChange,I,this);I.subscribe("slideStart",this._handleSlideStart,I,this);I.subscribe("slideEnd",this._handleSlideEnd,I,this);F.subscribe("change",this._handleMaxChange,F,this);F.subscribe("slideStart",this._handleSlideStart,F,this);F.subscribe("slideEnd",this._handleSlideEnd,F,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);D=YAHOO.lang.isArray(D)?D:[0,H];D[0]=Math.min(Math.max(parseInt(D[0],10)|0,0),H);D[1]=Math.max(Math.min(parseInt(D[1],10)|0,H),0);if(D[0]>D[1]){D.splice(0,2,D[1],D[0]);}this.minVal=D[0];this.maxVal=D[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true);}C.prototype={minVal:-1,maxVal:-1,minRa
nge:0,_handleSlideStart:function(E,D){this.fireEvent("slideStart",D);},_handleSlideEnd:function(E,D){this.fireEvent("slideEnd",D);},_handleDrag:function(D){B.Slider.prototype.onDrag.call(this.activeSlider,D);},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue();},_handleMaxChange:function(){this.activeSlider=this.maxSlider;this.updateValue();},_bindKeyEvents:function(D){A.on(D.id,"keydown",this._handleKeyDown,this,true);A.on(D.id,"keypress",this._handleKeyPress,this,true);},_handleKeyDown:function(D){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments);},_handleKeyPress:function(D){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments);},setValues:function(H,K,I,E,J){var F=this.minSlider,M=this.maxSlider,D=F.thumb,L=M.thumb,N=this,G={min:false,max:false};if(D._isHoriz){D.setXConstraint(D.leftConstraint,L.rightConstraint,D.tickSize);L.setXConstraint(D.leftConstraint,L.rightConstraint,L.tickSize);}else{D.setYConstraint(D.t
opConstraint,L.bottomConstraint,D.tickSize);L.setYConstraint(D.topConstraint,L.bottomConstraint,L.tickSize);}this._oneTimeCallback(F,"slideEnd",function(){G.min=true;if(G.max){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});this._oneTimeCallback(M,"slideEnd",function(){G.max=true;if(G.min){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});F.setValue(H,I,E,false);M.setValue(K,I,E,false);},setMinValue:function(F,H,I,E){var G=this.minSlider,D=this;this.activeSlider=G;D=this;this._oneTimeCallback(G,"slideEnd",function(){D.updateValue(E);setTimeout(function(){D._cleanEvent(G,"slideEnd");},0);});G.setValue(F,H,I);},setMaxValue:function(D,H,I,F){var G=this.maxSlider,E=this;this.activeSlider=G;this._oneTimeCallback(G,"slideEnd",function(){E.updateValue(F);setTimeout(function(){E._cleanEvent(G,"slideEnd");},0);});G.setValue(D,H,I);},updateValue:function(J){var E=this.minSlide
r.getValue(),K=this.maxSlider.getValue(),F=false,D,M,H,I,L,G;if(E!=this.minVal||K!=this.maxVal){F=true;D=this.minSlider.thumb;M=this.maxSlider.thumb;H=this.isHoriz?"x":"y";G=this.minSlider.thumbCenterPoint[H]+this.maxSlider.thumbCenterPoint[H];I=Math.max(K-G-this.minRange,0);L=Math.min(-E-G-this.minRange,0);if(this.isHoriz){I=Math.min(I,M.rightConstraint);D.setXConstraint(D.leftConstraint,I,D.tickSize);M.setXConstraint(L,M.rightConstraint,M.tickSize);}else{I=Math.min(I,M.bottomConstraint);D.setYConstraint(D.leftConstraint,I,D.tickSize);M.setYConstraint(L,M.bottomConstraint,M.tickSize);}}this.minVal=E;this.maxVal=K;if(F&&!J){this.fireEvent("change",this);}},selectActiveSlider:function(H){var E=this.minSlider,D=this.maxSlider,J=E.isLocked()||!E.backgroundEnabled,G=D.isLocked()||!E.backgroundEnabled,F=YAHOO.util.Event,I;if(J||G){this.activeSlider=J?D:E;}else{if(this.isHoriz){I=F.getPageX(H)-E.thumb.initPageX-E.thumbCenterPoint.x;}else{I=F.getPageY(H)-E.thumb.initPageY-E.thumbCe
nterPoint.y;}this.activeSlider=I*2>D.getValue()+E.getValue()?D:E;}},_handleMouseDown:function(D){if(!D._handled){D._handled=true;this.selectActiveSlider(D);return B.Slider.prototype.onMouseDown.call(this.activeSlider,D);}else{return false;}},_handleMouseUp:function(D){B.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments);},_oneTimeCallback:function(F,D,E){F.subscribe(D,function(){F.unsubscribe(D,arguments.callee);E.apply({},[].slice.apply(arguments));});},_cleanEvent:function(K,E){var J,I,D,G,H,F;if(K.__yui_events&&K.events[E]){for(I=K.__yui_events.length;I>=0;--I){if(K.__yui_events[I].type===E){J=K.__yui_events[I];break;}}if(J){H=J.subscribers;F=[];G=0;for(I=0,D=H.length;I<D;++I){if(H[I]){F[G++]=H[I];}}J.subscribers=F;}}}};YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);B.Slider.getHorizDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,G,0,0,F),E=new B.SliderThumb(K,H,0,G,0,0,F);return new C(new B.Slider(H,H,I,"horiz"),new B.Slider(H,H,E,"horiz"),
G,D);};B.Slider.getVertDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,0,0,G,F),E=new B.SliderThumb(K,H,0,0,0,G,F);return new B.DualSlider(new B.Slider(H,H,I,"vert"),new B.Slider(H,H,E,"vert"),G,D);};YAHOO.widget.DualSlider=C;})();YAHOO.register("slider",YAHOO.widget.Slider,{version:"2.7.0",build:"1796"});/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,setter:null,getter:null,validator:null,getValue:function(){var A=this.value;if(this.getter){A=this.getter.call(this.owner,this.name);}return A;},setValue:function(F,B){var E,A=this.owner,C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.setter){F=this.setter.call(A,F,this.name);if(F===undefined){}}if(this.method){this.method.call(A,F,this.name);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};if(C){this._written=false;}this._initialConfig=this._initialConfig||{};for(va
r A in B){if(B.hasOwnProperty(A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig,true);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B||!this._configs.hasOwnProperty(C)){return null;}return B.getValue();},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var C=[],B;for(B in this._configs){if(A.hasOwnProperty(this._configs,B)&&!A.isUndefined(this._configs[B])){C[C.length]=B;}}return C;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._co
nfigs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs||{};var F=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(F.hasOwnProperty(E[D])){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)
){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var B=YAHOO.util.Dom,C=YAHOO.util.AttributeProvider;var A=function(D,E){this.init.apply(this,arguments);};A.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"focus":true,"blur":true,"submit":true,"change":true};A.prototype={DOM_EVENTS:null,DEFAULT_HTML_SETTER:
function(F,D){var E=this.get("element");if(E){E[D]=F;}},DEFAULT_HTML_GETTER:function(D){var E=this.get("element"),F;if(E){F=E[D];}return F;},appendChild:function(D){D=D.get?D.get("element"):D;return this.get("element").appendChild(D);},getElementsByTagName:function(D){return this.get("element").getElementsByTagName(D);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(D,E){D=D.get?D.get("element"):D;E=(E&&E.get)?E.get("element"):E;return this.get("element").insertBefore(D,E);},removeChild:function(D){D=D.get?D.get("element"):D;return this.get("element").removeChild(D);},replaceChild:function(D,E){D=D.get?D.get("element"):D;E=E.get?E.get("element"):E;return this.get("element").replaceChild(D,E);},initAttributes:function(D){},addListener:function(H,G,I,F){var E=this.get("element")||this.get("id");F=F||this;var D=this;if(!this._events[H]){if(E&&this.DOM_EVENTS[H]){YAHOO.util.Event.addListener(E,H,function(J){if(J.srcElement&&!J.target)
{J.target=J.srcElement;}D.fireEvent(H,J);},I,F);}this.createEvent(H,this);}return YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){return this.addListener.apply(this,arguments);},subscribe:function(){return this.addListener.apply(this,arguments);},removeListener:function(E,D){return this.unsubscribe.apply(this,arguments);},addClass:function(D){B.addClass(this.get("element"),D);},getElementsByClassName:function(E,D){return B.getElementsByClassName(E,D,this.get("element"));},hasClass:function(D){return B.hasClass(this.get("element"),D);},removeClass:function(D){return B.removeClass(this.get("element"),D);},replaceClass:function(E,D){return B.replaceClass(this.get("element"),E,D);},setStyle:function(E,D){return B.setStyle(this.get("element"),E,D);},getStyle:function(D){return B.getStyle(this.get("element"),D);},fireQueue:function(){var E=this._queue;for(var F=0,D=E.length;F<D;++F){this[E[F][0]].apply(this,E[F][1]);}},appendTo:function(E,F){E=(E
.get)?E.get("element"):B.get(E);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:E});
-F=(F&&F.get)?F.get("element"):B.get(F);var D=this.get("element");if(!D){return false;}if(!E){return false;}if(D.parent!=E){if(F){E.insertBefore(D,F);}else{E.appendChild(D);}}this.fireEvent("appendTo",{type:"appendTo",target:E});return D;},get:function(D){var F=this._configs||{},E=F.element;if(E&&!F[D]&&!YAHOO.lang.isUndefined(E.value[D])){this._setHTMLAttrConfig(D);}return C.prototype.get.call(this,D);},setAttributes:function(J,G){var E={},H=this._configOrder;for(var I=0,D=H.length;I<D;++I){if(J[H[I]]!==undefined){E[H[I]]=true;this.set(H[I],J[H[I]],G);}}for(var F in J){if(J.hasOwnProperty(F)&&!E[F]){this.set(F,J[F],G);}}},set:function(E,G,D){var F=this.get("element");if(!F){this._queue[this._queue.length]=["set",arguments];if(this._configs[E]){this._configs[E].value=G;}return;}if(!this._configs[E]&&!YAHOO.lang.isUndefined(F[E])){this._setHTMLAttrConfig(E);}return C.prototype.set.apply(this,arguments);},setAttributeConfig:function(D,E,F){this._configOrder.push(D);C.prototype.
setAttributeConfig.apply(this,arguments);},createEvent:function(E,D){this._events[E]=true;return C.prototype.createEvent.apply(this,arguments);},init:function(E,D){this._initElement(E,D);},destroy:function(){var D=this.get("element");YAHOO.util.Event.purgeElement(D,true);this.unsubscribeAll();if(D&&D.parentNode){D.parentNode.removeChild(D);}this._queue=[];this._events={};this._configs={};this._configOrder=[];},_initElement:function(F,E){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];E=E||{};E.element=E.element||F||null;var H=false;var D=A.DOM_EVENTS;this.DOM_EVENTS=this.DOM_EVENTS||{};for(var G in D){if(D.hasOwnProperty(G)){this.DOM_EVENTS[G]=D[G];}}if(typeof E.element==="string"){this._setHTMLAttrConfig("id",{value:E.element});}if(B.get(E.element)){H=true;this._initHTMLElement(E);this._initContent(E);}YAHOO.util.Event.onAvailable(E.element,function(){if(!H){this._initHTMLElement(E);}this.fireEvent("available",{
type:"available",target:B.get(E.element)});},this,true);YAHOO.util.Event.onContentReady(E.element,function(){if(!H){this._initContent(E);}this.fireEvent("contentReady",{type:"contentReady",target:B.get(E.element)});},this,true);},_initHTMLElement:function(D){this.setAttributeConfig("element",{value:B.get(D.element),readOnly:true});},_initContent:function(D){this.initAttributes(D);this.setAttributes(D,true);this.fireQueue();},_setHTMLAttrConfig:function(D,F){var E=this.get("element");F=F||{};F.name=D;F.setter=F.setter||this.DEFAULT_HTML_SETTER;F.getter=F.getter||this.DEFAULT_HTML_GETTER;F.value=F.value||E[D];this._configs[D]=new YAHOO.util.Attribute(F,this);}};YAHOO.augment(A,C);YAHOO.util.Element=A;})();YAHOO.register("element",YAHOO.util.Element,{version:"2.7.0",build:"1796"});/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-YAHOO.util.Color=function(){var A="0",B=YAHOO.lang.isArray,C=YAHOO.lang.isNumber;return{real2dec:function(D){return Math.min(255,Math.round(D*256));},hsv2rgb:function(H,O,M){if(B(H)){return this.hsv2rgb.call(this,H[0],H[1],H[2]);}var D,I,L,G=Math.floor((H/60)%6),J=(H/60)-G,F=M*(1-O),E=M*(1-J*O),N=M*(1-(1-J)*O),K;switch(G){case 0:D=M;I=N;L=F;break;case 1:D=E;I=M;L=F;break;case 2:D=F;I=M;L=N;break;case 3:D=F;I=E;L=M;break;case 4:D=N;I=F;L=M;break;case 5:D=M;I=F;L=E;break;}K=this.real2dec;return[K(D),K(I),K(L)];},rgb2hsv:function(D,H,I){if(B(D)){return this.rgb2hsv.apply(this,D);}D/=255;H/=255;I/=255;var G,L,E=Math.min(Math.min(D,H),I),J=Math.max(Math.max(D,H),I),K=J-E,F;switch(J){case E:G=0;break;case D:G=60*(H-I)/K;if(H<I){G+=360;}break;case H:G=(60*(I-D)/K)+120;break;case I:G=(60*(D-H)/K)+240;break;}L=(J===0)?0:1-(E/J);F=[Math.round(G),L,J];return F;},rgb2hex:function(F,E,D){if(B(F)){return this.rgb2hex.apply(this,F);}var G=this.dec2hex;return G(F)+G(E)+G(D);},dec2hex:functi
on(D){D=parseInt(D,10)|0;D=(D>255||D<0)?0:D;return(A+D.toString(16)).slice(-2).toUpperCase();},hex2dec:function(D){return parseInt(D,16);},hex2rgb:function(D){var E=this.hex2dec;return[E(D.slice(0,2)),E(D.slice(2,4)),E(D.slice(4,6))];},websafe:function(F,E,D){if(B(F)){return this.websafe.apply(this,F);}var G=function(H){if(C(H)){H=Math.min(Math.max(0,H),255);var I,J;for(I=0;I<256;I=I+51){J=I+51;if(H>=I&&H<=J){return(H-I>25)?J:I;}}}return H;};return[G(F),G(E),G(D)];}};}();(function(){var J=0,F=YAHOO.util,C=YAHOO.lang,D=YAHOO.widget.Slider,B=F.Color,E=F.Dom,I=F.Event,A=C.substitute,H="yui-picker";function G(L,K){J=J+1;K=K||{};if(arguments.length===1&&!YAHOO.lang.isString(L)&&!L.nodeName){K=L;L=K.element||null;}if(!L&&!K.element){L=this._createHostElement(K);}G.superclass.constructor.call(this,L,K);this.initPicker();}YAHOO.extend(G,YAHOO.util.Element,{ID:{R:H+"-r",R_HEX:H+"-rhex",G:H+"-g",G_HEX:H+"-ghex",B:H+"-b",B_HEX:H+"-bhex",H:H+"-h",S:H+"-s",V:H+"-v",PICKER_BG:H+"-bg",PICK
ER_THUMB:H+"-thumb",HUE_BG:H+"-hue-bg",HUE_THUMB:H+"-hue-thumb",HEX:H+"-hex",SWATCH:H+"-swatch",WEBSAFE_SWATCH:H+"-websafe-swatch",CONTROLS:H+"-controls",RGB_CONTROLS:H+"-rgb-controls",HSV_CONTROLS:H+"-hsv-controls",HEX_CONTROLS:H+"-hex-controls",HEX_SUMMARY:H+"-hex-summary",CONTROLS_LABEL:H+"-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered",SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"\u00B0",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv",RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols
",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var K=document.createElement("div");if(this.CSS.BASE){K.className=this.CSS.BASE;}return K;},_updateHueSlider:function(){var K=this.get(this.OPT.PICKER_SIZE),L=this.get(this.OPT.HUE);L=K-Math.round(L/360*K);if(L===K){L=0;}this.hueSlider.setValue(L,this.skipAnim);},_updatePickerSlider:function(){var L=this.get(this.OPT.PICKER_SIZE),M=this.get(this.OPT.SATURATION),K=this.get(this.OPT.VALUE);M=Math.round(M*L/100);K=Math.round(L-(K*L/100));this.pickerSlider.setRegionValue(M,K,this.skipAnim);},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider();},setValue:function(L,K){K=(K)||false;this.set(this.OPT.RGB,L,K);this._updateSliders();},hueSlider:null,pickerSlider:null,_getH:function(){var
K=this.get(this.OPT.PICKER_SIZE),L=(K-this.hueSlider.getValue())/K;L=Math.round(L*360);return(L===360)?0:L;},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE);},_getV:function(){var K=this.get(this.OPT.PICKER_SIZE);return(K-this.pickerSlider.getYValue())/K;},_updateSwatch:function(){var M=this.get(this.OPT.RGB),O=this.get(this.OPT.WEBSAFE),N=this.getElement(this.ID.SWATCH),L=M.join(","),K=this.get(this.OPT.TXT);E.setStyle(N,"background-color","rgb("+L+")");N.title=A(K.CURRENT_COLOR,{"rgb":"#"+this.get(this.OPT.HEX)});N=this.getElement(this.ID.WEBSAFE_SWATCH);L=O.join(",");E.setStyle(N,"background-color","rgb("+L+")");N.title=A(K.CLOSEST_WEBSAFE,{"rgb":"#"+B.rgb2hex(O)});},_getValuesFromSliders:function(){this.set(this.OPT.RGB,B.hsv2rgb(this._getH(),this._getS(),this._getV()));},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION);this.getElement(t
his.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=B.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=B.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=B.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX);},_onHueSliderChange:function(N){var L=this._getH(),K=B.hsv2rgb(L,1,1),M="rgb("+K.join(",")+")";this.set(this.OPT.HUE,L,true);E.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",M);if(this.hueSlider.valueChangeSource!==D.SOURCE_SET_VALUE){this._getValuesFromSliders();}this._updateFormFields();this._updateSwatch();},_onPickerSliderChange:function(M){var L=this._getS(),K=this._getV();this.set(this.OPT.SATURATION,Math.round(L*100),true);this.set(this.OPT.VALUE,Math.round(K*100
),true);if(this.pickerSlider.valueChangeSource!==D.SOURCE_SET_VALUE){this._getValuesFromSliders();
-}this._updateFormFields();this._updateSwatch();},_getCommand:function(K){var L=I.getCharCode(K);if(L===38){return 3;}else{if(L===13){return 6;}else{if(L===40){return 4;}else{if(L>=48&&L<=57){return 1;}else{if(L>=97&&L<=102){return 2;}else{if(L>=65&&L<=70){return 2;}else{if("8, 9, 13, 27, 37, 39".indexOf(L)>-1||K.ctrlKey||K.metaKey){return 5;}else{return 0;}}}}}}}},_useFieldValue:function(L,K,N){var M=K.value;if(N!==this.OPT.HEX){M=parseInt(M,10);}if(M!==this.get(N)){this.set(N,M);}},_rgbFieldKeypress:function(M,K,O){var N=this._getCommand(M),L=(M.shiftKey)?10:1;switch(N){case 6:this._useFieldValue.apply(this,arguments);break;case 3:this.set(O,Math.min(this.get(O)+L,255));this._updateFormFields();break;case 4:this.set(O,Math.max(this.get(O)-L,0));this._updateFormFields();break;default:}},_hexFieldKeypress:function(L,K,N){var M=this._getCommand(L);if(M===6){this._useFieldValue.apply(this,arguments);}},_hexOnly:function(L,K){var M=this._getCommand(L);switch(M){case 6:case 5:cas
e 1:break;case 2:if(K!==true){break;}default:I.stopEvent(L);return false;}},_numbersOnly:function(K){return this._hexOnly(K,true);},getElement:function(K){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[K]];},_createElements:function(){var N,M,P,O,L,K=this.get(this.OPT.IDS),Q=this.get(this.OPT.TXT),S=this.get(this.OPT.IMAGES),R=function(U,V){var W=document.createElement(U);if(V){C.augmentObject(W,V,true);}return W;},T=function(U,V){var W=C.merge({autocomplete:"off",value:"0",size:3,maxlength:3},V);W.name=W.id;return new R(U,W);};L=this.get("element");N=new R("div",{id:K[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});M=new R("div",{id:K[this.ID.PICKER_THUMB],className:"yui-picker-thumb"});P=new R("img",{src:S.PICKER_THUMB});M.appendChild(P);N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});M=new R("div",{id:K[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"})
;P=new R("img",{src:S.HUE_THUMB});M.appendChild(P);N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.CONTROLS],className:"yui-picker-controls"});L.appendChild(N);L=N;N=new R("div",{className:"hd"});M=new R("a",{id:K[this.ID.CONTROLS_LABEL],href:"#"});N.appendChild(M);L.appendChild(N);N=new R("div",{className:"bd"});L.appendChild(N);L=N;N=new R("ul",{id:K[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});M=new R("li");M.appendChild(document.createTextNode(Q.R+" "));O=new T("input",{id:K[this.ID.R],className:"yui-picker-r"});M.appendChild(O);N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.G+" "));O=new T("input",{id:K[this.ID.G],className:"yui-picker-g"});M.appendChild(O);N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.B+" "));O=new T("input",{id:K[this.ID.B],className:"yui-picker-b"});M.appendChild(O);N.appendChild(M);L.appendChild(N);N=new R("ul",{id:K[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls
"});M=new R("li");M.appendChild(document.createTextNode(Q.H+" "));O=new T("input",{id:K[this.ID.H],className:"yui-picker-h"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.DEG));N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.S+" "));O=new T("input",{id:K[this.ID.S],className:"yui-picker-s"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.PERCENT));N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.V+" "));O=new T("input",{id:K[this.ID.V],className:"yui-picker-v"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.PERCENT));N.appendChild(M);L.appendChild(N);N=new R("ul",{id:K[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});M=new R("li",{id:K[this.ID.R_HEX]});N.appendChild(M);M=new R("li",{id:K[this.ID.G_HEX]});N.appendChild(M);M=new R("li",{id:K[this.ID.B_HEX]});N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});N.appendC
hild(document.createTextNode(Q.HEX+" "));M=new T("input",{id:K[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});N.appendChild(M);L.appendChild(N);L=this.get("element");N=new R("div",{id:K[this.ID.SWATCH],className:"yui-picker-swatch"});L.appendChild(N);N=new R("div",{id:K[this.ID.WEBSAFE_SWATCH],className:"yui-picker-websafe-swatch"});L.appendChild(N);},_attachRGBHSV:function(L,K){I.on(this.getElement(L),"keydown",function(N,M){M._rgbFieldKeypress(N,this,K);},this);I.on(this.getElement(L),"keypress",this._numbersOnly,this,true);I.on(this.getElement(L),"blur",function(N,M){M._useFieldValue(N,this,K);},this);},_updateRGB:function(){var K=[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)];this.set(this.OPT.RGB,K);this._updateSliders();},_initElements:function(){var O=this.OPT,N=this.get(O.IDS),L=this.get(O.ELEMENTS),K,M,P;for(K in this.ID){if(C.hasOwnProperty(this.ID,K)){N[this.ID[K]]=N[K];}}M=E.get(N[this.ID.PICKER_BG]);if(!M){this._createEle
ments();}else{}for(K in N){if(C.hasOwnProperty(N,K)){M=E.get(N[K]);P=E.generateId(M);N[K]=P;N[N[K]]=P;L[P]=M;}}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true);},_initSliders:function(){var K=this.ID,L=this.get(this.OPT.PICKER_SIZE);this.hueSlider=D.getVertSlider(this.getElement(K.HUE_BG),this.getElement(K.HUE_THUMB),0,L);this.pickerSlider=D.getSliderRegion(this.getElement(K.PICKER_BG),this.getElement(K.PICKER_THUMB),0,L,0,L);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE));},_bindUI:function(){var K=this.ID,L=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);I.on(this.getElement(K.WEBSAFE_SWATCH),"click",function(M){this.setValue(this.get(L.WEBSAFE));},this,true);I.on(this.getElement(K.CONTROLS_LABEL),"click",function(M){this.set(L.SHOW_CONTROLS,!this.get(L.SHOW_CONTROLS));I.preventDefault(M);},this,true);this._attachRGBHSV(K.R,L.RED);this.
_attachRGBHSV(K.G,L.GREEN);this._attachRGBHSV(K.B,L.BLUE);this._attachRGBHSV(K.H,L.HUE);
-this._attachRGBHSV(K.S,L.SATURATION);this._attachRGBHSV(K.V,L.VALUE);I.on(this.getElement(K.HEX),"keydown",function(N,M){M._hexFieldKeypress(N,this,L.HEX);},this);I.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);I.on(this.getElement(this.ID.HEX),"blur",function(N,M){M._useFieldValue(N,this,L.HEX);},this);},syncUI:function(K){this.skipAnim=K;this._updateRGB();this.skipAnim=false;},_updateRGBFromHSV:function(){var L=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100],K=B.hsv2rgb(L);this.set(this.OPT.RGB,K);this._updateSliders();},_updateHex:function(){var N=this.get(this.OPT.HEX),K=N.length,O,M,L;if(K===3){O=N.split("");for(M=0;M<K;M=M+1){O[M]=O[M]+O[M];}N=O.join("");}if(N.length!==6){return false;}L=B.hex2rgb(N);this.setValue(L);},_hideShowEl:function(M,K){var L=(C.isString(M)?this.getElement(M):M);E.setStyle(L,"display",(K)?"":"none");},initAttributes:function(K){K=K||{};G.superclass.initAttributes.call(this,K);this.se
tAttributeConfig(this.OPT.PICKER_SIZE,{value:K.size||this.DEFAULT.PICKER_SIZE});this.setAttributeConfig(this.OPT.HUE,{value:K.hue||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.SATURATION,{value:K.saturation||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.VALUE,{value:C.isNumber(K.value)?K.value:100,validator:C.isNumber});this.setAttributeConfig(this.OPT.RED,{value:C.isNumber(K.red)?K.red:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.GREEN,{value:C.isNumber(K.green)?K.green:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.BLUE,{value:C.isNumber(K.blue)?K.blue:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.HEX,{value:K.hex||"FFFFFF",validator:C.isString});this.setAttributeConfig(this.OPT.RGB,{value:K.rgb||[255,255,255],method:function(O){this.set(this.OPT.RED,O[0],true);this.set(this.OPT.GREEN,O[1],true);this.set(this.OPT.BLUE,O[2],true);var Q=B.websafe(O),P=B.rgb2hex(O),N=B.rgb2hsv(O);this.set(this.OPT.WEBSAFE,Q,tr
ue);this.set(this.OPT.HEX,P,true);if(N[1]){this.set(this.OPT.HUE,N[0],true);}this.set(this.OPT.SATURATION,Math.round(N[1]*100),true);this.set(this.OPT.VALUE,Math.round(N[2]*100),true);},readonly:true});this.setAttributeConfig(this.OPT.CONTAINER,{value:null,method:function(N){if(N){N.showEvent.subscribe(function(){this.pickerSlider.focus();},this,true);}}});this.setAttributeConfig(this.OPT.WEBSAFE,{value:K.websafe||[255,255,255]});var M=K.ids||C.merge({},this.ID),L;if(!K.ids&&J>1){for(L in M){if(C.hasOwnProperty(M,L)){M[L]=M[L]+J;}}}this.setAttributeConfig(this.OPT.IDS,{value:M,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:K.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:K.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:C.isBoolean(K.showcontrols)?K.showcontrols:true,method:function(N){var O=E.getElementsByClassName("bd","
div",this.getElement(this.ID.CONTROLS))[0];this._hideShowEl(O,N);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=(N)?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS;}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:C.isBoolean(K.showrgbcontrols)?K.showrgbcontrols:true,method:function(N){this._hideShowEl(this.ID.RGB_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:C.isBoolean(K.showhsvcontrols)?K.showhsvcontrols:false,method:function(N){this._hideShowEl(this.ID.HSV_CONTROLS,N);if(N&&this.get(this.OPT.SHOW_HEX_SUMMARY)){this.set(this.OPT.SHOW_HEX_SUMMARY,false);}}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:C.isBoolean(K.showhexcontrols)?K.showhexcontrols:false,method:function(N){this._hideShowEl(this.ID.HEX_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:C.isBoolean(K.showwebsafe)?K.showwebsafe:true,method:function(N){this._hideShowEl(this.ID.WEBSAFE_SWATCH,N);}});this.setAtt
ributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:C.isBoolean(K.showhexsummary)?K.showhexsummary:true,method:function(N){this._hideShowEl(this.ID.HEX_SUMMARY,N);if(N&&this.get(this.OPT.SHOW_HSV_CONTROLS)){this.set(this.OPT.SHOW_HSV_CONTROLS,false);}}});this.setAttributeConfig(this.OPT.ANIMATE,{value:C.isBoolean(K.animate)?K.animate:true,method:function(N){if(this.pickerSlider){this.pickerSlider.animate=N;this.hueSlider.animate=N;}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements();}});YAHOO.widget.ColorPicker=G;})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.
7.0",build:"1796"});
-
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-(function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,F,E){var D=this.getEl();if(this.patterns.noNegatives.test(C)){F=(F>0)?F:0;}if("style" in D){B.Dom.setStyle(D,C,F+E);}else{if(C in D){D[C]=F;}}},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if("style" in E){if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0)
.toUpperCase()+D[0].substr(1)];}else{G=0;}}else{if(C in E){G=E[C];}}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;
this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M
in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F==-1){return false;}G._onComplete.fire();B.splice(F,1);A-
=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]==H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C
=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";A.DEFAULT_BGCOLOR="#fff";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.e
xec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
-}return null;};B.getAttribute=function(E){var G=this.getEl();if(this.patterns.color.test(E)){var I=YAHOO.util.Dom.getStyle(G,E);var H=this;if(this.patterns.transparent.test(I)){var F=YAHOO.util.Dom.getAncestorBy(G,function(J){return !H.patterns.transparent.test(I);});if(F){I=C.Dom.getStyle(F,E);}else{I=A.DEFAULT_BGCOLOR;}}}else{I=D.getAttribute.call(this,E);}return I;};B.doMethod=function(F,J,G){var I;if(this.patterns.color.test(F)){I=[];for(var H=0,E=J.length;H<E;++H){I[H]=D.doMethod.call(this,F,J[H],G[H]);}I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}else{I=D.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(F){D.setRuntimeAttribute.call(this,F);if(this.patterns.color.test(F)){var H=this.attributes;var J=this.parseColor(this.runtimeAttributes[F].start);var G=this.parseColor(this.runtimeAttributes[F].end);if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){G=this.parseColor(H[F].by);for(var I=0,E=J.length;I<E;+
+I){G[I]=J[I]+G[I];}}this.runtimeAttributes[F].start=J;this.runtimeAttributes[F].end=G;}};C.ColorAnim=A;})();
-/*
-TERMS OF USE - EASING EQUATIONS
-Open source under the BSD License.
-Copyright 2001 Robert Penner All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B
,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*
(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var A=function(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}};A.NAME="Motion";var E=YAHOO.util;YAHOO.extend(A,E.ColorAnim);var F=A.superclass;var C=A.prototype;C.patterns.points=/^points$/i;C.setAttribute=function(G,I,H){if(this.patterns.points.test(G)){H=H||"px";F.setAttribute.call(this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAttribute.call(this,G,I,H);}};C.getAttribute=function(G){if(this.patterns.points.test(G)){var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}else{H=F.getAttribute.call(this,G);}return H;};C.doMethod=function(G,K,H){var J=null;if(this.patterns.points.test(G)){var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;J=E.Bezier.getPosition(this.runtimeAttributes[G],I);}else{J=F.doMethod.cal
l(this,G,K,H);}return J;};C.setRuntimeAttribute=function(P){if(this.patterns.points.test(P)){var H=this.getEl();var J=this.attributes;var G;var L=J["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] instanceof Array)){L=[L];}else{var K=[];for(M=0,O=L.length;M<O;++M){K[M]=L[M];}L=K;}if(E.Dom.getStyle(H,"position")=="static"){E.Dom.setStyle(H,"position","relative");}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);
-}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[thi
s.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"});
diff --git a/devel/third-party/ckeditor/plugins/undo/icons/redo-rtl.png b/devel/third-party/ckeditor/plugins/undo/icons/redo-rtl.png
new file mode 100644
index 0000000..31e8bba
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/undo/icons/redo-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/undo/icons/redo.png b/devel/third-party/ckeditor/plugins/undo/icons/redo.png
new file mode 100644
index 0000000..a9b7e0f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/undo/icons/redo.png differ
diff --git a/devel/third-party/ckeditor/plugins/undo/icons/undo-rtl.png b/devel/third-party/ckeditor/plugins/undo/icons/undo-rtl.png
new file mode 100644
index 0000000..a9b7e0f
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/undo/icons/undo-rtl.png differ
diff --git a/devel/third-party/ckeditor/plugins/undo/icons/undo.png b/devel/third-party/ckeditor/plugins/undo/icons/undo.png
new file mode 100644
index 0000000..49170a3
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/undo/icons/undo.png differ
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/af.js b/devel/third-party/ckeditor/plugins/undo/lang/af.js
new file mode 100644
index 0000000..456bf7d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/af.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'af', {
+ redo: 'Oordoen',
+ undo: 'Ontdoen'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ar.js b/devel/third-party/ckeditor/plugins/undo/lang/ar.js
new file mode 100644
index 0000000..b400066
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ar.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ar', {
+ redo: 'إعادة',
+ undo: 'تراجع'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/bg.js b/devel/third-party/ckeditor/plugins/undo/lang/bg.js
new file mode 100644
index 0000000..471df8c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/bg.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'bg', {
+ redo: 'ÐÑÑÑане на пÑедиÑен ÑÑаÑÑÑ',
+ undo: 'ÐÑзÑанови'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/bn.js b/devel/third-party/ckeditor/plugins/undo/lang/bn.js
new file mode 100644
index 0000000..1081fca
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/bn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'bn', {
+ redo: 'রি-ডà§',
+ undo: 'à¦à¦¨à¦¡à§'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/bs.js b/devel/third-party/ckeditor/plugins/undo/lang/bs.js
new file mode 100644
index 0000000..93206ec
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/bs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'bs', {
+ redo: 'Ponovi',
+ undo: 'Vrati'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ca.js b/devel/third-party/ckeditor/plugins/undo/lang/ca.js
new file mode 100644
index 0000000..3872e54
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ca', {
+ redo: 'Refés',
+ undo: 'Desfés'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/cs.js b/devel/third-party/ckeditor/plugins/undo/lang/cs.js
new file mode 100644
index 0000000..b2b60ce
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/cs.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'cs', {
+ redo: 'Znovu',
+ undo: 'ZpÄt'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/cy.js b/devel/third-party/ckeditor/plugins/undo/lang/cy.js
new file mode 100644
index 0000000..7ac465b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/cy.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'cy', {
+ redo: 'Ailadrodd',
+ undo: 'Dadwneud'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/da.js b/devel/third-party/ckeditor/plugins/undo/lang/da.js
new file mode 100644
index 0000000..68b0adf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/da.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'da', {
+ redo: 'Annullér fortryd',
+ undo: 'Fortryd'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/de.js b/devel/third-party/ckeditor/plugins/undo/lang/de.js
new file mode 100644
index 0000000..130725f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/de.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'de', {
+ redo: 'Wiederherstellen',
+ undo: 'Rückgängig'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/el.js b/devel/third-party/ckeditor/plugins/undo/lang/el.js
new file mode 100644
index 0000000..ac9fc04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/el.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'el', {
+ redo: 'ÎÏαναÏοÏά',
+ undo: 'ÎναίÏεÏη'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/en-au.js b/devel/third-party/ckeditor/plugins/undo/lang/en-au.js
new file mode 100644
index 0000000..98abecd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/en-au.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'en-au', {
+ redo: 'Redo',
+ undo: 'Undo'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/en-ca.js b/devel/third-party/ckeditor/plugins/undo/lang/en-ca.js
new file mode 100644
index 0000000..0f64795
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/en-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'en-ca', {
+ redo: 'Redo',
+ undo: 'Undo'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/en-gb.js b/devel/third-party/ckeditor/plugins/undo/lang/en-gb.js
new file mode 100644
index 0000000..fc2b805
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/en-gb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'en-gb', {
+ redo: 'Redo',
+ undo: 'Undo'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/en.js b/devel/third-party/ckeditor/plugins/undo/lang/en.js
new file mode 100644
index 0000000..a0bc199
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/en.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'en', {
+ redo: 'Redo',
+ undo: 'Undo'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/eo.js b/devel/third-party/ckeditor/plugins/undo/lang/eo.js
new file mode 100644
index 0000000..c2c6518
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/eo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'eo', {
+ redo: 'Refari',
+ undo: 'Malfari'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/es.js b/devel/third-party/ckeditor/plugins/undo/lang/es.js
new file mode 100644
index 0000000..5f3e107
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/es.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'es', {
+ redo: 'Rehacer',
+ undo: 'Deshacer'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/et.js b/devel/third-party/ckeditor/plugins/undo/lang/et.js
new file mode 100644
index 0000000..8dfd84f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/et.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'et', {
+ redo: 'Toimingu kordamine',
+ undo: 'Tagasivõtmine'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/eu.js b/devel/third-party/ckeditor/plugins/undo/lang/eu.js
new file mode 100644
index 0000000..5cde89f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/eu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'eu', {
+ redo: 'Berregin',
+ undo: 'Desegin'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/fa.js b/devel/third-party/ckeditor/plugins/undo/lang/fa.js
new file mode 100644
index 0000000..132c107
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/fa.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'fa', {
+ redo: 'بازÚÛØ¯Ù',
+ undo: 'ÙØ§ÚÛØ¯Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/fi.js b/devel/third-party/ckeditor/plugins/undo/lang/fi.js
new file mode 100644
index 0000000..5cdc7c7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/fi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'fi', {
+ redo: 'Toista',
+ undo: 'Kumoa'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/fo.js b/devel/third-party/ckeditor/plugins/undo/lang/fo.js
new file mode 100644
index 0000000..da3710e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/fo.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'fo', {
+ redo: 'Vend aftur',
+ undo: 'Angra'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/undo/lang/fr-ca.js
new file mode 100644
index 0000000..cc0860d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/fr-ca.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'fr-ca', {
+ redo: 'Refaire',
+ undo: 'Annuler'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/fr.js b/devel/third-party/ckeditor/plugins/undo/lang/fr.js
new file mode 100644
index 0000000..dc6d108
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/fr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'fr', {
+ redo: 'Rétablir',
+ undo: 'Annuler'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/gl.js b/devel/third-party/ckeditor/plugins/undo/lang/gl.js
new file mode 100644
index 0000000..5c71850
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/gl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'gl', {
+ redo: 'Refacer',
+ undo: 'Desfacer'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/gu.js b/devel/third-party/ckeditor/plugins/undo/lang/gu.js
new file mode 100644
index 0000000..7985a91
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/gu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'gu', {
+ redo: 'રિડà«; પàªà« હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«',
+ undo: 'રદ àªàª°àªµà«àª; પહà«àª²àª¾àª હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/he.js b/devel/third-party/ckeditor/plugins/undo/lang/he.js
new file mode 100644
index 0000000..0487244
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/he.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'he', {
+ redo: '×××¨× ×¢× ×¦×¢× ××ר××',
+ undo: '××××× ×¦×¢× ××ר××'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/hi.js b/devel/third-party/ckeditor/plugins/undo/lang/hi.js
new file mode 100644
index 0000000..2ca4654
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/hi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'hi', {
+ redo: 'रà¥à¤¡à¥',
+ undo: 'à¤
नà¥à¤¡à¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/hr.js b/devel/third-party/ckeditor/plugins/undo/lang/hr.js
new file mode 100644
index 0000000..9b6905d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/hr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'hr', {
+ redo: 'Ponovi',
+ undo: 'Poništi'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/hu.js b/devel/third-party/ckeditor/plugins/undo/lang/hu.js
new file mode 100644
index 0000000..87b77d4
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/hu.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'hu', {
+ redo: 'Ismétlés',
+ undo: 'Visszavonás'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/is.js b/devel/third-party/ckeditor/plugins/undo/lang/is.js
new file mode 100644
index 0000000..c285a85
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/is.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'is', {
+ redo: 'Hætta við afturköllun',
+ undo: 'Afturkalla'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/it.js b/devel/third-party/ckeditor/plugins/undo/lang/it.js
new file mode 100644
index 0000000..2739cdc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/it.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'it', {
+ redo: 'Ripristina',
+ undo: 'Annulla'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ja.js b/devel/third-party/ckeditor/plugins/undo/lang/ja.js
new file mode 100644
index 0000000..4ace84c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ja.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ja', {
+ redo: 'ããç´ã',
+ undo: 'å
ã«æ»ã'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ka.js b/devel/third-party/ckeditor/plugins/undo/lang/ka.js
new file mode 100644
index 0000000..250cb3f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ka.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ka', {
+ redo: 'áááááá ááá',
+ undo: 'ááá£á¥áááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/km.js b/devel/third-party/ckeditor/plugins/undo/lang/km.js
new file mode 100644
index 0000000..9df38f0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/km.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'km', {
+ redo: 'áááá¾á¡á¾ááá·á',
+ undo: 'áá¶áá¡á¾ááá·á'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ko.js b/devel/third-party/ckeditor/plugins/undo/lang/ko.js
new file mode 100644
index 0000000..76fa98c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ko.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ko', {
+ redo: 'ì¬ì¤í',
+ undo: 'ì·¨ì'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ku.js b/devel/third-party/ckeditor/plugins/undo/lang/ku.js
new file mode 100644
index 0000000..36a567e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ku.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ku', {
+ redo: 'ÙÛÚµÚ¯ÛÚØ§ÙدÙÛÙÙ',
+ undo: 'Ù¾ÙÙÚکردÙÛÙÙ'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/lt.js b/devel/third-party/ckeditor/plugins/undo/lang/lt.js
new file mode 100644
index 0000000..578cf1f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/lt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'lt', {
+ redo: 'Atstatyti',
+ undo: 'Atšaukti'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/lv.js b/devel/third-party/ckeditor/plugins/undo/lang/lv.js
new file mode 100644
index 0000000..b087898
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/lv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'lv', {
+ redo: 'AtkÄrtot',
+ undo: 'Atcelt'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/mk.js b/devel/third-party/ckeditor/plugins/undo/lang/mk.js
new file mode 100644
index 0000000..8ef26fc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/mk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'mk', {
+ redo: 'Redo', // MISSING
+ undo: 'Undo'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/mn.js b/devel/third-party/ckeditor/plugins/undo/lang/mn.js
new file mode 100644
index 0000000..e766dc9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/mn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'mn', {
+ redo: 'ӨмнөÑ
үйлдлÑÑ ÑÑÑгÑÑÑ
',
+ undo: 'Ð¥Ò¯Ñингүй болгоÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ms.js b/devel/third-party/ckeditor/plugins/undo/lang/ms.js
new file mode 100644
index 0000000..95d7aaf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ms.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ms', {
+ redo: 'Ulangkan',
+ undo: 'Batalkan'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/nb.js b/devel/third-party/ckeditor/plugins/undo/lang/nb.js
new file mode 100644
index 0000000..573374a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/nb.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'nb', {
+ redo: 'Gjør om',
+ undo: 'Angre'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/nl.js b/devel/third-party/ckeditor/plugins/undo/lang/nl.js
new file mode 100644
index 0000000..5bd6632
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/nl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'nl', {
+ redo: 'Opnieuw uitvoeren',
+ undo: 'Ongedaan maken'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/no.js b/devel/third-party/ckeditor/plugins/undo/lang/no.js
new file mode 100644
index 0000000..fd21650
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/no.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'no', {
+ redo: 'Gjør om',
+ undo: 'Angre'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/pl.js b/devel/third-party/ckeditor/plugins/undo/lang/pl.js
new file mode 100644
index 0000000..dfb7e80
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/pl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'pl', {
+ redo: 'Ponów',
+ undo: 'Cofnij'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/pt-br.js b/devel/third-party/ckeditor/plugins/undo/lang/pt-br.js
new file mode 100644
index 0000000..aea7f82
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/pt-br.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'pt-br', {
+ redo: 'Refazer',
+ undo: 'Desfazer'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/pt.js b/devel/third-party/ckeditor/plugins/undo/lang/pt.js
new file mode 100644
index 0000000..6266c23
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/pt.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'pt', {
+ redo: 'Repetir',
+ undo: 'Anular'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ro.js b/devel/third-party/ckeditor/plugins/undo/lang/ro.js
new file mode 100644
index 0000000..b07fa43
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ro.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ro', {
+ redo: 'Starea ulterioarÄ (redo)',
+ undo: 'Starea anterioarÄ (undo)'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ru.js b/devel/third-party/ckeditor/plugins/undo/lang/ru.js
new file mode 100644
index 0000000..a1958b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ru.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ru', {
+ redo: 'ÐовÑоÑиÑÑ',
+ undo: 'ÐÑмениÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/sk.js b/devel/third-party/ckeditor/plugins/undo/lang/sk.js
new file mode 100644
index 0000000..d81754a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/sk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'sk', {
+ redo: 'Znovu',
+ undo: 'Späť'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/sl.js b/devel/third-party/ckeditor/plugins/undo/lang/sl.js
new file mode 100644
index 0000000..8f9821a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/sl.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'sl', {
+ redo: 'Ponovi',
+ undo: 'Razveljavi'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/undo/lang/sr-latn.js
new file mode 100644
index 0000000..0039cf6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/sr-latn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'sr-latn', {
+ redo: 'Ponovi akciju',
+ undo: 'Poni�ti akciju'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/sr.js b/devel/third-party/ckeditor/plugins/undo/lang/sr.js
new file mode 100644
index 0000000..df4a5b8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/sr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'sr', {
+ redo: 'Ðонови акÑиÑÑ',
+ undo: 'ÐониÑÑи акÑиÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/sv.js b/devel/third-party/ckeditor/plugins/undo/lang/sv.js
new file mode 100644
index 0000000..ad3a485
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/sv.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'sv', {
+ redo: 'Gör om',
+ undo: 'Ã
ngra'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/th.js b/devel/third-party/ckeditor/plugins/undo/lang/th.js
new file mode 100644
index 0000000..d455ee9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/th.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'th', {
+ redo: 'à¸à¸³à¸à¹à¸³à¸à¸³à¸ªà¸±à¹à¸',
+ undo: 'ยà¸à¹à¸¥à¸´à¸à¸à¸³à¸ªà¸±à¹à¸'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/tr.js b/devel/third-party/ckeditor/plugins/undo/lang/tr.js
new file mode 100644
index 0000000..9c28f5a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/tr.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'tr', {
+ redo: 'Tekrarla',
+ undo: 'Geri Al'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/ug.js b/devel/third-party/ckeditor/plugins/undo/lang/ug.js
new file mode 100644
index 0000000..83de4e2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/ug.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'ug', {
+ redo: 'ÙØ§ÙتÙÙØ§ ',
+ undo: 'ÙÛÙÙÛØ§Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/uk.js b/devel/third-party/ckeditor/plugins/undo/lang/uk.js
new file mode 100644
index 0000000..d6b418c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/uk.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'uk', {
+ redo: 'ÐовÑоÑиÑи',
+ undo: 'ÐовеÑнÑÑи'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/vi.js b/devel/third-party/ckeditor/plugins/undo/lang/vi.js
new file mode 100644
index 0000000..7f7ba10
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/vi.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'vi', {
+ redo: 'Là m lại thao tác',
+ undo: 'Khôi phục thao tác'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/undo/lang/zh-cn.js
new file mode 100644
index 0000000..ed90186
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/zh-cn.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'zh-cn', {
+ redo: 'éå',
+ undo: 'æ¤æ¶'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/lang/zh.js b/devel/third-party/ckeditor/plugins/undo/lang/zh.js
new file mode 100644
index 0000000..a36db04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/undo/lang/zh.js
@@ -0,0 +1,8 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'undo', 'zh', {
+ redo: 'éè¤',
+ undo: '復å'
+});
diff --git a/devel/third-party/ckeditor/plugins/undo/plugin.js b/devel/third-party/ckeditor/plugins/undo/plugin.js
index fde581f..17dde49 100644
--- a/devel/third-party/ckeditor/plugins/undo/plugin.js
+++ b/devel/third-party/ckeditor/plugins/undo/plugin.js
@@ -1,59 +1,54 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview Undo/Redo system for saving shapshot for document modification
* and other recordable changes.
*/
-(function()
-{
- CKEDITOR.plugins.add( 'undo',
- {
- requires : [ 'selection', 'wysiwygarea' ],
-
- init : function( editor )
- {
+(function() {
+ CKEDITOR.plugins.add( 'undo', {
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,ku,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'redo,redo-rtl,undo,undo-rtl', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
var undoManager = new UndoManager( editor );
- var undoCommand = editor.addCommand( 'undo',
- {
- exec : function()
- {
- if ( undoManager.undo() )
- {
- editor.selectionChange();
- this.fire( 'afterUndo' );
- }
- },
- state : CKEDITOR.TRISTATE_DISABLED,
- canUndo : false
- });
+ var undoCommand = editor.addCommand( 'undo', {
+ exec: function() {
+ if ( undoManager.undo() ) {
+ editor.selectionChange();
+ this.fire( 'afterUndo' );
+ }
+ },
+ state: CKEDITOR.TRISTATE_DISABLED,
+ canUndo: false
+ });
- var redoCommand = editor.addCommand( 'redo',
- {
- exec : function()
- {
- if ( undoManager.redo() )
- {
- editor.selectionChange();
- this.fire( 'afterRedo' );
- }
- },
- state : CKEDITOR.TRISTATE_DISABLED,
- canUndo : false
- });
+ var redoCommand = editor.addCommand( 'redo', {
+ exec: function() {
+ if ( undoManager.redo() ) {
+ editor.selectionChange();
+ this.fire( 'afterRedo' );
+ }
+ },
+ state: CKEDITOR.TRISTATE_DISABLED,
+ canUndo: false
+ });
- undoManager.onChange = function()
- {
+ editor.setKeystroke( [
+ [ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ],
+ [ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ],
+ [ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ]
+ ] );
+
+ undoManager.onChange = function() {
undoCommand.setState( undoManager.undoable() ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
redoCommand.setState( undoManager.redoable() ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
};
- function recordCommand( event )
- {
+ function recordCommand( event ) {
// If the command hasn't been marked to not support undo.
if ( undoManager.enabled && event.data.command.canUndo !== false )
undoManager.save();
@@ -64,50 +59,51 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
editor.on( 'afterCommandExec', recordCommand );
// Save snapshots before doing custom changes.
- editor.on( 'saveSnapshot', function()
- {
- undoManager.save();
- });
+ editor.on( 'saveSnapshot', function( evt ) {
+ undoManager.save( evt.data && evt.data.contentOnly );
+ });
// Registering keydown on every document recreation.(#3844)
- editor.on( 'contentDom', function()
- {
- editor.document.on( 'keydown', function( event )
- {
- // Do not capture CTRL hotkeys.
- if ( !event.data.$.ctrlKey && !event.data.$.metaKey )
- undoManager.type( event );
- });
+ editor.on( 'contentDom', function() {
+ editor.editable().on( 'keydown', function( event ) {
+ // Do not capture CTRL hotkeys.
+ if ( !event.data.$.ctrlKey && !event.data.$.metaKey )
+ undoManager.type( event );
});
+ });
// Always save an undo snapshot - the previous mode might have
// changed editor contents.
- editor.on( 'beforeModeUnload', function()
- {
- editor.mode == 'wysiwyg' && undoManager.save( true );
- });
+ editor.on( 'beforeModeUnload', function() {
+ editor.mode == 'wysiwyg' && undoManager.save( true );
+ });
// Make the undo manager available only in wysiwyg mode.
- editor.on( 'mode', function()
- {
- undoManager.enabled = editor.mode == 'wysiwyg';
- undoManager.onChange();
- });
+ editor.on( 'mode', function() {
+ undoManager.enabled = editor.readOnly ? false : editor.mode == 'wysiwyg';
+ undoManager.onChange();
+ });
- editor.ui.addButton( 'Undo',
- {
- label : editor.lang.undo,
- command : 'undo'
+ if ( editor.ui.addButton ) {
+ editor.ui.addButton( 'Undo', {
+ label: editor.lang.undo.undo,
+ command: 'undo',
+ toolbar: 'undo,10'
});
- editor.ui.addButton( 'Redo',
- {
- label : editor.lang.redo,
- command : 'redo'
+ editor.ui.addButton( 'Redo', {
+ label: editor.lang.undo.redo,
+ command: 'redo',
+ toolbar: 'undo,20'
});
+ }
- editor.resetUndo = function()
- {
+ /**
+ * Reset undo stack.
+ *
+ * @member CKEDITOR.editor
+ */
+ editor.resetUndo = function() {
// Reset the undo stack.
undoManager.reset();
@@ -116,25 +112,47 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
};
/**
- * Update the undo stacks with any subsequent DOM changes after this call.
- * @name CKEDITOR.editor#updateUndo
- * @example
- * function()
- * {
- * editor.fire( 'updateSnapshot' );
- * ...
- * // Ask to include subsequent (in this call stack) DOM changes to be
- * // considered as part of the first snapshot.
- * editor.fire( 'updateSnapshot' );
- * editor.document.body.append(...);
- * ...
- * }
+ * Amend the top of undo stack (last undo image) with the current DOM changes.
+ *
+ * function() {
+ * editor.fire( 'saveSnapshot' );
+ * editor.document.body.append(...);
+ * // Make new changes following the last undo snapshot part of it.
+ * editor.fire( 'updateSnapshot' );
+ * ..
+ * }
+ *
+ * @event updateSnapshot
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
*/
- editor.on( 'updateSnapshot', function()
- {
- if ( undoManager.currentImage && new Image( editor ).equals( undoManager.currentImage ) )
- setTimeout( function () { undoManager.update(); }, 0 );
+ editor.on( 'updateSnapshot', function() {
+ if ( undoManager.currentImage )
+ undoManager.update();
});
+
+ /**
+ * Lock manager to prevent any save/update operations.
+ *
+ * It's convenient to lock manager before doing DOM operations
+ * that shouldn't be recored (e.g. auto paragraphing).
+ *
+ * See {@link CKEDITOR.plugins.undo.UndoManager#lock} for more details.
+ *
+ * @event lockSnapshot
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+ editor.on( 'lockSnapshot', undoManager.lock, undoManager );
+
+ /**
+ * Unlock manager and update latest snapshot.
+ *
+ * @event unlockSnapshot
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+ editor.on( 'unlockSnapshot', undoManager.unlock, undoManager );
}
});
@@ -142,36 +160,40 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Undo snapshot which represents the current document status.
- * @name CKEDITOR.plugins.undo.Image
- * @param editor The editor instance on which the image is created.
+ *
+ * @private
+ * @class CKEDITOR.plugins.undo.Image
+ * @constructor Creates an Image class instance.
+ * @param {CKEDITOR.editor} editor The editor instance on which the image is created.
*/
- var Image = CKEDITOR.plugins.undo.Image = function( editor )
- {
- this.editor = editor;
- var contents = editor.getSnapshot(),
- selection = contents && editor.getSelection();
+ var Image = CKEDITOR.plugins.undo.Image = function( editor ) {
+ this.editor = editor;
- // In IE, we need to remove the expando attributes.
- CKEDITOR.env.ie && contents && ( contents = contents.replace( /\s+_cke_expando=".*?"/g, '' ) );
+ editor.fire( 'beforeUndoImage' );
- this.contents = contents;
- this.bookmarks = selection && selection.createBookmarks2( true );
- };
+ var contents = editor.getSnapshot(),
+ selection = contents && editor.getSelection();
+
+ // In IE, we need to remove the expando attributes.
+ CKEDITOR.env.ie && contents && ( contents = contents.replace( /\s+data-cke-expando=".*?"/g, '' ) );
+
+ this.contents = contents;
+ this.bookmarks = selection && selection.createBookmarks2( true );
+
+ editor.fire( 'afterUndoImage' );
+ };
// Attributes that browser may changing them when setting via innerHTML.
var protectedAttrs = /\b(?:href|src|name)="[^"]*?"/gi;
- Image.prototype =
- {
- equals : function( otherImage, contentOnly )
- {
+ Image.prototype = {
+ equals: function( otherImage, contentOnly ) {
var thisContents = this.contents,
otherContents = otherImage.contents;
// For IE6/7 : Comparing only the protected attribute values but not the original ones.(#4522)
- if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) )
- {
+ if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) ) {
thisContents = thisContents.replace( protectedAttrs, '' );
otherContents = otherContents.replace( protectedAttrs, '' );
}
@@ -185,22 +207,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var bookmarksA = this.bookmarks,
bookmarksB = otherImage.bookmarks;
- if ( bookmarksA || bookmarksB )
- {
+ if ( bookmarksA || bookmarksB ) {
if ( !bookmarksA || !bookmarksB || bookmarksA.length != bookmarksB.length )
return false;
- for ( var i = 0 ; i < bookmarksA.length ; i++ )
- {
+ for ( var i = 0; i < bookmarksA.length; i++ ) {
var bookmarkA = bookmarksA[ i ],
bookmarkB = bookmarksB[ i ];
- if (
- bookmarkA.startOffset != bookmarkB.startOffset ||
- bookmarkA.endOffset != bookmarkB.endOffset ||
- !CKEDITOR.tools.arrayCompare( bookmarkA.start, bookmarkB.start ) ||
- !CKEDITOR.tools.arrayCompare( bookmarkA.end, bookmarkB.end ) )
- {
+ if ( bookmarkA.startOffset != bookmarkB.startOffset || bookmarkA.endOffset != bookmarkB.endOffset || !CKEDITOR.tools.arrayCompare( bookmarkA.start, bookmarkB.start ) || !CKEDITOR.tools.arrayCompare( bookmarkA.end, bookmarkB.end ) ) {
return false;
}
}
@@ -211,29 +226,42 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
};
/**
- * @constructor Main logic for Redo/Undo feature.
+ * Main logic for Redo/Undo feature.
+ *
+ * **Note:** This class isn't accessible from the global scope.
+ *
+ * @private
+ * @class CKEDITOR.plugins.undo.UndoManager
+ * @constructor Creates an UndoManager class instance.
+ * @param {CKEDITOR.editor} editor
*/
- function UndoManager( editor )
- {
+ function UndoManager( editor ) {
this.editor = editor;
// Reset the undo stack.
this.reset();
}
+ var editingKeyCodes = { /*Backspace*/8:1,/*Delete*/46:1 },
+ modifierKeyCodes = { /*Shift*/16:1,/*Ctrl*/17:1,/*Alt*/18:1 },
+ navigationKeyCodes = { 37:1,38:1,39:1,40:1 }; // Arrows: L, T, R, B
- var editingKeyCodes = { /*Backspace*/ 8:1, /*Delete*/ 46:1 },
- modifierKeyCodes = { /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1 },
- navigationKeyCodes = { 37:1, 38:1, 39:1, 40:1 }; // Arrows: L, T, R, B
+ UndoManager.prototype = {
+ /**
+ * When `locked` property is not `null` manager is locked, so
+ * operations like `save` or `update` are forbidden.
+ *
+ * Manager can be locked/unlocked by {@link #lock} and {@link #unlock} methods.
+ *
+ * @private
+ * @property {Object} [locked=null]
+ */
- UndoManager.prototype =
- {
/**
* Process undo system regard keystrikes.
* @param {CKEDITOR.dom.event} event
*/
- type : function( event )
- {
+ type: function( event ) {
var keystroke = event && event.data.getKey(),
isModifierKey = keystroke in modifierKeyCodes,
isEditingKey = keystroke in editingKeyCodes,
@@ -252,68 +280,60 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// 1. Just start to type .
// 2. Typing some content after a modifier.
// 3. Typing some content after make a visible selection.
- startedTyping = !( isModifierKey || this.typing )
- || ( isContent && ( wasEditingKey || wasReset ) );
+ startedTyping = !( isModifierKey || this.typing ) || ( isContent && ( wasEditingKey || wasReset ) );
- if ( startedTyping || modifierSnapshot )
- {
- var beforeTypeImage = new Image( this.editor );
+ if ( startedTyping || modifierSnapshot ) {
+ var beforeTypeImage = new Image( this.editor ),
+ beforeTypeCount = this.snapshots.length;
// Use setTimeout, so we give the necessary time to the
// browser to insert the character into the DOM.
- CKEDITOR.tools.setTimeout( function()
- {
- var currentSnapshot = this.editor.getSnapshot();
+ CKEDITOR.tools.setTimeout( function() {
+ var currentSnapshot = this.editor.getSnapshot();
- // In IE, we need to remove the expando attributes.
- if ( CKEDITOR.env.ie )
- currentSnapshot = currentSnapshot.replace( /\s+_cke_expando=".*?"/g, '' );
+ // In IE, we need to remove the expando attributes.
+ if ( CKEDITOR.env.ie )
+ currentSnapshot = currentSnapshot.replace( /\s+data-cke-expando=".*?"/g, '' );
- if ( beforeTypeImage.contents != currentSnapshot )
- {
- // It's safe to now indicate typing state.
- this.typing = true;
+ // If changes have taken place, while not been captured yet (#8459),
+ // compensate the snapshot.
+ if ( beforeTypeImage.contents != currentSnapshot && beforeTypeCount == this.snapshots.length ) {
+ // It's safe to now indicate typing state.
+ this.typing = true;
- // This's a special save, with specified snapshot
- // and without auto 'fireChange'.
- if ( !this.save( false, beforeTypeImage, false ) )
- // Drop future snapshots.
- this.snapshots.splice( this.index + 1, this.snapshots.length - this.index - 1 );
+ // This's a special save, with specified snapshot
+ // and without auto 'fireChange'.
+ if ( !this.save( false, beforeTypeImage, false ) )
+ // Drop future snapshots.
+ this.snapshots.splice( this.index + 1, this.snapshots.length - this.index - 1 );
- this.hasUndo = true;
- this.hasRedo = false;
+ this.hasUndo = true;
+ this.hasRedo = false;
- this.typesCount = 1;
- this.modifiersCount = 1;
+ this.typesCount = 1;
+ this.modifiersCount = 1;
- this.onChange();
- }
- },
- 0, this
- );
+ this.onChange();
+ }
+ }, 0, this );
}
this.lastKeystroke = keystroke;
// Create undo snap after typed too much (over 25 times).
- if ( isEditingKey )
- {
+ if ( isEditingKey ) {
this.typesCount = 0;
this.modifiersCount++;
- if ( this.modifiersCount > 25 )
- {
+ if ( this.modifiersCount > 25 ) {
this.save( false, null, false );
this.modifiersCount = 1;
}
- }
- else if ( !isReset )
- {
+ } else if ( !isReset ) {
this.modifiersCount = 0;
this.typesCount++;
- if ( this.typesCount > 25 )
- {
+ if ( this.typesCount > 25 ) {
this.save( false, null, false );
this.typesCount = 1;
}
@@ -321,47 +341,44 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
},
- reset : function() // Reset the undo stack.
- {
- /**
- * Remember last pressed key.
- */
+ /**
+ * Reset the undo stack.
+ */
+ reset: function() {
+ // Remember last pressed key.
this.lastKeystroke = 0;
- /**
- * Stack for all the undo and redo snapshots, they're always created/removed
- * in consistency.
- */
+ // Stack for all the undo and redo snapshots, they're always created/removed
+ // in consistency.
this.snapshots = [];
- /**
- * Current snapshot history index.
- */
+ // Current snapshot history index.
this.index = -1;
- this.limit = this.editor.config.undoStackSize;
+ this.limit = this.editor.config.undoStackSize || 20;
this.currentImage = null;
this.hasUndo = false;
this.hasRedo = false;
+ this.locked = null;
this.resetType();
},
/**
* Reset all states about typing.
- * @see UndoManager.type
+ *
+ * @see #type
*/
- resetType : function()
- {
+ resetType: function() {
this.typing = false;
delete this.lastKeystroke;
this.typesCount = 0;
this.modifiersCount = 0;
},
- fireChange : function()
- {
+
+ fireChange: function() {
this.hasUndo = !!this.getNextImage( true );
this.hasRedo = !!this.getNextImage( false );
// Reset typing
@@ -372,8 +389,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Save a snapshot of document image for later retrieve.
*/
- save : function( onContentOnly, image, autoFireChange )
- {
+ save: function( onContentOnly, image, autoFireChange ) {
+ // Do not change snapshots stack when locked.
+ if ( this.locked )
+ return false;
+
var snapshots = this.snapshots;
// Get a content image.
@@ -405,14 +425,27 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
return true;
},
- restoreImage : function( image )
- {
+ restoreImage: function( image ) {
+ // Bring editor focused to restore selection.
+ var editor = this.editor,
+ sel;
+
+ if ( image.bookmarks ) {
+ editor.focus();
+ // Retrieve the selection beforehand. (#8324)
+ sel = editor.getSelection();
+ }
+
+ // Start transaction - do not allow any mutations to the
+ // snapshots stack done when selecting bookmarks (much probably
+ // by selectionChange listener).
+ this.locked = 1;
+
this.editor.loadSnapshot( image.contents );
if ( image.bookmarks )
- this.editor.getSelection().selectBookmarks( image.bookmarks );
- else if ( CKEDITOR.env.ie )
- {
+ sel.selectBookmarks( image.bookmarks );
+ else if ( CKEDITOR.env.ie ) {
// IE BUG: If I don't set the selection to *somewhere* after setting
// document contents, then IE would create an empty paragraph at the bottom
// the next time the document is modified.
@@ -421,6 +454,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
$range.select();
}
+ this.locked = 0;
+
this.index = image.index;
// Update current image with the actual editor
@@ -431,33 +466,24 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
},
// Get the closest available image.
- getNextImage : function( isUndo )
- {
+ getNextImage: function( isUndo ) {
var snapshots = this.snapshots,
currentImage = this.currentImage,
image, i;
- if ( currentImage )
- {
- if ( isUndo )
- {
- for ( i = this.index - 1 ; i >= 0 ; i-- )
- {
+ if ( currentImage ) {
+ if ( isUndo ) {
+ for ( i = this.index - 1; i >= 0; i-- ) {
image = snapshots[ i ];
- if ( !currentImage.equals( image, true ) )
- {
+ if ( !currentImage.equals( image, true ) ) {
image.index = i;
return image;
}
}
- }
- else
- {
- for ( i = this.index + 1 ; i < snapshots.length ; i++ )
- {
+ } else {
+ for ( i = this.index + 1; i < snapshots.length; i++ ) {
image = snapshots[ i ];
- if ( !currentImage.equals( image, true ) )
- {
+ if ( !currentImage.equals( image, true ) ) {
image.index = i;
return image;
}
@@ -470,30 +496,27 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Check the current redo state.
- * @return {Boolean} Whether the document has previous state to
- * retrieve.
+ *
+ * @returns {Boolean} Whether the document has previous state to retrieve.
*/
- redoable : function()
- {
+ redoable: function() {
return this.enabled && this.hasRedo;
},
/**
* Check the current undo state.
- * @return {Boolean} Whether the document has future state to restore.
+ *
+ * @returns {Boolean} Whether the document has future state to restore.
*/
- undoable : function()
- {
+ undoable: function() {
return this.enabled && this.hasUndo;
},
/**
* Perform undo on current index.
*/
- undo : function()
- {
- if ( this.undoable() )
- {
+ undo: function() {
+ if ( this.undoable() ) {
this.save( true );
var image = this.getNextImage( true );
@@ -507,17 +530,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Perform redo on current index.
*/
- redo : function()
- {
- if ( this.redoable() )
- {
+ redo: function() {
+ if ( this.redoable() ) {
// Try to save. If no changes have been made, the redo stack
// will not change, so it will still be redoable.
this.save( true );
// If instead we had changes, we can't redo anymore.
- if ( this.redoable() )
- {
+ if ( this.redoable() ) {
var image = this.getNextImage( false );
if ( image )
return this.restoreImage( image ), true;
@@ -530,9 +550,47 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* Update the last snapshot of the undo stack with the current editor content.
*/
- update : function()
- {
- this.snapshots.splice( this.index, 1, ( this.currentImage = new Image( this.editor ) ) );
+ update: function() {
+ // Do not change snapshots stack is locked.
+ if ( !this.locked )
+ this.snapshots.splice( this.index, 1, ( this.currentImage = new Image( this.editor ) ) );
+ },
+
+ /**
+ * Lock the snapshot stack to prevent any save/update operations, and additionally
+ * update the tip snapshot with the DOM changes during the locked period when necessary,
+ * after the {@link #unlock} method is called.
+ *
+ * It's mainly used for ensure any DOM operations that shouldn't be recorded (e.g. auto paragraphing).
+ */
+ lock: function() {
+ if ( !this.locked ) {
+ var snapBefore = this.editor.getSnapshot();
+
+ // If current editor content matches the tip of snapshot stack,
+ // the stack tip must be updated by unlock, to include any changes made
+ // during this period.
+ var matchedTip = this.currentImage && snapBefore == this.currentImage.contents;
+
+ this.locked = { update: matchedTip ? snapBefore : null };
+ }
+ },
+
+ /**
+ * Unlock the snapshot stack and check to amend the last snapshot.
+ *
+ * See {@link #lock} for more details.
+ */
+ unlock: function() {
+ if ( this.locked ) {
+ var update = this.locked.update,
+ snap = this.editor.getSnapshot();
+
+ this.locked = null;
+
+ if ( typeof update == 'string' && snap != update )
+ this.update();
+ }
}
};
})();
@@ -540,16 +598,42 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
/**
* The number of undo steps to be saved. The higher this setting value the more
* memory is used for it.
- * @type Number
- * @default 20
- * @example
- * config.undoStackSize = 50;
+ *
+ * config.undoStackSize = 50;
+ *
+ * @cfg {Number} [undoStackSize=20]
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.undoStackSize = 20;
/**
* Fired when the editor is about to save an undo snapshot. This event can be
* fired by plugins and customizations to make the editor saving undo snapshots.
- * @name CKEDITOR.editor#saveSnapshot
- * @event
+ *
+ * @event saveSnapshot
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ */
+
+/**
+ * Fired before an undo image is to be taken. An undo image represents the
+ * editor state at some point. It's saved into an undo store, so the editor is
+ * able to recover the editor state on undo and redo operations.
+ *
+ * @since 3.5.3
+ * @event beforeUndoImage
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @see CKEDITOR.editor#afterUndoImage
+ */
+
+/**
+ * Fired after an undo image is taken. An undo image represents the
+ * editor state at some point. It's saved into an undo store, so the editor is
+ * able to recover the editor state on undo and redo operations.
+ *
+ * @since 3.5.3
+ * @event afterUndoImage
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @see CKEDITOR.editor#beforeUndoImage
*/
diff --git a/devel/third-party/ckeditor/plugins/wsc/LICENSE.md b/devel/third-party/ckeditor/plugins/wsc/LICENSE.md
new file mode 100644
index 0000000..6096de2
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/LICENSE.md
@@ -0,0 +1,28 @@
+Software License Agreement
+==========================
+
+**CKEditor WSC Plugin**
+Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+* GNU General Public License Version 2 or later (the "GPL"):
+ http://www.gnu.org/licenses/gpl.html
+
+* GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
+ http://www.gnu.org/licenses/lgpl.html
+
+* Mozilla Public License Version 1.1 or later (the "MPL"):
+ http://www.mozilla.org/MPL/MPL-1.1.html
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
+
+Sources of Intellectual Property Included in this plugin
+--------------------------------------------------------
+
+Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
diff --git a/devel/third-party/ckeditor/plugins/wsc/README.md b/devel/third-party/ckeditor/plugins/wsc/README.md
new file mode 100644
index 0000000..346e2ab
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/README.md
@@ -0,0 +1,25 @@
+CKEditor WebSpellChecker Plugin
+===============================
+
+This plugin brings Web Spell Checker (WSC) into CKEditor.
+
+WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
+
+Installation
+------------
+
+1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation.
+2. Enable the "wsc" plugin in the CKEditor configuration file (config.js):
+
+ config.extraPlugins = 'wsc';
+
+That's all. WSC will appear on the editor toolbar and will be ready to use.
+
+License
+-------
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
+
+Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
diff --git a/devel/third-party/ckeditor/plugins/wsc/dialogs/ciframe.html b/devel/third-party/ckeditor/plugins/wsc/dialogs/ciframe.html
index 0a96d82..292297d 100644
--- a/devel/third-party/ckeditor/plugins/wsc/dialogs/ciframe.html
+++ b/devel/third-party/ckeditor/plugins/wsc/dialogs/ciframe.html
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
-->
<html>
diff --git a/devel/third-party/ckeditor/plugins/wsc/dialogs/tmpFrameset.html b/devel/third-party/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
index 41abd6e..88e1afe 100644
--- a/devel/third-party/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
+++ b/devel/third-party/ckeditor/plugins/wsc/dialogs/tmpFrameset.html
@@ -1,6 +1,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
-->
<html>
diff --git a/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.css b/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.css
index b935fbb..e163948 100644
--- a/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.css
+++ b/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.css
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
diff --git a/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.js b/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.js
index b084384..ddded57 100644
--- a/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.js
+++ b/devel/third-party/ckeditor/plugins/wsc/dialogs/wsc.js
@@ -1,19 +1,19 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.dialog.add( 'checkspell', function( editor )
-{
+CKEDITOR.dialog.add( 'checkspell', function( editor ) {
var number = CKEDITOR.tools.getNextNumber(),
iframeId = 'cke_frame_' + number,
textareaId = 'cke_data_' + number,
errorBoxId = 'cke_error_' + number,
interval,
protocol = document.location.protocol || 'http:',
- errorMsg = editor.lang.spellCheck.notAvailable;
+ errorMsg = editor.lang.wsc.notAvailable;
- var pasteArea = '<textarea'+
+ var pasteArea =
+ '<textarea' +
' style="display: none"' +
' id="' + textareaId + '"' +
' rows="10"' +
@@ -23,57 +23,51 @@ CKEDITOR.dialog.add( 'checkspell', function( editor )
' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">' +
'</div><iframe' +
' src=""' +
- ' style="width:485px;background-color:#f1f1e3;height:380px"' +
+ ' style="width:100%;background-color:#f1f1e3;"' +
' frameborder="0"' +
' name="' + iframeId + '"' +
' id="' + iframeId + '"' +
' allowtransparency="1">' +
'</iframe>';
- var wscCoreUrl = editor.config.wsc_customLoaderScript || ( protocol +
- '//loader.spellchecker.net/sproxy_fck/sproxy.php'
- + '?plugin=fck2'
- + '&customerid=' + editor.config.wsc_customerId
- + '&cmd=script&doc=wsc&schema=22'
- );
+ var wscCoreUrl = editor.config.wsc_customLoaderScript || ( protocol + '//loader.webspellchecker.net/sproxy_fck/sproxy.php' + '?plugin=fck2'
+ + '&customerid=' + editor.config.wsc_customerId
+ + '&cmd=script&doc=wsc&schema=22'
+ );
- if ( editor.config.wsc_customLoaderScript )
+ if ( editor.config.wsc_customLoaderScript ) {
errorMsg += '<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">' +
- editor.lang.spellCheck.errorLoading.replace( /%s/g, editor.config.wsc_customLoaderScript ) + '</p>';
+ editor.lang.wsc.errorLoading.replace( /%s/g, editor.config.wsc_customLoaderScript ) + '</p>';
+ }
- function burnSpelling( dialog, errorMsg )
- {
+ function burnSpelling( dialog, errorMsg ) {
var i = 0;
- return function ()
- {
- if ( typeof( window.doSpell ) == 'function' )
- {
+ return function() {
+ if ( typeof( window.doSpell ) == 'function' ) {
//Call from window.setInteval expected at once.
if ( typeof( interval ) != 'undefined' )
window.clearInterval( interval );
initAndSpell( dialog );
- }
- else if ( i++ == 180 ) // Timeout: 180 * 250ms = 45s.
- window._cancelOnError( errorMsg );
+ } else if ( i++ == 180 ) // Timeout: 180 * 250ms = 45s.
+ window._cancelOnError( errorMsg );
};
}
- window._cancelOnError = function( m )
- {
- if ( typeof( window.WSC_Error ) == 'undefined' )
- {
+ window._cancelOnError = function( m ) {
+ if ( typeof( window.WSC_Error ) == 'undefined' ) {
CKEDITOR.document.getById( iframeId ).setStyle( 'display', 'none' );
var errorBox = CKEDITOR.document.getById( errorBoxId );
errorBox.setStyle( 'display', 'block' );
- errorBox.setHtml( m || editor.lang.spellCheck.notAvailable );
+ errorBox.setHtml( m || editor.lang.wsc.notAvailable );
}
};
- function initAndSpell( dialog )
- {
- var LangComparer = new window._SP_FCK_LangCompare(), // Language abbr standarts comparer.
- pluginPath = CKEDITOR.getUrl( editor.plugins.wsc.path + 'dialogs/' ), // Service paths corecting/preparing.
+ function initAndSpell( dialog ) {
+ var LangComparer = new window._SP_FCK_LangCompare(),
+ // Language abbr standarts comparer.
+ pluginPath = CKEDITOR.getUrl( editor.plugins.wsc.path + 'dialogs/' ),
+ // Service paths corecting/preparing.
framesetPath = pluginPath + 'tmpFrameset.html';
// global var is used in FCK specific core
@@ -83,34 +77,32 @@ CKEDITOR.dialog.add( 'checkspell', function( editor )
LangComparer.setDefaulLangCode( editor.config.defaultLanguage );
window.doSpell({
- ctrl : textareaId,
+ ctrl: textareaId,
- lang : editor.config.wsc_lang || LangComparer.getSPLangCode(editor.langCode ),
- intLang: editor.config.wsc_uiLang || LangComparer.getSPLangCode(editor.langCode ),
- winType : iframeId, // If not defined app will run on winpopup.
+ lang: editor.config.wsc_lang || LangComparer.getSPLangCode( editor.langCode ),
+ intLang: editor.config.wsc_uiLang || LangComparer.getSPLangCode( editor.langCode ),
+ winType: iframeId, // If not defined app will run on winpopup.
// Callback binding section.
- onCancel : function()
- {
+ onCancel: function() {
dialog.hide();
},
- onFinish : function( dT )
- {
+ onFinish: function( dT ) {
editor.focus();
dialog.getParentEditor().setData( dT.value );
dialog.hide();
},
// Some manipulations with client static pages.
- staticFrame : framesetPath,
- framesetPath : framesetPath,
- iframePath : pluginPath + 'ciframe.html',
+ staticFrame: framesetPath,
+ framesetPath: framesetPath,
+ iframePath: pluginPath + 'ciframe.html',
// Styles defining.
- schemaURI : pluginPath + 'wsc.css',
+ schemaURI: pluginPath + 'wsc.css',
userDictionaryName: editor.config.wsc_userDictionaryName,
- customDictionaryName: editor.config.wsc_customDictionaryIds && editor.config.wsc_customDictionaryIds.split(","),
+ customDictionaryName: editor.config.wsc_customDictionaryIds && editor.config.wsc_customDictionaryIds.split( "," ),
domainName: editor.config.wsc_domainName
});
@@ -121,56 +113,63 @@ CKEDITOR.dialog.add( 'checkspell', function( editor )
}
return {
- title : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
- minWidth : 485,
- minHeight : 380,
- buttons : [ CKEDITOR.dialog.cancelButton ],
- onShow : function()
- {
+ title: editor.config.wsc_dialogTitle || editor.lang.wsc.title,
+ minWidth: 485,
+ minHeight: 380,
+ buttons: [ CKEDITOR.dialog.cancelButton ],
+ onShow: function() {
var contentArea = this.getContentElement( 'general', 'content' ).getElement();
contentArea.setHtml( pasteArea );
+ contentArea.getChild( 2 ).setStyle( 'height', this._.contentSize.height + 'px' );
- if ( typeof( window.doSpell ) != 'function' )
- {
+ if ( typeof( window.doSpell ) != 'function' ) {
// Load script.
- CKEDITOR.document.getHead().append(
- CKEDITOR.document.createElement( 'script',
- {
- attributes :
- {
- type : 'text/javascript',
- src : wscCoreUrl
- }
- })
- );
+ CKEDITOR.document.getHead().append( CKEDITOR.document.createElement( 'script', {
+ attributes: {
+ type: 'text/javascript',
+ src: wscCoreUrl
+ }
+ }));
}
- var sData = editor.getData(); // Get the data to be checked.
+ var sData = editor.getData(); // Get the data to be checked.
CKEDITOR.document.getById( textareaId ).setValue( sData );
interval = window.setInterval( burnSpelling( this, errorMsg ), 250 );
},
- onHide : function()
- {
+ onHide: function() {
window.ooo = undefined;
window.int_framsetLoaded = undefined;
window.framesetLoaded = undefined;
window.is_window_opened = false;
},
- contents : [
+ contents: [
{
- id : 'general',
- label : editor.config.wsc_dialogTitle || editor.lang.spellCheck.title,
- padding : 0,
- elements : [
- {
- type : 'html',
- id : 'content',
- style : 'width:485;height:380px',
- html : '<div></div>'
- }
- ]
+ id: 'general',
+ label: editor.config.wsc_dialogTitle || editor.lang.wsc.title,
+ padding: 0,
+ elements: [
+ {
+ type: 'html',
+ id: 'content',
+ html: ''
}
+ ]
+ }
]
};
});
+
+// Expand the spell-check frame when dialog resized. (#6829)
+CKEDITOR.dialog.on( 'resize', function( evt ) {
+ var data = evt.data,
+ dialog = data.dialog;
+
+ if ( dialog._.name == 'checkspell' ) {
+ var content = dialog.getContentElement( 'general', 'content' ).getElement(),
+ iframe = content && content.getChild( 2 );
+
+ iframe && iframe.setSize( 'height', data.height );
+ iframe && iframe.setSize( 'width', data.width );
+ }
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/icons/spellchecker.png b/devel/third-party/ckeditor/plugins/wsc/icons/spellchecker.png
new file mode 100644
index 0000000..701ceee
Binary files /dev/null and b/devel/third-party/ckeditor/plugins/wsc/icons/spellchecker.png differ
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/af.js b/devel/third-party/ckeditor/plugins/wsc/lang/af.js
new file mode 100644
index 0000000..7b3e70c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/af.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'af', {
+ btnIgnore: 'Ignoreer',
+ btnIgnoreAll: 'Ignoreer alles',
+ btnReplace: 'Vervang',
+ btnReplaceAll: 'vervang alles',
+ btnUndo: 'Ontdoen',
+ changeTo: 'Verander na',
+ errorLoading: 'Fout by inlaai van diens: %s.',
+ ieSpellDownload: 'Speltoetser is nie geïnstalleer nie. Wil u dit nou aflaai?',
+ manyChanges: 'Klaar met speltoets: %1 woorde verander',
+ noChanges: 'Klaar met speltoets: Geen woorde verander nie',
+ noMispell: 'Klaar met speltoets: Geen foute nie',
+ noSuggestions: '- Geen voorstel -',
+ notAvailable: 'Jammer, hierdie diens is nie nou beskikbaar nie.',
+ notInDic: 'Nie in woordeboek nie',
+ oneChange: 'Klaar met speltoets: Een woord verander',
+ progress: 'Spelling word getoets...',
+ title: 'Speltoetser',
+ toolbar: 'Speltoets'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ar.js b/devel/third-party/ckeditor/plugins/wsc/lang/ar.js
new file mode 100644
index 0000000..039b2c8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ar.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ar', {
+ btnIgnore: 'تجاÙÙ',
+ btnIgnoreAll: 'تجاÙ٠اÙÙÙ',
+ btnReplace: 'تغÙÙØ±',
+ btnReplaceAll: 'تغÙÙØ± اÙÙÙ',
+ btnUndo: 'تراجع',
+ changeTo: 'Ø§ÙØªØºÙÙØ± Ø¥ÙÙ',
+ errorLoading: 'خطأ Ù٠تØÙ
Ù٠تطبÙ٠خدÙ
Ø© Ø§ÙØ§Ø³ØªØ¶Ø§ÙØ©: %s.',
+ ieSpellDownload: 'اÙÙ
دÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù (Ø§ÙØ¥ÙجÙÙØ²Ù) ØºÙØ± Ù
Ø«Ø¨ÙØª. ÙÙ ØªÙØ¯ تØÙ
ÙÙÙ Ø§ÙØ¢ÙØ',
+ manyChanges: 'تÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± %1 Ù
Ù ÙÙÙ
ات',
+ noChanges: 'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
تغÙÙØ± Ø£Ù ÙÙÙ
Ø©',
+ noMispell: 'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠أ٠أخطاء Ø¥Ù
ÙØ§Ø¦ÙØ©',
+ noSuggestions: '- ÙØ§ ØªÙØ¬Ø¯ Ø¥ÙØªØ±Ø§ØØ§Øª -',
+ notAvailable: 'عÙÙØ§ÙØ ÙÙÙÙ ÙØ°Ù Ø§ÙØ®Ø¯Ù
Ø© ØºÙØ± Ù
ØªØ§ØØ© Ø§ÙØ§Ù',
+ notInDic: 'ÙÙØ³Øª Ù٠اÙÙØ§Ù
ÙØ³',
+ oneChange: 'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± ÙÙÙ
Ø© ÙØ§ØØ¯Ø© ÙÙØ·',
+ progress: 'Ø¬Ø§Ø±Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ§Ù
ÙØ§Ø¦Ù',
+ title: 'Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù',
+ toolbar: 'تدÙÙ٠إÙ
ÙØ§Ø¦Ù'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/bg.js b/devel/third-party/ckeditor/plugins/wsc/lang/bg.js
new file mode 100644
index 0000000..f4c1c04
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/bg.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'bg', {
+ btnIgnore: 'ÐгноÑиÑай',
+ btnIgnoreAll: 'ÐгноÑиÑай вÑиÑко',
+ btnReplace: 'ÐÑепокÑиване',
+ btnReplaceAll: 'ÐÑепокÑий вÑиÑко',
+ btnUndo: 'ÐÑзÑанови',
+ changeTo: 'ÐÑомени на',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- ÐÑма пÑепоÑÑÑани -',
+ notAvailable: 'СÑжалÑваме, но ÑÑлÑгаÑа не е доÑÑÑпна за моменÑа',
+ notInDic: 'Ðе е в ÑеÑника',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'ÐÑовеÑÑва Ñе пÑавопиÑа...',
+ title: 'ÐÑовеÑка на пÑавопиÑ',
+ toolbar: 'ÐÑовеÑка на пÑавопиÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/bn.js b/devel/third-party/ckeditor/plugins/wsc/lang/bn.js
new file mode 100644
index 0000000..3bf309d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/bn.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'bn', {
+ btnIgnore: 'à¦à¦à¦¨à§à¦° à¦à¦°',
+ btnIgnoreAll: 'সব à¦à¦à¦¨à§à¦° à¦à¦°',
+ btnReplace: 'বদলৠদাà¦',
+ btnReplaceAll: 'সব বদলৠদাà¦',
+ btnUndo: 'à¦à¦¨à§à¦¡à§',
+ changeTo: 'à¦à¦¤à§ বদলাà¦',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'বানান পরà§à¦à§à¦·à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ নà§à¦à¥¤ à¦à¦ªà¦¨à¦¿ à¦à¦¿ à¦à¦à¦¨à¦ à¦à¦à¦¾ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¤à§ à¦à¦¾à¦¨?',
+ manyChanges: 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: %1 à¦à§à¦²à§ শবà§à¦¦ বদলৠà¦à§à¦¯à¦¾à¦à§',
+ noChanges: 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à¦¨à¦¿',
+ noMispell: 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ à¦à§à¦² বানান পাà¦à§à¦¾ যাà§à¦¨à¦¿',
+ noSuggestions: '- à¦à§à¦¨ সাà¦à§à¦¶à¦¨ নà§à¦ -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'শবà§à¦¦à¦à§à¦·à§ নà§à¦',
+ oneChange: 'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à¦à¦à¦¿ মাতà§à¦° শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à§à¦à§',
+ progress: 'বানান পরà§à¦à§à¦·à¦¾ à¦à¦²à¦à§...',
+ title: 'Spell Check',
+ toolbar: 'বানান à¦à§à¦'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/bs.js b/devel/third-party/ckeditor/plugins/wsc/lang/bs.js
new file mode 100644
index 0000000..2b20c6a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/bs.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'bs', {
+ btnIgnore: 'Ignore',
+ btnIgnoreAll: 'Ignore All',
+ btnReplace: 'Replace',
+ btnReplaceAll: 'Replace All',
+ btnUndo: 'Undo',
+ changeTo: 'Change to',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- No suggestions -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Not in dictionary',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'Spell check in progress...',
+ title: 'Spell Check',
+ toolbar: 'Check Spelling'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ca.js b/devel/third-party/ckeditor/plugins/wsc/lang/ca.js
new file mode 100644
index 0000000..1c64af3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ca.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ca', {
+ btnIgnore: 'Ignora',
+ btnIgnoreAll: 'Ignora-les totes',
+ btnReplace: 'Canvia',
+ btnReplaceAll: 'Canvia-les totes',
+ btnUndo: 'Desfés',
+ changeTo: 'Reemplaça amb',
+ errorLoading: 'Error carregant el servidor: %s.',
+ ieSpellDownload: 'Verificació ortogrà fica no instal·lada. Voleu descarregar-ho ara?',
+ manyChanges: 'Verificació ortogrà fica: s\'han canviat %1 paraules',
+ noChanges: 'Verificació ortogrà fica: no s\'ha canviat cap paraula',
+ noMispell: 'Verificació ortogrà fica acabada: no hi ha cap paraula mal escrita',
+ noSuggestions: 'Cap suggeriment',
+ notAvailable: 'El servei no es troba disponible ara.',
+ notInDic: 'No és al diccionari',
+ oneChange: 'Verificació ortogrà fica: s\'ha canviat una paraula',
+ progress: 'Verificació ortogrà fica en curs...',
+ title: 'Comprova l\'ortografia',
+ toolbar: 'Revisa l\'ortografia'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/cs.js b/devel/third-party/ckeditor/plugins/wsc/lang/cs.js
new file mode 100644
index 0000000..40f0618
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/cs.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'cs', {
+ btnIgnore: 'PÅeskoÄit',
+ btnIgnoreAll: 'PÅeskakovat vÅ¡e',
+ btnReplace: 'ZamÄnit',
+ btnReplaceAll: 'ZamÄÅovat vÅ¡e',
+ btnUndo: 'ZpÄt',
+ changeTo: 'ZmÄnit na',
+ errorLoading: 'Chyba nahrávánà služby aplikace z: %s.',
+ ieSpellDownload: 'Kontrola pravopisu nenà nainstalována. Chcete ji nynà stáhnout?',
+ manyChanges: 'Kontrola pravopisu dokonÄena: %1 slov zmÄnÄno',
+ noChanges: 'Kontrola pravopisu dokonÄena: Beze zmÄn',
+ noMispell: 'Kontrola pravopisu dokonÄena: Žádné pravopisné chyby nenalezeny',
+ noSuggestions: '- žádné návrhy -',
+ notAvailable: 'Omlouváme se, ale služba nynà nenà dostupná.',
+ notInDic: 'Nenà ve slovnÃku',
+ oneChange: 'Kontrola pravopisu dokonÄena: Jedno slovo zmÄnÄno',
+ progress: 'ProbÃhá kontrola pravopisu...',
+ title: 'Kontrola pravopisu',
+ toolbar: 'Zkontrolovat pravopis'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/cy.js b/devel/third-party/ckeditor/plugins/wsc/lang/cy.js
new file mode 100644
index 0000000..5717d65
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/cy.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'cy', {
+ btnIgnore: 'Anwybyddu Un',
+ btnIgnoreAll: 'Anwybyddu Pob',
+ btnReplace: 'Amnewid Un',
+ btnReplaceAll: 'Amnewid Pob',
+ btnUndo: 'Dadwneud',
+ changeTo: 'Newid i',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Gwirydd sillafu heb ei arsefydlu. A ydych am ei lawrlwytho nawr?',
+ manyChanges: 'Gwirio sillafu wedi gorffen: Newidiwyd %1 gair',
+ noChanges: 'Gwirio sillafu wedi gorffen: Dim newidiadau',
+ noMispell: 'Gwirio sillafu wedi gorffen: Dim camsillaf.',
+ noSuggestions: '- Dim awgrymiadau -',
+ notAvailable: 'Nid yw\'r gwasanaeth hwn ar gael yn bresennol.',
+ notInDic: 'Nid i\'w gael yn y geiriadur',
+ oneChange: 'Gwirio sillafu wedi gorffen: Newidiwyd 1 gair',
+ progress: 'Gwirio sillafu yn ar y gweill...',
+ title: 'Gwirio Sillafu',
+ toolbar: 'Gwirio Sillafu'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/da.js b/devel/third-party/ckeditor/plugins/wsc/lang/da.js
new file mode 100644
index 0000000..fb64faf
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/da.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'da', {
+ btnIgnore: 'Ignorér',
+ btnIgnoreAll: 'Ignorér alle',
+ btnReplace: 'Erstat',
+ btnReplaceAll: 'Erstat alle',
+ btnUndo: 'Tilbage',
+ changeTo: 'Forslag',
+ errorLoading: 'Fejl ved indlæsning af host: %s.',
+ ieSpellDownload: 'Stavekontrol ikke installeret. Vil du installere den nu?',
+ manyChanges: 'Stavekontrol færdig: %1 ord ændret',
+ noChanges: 'Stavekontrol færdig: Ingen ord ændret',
+ noMispell: 'Stavekontrol færdig: Ingen fejl fundet',
+ noSuggestions: '(ingen forslag)',
+ notAvailable: 'Stavekontrol er desværre ikke tilgængelig.',
+ notInDic: 'Ikke i ordbogen',
+ oneChange: 'Stavekontrol færdig: Et ord ændret',
+ progress: 'Stavekontrollen arbejder...',
+ title: 'Stavekontrol',
+ toolbar: 'Stavekontrol'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/de.js b/devel/third-party/ckeditor/plugins/wsc/lang/de.js
new file mode 100644
index 0000000..c08a286
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/de.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'de', {
+ btnIgnore: 'Ignorieren',
+ btnIgnoreAll: 'Alle Ignorieren',
+ btnReplace: 'Ersetzen',
+ btnReplaceAll: 'Alle Ersetzen',
+ btnUndo: 'Rückgängig',
+ changeTo: 'Ãndern in',
+ errorLoading: 'Fehler beim laden des Dienstanbieters: %s.',
+ ieSpellDownload: 'Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?',
+ manyChanges: 'Rechtschreibprüfung abgeschlossen - %1 Wörter geändert',
+ noChanges: 'Rechtschreibprüfung abgeschlossen - keine Worte geändert',
+ noMispell: 'Rechtschreibprüfung abgeschlossen - keine Fehler gefunden',
+ noSuggestions: ' - keine Vorschläge - ',
+ notAvailable: 'Entschuldigung, aber dieser Dienst steht im Moment nicht zur Verfügung.',
+ notInDic: 'Nicht im Wörterbuch',
+ oneChange: 'Rechtschreibprüfung abgeschlossen - ein Wort geändert',
+ progress: 'Rechtschreibprüfung läuft...',
+ title: 'Rechtschreibprüfung',
+ toolbar: 'Rechtschreibprüfung'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/el.js b/devel/third-party/ckeditor/plugins/wsc/lang/el.js
new file mode 100644
index 0000000..105511a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/el.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'el', {
+ btnIgnore: 'ÎγνÏηÏη',
+ btnIgnoreAll: 'ÎγνÏηÏη ÏλÏν',
+ btnReplace: 'ÎνÏικαÏάÏÏαÏη',
+ btnReplaceAll: 'ÎνÏικαÏάÏÏαÏη ÏλÏν',
+ btnUndo: 'ÎναίÏεÏη',
+ changeTo: 'Îλλαγή Ïε',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Îεν Ï
ÏάÏÏει εγκαÏεÏÏημÎÎ½Î¿Ï Î¿ÏθογÏάÏοÏ. ÎÎλεÏε να Ïον καÏεβάÏεÏε ÏÏÏα;',
+ manyChanges: 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îλλαξαν %1 λÎξειÏ',
+ noChanges: 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν άλλαξαν λÎξειÏ',
+ noMispell: 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν βÏÎθηκαν λάθη',
+ noSuggestions: '- Îεν Ï
ÏάÏÏοÏ
ν ÏÏοÏάÏÎµÎ¹Ï -',
+ notAvailable: 'Î Ï
ÏηÏεÏία δεν είναι διαθÎÏιμη αÏ
Ïήν Ïην ÏÏιγμή.',
+ notInDic: 'Îεν Ï
ÏάÏÏει ÏÏο λεξικÏ',
+ oneChange: 'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îλλαξε μια λÎξη',
+ progress: 'ÎίνεÏαι οÏθογÏαÏικÏÏ ÎλεγÏοÏ...',
+ title: 'ÎÏθογÏαÏικÏÏ ÎλεγÏοÏ',
+ toolbar: 'ÎÏθογÏαÏικÏÏ ÎλεγÏοÏ'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/en-au.js b/devel/third-party/ckeditor/plugins/wsc/lang/en-au.js
new file mode 100644
index 0000000..9db0992
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/en-au.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'en-au', {
+ btnIgnore: 'Ignore',
+ btnIgnoreAll: 'Ignore All',
+ btnReplace: 'Replace',
+ btnReplaceAll: 'Replace All',
+ btnUndo: 'Undo',
+ changeTo: 'Change to',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- No suggestions -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Not in dictionary',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'Spell check in progress...',
+ title: 'Spell Check',
+ toolbar: 'Check Spelling'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/en-ca.js b/devel/third-party/ckeditor/plugins/wsc/lang/en-ca.js
new file mode 100644
index 0000000..582e436
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/en-ca.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'en-ca', {
+ btnIgnore: 'Ignore',
+ btnIgnoreAll: 'Ignore All',
+ btnReplace: 'Replace',
+ btnReplaceAll: 'Replace All',
+ btnUndo: 'Undo',
+ changeTo: 'Change to',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- No suggestions -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Not in dictionary',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'Spell check in progress...',
+ title: 'Spell Check',
+ toolbar: 'Check Spelling'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/en-gb.js b/devel/third-party/ckeditor/plugins/wsc/lang/en-gb.js
new file mode 100644
index 0000000..d256d2a
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/en-gb.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'en-gb', {
+ btnIgnore: 'Ignore',
+ btnIgnoreAll: 'Ignore All',
+ btnReplace: 'Replace',
+ btnReplaceAll: 'Replace All',
+ btnUndo: 'Undo',
+ changeTo: 'Change to',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- No suggestions -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Not in dictionary',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'Spell check in progress...',
+ title: 'Spell Check',
+ toolbar: 'Check Spelling'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/en.js b/devel/third-party/ckeditor/plugins/wsc/lang/en.js
new file mode 100644
index 0000000..7e8d500
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/en.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'en', {
+ btnIgnore: 'Ignore',
+ btnIgnoreAll: 'Ignore All',
+ btnReplace: 'Replace',
+ btnReplaceAll: 'Replace All',
+ btnUndo: 'Undo',
+ changeTo: 'Change to',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- No suggestions -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Not in dictionary',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'Spell check in progress...',
+ title: 'Spell Check',
+ toolbar: 'Check Spelling'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/eo.js b/devel/third-party/ckeditor/plugins/wsc/lang/eo.js
new file mode 100644
index 0000000..6f75f9c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/eo.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'eo', {
+ btnIgnore: 'Ignori',
+ btnIgnoreAll: 'Ignori Äion',
+ btnReplace: 'AnstataÅigi',
+ btnReplaceAll: 'AnstataÅigi Äion',
+ btnUndo: 'Malfari',
+ changeTo: 'ÅanÄi al',
+ errorLoading: 'Eraro en la servoelÅuto el la gastiga komputiko: %s.',
+ ieSpellDownload: 'Ortografikontrolilo ne instalita. Äu vi volas elÅuti Äin nun?',
+ manyChanges: 'Ortografikontrolado finita: %1 vortoj korektitaj',
+ noChanges: 'Ortografikontrolado finita: neniu vorto korektita',
+ noMispell: 'Ortografikontrolado finita: neniu eraro trovita',
+ noSuggestions: '- Neniu propono -',
+ notAvailable: 'BedaÅrinde la servo ne funkcias nuntempe.',
+ notInDic: 'Ne trovita en la vortaro',
+ oneChange: 'Ortografikontrolado finita: unu vorto korektita',
+ progress: 'La ortografio estas kontrolata...',
+ title: 'Kontroli la ortografion',
+ toolbar: 'Kontroli la ortografion'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/es.js b/devel/third-party/ckeditor/plugins/wsc/lang/es.js
new file mode 100644
index 0000000..2b327ef
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/es.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'es', {
+ btnIgnore: 'Ignorar',
+ btnIgnoreAll: 'Ignorar Todo',
+ btnReplace: 'Reemplazar',
+ btnReplaceAll: 'Reemplazar Todo',
+ btnUndo: 'Deshacer',
+ changeTo: 'Cambiar a',
+ errorLoading: 'Error cargando la aplicación del servidor: %s.',
+ ieSpellDownload: 'Módulo de Control de OrtografÃa no instalado.\r\n¿Desea descargarlo ahora?',
+ manyChanges: 'Control finalizado: se ha cambiado %1 palabras',
+ noChanges: 'Control finalizado: no se ha cambiado ninguna palabra',
+ noMispell: 'Control finalizado: no se encontraron errores',
+ noSuggestions: '- No hay sugerencias -',
+ notAvailable: 'Lo sentimos pero el servicio no está disponible.',
+ notInDic: 'No se encuentra en el Diccionario',
+ oneChange: 'Control finalizado: se ha cambiado una palabra',
+ progress: 'Control de OrtografÃa en progreso...',
+ title: 'Comprobar ortografÃa',
+ toolbar: 'OrtografÃa'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/et.js b/devel/third-party/ckeditor/plugins/wsc/lang/et.js
new file mode 100644
index 0000000..38f8348
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/et.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'et', {
+ btnIgnore: 'Ignoreeri',
+ btnIgnoreAll: 'Ignoreeri kõiki',
+ btnReplace: 'Asenda',
+ btnReplaceAll: 'Asenda kõik',
+ btnUndo: 'Võta tagasi',
+ changeTo: 'Muuda',
+ errorLoading: 'Viga rakenduse teenushosti laadimisel: %s.',
+ ieSpellDownload: 'Ãigekirja kontrollija ei ole paigaldatud. Soovid sa selle alla laadida?',
+ manyChanges: 'Ãigekirja kontroll sooritatud: %1 sõna muudetud',
+ noChanges: 'Ãigekirja kontroll sooritatud: ühtegi sõna ei muudetud',
+ noMispell: 'Ãigekirja kontroll sooritatud: õigekirjuvigu ei leitud',
+ noSuggestions: '- Soovitused puuduvad -',
+ notAvailable: 'Kahjuks ei ole teenus praegu saadaval.',
+ notInDic: 'Puudub sõnastikust',
+ oneChange: 'Ãigekirja kontroll sooritatud: üks sõna muudeti',
+ progress: 'Toimub õigekirja kontroll...',
+ title: 'Ãigekirjakontroll',
+ toolbar: 'Ãigekirjakontroll'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/eu.js b/devel/third-party/ckeditor/plugins/wsc/lang/eu.js
new file mode 100644
index 0000000..1e974b9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/eu.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'eu', {
+ btnIgnore: 'Ezikusi',
+ btnIgnoreAll: 'Denak Ezikusi',
+ btnReplace: 'Ordezkatu',
+ btnReplaceAll: 'Denak Ordezkatu',
+ btnUndo: 'Desegin',
+ changeTo: 'Honekin ordezkatu',
+ errorLoading: 'Errorea gertatu da aplikazioa zerbitzaritik kargatzean: %s.',
+ ieSpellDownload: 'Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?',
+ manyChanges: 'Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira',
+ noChanges: 'Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu',
+ noMispell: 'Zuzenketa ortografikoa bukatuta: Akatsik ez',
+ noSuggestions: '- Iradokizunik ez -',
+ notAvailable: 'Barkatu baina momentu honetan zerbitzua ez dago erabilgarri.',
+ notInDic: 'Ez dago hiztegian',
+ oneChange: 'Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da',
+ progress: 'Zuzenketa ortografikoa martxan...',
+ title: 'Ortografia zuzenketa',
+ toolbar: 'Ortografia'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/fa.js b/devel/third-party/ckeditor/plugins/wsc/lang/fa.js
new file mode 100644
index 0000000..cae1428
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/fa.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'fa', {
+ btnIgnore: 'ÚØ´Ù
Ù¾ÙØ´Û',
+ btnIgnoreAll: 'ÚØ´Ù
Ù¾ÙØ´Û ÙÙ
Ù',
+ btnReplace: 'جاÛگزÛÙÛ',
+ btnReplaceAll: 'جاÛگزÛÙÛ ÙÙ
Ù',
+ btnUndo: 'ÙØ§ÚÛÙØ´',
+ changeTo: 'تغÛÛØ± بÙ',
+ errorLoading: 'خطا در Ø¨Ø§Ø±Ú¯ÛØ±Û Ø¨Ø±ÙØ§Ù
٠خدÙ
ات Ù
ÛØ²Ø¨Ø§Ù: %s.',
+ ieSpellDownload: 'Ø¨Ø±Ø±Ø³Û Ú©ÙÙØ¯ÙÙ´ اÙ
ÙØ§ ÙØµØ¨ ÙØ´Ø¯Ù است. Ø¢ÛØ§ Ù
ÛØ®ÙاÙÛØ¯ آ٠را ÙÙ
اکÙÙÙ Ø¯Ø±ÛØ§Ùت Ú©ÙÛØ¯Ø',
+ manyChanges: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. %1 ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت',
+ noChanges: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ÙØ§ÚÙØ§Û تغÛÛØ± ÙÛØ§Ùت',
+ noMispell: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ØºÙØ· اÙ
ÙØ§Ø¦Û ÛØ§Ùت ÙØ´Ø¯',
+ noSuggestions: '- Ù¾ÛØ´ÙÙØ§Ø¯Û ÙÛØ³Øª -',
+ notAvailable: 'با عرض Ù¾ÙØ²Ø´ خدÙ
ات Ø§ÙØ§Ù در دسترس ÙÛØ³ØªÙد.',
+ notInDic: 'در ÙØ§ÚÙ~ÙØ§Ù
Ù ÛØ§Ùت ÙØ´Ø¯',
+ oneChange: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÛÚ© ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت',
+ progress: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ در ØØ§Ù Ø§ÙØ¬Ø§Ù
...',
+ title: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§',
+ toolbar: 'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/fi.js b/devel/third-party/ckeditor/plugins/wsc/lang/fi.js
new file mode 100644
index 0000000..f2fb385
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/fi.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'fi', {
+ btnIgnore: 'Jätä huomioimatta',
+ btnIgnoreAll: 'Jätä kaikki huomioimatta',
+ btnReplace: 'Korvaa',
+ btnReplaceAll: 'Korvaa kaikki',
+ btnUndo: 'Kumoa',
+ changeTo: 'Vaihda',
+ errorLoading: 'Virhe ladattaessa oikolukupalvelua isännältä: %s.',
+ ieSpellDownload: 'Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?',
+ manyChanges: 'Tarkistus valmis: %1 sanaa muutettiin',
+ noChanges: 'Tarkistus valmis: Yhtään sanaa ei muutettu',
+ noMispell: 'Tarkistus valmis: Ei virheitä',
+ noSuggestions: 'Ei ehdotuksia',
+ notAvailable: 'Valitettavasti oikoluku ei ole käytössä tällä hetkellä.',
+ notInDic: 'Ei sanakirjassa',
+ oneChange: 'Tarkistus valmis: Yksi sana muutettiin',
+ progress: 'Tarkistus käynnissä...',
+ title: 'Oikoluku',
+ toolbar: 'Tarkista oikeinkirjoitus'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/fo.js b/devel/third-party/ckeditor/plugins/wsc/lang/fo.js
new file mode 100644
index 0000000..89cc6ee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/fo.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'fo', {
+ btnIgnore: 'Forfjóna',
+ btnIgnoreAll: 'Forfjóna alt',
+ btnReplace: 'Yvirskriva',
+ btnReplaceAll: 'Yvirskriva alt',
+ btnUndo: 'Angra',
+ changeTo: 'Broyt til',
+ errorLoading: 'Feilur við innlesing av application service host: %s.',
+ ieSpellDownload: 'Rættstavarin er ikki tøkur à tekstviðgeranum. Vilt tú heinta hann nú?',
+ manyChanges: 'Rættstavarin liðugur: %1 orð broytt',
+ noChanges: 'Rættstavarin liðugur: Einki orð varð broytt',
+ noMispell: 'Rættstavarin liðugur: Eingin feilur funnin',
+ noSuggestions: '- Einki uppskot -',
+ notAvailable: 'TÃverri, ikki tøkt à løtuni.',
+ notInDic: 'Finst ikki à orðabókini',
+ oneChange: 'Rættstavarin liðugur: Eitt orð er broytt',
+ progress: 'Rættstavarin arbeiðir...',
+ title: 'Kanna stavseting',
+ toolbar: 'Kanna stavseting'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/fr-ca.js b/devel/third-party/ckeditor/plugins/wsc/lang/fr-ca.js
new file mode 100644
index 0000000..6d15700
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/fr-ca.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'fr-ca', {
+ btnIgnore: 'Ignorer',
+ btnIgnoreAll: 'Ignorer tout',
+ btnReplace: 'Remplacer',
+ btnReplaceAll: 'Remplacer tout',
+ btnUndo: 'Annuler',
+ changeTo: 'Changer en',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Le Correcteur d\'orthographe n\'est pas installé. Souhaitez-vous le télécharger maintenant?',
+ manyChanges: 'Vérification d\'orthographe terminée: %1 mots modifiés',
+ noChanges: 'Vérification d\'orthographe terminée: Pas de modifications',
+ noMispell: 'Vérification d\'orthographe terminée: pas d\'erreur trouvée',
+ noSuggestions: '- Pas de suggestion -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Pas dans le dictionnaire',
+ oneChange: 'Vérification d\'orthographe terminée: Un mot modifié',
+ progress: 'Vérification d\'orthographe en cours...',
+ title: 'Spell Check',
+ toolbar: 'Orthographe'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/fr.js b/devel/third-party/ckeditor/plugins/wsc/lang/fr.js
new file mode 100644
index 0000000..ef6cc87
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/fr.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'fr', {
+ btnIgnore: 'Ignorer',
+ btnIgnoreAll: 'Ignorer tout',
+ btnReplace: 'Remplacer',
+ btnReplaceAll: 'Remplacer tout',
+ btnUndo: 'Annuler',
+ changeTo: 'Modifier pour',
+ errorLoading: 'Erreur du chargement du service depuis l\'hôte : %s.',
+ ieSpellDownload: 'La vérification d\'orthographe n\'est pas installée. Voulez-vous la télécharger maintenant?',
+ manyChanges: 'Vérification de l\'orthographe terminée : %1 mots corrigés.',
+ noChanges: 'Vérification de l\'orthographe terminée : Aucun mot corrigé.',
+ noMispell: 'Vérification de l\'orthographe terminée : aucune erreur trouvée.',
+ noSuggestions: '- Aucune suggestion -',
+ notAvailable: 'Désolé, le service est indisponible actuellement.',
+ notInDic: 'N\'existe pas dans le dictionnaire.',
+ oneChange: 'Vérification de l\'orthographe terminée : Un seul mot corrigé.',
+ progress: 'Vérification de l\'orthographe en cours...',
+ title: 'Vérifier l\'orthographe',
+ toolbar: 'Vérifier l\'orthographe'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/gl.js b/devel/third-party/ckeditor/plugins/wsc/lang/gl.js
new file mode 100644
index 0000000..b8ce152
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/gl.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'gl', {
+ btnIgnore: 'Ignorar',
+ btnIgnoreAll: 'Ignorar Todas',
+ btnReplace: 'Substituir',
+ btnReplaceAll: 'Substituir Todas',
+ btnUndo: 'Desfacer',
+ changeTo: 'Cambiar a',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'O corrector ortográfico non está instalado. ¿Quere descargalo agora?',
+ manyChanges: 'Corrección ortográfica rematada: %1 verbas substituidas',
+ noChanges: 'Corrección ortográfica rematada: Non se substituiu nengunha verba',
+ noMispell: 'Corrección ortográfica rematada: Non se atoparon erros',
+ noSuggestions: '- Sen candidatos -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Non está no diccionario',
+ oneChange: 'Corrección ortográfica rematada: Unha verba substituida',
+ progress: 'Corrección ortográfica en progreso...',
+ title: 'Spell Check',
+ toolbar: 'Corrección Ortográfica'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/gu.js b/devel/third-party/ckeditor/plugins/wsc/lang/gu.js
new file mode 100644
index 0000000..eb8d6c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/gu.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'gu', {
+ btnIgnore: 'àªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«',
+ btnIgnoreAll: 'બધાનૠàªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«',
+ btnReplace: 'બદલવà«àª',
+ btnReplaceAll: 'બધા બદલૠàªàª°à«',
+ btnUndo: 'àª
નà«àª¡à«',
+ changeTo: 'àªàª¨àª¾àª¥à« બદલવà«àª',
+ errorLoading: 'સરà«àªµàª¿àª¸ àªàªªà«àª²à«àªà«àª¶àª¨ લà«àª¡ નથૠથ: %s.',
+ ieSpellDownload: 'સà«àªªà«àª²-àªà«àªàª° àªàª¨à«àª¸à«àªà«àª² નથà«. શà«àª તમૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªàªà« àªà«?',
+ manyChanges: 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: %1 શબà«àª¦ બદલયા àªà«',
+ noChanges: 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàªàªªàª£ શબà«àª¦ બદલયૠનથà«',
+ noMispell: 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªà«àªà« àªà«àª¡àª£à« મળૠનથà«',
+ noSuggestions: '- àªàª સàªà«àª¶àª¨ નથૠ-',
+ notAvailable: 'માફ àªàª°àª¶à«, ઠસà«àªµàª¿àª§àª¾ àªàªªàª²àª¬à«àª§ નથà«',
+ notInDic: 'શબà«àª¦àªà«àª¶àª®àª¾àª નથà«',
+ oneChange: 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàª શબà«àª¦ બદલયૠàªà«',
+ progress: 'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª àªàª¾àª²à« àªà«...',
+ title: 'સà«àªªà«àª² ',
+ toolbar: 'àªà«àª¡àª£à« (સà«àªªà«àª²àª¿àªàª) તપાસવà«'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/he.js b/devel/third-party/ckeditor/plugins/wsc/lang/he.js
new file mode 100644
index 0000000..6ec5092
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/he.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'he', {
+ btnIgnore: '×תע×××ת',
+ btnIgnoreAll: '×תע×××ת ××××',
+ btnReplace: '×××פ×',
+ btnReplaceAll: '×××פת ×××',
+ btnUndo: '×××ר×',
+ changeTo: 'ש×× ×× ×',
+ errorLoading: 'ש×××× ×××¢××ת ×ש×ר×ת: %s.',
+ ieSpellDownload: '××××§ ××××ת ×× ××תק×, ××× ×××ר×××?',
+ manyChanges: '××××§×ת ×××ת ×סת××××: %1 ××××× ×©×× ×',
+ noChanges: '××××§×ת ×××ת ×סת××××: ×× ×©×× ×ª× ××£ ××××',
+ noMispell: '××××§×ת ×××ת ×סת××××: ×× × ×צ×× ×©××××ת ×ת××',
+ noSuggestions: '- ××× ×צע×ת -',
+ notAvailable: '×× × ××¦× ×©×ר×ת ××××.',
+ notInDic: '×× × ××¦× ××××××',
+ oneChange: '××××§×ת ×××ת ×סת××××: ש×× ×ª× ×××× ××ת',
+ progress: '××××§ ××××ת ×ת×××× ××××§×....',
+ title: '×××קת ×××ת',
+ toolbar: '×××קת ×××ת'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/hi.js b/devel/third-party/ckeditor/plugins/wsc/lang/hi.js
new file mode 100644
index 0000000..2ceace8
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/hi.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'hi', {
+ btnIgnore: 'à¤à¤à¥à¤¨à¥à¤°',
+ btnIgnoreAll: 'सà¤à¥ à¤à¤à¥à¤¨à¥à¤° à¤à¤°à¥à¤',
+ btnReplace: 'रिपà¥à¤²à¥à¤¸',
+ btnReplaceAll: 'सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤',
+ btnUndo: 'à¤
नà¥à¤¡à¥',
+ changeTo: 'à¤à¤¸à¤®à¥à¤ बदलà¥à¤',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'सà¥à¤ªà¥
ल-à¤à¥
à¤à¤° à¤à¤¨à¥à¤¸à¥à¤à¤¾à¤² नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥à¥¤ à¤à¥à¤¯à¤¾ à¤à¤ª à¤à¤¸à¥ डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¨à¤¾ à¤à¤¾à¤¹à¥à¤à¤à¥?',
+ manyChanges: 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : %1 शबà¥à¤¦ बदलॠà¤à¤¯à¥',
+ noChanges: 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ :à¤à¥à¤ शबà¥à¤¦ नहà¥à¤ बदला à¤à¤¯à¤¾',
+ noMispell: 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¥à¤ à¤à¤²à¤¤ वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥
लिà¤à¤) नहà¥à¤ पाठà¤à¤',
+ noSuggestions: '- à¤à¥à¤ सà¥à¤à¤¾à¤µ नहà¥à¤ -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'शबà¥à¤¦à¤à¥à¤¶ मà¥à¤ नहà¥à¤',
+ oneChange: 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¤ शबà¥à¤¦ बदला à¤à¤¯à¤¾',
+ progress: 'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ (सà¥à¤ªà¥
ल-à¤à¥
à¤) à¤à¤¾à¤°à¥ हà¥...',
+ title: 'Spell Check',
+ toolbar: 'वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥à¤²à¤¿à¤à¤) à¤à¤¾à¤à¤'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/hr.js b/devel/third-party/ckeditor/plugins/wsc/lang/hr.js
new file mode 100644
index 0000000..1e30ba0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/hr.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'hr', {
+ btnIgnore: 'Zanemari',
+ btnIgnoreAll: 'Zanemari sve',
+ btnReplace: 'Zamijeni',
+ btnReplaceAll: 'Zamijeni sve',
+ btnUndo: 'Vrati',
+ changeTo: 'Promijeni u',
+ errorLoading: 'GreÅ¡ka uÄitavanja aplikacije: %s.',
+ ieSpellDownload: 'Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?',
+ manyChanges: 'Provjera zavrÅ¡ena: Promijenjeno %1 rijeÄi',
+ noChanges: 'Provjera završena: Nije napravljena promjena',
+ noMispell: 'Provjera završena: Nema grešaka',
+ noSuggestions: '-Nema preporuke-',
+ notAvailable: 'Žao nam je, ali usluga trenutno nije dostupna.',
+ notInDic: 'Nije u rjeÄniku',
+ oneChange: 'Provjera zavrÅ¡ena: Jedna rijeÄ promjenjena',
+ progress: 'Provjera u tijeku...',
+ title: 'Provjera pravopisa',
+ toolbar: 'Provjeri pravopis'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/hu.js b/devel/third-party/ckeditor/plugins/wsc/lang/hu.js
new file mode 100644
index 0000000..b31d5cc
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/hu.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'hu', {
+ btnIgnore: 'Kihagyja',
+ btnIgnoreAll: 'Mindet kihagyja',
+ btnReplace: 'Csere',
+ btnReplaceAll: 'Ãsszes cseréje',
+ btnUndo: 'Visszavonás',
+ changeTo: 'MódosÃtás',
+ errorLoading: 'Hiba a szolgáltatás host betöltése közben: %s.',
+ ieSpellDownload: 'A helyesÃrás-ellenÅrzÅ nincs telepÃtve. Szeretné letölteni most?',
+ manyChanges: 'HelyesÃrás-ellenÅrzés kész: %1 szó cserélve',
+ noChanges: 'HelyesÃrás-ellenÅrzés kész: Nincs változtatott szó',
+ noMispell: 'HelyesÃrás-ellenÅrzés kész: Nem találtam hibát',
+ noSuggestions: 'Nincs javaslat',
+ notAvailable: 'Sajnálom, de a szolgáltatás jelenleg nem elérhetÅ.',
+ notInDic: 'Nincs a szótárban',
+ oneChange: 'HelyesÃrás-ellenÅrzés kész: Egy szó cserélve',
+ progress: 'HelyesÃrás-ellenÅrzés folyamatban...',
+ title: 'HelyesÃrás ellenörzÅ',
+ toolbar: 'HelyesÃrás-ellenÅrzés'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/is.js b/devel/third-party/ckeditor/plugins/wsc/lang/is.js
new file mode 100644
index 0000000..0c117c6
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/is.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'is', {
+ btnIgnore: 'Hunsa',
+ btnIgnoreAll: 'Hunsa allt',
+ btnReplace: 'Skipta',
+ btnReplaceAll: 'Skipta öllu',
+ btnUndo: 'Til baka',
+ changeTo: 'Tillaga',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Villuleit ekki sett upp.<br>Viltu setja hana upp?',
+ manyChanges: 'Villuleit lokið: %1 orðum breytt',
+ noChanges: 'Villuleit lokið: Engu orði breytt',
+ noMispell: 'Villuleit lokið: Engin villa fannst',
+ noSuggestions: '- engar tillögur -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Ekki à orðabókinni',
+ oneChange: 'Villuleit lokið: Einu orði breytt',
+ progress: 'Villuleit à gangi...',
+ title: 'Spell Check',
+ toolbar: 'Villuleit'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/it.js b/devel/third-party/ckeditor/plugins/wsc/lang/it.js
new file mode 100644
index 0000000..cb67825
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/it.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'it', {
+ btnIgnore: 'Ignora',
+ btnIgnoreAll: 'Ignora tutto',
+ btnReplace: 'Cambia',
+ btnReplaceAll: 'Cambia tutto',
+ btnUndo: 'Annulla',
+ changeTo: 'Cambia in',
+ errorLoading: 'Errore nel caricamento dell\'host col servizio applicativo: %s.',
+ ieSpellDownload: 'Contollo ortografico non installato. Lo vuoi scaricare ora?',
+ manyChanges: 'Controllo ortografico completato: %1 parole cambiate',
+ noChanges: 'Controllo ortografico completato: nessuna parola cambiata',
+ noMispell: 'Controllo ortografico completato: nessun errore trovato',
+ noSuggestions: '- Nessun suggerimento -',
+ notAvailable: 'Il servizio non è momentaneamente disponibile.',
+ notInDic: 'Non nel dizionario',
+ oneChange: 'Controllo ortografico completato: 1 parola cambiata',
+ progress: 'Controllo ortografico in corso',
+ title: 'Controllo ortografico',
+ toolbar: 'Correttore ortografico'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ja.js b/devel/third-party/ckeditor/plugins/wsc/lang/ja.js
new file mode 100644
index 0000000..79b58e0
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ja.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ja', {
+ btnIgnore: 'ç¡è¦',
+ btnIgnoreAll: 'ãã¹ã¦ç¡è¦',
+ btnReplace: 'ç½®æ',
+ btnReplaceAll: 'ãã¹ã¦ç½®æ',
+ btnUndo: 'ããç´ã',
+ changeTo: '夿´',
+ errorLoading: 'ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¹ãã¹ãèªè¾¼ã¿ã¨ã©ã¼: %s.',
+ ieSpellDownload: 'ã¹ãã«ãã§ãã«ã¼ãã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãããä»ãããã¦ã³ãã¼ããã¾ãã?',
+ manyChanges: 'ã¹ãã«ãã§ãã¯å®äº: %1 èªå¥å¤æ´ããã¾ãã',
+ noChanges: 'ã¹ãã«ãã§ãã¯å®äº: èªå¥ã¯å¤æ´ããã¾ããã§ãã',
+ noMispell: 'ã¹ãã«ãã§ãã¯å®äº: ã¹ãã«ã®èª¤ãã¯ããã¾ããã§ãã',
+ noSuggestions: '- 該å½ãªã -',
+ notAvailable: 'ç³ã訳ããã¾ãããç¾å¨ãµã¼ãã¹ãå©ç¨ãããã¨ãã§ãã¾ãã',
+ notInDic: 'è¾æ¸ã«ããã¾ãã',
+ oneChange: 'ã¹ãã«ãã§ãã¯å®äº: ï¼èªå¥å¤æ´ããã¾ãã',
+ progress: 'ã¹ãã«ãã§ãã¯å¦çä¸...',
+ title: 'ã¹ãã«ãã§ãã¯',
+ toolbar: 'ã¹ãã«ãã§ãã¯'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ka.js b/devel/third-party/ckeditor/plugins/wsc/lang/ka.js
new file mode 100644
index 0000000..85d4db7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ka.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ka', {
+ btnIgnore: 'á£áá£áááááá§áá¤á',
+ btnIgnoreAll: 'á§ááááá¡ á£áá£áááááá§áá¤á',
+ btnReplace: 'á¨ááªááá',
+ btnReplaceAll: 'á§ááááá¡ á¨ááªááá',
+ btnUndo: 'ááá£á¥áááá',
+ changeTo: 'á¨ááªááááá',
+ errorLoading: 'á¡áá ááá¡áá¡ ááááá«áá®áááá¡ á¨ááªáááá: %s.',
+ ieSpellDownload: 'ááá ááá¬áá áá¡ á¨áááá¬áááá áá áá ááááá¡á¢áááá ááá£áá. á©ááááá¥áá©áá ááá¢áá ááá¢áááá?',
+ manyChanges: 'ááá ááá¬áá áá¡ á¨áááá¬áááá: %1 á¡áá¢á§áá á¨áááªáááá',
+ noChanges: 'ááá ááá¬áá áá¡ á¨áááá¬áááá: áá áá¤áá á á¨ááªááááá',
+ noMispell: 'ááá ááá¬áá áá¡ á¨áááá¬áááá: á¨ááªáááá áá áááá«áááá',
+ noSuggestions: '- áá áá á¨ááááááááááá -',
+ notAvailable: 'á£áááªá áááá, áá¡ á¡áá ááá¡á ááááááá ááá£á¬áááááááá.',
+ notInDic: 'áá áá ááá¥á¡ááááá¨á',
+ oneChange: 'ááá ááá¬áá áá¡ á¨áááá¬áááá: áá áá á¡áá¢á§áá á¨áááªáááá',
+ progress: 'áááááááá áááá¡ ááá ááá¬áá áá¡ á¨áááá¬áááá...',
+ title: 'ááá ááá¬áá á',
+ toolbar: 'ááá ááá¬áá á'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/km.js b/devel/third-party/ckeditor/plugins/wsc/lang/km.js
new file mode 100644
index 0000000..746adba
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/km.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'km', {
+ btnIgnore: 'áá·ááááá¶áááááá¼á',
+ btnIgnoreAll: 'áá·ááááá¶áááááá¼á áá¶ááá¢áá',
+ btnReplace: 'áááá½á',
+ btnReplaceAll: 'áááá½ááá¶ááá¢áá',
+ btnUndo: 'áá¶áá¡á¾ááá·á',
+ changeTo: 'áááá¶áááááá¼ááá
',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'áá»ááá¶ááááááá·áá¸áá·áá·áááá¢ááááá¶áá·áá»ááá á áá¾á
áááá¶ááááá¸áá¶?',
+ manyChanges: 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: %1 áá¶ááááá¶ááááá¶áááááá¼á',
+ noChanges: 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá»ááá¶ááááá¶áááááá¼á',
+ noMispell: 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áááá¶áááá á»á',
+ noSuggestions: '- áááá¶ááááá¾á -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'áááá¶ááááá»ááá
áá¶áá»áááá',
+ oneChange: 'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá¶ááááá½ááááá¼á
áá¶ááááá¶áááááá¼á',
+ progress: 'áááá»ááá·áá·áááá¢ááááá¶áá·áá»ááá...',
+ title: 'Spell Check',
+ toolbar: 'áá·áá·áááá¢ááááá¶áá·áá»ááá'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ko.js b/devel/third-party/ckeditor/plugins/wsc/lang/ko.js
new file mode 100644
index 0000000..b72e43f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ko.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ko', {
+ btnIgnore: 'ê±´ëë',
+ btnIgnoreAll: '모ë ê±´ëë',
+ btnReplace: 'ë³ê²½',
+ btnReplaceAll: '모ë ë³ê²½',
+ btnUndo: 'ì·¨ì',
+ changeTo: 'ë³ê²½í ë¨ì´',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'ì² ì ê²ì¬ê¸°ê° ì² ì¹ëì§ ìììµëë¤. ì§ê¸ ë¤ì´ë¡ëíìê² ìµëê¹?',
+ manyChanges: 'ì² ìê²ì¬ ìë£: %1 ë¨ì´ê° ë³ê²½ëììµëë¤.',
+ noChanges: 'ì² ìê²ì¬ ìë£: ë³ê²½ë ë¨ì´ê° ììµëë¤.',
+ noMispell: 'ì² ìê²ì¬ ìë£: ì못ë ì² ìê° ììµëë¤.',
+ noSuggestions: '- ì¶ì²ë¨ì´ ìì -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'ì¬ì ì ìë ë¨ì´',
+ oneChange: 'ì² ìê²ì¬ ìë£: ë¨ì´ê° ë³ê²½ëììµëë¤.',
+ progress: 'ì² ìê²ì¬ë¥¼ ì§íì¤ì
ëë¤...',
+ title: 'Spell Check',
+ toolbar: 'ì² ìê²ì¬'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ku.js b/devel/third-party/ckeditor/plugins/wsc/lang/ku.js
new file mode 100644
index 0000000..d52c737
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ku.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ku', {
+ btnIgnore: 'پشتگÙÛ Ú©Ø±Ø¯Ù',
+ btnIgnoreAll: 'پشتگÙÛکردÙÛ ÙÙÙ
ÙÙÛ',
+ btnReplace: 'ÙÙØ¨Ø±ÛداÙÙ',
+ btnReplaceAll: 'ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§ÙÛ ÙÙÙ
ÙÙÛ',
+ btnUndo: 'Ù¾ÙÙÚکردÙÙÙÙ',
+ changeTo: 'Ú¯ÛÚÛÙÛ Ø¨Û',
+ errorLoading: 'ÙÙÚµÙ ÙÙÙÛÙØ§ÙÛ Ø¯Ø§Ø®ÙØ§Ø²ÛÙØ§Ù
ÙÛ Ø®Ø§ÙÙØ®ÛÛÛ ÚØ§ÚÙ: %s.',
+ ieSpellDownload: 'پشکÙÛÙÛ ÚÛÙÙÙØ³ داÙÙÙ
زراÙÙ. Ø¯ÙØªÙÙÛØª Ø¦ÛØ³ØªØ§ Ø¯Ø§ÛØ¨Ú¯Ø±Ûت?',
+ manyChanges: 'پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÙÙØ³Ùدا %1 Û ÙØ´Ùکا٠گÛÚØ¯Ø±Ø§',
+ noChanges: 'پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÙÛÚ ÙØ´ÙÛÙÙ ÙÛÚ¯ÛÚØ¯Ø±Ø§',
+ noMispell: 'پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÙÛÚ ÙÙÚµÙÛÙÚ©Û ÚÛÙÙÙØ³ ÙÙØ¯ÛزراÙÙ',
+ noSuggestions: '- ÙÛÚ Ù¾ÛØ´ÙÛØ§Ø±ÛÙ -',
+ notAvailable: 'ببÙÙØ±ÙØ ÙÙÙ
Ú©Ø§ØªÙØ¯Ø§ ÚØ§ÚÙÚ©Ù ÙÙØ¨ÙØ±Ø¯ÙØ³ØªØ§ ÙÛÙ.',
+ notInDic: 'ÙÙÙÙØ±ÙÙÙÚ¯ داÙÛÙ',
+ oneChange: 'پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÛÙÙ ÙØ´Ù Ú¯ÛÚØ¯Ø±Ø§',
+ progress: 'پشکÙÛÙÛ ÚÛÙÙÙØ³ ÙÙØ¨ÙردÙÙØ§Ù
بÙÙ٠داÛÙ...',
+ title: 'پشکÙÛÙÛ ÚÛÙÙÙØ³',
+ toolbar: 'پشکÙÛÙÛ ÚÛÙÙÙØ³'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/lt.js b/devel/third-party/ckeditor/plugins/wsc/lang/lt.js
new file mode 100644
index 0000000..de9e04f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/lt.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'lt', {
+ btnIgnore: 'Ignoruoti',
+ btnIgnoreAll: 'Ignoruoti visus',
+ btnReplace: 'Pakeisti',
+ btnReplaceAll: 'Pakeisti visus',
+ btnUndo: 'Atšaukti',
+ changeTo: 'Pakeisti į',
+ errorLoading: 'Klaida įkraunant servisÄ
: %s.',
+ ieSpellDownload: 'Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?',
+ manyChanges: 'Rašybos tikrinimas baigtas: Pakeista %1 žodžių',
+ noChanges: 'RaÅ¡ybos tikrinimas baigtas: NÄra pakeistų žodžių',
+ noMispell: 'Rašybos tikrinimas baigtas: Nerasta rašybos klaidų',
+ noSuggestions: '- NÄra pasiÅ«lymų -',
+ notAvailable: 'Atleiskite, šiuo metu servisas neprieinamas.',
+ notInDic: 'Žodyne nerastas',
+ oneChange: 'Rašybos tikrinimas baigtas: Vienas žodis pakeistas',
+ progress: 'Vyksta rašybos tikrinimas...',
+ title: 'Tikrinti klaidas',
+ toolbar: 'Rašybos tikrinimas'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/lv.js b/devel/third-party/ckeditor/plugins/wsc/lang/lv.js
new file mode 100644
index 0000000..f6f4a81
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/lv.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'lv', {
+ btnIgnore: 'IgnorÄt',
+ btnIgnoreAll: 'IgnorÄt visu',
+ btnReplace: 'Aizvietot',
+ btnReplaceAll: 'Aizvietot visu',
+ btnUndo: 'Atcelt',
+ changeTo: 'Nomainīt uz',
+ errorLoading: 'Kļūda ielÄdÄjot aplikÄcijas servisa adresi: %s.',
+ ieSpellDownload: 'PareizrakstÄ«bas pÄrbaudÄ«tÄjs nav pievienots. Vai vÄlaties to lejupielÄdÄt tagad?',
+ manyChanges: 'PareizrakstÄ«bas pÄrbaude pabeigta: %1 vÄrdi tika mainÄ«ti',
+ noChanges: 'PareizrakstÄ«bas pÄrbaude pabeigta: nekas netika labots',
+ noMispell: 'PareizrakstÄ«bas pÄrbaude pabeigta: kļūdas netika atrastas',
+ noSuggestions: '- Nav ieteikumu -',
+ notAvailable: 'Atvainojiet, bet serviss šobrīd nav pieejams.',
+ notInDic: 'Netika atrasts vÄrdnÄ«cÄ',
+ oneChange: 'PareizrakstÄ«bas pÄrbaude pabeigta: 1 vÄrds izmainÄ«ts',
+ progress: 'Notiek pareizrakstÄ«bas pÄrbaude...',
+ title: 'PÄrbaudÄ«t gramatiku',
+ toolbar: 'PareizrakstÄ«bas pÄrbaude'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/mk.js b/devel/third-party/ckeditor/plugins/wsc/lang/mk.js
new file mode 100644
index 0000000..03feb25
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/mk.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'mk', {
+ btnIgnore: 'Ignore',
+ btnIgnoreAll: 'Ignore All',
+ btnReplace: 'Replace',
+ btnReplaceAll: 'Replace All',
+ btnUndo: 'Undo',
+ changeTo: 'Change to',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Spell checker not installed. Do you want to download it now?',
+ manyChanges: 'Spell check complete: %1 words changed',
+ noChanges: 'Spell check complete: No words changed',
+ noMispell: 'Spell check complete: No misspellings found',
+ noSuggestions: '- No suggestions -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Not in dictionary',
+ oneChange: 'Spell check complete: One word changed',
+ progress: 'Spell check in progress...',
+ title: 'Spell Check',
+ toolbar: 'Check Spelling'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/mn.js b/devel/third-party/ckeditor/plugins/wsc/lang/mn.js
new file mode 100644
index 0000000..e48b30d
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/mn.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'mn', {
+ btnIgnore: 'ÐөвÑÓ©Ó©ÑÓ©Ñ
',
+ btnIgnoreAll: 'Ðүгдийг зөвÑÓ©Ó©ÑÓ©Ñ
',
+ btnReplace: 'СолиÑ
',
+ btnReplaceAll: 'Ðүгдийг ÐаÑж биÑиÑ
',
+ btnUndo: 'ÐÑÑааÑ
',
+ changeTo: 'Ó¨Ó©ÑÑлөÑ
',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'ÐÒ¯ÑÑм ÑÐ°Ð»Ð³Ð°Ð³Ñ ÑÑÑгаагүй байна. ТаÑаж аваÑ
Ñг Ñ
Ò¯ÑÑ Ð±Ð°Ð¹Ð½Ð° ÑÑ?',
+ manyChanges: 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: %1 үг Ó©Ó©ÑÑлөгдÑөн',
+ noChanges: 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: үг Ó©Ó©ÑÑлөгдөөгүй',
+ noMispell: 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: Ðлдаа олдÑонгүй',
+ noSuggestions: '- ТайлбаÑгүй -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Ð¢Ð¾Ð»Ñ Ð±Ð¸Ñиггүй',
+ oneChange: 'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: 1 үг Ó©Ó©ÑÑлөгдÑөн',
+ progress: 'ÐÒ¯ÑÑм Ñалгаж байгаа үйл ÑвÑ...',
+ title: 'Spell Check',
+ toolbar: 'Үгийн дүÑÑÑ
ÑалгаÑ
'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ms.js b/devel/third-party/ckeditor/plugins/wsc/lang/ms.js
new file mode 100644
index 0000000..1b09c88
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ms.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ms', {
+ btnIgnore: 'Biar',
+ btnIgnoreAll: 'Biarkan semua',
+ btnReplace: 'Ganti',
+ btnReplaceAll: 'Gantikan Semua',
+ btnUndo: 'Batalkan',
+ changeTo: 'Tukarkan kepada',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?',
+ manyChanges: 'Pemeriksaan ejaan siap: %1 perkataan diubah',
+ noChanges: 'Pemeriksaan ejaan siap: Tiada perkataan diubah',
+ noMispell: 'Pemeriksaan ejaan siap: Tiada salah ejaan',
+ noSuggestions: '- Tiada cadangan -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Tidak terdapat didalam kamus',
+ oneChange: 'Pemeriksaan ejaan siap: Satu perkataan telah diubah',
+ progress: 'Pemeriksaan ejaan sedang diproses...',
+ title: 'Spell Check',
+ toolbar: 'Semak Ejaan'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/nb.js b/devel/third-party/ckeditor/plugins/wsc/lang/nb.js
new file mode 100644
index 0000000..1116399
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/nb.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'nb', {
+ btnIgnore: 'Ignorer',
+ btnIgnoreAll: 'Ignorer alle',
+ btnReplace: 'Erstatt',
+ btnReplaceAll: 'Erstatt alle',
+ btnUndo: 'Angre',
+ changeTo: 'Endre til',
+ errorLoading: 'Feil under lasting av applikasjonstjenestetjener: %s.',
+ ieSpellDownload: 'Stavekontroll er ikke installert. Vil du laste den ned nå?',
+ manyChanges: 'Stavekontroll fullført: %1 ord endret',
+ noChanges: 'Stavekontroll fullført: ingen ord endret',
+ noMispell: 'Stavekontroll fullført: ingen feilstavinger funnet',
+ noSuggestions: '- Ingen forslag -',
+ notAvailable: 'Beklager, tjenesten er utilgjenglig nå.',
+ notInDic: 'Ikke i ordboken',
+ oneChange: 'Stavekontroll fullført: Ett ord endret',
+ progress: 'Stavekontroll pågår...',
+ title: 'Stavekontroll',
+ toolbar: 'Stavekontroll'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/nl.js b/devel/third-party/ckeditor/plugins/wsc/lang/nl.js
new file mode 100644
index 0000000..8d9bdcd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/nl.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'nl', {
+ btnIgnore: 'Negeren',
+ btnIgnoreAll: 'Alles negeren',
+ btnReplace: 'Vervangen',
+ btnReplaceAll: 'Alles vervangen',
+ btnUndo: 'Ongedaan maken',
+ changeTo: 'Wijzig in',
+ errorLoading: 'Er is een fout opgetreden bij het laden van de dienst: %s.',
+ ieSpellDownload: 'De spellingscontrole is niet geïnstalleerd. Wilt u deze nu downloaden?',
+ manyChanges: 'Klaar met spellingscontrole: %1 woorden aangepast',
+ noChanges: 'Klaar met spellingscontrole: geen woorden aangepast',
+ noMispell: 'Klaar met spellingscontrole: geen fouten gevonden',
+ noSuggestions: '- Geen suggesties -',
+ notAvailable: 'Excuses, deze dienst is momenteel niet beschikbaar.',
+ notInDic: 'Niet in het woordenboek',
+ oneChange: 'Klaar met spellingscontrole: één woord aangepast',
+ progress: 'Bezig met spellingscontrole...',
+ title: 'Spellingscontrole',
+ toolbar: 'Spellingscontrole'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/no.js b/devel/third-party/ckeditor/plugins/wsc/lang/no.js
new file mode 100644
index 0000000..ee61765
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/no.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'no', {
+ btnIgnore: 'Ignorer',
+ btnIgnoreAll: 'Ignorer alle',
+ btnReplace: 'Erstatt',
+ btnReplaceAll: 'Erstatt alle',
+ btnUndo: 'Angre',
+ changeTo: 'Endre til',
+ errorLoading: 'Feil under lasting av applikasjonstjenestetjener: %s.',
+ ieSpellDownload: 'Stavekontroll er ikke installert. Vil du laste den ned nå?',
+ manyChanges: 'Stavekontroll fullført: %1 ord endret',
+ noChanges: 'Stavekontroll fullført: ingen ord endret',
+ noMispell: 'Stavekontroll fullført: ingen feilstavinger funnet',
+ noSuggestions: '- Ingen forslag -',
+ notAvailable: 'Beklager, tjenesten er utilgjenglig nå.',
+ notInDic: 'Ikke i ordboken',
+ oneChange: 'Stavekontroll fullført: Ett ord endret',
+ progress: 'Stavekontroll pågår...',
+ title: 'Stavekontroll',
+ toolbar: 'Stavekontroll'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/pl.js b/devel/third-party/ckeditor/plugins/wsc/lang/pl.js
new file mode 100644
index 0000000..3f43420
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/pl.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'pl', {
+ btnIgnore: 'Ignoruj',
+ btnIgnoreAll: 'Ignoruj wszystkie',
+ btnReplace: 'ZmieÅ',
+ btnReplaceAll: 'ZmieÅ wszystkie',
+ btnUndo: 'Cofnij',
+ changeTo: 'ZmieÅ na',
+ errorLoading: 'BÅÄ
d wczytywania hosta aplikacji usÅugi: %s.',
+ ieSpellDownload: 'SÅownik nie jest zainstalowany. Czy chcesz go pobraÄ?',
+ manyChanges: 'Sprawdzanie zakoÅczone: zmieniono %l sÅów',
+ noChanges: 'Sprawdzanie zakoÅczone: nie zmieniono żadnego sÅowa',
+ noMispell: 'Sprawdzanie zakoÅczone: nie znaleziono bÅÄdów',
+ noSuggestions: '- Brak sugestii -',
+ notAvailable: 'Przepraszamy, ale usÅuga jest obecnie niedostÄpna.',
+ notInDic: 'SÅowa nie ma w sÅowniku',
+ oneChange: 'Sprawdzanie zakoÅczone: zmieniono jedno sÅowo',
+ progress: 'Trwa sprawdzanie...',
+ title: 'Sprawdź pisowniÄ',
+ toolbar: 'Sprawdź pisowniÄ'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/pt-br.js b/devel/third-party/ckeditor/plugins/wsc/lang/pt-br.js
new file mode 100644
index 0000000..add99a7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/pt-br.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'pt-br', {
+ btnIgnore: 'Ignorar uma vez',
+ btnIgnoreAll: 'Ignorar Todas',
+ btnReplace: 'Alterar',
+ btnReplaceAll: 'Alterar Todas',
+ btnUndo: 'Desfazer',
+ changeTo: 'Alterar para',
+ errorLoading: 'Erro carregando servidor de aplicação: %s.',
+ ieSpellDownload: 'A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?',
+ manyChanges: 'Verificação ortográfica encerrada: %1 palavras foram alteradas',
+ noChanges: 'Verificação ortográfica encerrada: Não houve alterações',
+ noMispell: 'Verificação encerrada: Não foram encontrados erros de ortografia',
+ noSuggestions: '-sem sugestões de ortografia-',
+ notAvailable: 'Desculpe, o serviço não está disponÃvel no momento.',
+ notInDic: 'Não encontrada',
+ oneChange: 'Verificação ortográfica encerrada: Uma palavra foi alterada',
+ progress: 'Verificação ortográfica em andamento...',
+ title: 'Corretor Ortográfico',
+ toolbar: 'Verificar Ortografia'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/pt.js b/devel/third-party/ckeditor/plugins/wsc/lang/pt.js
new file mode 100644
index 0000000..9b77a5c
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/pt.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'pt', {
+ btnIgnore: 'Ignorar',
+ btnIgnoreAll: 'Ignorar Tudo',
+ btnReplace: 'Substituir',
+ btnReplaceAll: 'Substituir Tudo',
+ btnUndo: 'Anular',
+ changeTo: 'Mudar para',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: ' Verificação ortográfica não instalada. Quer descarregar agora?',
+ manyChanges: 'Verificação ortográfica completa: %1 palavras alteradas',
+ noChanges: 'Verificação ortográfica completa: não houve alteração de palavras',
+ noMispell: 'Verificação ortográfica completa: não foram encontrados erros',
+ noSuggestions: '- Sem sugestões -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Não está num directório',
+ oneChange: 'Verificação ortográfica completa: uma palavra alterada',
+ progress: 'Verificação ortográfica em progressoâ¦',
+ title: 'Spell Check',
+ toolbar: 'Verificação Ortográfica'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ro.js b/devel/third-party/ckeditor/plugins/wsc/lang/ro.js
new file mode 100644
index 0000000..6eff8d3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ro.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ro', {
+ btnIgnore: 'IgnorÄ',
+ btnIgnoreAll: 'IgnorÄ toate',
+ btnReplace: 'ÃnlocuieÅte',
+ btnReplaceAll: 'ÃnlocuieÅte tot',
+ btnUndo: 'Starea anterioarÄ (undo)',
+ changeTo: 'SchimbÄ Ã®n',
+ errorLoading: 'Eroare în lansarea aplicaÈiei service host %s.',
+ ieSpellDownload: 'Unealta pentru verificat textul (Spell checker) neinstalatÄ. DoriÅ£i sÄ o descÄrcaÅ£i acum?',
+ manyChanges: 'Verificarea textului terminatÄ: 1% cuvinte modificate',
+ noChanges: 'Verificarea textului terminatÄ: Niciun cuvânt modificat',
+ noMispell: 'Verificarea textului terminatÄ: Nicio greÅealÄ gÄsitÄ',
+ noSuggestions: '- FÄrÄ sugestii -',
+ notAvailable: 'ScuzaÈi, dar serviciul nu este disponibil momentan.',
+ notInDic: 'Nu e în dicţionar',
+ oneChange: 'Verificarea textului terminatÄ: Un cuvânt modificat',
+ progress: 'Verificarea textului în desfÄÅurare...',
+ title: 'Spell Check',
+ toolbar: 'VerificÄ scrierea textului'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ru.js b/devel/third-party/ckeditor/plugins/wsc/lang/ru.js
new file mode 100644
index 0000000..1ca896e
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ru.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ru', {
+ btnIgnore: 'ÐÑопÑÑÑиÑÑ',
+ btnIgnoreAll: 'ÐÑопÑÑÑиÑÑ Ð²ÑÑ',
+ btnReplace: 'ÐамениÑÑ',
+ btnReplaceAll: 'ÐамениÑÑ Ð²ÑÑ',
+ btnUndo: 'ÐÑмениÑÑ',
+ changeTo: 'ÐзмениÑÑ Ð½Ð°',
+ errorLoading: 'ÐÑоизоÑла оÑибка пÑи подклÑÑении к ÑеÑвеÑÑ Ð¿ÑовеÑки оÑÑогÑаÑии: %s.',
+ ieSpellDownload: 'ÐодÑÐ»Ñ Ð¿ÑовеÑки оÑÑогÑаÑии не ÑÑÑановлен. ХоÑиÑе ÑкаÑаÑÑ ÐµÐ³Ð¾?',
+ manyChanges: 'ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. Ðзменено Ñлов: %1',
+ noChanges: 'ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. Ðе изменено ни одного Ñлова',
+ noMispell: 'ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. ÐÑибок не найдено',
+ noSuggestions: '- ÐаÑианÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ -',
+ notAvailable: 'ÐзвиниÑе, но в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑеÑÐ²Ð¸Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен.',
+ notInDic: 'ÐÑÑÑÑÑÑвÑÐµÑ Ð² ÑловаÑе',
+ oneChange: 'ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. Ðзменено одно Ñлово',
+ progress: 'ÐÑÑогÑаÑÐ¸Ñ Ð¿ÑовеÑÑеÑÑÑ...',
+ title: 'ÐÑовеÑка оÑÑогÑаÑии',
+ toolbar: 'ÐÑовеÑиÑÑ Ð¾ÑÑогÑаÑиÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/sk.js b/devel/third-party/ckeditor/plugins/wsc/lang/sk.js
new file mode 100644
index 0000000..b8de2fd
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/sk.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'sk', {
+ btnIgnore: 'Ignorovať',
+ btnIgnoreAll: 'Ignorovať všetko',
+ btnReplace: 'PrepÃsat',
+ btnReplaceAll: 'PrepÃsat vÅ¡etko',
+ btnUndo: 'Späť',
+ changeTo: 'Zmeniť na',
+ errorLoading: 'Chyba pri naÄÃtanà slovnÃka z adresy: %s.',
+ ieSpellDownload: 'Kontrola pravopisu nie je naištalovaná. Chcete ju teraz stiahnuť?',
+ manyChanges: 'Kontrola pravopisu dokonÄená: Bolo zmenených %1 slov',
+ noChanges: 'Kontrola pravopisu dokonÄená: Neboli zmenené žiadne slová',
+ noMispell: 'Kontrola pravopisu dokonÄená: Neboli nájdené žiadne chyby pravopisu',
+ noSuggestions: '- Žiadny návrh -',
+ notAvailable: 'PrepáÄte, ale služba je momentálne nedostupná.',
+ notInDic: 'Nie je v slovnÃku',
+ oneChange: 'Kontrola pravopisu dokonÄená: Bolo zmenené jedno slovo',
+ progress: 'Prebieha kontrola pravopisu...',
+ title: 'Skontrolovať pravopis',
+ toolbar: 'Kontrola pravopisu'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/sl.js b/devel/third-party/ckeditor/plugins/wsc/lang/sl.js
new file mode 100644
index 0000000..75d90ee
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/sl.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'sl', {
+ btnIgnore: 'Prezri',
+ btnIgnoreAll: 'Prezri vse',
+ btnReplace: 'Zamenjaj',
+ btnReplaceAll: 'Zamenjaj vse',
+ btnUndo: 'Razveljavi',
+ changeTo: 'Spremeni v',
+ errorLoading: 'Napaka pri nalaganju storitve programa na naslovu %s.',
+ ieSpellDownload: 'Ärkovalnik ni nameÅ¡Äen. Ali ga želite prenesti sedaj?',
+ manyChanges: 'Ärkovanje je konÄano: Spremenjenih je bilo %1 besed',
+ noChanges: 'Ärkovanje je konÄano: Nobena beseda ni bila spremenjena',
+ noMispell: 'Ärkovanje je konÄano: Brez napak',
+ noSuggestions: '- Ni predlogov -',
+ notAvailable: 'Oprostite, storitev trenutno ni dosegljiva.',
+ notInDic: 'Ni v slovarju',
+ oneChange: 'Ärkovanje je konÄano: Spremenjena je bila ena beseda',
+ progress: 'Preverjanje Ärkovanja se izvaja...',
+ title: 'Ärkovalnik',
+ toolbar: 'Preveri Ärkovanje'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/sr-latn.js b/devel/third-party/ckeditor/plugins/wsc/lang/sr-latn.js
new file mode 100644
index 0000000..9ec089f
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/sr-latn.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'sr-latn', {
+ btnIgnore: 'Ignoriši',
+ btnIgnoreAll: 'Ignoriši sve',
+ btnReplace: 'Zameni',
+ btnReplaceAll: 'Zameni sve',
+ btnUndo: 'Vrati akciju',
+ changeTo: 'Izmeni',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?',
+ manyChanges: 'Provera spelovanja zavrÅ¡ena: %1 reÄ(i) je izmenjeno',
+ noChanges: 'Provera spelovanja završena: Nije izmenjena nijedna rec',
+ noMispell: 'Provera spelovanja završena: greške nisu pronadene',
+ noSuggestions: '- Bez sugestija -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'Nije u reÄniku',
+ oneChange: 'Provera spelovanja zavrÅ¡ena: Izmenjena je jedna reÄ',
+ progress: 'Provera spelovanja u toku...',
+ title: 'Spell Check',
+ toolbar: 'Proveri spelovanje'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/sr.js b/devel/third-party/ckeditor/plugins/wsc/lang/sr.js
new file mode 100644
index 0000000..36e7e17
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/sr.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'sr', {
+ btnIgnore: 'ÐгноÑиÑи',
+ btnIgnoreAll: 'ÐгноÑиÑи Ñве',
+ btnReplace: 'Ðамени',
+ btnReplaceAll: 'Ðамени Ñве',
+ btnUndo: 'ÐÑаÑи акÑиÑÑ',
+ changeTo: 'Ðзмени',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'ÐÑовеÑа ÑпеловаÑа ниÑе инÑÑалиÑана. Ðа ли желиÑе да Ñе ÑкинеÑе Ñа ÐнÑеÑнеÑа?',
+ manyChanges: 'ÐÑовеÑа ÑпеловаÑа завÑÑена: %1 ÑеÑ(и) Ñе измеÑено',
+ noChanges: 'ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐиÑе измеÑена ниÑедна ÑеÑ',
+ noMispell: 'ÐÑовеÑа ÑпеловаÑа завÑÑена: гÑеÑке ниÑÑ Ð¿ÑонаÑене',
+ noSuggestions: '- Ðез ÑÑгеÑÑиÑа -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'ÐиÑе Ñ ÑеÑникÑ',
+ oneChange: 'ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐзмеÑена Ñе Ñедна ÑеÑ',
+ progress: 'ÐÑовеÑа ÑпеловаÑа Ñ ÑокÑ...',
+ title: 'Spell Check',
+ toolbar: 'ÐÑовеÑи ÑпеловаÑе'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/sv.js b/devel/third-party/ckeditor/plugins/wsc/lang/sv.js
new file mode 100644
index 0000000..0370829
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/sv.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'sv', {
+ btnIgnore: 'Ignorera',
+ btnIgnoreAll: 'Ignorera alla',
+ btnReplace: 'Ersätt',
+ btnReplaceAll: 'Ersätt alla',
+ btnUndo: 'Ã
ngra',
+ changeTo: 'Ãndra till',
+ errorLoading: 'Tjänsten är ej tillgänglig: %s.',
+ ieSpellDownload: 'Stavningskontrollen är ej installerad. Vill du göra det nu?',
+ manyChanges: 'Stavningskontroll slutförd: %1 ord rättades.',
+ noChanges: 'Stavningskontroll slutförd: Inga ord rättades.',
+ noMispell: 'Stavningskontroll slutförd: Inga stavfel påträffades.',
+ noSuggestions: '- Förslag saknas -',
+ notAvailable: 'Tyvärr är tjänsten ej tillgänglig nu',
+ notInDic: 'Saknas i ordlistan',
+ oneChange: 'Stavningskontroll slutförd: Ett ord rättades.',
+ progress: 'Stavningskontroll pågår...',
+ title: 'Kontrollera stavning',
+ toolbar: 'Stavningskontroll'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/th.js b/devel/third-party/ckeditor/plugins/wsc/lang/th.js
new file mode 100644
index 0000000..f98db58
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/th.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'th', {
+ btnIgnore: 'ยà¸à¹à¸§à¹à¸',
+ btnIgnoreAll: 'ยà¸à¹à¸§à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸',
+ btnReplace: 'à¹à¸à¸à¸à¸µà¹',
+ btnReplaceAll: 'à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸',
+ btnUndo: 'ยà¸à¹à¸¥à¸´à¸',
+ changeTo: 'à¹à¸à¹à¹à¸à¹à¸à¹à¸',
+ errorLoading: 'Error loading application service host: %s.',
+ ieSpellDownload: 'à¹à¸¡à¹à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸°à¸à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸. à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸«à¸¡à¸à¸£à¸±à¸?',
+ manyChanges: 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸:: à¹à¸à¹à¹à¸ %1 à¸à¸³',
+ noChanges: 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¹à¸à¸³à¹à¸à¹',
+ noMispell: 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸à¸à¸à¸³à¸ªà¸°à¸à¸à¸à¸´à¸',
+ noSuggestions: '- à¹à¸¡à¹à¸¡à¸µà¸à¸³à¹à¸à¸°à¸à¸³à¹à¸à¹ -',
+ notAvailable: 'Sorry, but service is unavailable now.',
+ notInDic: 'à¹à¸¡à¹à¸à¸à¹à¸à¸à¸´à¸à¸à¸±à¸à¸à¸²à¸£à¸µ',
+ oneChange: 'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸à¹à¹à¸1à¸à¸³',
+ progress: 'à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸...',
+ title: 'Spell Check',
+ toolbar: 'à¸à¸£à¸§à¸à¸à¸²à¸£à¸ªà¸°à¸à¸à¸à¸³'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/tr.js b/devel/third-party/ckeditor/plugins/wsc/lang/tr.js
new file mode 100644
index 0000000..73dd31b
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/tr.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'tr', {
+ btnIgnore: 'Yoksay',
+ btnIgnoreAll: 'Tümünü Yoksay',
+ btnReplace: 'DeÄiÅtir',
+ btnReplaceAll: 'Tümünü DeÄiÅtir',
+ btnUndo: 'Geri Al',
+ changeTo: 'Åuna deÄiÅtir:',
+ errorLoading: 'Uygulamada yüklerken hata oluÅtu: %s.',
+ ieSpellDownload: 'Yazım denetimi yüklenmemiÅ. Åimdi yüklemek ister misiniz?',
+ manyChanges: 'Yazım denetimi tamamlandı: %1 kelime deÄiÅtirildi',
+ noChanges: 'Yazım denetimi tamamlandı: Hiçbir kelime deÄiÅtirilmedi',
+ noMispell: 'Yazım denetimi tamamlandı: YanlıŠyazıma rastlanmadı',
+ noSuggestions: '- Ãneri Yok -',
+ notAvailable: 'Ãzügünüz, bu servis Åuanda hizmet dıÅıdır.',
+ notInDic: 'Sözlükte Yok',
+ oneChange: 'Yazım denetimi tamamlandı: Bir kelime deÄiÅtirildi',
+ progress: 'Yazım denetimi iÅlemde...',
+ title: 'Yazımı Denetle',
+ toolbar: 'Yazım Denetimi'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/ug.js b/devel/third-party/ckeditor/plugins/wsc/lang/ug.js
new file mode 100644
index 0000000..1512bd7
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/ug.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'ug', {
+ btnIgnore: 'Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ btnIgnoreAll: 'Ú¾ÛÙ
Ù
ÙÚ¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا',
+ btnReplace: 'ئاÙÙ
Ø§Ø´ØªÛØ±',
+ btnReplaceAll: 'Ú¾ÛÙ
Ù
ÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±',
+ btnUndo: 'ÙÛÙÙÛØ§Ù',
+ changeTo: 'Ø¦ÛØ²Ú¯Ûرت',
+ errorLoading: 'ÙØ§Ø²ÙÙ
ÙÙÙ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ ÙÛÙÙÙÚ¯ÛÙØ¯Û خاتاÙÙÙ ÙÛØ±ÛÙØ¯Ù: %s.',
+ ieSpellDownload: 'ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ ÙÙØ³ØªÛرÙ
ÙØ³Ù ØªÛØ®Ù Ø¦ÙØ±ÙÙØªÙÙÙ
ÙØºØ§ÙØ Ú¾Ø§Ø²ÙØ±Ùا ÚÛØ´ÛرÛÙ
Ø³ÙØ²Ø',
+ manyChanges: 'ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: %1 Ø³ÛØ²ÙÙ Ø¦ÛØ²Ú¯ÛرتتÙ',
+ noChanges: 'ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: Ú¾ÛÚÙØ§ÙØ¯Ø§Ù Ø³ÛØ²ÙÙ Ø¦ÛØ²Ú¯ÛرتÙ
ÙØ¯Ù',
+ noMispell: 'ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: ئÙÙ
ÙØ§ خاتاÙÙÙ٠باÙÙØ§ÙÙ
ÙØ¯Ù',
+ noSuggestions: '-تÛÙÙÙÙ¾ ÙÙÙ-',
+ notAvailable: 'ÙÛÚÛØ±ÛÚØ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ ÛØ§ÙتÙÙÚÛ Ø¦ÙØ´ÙÛØªÙÙÙ٠بÙÙÙ
Ø§ÙØ¯Û',
+ notInDic: 'ÙÛØºÛØªØªÛ ÙÙÙ',
+ oneChange: 'ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: Ø¨ÙØ± Ø³ÛØ²ÙÙ Ø¦ÛØ²Ú¯ÛرتتÙ',
+ progress: 'ئÙÙ
ÙØ§ تÛÙØ´ÛرÛÛØ§ØªÙدÛâ¦',
+ title: 'ئÙÙ
ÙØ§ تÛÙØ´Ûر',
+ toolbar: 'ئÙÙ
ÙØ§ تÛÙØ´Ûر'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/uk.js b/devel/third-party/ckeditor/plugins/wsc/lang/uk.js
new file mode 100644
index 0000000..c11fba3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/uk.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'uk', {
+ btnIgnore: 'ÐÑопÑÑÑиÑи',
+ btnIgnoreAll: 'ÐÑопÑÑÑиÑи вÑе',
+ btnReplace: 'ÐамÑниÑи',
+ btnReplaceAll: 'ÐамÑниÑи вÑе',
+ btnUndo: 'Ðазад',
+ changeTo: 'ÐамÑниÑи на',
+ errorLoading: 'Ðомилка заванÑÐ°Ð¶ÐµÐ½Ð½Ñ : %s.',
+ ieSpellDownload: 'ÐодÑÐ»Ñ Ð¿ÐµÑевÑÑки оÑÑогÑаÑÑÑ Ð½Ðµ вÑÑановлено. ÐажаÑÑе заванÑажиÑи його заÑаз?',
+ manyChanges: 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: 1% ÑлÑв(ова) змÑнено',
+ noChanges: 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: жодне Ñлово не змÑнено',
+ noMispell: 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: помилок не знайдено',
+ noSuggestions: '- Ð½ÐµÐ¼Ð°Ñ Ð²Ð°ÑÑанÑÑв -',
+ notAvailable: 'ÐибаÑÑе, але ÑеÑвÑÑ Ð½Ð°ÑÐ°Ð·Ñ Ð½ÐµÐ´Ð¾ÑÑÑпний.',
+ notInDic: 'ÐÐµÐ¼Ð°Ñ Ð² ÑловникÑ',
+ oneChange: 'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: змÑнено одне Ñлово',
+ progress: 'ÐиконÑÑÑÑÑÑ Ð¿ÐµÑевÑÑка оÑÑогÑаÑÑÑ...',
+ title: 'ÐеÑевÑÑка оÑÑогÑаÑÑÑ',
+ toolbar: 'ÐеÑевÑÑиÑи оÑÑогÑаÑÑÑ'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/vi.js b/devel/third-party/ckeditor/plugins/wsc/lang/vi.js
new file mode 100644
index 0000000..e02e4c1
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/vi.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'vi', {
+ btnIgnore: 'Bá» qua',
+ btnIgnoreAll: 'BỠqua tất cả',
+ btnReplace: 'Thay thế',
+ btnReplaceAll: 'Thay thế tất cả',
+ btnUndo: 'Phục há»i lại',
+ changeTo: 'Chuyá»n thà nh',
+ errorLoading: 'Lá»i khi Äang nạp dá»ch vụ ứng dụng: %s.',
+ ieSpellDownload: 'Chức nÄng kiá»m tra chÃnh tả chưa ÄÆ°á»£c cà i Äặt. Bạn có muá»n tải vá» ngay bây giá»?',
+ manyChanges: 'Hoà n tất kiá»m tra chÃnh tả: %1 từ Äã ÄÆ°á»£c thay Äá»i',
+ noChanges: 'Hoà n tất kiá»m tra chÃnh tả: Không có từ nà o ÄÆ°á»£c thay Äá»i',
+ noMispell: 'Hoà n tất kiá»m tra chÃnh tả: Không có lá»i chÃnh tả',
+ noSuggestions: '- Không ÄÆ°a ra gợi ý vá» từ -',
+ notAvailable: 'Xin lá»i, dá»ch vụ nà y hiá»n tại không có.',
+ notInDic: 'Không có trong từ Äiá»n',
+ oneChange: 'Hoà n tất kiá»m tra chÃnh tả: Má»t từ Äã ÄÆ°á»£c thay Äá»i',
+ progress: 'Äang tiến hà nh kiá»m tra chÃnh tả...',
+ title: 'Kiá»m tra chÃnh tả',
+ toolbar: 'Kiá»m tra chÃnh tả'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/zh-cn.js b/devel/third-party/ckeditor/plugins/wsc/lang/zh-cn.js
new file mode 100644
index 0000000..13e12cb
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/zh-cn.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'zh-cn', {
+ btnIgnore: '忽ç¥',
+ btnIgnoreAll: 'å
¨é¨å¿½ç¥',
+ btnReplace: 'æ¿æ¢',
+ btnReplaceAll: 'å
¨é¨æ¿æ¢',
+ btnUndo: 'æ¤æ¶',
+ changeTo: 'æ´æ¹ä¸º',
+ errorLoading: 'å è½½åºè¯¥æå¡ä¸»æºæ¶åºé: %s.',
+ ieSpellDownload: 'æ¼åæ£æ¥æä»¶è¿æ²¡å®è£
, æ¨æ¯å¦æ³ç°å¨å°±ä¸è½½?',
+ manyChanges: 'æ¼åæ£æ¥å®æ: æ´æ¹äº %1 个åè¯',
+ noChanges: 'æ¼åæ£æ¥å®æ: æ²¡ææ´æ¹ä»»ä½åè¯',
+ noMispell: 'æ¼åæ£æ¥å®æ: 没æåç°æ¼åé误',
+ noSuggestions: '- 没æå»ºè®® -',
+ notAvailable: 'æ±æ, æå¡ç®åæä¸å¯ç¨',
+ notInDic: '没æå¨åå
¸é',
+ oneChange: 'æ¼åæ£æ¥å®æ: æ´æ¹äºä¸ä¸ªåè¯',
+ progress: 'æ£å¨è¿è¡æ¼åæ£æ¥...',
+ title: 'æ¼åæ£æ¥',
+ toolbar: 'æ¼åæ£æ¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/lang/zh.js b/devel/third-party/ckeditor/plugins/wsc/lang/zh.js
new file mode 100644
index 0000000..58c63c3
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wsc/lang/zh.js
@@ -0,0 +1,24 @@
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang( 'wsc', 'zh', {
+ btnIgnore: '忽ç¥',
+ btnIgnoreAll: 'å
¨é¨å¿½ç¥',
+ btnReplace: 'å代',
+ btnReplaceAll: 'å
¨é¨å代',
+ btnUndo: '復å',
+ changeTo: 'æ´æ¹çº',
+ errorLoading: 'ç¡æ³è¯ç³»ä¾æå¨: %s.',
+ ieSpellDownload: 'å°æªå®è£æ¼å檢æ¥å
ä»¶ãæ¨æ¯å¦æ³è¦ç¾å¨ä¸è¼ï¼',
+ manyChanges: 'æ¼å檢æ¥å®æï¼æ´æ¹äº %1 åå®å',
+ noChanges: 'æ¼å檢æ¥å®æï¼æªæ´æ¹ä»»ä½å®å',
+ noMispell: 'æ¼å檢æ¥å®æï¼æªç¼ç¾æ¼åé¯èª¤',
+ noSuggestions: '- ç¡å»ºè°å¼ -',
+ notAvailable: 'æ±æï¼æåç®åæ«ä¸å¯ç¨',
+ notInDic: 'ä¸å¨åå
¸ä¸',
+ oneChange: 'æ¼å檢æ¥å®æï¼æ´æ¹äº 1 åå®å',
+ progress: 'é²è¡æ¼å檢æ¥ä¸â¦',
+ title: 'æ¼å檢æ¥',
+ toolbar: 'æ¼å檢æ¥'
+});
diff --git a/devel/third-party/ckeditor/plugins/wsc/plugin.js b/devel/third-party/ckeditor/plugins/wsc/plugin.js
index 3edb26d..6cd4d74 100644
--- a/devel/third-party/ckeditor/plugins/wsc/plugin.js
+++ b/devel/third-party/ckeditor/plugins/wsc/plugin.js
@@ -1,33 +1,35 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
- * @file Spell checker
+ * @fileOverview Spell checker.
*/
// Register a plugin named "wsc".
-CKEDITOR.plugins.add( 'wsc',
-{
- requires : [ 'dialog' ],
- init : function( editor )
- {
+CKEDITOR.plugins.add( 'wsc', {
+ requires: 'dialog',
+ lang: 'af,ar,bg,bn,bs,ca,cs,cy,da,de,el,en-au,en-ca,en-gb,en,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,ka,km,ko,lt,lv,mk,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,ug,uk,vi,zh-cn,zh', // %REMOVE_LINE_CORE%
+ icons: 'spellchecker', // %REMOVE_LINE_CORE%
+ init: function( editor ) {
var commandName = 'checkspell';
var command = editor.addCommand( commandName, new CKEDITOR.dialogCommand( commandName ) );
// SpellChecker doesn't work in Opera and with custom domain
- command.modes = { wysiwyg : ( !CKEDITOR.env.opera && document.domain == window.location.hostname ) };
+ command.modes = { wysiwyg: ( !CKEDITOR.env.opera && !CKEDITOR.env.air && document.domain == window.location.hostname ) };
- editor.ui.addButton( 'SpellChecker',
- {
- label : editor.lang.spellCheck.toolbar,
- command : commandName
+ if(typeof editor.plugins.scayt == 'undefined'){
+ editor.ui.addButton && editor.ui.addButton( 'SpellChecker', {
+ label: editor.lang.wsc.toolbar,
+ command: commandName,
+ toolbar: 'spellchecker,10'
});
+ }
CKEDITOR.dialog.add( commandName, this.path + 'dialogs/wsc.js' );
}
});
-CKEDITOR.config.wsc_customerId = CKEDITOR.config.wsc_customerId || '1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk' ;
-CKEDITOR.config.wsc_customLoaderScript = CKEDITOR.config.wsc_customLoaderScript || null;
+CKEDITOR.config.wsc_customerId = CKEDITOR.config.wsc_customerId || '1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk';
+CKEDITOR.config.wsc_customLoaderScript = CKEDITOR.config.wsc_customLoaderScript || null;
diff --git a/devel/third-party/ckeditor/plugins/wysiwygarea/plugin.js b/devel/third-party/ckeditor/plugins/wysiwygarea/plugin.js
index e626aad..c1d3320 100644
--- a/devel/third-party/ckeditor/plugins/wysiwygarea/plugin.js
+++ b/devel/third-party/ckeditor/plugins/wysiwygarea/plugin.js
@@ -1,1084 +1,620 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
/**
* @fileOverview The "wysiwygarea" plugin. It registers the "wysiwyg" editing
* mode, which handles the main editing area space.
*/
-(function()
-{
- // List of elements in which has no way to move editing focus outside.
- var nonExitableElementNames = { table:1,pre:1 };
+(function() {
+ CKEDITOR.plugins.add( 'wysiwygarea', {
+ init: function( editor ) {
+ editor.addMode( 'wysiwyg', function( callback ) {
+ var iframe = CKEDITOR.document.createElement( 'iframe' );
+ iframe.setStyles({ width: '100%', height: '100%' } );
+ iframe.addClass( 'cke_wysiwyg_frame cke_reset' );
+
+ var contentSpace = editor.ui.space( 'contents' );
+ contentSpace.append( iframe );
+
+ var src = 'document.open();' +
+ // The document domain must be set any time we
+ // call document.open().
+ ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
+ 'document.close();';
+
+ // With IE, the custom domain has to be taken care at first,
+ // for other browers, the 'src' attribute should be left empty to
+ // trigger iframe's 'load' event.
+ src = CKEDITOR.env.air ? 'javascript:void(0)' : CKEDITOR.env.ie ? 'javascript:void(function(){' + encodeURIComponent( src ) + '}())'
+ :
+ '';
+
+ // Asynchronous iframe loading is only required in IE>8 and Gecko (other reasons probably).
+ // Do not use it on WebKit as it'll break the browser-back navigation.
+ var useOnloadEvent = CKEDITOR.env.ie || CKEDITOR.env.gecko;
+ if ( useOnloadEvent )
+ iframe.on( 'load', onLoad );
+
+ var frameLabel = [ editor.lang.editor, editor.name ].join( ',' ),
+ frameDesc = editor.lang.common.editorHelp;
+
+ if ( CKEDITOR.env.ie )
+ frameLabel += ', ' + frameDesc;
+
+ var labelId = CKEDITOR.tools.getNextId(),
+ desc = CKEDITOR.dom.element.createFromHtml( '<span id="' + labelId + '" class="cke_voice_label">' + frameDesc + '</span>' );
+
+ contentSpace.append( desc, 1 );
+
+ // Remove the ARIA description.
+ editor.on( 'beforeModeUnload', function( evt ) {
+ evt.removeListener();
+ desc.remove();
+ });
- // Matching an empty paragraph at the end of document.
- var emptyParagraphRegexp = /\s*<(p|div|address|h\d|center)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\1>)?(?=\s*$|<\/body>)/gi;
+ iframe.setAttributes({
+ frameBorder: 0,
+ 'aria-describedby' : labelId,
+ title: frameLabel,
+ src: src,
+ tabIndex: editor.tabIndex,
+ allowTransparency: 'true'
+ });
- var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true );
+ // Execute onLoad manually for all non IE||Gecko browsers.
+ !useOnloadEvent && onLoad();
- function checkReadOnly( selection )
- {
- if ( selection.getType() == CKEDITOR.SELECTION_ELEMENT )
- return selection.getSelectedElement().isReadOnly();
- else
- return selection.getCommonAncestor().isReadOnly();
- }
+ if ( CKEDITOR.env.webkit ) {
+ // Webkit: iframe size doesn't auto fit well. (#7360)
+ var onResize = function() {
+ // Hide the iframe to get real size of the holder. (#8941)
+ contentSpace.setStyle( 'width', '100%' );
- function onInsertHtml( evt )
- {
- if ( this.mode == 'wysiwyg' )
- {
- this.focus();
-
- var selection = this.getSelection();
- if ( checkReadOnly( selection ) )
- return;
-
- var data = evt.data;
- this.fire( 'saveSnapshot' );
-
- if ( this.dataProcessor )
- data = this.dataProcessor.toHtml( data );
-
- if ( CKEDITOR.env.ie )
- {
- var selIsLocked = selection.isLocked;
-
- if ( selIsLocked )
- selection.unlock();
-
- var $sel = selection.getNative();
-
- // Delete control selections to avoid IE bugs on pasteHTML.
- if ( $sel.type == 'Control' )
- $sel.clear();
- else if ( selection.getType() == CKEDITOR.SELECTION_TEXT )
- {
- // Due to IE bugs on handling contenteditable=false blocks
- // (#6005), we need to make some checks and eventually
- // delete the selection first.
-
- var range = selection.getRanges()[0],
- endContainer = range && range.endContainer;
-
- if ( endContainer &&
- endContainer.type == CKEDITOR.NODE_ELEMENT &&
- endContainer.getAttribute( 'contenteditable' ) == 'false' &&
- range.checkBoundaryOfElement( endContainer, CKEDITOR.END ) )
- {
- range.setEndAfter( range.endContainer );
- range.deleteContents();
- }
- }
-
- try
- {
- $sel.createRange().pasteHTML( data );
- }
- catch (e) {}
-
- if ( selIsLocked )
- this.getSelection().lock();
- }
- else
- this.document.$.execCommand( 'inserthtml', false, data );
-
- // Webkit does not scroll to the cursor position after pasting (#5558)
- if ( CKEDITOR.env.webkit )
- {
- this.document.$.execCommand( 'inserthtml', false, '<span id="cke_paste_marker" cke_temp="1"></span>' );
- var marker = this.document.getById( 'cke_paste_marker' );
- marker.scrollIntoView();
- marker.remove();
- }
+ iframe.hide();
+ iframe.setSize( 'width', contentSpace.getSize( 'width' ) );
+ contentSpace.removeStyle( 'width' );
+ iframe.show();
+ };
- CKEDITOR.tools.setTimeout( function()
- {
- this.fire( 'saveSnapshot' );
- }, 0, this );
- }
- }
+ iframe.setCustomData( 'onResize', onResize );
- function onInsertElement( evt )
- {
- if ( this.mode == 'wysiwyg' )
- {
- this.focus();
-
- var selection = this.getSelection();
- if ( checkReadOnly( selection ) )
- return;
-
- this.fire( 'saveSnapshot' );
-
- var ranges = selection.getRanges(),
- element = evt.data,
- elementName = element.getName(),
- isBlock = CKEDITOR.dtd.$block[ elementName ];
-
- var selIsLocked = selection.isLocked;
-
- if ( selIsLocked )
- selection.unlock();
-
- var range, clone, lastElement, bookmark;
-
- for ( var i = ranges.length - 1 ; i >= 0 ; i-- )
- {
- range = ranges[ i ];
-
- // Remove the original contents.
- range.deleteContents();
-
- clone = !i && element || element.clone( true );
-
- // If we're inserting a block at dtd-violated position, split
- // the parent blocks until we reach blockLimit.
- var current, dtd;
- if ( isBlock )
- {
- while ( ( current = range.getCommonAncestor( false, true ) )
- && ( dtd = CKEDITOR.dtd[ current.getName() ] )
- && !( dtd && dtd [ elementName ] ) )
- {
- // Split up inline elements.
- if ( current.getName() in CKEDITOR.dtd.span )
- range.splitElement( current );
- // If we're in an empty block which indicate a new paragraph,
- // simply replace it with the inserting block.(#3664)
- else if ( range.checkStartOfBlock()
- && range.checkEndOfBlock() )
- {
- range.setStartBefore( current );
- range.collapse( true );
- current.remove();
- }
- else
- range.splitBlock();
- }
+ CKEDITOR.document.getWindow().on( 'resize', onResize );
}
- // Insert the new node.
- range.insertNode( clone );
+ editor.fire( 'ariaWidget', iframe );
- // Save the last element reference so we can make the
- // selection later.
- if ( !lastElement )
- lastElement = clone;
- }
-
- range.moveToPosition( lastElement, CKEDITOR.POSITION_AFTER_END );
-
- // If we're inserting a block element immediatelly followed by
- // another block element, the selection must move there. (#3100,#5436)
- if ( isBlock )
- {
- var next = lastElement.getNext( notWhitespaceEval ),
- nextName = next && next.type == CKEDITOR.NODE_ELEMENT && next.getName();
+ function onLoad( evt ) {
+ evt && evt.removeListener();
+ editor.editable( new framedWysiwyg( editor, iframe.$.contentWindow.document.body ) );
+ editor.setData( editor.getData( 1 ), callback );
+ }
+ });
+ }
+ });
- // Check if it's a block element that accepts text.
- if ( nextName && CKEDITOR.dtd.$block[ nextName ] && CKEDITOR.dtd[ nextName ]['#'] )
- range.moveToElementEditStart( next );
+ // Support for custom document.domain in IE.
+ var isCustomDomain = CKEDITOR.env.isCustomDomain();
+
+ function onDomReady( win ) {
+ var editor = this.editor,
+ doc = win.document,
+ body = doc.body;
+
+ // Remove helper scripts from the DOM.
+ var script = doc.getElementById( 'cke_actscrpt' );
+ script && script.parentNode.removeChild( script );
+ script = doc.getElementById( 'cke_shimscrpt' );
+ script && script.parentNode.removeChild( script );
+
+ if ( CKEDITOR.env.gecko ) {
+ // Force Gecko to change contentEditable from false to true on domReady
+ // (because it's previously set to true on iframe's body creation).
+ // Otherwise del/backspace and some other editable features will be broken in Fx <4
+ // See: #107 and https://bugzilla.mozilla.org/show_bug.cgi?id=440916
+ body.contentEditable = false;
+
+ // Remove any leading <br> which is between the <body> and the comment.
+ // This one fixes Firefox 3.6 bug: the browser inserts a leading <br>
+ // on document.write if the body has contenteditable="true".
+ if ( CKEDITOR.env.version < 20000 ) {
+ body.innerHTML = body.innerHTML.replace( /^.*<!-- cke-content-start -->/, '' );
+
+ // The above hack messes up the selection in FF36.
+ // To clean this up, manually select collapsed range that
+ // starts within the body.
+ setTimeout( function() {
+ var range = new CKEDITOR.dom.range( new CKEDITOR.dom.document( doc ) );
+ range.setStart( new CKEDITOR.dom.node( body ), 0 );
+ editor.getSelection().selectRanges( [ range ] );
+ }, 0 );
}
+ }
- selection.selectRanges( [ range ] );
+ body.contentEditable = true;
- if ( selIsLocked )
- this.getSelection().lock();
+ if ( CKEDITOR.env.ie ) {
+ // Don't display the focus border.
+ body.hideFocus = true;
- // Save snaps after the whole execution completed.
- // This's a workaround for make DOM modification's happened after
- // 'insertElement' to be included either, e.g. Form-based dialogs' 'commitContents'
- // call.
- CKEDITOR.tools.setTimeout( function(){
- this.fire( 'saveSnapshot' );
- }, 0, this );
+ // Disable and re-enable the body to avoid IE from
+ // taking the editing focus at startup. (#141 / #523)
+ body.disabled = true;
+ body.removeAttribute( 'disabled' );
}
- }
- // DOM modification here should not bother dirty flag.(#4385)
- function restoreDirty( editor )
- {
- if ( !editor.checkDirty() )
- setTimeout( function(){ editor.resetDirty(); }, 0 );
- }
+ delete this._.isLoadingData;
- var isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true ),
- isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true );
+ // Play the magic to alter element reference to the reloaded one.
+ this.$ = body;
- function isNotEmpty( node )
- {
- return isNotWhitespace( node ) && isNotBookmark( node );
- }
+ doc = new CKEDITOR.dom.document( doc );
- function isNbsp( node )
- {
- return node.type == CKEDITOR.NODE_TEXT
- && CKEDITOR.tools.trim( node.getText() ).match( /^(?: |\xa0)$/ );
- }
+ this.setup();
- function restoreSelection( selection )
- {
- if ( selection.isLocked )
- {
- selection.unlock();
- setTimeout( function() { selection.lock(); }, 0 );
- }
- }
+ if ( CKEDITOR.env.ie ) {
+ doc.getDocumentElement().addClass( doc.$.compatMode );
- function isBlankParagraph( block )
- {
- return block.getOuterHtml().match( emptyParagraphRegexp );
- }
+ // Prevent IE from leaving new paragraph after deleting all contents in body. (#6966)
+ editor.config.enterMode != CKEDITOR.ENTER_P && doc.on( 'selectionchange', function() {
+ var body = doc.getBody(),
+ sel = editor.getSelection(),
+ range = sel && sel.getRanges()[ 0 ];
- isNotWhitespace = CKEDITOR.dom.walker.whitespaces( true );
+ if ( range && body.getHtml().match( /^<p> <\/p>$/i ) && range.startContainer.equals( body ) ) {
+ // Avoid the ambiguity from a real user cursor position.
+ setTimeout( function() {
+ range = editor.getSelection().getRanges()[ 0 ];
+ if ( !range.startContainer.equals( 'body' ) ) {
+ body.getFirst().remove( 1 );
+ range.moveToElementEditEnd( body );
+ range.select();
+ }
+ }, 0 );
+ }
+ });
+ }
- // Gecko need a key event to 'wake up' the editing
- // ability when document is empty.(#3864, #5781)
- function activateEditing( editor )
- {
- var win = editor.window,
- doc = editor.document,
- body = editor.document.getBody(),
- bodyChildsNum = body.getChildren().count();
+ // Gecko needs a key event to 'wake up' editing when the document is
+ // empty. (#3864, #5781)
+ CKEDITOR.env.gecko && CKEDITOR.tools.setTimeout( activateEditing, 0, this, editor );
+
+ // ## START : disableNativeTableHandles and disableObjectResizing settings.
+
+ // Enable dragging of position:absolute elements in IE.
+ try {
+ editor.document.$.execCommand( '2D-position', false, true );
+ } catch ( e ) {}
+
+ // IE, Opera and Safari may not support it and throw errors.
+ try {
+ editor.document.$.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles );
+ } catch ( e ) {}
+
+ if ( editor.config.disableObjectResizing ) {
+ try {
+ this.getDocument().$.execCommand( 'enableObjectResizing', false, false );
+ } catch ( e ) {
+ // For browsers in which the above method failed, we can cancel the resizing on the fly (#4208)
+ this.attachListener( this, CKEDITOR.env.ie ? 'resizestart' : 'resize', function( evt ) {
+ evt.data.preventDefault();
+ });
+ }
+ }
- if ( !bodyChildsNum || ( bodyChildsNum == 1&& body.getFirst().hasAttribute( '_moz_editor_bogus_node' ) ) )
- {
- restoreDirty( editor );
+ if ( CKEDITOR.env.gecko || CKEDITOR.env.ie && editor.document.$.compatMode == 'CSS1Compat' ) {
+ this.attachListener( this, 'keydown', function( evt ) {
+ var keyCode = evt.data.getKeystroke();
+
+ // PageUp OR PageDown
+ if ( keyCode == 33 || keyCode == 34 ) {
+ // PageUp/PageDown scrolling is broken in document
+ // with standard doctype, manually fix it. (#4736)
+ if ( CKEDITOR.env.ie ) {
+ setTimeout( function() {
+ editor.getSelection().scrollIntoView();
+ }, 0 );
+ }
+ // Page up/down cause editor selection to leak
+ // outside of editable thus we try to intercept
+ // the behavior, while it affects only happen
+ // when editor contents are not overflowed. (#7955)
+ else if ( editor.window.$.innerHeight > this.$.offsetHeight ) {
+ var range = editor.createRange();
+ range[ keyCode == 33 ? 'moveToElementEditStart' : 'moveToElementEditEnd' ]( this );
+ range.select();
+ evt.data.preventDefault();
+ }
+ }
+ });
+ }
- // Memorize scroll position to restore it later (#4472).
- var hostDocument = editor.element.getDocument();
- var hostDocumentElement = hostDocument.getDocumentElement();
- var scrollTop = hostDocumentElement.$.scrollTop;
- var scrollLeft = hostDocumentElement.$.scrollLeft;
+ if ( CKEDITOR.env.ie ) {
+ // [IE] Iframe will still keep the selection when blurred, if
+ // focus is moved onto a non-editing host, e.g. link or button, but
+ // it becomes a problem for the object type selection, since the resizer
+ // handler attached on it will mark other part of the UI, especially
+ // for the dialog. (#8157)
+ // [IE<8 & Opera] Even worse For old IEs, the cursor will not vanish even if
+ // the selection has been moved to another text input in some cases. (#4716)
+ //
+ // Now the range restore is disabled, so we simply force IE to clean
+ // up the selection before blur.
+ this.attachListener( doc, 'blur', function() {
+ // Error proof when the editor is not visible. (#6375)
+ try {
+ doc.$.selection.empty();
+ } catch ( er ) {}
+ });
+ }
- // Simulating keyboard character input by dispatching a keydown of white-space text.
- var keyEventSimulate = doc.$.createEvent( "KeyEvents" );
- keyEventSimulate.initKeyEvent( 'keypress', true, true, win.$, false,
- false, false, false, 0, 32 );
- doc.$.dispatchEvent( keyEventSimulate );
+ // ## END
- if ( scrollTop != hostDocumentElement.$.scrollTop || scrollLeft != hostDocumentElement.$.scrollLeft )
- hostDocument.getWindow().$.scrollTo( scrollLeft, scrollTop );
- // Restore the original document status by placing the cursor before a bogus br created (#5021).
- bodyChildsNum && body.getFirst().remove();
- doc.getBody().appendBogus();
- var nativeRange = new CKEDITOR.dom.range( doc );
- nativeRange.setStartAt( body , CKEDITOR.POSITION_AFTER_START );
- nativeRange.select();
- }
- }
+ var title = editor.document.getElementsByTag( 'title' ).getItem( 0 );
+ title.data( 'cke-title', editor.document.$.title );
- /**
- * Auto-fixing block-less content by wrapping paragraph (#3190), prevent
- * non-exitable-block by padding extra br.(#3189)
- */
- function onSelectionChangeFixBody( evt )
- {
- var editor = evt.editor,
- path = evt.data.path,
- blockLimit = path.blockLimit,
- selection = evt.data.selection,
- range = selection.getRanges()[0],
- body = editor.document.getBody(),
- enterMode = editor.config.enterMode;
-
- CKEDITOR.env.gecko && activateEditing( editor );
-
- // When enterMode set to block, we'll establing new paragraph only if we're
- // selecting inline contents right under body. (#3657)
- if ( enterMode != CKEDITOR.ENTER_BR
- && range.collapsed
- && blockLimit.getName() == 'body'
- && !path.block )
- {
- editor.fire( 'updateSnapshot' );
- restoreDirty( editor );
- CKEDITOR.env.ie && restoreSelection( selection );
+ // [IE] JAWS will not recognize the aria label we used on the iframe
+ // unless the frame window title string is used as the voice label,
+ // backup the original one and restore it on output.
+ if ( CKEDITOR.env.ie )
+ editor.document.$.title = this._.docTitle;
- var fixedBlock = range.fixBlock( true,
- editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' );
+ CKEDITOR.tools.setTimeout( function() {
+ editor.fire( 'contentDom' );
- // For IE, we should remove any filler node which was introduced before.
- if ( CKEDITOR.env.ie )
- {
- var first = fixedBlock.getFirst( isNotEmpty );
- first && isNbsp( first ) && first.remove();
+ if ( this._.isPendingFocus ) {
+ editor.focus();
+ this._.isPendingFocus = false;
}
- // If the fixed block is actually blank and is already followed by an exitable blank
- // block, we should revert the fix and move into the existed one. (#3684)
- if ( isBlankParagraph( fixedBlock ) )
- {
- var element = fixedBlock.getNext( isNotWhitespace );
- if ( element &&
- element.type == CKEDITOR.NODE_ELEMENT &&
- !nonExitableElementNames[ element.getName() ] )
- {
- range.moveToElementEditStart( element );
- fixedBlock.remove();
- }
- else
- {
- element = fixedBlock.getPrevious( isNotWhitespace );
- if ( element &&
- element.type == CKEDITOR.NODE_ELEMENT &&
- !nonExitableElementNames[ element.getName() ] )
- {
- range.moveToElementEditEnd( element );
- fixedBlock.remove();
+ setTimeout( function() {
+ editor.fire( 'dataReady' );
+ }, 0 );
+
+ // IE BUG: IE might have rendered the iframe with invisible contents.
+ // (#3623). Push some inconsequential CSS style changes to force IE to
+ // refresh it.
+ //
+ // Also, for some unknown reasons, short timeouts (e.g. 100ms) do not
+ // fix the problem. :(
+ if ( CKEDITOR.env.ie ) {
+ setTimeout( function() {
+ if ( editor.document ) {
+ var $body = editor.document.$.body;
+ $body.runtimeStyle.marginBottom = '0px';
+ $body.runtimeStyle.marginBottom = '';
}
- }
+ }, 1000 );
}
-
- range.select();
- // Notify non-IE that selection has changed.
- if ( !CKEDITOR.env.ie )
- editor.selectionChange();
- }
-
- // All browsers are incapable to moving cursor out of certain non-exitable
- // blocks (e.g. table, list, pre) at the end of document, make this happen by
- // place a bogus node there, which would be later removed by dataprocessor.
- var walkerRange = new CKEDITOR.dom.range( editor.document ),
- walker = new CKEDITOR.dom.walker( walkerRange );
- walkerRange.selectNodeContents( body );
- walker.evaluator = function( node )
- {
- return node.type == CKEDITOR.NODE_ELEMENT && ( node.getName() in nonExitableElementNames );
- };
- walker.guard = function( node, isMoveout )
- {
- return !( ( node.type == CKEDITOR.NODE_TEXT && isNotWhitespace( node ) ) || isMoveout );
- };
-
- if ( walker.previous() )
- {
- editor.fire( 'updateSnapshot' );
- restoreDirty( editor );
- CKEDITOR.env.ie && restoreSelection( selection );
-
- var paddingBlock;
- if ( enterMode != CKEDITOR.ENTER_BR )
- paddingBlock = body.append( new CKEDITOR.dom.element( enterMode == CKEDITOR.ENTER_P ? 'p' : 'div' ) );
- else
- paddingBlock = body;
-
- if ( !CKEDITOR.env.ie )
- paddingBlock.appendBogus();
- }
+ }, 0, this );
}
- CKEDITOR.plugins.add( 'wysiwygarea',
- {
- requires : [ 'editingblock' ],
+ var framedWysiwyg = CKEDITOR.tools.createClass({
+ $: function( editor ) {
+ this.base.apply( this, arguments );
- init : function( editor )
- {
- var fixForBody = ( editor.config.enterMode != CKEDITOR.ENTER_BR )
- ? editor.config.enterMode == CKEDITOR.ENTER_DIV ? 'div' : 'p' : false;
+ this._.frameLoadedHandler = CKEDITOR.tools.addFunction( function( win ) {
+ // Avoid opening design mode in a frame window thread,
+ // which will cause host page scrolling.(#4397)
+ CKEDITOR.tools.setTimeout( onDomReady, 0, this, win );
+ }, this );
- var frameLabel = editor.lang.editorTitle.replace( '%1', editor.name );
+ this._.docTitle = this.getWindow().getFrame().getAttribute( 'title' );
+ },
- var contentDomReadyHandler;
- editor.on( 'editingBlockReady', function()
- {
- var mainElement,
- iframe,
- isLoadingData,
- isPendingFocus,
- frameLoaded,
- fireMode;
+ base: CKEDITOR.editable,
+ proto: {
+ setData: function( data, isSnapshot ) {
+ var editor = this.editor;
- // Support for custom document.domain in IE.
- var isCustomDomain = CKEDITOR.env.isCustomDomain();
+ if ( isSnapshot )
+ this.setHtml( data );
+ else {
+ this._.isLoadingData = true;
+ editor._.dataStore = { id:1 };
- // Creates the iframe that holds the editable document.
- var createIFrame = function( data )
- {
- if ( iframe )
- iframe.remove();
+ var config = editor.config,
+ fullPage = config.fullPage,
+ docType = config.docType;
+ // Build the additional stuff to be included into <head>.
+ var headExtra = CKEDITOR.tools.buildStyleHtml( iframeCssFixes() )
+ .replace( /<style>/, '<style data-cke-temp="1">' );
- var srcScript =
- 'document.open();' +
+ if ( !fullPage )
+ headExtra += CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss );
- // The document domain must be set any time we
- // call document.open().
- ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
+ var baseTag = config.baseHref ? '<base href="' + config.baseHref + '" data-cke-temp="1" />' : '';
- 'document.close();';
-
- iframe = CKEDITOR.dom.element.createFromHtml( '<iframe' +
- ' style="width:100%;height:100%"' +
- ' frameBorder="0"' +
- ' title="' + frameLabel + '"' +
- // With IE, the custom domain has to be taken care at first,
- // for other browers, the 'src' attribute should be left empty to
- // trigger iframe's 'load' event.
- ' src="' + ( CKEDITOR.env.ie ? 'javascript:void(function(){' + encodeURIComponent( srcScript ) + '}())' : '' ) + '"' +
- ' tabIndex="' + ( CKEDITOR.env.webkit? -1 : editor.tabIndex ) + '"' +
- ' allowTransparency="true"' +
- '></iframe>' );
-
- // Running inside of Firefox chrome the load event doesn't bubble like in a normal page (#5689)
- if ( document.location.protocol == 'chrome:' )
- CKEDITOR.event.useCapture = true;
-
- // With FF, it's better to load the data on iframe.load. (#3894,#4058)
- iframe.on( 'load', function( ev )
- {
- frameLoaded = 1;
- ev.removeListener();
-
- var doc = iframe.getFrameDocument().$;
-
- // Don't leave any history log in IE. (#5657)
- doc.open( "text/html","replace" );
- doc.write( data );
- doc.close();
- });
-
- // Reset adjustment back to default (#5689)
- if ( document.location.protocol == 'chrome:' )
- CKEDITOR.event.useCapture = false;
-
- // The container must be visible when creating the iframe in FF (#5956)
- var element = editor.element,
- isHidden = CKEDITOR.env.gecko && !element.isVisible(),
- previousStyles = {};
- if ( isHidden )
- {
- element.show();
- previousStyles = {
- position : element.getStyle( 'position' ),
- top : element.getStyle( 'top' )
- };
- element.setStyles( { position : 'absolute', top : '-3000px' } );
- }
+ if ( fullPage ) {
+ // Search and sweep out the doctype declaration.
+ data = data.replace( /<!DOCTYPE[^>]*>/i, function( match ) {
+ editor.docType = docType = match;
+ return '';
+ }).replace( /<\?xml\s[^\?]*\?>/i, function( match ) {
+ editor.xmlDeclaration = match;
+ return '';
+ });
+ }
- mainElement.append( iframe );
+ // Get the HTML version of the data.
+ if ( editor.dataProcessor )
+ data = editor.dataProcessor.toHtml( data );
+
+ if ( fullPage ) {
+ // Check if the <body> tag is available.
+ if ( !( /<body[\s|>]/ ).test( data ) )
+ data = '<body>' + data;
+
+ // Check if the <html> tag is available.
+ if ( !( /<html[\s|>]/ ).test( data ) )
+ data = '<html>' + data + '</html>';
+
+ // Check if the <head> tag is available.
+ if ( !( /<head[\s|>]/ ).test( data ) )
+ data = data.replace( /<html[^>]*>/, '$&<head><title></title></head>' );
+ else if ( !( /<title[\s|>]/ ).test( data ) )
+ data = data.replace( /<head[^>]*>/, '$&<title></title>' );
+
+ // The base must be the first tag in the HEAD, e.g. to get relative
+ // links on styles.
+ baseTag && ( data = data.replace( /<head>/, '$&' + baseTag ) );
+
+ // Inject the extra stuff into <head>.
+ // Attention: do not change it before testing it well. (V2)
+ // This is tricky... if the head ends with <meta ... content type>,
+ // Firefox will break. But, it works if we place our extra stuff as
+ // the last elements in the HEAD.
+ data = data.replace( /<\/head\s*>/, headExtra + '$&' );
+
+ // Add the DOCTYPE back to it.
+ data = docType + data;
+ } else {
+ data = config.docType +
+ '<html dir="' + config.contentsLangDirection + '"' +
+ ' lang="' + ( config.contentsLanguage || editor.langCode ) + '">' +
+ '<head>' +
+ '<title>' + this._.docTitle + '</title>' +
+ baseTag +
+ headExtra +
+ '</head>' +
+ '<body' + ( config.bodyId ? ' id="' + config.bodyId + '"' : '' ) +
+ ( config.bodyClass ? ' class="' + config.bodyClass + '"' : '' ) +
+ '>' +
+ data +
+ '</body>' +
+ '</html>';
+ }
- if ( isHidden )
- {
- setTimeout( function()
- {
- element.hide();
- element.setStyles( previousStyles );
- }, 1000 );
- }
- };
+ if ( CKEDITOR.env.gecko ) {
+ // Hack to make Fx put cursor at the start of doc on fresh focus.
+ data = data.replace( /<body/, '<body contenteditable="true" ' );
+
+ // Another hack which is used by onDomReady to remove a leading
+ // <br> which is inserted by Firefox 3.6 when document.write is called.
+ // This additional <br> is present because of contenteditable="true"
+ if ( CKEDITOR.env.version < 20000 )
+ data = data.replace( /<body[^>]*>/, '$&<!-- cke-content-start -->' );
+ }
// The script that launches the bootstrap logic on 'domReady', so the document
// is fully editable even before the editing iframe is fully loaded (#4455).
- contentDomReadyHandler = CKEDITOR.tools.addFunction( contentDomReady );
- var activationScript =
- '<script id="cke_actscrpt" type="text/javascript" cke_temp="1">' +
+ var bootstrapCode =
+ '<script id="cke_actscrpt" type="text/javascript"' + ( CKEDITOR.env.ie ? ' defer="defer" ' : '' ) + '>' +
( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) +
- 'window.parent.CKEDITOR.tools.callFunction( ' + contentDomReadyHandler + ', window );' +
+ 'var wasLoaded=0;' + // It must be always set to 0 as it remains as a window property.
+ 'function onload(){' +
+ 'if(!wasLoaded)' + // FF3.6 calls onload twice when editor.setData. Stop that.
+ 'window.parent.CKEDITOR.tools.callFunction(' + this._.frameLoadedHandler + ',window);' +
+ 'wasLoaded=1;' +
+ '}' +
+ ( CKEDITOR.env.ie ? 'onload();' : 'document.addEventListener("DOMContentLoaded", onload, false );' ) +
'</script>';
- // Editing area bootstrap code.
- function contentDomReady( domWindow )
- {
- if ( !frameLoaded )
- return;
- frameLoaded = 0;
+ // For IE<9 add support for HTML5's elements.
+ // Note: this code must not be deferred.
+ if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 ) {
+ bootstrapCode +=
+ '<script id="cke_shimscrpt">' +
+ '(function(){' +
+ 'var e="abbr,article,aside,audio,bdi,canvas,data,datalist,details,figcaption,figure,footer,header,hgroup,mark,meter,nav,output,progress,section,summary,time,video".split(","),i=e.length;' +
+ 'while(i--){document.createElement(e[i])}' +
+ '})()' +
+ '</script>';
+ }
+
+ data = data.replace( /(?=\s*<\/(:?head)>)/, bootstrapCode );
- editor.fire( 'ariaWidget', iframe );
+ // Current DOM will be deconstructed by document.write, cleanup required.
+ this.clearCustomData();
+ this.clearListeners();
- var domDocument = domWindow.document,
- body = domDocument.body;
+ editor.fire( 'contentDomUnload' );
- // Remove this script from the DOM.
- var script = domDocument.getElementById( "cke_actscrpt" );
- script.parentNode.removeChild( script );
+ var doc = this.getDocument();
- body.spellcheck = !editor.config.disableNativeSpellChecker;
+ // Work around Firefox bug - error prune when called from XUL (#320),
+ // defer it thanks to the async nature of this method.
+ try { doc.write( data ); } catch ( e ) {
+ setTimeout( function () { doc.write( data ); }, 0 );
+ }
+ }
+ },
+
+ getData: function( isSnapshot ) {
+ if ( isSnapshot )
+ return this.getHtml();
+ else {
+ var editor = this.editor,
+ config = editor.config,
+ fullPage = config.fullPage,
+ docType = fullPage && editor.docType,
+ xmlDeclaration = fullPage && editor.xmlDeclaration,
+ doc = this.getDocument();
+
+ var data = fullPage ? doc.getDocumentElement().getOuterHtml() : doc.getBody().getHtml();
+
+ // BR at the end of document is bogus node for Mozilla. (#5293).
+ if ( CKEDITOR.env.gecko )
+ data = data.replace( /<br>(?=\s*(:?$|<\/body>))/, '' );
+
+ if ( editor.dataProcessor )
+ data = editor.dataProcessor.toDataFormat( data );
+
+ if ( xmlDeclaration )
+ data = xmlDeclaration + '\n' + data;
+ if ( docType )
+ data = docType + '\n' + data;
+
+ return data;
+ }
+ },
- if ( CKEDITOR.env.ie )
- {
- // Don't display the focus border.
- body.hideFocus = true;
+ focus: function() {
+ if ( this._.isLoadingData )
+ this._.isPendingFocus = true;
+ else
+ framedWysiwyg.baseProto.focus.call( this );
+ },
- // Disable and re-enable the body to avoid IE from
- // taking the editing focus at startup. (#141 / #523)
- body.disabled = true;
- body.contentEditable = true;
- body.removeAttribute( 'disabled' );
- }
- else
- {
- // Avoid opening design mode in a frame window thread,
- // which will cause host page scrolling.(#4397)
- setTimeout( function()
- {
- // Prefer 'contentEditable' instead of 'designMode'. (#3593)
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900
- || CKEDITOR.env.opera )
- domDocument.$.body.contentEditable = true;
- else if ( CKEDITOR.env.webkit )
- domDocument.$.body.parentNode.contentEditable = true;
- else
- domDocument.$.designMode = 'on';
- }, 0 );
- }
+ detach: function() {
+ var editor = this.editor,
+ doc = editor.document,
+ iframe = editor.window.getFrame();
- CKEDITOR.env.gecko && CKEDITOR.tools.setTimeout( activateEditing, 0, null, editor );
+ framedWysiwyg.baseProto.detach.call( this );
- domWindow = editor.window = new CKEDITOR.dom.window( domWindow );
- domDocument = editor.document = new CKEDITOR.dom.document( domDocument );
+ // Memory leak proof.
+ this.clearCustomData();
+ doc.getDocumentElement().clearCustomData();
+ iframe.clearCustomData();
+ CKEDITOR.tools.removeFunction( this._.frameLoadedHandler );
- domDocument.on( 'dblclick', function( evt )
- {
- var element = evt.data.getTarget(),
- data = { element : element, dialog : '' };
- editor.fire( 'doubleclick', data );
- data.dialog && editor.openDialog( data.dialog );
- });
+ var onResize = iframe.removeCustomData( 'onResize' );
+ onResize && onResize.removeListener();
- // Gecko/Webkit need some help when selecting control type elements. (#3448)
- if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera) )
- {
- domDocument.on( 'mousedown', function( ev )
- {
- var control = ev.data.getTarget();
- if ( control.is( 'img', 'hr', 'input', 'textarea', 'select' ) )
- editor.getSelection().selectElement( control );
- } );
- }
- if ( CKEDITOR.env.gecko )
- {
- domDocument.on( 'mouseup', function( ev )
- {
- if ( ev.data.$.button == 2 )
- {
- var target = ev.data.getTarget();
-
- // Prevent right click from selecting an empty block even
- // when selection is anchored inside it. (#5845)
- if ( !target.getOuterHtml().replace( emptyParagraphRegexp, '' ) )
- {
- var range = new CKEDITOR.dom.range( domDocument );
- range.moveToElementEditStart( target );
- range.select( true );
- }
- }
- } );
- }
+ editor.fire( 'contentDomUnload' );
- // Prevent the browser opening links in read-only blocks. (#6032)
- domDocument.on( 'click', function( ev )
- {
- ev = ev.data;
- if ( ev.getTarget().is( 'a' ) && ev.$.button != 2 )
- ev.preventDefault();
- });
-
- // Webkit: avoid from editing form control elements content.
- if ( CKEDITOR.env.webkit )
- {
- // Prevent from tick checkbox/radiobox/select
- domDocument.on( 'click', function( ev )
- {
- if ( ev.data.getTarget().is( 'input', 'select' ) )
- ev.data.preventDefault();
- } );
-
- // Prevent from editig textfield/textarea value.
- domDocument.on( 'mouseup', function( ev )
- {
- if ( ev.data.getTarget().is( 'input', 'textarea' ) )
- ev.data.preventDefault();
- } );
- }
+ // IE BUG: When destroying editor DOM with the selection remains inside
+ // editing area would break IE7/8's selection system, we have to put the editing
+ // iframe offline first. (#3812 and #5441)
+ iframe.remove();
+ }
+ }
+ });
- // IE standard compliant in editing frame doesn't focus the editor when
- // clicking outside actual content, manually apply the focus. (#1659)
- if ( CKEDITOR.env.ie
- && domDocument.$.compatMode == 'CSS1Compat'
- || CKEDITOR.env.gecko
- || CKEDITOR.env.opera )
- {
- var htmlElement = domDocument.getDocumentElement();
- htmlElement.on( 'mousedown', function( evt )
- {
- // Setting focus directly on editor doesn't work, we
- // have to use here a temporary element to 'redirect'
- // the focus.
- if ( evt.data.getTarget().equals( htmlElement ) )
- {
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 )
- blinkCursor();
- focusGrabber.focus();
- }
- } );
- }
+ // Fixing Firefox 'Back-Forward Cache' breaks design mode. (#4514)
+ if ( CKEDITOR.env.gecko ) {
+ (function() {
+ var body = document.body;
- domWindow.on( 'blur', function()
- {
- editor.focusManager.blur();
- });
-
- domWindow.on( 'focus', function()
- {
- var doc = editor.document;
-
- if ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 )
- blinkCursor();
- else if ( CKEDITOR.env.opera )
- doc.getBody().focus();
-
- editor.focusManager.focus();
- });
-
- var keystrokeHandler = editor.keystrokeHandler;
- if ( keystrokeHandler )
- keystrokeHandler.attach( domDocument );
-
- if ( CKEDITOR.env.ie )
- {
- domDocument.getDocumentElement().addClass( domDocument.$.compatMode );
- // Override keystrokes which should have deletion behavior
- // on control types in IE . (#4047)
- domDocument.on( 'keydown', function( evt )
- {
- var keyCode = evt.data.getKeystroke();
-
- // Backspace OR Delete.
- if ( keyCode in { 8 : 1, 46 : 1 } )
- {
- var sel = editor.getSelection(),
- control = sel.getSelectedElement();
-
- if ( control )
- {
- // Make undo snapshot.
- editor.fire( 'saveSnapshot' );
-
- // Delete any element that 'hasLayout' (e.g. hr,table) in IE8 will
- // break up the selection, safely manage it here. (#4795)
- var bookmark = sel.getRanges()[ 0 ].createBookmark();
- // Remove the control manually.
- control.remove();
- sel.selectBookmarks( [ bookmark ] );
-
- editor.fire( 'saveSnapshot' );
-
- evt.data.preventDefault();
- }
- }
- } );
-
- // PageUp/PageDown scrolling is broken in document
- // with standard doctype, manually fix it. (#4736)
- if ( domDocument.$.compatMode == 'CSS1Compat' )
- {
- var pageUpDownKeys = { 33 : 1, 34 : 1 };
- domDocument.on( 'keydown', function( evt )
- {
- if ( evt.data.getKeystroke() in pageUpDownKeys )
- {
- setTimeout( function ()
- {
- editor.getSelection().scrollIntoView();
- }, 0 );
- }
- } );
- }
- }
+ if ( !body )
+ window.addEventListener( 'load', arguments.callee, false );
+ else {
+ var currentHandler = body.getAttribute( 'onpageshow' );
+ body.setAttribute( 'onpageshow', ( currentHandler ? currentHandler + ';' : '' ) + 'event.persisted&&(function(){' +
+ 'var x=CKEDITOR.instances,d,i;' +
+ 'for(i in x){' +
+ 'd=x[i].document;' +
+ 'if(d){' +
+ 'd.$.designMode="off";' +
+ 'd.$.designMode="on";' +
+ '}' +
+ '}' +
+ '})();' );
+ }
+ })();
- // Adds the document body as a context menu target.
- if ( editor.contextMenu )
- editor.contextMenu.addTarget( domDocument, editor.config.browserContextMenuOnCtrl !== false );
-
- setTimeout( function()
- {
- editor.fire( 'contentDom' );
-
- if ( fireMode )
- {
- editor.mode = 'wysiwyg';
- editor.fire( 'mode' );
- fireMode = false;
- }
-
- isLoadingData = false;
-
- if ( isPendingFocus )
- {
- editor.focus();
- isPendingFocus = false;
- }
- setTimeout( function()
- {
- editor.fire( 'dataReady' );
- }, 0 );
-
- // IE, Opera and Safari may not support it and throw errors.
- try { editor.document.$.execCommand( 'enableObjectResizing', false, !editor.config.disableObjectResizing ) ; } catch(e) {}
- try { editor.document.$.execCommand( 'enableInlineTableEditing', false, !editor.config.disableNativeTableHandles ) ; } catch(e) {}
-
- /*
- * IE BUG: IE might have rendered the iframe with invisible contents.
- * (#3623). Push some inconsequential CSS style changes to force IE to
- * refresh it.
- *
- * Also, for some unknown reasons, short timeouts (e.g. 100ms) do not
- * fix the problem. :(
- */
- if ( CKEDITOR.env.ie )
- {
- setTimeout( function()
- {
- if ( editor.document )
- {
- var $body = editor.document.$.body;
- $body.runtimeStyle.marginBottom = '0px';
- $body.runtimeStyle.marginBottom = '';
- }
- }, 1000 );
- }
- },
- 0 );
- }
+ }
- editor.addMode( 'wysiwyg',
- {
- load : function( holderElement, data, isSnapshot )
- {
- mainElement = holderElement;
-
- if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
- holderElement.setStyle( 'position', 'relative' );
-
- // The editor data "may be dirty" after this
- // point.
- editor.mayBeDirty = true;
-
- fireMode = true;
-
- if ( isSnapshot )
- this.loadSnapshotData( data );
- else
- this.loadData( data );
- },
-
- loadData : function( data )
- {
- isLoadingData = true;
-
- var config = editor.config,
- fullPage = config.fullPage,
- docType = config.docType;
-
- // Build the additional stuff to be included into <head>.
- var headExtra =
- '<style type="text/css" cke_temp="1">' +
- editor._.styles.join( '\n' ) +
- '</style>';
-
- !fullPage && ( headExtra =
- CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) +
- headExtra );
-
- var baseTag = config.baseHref ? '<base href="' + config.baseHref + '" cke_temp="1" />' : '';
-
- if ( fullPage )
- {
- // Search and sweep out the doctype declaration.
- data = data.replace( /<!DOCTYPE[^>]*>/i, function( match )
- {
- editor.docType = docType = match;
- return '';
- });
- }
-
- // Get the HTML version of the data.
- if ( editor.dataProcessor )
- data = editor.dataProcessor.toHtml( data, fixForBody );
-
- if ( fullPage )
- {
- // Check if the <body> tag is available.
- if ( !(/<body[\s|>]/).test( data ) )
- data = '<body>' + data;
-
- // Check if the <html> tag is available.
- if ( !(/<html[\s|>]/).test( data ) )
- data = '<html>' + data + '</html>';
-
- // Check if the <head> tag is available.
- if ( !(/<head[\s|>]/).test( data ) )
- data = data.replace( /<html[^>]*>/, '$&<head><title></title></head>' ) ;
- else if ( !(/<title[\s|>]/).test( data ) )
- data = data.replace( /<head[^>]*>/, '$&<title></title>' ) ;
-
- // The base must be the first tag in the HEAD, e.g. to get relative
- // links on styles.
- baseTag && ( data = data.replace( /<head>/, '$&' + baseTag ) );
-
- // Inject the extra stuff into <head>.
- // Attention: do not change it before testing it well. (V2)
- // This is tricky... if the head ends with <meta ... content type>,
- // Firefox will break. But, it works if we place our extra stuff as
- // the last elements in the HEAD.
- data = data.replace( /<\/head\s*>/, headExtra + '$&' );
-
- // Add the DOCTYPE back to it.
- data = docType + data;
- }
- else
- {
- data =
- config.docType +
- '<html dir="' + config.contentsLangDirection + '"' +
- ' lang="' + ( config.contentsLanguage || editor.langCode ) + '">' +
- '<head>' +
- '<title>' + frameLabel + '</title>' +
- baseTag +
- headExtra +
- '</head>' +
- '<body' + ( config.bodyId ? ' id="' + config.bodyId + '"' : '' ) +
- ( config.bodyClass ? ' class="' + config.bodyClass + '"' : '' ) +
- '>' +
- data +
- '</html>';
- }
-
- data += activationScript;
-
-
- // The iframe is recreated on each call of setData, so we need to clear DOM objects
- this.onDispose();
- createIFrame( data );
- },
-
- getData : function()
- {
- var config = editor.config,
- fullPage = config.fullPage,
- docType = fullPage && editor.docType,
- doc = iframe.getFrameDocument();
-
- var data = fullPage
- ? doc.getDocumentElement().getOuterHtml()
- : doc.getBody().getHtml();
-
- if ( editor.dataProcessor )
- data = editor.dataProcessor.toDataFormat( data, fixForBody );
-
- // Strip the last blank paragraph within document.
- if ( config.ignoreEmptyParagraph )
- data = data.replace( emptyParagraphRegexp, '' );
-
- if ( docType )
- data = docType + '\n' + data;
-
- return data;
- },
-
- getSnapshotData : function()
- {
- return iframe.getFrameDocument().getBody().getHtml();
- },
-
- loadSnapshotData : function( data )
- {
- iframe.getFrameDocument().getBody().setHtml( data );
- },
-
- onDispose : function()
- {
- if ( !editor.document )
- return;
-
- editor.document.getDocumentElement().clearCustomData();
- editor.document.getBody().clearCustomData();
-
- editor.window.clearCustomData();
- editor.document.clearCustomData();
-
- iframe.clearCustomData();
-
- /*
- * IE BUG: When destroying editor DOM with the selection remains inside
- * editing area would break IE7/8's selection system, we have to put the editing
- * iframe offline first. (#3812 and #5441)
- */
- iframe.remove();
- },
-
- unload : function( holderElement )
- {
- this.onDispose();
-
- editor.window = editor.document = iframe = mainElement = isPendingFocus = null;
-
- editor.fire( 'contentDomUnload' );
- },
-
- focus : function()
- {
- if ( isLoadingData )
- isPendingFocus = true;
- // Temporary solution caused by #6025, supposed be unified by #6154.
- else if ( CKEDITOR.env.opera && editor.document )
- {
- editor.document.getBody().focus();
-
- editor.selectionChange();
- }
- else if ( !CKEDITOR.env.opera && editor.window )
- {
- editor.window.focus();
-
- editor.selectionChange();
- }
- }
- });
+ // DOM modification here should not bother dirty flag.(#4385)
+ function restoreDirty( editor ) {
+ if ( !editor.checkDirty() )
+ setTimeout( function() {
+ editor.resetDirty();
+ }, 0 );
+ }
- editor.on( 'insertHtml', onInsertHtml, null, null, 20 );
- editor.on( 'insertElement', onInsertElement, null, null, 20 );
- // Auto fixing on some document structure weakness to enhance usabilities. (#3190 and #3189)
- editor.on( 'selectionChange', onSelectionChangeFixBody, null, null, 1 );
- });
+ function activateEditing( editor ) {
+ if ( editor.readOnly )
+ return;
- var titleBackup;
- // Setting voice label as window title, backup the original one
- // and restore it before running into use.
- editor.on( 'contentDom', function ()
- {
- var title = editor.document.getElementsByTag( 'title' ).getItem( 0 );
- title.setAttribute( '_cke_title', editor.document.$.title );
- editor.document.$.title = frameLabel;
- });
+ var win = editor.window,
+ doc = editor.document,
+ body = doc.getBody(),
+ bodyFirstChild = body.getFirst(),
+ bodyChildsNum = body.getChildren().count();
- // IE8 stricts mode doesn't have 'contentEditable' in effect
- // on element unless it has layout. (#5562)
- if ( CKEDITOR.env.ie8Compat )
- {
- editor.addCss( 'html.CSS1Compat [contenteditable=false]{ min-height:0 !important;}' );
+ if ( !bodyChildsNum || bodyChildsNum == 1 && bodyFirstChild.type == CKEDITOR.NODE_ELEMENT && bodyFirstChild.hasAttribute( '_moz_editor_bogus_node' ) ) {
+ restoreDirty( editor );
- var selectors = [];
- for ( var tag in CKEDITOR.dtd.$removeEmpty )
- selectors.push( 'html.CSS1Compat ' + tag + '[contenteditable=false]' );
- editor.addCss( selectors.join( ',' ) + '{ display:inline-block;}' );
- }
+ // Memorize scroll position to restore it later (#4472).
+ var hostDocument = CKEDITOR.document;
+ var hostDocumentElement = hostDocument.getDocumentElement();
+ var scrollTop = hostDocumentElement.$.scrollTop;
+ var scrollLeft = hostDocumentElement.$.scrollLeft;
- // Switch on design mode for a short while and close it after then.
- function blinkCursor( retry )
- {
- CKEDITOR.tools.tryThese(
- function()
- {
- editor.document.$.designMode = 'on';
- setTimeout( function ()
- {
- editor.document.$.designMode = 'off';
- editor.document.getBody().focus();
- }, 50 );
- },
- function()
- {
- // The above call is known to fail when parent DOM
- // tree layout changes may break design mode. (#5782)
- // Refresh the 'contentEditable' is a cue to this.
- editor.document.$.designMode = 'off';
- var body = editor.document.getBody();
- body.setAttribute( 'contentEditable', false );
- body.setAttribute( 'contentEditable', true );
- // Try it again once..
- !retry && blinkCursor( 1 );
- });
- }
+ // Simulating keyboard character input by dispatching a keydown of white-space text.
+ var keyEventSimulate = doc.$.createEvent( "KeyEvents" );
+ keyEventSimulate.initKeyEvent( 'keypress', true, true, win.$, false, false, false, false, 0, 32 );
+ doc.$.dispatchEvent( keyEventSimulate );
- // Create an invisible element to grab focus.
- if ( CKEDITOR.env.gecko || CKEDITOR.env.ie || CKEDITOR.env.opera )
- {
- var focusGrabber;
- editor.on( 'uiReady', function()
- {
- focusGrabber = editor.container.append( CKEDITOR.dom.element.createFromHtml(
- // Use 'span' instead of anything else to fly under the screen-reader radar. (#5049)
- '<span tabindex="-1" style="position:absolute; left:-10000" role="presentation"></span>' ) );
-
- focusGrabber.on( 'focus', function()
- {
- editor.focus();
- } );
- } );
- editor.on( 'destroy', function()
- {
- CKEDITOR.tools.removeFunction( contentDomReadyHandler );
- focusGrabber.clearCustomData();
- } );
- }
+ if ( scrollTop != hostDocumentElement.$.scrollTop || scrollLeft != hostDocumentElement.$.scrollLeft )
+ hostDocument.getWindow().$.scrollTo( scrollLeft, scrollTop );
- // Disable form elements editing mode provided by some browers. (#5746)
- editor.on( 'insertElement', function ( evt )
- {
- var element = evt.data;
- if ( element.type == CKEDITOR.NODE_ELEMENT
- && ( element.is( 'input' ) || element.is( 'textarea' ) ) )
- {
- if ( !element.isReadOnly() )
- {
- element.setAttribute( 'contentEditable', false );
- // We should flag that the element was locked by our code so
- // it'll be editable by the editor functions (#6046).
- element.setCustomData( '_cke_notReadOnly', 1 );
- }
- }
- });
+ // Restore the original document status by placing the cursor before a bogus br created (#5021).
+ bodyChildsNum && body.getFirst().remove();
+ doc.getBody().appendBogus();
+ var nativeRange = editor.createRange();
+ nativeRange.setStartAt( body, CKEDITOR.POSITION_AFTER_START );
+ nativeRange.select();
+ }
+ }
+
+ function iframeCssFixes() {
+ var css = [];
+
+ // IE>=8 stricts mode doesn't have 'contentEditable' in effect
+ // on element unless it has layout. (#5562)
+ if ( CKEDITOR.document.$.documentMode >= 8 ) {
+ css.push( 'html.CSS1Compat [contenteditable=false]{min-height:0 !important}' );
+ var selectors = [];
+
+ for ( var tag in CKEDITOR.dtd.$removeEmpty )
+ selectors.push( 'html.CSS1Compat ' + tag + '[contenteditable=false]' );
+
+ css.push( selectors.join( ',' ) + '{display:inline-block}' );
+ }
+ // Set the HTML style to 100% to have the text cursor in affect (#6341)
+ else if ( CKEDITOR.env.gecko ) {
+ css.push( 'html{height:100% !important}' );
+ css.push( 'img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}' );
}
- });
- // Fixing Firefox 'Back-Forward Cache' break design mode. (#4514)
- if ( CKEDITOR.env.gecko )
- {
- ( function ()
- {
- var body = document.body;
+ // #6341: The text cursor must be set on the editor area.
+ // #6632: Avoid having "text" shape of cursor in IE7 scrollbars.
+ css.push( 'html{cursor:text;*cursor:auto}' );
- if ( !body )
- window.addEventListener( 'load', arguments.callee, false );
- else
- {
- var currentHandler = body.getAttribute( 'onpageshow' );
- body.setAttribute( 'onpageshow', ( currentHandler ? currentHandler + ';' : '') +
- 'event.persisted && (function(){' +
- 'var allInstances = CKEDITOR.instances, editor, doc;' +
- 'for ( var i in allInstances )' +
- '{' +
- ' editor = allInstances[ i ];' +
- ' doc = editor.document;' +
- ' if ( doc )' +
- ' {' +
- ' doc.$.designMode = "off";' +
- ' doc.$.designMode = "on";' +
- ' }' +
- '}' +
- '})();' );
- }
- } )();
+ // Use correct cursor for these elements
+ css.push( 'img,input,textarea{cursor:default}' );
+ return css.join('\n');
}
})();
/**
- * Disables the ability of resize objects (image and tables) in the editing
- * area.
- * @type Boolean
- * @default false
- * @example
- * config.disableObjectResizing = true;
+ * Disables the ability of resize objects (image and tables) in the editing area.
+ *
+ * config.disableObjectResizing = true;
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.disableObjectResizing = false;
@@ -1086,41 +622,81 @@ CKEDITOR.config.disableObjectResizing = false;
* Disables the "table tools" offered natively by the browser (currently
* Firefox only) to make quick table editing operations, like adding or
* deleting rows and columns.
- * @type Boolean
- * @default true
- * @example
- * config.disableNativeTableHandles = false;
+ *
+ * config.disableNativeTableHandles = false;
+ *
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.disableNativeTableHandles = true;
/**
- * Disables the built-in spell checker while typing natively available in the
- * browser (currently Firefox and Safari only).<br /><br />
+ * Disables the built-in words spell checker if browser provides one.
+ *
+ * **Note:** Although word suggestions provided by browsers (natively) will
+ * not appear in CKEditor's default context menu,
+ * users can always reach the native context menu by holding the
+ * *Ctrl* key when right-clicking if {@link #browserContextMenuOnCtrl}
+ * is enabled or you're simply not using the context menu plugin.
*
- * Even if word suggestions will not appear in the CKEditor context menu, this
- * feature is useful to help quickly identifying misspelled words.<br /><br />
+ * config.disableNativeSpellChecker = false;
*
- * This setting is currently compatible with Firefox only due to limitations in
- * other browsers.
- * @type Boolean
- * @default true
- * @example
- * config.disableNativeSpellChecker = false;
+ * @cfg
+ * @member CKEDITOR.config
*/
CKEDITOR.config.disableNativeSpellChecker = true;
/**
- * Whether the editor must output an empty value ("") if it's contents is made
- * by an empty paragraph only.
- * @type Boolean
- * @default true
- * @example
- * config.ignoreEmptyParagraph = false;
+ * The CSS file(s) to be used to apply style to the contents. It should
+ * reflect the CSS used in the final pages where the contents are to be
+ * used.
+ *
+ * config.contentsCss = '/css/mysitestyles.css';
+ * config.contentsCss = ['/css/mysitestyles.css', '/css/anotherfile.css'];
+ *
+ * @cfg {String/Array} [contentsCss=CKEDITOR.basePath + 'contents.css']
+ * @member CKEDITOR.config
+ */
+CKEDITOR.config.contentsCss = CKEDITOR.basePath + 'contents.css';
+
+/**
+ * Language code of the writting language which is used to author the editor
+ * contents.
+ *
+ * config.contentsLanguage = 'fr';
+ *
+ * @cfg {String} [contentsLanguage=same value with editor's UI language]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * The base href URL used to resolve relative and absolute URLs in the
+ * editor content.
+ *
+ * config.baseHref = 'http://www.example.com/path/';
+ *
+ * @cfg {String} [baseHref='']
+ * @member CKEDITOR.config
*/
-CKEDITOR.config.ignoreEmptyParagraph = true;
/**
- * Fired when data is loaded and ready for retrieval in an editor instance.
- * @name CKEDITOR.editor#dataReady
- * @event
+ * Whether automatically create wrapping blocks around inline contents inside document body,
+ * this helps to ensure the integrality of the block enter mode.
+ *
+ * **Note:** Changing the default value might introduce unpredictable usability issues.
+ *
+ * config.autoParagraph = false;
+ *
+ * @since 3.6
+ * @cfg {Boolean} [autoParagraph=true]
+ * @member CKEDITOR.config
+ */
+
+/**
+ * Fired when some elements are added to the document.
+ *
+ * @event ariaWidget
+ * @member CKEDITOR.editor
+ * @param {CKEDITOR.editor} editor This editor instance.
+ * @param {CKEDITOR.dom.element} data The element being added.
*/
diff --git a/devel/third-party/ckeditor/plugins/wysiwygarea/samples/fullpage.html b/devel/third-party/ckeditor/plugins/wysiwygarea/samples/fullpage.html
new file mode 100644
index 0000000..c0da0e9
--- /dev/null
+++ b/devel/third-party/ckeditor/plugins/wysiwygarea/samples/fullpage.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title>Full Page Editing — CKEditor Sample</title>
+ <meta charset="utf-8">
+ <script src="../../../ckeditor.js"></script>
+ <script src="../../../samples/sample.js"></script>
+ <link rel="stylesheet" href="../../../samples/sample.css">
+ <meta name="ckeditor-sample-required-plugins" content="sourcearea">
+ <meta name="ckeditor-sample-name" content="Full page support">
+ <meta name="ckeditor-sample-group" content="Plugins">
+ <meta name="ckeditor-sample-description" content="CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.">
+</head>
+<body>
+ <h1 class="samples">
+ <a href="../../../samples/index.html">CKEditor Samples</a> » Full Page Editing
+ </h1>
+ <div class="description">
+ <p>
+ This sample shows how to configure CKEditor to edit entire HTML pages, from the
+ <code><html></code> tag to the <code></html></code> tag.
+ </p>
+ <p>
+ The CKEditor instance below is inserted with a JavaScript call using the following code:
+ </p>
+<pre class="samples">
+CKEDITOR.replace( '<em>textarea_id</em>', {
+ <strong>fullPage: true</strong>
+});
+</pre>
+ <p>
+ Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
+ the <code><textarea></code> element to be replaced.
+ </p>
+ </div>
+ <form action="../../../samples/sample_posteddata.php" method="post">
+ <label for="editor1">
+ CKEditor output the entire page including content outside of
+ <code><body></code> element, so content like meta and title can be changed:
+ </label>
+ <textarea cols="80" id="editor1" name="editor1" rows="10">
+ <h1><img alt="Saturn V carrying Apollo 11" align="right" src="../../../samples/assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <strike>three and a half</strike> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Mic
hael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. Preside
nt <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong<
;/td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supporte
d the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-al
ign: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+ </textarea>
+ <script>
+
+ CKEDITOR.replace( 'editor1', {
+ fullPage: true,
+ extraPlugins: 'wysiwygarea'
+ });
+
+ </script>
+ <p>
+ <input type="submit" value="Submit">
+ </p>
+ </form>
+ <div id="footer">
+ <hr>
+ <p>
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
+ </p>
+ <p id="copy">
+ Copyright © 2003-2013, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
+ Knabben. All rights reserved.
+ </p>
+ </div>
+</body>
+</html>
diff --git a/devel/third-party/ckeditor/skins/kama/dialog.css b/devel/third-party/ckeditor/skins/kama/dialog.css
index 743854e..b6c34dd 100644
--- a/devel/third-party/ckeditor/skins/kama/dialog.css
+++ b/devel/third-party/ckeditor/skins/kama/dialog.css
@@ -1,21 +1,46 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-/* Restore the dialog visibility */
-body .cke_dialog
+/*
+dialog.css
+============
+This file styles dialogs and all widgets available inside of it (tabs, buttons,
+fields, etc.).
+Dialogs are a complex system because they're very flexible. The CKEditor API
+makes it easy to create and customize dialogs by code, by making use of several
+different widgets inside its contents.
+All dialogs share a main dialog strucuture, which can be visually represented
+as follows:
++-- .cke_dialog -------------------------------------------------+
+| +-- .cke_dialog_body ----------------------------------------+ |
+| | +-- .cke_dialog_title --+ +-- .cke_dialog_close_button --+ | |
+| | | | | | | |
+| | +-----------------------+ +------------------------------+ | |
+| | +-- .cke_dialog_tabs ------------------------------------+ | |
+| | | | | |
+| | +--------------------------------------------------------+ | |
+| | +-- .cke_dialog_contents --------------------------------+ | |
+| | | +-- .cke_dialog_contents_body -----------------------+ | | |
+| | | | | | | |
+| | | +----------------------------------------------------+ | | |
+| | | +-- .cke_dialog_footer ------------------------------+ | | |
+| | | | | | | |
+| | | +----------------------------------------------------+ | | |
+| | +--------------------------------------------------------+ | |
+| +------------------------------------------------------------+ |
++----------------------------------------------------------------+
+Comments in this file will give more details about each of the above blocks.
+*/
+/* The outer container of the dialog. */
+.cke_dialog
{
+ /* Mandatory: Because the dialog.css file is loaded on demand, we avoid
+ showing an unstyled dialog by hidding it. Here, we restore its visibility. */
visibility: visible;
}
-
-/* Force Gecko to consider table as positioned */
-.cke_skin_kama table.cke_dialog.cke_browser_gecko
-{
- display:block;
-}
-
-.cke_skin_kama .cke_dialog_body
+/* The inner boundary container. */
+.cke_dialog_body
{
z-index: 1;
border: solid 1px #ddd;
@@ -24,26 +49,14 @@ body .cke_dialog
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-
- /* 'cke_dialog' element has been fixed positioned in all but IE6, while we
- need it to be positioned to hold e.g. close button. */
- position: relative;
- _position: static;
-}
-
-.cke_skin_kama .cke_dialog_tl,
-.cke_skin_kama .cke_dialog_tr,
-.cke_skin_kama .cke_dialog_tc,
-.cke_skin_kama .cke_dialog_bl,
-.cke_skin_kama .cke_dialog_br,
-.cke_skin_kama .cke_dialog_bc,
-.cke_skin_kama .cke_dialog_ml,
-.cke_skin_kama .cke_dialog_mr
+}
+/* Due to our reset we have to recover the styles of some elements. */
+.cke_dialog strong
{
- display:none;
+ font-weight: bold;
}
-
-.cke_skin_kama .cke_dialog_title
+/* The dialog title. */
+.cke_dialog_title
{
font-weight: bold;
font-size: 14px;
@@ -52,22 +65,9 @@ body .cke_dialog
position: relative;
border-bottom: 1px solid #eee;
}
-
-.cke_skin_kama .cke_browser_iequirks .cke_dialog_title,
-.cke_skin_kama .cke_browser_ie6 .cke_dialog_title,
-.cke_skin_kama .cke_browser_ie7 .cke_dialog_title
-{
- margin-bottom: 22px;
-}
-
-.cke_skin_kama .cke_browser_iequirks.cke_single_page .cke_dialog_title,
-.cke_skin_kama .cke_browser_ie6.cke_single_page .cke_dialog_title,
-.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_title
-{
- margin-bottom: 10px;
-}
-
-.cke_skin_kama .cke_dialog_contents
+/* The outer part of the dialog contants, which contains the contents body
+ and the footer. */
+.cke_dialog_contents
{
background-color: #ebebeb;
border: solid 1px #fff;
@@ -82,8 +82,16 @@ body .cke_dialog
border-top-right-radius: 5px;
margin-top: 22px;
}
-
-.cke_skin_kama .cke_dialog_footer
+/* The contents body part, which will hold all elements available in the dialog. */
+.cke_dialog_contents_body
+{
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ margin-top: 22px;
+}
+/* The dialog footer, which usually contains the "Ok" and "Cancel" buttons as
+ well as a rsizer handle. */
+.cke_dialog_footer
{
text-align: right;
background-color: #ebebeb;
@@ -96,334 +104,320 @@ body .cke_dialog
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
-
-.cke_skin_kama .cke_rtl .cke_dialog_footer
+.cke_rtl .cke_dialog_footer
{
text-align: left;
}
-
-/* tabs */
-
-.cke_skin_kama .cke_dialog_tabs
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 24px;
+}
+.cke_dialog_footer .cke_resizer_ltr
+{
+ border-right-color: #ccc;
+}
+.cke_dialog_footer .cke_resizer_rtl
+{
+ border-left-color: #ccc;
+}
+.cke_hc .cke_dialog_footer .cke_resizer
+{
+ margin-bottom: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_ltr
+{
+ margin-right: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_rtl
+{
+ margin-left: 1px;
+}
+/*
+Dialog tabs
+-------------
+Tabs are presented on some of the dialogs to make it possible to have its
+contents split on different groups, visible one after the other.
+The main element that holds the tabs can be made hidden, in case of no tabs
+available.
+The following is the visual representation of the tabs block:
++-- .cke_dialog_tabs ------------------------------------+
+| +-- .cke_dialog_tab --+ +-- .cke_dialog_tab --+ ... |
+| | | | | |
+| +---------------------+ +---------------------+ |
++--------------------------------------------------------+
+The .cke_dialog_tab_selected class is appended to the active tab.
+*/
+/* The main tabs container. */
+.cke_dialog_tabs
{
height: 23px;
display: inline-block;
- _display: block;
margin-left:10px;
margin-right:10px;
margin-top: 11px;
position: absolute;
z-index: 2;
}
-
-.cke_skin_kama .cke_browser_iequirks .cke_dialog_tabs,
-.cke_skin_kama .cke_browser_ie6 .cke_dialog_tabs,
-.cke_skin_kama .cke_browser_ie7 .cke_dialog_tabs
-{
- top: 33px;
-}
-
-.cke_skin_kama .cke_rtl .cke_dialog_tabs
+.cke_rtl .cke_dialog_tabs
{
right: 10px;
}
-
-.cke_skin_kama a.cke_dialog_tab,
-.cke_skin_kama a:link.cke_dialog_tab,
-.cke_skin_kama a:active.cke_dialog_tab,
-.cke_skin_kama a:hover.cke_dialog_tab,
-.cke_skin_kama a:visited.cke_dialog_tab
+/* A single tab (an <a> element). */
+a.cke_dialog_tab
{
background-image: url(images/sprites.png);
background-repeat: repeat-x;
background-position: 0 -1323px;
-
background-color: #ebebeb;
height: 14px;
padding: 4px 8px;
display: inline-block;
cursor: pointer;
-
}
-
-/* Gecko 1.8 layout workaround. */
-.cke_skin_kama .cke_browser_gecko18 a.cke_dialog_tab,
-.cke_skin_kama .cke_browser_gecko18 a:link.cke_dialog_tab,
-.cke_skin_kama .cke_browser_gecko18 a:active.cke_dialog_tab,
-.cke_skin_kama .cke_browser_gecko18 a:hover.cke_dialog_tab,
-.cke_skin_kama .cke_browser_gecko18 a:visited.cke_dialog_tab
-{
- display: inline;
- position: relative;
- top: 6px;
-}
-
-.cke_skin_kama a:hover.cke_dialog_tab
+a.cke_dialog_tab:hover
{
background-color: #f1f1e3;
}
-
-.cke_skin_kama .cke_hc a:hover.cke_dialog_tab
+.cke_hc a.cke_dialog_tab:hover
{
padding: 2px 6px !important;
border-width: 3px;
}
-
-.cke_skin_kama a.cke_dialog_tab_selected,
-.cke_skin_kama a:link.cke_dialog_tab_selected,
-.cke_skin_kama a:active.cke_dialog_tab_selected,
-.cke_skin_kama a:hover.cke_dialog_tab_selected,
-.cke_skin_kama a:visited.cke_dialog_tab_selected
+a.cke_dialog_tab_selected
{
background-position: 0 -1279px;
cursor: default;
}
-
-.cke_skin_kama .cke_hc a.cke_dialog_tab_selected,
-.cke_skin_kama .cke_hc a:link.cke_dialog_tab_selected,
-.cke_skin_kama .cke_hc a:active.cke_dialog_tab_selected,
-.cke_skin_kama .cke_hc a:hover.cke_dialog_tab_selected,
-.cke_skin_kama .cke_hc a:visited.cke_dialog_tab_selected
+.cke_hc a.cke_dialog_tab_selected
{
padding: 2px 6px !important;
border-width: 3px;
}
-
-/* single_page */
-
-.cke_skin_kama .cke_single_page .cke_dialog_tabs
+/* The .cke_single_page class is appended to the dialog outer element in case
+ of dialogs that has no tabs. */
+.cke_single_page .cke_dialog_tabs
{
display: none;
}
-
-.cke_skin_kama .cke_single_page .cke_dialog_contents
+.cke_single_page .cke_dialog_contents
{
padding-top: 5px;
margin-top: 10px;
}
-
-/* IE7 + IE quirks */
-.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_contents
+/* The close button at the top of the dialog. */
+.cke_dialog_close_button
{
- margin-top: 0px;
- position: relative;
- margin-bottom: -22px;
+ background-image: url(images/sprites.png);
+ background-repeat: no-repeat;
+ background-position: 0 -1022px;
+ position: absolute;
+ cursor: pointer;
+ text-align: center;
+ height: 20px;
+ width: 20px;
+ top: 5px;
+}
+.cke_dialog_close_button span
+{
+ display: none;
+}
+.cke_dialog_close_button:hover
+{
+ background-position: 0 -1045px;
+}
+.cke_ltr .cke_dialog_close_button
+{
+ right: 10px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 7px;
}
-
-.cke_skin_kama .cke_dialog_ui_vbox table,
-.cke_skin_kama .cke_dialog_ui_hbox table
+/*
+Dialog UI Elements
+--------------------
+The remaining styles define the UI elements that can be used inside dialog
+contents.
+Most of the UI elements on dialogs contain a textual label. All of them share
+the same labelling structure, having the label text inside an element with
+.cke_dialog_ui_labeled_label and the element specific part inside the
+.cke_dialog_ui_labeled_content class.
+*/
+/* If an element is supposed to be disabled, the .cke_disabled class is
+ appended to it. */
+div.cke_disabled .cke_dialog_ui_labeled_content *
+{
+ background-color : #a0a0a0;
+ cursor : default;
+}
+/*
+Horizontal-Box and Vertical-Box
+---------------------------------
+There are basic layou element used by the editor to properly align elements in
+the dialog. They're basically tables that have each cell filled by UI elements.
+The following is the visual representation of a H-Box:
++-- .cke_dialog_ui_hbox --------------------------------------------------------------------------------+
+| +-- .cke_dialog_ui_hbox_first --+ +-- .cke_dialog_ui_hbox_child --+ +-- .cke_dialog_ui_hbox_last --+ |
+| + + + + + + |
+| +-------------------------------+ +-------------------------------+ +------------------------------+ |
++-------------------------------------------------------------------------------------------------------+
+It is possible to have nested V/H-Boxes.
+*/
+.cke_dialog_ui_vbox table,
+.cke_dialog_ui_hbox table
{
margin: auto;
}
-
-.cke_skin_kama .cke_dialog_ui_vbox_child
+.cke_dialog_ui_vbox_child
{
padding: 5px 0px;
}
-
-.cke_skin_kama input.cke_dialog_ui_input_text,
-.cke_skin_kama input.cke_dialog_ui_input_password
+.cke_dialog_ui_hbox
{
- background-color: white;
- border: none;
- padding: 0px;
width: 100%;
- height: 14px;
}
-
-.cke_skin_kama div.cke_dialog_ui_input_text,
-.cke_skin_kama div.cke_dialog_ui_input_password
+.cke_dialog_ui_hbox_first,
+.cke_dialog_ui_hbox_child,
+.cke_dialog_ui_hbox_last
{
- background-color: white;
- border: 1px solid #a0a0a0;
- padding: 1px 0px;
-}
-
-.cke_skin_kama .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text {
- padding-right: 1px;
+ vertical-align: top;
}
-
-.cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,
-.cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password
+.cke_ltr .cke_dialog_ui_hbox_first,
+.cke_ltr .cke_dialog_ui_hbox_child
{
- border-width: 0px;
+ padding-right: 10px;
}
-
-.cke_skin_kama .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,
-.cke_skin_kama .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_password
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_child
{
- border-width: 1px;
+ padding-left: 10px;
}
-
-.cke_skin_kama textarea.cke_dialog_ui_input_textarea
+/*
+Text Input
+------------
+The basic text field to input text.
++-- .cke_dialog_ui_text --------------------------+
+| +-- .cke_dialog_ui_labeled_label ------------+ |
+| | | |
+| +--------------------------------------------+ |
+| +-- .cke_dialog_ui_labeled_content ----------+ |
+| | +-- div.cke_dialog_ui_input_text --------+ | |
+| | | +-- input.cke_dialog_ui_input_text --+ | | |
+| | | | | | | |
+| | | +------------------------------------+ | | |
+| | +----------------------------------------+ | |
+| +--------------------------------------------+ |
++-------------------------------------------------+
+*/
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
{
background-color: white;
border: none;
padding: 0px;
width: 100%;
- /*
- * IE6 BUG: Scrollbars in textareas can overflow even if the outer DIV is set to overflow:hidden.
- * So leave 1% width for the scrollbar. In most situations the 1% isn't noticeable by users.
- */
- _width: 99%;
- overflow: auto;
- resize: none;
+ height: 14px;
}
-
-.cke_skin_kama div.cke_dialog_ui_input_textarea
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
{
background-color: white;
border: 1px solid #a0a0a0;
padding: 1px 0px;
}
-
-.cke_skin_kama div.cke_disabled .cke_dialog_ui_labeled_content *
-{
- background-color : #a0a0a0;
- cursor : default;
-}
-
-.cke_skin_kama .cke_dialog_ui_hbox
+/*
+Textarea
+----------
+The textarea field to input larger text.
++-- .cke_dialog_ui_textarea --------------------------+
+| +-- .cke_dialog_ui_labeled_label ----------------+ |
+| | | |
+| +------------------------------------------------+ |
+| +-- .cke_dialog_ui_labeled_content --------------+ |
+| | +-- div.cke_dialog_ui_input_textarea --------+ | |
+| | | +-- input.cke_dialog_ui_input_textarea --+ | | |
+| | | | | | | |
+| | | +----------------------------------------+ | | |
+| | +--------------------------------------------+ | |
+| +------------------------------------------------+ |
++-----------------------------------------------------+
+*/
+textarea.cke_dialog_ui_input_textarea
{
+ background-color: white;
+ border: none;
+ padding: 0px;
width: 100%;
+ overflow: auto;
+ resize: none;
}
-
-.cke_skin_kama .cke_dialog_ui_hbox_first,
-.cke_skin_kama .cke_dialog_ui_hbox_child,
-.cke_skin_kama .cke_dialog_ui_hbox_last
-{
- vertical-align: top;
-}
-
-.cke_skin_kama .cke_ltr .cke_dialog_ui_hbox_first,
-.cke_skin_kama .cke_ltr .cke_dialog_ui_hbox_child
-{
- padding-right: 10px;
-}
-
-.cke_skin_kama .cke_rtl .cke_dialog_ui_hbox_first,
-.cke_skin_kama .cke_rtl .cke_dialog_ui_hbox_child
+div.cke_dialog_ui_input_textarea
{
- padding-left: 10px;
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
}
-
-/* button */
-
-.cke_skin_kama a.cke_dialog_ui_button
+/*
+Button
+--------
+The buttons used in the dialog footer or inside the contents.
++-- a.cke_dialog_ui_button -----------+
+| +-- span.cke_dialog_ui_button --+ |
+| | | |
+| +-------------------------------+ |
++-------------------------------------+
+*/
+/* The outer part of the button. */
+a.cke_dialog_ui_button
{
border-collapse: separate;
cursor: default;
-
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
background: transparent url(images/sprites.png) repeat-x scroll 0 -1069px;
- _background: none;
- padding: 5px 0;
- text-align: center;
-}
-
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button
-{
- padding: 0;
-}
-
-/* IE6 buttons. */
-.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button span
-{
- width: 70px;
-}
-
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span
-{
- width: 100px;
-}
-
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button span
-{
- padding: 5px 15px;
text-align: center;
- color: #3b3b1f;
- background: #53D9F0 none;
display: inline-block;
- cursor: default;
-}
-/* END IE6 buttons. */
-
-.cke_skin_kama .cke_browser_webkit a.cke_dialog_ui_button span.cke_dialog_ui_button
-{
- margin: 0;
-}
-.cke_skin_kama .cke_browser_webkit a.cke_dialog_ui_button
-{
- display:inline-block;
- padding-top: 3px;
- padding-bottom: 2px;
- margin: 2px 0;
}
-
-.cke_skin_kama a.cke_dialog_ui_button_ok span,
-.cke_skin_kama a.cke_dialog_ui_button_cancel span
+/* The inner part of the button. */
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
{
- padding-right: 20px;
- padding-left: 20px;
-}
-
-.cke_skin_kama a.cke_dialog_ui_button_ok
-{
- background-position: 0 -1143px;
-}
-
-.cke_skin_kama a.cke_dialog_ui_button_ok span
-{
- background: transparent url(images/sprites.png) no-repeat scroll right -1219px;
-}
-
-.cke_skin_kama .cke_rtl a.cke_dialog_ui_button_ok span
-{
- background-position: left -1219px;
+ width: 60px;
+ padding: 5px 20px 5px;
+ display: inline-block;
}
-
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_ok span,
-.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_ok span
+/* Special class appended to the Ok button. */
+a.cke_dialog_ui_button_ok
{
- background-color: #B8E834;
- margin-right: 0;
+ background-position: 0 -1144px;
}
-
-.cke_skin_kama a.cke_dialog_ui_button_cancel
+a.cke_dialog_ui_button_ok span
{
- background-position: 0 -1104px;
+ background: transparent url(images/sprites.png) no-repeat scroll right -1216px;
}
-
-.cke_skin_kama a.cke_dialog_ui_button_cancel span
+.cke_rtl a.cke_dialog_ui_button_ok span
{
- background: transparent url(images/sprites.png) no-repeat scroll right -1245px;
+ background-position: left -1216px;
}
-
-.cke_skin_kama .cke_rtl a.cke_dialog_ui_button_cancel span
+/* Special class appended to the Cancel button. */
+a.cke_dialog_ui_button_cancel
{
- background-position: left -1245px;
+ background-position: 0 -1105px;
}
-
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_cancel span,
-.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_cancel span
+a.cke_dialog_ui_button_cancel span
{
- background-color: #F65D20;
+ background: transparent url(images/sprites.png) no-repeat scroll right -1242px;
}
-
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_cancel span,
-.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_cancel span,
-.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_ok span,
-.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_ok span
+.cke_rtl a.cke_dialog_ui_button_cancel span
{
- background-image: none;
+ background-position: left -1242px;
}
-
-.cke_skin_kama span.cke_dialog_ui_button
+span.cke_dialog_ui_button
{
padding: 2px 10px;
text-align: center;
@@ -431,210 +425,67 @@ body .cke_dialog
display: inline-block;
cursor: default;
min-width: 60px;
- +margin: 2px 0; /* IE7 */
-}
-
-/* Gecko 1.8 does not support display: inline-block */
-.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button
-{
- display: block;
}
-
-.cke_skin_kama a.cke_dialog_ui_button span.cke_disabled
+/* .cke_disabled is appended to disabled buttons */
+a.cke_dialog_ui_button span.cke_disabled
{
border: #898980 1px solid;
color: #5e5e55;
background-color: #c5c5b3;
}
-
-.cke_skin_kama a:hover.cke_dialog_ui_button,
-.cke_skin_kama a:focus.cke_dialog_ui_button,
-.cke_skin_kama a:active.cke_dialog_ui_button
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
{
- background-position: 0 -1179px;
+ background-position: 0 -1180px;
}
-
-.cke_skin_kama .cke_hc a:hover.cke_dialog_ui_button,
-.cke_skin_kama .cke_hc a:focus.cke_dialog_ui_button,
-.cke_skin_kama .cke_hc a:active.cke_dialog_ui_button
+.cke_hc a.cke_dialog_ui_button:hover,
+.cke_hc a.cke_dialog_ui_button:focus,
+.cke_hc a.cke_dialog_ui_button:active
{
border-width: 2px;
}
-
-/* Skip hover effect on IE6 */
-.cke_skin_kama .cke_browser_iequirks a:hover.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_iequirks a:focus.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_iequirks a:active.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_ie6 a:hover.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_ie6 a:focus.cke_dialog_ui_button span,
-.cke_skin_kama .cke_browser_ie6 a:active.cke_dialog_ui_button span
-{
- background-image: none;
- background: #F7A922;
-}
-
-.cke_skin_kama .cke_dialog_footer_buttons
+/* A special container that holds the footer buttons. */
+.cke_dialog_footer_buttons
{
display: inline-table;
- margin-right: 12px;
- margin-left: 12px;
+ margin: 6px 12px 0 12px;
width: auto;
position: relative;
}
-
-/* Gecko 1.8 does not support for display: inline-table */
-.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons
-{
- display: inline;
-}
-
-.cke_skin_kama .cke_dialog_footer_buttons span.cke_dialog_ui_button
-{
- margin: 7px 0;
- width: 60px;
- text-align: center;
-}
-
-/* Firefox2 buttons */
-.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons a.cke_dialog_ui_button
-{
- display: block;
- padding: 0;
-}
-
-.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button
+.cke_dialog_footer_buttons span.cke_dialog_ui_button
{
- padding-bottom: 5px;
- padding-top: 6px;
- margin-bottom: 0;
-}
-
-.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons .cke_dialog_ui_button_ok .cke_dialog_ui_button
-{
- background-position: right -1214px;
-}
-
-.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons .cke_dialog_ui_button_cancel .cke_dialog_ui_button
-{
- background-position: right -1242px;
-}
-/* END Firefox2 buttons */
-
-.cke_skin_kama strong
-{
- font-weight: bold;
-}
-
-/* close_button */
-
-.cke_skin_kama .cke_dialog .cke_dialog_body .cke_dialog_close_button
-{
- background-image: url(images/sprites.png);
- background-repeat: no-repeat;
- background-position: 0 -1022px;
- position: absolute;
- cursor: pointer;
text-align: center;
- height: 20px;
- width: 20px;
- top: 5px;
- /* IE 6 */
- _background-image: url(images/sprites_ie6.png);
-}
-
-.cke_skin_kama .cke_dialog_close_button span
-{
- display: none;
-}
-
-.cke_skin_kama .cke_dialog_close_button:hover
-{
- background-position: 0 -1045px;
-}
-
-.cke_skin_kama .cke_ltr .cke_dialog_close_button
-{
- right: 10px;
-}
-
-.cke_skin_kama .cke_browser_ie8.cke_rtl .cke_dialog_close_button
-{
- left: 8px;
-}
-
-.cke_skin_kama .cke_rtl .cke_dialog_close_button
-{
- left: 10px;
-}
-
-.cke_skin_kama .cke_browser_ie7.cke_rtl .cke_dialog_close_button
-{
- left: 16px;
- top: 0;
}
-
-/*.cke_skin_kama .cke_browser_ie6.cke_rtl .cke_dialog_close_button
-{
- left: 16px;
-}*/
-
-/* IE7 + IE quirks */
-.cke_skin_kama .cke_browser_ie7.cke_rtl .cke_dialog_close_button
-{
- position: absolute;
- left: 10px;
- top: 5px;
-}
-
-/* IE7 + IE quirks */
-.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_footer
-{
- margin-top: 22px;
-}
-
-.cke_skin_kama .cke_browser_ie6 .cke_dialog_close_button,
-.cke_skin_kama .cke_browser_iequirks .cke_dialog_close_button
-{
- top: 7px;
-}
-
-/* IE7 + IE quirks */
-.cke_skin_kama .cke_browser_ie7.cke_ltr .cke_dialog_close_button
-{
- margin-top: 0;
-}
-
-.cke_skin_kama .cke_dialog_ui_input_select
+/*
+Styles for other dialog element types.
+*/
+.cke_dialog_ui_input_select
{
border: 1px solid #a0a0a0;
background-color: white;
}
-
-.cke_skin_kama .cke_dialog_ui_input_file
+.cke_dialog_ui_input_file
{
width: 100%;
height: 25px;
}
-
/*
* Some utility CSS classes for dialog authors.
*/
-.cke_skin_kama .cke_dialog .cke_dark_background
+.cke_dialog .cke_dark_background
{
background-color: #eaead1;
}
-
-.cke_skin_kama .cke_dialog .cke_hand
+.cke_dialog .cke_light_background
{
- cursor: pointer;
+ background-color: #ffffbe;
}
-
-.cke_skin_kama .cke_dialog .cke_centered
+.cke_dialog .cke_centered
{
text-align: center;
}
-
-.cke_skin_kama .cke_dialog a.cke_btn_reset
+.cke_dialog a.cke_btn_reset
{
float: right;
background-position: 0 -32px;
@@ -645,14 +496,12 @@ body .cke_dialog
border: 1px none;
font-size: 1px;
}
-
-.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_reset
+.cke_rtl .cke_dialog a.cke_btn_reset
{
float: left;
}
-
-.cke_skin_kama .cke_dialog a.cke_btn_locked,
-.cke_skin_kama .cke_dialog a.cke_btn_unlocked
+.cke_dialog a.cke_btn_locked,
+.cke_dialog a.cke_btn_unlocked
{
float: left;
background-position: 0 0;
@@ -663,46 +512,42 @@ body .cke_dialog
border: none 1px;
font-size: 1px;
}
-
-.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_locked,
-.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_unlocked
+.cke_dialog a.cke_btn_locked .cke_icon
+{
+ display:none;
+}
+.cke_rtl .cke_dialog a.cke_btn_locked,
+.cke_rtl .cke_dialog a.cke_btn_unlocked
{
float: right;
}
-
-.cke_skin_kama .cke_dialog a.cke_btn_unlocked
+.cke_dialog a.cke_btn_unlocked
{
background-position: 0 -16px;
background-image: url(images/mini.gif);
}
-
-.cke_skin_kama .cke_dialog .cke_btn_over
+.cke_dialog .cke_btn_over
{
border: outset 1px;
cursor: pointer;
}
-
-.cke_skin_kama .cke_dialog .ImagePreviewBox
+/*
+The rest of the file contains style used on several common plugins. There is a
+tendency that these will be moved to the plugins code in the future.
+*/
+.cke_dialog .ImagePreviewBox
{
border : 2px ridge black;
overflow : scroll;
- height : 160px;
- width : 230px;
+ height : 200px;
+ width : 300px;
padding : 2px;
background-color : white;
}
-
-.cke_skin_kama .cke_dialog .ImagePreviewBox table td {
+.cke_dialog .ImagePreviewBox table td {
white-space: normal;
}
-
-/* Fix iframedialog's height doesn't stretch to 100% #4863.*/
-.cke_skin_kama .cke_browser_iequirks .cke_dialog_page_contents
-{
- _position: absolute;
-}
-
-.cke_skin_kama .cke_dialog .ImagePreviewLoader
+.cke_dialog .ImagePreviewLoader
{
position: absolute;
white-space : normal;
@@ -713,11 +558,9 @@ body .cke_dialog
padding : 2px;
opacity : 0.9;
filter : alpha(opacity=90);
-
background-color : #e4e4e4;
}
-
-.cke_skin_kama .cke_dialog .FlashPreviewBox
+.cke_dialog .FlashPreviewBox
{
white-space : normal;
border : 2px ridge black;
@@ -727,73 +570,52 @@ body .cke_dialog
padding : 2px;
background-color : white;
}
-
-.cke_skin_kama .cke_dialog .cke_pastetext
+.cke_dialog .cke_pastetext
{
width: 346px;
height: 170px;
}
-
-.cke_skin_kama .cke_dialog .cke_pastetext textarea
+.cke_dialog .cke_pastetext textarea
{
width: 340px;
height: 170px;
resize: none;
}
-
-.cke_skin_kama .cke_dialog iframe.cke_pasteframe
+.cke_dialog iframe.cke_pasteframe
{
width: 346px;
height: 130px;
background-color: white;
border: 1px solid black;
}
-
-.cke_skin_kama .cke_dialog .cke_dark_background
-{
- text-align : center;
- background-color: #eaead1;
- font-size : 14px;
-}
-
-.cke_skin_kama .cke_dialog .cke_light_background
-{
- text-align : center;
- background-color: #ffffbe;
-}
-
-.cke_skin_kama .cke_dialog .cke_hand
+.cke_dialog .cke_hand
{
cursor: pointer;
}
-
-.cke_skin_kama .cke_disabled
+.cke_disabled
{
color: #a0a0a0;
}
-
-/* High Contrast Mode */
-
-.cke_skin_kama .cke_hc .cke_dialog_title,
-.cke_skin_kama .cke_hc .cke_dialog_tabs,
-.cke_skin_kama .cke_hc .cke_dialog_contents,
-.cke_skin_kama .cke_hc .cke_dialog_footer
+/*
+High Contrast Mode.
+*/
+.cke_hc .cke_dialog_title,
+.cke_hc .cke_dialog_tabs,
+.cke_hc .cke_dialog_contents,
+.cke_hc .cke_dialog_footer
{
border-left: 1px solid;
border-right: 1px solid;
}
-
-.cke_skin_kama .cke_hc .cke_dialog_title
+.cke_hc .cke_dialog_title
{
border-top: 1px solid;
}
-
-.cke_skin_kama .cke_hc .cke_dialog_footer
+.cke_hc .cke_dialog_footer
{
border-bottom: 1px solid;
}
-
-.cke_skin_kama .cke_hc .cke_dialog_close_button span
+.cke_hc .cke_dialog_close_button span
{
display: inline;
cursor: pointer;
@@ -801,56 +623,97 @@ body .cke_dialog
position: relative;
top: 3px;
}
-
-.cke_skin_kama .cke_dialog_body .cke_label
+.cke_dialog_body .cke_label
{
display: none;
}
-
-.cke_skin_kama .cke_dialog_body label.cke_required
+.cke_dialog_body label
+{
+ display: inline;
+ margin-bottom: auto;
+ cursor: default;
+}
+.cke_dialog_body label.cke_required
{
font-weight: bold;
}
-
-.cke_skin_kama .cke_hc .cke_dialog_body .cke_label
+.cke_hc .cke_dialog_body .cke_label
{
display: inline;
+ cursor: inherit;
}
-
-.cke_skin_kama .cke_hc a.cke_btn_locked,
-.cke_skin_kama .cke_hc a.cke_btn_unlocked,
-.cke_skin_kama .cke_hc a.cke_btn_reset
+.cke_hc a.cke_btn_locked,
+.cke_hc a.cke_btn_unlocked,
+.cke_hc a.cke_btn_reset
{
border-style: solid;
float: left;
width: auto;
height: auto;
+ padding: 0 2px;
}
-
-.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_locked,
-.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_unlocked,
-.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_reset
+.cke_rtl.cke_hc a.cke_btn_locked,
+.cke_rtl.cke_hc a.cke_btn_unlocked,
+.cke_rtl.cke_hc a.cke_btn_reset
{
float: right;
}
-
-.cke_skin_kama a.cke_smile img
+.cke_hc a.cke_btn_locked .cke_icon
+{
+ display:inline;
+}
+a.cke_smile img
{
/* IE6 does not support transparent borders */
border: 2px solid #eaead1;
}
-
-.cke_skin_kama a.cke_smile:focus img,
-.cke_skin_kama a.cke_smile:active img,
-.cke_skin_kama a.cke_smile:hover img
+a.cke_smile:focus img,
+a.cke_smile:active img,
+a.cke_smile:hover img
{
border-color: #C7C78F;
}
-
-.cke_skin_kama .cke_hc .cke_dialog_tabs a,
-.cke_skin_kama .cke_hc .cke_dialog_footer a
+.cke_hc .cke_dialog_tabs a,
+.cke_hc .cke_dialog_footer a
{
opacity: 1.0;
filter: alpha(opacity=100);
border: 1px solid white;
}
+.cke_hc .ImagePreviewBox
+{
+ width: 260px;
+}
+/**
+ * Styles specific to "cellProperties" dialog.
+ */
+.cke_dialog_contents a.colorChooser
+{
+ display:block;
+ margin-top:6px;
+ margin-left: 10px;
+ width: 80px;
+}
+.cke_rtl .cke_dialog_contents a.colorChooser
+{
+ margin-right: 10px;
+}
+/* Compensate focus outline for some input elements. (#6200) */
+.cke_dialog_ui_checkbox_input:focus,
+.cke_dialog_ui_radio_input:focus,
+.cke_dialog_ui_input_select:focus,
+.cke_btn_over
+{
+ outline: 1px dotted #696969;
+}
+.cke_iframe_shim
+{
+ display:block;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ filter:alpha(opacity=0);
+ width:100%;
+ height:100%;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/dialog_ie.css b/devel/third-party/ckeditor/skins/kama/dialog_ie.css
new file mode 100644
index 0000000..4c5d08e
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/dialog_ie.css
@@ -0,0 +1,593 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+dialog_ie.css
+===============
+This file contains styles to used by all versions of Internet Explorer only.
+*/
+/* Base it on dialog.css, overriding it with styles defined in this file. */
+.cke_dialog
+{
+ visibility: visible;
+}
+.cke_dialog_body
+{
+ z-index: 1;
+ border: solid 1px #ddd;
+ padding: 5px;
+ background-color: #fff;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.cke_dialog strong
+{
+ font-weight: bold;
+}
+.cke_dialog_title
+{
+ font-weight: bold;
+ font-size: 14px;
+ padding: 3px 3px 8px;
+ cursor: move;
+ position: relative;
+ border-bottom: 1px solid #eee;
+}
+.cke_dialog_contents
+{
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ -moz-border-radius-topleft: 5px;
+ -moz-border-radius-topright: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -webkit-border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ margin-top: 22px;
+}
+.cke_dialog_contents_body
+{
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ margin-top: 22px;
+}
+.cke_dialog_footer
+{
+ text-align: right;
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+.cke_rtl .cke_dialog_footer
+{
+ text-align: left;
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 24px;
+}
+.cke_dialog_footer .cke_resizer_ltr
+{
+ border-right-color: #ccc;
+}
+.cke_dialog_footer .cke_resizer_rtl
+{
+ border-left-color: #ccc;
+}
+.cke_hc .cke_dialog_footer .cke_resizer
+{
+ margin-bottom: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_ltr
+{
+ margin-right: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_rtl
+{
+ margin-left: 1px;
+}
+.cke_dialog_tabs
+{
+ height: 23px;
+ display: inline-block;
+ margin-left:10px;
+ margin-right:10px;
+ margin-top: 11px;
+ position: absolute;
+ z-index: 2;
+}
+.cke_rtl .cke_dialog_tabs
+{
+ right: 10px;
+}
+a.cke_dialog_tab
+{
+ background-image: url(images/sprites.png);
+ background-repeat: repeat-x;
+ background-position: 0 -1323px;
+ background-color: #ebebeb;
+ height: 14px;
+ padding: 4px 8px;
+ display: inline-block;
+ cursor: pointer;
+}
+a.cke_dialog_tab:hover
+{
+ background-color: #f1f1e3;
+}
+.cke_hc a.cke_dialog_tab:hover
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+a.cke_dialog_tab_selected
+{
+ background-position: 0 -1279px;
+ cursor: default;
+}
+.cke_hc a.cke_dialog_tab_selected
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+.cke_single_page .cke_dialog_tabs
+{
+ display: none;
+}
+.cke_single_page .cke_dialog_contents
+{
+ padding-top: 5px;
+ margin-top: 10px;
+}
+.cke_dialog_close_button
+{
+ background-image: url(images/sprites.png);
+ background-repeat: no-repeat;
+ background-position: 0 -1022px;
+ position: absolute;
+ cursor: pointer;
+ text-align: center;
+ height: 20px;
+ width: 20px;
+ top: 5px;
+}
+.cke_dialog_close_button span
+{
+ display: none;
+}
+.cke_dialog_close_button:hover
+{
+ background-position: 0 -1045px;
+}
+.cke_ltr .cke_dialog_close_button
+{
+ right: 10px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 7px;
+}
+div.cke_disabled .cke_dialog_ui_labeled_content *
+{
+ background-color : #a0a0a0;
+ cursor : default;
+}
+.cke_dialog_ui_vbox table,
+.cke_dialog_ui_hbox table
+{
+ margin: auto;
+}
+.cke_dialog_ui_vbox_child
+{
+ padding: 5px 0px;
+}
+.cke_dialog_ui_hbox
+{
+ width: 100%;
+}
+.cke_dialog_ui_hbox_first,
+.cke_dialog_ui_hbox_child,
+.cke_dialog_ui_hbox_last
+{
+ vertical-align: top;
+}
+.cke_ltr .cke_dialog_ui_hbox_first,
+.cke_ltr .cke_dialog_ui_hbox_child
+{
+ padding-right: 10px;
+}
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_child
+{
+ padding-left: 10px;
+}
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 14px;
+}
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+textarea.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ overflow: auto;
+ resize: none;
+}
+div.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+a.cke_dialog_ui_button
+{
+ border-collapse: separate;
+ cursor: default;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: transparent url(images/sprites.png) repeat-x scroll 0 -1069px;
+ text-align: center;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
+{
+ width: 60px;
+ padding: 5px 20px 5px;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok
+{
+ background-position: 0 -1144px;
+}
+a.cke_dialog_ui_button_ok span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1216px;
+}
+.cke_rtl a.cke_dialog_ui_button_ok span
+{
+ background-position: left -1216px;
+}
+a.cke_dialog_ui_button_cancel
+{
+ background-position: 0 -1105px;
+}
+a.cke_dialog_ui_button_cancel span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1242px;
+}
+.cke_rtl a.cke_dialog_ui_button_cancel span
+{
+ background-position: left -1242px;
+}
+span.cke_dialog_ui_button
+{
+ padding: 2px 10px;
+ text-align: center;
+ color: #222;
+ display: inline-block;
+ cursor: default;
+ min-width: 60px;
+}
+a.cke_dialog_ui_button span.cke_disabled
+{
+ border: #898980 1px solid;
+ color: #5e5e55;
+ background-color: #c5c5b3;
+}
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
+{
+ background-position: 0 -1180px;
+}
+.cke_hc a.cke_dialog_ui_button:hover,
+.cke_hc a.cke_dialog_ui_button:focus,
+.cke_hc a.cke_dialog_ui_button:active
+{
+ border-width: 2px;
+}
+.cke_dialog_footer_buttons
+{
+ display: inline-table;
+ margin: 6px 12px 0 12px;
+ width: auto;
+ position: relative;
+}
+.cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+ text-align: center;
+}
+.cke_dialog_ui_input_select
+{
+ border: 1px solid #a0a0a0;
+ background-color: white;
+}
+.cke_dialog_ui_input_file
+{
+ width: 100%;
+ height: 25px;
+}
+.cke_dialog .cke_dark_background
+{
+ background-color: #eaead1;
+}
+.cke_dialog .cke_light_background
+{
+ background-color: #ffffbe;
+}
+.cke_dialog .cke_centered
+{
+ text-align: center;
+}
+.cke_dialog a.cke_btn_reset
+{
+ float: right;
+ background-position: 0 -32px;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: 1px none;
+ font-size: 1px;
+}
+.cke_rtl .cke_dialog a.cke_btn_reset
+{
+ float: left;
+}
+.cke_dialog a.cke_btn_locked,
+.cke_dialog a.cke_btn_unlocked
+{
+ float: left;
+ background-position: 0 0;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: none 1px;
+ font-size: 1px;
+}
+.cke_dialog a.cke_btn_locked .cke_icon
+{
+ display:none;
+}
+.cke_rtl .cke_dialog a.cke_btn_locked,
+.cke_rtl .cke_dialog a.cke_btn_unlocked
+{
+ float: right;
+}
+.cke_dialog a.cke_btn_unlocked
+{
+ background-position: 0 -16px;
+ background-image: url(images/mini.gif);
+}
+.cke_dialog .cke_btn_over
+{
+ border: outset 1px;
+ cursor: pointer;
+}
+.cke_dialog .ImagePreviewBox
+{
+ border : 2px ridge black;
+ overflow : scroll;
+ height : 200px;
+ width : 300px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .ImagePreviewBox table td {
+ white-space: normal;
+}
+.cke_dialog .ImagePreviewLoader
+{
+ position: absolute;
+ white-space : normal;
+ overflow : hidden;
+ height : 160px;
+ width : 230px;
+ margin : 2px;
+ padding : 2px;
+ opacity : 0.9;
+ filter : alpha(opacity=90);
+ background-color : #e4e4e4;
+}
+.cke_dialog .FlashPreviewBox
+{
+ white-space : normal;
+ border : 2px ridge black;
+ overflow : auto;
+ height : 160px;
+ width : 390px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .cke_pastetext
+{
+ width: 346px;
+ height: 170px;
+}
+.cke_dialog .cke_pastetext textarea
+{
+ width: 340px;
+ height: 170px;
+ resize: none;
+}
+.cke_dialog iframe.cke_pasteframe
+{
+ width: 346px;
+ height: 130px;
+ background-color: white;
+ border: 1px solid black;
+}
+.cke_dialog .cke_hand
+{
+ cursor: pointer;
+}
+.cke_disabled
+{
+ color: #a0a0a0;
+}
+.cke_hc .cke_dialog_title,
+.cke_hc .cke_dialog_tabs,
+.cke_hc .cke_dialog_contents,
+.cke_hc .cke_dialog_footer
+{
+ border-left: 1px solid;
+ border-right: 1px solid;
+}
+.cke_hc .cke_dialog_title
+{
+ border-top: 1px solid;
+}
+.cke_hc .cke_dialog_footer
+{
+ border-bottom: 1px solid;
+}
+.cke_hc .cke_dialog_close_button span
+{
+ display: inline;
+ cursor: pointer;
+ font-weight: bold;
+ position: relative;
+ top: 3px;
+}
+.cke_dialog_body .cke_label
+{
+ display: none;
+}
+.cke_dialog_body label
+{
+ display: inline;
+ margin-bottom: auto;
+ cursor: default;
+}
+.cke_dialog_body label.cke_required
+{
+ font-weight: bold;
+}
+.cke_hc .cke_dialog_body .cke_label
+{
+ display: inline;
+ cursor: inherit;
+}
+.cke_hc a.cke_btn_locked,
+.cke_hc a.cke_btn_unlocked,
+.cke_hc a.cke_btn_reset
+{
+ border-style: solid;
+ float: left;
+ width: auto;
+ height: auto;
+ padding: 0 2px;
+}
+.cke_rtl.cke_hc a.cke_btn_locked,
+.cke_rtl.cke_hc a.cke_btn_unlocked,
+.cke_rtl.cke_hc a.cke_btn_reset
+{
+ float: right;
+}
+.cke_hc a.cke_btn_locked .cke_icon
+{
+ display:inline;
+}
+a.cke_smile img
+{
+ border: 2px solid #eaead1;
+}
+a.cke_smile:focus img,
+a.cke_smile:active img,
+a.cke_smile:hover img
+{
+ border-color: #C7C78F;
+}
+.cke_hc .cke_dialog_tabs a,
+.cke_hc .cke_dialog_footer a
+{
+ opacity: 1.0;
+ filter: alpha(opacity=100);
+ border: 1px solid white;
+}
+.cke_hc .ImagePreviewBox
+{
+ width: 260px;
+}
+.cke_dialog_contents a.colorChooser
+{
+ display:block;
+ margin-top:6px;
+ margin-left: 10px;
+ width: 80px;
+}
+.cke_rtl .cke_dialog_contents a.colorChooser
+{
+ margin-right: 10px;
+}
+.cke_dialog_ui_checkbox_input:focus,
+.cke_dialog_ui_radio_input:focus,
+.cke_dialog_ui_input_select:focus,
+.cke_btn_over
+{
+ outline: 1px dotted #696969;
+}
+.cke_iframe_shim
+{
+ display:block;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ filter:alpha(opacity=0);
+ width:100%;
+ height:100%;
+}
+/* IE doesn't leave enough padding in text input for cursor to blink in RTL. (#6087) */
+.cke_rtl input.cke_dialog_ui_input_text,
+.cke_rtl input.cke_dialog_ui_input_password
+{
+ padding-right: 2px;
+}
+/* Compensate the padding added above on container. */
+.cke_rtl div.cke_dialog_ui_input_text,
+.cke_rtl div.cke_dialog_ui_input_password
+{
+ padding-left: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text {
+ padding-right: 1px;
+}
+.cke_rtl .cke_dialog_ui_vbox_child,
+.cke_rtl .cke_dialog_ui_hbox_child,
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_last
+{
+ padding-right: 2px !important;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/dialog_ie7.css b/devel/third-party/ckeditor/skins/kama/dialog_ie7.css
new file mode 100644
index 0000000..7ae5e23
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/dialog_ie7.css
@@ -0,0 +1,658 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+dialog_ie7.css
+===============
+This file contains styles to used by Internet Explorer 7 only.
+*/
+/* Base it on dialog_ie.css, overriding it with styles defined in this file. */
+.cke_dialog
+{
+ visibility: visible;
+}
+.cke_dialog_body
+{
+ z-index: 1;
+ border: solid 1px #ddd;
+ padding: 5px;
+ background-color: #fff;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.cke_dialog strong
+{
+ font-weight: bold;
+}
+.cke_dialog_title
+{
+ font-weight: bold;
+ font-size: 14px;
+ padding: 3px 3px 8px;
+ cursor: move;
+ position: relative;
+ border-bottom: 1px solid #eee;
+}
+.cke_dialog_contents
+{
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ -moz-border-radius-topleft: 5px;
+ -moz-border-radius-topright: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -webkit-border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ margin-top: 22px;
+}
+.cke_dialog_contents_body
+{
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ margin-top: 22px;
+}
+.cke_dialog_footer
+{
+ text-align: right;
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+.cke_rtl .cke_dialog_footer
+{
+ text-align: left;
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 24px;
+}
+.cke_dialog_footer .cke_resizer_ltr
+{
+ border-right-color: #ccc;
+}
+.cke_dialog_footer .cke_resizer_rtl
+{
+ border-left-color: #ccc;
+}
+.cke_hc .cke_dialog_footer .cke_resizer
+{
+ margin-bottom: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_ltr
+{
+ margin-right: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_rtl
+{
+ margin-left: 1px;
+}
+.cke_dialog_tabs
+{
+ height: 23px;
+ display: inline-block;
+ margin-left:10px;
+ margin-right:10px;
+ margin-top: 11px;
+ position: absolute;
+ z-index: 2;
+}
+.cke_rtl .cke_dialog_tabs
+{
+ right: 10px;
+}
+a.cke_dialog_tab
+{
+ background-image: url(images/sprites.png);
+ background-repeat: repeat-x;
+ background-position: 0 -1323px;
+ background-color: #ebebeb;
+ height: 14px;
+ padding: 4px 8px;
+ display: inline-block;
+ cursor: pointer;
+}
+a.cke_dialog_tab:hover
+{
+ background-color: #f1f1e3;
+}
+.cke_hc a.cke_dialog_tab:hover
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+a.cke_dialog_tab_selected
+{
+ background-position: 0 -1279px;
+ cursor: default;
+}
+.cke_hc a.cke_dialog_tab_selected
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+.cke_single_page .cke_dialog_tabs
+{
+ display: none;
+}
+.cke_single_page .cke_dialog_contents
+{
+ padding-top: 5px;
+ margin-top: 10px;
+}
+.cke_dialog_close_button
+{
+ background-image: url(images/sprites.png);
+ background-repeat: no-repeat;
+ background-position: 0 -1022px;
+ position: absolute;
+ cursor: pointer;
+ text-align: center;
+ height: 20px;
+ width: 20px;
+ top: 5px;
+}
+.cke_dialog_close_button span
+{
+ display: none;
+}
+.cke_dialog_close_button:hover
+{
+ background-position: 0 -1045px;
+}
+.cke_ltr .cke_dialog_close_button
+{
+ right: 10px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 7px;
+}
+div.cke_disabled .cke_dialog_ui_labeled_content *
+{
+ background-color : #a0a0a0;
+ cursor : default;
+}
+.cke_dialog_ui_vbox table,
+.cke_dialog_ui_hbox table
+{
+ margin: auto;
+}
+.cke_dialog_ui_vbox_child
+{
+ padding: 5px 0px;
+}
+.cke_dialog_ui_hbox
+{
+ width: 100%;
+}
+.cke_dialog_ui_hbox_first,
+.cke_dialog_ui_hbox_child,
+.cke_dialog_ui_hbox_last
+{
+ vertical-align: top;
+}
+.cke_ltr .cke_dialog_ui_hbox_first,
+.cke_ltr .cke_dialog_ui_hbox_child
+{
+ padding-right: 10px;
+}
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_child
+{
+ padding-left: 10px;
+}
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 14px;
+}
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+textarea.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ overflow: auto;
+ resize: none;
+}
+div.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+a.cke_dialog_ui_button
+{
+ border-collapse: separate;
+ cursor: default;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: transparent url(images/sprites.png) repeat-x scroll 0 -1069px;
+ text-align: center;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
+{
+ width: 60px;
+ padding: 5px 20px 5px;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok
+{
+ background-position: 0 -1144px;
+}
+a.cke_dialog_ui_button_ok span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1216px;
+}
+.cke_rtl a.cke_dialog_ui_button_ok span
+{
+ background-position: left -1216px;
+}
+a.cke_dialog_ui_button_cancel
+{
+ background-position: 0 -1105px;
+}
+a.cke_dialog_ui_button_cancel span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1242px;
+}
+.cke_rtl a.cke_dialog_ui_button_cancel span
+{
+ background-position: left -1242px;
+}
+span.cke_dialog_ui_button
+{
+ padding: 2px 10px;
+ text-align: center;
+ color: #222;
+ display: inline-block;
+ cursor: default;
+ min-width: 60px;
+}
+a.cke_dialog_ui_button span.cke_disabled
+{
+ border: #898980 1px solid;
+ color: #5e5e55;
+ background-color: #c5c5b3;
+}
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
+{
+ background-position: 0 -1180px;
+}
+.cke_hc a.cke_dialog_ui_button:hover,
+.cke_hc a.cke_dialog_ui_button:focus,
+.cke_hc a.cke_dialog_ui_button:active
+{
+ border-width: 2px;
+}
+.cke_dialog_footer_buttons
+{
+ display: inline-table;
+ margin: 6px 12px 0 12px;
+ width: auto;
+ position: relative;
+}
+.cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+ text-align: center;
+}
+.cke_dialog_ui_input_select
+{
+ border: 1px solid #a0a0a0;
+ background-color: white;
+}
+.cke_dialog_ui_input_file
+{
+ width: 100%;
+ height: 25px;
+}
+.cke_dialog .cke_dark_background
+{
+ background-color: #eaead1;
+}
+.cke_dialog .cke_light_background
+{
+ background-color: #ffffbe;
+}
+.cke_dialog .cke_centered
+{
+ text-align: center;
+}
+.cke_dialog a.cke_btn_reset
+{
+ float: right;
+ background-position: 0 -32px;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: 1px none;
+ font-size: 1px;
+}
+.cke_rtl .cke_dialog a.cke_btn_reset
+{
+ float: left;
+}
+.cke_dialog a.cke_btn_locked,
+.cke_dialog a.cke_btn_unlocked
+{
+ float: left;
+ background-position: 0 0;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: none 1px;
+ font-size: 1px;
+}
+.cke_dialog a.cke_btn_locked .cke_icon
+{
+ display:none;
+}
+.cke_rtl .cke_dialog a.cke_btn_locked,
+.cke_rtl .cke_dialog a.cke_btn_unlocked
+{
+ float: right;
+}
+.cke_dialog a.cke_btn_unlocked
+{
+ background-position: 0 -16px;
+ background-image: url(images/mini.gif);
+}
+.cke_dialog .cke_btn_over
+{
+ border: outset 1px;
+ cursor: pointer;
+}
+.cke_dialog .ImagePreviewBox
+{
+ border : 2px ridge black;
+ overflow : scroll;
+ height : 200px;
+ width : 300px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .ImagePreviewBox table td {
+ white-space: normal;
+}
+.cke_dialog .ImagePreviewLoader
+{
+ position: absolute;
+ white-space : normal;
+ overflow : hidden;
+ height : 160px;
+ width : 230px;
+ margin : 2px;
+ padding : 2px;
+ opacity : 0.9;
+ filter : alpha(opacity=90);
+ background-color : #e4e4e4;
+}
+.cke_dialog .FlashPreviewBox
+{
+ white-space : normal;
+ border : 2px ridge black;
+ overflow : auto;
+ height : 160px;
+ width : 390px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .cke_pastetext
+{
+ width: 346px;
+ height: 170px;
+}
+.cke_dialog .cke_pastetext textarea
+{
+ width: 340px;
+ height: 170px;
+ resize: none;
+}
+.cke_dialog iframe.cke_pasteframe
+{
+ width: 346px;
+ height: 130px;
+ background-color: white;
+ border: 1px solid black;
+}
+.cke_dialog .cke_hand
+{
+ cursor: pointer;
+}
+.cke_disabled
+{
+ color: #a0a0a0;
+}
+.cke_hc .cke_dialog_title,
+.cke_hc .cke_dialog_tabs,
+.cke_hc .cke_dialog_contents,
+.cke_hc .cke_dialog_footer
+{
+ border-left: 1px solid;
+ border-right: 1px solid;
+}
+.cke_hc .cke_dialog_title
+{
+ border-top: 1px solid;
+}
+.cke_hc .cke_dialog_footer
+{
+ border-bottom: 1px solid;
+}
+.cke_hc .cke_dialog_close_button span
+{
+ display: inline;
+ cursor: pointer;
+ font-weight: bold;
+ position: relative;
+ top: 3px;
+}
+.cke_dialog_body .cke_label
+{
+ display: none;
+}
+.cke_dialog_body label
+{
+ display: inline;
+ margin-bottom: auto;
+ cursor: default;
+}
+.cke_dialog_body label.cke_required
+{
+ font-weight: bold;
+}
+.cke_hc .cke_dialog_body .cke_label
+{
+ display: inline;
+ cursor: inherit;
+}
+.cke_hc a.cke_btn_locked,
+.cke_hc a.cke_btn_unlocked,
+.cke_hc a.cke_btn_reset
+{
+ border-style: solid;
+ float: left;
+ width: auto;
+ height: auto;
+ padding: 0 2px;
+}
+.cke_rtl.cke_hc a.cke_btn_locked,
+.cke_rtl.cke_hc a.cke_btn_unlocked,
+.cke_rtl.cke_hc a.cke_btn_reset
+{
+ float: right;
+}
+.cke_hc a.cke_btn_locked .cke_icon
+{
+ display:inline;
+}
+a.cke_smile img
+{
+ border: 2px solid #eaead1;
+}
+a.cke_smile:focus img,
+a.cke_smile:active img,
+a.cke_smile:hover img
+{
+ border-color: #C7C78F;
+}
+.cke_hc .cke_dialog_tabs a,
+.cke_hc .cke_dialog_footer a
+{
+ opacity: 1.0;
+ filter: alpha(opacity=100);
+ border: 1px solid white;
+}
+.cke_hc .ImagePreviewBox
+{
+ width: 260px;
+}
+.cke_dialog_contents a.colorChooser
+{
+ display:block;
+ margin-top:6px;
+ margin-left: 10px;
+ width: 80px;
+}
+.cke_rtl .cke_dialog_contents a.colorChooser
+{
+ margin-right: 10px;
+}
+.cke_dialog_ui_checkbox_input:focus,
+.cke_dialog_ui_radio_input:focus,
+.cke_dialog_ui_input_select:focus,
+.cke_btn_over
+{
+ outline: 1px dotted #696969;
+}
+.cke_iframe_shim
+{
+ display:block;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ filter:alpha(opacity=0);
+ width:100%;
+ height:100%;
+}
+.cke_rtl input.cke_dialog_ui_input_text,
+.cke_rtl input.cke_dialog_ui_input_password
+{
+ padding-right: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text,
+.cke_rtl div.cke_dialog_ui_input_password
+{
+ padding-left: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text {
+ padding-right: 1px;
+}
+.cke_rtl .cke_dialog_ui_vbox_child,
+.cke_rtl .cke_dialog_ui_hbox_child,
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_last
+{
+ padding-right: 2px !important;
+}
+.cke_dialog_title
+{
+ margin-bottom: 22px;
+}
+.cke_single_page .cke_dialog_title
+{
+ margin-bottom: 10px;
+}
+.cke_single_page .cke_dialog_footer
+{
+ margin-top: 22px;
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 27px;
+}
+.cke_dialog_tabs
+{
+ top: 33px;
+}
+/* IE7 needs position static #6806 */
+/* IE7 displays footer button too low and too close to the resizer (#9359) */
+.cke_dialog_footer_buttons
+{
+ position: static;
+ margin-top: 7px; /* Keep it slightly lower */
+ margin-right: 24px; /* Keep it away from the resizer */
+}
+/* END #6806 */
+.cke_rtl .cke_dialog_footer_buttons
+{
+ margin-right: 0;
+ margin-left: 24px; /* Keep it away from the resizer */
+}
+/* END #9359 */
+.cke_rtl .cke_dialog_close_button
+{
+ margin-top: 0;
+ position: absolute;
+ left: 10px;
+ top: 5px;
+}
+span.cke_dialog_ui_buttonm
+{
+ margin: 2px 0;
+}
+/* Predefined border to avoid visual size change impact. */
+.cke_dialog_ui_checkbox_input,
+.cke_dialog_ui_ratio_input,
+.cke_btn_reset,
+.cke_btn_locked,
+.cke_btn_unlocked
+{
+ border: 1px solid transparent !important;
+}
+/* The absolute position is required for IE7 on text inputs not to stretch dialog horizontally. (#8971)*/
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
+{
+ position: absolute;
+}
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
+{
+ height:14px;
+ position: relative;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/dialog_ie8.css b/devel/third-party/ckeditor/skins/kama/dialog_ie8.css
new file mode 100644
index 0000000..f4e424c
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/dialog_ie8.css
@@ -0,0 +1,599 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+dialog_ie8.css
+===============
+This file contains styles to used by Internet Explorer 8 only.
+*/
+/* Base it on dialog_ie.css, overriding it with styles defined in this file. */
+.cke_dialog
+{
+ visibility: visible;
+}
+.cke_dialog_body
+{
+ z-index: 1;
+ border: solid 1px #ddd;
+ padding: 5px;
+ background-color: #fff;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.cke_dialog strong
+{
+ font-weight: bold;
+}
+.cke_dialog_title
+{
+ font-weight: bold;
+ font-size: 14px;
+ padding: 3px 3px 8px;
+ cursor: move;
+ position: relative;
+ border-bottom: 1px solid #eee;
+}
+.cke_dialog_contents
+{
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ -moz-border-radius-topleft: 5px;
+ -moz-border-radius-topright: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -webkit-border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ margin-top: 22px;
+}
+.cke_dialog_contents_body
+{
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ margin-top: 22px;
+}
+.cke_dialog_footer
+{
+ text-align: right;
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+.cke_rtl .cke_dialog_footer
+{
+ text-align: left;
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 24px;
+}
+.cke_dialog_footer .cke_resizer_ltr
+{
+ border-right-color: #ccc;
+}
+.cke_dialog_footer .cke_resizer_rtl
+{
+ border-left-color: #ccc;
+}
+.cke_hc .cke_dialog_footer .cke_resizer
+{
+ margin-bottom: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_ltr
+{
+ margin-right: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_rtl
+{
+ margin-left: 1px;
+}
+.cke_dialog_tabs
+{
+ height: 23px;
+ display: inline-block;
+ margin-left:10px;
+ margin-right:10px;
+ margin-top: 11px;
+ position: absolute;
+ z-index: 2;
+}
+.cke_rtl .cke_dialog_tabs
+{
+ right: 10px;
+}
+a.cke_dialog_tab
+{
+ background-image: url(images/sprites.png);
+ background-repeat: repeat-x;
+ background-position: 0 -1323px;
+ background-color: #ebebeb;
+ height: 14px;
+ padding: 4px 8px;
+ display: inline-block;
+ cursor: pointer;
+}
+a.cke_dialog_tab:hover
+{
+ background-color: #f1f1e3;
+}
+.cke_hc a.cke_dialog_tab:hover
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+a.cke_dialog_tab_selected
+{
+ background-position: 0 -1279px;
+ cursor: default;
+}
+.cke_hc a.cke_dialog_tab_selected
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+.cke_single_page .cke_dialog_tabs
+{
+ display: none;
+}
+.cke_single_page .cke_dialog_contents
+{
+ padding-top: 5px;
+ margin-top: 10px;
+}
+.cke_dialog_close_button
+{
+ background-image: url(images/sprites.png);
+ background-repeat: no-repeat;
+ background-position: 0 -1022px;
+ position: absolute;
+ cursor: pointer;
+ text-align: center;
+ height: 20px;
+ width: 20px;
+ top: 5px;
+}
+.cke_dialog_close_button span
+{
+ display: none;
+}
+.cke_dialog_close_button:hover
+{
+ background-position: 0 -1045px;
+}
+.cke_ltr .cke_dialog_close_button
+{
+ right: 10px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 7px;
+}
+div.cke_disabled .cke_dialog_ui_labeled_content *
+{
+ background-color : #a0a0a0;
+ cursor : default;
+}
+.cke_dialog_ui_vbox table,
+.cke_dialog_ui_hbox table
+{
+ margin: auto;
+}
+.cke_dialog_ui_vbox_child
+{
+ padding: 5px 0px;
+}
+.cke_dialog_ui_hbox
+{
+ width: 100%;
+}
+.cke_dialog_ui_hbox_first,
+.cke_dialog_ui_hbox_child,
+.cke_dialog_ui_hbox_last
+{
+ vertical-align: top;
+}
+.cke_ltr .cke_dialog_ui_hbox_first,
+.cke_ltr .cke_dialog_ui_hbox_child
+{
+ padding-right: 10px;
+}
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_child
+{
+ padding-left: 10px;
+}
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 14px;
+}
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+textarea.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ overflow: auto;
+ resize: none;
+}
+div.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+a.cke_dialog_ui_button
+{
+ border-collapse: separate;
+ cursor: default;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: transparent url(images/sprites.png) repeat-x scroll 0 -1069px;
+ text-align: center;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
+{
+ width: 60px;
+ padding: 5px 20px 5px;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok
+{
+ background-position: 0 -1144px;
+}
+a.cke_dialog_ui_button_ok span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1216px;
+}
+.cke_rtl a.cke_dialog_ui_button_ok span
+{
+ background-position: left -1216px;
+}
+a.cke_dialog_ui_button_cancel
+{
+ background-position: 0 -1105px;
+}
+a.cke_dialog_ui_button_cancel span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1242px;
+}
+.cke_rtl a.cke_dialog_ui_button_cancel span
+{
+ background-position: left -1242px;
+}
+span.cke_dialog_ui_button
+{
+ padding: 2px 10px;
+ text-align: center;
+ color: #222;
+ display: inline-block;
+ cursor: default;
+ min-width: 60px;
+}
+a.cke_dialog_ui_button span.cke_disabled
+{
+ border: #898980 1px solid;
+ color: #5e5e55;
+ background-color: #c5c5b3;
+}
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
+{
+ background-position: 0 -1180px;
+}
+.cke_hc a.cke_dialog_ui_button:hover,
+.cke_hc a.cke_dialog_ui_button:focus,
+.cke_hc a.cke_dialog_ui_button:active
+{
+ border-width: 2px;
+}
+.cke_dialog_footer_buttons
+{
+ display: inline-table;
+ margin: 6px 12px 0 12px;
+ width: auto;
+ position: relative;
+}
+.cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+ text-align: center;
+}
+.cke_dialog_ui_input_select
+{
+ border: 1px solid #a0a0a0;
+ background-color: white;
+}
+.cke_dialog_ui_input_file
+{
+ width: 100%;
+ height: 25px;
+}
+.cke_dialog .cke_dark_background
+{
+ background-color: #eaead1;
+}
+.cke_dialog .cke_light_background
+{
+ background-color: #ffffbe;
+}
+.cke_dialog .cke_centered
+{
+ text-align: center;
+}
+.cke_dialog a.cke_btn_reset
+{
+ float: right;
+ background-position: 0 -32px;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: 1px none;
+ font-size: 1px;
+}
+.cke_rtl .cke_dialog a.cke_btn_reset
+{
+ float: left;
+}
+.cke_dialog a.cke_btn_locked,
+.cke_dialog a.cke_btn_unlocked
+{
+ float: left;
+ background-position: 0 0;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: none 1px;
+ font-size: 1px;
+}
+.cke_dialog a.cke_btn_locked .cke_icon
+{
+ display:none;
+}
+.cke_rtl .cke_dialog a.cke_btn_locked,
+.cke_rtl .cke_dialog a.cke_btn_unlocked
+{
+ float: right;
+}
+.cke_dialog a.cke_btn_unlocked
+{
+ background-position: 0 -16px;
+ background-image: url(images/mini.gif);
+}
+.cke_dialog .cke_btn_over
+{
+ border: outset 1px;
+ cursor: pointer;
+}
+.cke_dialog .ImagePreviewBox
+{
+ border : 2px ridge black;
+ overflow : scroll;
+ height : 200px;
+ width : 300px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .ImagePreviewBox table td {
+ white-space: normal;
+}
+.cke_dialog .ImagePreviewLoader
+{
+ position: absolute;
+ white-space : normal;
+ overflow : hidden;
+ height : 160px;
+ width : 230px;
+ margin : 2px;
+ padding : 2px;
+ opacity : 0.9;
+ filter : alpha(opacity=90);
+ background-color : #e4e4e4;
+}
+.cke_dialog .FlashPreviewBox
+{
+ white-space : normal;
+ border : 2px ridge black;
+ overflow : auto;
+ height : 160px;
+ width : 390px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .cke_pastetext
+{
+ width: 346px;
+ height: 170px;
+}
+.cke_dialog .cke_pastetext textarea
+{
+ width: 340px;
+ height: 170px;
+ resize: none;
+}
+.cke_dialog iframe.cke_pasteframe
+{
+ width: 346px;
+ height: 130px;
+ background-color: white;
+ border: 1px solid black;
+}
+.cke_dialog .cke_hand
+{
+ cursor: pointer;
+}
+.cke_disabled
+{
+ color: #a0a0a0;
+}
+.cke_hc .cke_dialog_title,
+.cke_hc .cke_dialog_tabs,
+.cke_hc .cke_dialog_contents,
+.cke_hc .cke_dialog_footer
+{
+ border-left: 1px solid;
+ border-right: 1px solid;
+}
+.cke_hc .cke_dialog_title
+{
+ border-top: 1px solid;
+}
+.cke_hc .cke_dialog_footer
+{
+ border-bottom: 1px solid;
+}
+.cke_hc .cke_dialog_close_button span
+{
+ display: inline;
+ cursor: pointer;
+ font-weight: bold;
+ position: relative;
+ top: 3px;
+}
+.cke_dialog_body .cke_label
+{
+ display: none;
+}
+.cke_dialog_body label
+{
+ display: inline;
+ margin-bottom: auto;
+ cursor: default;
+}
+.cke_dialog_body label.cke_required
+{
+ font-weight: bold;
+}
+.cke_hc .cke_dialog_body .cke_label
+{
+ display: inline;
+ cursor: inherit;
+}
+.cke_hc a.cke_btn_locked,
+.cke_hc a.cke_btn_unlocked,
+.cke_hc a.cke_btn_reset
+{
+ border-style: solid;
+ float: left;
+ width: auto;
+ height: auto;
+ padding: 0 2px;
+}
+.cke_rtl.cke_hc a.cke_btn_locked,
+.cke_rtl.cke_hc a.cke_btn_unlocked,
+.cke_rtl.cke_hc a.cke_btn_reset
+{
+ float: right;
+}
+.cke_hc a.cke_btn_locked .cke_icon
+{
+ display:inline;
+}
+a.cke_smile img
+{
+ border: 2px solid #eaead1;
+}
+a.cke_smile:focus img,
+a.cke_smile:active img,
+a.cke_smile:hover img
+{
+ border-color: #C7C78F;
+}
+.cke_hc .cke_dialog_tabs a,
+.cke_hc .cke_dialog_footer a
+{
+ opacity: 1.0;
+ filter: alpha(opacity=100);
+ border: 1px solid white;
+}
+.cke_hc .ImagePreviewBox
+{
+ width: 260px;
+}
+.cke_dialog_contents a.colorChooser
+{
+ display:block;
+ margin-top:6px;
+ margin-left: 10px;
+ width: 80px;
+}
+.cke_rtl .cke_dialog_contents a.colorChooser
+{
+ margin-right: 10px;
+}
+.cke_dialog_ui_checkbox_input:focus,
+.cke_dialog_ui_radio_input:focus,
+.cke_dialog_ui_input_select:focus,
+.cke_btn_over
+{
+ outline: 1px dotted #696969;
+}
+.cke_iframe_shim
+{
+ display:block;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ filter:alpha(opacity=0);
+ width:100%;
+ height:100%;
+}
+.cke_rtl input.cke_dialog_ui_input_text,
+.cke_rtl input.cke_dialog_ui_input_password
+{
+ padding-right: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text,
+.cke_rtl div.cke_dialog_ui_input_password
+{
+ padding-left: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text {
+ padding-right: 1px;
+}
+.cke_rtl .cke_dialog_ui_vbox_child,
+.cke_rtl .cke_dialog_ui_hbox_child,
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_last
+{
+ padding-right: 2px !important;
+}
+.cke_rtl .cke_dialog_footer_buttons td
+{
+ padding-left: 2px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 8px;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/dialog_iequirks.css b/devel/third-party/ckeditor/skins/kama/dialog_iequirks.css
new file mode 100644
index 0000000..e3a9b9f
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/dialog_iequirks.css
@@ -0,0 +1,684 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+dialog_iequirks.css
+===============
+This file contains styles to used by all versions of Internet Explorer
+in Quirks mode only.
+*/
+/* Base it on dialog_ie.css, overriding it with styles defined in this file. */
+.cke_dialog
+{
+ visibility: visible;
+}
+.cke_dialog_body
+{
+ z-index: 1;
+ border: solid 1px #ddd;
+ padding: 5px;
+ background-color: #fff;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.cke_dialog strong
+{
+ font-weight: bold;
+}
+.cke_dialog_title
+{
+ font-weight: bold;
+ font-size: 14px;
+ padding: 3px 3px 8px;
+ cursor: move;
+ position: relative;
+ border-bottom: 1px solid #eee;
+}
+.cke_dialog_contents
+{
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ -moz-border-radius-topleft: 5px;
+ -moz-border-radius-topright: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -webkit-border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ margin-top: 22px;
+}
+.cke_dialog_contents_body
+{
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ margin-top: 22px;
+}
+.cke_dialog_footer
+{
+ text-align: right;
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+.cke_rtl .cke_dialog_footer
+{
+ text-align: left;
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 24px;
+}
+.cke_dialog_footer .cke_resizer_ltr
+{
+ border-right-color: #ccc;
+}
+.cke_dialog_footer .cke_resizer_rtl
+{
+ border-left-color: #ccc;
+}
+.cke_hc .cke_dialog_footer .cke_resizer
+{
+ margin-bottom: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_ltr
+{
+ margin-right: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_rtl
+{
+ margin-left: 1px;
+}
+.cke_dialog_tabs
+{
+ height: 23px;
+ display: inline-block;
+ margin-left:10px;
+ margin-right:10px;
+ margin-top: 11px;
+ position: absolute;
+ z-index: 2;
+}
+.cke_rtl .cke_dialog_tabs
+{
+ right: 10px;
+}
+a.cke_dialog_tab
+{
+ background-image: url(images/sprites.png);
+ background-repeat: repeat-x;
+ background-position: 0 -1323px;
+ background-color: #ebebeb;
+ height: 14px;
+ padding: 4px 8px;
+ display: inline-block;
+ cursor: pointer;
+}
+a.cke_dialog_tab:hover
+{
+ background-color: #f1f1e3;
+}
+.cke_hc a.cke_dialog_tab:hover
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+a.cke_dialog_tab_selected
+{
+ background-position: 0 -1279px;
+ cursor: default;
+}
+.cke_hc a.cke_dialog_tab_selected
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+.cke_single_page .cke_dialog_tabs
+{
+ display: none;
+}
+.cke_single_page .cke_dialog_contents
+{
+ padding-top: 5px;
+ margin-top: 10px;
+}
+.cke_dialog_close_button
+{
+ background-image: url(images/sprites.png);
+ background-repeat: no-repeat;
+ background-position: 0 -1022px;
+ position: absolute;
+ cursor: pointer;
+ text-align: center;
+ height: 20px;
+ width: 20px;
+ top: 5px;
+}
+.cke_dialog_close_button span
+{
+ display: none;
+}
+.cke_dialog_close_button:hover
+{
+ background-position: 0 -1045px;
+}
+.cke_ltr .cke_dialog_close_button
+{
+ right: 10px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 7px;
+}
+div.cke_disabled .cke_dialog_ui_labeled_content *
+{
+ background-color : #a0a0a0;
+ cursor : default;
+}
+.cke_dialog_ui_vbox table,
+.cke_dialog_ui_hbox table
+{
+ margin: auto;
+}
+.cke_dialog_ui_vbox_child
+{
+ padding: 5px 0px;
+}
+.cke_dialog_ui_hbox
+{
+ width: 100%;
+}
+.cke_dialog_ui_hbox_first,
+.cke_dialog_ui_hbox_child,
+.cke_dialog_ui_hbox_last
+{
+ vertical-align: top;
+}
+.cke_ltr .cke_dialog_ui_hbox_first,
+.cke_ltr .cke_dialog_ui_hbox_child
+{
+ padding-right: 10px;
+}
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_child
+{
+ padding-left: 10px;
+}
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 14px;
+}
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+textarea.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ overflow: auto;
+ resize: none;
+}
+div.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+a.cke_dialog_ui_button
+{
+ border-collapse: separate;
+ cursor: default;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: transparent url(images/sprites.png) repeat-x scroll 0 -1069px;
+ text-align: center;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
+{
+ width: 60px;
+ padding: 5px 20px 5px;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok
+{
+ background-position: 0 -1144px;
+}
+a.cke_dialog_ui_button_ok span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1216px;
+}
+.cke_rtl a.cke_dialog_ui_button_ok span
+{
+ background-position: left -1216px;
+}
+a.cke_dialog_ui_button_cancel
+{
+ background-position: 0 -1105px;
+}
+a.cke_dialog_ui_button_cancel span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1242px;
+}
+.cke_rtl a.cke_dialog_ui_button_cancel span
+{
+ background-position: left -1242px;
+}
+span.cke_dialog_ui_button
+{
+ padding: 2px 10px;
+ text-align: center;
+ color: #222;
+ display: inline-block;
+ cursor: default;
+ min-width: 60px;
+}
+a.cke_dialog_ui_button span.cke_disabled
+{
+ border: #898980 1px solid;
+ color: #5e5e55;
+ background-color: #c5c5b3;
+}
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
+{
+ background-position: 0 -1180px;
+}
+.cke_hc a.cke_dialog_ui_button:hover,
+.cke_hc a.cke_dialog_ui_button:focus,
+.cke_hc a.cke_dialog_ui_button:active
+{
+ border-width: 2px;
+}
+.cke_dialog_footer_buttons
+{
+ display: inline-table;
+ margin: 6px 12px 0 12px;
+ width: auto;
+ position: relative;
+}
+.cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+ text-align: center;
+}
+.cke_dialog_ui_input_select
+{
+ border: 1px solid #a0a0a0;
+ background-color: white;
+}
+.cke_dialog_ui_input_file
+{
+ width: 100%;
+ height: 25px;
+}
+.cke_dialog .cke_dark_background
+{
+ background-color: #eaead1;
+}
+.cke_dialog .cke_light_background
+{
+ background-color: #ffffbe;
+}
+.cke_dialog .cke_centered
+{
+ text-align: center;
+}
+.cke_dialog a.cke_btn_reset
+{
+ float: right;
+ background-position: 0 -32px;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: 1px none;
+ font-size: 1px;
+}
+.cke_rtl .cke_dialog a.cke_btn_reset
+{
+ float: left;
+}
+.cke_dialog a.cke_btn_locked,
+.cke_dialog a.cke_btn_unlocked
+{
+ float: left;
+ background-position: 0 0;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: none 1px;
+ font-size: 1px;
+}
+.cke_dialog a.cke_btn_locked .cke_icon
+{
+ display:none;
+}
+.cke_rtl .cke_dialog a.cke_btn_locked,
+.cke_rtl .cke_dialog a.cke_btn_unlocked
+{
+ float: right;
+}
+.cke_dialog a.cke_btn_unlocked
+{
+ background-position: 0 -16px;
+ background-image: url(images/mini.gif);
+}
+.cke_dialog .cke_btn_over
+{
+ border: outset 1px;
+ cursor: pointer;
+}
+.cke_dialog .ImagePreviewBox
+{
+ border : 2px ridge black;
+ overflow : scroll;
+ height : 200px;
+ width : 300px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .ImagePreviewBox table td {
+ white-space: normal;
+}
+.cke_dialog .ImagePreviewLoader
+{
+ position: absolute;
+ white-space : normal;
+ overflow : hidden;
+ height : 160px;
+ width : 230px;
+ margin : 2px;
+ padding : 2px;
+ opacity : 0.9;
+ filter : alpha(opacity=90);
+ background-color : #e4e4e4;
+}
+.cke_dialog .FlashPreviewBox
+{
+ white-space : normal;
+ border : 2px ridge black;
+ overflow : auto;
+ height : 160px;
+ width : 390px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .cke_pastetext
+{
+ width: 346px;
+ height: 170px;
+}
+.cke_dialog .cke_pastetext textarea
+{
+ width: 340px;
+ height: 170px;
+ resize: none;
+}
+.cke_dialog iframe.cke_pasteframe
+{
+ width: 346px;
+ height: 130px;
+ background-color: white;
+ border: 1px solid black;
+}
+.cke_dialog .cke_hand
+{
+ cursor: pointer;
+}
+.cke_disabled
+{
+ color: #a0a0a0;
+}
+.cke_hc .cke_dialog_title,
+.cke_hc .cke_dialog_tabs,
+.cke_hc .cke_dialog_contents,
+.cke_hc .cke_dialog_footer
+{
+ border-left: 1px solid;
+ border-right: 1px solid;
+}
+.cke_hc .cke_dialog_title
+{
+ border-top: 1px solid;
+}
+.cke_hc .cke_dialog_footer
+{
+ border-bottom: 1px solid;
+}
+.cke_hc .cke_dialog_close_button span
+{
+ display: inline;
+ cursor: pointer;
+ font-weight: bold;
+ position: relative;
+ top: 3px;
+}
+.cke_dialog_body .cke_label
+{
+ display: none;
+}
+.cke_dialog_body label
+{
+ display: inline;
+ margin-bottom: auto;
+ cursor: default;
+}
+.cke_dialog_body label.cke_required
+{
+ font-weight: bold;
+}
+.cke_hc .cke_dialog_body .cke_label
+{
+ display: inline;
+ cursor: inherit;
+}
+.cke_hc a.cke_btn_locked,
+.cke_hc a.cke_btn_unlocked,
+.cke_hc a.cke_btn_reset
+{
+ border-style: solid;
+ float: left;
+ width: auto;
+ height: auto;
+ padding: 0 2px;
+}
+.cke_rtl.cke_hc a.cke_btn_locked,
+.cke_rtl.cke_hc a.cke_btn_unlocked,
+.cke_rtl.cke_hc a.cke_btn_reset
+{
+ float: right;
+}
+.cke_hc a.cke_btn_locked .cke_icon
+{
+ display:inline;
+}
+a.cke_smile img
+{
+ border: 2px solid #eaead1;
+}
+a.cke_smile:focus img,
+a.cke_smile:active img,
+a.cke_smile:hover img
+{
+ border-color: #C7C78F;
+}
+.cke_hc .cke_dialog_tabs a,
+.cke_hc .cke_dialog_footer a
+{
+ opacity: 1.0;
+ filter: alpha(opacity=100);
+ border: 1px solid white;
+}
+.cke_hc .ImagePreviewBox
+{
+ width: 260px;
+}
+.cke_dialog_contents a.colorChooser
+{
+ display:block;
+ margin-top:6px;
+ margin-left: 10px;
+ width: 80px;
+}
+.cke_rtl .cke_dialog_contents a.colorChooser
+{
+ margin-right: 10px;
+}
+.cke_dialog_ui_checkbox_input:focus,
+.cke_dialog_ui_radio_input:focus,
+.cke_dialog_ui_input_select:focus,
+.cke_btn_over
+{
+ outline: 1px dotted #696969;
+}
+.cke_iframe_shim
+{
+ display:block;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ filter:alpha(opacity=0);
+ width:100%;
+ height:100%;
+}
+.cke_rtl input.cke_dialog_ui_input_text,
+.cke_rtl input.cke_dialog_ui_input_password
+{
+ padding-right: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text,
+.cke_rtl div.cke_dialog_ui_input_password
+{
+ padding-left: 2px;
+}
+.cke_rtl div.cke_dialog_ui_input_text {
+ padding-right: 1px;
+}
+.cke_rtl .cke_dialog_ui_vbox_child,
+.cke_rtl .cke_dialog_ui_hbox_child,
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_last
+{
+ padding-right: 2px !important;
+}
+.cke_dialog_title
+{
+ margin-bottom: 22px;
+}
+/* Fix dialog height doesn't stretch to 100%. (#4863)*/
+.cke_dialog_page_contents
+{
+ position: absolute;
+}
+.cke_single_page .cke_dialog_title
+{
+ margin-bottom: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 27px;
+ background-image: url(images/sprites_ie6.png);
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 27px;
+}
+.cke_dialog_tabs
+{
+ display: block;
+ top: 33px;
+ margin-top: 33px;
+}
+/* RTL + IE6: Input overflows dialog element. (#7321) */
+.cke_rtl .cke_dialog_ui_labeled_content
+{
+ _width: 95%;
+}
+/* IE6 buttons. */
+a.cke_dialog_ui_button
+{
+ background: none;
+ padding: 0;
+}
+a.cke_dialog_ui_button span
+{
+ width: 70px;
+ padding: 5px 15px;
+ text-align: center;
+ color: #3b3b1f;
+ background: #53D9F0 none;
+ display: inline-block;
+ cursor: default;
+}
+a.cke_dialog_ui_button_ok span
+{
+ background-image: none;
+ background-color: #B8E834;
+ margin-right: 0;
+}
+a.cke_dialog_ui_button_cancel span
+{
+ background-image: none;
+ background-color: #F65D20;
+ margin-right: 0;
+}
+a.cke_dialog_ui_button:hover span,
+a.cke_dialog_ui_button:focus span,
+a.cke_dialog_ui_button:active span
+{
+ background-image: none;
+ background: #F7A922;
+}
+/* END IE6 buttons. */
+/* make sure the content does not overflow (#7321) */
+div.cke_dialog_ui_input_password,
+textarea.cke_dialog_ui_input_textarea
+{
+ width: 99%;
+}
+/* Predefined border to avoid visual size change impact. */
+.cke_dialog_ui_checkbox_input,
+.cke_dialog_ui_ratio_input,
+.cke_btn_reset,
+.cke_btn_locked,
+.cke_btn_unlocked
+{
+ /* Emulating border-color: transparent in IE6.*/
+ border: 1px solid red !important;
+ filter: chroma(color=red);
+}
+/* Compensate focus outline for some input elements, using borders (#6200) */
+.cke_dialog_ui_focused,
+.cke_btn_over
+{
+ border: 1px dotted #696969 !important;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/dialog_opera.css b/devel/third-party/ckeditor/skins/kama/dialog_opera.css
new file mode 100644
index 0000000..90578c7
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/dialog_opera.css
@@ -0,0 +1,583 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+dialog_opera.css
+===============
+This file contains styles to used by Opera only.
+*/
+/* Base it on dialog.css, overriding it with styles defined in this file. */
+.cke_dialog
+{
+ visibility: visible;
+}
+.cke_dialog_body
+{
+ z-index: 1;
+ border: solid 1px #ddd;
+ padding: 5px;
+ background-color: #fff;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+.cke_dialog strong
+{
+ font-weight: bold;
+}
+.cke_dialog_title
+{
+ font-weight: bold;
+ font-size: 14px;
+ padding: 3px 3px 8px;
+ cursor: move;
+ position: relative;
+ border-bottom: 1px solid #eee;
+}
+.cke_dialog_contents
+{
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ -moz-border-radius-topleft: 5px;
+ -moz-border-radius-topright: 5px;
+ -webkit-border-top-left-radius: 5px;
+ -webkit-border-top-right-radius: 5px;
+ border-top-left-radius: 5px;
+ border-top-right-radius: 5px;
+ margin-top: 22px;
+}
+.cke_dialog_contents_body
+{
+ overflow: auto;
+ padding: 17px 10px 5px 10px;
+ margin-top: 22px;
+}
+.cke_dialog_footer
+{
+ text-align: right;
+ background-color: #ebebeb;
+ border: solid 1px #fff;
+ border-bottom: none;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+.cke_rtl .cke_dialog_footer
+{
+ text-align: left;
+}
+.cke_dialog_footer .cke_resizer
+{
+ margin-top: 24px;
+}
+.cke_dialog_footer .cke_resizer_ltr
+{
+ border-right-color: #ccc;
+}
+.cke_dialog_footer .cke_resizer_rtl
+{
+ border-left-color: #ccc;
+}
+.cke_hc .cke_dialog_footer .cke_resizer
+{
+ margin-bottom: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_ltr
+{
+ margin-right: 1px;
+}
+.cke_hc .cke_dialog_footer .cke_resizer_rtl
+{
+ margin-left: 1px;
+}
+.cke_dialog_tabs
+{
+ height: 23px;
+ display: inline-block;
+ margin-left:10px;
+ margin-right:10px;
+ margin-top: 11px;
+ position: absolute;
+ z-index: 2;
+}
+.cke_rtl .cke_dialog_tabs
+{
+ right: 10px;
+}
+a.cke_dialog_tab
+{
+ background-image: url(images/sprites.png);
+ background-repeat: repeat-x;
+ background-position: 0 -1323px;
+ background-color: #ebebeb;
+ height: 14px;
+ padding: 4px 8px;
+ display: inline-block;
+ cursor: pointer;
+}
+a.cke_dialog_tab:hover
+{
+ background-color: #f1f1e3;
+}
+.cke_hc a.cke_dialog_tab:hover
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+a.cke_dialog_tab_selected
+{
+ background-position: 0 -1279px;
+ cursor: default;
+}
+.cke_hc a.cke_dialog_tab_selected
+{
+ padding: 2px 6px !important;
+ border-width: 3px;
+}
+.cke_single_page .cke_dialog_tabs
+{
+ display: none;
+}
+.cke_single_page .cke_dialog_contents
+{
+ padding-top: 5px;
+ margin-top: 10px;
+}
+.cke_dialog_close_button
+{
+ background-image: url(images/sprites.png);
+ background-repeat: no-repeat;
+ background-position: 0 -1022px;
+ position: absolute;
+ cursor: pointer;
+ text-align: center;
+ height: 20px;
+ width: 20px;
+ top: 5px;
+}
+.cke_dialog_close_button span
+{
+ display: none;
+}
+.cke_dialog_close_button:hover
+{
+ background-position: 0 -1045px;
+}
+.cke_ltr .cke_dialog_close_button
+{
+ right: 10px;
+}
+.cke_rtl .cke_dialog_close_button
+{
+ left: 10px;
+}
+.cke_dialog_close_button
+{
+ top: 7px;
+}
+div.cke_disabled .cke_dialog_ui_labeled_content *
+{
+ background-color : #a0a0a0;
+ cursor : default;
+}
+.cke_dialog_ui_vbox table,
+.cke_dialog_ui_hbox table
+{
+ margin: auto;
+}
+.cke_dialog_ui_vbox_child
+{
+ padding: 5px 0px;
+}
+.cke_dialog_ui_hbox
+{
+ width: 100%;
+}
+.cke_dialog_ui_hbox_first,
+.cke_dialog_ui_hbox_child,
+.cke_dialog_ui_hbox_last
+{
+ vertical-align: top;
+}
+.cke_ltr .cke_dialog_ui_hbox_first,
+.cke_ltr .cke_dialog_ui_hbox_child
+{
+ padding-right: 10px;
+}
+.cke_rtl .cke_dialog_ui_hbox_first,
+.cke_rtl .cke_dialog_ui_hbox_child
+{
+ padding-left: 10px;
+}
+input.cke_dialog_ui_input_text,
+input.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 14px;
+}
+div.cke_dialog_ui_input_text,
+div.cke_dialog_ui_input_password
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+textarea.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: none;
+ padding: 0px;
+ width: 100%;
+ overflow: auto;
+ resize: none;
+}
+div.cke_dialog_ui_input_textarea
+{
+ background-color: white;
+ border: 1px solid #a0a0a0;
+ padding: 1px 0px;
+}
+a.cke_dialog_ui_button
+{
+ border-collapse: separate;
+ cursor: default;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: transparent url(images/sprites.png) repeat-x scroll 0 -1069px;
+ text-align: center;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
+{
+ width: 60px;
+ padding: 5px 20px 5px;
+ display: inline-block;
+}
+a.cke_dialog_ui_button_ok
+{
+ background-position: 0 -1144px;
+}
+a.cke_dialog_ui_button_ok span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1216px;
+}
+.cke_rtl a.cke_dialog_ui_button_ok span
+{
+ background-position: left -1216px;
+}
+a.cke_dialog_ui_button_cancel
+{
+ background-position: 0 -1105px;
+}
+a.cke_dialog_ui_button_cancel span
+{
+ background: transparent url(images/sprites.png) no-repeat scroll right -1242px;
+}
+.cke_rtl a.cke_dialog_ui_button_cancel span
+{
+ background-position: left -1242px;
+}
+span.cke_dialog_ui_button
+{
+ padding: 2px 10px;
+ text-align: center;
+ color: #222;
+ display: inline-block;
+ cursor: default;
+ min-width: 60px;
+}
+a.cke_dialog_ui_button span.cke_disabled
+{
+ border: #898980 1px solid;
+ color: #5e5e55;
+ background-color: #c5c5b3;
+}
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
+{
+ background-position: 0 -1180px;
+}
+.cke_hc a.cke_dialog_ui_button:hover,
+.cke_hc a.cke_dialog_ui_button:focus,
+.cke_hc a.cke_dialog_ui_button:active
+{
+ border-width: 2px;
+}
+.cke_dialog_footer_buttons
+{
+ display: inline-table;
+ margin: 6px 12px 0 12px;
+ width: auto;
+ position: relative;
+}
+.cke_dialog_footer_buttons span.cke_dialog_ui_button
+{
+ text-align: center;
+}
+.cke_dialog_ui_input_select
+{
+ border: 1px solid #a0a0a0;
+ background-color: white;
+}
+.cke_dialog_ui_input_file
+{
+ width: 100%;
+ height: 25px;
+}
+.cke_dialog .cke_dark_background
+{
+ background-color: #eaead1;
+}
+.cke_dialog .cke_light_background
+{
+ background-color: #ffffbe;
+}
+.cke_dialog .cke_centered
+{
+ text-align: center;
+}
+.cke_dialog a.cke_btn_reset
+{
+ float: right;
+ background-position: 0 -32px;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: 1px none;
+ font-size: 1px;
+}
+.cke_rtl .cke_dialog a.cke_btn_reset
+{
+ float: left;
+}
+.cke_dialog a.cke_btn_locked,
+.cke_dialog a.cke_btn_unlocked
+{
+ float: left;
+ background-position: 0 0;
+ background-image: url(images/mini.gif);
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ border: none 1px;
+ font-size: 1px;
+}
+.cke_dialog a.cke_btn_locked .cke_icon
+{
+ display:none;
+}
+.cke_rtl .cke_dialog a.cke_btn_locked,
+.cke_rtl .cke_dialog a.cke_btn_unlocked
+{
+ float: right;
+}
+.cke_dialog a.cke_btn_unlocked
+{
+ background-position: 0 -16px;
+ background-image: url(images/mini.gif);
+}
+.cke_dialog .cke_btn_over
+{
+ border: outset 1px;
+ cursor: pointer;
+}
+.cke_dialog .ImagePreviewBox
+{
+ border : 2px ridge black;
+ overflow : scroll;
+ height : 200px;
+ width : 300px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .ImagePreviewBox table td {
+ white-space: normal;
+}
+.cke_dialog .ImagePreviewLoader
+{
+ position: absolute;
+ white-space : normal;
+ overflow : hidden;
+ height : 160px;
+ width : 230px;
+ margin : 2px;
+ padding : 2px;
+ opacity : 0.9;
+ filter : alpha(opacity=90);
+ background-color : #e4e4e4;
+}
+.cke_dialog .FlashPreviewBox
+{
+ white-space : normal;
+ border : 2px ridge black;
+ overflow : auto;
+ height : 160px;
+ width : 390px;
+ padding : 2px;
+ background-color : white;
+}
+.cke_dialog .cke_pastetext
+{
+ width: 346px;
+ height: 170px;
+}
+.cke_dialog .cke_pastetext textarea
+{
+ width: 340px;
+ height: 170px;
+ resize: none;
+}
+.cke_dialog iframe.cke_pasteframe
+{
+ width: 346px;
+ height: 130px;
+ background-color: white;
+ border: 1px solid black;
+}
+.cke_dialog .cke_hand
+{
+ cursor: pointer;
+}
+.cke_disabled
+{
+ color: #a0a0a0;
+}
+.cke_hc .cke_dialog_title,
+.cke_hc .cke_dialog_tabs,
+.cke_hc .cke_dialog_contents,
+.cke_hc .cke_dialog_footer
+{
+ border-left: 1px solid;
+ border-right: 1px solid;
+}
+.cke_hc .cke_dialog_title
+{
+ border-top: 1px solid;
+}
+.cke_hc .cke_dialog_footer
+{
+ border-bottom: 1px solid;
+}
+.cke_hc .cke_dialog_close_button span
+{
+ display: inline;
+ cursor: pointer;
+ font-weight: bold;
+ position: relative;
+ top: 3px;
+}
+.cke_dialog_body .cke_label
+{
+ display: none;
+}
+.cke_dialog_body label
+{
+ display: inline;
+ margin-bottom: auto;
+ cursor: default;
+}
+.cke_dialog_body label.cke_required
+{
+ font-weight: bold;
+}
+.cke_hc .cke_dialog_body .cke_label
+{
+ display: inline;
+ cursor: inherit;
+}
+.cke_hc a.cke_btn_locked,
+.cke_hc a.cke_btn_unlocked,
+.cke_hc a.cke_btn_reset
+{
+ border-style: solid;
+ float: left;
+ width: auto;
+ height: auto;
+ padding: 0 2px;
+}
+.cke_rtl.cke_hc a.cke_btn_locked,
+.cke_rtl.cke_hc a.cke_btn_unlocked,
+.cke_rtl.cke_hc a.cke_btn_reset
+{
+ float: right;
+}
+.cke_hc a.cke_btn_locked .cke_icon
+{
+ display:inline;
+}
+a.cke_smile img
+{
+ border: 2px solid #eaead1;
+}
+a.cke_smile:focus img,
+a.cke_smile:active img,
+a.cke_smile:hover img
+{
+ border-color: #C7C78F;
+}
+.cke_hc .cke_dialog_tabs a,
+.cke_hc .cke_dialog_footer a
+{
+ opacity: 1.0;
+ filter: alpha(opacity=100);
+ border: 1px solid white;
+}
+.cke_hc .ImagePreviewBox
+{
+ width: 260px;
+}
+.cke_dialog_contents a.colorChooser
+{
+ display:block;
+ margin-top:6px;
+ margin-left: 10px;
+ width: 80px;
+}
+.cke_rtl .cke_dialog_contents a.colorChooser
+{
+ margin-right: 10px;
+}
+.cke_dialog_ui_checkbox_input:focus,
+.cke_dialog_ui_radio_input:focus,
+.cke_dialog_ui_input_select:focus,
+.cke_btn_over
+{
+ outline: 1px dotted #696969;
+}
+.cke_iframe_shim
+{
+ display:block;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ filter:alpha(opacity=0);
+ width:100%;
+ height:100%;
+}
+/* Opera doesn't leave enough padding in text input for cursor to blink in RTL. (#6087) */
+.cke_rtl input.cke_dialog_ui_input_text,
+.cke_rtl input.cke_dialog_ui_input_password
+{
+ padding-right: 2px;
+}
+/* Compensate the padding added above on container. */
+.cke_rtl div.cke_dialog_ui_input_text,
+.cke_rtl div.cke_dialog_ui_input_password
+{
+ padding-left: 2px;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/editor.css b/devel/third-party/ckeditor/skins/kama/editor.css
index 5833a06..1f30bbc 100644
--- a/devel/third-party/ckeditor/skins/kama/editor.css
+++ b/devel/third-party/ckeditor/skins/kama/editor.css
@@ -1,25 +1,888 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
- at import url("reset.css");
- at import url("mainui.css");
- at import url("panel.css");
- at import url("toolbar.css");
- at import url("menu.css");
- at import url("richcombo.css");
- at import url("elementspath.css");
- at import url("icons.css");
- at import url("presets.css");
-
-/* Restore the container visibility */
-html .cke_skin_kama
+/*
+editor.css
+============
+This is he heart of the skin system. This is the file loaded by the editor to
+style all elements inside its main interface.
+To make it easier to maintain, instead of including all styles here, we import
+other files.
+*/
+/* "Reset" styles, necessary to avoid the editor UI being broken by external CSS. */
+.cke_reset
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.cke_reset_all, .cke_reset_all *
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ border-collapse: collapse;
+ font: normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
+ color: #000;
+ text-align: left;
+ white-space: nowrap;
+ cursor: auto;
+}
+.cke_reset_all .cke_rtl *
+{
+ text-align: right;
+}
+.cke_reset_all iframe
+{
+ vertical-align: inherit; }
+.cke_reset_all textarea
+{
+ white-space: pre;
+}
+.cke_reset_all textarea,
+.cke_reset_all input[type="text"],
+.cke_reset_all input[type="password"]
+{
+ cursor: text;
+}
+.cke_reset_all textarea[disabled],
+.cke_reset_all input[type="text"][disabled],
+.cke_reset_all input[type="password"][disabled]
+{
+ cursor: default;
+}
+.cke_reset_all fieldset
+{
+ padding: 10px;
+ border: 2px groove #E0DFE3;
+}
+.cke_reset_all select {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+/* Styles the main interface structure (holding box). */
+.cke_chrome
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #D3D3D3;
+ padding: 5px;
+}
+.cke_hc.cke_chrome
+{
+ padding: 2px;
+}
+.cke_inner
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -webkit-touch-callout: none;
+ border-radius: 5px;
+ background: #d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;
+ background: -webkit-gradient(linear, 0 -15, 0 40, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -webkit-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -o-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -ms-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: linear-gradient(top, #fff -15px, #d3d3d3 40px);
+ padding: 5px;
+}
+.cke_float
+{
+ background: #fff;
+}
+.cke_float .cke_inner
+{
+ padding-bottom: 0;
+}
+.cke_hc .cke_contents
+{
+ border: 1px solid black;
+}
+.cke_top,
+.cke_contents,
+.cke_bottom
+{
+ display: block;
+ overflow: hidden;
+}
+.cke_resizer
+{
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 12px 12px 0 12px;
+ border-color: transparent #EFEFEF transparent transparent;
+ border-style: dashed solid dashed dashed; margin: 10px 0 0;
+ font-size: 0;
+ float: right;
+ vertical-align: bottom;
+ cursor: se-resize;
+ opacity: 0.8;
+}
+.cke_resizer_ltr
+{
+ margin-left: -12px;
+}
+.cke_resizer_rtl
+{
+ float: left;
+ border-color: transparent transparent transparent #EFEFEF;
+ border-style: dashed dashed dashed solid; margin-right: -12px;
+ cursor: sw-resize;
+}
+.cke_hc .cke_resizer
+{
+ width: 10px;
+ height: 10px;
+ border: 1px solid #fff;
+ margin-left: 0;
+}
+.cke_hc .cke_resizer_rtl
+{
+ margin-right: 0;
+}
+.cke_wysiwyg_div
+{
+ display: block;
+ height: 100%;
+ overflow: auto;
+ padding: 0 8px;
+ outline-style: none;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+/* Styles all "panels", which are the floating elements that appear when
+ opening toolbar combos, menu buttons, context menus, etc. */
+.cke_panel
+{
+ visibility: visible;
+ border: 1px solid #8f8f73;
+ background-color: #fff;
+ width: 120px;
+ height: 100px;
+ overflow: hidden;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.cke_menu_panel
+{
+ padding: 2px;
+ margin: 0;
+}
+.cke_combopanel
+{
+ border: 1px solid #8f8f73;
+ -moz-border-radius-topleft: 0;
+ -webkit-border-top-left-radius: 0;
+ border-top-left-radius: 0;
+ width: 150px;
+ height: 170px;
+}
+.cke_panel_frame
+{
+ width: 100%;
+ height: 100%;
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 12px;
+ overflow: auto;
+ overflow-x: hidden;
+}
+.cke_panel_container
+{
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.cke_panel_list
+{
+ list-style-type: none;
+ margin: 3px;
+ padding: 0px;
+ white-space: nowrap;
+}
+.cke_panel_listItem
+{
+ margin: 0px;
+}
+.cke_panel_listItem a
+{
+ padding: 2px;
+ display: block;
+ border: 1px solid #fff;
+ color: inherit !important;
+ text-decoration: none;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+* html .cke_panel_listItem a
+{
+ width : 100%;
+ color: #000;
+}
+*:first-child+html .cke_panel_listItem a
+{
+ color: #000;
+}
+.cke_panel_listItem.cke_selected a
+{
+ border: 1px solid #ccc;
+ background-color: #e9f5ff;
+}
+.cke_panel_listItem a:hover,
+.cke_panel_listItem a:focus,
+.cke_panel_listItem a:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+}
+.cke_hc .cke_panel_listItem.cke_selected a,
+.cke_hc .cke_panel_listItem a:hover,
+.cke_hc .cke_panel_listItem a:focus,
+.cke_hc .cke_panel_listItem a:active
+{
+ border-width: 3px;
+ padding: 0px;
+}
+.cke_panel_grouptitle
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-weight: bold;
+ white-space: nowrap;
+ background-color: #dcdcdc;
+ color: #000;
+ margin:0px;
+ padding:3px;
+}
+.cke_panel_listItem p,
+.cke_panel_listItem h1,
+.cke_panel_listItem h2,
+.cke_panel_listItem h3,
+.cke_panel_listItem h4,
+.cke_panel_listItem h5,
+.cke_panel_listItem h6,
+.cke_panel_listItem pre
+{
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+/* Styles the color panel displayed by the color buttons. */
+.cke_colorblock
+{
+ padding: 3px;
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+}
+.cke_colorblock,
+.cke_colorblock a
+{
+ text-decoration: none;
+ color: #000;
+}
+span.cke_colorbox
+{
+ width: 10px;
+ height: 10px;
+ border: #808080 1px solid;
+ float: left;
+}
+.cke_rtl span.cke_colorbox
+{
+ float: right;
+}
+a.cke_colorbox
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ float: left;
+ width: 12px;
+ height: 12px;
+}
+.cke_rtl a.cke_colorbox
+{
+ float: right;
+}
+a:hover.cke_colorbox,
+a:focus.cke_colorbox,
+a:active.cke_colorbox
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+a.cke_colorauto,
+a.cke_colormore
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ display: block;
+ cursor: pointer;
+}
+a:hover.cke_colorauto,
+a:hover.cke_colormore,
+a:focus.cke_colorauto,
+a:focus.cke_colormore,
+a:active.cke_colorauto,
+a:active.cke_colormore
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+/* Styles to toolbar. */
+.cke_toolbar
+{
+ float: left;
+}
+.cke_rtl .cke_toolbar
+{
+ float: right;
+}
+.cke_toolgroup
+{
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ float: left;
+ margin: 0 6px 5px 0;
+ padding: 2px;
+ background: url(images/sprites.png) repeat-x 0 -500px;
+ background: -webkit-gradient(linear, 0 0, 0 100, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff, #d3d3d3 100px); background: -webkit-linear-gradient(top, #fff, #d3d3d3 100px); background: -o-linear-gradient(top, #fff, #d3d3d3 100px); background: -ms-linear-gradient(top, #fff, #d3d3d3 100px); background: linear-gradient(top, #fff, #d3d3d3 100px); }
+.cke_hc .cke_toolgroup
+{
+ padding-right: 0;
+ margin-right: 4px;
+}
+.cke_rtl .cke_toolgroup
+{
+ float: right;
+ margin-left: 6px;
+ margin-right: 0;
+}
+.cke_rtl.cke_hc .cke_toolgroup
+{
+ padding-left: 0;
+ margin-left: 4px;
+}
+a.cke_button
+{
+ display: inline-block;
+ height: 18px;
+ padding: 2px 4px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ outline: none;
+ cursor: default;
+ float: left;
+ border: 0;
+}
+.cke_rtl .cke_button
+{
+ float: right;
+}
+.cke_hc .cke_button
+{
+ border: 1px solid black;
+ padding: 3px 5px;
+ margin: -2px 4px 0 -2px;
+}
+.cke_rtl.cke_hc .cke_button
+{
+ margin: -2px -2px 0 4px;
+}
+.cke_button_on
+{
+ background-color: #a3d7ff;
+}
+.cke_hc .cke_button_on
+{
+ border-width: 3px;
+ padding: 1px 3px;
+}
+.cke_button_off
+{
+ opacity: 0.7;
+}
+.cke_button_disabled
+{
+ opacity: 0.3;
+}
+a.cke_button_on:hover,
+a.cke_button_on:focus,
+a.cke_button_on:active
+{
+ background-color: #86caff;
+}
+.cke_hc a.cke_button:hover
+{
+ background: black;
+}
+a.cke_button_off:hover,
+a.cke_button_off:focus,
+a.cke_button_off:active
+{
+ background-color: #dff1ff;
+ opacity: 1;
+}
+.cke_button_icon
+{
+ cursor: inherit;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+ width: 16px;
+ height: 16px;
+ float: left;
+ display: inline-block;
+}
+.cke_rtl .cke_button_icon
+{
+ float: right;
+}
+.cke_hc .cke_button_icon
+{
+ display: none;
+}
+.cke_button_label
+{
+ display: none;
+ padding-left: 3px;
+ margin-top: 1px;
+ line-height: 16px;
+ vertical-align: middle;
+ float: left;
+ cursor: default;
+}
+.cke_hc .cke_button_label
+{
+ padding: 0;
+ display: inline-block;
+}
+.cke_rtl .cke_button_label
+{
+ padding-right: 3px;
+ padding-left: 0;
+ float: right;
+}
+.cke_button_arrow
+{
+ display: inline-block;
+ margin: 7px 0 0 1px;
+ width: 0;
+ height: 0;
+ border-width: 3px;
+ border-color: #2f2f2f transparent transparent transparent;
+ border-style: solid dashed dashed dashed;
+ cursor: default;
+ vertical-align: middle;
+}
+.cke_rtl .cke_button_arrow
+{
+ margin-right: 5px;
+ margin-left: 0;
+}
+.cke_hc .cke_button_arrow
+{
+ font-size: 10px;
+ margin: 0 -2px 0 3px;
+ width: auto;
+ border: 0;
+}
+.cke_rtl.cke_hc .cke_button_arrow
+{
+ margin: 0 3px 0 -2px;
+}
+.cke_toolbar_separator
+{
+ float: left;
+ border-left: solid 1px #D3D3D3;
+ margin: 3px 2px 0;
+ height: 16px;
+}
+.cke_rtl .cke_toolbar_separator
+{
+ border-right: solid 1px #D3D3D3;
+ border-left: 0;
+ float: right;
+}
+.cke_hc .cke_toolbar_separator
+{
+ margin-left: 0;
+ width: 3px;
+}
+.cke_rtl.cke_hc .cke_toolbar_separator
+{
+ margin:3px 0 0 2px;
+}
+.cke_toolbar_break
+{
+ display: block;
+ clear: left;
+}
+.cke_rtl .cke_toolbar_break
+{
+ clear: right;
+}
+.cke_toolbox_collapser
+{
+ width: 12px;
+ height: 11px;
+ float: right;
+ border: 1px outset #d3d3d3;
+ margin: 11px 0 0;
+ font-size: 0;
+ cursor: default;
+ text-align: center;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min
+{
+ margin: 0 2px 4px;
+}
+.cke_rtl .cke_toolbox_collapser
+{
+ float: left;
+}
+.cke_hc .cke_toolbox_collapser
+{
+ border-width: 1px;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ display: inline-block;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: transparent transparent #2f2f2f;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin: 4px 2px 0 0;
+ border-color: #2f2f2f transparent transparent;
+}
+.cke_hc .cke_toolbox_collapser .cke_arrow
+{
+ font-size: 8px;
+ width: auto;
+ border: 0;
+ margin-top: 0;
+ margin-right: 2px;
+}
+/* Styles menus, which are lists of selectable items (context menu, menu button). */
+.cke_menubutton
+{
+ display:block;
+}
+.cke_menuitem span
+{
+ cursor: default;
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+ display:block;
+}
+.cke_hc .cke_menubutton:hover,
+.cke_hc .cke_menubutton:focus,
+.cke_hc .cke_menubutton:active
+{
+ border: 2px solid;
+}
+.cke_menubutton_inner {
+ display: table-row;
+}
+.cke_menubutton_icon,
+.cke_menubutton_label,
+.cke_menuarrow {
+ display: table-cell;
+}
+.cke_menubutton_icon
+{
+ background-color: #D3D3D3;
+ opacity: 0.70; filter: alpha(opacity=70); padding: 4px;
+}
+.cke_hc .cke_menubutton_icon
+{
+ height: 16px;
+ width: 0;
+ padding: 4px 0;
+}
+.cke_menubutton:hover .cke_menubutton_icon,
+.cke_menubutton:focus .cke_menubutton_icon,
+.cke_menubutton:active .cke_menubutton_icon
+{
+ background-color: #9d9d9d;
+}
+.cke_menubutton_disabled:hover .cke_menubutton_icon,
+.cke_menubutton_disabled:focus .cke_menubutton_icon,
+.cke_menubutton_disabled:active .cke_menubutton_icon
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton_label
+{
+ padding: 0 5px;
+ background-color: transparent;
+ width: 100%;
+ vertical-align: middle;
+}
+.cke_menubutton_disabled .cke_menubutton_label
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+}
+.cke_panel_frame .cke_menubutton_label
+{
+ display: none;
+}
+.cke_menuseparator
+{
+ background-color: #D3D3D3;
+ height: 2px;
+ filter: alpha(opacity=70); opacity: 0.70; }
+.cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 0 -1400px;
+ background-repeat: no-repeat;
+ padding: 0 5px;
+}
+.cke_rtl .cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 7px -1380px;
+ background-repeat: no-repeat;
+}
+.cke_menuarrow span
+{
+ display: none;
+}
+.cke_hc .cke_menuarrow
+{
+}
+.cke_hc .cke_menuarrow span
+{
+ vertical-align: middle;
+ display: inline;
+}
+/* Styles toolbar combos. */
+.cke_combo
+{
+ display: inline-block;
+ float: left;
+}
+.cke_rtl .cke_combo
+{
+ float: right;
+}
+.cke_combo_label
+{
+ display: none;
+ float: left;
+ line-height: 26px;
+ vertical-align: top;
+ margin-right: 5px;
+ filter: alpha(opacity = 70); opacity: 0.7; }
+.cke_rtl .cke_combo_label
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_combo_button
+{
+ display: inline-block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: url(images/sprites.png) 0 -100px repeat-x; float: left;
+ padding: 2px 4px 2px 6px;
+ height: 22px;
+ margin: 0 5px 5px 0;
+ background: -moz-linear-gradient(bottom, #fff, #d3d3d3 100px);
+ background: -webkit-gradient(linear, left bottom, left -100, from(#fff), to(#d3d3d3));
+}
+.cke_combo_off .cke_combo_button:hover,
+.cke_combo_off .cke_combo_button:focus,
+.cke_combo_off .cke_combo_button:active
+{
+ background: #DFF1FF;
+ outline: none;
+}
+.cke_rtl .cke_combo_button
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_hc .cke_combo_button
+{
+ border: 1px solid black;
+ padding: 1px 3px 1px 3px;
+}
+.cke_hc .cke_rtl .cke_combo_button
+{
+ border: 1px solid black;
+}
+.cke_combo_text
+{
+ line-height: 24px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ color: #666666;
+ float: left;
+ cursor: default;
+ width: 60px;
+}
+.cke_rtl .cke_combo_text
+{
+ float: right;
+ text-align: right;
+}
+.cke_combo_inlinelabel
+{
+ font-style: italic;
+ opacity: 0.70;
+}
+.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel
+{
+ opacity: 1;
+}
+.cke_combo_open
+{
+ cursor: default;
+ display: inline-block;
+ font-size: 0;
+ height: 19px;
+ line-height: 17px;
+ margin: 1px 3px;
+ width: 5px;
+}
+.cke_combo_arrow
+{
+ margin: 9px 0 0;
+ float: left;
+ opacity: 0.70;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-left: 3px solid transparent;
+ border-right: 3px solid transparent;
+ border-top: 3px solid #2f2f2f;
+}
+.cke_hc .cke_combo_arrow
+{
+ font-size: 10px;
+ width: auto;
+ border: 0;
+ margin-top: 4px;
+}
+.cke_combo_disabled .cke_combo_inlinelabel,
+.cke_combo_disabled .cke_combo_open
+{
+ opacity: 0.3;
+}
+/* Styles the elements path bar, available at the bottom of the editor UI.*/
+.cke_path
+{
+ margin-top: 5px;
+ float: left;
+}
+.cke_path_item,
+.cke_path_empty
+{
+ display: inline-block;
+ float: left;
+ padding: 1px 4px 0;
+ color: #60676a;
+ cursor: default;
+ text-decoration: none;
+ outline: 0;
+ border: 0;
+}
+.cke_rtl .cke_path,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_empty
+{
+ float: right;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ background-color: #efefef;
+ opacity: 0.7;
+ color: #000;
+}
+/* Contains hard-coded presets for "configurable-like" options of the UI
+ (e.g. display labels on specific buttons) */
+.cke_button__source_label
+{
+ display: inline;
+}
+.cke_combo__fontsize .cke_combo_text
+{
+ width: 30px;
+}
+.cke_combopanel__fontsize
+{
+ width: 120px;
+}
+.cke_source
+{
+ font-family: 'Courier New' , Monospace;
+ font-size: small;
+ background-color: #fff;
+ white-space: pre;
+}
+.cke_wysiwyg_frame, .cke_wysiwyg_div
+{
+ background-color: #fff;
+}
+/* Important!
+ To avoid showing the editor UI while its styles are still not available, the
+ editor creates it with visibility:hidden. Here, we restore the UI visibility. */
+.cke_chrome
{
visibility: inherit;
}
-
-html.cke_skin_kama_container
+/* For accessibility purposes, several "voice labels" are present in the UI.
+ These are usually <span> elements that show not be visible, but that are
+ used by screen-readers to announce other elements. Here, we hide these
+ <spans>, in fact. */
+.cke_voice_label
+{
+ display: none;
+}
+legend.cke_voice_label
{
- visibility: visible;
+ display: none;
}
diff --git a/devel/third-party/ckeditor/skins/kama/editor_ie.css b/devel/third-party/ckeditor/skins/kama/editor_ie.css
new file mode 100644
index 0000000..b9605ae
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/editor_ie.css
@@ -0,0 +1,948 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+editor_ie.css
+===============
+This file contains styles to used by all versions of Internet Explorer only.
+*/
+/* Base it on editor.css, overriding it with styles defined in this file. */
+.cke_reset
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.cke_reset_all, .cke_reset_all *
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ border-collapse: collapse;
+ font: normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
+ color: #000;
+ text-align: left;
+ white-space: nowrap;
+ cursor: auto;
+}
+.cke_reset_all .cke_rtl *
+{
+ text-align: right;
+}
+.cke_reset_all iframe
+{
+ vertical-align: inherit; }
+.cke_reset_all textarea
+{
+ white-space: pre;
+}
+.cke_reset_all textarea,
+.cke_reset_all input[type="text"],
+.cke_reset_all input[type="password"]
+{
+ cursor: text;
+}
+.cke_reset_all textarea[disabled],
+.cke_reset_all input[type="text"][disabled],
+.cke_reset_all input[type="password"][disabled]
+{
+ cursor: default;
+}
+.cke_reset_all fieldset
+{
+ padding: 10px;
+ border: 2px groove #E0DFE3;
+}
+.cke_reset_all select {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+.cke_chrome
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #D3D3D3;
+ padding: 5px;
+}
+.cke_hc.cke_chrome
+{
+ padding: 2px;
+}
+.cke_inner
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -webkit-touch-callout: none;
+ border-radius: 5px;
+ background: #d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;
+ background: -webkit-gradient(linear, 0 -15, 0 40, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -webkit-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -o-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -ms-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: linear-gradient(top, #fff -15px, #d3d3d3 40px);
+ padding: 5px;
+}
+.cke_float
+{
+ background: #fff;
+}
+.cke_float .cke_inner
+{
+ padding-bottom: 0;
+}
+.cke_hc .cke_contents
+{
+ border: 1px solid black;
+}
+.cke_top,
+.cke_contents,
+.cke_bottom
+{
+ display: block;
+ overflow: hidden;
+}
+.cke_resizer
+{
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 12px 12px 0 12px;
+ border-color: transparent #EFEFEF transparent transparent;
+ border-style: dashed solid dashed dashed; margin: 10px 0 0;
+ font-size: 0;
+ float: right;
+ vertical-align: bottom;
+ cursor: se-resize;
+ opacity: 0.8;
+}
+.cke_resizer_ltr
+{
+ margin-left: -12px;
+}
+.cke_resizer_rtl
+{
+ float: left;
+ border-color: transparent transparent transparent #EFEFEF;
+ border-style: dashed dashed dashed solid; margin-right: -12px;
+ cursor: sw-resize;
+}
+.cke_hc .cke_resizer
+{
+ width: 10px;
+ height: 10px;
+ border: 1px solid #fff;
+ margin-left: 0;
+}
+.cke_hc .cke_resizer_rtl
+{
+ margin-right: 0;
+}
+.cke_wysiwyg_div
+{
+ display: block;
+ height: 100%;
+ overflow: auto;
+ padding: 0 8px;
+ outline-style: none;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.cke_panel
+{
+ visibility: visible;
+ border: 1px solid #8f8f73;
+ background-color: #fff;
+ width: 120px;
+ height: 100px;
+ overflow: hidden;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.cke_menu_panel
+{
+ padding: 2px;
+ margin: 0;
+}
+.cke_combopanel
+{
+ border: 1px solid #8f8f73;
+ -moz-border-radius-topleft: 0;
+ -webkit-border-top-left-radius: 0;
+ border-top-left-radius: 0;
+ width: 150px;
+ height: 170px;
+}
+.cke_panel_frame
+{
+ width: 100%;
+ height: 100%;
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 12px;
+ overflow: auto;
+ overflow-x: hidden;
+}
+.cke_panel_container
+{
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.cke_panel_list
+{
+ list-style-type: none;
+ margin: 3px;
+ padding: 0px;
+ white-space: nowrap;
+}
+.cke_panel_listItem
+{
+ margin: 0px;
+}
+.cke_panel_listItem a
+{
+ padding: 2px;
+ display: block;
+ border: 1px solid #fff;
+ color: inherit !important;
+ text-decoration: none;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+* html .cke_panel_listItem a
+{
+ width : 100%;
+ color: #000;
+}
+*:first-child+html .cke_panel_listItem a
+{
+ color: #000;
+}
+.cke_panel_listItem.cke_selected a
+{
+ border: 1px solid #ccc;
+ background-color: #e9f5ff;
+}
+.cke_panel_listItem a:hover,
+.cke_panel_listItem a:focus,
+.cke_panel_listItem a:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+}
+.cke_hc .cke_panel_listItem.cke_selected a,
+.cke_hc .cke_panel_listItem a:hover,
+.cke_hc .cke_panel_listItem a:focus,
+.cke_hc .cke_panel_listItem a:active
+{
+ border-width: 3px;
+ padding: 0px;
+}
+.cke_panel_grouptitle
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-weight: bold;
+ white-space: nowrap;
+ background-color: #dcdcdc;
+ color: #000;
+ margin:0px;
+ padding:3px;
+}
+.cke_panel_listItem p,
+.cke_panel_listItem h1,
+.cke_panel_listItem h2,
+.cke_panel_listItem h3,
+.cke_panel_listItem h4,
+.cke_panel_listItem h5,
+.cke_panel_listItem h6,
+.cke_panel_listItem pre
+{
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+.cke_colorblock
+{
+ padding: 3px;
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+}
+.cke_colorblock,
+.cke_colorblock a
+{
+ text-decoration: none;
+ color: #000;
+}
+span.cke_colorbox
+{
+ width: 10px;
+ height: 10px;
+ border: #808080 1px solid;
+ float: left;
+}
+.cke_rtl span.cke_colorbox
+{
+ float: right;
+}
+a.cke_colorbox
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ float: left;
+ width: 12px;
+ height: 12px;
+}
+.cke_rtl a.cke_colorbox
+{
+ float: right;
+}
+a:hover.cke_colorbox,
+a:focus.cke_colorbox,
+a:active.cke_colorbox
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+a.cke_colorauto,
+a.cke_colormore
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ display: block;
+ cursor: pointer;
+}
+a:hover.cke_colorauto,
+a:hover.cke_colormore,
+a:focus.cke_colorauto,
+a:focus.cke_colormore,
+a:active.cke_colorauto,
+a:active.cke_colormore
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+.cke_toolbar
+{
+ float: left;
+}
+.cke_rtl .cke_toolbar
+{
+ float: right;
+}
+.cke_toolgroup
+{
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ float: left;
+ margin: 0 6px 5px 0;
+ padding: 2px;
+ background: url(images/sprites.png) repeat-x 0 -500px;
+ background: -webkit-gradient(linear, 0 0, 0 100, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff, #d3d3d3 100px); background: -webkit-linear-gradient(top, #fff, #d3d3d3 100px); background: -o-linear-gradient(top, #fff, #d3d3d3 100px); background: -ms-linear-gradient(top, #fff, #d3d3d3 100px); background: linear-gradient(top, #fff, #d3d3d3 100px); }
+.cke_hc .cke_toolgroup
+{
+ padding-right: 0;
+ margin-right: 4px;
+}
+.cke_rtl .cke_toolgroup
+{
+ float: right;
+ margin-left: 6px;
+ margin-right: 0;
+}
+.cke_rtl.cke_hc .cke_toolgroup
+{
+ padding-left: 0;
+ margin-left: 4px;
+}
+a.cke_button
+{
+ display: inline-block;
+ height: 18px;
+ padding: 2px 4px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ outline: none;
+ cursor: default;
+ float: left;
+ border: 0;
+}
+.cke_rtl .cke_button
+{
+ float: right;
+}
+.cke_hc .cke_button
+{
+ border: 1px solid black;
+ padding: 3px 5px;
+ margin: -2px 4px 0 -2px;
+}
+.cke_rtl.cke_hc .cke_button
+{
+ margin: -2px -2px 0 4px;
+}
+.cke_button_on
+{
+ background-color: #a3d7ff;
+}
+.cke_hc .cke_button_on
+{
+ border-width: 3px;
+ padding: 1px 3px;
+}
+.cke_button_off
+{
+ opacity: 0.7;
+}
+.cke_button_disabled
+{
+ opacity: 0.3;
+}
+a.cke_button_on:hover,
+a.cke_button_on:focus,
+a.cke_button_on:active
+{
+ background-color: #86caff;
+}
+.cke_hc a.cke_button:hover
+{
+ background: black;
+}
+a.cke_button_off:hover,
+a.cke_button_off:focus,
+a.cke_button_off:active
+{
+ background-color: #dff1ff;
+ opacity: 1;
+}
+.cke_button_icon
+{
+ cursor: inherit;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+ width: 16px;
+ height: 16px;
+ float: left;
+ display: inline-block;
+}
+.cke_rtl .cke_button_icon
+{
+ float: right;
+}
+.cke_hc .cke_button_icon
+{
+ display: none;
+}
+.cke_button_label
+{
+ display: none;
+ padding-left: 3px;
+ margin-top: 1px;
+ line-height: 16px;
+ vertical-align: middle;
+ float: left;
+ cursor: default;
+}
+.cke_hc .cke_button_label
+{
+ padding: 0;
+ display: inline-block;
+}
+.cke_rtl .cke_button_label
+{
+ padding-right: 3px;
+ padding-left: 0;
+ float: right;
+}
+.cke_button_arrow
+{
+ display: inline-block;
+ margin: 7px 0 0 1px;
+ width: 0;
+ height: 0;
+ border-width: 3px;
+ border-color: #2f2f2f transparent transparent transparent;
+ border-style: solid dashed dashed dashed;
+ cursor: default;
+ vertical-align: middle;
+}
+.cke_rtl .cke_button_arrow
+{
+ margin-right: 5px;
+ margin-left: 0;
+}
+.cke_hc .cke_button_arrow
+{
+ font-size: 10px;
+ margin: 0 -2px 0 3px;
+ width: auto;
+ border: 0;
+}
+.cke_rtl.cke_hc .cke_button_arrow
+{
+ margin: 0 3px 0 -2px;
+}
+.cke_toolbar_separator
+{
+ float: left;
+ border-left: solid 1px #D3D3D3;
+ margin: 3px 2px 0;
+ height: 16px;
+}
+.cke_rtl .cke_toolbar_separator
+{
+ border-right: solid 1px #D3D3D3;
+ border-left: 0;
+ float: right;
+}
+.cke_hc .cke_toolbar_separator
+{
+ margin-left: 0;
+ width: 3px;
+}
+.cke_rtl.cke_hc .cke_toolbar_separator
+{
+ margin:3px 0 0 2px;
+}
+.cke_toolbar_break
+{
+ display: block;
+ clear: left;
+}
+.cke_rtl .cke_toolbar_break
+{
+ clear: right;
+}
+.cke_toolbox_collapser
+{
+ width: 12px;
+ height: 11px;
+ float: right;
+ border: 1px outset #d3d3d3;
+ margin: 11px 0 0;
+ font-size: 0;
+ cursor: default;
+ text-align: center;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min
+{
+ margin: 0 2px 4px;
+}
+.cke_rtl .cke_toolbox_collapser
+{
+ float: left;
+}
+.cke_hc .cke_toolbox_collapser
+{
+ border-width: 1px;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ display: inline-block;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: transparent transparent #2f2f2f;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin: 4px 2px 0 0;
+ border-color: #2f2f2f transparent transparent;
+}
+.cke_hc .cke_toolbox_collapser .cke_arrow
+{
+ font-size: 8px;
+ width: auto;
+ border: 0;
+ margin-top: 0;
+ margin-right: 2px;
+}
+.cke_menubutton
+{
+ display:block;
+}
+.cke_menuitem span
+{
+ cursor: default;
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+ display:block;
+}
+.cke_hc .cke_menubutton:hover,
+.cke_hc .cke_menubutton:focus,
+.cke_hc .cke_menubutton:active
+{
+ border: 2px solid;
+}
+.cke_menubutton_inner {
+ display: table-row;
+}
+.cke_menubutton_icon,
+.cke_menubutton_label,
+.cke_menuarrow {
+ display: table-cell;
+}
+.cke_menubutton_icon
+{
+ background-color: #D3D3D3;
+ opacity: 0.70; filter: alpha(opacity=70); padding: 4px;
+}
+.cke_hc .cke_menubutton_icon
+{
+ height: 16px;
+ width: 0;
+ padding: 4px 0;
+}
+.cke_menubutton:hover .cke_menubutton_icon,
+.cke_menubutton:focus .cke_menubutton_icon,
+.cke_menubutton:active .cke_menubutton_icon
+{
+ background-color: #9d9d9d;
+}
+.cke_menubutton_disabled:hover .cke_menubutton_icon,
+.cke_menubutton_disabled:focus .cke_menubutton_icon,
+.cke_menubutton_disabled:active .cke_menubutton_icon
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton_label
+{
+ padding: 0 5px;
+ background-color: transparent;
+ width: 100%;
+ vertical-align: middle;
+}
+.cke_menubutton_disabled .cke_menubutton_label
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+}
+.cke_panel_frame .cke_menubutton_label
+{
+ display: none;
+}
+.cke_menuseparator
+{
+ background-color: #D3D3D3;
+ height: 2px;
+ filter: alpha(opacity=70); opacity: 0.70; }
+.cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 0 -1400px;
+ background-repeat: no-repeat;
+ padding: 0 5px;
+}
+.cke_rtl .cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 7px -1380px;
+ background-repeat: no-repeat;
+}
+.cke_menuarrow span
+{
+ display: none;
+}
+.cke_hc .cke_menuarrow
+{
+}
+.cke_hc .cke_menuarrow span
+{
+ vertical-align: middle;
+ display: inline;
+}
+.cke_combo
+{
+ display: inline-block;
+ float: left;
+}
+.cke_rtl .cke_combo
+{
+ float: right;
+}
+.cke_combo_label
+{
+ display: none;
+ float: left;
+ line-height: 26px;
+ vertical-align: top;
+ margin-right: 5px;
+ filter: alpha(opacity = 70); opacity: 0.7; }
+.cke_rtl .cke_combo_label
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_combo_button
+{
+ display: inline-block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: url(images/sprites.png) 0 -100px repeat-x; float: left;
+ padding: 2px 4px 2px 6px;
+ height: 22px;
+ margin: 0 5px 5px 0;
+ background: -moz-linear-gradient(bottom, #fff, #d3d3d3 100px);
+ background: -webkit-gradient(linear, left bottom, left -100, from(#fff), to(#d3d3d3));
+}
+.cke_combo_off .cke_combo_button:hover,
+.cke_combo_off .cke_combo_button:focus,
+.cke_combo_off .cke_combo_button:active
+{
+ background: #DFF1FF;
+ outline: none;
+}
+.cke_rtl .cke_combo_button
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_hc .cke_combo_button
+{
+ border: 1px solid black;
+ padding: 1px 3px 1px 3px;
+}
+.cke_hc .cke_rtl .cke_combo_button
+{
+ border: 1px solid black;
+}
+.cke_combo_text
+{
+ line-height: 24px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ color: #666666;
+ float: left;
+ cursor: default;
+ width: 60px;
+}
+.cke_rtl .cke_combo_text
+{
+ float: right;
+ text-align: right;
+}
+.cke_combo_inlinelabel
+{
+ font-style: italic;
+ opacity: 0.70;
+}
+.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel
+{
+ opacity: 1;
+}
+.cke_combo_open
+{
+ cursor: default;
+ display: inline-block;
+ font-size: 0;
+ height: 19px;
+ line-height: 17px;
+ margin: 1px 3px;
+ width: 5px;
+}
+.cke_combo_arrow
+{
+ margin: 9px 0 0;
+ float: left;
+ opacity: 0.70;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-left: 3px solid transparent;
+ border-right: 3px solid transparent;
+ border-top: 3px solid #2f2f2f;
+}
+.cke_hc .cke_combo_arrow
+{
+ font-size: 10px;
+ width: auto;
+ border: 0;
+ margin-top: 4px;
+}
+.cke_combo_disabled .cke_combo_inlinelabel,
+.cke_combo_disabled .cke_combo_open
+{
+ opacity: 0.3;
+}
+.cke_path
+{
+ margin-top: 5px;
+ float: left;
+}
+.cke_path_item,
+.cke_path_empty
+{
+ display: inline-block;
+ float: left;
+ padding: 1px 4px 0;
+ color: #60676a;
+ cursor: default;
+ text-decoration: none;
+ outline: 0;
+ border: 0;
+}
+.cke_rtl .cke_path,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_empty
+{
+ float: right;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ background-color: #efefef;
+ opacity: 0.7;
+ color: #000;
+}
+.cke_button__source_label
+{
+ display: inline;
+}
+.cke_combo__fontsize .cke_combo_text
+{
+ width: 30px;
+}
+.cke_combopanel__fontsize
+{
+ width: 120px;
+}
+.cke_source
+{
+ font-family: 'Courier New' , Monospace;
+ font-size: small;
+ background-color: #fff;
+ white-space: pre;
+}
+.cke_wysiwyg_frame, .cke_wysiwyg_div
+{
+ background-color: #fff;
+}
+.cke_chrome
+{
+ visibility: inherit;
+}
+.cke_voice_label
+{
+ display: none;
+}
+legend.cke_voice_label
+{
+ display: none;
+}
+.cke_button_off
+{
+ filter: alpha(opacity = 70);
+}
+.cke_button_on
+{
+ filter: alpha(opacity = 100);
+}
+.cke_button_disabled
+{
+ filter: alpha(opacity = 30);
+}
+.cke_button_off:hover,
+.cke_button_off:focus,
+.cke_button_off:active
+{
+ filter: alpha(opacity = 100);
+}
+.cke_hc .cke_button_arrow
+{
+ margin-top: 5px;
+}
+.cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 70);
+}
+.cke_combo_button_off:hover .cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 100);
+}
+/* Disabled combo button styles. */
+.cke_combo_button_disabled .cke_combo_inlinelabel,
+.cke_combo_button_disabled .cke_combo_open
+{
+ filter: alpha(opacity = 30);
+}
+.cke_toolbox_collapser
+{
+ border: 2px outset #efefef;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ margin: 0 1px 1px 1px;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin-left: 2px;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ filter: alpha(opacity = 70);
+}
+.cke_resizer
+{
+ filter: alpha(opacity = 80);
+}
+.cke_hc .cke_resizer
+{
+ filter: none;
+ font-size: 28px;
+}
+/* #3766 In the context menu, long labels with second level menu get wrapped */
+.cke_menuarrow
+{
+ position: absolute;
+ right: 2px;
+}
+.cke_rtl .cke_menuarrow
+{
+ position: absolute;
+ left: 2px;
+}
+/* END #3766 */
+/* This guarantees the gap between the footer buttons in RTL under IE8 (#9359) */
+.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first
+{
+ padding-left: 10px !important;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/editor_ie7.css b/devel/third-party/ckeditor/skins/kama/editor_ie7.css
new file mode 100644
index 0000000..af21ec7
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/editor_ie7.css
@@ -0,0 +1,1106 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+editor_ie7.css
+===============
+This file contains styles to used by Internet Explorer 7 only.
+*/
+/* Base it on editor_ie.css, overriding it with styles defined in this file. */
+.cke_reset
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.cke_reset_all, .cke_reset_all *
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ border-collapse: collapse;
+ font: normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
+ color: #000;
+ text-align: left;
+ white-space: nowrap;
+ cursor: auto;
+}
+.cke_reset_all .cke_rtl *
+{
+ text-align: right;
+}
+.cke_reset_all iframe
+{
+ vertical-align: inherit; }
+.cke_reset_all textarea
+{
+ white-space: pre;
+}
+.cke_reset_all textarea,
+.cke_reset_all input[type="text"],
+.cke_reset_all input[type="password"]
+{
+ cursor: text;
+}
+.cke_reset_all textarea[disabled],
+.cke_reset_all input[type="text"][disabled],
+.cke_reset_all input[type="password"][disabled]
+{
+ cursor: default;
+}
+.cke_reset_all fieldset
+{
+ padding: 10px;
+ border: 2px groove #E0DFE3;
+}
+.cke_reset_all select {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+.cke_chrome
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #D3D3D3;
+ padding: 5px;
+}
+.cke_hc.cke_chrome
+{
+ padding: 2px;
+}
+.cke_inner
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -webkit-touch-callout: none;
+ border-radius: 5px;
+ background: #d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;
+ background: -webkit-gradient(linear, 0 -15, 0 40, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -webkit-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -o-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -ms-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: linear-gradient(top, #fff -15px, #d3d3d3 40px);
+ padding: 5px;
+}
+.cke_float
+{
+ background: #fff;
+}
+.cke_float .cke_inner
+{
+ padding-bottom: 0;
+}
+.cke_hc .cke_contents
+{
+ border: 1px solid black;
+}
+.cke_top,
+.cke_contents,
+.cke_bottom
+{
+ display: block;
+ overflow: hidden;
+}
+.cke_resizer
+{
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 12px 12px 0 12px;
+ border-color: transparent #EFEFEF transparent transparent;
+ border-style: dashed solid dashed dashed; margin: 10px 0 0;
+ font-size: 0;
+ float: right;
+ vertical-align: bottom;
+ cursor: se-resize;
+ opacity: 0.8;
+}
+.cke_resizer_ltr
+{
+ margin-left: -12px;
+}
+.cke_resizer_rtl
+{
+ float: left;
+ border-color: transparent transparent transparent #EFEFEF;
+ border-style: dashed dashed dashed solid; margin-right: -12px;
+ cursor: sw-resize;
+}
+.cke_hc .cke_resizer
+{
+ width: 10px;
+ height: 10px;
+ border: 1px solid #fff;
+ margin-left: 0;
+}
+.cke_hc .cke_resizer_rtl
+{
+ margin-right: 0;
+}
+.cke_wysiwyg_div
+{
+ display: block;
+ height: 100%;
+ overflow: auto;
+ padding: 0 8px;
+ outline-style: none;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.cke_panel
+{
+ visibility: visible;
+ border: 1px solid #8f8f73;
+ background-color: #fff;
+ width: 120px;
+ height: 100px;
+ overflow: hidden;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.cke_menu_panel
+{
+ padding: 2px;
+ margin: 0;
+}
+.cke_combopanel
+{
+ border: 1px solid #8f8f73;
+ -moz-border-radius-topleft: 0;
+ -webkit-border-top-left-radius: 0;
+ border-top-left-radius: 0;
+ width: 150px;
+ height: 170px;
+}
+.cke_panel_frame
+{
+ width: 100%;
+ height: 100%;
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 12px;
+ overflow: auto;
+ overflow-x: hidden;
+}
+.cke_panel_container
+{
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.cke_panel_list
+{
+ list-style-type: none;
+ margin: 3px;
+ padding: 0px;
+ white-space: nowrap;
+}
+.cke_panel_listItem
+{
+ margin: 0px;
+}
+.cke_panel_listItem a
+{
+ padding: 2px;
+ display: block;
+ border: 1px solid #fff;
+ color: inherit !important;
+ text-decoration: none;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+* html .cke_panel_listItem a
+{
+ width : 100%;
+ color: #000;
+}
+*:first-child+html .cke_panel_listItem a
+{
+ color: #000;
+}
+.cke_panel_listItem.cke_selected a
+{
+ border: 1px solid #ccc;
+ background-color: #e9f5ff;
+}
+.cke_panel_listItem a:hover,
+.cke_panel_listItem a:focus,
+.cke_panel_listItem a:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+}
+.cke_hc .cke_panel_listItem.cke_selected a,
+.cke_hc .cke_panel_listItem a:hover,
+.cke_hc .cke_panel_listItem a:focus,
+.cke_hc .cke_panel_listItem a:active
+{
+ border-width: 3px;
+ padding: 0px;
+}
+.cke_panel_grouptitle
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-weight: bold;
+ white-space: nowrap;
+ background-color: #dcdcdc;
+ color: #000;
+ margin:0px;
+ padding:3px;
+}
+.cke_panel_listItem p,
+.cke_panel_listItem h1,
+.cke_panel_listItem h2,
+.cke_panel_listItem h3,
+.cke_panel_listItem h4,
+.cke_panel_listItem h5,
+.cke_panel_listItem h6,
+.cke_panel_listItem pre
+{
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+.cke_colorblock
+{
+ padding: 3px;
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+}
+.cke_colorblock,
+.cke_colorblock a
+{
+ text-decoration: none;
+ color: #000;
+}
+span.cke_colorbox
+{
+ width: 10px;
+ height: 10px;
+ border: #808080 1px solid;
+ float: left;
+}
+.cke_rtl span.cke_colorbox
+{
+ float: right;
+}
+a.cke_colorbox
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ float: left;
+ width: 12px;
+ height: 12px;
+}
+.cke_rtl a.cke_colorbox
+{
+ float: right;
+}
+a:hover.cke_colorbox,
+a:focus.cke_colorbox,
+a:active.cke_colorbox
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+a.cke_colorauto,
+a.cke_colormore
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ display: block;
+ cursor: pointer;
+}
+a:hover.cke_colorauto,
+a:hover.cke_colormore,
+a:focus.cke_colorauto,
+a:focus.cke_colormore,
+a:active.cke_colorauto,
+a:active.cke_colormore
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+.cke_toolbar
+{
+ float: left;
+}
+.cke_rtl .cke_toolbar
+{
+ float: right;
+}
+.cke_toolgroup
+{
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ float: left;
+ margin: 0 6px 5px 0;
+ padding: 2px;
+ background: url(images/sprites.png) repeat-x 0 -500px;
+ background: -webkit-gradient(linear, 0 0, 0 100, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff, #d3d3d3 100px); background: -webkit-linear-gradient(top, #fff, #d3d3d3 100px); background: -o-linear-gradient(top, #fff, #d3d3d3 100px); background: -ms-linear-gradient(top, #fff, #d3d3d3 100px); background: linear-gradient(top, #fff, #d3d3d3 100px); }
+.cke_hc .cke_toolgroup
+{
+ padding-right: 0;
+ margin-right: 4px;
+}
+.cke_rtl .cke_toolgroup
+{
+ float: right;
+ margin-left: 6px;
+ margin-right: 0;
+}
+.cke_rtl.cke_hc .cke_toolgroup
+{
+ padding-left: 0;
+ margin-left: 4px;
+}
+a.cke_button
+{
+ display: inline-block;
+ height: 18px;
+ padding: 2px 4px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ outline: none;
+ cursor: default;
+ float: left;
+ border: 0;
+}
+.cke_rtl .cke_button
+{
+ float: right;
+}
+.cke_hc .cke_button
+{
+ border: 1px solid black;
+ padding: 3px 5px;
+ margin: -2px 4px 0 -2px;
+}
+.cke_rtl.cke_hc .cke_button
+{
+ margin: -2px -2px 0 4px;
+}
+.cke_button_on
+{
+ background-color: #a3d7ff;
+}
+.cke_hc .cke_button_on
+{
+ border-width: 3px;
+ padding: 1px 3px;
+}
+.cke_button_off
+{
+ opacity: 0.7;
+}
+.cke_button_disabled
+{
+ opacity: 0.3;
+}
+a.cke_button_on:hover,
+a.cke_button_on:focus,
+a.cke_button_on:active
+{
+ background-color: #86caff;
+}
+.cke_hc a.cke_button:hover
+{
+ background: black;
+}
+a.cke_button_off:hover,
+a.cke_button_off:focus,
+a.cke_button_off:active
+{
+ background-color: #dff1ff;
+ opacity: 1;
+}
+.cke_button_icon
+{
+ cursor: inherit;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+ width: 16px;
+ height: 16px;
+ float: left;
+ display: inline-block;
+}
+.cke_rtl .cke_button_icon
+{
+ float: right;
+}
+.cke_hc .cke_button_icon
+{
+ display: none;
+}
+.cke_button_label
+{
+ display: none;
+ padding-left: 3px;
+ margin-top: 1px;
+ line-height: 16px;
+ vertical-align: middle;
+ float: left;
+ cursor: default;
+}
+.cke_hc .cke_button_label
+{
+ padding: 0;
+ display: inline-block;
+}
+.cke_rtl .cke_button_label
+{
+ padding-right: 3px;
+ padding-left: 0;
+ float: right;
+}
+.cke_button_arrow
+{
+ display: inline-block;
+ margin: 7px 0 0 1px;
+ width: 0;
+ height: 0;
+ border-width: 3px;
+ border-color: #2f2f2f transparent transparent transparent;
+ border-style: solid dashed dashed dashed;
+ cursor: default;
+ vertical-align: middle;
+}
+.cke_rtl .cke_button_arrow
+{
+ margin-right: 5px;
+ margin-left: 0;
+}
+.cke_hc .cke_button_arrow
+{
+ font-size: 10px;
+ margin: 0 -2px 0 3px;
+ width: auto;
+ border: 0;
+}
+.cke_rtl.cke_hc .cke_button_arrow
+{
+ margin: 0 3px 0 -2px;
+}
+.cke_toolbar_separator
+{
+ float: left;
+ border-left: solid 1px #D3D3D3;
+ margin: 3px 2px 0;
+ height: 16px;
+}
+.cke_rtl .cke_toolbar_separator
+{
+ border-right: solid 1px #D3D3D3;
+ border-left: 0;
+ float: right;
+}
+.cke_hc .cke_toolbar_separator
+{
+ margin-left: 0;
+ width: 3px;
+}
+.cke_rtl.cke_hc .cke_toolbar_separator
+{
+ margin:3px 0 0 2px;
+}
+.cke_toolbar_break
+{
+ display: block;
+ clear: left;
+}
+.cke_rtl .cke_toolbar_break
+{
+ clear: right;
+}
+.cke_toolbox_collapser
+{
+ width: 12px;
+ height: 11px;
+ float: right;
+ border: 1px outset #d3d3d3;
+ margin: 11px 0 0;
+ font-size: 0;
+ cursor: default;
+ text-align: center;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min
+{
+ margin: 0 2px 4px;
+}
+.cke_rtl .cke_toolbox_collapser
+{
+ float: left;
+}
+.cke_hc .cke_toolbox_collapser
+{
+ border-width: 1px;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ display: inline-block;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: transparent transparent #2f2f2f;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin: 4px 2px 0 0;
+ border-color: #2f2f2f transparent transparent;
+}
+.cke_hc .cke_toolbox_collapser .cke_arrow
+{
+ font-size: 8px;
+ width: auto;
+ border: 0;
+ margin-top: 0;
+ margin-right: 2px;
+}
+.cke_menubutton
+{
+ display:block;
+}
+.cke_menuitem span
+{
+ cursor: default;
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+ display:block;
+}
+.cke_hc .cke_menubutton:hover,
+.cke_hc .cke_menubutton:focus,
+.cke_hc .cke_menubutton:active
+{
+ border: 2px solid;
+}
+.cke_menubutton_inner {
+ display: table-row;
+}
+.cke_menubutton_icon,
+.cke_menubutton_label,
+.cke_menuarrow {
+ display: table-cell;
+}
+.cke_menubutton_icon
+{
+ background-color: #D3D3D3;
+ opacity: 0.70; filter: alpha(opacity=70); padding: 4px;
+}
+.cke_hc .cke_menubutton_icon
+{
+ height: 16px;
+ width: 0;
+ padding: 4px 0;
+}
+.cke_menubutton:hover .cke_menubutton_icon,
+.cke_menubutton:focus .cke_menubutton_icon,
+.cke_menubutton:active .cke_menubutton_icon
+{
+ background-color: #9d9d9d;
+}
+.cke_menubutton_disabled:hover .cke_menubutton_icon,
+.cke_menubutton_disabled:focus .cke_menubutton_icon,
+.cke_menubutton_disabled:active .cke_menubutton_icon
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton_label
+{
+ padding: 0 5px;
+ background-color: transparent;
+ width: 100%;
+ vertical-align: middle;
+}
+.cke_menubutton_disabled .cke_menubutton_label
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+}
+.cke_panel_frame .cke_menubutton_label
+{
+ display: none;
+}
+.cke_menuseparator
+{
+ background-color: #D3D3D3;
+ height: 2px;
+ filter: alpha(opacity=70); opacity: 0.70; }
+.cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 0 -1400px;
+ background-repeat: no-repeat;
+ padding: 0 5px;
+}
+.cke_rtl .cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 7px -1380px;
+ background-repeat: no-repeat;
+}
+.cke_menuarrow span
+{
+ display: none;
+}
+.cke_hc .cke_menuarrow
+{
+}
+.cke_hc .cke_menuarrow span
+{
+ vertical-align: middle;
+ display: inline;
+}
+.cke_combo
+{
+ display: inline-block;
+ float: left;
+}
+.cke_rtl .cke_combo
+{
+ float: right;
+}
+.cke_combo_label
+{
+ display: none;
+ float: left;
+ line-height: 26px;
+ vertical-align: top;
+ margin-right: 5px;
+ filter: alpha(opacity = 70); opacity: 0.7; }
+.cke_rtl .cke_combo_label
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_combo_button
+{
+ display: inline-block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: url(images/sprites.png) 0 -100px repeat-x; float: left;
+ padding: 2px 4px 2px 6px;
+ height: 22px;
+ margin: 0 5px 5px 0;
+ background: -moz-linear-gradient(bottom, #fff, #d3d3d3 100px);
+ background: -webkit-gradient(linear, left bottom, left -100, from(#fff), to(#d3d3d3));
+}
+.cke_combo_off .cke_combo_button:hover,
+.cke_combo_off .cke_combo_button:focus,
+.cke_combo_off .cke_combo_button:active
+{
+ background: #DFF1FF;
+ outline: none;
+}
+.cke_rtl .cke_combo_button
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_hc .cke_combo_button
+{
+ border: 1px solid black;
+ padding: 1px 3px 1px 3px;
+}
+.cke_hc .cke_rtl .cke_combo_button
+{
+ border: 1px solid black;
+}
+.cke_combo_text
+{
+ line-height: 24px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ color: #666666;
+ float: left;
+ cursor: default;
+ width: 60px;
+}
+.cke_rtl .cke_combo_text
+{
+ float: right;
+ text-align: right;
+}
+.cke_combo_inlinelabel
+{
+ font-style: italic;
+ opacity: 0.70;
+}
+.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel
+{
+ opacity: 1;
+}
+.cke_combo_open
+{
+ cursor: default;
+ display: inline-block;
+ font-size: 0;
+ height: 19px;
+ line-height: 17px;
+ margin: 1px 3px;
+ width: 5px;
+}
+.cke_combo_arrow
+{
+ margin: 9px 0 0;
+ float: left;
+ opacity: 0.70;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-left: 3px solid transparent;
+ border-right: 3px solid transparent;
+ border-top: 3px solid #2f2f2f;
+}
+.cke_hc .cke_combo_arrow
+{
+ font-size: 10px;
+ width: auto;
+ border: 0;
+ margin-top: 4px;
+}
+.cke_combo_disabled .cke_combo_inlinelabel,
+.cke_combo_disabled .cke_combo_open
+{
+ opacity: 0.3;
+}
+.cke_path
+{
+ margin-top: 5px;
+ float: left;
+}
+.cke_path_item,
+.cke_path_empty
+{
+ display: inline-block;
+ float: left;
+ padding: 1px 4px 0;
+ color: #60676a;
+ cursor: default;
+ text-decoration: none;
+ outline: 0;
+ border: 0;
+}
+.cke_rtl .cke_path,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_empty
+{
+ float: right;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ background-color: #efefef;
+ opacity: 0.7;
+ color: #000;
+}
+.cke_button__source_label
+{
+ display: inline;
+}
+.cke_combo__fontsize .cke_combo_text
+{
+ width: 30px;
+}
+.cke_combopanel__fontsize
+{
+ width: 120px;
+}
+.cke_source
+{
+ font-family: 'Courier New' , Monospace;
+ font-size: small;
+ background-color: #fff;
+ white-space: pre;
+}
+.cke_wysiwyg_frame, .cke_wysiwyg_div
+{
+ background-color: #fff;
+}
+.cke_chrome
+{
+ visibility: inherit;
+}
+.cke_voice_label
+{
+ display: none;
+}
+legend.cke_voice_label
+{
+ display: none;
+}
+.cke_button_off
+{
+ filter: alpha(opacity = 70);
+}
+.cke_button_on
+{
+ filter: alpha(opacity = 100);
+}
+.cke_button_disabled
+{
+ filter: alpha(opacity = 30);
+}
+.cke_button_off:hover,
+.cke_button_off:focus,
+.cke_button_off:active
+{
+ filter: alpha(opacity = 100);
+}
+.cke_hc .cke_button_arrow
+{
+ margin-top: 5px;
+}
+.cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 70);
+}
+.cke_combo_button_off:hover .cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 100);
+}
+.cke_combo_button_disabled .cke_combo_inlinelabel,
+.cke_combo_button_disabled .cke_combo_open
+{
+ filter: alpha(opacity = 30);
+}
+.cke_toolbox_collapser
+{
+ border: 2px outset #efefef;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ margin: 0 1px 1px 1px;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin-left: 2px;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ filter: alpha(opacity = 70);
+}
+.cke_resizer
+{
+ filter: alpha(opacity = 80);
+}
+.cke_hc .cke_resizer
+{
+ filter: none;
+ font-size: 28px;
+}
+.cke_menuarrow
+{
+ position: absolute;
+ right: 2px;
+}
+.cke_rtl .cke_menuarrow
+{
+ position: absolute;
+ left: 2px;
+}
+.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first
+{
+ padding-left: 10px !important;
+}
+.cke_rtl .cke_toolgroup,
+.cke_rtl .cke_toolbar_separator,
+.cke_rtl .cke_button,
+.cke_rtl .cke_button *,
+.cke_rtl .cke_combo,
+.cke_rtl .cke_combo *,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_item *,
+.cke_rtl .cke_path_empty
+{
+ float: none;
+}
+.cke_rtl .cke_toolgroup,
+.cke_rtl .cke_toolbar_separator,
+.cke_rtl .cke_combo_button,
+.cke_rtl .cke_combo_button *,
+.cke_rtl .cke_button,
+.cke_rtl .cke_button_icon,
+{
+ display: inline-block;
+ vertical-align: top;
+}
+.cke_toolbox
+{
+ display:inline-block;
+ padding-bottom: 5px;
+ height: 100%;
+}
+.cke_rtl .cke_toolbox
+{
+ padding-bottom: 0;
+}
+.cke_toolbar
+{
+ margin-bottom: 5px;
+}
+.cke_rtl .cke_toolbar
+{
+ margin-bottom: 0;
+}
+/* IE7: toolgroup must be adapted to toolbar items height. */
+.cke_toolgroup
+{
+ height: 22px;
+}
+a.cke_button
+{
+ /* IE7: buttons must not float to wrap the toolbar in a whole. */
+ float:none;
+ /* IE7: buttons have to be aligned to top. Otherwise, some buttons like
+ * source and scayt are displayed a few pixels below the base line.
+ */
+ vertical-align:top;
+}
+.cke_toolbar_separator
+{
+ display: inline-block;
+ float: none;
+ vertical-align: top;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ border-width:4px;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ border-width:3px;
+}
+.cke_rtl .cke_button_arrow
+{
+ padding-top: 8px;
+ margin-right: 2px;
+}
+.cke_rtl .cke_combo_inlinelabel
+{
+ display: table-cell;
+ vertical-align: middle;
+ padding-bottom: 8px;
+}
+/*
+ * Editor menus are display:table-driven. IE7 doesn't support this approach,
+ * hence this position&float hybrid fall-back.
+ */
+.cke_menubutton
+{
+ display: block;
+ height: 24px;
+}
+.cke_menubutton_inner
+{
+ display: block;
+ position: relative;
+}
+.cke_menubutton_icon
+{
+ height: 16px;
+ width: 16px;
+}
+.cke_menubutton_icon,
+.cke_menubutton_label,
+.cke_menuarrow
+{
+ display: inline-block;
+}
+.cke_menubutton_label
+{
+ width: auto;
+ vertical-align: top;
+ line-height: 24px;
+ height: 24px;
+ margin: 0 10px 0 0;
+}
+.cke_menuarrow
+{
+ width: 3px;
+ height: 5px;
+ padding: 0;
+ position: absolute;
+ right: 8px;
+ top: 11px;
+ background-position: 0 -1411px;
+}
+/* Menus in RTL mode. */
+.cke_rtl .cke_menubutton_icon
+{
+ position: absolute;
+ right: 0px;
+ top: 0px;
+}
+.cke_rtl .cke_menubutton_label
+{
+ float: right;
+ clear: both;
+ margin: 0 24px 0 10px;
+}
+.cke_hc .cke_rtl .cke_menubutton_label
+{
+ margin-right: 0;
+}
+.cke_rtl .cke_menuarrow
+{
+ left: 8px;
+ right: auto;
+ background-position: 0px -1390px;
+}
+.cke_hc .cke_menuarrow
+{
+ top: 5px;
+ padding: 0 5px;
+}
+.cke_rtl input.cke_dialog_ui_input_text,
+.cke_rtl input.cke_dialog_ui_input_password
+{
+ /* Positioning is required for IE7 on text inputs not to stretch dialog horizontally. (#8971)*/
+ position: relative;
+}
+/* Reset vertical paddings which put editing area under bottom UI space. (#9721) */
+.cke_wysiwyg_div
+{
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/editor_ie8.css b/devel/third-party/ckeditor/skins/kama/editor_ie8.css
new file mode 100644
index 0000000..4b25c63
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/editor_ie8.css
@@ -0,0 +1,952 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+editor_ie8.css
+===============
+This file contains styles to used by Internet Explorer 8 only.
+*/
+/* Base it on editor_ie.css, overriding it with styles defined in this file. */
+.cke_reset
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.cke_reset_all, .cke_reset_all *
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ border-collapse: collapse;
+ font: normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
+ color: #000;
+ text-align: left;
+ white-space: nowrap;
+ cursor: auto;
+}
+.cke_reset_all .cke_rtl *
+{
+ text-align: right;
+}
+.cke_reset_all iframe
+{
+ vertical-align: inherit; }
+.cke_reset_all textarea
+{
+ white-space: pre;
+}
+.cke_reset_all textarea,
+.cke_reset_all input[type="text"],
+.cke_reset_all input[type="password"]
+{
+ cursor: text;
+}
+.cke_reset_all textarea[disabled],
+.cke_reset_all input[type="text"][disabled],
+.cke_reset_all input[type="password"][disabled]
+{
+ cursor: default;
+}
+.cke_reset_all fieldset
+{
+ padding: 10px;
+ border: 2px groove #E0DFE3;
+}
+.cke_reset_all select {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+.cke_chrome
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #D3D3D3;
+ padding: 5px;
+}
+.cke_hc.cke_chrome
+{
+ padding: 2px;
+}
+.cke_inner
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -webkit-touch-callout: none;
+ border-radius: 5px;
+ background: #d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;
+ background: -webkit-gradient(linear, 0 -15, 0 40, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -webkit-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -o-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -ms-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: linear-gradient(top, #fff -15px, #d3d3d3 40px);
+ padding: 5px;
+}
+.cke_float
+{
+ background: #fff;
+}
+.cke_float .cke_inner
+{
+ padding-bottom: 0;
+}
+.cke_hc .cke_contents
+{
+ border: 1px solid black;
+}
+.cke_top,
+.cke_contents,
+.cke_bottom
+{
+ display: block;
+ overflow: hidden;
+}
+.cke_resizer
+{
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 12px 12px 0 12px;
+ border-color: transparent #EFEFEF transparent transparent;
+ border-style: dashed solid dashed dashed; margin: 10px 0 0;
+ font-size: 0;
+ float: right;
+ vertical-align: bottom;
+ cursor: se-resize;
+ opacity: 0.8;
+}
+.cke_resizer_ltr
+{
+ margin-left: -12px;
+}
+.cke_resizer_rtl
+{
+ float: left;
+ border-color: transparent transparent transparent #EFEFEF;
+ border-style: dashed dashed dashed solid; margin-right: -12px;
+ cursor: sw-resize;
+}
+.cke_hc .cke_resizer
+{
+ width: 10px;
+ height: 10px;
+ border: 1px solid #fff;
+ margin-left: 0;
+}
+.cke_hc .cke_resizer_rtl
+{
+ margin-right: 0;
+}
+.cke_wysiwyg_div
+{
+ display: block;
+ height: 100%;
+ overflow: auto;
+ padding: 0 8px;
+ outline-style: none;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.cke_panel
+{
+ visibility: visible;
+ border: 1px solid #8f8f73;
+ background-color: #fff;
+ width: 120px;
+ height: 100px;
+ overflow: hidden;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.cke_menu_panel
+{
+ padding: 2px;
+ margin: 0;
+}
+.cke_combopanel
+{
+ border: 1px solid #8f8f73;
+ -moz-border-radius-topleft: 0;
+ -webkit-border-top-left-radius: 0;
+ border-top-left-radius: 0;
+ width: 150px;
+ height: 170px;
+}
+.cke_panel_frame
+{
+ width: 100%;
+ height: 100%;
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 12px;
+ overflow: auto;
+ overflow-x: hidden;
+}
+.cke_panel_container
+{
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.cke_panel_list
+{
+ list-style-type: none;
+ margin: 3px;
+ padding: 0px;
+ white-space: nowrap;
+}
+.cke_panel_listItem
+{
+ margin: 0px;
+}
+.cke_panel_listItem a
+{
+ padding: 2px;
+ display: block;
+ border: 1px solid #fff;
+ color: inherit !important;
+ text-decoration: none;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+* html .cke_panel_listItem a
+{
+ width : 100%;
+ color: #000;
+}
+*:first-child+html .cke_panel_listItem a
+{
+ color: #000;
+}
+.cke_panel_listItem.cke_selected a
+{
+ border: 1px solid #ccc;
+ background-color: #e9f5ff;
+}
+.cke_panel_listItem a:hover,
+.cke_panel_listItem a:focus,
+.cke_panel_listItem a:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+}
+.cke_hc .cke_panel_listItem.cke_selected a,
+.cke_hc .cke_panel_listItem a:hover,
+.cke_hc .cke_panel_listItem a:focus,
+.cke_hc .cke_panel_listItem a:active
+{
+ border-width: 3px;
+ padding: 0px;
+}
+.cke_panel_grouptitle
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-weight: bold;
+ white-space: nowrap;
+ background-color: #dcdcdc;
+ color: #000;
+ margin:0px;
+ padding:3px;
+}
+.cke_panel_listItem p,
+.cke_panel_listItem h1,
+.cke_panel_listItem h2,
+.cke_panel_listItem h3,
+.cke_panel_listItem h4,
+.cke_panel_listItem h5,
+.cke_panel_listItem h6,
+.cke_panel_listItem pre
+{
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+.cke_colorblock
+{
+ padding: 3px;
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+}
+.cke_colorblock,
+.cke_colorblock a
+{
+ text-decoration: none;
+ color: #000;
+}
+span.cke_colorbox
+{
+ width: 10px;
+ height: 10px;
+ border: #808080 1px solid;
+ float: left;
+}
+.cke_rtl span.cke_colorbox
+{
+ float: right;
+}
+a.cke_colorbox
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ float: left;
+ width: 12px;
+ height: 12px;
+}
+.cke_rtl a.cke_colorbox
+{
+ float: right;
+}
+a:hover.cke_colorbox,
+a:focus.cke_colorbox,
+a:active.cke_colorbox
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+a.cke_colorauto,
+a.cke_colormore
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ display: block;
+ cursor: pointer;
+}
+a:hover.cke_colorauto,
+a:hover.cke_colormore,
+a:focus.cke_colorauto,
+a:focus.cke_colormore,
+a:active.cke_colorauto,
+a:active.cke_colormore
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+.cke_toolbar
+{
+ float: left;
+}
+.cke_rtl .cke_toolbar
+{
+ float: right;
+}
+.cke_toolgroup
+{
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ float: left;
+ margin: 0 6px 5px 0;
+ padding: 2px;
+ background: url(images/sprites.png) repeat-x 0 -500px;
+ background: -webkit-gradient(linear, 0 0, 0 100, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff, #d3d3d3 100px); background: -webkit-linear-gradient(top, #fff, #d3d3d3 100px); background: -o-linear-gradient(top, #fff, #d3d3d3 100px); background: -ms-linear-gradient(top, #fff, #d3d3d3 100px); background: linear-gradient(top, #fff, #d3d3d3 100px); }
+.cke_hc .cke_toolgroup
+{
+ padding-right: 0;
+ margin-right: 4px;
+}
+.cke_rtl .cke_toolgroup
+{
+ float: right;
+ margin-left: 6px;
+ margin-right: 0;
+}
+.cke_rtl.cke_hc .cke_toolgroup
+{
+ padding-left: 0;
+ margin-left: 4px;
+}
+a.cke_button
+{
+ display: inline-block;
+ height: 18px;
+ padding: 2px 4px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ outline: none;
+ cursor: default;
+ float: left;
+ border: 0;
+}
+.cke_rtl .cke_button
+{
+ float: right;
+}
+.cke_hc .cke_button
+{
+ border: 1px solid black;
+ padding: 3px 5px;
+ margin: -2px 4px 0 -2px;
+}
+.cke_rtl.cke_hc .cke_button
+{
+ margin: -2px -2px 0 4px;
+}
+.cke_button_on
+{
+ background-color: #a3d7ff;
+}
+.cke_hc .cke_button_on
+{
+ border-width: 3px;
+ padding: 1px 3px;
+}
+.cke_button_off
+{
+ opacity: 0.7;
+}
+.cke_button_disabled
+{
+ opacity: 0.3;
+}
+a.cke_button_on:hover,
+a.cke_button_on:focus,
+a.cke_button_on:active
+{
+ background-color: #86caff;
+}
+.cke_hc a.cke_button:hover
+{
+ background: black;
+}
+a.cke_button_off:hover,
+a.cke_button_off:focus,
+a.cke_button_off:active
+{
+ background-color: #dff1ff;
+ opacity: 1;
+}
+.cke_button_icon
+{
+ cursor: inherit;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+ width: 16px;
+ height: 16px;
+ float: left;
+ display: inline-block;
+}
+.cke_rtl .cke_button_icon
+{
+ float: right;
+}
+.cke_hc .cke_button_icon
+{
+ display: none;
+}
+.cke_button_label
+{
+ display: none;
+ padding-left: 3px;
+ margin-top: 1px;
+ line-height: 16px;
+ vertical-align: middle;
+ float: left;
+ cursor: default;
+}
+.cke_hc .cke_button_label
+{
+ padding: 0;
+ display: inline-block;
+}
+.cke_rtl .cke_button_label
+{
+ padding-right: 3px;
+ padding-left: 0;
+ float: right;
+}
+.cke_button_arrow
+{
+ display: inline-block;
+ margin: 7px 0 0 1px;
+ width: 0;
+ height: 0;
+ border-width: 3px;
+ border-color: #2f2f2f transparent transparent transparent;
+ border-style: solid dashed dashed dashed;
+ cursor: default;
+ vertical-align: middle;
+}
+.cke_rtl .cke_button_arrow
+{
+ margin-right: 5px;
+ margin-left: 0;
+}
+.cke_hc .cke_button_arrow
+{
+ font-size: 10px;
+ margin: 0 -2px 0 3px;
+ width: auto;
+ border: 0;
+}
+.cke_rtl.cke_hc .cke_button_arrow
+{
+ margin: 0 3px 0 -2px;
+}
+.cke_toolbar_separator
+{
+ float: left;
+ border-left: solid 1px #D3D3D3;
+ margin: 3px 2px 0;
+ height: 16px;
+}
+.cke_rtl .cke_toolbar_separator
+{
+ border-right: solid 1px #D3D3D3;
+ border-left: 0;
+ float: right;
+}
+.cke_hc .cke_toolbar_separator
+{
+ margin-left: 0;
+ width: 3px;
+}
+.cke_rtl.cke_hc .cke_toolbar_separator
+{
+ margin:3px 0 0 2px;
+}
+.cke_toolbar_break
+{
+ display: block;
+ clear: left;
+}
+.cke_rtl .cke_toolbar_break
+{
+ clear: right;
+}
+.cke_toolbox_collapser
+{
+ width: 12px;
+ height: 11px;
+ float: right;
+ border: 1px outset #d3d3d3;
+ margin: 11px 0 0;
+ font-size: 0;
+ cursor: default;
+ text-align: center;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min
+{
+ margin: 0 2px 4px;
+}
+.cke_rtl .cke_toolbox_collapser
+{
+ float: left;
+}
+.cke_hc .cke_toolbox_collapser
+{
+ border-width: 1px;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ display: inline-block;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: transparent transparent #2f2f2f;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin: 4px 2px 0 0;
+ border-color: #2f2f2f transparent transparent;
+}
+.cke_hc .cke_toolbox_collapser .cke_arrow
+{
+ font-size: 8px;
+ width: auto;
+ border: 0;
+ margin-top: 0;
+ margin-right: 2px;
+}
+.cke_menubutton
+{
+ display:block;
+}
+.cke_menuitem span
+{
+ cursor: default;
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+ display:block;
+}
+.cke_hc .cke_menubutton:hover,
+.cke_hc .cke_menubutton:focus,
+.cke_hc .cke_menubutton:active
+{
+ border: 2px solid;
+}
+.cke_menubutton_inner {
+ display: table-row;
+}
+.cke_menubutton_icon,
+.cke_menubutton_label,
+.cke_menuarrow {
+ display: table-cell;
+}
+.cke_menubutton_icon
+{
+ background-color: #D3D3D3;
+ opacity: 0.70; filter: alpha(opacity=70); padding: 4px;
+}
+.cke_hc .cke_menubutton_icon
+{
+ height: 16px;
+ width: 0;
+ padding: 4px 0;
+}
+.cke_menubutton:hover .cke_menubutton_icon,
+.cke_menubutton:focus .cke_menubutton_icon,
+.cke_menubutton:active .cke_menubutton_icon
+{
+ background-color: #9d9d9d;
+}
+.cke_menubutton_disabled:hover .cke_menubutton_icon,
+.cke_menubutton_disabled:focus .cke_menubutton_icon,
+.cke_menubutton_disabled:active .cke_menubutton_icon
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton_label
+{
+ padding: 0 5px;
+ background-color: transparent;
+ width: 100%;
+ vertical-align: middle;
+}
+.cke_menubutton_disabled .cke_menubutton_label
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+}
+.cke_panel_frame .cke_menubutton_label
+{
+ display: none;
+}
+.cke_menuseparator
+{
+ background-color: #D3D3D3;
+ height: 2px;
+ filter: alpha(opacity=70); opacity: 0.70; }
+.cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 0 -1400px;
+ background-repeat: no-repeat;
+ padding: 0 5px;
+}
+.cke_rtl .cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 7px -1380px;
+ background-repeat: no-repeat;
+}
+.cke_menuarrow span
+{
+ display: none;
+}
+.cke_hc .cke_menuarrow
+{
+}
+.cke_hc .cke_menuarrow span
+{
+ vertical-align: middle;
+ display: inline;
+}
+.cke_combo
+{
+ display: inline-block;
+ float: left;
+}
+.cke_rtl .cke_combo
+{
+ float: right;
+}
+.cke_combo_label
+{
+ display: none;
+ float: left;
+ line-height: 26px;
+ vertical-align: top;
+ margin-right: 5px;
+ filter: alpha(opacity = 70); opacity: 0.7; }
+.cke_rtl .cke_combo_label
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_combo_button
+{
+ display: inline-block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: url(images/sprites.png) 0 -100px repeat-x; float: left;
+ padding: 2px 4px 2px 6px;
+ height: 22px;
+ margin: 0 5px 5px 0;
+ background: -moz-linear-gradient(bottom, #fff, #d3d3d3 100px);
+ background: -webkit-gradient(linear, left bottom, left -100, from(#fff), to(#d3d3d3));
+}
+.cke_combo_off .cke_combo_button:hover,
+.cke_combo_off .cke_combo_button:focus,
+.cke_combo_off .cke_combo_button:active
+{
+ background: #DFF1FF;
+ outline: none;
+}
+.cke_rtl .cke_combo_button
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_hc .cke_combo_button
+{
+ border: 1px solid black;
+ padding: 1px 3px 1px 3px;
+}
+.cke_hc .cke_rtl .cke_combo_button
+{
+ border: 1px solid black;
+}
+.cke_combo_text
+{
+ line-height: 24px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ color: #666666;
+ float: left;
+ cursor: default;
+ width: 60px;
+}
+.cke_rtl .cke_combo_text
+{
+ float: right;
+ text-align: right;
+}
+.cke_combo_inlinelabel
+{
+ font-style: italic;
+ opacity: 0.70;
+}
+.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel
+{
+ opacity: 1;
+}
+.cke_combo_open
+{
+ cursor: default;
+ display: inline-block;
+ font-size: 0;
+ height: 19px;
+ line-height: 17px;
+ margin: 1px 3px;
+ width: 5px;
+}
+.cke_combo_arrow
+{
+ margin: 9px 0 0;
+ float: left;
+ opacity: 0.70;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-left: 3px solid transparent;
+ border-right: 3px solid transparent;
+ border-top: 3px solid #2f2f2f;
+}
+.cke_hc .cke_combo_arrow
+{
+ font-size: 10px;
+ width: auto;
+ border: 0;
+ margin-top: 4px;
+}
+.cke_combo_disabled .cke_combo_inlinelabel,
+.cke_combo_disabled .cke_combo_open
+{
+ opacity: 0.3;
+}
+.cke_path
+{
+ margin-top: 5px;
+ float: left;
+}
+.cke_path_item,
+.cke_path_empty
+{
+ display: inline-block;
+ float: left;
+ padding: 1px 4px 0;
+ color: #60676a;
+ cursor: default;
+ text-decoration: none;
+ outline: 0;
+ border: 0;
+}
+.cke_rtl .cke_path,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_empty
+{
+ float: right;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ background-color: #efefef;
+ opacity: 0.7;
+ color: #000;
+}
+.cke_button__source_label
+{
+ display: inline;
+}
+.cke_combo__fontsize .cke_combo_text
+{
+ width: 30px;
+}
+.cke_combopanel__fontsize
+{
+ width: 120px;
+}
+.cke_source
+{
+ font-family: 'Courier New' , Monospace;
+ font-size: small;
+ background-color: #fff;
+ white-space: pre;
+}
+.cke_wysiwyg_frame, .cke_wysiwyg_div
+{
+ background-color: #fff;
+}
+.cke_chrome
+{
+ visibility: inherit;
+}
+.cke_voice_label
+{
+ display: none;
+}
+legend.cke_voice_label
+{
+ display: none;
+}
+.cke_button_off
+{
+ filter: alpha(opacity = 70);
+}
+.cke_button_on
+{
+ filter: alpha(opacity = 100);
+}
+.cke_button_disabled
+{
+ filter: alpha(opacity = 30);
+}
+.cke_button_off:hover,
+.cke_button_off:focus,
+.cke_button_off:active
+{
+ filter: alpha(opacity = 100);
+}
+.cke_hc .cke_button_arrow
+{
+ margin-top: 5px;
+}
+.cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 70);
+}
+.cke_combo_button_off:hover .cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 100);
+}
+.cke_combo_button_disabled .cke_combo_inlinelabel,
+.cke_combo_button_disabled .cke_combo_open
+{
+ filter: alpha(opacity = 30);
+}
+.cke_toolbox_collapser
+{
+ border: 2px outset #efefef;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ margin: 0 1px 1px 1px;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin-left: 2px;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ filter: alpha(opacity = 70);
+}
+.cke_resizer
+{
+ filter: alpha(opacity = 80);
+}
+.cke_hc .cke_resizer
+{
+ filter: none;
+ font-size: 28px;
+}
+.cke_menuarrow
+{
+ position: absolute;
+ right: 2px;
+}
+.cke_rtl .cke_menuarrow
+{
+ position: absolute;
+ left: 2px;
+}
+.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first
+{
+ padding-left: 10px !important;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ border-width:4px;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ border-width:3px;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/editor_iequirks.css b/devel/third-party/ckeditor/skins/kama/editor_iequirks.css
new file mode 100644
index 0000000..c375946
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/editor_iequirks.css
@@ -0,0 +1,1150 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+/*
+editor_iequirks.css
+===============
+This file contains styles to used by all versions of Internet Explorer
+in Quirks mode only.
+*/
+/* Base it on editor_ie.css, overriding it with styles defined in this file. */
+.cke_reset
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.cke_reset_all, .cke_reset_all *
+{
+ margin: 0;
+ padding: 0;
+ border: 0;
+ background: transparent;
+ text-decoration: none;
+ width: auto;
+ height: auto;
+ vertical-align: baseline;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ border-collapse: collapse;
+ font: normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
+ color: #000;
+ text-align: left;
+ white-space: nowrap;
+ cursor: auto;
+}
+.cke_reset_all .cke_rtl *
+{
+ text-align: right;
+}
+.cke_reset_all iframe
+{
+ vertical-align: inherit; }
+.cke_reset_all textarea
+{
+ white-space: pre;
+}
+.cke_reset_all textarea,
+.cke_reset_all input[type="text"],
+.cke_reset_all input[type="password"]
+{
+ cursor: text;
+}
+.cke_reset_all textarea[disabled],
+.cke_reset_all input[type="text"][disabled],
+.cke_reset_all input[type="password"][disabled]
+{
+ cursor: default;
+}
+.cke_reset_all fieldset
+{
+ padding: 10px;
+ border: 2px groove #E0DFE3;
+}
+.cke_reset_all select {
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+.cke_chrome
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #D3D3D3;
+ padding: 5px;
+}
+.cke_hc.cke_chrome
+{
+ padding: 2px;
+}
+.cke_inner
+{
+ display: block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ -webkit-touch-callout: none;
+ border-radius: 5px;
+ background: #d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;
+ background: -webkit-gradient(linear, 0 -15, 0 40, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -webkit-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -o-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: -ms-linear-gradient(top, #fff -15px, #d3d3d3 40px); background: linear-gradient(top, #fff -15px, #d3d3d3 40px);
+ padding: 5px;
+}
+.cke_float
+{
+ background: #fff;
+}
+.cke_float .cke_inner
+{
+ padding-bottom: 0;
+}
+.cke_hc .cke_contents
+{
+ border: 1px solid black;
+}
+.cke_top,
+.cke_contents,
+.cke_bottom
+{
+ display: block;
+ overflow: hidden;
+}
+.cke_resizer
+{
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ border-width: 12px 12px 0 12px;
+ border-color: transparent #EFEFEF transparent transparent;
+ border-style: dashed solid dashed dashed; margin: 10px 0 0;
+ font-size: 0;
+ float: right;
+ vertical-align: bottom;
+ cursor: se-resize;
+ opacity: 0.8;
+}
+.cke_resizer_ltr
+{
+ margin-left: -12px;
+}
+.cke_resizer_rtl
+{
+ float: left;
+ border-color: transparent transparent transparent #EFEFEF;
+ border-style: dashed dashed dashed solid; margin-right: -12px;
+ cursor: sw-resize;
+}
+.cke_hc .cke_resizer
+{
+ width: 10px;
+ height: 10px;
+ border: 1px solid #fff;
+ margin-left: 0;
+}
+.cke_hc .cke_resizer_rtl
+{
+ margin-right: 0;
+}
+.cke_wysiwyg_div
+{
+ display: block;
+ height: 100%;
+ overflow: auto;
+ padding: 0 8px;
+ outline-style: none;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+.cke_panel
+{
+ visibility: visible;
+ border: 1px solid #8f8f73;
+ background-color: #fff;
+ width: 120px;
+ height: 100px;
+ overflow: hidden;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+.cke_menu_panel
+{
+ padding: 2px;
+ margin: 0;
+}
+.cke_combopanel
+{
+ border: 1px solid #8f8f73;
+ -moz-border-radius-topleft: 0;
+ -webkit-border-top-left-radius: 0;
+ border-top-left-radius: 0;
+ width: 150px;
+ height: 170px;
+}
+.cke_panel_frame
+{
+ width: 100%;
+ height: 100%;
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 12px;
+ overflow: auto;
+ overflow-x: hidden;
+}
+.cke_panel_container
+{
+ overflow-y: auto;
+ overflow-x: hidden;
+}
+.cke_panel_list
+{
+ list-style-type: none;
+ margin: 3px;
+ padding: 0px;
+ white-space: nowrap;
+}
+.cke_panel_listItem
+{
+ margin: 0px;
+}
+.cke_panel_listItem a
+{
+ padding: 2px;
+ display: block;
+ border: 1px solid #fff;
+ color: inherit !important;
+ text-decoration: none;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+* html .cke_panel_listItem a
+{
+ width : 100%;
+ color: #000;
+}
+*:first-child+html .cke_panel_listItem a
+{
+ color: #000;
+}
+.cke_panel_listItem.cke_selected a
+{
+ border: 1px solid #ccc;
+ background-color: #e9f5ff;
+}
+.cke_panel_listItem a:hover,
+.cke_panel_listItem a:focus,
+.cke_panel_listItem a:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+}
+.cke_hc .cke_panel_listItem.cke_selected a,
+.cke_hc .cke_panel_listItem a:hover,
+.cke_hc .cke_panel_listItem a:focus,
+.cke_hc .cke_panel_listItem a:active
+{
+ border-width: 3px;
+ padding: 0px;
+}
+.cke_panel_grouptitle
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
+ font-weight: bold;
+ white-space: nowrap;
+ background-color: #dcdcdc;
+ color: #000;
+ margin:0px;
+ padding:3px;
+}
+.cke_panel_listItem p,
+.cke_panel_listItem h1,
+.cke_panel_listItem h2,
+.cke_panel_listItem h3,
+.cke_panel_listItem h4,
+.cke_panel_listItem h5,
+.cke_panel_listItem h6,
+.cke_panel_listItem pre
+{
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+.cke_colorblock
+{
+ padding: 3px;
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
+}
+.cke_colorblock,
+.cke_colorblock a
+{
+ text-decoration: none;
+ color: #000;
+}
+span.cke_colorbox
+{
+ width: 10px;
+ height: 10px;
+ border: #808080 1px solid;
+ float: left;
+}
+.cke_rtl span.cke_colorbox
+{
+ float: right;
+}
+a.cke_colorbox
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ float: left;
+ width: 12px;
+ height: 12px;
+}
+.cke_rtl a.cke_colorbox
+{
+ float: right;
+}
+a:hover.cke_colorbox,
+a:focus.cke_colorbox,
+a:active.cke_colorbox
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+a.cke_colorauto,
+a.cke_colormore
+{
+ border: #fff 1px solid;
+ padding: 2px;
+ display: block;
+ cursor: pointer;
+}
+a:hover.cke_colorauto,
+a:hover.cke_colormore,
+a:focus.cke_colorauto,
+a:focus.cke_colormore,
+a:active.cke_colorauto,
+a:active.cke_colormore
+{
+ border: #316ac5 1px solid;
+ background-color: #dff1ff;
+}
+.cke_toolbar
+{
+ float: left;
+}
+.cke_rtl .cke_toolbar
+{
+ float: right;
+}
+.cke_toolgroup
+{
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ float: left;
+ margin: 0 6px 5px 0;
+ padding: 2px;
+ background: url(images/sprites.png) repeat-x 0 -500px;
+ background: -webkit-gradient(linear, 0 0, 0 100, from(#fff), to(#d3d3d3)); background: -moz-linear-gradient(top, #fff, #d3d3d3 100px); background: -webkit-linear-gradient(top, #fff, #d3d3d3 100px); background: -o-linear-gradient(top, #fff, #d3d3d3 100px); background: -ms-linear-gradient(top, #fff, #d3d3d3 100px); background: linear-gradient(top, #fff, #d3d3d3 100px); }
+.cke_hc .cke_toolgroup
+{
+ padding-right: 0;
+ margin-right: 4px;
+}
+.cke_rtl .cke_toolgroup
+{
+ float: right;
+ margin-left: 6px;
+ margin-right: 0;
+}
+.cke_rtl.cke_hc .cke_toolgroup
+{
+ padding-left: 0;
+ margin-left: 4px;
+}
+a.cke_button
+{
+ display: inline-block;
+ height: 18px;
+ padding: 2px 4px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ outline: none;
+ cursor: default;
+ float: left;
+ border: 0;
+}
+.cke_rtl .cke_button
+{
+ float: right;
+}
+.cke_hc .cke_button
+{
+ border: 1px solid black;
+ padding: 3px 5px;
+ margin: -2px 4px 0 -2px;
+}
+.cke_rtl.cke_hc .cke_button
+{
+ margin: -2px -2px 0 4px;
+}
+.cke_button_on
+{
+ background-color: #a3d7ff;
+}
+.cke_hc .cke_button_on
+{
+ border-width: 3px;
+ padding: 1px 3px;
+}
+.cke_button_off
+{
+ opacity: 0.7;
+}
+.cke_button_disabled
+{
+ opacity: 0.3;
+}
+a.cke_button_on:hover,
+a.cke_button_on:focus,
+a.cke_button_on:active
+{
+ background-color: #86caff;
+}
+.cke_hc a.cke_button:hover
+{
+ background: black;
+}
+a.cke_button_off:hover,
+a.cke_button_off:focus,
+a.cke_button_off:active
+{
+ background-color: #dff1ff;
+ opacity: 1;
+}
+.cke_button_icon
+{
+ cursor: inherit;
+ background-repeat: no-repeat;
+ margin-top: 1px;
+ width: 16px;
+ height: 16px;
+ float: left;
+ display: inline-block;
+}
+.cke_rtl .cke_button_icon
+{
+ float: right;
+}
+.cke_hc .cke_button_icon
+{
+ display: none;
+}
+.cke_button_label
+{
+ display: none;
+ padding-left: 3px;
+ margin-top: 1px;
+ line-height: 16px;
+ vertical-align: middle;
+ float: left;
+ cursor: default;
+}
+.cke_hc .cke_button_label
+{
+ padding: 0;
+ display: inline-block;
+}
+.cke_rtl .cke_button_label
+{
+ padding-right: 3px;
+ padding-left: 0;
+ float: right;
+}
+.cke_button_arrow
+{
+ display: inline-block;
+ margin: 7px 0 0 1px;
+ width: 0;
+ height: 0;
+ border-width: 3px;
+ border-color: #2f2f2f transparent transparent transparent;
+ border-style: solid dashed dashed dashed;
+ cursor: default;
+ vertical-align: middle;
+}
+.cke_rtl .cke_button_arrow
+{
+ margin-right: 5px;
+ margin-left: 0;
+}
+.cke_hc .cke_button_arrow
+{
+ font-size: 10px;
+ margin: 0 -2px 0 3px;
+ width: auto;
+ border: 0;
+}
+.cke_rtl.cke_hc .cke_button_arrow
+{
+ margin: 0 3px 0 -2px;
+}
+.cke_toolbar_separator
+{
+ float: left;
+ border-left: solid 1px #D3D3D3;
+ margin: 3px 2px 0;
+ height: 16px;
+}
+.cke_rtl .cke_toolbar_separator
+{
+ border-right: solid 1px #D3D3D3;
+ border-left: 0;
+ float: right;
+}
+.cke_hc .cke_toolbar_separator
+{
+ margin-left: 0;
+ width: 3px;
+}
+.cke_rtl.cke_hc .cke_toolbar_separator
+{
+ margin:3px 0 0 2px;
+}
+.cke_toolbar_break
+{
+ display: block;
+ clear: left;
+}
+.cke_rtl .cke_toolbar_break
+{
+ clear: right;
+}
+.cke_toolbox_collapser
+{
+ width: 12px;
+ height: 11px;
+ float: right;
+ border: 1px outset #d3d3d3;
+ margin: 11px 0 0;
+ font-size: 0;
+ cursor: default;
+ text-align: center;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min
+{
+ margin: 0 2px 4px;
+}
+.cke_rtl .cke_toolbox_collapser
+{
+ float: left;
+}
+.cke_hc .cke_toolbox_collapser
+{
+ border-width: 1px;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ display: inline-block;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: transparent transparent #2f2f2f;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin: 4px 2px 0 0;
+ border-color: #2f2f2f transparent transparent;
+}
+.cke_hc .cke_toolbox_collapser .cke_arrow
+{
+ font-size: 8px;
+ width: auto;
+ border: 0;
+ margin-top: 0;
+ margin-right: 2px;
+}
+.cke_menubutton
+{
+ display:block;
+}
+.cke_menuitem span
+{
+ cursor: default;
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+ display:block;
+}
+.cke_hc .cke_menubutton:hover,
+.cke_hc .cke_menubutton:focus,
+.cke_hc .cke_menubutton:active
+{
+ border: 2px solid;
+}
+.cke_menubutton_inner {
+ display: table-row;
+}
+.cke_menubutton_icon,
+.cke_menubutton_label,
+.cke_menuarrow {
+ display: table-cell;
+}
+.cke_menubutton_icon
+{
+ background-color: #D3D3D3;
+ opacity: 0.70; filter: alpha(opacity=70); padding: 4px;
+}
+.cke_hc .cke_menubutton_icon
+{
+ height: 16px;
+ width: 0;
+ padding: 4px 0;
+}
+.cke_menubutton:hover .cke_menubutton_icon,
+.cke_menubutton:focus .cke_menubutton_icon,
+.cke_menubutton:active .cke_menubutton_icon
+{
+ background-color: #9d9d9d;
+}
+.cke_menubutton_disabled:hover .cke_menubutton_icon,
+.cke_menubutton_disabled:focus .cke_menubutton_icon,
+.cke_menubutton_disabled:active .cke_menubutton_icon
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton_label
+{
+ padding: 0 5px;
+ background-color: transparent;
+ width: 100%;
+ vertical-align: middle;
+}
+.cke_menubutton_disabled .cke_menubutton_label
+{
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+}
+.cke_menubutton:hover,
+.cke_menubutton:focus,
+.cke_menubutton:active
+{
+ background-color: #D3D3D3;
+}
+.cke_panel_frame .cke_menubutton_label
+{
+ display: none;
+}
+.cke_menuseparator
+{
+ background-color: #D3D3D3;
+ height: 2px;
+ filter: alpha(opacity=70); opacity: 0.70; }
+.cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 0 -1400px;
+ background-repeat: no-repeat;
+ padding: 0 5px;
+}
+.cke_rtl .cke_menuarrow
+{
+ background-image: url(images/sprites.png);
+ background-position: 7px -1380px;
+ background-repeat: no-repeat;
+}
+.cke_menuarrow span
+{
+ display: none;
+}
+.cke_hc .cke_menuarrow
+{
+}
+.cke_hc .cke_menuarrow span
+{
+ vertical-align: middle;
+ display: inline;
+}
+.cke_combo
+{
+ display: inline-block;
+ float: left;
+}
+.cke_rtl .cke_combo
+{
+ float: right;
+}
+.cke_combo_label
+{
+ display: none;
+ float: left;
+ line-height: 26px;
+ vertical-align: top;
+ margin-right: 5px;
+ filter: alpha(opacity = 70); opacity: 0.7; }
+.cke_rtl .cke_combo_label
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_combo_button
+{
+ display: inline-block;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ background: url(images/sprites.png) 0 -100px repeat-x; float: left;
+ padding: 2px 4px 2px 6px;
+ height: 22px;
+ margin: 0 5px 5px 0;
+ background: -moz-linear-gradient(bottom, #fff, #d3d3d3 100px);
+ background: -webkit-gradient(linear, left bottom, left -100, from(#fff), to(#d3d3d3));
+}
+.cke_combo_off .cke_combo_button:hover,
+.cke_combo_off .cke_combo_button:focus,
+.cke_combo_off .cke_combo_button:active
+{
+ background: #DFF1FF;
+ outline: none;
+}
+.cke_rtl .cke_combo_button
+{
+ float: right;
+ margin-left: 5px;
+ margin-right: 0;
+}
+.cke_hc .cke_combo_button
+{
+ border: 1px solid black;
+ padding: 1px 3px 1px 3px;
+}
+.cke_hc .cke_rtl .cke_combo_button
+{
+ border: 1px solid black;
+}
+.cke_combo_text
+{
+ line-height: 24px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ color: #666666;
+ float: left;
+ cursor: default;
+ width: 60px;
+}
+.cke_rtl .cke_combo_text
+{
+ float: right;
+ text-align: right;
+}
+.cke_combo_inlinelabel
+{
+ font-style: italic;
+ opacity: 0.70;
+}
+.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,
+.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel
+{
+ opacity: 1;
+}
+.cke_combo_open
+{
+ cursor: default;
+ display: inline-block;
+ font-size: 0;
+ height: 19px;
+ line-height: 17px;
+ margin: 1px 3px;
+ width: 5px;
+}
+.cke_combo_arrow
+{
+ margin: 9px 0 0;
+ float: left;
+ opacity: 0.70;
+ height: 0;
+ width: 0;
+ font-size: 0;
+ border-left: 3px solid transparent;
+ border-right: 3px solid transparent;
+ border-top: 3px solid #2f2f2f;
+}
+.cke_hc .cke_combo_arrow
+{
+ font-size: 10px;
+ width: auto;
+ border: 0;
+ margin-top: 4px;
+}
+.cke_combo_disabled .cke_combo_inlinelabel,
+.cke_combo_disabled .cke_combo_open
+{
+ opacity: 0.3;
+}
+.cke_path
+{
+ margin-top: 5px;
+ float: left;
+}
+.cke_path_item,
+.cke_path_empty
+{
+ display: inline-block;
+ float: left;
+ padding: 1px 4px 0;
+ color: #60676a;
+ cursor: default;
+ text-decoration: none;
+ outline: 0;
+ border: 0;
+}
+.cke_rtl .cke_path,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_empty
+{
+ float: right;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ background-color: #efefef;
+ opacity: 0.7;
+ color: #000;
+}
+.cke_button__source_label
+{
+ display: inline;
+}
+.cke_combo__fontsize .cke_combo_text
+{
+ width: 30px;
+}
+.cke_combopanel__fontsize
+{
+ width: 120px;
+}
+.cke_source
+{
+ font-family: 'Courier New' , Monospace;
+ font-size: small;
+ background-color: #fff;
+ white-space: pre;
+}
+.cke_wysiwyg_frame, .cke_wysiwyg_div
+{
+ background-color: #fff;
+}
+.cke_chrome
+{
+ visibility: inherit;
+}
+.cke_voice_label
+{
+ display: none;
+}
+legend.cke_voice_label
+{
+ display: none;
+}
+.cke_button_off
+{
+ filter: alpha(opacity = 70);
+}
+.cke_button_on
+{
+ filter: alpha(opacity = 100);
+}
+.cke_button_disabled
+{
+ filter: alpha(opacity = 30);
+}
+.cke_button_off:hover,
+.cke_button_off:focus,
+.cke_button_off:active
+{
+ filter: alpha(opacity = 100);
+}
+.cke_hc .cke_button_arrow
+{
+ margin-top: 5px;
+}
+.cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 70);
+}
+.cke_combo_button_off:hover .cke_combo_inlinelabel
+{
+ filter: alpha(opacity = 100);
+}
+.cke_combo_button_disabled .cke_combo_inlinelabel,
+.cke_combo_button_disabled .cke_combo_open
+{
+ filter: alpha(opacity = 30);
+}
+.cke_toolbox_collapser
+{
+ border: 2px outset #efefef;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ margin: 0 1px 1px 1px;
+}
+.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow
+{
+ margin-left: 2px;
+}
+a.cke_path_item:hover,
+a.cke_path_item:focus,
+a.cke_path_item:active
+{
+ filter: alpha(opacity = 70);
+}
+.cke_resizer
+{
+ filter: alpha(opacity = 80);
+}
+.cke_hc .cke_resizer
+{
+ filter: none;
+ font-size: 28px;
+}
+.cke_menuarrow
+{
+ position: absolute;
+ right: 2px;
+}
+.cke_rtl .cke_menuarrow
+{
+ position: absolute;
+ left: 2px;
+}
+.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first
+{
+ padding-left: 10px !important;
+}
+.cke_top,
+.cke_contents,
+.cke_bottom
+{
+ width: 100%; /* IE Quirks */
+}
+.cke_rtl .cke_toolgroup,
+.cke_rtl .cke_toolbar_separator,
+.cke_rtl .cke_button,
+.cke_rtl .cke_button *,
+.cke_rtl .cke_combo,
+.cke_rtl .cke_combo *,
+.cke_rtl .cke_path_item,
+.cke_rtl .cke_path_item *
+{
+ float: none;
+}
+.cke_rtl .cke_toolbar_separator,
+.cke_rtl .cke_combo_button,
+.cke_rtl .cke_combo_button *,
+.cke_rtl .cke_button,
+.cke_rtl .cke_button_icon,
+.cke_rtl .cke_button_arrow
+{
+ vertical-align: top;
+ display: inline-block;
+}
+.cke_toolgroup,
+.cke_combo_button,
+.cke_combo_arrow,
+.cke_button_arrow,
+.cke_toolbox_collapser,
+.cke_resizer
+{
+ background-image: url(images/sprites_ie6.png);
+}
+.cke_toolgroup
+{
+ background-color: #fff;
+ display: inline-block;
+ padding: 2px;
+}
+.cke_inner
+{
+ padding-top: 2px;
+ background-color: #d3d3d3;
+ background-image: none;
+}
+.cke_toolbar
+{
+ margin: 2px 0;
+}
+.cke_rtl .cke_toolbar
+{
+ margin-bottom: -1px;
+ margin-top: -1px;
+}
+.cke_toolbar_separator
+{
+ vertical-align: top;
+}
+.cke_toolbox
+{
+ width: 100%;
+ float: left;
+ padding-bottom: 4px;
+}
+.cke_rtl .cke_toolbox
+{
+ margin-top: 2px;
+ margin-bottom: -4px;
+}
+.cke_combo_button
+{
+ background-color: #fff;
+}
+.cke_rtl .cke_combo_button
+{
+ padding-right: 6px;
+ padding-left: 0px;
+}
+.cke_combo_text
+{
+ line-height: 21px;
+}
+.cke_ltr .cke_combo_open
+{
+ margin-left: -3px;
+}
+.cke_combo_arrow
+{
+ background-position: 2px -1467px;
+ margin: 2px 0 0;
+ border: 0;
+ width: 8px;
+ height: 13px;
+}
+.cke_rtl .cke_button_arrow
+{
+ background-position-x: 0;
+}
+.cke_toolbox_collapser .cke_arrow
+{
+ display: block;
+ visibility: hidden;
+ font-size: 0;
+ color: transparent;
+ border: 0;
+}
+.cke_button_arrow
+{
+ background-position: 2px -1467px;
+ margin: 0;
+ border: 0;
+ width: 8px;
+ height: 15px;
+}
+.cke_ltr .cke_button_arrow
+{
+ background-position: 0 -1467px;
+ margin-left: -3px;
+}
+.cke_toolbox_collapser
+{
+ background-position: 3px -1367px;
+}
+.cke_toolbox_collapser_min
+{
+ background-position: 4px -1387px; /* +4px +3px */
+ margin: 2px 0 0;
+}
+.cke_rtl .cke_toolbox_collapser_min
+{
+ background-position: 4px -1408px;
+}
+.cke_resizer
+{
+ background-position: 0px -1427px;
+ width: 12px;
+ height: 12px;
+ border: 0;
+ margin: 9px 0 0;
+ vertical-align: baseline;
+}
+.cke_dialog_tabs
+{
+ position: absolute;
+ top: 38px;
+ left: 0px;
+}
+.cke_dialog_body
+{
+ clear: both;
+ margin-top: 20px;
+}
+a.cke_dialog_ui_button
+{
+ background: url(images/sprites.png) repeat_x 0 _ 1069px;
+}
+a.cke_dialog_ui_button:hover,
+a.cke_dialog_ui_button:focus,
+a.cke_dialog_ui_button:active
+{
+ background-position: 0 -1179px;
+}
+a.cke_dialog_ui_button_ok
+{
+ background: url(images/sprites.png) repeat_x 0 _ 1144px;
+}
+a.cke_dialog_ui_button_cancel
+{
+ background: url(images/sprites.png) repeat_x 0 _ 1105px;
+}
+a.cke_dialog_ui_button_ok span,
+a.cke_dialog_ui_button_cancel span
+{
+ background-image: none;
+}
+.cke_menubutton_label
+{
+ height:25px;
+}
+.cke_menuarrow
+{
+ background-image: url(images/sprites_ie6.png);
+}
+.cke_menuitem .cke_icon,
+.cke_button_icon,
+.cke_menuitem .cke_disabled .cke_icon,
+.cke_button_disabled .cke_button_icon
+{
+ filter: ;
+}
+.cke_menuseparator
+{
+ font-size: 0;
+}
+.cke_colorbox
+{
+ font-size: 0; /* Set minimal font size, so button won't be streched by the text that doesn't exist. */
+}
+.cke_source
+{
+ white-space: normal;
+}
diff --git a/devel/third-party/ckeditor/skins/kama/elementspath.css b/devel/third-party/ckeditor/skins/kama/elementspath.css
deleted file mode 100644
index 62f0d4c..0000000
--- a/devel/third-party/ckeditor/skins/kama/elementspath.css
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at media print
-{
- .cke_path
- {
- display: none;
- }
-}
-
-.cke_skin_kama .cke_path
-{
- display: inline-block;
- float: left;
- margin-top: 5px;
-}
-
-.cke_skin_kama .cke_rtl .cke_path
-{
- float: right;
-}
-
-.cke_shared .cke_skin_kama .cke_path
-{
- _width: 100%;
- margin: 0 0 5px;
-}
-
-.cke_skin_kama .cke_path a,
-.cke_skin_kama .cke_path .cke_empty
-{
- display: inline-block;
- float: left;
- padding: 1px 4px 0;
- color: #60676a;
- cursor: default;
-}
-
-.cke_skin_kama .cke_path .cke_empty
-{
- visibility: hidden;
-}
-
-.cke_skin_kama .cke_rtl .cke_path a,
-.cke_skin_kama .cke_rtl .cke_path cke_empty
-{
- float: right;
-}
-
-.cke_skin_kama .cke_path a:hover,
-.cke_skin_kama .cke_path a:focus,
-.cke_skin_kama .cke_path a:active /* IE */
-{
- background-color: #dff1ff;
- padding: 1px 4px 0;
- outline: none;
- color : #000;
-}
-
-/* IE double float-right workaround */
-.cke_skin_kama .cke_browser_ie .cke_rtl .cke_path a,
-.cke_skin_kama .cke_browser_ie .cke_rtl .cke_path .cke_empty
-{
- float: none;
-}
-
-.cke_skin_kama .cke_path .cke_label
-{
- display: none;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/icons.css b/devel/third-party/ckeditor/skins/kama/icons.css
deleted file mode 100644
index df03f98..0000000
--- a/devel/third-party/ckeditor/skins/kama/icons.css
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_kama .cke_button_source .cke_icon
-{
- background-position: 0 0;
-}
-
-.cke_skin_kama .cke_button_newpage .cke_icon
-{
- background-position: 0 -48px;
-}
-
-.cke_skin_kama .cke_button_preview .cke_icon
-{
- background-position: 0 -64px;
-}
-
-.cke_skin_kama .cke_button_cut .cke_icon
-{
- background-position: 0 -96px;
-}
-
-.cke_skin_kama .cke_button_copy .cke_icon
-{
- background-position: 0 -112px;
-}
-
-.cke_skin_kama .cke_button_paste .cke_icon
-{
- background-position: 0 -128px;
-}
-
-.cke_skin_kama .cke_button_pastetext .cke_icon
-{
- background-position: 0 -144px;
-}
-
-.cke_skin_kama .cke_button_find .cke_icon
-{
- background-position: 0 -240px;
-}
-
-.cke_skin_kama .cke_button_replace .cke_icon
-{
- background-position: 0 -256px;
-}
-
-.cke_skin_kama .cke_button_selectAll .cke_icon
-{
- background-position: 0 -272px;
-}
-
-.cke_skin_kama .cke_button_removeFormat .cke_icon
-{
- background-position: 0 -288px;
-}
-
-.cke_skin_kama .cke_button_bold .cke_icon
-{
- background-position: 0 -304px;
-}
-
-.cke_skin_kama .cke_button_italic .cke_icon
-{
- background-position: 0 -320px;
-}
-
-.cke_skin_kama .cke_button_underline .cke_icon
-{
- background-position: 0 -336px;
-}
-
-.cke_skin_kama .cke_button_strike .cke_icon
-{
- background-position: 0 -352px;
-}
-
-.cke_skin_kama .cke_button_subscript .cke_icon
-{
- background-position: 0 -368px;
-}
-
-.cke_skin_kama .cke_button_superscript .cke_icon
-{
- background-position: 0 -384px;
-}
-
-.cke_skin_kama .cke_button_table .cke_icon
-{
- background-position: 0 -608px;
-}
-
-.cke_skin_kama .cke_button_horizontalrule .cke_icon
-{
- background-position: 0 -624px;
-}
-
-.cke_skin_kama .cke_button_smiley .cke_icon
-{
- background-position: 0 -640px;
-}
-
-.cke_skin_kama .cke_button_link .cke_icon
-{
- background-position: 0 -528px;
-}
-
-.cke_skin_kama .cke_button_unlink .cke_icon
-{
- background-position: 0 -544px;
-}
-
-.cke_skin_kama .cke_button_anchor .cke_icon
-{
- background-position: 0 -560px;
-}
-
-.cke_skin_kama .cke_button_image .cke_icon
-{
- background-position: 0 -576px;
-}
-
-.cke_skin_kama .cke_button_flash .cke_icon
-{
- background-position: 0 -592px;
-}
-
-.cke_skin_kama .cke_button_specialchar .cke_icon
-{
- background-position: 0 -656px;
-}
-
-.cke_skin_kama .cke_button_pagebreak .cke_icon
-{
- background-position: 0 -672px;
-}
-
-.cke_skin_kama .cke_button_print .cke_icon
-{
- background-position: 0 -176px;
-}
-
-.cke_skin_kama .cke_button_checkspell .cke_icon,
-.cke_skin_kama .cke_button_scayt .cke_icon
-{
- background-position: 0 -192px;
-}
-
-.cke_skin_kama .cke_button_pagebreak .cke_icon
-{
- background-position: 0 -672px;
-}
-
-.cke_skin_kama .cke_button_textcolor .cke_icon
-{
- background-position: 0 -704px;
-}
-
-.cke_skin_kama .cke_button_bgcolor .cke_icon
-{
- background-position: 0 -720px;
-}
-
-.cke_skin_kama .cke_button_form .cke_icon
-{
- background-position: 0 -752px;
-}
-
-.cke_skin_kama .cke_button_checkbox .cke_icon
-{
- background-position: 0 -768px;
-}
-
-.cke_skin_kama .cke_button_radio .cke_icon
-{
- background-position: 0 -784px;
-}
-
-.cke_skin_kama .cke_button_textfield .cke_icon
-{
- background-position: 0 -800px;
-}
-
-.cke_skin_kama .cke_button_textarea .cke_icon
-{
- background-position: 0 -816px;
-}
-.cke_skin_kama .cke_button_showblocks .cke_icon
-{
- background-position: 0 -1136px;
-}
-
-.cke_skin_kama .cke_button_select .cke_icon
-{
- background-position: 0 -832px;
-}
-
-.cke_skin_kama .cke_button_button .cke_icon
-{
- background-position: 0 -848px;
-}
-
-.cke_skin_kama .cke_button_imagebutton .cke_icon
-{
- background-position: 0 -864px;
-}
-
-.cke_skin_kama .cke_button_hiddenfield .cke_icon
-{
- background-position: 0 -880px;
-}
-
-.cke_skin_kama .cke_button_undo .cke_icon
-{
- background-position: 0 -208px;
-}
-
-.cke_skin_kama .cke_rtl .cke_button_undo .cke_icon
-{
- background-position: 0 -224px;
-}
-
-.cke_skin_kama .cke_button_redo .cke_icon
-{
- background-position: 0 -224px;
-}
-
-.cke_skin_kama .cke_rtl .cke_button_redo .cke_icon
-{
- background-position: 0 -208px;
-}
-
-.cke_skin_kama .cke_button_templates .cke_icon
-{
- background-position: 0 -80px;
-}
-
-.cke_skin_kama .cke_button_numberedlist .cke_icon
-{
- background-position: 0 -400px;
-}
-
-.cke_skin_kama .cke_button_bulletedlist .cke_icon
-{
- background-position: 0 -416px;
-}
-
-.cke_skin_kama .cke_mixed_dir_content .cke_button_numberedlist .cke_icon
-{
- background-position: 0 -1217px;
-}
-
-.cke_skin_kama .cke_mixed_dir_content .cke_button_bulletedlist .cke_icon
-{
- background-position: 0 -1233px;
-}
-
-.cke_skin_kama .cke_button_outdent .cke_icon
-{
- background-position: 0 -432px;
-}
-
-.cke_skin_kama .cke_button_indent .cke_icon
-{
- background-position: 0 -448px;
-}
-
-.cke_skin_kama .cke_mixed_dir_content .cke_button_indent .cke_icon
-{
- background-position: 0 -1265px;
-}
-
-.cke_skin_kama .cke_mixed_dir_content .cke_button_outdent .cke_icon
-{
- background-position: 0 -1249px;
-}
-
-.cke_skin_kama .cke_button_justifyleft .cke_icon
-{
- background-position: 0 -464px;
-}
-
-.cke_skin_kama .cke_button_justifycenter .cke_icon
-{
- background-position: 0 -480px;
-}
-
-.cke_skin_kama .cke_button_justifyright .cke_icon
-{
- background-position: 0 -496px;
-}
-
-.cke_skin_kama .cke_button_justifyblock .cke_icon
-{
- background-position: 0 -512px;
-}
-
-.cke_skin_kama .cke_button_blockquote .cke_icon
-{
- background-position: 0 -1152px;
-}
-
-.cke_skin_kama .cke_button_creatediv .cke_icon
-{
- background-position: 0 -1168px;
-}
-.cke_skin_kama .cke_button_editdiv .cke_icon
-{
- background-position: 0 -1184px;
-}
-.cke_skin_kama .cke_button_removediv .cke_icon
-{
- background-position: 0 -1200px;
-}
-
-.cke_skin_kama .cke_button_flash .cke_icon
-{
- background-position: 0 -592px;
-}
-
-.cke_skin_kama .cke_button_pastefromword .cke_icon
-{
- background-position: 0 -160px;
-}
-
-.cke_skin_kama .cke_button_save .cke_icon
-{
- background-position: 0 -32px;
-}
-
-.cke_skin_kama .cke_button_about .cke_icon
-{
- background-position: 0 -736px;
-}
-
-.cke_skin_kama .cke_button_maximize .cke_icon
-{
- background-position: 0 -1040px;
-}
-
-.cke_skin_kama .cke_button_editdiv .cke_icon
-{
- background-position: 0 -1184px;
-}
-
-.cke_skin_kama .cke_button_bidirtl .cke_icon
-{
- background-position: 0 -1072px;
-}
-
-.cke_skin_kama .cke_button_bidiltr .cke_icon
-{
- background-position: 0 -1056px;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/icons/about.png b/devel/third-party/ckeditor/skins/kama/icons/about.png
new file mode 100644
index 0000000..99e7b6b
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/about.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/anchor-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/anchor-rtl.png
new file mode 100644
index 0000000..f17b12b
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/anchor-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/anchor.png b/devel/third-party/ckeditor/skins/kama/icons/anchor.png
new file mode 100644
index 0000000..8ba3d4c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/anchor.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/bgcolor.png b/devel/third-party/ckeditor/skins/kama/icons/bgcolor.png
new file mode 100644
index 0000000..3c9faa4
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/bgcolor.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/bidiltr.png b/devel/third-party/ckeditor/skins/kama/icons/bidiltr.png
new file mode 100644
index 0000000..de4f707
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/bidiltr.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/bidirtl.png b/devel/third-party/ckeditor/skins/kama/icons/bidirtl.png
new file mode 100644
index 0000000..bc090a7
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/bidirtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/blockquote.png b/devel/third-party/ckeditor/skins/kama/icons/blockquote.png
new file mode 100644
index 0000000..fb1f629
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/blockquote.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/bold.png b/devel/third-party/ckeditor/skins/kama/icons/bold.png
new file mode 100644
index 0000000..b8c8c79
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/bold.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/bulletedlist-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/bulletedlist-rtl.png
new file mode 100644
index 0000000..d36404d
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/bulletedlist-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/bulletedlist.png b/devel/third-party/ckeditor/skins/kama/icons/bulletedlist.png
new file mode 100644
index 0000000..a081d8e
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/bulletedlist.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/button.png b/devel/third-party/ckeditor/skins/kama/icons/button.png
new file mode 100644
index 0000000..4e1332f
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/button.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/checkbox.png b/devel/third-party/ckeditor/skins/kama/icons/checkbox.png
new file mode 100644
index 0000000..7f09655
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/checkbox.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/copy-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/copy-rtl.png
new file mode 100644
index 0000000..2f22061
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/copy-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/copy.png b/devel/third-party/ckeditor/skins/kama/icons/copy.png
new file mode 100644
index 0000000..32fa30c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/copy.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/creatediv.png b/devel/third-party/ckeditor/skins/kama/icons/creatediv.png
new file mode 100644
index 0000000..086ab7e
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/creatediv.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/cut-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/cut-rtl.png
new file mode 100644
index 0000000..86bca89
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/cut-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/cut.png b/devel/third-party/ckeditor/skins/kama/icons/cut.png
new file mode 100644
index 0000000..95d2f5c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/cut.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/docprops-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/docprops-rtl.png
new file mode 100644
index 0000000..37641cb
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/docprops-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/docprops.png b/devel/third-party/ckeditor/skins/kama/icons/docprops.png
new file mode 100644
index 0000000..a9378ce
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/docprops.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/find-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/find-rtl.png
new file mode 100644
index 0000000..f4580f7
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/find-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/find.png b/devel/third-party/ckeditor/skins/kama/icons/find.png
new file mode 100644
index 0000000..e2ffcce
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/find.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/flash.png b/devel/third-party/ckeditor/skins/kama/icons/flash.png
new file mode 100644
index 0000000..333cf6d
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/flash.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/form.png b/devel/third-party/ckeditor/skins/kama/icons/form.png
new file mode 100644
index 0000000..7b693c1
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/form.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/hiddenfield.png b/devel/third-party/ckeditor/skins/kama/icons/hiddenfield.png
new file mode 100644
index 0000000..99ee032
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/hiddenfield.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/horizontalrule.png b/devel/third-party/ckeditor/skins/kama/icons/horizontalrule.png
new file mode 100644
index 0000000..9385860
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/horizontalrule.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/icons.png b/devel/third-party/ckeditor/skins/kama/icons/icons.png
new file mode 100644
index 0000000..7c3bf19
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/icons.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/iframe.png b/devel/third-party/ckeditor/skins/kama/icons/iframe.png
new file mode 100644
index 0000000..1101874
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/iframe.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/image.png b/devel/third-party/ckeditor/skins/kama/icons/image.png
new file mode 100644
index 0000000..d433b83
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/image.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/imagebutton.png b/devel/third-party/ckeditor/skins/kama/icons/imagebutton.png
new file mode 100644
index 0000000..d3cf76d
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/imagebutton.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/indent-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/indent-rtl.png
new file mode 100644
index 0000000..4351c81
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/indent-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/indent.png b/devel/third-party/ckeditor/skins/kama/icons/indent.png
new file mode 100644
index 0000000..1e58821
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/indent.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/italic.png b/devel/third-party/ckeditor/skins/kama/icons/italic.png
new file mode 100644
index 0000000..0b4436e
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/italic.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/justifyblock.png b/devel/third-party/ckeditor/skins/kama/icons/justifyblock.png
new file mode 100644
index 0000000..e64f238
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/justifyblock.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/justifycenter.png b/devel/third-party/ckeditor/skins/kama/icons/justifycenter.png
new file mode 100644
index 0000000..2cedb35
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/justifycenter.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/justifyleft.png b/devel/third-party/ckeditor/skins/kama/icons/justifyleft.png
new file mode 100644
index 0000000..2c78a4d
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/justifyleft.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/justifyright.png b/devel/third-party/ckeditor/skins/kama/icons/justifyright.png
new file mode 100644
index 0000000..c06c99b
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/justifyright.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/link.png b/devel/third-party/ckeditor/skins/kama/icons/link.png
new file mode 100644
index 0000000..2616b49
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/link.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/maximize.png b/devel/third-party/ckeditor/skins/kama/icons/maximize.png
new file mode 100644
index 0000000..edc253e
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/maximize.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/newpage-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/newpage-rtl.png
new file mode 100644
index 0000000..038841f
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/newpage-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/newpage.png b/devel/third-party/ckeditor/skins/kama/icons/newpage.png
new file mode 100644
index 0000000..5deb5d2
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/newpage.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/numberedlist-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/numberedlist-rtl.png
new file mode 100644
index 0000000..3ce017a
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/numberedlist-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/numberedlist.png b/devel/third-party/ckeditor/skins/kama/icons/numberedlist.png
new file mode 100644
index 0000000..1cf3dea
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/numberedlist.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/outdent-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/outdent-rtl.png
new file mode 100644
index 0000000..4674607
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/outdent-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/outdent.png b/devel/third-party/ckeditor/skins/kama/icons/outdent.png
new file mode 100644
index 0000000..10e3827
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/outdent.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/pagebreak-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/pagebreak-rtl.png
new file mode 100644
index 0000000..829fffb
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/pagebreak-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/pagebreak.png b/devel/third-party/ckeditor/skins/kama/icons/pagebreak.png
new file mode 100644
index 0000000..7993b66
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/pagebreak.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/paste-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/paste-rtl.png
new file mode 100644
index 0000000..2cec1a7
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/paste-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/paste.png b/devel/third-party/ckeditor/skins/kama/icons/paste.png
new file mode 100644
index 0000000..39eb7c4
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/paste.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/pastefromword-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/pastefromword-rtl.png
new file mode 100644
index 0000000..ccd59a9
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/pastefromword-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/pastefromword.png b/devel/third-party/ckeditor/skins/kama/icons/pastefromword.png
new file mode 100644
index 0000000..f2b5b2c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/pastefromword.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/pastetext-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/pastetext-rtl.png
new file mode 100644
index 0000000..5c6eea5
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/pastetext-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/pastetext.png b/devel/third-party/ckeditor/skins/kama/icons/pastetext.png
new file mode 100644
index 0000000..b852fd5
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/pastetext.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/placeholder.png b/devel/third-party/ckeditor/skins/kama/icons/placeholder.png
new file mode 100644
index 0000000..95d7721
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/placeholder.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/preview-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/preview-rtl.png
new file mode 100644
index 0000000..f75ffec
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/preview-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/preview.png b/devel/third-party/ckeditor/skins/kama/icons/preview.png
new file mode 100644
index 0000000..2734f2c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/preview.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/print.png b/devel/third-party/ckeditor/skins/kama/icons/print.png
new file mode 100644
index 0000000..02feb9d
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/print.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/radio.png b/devel/third-party/ckeditor/skins/kama/icons/radio.png
new file mode 100644
index 0000000..cb42453
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/radio.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/redo-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/redo-rtl.png
new file mode 100644
index 0000000..42c6f77
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/redo-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/redo.png b/devel/third-party/ckeditor/skins/kama/icons/redo.png
new file mode 100644
index 0000000..0af10a5
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/redo.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/removeformat.png b/devel/third-party/ckeditor/skins/kama/icons/removeformat.png
new file mode 100644
index 0000000..06825cf
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/removeformat.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/replace.png b/devel/third-party/ckeditor/skins/kama/icons/replace.png
new file mode 100644
index 0000000..86b5557
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/replace.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/save.png b/devel/third-party/ckeditor/skins/kama/icons/save.png
new file mode 100644
index 0000000..2f32c4c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/save.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/scayt.png b/devel/third-party/ckeditor/skins/kama/icons/scayt.png
new file mode 100644
index 0000000..c0ca744
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/scayt.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/select-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/select-rtl.png
new file mode 100644
index 0000000..566a661
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/select-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/select.png b/devel/third-party/ckeditor/skins/kama/icons/select.png
new file mode 100644
index 0000000..1b4de3d
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/select.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/selectall.png b/devel/third-party/ckeditor/skins/kama/icons/selectall.png
new file mode 100644
index 0000000..e846d3b
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/selectall.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/showblocks-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/showblocks-rtl.png
new file mode 100644
index 0000000..33fc970
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/showblocks-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/showblocks.png b/devel/third-party/ckeditor/skins/kama/icons/showblocks.png
new file mode 100644
index 0000000..e894171
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/showblocks.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/smiley.png b/devel/third-party/ckeditor/skins/kama/icons/smiley.png
new file mode 100644
index 0000000..2999a18
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/smiley.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/source-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/source-rtl.png
new file mode 100644
index 0000000..fcbbf00
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/source-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/source.png b/devel/third-party/ckeditor/skins/kama/icons/source.png
new file mode 100644
index 0000000..20edb39
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/source.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/specialchar.png b/devel/third-party/ckeditor/skins/kama/icons/specialchar.png
new file mode 100644
index 0000000..2d2b7d6
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/specialchar.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/spellchecker.png b/devel/third-party/ckeditor/skins/kama/icons/spellchecker.png
new file mode 100644
index 0000000..83878f2
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/spellchecker.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/strike.png b/devel/third-party/ckeditor/skins/kama/icons/strike.png
new file mode 100644
index 0000000..ec33451
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/strike.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/subscript.png b/devel/third-party/ckeditor/skins/kama/icons/subscript.png
new file mode 100644
index 0000000..bcea769
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/subscript.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/superscript.png b/devel/third-party/ckeditor/skins/kama/icons/superscript.png
new file mode 100644
index 0000000..f41cd25
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/superscript.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/table.png b/devel/third-party/ckeditor/skins/kama/icons/table.png
new file mode 100644
index 0000000..0d9e3f5
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/table.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/templates-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/templates-rtl.png
new file mode 100644
index 0000000..36eca9e
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/templates-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/templates.png b/devel/third-party/ckeditor/skins/kama/icons/templates.png
new file mode 100644
index 0000000..63e8420
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/templates.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/textarea-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/textarea-rtl.png
new file mode 100644
index 0000000..9ae889f
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/textarea-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/textarea.png b/devel/third-party/ckeditor/skins/kama/icons/textarea.png
new file mode 100644
index 0000000..e4a3455
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/textarea.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/textcolor.png b/devel/third-party/ckeditor/skins/kama/icons/textcolor.png
new file mode 100644
index 0000000..aacd604
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/textcolor.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/textfield.png b/devel/third-party/ckeditor/skins/kama/icons/textfield.png
new file mode 100644
index 0000000..7d4ec5b
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/textfield.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/underline.png b/devel/third-party/ckeditor/skins/kama/icons/underline.png
new file mode 100644
index 0000000..c6ae768
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/underline.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/undo-rtl.png b/devel/third-party/ckeditor/skins/kama/icons/undo-rtl.png
new file mode 100644
index 0000000..0e72231
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/undo-rtl.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/undo.png b/devel/third-party/ckeditor/skins/kama/icons/undo.png
new file mode 100644
index 0000000..69e1575
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/undo.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/icons/unlink.png b/devel/third-party/ckeditor/skins/kama/icons/unlink.png
new file mode 100644
index 0000000..45c5c29
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/icons/unlink.png differ
diff --git a/share/static/RichText/skins/v2/images/dialog_sides.gif b/devel/third-party/ckeditor/skins/kama/images/dialog_sides.gif
similarity index 100%
rename from share/static/RichText/skins/v2/images/dialog_sides.gif
rename to devel/third-party/ckeditor/skins/kama/images/dialog_sides.gif
diff --git a/share/static/RichText/skins/v2/images/dialog_sides.png b/devel/third-party/ckeditor/skins/kama/images/dialog_sides.png
similarity index 100%
rename from share/static/RichText/skins/v2/images/dialog_sides.png
rename to devel/third-party/ckeditor/skins/kama/images/dialog_sides.png
diff --git a/share/static/RichText/skins/v2/images/dialog_sides_rtl.png b/devel/third-party/ckeditor/skins/kama/images/dialog_sides_rtl.png
similarity index 100%
rename from share/static/RichText/skins/v2/images/dialog_sides_rtl.png
rename to devel/third-party/ckeditor/skins/kama/images/dialog_sides_rtl.png
diff --git a/share/static/RichText/skins/office2003/images/mini.gif b/devel/third-party/ckeditor/skins/kama/images/mini.gif
similarity index 100%
rename from share/static/RichText/skins/office2003/images/mini.gif
rename to devel/third-party/ckeditor/skins/kama/images/mini.gif
diff --git a/devel/third-party/ckeditor/skins/kama/images/sprites.png b/devel/third-party/ckeditor/skins/kama/images/sprites.png
new file mode 100644
index 0000000..0cb4e1c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/images/sprites.png differ
diff --git a/devel/third-party/ckeditor/skins/kama/images/sprites_ie6.png b/devel/third-party/ckeditor/skins/kama/images/sprites_ie6.png
new file mode 100644
index 0000000..5bb305c
Binary files /dev/null and b/devel/third-party/ckeditor/skins/kama/images/sprites_ie6.png differ
diff --git a/share/static/RichText/skins/v2/images/toolbar_start.gif b/devel/third-party/ckeditor/skins/kama/images/toolbar_start.gif
similarity index 100%
rename from share/static/RichText/skins/v2/images/toolbar_start.gif
rename to devel/third-party/ckeditor/skins/kama/images/toolbar_start.gif
diff --git a/devel/third-party/ckeditor/skins/kama/mainui.css b/devel/third-party/ckeditor/skins/kama/mainui.css
deleted file mode 100644
index c614d9e..0000000
--- a/devel/third-party/ckeditor/skins/kama/mainui.css
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_kama
-{
- display: block;
-}
-
-/* Main editor only settings. */
-span.cke_skin_kama
-{
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
- border: 1px solid #D3D3D3;
- padding: 5px;
-}
-
-.cke_skin_kama span.cke_browser_webkit,
-.cke_skin_kama span.cke_browser_gecko18
-{
- display: block;
-}
-
-.cke_skin_kama .cke_wrapper
-{
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
- background-color: #d3d3d3;
- background-image: url(images/sprites.png);
- background-repeat: repeat-x;
- background-position: 0 -1950px;
- display: block;
- /* IE Quirks: editor chrome overflow horizontally without an explicit width. */
- _display: inline-block;
- padding: 5px;
-
- /*background-color: Red;*/
-}
-
-.cke_shared .cke_skin_kama .cke_wrapper
-{
- padding-bottom: 0;
-}
-
-.cke_skin_kama .cke_browser_ie6 .cke_wrapper,
-.cke_skin_kama .cke_browser_iequirks .cke_wrapper
-{
- background-image: none;
-}
-
-.cke_skin_kama .cke_editor
-{
-/*
- border: solid 1px #dcdcdc;
-*/
- display: inline-table;
- width: 100%;
-}
-
-.cke_skin_kama .ltr .cke_browser_ie iframe
-{
- margin-right: -10px;
-}
-
-.cke_skin_kama .rtl .cke_browser_ie iframe
-{
- margin-left: -10px;
-}
-
-.cke_skin_kama .cke_browser_opera .cke_editor.cke_skin_kama .cke_resizer
-{
- display: table;
-}
-
-.cke_skin_kama .cke_contents
-{
- margin: 5px;
-}
-
-.cke_skin_kama .cke_hc .cke_contents
-{
- border: 1px solid black;
-}
-
-.cke_skin_kama .cke_contents iframe
-{
- background-color: #fff;
-}
-
-.cke_skin_kama .cke_focus
-{
- outline: auto 5px -webkit-focus-ring-color;
-}
-
-.cke_skin_kama textarea.cke_source
-{
- font-family: 'Courier New' , Monospace;
- font-size: small;
- background-color: #fff;
- white-space: pre;
-}
-
-.cke_skin_kama .cke_browser_iequirks textarea.cke_source
-{
- /* For IE6+Quirks only */
- _white-space: normal;
-}
-
-.cke_skin_kama .cke_resizer
-{
- width: 12px;
- height: 12px;
- margin-top: 9px;
- display: block;
- float: right;
- /* resizer.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -1428px;
- background-repeat: no-repeat;
- cursor: se-resize;
-}
-
-.cke_skin_kama .cke_rtl .cke_resizer
-{
- cursor: sw-resize;
- /* resizer_rtl.gif*/
- background-position: 0 -1455px;
- float: left;
-}
-
-.cke_skin_kama .cke_resizer_horizontal,
-.cke_skin_kama .cke_rtl .cke_resizer_horizontal
-{
- cursor: e-resize;
-}
-
-.cke_skin_kama .cke_resizer_vertical,
-.cke_skin_kama .cke_rtl .cke_resizer_vertical
-{
- cursor: n-resize;
-}
-
-.cke_skin_kama .cke_maximized .cke_resizer
-{
- display: none;
-}
-
-.cke_skin_kama .cke_browser_ie6 .cke_contents textarea,
-.cke_skin_kama .cke_browser_ie7 .cke_contents textarea
-{
- position: absolute;
-}
-
-.cke_skin_kama .cke_browser_ie.cke_browser_quirks .cke_contents iframe
-{
- position: absolute;
- top: 0;
-}
-
-.cke_skin_kama .cke_browser_ie6 .cke_editor,
-.cke_skin_kama .cke_browser_ie7 .cke_editor
-{
- display: inline-block;
-}
-
-.cke_skin_kama .cke_browser_ie6 .cke_editor,
-.cke_shared .cke_skin_kama .cke_browser_ie7 .cke_wrapper
-{
- padding-bottom: 5px;
-}
-
-/* All voice labels are not displayed. */
-.cke_skin_kama .cke_voice_label
-{
- display: none;
-}
-
-.cke_skin_kama legend.cke_voice_label
-{
- display: none;
-}
-
-.cke_skin_kama .cke_browser_ie legend.cke_voice_label
-{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- overflow: hidden;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/menu.css b/devel/third-party/ckeditor/skins/kama/menu.css
deleted file mode 100644
index 1b2fa76..0000000
--- a/devel/third-party/ckeditor/skins/kama/menu.css
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_kama .cke_contextmenu
-{
- padding: 2px;
-}
-
-.cke_skin_kama .cke_menuitem a
-{
- display:block;
-}
-
-.cke_skin_kama .cke_menuitem span
-{
- cursor: default;
-}
-
-.cke_skin_kama .cke_menuitem a:hover,
-.cke_skin_kama .cke_menuitem a:focus,
-.cke_skin_kama .cke_menuitem a:active
-{
- background-color: #D3D3D3;
- display:block;
-}
-
-.cke_hc .cke_menuitem a:hover,
-.cke_hc .cke_menuitem a:focus,
-.cke_hc .cke_menuitem a:active
-{
- border: 2px solid;
-}
-
-.cke_skin_kama .cke_menuitem .cke_icon
-{
- background-image: url(icons.png);
- background-position: 100px;
- background-repeat:no-repeat;
- background-color: transparent;
- width: 16px;
- height: 16px;
- float: left;
-}
-
-.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon
-{
- background-image: url(icons_rtl.png);
-}
-
-.cke_skin_kama .cke_menuitem .cke_disabled .cke_icon
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_menuitem .cke_icon_wrapper
-{
- background-color: #D3D3D3;
- border: solid 4px #D3D3D3;
- width: 16px;
- height: 16px;
- float: left;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- clear: both;
-}
-
-.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon_wrapper
-{
- float: right;
-}
-
-.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,
-.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,
-.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper
-{
- background-color: #9d9d9d;
- border: solid 4px #9d9d9d;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,
-.cke_skin_kama .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,
-.cke_skin_kama .cke_menuitem a:active.cke_disabled .cke_icon_wrapper
-{
- background-color: #D3D3D3;
- border: solid 4px #D3D3D3;
-}
-
-.cke_skin_kama .cke_menuitem .cke_label
-{
- display:block;
- padding-right: 3px;
- padding-top: 5px;
- padding-left: 4px;
- height:19px;
- margin-left: 24px;
- background-color: #fff;
-}
-/* Set these after the document has been loaded and we know the dimensions*/
-.cke_skin_kama .cke_frameLoaded .cke_menuitem .cke_label
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_rtl .cke_skin_kama .cke_menuitem .cke_label
-{
- padding-right: 0;
- margin-left: 0;
- padding-left: 3px;
- margin-right: 28px;
-}
-
-.cke_skin_kama .cke_menuitem a.cke_disabled .cke_label
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.30; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_menuitem a:hover .cke_label,
-.cke_skin_kama .cke_menuitem a:focus .cke_label,
-.cke_skin_kama .cke_menuitem a:active .cke_label
-{
- background-color: #D3D3D3;
-}
-
-.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,
-.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,
-.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label
-{
- background-color: transparent;
-}
-
-.cke_skin_kama .cke_menuseparator
-{
- background-color: #D3D3D3;
- height: 2px;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-
- _font-size: 0;
-}
-
-.cke_skin_kama .cke_menuarrow
-{
- /* arrowright.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -1411px;
- background-repeat: no-repeat;
- height: 5px;
- width: 3px;
- float: right;
- margin-right: 2px;
- margin-top: 3px;
-}
-
-.cke_rtl .cke_skin_kama .cke_menuarrow
-{
- float: left;
- margin-right: 0;
- margin-left: 2px;
- /* arrowleft.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0px -1390px;
- background-repeat: no-repeat;
-}
-
-.cke_skin_kama .cke_menuarrow span
-{
- display: none;
-}
-
-.cke_hc .cke_skin_kama .cke_menuarrow
-{
- width: auto;
- margin-top: 0;
-}
-
-.cke_hc .cke_skin_kama .cke_menuarrow span
-{
- display: inline;
-}
-
-/* #3766 In the context menu, long labels with second level menu get wrapped */
-.cke_browser_ie.cke_ltr .cke_skin_kama .cke_menuarrow
-{
- position: absolute;
- right: 2px;
-}
-
-.cke_browser_ie.cke_rtl .cke_skin_kama .cke_menuarrow
-{
- position: absolute;
- left: 2px;
-}
-/* END #3766 */
diff --git a/devel/third-party/ckeditor/skins/kama/panel.css b/devel/third-party/ckeditor/skins/kama/panel.css
deleted file mode 100644
index ccf9fcc..0000000
--- a/devel/third-party/ckeditor/skins/kama/panel.css
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_kama .cke_panel
-{
- border: 1px solid #8f8f73;
- background-color: #fff;
-
- width: 120px;
- height: 100px;
-
- overflow: hidden;
-
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
-}
-
-.cke_skin_kama .cke_contextmenu
-{
- margin: 0;
-}
-
-/* Ideally we would use "inherit here"... but you know... IE :( */
-.cke_skin_kama .cke_panel iframe
-{
- width: 100%;
- height: 100%;
-}
-
-/*
- * All the following styles are to be used inside the iframe that holds panel
- * contents. We don't use the cke_skin_default there to avoid the reset to be
- * active.
- * This is not an issue as we'll never have two skins running inside the same
- * panel iframe.
- */
-
-html.cke_skin_kama_container
-{
- overflow: auto;
- overflow-x: hidden;
-}
-
-body.cke_panel_frame
-{
- overflow: auto;
-}
-
-.cke_panel_frame .cke_label
-{
- display: none;
-}
-
-ul.cke_panel_list
-{
- list-style-type: none;
- margin: 3px;
- padding: 0px;
- white-space: nowrap;
-}
-
-li.cke_panel_listItem
-{
- margin: 0px;
-}
-
-.cke_panel_listItem a
-{
- padding: 2px;
- display: block;
- border: 1px solid #fff;
- color: inherit !important;
- text-decoration: none;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-/* IE6 */
-* html .cke_panel_listItem a
-{
- width : 100%;
-
- /* IE is not able to inherit the color, so we must force it to black */
- color: #000;
-}
-
-/* IE7 */
-*:first-child+html .cke_panel_listItem a
-{
- /* IE is not able to inherit the color, so we must force it to black */
- color: #000;
-}
-
-.cke_panel_listItem.cke_selected a
-{
- border: 1px solid #ccc;
- background-color: #e9f5ff;
-}
-
-.cke_panel_listItem a:hover,
-.cke_panel_listItem a:focus,
-.cke_panel_listItem a:active
-{
- border-color: #316ac5;
- background-color: #dff1ff;
-}
-
-.cke_hc .cke_panel_listItem.cke_selected a,
-.cke_hc .cke_panel_listItem a:hover,
-.cke_hc .cke_panel_listItem a:focus,
-.cke_hc .cke_panel_listItem a:active
-{
- border-width: 3px;
- padding: 0px;
-}
-
-.cke_panel_grouptitle
-{
- font-size: 11px;
- font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
- font-weight: bold;
- white-space: nowrap;
- background-color: #dcdcdc;
- color: #000;
- margin:0px;
- padding:3px;
-}
-
-.cke_panel_listItem p,
-.cke_panel_listItem h1,
-.cke_panel_listItem h2,
-.cke_panel_listItem h3,
-.cke_panel_listItem h4,
-.cke_panel_listItem h5,
-.cke_panel_listItem h6,
-.cke_panel_listItem pre
-{
- margin-top: 3px;
- margin-bottom: 3px;
-}
-
-.cke_skin_kama .cke_button_textcolor_panel,
-.cke_skin_kama .cke_button_bgcolor_panel
-{
- width: 150px;
- height: 135px;
-}
-
-.cke_colorblock
-{
- padding: 3px;
- font-size: 11px;
- font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.cke_colorblock,
-.cke_colorblock a
-{
- text-decoration: none;
- color: #000;
-}
-
-span.cke_colorbox
-{
- width: 10px;
- height: 10px;
- border: #808080 1px solid;
- float: left;
-}
-
-.cke_rtl span.cke_colorbox
-{
- float: right;
-}
-
-a.cke_colorbox
-{
- border: #fff 1px solid;
- padding: 2px;
- float: left;
-}
-
-.cke_rtl a.cke_colorbox
-{
- float: right;
-}
-
-a:hover.cke_colorbox,
-a:focus.cke_colorbox,
-a:active.cke_colorbox
-{
- border: #316ac5 1px solid;
- background-color: #dff1ff;
-}
-
-a.cke_colorauto,
-a.cke_colormore
-{
- border: #fff 1px solid;
- padding: 2px;
- display: block;
- cursor: pointer;
-}
-
-a:hover.cke_colorauto,
-a:hover.cke_colormore,
-a:focus.cke_colorauto,
-a:focus.cke_colormore,
-a:active.cke_colorauto,
-a:active.cke_colormore
-{
- border: #316ac5 1px solid;
- background-color: #dff1ff;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/presets.css b/devel/third-party/ckeditor/skins/kama/presets.css
deleted file mode 100644
index 509a356..0000000
--- a/devel/third-party/ckeditor/skins/kama/presets.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/* "Source" button label */
-.cke_skin_kama .cke_button_source .cke_label
-{
- display: inline;
-}
-
-/* "Styles" panel size */
-.cke_skin_kama .cke_styles_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Format" panel size */
-.cke_skin_kama .cke_format_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Font" panel size */
-.cke_skin_kama .cke_font_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Font Size" panel size */
-.cke_skin_kama .cke_fontSize_panel
-{
- height: 170px;
-}
-
-/* "Font Size" combo width */
-.cke_skin_kama .cke_fontSize .cke_text
-{
- width: 25px;
-}
-
-/* "Font Size" combo width (IE Quirks) */
-.cke_skin_kama .cke_browser_iequirks .cke_fontSize .cke_text
-{
- width: 32px;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/readme.md b/devel/third-party/ckeditor/skins/kama/readme.md
new file mode 100644
index 0000000..eaaa301
--- /dev/null
+++ b/devel/third-party/ckeditor/skins/kama/readme.md
@@ -0,0 +1,40 @@
+"Kama" Skin
+====================
+
+"Kama" is the default skin of CKEditor 3.x.
+It's been ported to CKEditor 4 and fully featured.
+
+For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)
+documentation.
+
+Directory Structure
+-------------------
+
+CSS parts:
+- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance,
+- **mainui.css**: the file contains styles of entire editor outline structures,
+- **toolbar.css**: the file contains styles of the editor toolbar space (top),
+- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar,
+- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded
+until the first panel open up,
+- **elementspath.css**: the file contains styles of the editor elements path bar (bottom),
+- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down,
+it's not loaded until the first menu open up,
+- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open,
+- **reset.css**: the file defines the basis of style resets among all editor UI spaces,
+- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference,
+- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks.
+
+Other parts:
+- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature,
+- **icons/**: contains all skin defined icons,
+- **images/**: contains a fill general used images.
+
+License
+-------
+
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
diff --git a/devel/third-party/ckeditor/skins/kama/reset.css b/devel/third-party/ckeditor/skins/kama/reset.css
deleted file mode 100644
index d1a78af..0000000
--- a/devel/third-party/ckeditor/skins/kama/reset.css
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Reset and Default Values
- */
-.cke_skin_kama *,
-.cke_skin_kama a:hover,
-.cke_skin_kama a:link,
-.cke_skin_kama a:visited,
-.cke_skin_kama a:active
-{
- margin: 0;
- padding: 0;
- border: 0;
- background: transparent;
- text-decoration: none;
- font: normal normal normal 100% Sans-Serif;
- width: auto;
- height: auto;
- border-collapse: collapse;
- text-align: left;
- vertical-align: baseline;
- white-space: nowrap;
- cursor: auto;
- color: #000;
-
- font-size: 12px;
- font-family: Arial,Helvetica,Tahoma,Verdana,Sans-Serif;
-}
-
-.cke_skin_kama .cke_rtl *,
-.cke_skin_kama .cke_rtl a:hover,
-.cke_skin_kama .cke_rtl a:link,
-.cke_skin_kama .cke_rtl a:visited,
-.cke_skin_kama .cke_rtl a:active,
-.cke_rtl .cke_skin_kama *,
-.cke_rtl .cke_skin_kama a:hover,
-.cke_rtl .cke_skin_kama a:link,
-.cke_rtl .cke_skin_kama a:visited,
-.cke_rtl .cke_skin_kama a:active
-{
- text-align: right;
-}
-
-.cke_skin_kama iframe
-{
- vertical-align: inherit; /** For IE */
-}
-
-.cke_skin_kama textarea
-{
- white-space: pre;
-}
-
-.cke_skin_kama .cke_browser_gecko textarea
-{
- cursor: text;
-}
-
-.cke_skin_kama .cke_browser_gecko textarea[disabled]
-{
- cursor: default;
-}
-
-.cke_skin_kama input[type="text"],
-.cke_skin_kama input[type="password"]
-{
- cursor: text;
-}
-
-.cke_skin_kama input[type="text"][disabled],
-.cke_skin_kama input[type="password"][disabled]
-{
- cursor: default;
-}
-
-.cke_skin_kama fieldset
-{
- padding: 10px;
- border: 2px groove #E0DFE3;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/richcombo.css b/devel/third-party/ckeditor/skins/kama/richcombo.css
deleted file mode 100644
index 928b1f2..0000000
--- a/devel/third-party/ckeditor/skins/kama/richcombo.css
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/* Special Combo */
-
-.cke_skin_kama .cke_rcombo
-{
- display: inline;
-}
-
-.cke_skin_kama .cke_rtl .cke_rcombo
-{
-}
-
-.cke_skin_kama .cke_rcombopanel
-{
- border: 1px solid #8F8F73;
- -moz-border-radius-topleft: 0;
- -webkit-border-top-left-radius: 0;
- border-top-left-radius: 0;
- height: auto;
- _height: 100px;
-}
-
-/* IE6 workaround, shouldn't be here */
-.cke_skin_kama .cke_browser_iequirks .cke_rcombopanel,
-.cke_skin_kama .cke_browser_ie6 .cke_rcombopanel
-{
-/* width: 150px;*/
-}
-
-.cke_skin_kama .cke_rcombo a,
-.cke_skin_kama .cke_rcombo a:active,
-.cke_skin_kama .cke_rcombo a:hover
-{
- -moz-border-radius: 5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: repeat-x;
- background-position: 0 -100px;
- border-bottom:1px solid #DAD9D9;
- border-right:1px solid #DAD9D9;
- float:left;
- padding: 2px;
- height: 21px;
- margin-right: 6px;
-}
-
-.cke_skin_kama .cke_rtl .cke_rcombo a,
-.cke_skin_kama .cke_rtl .cke_rcombo a:active,
-.cke_skin_kama .cke_rtl .cke_rcombo a:hover
-{
- float:right;
- margin-right: 0;
- margin-left: 6px;
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo a
-{
- filter: alpha(opacity=100); /* IE */
- opacity: 1.0; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_rcombo .cke_label
-{
- display: none;
- line-height: 26px;
- vertical-align: top;
- margin-right: 5px;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- /* background-color: #f1f1e3; Because of IE6+ClearType */
-}
-
-.cke_skin_kama .cke_rtl .cke_rcombo .cke_label
-{
- margin-right: 0;
- margin-left: 5px;
-}
-
-.cke_skin_kama .cke_rcombo .cke_inline_label
-{
- line-height: 21px;
- font-style: italic;
- color: #666666;
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton
-{
- vertical-align: top;
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo .cke_label
-{
- filter: alpha(opacity=100);
- opacity: 1.0;
-}
-
-.cke_skin_kama .cke_rcombo .cke_text
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-
- height: 21px;
- line-height: 21px;
- width:60px;
- text-overflow: ellipsis;
- overflow: hidden;
- display: inline-block;
- margin: 0 2px 0 4px;
- cursor: default;
-}
-
-.cke_skin_kama .cke_rtl .cke_rcombo .cke_text
-{
- margin: 0 4px 0 2px;
-}
-
-.cke_skin_kama .cke_rcombo .cke_openbutton
-{
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -68px;
- background-repeat: no-repeat;
- display: inline-block;
- width: 17px;
- height: 19px;
- margin: 1px 2px;
- background-repeat: no-repeat;
-}
-
-.cke_skin_kama .cke_rcombo .cke_openbutton span
-{
- display: none;
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton span
-{
- display : inline;
-}
-
-.cke_skin_kama .cke_browser_iequirks .cke_rcombo .cke_openbutton
-{
- margin-bottom: 0;
-}
-
-.cke_skin_kama .cke_rcombo .cke_off a:hover .cke_text,
-.cke_skin_kama .cke_rcombo .cke_off a:focus .cke_text,
-.cke_skin_kama .cke_rcombo .cke_off a:active .cke_text,
-.cke_skin_kama .cke_rcombo .cke_on .cke_text
-{
- border-color: #316ac5;
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_rcombo .cke_off a:hover .cke_openbutton,
-.cke_skin_kama .cke_rcombo .cke_off a:focus .cke_openbutton,
-.cke_skin_kama .cke_rcombo .cke_off a:active .cke_openbutton,
-.cke_skin_kama .cke_rcombo .cke_on .cke_openbutton
-{
- border-color: #316ac5;
- background-color: #dff1ff;
-}
-
-.cke_skin_kama .cke_rcombo .cke_on .cke_text
-{
- -moz-border-radius-bottomleft: 0px;
- -webkit-border-bottom-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.cke_skin_kama .cke_rcombo .cke_on .cke_openbutton
-{
- -moz-border-radius-bottomright: 0px;
- -webkit-border-bottom-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-.cke_skin_kama .cke_rcombo .cke_disabled .cke_label
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_label
-{
- filter: alpha(opacity=70);
- opacity: 0.7;
-}
-
-.cke_skin_kama .cke_rcombo .cke_disabled .cke_text,
-.cke_skin_kama .cke_rcombo .cke_disabled .cke_openbutton
-{
- filter: alpha(opacity=50); /* IE */
- opacity: 0.5; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_text,
-.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_openbutton
-{
- filter: alpha(opacity=80);
- opacity: 0.8;
-}
-
-.cke_skin_kama .cke_rcombo .cke_disabled .cke_text
-{
- color: #fff;
-}
-
-/* RTL */
-
-.cke_skin_kama .cke_rtl .cke_rcombo span
-{
-/* _zoom: 1;*/
-}
-
-.cke_skin_kama .cke_rtl .cke_rcombo .cke_text
-{
-/* _float: left;*/
-}
-
-/* Firefox 2 & WebKit Section */
-
-.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_text,
-.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_openbutton,
-.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_text,
-.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_openbutton
-{
- display: block;
- float: left;
-}
-
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text
-{
-/* float: right;*/
-}
-
-.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_label,
-.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_label
-{
- /*display: block;*/
- float: left;
-}
-
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_label,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_openbutton,
-.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,
-.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton
-{
- float: right;
-}
-
-.cke_skin_kama .cke_browser_ie7 .cke_rcombo .cke_text
-{
- line-height: 18px;
-}
-
-.cke_skin_kama .cke_browser_ie6 .cke_rcombo .cke_text,
-.cke_skin_kama .cke_browser_iequirks .cke_rcombo .cke_text
-{
- height: auto;
- line-height: 17px;
-}
-
-.cke_skin_kama .cke_rtl .cke_rcombo .cke_font .cke_text,
-.cke_skin_kama .cke_rtl .cke_rcombo .cke_fontSize .cke_text
-{
- direction: ltr;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/skin.js b/devel/third-party/ckeditor/skins/kama/skin.js
index fe8923b..2840cb2 100644
--- a/devel/third-party/ckeditor/skins/kama/skin.js
+++ b/devel/third-party/ckeditor/skins/kama/skin.js
@@ -1,268 +1,260 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+/*
+skin.js
+=========
+
+In this file we interact with the CKEditor JavaScript API to register the skin
+and enable additional skin related features.
+
+The level of complexity of this file depends on the features available in the
+skin. There is only one mandatory line of code to be included here, which is
+setting CKEDITOR.skin.name. All the rest is optional, but recommended to be
+implemented as they make higher quality skins.
+
+For this skin, the following tasks are achieved in this file:
+
+ 1. Register the skin.
+ 2. Register browser specific skin files.
+ 3. Define the "Chameleon" feature.
+ 4. Register the skin icons, to have them used on the development version of
+ the skin.
*/
-CKEDITOR.skins.add( 'kama', (function()
-{
- var preload = [],
- uiColorStylesheetId = 'cke_ui_color';
+// 1. Register the skin
+// ----------------------
+// The CKEDITOR.skin.name property must be set to the skin name. This is a
+// lower-cased name, which must match the skin folder name as well as the value
+// used on config.skin to tell the editor to use the skin.
+//
+// This is the only mandatory property to be defined in this file.
+CKEDITOR.skin.name = 'kama';
+
+// 2. Register browser specific skin files
+// -----------------------------------------
+// (http://docs.cksource.com/CKEditor_4.x/Skin_SDK/Browser_Hacks)
+//
+// To help implementing browser specific "hacks" to the skin files and have it
+// easy to maintain, it is possible to have dedicated files for such browsers,
+// for both the main skin CSS files: editor.css and dialog.css.
+//
+// The browser files must be named after the main file names, appended by an
+// underscore and the browser name (e.g. editor_ie.css, dialog_ie8.css).
+//
+// The accepted browser names must match the CKEDITOR.env properties. The most
+// common names are: ie, opera, webkit and gecko. Check the documentation for
+// the complete list:
+// http://docs.ckeditor.com/#!/api/CKEDITOR.env
+//
+// Internet explorer is an expection and the browser version is also accepted
+// (ie7, ie8, ie9, ie10), as well as a special name for IE in Quirks mode (iequirks).
+//
+// The available browser specific files must be set separately for editor.css
+// and dialog.css.
+CKEDITOR.skin.ua_editor = 'ie,iequirks,ie7,ie8';
+CKEDITOR.skin.ua_dialog = 'ie,iequirks,ie7,ie8,opera';
+
+
+// 3. Define the "Chameleon" feature
+// -----------------------------------
+// (http://docs.cksource.com/CKEditor_4.x/Skin_SDK/Chameleon)
+//
+// "Chameleon" is a unique feature available in CKEditor. It makes it possible
+// to end users to specify which color to use as the basis for the editor UI.
+// It is enough to set config.uiColor to any color value and voila, the UI is
+// colored.
+//
+// The only detail here is that the skin itself must be compatible with the
+// Chameleon feature. That's because the skin CSS files are the responsible to
+// apply colors in the UI and each skin do that in different way and on
+// different places.
+//
+// Implementing the Chameleon feature requires a bit of JavaScript programming.
+// The CKEDITOR.skin.chameleon function must be defined. It must return the CSS
+// "template" to be used to change the color of a specific CKEditor instance
+// available in the page. When a color change is required, this template is
+// appended to the page holding the editor, overriding styles defined in the
+// skin files.
+//
+// The "$color" placeholder can be used in the returned string. It'll be
+// replaced with the desired color.
+CKEDITOR.skin.chameleon = function( editor, part ) {
+ // Use this function just to avoid having to repeat all these rules on
+ // several places of our template.
+ function getLinearBackground( definition ) {
+ return 'background:-moz-linear-gradient(' + definition + ');' + // FF3.6+
+ 'background:-webkit-linear-gradient(' + definition + ');' + // Chrome10+, Safari5.1+
+ 'background:-o-linear-gradient(' + definition + ');' + // Opera 11.10+
+ 'background:-ms-linear-gradient(' + definition + ');' + // IE10+
+ 'background:linear-gradient(' + definition + ');'; // W3C
+ }
+
+ var css;
+
+ // The Chameleon feature is available for each CKEditor instance,
+ // independently. Because of this, we need to prefix all CSS selectors with
+ // the unique class name of the instance.
+ //
+ // CKEditor instances have a unique ID, which is used as class name into
+ // the outer container of the editor UI (e.g. ".cke_1").
+ var cssId = '.' + editor.id;
+
+ // There are two main "parts" that need the be touched by the Chameleon
+ // feature: "editor" and "panel".
+ //
+ // This is the main UI part, representing everything that is loaded in the
+ // page that includes the editor instance. Note that the dialog styles are
+ // also taken in consideration here.
+ if ( part == 'editor' ) {
+ css = cssId + ' .cke_inner,' +
+ cssId + ' .cke_dialog_tab' +
+ '{' +
+ 'background-color:$color;' +
+ 'background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to($color));' +
+ getLinearBackground( 'top,#fff -15px,$color 40px' ) +
+ '}' +
+
+ cssId + ' .cke_toolgroup' +
+ '{' +
+ 'background:-webkit-gradient(linear,0 0,0 100,from(#fff),to($color));' +
+ getLinearBackground( 'top,#fff,$color 100px' ) +
+ '}' +
+
+ cssId + ' .cke_combo_button' +
+ '{' +
+ 'background:-webkit-gradient(linear, left bottom, left -100, from(#fff), to($color));' +
+ getLinearBackground( 'bottom,#fff,$color 100px' ) +
+ '}' +
+
+ cssId + ' .cke_dialog_contents,' +
+ cssId + ' .cke_dialog_footer' +
+ '{' +
+ 'background-color:$color !important;' +
+ '}' +
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )
- {
- // For IE6, we need to preload some images, otherwhise they will be
- // downloaded several times (CSS background bug).
- preload.push( 'icons.png', 'images/sprites_ie6.png', 'images/dialog_sides.gif' );
+ cssId + ' .cke_dialog_tab:hover,' +
+ cssId + ' .cke_dialog_tab:active,' +
+ cssId + ' .cke_dialog_tab:focus,' +
+ cssId + ' .cke_dialog_tab_selected' +
+ '{' +
+ 'background-color:$color;' +
+ 'background-image:none;' +
+ '}' +
+
+ '';
+
+
+ // The "panel" part is necessary because it represents contents of panels
+ // used in the editor, like context-menus or the toolbar combos panels.
+ // Those are loaded inside iframes, so this template is used there. Because
+ // of this iframe isolation, we don't need to specify the editor id class
+ // name in the rules selectors.
+ //
+ // The menu.css rules are usually the ones to be overriden here, while all
+ // the rest is handled by the above "editor" part.
+ } else if ( part == 'panel' ) {
+ css = '.cke_menubutton_icon' +
+ '{' +
+ 'background-color:$color !important;' +
+ 'border-color:$color !important;' +
+ '}' +
+
+ '.cke_menubutton:hover .cke_menubutton_icon,' +
+ '.cke_menubutton:focus .cke_menubutton_icon,' +
+ '.cke_menubutton:active .cke_menubutton_icon' +
+ '{' +
+ 'background-color:$color !important;' +
+ 'border-color:$color !important;' +
+ '}' +
+
+ '.cke_menubutton:hover .cke_menubutton_label,' +
+ '.cke_menubutton:focus .cke_menubutton_label,' +
+ '.cke_menubutton:active .cke_menubutton_label' +
+ '{' +
+ 'background-color:$color !important;' +
+ '}' +
+
+ '.cke_menubutton_disabled:hover .cke_menubutton_label,' +
+ '.cke_menubutton_disabled:focus .cke_menubutton_label,' +
+ '.cke_menubutton_disabled:active .cke_menubutton_label' +
+ '{' +
+ 'background-color: transparent !important;' +
+ '}' +
+
+ '.cke_menubutton_disabled:hover .cke_menubutton_icon,' +
+ '.cke_menubutton_disabled:focus .cke_menubutton_icon,' +
+ '.cke_menubutton_disabled:active .cke_menubutton_icon' +
+ '{' +
+ 'background-color:$color !important;' +
+ 'border-color:$color !important;' +
+ '}' +
+
+ '.cke_menubutton_disabled .cke_menubutton_icon' +
+ '{' +
+ 'background-color:$color !important;' +
+ 'border-color:$color !important;' +
+ '}' +
+
+ '.cke_menuseparator' +
+ '{' +
+ 'background-color:$color !important;' +
+ '}' +
+
+ '.cke_menubutton:hover,' +
+ '.cke_menubutton:focus,' +
+ '.cke_menubutton:active' +
+ '{' +
+ 'background-color:$color !important;' +
+ '}';
}
- return {
- preload : preload,
- editor : { css : [ 'editor.css' ] },
- dialog : { css : [ 'dialog.css' ] },
- templates : { css : [ 'templates.css' ] },
- margins : [ 0, 0, 0, 0 ],
- init : function( editor )
- {
- if ( editor.config.width && !isNaN( editor.config.width ) )
- editor.config.width -= 12;
-
- var uiColorMenus = [];
- var uiColorRegex = /\$color/g;
- var uiColorMenuCss = "/* UI Color Support */\
-.cke_skin_kama .cke_menuitem .cke_icon_wrapper\
-{\
- background-color: $color !important;\
- border-color: $color !important;\
-}\
-\
-.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,\
-.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,\
-.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper\
-{\
- background-color: $color !important;\
- border-color: $color !important;\
-}\
-\
-.cke_skin_kama .cke_menuitem a:hover .cke_label,\
-.cke_skin_kama .cke_menuitem a:focus .cke_label,\
-.cke_skin_kama .cke_menuitem a:active .cke_label\
-{\
- background-color: $color !important;\
-}\
-\
-.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,\
-.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,\
-.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label\
-{\
- background-color: transparent !important;\
-}\
-\
-.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,\
-.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,\
-.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper\
-{\
- background-color: $color !important;\
- border-color: $color !important;\
-}\
-\
-.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper\
-{\
- background-color: $color !important;\
- border-color: $color !important;\
-}\
-\
-.cke_skin_kama .cke_menuseparator\
-{\
- background-color: $color !important;\
-}\
-\
-.cke_skin_kama .cke_menuitem a:hover,\
-.cke_skin_kama .cke_menuitem a:focus,\
-.cke_skin_kama .cke_menuitem a:active\
-{\
- background-color: $color !important;\
-}";
- // We have to split CSS declarations for webkit.
- if ( CKEDITOR.env.webkit )
- {
- uiColorMenuCss = uiColorMenuCss.split( '}' ).slice( 0, -1 );
- for ( var i = 0 ; i < uiColorMenuCss.length ; i++ )
- uiColorMenuCss[ i ] = uiColorMenuCss[ i ].split( '{' );
- }
-
- function getStylesheet( document )
- {
- var node = document.getById( uiColorStylesheetId );
- if ( !node )
- {
- node = document.getHead().append( 'style' );
- node.setAttribute( "id", uiColorStylesheetId );
- node.setAttribute( "type", "text/css" );
- }
- return node;
- }
-
- function updateStylesheets( styleNodes, styleContent, replace )
- {
- var r, i, content;
- for ( var id = 0 ; id < styleNodes.length ; id++ )
- {
- if ( CKEDITOR.env.webkit )
- {
- for ( i = 0 ; i < styleContent.length ; i++ )
- {
- content = styleContent[ i ][ 1 ];
- for ( r = 0 ; r < replace.length ; r++ )
- content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
-
- styleNodes[ id ].$.sheet.addRule( styleContent[ i ][ 0 ], content );
- }
- }
- else
- {
- content = styleContent;
- for ( r = 0 ; r < replace.length ; r++ )
- content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
-
- if ( CKEDITOR.env.ie )
- styleNodes[ id ].$.styleSheet.cssText += content;
- else
- styleNodes[ id ].$.innerHTML += content;
- }
- }
- }
-
- var uiColorRegexp = /\$color/g;
-
- CKEDITOR.tools.extend( editor,
- {
- uiColor: null,
-
- getUiColor : function()
- {
- return this.uiColor;
- },
-
- setUiColor : function( color )
- {
- var cssContent,
- uiStyle = getStylesheet( CKEDITOR.document ),
- cssId = '.cke_editor_' + CKEDITOR.tools.escapeCssSelector( editor.name );
-
- var cssSelectors =
- [
- cssId + " .cke_wrapper",
- cssId + "_dialog .cke_dialog_contents",
- cssId + "_dialog a.cke_dialog_tab",
- cssId + "_dialog .cke_dialog_footer"
- ].join( ',' );
- var cssProperties = "background-color: $color !important;";
-
- if ( CKEDITOR.env.webkit )
- cssContent = [ [ cssSelectors, cssProperties ] ];
- else
- cssContent = cssSelectors + '{' + cssProperties + '}';
-
- return ( this.setUiColor =
- function( color )
- {
- var replace = [ [ uiColorRegexp, color ] ];
- editor.uiColor = color;
-
- // Update general style.
- updateStylesheets( [ uiStyle ], cssContent, replace );
-
- // Update menu styles.
- updateStylesheets( uiColorMenus, uiColorMenuCss, replace );
- })( color );
- }
- });
-
- editor.on( 'menuShow', function( event )
- {
- var panel = event.data[ 0 ];
- var iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();
-
- // Add stylesheet if missing.
- if ( !iframe.getById( 'cke_ui_color' ) )
- {
- var node = getStylesheet( iframe );
- uiColorMenus.push( node );
-
- var color = editor.getUiColor();
- // Set uiColor for new menu.
- if ( color )
- updateStylesheets( [ node ], uiColorMenuCss, [ [ uiColorRegexp, color ] ] );
- }
- });
-
- // Apply UI color if specified in config.
- if ( editor.config.uiColor )
- editor.setUiColor( editor.config.uiColor );
- }
- };
-})() );
-
-(function()
-{
- CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );
-
- function dialogSetup()
- {
- CKEDITOR.dialog.on( 'resize', function( evt )
- {
- var data = evt.data,
- width = data.width,
- height = data.height,
- dialog = data.dialog,
- contents = dialog.parts.contents;
-
- if ( data.skin != 'kama' )
- return;
-
- contents.setStyles(
- {
- width : width + 'px',
- height : height + 'px'
- });
-
- // Fix the size of the elements which have flexible lengths.
- setTimeout( function()
- {
- var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
- body = innerDialog.getChild( 0 );
-
- // tc
- var el = innerDialog.getChild( 2 );
- el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
-
- // bc
- el = innerDialog.getChild( 7 );
- el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
-
- // ml
- el = innerDialog.getChild( 4 );
- el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-
- // mr
- el = innerDialog.getChild( 5 );
- el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
- },
- 100 );
- });
+ return css;
+};
+
+// %REMOVE_START%
+
+// 4. Register the skin icons for development purposes only
+// ----------------------------------------------------------
+// (http://docs.cksource.com/CKEditor_4.x/Skin_SDK/Icons)
+//
+// This code is here just to make the skin work fully when using its "source"
+// version. Without this, the skin will still work, but its icons will not be
+// used (again, on source version only).
+//
+// This block of code is not necessary on the release version of the skin.
+// Because of this it is very important to include it inside the REMOVE_START
+// and REMOVE_END comment markers, so the skin builder will properly clean
+// things up.
+//
+// If a required icon is not available here, the plugin defined icon will be
+// used instead. This means that a skin is not required to provide all icons.
+// Actually, it is not required to provide icons at all.
+
+(function() {
+ // The available icons. This list must match the file names (without
+ // extension) available inside the "icons" folder.
+ var icons = ( 'about,anchor-rtl,anchor,bgcolor,bidiltr,bidirtl,blockquote,' +
+ 'bold,bulletedlist-rtl,bulletedlist,button,checkbox,copy-rtl,copy,' +
+ 'creatediv,cut-rtl,cut,docprops-rtl,docprops,find-rtl,find,flash,form,' +
+ 'hiddenfield,horizontalrule,icons,iframe,image,imagebutton,indent-rtl,' +
+ 'indent,italic,justifyblock,justifycenter,justifyleft,justifyright,' +
+ 'link,maximize,newpage-rtl,newpage,numberedlist-rtl,numberedlist,' +
+ 'outdent-rtl,outdent,pagebreak-rtl,pagebreak,paste-rtl,paste,' +
+ 'pastefromword-rtl,pastefromword,pastetext-rtl,pastetext,placeholder,preview-rtl,' +
+ 'preview,print,radio,redo-rtl,redo,removeformat,replace,save,scayt,' +
+ 'select-rtl,select,selectall,showblocks-rtl,showblocks,smiley,' +
+ 'source-rtl,source,specialchar,spellchecker,strike,subscript,' +
+ 'superscript,table,templates-rtl,templates,textarea-rtl,textarea,' +
+ 'textcolor,textfield,underline,undo-rtl,undo,unlink' ).split( ',' );
+
+ var iconsFolder = CKEDITOR.getUrl( CKEDITOR.skin.path() + 'icons/' );
+
+ for ( var i = 0; i < icons.length; i++ ) {
+ CKEDITOR.skin.addIcon( icons[ i ], iconsFolder + icons[ i ] + '.png' );
}
})();
-/**
- * The base user interface color to be used by the editor. Not all skins are
- * compatible with this setting.
- * @name CKEDITOR.config.uiColor
- * @type String
- * @default '' (empty)
- * @example
- * // Using a color code.
- * config.uiColor = '#AADC6E';
- * @example
- * // Using an HTML color name.
- * config.uiColor = 'Gold';
- */
+// %REMOVE_END%
diff --git a/devel/third-party/ckeditor/skins/kama/templates.css b/devel/third-party/ckeditor/skins/kama/templates.css
deleted file mode 100644
index 78f7b49..0000000
--- a/devel/third-party/ckeditor/skins/kama/templates.css
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Styles for the "templates" plugin.
- */
-
-.cke_skin_kama .cke_tpl_list
-{
- border: #dcdcdc 2px solid;
- background-color: #ffffff;
- overflow-y: auto;
- overflow-x: hidden;
- width: 100%;
- height: 220px;
-}
-
-.cke_skin_kama .cke_tpl_item
-{
- margin: 5px;
- padding: 7px;
- border: #eeeeee 1px solid;
- *width: 88%;
-}
-
-.cke_skin_kama .cke_tpl_preview
-{
- border-collapse: separate;
- text-indent:0;
- width: 100%;
-}
-.cke_skin_kama .cke_tpl_preview td
-{
- padding: 2px;
- vertical-align: middle;
-}
-.cke_skin_kama .cke_tpl_preview .cke_tpl_preview_img
-{
- width: 100px;
-}
-.cke_skin_kama .cke_tpl_preview span
-{
- white-space: normal;
-}
-
-.cke_skin_kama .cke_tpl_title
-{
- font-weight: bold;
-}
-
-.cke_skin_kama .cke_tpl_list a:active .cke_tpl_item,
-.cke_skin_kama .cke_tpl_list a:hover .cke_tpl_item,
-.cke_skin_kama .cke_tpl_list a:focus .cke_tpl_item
-{
- border: #ff9933 1px solid;
- background-color: #fffacd;
-}
-
-.cke_skin_kama .cke_tpl_list a:active *,
-.cke_skin_kama .cke_tpl_list a:hover *,
-.cke_skin_kama .cke_tpl_list a:focus *
-{
- cursor: pointer;
-}
-
-/* IE6 contextual selectors childs won't get :hover transition until,
- the hover style of the link itself contains certain CSS declarations.*/
-.cke_skin_kama .cke_browser_ie6 .cke_tpl_list a:active,
-.cke_skin_kama .cke_browser_ie6 .cke_tpl_list a:hover,
-.cke_skin_kama .cke_browser_ie6 .cke_tpl_list a:focus
-{
- background-position: 0 0;
-}
-
-.cke_skin_kama .cke_hc .cke_tpl_list a:active .cke_tpl_item,
-.cke_skin_kama .cke_hc .cke_tpl_list a:hover .cke_tpl_item,
-.cke_skin_kama .cke_hc .cke_tpl_list a:focus .cke_tpl_item
-{
- border-width: 3px;
-}
-
-.cke_skin_kama .cke_tpl_empty, .cke_tpl_loading
-{
- text-align: center;
- padding: 5px;
-}
diff --git a/devel/third-party/ckeditor/skins/kama/toolbar.css b/devel/third-party/ckeditor/skins/kama/toolbar.css
deleted file mode 100644
index a09edc9..0000000
--- a/devel/third-party/ckeditor/skins/kama/toolbar.css
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at media print
-{
- /* For printing, we simply hide the toolbar */
-
- .cke_skin_kama .cke_toolbox
- {
- display: none;
- }
-}
-
-.cke_skin_kama .cke_browser_webkit .cke_toolbox,
-.cke_skin_kama .cke_browser_webkit .cke_toolbox > span
-{
- white-space: normal;
-}
-
-.cke_skin_kama .cke_toolbox
-{
- clear: both;
- /* Define the padding-bottom otherwise the collapser button will not be clickable #4932*/
- padding-bottom: 1px;
-}
-
-.cke_skin_kama a.cke_toolbox_collapser,
-.cke_skin_kama a:hover.cke_toolbox_collapser
-{
- /* arrowtop.gif */
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 3px -1366px; /* +3px +4px */
- background-repeat: no-repeat;
- width: 11px;
- height: 11px;
- float: right;
- border: 1px outset #D3D3D3;
- margin: 11px 0 2px;
- cursor: pointer;
-}
-
-.cke_skin_kama .cke_rtl a.cke_toolbox_collapser,
-.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser
-{
- float: left;
-}
-
-.cke_skin_kama a.cke_toolbox_collapser span
-{
- display: none;
-}
-
-.cke_skin_kama .cke_hc a.cke_toolbox_collapser span
-{
- font-size: 10px;
- font-weight: bold;
- font-family: Arial;
- display: inline;
-}
-
-.cke_skin_kama a.cke_toolbox_collapser_min,
-.cke_skin_kama a:hover.cke_toolbox_collapser_min
-{
- /* arrowleft.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 4px -1387px; /* +4px +3px */
- background-repeat: no-repeat;
- margin: 2px 4px;
-}
-
-.cke_skin_kama .cke_rtl a.cke_toolbox_collapser_min,
-.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser_min
-{
- /* arrowright.gif*/
- background-position: 4px -1408px; /* +2px +3px */
-}
-
-.cke_skin_kama .cke_toolbar
-{
- display: inline;
-}
-
-.cke_skin_kama .cke_separator
-{
- display: none;
-}
-
-.cke_skin_kama .cke_break
-{
- font-size: 0;
- clear: left;
-}
-
-.cke_skin_kama .cke_rtl .cke_break
-{
- clear: right;
-}
-
-.cke_skin_kama .cke_toolbar_start
-{
- display: none;
-}
-
-.cke_skin_kama .cke_toolgroup
-{
- -moz-border-radius:5px;
- -webkit-border-radius: 5px;
- border-radius: 5px;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: repeat-x;
- background-position: 0 -500px;
- float: left;
- margin-right: 6px;
- margin-bottom: 5px;
- padding: 2px;
- display: inline;
-}
-
-.cke_skin_kama .cke_rtl .cke_toolgroup
-{
- float: right;
- margin-right: 0;
- margin-left: 6px;
-}
-
-.cke_skin_kama .cke_toolgroup
-{
- display: block;
- height: 22px;
-}
-
-.cke_skin_kama .cke_button a,
-.cke_skin_kama .cke_button a:hover,
-.cke_skin_kama .cke_button a:focus,
-.cke_skin_kama .cke_button a:active,
-.cke_skin_kama .cke_button a.cke_off
-{
- border-radius: 3px;
- outline: none;
- padding: 2px 4px;
- height: 18px;
- display: inline-block;
- cursor: default;
-}
-
-.cke_skin_kama .cke_button a,
-.cke_skin_kama .cke_button a.cke_off
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
-}
-
-.cke_skin_kama .cke_hc .cke_button a,
-.cke_skin_kama .cke_hc .cke_button a.cke_off
-{
- opacity: 1.0;
- filter: alpha(opacity=100);
- border: 1px solid white;
-}
-
-.cke_skin_kama .cke_button a.cke_on
-{
- background-color: #a3d7ff;
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
- padding: 2px 4px;
-}
-
-.cke_skin_kama .cke_hc .cke_button a.cke_on
-{
- padding: 0 2px !important;
- border-width: 3px;
-}
-
-.cke_skin_kama .cke_button a.cke_disabled *,
-.cke_skin_kama .cke_browser_ie a:hover.cke_button .cke_disabled *
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_kama .cke_hc .cke_button a.cke_disabled *,
-.cke_skin_kama .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *
-{
- filter: alpha(opacity=60);
- opacity: 0.6;
-}
-
-.cke_skin_kama .cke_button a:hover.cke_on,
-.cke_skin_kama .cke_button a:focus.cke_on,
-.cke_skin_kama .cke_button a:active.cke_on, /* IE */
-.cke_skin_kama .cke_button a:hover.cke_off,
-.cke_skin_kama .cke_button a:focus.cke_off,
-.cke_skin_kama .cke_button a:active.cke_off /* IE */
-{
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
- padding: 2px 4px;
-}
-
-.cke_skin_kama .cke_button a:hover,
-.cke_skin_kama .cke_button a:focus,
-.cke_skin_kama .cke_button a:active /* IE */
-{
- background-color: #dff1ff;
-}
-
-.cke_skin_kama .cke_button a:hover.cke_on,
-.cke_skin_kama .cke_button a:focus.cke_on,
-.cke_skin_kama .cke_button a:active.cke_on /* IE */
-{
- background-color: #86caff;
-}
-
-.cke_skin_kama .cke_hc .cke_button a:hover,
-.cke_skin_kama .cke_hc .cke_button a:focus,
-.cke_skin_kama .cke_hc .cke_button a:active /* IE */
-{
- padding: 0 2px !important;
- border-width: 3px;
-}
-
-.cke_skin_kama .cke_button .cke_icon
-{
- background-image: url(icons.png);
- background-position: 100px;
- background-repeat: no-repeat;
- margin-top: 1px;
- width: 16px;
- height: 16px;
- display: inline-block;
- float: left;
- cursor: default;
-}
-
-.cke_skin_kama .cke_rtl .cke_button .cke_icon
-{
- background-image: url(icons_rtl.png);
-}
-
-.cke_skin_kama .cke_rtl .cke_button .cke_icon
-{
- float: right;
-}
-
-.cke_skin_kama .cke_button .cke_label
-{
- cursor: default;
- display: none;
- padding-left: 3px;
- line-height: 18px;
- vertical-align: middle;
- float: left;
-}
-
-.cke_skin_kama .cke_rtl .cke_button .cke_label
-{
- padding-left: 0;
- padding-right: 3px;
- float: right;
-}
-
-.cke_skin_kama .cke_hc .cke_button .cke_label
-{
- padding: 0;
- display: inline-block;
-}
-
-.cke_skin_kama .cke_hc .cke_button .cke_icon
-{
- display: none;
-}
-
-.cke_skin_kama .cke_accessibility
-{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- overflow: hidden;
-}
-
-.cke_skin_kama .cke_button .cke_buttonarrow
-{
- display: inline-block;
- height: 17px;
- width: 8px;
- background-position: 2px -1469px; /* (+2, -5) */
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
- float: left;
- cursor: default;
-}
-
-.cke_skin_kama .cke_rtl .cke_button .cke_buttonarrow
-{
- background-position: 0 -1469px; /* (0, -5) */
- float: right;
-}
-
-/*** Firefox 2 ***/
-
-.cke_skin_kama .cke_browser_gecko .cke_toolbar,
-.cke_skin_kama .cke_browser_gecko .cke_button a,
-.cke_skin_kama .cke_browser_gecko .cke_button a.cke_off,
-.cke_skin_kama .cke_browser_gecko .cke_button .cke_icon,
-.cke_skin_kama .cke_browser_gecko .cke_button .cke_buttonarrow,
-.cke_skin_kama .cke_browser_gecko .cke_separator,
-.cke_skin_kama .cke_browser_gecko .cke_toolbar_start
-{
- display: block;
- float: left;
-}
-
-.cke_skin_kama .cke_browser_gecko.cke_hc .cke_button .cke_icon
-{
- display: none;
-}
-
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_toolbar,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button a,
-.cke_skin_kama .cke_browser_gecko .cke_rtl.cke_button a.cke_off,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_icon,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_buttonarrow,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_toolbar_start
-{
- float: right;
-}
-
-.cke_skin_kama .cke_browser_gecko .cke_button .cke_label,
-.cke_skin_kama .cke_browser_gecko .cke_break
-{
- float: left;
-}
-
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_label,
-.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_break
-{
- float: right;
-}
-
-/*** IE ***/
-
-/* The biggest problem with IE is the RTL support (and float:right). It's
- totally broken, and quite delicate. IE8 fixed these issues. */
-
-.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_icon,
-.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_label,
-.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_buttonarrow
-{
- float: none;
-}
-
-/*** WebKit ***/
-
-/* We have originally used display:inline-block+float for cke_toolbar and it
- worked well in all browsers, except IE+RTL. We had to change it to inline
- and remove the float. This change didn't play well with Safari. */
-
-.cke_skin_kama .cke_browser_webkit .cke_toolbar
-{
- float: left;
-}
-
-.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_toolbar
-{
- float: right;
-}
-
-/*** Mixed Fixes ***/
-
-.cke_skin_kama .cke_browser_ie8 .cke_button .cke_label,
-.cke_skin_kama .cke_browser_opera .cke_button .cke_label,
-.cke_skin_kama .cke_browser_webkit .cke_button .cke_label
-{
- line-height: 20px;
-}
-
-.cke_skin_kama .cke_browser_opera.cke_browser_quirks .cke_button .cke_label,
-.cke_skin_kama .cke_browser_iequirks .cke_button .cke_label
-{
- line-height: 17px;
-}
-
-/* Fix cursor shape consistency on toolbar combos (#4031) */
-.cke_skin_kama .cke_browser_ie .cke_rcombo,
-.cke_skin_kama .cke_browser_ie .cke_rcombo *
-{
- cursor: default;
-}
-
-.cke_skin_kama .cke_browser_ie .cke_toolbox
-{
- padding-bottom: 5px;
- _padding-bottom: 6px;
-}
-
-.cke_shared .cke_skin_kama .cke_browser_ie .cke_toolbox
-{
- padding-bottom: 0;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/dialog.css b/devel/third-party/ckeditor/skins/office2003/dialog.css
deleted file mode 100644
index 05dc4a4..0000000
--- a/devel/third-party/ckeditor/skins/office2003/dialog.css
+++ /dev/null
@@ -1,765 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/* Restore the dialog visibility */
-body .cke_dialog
-{
- visibility: visible;
-}
-
-/* Force Gecko to consider table as positioned */
-.cke_skin_office2003 table.cke_dialog.cke_browser_gecko
-{
- display:block;
-}
-
-.cke_skin_office2003 .cke_dialog_body
-{
- margin-left: 16px;
- margin-right: 16px;
- margin-top: 2px;
- margin-bottom: 20px;
- z-index: 1;
-
- /* 'cke_dialog' element has been fixed positioned in all but IE6, while we
- need it to be positioned to hold e.g. close button. */
- position: relative;
- _position: static;
-}
-
-.cke_skin_office2003 .cke_dialog_tl,
-.cke_skin_office2003 .cke_dialog_tr,
-.cke_skin_office2003 .cke_dialog_tc,
-.cke_skin_office2003 .cke_dialog_bl,
-.cke_skin_office2003 .cke_dialog_br,
-.cke_skin_office2003 .cke_dialog_bc
-{
- background-image: url(images/sprites.png);
- background-repeat: no-repeat;
- position: absolute;
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/sprites_ie6.png);
- /* Dialog corner parts require a negative z-index to avoid covering dialog body. (#4954) */
- _z-index: -1;
-}
-
-.cke_skin_office2003 .cke_dialog_tl
-{
- background-position: -16px -16px;
- height: 16px;
- width: 16px;
- top: 0;
- left: 0;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_tl
-{
- background-position: -16px -397px;
-}
-
-.cke_skin_office2003 .cke_dialog_tr
-{
- background-position: -16px -76px;
- height: 16px;
- width: 16px;
- top: 0;
- right: 0;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_tr
-{
- background-position: -16px -457px;
-}
-
-.cke_skin_office2003 .cke_dialog_tc
-{
- background-position: 0 -136px;
- background-repeat: repeat-x;
- height: 16px;
- top: 0;
- left: 16px;
- right: 16px;
-}
-
-.cke_skin_office2003 .cke_dialog_bl
-{
- background-position: -16px -196px;
- height: 51px;
- width: 30px;
- bottom: 0;
- left: 0;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_bl
-{
- background-position: -16px -517px;
-}
-
-.cke_skin_office2003 .cke_dialog_br
-{
- background-position: -16px -263px;
- height: 51px;
- width: 30px;
- bottom: 0;
- right: 0;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_br
-{
- background-position: -16px -584px;
-}
-
-.cke_skin_office2003 .cke_dialog_bc
-{
- background-position: 0 -330px;
- background-repeat: repeat-x;
- height: 51px;
- bottom: 0;
- left: 30px;
- right: 30px;
-}
-
-.cke_skin_office2003 .cke_dialog_ml,
-.cke_skin_office2003 .cke_dialog_mr
-{
- background-image: url(images/dialog_sides.png);
- background-repeat: repeat-y;
- position: absolute;
- width: 16px;
- top: 16px;
- bottom: 51px;
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/dialog_sides.gif);
-
- /* IE quirks gets confused when we have both top and bottom. */
- _top: auto;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_ml,
-.cke_skin_office2003 .cke_rtl .cke_dialog_mr
-{
- background-image: url(images/dialog_sides_rtl.png);
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/dialog_sides.gif);
-}
-
-.cke_skin_office2003 .cke_dialog_ml
-{
- background-position: 0 0;
- left: 0;
-}
-
-.cke_skin_office2003 .cke_dialog_mr
-{
- background-position: -16px 0;
- right: 0;
-}
-
-.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_ml,
-.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_mr
-{
- margin-top: 3px;
-}
-
-.cke_skin_office2003 .cke_dialog_title
-{
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -678px;
- background-repeat: repeat-x;
- font-weight: bold;
- font-size: 14pt;
- color: #0E3460;
- background-color: #8db1ff;
- padding: 3px 10px 26px 10px;
- cursor: move;
- position: relative;
-}
-
-.cke_skin_office2003 .cke_browser_ie.cke_rtl .cke_dialog_title
-{
- position: static !important;
- unicode-bidi: bidi-override;
-}
-
-.cke_skin_office2003 .cke_dialog_contents
-{
- background-color: #f7f8fd;
- border: #2b66c9 1px solid;
- overflow: auto;
- padding: 5px 10px;
-}
-
-.cke_skin_office2003 .cke_dialog_footer
-{
- background-color: #8db1ff;
- text-align: right;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_footer
-{
- text-align: left;
-}
-
-/* tabs */
-
-.cke_skin_office2003 .cke_dialog_tabs
-{
- height: 23px;
- background-color: #8db1ff;
- display: inline-block;
- margin-left:10px;
- margin-right:10px;
- margin-top:-23px;
- position: absolute;
- z-index: 2;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_tabs
-{
- right: 10px;
-}
-
-.cke_skin_office2003 a.cke_dialog_tab,
-.cke_skin_office2003 a:link.cke_dialog_tab,
-.cke_skin_office2003 a:active.cke_dialog_tab,
-.cke_skin_office2003 a:hover.cke_dialog_tab,
-.cke_skin_office2003 a:visited.cke_dialog_tab
-{
- color: #0E3460;
- border-left: 1px solid #2b66c9;
- border-right: 1px solid #2b66c9;
- border-top: 1px solid #2b66c9;
- height: 14px;
- padding: 4px 5px;
- display: inline-block;
- cursor: pointer;
-}
-
-/* Gecko 1.8 layout workaround. */
-.cke_skin_office2003 .cke_browser_gecko18 a.cke_dialog_tab,
-.cke_skin_office2003 .cke_browser_gecko18 a:link.cke_dialog_tab,
-.cke_skin_office2003 .cke_browser_gecko18 a:active.cke_dialog_tab,
-.cke_skin_office2003 .cke_browser_gecko18 a:hover.cke_dialog_tab,
-.cke_skin_office2003 .cke_browser_gecko18 a:visited.cke_dialog_tab
-{
- display: inline;
- position: relative;
- top: 6px;
-}
-
-.cke_skin_office2003 a:hover.cke_dialog_tab
-{
- background-color: #f7f8fd;
-}
-.cke_skin_office2003 .cke_hc a:hover.cke_dialog_tab
-{
- padding: 2px 3px !important;
- border-width: 3px;
-}
-
-.cke_skin_office2003 a.cke_dialog_tab_selected,
-.cke_skin_office2003 a:link.cke_dialog_tab_selected,
-.cke_skin_office2003 a:active.cke_dialog_tab_selected,
-.cke_skin_office2003 a:hover.cke_dialog_tab_selected,
-.cke_skin_office2003 a:visited.cke_dialog_tab_selected
-{
- border-bottom: 1px solid #f7f8fd;
- background-color: #f7f8fd;
- font-weight: bold;
- cursor: default;
-}
-.cke_skin_office2003 .cke_hc a.cke_dialog_tab_selected,
-.cke_skin_office2003 .cke_hc a:link.cke_dialog_tab_selected,
-.cke_skin_office2003 .cke_hc a:active.cke_dialog_tab_selected,
-.cke_skin_office2003 .cke_hc a:hover.cke_dialog_tab_selected,
-.cke_skin_office2003 .cke_hc a:visited.cke_dialog_tab_selected
-{
- padding: 2px 3px !important;
- border-width: 3px;
-}
-
-/* single_page */
-
-.cke_skin_office2003 .cke_single_page .cke_dialog_tabs
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_hc .cke_dialog_tabs a,
-.cke_skin_office2003 .cke_hc .cke_dialog_footer a
-{
- opacity: 1.0;
- filter: alpha(opacity=100);
- border: 1px solid white;
-}
-
-.cke_skin_office2003 .cke_single_page .cke_dialog_title
-{
- padding-bottom: 3px;
-}
-
-.cke_skin_office2003 .cke_dialog_ui_vbox table,
-.cke_skin_office2003 .cke_dialog_ui_hbox table
-{
- margin: auto;
-}
-
-.cke_skin_office2003 .cke_dialog_ui_vbox_child
-{
- padding: 5px 0px;
-}
-
-.cke_skin_office2003 input.cke_dialog_ui_input_text,
-.cke_skin_office2003 input.cke_dialog_ui_input_password
-{
- background-color: white;
- border: none;
- padding: 0px;
- width: 100%;
- height: 14px;
-}
-
-.cke_skin_office2003 div.cke_dialog_ui_input_text,
-.cke_skin_office2003 div.cke_dialog_ui_input_password
-{
- background-color: white;
- border: 1px solid #a0a0a0;
- padding: 1px 0px;
-}
-
-.cke_skin_office2003 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text {
- padding-right: 1px;
-}
-
-.cke_skin_office2003 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,
-.cke_skin_office2003 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password
-{
- border-width: 0px;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,
-.cke_skin_office2003 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_password
-{
- border-width: 1px;
-}
-
-.cke_skin_office2003 textarea.cke_dialog_ui_input_textarea
-{
- background-color: white;
- border: none;
- padding: 0px;
- width: 100%;
- /*
- * IE6 BUG: Scrollbars in textareas can overflow even if the outer DIV is set to overflow:hidden.
- * So leave 1% width for the scrollbar. In most situations the 1% isn't noticeable by users.
- */
- _width: 99%;
- overflow: auto;
- resize: none;
-}
-
-.cke_skin_office2003 div.cke_dialog_ui_input_textarea
-{
- background-color: white;
- border: 1px solid #a0a0a0;
- padding: 1px 0px;
-}
-
-.cke_skin_office2003 div.cke_disabled .cke_dialog_ui_labeled_content *
-{
- background-color : #a0a0a0;
- cursor : default;
-}
-
-.cke_skin_office2003 .cke_dialog_ui_hbox
-{
- width: 100%;
-}
-
-.cke_skin_office2003 .cke_dialog_ui_hbox_first,
-.cke_skin_office2003 .cke_dialog_ui_hbox_child,
-.cke_skin_office2003 .cke_dialog_ui_hbox_last
-{
- vertical-align: top;
-}
-
-.cke_skin_office2003 .cke_ltr .cke_dialog_ui_hbox_first,
-.cke_skin_office2003 .cke_ltr .cke_dialog_ui_hbox_child
-{
- padding-right: 10px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog_ui_hbox_first,
-.cke_skin_office2003 .cke_rtl .cke_dialog_ui_hbox_child
-{
- padding-left: 10px;
-}
-
-/* button */
-
-.cke_skin_office2003 a.cke_dialog_ui_button
-{
- border-collapse: separate;
- cursor: default;
-}
-
-.cke_skin_office2003 span.cke_dialog_ui_button
-{
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -678px;
- background-repeat: repeat-x;
- border: #0E3460 1px solid;
- padding: 2px 10px;
- text-align: center;
- color: #0E3460;
- background-color: #8db1ff;
- display: inline-block;
- cursor: default;
-}
-
-/* Gecko 1.8 does not support display: inline-block */
-.cke_skin_office2003 .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button
-{
- display: block;
-}
-
-.cke_skin_office2003 a.cke_dialog_ui_button span.cke_disabled
-{
- border: #898980 1px solid;
- color: #5e5e55;
- background-color: #c5c5b3;
-}
-
-.cke_skin_office2003 a:focus span.cke_dialog_ui_button,
-.cke_skin_office2003 a:active span.cke_dialog_ui_button
-{
- background-color: #8db1ff;
-}
-.cke_skin_office2003 .cke_hc a:focus span.cke_dialog_ui_button,
-.cke_skin_office2003 .cke_hc a:active span.cke_dialog_ui_button
-{
- border-width: 2px;
-}
-
-.cke_skin_office2003 .cke_dialog_footer_buttons
-{
- display: inline-table;
- margin-right: 12px;
- margin-left: 12px;
- width: auto;
- position: relative;
-}
-
-/* Gecko 1.8 does not support for display: inline-table */
-.cke_skin_office2003 .cke_browser_gecko18 .cke_dialog_footer_buttons
-{
- display: inline;
-}
-
-.cke_skin_office2003 .cke_dialog_footer_buttons span.cke_dialog_ui_button
-{
- width: 60px;
- margin: 7px 0;
-}
-
-.cke_skin_office2003 strong
-{
- font-weight: bold;
-}
-
-/* close_button */
-
-.cke_skin_office2003 a.cke_dialog_close_button,
-.cke_skin_office2003 a:hover.cke_dialog_close_button,
-.cke_skin_office2003 .cke_browser_ie6 a.cke_dialog_close_button,
-.cke_skin_office2003 .cke_browser_ie6 a:hover.cke_dialog_close_button
-{
- background-image: url(images/sprites.png);
- background-repeat: no-repeat;
- background-position: -20px -655px;
- position: absolute;
- cursor: pointer;
- text-align: center;
- height: 21px;
- width: 21px;
- top: 4px;
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/sprites_ie6.png);
-}
-
-.cke_skin_office2003 a.cke_dialog_close_button span
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_ltr a.cke_dialog_close_button
-{
- right: 10px;
- _right: 22px;
-}
-
-.cke_skin_office2003 .cke_rtl a.cke_dialog_close_button,
-.cke_skin_office2003 .cke_rtl a:hover.cke_dialog_close_button
-{
- left: 10px;
- _left: 16px;
- _top: 6px;
-}
-
-.cke_skin_office2003 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,
-.cke_skin_office2003 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button
-{
- position: relative;
- float: left;
- margin-top: -55px;
- margin-left: -7px;
-}
-
-.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,
-.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button
-{
- margin-top: -32px;
-}
-
-.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,
-.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button
-{
- margin-top: 0;
-}
-
-.cke_skin_office2003 .cke_dialog_ui_input_select
-{
- border: 1px solid #a0a0a0;
- background-color: white;
-}
-
-.cke_skin_office2003 .cke_dialog_ui_input_file
-{
- width: 100%;
- height: 25px;
-}
-
-/*
- * Some utility CSS classes for dialog authors.
- */
-.cke_skin_office2003 .cke_dialog .cke_dark_background
-{
- background-color: #eaead1;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_hand
-{
- cursor: pointer;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_centered
-{
- text-align: center;
-}
-
-.cke_skin_office2003 .cke_dialog a.cke_btn_reset
-{
- float: right;
- background-position: 0 -32px;
- background-image: url(images/mini.gif);
- width: 16px;
- height: 16px;
- background-repeat: no-repeat;
- border: 1px none;
- font-size: 1px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog a.cke_btn_reset
-{
- float: left;
-}
-
-.cke_skin_office2003 .cke_dialog a.cke_btn_locked,
-.cke_skin_office2003 .cke_dialog a.cke_btn_unlocked
-{
- float: left;
- background-position: 0 0;
- background-image: url(images/mini.gif);
- width: 16px;
- height: 16px;
- background-repeat: no-repeat;
- border: none 1px;
- font-size: 1px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_dialog a.cke_btn_locked,
-.cke_skin_office2003 .cke_rtl .cke_dialog a.cke_btn_unlocked
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_dialog a.cke_btn_unlocked
-{
- background-position: 0 -16px;
- background-image: url(images/mini.gif);
-}
-
-.cke_skin_office2003 .cke_dialog .cke_btn_over
-{
- border: outset 1px;
- cursor: pointer;
-}
-
-.cke_skin_office2003 .cke_dialog .ImagePreviewBox
-{
- border : 2px ridge black;
- overflow : scroll;
- height : 160px;
- width : 230px;
- padding : 2px;
- background-color : white;
-}
-
-.cke_skin_office2003 .cke_dialog .ImagePreviewBox table td {
- white-space: normal;
-}
-
-/* Fix iframedialog's height doesn't stretch to 100% #4863.*/
-.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_page_contents
-{
- _position: absolute;
-}
-
-.cke_skin_office2003 .cke_dialog .ImagePreviewLoader
-{
- position: absolute;
- white-space : normal;
- overflow : hidden;
- height : 160px;
- width : 230px;
- margin : 2px;
- padding : 2px;
- opacity : 0.9;
- filter : alpha(opacity=90);
-
- background-color : #e4e4e4;
-}
-
-.cke_skin_office2003 .cke_dialog .FlashPreviewBox
-{
- white-space : normal;
- border : 2px ridge black;
- overflow : auto;
- height : 160px;
- width : 390px;
- padding : 2px;
- background-color : white;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_pastetext
-{
- width: 346px;
- height: 170px;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_pastetext textarea
-{
- width: 340px;
- height: 170px;
- resize: none;
-}
-
-.cke_skin_office2003 .cke_dialog iframe.cke_pasteframe
-{
- width: 346px;
- height: 130px;
- background-color: white;
- border: 1px solid black;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_dark_background
-{
- text-align : center;
- background-color: #eaead1;
- font-size : 14px;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_light_background
-{
- text-align : center;
- background-color: #ffffbe;
-}
-
-.cke_skin_office2003 .cke_dialog .cke_hand
-{
- cursor: pointer;
-}
-
-.cke_skin_office2003 .cke_disabled
-{
- color: #a0a0a0;
-}
-
-/* High Contrast Mode */
-.cke_skin_office2003 .cke_hc .cke_dialog_title,
-.cke_skin_office2003 .cke_hc .cke_dialog_tabs,
-.cke_skin_office2003 .cke_hc .cke_dialog_contents,
-.cke_skin_office2003 .cke_hc .cke_dialog_footer
-{
- border-left: 1px solid;
- border-right: 1px solid;
-}
-
-.cke_skin_office2003 .cke_hc .cke_dialog_title
-{
- border-top: 1px solid;
-}
-
-.cke_skin_office2003 .cke_hc .cke_dialog_footer
-{
- border-bottom: 1px solid;
-}
-
-.cke_skin_office2003 .cke_hc .cke_dialog_close_button span
-{
- display: inline;
- cursor: pointer;
- font-weight: bold;
- position: relative;
- top: 3px;
-}
-
-.cke_skin_office2003 .cke_dialog_body .cke_label
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_dialog_body label.cke_required
-{
- font-weight: bold;
-}
-
-.cke_skin_office2003 .cke_hc .cke_dialog_body .cke_label
-{
- display: inline;
-}
-
-.cke_skin_office2003 .cke_hc a.cke_btn_locked,
-.cke_skin_office2003 .cke_hc a.cke_btn_unlocked,
-.cke_skin_office2003 .cke_hc a.cke_btn_reset
-{
- border-style: solid;
- float: left;
- width: auto;
- height: auto;
-}
-
-.cke_skin_office2003 .cke_rtl.cke_hc a.cke_btn_locked,
-.cke_skin_office2003 .cke_rtl.cke_hc a.cke_btn_unlocked,
-.cke_skin_office2003 .cke_rtl.cke_hc a.cke_btn_reset
-{
- float: right;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/editor.css b/devel/third-party/ckeditor/skins/office2003/editor.css
deleted file mode 100644
index b0b4535..0000000
--- a/devel/third-party/ckeditor/skins/office2003/editor.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at import url("reset.css");
- at import url("mainui.css");
- at import url("panel.css");
- at import url("toolbar.css");
- at import url("menu.css");
- at import url("richcombo.css");
- at import url("elementspath.css");
- at import url("icons.css");
- at import url("presets.css");
-
-/* Restore the container visibility */
-html .cke_skin_office2003
-{
- visibility: inherit;
-}
-
-html.cke_skin_office2003_container
-{
- visibility: visible;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/elementspath.css b/devel/third-party/ckeditor/skins/office2003/elementspath.css
deleted file mode 100644
index 853b8ad..0000000
--- a/devel/third-party/ckeditor/skins/office2003/elementspath.css
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at media print
-{
- .cke_path
- {
- display: none;
- }
-}
-
-.cke_skin_office2003 .cke_path
-{
- padding: 3px 3px 0 3px;
- display: inline-block;
- float: left;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_path
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_path a,
-.cke_skin_office2003 .cke_path .cke_empty
-{
- display: inline-block;
- float: left;
- border: solid 1px #f7f8fd;
- background-color: #f7f8fd;
- padding-top: 1px;
- padding-bottom: 1px;
- padding-left: 4px;
- padding-right: 4px;
- margin-bottom : 3px;
- cursor: default;
-}
-
-.cke_skin_office2003 .cke_path .cke_empty
-{
- visibility: hidden;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_path a,
-.cke_skin_office2003 .cke_rtl .cke_path cke_empty
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_path a:hover,
-.cke_skin_office2003 .cke_path a:focus,
-.cke_skin_office2003 .cke_path a:active /* IE */
-{
- border: solid 1px #316ac5;
- background-color: #dff1ff;
- padding-top: 1px;
- padding-bottom: 1px;
- padding-left: 4px;
- padding-right: 4px;
- outline: none;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_path a,
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_path .cke_empty
-{
- float: none;
-}
-
-.cke_skin_office2003 .cke_path .cke_label
-{
- display: none;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/icons.css b/devel/third-party/ckeditor/skins/office2003/icons.css
deleted file mode 100644
index 131bf65..0000000
--- a/devel/third-party/ckeditor/skins/office2003/icons.css
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_office2003 .cke_button_source .cke_icon
-{
- background-position: 0 0;
-}
-
-.cke_skin_office2003 .cke_button_newpage .cke_icon
-{
- background-position: 0 -48px;
-}
-
-.cke_skin_office2003 .cke_button_preview .cke_icon
-{
- background-position: 0 -64px;
-}
-
-.cke_skin_office2003 .cke_button_cut .cke_icon
-{
- background-position: 0 -96px;
-}
-
-.cke_skin_office2003 .cke_button_copy .cke_icon
-{
- background-position: 0 -112px;
-}
-
-.cke_skin_office2003 .cke_button_paste .cke_icon
-{
- background-position: 0 -128px;
-}
-
-.cke_skin_office2003 .cke_button_pastetext .cke_icon
-{
- background-position: 0 -144px;
-}
-
-.cke_skin_office2003 .cke_button_find .cke_icon
-{
- background-position: 0 -240px;
-}
-
-.cke_skin_office2003 .cke_button_replace .cke_icon
-{
- background-position: 0 -256px;
-}
-
-.cke_skin_office2003 .cke_button_selectAll .cke_icon
-{
- background-position: 0 -272px;
-}
-
-.cke_skin_office2003 .cke_button_removeFormat .cke_icon
-{
- background-position: 0 -288px;
-}
-
-.cke_skin_office2003 .cke_button_bold .cke_icon
-{
- background-position: 0 -304px;
-}
-
-.cke_skin_office2003 .cke_button_italic .cke_icon
-{
- background-position: 0 -320px;
-}
-
-.cke_skin_office2003 .cke_button_underline .cke_icon
-{
- background-position: 0 -336px;
-}
-
-.cke_skin_office2003 .cke_button_strike .cke_icon
-{
- background-position: 0 -352px;
-}
-
-.cke_skin_office2003 .cke_button_subscript .cke_icon
-{
- background-position: 0 -368px;
-}
-
-.cke_skin_office2003 .cke_button_superscript .cke_icon
-{
- background-position: 0 -384px;
-}
-
-.cke_skin_office2003 .cke_button_table .cke_icon
-{
- background-position: 0 -608px;
-}
-
-.cke_skin_office2003 .cke_button_horizontalrule .cke_icon
-{
- background-position: 0 -624px;
-}
-
-.cke_skin_office2003 .cke_button_smiley .cke_icon
-{
- background-position: 0 -640px;
-}
-
-.cke_skin_office2003 .cke_button_link .cke_icon
-{
- background-position: 0 -528px;
-}
-
-.cke_skin_office2003 .cke_button_unlink .cke_icon
-{
- background-position: 0 -544px;
-}
-
-.cke_skin_office2003 .cke_button_anchor .cke_icon
-{
- background-position: 0 -560px;
-}
-
-.cke_skin_office2003 .cke_button_image .cke_icon
-{
- background-position: 0 -576px;
-}
-
-.cke_skin_office2003 .cke_button_flash .cke_icon
-{
- background-position: 0 -592px;
-}
-
-.cke_skin_office2003 .cke_button_specialchar .cke_icon
-{
- background-position: 0 -656px;
-}
-
-.cke_skin_office2003 .cke_button_pagebreak .cke_icon
-{
- background-position: 0 -672px;
-}
-
-.cke_skin_office2003 .cke_button_print .cke_icon
-{
- background-position: 0 -176px;
-}
-
-.cke_skin_office2003 .cke_button_checkspell .cke_icon,
-.cke_skin_office2003 .cke_button_scayt .cke_icon
-{
- background-position: 0 -192px;
-}
-
-.cke_skin_office2003 .cke_button_pagebreak .cke_icon
-{
- background-position: 0 -672px;
-}
-
-.cke_skin_office2003 .cke_button_textcolor .cke_icon
-{
- background-position: 0 -704px;
-}
-
-.cke_skin_office2003 .cke_button_bgcolor .cke_icon
-{
- background-position: 0 -720px;
-}
-
-.cke_skin_office2003 .cke_button_form .cke_icon
-{
- background-position: 0 -752px;
-}
-
-.cke_skin_office2003 .cke_button_checkbox .cke_icon
-{
- background-position: 0 -768px;
-}
-
-.cke_skin_office2003 .cke_button_radio .cke_icon
-{
- background-position: 0 -784px;
-}
-
-.cke_skin_office2003 .cke_button_textfield .cke_icon
-{
- background-position: 0 -800px;
-}
-
-.cke_skin_office2003 .cke_button_textarea .cke_icon
-{
- background-position: 0 -816px;
-}
-.cke_skin_office2003 .cke_button_showblocks .cke_icon
-{
- background-position: 0 -1136px;
-}
-
-.cke_skin_office2003 .cke_button_select .cke_icon
-{
- background-position: 0 -832px;
-}
-
-.cke_skin_office2003 .cke_button_button .cke_icon
-{
- background-position: 0 -848px;
-}
-
-.cke_skin_office2003 .cke_button_imagebutton .cke_icon
-{
- background-position: 0 -864px;
-}
-
-.cke_skin_office2003 .cke_button_hiddenfield .cke_icon
-{
- background-position: 0 -880px;
-}
-
-.cke_skin_office2003 .cke_button_undo .cke_icon
-{
- background-position: 0 -208px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_button_undo .cke_icon
-{
- background-position: 0 -224px;
-}
-
-.cke_skin_office2003 .cke_button_redo .cke_icon
-{
- background-position: 0 -224px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_button_redo .cke_icon
-{
- background-position: 0 -208px;
-}
-
-.cke_skin_office2003 .cke_button_templates .cke_icon
-{
- background-position: 0 -80px;
-}
-
-.cke_skin_office2003 .cke_button_numberedlist .cke_icon
-{
- background-position: 0 -400px;
-}
-
-.cke_skin_office2003 .cke_button_bulletedlist .cke_icon
-{
- background-position: 0 -416px;
-}
-
-.cke_skin_office2003 .cke_mixed_dir_content .cke_button_numberedlist .cke_icon
-{
- background-position: 0 -1217px;
-}
-
-.cke_skin_office2003 .cke_mixed_dir_content .cke_button_bulletedlist .cke_icon
-{
- background-position: 0 -1233px;
-}
-
-.cke_skin_office2003 .cke_button_outdent .cke_icon
-{
- background-position: 0 -432px;
-}
-
-.cke_skin_office2003 .cke_button_indent .cke_icon
-{
- background-position: 0 -448px;
-}
-
-.cke_skin_office2003 .cke_mixed_dir_content .cke_button_indent .cke_icon
-{
- background-position: 0 -1265px;
-}
-
-.cke_skin_office2003 .cke_mixed_dir_content .cke_button_outdent .cke_icon
-{
- background-position: 0 -1249px;
-}
-
-.cke_skin_office2003 .cke_button_justifyleft .cke_icon
-{
- background-position: 0 -464px;
-}
-
-.cke_skin_office2003 .cke_button_justifycenter .cke_icon
-{
- background-position: 0 -480px;
-}
-
-.cke_skin_office2003 .cke_button_justifyright .cke_icon
-{
- background-position: 0 -496px;
-}
-
-.cke_skin_office2003 .cke_button_justifyblock .cke_icon
-{
- background-position: 0 -512px;
-}
-
-.cke_skin_office2003 .cke_button_blockquote .cke_icon
-{
- background-position: 0 -1152px;
-}
-
-.cke_skin_office2003 .cke_button_flash .cke_icon
-{
- background-position: 0 -592px;
-}
-
-.cke_skin_office2003 .cke_button_pastefromword .cke_icon
-{
- background-position: 0 -160px;
-}
-
-.cke_skin_office2003 .cke_button_save .cke_icon
-{
- background-position: 0 -32px;
-}
-
-.cke_skin_office2003 .cke_button_about .cke_icon
-{
- background-position: 0 -736px;
-}
-
-.cke_skin_office2003 .cke_button_maximize .cke_icon
-{
- background-position: 0 -1040px;
-}
-
-.cke_skin_office2003 .cke_button_creatediv .cke_icon
-{
- background-position: 0 -1168px;
-}
-
-.cke_skin_office2003 .cke_button_editdiv .cke_icon
-{
- background-position: 0 -1184px;
-}
-
-.cke_skin_office2003 .cke_button_removediv .cke_icon
-{
- background-position: 0 -1200px;
-}
-
-.cke_skin_office2003 .cke_button_bidirtl .cke_icon
-{
- background-position: 0 -1072px;
-}
-
-.cke_skin_office2003 .cke_button_bidiltr .cke_icon
-{
- background-position: 0 -1056px;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/mainui.css b/devel/third-party/ckeditor/skins/office2003/mainui.css
deleted file mode 100644
index d0e077d..0000000
--- a/devel/third-party/ckeditor/skins/office2003/mainui.css
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_office2003 .cke_editor
-{
-/*
- border: solid 1px #dcdcdc;
-*/
- display: inline-table;
- width: 100%;
-}
-
-.cke_skin_office2003 span.cke_browser_webkit,
-.cke_skin_office2003 span.cke_browser_gecko18
-{
- display: block;
-}
-
-.cke_skin_office2003,
-.cke_skin_office2003 .cke_wrapper
-{
- display: block;
-}
-
-.cke_skin_office2003 .cke_top,
-.cke_skin_office2003 .cke_bottom,
- .cke_shared .cke_skin_office2003
-{
- background-color: #f7f8fd;
-}
-
-.cke_skin_office2003 .cke_top
-{
- border-top: solid 1px #fafaf5;
- border-left: solid 1px #fafaf5;
- border-right: solid 1px #696969;
- border-bottom: solid 2px #696969;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_top
-{
- border-left: solid 1px #696969;
- border-right: solid 1px #fafaf5;
-}
-
-.cke_skin_office2003 .cke_bottom
-{
- border-left: solid 1px #696969;
- border-right: solid 1px #696969;
- border-bottom: solid 1px #696969;
-}
-
-.cke_skin_office2003 .cke_contents
-{
- border: solid 1px #696969;
- /* Prevent background content from penetrate through when switching between editing modes. (#4918) */
- background-color: white;
-}
-
-.cke_skin_office2003 .cke_focus
-{
- outline: auto 5px -webkit-focus-ring-color;
-}
-
-.cke_skin_office2003 textarea.cke_source
-{
- font-family: 'Courier New' , Monospace;
- font-size: small;
- white-space: pre;
- background-color: #fff;
-}
-
-.cke_skin_office2003 .cke_browser_iequirks textarea.cke_source
-{
- /* For IE6+Quirks only */
- _white-space: normal;
-}
-
-.cke_skin_office2003 .cke_resizer
-{
- width: 12px;
- height: 12px;
- margin-top: 16px;
- display: block;
- float: right;
- /* resizer.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -1088px;
- background-repeat: no-repeat;
- cursor: se-resize;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_resizer
-{
- cursor: sw-resize;
- /* resizer_rtl.gif*/
- background-position: 0 -1115px;
- float: left;
-}
-
-.cke_skin_office2003 .cke_resizer_horizontal,
-.cke_skin_office2003 .cke_rtl .cke_resizer_horizontal
-{
- cursor: e-resize;
-}
-
-.cke_skin_office2003 .cke_resizer_vertical,
-.cke_skin_office2003 .cke_rtl .cke_resizer_vertical
-{
- cursor: n-resize;
-}
-
-.cke_skin_office2003 .cke_maximized .cke_resizer
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_browser_ie6 .cke_contents textarea,
-.cke_skin_office2003 .cke_browser_ie7 .cke_contents textarea
-{
- position: absolute;
-}
-
-/* All voice labels are not displayed. */
-.cke_skin_office2003 .cke_voice_label
-{
- display: none;
-}
-
-.cke_skin_office2003 legend.cke_voice_label
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_browser_ie legend.cke_voice_label
-{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- overflow: hidden;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/menu.css b/devel/third-party/ckeditor/skins/office2003/menu.css
deleted file mode 100644
index 385dfb0..0000000
--- a/devel/third-party/ckeditor/skins/office2003/menu.css
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_office2003 .cke_contextmenu
-{
- padding: 2px;
-}
-
-.cke_skin_office2003 .cke_menuitem a
-{
- display:block;
-}
-
-.cke_skin_office2003 .cke_menuitem span
-{
- cursor: default;
-}
-
-.cke_skin_office2003 .cke_menuitem a:hover,
-.cke_skin_office2003 .cke_menuitem a:focus,
-.cke_skin_office2003 .cke_menuitem a:active
-{
- background-color: #8db1ff;
- display:block;
-}
-
-.cke_hc .cke_menuitem a:hover,
-.cke_hc .cke_menuitem a:focus,
-.cke_hc .cke_menuitem a:active
-{
- border: 2px solid;
-}
-
-.cke_skin_office2003 .cke_menuitem .cke_icon
-{
- background-image: url(icons.png);
- background-position: 100px;
- background-repeat:no-repeat;
- background-color: transparent;
- width: 16px;
- height: 16px;
- float: left;
-}
-
-.cke_rtl .cke_skin_office2003 .cke_menuitem .cke_icon
-{
- background-image: url(icons_rtl.png);
-}
-
-.cke_skin_office2003 .cke_menuitem .cke_disabled .cke_icon
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_menuitem .cke_icon_wrapper
-{
- background-color: #f7f8fd;
- border: solid 4px #f7f8fd;
- width: 16px;
- height: 16px;
- float: left;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- clear: both;
-}
-
-.cke_rtl .cke_skin_office2003 .cke_menuitem .cke_icon_wrapper
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_menuitem a:hover .cke_icon_wrapper,
-.cke_skin_office2003 .cke_menuitem a:focus .cke_icon_wrapper,
-.cke_skin_office2003 .cke_menuitem a:active .cke_icon_wrapper
-{
- background-color: #9d9d9d;
- border: solid 4px #9d9d9d;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,
-.cke_skin_office2003 .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,
-.cke_skin_office2003 .cke_menuitem a:active.cke_disabled .cke_icon_wrapper
-{
- background-color: #f7f8fd;
- border: solid 4px #f7f8fd;
-}
-
-.cke_skin_office2003 .cke_menuitem .cke_label
-{
- display:block;
- padding-right: 3px;
- padding-top: 5px;
- padding-left: 4px;
- height:19px;
- margin-left: 24px;
- background-color: #fff;
-}
-/* Set these after the document has been loaded and we know the dimensions*/
-.cke_skin_office2003 .cke_frameLoaded .cke_menuitem .cke_label
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_rtl .cke_skin_office2003 .cke_menuitem .cke_label
-{
- padding-right: 0;
- margin-left: 0;
- padding-left: 3px;
- margin-right: 28px;
-}
-
-.cke_skin_office2003 .cke_menuitem a.cke_disabled .cke_label
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.30; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_menuitem a:hover .cke_label,
-.cke_skin_office2003 .cke_menuitem a:focus .cke_label,
-.cke_skin_office2003 .cke_menuitem a:active .cke_label
-{
- background-color: #8db1ff;
-}
-
-.cke_skin_office2003 .cke_menuitem a.cke_disabled:hover .cke_label,
-.cke_skin_office2003 .cke_menuitem a.cke_disabled:focus .cke_label,
-.cke_skin_office2003 .cke_menuitem a.cke_disabled:active .cke_label
-{
- background-color: transparent;
-}
-
-.cke_skin_office2003 .cke_menuseparator
-{
- background-color: #f7f8fd;
- height: 2px;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-
- _font-size: 0;
-}
-
-.cke_skin_office2003 .cke_menuarrow
-{
- /* arrowright.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -1071px;
- background-repeat: no-repeat;
- height: 5px;
- width: 3px;
- float: right;
- margin-right: 2px;
- margin-top: 3px;
-}
-
-.cke_rtl .cke_skin_office2003 .cke_menuarrow
-{
- float: left;
- margin-right: 0;
- margin-left: 2px;
- /* arrowleft.gif*/
- background-position: 0 -1050px;
-}
-
-.cke_skin_office2003 .cke_menuarrow span
-{
- display: none;
-}
-
-.cke_hc .cke_skin_office2003 .cke_menuarrow
-{
- width: auto;
- margin-top: 0;
-}
-
-.cke_hc .cke_skin_office2003 .cke_menuarrow span
-{
- display: inline;
-}
-
-/* #3766 In the context menu, long labels with second level menu get wrapped */
-.cke_browser_ie.cke_ltr .cke_skin_office2003 .cke_menuarrow
-{
- position: absolute;
- right: 2px;
-}
-
-.cke_browser_ie.cke_rtl .cke_skin_office2003 .cke_menuarrow
-{
- position: absolute;
- left: 2px;
-}
-/* END #3766 */
diff --git a/devel/third-party/ckeditor/skins/office2003/panel.css b/devel/third-party/ckeditor/skins/office2003/panel.css
deleted file mode 100644
index 78f37cc..0000000
--- a/devel/third-party/ckeditor/skins/office2003/panel.css
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_office2003 .cke_panel
-{
- border: 1px solid #8f8f73;
- background-color: #fff;
-
- width: 120px;
- height: 100px;
-
- overflow:hidden;
-
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
-}
-
-/* Ideally we would use "inherit here"... but you know... IE :( */
-.cke_skin_office2003 .cke_panel iframe
-{
- width: 100%;
- height: 100%;
-}
-
-cke_skin_office2003 .cke_panel_frame .cke_label
-{
- display: none;
-}
-
-/*
- * All the following styles are to be used inside the iframe that holds panel
- * contents. We don't use the cke_skin_default there to avoid the reset to be
- * active.
- * This is not an issue as we'll never have two skins running inside the same
- * panel iframe.
- */
-
-html.cke_skin_office2003_container
-{
- overflow: auto;
- overflow-x: hidden;
-}
-
-body.cke_panel_frame
-{
- overflow: auto;
-}
-
-ul.cke_panel_list
-{
- list-style-type: none;
- margin: 3px;
- padding: 0px;
- white-space: nowrap;
-}
-
-li.cke_panel_listItem
-{
- margin: 0px;
-}
-
-.cke_panel_listItem a
-{
- padding: 2px;
- display: block;
- border: 1px solid #fff;
- color: inherit !important;
- text-decoration: none;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-/* IE6 */
-* html .cke_panel_listItem a
-{
- width : 100%;
-
- /* IE is not able to inherit the color, so we must force it to black */
- color: #000;
-}
-
-/* IE7 */
-*:first-child+html .cke_panel_listItem a
-{
- /* IE is not able to inherit the color, so we must force it to black */
- color: #000;
-}
-
-.cke_panel_listItem.cke_selected a
-{
- border: 1px solid #ccc;
- background-color: #e9f5ff;
-}
-
-.cke_panel_listItem a:hover,
-.cke_panel_listItem a:focus,
-.cke_panel_listItem a:active
-{
- border-color: #316ac5;
- background-color: #dff1ff;
-}
-
-.cke_hc .cke_panel_listItem.cke_selected a,
-.cke_hc .cke_panel_listItem a:hover,
-.cke_hc .cke_panel_listItem a:focus,
-.cke_hc .cke_panel_listItem a:active
-{
- border-width: 3px;
- padding: 0px;
-}
-
-.cke_panel_grouptitle
-{
- font-size: 11px;
- font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
- font-weight: bold;
- white-space: nowrap;
- background-color: #dcdcdc;
- color: #000;
- margin:0px;
- padding:3px;
-}
-
-.cke_panel_listItem p,
-.cke_panel_listItem h1,
-.cke_panel_listItem h2,
-.cke_panel_listItem h3,
-.cke_panel_listItem h4,
-.cke_panel_listItem h5,
-.cke_panel_listItem h6,
-.cke_panel_listItem pre
-{
- margin-top: 3px;
- margin-bottom: 3px;
-}
-
-.cke_skin_office2003 .cke_button_textcolor_panel,
-.cke_skin_office2003 .cke_button_bgcolor_panel
-{
- width: 150px;
- height: 135px;
-}
-
-.cke_colorblock
-{
- padding: 3px;
- font-size: 11px;
- font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.cke_colorblock,
-.cke_colorblock a
-{
- text-decoration: none;
- color: #000;
-}
-
-span.cke_colorbox
-{
- width: 10px;
- height: 10px;
- border: #808080 1px solid;
- float: left;
-}
-
-.cke_rtl span.cke_colorbox
-{
- float: right;
-}
-
-a.cke_colorbox
-{
- border: #fff 1px solid;
- padding: 2px;
- float: left;
-}
-
-.cke_rtl a.cke_colorbox
-{
- float: right;
-}
-
-a:hover.cke_colorbox,
-a:focus.cke_colorbox,
-a:active.cke_colorbox
-{
- border: #316ac5 1px solid;
- background-color: #dff1ff;
-}
-
-a.cke_colorauto,
-a.cke_colormore
-{
- border: #fff 1px solid;
- padding: 2px;
- display: block;
- cursor: pointer;
-}
-
-a:hover.cke_colorauto,
-a:hover.cke_colormore,
-a:focus.cke_colorauto,
-a:focus.cke_colormore,
-a:active.cke_colorauto,
-a:active.cke_colormore
-{
- border: #316ac5 1px solid;
- background-color: #dff1ff;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/presets.css b/devel/third-party/ckeditor/skins/office2003/presets.css
deleted file mode 100644
index 69832f2..0000000
--- a/devel/third-party/ckeditor/skins/office2003/presets.css
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/* "Source" button label */
-.cke_skin_office2003 .cke_button_source .cke_label
-{
- display: inline;
-}
-
-/* "Styles" panel size */
-.cke_skin_office2003 .cke_styles_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Format" panel size */
-.cke_skin_office2003 .cke_format_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Font" panel size */
-.cke_skin_office2003 .cke_font_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Font Size" panel size */
-.cke_skin_office2003 .cke_fontSize_panel
-{
- height: 170px;
-}
-
-/* "Font Size" combo width */
-.cke_skin_office2003 .cke_fontSize .cke_text
-{
- width: 20px;
-}
-
-/* "Font Size" combo width (IE Quirks) */
-.cke_skin_office2003 .cke_browser_iequirks .cke_fontSize .cke_text
-{
- width: 32px;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/reset.css b/devel/third-party/ckeditor/skins/office2003/reset.css
deleted file mode 100644
index 8ba3371..0000000
--- a/devel/third-party/ckeditor/skins/office2003/reset.css
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Reset and Default Values
- */
-.cke_skin_office2003 *,
-.cke_skin_office2003 a:hover,
-.cke_skin_office2003 a:link,
-.cke_skin_office2003 a:visited,
-.cke_skin_office2003 a:active
-{
- margin: 0;
- padding: 0;
- border: 0;
- background: transparent;
- text-decoration: none;
- font: normal normal normal 100% Sans-Serif;
- width: auto;
- height: auto;
- border-collapse: collapse;
- text-align: left;
- vertical-align: baseline;
- white-space: nowrap;
- cursor: auto;
- color: #000;
-
- font-size: 11px;
- font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.cke_skin_office2003 .cke_rtl *,
-.cke_skin_office2003 .cke_rtl a:hover,
-.cke_skin_office2003 .cke_rtl a:link,
-.cke_skin_office2003 .cke_rtl a:visited,
-.cke_skin_office2003 .cke_rtl a:active,
-.cke_rtl .cke_skin_office2003 *,
-.cke_rtl .cke_skin_office2003 a:hover,
-.cke_rtl .cke_skin_office2003 a:link,
-.cke_rtl .cke_skin_office2003 a:visited,
-.cke_rtl .cke_skin_office2003 a:active
-{
- text-align: right;
-}
-
-.cke_skin_office2003 iframe
-{
- vertical-align: inherit; /** For IE */
-}
-
-.cke_skin_office2003 textarea
-{
- white-space: pre;
-}
-
-.cke_skin_office2003 .cke_browser_gecko textarea
-{
- cursor: text;
-}
-
-.cke_skin_office2003 .cke_browser_gecko textarea[disabled]
-{
- cursor: default;
-}
-
-.cke_skin_office2003 input[type="text"],
-.cke_skin_office2003 input[type="password"]
-{
- cursor: text;
-}
-
-.cke_skin_office2003 input[type="text"][disabled],
-.cke_skin_office2003 input[type="password"][disabled]
-{
- cursor: default;
-}
-
-.cke_skin_office2003 fieldset
-{
- padding: 10px;
- border: 2px groove #E0DFE3;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/richcombo.css b/devel/third-party/ckeditor/skins/office2003/richcombo.css
deleted file mode 100644
index 83a13f2..0000000
--- a/devel/third-party/ckeditor/skins/office2003/richcombo.css
+++ /dev/null
@@ -1,297 +0,0 @@
-/* Special Combo */
-
-.cke_skin_office2003 .cke_rcombo
-{
- display: inline-block;
- margin-left: 2px;
- margin-right: 2px;
- margin-top: 2px;
- vertical-align: top;
- float: left;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rcombo
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rcombo
-{
- #float: none;
-}
-
-.cke_skin_office2003 .cke_rcombopanel
-{
- border: 1px solid #316ac5;
- -moz-border-radius-topleft: 0;
- -webkit-border-top-left-radius: 0;
- border-top-left-radius: 0;
- /*margin-left: 1px;*/
- /*_margin-left: 0;*/
-}
-
-.cke_skin_office2003 .cke_rcombo a
-{
- display: inline-block;
- float: left;
-
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo a
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_hc .cke_rcombo a
-{
- filter: alpha(opacity=100); /* IE */
- opacity: 1.0; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_label
-{
- display: inline-block;
- float: left;
- cursor: default;
-
- line-height: 24px;
- height: 24px;
-
- vertical-align: top;
- padding-left: 4px;
- padding-right: 5px;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-
- _background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- _background-position: 0 -962px;
- _background-repeat: repeat-x;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_label
-{
- float: right;
- padding-right: 4px;
- padding-left: 5px;
-}
-
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_label
-{
- filter: alpha(opacity=100);
- opacity: 1.0;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_inline_label
-{
- color: #fff;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_text
-{
- border: 1px solid #8f8f73;
- background-color: #fff;
- height: 14px;
- width:60px;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-left: 5px;
- padding-right: 5px;
- text-overflow: ellipsis;
- overflow: hidden;
- display: inline-block;
- vertical-align: top;
- cursor: default;
-}
-
-.cke_skin_office2003 .cke_ltr .cke_rcombo .cke_text
-{
- -moz-border-radius-topleft: 3px;
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
- -moz-border-radius-bottomleft: 3px;
- -webkit-border-bottom-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_text
-{
- -moz-border-radius-topright: 3px;
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
- -moz-border-radius-bottomright: 3px;
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-/* Fix for IE height */
-.cke_skin_office2003 .cke_browser_iequirks .cke_rcombo .cke_text
-{
- height: 22px;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_openbutton
-{
- display: inline-block;
-
- background-position: 5px -1002px;
- background-image: url(images/sprites.png);
- background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
-
- border-top: 1px solid #8f8f73;
- border-bottom: 1px solid #8f8f73;
- width: 14px;
- height: 22px;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_openbutton span
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_openbutton span
-{
- display : inline;
-}
-
-.cke_skin_office2003 .cke_ltr .cke_rcombo .cke_openbutton
-{
- border-right: 1px solid #8f8f73;
- -moz-border-radius-topright: 3px;
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
- -moz-border-radius-bottomright: 3px;
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_openbutton
-{
- border-left: 1px solid #8f8f73;
- -moz-border-radius-topleft: 3px;
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
- -moz-border-radius-bottomleft: 3px;
- -webkit-border-bottom-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_off a:hover,
-.cke_skin_office2003 .cke_rcombo .cke_off a:focus,
-.cke_skin_office2003 .cke_rcombo .cke_off a:active,
-.cke_skin_office2003 .cke_rcombo .cke_on a
-{
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_off a:hover .cke_text,
-.cke_skin_office2003 .cke_rcombo .cke_off a:focus .cke_text,
-.cke_skin_office2003 .cke_rcombo .cke_off a:active .cke_text,
-.cke_skin_office2003 .cke_rcombo .cke_on .cke_text
-{
- border-color: #316ac5;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_off a:hover .cke_openbutton,
-.cke_skin_office2003 .cke_rcombo .cke_off a:focus .cke_openbutton,
-.cke_skin_office2003 .cke_rcombo .cke_off a:active .cke_openbutton,
-.cke_skin_office2003 .cke_rcombo .cke_on .cke_openbutton
-{
- border-color: #316ac5;
- background-color: #dff1ff;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_on .cke_text
-{
- -moz-border-radius-bottomleft: 0px;
- -webkit-border-bottom-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_on .cke_openbutton
-{
- -moz-border-radius-bottomright: 0px;
- -webkit-border-bottom-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_label
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_label
-{
- filter: alpha(opacity=70);
- opacity: 0.7;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_text,
-.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_openbutton
-{
- filter: alpha(opacity=50); /* IE */
- opacity: 0.5; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_text,
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_openbutton
-{
- filter: alpha(opacity=80);
- opacity: 0.8;
-}
-
-.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_text
-{
- color: #fff;
-}
-
-/* Firefox 2 & WebKit Section */
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo .cke_label,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo .cke_text,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo .cke_openbutton,
-.cke_skin_office2003 .cke_browser_webkit .cke_rcombo .cke_label,
-.cke_skin_office2003 .cke_browser_webkit .cke_rcombo .cke_text,
-.cke_skin_office2003 .cke_browser_webkit .cke_rcombo .cke_openbutton
-{
- display: block;
- float: left;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_label,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_openbutton,
-.cke_skin_office2003 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,
-.cke_skin_office2003 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_office2003 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton
-{
- float: right;
-}
-
-/*** IE ***/
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_rcombo,
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_rcombo a,
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_rcombo .cke_label
-{
- float: none;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_font .cke_text,
-.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_fontSize .cke_text
-{
- direction: ltr;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/skin.js b/devel/third-party/ckeditor/skins/office2003/skin.js
deleted file mode 100644
index 61aee1e..0000000
--- a/devel/third-party/ckeditor/skins/office2003/skin.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.skins.add( 'office2003', (function()
-{
- var preload = [];
-
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )
- {
- // For IE6, we need to preload some images, otherwhise they will be
- // downloaded several times (CSS background bug).
- preload.push( 'icons.png', 'images/sprites_ie6.png', 'images/dialog_sides.gif' );
- }
-
- return {
- preload : preload,
- editor : { css : [ 'editor.css' ] },
- dialog : { css : [ 'dialog.css' ] },
- templates : { css : [ 'templates.css' ] },
- margins : [ 0, 14, 18, 14 ]
- };
-})() );
-
-(function()
-{
- CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );
-
- function dialogSetup()
- {
- CKEDITOR.dialog.on( 'resize', function( evt )
- {
- var data = evt.data,
- width = data.width,
- height = data.height,
- dialog = data.dialog,
- contents = dialog.parts.contents;
-
- if ( data.skin != 'office2003' )
- return;
-
- contents.setStyles(
- {
- width : width + 'px',
- height : height + 'px'
- });
-
- if ( !CKEDITOR.env.ie )
- return;
-
- // Fix the size of the elements which have flexible lengths.
- var fixSize = function()
- {
- var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
- body = innerDialog.getChild( 0 );
-
- // tc
- var el = innerDialog.getChild( 2 );
- el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
-
- // bc
- el = innerDialog.getChild( 7 );
- el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
-
- // ml
- el = innerDialog.getChild( 4 );
- el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-
- // mr
- el = innerDialog.getChild( 5 );
- el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
- };
- setTimeout( fixSize, 100 );
-
- // Ensure size is correct for RTL mode. (#4003)
- if ( evt.editor.lang.dir == 'rtl' )
- setTimeout( fixSize, 1000 );
- });
- }
-})();
diff --git a/devel/third-party/ckeditor/skins/office2003/templates.css b/devel/third-party/ckeditor/skins/office2003/templates.css
deleted file mode 100644
index 411d1ee..0000000
--- a/devel/third-party/ckeditor/skins/office2003/templates.css
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Styles for the "templates" plugin.
- */
-
-.cke_skin_office2003 .cke_tpl_list
-{
- border: #dcdcdc 2px solid;
- background-color: #ffffff;
- overflow: auto;
- width: 100%;
- height: 220px;
-}
-
-.cke_skin_office2003 .cke_tpl_item
-{
- margin: 5px;
- padding: 7px;
- border: #eeeeee 1px solid;
- *width: 88%;
-}
-
-.cke_skin_office2003 .cke_tpl_preview
-{
- border-collapse: separate;
- text-indent:0;
- width: 100%;
-}
-.cke_skin_office2003 .cke_tpl_preview td
-{
- padding: 2px;
- vertical-align: middle;
-}
-.cke_skin_office2003 .cke_tpl_preview .cke_tpl_preview_img
-{
- width: 100px;
-}
-.cke_skin_office2003 .cke_tpl_preview span
-{
- white-space: normal;
-}
-
-.cke_skin_office2003 .cke_tpl_title
-{
- font-weight: bold;
-}
-
-.cke_skin_office2003 .cke_tpl_list a:active .cke_tpl_item,
-.cke_skin_office2003 .cke_tpl_list a:hover .cke_tpl_item,
-.cke_skin_office2003 .cke_tpl_list a:focus .cke_tpl_item
-{
- border: #ff9933 1px solid !important;
- background-color: #fffacd !important;
-}
-
-.cke_skin_office2003 .cke_tpl_list a:active *,
-.cke_skin_office2003 .cke_tpl_list a:hover *,
-.cke_skin_office2003 .cke_tpl_list a:focus *
-{
- cursor: pointer;
-}
-
-/* IE6 contextual selectors childs won't get :hover transition until,
- the hover style of the link itself contains certain CSS declarations.*/
-.cke_skin_office2003 .cke_browser_ie6 .cke_tpl_list a:active,
-.cke_skin_office2003 .cke_browser_ie6 .cke_tpl_list a:hover,
-.cke_skin_office2003 .cke_browser_ie6 .cke_tpl_list a:focus
-{
- background-position: 0 0;
-}
-
-.cke_skin_office2003 .cke_tpl_list a:active .cke_tpl_item,
-.cke_skin_office2003 .cke_tpl_list a:hover .cke_tpl_item,
-.cke_skin_office2003 .cke_tpl_list a:focus .cke_tpl_item
-{
- border-width: 3px;
-}
-
-.cke_skin_office2003 .cke_tpl_empty, .cke_tpl_loading
-{
- text-align: center;
- padding: 5px;
-}
diff --git a/devel/third-party/ckeditor/skins/office2003/toolbar.css b/devel/third-party/ckeditor/skins/office2003/toolbar.css
deleted file mode 100644
index ef08c45..0000000
--- a/devel/third-party/ckeditor/skins/office2003/toolbar.css
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at media print
-{
- .cke_skin_office2003 .cke_toolbox
- {
- display: none;
- }
-}
-
-.cke_skin_office2003 .cke_browser_webkit .cke_toolbox,
-.cke_skin_office2003 .cke_browser_webkit .cke_toolbox > span
-{
- white-space: normal;
-}
-
-.cke_skin_office2003 .cke_toolbox
-{
- clear: both;
- /* Define the padding-bottom otherwise the collapser button will not be clickable #4932*/
- padding-bottom: 1px;
-}
-
-.cke_skin_office2003 a.cke_toolbox_collapser,
-.cke_skin_office2003 a:hover.cke_toolbox_collapser
-{
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 3px -1026px; /* +3px +4px */
- background-repeat: no-repeat;
- width: 11px;
- height: 11px;
- float: right;
- border: outset 1px;
- margin: 11px 2px 2px;
- cursor: pointer;
-}
-
-.cke_skin_office2003 .cke_rtl a.cke_toolbox_collapser,
-.cke_skin_office2003 .cke_rtl a:hover.cke_toolbox_collapser
-{
- float: left;
-}
-
-.cke_skin_office2003 a.cke_toolbox_collapser span
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_hc a.cke_toolbox_collapser span
-{
- font-size: 10px;
- font-weight: bold;
- font-family: Arial;
- display: inline;
-}
-
-.cke_skin_office2003 a.cke_toolbox_collapser_min,
-.cke_skin_office2003 a:hover.cke_toolbox_collapser_min
-{
- /* arrowleft.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 4px -1047px; /* +4px +3px */
- background-repeat: no-repeat;
- margin: 2px;
-}
-
-.cke_skin_office2003 .cke_rtl a.cke_toolbox_collapser_min,
-.cke_skin_office2003 .cke_rtl a:hover.cke_toolbox_collapser_min
-{
- /* arrowright.gif*/
- background-position: 4px -1068px; /* +2px +3px */
-}
-
-.cke_skin_office2003 .cke_toolbar
-{
- background-color: #d6dff7;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -962px;
- background-repeat: repeat-x;
- display: inline-block;
- float: left;
- !height: 28px;
- !line-height: 28px;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_toolbar
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_toolgroup
-{
- display: inline-block;
- float: left;
- height: 28px;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_toolgroup
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_toolgroup
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolgroup
-{
- #float: none;
-}
-
-.cke_skin_office2003 .cke_separator
-{
- display: inline-block;
- float: left;
- border-left: solid 1px #B2CBFF;
- margin: 6px 2px;
- height: 16px;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_separator
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_separator
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_separator
-{
- #float: none;
-}
-
-.cke_skin_office2003 .cke_break
-{
- clear: left;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_break
-{
- clear: right;
-}
-
-.cke_skin_office2003 .cke_toolbar_start
-{
- display: inline-block;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
- background-position: -27px -765px;
- width: 10px;
- height: 28px;
- float: left;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_toolbar_start
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_toolbar_start
-{
- background-position: -27px -816px;
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_start
-{
- #float: none;
-}
-
-.cke_skin_office2003 .cke_toolbar_end
-{
- display: inline-block;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
- background-position: -29px -861px;
- width: 4px;
- height: 28px;
- float: left;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_toolbar_end
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_toolbar_end
-{
- background-position: -29px -907px;
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_end
-{
- #float: none;
-}
-
-.cke_skin_office2003 .cke_button a,
-.cke_skin_office2003 .cke_button a:hover,
-.cke_skin_office2003 .cke_button a:focus,
-.cke_skin_office2003 .cke_button a:active,
-.cke_skin_office2003 .cke_button a.cke_off
-{
- border: solid 1px transparent;
- border-radius: 3px;
- outline: none;
- padding-top: 2px;
- padding-left: 4px;
- padding-right: 4px;
- padding-bottom: 2px;
- margin-top: 2px;
- height: 18px;
- vertical-align: top;
-
- _border: none;
- _margin: 3px 1px 1px 1px;
- cursor: default;
- display: inline-block;
-}
-
-.cke_skin_office2003 .cke_button a,
-.cke_skin_office2003 .cke_button a.cke_off
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
-}
-
-.cke_skin_office2003 .cke_hc .cke_button a,
-.cke_skin_office2003 .cke_hc .cke_button a.cke_off
-{
- opacity: 1.0;
- filter: alpha(opacity=100);
- _border: 1px solid transparent;
-}
-
-.cke_skin_office2003 .cke_button a.cke_on
-{
- border: solid 1px #316ac5;
- background-color: #c1d2ee;
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
-
- _margin: 2px 0 0 0;
-}
-
-.cke_skin_office2003 .cke_hc .cke_button a:hover,
-.cke_skin_office2003 .cke_hc .cke_button a:focus,
-.cke_skin_office2003 .cke_hc .cke_button a:active /* IE */
-{
- padding: 0 2px !important;
- border-width: 3px;
-}
-
-.cke_skin_office2003 .cke_button a.cke_disabled *,
-.cke_skin_office2003 .cke_browser_ie a:hover.cke_button .cke_disabled *
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_office2003 .cke_hc .cke_button a.cke_disabled *,
-.cke_skin_office2003 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *
-{
- filter: alpha(opacity=60);
- opacity: 0.6;
-}
-
-.cke_skin_office2003 .cke_button a:hover,
-.cke_skin_office2003 .cke_button a:focus,
-.cke_skin_office2003 .cke_button a:active /* IE */
-{
- border: solid 1px #316ac5;
- background-color: #dff1ff;
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
- vertical-align: top;
-
- _margin: 2px 0 0 0;
- padding: 2px 4px;
-}
-
-.cke_skin_office2003 .cke_button .cke_icon
-{
- background-image: url(icons.png);
- background-position: 100px;
- background-repeat:no-repeat;
- margin-top:1px;
- width: 16px;
- height: 16px;
- display: inline-block;
- cursor: default;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_button .cke_icon
-{
- background-image: url(icons_rtl.png);
-}
-
-.cke_skin_office2003 .cke_button .cke_label
-{
- display: none;
- padding-left: 3px;
- cursor: default;
- vertical-align:middle;
- _background-image: url(images/sprites_ie6.png);
- _background-position: 0 -970px;
- _background-repeat: repeat-x;
-}
-
-.cke_skin_office2003 .cke_button a:hover .cke_label
-{
- _background-color: #dff1ff;
- _background-image: none;
-}
-
-.cke_skin_office2003 .cke_button a.cke_on .cke_label
-{
- _background-color: #c1d2ee;
- _background-image: none;
-}
-
-.cke_skin_office2003 .cke_hc .cke_button .cke_label
-{
- padding: 0;
- display: inline-block;
-}
-
-.cke_skin_office2003 .cke_hc .cke_button .cke_icon
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_accessibility
-{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- overflow: hidden;
-}
-
-.cke_skin_office2003 .cke_button .cke_buttonarrow
-{
- display: inline-block;
- height: 18px;
- width: 8px;
- background-position: 2px -1004px;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
- cursor: default;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_button .cke_buttonarrow
-{
- background-position: 0 -1004px;
-}
-
-/*** Firefox 2 ***/
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_toolbar,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_button a,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_button a.cke_off,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_icon,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_buttonarrow,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_separator,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_toolbar_start,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_toolbar_end
-{
- display: block;
- float: left;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_hc .cke_button .cke_icon
-{
- display: none;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_toolbar,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button a,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button a.cke_off,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button .cke_icon,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button .cke_buttonarrow,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_separator,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_toolbar_start,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_toolbar_end
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_label,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_break
-{
- float: left;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl span.cke_inline_label
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button .cke_label,
-.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_break
-{
- float: right;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_separator
-{
- margin-top: 4px;
-}
-
-.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_label
-{
- padding-top: 3px;
-}
-
-/*** IE6 ***/
-
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolgroup,
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_separator,
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_start,
-.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_end
-{
- float: none;
-}
-
-/*** IE8 ***/
-
-.cke_skin_office2003 .cke_browser_ie8 .cke_toolbar,
-.cke_skin_office2003 .cke_browser_ie8 .cke_toolgroup
-{
- vertical-align: top;
-}
-
-.cke_skin_office2003 .cke_browser_iequirks.cke_browser_ie8 .cke_toolbar,
-.cke_skin_office2003 .cke_browser_iequirks.cke_browser_ie8 .cke_toolgroup
-{
- /* revert previous */
- vertical-align: baseline;
-}
-
-/* Separator + Combo penetrate toolbar in IE quirks. (#4461) */
-.cke_skin_office2003 .cke_browser_iequirks .cke_separator
-{
- vertical-align: text-bottom;
-}
-/* Fix cursor shape consistency on toolbar combos (#4031) */
-.cke_skin_office2003 .cke_browser_ie .cke_rcombo,
-.cke_skin_office2003 .cke_browser_ie .cke_rcombo *
-{
- cursor: default;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/dialog.css b/devel/third-party/ckeditor/skins/v2/dialog.css
deleted file mode 100644
index a63baca..0000000
--- a/devel/third-party/ckeditor/skins/v2/dialog.css
+++ /dev/null
@@ -1,780 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/* Restore the dialog visibility */
-body .cke_dialog
-{
- visibility: visible;
-}
-
-/* Force Gecko to consider table as positioned */
-.cke_skin_v2 table.cke_dialog.cke_browser_gecko
-{
- display:block;
-}
-
-.cke_skin_v2 .cke_dialog_body
-{
- margin-left: 16px;
- margin-right: 16px;
- margin-top: 2px;
- margin-bottom: 20px;
- z-index: 1;
-
- /* 'cke_dialog' element has been fixed positioned in all but IE6, while we
- need it to be positioned to hold e.g. close button. */
- position: relative;
- _position: static;
-
-}
-
-.cke_skin_v2 .cke_dialog_tl,
-.cke_skin_v2 .cke_dialog_tr,
-.cke_skin_v2 .cke_dialog_tc,
-.cke_skin_v2 .cke_dialog_bl,
-.cke_skin_v2 .cke_dialog_br,
-.cke_skin_v2 .cke_dialog_bc
-{
- background-image: url(images/sprites.png);
- background-repeat: no-repeat;
- position: absolute;
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/sprites_ie6.png);
- /* Dialog corner parts require a negative z-index to avoid covering dialog body. (#4954) */
- _z-index: -1;
-}
-
-.cke_skin_v2 .cke_dialog_tl
-{
- background-position: -16px -16px;
- height: 16px;
- width: 16px;
- top: 0;
- left: 0;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_tl
-{
- background-position: -16px -397px;
-}
-
-.cke_skin_v2 .cke_dialog_tr
-{
- background-position: -16px -76px;
- height: 16px;
- width: 16px;
- top: 0;
- right: 0;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_tr
-{
- background-position: -16px -457px;
-}
-
-.cke_skin_v2 .cke_dialog_tc
-{
- background-position: 0 -136px;
- background-repeat: repeat-x;
- height: 16px;
- top: 0;
- left: 16px;
- right: 16px;
-}
-
-.cke_skin_v2 .cke_dialog_bl
-{
- background-position: -16px -196px;
- height: 51px;
- width: 30px;
- bottom: 0;
- left: 0;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_bl
-{
- background-position: -16px -517px;
-}
-
-.cke_skin_v2 .cke_dialog_br
-{
- background-position: -16px -263px;
- height: 51px;
- width: 30px;
- bottom: 0;
- right: 0;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_br
-{
- background-position: -16px -584px;
-}
-
-.cke_skin_v2 .cke_dialog_bc
-{
- background-position: 0 -330px;
- background-repeat: repeat-x;
- height: 51px;
- bottom: 0;
- left: 30px;
- right: 30px;
-}
-
-.cke_skin_v2 .cke_dialog_ml,
-.cke_skin_v2 .cke_dialog_mr
-{
- background-image: url(images/dialog_sides.png);
- background-repeat: repeat-y;
- position: absolute;
- width: 16px;
- top: 16px;
- bottom: 51px;
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/dialog_sides.gif);
-
- /* IE quirks gets confused when we have both top and bottom. */
- _top: auto;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_ml,
-.cke_skin_v2 .cke_rtl .cke_dialog_mr
-{
- background-image: url(images/dialog_sides_rtl.png);
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/dialog_sides.gif);
-}
-
-.cke_skin_v2 .cke_dialog_ml
-{
- background-position: 0 0;
- left: 0;
-}
-
-.cke_skin_v2 .cke_dialog_mr
-{
- background-position: -16px 0;
- right: 0;
-}
-
-.cke_skin_v2 .cke_browser_iequirks .cke_dialog_ml,
-.cke_skin_v2 .cke_browser_iequirks .cke_dialog_mr
-{
- margin-top: 3px;
-}
-
-.cke_skin_v2 .cke_dialog_title
-{
- font-weight: bold;
- font-size: 14pt;
- color: #737357;
- background-color: #e3e3c7;
- padding: 3px 10px 26px 10px;
- cursor: move;
- position: relative;
-}
-
-.cke_skin_v2 .cke_browser_ie.cke_rtl .cke_dialog_title
-{
- position: static !important;
- unicode-bidi: bidi-override;
-}
-
-.cke_skin_v2 .cke_dialog_contents
-{
- background-color: #f1f1e3;
- border: #d5d59d 1px solid;
- overflow: auto;
- padding: 5px 10px;
-}
-
-.cke_skin_v2 .cke_dialog_footer
-{
- background-color: #e3e3c7;
- text-align: right;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_footer
-{
- text-align: left;
-}
-
-/* tabs */
-
-.cke_skin_v2 .cke_dialog_tabs
-{
- height: 23px;
- background-color: #e3e3c7;
- display: inline-block;
- margin-left:10px;
- margin-right:10px;
- margin-top:-23px;
- position: absolute;
- z-index: 2;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_tabs
-{
- right: 10px;
-}
-
-.cke_skin_v2 a.cke_dialog_tab,
-.cke_skin_v2 a:link.cke_dialog_tab,
-.cke_skin_v2 a:active.cke_dialog_tab,
-.cke_skin_v2 a:hover.cke_dialog_tab,
-.cke_skin_v2 a:visited.cke_dialog_tab
-{
- color: #737357;
- border-left: 1px solid #d5d59d;
- border-right: 1px solid #d5d59d;
- border-top: 1px solid #d5d59d;
- height: 14px;
- padding: 4px 5px;
- display: inline-block;
- cursor: pointer;
-}
-
-/* Gecko 1.8 layout workaround. */
-.cke_skin_v2 .cke_browser_gecko18 a.cke_dialog_tab,
-.cke_skin_v2 .cke_browser_gecko18 a:link.cke_dialog_tab,
-.cke_skin_v2 .cke_browser_gecko18 a:active.cke_dialog_tab,
-.cke_skin_v2 .cke_browser_gecko18 a:hover.cke_dialog_tab,
-.cke_skin_v2 .cke_browser_gecko18 a:visited.cke_dialog_tab
-{
- display: inline;
- position: relative;
- top: 6px;
-}
-
-.cke_skin_v2 a:hover.cke_dialog_tab
-{
- background-color: #f1f1e3;
-}
-
-.cke_skin_v2 .cke_hc a:hover.cke_dialog_tab
-{
- padding: 2px 3px !important;
- border-width: 3px;
-}
-
-.cke_skin_v2 a.cke_dialog_tab_selected,
-.cke_skin_v2 a:link.cke_dialog_tab_selected,
-.cke_skin_v2 a:active.cke_dialog_tab_selected,
-.cke_skin_v2 a:hover.cke_dialog_tab_selected,
-.cke_skin_v2 a:visited.cke_dialog_tab_selected
-{
- border-bottom: 1px solid #f1f1e3;
- background-color: #f1f1e3;
- font-weight: bold;
- cursor: default;
-}
-
-.cke_skin_v2 .cke_hc a.cke_dialog_tab_selected,
-.cke_skin_v2 .cke_hc a:link.cke_dialog_tab_selected,
-.cke_skin_v2 .cke_hc a:active.cke_dialog_tab_selected,
-.cke_skin_v2 .cke_hc a:hover.cke_dialog_tab_selected,
-.cke_skin_v2 .cke_hc a:visited.cke_dialog_tab_selected
-{
- padding: 2px 3px !important;
- border-width: 3px;
-}
-
-.cke_skin_v2 .cke_hc .cke_dialog_tabs a,
-.cke_skin_v2 .cke_hc .cke_dialog_footer a
-{
- opacity: 1.0;
- filter: alpha(opacity=100);
- border: 1px solid white;
-}
-
-/* single_page */
-
-.cke_skin_v2 .cke_single_page .cke_dialog_tabs
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_single_page .cke_dialog_title
-{
- padding-bottom: 3px;
-}
-
-.cke_skin_v2 .cke_dialog_ui_vbox table,
-.cke_skin_v2 .cke_dialog_ui_hbox table
-{
- margin: auto;
-}
-
-.cke_skin_v2 .cke_dialog_ui_vbox_child
-{
- padding: 5px 0px;
-}
-
-.cke_skin_v2 input.cke_dialog_ui_input_text,
-.cke_skin_v2 input.cke_dialog_ui_input_password
-{
- background-color: white;
- border: none;
- padding: 0px;
- width: 100%;
- height: 14px;
-}
-
-.cke_skin_v2 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,
-.cke_skin_v2 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password
-{
- border-width: 0px;
-}
-
-.cke_skin_v2 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,
-.cke_skin_v2 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_password
-{
- border-width: 1px;
-}
-
-.cke_skin_v2 div.cke_dialog_ui_input_text,
-.cke_skin_v2 div.cke_dialog_ui_input_password
-{
- background-color: white;
- border: 1px solid #a0a0a0;
- padding: 1px 0px;
-}
-
-.cke_skin_v2 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text {
- padding-right: 1px;
-}
-
-.cke_skin_v2 textarea.cke_dialog_ui_input_textarea
-{
- background-color: white;
- border: none;
- padding: 0px;
- width: 100%;
- /*
- * IE6 BUG: Scrollbars in textareas can overflow even if the outer DIV is set to overflow:hidden.
- * So leave 1% width for the scrollbar. In most situations the 1% isn't noticeable by users.
- */
- _width: 99%;
- overflow: auto;
- resize: none;
-}
-
-.cke_skin_v2 div.cke_dialog_ui_input_textarea
-{
- background-color: white;
- border: 1px solid #a0a0a0;
- padding: 1px 0px;
-}
-
-.cke_skin_v2 div.cke_disabled .cke_dialog_ui_labeled_content *
-{
- background-color : #a0a0a0;
- cursor : default;
-}
-
-.cke_skin_v2 .cke_dialog_ui_hbox
-{
- width: 100%;
-}
-
-.cke_skin_v2 .cke_dialog_ui_hbox_first,
-.cke_skin_v2 .cke_dialog_ui_hbox_child,
-.cke_skin_v2 .cke_dialog_ui_hbox_last
-{
- vertical-align: top;
-}
-
-.cke_skin_v2 .cke_ltr .cke_dialog_ui_hbox_first,
-.cke_skin_v2 .cke_ltr .cke_dialog_ui_hbox_child
-{
- padding-right: 10px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog_ui_hbox_first,
-.cke_skin_v2 .cke_rtl .cke_dialog_ui_hbox_child
-{
- padding-left: 10px;
-}
-
-/* button */
-
-.cke_skin_v2 a.cke_dialog_ui_button
-{
- border-collapse: separate;
- cursor: default;
-}
-
-.cke_skin_v2 span.cke_dialog_ui_button
-{
- border: #737357 1px solid;
- padding: 2px 10px;
- text-align: center;
- color: #3b3b1f;
- background-color: #c7c78f;
- display: inline-block;
- cursor: default;
-}
-
-/* Gecko 1.8 does not support display: inline-block */
-.cke_skin_v2 .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button
-{
- display: block;
-}
-
-.cke_skin_v2 a.cke_dialog_ui_button span.cke_disabled
-{
- border: #898980 1px solid;
- color: #5e5e55;
- background-color: #c5c5b3;
-}
-
-.cke_skin_v2 a:focus span.cke_dialog_ui_button,
-.cke_skin_v2 a:active span.cke_dialog_ui_button
-{
- background-color: #e3e3c7;
-}
-
-.cke_skin_v2 .cke_hc a:focus span.cke_dialog_ui_button,
-.cke_skin_v2 .cke_hc a:active span.cke_dialog_ui_button
-{
- border-width: 2px;
-}
-
-.cke_skin_v2 .cke_dialog_footer_buttons
-{
- display: inline-table;
- margin-right: 12px;
- margin-left: 12px;
- width: auto;
- position: relative;
-}
-
-/* Gecko 1.8 does not support for display: inline-table */
-.cke_skin_v2 .cke_browser_gecko18 .cke_dialog_footer_buttons
-{
- display: inline;
-}
-
-.cke_skin_v2 .cke_dialog_footer_buttons span.cke_dialog_ui_button
-{
- width: 60px;
- margin: 7px 0;
-}
-
-.cke_skin_v2 strong
-{
- font-weight: bold;
-}
-
-/* close_button */
-
-.cke_skin_v2 a.cke_dialog_close_button,
-.cke_skin_v2 a:hover.cke_dialog_close_button,
-.cke_skin_v2 .cke_browser_ie6 a.cke_dialog_close_button,
-.cke_skin_v2 .cke_browser_ie6 a:hover.cke_dialog_close_button
-{
- background-image: url(images/sprites.png);
- background-repeat: no-repeat;
- background-position: -16px -651px;
- position: absolute;
- cursor: pointer;
- text-align: center;
- height: 20px;
- width: 20px;
- top: 5px;
-
- /* IE6 does not support full color transparent PNG. */
- _background-image: url(images/sprites_ie6.png);
-}
-
-.cke_skin_v2 a.cke_dialog_close_button span
-{
- display: none;
-}
-
-.cke_skin_v2 a:hover.cke_dialog_close_button
-{
- background-position: -16px -687px;
-}
-
-.cke_skin_v2 .cke_ltr a.cke_dialog_close_button,
-.cke_skin_v2 .cke_ltr a:hover.cke_dialog_close_button
-{
- right: 10px;
- _right: 22px;
-}
-
-.cke_skin_v2 .cke_rtl a.cke_dialog_close_button,
-.cke_skin_v2 .cke_rtl a:hover.cke_dialog_close_button
-{
- left: 10px;
- _left: 16px;
- _top: 7px;
-}
-
-.cke_skin_v2 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,
-.cke_skin_v2 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button
-{
- position: relative;
- float: left;
- margin-top: -55px;
- margin-left: -7px;
-}
-
-.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,
-.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button
-{
- margin-top: -32px;
-}
-
-.cke_skin_v2 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,
-.cke_skin_v2 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button
-{
- margin-top: 0;
-}
-
-.cke_skin_v2 .cke_dialog_ui_input_select
-{
- border: 1px solid #a0a0a0;
- background-color: white;
-}
-
-.cke_skin_v2 .cke_dialog_ui_input_file
-{
- width: 100%;
- height: 25px;
-}
-
-/*
- * Some utility CSS classes for dialog authors.
- */
-.cke_skin_v2 .cke_dialog .cke_dark_background
-{
- background-color: #eaead1;
-}
-
-.cke_skin_v2 .cke_dialog .cke_hand
-{
- cursor: pointer;
-}
-
-.cke_skin_v2 .cke_dialog .cke_centered
-{
- text-align: center;
-}
-
-.cke_skin_v2 .cke_dialog a.cke_btn_reset
-{
- float: right;
- background-position: 0 -32px;
- background-image: url(images/mini.gif);
- width: 16px;
- height: 16px;
- background-repeat: no-repeat;
- border: 1px none;
- font-size: 1px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog a.cke_btn_reset
-{
- float: left;
-}
-
-.cke_skin_v2 .cke_dialog a.cke_btn_locked,
-.cke_skin_v2 .cke_dialog a.cke_btn_unlocked
-{
- float: left;
- background-position: 0 0;
- background-image: url(images/mini.gif);
- width: 16px;
- height: 16px;
- background-repeat: no-repeat;
- border: none 1px;
- font-size: 1px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_dialog a.cke_btn_locked,
-.cke_skin_v2 .cke_rtl .cke_dialog a.cke_btn_unlocked
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_dialog a.cke_btn_unlocked
-{
- background-position: 0 -16px;
- background-image: url(images/mini.gif);
-}
-
-.cke_skin_v2 .cke_dialog .cke_btn_over
-{
- border: outset 1px;
- cursor: pointer;
-}
-
-.cke_skin_v2 .cke_dialog .ImagePreviewBox
-{
- border : 2px ridge black;
- overflow : scroll;
- height : 160px;
- width : 230px;
- padding : 2px;
- background-color : white;
-}
-
-.cke_skin_v2 .cke_dialog .ImagePreviewBox table td {
- white-space: normal;
-}
-
-/* Fix iframedialog's height doesn't stretch to 100% #4863.*/
-.cke_skin_v2 .cke_browser_iequirks .cke_dialog_page_contents
-{
- _position: absolute;
-}
-
-.cke_skin_v2 .cke_dialog .ImagePreviewLoader
-{
- position: absolute;
- white-space : normal;
- overflow : hidden;
- height : 160px;
- width : 230px;
- margin : 2px;
- padding : 2px;
- opacity : 0.9;
- filter : alpha(opacity=90);
-
- background-color : #e4e4e4;
-}
-
-.cke_skin_v2 .cke_dialog .FlashPreviewBox
-{
- white-space : normal;
- border : 2px ridge black;
- overflow : auto;
- height : 160px;
- width : 390px;
- padding : 2px;
- background-color : white;
-}
-
-.cke_skin_v2 .cke_dialog .cke_pastetext
-{
- width: 346px;
- height: 170px;
-}
-
-.cke_skin_v2 .cke_dialog .cke_pastetext textarea
-{
- width: 340px;
- height: 170px;
- resize: none;
-}
-
-.cke_skin_v2 .cke_dialog iframe.cke_pasteframe
-{
- width: 346px;
- height: 130px;
- background-color: white;
- border: 1px solid black;
-}
-
-.cke_skin_v2 .cke_dialog .cke_dark_background
-{
- text-align : center;
- background-color: #eaead1;
- font-size : 14px;
-}
-
-.cke_skin_v2 .cke_dialog .cke_light_background
-{
- text-align : center;
- background-color: #ffffbe;
-}
-
-.cke_skin_v2 .cke_dialog .cke_hand
-{
- cursor: pointer;
-}
-
-.cke_skin_v2 .cke_disabled
-{
- color: #a0a0a0;
-}
-
-/* High Contrast Mode */
-.cke_skin_v2 .cke_hc .cke_dialog_title,
-.cke_skin_v2 .cke_hc .cke_dialog_tabs,
-.cke_skin_v2 .cke_hc .cke_dialog_contents,
-.cke_skin_v2 .cke_hc .cke_dialog_footer
-{
- border-left: 1px solid;
- border-right: 1px solid;
-}
-
-.cke_skin_v2 .cke_hc .cke_dialog_title
-{
- border-top: 1px solid;
-}
-
-.cke_skin_v2 .cke_hc .cke_dialog_footer
-{
- border-bottom: 1px solid;
-}
-
-.cke_skin_v2 .cke_hc .cke_dialog_close_button span
-{
- display: inline;
- cursor: pointer;
- font-weight: bold;
- position: relative;
- top: 3px;
-}
-
-.cke_skin_v2 .cke_dialog_body .cke_label
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_dialog_body label.cke_required
-{
- font-weight: bold;
-}
-
-.cke_skin_v2 .cke_hc .cke_dialog_body .cke_label
-{
- display: inline;
-}
-
-.cke_skin_v2 .cke_hc a.cke_btn_locked,
-.cke_skin_v2 .cke_hc a.cke_btn_unlocked,
-.cke_skin_v2 .cke_hc a.cke_btn_reset
-{
- border-style: solid;
- float:left;
- width:auto;
- height:auto;
-}
-
-.cke_skin_v2 .cke_rtl.cke_hc a.cke_btn_locked,
-.cke_skin_v2 .cke_rtl.cke_hc a.cke_btn_unlocked,
-.cke_skin_v2 .cke_rtl.cke_hc a.cke_btn_reset
-{
- float:right;
-}
-
-.cke_skin_v2 a.cke_smile img
-{
- /* IE6 does not support transparent borders */
- border: 2px solid #eaead1;
-}
-
-.cke_skin_v2 a.cke_smile:focus img,
-.cke_skin_v2 a.cke_smile:active img,
-.cke_skin_v2 a.cke_smile:hover img
-{
- border-color: #C7C78F;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/editor.css b/devel/third-party/ckeditor/skins/v2/editor.css
deleted file mode 100644
index a561c97..0000000
--- a/devel/third-party/ckeditor/skins/v2/editor.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at import url("reset.css");
- at import url("mainui.css");
- at import url("panel.css");
- at import url("toolbar.css");
- at import url("menu.css");
- at import url("richcombo.css");
- at import url("elementspath.css");
- at import url("icons.css");
- at import url("presets.css");
-
-/* Restore the container visibility */
-html .cke_skin_v2
-{
- visibility: inherit;
-}
-
-html.cke_skin_v2_container
-{
- visibility: visible;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/elementspath.css b/devel/third-party/ckeditor/skins/v2/elementspath.css
deleted file mode 100644
index 5ebefaf..0000000
--- a/devel/third-party/ckeditor/skins/v2/elementspath.css
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at media print
-{
- .cke_path
- {
- display: none;
- }
-}
-
-.cke_skin_v2 .cke_path
-{
- padding: 3px 3px 0 3px;
- display: inline-block;
- float: left;
-}
-
-.cke_skin_v2 .cke_rtl .cke_path
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_path a,
-.cke_skin_v2 .cke_path .cke_empty
-{
- display: inline-block;
- float: left;
- border: solid 1px #efefde;
- background-color: #efefde;
- padding-top: 1px;
- padding-bottom: 1px;
- padding-left: 4px;
- padding-right: 4px;
- margin-bottom : 3px;
- cursor: default;
-}
-
-.cke_skin_v2 .cke_path .cke_empty
-{
- visibility: hidden;
-}
-
-.cke_skin_v2 .cke_rtl .cke_path a,
-.cke_skin_v2 .cke_rtl .cke_path cke_empty
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_path a:hover,
-.cke_skin_v2 .cke_path a:focus,
-.cke_skin_v2 .cke_path a:active /* IE */
-{
- border: solid 1px #316ac5;
- background-color: #dff1ff;
- padding-top: 1px;
- padding-bottom: 1px;
- padding-left: 4px;
- padding-right: 4px;
- outline: none;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_path a,
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_path .cke_empty
-{
- float: none;
-}
-
-.cke_skin_v2 .cke_path .cke_label
-{
- display: none;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/icons.css b/devel/third-party/ckeditor/skins/v2/icons.css
deleted file mode 100644
index dea76b3..0000000
--- a/devel/third-party/ckeditor/skins/v2/icons.css
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_v2 .cke_button_source .cke_icon
-{
- background-position: 0 0;
-}
-
-.cke_skin_v2 .cke_button_newpage .cke_icon
-{
- background-position: 0 -48px;
-}
-
-.cke_skin_v2 .cke_button_preview .cke_icon
-{
- background-position: 0 -64px;
-}
-
-.cke_skin_v2 .cke_button_cut .cke_icon
-{
- background-position: 0 -96px;
-}
-
-.cke_skin_v2 .cke_button_copy .cke_icon
-{
- background-position: 0 -112px;
-}
-
-.cke_skin_v2 .cke_button_paste .cke_icon
-{
- background-position: 0 -128px;
-}
-
-.cke_skin_v2 .cke_button_pastetext .cke_icon
-{
- background-position: 0 -144px;
-}
-
-.cke_skin_v2 .cke_button_find .cke_icon
-{
- background-position: 0 -240px;
-}
-
-.cke_skin_v2 .cke_button_replace .cke_icon
-{
- background-position: 0 -256px;
-}
-
-.cke_skin_v2 .cke_button_selectAll .cke_icon
-{
- background-position: 0 -272px;
-}
-
-.cke_skin_v2 .cke_button_removeFormat .cke_icon
-{
- background-position: 0 -288px;
-}
-
-.cke_skin_v2 .cke_button_bold .cke_icon
-{
- background-position: 0 -304px;
-}
-
-.cke_skin_v2 .cke_button_italic .cke_icon
-{
- background-position: 0 -320px;
-}
-
-.cke_skin_v2 .cke_button_underline .cke_icon
-{
- background-position: 0 -336px;
-}
-
-.cke_skin_v2 .cke_button_strike .cke_icon
-{
- background-position: 0 -352px;
-}
-
-.cke_skin_v2 .cke_button_subscript .cke_icon
-{
- background-position: 0 -368px;
-}
-
-.cke_skin_v2 .cke_button_superscript .cke_icon
-{
- background-position: 0 -384px;
-}
-
-.cke_skin_v2 .cke_button_table .cke_icon
-{
- background-position: 0 -608px;
-}
-
-.cke_skin_v2 .cke_button_horizontalrule .cke_icon
-{
- background-position: 0 -624px;
-}
-
-.cke_skin_v2 .cke_button_smiley .cke_icon
-{
- background-position: 0 -640px;
-}
-
-.cke_skin_v2 .cke_button_link .cke_icon
-{
- background-position: 0 -528px;
-}
-
-.cke_skin_v2 .cke_button_unlink .cke_icon
-{
- background-position: 0 -544px;
-}
-
-.cke_skin_v2 .cke_button_anchor .cke_icon
-{
- background-position: 0 -560px;
-}
-
-.cke_skin_v2 .cke_button_image .cke_icon
-{
- background-position: 0 -576px;
-}
-
-.cke_skin_v2 .cke_button_flash .cke_icon
-{
- background-position: 0 -592px;
-}
-
-.cke_skin_v2 .cke_button_specialchar .cke_icon
-{
- background-position: 0 -656px;
-}
-
-.cke_skin_v2 .cke_button_pagebreak .cke_icon
-{
- background-position: 0 -672px;
-}
-
-.cke_skin_v2 .cke_button_print .cke_icon
-{
- background-position: 0 -176px;
-}
-
-.cke_skin_v2 .cke_button_checkspell .cke_icon,
-.cke_skin_v2 .cke_button_scayt .cke_icon
-{
- background-position: 0 -192px;
-}
-
-.cke_skin_v2 .cke_button_pagebreak .cke_icon
-{
- background-position: 0 -672px;
-}
-
-.cke_skin_v2 .cke_button_textcolor .cke_icon
-{
- background-position: 0 -704px;
-}
-
-.cke_skin_v2 .cke_button_bgcolor .cke_icon
-{
- background-position: 0 -720px;
-}
-
-.cke_skin_v2 .cke_button_form .cke_icon
-{
- background-position: 0 -752px;
-}
-
-.cke_skin_v2 .cke_button_checkbox .cke_icon
-{
- background-position: 0 -768px;
-}
-
-.cke_skin_v2 .cke_button_radio .cke_icon
-{
- background-position: 0 -784px;
-}
-
-.cke_skin_v2 .cke_button_textfield .cke_icon
-{
- background-position: 0 -800px;
-}
-
-.cke_skin_v2 .cke_button_textarea .cke_icon
-{
- background-position: 0 -816px;
-}
-.cke_skin_v2 .cke_button_showblocks .cke_icon
-{
- background-position: 0 -1136px;
-}
-
-.cke_skin_v2 .cke_button_select .cke_icon
-{
- background-position: 0 -832px;
-}
-
-.cke_skin_v2 .cke_button_button .cke_icon
-{
- background-position: 0 -848px;
-}
-
-.cke_skin_v2 .cke_button_imagebutton .cke_icon
-{
- background-position: 0 -864px;
-}
-
-.cke_skin_v2 .cke_button_hiddenfield .cke_icon
-{
- background-position: 0 -880px;
-}
-
-.cke_skin_v2 .cke_button_undo .cke_icon
-{
- background-position: 0 -208px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_button_undo .cke_icon
-{
- background-position: 0 -224px;
-}
-
-.cke_skin_v2 .cke_button_redo .cke_icon
-{
- background-position: 0 -224px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_button_redo .cke_icon
-{
- background-position: 0 -208px;
-}
-
-.cke_skin_v2 .cke_button_templates .cke_icon
-{
- background-position: 0 -80px;
-}
-
-.cke_skin_v2 .cke_button_numberedlist .cke_icon
-{
- background-position: 0 -400px;
-}
-
-.cke_skin_v2 .cke_button_bulletedlist .cke_icon
-{
- background-position: 0 -416px;
-}
-
-.cke_skin_v2 .cke_mixed_dir_content .cke_button_numberedlist .cke_icon
-{
- background-position: 0 -1217px;
-}
-
-.cke_skin_v2 .cke_mixed_dir_content .cke_button_bulletedlist .cke_icon
-{
- background-position: 0 -1233px;
-}
-
-.cke_skin_v2 .cke_button_outdent .cke_icon
-{
- background-position: 0 -432px;
-}
-
-.cke_skin_v2 .cke_button_indent .cke_icon
-{
- background-position: 0 -448px;
-}
-
-.cke_skin_v2 .cke_mixed_dir_content .cke_button_indent .cke_icon
-{
- background-position: 0 -1265px;
-}
-
-.cke_skin_v2 .cke_mixed_dir_content .cke_button_outdent .cke_icon
-{
- background-position: 0 -1249px;
-}
-
-.cke_skin_v2 .cke_button_justifyleft .cke_icon
-{
- background-position: 0 -464px;
-}
-
-.cke_skin_v2 .cke_button_justifycenter .cke_icon
-{
- background-position: 0 -480px;
-}
-
-.cke_skin_v2 .cke_button_justifyright .cke_icon
-{
- background-position: 0 -496px;
-}
-
-.cke_skin_v2 .cke_button_justifyblock .cke_icon
-{
- background-position: 0 -512px;
-}
-
-.cke_skin_v2 .cke_button_blockquote .cke_icon
-{
- background-position: 0 -1152px;
-}
-
-.cke_skin_v2 .cke_button_flash .cke_icon
-{
- background-position: 0 -592px;
-}
-
-.cke_skin_v2 .cke_button_pastefromword .cke_icon
-{
- background-position: 0 -160px;
-}
-
-.cke_skin_v2 .cke_button_save .cke_icon
-{
- background-position: 0 -32px;
-}
-
-.cke_skin_v2 .cke_button_about .cke_icon
-{
- background-position: 0 -736px;
-}
-
-.cke_skin_v2 .cke_button_maximize .cke_icon
-{
- background-position: 0 -1040px;
-}
-
-.cke_skin_v2 .cke_button_creatediv .cke_icon
-{
- background-position: 0 -1168px;
-}
-
-.cke_skin_v2 .cke_button_editdiv .cke_icon
-{
- background-position: 0 -1184px;
-}
-
-.cke_skin_v2 .cke_button_removediv .cke_icon
-{
- background-position: 0 -1200px;
-}
-
-.cke_skin_v2 .cke_button_bidirtl .cke_icon
-{
- background-position: 0 -1072px;
-}
-
-.cke_skin_v2 .cke_button_bidiltr .cke_icon
-{
- background-position: 0 -1056px;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/mainui.css b/devel/third-party/ckeditor/skins/v2/mainui.css
deleted file mode 100644
index 4bb149b..0000000
--- a/devel/third-party/ckeditor/skins/v2/mainui.css
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_v2 .cke_editor
-{
-/*
- border: solid 1px #dcdcdc;
-*/
- display: inline-table;
- width: 100%;
-}
-
-.cke_skin_v2
-{
- display: block;
-}
-
-.cke_skin_v2 span.cke_browser_webkit,
-.cke_skin_v2 span.cke_browser_gecko18
-{
- display: block;
-}
-
-.cke_skin_v2 .cke_wrapper
-{
- display: block;
-}
-
-.cke_skin_v2 .cke_browser_opera .cke_editor
-{
- display: table;
-}
-
-.cke_skin_v2 .cke_top,
-.cke_skin_v2 .cke_bottom,
- .cke_shared .cke_skin_v2
-{
- background-color: #efefde;
-}
-
-.cke_skin_v2 .cke_top
-{
- border-top: solid 1px #fafaf5;
- border-left: solid 1px #fafaf5;
- border-right: solid 1px #696969;
- border-bottom: solid 2px #696969;
-}
-
-.cke_skin_v2 .cke_rtl .cke_top
-{
- border-left: solid 1px #696969;
- border-right: solid 1px #fafaf5;
-}
-
-.cke_skin_v2 .cke_bottom
-{
- border-left: solid 1px #696969;
- border-right: solid 1px #696969;
- border-bottom: solid 1px #696969;
-}
-
-.cke_skin_v2 .cke_contents
-{
- border: solid 1px #696969;
- /* Prevent background content from penetrate through when switching between editing modes. (#4918) */
- background-color: white;
-}
-
-.cke_skin_v2 .cke_focus
-{
- outline: auto 5px -webkit-focus-ring-color;
-}
-
-.cke_skin_v2 textarea.cke_source
-{
- font-family: 'Courier New' , Monospace;
- font-size: small;
- background-color: #fff;
- white-space: pre;
-}
-
-.cke_skin_v2 .cke_browser_iequirks textarea.cke_source
-{
- /* For IE6+Quirks only */
- _white-space: normal;
-}
-
-.cke_skin_v2 .cke_resizer
-{
- width: 12px;
- height: 12px;
- margin-top: 16px;
- display: block;
- float: right;
- /* resizer.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -801px;
- background-repeat: no-repeat;
- cursor: se-resize;
-}
-
-.cke_skin_v2 .cke_rtl .cke_resizer
-{
- cursor: sw-resize;
- /* resizer_rtl.gif*/
- background-position: 0 -828px;
- float: left;
-}
-
-.cke_skin_v2 .cke_resizer_horizontal,
-.cke_skin_v2 .cke_rtl .cke_resizer_horizontal
-{
- cursor: e-resize;
-}
-
-.cke_skin_v2 .cke_resizer_vertical,
-.cke_skin_v2 .cke_rtl .cke_resizer_vertical
-{
- cursor: n-resize;
-}
-
-.cke_skin_v2 .cke_maximized .cke_resizer
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_browser_ie6 .cke_contents textarea,
-.cke_skin_v2 .cke_browser_ie7 .cke_contents textarea
-{
- position: absolute;
-}
-
-/* All voice labels are not displayed. */
-.cke_skin_v2 .cke_voice_label
-{
- display: none;
-}
-
-.cke_skin_v2 legend.cke_voice_label
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_browser_ie legend.cke_voice_label
-{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- overflow: hidden;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/menu.css b/devel/third-party/ckeditor/skins/v2/menu.css
deleted file mode 100644
index 8b25e26..0000000
--- a/devel/third-party/ckeditor/skins/v2/menu.css
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_v2 .cke_contextmenu
-{
- padding: 2px;
-}
-
-.cke_skin_v2 .cke_menuitem a
-{
- display:block;
-}
-
-.cke_skin_v2 .cke_menuitem span
-{
- cursor: default;
-}
-
-.cke_skin_v2 .cke_menuitem a:hover,
-.cke_skin_v2 .cke_menuitem a:focus,
-.cke_skin_v2 .cke_menuitem a:active
-{
- background-color: #8f8f73;
- display:block;
-}
-.cke_hc .cke_menuitem a:hover,
-.cke_hc .cke_menuitem a:focus,
-.cke_hc .cke_menuitem a:active
-{
- border: 2px solid;
-}
-
-.cke_skin_v2 .cke_menuitem .cke_icon
-{
- background-image: url(icons.png);
- background-position: 100px;
- background-repeat:no-repeat;
- background-color: transparent;
- width: 16px;
- height: 16px;
- float: left;
-}
-
-.cke_rtl .cke_skin_v2 .cke_menuitem .cke_icon
-{
- background-image: url(icons_rtl.png);
-}
-
-.cke_skin_v2 .cke_menuitem .cke_disabled .cke_icon
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_menuitem .cke_icon_wrapper
-{
- background-color: #e3e3c7;
- border: solid 4px #e3e3c7;
- width: 16px;
- height: 16px;
- float: left;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- clear: both;
-}
-
-.cke_rtl .cke_skin_v2 .cke_menuitem .cke_icon_wrapper
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_menuitem a:hover .cke_icon_wrapper,
-.cke_skin_v2 .cke_menuitem a:focus .cke_icon_wrapper,
-.cke_skin_v2 .cke_menuitem a:active .cke_icon_wrapper
-{
- background-color: #9d9d9d;
- border: solid 4px #9d9d9d;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,
-.cke_skin_v2 .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,
-.cke_skin_v2 .cke_menuitem a:active.cke_disabled .cke_icon_wrapper
-{
- background-color: #e3e3c7;
- border: solid 4px #e3e3c7;
-}
-
-.cke_skin_v2 .cke_menuitem .cke_label
-{
- display:block;
- padding-right: 3px;
- padding-top: 5px;
- padding-left: 4px;
- height:19px;
- margin-left: 24px;
- background-color: #fff;
-}
-/* Set these after the document has been loaded and we know the dimensions*/
-.cke_skin_v2 .cke_frameLoaded .cke_menuitem .cke_label
-{
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_rtl .cke_skin_v2 .cke_menuitem .cke_label
-{
- padding-right: 0;
- margin-left: 0;
- padding-left: 3px;
- margin-right: 28px;
-}
-
-.cke_skin_v2 .cke_menuitem a.cke_disabled .cke_label
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.30; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_menuitem a:hover .cke_label,
-.cke_skin_v2 .cke_menuitem a:focus .cke_label,
-.cke_skin_v2 .cke_menuitem a:active .cke_label
-{
- background-color: #8f8f73;
- color: white;
-}
-
-.cke_skin_v2 .cke_menuitem a.cke_disabled:hover .cke_label,
-.cke_skin_v2 .cke_menuitem a.cke_disabled:focus .cke_label,
-.cke_skin_v2 .cke_menuitem a.cke_disabled:active .cke_label
-{
- background-color: transparent;
- color: black;
-}
-
-.cke_skin_v2 .cke_menuseparator
-{
- background-color: #e3e3c7;
- height: 2px;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-
- _font-size: 0;
-}
-
-.cke_skin_v2 .cke_menuarrow
-{
- /* arrowright.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 0 -784px;
- background-repeat: no-repeat;
- height: 5px;
- width: 3px;
- float: right;
- margin-right: 2px;
- margin-top: 3px;
-}
-
-/* Never applied */
-.cke_rtl .cke_skin_v2 .cke_menuarrow
-{
- float: left;
- margin-right: 0;
- margin-left: 2px;
- /* arrowleft.gif*/
- background-position: 0 -763px;
-}
-
-.cke_skin_v2 .cke_menuarrow span
-{
- display: none;
-}
-
-.cke_hc .cke_skin_v2 .cke_menuarrow
-{
- width: auto;
- margin-top: 0;
-}
-
-.cke_hc .cke_skin_v2 .cke_menuarrow span
-{
- display: inline;
-}
-
-/* #3766 In the context menu, long labels with second level menu get wrapped */
-.cke_browser_ie.cke_ltr .cke_skin_v2 .cke_menuarrow
-{
- position: absolute;
- right: 2px;
-}
-
-.cke_browser_ie.cke_rtl .cke_skin_v2 .cke_menuarrow
-{
- position: absolute;
- left: 2px;
-}
-/* END #3766 */
diff --git a/devel/third-party/ckeditor/skins/v2/panel.css b/devel/third-party/ckeditor/skins/v2/panel.css
deleted file mode 100644
index 5064695..0000000
--- a/devel/third-party/ckeditor/skins/v2/panel.css
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_v2 .cke_panel
-{
- border: 1px solid #8f8f73;
- background-color: #fff;
-
- width: 120px;
- height: 100px;
-
- overflow:hidden;
-
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
-}
-
-/* Ideally we would use "inherit here"... but you know... IE :( */
-.cke_skin_v2 .cke_panel iframe
-{
- width: 100%;
- height: 100%;
-}
-
-.cke_skin_v2 .cke_panel_frame .cke_label
-{
- display: none;
-}
-
-/*
- * All the following styles are to be used inside the iframe that holds panel
- * contents. We don't use the cke_skin_default there to avoid the reset to be
- * active.
- * This is not an issue as we'll never have two skins running inside the same
- * panel iframe.
- */
-
-html.cke_skin_v2_container
-{
- overflow: auto;
- overflow-x: hidden;
-}
-
-body.cke_panel_frame
-{
- overflow: auto;
-}
-
-ul.cke_panel_list
-{
- list-style-type: none;
- margin: 3px;
- padding: 0px;
- white-space: nowrap;
-}
-
-li.cke_panel_listItem
-{
- margin: 0px;
-}
-
-.cke_panel_listItem a
-{
- padding: 2px;
- display: block;
- border: 1px solid #fff;
- color: inherit !important;
- text-decoration: none;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-/* IE6 */
-* html .cke_panel_listItem a
-{
- width : 100%;
-
- /* IE is not able to inherit the color, so we must force it to black */
- color: #000;
-}
-
-/* IE7 */
-*:first-child+html .cke_panel_listItem a
-{
- /* IE is not able to inherit the color, so we must force it to black */
- color: #000;
-}
-
-.cke_panel_listItem.cke_selected a
-{
- border: 1px solid #ccc;
- background-color: #e9f5ff;
-}
-
-.cke_panel_listItem a:hover,
-.cke_panel_listItem a:focus,
-.cke_panel_listItem a:active
-{
- border-color: #316ac5;
- background-color: #dff1ff;
-}
-
-.cke_hc .cke_panel_listItem.cke_selected a,
-.cke_hc .cke_panel_listItem a:hover,
-.cke_hc .cke_panel_listItem a:focus,
-.cke_hc .cke_panel_listItem a:active
-{
- border-width: 3px;
- padding: 0px;
-}
-
-.cke_panel_grouptitle
-{
- font-size: 11px;
- font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
- font-weight: bold;
- white-space: nowrap;
- background-color: #dcdcdc;
- color: #000;
- margin:0px;
- padding:3px;
-}
-
-.cke_panel_listItem p,
-.cke_panel_listItem h1,
-.cke_panel_listItem h2,
-.cke_panel_listItem h3,
-.cke_panel_listItem h4,
-.cke_panel_listItem h5,
-.cke_panel_listItem h6,
-.cke_panel_listItem pre
-{
- margin-top: 3px;
- margin-bottom: 3px;
-}
-
-.cke_skin_v2 .cke_button_textcolor_panel,
-.cke_skin_v2 .cke_button_bgcolor_panel
-{
- width: 150px;
- height: 135px;
-}
-
-.cke_colorblock
-{
- padding: 3px;
- font-size: 11px;
- font-family: 'Microsoft Sans Serif', Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.cke_colorblock,
-.cke_colorblock a
-{
- text-decoration: none;
- color: #000;
-}
-
-span.cke_colorbox
-{
- width: 10px;
- height: 10px;
- border: #808080 1px solid;
- float: left;
-}
-
-.cke_rtl span.cke_colorbox
-{
- float: right;
-}
-
-a.cke_colorbox
-{
- border: #fff 1px solid;
- padding: 2px;
- float: left;
-}
-
-.cke_rtl a.cke_colorbox
-{
- float: right;
-}
-
-a:hover.cke_colorbox,
-a:focus.cke_colorbox,
-a:active.cke_colorbox
-{
- border: #316ac5 1px solid;
- background-color: #dff1ff;
-}
-
-a.cke_colorauto,
-a.cke_colormore
-{
- border: #fff 1px solid;
- padding: 2px;
- display: block;
- cursor: pointer;
-}
-
-a:hover.cke_colorauto,
-a:hover.cke_colormore,
-a:focus.cke_colorauto,
-a:focus.cke_colormore,
-a:active.cke_colorauto,
-a:active.cke_colormore
-{
- border: #316ac5 1px solid;
- background-color: #dff1ff;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/presets.css b/devel/third-party/ckeditor/skins/v2/presets.css
deleted file mode 100644
index a289b48..0000000
--- a/devel/third-party/ckeditor/skins/v2/presets.css
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/* "Source" button label */
-.cke_skin_v2 .cke_button_source .cke_label
-{
- display: inline; /* FF2 */
- display: inline-block;
-}
-
-/* "Styles" panel size */
-.cke_skin_v2 .cke_styles_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Format" panel size */
-.cke_skin_v2 .cke_format_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Font" panel size */
-.cke_skin_v2 .cke_font_panel
-{
- width: 150px;
- height: 170px;
-}
-
-/* "Font Size" panel size */
-.cke_skin_v2 .cke_fontSize_panel
-{
- height: 170px;
-}
-
-/* "Font Size" combo width */
-.cke_skin_v2 .cke_fontSize .cke_text
-{
- width: 20px;
-}
-
-/* "Font Size" combo width (IE Quirks) */
-.cke_skin_v2 .cke_browser_iequirks .cke_fontSize .cke_text
-{
- width: 32px;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/reset.css b/devel/third-party/ckeditor/skins/v2/reset.css
deleted file mode 100644
index 0903971..0000000
--- a/devel/third-party/ckeditor/skins/v2/reset.css
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Reset and Default Values
- */
-.cke_skin_v2 *,
-.cke_skin_v2 a:hover,
-.cke_skin_v2 a:link,
-.cke_skin_v2 a:visited,
-.cke_skin_v2 a:active
-{
- margin: 0;
- padding: 0;
- border: 0;
- background: transparent;
- text-decoration: none;
- font: normal normal normal 100% Sans-Serif;
- width: auto;
- height: auto;
- border-collapse: collapse;
- text-align: left;
- vertical-align: baseline;
- white-space: nowrap;
- cursor: auto;
- color: #000;
-
- font-size: 11px;
- font-family: 'Microsoft Sans Serif' , Tahoma, Arial, Verdana, Sans-Serif;
-}
-
-.cke_skin_v2 .cke_rtl *,
-.cke_skin_v2 .cke_rtl a:hover,
-.cke_skin_v2 .cke_rtl a:link,
-.cke_skin_v2 .cke_rtl a:visited,
-.cke_skin_v2 .cke_rtl a:active,
-.cke_rtl .cke_skin_v2 *,
-.cke_rtl .cke_skin_v2 a:hover,
-.cke_rtl .cke_skin_v2 a:link,
-.cke_rtl .cke_skin_v2 a:visited,
-.cke_rtl .cke_skin_v2 a:active
-{
- text-align: right;
-}
-
-.cke_skin_v2 iframe
-{
- vertical-align: inherit; /** For IE */
-}
-
-.cke_skin_v2 textarea
-{
- white-space: pre;
-}
-
-.cke_skin_v2 .cke_browser_gecko textarea
-{
- cursor: text;
-}
-
-.cke_skin_v2 .cke_browser_gecko textarea[disabled]
-{
- cursor: default;
-}
-
-.cke_skin_v2 input[type="text"],
-.cke_skin_v2 input[type="password"]
-{
- cursor: text;
-}
-
-.cke_skin_v2 input[type="text"][disabled],
-.cke_skin_v2 input[type="password"][disabled]
-{
- cursor: default;
-}
-
-.cke_skin_v2 fieldset
-{
- padding: 10px;
- border: 2px groove #E0DFE3;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/richcombo.css b/devel/third-party/ckeditor/skins/v2/richcombo.css
deleted file mode 100644
index 3641168..0000000
--- a/devel/third-party/ckeditor/skins/v2/richcombo.css
+++ /dev/null
@@ -1,297 +0,0 @@
-/* Special Combo */
-
-.cke_skin_v2 .cke_rcombo
-{
- display: inline-block;
- margin-left: 2px;
- margin-right: 2px;
- margin-top: 2px;
- vertical-align: top;
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rcombo
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rcombo
-{
- #float: none;
-}
-
-.cke_skin_v2 .cke_rcombopanel
-{
- border: 1px solid #316ac5;
- -moz-border-radius-topleft: 0;
- -webkit-border-top-left-radius: 0;
- border-top-left-radius: 0;
- /*margin-left: 1px;*/
- /*_margin-left: 0;*/
-}
-
-.cke_skin_v2 .cke_rcombo a
-{
- display: inline-block;
- float: left;
-
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo a
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_hc .cke_rcombo a
-{
- filter: alpha(opacity=100); /* IE */
- opacity: 1.0; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_rcombo .cke_label
-{
- display: inline-block;
- float: left;
-
- line-height: 24px;
- height: 22px;
- vertical-align: top;
- padding-left: 4px;
- padding-right: 5px;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- background-color: #f1f1e3; /* Because of IE6+ClearType */
- cursor: default;
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo .cke_label
-{
- float: right;
- padding-right: 4px;
- padding-left: 5px;
-}
-
-.cke_skin_v2 .cke_hc .cke_rcombo .cke_label
-{
- filter: alpha(opacity=100);
- opacity: 1.0;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_inline_label
-{
- color: #fff;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_text
-{
- border: 1px solid #8f8f73;
- background-color: #fff;
- height: 12px;
- width:60px;
- padding-top: 4px;
- padding-bottom: 4px;
- padding-left: 5px;
- padding-right: 5px;
- text-overflow: ellipsis;
- overflow: hidden;
- display: inline-block;
- vertical-align: top;
- cursor: default;
-}
-
-.cke_skin_v2 .cke_ltr .cke_rcombo .cke_text
-{
- -moz-border-radius-topleft: 3px;
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
- -moz-border-radius-bottomleft: 3px;
- -webkit-border-bottom-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo .cke_text
-{
- -moz-border-radius-topright: 3px;
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
- -moz-border-radius-bottomright: 3px;
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-/* Fix for IE height */
-.cke_skin_v2 .cke_browser_iequirks .cke_rcombo .cke_text
-{
- height: 22px;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_openbutton
-{
- display: inline-block;
-
- background-position: 5px -715px;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
-
- border-top: 1px solid #8f8f73;
- border-bottom: 1px solid #8f8f73;
- width: 14px;
- height: 20px;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_openbutton span
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_hc .cke_rcombo .cke_openbutton span
-{
- display : inline;
-}
-
-.cke_skin_v2 .cke_ltr .cke_rcombo .cke_openbutton
-{
- border-right: 1px solid #8f8f73;
- -moz-border-radius-topright: 3px;
- -webkit-border-top-right-radius: 3px;
- border-top-right-radius: 3px;
- -moz-border-radius-bottomright: 3px;
- -webkit-border-bottom-right-radius: 3px;
- border-bottom-right-radius: 3px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo .cke_openbutton
-{
- border-left: 1px solid #8f8f73;
- -moz-border-radius-topleft: 3px;
- -webkit-border-top-left-radius: 3px;
- border-top-left-radius: 3px;
- -moz-border-radius-bottomleft: 3px;
- -webkit-border-bottom-left-radius: 3px;
- border-bottom-left-radius: 3px;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_off a:hover,
-.cke_skin_v2 .cke_rcombo .cke_off a:focus,
-.cke_skin_v2 .cke_rcombo .cke_off a:active,
-.cke_skin_v2 .cke_rcombo .cke_on a
-{
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_rcombo .cke_off a:hover .cke_text,
-.cke_skin_v2 .cke_rcombo .cke_off a:focus .cke_text,
-.cke_skin_v2 .cke_rcombo .cke_off a:active .cke_text,
-.cke_skin_v2 .cke_rcombo .cke_on .cke_text
-{
- border-color: #316ac5;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_off a:hover .cke_openbutton,
-.cke_skin_v2 .cke_rcombo .cke_off a:focus .cke_openbutton,
-.cke_skin_v2 .cke_rcombo .cke_off a:active .cke_openbutton,
-.cke_skin_v2 .cke_rcombo .cke_on .cke_openbutton
-{
- border-color: #316ac5;
- background-color: #dff1ff;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_on .cke_text
-{
- -moz-border-radius-bottomleft: 0px;
- -webkit-border-bottom-left-radius: 0px;
- border-bottom-left-radius: 0px;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_on .cke_openbutton
-{
- -moz-border-radius-bottomright: 0px;
- -webkit-border-bottom-right-radius: 0px;
- border-bottom-right-radius: 0px;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_disabled .cke_label
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_label
-{
- filter: alpha(opacity=70);
- opacity: 0.7;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_disabled .cke_text,
-.cke_skin_v2 .cke_rcombo .cke_disabled .cke_openbutton
-{
- filter: alpha(opacity=50); /* IE */
- opacity: 0.5; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_text,
-.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_openbutton
-{
- filter: alpha(opacity=80);
- opacity: 0.8;
-}
-
-.cke_skin_v2 .cke_rcombo .cke_disabled .cke_text
-{
- color: #fff;
-}
-
-/* Firefox 2 & WebKit Section */
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo .cke_label,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo .cke_text,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo .cke_openbutton,
-.cke_skin_v2 .cke_browser_webkit .cke_rcombo .cke_label,
-.cke_skin_v2 .cke_browser_webkit .cke_rcombo .cke_text,
-.cke_skin_v2 .cke_browser_webkit .cke_rcombo .cke_openbutton
-{
- display: block;
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_label,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_openbutton,
-.cke_skin_v2 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,
-.cke_skin_v2 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,
-.cke_skin_v2 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton
-{
- float: right;
-}
-
-/*** IE ***/
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_rcombo,
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_rcombo a,
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_rcombo .cke_label
-{
- float: none;
-}
-
-.cke_skin_v2 .cke_browser_iequirks .cke_rcombo .cke_openbutton
-{
- height: 22px;
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo .cke_font .cke_text,
-.cke_skin_v2 .cke_rtl .cke_rcombo .cke_fontSize .cke_text
-{
- direction: ltr;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/skin.js b/devel/third-party/ckeditor/skins/v2/skin.js
deleted file mode 100644
index f7d5060..0000000
--- a/devel/third-party/ckeditor/skins/v2/skin.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.skins.add( 'v2', (function()
-{
- var preload = [];
-
- if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )
- {
- // For IE6, we need to preload some images, otherwhise they will be
- // downloaded several times (CSS background bug).
- preload.push( 'icons.png', 'images/sprites_ie6.png', 'images/dialog_sides.gif' );
- }
-
- return {
- preload : preload,
- editor : { css : [ 'editor.css' ] },
- dialog : { css : [ 'dialog.css' ] },
- templates : { css : [ 'templates.css' ] },
- margins : [ 0, 14, 18, 14 ]
- };
-})() );
-
-(function()
-{
- CKEDITOR.dialog ? dialogSetup() : CKEDITOR.on( 'dialogPluginReady', dialogSetup );
-
- function dialogSetup()
- {
- CKEDITOR.dialog.on( 'resize', function( evt )
- {
- var data = evt.data,
- width = data.width,
- height = data.height,
- dialog = data.dialog,
- contents = dialog.parts.contents;
-
- if ( data.skin != 'v2' )
- return;
-
- contents.setStyles(
- {
- width : width + 'px',
- height : height + 'px'
- });
-
- if ( !CKEDITOR.env.ie )
- return;
-
- // Fix the size of the elements which have flexible lengths.
- setTimeout( function()
- {
- var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),
- body = innerDialog.getChild( 0 );
-
- // tc
- var el = innerDialog.getChild( 2 );
- el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' );
-
- // bc
- el = innerDialog.getChild( 7 );
- el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );
-
- // ml
- el = innerDialog.getChild( 4 );
- el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
-
- // mr
- el = innerDialog.getChild( 5 );
- el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );
- },
- 100 );
- });
- }
-})();
diff --git a/devel/third-party/ckeditor/skins/v2/templates.css b/devel/third-party/ckeditor/skins/v2/templates.css
deleted file mode 100644
index 7964e37..0000000
--- a/devel/third-party/ckeditor/skins/v2/templates.css
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * Styles for the "templates" plugin.
- */
-
-.cke_skin_v2 .cke_tpl_list
-{
- border: #dcdcdc 2px solid;
- background-color: #ffffff;
- overflow: auto;
- width: 100%;
- height: 220px;
-}
-
-.cke_skin_v2 .cke_tpl_item
-{
- margin: 5px;
- padding: 7px;
- border: #eeeeee 1px solid;
- *width: 88%;
-}
-
-.cke_skin_v2 .cke_tpl_preview
-{
- border-collapse: separate;
- text-indent:0;
- width: 100%;
-}
-.cke_skin_v2 .cke_tpl_preview td
-{
- padding: 2px;
- vertical-align: middle;
-}
-.cke_skin_v2 .cke_tpl_preview .cke_tpl_preview_img
-{
- width: 100px;
-}
-.cke_skin_v2 .cke_tpl_preview span
-{
- white-space: normal;
-}
-
-.cke_skin_v2 .cke_tpl_title
-{
- font-weight: bold;
-}
-
-.cke_skin_v2 .cke_tpl_list a:active .cke_tpl_item,
-.cke_skin_v2 .cke_tpl_list a:hover .cke_tpl_item,
-.cke_skin_v2 .cke_tpl_list a:focus .cke_tpl_item
-{
- border: #ff9933 1px solid !important;
- background-color: #fffacd !important;
-}
-
-.cke_skin_v2 .cke_tpl_list a:active *,
-.cke_skin_v2 .cke_tpl_list a:hover *,
-.cke_skin_v2 .cke_tpl_list a:focus *
-{
- cursor: pointer;
-}
-
-/* IE6 contextual selectors childs won't get :hover transition until,
- the hover style of the link itself contains certain CSS declarations.*/
-.cke_skin_v2 .cke_browser_ie6 .cke_tpl_list a:active,
-.cke_skin_v2 .cke_browser_ie6 .cke_tpl_list a:hover,
-.cke_skin_v2 .cke_browser_ie6 .cke_tpl_list a:focus
-{
- background-position: 0 0;
-}
-
-.cke_skin_v2 .cke_tpl_list a:active .cke_tpl_item,
-.cke_skin_v2 .cke_tpl_list a:hover .cke_tpl_item,
-.cke_skin_v2 .cke_tpl_list a:focus .cke_tpl_item
-{
- border-width: 3px;
-}
-
-.cke_skin_v2 .cke_tpl_empty, .cke_tpl_loading
-{
- text-align: center;
- padding: 5px;
-}
diff --git a/devel/third-party/ckeditor/skins/v2/toolbar.css b/devel/third-party/ckeditor/skins/v2/toolbar.css
deleted file mode 100644
index b6d7a97..0000000
--- a/devel/third-party/ckeditor/skins/v2/toolbar.css
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
- at media print
-{
- .cke_skin_v2 .cke_toolbox
- {
- display: none;
- }
-}
-
-.cke_skin_v2 .cke_browser_webkit .cke_toolbox,
-.cke_skin_v2 .cke_browser_webkit .cke_toolbox > span
-{
- white-space: normal;
-}
-
-.cke_skin_v2 .cke_toolbox
-{
- clear: both;
- /* Define the padding-bottom otherwise the collapser button will not be clickable #4932*/
- padding-bottom: 1px;
-}
-
-.cke_skin_v2 a.cke_toolbox_collapser,
-.cke_skin_v2 a:hover.cke_toolbox_collapser
-{
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 3px -739px; /* +3px +4px */
- background-repeat: no-repeat;
- width: 11px;
- height: 11px;
- float: right;
- border: outset 1px;
- margin: 11px 2px 2px;
- cursor: pointer;
-}
-
-.cke_skin_v2 a.cke_toolbox_collapser span
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_hc a.cke_toolbox_collapser span
-{
- font-size: 10px;
- font-weight: bold;
- font-family: Arial;
- display: inline;
-}
-
-.cke_skin_v2 .cke_rtl a.cke_toolbox_collapser,
-.cke_skin_v2 .cke_rtl a:hover.cke_toolbox_collapser
-{
- float: left;
-}
-
-.cke_skin_v2 a.cke_toolbox_collapser_min,
-.cke_skin_v2 a:hover.cke_toolbox_collapser_min
-{
- /* arrowleft.gif*/
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-position: 4px -760px; /* +4px +3px */
- background-repeat: no-repeat;
- margin: 2px;
-}
-
-.cke_skin_v2 .cke_rtl a.cke_toolbox_collapser_min,
-.cke_skin_v2 .cke_rtl a:hover.cke_toolbox_collapser_min
-{
- /* arrowright.gif*/
- background-position: 4px -781px; /* +2px +3px */
-}
-
-.cke_skin_v2 .cke_toolbar
-{
- padding-top: 1px;
- padding-bottom: 1px;
- display: inline-block;
- float: left;
-}
-
-.cke_skin_v2 .cke_rtl .cke_toolbar
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_toolgroup
-{
- display: inline-block;
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_toolgroup
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_v2 .cke_rtl .cke_toolgroup
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolgroup
-{
- #float: none;
-}
-
-.cke_skin_v2 .cke_separator
-{
- display: inline-block;
- float: left;
- border-left: solid 1px #999;
- margin: 4px 2px;
- height: 16px;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_separator
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_v2 .cke_rtl .cke_separator
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_separator
-{
- #float: none;
-}
-
-.cke_skin_v2 .cke_break
-{
- clear: left;
-}
-
-.cke_skin_v2 .cke_rtl .cke_break
-{
- clear: right;
-}
-
-.cke_skin_v2 .cke_toolbar_start
-{
- display: inline-block;
- background-image: url(images/toolbar_start.gif);
- background-repeat: no-repeat;
- margin: 4px 2px 0 2px;
- width: 3px;
- height: 20px;
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_toolbar_start
-{
- #float: none;
- #display: inline;
-}
-
-.cke_skin_v2 .cke_rtl .cke_toolbar_start
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_start
-{
- #float: none;
-}
-
-.cke_skin_v2 .cke_toolbar_end
-{
- display: inline-block;
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_toolbar_end
-{
- #float: none;
- #display: inline
-}
-
-.cke_skin_v2 .cke_rtl .cke_toolbar_end
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_end
-{
- #float: none;
-}
-
-.cke_skin_v2 .cke_button a,
-.cke_skin_v2 .cke_button a:hover,
-.cke_skin_v2 .cke_button a:focus,
-.cke_skin_v2 .cke_button a:active,
-.cke_skin_v2 .cke_button a.cke_off
-{
- border: solid 1px #efefde;
- display: inline-block;
- border-radius: 3px;
- outline: none;
- padding-top: 2px;
- padding-left: 4px;
- padding-right: 4px;
- padding-bottom: 2px;
- height: 18px;
- cursor: default;
-}
-
-.cke_skin_v2 .cke_button a,
-.cke_skin_v2 .cke_button a.cke_off
-{
- background-color: #efefde;
- filter: alpha(opacity=70); /* IE */
- opacity: 0.70; /* Safari, Opera and Mozilla */
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
-}
-
-.cke_skin_v2 .cke_hc .cke_button a,
-.cke_skin_v2 .cke_hc .cke_button a.cke_off
-{
- opacity: 1.0;
- filter: alpha(opacity=100);
-}
-
-.cke_skin_v2 .cke_button a.cke_on
-{
- border: solid 1px #316ac5;
- background-color: #a3d7ff;
- filter: alpha(opacity=100); /* IE */
- opacity: 1; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_button a.cke_disabled *,
-.cke_skin_v2 .cke_browser_ie a:hover.cke_button .cke_disabled *
-{
- filter: alpha(opacity=30); /* IE */
- opacity: 0.3; /* Safari, Opera and Mozilla */
-}
-
-.cke_skin_v2 .cke_hc .cke_button a.cke_disabled *,
-.cke_skin_v2 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *
-{
- filter: alpha(opacity=60);
- opacity: 0.6;
-}
-
-.cke_skin_v2 .cke_button a:hover,
-.cke_skin_v2 .cke_button a:focus,
-.cke_skin_v2 .cke_button a:active /* IE */
-{
- border: solid 1px #316ac5;
- background-color: #dff1ff;
- padding: 2px 4px;
-}
-
-.cke_skin_v2 .cke_hc .cke_button a:hover,
-.cke_skin_v2 .cke_hc .cke_button a:focus,
-.cke_skin_v2 .cke_hc .cke_button a:active /* IE */
-{
- padding: 0 2px !important;
- border-width: 3px;
-}
-
-.cke_skin_v2 .cke_button .cke_icon
-{
- background-image: url(icons.png);
- background-position: 100px;
- background-repeat:no-repeat;
- margin-top:1px;
- width: 16px;
- height: 16px;
- display: inline-block;
- cursor: default;
-}
-
-.cke_skin_v2 .cke_rtl .cke_button .cke_icon
-{
- background-image: url(icons_rtl.png);
-}
-
-.cke_skin_v2 .cke_button .cke_label
-{
- cursor: default;
- display: none;
- padding-left: 3px;
- vertical-align:middle;
-}
-
-.cke_skin_v2 .cke_hc .cke_button .cke_label
-{
- padding: 0;
- display: inline-block;
-}
-
-.cke_skin_v2 .cke_hc .cke_button .cke_icon
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_accessibility
-{
- position: absolute;
- display: block;
- width: 0;
- height: 0;
- overflow: hidden;
-}
-
-.cke_skin_v2 .cke_button .cke_buttonarrow
-{
- display: inline-block;
- height: 17px;
- width: 8px;
- background-position: 2px -717px;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
- background-repeat: no-repeat;
- cursor: default;
-}
-
-.cke_skin_v2 .cke_rtl .cke_button .cke_buttonarrow
-{
- background-position: 0 -717px;
- background-image: url(images/sprites.png);
- _background-image: url(images/sprites_ie6.png);
-}
-
-/*** Firefox 2 ***/
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_toolbar,
-.cke_skin_v2 .cke_browser_gecko18 .cke_button a,
-.cke_skin_v2 .cke_browser_gecko18 .cke_button a.cke_off,
-.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_icon,
-.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_buttonarrow,
-.cke_skin_v2 .cke_browser_gecko18 .cke_separator,
-.cke_skin_v2 .cke_browser_gecko18 .cke_toolbar_start
-{
- display: block;
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_hc .cke_button .cke_icon
-{
- display: none;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_toolbar,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button a,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button a.cke_off,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button .cke_icon,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button .cke_buttonarrow,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_separator,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_toolbar_start
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_label,
-.cke_skin_v2 .cke_browser_gecko18 .cke_break
-{
- float: left;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl span.cke_inline_label
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button .cke_label,
-.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_break
-{
- float: right;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_separator
-{
- margin-top: 4px;
-}
-
-.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_label
-{
- padding-top: 3px;
-}
-
-/*** IE6 ***/
-
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolgroup,
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_separator,
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_start,
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_end
-{
- float: none;
-}
-
-/*** IE8 ***/
-
-.cke_skin_v2 .cke_browser_ie8 .cke_toolbar,
-.cke_skin_v2 .cke_browser_ie8 .cke_toolgroup
-{
- vertical-align: top;
-}
-
-.cke_skin_v2 .cke_browser_iequirks.cke_browser_ie8 .cke_toolbar,
-.cke_skin_v2 .cke_browser_iequirks.cke_browser_ie8 .cke_toolgroup
-{
- /* revert previous */
- vertical-align: baseline;
-}
-
-/* Fix cursor shape consistency on toolbar combos (#4031) */
-.cke_skin_v2 .cke_browser_ie .cke_rcombo,
-.cke_skin_v2 .cke_browser_ie .cke_rcombo *
-{
- cursor: default;
-}
diff --git a/devel/third-party/ckeditor/styles.js b/devel/third-party/ckeditor/styles.js
new file mode 100644
index 0000000..5aefb53
--- /dev/null
+++ b/devel/third-party/ckeditor/styles.js
@@ -0,0 +1,113 @@
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+// This file contains style definitions that can be used by CKEditor plugins.
+//
+// The most common use for it is the "stylescombo" plugin, which shows a combo
+// in the editor toolbar, containing all styles. Other plugins instead, like
+// the div plugin, use a subset of the styles on their feature.
+//
+// If you don't have plugins that depend on this file, you can simply ignore it.
+// Otherwise it is strongly recommended to customize this file to match your
+// website requirements and design properly.
+
+CKEDITOR.stylesSet.add( 'default', [
+ /* Block Styles */
+
+ // These styles are already available in the "Format" combo ("format" plugin),
+ // so they are not needed here by default. You may enable them to avoid
+ // placing the "Format" combo in the toolbar, maintaining the same features.
+ /*
+ { name: 'Paragraph', element: 'p' },
+ { name: 'Heading 1', element: 'h1' },
+ { name: 'Heading 2', element: 'h2' },
+ { name: 'Heading 3', element: 'h3' },
+ { name: 'Heading 4', element: 'h4' },
+ { name: 'Heading 5', element: 'h5' },
+ { name: 'Heading 6', element: 'h6' },
+ { name: 'Preformatted Text',element: 'pre' },
+ { name: 'Address', element: 'address' },
+ */
+
+ { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
+ { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
+ {
+ name: 'Special Container',
+ element: 'div',
+ styles: {
+ padding: '5px 10px',
+ background: '#eee',
+ border: '1px solid #ccc'
+ }
+ },
+
+ /* Inline Styles */
+
+ // These are core styles available as toolbar buttons. You may opt enabling
+ // some of them in the Styles combo, removing them from the toolbar.
+ // (This requires the "stylescombo" plugin)
+ /*
+ { name: 'Strong', element: 'strong', overrides: 'b' },
+ { name: 'Emphasis', element: 'em' , overrides: 'i' },
+ { name: 'Underline', element: 'u' },
+ { name: 'Strikethrough', element: 'strike' },
+ { name: 'Subscript', element: 'sub' },
+ { name: 'Superscript', element: 'sup' },
+ */
+
+ { name: 'Marker: Yellow', element: 'span', styles: { 'background-color': 'Yellow' } },
+ { name: 'Marker: Green', element: 'span', styles: { 'background-color': 'Lime' } },
+
+ { name: 'Big', element: 'big' },
+ { name: 'Small', element: 'small' },
+ { name: 'Typewriter', element: 'tt' },
+
+ { name: 'Computer Code', element: 'code' },
+ { name: 'Keyboard Phrase', element: 'kbd' },
+ { name: 'Sample Text', element: 'samp' },
+ { name: 'Variable', element: 'var' },
+
+ { name: 'Deleted Text', element: 'del' },
+ { name: 'Inserted Text', element: 'ins' },
+
+ { name: 'Cited Work', element: 'cite' },
+ { name: 'Inline Quotation', element: 'q' },
+
+ { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
+ { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
+
+ /* Object Styles */
+
+ {
+ name: 'Styled image (left)',
+ element: 'img',
+ attributes: { 'class': 'left' }
+ },
+
+ {
+ name: 'Styled image (right)',
+ element: 'img',
+ attributes: { 'class': 'right' }
+ },
+
+ {
+ name: 'Compact table',
+ element: 'table',
+ attributes: {
+ cellpadding: '5',
+ cellspacing: '0',
+ border: '1',
+ bordercolor: '#ccc'
+ },
+ styles: {
+ 'border-collapse': 'collapse'
+ }
+ },
+
+ { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
+ { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }
+]);
+
+// %LEAVE_UNMINIFIED% %REMOVE_LINE%
diff --git a/devel/third-party/ckeditor/themes/default/theme.js b/devel/third-party/ckeditor/themes/default/theme.js
deleted file mode 100644
index 00219ff..0000000
--- a/devel/third-party/ckeditor/themes/default/theme.js
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.themes.add( 'default', (function()
-{
- function checkSharedSpace( editor, spaceName )
- {
- var container,
- element;
-
- // Try to retrieve the target element from the sharedSpaces settings.
- element = editor.config.sharedSpaces;
- element = element && element[ spaceName ];
- element = element && CKEDITOR.document.getById( element );
-
- // If the element is available, we'll then create the container for
- // the space.
- if ( element )
- {
- // Creates an HTML structure that reproduces the editor class hierarchy.
- var html =
- '<span class="cke_shared">' +
- '<span class="' + editor.skinClass + ' cke_editor_' + editor.name + '">' +
- '<span class="' + CKEDITOR.env.cssClass + '">' +
- '<span class="cke_wrapper cke_' + editor.lang.dir + '">' +
- '<span class="cke_editor">' +
- '<div class="cke_' + spaceName + '">' +
- '</div></span></span></span></span></span>';
-
- var mainContainer = element.append( CKEDITOR.dom.element.createFromHtml( html, element.getDocument() ) );
-
- // Only the first container starts visible. Others get hidden.
- if ( element.getCustomData( 'cke_hasshared' ) )
- mainContainer.hide();
- else
- element.setCustomData( 'cke_hasshared', 1 );
-
- // Get the deeper inner <div>.
- container = mainContainer.getChild( [0,0,0,0] );
-
- // When the editor gets focus, we show the space container, hiding others.
- editor.on( 'focus', function()
- {
- for ( var i = 0, sibling, children = element.getChildren() ; ( sibling = children.getItem( i ) ) ; i++ )
- {
- if ( sibling.type == CKEDITOR.NODE_ELEMENT
- && !sibling.equals( mainContainer )
- && sibling.hasClass( 'cke_shared' ) )
- {
- sibling.hide();
- }
- }
-
- mainContainer.show();
- });
-
- editor.on( 'destroy', function()
- {
- mainContainer.remove();
- });
- }
-
- return container;
- }
-
- return {
- build : function( editor, themePath )
- {
- var name = editor.name,
- element = editor.element,
- elementMode = editor.elementMode;
-
- if ( !element || elementMode == CKEDITOR.ELEMENT_MODE_NONE )
- return;
-
- if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- element.hide();
-
- // Get the HTML for the predefined spaces.
- var topHtml = editor.fire( 'themeSpace', { space : 'top', html : '' } ).html;
- var contentsHtml = editor.fire( 'themeSpace', { space : 'contents', html : '' } ).html;
- var bottomHtml = editor.fireOnce( 'themeSpace', { space : 'bottom', html : '' } ).html;
-
- var height = contentsHtml && editor.config.height;
-
- var tabIndex = editor.config.tabIndex || editor.element.getAttribute( 'tabindex' ) || 0;
-
- // The editor height is considered only if the contents space got filled.
- if ( !contentsHtml )
- height = 'auto';
- else if ( !isNaN( height ) )
- height += 'px';
-
- var style = '';
- var width = editor.config.width;
-
- if ( width )
- {
- if ( !isNaN( width ) )
- width += 'px';
-
- style += "width: " + width + ";";
- }
-
- var sharedTop = topHtml && checkSharedSpace( editor, 'top' ),
- sharedBottoms = checkSharedSpace( editor, 'bottom' );
-
- sharedTop && ( sharedTop.setHtml( topHtml ) , topHtml = '' );
- sharedBottoms && ( sharedBottoms.setHtml( bottomHtml ), bottomHtml = '' );
-
- var container = CKEDITOR.dom.element.createFromHtml( [
- '<span' +
- ' id="cke_', name, '"' +
- ' onmousedown="return false;"' +
- ' class="', editor.skinClass, ' cke_editor_', name, '"' +
- ' dir="', editor.lang.dir, '"' +
- ' title="', ( CKEDITOR.env.gecko ? ' ' : '' ), '"' +
- ' lang="', editor.langCode, '"' +
- ( CKEDITOR.env.webkit? ' tabindex="' + tabIndex + '"' : '' ) +
- ' role="application"' +
- ' aria-labelledby="cke_', name, '_arialbl"' +
- ( style ? ' style="' + style + '"' : '' ) +
- '>' +
- '<span id="cke_', name, '_arialbl" class="cke_voice_label">' + editor.lang.editor + '</span>' +
- '<span class="' , CKEDITOR.env.cssClass, '" role="presentation">' +
- '<span class="cke_wrapper cke_', editor.lang.dir, '" role="presentation">' +
- '<table class="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody>' +
- '<tr', topHtml ? '' : ' style="display:none"', ' role="presentation"><td id="cke_top_' , name, '" class="cke_top" role="presentation">' , topHtml , '</td></tr>' +
- '<tr', contentsHtml ? '' : ' style="display:none"', ' role="presentation"><td id="cke_contents_', name, '" class="cke_contents" style="height:', height, '" role="presentation">', contentsHtml, '</td></tr>' +
- '<tr', bottomHtml ? '' : ' style="display:none"', ' role="presentation"><td id="cke_bottom_' , name, '" class="cke_bottom" role="presentation">' , bottomHtml , '</td></tr>' +
- '</tbody></table>' +
- //Hide the container when loading skins, later restored by skin css.
- '<style>.', editor.skinClass, '{visibility:hidden;}</style>' +
- '</span>' +
- '</span>' +
- '</span>' ].join( '' ) );
-
- container.getChild( [1, 0, 0, 0, 0] ).unselectable();
- container.getChild( [1, 0, 0, 0, 2] ).unselectable();
-
- if ( elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- container.insertAfter( element );
- else
- element.append( container );
-
- /**
- * The DOM element that holds the main editor interface.
- * @name CKEDITOR.editor.prototype.container
- * @type CKEDITOR.dom.element
- * @example
- * var editor = CKEDITOR.instances.editor1;
- * alert( <b>editor.container</b>.getName() ); "span"
- */
- editor.container = container;
-
- // Disable browser context menu for editor's chrome.
- container.disableContextMenu();
-
- editor.fireOnce( 'themeLoaded' );
- editor.fireOnce( 'uiReady' );
- },
-
- buildDialog : function( editor )
- {
- var baseIdNumber = CKEDITOR.tools.getNextNumber();
-
- var element = CKEDITOR.dom.element.createFromHtml( [
- '<div class="cke_editor_' + editor.name.replace('.', '\\.') + '_dialog cke_skin_', editor.skinName,
- '" dir="', editor.lang.dir, '"' +
- ' lang="', editor.langCode, '"' +
- ' role="dialog"' +
- ' aria-labelledby="%title#"' +
- '>' +
- '<table class="cke_dialog', ' ' + CKEDITOR.env.cssClass,
- ' cke_', editor.lang.dir, '" style="position:absolute" role="presentation">' +
- '<tr><td role="presentation">' +
- '<div class="%body" role="presentation">' +
- '<div id="%title#" class="%title" role="presentation"></div>' +
- '<a id="%close_button#" class="%close_button" href="javascript:void(0)" title="' + editor.lang.common.close+'" role="button"><span class="cke_label">X</span></a>' +
- '<div id="%tabs#" class="%tabs" role="tablist"></div>' +
- '<table class="%contents" role="presentation"><tr>' +
- '<td id="%contents#" class="%contents" role="presentation"></td>' +
- '</tr></table>' +
- '<div id="%footer#" class="%footer" role="presentation"></div>' +
- '</div>' +
- '<div id="%tl#" class="%tl"></div>' +
- '<div id="%tc#" class="%tc"></div>' +
- '<div id="%tr#" class="%tr"></div>' +
- '<div id="%ml#" class="%ml"></div>' +
- '<div id="%mr#" class="%mr"></div>' +
- '<div id="%bl#" class="%bl"></div>' +
- '<div id="%bc#" class="%bc"></div>' +
- '<div id="%br#" class="%br"></div>' +
- '</td></tr>' +
- '</table>',
-
- //Hide the container when loading skins, later restored by skin css.
- ( CKEDITOR.env.ie ? '' : '<style>.cke_dialog{visibility:hidden;}</style>' ),
-
- '</div>'
- ].join( '' )
- .replace( /#/g, '_' + baseIdNumber )
- .replace( /%/g, 'cke_dialog_' ) );
-
- var body = element.getChild( [ 0, 0, 0, 0, 0 ] ),
- title = body.getChild( 0 ),
- close = body.getChild( 1 );
-
- // Make the Title and Close Button unselectable.
- title.unselectable();
- close.unselectable();
-
-
- return {
- element : element,
- parts :
- {
- dialog : element.getChild( 0 ),
- title : title,
- close : close,
- tabs : body.getChild( 2 ),
- contents : body.getChild( [ 3, 0, 0, 0 ] ),
- footer : body.getChild( 4 )
- }
- };
- },
-
- destroy : function( editor )
- {
- var container = editor.container;
- container.clearCustomData();
- editor.element.clearCustomData();
-
- if ( container )
- container.remove();
-
- if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- editor.element.show();
-
- delete editor.element;
- }
- };
-})() );
-
-/**
- * Returns the DOM element that represents a theme space. The default theme defines
- * three spaces, namely "top", "contents" and "bottom", representing the main
- * blocks that compose the editor interface.
- * @param {String} spaceName The space name.
- * @returns {CKEDITOR.dom.element} The element that represents the space.
- * @example
- * // Hide the bottom space in the UI.
- * var bottom = editor.getThemeSpace( 'bottom' );
- * bottom.setStyle( 'display', 'none' );
- */
-CKEDITOR.editor.prototype.getThemeSpace = function( spaceName )
-{
- var spacePrefix = 'cke_' + spaceName;
- var space = this._[ spacePrefix ] ||
- ( this._[ spacePrefix ] = CKEDITOR.document.getById( spacePrefix + '_' + this.name ) );
- return space;
-};
-
-/**
- * Resizes the editor interface.
- * @param {Number|String} width The new width. It can be an pixels integer or a
- * CSS size value.
- * @param {Number|String} height The new height. It can be an pixels integer or
- * a CSS size value.
- * @param {Boolean} [isContentHeight] Indicates that the provided height is to
- * be applied to the editor contents space, not to the entire editor
- * interface. Defaults to false.
- * @param {Boolean} [resizeInner] Indicates that the first inner interface
- * element must receive the size, not the outer element. The default theme
- * defines the interface inside a pair of span elements
- * (<span><span>...</span></span>). By default the
- * first span element receives the sizes. If this parameter is set to
- * true, the second span is sized instead.
- * @example
- * editor.resize( 900, 300 );
- * @example
- * editor.resize( '100%', 450, true );
- */
-CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, resizeInner )
-{
- var container = this.container,
- contents = CKEDITOR.document.getById( 'cke_contents_' + this.name ),
- outer = resizeInner ? container.getChild( 1 ) : container;
-
- // Resize the width first.
- // WEBKIT BUG: Webkit requires that we put the editor off from display when we
- // resize it. If we don't, the browser crashes!
- CKEDITOR.env.webkit && outer.setStyle( 'display', 'none' );
- // Set as border box width. (#5353)
- outer.setSize( 'width', width, true );
- if ( CKEDITOR.env.webkit )
- {
- outer.$.offsetWidth;
- outer.setStyle( 'display', '' );
- }
-
- // Get the height delta between the outer table and the content area.
- // If we're setting the content area's height, then we don't need the delta.
- var delta = isContentHeight ? 0 : ( outer.$.offsetHeight || 0 ) - ( contents.$.clientHeight || 0 );
- contents.setStyle( 'height', Math.max( height - delta, 0 ) + 'px' );
-
- // Emit a resize event.
- this.fire( 'resize' );
-};
-
-/**
- * Gets the element that can be freely used to check the editor size. This method
- * is mainly used by the resize plugin, which adds a UI handle that can be used
- * to resize the editor.
- * @returns {CKEDITOR.dom.element} The resizable element.
- * @example
- */
-CKEDITOR.editor.prototype.getResizable = function()
-{
- return this.container.getChild( 1 );
-};
-
-/**
- * Makes it possible to place some of the editor UI blocks, like the toolbar
- * and the elements path, into any element in the page.
- * The elements used to hold the UI blocks can be shared among several editor
- * instances. In that case, only the blocks of the active editor instance will
- * display.
- * @name CKEDITOR.config.sharedSpaces
- * @type Object
- * @default undefined
- * @example
- * // Place the toolbar inside the element with ID "someElementId" and the
- * // elements path into the element with ID "anotherId".
- * config.sharedSpaces =
- * {
- * top : 'someElementId',
- * bottom : 'anotherId'
- * };
- * @example
- * // Place the toolbar inside the element with ID "someElementId". The
- * // elements path will remain attached to the editor UI.
- * config.sharedSpaces =
- * {
- * top : 'someElementId'
- * };
- */
-
-/**
- * Fired after the editor instance is resized through
- * the {@link CKEDITOR.editor.prototype.resize} method.
- * @name CKEDITOR#resize
- * @event
- */
diff --git a/share/static/RichText/LICENSE.html b/share/static/RichText/LICENSE.html
deleted file mode 100644
index f7ba067..0000000
--- a/share/static/RichText/LICENSE.html
+++ /dev/null
@@ -1,1334 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!--
-== BEGIN TEXT ONLY VERSION ==
-
-Software License Agreement
-==========================
-
-CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-
-Licensed under the terms of any of the following licenses at your
-choice:
-
- - GNU General Public License Version 2 or later (the "GPL")
- http://www.gnu.org/licenses/gpl.html
- (See Appendix A)
-
- - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- http://www.gnu.org/licenses/lgpl.html
- (See Appendix B)
-
- - Mozilla Public License Version 1.1 or later (the "MPL")
- http://www.mozilla.org/MPL/MPL-1.1.html
- (See Appendix C)
-
-You are not required to, but if you want to explicitly declare the
-license you have chosen to be bound to when using, reproducing,
-modifying and distributing this software, just include a text file
-titled "legal.txt" in your version of this software, indicating your
-license choice. In any case, your choice will not restrict any
-recipient of your version of this software to use, reproduce, modify
-and distribute this software under any of the above licenses.
-
-Sources of Intellectual Property Included in CKEditor
-=====================================================
-
-Where not otherwise indicated, all CKEditor content is authored by
-CKSource engineers and consists of CKSource-owned intellectual
-property. In some specific instances, CKEditor will incorporate work
-done by developers outside of CKSource with their express permission.
-
-YUI Test: At _source/tests/yuitest.js can be found part of the source
-code of YUI, which is licensed under the terms of the BSD License
-(http://developer.yahoo.com/yui/license.txt). YUI is Copyright (C)
-2008, Yahoo! Inc.
-
-Trademarks
-==========
-
-CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
-and product names are trademarks, registered trademarks or service
-marks of their respective holders.
-
-Appendix A: The GPL License
-===========================
-
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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 B: The LGPL License
-============================
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software-to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages-typically libraries-of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-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 and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, 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 library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
- 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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
- If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be 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.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
- 9. 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 Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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 with
-this License.
-
- 11. 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 Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-
-Appendix C: The MPL License
-===========================
-
- MOZILLA PUBLIC LICENSE
- Version 1.1
-
- ===============
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 1.1. "Contributor" means each entity that creates or contributes to
- the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications
- made by that particular Contributor.
-
- 1.3. "Covered Code" means the Original Code or Modifications or the
- combination of the Original Code and Modifications, in each case
- including portions thereof.
-
- 1.4. "Electronic Distribution Mechanism" means a mechanism generally
- accepted in the software development community for the electronic
- transfer of data.
-
- 1.5. "Executable" means Covered Code in any form other than Source
- Code.
-
- 1.6. "Initial Developer" means the individual or entity identified
- as the Initial Developer in the Source Code notice required by Exhibit
- A.
-
- 1.7. "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
-
- 1.8. "License" means this document.
-
- 1.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 1.9. "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- A. Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications.
-
- B. Any new file that contains any part of the Original Code or
- previous Modifications.
-
- 1.10. "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License.
-
- 1.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 1.11. "Source Code" means the preferred form of the Covered Code for
- making modifications to it, including all modules it contains, plus
- any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge.
-
- 1.12. "You" (or "Your") means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of
- this definition, "control" means (a) the power, direct or indirect,
- to cause the direction or management of such entity, whether by
- contract or otherwise, or (b) ownership of more than fifty percent
- (50%) of the outstanding shares or beneficial ownership of such
- entity.
-
-2. Source Code License.
-
- 2.1. The Initial Developer Grant.
- The Initial Developer hereby grants You a world-wide, royalty-free,
- non-exclusive license, subject to third party intellectual property
- claims:
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications
- created by such Contributor (or portions thereof) either on an
- unmodified basis, with other Modifications, as Covered Code
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-3. Distribution Obligations.
-
- 3.1. Application of License.
- The Modifications which You create or to which You contribute are
- governed by the terms of this License, including without limitation
- Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version
- of this License released under Section 6.1, and You must include a
- copy of this License with every copy of the Source Code You
- distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this
- License or the recipients' rights hereunder. However, You may include
- an additional document offering the additional rights described in
- Section 3.5.
-
- 3.2. Availability of Source Code.
- Any Modification which You create or to which You contribute must be
- made available in Source Code form under the terms of this License
- either on the same media as an Executable version or via an accepted
- Electronic Distribution Mechanism to anyone to whom you made an
- Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six
- (6) months after a subsequent version of that particular Modification
- has been made available to such recipients. You are responsible for
- ensuring that the Source Code version remains available even if the
- Electronic Distribution Mechanism is maintained by a third party.
-
- 3.3. Description of Modifications.
- You must cause all Covered Code to which You contribute to contain a
- file documenting the changes You made to create that Covered Code and
- the date of any change. You must include a prominent statement that
- the Modification is derived, directly or indirectly, from Original
- Code provided by the Initial Developer and including the name of the
- Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the
- origin or ownership of the Covered Code.
-
- 3.4. Intellectual Property Matters
- (a) Third Party Claims.
- If Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter and shall take other steps
- (such as notifying appropriate mailing lists or newsgroups)
- reasonably calculated to inform those who received the Covered
- Code that new knowledge has been obtained.
-
- (b) Contributor APIs.
- If Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. If it is not possible to put such notice in a particular Source
- Code file due to its structure, then You must include such notice in a
- location (such as a relevant directory) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Code. However, You
- may do so only on Your own behalf, and not on behalf of the Initial
- Developer or any Contributor. You must make it absolutely clear than
- any such warranty, support, indemnity or liability obligation is
- offered by You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred by the
- Initial Developer or such Contributor as a result of warranty,
- support, indemnity or liability terms You offer.
-
- 3.6. Distribution of Executable Versions.
- You may distribute Covered Code in Executable form only if the
- requirements of Section 3.1-3.5 have been met for that Covered Code,
- and if You include a notice stating that the Source Code version of
- the Covered Code is available under the terms of this License,
- including a description of how and where You have fulfilled the
- obligations of Section 3.2. The notice must be conspicuously included
- in any notice in an Executable version, related documentation or
- collateral in which You describe recipients' rights relating to the
- Covered Code. You may distribute the Executable version of Covered
- Code or ownership rights under a license of Your choice, which may
- contain terms different from this License, provided that You are in
- compliance with the terms of this License and that the license for the
- Executable version does not attempt to limit or alter the recipient's
- rights in the Source Code version from the rights set forth in this
- License. If You distribute the Executable version under a different
- license You must make it absolutely clear that any terms which differ
- from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the
- Initial Developer and every Contributor for any liability incurred by
- the Initial Developer or such Contributor as a result of any such
- terms You offer.
-
- 3.7. Larger Works.
- You may create a Larger Work by combining Covered Code with other code
- not governed by the terms of this License and distribute the Larger
- Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
- If it is impossible for You to comply with any of the terms of this
- License with respect to some or all of the Covered Code due to
- statute, judicial order, or regulation then You must: (a) comply with
- the terms of this License to the maximum extent possible; and (b)
- describe the limitations and the code they affect. Such description
- must be included in the LEGAL file described in Section 3.4 and must
- be included with all distributions of the Source Code. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Application of this License.
-
- This License applies to code to which the Initial Developer has
- attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
- 6.1. New Versions.
- Netscape Communications Corporation ("Netscape") may publish revised
- and/or new versions of the License from time to time. Each version
- will be given a distinguishing version number.
-
- 6.2. Effect of New Versions.
- Once Covered Code has been published under a particular version of the
- License, You may always continue to use it under the terms of that
- version. You may also choose to use such Covered Code under the terms
- of any subsequent version of the License published by Netscape. No one
- other than Netscape has the right to modify the terms applicable to
- Covered Code created under this License.
-
- 6.3. Derivative Works.
- If You create or use a modified version of this License (which you may
- only do in order to apply it to code which is not already Covered Code
- governed by this License), You must (a) rename Your license so that
- the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape Public License. (Filling in the name of the Initial
- Developer, Original Code or Contributor in the notice described in
- Exhibit A shall not of themselves be deemed to be modifications of
- this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
- COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
- DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
- IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
- YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
- COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
- OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
- 8.1. This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure
- such breach within 30 days of becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall
- survive any termination of this License. Provisions which, by their
- nature, must remain in effect beyond the termination of this License
- shall survive.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
- ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
- WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
- RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
- PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
- EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
- The Covered Code is a "commercial item," as that term is defined in
- 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
- software" and "commercial computer software documentation," as such
- terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
- C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
- all U.S. Government End Users acquire Covered Code with only those
- rights set forth herein.
-
-11. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if
- any, provides otherwise), excluding its conflict-of-law provisions.
- With respect to disputes in which at least one party is a citizen of,
- or an entity chartered or registered to do business in the United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- Any law or regulation which provides that the language of a contract
- shall be construed against the drafter shall not apply to this
- License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-
-== END TEXT ONLY VERSION ==
--->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>License - CKEditor</title>
-</head>
-<body>
- <h1>
- Software License Agreement
- </h1>
- <p>
- <strong>CKEditor™</strong> - The text editor for Internet™ - <a href="http://ckeditor.com">
- http://ckeditor.com</a><br />
- Copyright © 2003-2010, <a href="http://cksource.com/">CKSource</a> - Frederico Knabben. All rights reserved.
- </p>
- <p>
- Licensed under the terms of any of the following licenses at your choice:
- </p>
- <ul>
- <li><a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a> Version
- 2 or later (the "GPL");</li>
- <li><a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a>
- Version 2.1 or later (the "LGPL");</li>
- <li><a href="http://www.mozilla.org/MPL/MPL-1.1.html">Mozilla Public License</a> Version
- 1.1 or later (the "MPL").</li>
- </ul>
- <p>
- You are not required to, but if you want to explicitly declare the license you have
- chosen to be bound to when using, reproducing, modifying and distributing this software,
- just include a text file titled "LEGAL" in your version of this software, indicating
- your license choice. In any case, your choice will not restrict any recipient of
- your version of this software to use, reproduce, modify and distribute this software
- under any of the above licenses.
- </p>
- <h2>
- Sources of Intellectual Property Included in CKEditor
- </h2>
- <p>
- Where not otherwise indicated, all CKEditor content is authored by CKSource engineers
- and consists of CKSource-owned intellectual property. In some specific instances,
- CKEditor will incorporate work done by developers outside of CKSource with their
- express permission.
- </p>
- <p>
- <a href="http://developer.yahoo.com/yui/yuitest/">YUI Test</a>: At _source/tests/yuitest.js
- can be found part of the source code of YUI, which is licensed under the terms of
- the <a href="http://developer.yahoo.com/yui/license.txt">BSD License</a>. YUI is
- Copyright © 2008, Yahoo! Inc.
- </p>
- <h2>
- Trademarks
- </h2>
- <p>
- CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product
- names are trademarks, registered trademarks or service marks of their respective
- holders.
- </p>
-</body>
-</html>
diff --git a/share/static/RichText/LICENSE.md b/share/static/RichText/LICENSE.md
new file mode 100644
index 0000000..d447c67
--- /dev/null
+++ b/share/static/RichText/LICENSE.md
@@ -0,0 +1,1264 @@
+Software License Agreement
+==========================
+
+CKEditor - The text editor for Internet - http://ckeditor.com
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+ http://www.gnu.org/licenses/gpl.html
+ (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ http://www.gnu.org/licenses/lgpl.html
+ (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+ http://www.mozilla.org/MPL/MPL-1.1.html
+ (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Sources of Intellectual Property Included in CKEditor
+-----------------------------------------------------
+
+Where not otherwise indicated, all CKEditor content is authored by
+CKSource engineers and consists of CKSource-owned intellectual
+property. In some specific instances, CKEditor will incorporate work
+done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
+and product names are trademarks, registered trademarks or service
+marks of their respective holders.
+
+---
+
+Appendix A: The GPL License
+---------------------------
+
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser 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 B: The LGPL License
+----------------------------
+
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software-to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages-typically libraries-of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+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 and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, 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 library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete 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 distribute a copy of this License along with the
+Library.
+
+ 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 Library or any portion
+of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+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 Library, 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 Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you 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.
+
+ If distribution of 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 satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be 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.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library 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.
+
+ 9. 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 Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+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 with
+this License.
+
+ 11. 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 Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library 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 Library.
+
+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.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library 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.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+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 Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+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
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. 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 LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+
+Appendix C: The MPL License
+---------------------------
+
+MOZILLA PUBLIC LICENSE
+Version 1.1
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the Modifications
+ made by that particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+ accepted in the software development community for the electronic
+ transfer of data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+ Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by Exhibit
+ A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files, a
+ Modification is:
+ A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+ previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A as
+ Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+ making modifications to it, including all modules it contains, plus
+ any associated interface definition files, scripts used to control
+ compilation and installation of an Executable, or source code
+ differential comparisons against either the Original Code or another
+ well known, available Covered Code of the Contributor's choice. The
+ Source Code can be in a compressed or archival form, provided the
+ appropriate decompression or de-archiving software is widely available
+ for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of, this
+ License or a future version of this License issued under Section 6.1.
+ For legal entities, "You" includes any entity which controls, is
+ controlled by, or is under common control with You. For purposes of
+ this definition, "control" means (a) the power, direct or indirect,
+ to cause the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty percent
+ (50%) of the outstanding shares or beneficial ownership of such
+ entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license, subject to third party intellectual property
+ claims:
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use, reproduce,
+ modify, display, perform, sublicense and distribute the Original
+ Code (or portions thereof) with or without Modifications, and/or
+ as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+
+ (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: 1) for code that You delete from the Original Code; 2)
+ separate from the Original Code; or 3) for infringements caused
+ by: i) the modification of the Original Code or ii) the
+ combination of the Original Code with other software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+ hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce, modify,
+ display, perform, sublicense and distribute the Modifications
+ created by such Contributor (or portions thereof) either on an
+ unmodified basis, with other Modifications, as Covered Code
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either alone
+ and/or in combination with its Contributor Version (or portions
+ of such combination), to make, use, sell, offer for sale, have
+ made, and/or otherwise dispose of: 1) Modifications made by that
+ Contributor (or portions thereof); and 2) the combination of
+ Modifications made by that Contributor with its Contributor
+ Version (or portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use of
+ the Covered Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: 1) for any code that Contributor has deleted from the
+ Contributor Version; 2) separate from the Contributor Version;
+ 3) for infringements caused by: i) third party modifications of
+ Contributor Version or ii) the combination of Modifications made
+ by that Contributor with other software (except as part of the
+ Contributor Version) or other devices; or 4) under Patent Claims
+ infringed by Covered Code in the absence of Modifications made by
+ that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+ governed by the terms of this License, including without limitation
+ Section 2.2. The Source Code version of Covered Code may be
+ distributed only under the terms of this License or a future version
+ of this License released under Section 6.1, and You must include a
+ copy of this License with every copy of the Source Code You
+ distribute. You may not offer or impose any terms on any Source Code
+ version that alters or restricts the applicable version of this
+ License or the recipients' rights hereunder. However, You may include
+ an additional document offering the additional rights described in
+ Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+ made available in Source Code form under the terms of this License
+ either on the same media as an Executable version or via an accepted
+ Electronic Distribution Mechanism to anyone to whom you made an
+ Executable version available; and if made available via Electronic
+ Distribution Mechanism, must remain available for at least twelve (12)
+ months after the date it initially became available, or at least six
+ (6) months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible for
+ ensuring that the Source Code version remains available even if the
+ Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+ file documenting the changes You made to create that Covered Code and
+ the date of any change. You must include a prominent statement that
+ the Modification is derived, directly or indirectly, from Original
+ Code provided by the Initial Developer and including the name of the
+ Initial Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe the
+ origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+ intellectual property rights is required to exercise the rights
+ granted by such Contributor under Sections 2.1 or 2.2,
+ Contributor must include a text file with the Source Code
+ distribution titled "LEGAL" which describes the claim and the
+ party making the claim in sufficient detail that a recipient will
+ know whom to contact. If Contributor obtains such knowledge after
+ the Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all copies
+ Contributor makes available thereafter and shall take other steps
+ (such as notifying appropriate mailing lists or newsgroups)
+ reasonably calculated to inform those who received the Covered
+ Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+ interface and Contributor has knowledge of patent licenses which
+ are reasonably necessary to implement that API, Contributor must
+ also include this information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+ Section 3.4(a) above, Contributor believes that Contributor's
+ Modifications are Contributor's original creation(s) and/or
+ Contributor has sufficient rights to grant the rights conveyed by
+ this License.
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+ Code. If it is not possible to put such notice in a particular Source
+ Code file due to its structure, then You must include such notice in a
+ location (such as a relevant directory) where a user would be likely
+ to look for such a notice. If You created one or more Modification(s)
+ You may add your name as a Contributor to the notice described in
+ Exhibit A. You must also duplicate this License in any documentation
+ for the Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However, You
+ may do so only on Your own behalf, and not on behalf of the Initial
+ Developer or any Contributor. You must make it absolutely clear than
+ any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+ requirements of Section 3.1-3.5 have been met for that Covered Code,
+ and if You include a notice stating that the Source Code version of
+ the Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligations of Section 3.2. The notice must be conspicuously included
+ in any notice in an Executable version, related documentation or
+ collateral in which You describe recipients' rights relating to the
+ Covered Code. You may distribute the Executable version of Covered
+ Code or ownership rights under a license of Your choice, which may
+ contain terms different from this License, provided that You are in
+ compliance with the terms of this License and that the license for the
+ Executable version does not attempt to limit or alter the recipient's
+ rights in the Source Code version from the rights set forth in this
+ License. If You distribute the Executable version under a different
+ license You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred by
+ the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+ not governed by the terms of this License and distribute the Larger
+ Work as a single product. In such a case, You must make sure the
+ requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Code due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description
+ must be included in the LEGAL file described in Section 3.4 and must
+ be included with all distributions of the Source Code. Except to the
+ extent prohibited by statute or regulation, such description must be
+ sufficiently detailed for a recipient of ordinary skill to be able to
+ understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has
+ attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+ and/or new versions of the License from time to time. Each version
+ will be given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+ License, You may always continue to use it under the terms of that
+ version. You may also choose to use such Covered Code under the terms
+ of any subsequent version of the License published by Netscape. No one
+ other than Netscape has the right to modify the terms applicable to
+ Covered Code created under this License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+ only do in order to apply it to code which is not already Covered Code
+ governed by this License), You must (a) rename Your license so that
+ the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+ "MPL", "NPL" or any confusingly similar phrase do not appear in your
+ license (except to note that your license differs from this License)
+ and (b) otherwise make it clear that Your version of the license
+ contains terms which differ from the Mozilla Public License and
+ Netscape Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+ DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+ IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+ YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+ COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+ OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to cure
+ such breach within 30 days of becoming aware of the breach. All
+ sublicenses to the Covered Code which are properly granted shall
+ survive any termination of this License. Provisions which, by their
+ nature, must remain in effect beyond the termination of this License
+ shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+ claim (excluding declatory judgment actions) against Initial Developer
+ or a Contributor (the Initial Developer or Contributor against whom
+ You file such action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+ infringes any patent, then any and all rights granted by such
+ Participant to You under Sections 2.1 and/or 2.2 of this License
+ shall, upon 60 days notice from Participant terminate prospectively,
+ unless if within 60 days after receipt of notice You either: (i)
+ agree in writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made by such
+ Participant, or (ii) withdraw Your litigation claim with respect to
+ the Contributor Version against such Participant. If within 60 days
+ of notice, a reasonable royalty and payment arrangement are not
+ mutually agreed upon in writing by the parties or the litigation claim
+ is not withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+ the 60 day notice period specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+ Contributor Version, directly or indirectly infringes any patent, then
+ any rights granted to You by such Participant under Sections 2.1(b)
+ and 2.2(b) are revoked effective as of the date You first made, used,
+ sold, distributed, or had made, Modifications made by that
+ Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+ alleging that such Participant's Contributor Version directly or
+ indirectly infringes any patent where such claim is resolved (such as
+ by license or settlement) prior to the initiation of patent
+ infringement litigation, then the reasonable value of the licenses
+ granted by such Participant under Sections 2.1 or 2.2 shall be taken
+ into account in determining the amount or value of any payment or
+ license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and resellers)
+ which have been validly granted by You or any distributor hereunder
+ prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+ DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+ OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+ ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+ CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+ WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+ RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+ THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in
+ 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+ software" and "commercial computer software documentation," as such
+ terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+ C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+ all U.S. Government End Users acquire Covered Code with only those
+ rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed by
+ California law provisions (except to the extent applicable law, if
+ any, provides otherwise), excluding its conflict-of-law provisions.
+ With respect to disputes in which at least one party is a citizen of,
+ or an entity chartered or registered to do business in the United
+ States of America, any litigation relating to this License shall be
+ subject to the jurisdiction of the Federal Courts of the Northern
+ District of California, with venue lying in Santa Clara County,
+ California, with the losing party responsible for costs, including
+ without limitation, court costs and reasonable attorneys' fees and
+ expenses. The application of the United Nations Convention on
+ Contracts for the International Sale of Goods is expressly excluded.
+ Any law or regulation which provides that the language of a contract
+ shall be construed against the drafter shall not apply to this
+ License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or indirectly,
+ out of its utilization of rights under this License and You agree to
+ work with Initial Developer and Contributors to distribute such
+ responsibility on an equitable basis. Nothing herein is intended or
+ shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+ "Multiple-Licensed". "Multiple-Licensed" means that the Initial
+ Developer permits you to utilize portions of the Covered Code under
+ Your choice of the NPL or the alternative licenses, if any, specified
+ by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+ Portions created by ______________________ are Copyright (C) ______
+ _______________________. All Rights Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms
+ of the _____ license (the "[___] License"), in which case the
+ provisions of [______] License are applicable instead of those
+ above. If you wish to allow use of your version of this file only
+ under the terms of the [____] License and not to allow others to use
+ your version of this file under the MPL, indicate your decision by
+ deleting the provisions above and replace them with the notice and
+ other provisions required by the [___] License. If you do not delete
+ the provisions above, a recipient may use your version of this file
+ under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+ the notices in the Source Code files of the Original Code. You should
+ use the text of this Exhibit A rather than the text found in the
+ Original Code Source Code for Your Modifications.]
diff --git a/share/static/RichText/adapters/jquery.js b/share/static/RichText/adapters/jquery.js
deleted file mode 100644
index f603459..0000000
--- a/share/static/RichText/adapters/jquery.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function(){CKEDITOR.config.jqueryOverrideVal=typeof CKEDITOR.config.jqueryOverrideVal=='undefined'?true:CKEDITOR.config.jqueryOverrideVal;var a=window.jQuery;if(typeof a=='undefined')return;a.extend(a.fn,{ckeditorGet:function(){var b=this.eq(0).data('ckeditorInstance');if(!b)throw 'CKEditor not yet initialized, use ckeditor() with callback.';return b;},ckeditor:function(b,c){if(!a.isFunction(b)){var d=c;c=b;b=d;}c=c||{};this.filter('textarea, div, p').each(function(){var e=a(this),f=e.data('ckeditorInstance'),g=e.data('_ckeditorInstanceLock'),h=this;if(f&&!g){if(b)b.apply(f,[this]);}else if(!g){if(c.autoUpdateElement||typeof c.autoUpdateElement=='undefined'&&CKEDITOR.config.autoUpdateElement)c.autoUpdateElementJquery=true;c.autoUpdateElement=false;e.data('_ckeditorInstanceLock',true);f=CKEDITOR.replace(h,c);e.data('ckeditorInstance',f);f.on('instanceReady',function(i){var j=i.editor;setTimeout(function(){if(!j.element){setTimeout(arguments.callee,100);return;}i.removeListen
er('instanceReady',this.callee);j.on('dataReady',function(){e.trigger('setData.ckeditor',[j]);});j.on('getData',function(l){e.trigger('getData.ckeditor',[j,l.data]);},999);j.on('destroy',function(){e.trigger('destroy.ckeditor',[j]);});if(j.config.autoUpdateElementJquery&&e.is('textarea')&&e.parents('form').length){var k=function(){e.ckeditor(function(){j.updateElement();});};e.parents('form').submit(k);e.parents('form').bind('form-pre-serialize',k);e.bind('destroy.ckeditor',function(){e.parents('form').unbind('submit',k);e.parents('form').unbind('form-pre-serialize',k);});}j.on('destroy',function(){e.data('ckeditorInstance',null);});e.data('_ckeditorInstanceLock',null);e.trigger('instanceReady.ckeditor',[j]);if(b)b.apply(j,[h]);},0);},null,null,9999);}else CKEDITOR.on('instanceReady',function(i){var j=i.editor;setTimeout(function(){if(!j.element){setTimeout(arguments.callee,100);return;}if(j.element.$==h)if(b)b.apply(j,[h]);},0);},null,null,9999);});return this;}});if(CKEDIT
OR.config.jqueryOverrideVal)a.fn.val=CKEDITOR.tools.override(a.fn.val,function(b){return function(c,d){var e=typeof c!='undefined',f;this.each(function(){var g=a(this),h=g.data('ckeditorInstance');if(!d&&g.is('textarea')&&h){if(e)h.setData(c);else{f=h.getData();return null;}}else if(e)b.call(g,c);else{f=b.call(g);return null;}return true;});return e?this:f;};});})();
diff --git a/share/static/RichText/ckeditor.js b/share/static/RichText/ckeditor.js
index 77b165e..b216283 100644
--- a/share/static/RichText/ckeditor.js
+++ b/share/static/RichText/ckeditor.js
@@ -1,135 +1,871 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'A8LE4JO',version:'3.4.1',revision:'5892',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf('://')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;if(!d)throw 'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return d;})(),getUrl:function(d){if(d.indexOf('://')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/'&&!/[&?]t=/.test(d))d+=(d.indexOf('?')>=0?'&':'?')+'t='+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.
call(a,d)||c.call(a,d);};}return a;})();var a=CKEDITOR;if(!a.event){a.event=function(){};a.event.implementOn=function(b,c){var d=a.event.prototype;for(var e in d){if(b[e]==undefined)b[e]=d[e];}};a.event.prototype=(function(){var b=function(d){var e=d.getPrivate&&d.getPrivate()||d._||(d._={});return e.events||(e.events={});},c=function(d){this.name=d;this.listeners=[];};c.prototype={getListenerIndex:function(d){for(var e=0,f=this.listeners;e<f.length;e++){if(f[e].fn==d)return e;}return-1;}};return{on:function(d,e,f,g,h){var i=b(this),j=i[d]||(i[d]=new c(d));if(j.getListenerIndex(e)<0){var k=j.listeners;if(!f)f=this;if(isNaN(h))h=10;var l=this,m=function(o,p,q,r){var s={name:d,sender:this,editor:o,data:p,listenerData:g,stop:q,cancel:r,removeListener:function(){l.removeListener(d,e);}};e.call(f,s);return s.data;};m.fn=e;m.priority=h;for(var n=k.length-1;n>=0;n--){if(k[n].priority<=h){k.splice(n+1,0,m);return;}}k.unshift(m);}},fire:(function(){var d=false,e=function(){d=true;},f
=false,g=function(){f=true;};return function(h,i,j){var k=b(this)[h],l=d,m=f;d=f=false;if(k){var n=k.listeners;if(n.length){n=n.slice(0);for(var o=0;o<n.length;o++){var p=n[o].call(this,j,i,e,g);if(typeof p!='undefined')i=p;if(d||f)break;}}}var q=f||(typeof i=='undefined'?false:i);d=l;f=m;return q;};})(),fireOnce:function(d,e,f){var g=this.fire(d,e,f);delete b(this)[d];return g;},removeListener:function(d,e){var f=b(this)[d];if(f){var g=f.getListenerIndex(e);if(g>=0)f.listeners.splice(g,1);}},hasListeners:function(d){var e=b(this)[d];
-return e&&e.listeners.length>0;}};})();}if(!a.editor){a.ELEMENT_MODE_NONE=0;a.ELEMENT_MODE_REPLACE=1;a.ELEMENT_MODE_APPENDTO=2;a.editor=function(b,c,d,e){var f=this;f._={instanceConfig:b,element:c,data:e};f.elementMode=d||0;a.event.call(f);f._init();};a.editor.replace=function(b,c){var d=b;if(typeof d!='object'){d=document.getElementById(b);if(!d){var e=0,f=document.getElementsByName(b);while((d=f[e++])&&d.tagName.toLowerCase()!='textarea'){}}if(!d)throw '[CKEDITOR.editor.replace] The element with id or name "'+b+'" was not found.';}d.style.visibility='hidden';return new a.editor(c,d,1);};a.editor.appendTo=function(b,c,d){var e=b;if(typeof e!='object'){e=document.getElementById(b);if(!e)throw '[CKEDITOR.editor.appendTo] The element with id "'+b+'" was not found.';}return new a.editor(c,e,2,d);};a.editor.prototype={_init:function(){var b=a.editor._pending||(a.editor._pending=[]);b.push(this);},fire:function(b,c){return a.event.prototype.fire.call(this,b,c,this);},fireOnce:fun
ction(b,c){return a.event.prototype.fireOnce.call(this,b,c,this);}};a.event.implementOn(a.editor.prototype,true);}if(!a.env)a.env=(function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,d={ie:/*@cc_on!@*/false,opera:!!c&&c.version,webkit:b.indexOf(' applewebkit/')>-1,air:b.indexOf(' adobeair/')>-1,mac:b.indexOf('macintosh')>-1,quirks:document.compatMode=='BackCompat',mobile:b.indexOf('mobile')>-1,isCustomDomain:function(){if(!this.ie)return false;var g=document.domain,h=window.location.hostname;return g!=h&&g!='['+h+']';}};d.gecko=navigator.product=='Gecko'&&!d.webkit&&!d.opera;var e=0;if(d.ie){e=parseFloat(b.match(/msie (\d+)/)[1]);d.ie8=!!document.documentMode;d.ie8Compat=document.documentMode==8;d.ie7Compat=e==7&&!document.documentMode||document.documentMode==7;d.ie6Compat=e<7||d.quirks;}if(d.gecko){var f=b.match(/rv:([\d\.]+)/);if(f){f=f[1].split('.');e=f[0]*10000+(f[1]||0)*100+ +(f[2]||0);}}if(d.opera)e=parseFloat(c.version());if(d.air)e=parseFloat(b.match(/
adobeair\/(\d+)/)[1]);if(d.webkit)e=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]);d.version=e;d.isCompatible=!d.mobile&&(d.ie&&e>=6||d.gecko&&e>=10801||d.opera&&e>=9.5||d.air&&e>=1||d.webkit&&e>=522||false);d.cssClass='cke_browser_'+(d.ie?'ie':d.gecko?'gecko':d.opera?'opera':d.air?'air':d.webkit?'webkit':'unknown');if(d.quirks)d.cssClass+=' cke_browser_quirks';if(d.ie){d.cssClass+=' cke_browser_ie'+(d.version<7?'6':d.version>=8?'8':'7');if(d.quirks)d.cssClass+=' cke_browser_iequirks';}if(d.gecko&&e<10900)d.cssClass+=' cke_browser_gecko18';
-return d;})();var b=a.env;var c=b.ie;if(a.status=='unloaded')(function(){a.event.implementOn(a);a.loadFullCore=function(){if(a.status!='basic_ready'){a.loadFullCore._load=true;return;}delete a.loadFullCore;var e=document.createElement('script');e.type='text/javascript';e.src=a.basePath+'ckeditor.js';document.getElementsByTagName('head')[0].appendChild(e);};a.loadFullCoreTimeout=0;a.replaceClass='ckeditor';a.replaceByClassEnabled=true;var d=function(e,f,g,h){if(b.isCompatible){if(a.loadFullCore)a.loadFullCore();var i=g(e,f,h);a.add(i);return i;}return null;};a.replace=function(e,f){return d(e,f,a.editor.replace);};a.appendTo=function(e,f,g){return d(e,f,a.editor.appendTo,g);};a.add=function(e){var f=this._.pending||(this._.pending=[]);f.push(e);};a.replaceAll=function(){var e=document.getElementsByTagName('textarea');for(var f=0;f<e.length;f++){var g=null,h=e[f],i=h.name;if(!h.name&&!h.id)continue;if(typeof arguments[0]=='string'){var j=new RegExp('(?:^|\\s)'+arguments[0]+'(?
:$|\\s)');if(!j.test(h.className))continue;}else if(typeof arguments[0]=='function'){g={};if(arguments[0](h,g)===false)continue;}this.replace(h,g);}};(function(){var e=function(){var f=a.loadFullCore,g=a.loadFullCoreTimeout;if(a.replaceByClassEnabled)a.replaceAll(a.replaceClass);a.status='basic_ready';if(f&&f._load)f();else if(g)setTimeout(function(){if(a.loadFullCore)a.loadFullCore();},g*1000);};if(window.addEventListener)window.addEventListener('load',e,false);else if(window.attachEvent)window.attachEvent('onload',e);})();a.status='basic_loaded';})();a.dom={};var d=a.dom;(function(){var e=[];a.on('reset',function(){e=[];});a.tools={arrayCompare:function(f,g){if(!f&&!g)return true;if(!f||!g||f.length!=g.length)return false;for(var h=0;h<f.length;h++){if(f[h]!=g[h])return false;}return true;},clone:function(f){var g;if(f&&f instanceof Array){g=[];for(var h=0;h<f.length;h++)g[h]=this.clone(f[h]);return g;}if(f===null||typeof f!='object'||f instanceof String||f instanceof Numb
er||f instanceof Boolean||f instanceof Date||f instanceof RegExp)return f;g=new f.constructor();for(var i in f){var j=f[i];g[i]=this.clone(j);}return g;},capitalize:function(f){return f.charAt(0).toUpperCase()+f.substring(1).toLowerCase();},extend:function(f){var g=arguments.length,h,i;if(typeof (h=arguments[g-1])=='boolean')g--;else if(typeof (h=arguments[g-2])=='boolean'){i=arguments[g-1];g-=2;}for(var j=1;j<g;j++){var k=arguments[j];for(var l in k){if(h===true||f[l]==undefined)if(!i||l in i)f[l]=k[l];}}return f;},prototypedCopy:function(f){var g=function(){};
-g.prototype=f;return new g();},isArray:function(f){return!!f&&f instanceof Array;},isEmpty:function(f){for(var g in f){if(f.hasOwnProperty(g))return false;}return true;},cssStyleToDomStyle:(function(){var f=document.createElement('div').style,g=typeof f.cssFloat!='undefined'?'cssFloat':typeof f.styleFloat!='undefined'?'styleFloat':'float';return function(h){if(h=='float')return g;else return h.replace(/-./g,function(i){return i.substr(1).toUpperCase();});};})(),buildStyleHtml:function(f){f=[].concat(f);var g,h=[];for(var i=0;i<f.length;i++){g=f[i];if(/@import|[{}]/.test(g))h.push('<style>'+g+'</style>');else h.push('<link type="text/css" rel=stylesheet href="'+g+'">');}return h.join('');},htmlEncode:function(f){var g=function(k){var l=new d.element('span');l.setText(k);return l.getHtml();},h=g('\n').toLowerCase()=='<br>'?function(k){return g(k).replace(/<br>/gi,'\n');}:g,i=g('>')=='>'?function(k){return h(k).replace(/>/g,'>');}:h,j=g(' ')==' '?function(k){return i(
k).replace(/ /g,' ');}:i;this.htmlEncode=j;return this.htmlEncode(f);},htmlEncodeAttr:function(f){return f.replace(/"/g,'"').replace(/</g,'<').replace(/>/g,'>');},escapeCssSelector:function(f){return f.replace(/[\s#:.,$*^\[\]()~=+>]/g,'\\$&');},getNextNumber:(function(){var f=0;return function(){return++f;};})(),getNextId:function(){return 'cke_'+this.getNextNumber();},override:function(f,g){return g(f);},setTimeout:function(f,g,h,i,j){if(!j)j=window;if(!h)h=j;return j.setTimeout(function(){if(i)f.apply(h,[].concat(i));else f.apply(h);},g||0);},trim:(function(){var f=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(g){return g.replace(f,'');};})(),ltrim:(function(){var f=/^[ \t\n\r]+/g;return function(g){return g.replace(f,'');};})(),rtrim:(function(){var f=/[ \t\n\r]+$/g;return function(g){return g.replace(f,'');};})(),indexOf:Array.prototype.indexOf?function(f,g){return f.indexOf(g);}:function(f,g){for(var h=0,i=f.length;h<i;h++){if(f[h]===g)return h;}ret
urn-1;},bind:function(f,g){return function(){return f.apply(g,arguments);};},createClass:function(f){var g=f.$,h=f.base,i=f.privates||f._,j=f.proto,k=f.statics;if(i){var l=g;g=function(){var p=this;var m=p._||(p._={});for(var n in i){var o=i[n];m[n]=typeof o=='function'?a.tools.bind(o,p):o;}l.apply(p,arguments);};}if(h){g.prototype=this.prototypedCopy(h.prototype);g.prototype['constructor']=g;g.prototype.base=function(){this.base=h.prototype.base;h.apply(this,arguments);this.base=arguments.callee;};}if(j)this.extend(g.prototype,j,true);
-if(k)this.extend(g,k,true);return g;},addFunction:function(f,g){return e.push(function(){f.apply(g||this,arguments);})-1;},removeFunction:function(f){e[f]=null;},callFunction:function(f){var g=e[f];return g&&g.apply(window,Array.prototype.slice.call(arguments,1));},cssLength:(function(){var f=/^\d+(?:\.\d+)?$/;return function(g){return g+(f.test(g)?'px':'');};})(),repeat:function(f,g){return new Array(g+1).join(f);},tryThese:function(){var f;for(var g=0,h=arguments.length;g<h;g++){var i=arguments[g];try{f=i();break;}catch(j){}}return f;},genKey:function(){return Array.prototype.slice.call(arguments).join('-');}};})();var e=a.tools;a.dtd=(function(){var f=e.extend,g={isindex:1,fieldset:1},h={input:1,button:1,select:1,textarea:1,label:1},i=f({a:1},h),j=f({iframe:1},i),k={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1},l={ins:1,del:1,script:1,style:1},m=f({b:1,acronym:1,bdo:1,'var':1,'#':1
,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},l),n=f({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},m),o=f({p:1},n),p=f({iframe:1},n,h),q={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1},r=f({a:1},p),s={tr:1},t={'#':1},u=f({param:1},q),v=f({form:1},g,j,k,o),w={li:1},x={style:1,script:1},y={base:1,link:1,meta:1,title:1},z=f(y,x),A={head:1,body:1},B={html:1},C={address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pr
e:1,table:1,ul:1};return{$nonBodyContent:f(B,A,y),$block:C,$blockLimit:{body:1,div:1,td:1,th:1,caption:1,form:1},$inline:r,$body:f({script:1,style:1},C),$cdata:{script:1,style:1},$empty:{area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1},$listItem:{dd:1,dt:1,li:1},$list:{ul:1,ol:1,dl:1},$nonEditable:{applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1,param:1},$removeEmpty:{abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},html:A,head:z,style:t,script:t,body:v,base:{},link:{},meta:{},title:t,col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:v,td:v,br:{},th:v,center:v,kbd:r,button:f(o,k),basefont:{},h5:r,h4:r,samp:r,h6:r,ol:w,h1:r,h3:r,option:t,h2:r,
form:f(g,j,k,o),select:{optgroup:1,option:1},font:r,ins:r,menu:w,abbr:r,label:r,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:r,script:t,tfoot:s,cite:r,li:v,input:{},iframe:v,strong:r,textarea:t,noframes:v,big:r,small:r,span:r,hr:{},dt:r,sub:r,optgroup:{option:1},param:{},bdo:r,'var':r,div:v,object:u,sup:r,dd:v,strike:r,area:{},dir:w,map:f({area:1,form:1,p:1},g,l,k),applet:u,dl:{dt:1,dd:1},del:r,isindex:{},fieldset:f({legend:1},q),thead:s,ul:w,acronym:r,b:r,a:p,blockquote:v,caption:r,i:r,u:r,tbody:s,s:r,address:f(j,o),tt:r,legend:r,q:r,pre:f(m,i),p:r,em:r,dfn:r};
-})();var f=a.dtd;d.event=function(g){this.$=g;};d.event.prototype={getKey:function(){return this.$.keyCode||this.$.which;},getKeystroke:function(){var h=this;var g=h.getKey();if(h.$.ctrlKey||h.$.metaKey)g+=1000;if(h.$.shiftKey)g+=2000;if(h.$.altKey)g+=4000;return g;},preventDefault:function(g){var h=this.$;if(h.preventDefault)h.preventDefault();else h.returnValue=false;if(g)this.stopPropagation();},stopPropagation:function(){var g=this.$;if(g.stopPropagation)g.stopPropagation();else g.cancelBubble=true;},getTarget:function(){var g=this.$.target||this.$.srcElement;return g?new d.node(g):null;}};a.CTRL=1000;a.SHIFT=2000;a.ALT=4000;d.domObject=function(g){if(g)this.$=g;};d.domObject.prototype=(function(){var g=function(h,i){return function(j){if(typeof a!='undefined')h.fire(i,new d.event(j));};};return{getPrivate:function(){var h;if(!(h=this.getCustomData('_')))this.setCustomData('_',h={});return h;},on:function(h){var k=this;var i=k.getCustomData('_cke_nativeListeners');if(!i)
{i={};k.setCustomData('_cke_nativeListeners',i);}if(!i[h]){var j=i[h]=g(k,h);if(k.$.addEventListener)k.$.addEventListener(h,j,!!a.event.useCapture);else if(k.$.attachEvent)k.$.attachEvent('on'+h,j);}return a.event.prototype.on.apply(k,arguments);},removeListener:function(h){var k=this;a.event.prototype.removeListener.apply(k,arguments);if(!k.hasListeners(h)){var i=k.getCustomData('_cke_nativeListeners'),j=i&&i[h];if(j){if(k.$.removeEventListener)k.$.removeEventListener(h,j,false);else if(k.$.detachEvent)k.$.detachEvent('on'+h,j);delete i[h];}}},removeAllListeners:function(){var k=this;var h=k.getCustomData('_cke_nativeListeners');for(var i in h){var j=h[i];if(k.$.removeEventListener)k.$.removeEventListener(i,j,false);else if(k.$.detachEvent)k.$.detachEvent('on'+i,j);delete h[i];}}};})();(function(g){var h={};a.on('reset',function(){h={};});g.equals=function(i){return i&&i.$===this.$;};g.setCustomData=function(i,j){var k=this.getUniqueId(),l=h[k]||(h[k]={});l[i]=j;return this
;};g.getCustomData=function(i){var j=this.$._cke_expando,k=j&&h[j];return k&&k[i];};g.removeCustomData=function(i){var j=this.$._cke_expando,k=j&&h[j],l=k&&k[i];if(typeof l!='undefined')delete k[i];return l||null;};g.clearCustomData=function(){this.removeAllListeners();var i=this.$._cke_expando;i&&delete h[i];};g.getUniqueId=function(){return this.$._cke_expando||(this.$._cke_expando=e.getNextNumber());};a.event.implementOn(g);})(d.domObject.prototype);d.window=function(g){d.domObject.call(this,g);};d.window.prototype=new d.domObject();
-e.extend(d.window.prototype,{focus:function(){if(b.webkit&&this.$.parent)this.$.parent.focus();this.$.focus();},getViewPaneSize:function(){var g=this.$.document,h=g.compatMode=='CSS1Compat';return{width:(h?g.documentElement.clientWidth:g.body.clientWidth)||0,height:(h?g.documentElement.clientHeight:g.body.clientHeight)||0};},getScrollPosition:function(){var g=this.$;if('pageXOffset' in g)return{x:g.pageXOffset||0,y:g.pageYOffset||0};else{var h=g.document;return{x:h.documentElement.scrollLeft||h.body.scrollLeft||0,y:h.documentElement.scrollTop||h.body.scrollTop||0};}}});d.document=function(g){d.domObject.call(this,g);};var g=d.document;g.prototype=new d.domObject();e.extend(g.prototype,{appendStyleSheet:function(h){if(this.$.createStyleSheet)this.$.createStyleSheet(h);else{var i=new d.element('link');i.setAttributes({rel:'stylesheet',type:'text/css',href:h});this.getHead().append(i);}},appendStyleText:function(h){var k=this;if(k.$.createStyleSheet){var i=k.$.createStyleSheet(
'');i.cssText=h;}else{var j=new d.element('style',k);j.append(new d.text(h,k));k.getHead().append(j);}},createElement:function(h,i){var j=new d.element(h,this);if(i){if(i.attributes)j.setAttributes(i.attributes);if(i.styles)j.setStyles(i.styles);}return j;},createText:function(h){return new d.text(h,this);},focus:function(){this.getWindow().focus();},getById:function(h){var i=this.$.getElementById(h);return i?new d.element(i):null;},getByAddress:function(h,i){var j=this.$.documentElement;for(var k=0;j&&k<h.length;k++){var l=h[k];if(!i){j=j.childNodes[l];continue;}var m=-1;for(var n=0;n<j.childNodes.length;n++){var o=j.childNodes[n];if(i===true&&o.nodeType==3&&o.previousSibling&&o.previousSibling.nodeType==3)continue;m++;if(m==l){j=o;break;}}}return j?new d.node(j):null;},getElementsByTag:function(h,i){if(!c&&i)h=i+':'+h;return new d.nodeList(this.$.getElementsByTagName(h));},getHead:function(){var h=this.$.getElementsByTagName('head')[0];h=new d.element(h);return(this.getHea
d=function(){return h;})();},getBody:function(){var h=new d.element(this.$.body);return(this.getBody=function(){return h;})();},getDocumentElement:function(){var h=new d.element(this.$.documentElement);return(this.getDocumentElement=function(){return h;})();},getWindow:function(){var h=new d.window(this.$.parentWindow||this.$.defaultView);return(this.getWindow=function(){return h;})();}});d.node=function(h){if(h){switch(h.nodeType){case 9:return new g(h);case 1:return new d.element(h);case 3:return new d.text(h);}d.domObject.call(this,h);
-}return this;};d.node.prototype=new d.domObject();a.NODE_ELEMENT=1;a.NODE_DOCUMENT=9;a.NODE_TEXT=3;a.NODE_COMMENT=8;a.NODE_DOCUMENT_FRAGMENT=11;a.POSITION_IDENTICAL=0;a.POSITION_DISCONNECTED=1;a.POSITION_FOLLOWING=2;a.POSITION_PRECEDING=4;a.POSITION_IS_CONTAINED=8;a.POSITION_CONTAINS=16;e.extend(d.node.prototype,{appendTo:function(h,i){h.append(this,i);return h;},clone:function(h,i){var j=this.$.cloneNode(h);if(!i){var k=function(l){if(l.nodeType!=1)return;l.removeAttribute('id',false);l.removeAttribute('_cke_expando',false);var m=l.childNodes;for(var n=0;n<m.length;n++)k(m[n]);};k(j);}return new d.node(j);},hasPrevious:function(){return!!this.$.previousSibling;},hasNext:function(){return!!this.$.nextSibling;},insertAfter:function(h){h.$.parentNode.insertBefore(this.$,h.$.nextSibling);return h;},insertBefore:function(h){h.$.parentNode.insertBefore(this.$,h.$);return h;},insertBeforeMe:function(h){this.$.parentNode.insertBefore(h.$,this.$);return h;},getAddress:function(h){va
r i=[],j=this.getDocument().$.documentElement,k=this.$;while(k&&k!=j){var l=k.parentNode,m=-1;if(l){for(var n=0;n<l.childNodes.length;n++){var o=l.childNodes[n];if(h&&o.nodeType==3&&o.previousSibling&&o.previousSibling.nodeType==3)continue;m++;if(o==k)break;}i.unshift(m);}k=l;}return i;},getDocument:function(){var h=new g(this.$.ownerDocument||this.$.parentNode.ownerDocument);return(this.getDocument=function(){return h;})();},getIndex:function(){var h=this.$,i=h.parentNode&&h.parentNode.firstChild,j=-1;while(i){j++;if(i==h)return j;i=i.nextSibling;}return-1;},getNextSourceNode:function(h,i,j){if(j&&!j.call){var k=j;j=function(n){return!n.equals(k);};}var l=!h&&this.getFirst&&this.getFirst(),m;if(!l){if(this.type==1&&j&&j(this,true)===false)return null;l=this.getNext();}while(!l&&(m=(m||this).getParent())){if(j&&j(m,true)===false)return null;l=m.getNext();}if(!l)return null;if(j&&j(l)===false)return null;if(i&&i!=l.type)return l.getNextSourceNode(false,i,j);return l;},getPrev
iousSourceNode:function(h,i,j){if(j&&!j.call){var k=j;j=function(n){return!n.equals(k);};}var l=!h&&this.getLast&&this.getLast(),m;if(!l){if(this.type==1&&j&&j(this,true)===false)return null;l=this.getPrevious();}while(!l&&(m=(m||this).getParent())){if(j&&j(m,true)===false)return null;l=m.getPrevious();}if(!l)return null;if(j&&j(l)===false)return null;if(i&&l.type!=i)return l.getPreviousSourceNode(false,i,j);return l;},getPrevious:function(h){var i=this.$,j;do{i=i.previousSibling;j=i&&new d.node(i);}while(j&&h&&!h(j))return j;
-},getNext:function(h){var i=this.$,j;do{i=i.nextSibling;j=i&&new d.node(i);}while(j&&h&&!h(j))return j;},getParent:function(){var h=this.$.parentNode;return h&&h.nodeType==1?new d.node(h):null;},getParents:function(h){var i=this,j=[];do j[h?'push':'unshift'](i);while(i=i.getParent())return j;},getCommonAncestor:function(h){var j=this;if(h.equals(j))return j;if(h.contains&&h.contains(j))return h;var i=j.contains?j:j.getParent();do{if(i.contains(h))return i;}while(i=i.getParent())return null;},getPosition:function(h){var i=this.$,j=h.$;if(i.compareDocumentPosition)return i.compareDocumentPosition(j);if(i==j)return 0;if(this.type==1&&h.type==1){if(i.contains){if(i.contains(j))return 16+4;if(j.contains(i))return 8+2;}if('sourceIndex' in i)return i.sourceIndex<0||j.sourceIndex<0?1:i.sourceIndex<j.sourceIndex?4:2;}var k=this.getAddress(),l=h.getAddress(),m=Math.min(k.length,l.length);for(var n=0;n<=m-1;n++){if(k[n]!=l[n]){if(n<m)return k[n]<l[n]?4:2;break;}}return k.length<l.lengt
h?16+4:8+2;},getAscendant:function(h,i){var j=this.$;if(!i)j=j.parentNode;while(j){if(j.nodeName&&j.nodeName.toLowerCase()==h)return new d.node(j);j=j.parentNode;}return null;},hasAscendant:function(h,i){var j=this.$;if(!i)j=j.parentNode;while(j){if(j.nodeName&&j.nodeName.toLowerCase()==h)return true;j=j.parentNode;}return false;},move:function(h,i){h.append(this.remove(),i);},remove:function(h){var i=this.$,j=i.parentNode;if(j){if(h)for(var k;k=i.firstChild;)j.insertBefore(i.removeChild(k),i);j.removeChild(i);}return this;},replace:function(h){this.insertBefore(h);h.remove();},trim:function(){this.ltrim();this.rtrim();},ltrim:function(){var k=this;var h;while(k.getFirst&&(h=k.getFirst())){if(h.type==3){var i=e.ltrim(h.getText()),j=h.getLength();if(!i){h.remove();continue;}else if(i.length<j){h.split(j-i.length);k.$.removeChild(k.$.firstChild);}}break;}},rtrim:function(){var k=this;var h;while(k.getLast&&(h=k.getLast())){if(h.type==3){var i=e.rtrim(h.getText()),j=h.getLength
();if(!i){h.remove();continue;}else if(i.length<j){h.split(i.length);k.$.lastChild.parentNode.removeChild(k.$.lastChild);}}break;}if(!c&&!b.opera){h=k.$.lastChild;if(h&&h.type==1&&h.nodeName.toLowerCase()=='br')h.parentNode.removeChild(h);}},isReadOnly:function(){var h=this;while(h){if(h.type==1){if(h.is('body')||h.getCustomData('_cke_notReadOnly'))break;if(h.getAttribute('contentEditable')=='false')return h;else if(h.getAttribute('contentEditable')=='true')break;}h=h.getParent();}return false;}});d.nodeList=function(h){this.$=h;
-};d.nodeList.prototype={count:function(){return this.$.length;},getItem:function(h){var i=this.$[h];return i?new d.node(i):null;}};d.element=function(h,i){if(typeof h=='string')h=(i?i.$:document).createElement(h);d.domObject.call(this,h);};var h=d.element;h.get=function(i){return i&&(i.$?i:new h(i));};h.prototype=new d.node();h.createFromHtml=function(i,j){var k=new h('div',j);k.setHtml(i);return k.getFirst().remove();};h.setMarker=function(i,j,k,l){var m=j.getCustomData('list_marker_id')||j.setCustomData('list_marker_id',e.getNextNumber()).getCustomData('list_marker_id'),n=j.getCustomData('list_marker_names')||j.setCustomData('list_marker_names',{}).getCustomData('list_marker_names');i[m]=j;n[k]=1;return j.setCustomData(k,l);};h.clearAllMarkers=function(i){for(var j in i)h.clearMarkers(i,i[j],true);};h.clearMarkers=function(i,j,k){var l=j.getCustomData('list_marker_names'),m=j.getCustomData('list_marker_id');for(var n in l)j.removeCustomData(n);j.removeCustomData('list_mark
er_names');if(k){j.removeCustomData('list_marker_id');delete i[m];}};e.extend(h.prototype,{type:1,addClass:function(i){var j=this.$.className;if(j){var k=new RegExp('(?:^|\\s)'+i+'(?:\\s|$)','');if(!k.test(j))j+=' '+i;}this.$.className=j||i;},removeClass:function(i){var j=this.getAttribute('class');if(j){var k=new RegExp('(?:^|\\s+)'+i+'(?=\\s|$)','i');if(k.test(j)){j=j.replace(k,'').replace(/^\s+/,'');if(j)this.setAttribute('class',j);else this.removeAttribute('class');}}},hasClass:function(i){var j=new RegExp('(?:^|\\s+)'+i+'(?=\\s|$)','');return j.test(this.getAttribute('class'));},append:function(i,j){var k=this;if(typeof i=='string')i=k.getDocument().createElement(i);if(j)k.$.insertBefore(i.$,k.$.firstChild);else k.$.appendChild(i.$);return i;},appendHtml:function(i){var k=this;if(!k.$.childNodes.length)k.setHtml(i);else{var j=new h('div',k.getDocument());j.setHtml(i);j.moveChildren(k);}},appendText:function(i){if(this.$.text!=undefined)this.$.text+=i;else this.append(n
ew d.text(i));},appendBogus:function(){var k=this;var i=k.getLast();while(i&&i.type==3&&!e.rtrim(i.getText()))i=i.getPrevious();if(!i||!i.is||!i.is('br')){var j=b.opera?k.getDocument().createText(''):k.getDocument().createElement('br');b.gecko&&j.setAttribute('type','_moz');k.append(j);}},breakParent:function(i){var l=this;var j=new d.range(l.getDocument());j.setStartAfter(l);j.setEndAfter(i);var k=j.extractContents();j.insertNode(l.remove());k.insertAfterNode(l);},contains:c||b.webkit?function(i){var j=this.$;return i.type!=1?j.contains(i.getParent().$):j!=i.$&&j.contains(i.$);
-}:function(i){return!!(this.$.compareDocumentPosition(i.$)&16);},focus:function(){try{this.$.focus();}catch(i){}},getHtml:function(){var i=this.$.innerHTML;return c?i.replace(/<\?[^>]*>/g,''):i;},getOuterHtml:function(){var j=this;if(j.$.outerHTML)return j.$.outerHTML.replace(/<\?[^>]*>/,'');var i=j.$.ownerDocument.createElement('div');i.appendChild(j.$.cloneNode(true));return i.innerHTML;},setHtml:function(i){return this.$.innerHTML=i;},setText:function(i){h.prototype.setText=this.$.innerText!=undefined?function(j){return this.$.innerText=j;}:function(j){return this.$.textContent=j;};return this.setText(i);},getAttribute:(function(){var i=function(j){return this.$.getAttribute(j,2);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){var n=this;switch(j){case 'class':j='className';break;case 'tabindex':var k=i.call(n,j);if(k!==0&&n.$.tabIndex===0)k=null;return k;break;case 'checked':var l=n.$.attributes.getNamedItem(j),m=l.specified?l.nodeValue:n.$.checked;return m?'checke
d':null;case 'hspace':return n.$.hspace;case 'style':return n.$.style.cssText;}return i.call(n,j);};else return i;})(),getChildren:function(){return new d.nodeList(this.$.childNodes);},getComputedStyle:c?function(i){return this.$.currentStyle[e.cssStyleToDomStyle(i)];}:function(i){return this.getWindow().$.getComputedStyle(this.$,'').getPropertyValue(i);},getDtd:function(){var i=f[this.getName()];this.getDtd=function(){return i;};return i;},getElementsByTag:g.prototype.getElementsByTag,getTabIndex:c?function(){var i=this.$.tabIndex;if(i===0&&!f.$tabIndex[this.getName()]&&parseInt(this.getAttribute('tabindex'),10)!==0)i=-1;return i;}:b.webkit?function(){var i=this.$.tabIndex;if(i==undefined){i=parseInt(this.getAttribute('tabindex'),10);if(isNaN(i))i=-1;}return i;}:function(){return this.$.tabIndex;},getText:function(){return this.$.textContent||this.$.innerText||'';},getWindow:function(){return this.getDocument().getWindow();},getId:function(){return this.$.id||null;},getName
Att:function(){return this.$.name||null;},getName:function(){var i=this.$.nodeName.toLowerCase();if(c){var j=this.$.scopeName;if(j!='HTML')i=j.toLowerCase()+':'+i;}return(this.getName=function(){return i;})();},getValue:function(){return this.$.value;},getFirst:function(i){var j=this.$.firstChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getNext(i);return k;},getLast:function(i){var j=this.$.lastChild,k=j&&new d.node(j);if(k&&i&&!i(k))k=k.getPrevious(i);return k;},getStyle:function(i){return this.$.style[e.cssStyleToDomStyle(i)];
-},is:function(){var i=this.getName();for(var j=0;j<arguments.length;j++){if(arguments[j]==i)return true;}return false;},isEditable:function(){var i=this.getName(),j=!f.$nonEditable[i]&&(f[i]||f.span);return j&&j['#'];},isIdentical:function(i){if(this.getName()!=i.getName())return false;var j=this.$.attributes,k=i.$.attributes,l=j.length,m=k.length;if(!c&&l!=m)return false;for(var n=0;n<l;n++){var o=j[n];if((!c||o.specified&&o.nodeName!='_cke_expando')&&o.nodeValue!=i.getAttribute(o.nodeName))return false;}if(c)for(n=0;n<m;n++){o=k[n];if(o.specified&&o.nodeName!='_cke_expando'&&o.nodeValue!=this.getAttribute(o.nodeName))return false;}return true;},isVisible:function(){var i=!!this.$.offsetHeight&&this.getComputedStyle('visibility')!='hidden',j,k;if(i&&(b.webkit||b.opera)){j=this.getWindow();if(!j.equals(a.document.getWindow())&&(k=j.$.frameElement))i=new h(k).isVisible();}return i;},isEmptyInlineRemoveable:function(){if(!f.$removeEmpty[this.getName()])return false;var i=this.
getChildren();for(var j=0,k=i.count();j<k;j++){var l=i.getItem(j);if(l.type==1&&l.getAttribute('_cke_bookmark'))continue;if(l.type==1&&!l.isEmptyInlineRemoveable()||l.type==3&&e.trim(l.getText()))return false;}return true;},hasAttributes:c&&(b.ie7Compat||b.ie6Compat)?function(){var i=this.$.attributes;for(var j=0;j<i.length;j++){var k=i[j];switch(k.nodeName){case 'class':if(this.getAttribute('class'))return true;case '_cke_expando':continue;default:if(k.specified)return true;}}return false;}:function(){var i=this.$.attributes,j=i.length,k={_cke_expando:1,_moz_dirty:1};return j>0&&(j>2||!k[i[0].nodeName]||j==2&&!k[i[1].nodeName]);},hasAttribute:function(i){var j=this.$.attributes.getNamedItem(i);return!!(j&&j.specified);},hide:function(){this.setStyle('display','none');},moveChildren:function(i,j){var k=this.$;i=i.$;if(k==i)return;var l;if(j)while(l=k.lastChild)i.insertBefore(k.removeChild(l),i.firstChild);else while(l=k.firstChild)i.appendChild(k.removeChild(l));},mergeSibli
ngs:(function(){function i(j,k,l){if(k&&k.type==1){var m=[];while(k.getAttribute('_cke_bookmark')||k.isEmptyInlineRemoveable()){m.push(k);k=l?k.getNext():k.getPrevious();if(!k||k.type!=1)return;}if(j.isIdentical(k)){var n=l?j.getLast():j.getFirst();while(m.length)m.shift().move(j,!l);k.moveChildren(j,!l);k.remove();if(n&&n.type==1)n.mergeSiblings();}}};return function(){var j=this;if(!(f.$removeEmpty[j.getName()]||j.is('a')))return;i(j,j.getNext(),true);i(j,j.getPrevious());};})(),show:function(){this.setStyles({display:'',visibility:''});
-},setAttribute:(function(){var i=function(j,k){this.$.setAttribute(j,k);return this;};if(c&&(b.ie7Compat||b.ie6Compat))return function(j,k){var l=this;if(j=='class')l.$.className=k;else if(j=='style')l.$.style.cssText=k;else if(j=='tabindex')l.$.tabIndex=k;else if(j=='checked')l.$.checked=k;else i.apply(l,arguments);return l;};else return i;})(),setAttributes:function(i){for(var j in i)this.setAttribute(j,i[j]);return this;},setValue:function(i){this.$.value=i;return this;},removeAttribute:(function(){var i=function(j){this.$.removeAttribute(j);};if(c&&(b.ie7Compat||b.ie6Compat))return function(j){if(j=='class')j='className';else if(j=='tabindex')j='tabIndex';i.call(this,j);};else return i;})(),removeAttributes:function(i){if(e.isArray(i))for(var j=0;j<i.length;j++)this.removeAttribute(i[j]);else for(var k in i)i.hasOwnProperty(k)&&this.removeAttribute(k);},removeStyle:function(i){var j=this;j.setStyle(i,'');if(j.$.style.removeAttribute)j.$.style.removeAttribute(e.cssStyleTo
DomStyle(i));if(!j.$.style.cssText)j.removeAttribute('style');},setStyle:function(i,j){this.$.style[e.cssStyleToDomStyle(i)]=j;return this;},setStyles:function(i){for(var j in i)this.setStyle(j,i[j]);return this;},setOpacity:function(i){if(c){i=Math.round(i*100);this.setStyle('filter',i>=100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+i+')');}else this.setStyle('opacity',i);},unselectable:b.gecko?function(){this.$.style.MozUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:b.webkit?function(){this.$.style.KhtmlUserSelect='none';this.on('dragstart',function(i){i.data.preventDefault();});}:function(){if(c||b.opera){var i=this.$,j,k=0;i.unselectable='on';while(j=i.all[k++])switch(j.tagName.toLowerCase()){case 'iframe':case 'textarea':case 'input':case 'select':break;default:j.unselectable='on';}}},getPositionedAncestor:function(){var i=this;while(i.getName()!='html'){if(i.getComputedStyle('position')!='static')return i;i=i.getParent();}retu
rn null;},getDocumentPosition:function(i){var D=this;var j=0,k=0,l=D.getDocument().getBody(),m=D.getDocument().$.compatMode=='BackCompat',n=D.getDocument();if(document.documentElement.getBoundingClientRect){var o=D.$.getBoundingClientRect(),p=n.$,q=p.documentElement,r=q.clientTop||l.$.clientTop||0,s=q.clientLeft||l.$.clientLeft||0,t=true;if(c){var u=n.getDocumentElement().contains(D),v=n.getBody().contains(D);t=m&&v||!m&&u;}if(t){j=o.left+(!m&&q.scrollLeft||l.$.scrollLeft);j-=s;k=o.top+(!m&&q.scrollTop||l.$.scrollTop);
-k-=r;}}else{var w=D,x=null,y;while(w&&!(w.getName()=='body'||w.getName()=='html')){j+=w.$.offsetLeft-w.$.scrollLeft;k+=w.$.offsetTop-w.$.scrollTop;if(!w.equals(D)){j+=w.$.clientLeft||0;k+=w.$.clientTop||0;}var z=x;while(z&&!z.equals(w)){j-=z.$.scrollLeft;k-=z.$.scrollTop;z=z.getParent();}x=w;w=(y=w.$.offsetParent)?new h(y):null;}}if(i){var A=D.getWindow(),B=i.getWindow();if(!A.equals(B)&&A.$.frameElement){var C=new h(A.$.frameElement).getDocumentPosition(i);j+=C.x;k+=C.y;}}if(!document.documentElement.getBoundingClientRect)if(b.gecko&&!m){j+=D.$.clientLeft?1:0;k+=D.$.clientTop?1:0;}return{x:j,y:k};},scrollIntoView:function(i){var o=this;var j=o.getWindow(),k=j.getViewPaneSize().height,l=k*-1;if(i)l+=k;else{l+=o.$.offsetHeight||0;l+=parseInt(o.getComputedStyle('marginBottom')||0,10)||0;}var m=o.getDocumentPosition();l+=m.y;l=l<0?0:l;var n=j.getScrollPosition().y;if(l>n||l<n-k)j.$.scrollTo(0,l);},setState:function(i){var j=this;switch(i){case 1:j.addClass('cke_on');j.removeCla
ss('cke_off');j.removeClass('cke_disabled');break;case 0:j.addClass('cke_disabled');j.removeClass('cke_off');j.removeClass('cke_on');break;default:j.addClass('cke_off');j.removeClass('cke_on');j.removeClass('cke_disabled');break;}},getFrameDocument:function(){var i=this.$;try{i.contentWindow.document;}catch(j){i.src=i.src;if(c&&b.version<7)window.showModalDialog('javascript:document.write("<script>window.setTimeout(function(){window.close();},50);</script>")');}return i&&new g(i.contentWindow.document);},copyAttributes:function(i,j){var p=this;var k=p.$.attributes;j=j||{};for(var l=0;l<k.length;l++){var m=k[l],n=m.nodeName.toLowerCase(),o;if(n in j)continue;if(n=='checked'&&(o=p.getAttribute(n)))i.setAttribute(n,o);else if(m.specified||c&&m.nodeValue&&n=='value'){o=p.getAttribute(n);if(o===null)o=m.nodeValue;i.setAttribute(n,o);}}if(p.$.style.cssText!=='')i.$.style.cssText=p.$.style.cssText;},renameNode:function(i){var l=this;if(l.getName()==i)return;var j=l.getDocument(),k=
new h(i,j);l.copyAttributes(k);l.moveChildren(k);l.getParent()&&l.$.parentNode.replaceChild(k.$,l.$);k.$._cke_expando=l.$._cke_expando;l.$=k.$;},getChild:function(i){var j=this.$;if(!i.slice)j=j.childNodes[i];else while(i.length>0&&j)j=j.childNodes[i.shift()];return j?new d.node(j):null;},getChildCount:function(){return this.$.childNodes.length;},disableContextMenu:function(){this.on('contextmenu',function(i){if(!i.data.getTarget().hasClass('cke_enable_context_menu'))i.data.preventDefault();});},setSize:(function(){var i={width:['border-left-width','border-right-width','padding-left','padding-right'],height:['border-top-width','border-bottom-width','padding-top','padding-bottom']};
-return function(j,k,l){if(typeof k=='number'){if(l&&!(c&&b.quirks)){var m=0;for(var n=0,o=i[j].length;n<o;n++)m+=parseInt(this.getComputedStyle(i[j][n])||0,10);k-=m;}this.setStyle(j,k+'px');}};})()});a.command=function(i,j){this.uiItems=[];this.exec=function(k){if(this.state==0)return false;if(this.editorFocus)i.focus();return j.exec.call(this,i,k)!==false;};e.extend(this,j,{modes:{wysiwyg:1},editorFocus:true,state:2});a.event.call(this);};a.command.prototype={enable:function(){var i=this;if(i.state==0)i.setState(!i.preserveState||typeof i.previousState=='undefined'?2:i.previousState);},disable:function(){this.setState(0);},setState:function(i){var j=this;if(j.state==i)return false;j.previousState=j.state;j.state=i;j.fire('state');return true;},toggleState:function(){var i=this;if(i.state==2)i.setState(1);else if(i.state==1)i.setState(2);}};a.event.implementOn(a.command.prototype,true);a.ENTER_P=1;a.ENTER_BR=2;a.ENTER_DIV=3;a.config={customConfig:'config.js',autoUpdateElemen
t:true,baseHref:'',contentsCss:a.basePath+'contents.css',contentsLangDirection:'ui',contentsLanguage:'',language:'',defaultLanguage:'en',enterMode:1,forceEnterMode:false,shiftEnterMode:2,corePlugins:'',docType:'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',bodyId:'',bodyClass:'',fullPage:false,height:200,plugins:'about,a11yhelp,basicstyles,bidi,blockquote,button,clipboard,colorbutton,colordialog,contextmenu,dialogadvtab,div,elementspath,enterkey,entities,filebrowser,find,flash,font,format,forms,horizontalrule,htmldataprocessor,image,indent,justify,keystrokes,link,list,liststyle,maximize,newpage,pagebreak,pastefromword,pastetext,popup,preview,print,removeformat,resize,save,scayt,smiley,showblocks,showborders,sourcearea,stylescombo,table,tabletools,specialchar,tab,templates,toolbar,undo,wysiwygarea,wsc',extraPlugins:'',removePlugins:'',protectedSource:[],tabIndex:0,theme:'default',skin:'kama',width:''
,baseFloatZIndex:10000};var i=a.config;a.focusManager=function(j){if(j.focusManager)return j.focusManager;this.hasFocus=false;this._={editor:j};return this;};a.focusManager.prototype={focus:function(){var k=this;if(k._.timer)clearTimeout(k._.timer);if(!k.hasFocus){if(a.currentInstance)a.currentInstance.focusManager.forceBlur();var j=k._.editor;j.container.getChild(1).addClass('cke_focus');k.hasFocus=true;j.fire('focus');}},blur:function(){var j=this;if(j._.timer)clearTimeout(j._.timer);j._.timer=setTimeout(function(){delete j._.timer;
-j.forceBlur();},100);},forceBlur:function(){if(this.hasFocus){var j=this._.editor;j.container.getChild(1).removeClass('cke_focus');this.hasFocus=false;j.fire('blur');}}};(function(){var j={};a.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,'en-au':1,'en-ca':1,'en-gb':1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,'fr-ca':1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,km:1,ko:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,'pt-br':1,pt:1,ro:1,ru:1,sk:1,sl:1,'sr-latn':1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,'zh-cn':1,zh:1},load:function(k,l,m){if(!k||!a.lang.languages[k])k=this.detect(l,k);if(!this[k])a.scriptLoader.load(a.getUrl('lang/'+k+'.js'),function(){m(k,this[k]);},this);else m(k,this[k]);},detect:function(k,l){var m=this.languages;l=l||navigator.userLanguage||navigator.language;var n=l.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),o=n[1],p=n[2];if(m[o+'-'+p])o=o+'-'+p;else if(!m[o])o=null;a.lang.detect=o?function(){return o;}:function(q){return q;};return o|
|k;}};})();a.scriptLoader=(function(){var j={},k={};return{load:function(l,m,n,o,p){var q=typeof l=='string';if(q)l=[l];if(!n)n=a;var r=l.length,s=[],t=[],u=function(z){if(m)if(q)m.call(n,z);else m.call(n,s,t);};if(r===0){u(true);return;}var v=function(z,A){(A?s:t).push(z);if(--r<=0){p&&a.document.getDocumentElement().removeStyle('cursor');u(A);}},w=function(z,A){j[z]=1;var B=k[z];delete k[z];for(var C=0;C<B.length;C++)B[C](z,A);},x=function(z){if(o!==true&&j[z]){v(z,true);return;}var A=k[z]||(k[z]=[]);A.push(v);if(A.length>1)return;var B=new h('script');B.setAttributes({type:'text/javascript',src:z});if(m)if(c)B.$.onreadystatechange=function(){if(B.$.readyState=='loaded'||B.$.readyState=='complete'){B.$.onreadystatechange=null;w(z,true);}};else{B.$.onload=function(){setTimeout(function(){w(z,true);},0);};B.$.onerror=function(){w(z,false);};}B.appendTo(a.document.getHead());};p&&a.document.getDocumentElement().setStyle('cursor','wait');for(var y=0;y<r;y++)x(l[y]);},loadCode:
function(l){var m=new h('script');m.setAttribute('type','text/javascript');m.appendText(l);m.appendTo(a.document.getHead());}};})();a.resourceManager=function(j,k){var l=this;l.basePath=j;l.fileName=k;l.registered={};l.loaded={};l.externals={};l._={waitingList:{}};};a.resourceManager.prototype={add:function(j,k){if(this.registered[j])throw '[CKEDITOR.resourceManager.add] The resource name "'+j+'" is already registered.';a.fire(j+e.capitalize(this.fileName)+'Ready',this.registered[j]=k||{});},get:function(j){return this.registered[j]||null;
-},getPath:function(j){var k=this.externals[j];return a.getUrl(k&&k.dir||this.basePath+j+'/');},getFilePath:function(j){var k=this.externals[j];return a.getUrl(this.getPath(j)+(k&&typeof k.file=='string'?k.file:this.fileName+'.js'));},addExternal:function(j,k,l){j=j.split(',');for(var m=0;m<j.length;m++){var n=j[m];this.externals[n]={dir:k,file:l};}},load:function(j,k,l){if(!e.isArray(j))j=j?[j]:[];var m=this.loaded,n=this.registered,o=[],p={},q={};for(var r=0;r<j.length;r++){var s=j[r];if(!s)continue;if(!m[s]&&!n[s]){var t=this.getFilePath(s);o.push(t);if(!(t in p))p[t]=[];p[t].push(s);}else q[s]=this.get(s);}a.scriptLoader.load(o,function(u,v){if(v.length)throw '[CKEDITOR.resourceManager.load] Resource name "'+p[v[0]].join(',')+'" was not found at "'+v[0]+'".';for(var w=0;w<u.length;w++){var x=p[u[w]];for(var y=0;y<x.length;y++){var z=x[y];q[z]=this.get(z);m[z]=1;}}k.call(l,q);},this);}};a.plugins=new a.resourceManager('plugins/','plugin');var j=a.plugins;j.load=e.override(
j.load,function(k){return function(l,m,n){var o={},p=function(q){k.call(this,q,function(r){e.extend(o,r);var s=[];for(var t in r){var u=r[t],v=u&&u.requires;if(v)for(var w=0;w<v.length;w++){if(!o[v[w]])s.push(v[w]);}}if(s.length)p.call(this,s);else{for(t in o){u=o[t];if(u.onLoad&&!u.onLoad._called){u.onLoad();u.onLoad._called=1;}}if(m)m.call(n||window,o);}},this);};p.call(this,l);};});j.setLang=function(k,l,m){var n=this.get(k),o=n.lang||(n.lang={});o[l]=m;};(function(){var k={},l=function(m,n){var o=function(){p.removeAllListeners();k[m]=1;n();},p=new h('img');p.on('load',o);p.on('error',o);p.setAttribute('src',m);};a.imageCacher={load:function(m,n){var o=m.length,p=function(){if(--o===0)n();};for(var q=0;q<m.length;q++){var r=m[q];if(k[r])p();else l(r,p);}}};})();a.skins=(function(){var k={},l={},m={},n=function(o,p,q,r){var s=k[p];if(!o.skin){o.skin=s;if(s.init)s.init(o);}var t=function(D){for(var E=0;E<D.length;E++)D[E]=a.getUrl(m[p]+D[E]);};function u(D,E){return D.repl
ace(/url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g,function(F,G,H,I){if(/^\/|^\w?:/.test(H))return F;else return 'url('+E+G+H+I+')';});};if(!l[p]){var v=s.preload;if(v&&v.length>0){t(v);a.imageCacher.load(v,function(){l[p]=1;n(o,p,q,r);});return;}l[p]=1;}q=s[q];var w=!q||!!q._isLoaded;if(w)r&&r();else{var x=q._pending||(q._pending=[]);x.push(r);if(x.length>1)return;var y=!q.css||!q.css.length,z=!q.js||!q.js.length,A=function(){if(y&&z){q._isLoaded=1;for(var D=0;D<x.length;D++){if(x[D])x[D]();}}};if(!y){var B=q.css;if(e.isArray(B)){t(B);
-for(var C=0;C<B.length;C++)a.document.appendStyleSheet(B[C]);}else{B=u(B,a.getUrl(m[p]));a.document.appendStyleText(B);}q.css=B;y=1;}if(!z){t(q.js);a.scriptLoader.load(q.js,function(){z=1;A();});}A();}};return{add:function(o,p){k[o]=p;p.skinPath=m[o]||(m[o]=a.getUrl('skins/'+o+'/'));},load:function(o,p,q){var r=o.skinName,s=o.skinPath;if(k[r])n(o,r,p,q);else{m[r]=s;a.scriptLoader.load(a.getUrl(s+'skin.js'),function(){n(o,r,p,q);});}}};})();a.themes=new a.resourceManager('themes/','theme');a.ui=function(k){if(k.ui)return k.ui;this._={handlers:{},items:{},editor:k};return this;};var k=a.ui;k.prototype={add:function(l,m,n){this._.items[l]={type:m,command:n.command||null,args:Array.prototype.slice.call(arguments,2)};},create:function(l){var q=this;var m=q._.items[l],n=m&&q._.handlers[m.type],o=m&&m.command&&q._.editor.getCommand(m.command),p=n&&n.create.apply(q,m.args);if(o)o.uiItems.push(p);return p;},addHandler:function(l,m){this._.handlers[l]=m;}};(function(){var l=0,m=functi
on(){var x='editor'+ ++l;return a.instances&&a.instances[x]?m():x;},n={},o=function(x){var y=x.config.customConfig;if(!y)return false;y=a.getUrl(y);var z=n[y]||(n[y]={});if(z.fn){z.fn.call(x,x.config);if(a.getUrl(x.config.customConfig)==y||!o(x))x.fireOnce('customConfigLoaded');}else a.scriptLoader.load(y,function(){if(a.editorConfig)z.fn=a.editorConfig;else z.fn=function(){};o(x);});return true;},p=function(x,y){x.on('customConfigLoaded',function(){if(y){if(y.on)for(var z in y.on)x.on(z,y.on[z]);e.extend(x.config,y,true);delete x.config.on;}q(x);});if(y&&y.customConfig!=undefined)x.config.customConfig=y.customConfig;if(!o(x))x.fireOnce('customConfigLoaded');},q=function(x){var y=x.config.skin.split(','),z=y[0],A=a.getUrl(y[1]||'skins/'+z+'/');x.skinName=z;x.skinPath=A;x.skinClass='cke_skin_'+z;x.tabIndex=x.config.tabIndex||x.element.getAttribute('tabindex')||0;x.fireOnce('configLoaded');t(x);},r=function(x){a.lang.load(x.config.language,x.config.defaultLanguage,function(y,z
){x.langCode=y;x.lang=e.prototypedCopy(z);if(b.gecko&&b.version<10900&&x.lang.dir=='rtl')x.lang.dir='ltr';var A=x.config;A.contentsLangDirection=='ui'&&(A.contentsLangDirection=x.lang.dir);s(x);});},s=function(x){var y=x.config,z=y.plugins,A=y.extraPlugins,B=y.removePlugins;if(A){var C=new RegExp('(?:^|,)(?:'+A.replace(/\s*,\s*/g,'|')+')(?=,|$)','g');z=z.replace(C,'');z+=','+A;}if(B){C=new RegExp('(?:^|,)(?:'+B.replace(/\s*,\s*/g,'|')+')(?=,|$)','g');z=z.replace(C,'');}j.load(z.split(','),function(D){var E=[],F=[],G=[];
-x.plugins=D;for(var H in D){var I=D[H],J=I.lang,K=j.getPath(H),L=null;I.path=K;if(J){L=e.indexOf(J,x.langCode)>=0?x.langCode:J[0];if(!I.lang[L])G.push(a.getUrl(K+'lang/'+L+'.js'));else{e.extend(x.lang,I.lang[L]);L=null;}}F.push(L);E.push(I);}a.scriptLoader.load(G,function(){var M=['beforeInit','init','afterInit'];for(var N=0;N<M.length;N++)for(var O=0;O<E.length;O++){var P=E[O];if(N===0&&F[O]&&P.lang)e.extend(x.lang,P.lang[F[O]]);if(P[M[N]])P[M[N]](x);}x.fire('pluginsLoaded');u(x);});});},t=function(x){a.skins.load(x,'editor',function(){r(x);});},u=function(x){var y=x.config.theme;a.themes.load(y,function(){var z=x.theme=a.themes.get(y);z.path=a.themes.getPath(y);z.build(x);if(x.config.autoUpdateElement)v(x);});},v=function(x){var y=x.element;if(x.elementMode==1&&y.is('textarea')){var z=y.$.form&&new h(y.$.form);if(z){function A(){x.updateElement();};z.on('submit',A);if(!z.$.submit.nodeName)z.$.submit=e.override(z.$.submit,function(B){return function(){x.updateElement();if(B
.apply)B.apply(this,arguments);else B();};});x.on('destroy',function(){z.removeListener('submit',A);});}}};function w(){var x,y=this._.commands,z=this.mode;for(var A in y){x=y[A];x[x.startDisabled?'disable':x.modes[z]?'enable':'disable']();}};a.editor.prototype._init=function(){var z=this;var x=h.get(z._.element),y=z._.instanceConfig;delete z._.element;delete z._.instanceConfig;z._.commands={};z._.styles=[];z.element=x;z.name=x&&z.elementMode==1&&(x.getId()||x.getNameAtt())||m();if(z.name in a.instances)throw '[CKEDITOR.editor] The instance "'+z.name+'" already exists.';z.config=e.prototypedCopy(i);z.ui=new k(z);z.focusManager=new a.focusManager(z);a.fire('instanceCreated',null,z);z.on('mode',w,null,null,1);p(z,y);};})();e.extend(a.editor.prototype,{addCommand:function(l,m){return this._.commands[l]=new a.command(this,m);},addCss:function(l){this._.styles.push(l);},destroy:function(l){var r=this;if(!l)r.updateElement();if(r.mode)r._.modes[r.mode].unload(r.getThemeSpace('cont
ents'));r.theme.destroy(r);var m,n=0,o,p,q;if(r.toolbox){m=r.toolbox.toolbars;for(;n<m.length;n++){p=m[n].items;for(o=0;o<p.length;o++){q=p[o];if(q.clickFn)e.removeFunction(q.clickFn);if(q.keyDownFn)e.removeFunction(q.keyDownFn);if(q.index)k.button._.instances[q.index]=null;}}}if(r.contextMenu)e.removeFunction(r.contextMenu._.functionId);if(r._.filebrowserFn)e.removeFunction(r._.filebrowserFn);r.fire('destroy');a.remove(r);a.fire('instanceDestroyed',null,r);},execCommand:function(l,m){var n=this.getCommand(l),o={name:l,commandData:m,command:n};
-if(n&&n.state!=0)if(this.fire('beforeCommandExec',o)!==true){o.returnValue=n.exec(o.commandData);if(!n.async&&this.fire('afterCommandExec',o)!==true)return o.returnValue;}return false;},getCommand:function(l){return this._.commands[l];},getData:function(){var n=this;n.fire('beforeGetData');var l=n._.data;if(typeof l!='string'){var m=n.element;if(m&&n.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml();else l='';}l={dataValue:l};n.fire('getData',l);return l.dataValue;},getSnapshot:function(){var l=this.fire('getSnapshot');if(typeof l!='string'){var m=this.element;if(m&&this.elementMode==1)l=m.is('textarea')?m.getValue():m.getHtml();}return l;},loadSnapshot:function(l){this.fire('loadSnapshot',l);},setData:function(l,m){if(m)this.on('dataReady',function(o){o.removeListener();m.call(o.editor);});var n={dataValue:l};this.fire('setData',n);this._.data=n.dataValue;this.fire('afterSetData',n);},insertHtml:function(l){this.fire('insertHtml',l);},insertElement:function(l){this
.fire('insertElement',l);},checkDirty:function(){return this.mayBeDirty&&this._.previousValue!==this.getSnapshot();},resetDirty:function(){if(this.mayBeDirty)this._.previousValue=this.getSnapshot();},updateElement:function(){var n=this;var l=n.element;if(l&&n.elementMode==1){var m=n.getData();if(n.config.htmlEncodeOutput)m=e.htmlEncode(m);if(l.is('textarea'))l.setValue(m);else l.setHtml(m);}}});a.on('loaded',function(){var l=a.editor._pending;if(l){delete a.editor._pending;for(var m=0;m<l.length;m++)l[m]._init();}});a.htmlParser=function(){this._={htmlPartsRegex:new RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s>]+)\\s*((?:(?:[^\"'>]+)|(?:\"[^\"]*\")|(?:'[^']*'))*)\\/?>))",'g')};};(function(){var l=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,m={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};a.htmlParser.prototype={onTagOpen:function(){},onTagC
lose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(n){var A=this;var o,p,q=0,r;while(o=A._.htmlPartsRegex.exec(n)){var s=o.index;if(s>q){var t=n.substring(q,s);if(r)r.push(t);else A.onText(t);}q=A._.htmlPartsRegex.lastIndex;if(p=o[1]){p=p.toLowerCase();if(r&&f.$cdata[p]){A.onCDATA(r.join(''));r=null;}if(!r){A.onTagClose(p);continue;}}if(r){r.push(o[0]);continue;}if(p=o[3]){p=p.toLowerCase();if(/="/.test(p))continue;var u={},v,w=o[4],x=!!(w&&w.charAt(w.length-1)=='/');if(w)while(v=l.exec(w)){var y=v[1].toLowerCase(),z=v[2]||v[3]||v[4]||'';
-if(!z&&m[y])u[y]=y;else u[y]=z;}A.onTagOpen(p,u,x);if(!r&&f.$cdata[p])r=[];continue;}if(p=o[2])A.onComment(p);}if(n.length>q)A.onText(n.substring(q,n.length));}};})();a.htmlParser.comment=function(l){this.value=l;this._={isBlockLike:false};};a.htmlParser.comment.prototype={type:8,writeHtml:function(l,m){var n=this.value;if(m){if(!(n=m.onComment(n,this)))return;if(typeof n!='string'){n.parent=this.parent;n.writeHtml(l,m);return;}}l.comment(n);}};(function(){var l=/[\t\r\n ]{2,}|[\t\r\n]/g;a.htmlParser.text=function(m){this.value=m;this._={isBlockLike:false};};a.htmlParser.text.prototype={type:3,writeHtml:function(m,n){var o=this.value;if(n&&!(o=n.onText(o,this)))return;m.text(o);}};})();(function(){a.htmlParser.cdata=function(l){this.value=l;};a.htmlParser.cdata.prototype={type:3,writeHtml:function(l){l.write(this.value);}};})();a.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false};};(function(){var l={colgroup:1,d
d:1,dt:1,li:1,option:1,p:1,td:1,tfoot:1,th:1,thead:1,tr:1},m=e.extend({table:1,ul:1,ol:1,dl:1},f.table,f.ul,f.ol,f.dl),n=f.$list,o=f.$listItem;a.htmlParser.fragment.fromHtml=function(p,q){var r=new a.htmlParser(),s=[],t=new a.htmlParser.fragment(),u=[],v=[],w=t,x=false,y;function z(E){var F;if(u.length>0)for(var G=0;G<u.length;G++){var H=u[G],I=H.name,J=f[I],K=w.name&&f[w.name];if((!K||K[I])&&(!E||!J||J[E]||!f[E])){if(!F){A();F=1;}H=H.clone();H.parent=w;w=H;u.splice(G,1);G--;}}};function A(E){while(v.length-(E||0)>0)w.add(v.shift());};function B(E,F,G){F=F||w||t;if(q&&!F.type){var H,I;if(E.attributes&&(I=E.attributes._cke_real_element_type))H=I;else H=E.name;if(H&&!(H in f.$body)&&!(H in f.$nonBodyContent)){var J=w;w=F;r.onTagOpen(q,{});F=w;if(G)w=J;}}if(E._.isBlockLike&&E.name!='pre'){var K=E.children.length,L=E.children[K-1],M;if(L&&L.type==3)if(!(M=e.rtrim(L.value)))E.children.length=K-1;else L.value=M;}F.add(E);if(E.returnPoint){w=E.returnPoint;delete E.returnPoint;}};r.
onTagOpen=function(E,F,G){var H=new a.htmlParser.element(E,F);if(H.isUnknown&&G)H.isEmpty=true;if(f.$removeEmpty[E]){u.push(H);return;}else if(E=='pre')x=true;else if(E=='br'&&x){w.add(new a.htmlParser.text('\n'));return;}if(E=='br'){v.push(H);return;}var I=w.name,J=I&&(f[I]||(w._.isBlockLike?f.div:f.span));if(J&&!H.isUnknown&&!w.isUnknown&&!J[E]){var K=false,L;if(E in n&&I in n){var M=w.children,N=M[M.length-1];if(!(N&&N.name in o))B(N=new a.htmlParser.element('li'),w);y=w,L=N;}else if(E==I)B(w,w.parent);else{if(m[I]){if(!y)y=w;
-}else{B(w,w.parent,true);if(!l[I])u.unshift(w);}K=true;}if(L)w=L;else w=w.returnPoint||w.parent;if(K){r.onTagOpen.apply(this,arguments);return;}}z(E);A();H.parent=w;H.returnPoint=y;y=0;if(H.isEmpty)B(H);else w=H;};r.onTagClose=function(E){for(var F=u.length-1;F>=0;F--){if(E==u[F].name){u.splice(F,1);return;}}var G=[],H=[],I=w;while(I.type&&I.name!=E){if(!I._.isBlockLike)H.unshift(I);G.push(I);I=I.parent;}if(I.type){for(F=0;F<G.length;F++){var J=G[F];B(J,J.parent);}w=I;if(w.name=='pre')x=false;if(I._.isBlockLike)A();B(I,I.parent);if(I==w)w=w.parent;u=u.concat(H);}if(E=='body')q=false;};r.onText=function(E){if(!w._.hasInlineStarted&&!x){E=e.ltrim(E);if(E.length===0)return;}A();z();if(q&&(!w.type||w.name=='body')&&e.trim(E))this.onTagOpen(q,{});if(!x)E=E.replace(/[\t\r\n ]{2,}|[\t\r\n]/g,' ');w.add(new a.htmlParser.text(E));};r.onCDATA=function(E){w.add(new a.htmlParser.cdata(E));};r.onComment=function(E){w.add(new a.htmlParser.comment(E));};r.parse(p);A(!c&&1);while(w.type){va
r C=w.parent,D=w;if(q&&(!C.type||C.name=='body')&&!f.$body[D.name]){w=C;r.onTagOpen(q,{});C=w;}C.add(D);w=C;}return t;};a.htmlParser.fragment.prototype={add:function(p){var s=this;var q=s.children.length,r=q>0&&s.children[q-1]||null;if(r){if(p._.isBlockLike&&r.type==3){r.value=e.rtrim(r.value);if(r.value.length===0){s.children.pop();s.add(p);return;}}r.next=p;}p.previous=r;p.parent=s;s.children.push(p);s._.hasInlineStarted=p.type==3||p.type==1&&!p._.isBlockLike;},writeHtml:function(p,q){var r;this.filterChildren=function(){var s=new a.htmlParser.basicWriter();this.writeChildrenHtml.call(this,s,q,true);var t=s.getHtml();this.children=new a.htmlParser.fragment.fromHtml(t).children;r=1;};!this.name&&q&&q.onFragment(this);this.writeChildrenHtml(p,r?null:q);},writeChildrenHtml:function(p,q){for(var r=0;r<this.children.length;r++)this.children[r].writeHtml(p,q);}};})();a.htmlParser.element=function(l,m){var r=this;r.name=l;r.attributes=m||(m={});r.children=[];var n=m._cke_real_ele
ment_type||l,o=f,p=!!(o.$nonBodyContent[n]||o.$block[n]||o.$listItem[n]||o.$tableContent[n]||o.$nonEditable[n]||n=='br'),q=!!o.$empty[l];r.isEmpty=q;r.isUnknown=!o[l];r._={isBlockLike:p,hasInlineStarted:q||!p};};(function(){var l=function(m,n){m=m[0];n=n[0];return m<n?-1:m>n?1:0;};a.htmlParser.element.prototype={type:1,add:a.htmlParser.fragment.prototype.add,clone:function(){return new a.htmlParser.element(this.name,this.attributes);},writeHtml:function(m,n){var o=this.attributes,p=this,q=p.name,r,s,t,u;p.filterChildren=function(){if(!u){var z=new a.htmlParser.basicWriter();
-a.htmlParser.fragment.prototype.writeChildrenHtml.call(p,z,n);p.children=new a.htmlParser.fragment.fromHtml(z.getHtml()).children;u=1;}};if(n){for(;;){if(!(q=n.onElementName(q)))return;p.name=q;if(!(p=n.onElement(p)))return;p.parent=this.parent;if(p.name==q)break;if(p.type!=1){p.writeHtml(m,n);return;}q=p.name;if(!q){this.writeChildrenHtml.call(p,m,u?null:n);return;}}o=p.attributes;}m.openTag(q,o);var v=[];for(var w=0;w<2;w++)for(r in o){s=r;t=o[r];if(w==1)v.push([r,t]);else if(n){for(;;){if(!(s=n.onAttributeName(r))){delete o[r];break;}else if(s!=r){delete o[r];r=s;continue;}else break;}if(s)if((t=n.onAttribute(p,s,t))===false)delete o[s];else o[s]=t;}}if(m.sortAttributes)v.sort(l);var x=v.length;for(w=0;w<x;w++){var y=v[w];m.attribute(y[0],y[1]);}m.openTagClose(q,p.isEmpty);if(!p.isEmpty){this.writeChildrenHtml.call(p,m,u?null:n);m.closeTag(q);}},writeChildrenHtml:function(m,n){a.htmlParser.fragment.prototype.writeChildrenHtml.apply(this,arguments);}};})();(function(){a.ht
mlParser.filter=e.createClass({$:function(q){this._={elementNames:[],attributeNames:[],elements:{$length:0},attributes:{$length:0}};if(q)this.addRules(q,10);},proto:{addRules:function(q,r){var s=this;if(typeof r!='number')r=10;m(s._.elementNames,q.elementNames,r);m(s._.attributeNames,q.attributeNames,r);n(s._.elements,q.elements,r);n(s._.attributes,q.attributes,r);s._.text=o(s._.text,q.text,r)||s._.text;s._.comment=o(s._.comment,q.comment,r)||s._.comment;s._.root=o(s._.root,q.root,r)||s._.root;},onElementName:function(q){return l(q,this._.elementNames);},onAttributeName:function(q){return l(q,this._.attributeNames);},onText:function(q){var r=this._.text;return r?r.filter(q):q;},onComment:function(q,r){var s=this._.comment;return s?s.filter(q,r):q;},onFragment:function(q){var r=this._.root;return r?r.filter(q):q;},onElement:function(q){var v=this;var r=[v._.elements['^'],v._.elements[q.name],v._.elements.$],s,t;for(var u=0;u<3;u++){s=r[u];if(s){t=s.filter(q,v);if(t===false)re
turn null;if(t&&t!=q)return v.onNode(t);if(q.parent&&!q.name)break;}}return q;},onNode:function(q){var r=q.type;return r==1?this.onElement(q):r==3?new a.htmlParser.text(this.onText(q.value)):r==8?new a.htmlParser.comment(this.onComment(q.value)):null;},onAttribute:function(q,r,s){var t=this._.attributes[r];if(t){var u=t.filter(s,q,this);if(u===false)return false;if(typeof u!='undefined')return u;}return s;}}});function l(q,r){for(var s=0;q&&s<r.length;s++){var t=r[s];q=q.replace(t[0],t[1]);}return q;};function m(q,r,s){if(typeof r=='function')r=[r];
-var t,u,v=q.length,w=r&&r.length;if(w){for(t=0;t<v&&q[t].pri<s;t++){}for(u=w-1;u>=0;u--){var x=r[u];if(x){x.pri=s;q.splice(t,0,x);}}}};function n(q,r,s){if(r)for(var t in r){var u=q[t];q[t]=o(u,r[t],s);if(!u)q.$length++;}};function o(q,r,s){if(r){r.pri=s;if(q){if(!q.splice){if(q.pri>s)q=[r,q];else q=[q,r];q.filter=p;}else m(q,r,s);return q;}else{r.filter=r;return r;}}};function p(q){var r=q.type||q instanceof a.htmlParser.fragment;for(var s=0;s<this.length;s++){if(r)var t=q.type,u=q.name;var v=this[s],w=v.apply(window,arguments);if(w===false)return w;if(r){if(w&&(w.name!=u||w.type!=t))return w;}else if(typeof w!='string')return w;w!=undefined&&(q=w);}return q;};})();a.htmlParser.basicWriter=e.createClass({$:function(){this._={output:[]};},proto:{openTag:function(l,m){this._.output.push('<',l);},openTagClose:function(l,m){if(m)this._.output.push(' />');else this._.output.push('>');},attribute:function(l,m){if(typeof m=='string')m=e.htmlEncodeAttr(m);this._.output.push(' ',l,'
="',m,'"');},closeTag:function(l){this._.output.push('</',l,'>');},text:function(l){this._.output.push(l);},comment:function(l){this._.output.push('<!--',l,'-->');},write:function(l){this._.output.push(l);},reset:function(){this._.output=[];this._.indent=false;},getHtml:function(l){var m=this._.output.join('');if(l)this.reset();return m;}}});delete a.loadFullCore;a.instances={};a.document=new g(document);a.add=function(l){a.instances[l.name]=l;l.on('focus',function(){if(a.currentInstance!=l){a.currentInstance=l;a.fire('currentInstance');}});l.on('blur',function(){if(a.currentInstance==l){a.currentInstance=null;a.fire('currentInstance');}});};a.remove=function(l){delete a.instances[l.name];};a.on('instanceDestroyed',function(){if(e.isEmpty(this.instances))a.fire('reset');});a.TRISTATE_ON=1;a.TRISTATE_OFF=2;a.TRISTATE_DISABLED=0;d.comment=e.createClass({base:d.node,$:function(l,m){if(typeof l=='string')l=(m?m.$:document).createComment(l);this.base(l);},proto:{type:8,getOuterHt
ml:function(){return '<!--'+this.$.nodeValue+'-->';}}});(function(){var l={address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,dd:1},m={body:1,div:1,table:1,tbody:1,tr:1,td:1,th:1,caption:1,form:1},n=function(o){var p=o.getChildren();for(var q=0,r=p.count();q<r;q++){var s=p.getItem(q);if(s.type==1&&f.$block[s.getName()])return true;}return false;};d.elementPath=function(o){var u=this;var p=null,q=null,r=[],s=o;while(s){if(s.type==1){if(!u.lastElement)u.lastElement=s;var t=s.getName();if(c&&s.$.scopeName!='HTML')t=s.$.scopeName.toLowerCase()+':'+t;
-if(!q){if(!p&&l[t])p=s;if(m[t])if(!p&&t=='div'&&!n(s))p=s;else q=s;}r.push(s);if(t=='body')break;}s=s.getParent();}u.block=p;u.blockLimit=q;u.elements=r;};})();d.elementPath.prototype={compare:function(l){var m=this.elements,n=l&&l.elements;if(!n||m.length!=n.length)return false;for(var o=0;o<m.length;o++){if(!m[o].equals(n[o]))return false;}return true;},contains:function(l){var m=this.elements;for(var n=0;n<m.length;n++){if(m[n].getName() in l)return m[n];}return null;}};d.text=function(l,m){if(typeof l=='string')l=(m?m.$:document).createTextNode(l);this.$=l;};d.text.prototype=new d.node();e.extend(d.text.prototype,{type:3,getLength:function(){return this.$.nodeValue.length;},getText:function(){return this.$.nodeValue;},split:function(l){var q=this;if(c&&l==q.getLength()){var m=q.getDocument().createText('');m.insertAfter(q);return m;}var n=q.getDocument(),o=new d.text(q.$.splitText(l),n);if(b.ie8){var p=new d.text('',n);p.insertAfter(o);p.remove();}return o;},substring:fu
nction(l,m){if(typeof m!='number')return this.$.nodeValue.substr(l);else return this.$.nodeValue.substring(l,m);}});d.documentFragment=function(l){l=l||a.document;this.$=l.$.createDocumentFragment();};e.extend(d.documentFragment.prototype,h.prototype,{type:11,insertAfterNode:function(l){l=l.$;l.parentNode.insertBefore(this.$,l.nextSibling);}},true,{append:1,appendBogus:1,getFirst:1,getLast:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});(function(){function l(t,u){if(this._.end)return null;var v,w=this.range,x,y=this.guard,z=this.type,A=t?'getPreviousSourceNode':'getNextSourceNode';if(!this._.start){this._.start=1;w.trim();if(w.collapsed){this.end();return null;}}if(!t&&!this._.guardLTR){var B=w.endContainer,C=B.getChild(w.endOffset);this._.guardLTR=function(G,H){return(!H||!B.equals(G))&&(!C||!G.equals(C))&&(G.type!=1||!H||G.getName()!='body');};}if(t&&!this._.guard
RTL){var D=w.startContainer,E=w.startOffset>0&&D.getChild(w.startOffset-1);this._.guardRTL=function(G,H){return(!H||!D.equals(G))&&(!E||!G.equals(E))&&(G.type!=1||!H||G.getName()!='body');};}var F=t?this._.guardRTL:this._.guardLTR;if(y)x=function(G,H){if(F(G,H)===false)return false;return y(G,H);};else x=F;if(this.current)v=this.current[A](false,z,x);else if(t){v=w.endContainer;if(w.endOffset>0){v=v.getChild(w.endOffset-1);if(x(v)===false)v=null;}else v=x(v,true)===false?null:v.getPreviousSourceNode(true,z,x);}else{v=w.startContainer;
-v=v.getChild(w.startOffset);if(v){if(x(v)===false)v=null;}else v=x(w.startContainer,true)===false?null:w.startContainer.getNextSourceNode(true,z,x);}while(v&&!this._.end){this.current=v;if(!this.evaluator||this.evaluator(v)!==false){if(!u)return v;}else if(u&&this.evaluator)return false;v=v[A](false,z,x);}this.end();return this.current=null;};function m(t){var u,v=null;while(u=l.call(this,t))v=u;return v;};d.walker=e.createClass({$:function(t){this.range=t;this._={};},proto:{end:function(){this._.end=1;},next:function(){return l.call(this);},previous:function(){return l.call(this,true);},checkForward:function(){return l.call(this,false,true)!==false;},checkBackward:function(){return l.call(this,true,true)!==false;},lastForward:function(){return m.call(this);},lastBackward:function(){return m.call(this,true);},reset:function(){delete this.current;this._={};}}});var n={block:1,'list-item':1,table:1,'table-row-group':1,'table-header-group':1,'table-footer-group':1,'table-row':1
,'table-column-group':1,'table-column':1,'table-cell':1,'table-caption':1},o={hr:1};h.prototype.isBlockBoundary=function(t){var u=e.extend({},o,t||{});return n[this.getComputedStyle('display')]||u[this.getName()];};d.walker.blockBoundary=function(t){return function(u,v){return!(u.type==1&&u.isBlockBoundary(t));};};d.walker.listItemBoundary=function(){return this.blockBoundary({br:1});};d.walker.bookmark=function(t,u){function v(w){return w&&w.getName&&w.getName()=='span'&&w.hasAttribute('_cke_bookmark');};return function(w){var x,y;x=w&&!w.getName&&(y=w.getParent())&&v(y);x=t?x:x||v(w);return u^x;};};d.walker.whitespaces=function(t){return function(u){var v=u&&u.type==3&&!e.trim(u.getText());return t^v;};};d.walker.invisible=function(t){var u=d.walker.whitespaces();return function(v){var w=u(v)||v.is&&!v.$.offsetHeight;return t^w;};};var p=/^[\t\r\n ]*(?: |\xa0)$/,q=d.walker.whitespaces(true),r=d.walker.bookmark(false,true),s=function(t){return r(t)&&q(t);};h.prototype.
getBogus=function(){var t=this.getLast(s);if(t&&(!c?t.is&&t.is('br'):t.getText&&p.test(t.getText())))return t;return false;};})();d.range=function(l){var m=this;m.startContainer=null;m.startOffset=null;m.endContainer=null;m.endOffset=null;m.collapsed=true;m.document=l;};(function(){var l=function(t){t.collapsed=t.startContainer&&t.endContainer&&t.startContainer.equals(t.endContainer)&&t.startOffset==t.endOffset;},m=function(t,u,v){t.optimizeBookmark();var w=t.startContainer,x=t.endContainer,y=t.startOffset,z=t.endOffset,A,B;
-if(x.type==3)x=x.split(z);else if(x.getChildCount()>0)if(z>=x.getChildCount()){x=x.append(t.document.createText(''));B=true;}else x=x.getChild(z);if(w.type==3){w.split(y);if(w.equals(x))x=w.getNext();}else if(!y){w=w.getFirst().insertBeforeMe(t.document.createText(''));A=true;}else if(y>=w.getChildCount()){w=w.append(t.document.createText(''));A=true;}else w=w.getChild(y).getPrevious();var C=w.getParents(),D=x.getParents(),E,F,G;for(E=0;E<C.length;E++){F=C[E];G=D[E];if(!F.equals(G))break;}var H=v,I,J,K,L;for(var M=E;M<C.length;M++){I=C[M];if(H&&!I.equals(w))J=H.append(I.clone());K=I.getNext();while(K){if(K.equals(D[M])||K.equals(x))break;L=K.getNext();if(u==2)H.append(K.clone(true));else{K.remove();if(u==1)H.append(K);}K=L;}if(H)H=J;}H=v;for(var N=E;N<D.length;N++){I=D[N];if(u>0&&!I.equals(x))J=H.append(I.clone());if(!C[N]||I.$.parentNode!=C[N].$.parentNode){K=I.getPrevious();while(K){if(K.equals(C[N])||K.equals(w))break;L=K.getPrevious();if(u==2)H.$.insertBefore(K.$.cloneNo
de(true),H.$.firstChild);else{K.remove();if(u==1)H.$.insertBefore(K.$,H.$.firstChild);}K=L;}}if(H)H=J;}if(u==2){var O=t.startContainer;if(O.type==3){O.$.data+=O.$.nextSibling.data;O.$.parentNode.removeChild(O.$.nextSibling);}var P=t.endContainer;if(P.type==3&&P.$.nextSibling){P.$.data+=P.$.nextSibling.data;P.$.parentNode.removeChild(P.$.nextSibling);}}else{if(F&&G&&(w.$.parentNode!=F.$.parentNode||x.$.parentNode!=G.$.parentNode)){var Q=G.getIndex();if(A&&G.$.parentNode==w.$.parentNode)Q--;t.setStart(G.getParent(),Q);}t.collapse(true);}if(A)w.remove();if(B&&x.$.parentNode)x.remove();},n={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1};function o(t){var u=false,v=d.walker.bookmark(true);return function(w){if(v(w))return true;if(w.type==3){if(e.trim(w.getText()).length)return false;}else if(w.type==1)if(!n[w.getName()])if(!t&&!c&&w.getName()=='br'&&!u)u=true;
else return false;return true;};};function p(t){return t.type!=3&&t.getName() in f.$removeEmpty||!e.trim(t.getText())||t.getParent().hasAttribute('_cke_bookmark');};var q=new d.walker.whitespaces(),r=new d.walker.bookmark();function s(t){return!q(t)&&!r(t);};d.range.prototype={clone:function(){var u=this;var t=new d.range(u.document);t.startContainer=u.startContainer;t.startOffset=u.startOffset;t.endContainer=u.endContainer;t.endOffset=u.endOffset;t.collapsed=u.collapsed;return t;},collapse:function(t){var u=this;if(t){u.endContainer=u.startContainer;
-u.endOffset=u.startOffset;}else{u.startContainer=u.endContainer;u.startOffset=u.endOffset;}u.collapsed=true;},cloneContents:function(){var t=new d.documentFragment(this.document);if(!this.collapsed)m(this,2,t);return t;},deleteContents:function(){if(this.collapsed)return;m(this,0);},extractContents:function(){var t=new d.documentFragment(this.document);if(!this.collapsed)m(this,1,t);return t;},createBookmark:function(t){var z=this;var u,v,w,x,y=z.collapsed;u=z.document.createElement('span');u.setAttribute('_cke_bookmark',1);u.setStyle('display','none');u.setHtml(' ');if(t){w='cke_bm_'+e.getNextNumber();u.setAttribute('id',w+'S');}if(!y){v=u.clone();v.setHtml(' ');if(t)v.setAttribute('id',w+'E');x=z.clone();x.collapse();x.insertNode(v);}x=z.clone();x.collapse(true);x.insertNode(u);if(v){z.setStartAfter(u);z.setEndBefore(v);}else z.moveToPosition(u,4);return{startNode:t?w+'S':u,endNode:t?w+'E':v,serializable:t,collapsed:y};},createBookmark2:function(t){var B=this;var
u=B.startContainer,v=B.endContainer,w=B.startOffset,x=B.endOffset,y=B.collapsed,z,A;if(!u||!v)return{start:0,end:0};if(t){if(u.type==1){z=u.getChild(w);if(z&&z.type==3&&w>0&&z.getPrevious().type==3){u=z;w=0;}}while(u.type==3&&(A=u.getPrevious())&&A.type==3){u=A;w+=A.getLength();}if(!y){if(v.type==1){z=v.getChild(x);if(z&&z.type==3&&x>0&&z.getPrevious().type==3){v=z;x=0;}}while(v.type==3&&(A=v.getPrevious())&&A.type==3){v=A;x+=A.getLength();}}}return{start:u.getAddress(t),end:y?null:v.getAddress(t),startOffset:w,endOffset:x,normalized:t,collapsed:y,is2:true};},moveToBookmark:function(t){var B=this;if(t.is2){var u=B.document.getByAddress(t.start,t.normalized),v=t.startOffset,w=t.end&&B.document.getByAddress(t.end,t.normalized),x=t.endOffset;B.setStart(u,v);if(w)B.setEnd(w,x);else B.collapse(true);}else{var y=t.serializable,z=y?B.document.getById(t.startNode):t.startNode,A=y?B.document.getById(t.endNode):t.endNode;B.setStartBefore(z);z.remove();if(A){B.setEndBefore(A);A.remove
();}else B.collapse(true);}},getBoundaryNodes:function(){var y=this;var t=y.startContainer,u=y.endContainer,v=y.startOffset,w=y.endOffset,x;if(t.type==1){x=t.getChildCount();if(x>v)t=t.getChild(v);else if(x<1)t=t.getPreviousSourceNode();else{t=t.$;while(t.lastChild)t=t.lastChild;t=new d.node(t);t=t.getNextSourceNode()||t;}}if(u.type==1){x=u.getChildCount();if(x>w)u=u.getChild(w).getPreviousSourceNode(true);else if(x<1)u=u.getPreviousSourceNode();else{u=u.$;while(u.lastChild)u=u.lastChild;u=new d.node(u);}}if(t.getPosition(u)&2)t=u;
-return{startNode:t,endNode:u};},getCommonAncestor:function(t,u){var y=this;var v=y.startContainer,w=y.endContainer,x;if(v.equals(w)){if(t&&v.type==1&&y.startOffset==y.endOffset-1)x=v.getChild(y.startOffset);else x=v;}else x=v.getCommonAncestor(w);return u&&!x.is?x.getParent():x;},optimize:function(){var v=this;var t=v.startContainer,u=v.startOffset;if(t.type!=1)if(!u)v.setStartBefore(t);else if(u>=t.getLength())v.setStartAfter(t);t=v.endContainer;u=v.endOffset;if(t.type!=1)if(!u)v.setEndBefore(t);else if(u>=t.getLength())v.setEndAfter(t);},optimizeBookmark:function(){var v=this;var t=v.startContainer,u=v.endContainer;if(t.is&&t.is('span')&&t.hasAttribute('_cke_bookmark'))v.setStartAt(t,3);if(u&&u.is&&u.is('span')&&u.hasAttribute('_cke_bookmark'))v.setEndAt(u,4);},trim:function(t,u){var B=this;var v=B.startContainer,w=B.startOffset,x=B.collapsed;if((!t||x)&&v&&v.type==3){if(!w){w=v.getIndex();v=v.getParent();}else if(w>=v.getLength()){w=v.getIndex()+1;v=v.getParent();}else{va
r y=v.split(w);w=v.getIndex()+1;v=v.getParent();if(B.startContainer.equals(B.endContainer))B.setEnd(y,B.endOffset-B.startOffset);else if(v.equals(B.endContainer))B.endOffset+=1;}B.setStart(v,w);if(x){B.collapse(true);return;}}var z=B.endContainer,A=B.endOffset;if(!(u||x)&&z&&z.type==3){if(!A){A=z.getIndex();z=z.getParent();}else if(A>=z.getLength()){A=z.getIndex()+1;z=z.getParent();}else{z.split(A);A=z.getIndex()+1;z=z.getParent();}B.setEnd(z,A);}},enlarge:function(t){switch(t){case 1:if(this.collapsed)return;var u=this.getCommonAncestor(),v=this.document.getBody(),w,x,y,z,A,B=false,C,D,E=this.startContainer,F=this.startOffset;if(E.type==3){if(F){E=!e.trim(E.substring(0,F)).length&&E;B=!!E;}if(E)if(!(z=E.getPrevious()))y=E.getParent();}else{if(F)z=E.getChild(F-1)||E.getLast();if(!z)y=E;}while(y||z){if(y&&!z){if(!A&&y.equals(u))A=true;if(!v.contains(y))break;if(!B||y.getComputedStyle('display')!='inline'){B=false;if(A)w=y;else this.setStartBefore(y);}z=y.getPrevious();}while(
z){C=false;if(z.type==3){D=z.getText();if(/[^\s\ufeff]/.test(D))z=null;C=/[\s\ufeff]$/.test(D);}else if(z.$.offsetWidth>0&&!z.getAttribute('_cke_bookmark'))if(B&&f.$removeEmpty[z.getName()]){D=z.getText();if(/[^\s\ufeff]/.test(D))z=null;else{var G=z.$.all||z.$.getElementsByTagName('*');for(var H=0,I;I=G[H++];){if(!f.$removeEmpty[I.nodeName.toLowerCase()]){z=null;break;}}}if(z)C=!!D.length;}else z=null;if(C)if(B){if(A)w=y;else if(y)this.setStartBefore(y);}else B=true;if(z){var J=z.getPrevious();if(!y&&!J){y=z;z=null;break;
-}z=J;}else y=null;}if(y)y=y.getParent();}E=this.endContainer;F=this.endOffset;y=z=null;A=B=false;if(E.type==3){E=!e.trim(E.substring(F)).length&&E;B=!(E&&E.getLength());if(E)if(!(z=E.getNext()))y=E.getParent();}else{z=E.getChild(F);if(!z)y=E;}while(y||z){if(y&&!z){if(!A&&y.equals(u))A=true;if(!v.contains(y))break;if(!B||y.getComputedStyle('display')!='inline'){B=false;if(A)x=y;else if(y)this.setEndAfter(y);}z=y.getNext();}while(z){C=false;if(z.type==3){D=z.getText();if(/[^\s\ufeff]/.test(D))z=null;C=/^[\s\ufeff]/.test(D);}else if(z.$.offsetWidth>0&&!z.getAttribute('_cke_bookmark'))if(B&&f.$removeEmpty[z.getName()]){D=z.getText();if(/[^\s\ufeff]/.test(D))z=null;else{G=z.$.all||z.$.getElementsByTagName('*');for(H=0;I=G[H++];){if(!f.$removeEmpty[I.nodeName.toLowerCase()]){z=null;break;}}}if(z)C=!!D.length;}else z=null;if(C)if(B)if(A)x=y;else this.setEndAfter(y);if(z){J=z.getNext();if(!y&&!J){y=z;z=null;break;}z=J;}else y=null;}if(y)y=y.getParent();}if(w&&x){u=w.contains(x)?x:w;
this.setStartBefore(u);this.setEndAfter(u);}break;case 2:case 3:var K=new d.range(this.document);v=this.document.getBody();K.setStartAt(v,1);K.setEnd(this.startContainer,this.startOffset);var L=new d.walker(K),M,N,O=d.walker.blockBoundary(t==3?{br:1}:null),P=function(R){var S=O(R);if(!S)M=R;return S;},Q=function(R){var S=P(R);if(!S&&R.is&&R.is('br'))N=R;return S;};L.guard=P;y=L.lastBackward();M=M||v;this.setStartAt(M,!M.is('br')&&(!y&&this.checkStartOfBlock()||y&&M.contains(y))?1:4);K=this.clone();K.collapse();K.setEndAt(v,2);L=new d.walker(K);L.guard=t==3?Q:P;M=null;y=L.lastForward();M=M||v;this.setEndAt(M,!y&&this.checkEndOfBlock()||y&&M.contains(y)?2:3);if(N)this.setEndAfter(N);}},shrink:function(t,u){if(!this.collapsed){t=t||2;var v=this.clone(),w=this.startContainer,x=this.endContainer,y=this.startOffset,z=this.endOffset,A=this.collapsed,B=1,C=1;if(w&&w.type==3)if(!y)v.setStartBefore(w);else if(y>=w.getLength())v.setStartAfter(w);else{v.setStartBefore(w);B=0;}if(x&&x.ty
pe==3)if(!z)v.setEndBefore(x);else if(z>=x.getLength())v.setEndAfter(x);else{v.setEndAfter(x);C=0;}var D=new d.walker(v);D.evaluator=function(H){return H.type==(t==1?1:3);};var E;D.guard=function(H,I){if(t==1&&H.type==3)return false;if(I&&H.equals(E))return false;if(!I&&H.type==1)E=H;return true;};if(B){var F=D[t==1?'lastForward':'next']();F&&this.setStartAt(F,u?1:3);}if(C){D.reset();var G=D[t==1?'lastBackward':'previous']();G&&this.setEndAt(G,u?2:4);}return!!(B||C);}},insertNode:function(t){var x=this;x.optimizeBookmark();
-x.trim(false,true);var u=x.startContainer,v=x.startOffset,w=u.getChild(v);if(w)t.insertBefore(w);else u.append(t);if(t.getParent().equals(x.endContainer))x.endOffset++;x.setStartBefore(t);},moveToPosition:function(t,u){this.setStartAt(t,u);this.collapse(true);},selectNodeContents:function(t){this.setStart(t,0);this.setEnd(t,t.type==3?t.getLength():t.getChildCount());},setStart:function(t,u){var v=this;if(t.type==1&&f.$empty[t.getName()])t=t.getParent(),u=t.getIndex();v.startContainer=t;v.startOffset=u;if(!v.endContainer){v.endContainer=t;v.endOffset=u;}l(v);},setEnd:function(t,u){var v=this;if(t.type==1&&f.$empty[t.getName()])t=t.getParent(),u=t.getIndex()+1;v.endContainer=t;v.endOffset=u;if(!v.startContainer){v.startContainer=t;v.startOffset=u;}l(v);},setStartAfter:function(t){this.setStart(t.getParent(),t.getIndex()+1);},setStartBefore:function(t){this.setStart(t.getParent(),t.getIndex());},setEndAfter:function(t){this.setEnd(t.getParent(),t.getIndex()+1);},setEndBefore:fu
nction(t){this.setEnd(t.getParent(),t.getIndex());},setStartAt:function(t,u){var v=this;switch(u){case 1:v.setStart(t,0);break;case 2:if(t.type==3)v.setStart(t,t.getLength());else v.setStart(t,t.getChildCount());break;case 3:v.setStartBefore(t);break;case 4:v.setStartAfter(t);}l(v);},setEndAt:function(t,u){var v=this;switch(u){case 1:v.setEnd(t,0);break;case 2:if(t.type==3)v.setEnd(t,t.getLength());else v.setEnd(t,t.getChildCount());break;case 3:v.setEndBefore(t);break;case 4:v.setEndAfter(t);}l(v);},fixBlock:function(t,u){var x=this;var v=x.createBookmark(),w=x.document.createElement(u);x.collapse(t);x.enlarge(2);x.extractContents().appendTo(w);w.trim();if(!c)w.appendBogus();x.insertNode(w);x.moveToBookmark(v);return w;},splitBlock:function(t){var D=this;var u=new d.elementPath(D.startContainer),v=new d.elementPath(D.endContainer),w=u.blockLimit,x=v.blockLimit,y=u.block,z=v.block,A=null;if(!w.equals(x))return null;if(t!='br'){if(!y){y=D.fixBlock(true,t);z=new d.elementPath(
D.endContainer).block;}if(!z)z=D.fixBlock(false,t);}var B=y&&D.checkStartOfBlock(),C=z&&D.checkEndOfBlock();D.deleteContents();if(y&&y.equals(z))if(C){A=new d.elementPath(D.startContainer);D.moveToPosition(z,4);z=null;}else if(B){A=new d.elementPath(D.startContainer);D.moveToPosition(y,3);y=null;}else{z=D.splitElement(y);if(!c&&!y.is('ul','ol'))y.appendBogus();}return{previousBlock:y,nextBlock:z,wasStartOfBlock:B,wasEndOfBlock:C,elementPath:A};},splitElement:function(t){var w=this;if(!w.collapsed)return null;w.setEndAt(t,2);
-var u=w.extractContents(),v=t.clone(false);u.appendTo(v);v.insertAfter(t);w.moveToPosition(t,4);return v;},checkBoundaryOfElement:function(t,u){var v=u==1,w=this.clone();w.collapse(v);w[v?'setStartAt':'setEndAt'](t,v?1:2);var x=new d.walker(w);x.evaluator=p;return x[v?'checkBackward':'checkForward']();},checkStartOfBlock:function(){var z=this;var t=z.startContainer,u=z.startOffset;if(u&&t.type==3){var v=e.ltrim(t.substring(0,u));if(v.length)return false;}z.trim();var w=new d.elementPath(z.startContainer),x=z.clone();x.collapse(true);x.setStartAt(w.block||w.blockLimit,1);var y=new d.walker(x);y.evaluator=o(true);return y.checkBackward();},checkEndOfBlock:function(){var z=this;var t=z.endContainer,u=z.endOffset;if(t.type==3){var v=e.rtrim(t.substring(u));if(v.length)return false;}z.trim();var w=new d.elementPath(z.endContainer),x=z.clone();x.collapse(false);x.setEndAt(w.block||w.blockLimit,2);var y=new d.walker(x);y.evaluator=o(false);return y.checkForward();},moveToElementEdi
tablePosition:function(t,u){var v;if(f.$empty[t.getName()])return false;while(t&&t.type==1){v=t.isEditable();if(v)this.moveToPosition(t,u?2:1);else if(f.$inline[t.getName()]){this.moveToPosition(t,u?4:3);return true;}if(f.$empty[t.getName()])t=t[u?'getPrevious':'getNext'](s);else t=t[u?'getLast':'getFirst'](s);if(t&&t.type==3){this.moveToPosition(t,u?4:3);return true;}}return v;},moveToElementEditStart:function(t){return this.moveToElementEditablePosition(t);},moveToElementEditEnd:function(t){return this.moveToElementEditablePosition(t,true);},getEnclosedNode:function(){var t=this.clone();t.optimize();if(t.startContainer.type!=1||t.endContainer.type!=1)return null;var u=new d.walker(t),v=d.walker.bookmark(true),w=d.walker.whitespaces(true),x=function(z){return w(z)&&v(z);};t.evaluator=x;var y=u.next();u.reset();return y&&y.equals(u.previous())?y:null;},getTouchedStartNode:function(){var t=this.startContainer;if(this.collapsed||t.type!=1)return t;return t.getChild(this.startO
ffset)||t;},getTouchedEndNode:function(){var t=this.endContainer;if(this.collapsed||t.type!=1)return t;return t.getChild(this.endOffset-1)||t;}};})();a.POSITION_AFTER_START=1;a.POSITION_BEFORE_END=2;a.POSITION_BEFORE_START=3;a.POSITION_AFTER_END=4;a.ENLARGE_ELEMENT=1;a.ENLARGE_BLOCK_CONTENTS=2;a.ENLARGE_LIST_ITEM_CONTENTS=3;a.START=1;a.END=2;a.STARTEND=3;a.SHRINK_ELEMENT=1;a.SHRINK_TEXT=2;(function(){d.rangeList=function(n){if(n instanceof d.rangeList)return n;if(!n)n=[];else if(n instanceof d.range)n=[n];return e.extend(n,l);
-};var l={createIterator:function(){var n=this,o=[],p;return{getNextRange:function(){p=p==undefined?0:p+1;var q=n[p];if(q&&n.length>1)if(!p)for(var r=n.length-1;r>0;r--)o.unshift(n[r].createBookmark(true));else q.moveToBookmark(o.shift());return q;}};},createBookmarks:function(n){var s=this;var o=[],p;for(var q=0;q<s.length;q++){o.push(p=s[q].createBookmark(n,true));for(var r=q+1;r<s.length;r++){s[r]=m(p,s[r]);s[r]=m(p,s[r],true);}}return o;},createBookmarks2:function(n){var o=[];for(var p=0;p<this.length;p++)o.push(this[p].createBookmark2(n));return o;},moveToBookmarks:function(n){for(var o=0;o<this.length;o++)this[o].moveToBookmark(n[o]);}};function m(n,o,p){var q=n.serializable,r=o[p?'endContainer':'startContainer'],s=p?'endOffset':'startOffset',t=q?o.document.getById(n.startNode):n.startNode,u=q?o.document.getById(n.endNode):n.endNode;if(r.equals(t.getPrevious())){o.startOffset=o.startOffset-r.getLength()-u.getPrevious().getLength();r=u.getNext();}else if(r.equals(u.getPr
evious())){o.startOffset=o.startOffset-r.getLength();r=u.getNext();}r.equals(t.getParent())&&o[s]++;r.equals(u.getParent())&&o[s]++;o[p?'endContainer':'startContainer']=r;return o;};})();(function(){if(b.webkit){b.hc=false;return;}var l=c&&b.version<7,m=c&&b.version==7,n=l?a.basePath+'images/spacer.gif':m?'about:blank':'data:image/png;base64,',o=h.createFromHtml('<div style="width:0px;height:0px;position:absolute;left:-10000px;background-image:url('+n+')"></div>',a.document);o.appendTo(a.document.getHead());try{b.hc=o.getComputedStyle('background-image')=='none';}catch(p){b.hc=false;}if(b.hc)b.cssClass+=' cke_hc';o.remove();})();j.load(i.corePlugins.split(','),function(){a.status='loaded';a.fire('loaded');var l=a._.pending;if(l){delete a._.pending;for(var m=0;m<l.length;m++)a.add(l[m]);}});a.skins.add('kama',(function(){var l=[],m='cke_ui_color';if(c&&b.version<7)l.push('icons.png','images/sprites_ie6.png','images/dialog_sides.gif');return{preload:l,editor:{css:['editor.css'
]},dialog:{css:['dialog.css']},templates:{css:['templates.css']},margins:[0,0,0,0],init:function(n){if(n.config.width&&!isNaN(n.config.width))n.config.width-=12;var o=[],p=/\$color/g,q='/* UI Color Support */.cke_skin_kama .cke_menuitem .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_label,.cke_skin_kama .cke_menuitem a:focus .cke_label,.cke_skin_kama .cke_menuitem a:active .cke_label{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label{\tbackground-color: transparent !important;}.cke_skin_
kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuseparator{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover,.cke_skin_kama .cke_menuitem a:focus,.cke_skin_kama .cke_menuitem a:active{\tbackground-color: $color !important;}';
-if(b.webkit){q=q.split('}').slice(0,-1);for(var r=0;r<q.length;r++)q[r]=q[r].split('{');}function s(v){var w=v.getById(m);if(!w){w=v.getHead().append('style');w.setAttribute('id',m);w.setAttribute('type','text/css');}return w;};function t(v,w,x){var y,z,A;for(var B=0;B<v.length;B++){if(b.webkit)for(z=0;z<w.length;z++){A=w[z][1];for(y=0;y<x.length;y++)A=A.replace(x[y][0],x[y][1]);v[B].$.sheet.addRule(w[z][0],A);}else{A=w;for(y=0;y<x.length;y++)A=A.replace(x[y][0],x[y][1]);if(c)v[B].$.styleSheet.cssText+=A;else v[B].$.innerHTML+=A;}}};var u=/\$color/g;e.extend(n,{uiColor:null,getUiColor:function(){return this.uiColor;},setUiColor:function(v){var w,x=s(a.document),y='.cke_editor_'+e.escapeCssSelector(n.name),z=[y+' .cke_wrapper',y+'_dialog .cke_dialog_contents',y+'_dialog a.cke_dialog_tab',y+'_dialog .cke_dialog_footer'].join(','),A='background-color: $color !important;';if(b.webkit)w=[[z,A]];else w=z+'{'+A+'}';return(this.setUiColor=function(B){var C=[[u,B]];n.uiColor=B;t([x],
w,C);t(o,q,C);})(v);}});n.on('menuShow',function(v){var w=v.data[0],x=w.element.getElementsByTag('iframe').getItem(0).getFrameDocument();if(!x.getById('cke_ui_color')){var y=s(x);o.push(y);var z=n.getUiColor();if(z)t([y],q,[[u,z]]);}});if(n.config.uiColor)n.setUiColor(n.config.uiColor);}};})());(function(){a.dialog?l():a.on('dialogPluginReady',l);function l(){a.dialog.on('resize',function(m){var n=m.data,o=n.width,p=n.height,q=n.dialog,r=q.parts.contents;if(n.skin!='kama')return;r.setStyles({width:o+'px',height:p+'px'});setTimeout(function(){var s=q.parts.dialog.getChild([0,0,0]),t=s.getChild(0),u=s.getChild(2);u.setStyle('width',t.$.offsetWidth+'px');u=s.getChild(7);u.setStyle('width',t.$.offsetWidth-28+'px');u=s.getChild(4);u.setStyle('height',t.$.offsetHeight-31-14+'px');u=s.getChild(5);u.setStyle('height',t.$.offsetHeight-31-14+'px');},100);});};})();j.add('about',{requires:['dialog'],init:function(l){var m=l.addCommand('about',new a.dialogCommand('about'));m.modes={wysi
wyg:1,source:1};m.canUndo=false;l.ui.addButton('About',{label:l.lang.about.title,command:'about'});a.dialog.add('about',this.path+'dialogs/about.js');}});(function(){var l='a11yhelp',m='a11yHelp';j.add(l,{availableLangs:{en:1,he:1},init:function(n){var o=this;n.addCommand(m,{exec:function(){var p=n.langCode;p=o.availableLangs[p]?p:'en';a.scriptLoader.load(a.getUrl(o.path+'lang/'+p+'.js'),function(){e.extend(n.lang,o.lang[p]);n.openDialog(m);});},modes:{wysiwyg:1,source:1},canUndo:false});a.dialog.add(m,this.path+'dialogs/a11yhelp.js');
-}});})();j.add('basicstyles',{requires:['styles','button'],init:function(l){var m=function(p,q,r,s){var t=new a.style(s);l.attachStyleStateChange(t,function(u){l.getCommand(r).setState(u);});l.addCommand(r,new a.styleCommand(t));l.ui.addButton(p,{label:q,command:r});},n=l.config,o=l.lang;m('Bold',o.bold,'bold',n.coreStyles_bold);m('Italic',o.italic,'italic',n.coreStyles_italic);m('Underline',o.underline,'underline',n.coreStyles_underline);m('Strike',o.strike,'strike',n.coreStyles_strike);m('Subscript',o.subscript,'subscript',n.coreStyles_subscript);m('Superscript',o.superscript,'superscript',n.coreStyles_superscript);}});i.coreStyles_bold={element:'strong',overrides:'b'};i.coreStyles_italic={element:'em',overrides:'i'};i.coreStyles_underline={element:'u'};i.coreStyles_strike={element:'strike'};i.coreStyles_subscript={element:'sub'};i.coreStyles_superscript={element:'sup'};(function(){var l={table:1,ul:1,ol:1,blockquote:1,div:1},m={};e.extend(m,l,{tr:1,p:1,div:1,li:1});functi
on n(r){var s=r.editor,t=r.data.path,u=s.config.useComputedState,v;u=u===undefined||u;if(u){var w=s.getSelection(),x=w.getRanges();v=x&&x[0].getEnclosedNode();if(!v||v&&!(v.type==1&&v.getName() in m))v=p(w,l);}v=v||t.block||t.blockLimit;if(!v||v.getName()=='body')return;var y=u?v.getComputedStyle('direction'):v.getStyle('direction')||v.getAttribute('dir');s.getCommand('bidirtl').setState(y=='rtl'?1:2);s.getCommand('bidiltr').setState(y=='ltr'?1:2);var z=s.container.getChild(1);if(y!=s.lang.dir)z.addClass('cke_mixed_dir_content');else z.removeClass('cke_mixed_dir_content');};function o(r,s,t){var u=r.getComputedStyle('direction'),v=r.getStyle('direction')||r.getAttribute('dir')||'';r.removeStyle('direction');if(v.toLowerCase()==s)r.removeAttribute('dir');else r.setAttribute('dir',s);var w=r.getComputedStyle('direction');if(w!=u){var x=new d.range(r.getDocument());x.setStartBefore(r);x.setEndAfter(r);var y=new d.walker(x),z;while(z=y.next()){if(z.type==1){if(!z.equals(r)&&z.ha
sAttribute('dir')){x.setStartAfter(z);y=new d.walker(x);continue;}var A=z.getStyle('margin-right'),B=z.getStyle('margin-left');A?z.setStyle('margin-left',A):z.removeStyle('margin-left');B?z.setStyle('margin-right',B):z.removeStyle('margin-right');}}}t.forceNextSelectionCheck();};function p(r,s){var t=r.getCommonAncestor();while(t.type==1&&!(t.getName() in s)&&t.getParent().getChildCount()==1)t=t.getParent();return t.type==1&&t.getName() in s&&t;};function q(r){return function(s){var t=s.getSelection(),u=s.config.enterMode,v=t.getRanges();
-if(v&&v.length){var w=v[0].getEnclosedNode();if(!w||w&&!(w.type==1&&w.getName() in m))w=p(t,l);if(w){if(!w.isReadOnly())o(w,r,s);}else{var x=t.createBookmarks(),y,z;for(var A=v.length-1;A>=0;A--){var B=[],C=new d.walker(v[A]);C.evaluator=function(G){return G.type==1&&G.getName() in l&&!(G.getName()==(u==1)?'p':'div'&&G.getParent().type==1&&G.getParent().getName()=='blockquote');};while(z=C.next()){o(z,r,s);B.push(z);}y=v[A].createIterator();y.enlargeBr=u!=2;while(z=y.getNextParagraph(u==1?'p':'div')){if(z.isReadOnly())continue;var D=0;for(var E=0;E<B.length;E++){var F=z.getParent();while(F&&F.getName()!='body'){if(F.$.isSameNode&&F.$.isSameNode(B[E].$)||F.$==B[E].$){D=1;break;}F=F.getParent();}if(D)break;}if(!D)o(z,r,s);}}s.forceNextSelectionCheck();t.selectBookmarks(x);}s.focus();}};};j.add('bidi',{requires:['styles','button'],init:function(r){var s=function(u,v,w,x){r.addCommand(w,new a.command(r,{exec:x}));r.ui.addButton(u,{label:v,command:w});},t=r.lang.bidi;s('BidiLtr',
t.ltr,'bidiltr',q('ltr'));s('BidiRtl',t.rtl,'bidirtl',q('rtl'));r.on('selectionChange',n);}});})();(function(){function l(p,q){var r=q.block||q.blockLimit;if(!r||r.getName()=='body')return 2;if(r.getAscendant('blockquote',true))return 1;return 2;};function m(p){var q=p.editor,r=q.getCommand('blockquote');r.state=l(q,p.data.path);r.fire('state');};function n(p){for(var q=0,r=p.getChildCount(),s;q<r&&(s=p.getChild(q));q++){if(s.type==1&&s.isBlockBoundary())return false;}return true;};var o={exec:function(p){var q=p.getCommand('blockquote').state,r=p.getSelection(),s=r&&r.getRanges(true)[0];if(!s)return;var t=r.createBookmarks();if(c){var u=t[0].startNode,v=t[0].endNode,w;if(u&&u.getParent().getName()=='blockquote'){w=u;while(w=w.getNext()){if(w.type==1&&w.isBlockBoundary()){u.move(w,true);break;}}}if(v&&v.getParent().getName()=='blockquote'){w=v;while(w=w.getPrevious()){if(w.type==1&&w.isBlockBoundary()){v.move(w);break;}}}}var x=s.createIterator(),y;if(q==2){var z=[];while(y=
x.getNextParagraph())z.push(y);if(z.length<1){var A=p.document.createElement(p.config.enterMode==1?'p':'div'),B=t.shift();s.insertNode(A);A.append(new d.text('\ufeff',p.document));s.moveToBookmark(B);s.selectNodeContents(A);s.collapse(true);B=s.createBookmark();z.push(A);t.unshift(B);}var C=z[0].getParent(),D=[];for(var E=0;E<z.length;E++){y=z[E];C=C.getCommonAncestor(y.getParent());}var F={table:1,tbody:1,tr:1,ol:1,ul:1};while(F[C.getName()])C=C.getParent();var G=null;while(z.length>0){y=z.shift();while(!y.getParent().equals(C))y=y.getParent();
-if(!y.equals(G))D.push(y);G=y;}while(D.length>0){y=D.shift();if(y.getName()=='blockquote'){var H=new d.documentFragment(p.document);while(y.getFirst()){H.append(y.getFirst().remove());z.push(H.getLast());}H.replace(y);}else z.push(y);}var I=p.document.createElement('blockquote');I.insertBefore(z[0]);while(z.length>0){y=z.shift();I.append(y);}}else if(q==1){var J=[],K={};while(y=x.getNextParagraph()){var L=null,M=null;while(y.getParent()){if(y.getParent().getName()=='blockquote'){L=y.getParent();M=y;break;}y=y.getParent();}if(L&&M&&!M.getCustomData('blockquote_moveout')){J.push(M);h.setMarker(K,M,'blockquote_moveout',true);}}h.clearAllMarkers(K);var N=[],O=[];K={};while(J.length>0){var P=J.shift();I=P.getParent();if(!P.getPrevious())P.remove().insertBefore(I);else if(!P.getNext())P.remove().insertAfter(I);else{P.breakParent(P.getParent());O.push(P.getNext());}if(!I.getCustomData('blockquote_processed')){O.push(I);h.setMarker(K,I,'blockquote_processed',true);}N.push(P);}h.clea
rAllMarkers(K);for(E=O.length-1;E>=0;E--){I=O[E];if(n(I))I.remove();}if(p.config.enterMode==2){var Q=true;while(N.length){P=N.shift();if(P.getName()=='div'){H=new d.documentFragment(p.document);var R=Q&&P.getPrevious()&&!(P.getPrevious().type==1&&P.getPrevious().isBlockBoundary());if(R)H.append(p.document.createElement('br'));var S=P.getNext()&&!(P.getNext().type==1&&P.getNext().isBlockBoundary());while(P.getFirst())P.getFirst().remove().appendTo(H);if(S)H.append(p.document.createElement('br'));H.replace(P);Q=false;}}}}r.selectBookmarks(t);p.focus();}};j.add('blockquote',{init:function(p){p.addCommand('blockquote',o);p.ui.addButton('Blockquote',{label:p.lang.blockquote,command:'blockquote'});p.on('selectionChange',m);},requires:['domiterator']});})();j.add('button',{beforeInit:function(l){l.ui.addHandler(1,k.button.handler);}});a.UI_BUTTON=1;k.button=function(l){e.extend(this,l,{title:l.label,className:l.className||l.command&&'cke_button_'+l.command||'',click:l.click||(funct
ion(m){m.execCommand(l.command);})});this._={};};k.button.handler={create:function(l){return new k.button(l);}};k.button.prototype={canGroup:true,render:function(l,m){var n=b,o=this._.id='cke_'+e.getNextNumber(),p='',q=this.command,r,s;this._.editor=l;var t={id:o,button:this,editor:l,focus:function(){var v=a.document.getById(o);v.focus();},execute:function(){this.button.click(l);}};t.clickFn=r=e.addFunction(t.execute,t);t.index=s=k.button._.instances.push(t)-1;if(this.modes)l.on('mode',function(){this.setState(this.modes[l.mode]?2:0);
-},this);else if(q){q=l.getCommand(q);if(q){q.on('state',function(){this.setState(q.state);},this);p+='cke_'+(q.state==1?'on':q.state==0?'disabled':'off');}}if(!q)p+='cke_off';if(this.className)p+=' '+this.className;m.push('<span class="cke_button">','<a id="',o,'" class="',p,'"',n.gecko&&n.version>=10900&&!n.hc?'':'" href="javascript:void(\''+(this.title||'').replace("'",'')+"')\"",' title="',this.title,'" tabindex="-1" hidefocus="true" role="button" aria-labelledby="'+o+'_label"'+(this.hasArrow?' aria-haspopup="true"':''));if(n.opera||n.gecko&&n.mac)m.push(' onkeypress="return false;"');if(n.gecko)m.push(' onblur="this.style.cssText = this.style.cssText;"');m.push(' onkeydown="return CKEDITOR.ui.button._.keydown(',s,', event);" onfocus="return CKEDITOR.ui.button._.focus(',s,', event);" onclick="CKEDITOR.tools.callFunction(',r,', this); return false;"><span class="cke_icon"');if(this.icon){var u=(this.iconOffset||0)*-16;m.push(' style="background-image:url(',a.getUrl(this.ic
on),');background-position:0 '+u+'px;"');}m.push('> </span><span id="',o,'_label" class="cke_label">',this.label,'</span>');if(this.hasArrow)m.push('<span class="cke_buttonarrow">'+(b.hc?'▼':' ')+'</span>');m.push('</a>','</span>');if(this.onRender)this.onRender();return t;},setState:function(l){if(this._.state==l)return false;this._.state=l;var m=a.document.getById(this._.id);if(m){m.setState(l);l==0?m.setAttribute('aria-disabled',true):m.removeAttribute('aria-disabled');l==1?m.setAttribute('aria-pressed',true):m.removeAttribute('aria-pressed');return true;}else return false;}};k.button._={instances:[],keydown:function(l,m){var n=k.button._.instances[l];if(n.onkey){m=new d.event(m);return n.onkey(n,m.getKeystroke())!==false;}},focus:function(l,m){var n=k.button._.instances[l],o;if(n.onfocus)o=n.onfocus(n,new d.event(m))!==false;if(b.gecko&&b.version<10900)m.preventBubble();return o;}};k.prototype.addButton=function(l,m){this.add(l,1,m);};a.on('reset',functio
n(){k.button._.instances=[];});(function(){var l=function(s,t){var u=s.document,v=u.getBody(),w=false,x=function(){w=true;};v.on(t,x);(b.version>7?u.$:u.$.selection.createRange()).execCommand(t);v.removeListener(t,x);return w;},m=c?function(s,t){return l(s,t);}:function(s,t){try{return s.document.$.execCommand(t);}catch(u){return false;}},n=function(s){this.type=s;this.canUndo=this.type=='cut';};n.prototype={exec:function(s,t){this.type=='cut'&&r(s);var u=m(s,this.type);if(!u)alert(s.lang.clipboard[this.type+'Error']);
-return u;}};var o={canUndo:false,exec:c?function(s){s.focus();if(!s.document.getBody().fire('beforepaste')&&!l(s,'paste')){s.fire('pasteDialog');return false;}}:function(s){try{if(!s.document.getBody().fire('beforepaste')&&!s.document.$.execCommand('Paste',false,null))throw 0;}catch(t){setTimeout(function(){s.fire('pasteDialog');},0);return false;}}},p=function(s){if(this.mode!='wysiwyg')return;switch(s.data.keyCode){case 1000+86:case 2000+45:var t=this.document.getBody();if(!c&&t.fire('beforepaste'))s.cancel();else if(b.opera||b.gecko&&b.version<10900)t.fire('paste');return;case 1000+88:case 2000+46:var u=this;this.fire('saveSnapshot');setTimeout(function(){u.fire('saveSnapshot');},0);}};function q(s,t,u){var v=this.document;if(c&&v.getById('cke_pastebin'))return;if(t=='text'&&s.data&&s.data.$.clipboardData){var w=s.data.$.clipboardData.getData('text/plain');if(w){s.data.preventDefault();u(w);return;}}var x=this.getSelection(),y=new d.range(v),z=new h(t=='text'?'textarea':b
.webkit?'body':'div',v);z.setAttribute('id','cke_pastebin');b.webkit&&z.append(v.createText('\xa0'));v.getBody().append(z);z.setStyles({position:'absolute',top:x.getStartElement().getDocumentPosition().y+'px',width:'1px',height:'1px',overflow:'hidden'});z.setStyle(this.config.contentsLangDirection=='ltr'?'left':'right','-1000px');var A=x.createBookmarks();if(t=='text'){if(c){var B=v.getBody().$.createTextRange();B.moveToElementText(z.$);B.execCommand('Paste');s.data.preventDefault();}else{v.$.designMode='off';z.$.focus();}}else{y.setStartAt(z,1);y.setEndAt(z,2);y.select(true);}window.setTimeout(function(){t=='text'&&!c&&(v.$.designMode='on');z.remove();var C;z=b.webkit&&(C=z.getFirst())&&C.is&&C.hasClass('Apple-style-span')?C:z;x.selectBookmarks(A);u(z['get'+(t=='text'?'Value':'Html')]());},0);};function r(s){if(!c||s.document.$.compatMode=='BackCompat')return;var t=s.getSelection(),u;if(t.getType()==3&&(u=t.getSelectedElement())){var v=t.getRanges()[0],w=s.document.createTe
xt('');w.insertBefore(u);v.setStartBefore(w);v.setEndAfter(u);t.selectRanges([v]);setTimeout(function(){if(u.getParent()){w.remove();t.selectElement(u);}},0);}};j.add('clipboard',{requires:['dialog','htmldataprocessor'],init:function(s){s.on('paste',function(x){var y=x.data;if(y.html)s.insertHtml(y.html);else if(y.text)s.insertText(y.text);},null,null,1000);s.on('pasteDialog',function(x){setTimeout(function(){s.openDialog('paste');},0);});function t(x,y,z,A){var B=s.lang[y];s.addCommand(y,z);s.ui.addButton(x,{label:B,command:y});
-if(s.addMenuItems)s.addMenuItem(y,{label:B,command:y,group:'clipboard',order:A});};t('Cut','cut',new n('cut'),1);t('Copy','copy',new n('copy'),4);t('Paste','paste',o,8);a.dialog.add('paste',a.getUrl(this.path+'dialogs/paste.js'));s.on('key',p,s);var u=s.config.forcePasteAsPlainText?'text':'html';s.on('contentDom',function(){var x=s.document.getBody();x.on(u=='text'&&c||b.webkit?'paste':'beforepaste',function(y){if(v)return;q.call(s,y,u,function(z){if(!z)return;var A={};A[u]=z;s.fire('paste',A);});});x.on('beforecut',function(){!v&&r(s);});});if(s.contextMenu){var v;function w(x){c&&(v=1);var y=s.document.$.queryCommandEnabled(x)?2:0;v=0;return y;};s.contextMenu.addListener(function(x,y){var z=y.getCommonAncestor().isReadOnly();return{cut:!z&&w('Cut'),copy:w('Copy'),paste:!z&&(b.webkit?2:w('Paste'))};});}}});})();j.add('colorbutton',{requires:['panelbutton','floatpanel','styles'],init:function(l){var m=l.config,n=l.lang.colorButton,o;if(!b.hc){p('TextColor','fore',n.textColor
Title);p('BGColor','back',n.bgColorTitle);}function p(r,s,t){l.ui.add(r,4,{label:t,title:t,className:'cke_button_'+r.toLowerCase(),modes:{wysiwyg:1},panel:{css:l.skin.editor.css,attributes:{role:'listbox','aria-label':n.panelTitle}},onBlock:function(u,v){v.autoSize=true;v.element.addClass('cke_colorblock');v.element.setHtml(q(u,s));v.element.getDocument().getBody().setStyle('overflow','hidden');var w=v.keys,x=l.lang.dir=='rtl';w[x?37:39]='next';w[40]='next';w[9]='next';w[x?39:37]='prev';w[38]='prev';w[2000+9]='prev';w[32]='click';}});};function q(r,s){var t=[],u=m.colorButton_colors.split(','),v=u.length+(m.colorButton_enableMore?2:1),w=e.addFunction(function(C,D){if(C=='?'){var E=arguments.callee;function F(H){this.removeListener('ok',F);this.removeListener('cancel',F);H.name=='ok'&&E(this.getContentElement('picker','selectedColor').getValue(),D);};l.openDialog('colordialog',function(){this.on('ok',F);this.on('cancel',F);});return;}l.focus();r.hide();l.fire('saveSnapshot');
new a.style(m['colorButton_'+D+'Style'],{color:'inherit'}).remove(l.document);if(C){var G=m['colorButton_'+D+'Style'];G.childRule=D=='back'?function(){return false;}:function(H){return H.getName()!='a';};new a.style(G,{color:C}).apply(l.document);}l.fire('saveSnapshot');});t.push('<a class="cke_colorauto" _cke_focus=1 hidefocus=true title="',n.auto,'" onclick="CKEDITOR.tools.callFunction(',w,",null,'",s,"');return false;\" href=\"javascript:void('",n.auto,'\')" role="option" aria-posinset="1" aria-setsize="',v,'"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" style="background-color:#000"></span></td><td colspan=7 align=center>',n.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');
-for(var x=0;x<u.length;x++){if(x%8===0)t.push('</tr><tr>');var y=u[x].split('/'),z=y[0],A=y[1]||z;if(!y[1])z='#'+z.replace(/^(.)(.)(.)$/,'$1$1$2$2$3$3');var B=l.lang.colors[A]||A;t.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',B,'" onclick="CKEDITOR.tools.callFunction(',w,",'",z,"','",s,"'); return false;\" href=\"javascript:void('",B,'\')" role="option" aria-posinset="',x+2,'" aria-setsize="',v,'"><span class="cke_colorbox" style="background-color:#',A,'"></span></a></td>');}if(m.colorButton_enableMore)t.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',n.more,'" onclick="CKEDITOR.tools.callFunction(',w,",'?','",s,"');return false;\" href=\"javascript:void('",n.more,"')\"",' role="option" aria-posinset="',v,'" aria-setsize="',v,'">',n.more,'</a></td>');t.push('</tr></table>');return t.join('');};}});i.colorButton_enableMore=true;i.colorButton_colors='000,800000,8B4513,2F4F4F,008080,000080,4B0082,
696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF';i.colorButton_foreStyle={element:'span',styles:{color:'#(color)'},overrides:[{element:'font',attributes:{color:null}}]};i.colorButton_backStyle={element:'span',styles:{'background-color':'#(color)'}};(function(){j.colordialog={init:function(l){l.addCommand('colordialog',new a.dialogCommand('colordialog'));a.dialog.add('colordialog',this.path+'dialogs/colordialog.js');}};j.add('colordialog',j.colordialog);})();j.add('contextmenu',{requires:['menu'],beforeInit:function(l){l.contextMenu=new j.contextMenu(l);l.addCommand('contextMenu',{exec:function(){l.contextMenu.show(l.document.getBody());}});}});j.contextMenu=e.createClass({$:function(l){this.id='cke_'+e.getNextNumber();this.editor=l;this._.listeners=[];this._.functionId=e.addFunction(function(m){this._.panel
.hide();l.focus();l.execCommand(m);},this);this.definition={panel:{className:l.skinClass+' cke_contextmenu',attributes:{'aria-label':l.lang.contextmenu.options}}};},_:{onMenu:function(l,m,n,o){var p=this._.menu,q=this.editor;if(p){p.hide();p.removeAll();}else{p=this._.menu=new a.menu(q,this.definition);p.onClick=e.bind(function(z){p.hide();if(z.onClick)z.onClick();else if(z.command)q.execCommand(z.command);},this);p.onEscape=function(z){var A=this.parent;if(A){A._.panel.hideChild();var B=A._.panel._.panel._.currentBlock,C=B._.focusIndex;
-B._.markItem(C);}else if(z==27){this.hide();q.focus();}return false;};}var r=this._.listeners,s=[],t=this.editor.getSelection(),u=t&&t.getStartElement();p.onHide=e.bind(function(){p.onHide=null;if(c){var z=q.getSelection();z&&z.unlock();}this.onHide&&this.onHide();},this);for(var v=0;v<r.length;v++){var w=r[v](u,t);if(w)for(var x in w){var y=this.editor.getMenuItem(x);if(y){y.state=w[x];p.add(y);}}}p.items.length&&p.show(l,m||(q.lang.dir=='rtl'?2:1),n,o);}},proto:{addTarget:function(l,m){if(b.opera){var n;l.on('mousedown',function(r){r=r.data;if(r.$.button!=2){if(r.getKeystroke()==1000+1)l.fire('contextmenu',r);return;}if(m&&(b.mac?r.$.metaKey:r.$.ctrlKey))return;var s=r.getTarget();if(!n){var t=s.getDocument();n=t.createElement('input');n.$.type='button';t.getBody().append(n);}n.setAttribute('style','position:absolute;top:'+(r.$.clientY-2)+'px;left:'+(r.$.clientX-2)+'px;width:5px;height:5px;opacity:0.01');});l.on('mouseup',function(r){if(n){n.remove();n=undefined;l.fire('co
ntextmenu',r.data);}});}l.on('contextmenu',function(r){var s=r.data;if(m&&(b.webkit?o:b.mac?s.$.metaKey:s.$.ctrlKey))return;s.preventDefault();var t=s.getTarget().getDocument().getDocumentElement(),u=s.$.clientX,v=s.$.clientY;e.setTimeout(function(){this.show(t,null,u,v);},0,this);},this);if(b.webkit){var o,p=function(r){o=b.mac?r.data.$.metaKey:r.data.$.ctrlKey;},q=function(){o=0;};l.on('keydown',p);l.on('keyup',q);l.on('contextmenu',q);}},addListener:function(l){this._.listeners.push(l);},show:function(l,m,n,o){this.editor.focus();if(c){var p=this.editor.getSelection();p&&p.lock();}this._.onMenu(l||a.document.getDocumentElement(),m,n||0,o||0);}}});(function(){function l(n){var o=this.att,p=n&&n.hasAttribute(o)&&n.getAttribute(o)||'';if(p!==undefined)this.setValue(p);};function m(){var n;for(var o=0;o<arguments.length;o++){if(arguments[o] instanceof h){n=arguments[o];break;}}if(n){var p=this.att,q=this.getValue();if(q)n.setAttribute(p,q);else n.removeAttribute(p,q);}};j.add
('dialogadvtab',{createAdvancedTab:function(n,o){if(!o)o={id:1,dir:1,classes:1,styles:1};var p=n.lang.common,q={id:'advanced',label:p.advancedTab,title:p.advancedTab,elements:[{type:'vbox',padding:1,children:[]}]},r=[];if(o.id||o.dir){if(o.id)r.push({id:'advId',att:'id',type:'text',label:p.id,setup:l,commit:m});if(o.dir)r.push({id:'advLangDir',att:'dir',type:'select',label:p.langDir,'default':'',style:'width:100%',items:[[p.notSet,''],[p.langDirLTR,'ltr'],[p.langDirRTL,'rtl']],setup:l,commit:m});q.elements[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(r)});
-}if(o.styles||o.classes){r=[];if(o.styles)r.push({id:'advStyles',att:'style',type:'text',label:p.styles,'default':'',onChange:function(){},getStyle:function(s,t){var u=this.getValue().match(new RegExp(s+'\\s*:s*([^;]*)','i'));return u?u[1]:t;},updateStyle:function(s,t){var u=this.getValue();if(u)u=u.replace(new RegExp('\\s*'+s+'s*:[^;]*(?:$|;s*)','i'),'').replace(/^[;\s]+/,'').replace(/\s+$/,'');if(t){u&&!/;\s*$/.test(u)&&(u+='; ');u+=s+': '+t;}this.setValue(u,true);},setup:l,commit:m});if(o.classes)r.push({type:'hbox',widths:['45%','55%'],children:[{id:'advCSSClasses',att:'class',type:'text',label:p.cssClasses,'default':'',setup:l,commit:m}]});q.elements[0].children.push({type:'hbox',widths:['50%','50%'],children:[].concat(r)});}return q;}});})();(function(){j.add('div',{requires:['editingblock','domiterator','styles'],init:function(l){var m=l.lang.div;l.addCommand('creatediv',new a.dialogCommand('creatediv'));l.addCommand('editdiv',new a.dialogCommand('editdiv'));l.addComm
and('removediv',{exec:function(n){var o=n.getSelection(),p=o&&o.getRanges(),q,r=o.createBookmarks(),s,t=[];function u(w){var x=new d.elementPath(w),y=x.blockLimit,z=y.is('div')&&y;if(z&&!z.getAttribute('_cke_div_added')){t.push(z);z.setAttribute('_cke_div_added');}};for(var v=0;v<p.length;v++){q=p[v];if(q.collapsed)u(o.getStartElement());else{s=new d.walker(q);s.evaluator=u;s.lastForward();}}for(v=0;v<t.length;v++)t[v].remove(true);o.selectBookmarks(r);}});l.ui.addButton('CreateDiv',{label:m.toolbar,command:'creatediv'});if(l.addMenuItems){l.addMenuItems({editdiv:{label:m.edit,command:'editdiv',group:'div',order:1},removediv:{label:m.remove,command:'removediv',group:'div',order:5}});if(l.contextMenu)l.contextMenu.addListener(function(n,o){if(!n||n.isReadOnly())return null;var p=new d.elementPath(n),q=p.blockLimit;if(q&&q.getAscendant('div',true))return{editdiv:2,removediv:2};return null;});}a.dialog.add('creatediv',this.path+'dialogs/div.js');a.dialog.add('editdiv',this.path
+'dialogs/div.js');}});})();(function(){var l={toolbarFocus:{exec:function(n){var o=n._.elementsPath.idBase,p=a.document.getById(o+'0');if(p)p.focus();}}},m='<span class="cke_empty"> </span>';j.add('elementspath',{requires:['selection'],init:function(n){var o='cke_path_'+n.name,p,q=function(){if(!p)p=a.document.getById(o);return p;},r='cke_elementspath_'+e.getNextNumber()+'_';n._.elementsPath={idBase:r,filters:[]};n.on('themeSpace',function(s){if(s.data.space=='bottom')s.data.html+='<span id="'+o+'_label" class="cke_voice_label">'+n.lang.elementsPath.eleLabel+'</span>'+'<div id="'+o+'" class="cke_path" role="group" aria-labelledby="'+o+'_label">'+m+'</div>';
-});n.on('selectionChange',function(s){var t=b,u=s.data.selection,v=u.getStartElement(),w=[],x=s.editor,y=x._.elementsPath.list=[],z=x._.elementsPath.filters;while(v){var A=0;for(var B=0;B<z.length;B++){if(z[B](v)===false){A=1;break;}}if(!A){var C=y.push(v)-1,D;if(v.getAttribute('_cke_real_element_type'))D=v.getAttribute('_cke_real_element_type');else D=v.getName();var E='';if(t.opera||t.gecko&&t.mac)E+=' onkeypress="return false;"';if(t.gecko)E+=' onblur="this.style.cssText = this.style.cssText;"';var F=x.lang.elementsPath.eleTitle.replace(/%1/,D);w.unshift('<a id="',r,C,'" href="javascript:void(\'',D,'\')" tabindex="-1" title="',F,'"'+(b.gecko&&b.version<10900?' onfocus="event.preventBubble();"':'')+' hidefocus="true" '+" onkeydown=\"return CKEDITOR._.elementsPath.keydown('",x.name,"',",C,', event);"'+E," onclick=\"return CKEDITOR._.elementsPath.click('",x.name,"',",C,');"',' role="button" aria-labelledby="'+r+C+'_label">',D,'<span id="',r,C,'_label" class="cke_label">'+F+'
</span>','</a>');}if(D=='body')break;v=v.getParent();}q().setHtml(w.join('')+m);});n.on('contentDomUnload',function(){p&&p.setHtml(m);});n.addCommand('elementsPathFocus',l.toolbarFocus);}});})();a._.elementsPath={click:function(l,m){var n=a.instances[l];n.focus();var o=n._.elementsPath.list[m];n.getSelection().selectElement(o);return false;},keydown:function(l,m,n){var o=k.button._.instances[m],p=a.instances[l],q=p._.elementsPath.idBase,r;n=new d.event(n);var s=p.lang.dir=='rtl';switch(n.getKeystroke()){case s?39:37:case 9:r=a.document.getById(q+(m+1));if(!r)r=a.document.getById(q+'0');r.focus();return false;case s?37:39:case 2000+9:r=a.document.getById(q+(m-1));if(!r)r=a.document.getById(q+(p._.elementsPath.list.length-1));r.focus();return false;case 27:p.focus();return false;case 13:case 32:this.click(l,m);return false;}return true;}};(function(){j.add('enterkey',{requires:['keystrokes','indent'],init:function(s){var t=s.specialKeys;t[13]=q;t[2000+13]=p;}});j.enterkey={ent
erBlock:function(s,t,u,v){u=u||r(s);if(!u)return;var w=u.document;if(u.checkStartOfBlock()&&u.checkEndOfBlock()){var x=new d.elementPath(u.startContainer),y=x.block;if(y&&(y.is('li')||y.getParent().is('li'))){s.execCommand('outdent');return;}}var z=t==3?'div':'p',A=u.splitBlock(z);if(!A)return;var B=A.previousBlock,C=A.nextBlock,D=A.wasStartOfBlock,E=A.wasEndOfBlock,F;if(C){F=C.getParent();if(F.is('li')){C.breakParent(F);C.move(C.getNext(),true);}}else if(B&&(F=B.getParent())&&F.is('li')){B.breakParent(F);u.moveToElementEditStart(B.getNext());
-B.move(B.getPrevious());}if(!D&&!E){if(C.is('li')&&(F=C.getFirst(d.walker.invisible(true)))&&F.is&&F.is('ul','ol'))(c?w.createText('\xa0'):w.createElement('br')).insertBefore(F);if(C)u.moveToElementEditStart(C);}else{var G;if(B){if(B.is('li')||!o.test(B.getName()))G=B.clone();}else if(C)G=C.clone();if(!G)G=w.createElement(z);else if(v&&!G.is('li'))G.renameNode(z);var H=A.elementPath;if(H)for(var I=0,J=H.elements.length;I<J;I++){var K=H.elements[I];if(K.equals(H.block)||K.equals(H.blockLimit))break;if(f.$removeEmpty[K.getName()]){K=K.clone();G.moveChildren(K);G.append(K);}}if(!c)G.appendBogus();u.insertNode(G);if(c&&D&&(!E||!B.getChildCount())){u.moveToElementEditStart(E?B:G);u.select();}u.moveToElementEditStart(D&&!E?C:G);}if(!c)if(C){var L=w.createElement('span');L.setHtml(' ');u.insertNode(L);L.scrollIntoView();u.deleteContents();}else G.scrollIntoView();u.select();},enterBr:function(s,t,u,v){u=u||r(s);if(!u)return;var w=u.document,x=t==3?'div':'p',y=u.checkEndOfBlock
(),z=new d.elementPath(s.getSelection().getStartElement()),A=z.block,B=A&&z.block.getName(),C=false;if(!v&&B=='li'){n(s,t,u,v);return;}if(!v&&y&&o.test(B)){w.createElement('br').insertAfter(A);if(b.gecko)w.createText('').insertAfter(A);u.setStartAt(A.getNext(),c?3:1);}else{var D;C=B=='pre';if(C&&!b.gecko)D=w.createText(c?'\r':'\n');else D=w.createElement('br');u.deleteContents();u.insertNode(D);if(!c)w.createText('\ufeff').insertAfter(D);if(y&&!c)D.getParent().appendBogus();if(!c)D.getNext().$.nodeValue='';if(c)u.setStartAt(D,4);else u.setStartAt(D.getNext(),1);if(!c){var E=null;if(!b.gecko){E=w.createElement('span');E.setHtml(' ');}else E=w.createElement('br');E.insertBefore(D.getNext());E.scrollIntoView();E.remove();}}u.collapse(true);u.select(C);}};var l=j.enterkey,m=l.enterBr,n=l.enterBlock,o=/^h[1-6]$/;function p(s){if(s.mode!='wysiwyg')return false;if(s.getSelection().getStartElement().hasAscendant('pre',true)){setTimeout(function(){n(s,s.config.enterMode,null,tru
e);},0);return true;}else return q(s,s.config.shiftEnterMode,true);};function q(s,t,u){u=s.config.forceEnterMode||u;if(s.mode!='wysiwyg')return false;if(!t)t=s.config.enterMode;setTimeout(function(){s.fire('saveSnapshot');if(t==2||s.getSelection().getStartElement().hasAscendant('pre',true))m(s,t,null,u);else n(s,t,null,u);},0);return true;};function r(s){var t=s.getSelection().getRanges(true);for(var u=t.length-1;u>0;u--)t[u].deleteContents();return t[0];};})();(function(){var l='nbsp,gt,lt,quot',m='iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplu
s,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro',n='Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml',o='Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv';
-function p(q,r){var s={},t=[],u={nbsp:'\xa0',shy:'Â',gt:'>',lt:'<'};q=q.replace(/\b(nbsp|shy|gt|lt|amp)(?:,|$)/g,function(z,A){var B=r?'&'+A+';':u[A],C=r?u[A]:'&'+A+';';s[B]=C;t.push(B);return '';});if(!r){q=q.split(',');var v=document.createElement('div'),w;v.innerHTML='&'+q.join(';&')+';';w=v.innerHTML;v=null;for(var x=0;x<w.length;x++){var y=w.charAt(x);s[y]='&'+q[x]+';';t.push(y);}}s.regex=t.join(r?'|':'');return s;};j.add('entities',{afterInit:function(q){var r=q.config,s=q.dataProcessor,t=s&&s.htmlFilter;if(t){var u=l;if(r.entities){u+=','+m;if(r.entities_latin)u+=','+n;if(r.entities_greek)u+=','+o;if(r.entities_additional)u+=','+r.entities_additional;}var v=p(u),w='['+v.regex+']';delete v.regex;if(r.entities&&r.entities_processNumerical)w='[^ -~]|'+w;w=new RegExp(w,'g');function x(B){return r.entities_processNumerical=='force'||!v[B]?'&#'+B.charCodeAt(0)+';':v[B];};var y=p([l,'shy'].join(','),true),z=new RegExp(y.regex,'g');function A(B){return y[B];};t.addRules({tex
t:function(B){return B.replace(z,A).replace(w,x);}});}}});})();i.entities=true;i.entities_latin=true;i.entities_greek=true;i.entities_processNumerical=false;i.entities_additional='#39';(function(){function l(u,v){var w=[];if(!v)return u;else for(var x in v)w.push(x+'='+encodeURIComponent(v[x]));return u+(u.indexOf('?')!=-1?'&':'?')+w.join('&');};function m(u){u+='';var v=u.charAt(0).toUpperCase();return v+u.substr(1);};function n(u){var B=this;var v=B.getDialog(),w=v.getParentEditor();w._.filebrowserSe=B;var x=w.config['filebrowser'+m(v.getName())+'WindowWidth']||w.config.filebrowserWindowWidth||'80%',y=w.config['filebrowser'+m(v.getName())+'WindowHeight']||w.config.filebrowserWindowHeight||'70%',z=B.filebrowser.params||{};z.CKEditor=w.name;z.CKEditorFuncNum=w._.filebrowserFn;if(!z.langCode)z.langCode=w.langCode;var A=l(B.filebrowser.url,z);w.popup(A,x,y,w.config.fileBrowserWindowFeatures);};function o(u){var x=this;var v=x.getDialog(),w=v.getParentEditor();w._.filebrowserSe
=x;if(!v.getContentElement(x['for'][0],x['for'][1]).getInputElement().$.value)return false;if(!v.getContentElement(x['for'][0],x['for'][1]).getAction())return false;return true;};function p(u,v,w){var x=w.params||{};x.CKEditor=u.name;x.CKEditorFuncNum=u._.filebrowserFn;if(!x.langCode)x.langCode=u.langCode;v.action=l(w.url,x);v.filebrowser=w;};function q(u,v,w,x){var y,z;for(var A in x){y=x[A];if(y.type=='hbox'||y.type=='vbox')q(u,v,w,y.children);if(!y.filebrowser)continue;if(typeof y.filebrowser=='string'){var B={action:y.type=='fileButton'?'QuickUpload':'Browse',target:y.filebrowser};
-y.filebrowser=B;}if(y.filebrowser.action=='Browse'){var C=y.filebrowser.url||u.config['filebrowser'+m(v)+'BrowseUrl']||u.config.filebrowserBrowseUrl;if(C){y.onClick=n;y.filebrowser.url=C;y.hidden=false;}}else if(y.filebrowser.action=='QuickUpload'&&y['for']){C=y.filebrowser.url||u.config['filebrowser'+m(v)+'UploadUrl']||u.config.filebrowserUploadUrl;if(C){var D=y.onClick;y.onClick=function(E){var F=E.sender;if(D&&D.call(F,E)===false)return false;return o.call(F,E);};y.filebrowser.url=C;y.hidden=false;p(u,w.getContents(y['for'][0]).get(y['for'][1]),y.filebrowser);}}}};function r(u,v){var w=v.getDialog(),x=v.filebrowser.target||null;u=u.replace(/#/g,'%23');if(x){var y=x.split(':'),z=w.getContentElement(y[0],y[1]);if(z){z.setValue(u);w.selectPage(y[0]);}}};function s(u,v,w){if(w.indexOf(';')!==-1){var x=w.split(';');for(var y=0;y<x.length;y++){if(s(u,v,x[y]))return true;}return false;}var z=u.getContents(v).get(w).filebrowser;return z&&z.url;};function t(u,v){var z=this;var w=z
._.filebrowserSe.getDialog(),x=z._.filebrowserSe['for'],y=z._.filebrowserSe.filebrowser.onSelect;if(x)w.getContentElement(x[0],x[1]).reset();if(typeof v=='function'&&v.call(z._.filebrowserSe)===false)return;if(y&&y.call(z._.filebrowserSe,u,v)===false)return;if(typeof v=='string'&&v)alert(v);if(u)r(u,z._.filebrowserSe);};j.add('filebrowser',{init:function(u,v){u._.filebrowserFn=e.addFunction(t,u);}});a.on('dialogDefinition',function(u){var v=u.data.definition,w;for(var x in v.contents){if(w=v.contents[x]){q(u.editor,u.data.name,v,w.elements);if(w.hidden&&w.filebrowser)w.hidden=!s(v,w.id,w.filebrowser);}}});})();j.add('find',{init:function(l){var m=j.find;l.ui.addButton('Find',{label:l.lang.findAndReplace.find,command:'find'});var n=l.addCommand('find',new a.dialogCommand('find'));n.canUndo=false;l.ui.addButton('Replace',{label:l.lang.findAndReplace.replace,command:'replace'});var o=l.addCommand('replace',new a.dialogCommand('replace'));o.canUndo=false;a.dialog.add('find',this
.path+'dialogs/find.js');a.dialog.add('replace',this.path+'dialogs/find.js');},requires:['styles']});i.find_highlight={element:'span',styles:{'background-color':'#004',color:'#fff'}};(function(){var l=/\.swf(?:$|\?)/i,m=/^\d+(?:\.\d+)?$/;function n(q){if(m.test(q))return q+'px';return q;};function o(q){var r=q.attributes;return r.type=='application/x-shockwave-flash'||l.test(r.src||'');};function p(q,r){var s=q.createFakeParserElement(r,'cke_flash','flash',true),t=s.attributes.style||'',u=r.attributes.width,v=r.attributes.height;
-if(typeof u!='undefined')t=s.attributes.style=t+'width:'+n(u)+';';if(typeof v!='undefined')t=s.attributes.style=t+'height:'+n(v)+';';return s;};j.add('flash',{init:function(q){q.addCommand('flash',new a.dialogCommand('flash'));q.ui.addButton('Flash',{label:q.lang.common.flash,command:'flash'});a.dialog.add('flash',this.path+'dialogs/flash.js');q.addCss('img.cke_flash{background-image: url('+a.getUrl(this.path+'images/placeholder.png')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 80px;'+'height: 80px;'+'}');if(q.addMenuItems)q.addMenuItems({flash:{label:q.lang.flash.properties,command:'flash',group:'flash'}});q.on('doubleclick',function(r){var s=r.data.element;if(s.is('img')&&s.getAttribute('_cke_real_element_type')=='flash')r.data.dialog='flash';});if(q.contextMenu)q.contextMenu.addListener(function(r,s){if(r&&r.is('img')&&!r.isReadOnly()&&r.getAttribute('_cke_real_element_type')=='flash')return{flash:2};});}
,afterInit:function(q){var r=q.dataProcessor,s=r&&r.dataFilter;if(s)s.addRules({elements:{'cke:object':function(t){var u=t.attributes,v=u.classid&&String(u.classid).toLowerCase();if(!v){for(var w=0;w<t.children.length;w++){if(t.children[w].name=='cke:embed'){if(!o(t.children[w]))return null;return p(q,t);}}return null;}return p(q,t);},'cke:embed':function(t){if(!o(t))return null;return p(q,t);}}},5);},requires:['fakeobjects']});})();e.extend(i,{flashEmbedTagOnly:false,flashAddEmbedTag:true,flashConvertOnEdit:false});(function(){function l(m,n,o,p,q,r,s){var t=m.config,u=q.split(';'),v=[],w={};for(var x=0;x<u.length;x++){var y=u[x];if(y){y=y.split('/');var z={},A=u[x]=y[0];z[o]=v[x]=y[1]||A;w[A]=new a.style(s,z);w[A]._.definition.name=A;}else u.splice(x--,1);}m.ui.addRichCombo(n,{label:p.label,title:p.panelTitle,className:'cke_'+(o=='size'?'fontSize':'font'),panel:{css:m.skin.editor.css.concat(t.contentsCss),multiSelect:false,attributes:{'aria-label':p.panelTitle}},init:funct
ion(){this.startGroup(p.panelTitle);for(var B=0;B<u.length;B++){var C=u[B];this.add(C,w[C].buildPreview(),C);}},onClick:function(B){m.focus();m.fire('saveSnapshot');var C=w[B];if(this.getValue()==B)C.remove(m.document);else C.apply(m.document);m.fire('saveSnapshot');},onRender:function(){m.on('selectionChange',function(B){var C=this.getValue(),D=B.data.path,E=D.elements;for(var F=0,G;F<E.length;F++){G=E[F];for(var H in w){if(w[H].checkElementRemovable(G,true)){if(H!=C)this.setValue(H);return;}}}this.setValue('',r);},this);
-}});};j.add('font',{requires:['richcombo','styles'],init:function(m){var n=m.config;l(m,'Font','family',m.lang.font,n.font_names,n.font_defaultLabel,n.font_style);l(m,'FontSize','size',m.lang.fontSize,n.fontSize_sizes,n.fontSize_defaultLabel,n.fontSize_style);}});})();i.font_names='Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif';i.font_defaultLabel='';i.font_style={element:'span',styles:{'font-family':'#(family)'},overrides:[{element:'font',attributes:{face:null}}]};i.fontSize_sizes='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px';i.fontSize_defaultLabel='';i.fontSize_style={elemen
t:'span',styles:{'font-size':'#(size)'},overrides:[{element:'font',attributes:{size:null}}]};j.add('format',{requires:['richcombo','styles'],init:function(l){var m=l.config,n=l.lang.format,o=m.format_tags.split(';'),p={};for(var q=0;q<o.length;q++){var r=o[q];p[r]=new a.style(m['format_'+r]);p[r]._.enterMode=l.config.enterMode;}l.ui.addRichCombo('Format',{label:n.label,title:n.panelTitle,className:'cke_format',panel:{css:l.skin.editor.css.concat(m.contentsCss),multiSelect:false,attributes:{'aria-label':n.panelTitle}},init:function(){this.startGroup(n.panelTitle);for(var s in p){var t=n['tag_'+s];this.add(s,'<'+s+'>'+t+'</'+s+'>',t);}},onClick:function(s){l.focus();l.fire('saveSnapshot');p[s].apply(l.document);setTimeout(function(){l.fire('saveSnapshot');},0);},onRender:function(){l.on('selectionChange',function(s){var t=this.getValue(),u=s.data.path;for(var v in p){if(p[v].checkActive(u)){if(v!=t)this.setValue(v,l.lang.format['tag_'+v]);return;}}this.setValue('');},this);}})
;}});i.format_tags='p;h1;h2;h3;h4;h5;h6;pre;address;div';i.format_p={element:'p'};i.format_div={element:'div'};i.format_pre={element:'pre'};i.format_address={element:'address'};i.format_h1={element:'h1'};i.format_h2={element:'h2'};i.format_h3={element:'h3'};i.format_h4={element:'h4'};i.format_h5={element:'h5'};i.format_h6={element:'h6'};j.add('forms',{init:function(l){var m=l.lang;l.addCss('form{border: 1px dotted #FF0000;padding: 2px;}\n');l.addCss('img.cke_hidden{background-image: url('+a.getUrl(this.path+'images/hiddenfield.gif')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 16px !important;'+'height: 16px !important;'+'}');
-var n=function(p,q,r){l.addCommand(q,new a.dialogCommand(q));l.ui.addButton(p,{label:m.common[p.charAt(0).toLowerCase()+p.slice(1)],command:q});a.dialog.add(q,r);},o=this.path+'dialogs/';n('Form','form',o+'form.js');n('Checkbox','checkbox',o+'checkbox.js');n('Radio','radio',o+'radio.js');n('TextField','textfield',o+'textfield.js');n('Textarea','textarea',o+'textarea.js');n('Select','select',o+'select.js');n('Button','button',o+'button.js');n('ImageButton','imagebutton',j.getPath('image')+'dialogs/image.js');n('HiddenField','hiddenfield',o+'hiddenfield.js');if(l.addMenuItems)l.addMenuItems({form:{label:m.form.menu,command:'form',group:'form'},checkbox:{label:m.checkboxAndRadio.checkboxTitle,command:'checkbox',group:'checkbox'},radio:{label:m.checkboxAndRadio.radioTitle,command:'radio',group:'radio'},textfield:{label:m.textfield.title,command:'textfield',group:'textfield'},hiddenfield:{label:m.hidden.title,command:'hiddenfield',group:'hiddenfield'},imagebutton:{label:m.image.t
itleButton,command:'imagebutton',group:'imagebutton'},button:{label:m.button.title,command:'button',group:'button'},select:{label:m.select.title,command:'select',group:'select'},textarea:{label:m.textarea.title,command:'textarea',group:'textarea'}});if(l.contextMenu){l.contextMenu.addListener(function(p){if(p&&p.hasAscendant('form',true)&&!p.isReadOnly())return{form:2};});l.contextMenu.addListener(function(p){if(p&&!p.isReadOnly()){var q=p.getName();if(q=='select')return{select:2};if(q=='textarea')return{textarea:2};if(q=='input'){var r=p.getAttribute('type');if(r=='text'||r=='password')return{textfield:2};if(r=='button'||r=='submit'||r=='reset')return{button:2};if(r=='checkbox')return{checkbox:2};if(r=='radio')return{radio:2};if(r=='image')return{imagebutton:2};}if(q=='img'&&p.getAttribute('_cke_real_element_type')=='hiddenfield')return{hiddenfield:2};}});}l.on('doubleclick',function(p){var q=p.data.element;if(q.is('form'))p.data.dialog='form';else if(q.is('select'))p.data.
dialog='select';else if(q.is('textarea'))p.data.dialog='textarea';else if(q.is('img')&&q.getAttribute('_cke_real_element_type')=='hiddenfield')p.data.dialog='hiddenfield';else if(q.is('input')){var r=q.getAttribute('type');switch(r){case 'text':case 'password':p.data.dialog='textfield';break;case 'button':case 'submit':case 'reset':p.data.dialog='button';break;case 'checkbox':p.data.dialog='checkbox';break;case 'radio':p.data.dialog='radio';break;case 'image':p.data.dialog='imagebutton';break;}}});},afterInit:function(l){var m=l.dataProcessor,n=m&&m.htmlFilter,o=m&&m.dataFilter;
-if(c)n&&n.addRules({elements:{input:function(p){var q=p.attributes,r=q.type;if(r=='checkbox'||r=='radio')q.value=='on'&&delete q.value;}}});if(o)o.addRules({elements:{input:function(p){if(p.attributes.type=='hidden')return l.createFakeParserElement(p,'cke_hidden','hiddenfield');}}});},requires:['image','fakeobjects']});if(c)h.prototype.hasAttribute=function(l){var o=this;var m=o.$.attributes.getNamedItem(l);if(o.getName()=='input')switch(l){case 'class':return o.$.className.length>0;case 'checked':return!!o.$.checked;case 'value':var n=o.getAttribute('type');if(n=='checkbox'||n=='radio')return o.$.value!='on';break;default:}return!!(m&&m.specified);};(function(){var l={canUndo:false,exec:function(n){n.insertElement(n.document.createElement('hr'));}},m='horizontalrule';j.add(m,{init:function(n){n.addCommand(m,l);n.ui.addButton('HorizontalRule',{label:n.lang.horizontalrule,command:m});}});})();(function(){var l=/^[\t\r\n ]*(?: |\xa0)$/,m='{cke_protected}';function n(R){va
r S=R.children.length,T=R.children[S-1];while(T&&T.type==3&&!e.trim(T.value))T=R.children[--S];return T;};function o(R,S){var T=R.children,U=n(R);if(U){if((S||!c)&&U.type==1&&U.name=='br')T.pop();if(U.type==3&&l.test(U.value))T.pop();}};function p(R){var S=n(R);return!S||S.type==1&&S.name=='br'||R.name=='form'&&S.name=='input';};function q(R){o(R,true);if(p(R))if(c)R.add(new a.htmlParser.text('\xa0'));else R.add(new a.htmlParser.element('br',{}));};function r(R){o(R);if(p(R))R.add(new a.htmlParser.text('\xa0'));};var s=f,t=e.extend({},s.$block,s.$listItem,s.$tableContent);for(var u in t){if(!('br' in s[u]))delete t[u];}delete t.pre;var v={elements:{},attributeNames:[[/^on/,'_cke_pa_on']]},w={elements:{}};for(u in t)w.elements[u]=q;var x={elementNames:[[/^cke:/,''],[/^\?xml:namespace$/,'']],attributeNames:[[/^_cke_(saved|pa)_/,''],[/^_cke.*/,''],['hidefocus','']],elements:{$:function(R){var S=R.attributes;if(S){if(S.cke_temp)return false;var T=['name','href','src'],U;for(var
V=0;V<T.length;V++){U='_cke_saved_'+T[V];U in S&&delete S[T[V]];}}return R;},embed:function(R){var S=R.parent;if(S&&S.name=='object'){var T=S.attributes.width,U=S.attributes.height;T&&(R.attributes.width=T);U&&(R.attributes.height=U);}},param:function(R){R.children=[];R.isEmpty=true;return R;},a:function(R){if(!(R.children.length||R.attributes.name||R.attributes._cke_saved_name))return false;},html:function(R){delete R.attributes.contenteditable;delete R.attributes['class'];},body:function(R){delete R.attributes.spellcheck;
-delete R.attributes.contenteditable;},style:function(R){var S=R.children[0];S&&S.value&&(S.value=e.trim(S.value));if(!R.attributes.type)R.attributes.type='text/css';},title:function(R){var S=R.children[0];S&&(S.value=R.attributes._cke_title||'');}},attributes:{'class':function(R,S){return e.ltrim(R.replace(/(?:^|\s+)cke_[^\s]*/g,''))||false;}},comment:function(R){if(R.substr(0,m.length)==m){if(R.substr(m.length,3)=='{C}')R=R.substr(m.length+3);else R=R.substr(m.length);return new a.htmlParser.cdata(decodeURIComponent(R));}return R;}},y={elements:{}};for(u in t)y.elements[u]=r;if(c)x.attributes.style=function(R,S){return R.toLowerCase();};function z(R){R.attributes.contenteditable='false';};function A(R){delete R.attributes.contenteditable;};for(u in {input:1,textarea:1}){v.elements[u]=z;x.elements[u]=A;}var B=/<((?:a|area|img|input)[\s\S]*?\s)((href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+)))([^>]*)>/gi,C=/\s_cke_saved_src\s*=/,D=/(?:<style(?=[ >])[^>]*>[\s\S]*
<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,E=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,F=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,G=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,H=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi;function I(R){return R.replace(B,function(S,T,U,V,W){if(V=='src'&&C.test(S))return S;else return '<'+T+U+' _cke_saved_'+U+W+'>';});};function J(R){return R.replace(D,function(S){return '<cke:encoded>'+encodeURIComponent(S)+'</cke:encoded>';});};function K(R){return R.replace(E,function(S,T){return decodeURIComponent(T);});};function L(R){return R.replace(F,'$1cke:$2');};function M(R){return R.replace(G,'$1$2');};function N(R){return R.replace(H,'<cke:$1$2></cke:$1>');};function O(R){return R.replace(/<!--(?!{cke_protected})[\s\S]+?-->/g,function(S){return '<!--'+m+'{C}'+encodeURIComponent(S).replace(/--/g,'%2D%2D')+'-->';});};function P(R){return R.replace(/<!--\{cke_protected\}\{C\}([\s\S]+?)-->/g,function(S,T){return decodeUR
IComponent(T);});};function Q(R,S){var T=[],U=/<\!--\{cke_temp(comment)?\}(\d*?)-->/g,V=[/<script[\s\S]*?<\/script>/gi,/<noscript[\s\S]*?<\/noscript>/gi].concat(S);R=R.replace(/<!--[\s\S]*?-->/g,function(X){return '<!--{cke_tempcomment}'+(T.push(X)-1)+'-->';});for(var W=0;W<V.length;W++)R=R.replace(V[W],function(X){X=X.replace(U,function(Y,Z,aa){return T[aa];});return '<!--{cke_temp}'+(T.push(X)-1)+'-->';});R=R.replace(U,function(X,Y,Z){return '<!--'+m+(Y?'{C}':'')+encodeURIComponent(T[Z]).replace(/--/g,'%2D%2D')+'-->';
-});return R;};j.add('htmldataprocessor',{requires:['htmlwriter'],init:function(R){var S=R.dataProcessor=new a.htmlDataProcessor(R);S.writer.forceSimpleAmpersand=R.config.forceSimpleAmpersand;S.dataFilter.addRules(v);S.dataFilter.addRules(w);S.htmlFilter.addRules(x);S.htmlFilter.addRules(y);}});a.htmlDataProcessor=function(R){var S=this;S.editor=R;S.writer=new a.htmlWriter();S.dataFilter=new a.htmlParser.filter();S.htmlFilter=new a.htmlParser.filter();};a.htmlDataProcessor.prototype={toHtml:function(R,S){R=Q(R,this.editor.config.protectedSource);R=I(R);R=J(R);R=L(R);R=N(R);var T=new h('div');T.setHtml('a'+R);R=T.getHtml().substr(1);R=M(R);R=K(R);R=P(R);var U=a.htmlParser.fragment.fromHtml(R,S),V=new a.htmlParser.basicWriter();U.writeHtml(V,this.dataFilter);R=V.getHtml(true);R=O(R);return R;},toDataFormat:function(R,S){var T=this.writer,U=a.htmlParser.fragment.fromHtml(R,S);T.reset();U.writeHtml(T,this.htmlFilter);return T.getHtml(true);}};})();i.forceSimpleAmpersand=false;j.a
dd('image',{init:function(l){var m='image';a.dialog.add(m,this.path+'dialogs/image.js');l.addCommand(m,new a.dialogCommand(m));l.ui.addButton('Image',{label:l.lang.common.image,command:m});l.on('doubleclick',function(n){var o=n.data.element;if(o.is('img')&&!o.getAttribute('_cke_realelement'))n.data.dialog='image';});if(l.addMenuItems)l.addMenuItems({image:{label:l.lang.image.menu,command:'image',group:'image'}});if(l.contextMenu)l.contextMenu.addListener(function(n,o){if(!n||!n.is('img')||n.getAttribute('_cke_realelement')||n.isReadOnly())return null;return{image:2};});}});i.image_removeLinkByEmptyURL=true;(function(){var l={ol:1,ul:1},m=d.walker.whitespaces(true),n=d.walker.bookmark(false,true);function o(t,u){t.getCommand(this.name).setState(u);};function p(t){var C=this;var u=t.editor,v=t.data.path,w=v&&v.contains(l);if(w)return o.call(C,u,2);if(!C.useIndentClasses&&C.name=='indent')return o.call(C,u,2);var x=t.data.path,y=x.block||x.blockLimit;if(!y)return o.call(C,u,0);
if(C.useIndentClasses){var z=y.$.className.match(C.classNameRegex),A=0;if(z){z=z[1];A=C.indentClassMap[z];}if(C.name=='outdent'&&!A||C.name=='indent'&&A==u.config.indentClasses.length)return o.call(C,u,0);return o.call(C,u,2);}else{var B=parseInt(y.getStyle(r(y)),10);if(isNaN(B))B=0;if(B<=0)return o.call(C,u,0);return o.call(C,u,2);}};function q(t,u){var w=this;w.name=u;w.useIndentClasses=t.config.indentClasses&&t.config.indentClasses.length>0;if(w.useIndentClasses){w.classNameRegex=new RegExp('(?:^|\\s+)('+t.config.indentClasses.join('|')+')(?=$|\\s)');
-w.indentClassMap={};for(var v=0;v<t.config.indentClasses.length;v++)w.indentClassMap[t.config.indentClasses[v]]=v+1;}w.startDisabled=u=='outdent';};function r(t){return t.getComputedStyle('direction')=='ltr'?'margin-left':'margin-right';};function s(t){return t.type=1&&t.is('li');};q.prototype={exec:function(t){var u=this,v={};function w(N){var O=C.startContainer,P=C.endContainer;while(O&&!O.getParent().equals(N))O=O.getParent();while(P&&!P.getParent().equals(N))P=P.getParent();if(!O||!P)return;var Q=O,R=[],S=false;while(!S){if(Q.equals(P))S=true;R.push(Q);Q=Q.getNext();}if(R.length<1)return;var T=N.getParents(true);for(var U=0;U<T.length;U++){if(T[U].getName&&l[T[U].getName()]){N=T[U];break;}}var V=u.name=='indent'?1:-1,W=R[0],X=R[R.length-1],Y=j.list.listToArray(N,v),Z=Y[X.getCustomData('listarray_index')].indent;for(U=W.getCustomData('listarray_index');U<=X.getCustomData('listarray_index');U++){Y[U].indent+=V;var aa=Y[U].parent;Y[U].parent=new h(aa.getName(),aa.getDocumen
t());}for(U=X.getCustomData('listarray_index')+1;U<Y.length&&Y[U].indent>Z;U++)Y[U].indent+=V;var ab=N.getAttribute('dir')||N.getStyle('direction'),ac=j.list.arrayToList(Y,v,null,t.config.enterMode,ab);if(u.name=='outdent'){var ad;if((ad=N.getParent())&&ad.is('li')){var ae=ac.listNode.getChildren(),af=[],ag=ae.count(),ah;for(U=ag-1;U>=0;U--){if((ah=ae.getItem(U))&&ah.is&&ah.is('li'))af.push(ah);}}}if(ac)ac.listNode.replace(N);if(af&&af.length)for(U=0;U<af.length;U++){var ai=af[U],aj=ai;while((aj=aj.getNext())&&aj.is&&aj.getName() in l){if(c&&!ai.getFirst(function(ak){return m(ak)&&n(ak);}))ai.append(C.document.createText('\xa0'));ai.append(aj);}ai.insertAfter(ad);}};function x(){var N=C.createIterator(),O=t.config.enterMode;N.enforceRealBlocks=true;N.enlargeBr=O!=2;var P;while(P=N.getNextParagraph())y(P);};function y(N){if(N.getCustomData('indent_processed'))return false;if(u.useIndentClasses){var O=N.$.className.match(u.classNameRegex),P=0;if(O){O=O[1];P=u.indentClassMap[O]
;}if(u.name=='outdent')P--;else P++;if(P<0)return false;P=Math.min(P,t.config.indentClasses.length);P=Math.max(P,0);var Q=e.ltrim(N.$.className.replace(u.classNameRegex,''));if(P<1)N.$.className=Q;else N.addClass(t.config.indentClasses[P-1]);}else{var R=r(N),S=parseInt(N.getStyle(R),10);if(isNaN(S))S=0;S+=(u.name=='indent'?1:-1)*t.config.indentOffset;if(S<0)return false;S=Math.max(S,0);S=Math.ceil(S/t.config.indentOffset)*t.config.indentOffset;N.setStyle(R,S?S+t.config.indentUnit:'');if(N.getAttribute('style')==='')N.removeAttribute('style');
-}h.setMarker(v,N,'indent_processed',true);return true;};var z=t.getSelection(),A=z.createBookmarks(true),B=z&&z.getRanges(true),C,D=function(N){return!N.hasAttribute('_cke_bookmark');},E=B.createIterator();while(C=E.getNextRange()){C.shrink(1);if(C.endContainer.getName()=='body')C.setEndAt(C.endContainer.getLast(D),2);var F=C.startContainer,G=C.endContainer,H=C.getCommonAncestor(),I=H;while(I&&!(I.type==1&&l[I.getName()]))I=I.getParent();if(I&&F.type==1&&F.getName() in l){var J=new d.walker(C);J.evaluator=s;C.startContainer=J.next();}if(I&&G.type==1&&G.getName() in l){J=new d.walker(C);J.evaluator=s;C.endContainer=J.previous();}if(I){var K=I.getFirst(function(N){return N.type==1&&N.is('li');}),L=C.startContainer,M=K.equals(L)||K.contains(L);if(!(M&&y(I)))w(I);}else x();}h.clearAllMarkers(v);t.forceNextSelectionCheck();z.selectBookmarks(A);}};j.add('indent',{init:function(t){var u=new q(t,'indent'),v=new q(t,'outdent');t.addCommand('indent',u);t.addCommand('outdent',v);t.ui.a
ddButton('Indent',{label:t.lang.indent,command:'indent'});t.ui.addButton('Outdent',{label:t.lang.outdent,command:'outdent'});t.on('selectionChange',e.bind(p,u));t.on('selectionChange',e.bind(p,v));if(b.ie6Compat||b.ie7Compat)t.addCss('ul,ol{\tmargin-left: 0px;\tpadding-left: 40px;}');},requires:['domiterator','list']});})();e.extend(i,{indentOffset:40,indentUnit:'px',indentClasses:null});(function(){function l(p,q){var r=q.block||q.blockLimit;if(!r||r.getName()=='body')return 2;return m(r,p.config.useComputedState)==this.value?1:2;};function m(p,q){q=q===undefined||q;var r;if(q)r=p.getComputedStyle('text-align');else{while(!p.hasAttribute||!(p.hasAttribute('align')||p.getStyle('text-align'))){var s=p.getParent();if(!s)break;p=s;}r=p.getStyle('text-align')||p.getAttribute('align')||'';}r&&(r=r.replace(/-moz-|-webkit-|start|auto/i,''));!r&&q&&(r=p.getComputedStyle('direction')=='rtl'?'right':'left');return r;};function n(p){var q=p.editor.getCommand(this.name);q.state=l.call(t
his,p.editor,p.data.path);q.fire('state');};function o(p,q,r){var t=this;t.name=q;t.value=r;var s=p.config.justifyClasses;if(s){switch(r){case 'left':t.cssClassName=s[0];break;case 'center':t.cssClassName=s[1];break;case 'right':t.cssClassName=s[2];break;case 'justify':t.cssClassName=s[3];break;}t.cssClassRegex=new RegExp('(?:^|\\s+)(?:'+s.join('|')+')(?=$|\\s)');}};o.prototype={exec:function(p){var B=this;var q=p.getSelection(),r=p.config.enterMode;if(!q)return;var s=q.createBookmarks(),t=q.getRanges(true),u=B.cssClassName,v,w,x=p.config.useComputedState;
-x=x===undefined||x;for(var y=t.length-1;y>=0;y--){v=t[y].createIterator();v.enlargeBr=r!=2;while(w=v.getNextParagraph()){w.removeAttribute('align');w.removeStyle('text-align');var z=u&&(w.$.className=e.ltrim(w.$.className.replace(B.cssClassRegex,''))),A=B.state==2&&(!x||m(w,true)!=B.value);if(u){if(A)w.addClass(u);else if(!z)w.removeAttribute('class');}else if(A)w.setStyle('text-align',B.value);}}p.focus();p.forceNextSelectionCheck();q.selectBookmarks(s);}};j.add('justify',{init:function(p){var q=new o(p,'justifyleft','left'),r=new o(p,'justifycenter','center'),s=new o(p,'justifyright','right'),t=new o(p,'justifyblock','justify');p.addCommand('justifyleft',q);p.addCommand('justifycenter',r);p.addCommand('justifyright',s);p.addCommand('justifyblock',t);p.ui.addButton('JustifyLeft',{label:p.lang.justify.left,command:'justifyleft'});p.ui.addButton('JustifyCenter',{label:p.lang.justify.center,command:'justifycenter'});p.ui.addButton('JustifyRight',{label:p.lang.justify.right,com
mand:'justifyright'});p.ui.addButton('JustifyBlock',{label:p.lang.justify.block,command:'justifyblock'});p.on('selectionChange',e.bind(n,q));p.on('selectionChange',e.bind(n,s));p.on('selectionChange',e.bind(n,r));p.on('selectionChange',e.bind(n,t));},requires:['domiterator']});})();e.extend(i,{justifyClasses:null});j.add('keystrokes',{beforeInit:function(l){l.keystrokeHandler=new a.keystrokeHandler(l);l.specialKeys={};},init:function(l){var m=l.config.keystrokes,n=l.config.blockedKeystrokes,o=l.keystrokeHandler.keystrokes,p=l.keystrokeHandler.blockedKeystrokes;for(var q=0;q<m.length;q++)o[m[q][0]]=m[q][1];for(q=0;q<n.length;q++)p[n[q]]=1;}});a.keystrokeHandler=function(l){var m=this;if(l.keystrokeHandler)return l.keystrokeHandler;m.keystrokes={};m.blockedKeystrokes={};m._={editor:l};return m;};(function(){var l,m=function(o){o=o.data;var p=o.getKeystroke(),q=this.keystrokes[p],r=this._.editor;l=r.fire('key',{keyCode:p})===true;if(!l){if(q){var s={from:'keystrokeHandler'};l=r
.execCommand(q,s)!==false;}if(!l){var t=r.specialKeys[p];l=t&&t(r)===true;if(!l)l=!!this.blockedKeystrokes[p];}}if(l)o.preventDefault(true);return!l;},n=function(o){if(l){l=false;o.data.preventDefault(true);}};a.keystrokeHandler.prototype={attach:function(o){o.on('keydown',m,this);if(b.opera||b.gecko&&b.mac)o.on('keypress',n,this);}};})();i.blockedKeystrokes=[1000+66,1000+73,1000+85];i.keystrokes=[[4000+121,'toolbarFocus'],[4000+122,'elementsPathFocus'],[2000+121,'contextMenu'],[1000+2000+121,'contextMenu'],[1000+90,'undo'],[1000+89,'redo'],[1000+2000+90,'redo'],[1000+76,'link'],[1000+66,'bold'],[1000+73,'italic'],[1000+85,'underline'],[4000+109,'toolbarCollapse'],[4000+48,'a11yHelp']];
-j.add('link',{init:function(l){l.addCommand('link',new a.dialogCommand('link'));l.addCommand('anchor',new a.dialogCommand('anchor'));l.addCommand('unlink',new a.unlinkCommand());l.ui.addButton('Link',{label:l.lang.link.toolbar,command:'link'});l.ui.addButton('Unlink',{label:l.lang.unlink,command:'unlink'});l.ui.addButton('Anchor',{label:l.lang.anchor.toolbar,command:'anchor'});a.dialog.add('link',this.path+'dialogs/link.js');a.dialog.add('anchor',this.path+'dialogs/anchor.js');l.addCss('img.cke_anchor{background-image: url('+a.getUrl(this.path+'images/anchor.gif')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'width: 18px !important;'+'height: 18px !important;'+'}\n'+'a.cke_anchor'+'{'+'background-image: url('+a.getUrl(this.path+'images/anchor.gif')+');'+'background-position: 0 center;'+'background-repeat: no-repeat;'+'border: 1px solid #a9a9a9;'+'padding-left: 18px;'+'}');l.on('selectionChange',function(m){var n=l.ge
tCommand('unlink'),o=m.data.path.lastElement&&m.data.path.lastElement.getAscendant('a',true);if(o&&o.getName()=='a'&&o.getAttribute('href'))n.setState(2);else n.setState(0);});l.on('doubleclick',function(m){var n=j.link.getSelectedLink(l)||m.data.element;if(n.is('a'))m.data.dialog=n.getAttribute('name')&&!n.getAttribute('href')?'anchor':'link';else if(n.is('img')&&n.getAttribute('_cke_real_element_type')=='anchor')m.data.dialog='anchor';});if(l.addMenuItems)l.addMenuItems({anchor:{label:l.lang.anchor.menu,command:'anchor',group:'anchor'},link:{label:l.lang.link.menu,command:'link',group:'link',order:1},unlink:{label:l.lang.unlink,command:'unlink',group:'link',order:5}});if(l.contextMenu)l.contextMenu.addListener(function(m,n){if(!m||m.isReadOnly())return null;var o=m.is('img')&&m.getAttribute('_cke_real_element_type')=='anchor';if(!o){if(!(m=j.link.getSelectedLink(l)))return null;o=m.getAttribute('name')&&!m.getAttribute('href');}return o?{anchor:2}:{link:2,unlink:2};});},af
terInit:function(l){var m=l.dataProcessor,n=m&&m.dataFilter;if(n)n.addRules({elements:{a:function(o){var p=o.attributes;if(p.name&&!p.href)return l.createFakeParserElement(o,'cke_anchor','anchor');}}});},requires:['fakeobjects']});j.link={getSelectedLink:function(l){try{var m=l.getSelection();if(m.getType()==3){var n=m.getSelectedElement();if(n.is('a'))return n;}var o=m.getRanges(true)[0];o.shrink(2);var p=o.getCommonAncestor();return p.getAscendant('a',true);}catch(q){return null;}}};a.unlinkCommand=function(){};a.unlinkCommand.prototype={exec:function(l){var m=l.getSelection(),n=m.createBookmarks(),o=m.getRanges(),p,q;
-for(var r=0;r<o.length;r++){p=o[r].getCommonAncestor(true);q=p.getAscendant('a',true);if(!q)continue;o[r].selectNodeContents(q);}m.selectRanges(o);l.document.$.execCommand('unlink',false,null);m.selectBookmarks(n);},startDisabled:true};e.extend(i,{linkShowAdvancedTab:true,linkShowTargetTab:true});(function(){var l={ol:1,ul:1},m=/^[\n\r\t ]*$/;j.list={listToArray:function(B,C,D,E,F){if(!l[B.getName()])return[];if(!E)E=0;if(!D)D=[];for(var G=0,H=B.getChildCount();G<H;G++){var I=B.getChild(G);if(I.$.nodeName.toLowerCase()!='li')continue;var J={parent:B,indent:E,element:I,contents:[]};if(!F){J.grandparent=B.getParent();if(J.grandparent&&J.grandparent.$.nodeName.toLowerCase()=='li')J.grandparent=J.grandparent.getParent();}else J.grandparent=F;if(C)h.setMarker(C,I,'listarray_index',D.length);D.push(J);for(var K=0,L=I.getChildCount(),M;K<L;K++){M=I.getChild(K);if(M.type==1&&l[M.getName()])j.list.listToArray(M,C,D,E+1,J.grandparent);else J.contents.push(M);}}return D;},arrayToList:f
unction(B,C,D,E,F){if(!D)D=0;if(!B||B.length<D+1)return null;var G=B[D].parent.getDocument(),H=new d.documentFragment(G),I=null,J=D,K=Math.max(B[D].indent,0),L=null,M=E==1?'p':'div';for(;;){var N=B[J];if(N.indent==K){if(!I||B[J].parent.getName()!=I.getName()){I=B[J].parent.clone(false,true);H.append(I);}L=I.append(N.element.clone(false,true));for(var O=0;O<N.contents.length;O++)L.append(N.contents[O].clone(true,true));J++;}else if(N.indent==Math.max(K,0)+1){var P=j.list.arrayToList(B,null,J,E);L.append(P.listNode);J=P.nextIndex;}else if(N.indent==-1&&!D&&N.grandparent){L;if(l[N.grandparent.getName()])L=N.element.clone(false,true);else if(F||E!=2&&N.grandparent.getName()!='td'){L=G.createElement(M);if(F)L.setAttribute('dir',F);}else L=new d.documentFragment(G);for(O=0;O<N.contents.length;O++)L.append(N.contents[O].clone(true,true));if(L.type==11&&J!=B.length-1){if(L.getLast()&&L.getLast().type==1&&L.getLast().getAttribute('type')=='_moz')L.getLast().remove();L.appendBogus();}
if(L.type==1&&L.getName()==M&&L.$.firstChild){L.trim();var Q=L.getFirst();if(Q.type==1&&Q.isBlockBoundary()){var R=new d.documentFragment(G);L.moveChildren(R);L=R;}}var S=L.$.nodeName.toLowerCase();if(!c&&(S=='div'||S=='p'))L.appendBogus();H.append(L);I=null;J++;}else return null;if(B.length<=J||Math.max(B[J].indent,0)<K)break;}if(C){var T=H.getFirst();while(T){if(T.type==1)h.clearMarkers(C,T);T=T.getNextSourceNode();}}return{listNode:H,nextIndex:J};}};function n(B,C){B.getCommand(this.name).setState(C);};function o(B){var C=B.data.path,D=C.blockLimit,E=C.elements,F;
-for(var G=0;G<E.length&&(F=E[G])&&!F.equals(D);G++){if(l[E[G].getName()])return n.call(this,B.editor,this.type==E[G].getName()?1:2);}return n.call(this,B.editor,2);};function p(B,C,D,E){var F=j.list.listToArray(C.root,D),G=[];for(var H=0;H<C.contents.length;H++){var I=C.contents[H];I=I.getAscendant('li',true);if(!I||I.getCustomData('list_item_processed'))continue;G.push(I);h.setMarker(D,I,'list_item_processed',true);}var J=C.root,K=J.getDocument().createElement(this.type);J.copyAttributes(K,{start:1,type:1});K.removeStyle('list-style-type');for(H=0;H<G.length;H++){var L=G[H].getCustomData('listarray_index');F[L].parent=K;}var M=j.list.arrayToList(F,D,null,B.config.enterMode),N,O=M.listNode.getChildCount();for(H=0;H<O&&(N=M.listNode.getChild(H));H++){if(N.getName()==this.type)E.push(N);}M.listNode.replace(C.root);};var q=/^h[1-6]$/;function r(B,C,D){var E=C.contents,F=C.root.getDocument(),G=[];if(E.length==1&&E[0].equals(C.root)){var H=F.createElement('div');E[0].moveChildren
&&E[0].moveChildren(H);E[0].append(H);E[0]=H;}var I=C.contents[0].getParent();for(var J=0;J<E.length;J++)I=I.getCommonAncestor(E[J].getParent());for(J=0;J<E.length;J++){var K=E[J],L;while(L=K.getParent()){if(L.equals(I)){G.push(K);break;}K=L;}}if(G.length<1)return;var M=G[G.length-1].getNext(),N=F.createElement(this.type),O;D.push(N);while(G.length){var P=G.shift(),Q=F.createElement('li');if(P.is('pre')||q.test(P.getName()))P.appendTo(Q);else{if(P.hasAttribute('dir')){O=O||P.getAttribute('dir');P.removeAttribute('dir');}P.copyAttributes(Q);P.moveChildren(Q);P.remove();if(!c)Q.appendBogus();}Q.appendTo(N);}if(O)N.setAttribute('dir',O);if(M)N.insertBefore(M);else N.appendTo(I);};function s(B,C,D){var E=j.list.listToArray(C.root,D),F=[];for(var G=0;G<C.contents.length;G++){var H=C.contents[G];H=H.getAscendant('li',true);if(!H||H.getCustomData('list_item_processed'))continue;F.push(H);h.setMarker(D,H,'list_item_processed',true);}var I=null;for(G=0;G<F.length;G++){var J=F[G].getC
ustomData('listarray_index');E[J].indent=-1;I=J;}for(G=I+1;G<E.length;G++){if(E[G].indent>E[G-1].indent+1){var K=E[G-1].indent+1-E[G].indent,L=E[G].indent;while(E[G]&&E[G].indent>=L){E[G].indent+=K;G++;}G--;}}var M=j.list.arrayToList(E,D,null,B.config.enterMode,C.root.getAttribute('dir')),N=M.listNode,O,P;function Q(R){if((O=N[R?'getFirst':'getLast']())&&!(O.is&&O.isBlockBoundary())&&(P=C.root[R?'getPrevious':'getNext'](d.walker.whitespaces(true)))&&!(P.is&&P.isBlockBoundary({br:1})))B.document.createElement('br')[R?'insertBefore':'insertAfter'](O);
-};Q(true);Q();N.replace(C.root);};function t(B,C){this.name=B;this.type=C;};t.prototype={exec:function(B){B.focus();var C=B.document,D=B.getSelection(),E=D&&D.getRanges(true);if(!E||E.length<1)return;if(this.state==2){var F=C.getBody();F.trim();if(!F.getFirst()){var G=C.createElement(B.config.enterMode==1?'p':B.config.enterMode==3?'div':'br');G.appendTo(F);E=new d.rangeList([new d.range(C)]);if(G.is('br')){E[0].setStartBefore(G);E[0].setEndAfter(G);}else E[0].selectNodeContents(G);D.selectRanges(E);}else{var H=E.length==1&&E[0],I=H&&H.getEnclosedNode();if(I&&I.is&&this.type==I.getName())n.call(this,B,1);}}var J=D.createBookmarks(true),K=[],L={},M=E.createIterator(),N=0;while((H=M.getNextRange())&&++N){var O=H.getBoundaryNodes(),P=O.startNode,Q=O.endNode;if(P.type==1&&P.getName()=='td')H.setStartAt(O.startNode,1);if(Q.type==1&&Q.getName()=='td')H.setEndAt(O.endNode,2);var R=H.createIterator(),S;R.forceBrBreak=this.state==2;while(S=R.getNextParagraph()){if(S.getCustomData('lis
t_block'))continue;else h.setMarker(L,S,'list_block',1);var T=new d.elementPath(S),U=T.elements,V=U.length,W=null,X=false,Y=T.blockLimit,Z;for(var aa=V-1;aa>=0&&(Z=U[aa]);aa--){if(l[Z.getName()]&&Y.contains(Z)){Y.removeCustomData('list_group_object_'+N);var ab=Z.getCustomData('list_group_object');if(ab)ab.contents.push(S);else{ab={root:Z,contents:[S]};K.push(ab);h.setMarker(L,Z,'list_group_object',ab);}X=true;break;}}if(X)continue;var ac=Y;if(ac.getCustomData('list_group_object_'+N))ac.getCustomData('list_group_object_'+N).contents.push(S);else{ab={root:ac,contents:[S]};h.setMarker(L,ac,'list_group_object_'+N,ab);K.push(ab);}}}var ad=[];while(K.length>0){ab=K.shift();if(this.state==2){if(l[ab.root.getName()])p.call(this,B,ab,L,ad);else r.call(this,B,ab,ad);}else if(this.state==1&&l[ab.root.getName()])s.call(this,B,ab,L);}for(aa=0;aa<ad.length;aa++){W=ad[aa];var ae,af=this;(ae=function(ag){var ah=W[ag?'getPrevious':'getNext'](d.walker.whitespaces(true));if(ah&&ah.getName&&ah.
getName()==af.type){ah.remove();ah.moveChildren(W,ag?true:false);}})();ae(true);}h.clearAllMarkers(L);D.selectBookmarks(J);B.focus();}};var u=f,v=/[\t\r\n ]*(?: |\xa0)$/;function w(B,C){var D,E=B.children,F=E.length;for(var G=0;G<F;G++){D=E[G];if(D.name&&D.name in C)return G;}return F;};function x(B){return function(C){var D=C.children,E=w(C,u.$list),F=D[E],G=F&&F.previous,H;if(G&&(G.name&&G.name=='br'||G.value&&(H=G.value.match(v)))){var I=G;if(!(H&&H.index)&&I==D[0])D[0]=B||c?new a.htmlParser.text('\xa0'):new a.htmlParser.element('br',{});
-else if(I.name=='br')D.splice(E-1,1);else I.value=I.value.replace(v,'');}};};var y={elements:{}};for(var z in u.$listItem)y.elements[z]=x();var A={elements:{}};for(z in u.$listItem)A.elements[z]=x(true);j.add('list',{init:function(B){var C=new t('numberedlist','ol'),D=new t('bulletedlist','ul');B.addCommand('numberedlist',C);B.addCommand('bulletedlist',D);B.ui.addButton('NumberedList',{label:B.lang.numberedlist,command:'numberedlist'});B.ui.addButton('BulletedList',{label:B.lang.bulletedlist,command:'bulletedlist'});B.on('selectionChange',e.bind(o,C));B.on('selectionChange',e.bind(o,D));},afterInit:function(B){var C=B.dataProcessor;if(C){C.dataFilter.addRules(y);C.htmlFilter.addRules(A);}},requires:['domiterator']});})();(function(){j.liststyle={requires:['dialog'],init:function(l){l.addCommand('numberedListStyle',new a.dialogCommand('numberedListStyle'));a.dialog.add('numberedListStyle',this.path+'dialogs/liststyle.js');l.addCommand('bulletedListStyle',new a.dialogCommand('
bulletedListStyle'));a.dialog.add('bulletedListStyle',this.path+'dialogs/liststyle.js');if(l.addMenuItems){l.addMenuGroup('list',108);l.addMenuItems({numberedlist:{label:l.lang.list.numberedTitle,group:'list',command:'numberedListStyle'},bulletedlist:{label:l.lang.list.bulletedTitle,group:'list',command:'bulletedListStyle'}});}if(l.contextMenu)l.contextMenu.addListener(function(m,n){if(!m||m.isReadOnly())return null;while(m){var o=m.getName();if(o=='ol')return{numberedlist:2};else if(o=='ul')return{bulletedlist:2};m=m.getParent();}return null;});}};j.add('liststyle',j.liststyle);})();(function(){function l(r){if(!r||r.type!=1||r.getName()!='form')return[];var s=[],t=['style','className'];for(var u=0;u<t.length;u++){var v=t[u],w=r.$.elements.namedItem(v);if(w){var x=new h(w);s.push([x,x.nextSibling]);x.remove();}}return s;};function m(r,s){if(!r||r.type!=1||r.getName()!='form')return;if(s.length>0)for(var t=s.length-1;t>=0;t--){var u=s[t][0],v=s[t][1];if(v)u.insertBefore(v);e
lse u.appendTo(r);}};function n(r,s){var t=l(r),u={},v=r.$;if(!s){u['class']=v.className||'';v.className='';}u.inline=v.style.cssText||'';if(!s)v.style.cssText='position: static; overflow: visible';m(t);return u;};function o(r,s){var t=l(r),u=r.$;if('class' in s)u.className=s['class'];if('inline' in s)u.style.cssText=s.inline;m(t);};function p(r){var s=a.instances;for(var t in s){var u=s[t];if(u.mode=='wysiwyg'){var v=u.document.getBody();v.setAttribute('contentEditable',false);v.setAttribute('contentEditable',true);}}if(r.focusManager.hasFocus){r.toolbox.focus();
-r.focus();}};function q(r){if(!c||b.version>6)return null;var s=h.createFromHtml('<iframe frameborder="0" tabindex="-1" src="javascript:void((function(){document.open();'+(b.isCustomDomain()?"document.domain='"+this.getDocument().$.domain+"';":'')+'document.close();'+'})())"'+' style="display:block;position:absolute;z-index:-1;'+'progid:DXImageTransform.Microsoft.Alpha(opacity=0);'+'"></iframe>');return r.append(s,true);};j.add('maximize',{init:function(r){var s=r.lang,t=a.document,u=t.getWindow(),v,w,x,y;function z(){var B=u.getViewPaneSize();y&&y.setStyles({width:B.width+'px',height:B.height+'px'});r.resize(B.width,B.height,null,true);};var A=2;r.addCommand('maximize',{modes:{wysiwyg:1,source:1},editorFocus:false,exec:function(){var B=r.container.getChild(1),C=r.getThemeSpace('contents');if(r.mode=='wysiwyg'){var D=r.getSelection();v=D&&D.getRanges();w=u.getScrollPosition();}else{var E=r.textarea.$;v=!c&&[E.selectionStart,E.selectionEnd];w=[E.scrollLeft,E.scrollTop];}if(th
is.state==2){u.on('resize',z);x=u.getScrollPosition();var F=r.container;while(F=F.getParent()){F.setCustomData('maximize_saved_styles',n(F));F.setStyle('z-index',r.config.baseFloatZIndex-1);}C.setCustomData('maximize_saved_styles',n(C,true));B.setCustomData('maximize_saved_styles',n(B,true));if(c)t.$.documentElement.style.overflow=t.getBody().$.style.overflow='hidden';else t.getBody().setStyles({overflow:'hidden',width:'0px',height:'0px'});c?setTimeout(function(){u.$.scrollTo(0,0);},0):u.$.scrollTo(0,0);var G=u.getViewPaneSize();B.setStyle('position','absolute');B.$.offsetLeft;B.setStyles({'z-index':r.config.baseFloatZIndex-1,left:'0px',top:'0px'});y=q(B);B.addClass('cke_maximized');z();var H=B.getDocumentPosition();B.setStyles({left:-1*H.x+'px',top:-1*H.y+'px'});b.gecko&&p(r);}else if(this.state==1){u.removeListener('resize',z);var I=[C,B];for(var J=0;J<I.length;J++){o(I[J],I[J].getCustomData('maximize_saved_styles'));I[J].removeCustomData('maximize_saved_styles');}F=r.cont
ainer;while(F=F.getParent()){o(F,F.getCustomData('maximize_saved_styles'));F.removeCustomData('maximize_saved_styles');}c?setTimeout(function(){u.$.scrollTo(x.x,x.y);},0):u.$.scrollTo(x.x,x.y);B.removeClass('cke_maximized');if(y){y.remove();y=null;}r.fire('resize');}this.toggleState();var K=this.uiItems[0],L=this.state==2?s.maximize:s.minimize,M=r.element.getDocument().getById(K._.id);M.getChild(1).setHtml(L);M.setAttribute('title',L);M.setAttribute('href','javascript:void("'+L+'");');if(r.mode=='wysiwyg'){if(v){b.gecko&&p(r);
-r.getSelection().selectRanges(v);var N=r.getSelection().getStartElement();N&&N.scrollIntoView(true);}else u.$.scrollTo(w.x,w.y);}else{if(v){E.selectionStart=v[0];E.selectionEnd=v[1];}E.scrollLeft=w[0];E.scrollTop=w[1];}v=w=null;A=this.state;},canUndo:false});r.ui.addButton('Maximize',{label:s.maximize,command:'maximize'});r.on('mode',function(){r.getCommand('maximize').setState(A);},null,null,100);}});})();j.add('newpage',{init:function(l){l.addCommand('newpage',{modes:{wysiwyg:1,source:1},exec:function(m){var n=this;m.setData(m.config.newpage_html,function(){setTimeout(function(){m.fire('afterCommandExec',{name:n.name,command:n});},200);});m.focus();},async:true});l.ui.addButton('NewPage',{label:l.lang.newPage,command:'newpage'});}});i.newpage_html='';j.add('pagebreak',{init:function(l){l.addCommand('pagebreak',j.pagebreakCmd);l.ui.addButton('PageBreak',{label:l.lang.pagebreak,command:'pagebreak'});l.addCss('img.cke_pagebreak{background-image: url('+a.getUrl(this.path+'imag
es/pagebreak.gif')+');'+'background-position: center center;'+'background-repeat: no-repeat;'+'clear: both;'+'display: block;'+'float: none;'+'width:100% !important; _width:99.9% !important;'+'border-top: #999999 1px dotted;'+'border-bottom: #999999 1px dotted;'+'height: 5px !important;'+'page-break-after: always;'+'}');},afterInit:function(l){var m=l.dataProcessor,n=m&&m.dataFilter;if(n)n.addRules({elements:{div:function(o){var p=o.attributes,q=p&&p.style,r=q&&o.children.length==1&&o.children[0],s=r&&r.name=='span'&&r.attributes.style;if(s&&/page-break-after\s*:\s*always/i.test(q)&&/display\s*:\s*none/i.test(s)){var t=l.createFakeParserElement(o,'cke_pagebreak','div'),u=l.lang.pagebreakAlt;t.attributes.alt=u;t.attributes['aria-label']=u;return t;}}}});},requires:['fakeobjects']});j.pagebreakCmd={exec:function(l){var m=l.lang.pagebreakAlt,n=h.createFromHtml('<div style="page-break-after: always;"><span style="display: none;"> </span></div>');n=l.createFakeElement(n,'cke
_pagebreak','div');n.setAttribute('alt',m);n.setAttribute('aria-label',m);var o=l.getSelection().getRanges(true);l.fire('saveSnapshot');for(var p,q=o.length-1;q>=0;q--){p=o[q];if(q<o.length-1)n=n.clone(true);p.splitBlock('p');p.insertNode(n);if(q==o.length-1){p.moveToPosition(n,4);p.select();}var r=n.getPrevious();if(r&&f[r.getName()].div)n.move(r);}l.fire('saveSnapshot');}};(function(){j.add('pastefromword',{init:function(l){var m=0,n=function(){setTimeout(function(){m=0;},0);};l.addCommand('pastefromword',{canUndo:false,exec:function(){m=1;
-if(l.execCommand('paste')===false)l.on('dialogHide',function(o){o.removeListener();n();});else n();}});l.ui.addButton('PasteFromWord',{label:l.lang.pastefromword.toolbar,command:'pastefromword'});l.on('paste',function(o){var p=o.data,q;if((q=p.html)&&(m||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(q))){var r=this.loadFilterRules(function(){if(r)l.fire('paste',p);else if(!l.config.pasteFromWordPromptCleanup||m||confirm(l.lang.pastefromword.confirmCleanup))p.html=a.cleanWord(q,l);});r&&o.cancel();}},this);},loadFilterRules:function(l){var m=a.cleanWord;if(m)l();else{var n=a.getUrl(i.pasteFromWordCleanupFile||this.path+'filter/default.js');a.scriptLoader.load(n,l,null,false,true);}return!m;}});})();(function(){var l={exec:function(o){var p=e.tryThese(function(){var q=window.clipboardData.getData('Text');if(!q)throw 0;return q;});if(!p){o.openDialog('pastetext');return false;}else o.fire('paste',{text:p});return true;}};function m(o,p){if(c){var q=o.selection;if(q
.type=='Control')q.clear();q.createRange().pasteHTML(p);}else o.execCommand('inserthtml',false,p);};j.add('pastetext',{init:function(o){var p='pastetext',q=o.addCommand(p,l);o.ui.addButton('PasteText',{label:o.lang.pasteText.button,command:p});a.dialog.add(p,a.getUrl(this.path+'dialogs/pastetext.js'));if(o.config.forcePasteAsPlainText)o.on('beforeCommandExec',function(r){if(r.data.name=='paste'){o.execCommand('pastetext');r.cancel();}},null,null,0);},requires:['clipboard']});function n(o,p,q,r){while(q--)j.enterkey[p==2?'enterBr':'enterBlock'](o,p,null,r);};a.editor.prototype.insertText=function(o){this.focus();this.fire('saveSnapshot');var p=this.getSelection().getStartElement().hasAscendant('pre',true)?2:this.config.enterMode,q=p==2,r=this.document.$,s=this,t;o=e.htmlEncode(o.replace(/\r\n|\r/g,'\n'));var u=0;o.replace(/\n+/g,function(v,w){t=o.substring(u,w);u=w+v.length;t.length&&m(r,t);var x=v.length,y=q?0:Math.floor(x/2),z=q?x:x%2;n(s,p,y);n(s,2,z,q?false:true);});t=o.s
ubstring(u,o.length);t.length&&m(r,t);this.fire('saveSnapshot');};})();j.add('popup');e.extend(a.editor.prototype,{popup:function(l,m,n,o){m=m||'80%';n=n||'70%';if(typeof m=='string'&&m.length>1&&m.substr(m.length-1,1)=='%')m=parseInt(window.screen.width*parseInt(m,10)/100,10);if(typeof n=='string'&&n.length>1&&n.substr(n.length-1,1)=='%')n=parseInt(window.screen.height*parseInt(n,10)/100,10);if(m<640)m=640;if(n<420)n=420;var p=parseInt((window.screen.height-n)/2,10),q=parseInt((window.screen.width-m)/2,10);o=(o||'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes')+',width='+m+',height='+n+',top='+p+',left='+q;
-var r=window.open('',null,o,true);if(!r)return false;try{r.moveTo(q,p);r.resizeTo(m,n);r.focus();r.location.href=l;}catch(s){r=window.open(l,null,o,true);}return true;}});(function(){var l={modes:{wysiwyg:1,source:1},canUndo:false,exec:function(n){var o,p=n.config,q=p.baseHref?'<base href="'+p.baseHref+'"/>':'',r=b.isCustomDomain();if(p.fullPage)o=n.getData().replace(/<head>/,'$&'+q).replace(/[^>]*(?=<\/title>)/,n.lang.preview);else{var s='<body ',t=n.document&&n.document.getBody();if(t){if(t.getAttribute('id'))s+='id="'+t.getAttribute('id')+'" ';if(t.getAttribute('class'))s+='class="'+t.getAttribute('class')+'" ';}s+='>';o=n.config.docType+'<html dir="'+n.config.contentsLangDirection+'">'+'<head>'+q+'<title>'+n.lang.preview+'</title>'+e.buildStyleHtml(n.config.contentsCss)+'</head>'+s+n.getData()+'</body></html>';}var u=640,v=420,w=80;try{var x=window.screen;u=Math.round(x.width*0.8);v=Math.round(x.height*0.7);w=Math.round(x.width*0.1);}catch(A){}var y='';if(r){window._cke_
htmlToLoad=o;y='javascript:void( (function(){document.open();document.domain="'+document.domain+'";'+'document.write( window.opener._cke_htmlToLoad );'+'document.close();'+'window.opener._cke_htmlToLoad = null;'+'})() )';}var z=window.open(y,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+u+',height='+v+',left='+w);if(!r){z.document.open();z.document.write(o);z.document.close();}}},m='preview';j.add(m,{init:function(n){n.addCommand(m,l);n.ui.addButton('Preview',{label:n.lang.preview,command:m});}});})();j.add('print',{init:function(l){var m='print',n=l.addCommand(m,j.print);l.ui.addButton('Print',{label:l.lang.print,command:m});}});j.print={exec:function(l){if(b.opera)return;else if(b.gecko)l.window.$.print();else l.document.$.execCommand('Print');},canUndo:false,modes:{wysiwyg:!b.opera}};j.add('removeformat',{requires:['selection'],init:function(l){l.addCommand('removeFormat',j.removeformat.commands.removeformat);l.ui.addButton('Rem
oveFormat',{label:l.lang.removeFormat,command:'removeFormat'});l._.removeFormat={filters:[]};}});j.removeformat={commands:{removeformat:{exec:function(l){var m=l._.removeFormatRegex||(l._.removeFormatRegex=new RegExp('^(?:'+l.config.removeFormatTags.replace(/,/g,'|')+')$','i')),n=l._.removeAttributes||(l._.removeAttributes=l.config.removeFormatAttributes.split(',')),o=j.removeformat.filter,p=l.getSelection().getRanges(true),q=p.createIterator(),r;while(r=q.getNextRange()){if(r.collapsed)continue;r.enlarge(1);var s=r.createBookmark(),t=s.startNode,u=s.endNode,v=function(y){var z=new d.elementPath(y),A=z.elements;
-for(var B=1,C;C=A[B];B++){if(C.equals(z.block)||C.equals(z.blockLimit))break;if(m.test(C.getName())&&o(l,C))y.breakParent(C);}};v(t);v(u);var w=t.getNextSourceNode(true,1);while(w){if(w.equals(u))break;var x=w.getNextSourceNode(false,1);if(!(w.getName()=='img'&&w.getAttribute('_cke_realelement'))&&o(l,w))if(m.test(w.getName()))w.remove(true);else{w.removeAttributes(n);l.fire('removeFormatCleanup',w);}w=x;}r.moveToBookmark(s);}l.getSelection().selectRanges(p);}}},filter:function(l,m){var n=l._.removeFormat.filters;for(var o=0;o<n.length;o++){if(n[o](m)===false)return false;}return true;}};a.editor.prototype.addRemoveFormatFilter=function(l){this._.removeFormat.filters.push(l);};i.removeFormatTags='b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var';i.removeFormatAttributes='class,style,lang,width,height,align,hspace,valign';j.add('resize',{init:function(l){var m=l.config;!m.resize_dir&&(m.resize_dir='both');m.resize_maxWidth==undefined&&(m.r
esize_maxWidth=3000);m.resize_maxHeight==undefined&&(m.resize_maxHeight=3000);m.resize_minWidth==undefined&&(m.resize_minWidth=750);m.resize_minHeight==undefined&&(m.resize_minHeight=250);if(m.resize_enabled!==false){var n=null,o,p,q=(m.resize_dir=='both'||m.resize_dir=='horizontal')&&m.resize_minWidth!=m.resize_maxWidth,r=(m.resize_dir=='both'||m.resize_dir=='vertical')&&m.resize_minHeight!=m.resize_maxHeight;function s(v){var w=v.data.$.screenX-o.x,x=v.data.$.screenY-o.y,y=p.width,z=p.height,A=y+w*(l.lang.dir=='rtl'?-1:1),B=z+x;if(q)y=Math.max(m.resize_minWidth,Math.min(A,m.resize_maxWidth));if(r)z=Math.max(m.resize_minHeight,Math.min(B,m.resize_maxHeight));l.resize(y,z);};function t(v){a.document.removeListener('mousemove',s);a.document.removeListener('mouseup',t);if(l.document){l.document.removeListener('mousemove',s);l.document.removeListener('mouseup',t);}};var u=e.addFunction(function(v){if(!n)n=l.getResizable();p={width:n.$.offsetWidth||0,height:n.$.offsetHeight||0};
o={x:v.screenX,y:v.screenY};m.resize_minWidth>p.width&&(m.resize_minWidth=p.width);m.resize_minHeight>p.height&&(m.resize_minHeight=p.height);a.document.on('mousemove',s);a.document.on('mouseup',t);if(l.document){l.document.on('mousemove',s);l.document.on('mouseup',t);}});l.on('destroy',function(){e.removeFunction(u);});l.on('themeSpace',function(v){if(v.data.space=='bottom'){var w='';if(q&&!r)w=' cke_resizer_horizontal';if(!q&&r)w=' cke_resizer_vertical';v.data.html+='<div class="cke_resizer'+w+'"'+' title="'+e.htmlEncode(l.lang.resize)+'"'+' onmousedown="CKEDITOR.tools.callFunction('+u+', event)"'+'></div>';
-}},l,null,100);}}});(function(){var l={modes:{wysiwyg:1,source:1},exec:function(n){var o=n.element.$.form;if(o)try{o.submit();}catch(p){if(o.submit.click)o.submit.click();}}},m='save';j.add(m,{init:function(n){var o=n.addCommand(m,l);o.modes={wysiwyg:!!n.element.$.form};n.ui.addButton('Save',{label:n.lang.save,command:m});}});})();(function(){var l='scaytcheck',m='';function n(s,t){var u=false,v;for(v in t){if(t[v]===s||t[v]==s){u=true;break;}}return u;};var o=function(){var s=this,t=function(){var x={};x.srcNodeRef=s.document.getWindow().$.frameElement;x.assocApp='CKEDITOR.'+a.version+'@'+a.revision;x.customerid=s.config.scayt_customerid||'1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2';x.customDictionaryIds=s.config.scayt_customDictionaryIds||'';x.userDictionaryName=s.config.scayt_userDictionaryName||'';x.sLang=s.config.scayt_sLang||'en_US';x.onLoad=function(){if(!(c&&b.version<8))this.addStyle(this.selectorCss(),'padding-bottom: 2px !important;');i
f(s.focusManager.hasFocus&&!p.isControlRestored(s))this.focus();};x.onBeforeChange=function(){if(p.getScayt(s)&&!s.checkDirty())setTimeout(function(){s.resetDirty();},0);};var y=window.scayt_custom_params;if(typeof y=='object')for(var z in y)x[z]=y[z];if(p.getControlId(s))x.id=p.getControlId(s);var A=new window.scayt(x);A.afterMarkupRemove.push(function(H){new h(H,A.document).mergeSiblings();});var B=p.instances[s.name];if(B){A.sLang=B.sLang;A.option(B.option());A.paused=B.paused;}p.instances[s.name]=A;var C='scaytButton',D=window.scayt.uiTags,E=[];for(var F=0,G=4;F<G;F++)E.push(D[F]&&p.uiTabs[F]);p.uiTabs=E;try{A.setDisabled(p.isPaused(s)===false);}catch(H){}s.fire('showScaytState');};s.on('contentDom',t);s.on('contentDomUnload',function(){var x=a.document.getElementsByTag('script'),y=/^dojoIoScript(\d+)$/i,z=/^https?:\/\/svc\.spellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i;for(var A=0;A<x.count();A++){var B=x.getItem(A),C=B.getId(),D=B.getAttribute('src');if(C&&D&&C.mat
ch(y)&&D.match(z))B.remove();}});s.on('beforeCommandExec',function(x){if((x.data.name=='source'||x.data.name=='newpage')&&s.mode=='wysiwyg'){var y=p.getScayt(s);if(y){p.setPaused(s,!y.disabled);p.setControlId(s,y.id);y.destroy(true);delete p.instances[s.name];}}else if(x.data.name=='source'&&s.mode=='source')p.markControlRestore(s);});s.on('afterCommandExec',function(x){if(!p.isScaytEnabled(s))return;if(s.mode=='wysiwyg'&&(x.data.name=='undo'||x.data.name=='redo'))window.setTimeout(function(){p.getScayt(s).refresh();},10);
-});s.on('destroy',function(x){var y=x.editor,z=p.getScayt(y);if(!z)return;delete p.instances[y.name];p.setControlId(y,z.id);z.destroy(true);});s.on('afterSetData',function(){if(p.isScaytEnabled(s))window.setTimeout(function(){var x=p.getScayt(s);x&&x.refresh();},10);});s.on('insertElement',function(){var x=p.getScayt(s);if(p.isScaytEnabled(s)){if(c)s.getSelection().unlock(true);window.setTimeout(function(){x.focus();x.refresh();},10);}},this,null,50);s.on('insertHtml',function(){var x=p.getScayt(s);if(p.isScaytEnabled(s)){if(c)s.getSelection().unlock(true);window.setTimeout(function(){x.focus();x.refresh();},10);}},this,null,50);s.on('scaytDialog',function(x){x.data.djConfig=window.djConfig;x.data.scayt_control=p.getScayt(s);x.data.tab=m;x.data.scayt=window.scayt;});var u=s.dataProcessor,v=u&&u.htmlFilter;if(v)v.addRules({elements:{span:function(x){if(x.attributes.scayt_word&&x.attributes.scaytid){delete x.name;return x;}}}});var w=j.undo.Image.prototype;w.equals=e.override(
w.equals,function(x){return function(y){var D=this;var z=D.contents,A=y.contents,B=p.getScayt(D.editor);if(B&&p.isScaytReady(D.editor)){D.contents=B.reset(z)||'';y.contents=B.reset(A)||'';}var C=x.apply(D,arguments);D.contents=z;y.contents=A;return C;};});if(s.document)t();};j.scayt={engineLoaded:false,instances:{},controlInfo:{},setControlInfo:function(s,t){if(s&&s.name&&typeof this.controlInfo[s.name]!='object')this.controlInfo[s.name]={};for(var u in t)this.controlInfo[s.name][u]=t[u];},isControlRestored:function(s){if(s&&s.name&&this.controlInfo[s.name])return this.controlInfo[s.name].restored;return false;},markControlRestore:function(s){this.setControlInfo(s,{restored:true});},setControlId:function(s,t){this.setControlInfo(s,{id:t});},getControlId:function(s){if(s&&s.name&&this.controlInfo[s.name]&&this.controlInfo[s.name].id)return this.controlInfo[s.name].id;return null;},setPaused:function(s,t){this.setControlInfo(s,{paused:t});},isPaused:function(s){if(s&&s.name&&t
his.controlInfo[s.name])return this.controlInfo[s.name].paused;return undefined;},getScayt:function(s){return this.instances[s.name];},isScaytReady:function(s){return this.engineLoaded===true&&'undefined'!==typeof window.scayt&&this.getScayt(s);},isScaytEnabled:function(s){var t=this.getScayt(s);return t?t.disabled===false:false;},loadEngine:function(s){if(b.gecko&&b.version<10900||b.opera)return s.fire('showScaytState');if(this.engineLoaded===true)return o.apply(s);else if(this.engineLoaded==-1)return a.on('scaytReady',function(){o.apply(s);
-});a.on('scaytReady',o,s);a.on('scaytReady',function(){this.engineLoaded=true;},this,null,0);this.engineLoaded=-1;var t=document.location.protocol;t=t.search(/https?:/)!=-1?t:'http:';var u='svc.spellchecker.net/scayt25/loader__base.js',v=s.config.scayt_srcUrl||t+'//'+u,w=p.parseUrl(v).path+'/';if(window.scayt==undefined){a._djScaytConfig={baseUrl:w,addOnLoad:[function(){a.fireOnce('scaytReady');}],isDebug:false};a.document.getHead().append(a.document.createElement('script',{attributes:{type:'text/javascript',async:'true',src:v}}));}else a.fireOnce('scaytReady');return null;},parseUrl:function(s){var t;if(s.match&&(t=s.match(/(.*)[\/\\](.*?\.\w+)$/)))return{path:t[1],file:t[2]};else return s;}};var p=j.scayt,q=function(s,t,u,v,w,x,y){s.addCommand(v,w);s.addMenuItem(v,{label:u,command:v,group:x,order:y});},r={preserveState:true,editorFocus:false,exec:function(s){if(p.isScaytReady(s)){var t=p.isScaytEnabled(s);this.setState(t?2:1);var u=p.getScayt(s);u.focus();u.setDisabled(t);
}else if(!s.config.scayt_autoStartup&&p.engineLoaded>=0){this.setState(0);p.loadEngine(s);}}};j.add('scayt',{requires:['menubutton'],beforeInit:function(s){var t=s.config.scayt_contextMenuItemsOrder||'suggest|moresuggest|control',u='';t=t.split('|');if(t&&t.length)for(var v in t)u+='scayt_'+t[v]+(t.length!=parseInt(v,10)+1?',':'');s.config.menu_groups=u+','+s.config.menu_groups;},init:function(s){var t={},u={},v=s.addCommand(l,r);a.dialog.add(l,a.getUrl(this.path+'dialogs/options.js'));var w=s.config.scayt_uiTabs||'1,1,1',x=[];w=w.split(',');for(var y=0,z=3;y<z;y++){var A=parseInt(w[y]||'1',10);x.push(A);}var B='scaytButton';s.addMenuGroup(B);var C={};C.scaytToggle={label:s.lang.scayt.enable,command:l,group:B};if(x[0]==1)C.scaytOptions={label:s.lang.scayt.options,group:B,onClick:function(){m='options';s.openDialog(l);}};if(x[1]==1)C.scaytLangs={label:s.lang.scayt.langs,group:B,onClick:function(){m='langs';s.openDialog(l);}};if(x[2]==1)C.scaytDict={label:s.lang.scayt.dictiona
riesTab,group:B,onClick:function(){m='dictionaries';s.openDialog(l);}};C.scaytAbout={label:s.lang.scayt.about,group:B,onClick:function(){m='about';s.openDialog(l);}};x[3]=1;p.uiTabs=x;s.addMenuItems(C);s.ui.add('Scayt',5,{label:s.lang.scayt.title,title:b.opera?s.lang.scayt.opera_title:s.lang.scayt.title,className:'cke_button_scayt',onRender:function(){v.on('state',function(){this.setState(v.state);},this);},onMenu:function(){var E=p.isScaytEnabled(s);s.getMenuItem('scaytToggle').label=s.lang.scayt[E?'disable':'enable'];
-return{scaytToggle:2,scaytOptions:E&&p.uiTabs[0]?2:0,scaytLangs:E&&p.uiTabs[1]?2:0,scaytDict:E&&p.uiTabs[2]?2:0,scaytAbout:E&&p.uiTabs[3]?2:0};}});if(s.contextMenu&&s.addMenuItems)s.contextMenu.addListener(function(E,F){if(!p.isScaytEnabled(s)||F.getCommonAncestor().isReadOnly())return null;var G=p.getScayt(s),H=G.getScaytNode();if(!H)return null;var I=G.getWord(H);if(!I)return null;var J=G.getLang(),K={},L=window.scayt.getSuggestion(I,J);if(!L||!L.length)return null;for(y in t){delete s._.menuItems[y];delete s._.commands[y];}for(y in u){delete s._.menuItems[y];delete s._.commands[y];}t={};u={};var M=s.config.scayt_moreSuggestions||'on',N=false,O=s.config.scayt_maxSuggestions;typeof O!='number'&&(O=5);!O&&(O=L.length);var P=s.config.scayt_contextCommands||'all';P=P.split('|');for(var Q=0,R=L.length;Q<R;Q+=1){var S='scayt_suggestion_'+L[Q].replace(' ','_'),T=(function(X,Y){return{exec:function(){G.replace(X,Y);}};})(H,L[Q]);if(Q<O){q(s,'button_'+S,L[Q],S,T,'scayt_suggest',Q+1
);K[S]=2;u[S]=2;}else if(M=='on'){q(s,'button_'+S,L[Q],S,T,'scayt_moresuggest',Q+1);t[S]=2;N=true;}}if(N){s.addMenuItem('scayt_moresuggest',{label:s.lang.scayt.moreSuggestions,group:'scayt_moresuggest',order:10,getItems:function(){return t;}});u.scayt_moresuggest=2;}if(n('all',P)||n('ignore',P)){var U={exec:function(){G.ignore(H);}};q(s,'ignore',s.lang.scayt.ignore,'scayt_ignore',U,'scayt_control',1);u.scayt_ignore=2;}if(n('all',P)||n('ignoreall',P)){var V={exec:function(){G.ignoreAll(H);}};q(s,'ignore_all',s.lang.scayt.ignoreAll,'scayt_ignore_all',V,'scayt_control',2);u.scayt_ignore_all=2;}if(n('all',P)||n('add',P)){var W={exec:function(){window.scayt.addWordToUserDictionary(H);}};q(s,'add_word',s.lang.scayt.addWord,'scayt_add_word',W,'scayt_control',3);u.scayt_add_word=2;}if(G.fireOnContextMenu)G.fireOnContextMenu(s);return u;});var D=function(){s.removeListener('showScaytState',D);if(!b.opera)v.setState(p.isScaytEnabled(s)?1:2);else v.setState(0);};s.on('showScaytState',D
);if(b.opera)s.on('instanceReady',function(){D();});if(s.config.scayt_autoStartup)s.on('instanceReady',function(){p.loadEngine(s);});},afterInit:function(s){var t,u=function(v){if(v.hasAttribute('scaytid'))return false;};if(s._.elementsPath&&(t=s._.elementsPath.filters))t.push(u);s.addRemoveFormatFilter&&s.addRemoveFormatFilter(u);}});})();j.add('smiley',{requires:['dialog'],init:function(l){l.config.smiley_path=l.config.smiley_path||this.path+'images/';l.addCommand('smiley',new a.dialogCommand('smiley'));l.ui.addButton('Smiley',{label:l.lang.smiley.toolbar,command:'smiley'});
-a.dialog.add('smiley',this.path+'dialogs/smiley.js');}});i.smiley_images=['regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif','embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif','devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif','broken_heart.gif','kiss.gif','envelope.gif'];i.smiley_descriptions=['smiley','sad','wink','laugh','frown','cheeky','blush','surprise','indecision','angry','angel','cool','devil','crying','enlightened','no','yes','heart','broken heart','kiss','mail'];(function(){var l='.%2 p,.%2 div,.%2 pre,.%2 address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 h6{background-repeat: no-repeat;background-position: top %3;border: 1px dotted gray;padding-top: 8px;padding-%3: 8px;}.%2 p{%1p.png);}.%2 div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 blockquote{%1block
quote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 h6{%1h6.png);}',m=/%1/g,n=/%2/g,o=/%3/g,p={preserveState:true,editorFocus:false,exec:function(q){this.toggleState();this.refresh(q);},refresh:function(q){var r=this.state==1?'addClass':'removeClass';q.document.getBody()[r]('cke_show_blocks');}};j.add('showblocks',{requires:['wysiwygarea'],init:function(q){var r=q.addCommand('showblocks',p);r.canUndo=false;if(q.config.startupOutlineBlocks)r.setState(1);q.addCss(l.replace(m,'background-image: url('+a.getUrl(this.path)+'images/block_').replace(n,'cke_show_blocks ').replace(o,q.lang.dir=='rtl'?'right':'left'));q.ui.addButton('ShowBlocks',{label:q.lang.showBlocks,command:'showblocks'});q.on('mode',function(){if(r.state!=0)r.refresh(q);});q.on('contentDom',function(){if(r.state!=0)r.refresh(q);});}});})();i.startupOutlineBlocks=false;(function(){var l='cke_show_border',m,n=(b.ie6Compat?['.%1 table.%2,','.%1 table.%2 td, .%1 ta
ble.%2 th,','{','border : #d3d3d3 1px dotted','}']:['.%1 table.%2,','.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,','.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,','.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,','.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th','{','border : #d3d3d3 1px dotted','}']).join('');m=n.replace(/%2/g,l).replace(/%1/g,'cke_show_borders ');var o={preserveState:true,editorFocus:false,exec:function(p){this.toggleState();this.refresh(p);},refresh:function(p){var q=this.state==1?'addClass':'removeClass';
-p.document.getBody()[q]('cke_show_borders');}};j.add('showborders',{requires:['wysiwygarea'],modes:{wysiwyg:1},init:function(p){var q=p.addCommand('showborders',o);q.canUndo=false;if(p.config.startupShowBorders!==false)q.setState(1);p.addCss(m);p.on('mode',function(){if(q.state!=0)q.refresh(p);},null,null,100);p.on('contentDom',function(){if(q.state!=0)q.refresh(p);});p.on('removeFormatCleanup',function(r){var s=r.data;if(p.getCommand('showborders').state==1&&s.is('table')&&(!s.hasAttribute('border')||parseInt(s.getAttribute('border'),10)<=0))s.addClass(l);});},afterInit:function(p){var q=p.dataProcessor,r=q&&q.dataFilter,s=q&&q.htmlFilter;if(r)r.addRules({elements:{table:function(t){var u=t.attributes,v=u['class'],w=parseInt(u.border,10);if(!w||w<=0)u['class']=(v||'')+' '+l;}}});if(s)s.addRules({elements:{table:function(t){var u=t.attributes,v=u['class'];v&&(u['class']=v.replace(l,'').replace(/\s{2}/,' ').replace(/^\s+|\s+$/,''));}}});}});a.on('dialogDefinition',function(p)
{var q=p.data.name;if(q=='table'||q=='tableProperties'){var r=p.data.definition,s=r.getContents('info'),t=s.get('txtBorder'),u=t.commit;t.commit=e.override(u,function(x){return function(y,z){x.apply(this,arguments);var A=parseInt(this.getValue(),10);z[!A||A<=0?'addClass':'removeClass'](l);};});var v=r.getContents('advanced'),w=v&&v.get('advCSSClasses');if(w){w.setup=e.override(w.setup,function(x){return function(){x.apply(this,arguments);this.setValue(this.getValue().replace(/cke_show_border/,''));};});w.commit=e.override(w.commit,function(x){return function(y,z){x.apply(this,arguments);if(!parseInt(z.getAttribute('border'),10))z.addClass('cke_show_border');};});}}});})();j.add('sourcearea',{requires:['editingblock'],init:function(l){var m=j.sourcearea,n=a.document.getWindow();l.on('editingBlockReady',function(){var o,p;l.addMode('source',{load:function(q,r){if(c&&b.version<8)q.setStyle('position','relative');l.textarea=o=new h('textarea');o.setAttributes({dir:'ltr',tabIndex
:b.webkit?-1:l.tabIndex,role:'textbox','aria-label':l.lang.editorTitle.replace('%1',l.name)});o.addClass('cke_source');o.addClass('cke_enable_context_menu');var s={width:b.ie7Compat?'99%':'100%',height:'100%',resize:'none',outline:'none','text-align':'left'};if(c){p=function(){o.hide();o.setStyle('height',q.$.clientHeight+'px');o.setStyle('width',q.$.clientWidth+'px');o.show();};l.on('resize',p);n.on('resize',p);setTimeout(p,0);}else o.on('mousedown',function(u){u.data.stopPropagation();});q.setHtml('');q.append(o);o.setStyles(s);
-l.fire('ariaWidget',o);o.on('blur',function(){l.focusManager.blur();});o.on('focus',function(){l.focusManager.focus();});l.mayBeDirty=true;this.loadData(r);var t=l.keystrokeHandler;if(t)t.attach(o);setTimeout(function(){l.mode='source';l.fire('mode');},b.gecko||b.webkit?100:0);},loadData:function(q){o.setValue(q);l.fire('dataReady');},getData:function(){return o.getValue();},getSnapshotData:function(){return o.getValue();},unload:function(q){o.clearCustomData();l.textarea=o=null;if(p){l.removeListener('resize',p);n.removeListener('resize',p);}if(c&&b.version<8)q.removeStyle('position');},focus:function(){o.focus();}});});l.addCommand('source',m.commands.source);if(l.ui.addButton)l.ui.addButton('Source',{label:l.lang.source,command:'source'});l.on('mode',function(){l.getCommand('source').setState(l.mode=='source'?1:2);});}});j.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:false,exec:function(l){if(l.mode=='wysiwyg')l.fire('saveSnapshot');l.getCommand('s
ource').setState(0);l.setMode(l.mode=='source'?'wysiwyg':'source');},canUndo:false}}};(function(){j.add('stylescombo',{requires:['richcombo','styles'],init:function(m){var n=m.config,o=m.lang.stylesCombo,p={},q=[];function r(s){m.getStylesSet(function(t){if(!q.length){var u,v;for(var w=0;w<t.length;w++){var x=t[w];v=x.name;u=p[v]=new a.style(x);u._name=v;u._.enterMode=n.enterMode;q.push(u);}q.sort(l);}s&&s();});};m.ui.addRichCombo('Styles',{label:o.label,title:o.panelTitle,className:'cke_styles',panel:{css:m.skin.editor.css.concat(n.contentsCss),multiSelect:true,attributes:{'aria-label':o.panelTitle}},init:function(){var s=this;r(function(){var t,u,v;for(var w=0;w<q.length;w++){t=q[w];u=t._name;var x=t.type;if(x!=v){s.startGroup(o['panelTitle'+String(x)]);v=x;}s.add(u,t.type==3?u:t.buildPreview(),u);}s.commit();s.onOpen();});},onClick:function(s){m.focus();m.fire('saveSnapshot');var t=p[s],u=m.getSelection(),v=new d.elementPath(u.getStartElement());if(t.type==2&&t.checkActiv
e(v))t.remove(m.document);else if(t.type==3&&t.checkActive(v))t.remove(m.document);else t.apply(m.document);m.fire('saveSnapshot');},onRender:function(){m.on('selectionChange',function(s){var t=this.getValue(),u=s.data.path,v=u.elements;for(var w=0,x;w<v.length;w++){x=v[w];for(var y in p){if(p[y].checkElementRemovable(x,true)){if(y!=t)this.setValue(y);return;}}}this.setValue('');},this);},onOpen:function(){var z=this;if(c||b.webkit)m.focus();var s=m.getSelection(),t=s.getSelectedElement(),u=new d.elementPath(t||s.getStartElement()),v=[0,0,0,0];
-z.showAll();z.unmarkAll();for(var w in p){var x=p[w],y=x.type;if(x.checkActive(u))z.mark(w);else if(y==3&&!x.checkApplicable(u)){z.hideItem(w);v[y]--;}v[y]++;}if(!v[1])z.hideGroup(o['panelTitle'+String(1)]);if(!v[2])z.hideGroup(o['panelTitle'+String(2)]);if(!v[3])z.hideGroup(o['panelTitle'+String(3)]);}});m.on('instanceReady',function(){r();});}});function l(m,n){var o=m.type,p=n.type;return o==p?0:o==3?-1:p==3?1:p==1?1:-1;};})();j.add('table',{init:function(l){var m=j.table,n=l.lang.table;l.addCommand('table',new a.dialogCommand('table'));l.addCommand('tableProperties',new a.dialogCommand('tableProperties'));l.ui.addButton('Table',{label:n.toolbar,command:'table'});a.dialog.add('table',this.path+'dialogs/table.js');a.dialog.add('tableProperties',this.path+'dialogs/table.js');if(l.addMenuItems)l.addMenuItems({table:{label:n.menu,command:'tableProperties',group:'table',order:5},tabledelete:{label:n.deleteTable,command:'tableDelete',group:'table',order:1}});l.on('doubleclick',
function(o){var p=o.data.element;if(p.is('table'))o.data.dialog='tableProperties';});if(l.contextMenu)l.contextMenu.addListener(function(o,p){if(!o||o.isReadOnly())return null;var q=o.is('table')||o.hasAscendant('table');if(q)return{tabledelete:2,table:2};return null;});}});(function(){function l(F,G){if(c)F.removeAttribute(G);else delete F[G];};var m=/^(?:td|th)$/;function n(F){var G=F.createBookmarks(),H=F.getRanges(),I=[],J={};function K(S){if(I.length>0)return;if(S.type==1&&m.test(S.getName())&&!S.getCustomData('selected_cell')){h.setMarker(J,S,'selected_cell',true);I.push(S);}};for(var L=0;L<H.length;L++){var M=H[L];if(M.collapsed){var N=M.getCommonAncestor(),O=N.getAscendant('td',true)||N.getAscendant('th',true);if(O)I.push(O);}else{var P=new d.walker(M),Q;P.guard=K;while(Q=P.next()){var R=Q.getParent();if(R&&m.test(R.getName())&&!R.getCustomData('selected_cell')){h.setMarker(J,R,'selected_cell',true);I.push(R);}}}}h.clearAllMarkers(J);F.selectBookmarks(G);return I;};f
unction o(F){var G=0,H=F.length-1,I={},J,K,L;while(J=F[G++])h.setMarker(I,J,'delete_cell',true);G=0;while(J=F[G++]){if((K=J.getPrevious())&&!K.getCustomData('delete_cell')||(K=J.getNext())&&!K.getCustomData('delete_cell')){h.clearAllMarkers(I);return K;}}h.clearAllMarkers(I);L=F[0].getParent();if(L=L.getPrevious())return L.getLast();L=F[H].getParent();if(L=L.getNext())return L.getChild(0);return null;};function p(F){var G=F.cells;for(var H=0;H<G.length;H++){G[H].innerHTML='';if(!c)new h(G[H]).appendBogus();}};function q(F,G){var H=F.getStartElement().getAscendant('tr');
-if(!H)return;var I=H.clone(true);G?I.insertBefore(H):I.insertAfter(H);p(I.$);};function r(F){if(F instanceof d.selection){var G=n(F),H=G.length,I=[],J,K,L;for(var M=0;M<H;M++){var N=G[M].getParent(),O=N.$.rowIndex;!M&&(K=O-1);I[O]=N;M==H-1&&(L=O+1);}var P=N.getAscendant('table'),Q=P.$.rows,R=Q.length;J=new h(L<R&&P.$.rows[L]||K>0&&P.$.rows[K]||P.$.parentNode);for(M=I.length;M>=0;M--){if(I[M])r(I[M]);}return J;}else if(F instanceof h){P=F.getAscendant('table');if(P.$.rows.length==1)P.remove();else F.remove();}return 0;};function s(F,G){var H=F.getStartElement(),I=H.getAscendant('td',true)||H.getAscendant('th',true);if(!I)return;var J=I.getAscendant('table'),K=I.$.cellIndex;for(var L=0;L<J.$.rows.length;L++){var M=J.$.rows[L];if(M.cells.length<K+1)continue;I=new h(M.cells[K]).clone(false);if(!c)I.appendBogus();var N=new h(M.cells[K]);if(G)I.insertBefore(N);else I.insertAfter(N);}};function t(F){var G=[],H=F[0]&&F[0].getAscendant('table'),I,J,K,L;for(I=0,J=F.length;I<J;I++)G.pu
sh(F[I].$.cellIndex);G.sort();for(I=1,J=G.length;I<J;I++){if(G[I]-G[I-1]>1){K=G[I-1]+1;break;}}if(!K)K=G[0]>0?G[0]-1:G[G.length-1]+1;var M=H.$.rows;for(I=0,J=M.length;I<J;I++){L=M[I].cells[K];if(L)break;}return L?new h(L):H.getPrevious();};function u(F){if(F instanceof d.selection){var G=n(F),H=t(G);for(var I=G.length-1;I>=0;I--){if(G[I])u(G[I]);}return H;}else if(F instanceof h){var J=F.getAscendant('table');if(!J)return null;var K=F.$.cellIndex;for(I=J.$.rows.length-1;I>=0;I--){var L=new h(J.$.rows[I]);if(!K&&L.$.cells.length==1){r(L);continue;}if(L.$.cells[K])L.$.removeChild(L.$.cells[K]);}}return null;};function v(F,G){var H=F.getStartElement(),I=H.getAscendant('td',true)||H.getAscendant('th',true);if(!I)return;var J=I.clone();if(!c)J.appendBogus();if(G)J.insertBefore(I);else J.insertAfter(I);};function w(F){if(F instanceof d.selection){var G=n(F),H=G[0]&&G[0].getAscendant('table'),I=o(G);for(var J=G.length-1;J>=0;J--)w(G[J]);if(I)y(I,true);else if(H)H.remove();}else if(
F instanceof h){var K=F.getParent();if(K.getChildCount()==1)K.remove();else F.remove();}};function x(F){var G=F.getBogus();G&&G.remove();F.trim();};function y(F,G){var H=new d.range(F.getDocument());if(!H['moveToElementEdit'+(G?'End':'Start')](F)){H.selectNodeContents(F);H.collapse(G?false:true);}H.select(true);};function z(F,G,H){var I=F[G];if(typeof H=='undefined')return I;for(var J=0;I&&J<I.length;J++){if(H.is&&I[J]==H.$)return J;else if(J==H)return new h(I[J]);}return H.is?-1:null;};function A(F,G,H){var I=[];for(var J=0;
-J<F.length;J++){var K=F[J];if(typeof H=='undefined')I.push(K[G]);else if(H.is&&K[G]==H.$)return J;else if(J==H)return new h(K[G]);}return typeof H=='undefined'?I:H.is?-1:null;};function B(F,G,H){var I=n(F),J;if((G?I.length!=1:I.length<2)||(J=F.getCommonAncestor())&&J.type==1&&J.is('table'))return false;var K,L=I[0],M=L.getAscendant('table'),N=e.buildTableMap(M),O=N.length,P=N[0].length,Q=L.getParent().$.rowIndex,R=z(N,Q,L);if(G){var S;try{S=N[G=='up'?Q-1:G=='down'?Q+1:Q][G=='left'?R-1:G=='right'?R+1:R];}catch(ak){return false;}if(!S||L.$==S)return false;I[G=='up'||G=='left'?'unshift':'push'](new h(S));}var T=L.getDocument(),U=Q,V=0,W=0,X=!H&&new d.documentFragment(T),Y=0;for(var Z=0;Z<I.length;Z++){K=I[Z];var aa=K.getParent(),ab=K.getFirst(),ac=K.$.colSpan,ad=K.$.rowSpan,ae=aa.$.rowIndex,af=z(N,ae,K);Y+=ac*ad;W=Math.max(W,af-R+ac);V=Math.max(V,ae-Q+ad);if(!H){if(x(K),K.getChildren().count()){if(ae!=U&&ab&&!(ab.isBlockBoundary&&ab.isBlockBoundary({br:1}))){var ag=X.getLast(d.
walker.whitespaces(true));if(ag&&!(ag.is&&ag.is('br')))X.append(new h('br'));}K.moveChildren(X);}Z?K.remove():K.setHtml('');}U=ae;}if(!H){X.moveChildren(L);if(!c)L.appendBogus();if(W>=P)L.removeAttribute('rowSpan');else L.$.rowSpan=V;if(V>=O)L.removeAttribute('colSpan');else L.$.colSpan=W;var ah=new d.nodeList(M.$.rows),ai=ah.count();for(Z=ai-1;Z>=0;Z--){var aj=ah.getItem(Z);if(!aj.$.cells.length){aj.remove();ai++;continue;}}return L;}else return V*W==Y;};function C(F,G){var H=n(F);if(H.length>1)return false;else if(G)return true;var I=H[0],J=I.getParent(),K=J.getAscendant('table'),L=e.buildTableMap(K),M=J.$.rowIndex,N=z(L,M,I),O=I.$.rowSpan,P,Q,R,S;if(O>1){Q=Math.ceil(O/2);R=Math.floor(O/2);S=M+Q;var T=new h(K.$.rows[S]),U=z(L,S),V;P=I.clone();for(var W=0;W<U.length;W++){V=U[W];if(V.parentNode==T.$&&W>N){P.insertBefore(new h(V));break;}else V=null;}if(!V)T.append(P,true);}else{R=Q=1;T=J.clone();T.insertAfter(J);T.append(P=I.clone());var X=z(L,M);for(var Y=0;Y<X.length;Y++)X
[Y].rowSpan++;}if(!c)P.appendBogus();I.$.rowSpan=Q;P.$.rowSpan=R;if(Q==1)I.removeAttribute('rowSpan');if(R==1)P.removeAttribute('rowSpan');return P;};function D(F,G){var H=n(F);if(H.length>1)return false;else if(G)return true;var I=H[0],J=I.getParent(),K=J.getAscendant('table'),L=e.buildTableMap(K),M=J.$.rowIndex,N=z(L,M,I),O=I.$.colSpan,P,Q,R;if(O>1){Q=Math.ceil(O/2);R=Math.floor(O/2);}else{R=Q=1;var S=A(L,N);for(var T=0;T<S.length;T++)S[T].colSpan++;}P=I.clone();P.insertAfter(I);if(!c)P.appendBogus();I.$.colSpan=Q;P.$.colSpan=R;
-if(Q==1)I.removeAttribute('colSpan');if(R==1)P.removeAttribute('colSpan');return P;};var E={thead:1,tbody:1,tfoot:1,td:1,tr:1,th:1};j.tabletools={init:function(F){var G=F.lang.table;F.addCommand('cellProperties',new a.dialogCommand('cellProperties'));a.dialog.add('cellProperties',this.path+'dialogs/tableCell.js');F.addCommand('tableDelete',{exec:function(H){var I=H.getSelection(),J=I&&I.getStartElement(),K=J&&J.getAscendant('table',true);if(!K)return;I.selectElement(K);var L=I.getRanges()[0];L.collapse();I.selectRanges([L]);var M=K.getParent();if(M.getChildCount()==1&&M.getName()!='body')M.remove();else K.remove();}});F.addCommand('rowDelete',{exec:function(H){var I=H.getSelection();y(r(I));}});F.addCommand('rowInsertBefore',{exec:function(H){var I=H.getSelection();q(I,true);}});F.addCommand('rowInsertAfter',{exec:function(H){var I=H.getSelection();q(I);}});F.addCommand('columnDelete',{exec:function(H){var I=H.getSelection(),J=u(I);J&&y(J,true);}});F.addCommand('columnInsert
Before',{exec:function(H){var I=H.getSelection();s(I,true);}});F.addCommand('columnInsertAfter',{exec:function(H){var I=H.getSelection();s(I);}});F.addCommand('cellDelete',{exec:function(H){var I=H.getSelection();w(I);}});F.addCommand('cellMerge',{exec:function(H){y(B(H.getSelection()),true);}});F.addCommand('cellMergeRight',{exec:function(H){y(B(H.getSelection(),'right'),true);}});F.addCommand('cellMergeDown',{exec:function(H){y(B(H.getSelection(),'down'),true);}});F.addCommand('cellVerticalSplit',{exec:function(H){y(C(H.getSelection()));}});F.addCommand('cellHorizontalSplit',{exec:function(H){y(D(H.getSelection()));}});F.addCommand('cellInsertBefore',{exec:function(H){var I=H.getSelection();v(I,true);}});F.addCommand('cellInsertAfter',{exec:function(H){var I=H.getSelection();v(I);}});if(F.addMenuItems)F.addMenuItems({tablecell:{label:G.cell.menu,group:'tablecell',order:1,getItems:function(){var H=F.getSelection(),I=n(H);return{tablecell_insertBefore:2,tablecell_insertAfter
:2,tablecell_delete:2,tablecell_merge:B(H,null,true)?2:0,tablecell_merge_right:B(H,'right',true)?2:0,tablecell_merge_down:B(H,'down',true)?2:0,tablecell_split_vertical:C(H,true)?2:0,tablecell_split_horizontal:D(H,true)?2:0,tablecell_properties:I.length>0?2:0};}},tablecell_insertBefore:{label:G.cell.insertBefore,group:'tablecell',command:'cellInsertBefore',order:5},tablecell_insertAfter:{label:G.cell.insertAfter,group:'tablecell',command:'cellInsertAfter',order:10},tablecell_delete:{label:G.cell.deleteCell,group:'tablecell',command:'cellDelete',order:15},tablecell_merge:{label:G.cell.merge,group:'tablecell',command:'cellMerge',order:16},tablecell_merge_right:{label:G.cell.mergeRight,group:'tablecell',command:'cellMergeRight',order:17},tablecell_merge_down:{label:G.cell.mergeDown,group:'tablecell',command:'cellMergeDown',order:18},tablecell_split_horizontal:{label:G.cell.splitHorizontal,group:'tablecell',command:'cellHorizontalSplit',order:19},tablecell_split_vertical:{label:G
.cell.splitVertical,group:'tablecell',command:'cellVerticalSplit',order:20},tablecell_properties:{label:G.cell.title,group:'tablecellproperties',command:'cellProperties',order:21},tablerow:{label:G.row.menu,group:'tablerow',order:1,getItems:function(){return{tablerow_insertBefore:2,tablerow_insertAfter:2,tablerow_delete:2};
-}},tablerow_insertBefore:{label:G.row.insertBefore,group:'tablerow',command:'rowInsertBefore',order:5},tablerow_insertAfter:{label:G.row.insertAfter,group:'tablerow',command:'rowInsertAfter',order:10},tablerow_delete:{label:G.row.deleteRow,group:'tablerow',command:'rowDelete',order:15},tablecolumn:{label:G.column.menu,group:'tablecolumn',order:1,getItems:function(){return{tablecolumn_insertBefore:2,tablecolumn_insertAfter:2,tablecolumn_delete:2};}},tablecolumn_insertBefore:{label:G.column.insertBefore,group:'tablecolumn',command:'columnInsertBefore',order:5},tablecolumn_insertAfter:{label:G.column.insertAfter,group:'tablecolumn',command:'columnInsertAfter',order:10},tablecolumn_delete:{label:G.column.deleteColumn,group:'tablecolumn',command:'columnDelete',order:15}});if(F.contextMenu)F.contextMenu.addListener(function(H,I){if(!H||H.isReadOnly())return null;while(H){if(H.getName() in E)return{tablecell:2,tablerow:2,tablecolumn:2};H=H.getParent();}return null;});},getSelectedC
ells:n};j.add('tabletools',j.tabletools);})();e.buildTableMap=function(l){var m=l.$.rows,n=-1,o=[];for(var p=0;p<m.length;p++){n++;!o[n]&&(o[n]=[]);var q=-1;for(var r=0;r<m[p].cells.length;r++){var s=m[p].cells[r];q++;while(o[n][q])q++;var t=isNaN(s.colSpan)?1:s.colSpan,u=isNaN(s.rowSpan)?1:s.rowSpan;for(var v=0;v<u;v++){if(!o[n+v])o[n+v]=[];for(var w=0;w<t;w++)o[n+v][q+w]=m[p].cells[r];}q+=t-1;}}return o;};j.add('specialchar',{init:function(l){var m='specialchar';a.dialog.add(m,this.path+'dialogs/specialchar.js');l.addCommand(m,new a.dialogCommand(m));l.ui.addButton('SpecialChar',{label:l.lang.specialChar.toolbar,command:m});}});(function(){var l={editorFocus:false,modes:{wysiwyg:1,source:1}},m={exec:function(p){p.container.focusNext(true,p.tabIndex);}},n={exec:function(p){p.container.focusPrevious(true,p.tabIndex);}};function o(p){return{editorFocus:false,canUndo:false,modes:{wysiwyg:1},exec:function(q){if(q.focusManager.hasFocus){var r=q.getSelection(),s=r.getCommonAncest
or(),t;if(t=s.getAscendant('td',true)||s.getAscendant('th',true)){var u=new d.range(q.document),v=e.tryThese(function(){var C=t.getParent(),D=C.$.cells[t.$.cellIndex+(p?-1:1)];D.parentNode.parentNode;return D;},function(){var C=t.getParent(),D=C.getAscendant('table'),E=D.$.rows[C.$.rowIndex+(p?-1:1)];return E.cells[p?E.cells.length-1:0];});if(!(v||p)){var w=t.getAscendant('table').$,x=t.getParent().$.cells,y=new h(w.insertRow(-1),q.document);for(var z=0,A=x.length;z<A;z++){var B=y.append(new h(x[z],q.document).clone(false,false));
-!c&&B.appendBogus();}u.moveToElementEditStart(y);}else if(v){v=new h(v);u.moveToElementEditStart(v);if(!(u.checkStartOfBlock()&&u.checkEndOfBlock()))u.selectNodeContents(v);}else return true;u.select(true);return true;}}return false;}};};j.add('tab',{requires:['keystrokes'],init:function(p){var q=p.config.enableTabKeyTools!==false,r=p.config.tabSpaces||0,s='';while(r--)s+='\xa0';if(s)p.on('key',function(t){if(t.data.keyCode==9){p.insertHtml(s);t.cancel();}});if(q)p.on('key',function(t){if(t.data.keyCode==9&&p.execCommand('selectNextCell')||t.data.keyCode==2000+9&&p.execCommand('selectPreviousCell'))t.cancel();});if(b.webkit||b.gecko)p.on('key',function(t){var u=t.data.keyCode;if(u==9&&!s){t.cancel();p.execCommand('blur');}if(u==2000+9){p.execCommand('blurBack');t.cancel();}});p.addCommand('blur',e.extend(m,l));p.addCommand('blurBack',e.extend(n,l));p.addCommand('selectNextCell',o());p.addCommand('selectPreviousCell',o(true));}});})();h.prototype.focusNext=function(l,m){var v
=this;var n=v.$,o=m===undefined?v.getTabIndex():m,p,q,r,s,t,u;if(o<=0){t=v.getNextSourceNode(l,1);while(t){if(t.isVisible()&&t.getTabIndex()===0){r=t;break;}t=t.getNextSourceNode(false,1);}}else{t=v.getDocument().getBody().getFirst();while(t=t.getNextSourceNode(false,1)){if(!p)if(!q&&t.equals(v)){q=true;if(l){if(!(t=t.getNextSourceNode(true,1)))break;p=1;}}else if(q&&!v.contains(t))p=1;if(!t.isVisible()||(u=t.getTabIndex())<0)continue;if(p&&u==o){r=t;break;}if(u>o&&(!r||!s||u<s)){r=t;s=u;}else if(!r&&u===0){r=t;s=u;}}}if(r)r.focus();};h.prototype.focusPrevious=function(l,m){var v=this;var n=v.$,o=m===undefined?v.getTabIndex():m,p,q,r,s=0,t,u=v.getDocument().getBody().getLast();while(u=u.getPreviousSourceNode(false,1)){if(!p)if(!q&&u.equals(v)){q=true;if(l){if(!(u=u.getPreviousSourceNode(true,1)))break;p=1;}}else if(q&&!v.contains(u))p=1;if(!u.isVisible()||(t=u.getTabIndex())<0)continue;if(o<=0){if(p&&t===0){r=u;break;}if(t>s){r=u;s=t;}}else{if(p&&t==o){r=u;break;}if(t<o&&(!r
||t>s)){r=u;s=t;}}}if(r)r.focus();};(function(){j.add('templates',{requires:['dialog'],init:function(n){a.dialog.add('templates',a.getUrl(this.path+'dialogs/templates.js'));n.addCommand('templates',new a.dialogCommand('templates'));n.ui.addButton('Templates',{label:n.lang.templates.button,command:'templates'});}});var l={},m={};a.addTemplates=function(n,o){l[n]=o;};a.getTemplates=function(n){return l[n];};a.loadTemplates=function(n,o){var p=[];for(var q=0;q<n.length;q++){if(!m[n[q]]){p.push(n[q]);m[n[q]]=1;}}if(p.length>0)a.scriptLoader.load(p,o);
-else setTimeout(o,0);};})();i.templates='default';i.templates_files=[a.getUrl('plugins/templates/templates/default.js')];i.templates_replaceContent=true;(function(){var l=function(){this.toolbars=[];this.focusCommandExecuted=false;};l.prototype.focus=function(){for(var n=0,o;o=this.toolbars[n++];)for(var p=0,q;q=o.items[p++];){if(q.focus){q.focus();return;}}};var m={toolbarFocus:{modes:{wysiwyg:1,source:1},exec:function(n){if(n.toolbox){n.toolbox.focusCommandExecuted=true;if(c)setTimeout(function(){n.toolbox.focus();},100);else n.toolbox.focus();}}}};j.add('toolbar',{init:function(n){var o=function(p,q){var r,s,t,u=n.lang.dir=='rtl';switch(q){case u?37:39:case 9:do{r=p.next;if(!r){s=p.toolbar.next;t=s&&s.items.length;while(t===0){s=s.next;t=s&&s.items.length;}if(s)r=s.items[0];}p=r;}while(p&&!p.focus)if(p)p.focus();else n.toolbox.focus();return false;case u?39:37:case 2000+9:do{r=p.previous;if(!r){s=p.toolbar.previous;t=s&&s.items.length;while(t===0){s=s.previous;t=s&&s.item
s.length;}if(s)r=s.items[t-1];}p=r;}while(p&&!p.focus)if(p)p.focus();else{var v=n.toolbox.toolbars[n.toolbox.toolbars.length-1].items;v[v.length-1].focus();}return false;case 27:n.focus();return false;case 13:case 32:p.execute();return false;}return true;};n.on('themeSpace',function(p){if(p.data.space==n.config.toolbarLocation){n.toolbox=new l();var q='cke_'+e.getNextNumber(),r=['<div class="cke_toolbox" role="toolbar" aria-labelledby="',q,'"'],s=n.config.toolbarStartupExpanded!==false,t;r.push(s?'>':' style="display:none">');r.push('<span id="',q,'" class="cke_voice_label">',n.lang.toolbar,'</span>');var u=n.toolbox.toolbars,v=n.config.toolbar instanceof Array?n.config.toolbar:n.config['toolbar_'+n.config.toolbar];for(var w=0;w<v.length;w++){var x=v[w];if(!x)continue;var y='cke_'+e.getNextNumber(),z={id:y,items:[]};if(t){r.push('</div>');t=0;}if(x==='/'){r.push('<div class="cke_break"></div>');continue;}r.push('<span id="',y,'" class="cke_toolbar" role="presentation"><span
class="cke_toolbar_start"></span>');var A=u.push(z)-1;if(A>0){z.previous=u[A-1];z.previous.next=z;}for(var B=0;B<x.length;B++){var C,D=x[B];if(D=='-')C=k.separator;else C=n.ui.create(D);if(C){if(C.canGroup){if(!t){r.push('<span class="cke_toolgroup" role="presentation">');t=1;}}else if(t){r.push('</span>');t=0;}var E=C.render(n,r);A=z.items.push(E)-1;if(A>0){E.previous=z.items[A-1];E.previous.next=E;}E.toolbar=z;E.onkey=o;E.onfocus=function(){if(!n.toolbox.focusCommandExecuted)n.focus();};}}if(t){r.push('</span>');t=0;
-}r.push('<span class="cke_toolbar_end"></span></span>');}r.push('</div>');if(n.config.toolbarCanCollapse){var F=e.addFunction(function(){n.execCommand('toolbarCollapse');});n.on('destroy',function(){e.removeFunction(F);});var G='cke_'+e.getNextNumber();n.addCommand('toolbarCollapse',{exec:function(H){var I=a.document.getById(G),J=I.getPrevious(),K=H.getThemeSpace('contents'),L=J.getParent(),M=parseInt(K.$.style.height,10),N=L.$.offsetHeight,O=!J.isVisible();if(!O){J.hide();I.addClass('cke_toolbox_collapser_min');I.setAttribute('title',H.lang.toolbarExpand);}else{J.show();I.removeClass('cke_toolbox_collapser_min');I.setAttribute('title',H.lang.toolbarCollapse);}I.getFirst().setText(O?'â²':'â');var P=L.$.offsetHeight-N;K.setStyle('height',M-P+'px');H.fire('resize');},modes:{wysiwyg:1,source:1}});r.push('<a title="'+(s?n.lang.toolbarCollapse:n.lang.toolbarExpand)+'" id="'+G+'" tabIndex="-1" class="cke_toolbox_collapser');if(!s)r.push(' cke_toolbox_collapser_min');r.push('" o
nclick="CKEDITOR.tools.callFunction('+F+')">','<span>▲</span>','</a>');}p.data.html+=r.join('');}});n.addCommand('toolbarFocus',m.toolbarFocus);}});})();k.separator={render:function(l,m){m.push('<span class="cke_separator" role="separator"></span>');return{};}};i.toolbarLocation='top';i.toolbar_Basic=[['Bold','Italic','-','NumberedList','BulletedList','-','Link','Unlink','-','About']];i.toolbar_Full=[['Source','-','Save','NewPage','Preview','-','Templates'],['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print','SpellChecker','Scayt'],['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],'/',['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],['BidiLtr','BidiRtl'],['Link','Unlink','Anchor'],['Imag
e','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],'/',['Styles','Format','Font','FontSize'],['TextColor','BGColor'],['Maximize','ShowBlocks','-','About']];i.toolbar='Full';i.toolbarCanCollapse=true;(function(){j.add('undo',{requires:['selection','wysiwygarea'],init:function(r){var s=new n(r),t=r.addCommand('undo',{exec:function(){if(s.undo()){r.selectionChange();this.fire('afterUndo');}},state:0,canUndo:false}),u=r.addCommand('redo',{exec:function(){if(s.redo()){r.selectionChange();this.fire('afterRedo');
-}},state:0,canUndo:false});s.onChange=function(){t.setState(s.undoable()?2:0);u.setState(s.redoable()?2:0);};function v(w){if(s.enabled&&w.data.command.canUndo!==false)s.save();};r.on('beforeCommandExec',v);r.on('afterCommandExec',v);r.on('saveSnapshot',function(){s.save();});r.on('contentDom',function(){r.document.on('keydown',function(w){if(!w.data.$.ctrlKey&&!w.data.$.metaKey)s.type(w);});});r.on('beforeModeUnload',function(){r.mode=='wysiwyg'&&s.save(true);});r.on('mode',function(){s.enabled=r.mode=='wysiwyg';s.onChange();});r.ui.addButton('Undo',{label:r.lang.undo,command:'undo'});r.ui.addButton('Redo',{label:r.lang.redo,command:'redo'});r.resetUndo=function(){s.reset();r.fire('saveSnapshot');};r.on('updateSnapshot',function(){if(s.currentImage&&new l(r).equals(s.currentImage))setTimeout(function(){s.update();},0);});}});j.undo={};var l=j.undo.Image=function(r){this.editor=r;var s=r.getSnapshot(),t=s&&r.getSelection();c&&s&&(s=s.replace(/\s+_cke_expando=".*?"/g,''));thi
s.contents=s;this.bookmarks=t&&t.createBookmarks2(true);},m=/\b(?:href|src|name)="[^"]*?"/gi;l.prototype={equals:function(r,s){var t=this.contents,u=r.contents;if(c&&(b.ie7Compat||b.ie6Compat)){t=t.replace(m,'');u=u.replace(m,'');}if(t!=u)return false;if(s)return true;var v=this.bookmarks,w=r.bookmarks;if(v||w){if(!v||!w||v.length!=w.length)return false;for(var x=0;x<v.length;x++){var y=v[x],z=w[x];if(y.startOffset!=z.startOffset||y.endOffset!=z.endOffset||!e.arrayCompare(y.start,z.start)||!e.arrayCompare(y.end,z.end))return false;}}return true;}};function n(r){this.editor=r;this.reset();};var o={8:1,46:1},p={16:1,17:1,18:1},q={37:1,38:1,39:1,40:1};n.prototype={type:function(r){var s=r&&r.data.getKey(),t=s in p,u=s in o,v=this.lastKeystroke in o,w=u&&s==this.lastKeystroke,x=s in q,y=this.lastKeystroke in q,z=!u&&!x,A=u&&!w,B=!(t||this.typing)||z&&(v||y);if(B||A){var C=new l(this.editor);e.setTimeout(function(){var E=this;var D=E.editor.getSnapshot();if(c)D=D.replace(/\s+_cke
_expando=".*?"/g,'');if(C.contents!=D){E.typing=true;if(!E.save(false,C,false))E.snapshots.splice(E.index+1,E.snapshots.length-E.index-1);E.hasUndo=true;E.hasRedo=false;E.typesCount=1;E.modifiersCount=1;E.onChange();}},0,this);}this.lastKeystroke=s;if(u){this.typesCount=0;this.modifiersCount++;if(this.modifiersCount>25){this.save(false,null,false);this.modifiersCount=1;}}else if(!x){this.modifiersCount=0;this.typesCount++;if(this.typesCount>25){this.save(false,null,false);this.typesCount=1;}}},reset:function(){var r=this;
-r.lastKeystroke=0;r.snapshots=[];r.index=-1;r.limit=r.editor.config.undoStackSize;r.currentImage=null;r.hasUndo=false;r.hasRedo=false;r.resetType();},resetType:function(){var r=this;r.typing=false;delete r.lastKeystroke;r.typesCount=0;r.modifiersCount=0;},fireChange:function(){var r=this;r.hasUndo=!!r.getNextImage(true);r.hasRedo=!!r.getNextImage(false);r.resetType();r.onChange();},save:function(r,s,t){var v=this;var u=v.snapshots;if(!s)s=new l(v.editor);if(s.contents===false)return false;if(v.currentImage&&s.equals(v.currentImage,r))return false;u.splice(v.index+1,u.length-v.index-1);if(u.length==v.limit)u.shift();v.index=u.push(s)-1;v.currentImage=s;if(t!==false)v.fireChange();return true;},restoreImage:function(r){var t=this;t.editor.loadSnapshot(r.contents);if(r.bookmarks)t.editor.getSelection().selectBookmarks(r.bookmarks);else if(c){var s=t.editor.document.getBody().$.createTextRange();s.collapse(true);s.select();}t.index=r.index;t.update();t.fireChange();},getNextImag
e:function(r){var w=this;var s=w.snapshots,t=w.currentImage,u,v;if(t)if(r)for(v=w.index-1;v>=0;v--){u=s[v];if(!t.equals(u,true)){u.index=v;return u;}}else for(v=w.index+1;v<s.length;v++){u=s[v];if(!t.equals(u,true)){u.index=v;return u;}}return null;},redoable:function(){return this.enabled&&this.hasRedo;},undoable:function(){return this.enabled&&this.hasUndo;},undo:function(){var s=this;if(s.undoable()){s.save(true);var r=s.getNextImage(true);if(r)return s.restoreImage(r),true;}return false;},redo:function(){var s=this;if(s.redoable()){s.save(true);if(s.redoable()){var r=s.getNextImage(false);if(r)return s.restoreImage(r),true;}}return false;},update:function(){var r=this;r.snapshots.splice(r.index,1,r.currentImage=new l(r.editor));}};})();i.undoStackSize=20;(function(){var l={table:1,pre:1},m=/\s*<(p|div|address|h\d|center)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\1>)?(?=\s*$|<\/body>)/gi,n=d.walker.whitespaces(true);function o(A){if(A.getType()==3)return A.getS
electedElement().isReadOnly();else return A.getCommonAncestor().isReadOnly();};function p(A){if(this.mode=='wysiwyg'){this.focus();var B=this.getSelection();if(o(B))return;var C=A.data;this.fire('saveSnapshot');if(this.dataProcessor)C=this.dataProcessor.toHtml(C);if(c){var D=B.isLocked;if(D)B.unlock();var E=B.getNative();if(E.type=='Control')E.clear();else if(B.getType()==2){var F=B.getRanges()[0],G=F&&F.endContainer;if(G&&G.type==1&&G.getAttribute('contenteditable')=='false'&&F.checkBoundaryOfElement(G,2)){F.setEndAfter(F.endContainer);
-F.deleteContents();}}try{E.createRange().pasteHTML(C);}catch(I){}if(D)this.getSelection().lock();}else this.document.$.execCommand('inserthtml',false,C);if(b.webkit){this.document.$.execCommand('inserthtml',false,'<span id="cke_paste_marker" cke_temp="1"></span>');var H=this.document.getById('cke_paste_marker');H.scrollIntoView();H.remove();}e.setTimeout(function(){this.fire('saveSnapshot');},0,this);}};function q(A){if(this.mode=='wysiwyg'){this.focus();var B=this.getSelection();if(o(B))return;this.fire('saveSnapshot');var C=B.getRanges(),D=A.data,E=D.getName(),F=f.$block[E],G=B.isLocked;if(G)B.unlock();var H,I,J,K;for(var L=C.length-1;L>=0;L--){H=C[L];H.deleteContents();I=!L&&D||D.clone(true);var M,N;if(F)while((M=H.getCommonAncestor(false,true))&&(N=f[M.getName()])&&!(N&&N[E])){if(M.getName() in f.span)H.splitElement(M);else if(H.checkStartOfBlock()&&H.checkEndOfBlock()){H.setStartBefore(M);H.collapse(true);M.remove();}else H.splitBlock();}H.insertNode(I);if(!J)J=I;}H.mov
eToPosition(J,4);if(F){var O=J.getNext(n),P=O&&O.type==1&&O.getName();if(P&&f.$block[P]&&f[P]['#'])H.moveToElementEditStart(O);}B.selectRanges([H]);if(G)this.getSelection().lock();e.setTimeout(function(){this.fire('saveSnapshot');},0,this);}};function r(A){if(!A.checkDirty())setTimeout(function(){A.resetDirty();},0);};var s=d.walker.whitespaces(true),t=d.walker.bookmark(false,true);function u(A){return s(A)&&t(A);};function v(A){return A.type==3&&e.trim(A.getText()).match(/^(?: |\xa0)$/);};function w(A){if(A.isLocked){A.unlock();setTimeout(function(){A.lock();},0);}};function x(A){return A.getOuterHtml().match(m);};s=d.walker.whitespaces(true);function y(A){var B=A.window,C=A.document,D=A.document.getBody(),E=D.getChildren().count();if(!E||E==1&&D.getFirst().hasAttribute('_moz_editor_bogus_node')){r(A);var F=A.element.getDocument(),G=F.getDocumentElement(),H=G.$.scrollTop,I=G.$.scrollLeft,J=C.$.createEvent('KeyEvents');J.initKeyEvent('keypress',true,true,B.$,false,false
,false,false,0,32);C.$.dispatchEvent(J);if(H!=G.$.scrollTop||I!=G.$.scrollLeft)F.getWindow().$.scrollTo(I,H);E&&D.getFirst().remove();C.getBody().appendBogus();var K=new d.range(C);K.setStartAt(D,1);K.select();}};function z(A){var B=A.editor,C=A.data.path,D=C.blockLimit,E=A.data.selection,F=E.getRanges()[0],G=B.document.getBody(),H=B.config.enterMode;b.gecko&&y(B);if(H!=2&&F.collapsed&&D.getName()=='body'&&!C.block){B.fire('updateSnapshot');r(B);c&&w(E);var I=F.fixBlock(true,B.config.enterMode==3?'div':'p');if(c){var J=I.getFirst(u);
-J&&v(J)&&J.remove();}if(x(I)){var K=I.getNext(s);if(K&&K.type==1&&!l[K.getName()]){F.moveToElementEditStart(K);I.remove();}else{K=I.getPrevious(s);if(K&&K.type==1&&!l[K.getName()]){F.moveToElementEditEnd(K);I.remove();}}}F.select();if(!c)B.selectionChange();}var L=new d.range(B.document),M=new d.walker(L);L.selectNodeContents(G);M.evaluator=function(O){return O.type==1&&O.getName() in l;};M.guard=function(O,P){return!(O.type==3&&s(O)||P);};if(M.previous()){B.fire('updateSnapshot');r(B);c&&w(E);var N;if(H!=2)N=G.append(new h(H==1?'p':'div'));else N=G;if(!c)N.appendBogus();}};j.add('wysiwygarea',{requires:['editingblock'],init:function(A){var B=A.config.enterMode!=2?A.config.enterMode==3?'div':'p':false,C=A.lang.editorTitle.replace('%1',A.name),D;A.on('editingBlockReady',function(){var J,K,L,M,N,O,P=b.isCustomDomain(),Q=function(T){if(K)K.remove();var U='document.open();'+(P?'document.domain="'+document.domain+'";':'')+'document.close();';K=h.createFromHtml('<iframe style="wid
th:100%;height:100%" frameBorder="0" title="'+C+'"'+' src="'+(c?'javascript:void(function(){'+encodeURIComponent(U)+'}())':'')+'"'+' tabIndex="'+(b.webkit?-1:A.tabIndex)+'"'+' allowTransparency="true"'+'></iframe>');if(document.location.protocol=='chrome:')a.event.useCapture=true;K.on('load',function(Y){N=1;Y.removeListener();var Z=K.getFrameDocument().$;Z.open('text/html','replace');Z.write(T);Z.close();});if(document.location.protocol=='chrome:')a.event.useCapture=false;var V=A.element,W=b.gecko&&!V.isVisible(),X={};if(W){V.show();X={position:V.getStyle('position'),top:V.getStyle('top')};V.setStyles({position:'absolute',top:'-3000px'});}J.append(K);if(W)setTimeout(function(){V.hide();V.setStyles(X);},1000);};D=e.addFunction(S);var R='<script id="cke_actscrpt" type="text/javascript" cke_temp="1">'+(P?'document.domain="'+document.domain+'";':'')+'window.parent.CKEDITOR.tools.callFunction( '+D+', window );'+'</script>';function S(T){if(!N)return;N=0;A.fire('ariaWidget',K);var
U=T.document,V=U.body,W=U.getElementById('cke_actscrpt');W.parentNode.removeChild(W);V.spellcheck=!A.config.disableNativeSpellChecker;if(c){V.hideFocus=true;V.disabled=true;V.contentEditable=true;V.removeAttribute('disabled');}else setTimeout(function(){if(b.gecko&&b.version>=10900||b.opera)U.$.body.contentEditable=true;else if(b.webkit)U.$.body.parentNode.contentEditable=true;else U.$.designMode='on';},0);b.gecko&&e.setTimeout(y,0,null,A);T=A.window=new d.window(T);U=A.document=new g(U);U.on('dblclick',function(aa){var ab=aa.data.getTarget(),ac={element:ab,dialog:''};
-A.fire('doubleclick',ac);ac.dialog&&A.openDialog(ac.dialog);});if(!(c||b.opera))U.on('mousedown',function(aa){var ab=aa.data.getTarget();if(ab.is('img','hr','input','textarea','select'))A.getSelection().selectElement(ab);});if(b.gecko)U.on('mouseup',function(aa){if(aa.data.$.button==2){var ab=aa.data.getTarget();if(!ab.getOuterHtml().replace(m,'')){var ac=new d.range(U);ac.moveToElementEditStart(ab);ac.select(true);}}});U.on('click',function(aa){aa=aa.data;if(aa.getTarget().is('a')&&aa.$.button!=2)aa.preventDefault();});if(b.webkit){U.on('click',function(aa){if(aa.data.getTarget().is('input','select'))aa.data.preventDefault();});U.on('mouseup',function(aa){if(aa.data.getTarget().is('input','textarea'))aa.data.preventDefault();});}if(c&&U.$.compatMode=='CSS1Compat'||b.gecko||b.opera){var X=U.getDocumentElement();X.on('mousedown',function(aa){if(aa.data.getTarget().equals(X)){if(b.gecko&&b.version>=10900)H();I.focus();}});}T.on('blur',function(){A.focusManager.blur();});T.on('
focus',function(){var aa=A.document;if(b.gecko&&b.version>=10900)H();else if(b.opera)aa.getBody().focus();A.focusManager.focus();});var Y=A.keystrokeHandler;if(Y)Y.attach(U);if(c){U.getDocumentElement().addClass(U.$.compatMode);U.on('keydown',function(aa){var ab=aa.data.getKeystroke();if(ab in {8:1,46:1}){var ac=A.getSelection(),ad=ac.getSelectedElement();if(ad){A.fire('saveSnapshot');var ae=ac.getRanges()[0].createBookmark();ad.remove();ac.selectBookmarks([ae]);A.fire('saveSnapshot');aa.data.preventDefault();}}});if(U.$.compatMode=='CSS1Compat'){var Z={33:1,34:1};U.on('keydown',function(aa){if(aa.data.getKeystroke() in Z)setTimeout(function(){A.getSelection().scrollIntoView();},0);});}}if(A.contextMenu)A.contextMenu.addTarget(U,A.config.browserContextMenuOnCtrl!==false);setTimeout(function(){A.fire('contentDom');if(O){A.mode='wysiwyg';A.fire('mode');O=false;}L=false;if(M){A.focus();M=false;}setTimeout(function(){A.fire('dataReady');},0);try{A.document.$.execCommand('enableO
bjectResizing',false,!A.config.disableObjectResizing);}catch(aa){}try{A.document.$.execCommand('enableInlineTableEditing',false,!A.config.disableNativeTableHandles);}catch(ab){}if(c)setTimeout(function(){if(A.document){var ac=A.document.$.body;ac.runtimeStyle.marginBottom='0px';ac.runtimeStyle.marginBottom='';}},1000);},0);};A.addMode('wysiwyg',{load:function(T,U,V){J=T;if(c&&b.quirks)T.setStyle('position','relative');A.mayBeDirty=true;O=true;if(V)this.loadSnapshotData(U);else this.loadData(U);},loadData:function(T){L=true;
-var U=A.config,V=U.fullPage,W=U.docType,X='<style type="text/css" cke_temp="1">'+A._.styles.join('\n')+'</style>';!V&&(X=e.buildStyleHtml(A.config.contentsCss)+X);var Y=U.baseHref?'<base href="'+U.baseHref+'" cke_temp="1" />':'';if(V)T=T.replace(/<!DOCTYPE[^>]*>/i,function(Z){A.docType=W=Z;return '';});if(A.dataProcessor)T=A.dataProcessor.toHtml(T,B);if(V){if(!/<body[\s|>]/.test(T))T='<body>'+T;if(!/<html[\s|>]/.test(T))T='<html>'+T+'</html>';if(!/<head[\s|>]/.test(T))T=T.replace(/<html[^>]*>/,'$&<head><title></title></head>');else if(!/<title[\s|>]/.test(T))T=T.replace(/<head[^>]*>/,'$&<title></title>');Y&&(T=T.replace(/<head>/,'$&'+Y));T=T.replace(/<\/head\s*>/,X+'$&');T=W+T;}else T=U.docType+'<html dir="'+U.contentsLangDirection+'"'+' lang="'+(U.contentsLanguage||A.langCode)+'">'+'<head>'+'<title>'+C+'</title>'+Y+X+'</head>'+'<body'+(U.bodyId?' id="'+U.bodyId+'"':'')+(U.bodyClass?' class="'+U.bodyClass+'"':'')+'>'+T+'</html>';T+=R;this.onDispose();Q(T);},getData:function(
){var T=A.config,U=T.fullPage,V=U&&A.docType,W=K.getFrameDocument(),X=U?W.getDocumentElement().getOuterHtml():W.getBody().getHtml();if(A.dataProcessor)X=A.dataProcessor.toDataFormat(X,B);if(T.ignoreEmptyParagraph)X=X.replace(m,'');if(V)X=V+'\n'+X;return X;},getSnapshotData:function(){return K.getFrameDocument().getBody().getHtml();},loadSnapshotData:function(T){K.getFrameDocument().getBody().setHtml(T);},onDispose:function(){if(!A.document)return;A.document.getDocumentElement().clearCustomData();A.document.getBody().clearCustomData();A.window.clearCustomData();A.document.clearCustomData();K.clearCustomData();K.remove();},unload:function(T){this.onDispose();A.window=A.document=K=J=M=null;A.fire('contentDomUnload');},focus:function(){if(L)M=true;else if(b.opera&&A.document){A.document.getBody().focus();A.selectionChange();}else if(!b.opera&&A.window){A.window.focus();A.selectionChange();}}});A.on('insertHtml',p,null,null,20);A.on('insertElement',q,null,null,20);A.on('selection
Change',z,null,null,1);});var E;A.on('contentDom',function(){var J=A.document.getElementsByTag('title').getItem(0);J.setAttribute('_cke_title',A.document.$.title);A.document.$.title=C;});if(b.ie8Compat){A.addCss('html.CSS1Compat [contenteditable=false]{ min-height:0 !important;}');var F=[];for(var G in f.$removeEmpty)F.push('html.CSS1Compat '+G+'[contenteditable=false]');A.addCss(F.join(',')+'{ display:inline-block;}');}function H(J){e.tryThese(function(){A.document.$.designMode='on';setTimeout(function(){A.document.$.designMode='off';
-A.document.getBody().focus();},50);},function(){A.document.$.designMode='off';var K=A.document.getBody();K.setAttribute('contentEditable',false);K.setAttribute('contentEditable',true);!J&&H(1);});};if(b.gecko||c||b.opera){var I;A.on('uiReady',function(){I=A.container.append(h.createFromHtml('<span tabindex="-1" style="position:absolute; left:-10000" role="presentation"></span>'));I.on('focus',function(){A.focus();});});A.on('destroy',function(){e.removeFunction(D);I.clearCustomData();});}A.on('insertElement',function(J){var K=J.data;if(K.type==1&&(K.is('input')||K.is('textarea')))if(!K.isReadOnly()){K.setAttribute('contentEditable',false);K.setCustomData('_cke_notReadOnly',1);}});}});if(b.gecko)(function(){var A=document.body;if(!A)window.addEventListener('load',arguments.callee,false);else{var B=A.getAttribute('onpageshow');A.setAttribute('onpageshow',(B?B+';':'')+'event.persisted && (function(){'+'var allInstances = CKEDITOR.instances, editor, doc;'+'for ( var i in allInst
ances )'+'{'+'\teditor = allInstances[ i ];'+'\tdoc = editor.document;'+'\tif ( doc )'+'\t{'+'\t\tdoc.$.designMode = "off";'+'\t\tdoc.$.designMode = "on";'+'\t}'+'}'+'})();');}})();})();i.disableObjectResizing=false;i.disableNativeTableHandles=true;i.disableNativeSpellChecker=true;i.ignoreEmptyParagraph=true;j.add('wsc',{requires:['dialog'],init:function(l){var m='checkspell',n=l.addCommand(m,new a.dialogCommand(m));n.modes={wysiwyg:!b.opera&&document.domain==window.location.hostname};l.ui.addButton('SpellChecker',{label:l.lang.spellCheck.toolbar,command:m});a.dialog.add(m,this.path+'dialogs/wsc.js');}});i.wsc_customerId=i.wsc_customerId||'1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk';i.wsc_customLoaderScript=i.wsc_customLoaderScript||null;a.DIALOG_RESIZE_NONE=0;a.DIALOG_RESIZE_WIDTH=1;a.DIALOG_RESIZE_HEIGHT=2;a.DIALOG_RESIZE_BOTH=3;(function(){function l(N){return!!this._.tabs[N][0].$.offsetHeight;};function m(){var R=this;var N=R._.currentTabId,O=R
._.tabIdList.length,P=e.indexOf(R._.tabIdList,N)+O;for(var Q=P-1;Q>P-O;Q--){if(l.call(R,R._.tabIdList[Q%O]))return R._.tabIdList[Q%O];}return null;};function n(){var R=this;var N=R._.currentTabId,O=R._.tabIdList.length,P=e.indexOf(R._.tabIdList,N);for(var Q=P+1;Q<P+O;Q++){if(l.call(R,R._.tabIdList[Q%O]))return R._.tabIdList[Q%O];}return null;};function o(N,O){var P=N.$.getElementsByTagName('input');for(var Q=0,R=P.length;Q<R;Q++){var S=new h(P[Q]);if(S.getAttribute('type').toLowerCase()=='text')if(O){S.setAttribute('value',S.getCustomData('fake_value')||'');
-S.removeCustomData('fake_value');}else{S.setCustomData('fake_value',S.getAttribute('value'));S.setAttribute('value','');}}};a.dialog=function(N,O){var P=a.dialog._.dialogDefinitions[O];P=e.extend(P(N),q);P=e.clone(P);P=new u(this,P);var Q=a.document,R=N.theme.buildDialog(N);this._={editor:N,element:R.element,name:O,contentSize:{width:0,height:0},size:{width:0,height:0},updateSize:false,contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:false,focusList:[],currentFocusIndex:0,hasFocus:false};this.parts=R.parts;e.setTimeout(function(){N.fire('ariaWidget',this.parts.contents);},0,this);this.parts.dialog.setStyles({position:b.ie6Compat?'absolute':'fixed',top:0,left:0,visibility:'hidden'});a.event.call(this);this.definition=P=a.fire('dialogDefinition',{name:O,definition:P},N).definition;if(P.onLoad)this.on('load',P.onLoad);if(P.onShow)this.on('show',P.onShow);if(P.onHide)this.on('hide',P.onHide);if
(P.onOk)this.on('ok',function(ae){N.fire('saveSnapshot');setTimeout(function(){N.fire('saveSnapshot');},0);if(P.onOk.call(this,ae)===false)ae.data.hide=false;});if(P.onCancel)this.on('cancel',function(ae){if(P.onCancel.call(this,ae)===false)ae.data.hide=false;});var S=this,T=function(ae){var af=S._.contents,ag=false;for(var ah in af)for(var ai in af[ah]){ag=ae.call(this,af[ah][ai]);if(ag)return;}};this.on('ok',function(ae){T(function(af){if(af.validate){var ag=af.validate(this);if(typeof ag=='string'){alert(ag);ag=false;}if(ag===false){if(af.select)af.select();else af.focus();ae.data.hide=false;ae.stop();return true;}}});},this,null,0);this.on('cancel',function(ae){T(function(af){if(af.isChanged()){if(!confirm(N.lang.common.confirmCancel))ae.data.hide=false;return true;}});},this,null,0);this.parts.close.on('click',function(ae){if(this.fire('cancel',{hide:true}).hide!==false)this.hide();ae.data.preventDefault();},this);function U(){var ae=S._.focusList;ae.sort(function(ah,ai
){if(ah.tabIndex!=ai.tabIndex)return ai.tabIndex-ah.tabIndex;else return ah.focusIndex-ai.focusIndex;});var af=ae.length;for(var ag=0;ag<af;ag++)ae[ag].focusIndex=ag;};function V(ae){var af=S._.focusList,ag=ae?1:-1;if(af.length<1)return;var ah=S._.currentFocusIndex;try{af[ah].getInputElement().$.blur();}catch(ak){}var ai=(ah+ag+af.length)%af.length,aj=ai;while(!af[aj].isFocusable()){aj=(aj+ag+af.length)%af.length;if(aj==ai)break;}af[aj].focus();if(af[aj].type=='text')af[aj].select();};this.changeFocus=V;var W;function X(ae){var aj=this;
-if(S!=a.dialog._.currentTop)return;var af=ae.data.getKeystroke(),ag=N.lang.dir=='rtl';W=0;if(af==9||af==2000+9){var ah=af==2000+9;if(S._.tabBarMode){var ai=ah?m.call(S):n.call(S);S.selectPage(ai);S._.tabs[ai][0].focus();}else V(!ah);W=1;}else if(af==4000+121&&!S._.tabBarMode&&S.getPageCount()>1){S._.tabBarMode=true;S._.tabs[S._.currentTabId][0].focus();W=1;}else if((af==37||af==39)&&S._.tabBarMode){ai=af==(ag?39:37)?m.call(S):n.call(S);S.selectPage(ai);S._.tabs[ai][0].focus();W=1;}else if((af==13||af==32)&&S._.tabBarMode){aj.selectPage(aj._.currentTabId);aj._.tabBarMode=false;aj._.currentFocusIndex=-1;V(true);W=1;}if(W){ae.stop();ae.data.preventDefault();}};function Y(ae){W&&ae.data.preventDefault();};var Z=this._.element;this.on('show',function(){Z.on('keydown',X,this,null,0);if(b.opera||b.gecko&&b.mac)Z.on('keypress',Y,this);});this.on('hide',function(){Z.removeListener('keydown',X);if(b.opera||b.gecko&&b.mac)Z.removeListener('keypress',Y);});this.on('iframeAdded',function
(ae){var af=new g(ae.data.iframe.$.contentWindow.document);af.on('keydown',X,this,null,0);});this.on('show',function(){var ai=this;U();if(N.config.dialog_startupFocusTab&&S._.pageCount>1){S._.tabBarMode=true;S._.tabs[S._.currentTabId][0].focus();}else if(!ai._.hasFocus){ai._.currentFocusIndex=-1;if(P.onFocus){var ae=P.onFocus.call(ai);ae&&ae.focus();}else V(true);if(ai._.editor.mode=='wysiwyg'&&c){var af=N.document.$.selection,ag=af.createRange();if(ag)if(ag.parentElement&&ag.parentElement().ownerDocument==N.document.$||ag.item&&ag.item(0).ownerDocument==N.document.$){var ah=document.body.createTextRange();ah.moveToElementText(ai.getElement().getFirst().$);ah.collapse(true);ah.select();}}}},this,null,4294967295);if(b.ie6Compat)this.on('load',function(ae){var af=this.getElement(),ag=af.getFirst();ag.remove();ag.appendTo(af);},this);w(this);x(this);new d.text(P.title,a.document).appendTo(this.parts.title);for(var aa=0;aa<P.contents.length;aa++){var ab=P.contents[aa];ab&&this.a
ddPage(ab);}this.parts.tabs.on('click',function(ae){var ah=this;var af=ae.data.getTarget();if(af.hasClass('cke_dialog_tab')){var ag=af.$.id;ah.selectPage(ag.substring(4,ag.lastIndexOf('_')));if(ah._.tabBarMode){ah._.tabBarMode=false;ah._.currentFocusIndex=-1;V(true);}ae.data.preventDefault();}},this);var ac=[],ad=a.dialog._.uiElementBuilders.hbox.build(this,{type:'hbox',className:'cke_dialog_footer_buttons',widths:[],children:P.buttons},ac).getChild();this.parts.footer.setHtml(ac.join(''));for(aa=0;aa<ad.length;aa++)this._.buttons[ad[aa].id]=ad[aa];
-};function p(N,O,P){this.element=O;this.focusIndex=P;this.tabIndex=0;this.isFocusable=function(){return!O.getAttribute('disabled')&&O.isVisible();};this.focus=function(){N._.currentFocusIndex=this.focusIndex;this.element.focus();};O.on('keydown',function(Q){if(Q.data.getKeystroke() in {32:1,13:1})this.fire('click');});O.on('focus',function(){this.fire('mouseover');});O.on('blur',function(){this.fire('mouseout');});};a.dialog.prototype={destroy:function(){this.hide();this._.element.remove();},resize:(function(){return function(N,O){var P=this;if(P._.contentSize&&P._.contentSize.width==N&&P._.contentSize.height==O)return;a.dialog.fire('resize',{dialog:P,skin:P._.editor.skinName,width:N,height:O},P._.editor);P._.contentSize={width:N,height:O};P._.updateSize=true;};})(),getSize:function(){var P=this;if(!P._.updateSize)return P._.size;var N=P._.element.getFirst(),O=P._.size={width:N.$.offsetWidth||0,height:N.$.offsetHeight||0};P._.updateSize=!O.width||!O.height;return O;},move:(f
unction(){var N;return function(O,P){var S=this;var Q=S._.element.getFirst();if(N===undefined)N=Q.getComputedStyle('position')=='fixed';if(N&&S._.position&&S._.position.x==O&&S._.position.y==P)return;S._.position={x:O,y:P};if(!N){var R=a.document.getWindow().getScrollPosition();O+=R.x;P+=R.y;}Q.setStyles({left:(O>0?O:0)+'px',top:(P>0?P:0)+'px'});};})(),getPosition:function(){return e.extend({},this._.position);},show:function(){var N=this._.editor;if(N.mode=='wysiwyg'&&c){var O=N.getSelection();O&&O.lock();}var P=this._.element,Q=this.definition;if(!(P.getParent()&&P.getParent().equals(a.document.getBody())))P.appendTo(a.document.getBody());else P.setStyle('display','block');if(b.gecko&&b.version<10900){var R=this.parts.dialog;R.setStyle('position','absolute');setTimeout(function(){R.setStyle('position','fixed');},0);}this.resize(Q.minWidth,Q.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);if(a.dialog._.currentZIndex===null)a.dialog._.currentZIndex=th
is._.editor.config.baseFloatZIndex;this._.element.getFirst().setStyle('z-index',a.dialog._.currentZIndex+=10);if(a.dialog._.currentTop===null){a.dialog._.currentTop=this;this._.parentDialog=null;B(this._.editor);P.on('keydown',F);P.on(b.opera?'keypress':'keyup',G);for(var S in {keyup:1,keydown:1,keypress:1})P.on(S,M);}else{this._.parentDialog=a.dialog._.currentTop;var T=this._.parentDialog.getElement().getFirst();T.$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2);a.dialog._.currentTop=this;}H(this,this,'\x1b',null,function(){this.getButton('cancel')&&this.getButton('cancel').click();
-});this._.hasFocus=false;e.setTimeout(function(){var U=a.document.getWindow().getViewPaneSize(),V=this.getSize();this.move((U.width-Q.minWidth)/2,(U.height-V.height)/2);this.parts.dialog.setStyle('visibility','');this.fireOnce('load',{});this.fire('show',{});this._.editor.fire('dialogShow',this);this.foreach(function(W){W.setInitValue&&W.setInitValue();});},100,this);},foreach:function(N){var Q=this;for(var O in Q._.contents)for(var P in Q._.contents[O])N(Q._.contents[O][P]);return Q;},reset:(function(){var N=function(O){if(O.reset)O.reset(1);};return function(){this.foreach(N);return this;};})(),setupContent:function(){var N=arguments;this.foreach(function(O){if(O.setup)O.setup.apply(O,N);});},commitContent:function(){var N=arguments;this.foreach(function(O){if(O.commit)O.commit.apply(O,N);});},hide:function(){if(!this.parts.dialog.isVisible())return;this.fire('hide',{});this._.editor.fire('dialogHide',this);var N=this._.element;N.setStyle('display','none');this.parts.dialo
g.setStyle('visibility','hidden');I(this);while(a.dialog._.currentTop!=this)a.dialog._.currentTop.hide();if(!this._.parentDialog)C();else{var O=this._.parentDialog.getElement().getFirst();O.setStyle('z-index',parseInt(O.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2));}a.dialog._.currentTop=this._.parentDialog;if(!this._.parentDialog){a.dialog._.currentZIndex=null;N.removeListener('keydown',F);N.removeListener(b.opera?'keypress':'keyup',G);for(var P in {keyup:1,keydown:1,keypress:1})N.removeListener(P,M);var Q=this._.editor;Q.focus();if(Q.mode=='wysiwyg'&&c){var R=Q.getSelection();R&&R.unlock(true);}}else a.dialog._.currentZIndex-=10;delete this._.parentDialog;this.foreach(function(S){S.resetInitValue&&S.resetInitValue();});},addPage:function(N){var Z=this;var O=[],P=N.label?' title="'+e.htmlEncode(N.label)+'"':'',Q=N.elements,R=a.dialog._.uiElementBuilders.vbox.build(Z,{type:'vbox',className:'cke_dialog_page_contents',children:N.elements,expand:!!N.exp
and,padding:N.padding,style:N.style||'width: 100%; height: 100%;'},O),S=h.createFromHtml(O.join(''));S.setAttribute('role','tabpanel');var T=b,U='cke_'+N.id+'_'+e.getNextNumber(),V=h.createFromHtml(['<a class="cke_dialog_tab"',Z._.pageCount>0?' cke_last':'cke_first',P,!!N.hidden?' style="display:none"':'',' id="',U,'"',T.gecko&&T.version>=10900&&!T.hc?'':' href="javascript:void(0)"',' tabIndex="-1"',' hidefocus="true"',' role="tab">',N.label,'</a>'].join(''));S.setAttribute('aria-labelledby',U);Z._.tabs[N.id]=[V,S];Z._.tabIdList.push(N.id);
-!N.hidden&&Z._.pageCount++;Z._.lastTab=V;Z.updateStyle();var W=Z._.contents[N.id]={},X,Y=R.getChild();while(X=Y.shift()){W[X.id]=X;if(typeof X.getChild=='function')Y.push.apply(Y,X.getChild());}S.setAttribute('name',N.id);S.appendTo(Z.parts.contents);V.unselectable();Z.parts.tabs.append(V);if(N.accessKey){H(Z,Z,'CTRL+'+N.accessKey,K,J);Z._.accessKeyMap['CTRL+'+N.accessKey]=N.id;}},selectPage:function(N){if(this._.currentTabId==N)return;if(this.fire('selectPage',{page:N,currentPage:this._.currentTabId})===true)return;for(var O in this._.tabs){var P=this._.tabs[O][0],Q=this._.tabs[O][1];if(O!=N){P.removeClass('cke_dialog_tab_selected');Q.hide();}Q.setAttribute('aria-hidden',O!=N);}var R=this._.tabs[N];R[0].addClass('cke_dialog_tab_selected');if(b.ie6Compat||b.ie7Compat){o(R[1]);R[1].show();setTimeout(function(){o(R[1],true);},0);}else R[1].show();this._.currentTabId=N;this._.currentTabIndex=e.indexOf(this._.tabIdList,N);},updateStyle:function(){this.parts.dialog[(this._.pageCo
unt===1?'add':'remove')+'Class']('cke_single_page');},hidePage:function(N){var P=this;var O=P._.tabs[N]&&P._.tabs[N][0];if(!O||P._.pageCount==1)return;else if(N==P._.currentTabId)P.selectPage(m.call(P));O.hide();P._.pageCount--;P.updateStyle();},showPage:function(N){var P=this;var O=P._.tabs[N]&&P._.tabs[N][0];if(!O)return;O.show();P._.pageCount++;P.updateStyle();},getElement:function(){return this._.element;},getName:function(){return this._.name;},getContentElement:function(N,O){var P=this._.contents[N];return P&&P[O];},getValueOf:function(N,O){return this.getContentElement(N,O).getValue();},setValueOf:function(N,O,P){return this.getContentElement(N,O).setValue(P);},getButton:function(N){return this._.buttons[N];},click:function(N){return this._.buttons[N].click();},disableButton:function(N){return this._.buttons[N].disable();},enableButton:function(N){return this._.buttons[N].enable();},getPageCount:function(){return this._.pageCount;},getParentEditor:function(){return th
is._.editor;},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement();},addFocusable:function(N,O){var Q=this;if(typeof O=='undefined'){O=Q._.focusList.length;Q._.focusList.push(new p(Q,N,O));}else{Q._.focusList.splice(O,0,new p(Q,N,O));for(var P=O+1;P<Q._.focusList.length;P++)Q._.focusList[P].focusIndex++;}}};e.extend(a.dialog,{add:function(N,O){if(!this._.dialogDefinitions[N]||typeof O=='function')this._.dialogDefinitions[N]=O;},exists:function(N){return!!this._.dialogDefinitions[N];
-},getCurrent:function(){return a.dialog._.currentTop;},okButton:(function(){var N=function(O,P){P=P||{};return e.extend({id:'ok',type:'button',label:O.lang.common.ok,'class':'cke_dialog_ui_button_ok',onClick:function(Q){var R=Q.data.dialog;if(R.fire('ok',{hide:true}).hide!==false)R.hide();}},P,true);};N.type='button';N.override=function(O){return e.extend(function(P){return N(P,O);},{type:'button'},true);};return N;})(),cancelButton:(function(){var N=function(O,P){P=P||{};return e.extend({id:'cancel',type:'button',label:O.lang.common.cancel,'class':'cke_dialog_ui_button_cancel',onClick:function(Q){var R=Q.data.dialog;if(R.fire('cancel',{hide:true}).hide!==false)R.hide();}},P,true);};N.type='button';N.override=function(O){return e.extend(function(P){return N(P,O);},{type:'button'},true);};return N;})(),addUIElement:function(N,O){this._.uiElementBuilders[N]=O;}});a.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};a.event.implementOn(a.dia
log);a.event.implementOn(a.dialog.prototype,true);var q={resizable:3,minWidth:600,minHeight:400,buttons:[a.dialog.okButton,a.dialog.cancelButton]};b.mac&&q.buttons.reverse();var r=function(N,O,P){for(var Q=0,R;R=N[Q];Q++){if(R.id==O)return R;if(P&&R[P]){var S=r(R[P],O,P);if(S)return S;}}return null;},s=function(N,O,P,Q,R){if(P){for(var S=0,T;T=N[S];S++){if(T.id==P){N.splice(S,0,O);return O;}if(Q&&T[Q]){var U=s(T[Q],O,P,Q,true);if(U)return U;}}if(R)return null;}N.push(O);return O;},t=function(N,O,P){for(var Q=0,R;R=N[Q];Q++){if(R.id==O)return N.splice(Q,1);if(P&&R[P]){var S=t(R[P],O,P);if(S)return S;}}return null;},u=function(N,O){this.dialog=N;var P=O.contents;for(var Q=0,R;R=P[Q];Q++)P[Q]=R&&new v(N,R);e.extend(this,O);};u.prototype={getContents:function(N){return r(this.contents,N);},getButton:function(N){return r(this.buttons,N);},addContents:function(N,O){return s(this.contents,N,O);},addButton:function(N,O){return s(this.buttons,N,O);},removeContents:function(N){t(this.
contents,N);},removeButton:function(N){t(this.buttons,N);}};function v(N,O){this._={dialog:N};e.extend(this,O);};v.prototype={get:function(N){return r(this.elements,N,'children');},add:function(N,O){return s(this.elements,N,O,'children');},remove:function(N){t(this.elements,N,'children');}};function w(N){var O=null,P=null,Q=N.getElement().getFirst(),R=N.getParentEditor(),S=R.config.dialog_magnetDistance,T=R.skin.margins||[0,0,0,0];if(typeof S=='undefined')S=20;function U(W){var X=N.getSize(),Y=a.document.getWindow().getViewPaneSize(),Z=W.data.$.screenX,aa=W.data.$.screenY,ab=Z-O.x,ac=aa-O.y,ad,ae;
-O={x:Z,y:aa};P.x+=ab;P.y+=ac;if(P.x+T[3]<S)ad=-T[3];else if(P.x-T[1]>Y.width-X.width-S)ad=Y.width-X.width+T[1];else ad=P.x;if(P.y+T[0]<S)ae=-T[0];else if(P.y-T[2]>Y.height-X.height-S)ae=Y.height-X.height+T[2];else ae=P.y;N.move(ad,ae);W.data.preventDefault();};function V(W){a.document.removeListener('mousemove',U);a.document.removeListener('mouseup',V);if(b.ie6Compat){var X=A.getChild(0).getFrameDocument();X.removeListener('mousemove',U);X.removeListener('mouseup',V);}};N.parts.title.on('mousedown',function(W){N._.updateSize=true;O={x:W.data.$.screenX,y:W.data.$.screenY};a.document.on('mousemove',U);a.document.on('mouseup',V);P=N.getPosition();if(b.ie6Compat){var X=A.getChild(0).getFrameDocument();X.on('mousemove',U);X.on('mouseup',V);}W.data.preventDefault();},N);};function x(N){var O=N.definition,P=O.minWidth||0,Q=O.minHeight||0,R=O.resizable,S=N.getParentEditor().skin.margins||[0,0,0,0];function T(ae,af){ae.y+=af;};function U(ae,af){ae.x2+=af;};function V(ae,af){ae.y2+=af
;};function W(ae,af){ae.x+=af;};var X=null,Y=null,Z=N._.editor.config.magnetDistance,aa=['tl','t','tr','l','r','bl','b','br'];function ab(ae){var af=ae.listenerData.part,ag=N.getSize();Y=N.getPosition();e.extend(Y,{x2:Y.x+ag.width,y2:Y.y+ag.height});X={x:ae.data.$.screenX,y:ae.data.$.screenY};a.document.on('mousemove',ac,N,{part:af});a.document.on('mouseup',ad,N,{part:af});if(b.ie6Compat){var ah=A.getChild(0).getFrameDocument();ah.on('mousemove',ac,N,{part:af});ah.on('mouseup',ad,N,{part:af});}ae.data.preventDefault();};function ac(ae){var af=ae.data.$.screenX,ag=ae.data.$.screenY,ah=af-X.x,ai=ag-X.y,aj=a.document.getWindow().getViewPaneSize(),ak=ae.listenerData.part;if(ak.search('t')!=-1)T(Y,ai);if(ak.search('l')!=-1)W(Y,ah);if(ak.search('b')!=-1)V(Y,ai);if(ak.search('r')!=-1)U(Y,ah);X={x:af,y:ag};var al,am,an,ao;if(Y.x+S[3]<Z)al=-S[3];else if(ak.search('l')!=-1&&Y.x2-Y.x<P+Z)al=Y.x2-P;else al=Y.x;if(Y.y+S[0]<Z)am=-S[0];else if(ak.search('t')!=-1&&Y.y2-Y.y<Q+Z)am=Y.y2-Q;els
e am=Y.y;if(Y.x2-S[1]>aj.width-Z)an=aj.width+S[1];else if(ak.search('r')!=-1&&Y.x2-Y.x<P+Z)an=Y.x+P;else an=Y.x2;if(Y.y2-S[2]>aj.height-Z)ao=aj.height+S[2];else if(ak.search('b')!=-1&&Y.y2-Y.y<Q+Z)ao=Y.y+Q;else ao=Y.y2;N.move(al,am);N.resize(an-al,ao-am);ae.data.preventDefault();};function ad(ae){a.document.removeListener('mouseup',ad);a.document.removeListener('mousemove',ac);if(b.ie6Compat){var af=A.getChild(0).getFrameDocument();af.removeListener('mouseup',ad);af.removeListener('mousemove',ac);}};};var y,z={},A;function B(N){var O=a.document.getWindow(),P=N.config.dialog_backgroundCoverColor||'white',Q=N.config.dialog_backgroundCoverOpacity,R=N.config.baseFloatZIndex,S=e.genKey(P,Q,R),T=z[S];
-if(!T){var U=['<div style="position: ',b.ie6Compat?'absolute':'fixed','; z-index: ',R,'; top: 0px; left: 0px; ',!b.ie6Compat?'background-color: '+P:'','" class="cke_dialog_background_cover">'];if(b.ie6Compat){var V=b.isCustomDomain(),W="<html><body style=\\'background-color:"+P+";\\'></body></html>";U.push('<iframe hidefocus="true" frameborder="0" id="cke_dialog_background_iframe" src="javascript:');U.push('void((function(){document.open();'+(V?"document.domain='"+document.domain+"';":'')+"document.write( '"+W+"' );"+'document.close();'+'})())');U.push('" style="position:absolute;left:0;top:0;width:100%;height: 100%;progid:DXImageTransform.Microsoft.Alpha(opacity=0)"></iframe>');}U.push('</div>');T=h.createFromHtml(U.join(''));T.setOpacity(Q!=undefined?Q:0.5);T.appendTo(a.document.getBody());z[S]=T;}else T.show();A=T;var X=function(){var aa=O.getViewPaneSize();T.setStyles({width:aa.width+'px',height:aa.height+'px'});},Y=function(){var aa=O.getScrollPosition(),ab=a.dialog._.c
urrentTop;T.setStyles({left:aa.x+'px',top:aa.y+'px'});do{var ac=ab.getPosition();ab.move(ac.x,ac.y);}while(ab=ab._.parentDialog)};y=X;O.on('resize',X);X();if(b.ie6Compat){var Z=function(){Y();arguments.callee.prevScrollHandler.apply(this,arguments);};O.$.setTimeout(function(){Z.prevScrollHandler=window.onscroll||(function(){});window.onscroll=Z;},0);Y();}};function C(){if(!A)return;var N=a.document.getWindow();A.hide();N.removeListener('resize',y);if(b.ie6Compat)N.$.setTimeout(function(){var O=window.onscroll&&window.onscroll.prevScrollHandler;window.onscroll=O||null;},0);y=null;};function D(){for(var N in z)z[N].remove();z={};};var E={},F=function(N){var O=N.data.$.ctrlKey||N.data.$.metaKey,P=N.data.$.altKey,Q=N.data.$.shiftKey,R=String.fromCharCode(N.data.$.keyCode),S=E[(O?'CTRL+':'')+(P?'ALT+':'')+(Q?'SHIFT+':'')+R];if(!S||!S.length)return;S=S[S.length-1];S.keydown&&S.keydown.call(S.uiElement,S.dialog,S.key);N.data.preventDefault();},G=function(N){var O=N.data.$.ctrlKey||
N.data.$.metaKey,P=N.data.$.altKey,Q=N.data.$.shiftKey,R=String.fromCharCode(N.data.$.keyCode),S=E[(O?'CTRL+':'')+(P?'ALT+':'')+(Q?'SHIFT+':'')+R];if(!S||!S.length)return;S=S[S.length-1];if(S.keyup){S.keyup.call(S.uiElement,S.dialog,S.key);N.data.preventDefault();}},H=function(N,O,P,Q,R){var S=E[P]||(E[P]=[]);S.push({uiElement:N,dialog:O,key:P,keyup:R||N.accessKeyUp,keydown:Q||N.accessKeyDown});},I=function(N){for(var O in E){var P=E[O];for(var Q=P.length-1;Q>=0;Q--){if(P[Q].dialog==N||P[Q].uiElement==N)P.splice(Q,1);
-}if(P.length===0)delete E[O];}},J=function(N,O){if(N._.accessKeyMap[O])N.selectPage(N._.accessKeyMap[O]);},K=function(N,O){},L={27:1,13:1},M=function(N){if(N.data.getKeystroke() in L)N.data.stopPropagation();};(function(){k.dialog={uiElement:function(N,O,P,Q,R,S,T){if(arguments.length<4)return;var U=(Q.call?Q(O):Q)||'div',V=['<',U,' '],W=(R&&R.call?R(O):R)||{},X=(S&&S.call?S(O):S)||{},Y=(T&&T.call?T.call(this,N,O):T)||'',Z=this.domId=X.id||e.getNextId()+'_uiElement',aa=this.id=O.id,ab;X.id=Z;var ac={};if(O.type)ac['cke_dialog_ui_'+O.type]=1;if(O.className)ac[O.className]=1;var ad=X['class']&&X['class'].split?X['class'].split(' '):[];for(ab=0;ab<ad.length;ab++){if(ad[ab])ac[ad[ab]]=1;}var ae=[];for(ab in ac)ae.push(ab);X['class']=ae.join(' ');if(O.title)X.title=O.title;var af=(O.style||'').split(';');for(ab in W)af.push(ab+':'+W[ab]);if(O.hidden)af.push('display:none');for(ab=af.length-1;ab>=0;ab--){if(af[ab]==='')af.splice(ab,1);}if(af.length>0)X.style=(X.style?X.style+'; ':
'')+af.join('; ');for(ab in X)V.push(ab+'="'+e.htmlEncode(X[ab])+'" ');V.push('>',Y,'</',U,'>');P.push(V.join(''));(this._||(this._={})).dialog=N;if(typeof O.isChanged=='boolean')this.isChanged=function(){return O.isChanged;};if(typeof O.isChanged=='function')this.isChanged=O.isChanged;a.event.implementOn(this);this.registerEvents(O);if(this.accessKeyUp&&this.accessKeyDown&&O.accessKey)H(this,N,'CTRL+'+O.accessKey);var ag=this;N.on('load',function(){if(ag.getInputElement())ag.getInputElement().on('focus',function(){N._.tabBarMode=false;N._.hasFocus=true;ag.fire('focus');},ag);});if(this.keyboardFocusable){this.tabIndex=O.tabIndex||0;this.focusIndex=N._.focusList.push(this)-1;this.on('focus',function(){N._.currentFocusIndex=ag.focusIndex;});}e.extend(this,O);},hbox:function(N,O,P,Q,R){if(arguments.length<4)return;this._||(this._={});var S=this._.children=O,T=R&&R.widths||null,U=R&&R.height||null,V={},W,X=function(){var Z=['<tbody><tr class="cke_dialog_ui_hbox">'];for(W=0;W<P.
length;W++){var aa='cke_dialog_ui_hbox_child',ab=[];if(W===0)aa='cke_dialog_ui_hbox_first';if(W==P.length-1)aa='cke_dialog_ui_hbox_last';Z.push('<td class="',aa,'" role="presentation" ');if(T){if(T[W])ab.push('width:'+e.cssLength(T[W]));}else ab.push('width:'+Math.floor(100/P.length)+'%');if(U)ab.push('height:'+e.cssLength(U));if(R&&R.padding!=undefined)ab.push('padding:'+e.cssLength(R.padding));if(ab.length>0)Z.push('style="'+ab.join('; ')+'" ');Z.push('>',P[W],'</td>');}Z.push('</tr></tbody>');return Z.join('');},Y={role:'presentation'};
-R&&R.align&&(Y.align=R.align);k.dialog.uiElement.call(this,N,R||{type:'hbox'},Q,'table',V,Y,X);},vbox:function(N,O,P,Q,R){if(arguments.length<3)return;this._||(this._={});var S=this._.children=O,T=R&&R.width||null,U=R&&R.heights||null,V=function(){var W=['<table role="presentation" cellspacing="0" border="0" '];W.push('style="');if(R&&R.expand)W.push('height:100%;');W.push('width:'+e.cssLength(T||'100%'),';');W.push('"');W.push('align="',e.htmlEncode(R&&R.align||(N.getParentEditor().lang.dir=='ltr'?'left':'right')),'" ');W.push('><tbody>');for(var X=0;X<P.length;X++){var Y=[];W.push('<tr><td role="presentation" ');if(T)Y.push('width:'+e.cssLength(T||'100%'));if(U)Y.push('height:'+e.cssLength(U[X]));else if(R&&R.expand)Y.push('height:'+Math.floor(100/P.length)+'%');if(R&&R.padding!=undefined)Y.push('padding:'+e.cssLength(R.padding));if(Y.length>0)W.push('style="',Y.join('; '),'" ');W.push(' class="cke_dialog_ui_vbox_child">',P[X],'</td></tr>');}W.push('</tbody></table>');retu
rn W.join('');};k.dialog.uiElement.call(this,N,R||{type:'vbox'},Q,'div',null,{role:'presentation'},V);}};})();k.dialog.uiElement.prototype={getElement:function(){return a.document.getById(this.domId);},getInputElement:function(){return this.getElement();},getDialog:function(){return this._.dialog;},setValue:function(N,O){this.getInputElement().setValue(N);!O&&this.fire('change',{value:N});return this;},getValue:function(){return this.getInputElement().getValue();},isChanged:function(){return false;},selectParentTab:function(){var Q=this;var N=Q.getInputElement(),O=N,P;while((O=O.getParent())&&O.$.className.search('cke_dialog_page_contents')==-1){}if(!O)return Q;P=O.getAttribute('name');if(Q._.dialog._.currentTabId!=P)Q._.dialog.selectPage(P);return Q;},focus:function(){this.selectParentTab().getInputElement().focus();return this;},registerEvents:function(N){var O=/^on([A-Z]\w+)/,P,Q=function(S,T,U,V){T.on('load',function(){S.getInputElement().on(U,V,S);});};for(var R in N){i
f(!(P=R.match(O)))continue;if(this.eventProcessors[R])this.eventProcessors[R].call(this,this._.dialog,N[R]);else Q(this,this._.dialog,P[1].toLowerCase(),N[R]);}return this;},eventProcessors:{onLoad:function(N,O){N.on('load',O,this);},onShow:function(N,O){N.on('show',O,this);},onHide:function(N,O){N.on('hide',O,this);}},accessKeyDown:function(N,O){this.focus();},accessKeyUp:function(N,O){},disable:function(){var N=this.getInputElement();N.setAttribute('disabled','true');N.addClass('cke_disabled');},enable:function(){var N=this.getInputElement();
-N.removeAttribute('disabled');N.removeClass('cke_disabled');},isEnabled:function(){return!this.getInputElement().getAttribute('disabled');},isVisible:function(){return this.getInputElement().isVisible();},isFocusable:function(){if(!this.isEnabled()||!this.isVisible())return false;return true;}};k.dialog.hbox.prototype=e.extend(new k.dialog.uiElement(),{getChild:function(N){var O=this;if(arguments.length<1)return O._.children.concat();if(!N.splice)N=[N];if(N.length<2)return O._.children[N[0]];else return O._.children[N[0]]&&O._.children[N[0]].getChild?O._.children[N[0]].getChild(N.slice(1,N.length)):null;}},true);k.dialog.vbox.prototype=new k.dialog.hbox();(function(){var N={build:function(O,P,Q){var R=P.children,S,T=[],U=[];for(var V=0;V<R.length&&(S=R[V]);V++){var W=[];T.push(W);U.push(a.dialog._.uiElementBuilders[S.type].build(O,S,W));}return new k.dialog[P.type](O,U,T,Q,P);}};a.dialog.addUIElement('hbox',N);a.dialog.addUIElement('vbox',N);})();a.dialogCommand=function(N){
this.dialogName=N;};a.dialogCommand.prototype={exec:function(N){N.openDialog(this.dialogName);},canUndo:false,editorFocus:c||b.webkit};(function(){var N=/^([a]|[^a])+$/,O=/^\d*$/,P=/^\d*(?:\.\d+)?$/;a.VALIDATE_OR=1;a.VALIDATE_AND=2;a.dialog.validate={functions:function(){return function(){var W=this;var Q=W&&W.getValue?W.getValue():arguments[0],R=undefined,S=2,T=[],U;for(U=0;U<arguments.length;U++){if(typeof arguments[U]=='function')T.push(arguments[U]);else break;}if(U<arguments.length&&typeof arguments[U]=='string'){R=arguments[U];U++;}if(U<arguments.length&&typeof arguments[U]=='number')S=arguments[U];var V=S==2?true:false;for(U=0;U<T.length;U++){if(S==2)V=V&&T[U](Q);else V=V||T[U](Q);}if(!V){if(R!==undefined)alert(R);if(W&&(W.select||W.focus))W.select||W.focus();return false;}return true;};},regex:function(Q,R){return function(){var T=this;var S=T&&T.getValue?T.getValue():arguments[0];if(!Q.test(S)){if(R!==undefined)alert(R);if(T&&(T.select||T.focus))if(T.select)T.select
();else T.focus();return false;}return true;};},notEmpty:function(Q){return this.regex(N,Q);},integer:function(Q){return this.regex(O,Q);},number:function(Q){return this.regex(P,Q);},equals:function(Q,R){return this.functions(function(S){return S==Q;},R);},notEqual:function(Q,R){return this.functions(function(S){return S!=Q;},R);}};a.on('instanceDestroyed',function(Q){if(e.isEmpty(a.instances)){var R;while(R=a.dialog._.currentTop)R.hide();D();}var S=Q.editor._.storedDialogs;for(var T in S)S[T].destroy();});})();})();e.extend(a.editor.prototype,{openDialog:function(l,m){var n=a.dialog._.dialogDefinitions[l],o=this.skin.dialog;
-if(typeof n=='function'&&o._isLoaded){var p=this._.storedDialogs||(this._.storedDialogs={}),q=p[l]||(p[l]=new a.dialog(this,l));m&&m.call(q,q);q.show();return q;}else if(n=='failed')throw new Error('[CKEDITOR.dialog.openDialog] Dialog "'+l+'" failed when loading definition.');var r=a.document.getBody(),s=r.$.style.cursor,t=this;r.setStyle('cursor','wait');function u(w){var x=a.dialog._.dialogDefinitions[l],y=t.skin.dialog;if(!y._isLoaded||v&&typeof w=='undefined')return;if(typeof x!='function')a.dialog._.dialogDefinitions[l]='failed';t.openDialog(l,m);r.setStyle('cursor',s);};if(typeof n=='string'){var v=1;a.scriptLoader.load(a.getUrl(n),u);}a.skins.load(this,'dialog',u);return null;}});j.add('dialog',{requires:['dialogui']});j.add('styles',{requires:['selection']});a.editor.prototype.attachStyleStateChange=function(l,m){var n=this._.styleStateChangeCallbacks;if(!n){n=this._.styleStateChangeCallbacks=[];this.on('selectionChange',function(o){for(var p=0;p<n.length;p++){var q=
n[p],r=q.style.checkActive(o.data.path)?1:2;if(q.state!==r){q.fn.call(this,r);q.state=r;}}});}n.push({style:l,fn:m});};a.STYLE_BLOCK=1;a.STYLE_INLINE=2;a.STYLE_OBJECT=3;(function(){var l={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1},m={a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1},n=/\s*(?:;\s*|$)/;a.style=function(P,Q){if(Q){P=e.clone(P);H(P.attributes,Q);H(P.styles,Q);}var R=this.element=(P.element||'*').toLowerCase();this.type=R=='#'||l[R]?1:m[R]?3:2;this._={definition:P};};a.style.prototype={apply:function(P){O.call(this,P,false);},remove:function(P){O.call(this,P,true);},applyToRange:function(P){var Q=this;return(Q.applyToRange=Q.type==2?o:Q.type==1?s:Q.type==3?q:null).call(Q,P);},removeFromRange:function(P){var Q=this;return(Q.removeFromRange=Q.type==2?p:Q.type==3?r:null).call(Q,P);},applyToObject:function(P){F(P,this);},checkActive:function(P){var T=this;switch(T.type){case 1:return T.checkElementRemovable(P.b
lock||P.blockLimit,true);case 3:case 2:var Q=P.elements;for(var R=0,S;R<Q.length;R++){S=Q[R];if(T.type==2&&(S==P.block||S==P.blockLimit))continue;if(T.type==3&&!(S.getName() in m))continue;if(T.checkElementRemovable(S,true))return true;}}return false;},checkApplicable:function(P){switch(this.type){case 2:case 1:break;case 3:return P.lastElement.getAscendant(this.element,true);}return true;},checkElementRemovable:function(P,Q){if(!P)return false;var R=this._.definition,S;if(P.getName()==this.element){if(!Q&&!P.hasAttributes())return true;
-S=I(R);if(S._length){for(var T in S){if(T=='_length')continue;var U=P.getAttribute(T)||'';if(T=='style'?N(S[T],L(U,false)):S[T]==U){if(!Q)return true;}else if(Q)return false;}if(Q)return true;}else return true;}var V=J(this)[P.getName()];if(V){if(!(S=V.attributes))return true;for(var W=0;W<S.length;W++){T=S[W][0];var X=P.getAttribute(T);if(X){var Y=S[W][1];if(Y===null||typeof Y=='string'&&X==Y||Y.test(X))return true;}}}return false;},buildPreview:function(){var P=this._.definition,Q=[],R=P.element;if(R=='bdo')R='span';Q=['<',R];var S=P.attributes;if(S)for(var T in S)Q.push(' ',T,'="',S[T],'"');var U=a.style.getStyleText(P);if(U)Q.push(' style="',U,'"');Q.push('>',P.name,'</',R,'>');return Q.join('');}};a.style.getStyleText=function(P){var Q=P._ST;if(Q)return Q;Q=P.styles;var R=P.attributes&&P.attributes.style||'',S='';if(R.length)R=R.replace(n,';');for(var T in Q){var U=Q[T],V=(T+':'+U).replace(n,';');if(U=='inherit')S+=V;else R+=V;}if(R.length)R=L(R);R+=S;return P._ST=R;};f
unction o(P){var al=this;var Q=P.document;if(P.collapsed){var R=E(al,Q);P.insertNode(R);P.moveToPosition(R,2);return;}var S=al.element,T=al._.definition,U,V=f[S]||(U=true,f.span);P.enlarge(1);P.trim();var W=P.createBookmark(),X=W.startNode,Y=W.endNode,Z=X,aa;while(Z){var ab=false;if(Z.equals(Y)){Z=null;ab=true;}else{var ac=Z.type,ad=ac==1?Z.getName():null;if(ad&&Z.getAttribute('_cke_bookmark')){Z=Z.getNextSourceNode(true);continue;}if(!ad||V[ad]&&(Z.getPosition(Y)|4|0|8)==4+0+8&&(!T.childRule||T.childRule(Z))){var ae=Z.getParent();if(ae&&((ae.getDtd()||f.span)[S]||U)&&(!T.parentRule||T.parentRule(ae))){if(!aa&&(!ad||!f.$removeEmpty[ad]||(Z.getPosition(Y)|4|0|8)==4+0+8)){aa=new d.range(Q);aa.setStartBefore(Z);}if(ac==3||ac==1&&!Z.getChildCount()){var af=Z,ag;while(!af.$.nextSibling&&(ag=af.getParent(),V[ag.getName()])&&(ag.getPosition(X)|2|0|8)==2+0+8&&(!T.childRule||T.childRule(ag)))af=ag;aa.setEndAfter(af);if(!af.$.nextSibling)ab=true;}}else ab=true;}else ab=true;Z=Z.getNex
tSourceNode();}if(ab&&aa&&!aa.collapsed){var ah=E(al,Q),ai=aa.getCommonAncestor();while(ah&&ai){if(ai.getName()==S){for(var aj in T.attributes){if(ah.getAttribute(aj)==ai.getAttribute(aj))ah.removeAttribute(aj);}for(var ak in T.styles){if(ah.getStyle(ak)==ai.getStyle(ak))ah.removeStyle(ak);}if(!ah.hasAttributes()){ah=null;break;}}ai=ai.getParent();}if(ah){aa.extractContents().appendTo(ah);B(al,ah);aa.insertNode(ah);ah.mergeSiblings();if(!c)ah.$.normalize();}aa=null;}}P.moveToBookmark(W);P.shrink(2);};function p(P){P.enlarge(1);
-var Q=P.createBookmark(),R=Q.startNode;if(P.collapsed){var S=new d.elementPath(R.getParent()),T;for(var U=0,V;U<S.elements.length&&(V=S.elements[U]);U++){if(V==S.block||V==S.blockLimit)break;if(this.checkElementRemovable(V)){var W;if(P.collapsed&&(P.checkBoundaryOfElement(V,2)||(W=P.checkBoundaryOfElement(V,1)))){T=V;T.match=W?'start':'end';}else{V.mergeSiblings();A(this,V);}}}if(T){var X=R;for(U=0;true;U++){var Y=S.elements[U];if(Y.equals(T))break;else if(Y.match)continue;else Y=Y.clone();Y.append(X);X=Y;}X[T.match=='start'?'insertBefore':'insertAfter'](T);}}else{var Z=Q.endNode,aa=this;function ab(){var ae=new d.elementPath(R.getParent()),af=new d.elementPath(Z.getParent()),ag=null,ah=null;for(var ai=0;ai<ae.elements.length;ai++){var aj=ae.elements[ai];if(aj==ae.block||aj==ae.blockLimit)break;if(aa.checkElementRemovable(aj))ag=aj;}for(ai=0;ai<af.elements.length;ai++){aj=af.elements[ai];if(aj==af.block||aj==af.blockLimit)break;if(aa.checkElementRemovable(aj))ah=aj;}if(ah)Z.
breakParent(ah);if(ag)R.breakParent(ag);};ab();var ac=R.getNext();while(!ac.equals(Z)){var ad=ac.getNextSourceNode();if(ac.type==1&&this.checkElementRemovable(ac)){if(ac.getName()==this.element)A(this,ac);else C(ac,J(this)[ac.getName()]);if(ad.type==1&&ad.contains(R)){ab();ad=R.getNext();}}ac=ad;}}P.moveToBookmark(Q);};function q(P){var Q=P.getCommonAncestor(true,true),R=Q.getAscendant(this.element,true);R&&F(R,this);};function r(P){var Q=P.getCommonAncestor(true,true),R=Q.getAscendant(this.element,true);if(!R)return;var S=this,T=S._.definition,U=T.attributes,V=a.style.getStyleText(T);if(U)for(var W in U)R.removeAttribute(W,U[W]);if(T.styles)for(var X in T.styles){if(!T.styles.hasOwnProperty(X))continue;R.removeStyle(X);}};function s(P){var Q=P.createBookmark(true),R=P.createIterator();R.enforceRealBlocks=true;if(this._.enterMode)R.enlargeBr=this._.enterMode!=2;var S,T=P.document,U;while(S=R.getNextParagraph()){var V=E(this,T);t(S,V);}P.moveToBookmark(Q);};function t(P,Q){va
r R=Q.is('pre'),S=P.is('pre'),T=R&&!S,U=!R&&S;if(T)Q=z(P,Q);else if(U)Q=y(w(P),Q);else P.moveChildren(Q);Q.replace(P);if(R)v(Q);};var u=d.walker.whitespaces(true);function v(P){var Q;if(!((Q=P.getPrevious(u))&&Q.is&&Q.is('pre')))return;var R=x(Q.getHtml(),/\n$/,'')+'\n\n'+x(P.getHtml(),/^\n/,'');if(c)P.$.outerHTML='<pre>'+R+'</pre>';else P.setHtml(R);Q.remove();};function w(P){var Q=/(\S\s*)\n(?:\s|(<span[^>]+_cke_bookmark.*?\/span>))*\n(?!$)/gi,R=P.getName(),S=x(P.getOuterHtml(),Q,function(U,V,W){return V+'</pre>'+W+'<pre>';
-}),T=[];S.replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(U,V){T.push(V);});return T;};function x(P,Q,R){var S='',T='';P=P.replace(/(^<span[^>]+_cke_bookmark.*?\/span>)|(<span[^>]+_cke_bookmark.*?\/span>$)/gi,function(U,V,W){V&&(S=V);W&&(T=W);return '';});return S+P.replace(Q,R)+T;};function y(P,Q){var R=new d.documentFragment(Q.getDocument());for(var S=0;S<P.length;S++){var T=P[S];T=T.replace(/(\r\n|\r)/g,'\n');T=x(T,/^[ \t]*\n/,'');T=x(T,/\n$/,'');T=x(T,/^[ \t]+|[ \t]+$/g,function(V,W,X){if(V.length==1)return ' ';else if(!W)return e.repeat(' ',V.length-1)+' ';else return ' '+e.repeat(' ',V.length-1);});T=T.replace(/\n/g,'<br>');T=T.replace(/[ \t]{2,}/g,function(V){return e.repeat(' ',V.length-1)+' ';});var U=Q.clone();U.setHtml(T);R.append(U);}return R;};function z(P,Q){var R=P.getHtml();R=x(R,/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,'');R=R.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,'$1');R=R.replace(/([ \t\n\r]+| )/g,' ');R=R.replace(/<br\b[^>]*>/gi,
'\n');if(c){var S=P.getDocument().createElement('div');S.append(Q);Q.$.outerHTML='<pre>'+R+'</pre>';Q=S.getFirst().remove();}else Q.setHtml(R);return Q;};function A(P,Q){var R=P._.definition,S=e.extend({},R.attributes,J(P)[Q.getName()]),T=R.styles,U=e.isEmpty(S)&&e.isEmpty(T);for(var V in S){if((V=='class'||P._.definition.fullMatch)&&Q.getAttribute(V)!=K(V,S[V]))continue;U=Q.hasAttribute(V);Q.removeAttribute(V);}for(var W in T){if(P._.definition.fullMatch&&Q.getStyle(W)!=K(W,T[W],true))continue;U=U||!!Q.getStyle(W);Q.removeStyle(W);}U&&D(Q);};function B(P,Q){var R=P._.definition,S=R.attributes,T=R.styles,U=J(P),V=Q.getElementsByTag(P.element);for(var W=V.count();--W>=0;)A(P,V.getItem(W));for(var X in U){if(X!=P.element){V=Q.getElementsByTag(X);for(W=V.count()-1;W>=0;W--){var Y=V.getItem(W);C(Y,U[X]);}}}};function C(P,Q){var R=Q&&Q.attributes;if(R)for(var S=0;S<R.length;S++){var T=R[S][0],U;if(U=P.getAttribute(T)){var V=R[S][1];if(V===null||V.test&&V.test(U)||typeof V=='strin
g'&&U==V)P.removeAttribute(T);}}D(P);};function D(P){if(!P.hasAttributes()){var Q=P.getFirst(),R=P.getLast();P.remove(true);if(Q){Q.type==1&&Q.mergeSiblings();if(R&&!Q.equals(R)&&R.type==1)R.mergeSiblings();}}};function E(P,Q){var R,S=P._.definition,T=P.element;if(T=='*')T='span';R=new h(T,Q);return F(R,P);};function F(P,Q){var R=Q._.definition,S=R.attributes,T=a.style.getStyleText(R);if(S)for(var U in S)P.setAttribute(U,S[U]);if(R.styles)for(var V in R.styles){if(!R.styles.hasOwnProperty(V))continue;P.setStyle(V,R.styles[V]);
-}return P;};var G=/#\((.+?)\)/g;function H(P,Q){for(var R in P)P[R]=P[R].replace(G,function(S,T){return Q[T];});};function I(P){var Q=P._AC;if(Q)return Q;Q={};var R=0,S=P.attributes;if(S)for(var T in S){R++;Q[T]=S[T];}var U=a.style.getStyleText(P);if(U){if(!Q.style)R++;Q.style=U;}Q._length=R;return P._AC=Q;};function J(P){if(P._.overrides)return P._.overrides;var Q=P._.overrides={},R=P._.definition.overrides;if(R){if(!e.isArray(R))R=[R];for(var S=0;S<R.length;S++){var T=R[S],U,V,W;if(typeof T=='string')U=T.toLowerCase();else{U=T.element?T.element.toLowerCase():P.element;W=T.attributes;}V=Q[U]||(Q[U]={});if(W){var X=V.attributes=V.attributes||[];for(var Y in W)X.push([Y.toLowerCase(),W[Y]]);}}}return Q;};function K(P,Q,R){var S=new h('span');S[R?'setStyle':'setAttribute'](P,Q);return S[R?'getStyle':'getAttribute'](P);};function L(P,Q){var R;if(Q!==false){var S=new h('span');S.setAttribute('style',P);R=S.getAttribute('style')||'';}else R=P;return R.replace(/\s*([;:])\s*/,'$1')
.replace(/([^\s;])$/,'$1;').replace(/,\s+/g,',').toLowerCase();};function M(P){var Q={};P.replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(R,S,T){Q[S]=T;});return Q;};function N(P,Q){typeof P=='string'&&(P=M(P));typeof Q=='string'&&(Q=M(Q));for(var R in P){if(!(R in Q&&(Q[R]==P[R]||P[R]=='inherit'||Q[R]=='inherit')))return false;}return true;};function O(P,Q){var R=P.getSelection(),S=R.createBookmarks(),T=R.getRanges(true),U=Q?this.removeFromRange:this.applyToRange,V,W=T.createIterator();while(V=W.getNextRange())U.call(this,V);if(S.length==1&&S[0].collapsed){R.selectRanges(T);S[0].startNode.remove();}else R.selectBookmarks(S);};})();a.styleCommand=function(l){this.style=l;};a.styleCommand.prototype.exec=function(l){var n=this;l.focus();var m=l.document;if(m)if(n.state==2)n.style.apply(m);else if(n.state==1)n.style.remove(m);return!!m;};a.stylesSet=new a.resourceManager('','stylesSet');a.addStylesSet=e.bind(a.stylesSet.add,a.stylesSet);a.loadSty
lesSet=function(l,m,n){a.stylesSet.addExternal(l,m,'');a.stylesSet.load(l,n);};a.editor.prototype.getStylesSet=function(l){if(!this._.stylesDefinitions){var m=this,n=m.config.stylesCombo_stylesSet||m.config.stylesSet||'default';if(n instanceof Array){m._.stylesDefinitions=n;l(n);return;}var o=n.split(':'),p=o[0],q=o[1],r=j.registered.styles.path;a.stylesSet.addExternal(p,q?o.slice(1).join(':'):r+'styles/'+p+'.js','');a.stylesSet.load(p,function(s){m._.stylesDefinitions=s[p];l(m._.stylesDefinitions);});}else l(this._.stylesDefinitions);
-};j.add('domiterator');(function(){function l(o){var p=this;if(arguments.length<1)return;p.range=o;p.forceBrBreak=false;p.enlargeBr=true;p.enforceRealBlocks=false;p._||(p._={});};var m=/^[\r\n\t ]+$/,n=d.walker.bookmark();l.prototype={getNextParagraph:function(o){var P=this;var p,q,r,s,t,u;if(!P._.lastNode){q=P.range.clone();q.shrink(1,true);s=q.endContainer.hasAscendant('pre',true)||q.startContainer.hasAscendant('pre',true);q.enlarge(P.forceBrBreak&&!s||!P.enlargeBr?3:2);var v=new d.walker(q),w=d.walker.bookmark(true,true);v.evaluator=w;P._.nextNode=v.next();v=new d.walker(q);v.evaluator=w;var x=v.previous();P._.lastNode=x.getNextSourceNode(true);if(P._.lastNode&&P._.lastNode.type==3&&!e.trim(P._.lastNode.getText())&&P._.lastNode.getParent().isBlockBoundary()){var y=new d.range(q.document);y.moveToPosition(P._.lastNode,4);if(y.checkEndOfBlock()){var z=new d.elementPath(y.endContainer),A=z.block||z.blockLimit;P._.lastNode=A.getNextSourceNode(true);}}if(!P._.lastNode){P._.las
tNode=P._.docEndMarker=q.document.createText('');P._.lastNode.insertAfter(x);}q=null;}var B=P._.nextNode;x=P._.lastNode;P._.nextNode=null;while(B){var C=false,D=B.hasAscendant('pre'),E=B.type!=1,F=false;if(!E){var G=B.getName();if(B.isBlockBoundary(P.forceBrBreak&&!D&&{br:1})){if(G=='br')E=true;else if(!q&&!B.getChildCount()&&G!='hr'){p=B;r=B.equals(x);break;}if(q){q.setEndAt(B,3);if(G!='br')P._.nextNode=B;}C=true;}else{if(B.getFirst()){if(!q){q=new d.range(P.range.document);q.setStartAt(B,3);}B=B.getFirst();continue;}E=true;}}else if(B.type==3)if(m.test(B.getText()))E=false;if(E&&!q){q=new d.range(P.range.document);q.setStartAt(B,3);}r=(!C||E)&&B.equals(x);if(q&&!C)while(!B.getNext()&&!r){var H=B.getParent();if(H.isBlockBoundary(P.forceBrBreak&&!D&&{br:1})){C=true;r=r||H.equals(x);break;}B=H;E=true;r=B.equals(x);F=true;}if(E)q.setEndAt(B,4);B=B.getNextSourceNode(F,null,x);r=!B;if(r||C&&q)break;}if(!p){if(!q){P._.docEndMarker&&P._.docEndMarker.remove();P._.nextNode=null;retu
rn null;}var I=new d.elementPath(q.startContainer),J=I.blockLimit,K={div:1,th:1,td:1};p=I.block;if(!p&&!P.enforceRealBlocks&&K[J.getName()]&&q.checkStartOfBlock()&&q.checkEndOfBlock())p=J;else if(!p||P.enforceRealBlocks&&p.getName()=='li'){p=P.range.document.createElement(o||'p');q.extractContents().appendTo(p);p.trim();q.insertNode(p);t=u=true;}else if(p.getName()!='li'){if(!q.checkStartOfBlock()||!q.checkEndOfBlock()){p=p.clone(false);q.extractContents().appendTo(p);p.trim();var L=q.splitBlock();t=!L.wasStartOfBlock;
-u=!L.wasEndOfBlock;q.insertNode(p);}}else if(!r)P._.nextNode=p.equals(x)?null:q.getBoundaryNodes().endNode.getNextSourceNode(true,null,x);}if(t){var M=p.getPrevious();if(M&&M.type==1)if(M.getName()=='br')M.remove();else if(M.getLast()&&M.getLast().$.nodeName.toLowerCase()=='br')M.getLast().remove();}if(u){var N=d.walker.bookmark(false,true),O=p.getLast();if(O&&O.type==1&&O.getName()=='br')if(c||O.getPrevious(N)||O.getNext(N))O.remove();}if(!P._.nextNode)P._.nextNode=r||p.equals(x)?null:p.getNextSourceNode(true,null,x);return p;}};d.range.prototype.createIterator=function(){return new l(this);};})();j.add('panelbutton',{requires:['button'],beforeInit:function(l){l.ui.addHandler(4,k.panelButton.handler);}});a.UI_PANELBUTTON=4;(function(){var l=function(m){var o=this;var n=o._;if(n.state==0)return;o.createPanel(m);if(n.on){n.panel.hide();return;}n.panel.showBlock(o._.id,o.document.getById(o._.id),4);};k.panelButton=e.createClass({base:k.button,$:function(m){var o=this;var n=m.p
anel;delete m.panel;o.base(m);o.document=n&&n.parent&&n.parent.getDocument()||a.document;n.block={attributes:n.attributes};o.hasArrow=true;o.click=l;o._={panelDefinition:n};},statics:{handler:{create:function(m){return new k.panelButton(m);}}},proto:{createPanel:function(m){var n=this._;if(n.panel)return;var o=this._.panelDefinition||{},p=this._.panelDefinition.block,q=o.parent||a.document.getBody(),r=this._.panel=new k.floatPanel(m,q,o),s=r.addBlock(n.id,p),t=this;r.onShow=function(){if(t.className)this.element.getFirst().addClass(t.className+'_panel');n.oldState=t._.state;t.setState(1);n.on=1;if(t.onOpen)t.onOpen();};r.onHide=function(){if(t.className)this.element.getFirst().removeClass(t.className+'_panel');t.setState(n.oldState);n.on=0;if(t.onClose)t.onClose();};r.onEscape=function(){r.hide();t.document.getById(n.id).focus();};if(this.onBlock)this.onBlock(r,s);s.onHide=function(){n.on=0;t.setState(2);};}}});})();j.add('floatpanel',{requires:['panel']});(function(){var l=
{},m=false;function n(o,p,q,r,s){var t=p.getUniqueId()+'-'+q.getUniqueId()+'-'+o.skinName+'-'+o.lang.dir+(o.uiColor&&'-'+o.uiColor||'')+(r.css&&'-'+r.css||'')+(s&&'-'+s||''),u=l[t];if(!u){u=l[t]=new k.panel(p,r);u.element=q.append(h.createFromHtml(u.renderHtml(o),p));u.element.setStyles({display:'none',position:'absolute'});}return u;};k.floatPanel=e.createClass({$:function(o,p,q,r){q.forceIFrame=true;var s=p.getDocument(),t=n(o,s,p,q,r||0),u=t.element,v=u.getFirst().getFirst();this.element=u;this._={panel:t,parentElement:p,definition:q,document:s,iframe:v,children:[],dir:o.lang.dir};
-},proto:{addBlock:function(o,p){return this._.panel.addBlock(o,p);},addListBlock:function(o,p){return this._.panel.addListBlock(o,p);},getBlock:function(o){return this._.panel.getBlock(o);},showBlock:function(o,p,q,r,s){var t=this._.panel,u=t.showBlock(o);this.allowBlur(false);m=true;var v=this.element,w=this._.iframe,x=this._.definition,y=p.getDocumentPosition(v.getDocument()),z=this._.dir=='rtl',A=y.x+(r||0),B=y.y+(s||0);if(z&&(q==1||q==4))A+=p.$.offsetWidth;else if(!z&&(q==2||q==3))A+=p.$.offsetWidth-1;if(q==3||q==4)B+=p.$.offsetHeight-1;this._.panel._.offsetParentId=p.getId();v.setStyles({top:'-30000px',display:''});v.setOpacity(0);v.getFirst().removeStyle('width');if(!this._.blurSet){var C=c?w:new d.window(w.$.contentWindow);a.event.useCapture=true;C.on('blur',function(D){var F=this;if(!F.allowBlur())return;var E;if(c&&!F.allowBlur()||(E=D.data.getTarget())&&E.getName&&E.getName()!='iframe')return;if(F.visible&&!F._.activeChild&&!m)F.hide();},this);C.on('focus',function
(){this._.focused=true;this.hideChild();this.allowBlur(true);},this);a.event.useCapture=false;this._.blurSet=1;}t.onEscape=e.bind(function(D){if(this.onEscape&&this.onEscape(D)===false)return false;},this);e.setTimeout(function(){if(z)A-=v.$.offsetWidth;var D=e.bind(function(){var E=v.getFirst();if(u.autoSize){var F=u.element.$;if(b.gecko||b.opera)F=F.parentNode;if(c)F=F.document.body;var G=F.scrollWidth;if(c&&b.quirks&&G>0)G+=(E.$.offsetWidth||0)-(E.$.clientWidth||0);G+=4;E.setStyle('width',G+'px');u.element.addClass('cke_frameLoaded');var H=u.element.$.scrollHeight;if(c&&b.quirks&&H>0)H+=(E.$.offsetHeight||0)-(E.$.clientHeight||0);E.setStyle('height',H+'px');t._.currentBlock.element.setStyle('display','none').removeStyle('display');}else E.removeStyle('height');var I=t.element,J=I.getWindow(),K=J.getScrollPosition(),L=J.getViewPaneSize(),M={height:I.$.offsetHeight,width:I.$.offsetWidth};if(z?A<0:A+M.width>L.width+K.x)A+=M.width*(z?1:-1);if(B+M.height>L.height+K.y)B-=M.heig
ht;if(c){var N=new h(v.$.offsetParent),O=N;if(O.getName()=='html')O=O.getDocument().getBody();if(O.getComputedStyle('direction')=='rtl')if(b.ie8Compat)A-=v.getDocument().getDocumentElement().$.scrollLeft*2;else A-=N.$.scrollWidth-N.$.clientWidth;}v.setStyles({top:B+'px',left:A+'px'});v.setOpacity(1);},this);t.isLoaded?D():t.onLoad=D;e.setTimeout(function(){w.$.contentWindow.focus();this.allowBlur(true);},0,this);},0,this);this.visible=1;if(this.onShow)this.onShow.call(this);m=false;},hide:function(){var o=this;if(o.visible&&(!o.onHide||o.onHide.call(o)!==true)){o.hideChild();
-o.element.setStyle('display','none');o.visible=0;}},allowBlur:function(o){var p=this._.panel;if(o!=undefined)p.allowBlur=o;return p.allowBlur;},showAsChild:function(o,p,q,r,s,t){if(this._.activeChild==o&&o._.panel._.offsetParentId==q.getId())return;this.hideChild();o.onHide=e.bind(function(){e.setTimeout(function(){if(!this._.focused)this.hide();},0,this);},this);this._.activeChild=o;this._.focused=false;o.showBlock(p,q,r,s,t);if(b.ie7Compat||b.ie8&&b.ie6Compat)setTimeout(function(){o.element.getChild(0).$.style.cssText+='';},100);},hideChild:function(){var o=this._.activeChild;if(o){delete o.onHide;delete this._.activeChild;o.hide();}}}});a.on('instanceDestroyed',function(){var o=e.isEmpty(a.instances);for(var p in l){var q=l[p];if(o)q.destroy();else q.element.hide();}o&&(l={});});})();j.add('menu',{beforeInit:function(l){var m=l.config.menu_groups.split(','),n=l._.menuGroups={},o=l._.menuItems={};for(var p=0;p<m.length;p++)n[m[p]]=p+1;l.addMenuGroup=function(q,r){n[q]=r||1
00;};l.addMenuItem=function(q,r){if(n[r.group])o[q]=new a.menuItem(this,q,r);};l.addMenuItems=function(q){for(var r in q)this.addMenuItem(r,q[r]);};l.getMenuItem=function(q){return o[q];};},requires:['floatpanel']});(function(){a.menu=e.createClass({$:function(m,n){var q=this;n=q._.definition=n||{};q.id='cke_'+e.getNextNumber();q.editor=m;q.items=[];q._.level=n.level||1;var o=e.extend({},n.panel,{css:m.skin.editor.css,level:q._.level-1,block:{}}),p=o.block.attributes=o.attributes||{};!p.role&&(p.role='menu');q._.panelDefinition=o;},_:{showSubMenu:function(m){var u=this;var n=u._.subMenu,o=u.items[m],p=o.getItems&&o.getItems();if(!p){u._.panel.hideChild();return;}var q=u._.panel.getBlock(u.id);q._.focusIndex=m;if(n)n.removeAll();else{n=u._.subMenu=new a.menu(u.editor,e.extend({},u._.definition,{level:u._.level+1},true));n.parent=u;n.onClick=e.bind(u.onClick,u);n.onEscape=u.onEscape;}for(var r in p){var s=u.editor.getMenuItem(r);if(s){s.state=p[r];n.add(s);}}var t=u._.panel.ge
tBlock(u.id).element.getDocument().getById(u.id+String(m));n.show(t,2);}},proto:{add:function(m){if(!m.order)m.order=this.items.length;this.items.push(m);},removeAll:function(){this.items=[];},show:function(m,n,o,p){var q=this.items,r=this.editor,s=this._.panel,t=this._.element;if(!s){s=this._.panel=new k.floatPanel(this.editor,a.document.getBody(),this._.panelDefinition,this._.level);s.onEscape=e.bind(function(E){if(this.onEscape&&this.onEscape(E)===false)return false;},this);s.onHide=e.bind(function(){this.onHide&&this.onHide();
-},this);var u=s.addBlock(this.id,this._.panelDefinition.block);u.autoSize=true;var v=u.keys;v[40]='next';v[9]='next';v[38]='prev';v[2000+9]='prev';v[32]='click';v[r.lang.dir=='rtl'?37:39]='click';t=this._.element=u.element;t.addClass(r.skinClass);var w=t.getDocument();w.getBody().setStyle('overflow','hidden');w.getElementsByTag('html').getItem(0).setStyle('overflow','hidden');this._.itemOverFn=e.addFunction(function(E){var F=this;clearTimeout(F._.showSubTimeout);F._.showSubTimeout=e.setTimeout(F._.showSubMenu,r.config.menu_subMenuDelay,F,[E]);},this);this._.itemOutFn=e.addFunction(function(E){clearTimeout(this._.showSubTimeout);},this);this._.itemClickFn=e.addFunction(function(E){var G=this;var F=G.items[E];if(F.state==0){G.hide();return;}if(F.getItems)G._.showSubMenu(E);else G.onClick&&G.onClick(F);},this);}l(q);var x=r.container.getChild(1),y=x.hasClass('cke_mixed_dir_content')?' cke_mixed_dir_content':'',z=['<div class="cke_menu'+y+'" role="presentation">'],A=q.length,B=A
&&q[0].group;for(var C=0;C<A;C++){var D=q[C];if(B!=D.group){z.push('<div class="cke_menuseparator" role="separator"></div>');B=D.group;}D.render(this,C,z);}z.push('</div>');t.setHtml(z.join(''));if(this.parent)this.parent._.panel.showAsChild(s,this.id,m,n,o,p);else s.showBlock(this.id,m,n,o,p);r.fire('menuShow',[s]);},hide:function(){this._.panel&&this._.panel.hide();}}});function l(m){m.sort(function(n,o){if(n.group<o.group)return-1;else if(n.group>o.group)return 1;return n.order<o.order?-1:n.order>o.order?1:0;});};})();a.menuItem=e.createClass({$:function(l,m,n){var o=this;e.extend(o,n,{order:0,className:'cke_button_'+m});o.group=l._.menuGroups[o.group];o.editor=l;o.name=m;},proto:{render:function(l,m,n){var u=this;var o=l.id+String(m),p=typeof u.state=='undefined'?2:u.state,q=' cke_'+(p==1?'on':p==0?'disabled':'off'),r=u.label;if(u.className)q+=' '+u.className;var s=u.getItems;n.push('<span class="cke_menuitem"><a id="',o,'" class="',q,'" href="javascript:void(\'',(u.labe
l||'').replace("'",''),'\')" title="',u.label,'" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem"'+(s?'aria-haspopup="true"':'')+(p==0?'aria-disabled="true"':'')+(p==1?'aria-pressed="true"':''));if(b.opera||b.gecko&&b.mac)n.push(' onkeypress="return false;"');if(b.gecko)n.push(' onblur="this.style.cssText = this.style.cssText;"');var t=(u.iconOffset||0)*-16;n.push(' onmouseover="CKEDITOR.tools.callFunction(',l._.itemOverFn,',',m,');" onmouseout="CKEDITOR.tools.callFunction(',l._.itemOutFn,',',m,');" onclick="CKEDITOR.tools.callFunction(',l._.itemClickFn,',',m,'); return false;"><span class="cke_icon_wrapper"><span class="cke_icon"'+(u.icon?' style="background-image:url('+a.getUrl(u.icon)+');background-position:0 '+t+'px;"':'')+'></span></span>'+'<span class="cke_label">');
-if(s)n.push('<span class="cke_menuarrow">','<span>&#',u.editor.lang.dir=='rtl'?'9668':'9658',';</span>','</span>');n.push(r,'</span></a></span>');}}});i.menu_subMenuDelay=400;i.menu_groups='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div';(function(){var l=function(n,o){return n._.modes&&n._.modes[o||n.mode];},m;j.add('editingblock',{init:function(n){if(!n.config.editingBlock)return;n.on('themeSpace',function(o){if(o.data.space=='contents')o.data.html+='<br>';});n.on('themeLoaded',function(){n.fireOnce('editingBlockReady');});n.on('uiReady',function(){n.setMode(n.config.startupMode);});n.on('afterSetData',function(){if(!m){function o(){m=true;l(n).loadData(n.getData());m=false;};if(n.mode)o();else n.on('mode',function(){o();n.removeListener('mode',arguments.callee);});}});n.on('beforeGetData',function(){if(!m&&n.mode){m=true;n.setData(l(n).getData());m=
false;}});n.on('getSnapshot',function(o){if(n.mode)o.data=l(n).getSnapshotData();});n.on('loadSnapshot',function(o){if(n.mode)l(n).loadSnapshotData(o.data);});n.on('mode',function(o){o.removeListener();b.webkit&&n.container.on('focus',function(){n.focus();});if(n.config.startupFocus)n.focus();setTimeout(function(){n.fireOnce('instanceReady');a.fire('instanceReady',null,n);},0);});}});a.editor.prototype.mode='';a.editor.prototype.addMode=function(n,o){o.name=n;(this._.modes||(this._.modes={}))[n]=o;};a.editor.prototype.setMode=function(n){var o,p=this.getThemeSpace('contents'),q=this.checkDirty();if(this.mode){if(n==this.mode)return;this.fire('beforeModeUnload');var r=l(this);o=r.getData();r.unload(p);this.mode='';}p.setHtml('');var s=l(this,n);if(!s)throw '[CKEDITOR.editor.setMode] Unknown mode "'+n+'".';if(!q)this.on('mode',function(){this.resetDirty();this.removeListener('mode',arguments.callee);});s.load(p,typeof o!='string'?this.getData():o);};a.editor.prototype.focus=fu
nction(){var n=l(this);if(n)n.focus();};})();i.startupMode='wysiwyg';i.startupFocus=false;i.editingBlock=true;(function(){function l(){var v=this;try{var s=v.getSelection();if(!s||!s.document.getWindow().$)return;var t=s.getStartElement(),u=new d.elementPath(t);if(!u.compare(v._.selectionPreviousPath)){v._.selectionPreviousPath=u;v.fire('selectionChange',{selection:s,path:u,element:t});}}catch(w){}};var m,n;function o(){n=true;if(m)return;p.call(this);m=e.setTimeout(p,200,this);};function p(){m=null;if(n){e.setTimeout(l,0,this);
-n=false;}};var q={modes:{wysiwyg:1,source:1},exec:function(s){switch(s.mode){case 'wysiwyg':s.document.$.execCommand('SelectAll',false,null);break;case 'source':var t=s.textarea.$;if(c)t.createTextRange().execCommand('SelectAll');else{t.selectionStart=0;t.selectionEnd=t.value.length;}t.focus();}},canUndo:false};j.add('selection',{init:function(s){s.on('contentDom',function(){var t=s.document,u=t.getBody(),v=t.getDocumentElement();if(c){var w,x,y=1;u.on('focusin',function(C){if(C.data.$.srcElement.nodeName!='BODY')return;if(w){if(y)try{w.select();}catch(D){}w=null;}});u.on('focus',function(){x=true;B();});u.on('beforedeactivate',function(C){if(C.data.$.toElement)return;x=false;y=1;});if(c&&b.version<8)s.on('blur',function(C){s.document&&s.document.$.selection.empty();});v.on('mousedown',function(){y=0;});v.on('mouseup',function(){y=1;});if(c&&(b.ie7Compat||b.version<8||b.quirks))v.on('click',function(C){if(C.data.getTarget().getName()=='html')s.getSelection().getRanges()[0].s
elect();});var z;u.on('mousedown',function(C){if(C.data.$.button==2){var D=s.document.$.selection;if(D.type=='None')z=s.window.getScrollPosition();}A();});u.on('mouseup',function(C){if(C.data.$.button==2&&z){s.document.$.documentElement.scrollLeft=z.x;s.document.$.documentElement.scrollTop=z.y;}z=null;x=true;setTimeout(function(){B(true);},0);});u.on('keydown',A);u.on('keyup',function(){x=true;B();});t.on('selectionchange',B);function A(){x=false;};function B(C){if(x){var D=s.document,E=s.getSelection(),F=E&&E.getNative();if(C&&F&&F.type=='None')if(!D.$.queryCommandEnabled('InsertImage')){e.setTimeout(B,50,this,true);return;}var G;if(F&&F.type&&F.type!='Control'&&(G=F.createRange())&&(G=G.parentElement())&&(G=G.nodeName)&&G.toLowerCase() in {input:1,textarea:1})return;w=F&&E.getRanges()[0];o.call(s);}};}else{t.on('mouseup',o,s);t.on('keyup',o,s);}});s.addCommand('selectAll',q);s.ui.addButton('SelectAll',{label:s.lang.selectAll,command:'selectAll'});s.selectionChange=o;}});a.
editor.prototype.getSelection=function(){return this.document&&this.document.getSelection();};a.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath;};g.prototype.getSelection=function(){var s=new d.selection(this);return!s||s.isInvalid?null:s;};a.SELECTION_NONE=1;a.SELECTION_TEXT=2;a.SELECTION_ELEMENT=3;d.selection=function(s){var v=this;var t=s.getCustomData('cke_locked_selection');if(t)return t;v.document=s;v.isLocked=false;v._={cache:{}};if(c){var u=v.getNative().createRange();if(!u||u.item&&u.item(0).ownerDocument!=v.document.$||u.parentElement&&u.parentElement().ownerDocument!=v.document.$)v.isInvalid=true;
-}return v;};var r={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,th:1,thead:1,tfoot:1};d.selection.prototype={getNative:c?function(){return this._.cache.nativeSel||(this._.cache.nativeSel=this.document.$.selection);}:function(){return this._.cache.nativeSel||(this._.cache.nativeSel=this.document.getWindow().$.getSelection());},getType:c?function(){var s=this._.cache;if(s.type)return s.type;var t=1;try{var u=this.getNative(),v=u.type;if(v=='Text')t=2;if(v=='Control')t=3;if(u.createRange().parentElement)t=2;}catch(w){}return s.type=t;}:function(){var s=this._.cache;if(s.type)return s.type;var t=2,u=this.getNative();if(!u)t=1;else if(u.rangeCount==1){var v=u.getRangeAt(0),w=v.startContainer;if(w==v.endContainer&&w.nodeType==1&&v.endOffset-v.startOffset==1&&r[w.childNodes[v.startOffset].nodeName.toLowerCase()])t=3;}return s.type=t;},getRanges:(function(){var s=c?(function(){var t=function(u,v){u=u.dup
licate();u.collapse(v);var w=u.parentElement(),x=w.childNodes,y;for(var z=0;z<x.length;z++){var A=x[z];if(A.nodeType==1){y=u.duplicate();y.moveToElementText(A);var B=y.compareEndPoints('StartToStart',u),C=y.compareEndPoints('EndToStart',u);y.collapse();if(B>0)break;else if(!B||C==1&&B==-1)return{container:w,offset:z};else if(!C)return{container:w,offset:z+1};y=null;}}if(!y){y=u.duplicate();y.moveToElementText(w);y.collapse(false);}y.setEndPoint('StartToStart',u);var D=y.text.replace(/(\r\n|\r)/g,'\n').length;try{while(D>0)D-=x[--z].nodeValue.length;}catch(E){D=0;}if(D===0)return{container:w,offset:z};else return{container:x[z],offset:-D};};return function(){var E=this;var u=E.getNative(),v=u&&u.createRange(),w=E.getType(),x;if(!u)return[];if(w==2){x=new d.range(E.document);var y=t(v,true);x.setStart(new d.node(y.container),y.offset);y=t(v);x.setEnd(new d.node(y.container),y.offset);return[x];}else if(w==3){var z=[];for(var A=0;A<v.length;A++){var B=v.item(A),C=B.parentNode,D
=0;x=new d.range(E.document);for(;D<C.childNodes.length&&C.childNodes[D]!=B;D++){}x.setStart(new d.node(C),D);x.setEnd(new d.node(C),D+1);z.push(x);}return z;}return[];};})():function(){var t=[],u,v=this.document,w=this.getNative();if(!w)return t;if(!w.rangeCount){u=new d.range(v);u.moveToElementEditStart(v.getBody());t.push(u);}for(var x=0;x<w.rangeCount;x++){var y=w.getRangeAt(x);u=new d.range(v);u.setStart(new d.node(y.startContainer),y.startOffset);u.setEnd(new d.node(y.endContainer),y.endOffset);t.push(u);}return t;
-};return function(t){var u=this._.cache;if(u.ranges&&!t)return u.ranges;else if(!u.ranges)u.ranges=new d.rangeList(s.call(this));if(t){var v=u.ranges;for(var w=0;w<v.length;w++){var x=v[w],y=x.getCommonAncestor();if(y.isReadOnly())v.splice(w,1);if(x.collapsed)continue;var z=x.startContainer,A=x.endContainer,B=x.startOffset,C=x.endOffset,D=x.clone(),E;if(E=z.isReadOnly())x.setStartAfter(E);if(z&&z.type==3)if(B>=z.getLength())D.setStartAfter(z);else D.setStartBefore(z);if(A&&A.type==3)if(!C)D.setEndBefore(A);else D.setEndAfter(A);var F=new d.walker(D);F.evaluator=function(G){if(G.type==1&&G.getAttribute('contenteditable')=='false'){var H=x.clone();x.setEndBefore(G);if(x.collapsed)v.splice(w--,1);if(!(G.getPosition(D.endContainer)&16)){H.setStartAfter(G);if(!H.collapsed)v.splice(w+1,0,H);}return true;}return false;};F.next();}}return u.ranges;};})(),getStartElement:function(){var z=this;var s=z._.cache;if(s.startElement!==undefined)return s.startElement;var t,u=z.getNative();sw
itch(z.getType()){case 3:return z.getSelectedElement();case 2:var v=z.getRanges()[0];if(v)if(!v.collapsed){v.optimize();for(;;){var w=v.startContainer,x=v.startOffset;if(x==(w.getChildCount?w.getChildCount():w.getLength())&&!w.isBlockBoundary())v.setStartAfter(w);else break;}t=v.startContainer;if(t.type!=1)return t.getParent();t=t.getChild(v.startOffset);if(!t||t.type!=1)return v.startContainer;var y=t.getFirst();while(y&&y.type==1){t=y;y=y.getFirst();}return t;}if(c){v=u.createRange();v.collapse(true);t=v.parentElement();}else{t=u.anchorNode;if(t&&t.nodeType!=1)t=t.parentNode;}}return s.startElement=t?new h(t):null;},getSelectedElement:function(){var s=this._.cache;if(s.selectedElement!==undefined)return s.selectedElement;var t=this,u=e.tryThese(function(){return t.getNative().createRange().item(0);},function(){var v=t.getRanges()[0],w,x;for(var y=2;y&&!((w=v.getEnclosedNode())&&w.type==1&&r[w.getName()]&&(x=w));y--)v.shrink(1);return x.$;});return s.selectedElement=u?new h
(u):null;},lock:function(){var s=this;s.getRanges();s.getStartElement();s.getSelectedElement();s._.cache.nativeSel={};s.isLocked=true;s.document.setCustomData('cke_locked_selection',s);},unlock:function(s){var x=this;var t=x.document,u=t.getCustomData('cke_locked_selection');if(u){t.setCustomData('cke_locked_selection',null);if(s){var v=u.getSelectedElement(),w=!v&&u.getRanges();x.isLocked=false;x.reset();t.getBody().focus();if(v)x.selectElement(v);else x.selectRanges(w);}}if(!u||!s){x.isLocked=false;x.reset();}},reset:function(){this._.cache={};
-},selectElement:function(s){var v=this;if(v.isLocked){var t=new d.range(v.document);t.setStartBefore(s);t.setEndAfter(s);v._.cache.selectedElement=s;v._.cache.startElement=s;v._.cache.ranges=new d.rangeList(t);v._.cache.type=3;return;}if(c){v.getNative().empty();try{t=v.document.$.body.createControlRange();t.addElement(s.$);t.select();}catch(w){t=v.document.$.body.createTextRange();t.moveToElementText(s.$);t.select();}finally{v.document.fire('selectionchange');}v.reset();}else{t=v.document.$.createRange();t.selectNode(s.$);var u=v.getNative();u.removeAllRanges();u.addRange(t);v.reset();}},selectRanges:function(s){var C=this;if(C.isLocked){C._.cache.selectedElement=null;C._.cache.startElement=s[0]&&s[0].getTouchedStartNode();C._.cache.ranges=new d.rangeList(s);C._.cache.type=2;return;}if(c){if(s.length>1){var t=s[s.length-1];s[0].setEnd(t.endContainer,t.endOffset);s.length=1;}if(s[0])s[0].select();C.reset();}else{var u=C.getNative();if(s.length)u.removeAllRanges();for(var v=0
;v<s.length;v++){if(v<s.length-1){var w=s[v],x=s[v+1],y=w.clone();y.setStart(w.endContainer,w.endOffset);y.setEnd(x.startContainer,x.startOffset);if(!y.collapsed){y.shrink(1,true);if(y.getCommonAncestor().isReadOnly()){x.setStart(w.startContainer,w.startOffset);s.splice(v--,1);continue;}}}var z=s[v],A=C.document.$.createRange(),B=z.startContainer;if(z.collapsed&&(b.opera||b.gecko&&b.version<10900)&&B.type==1&&!B.getChildCount())B.appendText('');A.setStart(B.$,z.startOffset);A.setEnd(z.endContainer.$,z.endOffset);u.addRange(A);}C.reset();}},createBookmarks:function(s){return this.getRanges().createBookmarks(s);},createBookmarks2:function(s){return this.getRanges().createBookmarks2(s);},selectBookmarks:function(s){var t=[];for(var u=0;u<s.length;u++){var v=new d.range(this.document);v.moveToBookmark(s[u]);t.push(v);}this.selectRanges(t);return this;},getCommonAncestor:function(){var s=this.getRanges(),t=s[0].startContainer,u=s[s.length-1].endContainer;return t.getCommonAncesto
r(u);},scrollIntoView:function(){var s=this.getStartElement();s.scrollIntoView();}};})();(function(){var l=d.walker.whitespaces(true),m=/\ufeff|\u00a0/,n={table:1,tbody:1,tr:1};d.range.prototype.select=c?function(o){var y=this;var p=y.collapsed,q,r;if(y.startContainer.type==1&&y.startContainer.getName() in n||y.endContainer.type==1&&y.endContainer.getName() in n)y.shrink(1,true);var s=y.createBookmark(),t=s.startNode,u;if(!p)u=s.endNode;var v=y.document.$.body.createTextRange();v.moveToElementText(t.$);v.moveStart('character',1);
-if(u){var w=y.document.$.body.createTextRange();w.moveToElementText(u.$);v.setEndPoint('EndToEnd',w);v.moveEnd('character',-1);}else{var x=t.getNext(l);q=!(x&&x.getText&&x.getText().match(m))&&(o||!t.hasPrevious()||t.getPrevious().is&&t.getPrevious().is('br'));r=y.document.createElement('span');r.setHtml('');r.insertBefore(t);if(q)y.document.createText('\ufeff').insertBefore(t);}y.setStartBefore(t);t.remove();if(p){if(q){v.moveStart('character',-1);v.select();y.document.$.selection.clear();}else v.select();y.moveToPosition(r,3);r.remove();}else{y.setEndBefore(u);u.remove();v.select();}y.document.fire('selectionchange');}:function(){var r=this;var o=r.startContainer;if(r.collapsed&&o.type==1&&!o.getChildCount())o.append(new d.text(''));var p=r.document.$.createRange();p.setStart(o.$,r.startOffset);try{p.setEnd(r.endContainer.$,r.endOffset);}catch(s){if(s.toString().indexOf('NS_ERROR_ILLEGAL_VALUE')>=0){r.collapse(true);p.setEnd(r.endContainer.$,r.endOffset);}else thro
w s;}var q=r.document.getSelection().getNative();q.removeAllRanges();q.addRange(p);};})();(function(){var l={elements:{$:function(m){var n=m.attributes,o=n&&n._cke_realelement,p=o&&new a.htmlParser.fragment.fromHtml(decodeURIComponent(o)),q=p&&p.children[0];if(q&&m.attributes._cke_resizable){var r=m.attributes.style;if(r){var s=/(?:^|\s)width\s*:\s*(\d+)/i.exec(r),t=s&&s[1];s=/(?:^|\s)height\s*:\s*(\d+)/i.exec(r);var u=s&&s[1];if(t)q.attributes.width=t;if(u)q.attributes.height=u;}}return q;}}};j.add('fakeobjects',{requires:['htmlwriter'],afterInit:function(m){var n=m.dataProcessor,o=n&&n.htmlFilter;if(o)o.addRules(l);}});})();a.editor.prototype.createFakeElement=function(l,m,n,o){var p=this.lang.fakeobjects,q={'class':m,src:a.getUrl('images/spacer.gif'),_cke_realelement:encodeURIComponent(l.getOuterHtml()),_cke_real_node_type:l.type,alt:p[n]||p.unknown,align:l.getAttribute('align')||''};if(n)q._cke_real_element_type=n;if(o)q._cke_resizable=o;return this.document.createElemen
t('img',{attributes:q});};a.editor.prototype.createFakeParserElement=function(l,m,n,o){var p=this.lang.fakeobjects,q,r=new a.htmlParser.basicWriter();l.writeHtml(r);q=r.getHtml();var s={'class':m,src:a.getUrl('images/spacer.gif'),_cke_realelement:encodeURIComponent(q),_cke_real_node_type:l.type,alt:p[n]||p.unknown,align:l.attributes.align||''};if(n)s._cke_real_element_type=n;if(o)s._cke_resizable=o;return new a.htmlParser.element('img',s);};a.editor.prototype.restoreRealElement=function(l){if(l.getAttribute('_cke_real_node_type')!=1)return null;
-return h.createFromHtml(decodeURIComponent(l.getAttribute('_cke_realelement')),this.document);};j.add('richcombo',{requires:['floatpanel','listblock','button'],beforeInit:function(l){l.ui.addHandler(3,k.richCombo.handler);}});a.UI_RICHCOMBO=3;k.richCombo=e.createClass({$:function(l){var n=this;e.extend(n,l,{title:l.label,modes:{wysiwyg:1}});var m=n.panel||{};delete n.panel;n.id=e.getNextNumber();n.document=m&&m.parent&&m.parent.getDocument()||a.document;m.className=(m.className||'')+' cke_rcombopanel';m.block={multiSelect:m.multiSelect,attributes:m.attributes};n._={panelDefinition:m,items:{},state:2};},statics:{handler:{create:function(l){return new k.richCombo(l);}}},proto:{renderHtml:function(l){var m=[];this.render(l,m);return m.join('');},render:function(l,m){var n=b,o='cke_'+this.id,p=e.addFunction(function(s){var v=this;var t=v._;if(t.state==0)return;v.createPanel(l);if(t.on){t.panel.hide();return;}if(!t.committed){t.list.commit();t.committed=1;}var u=v.getValue();if(u
)t.list.mark(u);else t.list.unmarkAll();t.panel.showBlock(v.id,new h(s),4);},this),q={id:o,combo:this,focus:function(){var s=a.document.getById(o).getChild(1);s.focus();},clickFn:p};l.on('mode',function(){this.setState(this.modes[l.mode]?2:0);},this);var r=e.addFunction(function(s,t){s=new d.event(s);var u=s.getKeystroke();switch(u){case 13:case 32:case 40:e.callFunction(p,t);break;default:q.onkey(q,u);}s.preventDefault();});q.keyDownFn=r;m.push('<span class="cke_rcombo">','<span id=',o);if(this.className)m.push(' class="',this.className,' cke_off"');m.push('>','<span id="'+o+'_label" class=cke_label>',this.label,'</span>','<a hidefocus=true title="',this.title,'" tabindex="-1"',n.gecko&&n.version>=10900&&!n.hc?'':" href=\"javascript:void('"+this.label+"')\"",' role="button" aria-labelledby="',o,'_label" aria-describedby="',o,'_text" aria-haspopup="true"');if(b.opera||b.gecko&&b.mac)m.push(' onkeypress="return false;"');if(b.gecko)m.push(' onblur="this.style.cssText = this.s
tyle.cssText;"');m.push(' onkeydown="CKEDITOR.tools.callFunction( ',r,', event, this );" onclick="CKEDITOR.tools.callFunction(',p,', this); return false;"><span><span id="'+o+'_text" class="cke_text cke_inline_label">'+this.label+'</span>'+'</span>'+'<span class=cke_openbutton>'+(b.hc?'<span>▼</span>':'')+'</span>'+'</a>'+'</span>'+'</span>');if(this.onRender)this.onRender();return q;},createPanel:function(l){if(this._.panel)return;var m=this._.panelDefinition,n=this._.panelDefinition.block,o=m.parent||a.document.getBody(),p=new k.floatPanel(l,o,m),q=p.addListBlock(this.id,n),r=this;
-p.onShow=function(){if(r.className)this.element.getFirst().addClass(r.className+'_panel');r.setState(1);q.focus(!r.multiSelect&&r.getValue());r._.on=1;if(r.onOpen)r.onOpen();};p.onHide=function(){if(r.className)this.element.getFirst().removeClass(r.className+'_panel');r.setState(2);r._.on=0;if(r.onClose)r.onClose();};p.onEscape=function(){p.hide();r.document.getById('cke_'+r.id).getFirst().getNext().focus();};q.onClick=function(s,t){r.document.getWindow().focus();if(r.onClick)r.onClick.call(r,s,t);if(t)r.setValue(s,r._.items[s]);else r.setValue('');p.hide();};this._.panel=p;this._.list=q;p.getBlock(this.id).onHide=function(){r._.on=0;r.setState(2);};if(this.init)this.init();},setValue:function(l,m){var o=this;o._.value=l;var n=o.document.getById('cke_'+o.id+'_text');if(!(l||m)){m=o.label;n.addClass('cke_inline_label');}else n.removeClass('cke_inline_label');n.setHtml(typeof m!='undefined'?m:l);},getValue:function(){return this._.value||'';},unmarkAll:function(){this._.list.u
nmarkAll();},mark:function(l){this._.list.mark(l);},hideItem:function(l){this._.list.hideItem(l);},hideGroup:function(l){this._.list.hideGroup(l);},showAll:function(){this._.list.showAll();},add:function(l,m,n){this._.items[l]=n||l;this._.list.add(l,m,n);},startGroup:function(l){this._.list.startGroup(l);},commit:function(){this._.list.commit();},setState:function(l){var m=this;if(m._.state==l)return;m.document.getById('cke_'+m.id).setState(l);m._.state=l;}}});k.prototype.addRichCombo=function(l,m){this.add(l,3,m);};j.add('htmlwriter');a.htmlWriter=e.createClass({base:a.htmlParser.basicWriter,$:function(){var n=this;n.base();n.indentationChars='\t';n.selfClosingEnd=' />';n.lineBreakChars='\n';n.forceSimpleAmpersand=false;n.sortAttributes=true;n._.indent=false;n._.indentation='';n._.rules={};var l=f;for(var m in e.extend({},l.$nonBodyContent,l.$block,l.$listItem,l.$tableContent))n.setRules(m,{indent:true,breakBeforeOpen:true,breakAfterOpen:true,breakBeforeClose:!l[m]['#'],bre
akAfterClose:true});n.setRules('br',{breakAfterOpen:true});n.setRules('title',{indent:false,breakAfterOpen:false});n.setRules('style',{indent:false,breakBeforeClose:true});n.setRules('pre',{indent:false});},proto:{openTag:function(l,m){var o=this;var n=o._.rules[l];if(o._.indent)o.indentation();else if(n&&n.breakBeforeOpen){o.lineBreak();o.indentation();}o._.output.push('<',l);},openTagClose:function(l,m){var o=this;var n=o._.rules[l];if(m)o._.output.push(o.selfClosingEnd);else{o._.output.push('>');if(n&&n.indent)o._.indentation+=o.indentationChars;
-}if(n&&n.breakAfterOpen)o.lineBreak();},attribute:function(l,m){if(typeof m=='string'){this.forceSimpleAmpersand&&(m=m.replace(/&/g,'&'));m=e.htmlEncodeAttr(m);}this._.output.push(' ',l,'="',m,'"');},closeTag:function(l){var n=this;var m=n._.rules[l];if(m&&m.indent)n._.indentation=n._.indentation.substr(n.indentationChars.length);if(n._.indent)n.indentation();else if(m&&m.breakBeforeClose){n.lineBreak();n.indentation();}n._.output.push('</',l,'>');if(m&&m.breakAfterClose)n.lineBreak();},text:function(l){if(this._.indent){this.indentation();l=e.ltrim(l);}this._.output.push(l);},comment:function(l){if(this._.indent)this.indentation();this._.output.push('<!--',l,'-->');},lineBreak:function(){var l=this;if(l._.output.length>0)l._.output.push(l.lineBreakChars);l._.indent=true;},indentation:function(){this._.output.push(this._.indentation);this._.indent=false;},setRules:function(l,m){var n=this._.rules[l];if(n)e.extend(n,m,true);else this._.rules[l]=m;}}});j.add('menubutton',{
requires:['button','contextmenu'],beforeInit:function(l){l.ui.addHandler(5,k.menuButton.handler);}});a.UI_MENUBUTTON=5;(function(){var l=function(m){var n=this._;if(n.state===0)return;n.previousState=n.state;var o=n.menu;if(!o){o=n.menu=new j.contextMenu(m);o.definition.panel.attributes['aria-label']=m.lang.common.options;o.onHide=e.bind(function(){this.setState(n.previousState);},this);if(this.onMenu)o.addListener(this.onMenu);}if(n.on){o.hide();return;}this.setState(1);o.show(a.document.getById(this._.id),4);};k.menuButton=e.createClass({base:k.button,$:function(m){var n=m.panel;delete m.panel;this.base(m);this.hasArrow=true;this.click=l;},statics:{handler:{create:function(m){return new k.menuButton(m);}}}});})();j.add('dialogui');(function(){var l=function(t){var w=this;w._||(w._={});w._['default']=w._.initValue=t['default']||'';w._.required=t.required||false;var u=[w._];for(var v=1;v<arguments.length;v++)u.push(arguments[v]);u.push(true);e.extend.apply(e,u);return w._;},
m={build:function(t,u,v){return new k.dialog.textInput(t,u,v);}},n={build:function(t,u,v){return new k.dialog[u.type](t,u,v);}},o={build:function(t,u,v){var w=u.children,x,y=[],z=[];for(var A=0;A<w.length&&(x=w[A]);A++){var B=[];y.push(B);z.push(a.dialog._.uiElementBuilders[x.type].build(t,x,B));}return new k.dialog[u.type](t,z,y,v,u);}},p={isChanged:function(){return this.getValue()!=this.getInitValue();},reset:function(t){this.setValue(this.getInitValue(),t);},setInitValue:function(){this._.initValue=this.getValue();
-},resetInitValue:function(){this._.initValue=this._['default'];},getInitValue:function(){return this._.initValue;}},q=e.extend({},k.dialog.uiElement.prototype.eventProcessors,{onChange:function(t,u){if(!this._.domOnChangeRegistered){t.on('load',function(){this.getInputElement().on('change',function(){if(!t.parts.dialog.isVisible())return;this.fire('change',{value:this.getValue()});},this);},this);this._.domOnChangeRegistered=true;}this.on('change',u);}},true),r=/^on([A-Z]\w+)/,s=function(t){for(var u in t){if(r.test(u)||u=='title'||u=='type')delete t[u];}return t;};e.extend(k.dialog,{labeledElement:function(t,u,v,w){if(arguments.length<4)return;var x=l.call(this,u);x.labelId=e.getNextId()+'_label';var y=this._.children=[],z=function(){var A=[],B=u.required?' cke_required':'';if(u.labelLayout!='horizontal')A.push('<label class="cke_dialog_ui_labeled_label'+B+'" ',' id="'+x.labelId+'"',' for="'+x.inputId+'"',' style="'+u.labelStyle+'">',u.label,'</label>','<div class="cke_dial
og_ui_labeled_content" role="presentation">',w.call(this,t,u),'</div>');else{var C={type:'hbox',widths:u.widths,padding:0,children:[{type:'html',html:'<label class="cke_dialog_ui_labeled_label'+B+'"'+' id="'+x.labelId+'"'+' for="'+x.inputId+'"'+' style="'+u.labelStyle+'">'+e.htmlEncode(u.label)+'</span>'},{type:'html',html:'<span class="cke_dialog_ui_labeled_content">'+w.call(this,t,u)+'</span>'}]};a.dialog._.uiElementBuilders.hbox.build(t,C,A);}return A.join('');};k.dialog.uiElement.call(this,t,u,v,'div',null,{role:'presentation'},z);},textInput:function(t,u,v){if(arguments.length<3)return;l.call(this,u);var w=this._.inputId=e.getNextId()+'_textInput',x={'class':'cke_dialog_ui_input_'+u.type,id:w,type:'text'},y;if(u.validate)this.validate=u.validate;if(u.maxLength)x.maxlength=u.maxLength;if(u.size)x.size=u.size;if(u.controlStyle)x.style=u.controlStyle;var z=this,A=false;t.on('load',function(){z.getInputElement().on('keydown',function(C){if(C.data.getKeystroke()==13)A=true;}
);z.getInputElement().on('keyup',function(C){if(C.data.getKeystroke()==13&&A){t.getButton('ok')&&setTimeout(function(){t.getButton('ok').click();},0);A=false;}},null,null,1000);});var B=function(){var C=['<div class="cke_dialog_ui_input_',u.type,'" role="presentation"'];if(u.width)C.push('style="width:'+u.width+'" ');C.push('><input ');x['aria-labelledby']=this._.labelId;this._.required&&(x['aria-required']=this._.required);for(var D in x)C.push(D+'="'+x[D]+'" ');C.push(' /></div>');return C.join('');};k.dialog.labeledElement.call(this,t,u,v,B);
-},textarea:function(t,u,v){if(arguments.length<3)return;l.call(this,u);var w=this,x=this._.inputId=e.getNextId()+'_textarea',y={};if(u.validate)this.validate=u.validate;y.rows=u.rows||5;y.cols=u.cols||20;var z=function(){y['aria-labelledby']=this._.labelId;this._.required&&(y['aria-required']=this._.required);var A=['<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="',x,'" '];for(var B in y)A.push(B+'="'+e.htmlEncode(y[B])+'" ');A.push('>',e.htmlEncode(w._['default']),'</textarea></div>');return A.join('');};k.dialog.labeledElement.call(this,t,u,v,z);},checkbox:function(t,u,v){if(arguments.length<3)return;var w=l.call(this,u,{'default':!!u['default']});if(u.validate)this.validate=u.validate;var x=function(){var y=e.extend({},u,{id:u.id?u.id+'_checkbox':e.getNextId()+'_checkbox'},true),z=[],A=e.getNextId()+'_label',B={'class':'cke_dialog_ui_checkbox_input',type:'checkbox','aria-labelledby':A};s(y);if(u['default'])
B.checked='checked';if(typeof y.controlStyle!='undefined')y.style=y.controlStyle;w.checkbox=new k.dialog.uiElement(t,y,z,'input',null,B);z.push(' <label id="',A,'" for="',B.id,'">',e.htmlEncode(u.label),'</label>');return z.join('');};k.dialog.uiElement.call(this,t,u,v,'span',null,null,x);},radio:function(t,u,v){if(arguments.length<3)return;l.call(this,u);if(!this._['default'])this._['default']=this._.initValue=u.items[0][1];if(u.validate)this.validate=u.valdiate;var w=[],x=this,y=function(){var z=[],A=[],B={'class':'cke_dialog_ui_radio_item','aria-labelledby':this._.labelId},C=u.id?u.id+'_radio':e.getNextId()+'_radio';for(var D=0;D<u.items.length;D++){var E=u.items[D],F=E[2]!==undefined?E[2]:E[0],G=E[1]!==undefined?E[1]:E[0],H=e.getNextId()+'_radio_input',I=H+'_label',J=e.extend({},u,{id:H,title:null,type:null},true),K=e.extend({},J,{title:F},true),L={type:'radio','class':'cke_dialog_ui_radio_input',name:C,value:G,'aria-labelledby':I},M=[];if(x._['default']==G)L.checked='ch
ecked';s(J);s(K);if(typeof J.controlStyle!='undefined')J.style=J.controlStyle;w.push(new k.dialog.uiElement(t,J,M,'input',null,L));M.push(' ');new k.dialog.uiElement(t,K,M,'label',null,{id:I,'for':L.id},E[0]);z.push(M.join(''));}new k.dialog.hbox(t,[],z,A);return A.join('');};k.dialog.labeledElement.call(this,t,u,v,y);this._.children=w;},button:function(t,u,v){if(!arguments.length)return;if(typeof u=='function')u=u(t.getParentEditor());l.call(this,u,{disabled:u.disabled||false});a.event.implementOn(this);var w=this;t.on('load',function(z){var A=this.getElement();
-(function(){A.on('click',function(B){w.fire('click',{dialog:w.getDialog()});B.data.preventDefault();});A.on('keydown',function(B){if(B.data.getKeystroke() in {32:1}){w.click();B.data.preventDefault();}});})();A.unselectable();},this);var x=e.extend({},u);delete x.style;var y=e.getNextId()+'_label';k.dialog.uiElement.call(this,t,x,v,'a',null,{style:u.style,href:'javascript:void(0)',title:u.label,hidefocus:'true','class':u['class'],role:'button','aria-labelledby':y},'<span id="'+y+'" class="cke_dialog_ui_button">'+e.htmlEncode(u.label)+'</span>');},select:function(t,u,v){if(arguments.length<3)return;var w=l.call(this,u);if(u.validate)this.validate=u.validate;w.inputId=e.getNextId()+'_select';var x=function(){var y=e.extend({},u,{id:u.id?u.id+'_select':e.getNextId()+'_select'},true),z=[],A=[],B={id:w.inputId,'class':'cke_dialog_ui_input_select','aria-labelledby':this._.labelId};if(u.size!=undefined)B.size=u.size;if(u.multiple!=undefined)B.multiple=u.multiple;s(y);for(var C=0,D;
C<u.items.length&&(D=u.items[C]);C++)A.push('<option value="',e.htmlEncode(D[1]!==undefined?D[1]:D[0]),'" /> ',e.htmlEncode(D[0]));if(typeof y.controlStyle!='undefined')y.style=y.controlStyle;w.select=new k.dialog.uiElement(t,y,z,'select',null,B,A.join(''));return z.join('');};k.dialog.labeledElement.call(this,t,u,v,x);},file:function(t,u,v){if(arguments.length<3)return;if(u['default']===undefined)u['default']='';var w=e.extend(l.call(this,u),{definition:u,buttons:[]});if(u.validate)this.validate=u.validate;var x=function(){w.frameId=e.getNextId()+'_fileInput';var y=b.isCustomDomain(),z=['<iframe frameborder="0" allowtransparency="0" class="cke_dialog_ui_input_file" id="',w.frameId,'" title="',u.label,'" src="javascript:void('];z.push(y?"(function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})()':'0');z.push(')"></iframe>');return z.join('');};t.on('load',function(){var y=a.document.getById(w.frameId),z=y.getParent();z.addClass('cke_dialog_
ui_input_file');});k.dialog.labeledElement.call(this,t,u,v,x);},fileButton:function(t,u,v){if(arguments.length<3)return;var w=l.call(this,u),x=this;if(u.validate)this.validate=u.validate;var y=e.extend({},u),z=y.onClick;y.className=(y.className?y.className+' ':'')+'cke_dialog_ui_button';y.onClick=function(A){var B=u['for'];if(!z||z.call(this,A)!==false){t.getContentElement(B[0],B[1]).submit();this.disable();}};t.on('load',function(){t.getContentElement(u['for'][0],u['for'][1])._.buttons.push(x);});k.dialog.button.call(this,t,y,v);
-},html:(function(){var t=/^\s*<[\w:]+\s+([^>]*)?>/,u=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,v=/\/$/;return function(w,x,y){if(arguments.length<3)return;var z=[],A,B=x.html,C,D;if(B.charAt(0)!='<')B='<span>'+B+'</span>';var E=x.focus;if(E){var F=this.focus;this.focus=function(){F.call(this);typeof E=='function'&&E.call(this);this.fire('focus');};if(x.isFocusable){var G=this.isFocusable;this.isFocusable=G;}this.keyboardFocusable=true;}k.dialog.uiElement.call(this,w,x,z,'span',null,null,'');A=z.join('');C=A.match(t);D=B.match(u)||['','',''];if(v.test(D[1])){D[1]=D[1].slice(0,-1);D[2]='/'+D[2];}y.push([D[1],' ',C[1]||'',D[2]].join(''));};})(),fieldset:function(t,u,v,w,x){var y=x.label,z=function(){var A=[];y&&A.push('<legend>'+y+'</legend>');for(var B=0;B<v.length;B++)A.push(v[B]);return A.join('');};this._={children:u};k.dialog.uiElement.call(this,t,x,w,'fieldset',null,null,z);}},true);k.dialog.html.prototype=new k.dialog.uiElement();k.dialog.labeledElement.prototype=e.ext
end(new k.dialog.uiElement(),{setLabel:function(t){var u=a.document.getById(this._.labelId);if(u.getChildCount()<1)new d.text(t,a.document).appendTo(u);else u.getChild(0).$.nodeValue=t;return this;},getLabel:function(){var t=a.document.getById(this._.labelId);if(!t||t.getChildCount()<1)return '';else return t.getChild(0).getText();},eventProcessors:q},true);k.dialog.button.prototype=e.extend(new k.dialog.uiElement(),{click:function(){var t=this;if(!t._.disabled)return t.fire('click',{dialog:t._.dialog});t.getElement().$.blur();return false;},enable:function(){this._.disabled=false;var t=this.getElement();t&&t.removeClass('disabled');},disable:function(){this._.disabled=true;this.getElement().addClass('disabled');},isVisible:function(){return this.getElement().getFirst().isVisible();},isEnabled:function(){return!this._.disabled;},eventProcessors:e.extend({},k.dialog.uiElement.prototype.eventProcessors,{onClick:function(t,u){this.on('click',u);}},true),accessKeyUp:function(){t
his.click();},accessKeyDown:function(){this.focus();},keyboardFocusable:true},true);k.dialog.textInput.prototype=e.extend(new k.dialog.labeledElement(),{getInputElement:function(){return a.document.getById(this._.inputId);},focus:function(){var t=this.selectParentTab();setTimeout(function(){var u=t.getInputElement();u&&u.$.focus();},0);},select:function(){var t=this.selectParentTab();setTimeout(function(){var u=t.getInputElement();if(u){u.$.focus();u.$.select();}},0);},accessKeyUp:function(){this.select();},setValue:function(t){!t&&(t='');
-return k.dialog.uiElement.prototype.setValue.apply(this,arguments);},keyboardFocusable:true},p,true);k.dialog.textarea.prototype=new k.dialog.textInput();k.dialog.select.prototype=e.extend(new k.dialog.labeledElement(),{getInputElement:function(){return this._.select.getElement();},add:function(t,u,v){var w=new h('option',this.getDialog().getParentEditor().document),x=this.getInputElement().$;w.$.text=t;w.$.value=u===undefined||u===null?t:u;if(v===undefined||v===null){if(c)x.add(w.$);else x.add(w.$,null);}else x.add(w.$,v);return this;},remove:function(t){var u=this.getInputElement().$;u.remove(t);return this;},clear:function(){var t=this.getInputElement().$;while(t.length>0)t.remove(0);return this;},keyboardFocusable:true},p,true);k.dialog.checkbox.prototype=e.extend(new k.dialog.uiElement(),{getInputElement:function(){return this._.checkbox.getElement();},setValue:function(t,u){this.getInputElement().$.checked=t;!u&&this.fire('change',{value:t});},getValue:function(){retur
n this.getInputElement().$.checked;},accessKeyUp:function(){this.setValue(!this.getValue());},eventProcessors:{onChange:function(t,u){if(!c)return q.onChange.apply(this,arguments);else{t.on('load',function(){var v=this._.checkbox.getElement();v.on('propertychange',function(w){w=w.data.$;if(w.propertyName=='checked')this.fire('change',{value:v.$.checked});},this);},this);this.on('change',u);}return null;}},keyboardFocusable:true},p,true);k.dialog.radio.prototype=e.extend(new k.dialog.uiElement(),{setValue:function(t,u){var v=this._.children,w;for(var x=0;x<v.length&&(w=v[x]);x++)w.getElement().$.checked=w.getValue()==t;!u&&this.fire('change',{value:t});},getValue:function(){var t=this._.children;for(var u=0;u<t.length;u++){if(t[u].getElement().$.checked)return t[u].getValue();}return null;},accessKeyUp:function(){var t=this._.children,u;for(u=0;u<t.length;u++){if(t[u].getElement().$.checked){t[u].getElement().focus();return;}}t[0].getElement().focus();},eventProcessors:{onCha
nge:function(t,u){if(!c)return q.onChange.apply(this,arguments);else{t.on('load',function(){var v=this._.children,w=this;for(var x=0;x<v.length;x++){var y=v[x].getElement();y.on('propertychange',function(z){z=z.data.$;if(z.propertyName=='checked'&&this.$.checked)w.fire('change',{value:this.getAttribute('value')});});}},this);this.on('change',u);}return null;}},keyboardFocusable:true},p,true);k.dialog.file.prototype=e.extend(new k.dialog.labeledElement(),p,{getInputElement:function(){var t=a.document.getById(this._.frameId).getFrameDocument();
-return t.$.forms.length>0?new h(t.$.forms[0].elements[0]):this.getElement();},submit:function(){this.getInputElement().getParent().$.submit();return this;},getAction:function(){return this.getInputElement().getParent().$.action;},registerEvents:function(t){var u=/^on([A-Z]\w+)/,v,w=function(y,z,A,B){y.on('formLoaded',function(){y.getInputElement().on(A,B,y);});};for(var x in t){if(!(v=x.match(u)))continue;if(this.eventProcessors[x])this.eventProcessors[x].call(this,this._.dialog,t[x]);else w(this,this._.dialog,v[1].toLowerCase(),t[x]);}return this;},reset:function(){var t=a.document.getById(this._.frameId),u=t.getFrameDocument(),v=this._.definition,w=this._.buttons,x=this.formLoadedNumber,y=this.formUnloadNumber,z=this._.dialog._.editor.lang.dir,A=this._.dialog._.editor.langCode;if(!x){x=this.formLoadedNumber=e.addFunction(function(){this.fire('formLoaded');},this);y=this.formUnloadNumber=e.addFunction(function(){this.getInputElement().clearCustomData();},this);this.getDialo
g()._.editor.on('destroy',function(){e.removeFunction(x);e.removeFunction(y);});}function B(){u.$.open();if(b.isCustomDomain())u.$.domain=document.domain;var C='';if(v.size)C=v.size-(c?7:0);u.$.write(['<html dir="'+z+'" lang="'+A+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+z+'" lang="'+A+'" action="',e.htmlEncode(v.action),'">','<input type="file" name="',e.htmlEncode(v.id||'cke_upload'),'" size="',e.htmlEncode(C>0?C:''),'" />','</form>','</body></html>','<script>window.parent.CKEDITOR.tools.callFunction('+x+');','window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction('+y+')}</script>'].join(''));u.$.close();for(var D=0;D<w.length;D++)w[D].enable();};if(b.gecko)setTimeout(B,500);else B();},getValue:function(){return this.getInputElement().$.value;},setInitValue:function(){this._.initValue='';},eventProcessors:{onChange:function(t,u){if(!th
is._.domOnChangeRegistered){this.on('formLoaded',function(){this.getInputElement().on('change',function(){this.fire('change',{value:this.getValue()});},this);},this);this._.domOnChangeRegistered=true;}this.on('change',u);}},keyboardFocusable:true},true);k.dialog.fileButton.prototype=new k.dialog.button();k.dialog.fieldset.prototype=e.clone(k.dialog.hbox.prototype);a.dialog.addUIElement('text',m);a.dialog.addUIElement('password',m);a.dialog.addUIElement('textarea',n);a.dialog.addUIElement('checkbox',n);a.dialog.addUIElement('radio',n);
-a.dialog.addUIElement('button',n);a.dialog.addUIElement('select',n);a.dialog.addUIElement('file',n);a.dialog.addUIElement('fileButton',n);a.dialog.addUIElement('html',n);a.dialog.addUIElement('fieldset',o);})();j.add('panel',{beforeInit:function(l){l.ui.addHandler(2,k.panel.handler);}});a.UI_PANEL=2;k.panel=function(l,m){var n=this;if(m)e.extend(n,m);e.extend(n,{className:'',css:[]});n.id=e.getNextNumber();n.document=l;n._={blocks:{}};};k.panel.handler={create:function(l){return new k.panel(l);}};k.panel.prototype={renderHtml:function(l){var m=[];this.render(l,m);return m.join('');},render:function(l,m){var o=this;var n='cke_'+o.id;m.push('<div class="',l.skinClass,'" lang="',l.langCode,'" role="presentation" style="display:none;z-index:'+(l.config.baseFloatZIndex+1)+'">'+'<div'+' id=',n,' dir=',l.lang.dir,' role="presentation" class="cke_panel cke_',l.lang.dir);if(o.className)m.push(' ',o.className);m.push('">');if(o.forceIFrame||o.css.length){m.push('<iframe id="',n,'_fram
e" frameborder="0" role="application" src="javascript:void(');m.push(b.isCustomDomain()?"(function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})()':'0');m.push(')"></iframe>');}m.push('</div></div>');return n;},getHolderElement:function(){var l=this._.holder;if(!l){if(this.forceIFrame||this.css.length){var m=this.document.getById('cke_'+this.id+'_frame'),n=m.getParent(),o=n.getAttribute('dir'),p=n.getParent().getAttribute('class'),q=n.getParent().getAttribute('lang'),r=m.getFrameDocument();r.$.open();if(b.isCustomDomain())r.$.domain=document.domain;var s=e.addFunction(e.bind(function(u){this.isLoaded=true;if(this.onLoad)this.onLoad();},this));r.$.write('<!DOCTYPE html><html dir="'+o+'" class="'+p+'_container" lang="'+q+'">'+'<head>'+'<style>.'+p+'_container{visibility:hidden}</style>'+'</head>'+'<body class="cke_'+o+' cke_panel_frame '+b.cssClass+'" style="margin:0;padding:0"'+' onload="( window.CKEDITOR || window.parent.CKEDITOR ).tools.c
allFunction('+s+');"></body>'+e.buildStyleHtml(this.css)+'</html>');r.$.close();var t=r.getWindow();t.$.CKEDITOR=a;r.on('keydown',function(u){var x=this;var v=u.data.getKeystroke(),w=x.document.getById('cke_'+x.id).getAttribute('dir');if(x._.onKeyDown&&x._.onKeyDown(v)===false){u.data.preventDefault();return;}if(v==27||v==(w=='rtl'?39:37))if(x.onEscape&&x.onEscape(v)===false)u.data.preventDefault();},this);l=r.getBody();l.unselectable();}else l=this.document.getById('cke_'+this.id);this._.holder=l;}return l;},addBlock:function(l,m){var n=this;
-m=n._.blocks[l]=m instanceof k.panel.block?m:new k.panel.block(n.getHolderElement(),m);if(!n._.currentBlock)n.showBlock(l);return m;},getBlock:function(l){return this._.blocks[l];},showBlock:function(l){var m=this._.blocks,n=m[l],o=this._.currentBlock,p=this.forceIFrame?this.document.getById('cke_'+this.id+'_frame'):this._.holder;p.getParent().getParent().disableContextMenu();if(o){p.removeAttributes(o.attributes);o.hide();}this._.currentBlock=n;p.setAttributes(n.attributes);a.fire('ariaWidget',p);n._.focusIndex=-1;this._.onKeyDown=n.onKeyDown&&e.bind(n.onKeyDown,n);n.onMark=function(q){p.setAttribute('aria-activedescendant',q.getId()+'_option');};n.onUnmark=function(){p.removeAttribute('aria-activedescendant');};n.show();return n;},destroy:function(){this.element&&this.element.remove();}};k.panel.block=e.createClass({$:function(l,m){var n=this;n.element=l.append(l.getDocument().createElement('div',{attributes:{tabIndex:-1,'class':'cke_panel_block',role:'presentation'},style
s:{display:'none'}}));if(m)e.extend(n,m);if(!n.attributes.title)n.attributes.title=n.attributes['aria-label'];n.keys={};n._.focusIndex=-1;n.element.disableContextMenu();},_:{markItem:function(l){var o=this;if(l==-1)return;var m=o.element.getElementsByTag('a'),n=m.getItem(o._.focusIndex=l);if(b.webkit)n.getDocument().getWindow().focus();n.focus();o.onMark&&o.onMark(n);}},proto:{show:function(){this.element.setStyle('display','');},hide:function(){var l=this;if(!l.onHide||l.onHide.call(l)!==true)l.element.setStyle('display','none');},onKeyDown:function(l){var q=this;var m=q.keys[l];switch(m){case 'next':var n=q._.focusIndex,o=q.element.getElementsByTag('a'),p;while(p=o.getItem(++n)){if(p.getAttribute('_cke_focus')&&p.$.offsetWidth){q._.focusIndex=n;p.focus();break;}}return false;case 'prev':n=q._.focusIndex;o=q.element.getElementsByTag('a');while(n>0&&(p=o.getItem(--n))){if(p.getAttribute('_cke_focus')&&p.$.offsetWidth){q._.focusIndex=n;p.focus();break;}}return false;case 'cli
ck':n=q._.focusIndex;p=n>=0&&q.element.getElementsByTag('a').getItem(n);if(p)p.$.click?p.$.click():p.$.onclick();return false;}return true;}}});j.add('listblock',{requires:['panel'],onLoad:function(){k.panel.prototype.addListBlock=function(l,m){return this.addBlock(l,new k.listBlock(this.getHolderElement(),m));};k.listBlock=e.createClass({base:k.panel.block,$:function(l,m){var p=this;m=m||{};var n=m.attributes||(m.attributes={});(p.multiSelect=!!m.multiSelect)&&(n['aria-multiselectable']=true);!n.role&&(n.role='listbox');
-p.base.apply(p,arguments);var o=p.keys;o[40]='next';o[9]='next';o[38]='prev';o[2000+9]='prev';o[32]='click';p._.pendingHtml=[];p._.items={};p._.groups={};},_:{close:function(){if(this._.started){this._.pendingHtml.push('</ul>');delete this._.started;}},getClick:function(){if(!this._.click)this._.click=e.addFunction(function(l){var n=this;var m=true;if(n.multiSelect)m=n.toggle(l);else n.mark(l);if(n.onClick)n.onClick(l,m);},this);return this._.click;}},proto:{add:function(l,m,n){var q=this;var o=q._.pendingHtml,p='cke_'+e.getNextNumber();if(!q._.started){o.push('<ul role="presentation" class=cke_panel_list>');q._.started=1;q._.size=q._.size||0;}q._.items[l]=p;o.push('<li id=',p,' class=cke_panel_listItem><a id="',p,'_option" _cke_focus=1 hidefocus=true title="',n||l,'" href="javascript:void(\'',l,'\')" onclick="CKEDITOR.tools.callFunction(',q._.getClick(),",'",l,"'); return false;\"",' role="option" aria-posinset="'+ ++q._.size+'">',m||l,'</a></li>');},startGroup:function(l){
this._.close();var m='cke_'+e.getNextNumber();this._.groups[l]=m;this._.pendingHtml.push('<h1 role="presentation" id=',m,' class=cke_panel_grouptitle>',l,'</h1>');},commit:function(){var o=this;o._.close();o.element.appendHtml(o._.pendingHtml.join(''));var l=o._.items,m=o.element.getDocument();for(var n in l)m.getById(l[n]+'_option').setAttribute('aria-setsize',o._.size);delete o._.size;o._.pendingHtml=[];},toggle:function(l){var m=this.isMarked(l);if(m)this.unmark(l);else this.mark(l);return!m;},hideGroup:function(l){var m=this.element.getDocument().getById(this._.groups[l]),n=m&&m.getNext();if(m){m.setStyle('display','none');if(n&&n.getName()=='ul')n.setStyle('display','none');}},hideItem:function(l){this.element.getDocument().getById(this._.items[l]).setStyle('display','none');},showAll:function(){var l=this._.items,m=this._.groups,n=this.element.getDocument();for(var o in l)n.getById(l[o]).setStyle('display','');for(var p in m){var q=n.getById(m[p]),r=q.getNext();q.setSt
yle('display','');if(r&&r.getName()=='ul')r.setStyle('display','');}},mark:function(l){var o=this;if(!o.multiSelect)o.unmarkAll();var m=o._.items[l],n=o.element.getDocument().getById(m);n.addClass('cke_selected');o.element.getDocument().getById(m+'_option').setAttribute('aria-selected',true);o.element.setAttribute('aria-activedescendant',m+'_option');o.onMark&&o.onMark(n);},unmark:function(l){var m=this;m.element.getDocument().getById(m._.items[l]).removeClass('cke_selected');m.onUnmark&&m.onUnmark(m._.items[l]);},unmarkAll:function(){var o=this;
-var l=o._.items,m=o.element.getDocument();for(var n in l)m.getById(l[n]).removeClass('cke_selected');o.onUnmark&&o.onUnmark();},isMarked:function(l){return this.element.getDocument().getById(this._.items[l]).hasClass('cke_selected');},focus:function(l){this._.focusIndex=-1;if(l){var m=this.element.getDocument().getById(this._.items[l]).getFirst(),n=this.element.getElementsByTag('a'),o,p=-1;while(o=n.getItem(++p)){if(o.equals(m)){this._.focusIndex=p;break;}}setTimeout(function(){m.focus();},0);}}}});}});a.themes.add('default',(function(){function l(m,n){var o,p;p=m.config.sharedSpaces;p=p&&p[n];p=p&&a.document.getById(p);if(p){var q='<span class="cke_shared"><span class="'+m.skinClass+' cke_editor_'+m.name+'">'+'<span class="'+b.cssClass+'">'+'<span class="cke_wrapper cke_'+m.lang.dir+'">'+'<span class="cke_editor">'+'<div class="cke_'+n+'">'+'</div></span></span></span></span></span>',r=p.append(h.createFromHtml(q,p.getDocument()));if(p.getCustomData('cke_hasshared'))r.hide(
);else p.setCustomData('cke_hasshared',1);o=r.getChild([0,0,0,0]);m.on('focus',function(){for(var s=0,t,u=p.getChildren();t=u.getItem(s);s++){if(t.type==1&&!t.equals(r)&&t.hasClass('cke_shared'))t.hide();}r.show();});m.on('destroy',function(){r.remove();});}return o;};return{build:function(m,n){var o=m.name,p=m.element,q=m.elementMode;if(!p||q==0)return;if(q==1)p.hide();var r=m.fire('themeSpace',{space:'top',html:''}).html,s=m.fire('themeSpace',{space:'contents',html:''}).html,t=m.fireOnce('themeSpace',{space:'bottom',html:''}).html,u=s&&m.config.height,v=m.config.tabIndex||m.element.getAttribute('tabindex')||0;if(!s)u='auto';else if(!isNaN(u))u+='px';var w='',x=m.config.width;if(x){if(!isNaN(x))x+='px';w+='width: '+x+';';}var y=r&&l(m,'top'),z=l(m,'bottom');y&&(y.setHtml(r),r='');z&&(z.setHtml(t),t='');var A=h.createFromHtml(['<span id="cke_',o,'" onmousedown="return false;" class="',m.skinClass,' cke_editor_',o,'" dir="',m.lang.dir,'" title="',b.gecko?' ':'','" lang="',m.l
angCode,'"'+(b.webkit?' tabindex="'+v+'"':'')+' role="application"'+' aria-labelledby="cke_',o,'_arialbl"'+(w?' style="'+w+'"':'')+'>'+'<span id="cke_',o,'_arialbl" class="cke_voice_label">'+m.lang.editor+'</span>'+'<span class="',b.cssClass,'" role="presentation"><span class="cke_wrapper cke_',m.lang.dir,'" role="presentation"><table class="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody><tr',r?'':' style="display:none"',' role="presentation"><td id="cke_top_',o,'" class="cke_top" role="presentation">',r,'</td></tr><tr',s?'':' style="display:none"',' role="presentation"><td id="cke_contents_',o,'" class="cke_contents" style="height:',u,'" role="presentation">',s,'</td></tr><tr',t?'':' style="display:none"',' role="presentation"><td id="cke_bottom_',o,'" class="cke_bottom" role="presentation">',t,'</td></tr></tbody></table><style>.',m.skinClass,'{visibility:hidden;}</style></span></span></span>'].join(''));
-A.getChild([1,0,0,0,0]).unselectable();A.getChild([1,0,0,0,2]).unselectable();if(q==1)A.insertAfter(p);else p.append(A);m.container=A;A.disableContextMenu();m.fireOnce('themeLoaded');m.fireOnce('uiReady');},buildDialog:function(m){var n=e.getNextNumber(),o=h.createFromHtml(['<div class="cke_editor_'+m.name.replace('.','\\.')+'_dialog cke_skin_',m.skinName,'" dir="',m.lang.dir,'" lang="',m.langCode,'" role="dialog" aria-labelledby="%title#"><table class="cke_dialog',' '+b.cssClass,' cke_',m.lang.dir,'" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="%body" role="presentation"><div id="%title#" class="%title" role="presentation"></div><a id="%close_button#" class="%close_button" href="javascript:void(0)" title="'+m.lang.common.close+'" role="button"><span class="cke_label">X</span></a>'+'<div id="%tabs#" class="%tabs" role="tablist"></div>'+'<table class="%contents" role="presentation"><tr>'+'<td id="%contents#" class="%contents" role="pre
sentation"></td>'+'</tr></table>'+'<div id="%footer#" class="%footer" role="presentation"></div>'+'</div>'+'<div id="%tl#" class="%tl"></div>'+'<div id="%tc#" class="%tc"></div>'+'<div id="%tr#" class="%tr"></div>'+'<div id="%ml#" class="%ml"></div>'+'<div id="%mr#" class="%mr"></div>'+'<div id="%bl#" class="%bl"></div>'+'<div id="%bc#" class="%bc"></div>'+'<div id="%br#" class="%br"></div>'+'</td></tr>'+'</table>',c?'':'<style>.cke_dialog{visibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+n).replace(/%/g,'cke_dialog_')),p=o.getChild([0,0,0,0,0]),q=p.getChild(0),r=p.getChild(1);q.unselectable();r.unselectable();return{element:o,parts:{dialog:o.getChild(0),title:q,close:r,tabs:p.getChild(2),contents:p.getChild([3,0,0,0]),footer:p.getChild(4)}};},destroy:function(m){var n=m.container;n.clearCustomData();m.element.clearCustomData();if(n)n.remove();if(m.elementMode==1)m.element.show();delete m.element;}};})());a.editor.prototype.getThemeSpace=function(l){var m='cke
_'+l,n=this._[m]||(this._[m]=a.document.getById(m+'_'+this.name));return n;};a.editor.prototype.resize=function(l,m,n,o){var p=this.container,q=a.document.getById('cke_contents_'+this.name),r=o?p.getChild(1):p;b.webkit&&r.setStyle('display','none');r.setSize('width',l,true);if(b.webkit){r.$.offsetWidth;r.setStyle('display','');}var s=n?0:(r.$.offsetHeight||0)-(q.$.clientHeight||0);q.setStyle('height',Math.max(m-s,0)+'px');this.fire('resize');};a.editor.prototype.getResizable=function(){return this.container.getChild(1);
-};})();
+(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var b={timestamp:"D08E",version:"4.0.1",revision:"d02739be4b",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var a=window.CKEDITOR_BASEPATH||"";if(!a)for(var b=document.getElementsByTagName("script"),d=0;d<b.length;d++){var c=b[d].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(c){a=c[1];break}}-1==a.indexOf(":/")&&(a=0===a.indexOf("/")?location.href.match(/^.*?:\/\/[^\/]*/)[0]+a:location.href.match(/^[^\?]*\/(?:)/)[0]+
+a);if(!a)throw'The CKEditor installation path could not be automatically detected. Please set the global variable "CKEDITOR_BASEPATH" before creating editor instances.';return a}(),getUrl:function(a){-1==a.indexOf(":/")&&0!==a.indexOf("/")&&(a=this.basePath+a);this.timestamp&&("/"!=a.charAt(a.length-1)&&!/[&?]t=/.test(a))&&(a+=(0<=a.indexOf("?")?"&":"?")+"t="+this.timestamp);return a},domReady:function(){function a(){try{document.addEventListener?(document.removeEventListener("DOMContentLoaded",a,
+!1),b()):document.attachEvent&&"complete"===document.readyState&&(document.detachEvent("onreadystatechange",a),b())}catch(d){}}function b(){for(var a;a=d.shift();)a()}var d=[];return function(b){d.push(b);"complete"===document.readyState&&setTimeout(a,1);if(1==d.length)if(document.addEventListener)document.addEventListener("DOMContentLoaded",a,!1),window.addEventListener("load",a,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",a);window.attachEvent("onload",a);b=!1;try{b=
+!window.frameElement}catch(e){}if(document.documentElement.doScroll&&b){var c=function(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(c,1);return}a()};c()}}}}()},c=window.CKEDITOR_GETURL;if(c){var a=b.url;b.url=function(f){return c.call(b,f)||a.call(b,f)}}return b}());
+CKEDITOR.event||(CKEDITOR.event=function(){},CKEDITOR.event.implementOn=function(b){var c=CKEDITOR.event.prototype,a;for(a in c)b[a]==void 0&&(b[a]=c[a])},CKEDITOR.event.prototype=function(){function b(f){var b=c(this);return b[f]||(b[f]=new a(f))}var c=function(a){a=a.getPrivate&&a.getPrivate()||a._||(a._={});return a.events||(a.events={})},a=function(a){this.name=a;this.listeners=[]};a.prototype={getListenerIndex:function(a){for(var b=0,d=this.listeners;b<d.length;b++)if(d[b].fn==a)return b;return-1}};
+return{define:function(a,e){var d=b.call(this,a);CKEDITOR.tools.extend(d,e,true)},on:function(a,e,d,c,k){function h(b,l,o,n){b={name:a,sender:this,editor:b,data:l,listenerData:c,stop:o,cancel:n,removeListener:m};return e.call(d,b)===false?false:b.data}function m(){o.removeListener(a,e)}var n=b.call(this,a);if(n.getListenerIndex(e)<0){n=n.listeners;d||(d=this);isNaN(k)&&(k=10);var o=this;h.fn=e;h.priority=k;for(var l=n.length-1;l>=0;l--)if(n[l].priority<=k){n.splice(l+1,0,h);return{removeListener:m}}n.unshift(h)}return{removeListener:m}},
+once:function(){var a=arguments[1];arguments[1]=function(b){b.removeListener();return a.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var a=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return a},fire:function(){var a=0,b=function(){a=1},d=0,g=function(){d=1};return function(k,h,m){var n=c(this)[k],k=a,o=d;a=d=0;if(n){var l=n.listeners;if(l.length)for(var l=l.slice(0),j,q=0;q<l.length;q++){if(n.errorProof)try{j=l[q].call(this,
+m,h,b,g)}catch(y){}else j=l[q].call(this,m,h,b,g);j===false?d=1:typeof j!="undefined"&&(h=j);if(a||d)break}}h=d?false:typeof h=="undefined"?true:h;a=k;d=o;return h}}(),fireOnce:function(a,b,d){b=this.fire(a,b,d);delete c(this)[a];return b},removeListener:function(a,b){var d=c(this)[a];if(d){var g=d.getListenerIndex(b);g>=0&&d.listeners.splice(g,1)}},removeAllListeners:function(){var a=c(this),b;for(b in a)delete a[b]},hasListeners:function(a){return(a=c(this)[a])&&a.listeners.length>0}}}());
+CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(b,c){b in{instanceReady:1,loaded:1}&&(this[b]=true);return CKEDITOR.event.prototype.fire.call(this,b,c,this)},CKEDITOR.editor.prototype.fireOnce=function(b,c){b in{instanceReady:1,loaded:1}&&(this[b]=true);return CKEDITOR.event.prototype.fireOnce.call(this,b,c,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
+CKEDITOR.env||(CKEDITOR.env=function(){var b=navigator.userAgent.toLowerCase(),c=window.opera,a={ie:eval("/*@cc_on!@*/false"),opera:!!c&&c.version,webkit:b.indexOf(" applewebkit/")>-1,air:b.indexOf(" adobeair/")>-1,mac:b.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat",mobile:b.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(b),isCustomDomain:function(){if(!this.ie)return false;var a=document.domain,b=window.location.hostname;return a!=b&&a!="["+b+"]"},secure:location.protocol==
+"https:"};a.gecko=navigator.product=="Gecko"&&!a.webkit&&!a.opera;if(a.webkit)b.indexOf("chrome")>-1?a.chrome=true:a.safari=true;var f=0;if(a.ie){f=a.quirks||!document.documentMode?parseFloat(b.match(/msie (\d+)/)[1]):document.documentMode;a.ie9Compat=f==9;a.ie8Compat=f==8;a.ie7Compat=f==7;a.ie6Compat=f<7||a.quirks}if(a.gecko){var e=b.match(/rv:([\d\.]+)/);if(e){e=e[1].split(".");f=e[0]*1E4+(e[1]||0)*100+(e[2]||0)*1}}a.opera&&(f=parseFloat(c.version()));a.air&&(f=parseFloat(b.match(/ adobeair\/(\d+)/)[1]));
+a.webkit&&(f=parseFloat(b.match(/ applewebkit\/(\d+)/)[1]));a.version=f;a.isCompatible=a.iOS&&f>=534||!a.mobile&&(a.ie&&f>6||a.gecko&&f>=10801||a.opera&&f>=9.5||a.air&&f>=1||a.webkit&&f>=522||false);a.cssClass="cke_browser_"+(a.ie?"ie":a.gecko?"gecko":a.opera?"opera":a.webkit?"webkit":"unknown");if(a.quirks)a.cssClass=a.cssClass+" cke_browser_quirks";if(a.ie){a.cssClass=a.cssClass+(" cke_browser_ie"+(a.quirks||a.version<7?"6":a.version));if(a.quirks)a.cssClass=a.cssClass+" cke_browser_iequirks"}if(a.gecko)if(f<
+10900)a.cssClass=a.cssClass+" cke_browser_gecko18";else if(f<=11E3)a.cssClass=a.cssClass+" cke_browser_gecko19";if(a.air)a.cssClass=a.cssClass+" cke_browser_air";return a}());
+"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var b=document.createElement("script");b.type="text/javascript";b.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(b)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(b){(this._.pending||(this._.pending=[])).push(b)};(function(){CKEDITOR.domReady(function(){var b=
+CKEDITOR.loadFullCore,c=CKEDITOR.loadFullCoreTimeout;if(b){CKEDITOR.status="basic_ready";b&&b._load?b():c&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},c*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={};
+(function(){var b=[],c=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.opera?"-o-":CKEDITOR.env.ie?"-ms-":"";CKEDITOR.on("reset",function(){b=[]});CKEDITOR.tools={arrayCompare:function(a,b){if(!a&&!b)return true;if(!a||!b||a.length!=b.length)return false;for(var e=0;e<a.length;e++)if(a[e]!=b[e])return false;return true},clone:function(a){var b;if(a&&a instanceof Array){b=[];for(var e=0;e<a.length;e++)b[e]=this.clone(a[e]);return b}if(a===null||typeof a!="object"||a instanceof
+String||a instanceof Number||a instanceof Boolean||a instanceof Date||a instanceof RegExp)return a;b=new a.constructor;for(e in a)b[e]=this.clone(a[e]);return b},capitalize:function(a){return a.charAt(0).toUpperCase()+a.substring(1).toLowerCase()},extend:function(a){var b=arguments.length,e,d;if(typeof(e=arguments[b-1])=="boolean")b--;else if(typeof(e=arguments[b-2])=="boolean"){d=arguments[b-1];b=b-2}for(var c=1;c<b;c++){var k=arguments[c],h;for(h in k)if(e===true||a[h]==void 0)if(!d||h in d)a[h]=
+k[h]}return a},prototypedCopy:function(a){var b=function(){};b.prototype=a;return new b},isArray:function(a){return!!a&&a instanceof Array},isEmpty:function(a){for(var b in a)if(a.hasOwnProperty(b))return false;return true},cssVendorPrefix:function(a,b,e){if(e)return c+a+":"+b+";"+a+":"+b;e={};e[a]=b;e[c+a]=b;return e},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b=typeof a.cssFloat!="undefined"?"cssFloat":typeof a.styleFloat!="undefined"?"styleFloat":"float";return function(a){return a==
+"float"?b:a.replace(/-./g,function(a){return a.substr(1).toUpperCase()})}}(),buildStyleHtml:function(a){for(var a=[].concat(a),b,e=[],c=0;c<a.length;c++)if(b=a[c])/@import|[{}]/.test(b)?e.push("<style>"+b+"</style>"):e.push('<link type="text/css" rel=stylesheet href="'+b+'">');return e.join("")},htmlEncode:function(a){return(""+a).replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<")},htmlEncodeAttr:function(a){return a.replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")},getNextNumber:function(){var a=
+0;return function(){return++a}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(a,b){var e=b(a);e.prototype=a.prototype;return e},setTimeout:function(a,b,e,c,g){g||(g=window);e||(e=g);return g.setTimeout(function(){c?a.apply(e,[].concat(c)):a.apply(e)},b||0)},trim:function(){var a=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(b){return b.replace(a,"")}}(),ltrim:function(){var a=/^[ \t\n\r]+/g;return function(b){return b.replace(a,"")}}(),rtrim:function(){var a=/[ \t\n\r]+$/g;
+return function(b){return b.replace(a,"")}}(),indexOf:function(a,b){if(typeof b=="function")for(var c=0,d=a.length;c<d;c++){if(b(a[c]))return c}else{if(a.indexOf)return a.indexOf(b);c=0;for(d=a.length;c<d;c++)if(a[c]===b)return c}return-1},search:function(a,b){var c=CKEDITOR.tools.indexOf(a,b);return c>=0?a[c]:null},bind:function(a,b){return function(){return a.apply(b,arguments)}},createClass:function(a){var b=a.$,c=a.base,d=a.privates||a._,g=a.proto,a=a.statics;!b&&(b=function(){c&&this.base.apply(this,
+arguments)});if(d)var k=b,b=function(){var a=this._||(this._={}),b;for(b in d){var f=d[b];a[b]=typeof f=="function"?CKEDITOR.tools.bind(f,this):f}k.apply(this,arguments)};if(c){b.prototype=this.prototypedCopy(c.prototype);b.prototype.constructor=b;b.base=c;b.baseProto=c.prototype;b.prototype.base=function(){this.base=c.prototype.base;c.apply(this,arguments);this.base=arguments.callee}}g&&this.extend(b.prototype,g,true);a&&this.extend(b,a,true);return b},addFunction:function(a,f){return b.push(function(){return a.apply(f||
+this,arguments)})-1},removeFunction:function(a){b[a]=null},callFunction:function(a){var f=b[a];return f&&f.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,b;return function(c){b=CKEDITOR.tools.trim(c+"")+"px";return a.test(b)?b:c||""}}(),convertToPx:function(){var a;return function(b){if(!a){a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"></div>',CKEDITOR.document);
+CKEDITOR.document.getBody().append(a)}if(!/%$/.test(b)){a.setStyle("width",b);return a.$.clientWidth}return b}}(),repeat:function(a,b){return Array(b+1).join(a)},tryThese:function(){for(var a,b=0,c=arguments.length;b<c;b++){var d=arguments[b];try{a=d();break}catch(g){}}return a},genKey:function(){return Array.prototype.slice.call(arguments).join("-")},defer:function(a){return function(){var b=arguments,c=this;window.setTimeout(function(){a.apply(c,b)},0)}},normalizeCssText:function(a,b){var c=[],
+d,g=CKEDITOR.tools.parseCssText(a,true,b);for(d in g)c.push(d+":"+g[d]);c.sort();return c.length?c.join(";")+";":""},convertRgbToHex:function(a){return a.replace(/(?:rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\))/gi,function(a,b,c,g){a=[b,c,g];for(b=0;b<3;b++)a[b]=("0"+parseInt(a[b],10).toString(16)).slice(-2);return"#"+a.join("")})},parseCssText:function(a,b,c){var d={};if(c){c=new CKEDITOR.dom.element("span");c.setAttribute("style",a);a=CKEDITOR.tools.convertRgbToHex(c.getAttribute("style")||"")}if(!a||
+a==";")return d;a.replace(/"/g,'"').replace(/\s*([^:;\s]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,c,e){if(b){c=c.toLowerCase();c=="font-family"&&(e=e.toLowerCase().replace(/["']/g,"").replace(/\s*,\s*/g,","));e=CKEDITOR.tools.trim(e)}d[c]=e});return d}}})();
+CKEDITOR.dtd=function(){var b=CKEDITOR.tools.extend,c=function(a,b){for(var f=CKEDITOR.tools.clone(a),l=1;l<arguments.length;l++){var b=arguments[l],j;for(j in b)delete f[j]}return f},a={},f={},e={address:1,article:1,aside:1,blockquote:1,details:1,div:1,dl:1,fieldset:1,figure:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,hr:1,menu:1,nav:1,ol:1,p:1,pre:1,section:1,table:1,ul:1},d={command:1,link:1,meta:1,noscript:1,script:1,style:1},g={},k={"#":1},h={center:1,dir:1,noframes:1};
+b(a,{a:1,abbr:1,area:1,audio:1,b:1,bdi:1,bdo:1,br:1,button:1,canvas:1,cite:1,code:1,command:1,datalist:1,del:1,dfn:1,em:1,embed:1,i:1,iframe:1,img:1,input:1,ins:1,kbd:1,keygen:1,label:1,map:1,mark:1,meter:1,noscript:1,object:1,output:1,progress:1,q:1,ruby:1,s:1,samp:1,script:1,select:1,small:1,span:1,strong:1,sub:1,sup:1,textarea:1,time:1,u:1,"var":1,video:1,wbr:1},k,{acronym:1,applet:1,basefont:1,big:1,font:1,isindex:1,strike:1,style:1,tt:1});b(f,e,a,h);c={a:c(a,{a:1,button:1}),abbr:a,address:f,
+area:g,article:b({style:1},f),aside:b({style:1},f),audio:b({source:1,track:1},f),b:a,base:g,bdi:a,bdo:a,blockquote:f,body:f,br:g,button:c(a,{a:1,button:1}),canvas:a,caption:f,cite:a,code:a,col:g,colgroup:{col:1},command:g,datalist:b({option:1},a),dd:f,del:a,details:b({summary:1},f),dfn:a,div:b({style:1},f),dl:{dt:1,dd:1},dt:f,em:a,embed:g,fieldset:b({legend:1},f),figcaption:f,figure:b({figcaption:1},f),footer:f,form:f,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,head:b({title:1,base:1},d),header:f,hgroup:{h1:1,
+h2:1,h3:1,h4:1,h5:1,h6:1},hr:g,html:b({head:1,body:1},f,d),i:a,iframe:k,img:g,input:g,ins:a,kbd:a,keygen:g,label:a,legend:a,li:f,link:g,map:f,mark:a,menu:b({li:1},f),meta:g,meter:c(a,{meter:1}),nav:f,noscript:b({link:1,meta:1,style:1},a),object:b({param:1},a),ol:{li:1},optgroup:{option:1},option:k,output:a,p:a,param:g,pre:a,progress:c(a,{progress:1}),q:a,rp:a,rt:a,ruby:b({rp:1,rt:1},a),s:a,samp:a,script:k,section:b({style:1},f),select:{optgroup:1,option:1},small:a,source:g,span:a,strong:a,style:k,
+sub:a,summary:a,sup:a,table:{caption:1,colgroup:1,thead:1,tfoot:1,tbody:1,tr:1},tbody:{tr:1},td:f,textarea:k,tfoot:{tr:1},th:f,thead:{tr:1},time:c(a,{time:1}),title:k,tr:{th:1,td:1},track:g,u:a,ul:{li:1},"var":a,video:b({source:1,track:1},f),wbr:g,acronym:a,applet:b({param:1},f),basefont:g,big:a,center:f,dialog:g,dir:{li:1},font:a,isindex:g,noframes:f,strike:a,tt:a};b(c,{$block:b({audio:1,dd:1,dt:1,li:1,video:1},e,h),$blockLimit:{article:1,aside:1,audio:1,body:1,caption:1,details:1,dir:1,div:1,dl:1,
+fieldset:1,figure:1,footer:1,form:1,header:1,hgroup:1,menu:1,nav:1,ol:1,section:1,table:1,td:1,th:1,tr:1,ul:1,video:1},$cdata:{script:1,style:1},$editable:{address:1,article:1,aside:1,blockquote:1,body:1,details:1,div:1,fieldset:1,footer:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,header:1,hgroup:1,nav:1,p:1,pre:1,section:1},$empty:{area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1},$inline:a,$list:{dl:1,ol:1,
+ul:1},$listItem:{dd:1,dt:1,li:1},$nonBodyContent:b({body:1,head:1,html:1},c.head),$nonEditable:{applet:1,audio:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,param:1,script:1,textarea:1,video:1},$object:{applet:1,audio:1,button:1,hr:1,iframe:1,img:1,input:1,object:1,select:1,table:1,textarea:1,video:1},$removeEmpty:{abbr:1,acronym:1,b:1,bdi:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,mark:1,meter:1,output:1,q:1,ruby:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,
+sub:1,sup:1,time:1,tt:1,u:1,"var":1},$tabIndex:{a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},$tableContent:{caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},$transparent:{a:1,audio:1,canvas:1,del:1,ins:1,map:1,noscript:1,object:1,video:1},$intermediate:{caption:1,colgroup:1,dd:1,dt:1,figcaption:1,legend:1,li:1,optgroup:1,option:1,rp:1,rt:1,summary:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1}});return c}();CKEDITOR.dom.event=function(b){this.$=b};
+CKEDITOR.dom.event.prototype={getKey:function(){return this.$.keyCode||this.$.which},getKeystroke:function(){var b=this.getKey();if(this.$.ctrlKey||this.$.metaKey)b=b+CKEDITOR.CTRL;this.$.shiftKey&&(b=b+CKEDITOR.SHIFT);this.$.altKey&&(b=b+CKEDITOR.ALT);return b},preventDefault:function(b){var c=this.$;c.preventDefault?c.preventDefault():c.returnValue=false;b&&this.stopPropagation()},stopPropagation:function(){var b=this.$;b.stopPropagation?b.stopPropagation():b.cancelBubble=true},getTarget:function(){var b=
+this.$.target||this.$.srcElement;return b?new CKEDITOR.dom.node(b):null},getPhase:function(){return this.$.eventPhase||2},getPageOffset:function(){var b=this.getTarget().getDocument().$;return{x:this.$.pageX||this.$.clientX+(b.documentElement.scrollLeft||b.body.scrollLeft),y:this.$.pageY||this.$.clientY+(b.documentElement.scrollTop||b.body.scrollTop)}}};CKEDITOR.CTRL=1114112;CKEDITOR.SHIFT=2228224;CKEDITOR.ALT=4456448;CKEDITOR.EVENT_PHASE_CAPTURING=1;CKEDITOR.EVENT_PHASE_AT_TARGET=2;
+CKEDITOR.EVENT_PHASE_BUBBLING=3;CKEDITOR.dom.domObject=function(b){if(b)this.$=b};
+CKEDITOR.dom.domObject.prototype=function(){var b=function(b,a){return function(f){typeof CKEDITOR!="undefined"&&b.fire(a,new CKEDITOR.dom.event(f))}};return{getPrivate:function(){var b;if(!(b=this.getCustomData("_")))this.setCustomData("_",b={});return b},on:function(c){var a=this.getCustomData("_cke_nativeListeners");if(!a){a={};this.setCustomData("_cke_nativeListeners",a)}if(!a[c]){a=a[c]=b(this,c);this.$.addEventListener?this.$.addEventListener(c,a,!!CKEDITOR.event.useCapture):this.$.attachEvent&&
+this.$.attachEvent("on"+c,a)}return CKEDITOR.event.prototype.on.apply(this,arguments)},removeListener:function(b){CKEDITOR.event.prototype.removeListener.apply(this,arguments);if(!this.hasListeners(b)){var a=this.getCustomData("_cke_nativeListeners"),f=a&&a[b];if(f){this.$.removeEventListener?this.$.removeEventListener(b,f,false):this.$.detachEvent&&this.$.detachEvent("on"+b,f);delete a[b]}}},removeAllListeners:function(){var b=this.getCustomData("_cke_nativeListeners"),a;for(a in b){var f=b[a];this.$.detachEvent?
+this.$.detachEvent("on"+a,f):this.$.removeEventListener&&this.$.removeEventListener(a,f,false);delete b[a]}}}}();
+(function(b){var c={};CKEDITOR.on("reset",function(){c={}});b.equals=function(a){try{return a&&a.$===this.$}catch(b){return false}};b.setCustomData=function(a,b){var e=this.getUniqueId();(c[e]||(c[e]={}))[a]=b;return this};b.getCustomData=function(a){var b=this.$["data-cke-expando"];return(b=b&&c[b])&&a in b?b[a]:null};b.removeCustomData=function(a){var b=this.$["data-cke-expando"],b=b&&c[b],e,d;if(b){e=b[a];d=a in b;delete b[a]}return d?e:null};b.clearCustomData=function(){this.removeAllListeners();
+var a=this.$["data-cke-expando"];a&&delete c[a]};b.getUniqueId=function(){return this.$["data-cke-expando"]||(this.$["data-cke-expando"]=CKEDITOR.tools.getNextNumber())};CKEDITOR.event.implementOn(b)})(CKEDITOR.dom.domObject.prototype);
+CKEDITOR.dom.node=function(b){return b?new CKEDITOR.dom[b.nodeType==CKEDITOR.NODE_DOCUMENT?"document":b.nodeType==CKEDITOR.NODE_ELEMENT?"element":b.nodeType==CKEDITOR.NODE_TEXT?"text":b.nodeType==CKEDITOR.NODE_COMMENT?"comment":b.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT?"documentFragment":"domObject"](b):this};CKEDITOR.dom.node.prototype=new CKEDITOR.dom.domObject;CKEDITOR.NODE_ELEMENT=1;CKEDITOR.NODE_DOCUMENT=9;CKEDITOR.NODE_TEXT=3;CKEDITOR.NODE_COMMENT=8;CKEDITOR.NODE_DOCUMENT_FRAGMENT=11;
+CKEDITOR.POSITION_IDENTICAL=0;CKEDITOR.POSITION_DISCONNECTED=1;CKEDITOR.POSITION_FOLLOWING=2;CKEDITOR.POSITION_PRECEDING=4;CKEDITOR.POSITION_IS_CONTAINED=8;CKEDITOR.POSITION_CONTAINS=16;
+CKEDITOR.tools.extend(CKEDITOR.dom.node.prototype,{appendTo:function(b,c){b.append(this,c);return b},clone:function(b,c){var a=this.$.cloneNode(b),f=function(a){a["data-cke-expando"]&&(a["data-cke-expando"]=false);if(a.nodeType==CKEDITOR.NODE_ELEMENT){c||a.removeAttribute("id",false);if(b)for(var a=a.childNodes,d=0;d<a.length;d++)f(a[d])}};f(a);return new CKEDITOR.dom.node(a)},hasPrevious:function(){return!!this.$.previousSibling},hasNext:function(){return!!this.$.nextSibling},insertAfter:function(b){b.$.parentNode.insertBefore(this.$,
+b.$.nextSibling);return b},insertBefore:function(b){b.$.parentNode.insertBefore(this.$,b.$);return b},insertBeforeMe:function(b){this.$.parentNode.insertBefore(b.$,this.$);return b},getAddress:function(b){for(var c=[],a=this.getDocument().$.documentElement,f=this.$;f&&f!=a;){var e=f.parentNode;e&&c.unshift(this.getIndex.call({$:f},b));f=e}return c},getDocument:function(){return new CKEDITOR.dom.document(this.$.ownerDocument||this.$.parentNode.ownerDocument)},getIndex:function(b){var c=this.$,a=-1,
+f;if(!this.$.parentNode)return a;do if(!b||!(c!=this.$&&c.nodeType==CKEDITOR.NODE_TEXT&&(f||!c.nodeValue))){a++;f=c.nodeType==CKEDITOR.NODE_TEXT}while(c=c.previousSibling);return a},getNextSourceNode:function(b,c,a){if(a&&!a.call)var f=a,a=function(a){return!a.equals(f)};var b=!b&&this.getFirst&&this.getFirst(),e;if(!b){if(this.type==CKEDITOR.NODE_ELEMENT&&a&&a(this,true)===false)return null;b=this.getNext()}for(;!b&&(e=(e||this).getParent());){if(a&&a(e,true)===false)return null;b=e.getNext()}return!b||
+a&&a(b)===false?null:c&&c!=b.type?b.getNextSourceNode(false,c,a):b},getPreviousSourceNode:function(b,c,a){if(a&&!a.call)var f=a,a=function(a){return!a.equals(f)};var b=!b&&this.getLast&&this.getLast(),e;if(!b){if(this.type==CKEDITOR.NODE_ELEMENT&&a&&a(this,true)===false)return null;b=this.getPrevious()}for(;!b&&(e=(e||this).getParent());){if(a&&a(e,true)===false)return null;b=e.getPrevious()}return!b||a&&a(b)===false?null:c&&b.type!=c?b.getPreviousSourceNode(false,c,a):b},getPrevious:function(b){var c=
+this.$,a;do a=(c=c.previousSibling)&&c.nodeType!=10&&new CKEDITOR.dom.node(c);while(a&&b&&!b(a));return a},getNext:function(b){var c=this.$,a;do a=(c=c.nextSibling)&&new CKEDITOR.dom.node(c);while(a&&b&&!b(a));return a},getParent:function(b){var c=this.$.parentNode;return c&&(c.nodeType==CKEDITOR.NODE_ELEMENT||b&&c.nodeType==CKEDITOR.NODE_DOCUMENT_FRAGMENT)?new CKEDITOR.dom.node(c):null},getParents:function(b){var c=this,a=[];do a[b?"push":"unshift"](c);while(c=c.getParent());return a},getCommonAncestor:function(b){if(b.equals(this))return this;
+if(b.contains&&b.contains(this))return b;var c=this.contains?this:this.getParent();do if(c.contains(b))return c;while(c=c.getParent());return null},getPosition:function(b){var c=this.$,a=b.$;if(c.compareDocumentPosition)return c.compareDocumentPosition(a);if(c==a)return CKEDITOR.POSITION_IDENTICAL;if(this.type==CKEDITOR.NODE_ELEMENT&&b.type==CKEDITOR.NODE_ELEMENT){if(c.contains){if(c.contains(a))return CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING;if(a.contains(c))return CKEDITOR.POSITION_IS_CONTAINED+
+CKEDITOR.POSITION_FOLLOWING}if("sourceIndex"in c)return c.sourceIndex<0||a.sourceIndex<0?CKEDITOR.POSITION_DISCONNECTED:c.sourceIndex<a.sourceIndex?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING}for(var c=this.getAddress(),b=b.getAddress(),a=Math.min(c.length,b.length),f=0;f<=a-1;f++)if(c[f]!=b[f]){if(f<a)return c[f]<b[f]?CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_FOLLOWING;break}return c.length<b.length?CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_PRECEDING:CKEDITOR.POSITION_IS_CONTAINED+
+CKEDITOR.POSITION_FOLLOWING},getAscendant:function(b,c){var a=this.$,f;if(!c)a=a.parentNode;for(;a;){if(a.nodeName&&(f=a.nodeName.toLowerCase(),typeof b=="string"?f==b:f in b))return new CKEDITOR.dom.node(a);a=a.parentNode}return null},hasAscendant:function(b,c){var a=this.$;if(!c)a=a.parentNode;for(;a;){if(a.nodeName&&a.nodeName.toLowerCase()==b)return true;a=a.parentNode}return false},move:function(b,c){b.append(this.remove(),c)},remove:function(b){var c=this.$,a=c.parentNode;if(a){if(b)for(;b=
+c.firstChild;)a.insertBefore(c.removeChild(b),c);a.removeChild(c)}return this},replace:function(b){this.insertBefore(b);b.remove()},trim:function(){this.ltrim();this.rtrim()},ltrim:function(){for(var b;this.getFirst&&(b=this.getFirst());){if(b.type==CKEDITOR.NODE_TEXT){var c=CKEDITOR.tools.ltrim(b.getText()),a=b.getLength();if(c){if(c.length<a){b.split(a-c.length);this.$.removeChild(this.$.firstChild)}}else{b.remove();continue}}break}},rtrim:function(){for(var b;this.getLast&&(b=this.getLast());){if(b.type==
+CKEDITOR.NODE_TEXT){var c=CKEDITOR.tools.rtrim(b.getText()),a=b.getLength();if(c){if(c.length<a){b.split(c.length);this.$.lastChild.parentNode.removeChild(this.$.lastChild)}}else{b.remove();continue}}break}if(!CKEDITOR.env.ie&&!CKEDITOR.env.opera)(b=this.$.lastChild)&&(b.type==1&&b.nodeName.toLowerCase()=="br")&&b.parentNode.removeChild(b)},isReadOnly:function(){var b=this;this.type!=CKEDITOR.NODE_ELEMENT&&(b=this.getParent());if(b&&typeof b.$.isContentEditable!="undefined")return!(b.$.isContentEditable||
+b.data("cke-editable"));for(;b;){if(b.data("cke-editable"))break;if(b.getAttribute("contentEditable")=="false")return true;if(b.getAttribute("contentEditable")=="true")break;b=b.getParent()}return!b}});CKEDITOR.dom.window=function(b){CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.window.prototype=new CKEDITOR.dom.domObject;
+CKEDITOR.tools.extend(CKEDITOR.dom.window.prototype,{focus:function(){this.$.focus()},getViewPaneSize:function(){var b=this.$.document,c=b.compatMode=="CSS1Compat";return{width:(c?b.documentElement.clientWidth:b.body.clientWidth)||0,height:(c?b.documentElement.clientHeight:b.body.clientHeight)||0}},getScrollPosition:function(){var b=this.$;if("pageXOffset"in b)return{x:b.pageXOffset||0,y:b.pageYOffset||0};b=b.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||
+b.body.scrollTop||0}},getFrame:function(){var b=this.$.frameElement;return b?new CKEDITOR.dom.element.get(b):null}});CKEDITOR.dom.document=function(b){CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.document.prototype=new CKEDITOR.dom.domObject;
+CKEDITOR.tools.extend(CKEDITOR.dom.document.prototype,{type:CKEDITOR.NODE_DOCUMENT,appendStyleSheet:function(b){if(this.$.createStyleSheet)this.$.createStyleSheet(b);else{var c=new CKEDITOR.dom.element("link");c.setAttributes({rel:"stylesheet",type:"text/css",href:b});this.getHead().append(c)}},appendStyleText:function(b){if(this.$.createStyleSheet){var c=this.$.createStyleSheet("");c.cssText=b}else{var a=new CKEDITOR.dom.element("style",this);a.append(new CKEDITOR.dom.text(b,this));this.getHead().append(a)}return c||
+a.$.sheet},createElement:function(b,c){var a=new CKEDITOR.dom.element(b,this);if(c){c.attributes&&a.setAttributes(c.attributes);c.styles&&a.setStyles(c.styles)}return a},createText:function(b){return new CKEDITOR.dom.text(b,this)},focus:function(){this.getWindow().focus()},getActive:function(){return new CKEDITOR.dom.element(this.$.activeElement)},getById:function(b){return(b=this.$.getElementById(b))?new CKEDITOR.dom.element(b):null},getByAddress:function(b,c){for(var a=this.$.documentElement,f=
+0;a&&f<b.length;f++){var e=b[f];if(c)for(var d=-1,g=0;g<a.childNodes.length;g++){var k=a.childNodes[g];if(!(c===true&&k.nodeType==3&&k.previousSibling&&k.previousSibling.nodeType==3)){d++;if(d==e){a=k;break}}}else a=a.childNodes[e]}return a?new CKEDITOR.dom.node(a):null},getElementsByTag:function(b,c){if((!CKEDITOR.env.ie||document.documentMode>8)&&c)b=c+":"+b;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(b))},getHead:function(){var b=this.$.getElementsByTagName("head")[0];return b=
+b?new CKEDITOR.dom.element(b):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),true)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){var b=new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView);return(this.getWindow=function(){return b})()},write:function(b){this.$.open("text/html","replace");CKEDITOR.env.isCustomDomain()&&(this.$.domain=document.domain);
+this.$.write(b);this.$.close()}});CKEDITOR.dom.nodeList=function(b){this.$=b};CKEDITOR.dom.nodeList.prototype={count:function(){return this.$.length},getItem:function(b){if(b<0||b>=this.$.length)return null;return(b=this.$[b])?new CKEDITOR.dom.node(b):null}};CKEDITOR.dom.element=function(b,c){typeof b=="string"&&(b=(c?c.$:document).createElement(b));CKEDITOR.dom.domObject.call(this,b)};
+CKEDITOR.dom.element.get=function(b){return(b=typeof b=="string"?document.getElementById(b)||document.getElementsByName(b)[0]:b)&&(b.$?b:new CKEDITOR.dom.element(b))};CKEDITOR.dom.element.prototype=new CKEDITOR.dom.node;CKEDITOR.dom.element.createFromHtml=function(b,c){var a=new CKEDITOR.dom.element("div",c);a.setHtml(b);return a.getFirst().remove()};
+CKEDITOR.dom.element.setMarker=function(b,c,a,f){var e=c.getCustomData("list_marker_id")||c.setCustomData("list_marker_id",CKEDITOR.tools.getNextNumber()).getCustomData("list_marker_id"),d=c.getCustomData("list_marker_names")||c.setCustomData("list_marker_names",{}).getCustomData("list_marker_names");b[e]=c;d[a]=1;return c.setCustomData(a,f)};CKEDITOR.dom.element.clearAllMarkers=function(b){for(var c in b)CKEDITOR.dom.element.clearMarkers(b,b[c],1)};
+CKEDITOR.dom.element.clearMarkers=function(b,c,a){var f=c.getCustomData("list_marker_names"),e=c.getCustomData("list_marker_id"),d;for(d in f)c.removeCustomData(d);c.removeCustomData("list_marker_names");if(a){c.removeCustomData("list_marker_id");delete b[e]}};
+(function(){function b(a){for(var b=0,e=0,d=c[a].length;e<d;e++)b=b+(parseInt(this.getComputedStyle(c[a][e])||0,10)||0);return b}CKEDITOR.tools.extend(CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_ELEMENT,addClass:function(a){var b=this.$.className;b&&(RegExp("(?:^|\\s)"+a+"(?:\\s|$)","").test(b)||(b=b+(" "+a)));this.$.className=b||a},removeClass:function(a){var b=this.getAttribute("class");if(b){a=RegExp("(?:^|\\s+)"+a+"(?=\\s|$)","i");if(a.test(b))(b=b.replace(a,"").replace(/^\s+/,""))?this.setAttribute("class",
+b):this.removeAttribute("class")}return this},hasClass:function(a){return RegExp("(?:^|\\s+)"+a+"(?=\\s|$)","").test(this.getAttribute("class"))},append:function(a,b){typeof a=="string"&&(a=this.getDocument().createElement(a));b?this.$.insertBefore(a.$,this.$.firstChild):this.$.appendChild(a.$);return a},appendHtml:function(a){if(this.$.childNodes.length){var b=new CKEDITOR.dom.element("div",this.getDocument());b.setHtml(a);b.moveChildren(this)}else this.setHtml(a)},appendText:function(a){this.$.text!=
+void 0?this.$.text=this.$.text+a:this.append(new CKEDITOR.dom.text(a))},appendBogus:function(){for(var a=this.getLast();a&&a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.rtrim(a.getText());)a=a.getPrevious();if(!a||!a.is||!a.is("br")){a=CKEDITOR.env.opera?this.getDocument().createText(""):this.getDocument().createElement("br");CKEDITOR.env.gecko&&a.setAttribute("type","_moz");this.append(a)}},breakParent:function(a){var b=new CKEDITOR.dom.range(this.getDocument());b.setStartAfter(this);b.setEndAfter(a);
+a=b.extractContents();b.insertNode(this.remove());a.insertAfterNode(this)},contains:CKEDITOR.env.ie||CKEDITOR.env.webkit?function(a){var b=this.$;return a.type!=CKEDITOR.NODE_ELEMENT?b.contains(a.getParent().$):b!=a.$&&b.contains(a.$)}:function(a){return!!(this.$.compareDocumentPosition(a.$)&16)},focus:function(){function a(){try{this.$.focus()}catch(a){}}return function(b){b?CKEDITOR.tools.setTimeout(a,100,this):a.call(this)}}(),getHtml:function(){var a=this.$.innerHTML;return CKEDITOR.env.ie?a.replace(/<\?[^>]*>/g,
+""):a},getOuterHtml:function(){if(this.$.outerHTML)return this.$.outerHTML.replace(/<\?[^>]*>/,"");var a=this.$.ownerDocument.createElement("div");a.appendChild(this.$.cloneNode(true));return a.innerHTML},getClientRect:function(){var a=CKEDITOR.tools.extend({},this.$.getBoundingClientRect());!a.width&&(a.width=a.right-a.left);!a.height&&(a.height=a.bottom-a.top);return a},setHtml:function(){var a=function(a){return this.$.innerHTML=a};return CKEDITOR.env.ie&&CKEDITOR.env.version<9?function(a){try{return this.$.innerHTML=
+a}catch(b){this.$.innerHTML="";var c=new CKEDITOR.dom.element("body",this.getDocument());c.$.innerHTML=a;for(c=c.getChildren();c.count();)this.append(c.getItem(0));return a}}:a}(),setText:function(a){CKEDITOR.dom.element.prototype.setText=this.$.innerText!=void 0?function(a){return this.$.innerText=a}:function(a){return this.$.textContent=a};return this.setText(a)},getAttribute:function(){var a=function(a){return this.$.getAttribute(a,2)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?
+function(a){switch(a){case "class":a="className";break;case "http-equiv":a="httpEquiv";break;case "name":return this.$.name;case "tabindex":a=this.$.getAttribute(a,2);a!==0&&this.$.tabIndex===0&&(a=null);return a;case "checked":a=this.$.attributes.getNamedItem(a);return(a.specified?a.nodeValue:this.$.checked)?"checked":null;case "hspace":case "value":return this.$[a];case "style":return this.$.style.cssText;case "contenteditable":case "contentEditable":return this.$.attributes.getNamedItem("contentEditable").specified?
+this.$.getAttribute("contentEditable"):null}return this.$.getAttribute(a,2)}:a}(),getChildren:function(){return new CKEDITOR.dom.nodeList(this.$.childNodes)},getComputedStyle:CKEDITOR.env.ie?function(a){return this.$.currentStyle[CKEDITOR.tools.cssStyleToDomStyle(a)]}:function(a){var b=this.getWindow().$.getComputedStyle(this.$,null);return b?b.getPropertyValue(a):""},getDtd:function(){var a=CKEDITOR.dtd[this.getName()];this.getDtd=function(){return a};return a},getElementsByTag:CKEDITOR.dom.document.prototype.getElementsByTag,
+getTabIndex:CKEDITOR.env.ie?function(){var a=this.$.tabIndex;a===0&&(!CKEDITOR.dtd.$tabIndex[this.getName()]&&parseInt(this.getAttribute("tabindex"),10)!==0)&&(a=-1);return a}:CKEDITOR.env.webkit?function(){var a=this.$.tabIndex;if(a==void 0){a=parseInt(this.getAttribute("tabindex"),10);isNaN(a)&&(a=-1)}return a}:function(){return this.$.tabIndex},getText:function(){return this.$.textContent||this.$.innerText||""},getWindow:function(){return this.getDocument().getWindow()},getId:function(){return this.$.id||
+null},getNameAtt:function(){return this.$.name||null},getName:function(){var a=this.$.nodeName.toLowerCase();if(CKEDITOR.env.ie&&!(document.documentMode>8)){var b=this.$.scopeName;b!="HTML"&&(a=b.toLowerCase()+":"+a)}return(this.getName=function(){return a})()},getValue:function(){return this.$.value},getFirst:function(a){var b=this.$.firstChild;(b=b&&new CKEDITOR.dom.node(b))&&(a&&!a(b))&&(b=b.getNext(a));return b},getLast:function(a){var b=this.$.lastChild;(b=b&&new CKEDITOR.dom.node(b))&&(a&&!a(b))&&
+(b=b.getPrevious(a));return b},getStyle:function(a){return this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]},is:function(){var a=this.getName();if(typeof arguments[0]=="object")return!!arguments[0][a];for(var b=0;b<arguments.length;b++)if(arguments[b]==a)return true;return false},isEditable:function(a){var b=this.getName();if(this.isReadOnly()||this.getComputedStyle("display")=="none"||this.getComputedStyle("visibility")=="hidden"||CKEDITOR.dtd.$nonEditable[b]||CKEDITOR.dtd.$empty[b]||this.is("a")&&
+(this.data("cke-saved-name")||this.hasAttribute("name"))&&!this.getChildCount())return false;if(a!==false){a=CKEDITOR.dtd[b]||CKEDITOR.dtd.span;return!(!a||!a["#"])}return true},isIdentical:function(a){var b=this.clone(0,1),a=a.clone(0,1);b.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);a.removeAttributes(["_moz_dirty","data-cke-expando","data-cke-saved-href","data-cke-saved-name"]);if(b.$.isEqualNode){b.$.style.cssText=CKEDITOR.tools.normalizeCssText(b.$.style.cssText);
+a.$.style.cssText=CKEDITOR.tools.normalizeCssText(a.$.style.cssText);return b.$.isEqualNode(a.$)}b=b.getOuterHtml();a=a.getOuterHtml();if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&this.is("a")){var c=this.getParent();if(c.type==CKEDITOR.NODE_ELEMENT){c=c.clone();c.setHtml(b);b=c.getHtml();c.setHtml(a);a=c.getHtml()}}return b==a},isVisible:function(){var a=(this.$.offsetHeight||this.$.offsetWidth)&&this.getComputedStyle("visibility")!="hidden",b,c;if(a&&(CKEDITOR.env.webkit||CKEDITOR.env.opera)){b=
+this.getWindow();if(!b.equals(CKEDITOR.document.getWindow())&&(c=b.$.frameElement))a=(new CKEDITOR.dom.element(c)).isVisible()}return!!a},isEmptyInlineRemoveable:function(){if(!CKEDITOR.dtd.$removeEmpty[this.getName()])return false;for(var a=this.getChildren(),b=0,c=a.count();b<c;b++){var d=a.getItem(b);if(!(d.type==CKEDITOR.NODE_ELEMENT&&d.data("cke-bookmark"))&&(d.type==CKEDITOR.NODE_ELEMENT&&!d.isEmptyInlineRemoveable()||d.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(d.getText())))return false}return true},
+hasAttributes:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(){for(var a=this.$.attributes,b=0;b<a.length;b++){var c=a[b];switch(c.nodeName){case "class":if(this.getAttribute("class"))return true;case "data-cke-expando":continue;default:if(c.specified)return true}}return false}:function(){var a=this.$.attributes,b=a.length,c={"data-cke-expando":1,_moz_dirty:1};return b>0&&(b>2||!c[a[0].nodeName]||b==2&&!c[a[1].nodeName])},hasAttribute:function(){function a(a){a=this.$.attributes.getNamedItem(a);
+return!(!a||!a.specified)}return CKEDITOR.env.ie&&CKEDITOR.env.version<8?function(b){return b=="name"?!!this.$.name:a.call(this,b)}:a}(),hide:function(){this.setStyle("display","none")},moveChildren:function(a,b){var c=this.$,a=a.$;if(c!=a){var d;if(b)for(;d=c.lastChild;)a.insertBefore(c.removeChild(d),a.firstChild);else for(;d=c.firstChild;)a.appendChild(c.removeChild(d))}},mergeSiblings:function(){function a(a,b,c){if(b&&b.type==CKEDITOR.NODE_ELEMENT){for(var g=[];b.data("cke-bookmark")||b.isEmptyInlineRemoveable();){g.push(b);
+b=c?b.getNext():b.getPrevious();if(!b||b.type!=CKEDITOR.NODE_ELEMENT)return}if(a.isIdentical(b)){for(var k=c?a.getLast():a.getFirst();g.length;)g.shift().move(a,!c);b.moveChildren(a,!c);b.remove();k&&k.type==CKEDITOR.NODE_ELEMENT&&k.mergeSiblings()}}}return function(b){if(b===false||CKEDITOR.dtd.$removeEmpty[this.getName()]||this.is("a")){a(this,this.getNext(),true);a(this,this.getPrevious())}}}(),show:function(){this.setStyles({display:"",visibility:""})},setAttribute:function(){var a=function(a,
+b){this.$.setAttribute(a,b);return this};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(b,c){b=="class"?this.$.className=c:b=="style"?this.$.style.cssText=c:b=="tabindex"?this.$.tabIndex=c:b=="checked"?this.$.checked=c:b=="contenteditable"?a.call(this,"contentEditable",c):a.apply(this,arguments);return this}:CKEDITOR.env.ie8Compat&&CKEDITOR.env.secure?function(b,c){if(b=="src"&&c.match(/^http:\/\//))try{a.apply(this,arguments)}catch(d){}else a.apply(this,arguments);
+return this}:a}(),setAttributes:function(a){for(var b in a)this.setAttribute(b,a[b]);return this},setValue:function(a){this.$.value=a;return this},removeAttribute:function(){var a=function(a){this.$.removeAttribute(a)};return CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)?function(a){a=="class"?a="className":a=="tabindex"?a="tabIndex":a=="contenteditable"&&(a="contentEditable");this.$.removeAttribute(a)}:a}(),removeAttributes:function(a){if(CKEDITOR.tools.isArray(a))for(var b=0;b<
+a.length;b++)this.removeAttribute(a[b]);else for(b in a)a.hasOwnProperty(b)&&this.removeAttribute(b)},removeStyle:function(a){var b=this.$.style;if(!b.removeProperty&&(a=="border"||a=="margin"||a=="padding")){var c=["top","left","right","bottom"],d;a=="border"&&(d=["color","style","width"]);for(var b=[],g=0;g<c.length;g++)if(d)for(var k=0;k<d.length;k++)b.push([a,c[g],d[k]].join("-"));else b.push([a,c[g]].join("-"));for(a=0;a<b.length;a++)this.removeStyle(b[a])}else{b.removeProperty?b.removeProperty(a):
+b.removeAttribute(CKEDITOR.tools.cssStyleToDomStyle(a));this.$.style.cssText||this.removeAttribute("style")}},setStyle:function(a,b){this.$.style[CKEDITOR.tools.cssStyleToDomStyle(a)]=b;return this},setStyles:function(a){for(var b in a)this.setStyle(b,a[b]);return this},setOpacity:function(a){if(CKEDITOR.env.ie&&CKEDITOR.env.version<9){a=Math.round(a*100);this.setStyle("filter",a>=100?"":"progid:DXImageTransform.Microsoft.Alpha(opacity="+a+")")}else this.setStyle("opacity",a)},unselectable:function(){this.setStyles(CKEDITOR.tools.cssVendorPrefix("user-select",
+"none"));if(CKEDITOR.env.ie||CKEDITOR.env.opera){this.setAttribute("unselectable","on");for(var a,b=this.getElementsByTag("*"),c=0,d=b.count();c<d;c++){a=b.getItem(c);a.setAttribute("unselectable","on")}}},getPositionedAncestor:function(){for(var a=this;a.getName()!="html";){if(a.getComputedStyle("position")!="static")return a;a=a.getParent()}return null},getDocumentPosition:function(a){var b=0,c=0,d=this.getDocument(),g=d.getBody(),k=d.$.compatMode=="BackCompat";if(document.documentElement.getBoundingClientRect){var h=
+this.$.getBoundingClientRect(),m=d.$.documentElement,n=m.clientTop||g.$.clientTop||0,o=m.clientLeft||g.$.clientLeft||0,l=true;if(CKEDITOR.env.ie){l=d.getDocumentElement().contains(this);d=d.getBody().contains(this);l=k&&d||!k&&l}if(l){b=h.left+(!k&&m.scrollLeft||g.$.scrollLeft);b=b-o;c=h.top+(!k&&m.scrollTop||g.$.scrollTop);c=c-n}}else{g=this;for(d=null;g&&!(g.getName()=="body"||g.getName()=="html");){b=b+(g.$.offsetLeft-g.$.scrollLeft);c=c+(g.$.offsetTop-g.$.scrollTop);if(!g.equals(this)){b=b+(g.$.clientLeft||
+0);c=c+(g.$.clientTop||0)}for(;d&&!d.equals(g);){b=b-d.$.scrollLeft;c=c-d.$.scrollTop;d=d.getParent()}d=g;g=(h=g.$.offsetParent)?new CKEDITOR.dom.element(h):null}}if(a){g=this.getWindow();d=a.getWindow();if(!g.equals(d)&&g.$.frameElement){a=(new CKEDITOR.dom.element(g.$.frameElement)).getDocumentPosition(a);b=b+a.x;c=c+a.y}}if(!document.documentElement.getBoundingClientRect&&CKEDITOR.env.gecko&&!k){b=b+(this.$.clientLeft?1:0);c=c+(this.$.clientTop?1:0)}return{x:b,y:c}},scrollIntoView:function(a){var b=
+this.getParent();if(b){do{(b.$.clientWidth&&b.$.clientWidth<b.$.scrollWidth||b.$.clientHeight&&b.$.clientHeight<b.$.scrollHeight)&&!b.is("body")&&this.scrollIntoParent(b,a,1);if(b.is("html")){var c=b.getWindow();try{var d=c.$.frameElement;d&&(b=new CKEDITOR.dom.element(d))}catch(g){}}}while(b=b.getParent())}},scrollIntoParent:function(a,b,c){var d,g,k,h;function m(b,l){if(/body|html/.test(a.getName()))a.getWindow().$.scrollBy(b,l);else{a.$.scrollLeft=a.$.scrollLeft+b;a.$.scrollTop=a.$.scrollTop+l}}
+function n(a,b){var o={x:0,y:0};if(!a.is(l?"body":"html")){var j=a.$.getBoundingClientRect();o.x=j.left;o.y=j.top}j=a.getWindow();if(!j.equals(b)){j=n(CKEDITOR.dom.element.get(j.$.frameElement),b);o.x=o.x+j.x;o.y=o.y+j.y}return o}function o(a,b){return parseInt(a.getComputedStyle("margin-"+b)||0,10)||0}!a&&(a=this.getWindow());k=a.getDocument();var l=k.$.compatMode=="BackCompat";a instanceof CKEDITOR.dom.window&&(a=l?k.getBody():k.getDocumentElement());k=a.getWindow();g=n(this,k);var j=n(a,k),q=this.$.offsetHeight;
+d=this.$.offsetWidth;var y=a.$.clientHeight,z=a.$.clientWidth;k=g.x-o(this,"left")-j.x||0;h=g.y-o(this,"top")-j.y||0;d=g.x+d+o(this,"right")-(j.x+z)||0;g=g.y+q+o(this,"bottom")-(j.y+y)||0;if(h<0||g>0)m(0,b===true?h:b===false?g:h<0?h:g);if(c&&(k<0||d>0))m(k<0?k:d,0)},setState:function(a,b,c){b=b||"cke";switch(a){case CKEDITOR.TRISTATE_ON:this.addClass(b+"_on");this.removeClass(b+"_off");this.removeClass(b+"_disabled");c&&this.setAttribute("aria-pressed",true);c&&this.removeAttribute("aria-disabled");
+break;case CKEDITOR.TRISTATE_DISABLED:this.addClass(b+"_disabled");this.removeClass(b+"_off");this.removeClass(b+"_on");c&&this.setAttribute("aria-disabled",true);c&&this.removeAttribute("aria-pressed");break;default:this.addClass(b+"_off");this.removeClass(b+"_on");this.removeClass(b+"_disabled");c&&this.removeAttribute("aria-pressed");c&&this.removeAttribute("aria-disabled")}},getFrameDocument:function(){var a=this.$;try{a.contentWindow.document}catch(b){a.src=a.src}return a&&new CKEDITOR.dom.document(a.contentWindow.document)},
+copyAttributes:function(a,b){for(var c=this.$.attributes,b=b||{},d=0;d<c.length;d++){var g=c[d],k=g.nodeName.toLowerCase(),h;if(!(k in b))if(k=="checked"&&(h=this.getAttribute(k)))a.setAttribute(k,h);else if(g.specified||CKEDITOR.env.ie&&g.nodeValue&&k=="value"){h=this.getAttribute(k);if(h===null)h=g.nodeValue;a.setAttribute(k,h)}}if(this.$.style.cssText!=="")a.$.style.cssText=this.$.style.cssText},renameNode:function(a){if(this.getName()!=a){var b=this.getDocument(),a=new CKEDITOR.dom.element(a,
+b);this.copyAttributes(a);this.moveChildren(a);this.getParent()&&this.$.parentNode.replaceChild(a.$,this.$);a.$["data-cke-expando"]=this.$["data-cke-expando"];this.$=a.$}},getChild:function(){function a(a,b){var c=a.childNodes;if(b>=0&&b<c.length)return c[b]}return function(b){var c=this.$;if(b.slice)for(;b.length>0&&c;)c=a(c,b.shift());else c=a(c,b);return c?new CKEDITOR.dom.node(c):null}}(),getChildCount:function(){return this.$.childNodes.length},disableContextMenu:function(){this.on("contextmenu",
+function(a){a.data.getTarget().hasClass("cke_enable_context_menu")||a.data.preventDefault()})},getDirection:function(a){return a?this.getComputedStyle("direction")||this.getDirection()||this.getParent()&&this.getParent().getDirection(1)||this.getDocument().$.dir||"ltr":this.getStyle("direction")||this.getAttribute("dir")},data:function(a,b){a="data-"+a;if(b===void 0)return this.getAttribute(a);b===false?this.removeAttribute(a):this.setAttribute(a,b);return null},getEditor:function(){var a=CKEDITOR.instances,
+b,c;for(b in a){c=a[b];if(c.element.equals(this)&&c.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO)return c}return null}});var c={width:["border-left-width","border-right-width","padding-left","padding-right"],height:["border-top-width","border-bottom-width","padding-top","padding-bottom"]};CKEDITOR.dom.element.prototype.setSize=function(a,c,e){if(typeof c=="number"){if(e&&(!CKEDITOR.env.ie||!CKEDITOR.env.quirks))c=c-b.call(this,a);this.setStyle(a,c+"px")}};CKEDITOR.dom.element.prototype.getSize=function(a,
+c){var e=Math.max(this.$["offset"+CKEDITOR.tools.capitalize(a)],this.$["client"+CKEDITOR.tools.capitalize(a)])||0;c&&(e=e-b.call(this,a));return e}})();CKEDITOR.dom.documentFragment=function(b){b=b||CKEDITOR.document;this.$=b.type==CKEDITOR.NODE_DOCUMENT?b.$.createDocumentFragment():b};
+CKEDITOR.tools.extend(CKEDITOR.dom.documentFragment.prototype,CKEDITOR.dom.element.prototype,{type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,insertAfterNode:function(b){b=b.$;b.parentNode.insertBefore(this.$,b.nextSibling)}},!0,{append:1,appendBogus:1,getFirst:1,getLast:1,getParent:1,getNext:1,getPrevious:1,appendTo:1,moveChildren:1,insertBefore:1,insertAfterNode:1,replace:1,trim:1,type:1,ltrim:1,rtrim:1,getDocument:1,getChildCount:1,getChild:1,getChildren:1});
+(function(){function b(a,b){var c=this.range;if(this._.end)return null;if(!this._.start){this._.start=1;if(c.collapsed){this.end();return null}c.optimize()}var d,n=c.startContainer;d=c.endContainer;var o=c.startOffset,l=c.endOffset,j,q=this.guard,f=this.type,e=a?"getPreviousSourceNode":"getNextSourceNode";if(!a&&!this._.guardLTR){var i=d.type==CKEDITOR.NODE_ELEMENT?d:d.getParent(),s=d.type==CKEDITOR.NODE_ELEMENT?d.getChild(l):d.getNext();this._.guardLTR=function(a,b){return(!b||!i.equals(a))&&(!s||
+!a.equals(s))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}if(a&&!this._.guardRTL){var A=n.type==CKEDITOR.NODE_ELEMENT?n:n.getParent(),B=n.type==CKEDITOR.NODE_ELEMENT?o?n.getChild(o-1):null:n.getPrevious();this._.guardRTL=function(a,b){return(!b||!A.equals(a))&&(!B||!a.equals(B))&&(a.type!=CKEDITOR.NODE_ELEMENT||!b||!a.equals(c.root))}}var p=a?this._.guardRTL:this._.guardLTR;j=q?function(a,b){return p(a,b)===false?false:q(a,b)}:p;if(this.current)d=this.current[e](false,f,j);else{if(a)d.type==
+CKEDITOR.NODE_ELEMENT&&(d=l>0?d.getChild(l-1):j(d,true)===false?null:d.getPreviousSourceNode(true,f,j));else{d=n;if(d.type==CKEDITOR.NODE_ELEMENT&&!(d=d.getChild(o)))d=j(n,true)===false?null:n.getNextSourceNode(true,f,j)}d&&j(d)===false&&(d=null)}for(;d&&!this._.end;){this.current=d;if(!this.evaluator||this.evaluator(d)!==false){if(!b)return d}else if(b&&this.evaluator)return false;d=d[e](false,f,j)}this.end();return this.current=null}function c(a){for(var c,d=null;c=b.call(this,a);)d=c;return d}
+CKEDITOR.dom.walker=CKEDITOR.tools.createClass({$:function(a){this.range=a;this._={}},proto:{end:function(){this._.end=1},next:function(){return b.call(this)},previous:function(){return b.call(this,1)},checkForward:function(){return b.call(this,0,1)!==false},checkBackward:function(){return b.call(this,1,1)!==false},lastForward:function(){return c.call(this)},lastBackward:function(){return c.call(this,1)},reset:function(){delete this.current;this._={}}}});var a={block:1,"list-item":1,table:1,"table-row-group":1,
+"table-header-group":1,"table-footer-group":1,"table-row":1,"table-column-group":1,"table-column":1,"table-cell":1,"table-caption":1};CKEDITOR.dom.element.prototype.isBlockBoundary=function(b){b=b?CKEDITOR.tools.extend({},CKEDITOR.dtd.$block,b||{}):CKEDITOR.dtd.$block;return this.getComputedStyle("float")=="none"&&a[this.getComputedStyle("display")]||b[this.getName()]};CKEDITOR.dom.walker.blockBoundary=function(a){return function(b){return!(b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary(a))}};CKEDITOR.dom.walker.listItemBoundary=
+function(){return this.blockBoundary({br:1})};CKEDITOR.dom.walker.bookmark=function(a,b){function c(a){return a&&a.getName&&a.getName()=="span"&&a.data("cke-bookmark")}return function(d){var n,o;n=d&&d.type!=CKEDITOR.NODE_ELEMENT&&(o=d.getParent())&&c(o);n=a?n:n||c(d);return!!(b^n)}};CKEDITOR.dom.walker.whitespaces=function(a){return function(b){var c;b&&b.type==CKEDITOR.NODE_TEXT&&(c=!CKEDITOR.tools.trim(b.getText())||CKEDITOR.env.webkit&&b.getText()=="â");return!!(a^c)}};CKEDITOR.dom.walker.invisible=
+function(a){var b=CKEDITOR.dom.walker.whitespaces();return function(c){if(b(c))c=1;else{c.type==CKEDITOR.NODE_TEXT&&(c=c.getParent());c=!c.$.offsetHeight}return!!(a^c)}};CKEDITOR.dom.walker.nodeType=function(a,b){return function(c){return!!(b^c.type==a)}};CKEDITOR.dom.walker.bogus=function(a){function b(a){return!e(a)&&!d(a)}return function(c){var d=!CKEDITOR.env.ie?c.is&&c.is("br"):c.getText&&f.test(c.getText());if(d){d=c.getParent();c=c.getNext(b);d=d.isBlockBoundary()&&(!c||c.type==CKEDITOR.NODE_ELEMENT&&
+c.isBlockBoundary())}return!!(a^d)}};var f=/^[\t\r\n ]*(?: |\xa0)$/,e=CKEDITOR.dom.walker.whitespaces(),d=CKEDITOR.dom.walker.bookmark();CKEDITOR.dom.element.prototype.getBogus=function(){var a=this;do a=a.getPreviousSourceNode();while(d(a)||e(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty));return a&&(!CKEDITOR.env.ie?a.is&&a.is("br"):a.getText&&f.test(a.getText()))?a:false}})();
+CKEDITOR.dom.range=function(b){this.endOffset=this.endContainer=this.startOffset=this.startContainer=null;this.collapsed=true;var c=b instanceof CKEDITOR.dom.document;this.document=c?b:b.getDocument();this.root=c?b.getBody():b};
+(function(){function b(){var a=false,b=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(true),c=CKEDITOR.dom.walker.bogus();return function(q){if(l(q)||b(q))return true;if(c(q)&&!a)return a=true;return q.type==CKEDITOR.NODE_TEXT&&(q.hasAscendant("pre")||CKEDITOR.tools.trim(q.getText()).length)||q.type==CKEDITOR.NODE_ELEMENT&&!q.is(d)?false:true}}function c(a){var b=CKEDITOR.dom.walker.whitespaces(),l=CKEDITOR.dom.walker.bookmark(1);return function(c){return l(c)||b(c)?true:!a&&g(c)||
+c.type==CKEDITOR.NODE_ELEMENT&&c.is(CKEDITOR.dtd.$removeEmpty)}}function a(a){return!k(a)&&!h(a)}var f=function(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer.equals(a.endContainer)&&a.startOffset==a.endOffset},e=function(a,b,l,c){a.optimizeBookmark();var d=a.startContainer,g=a.endContainer,f=a.startOffset,i=a.endOffset,e,k;if(g.type==CKEDITOR.NODE_TEXT)g=g.split(i);else if(g.getChildCount()>0)if(i>=g.getChildCount()){g=g.append(a.document.createText(""));k=true}else g=g.getChild(i);
+if(d.type==CKEDITOR.NODE_TEXT){d.split(f);d.equals(g)&&(g=d.getNext())}else if(f)if(f>=d.getChildCount()){d=d.append(a.document.createText(""));e=true}else d=d.getChild(f).getPrevious();else{d=d.append(a.document.createText(""),1);e=true}var f=d.getParents(),i=g.getParents(),h,p,m;for(h=0;h<f.length;h++){p=f[h];m=i[h];if(!p.equals(m))break}for(var u=l,r,D,v,t=h;t<f.length;t++){r=f[t];u&&!r.equals(d)&&(D=u.append(r.clone()));for(r=r.getNext();r;){if(r.equals(i[t])||r.equals(g))break;v=r.getNext();
+if(b==2)u.append(r.clone(true));else{r.remove();b==1&&u.append(r)}r=v}u&&(u=D)}u=l;for(l=h;l<i.length;l++){r=i[l];b>0&&!r.equals(g)&&(D=u.append(r.clone()));if(!f[l]||r.$.parentNode!=f[l].$.parentNode)for(r=r.getPrevious();r;){if(r.equals(f[l])||r.equals(d))break;v=r.getPrevious();if(b==2)u.$.insertBefore(r.$.cloneNode(true),u.$.firstChild);else{r.remove();b==1&&u.$.insertBefore(r.$,u.$.firstChild)}r=v}u&&(u=D)}if(b==2){p=a.startContainer;if(p.type==CKEDITOR.NODE_TEXT){p.$.data=p.$.data+p.$.nextSibling.data;
+p.$.parentNode.removeChild(p.$.nextSibling)}a=a.endContainer;if(a.type==CKEDITOR.NODE_TEXT&&a.$.nextSibling){a.$.data=a.$.data+a.$.nextSibling.data;a.$.parentNode.removeChild(a.$.nextSibling)}}else{if(p&&m&&(d.$.parentNode!=p.$.parentNode||g.$.parentNode!=m.$.parentNode)){b=m.getIndex();e&&m.$.parentNode==d.$.parentNode&&b--;if(c&&p.type==CKEDITOR.NODE_ELEMENT){c=CKEDITOR.dom.element.createFromHtml('<span data-cke-bookmark="1" style="display:none"> </span>',a.document);c.insertAfter(p);p.mergeSiblings(false);
+a.moveToBookmark({startNode:c})}else a.setStart(m.getParent(),b)}a.collapse(true)}e&&d.remove();k&&g.$.parentNode&&g.remove()},d={abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1},g=CKEDITOR.dom.walker.bogus(),k=new CKEDITOR.dom.walker.whitespaces,h=new CKEDITOR.dom.walker.bookmark,m=/^[\t\r\n ]*(?: |\xa0)$/;CKEDITOR.dom.range.prototype={clone:function(){var a=new CKEDITOR.dom.range(this.root);
+a.startContainer=this.startContainer;a.startOffset=this.startOffset;a.endContainer=this.endContainer;a.endOffset=this.endOffset;a.collapsed=this.collapsed;return a},collapse:function(a){if(a){this.endContainer=this.startContainer;this.endOffset=this.startOffset}else{this.startContainer=this.endContainer;this.startOffset=this.endOffset}this.collapsed=true},cloneContents:function(){var a=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||e(this,2,a);return a},deleteContents:function(a){this.collapsed||
+e(this,0,null,a)},extractContents:function(a){var b=new CKEDITOR.dom.documentFragment(this.document);this.collapsed||e(this,1,b,a);return b},createBookmark:function(a){var b,l,c,d,g=this.collapsed;b=this.document.createElement("span");b.data("cke-bookmark",1);b.setStyle("display","none");b.setHtml(" ");if(a){c="cke_bm_"+CKEDITOR.tools.getNextNumber();b.setAttribute("id",c+(g?"C":"S"))}if(!g){l=b.clone();l.setHtml(" ");a&&l.setAttribute("id",c+"E");d=this.clone();d.collapse();d.insertNode(l)}d=
+this.clone();d.collapse(true);d.insertNode(b);if(l){this.setStartAfter(b);this.setEndBefore(l)}else this.moveToPosition(b,CKEDITOR.POSITION_AFTER_END);return{startNode:a?c+(g?"C":"S"):b,endNode:a?c+"E":l,serializable:a,collapsed:g}},createBookmark2:function(a){var b=this.startContainer,l=this.endContainer,c=this.startOffset,d=this.endOffset,g=this.collapsed,f,i;if(!b||!l)return{start:0,end:0};if(a){if(b.type==CKEDITOR.NODE_ELEMENT){if((f=b.getChild(c))&&f.type==CKEDITOR.NODE_TEXT&&c>0&&f.getPrevious().type==
+CKEDITOR.NODE_TEXT){b=f;c=0}f&&f.type==CKEDITOR.NODE_ELEMENT&&(c=f.getIndex(1))}for(;b.type==CKEDITOR.NODE_TEXT&&(i=b.getPrevious())&&i.type==CKEDITOR.NODE_TEXT;){b=i;c=c+i.getLength()}if(!g){if(l.type==CKEDITOR.NODE_ELEMENT){if((f=l.getChild(d))&&f.type==CKEDITOR.NODE_TEXT&&d>0&&f.getPrevious().type==CKEDITOR.NODE_TEXT){l=f;d=0}f&&f.type==CKEDITOR.NODE_ELEMENT&&(d=f.getIndex(1))}for(;l.type==CKEDITOR.NODE_TEXT&&(i=l.getPrevious())&&i.type==CKEDITOR.NODE_TEXT;){l=i;d=d+i.getLength()}}}return{start:b.getAddress(a),
+end:g?null:l.getAddress(a),startOffset:c,endOffset:d,normalized:a,collapsed:g,is2:true}},moveToBookmark:function(a){if(a.is2){var b=this.document.getByAddress(a.start,a.normalized),l=a.startOffset,c=a.end&&this.document.getByAddress(a.end,a.normalized),a=a.endOffset;this.setStart(b,l);c?this.setEnd(c,a):this.collapse(true)}else{b=(l=a.serializable)?this.document.getById(a.startNode):a.startNode;a=l?this.document.getById(a.endNode):a.endNode;this.setStartBefore(b);b.remove();if(a){this.setEndBefore(a);
+a.remove()}else this.collapse(true)}},getBoundaryNodes:function(){var a=this.startContainer,b=this.endContainer,l=this.startOffset,c=this.endOffset,d;if(a.type==CKEDITOR.NODE_ELEMENT){d=a.getChildCount();if(d>l)a=a.getChild(l);else if(d<1)a=a.getPreviousSourceNode();else{for(a=a.$;a.lastChild;)a=a.lastChild;a=new CKEDITOR.dom.node(a);a=a.getNextSourceNode()||a}}if(b.type==CKEDITOR.NODE_ELEMENT){d=b.getChildCount();if(d>c)b=b.getChild(c).getPreviousSourceNode(true);else if(d<1)b=b.getPreviousSourceNode();
+else{for(b=b.$;b.lastChild;)b=b.lastChild;b=new CKEDITOR.dom.node(b)}}a.getPosition(b)&CKEDITOR.POSITION_FOLLOWING&&(a=b);return{startNode:a,endNode:b}},getCommonAncestor:function(a,b){var l=this.startContainer,c=this.endContainer,l=l.equals(c)?a&&l.type==CKEDITOR.NODE_ELEMENT&&this.startOffset==this.endOffset-1?l.getChild(this.startOffset):l:l.getCommonAncestor(c);return b&&!l.is?l.getParent():l},optimize:function(){var a=this.startContainer,b=this.startOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=
+a.getLength()&&this.setStartAfter(a):this.setStartBefore(a));a=this.endContainer;b=this.endOffset;a.type!=CKEDITOR.NODE_ELEMENT&&(b?b>=a.getLength()&&this.setEndAfter(a):this.setEndBefore(a))},optimizeBookmark:function(){var a=this.startContainer,b=this.endContainer;a.is&&(a.is("span")&&a.data("cke-bookmark"))&&this.setStartAt(a,CKEDITOR.POSITION_BEFORE_START);b&&(b.is&&b.is("span")&&b.data("cke-bookmark"))&&this.setEndAt(b,CKEDITOR.POSITION_AFTER_END)},trim:function(a,b){var c=this.startContainer,
+j=this.startOffset,d=this.collapsed;if((!a||d)&&c&&c.type==CKEDITOR.NODE_TEXT){if(j)if(j>=c.getLength()){j=c.getIndex()+1;c=c.getParent()}else{var g=c.split(j),j=c.getIndex()+1,c=c.getParent();if(this.startContainer.equals(this.endContainer))this.setEnd(g,this.endOffset-this.startOffset);else if(c.equals(this.endContainer))this.endOffset=this.endOffset+1}else{j=c.getIndex();c=c.getParent()}this.setStart(c,j);if(d){this.collapse(true);return}}c=this.endContainer;j=this.endOffset;if(!b&&!d&&c&&c.type==
+CKEDITOR.NODE_TEXT){if(j){j>=c.getLength()||c.split(j);j=c.getIndex()+1}else j=c.getIndex();c=c.getParent();this.setEnd(c,j)}},enlarge:function(a,b){switch(a){case CKEDITOR.ENLARGE_INLINE:var c=1;case CKEDITOR.ENLARGE_ELEMENT:if(this.collapsed)break;var j=this.getCommonAncestor(),d=this.root,g,f,i,e,h,k=false,p,m;p=this.startContainer;m=this.startOffset;if(p.type==CKEDITOR.NODE_TEXT){if(m){p=!CKEDITOR.tools.trim(p.substring(0,m)).length&&p;k=!!p}if(p&&!(e=p.getPrevious()))i=p.getParent()}else{m&&
+(e=p.getChild(m-1)||p.getLast());e||(i=p)}for(;i||e;){if(i&&!e){!h&&i.equals(j)&&(h=true);if(c?i.isBlockBoundary():!d.contains(i))break;if(!k||i.getComputedStyle("display")!="inline"){k=false;h?g=i:this.setStartBefore(i)}e=i.getPrevious()}for(;e;){p=false;if(e.type==CKEDITOR.NODE_COMMENT)e=e.getPrevious();else{if(e.type==CKEDITOR.NODE_TEXT){m=e.getText();/[^\s\ufeff]/.test(m)&&(e=null);p=/[\s\ufeff]$/.test(m)}else if((e.$.offsetWidth>0||b&&e.is("br"))&&!e.data("cke-bookmark"))if(k&&CKEDITOR.dtd.$removeEmpty[e.getName()]){m=
+e.getText();if(/[^\s\ufeff]/.test(m))e=null;else for(var u=e.$.getElementsByTagName("*"),r=0,D;D=u[r++];)if(!CKEDITOR.dtd.$removeEmpty[D.nodeName.toLowerCase()]){e=null;break}e&&(p=!!m.length)}else e=null;p&&(k?h?g=i:i&&this.setStartBefore(i):k=true);if(e){p=e.getPrevious();if(!i&&!p){i=e;e=null;break}e=p}else i=null}}i&&(i=i.getParent())}p=this.endContainer;m=this.endOffset;i=e=null;h=k=false;if(p.type==CKEDITOR.NODE_TEXT){p=!CKEDITOR.tools.trim(p.substring(m)).length&&p;k=!(p&&p.getLength());if(p&&
+!(e=p.getNext()))i=p.getParent()}else(e=p.getChild(m))||(i=p);for(;i||e;){if(i&&!e){!h&&i.equals(j)&&(h=true);if(c?i.isBlockBoundary():!d.contains(i))break;if(!k||i.getComputedStyle("display")!="inline"){k=false;h?f=i:i&&this.setEndAfter(i)}e=i.getNext()}for(;e;){p=false;if(e.type==CKEDITOR.NODE_TEXT){m=e.getText();/[^\s\ufeff]/.test(m)&&(e=null);p=/^[\s\ufeff]/.test(m)}else if(e.type==CKEDITOR.NODE_ELEMENT){if((e.$.offsetWidth>0||b&&e.is("br"))&&!e.data("cke-bookmark"))if(k&&CKEDITOR.dtd.$removeEmpty[e.getName()]){m=
+e.getText();if(/[^\s\ufeff]/.test(m))e=null;else{u=e.$.getElementsByTagName("*");for(r=0;D=u[r++];)if(!CKEDITOR.dtd.$removeEmpty[D.nodeName.toLowerCase()]){e=null;break}}e&&(p=!!m.length)}else e=null}else p=1;p&&k&&(h?f=i:this.setEndAfter(i));if(e){p=e.getNext();if(!i&&!p){i=e;e=null;break}e=p}else i=null}i&&(i=i.getParent())}if(g&&f){j=g.contains(f)?f:g;this.setStartBefore(j);this.setEndAfter(j)}break;case CKEDITOR.ENLARGE_BLOCK_CONTENTS:case CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:i=new CKEDITOR.dom.range(this.root);
+d=this.root;i.setStartAt(d,CKEDITOR.POSITION_AFTER_START);i.setEnd(this.startContainer,this.startOffset);i=new CKEDITOR.dom.walker(i);var v,t,w=CKEDITOR.dom.walker.blockBoundary(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?{br:1}:null),I=function(a){var b=w(a);b||(v=a);return b},c=function(a){var b=I(a);!b&&(a.is&&a.is("br"))&&(t=a);return b};i.guard=I;i=i.lastBackward();v=v||d;this.setStartAt(v,!v.is("br")&&(!i&&this.checkStartOfBlock()||i&&v.contains(i))?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_AFTER_END);
+if(a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS){i=this.clone();i=new CKEDITOR.dom.walker(i);var G=CKEDITOR.dom.walker.whitespaces(),C=CKEDITOR.dom.walker.bookmark();i.evaluator=function(a){return!G(a)&&!C(a)};if((i=i.previous())&&i.type==CKEDITOR.NODE_ELEMENT&&i.is("br"))break}i=this.clone();i.collapse();i.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);i=new CKEDITOR.dom.walker(i);i.guard=a==CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS?c:I;v=null;i=i.lastForward();v=v||d;this.setEndAt(v,!i&&this.checkEndOfBlock()||i&&
+v.contains(i)?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_BEFORE_START);t&&this.setEndAfter(t)}},shrink:function(a,b,c){if(!this.collapsed){var a=a||CKEDITOR.SHRINK_TEXT,j=this.clone(),d=this.startContainer,g=this.endContainer,f=this.startOffset,e=this.endOffset,k=1,h=1;if(d&&d.type==CKEDITOR.NODE_TEXT)if(f)if(f>=d.getLength())j.setStartAfter(d);else{j.setStartBefore(d);k=0}else j.setStartBefore(d);if(g&&g.type==CKEDITOR.NODE_TEXT)if(e)if(e>=g.getLength())j.setEndAfter(g);else{j.setEndAfter(g);
+h=0}else j.setEndBefore(g);var j=new CKEDITOR.dom.walker(j),m=CKEDITOR.dom.walker.bookmark();j.evaluator=function(b){return b.type==(a==CKEDITOR.SHRINK_ELEMENT?CKEDITOR.NODE_ELEMENT:CKEDITOR.NODE_TEXT)};var p;j.guard=function(b,j){if(m(b))return true;if(a==CKEDITOR.SHRINK_ELEMENT&&b.type==CKEDITOR.NODE_TEXT||j&&b.equals(p)||c===false&&b.type==CKEDITOR.NODE_ELEMENT&&b.isBlockBoundary())return false;!j&&b.type==CKEDITOR.NODE_ELEMENT&&(p=b);return true};if(k)(d=j[a==CKEDITOR.SHRINK_ELEMENT?"lastForward":
+"next"]())&&this.setStartAt(d,b?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_START);if(h){j.reset();(j=j[a==CKEDITOR.SHRINK_ELEMENT?"lastBackward":"previous"]())&&this.setEndAt(j,b?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_END)}return!(!k&&!h)}},insertNode:function(a){this.optimizeBookmark();this.trim(false,true);var b=this.startContainer,c=b.getChild(this.startOffset);c?a.insertBefore(c):b.append(a);a.getParent()&&a.getParent().equals(this.endContainer)&&this.endOffset++;this.setStartBefore(a)},
+moveToPosition:function(a,b){this.setStartAt(a,b);this.collapse(true)},moveToRange:function(a){this.setStart(a.startContainer,a.startOffset);this.setEnd(a.endContainer,a.endOffset)},selectNodeContents:function(a){this.setStart(a,0);this.setEnd(a,a.type==CKEDITOR.NODE_TEXT?a.getLength():a.getChildCount())},setStart:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]){b=a.getIndex();a=a.getParent()}this.startContainer=a;this.startOffset=b;if(!this.endContainer){this.endContainer=
+a;this.endOffset=b}f(this)},setEnd:function(a,b){if(a.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$empty[a.getName()]){b=a.getIndex()+1;a=a.getParent()}this.endContainer=a;this.endOffset=b;if(!this.startContainer){this.startContainer=a;this.startOffset=b}f(this)},setStartAfter:function(a){this.setStart(a.getParent(),a.getIndex()+1)},setStartBefore:function(a){this.setStart(a.getParent(),a.getIndex())},setEndAfter:function(a){this.setEnd(a.getParent(),a.getIndex()+1)},setEndBefore:function(a){this.setEnd(a.getParent(),
+a.getIndex())},setStartAt:function(a,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setStart(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==CKEDITOR.NODE_TEXT?this.setStart(a,a.getLength()):this.setStart(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setStartBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setStartAfter(a)}f(this)},setEndAt:function(a,b){switch(b){case CKEDITOR.POSITION_AFTER_START:this.setEnd(a,0);break;case CKEDITOR.POSITION_BEFORE_END:a.type==
+CKEDITOR.NODE_TEXT?this.setEnd(a,a.getLength()):this.setEnd(a,a.getChildCount());break;case CKEDITOR.POSITION_BEFORE_START:this.setEndBefore(a);break;case CKEDITOR.POSITION_AFTER_END:this.setEndAfter(a)}f(this)},fixBlock:function(a,b){var c=this.createBookmark(),j=this.document.createElement(b);this.collapse(a);this.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);this.extractContents().appendTo(j);j.trim();CKEDITOR.env.ie||j.appendBogus();this.insertNode(j);this.moveToBookmark(c);return j},splitBlock:function(a){var b=
+new CKEDITOR.dom.elementPath(this.startContainer,this.root),c=new CKEDITOR.dom.elementPath(this.endContainer,this.root),j=b.block,d=c.block,g=null;if(!b.blockLimit.equals(c.blockLimit))return null;if(a!="br"){if(!j){j=this.fixBlock(true,a);d=(new CKEDITOR.dom.elementPath(this.endContainer,this.root)).block}d||(d=this.fixBlock(false,a))}a=j&&this.checkStartOfBlock();b=d&&this.checkEndOfBlock();this.deleteContents();if(j&&j.equals(d))if(b){g=new CKEDITOR.dom.elementPath(this.startContainer,this.root);
+this.moveToPosition(d,CKEDITOR.POSITION_AFTER_END);d=null}else if(a){g=new CKEDITOR.dom.elementPath(this.startContainer,this.root);this.moveToPosition(j,CKEDITOR.POSITION_BEFORE_START);j=null}else{d=this.splitElement(j);!CKEDITOR.env.ie&&!j.is("ul","ol")&&j.appendBogus()}return{previousBlock:j,nextBlock:d,wasStartOfBlock:a,wasEndOfBlock:b,elementPath:g}},splitElement:function(a){if(!this.collapsed)return null;this.setEndAt(a,CKEDITOR.POSITION_BEFORE_END);var b=this.extractContents(),c=a.clone(false);
+b.appendTo(c);c.insertAfter(a);this.moveToPosition(a,CKEDITOR.POSITION_AFTER_END);return c},removeEmptyBlocksAtEnd:function(){function a(j){return function(a){return b(a)||(c(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.isEmptyInlineRemoveable())||j.is("table")&&a.is("caption")?false:true}}var b=CKEDITOR.dom.walker.whitespaces(),c=CKEDITOR.dom.walker.bookmark(false);return function(b){for(var c=this.createBookmark(),l=this[b?"endPath":"startPath"](),d=l.block||l.blockLimit,o;d&&!d.equals(l.root)&&!d.getFirst(a(d));){o=
+d.getParent();this[b?"setEndAt":"setStartAt"](d,CKEDITOR.POSITION_AFTER_END);d.remove(1);d=o}this.moveToBookmark(c)}}(),startPath:function(){return new CKEDITOR.dom.elementPath(this.startContainer,this.root)},endPath:function(){return new CKEDITOR.dom.elementPath(this.endContainer,this.root)},checkBoundaryOfElement:function(a,b){var l=b==CKEDITOR.START,d=this.clone();d.collapse(l);d[l?"setStartAt":"setEndAt"](a,l?CKEDITOR.POSITION_AFTER_START:CKEDITOR.POSITION_BEFORE_END);d=new CKEDITOR.dom.walker(d);
+d.evaluator=c(l);return d[l?"checkBackward":"checkForward"]()},checkStartOfBlock:function(){var a=this.startContainer,c=this.startOffset;if(CKEDITOR.env.ie&&c&&a.type==CKEDITOR.NODE_TEXT){a=CKEDITOR.tools.ltrim(a.substring(0,c));m.test(a)&&this.trim(0,1)}this.trim();a=new CKEDITOR.dom.elementPath(this.startContainer,this.root);c=this.clone();c.collapse(true);c.setStartAt(a.block||a.blockLimit,CKEDITOR.POSITION_AFTER_START);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkBackward()},checkEndOfBlock:function(){var a=
+this.endContainer,c=this.endOffset;if(CKEDITOR.env.ie&&a.type==CKEDITOR.NODE_TEXT){a=CKEDITOR.tools.rtrim(a.substring(c));m.test(a)&&this.trim(1,0)}this.trim();a=new CKEDITOR.dom.elementPath(this.endContainer,this.root);c=this.clone();c.collapse(false);c.setEndAt(a.block||a.blockLimit,CKEDITOR.POSITION_BEFORE_END);a=new CKEDITOR.dom.walker(c);a.evaluator=b();return a.checkForward()},getPreviousNode:function(a,b,c){var d=this.clone();d.collapse(1);d.setStartAt(c||this.root,CKEDITOR.POSITION_AFTER_START);
+c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.previous()},getNextNode:function(a,b,c){var d=this.clone();d.collapse();d.setEndAt(c||this.root,CKEDITOR.POSITION_BEFORE_END);c=new CKEDITOR.dom.walker(d);c.evaluator=a;c.guard=b;return c.next()},checkReadOnly:function(){function a(b,c){for(;b;){if(b.type==CKEDITOR.NODE_ELEMENT){if(b.getAttribute("contentEditable")=="false"&&!b.data("cke-editable"))return 0;if(b.is("html")||b.getAttribute("contentEditable")=="true"&&(b.contains(c)||b.equals(c)))break}b=
+b.getParent()}return 1}return function(){var b=this.startContainer,c=this.endContainer;return!(a(b,c)&&a(c,b))}}(),moveToElementEditablePosition:function(b,c){if(b.type==CKEDITOR.NODE_ELEMENT&&!b.isEditable(false)){this.moveToPosition(b,c?CKEDITOR.POSITION_AFTER_END:CKEDITOR.POSITION_BEFORE_START);return true}for(var l=0;b;){if(b.type==CKEDITOR.NODE_TEXT){c&&this.checkEndOfBlock()&&m.test(b.getText())?this.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START):this.moveToPosition(b,c?CKEDITOR.POSITION_AFTER_END:
+CKEDITOR.POSITION_BEFORE_START);l=1;break}if(b.type==CKEDITOR.NODE_ELEMENT)if(b.isEditable()){this.moveToPosition(b,c?CKEDITOR.POSITION_BEFORE_END:CKEDITOR.POSITION_AFTER_START);l=1}else c&&(b.is("br")&&this.checkEndOfBlock())&&this.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START);var d=b,g=l,f=void 0;d.type==CKEDITOR.NODE_ELEMENT&&d.isEditable(false)&&(f=d[c?"getLast":"getFirst"](a));!g&&!f&&(f=d[c?"getPrevious":"getNext"](a));b=f}return!!l},moveToElementEditStart:function(a){return this.moveToElementEditablePosition(a)},
+moveToElementEditEnd:function(a){return this.moveToElementEditablePosition(a,true)},getEnclosedNode:function(){var a=this.clone();a.optimize();if(a.startContainer.type!=CKEDITOR.NODE_ELEMENT||a.endContainer.type!=CKEDITOR.NODE_ELEMENT)return null;var a=new CKEDITOR.dom.walker(a),b=CKEDITOR.dom.walker.bookmark(false,true),c=CKEDITOR.dom.walker.whitespaces(true);a.evaluator=function(a){return c(a)&&b(a)};var d=a.next();a.reset();return d&&d.equals(a.previous())?d:null},getTouchedStartNode:function(){var a=
+this.startContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.startOffset)||a},getTouchedEndNode:function(){var a=this.endContainer;return this.collapsed||a.type!=CKEDITOR.NODE_ELEMENT?a:a.getChild(this.endOffset-1)||a},scrollIntoView:function(){var a=new CKEDITOR.dom.element.createFromHtml("<span> </span>",this.document),b,c,d,g=this.clone();g.optimize();if(d=g.startContainer.type==CKEDITOR.NODE_TEXT){c=g.startContainer.getText();b=g.startContainer.split(g.startOffset);
+a.insertAfter(g.startContainer)}else g.insertNode(a);a.scrollIntoView();if(d){g.startContainer.setText(c);b.remove()}a.remove()}}})();CKEDITOR.POSITION_AFTER_START=1;CKEDITOR.POSITION_BEFORE_END=2;CKEDITOR.POSITION_BEFORE_START=3;CKEDITOR.POSITION_AFTER_END=4;CKEDITOR.ENLARGE_ELEMENT=1;CKEDITOR.ENLARGE_BLOCK_CONTENTS=2;CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS=3;CKEDITOR.ENLARGE_INLINE=4;CKEDITOR.START=1;CKEDITOR.END=2;CKEDITOR.SHRINK_ELEMENT=1;CKEDITOR.SHRINK_TEXT=2;
+(function(){function b(a){if(!(arguments.length<1)){this.range=a;this.forceBrBreak=0;this.enlargeBr=1;this.enforceRealBlocks=0;this._||(this._={})}}function c(a,b,c){for(a=a.getNextSourceNode(b,null,c);!f(a);)a=a.getNextSourceNode(b,null,c);return a}var a=/^[\r\n\t ]+$/,f=CKEDITOR.dom.walker.bookmark(false,true),e=CKEDITOR.dom.walker.whitespaces(true),d=function(a){return f(a)&&e(a)};b.prototype={getNextParagraph:function(b){b=b||"p";if(!CKEDITOR.dtd[this.range.root.getName()][b])return null;var e,
+h,m,n,o,l;if(!this._.started){h=this.range.clone();h.shrink(CKEDITOR.NODE_ELEMENT,true);n=h.endContainer.hasAscendant("pre",true)||h.startContainer.hasAscendant("pre",true);h.enlarge(this.forceBrBreak&&!n||!this.enlargeBr?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);if(!h.collapsed){n=new CKEDITOR.dom.walker(h.clone());var j=CKEDITOR.dom.walker.bookmark(true,true);n.evaluator=j;this._.nextNode=n.next();n=new CKEDITOR.dom.walker(h.clone());n.evaluator=j;n=n.previous();this._.lastNode=
+n.getNextSourceNode(true);if(this._.lastNode&&this._.lastNode.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(this._.lastNode.getText())&&this._.lastNode.getParent().isBlockBoundary()){j=this.range.clone();j.moveToPosition(this._.lastNode,CKEDITOR.POSITION_AFTER_END);if(j.checkEndOfBlock()){j=new CKEDITOR.dom.elementPath(j.endContainer,j.root);this._.lastNode=(j.block||j.blockLimit).getNextSourceNode(true)}}if(!this._.lastNode){this._.lastNode=this._.docEndMarker=h.document.createText("");this._.lastNode.insertAfter(n)}h=
+null}this._.started=1}j=this._.nextNode;n=this._.lastNode;for(this._.nextNode=null;j;){var q=0,y=j.hasAscendant("pre"),z=j.type!=CKEDITOR.NODE_ELEMENT,i=0;if(z)j.type==CKEDITOR.NODE_TEXT&&a.test(j.getText())&&(z=0);else{var s=j.getName();if(j.isBlockBoundary(this.forceBrBreak&&!y&&{br:1})){if(s=="br")z=1;else if(!h&&!j.getChildCount()&&s!="hr"){e=j;m=j.equals(n);break}if(h){h.setEndAt(j,CKEDITOR.POSITION_BEFORE_START);if(s!="br")this._.nextNode=j}q=1}else{if(j.getFirst()){if(!h){h=this.range.clone();
+h.setStartAt(j,CKEDITOR.POSITION_BEFORE_START)}j=j.getFirst();continue}z=1}}if(z&&!h){h=this.range.clone();h.setStartAt(j,CKEDITOR.POSITION_BEFORE_START)}m=(!q||z)&&j.equals(n);if(h&&!q)for(;!j.getNext(d)&&!m;){s=j.getParent();if(s.isBlockBoundary(this.forceBrBreak&&!y&&{br:1})){q=1;z=0;m||s.equals(n);h.setEndAt(s,CKEDITOR.POSITION_BEFORE_END);break}j=s;z=1;m=j.equals(n);i=1}z&&h.setEndAt(j,CKEDITOR.POSITION_AFTER_END);j=c(j,i,n);if((m=!j)||q&&h)break}if(!e){if(!h){this._.docEndMarker&&this._.docEndMarker.remove();
+return this._.nextNode=null}e=new CKEDITOR.dom.elementPath(h.startContainer,h.root);j=e.blockLimit;q={div:1,th:1,td:1};e=e.block;if(!e&&j&&!this.enforceRealBlocks&&q[j.getName()]&&h.checkStartOfBlock()&&h.checkEndOfBlock()&&!j.equals(h.root))e=j;else if(!e||this.enforceRealBlocks&&e.getName()=="li"){e=this.range.document.createElement(b);h.extractContents().appendTo(e);e.trim();h.insertNode(e);o=l=true}else if(e.getName()!="li"){if(!h.checkStartOfBlock()||!h.checkEndOfBlock()){e=e.clone(false);h.extractContents().appendTo(e);
+e.trim();l=h.splitBlock();o=!l.wasStartOfBlock;l=!l.wasEndOfBlock;h.insertNode(e)}}else if(!m)this._.nextNode=e.equals(n)?null:c(h.getBoundaryNodes().endNode,1,n)}if(o)(h=e.getPrevious())&&h.type==CKEDITOR.NODE_ELEMENT&&(h.getName()=="br"?h.remove():h.getLast()&&h.getLast().$.nodeName.toLowerCase()=="br"&&h.getLast().remove());if(l)(h=e.getLast())&&h.type==CKEDITOR.NODE_ELEMENT&&h.getName()=="br"&&(CKEDITOR.env.ie||h.getPrevious(f)||h.getNext(f))&&h.remove();if(!this._.nextNode)this._.nextNode=m||
+e.equals(n)||!n?null:c(e,1,n);return e}};CKEDITOR.dom.range.prototype.createIterator=function(){return new b(this)}})();
+CKEDITOR.command=function(b,c){this.uiItems=[];this.exec=function(a){if(this.state==CKEDITOR.TRISTATE_DISABLED)return false;this.editorFocus&&b.focus();return this.fire("exec")===false?true:c.exec.call(this,b,a)!==false};this.refresh=function(a,b){if(!this.readOnly&&a.readOnly)return true;if(this.context&&!b.isContextFor(this.context)){this.disable();return true}this.enable();return this.fire("refresh",{editor:a,path:b})===false?true:c.refresh&&c.refresh.apply(this,arguments)!==false};CKEDITOR.tools.extend(this,
+c,{modes:{wysiwyg:1},editorFocus:1,contextSensitive:!!c.context,state:CKEDITOR.TRISTATE_OFF});CKEDITOR.event.call(this)};
+CKEDITOR.command.prototype={enable:function(){this.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(!this.preserveState||typeof this.previousState=="undefined"?CKEDITOR.TRISTATE_OFF:this.previousState)},disable:function(){this.setState(CKEDITOR.TRISTATE_DISABLED)},setState:function(b){if(this.state==b)return false;this.previousState=this.state;this.state=b;this.fire("state");return true},toggleState:function(){this.state==CKEDITOR.TRISTATE_OFF?this.setState(CKEDITOR.TRISTATE_ON):this.state==CKEDITOR.TRISTATE_ON&&
+this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.event.implementOn(CKEDITOR.command.prototype);CKEDITOR.ENTER_P=1;CKEDITOR.ENTER_BR=2;CKEDITOR.ENTER_DIV=3;
+CKEDITOR.config={customConfig:"config.js",autoUpdateElement:!0,language:"",defaultLanguage:"en",contentsLangDirection:"",enterMode:CKEDITOR.ENTER_P,forceEnterMode:!1,shiftEnterMode:CKEDITOR.ENTER_BR,docType:"<!DOCTYPE html>",bodyId:"",bodyClass:"",fullPage:!1,height:200,extraPlugins:"",removePlugins:"",protectedSource:[],tabIndex:0,width:"",baseFloatZIndex:1E4,blockedKeystrokes:[CKEDITOR.CTRL+66,CKEDITOR.CTRL+73,CKEDITOR.CTRL+85]};
+(function(){CKEDITOR.focusManager=function(b){if(b.focusManager)return b.focusManager;this.hasFocus=false;this.currentActive=null;this._={editor:b};return this};CKEDITOR.focusManager._={blurDelay:200};CKEDITOR.focusManager.prototype={focus:function(){this._.timer&&clearTimeout(this._.timer);if(!this.hasFocus&&!this._.locked){var b=CKEDITOR.currentInstance;b&&b.focusManager.blur(1);this.hasFocus=true;(b=this._.editor.container)&&b.addClass("cke_focus");this._.editor.fire("focus")}},lock:function(){this._.locked=
+1},unlock:function(){delete this._.locked},blur:function(b){function c(){if(this.hasFocus){this.hasFocus=false;var a=this._.editor.container;a&&a.removeClass("cke_focus");this._.editor.fire("blur")}}if(!this._.locked){this._.timer&&clearTimeout(this._.timer);var a=CKEDITOR.focusManager._.blurDelay;b||!a?c.call(this):this._.timer=CKEDITOR.tools.setTimeout(function(){delete this._.timer;c.call(this)},a,this)}},add:function(b,c){var a=b.getCustomData("focusmanager");if(!a||a!=this){a&&a.remove(b);var a=
+"focus",f="blur";if(c)if(CKEDITOR.env.ie){a="focusin";f="focusout"}else CKEDITOR.event.useCapture=1;var e={blur:function(){b.equals(this.currentActive)&&this.blur()},focus:function(){this.currentActive=b;this.focus()}};b.on(a,e.focus,this);b.on(f,e.blur,this);if(c)CKEDITOR.event.useCapture=0;b.setCustomData("focusmanager",this);b.setCustomData("focusmanager_handlers",e)}},remove:function(b){b.removeCustomData("focusmanager");var c=b.removeCustomData("focusmanager_handlers");b.removeListener("blur",
+c.blur);b.removeListener("focus",c.focus)}}})();CKEDITOR.keystrokeHandler=function(b){if(b.keystrokeHandler)return b.keystrokeHandler;this.keystrokes={};this.blockedKeystrokes={};this._={editor:b};return this};
+(function(){var b,c=function(a){var a=a.data,c=a.getKeystroke(),d=this.keystrokes[c],g=this._.editor;b=g.fire("key",{keyCode:c})===false;if(!b){d&&(b=g.execCommand(d,{from:"keystrokeHandler"})!==false);b||(b=!!this.blockedKeystrokes[c])}b&&a.preventDefault(true);return!b},a=function(a){if(b){b=false;a.data.preventDefault(true)}};CKEDITOR.keystrokeHandler.prototype={attach:function(b){b.on("keydown",c,this);if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)b.on("keypress",a,this)}}})();
+(function(){CKEDITOR.lang={languages:{af:1,ar:1,bg:1,bn:1,bs:1,ca:1,cs:1,cy:1,da:1,de:1,el:1,"en-au":1,"en-ca":1,"en-gb":1,en:1,eo:1,es:1,et:1,eu:1,fa:1,fi:1,fo:1,"fr-ca":1,fr:1,gl:1,gu:1,he:1,hi:1,hr:1,hu:1,is:1,it:1,ja:1,ka:1,km:1,ko:1,ku:1,lt:1,lv:1,mn:1,ms:1,nb:1,nl:1,no:1,pl:1,"pt-br":1,pt:1,ro:1,ru:1,sk:1,sl:1,"sr-latn":1,sr:1,sv:1,th:1,tr:1,uk:1,vi:1,"zh-cn":1,zh:1},load:function(b,c,a){if(!b||!CKEDITOR.lang.languages[b])b=this.detect(c,b);this[b]?a(b,this[b]):CKEDITOR.scriptLoader.load(CKEDITOR.getUrl("lang/"+
+b+".js"),function(){a(b,this[b])},this)},detect:function(b,c){var a=this.languages,c=c||navigator.userLanguage||navigator.language||b,f=c.toLowerCase().match(/([a-z]+)(?:-([a-z]+))?/),e=f[1],f=f[2];a[e+"-"+f]?e=e+"-"+f:a[e]||(e=null);CKEDITOR.lang.detect=e?function(){return e}:function(a){return a};return e||b}}})();
+CKEDITOR.scriptLoader=function(){var b={},c={};return{load:function(a,f,e,d){var g=typeof a=="string";g&&(a=[a]);e||(e=CKEDITOR);var k=a.length,h=[],m=[],n=function(a){f&&(g?f.call(e,a):f.call(e,h,m))};if(k===0)n(true);else{var o=function(a,b){(b?h:m).push(a);if(--k<=0){d&&CKEDITOR.document.getDocumentElement().removeStyle("cursor");n(b)}},l=function(a,l){b[a]=1;var d=c[a];delete c[a];for(var j=0;j<d.length;j++)d[j](a,l)},j=function(a){if(b[a])o(a,true);else{var d=c[a]||(c[a]=[]);d.push(o);if(!(d.length>
+1)){var j=new CKEDITOR.dom.element("script");j.setAttributes({type:"text/javascript",src:a});if(f)if(CKEDITOR.env.ie)j.$.onreadystatechange=function(){if(j.$.readyState=="loaded"||j.$.readyState=="complete"){j.$.onreadystatechange=null;l(a,true)}};else{j.$.onload=function(){setTimeout(function(){l(a,true)},0)};j.$.onerror=function(){l(a,false)}}j.appendTo(CKEDITOR.document.getHead())}}};d&&CKEDITOR.document.getDocumentElement().setStyle("cursor","wait");for(var q=0;q<k;q++)j(a[q])}}}}();
+CKEDITOR.resourceManager=function(b,c){this.basePath=b;this.fileName=c;this.registered={};this.loaded={};this.externals={};this._={waitingList:{}}};
+CKEDITOR.resourceManager.prototype={add:function(b,c){if(this.registered[b])throw'[CKEDITOR.resourceManager.add] The resource name "'+b+'" is already registered.';var a=this.registered[b]=c||{};a.name=b;a.path=this.getPath(b);CKEDITOR.fire(b+CKEDITOR.tools.capitalize(this.fileName)+"Ready",a);return this.get(b)},get:function(b){return this.registered[b]||null},getPath:function(b){var c=this.externals[b];return CKEDITOR.getUrl(c&&c.dir||this.basePath+b+"/")},getFilePath:function(b){var c=this.externals[b];
+return CKEDITOR.getUrl(this.getPath(b)+(c&&typeof c.file=="string"?c.file:this.fileName+".js"))},addExternal:function(b,c,a){for(var b=b.split(","),f=0;f<b.length;f++)this.externals[b[f]]={dir:c,file:a}},load:function(b,c,a){CKEDITOR.tools.isArray(b)||(b=b?[b]:[]);for(var f=this.loaded,e=this.registered,d=[],g={},k={},h=0;h<b.length;h++){var m=b[h];if(m)if(!f[m]&&!e[m]){var n=this.getFilePath(m);d.push(n);n in g||(g[n]=[]);g[n].push(m)}else k[m]=this.get(m)}CKEDITOR.scriptLoader.load(d,function(b,
+l){if(l.length)throw'[CKEDITOR.resourceManager.load] Resource name "'+g[l[0]].join(",")+'" was not found at "'+l[0]+'".';for(var d=0;d<b.length;d++)for(var e=g[b[d]],h=0;h<e.length;h++){var m=e[h];k[m]=this.get(m);f[m]=1}c.call(a,k)},this)}};CKEDITOR.plugins=new CKEDITOR.resourceManager("plugins/","plugin");
+CKEDITOR.plugins.load=CKEDITOR.tools.override(CKEDITOR.plugins.load,function(b){var c={};return function(a,f,e){var d={},g=function(a){b.call(this,a,function(a){CKEDITOR.tools.extend(d,a);var b=[],k;for(k in a){var o=a[k],l=o&&o.requires;if(!c[k]){if(o.icons)for(var j=o.icons.split(","),q=0;q<j.length;q++)CKEDITOR.skin.addIcon(j[q],o.path+"icons/"+j[q]+".png");c[k]=1}if(l){l.split&&(l=l.split(","));for(o=0;o<l.length;o++)d[l[o]]||b.push(l[o])}}if(b.length)g.call(this,b);else{for(k in d){o=d[k];if(o.onLoad&&
+!o.onLoad._called){o.onLoad()===false&&delete d[k];o.onLoad._called=1}}f&&f.call(e||window,d)}},this)};g.call(this,a)}});CKEDITOR.plugins.setLang=function(b,c,a){var f=this.get(b),b=f.langEntries||(f.langEntries={}),f=f.lang||(f.lang=[]);f.split&&(f=f.split(","));CKEDITOR.tools.indexOf(f,c)==-1&&f.push(c);b[c]=a};CKEDITOR.ui=function(b){if(b.ui)return b.ui;this.items={};this.instances={};this.editor=b;this._={handlers:{}};return this};
+CKEDITOR.ui.prototype={add:function(b,c,a){a.name=b.toLowerCase();var f=this.items[b]={type:c,command:a.command||null,args:Array.prototype.slice.call(arguments,2)};CKEDITOR.tools.extend(f,a)},get:function(b){return this.instances[b]},create:function(b){var c=this.items[b],a=c&&this._.handlers[c.type],f=c&&c.command&&this.editor.getCommand(c.command),a=a&&a.create.apply(this,c.args);this.instances[b]=a;f&&f.uiItems.push(a);if(a&&!a.type)a.type=c.type;return a},addHandler:function(b,c){this._.handlers[b]=
+c},space:function(b){return CKEDITOR.document.getById(this.spaceId(b))},spaceId:function(b){return this.editor.id+"_"+b}};CKEDITOR.event.implementOn(CKEDITOR.ui);
+(function(){function b(b,j,o){CKEDITOR.event.call(this);b=b&&CKEDITOR.tools.clone(b);if(j!==void 0){if(j instanceof CKEDITOR.dom.element){if(!o)throw Error("One of the element mode must be specified.");}else throw Error("Expect element of type CKEDITOR.dom.element.");if(CKEDITOR.env.ie&&CKEDITOR.env.quirks&&o==CKEDITOR.ELEMENT_MODE_INLINE)throw Error("Inline element mode is not supported on IE quirks.");if(o==CKEDITOR.ELEMENT_MODE_INLINE&&!j.is(CKEDITOR.dtd.$editable)||o==CKEDITOR.ELEMENT_MODE_REPLACE&&
+j.is(CKEDITOR.dtd.$nonBodyContent))throw Error('The specified element mode is not supported on element: "'+j.getName()+'".');this.element=j;this.elementMode=o;this.name=this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO&&(j.getId()||j.getNameAtt())}else this.elementMode=CKEDITOR.ELEMENT_MODE_NONE;this._={};this.commands={};this.templates={};this.name=this.name||c();this.id=CKEDITOR.tools.getNextId();this.config=CKEDITOR.tools.prototypedCopy(CKEDITOR.config);this.ui=new CKEDITOR.ui(this);this.focusManager=
+new CKEDITOR.focusManager(this);this.keystrokeHandler=new CKEDITOR.keystrokeHandler(this);this.on("mode",a);this.on("readOnly",a);this.on("selectionChange",f);this.on("instanceReady",function(){this.config.startupFocus&&this.focus()});CKEDITOR.fire("instanceCreated",null,this);CKEDITOR.add(this);CKEDITOR.tools.setTimeout(function(){d(this,b)},0,this)}function c(){do var a="editor"+ ++n;while(CKEDITOR.instances[a]);return a}function a(){var a,b=this.commands,c=this.mode;if(c)for(var d in b){a=b[d];
+a[a.startDisabled?"disable":this.readOnly&&!a.readOnly?"disable":a.modes[c]?"enable":"disable"]()}}function f(a){var b=this.commands,c=a.editor,d=a.data.path,o;for(o in b){a=b[o];a.contextSensitive&&a.refresh(c,d)}}function e(a){var b=a.config.customConfig;if(!b)return false;var b=CKEDITOR.getUrl(b),c=o[b]||(o[b]={});if(c.fn){c.fn.call(a,a.config);(CKEDITOR.getUrl(a.config.customConfig)==b||!e(a))&&a.fireOnce("customConfigLoaded")}else CKEDITOR.scriptLoader.load(b,function(){c.fn=CKEDITOR.editorConfig?
+CKEDITOR.editorConfig:function(){};e(a)});return true}function d(a,b){a.on("customConfigLoaded",function(){if(b){if(b.on)for(var c in b.on)a.on(c,b.on[c]);CKEDITOR.tools.extend(a.config,b,true);delete a.config.on}a.readOnly=!(!a.config.readOnly&&!(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.isReadOnly():a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&a.element.getAttribute("disabled")));a.blockless=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&!CKEDITOR.dtd[a.element.getName()].p;a.tabIndex=
+a.config.tabIndex||a.element&&a.element.getAttribute("tabindex")||0;if(a.config.skin)CKEDITOR.skinName=a.config.skin;a.fireOnce("configLoaded");a.dataProcessor=new CKEDITOR.htmlDataProcessor(a);g(a)});if(b&&b.customConfig!=void 0)a.config.customConfig=b.customConfig;e(a)||a.fireOnce("customConfigLoaded")}function g(a){CKEDITOR.skin.loadPart("editor",function(){k(a)})}function k(a){CKEDITOR.lang.load(a.config.language,a.config.defaultLanguage,function(b,c){a.langCode=b;a.lang=CKEDITOR.tools.prototypedCopy(c);
+if(CKEDITOR.env.gecko&&CKEDITOR.env.version<10900&&a.lang.dir=="rtl")a.lang.dir="ltr";if(!a.config.contentsLangDirection)a.config.contentsLangDirection=a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a.element.getDirection(1):a.lang.dir;a.fire("langLoaded");h(a)})}function h(a){var b=a.config,c=b.plugins,d=b.extraPlugins,o=b.removePlugins;if(d)var e=RegExp("(?:^|,)(?:"+d.replace(/\s*,\s*/g,"|")+")(?=,|$)","g"),c=c.replace(e,""),c=c+(","+d);if(o)var g=RegExp("(?:^|,)(?:"+o.replace(/\s*,\s*/g,"|")+")(?=,|$)",
+"g"),c=c.replace(g,"");CKEDITOR.env.air&&(c=c+",adobeair");CKEDITOR.plugins.load(c.split(","),function(c){var d=[],o=[],e=[];a.plugins=c;for(var f in c){var i=c[f],h=i.lang,q=null,t=i.requires,k;CKEDITOR.tools.isArray(t)&&(t=t.join(","));if(t&&(k=t.match(g)))for(;t=k.pop();)CKEDITOR.tools.setTimeout(function(a,b){throw Error('Plugin "'+a.replace(",","")+'" cannot be removed from the plugins list, because it\'s required by "'+b+'" plugin.');},0,null,[t,f]);if(h&&!a.lang[f]){h.split&&(h=h.split(","));
+if(CKEDITOR.tools.indexOf(h,a.langCode)>=0)q=a.langCode;else{q=a.langCode.replace(/-.*/,"");q=q!=a.langCode&&CKEDITOR.tools.indexOf(h,q)>=0?q:CKEDITOR.tools.indexOf(h,"en")>=0?"en":h[0]}if(!i.langEntries||!i.langEntries[q])e.push(CKEDITOR.getUrl(i.path+"lang/"+q+".js"));else{a.lang[f]=i.langEntries[q];q=null}}o.push(q);d.push(i)}CKEDITOR.scriptLoader.load(e,function(){for(var c=["beforeInit","init","afterInit"],e=0;e<c.length;e++)for(var g=0;g<d.length;g++){var f=d[g];e===0&&(o[g]&&f.lang&&f.langEntries)&&
+(a.lang[f.name]=f.langEntries[o[g]]);if(f[c[e]])f[c[e]](a)}a.fireOnce("pluginsLoaded");b.keystrokes&&a.setKeystroke(a.config.keystrokes);for(g=0;g<a.config.blockedKeystrokes.length;g++)a.keystrokeHandler.blockedKeystrokes[a.config.blockedKeystrokes[g]]=1;a.fireOnce("loaded");CKEDITOR.fire("instanceLoaded",null,a)})})}function m(){var a=this.element;if(a&&this.elementMode!=CKEDITOR.ELEMENT_MODE_APPENDTO){var b=this.getData();this.config.htmlEncodeOutput&&(b=CKEDITOR.tools.htmlEncode(b));a.is("textarea")?
+a.setValue(b):a.setHtml(b);return true}return false}b.prototype=CKEDITOR.editor.prototype;CKEDITOR.editor=b;var n=0,o={};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{addCommand:function(a,b){return this.commands[a]=new CKEDITOR.command(this,b)},destroy:function(a){this.fire("beforeDestroy");!a&&m.call(this);this.editable(null);this.fire("destroy");this.removeAllListeners();CKEDITOR.remove(this);CKEDITOR.fire("instanceDestroyed",null,this)},elementPath:function(a){return(a=a||this.getSelection().getStartElement())?
+new CKEDITOR.dom.elementPath(a,this.editable()):null},createRange:function(){var a=this.editable();return a?new CKEDITOR.dom.range(a):null},execCommand:function(a,b){var c=this.getCommand(a),d={name:a,commandData:b,command:c};if(c&&c.state!=CKEDITOR.TRISTATE_DISABLED&&this.fire("beforeCommandExec",d)!==true){d.returnValue=c.exec(d.commandData);if(!c.async&&this.fire("afterCommandExec",d)!==true)return d.returnValue}return false},getCommand:function(a){return this.commands[a]},getData:function(a){!a&&
+this.fire("beforeGetData");var b=this._.data;if(typeof b!="string")b=(b=this.element)&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE?b.is("textarea")?b.getValue():b.getHtml():"";b={dataValue:b};!a&&this.fire("getData",b);return b.dataValue},getSnapshot:function(){var a=this.fire("getSnapshot");if(typeof a!="string"){var b=this.element;b&&this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a=b.is("textarea")?b.getValue():b.getHtml())}return a},loadSnapshot:function(a){this.fire("loadSnapshot",a)},
+setData:function(a,b,c){if(b)this.on("dataReady",function(a){a.removeListener();b.call(a.editor)});a={dataValue:a};!c&&this.fire("setData",a);this._.data=a.dataValue;!c&&this.fire("afterSetData",a)},setReadOnly:function(a){a=a==void 0||a;if(this.readOnly!=a){this.readOnly=a;this.editable().setReadOnly(a);this.fire("readOnly")}},insertHtml:function(a,b){this.fire("insertHtml",{dataValue:a,mode:b})},insertText:function(a){this.fire("insertText",a)},insertElement:function(a){this.fire("insertElement",
+a)},focus:function(){this.fire("beforeFocus")},checkDirty:function(){return this._.previousValue!==this.getSnapshot()},resetDirty:function(){this._.previousValue=this.getSnapshot()},updateElement:function(){return m.call(this)},setKeystroke:function(){for(var a=this.keystrokeHandler.keystrokes,b=CKEDITOR.tools.isArray(arguments[0])?arguments[0]:[[].slice.call(arguments,0)],c,d,o=b.length;o--;){c=b[o];d=0;if(CKEDITOR.tools.isArray(c)){d=c[1];c=c[0]}d?a[c]=d:delete a[c]}}})})();
+CKEDITOR.ELEMENT_MODE_NONE=0;CKEDITOR.ELEMENT_MODE_REPLACE=1;CKEDITOR.ELEMENT_MODE_APPENDTO=2;CKEDITOR.ELEMENT_MODE_INLINE=3;CKEDITOR.htmlParser=function(){this._={htmlPartsRegex:RegExp("<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)--\>)|(?:([^\\s>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'>])*)\\/?>))","g")}};
+(function(){var b=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,c={checked:1,compact:1,declare:1,defer:1,disabled:1,ismap:1,multiple:1,nohref:1,noresize:1,noshade:1,nowrap:1,readonly:1,selected:1};CKEDITOR.htmlParser.prototype={onTagOpen:function(){},onTagClose:function(){},onText:function(){},onCDATA:function(){},onComment:function(){},parse:function(a){for(var f,e,d=0,g;f=this._.htmlPartsRegex.exec(a);){e=f.index;if(e>d){d=a.substring(d,e);if(g)g.push(d);else this.onText(d)}d=
+this._.htmlPartsRegex.lastIndex;if(e=f[1]){e=e.toLowerCase();if(g&&CKEDITOR.dtd.$cdata[e]){this.onCDATA(g.join(""));g=null}if(!g){this.onTagClose(e);continue}}if(g)g.push(f[0]);else if(e=f[3]){e=e.toLowerCase();if(!/="/.test(e)){var k={},h;f=f[4];var m=!!(f&&f.charAt(f.length-1)=="/");if(f)for(;h=b.exec(f);){var n=h[1].toLowerCase();h=h[2]||h[3]||h[4]||"";k[n]=!h&&c[n]?n:h}this.onTagOpen(e,k,m);!g&&CKEDITOR.dtd.$cdata[e]&&(g=[])}}else if(e=f[2])this.onComment(e)}if(a.length>d)this.onText(a.substring(d,
+a.length))}}})();
+CKEDITOR.htmlParser.basicWriter=CKEDITOR.tools.createClass({$:function(){this._={output:[]}},proto:{openTag:function(b){this._.output.push("<",b)},openTagClose:function(b,c){c?this._.output.push(" />"):this._.output.push(">")},attribute:function(b,c){typeof c=="string"&&(c=CKEDITOR.tools.htmlEncodeAttr(c));this._.output.push(" ",b,'="',c,'"')},closeTag:function(b){this._.output.push("</",b,">")},text:function(b){this._.output.push(b)},comment:function(b){this._.output.push("<\!--",b,"--\>")},write:function(b){this._.output.push(b)},
+reset:function(){this._.output=[];this._.indent=false},getHtml:function(b){var c=this._.output.join("");b&&this.reset();return c}}});CKEDITOR.htmlParser.comment=function(b){this.value=b;this._={isBlockLike:false}};CKEDITOR.htmlParser.comment.prototype={type:CKEDITOR.NODE_COMMENT,writeHtml:function(b,c){var a=this.value;if(c){if(!(a=c.onComment(a,this)))return;if(typeof a!="string"){a.parent=this.parent;a.writeHtml(b,c);return}}b.comment(a)}};
+(function(){CKEDITOR.htmlParser.text=function(b){this.value=b;this._={isBlockLike:false}};CKEDITOR.htmlParser.text.prototype={type:CKEDITOR.NODE_TEXT,writeHtml:function(b,c){var a=this.value;(!c||(a=c.onText(a,this)))&&b.text(a)}}})();(function(){CKEDITOR.htmlParser.cdata=function(b){this.value=b};CKEDITOR.htmlParser.cdata.prototype={type:CKEDITOR.NODE_TEXT,writeHtml:function(b){b.write(this.value)}}})();
+CKEDITOR.htmlParser.fragment=function(){this.children=[];this.parent=null;this._={isBlockLike:true,hasInlineStarted:false}};
+(function(){function b(a){return a.name=="a"&&a.attributes.href||CKEDITOR.dtd.$removeEmpty[a.name]}var c=CKEDITOR.tools.extend({table:1,ul:1,ol:1,dl:1},CKEDITOR.dtd.table,CKEDITOR.dtd.ul,CKEDITOR.dtd.ol,CKEDITOR.dtd.dl),a={ol:1,ul:1},f=CKEDITOR.tools.extend({},{html:1},CKEDITOR.dtd.html,CKEDITOR.dtd.body,CKEDITOR.dtd.head,{style:1,script:1});CKEDITOR.htmlParser.fragment.fromHtml=function(e,d,g){function k(a){var b;if(y.length>0)for(var c=0;c<y.length;c++){var d=y[c],l=d.name,o=CKEDITOR.dtd[l],j=i.name&&
+CKEDITOR.dtd[i.name];if((!j||j[l])&&(!a||!o||o[a]||!CKEDITOR.dtd[a])){if(!b){h();b=1}d=d.clone();d.parent=i;i=d;y.splice(c,1);c--}else if(l==i.name){n(i,i.parent,1);c--}}}function h(){for(;z.length;)n(z.shift(),i)}function m(a){if(a._.isBlockLike&&a.name!="pre"&&a.name!="textarea"){var b=a.children.length,c=a.children[b-1],d;if(c&&c.type==CKEDITOR.NODE_TEXT)(d=CKEDITOR.tools.rtrim(c.value))?c.value=d:a.children.length=b-1}}function n(a,c,d){var c=c||i||q,l=i;if(a.previous===void 0){if(o(c,a)){i=c;
+j.onTagOpen(g,{});a.returnPoint=c=i}m(a);(!b(a)||a.children.length)&&c.add(a);a.name=="pre"&&(A=false);a.name=="textarea"&&(s=false)}if(a.returnPoint){i=a.returnPoint;delete a.returnPoint}else i=d?c:l}function o(a,b){if((a==q||a.name=="body")&&g&&(!a.name||CKEDITOR.dtd[a.name][g])){var c,d;return(c=b.attributes&&(d=b.attributes["data-cke-real-element-type"])?d:b.name)&&c in CKEDITOR.dtd.$inline&&!(c in CKEDITOR.dtd.head)&&!b.isOrphan||b.type==CKEDITOR.NODE_TEXT}}function l(a,b){return a in CKEDITOR.dtd.$listItem||
+a in CKEDITOR.dtd.$tableContent?a==b||a=="dt"&&b=="dd"||a=="dd"&&b=="dt":false}var j=new CKEDITOR.htmlParser,q=d instanceof CKEDITOR.htmlParser.element?d:typeof d=="string"?new CKEDITOR.htmlParser.element(d):new CKEDITOR.htmlParser.fragment,y=[],z=[],i=q,s=q.name=="textarea",A=q.name=="pre";j.onTagOpen=function(d,o,g,e){o=new CKEDITOR.htmlParser.element(d,o);if(o.isUnknown&&g)o.isEmpty=true;o.isOptionalClose=e;if(b(o))y.push(o);else{if(d=="pre")A=true;else{if(d=="br"&&A){i.add(new CKEDITOR.htmlParser.text("\n"));
+return}d=="textarea"&&(s=true)}if(d=="br")z.push(o);else{for(;;){e=(g=i.name)?CKEDITOR.dtd[g]||(i._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f;if(!o.isUnknown&&!i.isUnknown&&!e[d])if(i.isOptionalClose)j.onTagClose(g);else if(d in a&&g in a){g=i.children;(g=g[g.length-1])&&g.name=="li"||n(g=new CKEDITOR.htmlParser.element("li"),i);!o.returnPoint&&(o.returnPoint=i);i=g}else if(d in CKEDITOR.dtd.$listItem&&!l(d,g))j.onTagOpen(d=="li"?"ul":"dl",{},0,1);else if(g in c&&!l(d,g)){!o.returnPoint&&
+(o.returnPoint=i);i=i.parent}else{g in CKEDITOR.dtd.$inline&&y.unshift(i);if(i.parent)n(i,i.parent,1);else{o.isOrphan=1;break}}else break}k(d);h();o.parent=i;o.isEmpty?n(o):i=o}}};j.onTagClose=function(a){for(var b=y.length-1;b>=0;b--)if(a==y[b].name){y.splice(b,1);return}for(var c=[],d=[],o=i;o!=q&&o.name!=a;){o._.isBlockLike||d.unshift(o);c.push(o);o=o.returnPoint||o.parent}if(o!=q){for(b=0;b<c.length;b++){var l=c[b];n(l,l.parent)}i=o;o._.isBlockLike&&h();n(o,o.parent);if(o==i)i=i.parent;y=y.concat(d)}a==
+"body"&&(g=false)};j.onText=function(b){if((!i._.hasInlineStarted||z.length)&&!A&&!s){b=CKEDITOR.tools.ltrim(b);if(b.length===0)return}var d=i.name,l=d?CKEDITOR.dtd[d]||(i._.isBlockLike?CKEDITOR.dtd.div:CKEDITOR.dtd.span):f;if(!s&&!l["#"]&&d in c){j.onTagOpen(d in a?"li":d=="dl"?"dd":d=="table"?"tr":d=="tr"?"td":"");j.onText(b)}else{h();k();!A&&!s&&(b=b.replace(/[\t\r\n ]{2,}|[\t\r\n]/g," "));b=new CKEDITOR.htmlParser.text(b);if(o(i,b))this.onTagOpen(g,{},0,1);i.add(b)}};j.onCDATA=function(a){i.add(new CKEDITOR.htmlParser.cdata(a))};
+j.onComment=function(a){h();k();i.add(new CKEDITOR.htmlParser.comment(a))};j.parse(e);for(h(!CKEDITOR.env.ie&&1);i!=q;)n(i,i.parent,1);m(q);return q};CKEDITOR.htmlParser.fragment.prototype={type:CKEDITOR.NODE_DOCUMENT_FRAGMENT,add:function(a,b){isNaN(b)&&(b=this.children.length);var c=b>0?this.children[b-1]:null;if(c){if(a._.isBlockLike&&c.type==CKEDITOR.NODE_TEXT){c.value=CKEDITOR.tools.rtrim(c.value);if(c.value.length===0){this.children.pop();this.add(a);return}}c.next=a}a.previous=c;a.parent=this;
+this.children.splice(b,0,a);if(!this._.hasInlineStarted)this._.hasInlineStarted=a.type==CKEDITOR.NODE_TEXT||a.type==CKEDITOR.NODE_ELEMENT&&!a._.isBlockLike},writeHtml:function(a,b){var c;this.filterChildren=function(){var a=new CKEDITOR.htmlParser.basicWriter;this.writeChildrenHtml.call(this,a,b);a=a.getHtml();this.children=(new CKEDITOR.htmlParser.fragment.fromHtml(a)).children;c=1};b&&b.onRoot(this);this.writeChildrenHtml(a,c?null:b)},writeChildrenHtml:function(a,b,c){if(c&&!this.parent&&b)b.onRoot(this);
+for(c=0;c<this.children.length;c++)this.children[c].writeHtml(a,b)}}})();
+(function(){function b(a,b){for(var c=0;a&&c<b.length;c++)var e=b[c],a=a.replace(e[0],e[1]);return a}function c(a,b,c){typeof b=="function"&&(b=[b]);var e,f;f=a.length;var n=b&&b.length;if(n){for(e=0;e<f&&a[e].pri<c;e++);for(f=n-1;f>=0;f--)if(n=b[f]){n.pri=c;a.splice(e,0,n)}}}function a(a,b,c){if(b)for(var e in b){var m=a[e];a[e]=f(m,b[e],c);m||a.$length++}}function f(a,b,f){if(b){b.pri=f;if(a){if(a.splice)c(a,b,f);else{a=a.pri>f?[b,a]:[a,b];a.filter=e}return a}return b.filter=b}}function e(a){for(var b=
+a.type||a instanceof CKEDITOR.htmlParser.fragment,c=0;c<this.length;c++){if(b)var e=a.type,f=a.name;var n=this[c].apply(window,arguments);if(n===false)return n;if(b){if(n&&(n.name!=f||n.type!=e))return n}else if(typeof n!="string")return n;n!=void 0&&(a=n)}return a}CKEDITOR.htmlParser.filter=CKEDITOR.tools.createClass({$:function(a){this._={elementNames:[],attributeNames:[],elements:{$length:0},attributes:{$length:0}};a&&this.addRules(a,10)},proto:{addRules:function(b,e){typeof e!="number"&&(e=10);
+c(this._.elementNames,b.elementNames,e);c(this._.attributeNames,b.attributeNames,e);a(this._.elements,b.elements,e);a(this._.attributes,b.attributes,e);this._.text=f(this._.text,b.text,e)||this._.text;this._.comment=f(this._.comment,b.comment,e)||this._.comment;this._.root=f(this._.root,b.root,e)||this._.root},onElementName:function(a){return b(a,this._.elementNames)},onAttributeName:function(a){return b(a,this._.attributeNames)},onText:function(a){var b=this._.text;return b?b.filter(a):a},onComment:function(a,
+b){var c=this._.comment;return c?c.filter(a,b):a},onRoot:function(a){var b=this._.root;return b?b.filter(a):a},onElement:function(a){for(var b=[this._.elements["^"],this._.elements[a.name],this._.elements.$],c,e=0;e<3;e++)if(c=b[e]){c=c.filter(a,this);if(c===false)return null;if(c&&c!=a)return this.onNode(c);if(a.parent&&!a.name)break}return a},onNode:function(a){var b=a.type;return b==CKEDITOR.NODE_ELEMENT?this.onElement(a):b==CKEDITOR.NODE_TEXT?new CKEDITOR.htmlParser.text(this.onText(a.value)):
+b==CKEDITOR.NODE_COMMENT?new CKEDITOR.htmlParser.comment(this.onComment(a.value)):null},onAttribute:function(a,b,c){if(b=this._.attributes[b]){a=b.filter(c,a,this);if(a===false)return false;if(typeof a!="undefined")return a}return c}}})})();
+(function(){function b(b,c){function o(a){return a||CKEDITOR.env.ie?new CKEDITOR.htmlParser.text("Â "):new CKEDITOR.htmlParser.element("br",{"data-cke-bogus":1})}function l(b,c){return function(l){if(l.type!=CKEDITOR.NODE_DOCUMENT_FRAGMENT){var e=[],g=a(l),i,K;if(g)for(j(g,1)&&e.push(g);g;){if(d(g)&&(i=f(g))&&j(i))if((K=f(i))&&!d(K))e.push(i);else{var h=i,q=o(t),m=h.parent.children,y=CKEDITOR.tools.indexOf(m,h);m.splice(y+1,0,q);m=h.next;h.next=q;q.previous=h;q.parent=h.parent;q.next=m;k(i)}g=g.previous}for(g=
+0;g<e.length;g++)k(e[g]);if(e=CKEDITOR.env.opera&&!b||(typeof c=="function"?c(l)!==false:c))if(!t&&CKEDITOR.env.ie&&l.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)e=false;else if(!t&&CKEDITOR.env.ie&&(document.documentMode>7||l.name in CKEDITOR.dtd.tr||l.name in CKEDITOR.dtd.$listItem))e=false;else{e=a(l);e=!e||l.name=="form"&&e.name=="input"}e&&l.add(o(b))}}}function j(a,b){if((!t||!CKEDITOR.env.ie)&&a.type==CKEDITOR.NODE_ELEMENT&&a.name=="br"&&!a.attributes["data-cke-eol"])return true;var c;if(a.type==
+CKEDITOR.NODE_TEXT&&(c=a.value.match(s))){if(c.index){g(a,new CKEDITOR.htmlParser.text(a.value.substring(0,c.index)));a.value=c[0]}if(CKEDITOR.env.ie&&t&&(!b||a.parent.name in h))return true;if(!t)if((c=a.previous)&&c.name=="br"||!c||d(c))return true}return false}var i={elements:{}},t=c=="html",h=CKEDITOR.tools.extend({},E),q;for(q in h)"#"in B[q]||delete h[q];for(q in h)i.elements[q]=l(t,b.config.fillEmptyBlocks!==false);i.root=l(t);i.elements.br=function(a){return function(b){if(b.parent.type!=
+CKEDITOR.NODE_DOCUMENT_FRAGMENT){var c=b.attributes;if("data-cke-bogus"in c||"data-cke-eol"in c)delete c["data-cke-bogus"];else{for(c=b.next;c&&e(c);)c=c.next;var l=f(b);if(!c&&d(b.parent)){b=b.parent;c=o(a);l=b.children[b.children.length-1];b.children.push(c);c.parent=b;if(l){l.next=c;c.previous=l}}else d(c)&&(l&&!d(l))&&g(c,o(a))}}}}(t);return i}function c(a){return a.enterMode!=CKEDITOR.ENTER_BR&&a.autoParagraph!==false?a.enterMode==CKEDITOR.ENTER_DIV?"div":"p":false}function a(a){for(a=a.children[a.children.length-
+1];a&&e(a);)a=a.previous;return a}function f(a){for(a=a.previous;a&&e(a);)a=a.previous;return a}function e(a){return a.type==CKEDITOR.NODE_TEXT&&!CKEDITOR.tools.trim(a.value)||a.type==CKEDITOR.NODE_ELEMENT&&a.attributes["data-cke-bookmark"]}function d(a){return a&&(a.type==CKEDITOR.NODE_ELEMENT&&a.name in E||a.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT)}function g(a,b){var c=a.parent.children,d=CKEDITOR.tools.indexOf(c,a);c.splice(d,0,b);c=a.previous;a.previous=b;b.next=a;b.parent=a.parent;if(c){b.previous=
+c;c.next=b}}function k(a){var b=a.parent.children,c=CKEDITOR.tools.indexOf(b,a),d=a.previous,a=a.next;d&&(d.next=a);a&&(a.previous=d);b.splice(c,1)}function h(a){var b=a.parent;return b?CKEDITOR.tools.indexOf(b.children,a):-1}function m(a){a=a.attributes;a.contenteditable!="false"&&(a["data-cke-editable"]=a.contenteditable?"true":1);a.contenteditable="false"}function n(a){a=a.attributes;switch(a["data-cke-editable"]){case "true":a.contenteditable="true";break;case "1":delete a.contenteditable}}function o(a){return a.replace(v,
+function(a,b,c){return"<"+b+c.replace(t,function(a,b){return!/^on/.test(b)&&c.indexOf("data-cke-saved-"+b)==-1?" data-cke-saved-"+a+" data-cke-"+CKEDITOR.rnd+"-"+a:a})+">"})}function l(a){return a.replace(w,function(a){return"<cke:encoded>"+encodeURIComponent(a)+"</cke:encoded>"})}function j(a){return a.replace(I,function(a,b){return decodeURIComponent(b)})}function q(a){return a.replace(/<\!--(?!{cke_protected})[\s\S]+?--\>/g,function(a){return"<\!--"+A+"{C}"+encodeURIComponent(a).replace(/--/g,
+"%2D%2D")+"--\>"})}function y(a){return a.replace(/<\!--\{cke_protected\}\{C\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)})}function z(a,b){var c=b._.dataStore;return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,function(a,b){return decodeURIComponent(b)}).replace(/\{cke_protected_(\d+)\}/g,function(a,b){return c&&c[b]||""})}function i(a,b){for(var c=[],d=b.config.protectedSource,o=b._.dataStore||(b._.dataStore={id:1}),l=/<\!--\{cke_temp(comment)?\}(\d*?)--\>/g,d=[/<script[\s\S]*?<\/script>/gi,
+/<noscript[\s\S]*?<\/noscript>/gi].concat(d),a=a.replace(/<\!--[\s\S]*?--\>/g,function(a){return"<\!--{cke_tempcomment}"+(c.push(a)-1)+"--\>"}),j=0;j<d.length;j++)a=a.replace(d[j],function(a){a=a.replace(l,function(a,b,d){return c[d]});return/cke_temp(comment)?/.test(a)?a:"<\!--{cke_temp}"+(c.push(a)-1)+"--\>"});a=a.replace(l,function(a,b,d){return"<\!--"+A+(b?"{C}":"")+encodeURIComponent(c[d]).replace(/--/g,"%2D%2D")+"--\>"});return a.replace(/(['"]).*?\1/g,function(a){return a.replace(/<\!--\{cke_protected\}([\s\S]+?)--\>/g,
+function(a,b){o[o.id]=decodeURIComponent(b);return"{cke_protected_"+o.id++ +"}"})})}CKEDITOR.htmlDataProcessor=function(a){var c,d;this.editor=a;this.dataFilter=c=new CKEDITOR.htmlParser.filter;this.htmlFilter=d=new CKEDITOR.htmlParser.filter;this.writer=new CKEDITOR.htmlParser.basicWriter;c.addRules(u);c.addRules(b(a,"data"));d.addRules(r);d.addRules(b(a,"html"))};CKEDITOR.htmlDataProcessor.prototype={toHtml:function(a,b,d){var a=i(a,this.editor),a=o(a),a=l(a),a=a.replace(G,"$1cke:$2"),a=a.replace(Q,
+"<cke:$1$2></cke:$1>"),a=CKEDITOR.env.opera?a:a.replace(/(<pre\b[^>]*>)(\r\n|\n)/g,"$1$2$2"),e=this.editor.editable(),f;!b&&b!==null&&(b=e.getName());e=b||e.getName();if(CKEDITOR.env.ie&&CKEDITOR.env.version<9&&e=="pre"){e="div";a="<pre>"+a+"</pre>";f=1}e=this.editor.document.createElement(e);e.setHtml("a"+a);a=e.getHtml().substr(1);a=a.replace(RegExp(" data-cke-"+CKEDITOR.rnd+"-","ig")," ");f&&(a=a.replace(/^<pre>|<\/pre>$/gi,""));a=a.replace(C,"$1$2");a=j(a);a=y(a);a=CKEDITOR.htmlParser.fragment.fromHtml(a,
+b,d===false?false:c(this.editor.config));b=new CKEDITOR.htmlParser.basicWriter;a.writeChildrenHtml(b,this.dataFilter,1);a=b.getHtml(true);return a=q(a)},toDataFormat:function(a){var b=this.editor.editable(),d=this.writer,a=CKEDITOR.htmlParser.fragment.fromHtml(a,b.getName(),c(this.editor.config));d.reset();a.writeChildrenHtml(d,this.htmlFilter,1);d=d.getHtml(true);d=y(d);return d=z(d,this.editor)}};var s=/(?: |\xa0)$/,A="{cke_protected}",B=CKEDITOR.dtd,p=["caption","colgroup","col","thead","tfoot",
+"tbody"],E=CKEDITOR.tools.extend({},B.$blockLimit,B.$block),u={elements:{},attributeNames:[[/^on/,"data-cke-pa-on"]]},r={elementNames:[[/^cke:/,""],[/^\?xml:namespace$/,""]],attributeNames:[[/^data-cke-(saved|pa)-/,""],[/^data-cke-.*/,""],["hidefocus",""]],elements:{$:function(a){var b=a.attributes;if(b){if(b["data-cke-temp"])return false;for(var c=["name","href","src"],d,o=0;o<c.length;o++){d="data-cke-saved-"+c[o];d in b&&delete b[c[o]]}}return a},table:function(a){a.children.slice(0).sort(function(a,
+b){var c,d;if(a.type==CKEDITOR.NODE_ELEMENT&&b.type==a.type){c=CKEDITOR.tools.indexOf(p,a.name);d=CKEDITOR.tools.indexOf(p,b.name)}if(!(c>-1&&d>-1&&c!=d)){c=h(a);d=h(b)}return c>d?1:-1})},embed:function(a){var b=a.parent;if(b&&b.name=="object"){var c=b.attributes.width,b=b.attributes.height;c&&(a.attributes.width=c);b&&(a.attributes.height=b)}},param:function(a){a.children=[];a.isEmpty=true;return a},a:function(a){if(!a.children.length&&!a.attributes.name&&!a.attributes["data-cke-saved-name"])return false},
+span:function(a){a.attributes["class"]=="Apple-style-span"&&delete a.name},html:function(a){delete a.attributes.contenteditable;delete a.attributes["class"]},body:function(a){delete a.attributes.spellcheck;delete a.attributes.contenteditable},style:function(a){var b=a.children[0];b&&b.value&&(b.value=CKEDITOR.tools.trim(b.value));if(!a.attributes.type)a.attributes.type="text/css"},title:function(a){var b=a.children[0];b&&(b.value=a.attributes["data-cke-title"]||"")}},attributes:{"class":function(a){return CKEDITOR.tools.ltrim(a.replace(/(?:^|\s+)cke_[^\s]*/g,
+""))||false}}};if(CKEDITOR.env.ie)r.attributes.style=function(a){return a.replace(/(^|;)([^\:]+)/g,function(a){return a.toLowerCase()})};for(var D in{input:1,textarea:1}){u.elements[D]=m;r.elements[D]=n}var v=/<(a|area|img|input|source)\b([^>]*)>/gi,t=/\b(on\w+|href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+))/gi,w=/(?:<style(?=[ >])[^>]*>[\s\S]*<\/style>)|(?:<(:?link|meta|base)[^>]*>)/gi,I=/<cke:encoded>([^<]*)<\/cke:encoded>/gi,G=/(<\/?)((?:object|embed|param|html|body|head|title)[^>]*>)/gi,
+C=/(<\/?)cke:((?:html|body|head|title)[^>]*>)/gi,Q=/<cke:(param|embed)([^>]*?)\/?>(?!\s*<\/cke:\1)/gi})();
+CKEDITOR.htmlParser.element=function(b,c){this.name=b;this.attributes=c||{};this.children=[];var a=b||"",f=a.match(/^cke:(.*)/);f&&(a=f[1]);a=!(!CKEDITOR.dtd.$nonBodyContent[a]&&!CKEDITOR.dtd.$block[a]&&!CKEDITOR.dtd.$listItem[a]&&!CKEDITOR.dtd.$tableContent[a]&&!(CKEDITOR.dtd.$nonEditable[a]||a=="br"));this.isEmpty=!!CKEDITOR.dtd.$empty[b];this.isUnknown=!CKEDITOR.dtd[b];this._={isBlockLike:a,hasInlineStarted:this.isEmpty||!a}};
+CKEDITOR.htmlParser.cssStyle=function(b){var c={};((b instanceof CKEDITOR.htmlParser.element?b.attributes.style:b)||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(a,b,e){b=="font-family"&&(e=e.replace(/["']/g,""));c[b.toLowerCase()]=e});return{rules:c,populate:function(a){var b=this.toString();if(b)a instanceof CKEDITOR.dom.element?a.setAttribute("style",b):a instanceof CKEDITOR.htmlParser.element?a.attributes.style=b:a.style=b},toString:function(){var a=[],b;
+for(b in c)c[b]&&a.push(b,":",c[b],";");return a.join("")}}};
+(function(){var b=function(b,a){b=b[0];a=a[0];return b<a?-1:b>a?1:0};CKEDITOR.htmlParser.element.prototype={type:CKEDITOR.NODE_ELEMENT,add:CKEDITOR.htmlParser.fragment.prototype.add,clone:function(){return new CKEDITOR.htmlParser.element(this.name,this.attributes)},writeHtml:function(c,a){var f=this.attributes,e=this,d=e.name,g,k,h,m;e.filterChildren=function(){if(!m){var b=new CKEDITOR.htmlParser.basicWriter;CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.call(e,b,a);e.children=(new CKEDITOR.htmlParser.fragment.fromHtml(b.getHtml(),
+e.clone(),0)).children;m=1}};if(a){if(!this.parent)a.onRoot(this);for(;;){if(!(d=a.onElementName(d)))return;e.name=d;if(!(e=a.onElement(e)))return;e.parent=this.parent;if(e.name==d)break;if(e.type!=CKEDITOR.NODE_ELEMENT){e.writeHtml(c,a);return}d=e.name;if(!d){for(var d=0,n=this.children.length;d<n;d++)this.children[d].parent=e.parent;this.writeChildrenHtml.call(e,c,m?null:a);return}}f=e.attributes}c.openTag(d,f);for(var n=[],o=0;o<2;o++)for(g in f){k=g;h=f[g];if(o==1)n.push([g,h]);else if(a){for(;;)if(k=
+a.onAttributeName(g))if(k!=g){delete f[g];g=k}else break;else{delete f[g];break}k&&((h=a.onAttribute(e,k,h))===false?delete f[k]:f[k]=h)}}c.sortAttributes&&n.sort(b);f=n.length;for(o=0;o<f;o++){g=n[o];c.attribute(g[0],g[1])}c.openTagClose(d,e.isEmpty);if(!e.isEmpty){this.writeChildrenHtml.call(e,c,m?null:a);c.closeTag(d)}},writeChildrenHtml:function(b,a){CKEDITOR.htmlParser.fragment.prototype.writeChildrenHtml.apply(this,arguments)}}})();
+(function(){var b={};CKEDITOR.template=function(c){if(b[c])this.output=b[c];else{var a=c.replace(/'/g,"\\'").replace(/{([^}]+)}/g,function(a,b){return"',data['"+b+"']==undefined?'{"+b+"}':data['"+b+"'],'"});this.output=b[c]=Function("data","buffer","return buffer?buffer.push('"+a+"'):['"+a+"'].join('');")}}})();delete CKEDITOR.loadFullCore;CKEDITOR.instances={};CKEDITOR.document=new CKEDITOR.dom.document(document);
+CKEDITOR.add=function(b){CKEDITOR.instances[b.name]=b;b.on("focus",function(){if(CKEDITOR.currentInstance!=b){CKEDITOR.currentInstance=b;CKEDITOR.fire("currentInstance")}});b.on("blur",function(){if(CKEDITOR.currentInstance==b){CKEDITOR.currentInstance=null;CKEDITOR.fire("currentInstance")}});CKEDITOR.fire("instance",null,b)};CKEDITOR.remove=function(b){delete CKEDITOR.instances[b.name]};
+(function(){var b={};CKEDITOR.addTemplate=function(c,a){var f=b[c];if(f)return f;f={name:c,source:a};CKEDITOR.fire("template",f);return b[c]=new CKEDITOR.template(f.source)};CKEDITOR.getTemplate=function(c){return b[c]}})();(function(){var b=[];CKEDITOR.addCss=function(c){b.push(c)};CKEDITOR.getCss=function(){return b.join("\n")}})();CKEDITOR.on("instanceDestroyed",function(){CKEDITOR.tools.isEmpty(this.instances)&&CKEDITOR.fire("reset")});CKEDITOR.TRISTATE_ON=1;CKEDITOR.TRISTATE_OFF=2;
+CKEDITOR.TRISTATE_DISABLED=0;
+(function(){CKEDITOR.inline=function(b,c){if(!CKEDITOR.env.isCompatible)return null;b=CKEDITOR.dom.element.get(b);if(b.getEditor())throw'The editor instance "'+b.getEditor().name+'" is already attached to the provided element.';var a=new CKEDITOR.editor(c,b,CKEDITOR.ELEMENT_MODE_INLINE);a.setData(b.getHtml(),null,true);a.on("loaded",function(){a.fire("uiReady");a.editable(b);a.container=b;a.setData(a.getData(1));a.fire("contentDom");a.mode="wysiwyg";a.fire("mode");a.fireOnce("instanceReady");CKEDITOR.fire("instanceReady",
+null,a);a.resetDirty()},null,null,1E4);a.on("destroy",function(){a.element.clearCustomData();delete a.element});return a};CKEDITOR.inlineAll=function(){var b,c,a;for(a in CKEDITOR.dtd.$editable)for(var f=CKEDITOR.document.getElementsByTag(a),e=0,d=f.count();e<d;e++){b=f.getItem(e);if(b.getAttribute("contenteditable")=="true"){c={element:b,config:{}};CKEDITOR.fire("inline",c)!==false&&CKEDITOR.inline(b,c.config)}}};CKEDITOR.domReady(function(){!CKEDITOR.disableAutoInline&&CKEDITOR.inlineAll()})})();
+CKEDITOR.replaceClass="ckeditor";
+(function(){function b(b,e,k,h){if(!CKEDITOR.env.isCompatible)return null;b=CKEDITOR.dom.element.get(b);if(b.getEditor())throw'The editor instance "'+b.getEditor().name+'" is already attached to the provided element.';var m=new CKEDITOR.editor(e,b,h);h==CKEDITOR.ELEMENT_MODE_REPLACE&&b.setStyle("visibility","hidden");k&&m.setData(k,null,true);m.on("loaded",function(){a(m);h==CKEDITOR.ELEMENT_MODE_REPLACE&&m.config.autoUpdateElement&&f(m);m.setMode(m.config.startupMode,function(){m.fireOnce("instanceReady");
+CKEDITOR.fire("instanceReady",null,m);m.resetDirty()})});m.on("destroy",c);return m}function c(){var a=this.container,b=this.element;if(a){a.clearCustomData();a.remove()}if(b){b.clearCustomData();this.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&b.show();delete this.element}}function a(a){var b=a.name,c=a.element,f=a.elementMode,m=a.fire("uiSpace",{space:"top",html:""}).html,n=a.fireOnce("uiSpace",{space:"bottom",html:""}).html;e||(e=CKEDITOR.addTemplate("maincontainer",'<{outerEl} id="cke_{name}" class="{id} cke cke_reset cke_chrome cke_editor_{name} cke_{langDir} '+
+CKEDITOR.env.cssClass+'" dir="{langDir}" lang="{langCode}" role="application" aria-labelledby="cke_{name}_arialbl"><span id="cke_{name}_arialbl" class="cke_voice_label">{voiceLabel}</span><{outerEl} class="cke_inner cke_reset" role="presentation">{topHtml}<{outerEl} id="{contentId}" class="cke_contents cke_reset" role="presentation"></{outerEl}>{bottomHtml}</{outerEl}></{outerEl}>'));b=CKEDITOR.dom.element.createFromHtml(e.output({id:a.id,name:b,langDir:a.lang.dir,langCode:a.langCode,voiceLabel:a.lang.editor,
+topHtml:m?'<span id="'+a.ui.spaceId("top")+'" class="cke_top cke_reset_all" role="presentation" style="height:auto">'+m+"</span>":"",contentId:a.ui.spaceId("contents"),bottomHtml:n?'<span id="'+a.ui.spaceId("bottom")+'" class="cke_bottom cke_reset_all" role="presentation">'+n+"</span>":"",outerEl:CKEDITOR.env.ie?"span":"div"}));if(f==CKEDITOR.ELEMENT_MODE_REPLACE){c.hide();b.insertAfter(c)}else c.append(b);a.container=b;m&&a.ui.space("top").unselectable();n&&a.ui.space("bottom").unselectable();c=
+a.config.width;f=a.config.height;c&&b.setStyle("width",CKEDITOR.tools.cssLength(c));f&&a.ui.space("contents").setStyle("height",CKEDITOR.tools.cssLength(f));b.disableContextMenu();CKEDITOR.env.webkit&&b.on("focus",function(){a.focus()});a.fireOnce("uiReady")}function f(a){var b=a.element;if(a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&b.is("textarea")){var c=b.$.form&&new CKEDITOR.dom.element(b.$.form);if(c){var e=function(){a.updateElement()};c.on("submit",e);if(!c.$.submit.nodeName&&!c.$.submit.length)c.$.submit=
+CKEDITOR.tools.override(c.$.submit,function(b){return function(){a.updateElement();b.apply?b.apply(this,arguments):b()}});a.on("destroy",function(){c.removeListener("submit",e)})}}}CKEDITOR.replace=function(a,c){return b(a,c,null,CKEDITOR.ELEMENT_MODE_REPLACE)};CKEDITOR.appendTo=function(a,c,e){return b(a,c,e,CKEDITOR.ELEMENT_MODE_APPENDTO)};CKEDITOR.replaceAll=function(){for(var a=document.getElementsByTagName("textarea"),b=0;b<a.length;b++){var c=null,e=a[b];if(e.name||e.id){if(typeof arguments[0]==
+"string"){if(!RegExp("(?:^|\\s)"+arguments[0]+"(?:$|\\s)").test(e.className))continue}else if(typeof arguments[0]=="function"){c={};if(arguments[0](e,c)===false)continue}this.replace(e,c)}}};CKEDITOR.editor.prototype.addMode=function(a,b){(this._.modes||(this._.modes={}))[a]=b};CKEDITOR.editor.prototype.setMode=function(a,b){var c=this,e=this._.modes;if(!(a==c.mode||!e||!e[a])){c.fire("beforeSetMode",a);if(c.mode){var f=c.checkDirty();c._.previousMode=c.mode;c.fire("beforeModeUnload");c.editable(0);
+c.ui.space("contents").setHtml("");c.mode=""}this._.modes[a](function(){c.mode=a;if(f!==void 0){c.mayBeDirty=true;!f&&c.resetDirty()}setTimeout(function(){c.fire("mode");b&&b.call(c)},0)})}};CKEDITOR.editor.prototype.resize=function(a,b,c,e){var f=this.container,n=this.ui.space("contents"),o=CKEDITOR.env.webkit&&this.document&&this.document.getWindow().$.frameElement,e=e?f.getChild(1):f;e.setSize("width",a,true);o&&(o.style.width="1%");n.setStyle("height",Math.max(b-(c?0:(e.$.offsetHeight||0)-(n.$.clientHeight||
+0)),0)+"px");o&&(o.style.width="100%");this.fire("resize")};CKEDITOR.editor.prototype.getResizable=function(a){return a?this.ui.space("contents"):this.container};var e;CKEDITOR.domReady(function(){CKEDITOR.replaceClass&&CKEDITOR.replaceAll(CKEDITOR.replaceClass)})})();CKEDITOR.config.startupMode="wysiwyg";
+(function(){function b(b){var c=b.editor,d=c.editable(),e=b.data.path,f=e.blockLimit,g=b.data.selection.getRanges()[0],i=c.config.enterMode;if(CKEDITOR.env.gecko){var h=e.block||e.blockLimit||e.root,m=h&&h.getLast(a);h&&(h.isBlockBoundary()&&(!m||!(m.type==CKEDITOR.NODE_ELEMENT&&m.isBlockBoundary()))&&!h.is("pre")&&!h.getBogus())&&h.appendBogus()}if(c.config.autoParagraph!==false&&i!=CKEDITOR.ENTER_BR&&g.collapsed&&d.equals(f)&&!e.block){d=g.clone();d.enlarge(CKEDITOR.ENLARGE_BLOCK_CONTENTS);e=new CKEDITOR.dom.walker(d);
+e.guard=function(b){return!a(b)||b.type==CKEDITOR.NODE_COMMENT||b.isReadOnly()};if(!e.checkForward()||d.checkStartOfBlock()&&d.checkEndOfBlock()){c=g.fixBlock(true,c.config.enterMode==CKEDITOR.ENTER_DIV?"div":"p");if(CKEDITOR.env.ie)(c=c.getFirst(a))&&(c.type==CKEDITOR.NODE_TEXT&&CKEDITOR.tools.trim(c.getText()).match(/^(?: |\xa0)$/))&&c.remove();g.select();b.cancel()}}}function c(a){var b=a.data.getTarget();if(b.is("input")){b=b.getAttribute("type");(b=="submit"||b=="reset")&&a.data.preventDefault()}}
+function a(a){return h(a)&&m(a)}function f(a,b){return function(c){var d=CKEDITOR.dom.element.get(c.data.$.toElement||c.data.$.fromElement||c.data.$.relatedTarget);(!d||!b.equals(d)&&!b.contains(d))&&a.call(this,c)}}function e(b){var c,d=b.getRanges()[0],b=b.root,e=d.startPath(),f={table:1,ul:1,ol:1,dl:1},g=CKEDITOR.dom.walker.bogus();if(e.contains(f)){var i=d.clone();i.collapse(1);i.setStartAt(b,CKEDITOR.POSITION_AFTER_START);i=new CKEDITOR.dom.walker(i);e=function(b,d){return function(b,o){o&&(b.type==
+CKEDITOR.NODE_ELEMENT&&b.is(f))&&(c=b);if(a(b)&&!o&&(!d||!g(b)))return false}};i.guard=e(i);i.checkBackward();if(c){i=d.clone();i.collapse();i.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);i=new CKEDITOR.dom.walker(i);i.guard=e(i,1);c=0;i.checkForward();return c}}return null}function d(a){a.editor.focus();a.editor.fire("saveSnapshot")}function g(a,b){var c=a.editor;!b&&c.getSelection().scrollIntoView();setTimeout(function(){c.fire("saveSnapshot")},0)}CKEDITOR.editable=CKEDITOR.tools.createClass({base:CKEDITOR.dom.element,
+$:function(a,b){this.base(b.$||b);this.editor=a;this.hasFocus=false;this.setup()},proto:{focus:function(){this.$[CKEDITOR.env.ie&&this.getDocument().equals(CKEDITOR.document)?"setActive":"focus"]();CKEDITOR.env.safari&&!this.isInline()&&(CKEDITOR.document.getActive().equals(this.getWindow().getFrame())||this.getWindow().focus())},on:function(a,b){var c=Array.prototype.slice.call(arguments,0);if(CKEDITOR.env.ie&&/^focus|blur$/.exec(a)){a=a=="focus"?"focusin":"focusout";b=f(b,this);c[0]=a;c[1]=b}return CKEDITOR.dom.element.prototype.on.apply(this,
+c)},attachListener:function(a,b,c,d,e,f){!this._.listeners&&(this._.listeners=[]);var g=Array.prototype.slice.call(arguments,1);this._.listeners.push(a.on.apply(a,g))},clearListeners:function(){var a=this._.listeners;try{for(;a.length;)a.pop().removeListener()}catch(b){}},restoreAttrs:function(){var a=this._.attrChanges,b,c;for(c in a)if(a.hasOwnProperty(c)){b=a[c];b!==null?this.setAttribute(c,b):this.removeAttribute(c)}},attachClass:function(a){var b=this.getCustomData("classes");if(!this.hasClass(a)){!b&&
+(b=[]);b.push(a);this.setCustomData("classes",b);this.addClass(a)}},changeAttr:function(a,b){var c=this.getAttribute(a);if(b!==c){!this._.attrChanges&&(this._.attrChanges={});a in this._.attrChanges||(this._.attrChanges[a]=c);this.setAttribute(a,b)}},insertHtml:function(a,b){d(this);n(this,b=="text"?"text":"html",a)},insertText:function(a){d(this);var b=this.editor,c=b.getSelection().getStartElement().hasAscendant("pre",true)?CKEDITOR.ENTER_BR:b.config.enterMode,b=c==CKEDITOR.ENTER_BR,e=CKEDITOR.tools,
+a=e.htmlEncode(a.replace(/\r\n/g,"\n")),a=a.replace(/\t/g," "),c=c==CKEDITOR.ENTER_P?"p":"div";if(!b){var f=/\n{2}/g;if(f.test(a))var g="<"+c+">",i="</"+c+">",a=g+a.replace(f,function(){return i+g})+i}a=a.replace(/\n/g,"<br>");b||(a=a.replace(RegExp("<br>(?=</"+c+">)"),function(a){return e.repeat(a,2)}));a=a.replace(/^ | $/g," ");a=a.replace(/(>|\s) /g,function(a,b){return b+" "}).replace(/ (?=<)/g," ");n(this,"text",a)},insertElement:function(b){d(this);for(var c=
+this.editor,e=c.config.enterMode,f=c.getSelection(),h=f.getRanges(),m=b.getName(),i=CKEDITOR.dtd.$block[m],n,k,B,p=h.length-1;p>=0;p--){n=h[p];if(!n.checkReadOnly()){n.deleteContents(1);k=!p&&b||b.clone(1);var E,u;if(i)for(;(E=n.getCommonAncestor(0,1))&&(u=CKEDITOR.dtd[E.getName()])&&(!u||!u[m]);)if(E.getName()in CKEDITOR.dtd.span)n.splitElement(E);else if(n.checkStartOfBlock()&&n.checkEndOfBlock()){n.setStartBefore(E);n.collapse(true);E.remove()}else n.splitBlock(e==CKEDITOR.ENTER_DIV?"div":"p",
+c.editable());n.insertNode(k);B||(B=k)}}if(B){n.moveToPosition(B,CKEDITOR.POSITION_AFTER_END);if(i)if((b=B.getNext(a))&&b.type==CKEDITOR.NODE_ELEMENT&&b.is(CKEDITOR.dtd.$block))b.getDtd()["#"]?n.moveToElementEditStart(b):n.moveToElementEditEnd(B);else if(!b&&e!=CKEDITOR.ENTER_BR){b=n.fixBlock(true,e==CKEDITOR.ENTER_DIV?"div":"p");n.moveToElementEditStart(b)}}f.selectRanges([n]);g(this,CKEDITOR.env.opera)},setData:function(a,b){!b&&this.editor.dataProcessor&&(a=this.editor.dataProcessor.toHtml(a));
+this.setHtml(a);this.editor.fire("dataReady")},getData:function(a){var b=this.getHtml();!a&&this.editor.dataProcessor&&(b=this.editor.dataProcessor.toDataFormat(b));return b},setReadOnly:function(a){this.setAttribute("contenteditable",!a)},detach:function(){this.removeClass("cke_editable");var a=this.editor;this._.detach();delete a.document;delete a.window},isInline:function(){return this.getDocument().equals(CKEDITOR.document)},setup:function(){var a=this.editor;this.attachListener(a,"beforeGetData",
+function(){var b=this.getData();this.is("textarea")||a.config.ignoreEmptyParagraph!==false&&(b=b.replace(k,function(a,b){return b}));a.setData(b,null,1)},this);this.attachListener(a,"getSnapshot",function(a){a.data=this.getData(1)},this);this.attachListener(a,"afterSetData",function(){this.setData(a.getData(1))},this);this.attachListener(a,"loadSnapshot",function(a){this.setData(a.data,1)},this);this.attachListener(a,"beforeFocus",function(){var b=a.getSelection();(b=b&&b.getNative())&&b.type=="Control"||
+this.focus()},this);this.attachListener(a,"insertHtml",function(a){this.insertHtml(a.data.dataValue,a.data.mode)},this);this.attachListener(a,"insertElement",function(a){this.insertElement(a.data)},this);this.attachListener(a,"insertText",function(a){this.insertText(a.data)},this);this.setReadOnly(a.readOnly);this.attachClass("cke_editable");this.attachClass(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"cke_editable_inline":a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE||a.elementMode==CKEDITOR.ELEMENT_MODE_APPENDTO?
+"cke_editable_themed":"");this.attachClass("cke_contents_"+a.config.contentsLangDirection);a.keystrokeHandler.blockedKeystrokes[8]=a.readOnly;a.keystrokeHandler.attach(this);this.on("blur",function(a){CKEDITOR.env.opera&&CKEDITOR.document.getActive().equals(this.isInline()?this:this.getWindow().getFrame())?a.cancel():this.hasFocus=false},null,null,-1);this.on("focus",function(){this.hasFocus=true},null,null,-1);a.focusManager.add(this);if(this.equals(CKEDITOR.document.getActive())){this.hasFocus=
+true;a.once("contentDom",function(){a.focusManager.focus()})}this.isInline()&&this.changeAttr("tabindex",a.tabIndex);if(!this.is("textarea")){a.document=this.getDocument();a.window=this.getWindow();var b=a.document;this.changeAttr("spellcheck",!a.config.disableNativeSpellChecker);var d=a.config.contentsLangDirection;this.getDirection(1)!=d&&this.changeAttr("dir",d);var f=CKEDITOR.getCss();if(f){d=b.getHead();if(!d.getCustomData("stylesheet")){f=b.appendStyleText(f);f=new CKEDITOR.dom.element(f.ownerNode||
+f.owningElement);d.setCustomData("stylesheet",f);f.data("cke-temp",1)}}d=b.getCustomData("stylesheet_ref")||0;b.setCustomData("stylesheet_ref",d+1);this.setCustomData("cke_includeReadonly",!a.config.disableReadonlyStyling);this.attachListener(this,"click",function(a){var a=a.data,b=a.getTarget();b.is("a")&&(a.$.button!=2&&b.isReadOnly())&&a.preventDefault()});this.attachListener(a,"key",function(b){if(a.readOnly)return true;var c=b.data.keyCode,d;if(c in{8:1,46:1}){var l=a.getSelection(),b=l.getRanges()[0],
+f=b.startPath(),j,g,m,c=c==8;if(l=e(l)){a.fire("saveSnapshot");b.moveToPosition(l,CKEDITOR.POSITION_BEFORE_START);l.remove();b.select();a.fire("saveSnapshot");d=1}else if(b.collapsed)if((j=f.block)&&b[c?"checkStartOfBlock":"checkEndOfBlock"]()&&(m=j[c?"getPrevious":"getNext"](h))&&m.is("table")){a.fire("saveSnapshot");b[c?"checkEndOfBlock":"checkStartOfBlock"]()&&j.remove();b["moveToElementEdit"+(c?"End":"Start")](m);b.select();a.fire("saveSnapshot");d=1}else if(f.blockLimit&&f.blockLimit.is("td")&&
+(g=f.blockLimit.getAscendant("table"))&&b.checkBoundaryOfElement(g,c?CKEDITOR.START:CKEDITOR.END)&&(m=g[c?"getPrevious":"getNext"](h))){a.fire("saveSnapshot");b["moveToElementEdit"+(c?"End":"Start")](m);b.checkStartOfBlock()&&b.checkEndOfBlock()?m.remove():b.select();a.fire("saveSnapshot");d=1}else if((g=f.contains(["td","th","caption"]))&&b.checkBoundaryOfElement(g,c?CKEDITOR.START:CKEDITOR.END))if((m=g[c?"getPreviousSourceNode":"getNextSourceNode"](1,CKEDITOR.NODE_ELEMENT))&&!m.isReadOnly()&&b.root.contains(m)){b[c?
+"moveToElementEditEnd":"moveToElementEditStart"](m);b.select();d=1}}return!d});CKEDITOR.env.ie&&this.attachListener(this,"click",c);!CKEDITOR.env.ie&&!CKEDITOR.env.opera&&this.attachListener(this,"mousedown",function(b){var c=b.data.getTarget();if(c.is("img","hr","input","textarea","select")){a.getSelection().selectElement(c);c.is("input","textarea","select")&&b.data.preventDefault()}});CKEDITOR.env.gecko&&this.attachListener(this,"mouseup",function(b){if(b.data.$.button==2){b=b.data.getTarget();
+if(!b.getOuterHtml().replace(k,"")){var c=a.createRange();c.moveToElementEditStart(b);c.select(true)}}});if(CKEDITOR.env.webkit){this.attachListener(this,"click",function(a){a.data.getTarget().is("input","select")&&a.data.preventDefault()});this.attachListener(this,"mouseup",function(a){a.data.getTarget().is("input","textarea")&&a.data.preventDefault()})}}}},_:{detach:function(){this.editor.setData(this.editor.getData(),0,1);this.clearListeners();this.restoreAttrs();var a;if(a=this.removeCustomData("classes"))for(;a.length;)this.removeClass(a.pop());
+a=this.getDocument();var b=a.getHead();if(b.getCustomData("stylesheet")){var c=a.getCustomData("stylesheet_ref");if(--c)a.setCustomData("stylesheet_ref",c);else{a.removeCustomData("stylesheet_ref");b.removeCustomData("stylesheet").remove()}}delete this.editor}}});CKEDITOR.editor.prototype.editable=function(a){var b=this._.editable;if(b&&a)return 0;if(arguments.length)b=this._.editable=a?a instanceof CKEDITOR.editable?a:new CKEDITOR.editable(this,a):(b&&b.detach(),null);return b};var k=/(^|<body\b[^>]*>)\s*<(p|div|address|h\d|center|pre)[^>]*>\s*(?:<br[^>]*>| |\u00A0| )?\s*(:?<\/\2>)?\s*(?=$|<\/body>)/gi,
+h=CKEDITOR.dom.walker.whitespaces(true),m=CKEDITOR.dom.walker.bookmark(false,true);CKEDITOR.on("instanceLoaded",function(a){var c=a.editor;c.on("insertElement",function(a){a=a.data;if(a.type==CKEDITOR.NODE_ELEMENT&&(a.is("input")||a.is("textarea"))){a.getAttribute("contentEditable")!="false"&&a.data("cke-editable",a.hasAttribute("contenteditable")?"true":"1");a.setAttribute("contentEditable",false)}});c.on("selectionChange",function(a){if(!c.readOnly){var d=c.getSelection();if(d&&!d.isLocked){d=c.checkDirty();
+c.fire("lockSnapshot");b(a);c.fire("unlockSnapshot");!d&&c.resetDirty()}}})});CKEDITOR.on("instanceCreated",function(a){var b=a.editor;b.on("mode",function(){var a=b.editable();if(a&&a.isInline()){var c=this.lang.editor+", "+this.name;a.changeAttr("role","textbox");a.changeAttr("aria-label",c);a.changeAttr("title",c);if(c=this.ui.space(this.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?"top":"contents")){var d=CKEDITOR.tools.getNextId(),e=CKEDITOR.dom.element.createFromHtml('<span id="'+d+'" class="cke_voice_label">'+
+this.lang.common.editorHelp+"</span>");c.append(e);a.changeAttr("aria-describedby",d)}}})});CKEDITOR.addCss(".cke_editable{cursor:text}.cke_editable img,.cke_editable input,.cke_editable textarea{cursor:default}");var n=function(){function b(a){return a.type==CKEDITOR.NODE_ELEMENT}function c(a,d){var e,f,j,g,t=[],h=d.range.startContainer;e=d.range.startPath();for(var h=i[h.getName()],m=0,n=a.getChildren(),q=n.count(),k=-1,z=-1,y=0,s=e.contains(i.$list);m<q;++m){e=n.getItem(m);if(b(e)){j=e.getName();
+if(s&&j in CKEDITOR.dtd.$list)t=t.concat(c(e,d));else{g=!!h[j];if(j=="br"&&e.data("cke-eol")&&(!m||m==q-1)){y=(f=m?t[m-1].node:n.getItem(m+1))&&(!b(f)||!f.is("br"));f=f&&b(f)&&i.$block[f.getName()]}k==-1&&!g&&(k=m);g||(z=m);t.push({isElement:1,isLineBreak:y,isBlock:e.isBlockBoundary(),hasBlockSibling:f,node:e,name:j,allowed:g});f=y=0}}else t.push({isElement:0,node:e,allowed:1})}if(k>-1)t[k].firstNotAllowed=1;if(z>-1)t[z].lastNotAllowed=1;return t}function d(a,c){var e=[],f=a.getChildren(),l=f.count(),
+g,t=0,h=i[c],m=!a.is(i.$inline)||a.is("br");for(m&&e.push(" ");t<l;t++){g=f.getItem(t);b(g)&&!g.is(h)?e=e.concat(d(g,c)):e.push(g)}m&&e.push(" ");return e}function e(a){return a&&b(a)&&(a.is(i.$removeEmpty)||a.is("a")&&!a.isBlockBoundary())}function f(a,c,d,e){var l=a.clone(),j,g;l.setEndAt(c,CKEDITOR.POSITION_BEFORE_END);if((j=(new CKEDITOR.dom.walker(l)).next())&&b(j)&&m[j.getName()]&&(g=j.getPrevious())&&b(g)&&!g.getParent().equals(a.startContainer)&&d.contains(g)&&e.contains(j)&&j.isIdentical(g)){j.moveChildren(g);
+j.remove();f(a,c,d,e)}}function h(a,c){function d(a,c){if(c.isBlock&&c.isElement&&!c.node.is("br")&&b(a)&&a.is("br")){a.remove();return 1}}var e=c.endContainer.getChild(c.endOffset),f=c.endContainer.getChild(c.endOffset-1);e&&d(e,a[a.length-1]);if(f&&d(f,a[0])){c.setEnd(c.endContainer,c.endOffset-1);c.collapse()}}var i=CKEDITOR.dtd,m={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ul:1,ol:1,li:1,pre:1,dl:1,blockquote:1},n={p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1},k=CKEDITOR.tools.extend({},i.$inline);delete k.br;
+return function(m,s,u){var r=m.editor;m.getDocument();var D=r.getSelection().getRanges()[0];if(!D.checkReadOnly()){var v=(new CKEDITOR.dom.elementPath(D.startContainer,D.root)).blockLimit||D.root,s={type:s,editable:m,editor:r,range:D,blockLimit:v,mergeCandidates:[],zombies:[]},r=s.range,v=s.mergeCandidates,t,w,I,G,C;if(s.type=="text"&&r.shrink(CKEDITOR.SHRINK_ELEMENT,true,false)){w=CKEDITOR.dom.element.createFromHtml("<span> </span>",r.document);r.insertNode(w);r.setStartAfter(w)}I=new CKEDITOR.dom.elementPath(r.startContainer);
+s.endPath=G=new CKEDITOR.dom.elementPath(r.endContainer);if(!r.collapsed){t=G.block||G.blockLimit;var Q=r.getCommonAncestor();t&&(!t.equals(Q)&&!t.contains(Q)&&r.checkEndOfBlock())&&s.zombies.push(t);r.deleteContents()}for(;(C=b(r.startContainer)&&r.startContainer.getChild(r.startOffset-1))&&b(C)&&C.isBlockBoundary()&&I.contains(C);)r.moveToPosition(C,CKEDITOR.POSITION_BEFORE_END);f(r,s.blockLimit,I,G);if(w){r.setEndBefore(w);r.collapse();w.remove()}w=r.startPath();if(t=w.contains(e,false,1)){r.splitElement(t);
+s.inlineStylesRoot=t;s.inlineStylesPeak=w.lastElement}w=r.createBookmark();(t=w.startNode.getPrevious(a))&&b(t)&&e(t)&&v.push(t);(t=w.startNode.getNext(a))&&b(t)&&e(t)&&v.push(t);for(t=w.startNode;(t=t.getParent())&&e(t);)v.push(t);r.moveToBookmark(w);if(u){C=u;u=s.range;if(s.type=="text"&&s.inlineStylesRoot){w=C;C=s.inlineStylesPeak;r=C.getDocument().createText("{cke-peak}");for(v=s.inlineStylesRoot.getParent();!C.equals(v);){r=r.appendTo(C.clone());C=C.getParent()}C=r.getOuterHtml().replace("{cke-peak}",
+w)}w=s.blockLimit.getName();if(/^\s+|\s+$/.test(C)&&"span"in CKEDITOR.dtd[w]){var K='<span data-cke-marker="1"> </span>';C=K+C+K}C=s.editor.dataProcessor.toHtml(C,null,false);w=u.document.createElement("body");w.setHtml(C);if(K){w.getFirst().remove();w.getLast().remove()}if((K=u.startPath().block)&&!(K.getChildCount()==1&&K.getBogus()))a:{var F;if(w.getChildCount()==1&&b(F=w.getFirst())&&F.is(n)){K=F.getElementsByTag("*");u=0;for(r=K.count();u<r;u++){C=K.getItem(u);if(!C.is(k))break a}F.moveChildren(F.getParent(1));
+F.remove()}}s.dataWrapper=w;F=s.range;var K=F.document,x,u=s.blockLimit;w=0;var J;C=[];var H,N,v=r=0,L,O;I=F.startContainer;t=s.endPath.elements[0];var P;G=t.getPosition(I);Q=!!t.getCommonAncestor(I)&&G!=CKEDITOR.POSITION_IDENTICAL&&!(G&CKEDITOR.POSITION_CONTAINS+CKEDITOR.POSITION_IS_CONTAINED);I=c(s.dataWrapper,s);for(h(I,F);w<I.length;w++){G=I[w];if(x=G.isLineBreak){x=F;L=u;var M=void 0,R=void 0;if(G.hasBlockSibling)x=1;else{M=x.startContainer.getAscendant(i.$block,1);if(!M||!M.is({div:1,p:1}))x=
+0;else{R=M.getPosition(L);if(R==CKEDITOR.POSITION_IDENTICAL||R==CKEDITOR.POSITION_CONTAINS)x=0;else{L=x.splitElement(M);x.moveToPosition(L,CKEDITOR.POSITION_AFTER_START);x=1}}}}if(x)v=w>0;else{x=F.startPath();if(!G.isBlock&&(N=s.editor.config.enterMode!=CKEDITOR.ENTER_BR&&s.editor.config.autoParagraph!==false?s.editor.config.enterMode==CKEDITOR.ENTER_DIV?"div":"p":false)&&!x.block&&x.blockLimit&&x.blockLimit.equals(F.root)){N=K.createElement(N);!CKEDITOR.env.ie&&N.appendBogus();F.insertNode(N);!CKEDITOR.env.ie&&
+(J=N.getBogus())&&J.remove();F.moveToPosition(N,CKEDITOR.POSITION_BEFORE_END)}if((x=F.startPath().block)&&!x.equals(H)){if(J=x.getBogus()){J.remove();C.push(x)}H=x}G.firstNotAllowed&&(r=1);if(r&&G.isElement){x=F.startContainer;for(L=null;x&&!i[x.getName()][G.name];){if(x.equals(u)){x=null;break}L=x;x=x.getParent()}if(x){if(L){O=F.splitElement(L);s.zombies.push(O);s.zombies.push(L)}}else{L=u.getName();P=!w;x=w==I.length-1;L=d(G.node,L);for(var M=[],R=L.length,T=0,U=void 0,V=0,W=-1;T<R;T++){U=L[T];
+if(U==" "){if(!V&&(!P||T)){M.push(new CKEDITOR.dom.text(" "));W=M.length}V=1}else{M.push(U);V=0}}x&&W==M.length&&M.pop();P=M}}if(P){for(;x=P.pop();)F.insertNode(x);P=0}else F.insertNode(G.node);if(G.lastNotAllowed&&w<I.length-1){(O=Q?t:O)&&F.setEndAt(O,CKEDITOR.POSITION_AFTER_START);r=0}F.collapse()}}s.dontMoveCaret=v;s.bogusNeededBlocks=C}J=s.range;var S;O=s.bogusNeededBlocks;for(P=J.createBookmark();H=s.zombies.pop();)if(H.getParent()){N=J.clone();N.moveToElementEditStart(H);N.removeEmptyBlocksAtEnd()}if(O)for(;H=
+O.pop();)H.append(CKEDITOR.env.ie?J.document.createText("Â "):J.document.createElement("br"));for(;H=s.mergeCandidates.pop();)H.mergeSiblings();J.moveToBookmark(P);if(!s.dontMoveCaret){for(H=b(J.startContainer)&&J.startContainer.getChild(J.startOffset-1);H&&b(H)&&!H.is(i.$empty);){if(H.isBlockBoundary())J.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END);else{if(e(H)&&H.getHtml().match(/(\s| )$/g)){S=null;break}S=J.clone();S.moveToPosition(H,CKEDITOR.POSITION_BEFORE_END)}H=H.getLast(a)}S&&J.moveToRange(S)}D.select();
+g(m)}}}()})();
+(function(){function b(){var a=this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){this.fire("selectionCheck",a);var b=this.elementPath();if(!b.compare(this._.selectionPreviousPath)){this._.selectionPreviousPath=b;this.fire("selectionChange",{selection:a,path:b})}}}function c(){k=true;if(!g){a.call(this);g=CKEDITOR.tools.setTimeout(a,200,this)}}function a(){g=null;if(k){CKEDITOR.tools.setTimeout(b,0,this);k=false}}function f(a){function b(c,d){return!c||c.type==CKEDITOR.NODE_TEXT?false:
+a.clone()["moveToElementEdit"+(d?"End":"Start")](c)}if(!(a.root instanceof CKEDITOR.editable))return false;var c=a.startContainer,d=a.getPreviousNode(h,null,c),e=a.getNextNode(h,null,c);return b(d)||b(e,1)||!d&&!e&&!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary()&&c.getBogus())?true:false}function e(a){return a.getCustomData("cke-fillingChar")}function d(a,b){var c=a&&a.removeCustomData("cke-fillingChar");if(c){if(b!==false){var d,e=a.getDocument().getSelection().getNative(),f=e&&e.type!="None"&&
+e.getRangeAt(0);if(c.getLength()>1&&f&&f.intersectsNode(c.$)){d=[e.anchorOffset,e.focusOffset];f=e.focusNode==c.$&&e.focusOffset>0;e.anchorNode==c.$&&e.anchorOffset>0&&d[0]--;f&&d[1]--;var g;f=e;if(!f.isCollapsed){g=f.getRangeAt(0);g.setStart(f.anchorNode,f.anchorOffset);g.setEnd(f.focusNode,f.focusOffset);g=g.collapsed}g&&d.unshift(d.pop())}}c.setText(c.getText().replace(/\u200B/g,""));if(d){c=e.getRangeAt(0);c.setStart(c.startContainer,d[0]);c.setEnd(c.startContainer,d[1]);e.removeAllRanges();e.addRange(c)}}}
+var g,k,h=CKEDITOR.dom.walker.invisible(1);CKEDITOR.on("instanceCreated",function(a){function e(){var a=f.getSelection();a&&a.removeAllRanges()}var f=a.editor;f.define("selectionChange",{errorProof:1});f.on("contentDom",function(){var a=f.document,e=CKEDITOR.document,l=f.editable(),g=a.getBody(),o=a.getDocumentElement(),h=l.isInline();if(CKEDITOR.env.ie||CKEDITOR.env.opera||h){var n;l.attachListener(l,"focus",function(){f.unlockSelection(n);n=0},null,null,-1);var k,E=function(){k=f.getSelection(1);
+k.lock()};m?l.attachListener(l,"beforedeactivate",E,null,null,-1):l.attachListener(f,"selectionCheck",E,null,null,-1);l.attachListener(l,"blur",function(){f.lockSelection(k);n=1},null,null,-1);l.attachListener(l,"mousedown",function(){n=0})}if(CKEDITOR.env.ie&&!h){var u;l.attachListener(l,"mousedown",function(a){a.data.$.button==2&&f.document.$.selection.type=="None"&&(u=f.window.getScrollPosition())});l.attachListener(l,"mouseup",function(a){if(a.data.$.button==2&&u){f.document.$.documentElement.scrollLeft=
+u.x;f.document.$.documentElement.scrollTop=u.y}u=null});if(a.$.compatMode!="BackCompat"){if(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)o.on("mousedown",function(a){function b(a){a=a.data.$;if(d){var c=g.$.createTextRange();try{c.moveToPoint(a.x,a.y)}catch(e){}d.setEndPoint(l.compareEndPoints("StartToStart",c)<0?"EndToEnd":"StartToStart",c);d.select()}}function c(){o.removeListener("mousemove",b);e.removeListener("mouseup",c);o.removeListener("mouseup",c);d.select()}a=a.data;if(a.getTarget().is("html")&&
+a.$.y<o.$.clientHeight&&a.$.x<o.$.clientWidth){var d=g.$.createTextRange();try{d.moveToPoint(a.$.x,a.$.y)}catch(f){}var l=d.duplicate();o.on("mousemove",b);e.on("mouseup",c);o.on("mouseup",c)}});if(CKEDITOR.env.version>7){o.on("mousedown",function(a){if(a.data.getTarget().is("html")){e.on("mouseup",r);o.on("mouseup",r)}});var r=function(){e.removeListener("mouseup",r);o.removeListener("mouseup",r);var b=CKEDITOR.document.$.selection,c=b.createRange();b.type!="None"&&c.parentElement().ownerDocument==
+a.$&&c.select()}}}}l.attachListener(l,"selectionchange",b,f);l.attachListener(l,"keyup",c,f);l.attachListener(l,"focus",function(){f.forceNextSelectionCheck();f.selectionChange(1)});if(l.isInline()?CKEDITOR.env.webkit||CKEDITOR.env.gecko:CKEDITOR.env.opera){var D;l.attachListener(l,"mousedown",function(){D=1});l.attachListener(a.getDocumentElement(),"mouseup",function(){D&&c.call(f);D=0})}else l.attachListener(l,"mouseup",c,f);if(CKEDITOR.env.webkit)a.on("keydown",function(a){switch(a.data.getKey()){case 13:case 33:case 34:case 35:case 36:case 37:case 39:case 8:case 45:case 46:d(f.editable())}},
+null,null,-1)});f.on("contentDomUnload",f.forceNextSelectionCheck,f);f.on("dataReady",function(){f.selectionChange(1)});CKEDITOR.env.ie9Compat&&f.on("beforeDestroy",e,null,null,9);CKEDITOR.env.webkit&&f.on("setData",e);f.on("contentDomUnload",function(){f.unlockSelection()})});CKEDITOR.on("instanceReady",function(a){var b=a.editor,c=b.editable();if(CKEDITOR.env.webkit){b.on("selectionChange",function(){var a=e(c);a&&(a.getCustomData("ready")?d(c):a.setCustomData("ready",1))},null,null,-1);b.on("beforeSetMode",
+function(){d(c)},null,null,-1);var f,g,a=function(){var a=b.document,d=e(c);if(d){a=a.$.defaultView.getSelection();a.type=="Caret"&&a.anchorNode==d.$&&(g=1);f=d.getText();d.setText(f.replace(/\u200B/g,""))}},h=function(){var a=b.document,d=e(c);if(d){d.setText(f);if(g){a.$.defaultView.getSelection().setPosition(d.$,d.getLength());g=0}}};b.on("beforeUndoImage",a);b.on("afterUndoImage",h);b.on("beforeGetData",a,null,null,0);b.on("getData",h)}});CKEDITOR.editor.prototype.selectionChange=function(a){(a?
+b:c).call(this)};CKEDITOR.editor.prototype.getSelection=function(a){if(this._.savedSelection&&!a)return this._.savedSelection;return(a=this.editable())?new CKEDITOR.dom.selection(a):null};CKEDITOR.editor.prototype.lockSelection=function(a){a=a||this.getSelection(1);if(a.getType()!=CKEDITOR.SELECTION_NONE){!a.isLocked&&a.lock();this._.savedSelection=a;return true}return false};CKEDITOR.editor.prototype.unlockSelection=function(a){var b=this._.savedSelection;if(b){b.unlock(a);delete this._.savedSelection;
+return true}return false};CKEDITOR.editor.prototype.forceNextSelectionCheck=function(){delete this._.selectionPreviousPath};CKEDITOR.dom.document.prototype.getSelection=function(){return new CKEDITOR.dom.selection(this)};CKEDITOR.dom.range.prototype.select=function(){var a=this.root instanceof CKEDITOR.editable?this.root.editor.getSelection():new CKEDITOR.dom.selection(this.root);a.selectRanges([this]);return a};CKEDITOR.SELECTION_NONE=1;CKEDITOR.SELECTION_TEXT=2;CKEDITOR.SELECTION_ELEMENT=3;var m=
+typeof window.getSelection!="function";CKEDITOR.dom.selection=function(a){var b=a instanceof CKEDITOR.dom.element;this.document=a instanceof CKEDITOR.dom.document?a:a.getDocument();this.root=b?a:this.document.getBody();this.isLocked=0;this._={cache:{}};if(CKEDITOR.env.webkit){a=this.document.getWindow().$.getSelection();if(a.type=="None"&&this.document.getActive().equals(this.root)||a.type=="Caret"&&a.anchorNode.nodeType==CKEDITOR.NODE_DOCUMENT){var c=new CKEDITOR.dom.range(this.root);c.moveToPosition(this.root,
+CKEDITOR.POSITION_AFTER_START);b=this.document.$.createRange();b.setStart(c.startContainer.$,c.startOffset);b.collapse(1);a.addRange(b)}}var a=this.getNative(),d;if(a)if(a.getRangeAt)d=(c=a.rangeCount&&a.getRangeAt(0))&&new CKEDITOR.dom.node(c.commonAncestorContainer);else{try{c=a.createRange()}catch(e){}d=c&&CKEDITOR.dom.element.get(c.item&&c.item(0)||c.parentElement())}if(!d||!this.root.equals(d)&&!this.root.contains(d)){this._.cache.type=CKEDITOR.SELECTION_NONE;this._.cache.startElement=null;this._.cache.selectedElement=
+null;this._.cache.selectedText="";this._.cache.ranges=new CKEDITOR.dom.rangeList}return this};var n={img:1,hr:1,li:1,table:1,tr:1,td:1,th:1,embed:1,object:1,ol:1,ul:1,a:1,input:1,form:1,select:1,textarea:1,button:1,fieldset:1,thead:1,tfoot:1};CKEDITOR.dom.selection.prototype={getNative:function(){return this._.cache.nativeSel!==void 0?this._.cache.nativeSel:this._.cache.nativeSel=m?this.document.$.selection:this.document.getWindow().$.getSelection()},getType:m?function(){var a=this._.cache;if(a.type)return a.type;
+var b=CKEDITOR.SELECTION_NONE;try{var c=this.getNative(),d=c.type;if(d=="Text")b=CKEDITOR.SELECTION_TEXT;if(d=="Control")b=CKEDITOR.SELECTION_ELEMENT;if(c.createRange().parentElement())b=CKEDITOR.SELECTION_TEXT}catch(e){}return a.type=b}:function(){var a=this._.cache;if(a.type)return a.type;var b=CKEDITOR.SELECTION_TEXT,c=this.getNative();if(!c||!c.rangeCount)b=CKEDITOR.SELECTION_NONE;else if(c.rangeCount==1){var c=c.getRangeAt(0),d=c.startContainer;if(d==c.endContainer&&d.nodeType==1&&c.endOffset-
+c.startOffset==1&&n[d.childNodes[c.startOffset].nodeName.toLowerCase()])b=CKEDITOR.SELECTION_ELEMENT}return a.type=b},getRanges:function(){var a=m?function(){function a(b){return(new CKEDITOR.dom.node(b)).getIndex()}var b=function(b,c){b=b.duplicate();b.collapse(c);var d=b.parentElement(),e=d.ownerDocument;if(!d.hasChildNodes())return{container:d,offset:0};for(var f=d.children,g,j,h=b.duplicate(),o=0,m=f.length-1,n=-1,k,v;o<=m;){n=Math.floor((o+m)/2);g=f[n];h.moveToElementText(g);k=h.compareEndPoints("StartToStart",
+b);if(k>0)m=n-1;else if(k<0)o=n+1;else{if(CKEDITOR.env.ie9Compat&&g.tagName=="BR"){f=e.defaultView.getSelection();return{container:f[c?"anchorNode":"focusNode"],offset:f[c?"anchorOffset":"focusOffset"]}}return{container:d,offset:a(g)}}}if(n==-1||n==f.length-1&&k<0){h.moveToElementText(d);h.setEndPoint("StartToStart",b);e=h.text.replace(/(\r\n|\r)/g,"\n").length;f=d.childNodes;if(!e){g=f[f.length-1];return g.nodeType!=CKEDITOR.NODE_TEXT?{container:d,offset:f.length}:{container:g,offset:g.nodeValue.length}}for(d=
+f.length;e>0&&d>0;){j=f[--d];if(j.nodeType==CKEDITOR.NODE_TEXT){v=j;e=e-j.nodeValue.length}}return{container:v,offset:-e}}h.collapse(k>0?true:false);h.setEndPoint(k>0?"StartToStart":"EndToStart",b);e=h.text.replace(/(\r\n|\r)/g,"\n").length;if(!e)return{container:d,offset:a(g)+(k>0?0:1)};for(;e>0;)try{j=g[k>0?"previousSibling":"nextSibling"];if(j.nodeType==CKEDITOR.NODE_TEXT){e=e-j.nodeValue.length;v=j}g=j}catch(t){return{container:d,offset:a(g)}}return{container:v,offset:k>0?-e:v.nodeValue.length+
+e}};return function(){var a=this.getNative(),c=a&&a.createRange(),d=this.getType();if(!a)return[];if(d==CKEDITOR.SELECTION_TEXT){a=new CKEDITOR.dom.range(this.root);d=b(c,true);a.setStart(new CKEDITOR.dom.node(d.container),d.offset);d=b(c);a.setEnd(new CKEDITOR.dom.node(d.container),d.offset);a.endContainer.getPosition(a.startContainer)&CKEDITOR.POSITION_PRECEDING&&a.endOffset<=a.startContainer.getIndex()&&a.collapse();return[a]}if(d==CKEDITOR.SELECTION_ELEMENT){for(var d=[],e=0;e<c.length;e++){for(var f=
+c.item(e),g=f.parentNode,l=0,a=new CKEDITOR.dom.range(this.root);l<g.childNodes.length&&g.childNodes[l]!=f;l++);a.setStart(new CKEDITOR.dom.node(g),l);a.setEnd(new CKEDITOR.dom.node(g),l+1);d.push(a)}return d}return[]}}():function(){var a=[],b,c=this.getNative();if(!c)return a;for(var d=0;d<c.rangeCount;d++){var e=c.getRangeAt(d);b=new CKEDITOR.dom.range(this.root);b.setStart(new CKEDITOR.dom.node(e.startContainer),e.startOffset);b.setEnd(new CKEDITOR.dom.node(e.endContainer),e.endOffset);a.push(b)}return a};
+return function(b){var c=this._.cache;if(c.ranges&&!b)return c.ranges;if(!c.ranges)c.ranges=new CKEDITOR.dom.rangeList(a.call(this));if(b)for(var d=c.ranges,e=0;e<d.length;e++){var f=d[e];f.getCommonAncestor().isReadOnly()&&d.splice(e,1);if(!f.collapsed){if(f.startContainer.isReadOnly())for(var b=f.startContainer,g;b;){if((g=b.type==CKEDITOR.NODE_ELEMENT)&&b.is("body")||!b.isReadOnly())break;g&&b.getAttribute("contentEditable")=="false"&&f.setStartAfter(b);b=b.getParent()}b=f.startContainer;g=f.endContainer;
+var h=f.startOffset,m=f.endOffset,n=f.clone();b&&b.type==CKEDITOR.NODE_TEXT&&(h>=b.getLength()?n.setStartAfter(b):n.setStartBefore(b));g&&g.type==CKEDITOR.NODE_TEXT&&(m?n.setEndAfter(g):n.setEndBefore(g));b=new CKEDITOR.dom.walker(n);b.evaluator=function(a){if(a.type==CKEDITOR.NODE_ELEMENT&&a.isReadOnly()){var b=f.clone();f.setEndBefore(a);f.collapsed&&d.splice(e--,1);if(!(a.getPosition(n.endContainer)&CKEDITOR.POSITION_CONTAINS)){b.setStartAfter(a);b.collapsed||d.splice(e+1,0,b)}return true}return false};
+b.next()}}return c.ranges}}(),getStartElement:function(){var a=this._.cache;if(a.startElement!==void 0)return a.startElement;var b;switch(this.getType()){case CKEDITOR.SELECTION_ELEMENT:return this.getSelectedElement();case CKEDITOR.SELECTION_TEXT:var c=this.getRanges()[0];if(c){if(c.collapsed){b=c.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent())}else{for(c.optimize();;){b=c.startContainer;if(c.startOffset==(b.getChildCount?b.getChildCount():b.getLength())&&!b.isBlockBoundary())c.setStartAfter(b);
+else break}b=c.startContainer;if(b.type!=CKEDITOR.NODE_ELEMENT)return b.getParent();b=b.getChild(c.startOffset);if(!b||b.type!=CKEDITOR.NODE_ELEMENT)b=c.startContainer;else for(c=b.getFirst();c&&c.type==CKEDITOR.NODE_ELEMENT;){b=c;c=c.getFirst()}}b=b.$}}return a.startElement=b?new CKEDITOR.dom.element(b):null},getSelectedElement:function(){var a=this._.cache;if(a.selectedElement!==void 0)return a.selectedElement;var b=this,c=CKEDITOR.tools.tryThese(function(){return b.getNative().createRange().item(0)},
+function(){for(var a=b.getRanges()[0],c,d,e=2;e&&(!(c=a.getEnclosedNode())||!(c.type==CKEDITOR.NODE_ELEMENT&&n[c.getName()]&&(d=c)));e--)a.shrink(CKEDITOR.SHRINK_ELEMENT);return d.$});return a.selectedElement=c?new CKEDITOR.dom.element(c):null},getSelectedText:function(){var a=this._.cache;if(a.selectedText!==void 0)return a.selectedText;var b=this.getNative(),b=m?b.type=="Control"?"":b.createRange().text:b.toString();return a.selectedText=b},lock:function(){this.getRanges();this.getStartElement();
+this.getSelectedElement();this.getSelectedText();this._.cache.nativeSel=null;this.isLocked=1},unlock:function(a){if(this.isLocked){if(a)var b=this.getSelectedElement(),c=!b&&this.getRanges();this.isLocked=0;this.reset();if(a)(a=b||c[0].getCommonAncestor())&&a.getAscendant("body",1)&&(b?this.selectElement(b):this.selectRanges(c))}},reset:function(){this._.cache={}},selectElement:function(a){var b=new CKEDITOR.dom.range(this.root);b.setStartBefore(a);b.setEndAfter(a);this.selectRanges([b])},selectRanges:function(a){if(a.length)if(this.isLocked){var b=
+CKEDITOR.document.getActive();this.unlock();this.selectRanges(a);this.lock();!b.equals(this.root)&&b.focus()}else{if(m){var c=CKEDITOR.dom.walker.whitespaces(true),e=/\ufeff|\u00a0/,g={table:1,tbody:1,tr:1};if(a.length>1){b=a[a.length-1];a[0].setEnd(b.endContainer,b.endOffset)}var b=a[0],a=b.collapsed,h,i,k,A=b.getEnclosedNode();if(A&&A.type==CKEDITOR.NODE_ELEMENT&&A.getName()in n&&(!A.is("a")||!A.getText()))try{k=A.$.createControlRange();k.addElement(A.$);k.select();return}catch(B){}(b.startContainer.type==
+CKEDITOR.NODE_ELEMENT&&b.startContainer.getName()in g||b.endContainer.type==CKEDITOR.NODE_ELEMENT&&b.endContainer.getName()in g)&&b.shrink(CKEDITOR.NODE_ELEMENT,true);k=b.createBookmark();var g=k.startNode,p;if(!a)p=k.endNode;k=b.document.$.body.createTextRange();k.moveToElementText(g.$);k.moveStart("character",1);if(p){e=b.document.$.body.createTextRange();e.moveToElementText(p.$);k.setEndPoint("EndToEnd",e);k.moveEnd("character",-1)}else{h=g.getNext(c);i=g.hasAscendant("pre");h=!(h&&h.getText&&
+h.getText().match(e))&&(i||!g.hasPrevious()||g.getPrevious().is&&g.getPrevious().is("br"));i=b.document.createElement("span");i.setHtml("");i.insertBefore(g);h&&b.document.createText("").insertBefore(g)}b.setStartBefore(g);g.remove();if(a){if(h){k.moveStart("character",-1);k.select();b.document.$.selection.clear()}else k.select();b.moveToPosition(i,CKEDITOR.POSITION_BEFORE_START);i.remove()}else{b.setEndBefore(p);p.remove();k.select()}}else{p=this.getNative();if(!p)return;if(CKEDITOR.env.opera){b=
+this.document.$.createRange();b.selectNodeContents(this.root.$);p.addRange(b)}this.removeAllRanges();for(e=0;e<a.length;e++){if(e<a.length-1){b=a[e];k=a[e+1];i=b.clone();i.setStart(b.endContainer,b.endOffset);i.setEnd(k.startContainer,k.startOffset);if(!i.collapsed){i.shrink(CKEDITOR.NODE_ELEMENT,true);h=i.getCommonAncestor();i=i.getEnclosedNode();if(h.isReadOnly()||i&&i.isReadOnly()){k.setStart(b.startContainer,b.startOffset);a.splice(e--,1);continue}}}b=a[e];k=this.document.$.createRange();h=b.startContainer;
+if(CKEDITOR.env.opera&&b.collapsed&&h.type==CKEDITOR.NODE_ELEMENT){i=h.getChild(b.startOffset-1);c=h.getChild(b.startOffset);if(!i&&!c&&h.is(CKEDITOR.dtd.$removeEmpty)||i&&i.type==CKEDITOR.NODE_ELEMENT||c&&c.type==CKEDITOR.NODE_ELEMENT){b.insertNode(this.document.createText(""));b.collapse(1)}}if(b.collapsed&&CKEDITOR.env.webkit&&f(b)){h=this.root;d(h,false);i=h.getDocument().createText("â");h.setCustomData("cke-fillingChar",i);b.insertNode(i);if((h=i.getNext())&&!i.getPrevious()&&h.type==CKEDITOR.NODE_ELEMENT&&
+h.getName()=="br"){d(this.root);b.moveToPosition(h,CKEDITOR.POSITION_BEFORE_START)}else b.moveToPosition(i,CKEDITOR.POSITION_AFTER_END)}k.setStart(b.startContainer.$,b.startOffset);try{k.setEnd(b.endContainer.$,b.endOffset)}catch(E){if(E.toString().indexOf("NS_ERROR_ILLEGAL_VALUE")>=0){b.collapse(1);k.setEnd(b.endContainer.$,b.endOffset)}else throw E;}p.addRange(k)}}this.reset();this.root.fire("selectionchange")}},createBookmarks:function(a){return this.getRanges().createBookmarks(a)},createBookmarks2:function(a){return this.getRanges().createBookmarks2(a)},
+selectBookmarks:function(a){for(var b=[],c=0;c<a.length;c++){var d=new CKEDITOR.dom.range(this.root);d.moveToBookmark(a[c]);b.push(d)}this.selectRanges(b);return this},getCommonAncestor:function(){var a=this.getRanges();return a[0].startContainer.getCommonAncestor(a[a.length-1].endContainer)},scrollIntoView:function(){this.type!=CKEDITOR.SELECTION_NONE&&this.getRanges()[0].scrollIntoView()},removeAllRanges:function(){var a=this.getNative();try{a&&a[m?"empty":"removeAllRanges"]()}catch(b){}this.reset()}}})();
+CKEDITOR.editor.prototype.attachStyleStateChange=function(b,c){var a=this._.styleStateChangeCallbacks;if(!a){a=this._.styleStateChangeCallbacks=[];this.on("selectionChange",function(b){for(var c=0;c<a.length;c++){var d=a[c],g=d.style.checkActive(b.data.path)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF;d.fn.call(this,g)}})}a.push({style:b,fn:c})};CKEDITOR.STYLE_BLOCK=1;CKEDITOR.STYLE_INLINE=2;CKEDITOR.STYLE_OBJECT=3;
+(function(){function b(a,b){for(var c,d;a=a.getParent();){if(a.equals(b))break;if(a.getAttribute("data-nostyle"))c=a;else if(!d){var e=a.getAttribute("contentEditable");e=="false"?c=a:e=="true"&&(d=1)}}return c}function c(a){var c=a.document;if(a.collapsed){c=y(this,c);a.insertNode(c);a.moveToPosition(c,CKEDITOR.POSITION_BEFORE_END)}else{var d=this.element,e=this._.definition,f,g=e.ignoreReadonly,h=g||e.includeReadonly;h==void 0&&(h=a.root.getCustomData("cke_includeReadonly"));var j=CKEDITOR.dtd[d]||
+(f=true,CKEDITOR.dtd.span);a.enlarge(CKEDITOR.ENLARGE_INLINE,1);a.trim();var m=a.createBookmark(),i=m.startNode,n=m.endNode,k=i,o;if(!g){var q=a.getCommonAncestor(),g=b(i,q),q=b(n,q);g&&(k=g.getNextSourceNode(true));q&&(n=q)}for(k.getPosition(n)==CKEDITOR.POSITION_FOLLOWING&&(k=0);k;){g=false;if(k.equals(n)){k=null;g=true}else{var p=k.type,r=p==CKEDITOR.NODE_ELEMENT?k.getName():null,q=r&&k.getAttribute("contentEditable")=="false",s=r&&k.getAttribute("data-nostyle");if(r&&k.data("cke-bookmark")){k=
+k.getNextSourceNode(true);continue}if(!r||j[r]&&!s&&(!q||h)&&(k.getPosition(n)|CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED&&(!e.childRule||e.childRule(k))){var u=k.getParent();if(u&&((u.getDtd()||CKEDITOR.dtd.span)[d]||f)&&(!e.parentRule||e.parentRule(u))){if(!o&&(!r||!CKEDITOR.dtd.$removeEmpty[r]||(k.getPosition(n)|CKEDITOR.POSITION_PRECEDING|CKEDITOR.POSITION_IDENTICAL|
+CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED)){o=a.clone();o.setStartBefore(k)}if(p==CKEDITOR.NODE_TEXT||q||p==CKEDITOR.NODE_ELEMENT&&!k.getChildCount()){for(var p=k,v;(g=!p.getNext(D))&&(v=p.getParent(),j[v.getName()])&&(v.getPosition(i)|CKEDITOR.POSITION_FOLLOWING|CKEDITOR.POSITION_IDENTICAL|CKEDITOR.POSITION_IS_CONTAINED)==CKEDITOR.POSITION_FOLLOWING+CKEDITOR.POSITION_IDENTICAL+CKEDITOR.POSITION_IS_CONTAINED&&(!e.childRule||
+e.childRule(v));)p=v;o.setEndAfter(p)}}else g=true}else g=true;k=k.getNextSourceNode(s||q&&!h)}if(g&&o&&!o.collapsed){for(var g=y(this,c),q=g.hasAttributes(),s=o.getCommonAncestor(),p={},r={},u={},z={},A,B,E;g&&s;){if(s.getName()==d){for(A in e.attributes)if(!z[A]&&(E=s.getAttribute(B)))g.getAttribute(A)==E?r[A]=1:z[A]=1;for(B in e.styles)if(!u[B]&&(E=s.getStyle(B)))g.getStyle(B)==E?p[B]=1:u[B]=1}s=s.getParent()}for(A in r)g.removeAttribute(A);for(B in p)g.removeStyle(B);q&&!g.hasAttributes()&&(g=
+null);if(g){o.extractContents().appendTo(g);l.call(this,g);o.insertNode(g);g.mergeSiblings();CKEDITOR.env.ie||g.$.normalize()}else{g=new CKEDITOR.dom.element("span");o.extractContents().appendTo(g);o.insertNode(g);l.call(this,g);g.remove(true)}o=null}}a.moveToBookmark(m);a.shrink(CKEDITOR.SHRINK_TEXT)}}function a(a){a.enlarge(CKEDITOR.ENLARGE_INLINE,1);var b=a.createBookmark(),c=b.startNode;if(a.collapsed){for(var d=new CKEDITOR.dom.elementPath(c.getParent(),a.root),e,f=0,g;f<d.elements.length&&(g=
+d.elements[f]);f++){if(g==d.block||g==d.blockLimit)break;if(this.checkElementRemovable(g)){var h;if(a.collapsed&&(a.checkBoundaryOfElement(g,CKEDITOR.END)||(h=a.checkBoundaryOfElement(g,CKEDITOR.START)))){e=g;e.match=h?"start":"end"}else{g.mergeSiblings();g.getName()==this.element?o.call(this,g):j(g,s(this)[g.getName()])}}}if(e){g=c;for(f=0;;f++){h=d.elements[f];if(h.equals(e))break;else if(h.match)continue;else h=h.clone();h.append(g);g=h}g[e.match=="start"?"insertBefore":"insertAfter"](e)}}else{var m=
+b.endNode,l=this,d=function(){for(var a=new CKEDITOR.dom.elementPath(c.getParent()),b=new CKEDITOR.dom.elementPath(m.getParent()),d=null,e=null,f=0;f<a.elements.length;f++){var g=a.elements[f];if(g==a.block||g==a.blockLimit)break;l.checkElementRemovable(g)&&(d=g)}for(f=0;f<b.elements.length;f++){g=b.elements[f];if(g==b.block||g==b.blockLimit)break;l.checkElementRemovable(g)&&(e=g)}e&&m.breakParent(e);d&&c.breakParent(d)};d();for(e=c;!e.equals(m);){f=e.getNextSourceNode();if(e.type==CKEDITOR.NODE_ELEMENT&&
+this.checkElementRemovable(e)){e.getName()==this.element?o.call(this,e):j(e,s(this)[e.getName()]);if(f.type==CKEDITOR.NODE_ELEMENT&&f.contains(c)){d();f=c.getNext()}}e=f}}a.moveToBookmark(b)}function f(a){var b=a.getEnclosedNode()||a.getCommonAncestor(false,true);(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1))&&!a.isReadOnly()&&z(a,this)}function e(a){var b=a.getCommonAncestor(true,true);if(a=(new CKEDITOR.dom.elementPath(b,a.root)).contains(this.element,1)){var b=this._.definition,
+c=b.attributes;if(c)for(var d in c)a.removeAttribute(d,c[d]);if(b.styles)for(var e in b.styles)b.styles.hasOwnProperty(e)&&a.removeStyle(e)}}function d(a){var b=a.createBookmark(true),c=a.createIterator();c.enforceRealBlocks=true;if(this._.enterMode)c.enlargeBr=this._.enterMode!=CKEDITOR.ENTER_BR;for(var d,e=a.document;d=c.getNextParagraph();)if(!d.isReadOnly()){var f=y(this,e,d);k(d,f)}a.moveToBookmark(b)}function g(a){var b=a.createBookmark(1),c=a.createIterator();c.enforceRealBlocks=true;c.enlargeBr=
+this._.enterMode!=CKEDITOR.ENTER_BR;for(var d;d=c.getNextParagraph();)if(this.checkElementRemovable(d))if(d.is("pre")){var e=this._.enterMode==CKEDITOR.ENTER_BR?null:a.document.createElement(this._.enterMode==CKEDITOR.ENTER_P?"p":"div");e&&d.copyAttributes(e);k(d,e)}else o.call(this,d);a.moveToBookmark(b)}function k(a,b){var c=!b;if(c){b=a.getDocument().createElement("div");a.copyAttributes(b)}var d=b&&b.is("pre"),e=a.is("pre"),f=!d&&e;if(d&&!e){e=b;(f=a.getBogus())&&f.remove();f=a.getHtml();f=m(f,
+/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g,"");f=f.replace(/[ \t\r\n]*(<br[^>]*>)[ \t\r\n]*/gi,"$1");f=f.replace(/([ \t\n\r]+| )/g," ");f=f.replace(/<br\b[^>]*>/gi,"\n");if(CKEDITOR.env.ie){var g=a.getDocument().createElement("div");g.append(e);e.$.outerHTML="<pre>"+f+"</pre>";e.copyAttributes(g.getFirst());e=g.getFirst().remove()}else e.setHtml(f);b=e}else f?b=n(c?[a.getHtml()]:h(a),b):a.moveChildren(b);b.replace(a);if(d){var c=b,j;if((j=c.getPrevious(v))&&j.is&&j.is("pre")){d=m(j.getHtml(),/\n$/,"")+
+"\n\n"+m(c.getHtml(),/^\n/,"");CKEDITOR.env.ie?c.$.outerHTML="<pre>"+d+"</pre>":c.setHtml(d);j.remove()}}else c&&q(b)}function h(a){a.getName();var b=[];m(a.getOuterHtml(),/(\S\s*)\n(?:\s|(<span[^>]+data-cke-bookmark.*?\/span>))*\n(?!$)/gi,function(a,b,c){return b+"</pre>"+c+"<pre>"}).replace(/<pre\b.*?>([\s\S]*?)<\/pre>/gi,function(a,c){b.push(c)});return b}function m(a,b,c){var d="",e="",a=a.replace(/(^<span[^>]+data-cke-bookmark.*?\/span>)|(<span[^>]+data-cke-bookmark.*?\/span>$)/gi,function(a,
+b,c){b&&(d=b);c&&(e=c);return""});return d+a.replace(b,c)+e}function n(a,b){var c;a.length>1&&(c=new CKEDITOR.dom.documentFragment(b.getDocument()));for(var d=0;d<a.length;d++){var e=a[d],e=e.replace(/(\r\n|\r)/g,"\n"),e=m(e,/^[ \t]*\n/,""),e=m(e,/\n$/,""),e=m(e,/^[ \t]+|[ \t]+$/g,function(a,b){return a.length==1?" ":b?" "+CKEDITOR.tools.repeat(" ",a.length-1):CKEDITOR.tools.repeat(" ",a.length-1)+" "}),e=e.replace(/\n/g,"<br>"),e=e.replace(/[ \t]{2,}/g,function(a){return CKEDITOR.tools.repeat(" ",
+a.length-1)+" "});if(c){var f=b.clone();f.setHtml(e);c.append(f)}else b.setHtml(e)}return c||b}function o(a){var b=this._.definition,c=b.attributes,b=b.styles,d=s(this)[a.getName()],e=CKEDITOR.tools.isEmpty(c)&&CKEDITOR.tools.isEmpty(b),f;for(f in c)if(!((f=="class"||this._.definition.fullMatch)&&a.getAttribute(f)!=A(f,c[f]))){e=a.hasAttribute(f);a.removeAttribute(f)}for(var g in b)if(!(this._.definition.fullMatch&&a.getStyle(g)!=A(g,b[g],true))){e=e||!!a.getStyle(g);a.removeStyle(g)}j(a,d,p[a.getName()]);
+e&&(this._.definition.alwaysRemoveElement?q(a,1):!CKEDITOR.dtd.$block[a.getName()]||this._.enterMode==CKEDITOR.ENTER_BR&&!a.hasAttributes()?q(a):a.renameNode(this._.enterMode==CKEDITOR.ENTER_P?"p":"div"))}function l(a){for(var b=s(this),c=a.getElementsByTag(this.element),d=c.count();--d>=0;)o.call(this,c.getItem(d));for(var e in b)if(e!=this.element){c=a.getElementsByTag(e);for(d=c.count()-1;d>=0;d--){var f=c.getItem(d);j(f,b[e])}}}function j(a,b,c){if(b=b&&b.attributes)for(var d=0;d<b.length;d++){var e=
+b[d][0],f;if(f=a.getAttribute(e)){var g=b[d][1];(g===null||g.test&&g.test(f)||typeof g=="string"&&f==g)&&a.removeAttribute(e)}}c||q(a)}function q(a,b){if(!a.hasAttributes()||b)if(CKEDITOR.dtd.$block[a.getName()]){var c=a.getPrevious(v),d=a.getNext(v);c&&(c.type==CKEDITOR.NODE_TEXT||!c.isBlockBoundary({br:1}))&&a.append("br",1);d&&(d.type==CKEDITOR.NODE_TEXT||!d.isBlockBoundary({br:1}))&&a.append("br");a.remove(true)}else{c=a.getFirst();d=a.getLast();a.remove(true);if(c){c.type==CKEDITOR.NODE_ELEMENT&&
+c.mergeSiblings();d&&(!c.equals(d)&&d.type==CKEDITOR.NODE_ELEMENT)&&d.mergeSiblings()}}}function y(a,b,c){var d;d=a.element;d=="*"&&(d="span");d=new CKEDITOR.dom.element(d,b);c&&c.copyAttributes(d);d=z(d,a);b.getCustomData("doc_processing_style")&&d.hasAttribute("id")?d.removeAttribute("id"):b.setCustomData("doc_processing_style",1);return d}function z(a,b){var c=b._.definition,d=c.attributes,c=CKEDITOR.style.getStyleText(c);if(d)for(var e in d)a.setAttribute(e,d[e]);c&&a.setAttribute("style",c);
+return a}function i(a,b){for(var c in a)a[c]=a[c].replace(r,function(a,c){return b[c]})}function s(a){if(a._.overrides)return a._.overrides;var b=a._.overrides={},c=a._.definition.overrides;if(c){CKEDITOR.tools.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++){var e=c[d],f,g;if(typeof e=="string")f=e.toLowerCase();else{f=e.element?e.element.toLowerCase():a.element;g=e.attributes}e=b[f]||(b[f]={});if(g){var e=e.attributes=e.attributes||[],h;for(h in g)e.push([h.toLowerCase(),g[h]])}}}return b}function A(a,
+b,c){var d=new CKEDITOR.dom.element("span");d[c?"setStyle":"setAttribute"](a,b);return d[c?"getStyle":"getAttribute"](a)}function B(a,b){for(var c=a.document,d=a.getRanges(),e=b?this.removeFromRange:this.applyToRange,f,g=d.createIterator();f=g.getNextRange();)e.call(this,f);a.selectRanges(d);c.removeCustomData("doc_processing_style")}var p={address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,section:1,header:1,footer:1,nav:1,article:1,aside:1,figure:1,dialog:1,hgroup:1,time:1,meter:1,menu:1,command:1,
+keygen:1,output:1,progress:1,details:1,datagrid:1,datalist:1},E={a:1,embed:1,hr:1,img:1,li:1,object:1,ol:1,table:1,td:1,tr:1,th:1,ul:1,dl:1,dt:1,dd:1,form:1,audio:1,video:1},u=/\s*(?:;\s*|$)/,r=/#\((.+?)\)/g,D=CKEDITOR.dom.walker.bookmark(0,1),v=CKEDITOR.dom.walker.whitespaces(1);CKEDITOR.style=function(a,b){var c=a.attributes;if(c&&c.style){a.styles=CKEDITOR.tools.extend({},a.styles,CKEDITOR.tools.parseCssText(c.style));delete c.style}if(b){a=CKEDITOR.tools.clone(a);i(a.attributes,b);i(a.styles,
+b)}c=this.element=a.element?typeof a.element=="string"?a.element.toLowerCase():a.element:"*";this.type=a.type||(p[c]?CKEDITOR.STYLE_BLOCK:E[c]?CKEDITOR.STYLE_OBJECT:CKEDITOR.STYLE_INLINE);if(typeof this.element=="object")this.type=CKEDITOR.STYLE_OBJECT;this._={definition:a}};CKEDITOR.editor.prototype.applyStyle=function(a){B.call(a,this.getSelection())};CKEDITOR.editor.prototype.removeStyle=function(a){B.call(a,this.getSelection(),1)};CKEDITOR.style.prototype={apply:function(a){B.call(this,a.getSelection())},
+remove:function(a){B.call(this,a.getSelection(),1)},applyToRange:function(a){return(this.applyToRange=this.type==CKEDITOR.STYLE_INLINE?c:this.type==CKEDITOR.STYLE_BLOCK?d:this.type==CKEDITOR.STYLE_OBJECT?f:null).call(this,a)},removeFromRange:function(b){return(this.removeFromRange=this.type==CKEDITOR.STYLE_INLINE?a:this.type==CKEDITOR.STYLE_BLOCK?g:this.type==CKEDITOR.STYLE_OBJECT?e:null).call(this,b)},applyToObject:function(a){z(a,this)},checkActive:function(a){switch(this.type){case CKEDITOR.STYLE_BLOCK:return this.checkElementRemovable(a.block||
+a.blockLimit,true);case CKEDITOR.STYLE_OBJECT:case CKEDITOR.STYLE_INLINE:for(var b=a.elements,c=0,d;c<b.length;c++){d=b[c];if(!(this.type==CKEDITOR.STYLE_INLINE&&(d==a.block||d==a.blockLimit))){if(this.type==CKEDITOR.STYLE_OBJECT){var e=d.getName();if(!(typeof this.element=="string"?e==this.element:e in this.element))continue}if(this.checkElementRemovable(d,true))return true}}}return false},checkApplicable:function(a){switch(this.type){case CKEDITOR.STYLE_OBJECT:return a.contains(this.element)}return true},
+checkElementMatch:function(a,b){var c=this._.definition;if(!a||!c.ignoreReadonly&&a.isReadOnly())return false;var d=a.getName();if(typeof this.element=="string"?d==this.element:d in this.element){if(!b&&!a.hasAttributes())return true;if(d=c._AC)c=d;else{var d={},e=0,f=c.attributes;if(f)for(var g in f){e++;d[g]=f[g]}if(g=CKEDITOR.style.getStyleText(c)){d.style||e++;d.style=g}d._length=e;c=c._AC=d}if(c._length){for(var h in c)if(h!="_length"){e=a.getAttribute(h)||"";if(h=="style")a:{d=c[h];typeof d==
+"string"&&(d=CKEDITOR.tools.parseCssText(d));typeof e=="string"&&(e=CKEDITOR.tools.parseCssText(e,true));g=void 0;for(g in d)if(!(g in e&&(e[g]==d[g]||d[g]=="inherit"||e[g]=="inherit"))){d=false;break a}d=true}else d=c[h]==e;if(d){if(!b)return true}else if(b)return false}if(b)return true}else return true}return false},checkElementRemovable:function(a,b){if(this.checkElementMatch(a,b))return true;var c=s(this)[a.getName()];if(c){var d;if(!(c=c.attributes))return true;for(var e=0;e<c.length;e++){d=
+c[e][0];if(d=a.getAttribute(d)){var f=c[e][1];if(f===null||typeof f=="string"&&d==f||f.test(d))return true}}}return false},buildPreview:function(a){var b=this._.definition,c=[],d=b.element;d=="bdo"&&(d="span");var c=["<",d],e=b.attributes;if(e)for(var f in e)c.push(" ",f,'="',e[f],'"');(e=CKEDITOR.style.getStyleText(b))&&c.push(' style="',e,'"');c.push(">",a||b.name,"</",d,">");return c.join("")}};CKEDITOR.style.getStyleText=function(a){var b=a._ST;if(b)return b;var b=a.styles,c=a.attributes&&a.attributes.style||
+"",d="";c.length&&(c=c.replace(u,";"));for(var e in b){var f=b[e],g=(e+":"+f).replace(u,";");f=="inherit"?d=d+g:c=c+g}c.length&&(c=CKEDITOR.tools.normalizeCssText(c,true));return a._ST=c+d}})();CKEDITOR.styleCommand=function(b){this.style=b};CKEDITOR.styleCommand.prototype.exec=function(b){b.focus();this.state==CKEDITOR.TRISTATE_OFF?b.applyStyle(this.style):this.state==CKEDITOR.TRISTATE_ON&&b.removeStyle(this.style)};CKEDITOR.stylesSet=new CKEDITOR.resourceManager("","stylesSet");
+CKEDITOR.addStylesSet=CKEDITOR.tools.bind(CKEDITOR.stylesSet.add,CKEDITOR.stylesSet);CKEDITOR.loadStylesSet=function(b,c,a){CKEDITOR.stylesSet.addExternal(b,c,"");CKEDITOR.stylesSet.load(b,a)};
+CKEDITOR.editor.prototype.getStylesSet=function(b){if(this._.stylesDefinitions)b(this._.stylesDefinitions);else{var c=this,a=c.config.stylesCombo_stylesSet||c.config.stylesSet||"default";if(a instanceof Array){c._.stylesDefinitions=a;b(a)}else{var a=a.split(":"),f=a[0];CKEDITOR.stylesSet.addExternal(f,a[1]?a.slice(1).join(":"):CKEDITOR.getUrl("styles.js"),"");CKEDITOR.stylesSet.load(f,function(a){c._.stylesDefinitions=a[f];b(c._.stylesDefinitions)})}}};
+CKEDITOR.dom.comment=function(b,c){typeof b=="string"&&(b=(c?c.$:document).createComment(b));CKEDITOR.dom.domObject.call(this,b)};CKEDITOR.dom.comment.prototype=new CKEDITOR.dom.node;CKEDITOR.tools.extend(CKEDITOR.dom.comment.prototype,{type:CKEDITOR.NODE_COMMENT,getOuterHtml:function(){return"<\!--"+this.$.nodeValue+"--\>"}});
+(function(){var b={},c;for(c in CKEDITOR.dtd.$blockLimit)c in CKEDITOR.dtd.$list||(b[c]=1);var a={};for(c in CKEDITOR.dtd.$block)c in CKEDITOR.dtd.$blockLimit||c in CKEDITOR.dtd.$empty||(a[c]=1);CKEDITOR.dom.elementPath=function(c,e){var d=null,g=null,k=[],e=e||c.getDocument().getBody(),h=c;do if(h.type==CKEDITOR.NODE_ELEMENT){k.push(h);if(!this.lastElement){this.lastElement=h;if(h.is(CKEDITOR.dtd.$object))continue}var m=h.getName();if(!g){!d&&a[m]&&(d=h);if(b[m]){var n;if(n=!d){if(m=m=="div"){a:{m=
+h.getChildren();n=0;for(var o=m.count();n<o;n++){var l=m.getItem(n);if(l.type==CKEDITOR.NODE_ELEMENT&&CKEDITOR.dtd.$block[l.getName()]){m=true;break a}}m=false}m=!m&&!h.equals(e)}n=m}n?d=h:g=h}}if(h.equals(e))break}while(h=h.getParent());this.block=d;this.blockLimit=g;this.root=e;this.elements=k}})();
+CKEDITOR.dom.elementPath.prototype={compare:function(b){var c=this.elements,b=b&&b.elements;if(!b||c.length!=b.length)return false;for(var a=0;a<c.length;a++)if(!c[a].equals(b[a]))return false;return true},contains:function(b,c,a){var f;typeof b=="string"&&(f=function(a){return a.getName()==b});b instanceof CKEDITOR.dom.element?f=function(a){return a.equals(b)}:CKEDITOR.tools.isArray(b)?f=function(a){return CKEDITOR.tools.indexOf(b,a.getName())>-1}:typeof b=="function"?f=b:typeof b=="object"&&(f=
+function(a){return a.getName()in b});var e=this.elements,d=e.length;c&&d--;if(a){e=Array.prototype.slice.call(e,0);e.reverse()}for(c=0;c<d;c++)if(f(e[c]))return e[c];return null},isContextFor:function(b){var c;if(b in CKEDITOR.dtd.$block){c=this.contains(CKEDITOR.dtd.$intermediate)||this.root.equals(this.block)&&this.block||this.blockLimit;return!!c.getDtd()[b]}return true},direction:function(){return(this.block||this.blockLimit||this.root).getDirection(1)}};
+CKEDITOR.dom.text=function(b,c){typeof b=="string"&&(b=(c?c.$:document).createTextNode(b));this.$=b};CKEDITOR.dom.text.prototype=new CKEDITOR.dom.node;
+CKEDITOR.tools.extend(CKEDITOR.dom.text.prototype,{type:CKEDITOR.NODE_TEXT,getLength:function(){return this.$.nodeValue.length},getText:function(){return this.$.nodeValue},setText:function(b){this.$.nodeValue=b},split:function(b){var c=this.$.parentNode,a=c.childNodes.length,f=this.getLength(),e=this.getDocument(),d=new CKEDITOR.dom.text(this.$.splitText(b),e);if(c.childNodes.length==a)if(b>=f){d=e.createText("");d.insertAfter(this)}else{b=e.createText("");b.insertAfter(d);b.remove()}return d},substring:function(b,
+c){return typeof c!="number"?this.$.nodeValue.substr(b):this.$.nodeValue.substring(b,c)}});
+(function(){function b(a,b,c){var d=a.serializable,g=b[c?"endContainer":"startContainer"],k=c?"endOffset":"startOffset",h=d?b.document.getById(a.startNode):a.startNode,a=d?b.document.getById(a.endNode):a.endNode;if(g.equals(h.getPrevious())){b.startOffset=b.startOffset-g.getLength()-a.getPrevious().getLength();g=a.getNext()}else if(g.equals(a.getPrevious())){b.startOffset=b.startOffset-g.getLength();g=a.getNext()}g.equals(h.getParent())&&b[k]++;g.equals(a.getParent())&&b[k]++;b[c?"endContainer":"startContainer"]=
+g;return b}CKEDITOR.dom.rangeList=function(a){if(a instanceof CKEDITOR.dom.rangeList)return a;a?a instanceof CKEDITOR.dom.range&&(a=[a]):a=[];return CKEDITOR.tools.extend(a,c)};var c={createIterator:function(){var a=this,b=CKEDITOR.dom.walker.bookmark(),c=[],d;return{getNextRange:function(g){d=d==void 0?0:d+1;var k=a[d];if(k&&a.length>1){if(!d)for(var h=a.length-1;h>=0;h--)c.unshift(a[h].createBookmark(true));if(g)for(var m=0;a[d+m+1];){for(var n=k.document,g=0,h=n.getById(c[m].endNode),n=n.getById(c[m+
+1].startNode);;){h=h.getNextSourceNode(false);if(n.equals(h))g=1;else if(b(h)||h.type==CKEDITOR.NODE_ELEMENT&&h.isBlockBoundary())continue;break}if(!g)break;m++}for(k.moveToBookmark(c.shift());m--;){h=a[++d];h.moveToBookmark(c.shift());k.setEnd(h.endContainer,h.endOffset)}}return k}}},createBookmarks:function(a){for(var c=[],e,d=0;d<this.length;d++){c.push(e=this[d].createBookmark(a,true));for(var g=d+1;g<this.length;g++){this[g]=b(e,this[g]);this[g]=b(e,this[g],true)}}return c},createBookmarks2:function(a){for(var b=
+[],c=0;c<this.length;c++)b.push(this[c].createBookmark2(a));return b},moveToBookmarks:function(a){for(var b=0;b<this.length;b++)this[b].moveToBookmark(a[b])}}})();
+(function(){function b(){return CKEDITOR.getUrl(CKEDITOR.skinName.split(",")[1]||"skins/"+CKEDITOR.skinName.split(",")[0]+"/")}function c(a){var c=CKEDITOR.skin["ua_"+a],d=CKEDITOR.env;if(c)for(var c=c.split(",").sort(function(a,b){return a>b?-1:1}),e=0,f;e<c.length;e++){f=c[e];if(d.ie&&(f.replace(/^ie/,"")==d.version||d.quirks&&f=="iequirks"))f="ie";if(d[f]){a=a+("_"+c[e]);break}}return CKEDITOR.getUrl(b()+a+".css")}function a(a,b){if(!d[a]){CKEDITOR.document.appendStyleSheet(c(a));d[a]=1}b&&b()}
+function f(a){var b=a.getById(g);if(!b){b=a.getHead().append("style");b.setAttribute("id",g);b.setAttribute("type","text/css")}return b}function e(a,b,c){var d,e,f;if(CKEDITOR.env.webkit){b=b.split("}").slice(0,-1);for(e=0;e<b.length;e++)b[e]=b[e].split("{")}for(var g=0;g<a.length;g++)if(CKEDITOR.env.webkit)for(e=0;e<b.length;e++){f=b[e][1];for(d=0;d<c.length;d++)f=f.replace(c[d][0],c[d][1]);a[g].$.sheet.addRule(b[e][0],f)}else{f=b;for(d=0;d<c.length;d++)f=f.replace(c[d][0],c[d][1]);CKEDITOR.env.ie?
+a[g].$.styleSheet.cssText=a[g].$.styleSheet.cssText+f:a[g].$.innerHTML=a[g].$.innerHTML+f}}var d={};CKEDITOR.skin={path:b,loadPart:function(c,d){CKEDITOR.skin.name!=CKEDITOR.skinName.split(",")[0]?CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(b()+"skin.js"),function(){a(c,d)}):a(c,d)},getPath:function(a){return CKEDITOR.getUrl(c(a))},icons:{},addIcon:function(a,b,c){a=a.toLowerCase();this.icons[a]||(this.icons[a]={path:b,offset:c||0})},getIconStyle:function(a,b,c,d){var e;if(a){a=a.toLowerCase();b&&
+(e=this.icons[a+"-rtl"]);e||(e=this.icons[a])}a=c||e&&e.path||"";d=d||e&&e.offset;return a&&"background-image:url("+CKEDITOR.getUrl(a)+");background-position:0 "+d+"px;"}};CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{getUiColor:function(){return this.uiColor},setUiColor:function(a){var b=f(CKEDITOR.document);return(this.setUiColor=function(a){var c=CKEDITOR.skin.chameleon,d=[[h,a]];this.uiColor=a;e([b],c(this,"editor"),d);e(k,c(this,"panel"),d)}).call(this,a)}});var g="cke_ui_color",k=[],h=/\$color/g;
+CKEDITOR.on("instanceLoaded",function(a){if(!CKEDITOR.env.ie||!CKEDITOR.env.quirks){var b=a.editor,a=function(a){a=(a.data[0]||a.data).element.getElementsByTag("iframe").getItem(0).getFrameDocument();if(!a.getById("cke_ui_color")){a=f(a);k.push(a);var c=b.getUiColor();c&&e([a],CKEDITOR.skin.chameleon(b,"panel"),[[h,c]])}};b.on("panelShow",a);b.on("menuShow",a);b.config.uiColor&&b.setUiColor(b.config.uiColor)}})})();
+(function(){if(CKEDITOR.env.webkit)CKEDITOR.env.hc=false;else{var b=CKEDITOR.dom.element.createFromHtml('<div style="width:0px;height:0px;position:absolute;left:-10000px;border: 1px solid;border-color: red blue;"></div>',CKEDITOR.document);b.appendTo(CKEDITOR.document.getHead());try{CKEDITOR.env.hc=b.getComputedStyle("border-top-color")==b.getComputedStyle("border-right-color")}catch(c){CKEDITOR.env.hc=false}b.remove()}if(CKEDITOR.env.hc)CKEDITOR.env.cssClass=CKEDITOR.env.cssClass+" cke_hc";CKEDITOR.document.appendStyleText(".cke{visibility:hidden;}");
+CKEDITOR.status="loaded";CKEDITOR.fireOnce("loaded");if(b=CKEDITOR._.pending){delete CKEDITOR._.pending;for(var a=0;a<b.length;a++){CKEDITOR.editor.prototype.constructor.apply(b[a][0],b[a][1]);CKEDITOR.add(b[a][0])}}})();/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.skin.name="kama";CKEDITOR.skin.ua_editor="ie,iequirks,ie7,ie8";CKEDITOR.skin.ua_dialog="ie,iequirks,ie7,ie8,opera";
+CKEDITOR.skin.chameleon=function(e,d){function b(a){return"background:-moz-linear-gradient("+a+");background:-webkit-linear-gradient("+a+");background:-o-linear-gradient("+a+");background:-ms-linear-gradient("+a+");background:linear-gradient("+a+");"}var c,a="."+e.id;"editor"==d?c=a+" .cke_inner,"+a+" .cke_dialog_tab{background-color:$color;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to($color));"+b("top,#fff -15px,$color 40px")+"}"+a+" .cke_toolgroup{background:-webkit-gradient(linear,0 0,0 100,from(#fff),to($color));"+
+b("top,#fff,$color 100px")+"}"+a+" .cke_combo_button{background:-webkit-gradient(linear, left bottom, left -100, from(#fff), to($color));"+b("bottom,#fff,$color 100px")+"}"+a+" .cke_dialog_contents,"+a+" .cke_dialog_footer{background-color:$color !important;}"+a+" .cke_dialog_tab:hover,"+a+" .cke_dialog_tab:active,"+a+" .cke_dialog_tab:focus,"+a+" .cke_dialog_tab_selected{background-color:$color;background-image:none;}":"panel"==d&&(c=".cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton:hover .cke_menubutton_label,.cke_menubutton:focus .cke_menubutton_label,.cke_menubutton:active .cke_menubutton_label{background-color:$color !important;}.cke_menubutton_disabled:hover .cke_menubutton_label,.cke_menubutton_disabled:focus .cke_menubu
tton_label,.cke_menubutton_disabled:active .cke_menubutton_label{background-color: transparent !important;}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menubutton_disabled .cke_menubutton_icon{background-color:$color !important;border-color:$color !important;}.cke_menuseparator{background-color:$color !important;}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:$color !important;}");
+return c};CKEDITOR.plugins.add("dialogui",{onLoad:function(){var h=function(b){this._||(this._={});this._["default"]=this._.initValue=b["default"]||"";this._.required=b.required||!1;for(var a=[this._],d=1;d<arguments.length;d++)a.push(arguments[d]);a.push(!0);CKEDITOR.tools.extend.apply(CKEDITOR.tools,a);return this._},r={build:function(b,a,d){return new CKEDITOR.ui.dialog.textInput(b,a,d)}},l={build:function(b,a,d){return new CKEDITOR.ui.dialog[a.type](b,a,d)}},n={isChanged:function(){return this.getValue()!=
+this.getInitValue()},reset:function(b){this.setValue(this.getInitValue(),b)},setInitValue:function(){this._.initValue=this.getValue()},resetInitValue:function(){this._.initValue=this._["default"]},getInitValue:function(){return this._.initValue}},o=CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onChange:function(b,a){this._.domOnChangeRegistered||(b.on("load",function(){this.getInputElement().on("change",function(){b.parts.dialog.isVisible()&&this.fire("change",{value:this.getValue()})},
+this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},!0),s=/^on([A-Z]\w+)/,p=function(b){for(var a in b)(s.test(a)||"title"==a||"type"==a)&&delete b[a];return b};CKEDITOR.tools.extend(CKEDITOR.ui.dialog,{labeledElement:function(b,a,d,e){if(!(4>arguments.length)){var c=h.call(this,a);c.labelId=CKEDITOR.tools.getNextId()+"_label";this._.children=[];CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"div",null,{role:"presentation"},function(){var f=[],d=a.required?" cke_required":"";"horizontal"!=
+a.labelLayout?f.push('<label class="cke_dialog_ui_labeled_label'+d+'" ',' id="'+c.labelId+'"',c.inputId?' for="'+c.inputId+'"':"",(a.labelStyle?' style="'+a.labelStyle+'"':"")+">",a.label,"</label>",'<div class="cke_dialog_ui_labeled_content"'+(a.controlStyle?' style="'+a.controlStyle+'"':"")+' role="presentation">',e.call(this,b,a),"</div>"):(d={type:"hbox",widths:a.widths,padding:0,children:[{type:"html",html:'<label class="cke_dialog_ui_labeled_label'+d+'" id="'+c.labelId+'" for="'+c.inputId+'"'+
+(a.labelStyle?' style="'+a.labelStyle+'"':"")+">"+CKEDITOR.tools.htmlEncode(a.label)+"</span>"},{type:"html",html:'<span class="cke_dialog_ui_labeled_content"'+(a.controlStyle?' style="'+a.controlStyle+'"':"")+">"+e.call(this,b,a)+"</span>"}]},CKEDITOR.dialog._.uiElementBuilders.hbox.build(b,d,f));return f.join("")})}},textInput:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this._.inputId=CKEDITOR.tools.getNextId()+"_textInput",c={"class":"cke_dialog_ui_input_"+a.type,id:e,type:a.type};
+a.validate&&(this.validate=a.validate);a.maxLength&&(c.maxlength=a.maxLength);a.size&&(c.size=a.size);a.inputStyle&&(c.style=a.inputStyle);var f=this,i=!1;b.on("load",function(){f.getInputElement().on("keydown",function(a){a.data.getKeystroke()==13&&(i=true)});f.getInputElement().on("keyup",function(a){if(a.data.getKeystroke()==13&&i){b.getButton("ok")&&setTimeout(function(){b.getButton("ok").click()},0);i=false}},null,null,1E3)});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var b=
+['<div class="cke_dialog_ui_input_',a.type,'" role="presentation"'];a.width&&b.push('style="width:'+a.width+'" ');b.push("><input ");c["aria-labelledby"]=this._.labelId;this._.required&&(c["aria-required"]=this._.required);for(var f in c)b.push(f+'="'+c[f]+'" ');b.push(" /></div>");return b.join("")})}},textarea:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this,c=this._.inputId=CKEDITOR.tools.getNextId()+"_textarea",f={};a.validate&&(this.validate=a.validate);f.rows=a.rows||5;f.cols=
+a.cols||20;"undefined"!=typeof a.inputStyle&&(f.style=a.inputStyle);CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){f["aria-labelledby"]=this._.labelId;this._.required&&(f["aria-required"]=this._.required);var a=['<div class="cke_dialog_ui_input_textarea" role="presentation"><textarea class="cke_dialog_ui_input_textarea" id="',c,'" '],b;for(b in f)a.push(b+'="'+CKEDITOR.tools.htmlEncode(f[b])+'" ');a.push(">",CKEDITOR.tools.htmlEncode(e._["default"]),"</textarea></div>");return a.join("")})}},
+checkbox:function(b,a,d){if(!(3>arguments.length)){var e=h.call(this,a,{"default":!!a["default"]});a.validate&&(this.validate=a.validate);CKEDITOR.ui.dialog.uiElement.call(this,b,a,d,"span",null,null,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_checkbox":CKEDITOR.tools.getNextId()+"_checkbox"},true),f=[],d=CKEDITOR.tools.getNextId()+"_label",g={"class":"cke_dialog_ui_checkbox_input",type:"checkbox","aria-labelledby":d};p(c);if(a["default"])g.checked="checked";if(typeof c.inputStyle!=
+"undefined")c.style=c.inputStyle;e.checkbox=new CKEDITOR.ui.dialog.uiElement(b,c,f,"input",null,g);f.push(' <label id="',d,'" for="',g.id,'"'+(a.labelStyle?' style="'+a.labelStyle+'"':"")+">",CKEDITOR.tools.htmlEncode(a.label),"</label>");return f.join("")})}},radio:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);this._["default"]||(this._["default"]=this._.initValue=a.items[0][1]);a.validate&&(this.validate=a.valdiate);var e=[],c=this;CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){for(var f=
+[],d=[],g=a.id?a.id+"_radio":CKEDITOR.tools.getNextId()+"_radio",j=0;j<a.items.length;j++){var k=a.items[j],h=k[2]!==void 0?k[2]:k[0],l=k[1]!==void 0?k[1]:k[0],m=CKEDITOR.tools.getNextId()+"_radio_input",n=m+"_label",m=CKEDITOR.tools.extend({},a,{id:m,title:null,type:null},true),h=CKEDITOR.tools.extend({},m,{title:h},true),o={type:"radio","class":"cke_dialog_ui_radio_input",name:g,value:l,"aria-labelledby":n},q=[];if(c._["default"]==l)o.checked="checked";p(m);p(h);if(typeof m.inputStyle!="undefined")m.style=
+m.inputStyle;e.push(new CKEDITOR.ui.dialog.uiElement(b,m,q,"input",null,o));q.push(" ");new CKEDITOR.ui.dialog.uiElement(b,h,q,"label",null,{id:n,"for":o.id},k[0]);f.push(q.join(""))}new CKEDITOR.ui.dialog.hbox(b,e,f,d);return d.join("")});this._.children=e}},button:function(b,a,d){if(arguments.length){"function"==typeof a&&(a=a(b.getParentEditor()));h.call(this,a,{disabled:a.disabled||!1});CKEDITOR.event.implementOn(this);var e=this;b.on("load",function(){var a=this.getElement();(function(){a.on("click",
+e.click,e);a.on("keydown",function(a){a.data.getKeystroke()in{32:1}&&(e.click(),a.data.preventDefault())})})();a.unselectable()},this);var c=CKEDITOR.tools.extend({},a);delete c.style;var f=CKEDITOR.tools.getNextId()+"_label";CKEDITOR.ui.dialog.uiElement.call(this,b,c,d,"a",null,{style:a.style,href:"javascript:void(0)",title:a.label,hidefocus:"true","class":a["class"],role:"button","aria-labelledby":f},'<span id="'+f+'" class="cke_dialog_ui_button">'+CKEDITOR.tools.htmlEncode(a.label)+"</span>")}},
+select:function(b,a,d){if(!(3>arguments.length)){var e=h.call(this,a);a.validate&&(this.validate=a.validate);e.inputId=CKEDITOR.tools.getNextId()+"_select";CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){var c=CKEDITOR.tools.extend({},a,{id:a.id?a.id+"_select":CKEDITOR.tools.getNextId()+"_select"},true),d=[],i=[],g={id:e.inputId,"class":"cke_dialog_ui_input_select","aria-labelledby":this._.labelId};d.push('<div class="cke_dialog_ui_input_',a.type,'" role="presentation"');a.width&&d.push('style="width:'+
+a.width+'" ');d.push(">");if(a.size!=void 0)g.size=a.size;if(a.multiple!=void 0)g.multiple=a.multiple;p(c);for(var j=0,k;j<a.items.length&&(k=a.items[j]);j++)i.push('<option value="',CKEDITOR.tools.htmlEncode(k[1]!==void 0?k[1]:k[0]).replace(/"/g,"""),'" /> ',CKEDITOR.tools.htmlEncode(k[0]));if(typeof c.inputStyle!="undefined")c.style=c.inputStyle;e.select=new CKEDITOR.ui.dialog.uiElement(b,c,d,"select",null,g,i.join(""));d.push("</div>");return d.join("")})}},file:function(b,a,d){if(!(3>arguments.length)){void 0===
+a["default"]&&(a["default"]="");var e=CKEDITOR.tools.extend(h.call(this,a),{definition:a,buttons:[]});a.validate&&(this.validate=a.validate);b.on("load",function(){CKEDITOR.document.getById(e.frameId).getParent().addClass("cke_dialog_ui_input_file")});CKEDITOR.ui.dialog.labeledElement.call(this,b,a,d,function(){e.frameId=CKEDITOR.tools.getNextId()+"_fileInput";var b=CKEDITOR.env.isCustomDomain(),d=['<iframe frameborder="0" allowtransparency="0" class="cke_dialog_ui_input_file" role="presentation" id="',
+e.frameId,'" title="',a.label,'" src="javascript:void('];d.push(b?"(function(){document.open();document.domain='"+document.domain+"';document.close();})()":"0");d.push(')"></iframe>');return d.join("")})}},fileButton:function(b,a,d){if(!(3>arguments.length)){h.call(this,a);var e=this;a.validate&&(this.validate=a.validate);var c=CKEDITOR.tools.extend({},a),f=c.onClick;c.className=(c.className?c.className+" ":"")+"cke_dialog_ui_button";c.onClick=function(c){var d=a["for"];if(!f||f.call(this,c)!==false){b.getContentElement(d[0],
+d[1]).submit();this.disable()}};b.on("load",function(){b.getContentElement(a["for"][0],a["for"][1])._.buttons.push(e)});CKEDITOR.ui.dialog.button.call(this,b,c,d)}},html:function(){var b=/^\s*<[\w:]+\s+([^>]*)?>/,a=/^(\s*<[\w:]+(?:\s+[^>]*)?)((?:.|\r|\n)+)$/,d=/\/$/;return function(e,c,f){if(!(3>arguments.length)){var i=[],g=c.html;"<"!=g.charAt(0)&&(g="<span>"+g+"</span>");var j=c.focus;j&&(this.focus=function(){this.selectParentTab();"function"==typeof j&&j.call(this);this.fire("focus")},c.isFocusable&&
+(this.isFocusable=this.isFocusable),this.keyboardFocusable=!0);CKEDITOR.ui.dialog.uiElement.call(this,e,c,i,"span",null,null,"");i=i.join("").match(b);g=g.match(a)||["","",""];d.test(g[1])&&(g[1]=g[1].slice(0,-1),g[2]="/"+g[2]);f.push([g[1]," ",i[1]||"",g[2]].join(""))}}}(),fieldset:function(b,a,d,e,c){var f=c.label;this._={children:a};CKEDITOR.ui.dialog.uiElement.call(this,b,c,e,"fieldset",null,null,function(){var a=[];f&&a.push("<legend"+(c.labelStyle?' style="'+c.labelStyle+'"':"")+">"+f+"</legend>");
+for(var b=0;b<d.length;b++)a.push(d[b]);return a.join("")})}},!0);CKEDITOR.ui.dialog.html.prototype=new CKEDITOR.ui.dialog.uiElement;CKEDITOR.ui.dialog.labeledElement.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setLabel:function(b){var a=CKEDITOR.document.getById(this._.labelId);1>a.getChildCount()?(new CKEDITOR.dom.text(b,CKEDITOR.document)).appendTo(a):a.getChild(0).$.nodeValue=b;return this},getLabel:function(){var b=CKEDITOR.document.getById(this._.labelId);return!b||1>b.getChildCount()?
+"":b.getChild(0).getText()},eventProcessors:o},!0);CKEDITOR.ui.dialog.button.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{click:function(){return!this._.disabled?this.fire("click",{dialog:this._.dialog}):!1},enable:function(){this._.disabled=!1;var b=this.getElement();b&&b.removeClass("cke_disabled")},disable:function(){this._.disabled=!0;this.getElement().addClass("cke_disabled")},isVisible:function(){return this.getElement().getFirst().isVisible()},isEnabled:function(){return!this._.disabled},
+eventProcessors:CKEDITOR.tools.extend({},CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,{onClick:function(b,a){this.on("click",function(){a.apply(this,arguments)})}},!0),accessKeyUp:function(){this.click()},accessKeyDown:function(){this.focus()},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.textInput.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,{getInputElement:function(){return CKEDITOR.document.getById(this._.inputId)},focus:function(){var b=this.selectParentTab();
+setTimeout(function(){var a=b.getInputElement();a&&a.$.focus()},0)},select:function(){var b=this.selectParentTab();setTimeout(function(){var a=b.getInputElement();a&&(a.$.focus(),a.$.select())},0)},accessKeyUp:function(){this.select()},setValue:function(b){!b&&(b="");return CKEDITOR.ui.dialog.uiElement.prototype.setValue.apply(this,arguments)},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.textarea.prototype=new CKEDITOR.ui.dialog.textInput;CKEDITOR.ui.dialog.select.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,
+{getInputElement:function(){return this._.select.getElement()},add:function(b,a,d){var e=new CKEDITOR.dom.element("option",this.getDialog().getParentEditor().document),c=this.getInputElement().$;e.$.text=b;e.$.value=void 0===a||null===a?b:a;void 0===d||null===d?CKEDITOR.env.ie?c.add(e.$):c.add(e.$,null):c.add(e.$,d);return this},remove:function(b){this.getInputElement().$.remove(b);return this},clear:function(){for(var b=this.getInputElement().$;0<b.length;)b.remove(0);return this},keyboardFocusable:!0},
+n,!0);CKEDITOR.ui.dialog.checkbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getInputElement:function(){return this._.checkbox.getElement()},setValue:function(b,a){this.getInputElement().$.checked=b;!a&&this.fire("change",{value:b})},getValue:function(){return this.getInputElement().$.checked},accessKeyUp:function(){this.setValue(!this.getValue())},eventProcessors:{onChange:function(b,a){if(!CKEDITOR.env.ie||8<CKEDITOR.env.version)return o.onChange.apply(this,arguments);b.on("load",
+function(){var a=this._.checkbox.getElement();a.on("propertychange",function(b){b=b.data.$;"checked"==b.propertyName&&this.fire("change",{value:a.$.checked})},this)},this);this.on("change",a);return null}},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.radio.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{setValue:function(b,a){for(var d=this._.children,e,c=0;c<d.length&&(e=d[c]);c++)e.getElement().$.checked=e.getValue()==b;!a&&this.fire("change",{value:b})},getValue:function(){for(var b=
+this._.children,a=0;a<b.length;a++)if(b[a].getElement().$.checked)return b[a].getValue();return null},accessKeyUp:function(){var b=this._.children,a;for(a=0;a<b.length;a++)if(b[a].getElement().$.checked){b[a].getElement().focus();return}b[0].getElement().focus()},eventProcessors:{onChange:function(b,a){if(CKEDITOR.env.ie)b.on("load",function(){for(var a=this._.children,b=this,c=0;c<a.length;c++)a[c].getElement().on("propertychange",function(a){a=a.data.$;"checked"==a.propertyName&&this.$.checked&&
+b.fire("change",{value:this.getAttribute("value")})})},this),this.on("change",a);else return o.onChange.apply(this,arguments);return null}},keyboardFocusable:!0},n,!0);CKEDITOR.ui.dialog.file.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.labeledElement,n,{getInputElement:function(){var b=CKEDITOR.document.getById(this._.frameId).getFrameDocument();return 0<b.$.forms.length?new CKEDITOR.dom.element(b.$.forms[0].elements[0]):this.getElement()},submit:function(){this.getInputElement().getParent().$.submit();
+return this},getAction:function(){return this.getInputElement().getParent().$.action},registerEvents:function(b){var a=/^on([A-Z]\w+)/,d,e=function(a,b,c,d){a.on("formLoaded",function(){a.getInputElement().on(c,d,a)})},c;for(c in b)if(d=c.match(a))this.eventProcessors[c]?this.eventProcessors[c].call(this,this._.dialog,b[c]):e(this,this._.dialog,d[1].toLowerCase(),b[c]);return this},reset:function(){function b(){d.$.open();CKEDITOR.env.isCustomDomain()&&(d.$.domain=document.domain);var b="";e.size&&
+(b=e.size-(CKEDITOR.env.ie?7:0));var h=a.frameId+"_input";d.$.write(['<html dir="'+g+'" lang="'+j+'"><head><title></title></head><body style="margin: 0; overflow: hidden; background: transparent;">','<form enctype="multipart/form-data" method="POST" dir="'+g+'" lang="'+j+'" action="',CKEDITOR.tools.htmlEncode(e.action),'"><label id="',a.labelId,'" for="',h,'" style="display:none">',CKEDITOR.tools.htmlEncode(e.label),'</label><input id="',h,'" aria-labelledby="',a.labelId,'" type="file" name="',CKEDITOR.tools.htmlEncode(e.id||
+"cke_upload"),'" size="',CKEDITOR.tools.htmlEncode(0<b?b:""),'" /></form></body></html>',"<script>window.parent.CKEDITOR.tools.callFunction("+f+");","window.onbeforeunload = function() {window.parent.CKEDITOR.tools.callFunction("+i+")}<\/script>"].join(""));d.$.close();for(b=0;b<c.length;b++)c[b].enable()}var a=this._,d=CKEDITOR.document.getById(a.frameId).getFrameDocument(),e=a.definition,c=a.buttons,f=this.formLoadedNumber,i=this.formUnloadNumber,g=a.dialog._.editor.lang.dir,j=a.dialog._.editor.langCode;
+f||(f=this.formLoadedNumber=CKEDITOR.tools.addFunction(function(){this.fire("formLoaded")},this),i=this.formUnloadNumber=CKEDITOR.tools.addFunction(function(){this.getInputElement().clearCustomData()},this),this.getDialog()._.editor.on("destroy",function(){CKEDITOR.tools.removeFunction(f);CKEDITOR.tools.removeFunction(i)}));CKEDITOR.env.gecko?setTimeout(b,500):b()},getValue:function(){return this.getInputElement().$.value||""},setInitValue:function(){this._.initValue=""},eventProcessors:{onChange:function(b,
+a){this._.domOnChangeRegistered||(this.on("formLoaded",function(){this.getInputElement().on("change",function(){this.fire("change",{value:this.getValue()})},this)},this),this._.domOnChangeRegistered=!0);this.on("change",a)}},keyboardFocusable:!0},!0);CKEDITOR.ui.dialog.fileButton.prototype=new CKEDITOR.ui.dialog.button;CKEDITOR.ui.dialog.fieldset.prototype=CKEDITOR.tools.clone(CKEDITOR.ui.dialog.hbox.prototype);CKEDITOR.dialog.addUIElement("text",r);CKEDITOR.dialog.addUIElement("password",r);CKEDITOR.dialog.addUIElement("textarea",
+l);CKEDITOR.dialog.addUIElement("checkbox",l);CKEDITOR.dialog.addUIElement("radio",l);CKEDITOR.dialog.addUIElement("button",l);CKEDITOR.dialog.addUIElement("select",l);CKEDITOR.dialog.addUIElement("file",l);CKEDITOR.dialog.addUIElement("fileButton",l);CKEDITOR.dialog.addUIElement("html",l);CKEDITOR.dialog.addUIElement("fieldset",{build:function(b,a,d){for(var e=a.children,c,f=[],i=[],g=0;g<e.length&&(c=e[g]);g++){var h=[];f.push(h);i.push(CKEDITOR.dialog._.uiElementBuilders[c.type].build(b,c,h))}return new CKEDITOR.ui.dialog[a.type](b,
+i,f,d,a)}})}});CKEDITOR.DIALOG_RESIZE_NONE=0;CKEDITOR.DIALOG_RESIZE_WIDTH=1;CKEDITOR.DIALOG_RESIZE_HEIGHT=2;CKEDITOR.DIALOG_RESIZE_BOTH=3;
+(function(){function p(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId)+a,c=b-1;c>b-a;c--)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function u(){for(var a=this._.tabIdList.length,b=CKEDITOR.tools.indexOf(this._.tabIdList,this._.currentTabId),c=b+1;c<b+a;c++)if(this._.tabs[this._.tabIdList[c%a]][0].$.offsetHeight)return this._.tabIdList[c%a];return null}function q(a,b){for(var c=a.$.getElementsByTagName("input"),
+e=0,d=c.length;e<d;e++){var g=new CKEDITOR.dom.element(c[e]);"text"==g.getAttribute("type").toLowerCase()&&(b?(g.setAttribute("value",g.getCustomData("fake_value")||""),g.removeCustomData("fake_value")):(g.setCustomData("fake_value",g.getAttribute("value")),g.setAttribute("value","")))}}function P(a,b){var c=this.getInputElement();c&&(a?c.removeAttribute("aria-invalid"):c.setAttribute("aria-invalid",!0));a||(this.select?this.select():this.focus());b&&alert(b);this.fire("validated",{valid:a,msg:b})}
+function Q(){var a=this.getInputElement();a&&a.removeAttribute("aria-invalid")}function R(a){var a=CKEDITOR.dom.element.createFromHtml(CKEDITOR.addTemplate("dialog",S).output({id:CKEDITOR.tools.getNextNumber(),editorId:a.id,langDir:a.lang.dir,langCode:a.langCode,editorDialogClass:"cke_editor_"+a.name.replace(/\./g,"\\.")+"_dialog",closeTitle:a.lang.common.close})),b=a.getChild([0,0,0,0,0]),c=b.getChild(0),e=b.getChild(1);if(CKEDITOR.env.ie&&!CKEDITOR.env.ie6Compat){var d=CKEDITOR.env.isCustomDomain(),
+d="javascript:void(function(){"+encodeURIComponent("document.open();"+(d?'document.domain="'+document.domain+'";':"")+"document.close();")+"}())";CKEDITOR.dom.element.createFromHtml('<iframe frameBorder="0" class="cke_iframe_shim" src="'+d+'" tabIndex="-1"></iframe>').appendTo(b.getParent())}c.unselectable();e.unselectable();return{element:a,parts:{dialog:a.getChild(0),title:c,close:e,tabs:b.getChild(2),contents:b.getChild([3,0,0,0]),footer:b.getChild([3,0,1,0])}}}function H(a,b,c){this.element=b;
+this.focusIndex=c;this.tabIndex=0;this.isFocusable=function(){return!b.getAttribute("disabled")&&b.isVisible()};this.focus=function(){a._.currentFocusIndex=this.focusIndex;this.element.focus()};b.on("keydown",function(a){a.data.getKeystroke()in{32:1,13:1}&&this.fire("click")});b.on("focus",function(){this.fire("mouseover")});b.on("blur",function(){this.fire("mouseout")})}function T(a){function b(){a.layout()}var c=CKEDITOR.document.getWindow();c.on("resize",b);a.on("hide",function(){c.removeListener("resize",
+b)})}function I(a,b){this._={dialog:a};CKEDITOR.tools.extend(this,b)}function U(a){function b(b){var c=a.getSize(),h=CKEDITOR.document.getWindow().getViewPaneSize(),o=b.data.$.screenX,i=b.data.$.screenY,n=o-e.x,l=i-e.y;e={x:o,y:i};d.x+=n;d.y+=l;a.move(d.x+k[3]<f?-k[3]:d.x-k[1]>h.width-c.width-f?h.width-c.width+("rtl"==g.lang.dir?0:k[1]):d.x,d.y+k[0]<f?-k[0]:d.y-k[2]>h.height-c.height-f?h.height-c.height+k[2]:d.y,1);b.data.preventDefault()}function c(){CKEDITOR.document.removeListener("mousemove",
+b);CKEDITOR.document.removeListener("mouseup",c);if(CKEDITOR.env.ie6Compat){var a=r.getChild(0).getFrameDocument();a.removeListener("mousemove",b);a.removeListener("mouseup",c)}}var e=null,d=null;a.getElement().getFirst();var g=a.getParentEditor(),f=g.config.dialog_magnetDistance,k=CKEDITOR.skin.margins||[0,0,0,0];"undefined"==typeof f&&(f=20);a.parts.title.on("mousedown",function(f){e={x:f.data.$.screenX,y:f.data.$.screenY};CKEDITOR.document.on("mousemove",b);CKEDITOR.document.on("mouseup",c);d=
+a.getPosition();if(CKEDITOR.env.ie6Compat){var g=r.getChild(0).getFrameDocument();g.on("mousemove",b);g.on("mouseup",c)}f.data.preventDefault()},a)}function V(a){var b,c;function e(d){var e="rtl"==k.lang.dir,i=o.width,D=o.height,E=i+(d.data.$.screenX-b)*(e?-1:1)*(a._.moved?1:2),n=D+(d.data.$.screenY-c)*(a._.moved?1:2),x=a._.element.getFirst(),x=e&&x.getComputedStyle("right"),y=a.getPosition();y.y+n>h.height&&(n=h.height-y.y);if((e?x:y.x)+E>h.width)E=h.width-(e?x:y.x);if(f==CKEDITOR.DIALOG_RESIZE_WIDTH||
+f==CKEDITOR.DIALOG_RESIZE_BOTH)i=Math.max(g.minWidth||0,E-m);if(f==CKEDITOR.DIALOG_RESIZE_HEIGHT||f==CKEDITOR.DIALOG_RESIZE_BOTH)D=Math.max(g.minHeight||0,n-j);a.resize(i,D);a._.moved||a.layout();d.data.preventDefault()}function d(){CKEDITOR.document.removeListener("mouseup",d);CKEDITOR.document.removeListener("mousemove",e);i&&(i.remove(),i=null);if(CKEDITOR.env.ie6Compat){var a=r.getChild(0).getFrameDocument();a.removeListener("mouseup",d);a.removeListener("mousemove",e)}}var g=a.definition,f=g.resizable;
+if(f!=CKEDITOR.DIALOG_RESIZE_NONE){var k=a.getParentEditor(),m,j,h,o,i,n=CKEDITOR.tools.addFunction(function(f){o=a.getSize();var g=a.parts.contents;g.$.getElementsByTagName("iframe").length&&(i=CKEDITOR.dom.element.createFromHtml('<div class="cke_dialog_resize_cover" style="height: 100%; position: absolute; width: 100%;"></div>'),g.append(i));j=o.height-a.parts.contents.getSize("height",!(CKEDITOR.env.gecko||CKEDITOR.env.opera||CKEDITOR.env.ie&&CKEDITOR.env.quirks));m=o.width-a.parts.contents.getSize("width",
+1);b=f.screenX;c=f.screenY;h=CKEDITOR.document.getWindow().getViewPaneSize();CKEDITOR.document.on("mousemove",e);CKEDITOR.document.on("mouseup",d);CKEDITOR.env.ie6Compat&&(g=r.getChild(0).getFrameDocument(),g.on("mousemove",e),g.on("mouseup",d));f.preventDefault&&f.preventDefault()});a.on("load",function(){var b="";f==CKEDITOR.DIALOG_RESIZE_WIDTH?b=" cke_resizer_horizontal":f==CKEDITOR.DIALOG_RESIZE_HEIGHT&&(b=" cke_resizer_vertical");b=CKEDITOR.dom.element.createFromHtml('<div class="cke_resizer'+
+b+" cke_resizer_"+k.lang.dir+'" title="'+CKEDITOR.tools.htmlEncode(k.lang.common.resize)+'" onmousedown="CKEDITOR.tools.callFunction('+n+', event )">'+("ltr"==k.lang.dir?"â¢":"â£")+"</div>");a.parts.footer.append(b,1)});k.on("destroy",function(){CKEDITOR.tools.removeFunction(n)})}}function F(a){a.data.preventDefault(1)}function J(a){var b=CKEDITOR.document.getWindow(),c=a.config,e=c.dialog_backgroundCoverColor||"white",d=c.dialog_backgroundCoverOpacity,g=c.baseFloatZIndex,c=CKEDITOR.tools.genKey(e,
+d,g),f=w[c];if(f)f.show();else{g=['<div tabIndex="-1" style="position: ',CKEDITOR.env.ie6Compat?"absolute":"fixed","; z-index: ",g,"; top: 0px; left: 0px; ",!CKEDITOR.env.ie6Compat?"background-color: "+e:"",'" class="cke_dialog_background_cover">'];if(CKEDITOR.env.ie6Compat){var k=CKEDITOR.env.isCustomDomain(),e="<html><body style=\\'background-color:"+e+";\\'></body></html>";g.push('<iframe hidefocus="true" frameborder="0" id="cke_dialog_background_iframe" src="javascript:');g.push("void((function(){document.open();"+
+(k?"document.domain='"+document.domain+"';":"")+"document.write( '"+e+"' );document.close();})())");g.push('" style="position:absolute;left:0;top:0;width:100%;height: 100%;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0)"></iframe>')}g.push("</div>");f=CKEDITOR.dom.element.createFromHtml(g.join(""));f.setOpacity(void 0!=d?d:0.5);f.on("keydown",F);f.on("keypress",F);f.on("keyup",F);f.appendTo(CKEDITOR.document.getBody());w[c]=f}a.focusManager.add(f);r=f;var a=function(){var a=b.getViewPaneSize();
+f.setStyles({width:a.width+"px",height:a.height+"px"})},m=function(){var a=b.getScrollPosition(),c=CKEDITOR.dialog._.currentTop;f.setStyles({left:a.x+"px",top:a.y+"px"});if(c){do a=c.getPosition(),c.move(a.x,a.y);while(c=c._.parentDialog)}};G=a;b.on("resize",a);a();(!CKEDITOR.env.mac||!CKEDITOR.env.webkit)&&f.focus();if(CKEDITOR.env.ie6Compat){var j=function(){m();arguments.callee.prevScrollHandler.apply(this,arguments)};b.$.setTimeout(function(){j.prevScrollHandler=window.onscroll||function(){};
+window.onscroll=j},0);m()}}function K(a){r&&(a.focusManager.remove(r),a=CKEDITOR.document.getWindow(),r.hide(),a.removeListener("resize",G),CKEDITOR.env.ie6Compat&&a.$.setTimeout(function(){window.onscroll=window.onscroll&&window.onscroll.prevScrollHandler||null},0),G=null)}var s=CKEDITOR.tools.cssLength,S='<div class="cke cke_reset_all {editorId} {editorDialogClass}" dir="{langDir}" lang="{langCode}" role="application"><table class="cke_dialog '+CKEDITOR.env.cssClass+' cke_{langDir}" aria-labelledby="cke_dialog_title_{id}" style="position:absolute" role="dialog"><tr><td role="presentation"><div class="cke_dialog_body" role="presentation"><div id="cke_dialog_title_{id}" class="cke_dialog_title" role="presentation"></div><a id="cke_dialog_close_button_{id}" class="cke_dialog_close_button" href="javascript:void(0)" title="{closeTitle}" role="button"><span class="cke_label">X</span></a><div id="cke_dialog_tabs_{id}" class="cke_dialog_tabs" role="tablist"></div><table class="cke
_dialog_contents" role="presentation"><tr><td id="cke_dialog_contents_{id}" class="cke_dialog_contents_body" role="presentation"></td></tr><tr><td id="cke_dialog_footer_{id}" class="cke_dialog_footer" role="presentation"></td></tr></table></div></td></tr></table></div>';
+CKEDITOR.dialog=function(a,b){function c(){var a=l._.focusList;a.sort(function(a,b){return a.tabIndex!=b.tabIndex?b.tabIndex-a.tabIndex:a.focusIndex-b.focusIndex});for(var b=a.length,c=0;c<b;c++)a[c].focusIndex=c}function e(a){var b=l._.focusList,a=a||0;if(!(1>b.length)){var c=l._.currentFocusIndex;try{b[c].getInputElement().$.blur()}catch(d){}for(var f=c=(c+a+b.length)%b.length;a&&!b[f].isFocusable()&&!(f=(f+a+b.length)%b.length,f==c););b[f].focus();"text"==b[f].type&&b[f].select()}}function d(b){if(l==
+CKEDITOR.dialog._.currentTop){var c=b.data.getKeystroke(),f="rtl"==a.lang.dir;o=i=0;if(9==c||c==CKEDITOR.SHIFT+9)c=c==CKEDITOR.SHIFT+9,l._.tabBarMode?(c=c?p.call(l):u.call(l),l.selectPage(c),l._.tabs[c][0].focus()):e(c?-1:1),o=1;else if(c==CKEDITOR.ALT+121&&!l._.tabBarMode&&1<l.getPageCount())l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus(),o=1;else if((37==c||39==c)&&l._.tabBarMode)c=c==(f?39:37)?p.call(l):u.call(l),l.selectPage(c),l._.tabs[c][0].focus(),o=1;else if((13==c||32==c)&&l._.tabBarMode)this.selectPage(this._.currentTabId),
+this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1),o=1;else if(13==c){c=b.data.getTarget();if(!c.is("a","button","select","textarea")&&(!c.is("input")||"button"!=c.$.type))(c=this.getButton("ok"))&&CKEDITOR.tools.setTimeout(c.click,0,c),o=1;i=1}else if(27==c)(c=this.getButton("cancel"))?CKEDITOR.tools.setTimeout(c.click,0,c):!1!==this.fire("cancel",{hide:!0}).hide&&this.hide(),i=1;else return;g(b)}}function g(a){o?a.data.preventDefault(1):i&&a.data.stopPropagation()}var f=CKEDITOR.dialog._.dialogDefinitions[b],
+k=CKEDITOR.tools.clone(W),m=a.config.dialog_buttonsOrder||"OS",j=a.lang.dir,h={},o,i;("OS"==m&&CKEDITOR.env.mac||"rtl"==m&&"ltr"==j||"ltr"==m&&"rtl"==j)&&k.buttons.reverse();f=CKEDITOR.tools.extend(f(a),k);f=CKEDITOR.tools.clone(f);f=new L(this,f);k=R(a);this._={editor:a,element:k.element,name:b,contentSize:{width:0,height:0},size:{width:0,height:0},contents:{},buttons:{},accessKeyMap:{},tabs:{},tabIdList:[],currentTabId:null,currentTabIndex:null,pageCount:0,lastTab:null,tabBarMode:!1,focusList:[],
+currentFocusIndex:0,hasFocus:!1};this.parts=k.parts;CKEDITOR.tools.setTimeout(function(){a.fire("ariaWidget",this.parts.contents)},0,this);k={position:CKEDITOR.env.ie6Compat?"absolute":"fixed",top:0,visibility:"hidden"};k["rtl"==j?"right":"left"]=0;this.parts.dialog.setStyles(k);CKEDITOR.event.call(this);this.definition=f=CKEDITOR.fire("dialogDefinition",{name:b,definition:f},a).definition;if(!("removeDialogTabs"in a._)&&a.config.removeDialogTabs){k=a.config.removeDialogTabs.split(";");for(j=0;j<
+k.length;j++)if(m=k[j].split(":"),2==m.length){var n=m[0];h[n]||(h[n]=[]);h[n].push(m[1])}a._.removeDialogTabs=h}if(a._.removeDialogTabs&&(h=a._.removeDialogTabs[b]))for(j=0;j<h.length;j++)f.removeContents(h[j]);if(f.onLoad)this.on("load",f.onLoad);if(f.onShow)this.on("show",f.onShow);if(f.onHide)this.on("hide",f.onHide);if(f.onOk)this.on("ok",function(b){a.fire("saveSnapshot");setTimeout(function(){a.fire("saveSnapshot")},0);!1===f.onOk.call(this,b)&&(b.data.hide=!1)});if(f.onCancel)this.on("cancel",
+function(a){!1===f.onCancel.call(this,a)&&(a.data.hide=!1)});var l=this,C=function(a){var b=l._.contents,c=!1,f;for(f in b)for(var d in b[f])if(c=a.call(this,b[f][d]))return};this.on("ok",function(a){C(function(b){if(b.validate){var c=b.validate(this),f="string"==typeof c||!1===c;f&&(a.data.hide=!1,a.stop());P.call(b,!f,"string"==typeof c?c:void 0);return f}})},this,null,0);this.on("cancel",function(b){C(function(c){if(c.isChanged())return confirm(a.lang.common.confirmCancel)||(b.data.hide=!1),!0})},
+this,null,0);this.parts.close.on("click",function(a){!1!==this.fire("cancel",{hide:!0}).hide&&this.hide();a.data.preventDefault()},this);this.changeFocus=e;var v=this._.element;a.focusManager.add(v,1);this.on("show",function(){v.on("keydown",d,this);if(CKEDITOR.env.opera||CKEDITOR.env.gecko)v.on("keypress",g,this)});this.on("hide",function(){v.removeListener("keydown",d);(CKEDITOR.env.opera||CKEDITOR.env.gecko)&&v.removeListener("keypress",g);C(function(a){Q.apply(a)})});this.on("iframeAdded",function(a){(new CKEDITOR.dom.document(a.data.iframe.$.contentWindow.document)).on("keydown",
+d,this,null,0)});this.on("show",function(){c();if(a.config.dialog_startupFocusTab&&1<l._.pageCount)l._.tabBarMode=!0,l._.tabs[l._.currentTabId][0].focus();else if(!this._.hasFocus)if(this._.currentFocusIndex=-1,f.onFocus){var b=f.onFocus.call(this);b&&b.focus()}else e(1)},this,null,4294967295);if(CKEDITOR.env.ie6Compat)this.on("load",function(){var a=this.getElement(),b=a.getFirst();b.remove();b.appendTo(a)},this);U(this);V(this);(new CKEDITOR.dom.text(f.title,CKEDITOR.document)).appendTo(this.parts.title);
+for(j=0;j<f.contents.length;j++)(h=f.contents[j])&&this.addPage(h);this.parts.tabs.on("click",function(a){var b=a.data.getTarget();b.hasClass("cke_dialog_tab")&&(b=b.$.id,this.selectPage(b.substring(4,b.lastIndexOf("_"))),this._.tabBarMode&&(this._.tabBarMode=!1,this._.currentFocusIndex=-1,e(1)),a.data.preventDefault())},this);j=[];h=CKEDITOR.dialog._.uiElementBuilders.hbox.build(this,{type:"hbox",className:"cke_dialog_footer_buttons",widths:[],children:f.buttons},j).getChild();this.parts.footer.setHtml(j.join(""));
+for(j=0;j<h.length;j++)this._.buttons[h[j].id]=h[j]};CKEDITOR.dialog.prototype={destroy:function(){this.hide();this._.element.remove()},resize:function(){return function(a,b){if(!this._.contentSize||!(this._.contentSize.width==a&&this._.contentSize.height==b))CKEDITOR.dialog.fire("resize",{dialog:this,width:a,height:b},this._.editor),this.fire("resize",{width:a,height:b},this._.editor),this.parts.contents.setStyles({width:a+"px",height:b+"px"}),"rtl"==this._.editor.lang.dir&&this._.position&&(this._.position.x=
+CKEDITOR.document.getWindow().getViewPaneSize().width-this._.contentSize.width-parseInt(this._.element.getFirst().getStyle("right"),10)),this._.contentSize={width:a,height:b}}}(),getSize:function(){var a=this._.element.getFirst();return{width:a.$.offsetWidth||0,height:a.$.offsetHeight||0}},move:function(a,b,c){var e=this._.element.getFirst(),d="rtl"==this._.editor.lang.dir,g="fixed"==e.getComputedStyle("position");CKEDITOR.env.ie&&e.setStyle("zoom","100%");if(!g||!this._.position||!(this._.position.x==
+a&&this._.position.y==b))this._.position={x:a,y:b},g||(g=CKEDITOR.document.getWindow().getScrollPosition(),a+=g.x,b+=g.y),d&&(g=this.getSize(),a=CKEDITOR.document.getWindow().getViewPaneSize().width-g.width-a),b={top:(0<b?b:0)+"px"},b[d?"right":"left"]=(0<a?a:0)+"px",e.setStyles(b),c&&(this._.moved=1)},getPosition:function(){return CKEDITOR.tools.extend({},this._.position)},show:function(){var a=this._.element,b=this.definition;!a.getParent()||!a.getParent().equals(CKEDITOR.document.getBody())?a.appendTo(CKEDITOR.document.getBody()):
+a.setStyle("display","block");if(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version){var c=this.parts.dialog;c.setStyle("position","absolute");setTimeout(function(){c.setStyle("position","fixed")},0)}this.resize(this._.contentSize&&this._.contentSize.width||b.width||b.minWidth,this._.contentSize&&this._.contentSize.height||b.height||b.minHeight);this.reset();this.selectPage(this.definition.contents[0].id);null===CKEDITOR.dialog._.currentZIndex&&(CKEDITOR.dialog._.currentZIndex=this._.editor.config.baseFloatZIndex);
+this._.element.getFirst().setStyle("z-index",CKEDITOR.dialog._.currentZIndex+=10);null===CKEDITOR.dialog._.currentTop?(CKEDITOR.dialog._.currentTop=this,this._.parentDialog=null,J(this._.editor)):(this._.parentDialog=CKEDITOR.dialog._.currentTop,this._.parentDialog.getElement().getFirst().$.style.zIndex-=Math.floor(this._.editor.config.baseFloatZIndex/2),CKEDITOR.dialog._.currentTop=this);a.on("keydown",M);a.on(CKEDITOR.env.opera?"keypress":"keyup",N);this._.hasFocus=!1;CKEDITOR.tools.setTimeout(function(){this.layout();
+T(this);this.parts.dialog.setStyle("visibility","");this.fireOnce("load",{});CKEDITOR.ui.fire("ready",this);this.fire("show",{});this._.editor.fire("dialogShow",this);this._.parentDialog||this._.editor.focusManager.lock();this.foreach(function(a){a.setInitValue&&a.setInitValue()})},100,this)},layout:function(){var a=this.parts.dialog,b=this.getSize(),c=CKEDITOR.document.getWindow().getViewPaneSize(),e=(c.width-b.width)/2,d=(c.height-b.height)/2;CKEDITOR.env.ie6Compat||(b.height+(0<d?d:0)>c.height||
+b.width+(0<e?e:0)>c.width?a.setStyle("position","absolute"):a.setStyle("position","fixed"));this.move(this._.moved?this._.position.x:e,this._.moved?this._.position.y:d)},foreach:function(a){for(var b in this._.contents)for(var c in this._.contents[b])a.call(this,this._.contents[b][c]);return this},reset:function(){var a=function(a){a.reset&&a.reset(1)};return function(){this.foreach(a);return this}}(),setupContent:function(){var a=arguments;this.foreach(function(b){b.setup&&b.setup.apply(b,a)})},
+commitContent:function(){var a=arguments;this.foreach(function(b){CKEDITOR.env.ie&&this._.currentFocusIndex==b.focusIndex&&b.getInputElement().$.blur();b.commit&&b.commit.apply(b,a)})},hide:function(){if(this.parts.dialog.isVisible()){this.fire("hide",{});this._.editor.fire("dialogHide",this);this.selectPage(this._.tabIdList[0]);var a=this._.element;a.setStyle("display","none");this.parts.dialog.setStyle("visibility","hidden");for(X(this);CKEDITOR.dialog._.currentTop!=this;)CKEDITOR.dialog._.currentTop.hide();
+if(this._.parentDialog){var b=this._.parentDialog.getElement().getFirst();b.setStyle("z-index",parseInt(b.$.style.zIndex,10)+Math.floor(this._.editor.config.baseFloatZIndex/2))}else K(this._.editor);if(CKEDITOR.dialog._.currentTop=this._.parentDialog)CKEDITOR.dialog._.currentZIndex-=10;else{CKEDITOR.dialog._.currentZIndex=null;a.removeListener("keydown",M);a.removeListener(CKEDITOR.env.opera?"keypress":"keyup",N);var c=this._.editor;c.focus();setTimeout(function(){c.focusManager.unlock()},0)}delete this._.parentDialog;
+this.foreach(function(a){a.resetInitValue&&a.resetInitValue()})}},addPage:function(a){var b=[],c=a.label?' title="'+CKEDITOR.tools.htmlEncode(a.label)+'"':"",e=CKEDITOR.dialog._.uiElementBuilders.vbox.build(this,{type:"vbox",className:"cke_dialog_page_contents",children:a.elements,expand:!!a.expand,padding:a.padding,style:a.style||"width: 100%;"},b),b=CKEDITOR.dom.element.createFromHtml(b.join(""));b.setAttribute("role","tabpanel");var d=CKEDITOR.env,g="cke_"+a.id+"_"+CKEDITOR.tools.getNextNumber(),
+c=CKEDITOR.dom.element.createFromHtml(['<a class="cke_dialog_tab"',0<this._.pageCount?" cke_last":"cke_first",c,a.hidden?' style="display:none"':"",' id="',g,'"',d.gecko&&10900<=d.version&&!d.hc?"":' href="javascript:void(0)"',' tabIndex="-1" hidefocus="true" role="tab">',a.label,"</a>"].join(""));b.setAttribute("aria-labelledby",g);this._.tabs[a.id]=[c,b];this._.tabIdList.push(a.id);!a.hidden&&this._.pageCount++;this._.lastTab=c;this.updateStyle();g=this._.contents[a.id]={};for(d=e.getChild();e=
+d.shift();)g[e.id]=e,"function"==typeof e.getChild&&d.push.apply(d,e.getChild());b.setAttribute("name",a.id);b.appendTo(this.parts.contents);c.unselectable();this.parts.tabs.append(c);a.accessKey&&(O(this,this,"CTRL+"+a.accessKey,Y,Z),this._.accessKeyMap["CTRL+"+a.accessKey]=a.id)},selectPage:function(a){if(this._.currentTabId!=a&&!0!==this.fire("selectPage",{page:a,currentPage:this._.currentTabId})){for(var b in this._.tabs){var c=this._.tabs[b][0],e=this._.tabs[b][1];b!=a&&(c.removeClass("cke_dialog_tab_selected"),
+e.hide());e.setAttribute("aria-hidden",b!=a)}var d=this._.tabs[a];d[0].addClass("cke_dialog_tab_selected");CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat?(q(d[1]),d[1].show(),setTimeout(function(){q(d[1],1)},0)):d[1].show();this._.currentTabId=a;this._.currentTabIndex=CKEDITOR.tools.indexOf(this._.tabIdList,a)}},updateStyle:function(){this.parts.dialog[(1===this._.pageCount?"add":"remove")+"Class"]("cke_single_page")},hidePage:function(a){var b=this._.tabs[a]&&this._.tabs[a][0];b&&(1!=this._.pageCount&&
+b.isVisible())&&(a==this._.currentTabId&&this.selectPage(p.call(this)),b.hide(),this._.pageCount--,this.updateStyle())},showPage:function(a){if(a=this._.tabs[a]&&this._.tabs[a][0])a.show(),this._.pageCount++,this.updateStyle()},getElement:function(){return this._.element},getName:function(){return this._.name},getContentElement:function(a,b){var c=this._.contents[a];return c&&c[b]},getValueOf:function(a,b){return this.getContentElement(a,b).getValue()},setValueOf:function(a,b,c){return this.getContentElement(a,
+b).setValue(c)},getButton:function(a){return this._.buttons[a]},click:function(a){return this._.buttons[a].click()},disableButton:function(a){return this._.buttons[a].disable()},enableButton:function(a){return this._.buttons[a].enable()},getPageCount:function(){return this._.pageCount},getParentEditor:function(){return this._.editor},getSelectedElement:function(){return this.getParentEditor().getSelection().getSelectedElement()},addFocusable:function(a,b){if("undefined"==typeof b)b=this._.focusList.length,
+this._.focusList.push(new H(this,a,b));else{this._.focusList.splice(b,0,new H(this,a,b));for(var c=b+1;c<this._.focusList.length;c++)this._.focusList[c].focusIndex++}}};CKEDITOR.tools.extend(CKEDITOR.dialog,{add:function(a,b){if(!this._.dialogDefinitions[a]||"function"==typeof b)this._.dialogDefinitions[a]=b},exists:function(a){return!!this._.dialogDefinitions[a]},getCurrent:function(){return CKEDITOR.dialog._.currentTop},okButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"ok",
+type:"button",label:a.lang.common.ok,"class":"cke_dialog_ui_button_ok",onClick:function(a){a=a.data.dialog;!1!==a.fire("ok",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),cancelButton:function(){var a=function(a,c){c=c||{};return CKEDITOR.tools.extend({id:"cancel",type:"button",label:a.lang.common.cancel,"class":"cke_dialog_ui_button_cancel",onClick:function(a){a=a.data.dialog;!1!==
+a.fire("cancel",{hide:!0}).hide&&a.hide()}},c,!0)};a.type="button";a.override=function(b){return CKEDITOR.tools.extend(function(c){return a(c,b)},{type:"button"},!0)};return a}(),addUIElement:function(a,b){this._.uiElementBuilders[a]=b}});CKEDITOR.dialog._={uiElementBuilders:{},dialogDefinitions:{},currentTop:null,currentZIndex:null};CKEDITOR.event.implementOn(CKEDITOR.dialog);CKEDITOR.event.implementOn(CKEDITOR.dialog.prototype);var W={resizable:CKEDITOR.DIALOG_RESIZE_BOTH,minWidth:600,minHeight:400,
+buttons:[CKEDITOR.dialog.okButton,CKEDITOR.dialog.cancelButton]},z=function(a,b,c){for(var e=0,d;d=a[e];e++)if(d.id==b||c&&d[c]&&(d=z(d[c],b,c)))return d;return null},A=function(a,b,c,e,d){if(c){for(var g=0,f;f=a[g];g++){if(f.id==c)return a.splice(g,0,b),b;if(e&&f[e]&&(f=A(f[e],b,c,e,!0)))return f}if(d)return null}a.push(b);return b},B=function(a,b,c){for(var e=0,d;d=a[e];e++){if(d.id==b)return a.splice(e,1);if(c&&d[c]&&(d=B(d[c],b,c)))return d}return null},L=function(a,b){this.dialog=a;for(var c=
+b.contents,e=0,d;d=c[e];e++)c[e]=d&&new I(a,d);CKEDITOR.tools.extend(this,b)};L.prototype={getContents:function(a){return z(this.contents,a)},getButton:function(a){return z(this.buttons,a)},addContents:function(a,b){return A(this.contents,a,b)},addButton:function(a,b){return A(this.buttons,a,b)},removeContents:function(a){B(this.contents,a)},removeButton:function(a){B(this.buttons,a)}};I.prototype={get:function(a){return z(this.elements,a,"children")},add:function(a,b){return A(this.elements,a,b,
+"children")},remove:function(a){B(this.elements,a,"children")}};var G,w={},r,t={},M=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);if((b=t[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length)b=b[b.length-1],b.keydown&&b.keydown.call(b.uiElement,b.dialog,b.key),a.data.preventDefault()},N=function(a){var b=a.data.$.ctrlKey||a.data.$.metaKey,c=a.data.$.altKey,e=a.data.$.shiftKey,d=String.fromCharCode(a.data.$.keyCode);
+if((b=t[(b?"CTRL+":"")+(c?"ALT+":"")+(e?"SHIFT+":"")+d])&&b.length)b=b[b.length-1],b.keyup&&(b.keyup.call(b.uiElement,b.dialog,b.key),a.data.preventDefault())},O=function(a,b,c,e,d){(t[c]||(t[c]=[])).push({uiElement:a,dialog:b,key:c,keyup:d||a.accessKeyUp,keydown:e||a.accessKeyDown})},X=function(a){for(var b in t){for(var c=t[b],e=c.length-1;0<=e;e--)(c[e].dialog==a||c[e].uiElement==a)&&c.splice(e,1);0===c.length&&delete t[b]}},Z=function(a,b){a._.accessKeyMap[b]&&a.selectPage(a._.accessKeyMap[b])},
+Y=function(){};(function(){CKEDITOR.ui.dialog={uiElement:function(a,b,c,e,d,g,f){if(!(4>arguments.length)){var k=(e.call?e(b):e)||"div",m=["<",k," "],j=(d&&d.call?d(b):d)||{},h=(g&&g.call?g(b):g)||{},o=(f&&f.call?f.call(this,a,b):f)||"",i=this.domId=h.id||CKEDITOR.tools.getNextId()+"_uiElement";this.id=b.id;h.id=i;var n={};b.type&&(n["cke_dialog_ui_"+b.type]=1);b.className&&(n[b.className]=1);b.disabled&&(n.cke_disabled=1);for(var l=h["class"]&&h["class"].split?h["class"].split(" "):[],i=0;i<l.length;i++)l[i]&&
+(n[l[i]]=1);l=[];for(i in n)l.push(i);h["class"]=l.join(" ");b.title&&(h.title=b.title);n=(b.style||"").split(";");b.align&&(l=b.align,j["margin-left"]="left"==l?0:"auto",j["margin-right"]="right"==l?0:"auto");for(i in j)n.push(i+":"+j[i]);b.hidden&&n.push("display:none");for(i=n.length-1;0<=i;i--)""===n[i]&&n.splice(i,1);0<n.length&&(h.style=(h.style?h.style+"; ":"")+n.join("; "));for(i in h)m.push(i+'="'+CKEDITOR.tools.htmlEncode(h[i])+'" ');m.push(">",o,"</",k,">");c.push(m.join(""));(this._||
+(this._={})).dialog=a;"boolean"==typeof b.isChanged&&(this.isChanged=function(){return b.isChanged});"function"==typeof b.isChanged&&(this.isChanged=b.isChanged);"function"==typeof b.setValue&&(this.setValue=CKEDITOR.tools.override(this.setValue,function(a){return function(c){a.call(this,b.setValue.call(this,c))}}));"function"==typeof b.getValue&&(this.getValue=CKEDITOR.tools.override(this.getValue,function(a){return function(){return b.getValue.call(this,a.call(this))}}));CKEDITOR.event.implementOn(this);
+this.registerEvents(b);this.accessKeyUp&&(this.accessKeyDown&&b.accessKey)&&O(this,a,"CTRL+"+b.accessKey);var p=this;a.on("load",function(){var b=p.getInputElement();if(b){var c=p.type in{checkbox:1,ratio:1}&&CKEDITOR.env.ie&&CKEDITOR.env.version<8?"cke_dialog_ui_focused":"";b.on("focus",function(){a._.tabBarMode=false;a._.hasFocus=true;p.fire("focus");c&&this.addClass(c)});b.on("blur",function(){p.fire("blur");c&&this.removeClass(c)})}});this.keyboardFocusable&&(this.tabIndex=b.tabIndex||0,this.focusIndex=
+a._.focusList.push(this)-1,this.on("focus",function(){a._.currentFocusIndex=p.focusIndex}));CKEDITOR.tools.extend(this,b)}},hbox:function(a,b,c,e,d){if(!(4>arguments.length)){this._||(this._={});var g=this._.children=b,f=d&&d.widths||null,k=d&&d.height||null,m,j={role:"presentation"};d&&d.align&&(j.align=d.align);CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"hbox"},e,"table",{},j,function(){var a=['<tbody><tr class="cke_dialog_ui_hbox">'];for(m=0;m<c.length;m++){var b="cke_dialog_ui_hbox_child",
+e=[];0===m&&(b="cke_dialog_ui_hbox_first");m==c.length-1&&(b="cke_dialog_ui_hbox_last");a.push('<td class="',b,'" role="presentation" ');f?f[m]&&e.push("width:"+s(f[m])):e.push("width:"+Math.floor(100/c.length)+"%");k&&e.push("height:"+s(k));d&&void 0!=d.padding&&e.push("padding:"+s(d.padding));CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&g[m].align)&&e.push("text-align:"+g[m].align);0<e.length&&a.push('style="'+e.join("; ")+'" ');a.push(">",c[m],"</td>")}a.push("</tr></tbody>");return a.join("")})}},vbox:function(a,
+b,c,e,d){if(!(3>arguments.length)){this._||(this._={});var g=this._.children=b,f=d&&d.width||null,k=d&&d.heights||null;CKEDITOR.ui.dialog.uiElement.call(this,a,d||{type:"vbox"},e,"div",null,{role:"presentation"},function(){var b=['<table role="presentation" cellspacing="0" border="0" '];b.push('style="');d&&d.expand&&b.push("height:100%;");b.push("width:"+s(f||"100%"),";");b.push('"');b.push('align="',CKEDITOR.tools.htmlEncode(d&&d.align||("ltr"==a.getParentEditor().lang.dir?"left":"right")),'" ');
+b.push("><tbody>");for(var e=0;e<c.length;e++){var h=[];b.push('<tr><td role="presentation" ');f&&h.push("width:"+s(f||"100%"));k?h.push("height:"+s(k[e])):d&&d.expand&&h.push("height:"+Math.floor(100/c.length)+"%");d&&void 0!=d.padding&&h.push("padding:"+s(d.padding));CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&g[e].align)&&h.push("text-align:"+g[e].align);0<h.length&&b.push('style="',h.join("; "),'" ');b.push(' class="cke_dialog_ui_vbox_child">',c[e],"</td></tr>")}b.push("</tbody></table>");return b.join("")})}}}})();
+CKEDITOR.ui.dialog.uiElement.prototype={getElement:function(){return CKEDITOR.document.getById(this.domId)},getInputElement:function(){return this.getElement()},getDialog:function(){return this._.dialog},setValue:function(a,b){this.getInputElement().setValue(a);!b&&this.fire("change",{value:a});return this},getValue:function(){return this.getInputElement().getValue()},isChanged:function(){return!1},selectParentTab:function(){for(var a=this.getInputElement();(a=a.getParent())&&-1==a.$.className.search("cke_dialog_page_contents"););
+if(!a)return this;a=a.getAttribute("name");this._.dialog._.currentTabId!=a&&this._.dialog.selectPage(a);return this},focus:function(){this.selectParentTab().getInputElement().focus();return this},registerEvents:function(a){var b=/^on([A-Z]\w+)/,c,e=function(a,b,c,d){b.on("load",function(){a.getInputElement().on(c,d,a)})},d;for(d in a)if(c=d.match(b))this.eventProcessors[d]?this.eventProcessors[d].call(this,this._.dialog,a[d]):e(this,this._.dialog,c[1].toLowerCase(),a[d]);return this},eventProcessors:{onLoad:function(a,
+b){a.on("load",b,this)},onShow:function(a,b){a.on("show",b,this)},onHide:function(a,b){a.on("hide",b,this)}},accessKeyDown:function(){this.focus()},accessKeyUp:function(){},disable:function(){var a=this.getElement();this.getInputElement().setAttribute("disabled","true");a.addClass("cke_disabled")},enable:function(){var a=this.getElement();this.getInputElement().removeAttribute("disabled");a.removeClass("cke_disabled")},isEnabled:function(){return!this.getElement().hasClass("cke_disabled")},isVisible:function(){return this.getInputElement().isVisible()},
+isFocusable:function(){return!this.isEnabled()||!this.isVisible()?!1:!0}};CKEDITOR.ui.dialog.hbox.prototype=CKEDITOR.tools.extend(new CKEDITOR.ui.dialog.uiElement,{getChild:function(a){if(1>arguments.length)return this._.children.concat();a.splice||(a=[a]);return 2>a.length?this._.children[a[0]]:this._.children[a[0]]&&this._.children[a[0]].getChild?this._.children[a[0]].getChild(a.slice(1,a.length)):null}},!0);CKEDITOR.ui.dialog.vbox.prototype=new CKEDITOR.ui.dialog.hbox;(function(){var a={build:function(a,
+c,e){for(var d=c.children,g,f=[],k=[],m=0;m<d.length&&(g=d[m]);m++){var j=[];f.push(j);k.push(CKEDITOR.dialog._.uiElementBuilders[g.type].build(a,g,j))}return new CKEDITOR.ui.dialog[c.type](a,k,f,e,c)}};CKEDITOR.dialog.addUIElement("hbox",a);CKEDITOR.dialog.addUIElement("vbox",a)})();CKEDITOR.dialogCommand=function(a,b){this.dialogName=a;CKEDITOR.tools.extend(this,b,!0)};CKEDITOR.dialogCommand.prototype={exec:function(a){CKEDITOR.env.opera?CKEDITOR.tools.setTimeout(function(){a.openDialog(this.dialogName)},
+0,this):a.openDialog(this.dialogName)},canUndo:!1,editorFocus:CKEDITOR.env.ie||CKEDITOR.env.webkit};(function(){var a=/^([a]|[^a])+$/,b=/^\d*$/,c=/^\d*(?:\.\d+)?$/,e=/^(((\d*(\.\d+))|(\d*))(px|\%)?)?$/,d=/^(((\d*(\.\d+))|(\d*))(px|em|ex|in|cm|mm|pt|pc|\%)?)?$/i,g=/^(\s*[\w-]+\s*:\s*[^:;]+(?:;|$))*$/;CKEDITOR.VALIDATE_OR=1;CKEDITOR.VALIDATE_AND=2;CKEDITOR.dialog.validate={functions:function(){var a=arguments;return function(){var b=this&&this.getValue?this.getValue():a[0],c=void 0,d=CKEDITOR.VALIDATE_AND,
+e=[],g;for(g=0;g<a.length;g++)if("function"==typeof a[g])e.push(a[g]);else break;g<a.length&&"string"==typeof a[g]&&(c=a[g],g++);g<a.length&&"number"==typeof a[g]&&(d=a[g]);var i=d==CKEDITOR.VALIDATE_AND?!0:!1;for(g=0;g<e.length;g++)i=d==CKEDITOR.VALIDATE_AND?i&&e[g](b):i||e[g](b);return!i?c:!0}},regex:function(a,b){return function(c){c=this&&this.getValue?this.getValue():c;return!a.test(c)?b:!0}},notEmpty:function(b){return this.regex(a,b)},integer:function(a){return this.regex(b,a)},number:function(a){return this.regex(c,
+a)},cssLength:function(a){return this.functions(function(a){return d.test(CKEDITOR.tools.trim(a))},a)},htmlLength:function(a){return this.functions(function(a){return e.test(CKEDITOR.tools.trim(a))},a)},inlineStyle:function(a){return this.functions(function(a){return g.test(CKEDITOR.tools.trim(a))},a)},equals:function(a,b){return this.functions(function(b){return b==a},b)},notEqual:function(a,b){return this.functions(function(b){return b!=a},b)}};CKEDITOR.on("instanceDestroyed",function(a){if(CKEDITOR.tools.isEmpty(CKEDITOR.instances)){for(var b;b=
+CKEDITOR.dialog._.currentTop;)b.hide();for(var c in w)w[c].remove();w={}}var a=a.editor._.storedDialogs,d;for(d in a)a[d].destroy()})})();CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{openDialog:function(a,b){var c=null,e=CKEDITOR.dialog._.dialogDefinitions[a];null===CKEDITOR.dialog._.currentTop&&J(this);if("function"==typeof e)c=this._.storedDialogs||(this._.storedDialogs={}),c=c[a]||(c[a]=new CKEDITOR.dialog(this,a)),b&&b.call(c,c),c.show();else{if("failed"==e)throw K(this),Error('[CKEDITOR.dialog.openDialog] Dialog "'+
+a+'" failed when loading definition.');"string"==typeof e&&CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(e),function(){"function"!=typeof CKEDITOR.dialog._.dialogDefinitions[a]&&(CKEDITOR.dialog._.dialogDefinitions[a]="failed");this.openDialog(a,b)},this,0,1)}CKEDITOR.skin.loadPart("dialog");return c}})})();
+CKEDITOR.plugins.add("dialog",{requires:"dialogui",init:function(p){p.on("contentDom",function(){var u=p.editable();u.attachListener(u,"dblclick",function(q){if(p.readOnly)return!1;q={element:q.data.getTarget()};p.fire("doubleclick",q);q.dialog&&p.openDialog(q.dialog);return 1})})}});CKEDITOR.plugins.add("about",{requires:"dialog",init:function(a){var b=a.addCommand("about",new CKEDITOR.dialogCommand("about"));b.modes={wysiwyg:1,source:1};b.canUndo=!1;b.readOnly=1;a.ui.addButton&&a.ui.addButton("About",{label:a.lang.about.title,command:"about",toolbar:"about"});CKEDITOR.dialog.add("about",this.path+"dialogs/about.js")}});(function(){CKEDITOR.plugins.add("a11yhelp",{requires:"dialog",availableLangs:{en:1,ar:1,bg:1,ca:1,et:1,cs:1,cy:1,da:1,de:1,el:1,eo:1,es:1,fa:1,fi:1,fr:1,gu:1,he:1,hi:1,hr:1,hu:1,it:1,ja:1,ku:1,lt:1,lv:1,mk:1,mn:1,nb:1,nl:1,no:1,pl:1,pt:1,"pt-br":1,ro:1,ru:1,sk:1,sl:1,sv:1,tr:1,ug:1,uk:1,vi:1,"zh-cn":1},init:function(b){var c=this;b.addCommand("a11yHelp",{ex
ec:function(){var a=b.langCode,a=c.availableLangs[a]?a:c.availableLangs[a.replace(/-.*/,"")]?a.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+
+"dialogs/lang/"+a+".js"),function(){b.lang.a11yhelp=c.langEntries[a];b.openDialog("a11yHelp")})},modes:{wysiwyg:1,source:1},readOnly:1,canUndo:!1});b.setKeystroke(CKEDITOR.ALT+48,"a11yHelp");CKEDITOR.dialog.add("a11yHelp",this.path+"dialogs/a11yhelp.js")}})})();(function(){function e(c){var a=this.att,c=c&&c.hasAttribute(a)&&c.getAttribute(a)||"";void 0!==c&&this.setValue(c)}function f(){for(var c,a=0;a<arguments.length;a++)if(arguments[a]instanceof CKEDITOR.dom.element){c=arguments[a];break}if(c){var a=this.att,b=this.getValue();b?c.setAttribute(a,b):c.removeAttribute(a,b)}}CKEDITOR.plugins.add("dialogadvtab",{requires:"dialog",createAdvancedTab:function(c,a){a||(a={id:1,dir:1,classes:1,styles:1});var b=c.lang.common,g={id:"advanced",label:b.advancedTab,
+title:b.advancedTab,elements:[{type:"vbox",padding:1,children:[]}]},d=[];if(a.id||a.dir)a.id&&d.push({id:"advId",att:"id",type:"text",label:b.id,setup:e,commit:f}),a.dir&&d.push({id:"advLangDir",att:"dir",type:"select",label:b.langDir,"default":"",style:"width:100%",items:[[b.notSet,""],[b.langDirLTR,"ltr"],[b.langDirRTL,"rtl"]],setup:e,commit:f}),g.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(d)});if(a.styles||a.classes)d=[],a.styles&&d.push({id:"advStyles",att:"style",
+type:"text",label:b.styles,"default":"",validate:CKEDITOR.dialog.validate.inlineStyle(b.invalidInlineStyle),onChange:function(){},getStyle:function(a,c){var b=this.getValue().match(RegExp("(?:^|;)\\s*"+a+"\\s*:\\s*([^;]*)","i"));return b?b[1]:c},updateStyle:function(a,b){var d=this.getValue(),e=c.document.createElement("span");e.setAttribute("style",d);e.setStyle(a,b);d=CKEDITOR.tools.normalizeCssText(e.getAttribute("style"));this.setValue(d,1)},setup:e,commit:f}),a.classes&&d.push({type:"hbox",widths:["45%",
+"55%"],children:[{id:"advCSSClasses",att:"class",type:"text",label:b.cssClasses,"default":"",setup:e,commit:f}]}),g.elements[0].children.push({type:"hbox",widths:["50%","50%"],children:[].concat(d)});return g}})})();CKEDITOR.plugins.add("basicstyles",{init:function(c){var f=0,a=function(a,d,b,e){e&&(e=new CKEDITOR.style(e),c.attachStyleStateChange(e,function(a){!c.readOnly&&c.getCommand(b).setState(a)}),c.addCommand(b,new CKEDITOR.styleCommand(e)),c.ui.addButton&&c.ui.addButton(a,{label:d,command:b,toolbar:"basicstyles,"+(f+=10)}))},d=c.config,b=c.lang.basicstyles;a("Bold",b.bold,"bold",d.coreStyles_bold);a("Italic",b.italic,"italic",d.coreStyles_italic);a("Underline",b.underline,"underline",d.coreStyles_underline);
+a("Strike",b.strike,"strike",d.coreStyles_strike);a("Subscript",b.subscript,"subscript",d.coreStyles_subscript);a("Superscript",b.superscript,"superscript",d.coreStyles_superscript);c.setKeystroke([[CKEDITOR.CTRL+66,"bold"],[CKEDITOR.CTRL+73,"italic"],[CKEDITOR.CTRL+85,"underline"]])}});CKEDITOR.config.coreStyles_bold={element:"strong",overrides:"b"};CKEDITOR.config.coreStyles_italic={element:"em",overrides:"i"};CKEDITOR.config.coreStyles_underline={element:"u"};
+CKEDITOR.config.coreStyles_strike={element:"strike"};CKEDITOR.config.coreStyles_subscript={element:"sub"};CKEDITOR.config.coreStyles_superscript={element:"sup"};(function(){function n(a,f,d,b){if(!a.isReadOnly()&&!a.equals(d.editable())){CKEDITOR.dom.element.setMarker(b,a,"bidi_processed",1);for(var b=a,c=d.editable();(b=b.getParent())&&!b.equals(c);)if(b.getCustomData("bidi_processed")){a.removeStyle("direction");a.removeAttribute("dir");return}b="useComputedState"in d.config?d.config.useComputedState:1;if((b?a.getComputedStyle("direction"):a.getStyle("direction")||a.hasAttribute("dir"))!=f)a.removeStyle("direction"),b?(a.removeAttribute("dir"),f!=a.getComputedStyle("direction")&&
+a.setAttribute("dir",f)):a.setAttribute("dir",f),d.forceNextSelectionCheck()}}function r(a,f,d){var b=a.getCommonAncestor(!1,!0),a=a.clone();a.enlarge(d==CKEDITOR.ENTER_BR?CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS:CKEDITOR.ENLARGE_BLOCK_CONTENTS);if(a.checkBoundaryOfElement(b,CKEDITOR.START)&&a.checkBoundaryOfElement(b,CKEDITOR.END)){for(var c;b&&b.type==CKEDITOR.NODE_ELEMENT&&(c=b.getParent())&&1==c.getChildCount()&&!(b.getName()in f);)b=c;return b.type==CKEDITOR.NODE_ELEMENT&&b.getName()in f&&b}}function m(a){return{context:"p",
+refresh:function(a,d){var b=a.config.useComputedState,c,b=void 0===b||b;if(!b){c=d.lastElement;for(var h=a.editable();c&&!(c.getName()in q||c.equals(h));){var e=c.getParent();if(!e)break;c=e}}c=c||d.block||d.blockLimit;c.equals(a.editable())&&(h=a.getSelection().getRanges()[0].getEnclosedNode())&&h.type==CKEDITOR.NODE_ELEMENT&&(c=h);c&&(b=b?c.getComputedStyle("direction"):c.getStyle("direction")||c.getAttribute("dir"),a.getCommand("bidirtl").setState("rtl"==b?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF),
+a.getCommand("bidiltr").setState("ltr"==b?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF));b=(d.block||d.blockLimit||a.editable()).getDirection(1);if(b!=(a._.selDir||a.lang.dir))a._.selDir=b,a.fire("contentDirChanged",b)},exec:function(f){var d=f.getSelection(),b=f.config.enterMode,c=d.getRanges();if(c&&c.length){for(var h={},e=d.createBookmarks(),c=c.createIterator(),g,j=0;g=c.getNextRange(1);){var i=g.getEnclosedNode();if(!i||i&&!(i.type==CKEDITOR.NODE_ELEMENT&&i.getName()in o))i=r(g,p,b);i&&n(i,a,
+f,h);var k=new CKEDITOR.dom.walker(g),l=e[j].startNode,m=e[j++].endNode;k.evaluator=function(a){return!!(a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in p&&!(a.getName()==(b==CKEDITOR.ENTER_P?"p":"div")&&a.getParent().type==CKEDITOR.NODE_ELEMENT&&"blockquote"==a.getParent().getName())&&a.getPosition(l)&CKEDITOR.POSITION_FOLLOWING&&(a.getPosition(m)&CKEDITOR.POSITION_PRECEDING+CKEDITOR.POSITION_CONTAINS)==CKEDITOR.POSITION_PRECEDING)};for(;i=k.next();)n(i,a,f,h);g=g.createIterator();for(g.enlargeBr=b!=
+CKEDITOR.ENTER_BR;i=g.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");)n(i,a,f,h)}CKEDITOR.dom.element.clearAllMarkers(h);f.forceNextSelectionCheck();d.selectBookmarks(e);f.focus()}}}}function s(a){var f=a==j.setAttribute,d=a==j.removeAttribute,b=/\bdirection\s*:\s*(.*?)\s*(:?$|;)/;return function(c,h){if(!this.isReadOnly()){var e;if(e=c==(f||d?"dir":"direction")||"style"==c&&(d||b.test(h))){a:{e=this;for(var g=e.getDocument().getBody().getParent();e;){if(e.equals(g)){e=!1;break a}e=e.getParent()}e=
+!0}e=!e}if(e&&(e=this.getDirection(1),g=a.apply(this,arguments),e!=this.getDirection(1)))return this.getDocument().fire("dirChanged",this),g}return a.apply(this,arguments)}}var p={table:1,ul:1,ol:1,blockquote:1,div:1},o={},q={};CKEDITOR.tools.extend(o,p,{tr:1,p:1,div:1,li:1});CKEDITOR.tools.extend(q,o,{td:1});CKEDITOR.plugins.add("bidi",{init:function(a){function f(b,c,d,e,f){a.addCommand(d,new CKEDITOR.command(a,e));a.ui.addButton&&a.ui.addButton(b,{label:c,command:d,toolbar:"bidi,"+f})}if(!a.blockless){var d=
+a.lang.bidi;a.ui.addToolbarGroup&&a.ui.addToolbarGroup("bidi","align","paragraph");f("BidiLtr",d.ltr,"bidiltr",m("ltr"),10);f("BidiRtl",d.rtl,"bidirtl",m("rtl"),20);a.on("contentDom",function(){a.document.on("dirChanged",function(b){a.fire("dirChanged",{node:b.data,dir:b.data.getDirection(1)})})});a.on("contentDirChanged",function(b){var b=(a.lang.dir!=b.data?"add":"remove")+"Class",c=a.ui.space(a.config.toolbarLocation);if(c)c[b]("cke_mixed_dir_content")})}}});for(var j=CKEDITOR.dom.element.prototype,
+l=["setStyle","removeStyle","setAttribute","removeAttribute"],k=0;k<l.length;k++)j[l[k]]=CKEDITOR.tools.override(j[l[k]],s)})();(function(){var k={exec:function(g){var a=g.getCommand("blockquote").state,i=g.getSelection(),c=i&&i.getRanges(!0)[0];if(c){var h=i.createBookmarks();if(CKEDITOR.env.ie){var e=h[0].startNode,b=h[0].endNode,d;if(e&&"blockquote"==e.getParent().getName())for(d=e;d=d.getNext();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){e.move(d,!0);break}if(b&&"blockquote"==b.getParent().getName())for(d=b;d=d.getPrevious();)if(d.type==CKEDITOR.NODE_ELEMENT&&d.isBlockBoundary()){b.move(d);break}}var f=c.createIterator();
+f.enlargeBr=g.config.enterMode!=CKEDITOR.ENTER_BR;if(a==CKEDITOR.TRISTATE_OFF){for(e=[];a=f.getNextParagraph();)e.push(a);1>e.length&&(a=g.document.createElement(g.config.enterMode==CKEDITOR.ENTER_P?"p":"div"),b=h.shift(),c.insertNode(a),a.append(new CKEDITOR.dom.text("",g.document)),c.moveToBookmark(b),c.selectNodeContents(a),c.collapse(!0),b=c.createBookmark(),e.push(a),h.unshift(b));d=e[0].getParent();c=[];for(b=0;b<e.length;b++)a=e[b],d=d.getCommonAncestor(a.getParent());for(a={table:1,tbody:1,
+tr:1,ol:1,ul:1};a[d.getName()];)d=d.getParent();for(b=null;0<e.length;){for(a=e.shift();!a.getParent().equals(d);)a=a.getParent();a.equals(b)||c.push(a);b=a}for(;0<c.length;)if(a=c.shift(),"blockquote"==a.getName()){for(b=new CKEDITOR.dom.documentFragment(g.document);a.getFirst();)b.append(a.getFirst().remove()),e.push(b.getLast());b.replace(a)}else e.push(a);c=g.document.createElement("blockquote");for(c.insertBefore(e[0]);0<e.length;)a=e.shift(),c.append(a)}else if(a==CKEDITOR.TRISTATE_ON){b=[];
+for(d={};a=f.getNextParagraph();){for(e=c=null;a.getParent();){if("blockquote"==a.getParent().getName()){c=a.getParent();e=a;break}a=a.getParent()}c&&(e&&!e.getCustomData("blockquote_moveout"))&&(b.push(e),CKEDITOR.dom.element.setMarker(d,e,"blockquote_moveout",!0))}CKEDITOR.dom.element.clearAllMarkers(d);a=[];e=[];for(d={};0<b.length;)f=b.shift(),c=f.getParent(),f.getPrevious()?f.getNext()?(f.breakParent(f.getParent()),e.push(f.getNext())):f.remove().insertAfter(c):f.remove().insertBefore(c),c.getCustomData("blockquote_processed")||
+(e.push(c),CKEDITOR.dom.element.setMarker(d,c,"blockquote_processed",!0)),a.push(f);CKEDITOR.dom.element.clearAllMarkers(d);for(b=e.length-1;0<=b;b--){c=e[b];a:{d=c;for(var f=0,k=d.getChildCount(),j=void 0;f<k&&(j=d.getChild(f));f++)if(j.type==CKEDITOR.NODE_ELEMENT&&j.isBlockBoundary()){d=!1;break a}d=!0}d&&c.remove()}if(g.config.enterMode==CKEDITOR.ENTER_BR)for(c=!0;a.length;)if(f=a.shift(),"div"==f.getName()){b=new CKEDITOR.dom.documentFragment(g.document);c&&(f.getPrevious()&&!(f.getPrevious().type==
+CKEDITOR.NODE_ELEMENT&&f.getPrevious().isBlockBoundary()))&&b.append(g.document.createElement("br"));for(c=f.getNext()&&!(f.getNext().type==CKEDITOR.NODE_ELEMENT&&f.getNext().isBlockBoundary());f.getFirst();)f.getFirst().remove().appendTo(b);c&&b.append(g.document.createElement("br"));b.replace(f);c=!1}}i.selectBookmarks(h);g.focus()}},refresh:function(g,a){this.setState(g.elementPath(a.block||a.blockLimit).contains("blockquote",1)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)},context:"blockquote"};
+CKEDITOR.plugins.add("blockquote",{init:function(g){g.blockless||(g.addCommand("blockquote",k),g.ui.addButton&&g.ui.addButton("Blockquote",{label:g.lang.blockquote.toolbar,command:"blockquote",toolbar:"blocks,10"}))}})})();(function(){function v(b){function a(){var e=b.editable();e.on(q,function(b){(!CKEDITOR.env.ie||!m)&&u(b)});CKEDITOR.env.ie&&e.on("paste",function(e){r||(f(),e.data.preventDefault(),u(e),l("paste")||b.openDialog("paste"))});CKEDITOR.env.ie&&(e.on("contextmenu",h,null,null,0),e.on("beforepaste",function(b){b.data&&!b.data.$.ctrlKey&&h()},null,null,0));e.on("beforecut",function(){!m&&j(b)});e.on("mouseup",function(){setTimeout(function(){s()},0)});e.on("keyup",s)}function d(e){return{type:e,canUndo:"cut"==
+e,startDisabled:!0,exec:function(){"cut"==this.type&&j();var e;var a=this.type;if(CKEDITOR.env.ie)e=l(a);else try{e=b.document.$.execCommand(a,!1,null)}catch(c){e=!1}e||alert(b.lang.clipboard[this.type+"Error"]);return e}}}function c(){return{canUndo:!1,async:!0,exec:function(b,a){var c=function(a,c){a&&g(a.type,a.dataValue,!!c);b.fire("afterCommandExec",{name:"paste",command:d,returnValue:!!a})},d=this;"string"==typeof a?c({type:"auto",dataValue:a},1):b.getClipboardData(c)}}}function f(){r=1;setTimeout(function(){r=
+0},100)}function h(){m=1;setTimeout(function(){m=0},10)}function l(e){var a=b.document,c=a.getBody(),d=!1,j=function(){d=!0};c.on(e,j);(7<CKEDITOR.env.version?a.$:a.$.selection.createRange()).execCommand(e);c.removeListener(e,j);return d}function g(e,a,c){e={type:e};if(c&&!b.fire("beforePaste",e)||!a)return!1;e.dataValue=a;return b.fire("paste",e)}function j(){if(CKEDITOR.env.ie&&!CKEDITOR.env.quirks){var e=b.getSelection(),a,c,d;if(e.getType()==CKEDITOR.SELECTION_ELEMENT&&(a=e.getSelectedElement()))c=
+e.getRanges()[0],d=b.document.createText(""),d.insertBefore(a),c.setStartBefore(d),c.setEndAfter(a),e.selectRanges([c]),setTimeout(function(){a.getParent()&&(d.remove(),e.selectElement(a))},0)}}function k(a,c){var d=b.document,j=b.editable(),k=function(b){b.cancel()},f=CKEDITOR.env.gecko&&10902>=CKEDITOR.env.version;if(!d.getById("cke_pastebin")){var h=b.getSelection(),o=h.createBookmarks(),i=new CKEDITOR.dom.element(j.is("body")&&!CKEDITOR.env.ie&&!CKEDITOR.env.opera?"body":"div",d);i.setAttribute("id",
+"cke_pastebin");CKEDITOR.env.opera&&i.appendBogus();var g=0,d=d.getWindow();f?(i.insertAfter(o[0].startNode),i.setStyle("display","inline")):(CKEDITOR.env.webkit?(j.append(i),i.addClass("cke_editable"),g=(j.is("body")?j:CKEDITOR.dom.element.get(i.$.offsetParent)).getDocumentPosition().y):j.getAscendant(CKEDITOR.env.ie||CKEDITOR.env.opera?"body":"html",1).append(i),i.setStyles({position:"absolute",top:d.getScrollPosition().y-g+10+"px",width:"1px",height:Math.max(1,d.getViewPaneSize().height-20)+"px",
+overflow:"hidden",margin:0,padding:0}));(f=i.getParent().isReadOnly())?(i.setOpacity(0),i.setAttribute("contenteditable",!0)):i.setStyle("ltr"==b.config.contentsLangDirection?"left":"right","-1000px");b.on("selectionChange",k,null,null,0);f&&i.focus();f=new CKEDITOR.dom.range(i);f.selectNodeContents(i);var l=f.select();if(CKEDITOR.env.ie)var m=j.once("blur",function(){b.lockSelection(l)});var n=CKEDITOR.document.getWindow().getScrollPosition().y;setTimeout(function(){if(CKEDITOR.env.webkit||CKEDITOR.env.opera)CKEDITOR.document[CKEDITOR.env.webkit?
+"getBody":"getDocumentElement"]().$.scrollTop=n;m&&m.removeListener();CKEDITOR.env.ie&&j.focus();h.selectBookmarks(o);i.remove();var a;if(CKEDITOR.env.webkit&&(a=i.getFirst())&&a.is&&a.hasClass("Apple-style-span"))i=a;b.removeListener("selectionChange",k);c(i.getHtml())},0)}}function o(){if(CKEDITOR.env.ie){b.focus();f();var a=b.focusManager;a.lock();if(b.editable().fire(q)&&!l("paste"))return a.unlock(),!1;a.unlock()}else try{if(b.editable().fire(q)&&!b.document.$.execCommand("Paste",!1,null))throw 0;
+}catch(c){return!1}return!0}function p(a){if("wysiwyg"==b.mode)switch(a.data.keyCode){case CKEDITOR.CTRL+86:case CKEDITOR.SHIFT+45:a=b.editable();f();!CKEDITOR.env.ie&&a.fire("beforepaste");(CKEDITOR.env.opera||CKEDITOR.env.gecko&&10900>CKEDITOR.env.version)&&a.fire("paste");break;case CKEDITOR.CTRL+88:case CKEDITOR.SHIFT+46:b.fire("saveSnapshot"),setTimeout(function(){b.fire("saveSnapshot")},0)}}function u(a){var c={type:"auto"},d=b.fire("beforePaste",c);k(a,function(b){b=b.replace(/<span[^>]+data-cke-bookmark[^<]*?<\/span>/ig,
+"");d&&g(c.type,b,0,1)})}function s(){if("wysiwyg"==b.mode){var a=n("Paste");b.getCommand("cut").setState(n("Cut"));b.getCommand("copy").setState(n("Copy"));b.getCommand("paste").setState(a);b.fire("pasteState",a)}}function n(a){var c;if(t&&a in{Paste:1,Cut:1})return CKEDITOR.TRISTATE_DISABLED;if("Paste"==a){CKEDITOR.env.ie&&(m=1);try{c=b.document.$.queryCommandEnabled(a)||CKEDITOR.env.webkit}catch(d){}m=0}else a=b.getSelection(),c=a.getRanges(),c=a.type!=CKEDITOR.SELECTION_NONE&&!(1==c.length&&c[0].collapsed);
+return c?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}var m=0,r=0,t=0,q=CKEDITOR.env.ie?"beforepaste":"paste";(function(){b.on("key",p);b.on("contentDom",a);b.on("selectionChange",function(b){t=b.data.selection.getRanges()[0].checkReadOnly();s()});b.contextMenu&&b.contextMenu.addListener(function(b,a){t=a.getRanges()[0].checkReadOnly();return{cut:n("Cut"),copy:n("Copy"),paste:n("Paste")}})})();(function(){function a(c,d,j,e,f){var k=b.lang.clipboard[d];b.addCommand(d,j);b.ui.addButton&&b.ui.addButton(c,
+{label:k,command:d,toolbar:"clipboard,"+e});b.addMenuItems&&b.addMenuItem(d,{label:k,command:d,group:"clipboard",order:f})}a("Cut","cut",d("cut"),10,1);a("Copy","copy",d("copy"),20,4);a("Paste","paste",c(),30,8)})();b.getClipboardData=function(a,c){function d(a){a.removeListener();a.cancel();c(a.data)}function j(a){a.removeListener();a.cancel();g=!0;c({type:h,dataValue:a.data})}function f(){this.customTitle=a&&a.title}var k=!1,h="auto",g=!1;c||(c=a,a=null);b.on("paste",d,null,null,0);b.on("beforePaste",
+function(a){a.removeListener();k=true;h=a.data.type},null,null,1E3);!1===o()&&(b.removeListener("paste",d),k&&b.fire("pasteDialog",f)?(b.on("pasteDialogCommit",j),b.on("dialogHide",function(a){a.removeListener();a.data.removeListener("pasteDialogCommit",j);setTimeout(function(){g||c(null)},10)})):c(null))}}function w(b){if(CKEDITOR.env.webkit){if(!b.match(/^[^<]*$/g)&&!b.match(/^(<div><br( ?\/)?><\/div>|<div>[^<]*<\/div>)*$/gi))return"html"}else if(CKEDITOR.env.ie){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi)&&
+!b.match(/^(<p>([^<]|<br( ?\/)?>)*<\/p>|(\r\n))*$/gi))return"html"}else if(CKEDITOR.env.gecko||CKEDITOR.env.opera){if(!b.match(/^([^<]|<br( ?\/)?>)*$/gi))return"html"}else return"html";return"htmlifiedtext"}function x(b,a){function d(a){return CKEDITOR.tools.repeat("</p><p>",~~(a/2))+(1==a%2?"<br>":"")}a=a.replace(/\s+/g," ").replace(/> +</g,"><").replace(/<br ?\/>/gi,"<br>");a=a.replace(/<\/?[A-Z]+>/g,function(a){return a.toLowerCase()});if(a.match(/^[^<]$/))return a;CKEDITOR.env.webkit&&-1<a.indexOf("<div>")&&
+(a=a.replace(/^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g,"<br>").replace(/^(<div>(<br>|)<\/div>){2}(?!$)/g,"<div></div>"),a.match(/<div>(<br>|)<\/div>/)&&(a="<p>"+a.replace(/(<div>(<br>|)<\/div>)+/g,function(a){return d(a.split("</div><div>").length+1)})+"</p>"),a=a.replace(/<\/div><div>/g,"<br>"),a=a.replace(/<\/?div>/g,""));if((CKEDITOR.env.gecko||CKEDITOR.env.opera)&&b.enterMode!=CKEDITOR.ENTER_BR)CKEDITOR.env.gecko&&(a=a.replace(/^<br><br>$/,"<br>")),-1<a.indexOf("<br><br>")&&(a="<p>"+
+a.replace(/(<br>){2,}/g,function(a){return d(a.length/4)})+"</p>");return p(b,a)}function y(){var b=new CKEDITOR.htmlParser.filter,a={blockquote:1,dl:1,fieldset:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,ol:1,p:1,table:1,ul:1},d=CKEDITOR.tools.extend({br:0},CKEDITOR.dtd.$inline),c={p:1,br:1,"cke:br":1},f=CKEDITOR.dtd,h=CKEDITOR.tools.extend({area:1,basefont:1,embed:1,iframe:1,map:1,object:1,param:1},CKEDITOR.dtd.$nonBodyContent,CKEDITOR.dtd.$cdata),l=function(a){delete a.name;a.add(new CKEDITOR.htmlParser.text(" "))},
+g=function(a){for(var b=a,c;(b=b.next)&&b.name&&b.name.match(/^h\d$/);){c=new CKEDITOR.htmlParser.element("cke:br");c.isEmpty=!0;for(a.add(c);c=b.children.shift();)a.add(c)}};b.addRules({elements:{h1:g,h2:g,h3:g,h4:g,h5:g,h6:g,img:function(a){var a=CKEDITOR.tools.trim(a.attributes.alt||""),b=" ";a&&!a.match(/(^http|\.(jpe?g|gif|png))/i)&&(b=" ["+a+"] ");return new CKEDITOR.htmlParser.text(b)},td:l,th:l,$:function(b){var k=b.name,g;if(h[k])return!1;delete b.attributes;if("br"==k)return b;if(a[k])b.name=
+"p";else if(d[k])delete b.name;else if(f[k]){g=new CKEDITOR.htmlParser.element("cke:br");g.isEmpty=!0;if(CKEDITOR.dtd.$empty[k])return g;b.add(g,0);g=g.clone();g.isEmpty=!0;b.add(g);delete b.name}c[b.name]||delete b.name;return b}}});return b}function z(b,a,d){var a=new CKEDITOR.htmlParser.fragment.fromHtml(a),c=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(c,d);var a=c.getHtml(),a=a.replace(/\s*(<\/?[a-z:]+ ?\/?>)\s*/g,"$1").replace(/(<cke:br \/>){2,}/g,"<cke:br />").replace(/(<cke:br \/>)(<\/?p>|<br \/>)/g,
+"$2").replace(/(<\/?p>|<br \/>)(<cke:br \/>)/g,"$1").replace(/<(cke:)?br( \/)?>/g,"<br>").replace(/<p><\/p>/g,""),f=0,a=a.replace(/<\/?p>/g,function(a){if("<p>"==a){if(1<++f)return"</p><p>"}else if(0<--f)return"</p><p>";return a}).replace(/<p><\/p>/g,"");return p(b,a)}function p(b,a){b.enterMode==CKEDITOR.ENTER_BR?a=a.replace(/(<\/p><p>)+/g,function(a){return CKEDITOR.tools.repeat("<br>",2*(a.length/7))}).replace(/<\/?p>/g,""):b.enterMode==CKEDITOR.ENTER_DIV&&(a=a.replace(/<(\/)?p>/g,"<$1div>"));
+return a}CKEDITOR.plugins.add("clipboard",{requires:"dialog",init:function(b){var a;v(b);CKEDITOR.dialog.add("paste",CKEDITOR.getUrl(this.path+"dialogs/paste.js"));b.on("paste",function(a){var b=a.data.dataValue,f=CKEDITOR.dtd.$block;-1<b.indexOf("Apple-")&&(b=b.replace(/<span class="Apple-converted-space"> <\/span>/gi," "),"html"!=a.data.type&&(b=b.replace(/<span class="Apple-tab-span"[^>]*>([^<]*)<\/span>/gi,function(a,b){return b.replace(/\t/g," ")})),-1<b.indexOf('<br class="Apple-interchange-newline">')&&
+(a.data.startsWithEOL=1,a.data.preSniffing="html",b=b.replace(/<br class="Apple-interchange-newline">/,"")),b=b.replace(/(<[^>]+) class="Apple-[^"]*"/gi,"$1"));if(b.match(/^<[^<]+cke_(editable|contents)/i)){var h,l,g=new CKEDITOR.dom.element("div");for(g.setHtml(b);1==g.getChildCount()&&(h=g.getFirst())&&h.type==CKEDITOR.NODE_ELEMENT&&(h.hasClass("cke_editable")||h.hasClass("cke_contents"));)g=l=h;l&&(b=l.getHtml().replace(/<br>$/i,""))}CKEDITOR.env.ie?b=b.replace(/^ (?: |\r\n)?<(\w+)/g,function(b,
+c){if(c.toLowerCase()in f){a.data.preSniffing="html";return"<"+c}return b}):CKEDITOR.env.webkit?b=b.replace(/<\/(\w+)><div><br><\/div>$/,function(b,c){if(c in f){a.data.endsWithEOL=1;return"</"+c+">"}return b}):CKEDITOR.env.gecko&&(b=b.replace(/(\s)<br>$/,"$1"));a.data.dataValue=b},null,null,3);b.on("paste",function(d){var d=d.data,c=d.type,f=d.dataValue,h,l=b.config.clipboard_defaultContentType||"html";h="html"==c||"html"==d.preSniffing?"html":w(f);"htmlifiedtext"==h?f=x(b.config,f):"text"==c&&"html"==
+h&&(f=z(b.config,f,a||(a=y(b))));d.startsWithEOL&&(f='<br data-cke-eol="1">'+f);d.endsWithEOL&&(f+='<br data-cke-eol="1">');"auto"==c&&(c="html"==h||"html"==l?"html":"text");d.type=c;d.dataValue=f;delete d.preSniffing;delete d.startsWithEOL;delete d.endsWithEOL},null,null,6);b.on("paste",function(a){a=a.data;b.insertHtml(a.dataValue,a.type);setTimeout(function(){b.fire("afterPaste")},0)},null,null,1E3);b.on("pasteDialog",function(a){setTimeout(function(){b.openDialog("paste",a.data)},0)})}})})();(function(){var a='<a id="{id}" class="cke_button cke_button__{name} cke_button_{state} {cls}"'+(CKEDITOR.env.gecko&&10900<=CKEDITOR.env.version&&!CKEDITOR.env.hc?"":'" href="javascript:void(\'{titleJs}\')"')+' title="{title}" tabindex="-1" hidefocus="true" role="button" aria-labelledby="{id}_label" aria-haspopup="{hasArrow}"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)a+=' onkeypress="return false;"';CKEDITOR.env.gecko&&(a+=' onblur="this.style.cssText = this.style.
cssText;"');var a=
+a+(' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event);" onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},this);return false;"><span class="cke_button_icon cke_button__{iconName}_icon" style="{style}"'),a=a+'> </span><span id="{id}_label" class="cke_button_label cke_button__{name}_label">{label}</span>{arrowHtml}</a>',
+m=CKEDITOR.addTemplate("buttonArrow",'<span class="cke_button_arrow">'+(CKEDITOR.env.hc?"▼":"")+"</span>"),n=CKEDITOR.addTemplate("button",a);CKEDITOR.plugins.add("button",{beforeInit:function(b){b.ui.addHandler(CKEDITOR.UI_BUTTON,CKEDITOR.ui.button.handler)}});CKEDITOR.UI_BUTTON="button";CKEDITOR.ui.button=function(b){CKEDITOR.tools.extend(this,b,{title:b.label,click:b.click||function(e){e.execCommand(b.command)}});this._={}};CKEDITOR.ui.button.handler={create:function(b){return new CKEDITOR.ui.button(b)}};
+CKEDITOR.ui.button.prototype={render:function(b,e){var a=CKEDITOR.env,i=this._.id=CKEDITOR.tools.getNextId(),f="",d=this.command,l;this._.editor=b;var c={id:i,button:this,editor:b,focus:function(){CKEDITOR.document.getById(i).focus()},execute:function(){this.button.click(b)},attach:function(b){this.button.attach(b)}},o=CKEDITOR.tools.addFunction(function(b){if(c.onkey)return b=new CKEDITOR.dom.event(b),!1!==c.onkey(c,b.getKeystroke())}),p=CKEDITOR.tools.addFunction(function(b){var a;c.onfocus&&(a=
+!1!==c.onfocus(c,new CKEDITOR.dom.event(b)));CKEDITOR.env.gecko&&10900>CKEDITOR.env.version&&b.preventBubble();return a}),j=0,q=CKEDITOR.tools.addFunction(function(){if(CKEDITOR.env.opera){var a=b.editable();a.isInline()&&a.hasFocus&&(b.lockSelection(),j=1)}});c.clickFn=l=CKEDITOR.tools.addFunction(function(){j&&(b.unlockSelection(1),j=0);c.execute()});if(this.modes){var k={},g=function(){var a=b.mode;a&&(a=this.modes[a]?void 0!=k[a]?k[a]:CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,this.setState(b.readOnly&&
+!this.readOnly?CKEDITOR.TRISTATE_DISABLED:a))};b.on("beforeModeUnload",function(){b.mode&&this._.state!=CKEDITOR.TRISTATE_DISABLED&&(k[b.mode]=this._.state)},this);b.on("mode",g,this);!this.readOnly&&b.on("readOnly",g,this)}else if(d&&(d=b.getCommand(d)))d.on("state",function(){this.setState(d.state)},this),f+=d.state==CKEDITOR.TRISTATE_ON?"on":d.state==CKEDITOR.TRISTATE_DISABLED?"disabled":"off";if(this.directional)b.on("contentDirChanged",function(a){var e=CKEDITOR.document.getById(this._.id),c=
+e.getFirst(),a=a.data;a!=b.lang.dir?e.addClass("cke_"+a):e.removeClass("cke_ltr").removeClass("cke_rtl");c.setAttribute("style",CKEDITOR.skin.getIconStyle(h,"rtl"==a,this.icon,this.iconOffset))},this);d||(f+="off");var h=g=this.name||this.command;this.icon&&!/\./.test(this.icon)&&(h=this.icon,this.icon=null);a={id:i,name:g,iconName:h,label:this.label,cls:this.className||"",state:f,title:this.title,titleJs:a.gecko&&10900<=a.version&&!a.hc?"":(this.title||"").replace("'",""),hasArrow:this.hasArrow?
+"true":"false",keydownFn:o,mousedownFn:q,focusFn:p,clickFn:l,style:CKEDITOR.skin.getIconStyle(h,"rtl"==b.lang.dir,this.icon,this.iconOffset),arrowHtml:this.hasArrow?m.output():""};n.output(a,e);if(this.onRender)this.onRender();return c},setState:function(b){if(this._.state==b)return!1;this._.state=b;var a=CKEDITOR.document.getById(this._.id);return a?(a.setState(b,"cke_button"),b==CKEDITOR.TRISTATE_DISABLED?a.setAttribute("aria-disabled",!0):a.removeAttribute("aria-disabled"),b==CKEDITOR.TRISTATE_ON?
+a.setAttribute("aria-pressed",!0):a.removeAttribute("aria-pressed"),!0):!1}};CKEDITOR.ui.prototype.addButton=function(b,a){this.add(b,CKEDITOR.UI_BUTTON,a)}})();CKEDITOR.plugins.add("panelbutton",{requires:"button",onLoad:function(){function e(c){var a=this._;a.state!=CKEDITOR.TRISTATE_DISABLED&&(this.createPanel(c),a.on?a.panel.hide():a.panel.showBlock(this._.id,this.document.getById(this._.id),4))}CKEDITOR.ui.panelButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(c){var a=c.panel||{};delete c.panel;this.base(c);this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.block={attributes:a.attributes};this.hasArrow=a.toolbarRelated=
+!0;this.click=e;this._={panelDefinition:a}},statics:{handler:{create:function(c){return new CKEDITOR.ui.panelButton(c)}}},proto:{createPanel:function(c){var a=this._;if(!a.panel){var f=this._.panelDefinition,e=this._.panelDefinition.block,g=f.parent||CKEDITOR.document.getBody(),d=this._.panel=new CKEDITOR.ui.floatPanel(c,g,f),f=d.addBlock(a.id,e),b=this;d.onShow=function(){b.className&&this.element.addClass(b.className+"_panel");b.setState(CKEDITOR.TRISTATE_ON);a.on=1;b.editorFocus&&c.focus();if(b.onOpen)b.onOpen()};
+d.onHide=function(d){b.className&&this.element.getFirst().removeClass(b.className+"_panel");b.setState(b.modes&&b.modes[c.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);a.on=0;if(!d&&b.onClose)b.onClose()};d.onEscape=function(){d.hide(1);b.document.getById(a.id).focus()};if(this.onBlock)this.onBlock(d,f);f.onHide=function(){a.on=0;b.setState(CKEDITOR.TRISTATE_OFF)}}}}})},beforeInit:function(e){e.ui.addHandler(CKEDITOR.UI_PANELBUTTON,CKEDITOR.ui.panelButton.handler)}});
+CKEDITOR.UI_PANELBUTTON="panelbutton";(function(){CKEDITOR.plugins.add("panel",{beforeInit:function(a){a.ui.addHandler(CKEDITOR.UI_PANEL,CKEDITOR.ui.panel.handler)}});CKEDITOR.UI_PANEL="panel";CKEDITOR.ui.panel=function(a,b){b&&CKEDITOR.tools.extend(this,b);CKEDITOR.tools.extend(this,{className:"",css:[]});this.id=CKEDITOR.tools.getNextId();this.document=a;this.isFramed=this.forceIFrame||this.css.length;this._={blocks:{}}};CKEDITOR.ui.panel.handler={create:function(a){return new CKEDITOR.ui.panel(a)}};var e=CKEDITOR.addTemplate("panel",
+'<div lang="{langCode}" id="{id}" dir={dir} class="cke cke_reset_all {editorId} cke_panel cke_panel {cls} cke_{dir}" style="z-index:{z-index}" role="presentation">{frame}</div>'),f=CKEDITOR.addTemplate("panel-frame",'<iframe id="{id}" class="cke_panel_frame" role="application" frameborder="0" src="{src}"></iframe>'),g=CKEDITOR.addTemplate("panel-frame-inner",'<!DOCTYPE html><html class="cke_panel_container {env}" dir="{dir}" lang="{langCode}"><head>{css}</head><body class="cke_{dir}" style="margin:0;padding:0" onload="{onload}"></body></html>');
+CKEDITOR.ui.panel.prototype={render:function(a,b){this.getHolderElement=function(){var a=this._.holder;if(!a){if(this.isFramed){var a=this.document.getById(this.id+"_frame"),b=a.getParent(),a=a.getFrameDocument();CKEDITOR.env.iOS&&b.setStyles({overflow:"scroll","-webkit-overflow-scrolling":"touch"});b=CKEDITOR.tools.addFunction(CKEDITOR.tools.bind(function(){this.isLoaded=!0;if(this.onLoad)this.onLoad()},this));a.write(g.output(CKEDITOR.tools.extend({css:CKEDITOR.tools.buildStyleHtml(this.css),onload:"window.parent.CKEDITOR.tools.callFunction("+
+b+");"},c)));a.getWindow().$.CKEDITOR=CKEDITOR;a.on("key"+(CKEDITOR.env.opera?"press":"down"),function(a){var b=a.data.getKeystroke(),c=this.document.getById(this.id).getAttribute("dir");this._.onKeyDown&&!1===this._.onKeyDown(b)?a.data.preventDefault():(27==b||b==("rtl"==c?39:37))&&this.onEscape&&!1===this.onEscape(b)&&a.data.preventDefault()},this);a=a.getBody();a.unselectable();CKEDITOR.env.air&&CKEDITOR.tools.callFunction(b)}else a=this.document.getById(this.id);this._.holder=a}return a};var c=
+{editorId:a.id,id:this.id,langCode:a.langCode,dir:a.lang.dir,cls:this.className,frame:"",env:CKEDITOR.env.cssClass,"z-index":a.config.baseFloatZIndex+1};this.isFramed&&(c.frame=f.output({id:this.id+"_frame",src:"javascript:void(document.open(),"+(CKEDITOR.env.isCustomDomain()?"document.domain='"+document.domain+"',":"")+'document.close())">'}));var d=e.output(c);b&&b.push(d);return d},addBlock:function(a,b){b=this._.blocks[a]=b instanceof CKEDITOR.ui.panel.block?b:new CKEDITOR.ui.panel.block(this.getHolderElement(),
+b);this._.currentBlock||this.showBlock(a);return b},getBlock:function(a){return this._.blocks[a]},showBlock:function(a){var a=this._.blocks[a],b=this._.currentBlock,c=!this.forceIFrame||CKEDITOR.env.ie?this._.holder:this.document.getById(this.id+"_frame");b&&(c.removeAttributes(b.attributes),b.hide());this._.currentBlock=a;c.setAttributes(a.attributes);CKEDITOR.fire("ariaWidget",c);a._.focusIndex=-1;this._.onKeyDown=a.onKeyDown&&CKEDITOR.tools.bind(a.onKeyDown,a);a.show();return a},destroy:function(){this.element&&
+this.element.remove()}};CKEDITOR.ui.panel.block=CKEDITOR.tools.createClass({$:function(a,b){this.element=a.append(a.getDocument().createElement("div",{attributes:{tabIndex:-1,"class":"cke_panel_block",role:"presentation"},styles:{display:"none"}}));b&&CKEDITOR.tools.extend(this,b);this.attributes.title||(this.attributes.title=this.attributes["aria-label"]);this.keys={};this._.focusIndex=-1;this.element.disableContextMenu()},_:{markItem:function(a){-1!=a&&(a=this.element.getElementsByTag("a").getItem(this._.focusIndex=
+a),(CKEDITOR.env.webkit||CKEDITOR.env.opera)&&a.getDocument().getWindow().focus(),a.focus(),this.onMark&&this.onMark(a))}},proto:{show:function(){this.element.setStyle("display","")},hide:function(){(!this.onHide||!0!==this.onHide.call(this))&&this.element.setStyle("display","none")},onKeyDown:function(a){var b=this.keys[a];switch(b){case "next":for(var a=this._.focusIndex,b=this.element.getElementsByTag("a"),c;c=b.getItem(++a);)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=
+a;c.focus();break}return!1;case "prev":a=this._.focusIndex;for(b=this.element.getElementsByTag("a");0<a&&(c=b.getItem(--a));)if(c.getAttribute("_cke_focus")&&c.$.offsetWidth){this._.focusIndex=a;c.focus();break}return!1;case "click":case "mouseup":return a=this._.focusIndex,(c=0<=a&&this.element.getElementsByTag("a").getItem(a))&&(c.$[b]?c.$[b]():c.$["on"+b]()),!1}return!0}}})})();CKEDITOR.plugins.add("floatpanel",{requires:"panel"});
+(function(){function o(a,b,c,h,g){var g=CKEDITOR.tools.genKey(b.getUniqueId(),c.getUniqueId(),a.lang.dir,a.uiColor||"",h.css||"",g||""),e=i[g];e||(e=i[g]=new CKEDITOR.ui.panel(b,h),e.element=c.append(CKEDITOR.dom.element.createFromHtml(e.render(a),b)),e.element.setStyles({display:"none",position:"absolute"}));return e}var i={};CKEDITOR.ui.floatPanel=CKEDITOR.tools.createClass({$:function(a,b,c,h){function g(){j.hide()}c.forceIFrame=1;c.toolbarRelated&&a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE&&
+(b=CKEDITOR.document.getById("cke_"+a.name));var e=b.getDocument(),h=o(a,e,b,c,h||0),k=h.element,d=k.getFirst(),j=this;k.disableContextMenu();k.setAttribute("role","application");this.element=k;this._={editor:a,panel:h,parentElement:b,definition:c,document:e,iframe:d,children:[],dir:a.lang.dir};a.on("mode",g);a.on("resize",g);e.getWindow().on("resize",g)},proto:{addBlock:function(a,b){return this._.panel.addBlock(a,b)},addListBlock:function(a,b){return this._.panel.addListBlock(a,b)},getBlock:function(a){return this._.panel.getBlock(a)},
+showBlock:function(a,b,c,h,g){var e=this._.panel,k=e.showBlock(a);this.allowBlur(!1);a=this._.editor.editable();this._.returnFocus=a.hasFocus?a:new CKEDITOR.dom.element(CKEDITOR.document.$.activeElement);var d=this.element,a=this._.iframe,a=CKEDITOR.env.ie?a:new CKEDITOR.dom.window(a.$.contentWindow),j=d.getDocument(),i=this._.parentElement.getPositionedAncestor(),n=b.getDocumentPosition(j),j=i?i.getDocumentPosition(j):{x:0,y:0},m="rtl"==this._.dir,f=n.x+(h||0)-j.x,l=n.y+(g||0)-j.y;if(m&&(1==c||4==
+c))f+=b.$.offsetWidth;else if(!m&&(2==c||3==c))f+=b.$.offsetWidth-1;if(3==c||4==c)l+=b.$.offsetHeight-1;this._.panel._.offsetParentId=b.getId();d.setStyles({top:l+"px",left:0,display:""});d.setOpacity(0);d.getFirst().removeStyle("width");this._.editor.focusManager.add(a);this._.blurSet||(CKEDITOR.event.useCapture=!0,a.on("blur",function(a){this.allowBlur()&&a.data.getPhase()==CKEDITOR.EVENT_PHASE_AT_TARGET&&(this.visible&&!this._.activeChild)&&(delete this._.returnFocus,this.hide())},this),a.on("focus",
+function(){this._.focused=!0;this.hideChild();this.allowBlur(!0)},this),CKEDITOR.event.useCapture=!1,this._.blurSet=1);e.onEscape=CKEDITOR.tools.bind(function(a){if(this.onEscape&&this.onEscape(a)===false)return false},this);CKEDITOR.tools.setTimeout(function(){var a=CKEDITOR.tools.bind(function(){d.removeStyle("width");if(k.autoSize){var a=k.element.getDocument(),a=(CKEDITOR.env.webkit?k.element:a.getBody()).$.scrollWidth;CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&a>0)&&(a=a+((d.$.offsetWidth||0)-(d.$.clientWidth||
+0)+3));d.setStyle("width",a+10+"px");a=k.element.$.scrollHeight;CKEDITOR.env.ie&&(CKEDITOR.env.quirks&&a>0)&&(a=a+((d.$.offsetHeight||0)-(d.$.clientHeight||0)+3));d.setStyle("height",a+"px");e._.currentBlock.element.setStyle("display","none").removeStyle("display")}else d.removeStyle("height");m&&(f=f-d.$.offsetWidth);d.setStyle("left",f+"px");var b=e.element.getWindow(),a=d.$.getBoundingClientRect(),b=b.getViewPaneSize(),c=a.width||a.right-a.left,g=a.height||a.bottom-a.top,h=m?a.right:b.width-a.left,
+i=m?b.width-a.right:a.left;m?h<c&&(f=i>c?f+c:b.width>c?f-a.left:f-a.right+b.width):h<c&&(f=i>c?f-c:b.width>c?f-a.right+b.width:f-a.left);c=a.top;b.height-a.top<g&&(l=c>g?l-g:b.height>g?l-a.bottom+b.height:l-a.top);if(CKEDITOR.env.ie){b=a=new CKEDITOR.dom.element(d.$.offsetParent);b.getName()=="html"&&(b=b.getDocument().getBody());b.getComputedStyle("direction")=="rtl"&&(f=CKEDITOR.env.ie8Compat?f-d.getDocument().getDocumentElement().$.scrollLeft*2:f-(a.$.scrollWidth-a.$.clientWidth))}var a=d.getFirst(),
+j;(j=a.getCustomData("activePanel"))&&j.onHide&&j.onHide.call(this,1);a.setCustomData("activePanel",this);d.setStyles({top:l+"px",left:f+"px"});d.setOpacity(1)},this);e.isLoaded?a():e.onLoad=a;CKEDITOR.tools.setTimeout(function(){this.focus();this.allowBlur(true);this._.editor.fire("panelShow",this)},0,this)},CKEDITOR.env.air?200:0,this);this.visible=1;this.onShow&&this.onShow.call(this)},focus:function(){if(CKEDITOR.env.webkit){var a=CKEDITOR.document.getActive();!a.equals(this._.iframe)&&a.$.blur()}(this._.lastFocused||
+this._.iframe.getFrameDocument().getWindow()).focus()},blur:function(){var a=this._.iframe.getFrameDocument().getActive();a.is("a")&&(this._.lastFocused=a)},hide:function(a){if(this.visible&&(!this.onHide||!0!==this.onHide.call(this))){this.hideChild();CKEDITOR.env.gecko&&this._.iframe.getFrameDocument().$.activeElement.blur();this.element.setStyle("display","none");this.visible=0;this.element.getFirst().removeCustomData("activePanel");if(a=a&&this._.returnFocus)CKEDITOR.env.webkit&&a.type&&a.getWindow().$.focus(),
+a.focus();delete this._.lastFocused;this._.editor.fire("panelHide",this)}},allowBlur:function(a){var b=this._.panel;void 0!=a&&(b.allowBlur=a);return b.allowBlur},showAsChild:function(a,b,c,h,g,e){this._.activeChild==a&&a._.panel._.offsetParentId==c.getId()||(this.hideChild(),a.onHide=CKEDITOR.tools.bind(function(){CKEDITOR.tools.setTimeout(function(){this._.focused||this.hide()},0,this)},this),this._.activeChild=a,this._.focused=!1,a.showBlock(b,c,h,g,e),this.blur(),(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&
+setTimeout(function(){a.element.getChild(0).$.style.cssText+=""},100))},hideChild:function(a){var b=this._.activeChild;b&&(delete b.onHide,delete this._.activeChild,b.hide(),a&&this.focus())}}});CKEDITOR.on("instanceDestroyed",function(){var a=CKEDITOR.tools.isEmpty(CKEDITOR.instances),b;for(b in i){var c=i[b];a?c.destroy():c.element.hide()}a&&(i={})})})();CKEDITOR.plugins.add("colorbutton",{requires:"panelbutton,floatpanel",init:function(c){function j(k,i,e,g){var h=CKEDITOR.tools.getNextId()+"_colorBox";c.ui.add(k,CKEDITOR.UI_PANELBUTTON,{label:e,title:e,modes:{wysiwyg:1},editorFocus:1,toolbar:"colors,"+g,panel:{css:CKEDITOR.skin.getPath("editor"),attributes:{role:"listbox","aria-label":f.panelTitle}},onBlock:function(b,a){a.autoSize=!0;a.element.addClass("cke_colorblock");a.element.setHtml(n(b,i,h));a.element.getDocument().getBody().setStyle("overflow",
+"hidden");CKEDITOR.ui.fire("ready",this);var d=a.keys,e="rtl"==c.lang.dir;d[e?37:39]="next";d[40]="next";d[9]="next";d[e?39:37]="prev";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d[32]="click"},onOpen:function(){var b=c.getSelection(),b=b&&b.getStartElement(),b=c.elementPath(b),a,b=b.block||b.blockLimit||c.document.getBody();do a=b&&b.getComputedStyle("back"==i?"background-color":"color")||"transparent";while("back"==i&&"transparent"==a&&b&&(b=b.getParent()));if(!a||"transparent"==a)a="#ffffff";this._.panel._.iframe.getFrameDocument().getById(h).setStyle("background-color",
+a);return a}})}function n(k,i,e){var g=[],j=h.colorButton_colors.split(","),b=CKEDITOR.tools.addFunction(function(a,b){if("?"==a){var e=arguments.callee,d=function(a){this.removeListener("ok",d);this.removeListener("cancel",d);"ok"==a.name&&e(this.getContentElement("picker","selectedColor").getValue(),b)};c.openDialog("colordialog",function(){this.on("ok",d);this.on("cancel",d)})}else{c.focus();k.hide();c.fire("saveSnapshot");c.removeStyle(new CKEDITOR.style(h["colorButton_"+b+"Style"],{color:"inherit"}));
+if(a){var f=h["colorButton_"+b+"Style"];f.childRule="back"==b?function(a){return m(a)}:function(a){return!(a.is("a")||a.getElementsByTag("a").count())||m(a)};c.applyStyle(new CKEDITOR.style(f,{color:a}))}c.fire("saveSnapshot")}});g.push('<a class="cke_colorauto" _cke_focus=1 hidefocus=true title="',f.auto,'" onclick="CKEDITOR.tools.callFunction(',b,",null,'",i,"');return false;\" href=\"javascript:void('",f.auto,'\')" role="option"><table role="presentation" cellspacing=0 cellpadding=0 width="100%"><tr><td><span class="cke_colorbox" id="',
+e,'"></span></td><td colspan=7 align=center>',f.auto,'</td></tr></table></a><table role="presentation" cellspacing=0 cellpadding=0 width="100%">');for(e=0;e<j.length;e++){0===e%8&&g.push("</tr><tr>");var a=j[e].split("/"),d=a[0],l=a[1]||d;a[1]||(d="#"+d.replace(/^(.)(.)(.)$/,"$1$1$2$2$3$3"));a=c.lang.colorbutton.colors[l]||l;g.push('<td><a class="cke_colorbox" _cke_focus=1 hidefocus=true title="',a,'" onclick="CKEDITOR.tools.callFunction(',b,",'",d,"','",i,"'); return false;\" href=\"javascript:void('",
+a,'\')" role="option"><span class="cke_colorbox" style="background-color:#',l,'"></span></a></td>')}(c.plugins.colordialog&&void 0===h.colorButton_enableMore||h.colorButton_enableMore)&&g.push('</tr><tr><td colspan=8 align=center><a class="cke_colormore" _cke_focus=1 hidefocus=true title="',f.more,'" onclick="CKEDITOR.tools.callFunction(',b,",'?','",i,"');return false;\" href=\"javascript:void('",f.more,"')\"",' role="option">',f.more,"</a></td>");g.push("</tr></table>");return g.join("")}function m(c){return"false"==
+c.getAttribute("contentEditable")||c.getAttribute("data-nostyle")}var h=c.config,f=c.lang.colorbutton;CKEDITOR.env.hc||(j("TextColor","fore",f.textColorTitle,10),j("BGColor","back",f.bgColorTitle,20))}});CKEDITOR.config.colorButton_colors="000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF";
+CKEDITOR.config.colorButton_foreStyle={element:"span",styles:{color:"#(color)"},overrides:[{element:"font",attributes:{color:null}}]};CKEDITOR.config.colorButton_backStyle={element:"span",styles:{"background-color":"#(color)"}};CKEDITOR.plugins.colordialog={requires:"dialog",init:function(b){b.addCommand("colordialog",new CKEDITOR.dialogCommand("colordialog"));CKEDITOR.dialog.add("colordialog",this.path+"dialogs/colordialog.js");b.getColorFromDialog=function(e,f){var c=function(a){this.removeListener("ok",c);this.removeListener("cancel",c);a="ok"==a.name?this.getValueOf("picker","selectedColor"):null;e.call(f,a)},d=function(a){a.on("ok",c);a.on("cancel",c)};b.execCommand("colordialog");if(b._.storedDialogs&&b._.storedDialogs.colordialog)d(b._.storedDialogs.colordialog);
+else CKEDITOR.on("dialogDefinition",function(a){if("colordialog"==a.data.name){var b=a.data.definition;a.removeListener();b.onLoad=CKEDITOR.tools.override(b.onLoad,function(a){return function(){d(this);b.onLoad=a;"function"==typeof a&&a.call(this)}})}})}}};CKEDITOR.plugins.add("colordialog",CKEDITOR.plugins.colordialog);(function(){CKEDITOR.plugins.add("templates",{requires:"dialog",init:function(a){CKEDITOR.dialog.add("templates",CKEDITOR.getUrl(this.path+"dialogs/templates.js"));a.addCommand("templates",new CKEDITOR.dialogCommand("templates"));a.ui.addButton&&a.ui.addButton("Templates",{label:a.lang.templates.button,command:"templates",toolbar:"doctools,10"})}});var c={},f={};CKEDITOR.addTemplates=function(a,d){c[a]=d};CKEDITOR.getTemplates=function(a){return c[a]};CKEDITOR.loadTemplates=function(a,d){for(var e=
+[],b=0,c=a.length;b<c;b++)f[a[b]]||(e.push(a[b]),f[a[b]]=1);e.length?CKEDITOR.scriptLoader.load(e,d):setTimeout(d,0)}})();CKEDITOR.config.templates_files=[CKEDITOR.getUrl("plugins/templates/templates/default.js")];CKEDITOR.config.templates_replaceContent=!0;CKEDITOR.plugins.add("menu",{requires:"floatpanel",beforeInit:function(k){for(var g=k.config.menu_groups.split(","),m=k._.menuGroups={},l=k._.menuItems={},a=0;a<g.length;a++)m[g[a]]=a+1;k.addMenuGroup=function(b,a){m[b]=a||100};k.addMenuItem=function(a,c){m[c.group]&&(l[a]=new CKEDITOR.menuItem(this,a,c))};k.addMenuItems=function(a){for(var c in a)this.addMenuItem(c,a[c])};k.getMenuItem=function(a){return l[a]};k.removeMenuItem=function(a){delete l[a]}}});
+(function(){function k(a){a.sort(function(a,c){return a.group<c.group?-1:a.group>c.group?1:a.order<c.order?-1:a.order>c.order?1:0})}var g='<span class="cke_menuitem"><a id="{id}" class="cke_menubutton cke_menubutton__{name} cke_menubutton_{state} {cls}" href="{href}" title="{title}" tabindex="-1"_cke_focus=1 hidefocus="true" role="menuitem" aria-haspopup="{hasPopup}" aria-disabled="{disabled}" aria-pressed="{pressed}"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)g+=' onkeypress="return false;"';
+CKEDITOR.env.gecko&&(g+=' onblur="this.style.cssText = this.style.cssText;"');var g=g+(' onmouseover="CKEDITOR.tools.callFunction({hoverFn},{index});" onmouseout="CKEDITOR.tools.callFunction({moveOutFn},{index});" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},{index}); return false;">'),m=CKEDITOR.addTemplate("menuItem",g+'<span class="cke_menubutton_inner"><span class="cke_menubutton_icon"><span class="cke_button_icon cke_button__{iconName}_icon" style="{iconStyle}"></span></span><span class="cke_menubutton_label">{label}</span>{arrowHtml}</span></a></span>'),
+l=CKEDITOR.addTemplate("menuArrow",'<span class="cke_menuarrow"><span>{label}</span></span>');CKEDITOR.menu=CKEDITOR.tools.createClass({$:function(a,b){b=this._.definition=b||{};this.id=CKEDITOR.tools.getNextId();this.editor=a;this.items=[];this._.listeners=[];this._.level=b.level||1;var c=CKEDITOR.tools.extend({},b.panel,{css:[CKEDITOR.skin.getPath("editor")],level:this._.level-1,block:{}}),j=c.block.attributes=c.attributes||{};!j.role&&(j.role="menu");this._.panelDefinition=c},_:{onShow:function(){var a=
+this.editor.getSelection(),b=a&&a.getStartElement(),c=this.editor.elementPath(),j=this._.listeners;this.removeAll();for(var e=0;e<j.length;e++){var i=j[e](b,a,c);if(i)for(var f in i){var h=this.editor.getMenuItem(f);if(h&&(!h.command||this.editor.getCommand(h.command).state))h.state=i[f],this.add(h)}}},onClick:function(a){this.hide();if(a.onClick)a.onClick();else a.command&&this.editor.execCommand(a.command)},onEscape:function(a){var b=this.parent;b?b._.panel.hideChild(1):27==a&&this.hide(1);return!1},
+onHide:function(){this.onHide&&this.onHide()},showSubMenu:function(a){var b=this._.subMenu,c=this.items[a];if(c=c.getItems&&c.getItems()){b?b.removeAll():(b=this._.subMenu=new CKEDITOR.menu(this.editor,CKEDITOR.tools.extend({},this._.definition,{level:this._.level+1},!0)),b.parent=this,b._.onClick=CKEDITOR.tools.bind(this._.onClick,this));for(var j in c){var e=this.editor.getMenuItem(j);e&&(e.state=c[j],b.add(e))}var i=this._.panel.getBlock(this.id).element.getDocument().getById(this.id+(""+a));setTimeout(function(){b.show(i,
+2)},0)}else this._.panel.hideChild(1)}},proto:{add:function(a){a.order||(a.order=this.items.length);this.items.push(a)},removeAll:function(){this.items=[]},show:function(a,b,c,j){if(!this.parent&&(this._.onShow(),!this.items.length))return;var b=b||("rtl"==this.editor.lang.dir?2:1),e=this.items,i=this.editor,f=this._.panel,h=this._.element;if(!f){f=this._.panel=new CKEDITOR.ui.floatPanel(this.editor,CKEDITOR.document.getBody(),this._.panelDefinition,this._.level);f.onEscape=CKEDITOR.tools.bind(function(a){if(!1===
+this._.onEscape(a))return!1},this);f.onShow=function(){f._.panel.getHolderElement().getParent().addClass("cke cke_reset_all")};f.onHide=CKEDITOR.tools.bind(function(){this._.onHide&&this._.onHide()},this);h=f.addBlock(this.id,this._.panelDefinition.block);h.autoSize=!0;var d=h.keys;d[40]="next";d[9]="next";d[38]="prev";d[CKEDITOR.SHIFT+9]="prev";d["rtl"==i.lang.dir?37:39]=CKEDITOR.env.ie?"mouseup":"click";d[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(d[13]="mouseup");h=this._.element=
+h.element;d=h.getDocument();d.getBody().setStyle("overflow","hidden");d.getElementsByTag("html").getItem(0).setStyle("overflow","hidden");this._.itemOverFn=CKEDITOR.tools.addFunction(function(a){clearTimeout(this._.showSubTimeout);this._.showSubTimeout=CKEDITOR.tools.setTimeout(this._.showSubMenu,i.config.menu_subMenuDelay||400,this,[a])},this);this._.itemOutFn=CKEDITOR.tools.addFunction(function(){clearTimeout(this._.showSubTimeout)},this);this._.itemClickFn=CKEDITOR.tools.addFunction(function(a){var b=
+this.items[a];if(b.state==CKEDITOR.TRISTATE_DISABLED)this.hide(1);else if(b.getItems)this._.showSubMenu(a);else this._.onClick(b)},this)}k(e);for(var d=i.elementPath(),d=['<div class="cke_menu'+(d&&d.direction()!=i.lang.dir?" cke_mixed_dir_content":"")+'" role="presentation">'],g=e.length,m=g&&e[0].group,l=0;l<g;l++){var n=e[l];m!=n.group&&(d.push('<div class="cke_menuseparator" role="separator"></div>'),m=n.group);n.render(this,l,d)}d.push("</div>");h.setHtml(d.join(""));CKEDITOR.ui.fire("ready",
+this);this.parent?this.parent._.panel.showAsChild(f,this.id,a,b,c,j):f.showBlock(this.id,a,b,c,j);i.fire("menuShow",[f])},addListener:function(a){this._.listeners.push(a)},hide:function(a){this._.onHide&&this._.onHide();this._.panel&&this._.panel.hide(a)}}});CKEDITOR.menuItem=CKEDITOR.tools.createClass({$:function(a,b,c){CKEDITOR.tools.extend(this,c,{order:0,className:"cke_menubutton__"+b});this.group=a._.menuGroups[this.group];this.editor=a;this.name=b},proto:{render:function(a,b,c){var g=a.id+(""+
+b),e="undefined"==typeof this.state?CKEDITOR.TRISTATE_OFF:this.state,i=e==CKEDITOR.TRISTATE_ON?"on":e==CKEDITOR.TRISTATE_DISABLED?"disabled":"off",f=this.getItems,h="&#"+("rtl"==this.editor.lang.dir?"9668":"9658")+";",d=this.name;this.icon&&!/\./.test(this.icon)&&(d=this.icon);a={id:g,name:this.name,iconName:d,label:this.label,cls:this.className||"",state:i,hasPopup:f?"true":"false",disabled:e==CKEDITOR.TRISTATE_DISABLED,pressed:e==CKEDITOR.TRISTATE_ON,title:this.label,href:"javascript:void('"+(this.label||
+"").replace("'")+"')",hoverFn:a._.itemOverFn,moveOutFn:a._.itemOutFn,clickFn:a._.itemClickFn,index:b,iconStyle:CKEDITOR.skin.getIconStyle(d,"rtl"==this.editor.lang.dir,d==this.icon?null:this.icon,this.iconOffset),arrowHtml:f?l.output({label:h}):""};m.output(a,c)}}})})();CKEDITOR.config.menu_groups="clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea,div";CKEDITOR.plugins.add("contextmenu",{requires:"menu",onLoad:function(){CKEDITOR.plugins.contextMenu=CKEDITOR.tools.createClass({base:CKEDITOR.menu,$:function(b){this.base.call(this,b,{panel:{className:"cke_menu_panel",attributes:{"aria-label":b.lang.contextmenu.options}}})},proto:{addTarget:function(b,d){if(CKEDITOR.env.opera&&!("oncontextmenu"in document.body)){var c;b.on("mousedown",function(a){a=a.data;if(2!=a.$.button)a.getKeystroke()==CKEDITOR.CTRL+1&&b.fire("contextmenu",a);else if(!d||!(CKEDITOR.env.mac?
+a.$.metaKey:a.$.ctrlKey)){var g=a.getTarget();c||(g=g.getDocument(),c=g.createElement("input"),c.$.type="button",g.getBody().append(c));c.setAttribute("style","position:absolute;top:"+(a.$.clientY-2)+"px;left:"+(a.$.clientX-2)+"px;width:5px;height:5px;opacity:0.01")}});b.on("mouseup",function(a){c&&(c.remove(),c=void 0,b.fire("contextmenu",a.data))})}b.on("contextmenu",function(a){a=a.data;if(!d||!(CKEDITOR.env.webkit?e:CKEDITOR.env.mac?a.$.metaKey:a.$.ctrlKey)){a.preventDefault();var b=a.getTarget().getDocument(),
+c=a.getTarget().getDocument().getDocumentElement(),f=!b.equals(CKEDITOR.document),b=b.getWindow().getScrollPosition(),h=f?a.$.clientX:a.$.pageX||b.x+a.$.clientX,i=f?a.$.clientY:a.$.pageY||b.y+a.$.clientY;CKEDITOR.tools.setTimeout(function(){this.open(c,null,h,i)},CKEDITOR.env.ie?200:0,this)}},this);if(CKEDITOR.env.opera)b.on("keypress",function(a){a=a.data;0===a.$.keyCode&&a.preventDefault()});if(CKEDITOR.env.webkit){var e,f=function(){e=0};b.on("keydown",function(a){e=CKEDITOR.env.mac?a.data.$.metaKey:
+a.data.$.ctrlKey});b.on("keyup",f);b.on("contextmenu",f)}},open:function(b,d,c,e){this.editor.focus();b=b||CKEDITOR.document.getDocumentElement();this.editor.selectionChange(1);this.show(b,d,c,e)}}})},beforeInit:function(b){var d=b.contextMenu=new CKEDITOR.plugins.contextMenu(b);b.on("contentDom",function(){d.addTarget(b.editable(),!1!==b.config.browserContextMenuOnCtrl)});b.addCommand("contextMenu",{exec:function(){b.contextMenu.open(b.document.getBody())}});b.setKeystroke(CKEDITOR.SHIFT+121,"contextMenu");
+b.setKeystroke(CKEDITOR.CTRL+CKEDITOR.SHIFT+121,"contextMenu")}});(function(){CKEDITOR.plugins.add("div",{requires:"dialog",init:function(a){if(!a.blockless){var b=a.lang.div;a.addCommand("creatediv",new CKEDITOR.dialogCommand("creatediv",{contextSensitive:!0,refresh:function(a,b){this.setState("div"in(a.config.div_wrapTable?b.root:b.blockLimit).getDtd()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}}));a.addCommand("editdiv",new CKEDITOR.dialogCommand("editdiv"));a.addCommand("removediv",{exec:function(a){function b(c){if((c=CKEDITOR.plugins.div.getSurroundDiv(a,
+c))&&!c.data("cke-div-added"))f.push(c),c.data("cke-div-added")}for(var e=a.getSelection(),g=e&&e.getRanges(),d,i=e.createBookmarks(),f=[],c=0;c<g.length;c++)d=g[c],d.collapsed?b(e.getStartElement()):(d=new CKEDITOR.dom.walker(d),d.evaluator=b,d.lastForward());for(c=0;c<f.length;c++)f[c].remove(!0);e.selectBookmarks(i)}});a.ui.addButton&&a.ui.addButton("CreateDiv",{label:b.toolbar,command:"creatediv",toolbar:"blocks,50"});a.addMenuItems&&(a.addMenuItems({editdiv:{label:b.edit,command:"editdiv",group:"div",
+order:1},removediv:{label:b.remove,command:"removediv",group:"div",order:5}}),a.contextMenu&&a.contextMenu.addListener(function(b){return!b||b.isReadOnly()?null:CKEDITOR.plugins.div.getSurroundDiv(a)?{editdiv:CKEDITOR.TRISTATE_OFF,removediv:CKEDITOR.TRISTATE_OFF}:null}));CKEDITOR.dialog.add("creatediv",this.path+"dialogs/div.js");CKEDITOR.dialog.add("editdiv",this.path+"dialogs/div.js")}}});CKEDITOR.plugins.div={getSurroundDiv:function(a,b){var h=a.elementPath(b);return a.elementPath(h.blockLimit).contains("div",
+1)}}})();CKEDITOR.plugins.add("resize",{init:function(b){var f,g,n,o,a=b.config,q=b.ui.spaceId("resizer"),h=b.element?b.element.getDirection(1):"ltr";!a.resize_dir&&(a.resize_dir="vertical");void 0==a.resize_maxWidth&&(a.resize_maxWidth=3E3);void 0==a.resize_maxHeight&&(a.resize_maxHeight=3E3);void 0==a.resize_minWidth&&(a.resize_minWidth=750);void 0==a.resize_minHeight&&(a.resize_minHeight=250);if(!1!==a.resize_enabled){var c=null,i=("both"==a.resize_dir||"horizontal"==a.resize_dir)&&a.resize_minWidth!=a.resize_maxWidth,
+l=("both"==a.resize_dir||"vertical"==a.resize_dir)&&a.resize_minHeight!=a.resize_maxHeight,j=function(d){var e=f,m=g,c=e+(d.data.$.screenX-n)*("rtl"==h?-1:1),d=m+(d.data.$.screenY-o);i&&(e=Math.max(a.resize_minWidth,Math.min(c,a.resize_maxWidth)));l&&(m=Math.max(a.resize_minHeight,Math.min(d,a.resize_maxHeight)));b.resize(i?e:null,m)},k=function(){CKEDITOR.document.removeListener("mousemove",j);CKEDITOR.document.removeListener("mouseup",k);b.document&&(b.document.removeListener("mousemove",j),b.document.removeListener("mouseup",
+k))},p=CKEDITOR.tools.addFunction(function(d){c||(c=b.getResizable());f=c.$.offsetWidth||0;g=c.$.offsetHeight||0;n=d.screenX;o=d.screenY;a.resize_minWidth>f&&(a.resize_minWidth=f);a.resize_minHeight>g&&(a.resize_minHeight=g);CKEDITOR.document.on("mousemove",j);CKEDITOR.document.on("mouseup",k);b.document&&(b.document.on("mousemove",j),b.document.on("mouseup",k));d.preventDefault&&d.preventDefault()});b.on("destroy",function(){CKEDITOR.tools.removeFunction(p)});b.on("uiSpace",function(a){if("bottom"==
+a.data.space){var e="";i&&!l&&(e=" cke_resizer_horizontal");!i&&l&&(e=" cke_resizer_vertical");var c='<span id="'+q+'" class="cke_resizer'+e+" cke_resizer_"+h+'" title="'+CKEDITOR.tools.htmlEncode(b.lang.common.resize)+'" onmousedown="CKEDITOR.tools.callFunction('+p+', event)">'+("ltr"==h?"â¢":"â£")+"</span>";"ltr"==h&&"ltr"==e?a.data.html+=c:a.data.html=c+a.data.html}},b,null,100);b.on("maximize",function(a){b.ui.space("resizer")[a.data==CKEDITOR.TRISTATE_ON?"hide":"show"]()})}}});(function(){function w(a){function e(){for(var b=h(),g=CKEDITOR.tools.clone(a.config.toolbarGroups)||o(a),f=0;f<g.length;f++){var d=g[f];if("/"!=d){"string"==typeof d&&(d=g[f]={name:d});var e,n=d.groups;if(n)for(var l=0;l<n.length;l++)e=n[l],(e=b[e])&&c(d,e);(e=b[d.name])&&c(d,e)}}return g}function h(){var b={},c,f,d;for(c in a.ui.items)f=a.ui.items[c],d=f.toolbar||"others",d=d.split(","),f=d[0],d=parseInt(d[1]||-1,10),b[f]||(b[f]=[]),b[f].push({name:c,order:d});for(f in b)b[f]=b[f].sort(functio
n(a,
+b){return a.order==b.order?0:0>b.order?-1:0>a.order?1:a.order<b.order?-1:1});return b}function c(a,c){if(c.length){a.items?a.items.push("-"):a.items=[];for(var d;d=c.shift();)a.items.push(d.name)}}var d=a.config.toolbar;"string"==typeof d&&(d=a.config["toolbar_"+d]);return a.toolbar=d||e()}function o(a){return a._.toolbarGroups||(a._.toolbarGroups=[{name:"document",groups:["mode","document","doctools"]},{name:"clipboard",groups:["clipboard","undo"]},{name:"editing",groups:["find","selection","spellchecker"]},
+{name:"forms"},"/",{name:"basicstyles",groups:["basicstyles","cleanup"]},{name:"paragraph",groups:["list","indent","blocks","align"]},{name:"links"},{name:"insert"},"/",{name:"styles"},{name:"colors"},{name:"tools"},{name:"others"},{name:"about"}])}var t=function(){this.toolbars=[];this.focusCommandExecuted=!1};t.prototype.focus=function(){for(var a=0,e;e=this.toolbars[a++];)for(var h=0,c;c=e.items[h++];)if(c.focus){c.focus();return}};var x={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){a.toolbox&&
+(a.toolbox.focusCommandExecuted=!0,CKEDITOR.env.ie||CKEDITOR.env.air?setTimeout(function(){a.toolbox.focus()},100):a.toolbox.focus())}};CKEDITOR.plugins.add("toolbar",{requires:"button",init:function(a){var e,h=function(c,d){var b,g="rtl"==a.lang.dir,f=a.config.toolbarGroupCycling,f=void 0===f||f;switch(d){case 9:case CKEDITOR.SHIFT+9:for(;!b||!b.items.length;)if(b=9==d?(b?b.next:c.toolbar.next)||a.toolbox.toolbars[0]:(b?b.previous:c.toolbar.previous)||a.toolbox.toolbars[a.toolbox.toolbars.length-
+1],b.items.length)for(c=b.items[e?b.items.length-1:0];c&&!c.focus;)(c=e?c.previous:c.next)||(b=0);c&&c.focus();return!1;case g?37:39:case 40:b=c;do b=b.next,!b&&f&&(b=c.toolbar.items[0]);while(b&&!b.focus);b?b.focus():h(c,9);return!1;case g?39:37:case 38:b=c;do b=b.previous,!b&&f&&(b=c.toolbar.items[c.toolbar.items.length-1]);while(b&&!b.focus);b?b.focus():(e=1,h(c,CKEDITOR.SHIFT+9),e=0);return!1;case 27:return a.focus(),!1;case 13:case 32:return c.execute(),!1}return!0};a.on("uiSpace",function(c){if(c.data.space==
+a.config.toolbarLocation){a.toolbox=new t;var d=CKEDITOR.tools.getNextId(),b=a.config.removeButtons,b=b&&b.split(","),g=['<span id="',d,'" class="cke_voice_label">',a.lang.toolbar.toolbars,"</span>",'<span id="'+a.ui.spaceId("toolbox")+'" class="cke_toolbox" role="group" aria-labelledby="',d,'" onmousedown="return false;">'],d=!1!==a.config.toolbarStartupExpanded,f,e;a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&g.push('<span class="cke_toolbox_main"'+(d?">":' style="display:none">'));
+for(var o=a.toolbox.toolbars,n=w(a),l=0;l<n.length;l++){var j,i=0,q,m=n[l],r;if(m)if(f&&(g.push("</span>"),e=f=0),"/"===m)g.push('<span class="cke_toolbar_break"></span>');else{r=m.items||m;for(var s=0;s<r.length;s++){var k;k=r[s];var u;if(!(b&&0<=CKEDITOR.tools.indexOf(b,k))&&(k=a.ui.create(k)))if(k.type==CKEDITOR.UI_SEPARATOR)e=f&&k;else{u=!1!==k.canGroup;if(!i){j=CKEDITOR.tools.getNextId();i={id:j,items:[]};q=m.name&&(a.lang.toolbar.toolbarGroups[m.name]||m.name);g.push('<span id="',j,'" class="cke_toolbar"',
+q?' aria-labelledby="'+j+'_label"':"",' role="toolbar">');q&&g.push('<span id="',j,'_label" class="cke_voice_label">',q,"</span>");g.push('<span class="cke_toolbar_start"></span>');var p=o.push(i)-1;0<p&&(i.previous=o[p-1],i.previous.next=i)}u?f||(g.push('<span class="cke_toolgroup" role="presentation">'),f=1):f&&(g.push("</span>"),f=0);j=function(b){b=b.render(a,g);p=i.items.push(b)-1;if(p>0){b.previous=i.items[p-1];b.previous.next=b}b.toolbar=i;b.onkey=h;b.onfocus=function(){a.toolbox.focusCommandExecuted||
+a.focus()}};e&&(j(e),e=0);j(k)}}f&&(g.push("</span>"),e=f=0);i&&g.push('<span class="cke_toolbar_end"></span></span>')}}a.config.toolbarCanCollapse&&g.push("</span>");if(a.config.toolbarCanCollapse&&a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var v=CKEDITOR.tools.addFunction(function(){a.execCommand("toolbarCollapse")});a.on("destroy",function(){CKEDITOR.tools.removeFunction(v)});a.addCommand("toolbarCollapse",{readOnly:1,exec:function(a){var b=a.ui.space("toolbar_collapser"),c=b.getPrevious(),d=
+a.ui.space("contents"),e=c.getParent(),f=parseInt(d.$.style.height,10),g=e.$.offsetHeight,h=b.hasClass("cke_toolbox_collapser_min");h?(c.show(),b.removeClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarCollapse)):(c.hide(),b.addClass("cke_toolbox_collapser_min"),b.setAttribute("title",a.lang.toolbar.toolbarExpand));b.getFirst().setText(h?"â²":"â");d.setStyle("height",f-(e.$.offsetHeight-g)+"px");a.fire("resize")},modes:{wysiwyg:1,source:1}});a.setKeystroke(CKEDITOR.ALT+
+(CKEDITOR.env.ie||CKEDITOR.env.webkit?189:109),"toolbarCollapse");g.push('<a title="'+(d?a.lang.toolbar.toolbarCollapse:a.lang.toolbar.toolbarExpand)+'" id="'+a.ui.spaceId("toolbar_collapser")+'" tabIndex="-1" class="cke_toolbox_collapser');d||g.push(" cke_toolbox_collapser_min");g.push('" onclick="CKEDITOR.tools.callFunction('+v+')">','<span class="cke_arrow">▲</span>',"</a>")}g.push("</span>");c.data.html+=g.join("")}});a.on("destroy",function(){if(this.toolbox){var a,d=0,b,e,f;for(a=this.toolbox.toolbars;d<
+a.length;d++){e=a[d].items;for(b=0;b<e.length;b++)f=e[b],f.clickFn&&CKEDITOR.tools.removeFunction(f.clickFn),f.keyDownFn&&CKEDITOR.tools.removeFunction(f.keyDownFn)}}});a.on("uiReady",function(){var c=a.ui.space("toolbox");c&&a.focusManager.add(c,1)});a.addCommand("toolbarFocus",x);a.setKeystroke(CKEDITOR.ALT+121,"toolbarFocus");a.ui.add("-",CKEDITOR.UI_SEPARATOR,{});a.ui.addHandler(CKEDITOR.UI_SEPARATOR,{create:function(){return{render:function(a,d){d.push('<span class="cke_toolbar_separator" role="separator"></span>');
+return{}}}}})}});CKEDITOR.ui.prototype.addToolbarGroup=function(a,e,h){var c=o(this.editor),d=0===e,b={name:a};if(h){if(h=CKEDITOR.tools.search(c,function(a){return a.name==h})){!h.groups&&(h.groups=[]);if(e&&(e=CKEDITOR.tools.indexOf(h.groups,e),0<=e)){h.groups.splice(e+1,0,a);return}d?h.groups.splice(0,0,a):h.groups.push(a);return}e=null}e&&(e=CKEDITOR.tools.indexOf(c,function(a){return a.name==e}));d?c.splice(0,0,a):"number"==typeof e?c.splice(e+1,0,b):c.push(a)}})();CKEDITOR.UI_SEPARATOR="separator";
+CKEDITOR.config.toolbarLocation="top";(function(){var o={editorFocus:!1,readOnly:1,exec:function(a){(a=CKEDITOR.document.getById(a._.elementsPath.idBase+"0"))&&a.focus(CKEDITOR.env.ie||CKEDITOR.env.air)}},m='<span class="cke_path_empty"> </span>',d="";if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)d+=' onkeypress="return false;"';CKEDITOR.env.gecko&&(d+=' onblur="this.style.cssText = this.style.cssText;"');var p=CKEDITOR.addTemplate("pathItem",'<a id="{id}" href="{jsTitle}" tabindex="-1" class="cke_path_item" title="{label}"'+
+(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version?' onfocus="event.preventBubble();"':"")+d+' hidefocus="true" onkeydown="return CKEDITOR.tools.callFunction({keyDownFn},{index}, event );" onclick="CKEDITOR.tools.callFunction({clickFn},{index}); return false;" role="button" aria-label="{label}">{text}</a>');CKEDITOR.plugins.add("elementspath",{init:function(a){function d(b){a.focus();b=a._.elementsPath.list[b];if(b.equals(a.editable())){var e=a.createRange();e.selectNodeContents(b);e.select()}else a.getSelection().selectElement(b)}
+function h(){i&&i.setHtml(m);delete a._.elementsPath.list}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var l=a.ui.spaceId("path"),i,n="cke_elementspath_"+CKEDITOR.tools.getNextNumber()+"_";a._.elementsPath={idBase:n,filters:[]};a.on("uiSpace",function(b){"bottom"==b.data.space&&(b.data.html+='<span id="'+l+'_label" class="cke_voice_label">'+a.lang.elementspath.eleLabel+'</span><span id="'+l+'" class="cke_path" role="group" aria-labelledby="'+l+'_label">'+m+"</span>")});a.on("uiReady",function(){var b=
+a.ui.space("path");b&&a.focusManager.add(b,1)});var q=CKEDITOR.tools.addFunction(d),r=CKEDITOR.tools.addFunction(function(b,e){var c=a._.elementsPath.idBase,f,e=new CKEDITOR.dom.event(e);f="rtl"==a.lang.dir;switch(e.getKeystroke()){case f?39:37:case 9:return(f=CKEDITOR.document.getById(c+(b+1)))||(f=CKEDITOR.document.getById(c+"0")),f.focus(),!1;case f?37:39:case CKEDITOR.SHIFT+9:return(f=CKEDITOR.document.getById(c+(b-1)))||(f=CKEDITOR.document.getById(c+(a._.elementsPath.list.length-1))),f.focus(),
+!1;case 27:return a.focus(),!1;case 13:case 32:return d(b),!1}return!0});a.on("selectionChange",function(b){for(var e=a.editable(),c=b.data.selection.getStartElement(),b=[],f=a._.elementsPath.list=[],d=a._.elementsPath.filters;c;){var j=0,g;g=c.data("cke-display-name")?c.data("cke-display-name"):c.data("cke-real-element-type")?c.data("cke-real-element-type"):c.getName();for(var k=0;k<d.length;k++){var h=d[k](c,g);if(!1===h){j=1;break}g=h||g}j||(j=f.push(c)-1,k=a.lang.elementspath.eleTitle.replace(/%1/,
+g),g=p.output({id:n+j,label:k,text:g,jsTitle:"javascript:void('"+g+"')",index:j,keyDownFn:r,clickFn:q}),b.unshift(g));if(c.equals(e))break;c=c.getParent()}i||(i=CKEDITOR.document.getById(l));e=i;e.setHtml(b.join("")+m);a.fire("elementsPathUpdate",{space:e})});a.on("readOnly",h);a.on("contentDomUnload",h);a.addCommand("elementsPathFocus",o);a.setKeystroke(CKEDITOR.ALT+122,"elementsPathFocus")}}})})();(function(){function C(c,j,f){function b(b){if((d=a[b?"getFirst":"getLast"]())&&(!d.is||!d.isBlockBoundary())&&(m=j.root[b?"getPrevious":"getNext"](CKEDITOR.dom.walker.invisible(!0)))&&(!m.is||!m.isBlockBoundary({br:1})))c.document.createElement("br")[b?"insertBefore":"insertAfter"](d)}for(var i=CKEDITOR.plugins.list.listToArray(j.root,f),e=[],h=0;h<j.contents.length;h++){var g=j.contents[h];if((g=g.getAscendant("li",!0))&&!g.getCustomData("list_item_processed"))e.push(g),CKEDITOR.dom.element.setMarker(f,
+g,"list_item_processed",!0)}g=null;for(h=0;h<e.length;h++)g=e[h].getCustomData("listarray_index"),i[g].indent=-1;for(h=g+1;h<i.length;h++)if(i[h].indent>i[h-1].indent+1){e=i[h-1].indent+1-i[h].indent;for(g=i[h].indent;i[h]&&i[h].indent>=g;)i[h].indent+=e,h++;h--}var a=CKEDITOR.plugins.list.arrayToList(i,f,null,c.config.enterMode,j.root.getAttribute("dir")).listNode,d,m;b(!0);b();a.replace(j.root)}function x(c,j){this.name=c;this.context=this.type=j}function y(c,j,f,b){for(var i,e;i=c[b?"getLast":
+"getFirst"](D);)(e=i.getDirection(1))!==j.getDirection(1)&&i.setAttribute("dir",e),i.remove(),f?i[b?"insertBefore":"insertAfter"](f):j.append(i,b)}function A(c){var j;(j=function(f){var b=c[f?"getPrevious":"getNext"](q);b&&(b.type==CKEDITOR.NODE_ELEMENT&&b.is(c.getName()))&&(y(c,b,null,!f),c.remove(),c=b)})();j(1)}function B(c){return c.type==CKEDITOR.NODE_ELEMENT&&(c.getName()in CKEDITOR.dtd.$block||c.getName()in CKEDITOR.dtd.$listItem)&&CKEDITOR.dtd[c.getName()]["#"]}function v(c,j,f){c.fire("saveSnapshot");
+f.enlarge(CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS);var b=f.extractContents();j.trim(!1,!0);var i=j.createBookmark(),e=new CKEDITOR.dom.elementPath(j.startContainer),h=e.block,e=e.lastElement.getAscendant("li",1)||h,g=new CKEDITOR.dom.elementPath(f.startContainer),a=g.contains(CKEDITOR.dtd.$listItem),g=g.contains(CKEDITOR.dtd.$list);h?(h=h.getBogus())&&h.remove():g&&(h=g.getPrevious(q))&&u(h)&&h.remove();(h=b.getLast())&&(h.type==CKEDITOR.NODE_ELEMENT&&h.is("br"))&&h.remove();(h=j.startContainer.getChild(j.startOffset))?
+b.insertBefore(h):j.startContainer.append(b);if(a&&(b=w(a)))e.contains(a)?(y(b,a.getParent(),a),b.remove()):e.append(b);for(;f.checkStartOfBlock()&&f.checkEndOfBlock();)g=f.startPath(),b=g.block,b.is("li")&&(e=b.getParent(),b.equals(e.getLast(q))&&b.equals(e.getFirst(q))&&(b=e)),f.moveToPosition(b,CKEDITOR.POSITION_BEFORE_START),b.remove();f=f.clone();b=c.editable();f.setEndAt(b,CKEDITOR.POSITION_BEFORE_END);f=new CKEDITOR.dom.walker(f);f.evaluator=function(a){return q(a)&&!u(a)};(f=f.next())&&(f.type==
+CKEDITOR.NODE_ELEMENT&&f.getName()in CKEDITOR.dtd.$list)&&A(f);j.moveToBookmark(i);j.select();c.fire("saveSnapshot")}function w(c){return(c=c.getLast(q))&&c.type==CKEDITOR.NODE_ELEMENT&&c.getName()in r?c:null}var r={ol:1,ul:1},E=CKEDITOR.dom.walker.whitespaces(),F=CKEDITOR.dom.walker.bookmark(),q=function(c){return!(E(c)||F(c))},u=CKEDITOR.dom.walker.bogus();CKEDITOR.plugins.list={listToArray:function(c,j,f,b,i){if(!r[c.getName()])return[];b||(b=0);f||(f=[]);for(var e=0,h=c.getChildCount();e<h;e++){var g=
+c.getChild(e);g.type==CKEDITOR.NODE_ELEMENT&&g.getName()in CKEDITOR.dtd.$list&&CKEDITOR.plugins.list.listToArray(g,j,f,b+1);if("li"==g.$.nodeName.toLowerCase()){var a={parent:c,indent:b,element:g,contents:[]};i?a.grandparent=i:(a.grandparent=c.getParent(),a.grandparent&&"li"==a.grandparent.$.nodeName.toLowerCase()&&(a.grandparent=a.grandparent.getParent()));j&&CKEDITOR.dom.element.setMarker(j,g,"listarray_index",f.length);f.push(a);for(var d=0,m=g.getChildCount(),k;d<m;d++)k=g.getChild(d),k.type==
+CKEDITOR.NODE_ELEMENT&&r[k.getName()]?CKEDITOR.plugins.list.listToArray(k,j,f,b+1,a.grandparent):a.contents.push(k)}}return f},arrayToList:function(c,j,f,b,i){f||(f=0);if(!c||c.length<f+1)return null;for(var e,h=c[f].parent.getDocument(),g=new CKEDITOR.dom.documentFragment(h),a=null,d=f,m=Math.max(c[f].indent,0),k=null,n,l,p=b==CKEDITOR.ENTER_P?"p":"div";;){var o=c[d];e=o.grandparent;n=o.element.getDirection(1);if(o.indent==m){if(!a||c[d].parent.getName()!=a.getName())a=c[d].parent.clone(!1,1),i&&
+a.setAttribute("dir",i),g.append(a);k=a.append(o.element.clone(0,1));n!=a.getDirection(1)&&k.setAttribute("dir",n);for(e=0;e<o.contents.length;e++)k.append(o.contents[e].clone(1,1));d++}else if(o.indent==Math.max(m,0)+1)l=c[d-1].element.getDirection(1),d=CKEDITOR.plugins.list.arrayToList(c,null,d,b,l!=n?n:null),!k.getChildCount()&&(CKEDITOR.env.ie&&!(7<h.$.documentMode))&&k.append(h.createText("Â ")),k.append(d.listNode),d=d.nextIndex;else if(-1==o.indent&&!f&&e){r[e.getName()]?(k=o.element.clone(!1,
+!0),n!=e.getDirection(1)&&k.setAttribute("dir",n)):k=new CKEDITOR.dom.documentFragment(h);var a=e.getDirection(1)!=n,s=o.element,z=s.getAttribute("class"),u=s.getAttribute("style"),w=k.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&(b!=CKEDITOR.ENTER_BR||a||u||z),t,x=o.contents.length;for(e=0;e<x;e++){t=o.contents[e];if(t.type==CKEDITOR.NODE_ELEMENT&&t.isBlockBoundary()){a&&!t.getDirection()&&t.setAttribute("dir",n);var v=t,y=s.getAttribute("style");y&&v.setAttribute("style",y.replace(/([^;])$/,"$1;")+(v.getAttribute("style")||
+""));z&&t.addClass(z)}else w&&(l||(l=h.createElement(p),a&&l.setAttribute("dir",n)),u&&l.setAttribute("style",u),z&&l.setAttribute("class",z),l.append(t.clone(1,1)));k.append(l||t.clone(1,1))}k.type==CKEDITOR.NODE_DOCUMENT_FRAGMENT&&d!=c.length-1&&((n=k.getLast())&&(n.type==CKEDITOR.NODE_ELEMENT&&"_moz"==n.getAttribute("type"))&&n.remove(),(!k.getLast(q)||!(n.type==CKEDITOR.NODE_ELEMENT&&n.getName()in CKEDITOR.dtd.$block))&&k.append(h.createElement("br")));n=k.$.nodeName.toLowerCase();!CKEDITOR.env.ie&&
+("div"==n||"p"==n)&&k.appendBogus();g.append(k);a=null;d++}else return null;l=null;if(c.length<=d||Math.max(c[d].indent,0)<m)break}if(j)for(c=g.getFirst();c;){if(c.type==CKEDITOR.NODE_ELEMENT&&(CKEDITOR.dom.element.clearMarkers(j,c),c.getName()in CKEDITOR.dtd.$listItem&&(f=c,h=i=b=void 0,b=f.getDirection()))){for(i=f.getParent();i&&!(h=i.getDirection());)i=i.getParent();b==h&&f.removeAttribute("dir")}c=c.getNextSourceNode()}return{listNode:g,nextIndex:d}}};var G=/^h[1-6]$/,D=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT);
+x.prototype={exec:function(c){this.refresh(c,c.elementPath());var j=c.config,f=c.getSelection(),b=f&&f.getRanges(!0);if(this.state==CKEDITOR.TRISTATE_OFF){var i=c.editable();if(i.getFirst(q)){var e=1==b.length&&b[0];(j=e&&e.getEnclosedNode())&&(j.is&&this.type==j.getName())&&this.setState(CKEDITOR.TRISTATE_ON)}else j.enterMode==CKEDITOR.ENTER_BR?i.appendBogus():b[0].fixBlock(1,j.enterMode==CKEDITOR.ENTER_P?"p":"div"),f.selectRanges(b)}for(var j=f.createBookmarks(!0),i=[],h={},b=b.createIterator(),
+g=0;(e=b.getNextRange())&&++g;){var a=e.getBoundaryNodes(),d=a.startNode,m=a.endNode;d.type==CKEDITOR.NODE_ELEMENT&&"td"==d.getName()&&e.setStartAt(a.startNode,CKEDITOR.POSITION_AFTER_START);m.type==CKEDITOR.NODE_ELEMENT&&"td"==m.getName()&&e.setEndAt(a.endNode,CKEDITOR.POSITION_BEFORE_END);e=e.createIterator();for(e.forceBrBreak=this.state==CKEDITOR.TRISTATE_OFF;a=e.getNextParagraph();)if(!a.getCustomData("list_block")){CKEDITOR.dom.element.setMarker(h,a,"list_block",1);for(var k=c.elementPath(a),
+d=k.elements,m=0,k=k.blockLimit,n,l=d.length-1;0<=l&&(n=d[l]);l--)if(r[n.getName()]&&k.contains(n)){k.removeCustomData("list_group_object_"+g);(d=n.getCustomData("list_group_object"))?d.contents.push(a):(d={root:n,contents:[a]},i.push(d),CKEDITOR.dom.element.setMarker(h,n,"list_group_object",d));m=1;break}m||(m=k,m.getCustomData("list_group_object_"+g)?m.getCustomData("list_group_object_"+g).contents.push(a):(d={root:m,contents:[a]},CKEDITOR.dom.element.setMarker(h,m,"list_group_object_"+g,d),i.push(d)))}}for(n=
+[];0<i.length;)if(d=i.shift(),this.state==CKEDITOR.TRISTATE_OFF)if(r[d.root.getName()]){a=c;b=d;d=h;g=n;m=CKEDITOR.plugins.list.listToArray(b.root,d);k=[];for(e=0;e<b.contents.length;e++)if(l=b.contents[e],(l=l.getAscendant("li",!0))&&!l.getCustomData("list_item_processed"))k.push(l),CKEDITOR.dom.element.setMarker(d,l,"list_item_processed",!0);for(var l=b.root.getDocument(),p=void 0,o=void 0,e=0;e<k.length;e++){var s=k[e].getCustomData("listarray_index"),p=m[s].parent;p.is(this.type)||(o=l.createElement(this.type),
+p.copyAttributes(o,{start:1,type:1}),o.removeStyle("list-style-type"),m[s].parent=o)}a=CKEDITOR.plugins.list.arrayToList(m,d,null,a.config.enterMode);d=void 0;m=a.listNode.getChildCount();for(e=0;e<m&&(d=a.listNode.getChild(e));e++)d.getName()==this.type&&g.push(d);a.listNode.replace(b.root)}else{m=c;a=d;e=n;k=a.contents;b=a.root.getDocument();g=[];1==k.length&&k[0].equals(a.root)&&(d=b.createElement("div"),k[0].moveChildren&&k[0].moveChildren(d),k[0].append(d),k[0]=d);a=a.contents[0].getParent();
+for(l=0;l<k.length;l++)a=a.getCommonAncestor(k[l].getParent());p=m.config.useComputedState;m=d=void 0;p=void 0===p||p;for(l=0;l<k.length;l++)for(o=k[l];s=o.getParent();){if(s.equals(a)){g.push(o);!m&&o.getDirection()&&(m=1);o=o.getDirection(p);null!==d&&(d=d&&d!=o?null:o);break}o=s}if(!(1>g.length)){k=g[g.length-1].getNext();l=b.createElement(this.type);e.push(l);for(p=e=void 0;g.length;)e=g.shift(),p=b.createElement("li"),e.is("pre")||G.test(e.getName())?e.appendTo(p):(e.copyAttributes(p),d&&e.getDirection()&&
+(p.removeStyle("direction"),p.removeAttribute("dir")),e.moveChildren(p),e.remove()),p.appendTo(l);d&&m&&l.setAttribute("dir",d);k?l.insertBefore(k):l.appendTo(a)}}else this.state==CKEDITOR.TRISTATE_ON&&r[d.root.getName()]&&C.call(this,c,d,h);for(l=0;l<n.length;l++)A(n[l]);CKEDITOR.dom.element.clearAllMarkers(h);f.selectBookmarks(j);c.focus()},refresh:function(c,j){var f=j.contains(r,1),b=j.blockLimit||j.root;f&&b.contains(f)?this.setState(f.is(this.type)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF):
+this.setState(CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("list",{init:function(c){c.blockless||(c.addCommand("numberedlist",new x("numberedlist","ol")),c.addCommand("bulletedlist",new x("bulletedlist","ul")),c.ui.addButton&&(c.ui.addButton("NumberedList",{label:c.lang.list.numberedlist,command:"numberedlist",directional:!0,toolbar:"list,10"}),c.ui.addButton("BulletedList",{label:c.lang.list.bulletedlist,command:"bulletedlist",directional:!0,toolbar:"list,20"})),c.on("key",function(j){var f=j.data.keyCode;
+if(c.mode=="wysiwyg"&&f in{8:1,46:1}){var b=c.getSelection().getRanges()[0],i=b.startPath();if(b.collapsed){var i=new CKEDITOR.dom.elementPath(b.startContainer),e=f==8,h=c.editable(),g=new CKEDITOR.dom.walker(b.clone());g.evaluator=function(a){return q(a)&&!u(a)};g.guard=function(a,b){return!(b&&a.type==CKEDITOR.NODE_ELEMENT&&a.is("table"))};f=b.clone();if(e){var a,d;if((a=i.contains(r))&&b.checkBoundaryOfElement(a,CKEDITOR.START)&&(a=a.getParent())&&a.is("li")&&(a=w(a))){d=a;a=a.getPrevious(q);f.moveToPosition(a&&
+u(a)?a:d,CKEDITOR.POSITION_BEFORE_START)}else{g.range.setStartAt(h,CKEDITOR.POSITION_AFTER_START);g.range.setEnd(b.startContainer,b.startOffset);if((a=g.previous())&&a.type==CKEDITOR.NODE_ELEMENT&&(a.getName()in r||a.is("li"))){if(!a.is("li")){g.range.selectNodeContents(a);g.reset();g.evaluator=B;a=g.previous()}d=a;f.moveToElementEditEnd(d)}}if(d){v(c,f,b);j.cancel()}else if((f=i.contains(r))&&b.checkBoundaryOfElement(f,CKEDITOR.START)){d=f.getFirst(q);if(b.checkBoundaryOfElement(d,CKEDITOR.START)){a=
+f.getPrevious(q);if(w(d)){if(a){b.moveToElementEditEnd(a);b.select()}}else c.execCommand("outdent");j.cancel()}}}else if(d=i.contains("li")){g.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);h=(i=d.getLast(q))&&B(i)?i:d;d=0;if((a=g.next())&&a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in r&&a.equals(i)){d=1;a=g.next()}else b.checkBoundaryOfElement(h,CKEDITOR.END)&&(d=1);if(d&&a){b=b.clone();b.moveToElementEditStart(a);v(c,f,b);j.cancel()}}else{g.range.setEndAt(h,CKEDITOR.POSITION_BEFORE_END);if((a=g.next())&&
+a.type==CKEDITOR.NODE_ELEMENT&&a.is(r)){a=a.getFirst(q);if(i.block&&b.checkStartOfBlock()&&b.checkEndOfBlock()){i.block.remove();b.moveToElementEditStart(a);b.select()}else if(w(a)){b.moveToElementEditStart(a);b.select()}else{b=b.clone();b.moveToElementEditStart(a);v(c,f,b)}j.cancel()}}setTimeout(function(){c.selectionChange(1)})}}}))}})})();(function(){function p(d,i){this.name=i;if(this.useIndentClasses=d.config.indentClasses&&0<d.config.indentClasses.length){this.classNameRegex=RegExp("(?:^|\\s+)("+d.config.indentClasses.join("|")+")(?=$|\\s)");this.indentClassMap={};for(var a=0;a<d.config.indentClasses.length;a++)this.indentClassMap[d.config.indentClasses[a]]=a+1}this.startDisabled="outdent"==i}function r(d,i){return"ltr"==(i||d.getComputedStyle("direction"))?"margin-left":"margin-right"}function q(d){return d.type==CKEDITOR.NODE_ELEMENT&&
+d.is("li")}var m={ol:1,ul:1},t=CKEDITOR.dom.walker.whitespaces(!0),u=CKEDITOR.dom.walker.bookmark(!1,!0);p.prototype={context:"p",refresh:function(d,i){var a=i&&i.contains(m),f=i.block||i.blockLimit;a?this.setState(CKEDITOR.TRISTATE_OFF):!this.useIndentClasses&&"indent"==this.name?this.setState(CKEDITOR.TRISTATE_OFF):f?this.useIndentClasses?(a=f.$.className.match(this.classNameRegex),f=0,a&&(a=a[1],f=this.indentClassMap[a]),"outdent"==this.name&&!f||"indent"==this.name&&f==d.config.indentClasses.length?
+this.setState(CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_OFF)):(a=parseInt(f.getStyle(r(f)),10),isNaN(a)&&(a=0),0>=a?this.setState(CKEDITOR.TRISTATE_DISABLED):this.setState(CKEDITOR.TRISTATE_OFF)):this.setState(CKEDITOR.TRISTATE_DISABLED)},exec:function(d){function i(n){for(var h=l.startContainer,b=l.endContainer;h&&!h.getParent().equals(n);)h=h.getParent();for(;b&&!b.getParent().equals(n);)b=b.getParent();if(h&&b){for(var c=h,h=[],a=!1;!a;)c.equals(b)&&(a=!0),h.push(c),c=c.getNext();
+if(!(1>h.length)){c=n.getParents(!0);for(b=0;b<c.length;b++)if(c[b].getName&&m[c[b].getName()]){n=c[b];break}for(var c="indent"==e.name?1:-1,b=h[0],h=h[h.length-1],a=CKEDITOR.plugins.list.listToArray(n,o),k=a[h.getCustomData("listarray_index")].indent,b=b.getCustomData("listarray_index");b<=h.getCustomData("listarray_index");b++)if(a[b].indent+=c,0<c){var i=a[b].parent;a[b].parent=new CKEDITOR.dom.element(i.getName(),i.getDocument())}for(b=h.getCustomData("listarray_index")+1;b<a.length&&a[b].indent>
+k;b++)a[b].indent+=c;h=CKEDITOR.plugins.list.arrayToList(a,o,null,d.config.enterMode,n.getDirection());if("outdent"==e.name){var j;if((j=n.getParent())&&j.is("li"))for(var c=h.listNode.getChildren(),f=[],g,b=c.count()-1;0<=b;b--)(g=c.getItem(b))&&(g.is&&g.is("li"))&&f.push(g)}h&&h.listNode.replace(n);if(f&&f.length)for(b=0;b<f.length;b++){for(g=n=f[b];(g=g.getNext())&&g.is&&g.getName()in m;)CKEDITOR.env.ie&&!n.getFirst(function(b){return t(b)&&u(b)})&&n.append(l.document.createText("Â ")),n.append(g);
+n.insertAfter(j)}}}}function a(){var a=l.createIterator(),e=d.config.enterMode;a.enforceRealBlocks=!0;a.enlargeBr=e!=CKEDITOR.ENTER_BR;for(var b;b=a.getNextParagraph(e==CKEDITOR.ENTER_P?"p":"div");)f(b)}function f(a,g){if(a.getCustomData("indent_processed"))return!1;if(e.useIndentClasses){var b=a.$.className.match(e.classNameRegex),c=0;b&&(b=b[1],c=e.indentClassMap[b]);"outdent"==e.name?c--:c++;if(0>c)return!1;c=Math.min(c,d.config.indentClasses.length);c=Math.max(c,0);a.$.className=CKEDITOR.tools.ltrim(a.$.className.replace(e.classNameRegex,
+""));0<c&&a.addClass(d.config.indentClasses[c-1])}else{b=r(a,g);c=parseInt(a.getStyle(b),10);isNaN(c)&&(c=0);var f=d.config.indentOffset||40,c=c+("indent"==e.name?1:-1)*f;if(0>c)return!1;c=Math.max(c,0);c=Math.ceil(c/f)*f;a.setStyle(b,c?c+(d.config.indentUnit||"px"):"");""===a.getAttribute("style")&&a.removeAttribute("style")}CKEDITOR.dom.element.setMarker(o,a,"indent_processed",1);return!0}for(var e=this,o={},g=d.getSelection(),v=g.createBookmarks(1),l,p=(g&&g.getRanges(1)).createIterator();l=p.getNextRange();){for(var j=
+l.getCommonAncestor();j&&!(j.type==CKEDITOR.NODE_ELEMENT&&m[j.getName()]);)j=j.getParent();if(!j){var k=l.getEnclosedNode();k&&(k.type==CKEDITOR.NODE_ELEMENT&&k.getName()in m)&&(l.setStartAt(k,CKEDITOR.POSITION_AFTER_START),l.setEndAt(k,CKEDITOR.POSITION_BEFORE_END),j=k)}j&&(l.startContainer.type==CKEDITOR.NODE_ELEMENT&&l.startContainer.getName()in m)&&(k=new CKEDITOR.dom.walker(l),k.evaluator=q,l.startContainer=k.next());j&&(l.endContainer.type==CKEDITOR.NODE_ELEMENT&&l.endContainer.getName()in m)&&
+(k=new CKEDITOR.dom.walker(l),k.evaluator=q,l.endContainer=k.previous());if(j){var k=j.getFirst(q),w=!!k.getNext(q),s=l.startContainer;(!k.equals(s)&&!k.contains(s)||!("indent"==e.name||e.useIndentClasses||parseInt(j.getStyle(r(j)),10))||!f(j,!w&&k.getDirection()))&&i(j)}else a()}CKEDITOR.dom.element.clearAllMarkers(o);d.forceNextSelectionCheck();g.selectBookmarks(v)}};CKEDITOR.plugins.add("indent",{requires:"list",onLoad:function(){(CKEDITOR.env.ie6Compat||CKEDITOR.env.ie7Compat)&&CKEDITOR.addCss(".cke_editable ul,.cke_editable ol{\tmargin-left: 0px;\tpadding-left: 40px;}")},
+init:function(d){d.blockless||(d.addCommand("indent",new p(d,"indent")),d.addCommand("outdent",new p(d,"outdent")),d.ui.addButton&&(d.ui.addButton("Indent",{label:d.lang.indent.indent,command:"indent",directional:!0,toolbar:"indent,20"}),d.ui.addButton("Outdent",{label:d.lang.indent.outdent,command:"outdent",directional:!0,toolbar:"indent,10"})),d.on("dirChanged",function(i){var a=d.createRange();a.setStartBefore(i.data.node);a.setEndAfter(i.data.node);for(var f=new CKEDITOR.dom.walker(a),e;e=f.next();)if(e.type==
+CKEDITOR.NODE_ELEMENT)if(!e.equals(i.data.node)&&e.getDirection()){a.setStartAfter(e);f=new CKEDITOR.dom.walker(a)}else{var o=d.config.indentClasses;if(o)for(var g=i.data.dir=="ltr"?["_rtl",""]:["","_rtl"],m=0;m<o.length;m++)if(e.hasClass(o[m]+g[0])){e.removeClass(o[m]+g[0]);e.addClass(o[m]+g[1])}o=e.getStyle("margin-right");g=e.getStyle("margin-left");o?e.setStyle("margin-left",o):e.removeStyle("margin-left");g?e.setStyle("margin-right",g):e.removeStyle("margin-right")}}))}})})();(function(){function m(a,d,b){b=a.config.forceEnterMode||b;if("wysiwyg"!=a.mode)return!1;d||(d=a.config.enterMode);a.elementPath().isContextFor("p")||(d=CKEDITOR.ENTER_BR,b=1);a.fire("saveSnapshot");d==CKEDITOR.ENTER_BR?n(a,d,null,b):o(a,d,null,b);a.fire("saveSnapshot");return!0}function p(a){for(var a=a.getSelection().getRanges(!0),d=a.length-1;0<d;d--)a[d].deleteContents();return a[0]}CKEDITOR.plugins.add("enterkey",{requires:"indent",init:function(a){a.addCommand("enter",{modes:{wysiwyg:1},edito
rFocus:!1,
+exec:function(a){m(a)}});a.addCommand("shiftEnter",{modes:{wysiwyg:1},editorFocus:!1,exec:function(a){"wysiwyg"==a.mode&&m(a,a.config.shiftEnterMode,1)}});a.setKeystroke([[13,"enter"],[CKEDITOR.SHIFT+13,"shiftEnter"]])}});var s=CKEDITOR.dom.walker.whitespaces(),t=CKEDITOR.dom.walker.bookmark();CKEDITOR.plugins.enterkey={enterBlock:function(a,d,b,i){if(b=b||p(a)){var f=b.document,j=b.checkStartOfBlock(),h=b.checkEndOfBlock(),c=a.elementPath(b.startContainer).block;if(j&&h){if(c&&(c.is("li")||c.getParent().is("li"))){a.execCommand("outdent");
+return}if(c&&c.getParent().is("blockquote")){c.breakParent(c.getParent());c.getPrevious().getFirst(CKEDITOR.dom.walker.invisible(1))||c.getPrevious().remove();c.getNext().getFirst(CKEDITOR.dom.walker.invisible(1))||c.getNext().remove();b.moveToElementEditStart(c);b.select();return}}else if(c&&c.is("pre")&&!h){n(a,d,b,i);return}var c=d==CKEDITOR.ENTER_DIV?"div":"p",l=b.splitBlock(c);if(l){var d=l.previousBlock,a=l.nextBlock,j=l.wasStartOfBlock,h=l.wasEndOfBlock,g;if(a)g=a.getParent(),g.is("li")&&(a.breakParent(g),
+a.move(a.getNext(),1));else if(d&&(g=d.getParent())&&g.is("li"))d.breakParent(g),g=d.getNext(),b.moveToElementEditStart(g),d.move(d.getPrevious());if(!j&&!h){if(a.is("li")){var e=b.clone();e.selectNodeContents(a);e=new CKEDITOR.dom.walker(e);e.evaluator=function(a){return!(t(a)||s(a)||a.type==CKEDITOR.NODE_ELEMENT&&a.getName()in CKEDITOR.dtd.$inline&&!(a.getName()in CKEDITOR.dtd.$empty))};(g=e.next())&&(g.type==CKEDITOR.NODE_ELEMENT&&g.is("ul","ol"))&&(CKEDITOR.env.ie?f.createText("Â "):f.createElement("br")).insertBefore(g)}a&&
+b.moveToElementEditStart(a)}else{var k;if(d){if(d.is("li")||!q.test(d.getName())&&!d.is("pre"))e=d.clone()}else a&&(e=a.clone());e?i&&!e.is("li")&&e.renameNode(c):g&&g.is("li")?e=g:(e=f.createElement(c),d&&(k=d.getDirection())&&e.setAttribute("dir",k));if(f=l.elementPath){i=0;for(g=f.elements.length;i<g;i++){k=f.elements[i];if(k.equals(f.block)||k.equals(f.blockLimit))break;CKEDITOR.dtd.$removeEmpty[k.getName()]&&(k=k.clone(),e.moveChildren(k),e.append(k))}}CKEDITOR.env.ie||e.appendBogus();e.getParent()||
+b.insertNode(e);e.is("li")&&e.removeAttribute("value");if(CKEDITOR.env.ie&&j&&(!h||!d.getChildCount()))b.moveToElementEditStart(h?d:e),b.select();b.moveToElementEditStart(j&&!h?a:e)}b.select();b.scrollIntoView()}}},enterBr:function(a,d,b,i){if(b=b||p(a)){var f=b.document,j=b.checkEndOfBlock(),h=new CKEDITOR.dom.elementPath(a.getSelection().getStartElement()),c=h.block,h=c&&h.block.getName();!i&&"li"==h?o(a,d,b,i):(!i&&j&&q.test(h)?(j=c.getDirection())?(f=f.createElement("div"),f.setAttribute("dir",
+j),f.insertAfter(c),b.setStart(f,0)):(f.createElement("br").insertAfter(c),CKEDITOR.env.gecko&&f.createText("").insertAfter(c),b.setStartAt(c.getNext(),CKEDITOR.env.ie?CKEDITOR.POSITION_BEFORE_START:CKEDITOR.POSITION_AFTER_START)):(c="pre"==h&&CKEDITOR.env.ie&&8>CKEDITOR.env.version?f.createText("\r"):f.createElement("br"),b.deleteContents(),b.insertNode(c),CKEDITOR.env.ie?b.setStartAt(c,CKEDITOR.POSITION_AFTER_END):(f.createText("").insertAfter(c),j&&c.getParent().appendBogus(),c.getNext().$.nodeValue=
+"",b.setStartAt(c.getNext(),CKEDITOR.POSITION_AFTER_START))),b.collapse(!0),b.select(),b.scrollIntoView())}}};var r=CKEDITOR.plugins.enterkey,n=r.enterBr,o=r.enterBlock,q=/^h[1-6]$/})();(function(){function j(a,b){var d={},e=[],f={nbsp:"Â ",shy:"Â",gt:">",lt:"<",amp:"&",apos:"'",quot:'"'},a=a.replace(/\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g,function(a,h){var c=b?"&"+h+";":f[h];d[c]=b?f[h]:"&"+h+";";e.push(c);return""});if(!b&&a){var a=a.split(","),c=document.createElement("div"),g;c.innerHTML="&"+a.join(";&")+";";g=c.innerHTML;c=null;for(c=0;c<g.length;c++){var i=g.charAt(c);d[i]="&"+a[c]+";";e.push(i)}}d.regex=e.join(b?"|":"");return d}CKEDITOR.plugins.add("entities",{afterInit:function(a){var b=
+a.config;if(a=(a=a.dataProcessor)&&a.htmlFilter){var d=[];!1!==b.basicEntities&&d.push("nbsp,gt,lt,amp");b.entities&&(d.length&&d.push("quot,iexcl,cent,pound,curren,yen,brvbar,sect,uml,copy,ordf,laquo,not,shy,reg,macr,deg,plusmn,sup2,sup3,acute,micro,para,middot,cedil,sup1,ordm,raquo,frac14,frac12,frac34,iquest,times,divide,fnof,bull,hellip,prime,Prime,oline,frasl,weierp,image,real,trade,alefsym,larr,uarr,rarr,darr,harr,crarr,lArr,uArr,rArr,dArr,hArr,forall,part,exist,empty,nabla,isin,notin,ni,prod,sum,minus,lowast,radic,prop,infin,ang,and,or,cap,cup,int,there4,sim,cong,asymp,ne,equiv,le,ge,sub,sup,nsub,sube,supe,oplus,otimes,perp,sdot,lceil,rceil,lfloor,rfloor,lang,rang,loz,spades,clubs,hearts,diams,circ,tilde,ensp,emsp,thinsp,zwnj,zwj,lrm,rlm,ndash,mdash,lsquo,rsquo,sbquo,ldquo,rdquo,bdquo,dagger,Dagger,permil,lsaquo,rsaquo,euro"),
+b.entities_latin&&d.push("Agrave,Aacute,Acirc,Atilde,Auml,Aring,AElig,Ccedil,Egrave,Eacute,Ecirc,Euml,Igrave,Iacute,Icirc,Iuml,ETH,Ntilde,Ograve,Oacute,Ocirc,Otilde,Ouml,Oslash,Ugrave,Uacute,Ucirc,Uuml,Yacute,THORN,szlig,agrave,aacute,acirc,atilde,auml,aring,aelig,ccedil,egrave,eacute,ecirc,euml,igrave,iacute,icirc,iuml,eth,ntilde,ograve,oacute,ocirc,otilde,ouml,oslash,ugrave,uacute,ucirc,uuml,yacute,thorn,yuml,OElig,oelig,Scaron,scaron,Yuml"),b.entities_greek&&d.push("Alpha,Beta,Gamma,Delta,Epsilon,Zeta,Eta,Theta,Iota,Kappa,Lambda,Mu,Nu,Xi,Omicron,Pi,Rho,Sigma,Tau,Upsilon,Phi,Chi,Psi,Omega,alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,mu,nu,xi,omicron,pi,rho,sigmaf,sigma,tau,upsilon,phi,chi,psi,omega,thetasym,upsih,piv"),
+b.entities_additional&&d.push(b.entities_additional));var e=j(d.join(",")),f=e.regex?"["+e.regex+"]":"a^";delete e.regex;b.entities&&b.entities_processNumerical&&(f="[^ -~]|"+f);var f=RegExp(f,"g"),c=function(a){return b.entities_processNumerical=="force"||!e[a]?"&#"+a.charCodeAt(0)+";":e[a]},g=j("nbsp,gt,lt,amp,shy",!0),i=RegExp(g.regex,"g"),k=function(a){return g[a]};a.addRules({text:function(a){return a.replace(i,k).replace(f,c)}})}}})})();CKEDITOR.config.basicEntities=!0;
+CKEDITOR.config.entities=!0;CKEDITOR.config.entities_latin=!0;CKEDITOR.config.entities_greek=!0;CKEDITOR.config.entities_additional="#39";CKEDITOR.plugins.add("popup");
+CKEDITOR.tools.extend(CKEDITOR.editor.prototype,{popup:function(e,a,b,d){a=a||"80%";b=b||"70%";"string"==typeof a&&(1<a.length&&"%"==a.substr(a.length-1,1))&&(a=parseInt(window.screen.width*parseInt(a,10)/100,10));"string"==typeof b&&(1<b.length&&"%"==b.substr(b.length-1,1))&&(b=parseInt(window.screen.height*parseInt(b,10)/100,10));640>a&&(a=640);420>b&&(b=420);var f=parseInt((window.screen.height-b)/2,10),g=parseInt((window.screen.width-a)/2,10),d=(d||"location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes")+",width="+
+a+",height="+b+",top="+f+",left="+g,c=window.open("",null,d,!0);if(!c)return!1;try{-1==navigator.userAgent.toLowerCase().indexOf(" chrome/")&&(c.moveTo(g,f),c.resizeTo(a,b)),c.focus(),c.location.href=e}catch(h){window.open(e,null,d,!0)}return!0}});(function(){function g(a,c){var d=[];if(c)for(var b in c)d.push(b+"="+encodeURIComponent(c[b]));else return a;return a+(-1!=a.indexOf("?")?"&":"?")+d.join("&")}function i(a){a+="";return a.charAt(0).toUpperCase()+a.substr(1)}function k(){var a=this.getDialog(),c=a.getParentEditor();c._.filebrowserSe=this;var d=c.config["filebrowser"+i(a.getName())+"WindowWidth"]||c.config.filebrowserWindowWidth||"80%",a=c.config["filebrowser"+i(a.getName())+"WindowHeight"]||c.config.filebrowserWindowHeight||"70%",
+b=this.filebrowser.params||{};b.CKEditor=c.name;b.CKEditorFuncNum=c._.filebrowserFn;b.langCode||(b.langCode=c.langCode);b=g(this.filebrowser.url,b);c.popup(b,d,a,c.config.filebrowserWindowFeatures||c.config.fileBrowserWindowFeatures)}function l(){var a=this.getDialog();a.getParentEditor()._.filebrowserSe=this;return!a.getContentElement(this["for"][0],this["for"][1]).getInputElement().$.value||!a.getContentElement(this["for"][0],this["for"][1]).getAction()?!1:!0}function m(a,c,d){var b=d.params||{};
+b.CKEditor=a.name;b.CKEditorFuncNum=a._.filebrowserFn;b.langCode||(b.langCode=a.langCode);c.action=g(d.url,b);c.filebrowser=d}function j(a,c,d,b){var e,g;for(g in b)if(e=b[g],("hbox"==e.type||"vbox"==e.type||"fieldset"==e.type)&&j(a,c,d,e.children),e.filebrowser)if("string"==typeof e.filebrowser&&(e.filebrowser={action:"fileButton"==e.type?"QuickUpload":"Browse",target:e.filebrowser}),"Browse"==e.filebrowser.action){var f=e.filebrowser.url;void 0===f&&(f=a.config["filebrowser"+i(c)+"BrowseUrl"],void 0===
+f&&(f=a.config.filebrowserBrowseUrl));f&&(e.onClick=k,e.filebrowser.url=f,e.hidden=!1)}else if("QuickUpload"==e.filebrowser.action&&e["for"]&&(f=e.filebrowser.url,void 0===f&&(f=a.config["filebrowser"+i(c)+"UploadUrl"],void 0===f&&(f=a.config.filebrowserUploadUrl)),f)){var h=e.onClick;e.onClick=function(a){var b=a.sender;return h&&h.call(b,a)===false?false:l.call(b,a)};e.filebrowser.url=f;e.hidden=!1;m(a,d.getContents(e["for"][0]).get(e["for"][1]),e.filebrowser)}}function h(a,c,d){if(-1!==d.indexOf(";")){for(var d=
+d.split(";"),b=0;b<d.length;b++)if(h(a,c,d[b]))return!0;return!1}return(a=a.getContents(c).get(d).filebrowser)&&a.url}function n(a,c){var d=this._.filebrowserSe.getDialog(),b=this._.filebrowserSe["for"],e=this._.filebrowserSe.filebrowser.onSelect;b&&d.getContentElement(b[0],b[1]).reset();if(!("function"==typeof c&&!1===c.call(this._.filebrowserSe))&&!(e&&!1===e.call(this._.filebrowserSe,a,c))&&("string"==typeof c&&c&&alert(c),a&&(b=this._.filebrowserSe,d=b.getDialog(),b=b.filebrowser.target||null)))if(b=
+b.split(":"),e=d.getContentElement(b[0],b[1]))e.setValue(a),d.selectPage(b[0])}CKEDITOR.plugins.add("filebrowser",{requires:"popup",init:function(a){a._.filebrowserFn=CKEDITOR.tools.addFunction(n,a);a.on("destroy",function(){CKEDITOR.tools.removeFunction(this._.filebrowserFn)})}});CKEDITOR.on("dialogDefinition",function(a){var c=a.data.definition,d,b;for(b in c.contents)if(d=c.contents[b])j(a.editor,a.data.name,c,d.elements),d.hidden&&d.filebrowser&&(d.hidden=!h(c,d.id,d.filebrowser))})})();CKEDITOR.plugins.add("find",{requires:"dialog",init:function(a){var b=a.addCommand("find",new CKEDITOR.dialogCommand("find"));b.canUndo=!1;b.readOnly=1;a.addCommand("replace",new CKEDITOR.dialogCommand("replace")).canUndo=!1;a.ui.addButton&&(a.ui.addButton("Find",{label:a.lang.find.find,command:"find",toolbar:"find,10"}),a.ui.addButton("Replace",{label:a.lang.find.replace,command:"replace",toolbar:"find,20"}));CKEDITOR.dialog.add("find",this.path+"dialogs/find.js");CKEDITOR.dialog.add("re
place",this.path+
+"dialogs/find.js")}});CKEDITOR.config.find_highlight={element:"span",styles:{"background-color":"#004",color:"#fff"}};(function(){function g(a,b){var c=j.exec(a),d=j.exec(b);if(c){if(!c[2]&&"px"==d[2])return d[1];if("px"==c[2]&&!d[2])return d[1]+"px"}return b}var i=CKEDITOR.htmlParser.cssStyle,h=CKEDITOR.tools.cssLength,j=/^((?:\d*(?:\.\d+))|(?:\d+))(.*)?$/i,l={elements:{$:function(a){var b=a.attributes;if((b=(b=(b=b&&b["data-cke-realelement"])&&new CKEDITOR.htmlParser.fragment.fromHtml(decodeURIComponent(b)))&&b.children[0])&&a.attributes["data-cke-resizable"]){var c=(new i(a)).rules,a=b.attributes,d=c.width,c=
+c.height;d&&(a.width=g(a.width,d));c&&(a.height=g(a.height,c))}return b}}},k=CKEDITOR.plugins.add("fakeobjects",{afterInit:function(a){(a=(a=a.dataProcessor)&&a.htmlFilter)&&a.addRules(l)}});CKEDITOR.editor.prototype.createFakeElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,b={"class":b,"data-cke-realelement":encodeURIComponent(a.getOuterHtml()),"data-cke-real-node-type":a.type,alt:e,title:e,align:a.getAttribute("align")||""};CKEDITOR.env.hc||(b.src=CKEDITOR.getUrl(k.path+
+"images/spacer.gif"));c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,c=new i,d=a.getAttribute("width"),a=a.getAttribute("height"),d&&(c.rules.width=h(d)),a&&(c.rules.height=h(a)),c.populate(b));return this.document.createElement("img",{attributes:b})};CKEDITOR.editor.prototype.createFakeParserElement=function(a,b,c,d){var e=this.lang.fakeobjects,e=e[c]||e.unknown,f;f=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(f);f=f.getHtml();b={"class":b,"data-cke-realelement":encodeURIComponent(f),
+"data-cke-real-node-type":a.type,alt:e,title:e,align:a.attributes.align||""};CKEDITOR.env.hc||(b.src=CKEDITOR.getUrl(k.path+"images/spacer.gif"));c&&(b["data-cke-real-element-type"]=c);d&&(b["data-cke-resizable"]=d,d=a.attributes,a=new i,c=d.width,d=d.height,void 0!=c&&(a.rules.width=h(c)),void 0!=d&&(a.rules.height=h(d)),a.populate(b));return new CKEDITOR.htmlParser.element("img",b)};CKEDITOR.editor.prototype.restoreRealElement=function(a){if(a.data("cke-real-node-type")!=CKEDITOR.NODE_ELEMENT)return null;
+var b=CKEDITOR.dom.element.createFromHtml(decodeURIComponent(a.data("cke-realelement")),this.document);if(a.data("cke-resizable")){var c=a.getStyle("width"),a=a.getStyle("height");c&&b.setAttribute("width",g(b.getAttribute("width"),c));a&&b.setAttribute("height",g(b.getAttribute("height"),a))}return b}})();(function(){function e(a){a=a.attributes;return"application/x-shockwave-flash"==a.type||g.test(a.src||"")}function f(a,d){return a.createFakeParserElement(d,"cke_flash","flash",!0)}var g=/\.swf(?:$|\?)/i;CKEDITOR.plugins.add("flash",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_flash{background-image: url("+CKEDITOR.getUrl(this.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},
+init:function(a){a.addCommand("flash",new CKEDITOR.dialogCommand("flash"));a.ui.addButton&&a.ui.addButton("Flash",{label:a.lang.common.flash,command:"flash",toolbar:"insert,20"});CKEDITOR.dialog.add("flash",this.path+"dialogs/flash.js");a.addMenuItems&&a.addMenuItems({flash:{label:a.lang.flash.properties,command:"flash",group:"flash"}});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"flash"==b.data("cke-real-element-type")&&(a.data.dialog="flash")});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&
+a.is("img")&&!a.isReadOnly()&&"flash"==a.data("cke-real-element-type"))return{flash:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var d=a.dataProcessor;(d=d&&d.dataFilter)&&d.addRules({elements:{"cke:object":function(b){var c=b.attributes;if((!c.classid||!(""+c.classid).toLowerCase())&&!e(b)){for(c=0;c<b.children.length;c++)if("cke:embed"==b.children[c].name){if(!e(b.children[c]))break;return f(a,b)}return null}return f(a,b)},"cke:embed":function(b){return!e(b)?null:f(a,b)}}},5)}})})();
+CKEDITOR.tools.extend(CKEDITOR.config,{flashEmbedTagOnly:!1,flashAddEmbedTag:!0,flashConvertOnEdit:!1});(function(){function t(a){var e="left"==a?"pageXOffset":"pageYOffset";return e in g.$?g.$[e]:CKEDITOR.document.$.documentElement["left"==a?"scrollLeft":"scrollTop"]}function p(a){var e,f=a.config,p=f.floatSpaceDockedOffsetX||0,o=f.floatSpaceDockedOffsetY||0,u=f.floatSpacePinnedOffsetX||0,q=f.floatSpacePinnedOffsetY||0,i=function(c){function f(a,c,b){d.setStyle(c,s(b));d.setStyle("position",a)}function j(a){var c=n.getDocumentPosition();switch(a){case "top":f("absolute","top",c.y-l-o);break;case "pin":f("fixed",
+"top",q);break;case "bottom":f("absolute","top",c.y+(b.height||b.bottom-b.top)+o)}e=a}"focus"==c.name&&d.show();d.removeStyle("left");d.removeStyle("right");var n=a.editable(),k=d.getClientRect(),b=n.getClientRect(),l=k.height,r=t("left");if(e){"top"==e&&k.top<q?j("pin"):"pin"==e?b.top>o+l?j("top"):b.bottom-k.bottom<l&&j("bottom"):"bottom"==e&&(b.top>o+l?j("top"):b.bottom>2*l+q&&j("pin"));var c=g.getViewPaneSize(),h=c.width/2,h=0<b.left&&b.right<c.width&&b.width>k.width?"rtl"==a.config.contentsLangDirection?
+"right":"left":h-b.left>b.right-h?"left":"right",m;k.width>c.width?(h="left",m=0):(m="left"==h?0<b.left?b.left:0:b.right<c.width?c.width-b.right:0,m+k.width>c.width&&(h="left"==h?"right":"left",m=0));d.setStyle(h,s(("pin"==e?u:p)+m+("pin"==e?0:r)))}else e="pin",j("pin"),i(c)},f=CKEDITOR.document.getBody(),r={id:a.id,name:a.name,langDir:a.lang.dir,langCode:a.langCode},n=a.fire("uiSpace",{space:"top",html:""}).html;if(n){var d=f.append(CKEDITOR.dom.element.createFromHtml(v.output(CKEDITOR.tools.extend({topId:a.ui.spaceId("top"),
+content:n,style:"display:none;z-index:"+(a.config.baseFloatZIndex-1)},r))));d.unselectable();d.on("mousedown",function(a){a=a.data;a.getTarget().hasAscendant("a",1)||a.preventDefault()});a.on("focus",function(a){i(a);g.on("scroll",i);g.on("resize",i)});a.on("blur",function(){d.hide();g.removeListener("scroll",i);g.removeListener("resize",i)});a.on("destroy",function(){g.removeListener("scroll",i);g.removeListener("resize",i);d.clearCustomData();d.remove()});a.focusManager.hasFocus&&d.show();a.focusManager.add(d,
+1)}}var v=CKEDITOR.addTemplate("floatcontainer",'<div id="cke_{name}" class="cke {id} cke_reset_all cke_chrome cke_editor_{name} cke_float cke_{langDir} '+CKEDITOR.env.cssClass+'" dir="{langDir}" title="'+(CKEDITOR.env.gecko?" ":"")+'" lang="{langCode}" role="application" style="{style}"><div class="cke_inner"><div id="{topId}" class="cke_top" role="presentation">{content}</div></div></div>');CKEDITOR.plugins.add("floatingspace",{init:function(a){a.on("contentDom",function(){p(a)})}});var g=CKEDITOR.document.getWindow(),
+s=CKEDITOR.tools.cssLength})();CKEDITOR.plugins.add("listblock",{requires:"panel",onLoad:function(){var e=CKEDITOR.addTemplate("panel-list",'<ul role="presentation" class="cke_panel_list">{items}</ul>'),f=CKEDITOR.addTemplate("panel-list-item",'<li id="{id}" class="cke_panel_listItem" role=presentation><a id="{id}_option" _cke_focus=1 hidefocus=true title="{title}" href="javascript:void(\'{val}\')" {onclick}="CKEDITOR.tools.callFunction({clickFn},\'{val}\'); return false;" role="option">{text}</a></li>'),g=CKEDITOR.addTemplate("panel-list-group",
+'<h1 id="{id}" class="cke_panel_grouptitle" role="presentation" >{label}</h1>');CKEDITOR.ui.panel.prototype.addListBlock=function(a,b){return this.addBlock(a,new CKEDITOR.ui.listBlock(this.getHolderElement(),b))};CKEDITOR.ui.listBlock=CKEDITOR.tools.createClass({base:CKEDITOR.ui.panel.block,$:function(a,b){var b=b||{},c=b.attributes||(b.attributes={});(this.multiSelect=!!b.multiSelect)&&(c["aria-multiselectable"]=!0);!c.role&&(c.role="listbox");this.base.apply(this,arguments);c=this.keys;c[40]="next";
+c[9]="next";c[38]="prev";c[CKEDITOR.SHIFT+9]="prev";c[32]=CKEDITOR.env.ie?"mouseup":"click";CKEDITOR.env.ie&&(c[13]="mouseup");this._.pendingHtml=[];this._.pendingList=[];this._.items={};this._.groups={}},_:{close:function(){if(this._.started){var a=e.output({items:this._.pendingList.join("")});this._.pendingList=[];this._.pendingHtml.push(a);delete this._.started}},getClick:function(){this._.click||(this._.click=CKEDITOR.tools.addFunction(function(a){var b=this.toggle(a);if(this.onClick)this.onClick(a,
+b)},this));return this._.click}},proto:{add:function(a,b,c){var d=CKEDITOR.tools.getNextId();this._.started||(this._.started=1,this._.size=this._.size||0);this._.items[a]=d;a={id:d,val:a,onclick:CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick",clickFn:this._.getClick(),title:c||a,text:b||a};this._.pendingList.push(f.output(a))},startGroup:function(a){this._.close();var b=CKEDITOR.tools.getNextId();this._.groups[a]=b;this._.pendingHtml.push(g.output({id:b,label:a}))},commit:function(){this._.close();
+this.element.appendHtml(this._.pendingHtml.join(""));delete this._.size;this._.pendingHtml=[]},toggle:function(a){var b=this.isMarked(a);b?this.unmark(a):this.mark(a);return!b},hideGroup:function(a){var b=(a=this.element.getDocument().getById(this._.groups[a]))&&a.getNext();a&&(a.setStyle("display","none"),b&&"ul"==b.getName()&&b.setStyle("display","none"))},hideItem:function(a){this.element.getDocument().getById(this._.items[a]).setStyle("display","none")},showAll:function(){var a=this._.items,b=
+this._.groups,c=this.element.getDocument(),d;for(d in a)c.getById(a[d]).setStyle("display","");for(var e in b)a=c.getById(b[e]),d=a.getNext(),a.setStyle("display",""),d&&"ul"==d.getName()&&d.setStyle("display","")},mark:function(a){this.multiSelect||this.unmarkAll();var a=this._.items[a],b=this.element.getDocument().getById(a);b.addClass("cke_selected");this.element.getDocument().getById(a+"_option").setAttribute("aria-selected",!0);this.onMark&&this.onMark(b)},unmark:function(a){var b=this.element.getDocument(),
+a=this._.items[a],c=b.getById(a);c.removeClass("cke_selected");b.getById(a+"_option").removeAttribute("aria-selected");this.onUnmark&&this.onUnmark(c)},unmarkAll:function(){var a=this._.items,b=this.element.getDocument(),c;for(c in a){var d=a[c];b.getById(d).removeClass("cke_selected");b.getById(d+"_option").removeAttribute("aria-selected")}this.onUnmark&&this.onUnmark()},isMarked:function(a){return this.element.getDocument().getById(this._.items[a]).hasClass("cke_selected")},focus:function(a){this._.focusIndex=
+-1;if(a){for(var b=this.element.getDocument().getById(this._.items[a]).getFirst(),a=this.element.getElementsByTag("a"),c,d=-1;c=a.getItem(++d);)if(c.equals(b)){this._.focusIndex=d;break}setTimeout(function(){b.focus()},0)}}}})}});CKEDITOR.plugins.add("richcombo",{requires:"floatpanel,listblock,button",beforeInit:function(c){c.ui.addHandler(CKEDITOR.UI_RICHCOMBO,CKEDITOR.ui.richCombo.handler)}});
+(function(){var c='<span id="{id}" class="cke_combo cke_combo__{name} {cls}" role="presentation"><span id="{id}_label" class="cke_combo_label">{label}</span><a class="cke_combo_button" hidefocus=true title="{title}" tabindex="-1"'+(CKEDITOR.env.gecko&&10900<=CKEDITOR.env.version&&!CKEDITOR.env.hc?"":'" href="javascript:void(\'{titleJs}\')"')+' hidefocus="true" role="button" aria-labelledby="{id}_label" aria-haspopup="true"';if(CKEDITOR.env.opera||CKEDITOR.env.gecko&&CKEDITOR.env.mac)c+=' onkeypress="return false;"';
+CKEDITOR.env.gecko&&(c+=' onblur="this.style.cssText = this.style.cssText;"');var c=c+(' onkeydown="return CKEDITOR.tools.callFunction({keydownFn},event,this);" onmousedown="return CKEDITOR.tools.callFunction({mousedownFn},event);" onfocus="return CKEDITOR.tools.callFunction({focusFn},event);" '+(CKEDITOR.env.ie?'onclick="return false;" onmouseup':"onclick")+'="CKEDITOR.tools.callFunction({clickFn},this);return false;"><span id="{id}_text" class="cke_combo_text cke_combo_inlinelabel">{label}</span><span class="cke_combo_open"><span class="cke_combo_arrow">'+
+(CKEDITOR.env.hc?"▼":CKEDITOR.env.air?" ":"")+"</span></span></a></span>"),h=CKEDITOR.addTemplate("combo",c);CKEDITOR.UI_RICHCOMBO="richcombo";CKEDITOR.ui.richCombo=CKEDITOR.tools.createClass({$:function(a){CKEDITOR.tools.extend(this,a,{canGroup:!1,title:a.label,modes:{wysiwyg:1},editorFocus:1});a=this.panel||{};delete this.panel;this.id=CKEDITOR.tools.getNextNumber();this.document=a.parent&&a.parent.getDocument()||CKEDITOR.document;a.className="cke_combopanel";a.block={multiSelect:a.multiSelect,
+attributes:a.attributes};a.toolbarRelated=!0;this._={panelDefinition:a,items:{}}},proto:{renderHtml:function(a){var b=[];this.render(a,b);return b.join("")},render:function(a,b){function j(){var d=this.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED;this.setState(a.readOnly&&!this.readOnly?CKEDITOR.TRISTATE_DISABLED:d);this.setValue("")}var c=CKEDITOR.env,g="cke_"+this.id,e=CKEDITOR.tools.addFunction(function(b){i&&(a.unlockSelection(1),i=0);d.execute(b)},this),f=this,d={id:g,combo:this,
+focus:function(){CKEDITOR.document.getById(g).getChild(1).focus()},execute:function(d){var b=f._;if(b.state!=CKEDITOR.TRISTATE_DISABLED)if(f.createPanel(a),b.on)b.panel.hide();else{f.commit();var c=f.getValue();c?b.list.mark(c):b.list.unmarkAll();b.panel.showBlock(f.id,new CKEDITOR.dom.element(d),4)}},clickFn:e};a.on("mode",j,this);!this.readOnly&&a.on("readOnly",j,this);var k=CKEDITOR.tools.addFunction(function(a,b){var a=new CKEDITOR.dom.event(a),c=a.getKeystroke();switch(c){case 13:case 32:case 40:CKEDITOR.tools.callFunction(e,
+b);break;default:d.onkey(d,c)}a.preventDefault()}),l=CKEDITOR.tools.addFunction(function(){d.onfocus&&d.onfocus()}),i=0,m=CKEDITOR.tools.addFunction(function(){if(CKEDITOR.env.opera){var b=a.editable();b.isInline()&&b.hasFocus&&(a.lockSelection(),i=1)}});d.keyDownFn=k;c={id:g,name:this.name||this.command,label:this.label,title:this.title,cls:this.className||"",titleJs:c.gecko&&10900<=c.version&&!c.hc?"":(this.title||"").replace("'",""),keydownFn:k,mousedownFn:m,focusFn:l,clickFn:e};h.output(c,b);
+if(this.onRender)this.onRender();return d},createPanel:function(a){if(!this._.panel){var b=this._.panelDefinition,c=this._.panelDefinition.block,h=b.parent||CKEDITOR.document.getBody(),g="cke_combopanel__"+this.name,e=new CKEDITOR.ui.floatPanel(a,h,b),f=e.addListBlock(this.id,c),d=this;e.onShow=function(){this.element.addClass(g);d.setState(CKEDITOR.TRISTATE_ON);f.focus(!f.multiSelect&&d.getValue());d._.on=1;d.editorFocus&&a.focus();if(d.onOpen)d.onOpen()};e.onHide=function(b){this.element.removeClass(g);
+d.setState(d.modes&&d.modes[a.mode]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);d._.on=0;if(!b&&d.onClose)d.onClose()};e.onEscape=function(){e.hide(1)};f.onClick=function(a,b){d.onClick&&d.onClick.call(d,a,b);e.hide()};this._.panel=e;this._.list=f;e.getBlock(this.id).onHide=function(){d._.on=0;d.setState(CKEDITOR.TRISTATE_OFF)};this.init&&this.init()}},setValue:function(a,b){this._.value=a;var c=this.document.getById("cke_"+this.id+"_text");c&&(!a&&!b?(b=this.label,c.addClass("cke_combo_inlinelabel")):
+c.removeClass("cke_combo_inlinelabel"),c.setText("undefined"!=typeof b?b:a))},getValue:function(){return this._.value||""},unmarkAll:function(){this._.list.unmarkAll()},mark:function(a){this._.list.mark(a)},hideItem:function(a){this._.list.hideItem(a)},hideGroup:function(a){this._.list.hideGroup(a)},showAll:function(){this._.list.showAll()},add:function(a,b,c){this._.items[a]=c||a;this._.list.add(a,b,c)},startGroup:function(a){this._.list.startGroup(a)},commit:function(){this._.committed||(this._.list.commit(),
+this._.committed=1,CKEDITOR.ui.fire("ready",this));this._.committed=1},setState:function(a){if(this._.state!=a){var b=this.document.getById("cke_"+this.id);b.setState(a,"cke_combo");a==CKEDITOR.TRISTATE_DISABLED?b.setAttribute("aria-disabled",!0):b.removeAttribute("aria-disabled");this._.state=a}},enable:function(){this._.state==CKEDITOR.TRISTATE_DISABLED&&this.setState(this._.lastState)},disable:function(){this._.state!=CKEDITOR.TRISTATE_DISABLED&&(this._.lastState=this._.state,this.setState(CKEDITOR.TRISTATE_DISABLED))}},
+statics:{handler:{create:function(a){return new CKEDITOR.ui.richCombo(a)}}}});CKEDITOR.ui.prototype.addRichCombo=function(a,b){this.add(a,CKEDITOR.UI_RICHCOMBO,b)}})();(function(){function g(a,b,g,h,j,l,m,n){for(var o=a.config,c=j.split(";"),j=[],f={},d=0;d<c.length;d++){var e=c[d];if(e){var e=e.split("/"),k={},i=c[d]=e[0];k[g]=j[d]=e[1]||i;f[i]=new CKEDITOR.style(m,k);f[i]._.definition.name=i}else c.splice(d--,1)}a.ui.addRichCombo(b,{label:h.label,title:h.panelTitle,toolbar:"styles,"+n,panel:{css:[CKEDITOR.skin.getPath("editor")].concat(o.contentsCss),multiSelect:!1,attributes:{"aria-label":h.panelTitle}},init:function(){this.startGroup(h.panelTitle);for(var a=
+0;a<c.length;a++){var b=c[a];this.add(b,f[b].buildPreview(),b)}},onClick:function(b){a.focus();a.fire("saveSnapshot");var c=f[b];a[this.getValue()==b?"removeStyle":"applyStyle"](c);a.fire("saveSnapshot")},onRender:function(){a.on("selectionChange",function(a){for(var b=this.getValue(),a=a.data.path.elements,c=0,d;c<a.length;c++){d=a[c];for(var e in f)if(f[e].checkElementMatch(d,!0)){e!=b&&this.setValue(e);return}}this.setValue("",l)},this)}})}CKEDITOR.plugins.add("font",{requires:"richcombo",init:function(a){var b=
+a.config;g(a,"Font","family",a.lang.font,b.font_names,b.font_defaultLabel,b.font_style,30);g(a,"FontSize","size",a.lang.font.fontSize,b.fontSize_sizes,b.fontSize_defaultLabel,b.fontSize_style,40)}})})();CKEDITOR.config.font_names="Arial/Arial, Helvetica, sans-serif;Comic Sans MS/Comic Sans MS, cursive;Courier New/Courier New, Courier, monospace;Georgia/Georgia, serif;Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;Tahoma/Tahoma, Geneva, sans-serif;Times New Roman/Times New Roman, Times, serif;Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;Verdana/Verdana, Geneva, sans-serif";
+CKEDITOR.config.font_defaultLabel="";CKEDITOR.config.font_style={element:"span",styles:{"font-family":"#(family)"},overrides:[{element:"font",attributes:{face:null}}]};CKEDITOR.config.fontSize_sizes="8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px";CKEDITOR.config.fontSize_defaultLabel="";CKEDITOR.config.fontSize_style={element:"span",styles:{"font-size":"#(size)"},overrides:[{element:"font",attributes:{size:null}}]};CKEDITOR.plugins.add("forms",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss(".cke_editable form{border: 1px dotted #FF0000;padding: 2px;}\n");CKEDITOR.addCss("img.cke_hidden{background-image: url("+CKEDITOR.getUrl(this.path+"images/hiddenfield.gif")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 16px !important;height: 16px !important;}")},init:function(b){var a=b.lang,e=0,h={email:1,password:1,search:1,tel:1,text:1,u
rl:1},d=function(g,
+c,d){var h={};"form"==c&&(h.context="form");b.addCommand(c,new CKEDITOR.dialogCommand(c,h));b.ui.addButton&&b.ui.addButton(g,{label:a.common[g.charAt(0).toLowerCase()+g.slice(1)],command:c,toolbar:"forms,"+(e+=10)});CKEDITOR.dialog.add(c,d)},f=this.path+"dialogs/";!b.blockless&&d("Form","form",f+"form.js");d("Checkbox","checkbox",f+"checkbox.js");d("Radio","radio",f+"radio.js");d("TextField","textfield",f+"textfield.js");d("Textarea","textarea",f+"textarea.js");d("Select","select",f+"select.js");
+d("Button","button",f+"button.js");var i=CKEDITOR.plugins.get("image");i&&d("ImageButton","imagebutton",CKEDITOR.plugins.getPath("image")+"dialogs/image.js");d("HiddenField","hiddenfield",f+"hiddenfield.js");b.addMenuItems&&(d={checkbox:{label:a.forms.checkboxAndRadio.checkboxTitle,command:"checkbox",group:"checkbox"},radio:{label:a.forms.checkboxAndRadio.radioTitle,command:"radio",group:"radio"},textfield:{label:a.forms.textfield.title,command:"textfield",group:"textfield"},hiddenfield:{label:a.forms.hidden.title,
+command:"hiddenfield",group:"hiddenfield"},imagebutton:{label:a.image.titleButton,command:"imagebutton",group:"imagebutton"},button:{label:a.forms.button.title,command:"button",group:"button"},select:{label:a.forms.select.title,command:"select",group:"select"},textarea:{label:a.forms.textarea.title,command:"textarea",group:"textarea"}},!b.blockless&&(d.form={label:a.forms.form.menu,command:"form",group:"form"}),b.addMenuItems(d));b.contextMenu&&(!b.blockless&&b.contextMenu.addListener(function(g,
+c,a){if((g=a.contains("form",1))&&!g.isReadOnly())return{form:CKEDITOR.TRISTATE_OFF}}),b.contextMenu.addListener(function(a){if(a&&!a.isReadOnly()){var c=a.getName();if(c=="select")return{select:CKEDITOR.TRISTATE_OFF};if(c=="textarea")return{textarea:CKEDITOR.TRISTATE_OFF};if(c=="input"){var b=a.getAttribute("type")||"text";switch(b){case "button":case "submit":case "reset":return{button:CKEDITOR.TRISTATE_OFF};case "checkbox":return{checkbox:CKEDITOR.TRISTATE_OFF};case "radio":return{radio:CKEDITOR.TRISTATE_OFF};
+case "image":return i?{imagebutton:CKEDITOR.TRISTATE_OFF}:null}if(h[b])return{textfield:CKEDITOR.TRISTATE_OFF}}if(c=="img"&&a.data("cke-real-element-type")=="hiddenfield")return{hiddenfield:CKEDITOR.TRISTATE_OFF}}}));b.on("doubleclick",function(a){var c=a.data.element;if(!b.blockless&&c.is("form"))a.data.dialog="form";else if(c.is("select"))a.data.dialog="select";else if(c.is("textarea"))a.data.dialog="textarea";else if(c.is("img")&&c.data("cke-real-element-type")=="hiddenfield")a.data.dialog="hiddenfield";
+else if(c.is("input")){c=c.getAttribute("type")||"text";switch(c){case "button":case "submit":case "reset":a.data.dialog="button";break;case "checkbox":a.data.dialog="checkbox";break;case "radio":a.data.dialog="radio";break;case "image":a.data.dialog="imagebutton"}if(h[c])a.data.dialog="textfield"}})},afterInit:function(b){var a=b.dataProcessor,e=a&&a.htmlFilter,a=a&&a.dataFilter;CKEDITOR.env.ie&&e&&e.addRules({elements:{input:function(a){var a=a.attributes,b=a.type;b||(a.type="text");("checkbox"==
+b||"radio"==b)&&"on"==a.value&&delete a.value}}});a&&a.addRules({elements:{input:function(a){if("hidden"==a.attributes.type)return b.createFakeParserElement(a,"cke_hidden","hiddenfield")}}})}});
+CKEDITOR.env.ie&&(CKEDITOR.dom.element.prototype.hasAttribute=CKEDITOR.tools.override(CKEDITOR.dom.element.prototype.hasAttribute,function(b){return function(a){this.$.attributes.getNamedItem(a);if("input"==this.getName())switch(a){case "class":return 0<this.$.className.length;case "checked":return!!this.$.checked;case "value":var e=this.getAttribute("type");return"checkbox"==e||"radio"==e?"on"!=this.$.value:this.$.value}return b.apply(this,arguments)}}));CKEDITOR.plugins.add("format",{requires:"richcombo",init:function(a){if(!a.blockless){for(var g=a.config,c=a.lang.format,j=g.format_tags.split(";"),d={},h=0;h<j.length;h++){var i=j[h];d[i]=new CKEDITOR.style(g["format_"+i]);d[i]._.enterMode=a.config.enterMode}a.ui.addRichCombo("Format",{label:c.label,title:c.panelTitle,toolbar:"styles,20",panel:{css:[CKEDITOR.skin.getPath("editor")].concat(g.contentsCss),multiSelect:!1,attributes:{"aria-label":c.panelTitle}},init:function(){this.startGroup(c.panelTitle);
+for(var a in d){var e=c["tag_"+a];this.add(a,d[a].buildPreview(e),e)}},onClick:function(b){a.focus();a.fire("saveSnapshot");var b=d[b],e=a.elementPath();a[b.checkActive(e)?"removeStyle":"applyStyle"](b);setTimeout(function(){a.fire("saveSnapshot")},0)},onRender:function(){a.on("selectionChange",function(b){var e=this.getValue(),b=b.data.path,c=!a.readOnly&&b.isContextFor("p");this[c?"enable":"disable"]();if(c){for(var f in d)if(d[f].checkActive(b)){f!=e&&this.setValue(f,a.lang.format["tag_"+f]);return}this.setValue("")}},
+this)}})}}});CKEDITOR.config.format_tags="p;h1;h2;h3;h4;h5;h6;pre;address;div";CKEDITOR.config.format_p={element:"p"};CKEDITOR.config.format_div={element:"div"};CKEDITOR.config.format_pre={element:"pre"};CKEDITOR.config.format_address={element:"address"};CKEDITOR.config.format_h1={element:"h1"};CKEDITOR.config.format_h2={element:"h2"};CKEDITOR.config.format_h3={element:"h3"};CKEDITOR.config.format_h4={element:"h4"};CKEDITOR.config.format_h5={element:"h5"};CKEDITOR.config.format_h6={element:"h6"};CKEDITOR.plugins.add("htmlwriter",{init:function(b){var a=new CKEDITOR.htmlWriter;a.forceSimpleAmpersand=b.config.forceSimpleAmpersand;a.indentationChars=b.config.dataIndentationChars||"\t";b.dataProcessor.writer=a}});
+CKEDITOR.htmlWriter=CKEDITOR.tools.createClass({base:CKEDITOR.htmlParser.basicWriter,$:function(){this.base();this.indentationChars="\t";this.selfClosingEnd=" />";this.lineBreakChars="\n";this.sortAttributes=1;this._.indent=0;this._.indentation="";this._.inPre=0;this._.rules={};var b=CKEDITOR.dtd,a;for(a in CKEDITOR.tools.extend({},b.$nonBodyContent,b.$block,b.$listItem,b.$tableContent))this.setRules(a,{indent:!b[a]["#"],breakBeforeOpen:1,breakBeforeClose:!b[a]["#"],breakAfterClose:1,needsSpace:a in
+b.$block&&!(a in{li:1,dt:1,dd:1})});this.setRules("br",{breakAfterOpen:1});this.setRules("title",{indent:0,breakAfterOpen:0});this.setRules("style",{indent:0,breakBeforeClose:1});this.setRules("pre",{breakAfterOpen:1,indent:0})},proto:{openTag:function(b){var a=this._.rules[b];this._.afterCloser&&(a&&a.needsSpace&&this._.needsSpace)&&this._.output.push("\n");this._.indent?this.indentation():a&&a.breakBeforeOpen&&(this.lineBreak(),this.indentation());this._.output.push("<",b);this._.afterCloser=0},
+openTagClose:function(b,a){var c=this._.rules[b];a?(this._.output.push(this.selfClosingEnd),c&&c.breakAfterClose&&(this._.needsSpace=c.needsSpace)):(this._.output.push(">"),c&&c.indent&&(this._.indentation+=this.indentationChars));c&&c.breakAfterOpen&&this.lineBreak();"pre"==b&&(this._.inPre=1)},attribute:function(b,a){"string"==typeof a&&(this.forceSimpleAmpersand&&(a=a.replace(/&/g,"&")),a=CKEDITOR.tools.htmlEncodeAttr(a));this._.output.push(" ",b,'="',a,'"')},closeTag:function(b){var a=this._.rules[b];
+a&&a.indent&&(this._.indentation=this._.indentation.substr(this.indentationChars.length));this._.indent?this.indentation():a&&a.breakBeforeClose&&(this.lineBreak(),this.indentation());this._.output.push("</",b,">");"pre"==b&&(this._.inPre=0);a&&a.breakAfterClose&&(this.lineBreak(),this._.needsSpace=a.needsSpace);this._.afterCloser=1},text:function(b){this._.indent&&(this.indentation(),!this._.inPre&&(b=CKEDITOR.tools.ltrim(b)));this._.output.push(b)},comment:function(b){this._.indent&&this.indentation();
+this._.output.push("<\!--",b,"--\>")},lineBreak:function(){!this._.inPre&&0<this._.output.length&&this._.output.push(this.lineBreakChars);this._.indent=1},indentation:function(){!this._.inPre&&this._.indentation&&this._.output.push(this._.indentation);this._.indent=0},reset:function(){this._.output=[];this._.indent=0;this._.indentation="";this._.afterCloser=0;this._.inPre=0},setRules:function(b,a){var c=this._.rules[b];c?CKEDITOR.tools.extend(c,a,!0):this._.rules[b]=a}}});(function(){var b={canUndo:!1,exec:function(a){var b=a.document.createElement("hr");a.insertElement(b)}};CKEDITOR.plugins.add("horizontalrule",{init:function(a){a.blockless||(a.addCommand("horizontalrule",b),a.ui.addButton&&a.ui.addButton("HorizontalRule",{label:a.lang.horizontalrule.toolbar,command:"horizontalrule",toolbar:"insert,40"}))}})})();(function(){CKEDITOR.plugins.add("iframe",{requires:"dialog,fakeobjects",onLoad:function(){CKEDITOR.addCss("img.cke_iframe{background-image: url("+CKEDITOR.getUrl(t
his.path+"images/placeholder.png")+");background-position: center center;background-repeat: no-repeat;border: 1px solid #a9a9a9;width: 80px;height: 80px;}")},init:function(a){var b=a.lang.iframe;CKEDITOR.dialog.add("iframe",this.path+"dialogs/iframe.js");a.addCommand("iframe",new CKEDITOR.dialogCommand("iframe"));a.ui.addButton&&a.ui.addButton("Iframe",
+{label:b.toolbar,command:"iframe",toolbar:"insert,80"});a.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&"iframe"==b.data("cke-real-element-type")&&(a.data.dialog="iframe")});a.addMenuItems&&a.addMenuItems({iframe:{label:b.title,command:"iframe",group:"image"}});a.contextMenu&&a.contextMenu.addListener(function(a){if(a&&a.is("img")&&"iframe"==a.data("cke-real-element-type"))return{iframe:CKEDITOR.TRISTATE_OFF}})},afterInit:function(a){var b=a.dataProcessor;(b=b&&b.dataFilter)&&b.addRules({elements:{iframe:function(b){return a.createFakeParserElement(b,
+"cke_iframe","iframe",!0)}}})}})})();(function(){function n(a){var c=this.editor,d=a.document,b=d.body;(a=d.getElementById("cke_actscrpt"))&&a.parentNode.removeChild(a);(a=d.getElementById("cke_shimscrpt"))&&a.parentNode.removeChild(a);CKEDITOR.env.gecko&&(b.contentEditable=!1,2E4>CKEDITOR.env.version&&(b.innerHTML=b.innerHTML.replace(/^.*<\!-- cke-content-start --\>/,""),setTimeout(function(){var a=new CKEDITOR.dom.range(new CKEDITOR.dom.document(d));a.setStart(new CKEDITOR.dom.node(b),0);c.getSelection().selectRanges([a])},0)));b.contentEditable=
+!0;CKEDITOR.env.ie&&(b.hideFocus=!0,b.disabled=!0,b.removeAttribute("disabled"));delete this._.isLoadingData;this.$=b;d=new CKEDITOR.dom.document(d);this.setup();CKEDITOR.env.ie&&(d.getDocumentElement().addClass(d.$.compatMode),c.config.enterMode!=CKEDITOR.ENTER_P&&d.on("selectionchange",function(){var a=d.getBody(),b=c.getSelection(),e=b&&b.getRanges()[0];e&&(a.getHtml().match(/^<p> <\/p>$/i)&&e.startContainer.equals(a))&&setTimeout(function(){e=c.getSelection().getRanges()[0];if(!e.startContainer.equals("body")){a.getFirst().remove(1);
+e.moveToElementEditEnd(a);e.select()}},0)}));CKEDITOR.env.gecko&&CKEDITOR.tools.setTimeout(o,0,this,c);try{c.document.$.execCommand("2D-position",!1,!0)}catch(e){}try{c.document.$.execCommand("enableInlineTableEditing",!1,!c.config.disableNativeTableHandles)}catch(f){}if(c.config.disableObjectResizing)try{this.getDocument().$.execCommand("enableObjectResizing",!1,!1)}catch(g){this.attachListener(this,CKEDITOR.env.ie?"resizestart":"resize",function(a){a.data.preventDefault()})}(CKEDITOR.env.gecko||
+CKEDITOR.env.ie&&"CSS1Compat"==c.document.$.compatMode)&&this.attachListener(this,"keydown",function(a){var b=a.data.getKeystroke();if(b==33||b==34)if(CKEDITOR.env.ie)setTimeout(function(){c.getSelection().scrollIntoView()},0);else if(c.window.$.innerHeight>this.$.offsetHeight){var d=c.createRange();d[b==33?"moveToElementEditStart":"moveToElementEditEnd"](this);d.select();a.data.preventDefault()}});CKEDITOR.env.ie&&this.attachListener(d,"blur",function(){try{d.$.selection.empty()}catch(a){}});c.document.getElementsByTag("title").getItem(0).data("cke-title",
+c.document.$.title);CKEDITOR.env.ie&&(c.document.$.title=this._.docTitle);CKEDITOR.tools.setTimeout(function(){c.fire("contentDom");if(this._.isPendingFocus){c.focus();this._.isPendingFocus=false}setTimeout(function(){c.fire("dataReady")},0);CKEDITOR.env.ie&&setTimeout(function(){if(c.document){var a=c.document.$.body;a.runtimeStyle.marginBottom="0px";a.runtimeStyle.marginBottom=""}},1E3)},0,this)}function p(a){a.checkDirty()||setTimeout(function(){a.resetDirty()},0)}function o(a){if(!a.readOnly){var c=
+a.window,d=a.document,b=d.getBody(),e=b.getFirst(),f=b.getChildren().count();if(!f||1==f&&e.type==CKEDITOR.NODE_ELEMENT&&e.hasAttribute("_moz_editor_bogus_node")){p(a);var e=CKEDITOR.document,g=e.getDocumentElement(),h=g.$.scrollTop,i=g.$.scrollLeft,j=d.$.createEvent("KeyEvents");j.initKeyEvent("keypress",!0,!0,c.$,!1,!1,!1,!1,0,32);d.$.dispatchEvent(j);(h!=g.$.scrollTop||i!=g.$.scrollLeft)&&e.getWindow().$.scrollTo(i,h);f&&b.getFirst().remove();d.getBody().appendBogus();a=a.createRange();a.setStartAt(b,
+CKEDITOR.POSITION_AFTER_START);a.select()}}}function q(){var a=[];if(8<=CKEDITOR.document.$.documentMode){a.push("html.CSS1Compat [contenteditable=false]{min-height:0 !important}");var c=[],d;for(d in CKEDITOR.dtd.$removeEmpty)c.push("html.CSS1Compat "+d+"[contenteditable=false]");a.push(c.join(",")+"{display:inline-block}")}else CKEDITOR.env.gecko&&(a.push("html{height:100% !important}"),a.push("img:-moz-broken{-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"));a.push("html{cursor:text;*cursor:auto}");
+a.push("img,input,textarea{cursor:default}");return a.join("\n")}CKEDITOR.plugins.add("wysiwygarea",{init:function(a){a.addMode("wysiwyg",function(c){function d(d){d&&d.removeListener();a.editable(new k(a,b.$.contentWindow.document.body));a.setData(a.getData(1),c)}var b=CKEDITOR.document.createElement("iframe");b.setStyles({width:"100%",height:"100%"});b.addClass("cke_wysiwyg_frame cke_reset");var e=a.ui.space("contents");e.append(b);var f="document.open();"+(l?'document.domain="'+document.domain+
+'";':"")+"document.close();",f=CKEDITOR.env.air?"javascript:void(0)":CKEDITOR.env.ie?"javascript:void(function(){"+encodeURIComponent(f)+"}())":"",g=CKEDITOR.env.ie||CKEDITOR.env.gecko;if(g)b.on("load",d);var h=[a.lang.editor,a.name].join(),i=a.lang.common.editorHelp;CKEDITOR.env.ie&&(h+=", "+i);var j=CKEDITOR.tools.getNextId(),m=CKEDITOR.dom.element.createFromHtml('<span id="'+j+'" class="cke_voice_label">'+i+"</span>");e.append(m,1);a.on("beforeModeUnload",function(a){a.removeListener();m.remove()});
+b.setAttributes({frameBorder:0,"aria-describedby":j,title:h,src:f,tabIndex:a.tabIndex,allowTransparency:"true"});!g&&d();CKEDITOR.env.webkit&&(f=function(){e.setStyle("width","100%");b.hide();b.setSize("width",e.getSize("width"));e.removeStyle("width");b.show()},b.setCustomData("onResize",f),CKEDITOR.document.getWindow().on("resize",f));a.fire("ariaWidget",b)})}});var l=CKEDITOR.env.isCustomDomain(),k=CKEDITOR.tools.createClass({$:function(a){this.base.apply(this,arguments);this._.frameLoadedHandler=
+CKEDITOR.tools.addFunction(function(a){CKEDITOR.tools.setTimeout(n,0,this,a)},this);this._.docTitle=this.getWindow().getFrame().getAttribute("title")},base:CKEDITOR.editable,proto:{setData:function(a,c){var d=this.editor;if(c)this.setHtml(a);else{this._.isLoadingData=!0;d._.dataStore={id:1};var b=d.config,e=b.fullPage,f=b.docType,g=CKEDITOR.tools.buildStyleHtml(q()).replace(/<style>/,'<style data-cke-temp="1">');e||(g+=CKEDITOR.tools.buildStyleHtml(d.config.contentsCss));var h=b.baseHref?'<base href="'+
+b.baseHref+'" data-cke-temp="1" />':"";e&&(a=a.replace(/<!DOCTYPE[^>]*>/i,function(a){d.docType=f=a;return""}).replace(/<\?xml\s[^\?]*\?>/i,function(a){d.xmlDeclaration=a;return""}));d.dataProcessor&&(a=d.dataProcessor.toHtml(a));e?(/<body[\s|>]/.test(a)||(a="<body>"+a),/<html[\s|>]/.test(a)||(a="<html>"+a+"</html>"),/<head[\s|>]/.test(a)?/<title[\s|>]/.test(a)||(a=a.replace(/<head[^>]*>/,"$&<title></title>")):a=a.replace(/<html[^>]*>/,"$&<head><title></title></head>"),h&&(a=a.replace(/<head>/,"$&"+
+h)),a=a.replace(/<\/head\s*>/,g+"$&"),a=f+a):a=b.docType+'<html dir="'+b.contentsLangDirection+'" lang="'+(b.contentsLanguage||d.langCode)+'"><head><title>'+this._.docTitle+"</title>"+h+g+"</head><body"+(b.bodyId?' id="'+b.bodyId+'"':"")+(b.bodyClass?' class="'+b.bodyClass+'"':"")+">"+a+"</body></html>";CKEDITOR.env.gecko&&(a=a.replace(/<body/,'<body contenteditable="true" '),2E4>CKEDITOR.env.version&&(a=a.replace(/<body[^>]*>/,"$&<\!-- cke-content-start --\>")));b='<script id="cke_actscrpt" type="text/javascript"'+
+(CKEDITOR.env.ie?' defer="defer" ':"")+">"+(l?'document.domain="'+document.domain+'";':"")+"var wasLoaded=0;function onload(){if(!wasLoaded)window.parent.CKEDITOR.tools.callFunction("+this._.frameLoadedHandler+",window);wasLoaded=1;}"+(CKEDITOR.env.ie?"onload();":'document.addEventListener("DOMContentLoaded", onload, false );')+"<\/script>";CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(b+='<script id="cke_shimscrpt">(function(){var e="abbr,article,aside,audio,bdi,canvas,data,datalist,details,figcaption,figure,footer,header,hgroup,mark,meter,nav,output,progress,section,summary,time,video".split(","),i=e.length;while(i--){document.createElement(e[i])}})()<\/script>');
+a=a.replace(/(?=\s*<\/(:?head)>)/,b);this.clearCustomData();this.clearListeners();d.fire("contentDomUnload");var i=this.getDocument();try{i.write(a)}catch(j){setTimeout(function(){i.write(a)},0)}}},getData:function(a){if(a)return this.getHtml();var a=this.editor,c=a.config.fullPage,d=c&&a.docType,b=c&&a.xmlDeclaration,e=this.getDocument(),c=c?e.getDocumentElement().getOuterHtml():e.getBody().getHtml();CKEDITOR.env.gecko&&(c=c.replace(/<br>(?=\s*(:?$|<\/body>))/,""));a.dataProcessor&&(c=a.dataProcessor.toDataFormat(c));
+b&&(c=b+"\n"+c);d&&(c=d+"\n"+c);return c},focus:function(){this._.isLoadingData?this._.isPendingFocus=!0:k.baseProto.focus.call(this)},detach:function(){var a=this.editor,c=a.document,d=a.window.getFrame();k.baseProto.detach.call(this);this.clearCustomData();c.getDocumentElement().clearCustomData();d.clearCustomData();CKEDITOR.tools.removeFunction(this._.frameLoadedHandler);(c=d.removeCustomData("onResize"))&&c.removeListener();a.fire("contentDomUnload");d.remove()}}});CKEDITOR.env.gecko&&function(){var a=
+document.body;if(a){var c=a.getAttribute("onpageshow");a.setAttribute("onpageshow",(c?c+";":"")+'event.persisted&&(function(){var x=CKEDITOR.instances,d,i;for(i in x){d=x[i].document;if(d){d.$.designMode="off";d.$.designMode="on";}}})();')}else window.addEventListener("load",arguments.callee,!1)}()})();CKEDITOR.config.disableObjectResizing=!1;CKEDITOR.config.disableNativeTableHandles=!0;CKEDITOR.config.disableNativeSpellChecker=!0;CKEDITOR.config.contentsCss=CKEDITOR.basePath+"contents.css";(function(){function e(b,a){a||(a=b.getSelection().getSelectedElement());if(a&&a.is("img")&&!a.data("cke-realelement")&&!a.isReadOnly())return a}function f(b){var a=b.getStyle("float");if("inherit"==a||"none"==a)a=0;a||(a=b.getAttribute("align"));return a}CKEDITOR.plugins.add("image",{requires:"dialog",init:function(b){CKEDITOR.dialog.add("image",this.path+"dialogs/image.js");b.addCommand("image",new CKEDITOR.dialogCommand("image"));b.ui.addButton&&b.ui.addButton("Image",{label:b.lang.com
mon.image,
+command:"image",toolbar:"insert,10"});b.on("doubleclick",function(a){var b=a.data.element;b.is("img")&&(!b.data("cke-realelement")&&!b.isReadOnly())&&(a.data.dialog="image")});b.addMenuItems&&b.addMenuItems({image:{label:b.lang.image.menu,command:"image",group:"image"}});b.contextMenu&&b.contextMenu.addListener(function(a){if(e(b,a))return{image:CKEDITOR.TRISTATE_OFF}})},afterInit:function(b){function a(a){var d=b.getCommand("justify"+a);if(d){if("left"==a||"right"==a)d.on("exec",function(d){var c=
+e(b),g;c&&(g=f(c),g==a?(c.removeStyle("float"),a==f(c)&&c.removeAttribute("align")):c.setStyle("float",a),d.cancel())});d.on("refresh",function(d){var c=e(b);c&&(c=f(c),this.setState(c==a?CKEDITOR.TRISTATE_ON:"right"==a||"left"==a?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED),d.cancel())})}}a("left");a("right");a("center");a("block")}})})();CKEDITOR.config.image_removeLinkByEmptyURL=!0;CKEDITOR.plugins.add("smiley",{requires:"dialog",init:function(a){a.config.smiley_path=a.config.smiley_path||this.path+"images/";a.addCommand("smiley",new CKEDITOR.dialogCommand("smiley"));a.ui.addButton&&a.ui.addButton("Smiley",{label:a.lang.smiley.toolbar,command:"smiley",toolbar:"insert,50"});CKEDITOR.dialog.add("smiley",this.path+"dialogs/smiley.js")}});CKEDITOR.config.smiley_images="regular_smile.gif sad_smile.gif wink_smile.gif teeth_smile.gif confused_smile.gif tongue_smile.gif embarrassed_smile.gif omg_smile.gif whatchutalkingabout_smile.gif angry_smile.gif angel_smile.gif shades_s
mile.gif devil_smile.gif cry_smile.gif lightbulb.gif thumbs_down.gif thumbs_up.gif heart.gif broken_heart.gif kiss.gif envelope.gif".split(" ");
+CKEDITOR.config.smiley_descriptions="smiley;sad;wink;laugh;frown;cheeky;blush;surprise;indecision;angry;angel;cool;devil;crying;enlightened;no;yes;heart;broken heart;kiss;mail".split(";");(function(){function l(a,c){var c=void 0===c||c,b;if(c)b=a.getComputedStyle("text-align");else{for(;!a.hasAttribute||!a.hasAttribute("align")&&!a.getStyle("text-align");){b=a.getParent();if(!b)break;a=b}b=a.getStyle("text-align")||a.getAttribute("align")||""}b&&(b=b.replace(/(?:-(?:moz|webkit)-)?(?:start|auto)/i,""));!b&&c&&(b="rtl"==a.getComputedStyle("direction")?"right":"left");return b}function f(a,c,b){this.editor=a;this.name=c;this.value=b;this.context="p";if(a=a.config.justifyClasses){switch(b){case "left":this.cssClassName=
+a[0];break;case "center":this.cssClassName=a[1];break;case "right":this.cssClassName=a[2];break;case "justify":this.cssClassName=a[3]}this.cssClassRegex=RegExp("(?:^|\\s+)(?:"+a.join("|")+")(?=$|\\s)")}}function j(a){var c=a.editor,b=c.createRange();b.setStartBefore(a.data.node);b.setEndAfter(a.data.node);for(var h=new CKEDITOR.dom.walker(b),d;d=h.next();)if(d.type==CKEDITOR.NODE_ELEMENT)if(!d.equals(a.data.node)&&d.getDirection())b.setStartAfter(d),h=new CKEDITOR.dom.walker(b);else{var e=c.config.justifyClasses;
+e&&(d.hasClass(e[0])?(d.removeClass(e[0]),d.addClass(e[2])):d.hasClass(e[2])&&(d.removeClass(e[2]),d.addClass(e[0])));e=d.getStyle("text-align");"left"==e?d.setStyle("text-align","right"):"right"==e&&d.setStyle("text-align","left")}}f.prototype={exec:function(a){var c=a.getSelection(),b=a.config.enterMode;if(c){for(var h=c.createBookmarks(),d=c.getRanges(!0),e=this.cssClassName,f,g,i=a.config.useComputedState,i=void 0===i||i,k=d.length-1;0<=k;k--){f=d[k].createIterator();for(f.enlargeBr=b!=CKEDITOR.ENTER_BR;g=
+f.getNextParagraph(b==CKEDITOR.ENTER_P?"p":"div");){g.removeAttribute("align");g.removeStyle("text-align");var j=e&&(g.$.className=CKEDITOR.tools.ltrim(g.$.className.replace(this.cssClassRegex,""))),m=this.state==CKEDITOR.TRISTATE_OFF&&(!i||l(g,!0)!=this.value);e?m?g.addClass(e):j||g.removeAttribute("class"):m&&g.setStyle("text-align",this.value)}}a.focus();a.forceNextSelectionCheck();c.selectBookmarks(h)}},refresh:function(a,c){var b=c.block||c.blockLimit;this.setState("body"!=b.getName()&&l(b,this.editor.config.useComputedState)==
+this.value?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)}};CKEDITOR.plugins.add("justify",{init:function(a){if(!a.blockless){var c=new f(a,"justifyleft","left"),b=new f(a,"justifycenter","center"),h=new f(a,"justifyright","right"),d=new f(a,"justifyblock","justify");a.addCommand("justifyleft",c);a.addCommand("justifycenter",b);a.addCommand("justifyright",h);a.addCommand("justifyblock",d);a.ui.addButton&&(a.ui.addButton("JustifyLeft",{label:a.lang.justify.left,command:"justifyleft",toolbar:"align,10"}),
+a.ui.addButton("JustifyCenter",{label:a.lang.justify.center,command:"justifycenter",toolbar:"align,20"}),a.ui.addButton("JustifyRight",{label:a.lang.justify.right,command:"justifyright",toolbar:"align,30"}),a.ui.addButton("JustifyBlock",{label:a.lang.justify.block,command:"justifyblock",toolbar:"align,40"}));a.on("dirChanged",j)}}})})();CKEDITOR.plugins.add("link",{requires:"dialog,fakeobjects",onLoad:function(){function b(b){return c.replace(/%1/g,"rtl"==b?"right":"left").replace(/%2/g,"cke_contents_"+b)}var a="background:url("+CKEDITOR.getUrl(this.path+"images/anchor.png")+") no-repeat %1 center;border:1px dotted #00f;",c=".%2 a.cke_anchor,.%2 a.cke_anchor_empty,.cke_editable.%2 a[name],.cke_editable.%2 a[data-cke-saved-name]{"+a+"padding-%1:18px;cursor:auto;}"+(CKEDITOR.env.ie?"a.cke_anchor_empty{display:inline-block;}":"")+".%2 img.cke_anchor{"+
+a+"width:16px;min-height:15px;height:1.15em;vertical-align:"+(CKEDITOR.env.opera?"middle":"text-bottom")+";}";CKEDITOR.addCss(b("ltr")+b("rtl"))},init:function(b){b.addCommand("link",new CKEDITOR.dialogCommand("link"));b.addCommand("anchor",new CKEDITOR.dialogCommand("anchor"));b.addCommand("unlink",new CKEDITOR.unlinkCommand);b.addCommand("removeAnchor",new CKEDITOR.removeAnchorCommand);b.setKeystroke(CKEDITOR.CTRL+76,"link");b.ui.addButton&&(b.ui.addButton("Link",{label:b.lang.link.toolbar,command:"link",
+toolbar:"links,10"}),b.ui.addButton("Unlink",{label:b.lang.link.unlink,command:"unlink",toolbar:"links,20"}),b.ui.addButton("Anchor",{label:b.lang.link.anchor.toolbar,command:"anchor",toolbar:"links,30"}));CKEDITOR.dialog.add("link",this.path+"dialogs/link.js");CKEDITOR.dialog.add("anchor",this.path+"dialogs/anchor.js");b.on("doubleclick",function(a){var c=CKEDITOR.plugins.link.getSelectedLink(b)||a.data.element;if(!c.isReadOnly())if(c.is("a")){a.data.dialog=c.getAttribute("name")&&(!c.getAttribute("href")||
+!c.getChildCount())?"anchor":"link";b.getSelection().selectElement(c)}else if(CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,c))a.data.dialog="anchor"});b.addMenuItems&&b.addMenuItems({anchor:{label:b.lang.link.anchor.menu,command:"anchor",group:"anchor",order:1},removeAnchor:{label:b.lang.link.anchor.remove,command:"removeAnchor",group:"anchor",order:5},link:{label:b.lang.link.menu,command:"link",group:"link",order:1},unlink:{label:b.lang.link.unlink,command:"unlink",group:"link",order:5}});b.contextMenu&&
+b.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,a);if(!a&&!(a=CKEDITOR.plugins.link.getSelectedLink(b)))return null;var c={};a.getAttribute("href")&&a.getChildCount()&&(c={link:CKEDITOR.TRISTATE_OFF,unlink:CKEDITOR.TRISTATE_OFF});if(a&&a.hasAttribute("name"))c.anchor=c.removeAnchor=CKEDITOR.TRISTATE_OFF;return c})},afterInit:function(b){var a=b.dataProcessor,c=a&&a.dataFilter,a=a&&a.htmlFilter,d=b._.elementsPath&&b._.elementsPath.filters;
+c&&c.addRules({elements:{a:function(a){var c=a.attributes;if(!c.name)return null;var d=!a.children.length;if(CKEDITOR.plugins.link.synAnchorSelector){var a=d?"cke_anchor_empty":"cke_anchor",e=c["class"];if(c.name&&(!e||0>e.indexOf(a)))c["class"]=(e||"")+" "+a;d&&CKEDITOR.plugins.link.emptyAnchorFix&&(c.contenteditable="false",c["data-cke-editable"]=1)}else if(CKEDITOR.plugins.link.fakeAnchor&&d)return b.createFakeParserElement(a,"cke_anchor","anchor");return null}}});CKEDITOR.plugins.link.emptyAnchorFix&&
+a&&a.addRules({elements:{a:function(a){delete a.attributes.contenteditable}}});d&&d.push(function(a,c){if("a"==c&&(CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,a)||a.getAttribute("name")&&(!a.getAttribute("href")||!a.getChildCount())))return"anchor"})}});
+CKEDITOR.plugins.link={getSelectedLink:function(b){var a=b.getSelection(),c=a.getSelectedElement();return c&&c.is("a")?c:(a=a.getRanges(!0)[0])?(a.shrink(CKEDITOR.SHRINK_TEXT),b.elementPath(a.getCommonAncestor()).contains("a",1)):null},fakeAnchor:CKEDITOR.env.opera||CKEDITOR.env.webkit,synAnchorSelector:CKEDITOR.env.ie,emptyAnchorFix:CKEDITOR.env.ie&&8>CKEDITOR.env.version,tryRestoreFakeAnchor:function(b,a){if(a&&a.data("cke-real-element-type")&&"anchor"==a.data("cke-real-element-type")){var c=b.restoreRealElement(a);
+if(c.data("cke-saved-name"))return c}}};CKEDITOR.unlinkCommand=function(){};CKEDITOR.unlinkCommand.prototype={exec:function(b){var a=new CKEDITOR.style({element:"a",type:CKEDITOR.STYLE_INLINE,alwaysRemoveElement:1});b.removeStyle(a)},refresh:function(b,a){var c=a.lastElement&&a.lastElement.getAscendant("a",!0);c&&"a"==c.getName()&&c.getAttribute("href")&&c.getChildCount()?this.setState(CKEDITOR.TRISTATE_OFF):this.setState(CKEDITOR.TRISTATE_DISABLED)},contextSensitive:1,startDisabled:1};
+CKEDITOR.removeAnchorCommand=function(){};CKEDITOR.removeAnchorCommand.prototype={exec:function(b){var a=b.getSelection(),c=a.createBookmarks(),d;if(a&&(d=a.getSelectedElement())&&(CKEDITOR.plugins.link.fakeAnchor&&!d.getChildCount()?CKEDITOR.plugins.link.tryRestoreFakeAnchor(b,d):d.is("a")))d.remove(1);else if(d=CKEDITOR.plugins.link.getSelectedLink(b))d.hasAttribute("href")?(d.removeAttributes({name:1,"data-cke-saved-name":1}),d.removeClass("cke_anchor")):d.remove(1);a.selectBookmarks(c)}};
+CKEDITOR.tools.extend(CKEDITOR.config,{linkShowAdvancedTab:!0,linkShowTargetTab:!0});(function(){CKEDITOR.plugins.liststyle={requires:"dialog,contextmenu",init:function(a){a.addCommand("numberedListStyle",new CKEDITOR.dialogCommand("numberedListStyle"));CKEDITOR.dialog.add("numberedListStyle",this.path+"dialogs/liststyle.js");a.addCommand("bulletedListStyle",new CKEDITOR.dialogCommand("bulletedListStyle"));CKEDITOR.dialog.add("bulletedListStyle",this.path+"dialogs/liststyle.js");a.addMenuGroup("list",108);a.addMenuItems({numberedlist:{label:a.lang.liststyle.numberedTitle,group:"list",
+command:"numberedListStyle"},bulletedlist:{label:a.lang.liststyle.bulletedTitle,group:"list",command:"bulletedListStyle"}});a.contextMenu.addListener(function(a){if(!a||a.isReadOnly())return null;for(;a;){var b=a.getName();if("ol"==b)return{numberedlist:CKEDITOR.TRISTATE_OFF};if("ul"==b)return{bulletedlist:CKEDITOR.TRISTATE_OFF};a=a.getParent()}return null})}};CKEDITOR.plugins.add("liststyle",CKEDITOR.plugins.liststyle)})();(function(){function N(a,b,d){return l(b)&&l(d)&&d.equals(b.getNext(function(a){return!(y(a)||z(a)||o(a))}))}function t(a){this.upper=a[0];this.lower=a[1];this.set.apply(this,a.slice(2))}function H(a){var b=a.element,d;return b&&l(b)?(d=b.getAscendant(a.triggers,!0))&&!d.contains(a.editable)&&!d.equals(a.editable)?d:null:null}function ba(a,b,d){m(a,b);m(a,d);a=b.size.bottom;d=d.size.top;return a&&d?0|(a+d)/2:a||d}function q(a,b,d){return b=b[d?"getPrevious":"getNext"](function(e){return e&&e.type==
+CKEDITOR.NODE_TEXT&&!y(e)||l(e)&&!o(e)&&!u(a,e)})}function ca(a){var b=a.doc,d=A('<span contenteditable="false" style="'+I+"position:absolute;border-top:1px dashed "+a.boxColor+'"></span>',b);p(d,{attach:function(){this.wrap.getParent()||this.wrap.appendTo(a.editable,!0);return this},lineChildren:[p(A('<span title="'+a.editor.lang.magicline.title+'" contenteditable="false">↵</span>',b),{base:I+"height:17px;width:17px;"+(a.rtl?"left":"right")+":17px;background:url("+this.path+"images/icon.png) center no-repeat "+
+a.boxColor+";cursor:pointer;"+(n.hc?"font-size: 15px;line-height:14px;border:1px solid #fff;text-align:center;":""),looks:["top:-8px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","2px",1),"top:-17px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","2px 2px 0px 0px",1),"top:-1px;"+CKEDITOR.tools.cssVendorPrefix("border-radius","0px 0px 2px 2px",1)]}),p(A(O,b),{base:P+"left:0px;border-left-color:"+a.boxColor+";",looks:["border-width:8px 0 8px 8px;top:-8px","border-width:8px 0 0 8px;top:-8px","border-width:0 0 8px 8px;top:0px"]}),
+p(A(O,b),{base:P+"right:0px;border-right-color:"+a.boxColor+";",looks:["border-width:8px 8px 8px 0;top:-8px","border-width:8px 8px 0 0;top:-8px","border-width:0 8px 8px 0;top:0px"]})],detach:function(){this.wrap.getParent()&&this.wrap.remove();return this},mouseNear:function(){m(a,this);var e=a.holdDistance,b=this.size;return b&&a.mouse.y>b.top-e&&a.mouse.y<b.bottom+e&&a.mouse.x>b.left-e&&a.mouse.x<b.right+e?!0:!1},place:function(){var e=a.view,b=a.editable,c=a.trigger,d=c.upper,i=c.lower,h=d||i,
+k=h.getParent(),g={};this.trigger=c;d&&m(a,d,!0);i&&m(a,i,!0);m(a,k,!0);a.inInlineMode&&B(a,!0);k.equals(b)?(g.left=e.scroll.x,g.right=-e.scroll.x,g.width=""):(g.left=h.size.left-h.size.margin.left+e.scroll.x-(a.inInlineMode?e.editable.left+e.editable.border.left:0),g.width=h.size.outerWidth+h.size.margin.left+h.size.margin.right+e.scroll.x,g.right="");d&&i?g.top=d.size.margin.bottom===i.size.margin.top?0|d.size.bottom+d.size.margin.bottom/2:d.size.margin.bottom<i.size.margin.top?d.size.bottom+d.size.margin.bottom:
+d.size.bottom+d.size.margin.bottom-i.size.margin.top:d?i||(g.top=d.size.bottom+d.size.margin.bottom):g.top=i.size.top-i.size.margin.top;c.is(w)||g.top>e.scroll.y-15&&g.top<e.scroll.y+5?(g.top=a.inInlineMode?0:e.scroll.y,this.look(w)):c.is(x)||g.top>e.pane.bottom-5&&g.top<e.pane.bottom+15?(g.top=a.inInlineMode?e.editable.height+e.editable.padding.top+e.editable.padding.bottom:e.pane.bottom-1,this.look(x)):(a.inInlineMode&&(g.top-=e.editable.top+e.editable.border.top),this.look(r));a.inInlineMode&&
+(g.top--,g.top+=e.editable.scroll.top,g.left+=e.editable.scroll.left);for(var Q in g)g[Q]=CKEDITOR.tools.cssLength(g[Q]);this.setStyles(g)},look:function(a){if(this.oldLook!=a){for(var d=this.lineChildren.length,c;d--;)(c=this.lineChildren[d]).setAttribute("style",c.base+c.looks[0|a/2]);this.oldLook=a}},wrap:new J("span",a.doc)});for(b=d.lineChildren.length;b--;)d.lineChildren[b].appendTo(d);d.look(r);d.appendTo(d.wrap);d.unselectable();d.lineChildren[0].on("mouseup",function(b){d.detach();K(a,function(d){var c=
+a.line.trigger;d[c.is(C)?"insertBefore":"insertAfter"](c.is(C)?c.lower:c.upper)},!0);a.editor.focus();!n.ie&&a.enterMode!=CKEDITOR.ENTER_BR&&a.hotNode.scrollIntoView();b.data.preventDefault(!0)});d.on("mousedown",function(a){a.data.preventDefault(!0)});a.line=d}function K(a,b,d){var e=new CKEDITOR.dom.range(a.doc),f=a.editor,c;n.ie&&a.enterMode==CKEDITOR.ENTER_BR?c=a.doc.createText(D):(c=new J(a.enterBehavior,a.doc),a.enterMode!=CKEDITOR.ENTER_BR&&a.doc.createText(D).appendTo(c));d&&f.fire("saveSnapshot");
+b(c);e.moveToPosition(c,CKEDITOR.POSITION_AFTER_START);f.getSelection().selectRanges([e]);a.hotNode=c;d&&f.fire("saveSnapshot")}function R(a,b){return{canUndo:!0,modes:{wysiwyg:1},exec:function(){function d(d){var f=n.ie&&9>n.version?" ":D,c=a.hotNode&&a.hotNode.getText()==f&&a.element.equals(a.hotNode)&&a.lastCmdDirection===!!b;K(a,function(f){c&&a.hotNode&&a.hotNode.remove();f[b?"insertAfter":"insertBefore"](d);f.setAttributes({"data-cke-magicline-hot":1,"data-cke-magicline-dir":!!b});a.lastCmdDirection=
+!!b});!n.ie&&a.enterMode!=CKEDITOR.ENTER_BR&&a.hotNode.scrollIntoView();a.line.detach()}return function(e){e=e.getSelection().getStartElement();if((e=e.getAscendant(S,1))&&!e.equals(a.editable)&&!e.contains(a.editable)){a.element=e;var f=q(a,e,!b),c;l(f)&&f.is(a.triggers)&&f.is(da)&&(!q(a,f,!b)||(c=q(a,f,!b))&&l(c)&&c.is(a.triggers))?d(f):(c=H(a,e),l(c)&&(q(a,c,!b)?(e=q(a,c,!b))&&(l(e)&&e.is(a.triggers))&&d(c):d(c)))}}}()}}function u(a,b){if(!b||!(b.type==CKEDITOR.NODE_ELEMENT&&b.$))return!1;var d=
+a.line;return d.wrap.equals(b)||d.wrap.contains(b)}function l(a){return a&&a.type==CKEDITOR.NODE_ELEMENT&&a.$}function o(a){if(!l(a))return!1;var b;if(!(b=T(a)))l(a)?(b={left:1,right:1,center:1},b=!(!b[a.getComputedStyle("float")]&&!b[a.getAttribute("align")])):b=!1;return b}function T(a){return!!{absolute:1,fixed:1,relative:1}[a.getComputedStyle("position")]}function E(a,b){return l(b)?b.is(a.triggers):null}function ea(a,b,d){b=b[d?"getLast":"getFirst"](function(d){return a.isRelevant(d)&&!d.is(fa)});
+if(!b)return!1;m(a,b);return d?b.size.top>a.mouse.y:b.size.bottom<a.mouse.y}function U(a){var b=a.editable,d=a.mouse,e=a.view,f=a.triggerOffset;B(a);var c=d.y>(a.inInlineMode?e.editable.top+e.editable.height/2:Math.min(e.editable.height,e.pane.height)/2),b=b[c?"getLast":"getFirst"](function(a){return!(y(a)||z(a))});if(!b)return null;u(a,b)&&(b=a.line.wrap[c?"getPrevious":"getNext"](function(a){return!(y(a)||z(a))}));if(!l(b)||o(b)||!E(a,b))return null;m(a,b);return!c&&0<=b.size.top&&0<d.y&&d.y<b.size.top+
+f?(a=a.inInlineMode||0===e.scroll.y?w:r,new t([null,b,C,F,a])):c&&b.size.bottom<=e.pane.height&&d.y>b.size.bottom-f&&d.y<e.pane.height?(a=a.inInlineMode||b.size.bottom>e.pane.height-f&&b.size.bottom<e.pane.height?x:r,new t([b,null,V,F,a])):null}function W(a){var b=a.mouse,d=a.view,e=a.triggerOffset,f=H(a);if(!f)return null;m(a,f);var e=Math.min(e,0|f.size.outerHeight/2),c=[],j,i;if(b.y>f.size.top-1&&b.y<f.size.top+e)i=!1;else if(b.y>f.size.bottom-e&&b.y<f.size.bottom+1)i=!0;else return null;if(o(f)||
+ea(a,f,i)||f.getParent().is(X))return null;var h=q(a,f,!i);if(h){if(h&&h.type==CKEDITOR.NODE_TEXT)return null;if(l(h)){if(o(h)||!E(a,h)||h.getParent().is(X))return null;c=[h,f][i?"reverse":"concat"]().concat([L,F])}}else f.equals(a.editable[i?"getLast":"getFirst"](a.isRelevant))?(B(a),i&&b.y>f.size.bottom-e&&b.y<d.pane.height&&f.size.bottom>d.pane.height-e&&f.size.bottom<d.pane.height?j=x:0<b.y&&b.y<f.size.top+e&&(j=w)):j=r,c=[null,f][i?"reverse":"concat"]().concat([i?V:C,F,j,f.equals(a.editable[i?
+"getLast":"getFirst"](a.isRelevant))?i?x:w:r]);return 0 in c?new t(c):null}function M(a,b,d,e){for(var f=function(){var d=n.ie?b.$.currentStyle:a.win.$.getComputedStyle(b.$,"");return n.ie?function(a){return d[CKEDITOR.tools.cssStyleToDomStyle(a)]}:function(a){return d.getPropertyValue(a)}}(),c=b.getDocumentPosition(),j={},i={},h={},k={},g=s.length;g--;)j[s[g]]=parseInt(f("border-"+s[g]+"-width"),10)||0,h[s[g]]=parseInt(f("padding-"+s[g]),10)||0,i[s[g]]=parseInt(f("margin-"+s[g]),10)||0;(!d||e)&&
+G(a,e);k.top=c.y-(d?0:a.view.scroll.y);k.left=c.x-(d?0:a.view.scroll.x);k.outerWidth=b.$.offsetWidth;k.outerHeight=b.$.offsetHeight;k.height=k.outerHeight-(h.top+h.bottom+j.top+j.bottom);k.width=k.outerWidth-(h.left+h.right+j.left+j.right);k.bottom=k.top+k.outerHeight;k.right=k.left+k.outerWidth;a.inInlineMode&&(k.scroll={top:b.$.scrollTop,left:b.$.scrollLeft});return p({border:j,padding:h,margin:i,ignoreScroll:d},k,!0)}function m(a,b,d){if(!l(b))return b.size=null;if(b.size){if(b.size.ignoreScroll==
+d&&b.size.date>new Date-Y)return null}else b.size={};return p(b.size,M(a,b,d),{date:+new Date},!0)}function B(a,b){a.view.editable=M(a,a.editable,b,!0)}function G(a,b){a.view||(a.view={});var d=a.view;if(b||!(d&&d.date>new Date-Y)){var e=a.win,d=e.getScrollPosition(),e=e.getViewPaneSize();p(a.view,{scroll:{x:d.x,y:d.y,width:a.doc.$.documentElement.scrollWidth-e.width,height:a.doc.$.documentElement.scrollHeight-e.height},pane:{width:e.width,height:e.height,bottom:e.height+d.y},date:+new Date},!0)}}
+function ga(a,b,d,e){for(var f=e,c=e,j=0,i=!1,h=!1,k=a.view.pane.height,g=a.mouse;g.y+j<k&&0<g.y-j;){i||(i=b(f,e));h||(h=b(c,e));!i&&0<g.y-j&&(f=d(a,{x:g.x,y:g.y-j}));!h&&g.y+j<k&&(c=d(a,{x:g.x,y:g.y+j}));if(i&&h)break;j+=2}return new t([f,c,null,null])}CKEDITOR.plugins.add("magicline",{init:function(a){var b={};b[CKEDITOR.ENTER_BR]="br";b[CKEDITOR.ENTER_P]="p";b[CKEDITOR.ENTER_DIV]="div";var d=a.config,e=d.magicline_triggerOffset||30,f=d.enterMode,c={editor:a,enterBehavior:b[f],enterMode:f,triggerOffset:e,
+holdDistance:0|e*(d.magicline_holdDistance||0.5),boxColor:d.magicline_color||"#ff0000",rtl:"rtl"==d.contentsLangDirection,triggers:d.magicline_everywhere?S:{table:1,hr:1,div:1,ul:1,ol:1,dl:1,form:1,blockquote:1}},j,i,h;c.isRelevant=function(a){return l(a)&&!u(c,a)&&!o(a)};a.on("contentDom",function(){var b=a.editable(),e=a.document,f=a.window;p(c,{editable:b,inInlineMode:b.isInline(),doc:e,win:f},!0);c.boundary=c.inInlineMode?c.editable:c.doc.getDocumentElement();b.is(v.$inline)||(c.inInlineMode&&
+!T(b)&&b.setStyles({position:"relative",top:null,left:null}),ca.call(this,c),G(c),b.attachListener(a,"beforeUndoImage",function(){c.line.detach()}),b.attachListener(a,"beforeGetData",function(){c.line.wrap.getParent()&&(c.line.detach(),a.once("getData",function(){c.line.attach()},null,null,1E3))},null,null,0),b.attachListener(c.inInlineMode?e:e.getWindow().getFrame(),"mouseout",function(b){if("wysiwyg"==a.mode)if(c.inInlineMode){var d=b.data.$.clientX,b=b.data.$.clientY;G(c);B(c,!0);var e=c.view.editable,
+f=c.view.scroll;if(!(d>e.left-f.x&&d<e.right-f.x)||!(b>e.top-f.y&&b<e.bottom-f.y))clearTimeout(h),h=null,c.line.detach()}else clearTimeout(h),h=null,c.line.detach()}),b.attachListener(b,"keyup",function(){c.hiddenMode=0}),b.attachListener(b,"keydown",function(b){if("wysiwyg"==a.mode)switch(b=b.data.getKeystroke(),a.getSelection().getStartElement(),b){case 2228240:case 16:c.hiddenMode=1,c.line.detach()}}),b.attachListener(c.inInlineMode?b:e,"mousemove",function(b){i=!0;if(!("wysiwyg"!=a.mode||h)){var d=
+{x:b.data.$.clientX,y:b.data.$.clientY};h=setTimeout(function(){c.mouse=d;h=c.trigger=null;G(c);if(i&&!c.hiddenMode&&a.focusManager.hasFocus&&!c.line.mouseNear()&&(c.element=Z(c,!0)))(c.trigger=U(c)||W(c)||$(c))?c.line.attach().place():(c.trigger=null,c.line.detach()),i=!1},30)}}),b.attachListener(f,"scroll",function(){"wysiwyg"==a.mode&&(c.line.detach(),n.webkit&&(c.hiddenMode=1,clearTimeout(j),j=setTimeout(function(){c.hiddenMode=0},50)))}),b.attachListener(f,"mousedown",function(){"wysiwyg"==a.mode&&
+(c.line.detach(),c.hiddenMode=1)}),b.attachListener(f,"mouseup",function(){c.hiddenMode=0}),a.addCommand("accessPreviousSpace",R(c)),a.addCommand("accessNextSpace",R(c,!0)),a.setKeystroke([[d.magicline_keystrokePrevious,"accessPreviousSpace"],[d.magicline_keystrokeNext,"accessNextSpace"]]),a.on("loadSnapshot",function(){for(var a=e.getElementsByTag(c.enterBehavior),b,d=a.count();d--;)if((b=a.getItem(d)).hasAttribute("data-cke-magicline-hot")){c.hotNode=b;c.lastCmdDirection="true"===b.getAttribute("data-cke-magicline-dir")?
+!0:!1;break}}),this.backdoor={accessFocusSpace:K,boxTrigger:t,isLine:u,getAscendantTrigger:H,getNonEmptyNeighbour:q,getSize:M,that:c,triggerEdge:W,triggerEditable:U,triggerExpand:$})},this)}});var p=CKEDITOR.tools.extend,J=CKEDITOR.dom.element,A=J.createFromHtml,n=CKEDITOR.env,v=CKEDITOR.dtd,C=128,V=64,L=32,F=16,aa=8,w=4,x=2,r=1,D="Â ",X=v.$listItem,fa=v.$tableContent,da=p({},v.$nonEditable,v.$empty),S=v.$block,Y=100,I="width:0px;height:0px;padding:0px;margin:0px;display:block;z-index:9999;color:#fff;position:absolute;font-size: 0px;line-height:0px;",
+P=I+"border-color:transparent;display:block;border-style:solid;",O="<span>"+D+"</span>";t.prototype={set:function(a,b,d){this.properties=a+b+(d||r);return this},is:function(a){return(this.properties&a)==a}};var Z=function(){return function(a,b,d){if(!a.mouse)return null;var e=a.doc,f=a.line.wrap,d=d||a.mouse,c=new CKEDITOR.dom.element(e.$.elementFromPoint(d.x,d.y));b&&u(a,c)&&(f.hide(),c=new CKEDITOR.dom.element(e.$.elementFromPoint(d.x,d.y)),f.show());return!c||!(c.type==CKEDITOR.NODE_ELEMENT&&c.$)||
+n.ie&&9>n.version&&!a.boundary.equals(c)&&!a.boundary.contains(c)?null:c}}(),y=CKEDITOR.dom.walker.whitespaces(),z=CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_COMMENT),$=function(){function a(a){var e=a.element,f,c,j;if(!l(e)||e.contains(a.editable))return null;j=ga(a,function(a,b){return!b.equals(a)},function(a,b){return Z(a,!0,b)},e);f=j.upper;c=j.lower;if(N(a,f,c))return j.set(L,aa);if(f&&e.contains(f))for(;!f.getParent().equals(e);)f=f.getParent();else f=e.getFirst(function(c){return b(a,c)});
+if(c&&e.contains(c))for(;!c.getParent().equals(e);)c=c.getParent();else c=e.getLast(function(c){return b(a,c)});if(!f||!c)return null;m(a,f);m(a,c);if(!(a.mouse.y>f.size.top&&a.mouse.y<c.size.bottom))return null;for(var e=Number.MAX_VALUE,i,h,k,g;c&&!c.equals(f)&&(h=f.getNext(a.isRelevant));)i=Math.abs(ba(a,f,h)-a.mouse.y),i<e&&(e=i,k=f,g=h),f=h,m(a,f);if(!k||!g||!(a.mouse.y>k.size.top&&a.mouse.y<g.size.bottom))return null;j.upper=k;j.lower=g;return j.set(L,aa)}function b(a,b){return!(b&&b.type==
+CKEDITOR.NODE_TEXT||z(b)||o(b)||u(a,b)||b.type==CKEDITOR.NODE_ELEMENT&&b.$&&b.is("br"))}return function(b){var e=a(b),f;if(f=e){f=e.upper;var c=e.lower;f=!f||!c||o(c)||o(f)||c.equals(f)||f.equals(c)||c.contains(f)||f.contains(c)?!1:E(b,f)&&E(b,c)&&N(b,f,c)?!0:!1}return f?e:null}}(),s=["top","left","right","bottom"]})();CKEDITOR.config.magicline_keystrokePrevious=CKEDITOR.CTRL+CKEDITOR.ALT+219;CKEDITOR.config.magicline_keystrokeNext=CKEDITOR.CTRL+CKEDITOR.ALT+221;(function(){function l(a){if(!a||a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())return[];for(var e=[],f=["style","className"],b=0;b<f.length;b++){var d=a.$.elements.namedItem(f[b]);d&&(d=new CKEDITOR.dom.element(d),e.push([d,d.nextSibling]),d.remove())}return e}function o(a,e){if(a&&!(a.type!=CKEDITOR.NODE_ELEMENT||"form"!=a.getName())&&0<e.length)for(var f=e.length-1;0<=f;f--){var b=e[f][0],d=e[f][1];d?b.insertBefore(d):b.appendTo(a)}}function n(a,e){var f=l(a),b={},d=a.$;e||(b["class"]=d.className||
+"",d.className="");b.inline=d.style.cssText||"";e||(d.style.cssText="position: static; overflow: visible");o(f);return b}function p(a,e){var f=l(a),b=a.$;"class"in e&&(b.className=e["class"]);"inline"in e&&(b.style.cssText=e.inline);o(f)}function q(a){var e=CKEDITOR.instances,f;for(f in e){var b=e[f];"wysiwyg"==b.mode&&!b.readOnly&&(b=b.document.getBody(),b.setAttribute("contentEditable",!1),b.setAttribute("contentEditable",!0))}a.editable().hasFocus&&(a.toolbox.focus(),a.focus())}CKEDITOR.plugins.add("maximize",
+{init:function(a){function e(){var b=d.getViewPaneSize();a.resize(b.width,b.height,null,!0)}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var f=a.lang,b=CKEDITOR.document,d=b.getWindow(),j,k,m,l=CKEDITOR.TRISTATE_OFF;a.addCommand("maximize",{modes:{wysiwyg:!CKEDITOR.env.iOS,source:!CKEDITOR.env.iOS},readOnly:1,editorFocus:!1,exec:function(){var h=a.container.getChild(1),g=a.ui.space("contents");if("wysiwyg"==a.mode){var c=a.getSelection();j=c&&c.getRanges();k=d.getScrollPosition()}else{var i=a.editable().$;
+j=!CKEDITOR.env.ie&&[i.selectionStart,i.selectionEnd];k=[i.scrollLeft,i.scrollTop]}if(this.state==CKEDITOR.TRISTATE_OFF){d.on("resize",e);m=d.getScrollPosition();for(c=a.container;c=c.getParent();)c.setCustomData("maximize_saved_styles",n(c)),c.setStyle("z-index",a.config.baseFloatZIndex-5);g.setCustomData("maximize_saved_styles",n(g,!0));h.setCustomData("maximize_saved_styles",n(h,!0));g={overflow:CKEDITOR.env.webkit?"":"hidden",width:0,height:0};b.getDocumentElement().setStyles(g);!CKEDITOR.env.gecko&&
+b.getDocumentElement().setStyle("position","fixed");(!CKEDITOR.env.gecko||!CKEDITOR.env.quirks)&&b.getBody().setStyles(g);CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(0,0)},0):d.$.scrollTo(0,0);h.setStyle("position",CKEDITOR.env.gecko&&CKEDITOR.env.quirks?"fixed":"absolute");h.$.offsetLeft;h.setStyles({"z-index":a.config.baseFloatZIndex-5,left:"0px",top:"0px"});h.addClass("cke_maximized");e();g=h.getDocumentPosition();h.setStyles({left:-1*g.x+"px",top:-1*g.y+"px"});CKEDITOR.env.gecko&&q(a)}else if(this.state==
+CKEDITOR.TRISTATE_ON){d.removeListener("resize",e);g=[g,h];for(c=0;c<g.length;c++)p(g[c],g[c].getCustomData("maximize_saved_styles")),g[c].removeCustomData("maximize_saved_styles");for(c=a.container;c=c.getParent();)p(c,c.getCustomData("maximize_saved_styles")),c.removeCustomData("maximize_saved_styles");CKEDITOR.env.ie?setTimeout(function(){d.$.scrollTo(m.x,m.y)},0):d.$.scrollTo(m.x,m.y);h.removeClass("cke_maximized");CKEDITOR.env.webkit&&(h.setStyle("display","inline"),setTimeout(function(){h.setStyle("display",
+"block")},0));a.fire("resize")}this.toggleState();if(c=this.uiItems[0])g=this.state==CKEDITOR.TRISTATE_OFF?f.maximize.maximize:f.maximize.minimize,c=CKEDITOR.document.getById(c._.id),c.getChild(1).setHtml(g),c.setAttribute("title",g),c.setAttribute("href",'javascript:void("'+g+'");');"wysiwyg"==a.mode?j?(CKEDITOR.env.gecko&&q(a),a.getSelection().selectRanges(j),(i=a.getSelection().getStartElement())&&i.scrollIntoView(!0)):d.$.scrollTo(k.x,k.y):(j&&(i.selectionStart=j[0],i.selectionEnd=j[1]),i.scrollLeft=
+k[0],i.scrollTop=k[1]);j=k=null;l=this.state;a.fire("maximize",this.state)},canUndo:!1});a.ui.addButton&&a.ui.addButton("Maximize",{label:f.maximize.maximize,command:"maximize",toolbar:"tools,10"});a.on("mode",function(){var b=a.getCommand("maximize");b.setState(b.state==CKEDITOR.TRISTATE_DISABLED?CKEDITOR.TRISTATE_DISABLED:l)},null,null,100)}}})})();CKEDITOR.plugins.add("newpage",{init:function(a){a.addCommand("newpage",{modes:{wysiwyg:1,source:1},exec:function(b){var a=this;b.setData(b.config.newpage_html||"",function(){b.focus();setTimeout(function(){b.fire("afterCommandExec",{name:"newpage",command:a});b.selectionChange()},200)})},async:!0});a.ui.addButton&&a.ui.addButton("NewPage",{label:a.lang.newpage.toolbar,command:"newpage",toolbar:"document,20"})}});CKEDITOR.plugins.add("pagebreak",{requires:"fakeobjects",onLoad:function(){var a=["{","background: url("+CKEDITOR.getUrl(this.path+"images/pagebreak.gif")+") no-repeat center center;","clear: both;width:100%; _width:99.
9%;border-top: #999999 1px dotted;border-bottom: #999999 1px dotted;padding:0;height: 5px;cursor: default;}"].join("").replace(/;/g," !important;");CKEDITOR.addCss("div.cke_pagebreak"+a)},init:function(a){a.blockless||(a.addCommand("pagebreak",CKEDITOR.plugins.pagebreakCmd),a.ui.addButton&&
+a.ui.addButton("PageBreak",{label:a.lang.pagebreak.toolbar,command:"pagebreak",toolbar:"insert,70"}),CKEDITOR.env.opera&&a.on("contentDom",function(){a.document.on("click",function(b){b=b.data.getTarget();b.is("div")&&b.hasClass("cke_pagebreak")&&a.getSelection().selectElement(b)})}))},afterInit:function(a){var b=a.lang.pagebreak.alt,c=a.dataProcessor,a=c&&c.dataFilter;(c=c&&c.htmlFilter)&&c.addRules({attributes:{"class":function(a,b){var c=a.replace("cke_pagebreak","");if(c!=a){var d=CKEDITOR.htmlParser.fragment.fromHtml('<span style="display: none;"> </span>');
+b.children.length=0;b.add(d);d=b.attributes;delete d["aria-label"];delete d.contenteditable;delete d.title}return c}}},5);a&&a.addRules({elements:{div:function(a){var c=a.attributes,e=c&&c.style,d=e&&1==a.children.length&&a.children[0];if((d=d&&"span"==d.name&&d.attributes.style)&&/page-break-after\s*:\s*always/i.test(e)&&/display\s*:\s*none/i.test(d))c.contenteditable="false",c["class"]="cke_pagebreak",c["data-cke-display-name"]="pagebreak",c["aria-label"]=b,c.title=b,a.children.length=0}}})}});
+CKEDITOR.plugins.pagebreakCmd={exec:function(a){var b=a.lang.pagebreak.alt,b=CKEDITOR.dom.element.createFromHtml('<div style="page-break-after: always;"contenteditable="false" title="'+b+'" aria-label="'+b+'" data-cke-display-name="pagebreak" class="cke_pagebreak"></div>',a.document);a.insertElement(b)},context:"div"};(function(){var c={canUndo:!1,async:!0,exec:function(a){a.getClipboardData({title:a.lang.pastetext.title},function(b){b&&a.fire("paste",{type:"text",dataValue:b.dataValue});a.fire("afterCommandExec",{name:"pastetext",command:c,returnValue:!!b})})}};CKEDITOR.plugins.add("pastetext",{requires:"clipboard",init:function(a){a.addCommand("pastetext",c);a.ui.addButton&&a.ui.addButton("PasteText",{label:a.lang.pastetext.button,command:"pastetext",toolbar:"clipboard,40"});if(a.config.forcePasteAsPlainText)a.on("beforePaste",
+function(a){"html"!=a.data.type&&(a.data.type="text")});a.on("pasteState",function(b){a.getCommand("pastetext").setState(b.data)})}})})();(function(){function h(a,d,f){var b=CKEDITOR.cleanWord;b?f():(a=CKEDITOR.getUrl(a.config.pasteFromWordCleanupFile||d+"filter/default.js"),CKEDITOR.scriptLoader.load(a,f,null,!0));return!b}function i(a){a.data.type="html"}CKEDITOR.plugins.add("pastefromword",{requires:"clipboard",init:function(a){var d=0,f=this.path;a.addCommand("pastefromword",{canUndo:!1,async:!0,exec:function(a){var e=this;d=1;a.once("beforePaste",i);a.getClipboardData({title:a.lang.pastefromword.title},function(c){c&&a.fire("paste",
+{type:"html",dataValue:c.dataValue});a.fire("afterCommandExec",{name:"pastefromword",command:e,returnValue:!!c})})}});a.ui.addButton&&a.ui.addButton("PasteFromWord",{label:a.lang.pastefromword.toolbar,command:"pastefromword",toolbar:"clipboard,50"});a.on("pasteState",function(b){a.getCommand("pastefromword").setState(b.data)});a.on("paste",function(b){var e=b.data,c=e.dataValue;if(c&&(d||/(class=\"?Mso|style=\"[^\"]*\bmso\-|w:WordDocument)/.test(c))){var g=h(a,f,function(){if(g)a.fire("paste",e);
+else if(!a.config.pasteFromWordPromptCleanup||d||confirm(a.lang.pastefromword.confirmCleanup))e.dataValue=CKEDITOR.cleanWord(c,a)});g&&b.cancel()}},null,null,3)}})})();(function(){var g,i={modes:{wysiwyg:1,source:1},canUndo:!1,readOnly:1,exec:function(a){var b=a.config,e=b.baseHref?'<base href="'+b.baseHref+'"/>':"",h=CKEDITOR.env.isCustomDomain();if(b.fullPage)a=a.getData().replace(/<head>/,"$&"+e).replace(/[^>]*(?=<\/title>)/,"$& — "+a.lang.preview.preview);else{var b="<body ",d=a.document&&a.document.getBody();d&&(d.getAttribute("id")&&(b+='id="'+d.getAttribute("id")+'" '),d.getAttribute("class")&&(b+='class="'+d.getAttribute("class")+'" '));a=a.config.docType+
+'<html dir="'+a.config.contentsLangDirection+'"><head>'+e+"<title>"+a.lang.preview.preview+"</title>"+CKEDITOR.tools.buildStyleHtml(a.config.contentsCss)+"</head>"+(b+">")+a.getData()+"</body></html>"}e=640;b=420;d=80;try{var c=window.screen,e=Math.round(0.8*c.width),b=Math.round(0.7*c.height),d=Math.round(0.1*c.width)}catch(i){}c="";h&&(window._cke_htmlToLoad=a,c='javascript:void( (function(){document.open();document.domain="'+document.domain+'";document.write( window.opener._cke_htmlToLoad );document.close();window.opener._cke_htmlToLoad = null;})() )');
+CKEDITOR.env.gecko&&(window._cke_htmlToLoad=a,c=g+"preview.html");c=window.open(c,null,"toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width="+e+",height="+b+",left="+d);if(!h&&!CKEDITOR.env.gecko){var f=c.document;f.open();f.write(a);f.close();CKEDITOR.env.webkit&&setTimeout(function(){f.body.innerHTML=f.body.innerHTML+""},0)}}};CKEDITOR.plugins.add("preview",{init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(g=this.path,a.addCommand("preview",i),a.ui.addButton&&
+a.ui.addButton("Preview",{label:a.lang.preview.preview,command:"preview",toolbar:"document,40"}))}})})();CKEDITOR.plugins.add("print",{init:function(a){a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE&&(a.addCommand("print",CKEDITOR.plugins.print),a.ui.addButton&&a.ui.addButton("Print",{label:a.lang.print.toolbar,command:"print",toolbar:"document,50"}))}});CKEDITOR.plugins.print={exec:function(a){CKEDITOR.env.opera||(CKEDITOR.env.gecko?a.window.$.print():a.document.$.execCommand("Print"))},canUndo:!1,readOnly:1,modes:{wysiwyg:!CKEDITOR.env.opera}};CKEDITOR.plugins.add("removeformat",{init:function(a){a.addCommand("removeFormat",CKEDITOR.plugins.removeformat.commands.removeformat);a.ui.addButton&&a.ui.addButton("RemoveFormat",{label:a.lang.removeformat.toolbar,command:"removeFormat",toolbar:"cleanup,10"})}});
+CKEDITOR.plugins.removeformat={commands:{removeformat:{exec:function(a){for(var h=a._.removeFormatRegex||(a._.removeFormatRegex=RegExp("^(?:"+a.config.removeFormatTags.replace(/,/g,"|")+")$","i")),e=a._.removeAttributes||(a._.removeAttributes=a.config.removeFormatAttributes.split(",")),f=CKEDITOR.plugins.removeformat.filter,k=a.getSelection().getRanges(1),l=k.createIterator(),c;c=l.getNextRange();){c.collapsed||c.enlarge(CKEDITOR.ENLARGE_ELEMENT);var i=c.createBookmark(),b=i.startNode,j=i.endNode,
+d=function(b){for(var c=a.elementPath(b),e=c.elements,d=1,g;(g=e[d])&&!g.equals(c.block)&&!g.equals(c.blockLimit);d++)h.test(g.getName())&&f(a,g)&&b.breakParent(g)};d(b);if(j){d(j);for(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT);b&&!b.equals(j);)d=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT),!("img"==b.getName()&&b.data("cke-realelement"))&&f(a,b)&&(h.test(b.getName())?b.remove(1):(b.removeAttributes(e),a.fire("removeFormatCleanup",b))),b=d}c.moveToBookmark(i)}a.forceNextSelectionCheck();a.getSelection().selectRanges(k)}}},
+filter:function(a,h){for(var e=a._.removeFormatFilters||[],f=0;f<e.length;f++)if(!1===e[f](h))return!1;return!0}};CKEDITOR.editor.prototype.addRemoveFormatFilter=function(a){this._.removeFormatFilters||(this._.removeFormatFilters=[]);this._.removeFormatFilters.push(a)};CKEDITOR.config.removeFormatTags="b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var";CKEDITOR.config.removeFormatAttributes="class,style,lang,width,height,align,hspace,valign";(function(){var b={modes:{wysiwyg:1,source:1},readOnly:1,exec:function(a){if(a=a.element.$.form)try{a.submit()}catch(b){a.submit.click&&a.submit.click()}}};CKEDITOR.plugins.add("save",{init:function(a){a.elementMode==CKEDITOR.ELEMENT_MODE_REPLACE&&(a.addCommand("save",b).modes={wysiwyg:!!a.element.$.form},a.ui.addButton&&a.ui.addButton("Save",{label:a.lang.save.toolbar,command:"save",toolbar:"document,10"}))}})})();(function(){CKEDITOR.plugins.add("selectall",{init:function(b){b.addCommand("selectAll",
{modes:{wysiwyg:1,source:1},exec:function(a){var b=a.editable();if(b.is("textarea"))a=b.$,CKEDITOR.env.ie?a.createTextRange().execCommand("SelectAll"):(a.selectionStart=0,a.selectionEnd=a.value.length),a.focus();else{if(b.is("body"))a.document.$.execCommand("SelectAll",!1,null);else{var c=a.createRange();c.selectNodeContents(b);c.select()}a.forceNextSelectionCheck();a.selectionChange()}},canUndo:!1});b.ui.addButton&&
+b.ui.addButton("SelectAll",{label:b.lang.selectall.toolbar,command:"selectAll",toolbar:"selection,10"})}})})();(function(){var d={readOnly:1,preserveState:!0,editorFocus:!1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON&&(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||a.focusManager.hasFocus)?"attachClass":"removeClass";a.editable()[b]("cke_show_blocks")}}};CKEDITOR.plugins.add("showblocks",{onLoad:function(){function a(a){return".%1.%2 p,.%1.%2 div,.%1.%2 pre,.%1.%2 address,.%1.%2 blockquote,.%1.%2 h1,.%1.%2 h2,.%1.%2 h3,.%1.%2 h4,.%1.%2 h5,.%1.%2 h6{background-position: top %3;padding-%3: 8px;}".replace(/%1/g,
+"cke_show_blocks").replace(/%2/g,"cke_contents_"+a).replace(/%3/g,"rtl"==a?"right":"left")}CKEDITOR.addCss(".%2 p,.%2 div,.%2 pre,.%2 address,.%2 blockquote,.%2 h1,.%2 h2,.%2 h3,.%2 h4,.%2 h5,.%2 h6{background-repeat: no-repeat;border: 1px dotted gray;padding-top: 8px;}.%2 p{%1p.png);}.%2 div{%1div.png);}.%2 pre{%1pre.png);}.%2 address{%1address.png);}.%2 blockquote{%1blockquote.png);}.%2 h1{%1h1.png);}.%2 h2{%1h2.png);}.%2 h3{%1h3.png);}.%2 h4{%1h4.png);}.%2 h5{%1h5.png);}.%2 h6{%1h6.png);}".replace(/%1/g,
+"background-image: url("+CKEDITOR.getUrl(this.path)+"images/block_").replace(/%2/g,"cke_show_blocks ")+a("ltr")+a("rtl"))},init:function(a){if(!a.blockless){var b=a.addCommand("showblocks",d);b.canUndo=!1;a.config.startupOutlineBlocks&&b.setState(CKEDITOR.TRISTATE_ON);a.ui.addButton&&a.ui.addButton("ShowBlocks",{label:a.lang.showblocks.toolbar,command:"showblocks",toolbar:"tools,20"});a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});if(a.elementMode==CKEDITOR.ELEMENT_MODE_INLINE){var c=
+function(){b.refresh(a)};a.on("focus",c);a.on("blur",c)}a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)})}}})})();(function(){var f={preserveState:!0,editorFocus:!1,readOnly:1,exec:function(a){this.toggleState();this.refresh(a)},refresh:function(a){if(a.document){var b=this.state==CKEDITOR.TRISTATE_ON?"attachClass":"removeClass";a.editable()[b]("cke_show_borders")}}};CKEDITOR.plugins.add("showborders",{modes:{wysiwyg:1},onLoad:function(){var a;a=(CKEDITOR.env.ie6Compat?[".%1 table.%2,",".%1 table.%2 td, .%1 table.%2 th","{","border : #d3d3d3 1px dotted","}"]:".%1 table.%2,;.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,;.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,;.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,;.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th;{;border : #d3d3d3 1px dotted;}".split(";")).join("").replace(/%2/g,
+"cke_show_border").replace(/%1/g,"cke_show_borders ");CKEDITOR.addCss(a)},init:function(a){var b=a.addCommand("showborders",f);b.canUndo=!1;!1!==a.config.startupShowBorders&&b.setState(CKEDITOR.TRISTATE_ON);a.on("mode",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)},null,null,100);a.on("contentDom",function(){b.state!=CKEDITOR.TRISTATE_DISABLED&&b.refresh(a)});a.on("removeFormatCleanup",function(d){d=d.data;a.getCommand("showborders").state==CKEDITOR.TRISTATE_ON&&(d.is("table")&&(!d.hasAttribute("border")||
+0>=parseInt(d.getAttribute("border"),10)))&&d.addClass("cke_show_border")})},afterInit:function(a){var b=a.dataProcessor,a=b&&b.dataFilter,b=b&&b.htmlFilter;a&&a.addRules({elements:{table:function(a){var a=a.attributes,b=a["class"],c=parseInt(a.border,10);if((!c||0>=c)&&(!b||-1==b.indexOf("cke_show_border")))a["class"]=(b||"")+" cke_show_border"}}});b&&b.addRules({elements:{table:function(a){var a=a.attributes,b=a["class"];b&&(a["class"]=b.replace("cke_show_border","").replace(/\s{2}/," ").replace(/^\s+|\s+$/,
+""))}}})}});CKEDITOR.on("dialogDefinition",function(a){var b=a.data.name;if("table"==b||"tableProperties"==b)if(a=a.data.definition,b=a.getContents("info").get("txtBorder"),b.commit=CKEDITOR.tools.override(b.commit,function(a){return function(b,c){a.apply(this,arguments);var e=parseInt(this.getValue(),10);c[!e||0>=e?"addClass":"removeClass"]("cke_show_border")}}),a=(a=a.getContents("advanced"))&&a.get("advCSSClasses"))a.setup=CKEDITOR.tools.override(a.setup,function(a){return function(){a.apply(this,
+arguments);this.setValue(this.getValue().replace(/cke_show_border/,""))}}),a.commit=CKEDITOR.tools.override(a.commit,function(a){return function(b,c){a.apply(this,arguments);parseInt(c.getAttribute("border"),10)||c.addClass("cke_show_border")}})})})();(function(){CKEDITOR.plugins.add("sourcearea",{init:function(a){function d(){this.hide();this.setStyle("height",this.getParent().$.clientHeight+"px");this.setStyle("width",this.getParent().$.clientWidth+"px");this.show()}if(a.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE){var e=CKEDITOR.plugins.sourcearea;a.addMode("source",function(e){var b=a.ui.space("contents").getDocument().createElement("textarea");b.setStyles(CKEDITOR.tools.extend({width:CKEDITOR.env.ie7Compat?"99%":"100%",height:"100%",resize:"none",
+outline:"none","text-align":"left"},CKEDITOR.tools.cssVendorPrefix("tab-size",a.config.sourceAreaTabSize||4)));b.addClass("cke_source cke_reset cke_enable_context_menu");a.ui.space("contents").append(b);b=a.editable(new c(a,b));b.setData(a.getData(1));CKEDITOR.env.ie&&(b.attachListener(a,"resize",d,b),b.attachListener(CKEDITOR.document.getWindow(),"resize",d,b),CKEDITOR.tools.setTimeout(d,0,b));a.fire("ariaWidget",this);e()});a.addCommand("source",e.commands.source);a.ui.addButton&&a.ui.addButton("Source",
+{label:a.lang.sourcearea.toolbar,command:"source",toolbar:"mode,10"});a.on("mode",function(){a.getCommand("source").setState("source"==a.mode?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)})}}});var c=CKEDITOR.tools.createClass({base:CKEDITOR.editable,proto:{setData:function(a){this.setValue(a);this.editor.fire("dataReady")},getData:function(){return this.getValue()},insertHtml:function(){},insertElement:function(){},insertText:function(){},setReadOnly:function(a){this[(a?"set":"remove")+"Attribute"]("readOnly",
+"readonly")},detach:function(){c.baseProto.detach.call(this);this.clearCustomData();this.remove()}}})})();CKEDITOR.plugins.sourcearea={commands:{source:{modes:{wysiwyg:1,source:1},editorFocus:!1,readOnly:1,exec:function(c){"wysiwyg"==c.mode&&c.fire("saveSnapshot");c.getCommand("source").setState(CKEDITOR.TRISTATE_DISABLED);c.setMode("source"==c.mode?"wysiwyg":"source")},canUndo:!1}}};CKEDITOR.plugins.add("specialchar",{availableLangs:{ca:1,cs:1,cy:1,de:1,en:1,eo:1,et:1,fa:1,fi:1,fr:1,he:1,hr:1,it:1,ku:1,lv:1,nb:1,nl:1,no:1,"pt-br":1,sk:1,sv:1,tr:1,ug:1,"zh-cn":1},requires:"dialog",init:function(a){var c=this;CKEDITOR.dialog.add("specialchar",this.path+"dialogs/specialchar.js");a.addCommand("specialchar",{exec:function(){var b=a.langCode,b=c.availableLangs[b]?b:c.availableLangs[b.replace(/-.*/,"")]?b.replace(/-.*/,""):"en";CKEDITOR.scriptLoader.load(CKEDITOR.getUrl(c.path+"dialogs/lang/"+
+b+".js"),function(){CKEDITOR.tools.extend(a.lang.specialchar,c.langEntries[b]);a.openDialog("specialchar")})},modes:{wysiwyg:1},canUndo:!1});a.ui.addButton&&a.ui.addButton("SpecialChar",{label:a.lang.specialchar.toolbar,command:"specialchar",toolbar:"insert,50"})}});CKEDITOR.config.specialChars="! " # $ % & ' ( ) * + - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ € ‘ ’ “ ” – — ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù &Ua
cute; Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Œ œ Ŵ Ŷ ŵ ŷ ‚ ‛ „ … ™ ► • → ⇒ ⇔ ♦ ≈".split(" ");CKEDITOR.plugins.add("menubutton",{requires:"button,menu",onLoad:function(){var d=function(a){var b=this._;if(b.state!==CKEDITOR.TRISTATE_DISABLED){b.previousState=b.state;var c=b.menu;c||(c=b.menu=new CKEDITOR.menu(a,{panel:{className:"cke_menu_panel",attributes:{"aria-label":a.lang.common.options}}}),c.onHide=CKEDITOR.tools.bind(function(){this.setState(this.modes&&this.modes[a.mode]?b.previousState:CKEDITOR.TRISTATE_DISABLED)},this),this.onMenu&&c.addListener(this.onMenu));b.on?c.hide():(this.setState(CKEDITOR.TRISTATE_ON)
,
+setTimeout(function(){c.show(CKEDITOR.document.getById(b.id),4)},0))}};CKEDITOR.ui.menuButton=CKEDITOR.tools.createClass({base:CKEDITOR.ui.button,$:function(a){delete a.panel;this.base(a);this.hasArrow=!0;this.click=d},statics:{handler:{create:function(a){return new CKEDITOR.ui.menuButton(a)}}}})},beforeInit:function(d){d.ui.addHandler(CKEDITOR.UI_MENUBUTTON,CKEDITOR.ui.menuButton.handler)}});CKEDITOR.UI_MENUBUTTON="menubutton";(function(){function k(a,c){var b=0,d;for(d in c)if(c[d]==a){b=1;break}return b}var i="",r=function(){function a(){b.once("focus",f);b.once("blur",c)}function c(b){var b=b.editor,c=d.getScayt(b),f=b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE;c&&(d.setPaused(b,!c.disabled),d.setControlId(b,c.id),c.destroy(!0),delete d.instances[b.name],f&&a())}var b=this,f=function(){if(!("undefined"!=typeof d.instances[b.name]||null!=d.instances[b.name])){var a=b.config,c={};c.srcNodeRef="BODY"==b.editable().$.nodeName?
+b.document.getWindow().$.frameElement:b.editable().$;c.assocApp="CKEDITOR."+CKEDITOR.version+"@"+CKEDITOR.revision;c.customerid=a.scayt_customerid||"1:WvF0D4-UtPqN1-43nkD4-NKvUm2-daQqk3-LmNiI-z7Ysb4-mwry24-T8YrS3-Q2tpq2";c.customDictionaryIds=a.scayt_customDictionaryIds||"";c.userDictionaryName=a.scayt_userDictionaryName||"";c.sLang=a.scayt_sLang||"en_US";c.onLoad=function(){CKEDITOR.env.ie&&8>CKEDITOR.env.version||this.addStyle(this.selectorCss(),"padding-bottom: 2px !important;");b.editable().hasFocus&&
+!d.isControlRestored(b)&&this.focus()};c.onBeforeChange=function(){d.getScayt(b)&&!b.checkDirty()&&setTimeout(function(){b.resetDirty()},0)};a=window.scayt_custom_params;if("object"==typeof a)for(var f in a)c[f]=a[f];d.getControlId(b)&&(c.id=d.getControlId(b));var o=new window.scayt(c);o.afterMarkupRemove.push(function(a){(new CKEDITOR.dom.element(a,o.document)).mergeSiblings()});if(c=d.instances[b.name])o.sLang=c.sLang,o.option(c.option()),o.paused=c.paused;d.instances[b.name]=o;try{o.setDisabled(!1===
+d.isPaused(b))}catch(e){}b.fire("showScaytState")}};b.elementMode==CKEDITOR.ELEMENT_MODE_INLINE?a():b.on("contentDom",f);b.on("contentDomUnload",function(){for(var a=CKEDITOR.document.getElementsByTag("script"),b=/^dojoIoScript(\d+)$/i,c=/^https?:\/\/svc\.webspellchecker\.net\/spellcheck\/script\/ssrv\.cgi/i,d=0;d<a.count();d++){var f=a.getItem(d),e=f.getId(),h=f.getAttribute("src");e&&(h&&e.match(b)&&h.match(c))&&f.remove()}});b.on("beforeCommandExec",function(a){"source"==a.data.name&&"source"==
+b.mode&&d.markControlRestore(b)});b.on("afterCommandExec",function(a){d.isScaytEnabled(b)&&"wysiwyg"==b.mode&&("undo"==a.data.name||"redo"==a.data.name)&&window.setTimeout(function(){d.getScayt(b).refresh()},10)});b.on("destroy",c);b.on("setData",c);b.on("insertElement",function(){var a=d.getScayt(b);d.isScaytEnabled(b)&&(CKEDITOR.env.ie&&b.getSelection().unlock(!0),window.setTimeout(function(){a.focus();a.refresh()},10))},this,null,50);b.on("insertHtml",function(){var a=d.getScayt(b);d.isScaytEnabled(b)&&
+(CKEDITOR.env.ie&&b.getSelection().unlock(!0),window.setTimeout(function(){a.focus();a.refresh()},10))},this,null,50);b.on("scaytDialog",function(a){a.data.djConfig=window.djConfig;a.data.scayt_control=d.getScayt(b);a.data.tab=i;a.data.scayt=window.scayt});var e=b.dataProcessor;(e=e&&e.htmlFilter)&&e.addRules({elements:{span:function(a){if(a.attributes["data-scayt_word"]&&a.attributes["data-scaytid"])return delete a.name,a}}});e=CKEDITOR.plugins.undo.Image.prototype;e.equals=CKEDITOR.tools.override(e.equals,
+function(a){return function(b){var c=this.contents,f=b.contents,e=d.getScayt(this.editor);e&&d.isScaytReady(this.editor)&&(this.contents=e.reset(c)||"",b.contents=e.reset(f)||"");e=a.apply(this,arguments);this.contents=c;b.contents=f;return e}});b.document&&(b.elementMode!=CKEDITOR.ELEMENT_MODE_INLINE||b.focusManager.hasFocus)&&f()};CKEDITOR.plugins.scayt={engineLoaded:!1,instances:{},controlInfo:{},setControlInfo:function(a,c){a&&(a.name&&"object"!=typeof this.controlInfo[a.name])&&(this.controlInfo[a.name]=
+{});for(var b in c)this.controlInfo[a.name][b]=c[b]},isControlRestored:function(a){return a&&a.name&&this.controlInfo[a.name]?this.controlInfo[a.name].restored:!1},markControlRestore:function(a){this.setControlInfo(a,{restored:!0})},setControlId:function(a,c){this.setControlInfo(a,{id:c})},getControlId:function(a){return a&&a.name&&this.controlInfo[a.name]&&this.controlInfo[a.name].id?this.controlInfo[a.name].id:null},setPaused:function(a,c){this.setControlInfo(a,{paused:c})},isPaused:function(a){if(a&&
+a.name&&this.controlInfo[a.name])return this.controlInfo[a.name].paused},getScayt:function(a){return this.instances[a.name]},isScaytReady:function(a){return!0===this.engineLoaded&&"undefined"!==typeof window.scayt&&this.getScayt(a)},isScaytEnabled:function(a){return(a=this.getScayt(a))?!1===a.disabled:!1},getUiTabs:function(a){var c=[],b=a.config.scayt_uiTabs||"1,1,1",b=b.split(",");b[3]="1";for(var d=0;4>d;d++)c[d]="undefined"!=typeof window.scayt&&"undefined"!=typeof window.scayt.uiTags?parseInt(b[d],
+10)&&window.scayt.uiTags[d]:parseInt(b[d],10);"object"==typeof a.plugins.wsc?c.push(1):c.push(0);return c},loadEngine:function(a){if(CKEDITOR.env.gecko&&10900>CKEDITOR.env.version||CKEDITOR.env.opera||CKEDITOR.env.air)return a.fire("showScaytState");if(!0===this.engineLoaded)return r.apply(a);if(-1==this.engineLoaded)return CKEDITOR.on("scaytReady",function(){r.apply(a)});CKEDITOR.on("scaytReady",r,a);CKEDITOR.on("scaytReady",function(){this.engineLoaded=!0},this,null,0);this.engineLoaded=-1;var c=
+document.location.protocol,c=-1!=c.search(/https?:/)?c:"http:",c=a.config.scayt_srcUrl||c+"//svc.webspellchecker.net/scayt26/loader__base.js",b=d.parseUrl(c).path+"/";void 0==window.scayt?(CKEDITOR._djScaytConfig={baseUrl:b,addOnLoad:[function(){CKEDITOR.fireOnce("scaytReady")}],isDebug:!1},CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script",{attributes:{type:"text/javascript",async:"true",src:c}}))):CKEDITOR.fireOnce("scaytReady");return null},parseUrl:function(a){var c;return a.match&&
+(c=a.match(/(.*)[\/\\](.*?\.\w+)$/))?{path:c[1],file:c[2]}:a}};var d=CKEDITOR.plugins.scayt,s=function(a,c,b,d,e,k,g){a.addCommand(d,e);a.addMenuItem(d,{label:b,command:d,group:k,order:g})},v={preserveState:!0,editorFocus:!1,canUndo:!1,exec:function(a){if(d.isScaytReady(a)){var c=d.isScaytEnabled(a);this.setState(c?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_ON);a=d.getScayt(a);a.focus();a.setDisabled(c)}else!a.config.scayt_autoStartup&&0<=d.engineLoaded&&(a.focus(),this.setState(CKEDITOR.TRISTATE_DISABLED),
+d.loadEngine(a))}};CKEDITOR.plugins.add("scayt",{requires:"menubutton,dialog",beforeInit:function(a){var c=a.config.scayt_contextMenuItemsOrder||"suggest|moresuggest|control",b="";if((c=c.split("|"))&&c.length)for(var d=0;d<c.length;d++)b+="scayt_"+c[d]+(c.length!=parseInt(d,10)+1?",":"");a.config.menu_groups=b+","+a.config.menu_groups},init:function(a){var c=a.dataProcessor&&a.dataProcessor.dataFilter,b={elements:{span:function(a){var b=a.attributes;b&&b["data-scaytid"]&&delete a.name}}};c&&c.addRules(b);
+var f={},e={},p=a.addCommand("scaytcheck",v);CKEDITOR.dialog.add("scaytcheck",CKEDITOR.getUrl(this.path+"dialogs/options.js"));c=d.getUiTabs(a);a.addMenuGroup("scaytButton");a.addMenuGroup("scayt_suggest",-10);a.addMenuGroup("scayt_moresuggest",-9);a.addMenuGroup("scayt_control",-8);var b={},g=a.lang.scayt;b.scaytToggle={label:g.enable,command:"scaytcheck",group:"scaytButton"};1==c[0]&&(b.scaytOptions={label:g.options,group:"scaytButton",onClick:function(){i="options";a.openDialog("scaytcheck")}});
+1==c[1]&&(b.scaytLangs={label:g.langs,group:"scaytButton",onClick:function(){i="langs";a.openDialog("scaytcheck")}});1==c[2]&&(b.scaytDict={label:g.dictionariesTab,group:"scaytButton",onClick:function(){i="dictionaries";a.openDialog("scaytcheck")}});b.scaytAbout={label:a.lang.scayt.about,group:"scaytButton",onClick:function(){i="about";a.openDialog("scaytcheck")}};1==c[4]&&(b.scaytWSC={label:a.lang.wsc.toolbar,group:"scaytButton",command:"checkspell"});a.addMenuItems(b);a.ui.add("Scayt",CKEDITOR.UI_MENUBUTTON,
+{label:g.title,title:CKEDITOR.env.opera?g.opera_title:g.title,modes:{wysiwyg:1},toolbar:"spellchecker,20",onRender:function(){p.on("state",function(){this.setState(p.state)},this)},onMenu:function(){var b=d.isScaytEnabled(a);a.getMenuItem("scaytToggle").label=g[b?"disable":"enable"];var c=d.getUiTabs(a);return{scaytToggle:CKEDITOR.TRISTATE_OFF,scaytOptions:b&&c[0]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytLangs:b&&c[1]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytDict:b&&c[2]?
+CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytAbout:b&&c[3]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,scaytWSC:c[4]?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}});a.contextMenu&&a.addMenuItems&&a.contextMenu.addListener(function(b,c){if(!d.isScaytEnabled(a)||c.getRanges()[0].checkReadOnly())return null;var l=d.getScayt(a),q=l.getScaytNode();if(!q)return null;var h=l.getWord(q);if(!h)return null;var i=l.getLang(),m=a.config.scayt_contextCommands||"all",h=window.scayt.getSuggestion(h,
+i),m=m.split("|"),n;for(n in f){delete a._.menuItems[n];delete a.commands[n]}for(n in e){delete a._.menuItems[n];delete a.commands[n]}if(!h||!h.length){s(a,"no_sugg",g.noSuggestions,"scayt_no_sugg",{exec:function(){}},"scayt_control",1,true);e.scayt_no_sugg=CKEDITOR.TRISTATE_OFF}else{f={};e={};n=a.config.scayt_moreSuggestions||"on";var i=false,u=a.config.scayt_maxSuggestions;typeof u!="number"&&(u=5);!u&&(u=h.length);for(var j=0,p=h.length;j<p;j=j+1){var t="scayt_suggestion_"+h[j].replace(" ","_"),
+r=function(a,b){return{exec:function(){l.replace(a,b)}}}(q,h[j]);if(j<u){s(a,"button_"+t,h[j],t,r,"scayt_suggest",j+1);e[t]=CKEDITOR.TRISTATE_OFF}else if(n=="on"){s(a,"button_"+t,h[j],t,r,"scayt_moresuggest",j+1);f[t]=CKEDITOR.TRISTATE_OFF;i=true}}if(i){a.addMenuItem("scayt_moresuggest",{label:g.moreSuggestions,group:"scayt_moresuggest",order:10,getItems:function(){return f}});e.scayt_moresuggest=CKEDITOR.TRISTATE_OFF}}if(k("all",m)||k("ignore",m)){s(a,"ignore",g.ignore,"scayt_ignore",{exec:function(){l.ignore(q)}},
+"scayt_control",2);e.scayt_ignore=CKEDITOR.TRISTATE_OFF}if(k("all",m)||k("ignoreall",m)){s(a,"ignore_all",g.ignoreAll,"scayt_ignore_all",{exec:function(){l.ignoreAll(q)}},"scayt_control",3);e.scayt_ignore_all=CKEDITOR.TRISTATE_OFF}if(k("all",m)||k("add",m)){s(a,"add_word",g.addWord,"scayt_add_word",{exec:function(){window.scayt.addWordToUserDictionary(q)}},"scayt_control",4);e.scayt_add_word=CKEDITOR.TRISTATE_OFF}l.fireOnContextMenu&&l.fireOnContextMenu(a);return e});c=function(b){b.removeListener();
+CKEDITOR.env.opera||CKEDITOR.env.air?p.setState(CKEDITOR.TRISTATE_DISABLED):p.setState(d.isScaytEnabled(a)?CKEDITOR.TRISTATE_ON:CKEDITOR.TRISTATE_OFF)};a.on("showScaytState",c);a.on("instanceReady",c);if(a.config.scayt_autoStartup)a.on("instanceReady",function(){d.loadEngine(a)})},afterInit:function(a){var c,b=function(a){if(a.hasAttribute("data-scaytid"))return!1};a._.elementsPath&&(c=a._.elementsPath.filters)&&c.push(b);a.addRemoveFormatFilter&&a.addRemoveFormatFilter(b)}})})();(function(){function m(b,j){var k=b.type,f=j.type;return k==f?0:k==CKEDITOR.STYLE_OBJECT?-1:f==CKEDITOR.STYLE_OBJECT?1:f==CKEDITOR.STYLE_BLOCK?1:-1}CKEDITOR.plugins.add("stylescombo",{requires:"richcombo",init:function(b){function j(a){b.getStylesSet(function(g){if(!i.length){for(var c,l,e=0,f=g.length;e<f;e++)c=g[e],b.blockless&&c.element in CKEDITOR.dtd.$block||(l=c.name,c=h[l]=new CKEDITOR.style(c),c._name=l,c._.enterMode=k.enterMode,i.push(c));i.sort(m)}a&&a()})}var k=b.config,f=b.lang.stylescom
bo,
+h={},i=[],d;b.ui.addRichCombo("Styles",{label:f.label,title:f.panelTitle,toolbar:"styles,10",panel:{css:[CKEDITOR.skin.getPath("editor")].concat(k.contentsCss),multiSelect:!0,attributes:{"aria-label":f.panelTitle}},init:function(){d=this;j(function(){var a,g,c,b,e,h;e=0;for(h=i.length;e<h;e++)a=i[e],g=a._name,b=a.type,b!=c&&(d.startGroup(f["panelTitle"+b]),c=b),d.add(g,a.type==CKEDITOR.STYLE_OBJECT?g:a.buildPreview(),g);d.commit()})},onClick:function(a){b.focus();b.fire("saveSnapshot");var a=h[a],
+g=b.elementPath();b[a.checkActive(g)?"removeStyle":"applyStyle"](a);b.fire("saveSnapshot")},onRender:function(){b.on("selectionChange",function(a){for(var b=this.getValue(),a=a.data.path.elements,c=0,f=a.length,e;c<f;c++){e=a[c];for(var d in h)if(h[d].checkElementRemovable(e,!0)){d!=b&&this.setValue(d);return}}this.setValue("")},this)},onOpen:function(){var a=b.getSelection().getSelectedElement(),a=b.elementPath(a),g=[0,0,0,0];this.showAll();this.unmarkAll();for(var c in h){var d=h[c],e=d.type;e==
+CKEDITOR.STYLE_BLOCK&&!a.isContextFor(d.element)?this.hideItem(c):(d.checkActive(a)?this.mark(c):e==CKEDITOR.STYLE_OBJECT&&!d.checkApplicable(a)&&(this.hideItem(c),g[e]--),g[e]++)}g[CKEDITOR.STYLE_BLOCK]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_BLOCK]);g[CKEDITOR.STYLE_INLINE]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_INLINE]);g[CKEDITOR.STYLE_OBJECT]||this.hideGroup(f["panelTitle"+CKEDITOR.STYLE_OBJECT])},reset:function(){d&&(delete d._.panel,delete d._.list,d._.committed=0,d._.items={},
+d._.state=CKEDITOR.TRISTATE_OFF);h={};i=[];j()}});b.on("instanceReady",function(){j()})}})})();(function(){function i(c){return{editorFocus:!1,canUndo:!1,modes:{wysiwyg:1},exec:function(d){if(d.editable().hasFocus){var e=d.getSelection(),b;if(b=(new CKEDITOR.dom.elementPath(e.getCommonAncestor(),e.root)).contains({td:1,th:1},1)){var e=d.createRange(),a=CKEDITOR.tools.tryThese(function(){var a=b.getParent().$.cells[b.$.cellIndex+(c?-1:1)];a.parentNode.parentNode;return a},function(){var a=b.getParent(),a=a.getAscendant("table").$.rows[a.$.rowIndex+(c?-1:1)];return a.cells[c?a.cells.length-1:
+0]});if(!a&&!c){for(var f=b.getAscendant("table").$,a=b.getParent().$.cells,f=new CKEDITOR.dom.element(f.insertRow(-1),d.document),g=0,h=a.length;g<h;g++){var i=f.append((new CKEDITOR.dom.element(a[g],d.document)).clone(!1,!1));!CKEDITOR.env.ie&&i.appendBogus()}e.moveToElementEditStart(f)}else if(a)a=new CKEDITOR.dom.element(a),e.moveToElementEditStart(a),(!e.checkStartOfBlock()||!e.checkEndOfBlock())&&e.selectNodeContents(a);else return!0;e.select(!0);return!0}}return!1}}}var h={editorFocus:!1,modes:{wysiwyg:1,
+source:1}},g={exec:function(c){c.container.focusNext(!0,c.tabIndex)}},f={exec:function(c){c.container.focusPrevious(!0,c.tabIndex)}};CKEDITOR.plugins.add("tab",{init:function(c){for(var d=!1!==c.config.enableTabKeyTools,e=c.config.tabSpaces||0,b="";e--;)b+="Â ";if(b)c.on("key",function(a){9==a.data.keyCode&&(c.insertHtml(b),a.cancel())});if(d)c.on("key",function(a){(9==a.data.keyCode&&c.execCommand("selectNextCell")||a.data.keyCode==CKEDITOR.SHIFT+9&&c.execCommand("selectPreviousCell"))&&a.cancel()});
+c.addCommand("blur",CKEDITOR.tools.extend(g,h));c.addCommand("blurBack",CKEDITOR.tools.extend(f,h));c.addCommand("selectNextCell",i());c.addCommand("selectPreviousCell",i(!0))}})})();
+CKEDITOR.dom.element.prototype.focusNext=function(i,h){var g=void 0===h?this.getTabIndex():h,f,c,d,e,b,a;if(0>=g)for(b=this.getNextSourceNode(i,CKEDITOR.NODE_ELEMENT);b;){if(b.isVisible()&&0===b.getTabIndex()){d=b;break}b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT)}else for(b=this.getDocument().getBody().getFirst();b=b.getNextSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&b.equals(this)){if(c=!0,i){if(!(b=b.getNextSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(b)&&
+(f=1);if(b.isVisible()&&!(0>(a=b.getTabIndex()))){if(f&&a==g){d=b;break}a>g&&(!d||!e||a<e)?(d=b,e=a):!d&&0===a&&(d=b,e=a)}}d&&d.focus()};
+CKEDITOR.dom.element.prototype.focusPrevious=function(i,h){for(var g=void 0===h?this.getTabIndex():h,f,c,d,e=0,b,a=this.getDocument().getBody().getLast();a=a.getPreviousSourceNode(!1,CKEDITOR.NODE_ELEMENT);){if(!f)if(!c&&a.equals(this)){if(c=!0,i){if(!(a=a.getPreviousSourceNode(!0,CKEDITOR.NODE_ELEMENT)))break;f=1}}else c&&!this.contains(a)&&(f=1);if(a.isVisible()&&!(0>(b=a.getTabIndex())))if(0>=g){if(f&&0===b){d=a;break}b>e&&(d=a,e=b)}else{if(f&&b==g){d=a;break}if(b<g&&(!d||b>e))d=a,e=b}}d&&d.focus()};CKEDITOR.plugins.add("table",{requires:"dialog",init:function(a){function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,e){this.setState(e.contains("table",1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}if(!a.blockless){var b=a.lang.table;a.addCommand("table",new CKEDITOR.dialogCommand("table",{context:"table"}));a.addCommand("tableProperties",new CKEDITOR.dialogCommand("tableProperties",d()));a.addCommand("tableDelete",d({exec:functio
n(a){var c=a.elementPath().contains("table",
+1);if(c){var b=c.getParent();1==b.getChildCount()&&!b.is("body","td","th")&&(c=b);a=a.createRange();a.moveToPosition(c,CKEDITOR.POSITION_BEFORE_START);c.remove();a.select()}}}));a.ui.addButton&&a.ui.addButton("Table",{label:b.toolbar,command:"table",toolbar:"insert,30"});CKEDITOR.dialog.add("table",this.path+"dialogs/table.js");CKEDITOR.dialog.add("tableProperties",this.path+"dialogs/table.js");a.addMenuItems&&a.addMenuItems({table:{label:b.menu,command:"tableProperties",group:"table",order:5},tabledelete:{label:b.deleteTable,
+command:"tableDelete",group:"table",order:1}});a.on("doubleclick",function(a){a.data.element.is("table")&&(a.data.dialog="tableProperties")});a.contextMenu&&a.contextMenu.addListener(function(){return{tabledelete:CKEDITOR.TRISTATE_OFF,table:CKEDITOR.TRISTATE_OFF}})}}});(function(){function o(c){function d(c){!(0<b.length)&&(c.type==CKEDITOR.NODE_ELEMENT&&z.test(c.getName())&&!c.getCustomData("selected_cell"))&&(CKEDITOR.dom.element.setMarker(a,c,"selected_cell",!0),b.push(c))}for(var c=c.getRanges(),b=[],a={},e=0;e<c.length;e++){var f=c[e];if(f.collapsed)f=f.getCommonAncestor(),(f=f.getAscendant("td",!0)||f.getAscendant("th",!0))&&b.push(f);else{var f=new CKEDITOR.dom.walker(f),g;for(f.guard=d;g=f.next();)if(g.type!=CKEDITOR.NODE_ELEMENT||!g.is(CKEDITOR.dtd.table))if((g=
+g.getAscendant("td",!0)||g.getAscendant("th",!0))&&!g.getCustomData("selected_cell"))CKEDITOR.dom.element.setMarker(a,g,"selected_cell",!0),b.push(g)}}CKEDITOR.dom.element.clearAllMarkers(a);return b}function m(c,d){for(var b=o(c),a=b[0],e=a.getAscendant("table"),a=a.getDocument(),f=b[0].getParent(),g=f.$.rowIndex,b=b[b.length-1],h=b.getParent().$.rowIndex+b.$.rowSpan-1,b=new CKEDITOR.dom.element(e.$.rows[h]),g=d?g:h,f=d?f:b,b=CKEDITOR.tools.buildTableMap(e),e=b[g],g=d?b[g-1]:b[g+1],b=b[0].length,
+a=a.createElement("tr"),h=0;e[h]&&h<b;h++){var i;1<e[h].rowSpan&&g&&e[h]==g[h]?(i=e[h],i.rowSpan+=1):(i=(new CKEDITOR.dom.element(e[h])).clone(),i.removeAttribute("rowSpan"),!CKEDITOR.env.ie&&i.appendBogus(),a.append(i),i=i.$);h+=i.colSpan-1}d?a.insertBefore(f):a.insertAfter(f)}function p(c){if(c instanceof CKEDITOR.dom.selection){for(var d=o(c),b=d[0].getAscendant("table"),a=CKEDITOR.tools.buildTableMap(b),c=d[0].getParent().$.rowIndex,d=d[d.length-1],e=d.getParent().$.rowIndex+d.$.rowSpan-1,d=[],
+f=c;f<=e;f++){for(var g=a[f],h=new CKEDITOR.dom.element(b.$.rows[f]),i=0;i<g.length;i++){var j=new CKEDITOR.dom.element(g[i]),k=j.getParent().$.rowIndex;1==j.$.rowSpan?j.remove():(j.$.rowSpan-=1,k==f&&(k=a[f+1],k[i-1]?j.insertAfter(new CKEDITOR.dom.element(k[i-1])):(new CKEDITOR.dom.element(b.$.rows[f+1])).append(j,1)));i+=j.$.colSpan-1}d.push(h)}a=b.$.rows;b=new CKEDITOR.dom.element(a[e+1]||(0<c?a[c-1]:null)||b.$.parentNode);for(f=d.length;0<=f;f--)p(d[f]);return b}c instanceof CKEDITOR.dom.element&&
+(b=c.getAscendant("table"),1==b.$.rows.length?b.remove():c.remove());return null}function q(c,d){for(var b=d?Infinity:0,a=0;a<c.length;a++){var e;e=c[a];for(var f=d,g=e.getParent().$.cells,h=0,i=0;i<g.length;i++){var j=g[i],h=h+(f?1:j.colSpan);if(j==e.$)break}e=h-1;if(d?e<b:e>b)b=e}return b}function n(c,d){for(var b=o(c),a=b[0].getAscendant("table"),e=q(b,1),b=q(b),e=d?e:b,f=CKEDITOR.tools.buildTableMap(a),a=[],b=[],g=f.length,h=0;h<g;h++)a.push(f[h][e]),b.push(d?f[h][e-1]:f[h][e+1]);for(h=0;h<g;h++)a[h]&&
+(1<a[h].colSpan&&b[h]==a[h]?(e=a[h],e.colSpan+=1):(e=(new CKEDITOR.dom.element(a[h])).clone(),e.removeAttribute("colSpan"),!CKEDITOR.env.ie&&e.appendBogus(),e[d?"insertBefore":"insertAfter"].call(e,new CKEDITOR.dom.element(a[h])),e=e.$),h+=e.rowSpan-1)}function t(c,d){var b=c.getStartElement();if(b=b.getAscendant("td",1)||b.getAscendant("th",1)){var a=b.clone();CKEDITOR.env.ie||a.appendBogus();d?a.insertBefore(b):a.insertAfter(b)}}function s(c){if(c instanceof CKEDITOR.dom.selection){var c=o(c),d=
+c[0]&&c[0].getAscendant("table"),b;a:{var a=0;b=c.length-1;for(var e={},f,g;f=c[a++];)CKEDITOR.dom.element.setMarker(e,f,"delete_cell",!0);for(a=0;f=c[a++];)if((g=f.getPrevious())&&!g.getCustomData("delete_cell")||(g=f.getNext())&&!g.getCustomData("delete_cell")){CKEDITOR.dom.element.clearAllMarkers(e);b=g;break a}CKEDITOR.dom.element.clearAllMarkers(e);g=c[0].getParent();(g=g.getPrevious())?b=g.getLast():(g=c[b].getParent(),b=(g=g.getNext())?g.getChild(0):null)}for(g=c.length-1;0<=g;g--)s(c[g]);
+b?u(b,!0):d&&d.remove()}else c instanceof CKEDITOR.dom.element&&(d=c.getParent(),1==d.getChildCount()?d.remove():c.remove())}function u(c,d){var b=new CKEDITOR.dom.range(c.getDocument());if(!b["moveToElementEdit"+(d?"End":"Start")](c))b.selectNodeContents(c),b.collapse(d?!1:!0);b.select(!0)}function v(c,d,b){c=c[d];if("undefined"==typeof b)return c;for(d=0;c&&d<c.length;d++){if(b.is&&c[d]==b.$)return d;if(d==b)return new CKEDITOR.dom.element(c[d])}return b.is?-1:null}function r(c,d,b){var a=o(c),
+e;if((d?1!=a.length:2>a.length)||(e=c.getCommonAncestor())&&e.type==CKEDITOR.NODE_ELEMENT&&e.is("table"))return!1;var f,c=a[0];e=c.getAscendant("table");var g=CKEDITOR.tools.buildTableMap(e),h=g.length,i=g[0].length,j=c.getParent().$.rowIndex,k=v(g,j,c);if(d){var w;try{var l=parseInt(c.getAttribute("rowspan"),10)||1;f=parseInt(c.getAttribute("colspan"),10)||1;w=g["up"==d?j-l:"down"==d?j+l:j]["left"==d?k-f:"right"==d?k+f:k]}catch(u){return!1}if(!w||c.$==w)return!1;a["up"==d||"left"==d?"unshift":"push"](new CKEDITOR.dom.element(w))}for(var d=
+c.getDocument(),m=j,l=w=0,p=!b&&new CKEDITOR.dom.documentFragment(d),r=0,d=0;d<a.length;d++){f=a[d];var n=f.getParent(),s=f.getFirst(),q=f.$.colSpan,t=f.$.rowSpan,n=n.$.rowIndex,x=v(g,n,f),r=r+q*t,l=Math.max(l,x-k+q);w=Math.max(w,n-j+t);if(!b){q=f;(t=q.getBogus())&&t.remove();q.trim();if(f.getChildren().count()){if(n!=m&&s&&(!s.isBlockBoundary||!s.isBlockBoundary({br:1})))(m=p.getLast(CKEDITOR.dom.walker.whitespaces(!0)))&&(!m.is||!m.is("br"))&&p.append("br");f.moveChildren(p)}d?f.remove():f.setHtml("")}m=
+n}if(b)return w*l==r;p.moveChildren(c);CKEDITOR.env.ie||c.appendBogus();l>=i?c.removeAttribute("rowSpan"):c.$.rowSpan=w;w>=h?c.removeAttribute("colSpan"):c.$.colSpan=l;b=new CKEDITOR.dom.nodeList(e.$.rows);a=b.count();for(d=a-1;0<=d;d--)e=b.getItem(d),e.$.cells.length||(e.remove(),a++);return c}function x(c,d){var b=o(c);if(1<b.length)return!1;if(d)return!0;var b=b[0],a=b.getParent(),e=a.getAscendant("table"),f=CKEDITOR.tools.buildTableMap(e),g=a.$.rowIndex,h=v(f,g,b),i=b.$.rowSpan,j;if(1<i){j=Math.ceil(i/
+2);for(var i=Math.floor(i/2),a=g+j,e=new CKEDITOR.dom.element(e.$.rows[a]),f=v(f,a),k,a=b.clone(),g=0;g<f.length;g++)if(k=f[g],k.parentNode==e.$&&g>h){a.insertBefore(new CKEDITOR.dom.element(k));break}else k=null;k||e.append(a,!0)}else{i=j=1;e=a.clone();e.insertAfter(a);e.append(a=b.clone());k=v(f,g);for(h=0;h<k.length;h++)k[h].rowSpan++}CKEDITOR.env.ie||a.appendBogus();b.$.rowSpan=j;a.$.rowSpan=i;1==j&&b.removeAttribute("rowSpan");1==i&&a.removeAttribute("rowSpan");return a}function y(c,d){var b=
+o(c);if(1<b.length)return!1;if(d)return!0;var b=b[0],a=b.getParent(),e=a.getAscendant("table"),e=CKEDITOR.tools.buildTableMap(e),f=v(e,a.$.rowIndex,b),g=b.$.colSpan;if(1<g)a=Math.ceil(g/2),g=Math.floor(g/2);else{for(var g=a=1,h=[],i=0;i<e.length;i++){var j=e[i];h.push(j[f]);1<j[f].rowSpan&&(i+=j[f].rowSpan-1)}for(e=0;e<h.length;e++)h[e].colSpan++}e=b.clone();e.insertAfter(b);CKEDITOR.env.ie||e.appendBogus();b.$.colSpan=a;e.$.colSpan=g;1==a&&b.removeAttribute("colSpan");1==g&&e.removeAttribute("colSpan");
+return e}var z=/^(?:td|th)$/;CKEDITOR.plugins.tabletools={requires:"table,dialog,contextmenu",init:function(c){function d(a){return CKEDITOR.tools.extend(a||{},{contextSensitive:1,refresh:function(a,b){this.setState(b.contains({td:1,th:1},1)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)}})}var b=c.lang.table;c.addCommand("cellProperties",new CKEDITOR.dialogCommand("cellProperties",d()));CKEDITOR.dialog.add("cellProperties",this.path+"dialogs/tableCell.js");c.addCommand("rowDelete",d({exec:function(a){a=
+a.getSelection();u(p(a))}}));c.addCommand("rowInsertBefore",d({exec:function(a){a=a.getSelection();m(a,!0)}}));c.addCommand("rowInsertAfter",d({exec:function(a){a=a.getSelection();m(a)}}));c.addCommand("columnDelete",d({exec:function(a){for(var a=a.getSelection(),a=o(a),b=a[0],c=a[a.length-1],a=b.getAscendant("table"),d=CKEDITOR.tools.buildTableMap(a),h,i,j=[],k=0,m=d.length;k<m;k++)for(var l=0,n=d[k].length;l<n;l++)d[k][l]==b.$&&(h=l),d[k][l]==c.$&&(i=l);for(k=h;k<=i;k++)for(l=0;l<d.length;l++)c=
+d[l],b=new CKEDITOR.dom.element(a.$.rows[l]),c=new CKEDITOR.dom.element(c[k]),c.$&&(1==c.$.colSpan?c.remove():c.$.colSpan-=1,l+=c.$.rowSpan-1,b.$.cells.length||j.push(b));i=a.$.rows[0]&&a.$.rows[0].cells;h=new CKEDITOR.dom.element(i[h]||(h?i[h-1]:a.$.parentNode));j.length==m&&a.remove();h&&u(h,!0)}}));c.addCommand("columnInsertBefore",d({exec:function(a){a=a.getSelection();n(a,!0)}}));c.addCommand("columnInsertAfter",d({exec:function(a){a=a.getSelection();n(a)}}));c.addCommand("cellDelete",d({exec:function(a){a=
+a.getSelection();s(a)}}));c.addCommand("cellMerge",d({exec:function(a){u(r(a.getSelection()),!0)}}));c.addCommand("cellMergeRight",d({exec:function(a){u(r(a.getSelection(),"right"),!0)}}));c.addCommand("cellMergeDown",d({exec:function(a){u(r(a.getSelection(),"down"),!0)}}));c.addCommand("cellVerticalSplit",d({exec:function(a){u(x(a.getSelection()))}}));c.addCommand("cellHorizontalSplit",d({exec:function(a){u(y(a.getSelection()))}}));c.addCommand("cellInsertBefore",d({exec:function(a){a=a.getSelection();
+t(a,!0)}}));c.addCommand("cellInsertAfter",d({exec:function(a){a=a.getSelection();t(a)}}));c.addMenuItems&&c.addMenuItems({tablecell:{label:b.cell.menu,group:"tablecell",order:1,getItems:function(){var a=c.getSelection(),b=o(a);return{tablecell_insertBefore:CKEDITOR.TRISTATE_OFF,tablecell_insertAfter:CKEDITOR.TRISTATE_OFF,tablecell_delete:CKEDITOR.TRISTATE_OFF,tablecell_merge:r(a,null,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_merge_right:r(a,"right",!0)?CKEDITOR.TRISTATE_OFF:
+CKEDITOR.TRISTATE_DISABLED,tablecell_merge_down:r(a,"down",!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_vertical:x(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_split_horizontal:y(a,!0)?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED,tablecell_properties:0<b.length?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED}}},tablecell_insertBefore:{label:b.cell.insertBefore,group:"tablecell",command:"cellInsertBefore",order:5},tablecell_insertAfter:{label:b.cell.insertAfter,
+group:"tablecell",command:"cellInsertAfter",order:10},tablecell_delete:{label:b.cell.deleteCell,group:"tablecell",command:"cellDelete",order:15},tablecell_merge:{label:b.cell.merge,group:"tablecell",command:"cellMerge",order:16},tablecell_merge_right:{label:b.cell.mergeRight,group:"tablecell",command:"cellMergeRight",order:17},tablecell_merge_down:{label:b.cell.mergeDown,group:"tablecell",command:"cellMergeDown",order:18},tablecell_split_horizontal:{label:b.cell.splitHorizontal,group:"tablecell",
+command:"cellHorizontalSplit",order:19},tablecell_split_vertical:{label:b.cell.splitVertical,group:"tablecell",command:"cellVerticalSplit",order:20},tablecell_properties:{label:b.cell.title,group:"tablecellproperties",command:"cellProperties",order:21},tablerow:{label:b.row.menu,group:"tablerow",order:1,getItems:function(){return{tablerow_insertBefore:CKEDITOR.TRISTATE_OFF,tablerow_insertAfter:CKEDITOR.TRISTATE_OFF,tablerow_delete:CKEDITOR.TRISTATE_OFF}}},tablerow_insertBefore:{label:b.row.insertBefore,
+group:"tablerow",command:"rowInsertBefore",order:5},tablerow_insertAfter:{label:b.row.insertAfter,group:"tablerow",command:"rowInsertAfter",order:10},tablerow_delete:{label:b.row.deleteRow,group:"tablerow",command:"rowDelete",order:15},tablecolumn:{label:b.column.menu,group:"tablecolumn",order:1,getItems:function(){return{tablecolumn_insertBefore:CKEDITOR.TRISTATE_OFF,tablecolumn_insertAfter:CKEDITOR.TRISTATE_OFF,tablecolumn_delete:CKEDITOR.TRISTATE_OFF}}},tablecolumn_insertBefore:{label:b.column.insertBefore,
+group:"tablecolumn",command:"columnInsertBefore",order:5},tablecolumn_insertAfter:{label:b.column.insertAfter,group:"tablecolumn",command:"columnInsertAfter",order:10},tablecolumn_delete:{label:b.column.deleteColumn,group:"tablecolumn",command:"columnDelete",order:15}});c.contextMenu&&c.contextMenu.addListener(function(a,b,c){return(a=c.contains({td:1,th:1},1))&&!a.isReadOnly()?{tablecell:CKEDITOR.TRISTATE_OFF,tablerow:CKEDITOR.TRISTATE_OFF,tablecolumn:CKEDITOR.TRISTATE_OFF}:null})},getSelectedCells:o};
+CKEDITOR.plugins.add("tabletools",CKEDITOR.plugins.tabletools)})();CKEDITOR.tools.buildTableMap=function(o){for(var o=o.$.rows,m=-1,p=[],q=0;q<o.length;q++){m++;!p[m]&&(p[m]=[]);for(var n=-1,t=0;t<o[q].cells.length;t++){var s=o[q].cells[t];for(n++;p[m][n];)n++;for(var u=isNaN(s.colSpan)?1:s.colSpan,s=isNaN(s.rowSpan)?1:s.rowSpan,v=0;v<s;v++){p[m+v]||(p[m+v]=[]);for(var r=0;r<u;r++)p[m+v][n+r]=o[q].cells[t]}n+=u-1}}return p};(function(){function h(a){this.editor=a;this.reset()}CKEDITOR.plugins.add("undo",{init:function(a){function c(a){b.enabled&&!1!==a.data.command.canUndo&&b.save()}var b=new h(a),d=a.addCommand("undo",{exec:function(){b.undo()&&(a.selectionChange(),this.fire("afterUndo"))},state:CKEDITOR.TRISTATE_DISABLED,canUndo:!1}),e=a.addCommand("redo",{exec:function(){b.redo()&&(a.selectionChange(),this.fire("afterRedo"))},state:CKEDITOR.TRISTATE_DISABLED,canUndo:!1});a.setKeystroke([[CKEDITOR.CTRL+90,"undo"],
+[CKEDITOR.CTRL+89,"redo"],[CKEDITOR.CTRL+CKEDITOR.SHIFT+90,"redo"]]);b.onChange=function(){d.setState(b.undoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED);e.setState(b.redoable()?CKEDITOR.TRISTATE_OFF:CKEDITOR.TRISTATE_DISABLED)};a.on("beforeCommandExec",c);a.on("afterCommandExec",c);a.on("saveSnapshot",function(a){b.save(a.data&&a.data.contentOnly)});a.on("contentDom",function(){a.editable().on("keydown",function(a){!a.data.$.ctrlKey&&!a.data.$.metaKey&&b.type(a)})});a.on("beforeModeUnload",
+function(){"wysiwyg"==a.mode&&b.save(!0)});a.on("mode",function(){b.enabled=a.readOnly?!1:"wysiwyg"==a.mode;b.onChange()});a.ui.addButton&&(a.ui.addButton("Undo",{label:a.lang.undo.undo,command:"undo",toolbar:"undo,10"}),a.ui.addButton("Redo",{label:a.lang.undo.redo,command:"redo",toolbar:"undo,20"}));a.resetUndo=function(){b.reset();a.fire("saveSnapshot")};a.on("updateSnapshot",function(){b.currentImage&&b.update()});a.on("lockSnapshot",b.lock,b);a.on("unlockSnapshot",b.unlock,b)}});CKEDITOR.plugins.undo=
+{};var i=CKEDITOR.plugins.undo.Image=function(a){this.editor=a;a.fire("beforeUndoImage");var c=a.getSnapshot(),b=c&&a.getSelection();CKEDITOR.env.ie&&c&&(c=c.replace(/\s+data-cke-expando=".*?"/g,""));this.contents=c;this.bookmarks=b&&b.createBookmarks2(!0);a.fire("afterUndoImage")},j=/\b(?:href|src|name)="[^"]*?"/gi;i.prototype={equals:function(a,c){var b=this.contents,d=a.contents;if(CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat))b=b.replace(j,""),d=d.replace(j,"");if(b!=d)return!1;
+if(c)return!0;b=this.bookmarks;d=a.bookmarks;if(b||d){if(!b||!d||b.length!=d.length)return!1;for(var e=0;e<b.length;e++){var g=b[e],f=d[e];if(g.startOffset!=f.startOffset||g.endOffset!=f.endOffset||!CKEDITOR.tools.arrayCompare(g.start,f.start)||!CKEDITOR.tools.arrayCompare(g.end,f.end))return!1}}return!0}};var k={8:1,46:1},m={16:1,17:1,18:1},l={37:1,38:1,39:1,40:1};h.prototype={type:function(a){var a=a&&a.data.getKey(),c=a in k,b=this.lastKeystroke in k,d=c&&a==this.lastKeystroke,e=a in l,g=this.lastKeystroke in
+l;if(!(a in m||this.typing)||!c&&!e&&(b||g)||c&&!d){var f=new i(this.editor),h=this.snapshots.length;CKEDITOR.tools.setTimeout(function(){var a=this.editor.getSnapshot();CKEDITOR.env.ie&&(a=a.replace(/\s+data-cke-expando=".*?"/g,""));f.contents!=a&&h==this.snapshots.length&&(this.typing=!0,this.save(!1,f,!1)||this.snapshots.splice(this.index+1,this.snapshots.length-this.index-1),this.hasUndo=!0,this.hasRedo=!1,this.modifiersCount=this.typesCount=1,this.onChange())},0,this)}this.lastKeystroke=a;c?
+(this.typesCount=0,this.modifiersCount++,25<this.modifiersCount&&(this.save(!1,null,!1),this.modifiersCount=1)):e||(this.modifiersCount=0,this.typesCount++,25<this.typesCount&&(this.save(!1,null,!1),this.typesCount=1))},reset:function(){this.lastKeystroke=0;this.snapshots=[];this.index=-1;this.limit=this.editor.config.undoStackSize||20;this.currentImage=null;this.hasRedo=this.hasUndo=!1;this.locked=null;this.resetType()},resetType:function(){this.typing=!1;delete this.lastKeystroke;this.modifiersCount=
+this.typesCount=0},fireChange:function(){this.hasUndo=!!this.getNextImage(!0);this.hasRedo=!!this.getNextImage(!1);this.resetType();this.onChange()},save:function(a,c,b){if(this.locked)return!1;var d=this.snapshots;c||(c=new i(this.editor));if(!1===c.contents||this.currentImage&&c.equals(this.currentImage,a))return!1;d.splice(this.index+1,d.length-this.index-1);d.length==this.limit&&d.shift();this.index=d.push(c)-1;this.currentImage=c;!1!==b&&this.fireChange();return!0},restoreImage:function(a){var c=
+this.editor,b;a.bookmarks&&(c.focus(),b=c.getSelection());this.locked=1;this.editor.loadSnapshot(a.contents);a.bookmarks?b.selectBookmarks(a.bookmarks):CKEDITOR.env.ie&&(c=this.editor.document.getBody().$.createTextRange(),c.collapse(!0),c.select());this.locked=0;this.index=a.index;this.update();this.fireChange()},getNextImage:function(a){var c=this.snapshots,b=this.currentImage,d;if(b)if(a)for(d=this.index-1;0<=d;d--){if(a=c[d],!b.equals(a,!0))return a.index=d,a}else for(d=this.index+1;d<c.length;d++)if(a=
+c[d],!b.equals(a,!0))return a.index=d,a;return null},redoable:function(){return this.enabled&&this.hasRedo},undoable:function(){return this.enabled&&this.hasUndo},undo:function(){if(this.undoable()){this.save(!0);var a=this.getNextImage(!0);if(a)return this.restoreImage(a),!0}return!1},redo:function(){if(this.redoable()&&(this.save(!0),this.redoable())){var a=this.getNextImage(!1);if(a)return this.restoreImage(a),!0}return!1},update:function(){this.locked||this.snapshots.splice(this.index,1,this.currentImage=
+new i(this.editor))},lock:function(){if(!this.locked){var a=this.editor.getSnapshot();this.locked={update:this.currentImage&&a==this.currentImage.contents?a:null}}},unlock:function(){if(this.locked){var a=this.locked.update,c=this.editor.getSnapshot();this.locked=null;"string"==typeof a&&c!=a&&this.update()}}}})();CKEDITOR.plugins.add("wsc",{requires:"dialog",init:function(a){a.addCommand("checkspell",new CKEDITOR.dialogCommand("checkspell")).modes={wysiwyg:!CKEDITOR.env.opera&&!CKEDITOR.env.air&&document.domain==window.location.hostname};"undefined"==typeof a.plugins.scayt&&a.ui.addButton&&a.ui.addButton("SpellChecker",{label:a.lang.wsc.toolbar,command:"checkspell",toolbar:"spellchecker,10"});CKEDITOR.dialog.add("checkspell",this.path+"dialogs/wsc.js")}});
+CKEDITOR.config.wsc_customerId=CKEDITOR.config.wsc_customerId||"1:ua3xw1-2XyGJ3-GWruD3-6OFNT1-oXcuB1-nR6Bp4-hgQHc-EcYng3-sdRXG3-NOfFk";CKEDITOR.config.wsc_customLoaderScript=CKEDITOR.config.wsc_customLoaderScript||null;CKEDITOR.config.plugins='dialogui,dialog,about,a11yhelp,dialogadvtab,basicstyles,bidi,blockquote,clipboard,button,panelbutton,panel,floatpanel,colorbutton,colordialog,templates,menu,contextmenu,div,resize,toolbar,elementspath,list,indent,enterkey,entities,popup,filebrowser,find,fakeobjects,flash,floatingspace,listblock,richcombo,font,forms,format,htmlwriter,horizontalrule,iframe,wysiwygarea,image,smiley,justify,link,liststyle,magicline,maximize,newpage,pagebreak,pastetext,pastefromword,preview,print,removeformat,save,selectall,showblocks,showborders,sourcearea,specialchar,menubutton,scayt,stylescombo,tab,table,tabletools,undo,wsc';CKEDITOR.config.skin='kama';(function() {var icons = ( 'about,0,bold,32,italic,64,strike,96,subscript,128,superscript,160,underline
,192,bidiltr,224,bidirtl,256,blockquote,288,copy-rtl,320,copy,352,cut-rtl,384,cut,416,paste-rtl,448,paste,480,bgcolor,512,textcolor,544,templates-rtl,576,templates,608,creatediv,640,bulletedlist-rtl,672,bulletedlist,704,numberedlist-rtl,736,numberedlist,768,indent-rtl,800,indent,832,outdent-rtl,864,outdent,896,find-rtl,928,find,960,replace,992,flash,1024,button,1056,checkbox,1088,form,1120,hiddenfield,1152,imagebutton,1184,radio,1216,select-rtl,1248,select,1280,textarea-rtl,1312,textarea,1344,textfield-rtl,1376,textfield,1408,horizontalrule,1440,iframe,1472,image,1504,smiley,1536,justifyblock,1568,justifycenter,1600,justifyleft,1632,justifyright,1664,anchor-rtl,1696,anchor,1728,link,1760,unlink,1792,maximize,1824,newpage-rtl,1856,newpage,1888,pagebreak-rtl,1920,pagebreak,1952,pastetext-rtl,1984,pastetext,2016,pastefromword-rtl,2048,pastefromword,2080,preview-rtl,2112,preview,2144,print,2176,removeformat,2208,save,2240,selectall,2272,showblocks-rtl,2304,showblocks,2336,source
-rtl,2368,source,2400,specialchar,2432,scayt,2464,table,2496,redo-rtl,2528,redo,2560,undo-rtl,2592,undo,2624,spellchecker,2656' ),path = CKEDITOR.getUrl( 'plugins/icons.png' ),icons = icons.split( ',' );for ( var i = 0; i < icons.length; i++ )CKEDITOR.skin.icons[ icons[ i ] ] = { path: path, offset: -icons[ ++i ] };})();CKEDITOR.lang.languages={"af":1,"ar":1,"eu":1,"bn":1,"bs":1,"bg":1,"ca":1,"zh-cn":1,"zh":1,"hr":1,"cs":1,"da":1,"nl":1,"en":1,"en-au":1,"en-ca":1,"en-gb":1,"eo":1,"et":1,"fo":1,"fi":1,"fr":1,"fr-ca":1,"gl":1,"ka":1,"de":1,"el":1,"gu":1,"he":1,"hi":1,"hu":1,"is":1,"it":1,"ja":1,"km":1,"ko":1,"ku":1,"lv":1,"lt":1,"mk":1,"ms":1,"mn":1,"no":1,"nb":1,"fa":1,"pl":1,"pt-br":1,"pt":1,"ro":1,"ru":1,"sr":1,"sr-latn":1,"sk":1,"sl":1,"es":1,"sv":1,"th":1,"tr":1,"ug":1,"uk":1,"vi":1,"cy":1};}());
\ No newline at end of file
diff --git a/share/static/RichText/config.js b/share/static/RichText/config.js
index ff0b510..a6faf18 100644
--- a/share/static/RichText/config.js
+++ b/share/static/RichText/config.js
@@ -1,47 +1,10 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
+/**
+ * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
-CKEDITOR.editorConfig = function( config )
-{
+CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'fr';
// config.uiColor = '#AADC6E';
- config.toolbar = 'Full';
-
-config.toolbar_Full =
-[
- ['Cut','Copy','Paste','PasteText','PasteFromWord'],
- ['Undo','Redo','-','-','SelectAll','RemoveFormat'],
- ['Table','HorizontalRule','SpecialChar'],
- '/',
- ['Bold','Italic','Underline','Strike'],
- ['NumberedList','BulletedList','-','Outdent','Indent'],
- ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
- '/',
- ['Format','Font','FontSize'],
- ['TextColor'],
- ['Link']
-];
-
-config.enterMode = CKEDITOR.ENTER_BR;
-config.shiftEnterMode = CKEDITOR.ENTER_P;
-config.enableTabKeyTools = true;
-config.htmlEncodeOutput = false;
-
-config.disableNativeSpellChecker = false;
-config.browserContextMenuOnCtrl = true;
-
-
-config.toolbarStartupExpanded = false;
-config.font_names =
- 'Arial/Arial, Helvetica, sans-serif;' +
- 'Courier New/Courier New, Courier, monospace;' +
- 'Georgia/Georgia, serif;' +
- 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +
- 'Tahoma/Tahoma, Geneva, sans-serif;' +
- 'Times New Roman/Times New Roman, Times, serif;' +
- 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +
- 'Verdana/Verdana, Geneva, sans-serif';
};
diff --git a/share/static/RichText/contents.css b/share/static/RichText/contents.css
index dd44ff7..a5e5fd4 100644
--- a/share/static/RichText/contents.css
+++ b/share/static/RichText/contents.css
@@ -1,35 +1,99 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-body
-{
- /* Font */
- font-family: Arial, Verdana, sans-serif;
- font-size: 12px;
-
- /* Text color */
- color: #222;
-
- /* Remove the background color to make it transparent */
- background-color: transparent;
-}
-
-html
-{
- /* #3658: [IE6] Editor document has horizontal scrollbar on long lines
- To prevent this misbehavior, we show the scrollbar always */
- _overflow-y: scroll
-}
-
-img:-moz-broken
-{
- -moz-force-broken-image-icon : 1;
- width : 24px;
- height : 24px;
-}
-img, input, textarea
-{
- cursor: default;
-}
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+body
+{
+ /* Font */
+ font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
+ font-size: 12px;
+
+ /* Text color */
+ color: #333;
+
+ /* Remove the background color to make it transparent */
+ background-color: #fff;
+
+ margin: 20px;
+}
+
+.cke_editable
+{
+ font-size: 13px;
+ line-height: 1.6em;
+}
+
+blockquote
+{
+ font-style: italic;
+ font-family: Georgia, Times, "Times New Roman", serif;
+ padding: 2px 0;
+ border-style: solid;
+ border-color: #ccc;
+ border-width: 0;
+}
+
+.cke_contents_ltr blockquote
+{
+ padding-left: 20px;
+ padding-right: 8px;
+ border-left-width: 5px;
+}
+
+.cke_contents_rtl blockquote
+{
+ padding-left: 8px;
+ padding-right: 20px;
+ border-right-width: 5px;
+}
+
+a
+{
+ color: #0782C1;
+}
+
+ol,ul,dl
+{
+ /* IE7: reset rtl list margin. (#7334) */
+ *margin-right: 0px;
+ /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
+ padding: 0 40px;
+}
+
+h1,h2,h3,h4,h5,h6
+{
+ font-weight: normal;
+ line-height: 1.2em;
+}
+
+hr
+{
+ border: 0px;
+ border-top: 1px solid #ccc;
+}
+
+img.right {
+ border: 1px solid #ccc;
+ float: right;
+ margin-left: 15px;
+ padding: 5px;
+}
+
+img.left {
+ border: 1px solid #ccc;
+ float: left;
+ margin-right: 15px;
+ padding: 5px;
+}
+
+img:hover {
+ opacity: .9;
+ filter: alpha(opacity = 90);
+}
+
+pre
+{
+ white-space: pre-wrap; /* CSS 2.1 */
+ word-wrap: break-word; /* IE7 */
+}
diff --git a/share/static/RichText/lang/_languages.js b/share/static/RichText/lang/_languages.js
deleted file mode 100644
index b5e01ed..0000000
--- a/share/static/RichText/lang/_languages.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-var CKEDITOR_LANGS=(function(){var b={af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',cy:'Welsh',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-gb':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',he:'Hebrew',hi:'Hindi',hr:'Croatian',hu:'Hungarian',is:'Icelandic',it:'Italian',ja:'Japanese',km:'Khmer',ko:'Korean',lt:'Lithuanian',lv:'Latvian',mn:'Mongolian',ms:'Malay',nb:'Norwegian Bokmal',nl:'Dutch',no:'Norwegian',pl:'Polish',pt:'Portuguese (Portugal)','pt-br':'Portuguese (Brazil)',ro:'Romanian',ru:'Russian',sk:'Slovak',sl:'Slovenian',sr:'Serbian (Cyrillic)','sr-latn':'Serbian (Latin)',sv:'Swedish',th:'Thai',tr:'Turkish',uk:'Ukrainian',vi:'Vietnamese',zh:'Chinese Traditional','zh-cn':'Chinese Simplified'},c=[];for(var d in b)c.p
ush({code:d,name:b[d]});c.sort(function(e,f){return e.name<f.name?-1:1;});return c;})();
diff --git a/share/static/RichText/lang/_translationstatus.txt b/share/static/RichText/lang/_translationstatus.txt
deleted file mode 100644
index 06d973d..0000000
--- a/share/static/RichText/lang/_translationstatus.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-
-af.js Found: 287 Missing: 244
-ar.js Found: 451 Missing: 80
-bg.js Found: 280 Missing: 251
-bn.js Found: 281 Missing: 250
-bs.js Found: 187 Missing: 344
-ca.js Found: 490 Missing: 41
-cs.js Found: 411 Missing: 120
-cy.js Found: 452 Missing: 79
-da.js Found: 404 Missing: 127
-de.js Found: 528 Missing: 3
-el.js Found: 286 Missing: 245
-en-au.js Found: 369 Missing: 162
-en-ca.js Found: 369 Missing: 162
-en-gb.js Found: 370 Missing: 161
-eo.js Found: 259 Missing: 272
-es.js Found: 524 Missing: 7
-et.js Found: 301 Missing: 230
-eu.js Found: 403 Missing: 128
-fa.js Found: 302 Missing: 229
-fi.js Found: 518 Missing: 13
-fo.js Found: 420 Missing: 111
-fr-ca.js Found: 301 Missing: 230
-fr.js Found: 403 Missing: 128
-gl.js Found: 283 Missing: 248
-gu.js Found: 300 Missing: 231
-he.js Found: 531 Missing: 0
-hi.js Found: 302 Missing: 229
-hr.js Found: 404 Missing: 127
-hu.js Found: 445 Missing: 86
-is.js Found: 307 Missing: 224
-it.js Found: 404 Missing: 127
-ja.js Found: 413 Missing: 118
-km.js Found: 275 Missing: 256
-ko.js Found: 293 Missing: 238
-lt.js Found: 306 Missing: 225
-lv.js Found: 283 Missing: 248
-mn.js Found: 300 Missing: 231
-ms.js Found: 265 Missing: 266
-nb.js Found: 470 Missing: 61
-nl.js Found: 531 Missing: 0
-no.js Found: 470 Missing: 61
-pl.js Found: 411 Missing: 120
-pt-br.js Found: 524 Missing: 7
-pt.js Found: 282 Missing: 249
-ro.js Found: 301 Missing: 230
-ru.js Found: 467 Missing: 64
-sk.js Found: 302 Missing: 229
-sl.js Found: 410 Missing: 121
-sr-latn.js Found: 276 Missing: 255
-sr.js Found: 275 Missing: 256
-sv.js Found: 299 Missing: 232
-th.js Found: 287 Missing: 244
-tr.js Found: 524 Missing: 7
-uk.js Found: 404 Missing: 127
-vi.js Found: 481 Missing: 50
-zh-cn.js Found: 531 Missing: 0
-zh.js Found: 404 Missing: 127
diff --git a/share/static/RichText/lang/af.js b/share/static/RichText/lang/af.js
index 4e38c5a..afcc732 100644
--- a/share/static/RichText/lang/af.js
+++ b/share/static/RichText/lang/af.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.af={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'Nuwe Bladsy',save:'Bewaar',preview:'Voorskou',cut:'Uitsny ',copy:'Kopieer',paste:'Byvoeg',print:'Druk',underline:'Onderstreep',bold:'Vet',italic:'Skuins',selectAll:'Selekteer alles',removeFormat:'Formaat verweider',strike:'Gestreik',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Horisontale lyn byvoeg',pagebreak:'Bladsy breek byvoeg',unlink:'Skakel verweider',undo:'Ont-skep',redo:'Her-skep',common:{browseServer:'Server deurblaai',url:'URL',protocol:'Protokol',upload:'Oplaai',uploadSubmit:'Stuur dit na die Server',image:'Beeld',flash:'Flash',form:'Form',checkbox:'HakBox',radio:'PuntBox',textField:'Byvoegbare karakter strook',textarea:'Byvoegbare karakter area',hiddenField:'Blinde strook',button:'Knop',select:'Opklapbare keuse strook',imageButton:'Beeld knop',notSet:'<geen instelling>',id:'Id',name:'Naam',la
ngDir:'Taal rigting',langDirLtr:'Links na regs (LTR)',langDirRtl:'Regs na links (RTL)',langCode:'Taal kode',longDescr:'Lang beskreiwing URL',cssClass:'Skakel Tiepe',advisoryTitle:'Voorbeveelings Titel',cssStyle:'Styl',ok:'OK',cancel:'Kanseleer',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Ingewikkeld',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolb
ar:'Spesiaale Karakter byvoeg',title:'Kies spesiale karakter',options:'Special Character Options'},link:{toolbar:'Skakel byvoeg/verander',other:'<ander>',menu:'Verander skakel',title:'Skakel',info:'Skakel informasie',target:'Mikpunt',upload:'Oplaai',advanced:'Ingewikkeld',type:'Skakel soort',toUrl:'URL',toAnchor:'Skakel na plekhouers in text',toEmail:'E-Mail',targetFrame:'<raam>',targetPopup:'<popup venster>',targetFrameName:'Mikpunt Venster Naam',targetPopupName:'Popup Venster Naam',popupFeatures:'Popup Venster Geaartheid',popupResizable:'Resizable',popupStatusBar:'Status Balk',popupLocationBar:'Adres Balk',popupToolbar:'Gereedskap Balk',popupMenuBar:'Menu Balk',popupFullScreen:'Voll Skerm (IE)',popupScrollBars:'Gleibalkstuk',popupDependent:'Afhanklik (Netscape)',popupWidth:'Weite',popupLeft:'Links Posisie',popupHeight:'Hoogde',popupTop:'Bo Posisie',id:'Id',langDir:'Taal rigting',langDirLTR:'Links na regs (LTR)',langDirRTL:'Regs na links (RTL)',acccessKey:'Toegang sleutel',
name:'Naam',langCode:'Taal rigting',tabIndex:'Tab Index',advisoryTitle:'Voorbeveelings Titel',advisoryContentType:'Voorbeveelings inhoud soort',cssClasses:'Skakel Tiepe',charset:'Geskakelde voorbeeld karakterstel',styles:'Styl',selectAnchor:"Kies 'n plekhouer",anchorName:'Volgens plekhouer naam',anchorId:'Volgens element Id',emailAddress:'E-Mail Adres',emailSubject:'Boodskap Opskrif',emailBody:'Boodskap Inhoud',noAnchors:'(Geen plekhouers beskikbaar in dokument}',noUrl:'Voeg asseblief die URL in',noEmail:'Voeg asseblief die e-mail adres in'},anchor:{toolbar:'Plekhouer byvoeg/verander',menu:'Plekhouer eienskappe',title:'Plekhouer eienskappe',name:'Plekhouer Naam',errorName:'Voltooi die plekhouer naam asseblief'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armen
ian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Vind',replace:'Vervang',findWhat:'Soek wat:',replaceWith:'Vervang met:',notFoundMsg:'Die gespesifiseerde karakters word nie gevind nie.',matchCase:'Vergelyk karakter skryfweise',matchWord:'Vergelyk komplete woord',matchCyclic:'Match cyclic',replaceAll:'Vervang alles',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabel',title:'Tabel eienskappe',menu:'Tabel eienskappe',deleteTable:'Tabel verweider',rows:'Reie',columns:'Kolome',border:'Kant groote',align:'Parideering',alignLeft:'Links',alignCenter:'Middel',align
Right:'Regs',width:'Weite',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',height:'Hoogde',cellSpace:'Cell spasieering',cellPad:'Cell buffer',caption:'Beskreiwing',summary:'Opsomming',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Cell verweider',merge:'Cell verenig',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Row
s Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Ry',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Ry verweider'},column:{menu:'Kolom',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Kolom verweider'}},button:{title:'Knop eienskappe',text:'Karakters (Waarde)',type:'Soort',typeBtn:'Knop',typeSbm:'Indien',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'HakBox eienskappe',radioTitle:'PuntBox eienskappe',value:'Waarde',selected:'Uitgekies'},form:{titl
e:'Form eienskappe',menu:'Form eienskappe',action:'Aksie',method:'Metode',encoding:'Encoding'},select:{title:'Opklapbare keuse strook eienskappe',selectInfo:'Info',opAvail:'Beskikbare Opsies',value:'Waarde',size:'Grote',lines:'lyne',chkMulti:'Laat meerere keuses toe',opText:'Karakters',opValue:'Waarde',btnAdd:'Byvoeg',btnModify:'Verander',btnUp:'Op',btnDown:'Af',btnSetValue:'Stel as uitgekiesde waarde',btnDelete:'Verweider'},textarea:{title:'Karakter area eienskappe',cols:'Kolom',rows:'Reie'},textfield:{title:'Karakter strook eienskappe',name:'Naam',value:'Waarde',charWidth:'Karakter weite',maxChars:'Maximale karakters',type:'Soort',typeText:'Karakters',typePass:'Wagwoord'},hidden:{title:'Blinde strook eienskappe',name:'Naam',value:'Waarde'},image:{title:'Beeld eienskappe',titleButton:'Beeld knop eienskappe',menu:'Beeld eienskappe',infoTab:'Beeld informasie',btnUpload:'Stuur dit na die Server',upload:'Uplaai',alt:'Alternatiewe beskrywing',width:'Weidte',height:'Hoogde',lockR
atio:'Behou preporsie',unlockRatio:'Unlock Ratio',resetSize:'Herstel groote',border:'Kant',hSpace:'HSpasie',vSpace:'VSpasie',align:'Paradeer',alignLeft:'Links',alignRight:'Regs',alertUrl:'Voeg asseblief Beeld URL in.',linkTab:'Skakel',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash eienskappe',propertiesTab:'Properties',title:'Flash eienskappe',chkPlay:'Automaties Speel',chkLoop:'Herhaling',chkMenu:'Laat Flash Menu toe',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Wys alles',scaleNoBorder:'Geen kante',scaleFit:'Presiese pas',access:'Script Access',accessAlways
:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Paradeer',alignLeft:'Links',alignAbsBottom:'Abs Onder',alignAbsMiddle:'Abs Middel',alignBaseline:'Baseline',alignBottom:'Onder',alignMiddle:'Middel',alignRight:'Regs',alignTextTop:'Text Bo',alignTop:'Bo',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Agtergrond kleur',width:'Weidte',height:'Hoogde',hSpace:'HSpasie',vSpace:'VSpasie',validateSrc:'Voeg asseblief die URL in',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Spelling nagaan',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoadin
g:'Error loading application service host: %s.',notInDic:'Nie in woordeboek nie',changeTo:'Verander na',btnIgnore:'Ignoreer',btnIgnoreAll:'Ignoreer na-volgende',btnReplace:'Vervang',btnReplaceAll:'vervang na-volgende',btnUndo:'Ont-skep',noSuggestions:'- Geen voorstel -',progress:'Spelling word beproef...',noMispell:'Spellproef kompleet: Geen foute',noChanges:'Spellproef kompleet: Geen woord veranderings',oneChange:'Spellproef kompleet: Een woord verander',manyChanges:'Spellproef kompleet: %1 woorde verander',ieSpellDownload:'Geen Spellproefer geinstaleer nie. Wil U dit aflaai?'},smiley:{toolbar:'Smiley',title:'Voeg Smiley by',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Genommerde lys',bulletedlist:'Gepunkte lys',indent:'Paradeering verleng',outdent:'Paradeering verkort',justify:{left:'Links rig',center:'Rig Middel',right:'Regs rig',block:'Blok paradeer'},blockquote:'Block Quote',clipboard:{title:'Byvoeg',cutError:'U b
rowser se sekuriteit instelling behinder die uitsny aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+X).',copyError:'U browser se sekuriteit instelling behinder die kopieerings aksie. Gebruik asseblief die sleutel kombenasie(Ctrl/Cmd+C).',pasteMsg:'Voeg asseblief die inhoud in die gegewe box by met sleutel kombenasie(<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Van Word af byvoeg',title:'Van Word af byvoeg',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Voeg slegs karakters by',title:'Voeg slegs karakters by'},templates:{button:'Templates',title:'Inhoud Templates',options:'
Template Options',insertOption:'Vervang bestaande inhoud',selectPromptMsg:'Kies die template om te gebruik in die editor<br>(Inhoud word vervang!):',emptyListMsg:'(Geen templates gedefinieerd)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styl',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Karakter formaat',panelTitle:'Karakter formaat',tag_p:'Normaal',tag_pre:'Geformateerd',tag_address:'Adres',tag_h1:'Opskrif 1',tag_h2:'Opskrif 2',tag_h3:'Opskrif 3',tag_h4:'Opskrif 4',tag_h5:'Opskrif 5',tag_h6:'Opskrif 6',tag_div:'Normaal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Lef
t (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Karakters',voiceLabel:'Font',panelTitle:'Karakters'},fontSize:{label:'Karakter grote',voiceLabel:'Font Size',panelTitle:'Karakter grote'},colorButton:{textColorTitle:'Karakter kleur',bgColorTitle:'Agtergrond kleur',panelTitle:'Colors',auto:'Automaties',more:'Meer Kleure...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0
:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on ou
r server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['af']={"dir":"ltr","editor":"Teksverwerker","common":{"editorHelp":"Druk op ALT 0 vir hulp","browseServer":"Blaai op bediener","url":"URL","protocol":"Protokol","upload":"Oplaai","uploadSubmit":"Stuur na bediener","image":"Afbeelding","flash":"Flash","form":"Vorm","checkbox":"Merkhokkie","radio":"Radioknoppie","textField":"Teksveld","textarea":"Teks-area","hiddenField":"Blinde veld","button":"Knop","select":"Keuseveld","imageButton":"Afbeeldingsknop","notSet":"<geen instelling>","id":"Id","name":"Naam","langDir":"Skryfrigting","langDirLtr":"Links na regs (LTR)","langDirRtl":"Regs na links (RTL)","langCode":"Taalkode","longDescr":"Lang beskrywing URL","cssClass":"CSS klasse","advisoryTitle":"Aanbevole titel","cssStyle":"Styl","ok":"OK","cancel":"Kanselleer","close":"Sluit","preview":"Voorbeeld","resize":"Sleep om te herskaal","generalTab":"Algemeen","advancedTab":"Gevorderd","validateNumberFailed":"Hierdie waarde is nie 'n getal nie.","confirmNewPage":"Alle wysi
ginge sal verlore gaan. Is u seker dat u 'n nuwe bladsy wil laai?","confirmCancel":"Sommige opsies is gewysig. Is u seker dat u hierdie dialoogvenster wil sluit?","options":"Opsies","target":"Doel","targetNew":"Nuwe venster (_blank)","targetTop":"Boonste venster (_top)","targetSelf":"Selfde venster (_self)","targetParent":"Oorspronklike venster (_parent)","langDirLTR":"Links na Regs (LTR)","langDirRTL":"Regs na Links (RTL)","styles":"Styl","cssClasses":"CSS klasse","width":"Breedte","height":"Hoogte","align":"Oplyn","alignLeft":"Links","alignRight":"Regs","alignCenter":"Sentreer","alignTop":"Bo","alignMiddle":"Middel","alignBottom":"Onder","invalidValue":"Invalid value.","invalidHeight":"Hoogte moet 'n getal wees","invalidWidth":"Breedte moet 'n getal wees.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\"
field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nie beskikbaar nie</span>"},"about":{"copy":"Kopiereg © $1. Alle regte voorbehou.","dlgTitle":"Info oor CKEditor","help":"Check $1 for help.","moreInfo":"Vir lisensie-informasie, besoek asb. ons webwerf:","title":"Info oor CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Vet","italic":"Skuins","strike":"Deurstreep","subscript":"Onderskrif","superscript":"Bo-skrif","underline":"Onderstreep"},"bidi":{"ltr":"Skryfrigting van links na regs","rtl":"Skryfrigting van regs na links"},"blockquote":{"toolbar":"Sitaatblok"},"clipboard
":{"copy":"Kopiëer","copyError":"U blaaier se sekuriteitsinstelling belet die kopiëringsaksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+C).","cut":"Knip","cutError":"U blaaier se sekuriteitsinstelling belet die outomatiese knip-aksie. Gebruik die sleutelbordkombinasie (Ctrl/Cmd+X).","paste":"Plak","pasteArea":"Plak-area","pasteMsg":"Plak die teks in die volgende teks-area met die sleutelbordkombinasie (<STRONG>Ctrl/Cmd+V</STRONG>) en druk <STRONG>OK</STRONG>.","securityMsg":"Weens u blaaier se sekuriteitsinstelling is data op die knipbord nie toeganklik nie. U kan dit eers weer in hierdie venster plak.","title":"Byvoeg"},"colorbutton":{"auto":"Outomaties","bgColorTitle":"Agtergrondkleur","colors":{"000":"Swart","800000":"Meroen","8B4513":"Sjokoladebruin","2F4F4F":"Donkerleisteengrys","008080":"Blougroen","000080":"Vlootblou","4B0082":"Indigo","696969":"Donkergrys","B22222":"Rooibaksteen","A52A2A":"Bruin","DAA520":"Donkergeel","006400":"Donkergroen","40E0D0":"Turkoois","
0000CD":"Middelblou","800080":"Pers","808080":"Grys","F00":"Rooi","FF8C00":"Donkeroranje","FFD700":"Goud","008000":"Groen","0FF":"Siaan","00F":"Blou","EE82EE":"Viooltjieblou","A9A9A9":"Donkergrys","FFA07A":"Ligsalm","FFA500":"Oranje","FFFF00":"Geel","00FF00":"Lemmetjie","AFEEEE":"Ligturkoois","ADD8E6":"Ligblou","DDA0DD":"Pruim","D3D3D3":"Liggrys","FFF0F5":"Linne","FAEBD7":"Ivoor","FFFFE0":"Liggeel","F0FFF0":"Heuningdou","F0FFFF":"Asuur","F0F8FF":"Ligte hemelsblou","E6E6FA":"Laventel","FFF":"Wit"},"more":"Meer Kleure...","panelTitle":"Kleure","textColorTitle":"Tekskleur"},"colordialog":{"clear":"Herstel","highlight":"Aktief","options":"Kleuropsies","selected":"Geselekteer","title":"Kies kleur"},"templates":{"button":"Sjablone","emptyListMsg":"(Geen sjablone gedefineer nie)","insertOption":"Vervang huidige inhoud","options":"Sjabloon opsies","selectPromptMsg":"Kies die sjabloon om te gebruik in die redigeerder (huidige inhoud gaan verlore):","title":"Inhoud Sjablone"},"context
menu":{"options":"Konteks Spyskaart-opsies"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Aanbevole Titel","cssClassInputLabel":"CSS klasse","edit":"Wysig Div","inlineStyleInputLabel":"Inlyn Styl","langDirLTRLabel":"Links na regs (LTR)","langDirLabel":"Skryfrigting","langDirRTLLabel":"Regs na links (RTL)","languageCodeInputLabel":" Taalkode","remove":"Verwyder Div","styleSelectLabel":"Styl","title":"Skep Div houer","toolbar":"Skep Div houer"},"toolbar":{"toolbarCollapse":"Verklein werkbalk","toolbarExpand":"Vergroot werkbalk","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elemente-pad","eleTitle":"%1 element"},"list":{"bulletedlist":"Ongenommerde lys","numberedlist":"Genommerde lys"},"indent":{"indent":"Vergroot ins
pring","outdent":"Verklein inspring"},"find":{"find":"Soek","findOptions":"Find Options","findWhat":"Soek na:","matchCase":"Hoof/kleinletter sensitief","matchCyclic":"Soek deurlopend","matchWord":"Hele woord moet voorkom","notFoundMsg":"Teks nie gevind nie.","replace":"Vervang","replaceAll":"Vervang alles","replaceSuccessMsg":"%1 voorkoms(te) vervang.","replaceWith":"Vervang met:","title":"Soek en vervang"},"fakeobjects":{"anchor":"Anker","flash":"Flash animasie","hiddenfield":"Verborge veld","iframe":"IFrame","unknown":"Onbekende objek"},"flash":{"access":"Skrip toegang","accessAlways":"Altyd","accessNever":"Nooit","accessSameDomain":"Selfde domeinnaam","alignAbsBottom":"Absoluut-onder","alignAbsMiddle":"Absoluut-middel","alignBaseline":"Basislyn","alignTextTop":"Teks bo","bgcolor":"Agtergrondkleur","chkFull":"Laat volledige skerm toe","chkLoop":"Herhaal","chkMenu":"Flash spyskaart aan","chkPlay":"Speel outomaties","flashvars":"Veranderlikes vir Flash","hSpace":"HSpasie","p
roperties":"Flash eienskappe","propertiesTab":"Eienskappe","quality":"Kwaliteit","qualityAutoHigh":"Outomaties hoog","qualityAutoLow":"Outomaties laag","qualityBest":"Beste","qualityHigh":"Hoog","qualityLow":"Laag","qualityMedium":"Gemiddeld","scale":"Skaal","scaleAll":"Wys alles","scaleFit":"Presiese pas","scaleNoBorder":"Geen rand","title":"Flash eienskappe","vSpace":"VSpasie","validateHSpace":"HSpasie moet 'n heelgetal wees.","validateSrc":"Voeg die URL in","validateVSpace":"VSpasie moet 'n heelgetal wees.","windowMode":"Venster modus","windowModeOpaque":"Ondeursigtig","windowModeTransparent":"Deursigtig","windowModeWindow":"Venster"},"font":{"fontSize":{"label":"Grootte","voiceLabel":"Fontgrootte","panelTitle":"Fontgrootte"},"label":"Font","panelTitle":"Fontnaam","voiceLabel":"Font"},"forms":{"button":{"title":"Knop eienskappe","text":"Teks (Waarde)","type":"Soort","typeBtn":"Knop","typeSbm":"Stuur","typeRst":"Maak leeg"},"checkboxAndRadio":{"checkboxTitle":"Merkhokkie e
ienskappe","radioTitle":"Radioknoppie eienskappe","value":"Waarde","selected":"Geselekteer"},"form":{"title":"Vorm eienskappe","menu":"Vorm eienskappe","action":"Aksie","method":"Metode","encoding":"Kodering"},"hidden":{"title":"Verborge veld eienskappe","name":"Naam","value":"Waarde"},"select":{"title":"Keuseveld eienskappe","selectInfo":"Info","opAvail":"Beskikbare opsies","value":"Waarde","size":"Grootte","lines":"Lyne","chkMulti":"Laat meer as een keuse toe","opText":"Teks","opValue":"Waarde","btnAdd":"Byvoeg","btnModify":"Wysig","btnUp":"Op","btnDown":"Af","btnSetValue":"Stel as geselekteerde waarde","btnDelete":"Verwyder"},"textarea":{"title":"Teks-area eienskappe","cols":"Kolomme","rows":"Rye"},"textfield":{"title":"Teksveld eienskappe","name":"Naam","value":"Waarde","charWidth":"Breedte (karakters)","maxChars":"Maksimum karakters","type":"Soort","typeText":"Teks","typePass":"Wagwoord","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"U
RL"}},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Opskrif 1","tag_h2":"Opskrif 2","tag_h3":"Opskrif 3","tag_h4":"Opskrif 4","tag_h5":"Opskrif 5","tag_h6":"Opskrif 6","tag_p":"Normaal","tag_pre":"Opgemaak"},"horizontalrule":{"toolbar":"Horisontale lyn invoeg"},"iframe":{"border":"Wys rand van raam","noUrl":"Gee die iframe URL","scrolling":"Skuifbalke aan","title":"IFrame Eienskappe","toolbar":"IFrame"},"image":{"alertUrl":"Gee URL van afbeelding.","alt":"Alternatiewe teks","border":"Rand","btnUpload":"Stuur na bediener","button2Img":"Wil u die geselekteerde afbeeldingsknop vervang met 'n eenvoudige afbeelding?","hSpace":"HSpasie","img2Button":"Wil u die geselekteerde afbeelding vervang met 'n afbeeldingsknop?","infoTab":"Afbeelding informasie","linkTab":"Skakel","lockRatio":"Vaste proporsie","menu":"Afbeelding eienskappe","resetSize":"Herstel grootte","title":"Afbeelding eienskappe","titleButton":"Afbeeldingsknop
eienskappe","upload":"Oplaai","urlMissing":"Die URL na die afbeelding ontbreek.","vSpace":"VSpasie","validateBorder":"Rand moet 'n heelgetal wees.","validateHSpace":"HSpasie moet 'n heelgetal wees.","validateVSpace":"VSpasie moet 'n heelgetal wees."},"smiley":{"options":"Lagbekkie opsies","title":"Voeg lagbekkie by","toolbar":"Lagbekkie"},"justify":{"block":"Uitvul","center":"Sentreer","left":"Links oplyn","right":"Regs oplyn"},"link":{"acccessKey":"Toegangsleutel","advanced":"Gevorderd","advisoryContentType":"Aanbevole inhoudstipe","advisoryTitle":"Aanbevole titel","anchor":{"toolbar":"Anker byvoeg/verander","menu":"Anker-eienskappe","title":"Anker-eienskappe","name":"Ankernaam","errorName":"Voltooi die ankernaam asseblief","remove":"Remove Anchor"},"anchorId":"Op element Id","anchorName":"Op ankernaam","charset":"Karakterstel van geskakelde bron","cssClasses":"CSS klasse","emailAddress":"E-posadres","emailBody":"Berig-inhoud","emailSubject":"Berig-onderwerp","id":"Id","inf
o":"Skakel informasie","langCode":"Taalkode","langDir":"Skryfrigting","langDirLTR":"Links na regs (LTR)","langDirRTL":"Regs na links (RTL)","menu":"Wysig skakel","name":"Naam","noAnchors":"(Geen ankers beskikbaar in dokument)","noEmail":"Gee die e-posadres","noUrl":"Gee die skakel se URL","other":"<ander>","popupDependent":"Afhanklik (Netscape)","popupFeatures":"Eienskappe van opspringvenster","popupFullScreen":"Volskerm (IE)","popupLeft":"Posisie links","popupLocationBar":"Adresbalk","popupMenuBar":"Spyskaartbalk","popupResizable":"Herskaalbaar","popupScrollBars":"Skuifbalke","popupStatusBar":"Statusbalk","popupToolbar":"Werkbalk","popupTop":"Posisie bo","rel":"Relationship","selectAnchor":"Kies 'n anker","styles":"Styl","tabIndex":"Tab indeks","target":"Doel","targetFrame":"<raam>","targetFrameName":"Naam van doelraam","targetPopup":"<opspringvenster>","targetPopupName":"Naam van opspringvenster","title":"Skakel","toAnchor":"Anker in bladsy","toEmail":"E-pos","toUrl":"URL"
,"toolbar":"Skakel invoeg/wysig","type":"Skakelsoort","unlink":"Verwyder skakel","upload":"Oplaai"},"liststyle":{"armenian":"Armeense nommering","bulletedTitle":"Eienskappe van ongenommerde lys","circle":"Sirkel","decimal":"Desimale syfers (1, 2, 3, ens.)","decimalLeadingZero":"Desimale syfers met voorloopnul (01, 02, 03, ens.)","disc":"Skyf","georgian":"Georgiese nommering (an, ban, gan, ens.)","lowerAlpha":"Kleinletters (a, b, c, d, e, ens.)","lowerGreek":"Griekse kleinletters (alpha, beta, gamma, ens.)","lowerRoman":"Romeinse kleinletters (i, ii, iii, iv, v, ens.)","none":"Geen","notset":"<nie ingestel nie>","numberedTitle":"Eienskappe van genommerde lys","square":"Vierkant","start":"Begin","type":"Tipe","upperAlpha":"Hoofletters (A, B, C, D, E, ens.)","upperRoman":"Romeinse hoofletters (I, II, III, IV, V, ens.)","validateStartNumber":"Beginnommer van lys moet 'n heelgetal wees."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimaliseer","minimi
ze":"Minimaliseer"},"newpage":{"toolbar":"Nuwe bladsy"},"pagebreak":{"alt":"Bladsy-einde","toolbar":"Bladsy-einde invoeg"},"pastetext":{"button":"Plak as eenvoudige teks","title":"Plak as eenvoudige teks"},"pastefromword":{"confirmCleanup":"Die teks wat u wil plak lyk asof dit uit Word gekopiëer is. Wil u dit eers skoonmaak voordat dit geplak word?","error":"Die geplakte teks kon nie skoongemaak word nie, weens 'n interne fout","title":"Plak vanuit Word","toolbar":"Plak vanuit Word"},"preview":{"preview":"Voorbeeld"},"print":{"toolbar":"Druk"},"removeformat":{"toolbar":"Verwyder opmaak"},"save":{"toolbar":"Bewaar"},"selectall":{"toolbar":"Selekteer alles"},"showblocks":{"toolbar":"Toon blokke"},"sourcearea":{"toolbar":"Bron"},"specialchar":{"options":"Spesiale karakter-opsies","title":"Kies spesiale karakter","toolbar":"Voeg spesiaale karakter in"},"scayt":{"about":"SCAYT info","aboutTab":"Info","addWord":"Voeg woord by","allCaps":"Ignoreer woorde in hoofletters","dic_creat
e":"Skep","dic_delete":"Verwijder","dic_field_name":"Naam van woordeboek","dic_info":"Aanvanklik word die gebruikerswoordeboek in 'n koekie gestoor. Koekies is egter beperk in grootte. Wanneer die gebruikerswoordeboek te groot vir 'n koekie geword het, kan dit op ons bediener gestoor word. Om u persoonlike woordeboek op ons bediener te stoor, gee asb. 'n naam vir u woordeboek. Indien u alreeds 'n gestoorde woordeboek het, tik die naam en kliek op die Herstel knop.","dic_rename":"Hernoem","dic_restore":"Herstel","dictionariesTab":"Woordeboeke","disable":"SCAYT af","emptyDic":"Woordeboeknaam mag nie leeg wees nie.","enable":"SCAYT aan","ignore":"Ignoreer","ignoreAll":"Ignoreer alles","ignoreDomainNames":"Ignoreer domeinname","langs":"Tale","languagesTab":"Tale","mixedCase":"Ignoreer woorde met hoof- en kleinletters","mixedWithDigits":"Ignoreer woorde met syfers","moreSuggestions":"Meer voorstelle","opera_title":"Nie ondersteun deur Opera nie","options":"Opsies","optionsTab":"O
psies","title":"Speltoets terwyl u tik","toggle":"SCAYT wissel aan/af","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styl","panelTitle":"Opmaak style","panelTitle1":"Blok style","panelTitle2":"Inlyn style","panelTitle3":"Objek style"},"table":{"border":"Randbreedte","caption":"Naam","cell":{"menu":"Sel","insertBefore":"Voeg sel in voor","insertAfter":"Voeg sel in na","deleteCell":"Verwyder sel","merge":"Voeg selle saam","mergeRight":"Voeg saam na regs","mergeDown":"Voeg saam ondertoe","splitHorizontal":"Splits sel horisontaal","splitVertical":"Splits sel vertikaal","title":"Sel eienskappe","cellType":"Sel tipe","rowSpan":"Omspan rye","colSpan":"Omspan kolomme","wordWrap":"Woord terugloop","hAlign":"Horisontale oplyning","vAlign":"Vertikale oplyning","alignBaseline":"Basislyn","bgColor":"Agtergrondkleur","borderColor":"Randkleur","data":"Inhoud","header":"Opskrif","yes":"Ja","no":"Nee","invalidWidth":"Selbreedte moet 'n getal wees.","invalidHeight":"Selhoogte moet
'n getal wees.","invalidRowSpan":"Omspan rye moet 'n heelgetal wees.","invalidColSpan":"Omspan kolomme moet 'n heelgetal wees.","chooseColor":"Kies"},"cellPad":"Sel-spasie","cellSpace":"Sel-afstand","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in na","deleteColumn":"Verwyder kolom"},"columns":"Kolomme","deleteTable":"Verwyder tabel","headers":"Opskrifte","headersBoth":"Beide ","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste ry","invalidBorder":"Randbreedte moet 'n getal wees.","invalidCellPadding":"Sel-spasie moet 'n getal wees.","invalidCellSpacing":"Sel-afstand moet 'n getal wees.","invalidCols":"Aantal kolomme moet 'n getal groter as 0 wees.","invalidHeight":"Tabelhoogte moet 'n getal wees.","invalidRows":"Aantal rye moet 'n getal groter as 0 wees.","invalidWidth":"Tabelbreedte moet 'n getal wees.","menu":"Tabel eienskappe","row":{"menu":"Ry","insertBefore":"Voeg ry in voor","insertAfter":"Voeg ry in na
","deleteRow":"Verwyder ry"},"rows":"Rye","summary":"Opsomming","title":"Tabel eienskappe","toolbar":"Tabel","widthPc":"persent","widthPx":"piksels","widthUnit":"breedte-eenheid"},"undo":{"redo":"Oordoen","undo":"Ontdoen"},"wsc":{"btnIgnore":"Ignoreer","btnIgnoreAll":"Ignoreer alles","btnReplace":"Vervang","btnReplaceAll":"vervang alles","btnUndo":"Ontdoen","changeTo":"Verander na","errorLoading":"Fout by inlaai van diens: %s.","ieSpellDownload":"Speltoetser is nie geïnstalleer nie. Wil u dit nou aflaai?","manyChanges":"Klaar met speltoets: %1 woorde verander","noChanges":"Klaar met speltoets: Geen woorde verander nie","noMispell":"Klaar met speltoets: Geen foute nie","noSuggestions":"- Geen voorstel -","notAvailable":"Jammer, hierdie diens is nie nou beskikbaar nie.","notInDic":"Nie in woordeboek nie","oneChange":"Klaar met speltoets: Een woord verander","progress":"Spelling word getoets...","title":"Speltoetser","toolbar":"Speltoets"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ar.js b/share/static/RichText/lang/ar.js
index 74b7cf5..42ccd33 100644
--- a/share/static/RichText/lang/ar.js
+++ b/share/static/RichText/lang/ar.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ar={dir:'rtl',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'اÙÙ
صدر',newPage:'ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©',save:'ØÙظ',preview:'Ù
عاÙÙØ© Ø§ÙØµÙØØ©',cut:'ÙØµ',copy:'ÙØ³Ø®',paste:'ÙØµÙ',print:'طباعة',underline:'ØªØ³Ø·ÙØ±',bold:'غاÙ
Ù',italic:'Ù
ائÙ',selectAll:'ØªØØ¯Ùد اÙÙÙ',removeFormat:'Ø¥Ø²Ø§ÙØ© Ø§ÙØªÙسÙÙØ§Øª',strike:'ÙØªÙسط٠خط',subscript:'Ù
ÙØ®Ùض',superscript:'Ù
Ø±ØªÙØ¹',horizontalrule:'خط ÙØ§ØµÙ',pagebreak:'Ø¥Ø¯Ø®Ø§Ù ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©',unlink:'Ø¥Ø²Ø§ÙØ© رابط',undo:'تراجع',redo:'إعادة',common:{browseServer:'ØªØµÙØ',url:'Ø§ÙØ±Ø§Ø¨Ø·',protocol:'Ø§ÙØ¨Ø±ÙتÙÙÙÙ',upload:'Ø±ÙØ¹',uploadSubmit:'أرسÙ',image:'ØµÙØ±Ø©',flash:'ÙÙØ§Ø´',form:'ÙÙ
ÙØ°Ø¬',checkbox:'Ø®Ø§ÙØ© Ø¥Ø®ØªÙØ§Ø±',radio:'زر Ø§Ø®ØªÙØ§Ø±',textField:'Ù
ربع ÙØµ',textarea:'Ù
Ø³Ø§ØØ© ÙØµÙØ©',hiddenField:'إدراج ØÙÙ Ø®ÙÙ',button:'زر ضغط'
,select:'اختار',imageButton:'زر ØµÙØ±Ø©',notSet:'<بدÙÙ ØªØØ¯Ùد>',id:'Ø§ÙØ±ÙÙ
',name:'Ø§ÙØ§Ø³Ù
',langDir:'إتجا٠اÙÙØµ',langDirLtr:'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',langDirRtl:'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',langCode:'رÙ
ز اÙÙØºØ©',longDescr:'اÙÙØµÙ Ø§ÙØªÙصÙÙÙ',cssClass:'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',advisoryTitle:'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',cssStyle:'ÙÙ
Ø·',ok:'Ù
ÙØ§ÙÙ',cancel:'Ø¥ÙØºØ§Ø¡ Ø§ÙØ£Ù
ر',close:'Close',preview:'Preview',generalTab:'عاÙ
',advancedTab:'Ù
ØªÙØ¯Ù
',validateNumberFailed:'ÙØ§ÙÙØ¬Ø¯ ÙØªÙجة',confirmNewPage:'ستÙÙØ¯ Ø£Ù Ù
تغÙÙØ±Ø§Øª اذا ÙÙ
تÙÙ
بØÙØ¸ÙØ§ اÙÙØ§. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ø£ÙÙ ØªØ±ÙØ¯ ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©Ø',confirmCancel:'بعض Ø§ÙØ®Ùارات ÙØ¯ ØªØºÙØ±Øª. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ù
Ù Ø¥ØºÙØ§Ù Ù
ربع اÙÙØµØ',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Pare
nt Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, ØºÙØ± Ù
تاØ</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'إدراج خاص.Ù',title:'اختر Ø§ÙØ®Ùاص',options:'Special Character Options'},link:{toolbar:'رابط',other:'<أخرÙ>',menu:'ØªØØ±Ùر رابط',title:'إرتباط تشعبÙ',info:'Ù
عÙÙÙ
ات Ø§ÙØ±Ø§Ø¨Ø·',target:'ÙØ¯Ù Ø§ÙØ±Ø§Ø¨Ø·',upload:'Ø±ÙØ¹',advanced:'Ù
ØªÙØ¯Ù
',type:'ÙÙØ¹ Ø§ÙØ±Ø¨Ø·',toUrl:'URL',toAnchor:'Ù
ÙØ§Ù ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯',toEmail:'Ø¨Ø±ÙØ¯ Ø¥ÙÙØªØ±ÙÙÙ',targetFrame:'<إطار>',targetPopup:'<ÙØ§Ùذة Ù
ÙØ¨Ø«ÙØ©>',targetFrameName:'اسÙ
Ø§ÙØ¥Ø·Ø§Ø± اÙÙ
Ø³ØªÙØ¯Ù',targetPopupName:'اسÙ
اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©',popupFeatures:'خصائص اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©',popupResizable:'ÙØ§Ø¨ÙØ© Ø§ÙØªØ´ÙÙÙ',popupStatusBar:'شر
ÙØ· Ø§ÙØØ§ÙØ©',popupLocationBar:'Ø´Ø±ÙØ· Ø§ÙØ¹ÙÙØ§Ù',popupToolbar:'Ø´Ø±ÙØ· Ø§ÙØ£Ø¯Ùات',popupMenuBar:'اÙÙÙØ§Ø¦Ù
Ø§ÙØ±Ø¦ÙØ³ÙØ©',popupFullScreen:'Ù
ÙØ¦ Ø§ÙØ´Ø§Ø´Ø© (IE)',popupScrollBars:'أشرطة Ø§ÙØªÙ
Ø±ÙØ±',popupDependent:'تابع (Netscape)',popupWidth:'Ø§ÙØ¹Ø±Ø¶',popupLeft:'Ø§ÙØªÙ
Ø±ÙØ² ÙÙÙØ³Ø§Ø±',popupHeight:'Ø§ÙØ¥Ø±ØªÙاع',popupTop:'Ø§ÙØªÙ
Ø±ÙØ² ÙÙØ£Ø¹ÙÙ',id:'ÙÙÙØ©',langDir:'إتجا٠اÙÙØµ',langDirLTR:'اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)',langDirRTL:'اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)',acccessKey:'Ù
ÙØ§ØªÙØ Ø§ÙØ¥Ø®ØªØµØ§Ø±',name:'Ø§ÙØ§Ø³Ù
',langCode:'ÙÙØ¯ اÙÙØµ',tabIndex:'Ø§ÙØªØ±ØªÙب',advisoryTitle:'عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±',advisoryContentType:'ÙÙØ¹ Ø§ÙØªÙØ±ÙØ±',cssClasses:'ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ',charset:'ترÙ
ÙØ² اÙÙ
ادة اÙÙ
Ø·ÙÙØ¨Ø©',styles:'ÙÙ
Ø·',selectAnchor:'اختر Ø¹ÙØ§Ù
Ø© Ù
Ø±Ø¬Ø¹ÙØ©',anchorName:'ØØ³Ø¨ Ø§ÙØ§Ø³Ù
',anchorId:'ØØ³Ø¨ رÙÙ
Ø§ÙØ¹Ùصر',emailAddress:'عÙÙØ§Ù اÙ
Ø¨Ø±ÙØ¯ Ø¥ÙÙØªØ±ÙÙÙ',emailSubject:'Ù
ÙØ¶Ùع Ø§ÙØ±Ø³Ø§ÙØ©',emailBody:'Ù
ØØªÙÙ Ø§ÙØ±Ø³Ø§ÙØ©',noAnchors:'(ÙØ§ ØªÙØ¬Ø¯ Ø¹ÙØ§Ù
ات Ù
Ø±Ø¬Ø¹ÙØ© ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯)',noUrl:'Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·',noEmail:'Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ'},anchor:{toolbar:'إشارة Ù
Ø±Ø¬Ø¹ÙØ©',menu:'ØªØØ±Ùر Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',title:'خصائص Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',name:'اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©',errorName:'Ø§ÙØ±Ø¬Ø§Ø¡ ÙØªØ§Ø¨Ø© اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i,
ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Ø¨ØØ« ÙØ§Ø³ØªØ¨Ø¯Ø§Ù',find:'Ø¨ØØ«',replace:'إستبداÙ',findWhat:'Ø§ÙØ¨ØØ« بÙ:',replaceWith:'إستبدا٠بÙ:',notFoundMsg:'ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠اÙÙØµ اÙÙ
ØØ¯Ø¯.',matchCase:'Ù
Ø·Ø§Ø¨ÙØ© ØØ§ÙØ© Ø§ÙØ£ØØ±Ù',matchWord:'Ù
Ø·Ø§Ø¨ÙØ© باÙÙØ§Ù
Ù',matchCyclic:'Ù
Ø·Ø§Ø¨ÙØ© Ø¯ÙØ±ÙØ©',replaceAll:'إستبدا٠اÙÙÙ',replaceSuccessMsg:'تÙ
استبدا٠1% Ù
Ù Ø§ÙØØ§ÙØ§Øª '},table:{toolbar:'جدÙÙ',title:'خصائص Ø§ÙØ¬Ø¯ÙÙ',menu:'خصائص Ø§ÙØ¬Ø¯ÙÙ',deleteTable:'ØØ°Ù Ø§ÙØ¬Ø¯ÙÙ',rows:'صÙÙÙ',columns:'أعÙ
دة',border:'Ø§ÙØØ¯ÙØ¯',align:'اÙÙ
ØØ§Ø°Ø§Ø©',alignLeft:'ÙØ³Ø§Ø±'
,alignCenter:'ÙØ³Ø·',alignRight:'ÙÙ
ÙÙ',width:'Ø§ÙØ¹Ø±Ø¶',widthPx:'Ø¨ÙØ³Ù',widthPc:'باÙÙ
ئة',widthUnit:'width unit',height:'Ø§ÙØ¥Ø±ØªÙاع',cellSpace:'تباعد Ø§ÙØ®ÙØ§ÙØ§',cellPad:'اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',caption:'اÙÙØµÙ',summary:'Ø§ÙØ®Ùاصة',headers:'Ø§ÙØ¹ÙاÙÙÙ',headersNone:'بدÙÙ',headersColumn:'Ø§ÙØ¹Ù
ÙØ¯ Ø§ÙØ£ÙÙ',headersRow:'Ø§ÙØµÙ Ø§ÙØ£ÙÙ',headersBoth:'ÙÙØ§ÙÙ
ا',invalidRows:'عدد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.',invalidCols:'عدد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.',invalidBorder:'ØØ¬Ù
Ø§ÙØØ¯ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',invalidWidth:'عرض Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',invalidHeight:'Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',invalidCellSpacing:'اÙÙ
Ø³Ø§ÙØ© بÙÙ Ø§ÙØ®ÙØ§ÙØ§ ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ.',invalidCellPadding:'اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø© ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ',c
ell:{menu:'Ø®ÙÙØ©',insertBefore:'إدراج Ø®ÙÙØ© ÙØ¨Ù',insertAfter:'إدراج Ø®ÙÙØ© بعد',deleteCell:'ØØ°Ù Ø®ÙÙØ©',merge:'دÙ
ج Ø®ÙØ§Ùا',mergeRight:'دÙ
ج ÙÙÙÙ
ÙÙ',mergeDown:'دÙ
ج ÙÙØ£Ø³ÙÙ',splitHorizontal:'ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© Ø£ÙÙÙØ§Ù',splitVertical:'ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© عÙ
ÙØ¯ÙاÙ',title:'خصائص Ø§ÙØ®ÙÙØ©',cellType:'ÙÙØ¹ Ø§ÙØ®ÙÙØ©',rowSpan:'اÙ
تداد Ø§ÙØµÙÙÙ',colSpan:'اÙ
تداد Ø§ÙØ£Ø¹Ù
دة',wordWrap:'Ø§ÙØªÙا٠اÙÙØµ',hAlign:'Ù
ØØ§Ø°Ø§Ø© Ø£ÙÙÙØ©',vAlign:'Ù
ØØ§Ø°Ø§Ø© Ø±Ø£Ø³ÙØ©',alignTop:'أعÙÙ',alignMiddle:'ÙØ³Ø·',alignBottom:'أسÙÙ',alignBaseline:'خط اÙÙØ§Ø¹Ø¯Ø©',bgColor:'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',borderColor:'ÙÙÙ Ø§ÙØØ¯ÙØ¯',data:'Ø¨ÙØ§Ùات',header:'عÙÙØ§Ù',yes:'ÙØ¹Ù
',no:'ÙØ§',invalidWidth:'عرض Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',invalidHeight:'Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',invalidRowSpan:'اÙ
تداد Ø§ÙØµÙÙÙ ÙØ¬Ø
¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.',invalidColSpan:'اÙ
تداد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.',chooseColor:'اختر'},row:{menu:'صÙ',insertBefore:'إدراج ØµÙ ÙØ¨Ù',insertAfter:'إدراج ص٠بعد',deleteRow:'ØØ°Ù صÙÙÙ'},column:{menu:'عÙ
ÙØ¯',insertBefore:'إدراج عÙ
ÙØ¯ ÙØ¨Ù',insertAfter:'إدراج عÙ
ÙØ¯ بعد',deleteColumn:'ØØ°Ù أعÙ
دة'}},button:{title:'خصائص زر Ø§ÙØ¶ØºØ·',text:'اÙÙÙÙ
Ø©/Ø§ÙØªØ³Ù
ÙØ©',type:'ÙÙØ¹ Ø§ÙØ²Ø±',typeBtn:'زر',typeSbm:'إرساÙ',typeRst:'إعادة تعÙÙÙ'},checkboxAndRadio:{checkboxTitle:'خصائص Ø®Ø§ÙØ© Ø§ÙØ¥Ø®ØªÙار',radioTitle:'خصائص زر Ø§ÙØ®Ùار',value:'اÙÙÙÙ
Ø©',selected:'Ù
ØØ¯Ø¯'},form:{title:'خصائص اÙÙÙ
ÙØ°Ø¬',menu:'خصائص اÙÙÙ
ÙØ°Ø¬',action:'اسÙ
اÙÙ
ÙÙ',method:'Ø§ÙØ£Ø³ÙÙØ¨',encoding:'تشÙÙØ±'},select:{title:'خصائص Ø§Ø®ØªÙØ§Ø± Ø§ÙØÙÙ',selectInfo:'اختار Ù
عÙÙÙ
ات',opAvail
:'Ø§ÙØ®Ùارات اÙÙ
ØªØ§ØØ©',value:'اÙÙÙÙ
Ø©',size:'Ø§ÙØØ¬Ù
',lines:'Ø§ÙØ£Ø³Ø·Ø±',chkMulti:'Ø§ÙØ³Ù
Ø§Ø Ø¨ØªØØ¯Ùدات Ù
تعددة',opText:'اÙÙØµ',opValue:'اÙÙÙÙ
Ø©',btnAdd:'Ø¥Ø¶Ø§ÙØ©',btnModify:'تعدÙÙ',btnUp:'أعÙÙ',btnDown:'أسÙÙ',btnSetValue:'إجعÙÙØ§ Ù
ØØ¯Ø¯Ø©',btnDelete:'Ø¥Ø²Ø§ÙØ©'},textarea:{title:'خصائص Ù
Ø³Ø§ØØ© اÙÙØµ',cols:'Ø§ÙØ£Ø¹Ù
دة',rows:'Ø§ÙØµÙÙÙ'},textfield:{title:'خصائص Ù
ربع اÙÙØµ',name:'Ø§ÙØ§Ø³Ù
',value:'اÙÙÙÙ
Ø©',charWidth:'عرض Ø§ÙØ³Ù
ات',maxChars:'Ø§ÙØµÙ عدد ÙÙØ³Ù
ات',type:'ÙÙØ¹ اÙÙ
ØØªÙÙ',typeText:'ÙØµ',typePass:'ÙÙÙ
Ø© Ù
Ø±ÙØ±'},hidden:{title:'خصائص Ø§ÙØÙ٠اÙÙ
Ø®ÙÙ',name:'Ø§ÙØ§Ø³Ù
',value:'اÙÙÙÙ
Ø©'},image:{title:'خصائص Ø§ÙØµÙرة',titleButton:'خصائص زر Ø§ÙØµÙرة',menu:'خصائص Ø§ÙØµÙرة',infoTab:'Ù
عÙÙÙ
ات Ø§ÙØµÙرة',btnUpload:'أرسÙÙØ§ ÙÙØ®Ø§Ø¯Ù
',upload:'Ø±ÙØ¹',alt:'عÙÙØ§Ù Ø§ÙØµÙرة',width:
'Ø§ÙØ¹Ø±Ø¶',height:'Ø§ÙØ¥Ø±ØªÙاع',lockRatio:'ØªÙØ§Ø³Ù Ø§ÙØØ¬Ù
',unlockRatio:'Unlock Ratio',resetSize:'إستعادة Ø§ÙØØ¬Ù
Ø§ÙØ£ØµÙÙ',border:'سÙ
Ù Ø§ÙØØ¯ÙØ¯',hSpace:'تباعد Ø£ÙÙÙ',vSpace:'تباعد عÙ
ÙØ¯Ù',align:'Ù
ØØ§Ø°Ø§Ø©',alignLeft:'ÙØ³Ø§Ø±',alignRight:'ÙÙ
ÙÙ',alertUrl:'ÙØ¶ÙØ§Ù Ø£ÙØªØ¨ اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ØªÙØ¬Ø¯ عÙÙÙ ÙØ°Ù Ø§ÙØµÙرة.',linkTab:'Ø§ÙØ±Ø§Ø¨Ø·',button2Img:'ÙÙ ØªØ±ÙØ¯ تØÙÙ٠زر Ø§ÙØµÙرة اÙÙ
ختار Ø¥ÙÙ ØµÙØ±Ø© Ø¨Ø³ÙØ·Ø©Ø',img2Button:'ÙÙ ØªØ±ÙØ¯ تØÙÙÙ Ø§ÙØµÙرة اÙÙ
ختارة Ø¥Ù٠زر ØµÙØ±Ø©Ø',urlMissing:'عÙÙØ§Ù Ù
صدر Ø§ÙØµÙرة Ù
ÙÙÙØ¯',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'خصائص اÙÙÙØ§Ø´',propertiesTab:'Ø§ÙØ®ØµØ§Ø¦Øµ',title:'Ø
®ØµØ§Ø¦Øµ ÙÙÙÙ
اÙÙÙØ§Ø´',chkPlay:'تشغÙ٠تÙÙØ§Ø¦Ù',chkLoop:'ØªÙØ±Ø§Ø±',chkMenu:'تÙ
ÙÙÙ ÙØ§Ø¦Ù
Ø© ÙÙÙÙ
اÙÙÙØ§Ø´',chkFull:'Ù
ÙØ¡ Ø§ÙØ´Ø§Ø´Ø©',scale:'Ø§ÙØØ¬Ù
',scaleAll:'Ø¥Ø¸ÙØ§Ø± اÙÙÙ',scaleNoBorder:'Ø¨ÙØ§ ØØ¯Ùد',scaleFit:'ضبط تاÙ
',access:'دخÙ٠اÙÙØµ Ø§ÙØ¨Ø±Ù
جÙ',accessAlways:'دائÙ
اÙ',accessSameDomain:'ÙÙØ³ اÙÙØ·Ø§Ù',accessNever:'Ù
Ø·ÙÙØ§Ù',align:'Ù
ØØ§Ø°Ø§Ø©',alignLeft:'ÙØ³Ø§Ø±',alignAbsBottom:'أسÙ٠اÙÙØµ',alignAbsMiddle:'ÙØ³Ø· Ø§ÙØ³Ø·Ø±',alignBaseline:'عÙÙ Ø§ÙØ³Ø·Ø±',alignBottom:'أسÙÙ',alignMiddle:'ÙØ³Ø·',alignRight:'ÙÙ
ÙÙ',alignTextTop:'أعÙ٠اÙÙØµ',alignTop:'أعÙÙ',quality:'Ø¬ÙØ¯Ø©',qualityBest:'Ø£ÙØ¶Ù',qualityHigh:'عاÙÙØ©',qualityAutoHigh:'عاÙÙØ© تÙÙØ§Ø¦ÙاÙ',qualityMedium:'Ù
ØªÙØ³Ø·Ø©',qualityAutoLow:'Ù
ÙØ®Ùضة تÙÙØ§Ø¦ÙاÙ',qualityLow:'Ù
ÙØ®Ùضة',windowModeWindow:'ÙØ§Ùذة',windowModeOpaque:'ØºÙØ± Ø´ÙØ§Ù',windowModeTransparent:'Ø´ÙØ§
Ù',windowMode:'ÙØ¶Ø¹ اÙÙØ§Ùذة',flashvars:'Ù
ØªØºÙØ±Ø§Øª اÙÙÙØ§Ø´',bgcolor:'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',width:'Ø§ÙØ¹Ø±Ø¶',height:'Ø§ÙØ¥Ø±ØªÙاع',hSpace:'تباعد Ø£ÙÙÙ',vSpace:'تباعد عÙ
ÙØ¯Ù',validateSrc:'ÙØ¶Ùا٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·',validateWidth:'Ø§ÙØ¹Ø±Ø¶ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',validateHeight:'Ø§ÙØ§Ø±ØªÙاع ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',validateHSpace:'HSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.',validateVSpace:'VSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.'},spellCheck:{toolbar:'تدÙÙ٠إÙ
ÙØ§Ø¦Ù',title:'Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù',notAvailable:'عÙÙØ§ÙØ ÙÙÙÙ ÙØ°Ù Ø§ÙØ®Ø¯Ù
Ø© ØºÙØ± Ù
ØªØ§ØØ© Ø§ÙØ§Ù',errorLoading:'خطأ Ù٠تØÙ
Ù٠تطبÙ٠خدÙ
Ø© Ø§ÙØ§Ø³ØªØ¶Ø§ÙØ©: %s.',notInDic:'ÙÙØ³Øª Ù٠اÙÙØ§Ù
ÙØ³',changeTo:'Ø§ÙØªØºÙÙØ± Ø¥ÙÙ',btnIgnore:'تجاÙÙ',btnIgnoreAll:'تجاÙ٠اÙÙÙ',btnReplace:'تغÙÙØ±',btnReplaceAll:'تغÙÙØ±
اÙÙÙ',btnUndo:'تراجع',noSuggestions:'- ÙØ§ ØªÙØ¬Ø¯ Ø¥ÙØªØ±Ø§ØØ§Øª -',progress:'Ø¬Ø§Ø±Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ§Ù
ÙØ§Ø¦Ù',noMispell:'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠أ٠أخطاء Ø¥Ù
ÙØ§Ø¦ÙØ©',noChanges:'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
تغÙÙØ± Ø£Ù ÙÙÙ
Ø©',oneChange:'تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± ÙÙÙ
Ø© ÙØ§ØØ¯Ø© ÙÙØ·',manyChanges:'تÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± %1 Ù
Ù ÙÙÙ
ات',ieSpellDownload:'اÙÙ
دÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù (Ø§ÙØ¥ÙجÙÙØ²Ù) ØºÙØ± Ù
Ø«Ø¨ÙØª. ÙÙ ØªÙØ¯ تØÙ
ÙÙÙ Ø§ÙØ¢ÙØ'},smiley:{toolbar:'ابتساÙ
ات',title:'إدراج ابتساÙ
ات',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'Ø¹ÙØµØ± 1%'},numberedlist:'ادخاÙ/ØØ°Ù تعداد رÙÙ
Ù',bulletedlist:'ادخاÙ/ØØ°Ù تعداد ÙÙØ·Ù',indent:'Ø²ÙØ§Ø¯Ø© اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',outdent:'Ø¥ÙÙØ§Øµ اÙ
Ù
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©',justify:{left:'Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙØ³Ø§Ø±',center:'ØªÙØ³ÙØ·',right:'Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙÙ
ÙÙ',block:'ضبط'},blockquote:'Ø§ÙØªØ¨Ø§Ø³',clipboard:{title:'ÙØµÙ',cutError:'Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØµ Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+X).',copyError:'Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØ³Ø® Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+C).',pasteMsg:'Ø§ÙØµÙ Ø¯Ø§Ø®Ù Ø§ÙØµÙدÙ٠بإستخداÙ
زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) ÙÙ ÙÙØØ© اÙÙ
ÙØ§ØªÙØØ Ø«Ù
اضغط زر <STRONG>Ù
ÙØ§ÙÙ</STRONG>.',securityMsg:'ÙØ¸Ø±Ø§Ù ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
Ø§Ù Ø§ÙØ®Ø§ØµØ© بÙ
ØªØµÙØÙØ ÙÙ ÙØªÙ
ÙÙ ÙØ°Ø§ اÙÙ
ØØ±Ø± Ù
٠اÙÙØµÙÙ ÙÙ
ØØªÙÙ ØØ§ÙØ¸ØªÙØ ÙØ°ÙÙ ÙØ¬Ø¨ عÙÙÙ ÙØµÙ
اÙÙ
ØØªÙÙ Ù
رة أخر٠ÙÙ ÙØ°Ù اÙÙØ§Ùذة.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'ÙØ¨Ø¯Ù أ٠اÙÙØµ اÙÙ
راد ÙØµÙÙ Ù
ÙØ³ÙØ® Ù
Ù Ø¨Ø±ÙØ§Ù
ج ÙÙØ±Ø¯. ÙÙ ØªÙØ¯ ØªÙØ¸ÙÙÙ ÙØ¨Ù Ø§ÙØ´Ø±Ùع Ù٠عÙ
ÙÙØ© اÙÙØµÙØ',toolbar:'ÙØµÙ Ù
Ù ÙÙØ±Ø¯',title:'ÙØµÙ Ù
Ù ÙÙØ±Ø¯',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·',title:'ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·'},templates:{button:'اÙÙÙØ§Ùب',title:'ÙÙØ§Ùب اÙÙ
ØØªÙÙ',options:'Template Options',insertOption:'استبدا٠اÙÙ
ØØªÙÙ',selectPromptMsg:'اختر اÙÙØ§Ùب Ø§ÙØ°Ù ØªÙØ¯ ÙØ¶Ø¹Ù Ù٠اÙÙ
ØØ±Ø±',emptyListMsg:'(ÙÙ
ÙØªÙ
تعرÙÙ Ø£Ù ÙØ§Ùب)'},showBlocks:'Ù
خطط ØªÙØµÙÙÙ',stylesCombo:{label:'Ø£ÙÙ
اط',panelTitle:'Formatting Styles',panelTitle1:'Ø£ÙÙ
اط اÙÙÙØ±Ø©',panelTitle2:'Ø£ÙÙ
اط Ù
ضÙ
ÙØ©',panelTitle3:'Ø£ÙÙ
اط اÙÙØ§Ø¦Ù'},format
:{label:'ØªÙØ³ÙÙ',panelTitle:'ØªÙØ³Ù٠اÙÙÙØ±Ø©',tag_p:'عادÙ',tag_pre:'Ù
ÙØ³ÙÙ',tag_address:'عÙÙØ§Ù',tag_h1:'Ø§ÙØ¹ÙÙØ§Ù 1',tag_h2:'Ø§ÙØ¹ÙÙØ§Ù 2',tag_h3:'Ø§ÙØ¹ÙÙØ§Ù 3',tag_h4:'Ø§ÙØ¹ÙÙØ§Ù 4',tag_h5:'Ø§ÙØ¹ÙÙØ§Ù 5',tag_h6:'Ø§ÙØ¹ÙÙØ§Ù 6',tag_div:'عاد٠(DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'خط',voiceLabel:'ØØ¬Ù
Ø§ÙØ®Ø·',panelTitle:'ØØ¬Ù
Ø§ÙØ®Ø·'},fontSize:{label:'ØØ¬Ù
Ø§ÙØ®Ø·',voiceLabel:'ØØ¬Ù
Ø§ÙØ®Ø·',panelTitle:'ØØ¬Ù
Ø§ÙØ®Ø·'},colorButton:{textColorTitle:'ÙÙ٠اÙÙØµ',bgColorTitle:'ÙÙÙ Ø§ÙØ®ÙÙÙØ©',panelTitle:'Co
lors',auto:'تÙÙØ§Ø¦Ù',more:'Ø£ÙÙØ§Ù إضاÙÙØ©...'},colors:{'000':'Ø£Ø³ÙØ¯',800000:'ÙØ³ØªÙائÙ','8B4513':'بÙÙ ÙØ§ØªØ','2F4F4F':'رÙ
Ø§Ø¯Ù Ø£Ø±Ø¯ÙØ§Ø²Ù غاÙ
Ù','008080':'أزر٠Ù
خضر','000080':'أزر٠داÙÙ','4B0082':'ÙØÙÙ',696969:'رÙ
اد٠داÙÙ',B22222:'Ø·ÙØ¨Ù',A52A2A:'بÙÙ',DAA520:'Ø°ÙØ¨Ù داÙÙ','006400':'أخضر داÙÙ','40E0D0':'ÙÙØ±ÙزÙ','0000CD':'أزر٠Ù
ØªÙØ³Ø·',800080:'بÙÙØ³Ø¬Ù غاÙ
Ù',808080:'رÙ
ادÙ',F00:'Ø£ØÙ
ر',FF8C00:'Ø¨Ø±ØªÙØ§Ù٠داÙÙ',FFD700:'Ø°ÙØ¨Ù','008000':'أخضر','0FF':'ترÙÙØ§Ø²','00F':'أزرÙ',EE82EE:'بÙÙØ³Ø¬Ù',A9A9A9:'رÙ
Ø§Ø¯Ù Ø´Ø§ØØ¨',FFA07A:'Ø¨Ø±ØªÙØ§ÙÙ ÙØ±Ø¯Ù',FFA500:'Ø¨Ø±ØªÙØ§ÙÙ',FFFF00:'Ø£ØµÙØ±','00FF00':'ÙÙÙ
ÙÙÙ',AFEEEE:'ÙÙØ±ÙØ²Ù Ø´Ø§ØØ¨',ADD8E6:'Ø£Ø²Ø±Ù ÙØ§ØªØ',DDA0DD:'بÙÙØ³Ø¬Ù ÙØ§ØªØ',D3D3D3:'رÙ
Ø§Ø¯Ù ÙØ§ØªØ',FFF0F5:'ÙØ±Ø¯Ù ÙØ§ØªØ',FAEBD7:'Ø£Ø¨ÙØ¶ عتÙÙ',FFFFE0:'Ø£ØµÙØ± ÙØ§ØªØ',F0FFF0:'Ø£Ø¨ÙØ¶ Ù
ائ٠ÙÙ
أخضر',F0FFFF:'سÙ
اÙÙ',F0F8FF:'ÙØ¨ÙÙ',E6E6FA:'Ø£Ø±Ø¬ÙØ§ÙÙ',FFF:'Ø£Ø¨ÙØ¶'},scayt:{title:'تدÙÙ٠إÙ
ÙØ§Ø¦Ù Ø£Ø«ÙØ§Ø¡ اÙÙØªØ§Ø¨Ø©',opera_title:'Not supported by Opera',enable:'ØªÙØ¹ÙÙ SCAYT',disable:'تعطÙÙ SCAYT',about:'ع٠SCAYT',toggle:'ØªØ«Ø¨ÙØª SCAYT',options:'Ø®ÙØ§Ø±Ø§Øª',langs:'ÙØºØ§Øª',moreSuggestions:'اÙÙ
Ø²ÙØ¯ Ù
٠اÙÙ
ÙØªØ±ØØ§Øª',ignore:'تجاÙÙ',ignoreAll:'تجاÙ٠اÙÙÙ',addWord:'Ø¥Ø¶Ø§ÙØ© ÙÙÙ
Ø©',emptyDic:'اسÙ
اÙÙØ§Ù
ÙØ³ ÙØ¬Ø¨ Ø£ÙØ§ ÙÙÙÙ ÙØ§Ø±ØºØ§Ù.',optionsTab:'Ø®ÙØ§Ø±Ø§Øª',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'ÙØºØ§Øª',dictionariesTab:'ÙÙØ§Ù
ÙØ³',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size.
When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'عÙ'},about:{title:'ع٠CKEditor',dlgTitle:'ع٠CKEditor',moreInfo:'ÙÙØØµÙ٠عÙÙ Ù
عÙÙÙ
ات Ø§ÙØªØ±Ø®Ùص Ø ÙØ±Ø¬Ù Ø²ÙØ§Ø±Ø© Ù
ÙÙØ¹Ùا عÙÙ Ø´Ø¨ÙØ© Ø§ÙØ§ÙØªØ±ÙØª:',copy:'ØÙÙ٠اÙÙØ´Ø± © $1. جÙ
ÙØ¹ Ø§ÙØÙÙÙ Ù
ØÙÙØ¸Ø©.'},maximize:'ØªÙØ¨Ùر',minimize:'ØªØµØºÙØ±',fakeobjects:{anchor:'إرساء',flash:'رسÙ
Ù
ØªØØ±Ù باÙÙÙØ§Ø´',div:'ÙØ§ØµÙ ØµÙØØ©',unknown:'ÙØ§Ø¦Ù ØºÙØ± Ù
عرÙÙ'},resize:'Ø§Ø³ØØ¨ ÙØªØºÙÙØ± Ø§ÙØØ¬Ù
',colordialog:{title:'اختر ÙÙÙ',options:'Color Options',highlight:'Ø¥ÙÙØ§Ø¡ Ø§ÙØ¶ÙØ¡',selected:'Ù
ÙØ®ØªØ§Ø±',clear:'Ù
سØ'},toolbarCollapse:'Collapse Toolbar',to
olbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ar']={"dir":"rtl","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ØªØµÙØ","url":"Ø§ÙØ±Ø§Ø¨Ø·","protocol":"Ø§ÙØ¨Ø±ÙتÙÙÙÙ","upload":"Ø±ÙØ¹","uploadSubmit":"أرسÙ","image":"ØµÙØ±Ø©","flash":"ÙÙØ§Ø´","form":"ÙÙ
ÙØ°Ø¬","checkbox":"Ø®Ø§ÙØ© Ø¥Ø®ØªÙØ§Ø±","radio":"زر Ø§Ø®ØªÙØ§Ø±","textField":"Ù
ربع ÙØµ","textarea":"Ù
Ø³Ø§ØØ© ÙØµÙØ©","hiddenField":"إدراج ØÙÙ Ø®ÙÙ","button":"زر ضغط","select":"اختار","imageButton":"زر ØµÙØ±Ø©","notSet":"<بدÙÙ ØªØØ¯Ùد>","id":"Ø§ÙØ±ÙÙ
","name":"Ø§ÙØ§Ø³Ù
","langDir":"إتجا٠اÙÙØµ","langDirLtr":"اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)","langDirRtl":"اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)","langCode":"رÙ
ز اÙÙØºØ©","longDescr":"اÙÙØµÙ Ø§ÙØªÙصÙÙÙ","cssClass":"ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ","advisoryTitle":"عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±","cssStyle":"ÙÙ
Ø·","ok":"Ù
ÙØ§ÙÙ","cancel":"Ø¥ÙØºØ§Ø¡ Ø§ÙØ£Ù
ر","close":"أغÙÙ","preview":"استØ
¹Ø±Ø§Ø¶","resize":"Ø§Ø³ØØ¨ ÙØªØºÙÙØ± Ø§ÙØØ¬Ù
","generalTab":"عاÙ
","advancedTab":"Ù
ØªÙØ¯Ù
","validateNumberFailed":"ÙØ§ÙÙØ¬Ø¯ ÙØªÙجة","confirmNewPage":"ستÙÙØ¯ Ø£Ù Ù
تغÙÙØ±Ø§Øª اذا ÙÙ
تÙÙ
بØÙØ¸ÙØ§ اÙÙØ§. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ø£ÙÙ ØªØ±ÙØ¯ ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©Ø","confirmCancel":"بعض Ø§ÙØ®Ùارات ÙØ¯ ØªØºÙØ±Øª. ÙÙ Ø£ÙØª Ù
ØªØ£ÙØ¯ Ù
Ù Ø¥ØºÙØ§Ù Ù
ربع اÙÙØµØ","options":"Ø®ÙØ§Ø±Ø§Øª","target":"ÙØ¯Ù Ø§ÙØ±Ø§Ø¨Ø·","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)","langDirRTL":"اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)","styles":"ÙÙ
Ø·","cssClasses":"ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ","width":"Ø§ÙØ¹Ø±Ø¶","height":"Ø§ÙØ¥Ø±ØªÙاع","align":"Ù
ØØ§Ø°Ø§Ø©","alignLeft":"ÙØ³Ø§Ø±","alignRight":"ÙÙ
ÙÙ","alignCenter":"ÙØ³Ø·","alignTop":"أعÙÙ","alignMiddle":"ÙØ³Ø·","alignBottom":"أسÙÙ",
"invalidValue":"Invalid value.","invalidHeight":"Ø§ÙØ§Ø±ØªÙاع ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","invalidWidth":"Ø§ÙØ¹Ø±Ø¶ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, ØºÙØ± Ù
تاØ</span>"},"about":{"copy":"ØÙÙ٠اÙÙØ´Ø± © $1. جÙ
ÙØ¹ Ø§ÙØÙÙÙ Ù
ØÙÙØ¸Ø©.","dlgTitle":"ع٠CKEditor","help":"Check $1 for help.","moreInfo
":"ÙÙØØµÙ٠عÙÙ Ù
عÙÙÙ
ات Ø§ÙØªØ±Ø®Ùص Ø ÙØ±Ø¬Ù Ø²ÙØ§Ø±Ø© Ù
ÙÙØ¹Ùا عÙÙ Ø´Ø¨ÙØ© Ø§ÙØ§ÙØªØ±ÙØª:","title":"ع٠CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"غاÙ
Ù","italic":"Ù
ائÙ","strike":"ÙØªÙسط٠خط","subscript":"Ù
ÙØ®Ùض","superscript":"Ù
Ø±ØªÙØ¹","underline":"ØªØ³Ø·ÙØ±"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Ø§ÙØªØ¨Ø§Ø³"},"clipboard":{"copy":"ÙØ³Ø®","copyError":"Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØ³Ø® Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+C).","cut":"ÙØµ","cutError":"Ø§ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
ÙÙØ© ÙÙÙ
ØªØµÙØ Ø§ÙØ°Ù تستخدÙ
٠تÙ
ÙØ¹ اÙÙØµ Ø§ÙØªÙÙØ§Ø¦Ù. ÙØ¶Ùا٠إستخدÙ
ÙÙØØ© اÙÙ
ÙØ§ØªÙØ ÙÙØ¹Ù ذÙÙ (Ctrl/Cmd+X).","paste":"ÙØµÙ","pasteArea":"Paste Area","pasteMsg":"Ø§ÙØµÙ
Ø¯Ø§Ø®Ù Ø§ÙØµÙدÙ٠بإستخداÙ
زرائر (<STRONG>Ctrl/Cmd+V</STRONG>) ÙÙ ÙÙØØ© اÙÙ
ÙØ§ØªÙØØ Ø«Ù
اضغط زر <STRONG>Ù
ÙØ§ÙÙ</STRONG>.","securityMsg":"ÙØ¸Ø±Ø§Ù ÙØ¥Ø¹Ø¯Ø§Ø¯Ø§Øª Ø§ÙØ£Ù
Ø§Ù Ø§ÙØ®Ø§ØµØ© بÙ
ØªØµÙØÙØ ÙÙ ÙØªÙ
ÙÙ ÙØ°Ø§ اÙÙ
ØØ±Ø± Ù
٠اÙÙØµÙÙ ÙÙ
ØØªÙÙ ØØ§ÙØ¸ØªÙØ ÙØ°ÙÙ ÙØ¬Ø¨ عÙÙÙ ÙØµÙ اÙÙ
ØØªÙÙ Ù
رة أخر٠ÙÙ ÙØ°Ù اÙÙØ§Ùذة.","title":"ÙØµÙ"},"colorbutton":{"auto":"تÙÙØ§Ø¦Ù","bgColorTitle":"ÙÙÙ Ø§ÙØ®ÙÙÙØ©","colors":{"000":"Ø£Ø³ÙØ¯","800000":"ÙØ³ØªÙائÙ","8B4513":"بÙÙ ÙØ§ØªØ","2F4F4F":"رÙ
Ø§Ø¯Ù Ø£Ø±Ø¯ÙØ§Ø²Ù غاÙ
Ù","008080":"أزر٠Ù
خضر","000080":"أزر٠داÙÙ","4B0082":"ÙØÙÙ","696969":"رÙ
اد٠داÙÙ","B22222":"Ø·ÙØ¨Ù","A52A2A":"بÙÙ","DAA520":"Ø°ÙØ¨Ù داÙÙ","006400":"أخضر داÙÙ","40E0D0":"ÙÙØ±ÙزÙ","0000CD":"أزر٠Ù
ØªÙØ³Ø·","800080":"بÙÙØ³Ø¬Ù غاÙ
Ù","808080":"رÙ
ادÙ","F00":"Ø£ØÙ
ر","FF8C00":"Ø
¨Ø±ØªÙاÙ٠داÙÙ","FFD700":"Ø°ÙØ¨Ù","008000":"أخضر","0FF":"ترÙÙØ§Ø²","00F":"أزرÙ","EE82EE":"بÙÙØ³Ø¬Ù","A9A9A9":"رÙ
Ø§Ø¯Ù Ø´Ø§ØØ¨","FFA07A":"Ø¨Ø±ØªÙØ§ÙÙ ÙØ±Ø¯Ù","FFA500":"Ø¨Ø±ØªÙØ§ÙÙ","FFFF00":"Ø£ØµÙØ±","00FF00":"ÙÙÙ
ÙÙÙ","AFEEEE":"ÙÙØ±ÙØ²Ù Ø´Ø§ØØ¨","ADD8E6":"Ø£Ø²Ø±Ù ÙØ§ØªØ","DDA0DD":"بÙÙØ³Ø¬Ù ÙØ§ØªØ","D3D3D3":"رÙ
Ø§Ø¯Ù ÙØ§ØªØ","FFF0F5":"ÙØ±Ø¯Ù ÙØ§ØªØ","FAEBD7":"Ø£Ø¨ÙØ¶ عتÙÙ","FFFFE0":"Ø£ØµÙØ± ÙØ§ØªØ","F0FFF0":"Ø£Ø¨ÙØ¶ Ù
ائ٠ÙÙØ£Ø®Ø¶Ø±","F0FFFF":"سÙ
اÙÙ","F0F8FF":"ÙØ¨ÙÙ","E6E6FA":"Ø£Ø±Ø¬ÙØ§ÙÙ","FFF":"Ø£Ø¨ÙØ¶"},"more":"Ø£ÙÙØ§Ù إضاÙÙØ©...","panelTitle":"Colors","textColorTitle":"ÙÙ٠اÙÙØµ"},"colordialog":{"clear":"Ù
سØ","highlight":"Ø¥ÙÙØ§Ø¡ Ø§ÙØ¶ÙØ¡","options":"Color Options","selected":"Ù
ÙØ®ØªØ§Ø±","title":"اختر ÙÙÙ"},"templates":{"button":"اÙÙÙØ§Ùب","emptyListMsg":"(ÙÙ
ÙØªÙ
تعرÙÙ Ø£Ù ÙØ§Ùب)","insertOption":"استبدا٠اÙÙ
ØØªÙÙ","op
tions":"Template Options","selectPromptMsg":"اختر اÙÙØ§Ùب Ø§ÙØ°Ù ØªÙØ¯ ÙØ¶Ø¹Ù Ù٠اÙÙ
ØØ±Ø±","title":"ÙÙØ§Ùب اÙÙ
ØØªÙÙ"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"ÙÙÙØ©","advisoryTitleInputLabel":"عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±","cssClassInputLabel":"ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)","langDirLabel":"إتجا٠اÙÙØµ","langDirRTLLabel":"اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"ÙÙ
Ø·","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Col
ors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"Ø¹ÙØµØ± 1%"},"list":{"bulletedlist":"ادخاÙ/ØØ°Ù تعداد ÙÙØ·Ù","numberedlist":"ادخاÙ/ØØ°Ù تعداد رÙÙ
Ù"},"indent":{"indent":"Ø²ÙØ§Ø¯Ø© اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©","outdent":"Ø¥ÙÙØ§Øµ اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©"},"find":{"find":"Ø¨ØØ«","findOptions":"Find Options","findWhat":"Ø§ÙØ¨ØØ« بÙ:","matchCase":"Ù
Ø·Ø§Ø¨ÙØ© ØØ§ÙØ© Ø§ÙØ£ØØ±Ù","matchCyclic":"Ù
Ø·Ø§Ø¨ÙØ© Ø¯ÙØ±ÙØ©","matchWord":"Ù
Ø·Ø§Ø¨ÙØ© باÙÙØ§Ù
Ù","notFoundMsg":"ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ùر عÙ٠اÙÙØµ اÙÙ
ØØ¯Ø¯.","replace":"إستبداÙ","replaceAll":"إستبدا٠اÙÙÙ","replaceSuccessMsg":"تÙ
استبدا٠1% Ù
Ù Ø§ÙØØ§ÙØ§Øª ","replaceWith":"إستبدا٠بÙ:","title":"Ø¨ØØ« ÙØ§Ø³ØªØ¨Ø¯Ø§Ù"},"fakeobjects":{"anchor":"إرساء","flash":"رسÙ
Ù
ØªØØ±Ù باÙÙÙØ§Ø´","hiddenfield":"إدراج ØÙÙ Ø®ÙÙ","iframe":"IFrame","unkn
own":"ÙØ§Ø¦Ù ØºÙØ± Ù
عرÙÙ"},"flash":{"access":"دخÙ٠اÙÙØµ Ø§ÙØ¨Ø±Ù
جÙ","accessAlways":"دائÙ
اÙ","accessNever":"Ù
Ø·ÙÙØ§Ù","accessSameDomain":"ÙÙØ³ اÙÙØ·Ø§Ù","alignAbsBottom":"أسÙ٠اÙÙØµ","alignAbsMiddle":"ÙØ³Ø· Ø§ÙØ³Ø·Ø±","alignBaseline":"عÙÙ Ø§ÙØ³Ø·Ø±","alignTextTop":"أعÙ٠اÙÙØµ","bgcolor":"ÙÙÙ Ø§ÙØ®ÙÙÙØ©","chkFull":"Ù
ÙØ¡ Ø§ÙØ´Ø§Ø´Ø©","chkLoop":"ØªÙØ±Ø§Ø±","chkMenu":"تÙ
ÙÙÙ ÙØ§Ø¦Ù
Ø© ÙÙÙÙ
اÙÙÙØ§Ø´","chkPlay":"تشغÙ٠تÙÙØ§Ø¦Ù","flashvars":"Ù
ØªØºÙØ±Ø§Øª اÙÙÙØ§Ø´","hSpace":"تباعد Ø£ÙÙÙ","properties":"خصائص اÙÙÙØ§Ø´","propertiesTab":"Ø§ÙØ®ØµØ§Ø¦Øµ","quality":"Ø¬ÙØ¯Ø©","qualityAutoHigh":"عاÙÙØ© تÙÙØ§Ø¦ÙاÙ","qualityAutoLow":"Ù
ÙØ®Ùضة تÙÙØ§Ø¦ÙاÙ","qualityBest":"Ø£ÙØ¶Ù","qualityHigh":"عاÙÙØ©","qualityLow":"Ù
ÙØ®Ùضة","qualityMedium":"Ù
ØªÙØ³Ø·Ø©","scale":"Ø§ÙØØ¬Ù
","scaleAll":"Ø¥Ø¸ÙØ§Ø± اÙÙÙ","scaleFit":"ضبط تاÙ
","scaleNoBorder":"بÙ
ا ØØ¯Ùد","title":"خصائص ÙÙÙÙ
اÙÙÙØ§Ø´","vSpace":"تباعد عÙ
ÙØ¯Ù","validateHSpace":"HSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","validateSrc":"ÙØ¶Ùا٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·","validateVSpace":"VSpace ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","windowMode":"ÙØ¶Ø¹ اÙÙØ§Ùذة","windowModeOpaque":"ØºÙØ± Ø´ÙØ§Ù","windowModeTransparent":"Ø´ÙØ§Ù","windowModeWindow":"ÙØ§Ùذة"},"font":{"fontSize":{"label":"ØØ¬Ù
Ø§ÙØ®Ø·","voiceLabel":"ØØ¬Ù
Ø§ÙØ®Ø·","panelTitle":"ØØ¬Ù
Ø§ÙØ®Ø·"},"label":"خط","panelTitle":"ØØ¬Ù
Ø§ÙØ®Ø·","voiceLabel":"ØØ¬Ù
Ø§ÙØ®Ø·"},"forms":{"button":{"title":"خصائص زر Ø§ÙØ¶ØºØ·","text":"اÙÙÙÙ
Ø©/Ø§ÙØªØ³Ù
ÙØ©","type":"ÙÙØ¹ Ø§ÙØ²Ø±","typeBtn":"زر","typeSbm":"إرساÙ","typeRst":"إعادة تعÙÙÙ"},"checkboxAndRadio":{"checkboxTitle":"خصائص Ø®Ø§ÙØ© Ø§ÙØ¥Ø®ØªÙار","radioTitle":"خصائص زر Ø§ÙØ®Ùار","value":"اÙÙÙÙ
Ø©","selected":"Ù
ØØ
¯Ø¯"},"form":{"title":"خصائص اÙÙÙ
ÙØ°Ø¬","menu":"خصائص اÙÙÙ
ÙØ°Ø¬","action":"اسÙ
اÙÙ
ÙÙ","method":"Ø§ÙØ£Ø³ÙÙØ¨","encoding":"تشÙÙØ±"},"hidden":{"title":"خصائص Ø§ÙØÙ٠اÙÙ
Ø®ÙÙ","name":"Ø§ÙØ§Ø³Ù
","value":"اÙÙÙÙ
Ø©"},"select":{"title":"خصائص Ø§Ø®ØªÙØ§Ø± Ø§ÙØÙÙ","selectInfo":"اختار Ù
عÙÙÙ
ات","opAvail":"Ø§ÙØ®Ùارات اÙÙ
ØªØ§ØØ©","value":"اÙÙÙÙ
Ø©","size":"Ø§ÙØØ¬Ù
","lines":"Ø§ÙØ£Ø³Ø·Ø±","chkMulti":"Ø§ÙØ³Ù
Ø§Ø Ø¨ØªØØ¯Ùدات Ù
تعددة","opText":"اÙÙØµ","opValue":"اÙÙÙÙ
Ø©","btnAdd":"Ø¥Ø¶Ø§ÙØ©","btnModify":"تعدÙÙ","btnUp":"أعÙÙ","btnDown":"أسÙÙ","btnSetValue":"إجعÙÙØ§ Ù
ØØ¯Ø¯Ø©","btnDelete":"Ø¥Ø²Ø§ÙØ©"},"textarea":{"title":"خصائص Ù
Ø³Ø§ØØ© اÙÙØµ","cols":"Ø§ÙØ£Ø¹Ù
دة","rows":"Ø§ÙØµÙÙÙ"},"textfield":{"title":"خصائص Ù
ربع اÙÙØµ","name":"Ø§ÙØ§Ø³Ù
","value":"اÙÙÙÙ
Ø©","charWidth":"عرض Ø§ÙØ³Ù
ات","maxChars":"Ø§ÙØµÙ عدد ÙÙØ³Ù
ات","type":"ÙÙØ¹ اÙÙ
ØØªÙÙ","typeText":"ÙØµ","typePass":"ÙÙÙ
Ø© Ù
Ø±ÙØ±","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ØªÙØ³ÙÙ","panelTitle":"ØªÙØ³Ù٠اÙÙÙØ±Ø©","tag_address":"عÙÙØ§Ù","tag_div":"عاد٠(DIV)","tag_h1":"Ø§ÙØ¹ÙÙØ§Ù 1","tag_h2":"Ø§ÙØ¹ÙÙØ§Ù 2","tag_h3":"Ø§ÙØ¹ÙÙØ§Ù 3","tag_h4":"Ø§ÙØ¹ÙÙØ§Ù 4","tag_h5":"Ø§ÙØ¹ÙÙØ§Ù 5","tag_h6":"Ø§ÙØ¹ÙÙØ§Ù 6","tag_p":"عادÙ","tag_pre":"Ù
ÙØ³ÙÙ"},"horizontalrule":{"toolbar":"خط ÙØ§ØµÙ"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"ÙØ¶ÙØ§Ù Ø£ÙØªØ¨ اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ØªÙØ¬Ø¯ عÙÙÙ ÙØ°Ù Ø§ÙØµÙرة.","alt":"عÙÙØ§Ù Ø§ÙØµÙرة","border":"سÙ
Ù Ø§ÙØØ¯ÙØ¯","btnUpload":"أرسÙÙØ§ ÙÙØ®Ø§Ø¯Ù
","button2Img":"ÙÙ ØªØ±ÙØ¯ تØÙÙ٠زر Ø§ÙØµÙرة اÙÙ
خت
ار Ø¥ÙÙ ØµÙØ±Ø© Ø¨Ø³ÙØ·Ø©Ø","hSpace":"تباعد Ø£ÙÙÙ","img2Button":"ÙÙ ØªØ±ÙØ¯ تØÙÙÙ Ø§ÙØµÙرة اÙÙ
ختارة Ø¥Ù٠زر ØµÙØ±Ø©Ø","infoTab":"Ù
عÙÙÙ
ات Ø§ÙØµÙرة","linkTab":"Ø§ÙØ±Ø§Ø¨Ø·","lockRatio":"ØªÙØ§Ø³Ù Ø§ÙØØ¬Ù
","menu":"خصائص Ø§ÙØµÙرة","resetSize":"إستعادة Ø§ÙØØ¬Ù
Ø§ÙØ£ØµÙÙ","title":"خصائص Ø§ÙØµÙرة","titleButton":"خصائص زر Ø§ÙØµÙرة","upload":"Ø±ÙØ¹","urlMissing":"عÙÙØ§Ù Ù
صدر Ø§ÙØµÙرة Ù
ÙÙÙØ¯","vSpace":"تباعد عÙ
ÙØ¯Ù","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"إدراج ابتساÙ
ات","toolbar":"ابتساÙ
ات"},"justify":{"block":"ضبط","center":"ØªÙØ³ÙØ·","left":"Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙØ³Ø§Ø±","right":"Ù
ØØ§Ø°Ø§Ø© Ø¥Ù٠اÙÙÙ
ÙÙ"},"link":{"acccessKey":"Ù
ÙØ§ØªÙØ Ø§ÙØ¥Ø®ØªØµØ§Ø±","advanced
":"Ù
ØªÙØ¯Ù
","advisoryContentType":"ÙÙØ¹ Ø§ÙØªÙØ±ÙØ±","advisoryTitle":"عÙÙØ§Ù Ø§ÙØªÙØ±ÙØ±","anchor":{"toolbar":"إشارة Ù
Ø±Ø¬Ø¹ÙØ©","menu":"ØªØØ±Ùر Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©","title":"خصائص Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©","name":"اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©","errorName":"Ø§ÙØ±Ø¬Ø§Ø¡ ÙØªØ§Ø¨Ø© اسÙ
Ø§ÙØ¥Ø´Ø§Ø±Ø© اÙÙ
Ø±Ø¬Ø¹ÙØ©","remove":"Remove Anchor"},"anchorId":"ØØ³Ø¨ رÙÙ
Ø§ÙØ¹Ùصر","anchorName":"ØØ³Ø¨ Ø§ÙØ§Ø³Ù
","charset":"ترÙ
ÙØ² اÙÙ
ادة اÙÙ
Ø·ÙÙØ¨Ø©","cssClasses":"ÙØ¦Ø§Øª Ø§ÙØªÙسÙÙ","emailAddress":"عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø¥ÙÙØªØ±ÙÙÙ","emailBody":"Ù
ØØªÙÙ Ø§ÙØ±Ø³Ø§ÙØ©","emailSubject":"Ù
ÙØ¶Ùع Ø§ÙØ±Ø³Ø§ÙØ©","id":"ÙÙÙØ©","info":"Ù
عÙÙÙ
ات Ø§ÙØ±Ø§Ø¨Ø·","langCode":"ÙÙØ¯ اÙÙØµ","langDir":"إتجا٠اÙÙØµ","langDirLTR":"اÙÙØ³Ø§Ø± ÙÙÙÙ
ÙÙ (LTR)","langDirRTL":"اÙÙÙ
ÙÙ ÙÙÙØ³Ø§Ø± (RTL)","menu":"ØªØØ±Ùر رابط","name":"Ø§ÙØ§Ø³Ù
","noAnchors":"(ÙØ§
ØªÙØ¬Ø¯ Ø¹ÙØ§Ù
ات Ù
Ø±Ø¬Ø¹ÙØ© ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯)","noEmail":"Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù Ø§ÙØ¨Ø±Ùد Ø§ÙØ¥ÙÙØªØ±ÙÙÙ","noUrl":"Ù
Ù ÙØ¶Ù٠أدخ٠عÙÙØ§Ù اÙÙ
ÙÙØ¹ Ø§ÙØ°Ù ÙØ´Ùر Ø¥ÙÙÙ Ø§ÙØ±Ø§Ø¨Ø·","other":"<أخرÙ>","popupDependent":"تابع (Netscape)","popupFeatures":"خصائص اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©","popupFullScreen":"Ù
ÙØ¦ Ø§ÙØ´Ø§Ø´Ø© (IE)","popupLeft":"Ø§ÙØªÙ
Ø±ÙØ² ÙÙÙØ³Ø§Ø±","popupLocationBar":"Ø´Ø±ÙØ· Ø§ÙØ¹ÙÙØ§Ù","popupMenuBar":"اÙÙÙØ§Ø¦Ù
Ø§ÙØ±Ø¦ÙØ³ÙØ©","popupResizable":"ÙØ§Ø¨ÙØ© Ø§ÙØªØ´ÙÙÙ","popupScrollBars":"أشرطة Ø§ÙØªÙ
Ø±ÙØ±","popupStatusBar":"Ø´Ø±ÙØ· Ø§ÙØØ§ÙØ©","popupToolbar":"Ø´Ø±ÙØ· Ø§ÙØ£Ø¯Ùات","popupTop":"Ø§ÙØªÙ
Ø±ÙØ² ÙÙØ£Ø¹ÙÙ","rel":"Relationship","selectAnchor":"اختر Ø¹ÙØ§Ù
Ø© Ù
Ø±Ø¬Ø¹ÙØ©","styles":"ÙÙ
Ø·","tabIndex":"Ø§ÙØªØ±ØªÙب","target":"ÙØ¯Ù Ø§ÙØ±Ø§Ø¨Ø·","targetFrame":"<إطار>","targetFrameName":"اسÙ
Ø§ÙØ¥Ø·Ø§Ø± اÙÙ
Ø³ØªÙØ¯Ù",
"targetPopup":"<ÙØ§Ùذة Ù
ÙØ¨Ø«ÙØ©>","targetPopupName":"اسÙ
اÙÙØ§Ùذة اÙÙ
ÙØ¨Ø«ÙØ©","title":"إرتباط تشعبÙ","toAnchor":"Ù
ÙØ§Ù ÙÙ ÙØ°Ø§ اÙÙ
Ø³ØªÙØ¯","toEmail":"Ø¨Ø±ÙØ¯ Ø¥ÙÙØªØ±ÙÙÙ","toUrl":"Ø§ÙØ±Ø§Ø¨Ø·","toolbar":"رابط","type":"ÙÙØ¹ Ø§ÙØ±Ø¨Ø·","unlink":"Ø¥Ø²Ø§ÙØ© رابط","upload":"Ø±ÙØ¹"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV,
V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ØªÙØ¨Ùر","minimize":"ØªØµØºÙØ±"},"newpage":{"toolbar":"ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©"},"pagebreak":{"alt":"Page Break","toolbar":"Ø¥Ø¯Ø®Ø§Ù ØµÙØØ© Ø¬Ø¯ÙØ¯Ø©"},"pastetext":{"button":"ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·","title":"ÙØµÙ ÙÙØµ Ø¨Ø³ÙØ·"},"pastefromword":{"confirmCleanup":"ÙØ¨Ø¯Ù أ٠اÙÙØµ اÙÙ
راد ÙØµÙÙ Ù
ÙØ³ÙØ® Ù
Ù Ø¨Ø±ÙØ§Ù
ج ÙÙØ±Ø¯. ÙÙ ØªÙØ¯ ØªÙØ¸ÙÙÙ ÙØ¨Ù Ø§ÙØ´Ø±Ùع Ù٠عÙ
ÙÙØ© اÙÙØµÙØ","error":"It was not possible to clean up the pasted data due to an internal error","title":"ÙØµÙ Ù
Ù ÙÙØ±Ø¯","toolbar":"ÙØµÙ Ù
Ù ÙÙØ±Ø¯"},"preview":{"preview":"Ù
عاÙÙØ© Ø§ÙØµÙØØ©"},"print":{"toolbar":"طباعة"},"removeformat":{"toolbar":"Ø¥Ø²Ø§ÙØ© Ø§ÙØªÙسÙÙØ§Øª"},"save":{"toolbar":"ØÙظ"},"selectall":{"toolbar":"ØªØØ¯Ùد اÙÙÙ"},"showblocks":{"toolbar":"Ù
خطط ØªÙØµÙÙÙ
"},"sourcearea":{"toolbar":"اÙÙ
صدر"},"specialchar":{"options":"Special Character Options","title":"اختر Ø§ÙØ®Ùاص","toolbar":"إدراج خاص.Ù"},"scayt":{"about":"ع٠SCAYT","aboutTab":"عÙ","addWord":"Ø¥Ø¶Ø§ÙØ© ÙÙÙ
Ø©","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"ÙÙØ§Ù
ÙØ³","disable":"تعطÙÙ SCAYT","emptyDic":"اسÙ
اÙÙØ§Ù
ÙØ³ ÙØ¬Ø¨ Ø£ÙØ§ ÙÙÙÙ ÙØ§Ø±ØºØ§Ù.","enable":"ØªÙØ¹ÙÙ SCAYT","ign
ore":"تجاÙÙ","ignoreAll":"تجاÙ٠اÙÙÙ","ignoreDomainNames":"Ignore Domain Names","langs":"ÙØºØ§Øª","languagesTab":"ÙØºØ§Øª","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"اÙÙ
Ø²ÙØ¯ Ù
٠اÙÙ
ÙØªØ±ØØ§Øª","opera_title":"Not supported by Opera","options":"Ø®ÙØ§Ø±Ø§Øª","optionsTab":"Ø®ÙØ§Ø±Ø§Øª","title":"تدÙÙ٠إÙ
ÙØ§Ø¦Ù Ø£Ø«ÙØ§Ø¡ اÙÙØªØ§Ø¨Ø©","toggle":"ØªØ«Ø¨ÙØª SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Ø£ÙÙ
اط","panelTitle":"Formatting Styles","panelTitle1":"Ø£ÙÙ
اط اÙÙÙØ±Ø©","panelTitle2":"Ø£ÙÙ
اط Ù
ضÙ
ÙØ©","panelTitle3":"Ø£ÙÙ
اط اÙÙØ§Ø¦Ù"},"table":{"border":"Ø§ÙØØ¯ÙØ¯","caption":"اÙÙØµÙ","cell":{"menu":"Ø®ÙÙØ©","insertBefore":"إدراج Ø®ÙÙØ© ÙØ¨Ù","insertAfter":"إدراج Ø®ÙÙØ© بعد","deleteCell":"ØØ°Ù Ø®ÙÙØ©","merge":"دÙ
ج Ø®ÙØ§Ùا","mergeRight":"دÙ
ج ÙÙÙÙ
ÙÙ","mergeDown":"دÙ
ج ÙÙØ£Ø³ÙÙ","split
Horizontal":"ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© Ø£ÙÙÙØ§Ù","splitVertical":"ØªÙØ³ÙÙ
Ø§ÙØ®ÙÙØ© عÙ
ÙØ¯ÙاÙ","title":"خصائص Ø§ÙØ®ÙÙØ©","cellType":"ÙÙØ¹ Ø§ÙØ®ÙÙØ©","rowSpan":"اÙ
تداد Ø§ÙØµÙÙÙ","colSpan":"اÙ
تداد Ø§ÙØ£Ø¹Ù
دة","wordWrap":"Ø§ÙØªÙا٠اÙÙØµ","hAlign":"Ù
ØØ§Ø°Ø§Ø© Ø£ÙÙÙØ©","vAlign":"Ù
ØØ§Ø°Ø§Ø© Ø±Ø£Ø³ÙØ©","alignBaseline":"خط اÙÙØ§Ø¹Ø¯Ø©","bgColor":"ÙÙÙ Ø§ÙØ®ÙÙÙØ©","borderColor":"ÙÙÙ Ø§ÙØØ¯ÙØ¯","data":"Ø¨ÙØ§Ùات","header":"عÙÙØ§Ù","yes":"ÙØ¹Ù
","no":"ÙØ§","invalidWidth":"عرض Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","invalidHeight":"Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ®ÙÙØ© ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","invalidRowSpan":"اÙ
تداد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.","invalidColSpan":"اÙ
تداد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عددا٠صØÙØØ§Ù.","chooseColor":"اختر"},"cellPad":"اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø©","cellSpace":"تباعد Ø§ÙØ®ÙØ§ÙØ§","column":{"me
nu":"عÙ
ÙØ¯","insertBefore":"إدراج عÙ
ÙØ¯ ÙØ¨Ù","insertAfter":"إدراج عÙ
ÙØ¯ بعد","deleteColumn":"ØØ°Ù أعÙ
دة"},"columns":"أعÙ
دة","deleteTable":"ØØ°Ù Ø§ÙØ¬Ø¯ÙÙ","headers":"Ø§ÙØ¹ÙاÙÙÙ","headersBoth":"ÙÙØ§ÙÙ
ا","headersColumn":"Ø§ÙØ¹Ù
ÙØ¯ Ø§ÙØ£ÙÙ","headersNone":"بدÙÙ","headersRow":"Ø§ÙØµÙ Ø§ÙØ£ÙÙ","invalidBorder":"ØØ¬Ù
Ø§ÙØØ¯ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","invalidCellPadding":"اÙÙ
Ø³Ø§ÙØ© Ø§ÙØ¨Ø§Ø¯Ø¦Ø© ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ","invalidCellSpacing":"اÙÙ
Ø³Ø§ÙØ© بÙÙ Ø§ÙØ®ÙØ§ÙØ§ ÙØ¬Ø¨ أ٠تÙÙ٠عدداÙ.","invalidCols":"عدد Ø§ÙØ£Ø¹Ù
دة ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.","invalidHeight":"Ø§Ø±ØªÙØ§Ø¹ Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","invalidRows":"عدد Ø§ÙØµÙÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙÙ Ø¹Ø¯Ø¯Ø§Ù Ø£ÙØ¨Ø± Ù
Ù ØµÙØ±.","invalidWidth":"عرض Ø§ÙØ¬Ø¯ÙÙ ÙØ¬Ø¨ Ø£Ù ÙÙÙ٠عدداÙ.","menu":"خصائص Ø§ÙØ¬Ø¯ÙÙ","row":{"menu":"صÙ","ins
ertBefore":"إدراج ØµÙ ÙØ¨Ù","insertAfter":"إدراج ص٠بعد","deleteRow":"ØØ°Ù صÙÙÙ"},"rows":"صÙÙÙ","summary":"Ø§ÙØ®Ùاصة","title":"خصائص Ø§ÙØ¬Ø¯ÙÙ","toolbar":"جدÙÙ","widthPc":"باÙÙ
ئة","widthPx":"Ø¨ÙØ³Ù","widthUnit":"width unit"},"undo":{"redo":"إعادة","undo":"تراجع"},"wsc":{"btnIgnore":"تجاÙÙ","btnIgnoreAll":"تجاÙ٠اÙÙÙ","btnReplace":"تغÙÙØ±","btnReplaceAll":"تغÙÙØ± اÙÙÙ","btnUndo":"تراجع","changeTo":"Ø§ÙØªØºÙÙØ± Ø¥ÙÙ","errorLoading":"خطأ Ù٠تØÙ
Ù٠تطبÙ٠خدÙ
Ø© Ø§ÙØ§Ø³ØªØ¶Ø§ÙØ©: %s.","ieSpellDownload":"اÙÙ
دÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù (Ø§ÙØ¥ÙجÙÙØ²Ù) ØºÙØ± Ù
Ø«Ø¨ÙØª. ÙÙ ØªÙØ¯ تØÙ
ÙÙÙ Ø§ÙØ¢ÙØ","manyChanges":"تÙ
Ø¥ÙÙ
Ø§Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± %1 Ù
Ù ÙÙÙ
ات","noChanges":"تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
تغÙÙØ± Ø£Ù ÙÙÙ
Ø©","noMispell":"تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: ÙÙ
ÙØªÙ
Ø§ÙØ¹Ø«Ù
ر عÙ٠أ٠أخطاء Ø¥Ù
ÙØ§Ø¦ÙØ©","noSuggestions":"- ÙØ§ ØªÙØ¬Ø¯ Ø¥ÙØªØ±Ø§ØØ§Øª -","notAvailable":"عÙÙØ§ÙØ ÙÙÙÙ ÙØ°Ù Ø§ÙØ®Ø¯Ù
Ø© ØºÙØ± Ù
ØªØ§ØØ© Ø§ÙØ§Ù","notInDic":"ÙÙØ³Øª Ù٠اÙÙØ§Ù
ÙØ³","oneChange":"تÙ
Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù: تÙ
تغÙÙØ± ÙÙÙ
Ø© ÙØ§ØØ¯Ø© ÙÙØ·","progress":"Ø¬Ø§Ø±Ù Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ§Ù
ÙØ§Ø¦Ù","title":"Ø§ÙØªØ¯ÙÙÙ Ø§ÙØ¥Ù
ÙØ§Ø¦Ù","toolbar":"تدÙÙ٠إÙ
ÙØ§Ø¦Ù"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/bg.js b/share/static/RichText/lang/bg.js
index 720be12..f8754ad 100644
--- a/share/static/RichText/lang/bg.js
+++ b/share/static/RichText/lang/bg.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.bg={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Ðод',newPage:'Ðова ÑÑÑаниÑа',save:'Ðапази',preview:'ÐÑедваÑиÑелен изглед',cut:'ÐзÑежи',copy:'ÐапамеÑи',paste:'ÐмÑкни',print:'ÐеÑаÑ',underline:'ÐодÑеÑÑан',bold:'Удебелен',italic:'ÐÑÑÑив',selectAll:'СелекÑиÑай вÑиÑко',removeFormat:'ÐзÑÑий ÑоÑмаÑиÑанеÑо',strike:'ÐаÑеÑÑан',subscript:'ÐÐ½Ð´ÐµÐºÑ Ð·Ð° база',superscript:'ÐÐ½Ð´ÐµÐºÑ Ð·Ð° ÑÑепен',horizontalrule:'ÐмÑкни Ñ
оÑизонÑална линиÑ',pagebreak:'ÐмÑкни нов Ñед',unlink:'ÐзÑÑий вÑÑзка',undo:'ÐÑмени',redo:'ÐовÑоÑи',common:{browseServer:'Разгледай ÑÑÑвÑÑа',url:'ÐÑлен пÑÑ (URL)',protocol:'ÐÑоÑокол',upload:'ÐаÑи',uploadSubmit:'ÐÑаÑи кÑм ÑÑÑвÑÑа',ima
ge:'ÐзобÑажение',flash:'Flash',form:'ФоÑмÑлÑÑ',checkbox:'Ðоле за оÑмеÑка',radio:'Ðоле за опÑиÑ',textField:'ТекÑÑово поле',textarea:'ТекÑÑова облаÑÑ',hiddenField:'СкÑиÑо поле',button:'ÐÑÑон',select:'ÐадаÑо Ð¼ÐµÐ½Ñ Ñ Ð¾Ð¿Ñии',imageButton:'ÐÑÑон-изобÑажение',notSet:'<не е наÑÑÑоен>',id:'ÐденÑиÑикаÑоÑ',name:'Ðме',langDir:'поÑока на ÑеÑÑа',langDirLtr:'ÐÑ Ð»Ñво на дÑÑно',langDirRtl:'ÐÑ Ð´ÑÑно на лÑво',langCode:'Ðод на езика',longDescr:'ÐпиÑание на вÑÑзкаÑа',cssClass:'ÐÐ»Ð°Ñ Ð¾Ñ ÑÑиловиÑе ÑаблиÑи',advisoryTitle:'ÐÑепоÑÑÑиÑелно заглавие',cssStyle:'СÑил',ok:'ÐÐ',cancel:'ÐÑказ',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'ÐодÑобноÑÑи...',validateNumberFailed:'This value is not a number.',confirmNewPage:
'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'ÐмÑкни ÑпеÑиален Ñимвол',title:'ÐзбеÑеÑе ÑпеÑиален Ñимвол',options:'Special Character Options'},link:{toolbar:'Ðобави/РедакÑиÑай вÑÑзка',other:'<дÑÑг>',menu:'РедакÑиÑай вÑÑзка',title:'ÐÑÑзка',info:'ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° вÑÑзкаÑа',target:'Цел',upload:'ÐаÑи',advanced:'ÐодÑ
обноÑÑи...',type:'Ðид на вÑÑзкаÑа',toUrl:'URL',toAnchor:'ÐоÑва в ÑекÑÑаÑа ÑÑÑаниÑа',toEmail:'Ð-поÑа',targetFrame:'<Ñамка>',targetPopup:'<дÑÑеÑен пÑозоÑеÑ>',targetFrameName:'Ðме на ÑÐµÐ»ÐµÐ²Ð¸Ñ Ð¿ÑозоÑеÑ',targetPopupName:'Ðме на дÑÑеÑÐ½Ð¸Ñ Ð¿ÑозоÑеÑ',popupFeatures:'ÐаÑамеÑÑи на дÑÑеÑÐ½Ð¸Ñ Ð¿ÑозоÑеÑ',popupResizable:'Resizable',popupStatusBar:'Ðоле за ÑÑаÑÑÑ',popupLocationBar:'Ðоле за адÑеÑ',popupToolbar:'Ðанел Ñ Ð±ÑÑони',popupMenuBar:'ÐенÑ',popupFullScreen:'ÐолÑм екÑан (MS IE)',popupScrollBars:'ÐлÑзгаÑ',popupDependent:'ÐавиÑим (Netscape)',popupWidth:'ШиÑина',popupLeft:'ÐооÑдинаÑи - X',popupHeight:'ÐиÑоÑина',popupTop:'ÐооÑдинаÑи - Y',id:'Id',langDir:'поÑока на ÑеÑÑа',langDirLTR:'ÐÑ Ð»Ñво на дÑÑно',langDirRTL:'ÐÑ Ð´ÑÑно на лÑво
',acccessKey:'ÐÑÑз клавиÑ',name:'Ðме',langCode:'поÑока на ÑеÑÑа',tabIndex:'Ред на доÑÑÑп',advisoryTitle:'ÐÑепоÑÑÑиÑелно заглавие',advisoryContentType:'ÐÑепоÑÑÑиÑелен Ñип на ÑÑдÑÑжаниеÑо',cssClasses:'ÐÐ»Ð°Ñ Ð¾Ñ ÑÑиловиÑе ÑаблиÑи',charset:'Тип на ÑвÑÑÐ·Ð°Ð½Ð¸Ñ ÑеÑÑÑÑ',styles:'СÑил',selectAnchor:'ÐзбеÑеÑе коÑва',anchorName:'Ðо име на коÑваÑа',anchorId:'Ðо иденÑиÑикаÑÐ¾Ñ Ð½Ð° елеменÑ',emailAddress:'ÐдÑÐµÑ Ð·Ð° е-поÑа',emailSubject:'Тема на пиÑмоÑо',emailBody:'ТекÑÑ Ð½Ð° пиÑмоÑо',noAnchors:'(ÐÑма коÑви в ÑекÑÑÐ¸Ñ Ð´Ð¾ÐºÑменÑ)',noUrl:'ÐолÑ, напиÑеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ (URL)',noEmail:'ÐолÑ, напиÑеÑе адÑеÑа за е-поÑа'},anchor:{toolbar:'Ðобави/РедакÑиÑай коÑва',menu:'ÐаÑамеÑÑи на коÑÐ
²Ð°Ñа',title:'ÐаÑамеÑÑи на коÑваÑа',name:'Ðме на коÑваÑа',errorName:'ÐолÑ, вÑведеÑе име на коÑваÑа'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'ТÑÑÑи',replace:'ÐамеÑÑи',findWhat:'ТÑÑÑи:',replaceWith:'ÐамеÑÑи Ñ:',notFoundMsg:'Ð
£ÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑекÑÑ Ð½Ðµ беÑе намеÑен.',matchCase:'СÑÑ ÑÑÑÐ¸Ñ ÑегиÑÑÑÑ',matchWord:'ТÑÑÑи ÑÑÑаÑа дÑма',matchCyclic:'Match cyclic',replaceAll:'ÐамеÑÑи вÑиÑки',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'ТаблиÑа',title:'ÐаÑамеÑÑи на ÑаблиÑаÑа',menu:'ÐаÑамеÑÑи на ÑаблиÑаÑа',deleteTable:'ÐзÑÑий ÑаблиÑаÑа',rows:'Редове',columns:'Ðолони',border:'Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑамкаÑа',align:'ÐодÑавнÑване',alignLeft:'ÐÑво',alignCenter:'ЦенÑÑÑ',alignRight:'ÐÑÑно',width:'ШиÑина',widthPx:'пикÑели',widthPc:'пÑоÑенÑи',widthUnit:'width unit',height:'ÐиÑоÑина',cellSpace:'РазÑÑоÑние Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»ÐµÑкиÑе',cellPad:'ÐÑÑÑÑп на ÑÑдÑÑжаниеÑо в клеÑкиÑе',caption:'Ðаглавие',summary:'РезÑме',headers:'Headers',headersNone:'None',headersColu
mn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'ÐзÑÑий клеÑкиÑе',merge:'Ðбедини клеÑкиÑе',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Backgro
und Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'ÐзÑÑий ÑедовеÑе'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'ÐзÑÑий колониÑе'}},button:{title:'ÐаÑамеÑÑи на бÑÑона',text:'ТекÑÑ (СÑойноÑÑ)',type:'Тип',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'ÐаÑамеÑÑи на полеÑо за оÑмеÑка',radioTitle:'ÐаÑамеÑÑи на полеÑо за опÑиÑ',value:'СÑойноÑÑ',selected:'ÐÑмеÑнаÑо'},form:{title:'ÐаÑамеÑÑи на ÑоÑмÑлÑÑа',m
enu:'ÐаÑамеÑÑи на ÑоÑмÑлÑÑа',action:'ÐейÑÑвие',method:'ÐеÑод',encoding:'Encoding'},select:{title:'ÐаÑамеÑÑи на падаÑоÑо Ð¼ÐµÐ½Ñ Ñ Ð¾Ð¿Ñии',selectInfo:'ÐнÑоÑмаÑиÑ',opAvail:'ÐÑзможни опÑии',value:'СÑойноÑÑ',size:'РазмеÑ',lines:'линии',chkMulti:'РазÑеÑено множеÑÑвено ÑелекÑиÑане',opText:'ТекÑÑ',opValue:'СÑойноÑÑ',btnAdd:'Ðобави',btnModify:'ÐÑомени',btnUp:'ÐагоÑе',btnDown:'ÐадолÑ',btnSetValue:'ÐаÑÑÑой каÑо избÑана ÑÑойноÑÑ',btnDelete:'ÐзÑÑий'},textarea:{title:'ÐаÑамеÑÑи на ÑекÑÑоваÑа облаÑÑ',cols:'Ðолони',rows:'Редове'},textfield:{title:'ÐаÑамеÑÑи на ÑекÑÑовоÑо-поле',name:'Ðме',value:'СÑойноÑÑ',charWidth:'ШиÑина на ÑимволиÑе',maxChars:'ÐакÑимÑм Ñимволи',type:'Тип',typeText:'
ТекÑÑ',typePass:'ÐаÑола'},hidden:{title:'ÐаÑамеÑÑи на ÑкÑиÑоÑо поле',name:'Ðме',value:'СÑойноÑÑ'},image:{title:'ÐаÑамеÑÑи на изобÑажениеÑо',titleButton:'ÐаÑамеÑÑи на бÑÑона-изобÑажение',menu:'ÐаÑамеÑÑи на изобÑажениеÑо',infoTab:'ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° изобÑажениеÑо',btnUpload:'ÐÑаÑи кÑм ÑÑÑвÑÑа',upload:'ÐаÑи',alt:'ÐлÑеÑнаÑивен ÑекÑÑ',width:'ШиÑина',height:'ÐиÑоÑина',lockRatio:'Ðапази пÑопоÑÑиÑÑа',unlockRatio:'Unlock Ratio',resetSize:'ÐÑзÑÑанови ÑазмеÑа',border:'Рамка',hSpace:'ХоÑизонÑален оÑÑÑÑп',vSpace:'ÐеÑÑикален оÑÑÑÑп',align:'ÐодÑавнÑване',alignLeft:'ÐÑво',alignRight:'ÐÑÑно',alertUrl:'ÐолÑ, вÑведеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ Ð´Ð¾ изобÑажениеÑо',linkTab:'ÐÑÑзка',button2Im
g:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ÐаÑамеÑÑи на Flash обекÑа',propertiesTab:'Properties',title:'ÐаÑамеÑÑи на Flash обекÑа',chkPlay:'ÐвÑомаÑиÑно ÑÑаÑÑиÑане',chkLoop:'Ðово ÑÑаÑÑиÑане Ñлед завÑÑÑванеÑо',chkMenu:'РазÑеÑено Flash менÑ',chkFull:'Allow Fullscreen',scale:'ÐÑазмеÑÑване',scaleAll:'Ðокажи ÑÐµÐ»Ð¸Ñ Ð¾Ð±ÐµÐºÑ',scaleNoBorder:'Ðез Ñамка',scaleFit:'СпоÑед мÑÑÑоÑо',access:'Script Access',accessAlways:'Always',accessSameDomain:'Sam
e domain',accessNever:'Never',align:'ÐодÑавнÑване',alignLeft:'ÐÑво',alignAbsBottom:'Ðай-долÑ',alignAbsMiddle:'ТоÑно по ÑÑедаÑа',alignBaseline:'Ðо базоваÑа линиÑ',alignBottom:'ÐолÑ',alignMiddle:'Ðо ÑÑедаÑа',alignRight:'ÐÑÑно',alignTextTop:'ÐÑÑÑ
Ñ ÑекÑÑа',alignTop:'ÐÑгоÑе',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'ЦвÑÑ Ð½Ð° Ñона',width:'ШиÑина',height:'ÐиÑоÑина',hSpace:'ХоÑизонÑален оÑÑÑÑп',vSpace:'ÐеÑÑикален оÑÑÑÑп',validateSrc:'ÐолÑ, напиÑеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ (URL)',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'H
Space must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'ÐÑовеÑи пÑавопиÑа',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'ÐипÑва в ÑеÑника',changeTo:'ÐÑомени на',btnIgnore:'ÐгноÑиÑай',btnIgnoreAll:'ÐгноÑиÑай вÑиÑки',btnReplace:'ÐамеÑÑи',btnReplaceAll:'ÐамеÑÑи вÑиÑки',btnUndo:'ÐÑмени',noSuggestions:'- ÐÑма пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ -',progress:'ÐзвÑÑÑване на пÑовеÑкаÑа за пÑавопиÑ...',noMispell:'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: не Ñа оÑкÑиÑи пÑавопиÑни гÑеÑки',noChanges:'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: нÑма пÑоменени дÑми',oneChange:'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: една дÑма е пÑоме
нена',manyChanges:'ÐÑовеÑкаÑа за пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð²ÑÑÑена: %1 дÑми Ñа пÑоменени',ieSpellDownload:'ÐнÑÑÑÑменÑÑÑ Ð·Ð° пÑовеÑка на пÑÐ°Ð²Ð¾Ð¿Ð¸Ñ Ð½Ðµ е инÑÑалиÑан. ÐелаеÑе ли да го инÑÑалиÑаÑе ?'},smiley:{toolbar:'УÑмивка',title:'Ðобави ÑÑмивка',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ÐÑмеÑиÑан ÑпиÑÑк',bulletedlist:'ÐенÑмеÑиÑан ÑпиÑÑк',indent:'УвелиÑи оÑÑÑÑпа',outdent:'Ðамали оÑÑÑÑпа',justify:{left:'ÐодÑавнÑване в лÑво',center:'ÐодÑавнÑвне в ÑÑедаÑа',right:'ÐодÑавнÑване в дÑÑно',block:'ÐвÑÑÑÑанно подÑавнÑване'},blockquote:'Block Quote',clipboard:{title:'ÐмÑкни',cutError:'ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ваÑÐ¸Ñ Ð±ÑазÑÑÑ Ð½Ðµ Ñаз
ÑеÑÐ°Ð²Ð°Ñ Ð½Ð° ÑедакÑоÑа да изпÑлни изÑÑзванеÑо. Ðа ÑелÑа използвайÑе клавиаÑÑÑаÑа (Ctrl/Cmd+X).',copyError:'ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ваÑÐ¸Ñ Ð±ÑазÑÑÑ Ð½Ðµ ÑазÑеÑÐ°Ð²Ð°Ñ Ð½Ð° ÑедакÑоÑа да изпÑлни запамеÑÑванеÑо. Ðа ÑелÑа използвайÑе клавиаÑÑÑаÑа (Ctrl/Cmd+C).',pasteMsg:'ÐмÑкнеÑе ÑÑк ÑÑдÑжаниеÑо Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑаÑаÑа (<STRONG>Ctrl/Cmd+V</STRONG>) и наÑиÑнеÑе <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'ÐмÑкни Ð¾Ñ MS Word',title:'ÐмÑкни Ð¾Ñ MS Word',erro
r:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ',title:'ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ'},templates:{button:'Шаблони',title:'Шаблони',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'ÐзбеÑеÑе Ñаблон <br>(ÑекÑÑоÑо ÑÑдÑÑжание на ÑедакÑоÑа Ñе бÑде загÑбено):',emptyListMsg:'(ÐÑма деÑиниÑани Ñаблони)'},showBlocks:'Show Blocks',stylesCombo:{label:'СÑил',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'ФоÑмаÑ',panelTitle:'ФоÑмаÑ',tag_p:'ÐоÑмален',tag_pre:'ФоÑмаÑиÑан',tag_address:'ÐдÑеÑ',tag_h1:'Ðаглавие 1',tag_h2:'Ðаглавие 2',tag_h3:'Ðаглавие 3',tag_h4:'Ðаглавие 4',tag_h5:'Ðаглавие 5',tag_h6:'ÐаглÐ
°Ð²Ð¸Ðµ 6',tag_div:'ÐаÑагÑÐ°Ñ (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ШÑиÑÑ',voiceLabel:'Font',panelTitle:'ШÑиÑÑ'},fontSize:{label:'РазмеÑ',voiceLabel:'Font Size',panelTitle:'РазмеÑ'},colorButton:{textColorTitle:'ЦвÑÑ Ð½Ð° ÑекÑÑа',bgColorTitle:'ЦвÑÑ Ð½Ð° Ñона',panelTitle:'Colors',auto:'Ðо подÑазбиÑане',more:'ÐÑÑги ÑвеÑове...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',
DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignor
e Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize
:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['bg']={"dir":"ltr","editor":"ТекÑÑов ÑедакÑÐ¾Ñ Ð·Ð° ÑоÑмаÑиÑан ÑекÑÑ","common":{"editorHelp":"наÑиÑнеÑе ALT 0 за помоÑ","browseServer":"ÐÐ·Ð±Ð¾Ñ Ð¾Ñ ÑÑÑвÑÑа","url":"URL","protocol":"ÐÑоÑокол","upload":"ÐаÑване","uploadSubmit":"ÐзпÑаÑане кÑм ÑÑÑвÑÑа","image":"Снимка","flash":"ФлаÑ","form":"ФоÑма","checkbox":"Ðоле за избоÑ","radio":"Радио бÑÑон","textField":"ТекÑÑово поле","textarea":"ТекÑÑова зона","hiddenField":"СкÑиÑо поле","button":"ÐÑÑон","select":"Ðоле за избоÑ","imageButton":"ÐÑÑон за Ñнимка","notSet":"<не е избÑано>","id":"ID","name":"Ðме","langDir":"ÐоÑока на езика","langDirLtr":"ÐÑво на дÑÑно (ÐнÐ)","langDirRtl":"ÐÑÑно на лÑво (ÐнÐ)","langCode":"Ðод на езика","longDescr":"Уеб адÑÐµÑ Ð·Ð° дÑлго
опиÑание","cssClass":"ÐлаÑове за CSS","advisoryTitle":"ÐÑепоÑÑÑиÑелно заглавие","cssStyle":"СÑил","ok":"ÐÐ","cancel":"ÐÑказ","close":"ÐаÑвоÑи","preview":"ÐÑеглед","resize":"ÐлаÑеÑе за да оÑазмеÑиÑе","generalTab":"ÐбÑо","advancedTab":"РазÑиÑено","validateNumberFailed":"Тази ÑÑойноÑÑ Ð½Ðµ е ÑиÑло","confirmNewPage":"ÐÑиÑки незапазени пÑомени Ñе бÑÐ´Ð°Ñ Ð¸Ð·Ð³Ñбени. СигÑÑни ли ÑÑе, Ñе желаеÑе да заÑедиÑе нова ÑÑÑаниÑа?","confirmCancel":"ÐÑкои Ð¾Ñ Ð¾Ð¿ÑииÑе Ñа пÑоменени. СигÑÑни ли ÑÑе, Ñе желаеÑе да заÑвоÑиÑе пÑозоÑеÑа?","options":"ÐпÑии","target":"Цел","targetNew":"Ðов пÑозоÑÐµÑ (_blank)","targetTop":"ÐоÑна позиÑÐ¸Ñ (_top)","targetSelf":"ТекÑÑÐ¸Ñ Ð¿ÑозоÑÐµÑ (_self)","targetParent":"ÐÑÐ
½Ð¾Ð²ÐµÐ½ пÑозоÑÐµÑ (_parent)","langDirLTR":"ÐÑво на дÑÑно (ÐнÐ)","langDirRTL":"ÐÑÑно на лÑво (ÐнÐ)","styles":"СÑил","cssClasses":"ÐлаÑове за CSS","width":"ШиÑина","height":"ÐиÑоÑина","align":"ÐодÑавнÑване","alignLeft":"ÐÑво","alignRight":"ÐÑÑно","alignCenter":"ЦенÑÑÑ","alignTop":"ÐоÑе","alignMiddle":"Ðо ÑÑедаÑа","alignBottom":"ÐолÑ","invalidValue":"Ðевалидна ÑÑойноÑÑ.","invalidHeight":"ÐиÑоÑинаÑа ÑÑÑбва да е ÑиÑло.","invalidWidth":"ШиÑина ÑÑебе да е ÑиÑло.","invalidCssLength":"СÑойноÑÑÑа на полеÑо \"%1\" ÑÑÑбва да бÑде положиÑелно ÑиÑло Ñ Ð¸Ð»Ð¸ без валидна CSS измеÑваÑелна единиÑа (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"СÑойноÑÑÑа на полеÑо \"%1\" ÑÑÑбва да бÑде положиÑелно
ÑиÑло Ñ Ð¸Ð»Ð¸ без валидна HTML измеÑваÑелна единиÑа (px or %).","invalidInlineStyle":"СÑойноÑÑÑа на ÑÑилa ÑÑÑбва да ÑÑдÑÑÐ¶Ð°Ñ ÐµÐ´Ð½Ð° или повеÑе двойки вÑв ÑоÑÐ¼Ð°Ñ \"name : value\", Ñазделени Ñ Ð´Ð²Ð¾ÐµÑоÑие.","cssLengthTooltip":"ÐÑведеÑе ÑиÑлена ÑÑойноÑÑ Ð² пикÑели или дÑÑга валидна CSS единиÑа (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, недоÑÑÑпно</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"ÐÑноÑно CKEditor","help":"ÐÑовеÑеÑе $1 за помоÑ.","moreInfo":"Ðа лиÑензионна инÑоÑмаÑÐ¸Ñ Ð¼Ð¾Ð»Ñ Ð¿Ð¾ÑеÑеÑе ÑайÑа ни:","title":"ÐÑноÑно CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Удебелен","italic":"Ðаклонен","strike":"ÐаÑеÑ
Ñан ÑекÑÑ","subscript":"ÐндекÑиÑан ÑекÑÑ","superscript":"СÑпеÑÑкÑипÑ","underline":"ÐодÑеÑÑан"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Ðлок за ÑиÑаÑ"},"clipboard":{"copy":"ÐопиÑай","copyError":"ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ваÑÐ¸Ñ Ð±ÑазÑÑÑ Ð½Ðµ ÑазÑеÑÐ°Ð²Ð°Ñ Ð½Ð° ÑедакÑоÑа да изпÑлни запамеÑÑванеÑо. Ðа ÑелÑа използвайÑе клавиаÑÑÑаÑа (Ctrl/Cmd+C).","cut":"ÐÑÑежи","cutError":"ÐаÑÑÑойкиÑе за ÑигÑÑноÑÑ Ð½Ð° ÐаÑÐ¸Ñ Ð±ÑаÑзÑÑ Ð½Ðµ позволÑÐ²Ð°Ñ Ð½Ð° ÑедакÑоÑа авÑомаÑиÑно да изÑплни дейÑÑвиÑÑа за оÑÑÑзване. ÐÐ¾Ð»Ñ Ð¿Ð¾Ð»Ð·Ð²Ð°Ð¹Ñе клавиаÑÑÑниÑе команди за ÑелÑа (ctrl+x).","paste":"ÐмÑкни","pasteArea":"Paste Area","pa
steMsg":"ÐмÑкнеÑе ÑÑк ÑÑдÑжаниеÑо Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑаÑаÑа (<STRONG>Ctrl/Cmd+V</STRONG>) и наÑиÑнеÑе <STRONG>OK</STRONG>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"ÐмÑкни"},"colorbutton":{"auto":"ÐвÑомаÑиÑно","bgColorTitle":"Фонов ÑвÑÑ","colors":{"000":"ЧеÑно","800000":"ÐеÑÑенÑво","8B4513":"СвеÑлокаÑÑво","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Ðндиго","696969":"ТÑмно Ñиво","B22222":"Ðгнено ÑеÑвено","A52A2A":"ÐаÑÑво","DAA520":"ÐлаÑиÑÑо","006400":"ТÑмно зелено","40E0D0":"ТÑÑкÑазено","0000CD":"СÑедно ÑинÑо","800080":"ÐÑÑпÑÑно","808080":"Сиво","F00":"ЧеÑвено","FF8C00":"ТÑмно оÑанжево","FFD700":"ÐлаÑно","008000":"Ð
елено","0FF":"СвеÑло ÑинÑо","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"ÐÑе ÑвеÑове","panelTitle":"ЦвеÑове","textColorTitle":"ЦвÑÑ Ð½Ð° ÑÑиÑÑ"},"colordialog":{"clear":"ÐзÑиÑÑване","highlight":"ÐÑвеÑÑване","options":"ЦвеÑови опÑии","selected":"ÐзбеÑеÑе ÑвÑÑ","title":"ÐзбеÑеÑе ÑвÑÑ"},"templates":{"button":"Шаблони","emptyListMsg":"(ÐÑма деÑиниÑани Ñаблони)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"ÐзбеÑеÑе Ñаблон <br>(ÑекÑÑоÑо ÑÑдÑÑжани
е на ÑедакÑоÑа Ñе бÑде загÑбено):","title":"Шаблони"},"contextmenu":{"options":"ÐпÑии на конÑекÑÑноÑо менÑ"},"div":{"IdInputLabel":"ID","advisoryTitleInputLabel":"ÐÑепоÑÑÑиÑелно заглавие","cssClassInputLabel":"ÐлаÑове за CSS","edit":"ÐÑомÑна на Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"ÐÑво на ÐÑÑно (ÐнÐ)","langDirLabel":"ÐоÑока на езика","langDirRTLLabel":"ÐÑÑно на ÐÑво (ÐнÐ)","languageCodeInputLabel":" Ðод на езика","remove":"ÐÑемаÑ
ване на Div","styleSelectLabel":"СÑил","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Свиване на ленÑаÑа Ñ Ð¸Ð½ÑÑÑÑменÑи","toolbarExpand":"РазÑиÑÑване на ленÑаÑа Ñ Ð¸Ð½ÑÑÑÑменÑи","toolbarGroups":{"document":"ÐокÑменÑ","clipboard":"Clipboard/Undo","editing
":"ÐÑомÑна","forms":"ФоÑми","basicstyles":"Ðазови ÑÑилове","paragraph":"ÐаÑагÑаÑ","links":"ÐÑÑзки","insert":"ÐмÑкване","styles":"СÑилове","colors":"ЦвеÑове","tools":"ÐнÑÑÑÑменÑи"},"toolbars":"ÐенÑи Ñ Ð¸Ð½ÑÑÑÑменÑи"},"elementspath":{"eleLabel":"ÐÑÑ Ð·Ð° елеменÑиÑе","eleTitle":"%1 елеменÑ"},"list":{"bulletedlist":"ÐмÑкване/ÐÑемаÑ
ване на ÑоÑков ÑпиÑÑк","numberedlist":"ÐмÑкване/ÐÑемаÑ
ване на номеÑиÑан ÑпиÑÑк"},"indent":{"indent":"УвелиÑаване на оÑÑÑÑпа","outdent":"ÐамалÑване на оÑÑÑÑпа"},"find":{"find":"ТÑÑÑене","findOptions":"Find Options","findWhat":"ТÑÑÑи за:","matchCase":"СÑвпадение","matchCyclic":"ЦиклиÑно ÑÑвпадение","matchWord":"СÑвпадение Ñ Ð´Ñма","notFoundMsg":"УказаниÑÑ ÑекÑÑ Ð½Ðµ е намÐ
µÑен.","replace":"ÐÑепокÑиване","replaceAll":"ÐÑепокÑий вÑиÑки","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"ÐÑепокÑива Ñ:","title":"ТÑÑÑене и пÑепокÑиване"},"fakeobjects":{"anchor":"ÐÑка","flash":"Ð¤Ð»Ð°Ñ Ð°Ð½Ð¸Ð¼Ð°ÑиÑ","hiddenfield":"СкÑиÑо поле","iframe":"IFrame","unknown":"ÐеизвеÑÑен обекÑ"},"flash":{"access":"Script Access","accessAlways":"Ðинаги","accessNever":"Ðикога","accessSameDomain":"СÑÑиÑÑ Ð´Ð¾Ð¼ÐµÐ¹Ð½","alignAbsBottom":"Ðай-долÑ","alignAbsMiddle":"ТоÑно по ÑÑедаÑа","alignBaseline":"Ðазова линиÑ","alignTextTop":"ÐÑÑÑ
Ñ ÑекÑÑа","bgcolor":"ЦвÑÑ Ð½Ð° Ñона","chkFull":"Allow Fullscreen","chkLoop":"ЦикÑл","chkMenu":"РазÑеÑено Flash менÑ","chkPlay":"ÐвÑо. пÑÑкане","flashvars":"ÐÑоменливи за ФлаÑ","hSpace":"ХоÑизонÑален оÑÑÑÑп","pr
operties":"ÐаÑÑÑойки за ÑлаÑ","propertiesTab":"ÐаÑÑÑойки","quality":"ÐаÑеÑÑво","qualityAutoHigh":"ÐвÑо. виÑоко","qualityAutoLow":"ÐвÑо. ниÑко","qualityBest":"ÐÑлиÑно","qualityHigh":"ÐиÑоко","qualityLow":"ÐиÑко","qualityMedium":"СÑедно","scale":"ÐÑазмеÑÑване","scaleAll":"Ðоказва вÑиÑко","scaleFit":"СпоÑед мÑÑÑоÑо","scaleNoBorder":"Ðез Ñамка","title":"ÐаÑÑÑойки за ÑлаÑ","vSpace":"ÐеÑÑикален оÑÑÑÑп","validateHSpace":"HSpace must be a number.","validateSrc":"Уеб адÑеÑа не ÑÑÑбва да е пÑазен.","validateVSpace":"VSpace must be a number.","windowMode":"Режим на пÑозоÑеÑа","windowModeOpaque":"ÐлÑÑноÑÑ","windowModeTransparent":"ÐÑозÑаÑноÑÑ","windowModeWindow":"ÐÑозоÑеÑ"},"font":{"fontSize":{"label":"РазмеÑ","voiceLabel":"Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑÑиÑÑ","panelTitl
e":"Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑÑиÑÑ"},"label":"ШÑиÑÑ","panelTitle":"Ðме на ÑÑиÑÑ","voiceLabel":"ШÑиÑÑ"},"forms":{"button":{"title":"ÐаÑÑÑойки на бÑÑона","text":"ТекÑÑ (ÑÑойноÑÑ)","type":"Тип","typeBtn":"ÐÑÑон","typeSbm":"Ðобави","typeRst":"ÐÑлиÑане"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"ÐаÑÑÑойки на ÑадиобÑÑон","value":"СÑойноÑÑ","selected":"ÐзбÑано"},"form":{"title":"ÐаÑÑÑойки на ÑоÑмаÑа","menu":"ÐаÑÑÑойки на ÑоÑмаÑа","action":"ÐейÑÑвие","method":"ÐеÑод","encoding":"ÐодиÑане"},"hidden":{"title":"ÐаÑÑÑойки за ÑкÑиÑо поле","name":"Ðме","value":"СÑойноÑÑ"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"ÐалиÑни опÑии","value":"СÑойноÑÑ","size":"РазмеÑ","lines":"линии","chkMulti":"Allow
multiple selections","opText":"ТекÑÑ","opValue":"СÑойноÑÑ","btnAdd":"Ðобави","btnModify":"ÐÑомени","btnUp":"Ðа гоÑе","btnDown":"Ðа долÑ","btnSetValue":"Set as selected value","btnDelete":"ÐзÑÑиване"},"textarea":{"title":"ÐпÑии за ÑекÑÑоваÑа зона","cols":"Ðолони","rows":"Редове"},"textfield":{"title":"ÐаÑÑÑойки за ÑекÑÑово поле","name":"Ðме","value":"СÑойноÑÑ","charWidth":"ШиÑина на знаÑиÑе","maxChars":"ÐакÑ. знаÑи","type":"Тип","typeText":"ТекÑÑ","typePass":"ÐаÑола","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ФоÑмаÑ","panelTitle":"ФоÑмаÑ","tag_address":"ÐдÑеÑ","tag_div":"ÐаÑагÑÐ°Ñ (DIV)","tag_h1":"Ðаглавие 1","tag_h2":"Ðаглавие 2","tag_h3":"Ðаглавие 3","tag_h4":"Ðаглавие 4","tag_h5":"Ðаглавие 5","ta
g_h6":"Ðаглавие 6","tag_p":"ÐоÑмален","tag_pre":"ФоÑмаÑиÑан"},"horizontalrule":{"toolbar":"ÐмÑкване на Ñ
оÑизонÑална линиÑ"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame наÑÑÑойки","toolbar":"IFrame"},"image":{"alertUrl":"ÐолÑ, вÑведеÑе пÑÐ»Ð½Ð¸Ñ Ð¿ÑÑ Ð´Ð¾ изобÑажениеÑо","alt":"ÐлÑеÑнаÑивен ÑекÑÑ","border":"Рамка","btnUpload":"ÐзпÑаÑи Ñ Ð½Ð° ÑÑÑвÑÑа","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"ХоÑизонÑален оÑÑÑÑп","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ÐнÑо за Ñнимка","linkTab":"ÐÑÑзка","lockRatio":"ÐаклÑÑване на ÑÑоÑноÑениеÑо","menu":"ÐаÑÑÑойки за Ñнимка","resetSize":"ÐÑлиÑане на ÑаÐ
·Ð¼ÐµÑ","title":"ÐаÑÑÑойки за Ñнимка","titleButton":"ÐаÑÑойки за бÑÑон за Ñнимка","upload":"ÐаÑване","urlMissing":"Image source URL is missing.","vSpace":"ÐеÑÑикален оÑÑÑÑп","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"ÐпÑии за ÑÑмивкаÑа","title":"ÐмÑкване на ÑÑмивка","toolbar":"УÑмивка"},"justify":{"block":"ÐвÑÑÑÑанно подÑавнÑване","center":"ЦенÑÑÑ","left":"ÐодÑавни в лÑво","right":"ÐодÑавни в дÑÑно"},"link":{"acccessKey":"ÐлÑÑ Ð·Ð° доÑÑÑп","advanced":"РазÑиÑено","advisoryContentType":"ÐÑепоÑÑÑиÑелен Ñип на ÑÑдÑÑжаниеÑо","advisoryTitle":"ÐÑепоÑÑÑиÑелно заглавие","anchor":{"toolbar":"ÐоÑва","menu":"ÐÑомÑна на
коÑва","title":"ÐаÑÑÑойки на коÑва","name":"Ðме на коÑва","errorName":"ÐÐ¾Ð»Ñ Ð²ÑведеÑе име на коÑваÑа","remove":"ÐÑемаÑ
ване на коÑва"},"anchorId":"Ðо ID на елеменÑ","anchorName":"Ðо име на коÑва","charset":"Тип на ÑвÑÑÐ·Ð°Ð½Ð¸Ñ ÑеÑÑÑÑ","cssClasses":"ÐлаÑове за CSS","emailAddress":"E-mail aдÑеÑ","emailBody":"СÑдÑÑжание","emailSubject":"Тема","id":"ID","info":"ÐнÑо за вÑÑзкаÑа","langCode":"Ðод за езика","langDir":"ÐоÑока на езика","langDirLTR":"ÐÑво на ÐÑÑно (ÐнÐ)","langDirRTL":"ÐÑÑно на ÐÑво (ÐнÐ)","menu":"ÐÑомÑна на вÑÑзка","name":"Ðме","noAnchors":"(ÐÑма коÑви в ÑекÑÑÐ¸Ñ Ð´Ð¾ÐºÑменÑ)","noEmail":"ÐÐ¾Ð»Ñ Ð²ÑведеÑе e-mail aдÑеÑ","noUrl":"ÐÐ¾Ð»Ñ Ð²ÑведеÑе URL адÑеÑа","other":"<дÑÑго>","popupDependent":"ÐавÐ
¸ÑимоÑÑ (Netscape)","popupFeatures":"ФÑнкÑии на изкаÑÐ°Ñ Ð¿ÑозоÑеÑ","popupFullScreen":"ЦÑл екÑан (IE)","popupLeft":"ÐÑва позиÑиÑ","popupLocationBar":"ÐенÑа Ñ Ð»Ð¾ÐºÐ°ÑиÑÑа","popupMenuBar":"ÐенÑа за менÑ","popupResizable":"ÐÑазмеÑÑем","popupScrollBars":"СкÑолеÑи","popupStatusBar":"СÑаÑÑÑна ленÑа","popupToolbar":"ÐенÑа Ñ Ð¸Ð½ÑÑÑÑменÑи","popupTop":"ÐоÑна позиÑиÑ","rel":"ÐÑÑзка","selectAnchor":"ÐзбеÑеÑе коÑва","styles":"СÑил","tabIndex":"Ред на доÑÑÑп","target":"Цел","targetFrame":"<frame>","targetFrameName":"Ðме на ÑелевиÑÑ Ð¿ÑозоÑеÑ","targetPopup":"<изкаÑÐ°Ñ Ð¿ÑозоÑеÑ>","targetPopupName":"Ðме на изкаÑÐ°Ñ Ð¿ÑозоÑеÑ","title":"ÐÑÑзка","toAnchor":"ÐÑÑзка кÑм коÑва в ÑекÑÑа","toEmail":"E-mail","toUrl":"Уеб адÑеÑ","toolbar":"ÐÑÑзка
","type":"Тип на вÑÑзкаÑа","unlink":"ÐÑемаÑ
ни вÑÑзкаÑа","upload":"ÐаÑване"},"liststyle":{"armenian":"ÐÑменÑко номеÑиÑане","bulletedTitle":"Bulleted List Properties","circle":"ÐÑÑг","decimal":"ЧиÑла (1, 2, 3 и дÑ.)","decimalLeadingZero":"ЧиÑла Ñ Ð²Ð¾Ð´ÐµÑа нÑла (01, 02, 03 и Ñ.н.)","disc":"ÐиÑк","georgian":"ÐÑÑзинÑко номеÑиÑане (an, ban, gan, и Ñ.н.)","lowerAlpha":"Ðалки бÑкви (а, б, в, г, д и Ñ.н.)","lowerGreek":"Ðалки гÑÑÑки бÑкви (алÑа, беÑа, гама и Ñ.н.)","lowerRoman":"Ðалки ÑимÑки ÑиÑла (i, ii, iii, iv, v и Ñ.н.)","none":"ÐÑма","notset":"<не е Ñказано>","numberedTitle":"Numbered List Properties","square":"ÐвадÑаÑ","start":"СÑаÑÑ","type":"Тип","upperAlpha":"Ðолеми бÑкви (Ð, Ð, Ð, Ð, Ри Ñ.н.)","upperRoman":"Ðолеми ÑимÑки ÑиÑла (I, II, I
II, IV, V и Ñ.н.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ÐакÑимизиÑане","minimize":"ÐинимизиÑане"},"newpage":{"toolbar":"Ðова ÑÑÑаниÑа"},"pagebreak":{"alt":"РазделÑне на ÑÑÑаниÑи","toolbar":"ÐмÑкване на нова ÑÑÑаниÑа пÑи пеÑаÑ"},"pastetext":{"button":"ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ","title":"ÐмÑкни каÑо ÑиÑÑ ÑекÑÑ"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"ÐмÑкни Ð¾Ñ MS Word","toolbar":"ÐмÑкни Ð¾Ñ MS Word"},"preview":{"preview":"ÐÑеглед"},"print":{"toolbar":"ÐеÑаÑ"},"removeformat":{"toolbar":"ÐÑемаÑ
ване на ÑоÑмаÑиÑанеÑо"},"save":{
"toolbar":"ÐапиÑ"},"selectall":{"toolbar":"ÐзбеÑи вÑиÑко"},"showblocks":{"toolbar":"Ðоказва блокове"},"sourcearea":{"toolbar":"ÐзÑоÑник"},"specialchar":{"options":"ÐпÑии за ÑпеÑиален знак","title":"ÐÐ·Ð±Ð¾Ñ Ð½Ð° ÑпеÑиален знак","toolbar":"ÐмÑкване на ÑпеÑиален знак"},"scayt":{"about":"About SCAYT","aboutTab":"ÐÑноÑно","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Ðов","dic_delete":"ÐзÑÑиване","dic_field_name":"Ðме на ÑеÑнк","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore
button.","dic_rename":"ÐÑеименÑване","dic_restore":"ÐÑзÑановÑване","dictionariesTab":"РеÑниÑи","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"ÐзиÑи","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"ÐгноÑиÑани дÑми и ÑиÑÑи","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"СÑилове","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° ÑамкаÑа","caption":"Ðаглавие","cell":{"menu":"ÐлеÑка","insertBefore":"ÐмÑкване на
клеÑка пÑеди","insertAfter":"ÐмÑкване на клеÑка Ñлед","deleteCell":"ÐзÑÑиване на клеÑки","merge":"Сливане на клеÑки","mergeRight":"Сливане в дÑÑно","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"ÐаÑÑÑойки на клеÑкаÑа","cellType":"Тип на клеÑкаÑа","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"ÐвÑо. пÑеноÑ","hAlign":"ХоÑизонÑално подÑавнÑване","vAlign":"ÐеÑÑикално подÑавнÑване","alignBaseline":"Ðазова линиÑ","bgColor":"Фон","borderColor":"ЦвÑÑ Ð½Ð° ÑамкаÑа","data":"Ðанни","header":"ХедÑÑ","yes":"Ðа","no":"Ðе","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a
whole number.","chooseColor":"ÐзбеÑеÑе"},"cellPad":"ÐÑделÑне на клеÑкиÑе","cellSpace":"РазÑоÑние Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»ÐµÑкиÑе","column":{"menu":"Ðолона","insertBefore":"ÐмÑкване на колона пÑеди","insertAfter":"ÐмÑкване на колона Ñлед","deleteColumn":"ÐзÑÑиване на колони"},"columns":"Ðолони","deleteTable":"ÐзÑÑиване на ÑаблиÑа","headers":"ХедÑÑи","headersBoth":"Ðаедно","headersColumn":"ÐÑÑва колона","headersNone":"ÐÑма","headersRow":"ÐÑÑви Ñед","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"ÐÑоÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¸ ÑÑÑбва да е по-голÑм Ð¾Ñ 0.","invalidHeight":"Table height must be a number.","invalidRows":"ÐÑоÑÑ Ñедове ÑÑÑбва да е по-голÑм
Ð¾Ñ 0.","invalidWidth":"Table width must be a number.","menu":"ÐаÑÑÑойки на ÑаблиÑаÑа","row":{"menu":"Ред","insertBefore":"Insert Row Before","insertAfter":"ÐмÑкване на Ñед Ñлед","deleteRow":"ÐзÑÑиване на Ñедове"},"rows":"Редове","summary":"ÐбÑа инÑоÑмаÑиÑ","title":"ÐаÑÑÑойки на ÑаблиÑаÑа","toolbar":"ТаблиÑа","widthPc":"пÑоÑенÑ","widthPx":"пикÑела","widthUnit":"единиÑа за ÑиÑина"},"undo":{"redo":"ÐÑÑÑане на пÑедиÑен ÑÑаÑÑÑ","undo":"ÐÑзÑанови"},"wsc":{"btnIgnore":"ÐгноÑиÑай","btnIgnoreAll":"ÐгноÑиÑай вÑиÑко","btnReplace":"ÐÑепокÑиване","btnReplaceAll":"ÐÑепокÑий вÑиÑко","btnUndo":"ÐÑзÑанови","changeTo":"ÐÑомени на","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download
it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- ÐÑма пÑепоÑÑÑани -","notAvailable":"СÑжалÑваме, но ÑÑлÑгаÑа не е доÑÑÑпна за моменÑа","notInDic":"Ðе е в ÑеÑника","oneChange":"Spell check complete: One word changed","progress":"ÐÑовеÑÑва Ñе пÑавопиÑа...","title":"ÐÑовеÑка на пÑавопиÑ","toolbar":"ÐÑовеÑка на пÑавопиÑ"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/bn.js b/share/static/RichText/lang/bn.js
index c7debfc..bc12386 100644
--- a/share/static/RichText/lang/bn.js
+++ b/share/static/RichText/lang/bn.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.bn={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'সà§à¦°à§à¦¸',newPage:'নতà§à¦¨ পà§à¦',save:'সà¦à¦°à¦à§à¦·à¦¨ à¦à¦°',preview:'পà§à¦°à¦¿à¦à¦¿à¦',cut:'à¦à¦¾à¦',copy:'à¦à¦ªà¦¿',paste:'পà§à¦¸à§à¦',print:'পà§à¦°à¦¿à¦¨à§à¦',underline:'à¦à¦¨à§à¦¡à¦¾à¦°à¦²à¦¾à¦à¦¨',bold:'বà§à¦²à§à¦¡',italic:'à¦à¦à¦¾à¦²à¦¿à¦',selectAll:'সব সিলà§à¦à§à¦ à¦à¦°',removeFormat:'ফরমà§à¦ সরাà¦',strike:'সà§à¦à§à¦°à¦¾à¦à¦ থà§à¦°à§',subscript:'à¦
ধà§à¦²à§à¦',superscript:'à¦
à¦à¦¿à¦²à§à¦',horizontalrule:'রà§à¦à¦¾ যà§à¦à§à¦¤ à¦à¦°',pagebreak:'পà§à¦ বà§à¦°à§à¦',unlink:'লিà¦à¦ সরাà¦',undo:'à¦à¦¨à¦¡à§',redo:'রি-ডà§',common:{browseServer:'বà§à¦°à¦¾à¦à¦ সারà§à¦à¦¾à¦°',url:'URL',protocol:'পà§à¦°à§à¦à§à¦à¦²',upload:'à¦à¦ªà¦²à§à¦¡',uploadSubmit:'à¦à¦¹à¦¾à¦à§ সারà§à¦à¦
¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°',image:'à¦à¦¬à¦¿à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',flash:'ফà§à¦²à¦¾à¦¶ লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',form:'ফরà§à¦®',checkbox:'à¦à§à¦ বাà¦à§à¦¸',radio:'রà§à¦¡à¦¿à¦ বাà¦à¦¨',textField:'à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡',textarea:'à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾',hiddenField:'à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡',button:'বাà¦à¦¨',select:'বাà¦à¦¾à¦ ফà§à¦²à§à¦¡',imageButton:'à¦à¦¬à¦¿à¦° বাà¦à¦¨',notSet:'<সà§à¦ নà§à¦>',id:'à¦à¦à¦¡à¦¿',name:'নাম',langDir:'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',langDirLtr:'বাম থà§à¦à§ ডান (LTR)',langDirRtl:'ডান থà§à¦à§ বাম (RTL)',langCode:'à¦à¦¾à¦·à¦¾ à¦à§à¦¡',longDescr:'URL à¦à¦° লমà§à¦¬à¦¾ বরà§à¦£à¦¨à¦¾',cssClass:'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',advisoryTitle:'পরামরà§à¦¶ শà§à¦°à§à¦·à¦',cssStyle:'সà§à¦à¦¾à¦à¦²',ok:'à¦à¦à§',cancel:'বাতিল',c
lose:'Close',preview:'Preview',generalTab:'General',advancedTab:'à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'বিশà§à¦· à¦
à¦à§à¦·à¦° যà§à¦à§à¦¤ à¦à¦°',title:'বিশà§à¦· à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° বাà¦à¦¾à¦ à¦à¦°',options:'Special Character Options'},link:{toolbar:'লিà¦à¦ যà§à¦à§à¦¤ à¦à¦°',oth
er:'<other>',menu:'লিà¦à¦ সমà§à¦ªà¦¾à¦¦à¦¨',title:'লিà¦à¦',info:'লিà¦à¦ তথà§à¦¯',target:'à¦à¦¾à¦°à§à¦à§à¦',upload:'à¦à¦ªà¦²à§à¦¡',advanced:'à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡',type:'লিà¦à¦ পà§à¦°à¦à¦¾à¦°',toUrl:'URL',toAnchor:'à¦à¦ পà§à¦à§ নà§à¦à¦° à¦à¦°',toEmail:'à¦à¦®à§à¦à¦²',targetFrame:'<ফà§à¦°à§à¦®>',targetPopup:'<পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§>',targetFrameName:'à¦à¦¾à¦°à§à¦à§à¦ ফà§à¦°à§à¦®à§à¦° নাম',targetPopupName:'পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§à¦° নাম',popupFeatures:'পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§ ফà§à¦à¦¾à¦° সমà§à¦¹',popupResizable:'Resizable',popupStatusBar:'সà§à¦à§à¦¯à¦¾à¦à¦¾à¦¸ বার',popupLocationBar:'লà§à¦à§à¦¶à¦¨ বার',popupToolbar:'à¦à§à¦² বার',popupMenuBar:'মà§à¦¨à§à¦¯à§ বার',popupFullScreen:'পà§à¦°à§à¦£ পরà§à¦¦à¦¾ à¦à§à§à§ (IE)',popupScrollBars:'সà§à¦à§à¦°à¦² বার',popupDependent:'ডিপà§à¦¨à§à¦¡à§à¦¨à
§à¦ (Netscape)',popupWidth:'পà§à¦°à¦¸à§à¦¥',popupLeft:'বামà§à¦° পà¦à¦¿à¦¶à¦¨',popupHeight:'দà§à¦°à§à¦à§à¦¯',popupTop:'ডানà§à¦° পà¦à¦¿à¦¶à¦¨',id:'Id',langDir:'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',langDirLTR:'বাম থà§à¦à§ ডান (LTR)',langDirRTL:'ডান থà§à¦à§ বাম (RTL)',acccessKey:'à¦à¦à§à¦¸à§à¦¸ à¦à§',name:'নাম',langCode:'à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦',tabIndex:'à¦à§à¦¯à¦¾à¦¬ à¦à¦¨à§à¦¡à§à¦à§à¦¸',advisoryTitle:'পরামরà§à¦¶ শà§à¦°à§à¦·à¦',advisoryContentType:'পরামরà§à¦¶ à¦à¦¨à§à¦à§à¦¨à§à¦à§à¦° পà§à¦°à¦à¦¾à¦°',cssClasses:'সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸',charset:'লিà¦à¦ রিসà§à¦°à§à¦¸ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦° সà§à¦',styles:'সà§à¦à¦¾à¦à¦²',selectAnchor:'নà§à¦à¦° বাà¦à¦¾à¦',anchorName:'নà§à¦à¦°à§à¦° নাম দিà§à§',anchorId:'নà§à¦à¦°à§à¦° à¦à¦à¦¡à¦¿ দিà§à§',emailAddress:'à¦à¦
®à§à¦à¦² ঠিà¦à¦¾à¦¨à¦¾',emailSubject:'মà§à¦¸à§à¦à§à¦° বিষà§',emailBody:'মà§à¦¸à§à¦à§à¦° দà§à¦¹',noAnchors:'(No anchors available in the document)',noUrl:'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',noEmail:'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦®à§à¦à¦² à¦à¦¡à§à¦°à§à¦¸ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨'},anchor:{toolbar:'নà§à¦à§à¦à¦°',menu:'নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',title:'নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',name:'নà§à¦à¦°à§à¦° নাম',errorName:'নà§à¦à¦°à§à¦° নাম à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.
)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'à¦à§à¦à§',replace:'রিপà§à¦²à§à¦¸',findWhat:'যা à¦à§à¦à¦à¦¤à§ হবà§:',replaceWith:'যার সাথৠবদলাতৠহবà§:',notFoundMsg:'à¦à¦ªà¦¨à¦¾à¦° à¦à¦²à§à¦²à§à¦à¦¿à¦¤ à¦à§à¦à¦¸à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿',matchCase:'à¦à§à¦¸ মিলাà¦',matchWord:'পà§à¦°à¦¾ শবà§à¦¦ মà§à¦²à¦¾à¦',matchCyclic:'Match cyclic',replaceAll:'সব বদলৠদাà¦',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'à¦à§à¦¬à¦¿à¦²à§à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°',title:'à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',menu:'à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦
ªà¦¾à¦°à§à¦à¦¿',deleteTable:'à¦à§à¦¬à¦¿à¦² ডিলà§à¦ à¦à¦°',rows:'রà§',columns:'à¦à¦²à¦¾à¦®',border:'বরà§à¦¡à¦¾à¦° সাà¦à¦',align:'à¦à¦²à¦¾à¦à¦¨à¦®à§à¦¨à§à¦',alignLeft:'বামà§',alignCenter:'মাà¦à¦à¦¾à¦¨à§',alignRight:'ডানà§',width:'পà§à¦°à¦¸à§à¦¥',widthPx:'পিà¦à§à¦¸à§à¦²',widthPc:'শতà¦à¦°à¦¾',widthUnit:'width unit',height:'দà§à¦°à§à¦à§à¦¯',cellSpace:'সà§à¦² সà§à¦ªà§à¦¸',cellPad:'সà§à¦² পà§à¦¯à¦¾à¦¡à¦¿à¦',caption:'শà§à¦°à§à¦·à¦',summary:'সারাà¦à¦¶',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellP
adding:'Cell padding must be a number.',cell:{menu:'সà§à¦²',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'সà§à¦² মà§à¦à§ দাà¦',merge:'সà§à¦² à¦à§à§à¦¾ দাà¦',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'রà§',insertBefore:'Insert Row Before',insertAfter:'Insert Row Aft
er',deleteRow:'রৠমà§à¦à§ দাà¦'},column:{menu:'à¦à¦²à¦¾à¦®',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'à¦à¦²à¦¾à¦® মà§à¦à§ দাà¦'}},button:{title:'বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',text:'à¦à§à¦à§à¦¸à¦ (à¦à§à¦¯à¦¾à¦²à§)',type:'পà§à¦°à¦à¦¾à¦°',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'à¦à§à¦ বà¦à§à¦¸ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',radioTitle:'রà§à¦¡à¦¿à¦ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',value:'à¦à§à¦¯à¦¾à¦²à§',selected:'সিলà§à¦à§à¦à§à¦¡'},form:{title:'ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',menu:'ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',action:'à¦à¦à¦¶à§à¦¯à¦¨',method:'পদà§à¦§à¦¤à¦¿',encoding:'Encoding'},select:{title:'বাà¦à¦¾à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',selectInfo:'তথà§à¦¯',opAvail:'à¦
নà§à¦¯à¦¾à¦¨à§à¦¯ বিà¦à¦²à§à¦ª',value:'à¦à§à¦¯à¦¾à¦²à§',size:'à
¦¸à¦¾à¦à¦',lines:'লাà¦à¦¨ সমà§à¦¹',chkMulti:'à¦à¦à¦¾à¦§à¦¿à¦ সিলà§à¦à¦¶à¦¨ à¦à¦²à¦¾à¦ à¦à¦°',opText:'à¦à§à¦à§à¦¸à¦',opValue:'à¦à§à¦¯à¦¾à¦²à§',btnAdd:'যà§à¦à§à¦¤',btnModify:'বদলৠদাà¦',btnUp:'à¦à¦ªà¦°',btnDown:'নà§à¦à§',btnSetValue:'বাà¦à¦¾à¦ à¦à¦°à¦¾ à¦à§à¦¯à¦¾à¦²à§ হিসà§à¦¬à§ সà§à¦ à¦à¦°',btnDelete:'ডিলà§à¦'},textarea:{title:'à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',cols:'à¦à¦²à¦¾à¦®',rows:'রà§'},textfield:{title:'à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',name:'নাম',value:'à¦à§à¦¯à¦¾à¦²à§',charWidth:'à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° পà§à¦°à¦¶à¦¸à§à¦¤à¦¤à¦¾',maxChars:'সরà§à¦¬à¦¾à¦§à¦¿à¦ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦°',type:'à¦à¦¾à¦à¦ª',typeText:'à¦à§à¦à§à¦¸à¦',typePass:'পাসà¦à§à¦¾à¦°à§à¦¡'},hidden:{title:'à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',name:'নাম',value:'à¦
à§à¦¯à¦¾à¦²à§'},image:{title:'à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',titleButton:'à¦à¦¬à¦¿ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',menu:'à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',infoTab:'à¦à¦¬à¦¿à¦° তথà§à¦¯',btnUpload:'à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°',upload:'à¦à¦ªà¦²à§à¦¡',alt:'বিà¦à¦²à§à¦ª à¦à§à¦à§à¦¸à¦',width:'পà§à¦°à¦¸à§à¦¥',height:'দà§à¦°à§à¦à§à¦¯',lockRatio:'à¦
নà§à¦ªà¦¾à¦¤ লঠà¦à¦°',unlockRatio:'Unlock Ratio',resetSize:'সাà¦à¦ পà§à¦°à§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à§ ফিরিà§à§ দাà¦',border:'বরà§à¦¡à¦¾à¦°',hSpace:'হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸',vSpace:'à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸',align:'à¦à¦²à¦¾à¦à¦¨',alignLeft:'বামà§',alignRight:'ডানà§',alertUrl:'à¦
নà§à¦à§à¦°à¦¹à¦ à¦à¦°à§ à¦à¦¬à¦¿à¦° URL à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',linkTab:'লিà¦à¦',button2Img:'Do you want to transform the selected image button o
n a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ফà§à¦²à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',propertiesTab:'Properties',title:'ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿',chkPlay:'à¦
à¦à§ পà§à¦²à§',chkLoop:'লà§à¦ª',chkMenu:'ফà§à¦²à§à¦¯à¦¾à¦¶ মà§à¦¨à§ à¦à¦¨à¦¾à¦¬à¦² à¦à¦°',chkFull:'Allow Fullscreen',scale:'সà§à¦à§à¦²',scaleAll:'সব দà§à¦à¦¾à¦',scaleNoBorder:'à¦à§à¦¨à§ বরà§à¦¡à¦¾à¦° নà§à¦',scaleFit:'নিà¦à§à¦à¦¤ ফিà¦',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'à¦à¦²à¦¾à¦à¦¨',alignLeft:'বামà§',alignAbsB
ottom:'Abs নà§à¦à§',alignAbsMiddle:'Abs à¦à¦ªà¦°',alignBaseline:'মà§à¦² রà§à¦à¦¾',alignBottom:'নà§à¦à§',alignMiddle:'মধà§à¦¯',alignRight:'ডানà§',alignTextTop:'à¦à§à¦à§à¦¸à¦ à¦à¦ªà¦°',alignTop:'à¦à¦ªà¦°',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦',width:'পà§à¦°à¦¸à§à¦¥',height:'দà§à¦°à§à¦à§à¦¯',hSpace:'হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸',vSpace:'à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸',validateSrc:'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace
must be a number.'},spellCheck:{toolbar:'বানান à¦à§à¦',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'শবà§à¦¦à¦à§à¦·à§ নà§à¦',changeTo:'à¦à¦¤à§ বদলাà¦',btnIgnore:'à¦à¦à¦¨à§à¦° à¦à¦°',btnIgnoreAll:'সব à¦à¦à¦¨à§à¦° à¦à¦°',btnReplace:'বদলৠদাà¦',btnReplaceAll:'সব বদলৠদাà¦',btnUndo:'à¦à¦¨à§à¦¡à§',noSuggestions:'- à¦à§à¦¨ সাà¦à§à¦¶à¦¨ নà§à¦ -',progress:'বানান পরà§à¦à§à¦·à¦¾ à¦à¦²à¦à§...',noMispell:'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ à¦à§à¦² বানান পাà¦à§à¦¾ যাà§à¦¨à¦¿',noChanges:'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à¦¨à¦¿',oneChange:'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à¦à¦à¦¿ মাতà§à¦° শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦
°à¦¾ হà§à§à¦à§',manyChanges:'বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: %1 à¦à§à¦²à§ শবà§à¦¦ বদলৠà¦à§à¦¯à¦¾à¦à§',ieSpellDownload:'বানান পরà§à¦à§à¦·à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ নà§à¦à¥¤ à¦à¦ªà¦¨à¦¿ à¦à¦¿ à¦à¦à¦¨à¦ à¦à¦à¦¾ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¤à§ à¦à¦¾à¦¨?'},smiley:{toolbar:'সà§à¦®à¦¾à¦à¦²à§',title:'সà§à¦®à¦¾à¦à¦²à§ যà§à¦à§à¦¤ à¦à¦°',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'সাà¦à¦à§à¦¯à¦¿à¦ লিসà§à¦à§à¦° লà§à¦¬à§à¦²',bulletedlist:'বà§à¦²à§à¦ লিসà§à¦ লà§à¦¬à§à¦²',indent:'à¦à¦¨à¦¡à§à¦¨à§à¦ বাà§à¦¾à¦',outdent:'à¦à¦¨à¦¡à§à¦¨à§à¦ à¦à¦®à¦¾à¦',justify:{left:'বা দিà¦à§ à¦à§à¦à¦·à¦¾',center:'মাঠবরাবর à¦à§à¦·à¦¾',right:'ডান দিà¦à§ à¦à§à¦à¦·à¦¾',block:'বà§à¦²à¦ à¦à¦¾à¦¸à§à¦à¦¿à¦«à¦¾à¦'},blockquote:'Block Quote',clipboard:{title:'à
¦ªà§à¦¸à§à¦',cutError:'à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦¾à¦ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+X)।',copyError:'à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦ªà¦¿ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+C)।',pasteMsg:'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ নà§à¦à§à¦° বাà¦à§à¦¸à§ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§ (<STRONG>Ctrl/Cmd+V</STRONG>) পà§à¦¸à§à¦ à¦à¦°à§à¦¨ à¦à¦¬à¦ <STRONG>OK</STRONG> à¦à¦¾à¦ª দিন',securityMsg:'Because of your browser security settings, the
editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'পà§à¦¸à§à¦ (শবà§à¦¦)',title:'পà§à¦¸à§à¦ (শবà§à¦¦)',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°',title:'সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°'},templates:{button:'à¦à§à¦®à¦ªà§à¦²à§à¦',title:'à¦à¦¨à¦à§à¦¨à§à¦ à¦à§à¦®à¦ªà§à¦²à§à¦',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦¡à¦¿à¦à¦°à§ à¦à¦ªà§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦à§à¦®à¦ªà§à¦²à§à¦ বাà¦à¦¾à¦ à¦à¦°à§à¦¨<br>(à¦à¦¸à¦² à¦à¦¨à¦à§à¦¨à§à¦ হারিà§à§ য
াবà§):',emptyListMsg:'(à¦à§à¦¨ à¦à§à¦®à¦ªà§à¦²à§à¦ ডিফাà¦à¦¨ à¦à¦°à¦¾ নà§à¦)'},showBlocks:'Show Blocks',stylesCombo:{label:'সà§à¦à¦¾à¦à¦²',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'ফনà§à¦ ফরমà§à¦',panelTitle:'ফনà§à¦ ফরমà§à¦',tag_p:'সাধারণ',tag_pre:'ফরà§à¦®à§à¦à§à¦¡',tag_address:'ঠিà¦à¦¾à¦¨à¦¾',tag_h1:'শà§à¦°à§à¦·à¦ à§§',tag_h2:'শà§à¦°à§à¦·à¦ ২',tag_h3:'শà§à¦°à§à¦·à¦ à§©',tag_h4:'শà§à¦°à§à¦·à¦ ৪',tag_h5:'শà§à¦°à§à¦·à¦ à§«',tag_h6:'শà§à¦°à§à¦·à¦ ৬',tag_div:'শà§à¦°à§à¦·à¦ (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direc
tion',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ফনà§à¦',voiceLabel:'Font',panelTitle:'ফনà§à¦'},fontSize:{label:'সাà¦à¦',voiceLabel:'Font Size',panelTitle:'সাà¦à¦'},colorButton:{textColorTitle:'à¦à§à¦à§à¦¸à§à¦ রà¦',bgColorTitle:'বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦',panelTitle:'Colors',auto:'à¦
à¦à§à¦®à§à¦à¦¿à¦',more:'à¦à¦°à¦ রà¦...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquois
e',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limit
ed in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['bn']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"বà§à¦°à¦¾à¦à¦ সারà§à¦à¦¾à¦°","url":"URL","protocol":"পà§à¦°à§à¦à§à¦à¦²","upload":"à¦à¦ªà¦²à§à¦¡","uploadSubmit":"à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°","image":"à¦à¦¬à¦¿à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°","flash":"ফà§à¦²à¦¾à¦¶ লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°","form":"ফরà§à¦®","checkbox":"à¦à§à¦ বাà¦à§à¦¸","radio":"রà§à¦¡à¦¿à¦ বাà¦à¦¨","textField":"à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡","textarea":"à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾","hiddenField":"à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡","button":"বাà¦à¦¨","select":"বাà¦à¦¾à¦ ফà§à¦²à§à¦¡","imageButton":"à¦à¦¬à¦¿à¦° বাà¦à¦¨","notSet":"<সà§à¦ নà§à¦>","id":"à¦à¦à¦¡à¦¿","name":"নাম","langDir":"à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦","langDirLtr":"বাম থà§à¦à§ ডান (LTR)","lang
DirRtl":"ডান থà§à¦à§ বাম (RTL)","langCode":"à¦à¦¾à¦·à¦¾ à¦à§à¦¡","longDescr":"URL à¦à¦° লমà§à¦¬à¦¾ বরà§à¦£à¦¨à¦¾","cssClass":"সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸","advisoryTitle":"পরামরà§à¦¶ শà§à¦°à§à¦·à¦","cssStyle":"সà§à¦à¦¾à¦à¦²","ok":"à¦à¦à§","cancel":"বাতিল","close":"Close","preview":"পà§à¦°à¦¿à¦à¦¿à¦","resize":"Resize","generalTab":"General","advancedTab":"à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"à¦à¦¾à¦°à§à¦à§à¦","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"বাম থà§à¦à§ ডান (LTR)","langDirRTL":
"ডান থà§à¦à§ বাম (RTL)","styles":"সà§à¦à¦¾à¦à¦²","cssClasses":"সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸","width":"পà§à¦°à¦¸à§à¦¥","height":"দà§à¦°à§à¦à§à¦¯","align":"à¦à¦²à¦¾à¦à¦¨","alignLeft":"বামà§","alignRight":"ডানà§","alignCenter":"মাà¦à¦à¦¾à¦¨à§","alignTop":"à¦à¦ªà¦°","alignMiddle":"মধà§à¦¯","alignBottom":"নà§à¦à§","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthT
ooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"বà§à¦²à§à¦¡","italic":"à¦à¦à¦¾à¦²à¦¿à¦","strike":"সà§à¦à§à¦°à¦¾à¦à¦ থà§à¦°à§","subscript":"à¦
ধà§à¦²à§à¦","superscript":"à¦
à¦à¦¿à¦²à§à¦","underline":"à¦à¦¨à§à¦¡à¦¾à¦°à¦²à¦¾à¦à¦¨"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"à¦à¦ªà¦¿","copyError":"à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦
ªà¦¿ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+C)।","cut":"à¦à¦¾à¦","cutError":"à¦à¦ªà¦¨à¦¾à¦° বà§à¦°à¦¾à¦à¦à¦¾à¦°à§à¦° সà§à¦°à¦à§à¦·à¦¾ সà§à¦à¦¿à¦à¦¸ à¦à¦¡à¦¿à¦à¦°à¦à§ à¦
à¦à§à¦®à§à¦à¦¿à¦ à¦à¦¾à¦ à¦à¦°à¦¾à¦° à¦
নà§à¦®à¦¤à¦¿ দà§à§à¦¨à¦¿à¥¤ দà§à¦¾ à¦à¦°à§ à¦à¦ à¦à¦¾à¦à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§à¦¨ (Ctrl/Cmd+X)।","paste":"পà§à¦¸à§à¦","pasteArea":"Paste Area","pasteMsg":"à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ নà§à¦à§à¦° বাà¦à§à¦¸à§ à¦à¦¿à¦¬à§à¦°à§à¦¡ বà§à¦¯à¦¬à¦¹à¦¾à¦° à¦à¦°à§ (<STRONG>Ctrl/Cmd+V</STRONG>) পà§à¦¸à§à¦ à¦à¦°à§à¦¨ à¦à¦¬à¦ <STRONG>OK</STRONG> à¦à¦¾à¦ª দিন","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it aga
in in this window.","title":"পà§à¦¸à§à¦"},"colorbutton":{"auto":"à¦
à¦à§à¦®à§à¦à¦¿à¦","bgColorTitle":"বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"à¦à¦°à¦ রà¦...","panelTitle":"Colo
rs","textColorTitle":"à¦à§à¦à§à¦¸à§à¦ রà¦"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"à¦à§à¦®à¦ªà§à¦²à§à¦","emptyListMsg":"(à¦à§à¦¨ à¦à§à¦®à¦ªà§à¦²à§à¦ ডিফাà¦à¦¨ à¦à¦°à¦¾ নà§à¦)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦¡à¦¿à¦à¦°à§ à¦à¦ªà§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦à§à¦®à¦ªà§à¦²à§à¦ বাà¦à¦¾à¦ à¦à¦°à§à¦¨<br>(à¦à¦¸à¦² à¦à¦¨à¦à§à¦¨à§à¦ হারিà§à§ যাবà§):","title":"à¦à¦¨à¦à§à¦¨à§à¦ à¦à§à¦®à¦ªà§à¦²à§à¦"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","lang
DirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"বà§à¦²à§à¦ লিসà§à¦ লà§à¦¬à§à¦²","numberedlist":"সাà¦à¦à§à¦¯à¦¿à¦ লিসà§à¦à§à¦° লà§à¦¬à§à¦²"},"indent":{"indent":"à¦à¦¨à¦¡à§à¦¨à§à¦ বাà§à¦¾à¦","outdent":"à¦à¦¨à¦¡à§à¦¨à§à¦ à¦à¦®à¦¾à¦"},"find":{"find":"à¦à§à¦à§","findOptions":"Find Options","findWhat":"যা à¦à§à¦à¦à¦¤à§ হবà§:","matc
hCase":"à¦à§à¦¸ মিলাà¦","matchCyclic":"Match cyclic","matchWord":"পà§à¦°à¦¾ শবà§à¦¦ মà§à¦²à¦¾à¦","notFoundMsg":"à¦à¦ªà¦¨à¦¾à¦° à¦à¦²à§à¦²à§à¦à¦¿à¦¤ à¦à§à¦à¦¸à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿","replace":"রিপà§à¦²à§à¦¸","replaceAll":"সব বদলৠদাà¦","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"যার সাথৠবদলাতৠহবà§:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs নà§à¦à§","alignAbsMiddle":"Abs à¦à¦ªà¦°","alignBaseline":"মà§à¦² রà§à¦à¦¾","alignTextTop":"à¦à§à¦à§à¦¸à¦ à¦à¦ªà¦°","bgcolor":"বà§à¦à¦à§à¦°à¦¾à¦à¦¨à§à¦¡ রà¦","chkFull":"Allow Fullscreen","chkLoop":"লà§à¦ª","chkMenu":"ফà§à¦²à§à¦¯à¦¾
শ মà§à¦¨à§ à¦à¦¨à¦¾à¦¬à¦² à¦à¦°","chkPlay":"à¦
à¦à§ পà§à¦²à§","flashvars":"Variables for Flash","hSpace":"হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸","properties":"ফà§à¦²à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"সà§à¦à§à¦²","scaleAll":"সব দà§à¦à¦¾à¦","scaleFit":"নিà¦à§à¦à¦¤ ফিà¦","scaleNoBorder":"à¦à§à¦¨à§ বরà§à¦¡à¦¾à¦° নà§à¦","title":"ফà§à¦²à§à¦¯à¦¾à¦¶ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","vSpace":"à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸","validateHSpace":"HSpace must be a number.","validateSrc":"à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeW
indow":"Window"},"font":{"fontSize":{"label":"সাà¦à¦","voiceLabel":"Font Size","panelTitle":"সাà¦à¦"},"label":"ফনà§à¦","panelTitle":"ফনà§à¦","voiceLabel":"ফনà§à¦"},"forms":{"button":{"title":"বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","text":"à¦à§à¦à§à¦¸à¦ (à¦à§à¦¯à¦¾à¦²à§)","type":"পà§à¦°à¦à¦¾à¦°","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"à¦à§à¦ বà¦à§à¦¸ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","radioTitle":"রà§à¦¡à¦¿à¦ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","value":"à¦à§à¦¯à¦¾à¦²à§","selected":"সিলà§à¦à§à¦à§à¦¡"},"form":{"title":"ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","menu":"ফরà§à¦® পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","action":"à¦à¦à¦¶à§à¦¯à¦¨","method":"পদà§à¦§à¦¤à¦¿","encoding":"Encoding"},"hidden":{"title":"à¦à§à¦ªà§à¦¤ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","name":"নাম","value":"à¦à§à¦¯à¦¾à¦²à§"},"select":{"title":"à
¦¬à¦¾à¦à¦¾à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","selectInfo":"তথà§à¦¯","opAvail":"à¦
নà§à¦¯à¦¾à¦¨à§à¦¯ বিà¦à¦²à§à¦ª","value":"à¦à§à¦¯à¦¾à¦²à§","size":"সাà¦à¦","lines":"লাà¦à¦¨ সমà§à¦¹","chkMulti":"à¦à¦à¦¾à¦§à¦¿à¦ সিলà§à¦à¦¶à¦¨ à¦à¦²à¦¾à¦ à¦à¦°","opText":"à¦à§à¦à§à¦¸à¦","opValue":"à¦à§à¦¯à¦¾à¦²à§","btnAdd":"যà§à¦à§à¦¤","btnModify":"বদলৠদাà¦","btnUp":"à¦à¦ªà¦°","btnDown":"নà§à¦à§","btnSetValue":"বাà¦à¦¾à¦ à¦à¦°à¦¾ à¦à§à¦¯à¦¾à¦²à§ হিসà§à¦¬à§ সà§à¦ à¦à¦°","btnDelete":"ডিলà§à¦"},"textarea":{"title":"à¦à§à¦à§à¦¸à¦ à¦à¦°à¦¿à§à¦¾ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","cols":"à¦à¦²à¦¾à¦®","rows":"রà§"},"textfield":{"title":"à¦à§à¦à§à¦¸à¦ ফà§à¦²à§à¦¡ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","name":"নাম","value":"à¦à§à¦¯à¦¾à¦²à§","charWidth":"à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° পà§à¦°à¦¶à¦¸à§à¦¤à¦¤à¦¾","maxChars":"সরà§à¦¬à¦¾à¦§à¦¿à¦ à¦à§
যারà§à¦à§à¦à¦¾à¦°","type":"à¦à¦¾à¦à¦ª","typeText":"à¦à§à¦à§à¦¸à¦","typePass":"পাসà¦à§à¦¾à¦°à§à¦¡","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ফনà§à¦ ফরমà§à¦","panelTitle":"ফনà§à¦ ফরমà§à¦","tag_address":"ঠিà¦à¦¾à¦¨à¦¾","tag_div":"শà§à¦°à§à¦·à¦ (DIV)","tag_h1":"শà§à¦°à§à¦·à¦ à§§","tag_h2":"শà§à¦°à§à¦·à¦ ২","tag_h3":"শà§à¦°à§à¦·à¦ à§©","tag_h4":"শà§à¦°à§à¦·à¦ ৪","tag_h5":"শà§à¦°à§à¦·à¦ à§«","tag_h6":"শà§à¦°à§à¦·à¦ ৬","tag_p":"সাধারণ","tag_pre":"ফরà§à¦®à§à¦à§à¦¡"},"horizontalrule":{"toolbar":"রà§à¦à¦¾ যà§à¦à§à¦¤ à¦à¦°"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"à¦
নà§à¦à§à¦°à¦¹à¦ à¦à¦°à§ à¦à¦¬à¦¿à¦° URL à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨","alt":"বিà¦à
¦²à§à¦ª à¦à§à¦à§à¦¸à¦","border":"বরà§à¦¡à¦¾à¦°","btnUpload":"à¦à¦¹à¦¾à¦à§ সারà§à¦à¦¾à¦°à§ পà§à¦°à§à¦°à¦¨ à¦à¦°","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"হরাà¦à¦à¦¨à§à¦à¦¾à¦² সà§à¦ªà§à¦¸","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"à¦à¦¬à¦¿à¦° তথà§à¦¯","linkTab":"লিà¦à¦","lockRatio":"à¦
নà§à¦ªà¦¾à¦¤ লঠà¦à¦°","menu":"à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","resetSize":"সাà¦à¦ পà§à¦°à§à¦¬à¦¾à¦¬à¦¸à§à¦¥à¦¾à§ ফিরিà§à§ দাà¦","title":"à¦à¦¬à¦¿à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","titleButton":"à¦à¦¬à¦¿ বাà¦à¦¨ পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","upload":"à¦à¦ªà¦²à§à¦¡","urlMissing":"Image source URL is missing.","vSpace":"à¦à¦¾à¦°à§à¦à¦¿à¦à§à¦² সà§à¦ªà§à¦¸","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpa
ce must be a whole number."},"smiley":{"options":"Smiley Options","title":"সà§à¦®à¦¾à¦à¦²à§ যà§à¦à§à¦¤ à¦à¦°","toolbar":"সà§à¦®à¦¾à¦à¦²à§"},"justify":{"block":"বà§à¦²à¦ à¦à¦¾à¦¸à§à¦à¦¿à¦«à¦¾à¦","center":"মাঠবরাবর à¦à§à¦·à¦¾","left":"বা দিà¦à§ à¦à§à¦à¦·à¦¾","right":"ডান দিà¦à§ à¦à§à¦à¦·à¦¾"},"link":{"acccessKey":"à¦à¦à§à¦¸à§à¦¸ à¦à§","advanced":"à¦à¦¡à¦à¦¾à¦¨à§à¦¸à¦¡","advisoryContentType":"পরামরà§à¦¶ à¦à¦¨à§à¦à§à¦¨à§à¦à§à¦° পà§à¦°à¦à¦¾à¦°","advisoryTitle":"পরামরà§à¦¶ শà§à¦°à§à¦·à¦","anchor":{"toolbar":"নà§à¦à§à¦à¦°","menu":"নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","title":"নà§à¦à¦° পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","name":"নà§à¦à¦°à§à¦° নাম","errorName":"নà§à¦à¦°à§à¦° নাম à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨","remove":"Remove Anchor"},"anchorId":"নà§à¦à¦°à§à¦° à¦à¦à¦¡à¦¿ দিà§à§","anchorName":"নà§à¦à¦°à§à¦° নাম à¦
¦à¦¿à§à§","charset":"লিà¦à¦ রিসà§à¦°à§à¦¸ à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦° সà§à¦","cssClasses":"সà§à¦à¦¾à¦à¦²-শà§à¦ à¦à§à¦²à¦¾à¦¸","emailAddress":"à¦à¦®à§à¦à¦² ঠিà¦à¦¾à¦¨à¦¾","emailBody":"মà§à¦¸à§à¦à§à¦° দà§à¦¹","emailSubject":"মà§à¦¸à§à¦à§à¦° বিষà§","id":"à¦à¦à¦¡à¦¿","info":"লিà¦à¦ তথà§à¦¯","langCode":"à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦","langDir":"à¦à¦¾à¦·à¦¾ লà§à¦à¦¾à¦° দিà¦","langDirLTR":"বাম থà§à¦à§ ডান (LTR)","langDirRTL":"ডান থà§à¦à§ বাম (RTL)","menu":"লিà¦à¦ সমà§à¦ªà¦¾à¦¦à¦¨","name":"নাম","noAnchors":"(No anchors available in the document)","noEmail":"à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦®à§à¦à¦² à¦à¦¡à§à¦°à§à¦¸ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨","noUrl":"à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ URL লিà¦à¦ à¦à¦¾à¦à¦ª à¦à¦°à§à¦¨","other":"<other>","popupDependent":"ডিপà§à¦¨à§à¦¡à§à¦¨à§à¦ (Netscape)","popupFeatures":"পপà¦
প à¦à¦à¦¨à§à¦¡à§ ফà§à¦à¦¾à¦° সমà§à¦¹","popupFullScreen":"পà§à¦°à§à¦£ পরà§à¦¦à¦¾ à¦à§à§à§ (IE)","popupLeft":"বামà§à¦° পà¦à¦¿à¦¶à¦¨","popupLocationBar":"লà§à¦à§à¦¶à¦¨ বার","popupMenuBar":"মà§à¦¨à§à¦¯à§ বার","popupResizable":"Resizable","popupScrollBars":"সà§à¦à§à¦°à¦² বার","popupStatusBar":"সà§à¦à§à¦¯à¦¾à¦à¦¾à¦¸ বার","popupToolbar":"à¦à§à¦² বার","popupTop":"ডানà§à¦° পà¦à¦¿à¦¶à¦¨","rel":"Relationship","selectAnchor":"নà§à¦à¦° বাà¦à¦¾à¦","styles":"সà§à¦à¦¾à¦à¦²","tabIndex":"à¦à§à¦¯à¦¾à¦¬ à¦à¦¨à§à¦¡à§à¦à§à¦¸","target":"à¦à¦¾à¦°à§à¦à§à¦","targetFrame":"<ফà§à¦°à§à¦®>","targetFrameName":"à¦à¦¾à¦°à§à¦à§à¦ ফà§à¦°à§à¦®à§à¦° নাম","targetPopup":"<পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§>","targetPopupName":"পপà¦à¦ª à¦à¦à¦¨à§à¦¡à§à¦° নাম","title":"লিà¦à¦","toAnchor":"à¦à¦ পà§à¦à§ নà§à¦à¦° à¦à¦°","toEmail":"à¦à¦®à§à¦
ল","toUrl":"URL","toolbar":"লিà¦à¦ যà§à¦à§à¦¤ à¦à¦°","type":"লিà¦à¦ পà§à¦°à¦à¦¾à¦°","unlink":"লিà¦à¦ সরাà¦","upload":"à¦à¦ªà¦²à§à¦¡"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"M
inimize"},"newpage":{"toolbar":"নতà§à¦¨ পà§à¦"},"pagebreak":{"alt":"Page Break","toolbar":"পà§à¦ বà§à¦°à§à¦"},"pastetext":{"button":"সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°","title":"সাদা à¦à§à¦à§à¦¸à¦ হিসà§à¦¬à§ পà§à¦¸à§à¦ à¦à¦°"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"পà§à¦¸à§à¦ (শবà§à¦¦)","toolbar":"পà§à¦¸à§à¦ (শবà§à¦¦)"},"preview":{"preview":"পà§à¦°à¦¿à¦à¦¿à¦"},"print":{"toolbar":"পà§à¦°à¦¿à¦¨à§à¦"},"removeformat":{"toolbar":"ফরমà§à¦ সরাà¦"},"save":{"toolbar":"সà¦à¦°à¦à§à¦·à¦¨ à¦à¦°"},"selectall":{"toolbar":"সব সিলà§à¦à§à¦ à¦à¦°"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"সà§à¦°à§à¦¸"},"specialchar":{"options":"Special C
haracter Options","title":"বিশà§à¦· à¦à§à¦¯à¦¾à¦°à§à¦à§à¦à¦¾à¦° বাà¦à¦¾à¦ à¦à¦°","toolbar":"বিশà§à¦· à¦
à¦à§à¦·à¦° যà§à¦à§à¦¤ à¦à¦°"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignor
e All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"সà§à¦à¦¾à¦à¦²","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"বরà§à¦¡à¦¾à¦° সাà¦à¦","caption":"শà§à¦°à§à¦·à¦","cell":{"menu":"সà§à¦²","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"সà§à¦² মà§à¦à§ দাà¦","merge":"সà§à¦² à¦à§à§à¦¾ দাà¦","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Proper
ties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"সà§à¦² পà§à¦¯à¦¾à¦¡à¦¿à¦","cellSpace":"সà§à¦² সà§à¦ªà§à¦¸","column":{"menu":"à¦à¦²à¦¾à¦®","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"à¦à¦²à¦¾à¦® মà§à¦à§ দাà¦"},"columns":"à¦à¦²à¦¾à¦®","deleteTable":"à¦à§à¦¬à¦¿à¦² ডিলà§à¦ à¦à¦°","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Bor
der size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","row":{"menu":"রà§","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"রৠমà§à¦à§ দাà¦"},"rows":"রà§","summary":"সারাà¦à¦¶","title":"à¦à§à¦¬à¦¿à¦² পà§à¦°à§à¦ªà¦¾à¦°à§à¦à¦¿","toolbar":"à¦à§à¦¬à¦¿à¦²à§à¦° লà§à¦¬à§à¦² যà§à¦à§à¦¤ à¦à¦°","widthPc":"শতà¦à¦°à¦¾","widthPx":"পিà¦à§à¦¸à§à¦²","widthUnit":"width unit"},"undo":{"redo":"রি-ডà§","undo":"à¦à¦¨à¦¡à§"},"wsc":{"btnIgnore":"à¦à¦à¦¨à§à¦° à¦à¦°","btnIgnoreAll":"সব à¦à¦à¦¨à§à¦° à¦à¦°","btnRe
place":"বদলৠদাà¦","btnReplaceAll":"সব বদলৠদাà¦","btnUndo":"à¦à¦¨à§à¦¡à§","changeTo":"à¦à¦¤à§ বদলাà¦","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"বানান পরà§à¦à§à¦·à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ নà§à¦à¥¤ à¦à¦ªà¦¨à¦¿ à¦à¦¿ à¦à¦à¦¨à¦ à¦à¦à¦¾ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¤à§ à¦à¦¾à¦¨?","manyChanges":"বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: %1 à¦à§à¦²à§ শবà§à¦¦ বদলৠà¦à§à¦¯à¦¾à¦à§","noChanges":"বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à¦¨à¦¿","noMispell":"বানান পরà§à¦à§à¦·à¦¾ শà§à¦·: à¦à§à¦¨ à¦à§à¦² বানান পাà¦à§à¦¾ যাà§à¦¨à¦¿","noSuggestions":"- à¦à§à¦¨ সাà¦à§à¦¶à¦¨ নà§à¦ -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"শবà§à¦¦à¦à§à¦·à§ নà§à¦","oneChange":"বানান পরà
§à¦à§à¦·à¦¾ শà§à¦·: à¦à¦à¦à¦¿ মাতà§à¦° শবà§à¦¦ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ হà§à§à¦à§","progress":"বানান পরà§à¦à§à¦·à¦¾ à¦à¦²à¦à§...","title":"Spell Check","toolbar":"বানান à¦à§à¦"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/bs.js b/share/static/RichText/lang/bs.js
index 8034259..f1886de 100644
--- a/share/static/RichText/lang/bs.js
+++ b/share/static/RichText/lang/bs.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.bs={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'HTML kôd',newPage:'Novi dokument',save:'Snimi',preview:'Prikaži',cut:'Izreži',copy:'Kopiraj',paste:'Zalijepi',print:'Štampaj',underline:'Podvuci',bold:'Boldiraj',italic:'Ukosi',selectAll:'Selektuj sve',removeFormat:'Poništi format',strike:'Precrtaj',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Ubaci horizontalnu liniju',pagebreak:'Insert Page Break for Printing',unlink:'Izbriši link',undo:'Vrati',redo:'Ponovi',common:{browseServer:'Browse Server',url:'URL',protocol:'Protokol',upload:'Šalji',uploadSubmit:'Šalji na server',image:'Slika',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<nije podešeno>',id:'Id',name:'Naziv',langDir:'Smjer pisanja',langDir
Ltr:'S lijeva na desno (LTR)',langDirRtl:'S desna na lijevo (RTL)',langCode:'Jezièni kôd',longDescr:'Dugaèki opis URL-a',cssClass:'Klase CSS stilova',advisoryTitle:'Advisory title',cssStyle:'Stil',ok:'OK',cancel:'Odustani',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Naprednije',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Ubaci specijalni
karater',title:'Izaberi specijalni karakter',options:'Special Character Options'},link:{toolbar:'Ubaci/Izmjeni link',other:'<other>',menu:'Izmjeni link',title:'Link',info:'Link info',target:'Prozor',upload:'Šalji',advanced:'Naprednije',type:'Tip linka',toUrl:'URL',toAnchor:'Sidro na ovoj stranici',toEmail:'E-Mail',targetFrame:'<frejm>',targetPopup:'<popup prozor>',targetFrameName:'Target Frame Name',targetPopupName:'Naziv popup prozora',popupFeatures:'Moguænosti popup prozora',popupResizable:'Resizable',popupStatusBar:'Statusna traka',popupLocationBar:'Traka za lokaciju',popupToolbar:'Traka sa alatima',popupMenuBar:'Izborna traka',popupFullScreen:'Cijeli ekran (IE)',popupScrollBars:'Scroll traka',popupDependent:'Ovisno (Netscape)',popupWidth:'Širina',popupLeft:'Lijeva pozicija',popupHeight:'Visina',popupTop:'Gornja pozicija',id:'Id',langDir:'Smjer pisanja',langDirLTR:'S lijeva na desno (LTR)',langDirRTL:'S desna na lijevo (RTL)',acccessKey:'Pristupna tipka',name:'Naziv',
langCode:'Smjer pisanja',tabIndex:'Tab indeks',advisoryTitle:'Advisory title',advisoryContentType:'Advisory vrsta sadržaja',cssClasses:'Klase CSS stilova',charset:'Linked Resource Charset',styles:'Stil',selectAnchor:'Izaberi sidro',anchorName:'Po nazivu sidra',anchorId:'Po Id-u elementa',emailAddress:'E-Mail Adresa',emailSubject:'Subjekt poruke',emailBody:'Poruka',noAnchors:'(Nema dostupnih sidra na stranici)',noUrl:'Molimo ukucajte URL link',noEmail:'Molimo ukucajte e-mail adresu'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii,
iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Naði',replace:'Zamjeni',findWhat:'Naði šta:',replaceWith:'Zamjeni sa:',notFoundMsg:'Traženi tekst nije pronaðen.',matchCase:'Uporeðuj velika/mala slova',matchWord:'Uporeðuj samo cijelu rijeè',matchCyclic:'Match cyclic',replaceAll:'Zamjeni sve',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabela',title:'Svojstva tabele',menu:'Svojstva tabele',deleteTable:'Delete Table',rows:'Redova',columns:'Kolona',border:'Okvir',align:'Poravnanje',alignLeft:'Lijevo',alignCenter:'Centar',alignRight:'Desno',width:'Širina',widthPx:'piksela',widthPc:'posto',widthUnit:'width unit',height:'Visina',cellSpace:'Razmak æeli
ja',cellPad:'Uvod æelija',caption:'Naslov',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Briši æelije',merge:'Spoji æelije',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignM
iddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Briši redove'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Briši kolone'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field P
roperties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allow multiple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Svojstva slike',titleButton:'Image Button Properties',menu:'Svojstva slike',infoTab:'Info slike',btnUpload:'Šalji na server',upload:'Šalji',alt:'Tekst na slici',width:'Širina',height:'Visina',lockRatio:'Zakljuèaj odnos',unlockRatio:'Unlock Ratio',resetSize:'Resetuj dimenzije',border:'Okvir',hSpace:'HSpace',vSpace:'VSpace',align:'Poravnanje',alignLeft:'Lijevo',alignRight:'Desno
',alertUrl:'Molimo ukucajte URL od slike.',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Poravnanje',alignLeft:'Lijevo',alignAbsBottom:'Abs dole',alignAbsMiddle:'Abs sredina',alignBaseline:'Bazno',alignBottom:'Dno',al
ignMiddle:'Sredina',alignRight:'Desno',alignTextTop:'Vrh teksta',alignTop:'Vrh',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Boja pozadine',width:'Å irina',height:'Visina',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'Molimo ukucajte URL link',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUnd
o:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings found',noChanges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smješko',title:'Ubaci smješka',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Numerisana lista',bulletedlist:'Lista',indent:'Poveæaj uvod',outdent:'Smanji uvod',justify:{left:'Lijevo poravnanje',center:'Centralno poravnanje',right:'Desno poravnanje',block:'Puno poravnanje'},blockquote:'Block Quote',clipboard:{title:'Zalijepi',cutError:'Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).',copyError:'Sigurnosne postavke Vašeg pretraživaèa ne dozvo
ljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).',pasteMsg:'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Zalijepi iz Word-a',title:'Zalijepi iz Word-a',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Zalijepi kao obièan tekst',title:'Zalijepi kao obièan tekst'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'S
how Blocks',stylesCombo:{label:'Stil',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font'},fontSize:{label:'Velièina',voiceLabel:'Font Size',panelTitle:'Velièina'},colorButton:{textColorTitle:'Boja teksta',bgColorTitle
:'Boja pozadine',panelTitle:'Colors',auto:'Automatska',more:'Više boja...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options
',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'Ab
out CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['bs']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Šalji","uploadSubmit":"Šalji na server","image":"Slika","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije podešeno>","id":"Id","name":"Naziv","langDir":"Smjer pisanja","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Jezièni kôd","longDescr":"Dugaèki opis URL-a","cssClass":"Klase CSS stilova","advisoryTitle":"Advisory title","cssStyle":"Stil","ok":"OK","cancel":"Odustani","close":"Close","preview":"Prikaži","resize":"Resize","generalTab":"General","advancedTab":"Naprednije","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved change
s to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Prozor","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase CSS stilova","width":"Å irina","height":"Visina","align":"Poravnanje","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"Centar","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dno","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \
"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Boldiraj","italic":"Ukosi","strike":"Precrtaj","subscript":"Subscript","superscript":"Superscript","underline":"Podvuci"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboa
rd":{"copy":"Kopiraj","copyError":"Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl/Cmd+X).","paste":"Zalijepi","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Zalijepi"},"colorbutton":{"auto":"Automatska","bgColorTitle":"Boja pozadine","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","
006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Više boja...","panelTitle":"Colors","textColorTitle":"Boja teksta"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","tit
le":"Content Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Lista","numberedlist":"Nume
risana lista"},"indent":{"indent":"Poveæaj uvod","outdent":"Smanji uvod"},"find":{"find":"Naði","findOptions":"Find Options","findWhat":"Naði šta:","matchCase":"Uporeðuj velika/mala slova","matchCyclic":"Match cyclic","matchWord":"Uporeðuj samo cijelu rijeè","notFoundMsg":"Traženi tekst nije pronaðen.","replace":"Zamjeni","replaceAll":"Zamjeni sve","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Zamjeni sa:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs dole","alignAbsMiddle":"Abs sredina","alignBaseline":"Bazno","alignTextTop":"Vrh teksta","bgcolor":"Boja pozadine","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables for Flash","hSpace"
:"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"Molimo ukucajte URL link","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Velièina","voiceLabel":"Font Size","panelTitle":"Velièina"},"label":"Font","panelTitle":"Font","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"Radio Butt
on Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle"
:"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Ubaci horizontalnu liniju"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Molimo ukucajte URL od slike.","alt":"Tekst na slici","border":"Okvir","btnUpload":"Šalji na server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Info slike","linkTab":"Link","lockRatio":"Zakljuèaj odnos","menu":"Svojstva slike","resetSize":"Resetuj dimenzije","title":"Svojstva slike","titleButton":"Image Button Properties","upload":"Šalji","urlMissing":"Image source URL is mis
sing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Ubaci smješka","toolbar":"Smješko"},"justify":{"block":"Puno poravnanje","center":"Centralno poravnanje","left":"Lijevo poravnanje","right":"Desno poravnanje"},"link":{"acccessKey":"Pristupna tipka","advanced":"Naprednije","advisoryContentType":"Advisory vrsta sadržaja","advisoryTitle":"Advisory title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"Po Id-u elementa","anchorName":"Po nazivu sidra","charset":"Linked Resource Charset","cssClasses":"Klase CSS stilova","emailAddress":"E-Mail Adresa","emailBody":"Poruka","emailSubject":"Subjekt poruke","id":"Id","info":"Link info","langCode":"Smjer pisanja","langDir":"Smjer pisanj
a","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","menu":"Izmjeni link","name":"Naziv","noAnchors":"(Nema dostupnih sidra na stranici)","noEmail":"Molimo ukucajte e-mail adresu","noUrl":"Molimo ukucajte URL link","other":"<other>","popupDependent":"Ovisno (Netscape)","popupFeatures":"Moguænosti popup prozora","popupFullScreen":"Cijeli ekran (IE)","popupLeft":"Lijeva pozicija","popupLocationBar":"Traka za lokaciju","popupMenuBar":"Izborna traka","popupResizable":"Resizable","popupScrollBars":"Scroll traka","popupStatusBar":"Statusna traka","popupToolbar":"Traka sa alatima","popupTop":"Gornja pozicija","rel":"Relationship","selectAnchor":"Izaberi sidro","styles":"Stil","tabIndex":"Tab indeks","target":"Prozor","targetFrame":"<frejm>","targetFrameName":"Target Frame Name","targetPopup":"<popup prozor>","targetPopupName":"Naziv popup prozora","title":"Link","toAnchor":"Sidro na ovoj stranici","toEmail":"E-Mail","toUrl":"URL","toolbar":"Ubaci/Izmje
ni link","type":"Tip linka","unlink":"Izbriši link","upload":"Šalji"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Novi dokument"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Pag
e Break for Printing"},"pastetext":{"button":"Zalijepi kao obièan tekst","title":"Zalijepi kao obièan tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalijepi iz Word-a","toolbar":"Zalijepi iz Word-a"},"preview":{"preview":"Prikaži"},"print":{"toolbar":"Štampaj"},"removeformat":{"toolbar":"Poništi format"},"save":{"toolbar":"Snimi"},"selectall":{"toolbar":"Selektuj sve"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"HTML kôd"},"specialchar":{"options":"Special Character Options","title":"Izaberi specijalni karakter","toolbar":"Ubaci specijalni karater"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dicti
onary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggest
ion"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Okvir","caption":"Naslov","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Briši æelije","merge":"Spoji æelije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must
be a whole number.","chooseColor":"Choose"},"cellPad":"Uvod æelija","cellSpace":"Razmak æelija","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Briši kolone"},"columns":"Kolona","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Svojstva tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Briši redove"},"rows":"Redova","summary":"Summary","title":"Svojs
tva tabele","toolbar":"Tabela","widthPc":"posto","widthPx":"piksela","widthUnit":"width unit"},"undo":{"redo":"Ponovi","undo":"Vrati"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ca.js b/share/static/RichText/lang/ca.js
index fe782c7..ccbe985 100644
--- a/share/static/RichText/lang/ca.js
+++ b/share/static/RichText/lang/ca.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ca={dir:'ltr',editorTitle:'Editor de text enriquit, %1, prem ALT 0 per obtenir ajuda.',toolbar:"Barra d'eines",editor:'Editor de text enriquit',source:'Codi font',newPage:'Nova pà gina',save:'Desa',preview:'Visualització prèvia',cut:'Retalla',copy:'Copia',paste:'Enganxa',print:'Imprimeix',underline:'Subratllat',bold:'Negreta',italic:'Cursiva',selectAll:'Selecciona-ho tot',removeFormat:'Elimina Format',strike:'Barrat',subscript:'SubÃndex',superscript:'SuperÃndex',horizontalrule:'Insereix lÃnia horitzontal',pagebreak:'Insereix salt de pà gina',unlink:"Elimina l'enllaç",undo:'Desfés',redo:'Refés',common:{browseServer:'Veure servidor',url:'URL',protocol:'Protocol',upload:'Puja',uploadSubmit:'Envia-la al servidor',image:'Imatge',flash:'Flash',form:'Formulari',checkbox:'Casella de verificació',radio:"Botó d'opció",textField:'Camp de text',textarea:'Ãrea de text',hiddenField:'Camp ocult',button:'Botó',select:'Camp de selecció',imageButton:"Botó d'imatge
",notSet:'<no definit>',id:'Id',name:'Nom',langDir:"Direcció de l'idioma",langDirLtr:"D'esquerra a dreta (LTR)",langDirRtl:'De dreta a esquerra (RTL)',langCode:"Codi d'idioma",longDescr:'Descripció llarga de la URL',cssClass:"Classes del full d'estil",advisoryTitle:'TÃtol consultiu',cssStyle:'Estil',ok:"D'acord",cancel:'Cancel·la',close:'Tanca',preview:'Previsualitza',generalTab:'General',advancedTab:'Avançat',validateNumberFailed:'Aquest valor no és un número.',confirmNewPage:'Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pà gina nova?',confirmCancel:"Algunes opcions s'han canviat. Esteu segur que voleu tancar la finestra de dià leg?",options:'Opcions',target:'DestÃ',targetNew:'Nova finestra (_blank)',targetTop:'Finestra major (_top)',targetSelf:'Mateixa finestra (_self)',targetParent:'Finestra pare (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classe
s',unavailable:'%1<span class="cke_accessibility">, no disponible</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insereix carà cter especial',title:'Selecciona el carà cter especial',options:'Special Character Options'},link:{toolbar:'Insereix/Edita enllaç',other:'<altre>',menu:"Edita l'enllaç",title:'Enllaç',info:"Informació de l'enllaç",target:'DestÃ',upload:'Puja',advanced:'Avançat',type:"Tipus d'enllaç",toUrl:'URL',toAnchor:'Ãncora en aquesta pà gina',toEmail:'Correu electrònic',targetFrame:'<marc>',targetPopup:'<finestra emergent>',targetFrameName:'Nom del marc de destÃ',targetPopupName:'Nom finestra popup',popupFeatures:'CaracterÃstiques finestra popup',popupResizable:'Redimensionable',popupStatusBar:"Barra d'estat",popupLocationBar:"Barra d'adreça",popupToolbar:"Barra d'eines",popupMenuBar:'Barra de menú',popupFullScreen:'Pantalla completa (IE)',popupScrollBars:"Barres d'scroll",popupDependent:'Depenent (Netscape)',popupWidth
:'Amplada',popupLeft:'Posició esquerra',popupHeight:'Alçada',popupTop:'Posició dalt',id:'Id',langDir:"Direcció de l'idioma",langDirLTR:"D'esquerra a dreta (LTR)",langDirRTL:'De dreta a esquerra (RTL)',acccessKey:"Clau d'accés",name:'Nom',langCode:"Direcció de l'idioma",tabIndex:'Index de Tab',advisoryTitle:'TÃtol consultiu',advisoryContentType:'Tipus de contingut consultiu',cssClasses:"Classes del full d'estil",charset:'Conjunt de carà cters font enllaçat',styles:'Estil',selectAnchor:'Selecciona una à ncora',anchorName:"Per nom d'à ncora",anchorId:"Per Id d'element",emailAddress:'Adreça de correu electrònic',emailSubject:'Assumpte del missatge',emailBody:'Cos del missatge',noAnchors:'(No hi ha à ncores disponibles en aquest document)',noUrl:"Si us plau, escrigui l'enllaç URL",noEmail:"Si us plau, escrigui l'adreça correu electrònic"},anchor:{toolbar:'Insereix/Edita à ncora',menu:"Propietats de l'à ncora",title:"Propietats de l'à ncora",name:"Nom de l'à ncora",er
rorName:"Si us plau, escriviu el nom de l'ancora"},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Cerca i reemplaça',find:'Cerca',replace:'Reemplaça',findWhat:'Cerca:',replaceWith:'Remplaça amb:',notFoundMsg:"El text especificat no s'ha trobat.",matchCase:'Distingeix majúscules/minúscules',matchWord:'Només paraules completes',m
atchCyclic:'Match cyclic',replaceAll:'Reemplaça-ho tot',replaceSuccessMsg:'%1 ocurrència/es reemplaçada/es.'},table:{toolbar:'Taula',title:'Propietats de la taula',menu:'Propietats de la taula',deleteTable:'Suprimeix la taula',rows:'Files',columns:'Columnes',border:'Mida vora',align:'Alineació',alignLeft:'Esquerra',alignCenter:'Centre',alignRight:'Dreta',width:'Amplada',widthPx:'pÃxels',widthPc:'percentatge',widthUnit:"unitat d'amplada",height:'Alçada',cellSpace:'Espaiat de cel·les',cellPad:'Encoixinament de cel·les',caption:'TÃtol',summary:'Resum',headers:'Capçaleres',headersNone:'Cap',headersColumn:'Primera columna',headersRow:'Primera fila',headersBoth:'Ambdues',invalidRows:'El nombre de files ha de ser un nombre major que 0.',invalidCols:'El nombre de columnes ha de ser un nombre major que 0.',invalidBorder:'El gruix de la vora ha de ser un nombre.',invalidWidth:"L'amplada de la taula ha de ser un nombre.",invalidHeight:"L'alçada de la taula ha de ser un nom
bre.",invalidCellSpacing:"L'espaiat de cel·la ha de ser un nombre.",invalidCellPadding:"L'encoixinament de cel·la ha de ser un nombre.",cell:{menu:'Cel·la',insertBefore:'Insereix cel·la abans de',insertAfter:'Insereix cel·la darrera',deleteCell:'Suprimeix les cel·les',merge:'Fusiona les cel·les',mergeRight:'Fusiona cap a la dreta',mergeDown:'Fusiona cap avall',splitHorizontal:'Divideix la cel·la horitzontalment',splitVertical:'Divideix la cel·la verticalment',title:'Propertiat de la cel·la',cellType:'Tipus de cel·la',rowSpan:'Expansió de files',colSpan:'Expansió de columnes',wordWrap:'Ajustar al contingut',hAlign:'Aliniació Horizontal',vAlign:'Aliniació Vertical',alignTop:'A dalt',alignMiddle:'Al mig',alignBottom:'A baix',alignBaseline:'A la lÃnia base',bgColor:'Color de fons',borderColor:'Color de la vora',data:'Data',header:'Capçalera',yes:'SÃ',no:'No',invalidWidth:"L'amplada de cel·la ha de ser un nombre.",invalidHeight:"L'alçada de cel·la ha de ser
un nombre.",invalidRowSpan:"L'expansió de files ha de ser un nombre enter.",invalidColSpan:"L'expansió de columnes ha de ser un nombre enter.",chooseColor:'Trieu'},row:{menu:'Fila',insertBefore:'Insereix fila abans de',insertAfter:'Insereix fila darrera',deleteRow:'Suprimeix una fila'},column:{menu:'Columna',insertBefore:'Insereix columna abans de',insertAfter:'Insereix columna darrera',deleteColumn:'Suprimeix una columna'}},button:{title:'Propietats del botó',text:'Text (Valor)',type:'Tipus',typeBtn:'Botó',typeSbm:'Transmet formulari',typeRst:'Reinicia formulari'},checkboxAndRadio:{checkboxTitle:'Propietats de la casella de verificació',radioTitle:"Propietats del botó d'opció",value:'Valor',selected:'Seleccionat'},form:{title:'Propietats del formulari',menu:'Propietats del formulari',action:'Acció',method:'Mètode',encoding:'Codificació'},select:{title:'Propietats del camp de selecció',selectInfo:'Info',opAvail:'Opcions disponibles',value:'Valor',size:'Mida',line
s:'LÃnies',chkMulti:'Permet múltiples seleccions',opText:'Text',opValue:'Valor',btnAdd:'Afegeix',btnModify:'Modifica',btnUp:'Amunt',btnDown:'Avall',btnSetValue:'Selecciona per defecte',btnDelete:'Elimina'},textarea:{title:"Propietats de l'à rea de text",cols:'Columnes',rows:'Files'},textfield:{title:'Propietats del camp de text',name:'Nom',value:'Valor',charWidth:'Amplada',maxChars:'Nombre mà xim de carà cters',type:'Tipus',typeText:'Text',typePass:'Contrasenya'},hidden:{title:'Propietats del camp ocult',name:'Nom',value:'Valor'},image:{title:'Propietats de la imatge',titleButton:"Propietats del botó d'imatge",menu:'Propietats de la imatge',infoTab:'Informació de la imatge',btnUpload:'Envia-la al servidor',upload:'Puja',alt:'Text alternatiu',width:'Amplada',height:'Alçada',lockRatio:'Bloqueja les proporcions',unlockRatio:'Desbloqueja el rà tio',resetSize:'Restaura la mida',border:'Vora',hSpace:'Espaiat horit.',vSpace:'Espaiat vert.',align:'Alineació',alignLeft:"Ajusta
a l'esquerra",alignRight:'Ajusta a la dreta',alertUrl:'Si us plau, escriviu la URL de la imatge',linkTab:'Enllaç',button2Img:"Voleu transformar el botó d'imatge seleccionat en una simple imatge?",img2Button:"Voleu transformar la imatge seleccionada en un botó d'imatge?",urlMissing:'Falta la URL de la imatge.',validateWidth:"L'amplada ha de ser un nombre enter.",validateHeight:"L'alçada ha de ser un nombre enter.",validateBorder:'La vora ha de ser un nombre enter.',validateHSpace:'HSpace ha de ser un nombre enter.',validateVSpace:'VSpace ha de ser un nombre enter.'},flash:{properties:'Propietats del Flash',propertiesTab:'Propietats',title:'Propietats del Flash',chkPlay:'Reprodució automà tica',chkLoop:'Bucle',chkMenu:'Habilita menú Flash',chkFull:'Permetre la pantalla completa',scale:'Escala',scaleAll:'Mostra-ho tot',scaleNoBorder:'Sense vores',scaleFit:'Mida exacta',access:'Accés a scripts',accessAlways:'Sempre',accessSameDomain:'El mateix domini',accessNever:'Mai',al
ign:'Alineació',alignLeft:"Ajusta a l'esquerra",alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignBottom:'Bottom',alignMiddle:'Middle',alignRight:'Ajusta a la dreta',alignTextTop:'Text Top',alignTop:'Top',quality:'Qualitat',qualityBest:'La millor',qualityHigh:'Alta',qualityAutoHigh:'Alta automà tica',qualityMedium:'Mitjana',qualityAutoLow:'Baixa automà tica',qualityLow:'Baixa',windowModeWindow:'Finestra',windowModeOpaque:'Opaca',windowModeTransparent:'Transparent',windowMode:'Mode de la finestra',flashvars:'Variables de Flash',bgcolor:'Color de Fons',width:'Amplada',height:'Alçada',hSpace:'Espaiat horit.',vSpace:'Espaiat vert.',validateSrc:"Si us plau, escrigui l'enllaç URL",validateWidth:"L'amplada ha de ser un nombre.",validateHeight:"L'alçada ha de ser un nombre.",validateHSpace:"L'espaiat horitzonatal ha de ser un nombre.",validateVSpace:"L'espaiat vertical ha de ser un nombre."},spellCheck:{toolbar:"Revisa l'ortografia",title:"Com
prova l'ortografia",notAvailable:'El servei no es troba disponible ara.',errorLoading:'Error carregant el servidor: %s.',notInDic:'No és al diccionari',changeTo:'Reemplaça amb',btnIgnore:'Ignora',btnIgnoreAll:'Ignora-les totes',btnReplace:'Canvia',btnReplaceAll:'Canvia-les totes',btnUndo:'Desfés',noSuggestions:'Cap suggeriment',progress:'Verificació ortogrà fica en curs...',noMispell:'Verificació ortogrà fica acabada: no hi ha cap paraula mal escrita',noChanges:"Verificació ortogrà fica: no s'ha canviat cap paraula",oneChange:"Verificació ortogrà fica: s'ha canviat una paraula",manyChanges:"Verificació ortogrà fica: s'han canviat %1 paraules",ieSpellDownload:'Verificació ortogrà fica no instal·lada. Voleu descarregar-ho ara?'},smiley:{toolbar:'Icona',title:'Insereix una icona',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Llista numerada',bulletedlist:'Llista de pics',indent:'Augmenta el sagnat',outdent:'Redue
ix el sagnat',justify:{left:"Alinia a l'esquerra",center:'Centrat',right:'Alinia a la dreta',block:'Justificat'},blockquote:'Bloc de cita',clipboard:{title:'Enganxa',cutError:'La seguretat del vostre navegador no permet executar automà ticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).',copyError:'La seguretat del vostre navegador no permet executar automà ticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).',pasteMsg:'Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.',securityMsg:"A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.",pasteArea:"Ãrea d'enganxat"},pastefromword:{confirmCleanup:'El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?',toolbar:'Enganxa des del Word',title:'Enganxa des
del Word',error:'No ha estat possible netejar les dades enganxades degut a un error intern'},pasteText:{button:'Enganxa com a text no formatat',title:'Enganxa com a text no formatat'},templates:{button:'Plantilles',title:'Contingut plantilles',options:'Template Options',insertOption:'Reemplaça el contingut actual',selectPromptMsg:"Si us plau, seleccioneu la plantilla per obrir a l'editor<br>(el contingut actual no serà enregistrat):",emptyListMsg:'(No hi ha plantilles definides)'},showBlocks:'Mostra els blocs',stylesCombo:{label:'Estil',panelTitle:'Estils de format',panelTitle1:'Estils de bloc',panelTitle2:'Estils incrustats',panelTitle3:"Estils d'objecte"},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatejat',tag_address:'Adreça',tag_h1:'Encapçalament 1',tag_h2:'Encapçalament 2',tag_h3:'Encapçalament 3',tag_h4:'Encapçalament 4',tag_h5:'Encapçalament 5',tag_h6:'Encapçalament 6',tag_div:'Normal (DIV)'},div:{title:'Crea un contenidor Div',too
lbar:'Crea un contenidor Div',cssClassInputLabel:"Classes de la fulla d'estils",styleSelectLabel:'Estil',IdInputLabel:'Id',languageCodeInputLabel:" Codi d'idioma",inlineStyleInputLabel:'Estil en lÃnia',advisoryTitleInputLabel:'TÃtol de guia',langDirLabel:"Direcció de l'idioma",langDirLTRLabel:"D'esquerra a dreta (LTR)",langDirRTLLabel:'De dreta a esquerra (RTL)',edit:'Edita Div',remove:'Elimina Div'},font:{label:'Tipus de lletra',voiceLabel:'Tipus de lletra',panelTitle:'Tipus de lletra'},fontSize:{label:'Mida',voiceLabel:'Mida de la lletra',panelTitle:'Mida'},colorButton:{textColorTitle:'Color de Text',bgColorTitle:'Color de Fons',panelTitle:'Colors',auto:'Automà tic',more:'Més colors...'},colors:{'000':'Negre',800000:'Granat','8B4513':'Marró sella','2F4F4F':'Gris pissarra fosca','008080':'Blau xarxet','000080':'Blau marÃ','4B0082':'Indi',696969:'Gris intens',B22222:'Maó',A52A2A:'Marró (web)',DAA520:'Solidago','006400':'Verd fosc','40E0D0':'Turquesa','0000CD':'Atzur'
,800080:'Lila',808080:'Gris',F00:'Vermell',FF8C00:'Taronja fosc',FFD700:'Or','008000':'Verd','0FF':'Cian','00F':'Blau',EE82EE:'Lavanda rosat',A9A9A9:'Gris clar',FFA07A:'Salmó clar',FFA500:'Taronja',FFFF00:'Groc','00FF00':'Verd llima',AFEEEE:'Blau pà lid',ADD8E6:'Blau clar',DDA0DD:'Pruna',D3D3D3:'Gris clar',FFF0F5:'Lavanda rosat',FAEBD7:'Blanc antic',FFFFE0:'Groc clar',F0FFF0:'Verd pà lid',F0FFFF:'Blau cel pà lid',F0F8FF:'Cian pà lid',E6E6FA:'Lavanda',FFF:'Blanc'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:"Habilitat l'SCAYT",disable:'Deshabilita SCAYT',about:"Quant a l'SCAYT",toggle:"Commuta l'SCAYT",options:'Opcions',langs:'Idiomes',moreSuggestions:'Més suggerències',ignore:'Ignora',ignoreAll:"Ignora'ls tots",addWord:'Afegeix una paraula',emptyDic:"El nom del diccionari no hauria d'estar buit.",optionsTab:'Opcions',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixed
WithDigits:'Ignore Words with Numbers',languagesTab:'Idiomes',dictionariesTab:'Diccionaris',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Quant a'},about:{title:'Quan al CKEditor',dlgTitle:'Quan al CKEditor',moreInfo:'Per informació sobre llicències visiteu el web:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximitza',minimize:'Minimitza',fakeobjects:{anchor:'Ãncora',flash:'Animació Flash',div:'Salt de pà gina',unknown:'Objecte desconegut'},resize:'Arrossegueu per
redimensionar',colordialog:{title:'Selecciona el color',options:'Color Options',highlight:'Destacat',selected:'Seleccionat',clear:'Neteja'},toolbarCollapse:"Redueix la barra d'eines",toolbarExpand:"Amplia la barra d'eines",bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ca']={"dir":"ltr","editor":"Editor de text enriquit","common":{"editorHelp":"Premeu ALT 0 per ajuda","browseServer":"Veure servidor","url":"URL","protocol":"Protocol","upload":"Puja","uploadSubmit":"Envia-la al servidor","image":"Imatge","flash":"Flash","form":"Formulari","checkbox":"Casella de verificació","radio":"Botó d'opció","textField":"Camp de text","textarea":"Ãrea de text","hiddenField":"Camp ocult","button":"Botó","select":"Camp de selecció","imageButton":"Botó d'imatge","notSet":"<no definit>","id":"Id","name":"Nom","langDir":"Direcció de l'idioma","langDirLtr":"D'esquerra a dreta (LTR)","langDirRtl":"De dreta a esquerra (RTL)","langCode":"Codi d'idioma","longDescr":"Descripció llarga de la URL","cssClass":"Classes del full d'estil","advisoryTitle":"TÃtol consultiu","cssStyle":"Estil","ok":"D'acord","cancel":"Cancel·la","close":"Tanca","preview":"Previsualitza","resize":"Arrossegueu per redimensionar","generalTab":"General","advancedTab":
"Avançat","validateNumberFailed":"Aquest valor no és un número.","confirmNewPage":"Els canvis en aquest contingut que no es desin es perdran. Esteu segur que voleu carregar una pà gina nova?","confirmCancel":"Algunes opcions s'han canviat. Esteu segur que voleu tancar la finestra de dià leg?","options":"Opcions","target":"DestÃ","targetNew":"Nova finestra (_blank)","targetTop":"Finestra major (_top)","targetSelf":"Mateixa finestra (_self)","targetParent":"Finestra pare (_parent)","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","styles":"Estil","cssClasses":"Classes del full d'estil","width":"Amplada","height":"Alçada","align":"Alineació","alignLeft":"Ajusta a l'esquerra","alignRight":"Ajusta a la dreta","alignCenter":"Centre","alignTop":"Superior","alignMiddle":"Centre","alignBottom":"Inferior","invalidValue":"Valor no và lid.","invalidHeight":"L'alçada ha de ser un nombre.","invalidWidth":"L'amplada ha de ser un nombre.","invalidCssLe
ngth":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura và lida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","invalidHtmlLength":"El valor especificat per als \"%1\" camps ha de ser un número positiu amb o sense unitat de mesura và lida d'HTML (px o %).","invalidInlineStyle":"El valor especificat per l'estil en lÃnia ha de constar d'una o més tuples amb el format \"name: value\", separats per punt i coma.","cssLengthTooltip":"Introduïu un número per un valor en pÃxels o un número amb una unitat và lida de CSS (px, %, in, cm, mm, em, ex, pt o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>"},"about":{"copy":"Copyright © $1. Tots els drets reservats.","dlgTitle":"Quant al CKEditor","help":"Premeu $1 per obtenir ajuda.","moreInfo":"Per informació sobre llicències visiteu el web:","title":"Quant al CKEditor","userGuide":"Manual d'usuari de CKEditor"},"basicstyles":{"bold":"Negreta",
"italic":"Cursiva","strike":"Barrat","subscript":"SubÃndex","superscript":"SuperÃndex","underline":"Subratllat"},"bidi":{"ltr":"Direcció del text d'esquerra a dreta","rtl":"Direcció del text de dreta a esquerra"},"blockquote":{"toolbar":"Bloc de cita"},"clipboard":{"copy":"Copia","copyError":"La seguretat del vostre navegador no permet executar automà ticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).","cut":"Retalla","cutError":"La seguretat del vostre navegador no permet executar automà ticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).","paste":"Enganxa","pasteArea":"Ãrea d'enganxat","pasteMsg":"Si us plau, enganxeu dins del següent camp utilitzant el teclat (<STRONG>Ctrl+V</STRONG>) i premeu <STRONG>OK</STRONG>.","securityMsg":"A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.","title":"Enganxa"},"col
orbutton":{"auto":"Automà tic","bgColorTitle":"Color de Fons","colors":{"000":"Negre","800000":"Granat","8B4513":"Marró sella","2F4F4F":"Gris pissarra fosca","008080":"Blau xarxet","000080":"Blau marÃ","4B0082":"Indi","696969":"Gris intens","B22222":"Maó","A52A2A":"Marró (web)","DAA520":"Solidago","006400":"Verd fosc","40E0D0":"Turquesa","0000CD":"Atzur","800080":"Lila","808080":"Gris","F00":"Vermell","FF8C00":"Taronja fosc","FFD700":"Or","008000":"Verd","0FF":"Cian","00F":"Blau","EE82EE":"Lavanda rosat","A9A9A9":"Gris clar","FFA07A":"Salmó clar","FFA500":"Taronja","FFFF00":"Groc","00FF00":"Verd llima","AFEEEE":"Blau pà lid","ADD8E6":"Blau clar","DDA0DD":"Pruna","D3D3D3":"Gris clar","FFF0F5":"Lavanda rosat","FAEBD7":"Blanc antic","FFFFE0":"Groc clar","F0FFF0":"Verd pà lid","F0FFFF":"Blau cel pà lid","F0F8FF":"Cian pà lid","E6E6FA":"Lavanda","FFF":"Blanc"},"more":"Més colors...","panelTitle":"Colors","textColorTitle":"Color de Text"},"colordialog":{"clear":"Neteja","hig
hlight":"Destacat","options":"Opcions del color","selected":"Seleccionat","title":"Selecciona el color"},"templates":{"button":"Plantilles","emptyListMsg":"(No hi ha plantilles definides)","insertOption":"Reemplaça el contingut actual","options":"Opcions de plantilla","selectPromptMsg":"Seleccioneu una plantilla per usar a l'editor<br>(per defecte s'elimina el contingut actual):","title":"Plantilles de contingut"},"contextmenu":{"options":"Opcions del menú contextual"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"TÃtol de guia","cssClassInputLabel":"Classes de la fulla d'estils","edit":"Edita Div","inlineStyleInputLabel":"Estil en lÃnia","langDirLTRLabel":"D'esquerra a dreta (LTR)","langDirLabel":"Direcció de l'idioma","langDirRTLLabel":"De dreta a esquerra (RTL)","languageCodeInputLabel":" Codi d'idioma","remove":"Elimina Div","styleSelectLabel":"Estil","title":"Crea un contenidor Div","toolbar":"Crea un contenidor Div"},"toolbar":{"toolbarCollapse":"Redueix l
a barra d'eines","toolbarExpand":"Amplia la barra d'eines","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor de barra d'eines"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Llista de pics","numberedlist":"Llista numerada"},"indent":{"indent":"Augmenta el sagnat","outdent":"Redueix el sagnat"},"find":{"find":"Cerca","findOptions":"Find Options","findWhat":"Cerca:","matchCase":"Distingeix majúscules/minúscules","matchCyclic":"Match cyclic","matchWord":"Només paraules completes","notFoundMsg":"El text especificat no s'ha trobat.","replace":"Reemplaça","replaceAll":"Reemplaça-ho tot","replaceSuccessMsg":"%1 ocurrència/es reemplaçada/es.","replaceWith":"Remplaça amb:","title":"Cerca i reemplaça"},"fakeobjects":{"anc
hor":"Ãncora","flash":"Animació Flash","hiddenfield":"Camp ocult","iframe":"IFrame","unknown":"Objecte desconegut"},"flash":{"access":"Accés a scripts","accessAlways":"Sempre","accessNever":"Mai","accessSameDomain":"El mateix domini","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Color de Fons","chkFull":"Permetre la pantalla completa","chkLoop":"Bucle","chkMenu":"Habilita menú Flash","chkPlay":"Reprodució automà tica","flashvars":"Variables de Flash","hSpace":"Espaiat horit.","properties":"Propietats del Flash","propertiesTab":"Propietats","quality":"Qualitat","qualityAutoHigh":"Alta automà tica","qualityAutoLow":"Baixa automà tica","qualityBest":"La millor","qualityHigh":"Alta","qualityLow":"Baixa","qualityMedium":"Mitjana","scale":"Escala","scaleAll":"Mostra-ho tot","scaleFit":"Mida exacta","scaleNoBorder":"Sense vores","title":"Propietats del Flash","vSpace":"Espaiat vert.","validateHSpace"
:"L'espaiat horitzonatal ha de ser un nombre.","validateSrc":"Si us plau, escrigui l'enllaç URL","validateVSpace":"L'espaiat vertical ha de ser un nombre.","windowMode":"Mode de la finestra","windowModeOpaque":"Opaca","windowModeTransparent":"Transparent","windowModeWindow":"Finestra"},"font":{"fontSize":{"label":"Mida","voiceLabel":"Mida de la lletra","panelTitle":"Mida"},"label":"Tipus de lletra","panelTitle":"Tipus de lletra","voiceLabel":"Tipus de lletra"},"forms":{"button":{"title":"Propietats del botó","text":"Text (Valor)","type":"Tipus","typeBtn":"Botó","typeSbm":"Transmet formulari","typeRst":"Reinicia formulari"},"checkboxAndRadio":{"checkboxTitle":"Propietats de la casella de verificació","radioTitle":"Propietats del botó d'opció","value":"Valor","selected":"Seleccionat"},"form":{"title":"Propietats del formulari","menu":"Propietats del formulari","action":"Acció","method":"Mètode","encoding":"Codificació"},"hidden":{"title":"Propietats del camp ocult","n
ame":"Nom","value":"Valor"},"select":{"title":"Propietats del camp de selecció","selectInfo":"Info","opAvail":"Opcions disponibles","value":"Valor","size":"Mida","lines":"LÃnies","chkMulti":"Permet múltiples seleccions","opText":"Text","opValue":"Valor","btnAdd":"Afegeix","btnModify":"Modifica","btnUp":"Amunt","btnDown":"Avall","btnSetValue":"Selecciona per defecte","btnDelete":"Elimina"},"textarea":{"title":"Propietats de l'à rea de text","cols":"Columnes","rows":"Files"},"textfield":{"title":"Propietats del camp de text","name":"Nom","value":"Valor","charWidth":"Amplada","maxChars":"Nombre mà xim de carà cters","type":"Tipus","typeText":"Text","typePass":"Contrasenya","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adreça","tag_div":"Normal (DIV)","tag_h1":"Encapçalament 1","tag_h2":"Encapçalament 2","tag_h3":"Encapçalament 3","tag_h4":"Encapçalament 4","tag_h5"
:"Encapçalament 5","tag_h6":"Encapçalament 6","tag_p":"Normal","tag_pre":"Formatejat"},"horizontalrule":{"toolbar":"Insereix lÃnia horitzontal"},"iframe":{"border":"Mostra la vora del marc","noUrl":"Si us plau, introduïu la URL de l'iframe URL","scrolling":"Activa les barrres de desplaçament","title":"Propietats IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Si us plau, escriviu la URL de la imatge","alt":"Text alternatiu","border":"Vora","btnUpload":"Envia-la al servidor","button2Img":"Voleu transformar el botó d'imatge seleccionat en una simple imatge?","hSpace":"Espaiat horit.","img2Button":"Voleu transformar la imatge seleccionada en un botó d'imatge?","infoTab":"Informació de la imatge","linkTab":"Enllaç","lockRatio":"Bloqueja les proporcions","menu":"Propietats de la imatge","resetSize":"Restaura la mida","title":"Propietats de la imatge","titleButton":"Propietats del botó d'imatge","upload":"Puja","urlMissing":"Falta la URL de la imatge.","vSpace":"Espaiat
vert.","validateBorder":"La vora ha de ser un nombre enter.","validateHSpace":"HSpace ha de ser un nombre enter.","validateVSpace":"VSpace ha de ser un nombre enter."},"smiley":{"options":"Opcions d'emoticones","title":"Insereix una icona","toolbar":"Icona"},"justify":{"block":"Justificat","center":"Centrat","left":"Alinea a l'esquerra","right":"Alinea a la dreta"},"link":{"acccessKey":"Clau d'accés","advanced":"Avançat","advisoryContentType":"Tipus de contingut consultiu","advisoryTitle":"TÃtol consultiu","anchor":{"toolbar":"Insereix/Edita à ncora","menu":"Propietats de l'à ncora","title":"Propietats de l'à ncora","name":"Nom de l'à ncora","errorName":"Si us plau, escriviu el nom de l'ancora","remove":"Remove Anchor"},"anchorId":"Per Id d'element","anchorName":"Per nom d'à ncora","charset":"Conjunt de carà cters font enllaçat","cssClasses":"Classes del full d'estil","emailAddress":"Adreça de correu electrònic","emailBody":"Cos del missatge","emailSubject":"Assumpte
del missatge","id":"Id","info":"Informació de l'enllaç","langCode":"Direcció de l'idioma","langDir":"Direcció de l'idioma","langDirLTR":"D'esquerra a dreta (LTR)","langDirRTL":"De dreta a esquerra (RTL)","menu":"Edita l'enllaç","name":"Nom","noAnchors":"(No hi ha à ncores disponibles en aquest document)","noEmail":"Si us plau, escrigui l'adreça correu electrònic","noUrl":"Si us plau, escrigui l'enllaç URL","other":"<altre>","popupDependent":"Depenent (Netscape)","popupFeatures":"CaracterÃstiques finestra popup","popupFullScreen":"Pantalla completa (IE)","popupLeft":"Posició esquerra","popupLocationBar":"Barra d'adreça","popupMenuBar":"Barra de menú","popupResizable":"Redimensionable","popupScrollBars":"Barres d'scroll","popupStatusBar":"Barra d'estat","popupToolbar":"Barra d'eines","popupTop":"Posició dalt","rel":"Relació","selectAnchor":"Selecciona una à ncora","styles":"Estil","tabIndex":"Index de Tab","target":"DestÃ","targetFrame":"<marc>","targetFrameName
":"Nom del marc de destÃ","targetPopup":"<finestra emergent>","targetPopupName":"Nom finestra popup","title":"Enllaç","toAnchor":"Ãncora en aquesta pà gina","toEmail":"Correu electrònic","toUrl":"URL","toolbar":"Insereix/Edita enllaç","type":"Tipus d'enllaç","unlink":"Elimina l'enllaç","upload":"Puja"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":
"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximitza","minimize":"Minimitza"},"newpage":{"toolbar":"Nova pà gina"},"pagebreak":{"alt":"Salt de pà gina","toolbar":"Insereix salt de pà gina"},"pastetext":{"button":"Enganxa com a text no formatat","title":"Enganxa com a text no formatat"},"pastefromword":{"confirmCleanup":"El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?","error":"No ha estat possible netejar les dades enganxades degut a un error intern","title":"Enganxa des del Word","toolbar":"Enganxa des del Word"},"preview":{"preview":"Visualització prèvia"},"print":{"toolbar":"Imprimeix"},"removeformat":{"toolbar":"Elimina Format"},"save":{"toolbar":"Desa"},"selectall":{"toolbar":"Selecciona-ho tot"},"showblocks":{"toolbar":"Mostra els blocs"},"sourcearea":{"toolbar":"Codi font"},"specialchar":{"options":"Opcions de carà cters especials","title":
"Selecciona el carà cter especial","toolbar":"Insereix carà cter especial"},"scayt":{"about":"Quant a l'SCAYT","aboutTab":"Quant a","addWord":"Afegeix una paraula","allCaps":"Ignora paraules en majúscules","dic_create":"Crea","dic_delete":"Elimina","dic_field_name":"Nom del diccionari","dic_info":"Inicialment el diccionari d'usuari s'emmagatzema en una galeta. De totes maneres, les galetes tenen la mida limitada. Quan el diccionari creix massa, llavors el diccionari es pot emmagatzemar al nostre servidor. Per desar el vostre diccionari personal al nostre servidor heu d.'especificar un nom pel diccionari. Si ja heu desat un diccionari, teclegeu si us plau el seu nom i cliqueu el botó de restauració.","dic_rename":"Canvia el nom","dic_restore":"Restaura","dictionariesTab":"Diccionaris","disable":"Deshabilita SCAYT","emptyDic":"El nom del diccionari no hauria d'estar buit.","enable":"Habilitat l'SCAYT","ignore":"Ignora","ignoreAll":"Ignora'ls tots","ignoreDomainNames":"Ignor
a els noms de domini","langs":"Idiomes","languagesTab":"Idiomes","mixedCase":"Ignora paraules amb majúscules i minúscules","mixedWithDigits":"Ignora paraules amb números ","moreSuggestions":"Més suggerències","opera_title":"No és compatible amb l'Opera","options":"Opcions","optionsTab":"Opcions","title":"Spell Check As You Type","toggle":"Commuta l'SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Estil","panelTitle":"Estils de format","panelTitle1":"Estils de bloc","panelTitle2":"Estils incrustats","panelTitle3":"Estils d'objecte"},"table":{"border":"Mida vora","caption":"TÃtol","cell":{"menu":"Cel·la","insertBefore":"Insereix abans","insertAfter":"Insereix després","deleteCell":"Suprimeix","merge":"Fusiona","mergeRight":"Fusiona a la dreta","mergeDown":"Fusiona avall","splitHorizontal":"Divideix horitzontalment","splitVertical":"Divideix verticalment","title":"Propietats de la cel·la","cellType":"Tipus de cel·la","rowSpan":"Expansió de files","col
Span":"Expansió de columnes","wordWrap":"Ajustar al contingut","hAlign":"Alineació Horizontal","vAlign":"Alineació Vertical","alignBaseline":"A la lÃnia base","bgColor":"Color de fons","borderColor":"Color de la vora","data":"Dades","header":"Capçalera","yes":"SÃ","no":"No","invalidWidth":"L'amplada de cel·la ha de ser un nombre.","invalidHeight":"L'alçada de cel·la ha de ser un nombre.","invalidRowSpan":"L'expansió de files ha de ser un nombre enter.","invalidColSpan":"L'expansió de columnes ha de ser un nombre enter.","chooseColor":"Trieu"},"cellPad":"Encoixinament de cel·les","cellSpace":"Espaiat de cel·les","column":{"menu":"Columna","insertBefore":"Insereix columna abans de","insertAfter":"Insereix columna darrera","deleteColumn":"Suprimeix una columna"},"columns":"Columnes","deleteTable":"Suprimeix la taula","headers":"Capçaleres","headersBoth":"Ambdues","headersColumn":"Primera columna","headersNone":"Cap","headersRow":"Primera fila","invalidBorder":"El
gruix de la vora ha de ser un nombre.","invalidCellPadding":"L'encoixinament de cel·la ha de ser un nombre.","invalidCellSpacing":"L'espaiat de cel·la ha de ser un nombre.","invalidCols":"El nombre de columnes ha de ser un nombre major que 0.","invalidHeight":"L'alçada de la taula ha de ser un nombre.","invalidRows":"El nombre de files ha de ser un nombre major que 0.","invalidWidth":"L'amplada de la taula ha de ser un nombre.","menu":"Propietats de la taula","row":{"menu":"Fila","insertBefore":"Insereix fila abans de","insertAfter":"Insereix fila darrera","deleteRow":"Suprimeix una fila"},"rows":"Files","summary":"Resum","title":"Propietats de la taula","toolbar":"Taula","widthPc":"percentatge","widthPx":"pÃxels","widthUnit":"unitat d'amplada"},"undo":{"redo":"Refés","undo":"Desfés"},"wsc":{"btnIgnore":"Ignora","btnIgnoreAll":"Ignora-les totes","btnReplace":"Canvia","btnReplaceAll":"Canvia-les totes","btnUndo":"Desfés","changeTo":"Reemplaça amb","errorLoading":"
Error carregant el servidor: %s.","ieSpellDownload":"Verificació ortogrà fica no instal·lada. Voleu descarregar-ho ara?","manyChanges":"Verificació ortogrà fica: s'han canviat %1 paraules","noChanges":"Verificació ortogrà fica: no s'ha canviat cap paraula","noMispell":"Verificació ortogrà fica acabada: no hi ha cap paraula mal escrita","noSuggestions":"Cap suggeriment","notAvailable":"El servei no es troba disponible ara.","notInDic":"No és al diccionari","oneChange":"Verificació ortogrà fica: s'ha canviat una paraula","progress":"Verificació ortogrà fica en curs...","title":"Comprova l'ortografia","toolbar":"Revisa l'ortografia"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/cs.js b/share/static/RichText/lang/cs.js
index 9c152e0..dff26bb 100644
--- a/share/static/RichText/lang/cs.js
+++ b/share/static/RichText/lang/cs.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.cs={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Zdroj',newPage:'Nová stránka',save:'Uložit',preview:'Náhled',cut:'Vyjmout',copy:'KopÃrovat',paste:'Vložit',print:'Tisk',underline:'Podtržené',bold:'TuÄné',italic:'KurzÃva',selectAll:'Vybrat vÅ¡e',removeFormat:'Odstranit formátovánÃ',strike:'PÅeÅ¡krtnuté',subscript:'Dolnà index',superscript:'Hornà index',horizontalrule:'Vložit vodorovnou linku',pagebreak:'Vložit konec stránky',unlink:'Odstranit odkaz',undo:'ZpÄt',redo:'Znovu',common:{browseServer:'Vybrat na serveru',url:'URL',protocol:'Protokol',upload:'Odeslat',uploadSubmit:'Odeslat na server',image:'Obrázek',flash:'Flash',form:'FormuláÅ',checkbox:'ZaÅ¡krtávacà polÃÄko',radio:'PÅepÃnaÄ',textField:'Textové pole',textarea:'Textová oblast',hiddenField:'Skryté pole',button:'TlaÄÃtko',select:'Seznam',imageButton:'Obrázkové tlaÄÃtko',notSet:'<nenastaveno>
',id:'Id',name:'Jméno',langDir:'Orientace jazyka',langDirLtr:'Zleva do prava (LTR)',langDirRtl:'Zprava do leva (RTL)',langCode:'Kód jazyka',longDescr:'Dlouhý popis URL',cssClass:'TÅÃda stylu',advisoryTitle:'Pomocný titulek',cssStyle:'Styl',ok:'OK',cancel:'Storno',close:'Close',preview:'Preview',generalTab:'Obecné',advancedTab:'RozÅ¡ÃÅené',validateNumberFailed:'Zadaná hodnota nenà ÄÃselná.',confirmNewPage:'Jakékoliv neuložené zmÄny obsahu budou ztraceny. SkuteÄnÄ chete otevrÃt novou stránku?',confirmCancel:'NÄkterá z nastavenà byla zmÄnÄna. SkuteÄnÄ chete zavÅÃt dialogové okno?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, nedostupné</span>'},contextmenu:{opt
ions:'Context Menu Options'},specialChar:{toolbar:'Vložit speciálnà znaky',title:'VýbÄr speciálnÃho znaku',options:'Special Character Options'},link:{toolbar:'Vložit/zmÄnit odkaz',other:'<jiný>',menu:'ZmÄnit odkaz',title:'Odkaz',info:'Informace o odkazu',target:'CÃl',upload:'Odeslat',advanced:'RozÅ¡ÃÅené',type:'Typ odkazu',toUrl:'URL',toAnchor:'Kotva v této stránce',toEmail:'E-Mail',targetFrame:'<rámec>',targetPopup:'<vyskakovacà okno>',targetFrameName:'Název cÃlového rámu',targetPopupName:'Název vyskakovacÃho okna',popupFeatures:'Vlastnosti vyskakovacÃho okna',popupResizable:'UmožÅujÃcà mÄnit velikost',popupStatusBar:'Stavový Åádek',popupLocationBar:'Panel umÃstÄnÃ',popupToolbar:'Panel nástrojů',popupMenuBar:'Panel nabÃdky',popupFullScreen:'Celá obrazovka (IE)',popupScrollBars:'PosuvnÃky',popupDependent:'Závislost (Netscape)',popupWidth:'Å ÃÅka',popupLeft:'Levý okraj',popupHeight:'Výška',popupTop:'Hornà okraj',id:'Id',langDir
:'Orientace jazyka',langDirLTR:'Zleva do prava (LTR)',langDirRTL:'Zprava do leva (RTL)',acccessKey:'PÅÃstupový klÃÄ',name:'Jméno',langCode:'Orientace jazyka',tabIndex:'PoÅadà prvku',advisoryTitle:'Pomocný titulek',advisoryContentType:'Pomocný typ obsahu',cssClasses:'TÅÃda stylu',charset:'PÅiÅazená znaková sada',styles:'Styl',selectAnchor:'Vybrat kotvu',anchorName:'Podle jména kotvy',anchorId:'Podle Id objektu',emailAddress:'E-Mailová adresa',emailSubject:'PÅedmÄt zprávy',emailBody:'TÄlo zprávy',noAnchors:'(Ve stránce nenà definována žádná kotva!)',noUrl:'Zadejte prosÃm URL odkazu',noEmail:'Zadejte prosÃm e-mailovou adresu'},anchor:{toolbar:'VložÃt/zmÄnit záložku',menu:'Vlastnosti záložky',title:'Vlastnosti záložky',name:'Název záložky',errorName:'Zadejte prosÃm název záložky'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number m
ust be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'NajÃt a nahradit',find:'Hledat',replace:'Nahradit',findWhat:'Co hledat:',replaceWith:'ÄÃm nahradit:',notFoundMsg:'Hledaný text nebyl nalezen.',matchCase:'RozliÅ¡ovat velikost pÃsma',matchWord:'Pouze celá slova',matchCyclic:'Procházet opakovanÄ',replaceAll:'Nahradit vÅ¡e',replaceSuccessMsg:'%1 nahrazenÃ.'},table:{toolbar:'Tabulka',title:'Vlastnosti tabulky',menu:'Vlastnosti tabulky',deleteTable:'Smazat tabulku',rows:'Åádky',colu
mns:'Sloupce',border:'OhraniÄenÃ',align:'ZarovnánÃ',alignLeft:'Vlevo',alignCenter:'Na stÅed',alignRight:'Vpravo',width:'Å ÃÅka',widthPx:'bodů',widthPc:'procent',widthUnit:'width unit',height:'Výška',cellSpace:'Vzdálenost bunÄk',cellPad:'Odsazenà obsahu v buÅce',caption:'Popis',summary:'Souhrn',headers:'ZáhlavÃ',headersNone:'Žádné',headersColumn:'Prvnà sloupec',headersRow:'Prvnà Åádek',headersBoth:'ObojÃ',invalidRows:'PoÄet Åádků musà být ÄÃslo vÄtšà než 0.',invalidCols:'PoÄet sloupců musà být ÄÃslo vÄtšà než 0.',invalidBorder:'Zdaná velikost okraje musà být ÄÃselná.',invalidWidth:'Zadaná Å¡ÃÅka tabulky musà být ÄÃselná.',invalidHeight:'zadaná výška tabulky musà být ÄÃselná.',invalidCellSpacing:'Zadaná vzdálenost bunÄk musà být ÄÃselná.',invalidCellPadding:'Zadané odsazenà obsahu v buÅce musà být ÄÃselné.',cell:{menu:'BuÅka',insertBefore:'Vložit buÅku pÅed',insertAfter:'Vložit buÅku za',
deleteCell:'Smazat buÅky',merge:'SlouÄit buÅky',mergeRight:'SlouÄit doprava',mergeDown:'SlouÄit dolů',splitHorizontal:'RozdÄlit buÅky vodorovnÄ',splitVertical:'RozdÄlit buÅky svisle',title:'Vlastnosti buÅky',cellType:'Typ buÅky',rowSpan:'Spojit Åádky',colSpan:'Spojit sloupce',wordWrap:'ZalamovánÃ',hAlign:'Vodorovné zarovnánÃ',vAlign:'Svislé zarovnánÃ',alignTop:'Nahoru',alignMiddle:'DoprostÅed',alignBottom:'Dolů',alignBaseline:'Na úÄaÅÃ',bgColor:'Barva pozadÃ',borderColor:'Barva okraje',data:'Data',header:'HlaviÄka',yes:'Ano',no:'Ne',invalidWidth:'Zadaná Å¡ÃÅka buÅky musà být ÄÃslená.',invalidHeight:'Zadaná výška buÅky musà být ÄÃslená.',invalidRowSpan:'Zadaný poÄet slouÄených Åádků musà být celé ÄÃslo.',invalidColSpan:'Zadaný poÄet slouÄených sloupců musà být celé ÄÃslo.',chooseColor:'VýbÄr'},row:{menu:'Åádek',insertBefore:'Vložit Åádek pÅed',insertAfter:'Vložit Åádek za',deleteRow:'Smazat Åá
dky'},column:{menu:'Sloupec',insertBefore:'Vložit sloupec pÅed',insertAfter:'Vložit sloupec za',deleteColumn:'Smazat sloupec'}},button:{title:'Vlastnosti tlaÄÃtka',text:'Popisek',type:'Typ',typeBtn:'TlaÄÃtko',typeSbm:'Odeslat',typeRst:'Obnovit'},checkboxAndRadio:{checkboxTitle:'Vlastnosti zaÅ¡krtávacÃho polÃÄka',radioTitle:'Vlastnosti pÅepÃnaÄe',value:'Hodnota',selected:'ZaÅ¡krtnuto'},form:{title:'Vlastnosti formuláÅe',menu:'Vlastnosti formuláÅe',action:'Akce',method:'Metoda',encoding:'KódovánÃ'},select:{title:'Vlastnosti seznamu',selectInfo:'Info',opAvail:'Dostupná nastavenÃ',value:'Hodnota',size:'Velikost',lines:'Åádků',chkMulti:'Povolit mnohonásobné výbÄry',opText:'Text',opValue:'Hodnota',btnAdd:'PÅidat',btnModify:'ZmÄnit',btnUp:'Nahoru',btnDown:'Dolů',btnSetValue:'Nastavit jako vybranou hodnotu',btnDelete:'Smazat'},textarea:{title:'Vlastnosti textové oblasti',cols:'Sloupců',rows:'Åádků'},textfield:{title:'Vlastnosti textového pole',
name:'Název',value:'Hodnota',charWidth:'Å ÃÅka ve znacÃch',maxChars:'Maximálnà poÄet znaků',type:'Typ',typeText:'Text',typePass:'Heslo'},hidden:{title:'Vlastnosti skrytého pole',name:'Název',value:'Hodnota'},image:{title:'Vlastnosti obrázku',titleButton:'Vlastnostà obrázkového tlaÄÃtka',menu:'Vlastnosti obrázku',infoTab:'Informace o obrázku',btnUpload:'Odeslat na server',upload:'Odeslat',alt:'Alternativnà text',width:'Å ÃÅka',height:'Výška',lockRatio:'Zámek',unlockRatio:'Unlock Ratio',resetSize:'Původnà velikost',border:'Okraje',hSpace:'H-mezera',vSpace:'V-mezera',align:'ZarovnánÃ',alignLeft:'Vlevo',alignRight:'Vpravo',alertUrl:'Zadejte prosÃm URL obrázku',linkTab:'Odkaz',button2Img:'SkuteÄnÄ chcete pÅevést zvolené obrázkové tlaÄÃtko na obyÄejný obrázek?',img2Button:'SkuteÄnÄ chcete pÅevést zvolený obrázek na obrázkové tlaÄÃtko?',urlMissing:'Zadané URL zdroje obrázku nebylo nalezeno.',validateWidth:'Width must be a whole
number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Vlastnosti Flashe',propertiesTab:'Vlastnosti',title:'Vlastnosti Flashe',chkPlay:'Automatické spuÅ¡tÄnÃ',chkLoop:'OpakovánÃ',chkMenu:'NabÃdka Flash',chkFull:'Povolit celoobrazovkový režim',scale:'Zobrazit',scaleAll:'Zobrazit vÅ¡e',scaleNoBorder:'Bez okraje',scaleFit:'PÅizpůsobit',access:'PÅÃstup ke skriptu',accessAlways:'Vždy',accessSameDomain:'Ve stejné doménÄ',accessNever:'Nikdy',align:'ZarovnánÃ',alignLeft:'Vlevo',alignAbsBottom:'Zcela dolů',alignAbsMiddle:'DoprostÅed',alignBaseline:'Na úÄaÅÃ',alignBottom:'Dolů',alignMiddle:'Na stÅed',alignRight:'Vpravo',alignTextTop:'Na hornà okraj textu',alignTop:'Nahoru',quality:'Kvalita',qualityBest:'NejlepÅ¡Ã',qualityHigh:'Vysoká',qualityAutoHigh:'Vysoká - auto',qualityMedium:'StÅednÃ',
qualityAutoLow:'NÃzká - auto',qualityLow:'NejnižšÃ',windowModeWindow:'Okno',windowModeOpaque:'Neprůhledné',windowModeTransparent:'Průhledné',windowMode:'Režim okna',flashvars:'PromÄnné pro Flash',bgcolor:'Barva pozadÃ',width:'Å ÃÅka',height:'Výška',hSpace:'H-mezera',vSpace:'V-mezera',validateSrc:'Zadejte prosÃm URL odkazu',validateWidth:'Zadaná Å¡ÃÅka musà být ÄÃslo.',validateHeight:'Zadaná výška musà být ÄÃslo.',validateHSpace:'Zadaná H-mezera musà být ÄÃslo.',validateVSpace:'Zadaná V-mezera musà být ÄÃslo.'},spellCheck:{toolbar:'Zkontrolovat pravopis',title:'Kontrola pravopisu',notAvailable:'Omlouváme se, ale služba nynà nenà dostupná.',errorLoading:'Chyba nahrávánà služby aplikace z: %s.',notInDic:'Nenà ve slovnÃku',changeTo:'ZmÄnit na',btnIgnore:'PÅeskoÄit',btnIgnoreAll:'PÅeskakovat vÅ¡e',btnReplace:'ZamÄnit',btnReplaceAll:'ZamÄÅovat vÅ¡e',btnUndo:'ZpÄt',noSuggestions:'- žádné návrhy -',progress:'ProbÃhá
kontrola pravopisu...',noMispell:'Kontrola pravopisu dokonÄena: Žádné pravopisné chyby nenalezeny',noChanges:'Kontrola pravopisu dokonÄena: Beze zmÄn',oneChange:'Kontrola pravopisu dokonÄena: Jedno slovo zmÄnÄno',manyChanges:'Kontrola pravopisu dokonÄena: %1 slov zmÄnÄno',ieSpellDownload:'Kontrola pravopisu nenà nainstalována. Chcete ji nynà stáhnout?'},smiley:{toolbar:'SmajlÃky',title:'Vkládánà smajlÃků',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 objekt'},numberedlist:'ÄÃslovánÃ',bulletedlist:'Odrážky',indent:'ZvÄtÅ¡it odsazenÃ',outdent:'ZmenÅ¡it odsazenÃ',justify:{left:'Zarovnat vlevo',center:'Zarovnat na stÅed',right:'Zarovnat vpravo',block:'Zarovnat do bloku'},blockquote:'Citace',clipboard:{title:'Vložit',cutError:'BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro vyjmutà zvoleného textu do schránky. ProsÃm vyjmÄte zvolený text do schránky pomocà klávesnice
(Ctrl/Cmd+X).',copyError:'BezpeÄnostnà nastavenà VaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro kopÃrovánà zvoleného textu do schránky. ProsÃm zkopÃrujte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+C).',pasteMsg:'Do následujÃcÃho pole vložte požadovaný obsah pomocà klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stisknÄte <STRONG>OK</STRONG>.',securityMsg:'Z důvodů nastavenà bezpeÄnosti VaÅ¡eho prohlÞeÄe nemůže editor pÅistupovat pÅÃmo do schránky. Obsah schránky prosÃm vložte znovu do tohoto okna.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Jak je vidÄt, vkládaný text je kopÃrován z Wordu. Chcete jej pÅed vloženÃm vyÄistit?',toolbar:'Vložit z Wordu',title:'Vložit z Wordu',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Vložit jako Äistý text',title:'Vložit jako Äistý text'},templates:{button:'Å ablony',title:'Å ablony obsahu',options:'T
emplate Options',insertOption:'Nahradit aktuálnà obsah',selectPromptMsg:'ProsÃm zvolte Å¡ablonu pro otevÅenà v editoru<br>(aktuálnà obsah editoru bude ztracen):',emptyListMsg:'(Nenà definována žádná Å¡ablona)'},showBlocks:'Ukázat bloky',stylesCombo:{label:'Styl',panelTitle:'Formatting Styles',panelTitle1:'Blokové styly',panelTitle2:'Åádkové styly',panelTitle3:'Objektové styly'},format:{label:'Formát',panelTitle:'Formát',tag_p:'NormálnÃ',tag_pre:'Naformátováno',tag_address:'Adresa',tag_h1:'Nadpis 1',tag_h2:'Nadpis 2',tag_h3:'Nadpis 3',tag_h4:'Nadpis 4',tag_h5:'Nadpis 5',tag_h6:'Nadpis 6',tag_div:'Normálnà (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langD
irRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'PÃsmo',voiceLabel:'PÃsmo',panelTitle:'PÃsmo'},fontSize:{label:'Velikost',voiceLabel:'Velikost pÃsma',panelTitle:'Velikost'},colorButton:{textColorTitle:'Barva textu',bgColorTitle:'Barva pozadÃ',panelTitle:'Colors',auto:'Automaticky',more:'VÃce barev...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yello
w',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Kontrola pravopisu bÄhem psanà (SCAYT)',opera_title:'Not supported by Opera',enable:'Zapnout SCAYT',disable:'Vypnout SCAYT',about:'O aplikaci SCAYT',toggle:'VypÃnaÄ SCAYT',options:'NastavenÃ',langs:'Jazyky',moreSuggestions:'VÃce návrhů',ignore:'PÅeskoÄit',ignoreAll:'PÅeskoÄit vÅ¡e',addWord:'PÅidat slovo',emptyDic:'Název slovnÃku nesmà být prázdný.',optionsTab:'NastavenÃ',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Jazyky',dictionariesTab:'SlovnÃky',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in
a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'O aplikaci'},about:{title:'O aplikaci CKEditor',dlgTitle:'O aplikaci CKEditor',moreInfo:'Pro informace o lincenci navÅ¡tivte naÅ¡i webovou stránku:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximalizovat',minimize:'Minimalizovat',fakeobjects:{anchor:'Záložka',flash:'Flash animace',div:'Zalomenà stránky',unknown:'Neznámý objekt'},resize:'Uchopit pro zmÄnu velikosti',colordialog:{title:'VýbÄr barvy',options:'Color Options',highlight:'Zvýraznit',selected:'Vybráno',clear:'VyÄistit'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['cs']={"dir":"ltr","editor":"Textový editor","common":{"editorHelp":"StisknÄte ALT 0 pro nápovÄdu","browseServer":"Vybrat na serveru","url":"URL","protocol":"Protokol","upload":"Odeslat","uploadSubmit":"Odeslat na server","image":"Obrázek","flash":"Flash","form":"FormuláÅ","checkbox":"ZaÅ¡krtávacà polÃÄko","radio":"PÅepÃnaÄ","textField":"Textové pole","textarea":"Textová oblast","hiddenField":"Skryté pole","button":"TlaÄÃtko","select":"Seznam","imageButton":"Obrázkové tlaÄÃtko","notSet":"<nenastaveno>","id":"Id","name":"Jméno","langDir":"SmÄr jazyka","langDirLtr":"Zleva doprava (LTR)","langDirRtl":"Zprava doleva (RTL)","langCode":"Kód jazyka","longDescr":"Dlouhý popis URL","cssClass":"TÅÃda stylu","advisoryTitle":"Pomocný titulek","cssStyle":"Styl","ok":"OK","cancel":"ZruÅ¡it","close":"ZavÅÃt","preview":"Náhled","resize":"Uchopit pro zmÄnu velikosti","generalTab":"Obecné","advancedTab":"RozÅ¡ÃÅené","validateNumberFailed":"Z
adaná hodnota nenà ÄÃselná.","confirmNewPage":"Jakékoliv neuložené zmÄny obsahu budou ztraceny. SkuteÄnÄ chcete otevÅÃt novou stránku?","confirmCancel":"NÄkterá z nastavenà byla zmÄnÄna. SkuteÄnÄ chcete zavÅÃt dialogové okno?","options":"NastavenÃ","target":"CÃl","targetNew":"Nové okno (_blank)","targetTop":"Okno nejvyššà úrovnÄ (_top)","targetSelf":"Stejné okno (_self)","targetParent":"RodiÄovské okno (_parent)","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","styles":"Styly","cssClasses":"TÅÃdy stylů","width":"Å ÃÅka","height":"Výška","align":"ZarovnánÃ","alignLeft":"Vlevo","alignRight":"Vpravo","alignCenter":"Na stÅed","alignTop":"Nahoru","alignMiddle":"Na stÅed","alignBottom":"Dolů","invalidValue":"Neplatná hodnota.","invalidHeight":"Zadaná výška musà být ÄÃslo.","invalidWidth":"Å ÃÅka musà být ÄÃslo.","invalidCssLength":"Hodnota urÄená pro pole \"%1\" musà být kladné ÄÃslo bez nebo
s platnou jednotkou mÃry CSS (px, %, in, cm, mm, em, ex, pt, nebo pc).","invalidHtmlLength":"Hodnota urÄená pro pole \"%1\" musà být kladné ÄÃslo bez nebo s platnou jednotkou mÃry HTML (px nebo %).","invalidInlineStyle":"Hodnota urÄená pro Åádkový styl se musà skládat z jedné nebo vÃce n-tic ve formátu \"název : hodnota\", oddÄlené stÅednÃky","cssLengthTooltip":"Zadejte ÄÃslo jako hodnotu v pixelech nebo ÄÃslo s platnou jednotkou CSS (px, %, v cm, mm, em, ex, pt, nebo pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupné</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"O aplikaci CKEditor","help":"ProhlédnÄte si $1 pro nápovÄdu.","moreInfo":"Pro informace o lincenci navÅ¡tivte naÅ¡i webovou stránku:","title":"O aplikaci CKEditor","userGuide":"Uživatelská pÅÃruÄka CKEditor"},"basicstyles":{"bold":"TuÄné","italic":"KurzÃva","strike":"PÅeÅ¡krtnuté","subscript":"Dolnà index","superscrip
t":"Hornà index","underline":"Podtržené"},"bidi":{"ltr":"SmÄr textu zleva doprava","rtl":"SmÄr textu zprava doleva"},"blockquote":{"toolbar":"Citace"},"clipboard":{"copy":"KopÃrovat","copyError":"BezpeÄnostnà nastavenà vaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro kopÃrovánà zvoleného textu do schránky. ProsÃm zkopÃrujte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+C).","cut":"Vyjmout","cutError":"BezpeÄnostnà nastavenà vaÅ¡eho prohlÞeÄe nedovolujà editoru spustit funkci pro vyjmutà zvoleného textu do schránky. ProsÃm vyjmÄte zvolený text do schránky pomocà klávesnice (Ctrl/Cmd+X).","paste":"Vložit","pasteArea":"Oblast vkládánÃ","pasteMsg":"Do následujÃcÃho pole vložte požadovaný obsah pomocà klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stisknÄte <STRONG>OK</STRONG>.","securityMsg":"Z důvodů nastavenà bezpeÄnosti vaÅ¡eho prohlÞeÄe nemůže editor pÅistupovat pÅÃmo do schránky. Obsah schránky
prosÃm vložte znovu do tohoto okna.","title":"Vložit"},"colorbutton":{"auto":"Automaticky","bgColorTitle":"Barva pozadÃ","colors":{"000":"Äerná","800000":"KaÅ¡tanová","8B4513":"Sedlová hnÄÄ","2F4F4F":"TmavÄ bledÄ Å¡edá","008080":"ÄÃrka","000080":"NámoÅnická modÅ","4B0082":"Inkoustová","696969":"TmavÄ Å¡edá","B22222":"Pálená cihla","A52A2A":"HnÄdá","DAA520":"Zlatý prut","006400":"TmavÄ zelená","40E0D0":"Tyrkisová","0000CD":"StÅednÄ modrá","800080":"Purpurová","808080":"Å edá","F00":"Äervená","FF8C00":"TmavÄ oranžová","FFD700":"Zlatá","008000":"Zelená","0FF":"Azurová","00F":"Modrá","EE82EE":"Fialová","A9A9A9":"KalnÄ Å¡edá","FFA07A":"SvÄtle lososová","FFA500":"Oranžová","FFFF00":"Žlutá","00FF00":"Limetková","AFEEEE":"BledÄ tyrkisová","ADD8E6":"SvÄtle modrá","DDA0DD":"Å vestková","D3D3D3":"SvÄtle Å¡edá","FFF0F5":"LevandulovÄ rumÄnná","FAEBD7":"Antická bÃlá","FFFFE0":"SvÄtle žlutá","F0FFF0":"Medová rosa","F0FF
FF":"Azurová","F0F8FF":"AlenÄina modrá","E6E6FA":"Levandulová","FFF":"BÃlá"},"more":"VÃce barev...","panelTitle":"Barvy","textColorTitle":"Barva textu"},"colordialog":{"clear":"VyÄistit","highlight":"Zvýraznit","options":"Nastavenà barvy","selected":"Vybráno","title":"VýbÄr barvy"},"templates":{"button":"Å ablony","emptyListMsg":"(Nenà definována žádná Å¡ablona)","insertOption":"Nahradit aktuálnà obsah","options":"Nastavenà šablon","selectPromptMsg":"ProsÃm zvolte Å¡ablonu pro otevÅenà v editoru<br>(aktuálnà obsah editoru bude ztracen):","title":"Å ablony obsahu"},"contextmenu":{"options":"Nastavenà kontextové nabÃdky"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"NápovÄdnà titulek","cssClassInputLabel":"TÅÃdy stylů","edit":"ZmÄnit Div","inlineStyleInputLabel":"VnitÅnà styly","langDirLTRLabel":"Zleva doprava (LTR)","langDirLabel":"SmÄr jazyka","langDirRTLLabel":"Zprava doleva (RTL)","languageCodeInputLabel":" Kód jazyka","rem
ove":"Odstranit Div","styleSelectLabel":"Styly","title":"VytvoÅit Div kontejner","toolbar":"VytvoÅit Div kontejner"},"toolbar":{"toolbarCollapse":"Skrýt panel nástrojů","toolbarExpand":"Zobrazit panel nástrojů","toolbarGroups":{"document":"Dokument","clipboard":"Schránka/ZpÄt","editing":"Ãpravy","forms":"FormuláÅe","basicstyles":"Základnà styly","paragraph":"Odstavec","links":"Odkazy","insert":"Vložit","styles":"Styly","colors":"Barvy","tools":"Nástroje"},"toolbars":"Panely nástrojů editoru"},"elementspath":{"eleLabel":"Cesta objektu","eleTitle":"%1 objekt"},"list":{"bulletedlist":"Odrážky","numberedlist":"ÄÃslovánÃ"},"indent":{"indent":"ZvÄtÅ¡it odsazenÃ","outdent":"ZmenÅ¡it odsazenÃ"},"find":{"find":"Hledat","findOptions":"Možnosti hledánÃ","findWhat":"Co hledat:","matchCase":"RozliÅ¡ovat velikost pÃsma","matchCyclic":"Procházet opakovanÄ","matchWord":"Pouze celá slova","notFoundMsg":"Hledaný text nebyl nalezen.","replace":"Nahradit","rep
laceAll":"Nahradit vÅ¡e","replaceSuccessMsg":"%1 nahrazenÃ.","replaceWith":"ÄÃm nahradit:","title":"NajÃt a nahradit"},"fakeobjects":{"anchor":"Záložka","flash":"Flash animace","hiddenfield":"Skryté pole","iframe":"IFrame","unknown":"Neznámý objekt"},"flash":{"access":"PÅÃstup ke skriptu","accessAlways":"Vždy","accessNever":"Nikdy","accessSameDomain":"Ve stejné doménÄ","alignAbsBottom":"Zcela dolů","alignAbsMiddle":"DoprostÅed","alignBaseline":"Na úÄaÅÃ","alignTextTop":"Na hornà okraj textu","bgcolor":"Barva pozadÃ","chkFull":"Povolit celoobrazovkový režim","chkLoop":"OpakovánÃ","chkMenu":"NabÃdka Flash","chkPlay":"Automatické spuÅ¡tÄnÃ","flashvars":"PromÄnné pro Flash","hSpace":"Horizontálnà mezera","properties":"Vlastnosti Flashe","propertiesTab":"Vlastnosti","quality":"Kvalita","qualityAutoHigh":"Vysoká - auto","qualityAutoLow":"NÃzká - auto","qualityBest":"NejlepÅ¡Ã","qualityHigh":"Vysoká","qualityLow":"NejnižšÃ","qualityMedium"
:"StÅednÃ","scale":"Zobrazit","scaleAll":"Zobrazit vÅ¡e","scaleFit":"PÅizpůsobit","scaleNoBorder":"Bez okraje","title":"Vlastnosti Flashe","vSpace":"Vertikálnà mezera","validateHSpace":"Zadaná horizontálnà mezera musà být ÄÃslo.","validateSrc":"Zadejte prosÃm URL odkazu","validateVSpace":"Zadaná vertikálnà mezera musà být ÄÃslo.","windowMode":"Režim okna","windowModeOpaque":"Neprůhledné","windowModeTransparent":"Průhledné","windowModeWindow":"Okno"},"font":{"fontSize":{"label":"Velikost","voiceLabel":"Velikost pÃsma","panelTitle":"Velikost"},"label":"PÃsmo","panelTitle":"PÃsmo","voiceLabel":"PÃsmo"},"forms":{"button":{"title":"Vlastnosti tlaÄÃtka","text":"Popisek","type":"Typ","typeBtn":"TlaÄÃtko","typeSbm":"Odeslat","typeRst":"Obnovit"},"checkboxAndRadio":{"checkboxTitle":"Vlastnosti zaÅ¡krtávacÃho polÃÄka","radioTitle":"Vlastnosti pÅepÃnaÄe","value":"Hodnota","selected":"ZaÅ¡krtnuto"},"form":{"title":"Vlastnosti formuláÅe","menu":
"Vlastnosti formuláÅe","action":"Akce","method":"Metoda","encoding":"KódovánÃ"},"hidden":{"title":"Vlastnosti skrytého pole","name":"Název","value":"Hodnota"},"select":{"title":"Vlastnosti seznamu","selectInfo":"Info","opAvail":"Dostupná nastavenÃ","value":"Hodnota","size":"Velikost","lines":"Åádků","chkMulti":"Povolit mnohonásobné výbÄry","opText":"Text","opValue":"Hodnota","btnAdd":"PÅidat","btnModify":"ZmÄnit","btnUp":"Nahoru","btnDown":"Dolů","btnSetValue":"Nastavit jako vybranou hodnotu","btnDelete":"Smazat"},"textarea":{"title":"Vlastnosti textové oblasti","cols":"Sloupců","rows":"Åádků"},"textfield":{"title":"Vlastnosti textového pole","name":"Název","value":"Hodnota","charWidth":"Å ÃÅka ve znacÃch","maxChars":"Maximálnà poÄet znaků","type":"Typ","typeText":"Text","typePass":"Heslo","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formát","panelTitle":"Formát","tag_address":"
Adresa","tag_div":"Normálnà (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"NormálnÃ","tag_pre":"Naformátováno"},"horizontalrule":{"toolbar":"Vložit vodorovnou linku"},"iframe":{"border":"Zobrazit okraj","noUrl":"Zadejte prosÃm URL obsahu pro IFrame","scrolling":"Zapnout posuvnÃky","title":"Vlastnosti IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Zadejte prosÃm URL obrázku","alt":"Alternativnà text","border":"Okraje","btnUpload":"Odeslat na server","button2Img":"SkuteÄnÄ chcete pÅevést zvolené obrázkové tlaÄÃtko na obyÄejný obrázek?","hSpace":"Horizontálnà mezera","img2Button":"SkuteÄnÄ chcete pÅevést zvolený obrázek na obrázkové tlaÄÃtko?","infoTab":"Informace o obrázku","linkTab":"Odkaz","lockRatio":"Zámek","menu":"Vlastnosti obrázku","resetSize":"Původnà velikost","title":"Vlastnosti obrázku","titleButton":"Vlastnostà obrázkového tlaÄÃt
ka","upload":"Odeslat","urlMissing":"Zadané URL zdroje obrázku nebylo nalezeno.","vSpace":"Vertikálnà mezera","validateBorder":"Okraj musà být nastaven v celých ÄÃslech.","validateHSpace":"Horizontálnà mezera musà být nastavena v celých ÄÃslech.","validateVSpace":"Vertikálnà mezera musà být nastavena v celých ÄÃslech."},"smiley":{"options":"Nastavenà smajlÃků","title":"Vkládánà smajlÃků","toolbar":"SmajlÃci"},"justify":{"block":"Zarovnat do bloku","center":"Zarovnat na stÅed","left":"Zarovnat vlevo","right":"Zarovnat vpravo"},"link":{"acccessKey":"PÅÃstupový klÃÄ","advanced":"RozÅ¡ÃÅené","advisoryContentType":"Pomocný typ obsahu","advisoryTitle":"Pomocný titulek","anchor":{"toolbar":"Záložka","menu":"Vlastnosti záložky","title":"Vlastnosti záložky","name":"Název záložky","errorName":"Zadejte prosÃm název záložky","remove":"Odstranit záložku"},"anchorId":"Podle Id objektu","anchorName":"Podle jména kotvy","charset":"P
ÅiÅazená znaková sada","cssClasses":"TÅÃda stylu","emailAddress":"E-mailová adresa","emailBody":"TÄlo zprávy","emailSubject":"PÅedmÄt zprávy","id":"Id","info":"Informace o odkazu","langCode":"Kód jazyka","langDir":"SmÄr jazyka","langDirLTR":"Zleva doprava (LTR)","langDirRTL":"Zprava doleva (RTL)","menu":"ZmÄnit odkaz","name":"Jméno","noAnchors":"(Ve stránce nenà definována žádná kotva!)","noEmail":"Zadejte prosÃm e-mailovou adresu","noUrl":"Zadejte prosÃm URL odkazu","other":"<jiný>","popupDependent":"Závislost (Netscape)","popupFeatures":"Vlastnosti vyskakovacÃho okna","popupFullScreen":"Celá obrazovka (IE)","popupLeft":"Levý okraj","popupLocationBar":"Panel umÃstÄnÃ","popupMenuBar":"Panel nabÃdky","popupResizable":"UmožÅujÃcà mÄnit velikost","popupScrollBars":"PosuvnÃky","popupStatusBar":"Stavový Åádek","popupToolbar":"Panel nástrojů","popupTop":"Hornà okraj","rel":"Vztah","selectAnchor":"Vybrat kotvu","styles":"Styl","tabIndex"
:"PoÅadà prvku","target":"CÃl","targetFrame":"<rámec>","targetFrameName":"Název cÃlového rámu","targetPopup":"<vyskakovacà okno>","targetPopupName":"Název vyskakovacÃho okna","title":"Odkaz","toAnchor":"Kotva v této stránce","toEmail":"E-mail","toUrl":"URL","toolbar":"Odkaz","type":"Typ odkazu","unlink":"Odstranit odkaz","upload":"Odeslat"},"liststyle":{"armenian":"Arménské","bulletedTitle":"Vlastnosti odrážek","circle":"Kroužky","decimal":"Arabská ÄÃsla (1, 2, 3, atd.)","decimalLeadingZero":"Arabská ÄÃsla uvozená nulou (01, 02, 03, atd.)","disc":"KoleÄka","georgian":"GruzÃnské (an, ban, gan, atd.)","lowerAlpha":"Malá latinka (a, b, c, d, e, atd.)","lowerGreek":"Malé Åecké (alpha, beta, gamma, atd.)","lowerRoman":"Malé ÅÃmské (i, ii, iii, iv, v, atd.)","none":"Nic","notset":"<nenastaveno>","numberedTitle":"Vlastnosti ÄÃslovánÃ","square":"Ätverce","start":"PoÄátek","type":"Typ","upperAlpha":"Velká latinka (A, B, C, D, E, atd.)","upp
erRoman":"Velké ÅÃmské (I, II, III, IV, V, atd.)","validateStartNumber":"ÄÃslovánà musà zaÄÃnat celým ÄÃslem."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximalizovat","minimize":"Minimalizovat"},"newpage":{"toolbar":"Nová stránka"},"pagebreak":{"alt":"Konec stránky","toolbar":"Vložit konec stránky"},"pastetext":{"button":"Vložit jako Äistý text","title":"Vložit jako Äistý text"},"pastefromword":{"confirmCleanup":"Jak je vidÄt, vkládaný text je kopÃrován z Wordu. Chcete jej pÅed vloženÃm vyÄistit?","error":"Z důvodu vnitÅnà chyby nebylo možné provést vyÄiÅ¡tÄnà vkládaného textu.","title":"Vložit z Wordu","toolbar":"Vložit z Wordu"},"preview":{"preview":"Náhled"},"print":{"toolbar":"Tisk"},"removeformat":{"toolbar":"Odstranit formátovánÃ"},"save":{"toolbar":"Uložit"},"selectall":{"toolbar":"Vybrat vÅ¡e"},"showblocks":{"toolbar":"Ukázat bloky"},"sourcearea":{"toolbar":"Zdroj"},"specialchar":{"opt
ions":"Nastavenà speciálnÃch znaků","title":"VýbÄr speciálnÃho znaku","toolbar":"Vložit speciálnà znaky"},"scayt":{"about":"O aplikaci SCAYT","aboutTab":"O aplikaci","addWord":"PÅidat slovo","allCaps":"Ignorovat slova tvoÅená velkými pÃsmeny","dic_create":"VytvoÅit","dic_delete":"Smazat","dic_field_name":"Název slovnÃku","dic_info":"ZpoÄátku se uživatelský slovnÃk ukládá do cookies ve vaÅ¡em prohlÞeÄi. OvÅ¡em cookies majà omezenou velikost, takže když slovnÃk dosáhne velikosti, kdy se již do cookies nevejde, může být uložen na naÅ¡em serveru. Chcete-li uložit váš osobnà slovnÃk na naÅ¡em serveru, je tÅeba slovnÃk nejdÅÃve pojmenovat. Máte-li již slovnÃk pojmenován a uložen, zadejte jeho název a klepnÄte na tlaÄÃtko Obnovit.","dic_rename":"PÅejmenovat","dic_restore":"Obnovit","dictionariesTab":"SlovnÃky","disable":"Vypnout SCAYT","emptyDic":"Název slovnÃku nesmà být prázdný.","enable":"Zapnout SCAYT","ignore":"
PÅeskoÄit","ignoreAll":"PÅeskoÄit vÅ¡e","ignoreDomainNames":"Ignorovat doménová jména","langs":"Jazyky","languagesTab":"Jazyky","mixedCase":"Ignorovat slova obsahujÃcà různou velikost pÃsma","mixedWithDigits":"Ignorovat slova obsahujÃcà ÄÃsla","moreSuggestions":"VÃce návrhů","opera_title":"Toto Opera nepodporuje","options":"NastavenÃ","optionsTab":"NastavenÃ","title":"Kontrola pravopisu bÄhem psanà (SCAYT)","toggle":"VypÃnaÄ SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styl","panelTitle":"Formátovacà styly","panelTitle1":"Blokové styly","panelTitle2":"Åádkové styly","panelTitle3":"Objektové styly"},"table":{"border":"OhraniÄenÃ","caption":"Popis","cell":{"menu":"BuÅka","insertBefore":"Vložit buÅku pÅed","insertAfter":"Vložit buÅku za","deleteCell":"Smazat buÅky","merge":"SlouÄit buÅky","mergeRight":"SlouÄit doprava","mergeDown":"SlouÄit dolů","splitHorizontal":"RozdÄlit buÅky vodorovnÄ","splitVertical":"RozdÄ
lit buÅky svisle","title":"Vlastnosti buÅky","cellType":"Typ buÅky","rowSpan":"Spojit Åádky","colSpan":"Spojit sloupce","wordWrap":"ZalamovánÃ","hAlign":"Vodorovné zarovnánÃ","vAlign":"Svislé zarovnánÃ","alignBaseline":"Na úÄaÅÃ","bgColor":"Barva pozadÃ","borderColor":"Barva okraje","data":"Data","header":"HlaviÄka","yes":"Ano","no":"Ne","invalidWidth":"Å ÃÅka buÅky musà být ÄÃslo.","invalidHeight":"Zadaná výška buÅky musà být ÄÃslená.","invalidRowSpan":"Zadaný poÄet slouÄených Åádků musà být celé ÄÃslo.","invalidColSpan":"Zadaný poÄet slouÄených sloupců musà být celé ÄÃslo.","chooseColor":"VýbÄr"},"cellPad":"Odsazenà obsahu v buÅce","cellSpace":"Vzdálenost bunÄk","column":{"menu":"Sloupec","insertBefore":"Vložit sloupec pÅed","insertAfter":"Vložit sloupec za","deleteColumn":"Smazat sloupec"},"columns":"Sloupce","deleteTable":"Smazat tabulku","headers":"ZáhlavÃ","headersBoth":"ObojÃ","headersColumn":"PrvnÃ
sloupec","headersNone":"Žádné","headersRow":"Prvnà Åádek","invalidBorder":"Zdaná velikost okraje musà být ÄÃselná.","invalidCellPadding":"Zadané odsazenà obsahu v buÅce musà být ÄÃselné.","invalidCellSpacing":"Zadaná vzdálenost bunÄk musà být ÄÃselná.","invalidCols":"PoÄet sloupců musà být ÄÃslo vÄtšà než 0.","invalidHeight":"Zadaná výška tabulky musà být ÄÃselná.","invalidRows":"PoÄet Åádků musà být ÄÃslo vÄtšà než 0.","invalidWidth":"Å ÃÅka tabulky musà být ÄÃslo.","menu":"Vlastnosti tabulky","row":{"menu":"Åádek","insertBefore":"Vložit Åádek pÅed","insertAfter":"Vložit Åádek za","deleteRow":"Smazat Åádky"},"rows":"Åádky","summary":"Souhrn","title":"Vlastnosti tabulky","toolbar":"Tabulka","widthPc":"procent","widthPx":"bodů","widthUnit":"jednotka Å¡ÃÅky"},"undo":{"redo":"Znovu","undo":"ZpÄt"},"wsc":{"btnIgnore":"PÅeskoÄit","btnIgnoreAll":"PÅeskakovat vÅ¡e","btnReplace":"ZamÄnit","btnRepl
aceAll":"ZamÄÅovat vÅ¡e","btnUndo":"ZpÄt","changeTo":"ZmÄnit na","errorLoading":"Chyba nahrávánà služby aplikace z: %s.","ieSpellDownload":"Kontrola pravopisu nenà nainstalována. Chcete ji nynà stáhnout?","manyChanges":"Kontrola pravopisu dokonÄena: %1 slov zmÄnÄno","noChanges":"Kontrola pravopisu dokonÄena: Beze zmÄn","noMispell":"Kontrola pravopisu dokonÄena: Žádné pravopisné chyby nenalezeny","noSuggestions":"- žádné návrhy -","notAvailable":"Omlouváme se, ale služba nynà nenà dostupná.","notInDic":"Nenà ve slovnÃku","oneChange":"Kontrola pravopisu dokonÄena: Jedno slovo zmÄnÄno","progress":"ProbÃhá kontrola pravopisu...","title":"Kontrola pravopisu","toolbar":"Zkontrolovat pravopis"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/cy.js b/share/static/RichText/lang/cy.js
index 793c046..094360a 100644
--- a/share/static/RichText/lang/cy.js
+++ b/share/static/RichText/lang/cy.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.cy={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Tarddle',newPage:'Tudalen newydd',save:'Cadw',preview:'Rhagolwg',cut:'Torri',copy:'Copïo',paste:'Gludo',print:'Argraffu',underline:'Tanlinellu',bold:'Bras',italic:'Italig',selectAll:'Dewis Popeth',removeFormat:'Tynnu Fformat',strike:'Llinell Trwyddo',subscript:'Is-sgript',superscript:'Uwchsgript',horizontalrule:'Mewnosod Llinell Lorweddol',pagebreak:'Mewnosod Toriad Tudalen i Argraffu',unlink:'Datgysylltu',undo:'Dadwneud',redo:'Ailadrodd',common:{browseServer:"Pori'r Gweinydd",url:'URL',protocol:'Protocol',upload:'Lanlwytho',uploadSubmit:"Anfon i'r Gweinydd",image:'Delwedd',flash:'Flash',form:'Ffurflen',checkbox:'Blwch ticio',radio:'Botwm Radio',textField:'Maes Testun',textarea:'Ardal Testun',hiddenField:'Maes Cudd',button:'Botwm',select:'Maes Dewis',imageButton:'Botwm Delwedd',notSet:'<heb osod>',id:'Id',name:'Name',langDir:'Cyfeiriad Ia
ith',langDirLtr:"Chwith i'r Dde (LTR)",langDirRtl:"Dde i'r Chwith (RTL)",langCode:'Cod Iaith',longDescr:'URL Disgrifiad Hir',cssClass:'Dosbarth Dalen Arddull',advisoryTitle:'Teitl Cynghorol',cssStyle:'Arddull',ok:'Iawn',cancel:'Diddymu',close:'Close',preview:'Preview',generalTab:'Cyffredinol',advancedTab:'Uwch',validateNumberFailed:"Nid yw'r gwerth hwn yn rhif.",confirmNewPage:"Byddwch yn colli unrhyw newidiadau i'r cynnwys sydd heb eu cadw. A ydych am barhau i lwytho tudalen newydd?",confirmCancel:"Mae rhai o'r opsiynau wedi'u newid. A ydych wir am gau'r deialog?",options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, ddim ar gael</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{too
lbar:'Mewnosod Nodau Arbennig',title:'Dewis Nod Arbennig',options:'Special Character Options'},link:{toolbar:'Dolen',other:'<eraill>',menu:'Golygu Dolen',title:'Dolen',info:'Gwyb ar y Ddolen',target:'Targed',upload:'Lanlwytho',advanced:'Uwch',type:'Math y Ddolen',toUrl:'URL',toAnchor:'Dolen at angor yn y testun',toEmail:'E-bost',targetFrame:'<ffrâm>',targetPopup:'<ffenestr bop>',targetFrameName:'Enw Ffrâm y Targed',targetPopupName:'Enw Ffenestr Bop',popupFeatures:'Nodweddion Ffenestr Bop',popupResizable:'Ailfeintiol',popupStatusBar:'Bar Statws',popupLocationBar:'Bar Safle',popupToolbar:'Bar Offer',popupMenuBar:'Dewislen',popupFullScreen:'Sgrin Llawn (IE)',popupScrollBars:'Barrau Sgrolio',popupDependent:'Dibynnol (Netscape)',popupWidth:'Lled',popupLeft:'Safle Chwith',popupHeight:'Uchder',popupTop:'Safle Top',id:'Id',langDir:'Cyfeiriad Iaith',langDirLTR:"Chwith i'r Dde (LTR)",langDirRTL:"Dde i'r Chwith (RTL)",acccessKey:'Allwedd Mynediad',name:'Enw',langCode:'Cod Iaith',tabI
ndex:'Indecs Tab',advisoryTitle:'Teitl Cynghorol',advisoryContentType:'Math y Cynnwys Cynghorol',cssClasses:'Dosbarthiadau Dalen Arddull',charset:"Set nodau'r Adnodd Cysylltiedig",styles:'Arddull',selectAnchor:'Dewiswch Angor',anchorName:"Gan Enw'r Angor",anchorId:'Gan Id yr Elfen',emailAddress:'Cyfeiriad E-Bost',emailSubject:'Testun y Message Subject',emailBody:'Pwnc y Neges',noAnchors:'(Dim angorau ar gael yn y ddogfen)',noUrl:'Teipiwch URL y ddolen',noEmail:'Teipiwch gyfeiriad yr e-bost'},anchor:{toolbar:'Angor',menu:'Golygwch yr Angor',title:"Priodweddau'r Angor",name:"Enw'r Angor",errorName:"Teipiwch enw'r angor"},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i,
ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Chwilio ac Amnewid',find:'Chwilio',replace:'Amnewid',findWhat:"Chwilio'r term:",replaceWith:'Amnewid gyda:',notFoundMsg:"Nid oedd y testun wedi'i ddarganfod.",matchCase:"Cyfateb i'r cas",matchWord:'Cyfateb gair cyfan',matchCyclic:'Cyfateb cylchol',replaceAll:'Amnewid pob un',replaceSuccessMsg:'Amnewidiwyd %1 achlysur.'},table:{toolbar:'Tabl',title:'Nodweddion Tabl',menu:'Nodweddion Tabl',deleteTable:'Dileu Tabl',rows:'Rhesi',columns:'Colofnau',border:'Maint yr Ymyl',align:'Aliniad',alignLeft:'Chwith',alignCenter:'Canol',alignRight:'Dde',width:'Lled',widthPx:'picsel',widthPc:'y cant',widthUnit:'width unit',height:'Uchder',cellSpace:"Bylchu'r g
ell",cellPad:"Padio'r gell",caption:'Pennawd',summary:'Crynodeb',headers:'Penynnau',headersNone:'Dim',headersColumn:'Colofn gyntaf',headersRow:'Rhes gyntaf',headersBoth:'Y Ddau',invalidRows:"Mae'n rhaid cael o leiaf un rhes.",invalidCols:"Mae'n rhaid cael o leiaf un golofn.",invalidBorder:"Mae'n rhaid i faint yr ymyl fod yn rhif.",invalidWidth:"Mae'n rhaid i led y tabl fod yn rhif.",invalidHeight:"Mae'n rhaid i uchder y tabl fod yn rhif.",invalidCellSpacing:"Mae'n rhaid i fylchiad y gell fod yn rhif.",invalidCellPadding:"Mae'n rhaid i badiad y gell fod yn rhif.",cell:{menu:'Cell',insertBefore:'Mewnosod Cell Cyn',insertAfter:'Mewnosod Cell Ar Ãl',deleteCell:'Dileu Celloedd',merge:'Cyfuno Celloedd',mergeRight:"Cyfuno i'r Dde",mergeDown:'Cyfuno i Lawr',splitHorizontal:"Hollti'r Gell yn Lorweddol",splitVertical:"Hollti'r Gell yn Fertigol",title:"Priodweddau'r Gell",cellType:'Math y Gell',rowSpan:'Rhychwant Rhesi',colSpan:'Rhychwant Colofnau',wordWrap:'Lapio Geiriau',hAlign:'Ali
niad Llorweddol',vAlign:'Aliniad Fertigol',alignTop:'Top',alignMiddle:'Canol',alignBottom:'Gwaelod',alignBaseline:'Baslinell',bgColor:'Lliw Cefndir',borderColor:'Lliw Ymyl',data:'Data',header:'Pennyn',yes:'Ie',no:'Na',invalidWidth:"Mae'n rhaid i led y gell fod yn rhif.",invalidHeight:"Mae'n rhaid i uchder y gell fod yn rhif.",invalidRowSpan:"Mae'n rhaid i rychwant y rhesi fod yn gyfanrif.",invalidColSpan:"Mae'n rhaid i rychwant y colofnau fod yn gyfanrif.",chooseColor:'Choose'},row:{menu:'Rhes',insertBefore:'Mewnosod Rhes Cyn',insertAfter:'Mewnosod Rhes Ar Ãl',deleteRow:'Dileu Rhesi'},column:{menu:'Colofn',insertBefore:'Mewnosod Colofn Cyn',insertAfter:'Mewnosod Colofn Ar Ãl',deleteColumn:'Dileu Colofnau'}},button:{title:'Priodweddau Botymau',text:'Testun (Gwerth)',type:'Math',typeBtn:'Botwm',typeSbm:'Gyrru',typeRst:'Ailosod'},checkboxAndRadio:{checkboxTitle:'Priodweddau Blwch Ticio',radioTitle:'Priodweddau Botwm Radio',value:'Gwerth',selected:'Dewiswyd'},form:{title:'Prio
dweddau Ffurflen',menu:'Priodweddau Ffurflen',action:'Gweithred',method:'Dull',encoding:'Amgodio'},select:{title:'Priodweddau Maes Dewis',selectInfo:'Gwyb Dewis',opAvail:'Opsiynau ar Gael',value:'Gwerth',size:'Maint',lines:'llinellau',chkMulti:'Caniatà u aml-ddewisiadau',opText:'Testun',opValue:'Gwerth',btnAdd:'Ychwanegu',btnModify:'Newid',btnUp:'Lan',btnDown:'Lawr',btnSetValue:'Gosod fel gwerth a ddewiswyd',btnDelete:'Dileu'},textarea:{title:'Priodweddau Ardal Testun',cols:'Colofnau',rows:'Rhesi'},textfield:{title:'Priodweddau Maes Testun',name:'Enw',value:'Gwerth',charWidth:'Lled Nod',maxChars:'Uchafswm y Nodau',type:'Math',typeText:'Testun',typePass:'Cyfrinair'},hidden:{title:'Priodweddau Maes Cudd',name:'Enw',value:'Gwerth'},image:{title:'Priodweddau Delwedd',titleButton:'Priodweddau Botwm Delwedd',menu:'Priodweddau Delwedd',infoTab:'Gwyb Delwedd',btnUpload:"Anfon i'r Gweinydd",upload:'lanlwytho',alt:'Testun Amgen',width:'Lled',height:'Uchder',lockRatio:'Cloi Cymhareb',u
nlockRatio:'Unlock Ratio',resetSize:'Ailosod Maint',border:'Ymyl',hSpace:'BwlchLl',vSpace:'BwlchF',align:'Alinio',alignLeft:'Chwith',alignRight:'Dde',alertUrl:'Rhowch URL y ddelwedd',linkTab:'Dolen',button2Img:"Ydych am drawsffurfio'r botwm ddelwedd hwn ar ddelwedd syml?",img2Button:"Ydych am drawsffurfio'r ddelwedd hon ar fotwm delwedd?",urlMissing:"URL tarddle'r ddelwedd ar goll.",validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Priodweddau Flash',propertiesTab:'Priodweddau',title:'Priodweddau Flash',chkPlay:'AwtoChwarae',chkLoop:'Lwpio',chkMenu:'Galluogi Dewislen Flash',chkFull:'Caniatà u Sgrin Llawn',scale:'Graddfa',scaleAll:'Dangos pob',scaleNoBorder:'Dim Ymyl',scaleFit:'Ffit Union',access:'Mynediad Sgript',accessAlways:'Pob amser',accessSameDomain:"R'un parth",acc
essNever:'Byth',align:'Alinio',alignLeft:'Chwith',alignAbsBottom:'Gwaelod Abs',alignAbsMiddle:'Canol Abs',alignBaseline:'Baslinell',alignBottom:'Gwaelod',alignMiddle:'Canol',alignRight:'Dde',alignTextTop:'Testun Top',alignTop:'Top',quality:'Ansawdd',qualityBest:'Gorau',qualityHigh:'Uchel',qualityAutoHigh:'Uchel Awto',qualityMedium:'Canolig',qualityAutoLow:'Isel Awto',qualityLow:'Isel',windowModeWindow:'Ffenestr',windowModeOpaque:'Afloyw',windowModeTransparent:'Tryloyw',windowMode:'Modd ffenestr',flashvars:'Newidynnau ar gyfer Flash',bgcolor:'Lliw cefndir',width:'Lled',height:'Uchder',hSpace:'BwlchLl',vSpace:'BwlchF',validateSrc:'Ni all yr URL fod yn wag.',validateWidth:"Rhaid i'r Lled fod yn rhif.",validateHeight:"Rhaid i'r Uchder fod yn rhif.",validateHSpace:"Rhaid i'r BwlchLl fod yn rhif.",validateVSpace:"Rhaid i'r BwlchF fod yn rhif."},spellCheck:{toolbar:'Gwirio Sillafu',title:'Gwirio Sillafu',notAvailable:"Nid yw'r gwasanaeth hwn ar gael yn bresennol.",errorLoading:'Err
or loading application service host: %s.',notInDic:"Nid i'w gael yn y geiriadur",changeTo:'Newid i',btnIgnore:'Anwybyddu Un',btnIgnoreAll:'Anwybyddu Pob',btnReplace:'Amnewid Un',btnReplaceAll:'Amnewid Pob',btnUndo:'Dadwneud',noSuggestions:'- Dim awgrymiadau -',progress:'Gwirio sillafu yn ar y gweill...',noMispell:'Gwirio sillafu wedi gorffen: Dim camsillaf.',noChanges:'Gwirio sillafu wedi gorffen: Dim newidiadau',oneChange:'Gwirio sillafu wedi gorffen: Newidiwyd 1 gair',manyChanges:'Gwirio sillafu wedi gorffen: Newidiwyd %1 gair',ieSpellDownload:'Gwirydd sillafu heb ei arsefydlu. A ydych am ei lawrlwytho nawr?'},smiley:{toolbar:'Gwenoglun',title:'Mewnosod Gwenoglun',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'Elfen %1'},numberedlist:'Mewnosod/Tynnu Rhestr Rhifol',bulletedlist:'Mewnosod/Tynnu Rhestr Bwled',indent:"Cynyddu'r Mewnoliad",outdent:"Lleihau'r Mewnoliad",justify:{left:"Alinio i'r Chwith",center:"Alinio i'r Canol",right:"Alinio i'r Dde"
,block:'Aliniad Bloc'},blockquote:'Dyfyniad bloc',clipboard:{title:'Gludo',cutError:"Nid yw gosodiadau diogelwch eich porwr yn caniatà u'r golygydd i gynnal 'gweithredoedd torri' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).",copyError:"Nid yw gosodiadau diogelwch eich porwr yn caniatà u'r golygydd i gynnal 'gweithredoedd copïo' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).",pasteMsg:"Gludwch i mewn i'r blwch canlynol gan ddefnyddio'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.",securityMsg:"Oherwydd gosodiadau diogelwch eich porwr, nid yw'r porwr yn gallu ennill mynediad i'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i'r ffenestr hon.",pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Gludo o Word',title:'Gludo o Word',error:'It was not possible to clean up the pasted data due to an internal erro
r'},pasteText:{button:'Gludo fel testun plaen',title:'Gludo fel Testun Plaen'},templates:{button:'Templedi',title:'Templedi Cynnwys',options:'Template Options',insertOption:'Amnewid y cynnwys go iawn',selectPromptMsg:"Dewiswch dempled i'w agor yn y golygydd",emptyListMsg:"(Dim templedi wedi'u diffinio)"},showBlocks:'Dangos Blociau',stylesCombo:{label:'Arddulliau',panelTitle:'Formatting Styles',panelTitle1:'Arddulliau Bloc',panelTitle2:'Arddulliau Mewnol',panelTitle3:'Arddulliau Gwrthrych'},format:{label:'Fformat',panelTitle:'Fformat Paragraff',tag_p:'Normal',tag_pre:"Wedi'i Fformatio",tag_address:'Cyfeiriad',tag_h1:'Pennawd 1',tag_h2:'Pennawd 2',tag_h3:'Pennawd 3',tag_h4:'Pennawd 4',tag_h5:'Pennawd 5',tag_h6:'Pennawd 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTi
tleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Ffont',voiceLabel:'Ffont',panelTitle:"Enw'r Ffont"},fontSize:{label:'Maint',voiceLabel:'Maint y Ffont',panelTitle:'Maint y Ffont'},colorButton:{textColorTitle:'Lliw Testun',bgColorTitle:'Lliw Cefndir',panelTitle:'Colors',auto:'Awtomatig',more:'Mwy o Liwiau...'},colors:{'000':'Du',800000:'Marwn','8B4513':'Brown Cyfrwy','2F4F4F':'Llechen Tywyll','008080':'Corhwyad','000080':'Nefi','4B0082':'Indigo',696969:'Llwyd Pwl',B22222:'Bric Tân',A52A2A:'Brown',DAA520:'Rhoden Aur','006400':'Gwyrdd Tywyll','40E0D0':'Gwyrddlas','0000CD':'Glas Canolig',800080:'Porffor',808080:'Llwyd',F00:'Coch',FF8C00:'Oren Tywyll',FFD700:'Aur','008000':'Gwyrdd','0FF':'Cyan','00F':'Glas',EE82EE:'Fioled',A9A9A9:'Llwyd Tywyll',FFA07A:'Samwn Golau',FFA500:'Oren',FFFF00:'Melyn','00FF00':'Leim',AFEEEE:'Gwyrddlas Golau',ADD8E
6:'Glas Golau',DDA0DD:'Eirinen',D3D3D3:'Llwyd Golau',FFF0F5:'Gwrid Lafant',FAEBD7:'Gwyn Hynafol',FFFFE0:'Melyn Golau',F0FFF0:'Melwn Gwyrdd Golau',F0FFFF:'Aswr',F0F8FF:'Glas Alys',E6E6FA:'Lafant',FFF:'Gwyn'},scayt:{title:"Gwirio'r Sillafu Wrth Deipio",opera_title:'Not supported by Opera',enable:'Galluogi SCAYT',disable:'Analluogi SCAYT',about:'Ynghylch SCAYT',toggle:'Togl SCAYT',options:'Opsiynau',langs:'Ieithoedd',moreSuggestions:'Awgrymiadau pellach',ignore:'Anwybyddu',ignoreAll:'Anwybyddu pob',addWord:'Ychwanegu Gair',emptyDic:"Ni ddylai enw'r geiriadur fod yn wag.",optionsTab:'Opsiynau',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Ieithoedd',dictionariesTab:'Geiriaduron',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. Ho
wever, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Ynghylch'},about:{title:'Ynghylch CKEditor',dlgTitle:'Ynghylch CKEditor',moreInfo:"Am wybodaeth ynghylch trwyddedau, ewch i'n gwefan:",copy:'Hawlfraint © $1. Cedwir pob hawl.'},maximize:'Mwyhau',minimize:'Lleihau',fakeobjects:{anchor:'Angor',flash:'Animeiddiant Flash',div:'Toriad Tudalen',unknown:'Gwrthrych Anhysbys'},resize:'Llusgo i ailfeintio',colordialog:{title:'Dewis lliw',options:'Color Options',highlight:'Uwcholeuo',selected:'Dewiswyd',clear:'Clirio'},toolbarCollapse:"Cyfangu'r Bar Offer",toolbarExpand:"Ehangu'r Bar Offer",bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left
'}};
+CKEDITOR.lang['cy']={"dir":"ltr","editor":"Golygydd Testun Cyfoethog","common":{"editorHelp":"Gwasgwch ALT 0 am gymorth","browseServer":"Pori'r Gweinydd","url":"URL","protocol":"Protocol","upload":"Lanlwytho","uploadSubmit":"Anfon i'r Gweinydd","image":"Delwedd","flash":"Flash","form":"Ffurflen","checkbox":"Blwch ticio","radio":"Botwm Radio","textField":"Maes Testun","textarea":"Ardal Testun","hiddenField":"Maes Cudd","button":"Botwm","select":"Maes Dewis","imageButton":"Botwm Delwedd","notSet":"<heb osod>","id":"Id","name":"Name","langDir":"Cyfeiriad Iaith","langDirLtr":"Chwith i'r Dde (LTR)","langDirRtl":"Dde i'r Chwith (RTL)","langCode":"Cod Iaith","longDescr":"URL Disgrifiad Hir","cssClass":"Dosbarth Dalen Arddull","advisoryTitle":"Teitl Cynghorol","cssStyle":"Arddull","ok":"Iawn","cancel":"Diddymu","close":"Cau","preview":"Rhagolwg","resize":"Llusgo i ailfeintio","generalTab":"Cyffredinol","advancedTab":"Uwch","validateNumberFailed":"Nid yw'r gwerth hwn yn rhif.","confi
rmNewPage":"Byddwch yn colli unrhyw newidiadau i'r cynnwys sydd heb eu cadw. A ydych am barhau i lwytho tudalen newydd?","confirmCancel":"Mae rhai o'r opsiynau wedi'u newid. A ydych wir am gau'r deialog?","options":"Opsiynau","target":"Targed","targetNew":"Ffenest Newydd (_blank)","targetTop":"Ffenest ar y Brig (_top)","targetSelf":"Yr un Ffenest (_self)","targetParent":"Ffenest y Rhiant (_parent)","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","styles":"Arddull","cssClasses":"Dosbarthiadau Ffeil Ddiwyg","width":"Lled","height":"Uchder","align":"Alinio","alignLeft":"Chwith","alignRight":"Dde","alignCenter":"Canol","alignTop":"Brig","alignMiddle":"Canol","alignBottom":"Gwaelod","invalidValue":"Gwerth annilys.","invalidHeight":"Rhaid i'r Uchder fod yn rhif.","invalidWidth":"Rhaid i'r Lled fod yn rhif.","invalidCssLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad CSS dilys (px, %, in, cm, mm, em, ex, pt,
neu pc).","invalidHtmlLength":"Mae'n rhaid i'r gwerth ar gyfer maes \"%1\" fod yn rhif positif gyda neu heb uned fesuriad HTML dilys (px neu %).","invalidInlineStyle":"Mae'n rhaid i'r gwerth ar gyfer arddull mewn-llinell gynnwys un set neu fwy ar y fformat \"enw:gwerth\", wedi'u gwahanu gyda hanner colon.","cssLengthTooltip":"Rhowch rif ar gyfer gwerth mewn picsel neu rhif gydag uned CSS dilys (px, %, in, cm, mm, em, pt neu pc).","unavailable":"%1<span class=\"cke_accessibility\">, ddim ar gael</span>"},"about":{"copy":"Hawlfraint © $1. Cedwir pob hawl.","dlgTitle":"Ynghylch CKEditor","help":"Gwirio $1 am gymorth.","moreInfo":"Am wybodaeth ynghylch trwyddedau, ewch i'n gwefan:","title":"Ynghylch CKEditor","userGuide":"Canllawiau Defnyddiwr CKEditor"},"basicstyles":{"bold":"Bras","italic":"Italig","strike":"Llinell Trwyddo","subscript":"Is-sgript","superscript":"Uwchsgript","underline":"Tanlinellu"},"bidi":{"ltr":"Cyfeiriad testun o'r chwith i'r dde","rtl":"Cyfeiriad te
stun o'r dde i'r chwith"},"blockquote":{"toolbar":"Dyfyniad bloc"},"clipboard":{"copy":"Copïo","copyError":"Nid yw gosodiadau diogelwch eich porwr yn caniatà u'r golygydd i gynnal 'gweithredoedd copïo' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+C).","cut":"Torri","cutError":"Nid yw gosodiadau diogelwch eich porwr yn caniatà u'r golygydd i gynnal 'gweithredoedd torri' yn awtomatig. Defnyddiwch y bysellfwrdd (Ctrl/Cmd+X).","paste":"Gludo","pasteArea":"Ardal Gludo","pasteMsg":"Gludwch i mewn i'r blwch canlynol gan ddefnyddio'r bysellfwrdd (<strong>Ctrl/Cmd+V</strong>) a phwyso <strong>Iawn</strong>.","securityMsg":"Oherwydd gosodiadau diogelwch eich porwr, nid yw'r porwr yn gallu ennill mynediad i'r data ar y clipfwrdd yn uniongyrchol. Mae angen i chi ei ludo eto i'r ffenestr hon.","title":"Gludo"},"colorbutton":{"auto":"Awtomatig","bgColorTitle":"Lliw Cefndir","colors":{"000":"Du","800000":"Marwn","8B4513":"Brown Cyfrwy","2F4F4F":"Llechen Tywyll","008080":"Corhwyad","
000080":"Nefi","4B0082":"Indigo","696969":"Llwyd Pwl","B22222":"Bric Tân","A52A2A":"Brown","DAA520":"Rhoden Aur","006400":"Gwyrdd Tywyll","40E0D0":"Gwyrddlas","0000CD":"Glas Canolig","800080":"Porffor","808080":"Llwyd","F00":"Coch","FF8C00":"Oren Tywyll","FFD700":"Aur","008000":"Gwyrdd","0FF":"Cyan","00F":"Glas","EE82EE":"Fioled","A9A9A9":"Llwyd Tywyll","FFA07A":"Samwn Golau","FFA500":"Oren","FFFF00":"Melyn","00FF00":"Leim","AFEEEE":"Gwyrddlas Golau","ADD8E6":"Glas Golau","DDA0DD":"Eirinen","D3D3D3":"Llwyd Golau","FFF0F5":"Gwrid Lafant","FAEBD7":"Gwyn Hynafol","FFFFE0":"Melyn Golau","F0FFF0":"Melwn Gwyrdd Golau","F0FFFF":"Aswr","F0F8FF":"Glas Alys","E6E6FA":"Lafant","FFF":"Gwyn"},"more":"Mwy o Liwiau...","panelTitle":"Lliwiau","textColorTitle":"Lliw Testun"},"colordialog":{"clear":"Clirio","highlight":"Uwcholeuo","options":"Opsiynau Lliw","selected":"Dewiswyd","title":"Dewis lliw"},"templates":{"button":"Templedi","emptyListMsg":"(Dim templedi wedi'u diffinio)","insertOptio
n":"Amnewid y cynnwys go iawn","options":"Opsiynau Templedi","selectPromptMsg":"Dewiswch dempled i'w agor yn y golygydd","title":"Templedi Cynnwys"},"contextmenu":{"options":"Opsiynau Dewislen Cyd-destun"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Teitl Cynghorol","cssClassInputLabel":"Dosbarthiadau Ffeil Ddiwyg","edit":"Golygu Div","inlineStyleInputLabel":"Arddull Mewn Llinell","langDirLTRLabel":"Chwith i'r Dde (LTR)","langDirLabel":"Cyfeiriad yr Iaith","langDirRTLLabel":"Dde i'r Chwith (RTL)","languageCodeInputLabel":" Cod Iaith","remove":"Tynnu Div","styleSelectLabel":"Arddull","title":"Creu Cynhwysydd Div","toolbar":"Creu Cynhwysydd Div"},"toolbar":{"toolbarCollapse":"Cyfangu'r Bar Offer","toolbarExpand":"Ehangu'r Bar Offer","toolbarGroups":{"document":"Dogfen","clipboard":"Clipfwrdd/Dadwneud","editing":"Golygu","forms":"Ffurflenni","basicstyles":"Arddulliau Sylfaenol","paragraph":"Paragraff","links":"Dolenni","insert":"Mewnosod","styles":"Arddulliau","colors
":"Lliwiau","tools":"Offer"},"toolbars":"Bariau offer golygydd"},"elementspath":{"eleLabel":"Llwybr elfennau","eleTitle":"Elfen %1"},"list":{"bulletedlist":"Mewnosod/Tynnu Rhestr Bwled","numberedlist":"Mewnosod/Tynnu Rhestr Rhifol"},"indent":{"indent":"Cynyddu'r Mewnoliad","outdent":"Lleihau'r Mewnoliad"},"find":{"find":"Chwilio","findOptions":"Chwilio Opsiynau","findWhat":"Chwilio'r term:","matchCase":"Cyfateb i'r cas","matchCyclic":"Cyfateb cylchol","matchWord":"Cyfateb gair cyfan","notFoundMsg":"Nid oedd y testun wedi'i ddarganfod.","replace":"Amnewid","replaceAll":"Amnewid pob un","replaceSuccessMsg":"Amnewidiwyd %1 achlysur.","replaceWith":"Amnewid gyda:","title":"Chwilio ac Amnewid"},"fakeobjects":{"anchor":"Angor","flash":"Animeiddiant Flash","hiddenfield":"Maes Cudd","iframe":"IFrame","unknown":"Gwrthrych Anhysbys"},"flash":{"access":"Mynediad Sgript","accessAlways":"Pob amser","accessNever":"Byth","accessSameDomain":"R'un parth","alignAbsBottom":"Gwaelod Abs","align
AbsMiddle":"Canol Abs","alignBaseline":"Baslinell","alignTextTop":"Testun Top","bgcolor":"Lliw cefndir","chkFull":"Caniatà u Sgrin Llawn","chkLoop":"Lwpio","chkMenu":"Galluogi Dewislen Flash","chkPlay":"AwtoChwarae","flashvars":"Newidynnau ar gyfer Flash","hSpace":"BwlchLl","properties":"Priodweddau Flash","propertiesTab":"Priodweddau","quality":"Ansawdd","qualityAutoHigh":"Uchel Awto","qualityAutoLow":"Isel Awto","qualityBest":"Gorau","qualityHigh":"Uchel","qualityLow":"Isel","qualityMedium":"Canolig","scale":"Graddfa","scaleAll":"Dangos pob","scaleFit":"Ffit Union","scaleNoBorder":"Dim Ymyl","title":"Priodweddau Flash","vSpace":"BwlchF","validateHSpace":"Rhaid i'r BwlchLl fod yn rhif.","validateSrc":"Ni all yr URL fod yn wag.","validateVSpace":"Rhaid i'r BwlchF fod yn rhif.","windowMode":"Modd ffenestr","windowModeOpaque":"Afloyw","windowModeTransparent":"Tryloyw","windowModeWindow":"Ffenestr"},"font":{"fontSize":{"label":"Maint","voiceLabel":"Maint y Ffont","panelTitle":"
Maint y Ffont"},"label":"Ffont","panelTitle":"Enw'r Ffont","voiceLabel":"Ffont"},"forms":{"button":{"title":"Priodweddau Botymau","text":"Testun (Gwerth)","type":"Math","typeBtn":"Botwm","typeSbm":"Gyrru","typeRst":"Ailosod"},"checkboxAndRadio":{"checkboxTitle":"Priodweddau Blwch Ticio","radioTitle":"Priodweddau Botwm Radio","value":"Gwerth","selected":"Dewiswyd"},"form":{"title":"Priodweddau Ffurflen","menu":"Priodweddau Ffurflen","action":"Gweithred","method":"Dull","encoding":"Amgodio"},"hidden":{"title":"Priodweddau Maes Cudd","name":"Enw","value":"Gwerth"},"select":{"title":"Priodweddau Maes Dewis","selectInfo":"Gwyb Dewis","opAvail":"Opsiynau ar Gael","value":"Gwerth","size":"Maint","lines":"llinellau","chkMulti":"Caniatà u aml-ddewisiadau","opText":"Testun","opValue":"Gwerth","btnAdd":"Ychwanegu","btnModify":"Newid","btnUp":"Lan","btnDown":"Lawr","btnSetValue":"Gosod fel gwerth a ddewiswyd","btnDelete":"Dileu"},"textarea":{"title":"Priodweddau Ardal Testun","cols":"Co
lofnau","rows":"Rhesi"},"textfield":{"title":"Priodweddau Maes Testun","name":"Enw","value":"Gwerth","charWidth":"Lled Nod","maxChars":"Uchafswm y Nodau","type":"Math","typeText":"Testun","typePass":"Cyfrinair","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Fformat","panelTitle":"Fformat Paragraff","tag_address":"Cyfeiriad","tag_div":"Normal (DIV)","tag_h1":"Pennawd 1","tag_h2":"Pennawd 2","tag_h3":"Pennawd 3","tag_h4":"Pennawd 4","tag_h5":"Pennawd 5","tag_h6":"Pennawd 6","tag_p":"Normal","tag_pre":"Wedi'i Fformatio"},"horizontalrule":{"toolbar":"Mewnosod Llinell Lorweddol"},"iframe":{"border":"Dangos ymyl y ffrâm","noUrl":"Rhowch fath URL yr iframe","scrolling":"Galluogi bariau sgrolio","title":"Priodweddau IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Rhowch URL y ddelwedd","alt":"Testun Amgen","border":"Ymyl","btnUpload":"Anfon i'r Gweinydd","button2Img":"Ydych am drawsffurfio'r botwm ddelwedd hwn ar ddelwed
d syml?","hSpace":"BwlchLl","img2Button":"Ydych am drawsffurfio'r ddelwedd hon ar fotwm delwedd?","infoTab":"Gwyb Delwedd","linkTab":"Dolen","lockRatio":"Cloi Cymhareb","menu":"Priodweddau Delwedd","resetSize":"Ailosod Maint","title":"Priodweddau Delwedd","titleButton":"Priodweddau Botwm Delwedd","upload":"lanlwytho","urlMissing":"URL gwreiddiol y ddelwedd ar goll.","vSpace":"BwlchF","validateBorder":"Rhaid i'r ymyl fod yn gyfanrif.","validateHSpace":"Rhaid i'r HSpace fod yn gyfanrif.","validateVSpace":"Rhaid i'r VSpace fod yn gyfanrif."},"smiley":{"options":"Opsiynau Gwenogluniau","title":"Mewnosod Gwenoglun","toolbar":"Gwenoglun"},"justify":{"block":"Aliniad Bloc","center":"Alinio i'r Canol","left":"Alinio i'r Chwith","right":"Alinio i'r Dde"},"link":{"acccessKey":"Allwedd Mynediad","advanced":"Uwch","advisoryContentType":"Math y Cynnwys Cynghorol","advisoryTitle":"Teitl Cynghorol","anchor":{"toolbar":"Angor","menu":"Golygwch yr Angor","title":"Priodweddau'r Angor","name":
"Enw'r Angor","errorName":"Teipiwch enw'r angor","remove":"Tynnwch yr Angor"},"anchorId":"Gan Id yr Elfen","anchorName":"Gan Enw'r Angor","charset":"Set nodau'r Adnodd Cysylltiedig","cssClasses":"Dosbarthiadau Dalen Arddull","emailAddress":"Cyfeiriad E-Bost","emailBody":"Pwnc y Neges","emailSubject":"Testun y Message Subject","id":"Id","info":"Gwyb ar y Ddolen","langCode":"Cod Iaith","langDir":"Cyfeiriad Iaith","langDirLTR":"Chwith i'r Dde (LTR)","langDirRTL":"Dde i'r Chwith (RTL)","menu":"Golygu Dolen","name":"Enw","noAnchors":"(Dim angorau ar gael yn y ddogfen)","noEmail":"Teipiwch gyfeiriad yr e-bost","noUrl":"Teipiwch URL y ddolen","other":"<eraill>","popupDependent":"Dibynnol (Netscape)","popupFeatures":"Nodweddion Ffenestr Bop","popupFullScreen":"Sgrin Llawn (IE)","popupLeft":"Safle Chwith","popupLocationBar":"Bar Safle","popupMenuBar":"Dewislen","popupResizable":"Ailfeintiol","popupScrollBars":"Barrau Sgrolio","popupStatusBar":"Bar Statws","popupToolbar":"Bar Offer","
popupTop":"Safle Top","rel":"Perthynas","selectAnchor":"Dewiswch Angor","styles":"Arddull","tabIndex":"Indecs Tab","target":"Targed","targetFrame":"<ffrâm>","targetFrameName":"Enw Ffrâm y Targed","targetPopup":"<ffenestr bop>","targetPopupName":"Enw Ffenestr Bop","title":"Dolen","toAnchor":"Dolen at angor yn y testun","toEmail":"E-bost","toUrl":"URL","toolbar":"Dolen","type":"Math y Ddolen","unlink":"Datgysylltu","upload":"Lanlwytho"},"liststyle":{"armenian":"Rhifau Armeneg","bulletedTitle":"Priodweddau Rhestr Fwled","circle":"Cylch","decimal":"Degol (1, 2, 3, ayyb.)","decimalLeadingZero":"Degol â sero arweiniol (01, 02, 03, ayyb.)","disc":"Disg","georgian":"Rhifau Sioraidd (an, ban, gan, ayyb.)","lowerAlpha":"Alffa Is (a, b, c, d, e, ayyb.)","lowerGreek":"Groeg Is (alpha, beta, gamma, ayyb.)","lowerRoman":"Rhufeinig Is (i, ii, iii, iv, v, ayyb.)","none":"Dim","notset":"<heb osod>","numberedTitle":"Priodweddau Rhestr Rifol","square":"Sgwâr","start":"Dechrau","type":"Math
","upperAlpha":"Alffa Uwch (A, B, C, D, E, ayyb.)","upperRoman":"Rhufeinig Uwch (I, II, III, IV, V, ayyb.)","validateStartNumber":"Rhaid bod y rhif cychwynnol yn gyfanrif."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Mwyhau","minimize":"Lleihau"},"newpage":{"toolbar":"Tudalen newydd"},"pagebreak":{"alt":"Toriad Tudalen","toolbar":"Mewnosod Toriad Tudalen i Argraffu"},"pastetext":{"button":"Gludo fel testun plaen","title":"Gludo fel Testun Plaen"},"pastefromword":{"confirmCleanup":"Mae'r testun rydych chi am ludo wedi'i gopïo o Word. Ydych chi am ei lanhau cyn ei ludo?","error":"Doedd dim modd glanhau y data a ludwyd oherwydd gwall mewnol","title":"Gludo o Word","toolbar":"Gludo o Word"},"preview":{"preview":"Rhagolwg"},"print":{"toolbar":"Argraffu"},"removeformat":{"toolbar":"Tynnu Fformat"},"save":{"toolbar":"Cadw"},"selectall":{"toolbar":"Dewis Popeth"},"showblocks":{"toolbar":"Dangos Blociau"},"sourcearea":{"toolbar":"HTML"},"specialchar":{"opt
ions":"Opsiynau Nodau Arbennig","title":"Dewis Nod Arbennig","toolbar":"Mewnosod Nodau Arbennig"},"scayt":{"about":"Ynghylch SCAYT","aboutTab":"Ynghylch","addWord":"Ychwanegu Gair","allCaps":"Anwybyddu Geiriau Nodau Uwch i Gyd","dic_create":"Creu","dic_delete":"Dileu","dic_field_name":"Enw'r geiriadur","dic_info":"Ar y cychwyn, caiff y Geiriadur ei storio mewn Cwci. Er, mae terfyn ar faint cwcis. Pan fydd Gweiriadur Defnyddiwr yn tyfu tu hwnt i gyfyngiadau maint Cwci, caiff y geiriadur ei storio ar ein gweinydd ni. er mwyn storio eich geiriadur poersonol chi ar ein gweinydd, bydd angen i chi osod enw ar gyfer y geiriadur. Os oes geiriadur 'da chi ar ein gweinydd yn barod, teipiwch ei enw a chliciwch y botwm Adfer.","dic_rename":"Ailenwi","dic_restore":"Adfer","dictionariesTab":"Geiriaduron","disable":"Analluogi SCAYT","emptyDic":"Ni ddylai enw'r geiriadur fod yn wag.","enable":"Galluogi SCAYT","ignore":"Anwybyddu","ignoreAll":"Anwybyddu pob","ignoreDomainNames":"Anwybyddu En
wau Parth","langs":"Ieithoedd","languagesTab":"Ieithoedd","mixedCase":"Anwybyddu Geiriau â Chymysgedd Nodau Uwch ac Is","mixedWithDigits":"Anwybyddu Geiriau â Rhifau","moreSuggestions":"Awgrymiadau pellach","opera_title":"Heb ei gynnal gan Opera","options":"Opsiynau","optionsTab":"Opsiynau","title":"Gwirio'r Sillafu Wrth Deipio","toggle":"Togl SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Arddulliau","panelTitle":"Arddulliau Fformatio","panelTitle1":"Arddulliau Bloc","panelTitle2":"Arddulliau Mewnol","panelTitle3":"Arddulliau Gwrthrych"},"table":{"border":"Maint yr Ymyl","caption":"Pennawd","cell":{"menu":"Cell","insertBefore":"Mewnosod Cell Cyn","insertAfter":"Mewnosod Cell Ar Ãl","deleteCell":"Dileu Celloedd","merge":"Cyfuno Celloedd","mergeRight":"Cyfuno i'r Dde","mergeDown":"Cyfuno i Lawr","splitHorizontal":"Hollti'r Gell yn Lorweddol","splitVertical":"Hollti'r Gell yn Fertigol","title":"Priodweddau'r Gell","cellType":"Math y Gell","rowSpan":"Rhychwa
nt Rhesi","colSpan":"Rhychwant Colofnau","wordWrap":"Lapio Geiriau","hAlign":"Aliniad Llorweddol","vAlign":"Aliniad Fertigol","alignBaseline":"Baslinell","bgColor":"Lliw Cefndir","borderColor":"Lliw Ymyl","data":"Data","header":"Pennyn","yes":"Ie","no":"Na","invalidWidth":"Mae'n rhaid i led y gell fod yn rhif.","invalidHeight":"Mae'n rhaid i uchder y gell fod yn rhif.","invalidRowSpan":"Mae'n rhaid i rychwant y rhesi fod yn gyfanrif.","invalidColSpan":"Mae'n rhaid i rychwant y colofnau fod yn gyfanrif.","chooseColor":"Choose"},"cellPad":"Padio'r gell","cellSpace":"Bylchu'r gell","column":{"menu":"Colofn","insertBefore":"Mewnosod Colofn Cyn","insertAfter":"Mewnosod Colofn Ar Ãl","deleteColumn":"Dileu Colofnau"},"columns":"Colofnau","deleteTable":"Dileu Tabl","headers":"Penynnau","headersBoth":"Y Ddau","headersColumn":"Colofn gyntaf","headersNone":"Dim","headersRow":"Rhes gyntaf","invalidBorder":"Mae'n rhaid i faint yr ymyl fod yn rhif.","invalidCellPadding":"Mae'n rhaid i ba
diad y gell fod yn rhif positif.","invalidCellSpacing":"Mae'n rhaid i fylchiad y gell fod yn rhif positif.","invalidCols":"Mae'n rhaid cael o leiaf un golofn.","invalidHeight":"Mae'n rhaid i uchder y tabl fod yn rhif.","invalidRows":"Mae'n rhaid cael o leiaf un rhes.","invalidWidth":"Mae'n rhaid i led y tabl fod yn rhif.","menu":"Nodweddion Tabl","row":{"menu":"Rhes","insertBefore":"Mewnosod Rhes Cyn","insertAfter":"Mewnosod Rhes Ar Ãl","deleteRow":"Dileu Rhesi"},"rows":"Rhesi","summary":"Crynodeb","title":"Nodweddion Tabl","toolbar":"Tabl","widthPc":"y cant","widthPx":"picsel","widthUnit":"uned lled"},"undo":{"redo":"Ailadrodd","undo":"Dadwneud"},"wsc":{"btnIgnore":"Anwybyddu Un","btnIgnoreAll":"Anwybyddu Pob","btnReplace":"Amnewid Un","btnReplaceAll":"Amnewid Pob","btnUndo":"Dadwneud","changeTo":"Newid i","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Gwirydd sillafu heb ei arsefydlu. A ydych am ei lawrlwytho nawr?","manyChanges":"Gwirio s
illafu wedi gorffen: Newidiwyd %1 gair","noChanges":"Gwirio sillafu wedi gorffen: Dim newidiadau","noMispell":"Gwirio sillafu wedi gorffen: Dim camsillaf.","noSuggestions":"- Dim awgrymiadau -","notAvailable":"Nid yw'r gwasanaeth hwn ar gael yn bresennol.","notInDic":"Nid i'w gael yn y geiriadur","oneChange":"Gwirio sillafu wedi gorffen: Newidiwyd 1 gair","progress":"Gwirio sillafu yn ar y gweill...","title":"Gwirio Sillafu","toolbar":"Gwirio Sillafu"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/da.js b/share/static/RichText/lang/da.js
index 5b096be..e51c622 100644
--- a/share/static/RichText/lang/da.js
+++ b/share/static/RichText/lang/da.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.da={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Kilde',newPage:'Ny side',save:'Gem',preview:'Vis eksempel',cut:'Klip',copy:'Kopiér',paste:'Indsæt',print:'Udskriv',underline:'Understreget',bold:'Fed',italic:'Kursiv',selectAll:'Vælg alt',removeFormat:'Fjern formatering',strike:'Gennemstreget',subscript:'Sænket skrift',superscript:'Hævet skrift',horizontalrule:'Indsæt vandret streg',pagebreak:'Indsæt sideskift',unlink:'Fjern hyperlink',undo:'Fortryd',redo:'Annullér fortryd',common:{browseServer:'Gennemse...',url:'URL',protocol:'Protokol',upload:'Upload',uploadSubmit:'Upload',image:'Indsæt billede',flash:'Indsæt Flash',form:'Indsæt formular',checkbox:'Indsæt afkrydsningsfelt',radio:'Indsæt alternativknap',textField:'Indsæt tekstfelt',textarea:'Indsæt tekstboks',hiddenField:'Indsæt skjult felt',button:'Indsæt knap',select:'Indsæt liste',imageButton:'Indsæt billedknap',notS
et:'<intet valgt>',id:'Id',name:'Navn',langDir:'Tekstretning',langDirLtr:'Fra venstre mod højre (LTR)',langDirRtl:'Fra højre mod venstre (RTL)',langCode:'Sprogkode',longDescr:'Udvidet beskrivelse',cssClass:'Typografiark (CSS)',advisoryTitle:'Titel',cssStyle:'Typografi (CSS)',ok:'OK',cancel:'Annullér',close:'Close',preview:'Preview',generalTab:'Generelt',advancedTab:'Avanceret',validateNumberFailed:'Værdien er ikke et tal.',confirmNewPage:'Alt indhold, der ikke er blevet gemt, vil gå tabt. Er du sikker på, at du vil indlæse en ny side?',confirmCancel:'Nogle af indstillingerne er blevet ændret. Er du sikker på, at du vil lukke vinduet?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, ikk
e tilgængelig</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Indsæt symbol',title:'Vælg symbol',options:'Special Character Options'},link:{toolbar:'Indsæt/redigér hyperlink',other:'<anden>',menu:'Redigér hyperlink',title:'Egenskaber for hyperlink',info:'Generelt',target:'Mål',upload:'Upload',advanced:'Avanceret',type:'Type',toUrl:'URL',toAnchor:'Bogmærke på denne side',toEmail:'E-mail',targetFrame:'<ramme>',targetPopup:'<popup vindue>',targetFrameName:'Destinationsvinduets navn',targetPopupName:'Popup vinduets navn',popupFeatures:'Egenskaber for popup',popupResizable:'Justérbar',popupStatusBar:'Statuslinje',popupLocationBar:'Adresselinje',popupToolbar:'Værktøjslinje',popupMenuBar:'Menulinje',popupFullScreen:'Fuld skærm (IE)',popupScrollBars:'Scrollbar',popupDependent:'Koblet/dependent (Netscape)',popupWidth:'Bredde',popupLeft:'Position fra venstre',popupHeight:'Højde',popupTop:'Position fra toppen',id:'Id',langDir:'Tekstretning',lan
gDirLTR:'Fra venstre mod højre (LTR)',langDirRTL:'Fra højre mod venstre (RTL)',acccessKey:'Genvejstast',name:'Navn',langCode:'Tekstretning',tabIndex:'Tabulator indeks',advisoryTitle:'Titel',advisoryContentType:'Indholdstype',cssClasses:'Typografiark',charset:'Tegnsæt',styles:'Typografi',selectAnchor:'Vælg et anker',anchorName:'Efter anker navn',anchorId:'Efter element Id',emailAddress:'E-mail adresse',emailSubject:'Emne',emailBody:'Besked',noAnchors:'(Ingen bogmærker i dokumentet)',noUrl:'Indtast hyperlink URL!',noEmail:'Indtast e-mail adresse!'},anchor:{toolbar:'Indsæt/redigér bogmærke',menu:'Egenskaber for bogmærke',title:'Egenskaber for bogmærke',name:'Bogmærke navn',errorName:'Indtast bogmærke navn'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'
Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Søg og erstat',find:'Søg',replace:'Erstat',findWhat:'Søg efter:',replaceWith:'Erstat med:',notFoundMsg:'Søgeteksten blev ikke fundet',matchCase:'Forskel på store og små bogstaver',matchWord:'Kun hele ord',matchCyclic:'Match cyklisk',replaceAll:'Erstat alle',replaceSuccessMsg:'%1 forekomst(er) erstattet.'},table:{toolbar:'Tabel',title:'Egenskaber for tabel',menu:'Egenskaber for tabel',deleteTable:'Slet tabel',rows:'Rækker',columns:'Kolonner',border:'Rammebredde',align:'Justering',alignLeft:'Venstrestillet',alignCenter:'Centreret',alignRigh
t:'Højrestillet',width:'Bredde',widthPx:'pixels',widthPc:'procent',widthUnit:'width unit',height:'Højde',cellSpace:'Celleafstand',cellPad:'Cellemargen',caption:'Titel',summary:'Resumé',headers:'Header',headersNone:'Ingen',headersColumn:'Første kolonne',headersRow:'Første række',headersBoth:'Begge',invalidRows:'Antallet af rækker skal være større end 0.',invalidCols:'Antallet af kolonner skal være større end 0.',invalidBorder:'Rammetykkelse skal være et tal.',invalidWidth:'Tabelbredde skal være et tal.',invalidHeight:'Tabelhøjde skal være et tal.',invalidCellSpacing:'Celleafstand skal være et tal.',invalidCellPadding:'Cellemargen skal være et tal.',cell:{menu:'Celle',insertBefore:'Indsæt celle før',insertAfter:'Indsæt celle efter',deleteCell:'Slet celle',merge:'Flet celler',mergeRight:'Flet til højre',mergeDown:'Flet nedad',splitHorizontal:'Del celle vandret',splitVertical:'Del celle lodret',title:'Celleegenskaber',cellType:'Celletype',rowSpan:'Række spa
n (rows span)',colSpan:'Kolonne span (columns span)',wordWrap:'Tekstombrydning',hAlign:'Vandret justering',vAlign:'Lodret justering',alignTop:'Top',alignMiddle:'Midt',alignBottom:'Bund',alignBaseline:'Grundlinje',bgColor:'Baggrundsfarve',borderColor:'Rammefarve',data:'Data',header:'Header',yes:'Ja',no:'Nej',invalidWidth:'Cellebredde skal være et tal.',invalidHeight:'Cellehøjde skal være et tal.',invalidRowSpan:'Række span skal være et heltal.',invalidColSpan:'Kolonne span skal være et heltal.',chooseColor:'Choose'},row:{menu:'Række',insertBefore:'Indsæt række før',insertAfter:'Indsæt række efter',deleteRow:'Slet række'},column:{menu:'Kolonne',insertBefore:'Indsæt kolonne før',insertAfter:'Indsæt kolonne efter',deleteColumn:'Slet kolonne'}},button:{title:'Egenskaber for knap',text:'Tekst',type:'Type',typeBtn:'Knap',typeSbm:'Send',typeRst:'Nulstil'},checkboxAndRadio:{checkboxTitle:'Egenskaber for afkrydsningsfelt',radioTitle:'Egenskaber for alternativknap',valu
e:'Værdi',selected:'Valgt'},form:{title:'Egenskaber for formular',menu:'Egenskaber for formular',action:'Handling',method:'Metode',encoding:'Kodning (encoding)'},select:{title:'Egenskaber for liste',selectInfo:'Generelt',opAvail:'Valgmuligheder',value:'Værdi',size:'Størrelse',lines:'Linjer',chkMulti:'Tillad flere valg',opText:'Tekst',opValue:'Værdi',btnAdd:'Tilføj',btnModify:'Redigér',btnUp:'Op',btnDown:'Ned',btnSetValue:'Sæt som valgt',btnDelete:'Slet'},textarea:{title:'Egenskaber for tekstboks',cols:'Kolonner',rows:'Rækker'},textfield:{title:'Egenskaber for tekstfelt',name:'Navn',value:'Værdi',charWidth:'Bredde (tegn)',maxChars:'Max. antal tegn',type:'Type',typeText:'Tekst',typePass:'Adgangskode'},hidden:{title:'Egenskaber for skjult felt',name:'Navn',value:'Værdi'},image:{title:'Egenskaber for billede',titleButton:'Egenskaber for billedknap',menu:'Egenskaber for billede',infoTab:'Generelt',btnUpload:'Upload',upload:'Upload',alt:'Alternativ tekst',width:'Bredde',
height:'Højde',lockRatio:'Lås størrelsesforhold',unlockRatio:'Unlock Ratio',resetSize:'Nulstil størrelse',border:'Ramme',hSpace:'Vandret margen',vSpace:'Lodret margen',align:'Justering',alignLeft:'Venstre',alignRight:'Højre',alertUrl:'Indtast stien til billedet',linkTab:'Hyperlink',button2Img:'Vil du lave billedknappen om til et almindeligt billede?',img2Button:'Vil du lave billedet om til en billedknap?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Egenskaber for Flash',propertiesTab:'Egenskaber',title:'Egenskaber for Flash',chkPlay:'Automatisk afspilning',chkLoop:'Gentagelse',chkMenu:'Vis Flash menu',chkFull:'Tillad fuldskærm',scale:'Skalér',scaleAll:'Vis alt',scaleNoBorder:'Ingen ramme',scaleFit:'Tilpas størrelse'
,access:'Script adgang',accessAlways:'Altid',accessSameDomain:'Samme domæne',accessNever:'Aldrig',align:'Justering',alignLeft:'Venstre',alignAbsBottom:'Absolut nederst',alignAbsMiddle:'Absolut centreret',alignBaseline:'Grundlinje',alignBottom:'Nederst',alignMiddle:'Centreret',alignRight:'Højre',alignTextTop:'Toppen af teksten',alignTop:'Ãverst',quality:'Kvalitet',qualityBest:'Bedste',qualityHigh:'Høj',qualityAutoHigh:'Auto høj',qualityMedium:'Medium',qualityAutoLow:'Auto lav',qualityLow:'Lav',windowModeWindow:'Vindue',windowModeOpaque:'Gennemsigtig (opaque)',windowModeTransparent:'Transparent',windowMode:'Vinduestilstand',flashvars:'Variabler for Flash',bgcolor:'Baggrundsfarve',width:'Bredde',height:'Højde',hSpace:'Vandret margen',vSpace:'Lodret margen',validateSrc:'Indtast hyperlink URL!',validateWidth:'Bredde skal være et tal.',validateHeight:'Højde skal være et tal.',validateHSpace:'Vandret margen skal være et tal.',validateVSpace:'Lodret margen skal være et ta
l.'},spellCheck:{toolbar:'Stavekontrol',title:'Stavekontrol',notAvailable:'Stavekontrol er desværre ikke tilgængelig.',errorLoading:'Fejl ved indlæsning af host: %s.',notInDic:'Ikke i ordbogen',changeTo:'Forslag',btnIgnore:'Ignorér',btnIgnoreAll:'Ignorér alle',btnReplace:'Erstat',btnReplaceAll:'Erstat alle',btnUndo:'Tilbage',noSuggestions:'(ingen forslag)',progress:'Stavekontrollen arbejder...',noMispell:'Stavekontrol færdig: Ingen fejl fundet',noChanges:'Stavekontrol færdig: Ingen ord ændret',oneChange:'Stavekontrol færdig: Et ord ændret',manyChanges:'Stavekontrol færdig: %1 ord ændret',ieSpellDownload:'Stavekontrol ikke installeret. Vil du installere den nu?'},smiley:{toolbar:'Smiley',title:'Vælg smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Talopstilling',bulletedlist:'Punktopstilling',indent:'Forøg indrykning',outdent:'Formindsk indrykning',justify:{left:'Venstrestillet',center:'Centreret',righ
t:'Højrestillet',block:'Lige margener'},blockquote:'Blokcitat',clipboard:{title:'Indsæt',cutError:'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).',copyError:'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).',pasteMsg:'Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.',securityMsg:'Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?',toolbar:'Indsæt fra Word',title:'Indsæt fra Word',error:'It was not p
ossible to clean up the pasted data due to an internal error'},pasteText:{button:'Indsæt som ikke-formateret tekst',title:'Indsæt som ikke-formateret tekst'},templates:{button:'Skabeloner',title:'Indholdsskabeloner',options:'Template Options',insertOption:'Erstat det faktiske indhold',selectPromptMsg:'Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):',emptyListMsg:'(Der er ikke defineret nogen skabelon)'},showBlocks:'Vis afsnitsmærker',stylesCombo:{label:'Typografi',panelTitle:'Formatting Styles',panelTitle1:'Block typografi',panelTitle2:'Inline typografi',panelTitle3:'Object typografi'},format:{label:'Formatering',panelTitle:'Formatering',tag_p:'Normal',tag_pre:'Formateret',tag_address:'Adresse',tag_h1:'Overskrift 1',tag_h2:'Overskrift 2',tag_h3:'Overskrift 3',tag_h4:'Overskrift 4',tag_h5:'Overskrift 5',tag_h6:'Overskrift 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel
:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Skrifttype',voiceLabel:'Skrifttype',panelTitle:'Skrifttype'},fontSize:{label:'Skriftstørrelse',voiceLabel:'Skriftstørrelse',panelTitle:'Skriftstørrelse'},colorButton:{textColorTitle:'Tekstfarve',bgColorTitle:'Baggrundsfarve',panelTitle:'Colors',auto:'Automatisk',more:'Flere farver...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','0
08000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Stavekontrol mens du skriver',opera_title:'Not supported by Opera',enable:'Aktivér SCAYT',disable:'Deaktivér SCAYT',about:'Om SCAYT',toggle:'Skift/toggle SCAYT',options:'Indstillinger',langs:'Sprog',moreSuggestions:'Flere forslag',ignore:'Ignorér',ignoreAll:'Ignorér alle',addWord:'Tilføj ord',emptyDic:'Ordbogsnavn må ikke være tom.',optionsTab:'Indstillinger',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Sprog',dictionariesTab:'Ordbøger',dic_field_name:'Dictiona
ry name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Om'},about:{title:'Om CKEditor',dlgTitle:'Om CKEditor',moreInfo:'For informationer omkring licens, se venligst vores hjemmeside (pÃ¥ engelsk):',copy:'Copyright © $1. Alle rettigheder forbeholdes.'},maximize:'Maximér',minimize:'Minimize',fakeobjects:{anchor:'Anker',flash:'Flashanimation',div:'Sideskift',unknown:'Ukendt objekt'},resize:'Træk for at skalere',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color
',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['da']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Tryk ALT 0 for hjælp","browseServer":"Gennemse...","url":"URL","protocol":"Protokol","upload":"Upload","uploadSubmit":"Upload","image":"Indsæt billede","flash":"Indsæt Flash","form":"Indsæt formular","checkbox":"Indsæt afkrydsningsfelt","radio":"Indsæt alternativknap","textField":"Indsæt tekstfelt","textarea":"Indsæt tekstboks","hiddenField":"Indsæt skjult felt","button":"Indsæt knap","select":"Indsæt liste","imageButton":"Indsæt billedknap","notSet":"<intet valgt>","id":"Id","name":"Navn","langDir":"Tekstretning","langDirLtr":"Fra venstre mod højre (LTR)","langDirRtl":"Fra højre mod venstre (RTL)","langCode":"Sprogkode","longDescr":"Udvidet beskrivelse","cssClass":"Typografiark (CSS)","advisoryTitle":"Titel","cssStyle":"Typografi (CSS)","ok":"OK","cancel":"Annullér","close":"Luk","preview":"Forhåndsvisning","resize":"Træk for at skalere","generalTab":"Generelt","advancedTab
":"Avanceret","validateNumberFailed":"Værdien er ikke et tal.","confirmNewPage":"Alt indhold, der ikke er blevet gemt, vil gÃ¥ tabt. Er du sikker pÃ¥, at du vil indlæse en ny side?","confirmCancel":"Nogle af indstillingerne er blevet ændret. Er du sikker pÃ¥, at du vil lukke vinduet?","options":"Vis muligheder","target":"MÃ¥l","targetNew":"Nyt vindue (_blank)","targetTop":"Ãverste vindue (_top)","targetSelf":"Samme vindue (_self)","targetParent":"Samme vindue (_parent)","langDirLTR":"Venstre til højre (LTR)","langDirRTL":"Højre til venstre (RTL)","styles":"Style","cssClasses":"Stylesheetklasser","width":"Bredde","height":"Højde","align":"Justering","alignLeft":"Venstre","alignRight":"Højre","alignCenter":"Centreret","alignTop":"Ãverst","alignMiddle":"Centreret","alignBottom":"Nederst","invalidValue":"Invalid value.","invalidHeight":"Højde skal være et tal.","invalidWidth":"Bredde skal være et tal.","invalidCssLength":"Værdien specificeret for \"%1\" feltet skal
være et positivt nummer med eller uden en CSS mÃ¥leenhed (px, %, in, cm, mm, em, ex, pt, eller pc).","invalidHtmlLength":"Værdien specificeret for \"%1\" feltet skal være et positivt nummer med eller uden en CSS mÃ¥leenhed (px eller %).","invalidInlineStyle":"Værdien specificeret for inline style skal indeholde en eller flere elementer med et format som \"name:value\", separeret af semikoloner","cssLengthTooltip":"Indsæt en numerisk værdi i pixel eller nummer med en gyldig CSS værdi (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikke tilgængelig</span>"},"about":{"copy":"Copyright © $1. Alle rettigheder forbeholdes.","dlgTitle":"Om CKEditor","help":"Se $1 for at fÃ¥ hjælp.","moreInfo":"For informationer omkring licens, se venligst vores hjemmeside (pÃ¥ engelsk):","title":"Om CKEditor","userGuide":"CKEditor-brugermanual"},"basicstyles":{"bold":"Fed","italic":"Kursiv","strike":"Gennemstreget","subscript":"Sænket s
krift","superscript":"Hævet skrift","underline":"Understreget"},"bidi":{"ltr":"Tekstretning fra venstre til højre","rtl":"Tekstretning fra højre til venstre"},"blockquote":{"toolbar":"Blokcitat"},"clipboard":{"copy":"Kopiér","copyError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at kopiere teksten (Ctrl/Cmd+C).","cut":"Klip","cutError":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Brug i stedet tastaturet til at klippe teksten (Ctrl/Cmd+X).","paste":"Indsæt","pasteArea":"Indsæt område","pasteMsg":"Indsæt i feltet herunder (<STRONG>Ctrl/Cmd+V</STRONG>) og klik på <STRONG>OK</STRONG>.","securityMsg":"Din browsers sikkerhedsindstillinger tillader ikke editoren at få automatisk adgang til udklipsholderen.<br><br>Du skal indsætte udklipsholderens indhold i dette vindue igen.","title":"Indsæt"},"colorbut
ton":{"auto":"Automatisk","bgColorTitle":"Baggrundsfarve","colors":{"000":"Sort","800000":"Mørkerød","8B4513":"Mørk orange","2F4F4F":"Dark Slate Grå","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Mørkegrå","B22222":"Scarlet / Rød","A52A2A":"Brun","DAA520":"Guld","006400":"Mørkegrøn","40E0D0":"Tyrkis","0000CD":"Mellemblå","800080":"Lilla","808080":"Grå","F00":"Rød","FF8C00":"Mørk orange","FFD700":"Guld","008000":"Grøn","0FF":"Cyan","00F":"Blå","EE82EE":"Violet","A9A9A9":"Matgrå","FFA07A":"Laksefarve","FFA500":"Orange","FFFF00":"Gul","00FF00":"Lime","AFEEEE":"Mat tyrkis","ADD8E6":"Lyseblå","DDA0DD":"Plum","D3D3D3":"Lysegrå","FFF0F5":"Lavender Blush","FAEBD7":"Antikhvid","FFFFE0":"Lysegul","F0FFF0":"Gul / Beige","F0FFFF":"Himmeblå","F0F8FF":"Alice blue","E6E6FA":"Lavendel","FFF":"Hvid"},"more":"Flere farver...","panelTitle":"Farver","textColorTitle":"Tekstfarve"},"colordialog":{"clear":"Nulstil","highlight":"Markér","options":"Farvemuligheder",
"selected":"Valgt farve","title":"Vælg farve"},"templates":{"button":"Skabeloner","emptyListMsg":"(Der er ikke defineret nogen skabelon)","insertOption":"Erstat det faktiske indhold","options":"Skabelon muligheder","selectPromptMsg":"Vælg den skabelon, som skal åbnes i editoren (nuværende indhold vil blive overskrevet):","title":"Indholdsskabeloner"},"contextmenu":{"options":"Muligheder for hjælpemenu"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Vejledende titel","cssClassInputLabel":"Typografiark","edit":"Rediger Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Venstre til højre (LTR)","langDirLabel":"Sprogretning","langDirRTLLabel":"Højre til venstre (RTL)","languageCodeInputLabel":" Sprogkode","remove":"Slet Div","styleSelectLabel":"Style","title":"Opret Div Container","toolbar":"Opret Div Container"},"toolbar":{"toolbarCollapse":"Sammenklap værktøjslinje","toolbarExpand":"Udvid værktøjslinje","toolbarGroups":{"document":"Dokument","cli
pboard":"Udklipsholder/Fortryd","editing":"Redigering","forms":"Formularer","basicstyles":"Basis styles","paragraph":"Paragraf","links":"Links","insert":"Indsæt","styles":"Typografier","colors":"Farver","tools":"Værktøjer"},"toolbars":"Editors værktøjslinjer"},"elementspath":{"eleLabel":"Sti på element","eleTitle":"%1 element"},"list":{"bulletedlist":"Punktopstilling","numberedlist":"Talopstilling"},"indent":{"indent":"Forøg indrykning","outdent":"Formindsk indrykning"},"find":{"find":"Søg","findOptions":"Find muligheder","findWhat":"Søg efter:","matchCase":"Forskel på store og små bogstaver","matchCyclic":"Match cyklisk","matchWord":"Kun hele ord","notFoundMsg":"Søgeteksten blev ikke fundet","replace":"Erstat","replaceAll":"Erstat alle","replaceSuccessMsg":"%1 forekomst(er) erstattet.","replaceWith":"Erstat med:","title":"Søg og erstat"},"fakeobjects":{"anchor":"Anker","flash":"Flashanimation","hiddenfield":"Skjult felt","iframe":"Iframe","unknown":"Ukendt obje
kt"},"flash":{"access":"Scriptadgang","accessAlways":"Altid","accessNever":"Aldrig","accessSameDomain":"Samme domæne","alignAbsBottom":"Absolut nederst","alignAbsMiddle":"Absolut centreret","alignBaseline":"Grundlinje","alignTextTop":"Toppen af teksten","bgcolor":"Baggrundsfarve","chkFull":"Tillad fuldskærm","chkLoop":"Gentagelse","chkMenu":"Vis Flash-menu","chkPlay":"Automatisk afspilning","flashvars":"Variabler for Flash","hSpace":"Vandret margen","properties":"Egenskaber for Flash","propertiesTab":"Egenskaber","quality":"Kvalitet","qualityAutoHigh":"Auto høj","qualityAutoLow":"Auto lav","qualityBest":"Bedste","qualityHigh":"Høj","qualityLow":"Lav","qualityMedium":"Medium","scale":"Skalér","scaleAll":"Vis alt","scaleFit":"Tilpas størrelse","scaleNoBorder":"Ingen ramme","title":"Egenskaber for Flash","vSpace":"Lodret margen","validateHSpace":"Vandret margen skal være et tal.","validateSrc":"Indtast hyperlink URL!","validateVSpace":"Lodret margen skal være et tal.","
windowMode":"Vinduestilstand","windowModeOpaque":"Gennemsigtig (opaque)","windowModeTransparent":"Transparent","windowModeWindow":"Vindue"},"font":{"fontSize":{"label":"Skriftstørrelse","voiceLabel":"Skriftstørrelse","panelTitle":"Skriftstørrelse"},"label":"Skrifttype","panelTitle":"Skrifttype","voiceLabel":"Skrifttype"},"forms":{"button":{"title":"Egenskaber for knap","text":"Tekst","type":"Type","typeBtn":"Knap","typeSbm":"Send","typeRst":"Nulstil"},"checkboxAndRadio":{"checkboxTitle":"Egenskaber for afkrydsningsfelt","radioTitle":"Egenskaber for alternativknap","value":"Værdi","selected":"Valgt"},"form":{"title":"Egenskaber for formular","menu":"Egenskaber for formular","action":"Handling","method":"Metode","encoding":"Kodning (encoding)"},"hidden":{"title":"Egenskaber for skjult felt","name":"Navn","value":"Værdi"},"select":{"title":"Egenskaber for liste","selectInfo":"Generelt","opAvail":"Valgmuligheder","value":"Værdi","size":"Størrelse","lines":"Linjer","chkMul
ti":"Tillad flere valg","opText":"Tekst","opValue":"Værdi","btnAdd":"Tilføj","btnModify":"Redigér","btnUp":"Op","btnDown":"Ned","btnSetValue":"Sæt som valgt","btnDelete":"Slet"},"textarea":{"title":"Egenskaber for tekstboks","cols":"Kolonner","rows":"Rækker"},"textfield":{"title":"Egenskaber for tekstfelt","name":"Navn","value":"Værdi","charWidth":"Bredde (tegn)","maxChars":"Max. antal tegn","type":"Type","typeText":"Tekst","typePass":"Adgangskode","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formatering","panelTitle":"Formatering","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formateret"},"horizontalrule":{"toolbar":"Indsæt vandret streg"},"iframe":{"border":"Vis kant på rammen","noUrl":"Venligst indsæt URL på iframen","scrolling"
:"Aktiver scrollbars","title":"Iframe egenskaber","toolbar":"Iframe"},"image":{"alertUrl":"Indtast stien til billedet","alt":"Alternativ tekst","border":"Ramme","btnUpload":"Upload fil til serveren","button2Img":"Vil du lave billedknappen om til et almindeligt billede?","hSpace":"Vandret margen","img2Button":"Vil du lave billedet om til en billedknap?","infoTab":"Generelt","linkTab":"Hyperlink","lockRatio":"Lås størrelsesforhold","menu":"Egenskaber for billede","resetSize":"Nulstil størrelse","title":"Egenskaber for billede","titleButton":"Egenskaber for billedknap","upload":"Upload","urlMissing":"Kilde på billed-URL mangler","vSpace":"Lodret margen","validateBorder":"Kant skal være et helt nummer.","validateHSpace":"HSpace skal være et helt nummer.","validateVSpace":"VSpace skal være et helt nummer."},"smiley":{"options":"Smileymuligheder","title":"Vælg smiley","toolbar":"Smiley"},"justify":{"block":"Lige margener","center":"Centreret","left":"Venstrestillet","right
":"Højrestillet"},"link":{"acccessKey":"Genvejstast","advanced":"Avanceret","advisoryContentType":"Indholdstype","advisoryTitle":"Titel","anchor":{"toolbar":"Indsæt/redigér bogmærke","menu":"Egenskaber for bogmærke","title":"Egenskaber for bogmærke","name":"Bogmærkenavn","errorName":"Indtast bogmærkenavn","remove":"Fjern bogmærke"},"anchorId":"Efter element-Id","anchorName":"Efter ankernavn","charset":"Tegnsæt","cssClasses":"Typografiark","emailAddress":"E-mailadresse","emailBody":"Besked","emailSubject":"Emne","id":"Id","info":"Generelt","langCode":"Tekstretning","langDir":"Tekstretning","langDirLTR":"Fra venstre mod højre (LTR)","langDirRTL":"Fra højre mod venstre (RTL)","menu":"Redigér hyperlink","name":"Navn","noAnchors":"(Ingen bogmærker i dokumentet)","noEmail":"Indtast e-mailadresse!","noUrl":"Indtast hyperlink-URL!","other":"<anden>","popupDependent":"Koblet/dependent (Netscape)","popupFeatures":"Egenskaber for popup","popupFullScreen":"Fuld skærm (IE)
","popupLeft":"Position fra venstre","popupLocationBar":"Adresselinje","popupMenuBar":"Menulinje","popupResizable":"Justérbar","popupScrollBars":"Scrollbar","popupStatusBar":"Statuslinje","popupToolbar":"Værktøjslinje","popupTop":"Position fra toppen","rel":"Relation","selectAnchor":"Vælg et anker","styles":"Typografi","tabIndex":"Tabulatorindeks","target":"Mål","targetFrame":"<ramme>","targetFrameName":"Destinationsvinduets navn","targetPopup":"<popup vindue>","targetPopupName":"Popupvinduets navn","title":"Egenskaber for hyperlink","toAnchor":"Bogmærke på denne side","toEmail":"E-mail","toUrl":"URL","toolbar":"Indsæt/redigér hyperlink","type":"Type","unlink":"Fjern hyperlink","upload":"Upload"},"liststyle":{"armenian":"Armensk nummering","bulletedTitle":"Værdier for cirkelpunktopstilling","circle":"Cirkel","decimal":"Decimal (1, 2, 3, osv.)","decimalLeadingZero":"Decimaler med 0 først (01, 02, 03, etc.)","disc":"Værdier for diskpunktopstilling","georgian":"Geor
giansk nummering (an, ban, gan, etc.)","lowerAlpha":"Små alfabet (a, b, c, d, e, etc.)","lowerGreek":"Små græsk (alpha, beta, gamma, etc.)","lowerRoman":"Små romerske (i, ii, iii, iv, v, etc.)","none":"Ingen","notset":"<ikke defineret>","numberedTitle":"Egenskaber for nummereret liste","square":"Firkant","start":"Start","type":"Type","upperAlpha":"Store alfabet (A, B, C, D, E, etc.)","upperRoman":"Store romerske (I, II, III, IV, V, etc.)","validateStartNumber":"Den nummererede liste skal starte med et rundt nummer"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimér","minimize":"Minimér"},"newpage":{"toolbar":"Ny side"},"pagebreak":{"alt":"Sideskift","toolbar":"Indsæt sideskift"},"pastetext":{"button":"Indsæt som ikke-formateret tekst","title":"Indsæt som ikke-formateret tekst"},"pastefromword":{"confirmCleanup":"Den tekst du forsøger at indsætte ser ud til at komme fra Word. Vil du rense teksten før den indsættes?","error":"Det var i
kke muligt at fjerne formatteringen på den indsatte tekst grundet en intern fejl","title":"Indsæt fra Word","toolbar":"Indsæt fra Word"},"preview":{"preview":"Vis eksempel"},"print":{"toolbar":"Udskriv"},"removeformat":{"toolbar":"Fjern formatering"},"save":{"toolbar":"Gem"},"selectall":{"toolbar":"Vælg alt"},"showblocks":{"toolbar":"Vis afsnitsmærker"},"sourcearea":{"toolbar":"Kilde"},"specialchar":{"options":"Muligheder for specialkarakterer","title":"Vælg symbol","toolbar":"Indsæt symbol"},"scayt":{"about":"Om SCAYT","aboutTab":"Om","addWord":"Tilføj ord","allCaps":"Ignorer alle store bogstaver","dic_create":"Opret","dic_delete":"Slet","dic_field_name":"Navn på ordbog","dic_info":"Til start er brugerordbogen gemt i en Cookie. Dog har Cookies en begrænsning på størrelse. Når ordbogen når en bestemt størrelse kan den blive gemt på vores server. For at gemme din personlige ordbog på vores server skal du angive et navn for denne. Såfremt du allerede har gemt
en ordbog, skriv navnet på denne og klik på Gendan knappen.","dic_rename":"Omdøb","dic_restore":"Gendan","dictionariesTab":"Ordbøger","disable":"Deaktivér SCAYT","emptyDic":"Ordbogsnavn må ikke være tom.","enable":"Aktivér SCAYT","ignore":"Ignorér","ignoreAll":"Ignorér alle","ignoreDomainNames":"Ignorér domænenavne","langs":"Sprog","languagesTab":"Sprog","mixedCase":"Ignorer ord med store og små bogstaver","mixedWithDigits":"Ignorér ord med numre","moreSuggestions":"Flere forslag","opera_title":"Ikke supporteret af Opera","options":"Indstillinger","optionsTab":"Indstillinger","title":"Stavekontrol mens du skriver","toggle":"Skift/toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Typografi","panelTitle":"Formattering på stylesheet","panelTitle1":"Block typografi","panelTitle2":"Inline typografi","panelTitle3":"Object typografi"},"table":{"border":"Rammebredde","caption":"Titel","cell":{"menu":"Celle","insertBefore":"Indsæt celle før","in
sertAfter":"Indsæt celle efter","deleteCell":"Slet celle","merge":"Flet celler","mergeRight":"Flet til højre","mergeDown":"Flet nedad","splitHorizontal":"Del celle vandret","splitVertical":"Del celle lodret","title":"Celleegenskaber","cellType":"Celletype","rowSpan":"Række span (rows span)","colSpan":"Kolonne span (columns span)","wordWrap":"Tekstombrydning","hAlign":"Vandret justering","vAlign":"Lodret justering","alignBaseline":"Grundlinje","bgColor":"Baggrundsfarve","borderColor":"Rammefarve","data":"Data","header":"Hoved","yes":"Ja","no":"Nej","invalidWidth":"Cellebredde skal være et tal.","invalidHeight":"Cellehøjde skal være et tal.","invalidRowSpan":"Række span skal være et heltal.","invalidColSpan":"Kolonne span skal være et heltal.","chooseColor":"Vælg"},"cellPad":"Cellemargen","cellSpace":"Celleafstand","column":{"menu":"Kolonne","insertBefore":"Indsæt kolonne før","insertAfter":"Indsæt kolonne efter","deleteColumn":"Slet kolonne"},"columns":"Kolonner"
,"deleteTable":"Slet tabel","headers":"Hoved","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første række","invalidBorder":"Rammetykkelse skal være et tal.","invalidCellPadding":"Cellemargen skal være et tal.","invalidCellSpacing":"Celleafstand skal være et tal.","invalidCols":"Antallet af kolonner skal være større end 0.","invalidHeight":"Tabelhøjde skal være et tal.","invalidRows":"Antallet af rækker skal være større end 0.","invalidWidth":"Tabelbredde skal være et tal.","menu":"Egenskaber for tabel","row":{"menu":"Række","insertBefore":"Indsæt række før","insertAfter":"Indsæt række efter","deleteRow":"Slet række"},"rows":"Rækker","summary":"Resumé","title":"Egenskaber for tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"Bredde på enhed"},"undo":{"redo":"Annullér fortryd","undo":"Fortryd"},"wsc":{"btnIgnore":"Ignorér","btnIgnoreAll":"Ignorér alle","btnReplace":"Erstat","btnRe
placeAll":"Erstat alle","btnUndo":"Tilbage","changeTo":"Forslag","errorLoading":"Fejl ved indlæsning af host: %s.","ieSpellDownload":"Stavekontrol ikke installeret. Vil du installere den nu?","manyChanges":"Stavekontrol færdig: %1 ord ændret","noChanges":"Stavekontrol færdig: Ingen ord ændret","noMispell":"Stavekontrol færdig: Ingen fejl fundet","noSuggestions":"(ingen forslag)","notAvailable":"Stavekontrol er desværre ikke tilgængelig.","notInDic":"Ikke i ordbogen","oneChange":"Stavekontrol færdig: Et ord ændret","progress":"Stavekontrollen arbejder...","title":"Stavekontrol","toolbar":"Stavekontrol"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/de.js b/share/static/RichText/lang/de.js
index cc146b3..d97d899 100644
--- a/share/static/RichText/lang/de.js
+++ b/share/static/RichText/lang/de.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.de={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Quellcode',newPage:'Neue Seite',save:'Speichern',preview:'Vorschau',cut:'Ausschneiden',copy:'Kopieren',paste:'Einfügen',print:'Drucken',underline:'Unterstrichen',bold:'Fett',italic:'Kursiv',selectAll:'Alles auswählen',removeFormat:'Formatierungen entfernen',strike:'Durchgestrichen',subscript:'Tiefgestellt',superscript:'Hochgestellt',horizontalrule:'Horizontale Linie einfügen',pagebreak:'Seitenumbruch einfügen',unlink:'Link entfernen',undo:'Rückgängig',redo:'Wiederherstellen',common:{browseServer:'Server durchsuchen',url:'URL',protocol:'Protokoll',upload:'Upload',uploadSubmit:'Zum Server senden',image:'Bild',flash:'Flash',form:'Formular',checkbox:'Checkbox',radio:'Radiobutton',textField:'Textfeld einzeilig',textarea:'Textfeld mehrzeilig',hiddenField:'verstecktes Feld',button:'Klickbutton',select:'Auswahlfeld',imageButton:'Bildbutton',
notSet:'<nichts>',id:'ID',name:'Name',langDir:'Schreibrichtung',langDirLtr:'Links nach Rechts (LTR)',langDirRtl:'Rechts nach Links (RTL)',langCode:'Sprachenkürzel',longDescr:'Langform URL',cssClass:'Stylesheet Klasse',advisoryTitle:'Titel Beschreibung',cssStyle:'Style',ok:'OK',cancel:'Abbrechen',close:'SchlieÃen',preview:'Vorschau',generalTab:'Allgemein',advancedTab:'Erweitert',validateNumberFailed:'Dieser Wert ist keine Nummer.',confirmNewPage:'Alle nicht gespeicherten Ãnderungen gehen verlohren. Sind sie sicher die neue Seite zu laden?',confirmCancel:'Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schlieÃen?',options:'Optionen',target:'Zielseite',targetNew:'Neues Fenster (_blank)',targetTop:'Oberstes Fenster (_top)',targetSelf:'Gleiches Fenster (_self)',targetParent:'Oberes Fenster (_parent)',langDirLTR:'Links nach Rechts (LNR)',langDirRTL:'Rechts nach Links (RNL)',styles:'Style',cssClasses:'Stylesheet Klasse',unavailable:'%1<span class="cke_accessibil
ity">, nicht verfügbar</span>'},contextmenu:{options:'Context Menu Optionen'},specialChar:{toolbar:'Sonderzeichen einfügen/editieren',title:'Sonderzeichen auswählen',options:'Sonderzeichen Optionen'},link:{toolbar:'Link einfügen/editieren',other:'<andere>',menu:'Link editieren',title:'Link',info:'Link-Info',target:'Zielseite',upload:'Upload',advanced:'Erweitert',type:'Link-Typ',toUrl:'URL',toAnchor:'Anker in dieser Seite',toEmail:'E-Mail',targetFrame:'<Frame>',targetPopup:'<Pop-up Fenster>',targetFrameName:'Ziel-Fenster-Name',targetPopupName:'Pop-up Fenster-Name',popupFeatures:'Pop-up Fenster-Eigenschaften',popupResizable:'GröÃe änderbar',popupStatusBar:'Statusleiste',popupLocationBar:'Adress-Leiste',popupToolbar:'Werkzeugleiste',popupMenuBar:'Menü-Leiste',popupFullScreen:'Vollbild (IE)',popupScrollBars:'Rollbalken',popupDependent:'Abhängig (Netscape)',popupWidth:'Breite',popupLeft:'Linke Position',popupHeight:'Höhe',popupTop:'Obere Position',id:'Id',langDir:'Schre
ibrichtung',langDirLTR:'Links nach Rechts (LTR)',langDirRTL:'Rechts nach Links (RTL)',acccessKey:'Zugriffstaste',name:'Name',langCode:'Schreibrichtung',tabIndex:'Tab-Index',advisoryTitle:'Titel Beschreibung',advisoryContentType:'Inhaltstyp',cssClasses:'Stylesheet Klasse',charset:'Ziel-Zeichensatz',styles:'Style',selectAnchor:'Anker auswählen',anchorName:'nach Anker Name',anchorId:'nach Element Id',emailAddress:'E-Mail Addresse',emailSubject:'Betreffzeile',emailBody:'Nachrichtentext',noAnchors:'(keine Anker im Dokument vorhanden)',noUrl:'Bitte geben Sie die Link-URL an',noEmail:'Bitte geben Sie e-Mail Adresse an'},anchor:{toolbar:'Anker einfügen/editieren',menu:'Anker-Eigenschaften',title:'Anker-Eigenschaften',name:'Anker Name',errorName:'Bitte geben Sie den Namen des Ankers ein'},list:{numberedTitle:'Nummerierte Listen-Eigenschaften',bulletedTitle:'Listen-Eigenschaften',type:'Typ',start:'Start',validateStartNumber:'List Startnummer muss eine ganze Zahl sein.',circle:'Ring'
,disc:'Kreis',square:'Quadrat',none:'Keine',notset:'<nicht gesetzt>',armenian:'Armenisch Nummerierung',georgian:'Georgisch Nummerierung (an, ban, gan, etc.)',lowerRoman:'Klein römisch (i, ii, iii, iv, v, etc.)',upperRoman:'Groà römisch (I, II, III, IV, V, etc.)',lowerAlpha:'Klein alpha (a, b, c, d, e, etc.)',upperAlpha:'Groà alpha (A, B, C, D, E, etc.)',lowerGreek:'Klein griechisch (alpha, beta, gamma, etc.)',decimal:'Dezimal (1, 2, 3, etc.)',decimalLeadingZero:'Dezimal mit führende Null (01, 02, 03, etc.)'},findAndReplace:{title:'Suchen und Ersetzen',find:'Suchen',replace:'Ersetzen',findWhat:'Suche nach:',replaceWith:'Ersetze mit:',notFoundMsg:'Der gesuchte Text wurde nicht gefunden.',matchCase:'GroÃ-Kleinschreibung beachten',matchWord:'Nur ganze Worte suchen',matchCyclic:'zyklische suche',replaceAll:'Alle Ersetzen',replaceSuccessMsg:'%1 vorkommen ersetzt.'},table:{toolbar:'Tabelle',title:'Tabellen-Eigenschaften',menu:'Tabellen-Eigenschaften',deleteTable:'Tabelle lö
schen',rows:'Zeile',columns:'Spalte',border:'Rahmen',align:'Ausrichtung',alignLeft:'Links',alignCenter:'Zentriert',alignRight:'Rechts',width:'Breite',widthPx:'Pixel',widthPc:'%',widthUnit:'Breite Einheit',height:'Höhe',cellSpace:'Zellenabstand auÃen',cellPad:'Zellenabstand innen',caption:'Ãberschrift',summary:'Inhaltsübersicht',headers:'Headers',headersNone:'Keine',headersColumn:'Erste Spalte',headersRow:'Erste Zeile',headersBoth:'Beide',invalidRows:'Die Anzahl der Zeilen muà gröÃer als 0 sein.',invalidCols:'Die Anzahl der Spalten muà gröÃer als 0 sein..',invalidBorder:'Die Rahmenbreite muà eine Zahl sein.',invalidWidth:'Die Tabellenbreite muss eine Zahl sein.',invalidHeight:'Die Tabellenbreite muà eine Zahl sein.',invalidCellSpacing:'Der Zellenabstand auÃen muà eine Zahl sein.',invalidCellPadding:'Der Zellenabstand innen muà eine Zahl sein.',cell:{menu:'Zelle',insertBefore:'Zelle davor einfügen',insertAfter:'Zelle danach einfügen',deleteCell:'Zelle löschen
',merge:'Zellen verbinden',mergeRight:'nach rechts verbinden',mergeDown:'nach unten verbinden',splitHorizontal:'Zelle horizontal teilen',splitVertical:'Zelle vertikal teilen',title:'Zellen Eigenschaften',cellType:'Zellart',rowSpan:'Anzahl Zeilen verbinden',colSpan:'Anzahl Spalten verbinden',wordWrap:'Zeilenumbruch',hAlign:'Horizontale Ausrichtung',vAlign:'Vertikale Ausrichtung',alignTop:'Oben',alignMiddle:'Mitte',alignBottom:'Unten',alignBaseline:'Grundlinie',bgColor:'Hintergrundfarbe',borderColor:'Rahmenfarbe',data:'Daten',header:'Ãberschrift',yes:'Ja',no:'Nein',invalidWidth:'Zellenbreite muà eine Zahl sein.',invalidHeight:'Zellenhöhe muà eine Zahl sein.',invalidRowSpan:'"Anzahl Zeilen verbinden" muss eine Ganzzahl sein.',invalidColSpan:'"Anzahl Spalten verbinden" muss eine Ganzzahl sein.',chooseColor:'Wählen'},row:{menu:'Zeile',insertBefore:'Zeile oberhalb einfügen',insertAfter:'Zeile unterhalb einfügen',deleteRow:'Zeile entfernen'},column:{menu:'Spalte',insertBefor
e:'Spalte links davor einfügen',insertAfter:'Spalte rechts danach einfügen',deleteColumn:'Spalte löschen'}},button:{title:'Button-Eigenschaften',text:'Text (Wert)',type:'Typ',typeBtn:'Button',typeSbm:'Absenden',typeRst:'Zurücksetzen'},checkboxAndRadio:{checkboxTitle:'Checkbox-Eigenschaften',radioTitle:'Optionsfeld-Eigenschaften',value:'Wert',selected:'ausgewählt'},form:{title:'Formular-Eigenschaften',menu:'Formular-Eigenschaften',action:'Action',method:'Method',encoding:'Zeichenkodierung'},select:{title:'Auswahlfeld-Eigenschaften',selectInfo:'Info',opAvail:'Mögliche Optionen',value:'Wert',size:'GröÃe',lines:'Linien',chkMulti:'Erlaube Mehrfachauswahl',opText:'Text',opValue:'Wert',btnAdd:'Hinzufügen',btnModify:'Ãndern',btnUp:'Hoch',btnDown:'Runter',btnSetValue:'Setze als Standardwert',btnDelete:'Entfernen'},textarea:{title:'Textfeld (mehrzeilig) Eigenschaften',cols:'Spalten',rows:'Reihen'},textfield:{title:'Textfeld (einzeilig) Eigenschaften',name:'Name',value:'Wert'
,charWidth:'Zeichenbreite',maxChars:'Max. Zeichen',type:'Typ',typeText:'Text',typePass:'Passwort'},hidden:{title:'Verstecktes Feld-Eigenschaften',name:'Name',value:'Wert'},image:{title:'Bild-Eigenschaften',titleButton:'Bildbutton-Eigenschaften',menu:'Bild-Eigenschaften',infoTab:'Bild-Info',btnUpload:'Zum Server senden',upload:'Hochladen',alt:'Alternativer Text',width:'Breite',height:'Höhe',lockRatio:'GröÃenverhältnis beibehalten',unlockRatio:'Ratio Freischalten',resetSize:'GröÃe zurücksetzen',border:'Rahmen',hSpace:'Horizontal-Abstand',vSpace:'Vertikal-Abstand',align:'Ausrichtung',alignLeft:'Links',alignRight:'Rechts',alertUrl:'Bitte geben Sie die Bild-URL an',linkTab:'Link',button2Img:'Möchten Sie den gewählten Bild-Button in ein einfaches Bild umwandeln?',img2Button:'Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?',urlMissing:'Imagequelle URL fehlt.',validateWidth:'Breite muà eine ganze Zahl sein.',validateHeight:'Höhe muà eine ganze Zahl sein.
',validateBorder:'Rahmen muà eine ganze Zahl sein.',validateHSpace:'Horizontal-Abstand muà eine ganze Zahl sein.',validateVSpace:'Vertikal-Abstand must be a whole number.'},flash:{properties:'Flash-Eigenschaften',propertiesTab:'Eigenschaften',title:'Flash-Eigenschaften',chkPlay:'autom. Abspielen',chkLoop:'Endlosschleife',chkMenu:'Flash-Menü aktivieren',chkFull:'Vollbildmodus erlauben',scale:'Skalierung',scaleAll:'Alles anzeigen',scaleNoBorder:'ohne Rand',scaleFit:'Passgenau',access:'Skript Zugang',accessAlways:'Immer',accessSameDomain:'Gleiche Domain',accessNever:'Nie',align:'Ausrichtung',alignLeft:'Links',alignAbsBottom:'Abs Unten',alignAbsMiddle:'Abs Mitte',alignBaseline:'Baseline',alignBottom:'Unten',alignMiddle:'Mitte',alignRight:'Rechts',alignTextTop:'Text Oben',alignTop:'Oben',quality:'Qualität',qualityBest:'Beste',qualityHigh:'Hoch',qualityAutoHigh:'Auto Hoch',qualityMedium:'Medium',qualityAutoLow:'Auto Niedrig',qualityLow:'Niedrig',windowModeWindow:'Fenster',wind
owModeOpaque:'Deckend',windowModeTransparent:'Transparent',windowMode:'Fenster Modus',flashvars:'Variablen für Flash',bgcolor:'Hintergrundfarbe',width:'Breite',height:'Höhe',hSpace:'Horizontal-Abstand',vSpace:'Vertikal-Abstand',validateSrc:'Bitte geben Sie die Link-URL an',validateWidth:'Breite muss eine Zahl sein.',validateHeight:'Höhe muss eine Zahl sein.',validateHSpace:'HSpace muss eine Zahl sein.',validateVSpace:'VSpace muss eine Zahl sein.'},spellCheck:{toolbar:'Rechtschreibprüfung',title:'Rechtschreibprüfung',notAvailable:'Entschuldigung, aber dieser Dienst steht im Moment nicht zur verfügung.',errorLoading:'Fehler beim laden des Dienstanbieters: %s.',notInDic:'Nicht im Wörterbuch',changeTo:'Ãndern in',btnIgnore:'Ignorieren',btnIgnoreAll:'Alle Ignorieren',btnReplace:'Ersetzen',btnReplaceAll:'Alle Ersetzen',btnUndo:'Rückgängig',noSuggestions:' - keine Vorschläge - ',progress:'Rechtschreibprüfung läuft...',noMispell:'Rechtschreibprüfung abgeschlossen - kei
ne Fehler gefunden',noChanges:'Rechtschreibprüfung abgeschlossen - keine Worte geändert',oneChange:'Rechtschreibprüfung abgeschlossen - ein Wort geändert',manyChanges:'Rechtschreibprüfung abgeschlossen - %1 Wörter geändert',ieSpellDownload:'Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?'},smiley:{toolbar:'Smiley',title:'Smiley auswählen',options:'Smiley Optionen'},elementsPath:{eleLabel:'Elements Pfad',eleTitle:'%1 Element'},numberedlist:'Nummerierte Liste',bulletedlist:'Liste',indent:'Einzug erhöhen',outdent:'Einzug verringern',justify:{left:'Linksbündig',center:'Zentriert',right:'Rechtsbündig',block:'Blocksatz'},blockquote:'Zitatblock',clipboard:{title:'Einfügen',cutError:'Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).',copyError:'Die Sicherheitseinstellungen Ihres Browsers lassen e
s nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).',pasteMsg:'Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.',securityMsg:'Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.',pasteArea:'Einfügebereich'},pastefromword:{confirmCleanup:'Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?',toolbar:'aus MS-Word einfügen',title:'aus MS-Word einfügen',error:'Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen'},pasteText:{button:'Als Text einfügen',title:'Als Text einfügen'},templates:{button:'Vorlagen',title:'Vorlagen',options:'Vorlagen Optionen',insertOption:'Aktuellen Inhalt ersetzen',selectP
romptMsg:'Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):',emptyListMsg:'(keine Vorlagen definiert)'},showBlocks:'Blöcke anzeigen',stylesCombo:{label:'Stil',panelTitle:'Formatierungenstil',panelTitle1:'Block Stilart',panelTitle2:'Inline Stilart',panelTitle3:'Objekt Stilart'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatiert',tag_address:'Addresse',tag_h1:'Ãberschrift 1',tag_h2:'Ãberschrift 2',tag_h3:'Ãberschrift 3',tag_h4:'Ãberschrift 4',tag_h5:'Ãberschrift 5',tag_h6:'Ãberschrift 6',tag_div:'Normal (DIV)'},div:{title:'Div Container erzeugen',toolbar:'Div Container erzeugen',cssClassInputLabel:'Stylesheet Klasse',styleSelectLabel:'Stil',IdInputLabel:'Id',languageCodeInputLabel:' Sprache Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Beratungs Titel',langDirLabel:'Sprache Richtung',langDirLTRLabel:'Links nach Rechs (LTR)',langDirRTLLabel:'Rechs nach Links (RTL)',edit:
'Div Bearbeiten',remove:'Div Entfernen'},font:{label:'Schriftart',voiceLabel:'Schriftart',panelTitle:'Schriftart'},fontSize:{label:'GröÃe',voiceLabel:'SchrifgröÃe',panelTitle:'GröÃe'},colorButton:{textColorTitle:'Textfarbe',bgColorTitle:'Hintergrundfarbe',panelTitle:'Farben',auto:'Automatisch',more:'Weitere Farben...'},colors:{'000':'Schwarz',800000:'Kastanienbraun','8B4513':'Braun','2F4F4F':'Dunkles Schiefergrau','008080':'Blaugrün','000080':'Navy','4B0082':'Indigo',696969:'Dunkelgrau',B22222:'Ziegelrot',A52A2A:'Braun',DAA520:'Goldgelb','006400':'Dunkelgrün','40E0D0':'Türkis','0000CD':'Medium Blau',800080:'Lila',808080:'Grau',F00:'Rot',FF8C00:'Dunkelorange',FFD700:'Gold','008000':'Grün','0FF':'Cyan','00F':'Blau',EE82EE:'Hellviolett',A9A9A9:'Dunkelgrau',FFA07A:'Helles Lachsrosa',FFA500:'Orange',FFFF00:'Gelb','00FF00':'Lime',AFEEEE:'BlaÃ-Türkis',ADD8E6:'Hellblau',DDA0DD:'Pflaumenblau',D3D3D3:'Hellgrau',FFF0F5:'Lavendel',FAEBD7:'Antik WeiÃ',FFFFE0:'Hellgelb',F0FFF
0:'Honigtau',F0FFFF:'Azurblau',F0F8FF:'Alice Blau',E6E6FA:'Lavendel',FFF:'WeiÃ'},scayt:{title:'Rechtschreibprüfung während der Texteingabe',opera_title:'Nicht von Opera unterstützt',enable:'SCAYT einschalten',disable:'SCAYT ausschalten',about:'Ãber SCAYT',toggle:'SCAYT umschalten',options:'Optionen',langs:'Sprachen',moreSuggestions:'Mehr Vorschläge',ignore:'Ignorieren',ignoreAll:'Alle ignorieren',addWord:'Wort hinzufügen',emptyDic:'Wörterbuchname sollte leer sein.',optionsTab:'Optionen',allCaps:'Groà geschriebenen Wörter ignorieren',ignoreDomainNames:'Domain-Namen ignorieren',mixedCase:'Wörter mit gemischte Setzkasten ignorieren',mixedWithDigits:'Wörter mit Zahlen ignorieren',languagesTab:'Sprachen',dictionariesTab:'Wörterbücher',dic_field_name:'Wörterbuchname',dic_create:'Erzeugen',dic_restore:'Wiederherstellen',dic_delete:'Löschen',dic_rename:'Umbenennen',dic_info:'Anfangs wird das Benutzerwörterbuch in einem Cookie gespeichert. Allerdings sind Cookies in
der GröÃe begrenzt. Wenn das Benutzerwörterbuch bis zu einem Punkt wächst, wo es nicht mehr in einem Cookie gespeichert werden kann, wird das Benutzerwörterbuch auf dem Server gespeichert. Um Ihr persönliches Wörterbuch auf dem Server zu speichern, müssen Sie einen Namen für das Wörterbuch angeben. Falls Sie schon ein gespeicherte Wörterbuch haben, geben Sie bitte dessen Namen ein und klicken Sie auf die Schaltfläche Wiederherstellen.',aboutTab:'Ãber'},about:{title:'Ãber CKEditor',dlgTitle:'Ãber CKEditor',moreInfo:'Für Informationen Liztenzbestimmungen besuchen sie bitte unsere Webseite:',copy:'Copyright © $1. Alle Rechte vorbehalten.'},maximize:'Maximieren',minimize:'Minimieren',fakeobjects:{anchor:'Anker',flash:'Flash Animation',div:'Seitenumbruch',unknown:'Unbekanntes Objekt'},resize:'Zum VergröÃern ziehen',colordialog:{title:'Farbe wählen',options:'Farbeoptionen',highlight:'Hervorheben',selected:'Ausgewählte Farbe',clear:'Entfernen'},toolbarColl
apse:'Symbolleiste einklappen',toolbarExpand:'Symbolleiste ausklappen',bidi:{ltr:'Leserichtung von Links nach Rechts',rtl:'Leserichtung von Rechts nach Links'}};
+CKEDITOR.lang['de']={"dir":"ltr","editor":"WYSIWYG-Editor","common":{"editorHelp":"Drücken Sie ALT 0 für Hilfe","browseServer":"Server durchsuchen","url":"URL","protocol":"Protokoll","upload":"Hochladen","uploadSubmit":"Zum Server senden","image":"Bild","flash":"Flash","form":"Formular","checkbox":"Checkbox","radio":"Radiobutton","textField":"Textfeld einzeilig","textarea":"Textfeld mehrzeilig","hiddenField":"Verstecktes Feld","button":"Klickbutton","select":"Auswahlfeld","imageButton":"Bildbutton","notSet":"<nichts>","id":"ID","name":"Name","langDir":"Schreibrichtung","langDirLtr":"Links nach Rechts (LTR)","langDirRtl":"Rechts nach Links (RTL)","langCode":"Sprachenkürzel","longDescr":"Langform URL","cssClass":"Stylesheet Klasse","advisoryTitle":"Titel Beschreibung","cssStyle":"Style","ok":"OK","cancel":"Abbrechen","close":"SchlieÃen","preview":"Vorschau","resize":"Zum VergröÃern ziehen","generalTab":"Allgemein","advancedTab":"Erweitert","validateNumberFailed":"Dieser
Wert ist keine Nummer.","confirmNewPage":"Alle nicht gespeicherten Ãnderungen gehen verlohren. Sind Sie sicher die neue Seite zu laden?","confirmCancel":"Einige Optionen wurden geändert. Wollen Sie den Dialog dennoch schlieÃen?","options":"Optionen","target":"Zielseite","targetNew":"Neues Fenster (_blank)","targetTop":"Oberstes Fenster (_top)","targetSelf":"Gleiches Fenster (_self)","targetParent":"Oberes Fenster (_parent)","langDirLTR":"Links nach Rechts (LNR)","langDirRTL":"Rechts nach Links (RNL)","styles":"Style","cssClasses":"Stylesheet Klasse","width":"Breite","height":"Höhe","align":"Ausrichtung","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Zentriert","alignTop":"Oben","alignMiddle":"Mitte","alignBottom":"Unten","invalidValue":"Invalid value.","invalidHeight":"Höhe muss eine Zahl sein.","invalidWidth":"Breite muss eine Zahl sein.","invalidCssLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte CSS
Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","invalidHtmlLength":"Wert spezifiziert für \"%1\" Feld muss ein positiver numerischer Wert sein mit oder ohne korrekte HTML Messeinheit (px oder %).","invalidInlineStyle":"Wert spezifiziert für inline Stilart muss enthalten ein oder mehr Tupels mit dem Format \"Name : Wert\" getrennt mit Semikolons.","cssLengthTooltip":"Gebe eine Zahl ein für ein Wert in pixels oder eine Zahl mit einer korrekten CSS Messeinheit (px, %, in, cm, mm, em, ex, pt oder pc).","unavailable":"%1<span class=\"cke_accessibility\">, nicht verfügbar</span>"},"about":{"copy":"Copyright © $1. Alle Rechte vorbehalten.","dlgTitle":"Ãber CKEditor","help":"Prüfe $1 für Hilfe.","moreInfo":"Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:","title":"Ãber CKEditor","userGuide":"CKEditor Benutzerhandbuch"},"basicstyles":{"bold":"Fett","italic":"Kursiv","strike":"Durchgestrichen","subscript":"Tiefgestellt","supe
rscript":"Hochgestellt","underline":"Unterstrichen"},"bidi":{"ltr":"Leserichtung von Links nach Rechts","rtl":"Leserichtung von Rechts nach Links"},"blockquote":{"toolbar":"Zitatblock"},"clipboard":{"copy":"Kopieren","copyError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch kopieren. Bitte benutzen Sie die System-Zwischenablage über STRG-C (kopieren).","cut":"Ausschneiden","cutError":"Die Sicherheitseinstellungen Ihres Browsers lassen es nicht zu, den Text automatisch auszuschneiden. Bitte benutzen Sie die System-Zwischenablage über STRG-X (ausschneiden) und STRG-V (einfügen).","paste":"Einfügen","pasteArea":"Einfügebereich","pasteMsg":"Bitte fügen Sie den Text in der folgenden Box über die Tastatur (mit <STRONG>Strg+V</STRONG>) ein und bestätigen Sie mit <STRONG>OK</STRONG>.","securityMsg":"Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den
Inhalt erneut in diesem Fenster ein.","title":"Einfügen"},"colorbutton":{"auto":"Automatisch","bgColorTitle":"Hintergrundfarbe","colors":{"000":"Schwarz","800000":"Kastanienbraun","8B4513":"Braun","2F4F4F":"Dunkles Schiefergrau","008080":"Blaugrün","000080":"Navy","4B0082":"Indigo","696969":"Dunkelgrau","B22222":"Ziegelrot","A52A2A":"Braun","DAA520":"Goldgelb","006400":"Dunkelgrün","40E0D0":"Türkis","0000CD":"Medium Blau","800080":"Lila","808080":"Grau","F00":"Rot","FF8C00":"Dunkelorange","FFD700":"Gold","008000":"Grün","0FF":"Cyan","00F":"Blau","EE82EE":"Hellviolett","A9A9A9":"Dunkelgrau","FFA07A":"Helles Lachsrosa","FFA500":"Orange","FFFF00":"Gelb","00FF00":"Lime","AFEEEE":"BlaÃ-Türkis","ADD8E6":"Hellblau","DDA0DD":"Pflaumenblau","D3D3D3":"Hellgrau","FFF0F5":"Lavendel","FAEBD7":"Antik WeiÃ","FFFFE0":"Hellgelb","F0FFF0":"Honigtau","F0FFFF":"Azurblau","F0F8FF":"Alice Blau","E6E6FA":"Lavendel","FFF":"WeiÃ"},"more":"Weitere Farben...","panelTitle":"Farben","textColor
Title":"Textfarbe"},"colordialog":{"clear":"Entfernen","highlight":"Hervorheben","options":"Farbeoptionen","selected":"Ausgewählte Farbe","title":"Farbe wählen"},"templates":{"button":"Vorlagen","emptyListMsg":"(keine Vorlagen definiert)","insertOption":"Aktuellen Inhalt ersetzen","options":"Vorlagen Optionen","selectPromptMsg":"Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):","title":"Vorlagen"},"contextmenu":{"options":"Kontextmenü Optionen"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Tooltip","cssClassInputLabel":"Stylesheet Klasse","edit":"Div bearbeiten","inlineStyleInputLabel":"Inline Stil","langDirLTRLabel":"Links nach Rechs (LTR)","langDirLabel":"Sprache Richtung","langDirRTLLabel":"Rechs nach Links (RTL)","languageCodeInputLabel":"Sprachenkürzel","remove":"Div entfernen","styleSelectLabel":"Style","title":"Div Container erzeugen","toolbar":"Div Container erzeugen"},"toolbar":{"toolbarCollapse":"Sy
mbolleiste einklappen","toolbarExpand":"Symbolleiste ausklappen","toolbarGroups":{"document":"Dokument","clipboard":"Zwischenablage/Rückgängig","editing":"Editieren","forms":"Formularen","basicstyles":"Grundstile","paragraph":"Absatz","links":"Links","insert":"Einfügen","styles":"Stile","colors":"Farben","tools":"Werkzeuge"},"toolbars":"Editor Symbolleisten"},"elementspath":{"eleLabel":"Elements Pfad","eleTitle":"%1 Element"},"list":{"bulletedlist":"Liste","numberedlist":"Nummerierte Liste"},"indent":{"indent":"Einzug erhöhen","outdent":"Einzug verringern"},"find":{"find":"Suchen","findOptions":"Suchoptionen","findWhat":"Suche nach:","matchCase":"GroÃ-Kleinschreibung beachten","matchCyclic":"Zyklische Suche","matchWord":"Nur ganze Worte suchen","notFoundMsg":"Der gesuchte Text wurde nicht gefunden.","replace":"Ersetzen","replaceAll":"Alle ersetzen","replaceSuccessMsg":"%1 vorkommen ersetzt.","replaceWith":"Ersetze mit:","title":"Suchen und Ersetzen"},"fakeobjects":{"anc
hor":"Anker","flash":"Flash Animation","hiddenfield":"Verstecktes Feld","iframe":"IFrame","unknown":"Unbekanntes Objekt"},"flash":{"access":"Skript Zugang","accessAlways":"Immer","accessNever":"Nie","accessSameDomain":"Gleiche Domain","alignAbsBottom":"Abs Unten","alignAbsMiddle":"Abs Mitte","alignBaseline":"Baseline","alignTextTop":"Text Oben","bgcolor":"Hintergrundfarbe","chkFull":"Vollbildmodus erlauben","chkLoop":"Endlosschleife","chkMenu":"Flash-Menü aktivieren","chkPlay":"Automatisch Abspielen","flashvars":"Variablen für Flash","hSpace":"Horizontal-Abstand","properties":"Flash-Eigenschaften","propertiesTab":"Eigenschaften","quality":"Qualität","qualityAutoHigh":"Auto Hoch","qualityAutoLow":"Auto Niedrig","qualityBest":"Beste","qualityHigh":"Hoch","qualityLow":"Niedrig","qualityMedium":"Medium","scale":"Skalierung","scaleAll":"Alles anzeigen","scaleFit":"Passgenau","scaleNoBorder":"Ohne Rand","title":"Flash-Eigenschaften","vSpace":"Vertikal-Abstand","validateHSpace":
"HSpace muss eine Zahl sein.","validateSrc":"Bitte geben Sie die Link-URL an","validateVSpace":"VSpace muss eine Zahl sein.","windowMode":"Fenster Modus","windowModeOpaque":"Deckend","windowModeTransparent":"Transparent","windowModeWindow":"Fenster"},"font":{"fontSize":{"label":"GröÃe","voiceLabel":"SchrifgröÃe","panelTitle":"GröÃe"},"label":"Schriftart","panelTitle":"Schriftart","voiceLabel":"Schriftart"},"forms":{"button":{"title":"Button-Eigenschaften","text":"Text (Wert)","type":"Typ","typeBtn":"Button","typeSbm":"Absenden","typeRst":"Zurücksetzen"},"checkboxAndRadio":{"checkboxTitle":"Checkbox-Eigenschaften","radioTitle":"Optionsfeld-Eigenschaften","value":"Wert","selected":"ausgewählt"},"form":{"title":"Formular-Eigenschaften","menu":"Formular-Eigenschaften","action":"Action","method":"Method","encoding":"Zeichenkodierung"},"hidden":{"title":"Verstecktes Feld-Eigenschaften","name":"Name","value":"Wert"},"select":{"title":"Auswahlfeld-Eigenschaften","selectInfo"
:"Info","opAvail":"Mögliche Optionen","value":"Wert","size":"GröÃe","lines":"Linien","chkMulti":"Erlaube Mehrfachauswahl","opText":"Text","opValue":"Wert","btnAdd":"Hinzufügen","btnModify":"Ãndern","btnUp":"Hoch","btnDown":"Runter","btnSetValue":"Setze als Standardwert","btnDelete":"Entfernen"},"textarea":{"title":"Textfeld (mehrzeilig) Eigenschaften","cols":"Spalten","rows":"Reihen"},"textfield":{"title":"Textfeld (einzeilig) Eigenschaften","name":"Name","value":"Wert","charWidth":"Zeichenbreite","maxChars":"Max. Zeichen","type":"Typ","typeText":"Text","typePass":"Passwort","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format","tag_address":"Addresse","tag_div":"Normal (DIV)","tag_h1":"Ãberschrift 1","tag_h2":"Ãberschrift 2","tag_h3":"Ãberschrift 3","tag_h4":"Ãberschrift 4","tag_h5":"Ãberschrift 5","tag_h6":"Ãberschrift 6","tag_p":"Normal","tag_pre":"Formatiert"},"horizontalrule":
{"toolbar":"Horizontale Linie einfügen"},"iframe":{"border":"Rahmen anzeigen","noUrl":"Bitte geben Sie die IFrame-URL an","scrolling":"Rollbalken anzeigen","title":"IFrame-Eigenschaften","toolbar":"IFrame"},"image":{"alertUrl":"Bitte geben Sie die Bild-URL an","alt":"Alternativer Text","border":"Rahmen","btnUpload":"Zum Server senden","button2Img":"Möchten Sie den gewählten Bild-Button in ein einfaches Bild umwandeln?","hSpace":"Horizontal-Abstand","img2Button":"Möchten Sie das gewählten Bild in einen Bild-Button umwandeln?","infoTab":"Bild-Info","linkTab":"Link","lockRatio":"GröÃenverhältnis beibehalten","menu":"Bild-Eigenschaften","resetSize":"GröÃe zurücksetzen","title":"Bild-Eigenschaften","titleButton":"Bildbutton-Eigenschaften","upload":"Hochladen","urlMissing":"Imagequelle URL fehlt.","vSpace":"Vertikal-Abstand","validateBorder":"Rahmen muà eine ganze Zahl sein.","validateHSpace":"Horizontal-Abstand muà eine ganze Zahl sein.","validateVSpace":"Vertikal-Ab
stand muà eine ganze Zahl sein."},"smiley":{"options":"Smiley Optionen","title":"Smiley auswählen","toolbar":"Smiley"},"justify":{"block":"Blocksatz","center":"Zentriert","left":"Linksbündig","right":"Rechtsbündig"},"link":{"acccessKey":"Zugriffstaste","advanced":"Erweitert","advisoryContentType":"Inhaltstyp","advisoryTitle":"Titel Beschreibung","anchor":{"toolbar":"Anker einfügen/editieren","menu":"Anker-Eigenschaften","title":"Anker-Eigenschaften","name":"Anker Name","errorName":"Bitte geben Sie den Namen des Ankers ein","remove":"Anker entfernen"},"anchorId":"nach Element Id","anchorName":"nach Anker Name","charset":"Ziel-Zeichensatz","cssClasses":"Stylesheet Klasse","emailAddress":"E-Mail Adresse","emailBody":"Nachrichtentext","emailSubject":"Betreffzeile","id":"Id","info":"Link-Info","langCode":"Sprachenkürzel","langDir":"Schreibrichtung","langDirLTR":"Links nach Rechts (LTR)","langDirRTL":"Rechts nach Links (RTL)","menu":"Link editieren","name":"Name","noAnchors"
:"(keine Anker im Dokument vorhanden)","noEmail":"Bitte geben Sie e-Mail Adresse an","noUrl":"Bitte geben Sie die Link-URL an","other":"<andere>","popupDependent":"Abhängig (Netscape)","popupFeatures":"Pop-up Fenster-Eigenschaften","popupFullScreen":"Vollbild (IE)","popupLeft":"Linke Position","popupLocationBar":"Adress-Leiste","popupMenuBar":"Menü-Leiste","popupResizable":"GröÃe änderbar","popupScrollBars":"Rollbalken","popupStatusBar":"Statusleiste","popupToolbar":"Symbolleiste","popupTop":"Obere Position","rel":"Beziehung","selectAnchor":"Anker auswählen","styles":"Style","tabIndex":"Tab-Index","target":"Zielseite","targetFrame":"<Frame>","targetFrameName":"Ziel-Fenster-Name","targetPopup":"<Pop-up Fenster>","targetPopupName":"Pop-up Fenster-Name","title":"Link","toAnchor":"Anker in dieser Seite","toEmail":"E-Mail","toUrl":"URL","toolbar":"Link einfügen/editieren","type":"Link-Typ","unlink":"Link entfernen","upload":"Hochladen"},"liststyle":{"armenian":"Armenisch N
ummerierung","bulletedTitle":"Listen-Eigenschaften","circle":"Ring","decimal":"Dezimal (1, 2, 3, etc.)","decimalLeadingZero":"Dezimal mit führende Null (01, 02, 03, etc.)","disc":"Kreis","georgian":"Georgisch Nummerierung (an, ban, gan, etc.)","lowerAlpha":"Klein alpha (a, b, c, d, e, etc.)","lowerGreek":"Klein griechisch (alpha, beta, gamma, etc.)","lowerRoman":"Klein römisch (i, ii, iii, iv, v, etc.)","none":"Keine","notset":"<nicht gesetzt>","numberedTitle":"Nummerierte Listen-Eigenschaften","square":"Quadrat","start":"Start","type":"Typ","upperAlpha":"Groà alpha (A, B, C, D, E, etc.)","upperRoman":"Groà römisch (I, II, III, IV, V, etc.)","validateStartNumber":"List Startnummer muss eine ganze Zahl sein."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximieren","minimize":"Minimieren"},"newpage":{"toolbar":"Neue Seite"},"pagebreak":{"alt":"Seitenumbruch einfügen","toolbar":"Seitenumbruch einfügen"},"pastetext":{"button":"Als Text einfüge
n","title":"Als Text einfügen"},"pastefromword":{"confirmCleanup":"Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?","error":"Aufgrund eines internen Fehlers war es nicht möglich die eingefügten Daten zu bereinigen","title":"Aus MS-Word einfügen","toolbar":"Aus MS-Word einfügen"},"preview":{"preview":"Vorschau"},"print":{"toolbar":"Drucken"},"removeformat":{"toolbar":"Formatierungen entfernen"},"save":{"toolbar":"Speichern"},"selectall":{"toolbar":"Alles auswählen"},"showblocks":{"toolbar":"Blöcke anzeigen"},"sourcearea":{"toolbar":"Quellcode"},"specialchar":{"options":"Sonderzeichen Optionen","title":"Sonderzeichen auswählen","toolbar":"Sonderzeichen einfügen/editieren"},"scayt":{"about":"Ãber SCAYT","aboutTab":"Ãber","addWord":"Wort hinzufügen","allCaps":"Groà geschriebenen Wörter ignorieren","dic_create":"Erzeugen","dic_delete":"Löschen","dic_field_name":"Wörterbuchname","dic_info":"Anfang
s wird das Benutzerwörterbuch in einem Cookie gespeichert. Allerdings sind Cookies in der GröÃe begrenzt. Wenn das Benutzerwörterbuch bis zu einem Punkt wächst, wo es nicht mehr in einem Cookie gespeichert werden kann, wird das Benutzerwörterbuch auf dem Server gespeichert. Um Ihr persönliches Wörterbuch auf dem Server zu speichern, müssen Sie einen Namen für das Wörterbuch angeben. Falls Sie schon ein gespeicherte Wörterbuch haben, geben Sie bitte dessen Namen ein und klicken Sie auf die Schaltfläche Wiederherstellen.","dic_rename":"Umbenennen","dic_restore":"Wiederherstellen","dictionariesTab":"Wörterbücher","disable":"SCAYT ausschalten","emptyDic":"Wörterbuchname sollte leer sein.","enable":"SCAYT einschalten","ignore":"Ignorieren","ignoreAll":"Alle ignorieren","ignoreDomainNames":"Domain-Namen ignorieren","langs":"Sprachen","languagesTab":"Sprachen","mixedCase":"Wörter mit gemischte Setzkasten ignorieren","mixedWithDigits":"Wörter mit Zahlen ignorieren
","moreSuggestions":"Mehr Vorschläge","opera_title":"Nicht von Opera unterstützt","options":"Optionen","optionsTab":"Optionen","title":"Rechtschreibprüfung während der Texteingabe (SCAYT)","toggle":"SCAYT umschalten","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"Formatierungenstil","panelTitle1":"Block Stilart","panelTitle2":"Inline Stilart","panelTitle3":"Objekt Stilart"},"table":{"border":"Rahmen","caption":"Ãberschrift","cell":{"menu":"Zelle","insertBefore":"Zelle davor einfügen","insertAfter":"Zelle danach einfügen","deleteCell":"Zelle löschen","merge":"Zellen verbinden","mergeRight":"Nach rechts verbinden","mergeDown":"Nach unten verbinden","splitHorizontal":"Zelle horizontal teilen","splitVertical":"Zelle vertikal teilen","title":"Zellen-Eigenschaften","cellType":"Zellart","rowSpan":"Anzahl Zeilen verbinden","colSpan":"Anzahl Spalten verbinden","wordWrap":"Zeilenumbruch","hAlign":"Horizontale Ausrichtung","vAlign":"Vertikale Ausri
chtung","alignBaseline":"Grundlinie","bgColor":"Hintergrundfarbe","borderColor":"Rahmenfarbe","data":"Daten","header":"Ãberschrift","yes":"Ja","no":"Nein","invalidWidth":"Zellenbreite muà eine Zahl sein.","invalidHeight":"Zellenhöhe muà eine Zahl sein.","invalidRowSpan":"\"Anzahl Zeilen verbinden\" muss eine Ganzzahl sein.","invalidColSpan":"\"Anzahl Spalten verbinden\" muss eine Ganzzahl sein.","chooseColor":"Wählen"},"cellPad":"Zellenabstand innen","cellSpace":"Zellenabstand auÃen","column":{"menu":"Spalte","insertBefore":"Spalte links davor einfügen","insertAfter":"Spalte rechts danach einfügen","deleteColumn":"Spalte löschen"},"columns":"Spalte","deleteTable":"Tabelle löschen","headers":"Kopfzeile","headersBoth":"Beide","headersColumn":"Erste Spalte","headersNone":"Keine","headersRow":"Erste Zeile","invalidBorder":"Die Rahmenbreite muà eine Zahl sein.","invalidCellPadding":"Der Zellenabstand innen muà eine positive Zahl sein.","invalidCellSpacing":"Der Zellen
abstand auÃen muà eine positive Zahl sein.","invalidCols":"Die Anzahl der Spalten muà gröÃer als 0 sein..","invalidHeight":"Die Tabellenbreite muà eine Zahl sein.","invalidRows":"Die Anzahl der Zeilen muà gröÃer als 0 sein.","invalidWidth":"Die Tabellenbreite muss eine Zahl sein.","menu":"Tabellen-Eigenschaften","row":{"menu":"Zeile","insertBefore":"Zeile oberhalb einfügen","insertAfter":"Zeile unterhalb einfügen","deleteRow":"Zeile entfernen"},"rows":"Zeile","summary":"Inhaltsübersicht","title":"Tabellen-Eigenschaften","toolbar":"Tabelle","widthPc":"%","widthPx":"Pixel","widthUnit":"Breite Einheit"},"undo":{"redo":"Wiederherstellen","undo":"Rückgängig"},"wsc":{"btnIgnore":"Ignorieren","btnIgnoreAll":"Alle Ignorieren","btnReplace":"Ersetzen","btnReplaceAll":"Alle Ersetzen","btnUndo":"Rückgängig","changeTo":"Ãndern in","errorLoading":"Fehler beim laden des Dienstanbieters: %s.","ieSpellDownload":"Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt
herunterladen?","manyChanges":"Rechtschreibprüfung abgeschlossen - %1 Wörter geändert","noChanges":"Rechtschreibprüfung abgeschlossen - keine Worte geändert","noMispell":"Rechtschreibprüfung abgeschlossen - keine Fehler gefunden","noSuggestions":" - keine Vorschläge - ","notAvailable":"Entschuldigung, aber dieser Dienst steht im Moment nicht zur Verfügung.","notInDic":"Nicht im Wörterbuch","oneChange":"Rechtschreibprüfung abgeschlossen - ein Wort geändert","progress":"Rechtschreibprüfung läuft...","title":"Rechtschreibprüfung","toolbar":"Rechtschreibprüfung"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/el.js b/share/static/RichText/lang/el.js
index 0987a04..5d363dc 100644
--- a/share/static/RichText/lang/el.js
+++ b/share/static/RichText/lang/el.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.el={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'HTML κÏδικαÏ',newPage:'ÎÎα Σελίδα',save:'ÎÏοθήκεÏ
Ïη',preview:'Î ÏοεÏιÏκÏÏιÏη',cut:'ÎÏοκοÏή',copy:'ÎνÏιγÏαÏή',paste:'ÎÏικÏλληÏη',print:'ÎκÏÏÏÏÏη',underline:'Î¥ÏογÏάμμιÏη',bold:'ÎνÏονα',italic:'Πλάγια',selectAll:'ÎÏιλογή ÏλÏν',removeFormat:'ÎÏαίÏεÏη ÎοÏÏοÏοίηÏηÏ',strike:'ÎιαγÏάμμιÏη',subscript:'ÎείκÏηÏ',superscript:'ÎκθÎÏηÏ',horizontalrule:'ÎιÏαγÏγή ÎÏιζÏνÏÎ¹Î±Ï ÎÏαμμήÏ',pagebreak:'ÎιÏαγÏγή ÏÎλοÏ
Ï ÏελίδαÏ',unlink:'ÎÏαίÏεÏη ΣÏ
νδÎÏμοÏ
(Link)',undo:'ÎναίÏεÏη',redo:'ÎÏαναÏοÏά',common:{browseServer:'ÎξεÏεÏνηÏη διακομιÏÏή',url:'URL',protocol:'Î ÏοÏÏκολο',upload:'ÎÏοÏÏολή',uploadSubmit:'Î
ÏοÏÏολή ÏÏον ÎιακομιÏÏή',image:'ÎικÏνα',flash:'ÎιÏαγÏγή Flash',form:'ΦÏÏμα',checkbox:'ÎοÏ
Ïί εÏιλογήÏ',radio:'ÎοÏ
μÏί Radio',textField:'Πεδίο κειμÎνοÏ
',textarea:'ΠεÏιοÏή κειμÎνοÏ
',hiddenField:'ÎÏÏ
ÏÏ Ïεδίο',button:'ÎοÏ
μÏί',select:'Πεδίο εÏιλογήÏ',imageButton:'ÎοÏ
μÏί εικÏναÏ',notSet:'<ÏÏÏίÏ>',id:'Id',name:'Îνομα',langDir:'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',langDirLtr:'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',langDirRtl:'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',langCode:'ÎÏδικÏÏ ÎλÏÏÏαÏ',longDescr:'ÎναλÏ
Ïική ÏεÏιγÏαÏή URL',cssClass:'Stylesheet Classes',advisoryTitle:'ΣÏ
μβοÏ
λεÏ
ÏικÏÏ ÏίÏλοÏ',cssStyle:'ΣÏÏλ',ok:'OK',cancel:'ÎκÏÏÏÏη',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Îια ÏÏοÏÏÏημÎνοÏ
Ï',validateNumberFailed:'This value is not a n
umber.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'ÎιÏαγÏγή ÎÎ¹Î´Î¹ÎºÎ¿Ï Î£Ï
μβÏλοÏ
',title:'ÎÏιλÎξÏε Îνα ÎÎ¹Î´Î¹ÎºÏ Î£Ïμβολο',options:'Special Character Options'},link:{toolbar:'ÎιÏαγÏγή/ÎεÏαβολή ΣÏ
νδÎÏμοÏ
(Link)',other:'<άλλοÏ>',menu:'ÎεÏαβολή ΣÏ
νδÎÏμοÏ
(Link)',title:'ΣÏνδεÏÎ¼Î¿Ï (Link)',info:'Link',target:'ΠαÏάθÏ
ÏÎ
¿ ΣÏÏÏÎ¿Ï (Target)',upload:'ÎÏοÏÏολή',advanced:'Îια ÏÏοÏÏÏημÎνοÏ
Ï',type:'ΤÏÏÎ¿Ï ÏÏ
νδÎÏμοÏ
(Link)',toUrl:'URL',toAnchor:'ÎγκÏ
Ïα Ïε αÏ
Ïή Ïη Ïελίδα',toEmail:'E-Mail',targetFrame:'<ÏλαίÏιο>',targetPopup:'<ÏαÏάθÏ
Ïο popup>',targetFrameName:'Îνομα ÏλαιÏίοÏ
ÏÏÏÏοÏ
',targetPopupName:'Îνομα Popup Window',popupFeatures:'ÎÏιλογÎÏ Popup Window',popupResizable:'Resizable',popupStatusBar:'ÎÏάÏα Status',popupLocationBar:'ÎÏάÏα ΤοÏοθεÏίαÏ',popupToolbar:'ÎÏάÏα ÎÏγαλείÏν',popupMenuBar:'ÎÏάÏα Menu',popupFullScreen:'ÎλÏκληÏη η ÎθÏνη (IE)',popupScrollBars:'ÎÏάÏÎµÏ ÎÏλιÏηÏ',popupDependent:'Dependent (Netscape)',popupWidth:'ΠλάÏοÏ',popupLeft:'ΤοÏοθεÏία ÎÏιÏÏεÏÎ®Ï ÎκÏηÏ',popupHeight:'ÎÏοÏ',popupTop:'ΤοÏοθεÏία Î Î¬Î½Ï ÎκÏηÏ',id:'Id',langDir:'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',lang
DirLTR:'ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)',langDirRTL:'Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)',acccessKey:'ΣÏ
νÏÏμεÏ
Ïη (Access Key)',name:'Îνομα',langCode:'ÎαÏεÏθÏ
νÏη κειμÎνοÏ
',tabIndex:'Tab Index',advisoryTitle:'ΣÏ
μβοÏ
λεÏ
ÏικÏÏ ÏίÏλοÏ',advisoryContentType:'ΣÏ
μβοÏ
λεÏ
ÏικÏÏ ÏίÏÎ»Î¿Ï ÏεÏιεÏομÎνοÏ
',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'ΣÏÏλ',selectAnchor:'ÎÏιλÎξÏε μια άγκÏ
Ïα',anchorName:'ÎάÏει ÏοÏ
ÎνÏμαÏÎ¿Ï (Name) ÏÎ·Ï Î¬Î³ÎºÏ
ÏαÏ',anchorId:'ÎάÏει ÏοÏ
Element Id',emailAddress:'ÎιεÏθÏ
νÏη ÎλεκÏÏÎ¿Î½Î¹ÎºÎ¿Ï Î¤Î±ÏÏ
δÏομείοÏ
',emailSubject:'ÎÎμα ÎηνÏμαÏοÏ',emailBody:'Îείμενο ÎηνÏμαÏοÏ',noAnchors:'(Îεν Ï
ÏάÏÏοÏ
ν άγκÏ
ÏÎµÏ ÏÏο κείμενο)',noUrl:'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)',
noEmail:'ÎιÏάγεÏε Ïην διεÏθÏ
νÏη ηλεκÏÏÎ¿Î½Î¹ÎºÎ¿Ï ÏαÏÏ
δÏομείοÏ
'},anchor:{toolbar:'ÎιÏαγÏγή/εÏεξεÏγαÏία Anchor',menu:'ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ',title:'ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ',name:'Îνομα άγκÏ
ÏαÏ',errorName:'ΠαÏακαλοÏμε ειÏάγεÏε Ïνομα άγκÏ
ÏαÏ'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLe
adingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'ÎναζήÏηÏη',replace:'ÎνÏικαÏάÏÏαÏη',findWhat:'ÎναζήÏηÏη:',replaceWith:'ÎνÏικαÏάÏÏαÏη με:',notFoundMsg:'Το κείμενο δεν βÏÎθηκε.',matchCase:'ÎλεγÏÎ¿Ï ÏεζÏν/κεÏαλαίÏν',matchWord:'ÎÏÏεÏη ÏλήÏοÏ
Ï Î»ÎξηÏ',matchCyclic:'Match cyclic',replaceAll:'ÎνÏικαÏάÏÏαÏη ÎλÏν',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'ΠίνακαÏ',title:'ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±',menu:'ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±',deleteTable:'ÎιαγÏαÏή Ïίνακα',rows:'ÎÏαμμÎÏ',columns:'ÎολÏνεÏ',border:'ÎÎÎ³ÎµÎ¸Î¿Ï Î ÎµÏιθÏÏίοÏ
',align:'ΣÏοίÏιÏη',alignLeft:'ÎÏιÏÏεÏά',alignCenter:'ÎÎνÏÏο',alignRight:'Îεξιά',width:'ΠλάÏοÏ',widthPx:'pixels',widthPc:'%',widthUnit:'width unit',height:'ÎÏοÏ',cellSpace:'ÎÏÏÏÏÎ
±Ïη κελιÏν',cellPad:'ÎÎμιÏμα κελιÏν',caption:'Î¥ÏÎÏÏιÏλοÏ',summary:'ΠεÏίληÏη',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Îελί',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'ÎιαγÏαÏή ÎελιÏν',merge:'ÎνοÏοίηÏη ÎελιÏν',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:
'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'ΣειÏά',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'ÎιαγÏαÏή ÎÏαμμÏν'},column:{menu:'ΣÏήλη',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'ÎιαγÏαÏή ÎολÏνÏν'}},button:{title:'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏιοÏ',text:'Îείμενο (Τιμή)',type:'ΤÏÏοÏ',typeBtn:'ÎοÏ
μÏί',typeSbm:'ÎαÏαÏÏÏηÏη',typeRst:'ÎÏαναÏοÏά'},checkboxAndRadio:{checkboxTitle:'ÎδιÏÏηÏÎµÏ ÎºÎ¿
Ï
μÏÎ¹Î¿Ï ÎµÏιλογήÏ',radioTitle:'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏÎ¹Î¿Ï radio',value:'Τιμή',selected:'ÎÏιλεγμÎνο'},form:{title:'ÎδιÏÏηÏÎµÏ ÏÏÏμαÏ',menu:'ÎδιÏÏηÏÎµÏ ÏÏÏμαÏ',action:'ÎÏάÏη',method:'ÎάθοδοÏ',encoding:'Encoding'},select:{title:'ÎδιÏÏηÏÎµÏ ÏεδίοÏ
εÏιλογήÏ',selectInfo:'ΠληÏοÏοÏίεÏ',opAvail:'ÎιαθÎÏÎ¹Î¼ÎµÏ ÎµÏιλογÎÏ',value:'Τιμή',size:'ÎÎγεθοÏ',lines:'γÏαμμÎÏ',chkMulti:'ΠολλαÏλÎÏ ÎµÏιλογÎÏ',opText:'Îείμενο',opValue:'Τιμή',btnAdd:'Î ÏοÏθήκη',btnModify:'Îλλαγή',btnUp:'ΠάνÏ',btnDown:'ÎάÏÏ',btnSetValue:'Î ÏοεÏιλεγμÎνη εÏιλογή',btnDelete:'ÎιαγÏαÏή'},textarea:{title:'ÎδιÏÏηÏÎµÏ ÏεÏιοÏÎ®Ï ÎºÎµÎ¹Î¼ÎνοÏ
',cols:'ΣÏήλεÏ',rows:'ΣειÏÎÏ'},textfield:{title:'ÎδιÏÏηÏÎµÏ ÏεδίοÏ
κειμÎνοÏ
',name:'Îνομα',value:'Τιμή',charWidth:'ÎÎ
®ÎºÎ¿Ï ÏαÏακÏήÏÏν',maxChars:'ÎÎγιÏÏοι ÏαÏακÏήÏεÏ',type:'ΤÏÏοÏ',typeText:'Îείμενο',typePass:'ÎÏδικÏÏ'},hidden:{title:'ÎδιÏÏηÏÎµÏ ÎºÏÏ
ÏÎ¿Ï ÏεδίοÏ
',name:'Îνομα',value:'Τιμή'},image:{title:'ÎδιÏÏηÏÎµÏ ÎικÏναÏ',titleButton:'ÎδιÏÏηÏÎµÏ ÎºÎ¿Ï
μÏÎ¹Î¿Ï ÎµÎ¹ÎºÏναÏ',menu:'ÎδιÏÏηÏÎµÏ ÎικÏναÏ',infoTab:'ΠληÏοÏοÏÎ¯ÎµÏ ÎικÏναÏ',btnUpload:'ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή',upload:'ÎÏοÏÏολή',alt:'ÎναλλακÏÎ¹ÎºÏ Îείμενο (ALT)',width:'ΠλάÏοÏ',height:'ÎÏοÏ',lockRatio:'ÎλείδÏμα ÎναλογίαÏ',unlockRatio:'Unlock Ratio',resetSize:'ÎÏαναÏοÏά ÎÏÏÎ¹ÎºÎ¿Ï ÎεγÎθοÏ
Ï',border:'ΠεÏιθÏÏιο',hSpace:'ÎÏιζÏνÏÎ¹Î¿Ï Î§ÏÏÎ¿Ï (HSpace)',vSpace:'ÎάθεÏÎ¿Ï Î§ÏÏÎ¿Ï (VSpace)',align:'ÎÏ
θÏ
γÏάμμιÏη (Align)',alignLeft:'ÎÏιÏÏεÏά',alignRight:'Îεξιά (Right)',ale
rtUrl:'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏÎ·Ï ÎµÎ¹ÎºÏναÏ',linkTab:'ΣÏνδεÏμοÏ',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ÎδιÏÏηÏÎµÏ Flash',propertiesTab:'Properties',title:'ÎδιÏÏηÏÎµÏ flash',chkPlay:'ÎÏ
ÏÏμαÏη ÎναÏξη',chkLoop:'ÎÏανάληÏη',chkMenu:'ÎνεÏγοÏοίηÏη Flash Menu',chkFull:'Allow Fullscreen',scale:'Îλίμακα',scaleAll:'ÎμÏάνιÏη ÏλÏν',scaleNoBorder:'ΧÏÏÎ¯Ï ÏÏια',scaleFit:'ÎκÏÎ¹Î²Î®Ï ÎµÏαÏμογή',access:'Script Access',accessAlways:'Always',accessSame
Domain:'Same domain',accessNever:'Never',align:'ÎÏ
θÏ
γÏάμμιÏη (Align)',alignLeft:'ÎÏιÏÏεÏά',alignAbsBottom:'ÎÏÏλÏ
Ïα ÎάÏÏ (Abs Bottom)',alignAbsMiddle:'ÎÏÏλÏ
Ïα ÏÏη ÎÎÏη (Abs Middle)',alignBaseline:'ÎÏαμμή ÎάÏÎ·Ï (Baseline)',alignBottom:'ÎάÏÏ (Bottom)',alignMiddle:'ÎÎÏη (Middle)',alignRight:'Îεξιά (Right)',alignTextTop:'ÎοÏÏ
Ïή ÎειμÎνοÏ
(Text Top)',alignTop:'Î Î¬Î½Ï (Top)',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'ΧÏÏμα Î¥ÏοβάθÏοÏ
',width:'ΠλάÏοÏ',height:'ÎÏοÏ',hSpace:'ÎÏιζÏνÏÎ¹Î¿Ï Î§ÏÏÎ¿Ï (HSpace)',vSpace:'ÎάθεÏÎ¿Ï Î§ÏÏÎ¿Ï (VSpace)',validateSrc:'ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) Ïο
Ï
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'ÎÏθογÏαÏικÏÏ ÎλεγÏοÏ',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Îεν Ï
ÏάÏÏει ÏÏο λεξικÏ',changeTo:'Îλλαγή Ïε',btnIgnore:'ÎγνÏηÏη',btnIgnoreAll:'ÎγνÏηÏη ÏλÏν',btnReplace:'ÎνÏικαÏάÏÏαÏη',btnReplaceAll:'ÎνÏικαÏάÏÏαÏη ÏλÏν',btnUndo:'ÎναίÏεÏη',noSuggestions:'- Îεν Ï
ÏάÏÏοÏ
ν ÏÏοÏάÏÎµÎ¹Ï -',progress:'ÎÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Ïε εξÎλιξη...',noMispell:'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν βÏÎθηκαν λάθη',noChanges:'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏÎ
¸Î·ÎºÎµ: Îεν άλλαξαν λÎξειÏ',oneChange:'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îια λÎξη άλλαξε',manyChanges:'ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: %1 λÎÎ¾ÎµÎ¹Ï Î¬Î»Î»Î±Î¾Î±Î½',ieSpellDownload:'Îεν Ï
ÏάÏÏει εγκαÏεÏÏημÎÎ½Î¿Ï Î¿ÏθογÏάÏοÏ. ÎÎλεÏε να Ïον καÏεβάÏεÏε ÏÏÏα;'},smiley:{toolbar:'Smiley',title:'ÎÏιλÎξÏε Îνα Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ÎίÏÏα με ÎÏιθμοÏÏ',bulletedlist:'ÎίÏÏα με Bullets',indent:'ÎÏξηÏη ÎÏοÏήÏ',outdent:'ÎείÏÏη ÎÏοÏήÏ',justify:{left:'ΣÏοίÏιÏη ÎÏιÏÏεÏά',center:'ΣÏοίÏιÏη ÏÏο ÎÎνÏÏο',right:'ΣÏοίÏιÏη Îεξιά',block:'ΠλήÏÎ·Ï Î£ÏοίÏιÏη (Block)'},blockquote:'Block Quote',clipboard:{title:'ÎÏικÏλληÏη',cutError:'Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία αÏοκοÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+X).',copyError:'Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία ανÏιγÏαÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+C).',pasteMsg:'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏικολήÏÏε ÏÏο ακÏλοÏ
θο κοÏ
Ïί ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïο ÏληκÏÏολÏγιο (<STRONG>Ctrl/Cmd+V</STRONG>) και ÏαÏήÏÏε <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copie
d from Word. Do you want to clean it before pasting?',toolbar:'ÎÏικÏλληÏη αÏÏ Ïο Word',title:'ÎÏικÏλληÏη αÏÏ Ïο Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο',title:'ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο'},templates:{button:'Î ÏÏÏÏ
Ïα',title:'Î ÏÏÏÏ
Ïα ÏεÏιεÏομÎνοÏ
',options:'Template Options',insertOption:'ÎνÏικαÏάÏÏαÏη Ï
ÏάÏÏονÏÏν ÏεÏιεÏομÎνÏν',selectPromptMsg:'ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏιλÎξÏε ÏÏÏÏÏ
Ïο για ειÏαγÏγή ÏÏο ÏÏÏγÏαμμα<br>(Ïα Ï
ÏάÏÏονÏα ÏεÏιεÏÏμενα θα ÏαθοÏν):',emptyListMsg:'(Îεν ÎÏοÏ
ν καθοÏιÏÏεί ÏÏÏÏÏ
Ïα)'},showBlocks:'Show Blocks',stylesCombo:{label:'ΣÏÏ
λ',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},fo
rmat:{label:'ÎοÏÏή ÎÏαμμαÏοÏειÏάÏ',panelTitle:'ÎοÏÏή ÎÏαμμαÏοÏειÏάÏ',tag_p:'ÎανονικÏ',tag_pre:'ÎοÏÏοÏοιημÎνο',tag_address:'ÎιεÏθÏ
νÏη',tag_h1:'ÎÏικεÏαλίδα 1',tag_h2:'ÎÏικεÏαλίδα 2',tag_h3:'ÎÏικεÏαλίδα 3',tag_h4:'ÎÏικεÏαλίδα 4',tag_h5:'ÎÏικεÏαλίδα 5',tag_h6:'ÎÏικεÏαλίδα 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ÎÏαμμαÏοÏειÏά',voiceLabel:'Font',panelTitle:'ÎÏαμμαÏοÏειÏά'},fontSize:{label:'ÎÎγεθοÏ',voiceLabel:'F
ont Size',panelTitle:'ÎÎγεθοÏ'},colorButton:{textColorTitle:'ΧÏÏμα ÎÏαμμάÏÏν',bgColorTitle:'ΧÏÏμα Î¥ÏοβάθÏοÏ
',panelTitle:'Colors',auto:'ÎÏ
ÏÏμαÏο',more:'ΠεÏιÏÏÏÏεÏα ÏÏÏμαÏα...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell
Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dicti
onary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['el']={"dir":"ltr","editor":"ÎÏεξεÏγαÏÏÎ®Ï Î Î»Î¿ÏÏιοÏ
ÎειμÎνοÏ
","common":{"editorHelp":"ΠαÏήÏÏε Ïο ALT 0 για βοήθεια","browseServer":"ÎξεÏεÏνηÏη διακομιÏÏή","url":"URL","protocol":"Î ÏÏÏÏκολλο","upload":"ÎνÎβαÏμα","uploadSubmit":"ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή","image":"ÎικÏνα","flash":"ÎιÏαγÏγή Flash","form":"ΦÏÏμα","checkbox":"ÎοÏ
Ïί εÏιλογήÏ","radio":"ÎοÏ
μÏί εÏιλογήÏ","textField":"Πεδίο κειμÎνοÏ
","textarea":"ΠεÏιοÏή κειμÎνοÏ
","hiddenField":"ÎÏÏ
ÏÏ Ïεδίο","button":"ÎοÏ
μÏί","select":"Πεδίο εÏιλογήÏ","imageButton":"ÎοÏ
μÏί εικÏναÏ","notSet":"<δεν ÎÏει ÏÏ
θμιÏÏεί>","id":"Id","name":"Îνομα","langDir":"ÎαÏεÏθÏ
νÏη κειμÎνοÏ
","langDirLtr":"ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)","langDirRtl":"Îεξιά ÏÏÎ¿Ï ÎÏιÏ
ÏεÏά (RTL)","langCode":"ÎÏδικÏÏ ÎλÏÏÏαÏ","longDescr":"ÎναλÏ
Ïική ÏεÏιγÏαÏή URL","cssClass":"Stylesheet Classes","advisoryTitle":"ÎνδεικÏικÏÏ ÏίÏλοÏ","cssStyle":"ÎοÏÏή κειμÎνοÏ
","ok":"OK","cancel":"ÎκÏÏÏÏη","close":"ÎλείÏιμο","preview":"Î ÏοεÏιÏκÏÏηÏη","resize":"ΣÏÏÏιμο για αλλαγή μεγÎθοÏ
Ï","generalTab":"Îενικά","advancedTab":"Îια ÏÏοÏÏÏημÎνοÏ
Ï","validateNumberFailed":"ÎÏ
Ïή η Ïιμή δεν είναι αÏιθμÏÏ.","confirmNewPage":"Îι ÏÏÎ¿Î¹ÎµÏ Î±Î»Î»Î±Î³ÎÏ ÏÏο ÏεÏιεÏÏμενο θα ÏαθοÏν. ÎίÏαÏÏε ÏίγοÏ
Ïοι ÏÏι θÎλεÏε να ÏοÏÏÏÏεÏε μια νÎα Ïελίδα;","confirmCancel":"ÎεÏικÎÏ ÎµÏιλογÎÏ ÎÏοÏ
ν αλλάξει. ÎίÏαÏÏε ÏίγοÏ
Ïοι ÏÏι θÎλεÏε να κλείÏεÏε Ïο ÏαÏάθÏ
Ïο διαλÏγοÏ
;","options":"ÎÏιλογÎÏ
","target":"Î ÏοοÏιÏμÏÏ","targetNew":"ÎÎο ΠαÏάθÏ
Ïο (_blank)","targetTop":"ÎÏÏική ΠεÏιοÏή (_top)","targetSelf":"Îδια ΠεÏιοÏή (_self)","targetParent":"ÎονεÏÎºÏ Î Î±ÏάθÏ
Ïο (_parent)","langDirLTR":"ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)","langDirRTL":"Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)","styles":"ÎοÏÏή","cssClasses":"Stylesheet Classes","width":"ΠλάÏοÏ","height":"ÎÏοÏ","align":"ΣÏοίÏιÏη","alignLeft":"ÎÏιÏÏεÏά","alignRight":"Îεξιά","alignCenter":"ÎÎνÏÏο","alignTop":"ΠάνÏ","alignMiddle":"ÎÎÏη","alignBottom":"ÎάÏÏ","invalidValue":"Îη ÎγκÏ
Ïη Ïιμή.","invalidHeight":"Το ÏÏÎ¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.","invalidWidth":"Το ÏλάÏÎ¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.","invalidCssLength":"Î Ïιμή ÏοÏ
οÏίζεÏαι για Ïο Ïεδίο \"%1\" ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏιÎ
ºÏÏ Î±ÏιθμÏÏ Î¼Îµ ή ÏÏÏÎ¯Ï Î¼Î¹Î± ÎγκÏ
Ïη μονάδα μÎÏÏηÏÎ·Ï CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","invalidHtmlLength":"Î Ïιμή ÏοÏ
οÏίζεÏαι για Ïο Ïεδίο \"%1\" ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ Î¼Îµ ή ÏÏÏÎ¯Ï Î¼Î¹Î± ÎγκÏ
Ïη μονάδα μÎÏÏηÏÎ·Ï HTML (px or %).","invalidInlineStyle":"Î Ïιμή για Ïο εν ÏειÏά ÏÏÏ
λ ÏÏÎÏει να ÏεÏιÎÏει Îνα ή ÏεÏιÏÏÏÏεÏα ζεÏγη με Ïην μοÏÏή \"Ïνομα: Ïιμή\" διαÏÏÏιÏμÎνα με ÎÎ»Î»Î·Î½Î¹ÎºÏ ÎµÏÏÏημαÏικÏ.","cssLengthTooltip":"ÎιÏάγεÏαι μια Ïιμή Ïε pixel ή Îναν αÏÎ¹Î¸Î¼Ï Î¼Î±Î¶Î¯ με μια ÎγκÏ
Ïη μονάδα μÎÏÏηÏÎ·Ï CSS (px, %, in, cm, mm, em, ex, pt, ή pc).","unavailable":"%1<span class=\"cke_accessibility\">, δεν είναι διαθÎÏιμο</span>"},"about":{"copy":"ΠνεÏ
μαÏικά δικ
αιÏμαÏα © $1 Îε εÏιÏÏλαξη ÏανÏÏÏ Î´Î¹ÎºÎ±Î¹ÏμαÏοÏ.","dlgTitle":"ΠεÏί ÏοÏ
CKEditor","help":"ÎλÎγξÏε Ïο $1 για βοήθεια.","moreInfo":"Îια ÏληÏοÏοÏÎ¯ÎµÏ Î±Î´ÎµÎ¹Ïν ÏαÏακαλοÏμε εÏιÏκεÏθείÏε Ïην ιÏÏοÏελίδα μαÏ:","title":"ΠεÏί ÏοÏ
CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"ÎνÏονα","italic":"Πλάγια","strike":"ÎιαγÏάμμιÏη","subscript":"ÎείκÏηÏ","superscript":"ÎκθÎÏηÏ","underline":"Î¥ÏογÏάμμιÏη"},"bidi":{"ltr":"ÎιεÏθÏ
νÏη κειμÎνοÏ
αÏÏ Î±ÏιÏÏεÏά ÏÏα δεξιά","rtl":"ÎιεÏθÏ
νÏη κειμÎνοÏ
αÏÏ Î´ÎµÎ¾Î¹Î¬ ÏÏα αÏιÏÏεÏά"},"blockquote":{"toolbar":"ΠεÏιοÏή ΠαÏάθεÏηÏ"},"clipboard":{"copy":"ÎνÏιγÏαÏή","copyError":"Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
Î
½ Ïην εÏιλεγμÎνη εÏγαÏία ανÏιγÏαÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+C).","cut":"ÎÏοκοÏή","cutError":"Îι ÏÏ
θμίÏÎµÎ¹Ï Î±ÏÏÎ±Î»ÎµÎ¯Î±Ï ÏοÏ
ÏÏ
λλομεÏÏηÏή ÏÎ±Ï Î´ÎµÎ½ εÏιÏÏÎÏοÏ
ν Ïην εÏιλεγμÎνη εÏγαÏία αÏοκοÏήÏ. ΧÏηÏιμοÏοιείÏÏε Ïο ÏληκÏÏολÏγιο (Ctrl/Cmd+X).","paste":"ÎÏικÏλληÏη","pasteArea":"ΠεÏιοÏή ÎÏικÏλληÏηÏ","pasteMsg":"ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏικολήÏÏε ÏÏο ακÏλοÏ
θο κοÏ
Ïί ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïο ÏληκÏÏολÏγιο (<strong>Ctrl/Cmd+V</strong>) και ÏαÏήÏÏε OK.","securityMsg":"ÎÏγÏν ÏÏν ÏÏ
θμίÏεÏν αÏÏÎ¬Î»ÎµÎ¹Î±Ï ÏοÏ
ÏεÏιηγηÏή ÏαÏ, ο εÏεξεÏγαÏÏÎ®Ï Î´ÎµÎ½ μÏοÏεί να ÎÏει ÏÏÏÏβαÏη ÏÏην μνήμη εÏικÏλληÏηÏ. ΧÏειάζεÏαι να εÏικολλήÏεÏε
ξανά Ïε αÏ
ÏÏ Ïο ÏαÏάθÏ
Ïο.","title":"ÎÏικÏλληÏη"},"colorbutton":{"auto":"ÎÏ
ÏÏμαÏα","bgColorTitle":"ΧÏÏμα ΦÏνÏοÏ
","colors":{"000":"ÎαÏÏο","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"ÎÏβ","808080":"ÎκÏί","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"ΠεÏιÏÏÏÏεÏα
ÏÏÏμαÏα...","panelTitle":"ΧÏÏμαÏα","textColorTitle":"ΧÏÏμα ÎειμÎνοÏ
"},"colordialog":{"clear":"ÎαθαÏιÏμÏÏ","highlight":"ΣήμανÏη","options":"ÎÏιλογÎÏ Î§ÏÏμάÏÏν","selected":"ÎÏιλεγμÎνο ΧÏÏμα","title":"ÎÏιλογή ΧÏÏμαÏοÏ"},"templates":{"button":"Î ÏÏÏÏ
Ïα","emptyListMsg":"(Îεν ÎÏοÏ
ν καθοÏιÏÏεί ÏÏÏÏÏ
Ïα)","insertOption":"ÎνÏικαÏάÏÏαÏη Ï
ÏάÏÏονÏÏν ÏεÏιεÏομÎνÏν","options":"ÎÏιλογÎÏ Î ÏοÏÏÏοÏ
","selectPromptMsg":"ΠαÏÎ±ÎºÎ±Î»Ï ÎµÏιλÎξÏε ÏÏÏÏÏ
Ïο για ειÏαγÏγή ÏÏο ÏÏÏγÏαμμα","title":"Î ÏÏÏÏ
Ïα ΠεÏιεÏομÎνοÏ
"},"contextmenu":{"options":"ÎÏιλογÎÏ ÎναδÏ
ÏμενοÏ
ÎενοÏ"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"ÎνδεικÏικÏÏ Î¤Î¯ÏλοÏ","cssClassInputLabel":"Stylesheet Classes","edit":"ÎÏεξεÏγαÏία Div","inlineStyleInpu
tLabel":"ΣÏÏ
λ Îν ΣειÏά","langDirLTRLabel":"ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)","langDirLabel":"ÎαÏεÏθÏ
νÏη ÎειμÎνοÏ
","langDirRTLLabel":"Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)","languageCodeInputLabel":"ÎÏδικÏÏ ÎλÏÏÏαÏ","remove":"ÎιαγÏαÏή Div","styleSelectLabel":"ÎοÏÏή","title":"ÎημιοÏ
Ïγεία Div","toolbar":"ÎημιοÏ
Ïγεία Div"},"toolbar":{"toolbarCollapse":"ΣÏμÏÏηξη ÎÏγαλειοθήκηÏ","toolbarExpand":"ÎνάÏÏÏ
ξη ÎÏγαλειοθήκηÏ","toolbarGroups":{"document":"ÎγγÏαÏο","clipboard":"Clipboard/Undo","editing":"Σε εÏεξεÏγαÏία","forms":"ΦÏÏμεÏ","basicstyles":"ÎαÏικά ÏÏÏ
λ","paragraph":"ΠαÏάγÏαÏοÏ","links":"ΣÏ
νδÎÏμοι","insert":"ÎιÏαγÏγή","styles":"ΣÏÏ
λ","colors":"ΧÏÏμαÏα","tools":"ÎÏγαλεία"},"toolbars":"ÎÏÎ³Î±Î»ÎµÎ¹Î¿Î¸Î®ÎºÎµÏ ÎÏεξεÏγαÏÏή"},"elementspath":{"eleLabel":"ÎιÎ
±Î´Ïομή ÏÏοιÏείÏν","eleTitle":"%1 ÏÏοιÏείο"},"list":{"bulletedlist":"ÎιÏαγÏγή/ÎÏομάκÏÏ
νÏη ÎίÏÏÎ±Ï ÎοÏ
κκίδÏν","numberedlist":"ÎιÏαγÏγή/ÎÏομάκÏÏ
νÏη ÎÏιθμημÎÎ½Î·Ï ÎίÏÏαÏ"},"indent":{"indent":"ÎÏξηÏη ÎÏοÏήÏ","outdent":"ÎείÏÏη ÎÏοÏήÏ"},"find":{"find":"ÎναζήÏηÏη","findOptions":"Find Options","findWhat":"ÎναζήÏηÏη για:","matchCase":"ÎλεγÏÎ¿Ï ÏεζÏν/κεÏαλαίÏν","matchCyclic":"Match cyclic","matchWord":"ÎÏÏεÏη ÏλήÏοÏ
Ï Î»ÎξηÏ","notFoundMsg":"Το κείμενο δεν βÏÎθηκε.","replace":"ÎνÏικαÏάÏÏαÏη","replaceAll":"ÎνÏικαÏάÏÏαÏη ÎλÏν","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"ÎνÏικαÏάÏÏαÏη με:","title":"ÎναζήÏηÏη και ÎνÏικαÏάÏÏαÏη"},"fakeobjects":{"anchor":"ÎιÏαγÏγή/εÏεξεÏγαÏία ÎγκÏ
ÏαÏ","flash":
"Ταινία Flash","hiddenfield":"ÎÏÏ
ÏÏ Ïεδίο","iframe":"IFrame","unknown":"ÎγνÏÏÏο ÎνÏικείμενο"},"flash":{"access":"Î ÏÏÏβαÏη Script","accessAlways":"ΠάνÏα","accessNever":"ΠοÏÎ","accessSameDomain":"Îδιο Ïνομα ÏομÎα","alignAbsBottom":"ÎÏÏλÏ
Ïα ÎάÏÏ","alignAbsMiddle":"ÎÏÏλÏ
Ïα ÏÏη ÎÎÏη","alignBaseline":"ÎÏαμμή ÎάÏηÏ","alignTextTop":"ÎοÏÏ
Ïή ÎειμÎνοÏ
","bgcolor":"ΧÏÏμα Î¥ÏοβάθÏοÏ
","chkFull":"Îα ÎÏιÏÏÎÏεÏαι η Î Ïοβολή Ïε ΠλήÏη ÎθÏνη","chkLoop":"ÎÏανάληÏη","chkMenu":"ÎνεÏγοÏοίηÏη Flash Menu","chkPlay":"ÎÏ
ÏÏμαÏη ÎκÏÎλεÏη","flashvars":"ÎεÏαβληÏÎÏ Î³Î¹Î± Flash","hSpace":"ÎÏιζÏνÏιο ÎιάÏÏημα","properties":"ÎδιÏÏηÏÎµÏ Flash","propertiesTab":"ÎδιÏÏηÏεÏ","quality":"ΠοιÏÏηÏα","qualityAutoHigh":"ÎÏ
ÏÏμαÏη Î¥Ïηλή","qualityAutoLow":"ÎÏ
ÏÏμÎ
±Ïη Χαμηλή","qualityBest":"ÎαλÏÏεÏη","qualityHigh":"Î¥Ïηλή","qualityLow":"Χαμηλή","qualityMedium":"ÎεÏαία","scale":"ÎεγÎθÏ
νÏη","scaleAll":"ÎμÏάνιÏη ÏλÏν","scaleFit":"ÎκÏιβÎÏ ÎÎγεθοÏ","scaleNoBorder":"ΧÏÏÎ¯Ï Î ÎµÏίγÏαμμα","title":"ÎδιÏÏηÏÎµÏ Flash","vSpace":"ÎάθεÏο ÎιάÏÏημα","validateHSpace":"Το HSpace ÏÏÎÏει να είναι αÏιθμÏÏ.","validateSrc":"ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)","validateVSpace":"Το VSpace ÏÏÎÏει να είναι αÏιθμÏÏ.","windowMode":"ΤÏÏÏÎ¿Ï Î»ÎµÎ¹ÏοÏ
ÏÎ³Î¯Î±Ï ÏαÏαθÏÏοÏ
.","windowModeOpaque":"ΣÏ
μÏαγÎÏ","windowModeTransparent":"ÎιάÏανο","windowModeWindow":"ΠαÏάθÏ
Ïο"},"font":{"fontSize":{"label":"ÎÎγεθοÏ","voiceLabel":"ÎÎÎ³ÎµÎ¸Î¿Ï Î³ÏαμμαÏοÏειÏάÏ","panelTitle":"ÎÎÎ³ÎµÎ¸Î¿Ï ÎÏαμμαÏοÏειÏάÏ"},"l
abel":"ÎÏαμμαÏοÏειÏά","panelTitle":"Îνομα ÎÏαμμαÏοÏειÏάÏ","voiceLabel":"ÎÏαμμαÏοÏειÏά"},"forms":{"button":{"title":"ÎδιÏÏηÏÎµÏ ÎοÏ
μÏιοÏ","text":"Îείμενο (Τιμή)","type":"ΤÏÏοÏ","typeBtn":"ÎοÏ
μÏί","typeSbm":"Î¥Ïοβολή","typeRst":"ÎÏαναÏοÏά"},"checkboxAndRadio":{"checkboxTitle":"ÎδιÏÏηÏÎµÏ ÎοÏ
ÏÎ¹Î¿Ï ÎÏιλογήÏ","radioTitle":"ÎδιÏÏηÏÎµÏ ÎοÏ
μÏÎ¹Î¿Ï ÎÏιλογήÏ","value":"Τιμή","selected":"ÎÏιλεγμÎνο"},"form":{"title":"ÎδιÏÏηÏÎµÏ Î¦ÏÏμαÏ","menu":"ÎδιÏÏηÏÎµÏ Î¦ÏÏμαÏ","action":"ÎÏάÏη","method":"ÎÎθοδοÏ","encoding":"ÎÏδικοÏοίηÏη"},"hidden":{"title":"ÎδιÏÏηÏÎµÏ ÎÏÏ
ÏÎ¿Ï Î ÎµÎ´Î¯Î¿Ï
","name":"Îνομα","value":"Τιμή"},"select":{"title":"ÎδιÏÏηÏÎµÏ Î ÎµÎ´Î¯Î¿Ï
ÎÏιλογήÏ","selectInfo":"ΠληÏοÏοÏÎ¯ÎµÏ Î ÎµÎ´Î¯Î¿Ï
ÎÏιλογήÏ","opAvail":"ÎιαθÎ
ÏÎ¹Î¼ÎµÏ ÎÏιλογÎÏ","value":"Τιμή","size":"ÎÎγεθοÏ","lines":"γÏαμμÎÏ","chkMulti":"Îα εÏιÏÏÎÏονÏαι οι ÏολλαÏλÎÏ ÎµÏιλογÎÏ","opText":"Îείμενο","opValue":"Τιμή","btnAdd":"Î ÏοÏθήκη","btnModify":"ΤÏοÏοÏοίηÏη","btnUp":"ΠάνÏ","btnDown":"ÎάÏÏ","btnSetValue":"Î ÏοεÏιλογή","btnDelete":"ÎιαγÏαÏή"},"textarea":{"title":"ÎδιÏÏηÏÎµÏ Î ÎµÏιοÏÎ®Ï ÎειμÎνοÏ
","cols":"ΣÏήλεÏ","rows":"ΣειÏÎÏ"},"textfield":{"title":"ÎδιÏÏηÏÎµÏ Î ÎµÎ´Î¯Î¿Ï
ÎειμÎνοÏ
","name":"Îνομα","value":"Τιμή","charWidth":"ΠλάÏÎ¿Ï Î§Î±ÏακÏήÏÏν","maxChars":"ÎÎγιÏÏοι ÏαÏακÏήÏεÏ","type":"ΤÏÏοÏ","typeText":"Îείμενο","typePass":"ÎÏδικÏÏ","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ÎοÏÏοÏοίηÏη","panelTitle":"ÎοÏÏοÏοίηÏη ΠαÏαγÏ
άÏοÏ
","tag_address":"ÎιεÏθÏ
νÏη","tag_div":"ÎÎ±Î½Î¿Î½Î¹ÎºÏ (DIV)","tag_h1":"ÎÏικεÏαλίδα 1","tag_h2":"ÎÏικεÏαλίδα 2","tag_h3":"ÎÏικεÏαλίδα 3","tag_h4":"ÎÏικεÏαλίδα 4","tag_h5":"ÎÏικεÏαλίδα 5","tag_h6":"ÎÏικεÏαλίδα 6","tag_p":"ÎανονικÏ","tag_pre":"ÎοÏÏοÏοιημÎνο"},"horizontalrule":{"toolbar":"ÎιÏαγÏγή ÎÏιζÏνÏÎ¹Î±Ï ÎÏαμμήÏ"},"iframe":{"border":"Î Ïοβολή ÏεÏιγÏάμμαÏÎ¿Ï ÏλαιÏίοÏ
","noUrl":"ΠαÏακαλοÏμε ειÏάγεÏαι Ïο URL ÏοÏ
iframe","scrolling":"ÎνεÏγοÏοίηÏη μÏαÏÏν κÏλιÏηÏ","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏÎ·Ï ÎµÎ¹ÎºÏναÏ","alt":"ÎναλλακÏÎ¹ÎºÏ Îείμενο","border":"ΠεÏίγÏαμμα","btnUpload":"ÎÏοÏÏολή ÏÏον ÎιακομιÏÏή","button2Img":"ÎÎλεÏε να μεÏα
ÏÏÎÏεÏε Ïο εÏιλεγμÎνο κοÏ
μÏί εικÏÎ½Î±Ï Ïε αÏλή εικÏνα;","hSpace":"ÎÏιζÏνÏιο ÎιάÏÏημα","img2Button":"ÎÎλεÏε να μεÏαμοÏÏÏÏεÏε Ïην εÏιλεγμÎνη εικÏνα ÏοÏ
είναι ÏÎ¬Î½Ï Ïε Îνα κοÏ
μÏί;","infoTab":"ΠληÏοÏοÏÎ¯ÎµÏ ÎικÏναÏ","linkTab":"ΣÏνδεÏμοÏ","lockRatio":"ÎλείδÏμα ÎναλογίαÏ","menu":"ÎδιÏÏηÏÎµÏ ÎικÏναÏ","resetSize":"ÎÏαναÏοÏά ÎÏÏÎ¹ÎºÎ¿Ï ÎεγÎθοÏ
Ï","title":"ÎδιÏÏηÏÎµÏ ÎικÏναÏ","titleButton":"ÎδιÏÏηÏÎµÏ ÎοÏ
μÏÎ¹Î¿Ï ÎικÏναÏ","upload":"ÎνÎβαÏμα","urlMissing":"Το URL ÏÎ·Î³Î®Ï Î³Î¹Î± Ïην εικÏνα λείÏει.","vSpace":"ÎάθεÏο ÎιάÏÏημα","validateBorder":"Το ÏεÏίγÏαμμα ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÎºÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ.","validateHSpace":"Το HSpace ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÎºÎÏαÎ
¹Î¿Ï αÏιθμÏÏ.","validateVSpace":"Το VSpace ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÎºÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ."},"smiley":{"options":"ÎÏιλογÎÏ Smiley","title":"ÎÏιλÎξÏε Îνα Smiley","toolbar":"Smiley"},"justify":{"block":"ΠλήÏÎ·Ï Î£ÏοίÏιÏη","center":"ΣÏοίÏιÏη ÏÏο ÎÎνÏÏο","left":"ΣÏοίÏιÏη ÎÏιÏÏεÏά","right":"ΣÏοίÏιÏη Îεξιά"},"link":{"acccessKey":"ΣÏ
νÏÏμεÏ
Ïη","advanced":"Îια ÏÏοÏÏÏημÎνοÏ
Ï","advisoryContentType":"ÎνδεικÏικÏÏ Î¤ÏÏÎ¿Ï Î ÎµÏιεÏομÎνοÏ
","advisoryTitle":"ÎνδεικÏικÏÏ Î¤Î¯ÏλοÏ","anchor":{"toolbar":"ÎιÏαγÏγή/εÏεξεÏγαÏία ÎγκÏ
ÏαÏ","menu":"ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ","title":"ÎδιÏÏηÏÎµÏ Î¬Î³ÎºÏ
ÏαÏ","name":"Îνομα άγκÏ
ÏαÏ","errorName":"ΠαÏακαλοÏμε ειÏάγεÏε Ïνομα άγκÏ
ÏαÏ","remove":"ÎÏαίÏεÏη ÎγκÏ
ÏαÏ"},"anchorId":"ÎάÏει Ï
οÏ
Element Id","anchorName":"ÎάÏει ÏοÏ
ÎνÏμαÏÎ¿Ï ÏÎ·Ï Î¬Î³ÎºÏ
ÏαÏ","charset":"ÎÏδικοÏοίηÏη ΧαÏακÏήÏÏν Î ÏοÏαÏÏημÎÎ½Î·Ï Î Î·Î³Î®Ï","cssClasses":"Stylesheet Classes","emailAddress":"ÎιεÏθÏ
νÏη e-mail","emailBody":"Îείμενο ÎηνÏμαÏοÏ","emailSubject":"ÎÎμα ÎηνÏμαÏοÏ","id":"Id","info":"ΠληÏοÏοÏÎ¯ÎµÏ Î£Ï
νδÎÏμοÏ
","langCode":"ÎαÏεÏθÏ
νÏη ÎειμÎνοÏ
","langDir":"ÎαÏεÏθÏ
νÏη ÎειμÎνοÏ
","langDirLTR":"ÎÏιÏÏεÏά ÏÏÎ¿Ï Îεξιά (LTR)","langDirRTL":"Îεξιά ÏÏÎ¿Ï ÎÏιÏÏεÏά (RTL)","menu":"ÎÏεξεÏγαÏία ΣÏ
νδÎÏμοÏ
","name":"Îνομα","noAnchors":"(Îεν Ï
ÏάÏÏοÏ
ν άγκÏ
ÏÎµÏ ÏÏο κείμενο)","noEmail":"ÎιÏάγεÏε Ïην διεÏθÏ
νÏη ηλεκÏÏÎ¿Î½Î¹ÎºÎ¿Ï ÏαÏÏ
δÏομείοÏ
","noUrl":"ÎιÏάγεÏε Ïην ÏοÏοθεÏία (URL) ÏοÏ
Ï
ÏεÏÏÏ
νδÎÏμοÏ
(Link)","o
ther":"<άλλο>","popupDependent":"ÎξαÏÏημÎνο (Netscape)","popupFeatures":"ÎÏιλογÎÏ ÎναδÏ
ÏμενοÏ
ΠαÏαθÏÏοÏ
","popupFullScreen":"ΠλήÏÎ·Ï ÎθÏνη (IE)","popupLeft":"ÎÎÏη ÎÏιÏÏεÏά","popupLocationBar":"ÎÏαμμή ΤοÏοθεÏίαÏ","popupMenuBar":"ÎÏαμμή ÎÏιλογÏν","popupResizable":"Î ÏοÏαÏμοζÏμενο ÎÎγεθοÏ","popupScrollBars":"ÎÏάÏÎµÏ ÎÏλιÏηÏ","popupStatusBar":"ÎÏαμμή ÎαÏάÏÏαÏηÏ","popupToolbar":"ÎÏγαλειοθήκη","popupTop":"ÎÎÏη ΠάνÏ","rel":"ΣÏÎÏη","selectAnchor":"ÎÏιλÎξÏε μια άγκÏ
Ïα","styles":"ÎοÏÏή","tabIndex":"ΣειÏά ÎεÏαÏήδηÏηÏ","target":"ΠαÏάθÏ
Ïο Î ÏοοÏιÏμοÏ","targetFrame":"<ÏλαίÏιο>","targetFrameName":"Îνομα ΠαÏαθÏÏοÏ
Î ÏοοÏιÏμοÏ","targetPopup":"<αναδÏ
Ïμενο ÏαÏάθÏ
Ïο>","targetPopupName":"Îνομα ÎναδÏ
ÏμενοÏ
ΠαÏαθ
ÏÏοÏ
","title":"ΣÏνδεÏμοÏ","toAnchor":"ÎγκÏ
Ïα Ïε αÏ
Ïή Ïη Ïελίδα","toEmail":"E-Mail","toUrl":"URL","toolbar":"ΣÏνδεÏμοÏ","type":"ΤÏÏÎ¿Ï Î£Ï
νδÎÏμοÏ
","unlink":"ÎÏαίÏεÏη ΣÏ
νδÎÏμοÏ
(Link)","upload":"ÎνÎβαÏμα"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"ÎδιÏÏηÏÎµÏ ÎίÏÏÎ±Ï Î£Î·Î¼ÎµÎ¯Ïν","circle":"ÎÏκλοÏ","decimal":"ÎεκαδικÏÏ (1, 2, 3, κÏλ)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"ÎίÏκοÏ","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"ΤίÏοÏα","notset":"<δεν ÎÏει οÏιÏÏεί>","numberedTitle":"ÎδιÏÏηÏÎµÏ ÎÏιθμημÎÎ½Î·Ï ÎίÏÏÎ±Ï ","square":"ΤεÏÏάγÏνο","start":"ÎκκίνηÏη","type":"ΤÏÏοÏ","upperAlpha"
:"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"ΠαÏιθμÏÏ ÎµÎºÎºÎ¯Î½Î·ÏÎ·Ï ÏÎ·Ï Î±ÏίθμηÏÎ·Ï ÏÏÎÏει να είναι ακÎÏÎ±Î¹Î¿Ï Î±ÏιθμÏÏ."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ÎεγιÏÏοÏοίηÏη","minimize":"ÎλαÏιÏÏοÏοίηÏη"},"newpage":{"toolbar":"ÎÎα Σελίδα"},"pagebreak":{"alt":"Îλλαγή ΣελίδαÏ","toolbar":"ÎιÏαγÏγή ÏÎλοÏ
Ï ÏελίδαÏ"},"pastetext":{"button":"ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο","title":"ÎÏικÏλληÏη ÏÏ ÎÏÎ»Ï Îείμενο"},"pastefromword":{"confirmCleanup":"Το κείμενο ÏοÏ
εÏικολλάÏαι ÏαίνεÏαι να είναι ανÏιγÏαμμÎνο αÏÏ Ïο Word. ÎήÏÏÏ Î¸Î± θÎλαÏε να καθαÏιÏÏεί ÏÏοÏÎ¿Ï ÎµÏικολληθεί;","error":"Îεν ήÏαν δÏ
ναÏÏ Î½Î± καθαÏιÏÏοÏν Ï
α δεδομÎνα λÏÎ³Ï ÎµÎ½ÏÏ ÎµÏÏÏεÏÎ¹ÎºÎ¿Ï ÏÏάλμαÏοÏ","title":"ÎÏικÏλληÏη αÏÏ Ïο Word","toolbar":"ÎÏικÏλληÏη αÏÏ Ïο Word"},"preview":{"preview":"Î ÏοεÏιÏκÏÏιÏη"},"print":{"toolbar":"ÎκÏÏÏÏÏη"},"removeformat":{"toolbar":"ÎÏαίÏεÏη ÎοÏÏοÏοίηÏηÏ"},"save":{"toolbar":"ÎÏοθήκεÏ
Ïη"},"selectall":{"toolbar":"ÎÏιλογή ÏλÏν"},"showblocks":{"toolbar":"Î Ïοβολή ΠεÏιοÏÏν"},"sourcearea":{"toolbar":"HTML κÏδικαÏ"},"specialchar":{"options":"ÎÏιλογÎÏ ÎιδικÏν ΧαÏακÏήÏÏν","title":"ÎÏιλÎξÏε Îναν ÎÎ¹Î´Î¹ÎºÏ Î§Î±ÏακÏήÏα","toolbar":"ÎιÏαγÏγή ÎÎ¹Î´Î¹ÎºÎ¿Ï Î§Î±ÏακÏήÏα"},"scayt":{"about":"About SCAYT","aboutTab":"ΠεÏί","addWord":"Î ÏοÏθήκη ÏÏο λεξικÏ","allCaps":"Îα αγνοοÏνÏαι ÏÎ»ÎµÏ Î¿Î¹ λÎÎ¾ÎµÎ¹Ï Ïε κεÏαλαία","dic_create":"ÎημιοÏ
Ïγία","dic_delete":"Î
ιαγÏαÏή","dic_field_name":"Îνομα λεξικοÏ","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"ÎεÏονομαÏία","dic_restore":"ÎνάκÏηÏη","dictionariesTab":"Îεξικά","disable":"Disable SCAYT","emptyDic":"Το Ïνομα ÏοÏ
Î»ÎµÎ¾Î¹ÎºÎ¿Ï Î´ÎµÎ½ ÏÏÎÏει να είναι κενÏ.","enable":"Enable SCAYT","ignore":"ÎγνÏηÏε Ïο","ignoreAll":"Îα αγνοηθοÏν Ïλα","ignoreDomainNames":"Ignore Domain Names","langs":"ÎλÏÏÏεÏ","languagesTab":"ÎλÏÏÏεÏ","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with
Numbers","moreSuggestions":"ΠεÏιÏÏÏÏεÏÎµÏ ÏÏοÏάÏειÏ","opera_title":"Not supported by Opera","options":"ÎÏιλογÎÏ","optionsTab":"ÎÏιλογÎÏ","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"ÎοÏÏÎÏ","panelTitle":"ΣÏÏ
λ ÎοÏÏοÏοίηÏηÏ","panelTitle1":"ΣÏÏ
λ ÎομμαÏιÏν","panelTitle2":"ΣÏÏ
λ Îν ΣειÏά","panelTitle3":"ΣÏÏ
λ ÎνÏικειμÎνÏν"},"table":{"border":"ΠάÏÎ¿Ï Î ÎµÏιγÏάμμαÏοÏ","caption":"ÎεζάνÏα","cell":{"menu":"Îελί","insertBefore":"ÎιÏαγÏγή ÎÎµÎ»Î¹Î¿Ï Î Ïιν","insertAfter":"ÎιÏαγÏγή ÎÎµÎ»Î¹Î¿Ï ÎεÏά","deleteCell":"ÎιαγÏαÏή ÎελιÏν","merge":"ÎνοÏοίηÏη ÎελιÏν","mergeRight":"ΣÏ
γÏÏνεÏ
Ïη Îε Îεξιά","mergeDown":"ΣÏ
γÏÏνεÏ
Ïη Îε ÎάÏÏ","splitHorizontal":"ÎÏιζÏνÏιο ÎοίÏαÏμα ÎελιοÏ","splitVertical":"ÎαÏ
ακÏÏÏ
Ïο ÎοίÏαÏμα ÎελιοÏ","title":"ÎδιÏÏηÏÎµÏ ÎελιοÏ","cellType":"ΤÏÏÎ¿Ï ÎελιοÏ","rowSpan":"ÎÏÏÎ¿Ï Î£ÎµÎ¹ÏÏν","colSpan":"ÎÏÏÎ¿Ï Î£ÏηλÏν","wordWrap":"Word Wrap","hAlign":"ÎÏιζÏνÏια ΣÏοίÏιÏη","vAlign":"ÎάθεÏη ΣÏοίÏιÏη","alignBaseline":"Baseline","bgColor":"ΧÏÏμα ΦÏνÏοÏ
","borderColor":"ΧÏÏμα ΠεÏιγÏάμμαÏοÏ","data":"ÎεδομÎνα","header":"ÎεÏαλίδα","yes":"Îαι","no":"ÎÏι","invalidWidth":"Το ÏλάÏÎ¿Ï ÏοÏ
ÎºÎµÎ»Î¹Î¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.","invalidHeight":"Το ÏÏÎ¿Ï ÏοÏ
ÎºÎµÎ»Î¹Î¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"ÎÏιλÎξÏε"},"cellPad":"ÎÎμιÏμα κελιÏν","cellSpace":"ÎιάÏÏημα κελιÏν","column":{"menu":"ΣÏήλη","insertBe
fore":"ÎιÏαγÏγή ΣÏÎ®Î»Î·Ï Î Ïιν","insertAfter":"ÎιÏαγÏγή ΣειÏÎ¬Ï ÎεÏά","deleteColumn":"ÎιαγÏαÏή ÎολÏνÏν"},"columns":"ÎολÏνεÏ","deleteTable":"ÎιαγÏαÏή Ïίνακα","headers":"ÎεÏαλίδεÏ","headersBoth":"Îαι Ïα δÏο","headersColumn":"Î ÏÏÏη ΣÏήλη","headersNone":"ÎανÎνα","headersRow":"Î ÏÏÏη ΣειÏά","invalidBorder":"Το ÏάÏÎ¿Ï ÏοÏ
ÏεÏιγÏάμμαÏÎ¿Ï ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.","invalidCellPadding":"Το γÎμιÏμα μÎÏα ÏÏα κελιά ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ.","invalidCellSpacing":"ΠαÏÏÏÏαÏη μεÏÎ±Î¾Ï ÏÏν κελιÏν ÏÏÎÏει να είναι ÎÎ½Î±Ï Î¸ÎµÏικÏÏ Î±ÏιθμÏÏ.","invalidCols":"ΠαÏιθμÏÏ ÏÏν ÏÏηλÏν ÏÏÎÏει να είναι μεγαλÏÏεÏÎ¿Ï Î±ÏÏ 0.","invalidHeight":"Το ÏÏÎ¿Ï ÏοÏ
Ïίνακα ÏÏÎÏει να Î
µÎ¯Î½Î±Î¹ ÎÎ½Î±Ï Î±ÏιθμÏÏ.","invalidRows":"ΠαÏιθμÏÏ ÏÏν ÏειÏÏν ÏÏÎÏει να είναι μεγαλÏÏεÏÎ¿Ï Î±ÏÏ 0.","invalidWidth":"Το ÏλάÏÎ¿Ï ÏοÏ
Ïίνακα ÏÏÎÏει να είναι ÎÎ½Î±Ï Î±ÏιθμÏÏ.","menu":"ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±","row":{"menu":"ΣειÏά","insertBefore":"ÎιÏαγÏγή ΣειÏÎ¬Ï ÎÏÏ Î Î¬Î½Ï","insertAfter":"ÎιÏαγÏγή ΣειÏÎ¬Ï ÎÏÏ ÎάÏÏ","deleteRow":"ÎιαγÏαÏή ÎÏαμμÏν"},"rows":"ÎÏαμμÎÏ","summary":"ΠεÏίληÏη","title":"ÎδιÏÏηÏÎµÏ Î Î¯Î½Î±ÎºÎ±","toolbar":"ΠίνακαÏ","widthPc":"ÏÎ¿Î¹Ï ÎµÎºÎ±ÏÏ","widthPx":"pixels","widthUnit":"μονάδα ÏλάÏοÏ
Ï"},"undo":{"redo":"ÎÏαναÏοÏά","undo":"ÎναίÏεÏη"},"wsc":{"btnIgnore":"ÎγνÏηÏη","btnIgnoreAll":"ÎγνÏηÏη ÏλÏν","btnReplace":"ÎνÏικαÏάÏÏαÏη","btnReplaceAll":"ÎνÏικαÏάÏÏαÏη ÏλÏν","btnUndo":"ÎναίÏεÏη","change
To":"Îλλαγή Ïε","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Îεν Ï
ÏάÏÏει εγκαÏεÏÏημÎÎ½Î¿Ï Î¿ÏθογÏάÏοÏ. ÎÎλεÏε να Ïον καÏεβάÏεÏε ÏÏÏα;","manyChanges":"ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îλλαξαν %1 λÎξειÏ","noChanges":"ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν άλλαξαν λÎξειÏ","noMispell":"ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îεν βÏÎθηκαν λάθη","noSuggestions":"- Îεν Ï
ÏάÏÏοÏ
ν ÏÏοÏάÏÎµÎ¹Ï -","notAvailable":"Î Ï
ÏηÏεÏία δεν είναι διαθÎÏιμη αÏ
Ïήν Ïην ÏÏιγμή.","notInDic":"Îεν Ï
ÏάÏÏει ÏÏο λεξικÏ","oneChange":"ΠοÏθογÏαÏικÏÏ ÎλεγÏÎ¿Ï Î¿Î»Î¿ÎºÎ»Î·ÏÏθηκε: Îλλαξε μια λÎξη","progress":"ÎίνεÏαι οÏθογÏαÏικÏÏ ÎλεγÏοÏ.
..","title":"ÎÏθογÏαÏικÏÏ ÎλεγÏοÏ","toolbar":"ÎÏθογÏαÏικÏÏ ÎλεγÏοÏ"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/en-au.js b/share/static/RichText/lang/en-au.js
index c7560ce..1d55b1a 100644
--- a/share/static/RichText/lang/en-au.js
+++ b/share/static/RichText/lang/en-au.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['en-au']={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'New Page',save:'Save',preview:'Preview',cut:'Cut',copy:'Copy',paste:'Paste',print:'Print',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Select All',removeFormat:'Remove Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Insert Horizontal Line',pagebreak:'Insert Page Break for Printing',unlink:'Unlink',undo:'Undo',redo:'Redo',common:{browseServer:'Browse Server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Send it to the Server',image:'Image',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<not set>',id:'Id',name:'Name',langDir:'Language Direction',langDirLtr:'Left to Right (LTR)',l
angDirRtl:'Right to Left (RTL)',langCode:'Language Code',longDescr:'Long Description URL',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'OK',cancel:'Cancel',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insert Special Character',title:'Select Special Char
acter',options:'Special Character Options'},link:{toolbar:'Link',other:'<other>',menu:'Edit Link',title:'Link',info:'Link Info',target:'Target',upload:'Upload',advanced:'Advanced',type:'Link Type',toUrl:'URL',toAnchor:'Link to anchor in the text',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Target Frame Name',targetPopupName:'Popup Window Name',popupFeatures:'Popup Window Features',popupResizable:'Resizable',popupStatusBar:'Status Bar',popupLocationBar:'Location Bar',popupToolbar:'Toolbar',popupMenuBar:'Menu Bar',popupFullScreen:'Full Screen (IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupWidth:'Width',popupLeft:'Left Position',popupHeight:'Height',popupTop:'Top Position',id:'Id',langDir:'Language Direction',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',acccessKey:'Access Key',name:'Name',langCode:'Language Code',tabIndex:'Tab Index',advisoryTitle:'Advisory Title',advisoryContentType:'
Advisory Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',selectAnchor:'Select an Anchor',anchorName:'By Anchor Name',anchorId:'By Element Id',emailAddress:'E-Mail Address',emailSubject:'Message Subject',emailBody:'Message Body',noAnchors:'(No anchors available in the document)',noUrl:'Please type the link URL',noEmail:'Please type the e-mail address'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alph
a (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Find',replace:'Replace',findWhat:'Find what:',replaceWith:'Replace with:',notFoundMsg:'The specified text was not found.',matchCase:'Match case',matchWord:'Match whole word',matchCyclic:'Match cyclic',replaceAll:'Replace All',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Table',title:'Table Properties',menu:'Table Properties',deleteTable:'Delete Table',rows:'Rows',columns:'Columns',border:'Border size',align:'Alignment',alignLeft:'Left',alignCenter:'Centre',alignRight:'Right',width:'Width',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',height:'Height',cellSpace:'Cell spacing',cellPad:'Cell padding',caption:'Caption',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:
'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Delete Cells',merge:'Merge Cells',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',da
ta:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Delete Rows'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Delete Columns'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field Properties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allo
w multiple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Image Properties',titleButton:'Image Button Properties',menu:'Image Properties',infoTab:'Image Info',btnUpload:'Send it to the Server',upload:'Upload',alt:'Alternative Text',width:'Width',height:'Height',lockRatio:'Lock Ratio',unlockRatio:'Unlock Ratio',resetSize:'Reset Size',border:'Border',hSpace:'HSpace',vSpace:'VSpace',align:'Align',alignLeft:'Left',alignRight:'Right',alertUrl:'Please type the image URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple
image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Align',alignLeft:'Left',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignBottom:'Bottom',alignMiddle:'Middle',alignRight:'Right',alignTextTop:'Text Top',alignTop:'Top',quality:'Quality',qualityBest:'Best',qualityHigh:'High'
,qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Background colour',width:'Width',height:'Height',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'URL must not be empty.',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUndo:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings foun
d',noChanges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smiley',title:'Insert a Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Insert/Remove Numbered List',bulletedlist:'Insert/Remove Bulleted List',indent:'Increase Indent',outdent:'Decrease Indent',justify:{left:'Left Justify',center:'Centre Justify',right:'Right Justify',block:'Block Justify'},blockquote:'Block Quote',clipboard:{title:'Paste',cutError:"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).",copyError:"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).",pasteMsg:'Pl
ease paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Paste from Word',title:'Paste from Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Paste as plain text',title:'Paste as Plain Text'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',
panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Paragraph Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font Name'},fontSize:{label:'Size',voiceLabel:'Font Size',panelTitle:'Font Size'},colorButton:{textColorTitle:'Text Colour',bgColorTitle:'Background Colour',panelTitle:'Colors',auto:'Automatic',more:'More Colours...'},colors:{'000':'Black',800000:'Ma
roon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Wo
rd',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All
rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['en-au']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to
this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must b
e a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"
Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Background Colour","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark
Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"More Colours...","panelTitle":"Colors","textColorTitle":"Text Colour"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","title":"Conten
t Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numbered
list":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"find":{"find":"Find","findOptions":"Find Options","findWhat":"Find what:","matchCase":"Match case","matchCyclic":"Match cyclic","matchWord":"Match whole word","notFoundMsg":"The specified text was not found.","replace":"Replace","replaceAll":"Replace All","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Replace with:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Background colour","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables for Flash",
"hSpace":"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"URL must not be empty.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Size","voiceLabel":"Font Size","panelTitle":"Font Size"},"label":"Font","panelTitle":"Font Name","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"Radi
o Button Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panel
Title":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source UR
L is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insert a Smiley","toolbar":"Smiley"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Ri
ght (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"liststyl
e":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"New Page"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Paste as plain text","title":"Paste as P
lain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"preview":{"preview":"Preview"},"print":{"toolbar":"Print"},"removeformat":{"toolbar":"Remove Format"},"save":{"toolbar":"Save"},"selectall":{"toolbar":"Select All"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it can
not be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline
Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Co
lumn","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc
":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/en-ca.js b/share/static/RichText/lang/en-ca.js
index a933aa5..5bfd734 100644
--- a/share/static/RichText/lang/en-ca.js
+++ b/share/static/RichText/lang/en-ca.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['en-ca']={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'New Page',save:'Save',preview:'Preview',cut:'Cut',copy:'Copy',paste:'Paste',print:'Print',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Select All',removeFormat:'Remove Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Insert Horizontal Line',pagebreak:'Insert Page Break for Printing',unlink:'Unlink',undo:'Undo',redo:'Redo',common:{browseServer:'Browse Server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Send it to the Server',image:'Image',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<not set>',id:'Id',name:'Name',langDir:'Language Direction',langDirLtr:'Left to Right (LTR)',l
angDirRtl:'Right to Left (RTL)',langCode:'Language Code',longDescr:'Long Description URL',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'OK',cancel:'Cancel',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insert Special Character',title:'Select Special Char
acter',options:'Special Character Options'},link:{toolbar:'Link',other:'<other>',menu:'Edit Link',title:'Link',info:'Link Info',target:'Target',upload:'Upload',advanced:'Advanced',type:'Link Type',toUrl:'URL',toAnchor:'Link to anchor in the text',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Target Frame Name',targetPopupName:'Popup Window Name',popupFeatures:'Popup Window Features',popupResizable:'Resizable',popupStatusBar:'Status Bar',popupLocationBar:'Location Bar',popupToolbar:'Toolbar',popupMenuBar:'Menu Bar',popupFullScreen:'Full Screen (IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupWidth:'Width',popupLeft:'Left Position',popupHeight:'Height',popupTop:'Top Position',id:'Id',langDir:'Language Direction',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',acccessKey:'Access Key',name:'Name',langCode:'Language Code',tabIndex:'Tab Index',advisoryTitle:'Advisory Title',advisoryContentType:'
Advisory Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',selectAnchor:'Select an Anchor',anchorName:'By Anchor Name',anchorId:'By Element Id',emailAddress:'E-Mail Address',emailSubject:'Message Subject',emailBody:'Message Body',noAnchors:'(No anchors available in the document)',noUrl:'Please type the link URL',noEmail:'Please type the e-mail address'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alph
a (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Find',replace:'Replace',findWhat:'Find what:',replaceWith:'Replace with:',notFoundMsg:'The specified text was not found.',matchCase:'Match case',matchWord:'Match whole word',matchCyclic:'Match cyclic',replaceAll:'Replace All',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Table',title:'Table Properties',menu:'Table Properties',deleteTable:'Delete Table',rows:'Rows',columns:'Columns',border:'Border size',align:'Alignment',alignLeft:'Left',alignCenter:'Centre',alignRight:'Right',width:'Width',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',height:'Height',cellSpace:'Cell spacing',cellPad:'Cell padding',caption:'Caption',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:
'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Delete Cells',merge:'Merge Cells',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',da
ta:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Delete Rows'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Delete Columns'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field Properties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allo
w multiple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Image Properties',titleButton:'Image Button Properties',menu:'Image Properties',infoTab:'Image Info',btnUpload:'Send it to the Server',upload:'Upload',alt:'Alternative Text',width:'Width',height:'Height',lockRatio:'Lock Ratio',unlockRatio:'Unlock Ratio',resetSize:'Reset Size',border:'Border',hSpace:'HSpace',vSpace:'VSpace',align:'Align',alignLeft:'Left',alignRight:'Right',alertUrl:'Please type the image URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple
image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Align',alignLeft:'Left',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignBottom:'Bottom',alignMiddle:'Middle',alignRight:'Right',alignTextTop:'Text Top',alignTop:'Top',quality:'Quality',qualityBest:'Best',qualityHigh:'High'
,qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Background colour',width:'Width',height:'Height',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'URL must not be empty.',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUndo:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings foun
d',noChanges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smiley',title:'Insert a Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Insert/Remove Numbered List',bulletedlist:'Insert/Remove Bulleted List',indent:'Increase Indent',outdent:'Decrease Indent',justify:{left:'Left Justify',center:'Centre Justify',right:'Right Justify',block:'Block Justify'},blockquote:'Block Quote',clipboard:{title:'Paste',cutError:"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).",copyError:"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).",pasteMsg:'Pl
ease paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Paste from Word',title:'Paste from Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Paste as plain text',title:'Paste as Plain Text'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',
panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Paragraph Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font Name'},fontSize:{label:'Size',voiceLabel:'Font Size',panelTitle:'Font Size'},colorButton:{textColorTitle:'Text Colour',bgColorTitle:'Background Colour',panelTitle:'Colors',auto:'Automatic',more:'More Colours...'},colors:{'000':'Black',800000:'Ma
roon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Wo
rd',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All
rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['en-ca']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to
this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must b
e a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"
Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Background Colour","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark
Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"More Colours...","panelTitle":"Colors","textColorTitle":"Text Colour"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","title":"Conten
t Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numbered
list":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"find":{"find":"Find","findOptions":"Find Options","findWhat":"Find what:","matchCase":"Match case","matchCyclic":"Match cyclic","matchWord":"Match whole word","notFoundMsg":"The specified text was not found.","replace":"Replace","replaceAll":"Replace All","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Replace with:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Background colour","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables for Flash",
"hSpace":"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"URL must not be empty.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Size","voiceLabel":"Font Size","panelTitle":"Font Size"},"label":"Font","panelTitle":"Font Name","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"Radi
o Button Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panel
Title":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source UR
L is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insert a Smiley","toolbar":"Smiley"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Ri
ght (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"liststyl
e":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"New Page"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Paste as plain text","title":"Paste as P
lain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"preview":{"preview":"Preview"},"print":{"toolbar":"Print"},"removeformat":{"toolbar":"Remove Format"},"save":{"toolbar":"Save"},"selectall":{"toolbar":"Select All"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it can
not be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline
Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Co
lumn","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":"Undo"},"wsc
":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/en-gb.js b/share/static/RichText/lang/en-gb.js
index f1c0c38..261b432 100644
--- a/share/static/RichText/lang/en-gb.js
+++ b/share/static/RichText/lang/en-gb.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['en-gb']={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'New Page',save:'Save',preview:'Preview',cut:'Cut',copy:'Copy',paste:'Paste',print:'Print',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Select All',removeFormat:'Remove Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Insert Horizontal Line',pagebreak:'Insert Page Break for Printing',unlink:'Unlink',undo:'Undo',redo:'Redo',common:{browseServer:'Browse Server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Send it to the Server',image:'Image',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<not set>',id:'Id',name:'Name',langDir:'Language Direction',langDirLtr:'Left to Right (LTR)',l
angDirRtl:'Right to Left (RTL)',langCode:'Language Code',longDescr:'Long Description URL',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'OK',cancel:'Cancel',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insert Special Character',title:'Select Special Char
acter',options:'Special Character Options'},link:{toolbar:'Link',other:'<other>',menu:'Edit Link',title:'Link',info:'Link Info',target:'Target',upload:'Upload',advanced:'Advanced',type:'Link Type',toUrl:'URL',toAnchor:'Link to anchor in the text',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Target Frame Name',targetPopupName:'Popup Window Name',popupFeatures:'Popup Window Features',popupResizable:'Resizable',popupStatusBar:'Status Bar',popupLocationBar:'Location Bar',popupToolbar:'Toolbar',popupMenuBar:'Menu Bar',popupFullScreen:'Full Screen (IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupWidth:'Width',popupLeft:'Left Position',popupHeight:'Height',popupTop:'Top Position',id:'Id',langDir:'Language Direction',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',acccessKey:'Access Key',name:'Name',langCode:'Language Code',tabIndex:'Tab Index',advisoryTitle:'Advisory Title',advisoryContentType:'
Advisory Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',selectAnchor:'Select an Anchor',anchorName:'By Anchor Name',anchorId:'By Element Id',emailAddress:'E-Mail Address',emailSubject:'Message Subject',emailBody:'Message Body',noAnchors:'(No anchors available in the document)',noUrl:'Please type the link URL',noEmail:'Please type the e-mail address'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alph
a (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Find',replace:'Replace',findWhat:'Find what:',replaceWith:'Replace with:',notFoundMsg:'The specified text was not found.',matchCase:'Match case',matchWord:'Match whole word',matchCyclic:'Match cyclic',replaceAll:'Replace All',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Table',title:'Table Properties',menu:'Table Properties',deleteTable:'Delete Table',rows:'Rows',columns:'Columns',border:'Border size',align:'Alignment',alignLeft:'Left',alignCenter:'Centre',alignRight:'Right',width:'Width',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',height:'Height',cellSpace:'Cell spacing',cellPad:'Cell padding',caption:'Caption',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:
'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Delete Cells',merge:'Merge Cells',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',da
ta:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Delete Rows'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Delete Columns'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field Properties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allo
w multiple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Image Properties',titleButton:'Image Button Properties',menu:'Image Properties',infoTab:'Image Info',btnUpload:'Send it to the Server',upload:'Upload',alt:'Alternative Text',width:'Width',height:'Height',lockRatio:'Lock Ratio',unlockRatio:'Unlock Ratio',resetSize:'Reset Size',border:'Border',hSpace:'HSpace',vSpace:'VSpace',align:'Align',alignLeft:'Left',alignRight:'Right',alertUrl:'Please type the image URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple
image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Align',alignLeft:'Left',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignBottom:'Bottom',alignMiddle:'Middle',alignRight:'Right',alignTextTop:'Text Top',alignTop:'Top',quality:'Quality',qualityBest:'Best',qualityHigh:'High'
,qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Background colour',width:'Width',height:'Height',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'URL must not be empty.',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUndo:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings foun
d',noChanges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smiley',title:'Insert a Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Insert/Remove Numbered List',bulletedlist:'Insert/Remove Bulleted List',indent:'Increase Indent',outdent:'Decrease Indent',justify:{left:'Left Justify',center:'Centre Justify',right:'Right Justify',block:'Block Justify'},blockquote:'Block Quote',clipboard:{title:'Paste',cutError:"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).",copyError:"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).",pasteMsg:'Pl
ease paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Paste from Word',title:'Paste from Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Paste as plain text',title:'Paste as Plain Text'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',
panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Paragraph Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font Name'},fontSize:{label:'Size',voiceLabel:'Font Size',panelTitle:'Font Size'},colorButton:{textColorTitle:'Text Colour',bgColorTitle:'Background Colour',panelTitle:'Colors',auto:'Automatic',more:'More Colours...'},colors:{'000':'Black',800000:'Ma
roon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Wo
rd',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All
rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['en-gb']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Drag to resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved cha
nges to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Align","alignLeft":"Left","alignRight":"Right","alignCenter":"Centre","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" fiel
d must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{
"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Background Colour","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Grey","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Grey","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","00640
0":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Grey","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Grey","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"More Colours...","panelTitle":"Colours","textColorTitle":"Text Colour"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Colour Options","selected":"Selected Colour","title":"Select colour"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","ti
tle":"Content Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted Lis
t","numberedlist":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"find":{"find":"Find","findOptions":"Find Options","findWhat":"Find what:","matchCase":"Match case","matchCyclic":"Match cyclic","matchWord":"Match whole word","notFoundMsg":"The specified text was not found.","replace":"Replace","replaceAll":"Replace All","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Replace with:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Background colour","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables
for Flash","hSpace":"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"URL must not be empty.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Size","voiceLabel":"Font Size","panelTitle":"Font Size"},"label":"Font","panelTitle":"Font Name","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radio
Title":"Radio Button Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Fo
rmat","panelTitle":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Ima
ge source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insert a Smiley","toolbar":"Smiley"},"justify":{"block":"Justify","center":"Centre","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR"
:"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload
"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximise","minimize":"Minimise"},"newpage":{"toolbar":"New Page"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Paste as plain text","title"
:"Paste as Plain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"preview":{"preview":"Preview"},"print":{"toolbar":"Print"},"removeformat":{"toolbar":"Remove Format"},"save":{"toolbar":"Save"},"selectall":{"toolbar":"Select All"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point
where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTit
le2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column"
:{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a number.","invalidCellSpacing":"Cell spacing must be a number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","undo":
"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/en.js b/share/static/RichText/lang/en.js
index 62bffbb..cfbf4bb 100644
--- a/share/static/RichText/lang/en.js
+++ b/share/static/RichText/lang/en.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.en={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'New Page',save:'Save',preview:'Preview',cut:'Cut',copy:'Copy',paste:'Paste',print:'Print',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Select All',removeFormat:'Remove Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Insert Horizontal Line',pagebreak:'Insert Page Break for Printing',unlink:'Unlink',undo:'Undo',redo:'Redo',common:{browseServer:'Browse Server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Send it to the Server',image:'Image',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<not set>',id:'Id',name:'Name',langDir:'Language Direction',langDirLtr:'Left to Right (LTR)',langDir
Rtl:'Right to Left (RTL)',langCode:'Language Code',longDescr:'Long Description URL',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'OK',cancel:'Cancel',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Insert Special Character',title:'Select Special Character'
,options:'Special Character Options'},link:{toolbar:'Link',other:'<other>',menu:'Edit Link',title:'Link',info:'Link Info',target:'Target',upload:'Upload',advanced:'Advanced',type:'Link Type',toUrl:'URL',toAnchor:'Link to anchor in the text',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Target Frame Name',targetPopupName:'Popup Window Name',popupFeatures:'Popup Window Features',popupResizable:'Resizable',popupStatusBar:'Status Bar',popupLocationBar:'Location Bar',popupToolbar:'Toolbar',popupMenuBar:'Menu Bar',popupFullScreen:'Full Screen (IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupWidth:'Width',popupLeft:'Left Position',popupHeight:'Height',popupTop:'Top Position',id:'Id',langDir:'Language Direction',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',acccessKey:'Access Key',name:'Name',langCode:'Language Code',tabIndex:'Tab Index',advisoryTitle:'Advisory Title',advisoryContentType:'Adviso
ry Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',selectAnchor:'Select an Anchor',anchorName:'By Anchor Name',anchorId:'By Element Id',emailAddress:'E-Mail Address',emailSubject:'Message Subject',emailBody:'Message Body',noAnchors:'(No anchors available in the document)',noUrl:'Please type the link URL',noEmail:'Please type the e-mail address'},anchor:{toolbar:'Anchor',menu:'Edit Anchor',title:'Anchor Properties',name:'Anchor Name',errorName:'Please type the anchor name'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a,
b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Find',replace:'Replace',findWhat:'Find what:',replaceWith:'Replace with:',notFoundMsg:'The specified text was not found.',matchCase:'Match case',matchWord:'Match whole word',matchCyclic:'Match cyclic',replaceAll:'Replace All',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Table',title:'Table Properties',menu:'Table Properties',deleteTable:'Delete Table',rows:'Rows',columns:'Columns',border:'Border size',align:'Alignment',alignLeft:'Left',alignCenter:'Center',alignRight:'Right',width:'Width',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',height:'Height',cellSpace:'Cell spacing',cellPad:'Cell padding',caption:'Caption',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First
column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Delete Cells',merge:'Merge Cells',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Da
ta',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Delete Rows'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Delete Columns'}},button:{title:'Button Properties',text:'Text (Value)',type:'Type',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Checkbox Properties',radioTitle:'Radio Button Properties',value:'Value',selected:'Selected'},form:{title:'Form Properties',menu:'Form Properties',action:'Action',method:'Method',encoding:'Encoding'},select:{title:'Selection Field Properties',selectInfo:'Select Info',opAvail:'Available Options',value:'Value',size:'Size',lines:'lines',chkMulti:'Allow mult
iple selections',opText:'Text',opValue:'Value',btnAdd:'Add',btnModify:'Modify',btnUp:'Up',btnDown:'Down',btnSetValue:'Set as selected value',btnDelete:'Delete'},textarea:{title:'Textarea Properties',cols:'Columns',rows:'Rows'},textfield:{title:'Text Field Properties',name:'Name',value:'Value',charWidth:'Character Width',maxChars:'Maximum Characters',type:'Type',typeText:'Text',typePass:'Password'},hidden:{title:'Hidden Field Properties',name:'Name',value:'Value'},image:{title:'Image Properties',titleButton:'Image Button Properties',menu:'Image Properties',infoTab:'Image Info',btnUpload:'Send it to the Server',upload:'Upload',alt:'Alternative Text',width:'Width',height:'Height',lockRatio:'Lock Ratio',unlockRatio:'Unlock Ratio',resetSize:'Reset Size',border:'Border',hSpace:'HSpace',vSpace:'VSpace',align:'Align',alignLeft:'Left',alignRight:'Right',alertUrl:'Please type the image URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image
?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Align',alignLeft:'Left',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'Baseline',alignBottom:'Bottom',alignMiddle:'Middle',alignRight:'Right',alignTextTop:'Text Top',alignTop:'Top',quality:'Quality',qualityBest:'Best',qualityHigh:'High',quali
tyAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Background color',width:'Width',height:'Height',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'URL must not be empty.',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Check Spelling',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Not in dictionary',changeTo:'Change to',btnIgnore:'Ignore',btnIgnoreAll:'Ignore All',btnReplace:'Replace',btnReplaceAll:'Replace All',btnUndo:'Undo',noSuggestions:'- No suggestions -',progress:'Spell check in progress...',noMispell:'Spell check complete: No misspellings found',noCh
anges:'Spell check complete: No words changed',oneChange:'Spell check complete: One word changed',manyChanges:'Spell check complete: %1 words changed',ieSpellDownload:'Spell checker not installed. Do you want to download it now?'},smiley:{toolbar:'Smiley',title:'Insert a Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Insert/Remove Numbered List',bulletedlist:'Insert/Remove Bulleted List',indent:'Increase Indent',outdent:'Decrease Indent',justify:{left:'Left Justify',center:'Center Justify',right:'Right Justify',block:'Block Justify'},blockquote:'Block Quote',clipboard:{title:'Paste',cutError:"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).",copyError:"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).",pasteMsg:'Please pa
ste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Paste from Word',title:'Paste from Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Paste as plain text',title:'Paste as Plain Text'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTi
tle3:'Object Styles'},format:{label:'Format',panelTitle:'Paragraph Format',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font Name'},fontSize:{label:'Size',voiceLabel:'Font Size',panelTitle:'Font Size'},colorButton:{textColorTitle:'Text Color',bgColorTitle:'Background Color',panelTitle:'Colors',auto:'Automatic',more:'More Colors...'},colors:{'000':'Black',800000:'Maroon','8B4
513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyD
ic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights res
erved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['en']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to thi
s content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must
be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":
"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Background Color","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark
Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"More Colors...","panelTitle":"Colors","textColorTitle":"Text Color"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","title":"Content
Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedli
st":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"find":{"find":"Find","findOptions":"Find Options","findWhat":"Find what:","matchCase":"Match case","matchCyclic":"Match cyclic","matchWord":"Match whole word","notFoundMsg":"The specified text was not found.","replace":"Replace","replaceAll":"Replace All","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Replace with:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Background color","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables for Flash","hS
pace":"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"URL must not be empty.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Size","voiceLabel":"Font Size","panelTitle":"Font Size"},"label":"Font","panelTitle":"Font Name","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"Radio B
utton Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTit
le":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source URL i
s missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insert a Smiley","toolbar":"Smiley"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right
(LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"liststyle":
{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"New Page"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Paste as plain text","title":"Paste as Plai
n Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"preview":{"preview":"Preview"},"print":{"toolbar":"Print"},"removeformat":{"toolbar":"Remove Format"},"save":{"toolbar":"Save"},"selectall":{"toolbar":"Select All"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot
be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline St
yles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Colum
n","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","und
o":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/eo.js b/share/static/RichText/lang/eo.js
index f34e329..cb5f68a 100644
--- a/share/static/RichText/lang/eo.js
+++ b/share/static/RichText/lang/eo.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.eo={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Fonto',newPage:'Nova PaÄo',save:'Sekurigi',preview:'Vidigi Aspekton',cut:'Eltondi',copy:'Kopii',paste:'Interglui',print:'Presi',underline:'Substreko',bold:'Grasa',italic:'Kursiva',selectAll:'Elekti Äion',removeFormat:'Forigi Formaton',strike:'Trastreko',subscript:'Subskribo',superscript:'Superskribo',horizontalrule:'Enmeti Horizonta Linio',pagebreak:'Insert Page Break for Printing',unlink:'Forigi Ligilon',undo:'Malfari',redo:'Refari',common:{browseServer:'Foliumi en la Servilo',url:'URL',protocol:'Protokolo',upload:'AlÅuti',uploadSubmit:'Sendu al Servilo',image:'Bildo',flash:'Flash',form:'Formularo',checkbox:'Markobutono',radio:'Radiobutono',textField:'Teksta kampo',textarea:'Teksta Areo',hiddenField:'KaÅita Kampo',button:'Butono',select:'Elekta Kampo',imageButton:'Bildbutono',notSet:'<DefaÅlta>',id:'Id',name:'Nomo',langDir:'Skribdire
kto',langDirLtr:'De maldekstro dekstren (LTR)',langDirRtl:'De dekstro maldekstren (RTL)',langCode:'Lingva Kodo',longDescr:'URL de Longa Priskribo',cssClass:'Klasoj de Stilfolioj',advisoryTitle:'Indika Titolo',cssStyle:'Stilo',ok:'Akcepti',cancel:'Rezigni',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Speciala',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialCha
r:{toolbar:'Enmeti Specialan Signon',title:'Enmeti Specialan Signon',options:'Special Character Options'},link:{toolbar:'Enmeti/ÅanÄi Ligilon',other:'<other>',menu:'Modifier Ligilon',title:'Ligilo',info:'Informoj pri la Ligilo',target:'Celo',upload:'AlÅuti',advanced:'Speciala',type:'Tipo de Ligilo',toUrl:'URL',toAnchor:'Ankri en tiu Äi paÄo',toEmail:'RetpoÅto',targetFrame:'<kadro>',targetPopup:'<Åprucfenestro>',targetFrameName:'Nomo de Kadro',targetPopupName:'Nomo de Åprucfenestro',popupFeatures:'Atributoj de la Åprucfenestro',popupResizable:'Resizable',popupStatusBar:'Statobreto',popupLocationBar:'Adresobreto',popupToolbar:'Ilobreto',popupMenuBar:'Menubreto',popupFullScreen:'Tutekrane (IE)',popupScrollBars:'Rulumlisteloj',popupDependent:'Dependa (Netscape)',popupWidth:'LarÄo',popupLeft:'Pozicio de Maldekstro',popupHeight:'Alto',popupTop:'Pozicio de Supro',id:'Id',langDir:'Skribdirekto',langDirLTR:'De maldekstro dekstren (LTR)',langDirRTL:'De dekstro maldekstren (R
TL)',acccessKey:'Fulmoklavo',name:'Nomo',langCode:'Skribdirekto',tabIndex:'Taba Ordo',advisoryTitle:'Indika Titolo',advisoryContentType:'Indika Enhavotipo',cssClasses:'Klasoj de Stilfolioj',charset:'Signaro de la Ligita Rimedo',styles:'Stilo',selectAnchor:'Elekti Ankron',anchorName:'Per Ankronomo',anchorId:'Per Elementidentigilo',emailAddress:'Retadreso',emailSubject:'Temlinio',emailBody:'MesaÄa korpo',noAnchors:'<Ne disponeblas ankroj en la dokumento>',noUrl:'Bonvolu entajpi la URL-on',noEmail:'Bonvolu entajpi la retadreson'},anchor:{toolbar:'Enmeti/ÅanÄi Ankron',menu:'Ankraj Atributoj',title:'Ankraj Atributoj',name:'Ankra Nomo',errorName:'Bv tajpi la ankran nomon'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numberin
g (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'SerÄi',replace:'AnstataÅigi',findWhat:'SerÄi:',replaceWith:'AnstataÅigi per:',notFoundMsg:'La celteksto ne estas trovita.',matchCase:'Kongruigi Usklecon',matchWord:'Tuta Vorto',matchCyclic:'Match cyclic',replaceAll:'AnstataÅigi Äiun',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabelo',title:'Atributoj de Tabelo',menu:'Atributoj de Tabelo',deleteTable:'Delete Table',rows:'Linioj',columns:'Kolumnoj',border:'Bordero',align:'Äisrandigo',alignLeft:'Maldekstre',alignCenter:'Centre',alignRight:'Dekstre',width:'LarÄo',widthPx:'Bitbilderoj',widthPc:
'elcentoj',widthUnit:'width unit',height:'Alto',cellSpace:'Interspacigo de Äeloj',cellPad:'ÄirkaÅenhava Plenigado',caption:'Titolo',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Forigi Äelojn',merge:'Kunfandi Äelojn',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWr
ap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Forigi Liniojn'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Forigi Kolumnojn'}},button:{title:'Butonaj Atributoj',text:'Teksto (Valoro)',type:'Tipo',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Markobutonaj Atributoj',radioTitle:'Radiobutonaj Atributoj',value:'Valoro',selected:'Elektita'},form:{title:'Formularaj Atributoj'
,menu:'Formularaj Atributoj',action:'Ago',method:'Metodo',encoding:'Encoding'},select:{title:'Atributoj de Elekta Kampo',selectInfo:'Select Info',opAvail:'Elektoj Disponeblaj',value:'Valoro',size:'Grando',lines:'Linioj',chkMulti:'Permesi Plurajn Elektojn',opText:'Teksto',opValue:'Valoro',btnAdd:'Aldoni',btnModify:'Modifi',btnUp:'Supren',btnDown:'Malsupren',btnSetValue:'Agordi kiel Elektitan Valoron',btnDelete:'Forigi'},textarea:{title:'Atributoj de Teksta Areo',cols:'Kolumnoj',rows:'Vicoj'},textfield:{title:'Atributoj de Teksta Kampo',name:'Nomo',value:'Valoro',charWidth:'SignolarÄo',maxChars:'Maksimuma Nombro da Signoj',type:'Tipo',typeText:'Teksto',typePass:'Pasvorto'},hidden:{title:'Atributoj de KaÅita Kampo',name:'Nomo',value:'Valoro'},image:{title:'Atributoj de Bildo',titleButton:'Bildbutonaj Atributoj',menu:'Atributoj de Bildo',infoTab:'Informoj pri Bildo',btnUpload:'Sendu al Servilo',upload:'AlÅuti',alt:'AnstataÅiga Teksto',width:'LarÄo',height:'Alto',lockRatio:'
Konservi Proporcion',unlockRatio:'Unlock Ratio',resetSize:'Origina Grando',border:'Bordero',hSpace:'HSpaco',vSpace:'VSpaco',align:'Äisrandigo',alignLeft:'Maldekstre',alignRight:'Dekstre',alertUrl:'Bonvolu tajpi la URL de la bildo',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Alway
s',accessSameDomain:'Same domain',accessNever:'Never',align:'Äisrandigo',alignLeft:'Maldekstre',alignAbsBottom:'Abs Malsupre',alignAbsMiddle:'Abs Centre',alignBaseline:'Je Malsupro de Teksto',alignBottom:'Malsupre',alignMiddle:'Centre',alignRight:'Dekstre',alignTextTop:'Je Supro de Teksto',alignTop:'Supre',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Fona Koloro',width:'LarÄo',height:'Alto',hSpace:'HSpaco',vSpace:'VSpaco',validateSrc:'Bonvolu entajpi la URL-on',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Literumada Kontrolilo',title:'Spell Check',notAvailable:'Sorry, but servic
e is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Ne trovita en la vortaro',changeTo:'ÅanÄi al',btnIgnore:'Malatenti',btnIgnoreAll:'Malatenti Äiun',btnReplace:'AnstataÅigi',btnReplaceAll:'AnstataÅigi Äiun',btnUndo:'Malfari',noSuggestions:'- Neniu propono -',progress:'Literumkontrolado daÅras...',noMispell:'Literumkontrolado finita: neniu fuÅo trovita',noChanges:'Literumkontrolado finita: neniu vorto ÅanÄita',oneChange:'Literumkontrolado finita: unu vorto ÅanÄita',manyChanges:'Literumkontrolado finita: %1 vortoj ÅanÄitaj',ieSpellDownload:'Literumada Kontrolilo ne instalita. Äu vi volas elÅuti Äin nun?'},smiley:{toolbar:'Mienvinjeto',title:'Enmeti Mienvinjeton',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Numera Listo',bulletedlist:'Bula Listo',indent:'Pligrandigi KrommarÄenon',outdent:'Malpligrandigi KrommarÄenon',justify:{left:'Maldekstrigi',center:'Centrigi'
,right:'Dekstrigi',block:'Äisrandigi AmbaÅflanke'},blockquote:'Block Quote',clipboard:{title:'Interglui',cutError:'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).',copyError:'La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).',pasteMsg:'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Interglui el Word',title:'Interglui el Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{butto
n:'Interglui kiel Tekston',title:'Interglui kiel Tekston'},templates:{button:'Templates',title:'Content Templates',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Please select the template to open in the editor',emptyListMsg:'(No templates defined)'},showBlocks:'Show Blocks',stylesCombo:{label:'Stilo',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Formato',panelTitle:'Formato',tag_p:'Normala',tag_pre:'Formatita',tag_address:'Adreso',tag_h1:'Titolo 1',tag_h2:'Titolo 2',tag_h3:'Titolo 3',tag_h4:'Titolo 4',tag_h5:'Titolo 5',tag_h6:'Titolo 6',tag_div:'Paragrafo (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction
',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Tiparo',voiceLabel:'Font',panelTitle:'Tiparo'},fontSize:{label:'Grando',voiceLabel:'Font Size',panelTitle:'Grando'},colorButton:{textColorTitle:'Teksta Koloro',bgColorTitle:'Fona Koloro',panelTitle:'Colors',auto:'AÅtomata',more:'Pli da Koloroj...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'
Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cook
ie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['eo']={"dir":"ltr","editor":"Redaktilo por RiÄiga Teksto","common":{"editorHelp":"Premu ALT 0 por helpilo","browseServer":"Foliumi en la Servilo","url":"URL","protocol":"Protokolo","upload":"AlÅuti","uploadSubmit":"Sendu al Servilo","image":"Bildo","flash":"FlaÅo","form":"Formularo","checkbox":"Markobutono","radio":"Radiobutono","textField":"Teksta kampo","textarea":"Teksta Areo","hiddenField":"KaÅita Kampo","button":"Butono","select":"Elekta Kampo","imageButton":"Bildbutono","notSet":"<DefaÅlta>","id":"Id","name":"Nomo","langDir":"Skribdirekto","langDirLtr":"De maldekstro dekstren (LTR)","langDirRtl":"De dekstro maldekstren (RTL)","langCode":"Lingva Kodo","longDescr":"URL de Longa Priskribo","cssClass":"Klasoj de Stilfolioj","advisoryTitle":"Priskriba Titolo","cssStyle":"Stilo","ok":"Akcepti","cancel":"Rezigni","close":"Fermi","preview":"Vidigi Aspekton","resize":"Movigi por ÅanÄi la grandon","generalTab":"Äenerala","advancedTab":"Speciala","validateNu
mberFailed":"Tiu valoro ne estas nombro.","confirmNewPage":"La neregistritaj ÅanÄoj estas perdotaj. Äu vi certas, ke vi volas Åargi novan paÄon?","confirmCancel":"Iuj opcioj esta ÅanÄitaj. Äu vi certas, ke vi volas fermi la dialogon?","options":"Opcioj","target":"Celo","targetNew":"Nova Fenestro (_blank)","targetTop":"Supra Fenestro (_top)","targetSelf":"Sama Fenestro (_self)","targetParent":"Patra Fenestro (_parent)","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","styles":"Stilo","cssClasses":"Stilfoliaj Klasoj","width":"LarÄo","height":"Alto","align":"Äisrandigo","alignLeft":"Maldekstre","alignRight":"Dekstre","alignCenter":"Centre","alignTop":"Supre","alignMiddle":"Centre","alignBottom":"Malsupre","invalidValue":"Nevalida Valoro","invalidHeight":"Alto devas esti nombro.","invalidWidth":"LarÄo devas esti nombro.","invalidCssLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aÅ sen valida CSSme
zurunuo (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"La valoro indikita por la \"%1\" kampo devas esti pozitiva nombro kun aÅ sen valida HTMLmezurunuo (px or %).","invalidInlineStyle":"La valoro indikita por la enlinia stilo devas konsisti el unu aÅ pluraj elementoj kun la formato de \"nomo : valoro\", apartigitaj per punktokomoj.","cssLengthTooltip":"Entajpu nombron por rastrumera valoro aÅ nombron kun valida CSSunuo (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nehavebla</span>"},"about":{"copy":"Copyright © $1. Äiuj rajtoj rezervitaj.","dlgTitle":"Pri CKEditor","help":"Kontroli $1 por helpo.","moreInfo":"Por informoj pri licenco, bonvolu viziti nian retpaÄaron:","title":"Pri CKEditor","userGuide":"CKEditor Uzindikoj"},"basicstyles":{"bold":"Grasa","italic":"Kursiva","strike":"Trastreko","subscript":"Suba indico","superscript":"Supra indico","underline":"Substreko"},"bidi":{"ltr":"Tekstdirekto de ma
ldekstre dekstren","rtl":"Tekstdirekto de dekstre maldekstren"},"blockquote":{"toolbar":"Citaĵo"},"clipboard":{"copy":"Kopii","copyError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-C).","cut":"Eltondi","cutError":"La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (Ctrl/Cmd-X).","paste":"Interglui","pasteArea":"Intergluoareo","pasteMsg":"Bonvolu glui la tekston en la jenan areon per uzado de la klavaro (<strong>Ctrl/Cmd+V</strong>) kaj premu OK","securityMsg":"Pro la sekurecagordo de via TTT-legilo, la redaktilo ne povas rekte atingi viajn datenojn en la poÅo. Bonvolu denove interglui la datenojn en tiun fenestron.","title":"Interglui"},"colorbutton":{"auto":"AÅtomata","bgColorTitle":"Fona Koloro","colors":{"000":"Nigra","800000":"KaÅtankolora","8B4513":"Mezbruna","2F4F4F":"Ardezgriza","008080":"MarÄanaskolora
","000080":"Maristblua","4B0082":"Indigokolora","696969":"Malhelgriza","B22222":"BrikruÄa","A52A2A":"Bruna","DAA520":"Senbrilorkolora","006400":"Malhelverda","40E0D0":"Turkisblua","0000CD":"ReÄblua","800080":"Purpura","808080":"Griza","F00":"RuÄa","FF8C00":"MalheloranÄkolora","FFD700":"Orkolora","008000":"Verda","0FF":"Verdblua","00F":"Blua","EE82EE":"Viola","A9A9A9":"Mezgriza","FFA07A":"Salmokolora","FFA500":"OranÄkolora","FFFF00":"Flava","00FF00":"Limetkolora","AFEEEE":"Helturkiskolora","ADD8E6":"Helblua","DDA0DD":"Prunkolora","D3D3D3":"Helgriza","FFF0F5":"Lavendkolora vangoÅminko","FAEBD7":"Antikvablanka","FFFFE0":"Helflava","F0FFF0":"Vintromelonkolora","F0FFFF":"Lazura","F0F8FF":"Aliceblua","E6E6FA":"Lavendkolora","FFF":"Blanka"},"more":"Pli da Koloroj...","panelTitle":"Koloroj","textColorTitle":"Teksta Koloro"},"colordialog":{"clear":"Forigi","highlight":"Detaloj","options":"Opcioj pri koloroj","selected":"Selektita koloro","title":"Selekti koloron"},"templates":{
"button":"Åablonoj","emptyListMsg":"(Neniu Åablono difinita)","insertOption":"AnstataÅigi la nunan enhavon","options":"Opcioj pri Åablonoj","selectPromptMsg":"Bonvolu selekti la Åablonon por malfermi Äin en la redaktilo","title":"Enhavo de Åablonoj"},"contextmenu":{"options":"Opcioj de Kunteksta Menuo"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Priskriba Titolo","cssClassInputLabel":"Stilfolioklasoj","edit":"Redakti Div","inlineStyleInputLabel":"Enlinia stilo","langDirLTRLabel":"Maldekstre dekstren (angle LTR)","langDirLabel":"Skribdirekto","langDirRTLLabel":"Dekstre maldekstren (angle RTL)","languageCodeInputLabel":" Lingvokodo","remove":"Forigi Div","styleSelectLabel":"Stilo","title":"Krei DIV ujon","toolbar":"Krei DIV ujon"},"toolbar":{"toolbarCollapse":"Faldi la ilbreton","toolbarExpand":"Malfaldi la ilbreton","toolbarGroups":{"document":"Dokumento","clipboard":"PoÅo/Malfari","editing":"Redaktado","forms":"Formularoj","basicstyles":"Bazaj stiloj","par
agraph":"Paragrafo","links":"Ligiloj","insert":"Enmeti","styles":"Stiloj","colors":"Koloroj","tools":"Iloj"},"toolbars":"Ilobretoj de la redaktilo"},"elementspath":{"eleLabel":"Vojo al Elementoj","eleTitle":"%1 elementoj"},"list":{"bulletedlist":"Bula Listo","numberedlist":"Numera Listo"},"indent":{"indent":"Pligrandigi KrommarÄenon","outdent":"Malpligrandigi KrommarÄenon"},"find":{"find":"SerÄi","findOptions":"Opcioj pri SerÄado","findWhat":"SerÄi:","matchCase":"Kongruigi Usklecon","matchCyclic":"Cikla SerÄado","matchWord":"Tuta Vorto","notFoundMsg":"La celteksto ne estas trovita.","replace":"AnstataÅigi","replaceAll":"AnstataÅigi Äion","replaceSuccessMsg":"%1 anstataÅigita(j) apero(j).","replaceWith":"AnstataÅigi per:","title":"SerÄi kaj AnstataÅigi"},"fakeobjects":{"anchor":"Ankro","flash":"FlaÅAnimacio","hiddenfield":"KaÅita kampo","iframe":"Enlinia Kadro (IFrame)","unknown":"Nekonata objekto"},"flash":{"access":"Atingi skriptojn","accessAlways":"Äiam","a
ccessNever":"Neniam","accessSameDomain":"Sama domajno","alignAbsBottom":"Absoluta Malsupro","alignAbsMiddle":"Absoluta Centro","alignBaseline":"TekstoMalsupro","alignTextTop":"TekstoSupro","bgcolor":"Fona Koloro","chkFull":"Permesi tutekranon","chkLoop":"Iteracio","chkMenu":"Ebligi flaÅmenuon","chkPlay":"AÅtomata legado","flashvars":"Variabloj por FlaÅo","hSpace":"Horizontala Spaco","properties":"FlaÅatributoj","propertiesTab":"Atributoj","quality":"Kvalito","qualityAutoHigh":"AÅtomate alta","qualityAutoLow":"AÅtomate malalta","qualityBest":"Plej bona","qualityHigh":"Alta","qualityLow":"Malalta","qualityMedium":"Meza","scale":"Skalo","scaleAll":"Montri Äion","scaleFit":"Origina grando","scaleNoBorder":"Neniu bordero","title":"FlaÅatributoj","vSpace":"Vertikala Spaco","validateHSpace":"Horizontala Spaco devas esti nombro.","validateSrc":"Bonvolu entajpi la retadreson (URL)","validateVSpace":"Vertikala Spaco devas esti nombro.","windowMode":"Fenestra reÄimo","windowMo
deOpaque":"Opaka","windowModeTransparent":"Travidebla","windowModeWindow":"Fenestro"},"font":{"fontSize":{"label":"Grado","voiceLabel":"Tipara grado","panelTitle":"Tipara grado"},"label":"Tiparo","panelTitle":"Tipara nomo","voiceLabel":"Tiparo"},"forms":{"button":{"title":"Butonaj atributoj","text":"Teksto (Valoro)","type":"Tipo","typeBtn":"Butono","typeSbm":"Validigi (submit)","typeRst":"Remeti en la originstaton (Reset)"},"checkboxAndRadio":{"checkboxTitle":"Markobutonaj Atributoj","radioTitle":"Radiobutonaj Atributoj","value":"Valoro","selected":"Selektita"},"form":{"title":"Formularaj Atributoj","menu":"Formularaj Atributoj","action":"Ago","method":"Metodo","encoding":"Kodoprezento"},"hidden":{"title":"Atributoj de KaÅita Kampo","name":"Nomo","value":"Valoro"},"select":{"title":"Atributoj de Elekta Kampo","selectInfo":"Informoj pri la rulummenuo","opAvail":"Elektoj Disponeblaj","value":"Valoro","size":"Grando","lines":"Linioj","chkMulti":"Permesi Plurajn Elektojn","opTe
xt":"Teksto","opValue":"Valoro","btnAdd":"Aldoni","btnModify":"Modifi","btnUp":"Supren","btnDown":"Malsupren","btnSetValue":"Agordi kiel Elektitan Valoron","btnDelete":"Forigi"},"textarea":{"title":"Atributoj de Teksta Areo","cols":"Kolumnoj","rows":"Linioj"},"textfield":{"title":"Atributoj de Teksta Kampo","name":"Nomo","value":"Valoro","charWidth":"SignolarÄo","maxChars":"Maksimuma Nombro da Signoj","type":"Tipo","typeText":"Teksto","typePass":"Pasvorto","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formato","panelTitle":"ParagrafFormato","tag_address":"Adreso","tag_div":"Normala (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p":"Normala","tag_pre":"Formatita"},"horizontalrule":{"toolbar":"Enmeti Horizontalan Linion"},"iframe":{"border":"Montri borderon de kadro (frame)","noUrl":"Bonvolu entajpi la retadreson de la ligilo al la
enlinia kadro (IFrame)","scrolling":"Ebligi rulumskalon","title":"Atributoj de la enlinia kadro (IFrame)","toolbar":"Enlinia kadro (IFrame)"},"image":{"alertUrl":"Bonvolu tajpi la retadreson de la bildo","alt":"AnstataÅiga Teksto","border":"Bordero","btnUpload":"Sendu al Servilo","button2Img":"Äu vi volas transformi la selektitan bildbutonon en simplan bildon?","hSpace":"Horizontala Spaco","img2Button":"Äu vi volas transformi la selektitan bildon en bildbutonon?","infoTab":"Informoj pri Bildo","linkTab":"Ligilo","lockRatio":"Konservi Proporcion","menu":"Atributoj de Bildo","resetSize":"Origina Grando","title":"Atributoj de Bildo","titleButton":"Bildbutonaj Atributoj","upload":"AlÅuti","urlMissing":"La fontretadreso de la bildo mankas.","vSpace":"Vertikala Spaco","validateBorder":"La bordero devas esti entjera nombro.","validateHSpace":"La horizontala spaco devas esti entjera nombro.","validateVSpace":"La vertikala spaco devas esti entjera nombro."},"smiley":{"options":"
Opcioj pri mienvinjetoj","title":"Enmeti Mienvinjeton","toolbar":"Mienvinjeto"},"justify":{"block":"Äisrandigi AmbaÅflanke","center":"Centrigi","left":"Äisrandigi maldekstren","right":"Äisrandigi dekstren"},"link":{"acccessKey":"Fulmoklavo","advanced":"Speciala","advisoryContentType":"Enhavotipo","advisoryTitle":"Priskriba Titolo","anchor":{"toolbar":"Ankro","menu":"Enmeti/ÅanÄi Ankron","title":"Ankraj Atributoj","name":"Ankra Nomo","errorName":"Bv entajpi la ankran nomon","remove":"Forigi Ankron"},"anchorId":"Per Elementidentigilo","anchorName":"Per Ankronomo","charset":"Signaro de la Ligita Rimedo","cssClasses":"Klasoj de Stilfolioj","emailAddress":"RetpoÅto","emailBody":"MesaÄa korpo","emailSubject":"MesaÄa Temo","id":"Id","info":"Informoj pri la Ligilo","langCode":"Lingva Kodo","langDir":"Skribdirekto","langDirLTR":"De maldekstro dekstren (LTR)","langDirRTL":"De dekstro maldekstren (RTL)","menu":"ÅanÄi Ligilon","name":"Nomo","noAnchors":"<Ne disponeblas ankroj
en la dokumento>","noEmail":"Bonvolu entajpi la retpoÅtadreson","noUrl":"Bonvolu entajpi la URL-on","other":"<alia>","popupDependent":"Dependa (Netscape)","popupFeatures":"Atributoj de la Åprucfenestro","popupFullScreen":"Tutekrane (IE)","popupLeft":"Maldekstra Pozicio","popupLocationBar":"Adresobreto","popupMenuBar":"Menubreto","popupResizable":"DimensiÅanÄebla","popupScrollBars":"Rulumskaloj","popupStatusBar":"Statobreto","popupToolbar":"Ilobreto","popupTop":"Supra Pozicio","rel":"Rilato","selectAnchor":"Elekti Ankron","styles":"Stilo","tabIndex":"Taba Indekso","target":"Celo","targetFrame":"<kadro>","targetFrameName":"Nomo de CelKadro","targetPopup":"<Åprucfenestro>","targetPopupName":"Nomo de Åprucfenestro","title":"Ligilo","toAnchor":"Ankri en tiu Äi paÄo","toEmail":"RetpoÅto","toUrl":"URL","toolbar":"Enmeti/ÅanÄi Ligilon","type":"Tipo de Ligilo","unlink":"Forigi Ligilon","upload":"AlÅuti"},"liststyle":{"armenian":"Armena nombrado","bulletedTitle":"Atributo
j de Bula Listo","circle":"Cirklo","decimal":"Dekumaj Nombroj (1, 2, 3, ktp.)","decimalLeadingZero":"Dekumaj Nombroj malantaÅ nulo (01, 02, 03, ktp.)","disc":"Disko","georgian":"Gruza nombrado (an, ban, gan, ktp.)","lowerAlpha":"Minusklaj Literoj (a, b, c, d, e, ktp.)","lowerGreek":"Grekaj Minusklaj Literoj (alpha, beta, gamma, ktp.)","lowerRoman":"Minusklaj Romanaj Nombroj (i, ii, iii, iv, v, ktp.)","none":"Neniu","notset":"<DefaÅlta>","numberedTitle":"Atributoj de Numera Listo","square":"kvadrato","start":"Komenco","type":"Tipo","upperAlpha":"Majusklaj Literoj (A, B, C, D, E, ktp.)","upperRoman":"Majusklaj Romanaj Nombroj (I, II, III, IV, V, ktp.)","validateStartNumber":"La unua listero devas esti entjera nombro."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Pligrandigi","minimize":"Malgrandigi"},"newpage":{"toolbar":"Nova PaÄo"},"pagebreak":{"alt":"PaÄavanco","toolbar":"Enmeti PaÄavancon por Presado"},"pastetext":{"button":"Interglui kiel pl
atan tekston","title":"Interglui kiel platan tekston"},"pastefromword":{"confirmCleanup":"La teksto, kiun vi volas interglui, Åajnas esti kopiita el Word. Äu vi deziras purigi Äin antaÅ intergluo?","error":"Ne eblis purigi la intergluitajn datenojn pro interna eraro","title":"Interglui el Word","toolbar":"Interglui el Word"},"preview":{"preview":"Vidigi Aspekton"},"print":{"toolbar":"Presi"},"removeformat":{"toolbar":"Forigi Formaton"},"save":{"toolbar":"Konservi"},"selectall":{"toolbar":"Elekti Äion"},"showblocks":{"toolbar":"Montri la blokojn"},"sourcearea":{"toolbar":"Fonto"},"specialchar":{"options":"Opcioj pri Specialaj Signoj","title":"Selekti Specialan Signon","toolbar":"Enmeti Specialan Signon"},"scayt":{"about":"Pri OKDVT","aboutTab":"Pri","addWord":"Almeti la vorton","allCaps":"Ignori la vortojn skribitajn nur per Äefliteroj","dic_create":"Krei","dic_delete":"Forigi","dic_field_name":"Vortaronomo","dic_info":"Komence la vortaro de la uzanto estas konservita e
n kuketo. Tamen la kuketgrando estas limigita. Kiam la vortaro de la uzanto atingas grandon, kiu ne plu ebligas konservi Äin en kuketo, tiam la vortaro povas esti konservata en niaj serviloj. Por konservi vian personan vortaron en nian servilon, vi devas indiki nomon por tiu vortaro. Se vi jam havas konservitan vortaron, bonvolu entajpi ties nomon kaj alklaki la restaÅrbutonon.","dic_rename":"Renomi","dic_restore":"RestaÅri","dictionariesTab":"Vortaroj","disable":"Malebligi OKDVT","emptyDic":"La vortaronomo ne devus esti malplena.","enable":"Ebligi OKDVT","ignore":"Ignori","ignoreAll":"Ignori Äion","ignoreDomainNames":"Ignori domajnajn nomojn","langs":"Lingvoj","languagesTab":"Lingvoj","mixedCase":"Ignori vortojn kun miksa uskleco","mixedWithDigits":"Ignori vortojn kun nombroj","moreSuggestions":"Pli da sugestoj","opera_title":"Ne subportata de Opera","options":"Opcioj","optionsTab":"Opcioj","title":"OrtografiKontrolado Dum Vi Tajpas (OKDVT)","toggle":"Baskuligi OKDVT","
noSuggestions":"No suggestion"},"stylescombo":{"label":"Stiloj","panelTitle":"Stiloj pri enpaÄigo","panelTitle1":"Stiloj de blokoj","panelTitle2":"Enliniaj Stiloj","panelTitle3":"Stiloj de objektoj"},"table":{"border":"Bordero","caption":"Tabeltitolo","cell":{"menu":"Äelo","insertBefore":"Enmeti Äelon AntaÅ","insertAfter":"Enmeti Äelon Post","deleteCell":"Forigi la Äelojn","merge":"Kunfandi la Äelojn","mergeRight":"Kunfandi dekstren","mergeDown":"Kunfandi malsupren ","splitHorizontal":"Horizontale dividi","splitVertical":"Vertikale dividi","title":"Äelatributoj","cellType":"Äeltipo","rowSpan":"Kunfando de linioj","colSpan":"Kunfando de kolumnoj","wordWrap":"Cezuro","hAlign":"Horizontala Äisrandigo","vAlign":"Vertikala Äisrandigo","alignBaseline":"Malsupro de la teksto","bgColor":"Fonkoloro","borderColor":"Borderkoloro","data":"Datenoj","header":"Supra paÄotitolo","yes":"Jes","no":"No","invalidWidth":"ÄellarÄo devas esti nombro.","invalidHeight":"Äelalto devas
esti nombro.","invalidRowSpan":"Kunfando de linioj devas esti entjera nombro.","invalidColSpan":"Kunfando de kolumnoj devas esti entjera nombro.","chooseColor":"Elektu"},"cellPad":"Interna MarÄeno de la Äeloj","cellSpace":"Spaco inter la Äeloj","column":{"menu":"Kolumno","insertBefore":"Enmeti kolumnon antaÅ","insertAfter":"Enmeti kolumnon post","deleteColumn":"Forigi Kolumnojn"},"columns":"Kolumnoj","deleteTable":"Forigi Tabelon","headers":"Supraj PaÄotitoloj","headersBoth":"AmbaÅ","headersColumn":"Unua kolumno","headersNone":"Neniu","headersRow":"Unua linio","invalidBorder":"La bordergrando devas esti nombro.","invalidCellPadding":"La interna marÄeno en la Äeloj devas esti pozitiva nombro.","invalidCellSpacing":"La spaco inter la Äeloj devas esti pozitiva nombro.","invalidCols":"La nombro de la kolumnoj devas superi 0.","invalidHeight":"La tabelalto devas esti nombro.","invalidRows":"La nombro de la linioj devas superi 0.","invalidWidth":"La tabellarÄo devas esti
nombro.","menu":"Atributoj de Tabelo","row":{"menu":"Linio","insertBefore":"Enmeti linion antaÅ","insertAfter":"Enmeti linion post","deleteRow":"Forigi Liniojn"},"rows":"Linioj","summary":"Resumo","title":"Atributoj de Tabelo","toolbar":"Tabelo","widthPc":"elcentoj","widthPx":"Rastrumeroj","widthUnit":"unuo de larÄo"},"undo":{"redo":"Refari","undo":"Malfari"},"wsc":{"btnIgnore":"Ignori","btnIgnoreAll":"Ignori Äion","btnReplace":"AnstataÅigi","btnReplaceAll":"AnstataÅigi Äion","btnUndo":"Malfari","changeTo":"ÅanÄi al","errorLoading":"Eraro en la servoelÅuto el la gastiga komputiko: %s.","ieSpellDownload":"Ortografikontrolilo ne instalita. Äu vi volas elÅuti Äin nun?","manyChanges":"Ortografikontrolado finita: %1 vortoj korektitaj","noChanges":"Ortografikontrolado finita: neniu vorto korektita","noMispell":"Ortografikontrolado finita: neniu eraro trovita","noSuggestions":"- Neniu propono -","notAvailable":"BedaÅrinde la servo ne funkcias nuntempe.","notInDic":"Ne
trovita en la vortaro","oneChange":"Ortografikontrolado finita: unu vorto korektita","progress":"La ortografio estas kontrolata...","title":"Kontroli la ortografion","toolbar":"Kontroli la ortografion"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/es.js b/share/static/RichText/lang/es.js
index 74d7ead..86e4f65 100644
--- a/share/static/RichText/lang/es.js
+++ b/share/static/RichText/lang/es.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.es={dir:'ltr',editorTitle:'Editor de texto, %1, pulse ALT 0 para ayuda.',toolbar:'Barra de herramientas',editor:'Editor de texto enriquecido',source:'Fuente HTML',newPage:'Nueva Página',save:'Guardar',preview:'Vista Previa',cut:'Cortar',copy:'Copiar',paste:'Pegar',print:'Imprimir',underline:'Subrayado',bold:'Negrita',italic:'Cursiva',selectAll:'Seleccionar Todo',removeFormat:'Eliminar Formato',strike:'Tachado',subscript:'SubÃndice',superscript:'SuperÃndice',horizontalrule:'Insertar LÃnea Horizontal',pagebreak:'Insertar Salto de Página',unlink:'Eliminar VÃnculo',undo:'Deshacer',redo:'Rehacer',common:{browseServer:'Ver Servidor',url:'URL',protocol:'Protocolo',upload:'Cargar',uploadSubmit:'Enviar al Servidor',image:'Imagen',flash:'Flash',form:'Formulario',checkbox:'Casilla de Verificación',radio:'Botones de Radio',textField:'Campo de Texto',textarea:'Area de Texto',hiddenField:'Campo Oculto',button:'Botón',select:'Campo de Selección',imageButton:'Botón I
magen',notSet:'<No definido>',id:'Id',name:'Nombre',langDir:'Orientación',langDirLtr:'Izquierda a Derecha (LTR)',langDirRtl:'Derecha a Izquierda (RTL)',langCode:'Cód. de idioma',longDescr:'Descripción larga URL',cssClass:'Clases de hojas de estilo',advisoryTitle:'TÃtulo',cssStyle:'Estilo',ok:'Aceptar',cancel:'Cancelar',close:'Cerrar',preview:'Previsualización',generalTab:'General',advancedTab:'Avanzado',validateNumberFailed:'El valor no es un número.',confirmNewPage:'Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?',confirmCancel:'Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?',options:'Opciones',target:'Destino',targetNew:'Nueva ventana (_blank)',targetTop:'Ventana principal (_top)',targetSelf:'Misma ventana (_self)',targetParent:'Ventana padre (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',una
vailable:'%1<span class="cke_accessibility">, no disponible</span>'},contextmenu:{options:'Opciones del menú contextual'},specialChar:{toolbar:'Insertar Caracter Especial',title:'Seleccione un caracter especial',options:'Opciones de caracteres especiales'},link:{toolbar:'Insertar/Editar VÃnculo',other:'<otro>',menu:'Editar VÃnculo',title:'VÃnculo',info:'Información de VÃnculo',target:'Destino',upload:'Cargar',advanced:'Avanzado',type:'Tipo de vÃnculo',toUrl:'URL',toAnchor:'Referencia en esta página',toEmail:'E-Mail',targetFrame:'<marco>',targetPopup:'<ventana emergente>',targetFrameName:'Nombre del Marco Destino',targetPopupName:'Nombre de Ventana Emergente',popupFeatures:'CaracterÃsticas de Ventana Emergente',popupResizable:'Redimensionable',popupStatusBar:'Barra de Estado',popupLocationBar:'Barra de ubicación',popupToolbar:'Barra de Herramientas',popupMenuBar:'Barra de Menú',popupFullScreen:'Pantalla Completa (IE)',popupScrollBars:'Barras de desplazamiento',popu
pDependent:'Dependiente (Netscape)',popupWidth:'Anchura',popupLeft:'Posición Izquierda',popupHeight:'Altura',popupTop:'Posición Derecha',id:'Id',langDir:'Orientación',langDirLTR:'Izquierda a Derecha (LTR)',langDirRTL:'Derecha a Izquierda (RTL)',acccessKey:'Clave de Acceso',name:'Nombre',langCode:'Código idioma',tabIndex:'Indice de tabulación',advisoryTitle:'TÃtulo',advisoryContentType:'Tipo de Contenido',cssClasses:'Clases de hojas de estilo',charset:'Fuente de caracteres vinculado',styles:'Estilo',selectAnchor:'Seleccionar una referencia',anchorName:'Por Nombre de Referencia',anchorId:'Por ID de elemento',emailAddress:'Dirección de E-Mail',emailSubject:'TÃtulo del Mensaje',emailBody:'Cuerpo del Mensaje',noAnchors:'(No hay referencias disponibles en el documento)',noUrl:'Por favor tipee el vÃnculo URL',noEmail:'Por favor tipee la dirección de e-mail'},anchor:{toolbar:'Referencia',menu:'Propiedades de Referencia',title:'Propiedades de Referencia',name:'Nombre de la
Referencia',errorName:'Por favor, complete el nombre de la Referencia'},list:{numberedTitle:'Propiedades de lista numerada',bulletedTitle:'Propiedades de viñetas',type:'Tipo',start:'Inicio',validateStartNumber:'List start number must be a whole number.',circle:'CÃrculo',disc:'Disco',square:'Cuadrado',none:'Ninguno',notset:'<sin establecer>',armenian:'Numeración armenia',georgian:'Numeración georgiana (an, ban, gan, etc.)',lowerRoman:'Números romanos en minúsculas (i, ii, iii, iv, v, etc.)',upperRoman:'Números romanos en mayúsculas (I, II, III, IV, V, etc.)',lowerAlpha:'Alfabeto en minúsculas (a, b, c, d, e, etc.)',upperAlpha:'Alfabeto en mayúsculas (A, B, C, D, E, etc.)',lowerGreek:'Letras griegas (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal con cero inicial (01, 02, 03, etc.)'},findAndReplace:{title:'Buscar y Reemplazar',find:'Buscar',replace:'Reemplazar',findWhat:'Texto a buscar:',replaceWith:'Reemplazar con:',notFoun
dMsg:'El texto especificado no ha sido encontrado.',matchCase:'Coincidir may/min',matchWord:'Coincidir toda la palabra',matchCyclic:'Buscar en todo el contenido',replaceAll:'Reemplazar Todo',replaceSuccessMsg:'La expresión buscada ha sido reemplazada %1 veces.'},table:{toolbar:'Tabla',title:'Propiedades de Tabla',menu:'Propiedades de Tabla',deleteTable:'Eliminar Tabla',rows:'Filas',columns:'Columnas',border:'Tamaño de Borde',align:'Alineación',alignLeft:'Izquierda',alignCenter:'Centrado',alignRight:'Derecha',width:'Anchura',widthPx:'pixeles',widthPc:'porcentaje',widthUnit:'unidad de la anchura',height:'Altura',cellSpace:'Esp. e/celdas',cellPad:'Esp. interior',caption:'TÃtulo',summary:'SÃntesis',headers:'Encabezados',headersNone:'Ninguno',headersColumn:'Primera columna',headersRow:'Primera fila',headersBoth:'Ambas',invalidRows:'El número de filas debe ser un número mayor que 0.',invalidCols:'El número de columnas debe ser un número mayor que 0.',invalidBorder:'El tam
año del borde debe ser un número.',invalidWidth:'La anchura de tabla debe ser un número.',invalidHeight:'La altura de tabla debe ser un número.',invalidCellSpacing:'El espaciado entre celdas debe ser un número.',invalidCellPadding:'El espaciado interior debe ser un número.',cell:{menu:'Celda',insertBefore:'Insertar celda a la izquierda',insertAfter:'Insertar celda a la derecha',deleteCell:'Eliminar Celdas',merge:'Combinar Celdas',mergeRight:'Combinar a la derecha',mergeDown:'Combinar hacia abajo',splitHorizontal:'Dividir la celda horizontalmente',splitVertical:'Dividir la celda verticalmente',title:'Propiedades de celda',cellType:'Tipo de Celda',rowSpan:'Expandir filas',colSpan:'Expandir columnas',wordWrap:'Ajustar al contenido',hAlign:'Alineación Horizontal',vAlign:'Alineación Vertical',alignTop:'Arriba',alignMiddle:'Medio',alignBottom:'Abajo',alignBaseline:'Linea de base',bgColor:'Color de fondo',borderColor:'Color de borde',data:'Datos',header:'Encabezado',yes:'SÃ
',no:'No',invalidWidth:'La anchura de celda debe ser un número.',invalidHeight:'La altura de celda debe ser un número.',invalidRowSpan:'La expansión de filas debe ser un número entero.',invalidColSpan:'La expansión de columnas debe ser un número entero.',chooseColor:'Elegir'},row:{menu:'Fila',insertBefore:'Insertar fila en la parte superior',insertAfter:'Insertar fila en la parte inferior',deleteRow:'Eliminar Filas'},column:{menu:'Columna',insertBefore:'Insertar columna a la izquierda',insertAfter:'Insertar columna a la derecha',deleteColumn:'Eliminar Columnas'}},button:{title:'Propiedades de Botón',text:'Texto (Valor)',type:'Tipo',typeBtn:'Boton',typeSbm:'Enviar',typeRst:'Reestablecer'},checkboxAndRadio:{checkboxTitle:'Propiedades de Casilla',radioTitle:'Propiedades de Botón de Radio',value:'Valor',selected:'Seleccionado'},form:{title:'Propiedades de Formulario',menu:'Propiedades de Formulario',action:'Acción',method:'Método',encoding:'Codificación'},select:{tit
le:'Propiedades de Campo de Selección',selectInfo:'Información',opAvail:'Opciones disponibles',value:'Valor',size:'Tamaño',lines:'Lineas',chkMulti:'Permitir múltiple selección',opText:'Texto',opValue:'Valor',btnAdd:'Agregar',btnModify:'Modificar',btnUp:'Subir',btnDown:'Bajar',btnSetValue:'Establecer como predeterminado',btnDelete:'Eliminar'},textarea:{title:'Propiedades de Area de Texto',cols:'Columnas',rows:'Filas'},textfield:{title:'Propiedades de Campo de Texto',name:'Nombre',value:'Valor',charWidth:'Caracteres de ancho',maxChars:'Máximo caracteres',type:'Tipo',typeText:'Texto',typePass:'Contraseña'},hidden:{title:'Propiedades de Campo Oculto',name:'Nombre',value:'Valor'},image:{title:'Propiedades de Imagen',titleButton:'Propiedades de Botón de Imagen',menu:'Propiedades de Imagen',infoTab:'Información de Imagen',btnUpload:'Enviar al Servidor',upload:'Cargar',alt:'Texto Alternativo',width:'Anchura',height:'Altura',lockRatio:'Proporcional',unlockRatio:'Desbloquear
el proporcional',resetSize:'Tamaño Original',border:'Borde',hSpace:'Esp.Horiz',vSpace:'Esp.Vert',align:'Alineación',alignLeft:'Izquierda',alignRight:'Derecha',alertUrl:'Por favor escriba la URL de la imagen',linkTab:'VÃnculo',button2Img:'¿Desea convertir el botón de imagen en una simple imagen?',img2Button:'¿Desea convertir la imagen en un botón de imagen?',urlMissing:'Debe indicar la URL de la imagen.',validateWidth:'La anchura debe ser un número.',validateHeight:'La altura debe ser un número.',validateBorder:'El borde debe ser un número.',validateHSpace:'El espaciado horizontal debe ser un número.',validateVSpace:'El espaciado vertical debe ser un número.'},flash:{properties:'Propiedades de Flash',propertiesTab:'Propiedades',title:'Propiedades de Flash',chkPlay:'Autoejecución',chkLoop:'Repetir',chkMenu:'Activar Menú Flash',chkFull:'Permitir pantalla completa',scale:'Escala',scaleAll:'Mostrar todo',scaleNoBorder:'Sin Borde',scaleFit:'Ajustado',access:'Acceso d
e scripts',accessAlways:'Siempre',accessSameDomain:'Mismo dominio',accessNever:'Nunca',align:'Alineación',alignLeft:'Izquierda',alignAbsBottom:'Abs inferior',alignAbsMiddle:'Abs centro',alignBaseline:'LÃnea de base',alignBottom:'Pie',alignMiddle:'Centro',alignRight:'Derecha',alignTextTop:'Tope del texto',alignTop:'Tope',quality:'Calidad',qualityBest:'La mejor',qualityHigh:'Alta',qualityAutoHigh:'Auto Alta',qualityMedium:'Media',qualityAutoLow:'Auto Baja',qualityLow:'Baja',windowModeWindow:'Ventana',windowModeOpaque:'Opaco',windowModeTransparent:'Transparente',windowMode:'WindowMode',flashvars:'Opciones',bgcolor:'Color de Fondo',width:'Anchura',height:'Altura',hSpace:'Esp.Horiz',vSpace:'Esp.Vert',validateSrc:'Por favor escriba el vÃnculo URL',validateWidth:'Anchura debe ser un número.',validateHeight:'Altura debe ser un número.',validateHSpace:'Esp.Horiz debe ser un número.',validateVSpace:'Esp.Vert debe ser un número.'},spellCheck:{toolbar:'OrtografÃa',title:'Comprob
ar ortografÃa',notAvailable:'Lo sentimos pero el servicio no está disponible.',errorLoading:'Error cargando la aplicación del servidor: %s.',notInDic:'No se encuentra en el Diccionario',changeTo:'Cambiar a',btnIgnore:'Ignorar',btnIgnoreAll:'Ignorar Todo',btnReplace:'Reemplazar',btnReplaceAll:'Reemplazar Todo',btnUndo:'Deshacer',noSuggestions:'- No hay sugerencias -',progress:'Control de OrtografÃa en progreso...',noMispell:'Control finalizado: no se encontraron errores',noChanges:'Control finalizado: no se ha cambiado ninguna palabra',oneChange:'Control finalizado: se ha cambiado una palabra',manyChanges:'Control finalizado: se ha cambiado %1 palabras',ieSpellDownload:'Módulo de Control de OrtografÃa no instalado.\r\n¿Desea descargarlo ahora?'},smiley:{toolbar:'Emoticonos',title:'Insertar un Emoticon',options:'Opciones de emoticonos'},elementsPath:{eleLabel:'Ruta de los elementos',eleTitle:'%1 elemento'},numberedlist:'Numeración',bulletedlist:'Viñetas',indent:'Aumen
tar SangrÃa',outdent:'Disminuir SangrÃa',justify:{left:'Alinear a Izquierda',center:'Centrar',right:'Alinear a Derecha',block:'Justificado'},blockquote:'Cita',clipboard:{title:'Pegar',cutError:'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).',copyError:'La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).',pasteMsg:'Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.',securityMsg:'Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles.\r\nEs necesario que lo pegue de nuevo en esta ventana.',pasteArea:'Zona de pegado'},pastefromword:{confirmCleanup:'El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?',toolbar:'Pegar d
esde Word',title:'Pegar desde Word',error:'No ha sido posible limpiar los datos debido a un error interno'},pasteText:{button:'Pegar como Texto Plano',title:'Pegar como Texto Plano'},templates:{button:'Plantillas',title:'Contenido de Plantillas',options:'Opciones de plantillas',insertOption:'Reemplazar el contenido actual',selectPromptMsg:'Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):',emptyListMsg:'(No hay plantillas definidas)'},showBlocks:'Mostrar bloques',stylesCombo:{label:'Estilo',panelTitle:'Estilos para formatear',panelTitle1:'Estilos de párrafo',panelTitle2:'Estilos de carácter',panelTitle3:'Estilos de objeto'},format:{label:'Formato',panelTitle:'Formato',tag_p:'Normal',tag_pre:'Con formato',tag_address:'Dirección',tag_h1:'Encabezado 1',tag_h2:'Encabezado 2',tag_h3:'Encabezado 3',tag_h4:'Encabezado 4',tag_h5:'Encabezado 5',tag_h6:'Encabezado 6',tag_div:'Normal (DIV)'},div:{title:'Crear contenedor DIV',toolbar:'Crear
contenedor DIV',cssClassInputLabel:'Clase de hoja de estilos',styleSelectLabel:'Estilo',IdInputLabel:'Id',languageCodeInputLabel:' Codigo de idioma',inlineStyleInputLabel:'Estilo',advisoryTitleInputLabel:'TÃtulo',langDirLabel:'Orientación',langDirLTRLabel:'Izquierda a Derecha (LTR)',langDirRTLLabel:'Derecha a Izquierda (RTL)',edit:'Editar Div',remove:'Quitar Div'},font:{label:'Fuente',voiceLabel:'Fuente',panelTitle:'Fuente'},fontSize:{label:'Tamaño',voiceLabel:'Tamaño de fuente',panelTitle:'Tamaño'},colorButton:{textColorTitle:'Color de Texto',bgColorTitle:'Color de Fondo',panelTitle:'Colores',auto:'Automático',more:'Más Colores...'},colors:{'000':'Negro',800000:'Marrón oscuro','8B4513':'Marrón tierra','2F4F4F':'Pizarra Oscuro','008080':'Azul verdoso','000080':'Azul marino','4B0082':'Añil',696969:'Gris oscuro',B22222:'Ladrillo',A52A2A:'Marrón',DAA520:'Oro oscuro','006400':'Verde oscuro','40E0D0':'Turquesa','0000CD':'Azul medio-oscuro',800080:'Púrpura',808080:'Gri
s',F00:'Rojo',FF8C00:'Naranja oscuro',FFD700:'Oro','008000':'Verde','0FF':'Cian','00F':'Azul',EE82EE:'Violeta',A9A9A9:'Gris medio',FFA07A:'Salmón claro',FFA500:'Naranja',FFFF00:'Amarillo','00FF00':'Lima',AFEEEE:'Turquesa claro',ADD8E6:'Azul claro',DDA0DD:'Violeta claro',D3D3D3:'Gris claro',FFF0F5:'Lavanda rojizo',FAEBD7:'Blanco antiguo',FFFFE0:'Amarillo claro',F0FFF0:'Miel',F0FFFF:'Azul celeste',F0F8FF:'Azul pálido',E6E6FA:'Lavanda',FFF:'Blanco'},scayt:{title:'Comprobar OrtografÃa Mientras Escribe',opera_title:'No soportado en Opera',enable:'Activar Corrector',disable:'Desactivar Corrector',about:'Acerca de Corrector',toggle:'Cambiar Corrector',options:'Opciones',langs:'Idiomas',moreSuggestions:'Más sugerencias',ignore:'Ignorar',ignoreAll:'Ignorar Todas',addWord:'Añadir palabra',emptyDic:'El nombre del diccionario no puede estar en blanco.',optionsTab:'Opciones',allCaps:'Omitir palabras en MAYÃSCULAS',ignoreDomainNames:'Omitir nombres de dominio',mixedCase:'Ignorar pal
abras con combinación de mayúsculas y minúsculas',mixedWithDigits:'Omitir palabras con números',languagesTab:'Idiomas',dictionariesTab:'Diccionarios',dic_field_name:'Nombre del diccionario',dic_create:'Crear',dic_restore:'Recuperar',dic_delete:'Borrar',dic_rename:'Renombrar',dic_info:'Inicialmente el Diccionario de usuario se guarda en una Cookie. Sin embargo, las cookies están limitadas en tamaño. Cuando el diccionario crece a un punto en el que no se puede guardar en una Cookie, el diccionario puede ser almacenado en nuestro servidor. Para almacenar su diccionario personalizado en nuestro servidor debe especificar un nombre para su diccionario. Si ya ha guardado un diccionaro, por favor, escriba su nombre y pulse el botón Recuperar',aboutTab:'Acerca de'},about:{title:'Acerca de CKEditor',dlgTitle:'Acerca de CKEditor',moreInfo:'Para información de licencia, por favor visite nuestro sitio web:',copy:'Copyright © $1. Todos los derechos reservados.'},maximize:'Max
imizar',minimize:'Minimizar',fakeobjects:{anchor:'Ancla',flash:'Animación flash',div:'Salto de página',unknown:'Objeto desconocido'},resize:'Arrastre para redimensionar',colordialog:{title:'Elegir color',options:'Opciones de colores',highlight:'Muestra',selected:'Elegido',clear:'Borrar'},toolbarCollapse:'Contraer barra de herramientas',toolbarExpand:'Expandir barra de herramientas',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['es']={"dir":"ltr","editor":"Editor de texto enriquecido","common":{"editorHelp":"Pulse ALT 0 para ayuda","browseServer":"Ver Servidor","url":"URL","protocol":"Protocolo","upload":"Cargar","uploadSubmit":"Enviar al Servidor","image":"Imagen","flash":"Flash","form":"Formulario","checkbox":"Casilla de Verificación","radio":"Botones de Radio","textField":"Campo de Texto","textarea":"Area de Texto","hiddenField":"Campo Oculto","button":"Botón","select":"Campo de Selección","imageButton":"Botón Imagen","notSet":"<No definido>","id":"Id","name":"Nombre","langDir":"Orientación","langDirLtr":"Izquierda a Derecha (LTR)","langDirRtl":"Derecha a Izquierda (RTL)","langCode":"Cód. de idioma","longDescr":"Descripción larga URL","cssClass":"Clases de hojas de estilo","advisoryTitle":"TÃtulo","cssStyle":"Estilo","ok":"Aceptar","cancel":"Cancelar","close":"Cerrar","preview":"Previsualización","resize":"Arrastre para redimensionar","generalTab":"General","advancedTab":"
Avanzado","validateNumberFailed":"El valor no es un número.","confirmNewPage":"Cualquier cambio que no se haya guardado se perderá.\r\n¿Está seguro de querer crear una nueva página?","confirmCancel":"Algunas de las opciones se han cambiado.\r\n¿Está seguro de querer cerrar el diálogo?","options":"Opciones","target":"Destino","targetNew":"Nueva ventana (_blank)","targetTop":"Ventana principal (_top)","targetSelf":"Misma ventana (_self)","targetParent":"Ventana padre (_parent)","langDirLTR":"Izquierda a derecha (LTR)","langDirRTL":"Derecha a izquierda (RTL)","styles":"Estilos","cssClasses":"Clase de la hoja de estilos","width":"Anchura","height":"Altura","align":"Alineación","alignLeft":"Izquierda","alignRight":"Derecha","alignCenter":"Centrado","alignTop":"Tope","alignMiddle":"Centro","alignBottom":"Pie","invalidValue":"Valor no válido","invalidHeight":"Altura debe ser un número.","invalidWidth":"Anchura debe ser un número.","invalidCssLength":"El valor especifica
do para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"El valor especificado para el campo \"%1\" debe ser un número positivo, incluyendo optionalmente una unidad de medida HTML válida (px o %).","invalidInlineStyle":"El valor especificado para el estilo debe consistir en uno o más pares con el formato \"nombre: valor\", separados por punto y coma.","cssLengthTooltip":"Introduca un número para el valor en pixels o un número con una unidad de medida CSS válida (px, %, in, cm, mm, em, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, no disponible</span>"},"about":{"copy":"Copyright © $1. Todos los derechos reservados.","dlgTitle":"Acerca de CKEditor","help":"Lea la $1 para resolver sus dudas.","moreInfo":"Para información de licencia, por favor visite nuestro sitio web:","title":"Acerca de CKEditor","userGuide":"GuÃa de usuario
de CKEditor"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"SubÃndice","superscript":"SuperÃndice","underline":"Subrayado"},"bidi":{"ltr":"Dirección del texto de izquierda a derecha","rtl":"Dirección del texto de derecha a izquierda"},"blockquote":{"toolbar":"Cita"},"clipboard":{"copy":"Copiar","copyError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado.\r\nPor favor use el teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado.\r\nPor favor use el teclado (Ctrl/Cmd+X).","paste":"Pegar","pasteArea":"Zona de pegado","pasteMsg":"Por favor pegue dentro del cuadro utilizando el teclado (<STRONG>Ctrl/Cmd+V</STRONG>);\r\nluego presione <STRONG>Aceptar</STRONG>.","securityMsg":"Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapape
les.\r\nEs necesario que lo pegue de nuevo en esta ventana.","title":"Pegar"},"colorbutton":{"auto":"Automático","bgColorTitle":"Color de Fondo","colors":{"000":"Negro","800000":"Marrón oscuro","8B4513":"Marrón tierra","2F4F4F":"Pizarra Oscuro","008080":"Azul verdoso","000080":"Azul marino","4B0082":"Añil","696969":"Gris oscuro","B22222":"Ladrillo","A52A2A":"Marrón","DAA520":"Oro oscuro","006400":"Verde oscuro","40E0D0":"Turquesa","0000CD":"Azul medio-oscuro","800080":"Púrpura","808080":"Gris","F00":"Rojo","FF8C00":"Naranja oscuro","FFD700":"Oro","008000":"Verde","0FF":"Cian","00F":"Azul","EE82EE":"Violeta","A9A9A9":"Gris medio","FFA07A":"Salmón claro","FFA500":"Naranja","FFFF00":"Amarillo","00FF00":"Lima","AFEEEE":"Turquesa claro","ADD8E6":"Azul claro","DDA0DD":"Violeta claro","D3D3D3":"Gris claro","FFF0F5":"Lavanda rojizo","FAEBD7":"Blanco antiguo","FFFFE0":"Amarillo claro","F0FFF0":"Miel","F0FFFF":"Azul celeste","F0F8FF":"Azul pálido","E6E6FA":"Lavanda","FFF":"Bla
nco"},"more":"Más Colores...","panelTitle":"Colores","textColorTitle":"Color de Texto"},"colordialog":{"clear":"Borrar","highlight":"Muestra","options":"Opciones de colores","selected":"Elegido","title":"Elegir color"},"templates":{"button":"Plantillas","emptyListMsg":"(No hay plantillas definidas)","insertOption":"Reemplazar el contenido actual","options":"Opciones de plantillas","selectPromptMsg":"Por favor selecciona la plantilla a abrir en el editor<br>(el contenido actual se perderá):","title":"Contenido de Plantillas"},"contextmenu":{"options":"Opciones del menú contextual"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"TÃtulo","cssClassInputLabel":"Clase de hoja de estilos","edit":"Editar Div","inlineStyleInputLabel":"Estilo","langDirLTRLabel":"Izquierda a Derecha (LTR)","langDirLabel":"Orientación","langDirRTLLabel":"Derecha a Izquierda (RTL)","languageCodeInputLabel":" Codigo de idioma","remove":"Quitar Div","styleSelectLabel":"Estilo","title":"Crear co
ntenedor DIV","toolbar":"Crear contenedor DIV"},"toolbar":{"toolbarCollapse":"Contraer barra de herramientas","toolbarExpand":"Expandir barra de herramientas","toolbarGroups":{"document":"Documento","clipboard":"Portapapeles/Deshacer","editing":"Edición","forms":"Formularios","basicstyles":"Estilos básicos","paragraph":"Párrafo","links":"Enlaces","insert":"Insertar","styles":"Estilos","colors":"Colores","tools":"Herramientas"},"toolbars":"Barras de herramientas del editor"},"elementspath":{"eleLabel":"Ruta de los elementos","eleTitle":"%1 elemento"},"list":{"bulletedlist":"Viñetas","numberedlist":"Numeración"},"indent":{"indent":"Aumentar SangrÃa","outdent":"Disminuir SangrÃa"},"find":{"find":"Buscar","findOptions":"Opciones de búsqueda","findWhat":"Texto a buscar:","matchCase":"Coincidir may/min","matchCyclic":"Buscar en todo el contenido","matchWord":"Coincidir toda la palabra","notFoundMsg":"El texto especificado no ha sido encontrado.","replace":"Reemplazar","rep
laceAll":"Reemplazar Todo","replaceSuccessMsg":"La expresión buscada ha sido reemplazada %1 veces.","replaceWith":"Reemplazar con:","title":"Buscar y Reemplazar"},"fakeobjects":{"anchor":"Ancla","flash":"Animación flash","hiddenfield":"Campo oculto","iframe":"IFrame","unknown":"Objeto desconocido"},"flash":{"access":"Acceso de scripts","accessAlways":"Siempre","accessNever":"Nunca","accessSameDomain":"Mismo dominio","alignAbsBottom":"Abs inferior","alignAbsMiddle":"Abs centro","alignBaseline":"LÃnea de base","alignTextTop":"Tope del texto","bgcolor":"Color de Fondo","chkFull":"Permitir pantalla completa","chkLoop":"Repetir","chkMenu":"Activar Menú Flash","chkPlay":"Autoejecución","flashvars":"Opciones","hSpace":"Esp.Horiz","properties":"Propiedades de Flash","propertiesTab":"Propiedades","quality":"Calidad","qualityAutoHigh":"Auto Alta","qualityAutoLow":"Auto Baja","qualityBest":"La mejor","qualityHigh":"Alta","qualityLow":"Baja","qualityMedium":"Media","scale":"Escala"
,"scaleAll":"Mostrar todo","scaleFit":"Ajustado","scaleNoBorder":"Sin Borde","title":"Propiedades de Flash","vSpace":"Esp.Vert","validateHSpace":"Esp.Horiz debe ser un número.","validateSrc":"Por favor escriba el vÃnculo URL","validateVSpace":"Esp.Vert debe ser un número.","windowMode":"WindowMode","windowModeOpaque":"Opaco","windowModeTransparent":"Transparente","windowModeWindow":"Ventana"},"font":{"fontSize":{"label":"Tamaño","voiceLabel":"Tamaño de fuente","panelTitle":"Tamaño"},"label":"Fuente","panelTitle":"Fuente","voiceLabel":"Fuente"},"forms":{"button":{"title":"Propiedades de Botón","text":"Texto (Valor)","type":"Tipo","typeBtn":"Boton","typeSbm":"Enviar","typeRst":"Reestablecer"},"checkboxAndRadio":{"checkboxTitle":"Propiedades de Casilla","radioTitle":"Propiedades de Botón de Radio","value":"Valor","selected":"Seleccionado"},"form":{"title":"Propiedades de Formulario","menu":"Propiedades de Formulario","action":"Acción","method":"Método","encoding":"Cod
ificación"},"hidden":{"title":"Propiedades de Campo Oculto","name":"Nombre","value":"Valor"},"select":{"title":"Propiedades de Campo de Selección","selectInfo":"Información","opAvail":"Opciones disponibles","value":"Valor","size":"Tamaño","lines":"Lineas","chkMulti":"Permitir múltiple selección","opText":"Texto","opValue":"Valor","btnAdd":"Agregar","btnModify":"Modificar","btnUp":"Subir","btnDown":"Bajar","btnSetValue":"Establecer como predeterminado","btnDelete":"Eliminar"},"textarea":{"title":"Propiedades de Area de Texto","cols":"Columnas","rows":"Filas"},"textfield":{"title":"Propiedades de Campo de Texto","name":"Nombre","value":"Valor","charWidth":"Caracteres de ancho","maxChars":"Máximo caracteres","type":"Tipo","typeText":"Texto","typePass":"Contraseña","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Dirección","tag_div":"Normal (DIV)","tag_h1":"Encabez
ado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Con formato"},"horizontalrule":{"toolbar":"Insertar LÃnea Horizontal"},"iframe":{"border":"Mostrar borde del marco","noUrl":"Por favor, escriba la dirección del iframe","scrolling":"Activar barras de desplazamiento","title":"Propiedades de iframe","toolbar":"IFrame"},"image":{"alertUrl":"Por favor escriba la URL de la imagen","alt":"Texto Alternativo","border":"Borde","btnUpload":"Enviar al Servidor","button2Img":"¿Desea convertir el botón de imagen en una simple imagen?","hSpace":"Esp.Horiz","img2Button":"¿Desea convertir la imagen en un botón de imagen?","infoTab":"Información de Imagen","linkTab":"VÃnculo","lockRatio":"Proporcional","menu":"Propiedades de Imagen","resetSize":"Tamaño Original","title":"Propiedades de Imagen","titleButton":"Propiedades de Botón de Imagen","upload":"Cargar","urlMissing":"Debe ind
icar la URL de la imagen.","vSpace":"Esp.Vert","validateBorder":"El borde debe ser un número.","validateHSpace":"El espaciado horizontal debe ser un número.","validateVSpace":"El espaciado vertical debe ser un número."},"smiley":{"options":"Opciones de emoticonos","title":"Insertar un Emoticon","toolbar":"Emoticonos"},"justify":{"block":"Justificado","center":"Centrar","left":"Alinear a Izquierda","right":"Alinear a Derecha"},"link":{"acccessKey":"Tecla de Acceso","advanced":"Avanzado","advisoryContentType":"Tipo de Contenido","advisoryTitle":"TÃtulo","anchor":{"toolbar":"Referencia","menu":"Propiedades de Referencia","title":"Propiedades de Referencia","name":"Nombre de la Referencia","errorName":"Por favor, complete el nombre de la Referencia","remove":"Quitar Referencia"},"anchorId":"Por ID de elemento","anchorName":"Por Nombre de Referencia","charset":"Fuente de caracteres vinculado","cssClasses":"Clases de hojas de estilo","emailAddress":"Dirección de E-Mail","emai
lBody":"Cuerpo del Mensaje","emailSubject":"TÃtulo del Mensaje","id":"Id","info":"Información de VÃnculo","langCode":"Código idioma","langDir":"Orientación","langDirLTR":"Izquierda a Derecha (LTR)","langDirRTL":"Derecha a Izquierda (RTL)","menu":"Editar VÃnculo","name":"Nombre","noAnchors":"(No hay referencias disponibles en el documento)","noEmail":"Por favor escriba la dirección de e-mail","noUrl":"Por favor escriba el vÃnculo URL","other":"<otro>","popupDependent":"Dependiente (Netscape)","popupFeatures":"CaracterÃsticas de Ventana Emergente","popupFullScreen":"Pantalla Completa (IE)","popupLeft":"Posición Izquierda","popupLocationBar":"Barra de ubicación","popupMenuBar":"Barra de Menú","popupResizable":"Redimensionable","popupScrollBars":"Barras de desplazamiento","popupStatusBar":"Barra de Estado","popupToolbar":"Barra de Herramientas","popupTop":"Posición Derecha","rel":"Relación","selectAnchor":"Seleccionar una referencia","styles":"Estilo","tabIndex":"I
ndice de tabulación","target":"Destino","targetFrame":"<marco>","targetFrameName":"Nombre del Marco Destino","targetPopup":"<ventana emergente>","targetPopupName":"Nombre de Ventana Emergente","title":"VÃnculo","toAnchor":"Referencia en esta página","toEmail":"E-Mail","toUrl":"URL","toolbar":"Insertar/Editar VÃnculo","type":"Tipo de vÃnculo","unlink":"Eliminar VÃnculo","upload":"Cargar"},"liststyle":{"armenian":"Numeración armenia","bulletedTitle":"Propiedades de viñetas","circle":"CÃrculo","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal con cero inicial (01, 02, 03, etc.)","disc":"Disco","georgian":"Numeración georgiana (an, ban, gan, etc.)","lowerAlpha":"Alfabeto en minúsculas (a, b, c, d, e, etc.)","lowerGreek":"Letras griegas (alpha, beta, gamma, etc.)","lowerRoman":"Números romanos en minúsculas (i, ii, iii, iv, v, etc.)","none":"Ninguno","notset":"<sin establecer>","numberedTitle":"Propiedades de lista numerada","square":"Cuadrado","start
":"Inicio","type":"Tipo","upperAlpha":"Alfabeto en mayúsculas (A, B, C, D, E, etc.)","upperRoman":"Números romanos en mayúsculas (I, II, III, IV, V, etc.)","validateStartNumber":"El Inicio debe ser un número entero."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"newpage":{"toolbar":"Nueva Página"},"pagebreak":{"alt":"Salto de página","toolbar":"Insertar Salto de Página"},"pastetext":{"button":"Pegar como Texto Plano","title":"Pegar como Texto Plano"},"pastefromword":{"confirmCleanup":"El texto que desea parece provenir de Word.\r\n¿Desea depurarlo antes de pegarlo?","error":"No ha sido posible limpiar los datos debido a un error interno","title":"Pegar desde Word","toolbar":"Pegar desde Word"},"preview":{"preview":"Vista Previa"},"print":{"toolbar":"Imprimir"},"removeformat":{"toolbar":"Eliminar Formato"},"save":{"toolbar":"Guardar"},"selectall":{"toolbar":"Seleccionar Todo"},"showblocks":{"toolbar":"Mostr
ar bloques"},"sourcearea":{"toolbar":"Fuente HTML"},"specialchar":{"options":"Opciones de caracteres especiales","title":"Seleccione un caracter especial","toolbar":"Insertar Caracter Especial"},"scayt":{"about":"Acerca de Corrector","aboutTab":"Acerca de","addWord":"Añadir palabra","allCaps":"Omitir palabras en MAYÃSCULAS","dic_create":"Crear","dic_delete":"Borrar","dic_field_name":"Nombre del diccionario","dic_info":"Inicialmente el Diccionario de usuario se guarda en una Cookie. Sin embargo, las cookies están limitadas en tamaño. Cuando el diccionario crece a un punto en el que no se puede guardar en una Cookie, el diccionario puede ser almacenado en nuestro servidor. Para almacenar su diccionario personalizado en nuestro servidor debe especificar un nombre para su diccionario. Si ya ha guardado un diccionaro, por favor, escriba su nombre y pulse el botón Recuperar","dic_rename":"Renombrar","dic_restore":"Recuperar","dictionariesTab":"Diccionarios","disable":"Desacti
var Corrector","emptyDic":"El nombre del diccionario no puede estar en blanco.","enable":"Activar Corrector","ignore":"Ignorar","ignoreAll":"Ignorar Todas","ignoreDomainNames":"Omitir nombres de dominio","langs":"Idiomas","languagesTab":"Idiomas","mixedCase":"Ignorar palabras con combinación de mayúsculas y minúsculas","mixedWithDigits":"Omitir palabras con números","moreSuggestions":"Más sugerencias","opera_title":"No soportado en Opera","options":"Opciones","optionsTab":"Opciones","title":"Comprobar OrtografÃa Mientras Escribe","toggle":"Cambiar Corrector","noSuggestions":"No suggestion"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos para formatear","panelTitle1":"Estilos de párrafo","panelTitle2":"Estilos de carácter","panelTitle3":"Estilos de objeto"},"table":{"border":"Tamaño de Borde","caption":"TÃtulo","cell":{"menu":"Celda","insertBefore":"Insertar celda a la izquierda","insertAfter":"Insertar celda a la derecha","deleteCell":"Eliminar Celdas","merg
e":"Combinar Celdas","mergeRight":"Combinar a la derecha","mergeDown":"Combinar hacia abajo","splitHorizontal":"Dividir la celda horizontalmente","splitVertical":"Dividir la celda verticalmente","title":"Propiedades de celda","cellType":"Tipo de Celda","rowSpan":"Expandir filas","colSpan":"Expandir columnas","wordWrap":"Ajustar al contenido","hAlign":"Alineación Horizontal","vAlign":"Alineación Vertical","alignBaseline":"Linea de base","bgColor":"Color de fondo","borderColor":"Color de borde","data":"Datos","header":"Encabezado","yes":"SÃ","no":"No","invalidWidth":"La anchura de celda debe ser un número.","invalidHeight":"La altura de celda debe ser un número.","invalidRowSpan":"La expansión de filas debe ser un número entero.","invalidColSpan":"La expansión de columnas debe ser un número entero.","chooseColor":"Elegir"},"cellPad":"Esp. interior","cellSpace":"Esp. e/celdas","column":{"menu":"Columna","insertBefore":"Insertar columna a la izquierda","insertAfter":"In
sertar columna a la derecha","deleteColumn":"Eliminar Columnas"},"columns":"Columnas","deleteTable":"Eliminar Tabla","headers":"Encabezados","headersBoth":"Ambas","headersColumn":"Primera columna","headersNone":"Ninguno","headersRow":"Primera fila","invalidBorder":"El tamaño del borde debe ser un número.","invalidCellPadding":"El espaciado interior debe ser un número.","invalidCellSpacing":"El espaciado entre celdas debe ser un número.","invalidCols":"El número de columnas debe ser un número mayor que 0.","invalidHeight":"La altura de tabla debe ser un número.","invalidRows":"El número de filas debe ser un número mayor que 0.","invalidWidth":"La anchura de tabla debe ser un número.","menu":"Propiedades de Tabla","row":{"menu":"Fila","insertBefore":"Insertar fila en la parte superior","insertAfter":"Insertar fila en la parte inferior","deleteRow":"Eliminar Filas"},"rows":"Filas","summary":"SÃntesis","title":"Propiedades de Tabla","toolbar":"Tabla","widthPc":"porcen
taje","widthPx":"pixeles","widthUnit":"unidad de la anchura"},"undo":{"redo":"Rehacer","undo":"Deshacer"},"wsc":{"btnIgnore":"Ignorar","btnIgnoreAll":"Ignorar Todo","btnReplace":"Reemplazar","btnReplaceAll":"Reemplazar Todo","btnUndo":"Deshacer","changeTo":"Cambiar a","errorLoading":"Error cargando la aplicación del servidor: %s.","ieSpellDownload":"Módulo de Control de OrtografÃa no instalado.\r\n¿Desea descargarlo ahora?","manyChanges":"Control finalizado: se ha cambiado %1 palabras","noChanges":"Control finalizado: no se ha cambiado ninguna palabra","noMispell":"Control finalizado: no se encontraron errores","noSuggestions":"- No hay sugerencias -","notAvailable":"Lo sentimos pero el servicio no está disponible.","notInDic":"No se encuentra en el Diccionario","oneChange":"Control finalizado: se ha cambiado una palabra","progress":"Control de OrtografÃa en progreso...","title":"Comprobar ortografÃa","toolbar":"OrtografÃa"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/et.js b/share/static/RichText/lang/et.js
index ff183bf..4264298 100644
--- a/share/static/RichText/lang/et.js
+++ b/share/static/RichText/lang/et.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.et={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Lähtekood',newPage:'Uus leht',save:'Salvesta',preview:'Eelvaade',cut:'Lõika',copy:'Kopeeri',paste:'Kleebi',print:'Prindi',underline:'Allajoonitud',bold:'Paks',italic:'Kursiiv',selectAll:'Vali kõik',removeFormat:'Eemalda vorming',strike:'Läbijoonitud',subscript:'Allindeks',superscript:'Ãlaindeks',horizontalrule:'Sisesta horisontaaljoon',pagebreak:'Sisesta lehevahetuskoht',unlink:'Eemalda link',undo:'Võta tagasi',redo:'Korda toimingut',common:{browseServer:'Sirvi serverit',url:'URL',protocol:'Protokoll',upload:'Lae üles',uploadSubmit:'Saada serverissee',image:'Pilt',flash:'Flash',form:'Vorm',checkbox:'Märkeruut',radio:'Raadionupp',textField:'Tekstilahter',textarea:'Tekstiala',hiddenField:'Varjatud lahter',button:'Nupp',select:'Valiklahter',imageButton:'Piltnupp',notSet:'<määramata>',id:'Id',name:'Nimi',langDir:'Keele suund',langDir
Ltr:'Vasakult paremale (LTR)',langDirRtl:'Paremalt vasakule (RTL)',langCode:'Keele kood',longDescr:'Pikk kirjeldus URL',cssClass:'Stiilistiku klassid',advisoryTitle:'Juhendav tiitel',cssStyle:'Laad',ok:'OK',cancel:'Loobu',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Täpsemalt',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Sisesta erimärk',ti
tle:'Vali erimärk',options:'Special Character Options'},link:{toolbar:'Sisesta link / Muuda linki',other:'<muu>',menu:'Muuda linki',title:'Link',info:'Lingi info',target:'Sihtkoht',upload:'Lae üles',advanced:'Täpsemalt',type:'Lingi tüüp',toUrl:'URL',toAnchor:'Ankur sellel lehel',toEmail:'E-post',targetFrame:'<raam>',targetPopup:'<hüpikaken>',targetFrameName:'Sihtmärk raami nimi',targetPopupName:'Hüpikakna nimi',popupFeatures:'Hüpikakna omadused',popupResizable:'Resizable',popupStatusBar:'Olekuriba',popupLocationBar:'Aadressiriba',popupToolbar:'Tööriistariba',popupMenuBar:'Menüüriba',popupFullScreen:'Täisekraan (IE)',popupScrollBars:'Kerimisribad',popupDependent:'Sõltuv (Netscape)',popupWidth:'Laius',popupLeft:'Vasak asukoht',popupHeight:'Kõrgus',popupTop:'Ãlemine asukoht',id:'Id',langDir:'Keele suund',langDirLTR:'Vasakult paremale (LTR)',langDirRTL:'Paremalt vasakule (RTL)',acccessKey:'Juurdepääsu võti',name:'Nimi',langCode:'Keele suund',tabIndex:'Tab ind
eks',advisoryTitle:'Juhendav tiitel',advisoryContentType:'Juhendava sisu tüüp',cssClasses:'Stiilistiku klassid',charset:'Lingitud ressurssi märgistik',styles:'Laad',selectAnchor:'Vali ankur',anchorName:'Ankru nime järgi',anchorId:'Elemendi id järgi',emailAddress:'E-posti aadress',emailSubject:'Sõnumi teema',emailBody:'Sõnumi tekst',noAnchors:'(Selles dokumendis ei ole ankruid)',noUrl:'Palun kirjuta lingi URL',noEmail:'Palun kirjuta E-Posti aadress'},anchor:{toolbar:'Sisesta ankur / Muuda ankrut',menu:'Ankru omadused',title:'Ankru omadused',name:'Ankru nimi',errorName:'Palun sisest ankru nimi'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc
.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Otsi ja asenda',find:'Otsi',replace:'Asenda',findWhat:'Leia mida:',replaceWith:'Asenda millega:',notFoundMsg:'Valitud teksti ei leitud.',matchCase:'Erista suur- ja väiketähti',matchWord:'Otsi terviklike sõnu',matchCyclic:'Match cyclic',replaceAll:'Asenda kõik',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabel',title:'Tabeli atribuudid',menu:'Tabeli atribuudid',deleteTable:'Kustuta tabel',rows:'Read',columns:'Veerud',border:'Joone suurus',align:'Joondus',alignLeft:'Vasak',alignCenter:'Kesk',alignRight:'Parem',width:'Laius',widthPx:'pikslit',widthPc:'protsenti',widthUnit:'width unit',height:'Kõrgus',cellSpace:'Lahtri vahe',cellPad:'Lahtri
täidis',caption:'Tabeli tiitel',summary:'Kokkuvõte',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Lahter',insertBefore:'Sisesta lahter enne',insertAfter:'Sisesta lahter peale',deleteCell:'Eemalda lahtrid',merge:'Ãhenda lahtrid',mergeRight:'Ãhenda paremale',mergeDown:'Ãhenda alla',splitHorizontal:'Poolita lahter horisontaalselt',splitVertical:'Poolita lahter vertikaalselt',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment
',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Rida',insertBefore:'Sisesta rida enne',insertAfter:'Sisesta rida peale',deleteRow:'Eemalda read'},column:{menu:'Veerg',insertBefore:'Sisesta veerg enne',insertAfter:'Sisesta veerg peale',deleteColumn:'Eemalda veerud'}},button:{title:'Nupu omadused',text:'Tekst (väärtus)',type:'Tüüp',typeBtn:'Nupp',typeSbm:'Saada',typeRst:'Lähtesta'},checkboxAndRadio:{checkboxTitle:'Märkeruudu omadused',radioTitle:'Raadionupu omadused',value:'Väärtus',selected:'Valitud'},form:{title:'Vormi omadused',menu:'Vormi omadused',action:'Toiming',method:'Meetod',encoding:'Encoding'},select
:{title:'Valiklahtri omadused',selectInfo:'Info',opAvail:'Võimalikud valikud',value:'Väärtus',size:'Suurus',lines:'ridu',chkMulti:'Võimalda mitu valikut',opText:'Tekst',opValue:'Väärtus',btnAdd:'Lisa',btnModify:'Muuda',btnUp:'Ãles',btnDown:'Alla',btnSetValue:'Sea valitud olekuna',btnDelete:'Kustuta'},textarea:{title:'Tekstiala omadused',cols:'Veerge',rows:'Ridu'},textfield:{title:'Tekstilahtri omadused',name:'Nimi',value:'Väärtus',charWidth:'Laius (tähemärkides)',maxChars:'Maksimaalselt tähemärke',type:'Tüüp',typeText:'Tekst',typePass:'Parool'},hidden:{title:'Varjatud lahtri omadused',name:'Nimi',value:'Väärtus'},image:{title:'Pildi atribuudid',titleButton:'Piltnupu omadused',menu:'Pildi atribuudid',infoTab:'Pildi info',btnUpload:'Saada serverissee',upload:'Lae üles',alt:'Alternatiivne tekst',width:'Laius',height:'Kõrgus',lockRatio:'Lukusta kuvasuhe',unlockRatio:'Unlock Ratio',resetSize:'Lähtesta suurus',border:'Joon',hSpace:'H. vaheruum',vSpace:'V. vaher
uum',align:'Joondus',alignLeft:'Vasak',alignRight:'Paremale',alertUrl:'Palun kirjuta pildi URL',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash omadused',propertiesTab:'Properties',title:'Flash omadused',chkPlay:'Automaatne start ',chkLoop:'Korduv',chkMenu:'Võimalda flash menüü',chkFull:'Allow Fullscreen',scale:'Mastaap',scaleAll:'Näita kõike',scaleNoBorder:'Ãärist ei ole',scaleFit:'Täpne sobivus',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Joondus',alignLeft:'Vasak',alignAbsBottom:'Ab
s alla',alignAbsMiddle:'Abs keskele',alignBaseline:'Baasjoonele',alignBottom:'Alla',alignMiddle:'Keskele',alignRight:'Paremale',alignTextTop:'Tekstit üles',alignTop:'Ãles',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Tausta värv',width:'Laius',height:'Kõrgus',hSpace:'H. vaheruum',vSpace:'V. vaheruum',validateSrc:'Palun kirjuta lingi URL',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Kontrolli õigekirja',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Puudub sõnastikust',changeTo:'Mu
uda',btnIgnore:'Ignoreeri',btnIgnoreAll:'Ignoreeri kõiki',btnReplace:'Asenda',btnReplaceAll:'Asenda kõik',btnUndo:'Võta tagasi',noSuggestions:'- Soovitused puuduvad -',progress:'Toimub õigekirja kontroll...',noMispell:'Ãigekirja kontroll sooritatud: õigekirjuvigu ei leitud',noChanges:'Ãigekirja kontroll sooritatud: ühtegi sõna ei muudetud',oneChange:'Ãigekirja kontroll sooritatud: üks sõna muudeti',manyChanges:'Ãigekirja kontroll sooritatud: %1 sõna muudetud',ieSpellDownload:'Ãigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?'},smiley:{toolbar:'Emotikon',title:'Sisesta emotikon',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Nummerdatud loetelu',bulletedlist:'Punktiseeritud loetelu',indent:'Suurenda taanet',outdent:'Vähenda taanet',justify:{left:'Vasakjoondus',center:'Keskjoondus',right:'Paremjoondus',block:'Rööpjoondus'},blockquote:'Blokktsitaat',clipboard:{title:'Kleebi',cutErr
or:'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).',copyError:'Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).',pasteMsg:'Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.',securityMsg:'Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Kleebi Wordist',title:'Kleebi Wordist',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Kleebi tavalise tekstina',title:'Kleebi tavalise tekstina'},templates:{butt
on:'Å abloon',title:'Sisu Å¡abloonid',options:'Template Options',insertOption:'Asenda tegelik sisu',selectPromptMsg:'Palun vali Å¡abloon, et avada see redaktoris<br />(praegune sisu läheb kaotsi):',emptyListMsg:'(Ãhtegi Å¡ablooni ei ole defineeritud)'},showBlocks:'Näita blokke',stylesCombo:{label:'Laad',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Vorming',panelTitle:'Vorming',tag_p:'Tavaline',tag_pre:'Vormindatud',tag_address:'Aadress',tag_h1:'Pealkiri 1',tag_h2:'Pealkiri 2',tag_h3:'Pealkiri 3',tag_h4:'Pealkiri 4',tag_h5:'Pealkiri 5',tag_h6:'Pealkiri 6',tag_div:'Tavaline (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabe
l:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Kiri',voiceLabel:'Font',panelTitle:'Kiri'},fontSize:{label:'Suurus',voiceLabel:'Font Size',panelTitle:'Suurus'},colorButton:{textColorTitle:'Teksti värv',bgColorTitle:'Tausta värv',panelTitle:'Colors',auto:'Automaatne',more:'Rohkem värve...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE
0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the diction
ary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['et']={"dir":"ltr","editor":"Rikkalik tekstiredaktor","common":{"editorHelp":"Abi saamiseks vajuta ALT 0","browseServer":"Serveri sirvimine","url":"URL","protocol":"Protokoll","upload":"Laadi üles","uploadSubmit":"Saada serverisse","image":"Pilt","flash":"Flash","form":"Vorm","checkbox":"Märkeruut","radio":"Raadionupp","textField":"Tekstilahter","textarea":"Tekstiala","hiddenField":"Varjatud lahter","button":"Nupp","select":"Valiklahter","imageButton":"Piltnupp","notSet":"<määramata>","id":"ID","name":"Nimi","langDir":"Keele suund","langDirLtr":"Vasakult paremale (LTR)","langDirRtl":"Paremalt vasakule (RTL)","langCode":"Keele kood","longDescr":"Pikk kirjeldus URL","cssClass":"Stiilistiku klassid","advisoryTitle":"Soovituslik pealkiri","cssStyle":"Laad","ok":"OK","cancel":"Loobu","close":"Sulge","preview":"Eelvaade","resize":"Suuruse muutmiseks lohista","generalTab":"Ãldine","advancedTab":"Täpsemalt","validateNumberFailed":"See väärtus pole number.","con
firmNewPage":"Kõik salvestamata muudatused lähevad kaotsi. Kas oled kindel, et tahad laadida uue lehe?","confirmCancel":"Mõned valikud on muudetud. Kas oled kindel, et tahad dialoogi sulgeda?","options":"Valikud","target":"Sihtkoht","targetNew":"Uus aken (_blank)","targetTop":"Kõige ülemine aken (_top)","targetSelf":"Sama aken (_self)","targetParent":"Vanemaken (_parent)","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","styles":"Stiili","cssClasses":"Stiililehe klassid","width":"Laius","height":"Kõrgus","align":"Joondus","alignLeft":"Vasak","alignRight":"Paremale","alignCenter":"Kesk","alignTop":"Ãles","alignMiddle":"Keskele","alignBottom":"Alla","invalidValue":"Invalid value.","invalidHeight":"Kõrgus peab olema number.","invalidWidth":"Laius peab olema number.","invalidCssLength":"\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv CSS ühikuga (px, %, in, cm, mm, em, ex, pt või pc) või ilma.","invalidHtmlLength":"
\"%1\" välja jaoks määratud väärtus peab olema positiivne täisarv HTML ühikuga (px või %) või ilma.","invalidInlineStyle":"Reasisese stiili määrangud peavad koosnema paarisväärtustest (tuples), mis on semikoolonitega eraldatult järgnevas vormingus: \"nimi : väärtus\".","cssLengthTooltip":"Sisesta väärtus pikslites või number koos sobiva CSS-i ühikuga (px, %, in, cm, mm, em, ex, pt või pc).","unavailable":"%1<span class=\"cke_accessibility\">, pole saadaval</span>"},"about":{"copy":"Copyright © $1. Kõik õigused kaitstud.","dlgTitle":"CKEditorist","help":"Abi jaoks vaata $1.","moreInfo":"Litsentsi andmed leiab meie veebilehelt:","title":"CKEditorist","userGuide":"CKEditori kasutusjuhendit"},"basicstyles":{"bold":"Paks","italic":"Kursiiv","strike":"Läbijoonitud","subscript":"Allindeks","superscript":"Ãlaindeks","underline":"Allajoonitud"},"bidi":{"ltr":"Teksti suund vasakult paremale","rtl":"Teksti suund paremalt vasakule"},"blockquote":{"toolbar":
"Blokktsitaat"},"clipboard":{"copy":"Kopeeri","copyError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+C).","cut":"Lõika","cutError":"Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl/Cmd+X).","paste":"Aseta","pasteArea":"Asetamise ala","pasteMsg":"Palun aseta tekst järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (<STRONG>Ctrl/Cmd+V</STRONG>) ja vajuta seejärel <STRONG>OK</STRONG>.","securityMsg":"Sinu veebisirvija turvaseadete tõttu ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead asetama need uuesti siia aknasse.","title":"Asetamine"},"colorbutton":{"auto":"Automaatne","bgColorTitle":"Tausta värv","colors":{"000":"Must","800000":"Kastanpruun","8B4513":"Sadulapruun","2F4F4F":"Tume paehall","008080":"Sinakasroheline","000080":"Meresinine","4B0082":"Indigosinine","69
6969":"Tumehall","B22222":"Å amottkivi","A52A2A":"Pruun","DAA520":"Kuldkollane","006400":"Tumeroheline","40E0D0":"Türkiissinine","0000CD":"Keskmine sinine","800080":"Lilla","808080":"Hall","F00":"Punanae","FF8C00":"Tumeoranž","FFD700":"Kuldne","008000":"Roheline","0FF":"Tsüaniidsinine","00F":"Sinine","EE82EE":"Violetne","A9A9A9":"Tuhm hall","FFA07A":"Hele lõhe","FFA500":"Oranž","FFFF00":"Kollane","00FF00":"Lubja hall","AFEEEE":"Kahvatu türkiis","ADD8E6":"Helesinine","DDA0DD":"Ploomililla","D3D3D3":"Helehall","FFF0F5":"Lavendlipunane","FAEBD7":"Antiikvalge","FFFFE0":"Helekollane","F0FFF0":"Meloniroheline","F0FFFF":"Taevasinine","F0F8FF":"Beebisinine","E6E6FA":"Lavendel","FFF":"Valge"},"more":"Rohkem värve...","panelTitle":"Värvid","textColorTitle":"Teksti värv"},"colordialog":{"clear":"Eemalda","highlight":"Näidis","options":"Värvi valikud","selected":"Valitud värv","title":"Värvi valimine"},"templates":{"button":"Mall","emptyListMsg":"(Ãhtegi malli ei ole defin
eeritud)","insertOption":"Praegune sisu asendatakse","options":"Malli valikud","selectPromptMsg":"Palun vali mall, mis avada redaktoris<br />(praegune sisu läheb kaotsi):","title":"Sisumallid"},"contextmenu":{"options":"Kontekstimenüü valikud"},"div":{"IdInputLabel":"ID","advisoryTitleInputLabel":"Soovitatav pealkiri","cssClassInputLabel":"Stiililehe klassid","edit":"Muuda Div","inlineStyleInputLabel":"Reasisene stiil","langDirLTRLabel":"Vasakult paremale (LTR)","langDirLabel":"Keele suund","langDirRTLLabel":"Paremalt vasakule (RTL)","languageCodeInputLabel":" Keelekood","remove":"Eemalda Div","styleSelectLabel":"Stiil","title":"Div-konteineri loomine","toolbar":"Div-konteineri loomine"},"toolbar":{"toolbarCollapse":"Tööriistariba peitmine","toolbarExpand":"Tööriistariba näitamine","toolbarGroups":{"document":"Dokument","clipboard":"Lõikelaud/tagasivõtmine","editing":"Muutmine","forms":"Vormid","basicstyles":"Põhistiilid","paragraph":"Lõik","links":"Lingid","inse
rt":"Sisesta","styles":"Stiilid","colors":"Värvid","tools":"Tööriistad"},"toolbars":"Redaktori tööriistaribad"},"elementspath":{"eleLabel":"Elementide asukoht","eleTitle":"%1 element"},"list":{"bulletedlist":"Punktloend","numberedlist":"Numberloend"},"indent":{"indent":"Taande suurendamine","outdent":"Taande vähendamine"},"find":{"find":"Otsi","findOptions":"Otsingu valikud","findWhat":"Otsitav:","matchCase":"Suur- ja väiketähtede eristamine","matchCyclic":"Jätkatakse algusest","matchWord":"Ainult terved sõnad","notFoundMsg":"Otsitud teksti ei leitud.","replace":"Asenda","replaceAll":"Asenda kõik","replaceSuccessMsg":"%1 vastet asendati.","replaceWith":"Asendus:","title":"Otsimine ja asendamine"},"fakeobjects":{"anchor":"Ankur","flash":"Flashi animatsioon","hiddenfield":"Varjatud väli","iframe":"IFrame","unknown":"Tundmatu objekt"},"flash":{"access":"Skriptide ligipääs","accessAlways":"Kõigile","accessNever":"Mitte ühelegi","accessSameDomain":"Samalt domeenil
t","alignAbsBottom":"Abs alla","alignAbsMiddle":"Abs keskele","alignBaseline":"Baasjoonele","alignTextTop":"Tekstist üles","bgcolor":"Tausta värv","chkFull":"Täisekraan lubatud","chkLoop":"Korduv","chkMenu":"Flashi menüü lubatud","chkPlay":"Automaatne start ","flashvars":"Flashi muutujad","hSpace":"H. vaheruum","properties":"Flashi omadused","propertiesTab":"Omadused","quality":"Kvaliteet","qualityAutoHigh":"Automaatne kõrge","qualityAutoLow":"Automaatne madal","qualityBest":"Parim","qualityHigh":"Kõrge","qualityLow":"Madal","qualityMedium":"Keskmine","scale":"Mastaap","scaleAll":"Näidatakse kõike","scaleFit":"Täpne sobivus","scaleNoBorder":"Ãärist ei ole","title":"Flashi omadused","vSpace":"V. vaheruum","validateHSpace":"H. vaheruum peab olema number.","validateSrc":"Palun kirjuta lingi URL","validateVSpace":"V. vaheruum peab olema number.","windowMode":"Akna režiim","windowModeOpaque":"Läbipaistmatu","windowModeTransparent":"Läbipaistev","windowModeWindow":"
Aken"},"font":{"fontSize":{"label":"Suurus","voiceLabel":"Kirja suurus","panelTitle":"Suurus"},"label":"Kiri","panelTitle":"Kiri","voiceLabel":"Kiri"},"forms":{"button":{"title":"Nupu omadused","text":"Tekst (väärtus)","type":"Liik","typeBtn":"Nupp","typeSbm":"Saada","typeRst":"Lähtesta"},"checkboxAndRadio":{"checkboxTitle":"Märkeruudu omadused","radioTitle":"Raadionupu omadused","value":"Väärtus","selected":"Märgitud"},"form":{"title":"Vormi omadused","menu":"Vormi omadused","action":"Toiming","method":"Meetod","encoding":"Kodeering"},"hidden":{"title":"Varjatud lahtri omadused","name":"Nimi","value":"Väärtus"},"select":{"title":"Valiklahtri omadused","selectInfo":"Info","opAvail":"Võimalikud valikud:","value":"Väärtus","size":"Suurus","lines":"ridu","chkMulti":"Võimalik mitu valikut","opText":"Tekst","opValue":"Väärtus","btnAdd":"Lisa","btnModify":"Muuda","btnUp":"Ãles","btnDown":"Alla","btnSetValue":"Määra vaikimisi","btnDelete":"Kustuta"},"textarea":{"t
itle":"Tekstiala omadused","cols":"Veerge","rows":"Ridu"},"textfield":{"title":"Tekstilahtri omadused","name":"Nimi","value":"Väärtus","charWidth":"Laius (tähemärkides)","maxChars":"Maksimaalselt tähemärke","type":"Liik","typeText":"Tekst","typePass":"Parool","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Vorming","panelTitle":"Vorming","tag_address":"Aadress","tag_div":"Tavaline (DIV)","tag_h1":"Pealkiri 1","tag_h2":"Pealkiri 2","tag_h3":"Pealkiri 3","tag_h4":"Pealkiri 4","tag_h5":"Pealkiri 5","tag_h6":"Pealkiri 6","tag_p":"Tavaline","tag_pre":"Vormindatud"},"horizontalrule":{"toolbar":"Horisontaaljoone sisestamine"},"iframe":{"border":"Raami äärise näitamine","noUrl":"Vali iframe URLi liik","scrolling":"Kerimisribade lubamine","title":"IFrame omadused","toolbar":"IFrame"},"image":{"alertUrl":"Palun kirjuta pildi URL","alt":"Alternatiivne tekst","border":"Joon","btnUpload":"Saada serverisse","button2Img":
"Kas tahad teisendada valitud pildiga nupu tavaliseks pildiks?","hSpace":"H. vaheruum","img2Button":"Kas tahad teisendada valitud tavalise pildi pildiga nupuks?","infoTab":"Pildi info","linkTab":"Link","lockRatio":"Lukusta kuvasuhe","menu":"Pildi omadused","resetSize":"Lähtesta suurus","title":"Pildi omadused","titleButton":"Piltnupu omadused","upload":"Lae üles","urlMissing":"Pildi lähte-URL on puudu.","vSpace":"V. vaheruum","validateBorder":"Ãärise laius peab olema täisarv.","validateHSpace":"Horisontaalne vaheruum peab olema täisarv.","validateVSpace":"Vertikaalne vaheruum peab olema täisarv."},"smiley":{"options":"Emotikonide valikud","title":"Sisesta emotikon","toolbar":"Emotikon"},"justify":{"block":"Rööpjoondus","center":"Keskjoondus","left":"Vasakjoondus","right":"Paremjoondus"},"link":{"acccessKey":"Juurdepääsu võti","advanced":"Täpsemalt","advisoryContentType":"Juhendava sisu tüüp","advisoryTitle":"Juhendav tiitel","anchor":{"toolbar":"Ankru sisesta
mine/muutmine","menu":"Ankru omadused","title":"Ankru omadused","name":"Ankru nimi","errorName":"Palun sisesta ankru nimi","remove":"Eemalda ankur"},"anchorId":"Elemendi id järgi","anchorName":"Ankru nime järgi","charset":"Lingitud ressursi märgistik","cssClasses":"Stiilistiku klassid","emailAddress":"E-posti aadress","emailBody":"Sõnumi tekst","emailSubject":"Sõnumi teema","id":"ID","info":"Lingi info","langCode":"Keele suund","langDir":"Keele suund","langDirLTR":"Vasakult paremale (LTR)","langDirRTL":"Paremalt vasakule (RTL)","menu":"Muuda linki","name":"Nimi","noAnchors":"(Selles dokumendis pole ankruid)","noEmail":"Palun kirjuta e-posti aadress","noUrl":"Palun kirjuta lingi URL","other":"<muu>","popupDependent":"Sõltuv (Netscape)","popupFeatures":"Hüpikakna omadused","popupFullScreen":"Täisekraan (IE)","popupLeft":"Vasak asukoht","popupLocationBar":"Aadressiriba","popupMenuBar":"Menüüriba","popupResizable":"Suurust saab muuta","popupScrollBars":"Kerimisribad","
popupStatusBar":"Olekuriba","popupToolbar":"Tööriistariba","popupTop":"Ãlemine asukoht","rel":"Suhe","selectAnchor":"Vali ankur","styles":"Laad","tabIndex":"Tab indeks","target":"Sihtkoht","targetFrame":"<raam>","targetFrameName":"Sihtmärk raami nimi","targetPopup":"<hüpikaken>","targetPopupName":"Hüpikakna nimi","title":"Link","toAnchor":"Ankur sellel lehel","toEmail":"E-post","toUrl":"URL","toolbar":"Lingi lisamine/muutmine","type":"Lingi liik","unlink":"Lingi eemaldamine","upload":"Lae üles"},"liststyle":{"armenian":"Armeenia numbrid","bulletedTitle":"Punktloendi omadused","circle":"Ring","decimal":"Numbrid (1, 2, 3, jne)","decimalLeadingZero":"Numbrid algusnulliga (01, 02, 03, jne)","disc":"Täpp","georgian":"Gruusia numbrid (an, ban, gan, jne)","lowerAlpha":"Väiketähed (a, b, c, d, e, jne)","lowerGreek":"Kreeka väiketähed (alpha, beta, gamma, jne)","lowerRoman":"Väiksed rooma numbrid (i, ii, iii, iv, v, jne)","none":"Puudub","notset":"<pole määratud>","num
beredTitle":"Numberloendi omadused","square":"Ruut","start":"Algus","type":"Liik","upperAlpha":"Suurtähed (A, B, C, D, E, jne)","upperRoman":"Suured rooma numbrid (I, II, III, IV, V, jne)","validateStartNumber":"Loendi algusnumber peab olema täisarv."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimeerimine","minimize":"Minimeerimine"},"newpage":{"toolbar":"Uus leht"},"pagebreak":{"alt":"Lehevahetuskoht","toolbar":"Lehevahetuskoha sisestamine"},"pastetext":{"button":"Asetamine tavalise tekstina","title":"Asetamine tavalise tekstina"},"pastefromword":{"confirmCleanup":"Tekst, mida tahad asetada näib pärinevat Wordist. Kas tahad selle enne asetamist puhastada?","error":"Asetatud andmete puhastamine ei olnud sisemise vea tõttu võimalik","title":"Asetamine Wordist","toolbar":"Asetamine Wordist"},"preview":{"preview":"Eelvaade"},"print":{"toolbar":"Printimine"},"removeformat":{"toolbar":"Vormingu eemaldamine"},"save":{"toolbar":"Salvestamine"},"
selectall":{"toolbar":"Kõige valimine"},"showblocks":{"toolbar":"Blokkide näitamine"},"sourcearea":{"toolbar":"Lähtekood"},"specialchar":{"options":"Erimärkide valikud","title":"Erimärgi valimine","toolbar":"Erimärgi sisestamine"},"scayt":{"about":"SCAYT-ist lähemalt","aboutTab":"Lähemalt","addWord":"Lisa sõna","allCaps":"Läbivate suurtähtedega sõnade eiramine","dic_create":"Loo","dic_delete":"Kustuta","dic_field_name":"Sõnaraamatu nimi","dic_info":"Alguses säilitatakse kasutaja sõnaraamatut küpsises. Küpsise suurus on piiratud. Pärast sõnaraamatu kasvamist nii suureks, et see küpsisesse ei mahu, võib sõnaraamatut hoida meie serveris. Oma isikliku sõnaraamatu hoidmiseks meie serveris pead andma sellele nime. Kui sa juba oled sõnaraamatu salvestanud, sisesta selle nimi ja klõpsa taastamise nupule.","dic_rename":"Nimeta ümber","dic_restore":"Taasta","dictionariesTab":"Sõnaraamatud","disable":"SCAYT keelatud","emptyDic":"Sõnaraamatu nimi ei tohi olla
tühi.","enable":"SCAYT lubatud","ignore":"Eira","ignoreAll":"Eira kõiki","ignoreDomainNames":"Domeeninimede eiramine","langs":"Keeled","languagesTab":"Keeled","mixedCase":"Tavapäratu tõstuga sõnade eiramine","mixedWithDigits":"Numbreid sisaldavate sõnade eiramine","moreSuggestions":"Veel soovitusi","opera_title":"Operas pole toetatud","options":"Valikud","optionsTab":"Valikud","title":"Ãigekirjakontroll kirjutamise ajal","toggle":"SCAYT sisse/välja lülitamine","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stiil","panelTitle":"Vormindusstiilid","panelTitle1":"Blokkstiilid","panelTitle2":"Reasisesed stiilid","panelTitle3":"Objektistiilid"},"table":{"border":"Joone suurus","caption":"Tabeli tiitel","cell":{"menu":"Lahter","insertBefore":"Sisesta lahter enne","insertAfter":"Sisesta lahter peale","deleteCell":"Eemalda lahtrid","merge":"Ãhenda lahtrid","mergeRight":"Ãhenda paremale","mergeDown":"Ãhenda alla","splitHorizontal":"Poolita lahter horisontaalselt
","splitVertical":"Poolita lahter vertikaalselt","title":"Lahtri omadused","cellType":"Lahtri liik","rowSpan":"Ridade vahe","colSpan":"Tulpade vahe","wordWrap":"Sõnade murdmine","hAlign":"Horisontaalne joondus","vAlign":"Vertikaalne joondus","alignBaseline":"Baasjoon","bgColor":"Tausta värv","borderColor":"Ãärise värv","data":"Andmed","header":"Päis","yes":"Jah","no":"Ei","invalidWidth":"Lahtri laius peab olema number.","invalidHeight":"Lahtri kõrgus peab olema number.","invalidRowSpan":"Ridade vahe peab olema täisarv.","invalidColSpan":"Tulpade vahe peab olema täisarv.","chooseColor":"Vali"},"cellPad":"Lahtri täidis","cellSpace":"Lahtri vahe","column":{"menu":"Veerg","insertBefore":"Sisesta veerg enne","insertAfter":"Sisesta veerg peale","deleteColumn":"Eemalda veerud"},"columns":"Veerud","deleteTable":"Kustuta tabel","headers":"Päised","headersBoth":"Mõlemad","headersColumn":"Esimene tulp","headersNone":"Puudub","headersRow":"Esimene rida","invalidBorder":"Ãä
rise suurus peab olema number.","invalidCellPadding":"Lahtrite polsterdus (padding) peab olema positiivne arv.","invalidCellSpacing":"Lahtrite vahe peab olema positiivne arv.","invalidCols":"Tulpade arv peab olema nullist suurem.","invalidHeight":"Tabeli kõrgus peab olema number.","invalidRows":"Ridade arv peab olema nullist suurem.","invalidWidth":"Tabeli laius peab olema number.","menu":"Tabeli omadused","row":{"menu":"Rida","insertBefore":"Sisesta rida enne","insertAfter":"Sisesta rida peale","deleteRow":"Eemalda read"},"rows":"Read","summary":"Kokkuvõte","title":"Tabeli omadused","toolbar":"Tabel","widthPc":"protsenti","widthPx":"pikslit","widthUnit":"laiuse ühik"},"undo":{"redo":"Toimingu kordamine","undo":"Tagasivõtmine"},"wsc":{"btnIgnore":"Ignoreeri","btnIgnoreAll":"Ignoreeri kõiki","btnReplace":"Asenda","btnReplaceAll":"Asenda kõik","btnUndo":"Võta tagasi","changeTo":"Muuda","errorLoading":"Viga rakenduse teenushosti laadimisel: %s.","ieSpellDownload":"Ãigek
irja kontrollija ei ole paigaldatud. Soovid sa selle alla laadida?","manyChanges":"Ãigekirja kontroll sooritatud: %1 sõna muudetud","noChanges":"Ãigekirja kontroll sooritatud: ühtegi sõna ei muudetud","noMispell":"Ãigekirja kontroll sooritatud: õigekirjuvigu ei leitud","noSuggestions":"- Soovitused puuduvad -","notAvailable":"Kahjuks ei ole teenus praegu saadaval.","notInDic":"Puudub sõnastikust","oneChange":"Ãigekirja kontroll sooritatud: üks sõna muudeti","progress":"Toimub õigekirja kontroll...","title":"Ãigekirjakontroll","toolbar":"Ãigekirjakontroll"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/eu.js b/share/static/RichText/lang/eu.js
index 96feced..14b9ad2 100644
--- a/share/static/RichText/lang/eu.js
+++ b/share/static/RichText/lang/eu.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.eu={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'HTML Iturburua',newPage:'Orrialde Berria',save:'Gorde',preview:'Aurrebista',cut:'Ebaki',copy:'Kopiatu',paste:'Itsatsi',print:'Inprimatu',underline:'Azpimarratu',bold:'Lodia',italic:'Etzana',selectAll:'Hautatu dena',removeFormat:'Kendu Formatua',strike:'Marratua',subscript:'Azpi-indize',superscript:'Goi-indize',horizontalrule:'Txertatu Marra Horizontala',pagebreak:'Txertatu Orrialde-jauzia',unlink:'Kendu Esteka',undo:'Desegin',redo:'Berregin',common:{browseServer:'Zerbitzaria arakatu',url:'URL',protocol:'Protokoloa',upload:'Gora kargatu',uploadSubmit:'Zerbitzarira bidalia',image:'Irudia',flash:'Flasha',form:'Formularioa',checkbox:'Kontrol-laukia',radio:'Aukera-botoia',textField:'Testu Eremua',textarea:'Testu-area',hiddenField:'Ezkutuko Eremua',button:'Botoia',select:'Hautespen Eremua',imageButton:'Irudi Botoia',notSet:'<Ezarri gabe>',id:'Id
',name:'Izena',langDir:'Hizkuntzaren Norabidea',langDirLtr:'Ezkerretik Eskumara(LTR)',langDirRtl:'Eskumatik Ezkerrera (RTL)',langCode:'Hizkuntza Kodea',longDescr:'URL Deskribapen Luzea',cssClass:'Estilo-orriko Klaseak',advisoryTitle:'Izenburua',cssStyle:'Estiloa',ok:'Ados',cancel:'Utzi',close:'Close',preview:'Preview',generalTab:'Orokorra',advancedTab:'Aurreratua',validateNumberFailed:'Balio hau ez da zenbaki bat.',confirmNewPage:'Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?',confirmCancel:'Aukera batzuk aldatu egin dira. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, erabilezina</span>
'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Txertatu Karaktere Berezia',title:'Karaktere Berezia Aukeratu',options:'Special Character Options'},link:{toolbar:'Txertatu/Editatu Esteka',other:'<other>',menu:'Aldatu Esteka',title:'Esteka',info:'Estekaren Informazioa',target:'Target (Helburua)',upload:'Gora kargatu',advanced:'Aurreratua',type:'Esteka Mota',toUrl:'URL',toAnchor:'Aingura orrialde honetan',toEmail:'ePosta',targetFrame:'<marko>',targetPopup:'<popup leihoa>',targetFrameName:'Marko Helburuaren Izena',targetPopupName:'Popup Leihoaren Izena',popupFeatures:'Popup Leihoaren Ezaugarriak',popupResizable:'Tamaina Aldakorra',popupStatusBar:'Egoera Barra',popupLocationBar:'Kokaleku Barra',popupToolbar:'Tresna Barra',popupMenuBar:'Menu Barra',popupFullScreen:'Pantaila Osoa (IE)',popupScrollBars:'Korritze Barrak',popupDependent:'Menpekoa (Netscape)',popupWidth:'Zabalera',popupLeft:'Ezkerreko Posizioa',popupHeight:'Altuera',popupTop:'Goiko Posizioa',id:
'Id',langDir:'Hizkuntzaren Norabidea',langDirLTR:'Ezkerretik Eskumara(LTR)',langDirRTL:'Eskumatik Ezkerrera (RTL)',acccessKey:'Sarbide-gakoa',name:'Izena',langCode:'Hizkuntzaren Norabidea',tabIndex:'Tabulazio Indizea',advisoryTitle:'Izenburua',advisoryContentType:'Eduki Mota (Content Type)',cssClasses:'Estilo-orriko Klaseak',charset:'Estekatutako Karaktere Multzoa',styles:'Estiloa',selectAnchor:'Aingura bat hautatu',anchorName:'Aingura izenagatik',anchorId:'Elementuaren ID-gatik',emailAddress:'ePosta Helbidea',emailSubject:'Mezuaren Gaia',emailBody:'Mezuaren Gorputza',noAnchors:'(Ez daude aingurak eskuragarri dokumentuan)',noUrl:'Mesedez URL esteka idatzi',noEmail:'Mesedez ePosta helbidea idatzi'},anchor:{toolbar:'Aingura',menu:'Ainguraren Ezaugarriak',title:'Ainguraren Ezaugarriak',name:'Ainguraren Izena',errorName:'Idatzi ainguraren izena'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:
'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Bilatu eta Ordeztu',find:'Bilatu',replace:'Ordezkatu',findWhat:'Zer bilatu:',replaceWith:'Zerekin ordeztu:',notFoundMsg:'Idatzitako testua ez da topatu.',matchCase:'Maiuskula/minuskula',matchWord:'Esaldi osoa bilatu',matchCyclic:'Bilaketa ziklikoa',replaceAll:'Ordeztu Guztiak',replaceSuccessMsg:'Zenbat aldiz ordeztua: %1'},table:{toolbar:'Taula',title:'Taularen Ezaugarriak',menu:'Taularen Ezaugarriak',deleteTable:'Ezab
atu Taula',rows:'Lerroak',columns:'Zutabeak',border:'Ertzaren Zabalera',align:'Lerrokatu',alignLeft:'Ezkerrean',alignCenter:'Erdian',alignRight:'Eskuman',width:'Zabalera',widthPx:'pixel',widthPc:'ehuneko',widthUnit:'width unit',height:'Altuera',cellSpace:'Gelaxka arteko tartea',cellPad:'Gelaxken betegarria',caption:'Epigrafea',summary:'Laburpena',headers:'Goiburuak',headersNone:'Bat ere ez',headersColumn:'Lehen zutabea',headersRow:'Lehen lerroa',headersBoth:'Biak',invalidRows:'Lerro kopurua 0 baino handiagoa den zenbakia izan behar da.',invalidCols:'Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.',invalidBorder:'Ertzaren tamaina zenbaki bat izan behar da.',invalidWidth:'Taularen zabalera zenbaki bat izan behar da.',invalidHeight:'Taularen altuera zenbaki bat izan behar da.',invalidCellSpacing:'Gelaxka arteko tartea zenbaki bat izan behar da.',invalidCellPadding:'Gelaxken betegarria zenbaki bat izan behar da.',cell:{menu:'Gelaxka',insertBefore:'Txertatu Gelaxka A
urretik',insertAfter:'Txertatu Gelaxka Ostean',deleteCell:'Kendu Gelaxkak',merge:'Batu Gelaxkak',mergeRight:'Elkartu Eskumara',mergeDown:'Elkartu Behera',splitHorizontal:'Banatu Gelaxkak Horizontalki',splitVertical:'Banatu Gelaxkak Bertikalki',title:'Gelaxken Ezaugarriak',cellType:'Gelaxka Mota',rowSpan:'Hedatutako Lerroak',colSpan:'Hedatutako Zutabeak',wordWrap:'Itzulbira',hAlign:'Lerrokatze Horizontala',vAlign:'Lerrokatze Bertikala',alignTop:'Goian',alignMiddle:'Erdian',alignBottom:'Behean',alignBaseline:'Oinarri-lerroan',bgColor:'Fondoaren Kolorea',borderColor:'Ertzaren Kolorea',data:'Data',header:'Goiburua',yes:'Bai',no:'Ez',invalidWidth:'Gelaxkaren zabalera zenbaki bat izan behar da.',invalidHeight:'Gelaxkaren altuera zenbaki bat izan behar da.',invalidRowSpan:'Lerroen hedapena zenbaki osoa izan behar da.',invalidColSpan:'Zutabeen hedapena zenbaki osoa izan behar da.',chooseColor:'Choose'},row:{menu:'Lerroa',insertBefore:'Txertatu Lerroa Aurretik',insertAfter:'Txertatu
Lerroa Ostean',deleteRow:'Ezabatu Lerroak'},column:{menu:'Zutabea',insertBefore:'Txertatu Zutabea Aurretik',insertAfter:'Txertatu Zutabea Ostean',deleteColumn:'Ezabatu Zutabeak'}},button:{title:'Botoiaren Ezaugarriak',text:'Testua (Balorea)',type:'Mota',typeBtn:'Botoia',typeSbm:'Bidali',typeRst:'Garbitu'},checkboxAndRadio:{checkboxTitle:'Kontrol-laukiko Ezaugarriak',radioTitle:'Aukera-botoiaren Ezaugarriak',value:'Balorea',selected:'Hautatuta'},form:{title:'Formularioaren Ezaugarriak',menu:'Formularioaren Ezaugarriak',action:'Ekintza',method:'Metodoa',encoding:'Kodeketa'},select:{title:'Hautespen Eremuaren Ezaugarriak',selectInfo:'Informazioa',opAvail:'Aukera Eskuragarriak',value:'Balorea',size:'Tamaina',lines:'lerro kopurura',chkMulti:'Hautaketa anitzak baimendu',opText:'Testua',opValue:'Balorea',btnAdd:'Gehitu',btnModify:'Aldatu',btnUp:'Gora',btnDown:'Behera',btnSetValue:'Aukeratutako balorea ezarri',btnDelete:'Ezabatu'},textarea:{title:'Testu-arearen Ezaugarriak',cols:'Zu
tabeak',rows:'Lerroak'},textfield:{title:'Testu Eremuaren Ezaugarriak',name:'Izena',value:'Balorea',charWidth:'Zabalera',maxChars:'Zenbat karaktere gehienez',type:'Mota',typeText:'Testua',typePass:'Pasahitza'},hidden:{title:'Ezkutuko Eremuaren Ezaugarriak',name:'Izena',value:'Balorea'},image:{title:'Irudi Ezaugarriak',titleButton:'Irudi Botoiaren Ezaugarriak',menu:'Irudi Ezaugarriak',infoTab:'Irudi informazioa',btnUpload:'Zerbitzarira bidalia',upload:'Gora Kargatu',alt:'Ordezko Testua',width:'Zabalera',height:'Altuera',lockRatio:'Erlazioa Blokeatu',unlockRatio:'Unlock Ratio',resetSize:'Tamaina Berrezarri',border:'Ertza',hSpace:'HSpace',vSpace:'VSpace',align:'Lerrokatu',alignLeft:'Ezkerrera',alignRight:'Eskuman',alertUrl:'Mesedez Irudiaren URLa idatzi',linkTab:'Esteka',button2Img:'Aukeratutako irudi botoia, irudi normal batean eraldatu nahi duzu?',img2Button:'Aukeratutako irudia, irudi botoi batean eraldatu nahi duzu?',urlMissing:'Image source URL is missing.',validateWidth:'
Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flasharen Ezaugarriak',propertiesTab:'Ezaugarriak',title:'Flasharen Ezaugarriak',chkPlay:'Automatikoki Erreproduzitu',chkLoop:'Begizta',chkMenu:'Flasharen Menua Gaitu',chkFull:'Onartu Pantaila osoa',scale:'Eskalatu',scaleAll:'Dena erakutsi',scaleNoBorder:'Ertzik gabe',scaleFit:'Doitu',access:'Scriptak baimendu',accessAlways:'Beti',accessSameDomain:'Domeinu berdinekoak',accessNever:'Inoiz ere ez',align:'Lerrokatu',alignLeft:'Ezkerrera',alignAbsBottom:'Abs Behean',alignAbsMiddle:'Abs Erdian',alignBaseline:'Oinan',alignBottom:'Behean',alignMiddle:'Erdian',alignRight:'Eskuman',alignTextTop:'Testua Goian',alignTop:'Goian',quality:'Kalitatea',qualityBest:'Hoberena',qualityHigh:'Altua',qualityAutoHigh:'Auto Altua',qualityMedium:'Ertaina',quali
tyAutoLow:'Auto Baxua',qualityLow:'Baxua',windowModeWindow:'Leihoa',windowModeOpaque:'Opakoa',windowModeTransparent:'Gardena',windowMode:'Leihoaren modua',flashvars:'Flash Aldagaiak',bgcolor:'Atzeko kolorea',width:'Zabalera',height:'Altuera',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'Mesedez URL esteka idatzi',validateWidth:'Zabalera zenbaki bat izan behar da.',validateHeight:'Altuera zenbaki bat izan behar da.',validateHSpace:'HSpace zenbaki bat izan behar da.',validateVSpace:'VSpace zenbaki bat izan behar da.'},spellCheck:{toolbar:'Ortografia',title:'Ortografia zuzenketa',notAvailable:'Barkatu baina momentu honetan zerbitzua ez dago erabilgarri.',errorLoading:'Errorea gertatu da aplikazioa zerbitzaritik kargatzean: %s.',notInDic:'Ez dago hiztegian',changeTo:'Honekin ordezkatu',btnIgnore:'Ezikusi',btnIgnoreAll:'Denak Ezikusi',btnReplace:'Ordezkatu',btnReplaceAll:'Denak Ordezkatu',btnUndo:'Desegin',noSuggestions:'- Iradokizunik ez -',progress:'Zuzenketa ortografikoa martxa
n...',noMispell:'Zuzenketa ortografikoa bukatuta: Akatsik ez',noChanges:'Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu',oneChange:'Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da',manyChanges:'Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira',ieSpellDownload:'Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?'},smiley:{toolbar:'Aurpegierak',title:'Aurpegiera Sartu',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 elementua'},numberedlist:'Zenbakidun Zerrenda',bulletedlist:'Buletdun Zerrenda',indent:'Handitu Koska',outdent:'Txikitu Koska',justify:{left:'Lerrokatu Ezkerrean',center:'Lerrokatu Erdian',right:'Lerrokatu Eskuman',block:'Justifikatu'},blockquote:'Aipamen blokea',clipboard:{title:'Itsatsi',cutError:'Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+X).',copyError:'Zure web nabigatzailearen segurtasun ezarpenak testuak autom
atikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+C).',pasteMsg:'Mesedez teklatua erabilita (<STRONG>Ctrl/Cmd+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.',securityMsg:'Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Itsatsi nahi duzun testua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?',toolbar:'Itsatsi Word-etik',title:'Itsatsi Word-etik',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Testu Arrunta bezala Itsatsi',title:'Testu Arrunta bezala Itsatsi'},templates:{button:'Txantiloiak',title:'Eduki Txantiloiak',options:'Template Options',insertOption:'Ordeztu oraingo edukiak',selectPromptMsg:'Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):',emptyListMsg:'(Ez da
go definitutako txantiloirik)'},showBlocks:'Blokeak erakutsi',stylesCombo:{label:'Estiloa',panelTitle:'Formatting Styles',panelTitle1:'Bloke Estiloak',panelTitle2:'Inline Estiloak',panelTitle3:'Objektu Estiloak'},format:{label:'Formatua',panelTitle:'Formatua',tag_p:'Arrunta',tag_pre:'Formateatua',tag_address:'Helbidea',tag_h1:'Izenburua 1',tag_h2:'Izenburua 2',tag_h3:'Izenburua 3',tag_h4:'Izenburua 4',tag_h5:'Izenburua 5',tag_h6:'Izenburua 6',tag_div:'Paragrafoa (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Letra-tipoa',voiceLabel:'Letra-tipoa',panelTitle:'Letra-tipoa'},fontSize:{label:'Tamaina
',voiceLabel:'Tamaina',panelTitle:'Tamaina'},colorButton:{textColorTitle:'Testu Kolorea',bgColorTitle:'Atzeko kolorea',panelTitle:'Colors',auto:'Automatikoa',more:'Kolore gehiago...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Ortografia Zuzenketa Idatzi Ahala (SCAYT)',opera_title:'Not
supported by Opera',enable:'Gaitu SCAYT',disable:'Desgaitu SCAYT',about:'SCAYTi buruz',toggle:'SCAYT aldatu',options:'Aukerak',langs:'Hizkuntzak',moreSuggestions:'Iradokizun gehiago',ignore:'Baztertu',ignoreAll:'Denak baztertu',addWord:'Hitza Gehitu',emptyDic:'Hiztegiaren izena ezin da hutsik egon.',optionsTab:'Aukerak',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Hizkuntzak',dictionariesTab:'Hiztegiak',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already
have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Honi buruz'},about:{title:'CKEditor(r)i buruz',dlgTitle:'CKEditor(r)i buruz',moreInfo:'Lizentziari buruzko informazioa gure webgunean:',copy:'Copyright © $1. Eskubide guztiak erreserbaturik.'},maximize:'Maximizatu',minimize:'Minimize',fakeobjects:{anchor:'Aingura',flash:'Flash Animazioa',div:'Orrialde Saltoa',unknown:'Objektu ezezaguna'},resize:'Arrastatu tamaina aldatzeko',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['eu']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Zerbitzaria arakatu","url":"URL","protocol":"Protokoloa","upload":"Gora kargatu","uploadSubmit":"Zerbitzarira bidalia","image":"Irudia","flash":"Flasha","form":"Formularioa","checkbox":"Kontrol-laukia","radio":"Aukera-botoia","textField":"Testu Eremua","textarea":"Testu-area","hiddenField":"Ezkutuko Eremua","button":"Botoia","select":"Hautespen Eremua","imageButton":"Irudi Botoia","notSet":"<Ezarri gabe>","id":"Id","name":"Izena","langDir":"Hizkuntzaren Norabidea","langDirLtr":"Ezkerretik Eskumara(LTR)","langDirRtl":"Eskumatik Ezkerrera (RTL)","langCode":"Hizkuntza Kodea","longDescr":"URL Deskribapen Luzea","cssClass":"Estilo-orriko Klaseak","advisoryTitle":"Izenburua","cssStyle":"Estiloa","ok":"Ados","cancel":"Utzi","close":"Close","preview":"Aurrebista","resize":"Arrastatu tamaina aldatzeko","generalTab":"Orokorra","advancedTab":"Aurreratua","validateN
umberFailed":"Balio hau ez da zenbaki bat.","confirmNewPage":"Eduki honetan gorde gabe dauden aldaketak galduko dira. Ziur zaude orri berri bat kargatu nahi duzula?","confirmCancel":"Aukera batzuk aldatu egin dira. Ziur zaude elkarrizketa-koadroa itxi nahi duzula?","options":"Aukerak","target":"Target (Helburua)","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Ezkerretik Eskumara(LTR)","langDirRTL":"Eskumatik Ezkerrera (RTL)","styles":"Estiloa","cssClasses":"Estilo-orriko Klaseak","width":"Zabalera","height":"Altuera","align":"Lerrokatu","alignLeft":"Ezkerrera","alignRight":"Eskuman","alignCenter":"Erdian","alignTop":"Goian","alignMiddle":"Erdian","alignBottom":"Behean","invalidValue":"Invalid value.","invalidHeight":"Altuera zenbaki bat izan behar da.","invalidWidth":"Zabalera zenbaki bat izan behar da.","invalidCssLength":"Value specified for the \"%1\" field mus
t be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, erabilezina</span>"},"about":{"copy":"Copyright © $1. Eskubide guztiak erreserbaturik.","dlgTitle":"CKEditor(r)i buruz","help":"Check $1 for help.","moreInfo":"Lizentziari buruzko informazioa gure webgunean:","title":"CKEditor(r)i buruz","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Lodia","italic":"Etzana","strike":"Marratua","subscript":"Azpi-indize","superscript":"Goi-in
dize","underline":"Azpimarratu"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Aipamen blokea"},"clipboard":{"copy":"Kopiatu","copyError":"Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+C).","cut":"Ebaki","cutError":"Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl/Cmd+X).","paste":"Itsatsi","pasteArea":"Paste Area","pasteMsg":"Mesedez teklatua erabilita (<STRONG>Ctrl/Cmd+V</STRONG>) ondorego eremuan testua itsatsi eta <STRONG>OK</STRONG> sakatu.","securityMsg":"Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.","title":"Itsatsi"},"colorbutton":{"auto":"Automatikoa","bgColorTitle":"Atzeko kolorea","colors":{"000":"Black","800000":"Maroon","8B4513":"
Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Kolore gehiago...","panelTitle":"Colors","textColorTitle":"Testu Kolorea"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Txantiloiak","
emptyListMsg":"(Ez dago definitutako txantiloirik)","insertOption":"Ordeztu oraingo edukiak","options":"Template Options","selectPromptMsg":"Mesedez txantiloia aukeratu editorean kargatzeko<br>(orain dauden edukiak galduko dira):","title":"Eduki Txantiloiak"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","
links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 elementua"},"list":{"bulletedlist":"Buletdun Zerrenda","numberedlist":"Zenbakidun Zerrenda"},"indent":{"indent":"Handitu Koska","outdent":"Txikitu Koska"},"find":{"find":"Bilatu","findOptions":"Find Options","findWhat":"Zer bilatu:","matchCase":"Maiuskula/minuskula","matchCyclic":"Bilaketa ziklikoa","matchWord":"Esaldi osoa bilatu","notFoundMsg":"Idatzitako testua ez da topatu.","replace":"Ordezkatu","replaceAll":"Ordeztu Guztiak","replaceSuccessMsg":"Zenbat aldiz ordeztua: %1","replaceWith":"Zerekin ordeztu:","title":"Bilatu eta Ordeztu"},"fakeobjects":{"anchor":"Aingura","flash":"Flash Animazioa","hiddenfield":"Ezkutuko Eremua","iframe":"IFrame","unknown":"Objektu ezezaguna"},"flash":{"access":"Scriptak baimendu","accessAlways":"Beti","accessNever":"Inoiz ere ez","accessSameDomain":"Domeinu berdinekoak
","alignAbsBottom":"Abs Behean","alignAbsMiddle":"Abs Erdian","alignBaseline":"Oinan","alignTextTop":"Testua Goian","bgcolor":"Atzeko kolorea","chkFull":"Onartu Pantaila osoa","chkLoop":"Begizta","chkMenu":"Flasharen Menua Gaitu","chkPlay":"Automatikoki Erreproduzitu","flashvars":"Flash Aldagaiak","hSpace":"HSpace","properties":"Flasharen Ezaugarriak","propertiesTab":"Ezaugarriak","quality":"Kalitatea","qualityAutoHigh":"Auto Altua","qualityAutoLow":"Auto Baxua","qualityBest":"Hoberena","qualityHigh":"Altua","qualityLow":"Baxua","qualityMedium":"Ertaina","scale":"Eskalatu","scaleAll":"Dena erakutsi","scaleFit":"Doitu","scaleNoBorder":"Ertzik gabe","title":"Flasharen Ezaugarriak","vSpace":"VSpace","validateHSpace":"HSpace zenbaki bat izan behar da.","validateSrc":"Mesedez URL esteka idatzi","validateVSpace":"VSpace zenbaki bat izan behar da.","windowMode":"Leihoaren modua","windowModeOpaque":"Opakoa","windowModeTransparent":"Gardena","windowModeWindow":"Leihoa"},"font":{"font
Size":{"label":"Tamaina","voiceLabel":"Tamaina","panelTitle":"Tamaina"},"label":"Letra-tipoa","panelTitle":"Letra-tipoa","voiceLabel":"Letra-tipoa"},"forms":{"button":{"title":"Botoiaren Ezaugarriak","text":"Testua (Balorea)","type":"Mota","typeBtn":"Botoia","typeSbm":"Bidali","typeRst":"Garbitu"},"checkboxAndRadio":{"checkboxTitle":"Kontrol-laukiko Ezaugarriak","radioTitle":"Aukera-botoiaren Ezaugarriak","value":"Balorea","selected":"Hautatuta"},"form":{"title":"Formularioaren Ezaugarriak","menu":"Formularioaren Ezaugarriak","action":"Ekintza","method":"Metodoa","encoding":"Kodeketa"},"hidden":{"title":"Ezkutuko Eremuaren Ezaugarriak","name":"Izena","value":"Balorea"},"select":{"title":"Hautespen Eremuaren Ezaugarriak","selectInfo":"Informazioa","opAvail":"Aukera Eskuragarriak","value":"Balorea","size":"Tamaina","lines":"lerro kopurura","chkMulti":"Hautaketa anitzak baimendu","opText":"Testua","opValue":"Balorea","btnAdd":"Gehitu","btnModify":"Aldatu","btnUp":"Gora","btnDow
n":"Behera","btnSetValue":"Aukeratutako balorea ezarri","btnDelete":"Ezabatu"},"textarea":{"title":"Testu-arearen Ezaugarriak","cols":"Zutabeak","rows":"Lerroak"},"textfield":{"title":"Testu Eremuaren Ezaugarriak","name":"Izena","value":"Balorea","charWidth":"Zabalera","maxChars":"Zenbat karaktere gehienez","type":"Mota","typeText":"Testua","typePass":"Pasahitza","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formatua","panelTitle":"Formatua","tag_address":"Helbidea","tag_div":"Paragrafoa (DIV)","tag_h1":"Izenburua 1","tag_h2":"Izenburua 2","tag_h3":"Izenburua 3","tag_h4":"Izenburua 4","tag_h5":"Izenburua 5","tag_h6":"Izenburua 6","tag_p":"Arrunta","tag_pre":"Formateatua"},"horizontalrule":{"toolbar":"Txertatu Marra Horizontala"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Mesedez Iru
diaren URLa idatzi","alt":"Ordezko Testua","border":"Ertza","btnUpload":"Zerbitzarira bidalia","button2Img":"Aukeratutako irudi botoia, irudi normal batean eraldatu nahi duzu?","hSpace":"HSpace","img2Button":"Aukeratutako irudia, irudi botoi batean eraldatu nahi duzu?","infoTab":"Irudi informazioa","linkTab":"Esteka","lockRatio":"Erlazioa Blokeatu","menu":"Irudi Ezaugarriak","resetSize":"Tamaina Berrezarri","title":"Irudi Ezaugarriak","titleButton":"Irudi Botoiaren Ezaugarriak","upload":"Gora Kargatu","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Aurpegiera Sartu","toolbar":"Aurpegierak"},"justify":{"block":"Justifikatu","center":"Lerrokatu Erdian","left":"Lerrokatu Ezkerrean","right":"Lerrokatu Eskuman"},"link":{"acccessKey":"Sarbide-gakoa","advanced":"Aurreratua",
"advisoryContentType":"Eduki Mota (Content Type)","advisoryTitle":"Izenburua","anchor":{"toolbar":"Aingura","menu":"Ainguraren Ezaugarriak","title":"Ainguraren Ezaugarriak","name":"Ainguraren Izena","errorName":"Idatzi ainguraren izena","remove":"Remove Anchor"},"anchorId":"Elementuaren ID-gatik","anchorName":"Aingura izenagatik","charset":"Estekatutako Karaktere Multzoa","cssClasses":"Estilo-orriko Klaseak","emailAddress":"ePosta Helbidea","emailBody":"Mezuaren Gorputza","emailSubject":"Mezuaren Gaia","id":"Id","info":"Estekaren Informazioa","langCode":"Hizkuntzaren Norabidea","langDir":"Hizkuntzaren Norabidea","langDirLTR":"Ezkerretik Eskumara(LTR)","langDirRTL":"Eskumatik Ezkerrera (RTL)","menu":"Aldatu Esteka","name":"Izena","noAnchors":"(Ez daude aingurak eskuragarri dokumentuan)","noEmail":"Mesedez ePosta helbidea idatzi","noUrl":"Mesedez URL esteka idatzi","other":"<other>","popupDependent":"Menpekoa (Netscape)","popupFeatures":"Popup Leihoaren Ezaugarriak","popupFull
Screen":"Pantaila Osoa (IE)","popupLeft":"Ezkerreko Posizioa","popupLocationBar":"Kokaleku Barra","popupMenuBar":"Menu Barra","popupResizable":"Tamaina Aldakorra","popupScrollBars":"Korritze Barrak","popupStatusBar":"Egoera Barra","popupToolbar":"Tresna Barra","popupTop":"Goiko Posizioa","rel":"Relationship","selectAnchor":"Aingura bat hautatu","styles":"Estiloa","tabIndex":"Tabulazio Indizea","target":"Target (Helburua)","targetFrame":"<marko>","targetFrameName":"Marko Helburuaren Izena","targetPopup":"<popup leihoa>","targetPopupName":"Popup Leihoaren Izena","title":"Esteka","toAnchor":"Aingura orrialde honetan","toEmail":"ePosta","toUrl":"URL","toolbar":"Txertatu/Editatu Esteka","type":"Esteka Mota","unlink":"Kendu Esteka","upload":"Gora kargatu"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgia
n":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximizatu","minimize":"Minimize"},"newpage":{"toolbar":"Orrialde Berria"},"pagebreak":{"alt":"Page Break","toolbar":"Txertatu Orrialde-jauzia"},"pastetext":{"button":"Testu Arrunta bezala Itsatsi","title":"Testu Arrunta bezala Itsatsi"},"pastefromword":{"confirmCleanup":"Itsatsi nahi duzun testua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?","error":"It was not possible to clean up the pasted dat
a due to an internal error","title":"Itsatsi Word-etik","toolbar":"Itsatsi Word-etik"},"preview":{"preview":"Aurrebista"},"print":{"toolbar":"Inprimatu"},"removeformat":{"toolbar":"Kendu Formatua"},"save":{"toolbar":"Gorde"},"selectall":{"toolbar":"Hautatu dena"},"showblocks":{"toolbar":"Blokeak erakutsi"},"sourcearea":{"toolbar":"HTML Iturburua"},"specialchar":{"options":"Special Character Options","title":"Karaktere Berezia Aukeratu","toolbar":"Txertatu Karaktere Berezia"},"scayt":{"about":"SCAYTi buruz","aboutTab":"Honi buruz","addWord":"Hitza Gehitu","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your
dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Hiztegiak","disable":"Desgaitu SCAYT","emptyDic":"Hiztegiaren izena ezin da hutsik egon.","enable":"Gaitu SCAYT","ignore":"Baztertu","ignoreAll":"Denak baztertu","ignoreDomainNames":"Ignore Domain Names","langs":"Hizkuntzak","languagesTab":"Hizkuntzak","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"Iradokizun gehiago","opera_title":"Not supported by Opera","options":"Aukerak","optionsTab":"Aukerak","title":"Ortografia Zuzenketa Idatzi Ahala (SCAYT)","toggle":"SCAYT aldatu","noSuggestions":"No suggestion"},"stylescombo":{"label":"Estiloa","panelTitle":"Formatting Styles","panelTitle1":"Bloke Estiloak","panelTitle2":"Inline Estiloak","panelTitle3":"Objektu Estiloak"},"table":{"border":"Ertzaren Zabalera","caption":"Epigrafea","cell":{"menu":"Gelaxka
","insertBefore":"Txertatu Gelaxka Aurretik","insertAfter":"Txertatu Gelaxka Ostean","deleteCell":"Kendu Gelaxkak","merge":"Batu Gelaxkak","mergeRight":"Elkartu Eskumara","mergeDown":"Elkartu Behera","splitHorizontal":"Banatu Gelaxkak Horizontalki","splitVertical":"Banatu Gelaxkak Bertikalki","title":"Gelaxken Ezaugarriak","cellType":"Gelaxka Mota","rowSpan":"Hedatutako Lerroak","colSpan":"Hedatutako Zutabeak","wordWrap":"Itzulbira","hAlign":"Lerrokatze Horizontala","vAlign":"Lerrokatze Bertikala","alignBaseline":"Oinarri-lerroan","bgColor":"Fondoaren Kolorea","borderColor":"Ertzaren Kolorea","data":"Data","header":"Goiburua","yes":"Bai","no":"Ez","invalidWidth":"Gelaxkaren zabalera zenbaki bat izan behar da.","invalidHeight":"Gelaxkaren altuera zenbaki bat izan behar da.","invalidRowSpan":"Lerroen hedapena zenbaki osoa izan behar da.","invalidColSpan":"Zutabeen hedapena zenbaki osoa izan behar da.","chooseColor":"Choose"},"cellPad":"Gelaxken betegarria","cellSpace":"Gelaxka
arteko tartea","column":{"menu":"Zutabea","insertBefore":"Txertatu Zutabea Aurretik","insertAfter":"Txertatu Zutabea Ostean","deleteColumn":"Ezabatu Zutabeak"},"columns":"Zutabeak","deleteTable":"Ezabatu Taula","headers":"Goiburuak","headersBoth":"Biak","headersColumn":"Lehen zutabea","headersNone":"Bat ere ez","headersRow":"Lehen lerroa","invalidBorder":"Ertzaren tamaina zenbaki bat izan behar da.","invalidCellPadding":"Gelaxken betegarria zenbaki bat izan behar da.","invalidCellSpacing":"Gelaxka arteko tartea zenbaki bat izan behar da.","invalidCols":"Zutabe kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidHeight":"Taularen altuera zenbaki bat izan behar da.","invalidRows":"Lerro kopurua 0 baino handiagoa den zenbakia izan behar da.","invalidWidth":"Taularen zabalera zenbaki bat izan behar da.","menu":"Taularen Ezaugarriak","row":{"menu":"Lerroa","insertBefore":"Txertatu Lerroa Aurretik","insertAfter":"Txertatu Lerroa Ostean","deleteRow":"Ezabatu Lerroak"},"
rows":"Lerroak","summary":"Laburpena","title":"Taularen Ezaugarriak","toolbar":"Taula","widthPc":"ehuneko","widthPx":"pixel","widthUnit":"width unit"},"undo":{"redo":"Berregin","undo":"Desegin"},"wsc":{"btnIgnore":"Ezikusi","btnIgnoreAll":"Denak Ezikusi","btnReplace":"Ordezkatu","btnReplaceAll":"Denak Ordezkatu","btnUndo":"Desegin","changeTo":"Honekin ordezkatu","errorLoading":"Errorea gertatu da aplikazioa zerbitzaritik kargatzean: %s.","ieSpellDownload":"Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?","manyChanges":"Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira","noChanges":"Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu","noMispell":"Zuzenketa ortografikoa bukatuta: Akatsik ez","noSuggestions":"- Iradokizunik ez -","notAvailable":"Barkatu baina momentu honetan zerbitzua ez dago erabilgarri.","notInDic":"Ez dago hiztegian","oneChange":"Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da","progress":"Zuzenketa ortografikoa martxan...","title"
:"Ortografia zuzenketa","toolbar":"Ortografia"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/fa.js b/share/static/RichText/lang/fa.js
index a858070..a0cb824 100644
--- a/share/static/RichText/lang/fa.js
+++ b/share/static/RichText/lang/fa.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.fa={dir:'rtl',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Ù
ÙØ¨Ø¹',newPage:'برگÙÙ´ تازÙ',save:'Ø°Ø®ÛØ±Ù',preview:'Ù¾ÛØ´ÙÙ
Ø§ÛØ´',cut:'برش',copy:'Ú©Ù¾Û',paste:'ÚØ³Ø¨Ø§ÙدÙ',print:'ÚØ§Ù¾',underline:'Ø®Ø·Ø²ÛØ±Ø¯Ø§Ø±',bold:'درشت',italic:'Ø®Ù
ÛØ¯Ù',selectAll:'گزÛÙØ´ ÙÙ
Ù',removeFormat:'Ø¨Ø±Ø¯Ø§Ø´ØªÙ ÙØ±Ù
ت',strike:'Ù
ÛØ§Ùخط',subscript:'Ø²ÛØ±ÙÙÛØ³',superscript:'Ø¨Ø§ÙØ§ÙÙÛØ³',horizontalrule:'Ú¯ÙØ¬Ø§Ùد٠خط ÙØ§ÙÙÛ',pagebreak:'Ú¯ÙØ¬Ø§ÙØ¯Ù Ø´Ú©Ø³ØªÚ¯Û ÙÙ¾Ø§ÛØ§Ù ÙØ¨Ø±Ú¯Ù',unlink:'برداشت٠پÛÙÙØ¯',undo:'ÙØ§ÚÛØ¯Ù',redo:'بازÚÛØ¯Ù',common:{browseServer:'ÙÙØ±Ø³ØªÙÙ
اÛÛ Ø³Ø±ÙØ±',url:'URL',protocol:'Ù¾Ø±ÙØªÚ©Ù',upload:'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',uploadSubmit:'Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª',image:'تصÙÛØ±',flash:'Flash',form:'ÙØ±Ù
',checkbox:'خاÙÙÙ´ گزÛÙÙØ§Û',radio:'دکÙ
ÙÙ´ رادÛÙÛÛ',textField:'ÙÛÙ
د Ù
تÙÛ',textarea:'ÙØ§ØÛÙÙ´ Ù
تÙÛ',hiddenField:'ÙÛÙØ¯ Ù¾ÙÙØ§Ù',button:'دکÙ
Ù',select:'ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û',imageButton:'دکÙ
ÙÙ´ تصÙÛØ±Û',notSet:'<تعÛÙÙØ´Ø¯Ù>',id:'Ø´ÙØ§Ø³Ù',name:'ÙØ§Ù
',langDir:'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',langDirLtr:'ÚÙ¾ ب٠راست (LTR)',langDirRtl:'راست ب٠ÚÙ¾ (RTL)',langCode:'کد زباÙ',longDescr:'URL ØªÙØµÛÙ Ø·ÙÙØ§ÙÛ',cssClass:'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)',advisoryTitle:'عÙÙØ§Ù Ú©Ù
Ú©Û',cssStyle:'Ø´ÛÙÙ(style)',ok:'Ù¾Ø°ÛØ±Ø´',cancel:'Ø§ÙØµØ±Ø§Ù',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Ù¾ÛØ´Ø±ÙتÙ',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_to
p)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Ú¯ÙØ¬Ø§Ùد٠ÙÙÛØ³ÙÙ´ ÙÛÚÙ',title:'گزÛÙØ´ ÙÙÛØ³ÙÙ´ÙÛÚÙ',options:'Special Character Options'},link:{toolbar:'Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ ÙÙ¾ÛÙÙØ¯',other:'<Ø³Ø§ÛØ±>',menu:'ÙÛØ±Ø§ÛØ´ Ù¾ÛÙÙØ¯',title:'Ù¾ÛÙÙØ¯',info:'Ø§Ø·ÙØ§Ø¹Ø§Øª Ù¾ÛÙÙØ¯',target:'Ù
ÙØµØ¯',upload:'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',advanced:'Ù¾ÛØ´Ø±ÙتÙ',type:'ÙÙØ¹ Ù¾ÛÙÙØ¯',toUrl:'URL',toAnchor:'ÙÙگر در ÙÙ
ÛÙ ØµÙØÙ',toEmail:'پست اÙکترÙÙÛÚ©Û',targetFrame:'<ÙØ±ÛÙ
>',targetPopup:'<Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ>',targetFrameName:'ÙØ§Ù
ÙØ±ÛÙ
Ù
ÙØµØ¯',targetPopupName:'ÙØ§Ù
Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ',popupFeatures:'ÙÛÚÚ¯ÛÙØ§Û Ù¾
ÙØ¬Ø±ÙÙ´ پاپاپ',popupResizable:'Resizable',popupStatusBar:'ÙÙØ§Ø± ÙØ¶Ø¹Ûت',popupLocationBar:'ÙÙØ§Ø± Ù
ÙÙØ¹Ûت',popupToolbar:'ÙÙØ§Ø±Ø§Ø¨Ø²Ø§Ø±',popupMenuBar:'ÙÙØ§Ø± Ù
ÙÙ',popupFullScreen:'تÙ
اÙ
ØµÙØÙ (IE)',popupScrollBars:'Ù
ÛÙÙÙØ§Û Ù¾ÛÙ
Ø§ÛØ´',popupDependent:'ÙØ§Ø¨Ø³ØªÙ (Netscape)',popupWidth:'Ù¾ÙÙØ§',popupLeft:'Ù
ÙÙØ¹Ûت ÙÚÙ¾',popupHeight:'درازا',popupTop:'Ù
ÙÙØ¹Ûت ÙØ¨Ø§Ùا',id:'Id',langDir:'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',langDirLTR:'ÚÙ¾ ب٠راست (LTR)',langDirRTL:'راست ب٠ÚÙ¾ (RTL)',acccessKey:'Ú©ÙÛØ¯ Ø¯Ø³ØªÛØ§Ø¨Û',name:'ÙØ§Ù
',langCode:'Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù',tabIndex:'ÙÙ
اÛÙÙ´ Ø¯Ø³ØªØ±Ø³Û Ø¨Ø§ Tab',advisoryTitle:'عÙÙØ§Ù Ú©Ù
Ú©Û',advisoryContentType:'ÙÙØ¹ Ù
ØØªÙØ§Û Ú©Ù
Ú©Û',cssClasses:'Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)',charset:'ÙÙÛØ³Ùگا٠Ù
ÙØ¨Ø¹ ÙÙ¾ÛÙÙØ¯Ø´Ø¯Ù',styles:'Ø´ÛÙÙ(style)',selectAnchor:'ÛÚ© ÙÙگر برگزÛÙÛØ¯',anchorName:'با ÙØ§Ù
ÙÙگر',a
nchorId:'با Ø´ÙØ§Ø³ÙÙ´ اÙÙ
اÙ',emailAddress:'ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û',emailSubject:'Ù
ÙØ¶Ùع Ù¾ÛØ§Ù
',emailBody:'Ù
ØªÙ Ù¾ÛØ§Ù
',noAnchors:'(در اÛÙ Ø³ÙØ¯ ÙÙÚ¯Ø±Û Ø¯Ø±Ø¯Ø³ØªØ±Ø³ ÙÛØ³Øª)',noUrl:'ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد',noEmail:'ÙØ·Ùا ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û Ø±Ø§ بÙÙÛØ³Ûد'},anchor:{toolbar:'Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ ÙÙÙگر',menu:'ÙÛÚÚ¯ÛÙØ§Û ÙÙگر',title:'ÙÛÚÚ¯ÛÙØ§Û ÙÙگر',name:'ÙØ§Ù
ÙÙگر',errorName:'ÙØ·Ùا ÙØ§Ù
ÙÙگر را بÙÙÛØ³Ûد'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V,
etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'جستج٠٠جاÛگزÛÙÛ',find:'جستجÙ',replace:'جاÛگزÛÙÛ',findWhat:'ÚÙÚÛØ² را Ù
ÛÛØ§Ø¨Ûد:',replaceWith:'جاÛگزÛÙÛ Ø¨Ø§:',notFoundMsg:'Ù
ت٠Ù
ÙØ±Ø¯Ùظر ÛØ§Ùت ÙØ´Ø¯.',matchCase:'ÙÙ
ساÙÛ Ø¯Ø± Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ÙÙÛØ³ÙÙØ§',matchWord:'ÙÙ
ساÙÛ Ø¨Ø§ ÙØ§ÚÙÙ´ کاÙ
Ù',matchCyclic:'Match cyclic',replaceAll:'جاÛگزÛÙÛ ÙÙ
ÙÙ´ ÛØ§ÙتÙÙØ§',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'جدÙÙ',title:'ÙÛÚÚ¯ÛÙØ§Û جدÙÙ',menu:'ÙÛÚÚ¯ÛÙØ§Û جدÙÙ',deleteTable:'پاککرد٠جدÙÙ',rows:'Ø³Ø·Ø±ÙØ§',columns:'ستÙÙÙØ§',border:'Ø§ÙØ¯Ø§Ø²ÙÙ´ ÙØ¨Ù',align:'ÚÛÙØ´',alignLeft:'ÚÙ¾',alignCenter:'ÙØ³Ø·',
alignRight:'راست',width:'Ù¾ÙÙØ§',widthPx:'Ù¾ÛکسÙ',widthPc:'درصد',widthUnit:'width unit',height:'درازا',cellSpace:'ÙØ§ØµÙÙÙ´ Ù
ÛØ§Ù سÙÙÙÙØ§',cellPad:'ÙØ§ØµÙÙÙ´ پرشد٠در سÙÙÙ',caption:'عÙÙØ§Ù',summary:'Ø®ÙØ§ØµÙ',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'سÙÙÙ',insertBefore:'Ø§ÙØ²Ùد٠سÙÙÙ ÙØ¨Ù از',insertAfter:'Ø§ÙØ²Ùد٠سÙÙ٠بعد از',deleteCell:'ØØ°Ù سÙÙÙÙØ§',merge:'ادغاÙ
سÙÙÙÙØ§',mergeRight:'ادغاÙ
ب٠راست',mergeDown:'ادغاÙ
ب٠پا
ÛÛÙ',splitHorizontal:'جدا کرد٠اÙÙÛ Ø³ÙÙÙ',splitVertical:'جدا کرد٠عÙ
ÙØ¯Û سÙÙÙ',title:'ÙÛÚÚ¯ÛÙØ§Û سÙÙÙ',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'سطر',insertBefore:'Ø§ÙØ²Ùد٠سطر ÙØ¨Ù از',insertAfter:'Ø§ÙØ²Ùد٠سطر بعد از',deleteRow:'ØØ°Ù Ø³Ø·Ø±ÙØ§'},column:{menu:'ستÙÙ',insertBefore:'Ø§ÙØ²Ùد٠ستÙÙ ÙØ¨Ù از',insertAfter:'Ø§ÙØ²Ùد٠ستÙ٠بعد از',deleteColumn:'ØØ°Ù ستÙÙÙØ§'}},
button:{title:'ÙÛÚÚ¯ÛÙØ§Û دکÙ
Ù',text:'Ù
ت٠(Ù
ÙØ¯Ø§Ø±)',type:'ÙÙØ¹',typeBtn:'دکÙ
Ù',typeSbm:'Submit',typeRst:'Ø¨Ø§Ø²ÙØ´Ø§ÙÛ (Reset)'},checkboxAndRadio:{checkboxTitle:'ÙÛÚÚ¯ÛÙØ§Û خاÙÙÙ´ گزÛÙÙØ§Û',radioTitle:'ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ رادÛÙÛÛ',value:'Ù
ÙØ¯Ø§Ø±',selected:'Ø¨Ø±Ú¯Ø²ÛØ¯Ù'},form:{title:'ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
',menu:'ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
',action:'رÙÛØ¯Ø§Ø¯',method:'Ù
تد',encoding:'Encoding'},select:{title:'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û',selectInfo:'Ø§Ø·ÙØ§Ø¹Ø§Øª',opAvail:'گزÛÙÙÙØ§Û دردسترس',value:'Ù
ÙØ¯Ø§Ø±',size:'Ø§ÙØ¯Ø§Ø²Ù',lines:'Ø®Ø·ÙØ·',chkMulti:'گزÛÙØ´ ÚÙØ¯Ú¯Ø§ÙÙ ÙØ±Ø§ÙÙ
باشد',opText:'Ù
تÙ',opValue:'Ù
ÙØ¯Ø§Ø±',btnAdd:'Ø§ÙØ²ÙدÙ',btnModify:'ÙÛØ±Ø§ÛØ´',btnUp:'Ø¨Ø§ÙØ§',btnDown:'پائÛÙ',btnSetValue:'ØªÙØ¸ÛÙ
ب٠عÙÙØ§Ù Ù
ÙØ¯Ø§Ø± ÙØ¨Ø±Ú¯Ø²ÛدÙ',btnDelete:'پاککردÙ'},textarea:{title:'ÙÛÚÚ¯ÛÙØ§Û ÙØ§ØÛÙÙ´ Ù
تÙÛ',cols:
'ستÙÙÙØ§',rows:'Ø³Ø·Ø±ÙØ§'},textfield:{title:'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù
تÙÛ',name:'ÙØ§Ù
',value:'Ù
ÙØ¯Ø§Ø±',charWidth:'Ù¾ÙÙØ§Û ÙÙÛØ³Ù',maxChars:'Ø¨ÛØ´ÛÙÙÙ´ ÙÙÛØ³ÙÙØ§',type:'ÙÙØ¹',typeText:'Ù
تÙ',typePass:'Ú¯Ø°Ø±ÙØ§ÚÙ'},hidden:{title:'ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù¾ÙÙØ§Ù',name:'ÙØ§Ù
',value:'Ù
ÙØ¯Ø§Ø±'},image:{title:'ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±',titleButton:'ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ تصÙÛØ±Û',menu:'ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±',infoTab:'Ø§Ø·ÙØ§Ø¹Ø§Øª تصÙÛØ±',btnUpload:'Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª',upload:'Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±',alt:'Ù
ت٠جاÛگزÛÙ',width:'Ù¾ÙÙØ§',height:'درازا',lockRatio:'ÙÙÙکرد٠ÙÙØ³Ø¨Øª',unlockRatio:'Unlock Ratio',resetSize:'Ø¨Ø§Ø²ÙØ´Ø§ÙÛ Ø§ÙØ¯Ø§Ø²Ù',border:'ÙØ¨Ù',hSpace:'ÙØ§ØµÙÙÙ´ اÙÙÛ',vSpace:'ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û',align:'ÚÛÙØ´',alignLeft:'ÚÙ¾',alignRight:'راست',alertUrl:'ÙØ·Ùا URL تصÙÛØ± را بÙÙÛØ³Ûد',linkTab:'Ù¾ÛÙÙØ¯',button2Img:'Do you wa
nt to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ÙÛÚÚ¯ÛÙØ§Û Flash',propertiesTab:'Properties',title:'ÙÛÚÚ¯ÛÙØ§Û Flash',chkPlay:'آغاز ÙØ®Ùدکار',chkLoop:'Ø§Ø¬Ø±Ø§Û Ù¾ÛØ§Ù¾Û',chkMenu:'Ø¯Ø±Ø¯Ø³ØªØ±Ø³Ø¨ÙØ¯Ù Ù
ÙÙÛ Flash',chkFull:'Allow Fullscreen',scale:'Ù
ÙÛØ§Ø³',scaleAll:'ÙÙ
Ø§ÛØ´ ÙÙ
Ù',scaleNoBorder:'بدÙ٠کراÙ',scaleFit:'جاÛÚ¯ÛØ±Û کاÙ
Ù',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'ÚÛÙØ´',alignLeft:'ÚÙ¾',alignAbsBottom:'پائÛÙ Ù
Ø·ÙÙ',alignAbsMiddle:'ÙØ³Ø· Ù
Ø·ÙÙ',alignBaseli
ne:'خطپاÛÙ',alignBottom:'پائÛÙ',alignMiddle:'ÙØ³Ø·',alignRight:'راست',alignTextTop:'Ù
ØªÙ Ø¨Ø§ÙØ§',alignTop:'Ø¨Ø§ÙØ§',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'رÙÚ¯ پسزÙ
ÛÙÙ',width:'Ù¾ÙÙØ§',height:'درازا',hSpace:'ÙØ§ØµÙÙÙ´ اÙÙÛ',vSpace:'ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û',validateSrc:'ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'در ÙØ§ÚÙÙ
اÙ
Ù ÛØ§Ùت ÙØ´Ø¯',changeTo:'تغÛÛØ± بÙ',btnIgnore:'ÚØ´Ù
Ù¾ÙØ´Û',btnIgnoreAll:'ÚØ´Ù
Ù¾ÙØ´Û ÙÙ
Ù',btnReplace:'جاÛگزÛÙÛ',btnReplaceAll:'جاÛگزÛÙÛ ÙÙ
Ù',btnUndo:'ÙØ§ÚÛÙØ´',noSuggestions:'- Ù¾ÛØ´ÙÙØ§Ø¯Û ÙÛØ³Øª -',progress:'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ در ØØ§Ù Ø§ÙØ¬Ø§Ù
...',noMispell:'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ØºÙØ·Ø§Ù
ÙØ§Ø¦Û ÛØ§Ùت ÙØ´Ø¯',noChanges:'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ÙØ§ÚÙØ§Û تغÛÛØ± ÙÛØ§Ùت',oneChange:'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÛÚ© ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت',manyChanges:'Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. %1 ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت',ieSpellDownload:'بررسÛÚ©ÙÙØ¯ÙÙ´ اÙ
ÙØ§ ÙØµØ¨ ÙØ´Ø¯Ù است. Ø¢ÛØ§ Ù
ÛØ®ÙاÙÛØ¯ آ٠را ÙÙ
اکÙÙÙ Ø¯Ø±ÛØ§Ùت Ú©ÙÛØ¯Ø'},smiley:{toolbar:'Ø®ÙØ¯Ø§ÙÚ©',title:'Ú¯ÙØ¬Ø§ÙØ¯Ù Ø®ÙØ¯Ø§ÙÚ©',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ÙÙØ±Ø³Øª Ø
´Ù
Ø§Ø±ÙØ¯Ø§Ø±',bulletedlist:'ÙÙØ±Ø³Øª ÙÙØ·ÙاÛ',indent:'Ø§ÙØ²Ø§ÛØ´ ØªÙØ±ÙتگÛ',outdent:'Ú©Ø§ÙØ´ ØªÙØ±ÙتگÛ',justify:{left:'ÚÙ¾ÚÛÙ',center:'Ù
ÛØ§ÙÚÛÙ',right:'راستÚÛÙ',block:'بÙÙÚ©ÚÛÙ'},blockquote:'بÙÙÚ© ÙÙÙ ÙÙÙ',clipboard:{title:'ÚØ³Ø¨Ø§ÙدÙ',cutError:'ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û برش را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙÚ©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+X).',copyError:'ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û Ú©Ù¾Ûکرد٠را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙÚ©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+C).',pasteMsg:'ÙØ·Ùا Ù
ت٠را با Ú©ÙÛØ¯ÙØ§Û (<STRONG>Ctrl/Cmd+V</STRONG>) در اÛ٠جعبÙÙ´ Ù
تÙÛ Ø¨ÚØ³Ø¨Ø§ÙÛ
د Ù <STRONG>Ù¾Ø°ÛØ±Ø´</STRONG> را بزÙÛØ¯.',securityMsg:'ب٠خاطر ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
Ø§Ø ÙÛØ±Ø§Ûشگر ÙÙ
ÛØªÙØ§ÙØ¯ Ø¯Ø³ØªØ±Ø³Û Ù
ستÙÛÙ
ب٠دادÙÙØ§Û clipboard داشت٠باشد. Ø´Ù
ا Ø¨Ø§ÛØ¯ Ø¯ÙØ¨Ø§Ø±Ù Ø¢ÙØ±Ø§ در اÛÙ Ù¾ÙØ¬Ø±Ù Ø¨ÚØ³Ø¨Ø§ÙÛØ¯.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'ÚØ³Ø¨Ø§Ùد٠از Word',title:'ÚØ³Ø¨Ø§Ùد٠از Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù',title:'ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù'},templates:{button:'اÙÚ¯ÙÙØ§',title:'اÙÚ¯ÙÙØ§Û Ù
ØØªÙÛØ§Øª',options:'Template Options',insertOption:'Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø¬Ø§ÛگزÛÙ Ø´ÙÙØ¯',selectPromptMsg:'ÙØ·Ùا اÙÚ¯ÙÛ Ù
ÙØ±Ø¯Ùظر را Ø¨Ø±Ø§Û Ø¨Ø§Ø²Ú©Ø±
د٠در ÙÛØ±Ø§Ûشگر برگزÛÙÛØ¯<br>(Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø§Ø² دست Ø®ÙØ§ÙÙØ¯ Ø±ÙØª):',emptyListMsg:'(اÙÚ¯ÙØ¦Û تعرÛÙ ÙØ´Ø¯Ù است)'},showBlocks:'ÙÙ
Ø§ÛØ´ بÙÙÚ©ÙØ§',stylesCombo:{label:'سبک',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'ÙØ±Ù
ت',panelTitle:'ÙØ±Ù
ت',tag_p:'ÙØ±Ù
اÙ',tag_pre:'ÙØ±Ù
تشدÙ',tag_address:'آدرس',tag_h1:'سرÙÙÛØ³ 1',tag_h2:'سرÙÙÛØ³ 2',tag_h3:'سرÙÙÛØ³ 3',tag_h4:'سرÙÙÛØ³ 4',tag_h5:'سرÙÙÛØ³ 5',tag_h6:'سرÙÙÛØ³ 6',tag_div:'Ø¨ÙØ¯'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Le
ft (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ÙÙÙ
',voiceLabel:'Font',panelTitle:'ÙÙÙ
'},fontSize:{label:'Ø§ÙØ¯Ø§Ø²Ù',voiceLabel:'Font Size',panelTitle:'Ø§ÙØ¯Ø§Ø²Ù'},colorButton:{textColorTitle:'رÙÚ¯ Ù
تÙ',bgColorTitle:'رÙÚ¯ پسزÙ
ÛÙÙ',panelTitle:'Colors',auto:'Ø®ÙØ¯Ú©Ø§Ø±',more:'رÙÚ¯ÙØ§Û Ø¨ÛØ´ØªØ±...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yello
w',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be sto
red on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['fa']={"dir":"rtl","editor":"ÙÛØ±Ø§Ûشگر Ù
ت٠غÙÛ","common":{"editorHelp":"Ú©ÙÛØ¯ Alt+0 را Ø¨Ø±Ø§Û Ø±Ø§ÙÙÙ
اÛÛ Ø¨ÙØ´Ø§Ø±Ûد","browseServer":"ÙÙØ±Ø³ØªÙÙ
اÛÛ Ø³Ø±ÙØ±","url":"URL","protocol":"Ù¾Ø±ÙØªÚ©Ù","upload":"Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±","uploadSubmit":"Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª","image":"تصÙÛØ±","flash":"ÙÙØ´","form":"ÙØ±Ù
","checkbox":"خاÙÙÙ´ گزÛÙÙØ§Û","radio":"دکÙ
ÙÙ´ رادÛÙÛÛ","textField":"ÙÛÙØ¯ Ù
تÙÛ","textarea":"ÙØ§ØÛÙÙ´ Ù
تÙÛ","hiddenField":"ÙÛÙØ¯ Ù¾ÙÙØ§Ù","button":"دکÙ
Ù","select":"ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û","imageButton":"دکÙ
ÙÙ´ تصÙÛØ±Û","notSet":"<تعÛÙ ÙØ´Ø¯Ù>","id":"Ø´ÙØ§Ø³Ù","name":"ÙØ§Ù
","langDir":"Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù","langDirLtr":"ÚÙ¾ ب٠راست (LTR)","langDirRtl":"راست ب٠ÚÙ¾ (RTL)","langCode":"کد زباÙ","longDescr":"URL ØªÙØµÛÙ Ø·ÙÙØ§ÙÛ","cssClass":"Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)","advisoryTitle":"عÙÙ
ا٠کÙ
Ú©Û","cssStyle":"Ø´ÛÙÙ(style)","ok":"Ù¾Ø°ÛØ±Ø´","cancel":"Ø§ÙØµØ±Ø§Ù","close":"بستÙ","preview":"Ù¾ÛØ´ÙÙ
Ø§ÛØ´","resize":"Ú©Ø´ÛØ¯Ù Ø¨Ø±Ø§Û ØªØºÛÛØ± Ø§ÙØ¯Ø§Ø²Ù","generalTab":"عÙ
ÙÙ
Û","advancedTab":"Ù¾ÛØ´Ø±ÙتÙ","validateNumberFailed":"اÛÙ Ù
ÙØ¯Ø§Ø± ÛÚ© عدد ÙÛØ³Øª.","confirmNewPage":"ÙØ± تغÛÛØ± Ø§ÛØ¬Ø§Ø¯ شدÙÛ Ø°Ø®ÛØ±Ù ÙØ´Ø¯Ù از بÛÙ Ø®ÙØ§Ùد Ø±ÙØª. Ø¢ÛØ§ اطÙ
ÛÙØ§Ù Ø¯Ø§Ø±ÛØ¯ Ú©Ù ÙØµØ¯ Ø¨Ø§Ø±Ú¯ÛØ±Û ØµÙØÙ Ø¬Ø¯ÛØ¯Û را Ø¯Ø§Ø±ÛØ¯Ø","confirmCancel":"Ø¨Ø±Ø®Û Ø§Ø² گزÛÙÙÙØ§ تغÛÛØ± Ú©Ø±Ø¯ÙØ§Ùد. Ø¢ÛØ§ ÙØ§Ùعا ÙØµØ¯ بست٠اÛÙ Ù¾ÙØ¬Ø±Ù را Ø¯Ø§Ø±ÛØ¯Ø","options":"گزÛÙÙÙØ§","target":"Ù
Ø³ÛØ±","targetNew":"Ù¾ÙØ¬Ø±Ù Ø¬Ø¯ÛØ¯ (_blank)","targetTop":"Ø¨Ø§ÙØ§ØªØ±ÛÙ Ù¾ÙØ¬Ø±Ù (_top)","targetSelf":"ÙÙ
Ø§Ù Ù¾ÙØ¬Ø±Ù (_self)","targetParent":"Ù¾ÙØ¬Ø±Ù ÙØ§Ùد (_parent)","langDirLTR":"ÚÙ¾ ب٠راست (LTR)","langDirRTL":"راست ب٠ÚÙ¾ (RTL)","styles":"سبک","cs
sClasses":"Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù","width":"Ù¾ÙÙØ§","height":"درازا","align":"ÚÛÙØ´","alignLeft":"ÚÙ¾","alignRight":"راست","alignCenter":"ÙØ³Ø·","alignTop":"Ø¨Ø§ÙØ§","alignMiddle":"ÙØ³Ø·","alignBottom":"پائÛÙ","invalidValue":"Invalid value.","invalidHeight":"Ø§Ø±ØªÙØ§Ø¹ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidWidth":"Ù¾ÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidCssLength":"عدد تعÛÛÙ Ø´Ø¯Ù Ø¨Ø±Ø§Û ÙÛÙØ¯ \"%1\" Ø¨Ø§ÛØ¯ ÛÚ© عدد Ù
ثبت با ÛØ§ بدÙÙ ÛÚ© ÙØ§ØØ¯ Ø§ÙØ¯Ø§Ø²Ù Ú¯ÛØ±Û CSS Ù
عتبر باشد (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"عدد تعÛÛÙ Ø´Ø¯Ù Ø¨Ø±Ø§Û ÙÛÙØ¯ \"%1\" Ø¨Ø§ÛØ¯ ÛÚ© عدد Ù
ثبت با ÛØ§ بدÙÙ ÛÚ© ÙØ§ØØ¯ Ø§ÙØ¯Ø§Ø²Ù Ú¯ÛØ±Û HTML Ù
عتبر باشد (px or %).","invalidInlineStyle":"عدد تعÛÛÙ Ø´Ø¯Ù Ø¨Ø±Ø§Û Ø³Ø¨Ú© درÙÙØ®Ø·Û(Inline Style) Ø¨Ø§ÛØ¯ Ø¯Ø§Ø±Ø§Û ÛÚ© ÛØ§ ÚÙØ¯ ÚÙØ¯ØªØ§ÛÛ Ø¨Ø§ Ø´Ú©ÙÛ Ø´Ø¨ÛÙ \"name : value\"
Ú©Ù Ø¨Ø§ÛØ¯ با ÛÚ© \",\"(semi-colons) از ÙÙ
جدا Ø´ÙÙØ¯.","cssLengthTooltip":"ÛÚ© عدد Ø¨Ø±Ø§Û ÛÚ© Ù
ÙØ¯Ø§Ø± بر ØØ³Ø¨ Ù¾ÛÚ©Ø³Ù Ù ÛØ§ ÛÚ© عدد با ÛÚ© ÙØ§ØØ¯ CSS Ù
عتبر ÙØ§Ø±Ø¯ Ú©ÙÛØ¯ (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">Ø ØºÛØ± ÙØ§Ø¨Ù دسترس</span>"},"about":{"copy":"ØÙ ÙØ´Ø± © $1. Ú©ÙÛÙ ØÙÙÙ Ù
ØÙÙØ¸ است.","dlgTitle":"دربار٠CKEditor","help":"Ø¨Ø±Ø±Ø³Û $1 Ø¨Ø±Ø§Û Ø±Ø§ÙÙÙ
اÛÛ.","moreInfo":"Ø¨Ø±Ø§Û Ú©Ø³Ø¨ Ø§Ø·ÙØ§Ø¹Ø§Øª Ù
Ø¬ÙØ² ÙØ·Ùا Ø¨Ù ÙØ¨ Ø³Ø§ÛØª Ù
ا Ù
راجع٠کÙÛØ¯:","title":"دربار٠CKEditor","userGuide":"راÙÙÙ
Ø§Û Ú©Ø§Ø±Ø¨Ø±Ø§Ù CKEditor"},"basicstyles":{"bold":"درشت","italic":"Ø®Ù
ÛØ¯Ù","strike":"Ù
ÛØ§Ùخط","subscript":"Ø²ÛØ±ÙÙÛØ³","superscript":"Ø¨Ø§ÙØ§ÙÙÛØ³","underline":"Ø²ÛØ±Ø®Ø·Ø¯Ø§Ø±"},"bidi":{"ltr":"ÙÙØ´ØªØ§Ø± Ù
ت٠از ÚÙ¾ ب٠راست","rtl":"ÙÙØ´ØªØ§Ø± Ù
ت٠از راست ب
Ù ÚÙ¾"},"blockquote":{"toolbar":"بÙÙÚ© ÙÙÙ ÙÙÙ"},"clipboard":{"copy":"Ú©Ù¾Û","copyError":"ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û Ú©Ù¾Û Ú©Ø±Ø¯Ù Ø±Ø§ Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙ Ú©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+C).","cut":"برش","cutError":"ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø± Ø´Ù
ا اجاز٠ÙÙ
ÛØ¯Ùد Ú©Ù ÙÛØ±Ø§Ûشگر Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± عÙ
ÙÚ©Ø±Ø¯ÙØ§Û برش را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ÙØ·Ùا با دکÙ
ÙÙØ§Û ØµÙØÙ Ú©ÙÛØ¯ اÛ٠کار را Ø§ÙØ¬Ø§Ù
دÙÛØ¯ (Ctrl/Cmd+X).","paste":"ÚØ³Ø¨Ø§ÙدÙ","pasteArea":"Ù
ØÙ ÚØ³Ø¨Ø§ÙدÙ","pasteMsg":"ÙØ·Ùا Ù
ت٠را با Ú©ÙÛØ¯ÙØ§Û (<STRONG>Ctrl/Cmd+V</STRONG>) در اÛ٠جعبÙÙ´ Ù
تÙÛ Ø¨ÚØ³Ø¨Ø§ÙÛØ¯ Ù <STRONG>Ù¾Ø°ÛØ±Ø´</STRONG> را بزÙÛØ¯.","securityMsg":"ب٠خاطر ØªÙØ¸ÛÙ
ات اÙ
ÙÛØªÛ Ù
Ø±ÙØ±Ú¯Ø±
Ø´Ù
Ø§Ø ÙÛØ±Ø§Ûشگر ÙÙ
ÛØªÙØ§ÙØ¯ Ø¯Ø³ØªØ±Ø³Û Ù
ستÙÛÙ
ب٠دادÙÙØ§Û clipboard داشت٠باشد. Ø´Ù
ا Ø¨Ø§ÛØ¯ Ø¯ÙØ¨Ø§Ø±Ù Ø¢ÙØ±Ø§ در اÛÙ Ù¾ÙØ¬Ø±Ù Ø¨ÚØ³Ø¨Ø§ÙÛØ¯.","title":"ÚØ³Ø¨Ø§ÙدÙ"},"colorbutton":{"auto":"Ø®ÙØ¯Ú©Ø§Ø±","bgColorTitle":"رÙÚ¯ پسزÙ
ÛÙÙ","colors":{"000":"Ø³ÛØ§Ù","800000":"خرÙ
اÛÛ","8B4513":"ÙÙÙÙØ§Û Ø´Ú©ÙØ§ØªÛ","2F4F4F":"Ø§Ø±ØºÙØ§ÙÛ Ù
اÛ٠ب٠خاکسترÛ","008080":"Ø¢Ø¨Û Ù
اÛ٠ب٠خاکسترÛ","000080":"Ø¢Ø¨Û Ø³ÛØ±","4B0082":"ÙÛÙÛ","696969":"Ø®Ø§Ú©Ø³ØªØ±Û ØªÛØ±Ù","B22222":"آتش آجرÛ","A52A2A":"ÙÙÙÙØ§Û","DAA520":"Ù
ÛÙÙÛ Ø·ÙØ§ÛÛ","006400":"سبز ØªÛØ±Ù","40E0D0":"ÙÛØ±ÙØ²ÙØ§Û","0000CD":"Ø¢Ø¨Û Ø±ÙØ´Ù","800080":"Ø§Ø±ØºÙØ§ÙÛ","808080":"خاکسترÛ","F00":"ÙØ±Ù
ز","FF8C00":"ÙØ§Ø±ÙØ¬Û Ù¾Ø±Ø±ÙÚ¯","FFD700":"Ø·ÙØ§ÛÛ","008000":"سبز","0FF":"Ø¢Ø¨Û Ù
اÛ٠ب٠سبز","00F":"آبÛ","EE82EE":"بÙÙØ´","A9A9A9":"Ø®Ø§Ú©Ø³ØªØ±Û Ù
ات","F
FA07A":"ØµÙØ±ØªÛ کدر Ø±ÙØ´Ù","FFA500":"ÙØ§Ø±ÙجÛ","FFFF00":"زرد","00FF00":"ÙØ³ÙرÛ","AFEEEE":"ÙÛØ±ÙØ²ÙØ§Û رÙÚ¯ Ù¾Ø±ÛØ¯Ù","ADD8E6":"Ø¢Ø¨Û Ú©Ù
رÙÚ¯","DDA0DD":"Ø¢ÙÙÛÛ","D3D3D3":"Ø®Ø§Ú©Ø³ØªØ±Û Ø±ÙØ´Ù","FFF0F5":"بÙÙØ´ Ú©Ù
رÙÚ¯","FAEBD7":"عتÛÙ٠سÙÛØ¯","FFFFE0":"زرد Ø±ÙØ´Ù","F0FFF0":"عسÙÛ","F0FFFF":"ÙØ§Ø¬ÙردÛ","F0F8FF":"Ø¢Ø¨Û Ø¨Ø±Ø§Ù","E6E6FA":"بÙÙØ´ Ú©Ù
رÙÚ¯","FFF":"سÙÛØ¯"},"more":"رÙÚ¯ÙØ§Û Ø¨ÛØ´ØªØ±...","panelTitle":"رÙÚ¯ÙØ§","textColorTitle":"رÙÚ¯ Ù
تÙ"},"colordialog":{"clear":"پاک کردÙ","highlight":"Ù
تÙ
Ø§ÛØ²","options":"گزÛÙÙÙØ§Û رÙÚ¯","selected":"رÙÚ¯ Ø§ÙØªØ®Ø§Ø¨ شدÙ","title":"Ø§ÙØªØ®Ø§Ø¨ رÙÚ¯"},"templates":{"button":"اÙÚ¯ÙÙØ§","emptyListMsg":"(اÙÚ¯ÙØ¦Û تعرÛÙ ÙØ´Ø¯Ù است)","insertOption":"Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø¬Ø§ÛگزÛÙ Ø´ÙÙØ¯","options":"گزÛÙÙÙØ§Û اÙÚ¯Ù","selectPromptMsg":"ÙØ·Ùا اÙÚ¯ÙÛ Ù
ÙØ±Ø¯Ùظر را Ø¨Ø±Ø§Û Ø¨Ø§Ø²
کرد٠در ÙÛØ±Ø§Ûشگر برگزÛÙÛØ¯<br>(Ù
ØØªÙÛØ§Øª Ú©ÙÙÙÛ Ø§Ø² دست Ø®ÙØ§ÙÙØ¯ Ø±ÙØª):","title":"اÙÚ¯ÙÙØ§Û Ù
ØØªÙÛØ§Øª"},"contextmenu":{"options":"گزÛÙÙÙØ§Û Ù
ÙÙÛ Ø²Ù
ÛÙÙ"},"div":{"IdInputLabel":"Ø´ÙØ§Ø³Ù","advisoryTitleInputLabel":"عÙÙØ§Ù Ù
Ø´Ø§ÙØ±Ù","cssClassInputLabel":"Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù","edit":"ÙÛØ±Ø§ÛØ´ Div","inlineStyleInputLabel":"سبک درÙÙØ®Ø·Û(Inline Style)","langDirLTRLabel":"ÚÙ¾ ب٠راست (LTR)","langDirLabel":"Ø¬ÙØª ÙÙØ´ØªØ§Ø±Û زباÙ","langDirRTLLabel":"راست ب٠ÚÙ¾ (RTL)","languageCodeInputLabel":" کد زباÙ","remove":"ØØ°Ù Div","styleSelectLabel":"سبک","title":"Ø§ÛØ¬Ø§Ø¯ ÛÚ© Ù
ØÙ DIV","toolbar":"Ø§ÛØ¬Ø§Ø¯ ÛÚ© Ù
ØÙ DIV"},"toolbar":{"toolbarCollapse":"بست٠ÙÙØ§Ø± ابزار","toolbarExpand":"بازکرد٠ÙÙØ§Ø± ابزار","toolbarGroups":{"document":"Ø³ÙØ¯","clipboard":"ØØ§Ùظ٠Ù
ÙÙØª/برگشت","editing":"در ØØ§Ù ÙÛØ±Ø§ÛØ´","
forms":"ÙØ±Ù
ÙØ§","basicstyles":"Ø´ÛÙÙÙØ§Û پاÛÙ","paragraph":"Ø¨ÙØ¯","links":"Ù¾ÛÙÙØ¯Ùا","insert":"ÙØ±Ùد","styles":"Ø´ÛÙÙÙØ§","colors":"رÙÚ¯ÙØ§","tools":"Ø§Ø¨Ø²Ø§Ø±ÙØ§"},"toolbars":"ÙÙØ§Ø± ابزار"},"elementspath":{"eleLabel":"Ù
Ø³ÛØ± Ø¹ÙØ§ØµØ±","eleTitle":"%1 Ø¹ÙØµØ±"},"list":{"bulletedlist":"ÙÙØ±Ø³Øª ÙÙØ·ÙاÛ","numberedlist":"ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±ÙØ¯Ø§Ø±"},"indent":{"indent":"Ø§ÙØ²Ø§ÛØ´ ØªÙØ±ÙتگÛ","outdent":"Ú©Ø§ÙØ´ ØªÙØ±ÙتگÛ"},"find":{"find":"جستجÙ","findOptions":"گزÛÙÙÙØ§Û جستجÙ","findWhat":"ÚÙ ÚÛØ² را Ù
ÛÛØ§Ø¨Ûد:","matchCase":"ÙÙ
ساÙÛ Ø¯Ø± Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ÙÙÛØ³ÙÙØ§","matchCyclic":"ÙÙ
ساÙÛ Ø¨Ø§ ÚØ±Ø®Ù","matchWord":"ÙÙ
ساÙÛ Ø¨Ø§ ÙØ§ÚÙÙ´ کاÙ
Ù","notFoundMsg":"Ù
ت٠Ù
ÙØ±Ø¯Ùظر ÛØ§Ùت ÙØ´Ø¯.","replace":"جاÛگزÛÙÛ","replaceAll":"جاÛگزÛÙÛ ÙÙ
ÙÙ´ ÛØ§ÙتÙÙØ§","replaceSuccessMsg":"%1 رخداد جاÛگزÛ٠شد.","replaceWith":"جا
ÛگزÛÙÛ Ø¨Ø§:","title":"جستج٠٠جاÛگزÛÙÛ"},"fakeobjects":{"anchor":"ÙÙگر","flash":"اÙÛÙ
Ø´Ù ÙÙØ´","hiddenfield":"ÙÛÙØ¯ Ù¾ÙÙØ§Ù","iframe":"IFrame","unknown":"Ø´ÛØ¡ ÙØ§Ø´ÙاختÙ"},"flash":{"access":"Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ø§Ø³Ú©Ø±Ûپت","accessAlways":"ÙÙ
ÛØ´Ù","accessNever":"ÙØ±Ú¯Ø²","accessSameDomain":"ÙÙ
ا٠داÙ
ÙÙ","alignAbsBottom":"پائÛÙ Ù
Ø·ÙÙ","alignAbsMiddle":"ÙØ³Ø· Ù
Ø·ÙÙ","alignBaseline":"خط پاÛÙ","alignTextTop":"Ù
ØªÙ Ø¨Ø§ÙØ§","bgcolor":"رÙÚ¯ پسزÙ
ÛÙÙ","chkFull":"اجاز٠تÙ
اÙ
ØµÙØÙ","chkLoop":"Ø§Ø¬Ø±Ø§Û Ù¾ÛØ§Ù¾Û","chkMenu":"در دسترس Ø¨ÙØ¯Ù Ù
ÙÙÛ ÙÙØ´","chkPlay":"آغاز Ø®ÙØ¯Ú©Ø§Ø±","flashvars":"Ù
ÙØ§Ø¯Ûر Ø¨Ø±Ø§Û ÙÙØ´","hSpace":"ÙØ§ØµÙÙÙ´ اÙÙÛ","properties":"ÙÛÚÚ¯ÛÙØ§Û ÙÙØ´","propertiesTab":"ÙÛÚÚ¯ÛÙØ§","quality":"Ú©ÛÙÛØª","qualityAutoHigh":"Ø¨Ø§ÙØ§ - Ø®ÙØ¯Ú©Ø§Ø±","qualityAutoLow":"پاÛÛÙ - Ø®ÙØ¯Ú©Ø§Ø±","qualityBest":"Ø¨ÙØªØ±ÛÙ",
"qualityHigh":"Ø¨Ø§ÙØ§","qualityLow":"پاÛÛÙ","qualityMedium":"Ù
ØªÙØ³Ø·","scale":"Ù
ÙÛØ§Ø³","scaleAll":"ÙÙ
Ø§ÛØ´ ÙÙ
Ù","scaleFit":"جاÛÚ¯ÛØ±Û کاÙ
Ù","scaleNoBorder":"بدÙ٠کراÙ","title":"ÙÛÚÚ¯ÛÙØ§Û ÙÙØ´","vSpace":"ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û","validateHSpace":"Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø§ÙÙÛ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","validateSrc":"ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد","validateVSpace":"Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø¹Ù
ÙØ¯Û Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","windowMode":"ØØ§Ùت Ù¾ÙØ¬Ø±Ù","windowModeOpaque":"Ù
ات","windowModeTransparent":"Ø´ÙØ§Ù","windowModeWindow":"Ù¾ÙØ¬Ø±Ù"},"font":{"fontSize":{"label":"Ø§ÙØ¯Ø§Ø²Ù","voiceLabel":"Ø§ÙØ¯Ø§Ø²Ù ÙÙÙ
","panelTitle":"Ø§ÙØ¯Ø§Ø²Ù"},"label":"ÙÙÙ
","panelTitle":"ÙÙÙ
","voiceLabel":"ÙÙÙ
"},"forms":{"button":{"title":"ÙÛÚÚ¯ÛÙØ§Û دکÙ
Ù","text":"Ù
ت٠(Ù
ÙØ¯Ø§Ø±)","type":"ÙÙØ¹","typeBtn":"دکÙ
Ù","typeSbm":"ثبت","typeRst":"Ø¨Ø§Ø²ÙØ´Ø§ÙÛ (Re
set)"},"checkboxAndRadio":{"checkboxTitle":"ÙÛÚÚ¯ÛÙØ§Û خاÙÙÙ´ گزÛÙÙØ§Û","radioTitle":"ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ رادÛÙÛÛ","value":"Ù
ÙØ¯Ø§Ø±","selected":"Ø¨Ø±Ú¯Ø²ÛØ¯Ù"},"form":{"title":"ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
","menu":"ÙÛÚÚ¯ÛÙØ§Û ÙØ±Ù
","action":"رÙÛØ¯Ø§Ø¯","method":"Ù
تد","encoding":"رÙ
زÙگارÛ"},"hidden":{"title":"ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù¾ÙÙØ§Ù","name":"ÙØ§Ù
","value":"Ù
ÙØ¯Ø§Ø±"},"select":{"title":"ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ ÚÙØ¯Ú¯Ø²ÛÙÙØ§Û","selectInfo":"Ø§Ø·ÙØ§Ø¹Ø§Øª","opAvail":"گزÛÙÙÙØ§Û دردسترس","value":"Ù
ÙØ¯Ø§Ø±","size":"Ø§ÙØ¯Ø§Ø²Ù","lines":"Ø®Ø·ÙØ·","chkMulti":"گزÛÙØ´ ÚÙØ¯Ú¯Ø§ÙÙ ÙØ±Ø§ÙÙ
باشد","opText":"Ù
تÙ","opValue":"Ù
ÙØ¯Ø§Ø±","btnAdd":"Ø§ÙØ²ÙدÙ","btnModify":"ÙÛØ±Ø§ÛØ´","btnUp":"Ø¨Ø§ÙØ§","btnDown":"پائÛÙ","btnSetValue":"ØªÙØ¸ÛÙ
ب٠عÙÙØ§Ù Ù
ÙØ¯Ø§Ø± Ø¨Ø±Ú¯Ø²ÛØ¯Ù","btnDelete":"پاککردÙ"},"textarea":{"title":"ÙÛÚÚ¯ÛÙØ§Û ÙØ§ØÛÙÙ´ Ù
ت
ÙÛ","cols":"ستÙÙÙØ§","rows":"Ø³Ø·Ø±ÙØ§"},"textfield":{"title":"ÙÛÚÚ¯ÛÙØ§Û ÙÛÙØ¯ Ù
تÙÛ","name":"ÙØ§Ù
","value":"Ù
ÙØ¯Ø§Ø±","charWidth":"Ù¾ÙÙØ§Û ÙÙÛØ³Ù","maxChars":"Ø¨ÛØ´ÛÙÙÙ´ ÙÙÛØ³ÙÙØ§","type":"ÙÙØ¹","typeText":"Ù
تÙ","typePass":"Ú¯Ø°Ø±ÙØ§ÚÙ","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ÙØ±Ù
ت","panelTitle":"ÙØ±Ù
ت","tag_address":"آدرس","tag_div":"Ø¨ÙØ¯","tag_h1":"سرÙÙÛØ³ 1","tag_h2":"سرÙÙÛØ³ 2","tag_h3":"سرÙÙÛØ³ 3","tag_h4":"سرÙÙÛØ³ 4","tag_h5":"سرÙÙÛØ³ 5","tag_h6":"سرÙÙÛØ³ 6","tag_p":"ÙØ±Ù
اÙ","tag_pre":"ÙØ±Ù
ت شدÙ"},"horizontalrule":{"toolbar":"Ú¯ÙØ¬Ø§Ùد٠خط اÙÙÛ"},"iframe":{"border":"ÙÙ
Ø§ÛØ´ Ø®Ø·ÙØ· frame","noUrl":"ÙØ·Ùا Ù
Ø³ÛØ± URL iframe را درج Ú©ÙÛØ¯","scrolling":"ÙÙ
Ø§ÛØ´ Ø®Ø·Ú©Ø´ÙØ§","title":"ÙÛÚÚ¯ÛÙØ§Û IFrame","toolbar":"IFrame"},"image":{"alertUrl":"ÙØ·Ùا URL تصÙÛØ± را Ø
¨ÙÙÛØ³Ûد","alt":"Ù
ت٠جاÛگزÛÙ","border":"ÙØ¨Ù","btnUpload":"Ø¨Ù Ø³Ø±ÙØ± Ø¨ÙØ±Ø³Øª","button2Img":"Ø¢ÛØ§ Ù
اÛÙÛØ¯ از ÛÚ© تصÙÛØ± ساد٠رÙÛ Ø¯Ú©Ù
٠تصÙÛØ±Û Ø§ÙØªØ®Ø§Ø¨ Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø","hSpace":"ÙØ§ØµÙÙÙ´ اÙÙÛ","img2Button":"Ø¢ÛØ§ Ù
اÛÙÛØ¯ از ÛÚ© دکÙ
٠تصÙÛØ±Û رÙÛ ØªØµÙÛØ± Ø§ÙØªØ®Ø§Ø¨ Ø´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø","infoTab":"Ø§Ø·ÙØ§Ø¹Ø§Øª تصÙÛØ±","linkTab":"Ù¾ÛÙÙØ¯","lockRatio":"ÙÙÙ Ú©Ø±Ø¯Ù ÙØ³Ø¨Øª","menu":"ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±","resetSize":"Ø¨Ø§Ø²ÙØ´Ø§ÙÛ Ø§ÙØ¯Ø§Ø²Ù","title":"ÙÛÚÚ¯ÛÙØ§Û تصÙÛØ±","titleButton":"ÙÛÚÚ¯ÛÙØ§Û دکÙ
ÙÙ´ تصÙÛØ±Û","upload":"Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±","urlMissing":"آدرس URL اصÙÛ ØªØµÙÛØ± ÛØ§Ùت ÙØ´Ø¯.","vSpace":"ÙØ§ØµÙÙÙ´ عÙ
ÙØ¯Û","validateBorder":"Ù
ÙØ¯Ø§Ø± Ø®Ø·ÙØ· Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","validateHSpace":"Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø§ÙÙÛ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","validat
eVSpace":"Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø¹Ù
ÙØ¯Û Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد."},"smiley":{"options":"گزÛÙÙÙØ§Û Ø®ÙØ¯Ø§ÙÚ©","title":"Ú¯ÙØ¬Ø§ÙØ¯Ù Ø®ÙØ¯Ø§ÙÚ©","toolbar":"Ø®ÙØ¯Ø§ÙÚ©"},"justify":{"block":"بÙÙÚ©ÚÛÙ","center":"Ù
ÛØ§ÙÚÛÙ","left":"ÚÙ¾ÚÛÙ","right":"راستÚÛÙ"},"link":{"acccessKey":"Ú©ÙÛØ¯ Ø¯Ø³ØªÛØ§Ø¨Û","advanced":"Ù¾ÛØ´Ø±ÙتÙ","advisoryContentType":"ÙÙØ¹ Ù
ØØªÙØ§Û Ú©Ù
Ú©Û","advisoryTitle":"عÙÙØ§Ù Ú©Ù
Ú©Û","anchor":{"toolbar":"Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ ÙÙگر","menu":"ÙÛÚÚ¯ÛÙØ§Û ÙÙگر","title":"ÙÛÚÚ¯ÛÙØ§Û ÙÙگر","name":"ÙØ§Ù
ÙÙگر","errorName":"ÙØ·Ùا ÙØ§Ù
ÙÙگر را بÙÙÛØ³Ûد","remove":"ØØ°Ù ÙÙگر"},"anchorId":"با Ø´ÙØ§Ø³ÙÙ´ اÙÙ
اÙ","anchorName":"با ÙØ§Ù
ÙÙگر","charset":"ÙÙÛØ³Ùگا٠Ù
ÙØ¨Ø¹ Ù¾ÛÙÙØ¯ شدÙ","cssClasses":"Ú©ÙØ§Ø³ÙØ§Û Ø´ÛÙÙÙØ§Ù
Ù(Stylesheet)","emailAddress":"ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û","emailBody":"Ù
ت٠پ
ÛØ§Ù
","emailSubject":"Ù
ÙØ¶Ùع Ù¾ÛØ§Ù
","id":"Ø´ÙØ§Ø³Ù","info":"Ø§Ø·ÙØ§Ø¹Ø§Øª Ù¾ÛÙÙØ¯","langCode":"Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù","langDir":"Ø¬ÙØªÙÙ
Ø§Û Ø²Ø¨Ø§Ù","langDirLTR":"ÚÙ¾ ب٠راست (LTR)","langDirRTL":"راست ب٠ÚÙ¾ (RTL)","menu":"ÙÛØ±Ø§ÛØ´ Ù¾ÛÙÙØ¯","name":"ÙØ§Ù
","noAnchors":"(در اÛÙ Ø³ÙØ¯ ÙÙÚ¯Ø±Û Ø¯Ø±Ø¯Ø³ØªØ±Ø³ ÙÛØ³Øª)","noEmail":"ÙØ·Ùا ÙØ´Ø§ÙÛ Ù¾Ø³Øª اÙکترÙÙÛÚ©Û Ø±Ø§ بÙÙÛØ³Ûد","noUrl":"ÙØ·Ùا URL Ù¾ÛÙÙØ¯ را بÙÙÛØ³Ûد","other":"<Ø³Ø§ÛØ±>","popupDependent":"ÙØ§Ø¨Ø³ØªÙ (Netscape)","popupFeatures":"ÙÛÚÚ¯ÛÙØ§Û Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ","popupFullScreen":"تÙ
اÙ
ØµÙØÙ (IE)","popupLeft":"Ù
ÙÙØ¹Ûت ÚÙ¾","popupLocationBar":"ÙÙØ§Ø± Ù
ÙÙØ¹Ûت","popupMenuBar":"ÙÙØ§Ø± Ù
ÙÙ","popupResizable":"ÙØ§Ø¨Ù تغÛÛØ± Ø§ÙØ¯Ø§Ø²Ù","popupScrollBars":"Ù
ÛÙÙÙØ§Û Ù¾ÛÙ
Ø§ÛØ´","popupStatusBar":"ÙÙØ§Ø± ÙØ¶Ø¹Ûت","popupToolbar":"ÙÙØ§Ø±Ø§Ø¨Ø²Ø§Ø±","popupTop":"Ù
ÙÙØ¹Ûت Ø¨Ø§ÙØ§","r
el":"ÙØ§Ø¨Ø³ØªÚ¯Û","selectAnchor":"ÛÚ© ÙÙگر برگزÛÙÛØ¯","styles":"Ø´ÛÙÙ(style)","tabIndex":"ÙÙ
اÛÙÙ´ Ø¯Ø³ØªØ±Ø³Û Ø¨Ø§ برگÙ","target":"Ù
ÙØµØ¯","targetFrame":"<ÙØ±ÛÙ
>","targetFrameName":"ÙØ§Ù
ÙØ±ÛÙ
Ù
ÙØµØ¯","targetPopup":"<Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ>","targetPopupName":"ÙØ§Ù
Ù¾ÙØ¬Ø±ÙÙ´ پاپاپ","title":"Ù¾ÛÙÙØ¯","toAnchor":"ÙÙگر در ÙÙ
ÛÙ ØµÙØÙ","toEmail":"پست اÙکترÙÙÛÚ©Û","toUrl":"URL","toolbar":"Ú¯ÙØ¬Ø§ÙدÙ/ÙÛØ±Ø§ÛØ´ Ù¾ÛÙÙØ¯","type":"ÙÙØ¹ Ù¾ÛÙÙØ¯","unlink":"برداشت٠پÛÙÙØ¯","upload":"Ø§ÙØªÙØ§Ù Ø¨Ù Ø³Ø±ÙØ±"},"liststyle":{"armenian":"Ø´Ù
ارÙÚ¯Ø°Ø§Ø±Û Ø§Ø±Ù
ÙÛ","bulletedTitle":"ÙÛÚÚ¯ÛÙØ§Û ÙÙØ±Ø³Øª Ú¯ÙÙÙÙØ¯Ø§Ø±","circle":"Ø¯Ø§ÛØ±Ù","decimal":"Ø¯ÙØ¯ÙÛ (1, 2, 3, etc.)","decimalLeadingZero":"Ø¯ÙØ¯ÙÛ ÙÙ
را٠با ØµÙØ± (01, 02, 03, etc.)","disc":"ØµÙØÙ Ú¯Ø±Ø¯","georgian":"Ø´Ù
ارÙÚ¯Ø°Ø§Ø±Û Ú¯Ø±ÛÚ¯ÙØ±ÛÙ (an, ban, gan, etc.)","lowerAlpha":"پاÙÙÛØ³
اÙÙØ¨Ø§ÛÛ (a, b, c, d, e, etc.)","lowerGreek":"پاÙÙÛØ³ ÛÙÙØ§ÙÛ (alpha, beta, gamma, etc.)","lowerRoman":"پاÙÙÛØ³ رÙÙ
Û (i, ii, iii, iv, v, etc.)","none":"ÙÛÚ","notset":"<ØªÙØ¸ÛÙ
ÙØ´Ø¯Ù>","numberedTitle":"ÙÛÚÚ¯ÛÙØ§Û ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±ÙØ¯Ø§Ø±","square":"ÚÙØ§Ø±Ú¯ÙØ´","start":"Ø´Ø±ÙØ¹","type":"ÙÙØ¹","upperAlpha":"Ø¨Ø§ÙØ§ÙÙÛØ³ اÙÙØ¨Ø§ÛÛ (A, B, C, D, E, etc.)","upperRoman":"Ø¨Ø§ÙØ§ÙÙÛØ³ رÙÙ
Û (I, II, III, IV, V, etc.)","validateStartNumber":"ÙÙØ±Ø³Øª Ø´Ù
Ø§Ø±Ù Ø´Ø±ÙØ¹ Ø¨Ø§ÛØ¯ ÛÚ© عدد صØÛØ Ø¨Ø§Ø´Ø¯."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ØØ¯Ø§Ú©Ø«Ø± کردÙ","minimize":"ØØ¯Ø§Ù٠کردÙ"},"newpage":{"toolbar":"برگÙÙ´ تازÙ"},"pagebreak":{"alt":"Ø´Ú©Ø³ØªÙ ØµÙØÙ","toolbar":"Ú¯ÙØ¬Ø§ÙØ¯Ù Ø´Ú©Ø³ØªÚ¯Û Ù¾Ø§ÛØ§Ù برگÙ"},"pastetext":{"button":"ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù","title":"ÚØ³Ø¨Ø§Ùد٠ب٠عÙÙØ§Ù Ù
ØªÙ ÙØ³Ø§Ø¯Ù"},"pastefr
omword":{"confirmCleanup":"Ù
تÙÛ Ú©Ù Ù
ÛØ®ÙاÙÛØ¯ Ø¨ÚØ³Ø¨Ø§ÙÛØ¯ Ø¨Ù ÙØ¸Ø± Ù
ÛØ±Ø³Ø¯ ک٠از Word Ú©Ù¾Û Ø´Ø¯Ù Ø§Ø³Øª. Ø¢ÛØ§ Ù
ÛØ®ÙاÙÛØ¯ ÙØ¨Ù از ÚØ³Ø¨Ø§Ùد٠آ٠را Ù¾Ø§Ú©Ø³Ø§Ø²Û Ú©ÙÛØ¯Ø","error":"ب٠دÙÛÙ Ø¨Ø±ÙØ² Ø®Ø·Ø§Û Ø¯Ø§Ø®ÙÛ Ø§Ù
Ú©Ø§Ù Ù¾Ø§Ú©Ø³Ø§Ø²Û Ø§Ø·ÙØ§Ø¹Ø§Øª Ø¨Ø§Ø²ÙØ´Ø§ÙÛ Ø´Ø¯Ù ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.","title":"ÚØ³Ø¨Ø§Ùد٠از Word","toolbar":"ÚØ³Ø¨Ø§Ùد٠از Word"},"preview":{"preview":"Ù¾ÛØ´ÙÙ
Ø§ÛØ´"},"print":{"toolbar":"ÚØ§Ù¾"},"removeformat":{"toolbar":"Ø¨Ø±Ø¯Ø§Ø´ØªÙ ÙØ±Ù
ت"},"save":{"toolbar":"Ø°Ø®ÛØ±Ù"},"selectall":{"toolbar":"گزÛÙØ´ ÙÙ
Ù"},"showblocks":{"toolbar":"ÙÙ
Ø§ÛØ´ بÙÙÚ©ÙØ§"},"sourcearea":{"toolbar":"Ù
ÙØ¨Ø¹"},"specialchar":{"options":"گزÛÙÙÙØ§Û ÙÙÛØ³ÙÙØ§Û ÙÛÚÙ","title":"گزÛÙØ´ ÙÙÛØ³ÙÙ´ ÙÛÚÙ","toolbar":"Ú¯ÙØ¬Ø§Ùد٠ÙÙÛØ³ÙÙ´ ÙÛÚÙ"},"scayt":{"about":"دربار٠SCAYT","aboutTab":"دربارÙ","addWord":"Ø§ÙØ²Ùد٠Word","allCaps":"
ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ ÙÙ
Ù Ú©ÙØ§Ù-ÙØ§ÚÙÙØ§","dic_create":"Ø§ÛØ¬Ø§Ø¯","dic_delete":"ØØ°Ù","dic_field_name":"ÙØ§Ù
دÛÚ©Ø´ÙØ±Û","dic_info":"در ابتدا دÛÚ©Ø´ÙØ±Û کاربر در Ú©ÙÚ©Û Ø°Ø®ÛØ±Ù Ù
ÛØ´Ùد. با اÛÙ ØØ§ÙØ Ú©ÙÚ©ÛÙØ§ در Ø§ÙØ¯Ø§Ø²Ù Ù
ØØ¯Ùد Ø´Ø¯ÙØ§Ùد. ÙÙØªÛ ک٠دÛÚ©Ø´ÙØ±Û Ú©Ø§Ø±Ø¨Ø±Û Ø¨Ø²Ø±Ú¯ Ù
ÛØ´Ùد ٠ب٠ÙÙØ·ÙØ§Û Ú©Ù ÙÙ
ÛØªÙØ§ÙØ¯ در Ú©ÙÚ©Û Ø°Ø®ÛØ±Ù Ø´ÙØ¯Ø پس از آ٠دÛÚ©Ø´ÙØ±Û Ù
Ù
ک٠است بر رÙÛ Ø³Ø±ÙØ± Ù
ا Ø°Ø®ÛØ±Ù Ø´ÙØ¯. Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù دÛÚ©Ø´ÙØ±Û Ø´Ø®ØµÛ Ø´Ù
ا بر رÙÛ Ø³Ø±ÙØ± Ù
Ø§Ø Ø¨Ø§ÛØ¯ ÛÚ© ÙØ§Ù
Ø¨Ø±Ø§Û Ø¯ÛÚ©Ø´ÙØ±Û Ø®ÙØ¯ Ù
شخص ÙÙ
اÛÛØ¯. اگر Ø´Ù
ا ÙØ¨Ùا ÛÚ© دÛÚ©Ø´ÙØ±Û رÙÛ Ø³Ø±ÙØ± Ù
ا Ø°Ø®ÛØ±Ù Ú©Ø±Ø¯ÙØ§ÛØ¯Ø ÙØ·Ùا ÙØ§Ù
Ø¢ÙØ±Ø§ درج ٠رÙÛ Ø¯Ú©Ù
Ù Ø¨Ø§Ø²ÛØ§Ùت Ú©ÙÛÚ© ÙÙ
اÛÛØ¯.","dic_rename":"تغÛÛØ± ÙØ§Ù
","dic_restore":"Ø¨Ø§Ø²ÛØ§Ùت","dictionariesTab":"دÛÚ©Ø´ÙØ±ÛÙØ§","disable"
:"ØºÛØ±ÙØ¹Ø§ÙØ³Ø§Ø²Û SCAYT","emptyDic":"ÙØ§Ù
دÛÚ©Ø´ÙØ±Û ÙØ¨Ø§Ûد خاÙÛ Ø¨Ø§Ø´Ø¯.","enable":"ÙØ¹Ø§ÙØ³Ø§Ø²Û SCAYT","ignore":"Ø¹Ø¨ÙØ± کردÙ","ignoreAll":"Ø¹Ø¨ÙØ± کرد٠از ÙÙ
Ù","ignoreDomainNames":"Ø¹Ø¨ÙØ± از ÙØ§Ù
ÙØ§Û داÙ
ÙÙ","langs":"زباÙÙØ§","languagesTab":"زباÙÙØ§","mixedCase":"Ø¹Ø¨ÙØ± از Ú©ÙÙ
Ø§ØªÛ Ù
رکب از ØØ±Ù٠بزرگ Ù Ú©ÙÚÚ©","mixedWithDigits":"Ø¹Ø¨ÙØ± از Ú©ÙÙ
ات ب٠ÙÙ
را٠عدد","moreSuggestions":"Ù¾ÛØ´ÙÙØ§Ø¯ÙØ§Û Ø¨ÛØ´ØªØ±","opera_title":"ØªÙØ³Ø· اپرا Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÙ
ÛØ´Ùد","options":"گزÛÙÙÙØ§","optionsTab":"گزÛÙÙÙØ§","title":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§Û تاÛÙ¾ Ø´Ù
ا","toggle":"ضاÙ
Ù SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"سبک","panelTitle":"Ø³Ø¨Ú©ÙØ§Û ÙØ§ÙØ¨Ø¨ÙØ¯Û","panelTitle1":"Ø³Ø¨Ú©ÙØ§Û بÙÙÚ©","panelTitle2":"Ø³Ø¨Ú©ÙØ§Û درÙÙØ®Ø·Û","panelTitle3":"Ø³Ø¨Ú©ÙØ§Û Ø´ÛØ¡"},"table":{"border":"Ø§ÙØ¯Ø§Ø²ÙÙ´ ÙØ¨Ù","
caption":"عÙÙØ§Ù","cell":{"menu":"سÙÙÙ","insertBefore":"Ø§ÙØ²Ùد٠سÙÙÙ ÙØ¨Ù از","insertAfter":"Ø§ÙØ²Ùد٠سÙÙ٠بعد از","deleteCell":"ØØ°Ù سÙÙÙÙØ§","merge":"ادغاÙ
سÙÙÙÙØ§","mergeRight":"ادغاÙ
ب٠راست","mergeDown":"ادغاÙ
ب٠پاÛÛÙ","splitHorizontal":"جدا کرد٠اÙÙÛ Ø³ÙÙÙ","splitVertical":"جدا کرد٠عÙ
ÙØ¯Û سÙÙÙ","title":"ÙÛÚÚ¯ÛÙØ§Û سÙÙÙ","cellType":"ÙÙØ¹ سÙÙÙ","rowSpan":"Ù
ØØ¯Ùد٠ردÛÙÙØ§","colSpan":"Ù
ØØ¯Ùد٠ستÙÙÙØ§","wordWrap":"شکست٠کÙÙ
Ù","hAlign":"ÚÛÙØ´ اÙÙÛ","vAlign":"ÚÛÙØ´ عÙ
ÙØ¯Û","alignBaseline":"خط Ù
Ø¨ÙØ§","bgColor":"رÙÚ¯ زÙ
ÛÙÙ","borderColor":"رÙÚ¯ Ø®Ø·ÙØ·","data":"Ø§Ø·ÙØ§Ø¹Ø§Øª","header":"سرÙÙÛØ³","yes":"بÙÙ","no":"Ø®ÛØ±","invalidWidth":"عرض سÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidHeight":"Ø§Ø±ØªÙØ§Ø¹ سÙÙÙ Ø¨Ø§ÛØ¯ عدد باشد.","invalidRowSpan":"Ù
ÙØ¯Ø§Ø± Ù
ØØ¯Ùد٠ردÛ
ÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidColSpan":"Ù
ÙØ¯Ø§Ø± Ù
ØØ¯Ùد٠ستÙÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","chooseColor":"Ø§ÙØªØ®Ø§Ø¨"},"cellPad":"ÙØ§ØµÙÙÙ´ پرشد٠در سÙÙÙ","cellSpace":"ÙØ§ØµÙÙÙ´ Ù
ÛØ§Ù سÙÙÙÙØ§","column":{"menu":"ستÙÙ","insertBefore":"Ø§ÙØ²Ùد٠ستÙÙ ÙØ¨Ù از","insertAfter":"Ø§ÙØ²Ùد٠ستÙ٠بعد از","deleteColumn":"ØØ°Ù ستÙÙÙØ§"},"columns":"ستÙÙÙØ§","deleteTable":"پاک کرد٠جدÙÙ","headers":"سرÙÙÛØ³Ùا","headersBoth":"ÙØ±Ø¯Ù","headersColumn":"اÙÙÛ٠ستÙÙ","headersNone":"ÙÛÚ","headersRow":"اÙÙÛ٠ردÛÙ","invalidBorder":"Ù
ÙØ¯Ø§Ø± Ø§ÙØ¯Ø§Ø²Ù Ø®Ø·ÙØ· Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidCellPadding":"Ø¨Ø§ÙØ´ØªÚ© سÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidCellSpacing":"Ù
ÙØ¯Ø§Ø± ÙØ§ØµÙÙÚ¯Ø°Ø§Ø±Û Ø³ÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidCols":"تعداد ستÙÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد بزرگتر از 0 باشد.","inval
idHeight":"Ù
ÙØ¯Ø§Ø± Ø§Ø±ØªÙØ§Ø¹ جدÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","invalidRows":"تعداد ردÛÙÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© عدد بزرگتر از 0 باشد.","invalidWidth":"Ù
ÙØ¯Ø§Ø± Ù¾ÙÙØ§Û جدÙÙ Ø¨Ø§ÛØ¯ ÛÚ© عدد باشد.","menu":"ÙÛÚÚ¯ÛÙØ§Û جدÙÙ","row":{"menu":"سطر","insertBefore":"Ø§ÙØ²Ùد٠سطر ÙØ¨Ù از","insertAfter":"Ø§ÙØ²Ùد٠سطر بعد از","deleteRow":"ØØ°Ù Ø³Ø·Ø±ÙØ§"},"rows":"Ø³Ø·Ø±ÙØ§","summary":"Ø®ÙØ§ØµÙ","title":"ÙÛÚÚ¯ÛÙØ§Û جدÙÙ","toolbar":"جدÙÙ","widthPc":"درصد","widthPx":"Ù¾ÛکسÙ","widthUnit":"ÙØ§ØØ¯ Ù¾ÙÙØ§"},"undo":{"redo":"بازÚÛØ¯Ù","undo":"ÙØ§ÚÛØ¯Ù"},"wsc":{"btnIgnore":"ÚØ´Ù
Ù¾ÙØ´Û","btnIgnoreAll":"ÚØ´Ù
Ù¾ÙØ´Û ÙÙ
Ù","btnReplace":"جاÛگزÛÙÛ","btnReplaceAll":"جاÛگزÛÙÛ ÙÙ
Ù","btnUndo":"ÙØ§ÚÛÙØ´","changeTo":"تغÛÛØ± بÙ","errorLoading":"خطا در Ø¨Ø§Ø±Ú¯ÛØ±Û Ø¨Ø±ÙØ§Ù
٠خدÙ
ات Ù
ÛØ²Ø¨Ø§Ù: %s.","ieSpellDownload":"Ø¨Ø±Ø±Ø³Û Ú©Ù
ÙØ¯ÙÙ´ اÙ
ÙØ§ ÙØµØ¨ ÙØ´Ø¯Ù است. Ø¢ÛØ§ Ù
ÛØ®ÙاÙÛØ¯ آ٠را ÙÙ
اکÙÙÙ Ø¯Ø±ÛØ§Ùت Ú©ÙÛØ¯Ø","manyChanges":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. %1 ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت","noChanges":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ÙØ§ÚÙØ§Û تغÛÛØ± ÙÛØ§Ùت","noMispell":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÙÛÚ ØºÙØ· اÙ
ÙØ§Ø¦Û ÛØ§Ùت ÙØ´Ø¯","noSuggestions":"- Ù¾ÛØ´ÙÙØ§Ø¯Û ÙÛØ³Øª -","notAvailable":"با عرض Ù¾ÙØ²Ø´ خدÙ
ات Ø§ÙØ§Ù در دسترس ÙÛØ³ØªÙد.","notInDic":"در ÙØ§ÚÙ~ÙØ§Ù
Ù ÛØ§Ùت ÙØ´Ø¯","oneChange":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ Ø§ÙØ¬Ø§Ù
شد. ÛÚ© ÙØ§Ú٠تغÛÛØ± ÛØ§Ùت","progress":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§ در ØØ§Ù Ø§ÙØ¬Ø§Ù
...","title":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§","toolbar":"Ø¨Ø±Ø±Ø³Û Ø§Ù
ÙØ§"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/fi.js b/share/static/RichText/lang/fi.js
index 8055be5..709b68b 100644
--- a/share/static/RichText/lang/fi.js
+++ b/share/static/RichText/lang/fi.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.fi={dir:'ltr',editorTitle:'Rikastekstieditori, %1, paina ALT 0 nähdäksesi ohjeen.',toolbar:'Työkalupalkki',editor:'Rikastekstieditori',source:'Koodi',newPage:'Tyhjennä',save:'Tallenna',preview:'Esikatsele',cut:'Leikkaa',copy:'Kopioi',paste:'Liitä',print:'Tulosta',underline:'Alleviivattu',bold:'Lihavoitu',italic:'Kursivoitu',selectAll:'Valitse kaikki',removeFormat:'Poista muotoilu',strike:'Yliviivattu',subscript:'Alaindeksi',superscript:'Yläindeksi',horizontalrule:'Lisää murtoviiva',pagebreak:'Lisää sivun vaihto',unlink:'Poista linkki',undo:'Kumoa',redo:'Toista',common:{browseServer:'Selaa palvelinta',url:'Osoite',protocol:'Protokolla',upload:'Lisää tiedosto',uploadSubmit:'Lähetä palvelimelle',image:'Kuva',flash:'Flash',form:'Lomake',checkbox:'Valintaruutu',radio:'Radiopainike',textField:'Tekstikenttä',textarea:'Tekstilaatikko',hiddenField:'Piilokenttä',button:'Painike',select:'Valintakenttä',imageButton:'Kuvapainike',notSet:'<ei asetettu>',id:'
Tunniste',name:'Nimi',langDir:'Kielen suunta',langDirLtr:'Vasemmalta oikealle (LTR)',langDirRtl:'Oikealta vasemmalle (RTL)',langCode:'Kielikoodi',longDescr:'Pitkän kuvauksen URL',cssClass:'Tyyliluokat',advisoryTitle:'Avustava otsikko',cssStyle:'Tyyli',ok:'OK',cancel:'Peruuta',close:'Sulje',preview:'Esikatselu',generalTab:'Yleinen',advancedTab:'Lisäominaisuudet',validateNumberFailed:'Arvon pitää olla numero.',confirmNewPage:'Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?',confirmCancel:'Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?',options:'Asetukset',target:'Kohde',targetNew:'Uusi ikkuna (_blank)',targetTop:'Päällimmäinen ikkuna (_top)',targetSelf:'Sama ikkuna (_self)',targetParent:'Ylemmän tason ikkuna (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_acce
ssibility">, ei saatavissa</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Lisää erikoismerkki',title:'Valitse erikoismerkki',options:'Special Character Options'},link:{toolbar:'Lisää linkki/muokkaa linkkiä',other:'<muu>',menu:'Muokkaa linkkiä',title:'Linkki',info:'Linkin tiedot',target:'Kohde',upload:'Lisää tiedosto',advanced:'Lisäominaisuudet',type:'Linkkityyppi',toUrl:'Osoite',toAnchor:'Ankkuri tässä sivussa',toEmail:'Sähköposti',targetFrame:'<kehys>',targetPopup:'<popup ikkuna>',targetFrameName:'Kohdekehyksen nimi',targetPopupName:'Popup ikkunan nimi',popupFeatures:'Popup ikkunan ominaisuudet',popupResizable:'Venytettävä',popupStatusBar:'Tilarivi',popupLocationBar:'Osoiterivi',popupToolbar:'Vakiopainikkeet',popupMenuBar:'Valikkorivi',popupFullScreen:'Täysi ikkuna (IE)',popupScrollBars:'Vierityspalkit',popupDependent:'Riippuva (Netscape)',popupWidth:'Leveys',popupLeft:'Vasemmalta (px)',popupHeight:'Korkeus',popupTop:'Ylhäältä
(px)',id:'Tunniste',langDir:'Kielen suunta',langDirLTR:'Vasemmalta oikealle (LTR)',langDirRTL:'Oikealta vasemmalle (RTL)',acccessKey:'Pikanäppäin',name:'Nimi',langCode:'Kielen suunta',tabIndex:'Tabulaattori indeksi',advisoryTitle:'Avustava otsikko',advisoryContentType:'Avustava sisällön tyyppi',cssClasses:'Tyyliluokat',charset:'Linkitetty kirjaimisto',styles:'Tyyli',selectAnchor:'Valitse ankkuri',anchorName:'Ankkurin nimen mukaan',anchorId:'Ankkurin ID:n mukaan',emailAddress:'Sähköpostiosoite',emailSubject:'Aihe',emailBody:'Viesti',noAnchors:'(Ei ankkureita tässä dokumentissa)',noUrl:'Linkille on kirjoitettava URL',noEmail:'Kirjoita sähköpostiosoite'},anchor:{toolbar:'Lisää ankkuri/muokkaa ankkuria',menu:'Ankkurin ominaisuudet',title:'Ankkurin ominaisuudet',name:'Nimi',errorName:'Ankkurille on kirjoitettava nimi'},list:{numberedTitle:'Numeroidun listan ominaisuudet',bulletedTitle:'Numeroimattoman listan ominaisuudet',type:'Tyyppi',start:'Alku',validateStartNumbe
r:'List start number must be a whole number.',circle:'Ympyrä',disc:'Levy',square:'Neliö',none:'Ei mikään',notset:'<ei asetettu>',armenian:'Armeenialainen numerointi',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Pienet roomalaiset (i, ii, iii, iv, v, jne.)',upperRoman:'Isot roomalaiset (I, II, III, IV, V, jne.)',lowerAlpha:'Pienet aakkoset (a, b, c, d, e, jne.)',upperAlpha:'Isot aakkoset (A, B, C, D, E, jne.)',lowerGreek:'Pienet kreikkalaiset (alpha, beta, gamma, jne.)',decimal:'Desimaalit (1, 2, 3, jne.)',decimalLeadingZero:'Desimaalit, alussa nolla (01, 02, 03, jne.)'},findAndReplace:{title:'Etsi ja korvaa',find:'Etsi',replace:'Korvaa',findWhat:'Etsi mitä:',replaceWith:'Korvaa tällä:',notFoundMsg:'Etsittyä tekstiä ei löytynyt.',matchCase:'Sama kirjainkoko',matchWord:'Koko sana',matchCyclic:'Kierrä ympäri',replaceAll:'Korvaa kaikki',replaceSuccessMsg:'%1 esiintymä(ä) korvattu.'},table:{toolbar:'Taulu',title:'Taulun ominaisuudet',menu:'Taulun o
minaisuudet',deleteTable:'Poista taulu',rows:'Rivit',columns:'Sarakkeet',border:'Rajan paksuus',align:'Kohdistus',alignLeft:'Vasemmalle',alignCenter:'Keskelle',alignRight:'Oikealle',width:'Leveys',widthPx:'pikseliä',widthPc:'prosenttia',widthUnit:'leveysyksikkö',height:'Korkeus',cellSpace:'Solujen väli',cellPad:'Solujen sisennys',caption:'Otsikko',summary:'Yhteenveto',headers:'Ylätunnisteet',headersNone:'Ei',headersColumn:'Ensimmäinen sarake',headersRow:'Ensimmäinen rivi',headersBoth:'Molemmat',invalidRows:'Rivien määrän täytyy olla suurempi kuin 0.',invalidCols:'Sarakkeiden määrän täytyy olla suurempi kuin 0.',invalidBorder:'Reunan koon täytyy olla numero.',invalidWidth:'Taulun leveyden täytyy olla numero.',invalidHeight:'Taulun korkeuden täytyy olla numero.',invalidCellSpacing:'Solujen välin täytyy olla numero.',invalidCellPadding:'Solujen sisennyksen täytyy olla numero.',cell:{menu:'Solu',insertBefore:'Lisää solu eteen',insertAfter:'Lisää solu perÃ
¤Ã¤n',deleteCell:'Poista solut',merge:'Yhdistä solut',mergeRight:'Yhdistä oikealla olevan kanssa',mergeDown:'Yhdistä alla olevan kanssa',splitHorizontal:'Jaa solu vaakasuunnassa',splitVertical:'Jaa solu pystysuunnassa',title:'Solun ominaisuudet',cellType:'Solun tyyppi',rowSpan:'Rivin jatkuvuus',colSpan:'Solun jatkuvuus',wordWrap:'Rivitys',hAlign:'Horisontaali kohdistus',vAlign:'Vertikaali kohdistus',alignTop:'Ylös',alignMiddle:'Keskelle',alignBottom:'Alas',alignBaseline:'Alas (teksti)',bgColor:'Taustan väri',borderColor:'Reunan väri',data:'Data',header:'Ylätunniste',yes:'Kyllä',no:'Ei',invalidWidth:'Solun leveyden täytyy olla numero.',invalidHeight:'Solun korkeuden täytyy olla numero.',invalidRowSpan:'Rivin jatkuvuuden täytyy olla kokonaisluku.',invalidColSpan:'Solun jatkuvuuden täytyy olla kokonaisluku.',chooseColor:'Valitse'},row:{menu:'Rivi',insertBefore:'Lisää rivi yläpuolelle',insertAfter:'Lisää rivi alapuolelle',deleteRow:'Poista rivit'},column:{menu:'
Sarake',insertBefore:'Lisää sarake vasemmalle',insertAfter:'Lisää sarake oikealle',deleteColumn:'Poista sarakkeet'}},button:{title:'Painikkeen ominaisuudet',text:'Teksti (arvo)',type:'Tyyppi',typeBtn:'Painike',typeSbm:'Lähetä',typeRst:'Tyhjennä'},checkboxAndRadio:{checkboxTitle:'Valintaruudun ominaisuudet',radioTitle:'Radiopainikkeen ominaisuudet',value:'Arvo',selected:'Valittu'},form:{title:'Lomakkeen ominaisuudet',menu:'Lomakkeen ominaisuudet',action:'Toiminto',method:'Tapa',encoding:'Enkoodaus'},select:{title:'Valintakentän ominaisuudet',selectInfo:'Info',opAvail:'Ominaisuudet',value:'Arvo',size:'Koko',lines:'Rivit',chkMulti:'Salli usea valinta',opText:'Teksti',opValue:'Arvo',btnAdd:'Lisää',btnModify:'Muuta',btnUp:'Ylös',btnDown:'Alas',btnSetValue:'Aseta valituksi',btnDelete:'Poista'},textarea:{title:'Tekstilaatikon ominaisuudet',cols:'Sarakkeita',rows:'Rivejä'},textfield:{title:'Tekstikentän ominaisuudet',name:'Nimi',value:'Arvo',charWidth:'Leveys',maxChars:
'Maksimi merkkimäärä',type:'Tyyppi',typeText:'Teksti',typePass:'Salasana'},hidden:{title:'Piilokentän ominaisuudet',name:'Nimi',value:'Arvo'},image:{title:'Kuvan ominaisuudet',titleButton:'Kuvapainikkeen ominaisuudet',menu:'Kuvan ominaisuudet',infoTab:'Kuvan tiedot',btnUpload:'Lähetä palvelimelle',upload:'Lisää kuva',alt:'Vaihtoehtoinen teksti',width:'Leveys',height:'Korkeus',lockRatio:'Lukitse suhteet',unlockRatio:'Vapauta suhteet',resetSize:'Alkuperäinen koko',border:'Kehys',hSpace:'Vaakatila',vSpace:'Pystytila',align:'Kohdistus',alignLeft:'Vasemmalle',alignRight:'Oikealle',alertUrl:'Kirjoita kuvan osoite (URL)',linkTab:'Linkki',button2Img:'Haluatko muuntaa valitun kuvanäppäimen kuvaksi?',img2Button:'Haluatko muuntaa valitun kuvan kuvanäppäimeksi?',urlMissing:'Kuvan lähdeosoite puuttuu.',validateWidth:'Leveyden täytyy olla kokonaisluku.',validateHeight:'Korkeuden täytyy olla kokonaisluku.',validateBorder:'Kehyksen täytyy olla kokonaisluku.',validateHSpace:
'HSpace-määrityksen täytyy olla kokonaisluku.',validateVSpace:'VSpace-määrityksen täytyy olla kokonaisluku.'},flash:{properties:'Flash-ominaisuudet',propertiesTab:'Ominaisuudet',title:'Flash ominaisuudet',chkPlay:'Automaattinen käynnistys',chkLoop:'Toisto',chkMenu:'Näytä Flash-valikko',chkFull:'Salli kokoruututila',scale:'Levitä',scaleAll:'Näytä kaikki',scaleNoBorder:'Ei rajaa',scaleFit:'Tarkka koko',access:'Skriptien pääsy',accessAlways:'Aina',accessSameDomain:'Sama verkkotunnus',accessNever:'Ei koskaan',align:'Kohdistus',alignLeft:'Vasemmalle',alignAbsBottom:'Aivan alas',alignAbsMiddle:'Aivan keskelle',alignBaseline:'Alas (teksti)',alignBottom:'Alas',alignMiddle:'Keskelle',alignRight:'Oikealle',alignTextTop:'Ylös (teksti)',alignTop:'Ylös',quality:'Laatu',qualityBest:'Paras',qualityHigh:'Korkea',qualityAutoHigh:'Automaattinen korkea',qualityMedium:'Keskitaso',qualityAutoLow:'Automaattinen matala',qualityLow:'Matala',windowModeWindow:'Ikkuna',windowModeOpaque
:'Läpinäkyvyys',windowModeTransparent:'Läpinäkyvä',windowMode:'Ikkuna tila',flashvars:'Muuttujat Flash:lle',bgcolor:'Taustaväri',width:'Leveys',height:'Korkeus',hSpace:'Vaakatila',vSpace:'Pystytila',validateSrc:'Linkille on kirjoitettava URL',validateWidth:'Leveyden täytyy olla numero.',validateHeight:'Korkeuden täytyy olla numero.',validateHSpace:'Vaakatilan täytyy olla numero.',validateVSpace:'Pystytilan täytyy olla numero.'},spellCheck:{toolbar:'Tarkista oikeinkirjoitus',title:'Oikoluku',notAvailable:'Valitettavasti oikoluku ei ole käytössä tällä hetkellä.',errorLoading:'Virhe ladattaessa oikolukupalvelua isännältä: %s.',notInDic:'Ei sanakirjassa',changeTo:'Vaihda',btnIgnore:'Jätä huomioimatta',btnIgnoreAll:'Jätä kaikki huomioimatta',btnReplace:'Korvaa',btnReplaceAll:'Korvaa kaikki',btnUndo:'Kumoa',noSuggestions:'Ei ehdotuksia',progress:'Tarkistus käynnissä...',noMispell:'Tarkistus valmis: Ei virheitä',noChanges:'Tarkistus valmis: Yhtään sanaa
ei muutettu',oneChange:'Tarkistus valmis: Yksi sana muutettiin',manyChanges:'Tarkistus valmis: %1 sanaa muutettiin',ieSpellDownload:'Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?'},smiley:{toolbar:'Hymiö',title:'Lisää hymiö',options:'Smiley Options'},elementsPath:{eleLabel:'Elementin polku',eleTitle:'%1 elementti'},numberedlist:'Numerointi',bulletedlist:'Luottelomerkit',indent:'Suurenna sisennystä',outdent:'Pienennä sisennystä',justify:{left:'Tasaa vasemmat reunat',center:'Keskitä',right:'Tasaa oikeat reunat',block:'Tasaa molemmat reunat'},blockquote:'Lainaus',clipboard:{title:'Liitä',cutError:'Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).',copyError:'Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).',pasteMsg:'Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.',securit
yMsg:'Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.',pasteArea:'Leikealue'},pastefromword:{confirmCleanup:'Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko siivota sen ennen liittämistä? (Suositus: Kyllä)',toolbar:'Liitä Word-dokumentista',title:'Liitä Word-dokumentista',error:'Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia'},pasteText:{button:'Liitä tekstinä',title:'Liitä tekstinä'},templates:{button:'Pohjat',title:'Sisältöpohjat',options:'Template Options',insertOption:'Korvaa editorin koko sisältö',selectPromptMsg:'Valitse pohja editoriin<br>(aiempi sisältö menetetään):',emptyListMsg:'(Ei määriteltyjä pohjia)'},showBlocks:'Näytä elementit',stylesCombo:{label:'Tyyli',panelTitle:'Muotoilujen tyylit',panelTitle1:'Lohkojen tyylit',panelTitle2:'Rivinsisäiset tyylit',panelTitle3:'Objektien tyylit'},format:{label:'Muotoilu',pane
lTitle:'Muotoilu',tag_p:'Normaali',tag_pre:'Muotoiltu',tag_address:'Osoite',tag_h1:'Otsikko 1',tag_h2:'Otsikko 2',tag_h3:'Otsikko 3',tag_h4:'Otsikko 4',tag_h5:'Otsikko 5',tag_h6:'Otsikko 6',tag_div:'Normaali (DIV)'},div:{title:'Luo div-kehikko',toolbar:'Luo div-kehikko',cssClassInputLabel:'Tyylitiedoston luokat',styleSelectLabel:'Tyyli',IdInputLabel:'Id',languageCodeInputLabel:' Kielen koodi',inlineStyleInputLabel:'Sisätyyli',advisoryTitleInputLabel:'Ohjeistava otsikko',langDirLabel:'Kielen suunta',langDirLTRLabel:'Vasemmalta oikealle (LTR)',langDirRTLLabel:'Oikealta vasemmalle (RTL)',edit:'Muokkaa Diviä',remove:'Poista Div'},font:{label:'Kirjaisinlaji',voiceLabel:'Kirjaisinlaji',panelTitle:'Kirjaisinlaji'},fontSize:{label:'Koko',voiceLabel:'Kirjaisimen koko',panelTitle:'Koko'},colorButton:{textColorTitle:'Tekstiväri',bgColorTitle:'Taustaväri',panelTitle:'Värit',auto:'Automaattinen',more:'Lisää värejä...'},colors:{'000':'Musta',800000:'Kastanjanruskea','8B4513':'Sat
ulanruskea','2F4F4F':'Tumma liuskekivenharmaa','008080':'Sinivihreä','000080':'Laivastonsininen','4B0082':'Indigonsininen',696969:'Tummanharmaa',B22222:'Tiili',A52A2A:'Ruskea',DAA520:'Kultapiisku','006400':'Tummanvihreä','40E0D0':'Turkoosi','0000CD':'Keskisininen',800080:'Purppura',808080:'Harmaa',F00:'Punainen',FF8C00:'Tumma oranssi',FFD700:'Kulta','008000':'Vihreä','0FF':'Syaani','00F':'Sininen',EE82EE:'Violetti',A9A9A9:'Tummanharmaa',FFA07A:'Vaaleanlohenpunainen',FFA500:'Oranssi',FFFF00:'Keltainen','00FF00':'Limetin vihreä',AFEEEE:'Haalea turkoosi',ADD8E6:'Vaaleansininen',DDA0DD:'Luumu',D3D3D3:'Vaaleanharmaa',FFF0F5:'Laventelinpunainen',FAEBD7:'Antiikinvalkoinen',FFFFE0:'Vaaleankeltainen',F0FFF0:'Hunajameloni',F0FFFF:'Asurinsininen',F0F8FF:'Alice Blue -sininen',E6E6FA:'Lavanteli',FFF:'Valkoinen'},scayt:{title:'Oikolue kirjoitettaessa',opera_title:'Opera ei tue tätä ominaisuutta',enable:'Ota käyttöön oikoluku kirjoitettaessa',disable:'Poista käytöstä oikoluku k
irjoitetaessa',about:'Tietoja oikoluvusta kirjoitetaessa',toggle:'Vaihda oikoluku kirjoittaessa tilaa',options:'Asetukset',langs:'Kielet',moreSuggestions:'Lisää ehdotuksia',ignore:'Ohita',ignoreAll:'Ohita kaikki',addWord:'Lisää sana',emptyDic:'Sanakirjan nimi on annettava.',optionsTab:'Asetukset',allCaps:'Ohita sanat, jotka on kirjoitettu kokonaan isoilla kirjaimilla',ignoreDomainNames:'Ohita verkkotunnukset',mixedCase:'Ohita sanat, joissa on sekoitettu isoja ja pieniä kirjaimia',mixedWithDigits:'Ohita sanat, joissa on numeroita',languagesTab:'Kielet',dictionariesTab:'Sanakirjat',dic_field_name:'Sanakirjan nimi',dic_create:'Luo',dic_restore:'Palauta',dic_delete:'Poista',dic_rename:'Nimeä uudelleen',dic_info:'Oletuksena sanakirjat tallennetaan evästeeseen, mutta evästeiden koko on kuitenkin rajallinen. Sanakirjan kasvaessa niin suureksi, ettei se enää mahdu evästeeseen, sanakirja täytyy tallentaa palvelimellemme. Tallentaaksesi sanakirjasi palvelimellemme tulee si
nun antaa sille nimi. Jos olet jo tallentanut sanakirjan, anna sen nimi ja klikkaa Palauta-painiketta',aboutTab:'Tietoa'},about:{title:'Tietoa CKEditorista',dlgTitle:'Tietoa CKEditorista',moreInfo:'Lisenssitiedot löytyvät kotisivuiltamme:',copy:'Copyright © $1. Kaikki oikeuden pidätetään.'},maximize:'Suurenna',minimize:'Pienennä',fakeobjects:{anchor:'Ankkuri',flash:'Flash animaatio',div:'Sivun vaihto',unknown:'Tuntematon objekti'},resize:'Raahaa muuttaaksesi kokoa',colordialog:{title:'Valitse väri',options:'Color Options',highlight:'Korostus',selected:'Valittu',clear:'Poista'},toolbarCollapse:'Kutista työkalupalkki',toolbarExpand:'Laajenna työkalupalkki',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['fi']={"dir":"ltr","editor":"Rikastekstieditori","common":{"editorHelp":"Paina ALT 0 nähdäksesi ohjeen","browseServer":"Selaa palvelinta","url":"Osoite","protocol":"Protokolla","upload":"Lisää tiedosto","uploadSubmit":"Lähetä palvelimelle","image":"Kuva","flash":"Flash-animaatio","form":"Lomake","checkbox":"Valintaruutu","radio":"Radiopainike","textField":"Tekstikenttä","textarea":"Tekstilaatikko","hiddenField":"Piilokenttä","button":"Painike","select":"Valintakenttä","imageButton":"Kuvapainike","notSet":"<ei asetettu>","id":"Tunniste","name":"Nimi","langDir":"Kielen suunta","langDirLtr":"Vasemmalta oikealle (LTR)","langDirRtl":"Oikealta vasemmalle (RTL)","langCode":"Kielikoodi","longDescr":"Pitkän kuvauksen URL","cssClass":"Tyyliluokat","advisoryTitle":"Avustava otsikko","cssStyle":"Tyyli","ok":"OK","cancel":"Peruuta","close":"Sulje","preview":"Esikatselu","resize":"Raahaa muuttaaksesi kokoa","generalTab":"Yleinen","advancedTab":"Lisäominaisuudet","
validateNumberFailed":"Arvon pitää olla numero.","confirmNewPage":"Kaikki tallentamattomat muutokset tähän sisältöön menetetään. Oletko varma, että haluat ladata uuden sivun?","confirmCancel":"Jotkut asetuksista on muuttuneet. Oletko varma, että haluat sulkea valintaikkunan?","options":"Asetukset","target":"Kohde","targetNew":"Uusi ikkuna (_blank)","targetTop":"Päällimmäinen ikkuna (_top)","targetSelf":"Sama ikkuna (_self)","targetParent":"Ylemmän tason ikkuna (_parent)","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","styles":"Tyyli","cssClasses":"Tyylitiedoston luokat","width":"Leveys","height":"Korkeus","align":"Kohdistus","alignLeft":"Vasemmalle","alignRight":"Oikealle","alignCenter":"Keskelle","alignTop":"Ylös","alignMiddle":"Keskelle","alignBottom":"Alas","invalidValue":"Virheellinen arvo.","invalidHeight":"Korkeuden täytyy olla numero.","invalidWidth":"Leveyden täytyy olla numero.","invalidCssLength":"Kentän \"%1\"
arvon täytyy olla positiivinen luku CSS mittayksikön (px, %, in, cm, mm, em, ex, pt tai pc) kanssa tai ilman.","invalidHtmlLength":"Kentän \"%1\" arvon täytyy olla positiivinen luku HTML mittayksikön (px tai %) kanssa tai ilman.","invalidInlineStyle":"Tyylille annetun arvon täytyy koostua yhdestä tai useammasta \"nimi : arvo\" parista, jotka ovat eroteltuna toisistaan puolipisteillä.","cssLengthTooltip":"Anna numeroarvo pikseleinä tai numeroarvo CSS mittayksikön kanssa (px, %, in, cm, mm, em, ex, pt, tai pc).","unavailable":"%1<span class=\"cke_accessibility\">, ei saatavissa</span>"},"about":{"copy":"Copyright © $1. Kaikki oikeuden pidätetään.","dlgTitle":"Tietoa CKEditorista","help":"Katso ohjeet: $1.","moreInfo":"Lisenssitiedot löytyvät kotisivuiltamme:","title":"Tietoa CKEditorista","userGuide":"CKEditorin käyttäjäopas"},"basicstyles":{"bold":"Lihavoitu","italic":"Kursivoitu","strike":"Yliviivattu","subscript":"Alaindeksi","superscript":"Yläindeks
i","underline":"Alleviivattu"},"bidi":{"ltr":"Tekstin suunta vasemmalta oikealle","rtl":"Tekstin suunta oikealta vasemmalle"},"blockquote":{"toolbar":"Lainaus"},"clipboard":{"copy":"Kopioi","copyError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).","cut":"Leikkaa","cutError":"Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).","paste":"Liitä","pasteArea":"Leikealue","pasteMsg":"Liitä painamalla (<STRONG>Ctrl+V</STRONG>) ja painamalla <STRONG>OK</STRONG>.","securityMsg":"Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.","title":"Liitä"},"colorbutton":{"auto":"Automaattinen","bgColorTitle":"Taustaväri","colors":{"000":"Musta","800000":"Kastanjanruskea","8B4513":"Satulanruskea","2F4F4F":"Tumma liuskekivenharmaa","008080":"Sinivihreä","000080":
"Laivastonsininen","4B0082":"Indigonsininen","696969":"Tummanharmaa","B22222":"Tiili","A52A2A":"Ruskea","DAA520":"Kultapiisku","006400":"Tummanvihreä","40E0D0":"Turkoosi","0000CD":"Keskisininen","800080":"Purppura","808080":"Harmaa","F00":"Punainen","FF8C00":"Tumma oranssi","FFD700":"Kulta","008000":"Vihreä","0FF":"Syaani","00F":"Sininen","EE82EE":"Violetti","A9A9A9":"Tummanharmaa","FFA07A":"Vaaleanlohenpunainen","FFA500":"Oranssi","FFFF00":"Keltainen","00FF00":"Limetin vihreä","AFEEEE":"Haalea turkoosi","ADD8E6":"Vaaleansininen","DDA0DD":"Luumu","D3D3D3":"Vaaleanharmaa","FFF0F5":"Laventelinpunainen","FAEBD7":"Antiikinvalkoinen","FFFFE0":"Vaaleankeltainen","F0FFF0":"Hunajameloni","F0FFFF":"Asurinsininen","F0F8FF":"Alice Blue -sininen","E6E6FA":"Lavanteli","FFF":"Valkoinen"},"more":"Lisää värejä...","panelTitle":"Värit","textColorTitle":"Tekstiväri"},"colordialog":{"clear":"Poista","highlight":"Korostus","options":"Värin ominaisuudet","selected":"Valittu","title":"V
alitse väri"},"templates":{"button":"Pohjat","emptyListMsg":"(Ei määriteltyjä pohjia)","insertOption":"Korvaa editorin koko sisältö","options":"Sisältöpohjan ominaisuudet","selectPromptMsg":"Valitse pohja editoriin<br>(aiempi sisältö menetetään):","title":"Sisältöpohjat"},"contextmenu":{"options":"Pikavalikon ominaisuudet"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Ohjeistava otsikko","cssClassInputLabel":"Tyylitiedoston luokat","edit":"Muokkaa Diviä","inlineStyleInputLabel":"Sisätyyli","langDirLTRLabel":"Vasemmalta oikealle (LTR)","langDirLabel":"Kielen suunta","langDirRTLLabel":"Oikealta vasemmalle (RTL)","languageCodeInputLabel":" Kielen koodi","remove":"Poista Div","styleSelectLabel":"Tyyli","title":"Luo div-kehikko","toolbar":"Luo div-kehikko"},"toolbar":{"toolbarCollapse":"Kutista työkalupalkki","toolbarExpand":"Laajenna työkalupalkki","toolbarGroups":{"document":"Dokumentti","clipboard":"Leikepöytä/Kumoa","editing":"Muokkaus","forms":"L
omakkeet","basicstyles":"Perustyylit","paragraph":"Kappale","links":"Linkit","insert":"Lisää","styles":"Tyylit","colors":"Värit","tools":"Työkalut"},"toolbars":"Editorin työkalupalkit"},"elementspath":{"eleLabel":"Elementin polku","eleTitle":"%1 elementti"},"list":{"bulletedlist":"Luottelomerkit","numberedlist":"Numerointi"},"indent":{"indent":"Suurenna sisennystä","outdent":"Pienennä sisennystä"},"find":{"find":"Etsi","findOptions":"Hakuasetukset","findWhat":"Etsi mitä:","matchCase":"Sama kirjainkoko","matchCyclic":"Kierrä ympäri","matchWord":"Koko sana","notFoundMsg":"Etsittyä tekstiä ei löytynyt.","replace":"Korvaa","replaceAll":"Korvaa kaikki","replaceSuccessMsg":"%1 esiintymä(ä) korvattu.","replaceWith":"Korvaa tällä:","title":"Etsi ja korvaa"},"fakeobjects":{"anchor":"Ankkuri","flash":"Flash animaatio","hiddenfield":"Piilokenttä","iframe":"IFrame-kehys","unknown":"Tuntematon objekti"},"flash":{"access":"Skriptien pääsy","accessAlways":"Aina","acces
sNever":"Ei koskaan","accessSameDomain":"Sama verkkotunnus","alignAbsBottom":"Aivan alas","alignAbsMiddle":"Aivan keskelle","alignBaseline":"Alas (teksti)","alignTextTop":"Ylös (teksti)","bgcolor":"Taustaväri","chkFull":"Salli kokoruututila","chkLoop":"Toisto","chkMenu":"Näytä Flash-valikko","chkPlay":"Automaattinen käynnistys","flashvars":"Muuttujat Flash:lle","hSpace":"Vaakatila","properties":"Flash-ominaisuudet","propertiesTab":"Ominaisuudet","quality":"Laatu","qualityAutoHigh":"Automaattinen korkea","qualityAutoLow":"Automaattinen matala","qualityBest":"Paras","qualityHigh":"Korkea","qualityLow":"Matala","qualityMedium":"Keskitaso","scale":"Levitä","scaleAll":"Näytä kaikki","scaleFit":"Tarkka koko","scaleNoBorder":"Ei rajaa","title":"Flash ominaisuudet","vSpace":"Pystytila","validateHSpace":"Vaakatilan täytyy olla numero.","validateSrc":"Linkille on kirjoitettava URL","validateVSpace":"Pystytilan täytyy olla numero.","windowMode":"Ikkuna tila","windowModeOpaque
":"Läpinäkyvyys","windowModeTransparent":"Läpinäkyvä","windowModeWindow":"Ikkuna"},"font":{"fontSize":{"label":"Koko","voiceLabel":"Kirjaisimen koko","panelTitle":"Koko"},"label":"Kirjaisinlaji","panelTitle":"Kirjaisinlaji","voiceLabel":"Kirjaisinlaji"},"forms":{"button":{"title":"Painikkeen ominaisuudet","text":"Teksti (arvo)","type":"Tyyppi","typeBtn":"Painike","typeSbm":"Lähetä","typeRst":"Tyhjennä"},"checkboxAndRadio":{"checkboxTitle":"Valintaruudun ominaisuudet","radioTitle":"Radiopainikkeen ominaisuudet","value":"Arvo","selected":"Valittu"},"form":{"title":"Lomakkeen ominaisuudet","menu":"Lomakkeen ominaisuudet","action":"Toiminto","method":"Tapa","encoding":"Enkoodaus"},"hidden":{"title":"Piilokentän ominaisuudet","name":"Nimi","value":"Arvo"},"select":{"title":"Valintakentän ominaisuudet","selectInfo":"Info","opAvail":"Ominaisuudet","value":"Arvo","size":"Koko","lines":"Rivit","chkMulti":"Salli usea valinta","opText":"Teksti","opValue":"Arvo","btnAdd":"LisÃ
¤Ã¤","btnModify":"Muuta","btnUp":"Ylös","btnDown":"Alas","btnSetValue":"Aseta valituksi","btnDelete":"Poista"},"textarea":{"title":"Tekstilaatikon ominaisuudet","cols":"Sarakkeita","rows":"Rivejä"},"textfield":{"title":"Tekstikentän ominaisuudet","name":"Nimi","value":"Arvo","charWidth":"Leveys","maxChars":"Maksimi merkkimäärä","type":"Tyyppi","typeText":"Teksti","typePass":"Salasana","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Muotoilu","panelTitle":"Muotoilu","tag_address":"Osoite","tag_div":"Normaali (DIV)","tag_h1":"Otsikko 1","tag_h2":"Otsikko 2","tag_h3":"Otsikko 3","tag_h4":"Otsikko 4","tag_h5":"Otsikko 5","tag_h6":"Otsikko 6","tag_p":"Normaali","tag_pre":"Muotoiltu"},"horizontalrule":{"toolbar":"Lisää murtoviiva"},"iframe":{"border":"Näytä kehyksen reunat","noUrl":"Anna IFrame-kehykselle lähdeosoite (src)","scrolling":"Näytä vierityspalkit","title":"IFrame-kehyksen ominaisuudet","toolbar":"I
Frame-kehys"},"image":{"alertUrl":"Kirjoita kuvan osoite (URL)","alt":"Vaihtoehtoinen teksti","border":"Kehys","btnUpload":"Lähetä palvelimelle","button2Img":"Haluatko muuntaa valitun kuvanäppäimen kuvaksi?","hSpace":"Vaakatila","img2Button":"Haluatko muuntaa valitun kuvan kuvanäppäimeksi?","infoTab":"Kuvan tiedot","linkTab":"Linkki","lockRatio":"Lukitse suhteet","menu":"Kuvan ominaisuudet","resetSize":"Alkuperäinen koko","title":"Kuvan ominaisuudet","titleButton":"Kuvapainikkeen ominaisuudet","upload":"Lisää kuva","urlMissing":"Kuvan lähdeosoite puuttuu.","vSpace":"Pystytila","validateBorder":"Kehyksen täytyy olla kokonaisluku.","validateHSpace":"HSpace-määrityksen täytyy olla kokonaisluku.","validateVSpace":"VSpace-määrityksen täytyy olla kokonaisluku."},"smiley":{"options":"Hymiön ominaisuudet","title":"Lisää hymiö","toolbar":"Hymiö"},"justify":{"block":"Tasaa molemmat reunat","center":"Keskitä","left":"Tasaa vasemmat reunat","right":"Tasaa oikeat r
eunat"},"link":{"acccessKey":"Pikanäppäin","advanced":"Lisäominaisuudet","advisoryContentType":"Avustava sisällön tyyppi","advisoryTitle":"Avustava otsikko","anchor":{"toolbar":"Lisää ankkuri/muokkaa ankkuria","menu":"Ankkurin ominaisuudet","title":"Ankkurin ominaisuudet","name":"Nimi","errorName":"Ankkurille on kirjoitettava nimi","remove":"Poista ankkuri"},"anchorId":"Ankkurin ID:n mukaan","anchorName":"Ankkurin nimen mukaan","charset":"Linkitetty kirjaimisto","cssClasses":"Tyyliluokat","emailAddress":"Sähköpostiosoite","emailBody":"Viesti","emailSubject":"Aihe","id":"Tunniste","info":"Linkin tiedot","langCode":"Kielen suunta","langDir":"Kielen suunta","langDirLTR":"Vasemmalta oikealle (LTR)","langDirRTL":"Oikealta vasemmalle (RTL)","menu":"Muokkaa linkkiä","name":"Nimi","noAnchors":"(Ei ankkureita tässä dokumentissa)","noEmail":"Kirjoita sähköpostiosoite","noUrl":"Linkille on kirjoitettava URL","other":"<muu>","popupDependent":"Riippuva (Netscape)","popupFea
tures":"Popup ikkunan ominaisuudet","popupFullScreen":"Täysi ikkuna (IE)","popupLeft":"Vasemmalta (px)","popupLocationBar":"Osoiterivi","popupMenuBar":"Valikkorivi","popupResizable":"Venytettävä","popupScrollBars":"Vierityspalkit","popupStatusBar":"Tilarivi","popupToolbar":"Vakiopainikkeet","popupTop":"Ylhäältä (px)","rel":"Suhde","selectAnchor":"Valitse ankkuri","styles":"Tyyli","tabIndex":"Tabulaattori indeksi","target":"Kohde","targetFrame":"<kehys>","targetFrameName":"Kohdekehyksen nimi","targetPopup":"<popup ikkuna>","targetPopupName":"Popup ikkunan nimi","title":"Linkki","toAnchor":"Ankkuri tässä sivussa","toEmail":"Sähköposti","toUrl":"Osoite","toolbar":"Lisää linkki/muokkaa linkkiä","type":"Linkkityyppi","unlink":"Poista linkki","upload":"Lisää tiedosto"},"liststyle":{"armenian":"Armeenialainen numerointi","bulletedTitle":"Numeroimattoman listan ominaisuudet","circle":"Ympyrä","decimal":"Desimaalit (1, 2, 3, jne.)","decimalLeadingZero":"Desimaalit, al
ussa nolla (01, 02, 03, jne.)","disc":"Levy","georgian":"Georgialainen numerointi (an, ban, gan, etc.)","lowerAlpha":"Pienet aakkoset (a, b, c, d, e, jne.)","lowerGreek":"Pienet kreikkalaiset (alpha, beta, gamma, jne.)","lowerRoman":"Pienet roomalaiset (i, ii, iii, iv, v, jne.)","none":"Ei mikään","notset":"<ei asetettu>","numberedTitle":"Numeroidun listan ominaisuudet","square":"Neliö","start":"Alku","type":"Tyyppi","upperAlpha":"Isot aakkoset (A, B, C, D, E, jne.)","upperRoman":"Isot roomalaiset (I, II, III, IV, V, jne.)","validateStartNumber":"Listan ensimmäisen numeron tulee olla kokonaisluku."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Suurenna","minimize":"Pienennä"},"newpage":{"toolbar":"Tyhjennä"},"pagebreak":{"alt":"Sivunvaihto","toolbar":"Lisää sivunvaihto"},"pastetext":{"button":"Liitä tekstinä","title":"Liitä tekstinä"},"pastefromword":{"confirmCleanup":"Liittämäsi teksti näyttäisi olevan Word-dokumentista. Haluatko sii
vota sen ennen liittämistä? (Suositus: Kyllä)","error":"Liitetyn tiedon siivoaminen ei onnistunut sisäisen virheen takia","title":"Liitä Word-dokumentista","toolbar":"Liitä Word-dokumentista"},"preview":{"preview":"Esikatsele"},"print":{"toolbar":"Tulosta"},"removeformat":{"toolbar":"Poista muotoilu"},"save":{"toolbar":"Tallenna"},"selectall":{"toolbar":"Valitse kaikki"},"showblocks":{"toolbar":"Näytä elementit"},"sourcearea":{"toolbar":"Koodi"},"specialchar":{"options":"Erikoismerkin ominaisuudet","title":"Valitse erikoismerkki","toolbar":"Lisää erikoismerkki"},"scayt":{"about":"Tietoja oikoluvusta kirjoitetaessa","aboutTab":"Tietoa","addWord":"Lisää sana","allCaps":"Ohita sanat, jotka on kirjoitettu kokonaan isoilla kirjaimilla","dic_create":"Luo","dic_delete":"Poista","dic_field_name":"Sanakirjan nimi","dic_info":"Oletuksena sanakirjat tallennetaan evästeeseen, mutta evästeiden koko on kuitenkin rajallinen. Sanakirjan kasvaessa niin suureksi, ettei se enää
mahdu evästeeseen, sanakirja täytyy tallentaa palvelimellemme. Tallentaaksesi sanakirjasi palvelimellemme tulee sinun antaa sille nimi. Jos olet jo tallentanut sanakirjan, anna sen nimi ja klikkaa Palauta-painiketta","dic_rename":"Nimeä uudelleen","dic_restore":"Palauta","dictionariesTab":"Sanakirjat","disable":"Poista käytöstä oikoluku kirjoitetaessa","emptyDic":"Sanakirjan nimi on annettava.","enable":"Ota käyttöön oikoluku kirjoitettaessa","ignore":"Ohita","ignoreAll":"Ohita kaikki","ignoreDomainNames":"Ohita verkkotunnukset","langs":"Kielet","languagesTab":"Kielet","mixedCase":"Ohita sanat, joissa on sekoitettu isoja ja pieniä kirjaimia","mixedWithDigits":"Ohita sanat, joissa on numeroita","moreSuggestions":"Lisää ehdotuksia","opera_title":"Opera ei tue tätä ominaisuutta","options":"Asetukset","optionsTab":"Asetukset","title":"Oikolue kirjoitettaessa","toggle":"Vaihda oikoluku kirjoittaessa tilaa","noSuggestions":"No suggestion"},"stylescombo":{"label":"Ty
yli","panelTitle":"Muotoilujen tyylit","panelTitle1":"Lohkojen tyylit","panelTitle2":"Rivinsisäiset tyylit","panelTitle3":"Objektien tyylit"},"table":{"border":"Rajan paksuus","caption":"Otsikko","cell":{"menu":"Solu","insertBefore":"Lisää solu eteen","insertAfter":"Lisää solu perään","deleteCell":"Poista solut","merge":"Yhdistä solut","mergeRight":"Yhdistä oikealla olevan kanssa","mergeDown":"Yhdistä alla olevan kanssa","splitHorizontal":"Jaa solu vaakasuunnassa","splitVertical":"Jaa solu pystysuunnassa","title":"Solun ominaisuudet","cellType":"Solun tyyppi","rowSpan":"Rivin jatkuvuus","colSpan":"Solun jatkuvuus","wordWrap":"Rivitys","hAlign":"Horisontaali kohdistus","vAlign":"Vertikaali kohdistus","alignBaseline":"Alas (teksti)","bgColor":"Taustan väri","borderColor":"Reunan väri","data":"Data","header":"Ylätunniste","yes":"Kyllä","no":"Ei","invalidWidth":"Solun leveyden täytyy olla numero.","invalidHeight":"Solun korkeuden täytyy olla numero.","invalidRowS
pan":"Rivin jatkuvuuden täytyy olla kokonaisluku.","invalidColSpan":"Solun jatkuvuuden täytyy olla kokonaisluku.","chooseColor":"Valitse"},"cellPad":"Solujen sisennys","cellSpace":"Solujen väli","column":{"menu":"Sarake","insertBefore":"Lisää sarake vasemmalle","insertAfter":"Lisää sarake oikealle","deleteColumn":"Poista sarakkeet"},"columns":"Sarakkeet","deleteTable":"Poista taulu","headers":"Ylätunnisteet","headersBoth":"Molemmat","headersColumn":"Ensimmäinen sarake","headersNone":"Ei","headersRow":"Ensimmäinen rivi","invalidBorder":"Reunan koon täytyy olla numero.","invalidCellPadding":"Solujen sisennyksen täytyy olla numero.","invalidCellSpacing":"Solujen välin täytyy olla numero.","invalidCols":"Sarakkeiden määrän täytyy olla suurempi kuin 0.","invalidHeight":"Taulun korkeuden täytyy olla numero.","invalidRows":"Rivien määrän täytyy olla suurempi kuin 0.","invalidWidth":"Taulun leveyden täytyy olla numero.","menu":"Taulun ominaisuudet","row":{"me
nu":"Rivi","insertBefore":"Lisää rivi yläpuolelle","insertAfter":"Lisää rivi alapuolelle","deleteRow":"Poista rivit"},"rows":"Rivit","summary":"Yhteenveto","title":"Taulun ominaisuudet","toolbar":"Taulu","widthPc":"prosenttia","widthPx":"pikseliä","widthUnit":"leveysyksikkö"},"undo":{"redo":"Toista","undo":"Kumoa"},"wsc":{"btnIgnore":"Jätä huomioimatta","btnIgnoreAll":"Jätä kaikki huomioimatta","btnReplace":"Korvaa","btnReplaceAll":"Korvaa kaikki","btnUndo":"Kumoa","changeTo":"Vaihda","errorLoading":"Virhe ladattaessa oikolukupalvelua isännältä: %s.","ieSpellDownload":"Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?","manyChanges":"Tarkistus valmis: %1 sanaa muutettiin","noChanges":"Tarkistus valmis: Yhtään sanaa ei muutettu","noMispell":"Tarkistus valmis: Ei virheitä","noSuggestions":"Ei ehdotuksia","notAvailable":"Valitettavasti oikoluku ei ole käytössä tällä hetkellä.","notInDic":"Ei sanakirjassa","oneChange":"Tarkistus val
mis: Yksi sana muutettiin","progress":"Tarkistus käynnissä...","title":"Oikoluku","toolbar":"Tarkista oikeinkirjoitus"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/fo.js b/share/static/RichText/lang/fo.js
index b120944..7353427 100644
--- a/share/static/RichText/lang/fo.js
+++ b/share/static/RichText/lang/fo.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.fo={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Kelda',newPage:'Nýggj sÃða',save:'Goym',preview:'Frumsýning',cut:'Kvett',copy:'Avrita',paste:'Innrita',print:'Prenta',underline:'Undirstrikað',bold:'Feit skrift',italic:'Skráskrift',selectAll:'Markera alt',removeFormat:'Strika sniðgeving',strike:'Yvirstrikað',subscript:'Lækkað skrift',superscript:'Hækkað skrift',horizontalrule:'Ger vatnrætta linju',pagebreak:'Ger sÃðuskift',unlink:'Strika tilknýti',undo:'Angra',redo:'Vend aftur',common:{browseServer:'Ambætarakagi',url:'URL',protocol:'Protokoll',upload:'Send til ambætaran',uploadSubmit:'Send til ambætaran',image:'Myndir',flash:'Flash',form:'Formur',checkbox:'Flugubein',radio:'Radioknøttur',textField:'Tekstteigur',textarea:'Tekstumráði',hiddenField:'Fjaldur teigur',button:'Knøttur',select:'Valskrá',imageButton:'Myndaknøttur',notSet:'<ikki sett>',id:'Id',name:'Navn',l
angDir:'Tekstkós',langDirLtr:'Frá vinstru til høgru (LTR)',langDirRtl:'Frá høgru til vinstru (RTL)',langCode:'Málkoda',longDescr:'VÃðkað URL frágreiðing',cssClass:'Typografi klassar',advisoryTitle:'Vegleiðandi heiti',cssStyle:'Typografi',ok:'Góðkent',cancel:'Avlýst',close:'Lat aftur',preview:'Frumsýn',generalTab:'Generelt',advancedTab:'Fjølbroytt',validateNumberFailed:'Hetta er ikki eitt tal.',confirmNewPage:'Allar ikki goymdar broytingar à hesum innihaldi hvørva. Skal nýggj sÃða lesast kortini?',confirmCancel:'Nakrir valmøguleikar eru broyttir. Ert tú vÃsur Ã, at dialogurin skal latast aftur?',options:'Options',target:'Target',targetNew:'Nýtt vindeyga (_blank)',targetTop:'Vindeyga ovast (_top)',targetSelf:'Sama vindeyga (_self)',targetParent:'Upphavligt vindeyga (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, ikki tøkt</spa
n>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Set inn sertekn',title:'Vel sertekn',options:'Special Character Options'},link:{toolbar:'Ger/broyt tilknýti',other:'<other>',menu:'Broyt tilknýti',title:'Tilknýti',info:'Tilknýtis upplýsingar',target:'Target',upload:'Send til ambætaran',advanced:'Fjølbroytt',type:'Tilknýtisslag',toUrl:'URL',toAnchor:'Tilknýti til marknastein à tekstinum',toEmail:'Teldupostur',targetFrame:'<ramma>',targetPopup:'<popup vindeyga>',targetFrameName:'VÃs navn vindeygans',targetPopupName:'Popup vindeygans navn',popupFeatures:'Popup vindeygans vÃðkaðu eginleikar',popupResizable:'Resizable',popupStatusBar:'Støðufrágreiðingarbjálki',popupLocationBar:'Adressulinja',popupToolbar:'Amboðsbjálki',popupMenuBar:'Skrábjálki',popupFullScreen:'Fullur skermur (IE)',popupScrollBars:'Rullibjálki',popupDependent:'Bundið (Netscape)',popupWidth:'Breidd',popupLeft:'Frástøða frá vinstru',popupHeight:'Hædd',popupTop:'Fr
ástøða frá Ãerva',id:'Id',langDir:'Tekstkós',langDirLTR:'Frá vinstru til høgru (LTR)',langDirRTL:'Frá høgru til vinstru (RTL)',acccessKey:'Snarvegisknappur',name:'Navn',langCode:'Tekstkós',tabIndex:'Inntriv indeks',advisoryTitle:'Vegleiðandi heiti',advisoryContentType:'Vegleiðandi innihaldsslag',cssClasses:'Typografi klassar',charset:'Atknýtt teknsett',styles:'Typografi',selectAnchor:'Vel ein marknastein',anchorName:'Eftir navni á marknasteini',anchorId:'Eftir element Id',emailAddress:'Teldupost-adressa',emailSubject:'Evni',emailBody:'Breyðtekstur',noAnchors:'(Eingir marknasteinar eru à hesum dokumentið)',noUrl:'Vinarliga skriva tilknýti (URL)',noEmail:'Vinarliga skriva teldupost-adressu'},anchor:{toolbar:'Ger/broyt marknastein',menu:'Eginleikar fyri marknastein',title:'Eginleikar fyri marknastein',name:'Heiti marknasteinsins',errorName:'Vinarliga rita marknasteinsins heiti'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Prope
rties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Finn og broyt',find:'Leita',replace:'Yvirskriva',findWhat:'Finn:',replaceWith:'Yvirskriva við:',notFoundMsg:'Leititeksturin varð ikki funnin',matchCase:'Munur á stórum og smáum bókstavum',matchWord:'Bert heil orð',matchCyclic:'Match cyclic',replaceAll:'Yvirskriva alt',replaceSuccessMsg:'%1 úrslit broytt.'},table:{toolbar:'Tabell',title:'Eginleikar fyri tabell
',menu:'Eginleikar fyri tabell',deleteTable:'Strika tabell',rows:'Røðir',columns:'Kolonnur',border:'Bordabreidd',align:'Justering',alignLeft:'Vinstrasett',alignCenter:'Miðsett',alignRight:'Høgrasett',width:'Breidd',widthPx:'pixels',widthPc:'prosent',widthUnit:'breiddar unit',height:'Hædd',cellSpace:'Fjarstøða millum meskar',cellPad:'Meskubreddi',caption:'Tabellfrágreiðing',summary:'Samandráttur',headers:'Headers',headersNone:'Eingin',headersColumn:'Fyrsta kolonna',headersRow:'Fyrsta rað',headersBoth:'Báðir',invalidRows:'Talið av røðum má vera eitt tal størri enn 0.',invalidCols:'Talið av kolonnum má vera eitt tal størri enn 0.',invalidBorder:'Borda-stødd má vera eitt tal.',invalidWidth:'Tabell-breidd má vera eitt tal.',invalidHeight:'Tabell-hædd má vera eitt tal.',invalidCellSpacing:'Cell spacing má vera eitt tal.',invalidCellPadding:'Cell padding má vera eitt tal.',cell:{menu:'Meski',insertBefore:'Set meska inn áðrenn',insertAfter:'Set meska in
n aftaná',deleteCell:'Strika meskar',merge:'Flætta meskar',mergeRight:'Flætta meskar til høgru',mergeDown:'Flætta saman',splitHorizontal:'Kloyv meska vatnrætt',splitVertical:'Kloyv meska loddrætt',title:'Mesku eginleikar',cellType:'Mesku slag',rowSpan:'Ræð spenni',colSpan:'Kolonnu spenni',wordWrap:'Word Wrap',hAlign:'Horisontal plasering',vAlign:'Loddrøtt plasering',alignTop:'Top',alignMiddle:'Miðja',alignBottom:'Botnur',alignBaseline:'Basislinja',bgColor:'Bakgrundslitur',borderColor:'Bordalitur',data:'Data',header:'Header',yes:'Ja',no:'Nei',invalidWidth:'Meskubreidd má vera eitt tal.',invalidHeight:'Meskuhædd má vera eitt tal.',invalidRowSpan:'Raðspennið má vera eitt heiltal.',invalidColSpan:'Kolonnuspennið má vera eitt heiltal.',chooseColor:'Vel'},row:{menu:'Rað',insertBefore:'Set rað inn áðrenn',insertAfter:'Set rað inn aftaná',deleteRow:'Strika røðir'},column:{menu:'Kolonna',insertBefore:'Set kolonnu inn áðrenn',insertAfter:'Set kolonnu inn a
ftaná',deleteColumn:'Strika kolonnur'}},button:{title:'Eginleikar fyri knøtt',text:'Tekstur',type:'Slag',typeBtn:'Knøttur',typeSbm:'Send',typeRst:'Nullstilla'},checkboxAndRadio:{checkboxTitle:'Eginleikar fyri flugubein',radioTitle:'Eginleikar fyri radioknøtt',value:'Virði',selected:'Valt'},form:{title:'Eginleikar fyri Form',menu:'Eginleikar fyri Form',action:'Hending',method:'Háttur',encoding:'Encoding'},select:{title:'Eginleikar fyri valskrá',selectInfo:'Upplýsingar',opAvail:'Tøkir møguleikar',value:'Virði',size:'Stødd',lines:'Linjur',chkMulti:'Loyv fleiri valmøguleikum samstundis',opText:'Tekstur',opValue:'Virði',btnAdd:'Legg afturat',btnModify:'Broyt',btnUp:'Upp',btnDown:'Niður',btnSetValue:'Set sum valt virði',btnDelete:'Strika'},textarea:{title:'Eginleikar fyri tekstumráði',cols:'kolonnur',rows:'røðir'},textfield:{title:'Eginleikar fyri tekstteig',name:'Navn',value:'Virði',charWidth:'Breidd (sjónlig tekn)',maxChars:'Mest loyvdu tekn',type:'Slag',ty
peText:'Tekstur',typePass:'Loyniorð'},hidden:{title:'Eginleikar fyri fjaldan teig',name:'Navn',value:'Virði'},image:{title:'Myndaeginleikar',titleButton:'Eginleikar fyri myndaknøtt',menu:'Myndaeginleikar',infoTab:'Myndaupplýsingar',btnUpload:'Send til ambætaran',upload:'Send',alt:'Alternativur tekstur',width:'Breidd',height:'Hædd',lockRatio:'Læs lutfallið',unlockRatio:'Lutfallið ikki læst',resetSize:'Upprunastødd',border:'Bordi',hSpace:'Høgri breddi',vSpace:'Vinstri breddi',align:'Justering',alignLeft:'Vinstra',alignRight:'Høgra',alertUrl:'Rita slóðina til myndina',linkTab:'Tilknýti',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'URL til mynd manglar.',validateWidth:'Breidd má vera eitt heiltal.',validateHeight:'Hædd má vera eitt heiltal.',validateBorder:'Bordi má vera eitt heiltal.',validateHSpace:'HSpace má vera eitt heiltal.',val
idateVSpace:'VSpace má vera eitt heiltal.'},flash:{properties:'Flash eginleikar',propertiesTab:'Eginleikar',title:'Flash eginleikar',chkPlay:'Avspælingin byrjar sjálv',chkLoop:'Endurspæl',chkMenu:'Ger Flash skrá virkna',chkFull:'Loyv fullan skerm',scale:'Skalering',scaleAll:'VÃs alt',scaleNoBorder:'Eingin bordi',scaleFit:'Neyv skalering',access:'Script atgongd',accessAlways:'AltÃð',accessSameDomain:'Sama navnaøki',accessNever:'OngantÃð',align:'Justering',alignLeft:'Vinstra',alignAbsBottom:'Abs botnur',alignAbsMiddle:'Abs miðja',alignBaseline:'Basislinja',alignBottom:'Botnur',alignMiddle:'Miðja',alignRight:'Høgra',alignTextTop:'Tekst toppur',alignTop:'Ovast',quality:'Góðska',qualityBest:'Besta',qualityHigh:'Høg',qualityAutoHigh:'Auto høg',qualityMedium:'Meðal',qualityAutoLow:'Auto Lág',qualityLow:'Lág',windowModeWindow:'Window',windowModeOpaque:'Ikki transparent',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variablar fyri Flash'
,bgcolor:'Bakgrundslitur',width:'Breidd',height:'Hædd',hSpace:'Høgri breddi',vSpace:'Vinstri breddi',validateSrc:'Vinarliga skriva tilknýti (URL)',validateWidth:'Breidd má vera eitt tal.',validateHeight:'Hædd má vera eitt tal.',validateHSpace:'HSpace má vera eitt tal.',validateVSpace:'VSpace má vera eitt tal.'},spellCheck:{toolbar:'Kanna stavseting',title:'Kanna stavseting',notAvailable:'TÃverri, ikki tøkt à løtuni.',errorLoading:'Feilur við innlesing av application service host: %s.',notInDic:'Finst ikki à orðabókini',changeTo:'Broyt til',btnIgnore:'Forfjóna',btnIgnoreAll:'Forfjóna alt',btnReplace:'Yvirskriva',btnReplaceAll:'Yvirskriva alt',btnUndo:'Angra',noSuggestions:'- Einki uppskot -',progress:'Rættstavarin arbeiðir...',noMispell:'Rættstavarain liðugur: Eingin feilur funnin',noChanges:'Rættstavarain liðugur: Einki orð varð broytt',oneChange:'Rættstavarain liðugur: Eitt orð er broytt',manyChanges:'Rættstavarain liðugur: %1 orð broytt',ieS
pellDownload:'Rættstavarin er ikki tøkur à tekstviðgeranum. Vilt tú heinta hann nú?'},smiley:{toolbar:'Smiley',title:'Vel Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Slóð til elementir',eleTitle:'%1 element'},numberedlist:'Talmerktur listi',bulletedlist:'Punktmerktur listi',indent:'Ãkja reglubrotarinntriv',outdent:'Minka reglubrotarinntriv',justify:{left:'Vinstrasett',center:'Miðsett',right:'Høgrasett',block:'Javnir tekstkantar'},blockquote:'Blockquote',clipboard:{title:'Innrita',cutError:'Trygdaruppseting alnótskagans forðar tekstviðgeranum à at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).',copyError:'Trygdaruppseting alnótskagans forðar tekstviðgeranum à at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).',pasteMsg:'Vinarliga koyr tekstin à hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.',securityMsg:'Trygdaruppseti
ng alnótskagans forðar tekstviðgeranum à beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur à hesum rútinum.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?',toolbar:'Innrita frá Word',title:'Innrita frá Word',error:'Tað eyðnaðist ikki at reinsa tekstin vegna ein internan feil'},pasteText:{button:'Innrita som reinan tekst',title:'Innrita som reinan tekst'},templates:{button:'Skabelónir',title:'Innihaldsskabelónir',options:'Template Options',insertOption:'Yvirskriva núverandi innihald',selectPromptMsg:'Vinarliga vel ta skabelón, ið skal opnast à tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):',emptyListMsg:'(Ongar skabelónir tøkar)'},showBlocks:'VÃs blokkar',stylesCombo:{label:'Typografi',panelTitle:'Formatterings stÃlir',panelTitle1:'Blokk stÃlir',panelTitle2:'Inline stÃlir',panelTitle3:'Object stÃlir'},format:{label:'Skrif
tsnið',panelTitle:'Skriftsnið',tag_p:'Vanligt',tag_pre:'Sniðgivið',tag_address:'Adressa',tag_h1:'Yvirskrift 1',tag_h2:'Yvirskrift 2',tag_h3:'Yvirskrift 3',tag_h4:'Yvirskrift 4',tag_h5:'Yvirskrift 5',tag_h6:'Yvirskrift 6',tag_div:'Normal (DIV)'},div:{title:'Ger Div Container',toolbar:'Ger Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Vinstru til høgru (LTR)',langDirRTLLabel:'Høgru til vinstru (RTL)',edit:'Redigera Div',remove:'Strika Div'},font:{label:'Skrift',voiceLabel:'Font',panelTitle:'Skrift'},fontSize:{label:'Skriftstødd',voiceLabel:'Font Size',panelTitle:'Skriftstødd'},colorButton:{textColorTitle:'Tekstlitur',bgColorTitle:'Bakgrundslitur',panelTitle:'Colors',auto:'Automatiskt',more:'Fleiri litir...'},colors:{'000':'Black',800000:'Maroon','8B451
3':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Kanna stavseting, meðan tú skrivar',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'Um SCAYT',toggle:'Toggle SCAYT',options:'Uppseting',langs:'Tungumál',moreSuggestions:'Fleiri tilráðingar',ignore:'Ignorera',ignoreAll:'Ignorera alt',addWord
:'Legg orð afturat',emptyDic:'Heiti á orðabók eigur ikki at vera tómt.',optionsTab:'Uppseting',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Tungumál',dictionariesTab:'Orðabøkur',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Um'},about:{title:'Um CKEditor',dlgTitle:'Um CKEditor',moreInfo:'Licens upplýsingar finnast á heimasÃðu okkara:',copy:'Copyright
© $1. All rights reserved.'},maximize:'Maksimera',minimize:'Minimera',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'SÃðuskift',unknown:'Ãkent Object'},resize:'Drag fyri at broyta stødd',colordialog:{title:'Vel lit',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['fo']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Trýst ALT og 0 fyri vegleiðing","browseServer":"Ambætarakagi","url":"URL","protocol":"Protokoll","upload":"Send til ambætaran","uploadSubmit":"Send til ambætaran","image":"Myndir","flash":"Flash","form":"Formur","checkbox":"Flugubein","radio":"Radioknøttur","textField":"Tekstteigur","textarea":"Tekstumráði","hiddenField":"Fjaldur teigur","button":"Knøttur","select":"Valskrá","imageButton":"Myndaknøttur","notSet":"<ikki sett>","id":"Id","name":"Navn","langDir":"Tekstkós","langDirLtr":"Frá vinstru til høgru (LTR)","langDirRtl":"Frá høgru til vinstru (RTL)","langCode":"Málkoda","longDescr":"VÃðkað URL frágreiðing","cssClass":"Typografi klassar","advisoryTitle":"Vegleiðandi heiti","cssStyle":"Typografi","ok":"Góðkent","cancel":"Avlýst","close":"Lat aftur","preview":"Frumsýn","resize":"Drag fyri at broyta stødd","generalTab":"Generelt","advancedTab":"Fjølbroytt","vali
dateNumberFailed":"Hetta er ikki eitt tal.","confirmNewPage":"Allar ikki goymdar broytingar à hesum innihaldið hvørva. Skal nýggj sÃða lesast kortini?","confirmCancel":"Nakrir valmøguleikar eru broyttir. Ert tú vÃsur Ã, at dialogurin skal latast aftur?","options":"Options","target":"Target","targetNew":"Nýtt vindeyga (_blank)","targetTop":"Vindeyga ovast (_top)","targetSelf":"Sama vindeyga (_self)","targetParent":"Upphavligt vindeyga (_parent)","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Breidd","height":"Hædd","align":"Justering","alignLeft":"Vinstra","alignRight":"Høgra","alignCenter":"Miðsett","alignTop":"Ovast","alignMiddle":"Miðja","alignBottom":"Botnur","invalidValue":"Invalid value.","invalidHeight":"Hædd má vera eitt tal.","invalidWidth":"Breidd má vera eitt tal.","invalidCssLength":"Virðið sett à \"%1\" feltið má vera eitt positivt tal, vi
ð ella uttan gyldugum CSS mátieind (px, %, in, cm, mm, em, ex, pt, ella pc).","invalidHtmlLength":"Virðið sett à \"%1\" feltiðield má vera eitt positivt tal, við ella uttan gyldugum CSS mátieind (px ella %).","invalidInlineStyle":"Virði specifiserað fyri inline style má hava eitt ella fleiri pør (tuples) skrivað sum \"name : value\", hvørt parið sundurskilt við semi-colon.","cssLengthTooltip":"Skriva eitt tal fyri eitt virði à pixels ella eitt tal við gyldigum CSS eind (px, %, in, cm, mm, em, ex, pt, ella pc).","unavailable":"%1<span class=\"cke_accessibility\">, ikki tøkt</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"Um CKEditor","help":"Kekka $1 fyri hjálp.","moreInfo":"Licens upplýsingar finnast á heimasÃðu okkara:","title":"Um CKEditor","userGuide":"CKEditor Brúkaravegleiðing"},"basicstyles":{"bold":"Feit skrift","italic":"Skráskrift","strike":"Yvirstrikað","subscript":"Lækkað skrift","superscript":"Hækk
að skrift","underline":"Undirstrikað"},"bidi":{"ltr":"Tekstkós frá vinstru til høgru","rtl":"Tekstkós frá høgru til vinstru"},"blockquote":{"toolbar":"Blockquote"},"clipboard":{"copy":"Avrita","copyError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum à at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (Ctrl/Cmd+C).","cut":"Kvett","cutError":"Trygdaruppseting alnótskagans forðar tekstviðgeranum à at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (Ctrl/Cmd+X).","paste":"Innrita","pasteArea":"Avritingarumráði","pasteMsg":"Vinarliga koyr tekstin à hendan rútin við knappaborðinum (<strong>Ctrl/Cmd+V</strong>) og klikk á <strong>Góðtak</strong>.","securityMsg":"Trygdaruppseting alnótskagans forðar tekstviðgeranum à beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur à hesum rútinum.","title":"Innrita"},"colorbutton":{"auto":"Automatiskt","bgColorTitle":"Bakgrundslitur","colors":{"000":"S
vart","800000":"Maroon","8B4513":"Saðilsbrúnt","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Myrkagrátt","B22222":"Fire Brick","A52A2A":"Brúnt","DAA520":"Gullstavur","006400":"Myrkagrønt","40E0D0":"Turquoise","0000CD":"Meðal blátt","800080":"Purple","808080":"Grátt","F00":"Reytt","FF8C00":"Myrkt appelsingult","FFD700":"Gull","008000":"Grønt","0FF":"Cyan","00F":"Blátt","EE82EE":"Violet","A9A9A9":"Døkt grátt","FFA07A":"Ljósur laksur","FFA500":"Appelsingult","FFFF00":"Gult","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Ljósablátt","DDA0DD":"Plum","D3D3D3":"Ljósagrátt","FFF0F5":"Lavender Blush","FAEBD7":"Klassiskt hvÃtt","FFFFE0":"Ljósagult","F0FFF0":"Hunangsdøggur","F0FFFF":"Azure","F0F8FF":"Alice Blátt","E6E6FA":"Lavender","FFF":"HvÃtt"},"more":"Fleiri litir...","panelTitle":"Litir","textColorTitle":"Tekstlitur"},"colordialog":{"clear":"Strika","highlight":"Framheva","options":"Litmøguleikar","selected":"Val
dur litur","title":"Vel lit"},"templates":{"button":"Skabelónir","emptyListMsg":"(Ongar skabelónir tøkar)","insertOption":"Yvirskriva núverandi innihald","options":"Møguleikar fyri Template","selectPromptMsg":"Vinarliga vel ta skabelón, ið skal opnast à tekstviðgeranum<br>(Hetta yvirskrivar núverandi innihald):","title":"Innihaldsskabelónir"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Redigera Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Vinstru til høgru (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Høgru til vinstru (RTL)","languageCodeInputLabel":" Language Code","remove":"Strika Div","styleSelectLabel":"Style","title":"Ger Div Container","toolbar":"Ger Div Container"},"toolbar":{"toolbarCollapse":"Lat Toolbar aftur","toolbarExpand":"VÃs Toolbar","toolbarGroups":{"document":"Dokument","clipboard":"Cli
pboard/Undo","editing":"Editering","forms":"Formar","basicstyles":"Grundleggjandi Styles","paragraph":"Reglubrot","links":"Leinkjur","insert":"Set inn","styles":"Styles","colors":"Litir","tools":"Tól"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Slóð til elementir","eleTitle":"%1 element"},"list":{"bulletedlist":"Punktmerktur listi","numberedlist":"Talmerktur listi"},"indent":{"indent":"Ãkja reglubrotarinntriv","outdent":"Minka reglubrotarinntriv"},"find":{"find":"Leita","findOptions":"Finn møguleikar","findWhat":"Finn:","matchCase":"Munur á stórum og smáum bókstavum","matchCyclic":"Match cyclic","matchWord":"Bert heil orð","notFoundMsg":"Leititeksturin varð ikki funnin","replace":"Yvirskriva","replaceAll":"Yvirskriva alt","replaceSuccessMsg":"%1 úrslit broytt.","replaceWith":"Yvirskriva við:","title":"Finn og broyt"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Fjaldur teigur","iframe":"IFrame","unknown":"Ãkent Object
"},"flash":{"access":"Script atgongd","accessAlways":"AltÃð","accessNever":"OngantÃð","accessSameDomain":"Sama navnaøki","alignAbsBottom":"Abs botnur","alignAbsMiddle":"Abs miðja","alignBaseline":"Basislinja","alignTextTop":"Tekst toppur","bgcolor":"Bakgrundslitur","chkFull":"Loyv fullan skerm","chkLoop":"Endurspæl","chkMenu":"Ger Flash skrá virkna","chkPlay":"Avspælingin byrjar sjálv","flashvars":"Variablar fyri Flash","hSpace":"Høgri breddi","properties":"Flash eginleikar","propertiesTab":"Eginleikar","quality":"Góðska","qualityAutoHigh":"Auto høg","qualityAutoLow":"Auto Lág","qualityBest":"Besta","qualityHigh":"Høg","qualityLow":"Lág","qualityMedium":"Meðal","scale":"Skalering","scaleAll":"VÃs alt","scaleFit":"Neyv skalering","scaleNoBorder":"Eingin bordi","title":"Flash eginleikar","vSpace":"Vinstri breddi","validateHSpace":"HSpace má vera eitt tal.","validateSrc":"Vinarliga skriva tilknýti (URL)","validateVSpace":"VSpace má vera eitt tal.","windowM
ode":"Slag av rúti","windowModeOpaque":"Ikki transparent","windowModeTransparent":"Transparent","windowModeWindow":"Rútur"},"font":{"fontSize":{"label":"Skriftstødd","voiceLabel":"Skriftstødd","panelTitle":"Skriftstødd"},"label":"Skrift","panelTitle":"Skrift","voiceLabel":"Skrift"},"forms":{"button":{"title":"Eginleikar fyri knøtt","text":"Tekstur","type":"Slag","typeBtn":"Knøttur","typeSbm":"Send","typeRst":"Nullstilla"},"checkboxAndRadio":{"checkboxTitle":"Eginleikar fyri flugubein","radioTitle":"Eginleikar fyri radioknøtt","value":"Virði","selected":"Valt"},"form":{"title":"Eginleikar fyri Form","menu":"Eginleikar fyri Form","action":"Hending","method":"Háttur","encoding":"Encoding"},"hidden":{"title":"Eginleikar fyri fjaldan teig","name":"Navn","value":"Virði"},"select":{"title":"Eginleikar fyri valskrá","selectInfo":"Upplýsingar","opAvail":"Tøkir møguleikar","value":"Virði","size":"Stødd","lines":"Linjur","chkMulti":"Loyv fleiri valmøguleikum samstundi
s","opText":"Tekstur","opValue":"Virði","btnAdd":"Legg afturat","btnModify":"Broyt","btnUp":"Upp","btnDown":"Niður","btnSetValue":"Set sum valt virði","btnDelete":"Strika"},"textarea":{"title":"Eginleikar fyri tekstumráði","cols":"kolonnur","rows":"røðir"},"textfield":{"title":"Eginleikar fyri tekstteig","name":"Navn","value":"Virði","charWidth":"Breidd (sjónlig tekn)","maxChars":"Mest loyvdu tekn","type":"Slag","typeText":"Tekstur","typePass":"Loyniorð","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Skriftsnið","panelTitle":"Skriftsnið","tag_address":"Adressa","tag_div":"Vanligt (DIV)","tag_h1":"Yvirskrift 1","tag_h2":"Yvirskrift 2","tag_h3":"Yvirskrift 3","tag_h4":"Yvirskrift 4","tag_h5":"Yvirskrift 5","tag_h6":"Yvirskrift 6","tag_p":"Vanligt","tag_pre":"Sniðgivið"},"horizontalrule":{"toolbar":"Ger vatnrætta linju"},"iframe":{"border":"VÃs frame kant","noUrl":"Vinarliga skriva URL til iframe","scr
olling":"Loyv scrollbars","title":"Møguleikar fyri IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Rita slóðina til myndina","alt":"Alternativur tekstur","border":"Bordi","btnUpload":"Send til ambætaran","button2Img":"Skal valdi myndaknøttur gerast til vanliga mynd?","hSpace":"Høgri breddi","img2Button":"Skal valda mynd gerast til myndaknøtt?","infoTab":"Myndaupplýsingar","linkTab":"Tilknýti","lockRatio":"Læs lutfallið","menu":"Myndaeginleikar","resetSize":"Upprunastødd","title":"Myndaeginleikar","titleButton":"Eginleikar fyri myndaknøtt","upload":"Send","urlMissing":"URL til mynd manglar.","vSpace":"Vinstri breddi","validateBorder":"Bordi má vera eitt heiltal.","validateHSpace":"HSpace má vera eitt heiltal.","validateVSpace":"VSpace má vera eitt heiltal."},"smiley":{"options":"Møguleikar fyri Smiley","title":"Vel Smiley","toolbar":"Smiley"},"justify":{"block":"Javnir tekstkantar","center":"Miðsett","left":"Vinstrasett","right":"Høgrasett"},"link":{"accce
ssKey":"Snarvegisknöttur","advanced":"Fjølbroytt","advisoryContentType":"Vegleiðandi innihaldsslag","advisoryTitle":"Vegleiðandi heiti","anchor":{"toolbar":"Ger/broyt marknastein","menu":"Eginleikar fyri marknastein","title":"Eginleikar fyri marknastein","name":"Heiti marknasteinsins","errorName":"Vinarliga rita marknasteinsins heiti","remove":"Strika marknastein"},"anchorId":"Eftir element Id","anchorName":"Eftir navni á marknasteini","charset":"Atknýtt teknsett","cssClasses":"Typografi klassar","emailAddress":"Teldupost-adressa","emailBody":"Breyðtekstur","emailSubject":"Evni","id":"Id","info":"Tilknýtis upplýsingar","langCode":"Tekstkós","langDir":"Tekstkós","langDirLTR":"Frá vinstru til høgru (LTR)","langDirRTL":"Frá høgru til vinstru (RTL)","menu":"Broyt tilknýti","name":"Navn","noAnchors":"(Eingir marknasteinar eru à hesum dokumentið)","noEmail":"Vinarliga skriva teldupost-adressu","noUrl":"Vinarliga skriva tilknýti (URL)","other":"<annað>","popupDe
pendent":"Bundið (Netscape)","popupFeatures":"Popup vindeygans vÃðkaðu eginleikar","popupFullScreen":"Fullur skermur (IE)","popupLeft":"Frástøða frá vinstru","popupLocationBar":"Adressulinja","popupMenuBar":"Skrábjálki","popupResizable":"Stødd kann broytast","popupScrollBars":"Rullibjálki","popupStatusBar":"Støðufrágreiðingarbjálki","popupToolbar":"Amboðsbjálki","popupTop":"Frástøða frá Ãerva","rel":"Relatión","selectAnchor":"Vel ein marknastein","styles":"Typografi","tabIndex":"Tabulator indeks","target":"Target","targetFrame":"<ramma>","targetFrameName":"VÃs navn vindeygans","targetPopup":"<popup vindeyga>","targetPopupName":"Popup vindeygans navn","title":"Tilknýti","toAnchor":"Tilknýti til marknastein à tekstinum","toEmail":"Teldupostur","toUrl":"URL","toolbar":"Ger/broyt tilknýti","type":"Tilknýtisslag","unlink":"Strika tilknýti","upload":"Send til ambætaran"},"liststyle":{"armenian":"Armensk talskipan","bulletedTitle":"Eginleikar fyri l
ista við prikkum","circle":"Sirkul","decimal":"Vanlig tøl (1, 2, 3, etc.)","decimalLeadingZero":"Tøl við null frammanfyri (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgisk talskipan (an, ban, gan, osv.)","lowerAlpha":"LÃtlir bókstavir (a, b, c, d, e, etc.)","lowerGreek":"Grikskt við lÃtlum (alpha, beta, gamma, etc.)","lowerRoman":"LÃtil rómaratøl (i, ii, iii, iv, v, etc.)","none":"Einki","notset":"<ikki sett>","numberedTitle":"Eginleikar fyri lista við tølum","square":"Fýrkantur","start":"Byrjan","type":"Slag","upperAlpha":"Stórir bókstavir (A, B, C, D, E, etc.)","upperRoman":"Stór rómaratøl (I, II, III, IV, V, etc.)","validateStartNumber":"Byrjunartalið fyri lista má vera eitt heiltal."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimera","minimize":"Minimera"},"newpage":{"toolbar":"Nýggj sÃða"},"pagebreak":{"alt":"SÃðuskift","toolbar":"Ger sÃðuskift"},"pastetext":{"button":"Innrita som reinan tekst","title":"Inn
rita som reinan tekst"},"pastefromword":{"confirmCleanup":"Teksturin, tú roynir at seta inn, sýnist at stava frá Word. Skal teksturin reinsast fyrst?","error":"Tað eydnaðist ikki at reinsa tekstin vegna ein internan feil","title":"Innrita frá Word","toolbar":"Innrita frá Word"},"preview":{"preview":"Frumsýning"},"print":{"toolbar":"Prenta"},"removeformat":{"toolbar":"Strika sniðgeving"},"save":{"toolbar":"Goym"},"selectall":{"toolbar":"Markera alt"},"showblocks":{"toolbar":"VÃs blokkar"},"sourcearea":{"toolbar":"Kelda"},"specialchar":{"options":"Møguleikar við serteknum","title":"Vel sertekn","toolbar":"Set inn sertekn"},"scayt":{"about":"Um SCAYT","aboutTab":"Um","addWord":"Legg orð afturat","allCaps":"Loyp orð við bert stórum stavum um","dic_create":"Upprætta nýggja","dic_delete":"Strika","dic_field_name":"Orðabókanavn","dic_info":"Upprunaliga er brúkara-orðabókin goymd à eini cookie à tÃnum egna kaga. Men hesar cookies eru avmarkaðar à stødd.
Tá brúkara-orðabókin veksur seg ov stóra til eina cookie, so er møguligt at goyma hana á ambætara okkara. Fyri at goyma persónligu orðabókina á ambætaranum eigur tú at velja eitt navn til tÃna skuffu. Hevur tú longu goymt eina orðabók, so vinarliga skriva navnið og klikk á knøttin Endurskapa.","dic_rename":"Broyt","dic_restore":"Endurskapa","dictionariesTab":"Orðabøkur","disable":"Nokta SCAYT","emptyDic":"Heiti á orðabók eigur ikki at vera tómt.","enable":"Loyv SCAYT","ignore":"Ignorera","ignoreAll":"Ignorera alt","ignoreDomainNames":"loyp økisnøvn um","langs":"Tungumál","languagesTab":"Tungumál","mixedCase":"Loyp orð við blandaðum smáum og stórum stavum um","mixedWithDigits":"Loyp orð við tølum um","moreSuggestions":"Fleiri tilráðingar","opera_title":"Ikki stuðlað à Opera","options":"Uppseting","optionsTab":"Uppseting","title":"Kanna stavseting, meðan tú skrivar","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylesco
mbo":{"label":"Typografi","panelTitle":"Formatterings stÃlir","panelTitle1":"Blokk stÃlir","panelTitle2":"Inline stÃlir","panelTitle3":"Object stÃlir"},"table":{"border":"Bordabreidd","caption":"Tabellfrágreiðing","cell":{"menu":"Meski","insertBefore":"Set meska inn áðrenn","insertAfter":"Set meska inn aftaná","deleteCell":"Strika meskar","merge":"Flætta meskar","mergeRight":"Flætta meskar til høgru","mergeDown":"Flætta saman","splitHorizontal":"Kloyv meska vatnrætt","splitVertical":"Kloyv meska loddrætt","title":"Mesku eginleikar","cellType":"Mesku slag","rowSpan":"Ræð spenni","colSpan":"Kolonnu spenni","wordWrap":"Orðkloyving","hAlign":"Horisontal plasering","vAlign":"Loddrøtt plasering","alignBaseline":"Basislinja","bgColor":"Bakgrundslitur","borderColor":"Bordalitur","data":"Data","header":"Header","yes":"Ja","no":"Nei","invalidWidth":"Meskubreidd má vera eitt tal.","invalidHeight":"Meskuhædd má vera eitt tal.","invalidRowSpan":"Raðspennið má ver
a eitt heiltal.","invalidColSpan":"Kolonnuspennið má vera eitt heiltal.","chooseColor":"Vel"},"cellPad":"Meskubreddi","cellSpace":"Fjarstøða millum meskar","column":{"menu":"Kolonna","insertBefore":"Set kolonnu inn áðrenn","insertAfter":"Set kolonnu inn aftaná","deleteColumn":"Strika kolonnur"},"columns":"Kolonnur","deleteTable":"Strika tabell","headers":"Yvirskriftir","headersBoth":"Báðir","headersColumn":"Fyrsta kolonna","headersNone":"Eingin","headersRow":"Fyrsta rað","invalidBorder":"Borda-stødd má vera eitt tal.","invalidCellPadding":"Cell padding má vera eitt tal.","invalidCellSpacing":"Cell spacing má vera eitt tal.","invalidCols":"Talið av kolonnum má vera eitt tal størri enn 0.","invalidHeight":"Tabell-hædd má vera eitt tal.","invalidRows":"Talið av røðum má vera eitt tal størri enn 0.","invalidWidth":"Tabell-breidd má vera eitt tal.","menu":"Eginleikar fyri tabell","row":{"menu":"Rað","insertBefore":"Set rað inn áðrenn","insertAfter":"S
et rað inn aftaná","deleteRow":"Strika røðir"},"rows":"Røðir","summary":"Samandráttur","title":"Eginleikar fyri tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"pixels","widthUnit":"breiddar unit"},"undo":{"redo":"Vend aftur","undo":"Angra"},"wsc":{"btnIgnore":"Forfjóna","btnIgnoreAll":"Forfjóna alt","btnReplace":"Yvirskriva","btnReplaceAll":"Yvirskriva alt","btnUndo":"Angra","changeTo":"Broyt til","errorLoading":"Feilur við innlesing av application service host: %s.","ieSpellDownload":"Rættstavarin er ikki tøkur à tekstviðgeranum. Vilt tú heinta hann nú?","manyChanges":"Rættstavarin liðugur: %1 orð broytt","noChanges":"Rættstavarin liðugur: Einki orð varð broytt","noMispell":"Rættstavarin liðugur: Eingin feilur funnin","noSuggestions":"- Einki uppskot -","notAvailable":"TÃverri, ikki tøkt à løtuni.","notInDic":"Finst ikki à orðabókini","oneChange":"Rættstavarin liðugur: Eitt orð er broytt","progress":"Rættstavarin arbeiðir...","
title":"Kanna stavseting","toolbar":"Kanna stavseting"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/fr-ca.js b/share/static/RichText/lang/fr-ca.js
index 27130fc..1b30994 100644
--- a/share/static/RichText/lang/fr-ca.js
+++ b/share/static/RichText/lang/fr-ca.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['fr-ca']={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'Nouvelle page',save:'Sauvegarder',preview:'Previsualiser',cut:'Couper',copy:'Copier',paste:'Coller',print:'Imprimer',underline:'Souligné',bold:'Gras',italic:'Italique',selectAll:'Tout sélectionner',removeFormat:'Supprimer le formatage',strike:'Barrer',subscript:'Indice',superscript:'Exposant',horizontalrule:'Insérer un séparateur',pagebreak:'Insérer un saut de page',unlink:'Supprimer le lien',undo:'Annuler',redo:'Refaire',common:{browseServer:'Parcourir le serveur',url:'URL',protocol:'Protocole',upload:'Télécharger',uploadSubmit:'Envoyer sur le serveur',image:'Image',flash:'Animation Flash',form:'Formulaire',checkbox:'Case à cocher',radio:'Bouton radio',textField:'Champ texte',textarea:'Zone de texte',hiddenField:'Champ caché',button:'Bouton',select:'Champ de sélection',imageButton:'Bouton image',notSet:'<P
ar défaut>',id:'Id',name:'Nom',langDir:"Sens d'écriture",langDirLtr:'De gauche à droite (LTR)',langDirRtl:'De droite à gauche (RTL)',langCode:'Code langue',longDescr:'URL de description longue',cssClass:'Classes de feuilles de style',advisoryTitle:'Titre',cssStyle:'Style',ok:'OK',cancel:'Annuler',close:'Close',preview:'Preview',generalTab:'Général',advancedTab:'Avancée',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},context
menu:{options:'Context Menu Options'},specialChar:{toolbar:'Insérer un caractère spécial',title:'Insérer un caractère spécial',options:'Special Character Options'},link:{toolbar:'Insérer/modifier le lien',other:'<other>',menu:'Modifier le lien',title:'Propriétés du lien',info:'Informations sur le lien',target:'Destination',upload:'Télécharger',advanced:'Avancée',type:'Type de lien',toUrl:'URL',toAnchor:'Ancre dans cette page',toEmail:'E-Mail',targetFrame:'<Cadre>',targetPopup:'<fenêtre popup>',targetFrameName:'Nom du cadre de destination',targetPopupName:'Nom de la fenêtre popup',popupFeatures:'Caractéristiques de la fenêtre popup',popupResizable:'Resizable',popupStatusBar:"Barre d'état",popupLocationBar:"Barre d'adresses",popupToolbar:"Barre d'outils",popupMenuBar:'Barre de menu',popupFullScreen:'Plein écran (IE)',popupScrollBars:'Barres de défilement',popupDependent:'Dépendante (Netscape)',popupWidth:'Largeur',popupLeft:'Position à partir de la gauche'
,popupHeight:'Hauteur',popupTop:'Position à partir du haut',id:'Id',langDir:"Sens d'écriture",langDirLTR:'De gauche à droite (LTR)',langDirRTL:'De droite à gauche (RTL)',acccessKey:'Ãquivalent clavier',name:'Nom',langCode:"Sens d'écriture",tabIndex:'Ordre de tabulation',advisoryTitle:'Titre',advisoryContentType:'Type de contenu',cssClasses:'Classes de feuilles de style',charset:'Encodage de caractère',styles:'Style',selectAnchor:'Sélectionner une ancre',anchorName:'Par nom',anchorId:'Par id',emailAddress:'Adresse E-Mail',emailSubject:'Sujet du message',emailBody:'Corps du message',noAnchors:"(Pas d'ancre disponible dans le document)",noUrl:"Veuillez saisir l'URL",noEmail:"Veuillez saisir l'adresse e-mail"},anchor:{toolbar:"Insérer/modifier l'ancre",menu:"Propriétés de l'ancre",title:"Propriétés de l'ancre",name:"Nom de l'ancre",errorName:"Veuillez saisir le nom de l'ancre"},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',t
ype:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Chercher et Remplacer',find:'Chercher',replace:'Remplacer',findWhat:'Rechercher:',replaceWith:'Remplacer par:',notFoundMsg:'Le texte indiqué est introuvable.',matchCase:'Respecter la casse',matchWord:'Mot entier',matchCyclic:'Match cyclic',replaceAll:'Tout remplacer',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tableau',title:'Propriétés du tableau',men
u:'Propriétés du tableau',deleteTable:'Supprimer le tableau',rows:'Lignes',columns:'Colonnes',border:'Taille de la bordure',align:'Alignement',alignLeft:'Gauche',alignCenter:'Centré',alignRight:'Droite',width:'Largeur',widthPx:'pixels',widthPc:'pourcentage',widthUnit:'width unit',height:'Hauteur',cellSpace:'Espacement',cellPad:'Contour',caption:'Titre',summary:'Résumé',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cellule',insertBefore:'Insérer une cellule avant',insertAfter:'Insérer une cellule après',deleteCell:'Supprimer des cell
ules',merge:'Fusionner les cellules',mergeRight:'Fusionner à droite',mergeDown:'Fusionner en bas',splitHorizontal:'Scinder la cellule horizontalement',splitVertical:'Scinder la cellule verticalement',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Ligne',insertBefore:'Insérer une ligne avant',insertAfter:'Insérer une ligne après',deleteRow:'Supprimer des lignes'},column:{menu:'Colonne',insertBefore:'Insérer une colonne avant',insertAfter:'Insérer une
colonne après',deleteColumn:'Supprimer des colonnes'}},button:{title:'Propriétés du bouton',text:'Texte (Valeur)',type:'Type',typeBtn:'Bouton',typeSbm:'Soumettre',typeRst:'Réinitialiser'},checkboxAndRadio:{checkboxTitle:'Propriétés de la case à cocher',radioTitle:'Propriétés du bouton radio',value:'Valeur',selected:'Sélectionné'},form:{title:'Propriétés du formulaire',menu:'Propriétés du formulaire',action:'Action',method:'Méthode',encoding:'Encoding'},select:{title:'Propriétés de la liste/du menu',selectInfo:'Info',opAvail:'Options disponibles',value:'Valeur',size:'Taille',lines:'lignes',chkMulti:'Sélection multiple',opText:'Texte',opValue:'Valeur',btnAdd:'Ajouter',btnModify:'Modifier',btnUp:'Monter',btnDown:'Descendre',btnSetValue:'Valeur sélectionnée',btnDelete:'Supprimer'},textarea:{title:'Propriétés de la zone de texte',cols:'Colonnes',rows:'Lignes'},textfield:{title:'Propriétés du champ texte',name:'Nom',value:'Valeur',charWidth:'Largeur en ca
ractères',maxChars:'Nombre maximum de caractères',type:'Type',typeText:'Texte',typePass:'Mot de passe'},hidden:{title:'Propriétés du champ caché',name:'Nom',value:'Valeur'},image:{title:"Propriétés de l'image",titleButton:'Propriétés du bouton image',menu:"Propriétés de l'image",infoTab:"Informations sur l'image",btnUpload:'Envoyer sur le serveur',upload:'Télécharger',alt:'Texte de remplacement',width:'Largeur',height:'Hauteur',lockRatio:'Garder les proportions',unlockRatio:'Unlock Ratio',resetSize:'Taille originale',border:'Bordure',hSpace:'Espacement horizontal',vSpace:'Espacement vertical',align:'Alignement',alignLeft:'Gauche',alignRight:'Droite',alertUrl:"Veuillez saisir l'URL de l'image",linkTab:'Lien',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeig
ht:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:"Propriétés de l'animation Flash",propertiesTab:'Properties',title:"Propriétés de l'animation Flash",chkPlay:'Lecture automatique',chkLoop:'Boucle',chkMenu:'Activer le menu Flash',chkFull:'Allow Fullscreen',scale:'Affichage',scaleAll:'Par défaut (tout montrer)',scaleNoBorder:'Sans bordure',scaleFit:'Ajuster aux dimensions',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Alignement',alignLeft:'Gauche',alignAbsBottom:'Abs Bas',alignAbsMiddle:'Abs Milieu',alignBaseline:'Bas du texte',alignBottom:'Bas',alignMiddle:'Milieu',alignRight:'Droite',alignTextTop:'Haut du texte',alignTop:'Haut',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',quality
Low:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Couleur de fond',width:'Largeur',height:'Hauteur',hSpace:'Espacement horizontal',vSpace:'Espacement vertical',validateSrc:"Veuillez saisir l'URL",validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Orthographe',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Pas dans le dictionnaire',changeTo:'Changer en',btnIgnore:'Ignorer',btnIgnoreAll:'Ignorer tout',btnReplace:'Remplacer',btnReplaceAll:'Remplacer tout',btnUndo:'Annuler',noSuggestions:'- Pas de suggestion -',progress:"Vérification d'orthographe en cours...",noMispell:"Vérification d'orthographe terminée: pas d'erreur trouvée",noCha
nges:"Vérification d'orthographe terminée: Pas de modifications",oneChange:"Vérification d'orthographe terminée: Un mot modifié",manyChanges:"Vérification d'orthographe terminée: %1 mots modifiés",ieSpellDownload:"Le Correcteur d'orthographe n'est pas installé. Souhaitez-vous le télécharger maintenant?"},smiley:{toolbar:'Emoticon',title:'Insérer un Emoticon',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Liste numérotée',bulletedlist:'Liste à puces',indent:'Augmenter le retrait',outdent:'Diminuer le retrait',justify:{left:'Aligner à gauche',center:'Centrer',right:'Aligner à Droite',block:'Texte justifié'},blockquote:'Citation',clipboard:{title:'Coller',cutError:"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).",copyError:"Les paramètres de sécurité de votre navigateur empêchent l'
éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).",pasteMsg:'Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.',securityMsg:"A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.",pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Coller en tant que Word (formaté)',title:'Coller en tant que Word (formaté)',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Coller comme texte',title:'Coller comme texte'},templates:{button:'Modèles',title:'Modèles de contenu',options:'Template Options',insertOption:'Remplacer tout le contenu actuel',selectPromptMsg:"Sélectio
nner le modèle à ouvrir dans l'éditeur<br>(le contenu actuel sera remplacé):",emptyListMsg:'(Aucun modèle disponible)'},showBlocks:'Afficher les blocs',stylesCombo:{label:'Style',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formaté',tag_address:'Adresse',tag_h1:'En-tête 1',tag_h2:'En-tête 2',tag_h3:'En-tête 3',tag_h4:'En-tête 4',tag_h5:'En-tête 5',tag_h6:'En-tête 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Police',voiceLabel:'F
ont',panelTitle:'Police'},fontSize:{label:'Taille',voiceLabel:'Font Size',panelTitle:'Taille'},colorButton:{textColorTitle:'Couleur de caractère',bgColorTitle:'Couleur de fond',panelTitle:'Colors',auto:'Automatique',more:'Plus de couleurs...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title
:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for yo
ur dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['fr-ca']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Prem ALT 0 per obtenir ajuda","browseServer":"Parcourir le serveur","url":"URL","protocol":"Protocole","upload":"Télécharger","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Animation Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Champ de sélection","imageButton":"Bouton image","notSet":"<Par défaut>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"De gauche à droite (LTR)","langDirRtl":"De droite à gauche (RTL)","langCode":"Code langue","longDescr":"URL de description longue","cssClass":"Classes de feuilles de style","advisoryTitle":"Titre","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Close","preview":"Previsualiser","resize":"Resize","generalTab":"Général","advancedTab":"Avancée","validateNum
berFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Destination","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","styles":"Style","cssClasses":"Classes de feuilles de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS mea
surement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barrer","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"bidi":{"ltr":"Text direction from left to rig
ht","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Citation"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl/Cmd+X).","paste":"Coller","pasteArea":"Paste Area","pasteMsg":"Veuillez coller dans la zone ci-dessous en utilisant le clavier (<STRONG>Ctrl/Cmd+V</STRONG>) et appuyer sur <STRONG>OK</STRONG>.","securityMsg":"A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.","title":"Coller"},"colorbutton":{"auto":"Automatique","bgColorTitle":"Couleur de fond","colors":{"000":"Black","8000
00":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Plus de couleurs...","panelTitle":"Colors","textColorTitle":"Couleur de caractère"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"tem
plates":{"button":"Modèles","emptyListMsg":"(Aucun modèle disponible)","insertOption":"Remplacer tout le contenu actuel","options":"Template Options","selectPromptMsg":"Sélectionner le modèle à ouvrir dans l'éditeur<br>(le contenu actuel sera remplacé):","title":"Modèles de contenu"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic
Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Liste à puces","numberedlist":"Liste numérotée"},"indent":{"indent":"Augmenter le retrait","outdent":"Diminuer le retrait"},"find":{"find":"Chercher","findOptions":"Find Options","findWhat":"Rechercher:","matchCase":"Respecter la casse","matchCyclic":"Match cyclic","matchWord":"Mot entier","notFoundMsg":"Le texte indiqué est introuvable.","replace":"Remplacer","replaceAll":"Tout remplacer","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Remplacer par:","title":"Chercher et Remplacer"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same
domain","alignAbsBottom":"Abs Bas","alignAbsMiddle":"Abs Milieu","alignBaseline":"Bas du texte","alignTextTop":"Haut du texte","bgcolor":"Couleur de fond","chkFull":"Allow Fullscreen","chkLoop":"Boucle","chkMenu":"Activer le menu Flash","chkPlay":"Lecture automatique","flashvars":"Variables for Flash","hSpace":"Espacement horizontal","properties":"Propriétés de l'animation Flash","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Affichage","scaleAll":"Par défaut (tout montrer)","scaleFit":"Ajuster aux dimensions","scaleNoBorder":"Sans bordure","title":"Propriétés de l'animation Flash","vSpace":"Espacement vertical","validateHSpace":"HSpace must be a number.","validateSrc":"Veuillez saisir l'URL","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Tr
ansparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Taille","voiceLabel":"Font Size","panelTitle":"Taille"},"label":"Police","panelTitle":"Police","voiceLabel":"Police"},"forms":{"button":{"title":"Propriétés du bouton","text":"Texte (Valeur)","type":"Type","typeBtn":"Bouton","typeSbm":"Soumettre","typeRst":"Réinitialiser"},"checkboxAndRadio":{"checkboxTitle":"Propriétés de la case à cocher","radioTitle":"Propriétés du bouton radio","value":"Valeur","selected":"Sélectionné"},"form":{"title":"Propriétés du formulaire","menu":"Propriétés du formulaire","action":"Action","method":"Méthode","encoding":"Encoding"},"hidden":{"title":"Propriétés du champ caché","name":"Nom","value":"Valeur"},"select":{"title":"Propriétés de la liste/du menu","selectInfo":"Info","opAvail":"Options disponibles","value":"Valeur","size":"Taille","lines":"lignes","chkMulti":"Sélection multiple","opText":"Texte","opValue":"Valeur","btnAdd":"Ajouter","btnModify":"Modi
fier","btnUp":"Monter","btnDown":"Descendre","btnSetValue":"Valeur sélectionnée","btnDelete":"Supprimer"},"textarea":{"title":"Propriétés de la zone de texte","cols":"Colonnes","rows":"Lignes"},"textfield":{"title":"Propriétés du champ texte","name":"Nom","value":"Valeur","charWidth":"Largeur en caractères","maxChars":"Nombre maximum de caractères","type":"Type","typeText":"Texte","typePass":"Mot de passe","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"En-tête 1","tag_h2":"En-tête 2","tag_h3":"En-tête 3","tag_h4":"En-tête 4","tag_h5":"En-tête 5","tag_h6":"En-tête 6","tag_p":"Normal","tag_pre":"Formaté"},"horizontalrule":{"toolbar":"Insérer un séparateur"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"i
mage":{"alertUrl":"Veuillez saisir l'URL de l'image","alt":"Texte de remplacement","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Espacement horizontal","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Garder les proportions","menu":"Propriétés de l'image","resetSize":"Taille originale","title":"Propriétés de l'image","titleButton":"Propriétés du bouton image","upload":"Télécharger","urlMissing":"Image source URL is missing.","vSpace":"Espacement vertical","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insérer un Emoticon","toolbar":"Emoticon"},"justify":{"block":"Texte justifié","center":"Centrer","left":"Aligner à gauc
he","right":"Aligner à Droite"},"link":{"acccessKey":"Ãquivalent clavier","advanced":"Avancée","advisoryContentType":"Type de contenu","advisoryTitle":"Titre","anchor":{"toolbar":"Insérer/modifier l'ancre","menu":"Propriétés de l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre","errorName":"Veuillez saisir le nom de l'ancre","remove":"Remove Anchor"},"anchorId":"Par id","anchorName":"Par nom","charset":"Encodage de caractère","cssClasses":"Classes de feuilles de style","emailAddress":"Adresse E-Mail","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"Id","info":"Informations sur le lien","langCode":"Sens d'écriture","langDir":"Sens d'écriture","langDirLTR":"De gauche à droite (LTR)","langDirRTL":"De droite à gauche (RTL)","menu":"Modifier le lien","name":"Nom","noAnchors":"(Pas d'ancre disponible dans le document)","noEmail":"Veuillez saisir l'adresse e-mail","noUrl":"Veuillez saisir l'URL","other":"<other>","popupDependent":"DÃ
©pendante (Netscape)","popupFeatures":"Caractéristiques de la fenêtre popup","popupFullScreen":"Plein écran (IE)","popupLeft":"Position à partir de la gauche","popupLocationBar":"Barre d'adresses","popupMenuBar":"Barre de menu","popupResizable":"Resizable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre d'état","popupToolbar":"Barre d'outils","popupTop":"Position à partir du haut","rel":"Relationship","selectAnchor":"Sélectionner une ancre","styles":"Style","tabIndex":"Ordre de tabulation","target":"Destination","targetFrame":"<Cadre>","targetFrameName":"Nom du cadre de destination","targetPopup":"<fenêtre popup>","targetPopupName":"Nom de la fenêtre popup","title":"Propriétés du lien","toAnchor":"Ancre dans cette page","toEmail":"E-Mail","toUrl":"URL","toolbar":"Insérer/modifier le lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Télécharger"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Proper
ties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Nouvelle page"},"pagebreak":{"alt":"Page Break","toolbar":"Insérer un saut de page"},"pastetext":{"button":"Coller comme texte","title":"Coller comme texte"},"pastefromword":{"confirmCleanup":"The text you want to paste se
ems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Coller en tant que Word (formaté)","toolbar":"Coller en tant que Word (formaté)"},"preview":{"preview":"Previsualiser"},"print":{"toolbar":"Imprimer"},"removeformat":{"toolbar":"Supprimer le formatage"},"save":{"toolbar":"Sauvegarder"},"selectall":{"toolbar":"Tout sélectionner"},"showblocks":{"toolbar":"Afficher les blocs"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Insérer un caractère spécial","toolbar":"Insérer un caractère spécial"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a po
int where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Style","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panel
Title2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Taille de la bordure","caption":"Titre","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer des cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Scinder la cellule horizontalement","splitVertical":"Scinder la cellule verticalement","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole numbe
r.","chooseColor":"Choose"},"cellPad":"Contour","cellSpace":"Espacement","column":{"menu":"Colonne","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer des colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer des lignes"},"rows":"
Lignes","summary":"Résumé","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"pourcentage","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Refaire","undo":"Annuler"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer tout","btnReplace":"Remplacer","btnReplaceAll":"Remplacer tout","btnUndo":"Annuler","changeTo":"Changer en","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Le Correcteur d'orthographe n'est pas installé. Souhaitez-vous le télécharger maintenant?","manyChanges":"Vérification d'orthographe terminée: %1 mots modifiés","noChanges":"Vérification d'orthographe terminée: Pas de modifications","noMispell":"Vérification d'orthographe terminée: pas d'erreur trouvée","noSuggestions":"- Pas de suggestion -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Pas dans le dictionnaire","oneChange":"Vérification d'orthographe terminée: Un mot modifié","progress":"Vérification d'orthog
raphe en cours...","title":"Spell Check","toolbar":"Orthographe"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/fr.js b/share/static/RichText/lang/fr.js
index 652a4b7..8e535c2 100644
--- a/share/static/RichText/lang/fr.js
+++ b/share/static/RichText/lang/fr.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.fr={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Source',newPage:'Nouvelle page',save:'Enregistrer',preview:'Aperçu',cut:'Couper',copy:'Copier',paste:'Coller',print:'Imprimer',underline:'Souligné',bold:'Gras',italic:'Italique',selectAll:'Tout sélectionner',removeFormat:'Supprimer la mise en forme',strike:'Barré',subscript:'Indice',superscript:'Exposant',horizontalrule:'Ligne horizontale',pagebreak:'Saut de page',unlink:'Supprimer le lien',undo:'Annuler',redo:'Rétablir',common:{browseServer:'Explorer le serveur',url:'URL',protocol:'Protocole',upload:'Envoyer',uploadSubmit:'Envoyer sur le serveur',image:'Image',flash:'Flash',form:'Formulaire',checkbox:'Case à cocher',radio:'Bouton Radio',textField:'Champ texte',textarea:'Zone de texte',hiddenField:'Champ caché',button:'Bouton',select:'Liste déroulante',imageButton:'Bouton image',notSet:'<non défini>',id:'Id',name:'Nom',langDir:"Se
ns d'écriture",langDirLtr:'Gauche à droite (LTR)',langDirRtl:'Droite à gauche (RTL)',langCode:'Code de langue',longDescr:'URL de description longue (longdesc => malvoyant)',cssClass:'Classe CSS',advisoryTitle:'Description (title)',cssStyle:'Style',ok:'OK',cancel:'Annuler',close:'Close',preview:'Preview',generalTab:'Général',advancedTab:'Avancé',validateNumberFailed:"Cette valeur n'est pas un nombre.",confirmNewPage:'Les changements non sauvegardés seront perdus. Etes-vous sûr de vouloir charger une nouvelle page?',confirmCancel:'Certaines options ont été modifiées. Etes-vous sûr de vouloir fermer?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, Indisponible</span>'},contextmenu:{op
tions:'Context Menu Options'},specialChar:{toolbar:'Insérer un caractère spécial',title:'Sélectionnez un caractère',options:'Special Character Options'},link:{toolbar:'Lien',other:'<autre>',menu:'Editer le lien',title:'Lien',info:'Infos sur le lien',target:'Cible',upload:'Envoyer',advanced:'Avancé',type:'Type de lien',toUrl:'URL',toAnchor:'Transformer le lien en ancre dans le texte',toEmail:'E-mail',targetFrame:'<cadre>',targetPopup:'<fenêtre popup>',targetFrameName:'Nom du Cadre destination',targetPopupName:'Nom de la fenêtre popup',popupFeatures:'Options de la fenêtre popup',popupResizable:'Redimensionnable',popupStatusBar:'Barre de status',popupLocationBar:"Barre d'adresse",popupToolbar:"Barre d'outils",popupMenuBar:'Barre de menu',popupFullScreen:'Plein écran (IE)',popupScrollBars:'Barres de défilement',popupDependent:'Dépendante (Netscape)',popupWidth:'Largeur',popupLeft:'Position gauche',popupHeight:'Hauteur',popupTop:'Position haute',id:'Id',langDir:"Sens
d'écriture",langDirLTR:'Gauche à droite',langDirRTL:'Droite à gauche',acccessKey:"Touche d'accessibilité",name:'Nom',langCode:'Code de langue',tabIndex:'Index de tabulation',advisoryTitle:'Description (title)',advisoryContentType:'Type de contenu (ex: text/html)',cssClasses:'Classe du CSS',charset:'Charset de la cible',styles:'Style',selectAnchor:"Sélectionner l'ancre",anchorName:"Par nom d'ancre",anchorId:"Par ID d'élément",emailAddress:'Adresse E-Mail',emailSubject:'Sujet du message',emailBody:'Corps du message',noAnchors:'(Aucune ancre disponible dans ce document)',noUrl:"Veuillez entrer l'adresse du lien",noEmail:"Veuillez entrer l'adresse e-mail"},anchor:{toolbar:'Ancre',menu:"Editer l'ancre",title:"Propriétés de l'ancre",name:"Nom de l'ancre",errorName:"Veuillez entrer le nom de l'ancre"},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole numbe
r.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Trouver et remplacer',find:'Trouver',replace:'Remplacer',findWhat:'Expression à trouver: ',replaceWith:'Remplacer par: ',notFoundMsg:'Le texte spécifié ne peut être trouvé.',matchCase:'Respecter la casse',matchWord:'Mot entier uniquement',matchCyclic:'Boucler',replaceAll:'Remplacer tout',replaceSuccessMsg:'%1 occurrence(s) replacée(s).'},table:{toolbar:'Tableau',title:'Propriétés du tableau',menu:'Propriétés du tableau',deleteTable:'Supprimer le ta
bleau',rows:'Lignes',columns:'Colonnes',border:'Taille de la bordure',align:'Alignement du contenu',alignLeft:'Gauche',alignCenter:'Centré',alignRight:'Droite',width:'Largeur',widthPx:'pixels',widthPc:'% pourcents',widthUnit:'width unit',height:'Hauteur',cellSpace:'Espacement des cellules',cellPad:'Marge interne des cellules',caption:'Titre du tableau',summary:'Résumé (description)',headers:'En-Têtes',headersNone:'Aucunes',headersColumn:'Première colonne',headersRow:'Première ligne',headersBoth:'Les deux',invalidRows:'Le nombre de lignes doit être supérieur à 0.',invalidCols:'Le nombre de colonnes doit être supérieur à 0.',invalidBorder:'La taille de la bordure doit être un nombre.',invalidWidth:'La largeur du tableau doit être un nombre.',invalidHeight:'La hauteur du tableau doit être un nombre.',invalidCellSpacing:"L'espacement des cellules doit être un nombre.",invalidCellPadding:'La marge intérieure des cellules doit être un nombre.',cell:{menu:'Cellule
',insertBefore:'Insérer une cellule avant',insertAfter:'Insérer une cellule après',deleteCell:'Supprimer les cellules',merge:'Fusionner les cellules',mergeRight:'Fusionner à droite',mergeDown:'Fusionner en bas',splitHorizontal:'Fractionner horizontalement',splitVertical:'Fractionner verticalement',title:'Propriétés de Cellule',cellType:'Type de Cellule',rowSpan:'Fusion de Lignes',colSpan:'Fusion de Colonnes',wordWrap:'Word Wrap',hAlign:'Alignement Horizontal',vAlign:'Alignement Vertical',alignTop:'Haut',alignMiddle:'Milieu',alignBottom:'Bas',alignBaseline:'Bas du texte',bgColor:"Couleur d'arrière-plan",borderColor:'Couleur de Bordure',data:'Données',header:'Entête',yes:'Oui',no:'Non',invalidWidth:'La Largeur de Cellule doit être un nombre.',invalidHeight:'La Hauteur de Cellule doit être un nombre.',invalidRowSpan:'La fusion de lignes doit être un nombre entier.',invalidColSpan:'La fusion de colonnes doit être un nombre entier.',chooseColor:'Choose'},row:{menu:'L
igne',insertBefore:'Insérer une ligne avant',insertAfter:'Insérer une ligne après',deleteRow:'Supprimer les lignes'},column:{menu:'Colonnes',insertBefore:'Insérer une colonne avant',insertAfter:'Insérer une colonne après',deleteColumn:'Supprimer les colonnes'}},button:{title:'Propriétés du bouton',text:'Texte (Value)',type:'Type',typeBtn:'Bouton',typeSbm:'Validation (submit)',typeRst:'Remise à zéro'},checkboxAndRadio:{checkboxTitle:'Propriétés de la case à cocher',radioTitle:'Propriétés du bouton Radio',value:'Valeur',selected:'Sélectionné'},form:{title:'Propriétés du formulaire',menu:'Propriétés du formulaire',action:'Action',method:'Méthode',encoding:'Encodage'},select:{title:'Propriétés du menu déroulant',selectInfo:'Informations sur le menu déroulant',opAvail:'Options disponibles',value:'Valeur',size:'Taille',lines:'Lignes',chkMulti:'Permettre les sélections multiples',opText:'Texte',opValue:'Valeur',btnAdd:'Ajouter',btnModify:'Modifier',btnUp:
'Haut',btnDown:'Bas',btnSetValue:'Définir comme valeur sélectionnée',btnDelete:'Supprimer'},textarea:{title:'Propriétés de la zone de texte',cols:'Colonnes',rows:'Lignes'},textfield:{title:'Propriétés du champ texte',name:'Nom',value:'Valeur',charWidth:'Taille des caractères',maxChars:'Nombre maximum de caractères',type:'Type',typeText:'Texte',typePass:'Mot de passe'},hidden:{title:'Propriétés du champ caché',name:'Nom',value:'Valeur'},image:{title:"Propriétés de l'image",titleButton:'Propriétés du bouton image',menu:"Propriétés de l'image",infoTab:"Informations sur l'image",btnUpload:'Envoyer sur le serveur',upload:'Envoyer',alt:'Texte de remplacement',width:'Largeur',height:'Hauteur',lockRatio:'Garder les proportions',unlockRatio:'Unlock Ratio',resetSize:"Taille d'origine",border:'Bordure',hSpace:'Espacement horizontal',vSpace:'Espacement vertical',align:'Alignement',alignLeft:'Gauche',alignRight:'Droite',alertUrl:"Veuillez entrer l'adresse de l'image",li
nkTab:'Lien',button2Img:'Voulez-vous transformer le bouton image sélectionné en simple image?',img2Button:"Voulez-vous transformer l'image en bouton image?",urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Propriétés du Flash',propertiesTab:'Propriétés',title:'Propriétés du Flash',chkPlay:'Jouer automatiquement',chkLoop:'Boucle',chkMenu:'Activer le menu Flash',chkFull:'Permettre le plein écran',scale:'Echelle',scaleAll:'Afficher tout',scaleNoBorder:'Pas de bordure',scaleFit:"Taille d'origine",access:'Accès aux scripts',accessAlways:'Toujours',accessSameDomain:'Même domaine',accessNever:'Jamais',align:'Alignement',alignLeft:'Gauche',alignAbsBottom:'Bas absolu',alignAbsMiddle:'Milieu absolu',alignBaseline:'Bas du texte'
,alignBottom:'Bas',alignMiddle:'Milieu',alignRight:'Droite',alignTextTop:'Haut du texte',alignTop:'Haut',quality:'Qualité',qualityBest:'Meilleure',qualityHigh:'Haute',qualityAutoHigh:'Haute Auto',qualityMedium:'Moyenne',qualityAutoLow:'Basse Auto',qualityLow:'Basse',windowModeWindow:'Fenêtre',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Mode fenêtre',flashvars:'Variables du Flash',bgcolor:"Couleur d'arrière-plan",width:'Largeur',height:'Hauteur',hSpace:'Espacement horizontal',vSpace:'Espacement vertical',validateSrc:"L'adresse ne doit pas être vide.",validateWidth:'La largeur doit être un nombre.',validateHeight:'La hauteur doit être un nombre.',validateHSpace:"L'espacement horizontal doit être un nombre.",validateVSpace:"L'espacement vertical doit être un nombre."},spellCheck:{toolbar:"Vérifier l'orthographe",title:"Vérifier l'orthographe",notAvailable:'Désolé, le service est indisponible actuellement.',errorLoading:"Erreur du charg
ement du service depuis l'hôte : %s.",notInDic:"N'existe pas dans le dictionnaire",changeTo:'Modifier pour',btnIgnore:'Ignorer',btnIgnoreAll:'Ignorer tout',btnReplace:'Remplacer',btnReplaceAll:'Remplacer tout',btnUndo:'Annuler',noSuggestions:'- Aucune suggestion -',progress:"Vérification de l'orthographe en cours...",noMispell:"Vérification de l'orthographe terminée : aucune erreur trouvée",noChanges:"Vérification de l'orthographe terminée : Aucun mot corrigé",oneChange:"Vérification de l'orthographe terminée : Un seul mot corrigé",manyChanges:"Vérification de l'orthographe terminée : %1 mots corrigés",ieSpellDownload:"La vérification d'orthographe n'est pas installée. Voulez-vous la télécharger maintenant?"},smiley:{toolbar:'Emoticon',title:'Insérer un émoticon',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 éléments'},numberedlist:'Insérer/Supprimer la liste numérotée',bulletedlist:'Insérer/Supprimer la liste à puce
s',indent:'Augmenter le retrait (tabulation)',outdent:'Diminuer le retrait (tabulation)',justify:{left:'Aligner à gauche',center:'Centrer',right:'Aligner à droite',block:'Justifier'},blockquote:'Citation',clipboard:{title:'Coller',cutError:"Les paramètres de sécurité de votre navigateur ne permettent pas à l'éditeur d'exécuter automatiquement l'opération \"couper\". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).",copyError:"Les paramètres de sécurité de votre navigateur ne permettent pas à l'éditeur d'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).",pasteMsg:'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK',securityMsg:"A cause des paramètres de sécurité de votre navigateur, l'éditeur n'est pas en mesure d'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les don
nées dans la fenêtre.",pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?',toolbar:'Coller depuis Word',title:'Coller depuis Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Coller comme texte sans mise en forme',title:'Coller comme texte sans mise en forme'},templates:{button:'Modèles',title:'Contenu des modèles',options:'Template Options',insertOption:'Remplacer le contenu actuel',selectPromptMsg:"Veuillez sélectionner le modèle pour l'ouvrir dans l'éditeur",emptyListMsg:'(Aucun modèle disponible)'},showBlocks:'Afficher les blocs',stylesCombo:{label:'Styles',panelTitle:'Formatting Styles',panelTitle1:'Styles de blocs',panelTitle2:'Styles en ligne',panelTitle3:"Styles d'objet"},format:{label:'Format',panelTitle:'Format de paragraphe',tag_p:'Normal',tag_pre:'Formaté',tag_address:'Adresse',tag_h1:'Titre 1',tag_h2:'Titre
2',tag_h3:'Titre 3',tag_h4:'Titre 4',tag_h5:'Titre 5',tag_h6:'Titre 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Police',voiceLabel:'Police',panelTitle:'Style de police'},fontSize:{label:'Taille',voiceLabel:'Taille de police',panelTitle:'Taille de police'},colorButton:{textColorTitle:'Couleur de texte',bgColorTitle:"Couleur d'arrière plan",panelTitle:'Colors',auto:'Automatique',more:'Plus de couleurs...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire
Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:"Vérification d'Orthographe en Cours de Frappe (SCAYT: Spell Check As You Type)",opera_title:'Not supported by Opera',enable:'Activer SCAYT',disable:'Désactiver SCAYT',about:'A propos de SCAYT',toggle:'Activer/Désactiver SCAYT',options:'Options',langs:'Langues',moreSuggestions:'Plus de suggestions',ignore:'Ignorer',ignoreAll:'Ignorer Tout',addWord:'Ajouter le mot',emptyDic:'Le nom du dictionnaire ne devrait p
as être vide.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Langues',dictionariesTab:'Dictionnaires',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'A propos de'},about:{title:'A propos de CKEditor',dlgTitle:'A propos de CKEditor',moreInfo:'Pour les informations de licence, veuillez visiter notre site web:',copy:'Copyright © $1. Tous droi
ts réservés.'},maximize:'Agrandir',minimize:'Minimize',fakeobjects:{anchor:'Ancre',flash:'Animation Flash',div:'Saut de Page',unknown:'Objet Inconnu'},resize:'Glisser pour modifier la taille',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['fr']={"dir":"ltr","editor":"Ãditeur de Texte Enrichi","common":{"editorHelp":"Appuyez sur ALT-0 pour l'aide","browseServer":"Explorer le serveur","url":"URL","protocol":"Protocole","upload":"Envoyer","uploadSubmit":"Envoyer sur le serveur","image":"Image","flash":"Flash","form":"Formulaire","checkbox":"Case à cocher","radio":"Bouton Radio","textField":"Champ texte","textarea":"Zone de texte","hiddenField":"Champ caché","button":"Bouton","select":"Liste déroulante","imageButton":"Bouton image","notSet":"<non défini>","id":"Id","name":"Nom","langDir":"Sens d'écriture","langDirLtr":"Gauche à droite (LTR)","langDirRtl":"Droite à gauche (RTL)","langCode":"Code de langue","longDescr":"URL de description longue (longdesc => malvoyant)","cssClass":"Classe CSS","advisoryTitle":"Description (title)","cssStyle":"Style","ok":"OK","cancel":"Annuler","close":"Fermer","preview":"Aperçu","resize":"Déplacer pour modifier la taille","generalTab":"Général","advancedT
ab":"Avancé","validateNumberFailed":"Cette valeur n'est pas un nombre.","confirmNewPage":"Les changements non sauvegardés seront perdus. Ãtes-vous sûr de vouloir charger une nouvelle page?","confirmCancel":"Certaines options ont été modifiées. Ãtes-vous sûr de vouloir fermer?","options":"Options","target":"Cible (Target)","targetNew":"Nouvelle fenêtre (_blank)","targetTop":"Fenêtre supérieure (_top)","targetSelf":"Même fenêtre (_self)","targetParent":"Fenêtre parent (_parent)","langDirLTR":"Gauche à Droite (LTR)","langDirRTL":"Droite à Gauche (RTL)","styles":"Style","cssClasses":"Classes de style","width":"Largeur","height":"Hauteur","align":"Alignement","alignLeft":"Gauche","alignRight":"Droite","alignCenter":"Centré","alignTop":"Haut","alignMiddle":"Milieu","alignBottom":"Bas","invalidValue":"Invalid value.","invalidHeight":"La hauteur doit être un nombre.","invalidWidth":"La largeur doit être un nombre.","invalidCssLength":"La valeur spécifiée pour l
e champ \"%1\" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"La valeur spécifiée pour le champ \"%1\" doit être un nombre positif avec ou sans unité de mesure HTML valide (px or %).","invalidInlineStyle":"La valeur spécifiée pour le style inline doit être composée d'un ou plusieurs couples de valeur au format \"nom : valeur\", separés par des points-virgules.","cssLengthTooltip":"Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, Indisponible</span>"},"about":{"copy":"Copyright © $1. Tous droits réservés.","dlgTitle":"à propos de CKEditor","help":"Consulter $1 pour l'aide.","moreInfo":"Pour les informations de licence, veuillez visiter notre site web:","title":"à propos de CKEditor","userGuide":"Guide de l'utilisateur CKEditor en anglais"}
,"basicstyles":{"bold":"Gras","italic":"Italique","strike":"Barré","subscript":"Indice","superscript":"Exposant","underline":"Souligné"},"bidi":{"ltr":"Direction du texte de la gauche vers la droite","rtl":"Direction du texte de la droite vers la gauche"},"blockquote":{"toolbar":"Citation"},"clipboard":{"copy":"Copier","copyError":"Les paramètres de sécurité de votre navigateur ne permettent pas à l'éditeur d'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).","cut":"Couper","cutError":"Les paramètres de sécurité de votre navigateur ne permettent pas à l'éditeur d'exécuter automatiquement l'opération \"couper\". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).","paste":"Coller","pasteArea":"Coller la zone","pasteMsg":"Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.","securityMsg":"A cause des paramètres de sécurité de vo
tre navigateur, l'éditeur n'est pas en mesure d'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.","title":"Coller"},"colorbutton":{"auto":"Automatique","bgColorTitle":"Couleur d'arrière plan","colors":{"000":"Noir","800000":"Marron","8B4513":"Brun moyen","2F4F4F":"Vert sombre","008080":"Canard","000080":"Bleu marine","4B0082":"Indigo","696969":"Gris foncé","B22222":"Rouge brique","A52A2A":"Brun","DAA520":"Or terni","006400":"Vert foncé","40E0D0":"Turquoise","0000CD":"Bleu royal","800080":"Pourpre","808080":"Gris","F00":"Rouge","FF8C00":"Orange foncé","FFD700":"Or","008000":"Vert","0FF":"Cyan","00F":"Bleu","EE82EE":"Violet","A9A9A9":"Gris moyen","FFA07A":"Saumon","FFA500":"Orange","FFFF00":"Jaune","00FF00":"Lime","AFEEEE":"Turquoise clair","ADD8E6":"Bleu clair","DDA0DD":"Prune","D3D3D3":"Gris clair","FFF0F5":"Fard Lavande","FAEBD7":"Blanc antique","FFFFE0":"Jaune clair","F0FFF0":"Honeyd
ew","F0FFFF":"Azur","F0F8FF":"Bleu Alice","E6E6FA":"Lavande","FFF":"Blanc"},"more":"Plus de couleurs...","panelTitle":"Couleurs","textColorTitle":"Couleur de texte"},"colordialog":{"clear":"Effacer","highlight":"Détails","options":"Option des couleurs","selected":"Couleur choisie","title":"Choisir une couleur"},"templates":{"button":"Modèles","emptyListMsg":"(Aucun modèle disponible)","insertOption":"Remplacer le contenu actuel","options":"Options des modèles","selectPromptMsg":"Veuillez sélectionner le modèle pour l'ouvrir dans l'éditeur","title":"Contenu des modèles"},"contextmenu":{"options":"Options du menu contextuel"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Classe CSS","edit":"Ãditer la DIV","inlineStyleInputLabel":"Style en ligne","langDirLTRLabel":"Gauche à droite (LTR)","langDirLabel":"Sens d'écriture","langDirRTLLabel":"Droite à gauche (RTL)","languageCodeInputLabel":"Code de langue","remove":"Enlever
la DIV","styleSelectLabel":"Style","title":"Créer un container DIV","toolbar":"Créer un container DIV"},"toolbar":{"toolbarCollapse":"Enrouler la barre d'outils","toolbarExpand":"Dérouler la barre d'outils","toolbarGroups":{"document":"Document","clipboard":"Presse-papier/Défaire","editing":"Editer","forms":"Formulaires","basicstyles":"Styles de base","paragraph":"Paragraphe","links":"Liens","insert":"Insérer","styles":"Styles","colors":"Couleurs","tools":"Outils"},"toolbars":"Barre d'outils de l'éditeur"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 éléments"},"list":{"bulletedlist":"Insérer/Supprimer la liste à puces","numberedlist":"Insérer/Supprimer la liste numérotée"},"indent":{"indent":"Augmenter le retrait (tabulation)","outdent":"Diminuer le retrait (tabulation)"},"find":{"find":"Trouver","findOptions":"Options de recherche","findWhat":"Expression à trouver: ","matchCase":"Respecter la casse","matchCyclic":"Boucler","matchWord":"Mot entier
uniquement","notFoundMsg":"Le texte spécifié ne peut être trouvé.","replace":"Remplacer","replaceAll":"Remplacer tout","replaceSuccessMsg":"%1 occurrence(s) replacée(s).","replaceWith":"Remplacer par: ","title":"Trouver et remplacer"},"fakeobjects":{"anchor":"Ancre","flash":"Animation Flash","hiddenfield":"Champ caché","iframe":"IFrame","unknown":"Objet inconnu"},"flash":{"access":"Accès aux scripts","accessAlways":"Toujours","accessNever":"Jamais","accessSameDomain":"Même domaine","alignAbsBottom":"Bas absolu","alignAbsMiddle":"Milieu absolu","alignBaseline":"Bas du texte","alignTextTop":"Haut du texte","bgcolor":"Couleur d'arrière-plan","chkFull":"Permettre le plein écran","chkLoop":"Boucle","chkMenu":"Activer le menu Flash","chkPlay":"Jouer automatiquement","flashvars":"Variables du Flash","hSpace":"Espacement horizontal","properties":"Propriétés du Flash","propertiesTab":"Propriétés","quality":"Qualité","qualityAutoHigh":"Haute Auto","qualityAutoLow":"Bas
se Auto","qualityBest":"Meilleure","qualityHigh":"Haute","qualityLow":"Basse","qualityMedium":"Moyenne","scale":"Echelle","scaleAll":"Afficher tout","scaleFit":"Taille d'origine","scaleNoBorder":"Pas de bordure","title":"Propriétés du Flash","vSpace":"Espacement vertical","validateHSpace":"L'espacement horizontal doit être un nombre.","validateSrc":"L'adresse ne doit pas être vide.","validateVSpace":"L'espacement vertical doit être un nombre.","windowMode":"Mode fenêtre","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Fenêtre"},"font":{"fontSize":{"label":"Taille","voiceLabel":"Taille de police","panelTitle":"Taille de police"},"label":"Police","panelTitle":"Style de police","voiceLabel":"Police"},"forms":{"button":{"title":"Propriétés du bouton","text":"Texte (Value)","type":"Type","typeBtn":"Bouton","typeSbm":"Validation (submit)","typeRst":"Remise à zéro"},"checkboxAndRadio":{"checkboxTitle":"Propriétés de la case à coch
er","radioTitle":"Propriétés du bouton Radio","value":"Valeur","selected":"Sélectionné"},"form":{"title":"Propriétés du formulaire","menu":"Propriétés du formulaire","action":"Action","method":"Méthode","encoding":"Encodage"},"hidden":{"title":"Propriétés du champ caché","name":"Nom","value":"Valeur"},"select":{"title":"Propriétés du menu déroulant","selectInfo":"Informations sur le menu déroulant","opAvail":"Options disponibles","value":"Valeur","size":"Taille","lines":"Lignes","chkMulti":"Permettre les sélections multiples","opText":"Texte","opValue":"Valeur","btnAdd":"Ajouter","btnModify":"Modifier","btnUp":"Haut","btnDown":"Bas","btnSetValue":"Définir comme valeur sélectionnée","btnDelete":"Supprimer"},"textarea":{"title":"Propriétés de la zone de texte","cols":"Colonnes","rows":"Lignes"},"textfield":{"title":"Propriétés du champ texte","name":"Nom","value":"Valeur","charWidth":"Taille des caractères","maxChars":"Nombre maximum de caractères","t
ype":"Type","typeText":"Texte","typePass":"Mot de passe","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format de paragraphe","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Titre 1","tag_h2":"Titre 2","tag_h3":"Titre 3","tag_h4":"Titre 4","tag_h5":"Titre 5","tag_h6":"Titre 6","tag_p":"Normal","tag_pre":"Formaté"},"horizontalrule":{"toolbar":"Ligne horizontale"},"iframe":{"border":"Afficher une bordure de la IFrame","noUrl":"Veuillez entrer l'adresse du lien de la IFrame","scrolling":"Permettre à la barre de défilement","title":"Propriétés de la IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Veuillez entrer l'adresse de l'image","alt":"Texte de remplacement","border":"Bordure","btnUpload":"Envoyer sur le serveur","button2Img":"Voulez-vous transformer le bouton image sélectionné en simple image?","hSpace":"Espacement horizontal","img2Button":"Voulez-vous transformer l'image
en bouton image?","infoTab":"Informations sur l'image","linkTab":"Lien","lockRatio":"Conserver les proportions","menu":"Propriétés de l'image","resetSize":"Taille d'origine","title":"Propriétés de l'image","titleButton":"Propriétés du bouton image","upload":"Envoyer","urlMissing":"L'adresse source de l'image est manquante.","vSpace":"Espacement vertical","validateBorder":"Bordure doit être un entier.","validateHSpace":"HSpace doit être un entier.","validateVSpace":"VSpace doit être un entier."},"smiley":{"options":"Options des émoticones","title":"Insérer un émoticone","toolbar":"Ãmoticones"},"justify":{"block":"Justifier","center":"Centrer","left":"Aligner à gauche","right":"Aligner à droite"},"link":{"acccessKey":"Touche d'accessibilité","advanced":"Avancé","advisoryContentType":"Type de contenu (ex: text/html)","advisoryTitle":"Description (title)","anchor":{"toolbar":"Ancre","menu":"Editer l'ancre","title":"Propriétés de l'ancre","name":"Nom de l'ancre
","errorName":"Veuillez entrer le nom de l'ancre.","remove":"Supprimer l'ancre"},"anchorId":"Par ID d'élément","anchorName":"Par nom d'ancre","charset":"Charset de la cible","cssClasses":"Classe CSS","emailAddress":"Adresse E-Mail","emailBody":"Corps du message","emailSubject":"Sujet du message","id":"Id","info":"Infos sur le lien","langCode":"Code de langue","langDir":"Sens d'écriture","langDirLTR":"Gauche à droite","langDirRTL":"Droite à gauche","menu":"Editer le lien","name":"Nom","noAnchors":"(Aucune ancre disponible dans ce document)","noEmail":"Veuillez entrer l'adresse e-mail","noUrl":"Veuillez entrer l'adresse du lien","other":"<autre>","popupDependent":"Dépendante (Netscape)","popupFeatures":"Options de la fenêtre popup","popupFullScreen":"Plein écran (IE)","popupLeft":"Position gauche","popupLocationBar":"Barre d'adresse","popupMenuBar":"Barre de menu","popupResizable":"Redimensionnable","popupScrollBars":"Barres de défilement","popupStatusBar":"Barre de s
tatus","popupToolbar":"Barre d'outils","popupTop":"Position haute","rel":"Relation","selectAnchor":"Sélectionner l'ancre","styles":"Style","tabIndex":"Index de tabulation","target":"Cible","targetFrame":"<cadre>","targetFrameName":"Nom du Cadre destination","targetPopup":"<fenêtre popup>","targetPopupName":"Nom de la fenêtre popup","title":"Lien","toAnchor":"Transformer le lien en ancre dans le texte","toEmail":"E-mail","toUrl":"URL","toolbar":"Lien","type":"Type de lien","unlink":"Supprimer le lien","upload":"Envoyer"},"liststyle":{"armenian":"Numération arménienne","bulletedTitle":"Propriétés de la liste à puces","circle":"Cercle","decimal":"Décimal (1, 2, 3, etc.)","decimalLeadingZero":"Décimal précédé par un 0 (01, 02, 03, etc.)","disc":"Disque","georgian":"Numération géorgienne (an, ban, gan, etc.)","lowerAlpha":"Alphabétique minuscules (a, b, c, d, e, etc.)","lowerGreek":"Grec minuscule (alpha, beta, gamma, etc.)","lowerRoman":"Nombres romains minuscule
s (i, ii, iii, iv, v, etc.)","none":"Aucun","notset":"<Non défini>","numberedTitle":"Propriétés de la liste numérotée","square":"Carré","start":"Début","type":"Type","upperAlpha":"Alphabétique majuscules (A, B, C, D, E, etc.)","upperRoman":"Nombres romains majuscules (I, II, III, IV, V, etc.)","validateStartNumber":"Le premier élément de la liste doit être un nombre entier."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Agrandir","minimize":"Minimiser"},"newpage":{"toolbar":"Nouvelle page"},"pagebreak":{"alt":"Saut de page","toolbar":"Saut de page"},"pastetext":{"button":"Coller comme texte sans mise en forme","title":"Coller comme texte sans mise en forme"},"pastefromword":{"confirmCleanup":"Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?","error":"Il n'a pas été possible de nettoyer les données collées à la suite d'une erreur interne.","title":"Coller depuis Word","toolbar":"Coller depuis Word"
},"preview":{"preview":"Aperçu"},"print":{"toolbar":"Imprimer"},"removeformat":{"toolbar":"Supprimer la mise en forme"},"save":{"toolbar":"Enregistrer"},"selectall":{"toolbar":"Tout sélectionner"},"showblocks":{"toolbar":"Afficher les blocs"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Options des caractères spéciaux","title":"Sélectionnez un caractère","toolbar":"Insérer un caractère spécial"},"scayt":{"about":"A propos de SCAYT","aboutTab":"à propos de","addWord":"Ajouter le mot","allCaps":"Ignorer les mots entièrement en majuscules","dic_create":"Créer","dic_delete":"Effacer","dic_field_name":"Nom du dictionnaire","dic_info":"Initialement, le dictionnaire de l'utilisateur est stocké dans un cookie. Cependant, les cookies sont limités en taille. Quand le dictionnaire atteint une taille qu'il n'est plus possible de stocker dans un cookie, il peut alors être stocké sur nos serveurs. Afin de stocker votre dictionnaire personnel sur nos serveurs
, vous devez spécifier un nom pour ce dictionnaire. Si vous avez déjà un dictionnaire stocké, merci de taper son nom puis cliquer sur Restaurer pour le récupérer.","dic_rename":"Renommer","dic_restore":"Restaurer","dictionariesTab":"Dictionnaires","disable":"Désactiver SCAYT","emptyDic":"Le nom du dictionnaire ne devrait pas être vide.","enable":"Activer SCAYT","ignore":"Ignorer","ignoreAll":"Ignorer Tout","ignoreDomainNames":"Ignorer les noms de domaines","langs":"Langues","languagesTab":"Langues","mixedCase":"Ignorer les mots à casse multiple","mixedWithDigits":"Ignorer les mots contenant des chiffres","moreSuggestions":"Plus de suggestions","opera_title":"Non supporté par Opera","options":"Options","optionsTab":"Options","title":"Vérification de l'Orthographe en Cours de Frappe (SCAYT)","toggle":"Activer/Désactiver SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Styles de mise en page","panelTitle1":"Styles de blocs","pane
lTitle2":"Styles en ligne","panelTitle3":"Styles d'objet"},"table":{"border":"Taille de la bordure","caption":"Titre du tableau","cell":{"menu":"Cellule","insertBefore":"Insérer une cellule avant","insertAfter":"Insérer une cellule après","deleteCell":"Supprimer les cellules","merge":"Fusionner les cellules","mergeRight":"Fusionner à droite","mergeDown":"Fusionner en bas","splitHorizontal":"Fractionner horizontalement","splitVertical":"Fractionner verticalement","title":"Propriétés de la cellule","cellType":"Type de cellule","rowSpan":"Fusion de lignes","colSpan":"Fusion de colonnes","wordWrap":"Césure","hAlign":"Alignement Horizontal","vAlign":"Alignement Vertical","alignBaseline":"Bas du texte","bgColor":"Couleur d'arrière-plan","borderColor":"Couleur de Bordure","data":"Données","header":"Entête","yes":"Oui","no":"Non","invalidWidth":"La Largeur de Cellule doit être un nombre.","invalidHeight":"La Hauteur de Cellule doit être un nombre.","invalidRowSpan":"La f
usion de lignes doit être un nombre entier.","invalidColSpan":"La fusion de colonnes doit être un nombre entier.","chooseColor":"Choisissez"},"cellPad":"Marge interne des cellules","cellSpace":"Espacement des cellules","column":{"menu":"Colonnes","insertBefore":"Insérer une colonne avant","insertAfter":"Insérer une colonne après","deleteColumn":"Supprimer les colonnes"},"columns":"Colonnes","deleteTable":"Supprimer le tableau","headers":"En-Têtes","headersBoth":"Les deux","headersColumn":"Première colonne","headersNone":"Aucunes","headersRow":"Première ligne","invalidBorder":"La taille de la bordure doit être un nombre.","invalidCellPadding":"La marge intérieure des cellules doit être un nombre positif.","invalidCellSpacing":"L'espacement des cellules doit être un nombre positif.","invalidCols":"Le nombre de colonnes doit être supérieur à 0.","invalidHeight":"La hauteur du tableau doit être un nombre.","invalidRows":"Le nombre de lignes doit être supérieur
à 0.","invalidWidth":"La largeur du tableau doit être un nombre.","menu":"Propriétés du tableau","row":{"menu":"Ligne","insertBefore":"Insérer une ligne avant","insertAfter":"Insérer une ligne après","deleteRow":"Supprimer les lignes"},"rows":"Lignes","summary":"Résumé (description)","title":"Propriétés du tableau","toolbar":"Tableau","widthPc":"% pourcents","widthPx":"pixels","widthUnit":"unité de largeur"},"undo":{"redo":"Rétablir","undo":"Annuler"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer tout","btnReplace":"Remplacer","btnReplaceAll":"Remplacer tout","btnUndo":"Annuler","changeTo":"Modifier pour","errorLoading":"Erreur du chargement du service depuis l'hôte : %s.","ieSpellDownload":"La vérification d'orthographe n'est pas installée. Voulez-vous la télécharger maintenant?","manyChanges":"Vérification de l'orthographe terminée : %1 mots corrigés.","noChanges":"Vérification de l'orthographe terminée : Aucun mot corrigé.","noMispell":"Vér
ification de l'orthographe terminée : aucune erreur trouvée.","noSuggestions":"- Aucune suggestion -","notAvailable":"Désolé, le service est indisponible actuellement.","notInDic":"N'existe pas dans le dictionnaire.","oneChange":"Vérification de l'orthographe terminée : Un seul mot corrigé.","progress":"Vérification de l'orthographe en cours...","title":"Vérifier l'orthographe","toolbar":"Vérifier l'orthographe"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/gl.js b/share/static/RichText/lang/gl.js
index 739c1d3..94b79b0 100644
--- a/share/static/RichText/lang/gl.js
+++ b/share/static/RichText/lang/gl.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.gl={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Código Fonte',newPage:'Nova Páxina',save:'Gardar',preview:'Vista Previa',cut:'Cortar',copy:'Copiar',paste:'Pegar',print:'Imprimir',underline:'Sub-raiado',bold:'Negrita',italic:'Cursiva',selectAll:'Seleccionar todo',removeFormat:'Eliminar Formato',strike:'Tachado',subscript:'SubÃndice',superscript:'SuperÃndice',horizontalrule:'Inserir Liña Horizontal',pagebreak:'Inserir Salto de Páxina',unlink:'Eliminar Ligazón',undo:'Desfacer',redo:'Refacer',common:{browseServer:'Navegar no Servidor',url:'URL',protocol:'Protocolo',upload:'Carregar',uploadSubmit:'Enviar ó Servidor',image:'Imaxe',flash:'Flash',form:'Formulario',checkbox:'Cadro de Verificación',radio:'Botón de Radio',textField:'Campo de Texto',textarea:'Ãrea de Texto',hiddenField:'Campo Oculto',button:'Botón',select:'Campo de Selección',imageButton:'Botón de Imaxe',notSet:'<non
definido>',id:'Id',name:'Nome',langDir:'Orientación do Idioma',langDirLtr:'Esquerda a Dereita (LTR)',langDirRtl:'Dereita a Esquerda (RTL)',langCode:'Código do Idioma',longDescr:'Descrición Completa da URL',cssClass:'Clases da Folla de Estilos',advisoryTitle:'TÃtulo',cssStyle:'Estilo',ok:'OK',cancel:'Cancelar',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanzado',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</spa
n>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Inserir Carácter Especial',title:'Seleccione Caracter Especial',options:'Special Character Options'},link:{toolbar:'Inserir/Editar Ligazón',other:'<outro>',menu:'Editar Ligazón',title:'Ligazón',info:'Información da Ligazón',target:'Destino',upload:'Carregar',advanced:'Advanzado',type:'Tipo de Ligazón',toUrl:'URL',toAnchor:'Referencia nesta páxina',toEmail:'E-Mail',targetFrame:'<frame>',targetPopup:'<Xanela Emerxente>',targetFrameName:'Nome do Marco Destino',targetPopupName:'Nome da Xanela Emerxente',popupFeatures:'CaracterÃsticas da Xanela Emerxente',popupResizable:'Resizable',popupStatusBar:'Barra de Estado',popupLocationBar:'Barra de Localización',popupToolbar:'Barra de Ferramentas',popupMenuBar:'Barra de Menú',popupFullScreen:'A Toda Pantalla (IE)',popupScrollBars:'Barras de Desplazamento',popupDependent:'Dependente (Netscape)',popupWidth:'Largura',popupLeft:'Posición Esquerda',popupHeight
:'Altura',popupTop:'Posición dende Arriba',id:'Id',langDir:'Orientación do Idioma',langDirLTR:'Esquerda a Dereita (LTR)',langDirRTL:'Dereita a Esquerda (RTL)',acccessKey:'Chave de Acceso',name:'Nome',langCode:'Orientación do Idioma',tabIndex:'Ãndice de Tabulación',advisoryTitle:'TÃtulo',advisoryContentType:'Tipo de Contido',cssClasses:'Clases da Folla de Estilos',charset:'Fonte de Caracteres Vinculado',styles:'Estilo',selectAnchor:'Seleccionar unha Referencia',anchorName:'Por Nome de Referencia',anchorId:'Por Element Id',emailAddress:'Enderezo de E-Mail',emailSubject:'Asunto do Mensaxe',emailBody:'Corpo do Mensaxe',noAnchors:'(Non hai referencias disponibles no documento)',noUrl:'Por favor, escriba a ligazón URL',noEmail:'Por favor, escriba o enderezo de e-mail'},anchor:{toolbar:'Inserir/Editar Referencia',menu:'Propriedades da Referencia',title:'Propriedades da Referencia',name:'Nome da Referencia',errorName:'Por favor, escriba o nome da referencia'},list:{numberedTi
tle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Procurar',replace:'Substituir',findWhat:'Texto a procurar:',replaceWith:'Substituir con:',notFoundMsg:'Non te atopou o texto indicado.',matchCase:'Coincidir Mai./min.',matchWord:'Coincidir con toda a palabra',matchCyclic:'Match cyclic',replaceAll:'Substitiur Todo',replaceSuccessM
sg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabla',title:'Propiedades da Táboa',menu:'Propiedades da Táboa',deleteTable:'Borrar Táboa',rows:'Filas',columns:'Columnas',border:'Tamaño do Borde',align:'Aliñamento',alignLeft:'Esquerda',alignCenter:'Centro',alignRight:'Ereita',width:'Largura',widthPx:'pixels',widthPc:'percent',widthUnit:'width unit',height:'Altura',cellSpace:'Marxe entre Celas',cellPad:'Marxe interior',caption:'TÃtulo',summary:'Sumario',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cela',insertBefore:'Insert Cell Befo
re',insertAfter:'Insert Cell After',deleteCell:'Borrar Cela',merge:'Unir Celas',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Fila',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Borrar Filas'},column:{menu:'Columna',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'B
orrar Columnas'}},button:{title:'Propriedades do Botón',text:'Texto (Valor)',type:'Tipo',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Propriedades do Cadro de Verificación',radioTitle:'Propriedades do Botón de Radio',value:'Valor',selected:'Seleccionado'},form:{title:'Propriedades do Formulario',menu:'Propriedades do Formulario',action:'Acción',method:'Método',encoding:'Encoding'},select:{title:'Propriedades do Campo de Selección',selectInfo:'Info',opAvail:'Opcións Disponibles',value:'Valor',size:'Tamaño',lines:'liñas',chkMulti:'Permitir múltiples seleccións',opText:'Texto',opValue:'Valor',btnAdd:'Engadir',btnModify:'Modificar',btnUp:'Subir',btnDown:'Baixar',btnSetValue:'Definir como valor por defecto',btnDelete:'Borrar'},textarea:{title:'Propriedades da Ãrea de Texto',cols:'Columnas',rows:'Filas'},textfield:{title:'Propriedades do Campo de Texto',name:'Nome',value:'Valor',charWidth:'Tamaño do Caracter',maxChars:'Máximo de
Caracteres',type:'Tipo',typeText:'Texto',typePass:'Chave'},hidden:{title:'Propriedades do Campo Oculto',name:'Nome',value:'Valor'},image:{title:'Propriedades da Imaxe',titleButton:'Propriedades do Botón de Imaxe',menu:'Propriedades da Imaxe',infoTab:'Información da Imaxe',btnUpload:'Enviar ó Servidor',upload:'Carregar',alt:'Texto Alternativo',width:'Largura',height:'Altura',lockRatio:'Proporcional',unlockRatio:'Unlock Ratio',resetSize:'Tamaño Orixinal',border:'LÃmite',hSpace:'Esp. Horiz.',vSpace:'Esp. Vert.',align:'Aliñamento',alignLeft:'Esquerda',alignRight:'Dereita',alertUrl:'Por favor, escriba a URL da imaxe',linkTab:'Ligazón',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',
validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Propriedades Flash',propertiesTab:'Properties',title:'Propriedades Flash',chkPlay:'Auto Execución',chkLoop:'Bucle',chkMenu:'Activar Menú Flash',chkFull:'Allow Fullscreen',scale:'Escalar',scaleAll:'Amosar Todo',scaleNoBorder:'Sen Borde',scaleFit:'Encaixar axustando',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Aliñamento',alignLeft:'Esquerda',alignAbsBottom:'Abs Inferior',alignAbsMiddle:'Abs Centro',alignBaseline:'Liña Base',alignBottom:'Pé',alignMiddle:'Centro',alignRight:'Dereita',alignTextTop:'Tope do Texto',alignTop:'Tope',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Vari
ables for Flash',bgcolor:'Cor do Fondo',width:'Largura',height:'Altura',hSpace:'Esp. Horiz.',vSpace:'Esp. Vert.',validateSrc:'Por favor, escriba a ligazón URL',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Corrección Ortográfica',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Non está no diccionario',changeTo:'Cambiar a',btnIgnore:'Ignorar',btnIgnoreAll:'Ignorar Todas',btnReplace:'Substituir',btnReplaceAll:'Substituir Todas',btnUndo:'Desfacer',noSuggestions:'- Sen candidatos -',progress:'Corrección ortográfica en progreso...',noMispell:'Corrección ortográfica rematada: Non se atoparon erros',noChanges:'Corrección ortográfica rematada: Non se substituiu nengunha verba',oneChange:'Corrección ortográfica rematada: Unha verba substit
uida',manyChanges:'Corrección ortográfica rematada: %1 verbas substituidas',ieSpellDownload:'O corrector ortográfico non está instalado. ¿Quere descargalo agora?'},smiley:{toolbar:'Smiley',title:'Inserte un Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Lista Numerada',bulletedlist:'Marcas',indent:'Aumentar SangrÃa',outdent:'Disminuir SangrÃa',justify:{left:'Aliñar á Esquerda',center:'Centrado',right:'Aliñar á Dereita',block:'Xustificado'},blockquote:'Block Quote',clipboard:{title:'Pegar',cutError:'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl/Cmd+X).',copyError:'Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl/Cmd+C).',pasteMsg:'Por favor, pegue dentro do seguinte cadro usando o teclado (<STR
ONG>Ctrl/Cmd+V</STRONG>) e pulse <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Pegar dende Word',title:'Pegar dende Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Pegar como texto plano',title:'Pegar como texto plano'},templates:{button:'Plantillas',title:'Plantillas de Contido',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):',emptyListMsg:'(Non hai plantillas definidas)'},showBlocks:'Show Blocks',stylesCombo:{label:'Estilo',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'
Inline Styles',panelTitle3:'Object Styles'},format:{label:'Formato',panelTitle:'Formato',tag_p:'Normal',tag_pre:'Formateado',tag_address:'Enderezo',tag_h1:'Enacabezado 1',tag_h2:'Encabezado 2',tag_h3:'Encabezado 3',tag_h4:'Encabezado 4',tag_h5:'Encabezado 5',tag_h6:'Encabezado 6',tag_div:'Paragraph (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Tipo',voiceLabel:'Font',panelTitle:'Tipo'},fontSize:{label:'Tamaño',voiceLabel:'Font Size',panelTitle:'Tamaño'},colorButton:{textColorTitle:'Cor do Texto',bgColorTitle:'Cor do Fondo',panelTitle:'Colors',auto:'Automático',more:'Máis Cores...'},colors:{
'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ign
ore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'C
opyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['gl']={"dir":"ltr","editor":"Editor de texto enriquecido","common":{"editorHelp":"Prema ALT 0 para obter axuda","browseServer":"Ver servidor","url":"URL","protocol":"Protocolo","upload":"Cargar","uploadSubmit":"Enviar ao servidor","image":"Imaxe","flash":"Flash","form":"Formulario","checkbox":"Campo de verificación","radio":"Botón de radio","textField":"Campo de texto","textarea":"Ãrea de texto","hiddenField":"Campo oculto","button":"Botón","select":"Campo de selección","imageButton":"Botón de imaxe","notSet":"<non definido>","id":"Id","name":"Nome","langDir":"Orientación do idioma","langDirLtr":"Esquerda a dereita (LTR)","langDirRtl":"Dereita a esquerda (RTL)","langCode":"Código do idioma","longDescr":"Descrición completa da URL","cssClass":"Clases da folla de estilos","advisoryTitle":"TÃtulo","cssStyle":"Estilo","ok":"OK","cancel":"Cancelar","close":"Pechar","preview":"Previsualizar","resize":"Redimensionar","generalTab":"Xeral","advancedTab":"Advan
zado","validateNumberFailed":"Este valor non é un número.","confirmNewPage":"Calquera cambio que non gardara neste contido perderase.\r\nEstá seguro que quere cargar a nova páxina?","confirmCancel":"Algunhas das opcións foron cambiadas.\r\nEsta seguro que quere pechar o diálogo??","options":"Opcións","target":"Obxectivo","targetNew":"Nova xaneal (_blank)","targetTop":"Xanela principal (_top)","targetSelf":"Mesma xanela (_self)","targetParent":"Xanela superior (_parent)","langDirLTR":"Esquerda a dereita (LTR)","langDirRTL":"Dereita a esquerda (RTL)","styles":"Estilo","cssClasses":"Clases da folla de estilos","width":"Ancho","height":"Alto","align":"Aliñamento","alignLeft":"Esquerda","alignRight":"Dereita","alignCenter":"Centro","alignTop":"Arriba","alignMiddle":"Centro","alignBottom":"Pé","invalidValue":"Invalid value.","invalidHeight":"O alto debe ser un número.","invalidWidth":"O ancho debe ser un número.","invalidCssLength":"O valor especificado para o campo \"%
1\" debe ser un número positivo con ou sen unha unidade medida CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"O valor especificado para o campo \"%1\" debe ser un número positivo con ou sen unha unidade de medida HTML válidoa (px or %).","invalidInlineStyle":"O valor especificado no estilo en liña debe consistir nunha ou máis tuplas co formato \"nome : valor\", separadas por punto e coma.","cssLengthTooltip":"Escriba un número para o valor en pÃxeles ou un número con unha unidade CSS válida (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, non dispoñÃbel</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Negrita","italic":"Cursiva","strike":"Tachado","subscript":"SubÃndice
","superscript":"SuperÃndice","underline":"Sub-raiado"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"Copiar","copyError":"Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl/Cmd+C).","cut":"Cortar","cutError":"Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl/Cmd+X).","paste":"Pegar","pasteArea":"Paste Area","pasteMsg":"Por favor, pegue dentro do seguinte cadro usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e pulse <STRONG>OK</STRONG>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Pegar"},"colorbutton":{"auto":"Automático","bgColo
rTitle":"Cor do Fondo","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Máis Cores...","panelTitle":"Colors","textColorTitle":"Cor do Texto"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Select
ed Color","title":"Select color"},"templates":{"button":"Plantillas","emptyListMsg":"(Non hai plantillas definidas)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Por favor, seleccione a plantilla a abrir no editor<br>(o contido actual perderase):","title":"Plantillas de Contido"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","form
s":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Marcas","numberedlist":"Lista Numerada"},"indent":{"indent":"Aumentar SangrÃa","outdent":"Disminuir SangrÃa"},"find":{"find":"Procurar","findOptions":"Find Options","findWhat":"Texto a procurar:","matchCase":"Coincidir Mai./min.","matchCyclic":"Match cyclic","matchWord":"Coincidir con toda a palabra","notFoundMsg":"Non te atopou o texto indicado.","replace":"Substituir","replaceAll":"Substitiur Todo","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Substituir con:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNe
ver":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Inferior","alignAbsMiddle":"Abs Centro","alignBaseline":"Liña Base","alignTextTop":"Tope do Texto","bgcolor":"Cor do Fondo","chkFull":"Allow Fullscreen","chkLoop":"Bucle","chkMenu":"Activar Menú Flash","chkPlay":"Auto Execución","flashvars":"Variables for Flash","hSpace":"Esp. Horiz.","properties":"Propriedades Flash","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Escalar","scaleAll":"Amosar Todo","scaleFit":"Encaixar axustando","scaleNoBorder":"Sen Borde","title":"Propriedades Flash","vSpace":"Esp. Vert.","validateHSpace":"HSpace must be a number.","validateSrc":"Por favor, escriba a ligazón URL","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"
Window"},"font":{"fontSize":{"label":"Tamaño","voiceLabel":"Font Size","panelTitle":"Tamaño"},"label":"Tipo","panelTitle":"Tipo","voiceLabel":"Tipo"},"forms":{"button":{"title":"Propriedades do Botón","text":"Texto (Valor)","type":"Tipo","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Propriedades do Cadro de Verificación","radioTitle":"Propriedades do Botón de Radio","value":"Valor","selected":"Seleccionado"},"form":{"title":"Propriedades do Formulario","menu":"Propriedades do Formulario","action":"Acción","method":"Método","encoding":"Encoding"},"hidden":{"title":"Propriedades do Campo Oculto","name":"Nome","value":"Valor"},"select":{"title":"Propriedades do Campo de Selección","selectInfo":"Info","opAvail":"Opcións Disponibles","value":"Valor","size":"Tamaño","lines":"liñas","chkMulti":"Permitir múltiples seleccións","opText":"Texto","opValue":"Valor","btnAdd":"Engadir","btnModify":"Modificar","btnUp":"Subir","btn
Down":"Baixar","btnSetValue":"Definir como valor por defecto","btnDelete":"Borrar"},"textarea":{"title":"Propriedades da Ãrea de Texto","cols":"Columnas","rows":"Filas"},"textfield":{"title":"Propriedades do Campo de Texto","name":"Nome","value":"Valor","charWidth":"Tamaño do Caracter","maxChars":"Máximo de Caracteres","type":"Tipo","typeText":"Texto","typePass":"Chave","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Enderezo","tag_div":"Paragraph (DIV)","tag_h1":"Enacabezado 1","tag_h2":"Encabezado 2","tag_h3":"Encabezado 3","tag_h4":"Encabezado 4","tag_h5":"Encabezado 5","tag_h6":"Encabezado 6","tag_p":"Normal","tag_pre":"Formateado"},"horizontalrule":{"toolbar":"Inserir Liña Horizontal"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"P
or favor, escriba a URL da imaxe","alt":"Texto Alternativo","border":"LÃmite","btnUpload":"Enviar ó Servidor","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Esp. Horiz.","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Información da Imaxe","linkTab":"Ligazón","lockRatio":"Proporcional","menu":"Propriedades da Imaxe","resetSize":"Tamaño Orixinal","title":"Propriedades da Imaxe","titleButton":"Propriedades do Botón de Imaxe","upload":"Carregar","urlMissing":"Image source URL is missing.","vSpace":"Esp. Vert.","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Inserte un Smiley","toolbar":"Smiley"},"justify":{"block":"Xustificado","center":"Centrado","left":"Aliñar á Esquerda","right":"Aliñar á Dereita"},"link":{"acccessKey":"Chave de Ac
ceso","advanced":"Advanzado","advisoryContentType":"Tipo de Contido","advisoryTitle":"TÃtulo","anchor":{"toolbar":"Inserir/Editar Referencia","menu":"Propriedades da Referencia","title":"Propriedades da Referencia","name":"Nome da Referencia","errorName":"Por favor, escriba o nome da referencia","remove":"Remove Anchor"},"anchorId":"Por Element Id","anchorName":"Por Nome de Referencia","charset":"Fonte de Caracteres Vinculado","cssClasses":"Clases da Folla de Estilos","emailAddress":"Enderezo de E-Mail","emailBody":"Corpo do Mensaxe","emailSubject":"Asunto do Mensaxe","id":"Id","info":"Información da Ligazón","langCode":"Orientación do Idioma","langDir":"Orientación do Idioma","langDirLTR":"Esquerda a Dereita (LTR)","langDirRTL":"Dereita a Esquerda (RTL)","menu":"Editar Ligazón","name":"Nome","noAnchors":"(Non hai referencias disponibles no documento)","noEmail":"Por favor, escriba o enderezo de e-mail","noUrl":"Por favor, escriba a ligazón URL","other":"<outro>","pop
upDependent":"Dependente (Netscape)","popupFeatures":"CaracterÃsticas da Xanela Emerxente","popupFullScreen":"A Toda Pantalla (IE)","popupLeft":"Posición Esquerda","popupLocationBar":"Barra de Localización","popupMenuBar":"Barra de Menú","popupResizable":"Resizable","popupScrollBars":"Barras de Desplazamento","popupStatusBar":"Barra de Estado","popupToolbar":"Barra de Ferramentas","popupTop":"Posición dende Arriba","rel":"Relationship","selectAnchor":"Seleccionar unha Referencia","styles":"Estilo","tabIndex":"Ãndice de Tabulación","target":"Destino","targetFrame":"<frame>","targetFrameName":"Nome do Marco Destino","targetPopup":"<Xanela Emerxente>","targetPopupName":"Nome da Xanela Emerxente","title":"Ligazón","toAnchor":"Referencia nesta páxina","toEmail":"E-Mail","toUrl":"URL","toolbar":"Inserir/Editar Ligazón","type":"Tipo de Ligazón","unlink":"Eliminar Ligazón","upload":"Carregar"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Pr
operties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Nova Páxina"},"pagebreak":{"alt":"Page Break","toolbar":"Inserir Salto de Páxina"},"pastetext":{"button":"Pegar como texto plano","title":"Pegar como texto plano"},"pastefromword":{"confirmCleanup":"The text you want
to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Pegar dende Word","toolbar":"Pegar dende Word"},"preview":{"preview":"Vista Previa"},"print":{"toolbar":"Imprimir"},"removeformat":{"toolbar":"Eliminar Formato"},"save":{"toolbar":"Gardar"},"selectall":{"toolbar":"Seleccionar todo"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Código Fonte"},"specialchar":{"options":"Special Character Options","title":"Seleccione Caracter Especial","toolbar":"Inserir Carácter Especial"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then
the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Estilo","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object
Styles"},"table":{"border":"Tamaño do Borde","caption":"TÃtulo","cell":{"menu":"Cela","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Borrar Cela","merge":"Unir Celas","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Marxe interior","cellSpace":"Marxe entre Celas","column":{"menu":"Columna","insertBefore"
:"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Borrar Columnas"},"columns":"Columnas","deleteTable":"Borrar Táboa","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Propiedades da Táboa","row":{"menu":"Fila","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Borrar Filas"},"rows":"Filas","summary":"Sumario","title":"Propiedades da Táboa","toolbar":"Tabla","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Refacer","u
ndo":"Desfacer"},"wsc":{"btnIgnore":"Ignorar","btnIgnoreAll":"Ignorar Todas","btnReplace":"Substituir","btnReplaceAll":"Substituir Todas","btnUndo":"Desfacer","changeTo":"Cambiar a","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"O corrector ortográfico non está instalado. ¿Quere descargalo agora?","manyChanges":"Corrección ortográfica rematada: %1 verbas substituidas","noChanges":"Corrección ortográfica rematada: Non se substituiu nengunha verba","noMispell":"Corrección ortográfica rematada: Non se atoparon erros","noSuggestions":"- Sen candidatos -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Non está no diccionario","oneChange":"Corrección ortográfica rematada: Unha verba substituida","progress":"Corrección ortográfica en progreso...","title":"Spell Check","toolbar":"Corrección Ortográfica"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/gu.js b/share/static/RichText/lang/gu.js
index 0785f46..d6fc3e0 100644
--- a/share/static/RichText/lang/gu.js
+++ b/share/static/RichText/lang/gu.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.gu={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'મà«àª³ àªà« પà«àª°àª¾àª¥àª®àª¿àª દસà«àª¤àª¾àªµà«àª',newPage:'નવૠપાનà«àª',save:'સà«àªµ',preview:'પà«àª°à«àªµàª¦àª°à«àª¶àª¨',cut:'àªàª¾àªªàªµà«àª',copy:'નàªàª²',paste:'પà«àª¸à«àª',print:'પà«àª°àª¿àª¨à«àª',underline:'àª
નà«àª¡àª°à«àª²àª¾àªàª¨, નà«àªà« લà«àªà«',bold:'બà«àª²à«àª¡/સà«àªªàª·à«àª',italic:'àªàªà«àª²àª¿àª, તà«àª°àª¾àªàª¸àª¾',selectAll:'બàªà«àª પસàªàª¦ àªàª°àªµà«àª',removeFormat:'ફà«àª°à«àª®àª àªàª¾àª¢àªµà«àª',strike:'àªà«àªà« નાàªàªµà«àª',subscript:'àªàª àªàª¿àª¹à«àª¨àª¨à« નà«àªà« àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨',superscript:'àªàª àªàª¿àª¹à«àª¨ àªàªªàª° àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨.',horizontalrule:'સમસà«àª¤àª°à«àª¯ રà«àªàª¾ àªàª¨à«àª¸àª°à«àª/àª
¦àª¾àªàª² àªàª°àªµà«',pagebreak:'àªàª¨à«àª¸àª°à«àª પà«àªàª¬à«àª°à«àª/પાનાનૠàª
લઠàªàª°àªµà«àª/દાàªàª² àªàª°àªµà«àª',unlink:'લિàªàª àªàª¾àª¢àªµà«',undo:'રદ àªàª°àªµà«àª; પહà«àª²àª¾àª હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«',redo:'રિડà«; પàªà« હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«',common:{browseServer:'સરà«àªµàª° બà«àª°àª¾àªàª àªàª°à«',url:'URL',protocol:'પà«àª°à«àªà«àªà«àª²',upload:'àª
પલà«àª¡',uploadSubmit:'ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª',image:'àªàª¿àª¤à«àª°',flash:'ફà«àª²à«
શ',form:'ફà«àª°à«àª®/પતà«àª°àª',checkbox:'àªà«àª બà«àªà«àª¸',radio:'રà«àª¡àª¿àª બàªàª¨',textField:'àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°',textarea:'àªà«àªà«àª¸à«àª àªàª°àª¿àª, શબà«àª¦ વિસà«àª¤àª¾àª°',hiddenField:'àªà«àªªà«àª¤ àªà«àª·à«àª¤à
«àª°',button:'બàªàª¨',select:'પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°',imageButton:'àªàª¿àª¤à«àª° બàªàª¨',notSet:'<સà«àª નથà«>',id:'Id',name:'નામ',langDir:'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',langDirLtr:'ડાબૠથૠàªàª®àª£à« (LTR)',langDirRtl:'àªàª®àª£à« થૠડાબૠ(RTL)',langCode:'àªàª¾àª·àª¾ àªà«àª¡',longDescr:'વધારૠમાહિતૠમાàªà« URL',cssClass:'સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸',advisoryTitle:'મà«àªà«àª¯ મથાળà«àª',cssStyle:'સà«àªàª¾àªàª²',ok:'ઠà«àª àªà«',cancel:'રદ àªàª°àªµà«àª',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'àª
ડà«àªµàª¾àª¨à«àª¸àª¡',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',
target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'વિશિષà«àª àª
àªà«àª·àª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª',title:'સà«àªªà«àª¶àª¿àª
લ વિશિષà«àª àª
àªà«àª·àª° પસàªàª¦ àªàª°à«',options:'Special Character Options'},link:{toolbar:'લિàªàª àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',other:'<other>',menu:' લિàªàª àªàª¡àª¿àª/માઠફà«àª°àª«àª¾àª° àªàª°àªµà«',title:'લિàªàª',info:'લિàªàª àªàª¨à«àª«à« àªà«
બ',target:'àªàª¾àª°à«àªà«àª/લàªà«àª·à«àª¯',upload:'àª
પલà«àª¡',advanced:'àª
ડà«àªµàª¾àª¨à«àª¸àª¡',type:'લિàª
ઠપà«àª°àªàª¾àª°',toUrl:'URL',toAnchor:'ઠપà«àªàª¨à« àªàªàªàª°',toEmail:'àª-મà«àª²',targetFrame:'<ફà«àª°à«àª®>',targetPopup:'<પà«àªª-àª
પ વિનà«àª¡à«>',targetFrameName:'àªàª¾àª°à«àªà«àª ફà«àª°à«àª® નà«àª નામ',targetPopupName:'પà«àªª-àª
પ વિનà«àª¡à« નà«àª નામ',popupFeatures:'પà«àªª-àª
પ વિનà«àª¡à« ફà«àªàª°àª¸à«
',popupResizable:'Resizable',popupStatusBar:'સà«àªà«
àªàª¸ બાર',popupLocationBar:'લà«àªà«àª¶àª¨ બાર',popupToolbar:'àªà«àª² બાર',popupMenuBar:'મà«àª¨à«àª¯à« બાર',popupFullScreen:'ફà«àª² સà«àªà«àª°à«àª¨ (IE)',popupScrollBars:'સà«àªà«àª°à«àª² બાર',popupDependent:'ડિપà«àª¨à«àª¡àª¨à«àª (Netscape)',popupWidth:'પહà«àª³àª¾àª',popupLeft:'ડાબૠબાàªà«',popupHeight:'àªàªàªàª¾àª',popupTop:'àªàª®àª£à« બાàªà«',id:'Id',langDir:'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',langDi
rLTR:'ડાબૠથૠàªàª®àª£à« (LTR)',langDirRTL:'àªàª®àª£à« થૠડાબૠ(RTL)',acccessKey:'àªàªà«àª¸à«àª¸ àªà«',name:'નામ',langCode:'àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿',tabIndex:'àªà«
બ àªàª¨à«àª¡à«àªà«àª¸',advisoryTitle:'મà«àªà«àª¯ મથાળà«àª',advisoryContentType:'મà«àªà«àª¯ àªàª¨à«àªà«àª¨à«àª પà«àª°àªàª¾àª°',cssClasses:'સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸',charset:'લિàªàª રિસà«àª°à«àª¸ àªà«
રિàªà«àªàª° સà«àª',styles:'સà«àªàª¾àªàª²',selectAnchor:'àªàªàªàª° પસàªàª¦ àªàª°à«',anchorName:'àªàªàªàª° નામથૠપસàªàª¦ àªàª°à«',anchorId:'àªàªàªàª° àªàª²àª¿àª®àª¨à«àª Id થૠપસàªàª¦ àªàª°à«',emailAddress:'àª-મà«àª² સરનામà«àª',emailSubject:'àª-મà«àª² વિષય',emailBody:'સàªàª¦à«àª¶',noAnchors:'(ડà«àªà«àª¯à«àª®àª¨à«àªàª®àª¾àª àªàªàªàª°àª¨à« સàªàªà«àª¯àª¾)',noUrl:'લિàªà
ª URL àªàª¾àªàªª àªàª°à«',noEmail:'àª-મà«àª² સરનામà«àª àªàª¾àªàªª àªàª°à«'},anchor:{toolbar:'àªàªàªàª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«',menu:'àªàªàªàª°àª¨àª¾ àªà«àª£',title:'àªàªàªàª°àª¨àª¾ àªà«àª£',name:'àªàªàªàª°àª¨à«àª નામ',errorName:'àªàªàªàª°àª¨à«àª નામ àªàª¾àªàªª àªàª°à«'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadi
ngZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'શà«àª§àªµà«àª àª
નૠબદલવà«àª',find:'શà«àª§àªµà«àª',replace:'રિપà«àª²à«àª¸/બદલવà«àª',findWhat:'ઠશà«àª§à«',replaceWith:'àªàª¨àª¾àª¥à« બદલà«',notFoundMsg:'તમૠશà«àª§à«àª²à« àªà«àªà«àª¸à«àª નથૠમળà«',matchCase:'àªà«àª¸ સરàªàª¾ રાàªà«',matchWord:'બàªàª¾ શબà«àª¦ સરàªàª¾ રાàªà«',matchCyclic:'Match cyclic',replaceAll:'બàªàª¾ બદલૠ',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'àªà«àª¬àª², àªà«àª à«',title:'àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª',menu:'àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª',deleteTable:'àªà«àª ૠડિલà«àª/àªàª¾àª¢à« નાàªàªµà«àª',rows:'પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾',columns:'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',border:'àªà«àª ાનૠબાàªà«(બà«àª°à«àª¡àª°) સાàªàª',alig
n:'àª
લાàªàª¨àª®àª¨à«àª/àªà«àª વાયà«àª²à«àª ',alignLeft:'ડાબૠબાàªà«',alignCenter:'મધà«àª¯ સà«àª¨à«àªàª°',alignRight:'àªàª®àª£à« બાàªà«',width:'પહà«àª³àª¾àª',widthPx:'પિàªàª¸àª²',widthPc:'પà«àª°àª¤àª¿àª¶àª¤',widthUnit:'width unit',height:'àªàªàªàª¾àª',cellSpace:'સà«àª² àª
àªàª¤àª°',cellPad:'સà«àª² પà«
ડિàªàª',caption:'મથાળà«àª/àªà«
પà«àª¶àª¨ ',summary:'àªà«àªàªà« àªàª¹à«àªµàª¾àª²',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'àªà«àª·àª¨
ા àªàª¾àª¨àª¾',insertBefore:'પહà«àª²àª¾àª àªà«àª· àªàª®à«àª°àªµà«',insertAfter:'પàªà« àªà«àª· àªàª®à«àª°àªµà«',deleteCell:'àªà«àª· ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«',merge:'àªà«àª· àªà«àªàª¾ àªàª°àªµàª¾',mergeRight:'àªàª®àª£à« બાàªà« àªà«àªàª¾ àªàª°àªµàª¾',mergeDown:'નà«àªà« àªà«àªàª¾ àªàª°àªµàª¾',splitHorizontal:'àªà«àª·àª¨à« સમસà«àª¤àª°à«àª¯ વિàªàª¾àªàª¨ àªàª°àªµà«àª',splitVertical:'àªà«àª·àª¨à« સà«àª§à«àª નૠàªàªà«àª વિàªàª¾àªàª¨ àªàª°àªµà«àª',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a
number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾',insertBefore:'પહà«àª²àª¾àª પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«',insertAfter:'પàªà« પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«',deleteRow:'પàªàªà«àª¤àª¿àª ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«'},column:{menu:'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',insertBefore:'પહà«àª²àª¾àª àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«',insertAfter:'પàªà« àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«',deleteColumn:'àªà«àª²àª®/àªàªà« àªàªàª¾àª° ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«'}},button:{title:'બàªàª¨àª¨àª¾ àªà«àª£',text:'àªà«àªà«àª¸à«àª (વà«
લà«àª¯à«)',type:'પà«àª°àªàª¾àª°',typeBtn:'બàªàª¨',typeSbm:'સબà«àª®àª¿àª',typeRst:'રિસà«àª'},checkboxAndRadio:{checkboxTitle:'àªà«àª બà«àªà«àª¸ àªà«àª£',radioTit
le:'રà«àª¡àª¿àª બàªàª¨àª¨àª¾ àªà«àª£',value:'વà«
લà«àª¯à«',selected:'સિલà«àªà«àªà«àª¡'},form:{title:'ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£',menu:'ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£',action:'àªà«àª°àª¿àª¯àª¾',method:'પદà«àª§àª¤àª¿',encoding:'Encoding'},select:{title:'પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',selectInfo:'સà«àªàª¨àª¾',opAvail:'àªàªªàª²àª¬à«àª§ વિàªàª²à«àªª',value:'વà«
લà«àª¯à«',size:'સાàªàª',lines:'લà«àªà«àª',chkMulti:'àªàªàª¥à« વધારૠપસàªàª¦ àªàª°à« શàªà«',opText:'àªà«àªà«àª¸à«àª',opValue:'વà«
લà«àª¯à«',btnAdd:'àªàª®à«àª°àªµà«àª',btnModify:'બદલવà«àª',btnUp:'àªàªªàª°',btnDown:'નà«àªà«',btnSetValue:'પસàªàª¦ àªàª°àª²à« વà«
લà«àª¯à« સà«àª àªàª°à«',btnDelete:'રદ àªàª°àªµà«àª'},textarea:{title:'àªà«àªà«àª¸à«àª àªàª
રિàª, શબà«àª¦ વિસà«àª¤àª¾àª°àª¨àª¾ àªà«àª£',c
ols:'àªà«àª²àª®/àªàªà« àªàªàª¾àª°',rows:'પàªàªà«àª¤àª¿àª'},textfield:{title:'àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',name:'નામ',value:'વà«
લà«àª¯à«',charWidth:'àªà«àª°à«àªà«àªàª°àª¨à« પહà«àª³àª¾àª',maxChars:'àª
ધિàªàª¤àª® àªà«àª°à«àªà«àªàª°',type:'àªàª¾àªàªª',typeText:'àªà«àªà«àª¸à«àª',typePass:'પાસવરà«àª¡'},hidden:{title:'àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£',name:'નામ',value:'વà«
લà«àª¯à«'},image:{title:'àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£',titleButton:'àªàª¿àª¤à«àª° બàªàª¨àª¨àª¾ àªà«àª£',menu:'àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£',infoTab:'àªàª¿àª¤à«àª° નૠàªàª¾àª£àªàª¾àª°à«',btnUpload:'ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª',upload:'àª
પલà«àª¡',alt:'àªàª²à«àªàª°à«àª¨àª àªà«àªà«àª¸à«àª',width:'પહà«àª³àª¾àª',height:'àªàªàªàª¾àª',lockRatio:'લà«àª àªà«àª£à«àª¤à«àª¤àª°',unlockRatio
:'Unlock Ratio',resetSize:'રà«àª¸à«àª સાàªàª',border:'બà«àª°à«àª¡àª°',hSpace:'સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾',vSpace:'લàªàª¬àª°à«àªª àªàªà«àª¯àª¾',align:'લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª',alignLeft:'ડાબૠબાàªà« àªà«àª વવà«àª',alignRight:'àªàª®àª£à«',alertUrl:'àªàª¿àª¤à«àª°àª¨à« URL àªàª¾àªàªª àªàª°à«',linkTab:'લિàªàª',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ફà«àª²à«
શના àªà«àª£',propertiesTab:'Properties',title:'ફà«àª²à«
શ àªà«àª£',chkPlay:'àªàªà«/સà«
વયઠપà«àª²à«',chkLoop:'લà«àªª',chkMenu:'ફà«àª²à«
શ મà«àª¨à«àª¯à« નૠપà«àª°àª¯à«àª àªàª°à«',chkFull:'Allow Fullscreen',scale:'સà«àªà«àª²',scaleAll:'સà«àªà«àª² àªàª²/બધૠબતાવà«',scaleNoBorder:'સà«àªà«àª² બà«àª°à«àª¡àª° વàªàª°',scaleFit:'સà«àªà«àª² àªàªàª¦àª® ફà«àª',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª',alignLeft:'ડાબૠબાàªà« àªà«àª વવà«àª',alignAbsBottom:'Abs નà«àªà«',alignAbsMiddle:'Abs àªàªªàª°',alignBaseline:'àªàª§àª¾àª° લà«àªà«',alignBottom:'નà«àªà«',alignMiddle:'વàªà«àªà«',alignRight:'àªàª®àª£à«',alignTextTop:'àªà«àªà«àª¸à«àª àªàªªàª°',alignTop:'àªàªªàª°',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWin
dow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,',width:'પહà«àª³àª¾àª',height:'àªàªàªàª¾àª',hSpace:'સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾',vSpace:'લàªàª¬àª°à«àªª àªàªà«àª¯àª¾',validateSrc:'લિàªàª URL àªàª¾àªàªª àªàª°à«',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'àªà«àª¡àª£à« (સà«àªªà«àª²àª¿àªàª) તપાસવà«',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'શબà«àª¦àªà«àª¶àª®àª¾àª નથà«',changeTo:'àªàª¨àª¾àª¥à« બદલવà«àª',btnIgnore:'àªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«',btnIgnoreAll:'બધાનૠàªàªà«àª¨à«àª°/àª
વà
ªàª£àª¨àª¾ àªàª°àªµà«',btnReplace:'બદલવà«àª',btnReplaceAll:'બધા બદલૠàªàª°à«',btnUndo:'àª
નà«àª¡à«',noSuggestions:'- àªàª સàªà«àª¶àª¨ નથૠ-',progress:'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª àªàª¾àª²à« àªà«...',noMispell:'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªà«àªà« àªà«àª¡àª£à« મળૠનથà«',noChanges:'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàªàªªàª£ શબà«àª¦ બદલયૠનથà«',oneChange:'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàª શબà«àª¦ બદલયૠàªà«',manyChanges:'શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: %1 શબà«àª¦ બદલયા àªà«',ieSpellDownload:'સà«àªªà«àª²-àªà«àªàª° àªàª¨à«àª¸à«àªà«àª² નથà«. શà«àª તમૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªàªà« àªà«?'},
smiley:{toolbar:'સà«àª®àª¾àªàª²à«',title:'સà«àª®àª¾àªàª²à« પસàªàª¦ àªàª°à«',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'સàªàªà«àª¯àª¾àªàªàª¨ સà«àªàª¿',bulletedlist:'બà«àª²à«àª સà«àªàª¿',indent:'àªàª¨à«àª¡à«àª¨à«àª, લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ વધારવà«',outdent:'àªàª¨à«àª¡à«àª¨à«àª લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ àªàªàª¾àª¡àªµà«',justify:{left:'ડાબૠબાàªà«àª/બાàªà« તરફ',center:'સàªàªà«àªàª¦à«àª°àª£/સà«àªàªàª°àª¿àªàª',right:'àªàª®àª£à« બાàªà«àª/બાàªà« તરફ',block:'બà«àª²à«àª, àª
àªàª¤àª°àª¾àª¯ àªàª¸à«àªàª¿àª«àª¾àª'},blockquote:'બà«àª²à«àª-àªà«àª, àª
વતરણàªàª¿àª¹à«àª¨à«',clipboard:{title:'પà«àª¸à«àª',cutError:'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªàª àªàª°à
ªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+X) નૠàªàªªàª¯à«àª àªàª°à«.',copyError:'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªà«àªªà« àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',pasteMsg:'Ctrl/Cmd+V નૠપà«àª°àª¯à«àª àªàª°à« પà«àª¸à«àª àªàª°à«',securityMsg:'તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸àª¨àª¾ àªàª¾àª°àª£à«,àªàª¡àª¿àªàª° તમારા àªàª¿àª²à«àªªàª¬à«àª°à«àª¡ ડà«àªàª¾ નૠàªà«àªªà« નથૠàªàª°à« શàªàª¤à«. તમારૠઠવિનà«àª¡à«àª®àª¾àª ફરà«àª¥à« પà«àª¸à«àª àªàª°àªµà«àª પડશà«.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'પà«àª¸à«àª (વડà«
àªà
«àªà«àª¸à«àª)',title:'પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'પà«àª¸à«àª (àªà«àªà«àª¸à«àª)',title:'પà«àª¸à«àª (àªà«àªà«àª¸à«àª)'},templates:{button:'àªà«àª®à«àªªà«àª²à«àª',title:'àªàª¨à«àªà«àª¨à«àª àªà«àª®à«àªªà«àª²à«àª',options:'Template Options',insertOption:'મà«àª³ શબà«àª¦àª¨à« બદલà«',selectPromptMsg:'àªàª¡àª¿àªàª°àª®àª¾àª àªàªªàª¨ àªàª°àªµàª¾ àªà«àª®à«àªªà«àª²à«àª પસàªàª¦ àªàª°à« (વરà«àª¤àª®àª¾àª¨ àªàª¨à«àªà«àª¨à«àª સà«àªµ નહà«àª થાય):',emptyListMsg:'(àªà«àª àªà«àª®à«àªªà«àª²à«àª ડિફાàªàª¨ નથà«)'},showBlocks:'બà«àª²à«àª બતાવવà«àª',stylesCombo:{label:'શà«àª²à«/રà«àª¤',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'ફà«àª¨à«àª à
ª«à«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«',panelTitle:'ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«',tag_p:'સામાનà«àª¯',tag_pre:'ફà«àª°à«àª®àªà«àª¡',tag_address:'સરનામà«àª',tag_h1:'શà«àª°à«àª·àª 1',tag_h2:'શà«àª°à«àª·àª 2',tag_h3:'શà«àª°à«àª·àª 3',tag_h4:'શà«àª°à«àª·àª 4',tag_h5:'શà«àª°à«àª·àª 5',tag_h6:'શà«àª°à«àª·àª 6',tag_div:'શà«àª°à«àª·àª (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ફà«àª¨à«àª',voiceLabel:'Font',panelTitle:'ફà«àª¨à«àª'},fontSize:{label:'ફà«àª¨à«àª સાàªàª/àª
દ',voiceLabel:'Font Size',panelTitle:'ફà«àª¨à«àª સાàªàª/àªàª¦'},colorButton:{textColorTitle:'શબà«àª¦àª¨à« રàªàª',bgColorTitle:'બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,',panelTitle:'Colors',auto:'સà«àªµàªàª¾àª²àª¿àª¤',more:'àªàª° રàªàª...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'La
vender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server
you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['gu']={"dir":"ltr","editor":"રà«àª àªà«àªà«àª·à«àª¤à« àªàª¡à«àªàª°","common":{"editorHelp":"પà«àª°à«àª¸ ALT 0 મદદ માàª","browseServer":"સરà«àªµàª° બà«àª°àª¾àªàª àªàª°à«","url":"URL","protocol":"પà«àª°à«àªà«àªà«àª²","upload":"àª
પલà«àª¡","uploadSubmit":"ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª","image":"àªàª¿àª¤à«àª°","flash":"ફà«àª²à«
શ","form":"ફà«àª°à«àª®/પતà«àª°àª","checkbox":"àªà«àª બà«àªà«àª¸","radio":"રà«àª¡àª¿àª બàªàª¨","textField":"àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°","textarea":"àªà«àªà«àª¸à«àª àªàª°àª¿àª, શબà«àª¦ વિસà«àª¤àª¾àª°","hiddenField":"àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°","button":"બàªàª¨","select":"પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°","imageButton":"àªàª¿àª¤à«àª° બàªàª¨","notSet":"<સà«àª નથà«>","id":"Id","name":"નામ","langDir":"àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પ
દà«àª§àª¤àª¿","langDirLtr":"ડાબૠથૠàªàª®àª£à« (LTR)","langDirRtl":"àªàª®àª£à« થૠડાબૠ(RTL)","langCode":"àªàª¾àª·àª¾ àªà«àª¡","longDescr":"વધારૠમાહિતૠમાàªà« URL","cssClass":"સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸","advisoryTitle":"મà«àªà«àª¯ મથાળà«àª","cssStyle":"સà«àªàª¾àªàª²","ok":"ઠà«àª àªà«","cancel":"રદ àªàª°àªµà«àª","close":"બàªàª§ àªàª°àªµà«àª","preview":"àªà«àªµà«àª","resize":"àªà«àªàªà« નૠયà«àªà«àª¯ àªàª°àªµà«àª","generalTab":"àªàª¨àª°àª²","advancedTab":"àª
ડà«àªµàª¾àª¨à«àª¸àª¡","validateNumberFailed":"ઠરàªàª® àªàªàª¡à« નથà«.","confirmNewPage":"સવૠàªàª¾àª°à«àª¯ વàªàª°àª¨à«àª ફàªàª°à« àªà«àªµàª¾àª àªàª¶à«. તમનૠàªàª¾àª¤àª°à« àªà« àªà« તમનૠનવà«àª પાનà«àª àªà«àª²àªµà«àª àªà«?","confirmCancel":"àªàª£àª¾ વિàªàª²à«àªªà« બદલાયા àªà«. તà
ª®àª¾àª°à« ઠબà«àªà«àª·à« બàªàª§ àªàª°àªµà«àª àªà«?","options":"વિàªàª²à«àªªà«","target":"લàªà«àª·à«àª¯","targetNew":"નવૠવિનà«àª¡à« (_blank)","targetTop":"àªàªªàª°àª¨à« વિનà«àª¡à« (_top)","targetSelf":"àªàª વિનà«àª¡à« (_self)","targetParent":"પà«àª°àª¨àª વિનà«àª¡à« (_parent)","langDirLTR":"ડાબૠથૠàªàª®àª£à« (LTR)","langDirRTL":"àªàª®àª£à« થૠડાબૠ(RTL)","styles":"શà«àª²à«","cssClasses":"શà«àª²à« àªàª²àª¾àª¸à«àª¸","width":"પહà«àª³àª¾àª","height":"àªàªàªàª¾àª","align":"લાàªàª¨àª¦à«àª°à«àª®àª¾àª àªà«àª વવà«àª","alignLeft":"ડાબૠબાàªà« àªà«àª વવà«àª","alignRight":"àªàª®àª£à«","alignCenter":"મધà«àª¯ સà«àª¨à«àªàª°","alignTop":"àªàªªàª°","alignMiddle":"વàªà«àªà«","alignBottom":"નà«àªà«","invalidValue":"Invalid value.","invalidHeight":"àªàªàªàª¾àª àªàª àªàªàªàª¡à« હà«àªµà« àªà«àªàª
.","invalidWidth":"પà«àª¹àª³ ઠàªàª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","invalidCssLength":"\"%1\" નૠવà«àª²à«àª¯à« àªàª પà«àª¸à«àªà«àªµ àªàªàªàª¡à« હà«àªµà« àªà«àªàª àª
થવા CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc) વàªàª°.","invalidHtmlLength":"\"%1\" નૠવà«àª²à«àª¯à« àªàª પà«àª¸à«àªà«àªµ àªàªàªàª¡à« હà«àªµà« àªà«àªàª àª
થવા HTML measurement unit (px or %) વàªàª°.","invalidInlineStyle":"àªàª¨àª²àª¾àªàª¨ સà«àªàª¾àªàª² નૠવà«àª²à«àª¯à« \"name : value\" ના ફà«àª°à«àª®à«àª માઠહà«àªµà« àªà«àªàª, વàªà«àªà« સà«àª®à«-àªà«àª²à«àª¨ àªà«àªàª.","cssLengthTooltip":"પિàªà«àª·à«àª²à« નૠàªàªàªàª¡à« CSS unit (px, %, in, cm, mm, em, ex, pt, or pc) માઠનાàªà«.","unavailable":"%1<span class=\"cke_accessibility\">, નથૠમળતà«àª</span>"},"about":{"copy":"àªà«àªªà«àª°àª¾àªàª © $1
. àªàª² રાàªàªà«àª¸ ","dlgTitle":"CKEditor વિષà«","help":"મદદ માàªà« $1 તપાસà«","moreInfo":"લાયસનસનૠમાહિતૠમાàªà« àª
મારૠવà«àª¬ સાàªàª","title":"CKEditor વિષà«","userGuide":"CKEditor યà«àªàª°à«àª¸ àªàª¾àªàª¡"},"basicstyles":{"bold":"બà«àª²à«àª¡/સà«àªªàª·à«àª","italic":"àªàªà«àª²àª¿àª, તà«àª°àª¾àªàª¸àª¾","strike":"àªà«àªà« નાàªàªµà«àª","subscript":"àªàª àªàª¿àª¹à«àª¨àª¨à« નà«àªà« àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨","superscript":"àªàª àªàª¿àª¹à«àª¨ àªàªªàª° àªàª°à«àª²à«àª બà«àªà«àª àªàª¿àª¹à«àª¨.","underline":"àª
નà«àª¡àª°à«àª²àª¾àªàª¨, નà«àªà« લà«àªà«"},"bidi":{"ltr":"àªà«àªà«àª·à«àª¤à« નૠદિશા ડાબૠથૠàªàª®àª£à«","rtl":"àªà«àªà«àª·à«àª¤à« નૠદિશા àªàª®àª£à« થૠડાબà«"},"blockquote":{"toolbar":"બà«àª²à«àª-àªà«àª, àª
વà
ª¤àª°àª£àªàª¿àª¹à«àª¨à«"},"clipboard":{"copy":"નàªàª²","copyError":"તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªà«àªªà« àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤","cut":"àªàª¾àªªàªµà«àª","cutError":"તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸ àªàª àªàª°àªµàª¾àª¨à« પરવાનàªà« નથૠàªàªªàª¤à«. (Ctrl/Cmd+X) નૠàªàªªàª¯à«àª àªàª°à«.","paste":"પà«àª¸à«àª","pasteArea":"પà«àª¸à«àª àªàª°àªµàª¾àª¨à« àªàªà«àª¯àª¾","pasteMsg":"Ctrl/Cmd+V નૠપà«àª°àª¯à«àª àªàª°à« પà«àª¸à«àª àªàª°à«","securityMsg":"તમારા બà«àª°àª¾àªàªàª° નૠસà«àª°àªà«àª·àª¿àª¤ સà«àªàª¿àªàªàª¸àª¨àª¾ àªàª¾àª°àª£à«,àªàª¡àª¿àªàª° તમારા àªàª¿àª²à«àªªàª¬à«àª°à«àª¡ ડà«àªàª¾ નૠàªà«àªªà« નથૠàªàª°à« શàªàª¤à«. à
ª¤àª®àª¾àª°à« ઠવિનà«àª¡à«àª®àª¾àª ફરà«àª¥à« પà«àª¸à«àª àªàª°àªµà«àª પડશà«.","title":"પà«àª¸à«àª"},"colorbutton":{"auto":"સà«àªµàªàª¾àª²àª¿àª¤","bgColorTitle":"બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,","colors":{"000":"àªàª¾àª³à«","800000":"મરà«àª¨","8B4513":"àªà«àª","2F4F4F":"ડારà«àª સà«àª²à«àª àªà«àª°à« ","008080":"àªà«àª²","000080":"નà«àªµà«","4B0082":"àªàª¾àª®àª²à«","696969":"ડારà«àª àªà«àª°à«","B22222":"àªàª","A52A2A":"બà«àª°àª¾àªàª¨","DAA520":"àªà«àª²à«àª¡àª¨ રà«àª¡","006400":"ડારà«àª લà«àª²à«","40E0D0":"àªà«àª°àªà«àªàª¸","0000CD":"મધà«àª¯àª® વાદળà«","800080":"પરà«àªªàª²","808080":"àªà«àª°à«","F00":"લાલ","FF8C00":"ડારà«àª àªàª°àªàª","FFD700":"àªà«àª²à«àª¡","008000":"àªà«àª°à«àª¨","0FF":"સાયન","00F":"વાદળà«","EE82EE":"વાયà«àª²à«àª","A9A9A9":"ડà«àª® ","FFA07A":"લાàªàª સા
લમન","FFA500":"àªàª°àªàª","FFFF00":"પà«àª³à«","00FF00":"લાàªàª®","AFEEEE":"પà«àª² àªà«àªàª¸","ADD8E6":"લાàªàª બà«àª²à«","DDA0DD":"પલà«àª®","D3D3D3":"લાàªàª àªà«àª°à«","FFF0F5":"લવàªàª¡àª° ","FAEBD7":"àªàª¨à«àªà«àª સફà«àª¦","FFFFE0":"લાàªàª પà«àª³à«","F0FFF0":"હનà«àª¡àªàª¯","F0FFFF":"àª
àªà«àª°à«","F0F8FF":"àªàª²à«àª¸ બà«àª²à«","E6E6FA":"લવàªàª¡àª°","FFF":"સફà«àª¦"},"more":"àªàª° રàªàª...","panelTitle":"રàªàª","textColorTitle":"શબà«àª¦àª¨à« રàªàª"},"colordialog":{"clear":"સાફ àªàª°àªµà«àª","highlight":"હાàªàªàª","options":"રàªàªàª¨àª¾ વિàªàª²à«àªª","selected":"પસàªàª¦ àªàª°à«àª²à« રàªàª","title":"રàªàª પસàªàª¦ àªàª°à«"},"templates":{"button":"àªà«àª®à«àªªà«àª²à«àª","emptyListMsg":"(àªà«àª àªà«àª®à«àªªà«àª²à«àª ડિફાàªàª¨ નથà«)","insertOption":"મà«àª³ શબà«àª¦àª¨à« બદલà«"
,"options":"àªà«àª®à«àªªà«àª²à«àªàª¨àª¾ વિàªàª²à«àªªà«","selectPromptMsg":"àªàª¡àª¿àªàª°àª®àª¾àª àªàªªàª¨ àªàª°àªµàª¾ àªà«àª®à«àªªà«àª²à«àª પસàªàª¦ àªàª°à« (વરà«àª¤àª®àª¾àª¨ àªàª¨à«àªà«àª¨à«àª સà«àªµ નહà«àª થાય):","title":"àªàª¨à«àªà«àª¨à«àª àªà«àª®à«àªªà«àª²à«àª"},"contextmenu":{"options":"àªà«àª¨à«àª¤à«àªà«àª·à«àª¤à« મà«àª¨à«àª¨àª¾ વિàªàª²à«àªªà«"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"àªàª¡àªµàª¾àªàªàª° શà«àª°à«àª·àª","cssClassInputLabel":"સà«àªàª¾àªàª²àª¶à«àª àªàª²àª¾àª¸à«àª¸","edit":"ડà«àªµà«àª®àª¾àª ફà«àª°àª«àª¾àª° àªàª°àªµà«","inlineStyleInputLabel":"àªàª¨àª²àª¾àªàª¨ પદà«àª§àª¤àª¿","langDirLTRLabel":"ડાબૠથૠàªàª®àª£à« (LTR)","langDirLabel":"àªàª¾àª·àª¾àª¨à« દિશા","langDirRTLLabel":"àªàª®àª£à« થૠડાબૠ(RTL)","languageCodeInputLabel":"àªàª¾àª·àª¾àª¨à« àªà«àª¡","remove":"ડà«àªµà« àªàª¾àª¢
à« àªàª¾àª¢àªµà«àª","styleSelectLabel":"સà«àªàª¾àªàª²","title":"Div àªàª¨à«àªà«àª¨àª° બનાવà«àªàªµà«àª","toolbar":"Div àªàª¨à«àªà«àª¨àª° બનાવà«àªàªµà«àª"},"toolbar":{"toolbarCollapse":"àªà«àª²àª¬àª¾àª° નાનà«àª àªàª°àªµà«àª","toolbarExpand":"àªà«àª²àª¬àª¾àª° મà«àªà«àª àªàª°àªµà«àª","toolbarGroups":{"document":"દસà«àª¤àª¾àªµà«àª","clipboard":"àªà«àª²àª¿àªªàª¬à«àª°à«àª¡/àª
ન","editing":"àªàª¡à«àª àªàª°àªµà«àª","forms":"ફà«àª°à«àª®","basicstyles":"બà«àª¸àª¿àªà« સà«àªàª¾àªàª²","paragraph":"ફàªàª°à«","links":"લà«àªàª","insert":"àªàª®à«àª°àªµà«àª","styles":"સà«àªàª¾àªàª²","colors":"રàªàª","tools":"àªà«àª²à«àª¸"},"toolbars":"àªàª¡à«àªàª° àªà«àª² બાર"},"elementspath":{"eleLabel":"àªàª²à«àª®à«àª¨à«àªà«àª¸ નૠ","eleTitle":"àªàª²à«àª®à«àª¨à«àª %1"},"list":{"bulletedlist":"બà«àª²à«àª સà«àªàª¿","numberedlist":"સàªàªà«àª¯àª¾àªàª
ન સà«àªàª¿"},"indent":{"indent":"àªàª¨à«àª¡à«àª¨à«àª, લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ વધારવà«","outdent":"àªàª¨à«àª¡à«àª¨à«àª લà«àªà«àª¨àª¾ àªàª°àªàªàª®àª¾àª àªàªà«àª¯àª¾ àªàªàª¾àª¡àªµà«"},"find":{"find":"શà«àª§àªµà«àª","findOptions":"વà«àªàª²à«àªª શà«àª§à«","findWhat":"ઠશà«àª§à«","matchCase":"àªà«àª¸ સરàªàª¾ રાàªà«","matchCyclic":"સરàªàª¾àªµàªµàª¾ બધા","matchWord":"બàªàª¾ શબà«àª¦ સરàªàª¾ રાàªà«","notFoundMsg":"તમૠશà«àª§à«àª²à« àªà«àªà«àª¸à«àª નથૠમળà«","replace":"રિપà«àª²à«àª¸/બદલવà«àª","replaceAll":"બàªàª¾ બદલૠ","replaceSuccessMsg":"%1 ફà«àª°àª«àª¾àª°à« બાદલાયા àªà«.","replaceWith":"àªàª¨àª¾àª¥à« બદલà«","title":"શà«àª§àªµà«àª àª
નૠબદલવà«àª"},"fakeobjects":{"anchor":"àª
નàªàª°","flash":"ફà«àª²à«àª¶ ","hiddenfield":"હિડન ","i
frame":"IFrame","unknown":"àª
નનà«àª¨ àªàª¬à«àªà«àªà«àª"},"flash":{"access":"સà«àªà«àª°à«àªªà«àª àªàªà«àª¸à«àª¸","accessAlways":"હમà«àª¶àª¾àª","accessNever":"નહà«","accessSameDomain":"àªàª ડà«àª®à«àª¨","alignAbsBottom":"Abs નà«àªà«","alignAbsMiddle":"Abs àªàªªàª°","alignBaseline":"àªàª§àª¾àª° લà«àªà«","alignTextTop":"àªà«àªà«àª¸à«àª àªàªªàª°","bgcolor":"બà«
àªàªà«àª°àª¾àªàª¨à«àª¡ રàªàª,","chkFull":"ફà«àª² સà«àªà«àª°à«àª¨ àªàª°àªµà«àª","chkLoop":"લà«àªª","chkMenu":"ફà«àª²à«
શ મà«àª¨à«àª¯à« નૠપà«àª°àª¯à«àª àªàª°à«","chkPlay":"àªàªà«/સà«àªµàª¯àª પà«àª²à«","flashvars":"ફલà«àª¶ ના વિàªàª²à«àªªà«","hSpace":"સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾","properties":"ફà«àª²à«
શના àªà«àª£","propertiesTab":"àªà«àª£","quality":"àªà«àª£àª§àª°à«àª®","qualityAutoHigh":"àªàªà« àªàªàªà«àª","qualityAutoLow":"àªàªà« નà«àªà«àª","qu
alityBest":"શà«àª°à«àª·à«àª ","qualityHigh":"àªàªàªà«àª","qualityLow":"નà«àªà«àª","qualityMedium":"મધà«àª¯àª®","scale":"સà«àªà«àª²","scaleAll":"સà«àªà«àª² àªàª²/બધૠબતાવà«","scaleFit":"સà«àªà«àª² àªàªàª¦àª® ફà«àª","scaleNoBorder":"સà«àªà«àª² બà«àª°à«àª¡àª° વàªàª°","title":"ફà«àª²à«
શ àªà«àª£","vSpace":"લàªàª¬àª°à«àªª àªàªà«àª¯àª¾","validateHSpace":"HSpace àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","validateSrc":"લિàªàª URL àªàª¾àªàªª àªàª°à«","validateVSpace":"VSpace àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","windowMode":"વિનà«àª¡à« મà«àª¡","windowModeOpaque":"àª
પારદરà«àª¶àª","windowModeTransparent":"પારદરà«àª¶àª","windowModeWindow":"વિનà«àª¡à«"},"font":{"fontSize":{"label":"ફà«àª¨à«àª સાàªàª/àªàª¦","voiceLabel":"ફà«àª¨à«àª સાàªàª","panelTitle":"ફà«àª¨à«àª સાàªàª/àªàª¦"},"label":"ફà«àª¨à«àª","pan
elTitle":"ફà«àª¨à«àª","voiceLabel":"ફà«àª¨à«àª"},"forms":{"button":{"title":"બàªàª¨àª¨àª¾ àªà«àª£","text":"àªà«àªà«àª¸à«àª (વà«
લà«àª¯à«)","type":"પà«àª°àªàª¾àª°","typeBtn":"બàªàª¨","typeSbm":"સબà«àª®àª¿àª","typeRst":"રિસà«àª"},"checkboxAndRadio":{"checkboxTitle":"àªà«àª બà«àªà«àª¸ àªà«àª£","radioTitle":"રà«àª¡àª¿àª બàªàª¨àª¨àª¾ àªà«àª£","value":"વà«
લà«àª¯à«","selected":"સિલà«àªà«àªà«àª¡"},"form":{"title":"ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£","menu":"ફà«àª°à«àª®/પતà«àª°àªàª¨àª¾ àªà«àª£","action":"àªà«àª°àª¿àª¯àª¾","method":"પદà«àª§àª¤àª¿","encoding":"àª
નà«àªà«àª¡à«àª¨à«àª"},"hidden":{"title":"àªà«àªªà«àª¤ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£","name":"નામ","value":"વà«
લà«àª¯à«"},"select":{"title":"પસàªàª¦àªà« àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£","selectInfo":"સà«àªàª¨àª¾","opAvail":"àªàªªàª²àª¬à«àª§ વિàªàª²à«àªª","v
alue":"વà«
લà«àª¯à«","size":"સાàªàª","lines":"લà«àªà«àª","chkMulti":"àªàªàª¥à« વધારૠપસàªàª¦ àªàª°à« શàªà«","opText":"àªà«àªà«àª¸à«àª","opValue":"વà«
લà«àª¯à«","btnAdd":"àªàª®à«àª°àªµà«àª","btnModify":"બદલવà«àª","btnUp":"àªàªªàª°","btnDown":"નà«àªà«","btnSetValue":"પસàªàª¦ àªàª°àª²à« વà«
લà«àª¯à« સà«àª àªàª°à«","btnDelete":"રદ àªàª°àªµà«àª"},"textarea":{"title":"àªà«àªà«àª¸à«àª àªàª
રિàª, શબà«àª¦ વિસà«àª¤àª¾àª°àª¨àª¾ àªà«àª£","cols":"àªà«àª²àª®/àªàªà« àªàªàª¾àª°","rows":"પàªàªà«àª¤àª¿àª"},"textfield":{"title":"àªà«àªà«àª¸à«àª ફà«àª²à«àª¡, શબà«àª¦ àªà«àª·à«àª¤à«àª°àª¨àª¾ àªà«àª£","name":"નામ","value":"વà«
લà«àª¯à«","charWidth":"àªà«àª°à«àªà«àªàª°àª¨à« પહà«àª³àª¾àª","maxChars":"àª
ધિàªàª¤àª® àªà«àª°à«àªà«àªàª°","type":"àªàª¾àªàªª","typeText":"àªà«àªà«àª¸à«àª","typePass":"પàª
¾àª¸àªµàª°à«àª¡","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«","panelTitle":"ફà«àª¨à«àª ફà«àª°à«àª®àª, રàªàª¨àª¾àª¨à« શà«àª²à«","tag_address":"સરનામà«àª","tag_div":"શà«àª°à«àª·àª (DIV)","tag_h1":"શà«àª°à«àª·àª 1","tag_h2":"શà«àª°à«àª·àª 2","tag_h3":"શà«àª°à«àª·àª 3","tag_h4":"શà«àª°à«àª·àª 4","tag_h5":"શà«àª°à«àª·àª 5","tag_h6":"શà«àª°à«àª·àª 6","tag_p":"સામાનà«àª¯","tag_pre":"ફà«àª°à«àª®àªà«àª¡"},"horizontalrule":{"toolbar":"સમસà«àª¤àª°à«àª¯ રà«àªàª¾ àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«"},"iframe":{"border":"ફà«àª°à«àª® બà«àª°à«àª¡à«àª° બતાવવà«","noUrl":"iframe URL àªàª¾àªàªªà« àªàª°à«","scrolling":"સà«àªà«àª°à«àª²àª¬àª¾àª° àªàª¾àª²à« àªàª°àªµàª¾","title":"IFrame વિàªàª²à«àªªà«","toolbar":"IFrame"},"i
mage":{"alertUrl":"àªàª¿àª¤à«àª°àª¨à« URL àªàª¾àªàªª àªàª°à«","alt":"àªàª²à«àªàª°à«àª¨àª àªà«àªà«àª¸à«àª","border":"બà«àª°à«àª¡àª°","btnUpload":"ઠસરà«àªµàª°àª¨à« મà«àªàª²àªµà«àª","button2Img":"તમારૠàªàª®à«àª બàªàª¨àª¨à« સાદૠàªàª®à«àªàª®àª¾àª બદલવà«àª àªà«.","hSpace":"સમસà«àª¤àª°à«àª¯ àªàªà«àª¯àª¾","img2Button":"તમારૠસાદૠàªàª®à«àªàª¨à« àªàª®à«àª બàªàª¨àª®àª¾àª બદલવà«àª àªà«.","infoTab":"àªàª¿àª¤à«àª° નૠàªàª¾àª£àªàª¾àª°à«","linkTab":"લિàªàª","lockRatio":"લà«àª àªà«àª£à«àª¤à«àª¤àª°","menu":"àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£","resetSize":"રà«àª¸à«àª સાàªàª","title":"àªàª¿àª¤à«àª°àª¨àª¾ àªà«àª£","titleButton":"àªàª¿àª¤à«àª° બàªàª¨àª¨àª¾ àªà«àª£","upload":"àª
પલà«àª¡","urlMissing":"àªàª®à«àªàª¨à« મà«àª³ URL àªà« નહà«.","vSpace":"લàªàª¬àª°à«àªª àªàªà«àª¯àª¾","validateBorder":"બà«
રà«àª¡à«àª° àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","validateHSpace":"HSpaceàªàªàªàª¡à« હà«àªµà« àªà«àªàª.","validateVSpace":"VSpace àªàªàªàª¡à« હà«àªµà« àªà«àªàª. "},"smiley":{"options":"સમà«àª¯à«àª²à« વિàªàª²à«àªªà«","title":"સà«àª®àª¾àªàª²à« પસàªàª¦ àªàª°à«","toolbar":"સà«àª®àª¾àªàª²à«"},"justify":{"block":"બà«àª²à«àª, àª
àªàª¤àª°àª¾àª¯ àªàª¸à«àªàª¿àª«àª¾àª","center":"સàªàªà«àªàª¦à«àª°àª£/સà«àªàªàª°àª¿àªàª","left":"ડાબૠબાàªà«àª/બાàªà« તરફ","right":"àªàª®àª£à« બાàªà«àª/બાàªà« તરફ"},"link":{"acccessKey":"àªàªà«àª¸à«àª¸ àªà«","advanced":"àª
ડà«àªµàª¾àª¨à«àª¸àª¡","advisoryContentType":"મà«àªà«àª¯ àªàª¨à«àªà«àª¨à«àª પà«àª°àªàª¾àª°","advisoryTitle":"મà«àªà«àª¯ મથાળà«àª","anchor":{"toolbar":"àªàªàªàª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«","menu":"àªàªàªàª°àª¨àª¾ àªà«àª£","title":"àªàª
àªàª°àª¨àª¾ àªà«àª£","name":"àªàªàªàª°àª¨à«àª નામ","errorName":"àªàªàªàª°àª¨à«àª નામ àªàª¾àªàªª àªàª°à«","remove":"સà«àª¥àª¿àª° નàªàª°àªµà«àª"},"anchorId":"àªàªàªàª° àªàª²àª¿àª®àª¨à«àª Id થૠપસàªàª¦ àªàª°à«","anchorName":"àªàªàªàª° નામથૠપસàªàª¦ àªàª°à«","charset":"લિàªàª રિસà«àª°à«àª¸ àªà«
રિàªà«àªàª° સà«àª","cssClasses":"સà«àªàª¾àªàª²-શà«àª àªà«àª²àª¾àª¸","emailAddress":"àª-મà«àª² સરનામà«àª","emailBody":"સàªàª¦à«àª¶","emailSubject":"àª-મà«àª² વિષય","id":"Id","info":"લિàªàª àªàª¨à«àª«à« àªà«
બ","langCode":"àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿","langDir":"àªàª¾àª·àª¾ લà«àªàªµàª¾àª¨à« પદà«àª§àª¤àª¿","langDirLTR":"ડાબૠથૠàªàª®àª£à« (LTR)","langDirRTL":"àªàª®àª£à« થૠડાબૠ(RTL)","menu":" લિàªàª àªàª¡àª¿àª/માઠફà«àª°àª«àª¾àª° àªàª°àªµà«","name":"નàª
¾àª®","noAnchors":"(ડà«àªà«àª¯à«àª®àª¨à«àªàª®àª¾àª àªàªàªàª°àª¨à« સàªàªà«àª¯àª¾)","noEmail":"àª-મà«àª² સરનામà«àª àªàª¾àªàªª àªàª°à«","noUrl":"લિàªàª URL àªàª¾àªàªª àªàª°à«","other":"<other> <àª
નà«àª¯>","popupDependent":"ડિપà«àª¨à«àª¡àª¨à«àª (Netscape)","popupFeatures":"પà«àªª-àª
પ વિનà«àª¡à« ફà«àªàª°àª¸à«
","popupFullScreen":"ફà«àª² સà«àªà«àª°à«àª¨ (IE)","popupLeft":"ડાબૠબાàªà«","popupLocationBar":"લà«àªà«àª¶àª¨ બાર","popupMenuBar":"મà«àª¨à«àª¯à« બાર","popupResizable":"રà«àª¸àª¾àªàªàªàª¬àª²","popupScrollBars":"સà«àªà«àª°à«àª² બાર","popupStatusBar":"સà«àªà«
àªàª¸ બાર","popupToolbar":"àªà«àª² બાર","popupTop":"àªàª®àª£à« બાàªà«","rel":"સàªàª¬àªàª§àª¨à« સà«àª¥àª¿àª¤àª¿","selectAnchor":"àªàªàªàª° પસàªàª¦ àªàª°à«","styles":"સà«àªàª¾àªàª²","tabIndex":"àªà«
બ àªàª¨à«àª¡à«àªà«àª¸","tar
get":"àªàª¾àª°à«àªà«àª/લàªà«àª·à«àª¯","targetFrame":"<ફà«àª°à«àª®>","targetFrameName":"àªàª¾àª°à«àªà«àª ફà«àª°à«àª® નà«àª નામ","targetPopup":"<પà«àªª-àª
પ વિનà«àª¡à«>","targetPopupName":"પà«àªª-àª
પ વિનà«àª¡à« નà«àª નામ","title":"લિàªàª","toAnchor":"ઠપà«àªàª¨à« àªàªàªàª°","toEmail":"àª-મà«àª²","toUrl":"URL","toolbar":"લિàªàª àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«","type":"લિàªàª પà«àª°àªàª¾àª°","unlink":"લિàªàª àªàª¾àª¢àªµà«","upload":"àª
પલà«àª¡"},"liststyle":{"armenian":"àª
રમà«àª¨àª¿àª¯àª¨ àªàªàªàª¡àª¾ પદà«àª§àª¤àª¿","bulletedTitle":"બà«àª²à«àªà«àª¡ લà«àª¸à«àªàª¨àª¾ àªà«àª£","circle":"વરà«àª¤à«àª³","decimal":"àªàªàªàª¡àª¾ (1, 2, 3, etc.)","decimalLeadingZero":"સà«àª¨à«àª¯ àªàªàª³ àªàªàªàª¡àª¾ (01, 02, 03, etc.)","disc":"ડિસà«àª","georgian":"àªà«àªàª°à«àªàª¿àª¯àª¨ àªàªàªàª¡àª¾ પદà«àª
§àª¤àª¿ (an, ban, gan, etc.)","lowerAlpha":"àªàª²à«àª«àª¾ નાના (a, b, c, d, e, etc.)","lowerGreek":"àªà«àª°à«àª નાના (alpha, beta, gamma, etc.)","lowerRoman":"રà«àª®àª¨ નાના (i, ii, iii, iv, v, etc.)","none":"àªàª¸à« ","notset":"<સà«àª નથà«>","numberedTitle":"àªàªàªàª¡àª¾àª¨àª¾ લà«àª¸à«àªàª¨àª¾ àªà«àª£","square":"àªà«àª°àª¸","start":"શરૠàªàª°àªµà«àª","type":"પà«àª°àªàª¾àª°","upperAlpha":"àªàª²à«àª«àª¾ મà«àªàª¾ (A, B, C, D, E, etc.)","upperRoman":"રà«àª®àª¨ મà«àªàª¾ (I, II, III, IV, V, etc.)","validateStartNumber":"લà«àª¸à«àªàª¨àª¾ સરà«àªàª¤àª¨à« àªàªàªàª¡à« પà«àª°à« હà«àªµà« àªà«àªàª."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"મà«àªà«àª àªàª°àªµà«àª","minimize":"નાનà«àª àªàª°àªµà«àª"},"newpage":{"toolbar":"નવૠપાનà«àª"},"pagebreak":{"alt":"નવà«àª પાનà«àª","toolbar":"àªàª¨à«àª¸àª°à«àª àª
ªà«àªàª¬à«àª°à«àª/પાનાનૠàª
લઠàªàª°àªµà«àª/દાàªàª² àªàª°àªµà«àª"},"pastetext":{"button":"પà«àª¸à«àª (àªà«àªà«àª¸à«àª)","title":"પà«àª¸à«àª (àªà«àªà«àª¸à«àª)"},"pastefromword":{"confirmCleanup":"તમૠàªà« àªà«àªà«àª·à«àª¤à« àªà«àªªà« àªàª°à« રહà«àª¯àª¾ àªà« àªà« વરà«àª¡ નૠàªà«. àªà«àªªà« àªàª°àª¤àª¾ પà«àª¹àª²àª¾ સાફ àªàª°àªµà« àªà«?","error":"પà«àª¸à«àª àªàª°à«àª²à« ડà«àªàª¾ àªàª¨à«àªàª°àª¨àª² àªàª°àª° ના લà«àª¥à« સાફ àªàª°à« શàªàª¾àª¯à« નથà«.","title":"પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)","toolbar":"પà«àª¸à«àª (વડà«
àªà«àªà«àª¸à«àª)"},"preview":{"preview":"પà«àª°à«àªµàª¦àª°à«àª¶àª¨"},"print":{"toolbar":"પà«àª°àª¿àª¨à«àª"},"removeformat":{"toolbar":"ફà«àª°à«àª®àª àªàª¾àª¢àªµà«àª"},"save":{"toolbar":"સà«àªµ"},"selectall":{"toolbar":"બàªà«àª પસàªàª¦ àªàª°àªµà«àª"},"
showblocks":{"toolbar":"બà«àª²à«àª બતાવવà«àª"},"sourcearea":{"toolbar":"મà«àª³ àªà« પà«àª°àª¾àª¥àª®àª¿àª દસà«àª¤àª¾àªµà«àª"},"specialchar":{"options":"સà«àªªà«àª¶àª¿àª
લ àªàª°à«àªà«àªàª°àª¨àª¾ વિàªàª²à«àªªà«","title":"સà«àªªà«àª¶àª¿àª
લ વિશિષà«àª àª
àªà«àª·àª° પસàªàª¦ àªàª°à«","toolbar":"વિશિષà«àª àª
àªà«àª·àª° àªàª¨à«àª¸àª°à«àª/દાàªàª² àªàª°àªµà«àª"},"scayt":{"about":"SCAYT વિષà«","aboutTab":"વિષà«","addWord":"શબà«àª¦ àªàª®à«àª°àªµà«","allCaps":"àªàª²-àªà«àªªà«àª¸ વરà«àª¡ àªà«àª¡à« દà«.","dic_create":"બનાવવà«àª","dic_delete":"àªàª¾àª¢à« નાàªàªµà«àª","dic_field_name":"શબà«àª¦àªà«àª¶ નામ","dic_info":"પà«àª¹àª²àª¾ User Dictionary, Cookie તરà«àªà« સà«àªà«àª° થાય àªà«. પણ Cookie નૠસમતા àªàªà« àªà«. àªàª¯àª¾àª°à« User Dictionary, Cookie તરà«àªà« સà«àª
à«àª° ના àªàª°à« શàªàª¾àª¯, તà«àª¯àª¾àª°à« તૠàª
મારા સરà«àªµàª° પર સà«àªà«àª° થાય àªà«. તમારૠવà«àª¯àª¤àª¿àªàª¤ ડà«àªàª¸à«àª¨àª°à« નૠસરà«àªµàª° પર સà«àªà«àª° àªàª°àªµàª¾ માàªà« તમારૠતà«àª¨à«àª નામ àªàªªàªµà«àª પડશà«. àªà« તમૠતમારૠડà«àªàª¸à«àª¨àª°à« નà«àª નામ àªàªªà«àª²à«àª હà«àª¯ તૠતમૠરિસà«àªà«àª° બàªàª¨ àªà«àª²à«àª àªàª°à« શàªà«.","dic_rename":"નવà«àª નામ àªàªªàªµà«àª","dic_restore":"પાàªà«àª ","dictionariesTab":"શબà«àª¦àªà«àª¶","disable":"SCAYT ડિસà«àª¬àª² àªàª°àªµà«àª","emptyDic":"ડિàªà«àª¸àª¨àª°à«àª¨à«àª નામ àªàª¾àª²à« ના હà«àª¯.","enable":"SCAYT àªàª¨à«àª¬àª² àªàª°àªµà«àª","ignore":"àªàªà«àª¨à«àª°","ignoreAll":"બધા àªàªà«àª¨à«àª° ","ignoreDomainNames":"ડà«àª®à«àª¨ નામ àªà«àª¡à«
દà«.","langs":"àªàª¾àª·àª¾àª","languagesTab":"àªàª¾àª·àª¾","mixedCase":"મિàªà«àª¸ àªà«àª¸ વરà«àª¡ àªà«àª¡à« દà«.","mixedWithDigits":"àªàªàªàª¡àª¾ વાળા શબà«àª¦ àªà«àª¡à« દà«.","moreSuggestions":"વધારૠવિàªàª²à«àªªà«","opera_title":"àªàªªà«àª°àª¾àª®àª¾àª સપà«àª°à«àª નથà«","options":"વિàªàª²à«àªªà«","optionsTab":"વિàªàª²à«àªªà«","title":"àªàª¾àªàªª àªàª°àª¤àª¾ સà«àªªà«àª² તપાસà«","toggle":"SCAYT àªà«àªàª²","noSuggestions":"No suggestion"},"stylescombo":{"label":"શà«àª²à«/રà«àª¤","panelTitle":"ફà«àª°à«àª®à«àª ","panelTitle1":"બà«àª²à«àª ","panelTitle2":"àªàª¨àª²àª¾àªàª¨ ","panelTitle3":"àªàª¬à«àªà«àªà«àª પદà«àª§àª¤àª¿"},"table":{"border":"àªà«àª ાનૠબાàªà«(બà«àª°à«àª¡àª°) સાàªàª","caption":"મથાળà«àª/àªà«
પà«àª¶àª¨ ","cell":{"menu":"àªà«àª·àª¨àª¾ àªàª¾àª¨àª¾","insertBefore":"પહà«àª²àª¾àª àª
à«àª· àªàª®à«àª°àªµà«","insertAfter":"પàªà« àªà«àª· àªàª®à«àª°àªµà«","deleteCell":"àªà«àª· ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«","merge":"àªà«àª· àªà«àªàª¾ àªàª°àªµàª¾","mergeRight":"àªàª®àª£à« બાàªà« àªà«àªàª¾ àªàª°àªµàª¾","mergeDown":"નà«àªà« àªà«àªàª¾ àªàª°àªµàª¾","splitHorizontal":"àªà«àª·àª¨à« સમસà«àª¤àª°à«àª¯ વિàªàª¾àªàª¨ àªàª°àªµà«àª","splitVertical":"àªà«àª·àª¨à« સà«àª§à«àª નૠàªàªà«àª વિàªàª¾àªàª¨ àªàª°àªµà«àª","title":"સà«àª²àª¨àª¾ àªà«àª£","cellType":"સà«àª²àª¨à« પà«àª°àªàª¾àª°","rowSpan":"àªàª¡à« àªàªàª¾àª°àª¨à« àªàªà«àª¯àª¾","colSpan":"àªàªà« àªàª¤àª¾àª°àª¨à« àªàªà«àª¯àª¾","wordWrap":"વરà«àª¡ રà«àªª","hAlign":"સપાઠલાàªàª¨àª¦à«àª°à«","vAlign":"àªàªà« લાàªàª¨àª¦à«àª°à«","alignBaseline":"બસૠલાàªàª¨","bgColor":"પાàªàª¾àª³àª¨à« રàªàª","borderColor":"બà«àª°à«àª¡à«àª° રàªàª","data":
"સà«àªµà«àªà«àª¤ માહિતà«","header":"મથાળà«àª","yes":"હા","no":"ના","invalidWidth":"સà«àª²àª¨à« પà«àª¹àª²àª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","invalidHeight":"સà«àª²àª¨à« àªàªàªàª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","invalidRowSpan":"રૠસà«àªªàª¾àª¨ àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","invalidColSpan":"àªà«àª²àª® સà«àªªàª¾àª¨ àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","chooseColor":"પસàªàª¦ àªàª°àªµà«àª"},"cellPad":"સà«àª² પà«
ડિàªàª","cellSpace":"સà«àª² àª
àªàª¤àª°","column":{"menu":"àªà«àª²àª®/àªàªà« àªàªàª¾àª°","insertBefore":"પહà«àª²àª¾àª àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«","insertAfter":"પàªà« àªà«àª²àª®/àªàªà« àªàªàª¾àª° àªàª®à«àª°àªµà«","deleteColumn":"àªà«àª²àª®/àªàªà« àªàªàª¾àª° ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«"},"columns":"àªà«àª²àª®/àªàªà« àªàªàª¾àª°","deleteTable":"àªà«àª à
« ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«àª","headers":"મથાળા","headersBoth":"બà«àªµà«àª","headersColumn":"પહà«àª²à« àªàªà« àªàªàª¾àª°","headersNone":"નથૠ","headersRow":"પહà«àª²à« àªàªàª¾àª°","invalidBorder":"બà«àª°à«àª¡àª° àªàª àªàªàªàª¡à« હà«àªµà« àªà«àªàª","invalidCellPadding":"સà«àª²àª¨à« àª
àªàª¦àª°àª¨à« àªàªà«àª¯àª¾ સà«àª¨à«àª¯ àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.","invalidCellSpacing":"સà«àª² વàªà«àªà«àª¨à« àªàªà«àª¯àª¾ સà«àª¨à«àª¯ àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.","invalidCols":"àªàªà« àªàªàª¾àª°, 0 àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.","invalidHeight":"àªà«àª¬àª²àª¨à« àªàªàªàª¾àª àªàªàªàª¡à« હà«àªµà« àªà«àªàª.","invalidRows":"àªàª¡à« àªàªàª¾àª°, 0 àªàª°àª¤àª¾ વધારૠહà«àªµà« àªà«àªàª.","invalidWidth":"àªà«àª¬àª²àª¨à« પà«àª¹àª²àª¾àª àªàªàªàª¡à« હà«àªµà«
àªà«àªàª.","menu":"àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª","row":{"menu":"પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾","insertBefore":"પહà«àª²àª¾àª પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«","insertAfter":"પàªà« પàªàªà«àª¤àª¿ àªàª®à«àª°àªµà«","deleteRow":"પàªàªà«àª¤àª¿àª ડિલà«àª/àªàª¾àª¢à« નાàªàªµà«"},"rows":"પàªàªà«àª¤àª¿àª¨àª¾ àªàª¾àª¨àª¾","summary":"àªà«àªàªà« àªàª¹à«àªµàª¾àª²","title":"àªà«àª¬àª², àªà«àª ાનà«àª મથાળà«àª","toolbar":"àªà«àª¬àª², àªà«àª à«","widthPc":"પà«àª°àª¤àª¿àª¶àª¤","widthPx":"પિàªàª¸àª²","widthUnit":"પà«àª¹àª¾àª²àª¾àª àªàªàª®"},"undo":{"redo":"રિડà«; પàªà« હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«","undo":"રદ àªàª°àªµà«àª; પહà«àª²àª¾àª હતૠàªàªµà« સà«àª¥àª¿àª¤àª¿ પાàªà« લાવવà«"},"wsc":{"btnIgnore":"àªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«","btnIgnoreAll":"બધા
નૠàªàªà«àª¨à«àª°/àª
વàªàª£àª¨àª¾ àªàª°àªµà«","btnReplace":"બદલવà«àª","btnReplaceAll":"બધા બદલૠàªàª°à«","btnUndo":"àª
નà«àª¡à«","changeTo":"àªàª¨àª¾àª¥à« બદલવà«àª","errorLoading":"સરà«àªµàª¿àª¸ àªàªªà«àª²à«àªà«àª¶àª¨ લà«àª¡ નથૠથ: %s.","ieSpellDownload":"સà«àªªà«àª²-àªà«àªàª° àªàª¨à«àª¸à«àªà«àª² નથà«. શà«àª તમૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªàªà« àªà«?","manyChanges":"શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: %1 શબà«àª¦ બદલયા àªà«","noChanges":"શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàªàªªàª£ શબà«àª¦ બદલયૠનથà«","noMispell":"શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªà«àªà« àªà«àª¡àª£à« મળૠનથà«","noSuggestions":"- àªàª સàªà«àª¶àª¨ નથૠ-","notAvailable":"માફ àªàª°àª¶à«,
ઠસà«àªµàª¿àª§àª¾ àªàªªàª²àª¬à«àª§ નથà«","notInDic":"શબà«àª¦àªà«àª¶àª®àª¾àª નથà«","oneChange":"શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª પà«àª°à«àª£: àªàª શબà«àª¦ બદલયૠàªà«","progress":"શબà«àª¦àª¨à« àªà«àª¡àª£à«/સà«àªªà«àª² àªà«àª àªàª¾àª²à« àªà«...","title":"સà«àªªà«àª² ","toolbar":"àªà«àª¡àª£à« (સà«àªªà«àª²àª¿àªàª) તપાસવà«"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/he.js b/share/static/RichText/lang/he.js
index 709b154..f5f48db 100644
--- a/share/static/RichText/lang/he.js
+++ b/share/static/RichText/lang/he.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.he={dir:'rtl',editorTitle:'×¢××¨× ××§×¡× ×¢×©×ר, %1, ×××¥ ××× (ALT) + 0 ××¢×ר×.',toolbar:'סר×× ×××××',editor:'×¢××¨× ××§×¡× ×¢×©×ר',source:'××§×ר',newPage:'××£ ××ש',save:'ש××ר×',preview:'תצ××× ××§××××',cut:'×××ר×',copy:'×עתק×',paste:'××××§×',print:'××פס×',underline:'×§× ×ª×ת××',bold:'××××ש',italic:'× ×××',selectAll:'×××רת ×××',removeFormat:'×סרת ××¢×צ××',strike:'×ת×× ××××§',subscript:'×ת×× ×ª×ת××',superscript:'×ת×× ×¢××××',horizontalrule:'××ספת ×§× ××פק×',pagebreak:'××ספת ש××רת ××£',unlink:'×סרת ××§×ש×ר',undo:'××××× ×¦×¢× ××ר××',redo:'×××¨× ×¢× ×¦×¢× ××ר××',common:{browseServer:'ס××ר ×שרת',url:'×ת××ת (URL)',protocol:'פר××××§××',upload:'××¢×××',uploadSubmit:'ש×××× ×שרת',image:'ת××× ×',flash:'פ××ש',form:'××פס',checkbox:'ת××ת ס××××',radio
:'×××¦× ×פשר×××ת',textField:'ש×× ×קס×',textarea:'××××ר ×קס×',hiddenField:'ש×× ××××',button:'×פת×ר',select:'ש×× ×××ר×',imageButton:'×פת×ר ת××× ×',notSet:'<×× × ×§××¢>',id:'××××× (ID)',name:'ש×',langDir:'××××× ×©×¤×',langDirLtr:'ש××× ××××× (LTR)',langDirRtl:'×××× ×ש××× (RTL)',langCode:'×§×× ×©×¤×',longDescr:'×§×ש×ר ×ת×××ר ×פ×ר×',cssClass:'×××קת ×¢×צ×× (CSS Class)',advisoryTitle:'××תרת ××צעת',cssStyle:'ס×× ××',ok:'××ש×ר',cancel:'×××××',close:'ס××ר×',preview:'תצ××× ××§××××',generalTab:'××××',advancedTab:'×פשר×××ת ×תק×××ת',validateNumberFailed:'××¢×¨× ×××× ××××ת ×ספר×.',confirmNewPage:'×× ×ש×× ×××× ×©×× × ×©××¨× ×××××. ××× ×××¢××ת ××£ ××ש?',confirmCancel:'×××§ ×××פשר×××ת ש×× ×, ××× ×ס××ר ×ת ×××××××?',options:'×פשר×××ת',targ
et:'××ר×',targetNew:'×××× ××ש (_blank)',targetTop:'××××× ××¢×××× ×××תר (_top)',targetSelf:'×××ª× ×××× (_self)',targetParent:'×××× ××× (_parent)',langDirLTR:'ש××× ××××× (LTR)',langDirRTL:'×××× ×ש××× (RTL)',styles:'ס×× ××',cssClasses:'××××§×ת ××××× ×ת ס×× ××',unavailable:'%1<span class="cke_accessibility">, ×× ××××</span>'},contextmenu:{options:'×פשר×××ת תפר×× ××קשר'},specialChar:{toolbar:'××ספת ×ª× ×××××',title:'×××רת ×ª× ×××××',options:'×פשר×××ת ת×××× ×××××××'},link:{toolbar:'××ספת/ער××ת ×§×ש×ר',other:'<××ר>',menu:'××פ××× × ×§×ש×ר',title:'×§×ש×ר',info:'××××¢ ×¢× ××§×ש×ר',target:'××ר×',upload:'××¢×××',advanced:'×פשר×××ת ×תק×××ת',type:'ס×× ×§×ש×ר',toUrl:'×ת××ת (URL)',toAnchor:'×¢××× ××¢××× ××',toEmail:'×××"×',targetFrame:'<×ס×רת>',targetPopup:'<
×××× ×§×פץ>',targetFrameName:'×©× ×ס×רת ×××¢×',targetPopupName:'×©× ××××× ××§×פץ',popupFeatures:'ת××× ×ת ××××× ××§×פץ',popupResizable:'ש×× ×× ××××',popupStatusBar:'סר×× ×××××',popupLocationBar:'סר×× ×ת××ת',popupToolbar:'סר×× ×××××',popupMenuBar:'סר×× ×ª×¤×¨××',popupFullScreen:'××¡× ××× (IE)',popupScrollBars:'× ××ª× ××××××',popupDependent:'ת××× (Netscape)',popupWidth:'ר×××',popupLeft:'×××§×× ×¦× ×©×××',popupHeight:'××××',popupTop:'×××§×× ×¦× ×¢××××',id:'××××× (ID)',langDir:'××××× ×©×¤×',langDirLTR:'ש××× ××××× (LTR)',langDirRTL:'×××× ×ש××× (RTL)',acccessKey:'×קש ××ש×',name:'ש×',langCode:'×§×× ×©×¤×',tabIndex:'×ספר ×××',advisoryTitle:'××תרת ××צעת',advisoryContentType:'Content Type ××צע',cssClasses:'×××××× ×ת ×¢×צ×× ×§××צ×ת',charset:'×§×××× ××ש×× ×××§×שר',styles:'ס×
× ××',selectAnchor:'×××רת ×¢×××',anchorName:'עפ"× ×©× ××¢×××',anchorId:'עפ"× ××××× (ID) ××××× ×',emailAddress:'×ת××ת ××××"×',emailSubject:'× ××©× ×××××¢×',emailBody:'×××£ ×××××¢×',noAnchors:'(××× ×¢××× ×× ×××× ×× ×××£)',noUrl:'×ש ×××§××× ×ת ×ת××ת ××§×ש×ר (URL)',noEmail:'×ש ×××§××× ×ת ×ת××ת ××××"×'},anchor:{toolbar:'××ספת/ער××ת × ×§××ת ×¢××××',menu:'××פ××× × × ×§××ת ×¢××××',title:'××פ××× × × ×§××ת ×¢××××',name:'×©× ×× ×§××ת ×¢××××',errorName:'×ש ×××§××× ×©× ×× ×§××ת ×¢××××'},list:{numberedTitle:'ת××× ×ת רש××× ×××ספרת',bulletedTitle:'ת××× ×ת רש××ת ת××××××',type:'ס××',start:'ת×××ת ×ספ×ר',validateStartNumber:'ש×× ×ª×××ת ××ספ×ר ×××× ××××× ×ספר ש××.',circle:'×¢×××× ×¨××§',disc:'×¢×××× ×××',square:'ר××××¢',none:'×××'
,notset:'<×× × ×§××¢>',armenian:'ספר×ת ×ר×× ××ת',georgian:"ספר×ת ××××ר×××ת (an, ban, gan ×××')",lowerRoman:"ספ××¨× ×¨×××ת ×××ת××ת ×§×× ×ת (i, ii, iii, iv, v ×××')",upperRoman:"ספ××¨× ×¨××××ת ×××ת××ת ×××××ת (I, II, III, IV, V ×××')",lowerAlpha:"××ת××ת ×× ××××ת ×§×× ×ת (a, b, c, d, e ×××')",upperAlpha:"××ת××ת ×× ××××ת ×××××ת (A, B, C, D, E ×××')",lowerGreek:"××ת××ת ×××× ××ת ×§×× ×ת (alpha, beta, gamma ×××')",decimal:"ספר×ת (1, 2, 3 ×××')",decimalLeadingZero:"ספר×ת ×¢× 0 ××ת××× (01, 02, 03 ×××')"},findAndReplace:{title:'××פ×ש ××××פ×',find:'××פ×ש',replace:'×××פ×',findWhat:'××פ×ש ××ר××ת:',replaceWith:'××××¤× ×××ר××ת:',notFoundMsg:'×××§×¡× ××××קש ×× × ×צ×.',matchCase:'×××× × ××× ××ת××ת רש××ת ××§×× ×ת (Case)',matchWord:'×ת××× ××××× ××××
×',matchCyclic:'×ת××× ××××ר×ת',replaceAll:'××××¤× ××× ××¢×××',replaceSuccessMsg:'%1 ×קס××× ××××פ×.'},table:{toolbar:'××××',title:'××פ××× × ××××',menu:'××פ××× × ××××',deleteTable:'×××§ ××××',rows:'ש×ר×ת',columns:'×¢××××ת',border:'×××× ×ס×רת',align:'××ש×ר',alignLeft:'ש×××',alignCenter:'×ר××',alignRight:'××××',width:'ר×××',widthPx:'פ×קס×××',widthPc:'××××',widthUnit:'××××ת ר×××',height:'××××',cellSpace:'×ר××× ×ª×',cellPad:'ר×פ×× ×ª×',caption:'××ת××',summary:'תקצ×ר',headers:'××תר×ת',headersNone:'×××',headersColumn:'×¢×××× ×¨×ש×× ×',headersRow:'ש××¨× ×¨×ש×× ×',headersBoth:'×©× ×××',invalidRows:'ש×× ×ספר ×ש×ר×ת ×××× ××××ת ×ספר ×××× × 0.',invalidCols:'ש×× ×ספר ××¢××××ת ×××× ××××ת ×ספר ×××× × 0.',invalidBorder:'ש×× ×××× ××ס×רת ××××
××××ת ×ספר.',invalidWidth:'ש×× ×¨××× ××××× ×××× ××××ת ×ספר.',invalidHeight:'ש×× ×××× ××××× ×××× ××××ת ×ספר.',invalidCellSpacing:'ש×× ×¨×××× ×ת××× ×××× ××××ת ×ספר.',invalidCellPadding:'ש×× ×¨×פ×× ×ת××× ×××× ××××ת ×ספר.',cell:{menu:'××פ××× × ×ª×',insertBefore:'××ספת ×ª× ××¤× ×',insertAfter:'××ספת ×ª× ××ר×',deleteCell:'×××קת ת×××',merge:'××××× ×ª×××',mergeRight:'××× ×××× ×',mergeDown:'××× ××××',splitHorizontal:'פ×צ×× ×ª× ××פק×ת',splitVertical:'פ×צ×× ×ª× ×× ××ת',title:'ת××× ×ת ×ת×',cellType:'ס×× ×ת×',rowSpan:'×ת××ת ×ש×ר×ת',colSpan:'×ת××ת ×ת×××',wordWrap:'×× ×עת ×××שת ש×ר×ת',hAlign:'××ש×ר ××פק×',vAlign:'××ש×ר ×× ××',alignTop:'×××¢××',alignMiddle:'×ר××',alignBottom:'××××',alignBaseline:'ש×רת ×ס×ס',bgColor:'צ×
×¢ רקע',borderColor:'צ××¢ ×ס×רת',data:'××××¢',header:'××תרת',yes:'××',no:'××',invalidWidth:'ש×× ×¨××× ××ª× ×××× ××××ת ×ספר.',invalidHeight:'ש×× ×××× ××ª× ×××× ××××ת ×ספר.',invalidRowSpan:'ש×× ×ת××ת ×ש×ר×ת ×××× ××××ת ×ספר ש××.',invalidColSpan:'ש×× ×ת××ת ××¢××××ת ×××× ××××ת ×ספר ש××.',chooseColor:'××ר'},row:{menu:'ש×ר×',insertBefore:'××ספת ש××¨× ××¤× ×',insertAfter:'××ספת ש××¨× ××ר×',deleteRow:'×××קת ש×ר×ת'},column:{menu:'×¢××××',insertBefore:'××ספת ×¢×××× ××¤× ×',insertAfter:'××ספת ×¢×××× ××ר×',deleteColumn:'×××קת ×¢××××ת'}},button:{title:'××פ××× × ×פת×ר',text:'××§×¡× (ער×)',type:'ס××',typeBtn:'×פת×ר',typeSbm:'ש××××',typeRst:'××פ×ס'},checkboxAndRadio:{checkboxTitle:'××פ××× × ×ª××ת ס××××',radioTitle:'××פ××× × ×××¦× ×פש×
¨×××ת',value:'ער×',selected:'×ס×××'},form:{title:'××פ×× × ××פס',menu:'××פ×× × ××פס',action:'ש×× ××',method:'ס×× ×©××××',encoding:'×§××××'},select:{title:'××פ××× × ×©×× ×××ר×',selectInfo:'××××¢',opAvail:'×פשר×××ת ×××× ×ת',value:'ער×',size:'××××',lines:'ש×ר×ת',chkMulti:'××פש×ר ×××ר×ת ×ר×××ת',opText:'×קס×',opValue:'ער×',btnAdd:'××ספ×',btnModify:'ש×× ××',btnUp:'×××¢××',btnDown:'××××',btnSetValue:'×§×××¢× ××ר×רת ××××',btnDelete:'××××§×'},textarea:{title:'××פ××× × ××××ר ×קס×',cols:'×¢××××ת',rows:'ש×ר×ת'},textfield:{title:'××פ××× × ×©×× ×קס×',name:'ש×',value:'ער×',charWidth:'ר××× ××¤× ×ª××××',maxChars:'×קס×××× ×ª××××',type:'ס××',typeText:'×קס×',typePass:'ס×ס××'},hidden:{title:'××פ×× × ×©×× ××××',name:'ש×',value:'ער×'},image:{title:'××פ××× × ×
ת××× ×',titleButton:'××פ×× × ×פת×ר ת××× ×',menu:'ת××× ×ת ×ת××× ×',infoTab:'××××¢ ×¢× ×ת××× ×',btnUpload:'ש×××× ×שרת',upload:'××¢×××',alt:'××§×¡× ×××פ×',width:'ר×××',height:'××××',lockRatio:'× ×¢××ת ×××ס',unlockRatio:'××××× × ×¢××ת ×××ס',resetSize:'××פ×ס ×××××',border:'×ס×רת',hSpace:'×ר××× ××פק×',vSpace:'×ר××× ×× ××',align:'××ש×ר',alignLeft:'×ש×××',alignRight:'×××××',alertUrl:'×ש ×××§××× ×ת ×ת××ת ×ת××× ×',linkTab:'×§×ש×ר',button2Img:'××× ××פ×× ×ת ת××× ×ª ××פת×ר ×ת××× × ×¤×©×××?',img2Button:'××× ××פ×× ×ת ×ת××× × ××פת×ר ת××× ×?',urlMissing:'×ת××ת ×ת××× × ×סר×.',validateWidth:'ש×× ×ר××× ×××× ××××ת ×ספר ש××.',validateHeight:'ש×× ××××× ×××× ××××ת ×ספר ש××.',validateBorder:'ש×× ××ס×רת ×××× ××××ת ×ס
פר ש××.',validateHSpace:'ש×× ××ר××× ××××¤×§× ×××× ××××ת ×ספר ש××.',validateVSpace:'ש×× ××ר××× ××× ×× ×××× ××××ת ×ספר ש××.'},flash:{properties:'××פ××× × ×¤××ש',propertiesTab:'××פ××× ××',title:'××פ×× × ×¤××ש',chkPlay:'× ×××× ×××××××',chkLoop:'×××××',chkMenu:'×פשר תפר×× ×¤××ש',chkFull:'×פשר ×××× ×××',scale:'××××',scaleAll:'××¦× ×××',scaleNoBorder:'××× ×××××ת',scaleFit:'×ת××× ××ש××ת',access:'××שת סקר×פ×',accessAlways:'ת×××',accessSameDomain:'×××××× ×××',accessNever:'××£ פע×',align:'××ש×ר',alignLeft:'×ש×××',alignAbsBottom:'×ת×ת×ת ×××ס×××××ת',alignAbsMiddle:'×ר××× ××ס×××××',alignBaseline:'××§× ×ת×ת×ת',alignBottom:'×ת×ת×ת',alignMiddle:'×××צע',alignRight:'×××××',alignTextTop:'×ר×ש ××קס×',alignTop:'×××¢××',quality:'××××ת',qua
lityBest:'××¢×××',qualityHigh:'×××××',qualityAutoHigh:'××××× ×××××××ת',qualityMedium:'×××צעת',qualityAutoLow:'× ×××× ×××××××ת',qualityLow:'× ××××',windowModeWindow:'××××',windowModeOpaque:'××××',windowModeTransparent:'שק××£',windowMode:'××¦× ××××',flashvars:'××©×ª× ×× ×פ××ש',bgcolor:'צ××¢ רקע',width:'ר×××',height:'××××',hSpace:'×ר××× ××פק×',vSpace:'×ר××× ×× ××',validateSrc:'×ש ×××§××× ×ת ×ת××ת סר××× ×פ××ש (URL)',validateWidth:'×ר××× ×××× ××××ת ×ספר.',validateHeight:'××××× ×××× ××××ת ×ספר.',validateHSpace:'××ר××× ××××¤×§× ×××× ××××ת ×ספר.',validateVSpace:'××ר××× ××× ×× ×××× ××××ת ×ספר.'},spellCheck:{toolbar:'×××קת ×××ת',title:'×××קת ×××ת',notAvailable:'×× × ××¦× ×©×ר×ת ××××.',errorLoading:'ש×××× ×××¢××ת ×ש×ר×ת: %s.',notInDic:'×
× × ××¦× ××××××',changeTo:'ש×× ×× ×',btnIgnore:'×תע×××ת',btnIgnoreAll:'×תע×××ת ××××',btnReplace:'×××פ×',btnReplaceAll:'×××פת ×××',btnUndo:'×××ר×',noSuggestions:'- ××× ×צע×ת -',progress:'××××§ ××××ת ×ת×××× ××××§×....',noMispell:'××××§×ת ×××ת ×סת××××: ×× × ×צ×× ×©××××ת ×ת××',noChanges:'××××§×ת ×××ת ×סת××××: ×× ×©×× ×ª× ××£ ××××',oneChange:'××××§×ת ×××ת ×סת××××: ש×× ×ª× ×××× ××ת',manyChanges:'××××§×ת ×××ת ×סת××××: %1 ××××× ×©×× ×',ieSpellDownload:'××××§ ××××ת ×× ××תק×, ××× ×××ר×××?'},smiley:{toolbar:'ס×××××',title:'××ספת ס×××××',options:'×פשר×××ת ס××××××'},elementsPath:{eleLabel:'×¢×¥ ××××× ×××',eleTitle:'%1 ×××× ×'},numberedlist:'רש××× ×××ספרת',bulletedlist:'רש××ת × ×§×××ת',indent:'××××ת ××××',outdent:'
××§×× ×ª ××××',justify:{left:'××ש×ר ×ש×××',center:'×ר×××',right:'××ש×ר ×××××',block:'××ש×ר ×ש×××××'},blockquote:'××××§ צ××××',clipboard:{title:'××××§×',cutError:'×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××××¨× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+X).',copyError:'×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××¢×ª×§× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+C).',pasteMsg:'× × ××××××§ ×ת×× ××§××¤×¡× ×××צע×ת (<b>Ctrl/Cmd+V</b>) ××××××¥ ×¢× <b>××ש×ר</b>.',securityMsg:'×¢×§× ×××ר×ת ××××× ××פ×פ×, ×× × ××ª× ××שת ×× ××× ××××ר×× (Clipboard) ×צ××¨× ×ש×ר×. × × ××××××§ ש×× ××××× ××.',pasteArea:'××××ר ××××§×'},pastefromword:{confirmCleanup:'× ×¨×× ×
××§×¡× ×©××××× ×ª× ××××××§ ××§××¨× ××§×××¥ ××ר×. ××× ×רצ×× × ×× ×§×ת ×××ª× ××¨× ×××××§×?',toolbar:'××××§× ×-Word',title:'××××§× ×-Word',error:'×× × ××ª× ××× ×× ×§×ת ×ת ×××××¢ ××©× ×ª×§×× ×¤× ×××ת.'},pasteText:{button:'××××§× ×××§×¡× ×¤×©××',title:'××××§× ×××§×¡× ×¤×©××'},templates:{button:'ת×× ××ת',title:'ת×××ת ת×××',options:'×פשר×××ת ×ת×× ××ת',insertOption:'×××פת ת××× ××ש×',selectPromptMsg:'×ש ××××ר ת×× ×ת ×פת××× ××¢×ר×.<br />×ת××× ×××§××¨× ××××§:',emptyListMsg:'(×× ×××××¨× ×ª×× ××ת)'},showBlocks:'×צ×ת ××××§××',stylesCombo:{label:'ס×× ××',panelTitle:'ס×× ×× ×ת פ×ר××',panelTitle1:'ס×× ×× ×ת ××××§',panelTitle2:'ס×× ×× ×ת רצף',panelTitle3:'ס×× ×× ×ת ××××××§×'},format:{label:'×¢×צ××',panelTitle:'×¢×צ××',tag_p:'× ×ר×××',tag_pre:'×§××',ta
g_address:'×ת××ת',tag_h1:'××תרת',tag_h2:'××תרת 2',tag_h3:'××תרת 3',tag_h4:'××תרת 4',tag_h5:'××תרת 5',tag_h6:'××תרת 6',tag_div:'× ×ר××× (DIV)'},div:{title:'×צ×רת ×××× (Div)',toolbar:'×צ×רת ×××× (Div)',cssClassInputLabel:'×××קת ×¢×צ××',styleSelectLabel:'ס×× ××',IdInputLabel:'×××× (ID)',languageCodeInputLabel:'×§×× ×©×¤×',inlineStyleInputLabel:'ס×× ×× ×¤× ×××',advisoryTitleInputLabel:'××תרת ××צעת',langDirLabel:'××××× ×©×¤×',langDirLTRLabel:'ש××× ××××× (LTR)',langDirRTLLabel:'×××× ×ש××× (RTL)',edit:'ער××ת ×××× (Div)',remove:'×סרת ×××× (Div)'},font:{label:'××פ×',voiceLabel:'××פ×',panelTitle:'××פ×'},fontSize:{label:'××××',voiceLabel:'××××',panelTitle:'××××'},colorButton:{textColorTitle:'צ××¢ ×קס×',bgColorTitle:'צ××¢ רקע',panelTitle:'צ××¢××',auto:'×××××××',more:'צ××¢×× × ×ספ××...'},colors:{'000
':'ש××ר',800000:'ס××× ×××','8B4513':'××× ×××ר','2F4F4F':'×פ×ר צפ××','008080':'××××-×ר××§','000080':'××××-ס×××','4B0082':'××× ××××',696969:'×פ×ר ××¢×××¢×',B22222:'××××-×××',A52A2A:'×××',DAA520:'×ת×× ×××','006400':'×ר××§ ×××','40E0D0':'××רק××','0000CD':'×××× ××× ×× ×',800080:'ס×××',808080:'×פ×ר',F00:'××××',FF8C00:'×ת×× ×××',FFD700:'×××','008000':'×ר××§','0FF':'צ×××','00F':'××××',EE82EE:'ס××××',A9A9A9:'×פ×ר ×××',FFA07A:'×ת××-××ר××',FFA500:'×ת××',FFFF00:'צ×××','00FF00':'××××',AFEEEE:'××רק×× ×××ר',ADD8E6:'×××× ×××ר',DDA0DD:'ש×××£',D3D3D3:'×פ×ר ×××ר',FFF0F5:'××× ×ר ×ס×××§',FAEBD7:'××× ×¢×ª××§',FFFFE0:'צ××× ×××ר',F0FFF0:'×× ××ש',F0FFFF:'ת××ת',F0F8FF:'×××× ××פת ×××',E6E6FA:'××× ×ר',FFF:'×××'},scayt:{title:'×××קת ×××ת ×××× ×ת××× (SCAYT)
',opera_title:'×× ×××× ××פ××¤× ××פר×',enable:'×פשר SCAYT',disable:'××× SCAYT',about:'××××ת SCAYT',toggle:'ש×× ×× SCAYT',options:'×פשר×××ת',langs:'שפ×ת',moreSuggestions:'×צע×ת × ×ספ×ת',ignore:'×תע×××ת',ignoreAll:'×תע×××ת ××××',addWord:'××ספת ××××',emptyDic:'×ש ××××ר ×××××.',optionsTab:'×פשר×××ת',allCaps:'×תע×× ×××××× ×©×× ××ת××ת××× ×××××ת',ignoreDomainNames:'×תע×× ×ש××ת ×ת××',mixedCase:'×תע×× ×××××× ×¢× ××ת××ת ×××××ת ××§×× ×ת ××××',mixedWithDigits:'×תע×× ×××××× ×¢× ×ספר××',languagesTab:'שפ×ת',dictionariesTab:'×××××',dic_field_name:'×©× ××××××',dic_create:'×צ×ר×',dic_restore:'ש×××ר',dic_delete:'××××§×',dic_rename:'ש×× ×× ×©×',dic_info:'××ת××× ××××× ××שת×ש ×××××¡× ××¢××××, ×× ×¢××××ת ××××××ת ×××§××. ××שר ×
××××× ××××¢ ××××× ×× ××× ××× × ×××× ××ת×××¡× ××¢××××, ×××××× ×¦×¨×× ××ת×××¡× ××©×¨×ª× ×. ××©× ×× ×¢××× ×תת ×©× ××××××. ×× ××ר ×ש ×× ××××× ××××ס×, ×ש ×××× ×ס ×ת ש×× ××××××¥ ×¢× ×פת×ר ×ש×××ר.',aboutTab:'××××ת'},about:{title:'××××ת CKEditor',dlgTitle:'××××ת CKEditor',moreInfo:'×××××¢ × ×סף ××§×¨× ×××ª×¨× ×:',copy:'Copyright © $1. ×× ××××××ת ש××ר×ת.'},maximize:'××××× ××קס××××',minimize:'××§×× × ×××× ××××',fakeobjects:{anchor:'×¢×××',flash:'סר××× ×¤××ש',div:'ש××רת ××£',unknown:'××××××§× ×× ××××¢'},resize:'×ש ××ר×ר ×××× ××©× ×ת ×ת ×××××',colordialog:{title:'×××רת צ××¢',options:'×פשר×××ת צ××¢',highlight:'ס××××',selected:'×××ר×',clear:'× ××§××'},toolbarCollapse:'×××¢×ר סר×× ××××',toolbarExpand:'×ר××ת ס
ר×× ××××',bidi:{ltr:'××××× ××§×¡× ×ש××× ××××× (LTR)',rtl:'××××× ××§×¡× ××××× ×ש××× (RTL)'}};
+CKEDITOR.lang['he']={"dir":"rtl","editor":"×¢××¨× ××§×¡× ×¢×©×ר","common":{"editorHelp":"×××¥ ××× ALT + 0 ××¢×ר×","browseServer":"ס××ר ×שרת","url":"×ת××ת (URL)","protocol":"פר××××§××","upload":"××¢×××","uploadSubmit":"ש×××× ×שרת","image":"ת××× ×","flash":"פ××ש","form":"××פס","checkbox":"ת××ת ס××××","radio":"×××¦× ×פשר×××ת","textField":"ש×× ×קס×","textarea":"××××ר ×קס×","hiddenField":"ש×× ××××","button":"×פת×ר","select":"ש×× ×××ר×","imageButton":"×פת×ר ת××× ×","notSet":"<×× × ×§××¢>","id":"××××× (ID)","name":"ש×","langDir":"××××× ×©×¤×","langDirLtr":"ש××× ××××× (LTR)","langDirRtl":"×××× ×ש××× (RTL)","langCode":"×§×× ×©×¤×","longDescr":"×§×ש×ר ×ת×××ר ×פ×ר×","cssClass":"×××קת ×¢×צ×× (CSS Class)","advisoryTitle":"××תרת ××צעת","cssStyle":"ס×× ××","ok":"××ש×ר","cancel":"×××××
","close":"ס××ר×","preview":"תצ××× ××§××××","resize":"×ש ××ר×ר ×××× ××©× ×ת ×ת ×××××","generalTab":"××××","advancedTab":"×פשר×××ת ×תק×××ת","validateNumberFailed":"××¢×¨× ×××× ××××ת ×ספר×.","confirmNewPage":"×× ×ש×× ×××× ×©×× × ×©××¨× ×××××. ××× ×××¢××ת ××£ ××ש?","confirmCancel":"×××§ ×××פשר×××ת ש×× ×, ××× ×ס××ר ×ת ×××××××?","options":"×פשר×××ת","target":"××ר×","targetNew":"×××× ××ש (_blank)","targetTop":"××××× ××¢×××× ×××תר (_top)","targetSelf":"×××ª× ×××× (_self)","targetParent":"×××× ××× (_parent)","langDirLTR":"ש××× ××××× (LTR)","langDirRTL":"×××× ×ש××× (RTL)","styles":"ס×× ××","cssClasses":"××××§×ת ××××× ×ת ס×× ××","width":"ר×××","height":"××××","align":"××ש×ר","alignLeft":"×ש×××","alignRight":"×××××","alignCenter":"×ר××","alignT
op":"×××¢××","alignMiddle":"×××צע","alignBottom":"×ת×ת×ת","invalidValue":"×¢×¨× ×× ×××§×.","invalidHeight":"××××× ×××× ××××ת ×ספר.","invalidWidth":"×ר××× ×××× ××××ת ×ספר.","invalidCssLength":"××¢×¨× ×©×¦××× ×ש×× \"%1\" ×××× ××××ת ×ספר ××××× ×¢× ×× ××× ××××ת ×××× ×××§×ת ×©× CSS (px, %, in, cm, mm, em, ex, pt, ×× pc).","invalidHtmlLength":"××¢×¨× ×©×¦××× ×ש×× \"%1\" ×××× ××××ת ×ספר ××××× ×¢× ×× ××× ××××ת ×××× ×××§×ת ×©× HTML (px ×× %).","invalidInlineStyle":"××¢×¨× ×©×¦×××× ×ש×× ×ס×× ×× ×××× ××××× ××× ×¢×¨××× ××× ×× ××תר ×פ×ר×× \"×©× : ער×\", ××פר××× ×¢× ××× × ×§×××-פס××§.","cssLengthTooltip":"×ש ×××× ×ס ×ספר ×××××¦× ×¤×קס××× ×× ×ספר ×¢× ××××ת ××××× ×ת ס×× ×× ×ª×§×× × (px, %, in, cm, mm, em, ex, pt, or pc).","unava
ilable":"%1<span class=\"cke_accessibility\">, ×× ××××</span>"},"about":{"copy":"Copyright © $1. ×× ××××××ת ש××ר×ת.","dlgTitle":"××××ת CKEditor","help":"×××× ×¡× ×$1 ××¢×ר×.","moreInfo":"×××××¢ × ×סף ××§×¨× ×××ª×¨× ×:","title":"××××ת CKEditor","userGuide":"××ר×× ××שת×ש ×©× CKEditor"},"basicstyles":{"bold":"××××ש","italic":"× ×××","strike":"×ת×× ××××§","subscript":"×ת×× ×ª×ת××","superscript":"×ת×× ×¢××××","underline":"×§× ×ª×ת××"},"bidi":{"ltr":"××××× ××§×¡× ×ש××× ××××× (LTR)","rtl":"××××× ××§×¡× ××××× ×ש××× (RTL)"},"blockquote":{"toolbar":"××××§ צ××××"},"clipboard":{"copy":"×עתק×","copyError":"×××ר×ת ×××××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××¢×ª×§× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+C).","cut":"×××ר×","cutError":"×××ר×ת ××
×××× ××פ××¤× ×©×× ×× ××פשר×ת ××¢××¨× ××צע פע×××ת ××××¨× ××××××××ת. ×ש ××שת×ש ×××§××ת ××©× ×× (Ctrl/Cmd+X).","paste":"××××§×","pasteArea":"××××ר ××××§×","pasteMsg":"× × ××××××§ ×ת×× ××§××¤×¡× ×××צע×ת (<b>Ctrl/Cmd+V</b>) ××××××¥ ×¢× <b>××ש×ר</b>.","securityMsg":"×¢×§× ×××ר×ת ××××× ××פ×פ×, ×× × ××ª× ××שת ×× ××× ××××ר×× (Clipboard) ×צ××¨× ×ש×ר×. × × ××××××§ ש×× ××××× ××.","title":"××××§×"},"colorbutton":{"auto":"×××××××","bgColorTitle":"צ××¢ רקע","colors":{"000":"ש××ר","800000":"ס××× ×××","8B4513":"××× ×××ר","2F4F4F":"×פ×ר צפ××","008080":"××××-×ר××§","000080":"××××-ס×××","4B0082":"××× ××××","696969":"×פ×ר ××¢×××¢×","B22222":"××××-×××","A52A2A":"×××","DAA520":"×ת×× ×××","006400":"×ר××§ ×××","40E0D0":"××רק××","0000C
D":"×××× ××× ×× ×","800080":"ס×××","808080":"×פ×ר","F00":"××××","FF8C00":"×ת×× ×××","FFD700":"×××","008000":"×ר××§","0FF":"צ×××","00F":"××××","EE82EE":"ס××××","A9A9A9":"×פ×ר ×××","FFA07A":"×ת××-××ר××","FFA500":"×ת××","FFFF00":"צ×××","00FF00":"××××","AFEEEE":"××רק×× ×××ר","ADD8E6":"×××× ×××ר","DDA0DD":"ש×××£","D3D3D3":"×פ×ר ×××ר","FFF0F5":"××× ×ר ×ס×××§","FAEBD7":"××× ×¢×ª××§","FFFFE0":"צ××× ×××ר","F0FFF0":"×× ××ש","F0FFFF":"ת××ת","F0F8FF":"×××× ××פת ×××","E6E6FA":"××× ×ר","FFF":"×××"},"more":"צ××¢×× × ×ספ××...","panelTitle":"צ××¢××","textColorTitle":"צ××¢ ×קס×"},"colordialog":{"clear":"× ××§××","highlight":"ס××××","options":"×פשר×××ת צ××¢","selected":"×××ר×","title":"×××רת צ××¢"},"templates":{"button":"ת×× ××ת","emptyListMsg":"(×× ×××××¨× ×ª×× ××ת)","insertOption"
:"×××פת ת××× ××ש×","options":"×פשר×××ת ×ת×× ××ת","selectPromptMsg":"×ש ××××ר ת×× ×ת ×פת××× ××¢×ר×.<br />×ת××× ×××§××¨× ××××§:","title":"ת×××ת ת×××"},"contextmenu":{"options":"×פשר×××ת תפר×× ××קשר"},"div":{"IdInputLabel":"×××× (ID)","advisoryTitleInputLabel":"××תרת ××צעת","cssClassInputLabel":"×××קת ×¢×צ××","edit":"ער××ת ×××× (Div)","inlineStyleInputLabel":"ס×× ×× ×¤× ×××","langDirLTRLabel":"ש××× ××××× (LTR)","langDirLabel":"××××× ×©×¤×","langDirRTLLabel":"×××× ×ש××× (RTL)","languageCodeInputLabel":"×§×× ×©×¤×","remove":"×סרת ×××× (Div)","styleSelectLabel":"ס×× ××","title":"×צ×רת ×××× (Div)","toolbar":"×צ×רת ×××× (Div)"},"toolbar":{"toolbarCollapse":"×××¢×ר סר×× ××××","toolbarExpand":"×ר××ת סר×× ××××","toolbarGroups":{"document":"×ס××","clipboard":"××× ××××ר×
× (Clipboard)/×¦×¢× ××ר××","editing":"ער×××","forms":"×פס××","basicstyles":"×¢×צ×× ×ס×ס×","paragraph":"פסק×","links":"×§×ש×ר××","insert":"××× ×¡×","styles":"×¢×צ××","colors":"צ××¢××","tools":"××××"},"toolbars":"סר××× ×××× ×©× ××¢×ר×"},"elementspath":{"eleLabel":"×¢×¥ ××××× ×××","eleTitle":"%1 ×××× ×"},"list":{"bulletedlist":"רש××ת × ×§×××ת","numberedlist":"רש××× ×××ספרת"},"indent":{"indent":"××××ת ××××","outdent":"××§×× ×ª ××××"},"find":{"find":"××פ×ש","findOptions":"×פשר×××ת ××פ×ש","findWhat":"××פ×ש ××ר××ת:","matchCase":"×××× × ××× ××ת××ת רש××ת ××§×× ×ת (Case)","matchCyclic":"×ת××× ××××ר×ת","matchWord":"×ת××× ××××× ×××××","notFoundMsg":"×××§×¡× ××××קש ×× × ×צ×.","replace":"×××פ×","replaceAll":"××××¤× ××× ××¢×××","replaceSuccessMsg":"%1 ×קס××× ×××××
¤×.","replaceWith":"××××¤× ×××ר××ת:","title":"××פ×ש ××××פ×"},"fakeobjects":{"anchor":"×¢×××","flash":"סר××× ×¤××ש","hiddenfield":"ש×× ××××","iframe":"×××× ×¤× ××× (iframe)","unknown":"××××××§× ×× ××××¢"},"flash":{"access":"××שת סקר×פ×","accessAlways":"ת×××","accessNever":"××£ פע×","accessSameDomain":"×××××× ×××","alignAbsBottom":"×ת×ת×ת ×××ס×××××ת","alignAbsMiddle":"×ר××× ××ס×××××","alignBaseline":"××§× ×ת×ת×ת","alignTextTop":"×ר×ש ××קס×","bgcolor":"צ××¢ רקע","chkFull":"×פשר ×××× ×××","chkLoop":"×××××","chkMenu":"×פשר תפר×× ×¤××ש","chkPlay":"× ×××× ×××××××","flashvars":"××©×ª× ×× ×פ××ש","hSpace":"×ר××× ××פק×","properties":"××פ××× × ×¤××ש","propertiesTab":"××פ××× ××","quality":"××××ת","qualityAutoHigh":"××××× ×××××××ת","qualityAutoLow":"× ×××× ××
×××××ת","qualityBest":"××¢×××","qualityHigh":"×××××","qualityLow":"× ××××","qualityMedium":"×××צעת","scale":"××××","scaleAll":"××¦× ×××","scaleFit":"×ת××× ××ש××ת","scaleNoBorder":"××× ×××××ת","title":"××פ×× × ×¤××ש","vSpace":"×ר××× ×× ××","validateHSpace":"××ר××× ××××¤×§× ×××× ××××ת ×ספר.","validateSrc":"×ש ×××§××× ×ת ×ת××ת סר××× ×פ××ש (URL)","validateVSpace":"××ר××× ××× ×× ×××× ××××ת ×ספר.","windowMode":"××¦× ××××","windowModeOpaque":"××××","windowModeTransparent":"שק××£","windowModeWindow":"××××"},"font":{"fontSize":{"label":"××××","voiceLabel":"××××","panelTitle":"××××"},"label":"××פ×","panelTitle":"××פ×","voiceLabel":"××פ×"},"forms":{"button":{"title":"××פ××× × ×פת×ר","text":"××§×¡× (ער×)","type":"ס××","typeBtn":"×פת×ר","typeSbm":"ש××××","typeRst":"××פ×ס"},"ch
eckboxAndRadio":{"checkboxTitle":"××פ××× × ×ª××ת ס××××","radioTitle":"××פ××× × ×××¦× ×פשר×××ת","value":"ער×","selected":"×ס×××"},"form":{"title":"××פ×× × ××פס","menu":"××פ×× × ××פס","action":"ש×× ××","method":"ס×× ×©××××","encoding":"×§××××"},"hidden":{"title":"××פ×× × ×©×× ××××","name":"ש×","value":"ער×"},"select":{"title":"××פ××× × ×©×× ×××ר×","selectInfo":"××××¢","opAvail":"×פשר×××ת ×××× ×ת","value":"ער×","size":"××××","lines":"ש×ר×ת","chkMulti":"××פש×ר ×××ר×ת ×ר×××ת","opText":"×קס×","opValue":"ער×","btnAdd":"××ספ×","btnModify":"ש×× ××","btnUp":"×××¢××","btnDown":"××××","btnSetValue":"×§×××¢× ××ר×רת ××××","btnDelete":"××××§×"},"textarea":{"title":"××פ××× × ××××ר ×קס×","cols":"×¢××××ת","rows":"ש×ר×ת"},"textfield":{"title":"××פ××× × ×©×× ×קס×","name":"
ש×","value":"ער×","charWidth":"ר××× ××¤× ×ª××××","maxChars":"×קס×××× ×ª××××","type":"ס××","typeText":"×קס×","typePass":"ס×ס××","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"×¢×צ××","panelTitle":"×¢×צ××","tag_address":"×ת××ת","tag_div":"× ×ר××× (DIV)","tag_h1":"××תרת","tag_h2":"××תרת 2","tag_h3":"××תרת 3","tag_h4":"××תרת 4","tag_h5":"××תרת 5","tag_h6":"××תרת 6","tag_p":"× ×ר×××","tag_pre":"×§××"},"horizontalrule":{"toolbar":"××ספת ×§× ××פק×"},"iframe":{"border":"×ר×× ×ס×רת ×××××","noUrl":"×ש ×××× ×ס ×ת××ת ×××××.","scrolling":"×פשר ×¤×¡× ×××××","title":"××פ××× × ×××× ×¤× ××× (iframe)","toolbar":"×××× ×¤× ××× (iframe)"},"image":{"alertUrl":"×ש ×××§××× ×ת ×ת××ת ×ת××× ×","alt":"××§×¡× ×××פ×","border":"×ס×רת","btnUpload":"ש××
×× ×שרת","button2Img":"××× ××פ×× ×ת ת××× ×ª ××פת×ר ×ת××× × ×¤×©×××?","hSpace":"×ר××× ××פק×","img2Button":"××× ××פ×× ×ת ×ת××× × ××פת×ר ת××× ×?","infoTab":"××××¢ ×¢× ×ת××× ×","linkTab":"×§×ש×ר","lockRatio":"× ×¢××ת ×××ס","menu":"ת××× ×ת ×ת××× ×","resetSize":"××פ×ס ×××××","title":"××פ××× × ×ת××× ×","titleButton":"××פ×× × ×פת×ר ת××× ×","upload":"××¢×××","urlMissing":"×ת××ת ×ת××× × ×סר×.","vSpace":"×ר××× ×× ××","validateBorder":"ש×× ××ס×רת ×××× ××××ת ×ספר ש××.","validateHSpace":"ש×× ××ר××× ××××¤×§× ×××× ××××ת ×ספר ש××.","validateVSpace":"ש×× ××ר××× ××× ×× ×××× ××××ת ×ספר ש××."},"smiley":{"options":"×פשר×××ת ס××××××","title":"××ספת ס×××××","toolbar":"ס×××××"},"justify":{"block":"××ש×ר ×ש×××××","cent
er":"×ר×××","left":"××ש×ר ×ש×××","right":"××ש×ר ×××××"},"link":{"acccessKey":"×קש ××ש×","advanced":"×פשר×××ת ×תק×××ת","advisoryContentType":"Content Type ××צע","advisoryTitle":"××תרת ××צעת","anchor":{"toolbar":"××ספת/ער××ת × ×§××ת ×¢××××","menu":"××פ××× × × ×§××ת ×¢××××","title":"××פ××× × × ×§××ת ×¢××××","name":"×©× ×× ×§××ת ×¢××××","errorName":"×ש ×××§××× ×©× ×× ×§××ת ×¢××××","remove":"×××קת × ×§××ת ×¢××××"},"anchorId":"עפ\"× ××××× (ID) ××××× ×","anchorName":"עפ\"× ×©× ××¢×××","charset":"×§×××× ××ש×× ×××§×שר","cssClasses":"×××××× ×ת ×¢×צ×× ×§××צ×ת","emailAddress":"×ת××ת ××××\"×","emailBody":"×××£ ×××××¢×","emailSubject":"× ××©× ×××××¢×","id":"××××× (ID)","info":"××××¢ ×¢× ××§×ש×ר","langCode":"×§×× ×©×¤×","langDir":"××××× ×©×¤×","langDirLTR
":"ש××× ××××× (LTR)","langDirRTL":"×××× ×ש××× (RTL)","menu":"××פ××× × ×§×ש×ר","name":"ש×","noAnchors":"(××× ×¢××× ×× ×××× ×× ×××£)","noEmail":"×ש ×××§××× ×ת ×ת××ת ××××\"×","noUrl":"×ש ×××§××× ×ת ×ת××ת ××§×ש×ר (URL)","other":"<××ר>","popupDependent":"ת××× (Netscape)","popupFeatures":"ת××× ×ת ××××× ××§×פץ","popupFullScreen":"××¡× ××× (IE)","popupLeft":"×××§×× ×¦× ×©×××","popupLocationBar":"סר×× ×ת××ת","popupMenuBar":"סר×× ×ª×¤×¨××","popupResizable":"ש×× ×× ××××","popupScrollBars":"× ××ª× ××××××","popupStatusBar":"סר×× ×××××","popupToolbar":"סר×× ×××××","popupTop":"×××§×× ×¦× ×¢××××","rel":"קשר ××××××","selectAnchor":"×××רת ×¢×××","styles":"ס×× ××","tabIndex":"×ספר ×××","target":"××ר×","targetFrame":"<×ס×רת>","targetFrameName":"×©× ×ס×רת ×××¢×","targetPopup":"<×
××× ×§×פץ>","targetPopupName":"×©× ××××× ××§×פץ","title":"×§×ש×ר","toAnchor":"×¢××× ××¢××× ××","toEmail":"×××\"×","toUrl":"×ת××ת (URL)","toolbar":"××ספת/ער××ת ×§×ש×ר","type":"ס×× ×§×ש×ר","unlink":"×סרת ××§×ש×ר","upload":"××¢×××"},"liststyle":{"armenian":"ספר×ת ×ר×× ××ת","bulletedTitle":"ת××× ×ת רש××ת ת××××××","circle":"×¢×××× ×¨××§","decimal":"ספר×ת (1, 2, 3 ×××')","decimalLeadingZero":"ספר×ת ×¢× 0 ××ת××× (01, 02, 03 ×××')","disc":"×¢×××× ×××","georgian":"ספר×ת ××××ר×××ת (an, ban, gan ×××')","lowerAlpha":"××ת××ת ×× ××××ת ×§×× ×ת (a, b, c, d, e ×××')","lowerGreek":"××ת××ת ×××× ××ת ×§×× ×ת (alpha, beta, gamma ×××')","lowerRoman":"ספ××¨× ×¨×××ת ×××ת××ת ×§×× ×ת (i, ii, iii, iv, v ×××')","none":"×××","notset":"<×× × ×§××¢>","numberedTitle":"ת××× ×ת רש××× ××
×ספרת","square":"ר××××¢","start":"ת×××ת ×ספ×ר","type":"ס××","upperAlpha":"××ת××ת ×× ××××ת ×××××ת (A, B, C, D, E ×××')","upperRoman":"ספ××¨× ×¨××××ת ×××ת××ת ×××××ת (I, II, III, IV, V ×××')","validateStartNumber":"ש×× ×ª×××ת ××ספ×ר ×××× ××××× ×ספר ש××."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"××××× ××קס××××","minimize":"××§×× × ×××× ××××"},"newpage":{"toolbar":"××£ ××ש"},"pagebreak":{"alt":"ש××רת ××£","toolbar":"××ספת ש××רת ××£"},"pastetext":{"button":"××××§× ×××§×¡× ×¤×©××","title":"××××§× ×××§×¡× ×¤×©××"},"pastefromword":{"confirmCleanup":"× ×¨×× ×××§×¡× ×©××××× ×ª× ××××××§ ××§××¨× ××§×××¥ ××ר×. ××× ×רצ×× × ×× ×§×ת ×××ª× ××¨× ×××××§×?","error":"×× × ××ª× ××× ×× ×§×ת ×ת ×××××¢ ××©× ×ª×§×× ×¤× ×××ת.","title":"××××§×
×-Word","toolbar":"××××§× ×-Word"},"preview":{"preview":"תצ××× ××§××××"},"print":{"toolbar":"××פס×"},"removeformat":{"toolbar":"×סרת ××¢×צ××"},"save":{"toolbar":"ש××ר×"},"selectall":{"toolbar":"×××רת ×××"},"showblocks":{"toolbar":"×צ×ת ××××§××"},"sourcearea":{"toolbar":"××§×ר"},"specialchar":{"options":"×פשר×××ת ת×××× ×××××××","title":"×××רת ×ª× ×××××","toolbar":"××ספת ×ª× ×××××"},"scayt":{"about":"××××ת SCAYT","aboutTab":"××××ת","addWord":"××ספת ××××","allCaps":"×תע×× ×××××× ×©×× ××ת××ת××× ×××××ת","dic_create":"×צ×ר×","dic_delete":"××××§×","dic_field_name":"×©× ××××××","dic_info":"××ת××× ××××× ××שת×ש ×××××¡× ××¢××××, ×× ×¢××××ת ××××××ת ×××§××. ××שר ×××××× ××××¢ ××××× ×× ××× ××× × ×××× ××ת×××¡× ××¢××××, ×××××× ×¦×¨×× ××ת×
××¡× ××©×¨×ª× ×. ××©× ×× ×¢××× ×תת ×©× ××××××. ×× ××ר ×ש ×× ××××× ××××ס×, ×ש ×××× ×ס ×ת ש×× ××××××¥ ×¢× ×פת×ר ×ש×××ר.","dic_rename":"ש×× ×× ×©×","dic_restore":"ש×××ר","dictionariesTab":"×××××","disable":"××× SCAYT","emptyDic":"×ש ××××ר ×××××.","enable":"×פשר SCAYT","ignore":"×תע×××ת","ignoreAll":"×תע×××ת ××××","ignoreDomainNames":"×תע×× ×ש××ת ×ת××","langs":"שפ×ת","languagesTab":"שפ×ת","mixedCase":"×תע×× ×××××× ×¢× ××ת××ת ×××××ת ××§×× ×ת ××××","mixedWithDigits":"×תע×× ×××××× ×¢× ×ספר××","moreSuggestions":"×צע×ת × ×ספ×ת","opera_title":"×× ×××× ××פ××¤× ××פר×","options":"×פשר×××ת","optionsTab":"×פשר×××ת","title":"×××קת ×××ת ×××× ×ת××× (SCAYT)","toggle":"ש×× ×× SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"ס
×× ××","panelTitle":"ס×× ×× ×ת פ×ר××","panelTitle1":"ס×× ×× ×ת ××××§","panelTitle2":"ס×× ×× ×ת רצף","panelTitle3":"ס×× ×× ×ת ××××××§×"},"table":{"border":"×××× ×ס×רת","caption":"××ת××","cell":{"menu":"××פ××× × ×ª×","insertBefore":"××ספת ×ª× ××¤× ×","insertAfter":"××ספת ×ª× ××ר×","deleteCell":"×××קת ת×××","merge":"××××× ×ª×××","mergeRight":"××× ×××× ×","mergeDown":"××× ××××","splitHorizontal":"פ×צ×× ×ª× ××פק×ת","splitVertical":"פ×צ×× ×ª× ×× ××ת","title":"ת××× ×ת ×ת×","cellType":"ס×× ×ת×","rowSpan":"×ת××ת ×ש×ר×ת","colSpan":"×ת××ת ×ת×××","wordWrap":"×× ×עת ×××שת ש×ר×ת","hAlign":"××ש×ר ××פק×","vAlign":"××ש×ר ×× ××","alignBaseline":"ש×רת ×ס×ס","bgColor":"צ××¢ רקע","borderColor":"צ××¢ ×ס×רת","data":"××××¢","header":"××תרת","yes":"××","no":"××","invalidWi
dth":"ש×× ×¨××× ××ª× ×××× ××××ת ×ספר.","invalidHeight":"ש×× ×××× ××ª× ×××× ××××ת ×ספר.","invalidRowSpan":"ש×× ×ת××ת ×ש×ר×ת ×××× ××××ת ×ספר ש××.","invalidColSpan":"ש×× ×ת××ת ××¢××××ת ×××× ××××ת ×ספר ש××.","chooseColor":"××ר"},"cellPad":"ר×פ×× ×ª×","cellSpace":"×ר××× ×ª×","column":{"menu":"×¢××××","insertBefore":"××ספת ×¢×××× ××¤× ×","insertAfter":"××ספת ×¢×××× ××ר×","deleteColumn":"×××קת ×¢××××ת"},"columns":"×¢××××ת","deleteTable":"×××§ ××××","headers":"××תר×ת","headersBoth":"×©× ×××","headersColumn":"×¢×××× ×¨×ש×× ×","headersNone":"×××","headersRow":"ש××¨× ×¨×ש×× ×","invalidBorder":"ש×× ×××× ××ס×רת ×××× ××××ת ×ספר.","invalidCellPadding":"ש×× ×¨×פ×× ×ת××× ×××× ××××ת ×ספר ×××××.","invalidCellSpacing":"ש×× ×¨×××× ×ת××× ×
××× ××××ת ×ספר ×××××.","invalidCols":"ש×× ×ספר ××¢××××ת ×××× ××××ת ×ספר ×××× × 0.","invalidHeight":"ש×× ×××× ××××× ×××× ××××ת ×ספר.","invalidRows":"ש×× ×ספר ×ש×ר×ת ×××× ××××ת ×ספר ×××× × 0.","invalidWidth":"ש×× ×¨××× ××××× ×××× ××××ת ×ספר.","menu":"××פ××× × ××××","row":{"menu":"ש×ר×","insertBefore":"××ספת ש××¨× ××¤× ×","insertAfter":"××ספת ש××¨× ××ר×","deleteRow":"×××קת ש×ר×ת"},"rows":"ש×ר×ת","summary":"תקצ×ר","title":"××פ××× × ××××","toolbar":"××××","widthPc":"××××","widthPx":"פ×קס×××","widthUnit":"××××ת ר×××"},"undo":{"redo":"×××¨× ×¢× ×¦×¢× ××ר××","undo":"××××× ×¦×¢× ××ר××"},"wsc":{"btnIgnore":"×תע×××ת","btnIgnoreAll":"×תע×××ת ××××","btnReplace":"×××פ×","btnReplaceAll":"×××פת ×××","btnUndo":"×××ר×","c
hangeTo":"ש×× ×× ×","errorLoading":"ש×××× ×××¢××ת ×ש×ר×ת: %s.","ieSpellDownload":"××××§ ××××ת ×× ××תק×, ××× ×××ר×××?","manyChanges":"××××§×ת ×××ת ×סת××××: %1 ××××× ×©×× ×","noChanges":"××××§×ת ×××ת ×סת××××: ×× ×©×× ×ª× ××£ ××××","noMispell":"××××§×ת ×××ת ×סת××××: ×× × ×צ×× ×©××××ת ×ת××","noSuggestions":"- ××× ×צע×ת -","notAvailable":"×× × ××¦× ×©×ר×ת ××××.","notInDic":"×× × ××¦× ××××××","oneChange":"××××§×ת ×××ת ×סת××××: ש×× ×ª× ×××× ××ת","progress":"××××§ ××××ת ×ת×××× ××××§×....","title":"×××קת ×××ת","toolbar":"×××קת ×××ת"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/hi.js b/share/static/RichText/lang/hi.js
index 6b0aa99..0a51335 100644
--- a/share/static/RichText/lang/hi.js
+++ b/share/static/RichText/lang/hi.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.hi={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'सà¥à¤°à¥à¤¸',newPage:'नया पà¥à¤',save:'सà¥à¤µ',preview:'पà¥à¤°à¥à¤µà¥à¤¯à¥',cut:'à¤à¤',copy:'à¤à¥à¤ªà¥',paste:'पà¥à¤¸à¥à¤',print:'पà¥à¤°à¤¿à¤¨à¥à¤',underline:'रà¥à¤à¤¾à¤à¤à¤£',bold:'बà¥à¤²à¥à¤¡',italic:'à¤à¤à¥à¤²à¤¿à¤',selectAll:'सब सà¥
लà¥
à¤à¥à¤ à¤à¤°à¥à¤',removeFormat:'à¥à¥à¤°à¥à¤®à¥à¤ हà¤à¤¾à¤¯à¥à¤',strike:'सà¥à¤à¥à¤°à¤¾à¤à¤ थà¥à¤°à¥',subscript:'à¤
धà¥à¤²à¥à¤',superscript:'à¤
à¤à¤¿à¤²à¥à¤',horizontalrule:'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² रà¥à¤à¤¾ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',pagebreak:'पà¥à¤ बà¥à¤°à¥à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤à¥ à¤à¤°à¥à¤',unlink:'लिà¤à¤ हà¤à¤¾à¤¯à¥à¤',undo:'à¤
नà¥à¤¡à¥',redo:'रà¥à¤¡à¥',common:{browseServer:'सरà¥à¤µà¤° बà¥à¤°à¤¾à¤à¥ à¤à¤°à¥à¤',url:'URL',protocol:'पà¥à¤°à¥
à¤à¥à¤à¥à¤²',upload:'à¤
पलà¥à¤¡',uploadSubmit:'à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤',image:'तसà¥à¤µà¥à¤°',flash:'à¥à¥à¤²à¥à¤¶',form:'à¥à¥à¤°à¥à¤®',checkbox:'à¤à¥
ठबà¥à¤à¥à¤¸',radio:'रà¥à¤¡à¤¿à¤ बà¤à¤¨',textField:'à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡',textarea:'à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤°à¤¿à¤¯à¤¾',hiddenField:'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡',button:'बà¤à¤¨',select:'à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡',imageButton:'तसà¥à¤µà¥à¤° बà¤à¤¨',notSet:'<सà¥
ठनहà¥à¤>',id:'Id',name:'नाम',langDir:'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',langDirLtr:'बायà¥à¤ सॠदायà¥à¤ (LTR)',langDirRtl:'दायà¥à¤ सॠबायà¥à¤ (RTL)',langCode:'à¤à¤¾à¤·à¤¾ à¤à¥à¤¡',longDescr:'à¤
धिठविवरण à¤à¥ लिठURL',cssClass:'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',advisoryTitle:'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',cssStyle:'सà¥à¤à¤¾à¤à¤²',ok:'ठà¥à¤ ह
à¥',cancel:'रदà¥à¤¦ à¤à¤°à¥à¤',close:'Close',preview:'Preview',generalTab:'सामानà¥à¤¯',advancedTab:'à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',title:'विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥à¤¨à¥à¤',options:'Special Character Optio
ns'},link:{toolbar:'लिà¤à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',other:'<à¤
नà¥à¤¯>',menu:'लिà¤à¤ सà¤à¤ªà¤¾à¤¦à¤¨',title:'लिà¤à¤',info:'लिà¤à¤ ',target:'à¤à¤¾à¤°à¥à¤à¥à¤',upload:'à¤
पलà¥à¤¡',advanced:'à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡',type:'लिà¤à¤ पà¥à¤°à¤à¤¾à¤°',toUrl:'URL',toAnchor:'à¤à¤¸ पà¥à¤ à¤à¤¾ à¤à¤à¤à¤°',toEmail:'à¤-मà¥à¤²',targetFrame:'<à¥à¥à¤°à¥à¤®>',targetPopup:'<पà¥à¤ª-à¤
प विनà¥à¤¡à¥>',targetFrameName:'à¤à¤¾à¤°à¥à¤à¥à¤ à¥à¥à¤°à¥à¤® à¤à¤¾ नाम',targetPopupName:'पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¤à¤¾ नाम',popupFeatures:'पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¥à¥à¤à¤°à¥à¤¸',popupResizable:'Resizable',popupStatusBar:'सà¥à¤à¥à¤à¤¸ बार',popupLocationBar:'लà¥à¤à¥à¤¶à¤¨ बार',popupToolbar:'à¤à¥à¤² बार',popupMenuBar:'मà¥
नà¥à¤¯à¥ बार',popupFullScreen:'à¥à¥à¤² सà¥à¤à¥à¤°à¥à¤¨ (IE)',popupScrollBars:'सà¥à¤à¥à¤°à¥
ल बार',popupDependent:'डिपà¥à¤¨à¥à¤¡à¥
नà¥à¤ (Netscape)',popupWidth:'à¤à¥à¥à¤¾à¤',popupLeft:'बायà¥à¤ तरफ',popupHeight:'à¤à¤à¤à¤¾à¤',popupTop:'दायà¥à¤ तरफ',id:'Id',langDir:'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',langDirLTR:'बायà¥à¤ सॠदायà¥à¤ (LTR)',langDirRTL:'दायà¥à¤ सॠबायà¥à¤ (RTL)',acccessKey:'à¤à¤à¥à¤¸à¥
स à¤à¥',name:'नाम',langCode:'à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा',tabIndex:'à¤à¥à¤¬ à¤à¤¨à¥à¤¡à¥
à¤à¥à¤¸',advisoryTitle:'परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤',advisoryContentType:'परामरà¥à¤¶ à¤à¤¨à¥à¤à¥
नà¥à¤ पà¥à¤°à¤à¤¾à¤°',cssClasses:'सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸',charset:'लिà¤à¤ रिसà¥à¤°à¥à¤¸ à¤à¤°à¥
à¤à¥à¤à¤° सà¥
à¤',styles:'सà¥à¤à¤¾à¤à¤²',selectAnchor:'à¤à¤à¤à¤° à¤à¥à¤¨à¥à¤',anchorName:'à¤à¤à¤à¤° नाम सà¥',anchorId:'à¤à¤²à¥à¤®à¥
नà¥à¤ Id
सà¥',emailAddress:'à¤-मà¥à¤² पता',emailSubject:'सà¤à¤¦à¥à¤¶ विषय',emailBody:'सà¤à¤¦à¥à¤¶',noAnchors:'(डà¥à¤à¥à¤¯à¥à¤®à¥
नà¥à¤ मà¥à¤ à¤à¤à¤à¤°à¥à¤¸ à¤à¥ सà¤à¤à¥à¤¯à¤¾)',noUrl:'लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',noEmail:'à¤-मà¥à¤² पता à¤à¤¾à¤à¤ª à¤à¤°à¥à¤'},anchor:{toolbar:'à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨',menu:'à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',title:'à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',name:'à¤à¤à¤à¤° à¤à¤¾ नाम',errorName:'à¤à¤à¤à¤° à¤à¤¾ नाम à¤à¤¾à¤à¤ª à¤à¤°à¥à¤'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv
, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'à¤à¥à¤à¥à¤ à¤à¤° बदलà¥à¤',find:'à¤à¥à¤à¥à¤',replace:'रà¥à¤ªà¥à¤²à¥à¤¸',findWhat:'यह à¤à¥à¤à¥à¤:',replaceWith:'à¤à¤¸à¤¸à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤:',notFoundMsg:'à¤à¤ªà¤à¥ दà¥à¤µà¤¾à¤°à¤¾ दिया à¤à¤¯à¤¾ à¤à¥à¤à¥à¤¸à¥à¤ नहà¥à¤ मिला',matchCase:'à¤à¥à¤¸ मिलायà¥à¤',matchWord:'पà¥à¤°à¤¾ शबà¥à¤¦ मिलायà¥à¤',matchCyclic:'Match cyclic',replaceAll:'सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'à¤à¥à¤¬à¤²',title:'à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',menu:'à¤à¥à¤¬à¤² पà¥à¤°à¥à
¤ªà¤°à¥à¤à¥à¥',deleteTable:'à¤à¥à¤¬à¤² डिलà¥à¤ à¤à¤°à¥à¤',rows:'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤',columns:'à¤à¤¾à¤²à¤®',border:'बà¥à¤°à¥à¤¡à¤° साà¤à¥',align:'à¤à¤²à¤¾à¤à¤¨à¥à¤®à¥
नà¥à¤',alignLeft:'दायà¥à¤',alignCenter:'बà¥à¤ मà¥à¤',alignRight:'बायà¥à¤',width:'à¤à¥à¥à¤¾à¤',widthPx:'पिà¤à¥à¤¸à¥à¤²',widthPc:'पà¥à¤°à¤¤à¤¿à¤¶à¤¤',widthUnit:'width unit',height:'à¤à¤à¤à¤¾à¤',cellSpace:'सà¥à¤² à¤
à¤à¤¤à¤°',cellPad:'सà¥à¤² पà¥à¤¡à¤¿à¤à¤',caption:'शà¥à¤°à¥à¤·à¤',summary:'साराà¤à¤¶',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be
a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'à¤à¤¾à¤¨à¤¾',insertBefore:'पहलॠसà¥à¤² डालà¥à¤',insertAfter:'बाद मà¥à¤ सà¥à¤² डालà¥à¤',deleteCell:'सà¥à¤² डिलà¥à¤ à¤à¤°à¥à¤',merge:'सà¥à¤² मिलायà¥à¤',mergeRight:'बाà¤à¤¯à¤¾ विलय',mergeDown:'नà¥à¤à¥ विलय à¤à¤°à¥à¤',splitHorizontal:'सà¥à¤² à¤à¥ à¤à¥à¤·à¥à¤¤à¤¿à¤ सà¥à¤¥à¤¿à¤¤à¤¿ मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤',splitVertical:'सà¥à¤² à¤à¥ लमà¥à¤¬à¤¾à¤à¤¾à¤° मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width mus
t be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'पà¤à¤à¥à¤¤à¤¿',insertBefore:'पहलॠपà¤à¤à¥à¤¤à¤¿ डालà¥à¤',insertAfter:'बाद मà¥à¤ पà¤à¤à¥à¤¤à¤¿ डालà¥à¤',deleteRow:'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤ डिलà¥à¤ à¤à¤°à¥à¤'},column:{menu:'à¤à¤¾à¤²à¤®',insertBefore:'पहलॠà¤à¤¾à¤²à¤® डालà¥à¤',insertAfter:'बाद मà¥à¤ à¤à¤¾à¤²à¤® डालà¥à¤',deleteColumn:'à¤à¤¾à¤²à¤® डिलà¥à¤ à¤à¤°à¥à¤'}},button:{title:'बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',text:'à¤à¥à¤à¥à¤¸à¥à¤ (वà¥à¤²à¥à¤¯à¥)',type:'पà¥à¤°à¤à¤¾à¤°',typeBtn:'बà¤à¤¨',typeSbm:'सबà¥à¤®à¤¿à¤',typeRst:'रिसà¥à¤'},checkboxAndRadio:{checkboxTitle:'à¤à¥
ठबà¥à¤à¥à¤¸ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',radioTitle:'रà¥à¤¡à¤¿à¤ बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à
¤à¥à¥',value:'वà¥à¤²à¥à¤¯à¥',selected:'सà¥
लà¥
à¤à¥à¤à¥
ड'},form:{title:'à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',menu:'à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',action:'à¤à¥à¤°à¤¿à¤¯à¤¾',method:'तरà¥à¤à¤¾',encoding:'Encoding'},select:{title:'à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',selectInfo:'सà¥à¤à¤¨à¤¾',opAvail:'à¤à¤ªà¤²à¤¬à¥à¤§ विà¤à¤²à¥à¤ª',value:'वà¥à¤²à¥à¤¯à¥',size:'साà¤à¥',lines:'पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤',chkMulti:'à¤à¤ सॠà¤à¥à¤¯à¤¾à¤¦à¤¾ विà¤à¤²à¥à¤ª à¤à¥à¤¨à¤¨à¥ दà¥à¤',opText:'à¤à¥à¤à¥à¤¸à¥à¤',opValue:'वà¥à¤²à¥à¤¯à¥',btnAdd:'à¤à¥à¥à¥à¤',btnModify:'बदलà¥à¤',btnUp:'à¤à¤ªà¤°',btnDown:'नà¥à¤à¥',btnSetValue:'à¤à¥à¤¨à¥ à¤à¤ वà¥à¤²à¥à¤¯à¥ सà¥
ठà¤à¤°à¥à¤',btnDelete:'डिलà¥à¤'},textarea:{title:'à¤à¥à¤à¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',cols:'à¤à¤¾à¤²à¤®',rows:'पà¤à¤à¥à¤¤à¤¿à¤¯à¤
¾à¤'},textfield:{title:'à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',name:'नाम',value:'वà¥à¤²à¥à¤¯à¥',charWidth:'à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥ à¤à¥à¥à¤¾à¤',maxChars:'à¤
धिà¤à¤¤à¤® à¤à¤°à¥
à¤à¥à¤à¤°',type:'à¤à¤¾à¤à¤ª',typeText:'à¤à¥à¤à¥à¤¸à¥à¤',typePass:'पासà¥à¤µà¤°à¥à¤¡'},hidden:{title:'à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',name:'नाम',value:'वà¥à¤²à¥à¤¯à¥'},image:{title:'तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',titleButton:'तसà¥à¤µà¥à¤° बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',menu:'तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',infoTab:'तसà¥à¤µà¥à¤° à¤à¥ à¤à¤¾à¤¨à¤à¤¾à¤°à¥',btnUpload:'à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤',upload:'à¤
पलà¥à¤¡',alt:'वà¥à¤à¤²à¥à¤ªà¤¿à¤ à¤à¥à¤à¥à¤¸à¥à¤',width:'à¤à¥à¥à¤¾à¤',height:'à¤à¤à¤à¤¾à¤',lockRatio:'लà¥à¤ à¤
नà¥à¤ªà¤¾à¤¤',unlockRatio:'Unlock Ratio',resetSize:'रà¥
सà¥
ठसाà¤à¥',border:'बà¥à¤°à¥à¤¡à¤°',hSpace:'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸',vSpace:'वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸',align:'à¤à¤²à¤¾à¤à¤¨',alignLeft:'दायà¥à¤',alignRight:'दायà¥à¤',alertUrl:'तसà¥à¤µà¥à¤° à¤à¤¾ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤ ',linkTab:'लिà¤à¤',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',propertiesTab:'Properties',title:'à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥',chkPlay:'à¤à¤à¥ पà¥à¤²à¥',chkLoop:'लà¥à¤ª',chkMenu:'à¥à¥à¤²à¥
श मà¥
नà¥à¤¯à¥ à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤',chkFull:'Allow Fullscreen',scale:'सà¥à¤à¥à¤²',scaleAll:'सà¤à¥ दिà¤à¤¾à¤¯à¥à¤',scaleNoBorder:'à¤à¥à¤ बà¥à¤°à¥à¤¡à¤° नहà¥à¤',scaleFit:'बिलà¥à¤à¥à¤² à¥à¤¿à¤',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'à¤à¤²à¤¾à¤à¤¨',alignLeft:'दायà¥à¤',alignAbsBottom:'Abs नà¥à¤à¥',alignAbsMiddle:'Abs à¤à¤ªà¤°',alignBaseline:'मà¥à¤² रà¥à¤à¤¾',alignBottom:'नà¥à¤à¥',alignMiddle:'मधà¥à¤¯',alignRight:'दायà¥à¤',alignTextTop:'à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤ªà¤°',alignTop:'à¤à¤ªà¤°',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'बà¥à¤à¥à¤à¥à¤°à¤
¾à¤à¤¨à¥à¤¡ रà¤à¤',width:'à¤à¥à¥à¤¾à¤',height:'à¤à¤à¤à¤¾à¤',hSpace:'हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸',vSpace:'वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸',validateSrc:'लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥à¤²à¤¿à¤à¤) à¤à¤¾à¤à¤',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'शबà¥à¤¦à¤à¥à¤¶ मà¥à¤ नहà¥à¤',changeTo:'à¤à¤¸à¤®à¥à¤ बदलà¥à¤',btnIgnore:'à¤à¤à¥à¤¨à¥à¤°',btnIgnoreAll:'सà¤à¥ à¤à¤à¥à¤¨à¥à¤° à¤à¤°à¥à¤',btnReplace:'रिपà¥à¤²à¥à¤¸',btnReplaceAll:'सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤',btnUndo:'à¤
नà¥à¤¡à¥',noSuggestions:'- à¤à¥à¤ सà¥à¤à¤¾à¤µ नहà¥à¤ -',progre
ss:'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ (सà¥à¤ªà¥
ल-à¤à¥
à¤) à¤à¤¾à¤°à¥ हà¥...',noMispell:'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¥à¤ à¤à¤²à¤¤ वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥
लिà¤à¤) नहà¥à¤ पाठà¤à¤',noChanges:'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ :à¤à¥à¤ शबà¥à¤¦ नहà¥à¤ बदला à¤à¤¯à¤¾',oneChange:'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¤ शबà¥à¤¦ बदला à¤à¤¯à¤¾',manyChanges:'वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : %1 शबà¥à¤¦ बदलॠà¤à¤¯à¥',ieSpellDownload:'सà¥à¤ªà¥
ल-à¤à¥
à¤à¤° à¤à¤¨à¥à¤¸à¥à¤à¤¾à¤² नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥à¥¤ à¤à¥à¤¯à¤¾ à¤à¤ª à¤à¤¸à¥ डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¨à¤¾ à¤à¤¾à¤¹à¥à¤à¤à¥?'},smiley:{toolbar:'सà¥à¤®à¤¾à¤à¤²à¥',title:'सà¥à¤®à¤¾à¤à¤²à¥ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'à¤
à¤à¤à¥à¤¯ सà¥à¤à¥',
bulletedlist:'बà¥à¤²à¥
ठसà¥à¤à¥',indent:'à¤à¤¨à¥à¤¡à¥
नà¥à¤ बà¥à¤¾à¤¯à¥à¤',outdent:'à¤à¤¨à¥à¤¡à¥
नà¥à¤ à¤à¤® à¤à¤°à¥à¤',justify:{left:'बायà¥à¤ तरफ',center:'बà¥à¤ मà¥à¤',right:'दायà¥à¤ तरफ',block:'बà¥à¤²à¥à¤ à¤à¤¸à¥à¤à¥à¥à¤¾à¤'},blockquote:'बà¥à¤²à¥à¤-à¤à¥à¤',clipboard:{title:'पà¥à¤¸à¥à¤',cutError:'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¤ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+X) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',copyError:'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¥à¤ªà¥ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤',pasteMsg:'Ctrl/Cmd+V à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¤à¥ पà¥à¤¸à¥à¤ à¤
रà¥à¤ à¤à¤° ठà¥à¤ हॠà¤à¤°à¥à¤.',securityMsg:'à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°Kश सà¥à¤à¤¿à¤à¤ à¤à¥ à¤à¤¾à¤°à¤£, à¤à¤¡à¤¿à¤à¤° à¤à¤ªà¤à¥ à¤à¥à¤²à¤¿à¤ªà¤¬à¥à¤°à¥à¤¡ डà¥à¤à¤¾ à¤à¥ नहà¥à¤ पा सà¤à¤¤à¤¾ हà¥. à¤à¤ªà¤à¥ à¤à¤¸à¥ à¤à¤¸ विनà¥à¤¡à¥ मà¥à¤ दà¥à¤¬à¤¾à¤°à¤¾ पà¥à¤¸à¥à¤ à¤à¤°à¤¨à¤¾ हà¥à¤à¤¾.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)',title:'पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)',title:'पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)'},templates:{button:'à¤à¥
मà¥à¤ªà¥à¤²à¥à¤',title:'à¤à
¤¨à¥à¤à¥à¤¨à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤',options:'Template Options',insertOption:'मà¥à¤² शबà¥à¤¦à¥à¤ à¤à¥ बदलà¥à¤',selectPromptMsg:'à¤à¤¡à¤¿à¤à¤° मà¥à¤ à¤à¤ªà¤¨ à¤à¤°à¤¨à¥ हà¥à¤¤à¥ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ à¤à¥à¤¨à¥à¤(वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¤¨à¥à¤à¥
नà¥à¤ सà¥à¤µ नहà¥à¤ हà¥à¤à¤à¥):',emptyListMsg:'(à¤à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ डिà¥à¤¾à¤à¤¨ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥)'},showBlocks:'बà¥à¤²à¥à¤ दिà¤à¤¾à¤¯à¥à¤',stylesCombo:{label:'सà¥à¤à¤¾à¤à¤²',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'à¥à¥à¤°à¥à¤®à¥à¤',panelTitle:'à¥à¥à¤°à¥à¤®à¥à¤',tag_p:'साधारण',tag_pre:'à¥à¥à¤°à¥à¤®à¥à¤à¥
ड',tag_address:'पता',tag_h1:'शà¥à¤°à¥à¤·à¤ 1',tag_h2:'शà¥à¤°à¥à¤·à¤ 2',tag_h3:'शà¥à¤°à¥à¤·à¤ 3',tag_h4:'शà¥à¤°à¥à¤·à¤ 4',tag_h5:'शà¥à¤°à¥à¤·à¤
5',tag_h6:'शà¥à¤°à¥à¤·à¤ 6',tag_div:'शà¥à¤°à¥à¤·à¤ (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'à¥à¥à¤¨à¥à¤',voiceLabel:'Font',panelTitle:'à¥à¥à¤¨à¥à¤'},fontSize:{label:'साà¤à¥',voiceLabel:'Font Size',panelTitle:'साà¤à¥'},colorButton:{textColorTitle:'à¤à¥à¤à¥à¤¸à¥à¤ रà¤à¤',bgColorTitle:'बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤',panelTitle:'Colors',auto:'सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤',more:'à¤à¤° रà¤à¤...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',69696
9:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreD
omainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',
div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['hi']={"dir":"ltr","editor":"रिठà¤à¥à¤à¥à¤¸à¥à¤ à¤à¤¡à¤¿à¤à¤°","common":{"editorHelp":"मदद à¤à¥ लियॠALT 0 दबाà¤","browseServer":"सरà¥à¤µà¤° बà¥à¤°à¤¾à¤à¥ à¤à¤°à¥à¤","url":"URL","protocol":"पà¥à¤°à¥à¤à¥à¤à¥à¤²","upload":"à¤
पलà¥à¤¡","uploadSubmit":"à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤","image":"तसà¥à¤µà¥à¤°","flash":"à¥à¥à¤²à¥à¤¶","form":"à¥à¥à¤°à¥à¤®","checkbox":"à¤à¥
ठबà¥à¤à¥à¤¸","radio":"रà¥à¤¡à¤¿à¤ बà¤à¤¨","textField":"à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡","textarea":"à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤°à¤¿à¤¯à¤¾","hiddenField":"à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡","button":"बà¤à¤¨","select":"à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡","imageButton":"तसà¥à¤µà¥à¤° बà¤à¤¨","notSet":"<सà¥
ठनहà¥à¤>","id":"Id","name":"नाम","langDir":"à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा","langDirLtr":"बायà¥à¤ सॠदायà¥à¤ (LTR)","langDirRtl
":"दायà¥à¤ सॠबायà¥à¤ (RTL)","langCode":"à¤à¤¾à¤·à¤¾ à¤à¥à¤¡","longDescr":"à¤
धिठविवरण à¤à¥ लिठURL","cssClass":"सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸","advisoryTitle":"परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤","cssStyle":"सà¥à¤à¤¾à¤à¤²","ok":"ठà¥à¤ हà¥","cancel":"रदà¥à¤¦ à¤à¤°à¥à¤","close":"Close","preview":"पà¥à¤°à¥à¤µà¥à¤¯à¥","resize":"Resize","generalTab":"सामानà¥à¤¯","advancedTab":"à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"à¤à¤¾à¤°à¥à¤à¥à¤","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"बाय
à¥à¤ सॠदायà¥à¤ (LTR)","langDirRTL":"दायà¥à¤ सॠबायà¥à¤ (RTL)","styles":"सà¥à¤à¤¾à¤à¤²","cssClasses":"सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸","width":"à¤à¥à¥à¤¾à¤","height":"à¤à¤à¤à¤¾à¤","align":"à¤à¤²à¤¾à¤à¤¨","alignLeft":"दायà¥à¤","alignRight":"दायà¥à¤","alignCenter":"बà¥à¤ मà¥à¤","alignTop":"à¤à¤ªà¤°","alignMiddle":"मधà¥à¤¯","alignBottom":"नà¥à¤à¥","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"nam
e : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"बà¥à¤²à¥à¤¡","italic":"à¤à¤à¥à¤²à¤¿à¤","strike":"सà¥à¤à¥à¤°à¤¾à¤à¤ थà¥à¤°à¥","subscript":"à¤
धà¥à¤²à¥à¤","superscript":"à¤
à¤à¤¿à¤²à¥à¤","underline":"रà¥à¤à¤¾à¤à¤à¤£"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"बà¥à¤²à¥à¤-à¤à¥à¤"},"clipboard":{"copy":"à¤à¥à¤ªà¥","copyError":"à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤
¨à¥à¤à¥à¤¸ नॠà¤à¥à¤ªà¥ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+C) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤","cut":"à¤à¤","cutError":"à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ सà¥
à¤à¤¿à¤¨à¥à¤à¥à¤¸ नॠà¤à¤ à¤à¤°à¤¨à¥ à¤à¥ à¤
नà¥à¤®à¤¤à¤¿ नहà¥à¤ पà¥à¤°à¤¦à¤¾à¤¨ à¤à¥ हà¥à¥¤ (Ctrl/Cmd+X) à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤à¥¤","paste":"पà¥à¤¸à¥à¤","pasteArea":"Paste Area","pasteMsg":"Ctrl/Cmd+V à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¤à¥ पà¥à¤¸à¥à¤ à¤à¤°à¥à¤ à¤à¤° ठà¥à¤ हॠà¤à¤°à¥à¤.","securityMsg":"à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°à¤à¥à¤·à¤¾ à¤à¤ªà¤à¥ बà¥à¤°à¤¾à¤à¥à¤° à¤à¥ सà¥à¤°Kश सà¥à¤à¤¿à¤à¤ à¤à¥ à¤à¤¾à¤°à¤£, à¤à¤¡à¤¿à¤à¤° à¤à¤ªà¤à¥ à¤à¥à¤²à¤¿à¤ªà¤¬à¥à¤°à¥à¤¡ डà¥à¤à¤¾ à¤à¥ नहà¥à¤ पा सà¤à¤¤à¤¾ हà¥. à¤à¤ªà¤à¥ à¤à¤¸à¥ à¤à¤¸ विनà¥à¤¡à¥ मà¥à¤
दà¥à¤¬à¤¾à¤°à¤¾ पà¥à¤¸à¥à¤ à¤à¤°à¤¨à¤¾ हà¥à¤à¤¾.","title":"पà¥à¤¸à¥à¤"},"colorbutton":{"auto":"सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤","bgColorTitle":"बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"Whit
e"},"more":"à¤à¤° रà¤à¤...","panelTitle":"Colors","textColorTitle":"à¤à¥à¤à¥à¤¸à¥à¤ रà¤à¤"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"à¤à¥
मà¥à¤ªà¥à¤²à¥à¤","emptyListMsg":"(à¤à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ डिà¥à¤¾à¤à¤¨ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥)","insertOption":"मà¥à¤² शबà¥à¤¦à¥à¤ à¤à¥ बदलà¥à¤","options":"Template Options","selectPromptMsg":"à¤à¤¡à¤¿à¤à¤° मà¥à¤ à¤à¤ªà¤¨ à¤à¤°à¤¨à¥ हà¥à¤¤à¥ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤ à¤à¥à¤¨à¥à¤(वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¤¨à¥à¤à¥
नà¥à¤ सà¥à¤µ नहà¥à¤ हà¥à¤à¤à¥):","title":"à¤à¤¨à¥à¤à¥à¤¨à¥à¤ à¤à¥
मà¥à¤ªà¥à¤²à¥à¤"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤","cssClassInputLabel":"सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥
लास","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"बायà¥à¤ सॠदायà¥à¤ (LTR)","langDirLabel":"à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा","langDirRTLLabel":"दायà¥à¤ सॠबायà¥à¤ (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"सà¥à¤à¤¾à¤à¤²","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"à¤à¤¡à¤¿à¤à¤° à¤à¥à¤²à¤¬à¤¾à¤°"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"बà¥à¤²à¥
ठसà¥à¤à¥","numberedlist":"à¤
à¤à¤à¥à¤¯ सà¥à¤à¥"},"indent":{"in
dent":"à¤à¤¨à¥à¤¡à¥
नà¥à¤ बà¥à¤¾à¤¯à¥à¤","outdent":"à¤à¤¨à¥à¤¡à¥
नà¥à¤ à¤à¤® à¤à¤°à¥à¤"},"find":{"find":"à¤à¥à¤à¥à¤","findOptions":"Find Options","findWhat":"यह à¤à¥à¤à¥à¤:","matchCase":"à¤à¥à¤¸ मिलायà¥à¤","matchCyclic":"Match cyclic","matchWord":"पà¥à¤°à¤¾ शबà¥à¤¦ मिलायà¥à¤","notFoundMsg":"à¤à¤ªà¤à¥ दà¥à¤µà¤¾à¤°à¤¾ दिया à¤à¤¯à¤¾ à¤à¥à¤à¥à¤¸à¥à¤ नहà¥à¤ मिला","replace":"रà¥à¤ªà¥à¤²à¥à¤¸","replaceAll":"सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"à¤à¤¸à¤¸à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤:","title":"à¤à¥à¤à¥à¤ à¤à¤° बदलà¥à¤"},"fakeobjects":{"anchor":"à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨","flash":"Flash Animation","hiddenfield":"à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessN
ever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs नà¥à¤à¥","alignAbsMiddle":"Abs à¤à¤ªà¤°","alignBaseline":"मà¥à¤² रà¥à¤à¤¾","alignTextTop":"à¤à¥à¤à¥à¤¸à¥à¤ à¤à¤ªà¤°","bgcolor":"बà¥à¤à¥à¤à¥à¤°à¤¾à¤à¤¨à¥à¤¡ रà¤à¤","chkFull":"Allow Fullscreen","chkLoop":"लà¥à¤ª","chkMenu":"à¥à¥à¤²à¥à¤¶ मà¥
नà¥à¤¯à¥ à¤à¤¾ पà¥à¤°à¤¯à¥à¤ à¤à¤°à¥à¤","chkPlay":"à¤à¤à¥ पà¥à¤²à¥","flashvars":"Variables for Flash","hSpace":"हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸","properties":"à¥à¥à¤²à¥à¤¶ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"सà¥à¤à¥à¤²","scaleAll":"सà¤à¥ दिà¤à¤¾à¤¯à¥à¤","scaleFit":"बिलà¥à¤à¥à¤² à¥à¤¿à¤","scaleNoBorder":"à¤à¥à¤ बà¥à¤°à¥à¤¡à¤° नहà¥à¤","title":"à¥à¥à¤²à¥à¤¶ पà
¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","vSpace":"वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸","validateHSpace":"HSpace must be a number.","validateSrc":"लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"साà¤à¥","voiceLabel":"Font Size","panelTitle":"साà¤à¥"},"label":"à¥à¥à¤¨à¥à¤","panelTitle":"à¥à¥à¤¨à¥à¤","voiceLabel":"à¥à¥à¤¨à¥à¤"},"forms":{"button":{"title":"बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","text":"à¤à¥à¤à¥à¤¸à¥à¤ (वà¥à¤²à¥à¤¯à¥)","type":"पà¥à¤°à¤à¤¾à¤°","typeBtn":"बà¤à¤¨","typeSbm":"सबà¥à¤®à¤¿à¤","typeRst":"रिसà¥à¤"},"checkboxAndRadio":{"checkboxTitle":"à¤à¥
ठबà¥à¤à¥à¤¸ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","radioTitle":"रà¥à¤¡à¤¿à¤ बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","value":"वà¥à¤²à¥à¤¯à¥","selected":"सà¥
लà¥
à¤à¥
à¤à¥
ड"},"form":{"title":"à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","menu":"à¥à¥à¤°à¥à¤® पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","action":"à¤à¥à¤°à¤¿à¤¯à¤¾","method":"तरà¥à¤à¤¾","encoding":"Encoding"},"hidden":{"title":"à¤à¥à¤ªà¥à¤¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","name":"नाम","value":"वà¥à¤²à¥à¤¯à¥"},"select":{"title":"à¤à¥à¤¨à¤¾à¤µ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","selectInfo":"सà¥à¤à¤¨à¤¾","opAvail":"à¤à¤ªà¤²à¤¬à¥à¤§ विà¤à¤²à¥à¤ª","value":"वà¥à¤²à¥à¤¯à¥","size":"साà¤à¥","lines":"पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤","chkMulti":"à¤à¤ सॠà¤à¥à¤¯à¤¾à¤¦à¤¾ विà¤à¤²à¥à¤ª à¤à¥à¤¨à¤¨à¥ दà¥à¤","opText":"à¤à¥à¤à¥à¤¸à¥à¤","opValue":"वà¥à¤²à¥à¤¯à¥","btnAdd":"à¤à¥à¥à¥à¤","btnModify":"बदलà¥à¤","btnUp":"à¤à¤ªà¤°","btnDown":"नà¥à¤à¥","btnSetValue":"à¤à¥à¤¨à¥ à¤à¤ वà¥à¤²à¥à¤¯à¥ सà¥
ठà¤à¤°à¥à¤","btnDelete":"डिलà¥à¤"},"textarea":{"title":"à¤
à¥à¤à¥à¤¸à¥à¤¤ à¤à¤°à¤¿à¤¯à¤¾ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","cols":"à¤à¤¾à¤²à¤®","rows":"पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤"},"textfield":{"title":"à¤à¥à¤à¥à¤¸à¥à¤ à¥à¥à¤²à¥à¤¡ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","name":"नाम","value":"वà¥à¤²à¥à¤¯à¥","charWidth":"à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥ à¤à¥à¥à¤¾à¤","maxChars":"à¤
धिà¤à¤¤à¤® à¤à¤°à¥
à¤à¥à¤à¤°","type":"à¤à¤¾à¤à¤ª","typeText":"à¤à¥à¤à¥à¤¸à¥à¤","typePass":"पासà¥à¤µà¤°à¥à¤¡","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"à¥à¥à¤°à¥à¤®à¥à¤","panelTitle":"à¥à¥à¤°à¥à¤®à¥à¤","tag_address":"पता","tag_div":"शà¥à¤°à¥à¤·à¤ (DIV)","tag_h1":"शà¥à¤°à¥à¤·à¤ 1","tag_h2":"शà¥à¤°à¥à¤·à¤ 2","tag_h3":"शà¥à¤°à¥à¤·à¤ 3","tag_h4":"शà¥à¤°à¥à¤·à¤ 4","tag_h5":"शà¥à¤°à¥à¤·à¤ 5","tag_h6":"शà¥à¤°à¥à¤·à¤ 6","tag_p":"साधारण","tag_pre":"à¥à¥à¤°à¥à¤®à¥à¤à¥
ड"},"horizontalrule":{"to
olbar":"हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² रà¥à¤à¤¾ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"तसà¥à¤µà¥à¤° à¤à¤¾ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤ ","alt":"वà¥à¤à¤²à¥à¤ªà¤¿à¤ à¤à¥à¤à¥à¤¸à¥à¤","border":"बà¥à¤°à¥à¤¡à¤°","btnUpload":"à¤à¤¸à¥ सरà¥à¤µà¤° à¤à¥ à¤à¥à¤à¥à¤","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"हà¥à¤°à¤¿à¥à¥à¤¨à¥à¤à¤² सà¥à¤ªà¥à¤¸","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"तसà¥à¤µà¥à¤° à¤à¥ à¤à¤¾à¤¨à¤à¤¾à¤°à¥","linkTab":"लिà¤à¤","lockRatio":"लà¥à¤ à¤
नà¥à¤ªà¤¾à¤¤","menu":"तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","resetSize":"रà¥à¤¸à¥
ठसाà¤à¥","title":"तसà¥à¤µà¥à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","title
Button":"तसà¥à¤µà¥à¤° बà¤à¤¨ पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","upload":"à¤
पलà¥à¤¡","urlMissing":"Image source URL is missing.","vSpace":"वरà¥à¤à¤¿à¤à¤² सà¥à¤ªà¥à¤¸","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"सà¥à¤®à¤¾à¤à¤²à¥ à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤","toolbar":"सà¥à¤®à¤¾à¤à¤²à¥"},"justify":{"block":"बà¥à¤²à¥à¤ à¤à¤¸à¥à¤à¥à¥à¤¾à¤","center":"बà¥à¤ मà¥à¤","left":"बायà¥à¤ तरफ","right":"दायà¥à¤ तरफ"},"link":{"acccessKey":"à¤à¤à¥à¤¸à¥
स à¤à¥","advanced":"à¤à¤¡à¥à¤µà¤¾à¤¨à¥à¤¸à¥à¤¡","advisoryContentType":"परामरà¥à¤¶ à¤à¤¨à¥à¤à¥
नà¥à¤ पà¥à¤°à¤à¤¾à¤°","advisoryTitle":"परामरà¥à¤¶ शà¥à¤°à¥à¤¶à¤","anchor":{"toolbar":"à¤à¤à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨","menu":"à¤à¤à¤à¤° पà¥
रà¥à¤ªà¤°à¥à¤à¥à¥","title":"à¤à¤à¤à¤° पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","name":"à¤à¤à¤à¤° à¤à¤¾ नाम","errorName":"à¤à¤à¤à¤° à¤à¤¾ नाम à¤à¤¾à¤à¤ª à¤à¤°à¥à¤","remove":"Remove Anchor"},"anchorId":"à¤à¤²à¥à¤®à¥
नà¥à¤ Id सà¥","anchorName":"à¤à¤à¤à¤° नाम सà¥","charset":"लिà¤à¤ रिसà¥à¤°à¥à¤¸ à¤à¤°à¥
à¤à¥à¤à¤° सà¥
à¤","cssClasses":"सà¥à¤à¤¾à¤à¤²-शà¥à¤ à¤à¥à¤²à¤¾à¤¸","emailAddress":"à¤-मà¥à¤² पता","emailBody":"सà¤à¤¦à¥à¤¶","emailSubject":"सà¤à¤¦à¥à¤¶ विषय","id":"Id","info":"लिà¤à¤ ","langCode":"à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा","langDir":"à¤à¤¾à¤·à¤¾ लिà¤à¤¨à¥ à¤à¥ दिशा","langDirLTR":"बायà¥à¤ सॠदायà¥à¤ (LTR)","langDirRTL":"दायà¥à¤ सॠबायà¥à¤ (RTL)","menu":"लिà¤à¤ सà¤à¤ªà¤¾à¤¦à¤¨","name":"नाम","noAnchors":"(डà¥à¤à¥à¤¯à¥à¤®à¥
नà¥à¤ मà¥à¤ à¤à¤à¤à¤°à¥à¤¸ à¤à¥ स
à¤à¤à¥à¤¯à¤¾)","noEmail":"à¤-मà¥à¤² पता à¤à¤¾à¤à¤ª à¤à¤°à¥à¤","noUrl":"लिà¤à¤ URL à¤à¤¾à¤à¤ª à¤à¤°à¥à¤","other":"<à¤
नà¥à¤¯>","popupDependent":"डिपà¥à¤¨à¥à¤¡à¥
नà¥à¤ (Netscape)","popupFeatures":"पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¥à¥à¤à¤°à¥à¤¸","popupFullScreen":"à¥à¥à¤² सà¥à¤à¥à¤°à¥à¤¨ (IE)","popupLeft":"बायà¥à¤ तरफ","popupLocationBar":"लà¥à¤à¥à¤¶à¤¨ बार","popupMenuBar":"मà¥
नà¥à¤¯à¥ बार","popupResizable":"Resizable","popupScrollBars":"सà¥à¤à¥à¤°à¥à¤² बार","popupStatusBar":"सà¥à¤à¥à¤à¤¸ बार","popupToolbar":"à¤à¥à¤² बार","popupTop":"दायà¥à¤ तरफ","rel":"Relationship","selectAnchor":"à¤à¤à¤à¤° à¤à¥à¤¨à¥à¤","styles":"सà¥à¤à¤¾à¤à¤²","tabIndex":"à¤à¥à¤¬ à¤à¤¨à¥à¤¡à¥
à¤à¥à¤¸","target":"à¤à¤¾à¤°à¥à¤à¥à¤","targetFrame":"<à¥à¥à¤°à¥à¤®>","targetFrameName":"à¤à¤¾à¤°à¥à¤à¥à¤ à¥à¥à¤°à¥à¤® à¤à¤¾ नाम","targetPo
pup":"<पà¥à¤ª-à¤
प विनà¥à¤¡à¥>","targetPopupName":"पà¥à¤ª-à¤
प विनà¥à¤¡à¥ à¤à¤¾ नाम","title":"लिà¤à¤","toAnchor":"à¤à¤¸ पà¥à¤ à¤à¤¾ à¤à¤à¤à¤°","toEmail":"à¤-मà¥à¤²","toUrl":"URL","toolbar":"लिà¤à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤/सà¤à¤ªà¤¾à¤¦à¤¨","type":"लिà¤à¤ पà¥à¤°à¤à¤¾à¤°","unlink":"लिà¤à¤ हà¤à¤¾à¤¯à¥à¤","upload":"à¤
पलà¥à¤¡"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha
(A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"मà¥à¤à¥à¤¸à¤¿à¤®à¤¾à¤à¤à¤¼","minimize":"मिनिमाà¤à¥"},"newpage":{"toolbar":"नया पà¥à¤"},"pagebreak":{"alt":"पà¥à¤ बà¥à¤°à¥à¤","toolbar":"पà¥à¤ बà¥à¤°à¥à¤ à¤à¤¨à¥à¤¸à¤°à¥à¤à¥ à¤à¤°à¥à¤"},"pastetext":{"button":"पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)","title":"पà¥à¤¸à¥à¤ (सादा à¤à¥
à¤à¥à¤¸à¥à¤)"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)","toolbar":"पà¥à¤¸à¥à¤ (वरà¥à¤¡ सà¥)"},"preview":{"preview":"पà¥à¤°à¥à¤µà¥à¤¯à¥"},"print":{"toolbar":"पà¥à¤°
िनà¥à¤"},"removeformat":{"toolbar":"à¥à¥à¤°à¥à¤®à¥à¤ हà¤à¤¾à¤¯à¥à¤"},"save":{"toolbar":"सà¥à¤µ"},"selectall":{"toolbar":"सब सà¥
लà¥
à¤à¥à¤ à¤à¤°à¥à¤"},"showblocks":{"toolbar":"बà¥à¤²à¥à¤ दिà¤à¤¾à¤¯à¥à¤"},"sourcearea":{"toolbar":"सà¥à¤°à¥à¤¸"},"specialchar":{"options":"Special Character Options","title":"विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¥à¤¨à¥à¤","toolbar":"विशà¥à¤· à¤à¤°à¥
à¤à¥à¤à¤° à¤à¤¨à¥à¤¸à¤°à¥à¤ à¤à¤°à¥à¤"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for
your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"सà¥à¤à¤¾à¤à¤²","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"बà¥à¤°à¥à¤¡à¤° साà¤à¥","caption":"शà¥à¤°à¥à¤·à¤","cell":{"menu":"à¤
ाना","insertBefore":"पहलॠसà¥à¤² डालà¥à¤","insertAfter":"बाद मà¥à¤ सà¥à¤² डालà¥à¤","deleteCell":"सà¥à¤² डिलà¥à¤ à¤à¤°à¥à¤","merge":"सà¥à¤² मिलायà¥à¤","mergeRight":"बाà¤à¤¯à¤¾ विलय","mergeDown":"नà¥à¤à¥ विलय à¤à¤°à¥à¤","splitHorizontal":"सà¥à¤² à¤à¥ à¤à¥à¤·à¥à¤¤à¤¿à¤ सà¥à¤¥à¤¿à¤¤à¤¿ मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤","splitVertical":"सà¥à¤² à¤à¥ लमà¥à¤¬à¤¾à¤à¤¾à¤° मà¥à¤ विà¤à¤¾à¤à¤¿à¤¤ à¤à¤°à¥à¤","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows s
pan must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"सà¥à¤² पà¥à¤¡à¤¿à¤à¤","cellSpace":"सà¥à¤² à¤
à¤à¤¤à¤°","column":{"menu":"à¤à¤¾à¤²à¤®","insertBefore":"पहलॠà¤à¤¾à¤²à¤® डालà¥à¤","insertAfter":"बाद मà¥à¤ à¤à¤¾à¤²à¤® डालà¥à¤","deleteColumn":"à¤à¤¾à¤²à¤® डिलà¥à¤ à¤à¤°à¥à¤"},"columns":"à¤à¤¾à¤²à¤®","deleteTable":"à¤à¥à¤¬à¤² डिलà¥à¤ à¤à¤°à¥à¤","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width mus
t be a number.","menu":"à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","row":{"menu":"पà¤à¤à¥à¤¤à¤¿","insertBefore":"पहलॠपà¤à¤à¥à¤¤à¤¿ डालà¥à¤","insertAfter":"बाद मà¥à¤ पà¤à¤à¥à¤¤à¤¿ डालà¥à¤","deleteRow":"पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤ डिलà¥à¤ à¤à¤°à¥à¤"},"rows":"पà¤à¤à¥à¤¤à¤¿à¤¯à¤¾à¤","summary":"साराà¤à¤¶","title":"à¤à¥à¤¬à¤² पà¥à¤°à¥à¤ªà¤°à¥à¤à¥à¥","toolbar":"à¤à¥à¤¬à¤²","widthPc":"पà¥à¤°à¤¤à¤¿à¤¶à¤¤","widthPx":"पिà¤à¥à¤¸à¥à¤²","widthUnit":"width unit"},"undo":{"redo":"रà¥à¤¡à¥","undo":"à¤
नà¥à¤¡à¥"},"wsc":{"btnIgnore":"à¤à¤à¥à¤¨à¥à¤°","btnIgnoreAll":"सà¤à¥ à¤à¤à¥à¤¨à¥à¤° à¤à¤°à¥à¤","btnReplace":"रिपà¥à¤²à¥à¤¸","btnReplaceAll":"सà¤à¥ रिपà¥à¤²à¥à¤¸ à¤à¤°à¥à¤","btnUndo":"à¤
नà¥à¤¡à¥","changeTo":"à¤à¤¸à¤®à¥à¤ बदलà¥à¤","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"सà¥à¤ªà¥
ल-à¤à¥
à¤à¤°
à¤à¤¨à¥à¤¸à¥à¤à¤¾à¤² नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥à¥¤ à¤à¥à¤¯à¤¾ à¤à¤ª à¤à¤¸à¥ डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¨à¤¾ à¤à¤¾à¤¹à¥à¤à¤à¥?","manyChanges":"वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : %1 शबà¥à¤¦ बदलॠà¤à¤¯à¥","noChanges":"वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ :à¤à¥à¤ शबà¥à¤¦ नहà¥à¤ बदला à¤à¤¯à¤¾","noMispell":"वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¥à¤ à¤à¤²à¤¤ वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥
लिà¤à¤) नहà¥à¤ पाठà¤à¤","noSuggestions":"- à¤à¥à¤ सà¥à¤à¤¾à¤µ नहà¥à¤ -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"शबà¥à¤¦à¤à¥à¤¶ मà¥à¤ नहà¥à¤","oneChange":"वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ : à¤à¤ शबà¥à¤¦ बदला à¤à¤¯à¤¾","progress":"वरà¥à¤¤à¤¨à¥ à¤à¥ à¤à¤¾à¤à¤ (सà¥à¤ªà¥
ल-à¤à¥
à¤) à¤à¤¾à¤°à¥ हà¥...","title":"Spell Check","toolbar":"वरà¥à¤¤à¤¨à¥ (सà¥à¤ªà¥à¤²à¤¿à¤à¤) à¤à¤¾à¤à¤"
}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/hr.js b/share/static/RichText/lang/hr.js
index 098b3b7..f4cb91e 100644
--- a/share/static/RichText/lang/hr.js
+++ b/share/static/RichText/lang/hr.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.hr={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Kôd',newPage:'Nova stranica',save:'Snimi',preview:'Pregledaj',cut:'Izreži',copy:'Kopiraj',paste:'Zalijepi',print:'Ispiši',underline:'Potcrtano',bold:'Podebljaj',italic:'Ukosi',selectAll:'Odaberi sve',removeFormat:'Ukloni formatiranje',strike:'Precrtano',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Ubaci vodoravnu liniju',pagebreak:'Ubaci prijelom stranice',unlink:'Ukloni link',undo:'Poništi',redo:'Ponovi',common:{browseServer:'Pretraži server',url:'URL',protocol:'Protokol',upload:'Pošalji',uploadSubmit:'Pošalji na server',image:'Slika',flash:'Flash',form:'Form',checkbox:'Checkbox',radio:'Radio Button',textField:'Text Field',textarea:'Textarea',hiddenField:'Hidden Field',button:'Button',select:'Selection Field',imageButton:'Image Button',notSet:'<nije postavljeno>',id:'Id',name:'Naziv',langDir:'Smjer jezika',langDi
rLtr:'S lijeva na desno (LTR)',langDirRtl:'S desna na lijevo (RTL)',langCode:'Kôd jezika',longDescr:'DugaÄki opis URL',cssClass:'Stylesheet klase',advisoryTitle:'Advisory naslov',cssStyle:'Stil',ok:'OK',cancel:'PoniÅ¡ti',close:'Close',preview:'Preview',generalTab:'OpÄenito',advancedTab:'Napredno',validateNumberFailed:'Ova vrijednost nije broj.',confirmNewPage:'Sve napravljene promjene Äe biti izgubljene ukoliko ih niste snimili. Sigurno želite uÄitati novu stranicu?',confirmCancel:'Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, nedostupno</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Ubac
i posebne znakove',title:'Odaberite posebni karakter',options:'Special Character Options'},link:{toolbar:'Ubaci/promijeni link',other:'<drugi>',menu:'Promijeni link',title:'Link',info:'Link Info',target:'Meta',upload:'PoÅ¡alji',advanced:'Napredno',type:'Link vrsta',toUrl:'URL',toAnchor:'Sidro na ovoj stranici',toEmail:'E-Mail',targetFrame:'<okvir>',targetPopup:'<popup prozor>',targetFrameName:'Ime ciljnog okvira',targetPopupName:'Naziv popup prozora',popupFeatures:'MoguÄnosti popup prozora',popupResizable:'Promjenjiva veliÄina',popupStatusBar:'Statusna traka',popupLocationBar:'Traka za lokaciju',popupToolbar:'Traka s alatima',popupMenuBar:'Izborna traka',popupFullScreen:'Cijeli ekran (IE)',popupScrollBars:'Scroll traka',popupDependent:'Ovisno (Netscape)',popupWidth:'Å irina',popupLeft:'Lijeva pozicija',popupHeight:'Visina',popupTop:'Gornja pozicija',id:'Id',langDir:'Smjer jezika',langDirLTR:'S lijeva na desno (LTR)',langDirRTL:'S desna na lijevo (RTL)',acccessKey:'Pristupn
a tipka',name:'Naziv',langCode:'Smjer jezika',tabIndex:'Tab Indeks',advisoryTitle:'Advisory naslov',advisoryContentType:'Advisory vrsta sadržaja',cssClasses:'Stylesheet klase',charset:'Kodna stranica povezanih resursa',styles:'Stil',selectAnchor:'Odaberi sidro',anchorName:'Po nazivu sidra',anchorId:'Po Id elementa',emailAddress:'E-Mail adresa',emailSubject:'Naslov',emailBody:'Sadržaj poruke',noAnchors:'(Nema dostupnih sidra)',noUrl:'Molimo upišite URL link',noEmail:'Molimo upišite e-mail adresu'},anchor:{toolbar:'Ubaci/promijeni sidro',menu:'Svojstva sidra',title:'Svojstva sidra',name:'Ime sidra',errorName:'Molimo unesite ime sidra'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoma
n:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'PronaÄi i zamijeni',find:'PronaÄi',replace:'Zamijeni',findWhat:'PronaÄi:',replaceWith:'Zamijeni s:',notFoundMsg:'Traženi tekst nije pronaÄen.',matchCase:'Usporedi mala/velika slova',matchWord:'Usporedi cijele rijeÄi',matchCyclic:'Usporedi kružno',replaceAll:'Zamijeni sve',replaceSuccessMsg:'Zamijenjeno %1 pojmova.'},table:{toolbar:'Tablica',title:'Svojstva tablice',menu:'Svojstva tablice',deleteTable:'IzbriÅ¡i tablicu',rows:'Redova',columns:'Kolona',border:'VeliÄina okvira',align:'Poravnanje',alignLeft:'Lijevo',alignCenter:'SrediÅ¡nje',alignRight:'Desno',width:'Å irina',widthPx:'piksela',widthPc:'postotaka',widthUni
t:'width unit',height:'Visina',cellSpace:'Prostornost Äelija',cellPad:'Razmak Äelija',caption:'Naslov',summary:'Sažetak',headers:'Zaglavlje',headersNone:'NiÅ¡ta',headersColumn:'Prva kolona',headersRow:'Prvi red',headersBoth:'Oba',invalidRows:'Broj redova mora biti broj veÄi od 0.',invalidCols:'Broj kolona mora biti broj veÄi od 0.',invalidBorder:'Debljina ruba mora biti broj.',invalidWidth:'Å irina tablice mora biti broj.',invalidHeight:'Visina tablice mora biti broj.',invalidCellSpacing:'Prostornost Äelija mora biti broj.',invalidCellPadding:'Razmak Äelija mora biti broj.',cell:{menu:'Äelija',insertBefore:'Ubaci Äeliju prije',insertAfter:'Ubaci Äeliju poslije',deleteCell:'IzbriÅ¡i Äelije',merge:'Spoji Äelije',mergeRight:'Spoji desno',mergeDown:'Spoji dolje',splitHorizontal:'Podijeli Äeliju vodoravno',splitVertical:'Podijeli Äeliju okomito',title:'Svojstva Äelije',cellType:'Vrsta Äelije',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Prelazak u novi red
',hAlign:'Vodoravno poravnanje',vAlign:'Okomito poravnanje',alignTop:'Vrh',alignMiddle:'Sredina',alignBottom:'Dolje',alignBaseline:'Osnovna linija',bgColor:'Boja pozadine',borderColor:'Boja ruba',data:'Podatak',header:'Zaglavlje',yes:'Da',no:'ne',invalidWidth:'Å irina Äelije mora biti broj.',invalidHeight:'Visina Äelije mora biti broj.',invalidRowSpan:'Rows span mora biti cijeli broj.',invalidColSpan:'Columns span mora biti cijeli broj.',chooseColor:'Choose'},row:{menu:'Red',insertBefore:'Ubaci red prije',insertAfter:'Ubaci red poslije',deleteRow:'IzbriÅ¡i redove'},column:{menu:'Kolona',insertBefore:'Ubaci kolonu prije',insertAfter:'Ubaci kolonu poslije',deleteColumn:'IzbriÅ¡i kolone'}},button:{title:'Image Button svojstva',text:'Tekst (vrijednost)',type:'Vrsta',typeBtn:'Gumb',typeSbm:'PoÅ¡alji',typeRst:'PoniÅ¡ti'},checkboxAndRadio:{checkboxTitle:'Checkbox svojstva',radioTitle:'Radio Button svojstva',value:'Vrijednost',selected:'Odabrano'},form:{title:'Form svojstva',menu:
'Form svojstva',action:'Akcija',method:'Metoda',encoding:'Encoding'},select:{title:'Selection svojstva',selectInfo:'Info',opAvail:'Dostupne opcije',value:'Vrijednost',size:'VeliÄina',lines:'linija',chkMulti:'Dozvoli viÅ¡estruki odabir',opText:'Tekst',opValue:'Vrijednost',btnAdd:'Dodaj',btnModify:'Promijeni',btnUp:'Gore',btnDown:'Dolje',btnSetValue:'Postavi kao odabranu vrijednost',btnDelete:'ObriÅ¡i'},textarea:{title:'Textarea svojstva',cols:'Kolona',rows:'Redova'},textfield:{title:'Text Field svojstva',name:'Ime',value:'Vrijednost',charWidth:'Å irina',maxChars:'NajviÅ¡e karaktera',type:'Vrsta',typeText:'Tekst',typePass:'Å ifra'},hidden:{title:'Hidden Field svojstva',name:'Ime',value:'Vrijednost'},image:{title:'Svojstva slika',titleButton:'Image Button svojstva',menu:'Svojstva slika',infoTab:'Info slike',btnUpload:'PoÅ¡alji na server',upload:'PoÅ¡alji',alt:'Alternativni tekst',width:'Å irina',height:'Visina',lockRatio:'ZakljuÄaj odnos',unlockRatio:'Unlock Ratio',resetSize:
'ObriÅ¡i veliÄinu',border:'Okvir',hSpace:'HSpace',vSpace:'VSpace',align:'Poravnaj',alignLeft:'Lijevo',alignRight:'Desno',alertUrl:'Unesite URL slike',linkTab:'Link',button2Img:'Želite li promijeniti odabrani gumb u jednostavnu sliku?',img2Button:'Želite li promijeniti odabranu sliku u gumb?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash svojstva',propertiesTab:'Svojstva',title:'Flash svojstva',chkPlay:'Auto Play',chkLoop:'Ponavljaj',chkMenu:'OmoguÄi Flash izbornik',chkFull:'OmoguÄi Fullscreen',scale:'Omjer',scaleAll:'Prikaži sve',scaleNoBorder:'Bez okvira',scaleFit:'ToÄna veliÄina',access:'Script Access',accessAlways:'Uvijek',accessSameDomain:'Ista domena',accessNever:'Nikad',align:'Poravnaj',alignLeft:'Lijevo',
alignAbsBottom:'Abs dolje',alignAbsMiddle:'Abs sredina',alignBaseline:'Bazno',alignBottom:'Dolje',alignMiddle:'Sredina',alignRight:'Desno',alignTextTop:'Vrh teksta',alignTop:'Vrh',quality:'Kvaliteta',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Vrsta prozora',flashvars:'Varijable za Flash',bgcolor:'Boja pozadine',width:'Å irina',height:'Visina',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'Molimo upiÅ¡ite URL link',validateWidth:'Å irina mora biti broj.',validateHeight:'Visina mora biti broj.',validateHSpace:'HSpace mora biti broj.',validateVSpace:'VSpace mora biti broj.'},spellCheck:{toolbar:'Provjeri pravopis',title:'Provjera pravopisa',notAvailable:'Žao nam je, ali usluga trenutno nije dostupna.',errorLoading:'GreÅ¡ka uÄitavanja aplikacije: %s.',notInDic:'Nije u rjeÄniku',changeTo:'Prom
ijeni u',btnIgnore:'Zanemari',btnIgnoreAll:'Zanemari sve',btnReplace:'Zamijeni',btnReplaceAll:'Zamijeni sve',btnUndo:'Vrati',noSuggestions:'-Nema preporuke-',progress:'Provjera u tijeku...',noMispell:'Provjera zavrÅ¡ena: Nema greÅ¡aka',noChanges:'Provjera zavrÅ¡ena: Nije napravljena promjena',oneChange:'Provjera zavrÅ¡ena: Jedna rijeÄ promjenjena',manyChanges:'Provjera zavrÅ¡ena: Promijenjeno %1 rijeÄi',ieSpellDownload:'Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?'},smiley:{toolbar:'SmjeÅ¡ko',title:'Ubaci smjeÅ¡ka',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'BrojÄana lista',bulletedlist:'ObiÄna lista',indent:'Pomakni udesno',outdent:'Pomakni ulijevo',justify:{left:'Lijevo poravnanje',center:'SrediÅ¡nje poravnanje',right:'Desno poravnanje',block:'Blok poravnanje'},blockquote:'Blockquote',clipboard:{title:'Zalijepi',cutError:'Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju op
eracije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).',copyError:'Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).',pasteMsg:'Molimo zaljepite unutar doljnjeg okvira koristeÄi tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.',securityMsg:'Zbog sigurnosnih postavki VaÅ¡eg pretraživaÄa, editor nema direktan pristup VaÅ¡em meÄuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Tekst koji želite zalijepiti Äini se da je kopiran iz Worda. Želite li prije oÄistiti tekst?',toolbar:'Zalijepi iz Worda',title:'Zalijepi iz Worda',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Zalijepi kao Äisti tekst',title:'Zalijepi kao Äisti tekst'},templates:{button:'PredloÅ¡ci',title:'PredloÅ¡ci sadržaja',options:'Templ
ate Options',insertOption:'Zamijeni trenutne sadržaje',selectPromptMsg:'Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj Äe biti izgubljen):',emptyListMsg:'(Nema definiranih predložaka)'},showBlocks:'Prikaži blokove',stylesCombo:{label:'Stil',panelTitle:'Formatting Styles',panelTitle1:'Block stilovi',panelTitle2:'Inline stilovi',panelTitle3:'Object stilovi'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatirano',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right t
o Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font'},fontSize:{label:'VeliÄina',voiceLabel:'VeliÄina slova',panelTitle:'VeliÄina'},colorButton:{textColorTitle:'Boja teksta',bgColorTitle:'Boja pozadine',panelTitle:'Colors',auto:'Automatski',more:'ViÅ¡e boja...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FF
FF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Provjeri pravopis tijekom tipkanja (SCAYT)',opera_title:'Not supported by Opera',enable:'OmoguÄi SCAYT',disable:'OnemoguÄi SCAYT',about:'O SCAYT',toggle:'OmoguÄu/OnemoguÄi SCAYT',options:'Opcije',langs:'Jezici',moreSuggestions:'ViÅ¡e prijedloga',ignore:'Zanemari',ignoreAll:'Zanemari sve',addWord:'Dodaj rijeÄ',emptyDic:'Naziv rjeÄnika ne smije biti prazno.',optionsTab:'Opcije',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Jezici',dictionariesTab:'RjeÄnici',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may
be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'O SCAYT'},about:{title:'O CKEditoru',dlgTitle:'O CKEditoru',moreInfo:'Za informacije o licencama posjetite naÅ¡u web stranicu:',copy:'Copyright © $1. All rights reserved.'},maximize:'PoveÄaj',minimize:'Minimize',fakeobjects:{anchor:'Sidro',flash:'Flash animacija',div:'Prijelom stranice',unknown:'Nepoznati objekt'},resize:'Povuci za promjenu veliÄine',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['hr']={"dir":"ltr","editor":"Bogati ureÄivaÄ teksta","common":{"editorHelp":"Pritisni ALT 0 za pomoÄ","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"PoÅ¡alji","uploadSubmit":"PoÅ¡alji na server","image":"Slika","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smjer jezika","langDirLtr":"S lijeva na desno (LTR)","langDirRtl":"S desna na lijevo (RTL)","langCode":"Kôd jezika","longDescr":"DugaÄki opis URL","cssClass":"Stylesheet klase","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"PoniÅ¡ti","close":"Zatvori","preview":"Pregledaj","resize":"Povuci za promjenu veliÄine","generalTab":"OpÄenito","advancedTab":"Napredno","validateNumberFailed":"Ova vrijednost nije broj
.","confirmNewPage":"Sve napravljene promjene Äe biti izgubljene ukoliko ih niste snimili. Sigurno želite uÄitati novu stranicu?","confirmCancel":"Neke od opcija su promjenjene. Sigurno želite zatvoriti ovaj prozor?","options":"Opcije","target":"OdrediÅ¡te","targetNew":"Novi prozor (_blank)","targetTop":"VrÅ¡ni prozor (_top)","targetSelf":"Isti prozor (_self)","targetParent":"Roditeljski prozor (_parent)","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","styles":"Stil","cssClasses":"Klase stilova","width":"Å irina","height":"Visina","align":"Poravnaj","alignLeft":"Lijevo","alignRight":"Desno","alignCenter":"SrediÅ¡nje","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dolje","invalidValue":"Invalid value.","invalidHeight":"Visina mora biti broj.","invalidWidth":"Å irina mora biti broj.","invalidCssLength":"Vrijednost odreÄena za \"%1\" polje mora biti pozitivni broj sa ili bez važeÄih CSS mjernih jedinica (px, %, in, cm, mm, em, ex,
pt ili pc).","invalidHtmlLength":"Vrijednost odreÄena za \"%1\" polje mora biti pozitivni broj sa ili bez važeÄih HTML mjernih jedinica (px ili %).","invalidInlineStyle":"Vrijednost za linijski stil mora sadržavati jednu ili viÅ¡e definicija s formatom \"naziv:vrijednost\", odvojenih toÄka-zarezom.","cssLengthTooltip":"Unesite broj za vrijednost u pikselima ili broj s važeÄim CSS mjernim jedinicama (px, %, in, cm, mm, em, ex, pt ili pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupno</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"O CKEditoru","help":"Provjeri $1 za pomoÄ.","moreInfo":"Za informacije o licencama posjetite naÅ¡u web stranicu:","title":"O CKEditoru","userGuide":"VodiÄ za CKEditor korisnike"},"basicstyles":{"bold":"Podebljaj","italic":"Ukosi","strike":"Precrtano","subscript":"Subscript","superscript":"Superscript","underline":"Potcrtano"},"bidi":{"ltr":"Smjer teksta s lijeva na desno","rtl":"Smjer teks
ta s desna na lijevo"},"blockquote":{"toolbar":"Blockquote"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Sigurnosne postavke VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl/Cmd+X).","paste":"Zalijepi","pasteArea":"Prostor za ljepljenje","pasteMsg":"Molimo zaljepite unutar doljnjeg okvira koristeÄi tipkovnicu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknite <STRONG>OK</STRONG>.","securityMsg":"Zbog sigurnosnih postavki VaÅ¡eg pretraživaÄa, editor nema direktan pristup VaÅ¡em meÄuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.","title":"Zalijepi"},"colorbutton":{"auto":"Automatski","bgColorTitle":"Boja pozadine","colors":{"000":"Crna","800000":"Kesten","8B4513":"SmeÄa","2F4F4F":"Tamno siva","008080":"Teal","000080":"Mornarska",
"4B0082":"Indigo","696969":"Tamno siva","B22222":"Vatrena cigla","A52A2A":"SmeÄa","DAA520":"Zlatna","006400":"Tamno zelena","40E0D0":"Tirkizna","0000CD":"Srednje plava","800080":"LjubiÄasta","808080":"Siva","F00":"Crvena","FF8C00":"Tamno naranÄasta","FFD700":"Zlatna","008000":"Zelena","0FF":"Cijan","00F":"Plava","EE82EE":"LjubiÄasta","A9A9A9":"Mutno siva","FFA07A":"Svijetli losos","FFA500":"NaranÄasto","FFFF00":"Žuto","00FF00":"Limun","AFEEEE":"Blijedo tirkizna","ADD8E6":"Svijetlo plava","DDA0DD":"Å ljiva","D3D3D3":"Svijetlo siva","FFF0F5":"Lavanda rumeno","FAEBD7":"Antikno bijela","FFFFE0":"Svijetlo žuta","F0FFF0":"Med","F0FFFF":"Azurna","F0F8FF":"Alice plava","E6E6FA":"Lavanda","FFF":"Bijela"},"more":"ViÅ¡e boja...","panelTitle":"Boje","textColorTitle":"Boja teksta"},"colordialog":{"clear":"OÄisti","highlight":"Istaknuto","options":"Opcije boje","selected":"Odabrana boja","title":"Odaberi boju"},"templates":{"button":"PredloÅ¡ci","emptyListMsg":"(Nema definiranih p
redložaka)","insertOption":"Zamijeni trenutne sadržaje","options":"Opcije predložaka","selectPromptMsg":"Molimo odaberite predložak koji želite otvoriti<br>(stvarni sadržaj Äe biti izgubljen):","title":"PredloÅ¡ci sadržaja"},"contextmenu":{"options":"Opcije izbornika"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Savjetodavni naslov","cssClassInputLabel":"Klase stilova","edit":"Uredi DIV","inlineStyleInputLabel":"Stil u liniji","langDirLTRLabel":"S lijeva na desno (LTR)","langDirLabel":"Smjer jezika","langDirRTLLabel":"S desna na lijevo (RTL)","languageCodeInputLabel":"JeziÄni kod","remove":"Ukloni DIV","styleSelectLabel":"Stil","title":"Napravi DIV kontejner","toolbar":"Napravi DIV kontejner"},"toolbar":{"toolbarCollapse":"Smanji alatnu traku","toolbarExpand":"ProÅ¡iri alatnu traku","toolbarGroups":{"document":"Dokument","clipboard":"MeÄuspremnik/PoniÅ¡ti","editing":"UreÄivanje","forms":"Forme","basicstyles":"Osnovni stilovi","paragraph":"Paragraf","link
s":"Veze","insert":"Umetni","styles":"Stilovi","colors":"Boje","tools":"Alatke"},"toolbars":"Alatne trake ureÄivaÄa teksta"},"elementspath":{"eleLabel":"Putanja elemenata","eleTitle":"%1 element"},"list":{"bulletedlist":"ObiÄna lista","numberedlist":"BrojÄana lista"},"indent":{"indent":"Pomakni udesno","outdent":"Pomakni ulijevo"},"find":{"find":"PronaÄi","findOptions":"Opcije traženja","findWhat":"PronaÄi:","matchCase":"Usporedi mala/velika slova","matchCyclic":"Usporedi kružno","matchWord":"Usporedi cijele rijeÄi","notFoundMsg":"Traženi tekst nije pronaÄen.","replace":"Zamijeni","replaceAll":"Zamijeni sve","replaceSuccessMsg":"Zamijenjeno %1 pojmova.","replaceWith":"Zamijeni s:","title":"PronaÄi i zamijeni"},"fakeobjects":{"anchor":"Sidro","flash":"Flash animacija","hiddenfield":"Sakriveno polje","iframe":"IFrame","unknown":"Nepoznati objekt"},"flash":{"access":"Script Access","accessAlways":"Uvijek","accessNever":"Nikad","accessSameDomain":"Ista domena","align
AbsBottom":"Abs dolje","alignAbsMiddle":"Abs sredina","alignBaseline":"Bazno","alignTextTop":"Vrh teksta","bgcolor":"Boja pozadine","chkFull":"OmoguÄi Fullscreen","chkLoop":"Ponavljaj","chkMenu":"OmoguÄi Flash izbornik","chkPlay":"Auto Play","flashvars":"Varijable za Flash","hSpace":"HSpace","properties":"Flash svojstva","propertiesTab":"Svojstva","quality":"Kvaliteta","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Omjer","scaleAll":"Prikaži sve","scaleFit":"ToÄna veliÄina","scaleNoBorder":"Bez okvira","title":"Flash svojstva","vSpace":"VSpace","validateHSpace":"HSpace mora biti broj.","validateSrc":"Molimo upiÅ¡ite URL link","validateVSpace":"VSpace mora biti broj.","windowMode":"Vrsta prozora","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"VeliÄina","voiceLabel":"VeliÄina slova","panelT
itle":"VeliÄina"},"label":"Font","panelTitle":"Font","voiceLabel":"Font"},"forms":{"button":{"title":"Image Button svojstva","text":"Tekst (vrijednost)","type":"Vrsta","typeBtn":"Gumb","typeSbm":"PoÅ¡alji","typeRst":"PoniÅ¡ti"},"checkboxAndRadio":{"checkboxTitle":"Checkbox svojstva","radioTitle":"Radio Button svojstva","value":"Vrijednost","selected":"Odabrano"},"form":{"title":"Form svojstva","menu":"Form svojstva","action":"Akcija","method":"Metoda","encoding":"Encoding"},"hidden":{"title":"Hidden Field svojstva","name":"Ime","value":"Vrijednost"},"select":{"title":"Selection svojstva","selectInfo":"Info","opAvail":"Dostupne opcije","value":"Vrijednost","size":"VeliÄina","lines":"linija","chkMulti":"Dozvoli viÅ¡estruki odabir","opText":"Tekst","opValue":"Vrijednost","btnAdd":"Dodaj","btnModify":"Promijeni","btnUp":"Gore","btnDown":"Dolje","btnSetValue":"Postavi kao odabranu vrijednost","btnDelete":"ObriÅ¡i"},"textarea":{"title":"Textarea svojstva","cols":"Kolona","rows":
"Redova"},"textfield":{"title":"Text Field svojstva","name":"Ime","value":"Vrijednost","charWidth":"Å irina","maxChars":"NajviÅ¡e karaktera","type":"Vrsta","typeText":"Tekst","typePass":"Å ifra","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"horizontalrule":{"toolbar":"Ubaci vodoravnu liniju"},"iframe":{"border":"Prikaži okvir IFrame-a","noUrl":"Unesite URL iframe-a","scrolling":"OmoguÄi trake za skrolanje","title":"IFrame svojstva","toolbar":"IFrame"},"image":{"alertUrl":"Unesite URL slike","alt":"Alternativni tekst","border":"Okvir","btnUpload":"PoÅ¡alji na server","button2Img":"Želite li promijeniti odabrani gumb u jednostavnu sliku?","hSpace":"HSpace","img2Button":
"Želite li promijeniti odabranu sliku u gumb?","infoTab":"Info slike","linkTab":"Link","lockRatio":"ZakljuÄaj odnos","menu":"Svojstva slika","resetSize":"ObriÅ¡i veliÄinu","title":"Svojstva slika","titleButton":"Image Button svojstva","upload":"PoÅ¡alji","urlMissing":"Nedostaje URL slike.","vSpace":"VSpace","validateBorder":"Okvir mora biti cijeli broj.","validateHSpace":"HSpace mora biti cijeli broj","validateVSpace":"VSpace mora biti cijeli broj."},"smiley":{"options":"Opcije smjeÅ¡ka","title":"Ubaci smjeÅ¡ka","toolbar":"SmjeÅ¡ko"},"justify":{"block":"Blok poravnanje","center":"SrediÅ¡nje poravnanje","left":"Lijevo poravnanje","right":"Desno poravnanje"},"link":{"acccessKey":"Pristupna tipka","advanced":"Napredno","advisoryContentType":"Advisory vrsta sadržaja","advisoryTitle":"Advisory naslov","anchor":{"toolbar":"Ubaci/promijeni sidro","menu":"Svojstva sidra","title":"Svojstva sidra","name":"Ime sidra","errorName":"Molimo unesite ime sidra","remove":"Ukloni sidro"},"
anchorId":"Po Id elementa","anchorName":"Po nazivu sidra","charset":"Kodna stranica povezanih resursa","cssClasses":"Stylesheet klase","emailAddress":"E-Mail adresa","emailBody":"Sadržaj poruke","emailSubject":"Naslov","id":"Id","info":"Link Info","langCode":"Smjer jezika","langDir":"Smjer jezika","langDirLTR":"S lijeva na desno (LTR)","langDirRTL":"S desna na lijevo (RTL)","menu":"Promijeni link","name":"Naziv","noAnchors":"(Nema dostupnih sidra)","noEmail":"Molimo upiÅ¡ite e-mail adresu","noUrl":"Molimo upiÅ¡ite URL link","other":"<drugi>","popupDependent":"Ovisno (Netscape)","popupFeatures":"MoguÄnosti popup prozora","popupFullScreen":"Cijeli ekran (IE)","popupLeft":"Lijeva pozicija","popupLocationBar":"Traka za lokaciju","popupMenuBar":"Izborna traka","popupResizable":"Promjenjiva veliÄina","popupScrollBars":"Scroll traka","popupStatusBar":"Statusna traka","popupToolbar":"Traka s alatima","popupTop":"Gornja pozicija","rel":"Veza","selectAnchor":"Odaberi sidro","styles
":"Stil","tabIndex":"Tab Indeks","target":"Meta","targetFrame":"<okvir>","targetFrameName":"Ime ciljnog okvira","targetPopup":"<popup prozor>","targetPopupName":"Naziv popup prozora","title":"Link","toAnchor":"Sidro na ovoj stranici","toEmail":"E-Mail","toUrl":"URL","toolbar":"Ubaci/promijeni link","type":"Link vrsta","unlink":"Ukloni link","upload":"PoÅ¡alji"},"liststyle":{"armenian":"Armenijska numeracija","bulletedTitle":"Svojstva liste","circle":"Krug","decimal":"Decimalna numeracija (1, 2, 3, itd.)","decimalLeadingZero":"Decimalna s vodeÄom nulom (01, 02, 03, itd)","disc":"Disk","georgian":"Gruzijska numeracija(an, ban, gan, etc.)","lowerAlpha":"Znakovi mala slova (a, b, c, d, e, itd.)","lowerGreek":"GrÄka numeracija mala slova (alfa, beta, gama, itd).","lowerRoman":"Romanska numeracija mala slova (i, ii, iii, iv, v, itd.)","none":"Bez","notset":"<nije odreÄen>","numberedTitle":"Svojstva brojÄane liste","square":"Kvadrat","start":"PoÄetak","type":"Vrsta","upperAlph
a":"Znakovi velika slova (A, B, C, D, E, itd.)","upperRoman":"Romanska numeracija velika slova (I, II, III, IV, V, itd.)","validateStartNumber":"PoÄetak brojÄane liste mora biti cijeli broj."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"PoveÄaj","minimize":"Smanji"},"newpage":{"toolbar":"Nova stranica"},"pagebreak":{"alt":"Prijelom stranice","toolbar":"Ubaci prijelom stranice"},"pastetext":{"button":"Zalijepi kao Äisti tekst","title":"Zalijepi kao Äisti tekst"},"pastefromword":{"confirmCleanup":"Tekst koji želite zalijepiti Äini se da je kopiran iz Worda. Želite li prije oÄistiti tekst?","error":"Nije moguÄe oÄistiti podatke za ljepljenje zbog interne greÅ¡ke","title":"Zalijepi iz Worda","toolbar":"Zalijepi iz Worda"},"preview":{"preview":"Pregledaj"},"print":{"toolbar":"IspiÅ¡i"},"removeformat":{"toolbar":"Ukloni formatiranje"},"save":{"toolbar":"Snimi"},"selectall":{"toolbar":"Odaberi sve"},"showblocks":{"toolbar":"Prikaži blokove"},"s
ourcearea":{"toolbar":"Kôd"},"specialchar":{"options":"Opcije specijalnih znakova","title":"Odaberite posebni karakter","toolbar":"Ubaci posebne znakove"},"scayt":{"about":"O SCAYT","aboutTab":"O SCAYT","addWord":"Dodaj rijeÄ","allCaps":"Ignoriraj rijeÄi s velikim slovima","dic_create":"Napravi","dic_delete":"ObriÅ¡i","dic_field_name":"Naziv rijeÄnika","dic_info":"Na poÄetku se korisniÄki RijeÄnik sprema u Cookie. Nažalost, veliÄina im je ograniÄena. Kada korisniÄki RijeÄnik naraste preko te veliÄine, RijeÄnik Äe biti smjeÅ¡ten na naÅ¡ server. Kako bi se korisniÄki RijeÄnik spremio na naÅ¡ server morate odabrati naziv VaÅ¡eg RijeÄnika. Ukoliko ste veÄ prije spremali RijeÄnik na naÅ¡e servere, unesite naziv RijeÄnika i pritisnite na Povrati.","dic_rename":"Promijeni naziv","dic_restore":"Povrati","dictionariesTab":"RjeÄnici","disable":"OnemoguÄi SCAYT","emptyDic":"Naziv rjeÄnika ne smije biti prazno.","enable":"OmoguÄi SCAYT","ignore":"Zanemari","igno
reAll":"Zanemari sve","ignoreDomainNames":"Ignoriraj nazive domena","langs":"Jezici","languagesTab":"Jezici","mixedCase":"Ignoriraj rijeÄi s mijeÅ¡anim slovima","mixedWithDigits":"Ignoriraj rijeÄi s brojevima","moreSuggestions":"ViÅ¡e prijedloga","opera_title":"Nije podržano u Operi","options":"Opcije","optionsTab":"Opcije","title":"Provjeri pravopis tijekom tipkanja (SCAYT)","toggle":"OmoguÄu/OnemoguÄi SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"Stilovi formatiranja","panelTitle1":"Block stilovi","panelTitle2":"Inline stilovi","panelTitle3":"Object stilovi"},"table":{"border":"VeliÄina okvira","caption":"Naslov","cell":{"menu":"Äelija","insertBefore":"Ubaci Äeliju prije","insertAfter":"Ubaci Äeliju poslije","deleteCell":"IzbriÅ¡i Äelije","merge":"Spoji Äelije","mergeRight":"Spoji desno","mergeDown":"Spoji dolje","splitHorizontal":"Podijeli Äeliju vodoravno","splitVertical":"Podijeli Äeliju okomito","title":"Svojstva Äeli
je","cellType":"Vrsta Äelije","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Prelazak u novi red","hAlign":"Vodoravno poravnanje","vAlign":"Okomito poravnanje","alignBaseline":"Osnovna linija","bgColor":"Boja pozadine","borderColor":"Boja ruba","data":"Podatak","header":"Zaglavlje","yes":"Da","no":"ne","invalidWidth":"Å irina Äelije mora biti broj.","invalidHeight":"Visina Äelije mora biti broj.","invalidRowSpan":"Rows span mora biti cijeli broj.","invalidColSpan":"Columns span mora biti cijeli broj.","chooseColor":"Odaberi"},"cellPad":"Razmak Äelija","cellSpace":"Prostornost Äelija","column":{"menu":"Kolona","insertBefore":"Ubaci kolonu prije","insertAfter":"Ubaci kolonu poslije","deleteColumn":"IzbriÅ¡i kolone"},"columns":"Kolona","deleteTable":"IzbriÅ¡i tablicu","headers":"Zaglavlje","headersBoth":"Oba","headersColumn":"Prva kolona","headersNone":"NiÅ¡ta","headersRow":"Prvi red","invalidBorder":"Debljina ruba mora biti broj.","invalidCellPadding":"Razmak
Äelija mora biti broj.","invalidCellSpacing":"Prostornost Äelija mora biti broj.","invalidCols":"Broj kolona mora biti broj veÄi od 0.","invalidHeight":"Visina tablice mora biti broj.","invalidRows":"Broj redova mora biti broj veÄi od 0.","invalidWidth":"Å irina tablice mora biti broj.","menu":"Svojstva tablice","row":{"menu":"Red","insertBefore":"Ubaci red prije","insertAfter":"Ubaci red poslije","deleteRow":"IzbriÅ¡i redove"},"rows":"Redova","summary":"Sažetak","title":"Svojstva tablice","toolbar":"Tablica","widthPc":"postotaka","widthPx":"piksela","widthUnit":"jedinica Å¡irine"},"undo":{"redo":"Ponovi","undo":"PoniÅ¡ti"},"wsc":{"btnIgnore":"Zanemari","btnIgnoreAll":"Zanemari sve","btnReplace":"Zamijeni","btnReplaceAll":"Zamijeni sve","btnUndo":"Vrati","changeTo":"Promijeni u","errorLoading":"GreÅ¡ka uÄitavanja aplikacije: %s.","ieSpellDownload":"Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?","manyChanges":"Provjera zavrÅ¡ena: Promijenje
no %1 rijeÄi","noChanges":"Provjera zavrÅ¡ena: Nije napravljena promjena","noMispell":"Provjera zavrÅ¡ena: Nema greÅ¡aka","noSuggestions":"-Nema preporuke-","notAvailable":"Žao nam je, ali usluga trenutno nije dostupna.","notInDic":"Nije u rjeÄniku","oneChange":"Provjera zavrÅ¡ena: Jedna rijeÄ promjenjena","progress":"Provjera u tijeku...","title":"Provjera pravopisa","toolbar":"Provjeri pravopis"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/hu.js b/share/static/RichText/lang/hu.js
index 61e7d3f..f012464 100644
--- a/share/static/RichText/lang/hu.js
+++ b/share/static/RichText/lang/hu.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.hu={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Forráskód',newPage:'Ãj oldal',save:'Mentés',preview:'ElÅnézet',cut:'Kivágás',copy:'Másolás',paste:'Beillesztés',print:'Nyomtatás',underline:'Aláhúzott',bold:'Félkövér',italic:'DÅlt',selectAll:'Mindent kijelöl',removeFormat:'Formázás eltávolÃtása',strike:'Ãthúzott',subscript:'Alsó index',superscript:'FelsÅ index',horizontalrule:'Elválasztóvonal beillesztése',pagebreak:'Oldaltörés beillesztése',unlink:'Hivatkozás törlése',undo:'Visszavonás',redo:'Ismétlés',common:{browseServer:'Böngészés a szerveren',url:'Hivatkozás',protocol:'Protokoll',upload:'Feltöltés',uploadSubmit:'Küldés a szerverre',image:'Kép',flash:'Flash',form:'Űrlap',checkbox:'JelölÅnégyzet',radio:'Választógomb',textField:'SzövegmezÅ',textarea:'Szövegterület',hiddenField:'RejtettmezÅ',button:'Gomb',select:'LegördülÅ li
sta',imageButton:'Képgomb',notSet:'<nincs beállÃtva>',id:'AzonosÃtó',name:'Név',langDir:'Ãrás iránya',langDirLtr:'Balról jobbra',langDirRtl:'Jobbról balra',langCode:'Nyelv kódja',longDescr:'Részletes leÃrás webcÃme',cssClass:'StÃluskészlet',advisoryTitle:'Súgócimke',cssStyle:'StÃlus',ok:'Rendben',cancel:'Mégsem',close:'Close',preview:'Preview',generalTab:'Ãltalános',advancedTab:'További opciók',validateNumberFailed:'A mezÅbe csak számokat Ãrhat.',confirmNewPage:'Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?',confirmCancel:'Az űrlap tartalma megváltozott, ám a változásokat nem rögzÃtette. Biztosan be szeretné zárni az űrlapot?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Styleshee
t Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Speciális karakter beillesztése',title:'Speciális karakter választása',options:'Special Character Options'},link:{toolbar:'Hivatkozás beillesztése/módosÃtása',other:'<más>',menu:'Hivatkozás módosÃtása',title:'Hivatkozás tulajdonságai',info:'Alaptulajdonságok',target:'Tartalom megjelenÃtése',upload:'Feltöltés',advanced:'További opciók',type:'Hivatkozás tÃpusa',toUrl:'URL',toAnchor:'Horgony az oldalon',toEmail:'E-Mail',targetFrame:'<keretben>',targetPopup:'<felugró ablakban>',targetFrameName:'Keret neve',targetPopupName:'Felugró ablak neve',popupFeatures:'Felugró ablak jellemzÅi',popupResizable:'Ãtméretezés',popupStatusBar:'Ãllapotsor',popupLocationBar:'CÃmsor',popupToolbar:'Eszköztár',popupMenuBar:'Menü sor',popupFullScreen:'Teljes képernyÅ (csak IE)',popupScrollBars:'GördÃtÅsáv',popupDe
pendent:'SzülÅhöz kapcsolt (csak Netscape)',popupWidth:'Szélesség',popupLeft:'Bal pozÃció',popupHeight:'Magasság',popupTop:'FelsÅ pozÃció',id:'Id',langDir:'Ãrás iránya',langDirLTR:'Balról jobbra',langDirRTL:'Jobbról balra',acccessKey:'Billentyűkombináció',name:'Név',langCode:'Ãrás iránya',tabIndex:'Tabulátor index',advisoryTitle:'Súgócimke',advisoryContentType:'Súgó tartalomtÃpusa',cssClasses:'StÃluskészlet',charset:'Hivatkozott tartalom kódlapja',styles:'StÃlus',selectAnchor:'Horgony választása',anchorName:'Horgony név szerint',anchorId:'AzonosÃtó szerint',emailAddress:'E-Mail cÃm',emailSubject:'Ãzenet tárgya',emailBody:'Ãzenet',noAnchors:'(Nincs horgony a dokumentumban)',noUrl:'Adja meg a hivatkozás webcÃmét',noEmail:'Adja meg az E-Mail cÃmet'},anchor:{toolbar:'Horgony beillesztése/szerkesztése',menu:'Horgony tulajdonságai',title:'Horgony tulajdonságai',name:'Horgony neve',errorName:'Kérem adja meg a horgony nevét'},list:
{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Keresés és csere',find:'Keresés',replace:'Csere',findWhat:'Keresett szöveg:',replaceWith:'Csere erre:',notFoundMsg:'A keresett szöveg nem található.',matchCase:'kis- és nagybetű megkülönböztetése',matchWord:'csak ha ez a teljes szó',matchCyclic:'Ciklikus keresés',replaceAll:'Az
összes cseréje',replaceSuccessMsg:'%1 egyezÅség cserélve.'},table:{toolbar:'Táblázat',title:'Táblázat tulajdonságai',menu:'Táblázat tulajdonságai',deleteTable:'Táblázat törlése',rows:'Sorok',columns:'Oszlopok',border:'Szegélyméret',align:'IgazÃtás',alignLeft:'Balra',alignCenter:'Középre',alignRight:'Jobbra',width:'Szélesség',widthPx:'képpont',widthPc:'százalék',widthUnit:'width unit',height:'Magasság',cellSpace:'Cella térköz',cellPad:'Cella belsÅ margó',caption:'Felirat',summary:'LeÃrás',headers:'Fejlécek',headersNone:'Nincsenek',headersColumn:'ElsÅ oszlop',headersRow:'ElsÅ sor',headersBoth:'MindkettÅ',invalidRows:'A sorok számának nagyobbnak kell lenni mint 0.',invalidCols:'Az oszlopok számának nagyobbnak kell lenni mint 0.',invalidBorder:'A szegélyméret mezÅbe csak számokat Ãrhat.',invalidWidth:'A szélesség mezÅbe csak számokat Ãrhat.',invalidHeight:'A magasság mezÅbe csak számokat Ãrhat.',invalidCellSpacing:'A cell
a térköz mezÅbe csak számokat Ãrhat.',invalidCellPadding:'A cella belsÅ margó mezÅbe csak számokat Ãrhat.',cell:{menu:'Cella',insertBefore:'Beszúrás balra',insertAfter:'Beszúrás jobbra',deleteCell:'Cellák törlése',merge:'Cellák egyesÃtése',mergeRight:'Cellák egyesÃtése jobbra',mergeDown:'Cellák egyesÃtése lefelé',splitHorizontal:'Cellák szétválasztása vÃzszintesen',splitVertical:'Cellák szétválasztása függÅlegesen',title:'Cella tulajdonságai',cellType:'Cella tÃpusa',rowSpan:'FüggÅleges egyesÃtés',colSpan:'VÃzszintes egyesÃtés',wordWrap:'Hosszú sorok törése',hAlign:'VÃzszintes igazÃtás',vAlign:'FüggÅleges igazÃtás',alignTop:'Fel',alignMiddle:'Középre',alignBottom:'Le',alignBaseline:'Alapvonalra',bgColor:'Háttér szÃne',borderColor:'Keret szÃne',data:'Adat',header:'Fejléc',yes:'Igen',no:'Nem',invalidWidth:'A szélesség mezÅbe csak számokat Ãrhat.',invalidHeight:'A magasság mezÅbe csak számokat Ãrhat.',inval
idRowSpan:'A függÅleges egyesÃtés mezÅbe csak számokat Ãrhat.',invalidColSpan:'A vÃzszintes egyesÃtés mezÅbe csak számokat Ãrhat.',chooseColor:'Choose'},row:{menu:'Sor',insertBefore:'Beszúrás fölé',insertAfter:'Beszúrás alá',deleteRow:'Sorok törlése'},column:{menu:'Oszlop',insertBefore:'Beszúrás balra',insertAfter:'Beszúrás jobbra',deleteColumn:'Oszlopok törlése'}},button:{title:'Gomb tulajdonságai',text:'Szöveg (Ãrték)',type:'TÃpus',typeBtn:'Gomb',typeSbm:'Küldés',typeRst:'Alaphelyzet'},checkboxAndRadio:{checkboxTitle:'JelölÅnégyzet tulajdonságai',radioTitle:'Választógomb tulajdonságai',value:'Ãrték',selected:'Kiválasztott'},form:{title:'Űrlap tulajdonságai',menu:'Űrlap tulajdonságai',action:'Adatfeldolgozást végzÅ hivatkozás',method:'Adatküldés módja',encoding:'Kódolás'},select:{title:'LegördülÅ lista tulajdonságai',selectInfo:'Alaptulajdonságok',opAvail:'ElérhetÅ opciók',value:'Ãrték',size:'Méret',lines:
'sor',chkMulti:'több sor is kiválasztható',opText:'Szöveg',opValue:'Ãrték',btnAdd:'Hozzáad',btnModify:'MódosÃt',btnUp:'Fel',btnDown:'Le',btnSetValue:'Legyen az alapértelmezett érték',btnDelete:'Töröl'},textarea:{title:'Szövegterület tulajdonságai',cols:'Karakterek száma egy sorban',rows:'Sorok száma'},textfield:{title:'SzövegmezÅ tulajdonságai',name:'Név',value:'Ãrték',charWidth:'MegjelenÃtett karakterek száma',maxChars:'Maximális karakterszám',type:'TÃpus',typeText:'Szöveg',typePass:'Jelszó'},hidden:{title:'Rejtett mezÅ tulajdonságai',name:'Név',value:'Ãrték'},image:{title:'Kép tulajdonságai',titleButton:'Képgomb tulajdonságai',menu:'Kép tulajdonságai',infoTab:'Alaptulajdonságok',btnUpload:'Küldés a szerverre',upload:'Feltöltés',alt:'Buborék szöveg',width:'Szélesség',height:'Magasság',lockRatio:'Arány megtartása',unlockRatio:'Unlock Ratio',resetSize:'Eredeti méret',border:'Keret',hSpace:'VÃzsz. táv',vSpace:'Függ. tÃ
¡v',align:'IgazÃtás',alignLeft:'Bal',alignRight:'Jobbra',alertUrl:'Töltse ki a kép webcÃmét',linkTab:'Hivatkozás',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash tulajdonságai',propertiesTab:'Tulajdonságok',title:'Flash tulajdonságai',chkPlay:'Automata lejátszás',chkLoop:'Folyamatosan',chkMenu:'Flash menü engedélyezése',chkFull:'Teljes képernyÅ engedélyezése',scale:'Méretezés',scaleAll:'Mindent mutat',scaleNoBorder:'Keret nélkül',scaleFit:'Teljes kitöltés',access:'Szkript hozzáférés',accessAlways:'Mindig',accessSameDomain:'Azonos domainrÅ
l',accessNever:'Soha',align:'IgazÃtás',alignLeft:'Bal',alignAbsBottom:'Legaljára',alignAbsMiddle:'Közepére',alignBaseline:'Alapvonalhoz',alignBottom:'Aljára',alignMiddle:'Középre',alignRight:'Jobbra',alignTextTop:'Szöveg tetejére',alignTop:'Tetejére',quality:'MinÅség',qualityBest:'Legjobb',qualityHigh:'Jó',qualityAutoHigh:'Automata jó',qualityMedium:'Közepes',qualityAutoLow:'Automata gyenge',qualityLow:'Gyenge',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Ablak mód',flashvars:'Flash változók',bgcolor:'HáttérszÃn',width:'Szélesség',height:'Magasság',hSpace:'VÃzsz. táv',vSpace:'Függ. táv',validateSrc:'Adja meg a hivatkozás webcÃmét',validateWidth:'A szélesség mezÅbe csak számokat Ãrhat.',validateHeight:'A magasság mezÅbe csak számokat Ãrhat.',validateHSpace:'A vÃzszintes távolsűág mezÅbe csak számokat Ãrhat.',validateVSpace:'A függÅleges távolsűág mezÅbe csak számokat
Ãrhat.'},spellCheck:{toolbar:'HelyesÃrás-ellenÅrzés',title:'HelyesÃrás ellenörzÅ',notAvailable:'Sajnálom, de a szolgáltatás jelenleg nem elérhetÅ.',errorLoading:'Hiba a szolgáltatás host betöltése közben: %s.',notInDic:'Nincs a szótárban',changeTo:'MódosÃtás',btnIgnore:'Kihagyja',btnIgnoreAll:'Mindet kihagyja',btnReplace:'Csere',btnReplaceAll:'Ãsszes cseréje',btnUndo:'Visszavonás',noSuggestions:'Nincs javaslat',progress:'HelyesÃrás-ellenÅrzés folyamatban...',noMispell:'HelyesÃrás-ellenÅrzés kész: Nem találtam hibát',noChanges:'HelyesÃrás-ellenÅrzés kész: Nincs változtatott szó',oneChange:'HelyesÃrás-ellenÅrzés kész: Egy szó cserélve',manyChanges:'HelyesÃrás-ellenÅrzés kész: %1 szó cserélve',ieSpellDownload:'A helyesÃrás-ellenÅrzÅ nincs telepÃtve. Szeretné letölteni most?'},smiley:{toolbar:'Hangulatjelek',title:'Hangulatjel beszúrása',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:
'%1 elem'},numberedlist:'Számozás',bulletedlist:'Felsorolás',indent:'Behúzás növelése',outdent:'Behúzás csökkentése',justify:{left:'Balra',center:'Középre',right:'Jobbra',block:'Sorkizárt'},blockquote:'Idézet blokk',clipboard:{title:'Beillesztés',cutError:'A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',copyError:'A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).',pasteMsg:'Másolja be az alábbi mezÅbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.',securityMsg:'A böngészÅ biztonsági beállÃtásai miatt a szerkesztÅ nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.',pasteArea:'Paste Area'},pastefromword:{confirm
Cleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Beillesztés Word-bÅl',title:'Beillesztés Word-bÅl',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Beillesztés formázatlan szövegként',title:'Beillesztés formázatlan szövegként'},templates:{button:'Sablonok',title:'ElérhetÅ sablonok',options:'Template Options',insertOption:'Kicseréli a jelenlegi tartalmat',selectPromptMsg:'Válassza ki melyik sablon nyÃljon meg a szerkesztÅben<br>(a jelenlegi tartalom elveszik):',emptyListMsg:'(Nincs sablon megadva)'},showBlocks:'Blokkok megjelenÃtése',stylesCombo:{label:'StÃlus',panelTitle:'Formatting Styles',panelTitle1:'Blokk stÃlusok',panelTitle2:'Inline stÃlusok',panelTitle3:'Objektum stÃlusok'},format:{label:'Formátum',panelTitle:'Formátum',tag_p:'Normál',tag_pre:'Formázott',tag_address:'CÃmsor',tag_h1:'Fejléc 1',tag_h2:'Fejléc 2',tag_h3:'F
ejléc 3',tag_h4:'Fejléc 4',tag_h5:'Fejléc 5',tag_h6:'Fejléc 6',tag_div:'Bekezdés (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'BetűtÃpus',voiceLabel:'BetűtÃpus',panelTitle:'BetűtÃpus'},fontSize:{label:'Méret',voiceLabel:'Betűméret',panelTitle:'Méret'},colorButton:{textColorTitle:'BetűszÃn',bgColorTitle:'HáttérszÃn',panelTitle:'Colors',auto:'Automatikus',more:'További szÃnek...'},colors:{'000':'Fekete',800000:'Bordó','8B4513':'Barna','2F4F4F':'Sötét türkiz','008080':'Türkiz','000080':'Király kék','4B0082':'Indigó kék',696969:'Szürke',B22222:'Tégla vörös',A52A2A
:'Vörös',DAA520:'Arany sárga','006400':'Sötét zöld','40E0D0':'Türkiz','0000CD':'Kék',800080:'Lila',808080:'Szürke',F00:'Piros',FF8C00:'Sötét narancs',FFD700:'Arany','008000':'Zöld','0FF':'Türkiz','00F':'Kék',EE82EE:'RózsaszÃn',A9A9A9:'Sötét szürke',FFA07A:'Lazac',FFA500:'Narancs',FFFF00:'Citromsárga','00FF00':'Neon zöld',AFEEEE:'Világos türkiz',ADD8E6:'Világos kék',DDA0DD:'Világos lila',D3D3D3:'Világos szürke',FFF0F5:'Lavender Blush',FAEBD7:'Törtfehér',FFFFE0:'Világos sárga',F0FFF0:'Menta',F0FFFF:'Azúr kék',F0F8FF:'Halvány kék',E6E6FA:'Lavender',FFF:'Fehér'},scayt:{title:'HelyesÃrás ellenÅrzés gépelés közben',opera_title:'Not supported by Opera',enable:'SCAYT engedélyezése',disable:'SCAYT letiltása',about:'SCAYT névjegy',toggle:'SCAYT kapcsolása',options:'BeállÃtások',langs:'Nyelvek',moreSuggestions:'További javaslatok',ignore:'Kihagy',ignoreAll:'Ãsszes kihagyása',addWord:'Szó hozzáadása',emptyDic:'A szótár nevét m
eg kell adni.',optionsTab:'BeállÃtások',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Nyelvek',dictionariesTab:'Szótár',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Névjegy'},about:{title:'CKEditor névjegy',dlgTitle:'CKEditor névjegy',moreInfo:'Licenszelési információkért kérjük látogassa meg weboldalunkat:',copy:'Copyright © $1. Minden jog fe
nntartva.'},maximize:'Teljes méret',minimize:'Kis méret',fakeobjects:{anchor:'Horgony',flash:'Flash animáció',div:'Oldaltörés',unknown:'Ismeretlen objektum'},resize:'Húzza az átméretezéshez',colordialog:{title:'Válasszon szÃnt',options:'Color Options',highlight:'NagyÃtás',selected:'Kiválasztott',clear:'ÃrÃtés'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['hu']={"dir":"ltr","editor":"HTML szerkesztÅ","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Böngészés a szerveren","url":"Hivatkozás","protocol":"Protokoll","upload":"Feltöltés","uploadSubmit":"Küldés a szerverre","image":"Kép","flash":"Flash","form":"Űrlap","checkbox":"JelölÅnégyzet","radio":"Választógomb","textField":"SzövegmezÅ","textarea":"Szövegterület","hiddenField":"RejtettmezÅ","button":"Gomb","select":"LegördülÅ lista","imageButton":"Képgomb","notSet":"<nincs beállÃtva>","id":"AzonosÃtó","name":"Név","langDir":"Ãrás iránya","langDirLtr":"Balról jobbra","langDirRtl":"Jobbról balra","langCode":"Nyelv kódja","longDescr":"Részletes leÃrás webcÃme","cssClass":"StÃluskészlet","advisoryTitle":"Súgócimke","cssStyle":"StÃlus","ok":"Rendben","cancel":"Mégsem","close":"Bezárás","preview":"ElÅnézet","resize":"Húzza az átméretezéshez","generalTab":"Ãltalános","advancedTab":"További opciók","v
alidateNumberFailed":"A mezÅbe csak számokat Ãrhat.","confirmNewPage":"Minden nem mentett változás el fog veszni! Biztosan be szeretné tölteni az oldalt?","confirmCancel":"Az űrlap tartalma megváltozott, ám a változásokat nem rögzÃtette. Biztosan be szeretné zárni az űrlapot?","options":"BeállÃtások","target":"Cél","targetNew":"Ãj ablak (_blank)","targetTop":"LegfelsÅ ablak (_top)","targetSelf":"Aktuális ablakban (_self)","targetParent":"SzülÅ ablak (_parent)","langDirLTR":"Balról jobbra (LTR)","langDirRTL":"Jobbról balra (RTL)","styles":"StÃlus","cssClasses":"StÃluslap osztály","width":"Szélesség","height":"Magasság","align":"IgazÃtás","alignLeft":"Bal","alignRight":"Jobbra","alignCenter":"Középre","alignTop":"Tetejére","alignMiddle":"Középre","alignBottom":"Aljára","invalidValue":"Invalid value.","invalidHeight":"A magasság mezÅbe csak számokat Ãrhat.","invalidWidth":"A szélesség mezÅbe csak számokat Ãrhat.","invalidCssLen
gth":"\"%1\"-hez megadott érték csakis egy pozitÃv szám lehet, esetleg egy érvényes CSS egységgel megjelölve(px, %, in, cm, mm, em, ex, pt vagy pc).","invalidHtmlLength":"\"%1\"-hez megadott érték csakis egy pozitÃv szám lehet, esetleg egy érvényes HTML egységgel megjelölve(px vagy %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nem elérhetÅ</span>"},"about":{"copy":"Copyright © $1. Minden jog fenntartva.","dlgTitle":"CKEditor névjegy","help":"Itt találsz segÃtséget: $1","moreInfo":"Licenszelési információkért kérjük látogassa meg weboldalunkat:","title":"CKEditor névjegy","userGuide":"CKEditor Felhasználói útmutató"},"basicstyles":{"bold":"F
élkövér","italic":"DÅlt","strike":"Ãthúzott","subscript":"Alsó index","superscript":"FelsÅ index","underline":"Aláhúzott"},"bidi":{"ltr":"Szöveg iránya balról jobbra","rtl":"Szöveg iránya jobbról balra"},"blockquote":{"toolbar":"Idézet blokk"},"clipboard":{"copy":"Másolás","copyError":"A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","cut":"Kivágás","cutError":"A böngészÅ biztonsági beállÃtásai nem engedélyezik a szerkesztÅnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl/Cmd+X).","paste":"Beillesztés","pasteArea":"Beszúrás mezÅ","pasteMsg":"Másolja be az alábbi mezÅbe a <STRONG>Ctrl/Cmd+V</STRONG> billentyűk lenyomásával, majd nyomjon <STRONG>Rendben</STRONG>-t.","securityMsg":"A böngészÅ biztonsági beállÃtásai miatt a szerkesztÅ nem képes hozzáfé
rni a vágólap adataihoz. Illeszd be újra ebben az ablakban.","title":"Beillesztés"},"colorbutton":{"auto":"Automatikus","bgColorTitle":"HáttérszÃn","colors":{"000":"Fekete","800000":"Bordó","8B4513":"Barna","2F4F4F":"Sötét türkiz","008080":"Türkiz","000080":"Király kék","4B0082":"Indigó kék","696969":"Szürke","B22222":"Tégla vörös","A52A2A":"Vörös","DAA520":"Arany sárga","006400":"Sötét zöld","40E0D0":"Türkiz","0000CD":"Kék","800080":"Lila","808080":"Szürke","F00":"Piros","FF8C00":"Sötét narancs","FFD700":"Arany","008000":"Zöld","0FF":"Türkiz","00F":"Kék","EE82EE":"RózsaszÃn","A9A9A9":"Sötét szürke","FFA07A":"Lazac","FFA500":"Narancs","FFFF00":"Citromsárga","00FF00":"Neon zöld","AFEEEE":"Világos türkiz","ADD8E6":"Világos kék","DDA0DD":"Világos lila","D3D3D3":"Világos szürke","FFF0F5":"Lavender Blush","FAEBD7":"Törtfehér","FFFFE0":"Világos sárga","F0FFF0":"Menta","F0FFFF":"Azúr kék","F0F8FF":"Halvány kék","E6E6FA":"Laven
der","FFF":"Fehér"},"more":"További szÃnek...","panelTitle":"SzÃnek","textColorTitle":"BetűszÃn"},"colordialog":{"clear":"ÃrÃtés","highlight":"NagyÃtás","options":"SzÃn opciók","selected":"Kiválasztott","title":"Válasszon szÃnt"},"templates":{"button":"Sablonok","emptyListMsg":"(Nincs sablon megadva)","insertOption":"Kicseréli a jelenlegi tartalmat","options":"Sablon opciók","selectPromptMsg":"Válassza ki melyik sablon nyÃljon meg a szerkesztÅben<br>(a jelenlegi tartalom elveszik):","title":"ElérhetÅ sablonok"},"contextmenu":{"options":"Helyi menü opciók"},"div":{"IdInputLabel":"AzonosÃtó","advisoryTitleInputLabel":"Tipp szöveg","cssClassInputLabel":"StÃluslap osztály","edit":"DIV szerkesztése","inlineStyleInputLabel":"Inline stÃlus","langDirLTRLabel":"Balról jobbra (LTR)","langDirLabel":"Nyelvi irány","langDirRTLLabel":"Jobbról balra (RTL)","languageCodeInputLabel":" Nyelv kódja","remove":"DIV eltávolÃtása","styleSelectLabel":"StÃlus"
,"title":"DIV tároló létrehozása","toolbar":"DIV tároló létrehozása"},"toolbar":{"toolbarCollapse":"Eszköztár összecsukása","toolbarExpand":"Eszköztár szétnyitása","toolbarGroups":{"document":"Dokumentum","clipboard":"Vágólap/Visszavonás","editing":"Szerkesztés","forms":"Űrlapok","basicstyles":"AlapstÃlusok","paragraph":"Bekezdés","links":"Hivatkozások","insert":"Beszúrás","styles":"StÃlusok","colors":"SzÃnek","tools":"Eszközök"},"toolbars":"SzerkesztÅ Eszköztár"},"elementspath":{"eleLabel":"Elem utak","eleTitle":"%1 elem"},"list":{"bulletedlist":"Felsorolás","numberedlist":"Számozás"},"indent":{"indent":"Behúzás növelése","outdent":"Behúzás csökkentése"},"find":{"find":"Keresés","findOptions":"Find Options","findWhat":"Keresett szöveg:","matchCase":"kis- és nagybetű megkülönböztetése","matchCyclic":"Ciklikus keresés","matchWord":"csak ha ez a teljes szó","notFoundMsg":"A keresett szöveg nem található.","replace":"Cser
e","replaceAll":"Az összes cseréje","replaceSuccessMsg":"%1 egyezÅség cserélve.","replaceWith":"Csere erre:","title":"Keresés és csere"},"fakeobjects":{"anchor":"Horgony","flash":"Flash animáció","hiddenfield":"Rejtett mezõ","iframe":"IFrame","unknown":"Ismeretlen objektum"},"flash":{"access":"Szkript hozzáférés","accessAlways":"Mindig","accessNever":"Soha","accessSameDomain":"Azonos domainrÅl","alignAbsBottom":"Legaljára","alignAbsMiddle":"Közepére","alignBaseline":"Alapvonalhoz","alignTextTop":"Szöveg tetejére","bgcolor":"HáttérszÃn","chkFull":"Teljes képernyÅ engedélyezése","chkLoop":"Folyamatosan","chkMenu":"Flash menü engedélyezése","chkPlay":"Automata lejátszás","flashvars":"Flash változók","hSpace":"VÃzsz. táv","properties":"Flash tulajdonságai","propertiesTab":"Tulajdonságok","quality":"MinÅség","qualityAutoHigh":"Automata jó","qualityAutoLow":"Automata gyenge","qualityBest":"Legjobb","qualityHigh":"Jó","qualityLow":"Gyenge","
qualityMedium":"Közepes","scale":"Méretezés","scaleAll":"Mindent mutat","scaleFit":"Teljes kitöltés","scaleNoBorder":"Keret nélkül","title":"Flash tulajdonságai","vSpace":"Függ. táv","validateHSpace":"A vÃzszintes távolsűág mezÅbe csak számokat Ãrhat.","validateSrc":"Adja meg a hivatkozás webcÃmét","validateVSpace":"A függÅleges távolsűág mezÅbe csak számokat Ãrhat.","windowMode":"Ablak mód","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Méret","voiceLabel":"Betűméret","panelTitle":"Méret"},"label":"BetűtÃpus","panelTitle":"BetűtÃpus","voiceLabel":"BetűtÃpus"},"forms":{"button":{"title":"Gomb tulajdonságai","text":"Szöveg (Ãrték)","type":"TÃpus","typeBtn":"Gomb","typeSbm":"Küldés","typeRst":"Alaphelyzet"},"checkboxAndRadio":{"checkboxTitle":"JelölÅnégyzet tulajdonságai","radioTitle":"Választógomb tulajdonságai","value":"Ãrték","selected":"Kivál
asztott"},"form":{"title":"Űrlap tulajdonságai","menu":"Űrlap tulajdonságai","action":"Adatfeldolgozást végzÅ hivatkozás","method":"Adatküldés módja","encoding":"Kódolás"},"hidden":{"title":"Rejtett mezÅ tulajdonságai","name":"Név","value":"Ãrték"},"select":{"title":"LegördülÅ lista tulajdonságai","selectInfo":"Alaptulajdonságok","opAvail":"ElérhetÅ opciók","value":"Ãrték","size":"Méret","lines":"sor","chkMulti":"több sor is kiválasztható","opText":"Szöveg","opValue":"Ãrték","btnAdd":"Hozzáad","btnModify":"MódosÃt","btnUp":"Fel","btnDown":"Le","btnSetValue":"Legyen az alapértelmezett érték","btnDelete":"Töröl"},"textarea":{"title":"Szövegterület tulajdonságai","cols":"Karakterek száma egy sorban","rows":"Sorok száma"},"textfield":{"title":"SzövegmezÅ tulajdonságai","name":"Név","value":"Ãrték","charWidth":"MegjelenÃtett karakterek száma","maxChars":"Maximális karakterszám","type":"TÃpus","typeText":"Szöveg","typePas
s":"Jelszó","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formátum","panelTitle":"Formátum","tag_address":"CÃmsor","tag_div":"Bekezdés (DIV)","tag_h1":"Fejléc 1","tag_h2":"Fejléc 2","tag_h3":"Fejléc 3","tag_h4":"Fejléc 4","tag_h5":"Fejléc 5","tag_h6":"Fejléc 6","tag_p":"Normál","tag_pre":"Formázott"},"horizontalrule":{"toolbar":"Elválasztóvonal beillesztése"},"iframe":{"border":"Legyen keret","noUrl":"Kérem Ãrja be a iframe URL-t","scrolling":"GördÃtÅsáv bekapcsolása","title":"IFrame Tulajdonságok","toolbar":"IFrame"},"image":{"alertUrl":"Töltse ki a kép webcÃmét","alt":"Buborék szöveg","border":"Keret","btnUpload":"Küldés a szerverre","button2Img":"A kiválasztott képgombból sima képet szeretne csinálni?","hSpace":"VÃzsz. táv","img2Button":"A kiválasztott képbÅl képgombot szeretne csinálni?","infoTab":"Alaptulajdonságok","linkTab":"Hivatkozás","lockRatio":"Arány megta
rtása","menu":"Kép tulajdonságai","resetSize":"Eredeti méret","title":"Kép tulajdonságai","titleButton":"Képgomb tulajdonságai","upload":"Feltöltés","urlMissing":"Hiányzik a kép URL-je","vSpace":"Függ. táv","validateBorder":"A keret méretének egész számot kell beÃrni!","validateHSpace":"VÃzszintes távolságnak egész számot kell beÃrni!","validateVSpace":"FüggÅleges távolságnak egész számot kell beÃrni!"},"smiley":{"options":"Hangulatjel opciók","title":"Hangulatjel beszúrása","toolbar":"Hangulatjelek"},"justify":{"block":"Sorkizárt","center":"Középre","left":"Balra","right":"Jobbra"},"link":{"acccessKey":"Billentyűkombináció","advanced":"További opciók","advisoryContentType":"Súgó tartalomtÃpusa","advisoryTitle":"Súgócimke","anchor":{"toolbar":"Horgony beillesztése/szerkesztése","menu":"Horgony tulajdonságai","title":"Horgony tulajdonságai","name":"Horgony neve","errorName":"Kérem adja meg a horgony nevét","remove":"Horgon
y eltávolÃtása"},"anchorId":"AzonosÃtó szerint","anchorName":"Horgony név szerint","charset":"Hivatkozott tartalom kódlapja","cssClasses":"StÃluskészlet","emailAddress":"E-Mail cÃm","emailBody":"Ãzenet","emailSubject":"Ãzenet tárgya","id":"Id","info":"Alaptulajdonságok","langCode":"Ãrás iránya","langDir":"Ãrás iránya","langDirLTR":"Balról jobbra","langDirRTL":"Jobbról balra","menu":"Hivatkozás módosÃtása","name":"Név","noAnchors":"(Nincs horgony a dokumentumban)","noEmail":"Adja meg az E-Mail cÃmet","noUrl":"Adja meg a hivatkozás webcÃmét","other":"<más>","popupDependent":"SzülÅhöz kapcsolt (csak Netscape)","popupFeatures":"Felugró ablak jellemzÅi","popupFullScreen":"Teljes képernyÅ (csak IE)","popupLeft":"Bal pozÃció","popupLocationBar":"CÃmsor","popupMenuBar":"Menü sor","popupResizable":"Ãtméretezés","popupScrollBars":"GördÃtÅsáv","popupStatusBar":"Ãllapotsor","popupToolbar":"Eszköztár","popupTop":"FelsÅ pozÃció","rel
":"Kapcsolat tÃpusa","selectAnchor":"Horgony választása","styles":"StÃlus","tabIndex":"Tabulátor index","target":"Tartalom megjelenÃtése","targetFrame":"<keretben>","targetFrameName":"Keret neve","targetPopup":"<felugró ablakban>","targetPopupName":"Felugró ablak neve","title":"Hivatkozás tulajdonságai","toAnchor":"Horgony az oldalon","toEmail":"E-Mail","toUrl":"URL","toolbar":"Hivatkozás beillesztése/módosÃtása","type":"Hivatkozás tÃpusa","unlink":"Hivatkozás törlése","upload":"Feltöltés"},"liststyle":{"armenian":"Ãrmény számozás","bulletedTitle":"Pontozott lista tulajdonságai","circle":"Kör","decimal":"Arab számozás (1, 2, 3, stb.)","decimalLeadingZero":"Számozás bevezetÅ nullákkal (01, 02, 03, stb.)","disc":"Korong","georgian":"Grúz számozás (an, ban, gan, stb.)","lowerAlpha":"Kisbetűs (a, b, c, d, e, stb.)","lowerGreek":"Görög (alpha, beta, gamma, stb.)","lowerRoman":"Római kisbetűs (i, ii, iii, iv, v, stb.)","none":"Nincs","not
set":"<Nincs beállÃtva>","numberedTitle":"Sorszámozott lista tulajdonságai","square":"Négyzet","start":"KezdÅszám","type":"TÃpus","upperAlpha":"Nagybetűs (A, B, C, D, E, stb.)","upperRoman":"Római nagybetűs (I, II, III, IV, V, stb.)","validateStartNumber":"A kezdÅszám nem lehet tört érték."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Teljes méret","minimize":"Kis méret"},"newpage":{"toolbar":"Ãj oldal"},"pagebreak":{"alt":"Oldaltörés","toolbar":"Oldaltörés beillesztése"},"pastetext":{"button":"Beillesztés formázatlan szövegként","title":"Beillesztés formázatlan szövegként"},"pastefromword":{"confirmCleanup":"Ãgy tűnik a beillesztett szöveget Word-bÅl másolt át. Meg szeretné tisztÃtani a szöveget? (ajánlott)","error":"Egy belsÅ hiba miatt nem sikerült megtisztÃtani a szöveget","title":"Beillesztés Word-bÅl","toolbar":"Beillesztés Word-bÅl"},"preview":{"preview":"ElÅnézet"},"print":{"toolbar":"Nyomt
atás"},"removeformat":{"toolbar":"Formázás eltávolÃtása"},"save":{"toolbar":"Mentés"},"selectall":{"toolbar":"Mindent kijelöl"},"showblocks":{"toolbar":"Blokkok megjelenÃtése"},"sourcearea":{"toolbar":"Forráskód"},"specialchar":{"options":"Speciális karakter opciók","title":"Speciális karakter választása","toolbar":"Speciális karakter beillesztése"},"scayt":{"about":"SCAYT névjegy","aboutTab":"Névjegy","addWord":"Szó hozzáadása","allCaps":"Nagybetűs szavak kihagyása","dic_create":"Létrehozás","dic_delete":"Törlés","dic_field_name":"Szótár neve","dic_info":"Kezdetben a felhasználói szótár böngészÅ sütiben tárolódik. Azonban a sütik maximális mérete korlátozott. Amikora a szótár akkora lesz, hogy már sütiben nem lehet tárolni, akkor a szótárat tárolhatja a szerveren is. Ehhez egy nevet kell megadni a szótárhoz. Amennyiben már van szerveren tárolt szótára, adja meg a nevét és kattintson a visszaállÃtás gombra.","d
ic_rename":"Ãtnevezés","dic_restore":"VisszaállÃtás","dictionariesTab":"Szótár","disable":"SCAYT letiltása","emptyDic":"A szótár nevét meg kell adni.","enable":"SCAYT engedélyezése","ignore":"Kihagy","ignoreAll":"Ãsszes kihagyása","ignoreDomainNames":"Domain nevek kihagyása","langs":"Nyelvek","languagesTab":"Nyelvek","mixedCase":"Kis és nagybetűt is tartalmazó szavak kihagyása","mixedWithDigits":"Számokat tartalmazó szavak kihagyása","moreSuggestions":"További javaslatok","opera_title":"Az Opera nem támogatja","options":"BeállÃtások","optionsTab":"BeállÃtások","title":"HelyesÃrás ellenÅrzés gépelés közben","toggle":"SCAYT kapcsolása","noSuggestions":"No suggestion"},"stylescombo":{"label":"StÃlus","panelTitle":"Formázási stÃlusok","panelTitle1":"Blokk stÃlusok","panelTitle2":"Inline stÃlusok","panelTitle3":"Objektum stÃlusok"},"table":{"border":"Szegélyméret","caption":"Felirat","cell":{"menu":"Cella","insertBefore":"Beszúrás
balra","insertAfter":"Beszúrás jobbra","deleteCell":"Cellák törlése","merge":"Cellák egyesÃtése","mergeRight":"Cellák egyesÃtése jobbra","mergeDown":"Cellák egyesÃtése lefelé","splitHorizontal":"Cellák szétválasztása vÃzszintesen","splitVertical":"Cellák szétválasztása függÅlegesen","title":"Cella tulajdonságai","cellType":"Cella tÃpusa","rowSpan":"FüggÅleges egyesÃtés","colSpan":"VÃzszintes egyesÃtés","wordWrap":"Hosszú sorok törése","hAlign":"VÃzszintes igazÃtás","vAlign":"FüggÅleges igazÃtás","alignBaseline":"Alapvonalra","bgColor":"Háttér szÃne","borderColor":"Keret szÃne","data":"Adat","header":"Fejléc","yes":"Igen","no":"Nem","invalidWidth":"A szélesség mezÅbe csak számokat Ãrhat.","invalidHeight":"A magasság mezÅbe csak számokat Ãrhat.","invalidRowSpan":"A függÅleges egyesÃtés mezÅbe csak számokat Ãrhat.","invalidColSpan":"A vÃzszintes egyesÃtés mezÅbe csak számokat Ãrhat.","chooseColor":"Válass
zon"},"cellPad":"Cella belsÅ margó","cellSpace":"Cella térköz","column":{"menu":"Oszlop","insertBefore":"Beszúrás balra","insertAfter":"Beszúrás jobbra","deleteColumn":"Oszlopok törlése"},"columns":"Oszlopok","deleteTable":"Táblázat törlése","headers":"Fejlécek","headersBoth":"MindkettÅ","headersColumn":"ElsÅ oszlop","headersNone":"Nincsenek","headersRow":"ElsÅ sor","invalidBorder":"A szegélyméret mezÅbe csak számokat Ãrhat.","invalidCellPadding":"A cella belsÅ margó mezÅbe csak számokat Ãrhat.","invalidCellSpacing":"A cella térköz mezÅbe csak számokat Ãrhat.","invalidCols":"Az oszlopok számának nagyobbnak kell lenni mint 0.","invalidHeight":"A magasság mezÅbe csak számokat Ãrhat.","invalidRows":"A sorok számának nagyobbnak kell lenni mint 0.","invalidWidth":"A szélesség mezÅbe csak számokat Ãrhat.","menu":"Táblázat tulajdonságai","row":{"menu":"Sor","insertBefore":"Beszúrás fölé","insertAfter":"Beszúrás alá","deleteRow
":"Sorok törlése"},"rows":"Sorok","summary":"LeÃrás","title":"Táblázat tulajdonságai","toolbar":"Táblázat","widthPc":"százalék","widthPx":"képpont","widthUnit":"Szélesség egység"},"undo":{"redo":"Ismétlés","undo":"Visszavonás"},"wsc":{"btnIgnore":"Kihagyja","btnIgnoreAll":"Mindet kihagyja","btnReplace":"Csere","btnReplaceAll":"Ãsszes cseréje","btnUndo":"Visszavonás","changeTo":"MódosÃtás","errorLoading":"Hiba a szolgáltatás host betöltése közben: %s.","ieSpellDownload":"A helyesÃrás-ellenÅrzÅ nincs telepÃtve. Szeretné letölteni most?","manyChanges":"HelyesÃrás-ellenÅrzés kész: %1 szó cserélve","noChanges":"HelyesÃrás-ellenÅrzés kész: Nincs változtatott szó","noMispell":"HelyesÃrás-ellenÅrzés kész: Nem találtam hibát","noSuggestions":"Nincs javaslat","notAvailable":"Sajnálom, de a szolgáltatás jelenleg nem elérhetÅ.","notInDic":"Nincs a szótárban","oneChange":"HelyesÃrás-ellenÅrzés kész: Egy szó cserélve",
"progress":"HelyesÃrás-ellenÅrzés folyamatban...","title":"HelyesÃrás ellenörzÅ","toolbar":"HelyesÃrás-ellenÅrzés"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/is.js b/share/static/RichText/lang/is.js
index ee92951..9af6b17 100644
--- a/share/static/RichText/lang/is.js
+++ b/share/static/RichText/lang/is.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.is={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Kóði',newPage:'Ný sÃða',save:'Vista',preview:'Forskoða',cut:'Klippa',copy:'Afrita',paste:'LÃma',print:'Prenta',underline:'Undirstrikað',bold:'Feitletrað',italic:'Skáletrað',selectAll:'Velja allt',removeFormat:'Fjarlægja snið',strike:'Yfirstrikað',subscript:'Niðurskrifað',superscript:'Uppskrifað',horizontalrule:'Lóðrétt lÃna',pagebreak:'Setja inn sÃðuskil',unlink:'Fjarlægja stiklu',undo:'Afturkalla',redo:'Hætta við afturköllun',common:{browseServer:'Fletta à skjalasafni',url:'Vefslóð',protocol:'Samskiptastaðall',upload:'Senda upp',uploadSubmit:'Hlaða upp',image:'Setja inn mynd',flash:'Flash',form:'Setja inn innsláttarform',checkbox:'Setja inn hökunarreit',radio:'Setja inn valhnapp',textField:'Setja inn textareit',textarea:'Setja inn textasvæði',hiddenField:'Setja inn falið svæði',button:'Setja inn hnap
p',select:'Setja inn lista',imageButton:'Setja inn myndahnapp',notSet:'<ekkert valið>',id:'Auðkenni',name:'Nafn',langDir:'Lesstefna',langDirLtr:'Frá vinstri til hægri (LTR)',langDirRtl:'Frá hægri til vinstri (RTL)',langCode:'Tungumálakóði',longDescr:'Nánari lýsing',cssClass:'StÃlsniðsflokkur',advisoryTitle:'Titill',cssStyle:'StÃll',ok:'à lagi',cancel:'Hætta við',close:'Close',preview:'Preview',generalTab:'Almennt',advancedTab:'Tæknilegt',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classe
s',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Setja inn merki',title:'Velja tákn',options:'Special Character Options'},link:{toolbar:'Stofna/breyta stiklu',other:'<annar>',menu:'Breyta stiklu',title:'Stikla',info:'Almennt',target:'Mark',upload:'Senda upp',advanced:'Tæknilegt',type:'Stikluflokkur',toUrl:'URL',toAnchor:'Bókamerki á þessari sÃðu',toEmail:'Netfang',targetFrame:'<rammi>',targetPopup:'<sprettigluggi>',targetFrameName:'Nafn markglugga',targetPopupName:'Nafn sprettiglugga',popupFeatures:'Eigindi sprettiglugga',popupResizable:'Resizable',popupStatusBar:'Stöðustika',popupLocationBar:'FanglÃna',popupToolbar:'Verkfærastika',popupMenuBar:'VallÃna',popupFullScreen:'Heilskjár (IE)',popupScrollBars:'Skrunstikur',popupDependent:'Háð venslum (Netscape)',popupWidth:'Breidd',popupLeft:'Fjarlægð frá vinstri',popupHeight:'Hæð',popupTop:'Fjarlægð frá efri brún',id:
'Id',langDir:'Lesstefna',langDirLTR:'Frá vinstri til hægri (LTR)',langDirRTL:'Frá hægri til vinstri (RTL)',acccessKey:'Skammvalshnappur',name:'Nafn',langCode:'Lesstefna',tabIndex:'Raðnúmer innsláttarreits',advisoryTitle:'Titill',advisoryContentType:'Tegund innihalds',cssClasses:'StÃlsniðsflokkur',charset:'Táknróf',styles:'StÃll',selectAnchor:'Veldu akkeri',anchorName:'Eftir akkerisnafni',anchorId:'Eftir auðkenni einingar',emailAddress:'Netfang',emailSubject:'Efni',emailBody:'Meginmál',noAnchors:'<Engin bókamerki á skrá>',noUrl:'Sláðu inn veffang stiklunnar!',noEmail:'Sláðu inn netfang!'},anchor:{toolbar:'Stofna/breyta kaflamerki',menu:'Eigindi kaflamerkis',title:'Eigindi kaflamerkis',name:'Nafn bókamerkis',errorName:'Sláðu inn nafn bókamerkis!'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',sq
uare:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Finna og skipta',find:'Leita',replace:'Skipta út',findWhat:'Leita að:',replaceWith:'Skipta út fyrir:',notFoundMsg:'Leitartexti fannst ekki!',matchCase:'Gera greinarmun á¡ há¡- og lágstöfum',matchWord:'Aðeins heil orð',matchCyclic:'Match cyclic',replaceAll:'Skipta út allsstaðar',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tafla',title:'Eigindi töflu',menu:'Eigindi töflu',deleteTable:'Fella töflu',rows:'Raðir',columns:'Dálkar',border:'Breidd ramma',align:'
Jöfnun',alignLeft:'Vinstrijafnað',alignCenter:'Miðjað',alignRight:'Hægrijafnað',width:'Breidd',widthPx:'myndeindir',widthPc:'prósent',widthUnit:'width unit',height:'Hæð',cellSpace:'Bil milli reita',cellPad:'ReitaspássÃa',caption:'Titill',summary:'Ãfram',headers:'Fyrirsagnir',headersNone:'Engar',headersColumn:'Fyrsti dálkur',headersRow:'Fyrsta röð',headersBoth:'Hvort tveggja',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Reitur',insertBefore:'Skjóta inn reiti fyrir aftan',insertAfter:'Skjóta inn reiti fyrir framan',deleteCell:'Fella reit',merge:'Sameina reiti',mergeRight:'Sameina til hægri',mergeDown:'Sameina niður á við',spli
tHorizontal:'Kljúfa reit lárétt',splitVertical:'Kljúfa reit lóðrétt',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Röð',insertBefore:'Skjóta inn röð fyrir ofan',insertAfter:'Skjóta inn röð fyrir neðan',deleteRow:'Eyða röð'},column:{menu:'Dálkur',insertBefore:'Skjóta inn dálki vinstra megin',insertAfter:'Skjóta inn dálki hægra megin',deleteColumn:'Fella dálk'}},button:{title:'Eigindi hnapps',text:'Texti',type:'Gerð',typeBtn:'Hna
ppur',typeSbm:'Staðfesta',typeRst:'Hreinsa'},checkboxAndRadio:{checkboxTitle:'Eigindi markreits',radioTitle:'Eigindi valhnapps',value:'Gildi',selected:'Valið'},form:{title:'Eigindi innsláttarforms',menu:'Eigindi innsláttarforms',action:'Aðgerð',method:'Aðferð',encoding:'Encoding'},select:{title:'Eigindi lista',selectInfo:'Upplýsingar',opAvail:'Kostir',value:'Gildi',size:'Stærð',lines:'lÃnur',chkMulti:'Leyfa fleiri kosti',opText:'Texti',opValue:'Gildi',btnAdd:'Bæta við',btnModify:'Breyta',btnUp:'Upp',btnDown:'Niður',btnSetValue:'Merkja sem valið',btnDelete:'Eyða'},textarea:{title:'Eigindi textasvæðis',cols:'Dálkar',rows:'LÃnur'},textfield:{title:'Eigindi textareits',name:'Nafn',value:'Gildi',charWidth:'Breidd (leturtákn)',maxChars:'Hámarksfjöldi leturtákna',type:'Gerð',typeText:'Texti',typePass:'Lykilorð'},hidden:{title:'Eigindi falins svæðis',name:'Nafn',value:'Gildi'},image:{title:'Eigindi myndar',titleButton:'Eigindi myndahnapps',menu:'Eigindi
myndar',infoTab:'Almennt',btnUpload:'Hlaða upp',upload:'Hlaða upp',alt:'Baklægur texti',width:'Breidd',height:'Hæð',lockRatio:'Festa stærðarhlutfall',unlockRatio:'Unlock Ratio',resetSize:'Reikna stærð',border:'Rammi',hSpace:'Vinstri bil',vSpace:'Hægri bil',align:'Jöfnun',alignLeft:'Vinstri',alignRight:'Hægri',alertUrl:'Sláðu inn slóðina að myndinni',linkTab:'Stikla',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Eigindi Flash',propertiesTab:'Properties',title:'Eigindi Flash',chkPlay:'Sjálfvirk spilun',chkLoop:'Endurtekning',chkMenu:'Sýna Flash-valmynd'
,chkFull:'Allow Fullscreen',scale:'Skali',scaleAll:'Sýna allt',scaleNoBorder:'Ãn ramma',scaleFit:'Fella skala að stærð',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Jöfnun',alignLeft:'Vinstri',alignAbsBottom:'Abs neðst',alignAbsMiddle:'Abs miðjuð',alignBaseline:'GrunnlÃna',alignBottom:'Neðst',alignMiddle:'Miðjuð',alignRight:'Hægri',alignTextTop:'Efri brún texta',alignTop:'Efst',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Bakgrunnslitur',width:'Breidd',height:'Hæð',hSpace:'Vinstri bil',vSpace:'Hægri bil',validateSrc:'Sláðu inn veffang stiklunnar!',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'
HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Villuleit',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Ekki à orðabókinni',changeTo:'Tillaga',btnIgnore:'Hunsa',btnIgnoreAll:'Hunsa allt',btnReplace:'Skipta',btnReplaceAll:'Skipta öllu',btnUndo:'Til baka',noSuggestions:'- engar tillögur -',progress:'Villuleit à gangi...',noMispell:'Villuleit lokið: Engin villa fannst',noChanges:'Villuleit lokið: Engu orði breytt',oneChange:'Villuleit lokið: Einu orði breytt',manyChanges:'Villuleit lokið: %1 orðum breytt',ieSpellDownload:'Villuleit ekki sett upp.<br>Viltu setja hana upp?'},smiley:{toolbar:'Svipur',title:'Velja svip',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Númeraður listi',bulletedlist:'Punktalisti',indent:'Minnka inndrátt',outdent:'Auka inndrátt',justify:{left:'V
instrijöfnun',center:'Miðja texta',right:'Hægrijöfnun',block:'Jafna báðum megin'},blockquote:'Inndráttur',clipboard:{title:'LÃma',cutError:'Ãryggisstillingar vafrans þÃns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið à klippa (Ctrl/Cmd+X).',copyError:'Ãryggisstillingar vafrans þÃns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið à afrita (Ctrl/Cmd+C).',pasteMsg:'LÃmdu à svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.',securityMsg:'Vegna öryggisstillinga à vafranum þÃnum fær ritillinn ekki beinan aðgang að klippuborðinu. Ãú verður að lÃma innihaldið aftur inn à þennan glugga.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'LÃma úr Word',title:'LÃma úr Word',error:'It was not possible to clean up the pasted data due to an internal error'}
,pasteText:{button:'LÃma sem ósniðinn texta',title:'LÃma sem ósniðinn texta'},templates:{button:'Sniðmát',title:'Innihaldssniðmát',options:'Template Options',insertOption:'Skipta út raunverulegu innihaldi',selectPromptMsg:'Veldu sniðmát til að opna à ritlinum.<br>(Núverandi innihald vÃkur fyrir þvÃ!):',emptyListMsg:'(Ekkert sniðmát er skilgreint!)'},showBlocks:'Sýna blokkir',stylesCombo:{label:'StÃlflokkur',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'StÃlsnið',panelTitle:'StÃlsnið',tag_p:'Venjulegt letur',tag_pre:'Forsniðið',tag_address:'Vistfang',tag_h1:'Fyrirsögn 1',tag_h2:'Fyrirsögn 2',tag_h3:'Fyrirsögn 3',tag_h4:'Fyrirsögn 4',tag_h5:'Fyrirsögn 5',tag_h6:'Fyrirsögn 6',tag_div:'Venjulegt (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeI
nputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Leturgerð ',voiceLabel:'Font',panelTitle:'Leturgerð '},fontSize:{label:'Leturstærð ',voiceLabel:'Font Size',panelTitle:'Leturstærð '},colorButton:{textColorTitle:'Litur texta',bgColorTitle:'Bakgrunnslitur',panelTitle:'Colors',auto:'Sjálfval',more:'Fleiri liti...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon'
,FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially
the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Tex
t direction from right to left'}};
+CKEDITOR.lang['is']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Fletta à skjalasafni","url":"Vefslóð","protocol":"Samskiptastaðall","upload":"Senda upp","uploadSubmit":"Hlaða upp","image":"Setja inn mynd","flash":"Flash","form":"Setja inn innsláttarform","checkbox":"Setja inn hökunarreit","radio":"Setja inn valhnapp","textField":"Setja inn textareit","textarea":"Setja inn textasvæði","hiddenField":"Setja inn falið svæði","button":"Setja inn hnapp","select":"Setja inn lista","imageButton":"Setja inn myndahnapp","notSet":"<ekkert valið>","id":"Auðkenni","name":"Nafn","langDir":"Lesstefna","langDirLtr":"Frá vinstri til hægri (LTR)","langDirRtl":"Frá hægri til vinstri (RTL)","langCode":"Tungumálakóði","longDescr":"Nánari lýsing","cssClass":"StÃlsniðsflokkur","advisoryTitle":"Titill","cssStyle":"StÃll","ok":"à lagi","cancel":"Hætta við","close":"Close","preview":"Forskoða","resize":"Resize","
generalTab":"Almennt","advancedTab":"Tæknilegt","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Mark","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","styles":"StÃll","cssClasses":"StÃlsniðsflokkur","width":"Breidd","height":"Hæð","align":"Jöfnun","alignLeft":"Vinstri","alignRight":"Hægri","alignCenter":"Miðjað","alignTop":"Efst","alignMiddle":"Miðjuð","alignBottom":"Neðst","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field mus
t be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Feitletrað","italic":"Skáletrað","strike":"Yfirstrikað","subscript":"Niðurskrifað","superscript":"Upp
skrifað","underline":"Undirstrikað"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Inndráttur"},"clipboard":{"copy":"Afrita","copyError":"Ãryggisstillingar vafrans þÃns leyfa ekki afritun texta með músaraðgerð. Notaðu lyklaborðið à afrita (Ctrl/Cmd+C).","cut":"Klippa","cutError":"Ãryggisstillingar vafrans þÃns leyfa ekki klippingu texta með músaraðgerð. Notaðu lyklaborðið à klippa (Ctrl/Cmd+X).","paste":"LÃma","pasteArea":"Paste Area","pasteMsg":"LÃmdu à svæðið hér að neðan og (<STRONG>Ctrl/Cmd+V</STRONG>) og smelltu á <STRONG>OK</STRONG>.","securityMsg":"Vegna öryggisstillinga à vafranum þÃnum fær ritillinn ekki beinan aðgang að klippuborðinu. Ãú verður að lÃma innihaldið aftur inn à þennan glugga.","title":"LÃma"},"colorbutton":{"auto":"Sjálfval","bgColorTitle":"Bakgrunnslitur","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F
":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Fleiri liti...","panelTitle":"Colors","textColorTitle":"Litur texta"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Sniðmát","emptyListMsg":"(Ekkert snið
mát er skilgreint!)","insertOption":"Skipta út raunverulegu innihaldi","options":"Template Options","selectPromptMsg":"Veldu sniðmát til að opna à ritlinum.<br>(Núverandi innihald vÃkur fyrir þvÃ!):","title":"Innihaldssniðmát"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","inse
rt":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Punktalisti","numberedlist":"Númeraður listi"},"indent":{"indent":"Minnka inndrátt","outdent":"Auka inndrátt"},"find":{"find":"Leita","findOptions":"Find Options","findWhat":"Leita að:","matchCase":"Gera greinarmun á¡ há¡- og lágstöfum","matchCyclic":"Match cyclic","matchWord":"Aðeins heil orð","notFoundMsg":"Leitartexti fannst ekki!","replace":"Skipta út","replaceAll":"Skipta út allsstaðar","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Skipta út fyrir:","title":"Finna og skipta"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs neðst","al
ignAbsMiddle":"Abs miðjuð","alignBaseline":"GrunnlÃna","alignTextTop":"Efri brún texta","bgcolor":"Bakgrunnslitur","chkFull":"Allow Fullscreen","chkLoop":"Endurtekning","chkMenu":"Sýna Flash-valmynd","chkPlay":"Sjálfvirk spilun","flashvars":"Variables for Flash","hSpace":"Vinstri bil","properties":"Eigindi Flash","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Skali","scaleAll":"Sýna allt","scaleFit":"Fella skala að stærð","scaleNoBorder":"Ãn ramma","title":"Eigindi Flash","vSpace":"Hægri bil","validateHSpace":"HSpace must be a number.","validateSrc":"Sláðu inn veffang stiklunnar!","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Leturstærð ","voiceLabel":"Font Siz
e","panelTitle":"Leturstærð "},"label":"Leturgerð ","panelTitle":"Leturgerð ","voiceLabel":"Leturgerð "},"forms":{"button":{"title":"Eigindi hnapps","text":"Texti","type":"Gerð","typeBtn":"Hnappur","typeSbm":"Staðfesta","typeRst":"Hreinsa"},"checkboxAndRadio":{"checkboxTitle":"Eigindi markreits","radioTitle":"Eigindi valhnapps","value":"Gildi","selected":"Valið"},"form":{"title":"Eigindi innsláttarforms","menu":"Eigindi innsláttarforms","action":"Aðgerð","method":"Aðferð","encoding":"Encoding"},"hidden":{"title":"Eigindi falins svæðis","name":"Nafn","value":"Gildi"},"select":{"title":"Eigindi lista","selectInfo":"Upplýsingar","opAvail":"Kostir","value":"Gildi","size":"Stærð","lines":"lÃnur","chkMulti":"Leyfa fleiri kosti","opText":"Texti","opValue":"Gildi","btnAdd":"Bæta við","btnModify":"Breyta","btnUp":"Upp","btnDown":"Niður","btnSetValue":"Merkja sem valið","btnDelete":"Eyða"},"textarea":{"title":"Eigindi textasvæðis","cols":"Dálkar","rows":"LÃ
nur"},"textfield":{"title":"Eigindi textareits","name":"Nafn","value":"Gildi","charWidth":"Breidd (leturtákn)","maxChars":"Hámarksfjöldi leturtákna","type":"Gerð","typeText":"Texti","typePass":"Lykilorð","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"StÃlsnið","panelTitle":"StÃlsnið","tag_address":"Vistfang","tag_div":"Venjulegt (DIV)","tag_h1":"Fyrirsögn 1","tag_h2":"Fyrirsögn 2","tag_h3":"Fyrirsögn 3","tag_h4":"Fyrirsögn 4","tag_h5":"Fyrirsögn 5","tag_h6":"Fyrirsögn 6","tag_p":"Venjulegt letur","tag_pre":"Forsniðið"},"horizontalrule":{"toolbar":"Lóðrétt lÃna"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Sláðu inn slóðina að myndinni","alt":"Baklægur texti","border":"Rammi","btnUpload":"Hlaða upp","button2Img":"Do you want to transform the selected image
button on a simple image?","hSpace":"Vinstri bil","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Almennt","linkTab":"Stikla","lockRatio":"Festa stærðarhlutfall","menu":"Eigindi myndar","resetSize":"Reikna stærð","title":"Eigindi myndar","titleButton":"Eigindi myndahnapps","upload":"Hlaða upp","urlMissing":"Image source URL is missing.","vSpace":"Hægri bil","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Velja svip","toolbar":"Svipur"},"justify":{"block":"Jafna báðum megin","center":"Miðja texta","left":"Vinstrijöfnun","right":"Hægrijöfnun"},"link":{"acccessKey":"Skammvalshnappur","advanced":"Tæknilegt","advisoryContentType":"Tegund innihalds","advisoryTitle":"Titill","anchor":{"toolbar":"Stofna/breyta kaflamerki","menu":"Eigindi kaflamerkis","title":"Eigindi kaflamerkis","n
ame":"Nafn bókamerkis","errorName":"Sláðu inn nafn bókamerkis!","remove":"Remove Anchor"},"anchorId":"Eftir auðkenni einingar","anchorName":"Eftir akkerisnafni","charset":"Táknróf","cssClasses":"StÃlsniðsflokkur","emailAddress":"Netfang","emailBody":"Meginmál","emailSubject":"Efni","id":"Auðkenni","info":"Almennt","langCode":"Lesstefna","langDir":"Lesstefna","langDirLTR":"Frá vinstri til hægri (LTR)","langDirRTL":"Frá hægri til vinstri (RTL)","menu":"Breyta stiklu","name":"Nafn","noAnchors":"<Engin bókamerki á skrá>","noEmail":"Sláðu inn netfang!","noUrl":"Sláðu inn veffang stiklunnar!","other":"<annar>","popupDependent":"Háð venslum (Netscape)","popupFeatures":"Eigindi sprettiglugga","popupFullScreen":"Heilskjár (IE)","popupLeft":"Fjarlægð frá vinstri","popupLocationBar":"FanglÃna","popupMenuBar":"VallÃna","popupResizable":"Resizable","popupScrollBars":"Skrunstikur","popupStatusBar":"Stöðustika","popupToolbar":"Verkfærastika","popupTop":"Fja
rlægð frá efri brún","rel":"Relationship","selectAnchor":"Veldu akkeri","styles":"StÃll","tabIndex":"Raðnúmer innsláttarreits","target":"Mark","targetFrame":"<rammi>","targetFrameName":"Nafn markglugga","targetPopup":"<sprettigluggi>","targetPopupName":"Nafn sprettiglugga","title":"Stikla","toAnchor":"Bókamerki á þessari sÃðu","toEmail":"Netfang","toUrl":"Vefslóð","toolbar":"Stofna/breyta stiklu","type":"Stikluflokkur","unlink":"Fjarlægja stiklu","upload":"Senda upp"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Proper
ties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Ný sÃða"},"pagebreak":{"alt":"Page Break","toolbar":"Setja inn sÃðuskil"},"pastetext":{"button":"LÃma sem ósniðinn texta","title":"LÃma sem ósniðinn texta"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"LÃma úr Word","toolbar":"LÃma úr Word"},"preview":{"preview":"Forskoða"},"print":{"toolbar":"Prenta"},"removeformat":{"toolbar":"Fjarlægja snið"},"save":{"toolbar":"Vista"},"selectall":{"toolbar":"Velja allt"},"showblocks":{"toolbar":"Sýna
blokkir"},"sourcearea":{"toolbar":"Kóði"},"specialchar":{"options":"Special Character Options","title":"Velja tákn","toolbar":"Setja inn merki"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainN
ames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"StÃlflokkur","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Breidd ramma","caption":"Titill","cell":{"menu":"Reitur","insertBefore":"Skjóta inn reiti fyrir aftan","insertAfter":"Skjóta inn reiti fyrir framan","deleteCell":"Fella reit","merge":"Sameina reiti","mergeRight":"Sameina til hægri","mergeDown":"Sameina niður á við","splitHorizontal":"Kljúfa reit lárétt","splitVertical":"Kljúfa reit lóðrétt","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan
":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ReitaspássÃa","cellSpace":"Bil milli reita","column":{"menu":"Dálkur","insertBefore":"Skjóta inn dálki vinstra megin","insertAfter":"Skjóta inn dálki hægra megin","deleteColumn":"Fella dálk"},"columns":"Dálkar","deleteTable":"Fella töflu","headers":"Fyrirsagnir","headersBoth":"Hvort tveggja","headersColumn":"Fyrsti dálkur","headersNone":"Engar","headersRow":"Fyrsta röð","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCell
Spacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Eigindi töflu","row":{"menu":"Röð","insertBefore":"Skjóta inn röð fyrir ofan","insertAfter":"Skjóta inn röð fyrir neðan","deleteRow":"Eyða röð"},"rows":"Raðir","summary":"Ãfram","title":"Eigindi töflu","toolbar":"Tafla","widthPc":"prósent","widthPx":"myndeindir","widthUnit":"width unit"},"undo":{"redo":"Hætta við afturköllun","undo":"Afturkalla"},"wsc":{"btnIgnore":"Hunsa","btnIgnoreAll":"Hunsa allt","btnReplace":"Skipta","btnReplaceAll":"Skipta öllu","btnUndo":"Til baka","changeTo":"Tillaga","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Villuleit ekki sett upp.<br>Viltu setja hana upp?","manyChanges":"Villuleit lokið: %1 orðum breytt","n
oChanges":"Villuleit lokið: Engu orði breytt","noMispell":"Villuleit lokið: Engin villa fannst","noSuggestions":"- engar tillögur -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Ekki à orðabókinni","oneChange":"Villuleit lokið: Einu orði breytt","progress":"Villuleit à gangi...","title":"Spell Check","toolbar":"Villuleit"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/it.js b/share/static/RichText/lang/it.js
index 9e859ea..04aa64d 100644
--- a/share/static/RichText/lang/it.js
+++ b/share/static/RichText/lang/it.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.it={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Codice Sorgente',newPage:'Nuova pagina vuota',save:'Salva',preview:'Anteprima',cut:'Taglia',copy:'Copia',paste:'Incolla',print:'Stampa',underline:'Sottolineato',bold:'Grassetto',italic:'Corsivo',selectAll:'Seleziona tutto',removeFormat:'Elimina formattazione',strike:'Barrato',subscript:'Pedice',superscript:'Apice',horizontalrule:'Inserisci riga orizzontale',pagebreak:'Inserisci interruzione di pagina',unlink:'Elimina collegamento',undo:'Annulla',redo:'Ripristina',common:{browseServer:'Cerca sul server',url:'URL',protocol:'Protocollo',upload:'Carica',uploadSubmit:'Invia al server',image:'Immagine',flash:'Oggetto Flash',form:'Modulo',checkbox:'Checkbox',radio:'Radio Button',textField:'Campo di testo',textarea:'Area di testo',hiddenField:'Campo nascosto',button:'Bottone',select:'Menu di selezione',imageButton:'Bottone immagine',notSet:'<non i
mpostato>',id:'Id',name:'Nome',langDir:'Direzione scrittura',langDirLtr:'Da Sinistra a Destra (LTR)',langDirRtl:'Da Destra a Sinistra (RTL)',langCode:'Codice Lingua',longDescr:'URL descrizione estesa',cssClass:'Nome classe CSS',advisoryTitle:'Titolo',cssStyle:'Stile',ok:'OK',cancel:'Annulla',close:'Close',preview:'Preview',generalTab:'Generale',advancedTab:'Avanzate',validateNumberFailed:'Il valore inserito non è un numero.',confirmNewPage:'Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?',confirmCancel:'Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, non disponi
bile</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Inserisci carattere speciale',title:'Seleziona carattere speciale',options:'Special Character Options'},link:{toolbar:'Inserisci/Modifica collegamento',other:'<altro>',menu:'Modifica collegamento',title:'Collegamento',info:'Informazioni collegamento',target:'Destinazione',upload:'Carica',advanced:'Avanzate',type:'Tipo di Collegamento',toUrl:'URL',toAnchor:'Ancora nella pagina',toEmail:'E-Mail',targetFrame:'<riquadro>',targetPopup:'<finestra popup>',targetFrameName:'Nome del riquadro di destinazione',targetPopupName:'Nome finestra popup',popupFeatures:'Caratteristiche finestra popup',popupResizable:'Ridimensionabile',popupStatusBar:'Barra di stato',popupLocationBar:'Barra degli indirizzi',popupToolbar:'Barra degli strumenti',popupMenuBar:'Barra del menu',popupFullScreen:'A tutto schermo (IE)',popupScrollBars:'Barre di scorrimento',popupDependent:'Dipendente (Netscape)',popupWidth:'Larghezza',popu
pLeft:'Posizione da sinistra',popupHeight:'Altezza',popupTop:"Posizione dall'alto",id:'Id',langDir:'Direzione scrittura',langDirLTR:'Da Sinistra a Destra (LTR)',langDirRTL:'Da Destra a Sinistra (RTL)',acccessKey:'Scorciatoia<br />da tastiera',name:'Nome',langCode:'Direzione scrittura',tabIndex:'Ordine di tabulazione',advisoryTitle:'Titolo',advisoryContentType:'Tipo della risorsa collegata',cssClasses:'Nome classe CSS',charset:'Set di caretteri della risorsa collegata',styles:'Stile',selectAnchor:'Scegli Ancora',anchorName:'Per Nome',anchorId:'Per id elemento',emailAddress:'Indirizzo E-Mail',emailSubject:'Oggetto del messaggio',emailBody:'Corpo del messaggio',noAnchors:'(Nessuna ancora disponibile nel documento)',noUrl:"Devi inserire l'URL del collegamento",noEmail:"Devi inserire un'indirizzo e-mail"},anchor:{toolbar:'Inserisci/Modifica Ancora',menu:'Proprietà ancora',title:'Proprietà ancora',name:'Nome ancora',errorName:"Inserici il nome dell'ancora"},list:{numberedTitle:'
Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Cerca e Sostituisci',find:'Trova',replace:'Sostituisci',findWhat:'Trova:',replaceWith:'Sostituisci con:',notFoundMsg:"L'elemento cercato non è stato trovato.",matchCase:'Maiuscole/minuscole',matchWord:'Solo parole intere',matchCyclic:'Ricerca ciclica',replaceAll:'Sostituisci tutto',replaceSuccessMsg:'%1 occ
orrenza(e) sostituite.'},table:{toolbar:'Tabella',title:'Proprietà tabella',menu:'Proprietà tabella',deleteTable:'Cancella Tabella',rows:'Righe',columns:'Colonne',border:'Dimensione bordo',align:'Allineamento',alignLeft:'Sinistra',alignCenter:'Centrato',alignRight:'Destra',width:'Larghezza',widthPx:'pixel',widthPc:'percento',widthUnit:'width unit',height:'Altezza',cellSpace:'Spaziatura celle',cellPad:'Padding celle',caption:'Intestazione',summary:'Indice',headers:'Intestazione',headersNone:'Nessuna',headersColumn:'Prima Colonna',headersRow:'Prima Riga',headersBoth:'Entrambe',invalidRows:"Il numero di righe dev'essere un numero maggiore di 0.",invalidCols:"Il numero di colonne dev'essere un numero maggiore di 0.",invalidBorder:"La dimensione del bordo dev'essere un numero.",invalidWidth:"La larghezza della tabella dev'essere un numero.",invalidHeight:"L'altezza della tabella dev'essere un numero.",invalidCellSpacing:"La spaziatura tra le celle dev'essere un numero.",invalid
CellPadding:"Il pagging delle celle dev'essere un numero",cell:{menu:'Cella',insertBefore:'Inserisci Cella Prima',insertAfter:'Inserisci Cella Dopo',deleteCell:'Elimina celle',merge:'Unisce celle',mergeRight:'Unisci a Destra',mergeDown:'Unisci in Basso',splitHorizontal:'Dividi Cella Orizzontalmente',splitVertical:'Dividi Cella Verticalmente',title:'Proprietà della cella',cellType:'Tipo di cella',rowSpan:'Su più righe',colSpan:'Su più colonne',wordWrap:'Ritorno a capo',hAlign:'Allineamento orizzontale',vAlign:'Allineamento verticale',alignTop:'In Alto',alignMiddle:'Al Centro',alignBottom:'In Basso',alignBaseline:'Linea Base',bgColor:'Colore di Sfondo',borderColor:'Colore del Bordo',data:'Dati',header:'Intestazione',yes:'Si',no:'No',invalidWidth:"La larghezza della cella dev'essere un numero.",invalidHeight:"L'altezza della cella dev'essere un numero.",invalidRowSpan:"Il numero di righe dev'essere un numero intero.",invalidColSpan:"Il numero di colonne dev'essere un numero
intero.",chooseColor:'Choose'},row:{menu:'Riga',insertBefore:'Inserisci Riga Prima',insertAfter:'Inserisci Riga Dopo',deleteRow:'Elimina righe'},column:{menu:'Colonna',insertBefore:'Inserisci Colonna Prima',insertAfter:'Inserisci Colonna Dopo',deleteColumn:'Elimina colonne'}},button:{title:'Proprietà bottone',text:'Testo (Value)',type:'Tipo',typeBtn:'Bottone',typeSbm:'Invio',typeRst:'Annulla'},checkboxAndRadio:{checkboxTitle:'Proprietà checkbox',radioTitle:'Proprietà radio button',value:'Valore',selected:'Selezionato'},form:{title:'Proprietà modulo',menu:'Proprietà modulo',action:'Azione',method:'Metodo',encoding:'Codifica'},select:{title:'Proprietà menu di selezione',selectInfo:'Info',opAvail:'Opzioni disponibili',value:'Valore',size:'Dimensione',lines:'righe',chkMulti:'Permetti selezione multipla',opText:'Testo',opValue:'Valore',btnAdd:'Aggiungi',btnModify:'Modifica',btnUp:'Su',btnDown:'Gi',btnSetValue:'Imposta come predefinito',btnDelete:'Rimuovi'},textarea:{title:'
Proprietà area di testo',cols:'Colonne',rows:'Righe'},textfield:{title:'Proprietà campo di testo',name:'Nome',value:'Valore',charWidth:'Larghezza',maxChars:'Numero massimo di caratteri',type:'Tipo',typeText:'Testo',typePass:'Password'},hidden:{title:'Proprietà campo nascosto',name:'Nome',value:'Valore'},image:{title:'Proprietà immagine',titleButton:'Proprietà bottone immagine',menu:'Proprietà immagine',infoTab:'Informazioni immagine',btnUpload:'Invia al server',upload:'Carica',alt:'Testo alternativo',width:'Larghezza',height:'Altezza',lockRatio:'Blocca rapporto',unlockRatio:'Unlock Ratio',resetSize:'Reimposta dimensione',border:'Bordo',hSpace:'HSpace',vSpace:'VSpace',align:'Allineamento',alignLeft:'Sinistra',alignRight:'Destra',alertUrl:"Devi inserire l'URL per l'immagine",linkTab:'Collegamento',button2Img:"Vuoi trasformare il bottone immagine selezionato in un'immagine semplice?",img2Button:"Vuoi trasferomare l'immagine selezionata in un bottone immagine?",urlMissing:
'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Proprietà Oggetto Flash',propertiesTab:'Proprietà ',title:'Proprietà Oggetto Flash',chkPlay:'Avvio Automatico',chkLoop:'Riavvio automatico',chkMenu:'Abilita Menu di Flash',chkFull:'Permetti la modalità tutto schermo',scale:'Ridimensiona',scaleAll:'Mostra Tutto',scaleNoBorder:'Senza Bordo',scaleFit:'Dimensione Esatta',access:'Accesso Script',accessAlways:'Sempre',accessSameDomain:'Solo stesso dominio',accessNever:'Mai',align:'Allineamento',alignLeft:'Sinistra',alignAbsBottom:'In basso assoluto',alignAbsMiddle:'Centrato assoluto',alignBaseline:'Linea base',alignBottom:'In Basso',alignMiddle:'Centrato',alignRight:'Destra',alignTextTop:'In alto al testo',alignTop:'In Alto',quality:'Qualità ',
qualityBest:'Massima',qualityHigh:'Alta',qualityAutoHigh:'Alta Automatica',qualityMedium:'Intermedia',qualityAutoLow:'Bassa Automatica',qualityLow:'Bassa',windowModeWindow:'Finestra',windowModeOpaque:'Opaca',windowModeTransparent:'Trasparente',windowMode:'Modalità finestra',flashvars:'Variabili per Flash',bgcolor:'Colore sfondo',width:'Larghezza',height:'Altezza',hSpace:'HSpace',vSpace:'VSpace',validateSrc:"Devi inserire l'URL del collegamento",validateWidth:"La Larghezza dev'essere un numero",validateHeight:"L'altezza dev'essere un numero",validateHSpace:"L'HSpace dev'essere un numero.",validateVSpace:"Il VSpace dev'essere un numero."},spellCheck:{toolbar:'Correttore ortografico',title:'Controllo ortografico',notAvailable:'Il servizio non è momentaneamente disponibile.',errorLoading:"Errore nel caricamento dell'host col servizio applicativo: %s.",notInDic:'Non nel dizionario',changeTo:'Cambia in',btnIgnore:'Ignora',btnIgnoreAll:'Ignora tutto',btnReplace:'Cambia',btnReplac
eAll:'Cambia tutto',btnUndo:'Annulla',noSuggestions:'- Nessun suggerimento -',progress:'Controllo ortografico in corso',noMispell:'Controllo ortografico completato: nessun errore trovato',noChanges:'Controllo ortografico completato: nessuna parola cambiata',oneChange:'Controllo ortografico completato: 1 parola cambiata',manyChanges:'Controllo ortografico completato: %1 parole cambiate',ieSpellDownload:'Contollo ortografico non installato. Lo vuoi scaricare ora?'},smiley:{toolbar:'Emoticon',title:'Inserisci emoticon',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 elemento'},numberedlist:'Elenco numerato',bulletedlist:'Elenco puntato',indent:'Aumenta rientro',outdent:'Riduci rientro',justify:{left:'Allinea a sinistra',center:'Centra',right:'Allinea a destra',block:'Giustifica'},blockquote:'Citazione',clipboard:{title:'Incolla',cutError:'Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (
Ctrl/Cmd+X).',copyError:'Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).',pasteMsg:"Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.",securityMsg:"A causa delle impostazioni di sicurezza del browser,l'editor non è in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finestra.",pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?',toolbar:'Incolla da Word',title:'Incolla da Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Incolla come testo semplice',title:'Incolla come testo semplice'},templates:{button:'Modelli',title:'Contenuto dei modelli',options:'Template Options',insertOption:'Cancella il contenuto corrente',sel
ectPromptMsg:"Seleziona il modello da aprire nell'editor<br />(il contenuto attuale verrà eliminato):",emptyListMsg:'(Nessun modello definito)'},showBlocks:'Visualizza Blocchi',stylesCombo:{label:'Stile',panelTitle:'Formatting Styles',panelTitle1:'Stili per blocchi',panelTitle2:'Stili in linea',panelTitle3:'Stili per oggetti'},format:{label:'Formato',panelTitle:'Formato',tag_p:'Normale',tag_pre:'Formattato',tag_address:'Indirizzo',tag_h1:'Titolo 1',tag_h2:'Titolo 2',tag_h3:'Titolo 3',tag_h4:'Titolo 4',tag_h5:'Titolo 5',tag_h6:'Titolo 6',tag_div:'Paragrafo (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:
{label:'Font',voiceLabel:'Font',panelTitle:'Font'},fontSize:{label:'Dimensione',voiceLabel:'Dimensione Font',panelTitle:'Dimensione'},colorButton:{textColorTitle:'Colore testo',bgColorTitle:'Colore sfondo',panelTitle:'Colors',auto:'Automatico',more:'Altri colori...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FF
F:'White'},scayt:{title:'Controllo Ortografico Mentre Scrivi',opera_title:'Not supported by Opera',enable:'Abilita COMS',disable:'Disabilita COMS',about:'About COMS',toggle:'Inverti abilitazione SCOMS',options:'Opzioni',langs:'Lingue',moreSuggestions:'Altri suggerimenti',ignore:'Ignora',ignoreAll:'Ignora tutti',addWord:'Aggiungi Parola',emptyDic:'Il nome del dizionario non può essere vuoto.',optionsTab:'Opzioni',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Lingue',dictionariesTab:'Dizionari',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your perso
nal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'Per le informazioni sulla licenza si prega di visitare il nostro sito:',copy:'Copyright © $1. Tutti i diritti riservati.'},maximize:'Massimizza',minimize:'Minimize',fakeobjects:{anchor:'Ancora',flash:'Animazione Flash',div:'Interruzione di Pagina',unknown:'Oggetto sconosciuto'},resize:'Trascina per ridimensionare',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['it']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Premi ALT 0 per aiuto","browseServer":"Cerca sul server","url":"URL","protocol":"Protocollo","upload":"Carica","uploadSubmit":"Invia al server","image":"Immagine","flash":"Oggetto Flash","form":"Modulo","checkbox":"Checkbox","radio":"Radio Button","textField":"Campo di testo","textarea":"Area di testo","hiddenField":"Campo nascosto","button":"Bottone","select":"Menu di selezione","imageButton":"Bottone immagine","notSet":"<non impostato>","id":"Id","name":"Nome","langDir":"Direzione scrittura","langDirLtr":"Da Sinistra a Destra (LTR)","langDirRtl":"Da Destra a Sinistra (RTL)","langCode":"Codice Lingua","longDescr":"URL descrizione estesa","cssClass":"Nome classe CSS","advisoryTitle":"Titolo","cssStyle":"Stile","ok":"OK","cancel":"Annulla","close":"Chiudi","preview":"Anteprima","resize":"Trascina per ridimensionare","generalTab":"Generale","advancedTab":"Avanzate","validateNumberFailed":"Il v
alore inserito non è un numero.","confirmNewPage":"Ogni modifica non salvata sarà persa. Sei sicuro di voler caricare una nuova pagina?","confirmCancel":"Alcune delle opzioni sono state cambiate. Sei sicuro di voler chiudere la finestra di dialogo?","options":"Opzioni","target":"Destinazione","targetNew":"Nuova finestra (_blank)","targetTop":"Finestra in primo piano (_top)","targetSelf":"Stessa finestra (_self)","targetParent":"Finestra Padre (_parent)","langDirLTR":"Da sinistra a destra (LTR)","langDirRTL":"Da destra a sinistra (RTL)","styles":"Stile","cssClasses":"Classi di stile","width":"Larghezza","height":"Altezza","align":"Allineamento","alignLeft":"Sinistra","alignRight":"Destra","alignCenter":"Centrato","alignTop":"In Alto","alignMiddle":"Centrato","alignBottom":"In Basso","invalidValue":"Valore non valido.","invalidHeight":"L'altezza dev'essere un numero","invalidWidth":"La Larghezza dev'essere un numero","invalidCssLength":"Il valore indicato per il campo \"%1\"
deve essere un numero positivo con o senza indicazione di una valida unità di misura per le classi CSS (px, %, in, cm, mm, em, ex, pt, o pc).","invalidHtmlLength":"Il valore indicato per il campo \"%1\" deve essere un numero positivo con o senza indicazione di una valida unità di misura per le pagine HTML (px o %).","invalidInlineStyle":"Il valore specificato per lo stile inline deve consistere in una o più tuple con il formato di \"name : value\", separati da semicolonne.","cssLengthTooltip":"Inserisci un numero per il valore in pixel oppure un numero con una valida unità CSS (px, %, in, cm, mm, ex, pt, o pc).","unavailable":"%1<span class=\"cke_accessibility\">, non disponibile</span>"},"about":{"copy":"Copyright © $1. Tutti i diritti riservati.","dlgTitle":"Riguardo CKEditor","help":"Vedi $1 per l'aiuto.","moreInfo":"Per le informazioni sulla licenza si prega di visitare il nostro sito:","title":"Riguardo CKEditor","userGuide":"Guida Utente CKEditor"},"basicstyl
es":{"bold":"Grassetto","italic":"Corsivo","strike":"Barrato","subscript":"Pedice","superscript":"Apice","underline":"Sottolineato"},"bidi":{"ltr":"Direzione del testo da sinistra verso destra","rtl":"Direzione del testo da destra verso sinistra"},"blockquote":{"toolbar":"Citazione"},"clipboard":{"copy":"Copia","copyError":"Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+C).","cut":"Taglia","cutError":"Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl/Cmd+X).","paste":"Incolla","pasteArea":"Incolla","pasteMsg":"Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (<STRONG>Ctrl/Cmd+V</STRONG>) e premi <STRONG>OK</STRONG>.","securityMsg":"A causa delle impostazioni di sicurezza del browser,l'editor non è in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finest
ra.","title":"Incolla"},"colorbutton":{"auto":"Automatico","bgColorTitle":"Colore sfondo","colors":{"000":"Nero","800000":"Marrone Castagna","8B4513":"Marrone Cuoio","2F4F4F":"Grigio Fumo di Londra","008080":"Acquamarina","000080":"Blu Oceano","4B0082":"Indigo","696969":"Grigio Scuro","B22222":"Giallo Fiamma","A52A2A":"Marrone","DAA520":"Giallo Mimosa","006400":"Verde Scuro","40E0D0":"Turchese","0000CD":"Blue Scuro","800080":"Viola","808080":"Grigio","F00":"Rosso","FF8C00":"Arancio Scuro","FFD700":"Oro","008000":"Verde","0FF":"Ciano","00F":"Blu","EE82EE":"Violetto","A9A9A9":"Grigio Scuro","FFA07A":"Salmone","FFA500":"Arancio","FFFF00":"Giallo","00FF00":"Lime","AFEEEE":"Turchese Chiaro","ADD8E6":"Blu Chiaro","DDA0DD":"Rosso Ciliegia","D3D3D3":"Grigio Chiaro","FFF0F5":"Lavanda Chiara","FAEBD7":"Bianco Antico","FFFFE0":"Giallo Chiaro","F0FFF0":"Verde Mela","F0FFFF":"Azzurro","F0F8FF":"Celeste","E6E6FA":"Lavanda","FFF":"Bianco"},"more":"Altri colori...","panelTitle":"Colori","te
xtColorTitle":"Colore testo"},"colordialog":{"clear":"cancella","highlight":"Evidenzia","options":"Opzioni colore","selected":"Seleziona il colore","title":"Selezionare il colore"},"templates":{"button":"Modelli","emptyListMsg":"(Nessun modello definito)","insertOption":"Cancella il contenuto corrente","options":"Opzioni del Modello","selectPromptMsg":"Seleziona il modello da aprire nell'editor<br />(il contenuto attuale verrà eliminato):","title":"Contenuto dei modelli"},"contextmenu":{"options":"Opzioni del menù contestuale"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Titolo Avviso","cssClassInputLabel":"Classi di stile","edit":"Modifica DIV","inlineStyleInputLabel":"Stile Inline","langDirLTRLabel":"Da sinistra a destra (LTR)","langDirLabel":"Direzione di scrittura","langDirRTLLabel":"Da destra a sinistra (RTL)","languageCodeInputLabel":"Codice lingua","remove":"Rimuovi DIV","styleSelectLabel":"Stile","title":"Crea DIV contenitore","toolbar":"Crea DIV contenit
ore"},"toolbar":{"toolbarCollapse":"Minimizza Toolbar","toolbarExpand":"Espandi Toolbar","toolbarGroups":{"document":"Documento","clipboard":"Copia negli appunti/Indietro","editing":"Modifica","forms":"Form","basicstyles":"Stili di base","paragraph":"Paragrafo","links":"Link","insert":"Inserisci","styles":"Stili","colors":"Colori","tools":"Strumenti"},"toolbars":"Editor toolbar"},"elementspath":{"eleLabel":"Percorso degli elementi","eleTitle":"%1 elemento"},"list":{"bulletedlist":"Elenco puntato","numberedlist":"Elenco numerato"},"indent":{"indent":"Aumenta rientro","outdent":"Riduci rientro"},"find":{"find":"Trova","findOptions":"Opzioni di ricerca","findWhat":"Trova:","matchCase":"Maiuscole/minuscole","matchCyclic":"Ricerca ciclica","matchWord":"Solo parole intere","notFoundMsg":"L'elemento cercato non è stato trovato.","replace":"Sostituisci","replaceAll":"Sostituisci tutto","replaceSuccessMsg":"%1 occorrenza(e) sostituite.","replaceWith":"Sostituisci con:","title":"Cerc
a e Sostituisci"},"fakeobjects":{"anchor":"Ancora","flash":"Animazione Flash","hiddenfield":"Campo Nascosto","iframe":"IFrame","unknown":"Oggetto sconosciuto"},"flash":{"access":"Accesso Script","accessAlways":"Sempre","accessNever":"Mai","accessSameDomain":"Solo stesso dominio","alignAbsBottom":"In basso assoluto","alignAbsMiddle":"Centrato assoluto","alignBaseline":"Linea base","alignTextTop":"In alto al testo","bgcolor":"Colore sfondo","chkFull":"Permetti la modalità tutto schermo","chkLoop":"Riavvio automatico","chkMenu":"Abilita Menu di Flash","chkPlay":"Avvio Automatico","flashvars":"Variabili per Flash","hSpace":"HSpace","properties":"Proprietà Oggetto Flash","propertiesTab":"Proprietà ","quality":"Qualità ","qualityAutoHigh":"Alta Automatica","qualityAutoLow":"Bassa Automatica","qualityBest":"Massima","qualityHigh":"Alta","qualityLow":"Bassa","qualityMedium":"Intermedia","scale":"Ridimensiona","scaleAll":"Mostra Tutto","scaleFit":"Dimensione Esatta","scaleNoBorder"
:"Senza Bordo","title":"Proprietà Oggetto Flash","vSpace":"VSpace","validateHSpace":"L'HSpace dev'essere un numero.","validateSrc":"Devi inserire l'URL del collegamento","validateVSpace":"Il VSpace dev'essere un numero.","windowMode":"Modalità finestra","windowModeOpaque":"Opaca","windowModeTransparent":"Trasparente","windowModeWindow":"Finestra"},"font":{"fontSize":{"label":"Dimensione","voiceLabel":"Dimensione Carattere","panelTitle":"Dimensione"},"label":"Carattere","panelTitle":"Carattere","voiceLabel":"Carattere"},"forms":{"button":{"title":"Proprietà bottone","text":"Testo (Valore)","type":"Tipo","typeBtn":"Bottone","typeSbm":"Invio","typeRst":"Annulla"},"checkboxAndRadio":{"checkboxTitle":"Proprietà checkbox","radioTitle":"Proprietà radio button","value":"Valore","selected":"Selezionato"},"form":{"title":"Proprietà modulo","menu":"Proprietà modulo","action":"Azione","method":"Metodo","encoding":"Codifica"},"hidden":{"title":"Proprietà campo nascosto","name":"N
ome","value":"Valore"},"select":{"title":"Proprietà menu di selezione","selectInfo":"Info","opAvail":"Opzioni disponibili","value":"Valore","size":"Dimensione","lines":"righe","chkMulti":"Permetti selezione multipla","opText":"Testo","opValue":"Valore","btnAdd":"Aggiungi","btnModify":"Modifica","btnUp":"Su","btnDown":"Gi","btnSetValue":"Imposta come predefinito","btnDelete":"Rimuovi"},"textarea":{"title":"Proprietà area di testo","cols":"Colonne","rows":"Righe"},"textfield":{"title":"Proprietà campo di testo","name":"Nome","value":"Valore","charWidth":"Larghezza","maxChars":"Numero massimo di caratteri","type":"Tipo","typeText":"Testo","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Indirizzo","tag_div":"Paragrafo (DIV)","tag_h1":"Titolo 1","tag_h2":"Titolo 2","tag_h3":"Titolo 3","tag_h4":"Titolo 4","tag_h5":"Titolo 5","tag_h6":"Titolo 6","tag_p
":"Normale","tag_pre":"Formattato"},"horizontalrule":{"toolbar":"Inserisci riga orizzontale"},"iframe":{"border":"Mostra il bordo","noUrl":"Inserire l'URL del campo IFrame","scrolling":"Abilita scrollbar","title":"Proprietà IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Devi inserire l'URL per l'immagine","alt":"Testo alternativo","border":"Bordo","btnUpload":"Invia al server","button2Img":"Vuoi trasformare il bottone immagine selezionato in un'immagine semplice?","hSpace":"HSpace","img2Button":"Vuoi trasferomare l'immagine selezionata in un bottone immagine?","infoTab":"Informazioni immagine","linkTab":"Collegamento","lockRatio":"Blocca rapporto","menu":"Proprietà immagine","resetSize":"Reimposta dimensione","title":"Proprietà immagine","titleButton":"Proprietà bottone immagine","upload":"Carica","urlMissing":"Manca l'URL dell'immagine.","vSpace":"VSpace","validateBorder":"Il campo Bordo deve essere un numero intero.","validateHSpace":"Il campo HSpace deve essere un n
umero intero.","validateVSpace":"Il campo VSpace deve essere un numero intero."},"smiley":{"options":"Opzioni Smiley","title":"Inserisci emoticon","toolbar":"Emoticon"},"justify":{"block":"Giustifica","center":"Centra","left":"Allinea a sinistra","right":"Allinea a destra"},"link":{"acccessKey":"Scorciatoia<br />da tastiera","advanced":"Avanzate","advisoryContentType":"Tipo della risorsa collegata","advisoryTitle":"Titolo","anchor":{"toolbar":"Inserisci/Modifica Ancora","menu":"Proprietà ancora","title":"Proprietà ancora","name":"Nome ancora","errorName":"Inserici il nome dell'ancora","remove":"Rimuovi l'ancora"},"anchorId":"Per id elemento","anchorName":"Per Nome","charset":"Set di caretteri della risorsa collegata","cssClasses":"Nome classe CSS","emailAddress":"Indirizzo E-Mail","emailBody":"Corpo del messaggio","emailSubject":"Oggetto del messaggio","id":"Id","info":"Informazioni collegamento","langCode":"Direzione scrittura","langDir":"Direzione scrittura","langDirLTR"
:"Da Sinistra a Destra (LTR)","langDirRTL":"Da Destra a Sinistra (RTL)","menu":"Modifica collegamento","name":"Nome","noAnchors":"(Nessuna ancora disponibile nel documento)","noEmail":"Devi inserire un'indirizzo e-mail","noUrl":"Devi inserire l'URL del collegamento","other":"<altro>","popupDependent":"Dipendente (Netscape)","popupFeatures":"Caratteristiche finestra popup","popupFullScreen":"A tutto schermo (IE)","popupLeft":"Posizione da sinistra","popupLocationBar":"Barra degli indirizzi","popupMenuBar":"Barra del menu","popupResizable":"Ridimensionabile","popupScrollBars":"Barre di scorrimento","popupStatusBar":"Barra di stato","popupToolbar":"Barra degli strumenti","popupTop":"Posizione dall'alto","rel":"Relazioni","selectAnchor":"Scegli Ancora","styles":"Stile","tabIndex":"Ordine di tabulazione","target":"Destinazione","targetFrame":"<riquadro>","targetFrameName":"Nome del riquadro di destinazione","targetPopup":"<finestra popup>","targetPopupName":"Nome finestra popup",
"title":"Collegamento","toAnchor":"Ancora nella pagina","toEmail":"E-Mail","toUrl":"URL","toolbar":"Inserisci/Modifica collegamento","type":"Tipo di Collegamento","unlink":"Elimina collegamento","upload":"Carica"},"liststyle":{"armenian":"Numerazione Armena","bulletedTitle":"Proprietà liste puntate","circle":"Cerchio","decimal":"Decimale (1, 2, 3, ecc.)","decimalLeadingZero":"Decimale preceduto da 0 (01, 02, 03, ecc.)","disc":"Disco","georgian":"Numerazione Georgiana (an, ban, gan, ecc.)","lowerAlpha":"Alfabetico minuscolo (a, b, c, d, e, ecc.)","lowerGreek":"Greco minuscolo (alpha, beta, gamma, ecc.)","lowerRoman":"Numerazione Romana minuscola (i, ii, iii, iv, v, ecc.)","none":"Nessuno","notset":"<non impostato>","numberedTitle":"Proprietà liste numerate","square":"Quadrato","start":"Inizio","type":"Tipo","upperAlpha":"Alfabetico maiuscolo (A, B, C, D, E, ecc.)","upperRoman":"Numerazione Romana maiuscola (I, II, III, IV, V, ecc.)","validateStartNumber":"Il numero di inizi
o di una lista numerata deve essere un numero intero."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Massimizza","minimize":"Minimizza"},"newpage":{"toolbar":"Nuova pagina vuota"},"pagebreak":{"alt":"Interruzione di pagina","toolbar":"Inserisci interruzione di pagina"},"pastetext":{"button":"Incolla come testo semplice","title":"Incolla come testo semplice"},"pastefromword":{"confirmCleanup":"Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?","error":"Non è stato possibile eliminarre il testo incollato a causa di un errore interno.","title":"Incolla da Word","toolbar":"Incolla da Word"},"preview":{"preview":"Anteprima"},"print":{"toolbar":"Stampa"},"removeformat":{"toolbar":"Elimina formattazione"},"save":{"toolbar":"Salva"},"selectall":{"toolbar":"Seleziona tutto"},"showblocks":{"toolbar":"Visualizza Blocchi"},"sourcearea":{"toolbar":"Codice Sorgente"},"specialchar":{"options":"Opzioni carattere speciale","title":
"Seleziona carattere speciale","toolbar":"Inserisci carattere speciale"},"scayt":{"about":"About COMS","aboutTab":"Info","addWord":"Aggiungi Parola","allCaps":"Ignora Parole in maiuscolo","dic_create":"Crea","dic_delete":"Cancella","dic_field_name":"Nome del dizionario","dic_info":"Inizialmente il dizionario utente è memorizzato in un Cookie. I Cookie però hanno una dimensioni massima limitata. Quando il dizionario utente creasce a tal punto da non poter più essere memorizzato in un Cookie, allora il dizionario può essere memorizzato sul nostro server. Per memorizzare il proprio dizionario personale sul nostro server, è necessario specificare un nome per il proprio dizionario. Se avete già memorizzato un dizionario, inserite il nome che gli avete dato e premete il pulsante Ripristina.","dic_rename":"Rinomina","dic_restore":"Ripristina","dictionariesTab":"Dizionari","disable":"Disabilita COMS","emptyDic":"Il nome del dizionario non può essere vuoto.","enable":"Abilita
COMS","ignore":"Ignora","ignoreAll":"Ignora tutti","ignoreDomainNames":"Ignora nomi di dominio","langs":"Lingue","languagesTab":"Lingue","mixedCase":"Ignora parole con maiuscole e minuscole","mixedWithDigits":"Ignora parole con numeri","moreSuggestions":"Altri suggerimenti","opera_title":"Non supportato da Opera","options":"Opzioni","optionsTab":"Opzioni","title":"Controllo Ortografico Mentre Scrivi","toggle":"Inverti abilitazione SCOMS","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stile","panelTitle":"Stili di formattazione","panelTitle1":"Stili per blocchi","panelTitle2":"Stili in linea","panelTitle3":"Stili per oggetti"},"table":{"border":"Dimensione bordo","caption":"Intestazione","cell":{"menu":"Cella","insertBefore":"Inserisci Cella Prima","insertAfter":"Inserisci Cella Dopo","deleteCell":"Elimina celle","merge":"Unisce celle","mergeRight":"Unisci a Destra","mergeDown":"Unisci in Basso","splitHorizontal":"Dividi Cella Orizzontalmente","splitVertical":"Divid
i Cella Verticalmente","title":"Proprietà della cella","cellType":"Tipo di cella","rowSpan":"Su più righe","colSpan":"Su più colonne","wordWrap":"Ritorno a capo","hAlign":"Allineamento orizzontale","vAlign":"Allineamento verticale","alignBaseline":"Linea Base","bgColor":"Colore di Sfondo","borderColor":"Colore del Bordo","data":"Dati","header":"Intestazione","yes":"Si","no":"No","invalidWidth":"La larghezza della cella dev'essere un numero.","invalidHeight":"L'altezza della cella dev'essere un numero.","invalidRowSpan":"Il numero di righe dev'essere un numero intero.","invalidColSpan":"Il numero di colonne dev'essere un numero intero.","chooseColor":"Scegli"},"cellPad":"Padding celle","cellSpace":"Spaziatura celle","column":{"menu":"Colonna","insertBefore":"Inserisci Colonna Prima","insertAfter":"Inserisci Colonna Dopo","deleteColumn":"Elimina colonne"},"columns":"Colonne","deleteTable":"Cancella Tabella","headers":"Intestazione","headersBoth":"Entrambe","headersColumn":"
Prima Colonna","headersNone":"Nessuna","headersRow":"Prima Riga","invalidBorder":"La dimensione del bordo dev'essere un numero.","invalidCellPadding":"Il paging delle celle dev'essere un numero","invalidCellSpacing":"La spaziatura tra le celle dev'essere un numero.","invalidCols":"Il numero di colonne dev'essere un numero maggiore di 0.","invalidHeight":"L'altezza della tabella dev'essere un numero.","invalidRows":"Il numero di righe dev'essere un numero maggiore di 0.","invalidWidth":"La larghezza della tabella dev'essere un numero.","menu":"Proprietà tabella","row":{"menu":"Riga","insertBefore":"Inserisci Riga Prima","insertAfter":"Inserisci Riga Dopo","deleteRow":"Elimina righe"},"rows":"Righe","summary":"Indice","title":"Proprietà tabella","toolbar":"Tabella","widthPc":"percento","widthPx":"pixel","widthUnit":"unità larghezza"},"undo":{"redo":"Ripristina","undo":"Annulla"},"wsc":{"btnIgnore":"Ignora","btnIgnoreAll":"Ignora tutto","btnReplace":"Cambia","btnReplaceAll":
"Cambia tutto","btnUndo":"Annulla","changeTo":"Cambia in","errorLoading":"Errore nel caricamento dell'host col servizio applicativo: %s.","ieSpellDownload":"Contollo ortografico non installato. Lo vuoi scaricare ora?","manyChanges":"Controllo ortografico completato: %1 parole cambiate","noChanges":"Controllo ortografico completato: nessuna parola cambiata","noMispell":"Controllo ortografico completato: nessun errore trovato","noSuggestions":"- Nessun suggerimento -","notAvailable":"Il servizio non è momentaneamente disponibile.","notInDic":"Non nel dizionario","oneChange":"Controllo ortografico completato: 1 parola cambiata","progress":"Controllo ortografico in corso","title":"Controllo ortografico","toolbar":"Correttore ortografico"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ja.js b/share/static/RichText/lang/ja.js
index 6ca5538..3d887a2 100644
--- a/share/static/RichText/lang/ja.js
+++ b/share/static/RichText/lang/ja.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ja={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'ã½ã¼ã¹',newPage:'æ°ãããã¼ã¸',save:'ä¿å',preview:'ãã¬ãã¥ã¼',cut:'åãåã',copy:'ã³ãã¼',paste:'è²¼ãä»ã',print:'å°å·',underline:'ä¸ç·',bold:'太å',italic:'æä½',selectAll:'ãã¹ã¦é¸æ',removeFormat:'ãã©ã¼ãããåé¤',strike:'æã¡æ¶ãç·',subscript:'æ·»ãå',superscript:'ä¸ä»ãæå',horizontalrule:'横罫ç·',pagebreak:'æ¹ãã¼ã¸æ¿å
¥',unlink:'ãªã³ã¯åé¤',undo:'å
ã«æ»ã',redo:'ããç´ã',common:{browseServer:'ãµã¼ãã¼ãã©ã¦ã¶ã¼',url:'URL',protocol:'ãããã³ã«',upload:'ã¢ãããã¼ã',uploadSubmit:'ãµã¼ãã¼ã«éä¿¡',image:'ã¤ã¡ã¼ã¸',flash:'Flash',form:'ãã©ã¼ã ',checkbox:'ãã§ãã¯ããã¯ã¹',radio:'ã©ã¸ãªãã¿ã³',textField:'ï¼è¡ããã¹ã',textarea:'ããã¹ãã¨ãªã¢',hiddenField:'ä¸å¯è¦ãã£ã¼ã«ã',button:'
ãã¿ã³',select:'鏿ãã£ã¼ã«ã',imageButton:'ç»åãã¿ã³',notSet:'<ãªã>',id:'Id',name:'Name屿§',langDir:'æå表è¨ã®æ¹å',langDirLtr:'å·¦ããå³ (LTR)',langDirRtl:'å³ããå·¦ (RTL)',langCode:'è¨èªã³ã¼ã',longDescr:'longdesc屿§(é·æèª¬æ)',cssClass:'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',advisoryTitle:'Title屿§',cssStyle:'ã¹ã¿ã¤ã«ã·ã¼ã',ok:'OK',cancel:'ãã£ã³ã»ã«',close:'Close',preview:'Preview',generalTab:'å
¨è¬',advancedTab:'é«åº¦ãªè¨å®',validateNumberFailed:'å¤ãæ°ã§ã¯ããã¾ãã',confirmNewPage:'夿´å
容ãä¿åããã æ°ãããã¼ã¸ãéãã¦ãããããã§ããããï¼',confirmCancel:'ãªãã·ã§ã³è¨å®ã夿´ãã¾ããããã¤ã¢ãã°ãéãã¦ãããããã§ããããï¼',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)
',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, å©ç¨ä¸å¯è½</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'ç¹æ®æåæ¿å
¥',title:'ç¹æ®æå鏿',options:'Special Character Options'},link:{toolbar:'ãªã³ã¯æ¿å
¥/ç·¨é',other:'<ãã®ä»ã®>',menu:'ãªã³ã¯ç·¨é',title:'ãã¤ãã¼ãªã³ã¯',info:'ãã¤ãã¼ãªã³ã¯ æ
å ±',target:'ã¿ã¼ã²ãã',upload:'ã¢ãããã¼ã',advanced:'é«åº¦ãªè¨å®',type:'ãªã³ã¯ã¿ã¤ã',toUrl:'URL',toAnchor:'ãã®ãã¼ã¸ã®ã¢ã³ã«ã¼',toEmail:'E-Mail',targetFrame:'<ãã¬ã¼ã >',targetPopup:'<ãããã¢ããã¦ã£ã³ãã¦>',targetFrameName:'ç®çã®ãã¬ã¼ã å',targetPopupName:'ãããã¢ããã¦ã£ã³ãã¦å',popupFeatures:'ãããã¢ããã¦ã£ã³ãã¦ç¹å¾´',popupResizable:'ãµã¤ãºå¯å¤',popupStatusBar:'ã¹ãã¼ã¿ã¹ãã¼',popupLocationBar:'ãã±ã¼ã·ã§ã³ãã¼',popup
Toolbar:'ãã¼ã«ãã¼',popupMenuBar:'ã¡ãã¥ã¼ãã¼',popupFullScreen:'å
¨ç»é¢ã¢ã¼ã(IE)',popupScrollBars:'ã¹ã¯ãã¼ã«ãã¼',popupDependent:'éããã¦ã£ã³ãã¦ã«é£åãã¦éãã (Netscape)',popupWidth:'å¹
',popupLeft:'左端ããã®åº§æ¨ã§æå®',popupHeight:'é«ã',popupTop:'ä¸ç«¯ããã®åº§æ¨ã§æå®',id:'Id',langDir:'æå表è¨ã®æ¹å',langDirLTR:'å·¦ããå³ (LTR)',langDirRTL:'å³ããå·¦ (RTL)',acccessKey:'ã¢ã¯ã»ã¹ãã¼',name:'Name屿§',langCode:'æå表è¨ã®æ¹å',tabIndex:'ã¿ãã¤ã³ããã¯ã¹',advisoryTitle:'Title屿§',advisoryContentType:'Content Type屿§',cssClasses:'ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹',charset:'ãªã³ã¯charset屿§',styles:'ã¹ã¿ã¤ã«ã·ã¼ã',selectAnchor:'ã¢ã³ã«ã¼ã鏿',anchorName:'ã¢ã³ã«ã¼å',anchorId:'ã¨ã¬ã¡ã³ãID',emailAddress:'E-Mail ã¢ãã¬ã¹',emailSubject:'ä»¶å',emailBody:'æ¬æ',noAnchors:'(ããã¥ã¡ã³ãã«ããã¦å©ç¨å¯è½ãªã¢ã³ã«ã¼ã¯ãã
ã¾ããã)',noUrl:'ãªã³ã¯URLãå
¥åãã¦ãã ããã',noEmail:'ã¡ã¼ã«ã¢ãã¬ã¹ãå
¥åãã¦ãã ããã'},anchor:{toolbar:'ã¢ã³ã«ã¼æ¿å
¥/ç·¨é',menu:'ã¢ã³ã«ã¼ ããããã£',title:'ã¢ã³ã«ã¼ ããããã£',name:'ã¢ã³ã«ã¼å',errorName:'ã¢ã³ã«ã¼åãå¿
ãå
¥åãã¦ãã ããã'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading ze
ro (01, 02, 03, etc.)'},findAndReplace:{title:'æ¤ç´¢ãã¦ç½®æ',find:'æ¤ç´¢',replace:'ç½®ãæã',findWhat:'æ¤ç´¢ããæåå:',replaceWith:'ç½®æãããæåå:',notFoundMsg:'æå®ãããæååã¯è¦ã¤ããã¾ããã§ããã',matchCase:'大æåã¨å°æåãåºå¥ãã',matchWord:'åèªåä½ã§æ¢ã',matchCyclic:'ä¸å¨ãã',replaceAll:'ãã¹ã¦ç½®æã',replaceSuccessMsg:'%1 åç½®æãã¾ããã'},table:{toolbar:'ãã¼ãã«',title:'ãã¼ãã« ããããã£',menu:'ãã¼ãã« ããããã£',deleteTable:'ãã¼ãã«åé¤',rows:'è¡',columns:'å',border:'ãã¼ãã¼ãµã¤ãº',align:'ãã¼ãã«ã®æ´å',alignLeft:'å·¦',alignCenter:'ä¸å¤®',alignRight:'å³',width:'å¹
',widthPx:'ãã¯ã»ã«',widthPc:'ãã¼ã»ã³ã',widthUnit:'width unit',height:'é«ã',cellSpace:'ã»ã«å
ä½ç½',cellPad:'ã»ã«å
éé',caption:'ãã£ãã·ã§ã³',summary:'ãã¼ãã«ã®æ¦è¦',headers:'ãã¼ãã«ããã(th)',headersNone:'ãªã
',headersColumn:'åãã®åã®ã¿',headersRow:'åãã®è¡ã®ã¿',headersBoth:'両æ¹',invalidRows:'è¡ã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã',invalidCols:'åã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã',invalidBorder:'ãã¼ãã¼ãµã¤ãºã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidWidth:'å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidHeight:'é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidCellSpacing:'ã»ã«å
ä½ç½ã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidCellPadding:'ã»ã«å
ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',cell:{menu:'ã»ã«',insertBefore:'ã»ã«ã®åã«æ¿å
¥',insertAfter:'ã»ã«ã®å¾ã«æ¿å
¥',deleteCell:'ã»ã«åé¤',merge:'ã»ã«çµå',mergeRight:'å³ã«çµå',mergeDown:'ä¸ã«çµå',splitHorizontal:'ã»ã«ãæ°´å¹³æ¹ååå²',splitVertical:'ã»ã«ãåç´æ¹åã«åå²',title:'ã»ã«ããããã£',cellType:'ã»ã«ã¿ã¤ã',rowSpan:'縦å¹
(è¡æ°)',colSpan:'横å¹
(åæ°)',wordWrap:'æ
ãè¿ã',hAlign:'ã»ã«æ¨ªã®æ´å',vAlign:'ã»ã«ç¸¦ã®æ´å',alignTop:'ä¸',alignMiddle:'ä¸å¤®',alignBottom:'ä¸',alignBaseline:'ãã¼ã¹ã©ã¤ã³',bgColor:'èæ¯è²',borderColor:'ãã¼ãã¼ã«ã©ã¼',data:'ãã¼ãã«ãã¼ã¿(td)',header:'ãã¼ãã«ããã(th)',yes:'Yes',no:'No',invalidWidth:'ã»ã«å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidHeight:'ã»ã«é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidRowSpan:'縦å¹
(è¡æ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã',invalidColSpan:'横å¹
(åæ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã',chooseColor:'è²ã®é¸æ'},row:{menu:'è¡',insertBefore:'è¡ã®åã«æ¿å
¥',insertAfter:'è¡ã®å¾ã«æ¿å
¥',deleteRow:'è¡åé¤'},column:{menu:'ã«ã©ã ',insertBefore:'ã«ã©ã ã®åã«æ¿å
¥',insertAfter:'ã«ã©ã ã®å¾ã«æ¿å
¥',deleteColumn:'ååé¤'}},button:{title:'ãã¿ã³ ããããã£',text:'ããã¹ã (å¤)',type:'ã¿ã¤ã',typeBtn:'ãã¿ã³',typeSbm:'éä¿¡',typeRst:'ãªã»ãã'},check
boxAndRadio:{checkboxTitle:'ãã§ãã¯ããã¯ã¹ ããããã£',radioTitle:'ã©ã¸ãªãã¿ã³ ããããã£',value:'å¤',selected:'鏿æ¸ã¿'},form:{title:'ãã©ã¼ã ããããã£',menu:'ãã©ã¼ã ããããã£',action:'ã¢ã¯ã·ã§ã³',method:'ã¡ã½ãã',encoding:'ã¨ã³ã³ã¼ãã£ã³ã°'},select:{title:'鏿ãã£ã¼ã«ã ããããã£',selectInfo:'æ
å ±',opAvail:'å©ç¨å¯è½ãªãªãã·ã§ã³',value:'鏿é
ç®å¤',size:'ãµã¤ãº',lines:'è¡',chkMulti:'è¤æ°é
ç®é¸æã許å¯',opText:'鏿é
ç®å',opValue:'å¤',btnAdd:'追å ',btnModify:'ç·¨é',btnUp:'ä¸ã¸',btnDown:'ä¸ã¸',btnSetValue:'鏿ããå¤ãè¨å®',btnDelete:'åé¤'},textarea:{title:'ããã¹ãã¨ãªã¢ ããããã£',cols:'å',rows:'è¡'},textfield:{title:'ï¼è¡ããã¹ã ããããã£',name:'åå',value:'å¤',charWidth:'ãµã¤ãº',maxChars:'æå¤§é·',type:'ã¿ã¤ã',typeText:'ããã¹ã',typePass:'ãã¹ã¯ã¼ãå
¥å'},hidden:{title:'ä¸å¯è
¦ãã£ã¼ã«ã ããããã£',name:'åå',value:'å¤'},image:{title:'ã¤ã¡ã¼ã¸ ããããã£',titleButton:'ç»åãã¿ã³ ããããã£',menu:'ã¤ã¡ã¼ã¸ ããããã£',infoTab:'ã¤ã¡ã¼ã¸ æ
å ±',btnUpload:'ãµã¼ãã¼ã«éä¿¡',upload:'ã¢ãããã¼ã',alt:'代æ¿ããã¹ã',width:'å¹
',height:'é«ã',lockRatio:'ããã¯æ¯ç',unlockRatio:'Unlock Ratio',resetSize:'ãµã¤ãºãªã»ãã',border:'ãã¼ãã¼',hSpace:'横éé',vSpace:'縦éé',align:'è¡æã',alignLeft:'å·¦',alignRight:'å³',alertUrl:'ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã',linkTab:'ãªã³ã¯',button2Img:'鏿ãããã¿ã³ãç»åã«ç½®ãæãã¾ããï¼',img2Button:'鏿ããç»åããã¿ã³ã«ç½®ãæãã¾ããï¼',urlMissing:'ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be
a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash ããããã£',propertiesTab:'ããããã£',title:'Flash ããããã£',chkPlay:'åç',chkLoop:'ã«ã¼ãåç',chkMenu:'Flashã¡ãã¥ã¼å¯è½',chkFull:'ãã«ã¹ã¯ãªã¼ã³è¨±å¯',scale:'æ¡å¤§ç¸®å°è¨å®',scaleAll:'ãã¹ã¦è¡¨ç¤º',scaleNoBorder:'å¤ãè¦ããªãæ§ã«æ¡å¤§',scaleFit:'ä¸ä¸å·¦å³ã«ãã£ãã',access:'ã¹ããªã¯ãã¢ã¯ã»ã¹(AllowScriptAccess)',accessAlways:'ãã¹ã¦ã®å ´åã«éä¿¡å¯è½(Always)',accessSameDomain:'åä¸ãã¡ã¤ã³ã®ã¿ã«éä¿¡å¯è½(Same domain)',accessNever:'ãã¹ã¦ã®å ´åã«éä¿¡ä¸å¯è½(Never)',align:'è¡æã',alignLeft:'å·¦',alignAbsBottom:'ä¸é¨(絶対ç)',alignAbsMiddle:'ä¸å¤®(絶対ç)',alignBaseline:'ãã¼ã¹ã©ã¤ã³',alignBottom:'ä¸',alignMiddle:'ä¸å¤®',alignRight:'å³',alignTextTop:'ããã¹ãä¸é¨',alignTop:'ä¸',quality:'ç»è³ª',qualityBest:'å質åªå
',qualityHigh:'é«',qualityAutoHig
h:'èªå/é«',qualityMedium:'ä¸',qualityAutoLow:'èªå/ä½',qualityLow:'ä½',windowModeWindow:'æ¨æº',windowModeOpaque:'èæ¯ãä¸éæè¨å®',windowModeTransparent:'èæ¯ãééè¨å®',windowMode:'ã¦ã£ã³ãã¦ã¢ã¼ã',flashvars:'ãã©ãã·ã¥ã«æ¸¡ã夿°(FlashVars)',bgcolor:'èæ¯è²',width:'å¹
',height:'é«ã',hSpace:'横éé',vSpace:'縦éé',validateSrc:'ãªã³ã¯URLãå
¥åãã¦ãã ããã',validateWidth:'å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã',validateHeight:'é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã',validateHSpace:'横ééã¯æ°å¤ã§å
¥åãã¦ãã ããã',validateVSpace:'縦ééã¯æ°å¤ã§å
¥åãã¦ãã ããã'},spellCheck:{toolbar:'ã¹ãã«ãã§ãã¯',title:'ã¹ãã«ãã§ãã¯',notAvailable:'ç³ã訳ããã¾ãããç¾å¨ãµã¼ãã¹ãå©ç¨ãããã¨ãã§ãã¾ãã',errorLoading:'ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¹ãã¹ãèªè¾¼ã¿ã¨ã©ã¼: %s.',notInDic:'è¾æ¸ã«ããã¾ãã',changeTo:
'夿´',btnIgnore:'ç¡è¦',btnIgnoreAll:'ãã¹ã¦ç¡è¦',btnReplace:'ç½®æ',btnReplaceAll:'ãã¹ã¦ç½®æ',btnUndo:'ããç´ã',noSuggestions:'- 該å½ãªã -',progress:'ã¹ãã«ãã§ãã¯å¦çä¸...',noMispell:'ã¹ãã«ãã§ãã¯å®äº: ã¹ãã«ã®èª¤ãã¯ããã¾ããã§ãã',noChanges:'ã¹ãã«ãã§ãã¯å®äº: èªå¥ã¯å¤æ´ããã¾ããã§ãã',oneChange:'ã¹ãã«ãã§ãã¯å®äº: ï¼èªå¥å¤æ´ããã¾ãã',manyChanges:'ã¹ãã«ãã§ãã¯å®äº: %1 èªå¥å¤æ´ããã¾ãã',ieSpellDownload:'ã¹ãã«ãã§ãã«ã¼ãã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãããä»ãããã¦ã³ãã¼ããã¾ãã?'},smiley:{toolbar:'çµµæå',title:'é¡æåæ¿å
¥',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 ã¨ã¬ã¡ã³ã'},numberedlist:'段è½çªå·',bulletedlist:'ç®æ¡æ¸ã',indent:'ã¤ã³ãã³ã',outdent:'ã¤ã³ãã³ãè§£é¤',justify:{left:'å·¦æã',center:'ä¸å¤®æã',right:'峿ã',block:'
両端æã'},blockquote:'ãããã¯å¼ç¨',clipboard:{title:'è²¼ãä»ã',cutError:'ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®åãåãæä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+X)ã使ç¨ãã¦ãã ããã',copyError:'ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®ã³ãã¼æä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+C)ã使ç¨ãã¦ãã ããã',pasteMsg:'ãã¼ãã¼ã(<STRONG>Ctrl/Cmd+V</STRONG>)ã使ç¨ãã¦ã次ã®å
¥åã¨ãªã¢å
ã§è²¼ã£ã¦ã<STRONG>OK</STRONG>ãæ¼ãã¦ãã ããã',securityMsg:'ãã©ã¦ã¶ã®ã»ãã¥ãªãã£è¨å®ã«ãããã¨ãã£ã¿ã¯ã¯ãªãããã¼ãã»ãã¼ã¿ã«ç´æ¥ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ããããã®ã¦ã£ã³ãã¦ã¯è²¼ãä»ãæä½ãè¡ã度ã«è¡¨ç¤ºããã¾ãã',pasteArea:'Paste Area'},pastefromword:{
confirmCleanup:'è²¼ãä»ããè¡ãããã¹ãã¯ãã¯ã¼ãæç« ããã³ãã¼ããããã¨ãã¦ãã¾ããè²¼ãä»ããåã«ã¯ãªã¼ãã³ã°ãè¡ãã¾ããï¼',toolbar:'ã¯ã¼ãæç« ããè²¼ãä»ã',title:'ã¯ã¼ãæç« ããè²¼ãä»ã',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'ãã¬ã¼ã³ããã¹ãè²¼ãä»ã',title:'ãã¬ã¼ã³ããã¹ãè²¼ãä»ã'},templates:{button:'ãã³ãã¬ã¼ã(éå½¢)',title:'ãã³ãã¬ã¼ãå
容',options:'Template Options',insertOption:'ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¨ç½®æãããã¾ã',selectPromptMsg:'ã¨ãã£ã¿ã¼ã§ä½¿ç¨ãããã³ãã¬ã¼ãã鏿ãã¦ãã ããã<br>(ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¯å¤±ããã¾ã):',emptyListMsg:'(ãã³ãã¬ã¼ããå®ç¾©ããã¦ãã¾ãã)'},showBlocks:'ãããã¯è¡¨ç¤º',stylesCombo:{label:'ã¹ã¿ã¤ã«',panelTitle:'Formatting Styles',panelTitle1:'ãããã¯ã¹ã¿ã¤ã«',panelT
itle2:'ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«',panelTitle3:'ãªãã¸ã§ã¯ãã¹ã¿ã¤ã«'},format:{label:'ãã©ã¼ããã',panelTitle:'ãã©ã¼ããã',tag_p:'æ¨æº',tag_pre:'æ¸å¼ä»ã',tag_address:'ã¢ãã¬ã¹',tag_h1:'è¦åºã 1',tag_h2:'è¦åºã 2',tag_h3:'è¦åºã 3',tag_h4:'è¦åºã 4',tag_h5:'è¦åºã 5',tag_h6:'è¦åºã 6',tag_div:'æ¨æº (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ãã©ã³ã',voiceLabel:'ãã©ã³ã',panelTitle:'ãã©ã³ã'},fontSize:{label:'ãµã¤ãº',voiceLabel:'ãã©ã³ããµã¤ãº',panelTitle:'ãµã¤ãº'},colorButton:{textColorTitle:'ããã¹ãè²'
,bgColorTitle:'èæ¯è²',panelTitle:'Colors',auto:'èªå',more:'ãã®ä»ã®è²...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'ã¹ãã«ãã§ãã¯è¨å®(SCAYT)',opera_title:'Not supported by Opera',enable:'SCAYTæå¹',disable:'SCAYTç¡å¹',about:'SCAYTï¾ï¾ï½°ï½¼ï¾ï½®ï¾',toggl
e:'SCAYTåæ¿',options:'ãªãã·ã§ã³',langs:'è¨èª',moreSuggestions:'ä»ã®åè£',ignore:'ç¡è¦',ignoreAll:'ãã¹ã¦ç¡è¦',addWord:'èªå¥è¿½å ',emptyDic:'è¾æ¸åã¯å¿
ãå
¥åãã¦ãã ãã',optionsTab:'ãªãã·ã§ã³',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'è¨èª',dictionariesTab:'è¾æ¸',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'ã
ã¼ã¸ã§ã³æ
å ±'},about:{title:'CKEditorãã¼ã¸ã§ã³æ
å ±',dlgTitle:'CKEditorãã¼ã¸ã§ã³æ
å ±',moreInfo:'ã©ã¤ã»ã³ã¹æ
å ±ã®è©³ç´°ã¯ã¦ã§ããµã¤ãã«ã¦ç¢ºèªãã¦ãã ãã:',copy:'Copyright © $1. All rights reserved.'},maximize:'æå¤§å',minimize:'æå°å',fakeobjects:{anchor:'ã¢ã³ã«ã¼',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'ãã©ãã°ãã¦ãªãµã¤ãº',colordialog:{title:'è²é¸æ',options:'Color Options',highlight:'ãã¤ã©ã¤ã',selected:'鏿ãããè²',clear:'ã¯ãªã¢'},toolbarCollapse:'ãã¼ã«ãã¼ãéãã',toolbarExpand:'ãã¼ã«ãã¼ãéã',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ja']={"dir":"ltr","editor":"ãªããããã¹ãã¨ãã£ã¿","common":{"editorHelp":"ãã«ã㯠ALT 0 ãæ¼ãã¦ãã ãã","browseServer":"ãµã¼ãã¼ãã©ã¦ã¶ã¼","url":"URL","protocol":"ãããã³ã«","upload":"ã¢ãããã¼ã","uploadSubmit":"ãµã¼ãã¼ã«éä¿¡","image":"ã¤ã¡ã¼ã¸","flash":"Flash","form":"ãã©ã¼ã ","checkbox":"ãã§ãã¯ããã¯ã¹","radio":"ã©ã¸ãªãã¿ã³","textField":"ï¼è¡ããã¹ã","textarea":"ããã¹ãã¨ãªã¢","hiddenField":"ä¸å¯è¦ãã£ã¼ã«ã","button":"ãã¿ã³","select":"鏿ãã£ã¼ã«ã","imageButton":"ç»åãã¿ã³","notSet":"<ãªã>","id":"Id","name":"Name屿§","langDir":"æå表è¨ã®æ¹å","langDirLtr":"å·¦ããå³ (LTR)","langDirRtl":"å³ããå·¦ (RTL)","langCode":"è¨èªã³ã¼ã","longDescr":"longdesc屿§(é·æèª¬æ)","cssClass":"ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹","advisoryTitle":"Title屿§","cssStyle":"ã¹ã¿ã¤ã«ã·ã¼ã","ok":"OK","cancel":"ãã£ã³ã
»ã«","close":"éãã","preview":"ãã¬ãã¥ã¼","resize":"ãã©ãã°ãã¦ãªãµã¤ãº","generalTab":"å
¨è¬","advancedTab":"é«åº¦ãªè¨å®","validateNumberFailed":"å¤ãæ°ã§ã¯ããã¾ãã","confirmNewPage":"夿´å
容ãä¿åããã æ°ãããã¼ã¸ãéãã¦ãããããã§ããããï¼","confirmCancel":"ãªãã·ã§ã³è¨å®ã夿´ãã¾ããããã¤ã¢ãã°ãéãã¦ãããããã§ããããï¼","options":"ãªãã·ã§ã³","target":"ã¿ã¼ã²ãã","targetNew":"æ°ããã¦ã£ã³ã㦠(_空ç½)","targetTop":"æä¸é¨ã¦ã£ã³ã㦠(_ããã)","targetSelf":"åãã¦ã£ã³ã㦠(_åä¸)","targetParent":"親ã¦ã£ã³ã㦠(_親)","langDirLTR":"å·¦ããå³ (LTR)","langDirRTL":"å³ããå·¦ (RTL)","styles":"ã¹ã¿ã¤ã«","cssClasses":"ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹","width":"å¹
","height":"é«ã","align":"è¡æã","alignLeft":"å·¦","alignRight":"å³","alignCenter":"ä¸å¤®","alignTop":"ä¸","alignMiddle":"ä¸å¤®","alignBot
tom":"ä¸","invalidValue":"䏿£ãªå¤ã§ãã","invalidHeight":"é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidWidth":"å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"ãã¯ã»ã«æ°ãããã¯CSSã«ã»ããã§ããæ°å¤ãå
¥åãã¦ãã ããã(px,%,in,cm,mm,em,ex,pt,or pc)","unavailable":"%1<span class=\"cke_accessibility\">, å©ç¨ä¸å¯è½</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"CKEditorãã¼ã¸ã§ã³æ
å ±","help":"Check $1 for help.
","moreInfo":"ã©ã¤ã»ã³ã¹æ
å ±ã®è©³ç´°ã¯ã¦ã§ããµã¤ãã«ã¦ç¢ºèªãã¦ãã ãã:","title":"CKEditorãã¼ã¸ã§ã³æ
å ±","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"太å","italic":"æä½","strike":"æã¡æ¶ãç·","subscript":"æ·»ãå","superscript":"ä¸ä»ãæå","underline":"ä¸ç·"},"bidi":{"ltr":"ããã¹ãã®åã : å·¦ããå³ã¸","rtl":"ããã¹ãã®åã : å³ããå·¦ã¸"},"blockquote":{"toolbar":"ãããã¯å¼ç¨"},"clipboard":{"copy":"ã³ãã¼","copyError":"ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®ã³ãã¼æä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+C)ã使ç¨ãã¦ãã ããã","cut":"åãåã","cutError":"ãã©ã¦ã¶ã¼ã®ã»ãã¥ãªãã£è¨å®ã«ããã¨ãã£ã¿ã®åãåãæä½ãèªåã§å®è¡ãããã¨ãã§ãã¾ãããå®è¡ããã«ã¯æåã§ãã¼ãã¼ãã®(Ctrl/Cmd+X)ã使ç¨ãã¦ã
ã ããã","paste":"è²¼ãä»ã","pasteArea":"è²¼ãä»ãå ´æ","pasteMsg":"ãã¼ãã¼ã(<STRONG>Ctrl/Cmd+V</STRONG>)ã使ç¨ãã¦ã次ã®å
¥åã¨ãªã¢å
ã§è²¼ã£ã¦ã<STRONG>OK</STRONG>ãæ¼ãã¦ãã ããã","securityMsg":"ãã©ã¦ã¶ã®ã»ãã¥ãªãã£è¨å®ã«ãããã¨ãã£ã¿ã¯ã¯ãªãããã¼ãã»ãã¼ã¿ã«ç´æ¥ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ããããã®ã¦ã£ã³ãã¦ã¯è²¼ãä»ãæä½ãè¡ã度ã«è¡¨ç¤ºããã¾ãã","title":"è²¼ãä»ã"},"colorbutton":{"auto":"èªå","bgColorTitle":"èæ¯è²","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":
"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"ãã®ä»ã®è²...","panelTitle":"è²","textColorTitle":"ããã¹ãè²"},"colordialog":{"clear":"ã¯ãªã¢","highlight":"ãã¤ã©ã¤ã","options":"ã«ã©ã¼ãªãã·ã§ã³","selected":"鏿ãããè²","title":"è²é¸æ"},"templates":{"button":"ãã³ãã¬ã¼ã(éå½¢)","emptyListMsg":"(ãã³ãã¬ã¼ããå®ç¾©ããã¦ãã¾ãã)","insertOption":"ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¨ç½®æãããã¾ã","options":"ãã³ãã¬ã¼ããªãã·ã§ã³","selectPromptMsg":"ã¨ãã£ã¿ã¼ã§ä½¿ç¨ãããã³ãã¬ã¼ãã鏿ãã¦ãã ããã<br>(ç¾å¨ã®ã¨ãã£ã¿ã®å
容ã¯å¤±ããã¾ã):",
"title":"ãã³ãã¬ã¼ãå
容"},"contextmenu":{"options":"ã³ã³ããã¹ãã¡ãã¥ã¼ãªãã·ã§ã³"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Title屿§","cssClassInputLabel":"ã¹ã¿ã¤ã«ã·ã¼ãã¯ã©ã¹","edit":"Divã³ã³ãã ç·¨é","inlineStyleInputLabel":"ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«","langDirLTRLabel":"å·¦ããå³ (LTR)","langDirLabel":"æå表è¨ã®æ¹å","langDirRTLLabel":"å³ããå·¦ (RTL)","languageCodeInputLabel":" è¨èªã³ã¼ã","remove":"Divã³ã³ãã åé¤","styleSelectLabel":"ã¹ã¿ã¤ã«","title":"Divã³ã³ãã","toolbar":"Divã³ã³ãã"},"toolbar":{"toolbarCollapse":"ãã¼ã«ãã¼ãéãã","toolbarExpand":"ãã¼ã«ãã¼ãéã","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspat
h":{"eleLabel":"ã¨ã¬ã¡ã³ããã¹","eleTitle":"%1 ã¨ã¬ã¡ã³ã"},"list":{"bulletedlist":"ç®æ¡æ¸ã","numberedlist":"段è½çªå·"},"indent":{"indent":"ã¤ã³ãã³ã","outdent":"ã¤ã³ãã³ãè§£é¤"},"find":{"find":"æ¤ç´¢","findOptions":"Find Options","findWhat":"æ¤ç´¢ããæåå:","matchCase":"大æåã¨å°æåãåºå¥ãã","matchCyclic":"ä¸å¨ãã","matchWord":"åèªåä½ã§æ¢ã","notFoundMsg":"æå®ãããæååã¯è¦ã¤ããã¾ããã§ããã","replace":"ç½®ãæã","replaceAll":"ãã¹ã¦ç½®æã","replaceSuccessMsg":"%1 åç½®æãã¾ããã","replaceWith":"ç½®æãããæåå:","title":"æ¤ç´¢ãã¦ç½®æ"},"fakeobjects":{"anchor":"ã¢ã³ã«ã¼","flash":"Flash Animation","hiddenfield":"ä¸å¯è¦ãã£ã¼ã«ã","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"ã¹ããªã¯ãã¢ã¯ã»ã¹(AllowScriptAccess)","accessAlways":"ãã¹ã¦ã®å ´åã«éä¿¡å¯è½(Always)","accessNever":"ãã¹ã¦ã®å ´åã
«éä¿¡ä¸å¯è½(Never)","accessSameDomain":"åä¸ãã¡ã¤ã³ã®ã¿ã«éä¿¡å¯è½(Same domain)","alignAbsBottom":"ä¸é¨(絶対ç)","alignAbsMiddle":"ä¸å¤®(絶対ç)","alignBaseline":"ãã¼ã¹ã©ã¤ã³","alignTextTop":"ããã¹ãä¸é¨","bgcolor":"èæ¯è²","chkFull":"ãã«ã¹ã¯ãªã¼ã³è¨±å¯","chkLoop":"ã«ã¼ãåç","chkMenu":"Flashã¡ãã¥ã¼å¯è½","chkPlay":"åç","flashvars":"ãã©ãã·ã¥ã«æ¸¡ã夿°(FlashVars)","hSpace":"横éé","properties":"Flash ããããã£","propertiesTab":"ããããã£","quality":"ç»è³ª","qualityAutoHigh":"èªå/é«","qualityAutoLow":"èªå/ä½","qualityBest":"å質åªå
","qualityHigh":"é«","qualityLow":"ä½","qualityMedium":"ä¸","scale":"æ¡å¤§ç¸®å°è¨å®","scaleAll":"ãã¹ã¦è¡¨ç¤º","scaleFit":"ä¸ä¸å·¦å³ã«ãã£ãã","scaleNoBorder":"å¤ãè¦ããªãæ§ã«æ¡å¤§","title":"Flash ããããã£","vSpace":"縦éé","validateHSpace":"横ééã¯æ°å¤ã§å
¥åãã¦ãã ããã","validateSr
c":"ãªã³ã¯URLãå
¥åãã¦ãã ããã","validateVSpace":"縦ééã¯æ°å¤ã§å
¥åãã¦ãã ããã","windowMode":"ã¦ã£ã³ãã¦ã¢ã¼ã","windowModeOpaque":"èæ¯ãä¸éæè¨å®","windowModeTransparent":"èæ¯ãééè¨å®","windowModeWindow":"æ¨æº"},"font":{"fontSize":{"label":"ãµã¤ãº","voiceLabel":"ãã©ã³ããµã¤ãº","panelTitle":"ãµã¤ãº"},"label":"ãã©ã³ã","panelTitle":"ãã©ã³ã","voiceLabel":"ãã©ã³ã"},"forms":{"button":{"title":"ãã¿ã³ ããããã£","text":"ããã¹ã (å¤)","type":"ã¿ã¤ã","typeBtn":"ãã¿ã³","typeSbm":"éä¿¡","typeRst":"ãªã»ãã"},"checkboxAndRadio":{"checkboxTitle":"ãã§ãã¯ããã¯ã¹ ããããã£","radioTitle":"ã©ã¸ãªãã¿ã³ ããããã£","value":"å¤","selected":"鏿æ¸ã¿"},"form":{"title":"ãã©ã¼ã ããããã£","menu":"ãã©ã¼ã ããããã£","action":"ã¢ã¯ã·ã§ã³","method":"ã¡ã½ãã","encoding":"ã¨ã³ã³ã¼ãã£ã³ã°"},"hidden":{"ti
tle":"ä¸å¯è¦ãã£ã¼ã«ã ããããã£","name":"åå","value":"å¤"},"select":{"title":"鏿ãã£ã¼ã«ã ããããã£","selectInfo":"æ
å ±","opAvail":"å©ç¨å¯è½ãªãªãã·ã§ã³","value":"鏿é
ç®å¤","size":"ãµã¤ãº","lines":"è¡","chkMulti":"è¤æ°é
ç®é¸æã許å¯","opText":"鏿é
ç®å","opValue":"å¤","btnAdd":"追å ","btnModify":"ç·¨é","btnUp":"ä¸ã¸","btnDown":"ä¸ã¸","btnSetValue":"鏿ããå¤ãè¨å®","btnDelete":"åé¤"},"textarea":{"title":"ããã¹ãã¨ãªã¢ ããããã£","cols":"å","rows":"è¡"},"textfield":{"title":"ï¼è¡ããã¹ã ããããã£","name":"åå","value":"å¤","charWidth":"ãµã¤ãº","maxChars":"æå¤§é·","type":"ã¿ã¤ã","typeText":"ããã¹ã","typePass":"ãã¹ã¯ã¼ãå
¥å","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ãã©ã¼ããã","panelTitle":"ãã©ã¼ããã","tag_address":"ã¢ãã¬ã¹","tag_div":"æ¨
æº (DIV)","tag_h1":"è¦åºã 1","tag_h2":"è¦åºã 2","tag_h3":"è¦åºã 3","tag_h4":"è¦åºã 4","tag_h5":"è¦åºã 5","tag_h6":"è¦åºã 6","tag_p":"æ¨æº","tag_pre":"æ¸å¼ä»ã"},"horizontalrule":{"toolbar":"横罫ç·"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã","alt":"代æ¿ããã¹ã","border":"ãã¼ãã¼","btnUpload":"ãµã¼ãã¼ã«éä¿¡","button2Img":"鏿ãããã¿ã³ãç»åã«ç½®ãæãã¾ããï¼","hSpace":"横éé","img2Button":"鏿ããç»åããã¿ã³ã«ç½®ãæãã¾ããï¼","infoTab":"ã¤ã¡ã¼ã¸ æ
å ±","linkTab":"ãªã³ã¯","lockRatio":"ããã¯æ¯ç","menu":"ã¤ã¡ã¼ã¸ ããããã£","resetSize":"ãµã¤ãºãªã»ãã","title":"ã¤ã¡ã¼ã¸ ããããã£","titleButton":"ç»åãã¿ã³ ããããã£","upload":"ã¢ãããã¼ã"
,"urlMissing":"ã¤ã¡ã¼ã¸ã®URLãå
¥åãã¦ãã ããã","vSpace":"縦éé","validateBorder":"ãã¼ãã¼ã¯æ°å¤ã§å
¥åãã¦ãã ããã","validateHSpace":"横ééã¯æ°å¤ã§å
¥åãã¦ãã ããã","validateVSpace":"縦ééã¯æ°å¤ã§å
¥åãã¦ãã ããã"},"smiley":{"options":"çµµæåãªãã·ã§ã³","title":"é¡æåæ¿å
¥","toolbar":"çµµæå"},"justify":{"block":"両端æã","center":"ä¸å¤®æã","left":"å·¦æã","right":"峿ã"},"link":{"acccessKey":"ã¢ã¯ã»ã¹ãã¼","advanced":"é«åº¦ãªè¨å®","advisoryContentType":"Content Type屿§","advisoryTitle":"Title屿§","anchor":{"toolbar":"ã¢ã³ã«ã¼æ¿å
¥/ç·¨é","menu":"ã¢ã³ã«ã¼ ããããã£","title":"ã¢ã³ã«ã¼ ããããã£","name":"ã¢ã³ã«ã¼å","errorName":"ã¢ã³ã«ã¼åãå¿
ãå
¥åãã¦ãã ããã","remove":"Remove Anchor"},"anchorId":"ã¨ã¬ã¡ã³ãID","anchorName":"ã¢ã³ã«ã¼å","charset":"ãªã³ã¯charset屿§","cssClasses":"ã¹ã
¿ã¤ã«ã·ã¼ãã¯ã©ã¹","emailAddress":"E-Mail ã¢ãã¬ã¹","emailBody":"æ¬æ","emailSubject":"ä»¶å","id":"Id","info":"ãã¤ãã¼ãªã³ã¯ æ
å ±","langCode":"è¨èªã³ã¼ã","langDir":"æå表è¨ã®æ¹å","langDirLTR":"å·¦ããå³ (LTR)","langDirRTL":"å³ããå·¦ (RTL)","menu":"ãªã³ã¯ç·¨é","name":"Name屿§","noAnchors":"(ããã¥ã¡ã³ãã«ããã¦å©ç¨å¯è½ãªã¢ã³ã«ã¼ã¯ããã¾ããã)","noEmail":"ã¡ã¼ã«ã¢ãã¬ã¹ãå
¥åãã¦ãã ããã","noUrl":"ãªã³ã¯URLãå
¥åãã¦ãã ããã","other":"<ãã®ä»ã®>","popupDependent":"éããã¦ã£ã³ãã¦ã«é£åãã¦éãã (Netscape)","popupFeatures":"ãããã¢ããã¦ã£ã³ãã¦ç¹å¾´","popupFullScreen":"å
¨ç»é¢ã¢ã¼ã(IE)","popupLeft":"左端ããã®åº§æ¨ã§æå®","popupLocationBar":"ãã±ã¼ã·ã§ã³ãã¼","popupMenuBar":"ã¡ãã¥ã¼ãã¼","popupResizable":"ãµã¤ãºå¯å¤","popupScrollBars":"ã¹ã¯ãã¼ã«ãã¼","popupStatusBar":"ã¹ãã¼ã¿ã¹ã
ã¼","popupToolbar":"ãã¼ã«ãã¼","popupTop":"ä¸ç«¯ããã®åº§æ¨ã§æå®","rel":"Relationship","selectAnchor":"ã¢ã³ã«ã¼ã鏿","styles":"ã¹ã¿ã¤ã«ã·ã¼ã","tabIndex":"ã¿ãã¤ã³ããã¯ã¹","target":"ã¿ã¼ã²ãã","targetFrame":"<ãã¬ã¼ã >","targetFrameName":"ç®çã®ãã¬ã¼ã å","targetPopup":"<ãããã¢ããã¦ã£ã³ãã¦>","targetPopupName":"ãããã¢ããã¦ã£ã³ãã¦å","title":"ãã¤ãã¼ãªã³ã¯","toAnchor":"ãã®ãã¼ã¸ã®ã¢ã³ã«ã¼","toEmail":"E-Mail","toUrl":"URL","toolbar":"ãªã³ã¯æ¿å
¥/ç·¨é","type":"ãªã³ã¯ã¿ã¤ã","unlink":"ãªã³ã¯åé¤","upload":"ã¢ãããã¼ã"},"liststyle":{"armenian":"ã¢ã«ã¡ãã¢æ°å","bulletedTitle":"ç®æ¡æ¸ã ããããã£","circle":"ç½ä¸¸","decimal":"æ°å (1, 2, 3, etc.)","decimalLeadingZero":"ä¸ä½æ¡ã«0ãã¤ããæ°å (01, 02, 03, etc.)","disc":"é»ä¸¸","georgian":"ã°ã«ã¸ã¢æ°å (an, ban, gan, etc.)","lowerAlpha":"å°æåã¢ã«ãã¡ãã
ã (a, b, c, d, e, etc.)","lowerGreek":"å°æåã®ãªã·ã£æå (alpha, beta, gamma, etc.)","lowerRoman":"å°æåãã¼ãæ°å (i, ii, iii, iv, v, etc.)","none":"ãªã","notset":"<ãªã>","numberedTitle":"段è½çªå· ããããã£","square":"åè§","start":"éå§","type":"ã¿ã¤ã","upperAlpha":"大æåã¢ã«ãã¡ããã (A, B, C, D, E, etc.)","upperRoman":"大æåãã¼ãæ°å (I, II, III, IV, V, etc.)","validateStartNumber":"ãªã¹ãéå§çªå·ã¯æ°å¤ã§å
¥åãã¦ãã ããã"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"æå¤§å","minimize":"æå°å"},"newpage":{"toolbar":"æ°ãããã¼ã¸"},"pagebreak":{"alt":"Page Break","toolbar":"æ¹ãã¼ã¸æ¿å
¥"},"pastetext":{"button":"ãã¬ã¼ã³ããã¹ãè²¼ãä»ã","title":"ãã¬ã¼ã³ããã¹ãè²¼ãä»ã"},"pastefromword":{"confirmCleanup":"è²¼ãä»ããè¡ãããã¹ãã¯ãã¯ã¼ãæç« ããã³ãã¼ããããã¨ãã¦ãã¾ããè²¼ãä»ã
ãåã«ã¯ãªã¼ãã³ã°ãè¡ãã¾ããï¼","error":"å
é¨ã¨ã©ã¼ã«ããè²¼ãä»ãããã¼ã¿ãã¯ãªã¢ã§ãã¾ããã§ãã","title":"ã¯ã¼ãæç« ããè²¼ãä»ã","toolbar":"ã¯ã¼ãæç« ããè²¼ãä»ã"},"preview":{"preview":"ãã¬ãã¥ã¼"},"print":{"toolbar":"å°å·"},"removeformat":{"toolbar":"ãã©ã¼ãããåé¤"},"save":{"toolbar":"ä¿å"},"selectall":{"toolbar":"ãã¹ã¦é¸æ"},"showblocks":{"toolbar":"ãããã¯è¡¨ç¤º"},"sourcearea":{"toolbar":"ã½ã¼ã¹"},"specialchar":{"options":"ç¹æ®æåãªãã·ã§ã³","title":"ç¹æ®æå鏿","toolbar":"ç¹æ®æåæ¿å
¥"},"scayt":{"about":"SCAYTï¾ï¾ï½°ï½¼ï¾ï½®ï¾","aboutTab":"ãã¼ã¸ã§ã³æ
å ±","addWord":"èªå¥è¿½å ","allCaps":"å
¨ã¦å¤§æåã®åèªãç¡è¦","dic_create":"ç»é²","dic_delete":"åé¤","dic_field_name":"è¾æ¸å","dic_info":"å§ãã¦ã¼ã¶ã¼ãã£ã¬ã¯ããªã¯ãCookieã«ä¿åããã¾ããä½ã Cookie ã¯ãµã¤ãºã«å¶éãããã¾ãã
ã¦ã¼ã¶ã¼ãã£ã¬ã¯ããªãCookieã«ä¿åã§ããªããµã¤ãºã«å°éããã¨ãã£ã¬ã¯ããªã¯ãµã¼ãã¼ä¸ã«ä¿åããã¾ããå人ã®ãã£ã¬ã¯ããªããµã¼ãã¼ä¸ã«ä¿åããã«ã¯ããã£ã¬ã¯ããªåãæç¤ºããå¿
è¦ãããã¾ããããæ¢ã«ä¿åããããã£ã¬ã¯ããªãããå ´åããã®ååãå
¥åããå
ã«æ»ããã¿ã³ãæ¼ãã¦ãã ããã","dic_rename":"åå夿´","dic_restore":"å
ã«æ»ã","dictionariesTab":"è¾æ¸","disable":"SCAYTç¡å¹","emptyDic":"è¾æ¸åã¯å¿
ãå
¥åãã¦ãã ãã","enable":"SCAYTæå¹","ignore":"ç¡è¦","ignoreAll":"ãã¹ã¦ç¡è¦","ignoreDomainNames":"ãã¡ã¤ã³åãç¡è¦","langs":"è¨èª","languagesTab":"è¨èª","mixedCase":"大æåå°æåæ··å¨ã®åèªãç¡è¦","mixedWithDigits":"æ°åä»ãåèªãç¡è¦","moreSuggestions":"ä»ã®åè£","opera_title":"Operaã§ã¯ãµãã¼ãããã¾ãã","options":"ãªãã·ã§ã³","optionsTab":"ãªãã·ã§ã
³","title":"ã¹ãã«ãã§ãã¯è¨å®(SCAYT)","toggle":"SCAYTåæ¿","noSuggestions":"No suggestion"},"stylescombo":{"label":"ã¹ã¿ã¤ã«","panelTitle":"ã¹ã¿ã¤ã«","panelTitle1":"ãããã¯ã¹ã¿ã¤ã«","panelTitle2":"ã¤ã³ã©ã¤ã³ã¹ã¿ã¤ã«","panelTitle3":"ãªãã¸ã§ã¯ãã¹ã¿ã¤ã«"},"table":{"border":"ãã¼ãã¼ãµã¤ãº","caption":"ãã£ãã·ã§ã³","cell":{"menu":"ã»ã«","insertBefore":"ã»ã«ã®åã«æ¿å
¥","insertAfter":"ã»ã«ã®å¾ã«æ¿å
¥","deleteCell":"ã»ã«åé¤","merge":"ã»ã«çµå","mergeRight":"å³ã«çµå","mergeDown":"ä¸ã«çµå","splitHorizontal":"ã»ã«ãæ°´å¹³æ¹ååå²","splitVertical":"ã»ã«ãåç´æ¹åã«åå²","title":"ã»ã«ããããã£","cellType":"ã»ã«ã¿ã¤ã","rowSpan":"縦å¹
(è¡æ°)","colSpan":"横å¹
(åæ°)","wordWrap":"æãè¿ã","hAlign":"ã»ã«æ¨ªã®æ´å","vAlign":"ã»ã«ç¸¦ã®æ´å","alignBaseline":"ãã¼ã¹ã©ã¤ã³","bgColor":"èæ¯è²","borderColor":"ãã¼ãã¼ã«ã©ã¼","data":"ã
ã¼ãã«ãã¼ã¿(td)","header":"ãã¼ãã«ããã(th)","yes":"Yes","no":"No","invalidWidth":"ã»ã«å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidHeight":"ã»ã«é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidRowSpan":"縦å¹
(è¡æ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidColSpan":"横å¹
(åæ°)ã¯æ°å¤ã§å
¥åãã¦ãã ããã","chooseColor":"è²ã®é¸æ"},"cellPad":"ã»ã«å
éé","cellSpace":"ã»ã«å
ä½ç½","column":{"menu":"ã«ã©ã ","insertBefore":"ã«ã©ã ã®åã«æ¿å
¥","insertAfter":"ã«ã©ã ã®å¾ã«æ¿å
¥","deleteColumn":"ååé¤"},"columns":"å","deleteTable":"ãã¼ãã«åé¤","headers":"ãã¼ãã«ããã(th)","headersBoth":"両æ¹","headersColumn":"åãã®åã®ã¿","headersNone":"ãªã","headersRow":"åãã®è¡ã®ã¿","invalidBorder":"ãã¼ãã¼ãµã¤ãºã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidCellPadding":"ã»ã«å
ééã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidCellSpacing":"ã»ã«å
ä
½ç½ã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidCols":"åã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã","invalidHeight":"é«ãã¯æ°å¤ã§å
¥åãã¦ãã ããã","invalidRows":"è¡ã¯0ãã大ããªæ°å¤ã§å
¥åãã¦ãã ããã","invalidWidth":"å¹
ã¯æ°å¤ã§å
¥åãã¦ãã ããã","menu":"ãã¼ãã« ããããã£","row":{"menu":"è¡","insertBefore":"è¡ã®åã«æ¿å
¥","insertAfter":"è¡ã®å¾ã«æ¿å
¥","deleteRow":"è¡åé¤"},"rows":"è¡","summary":"ãã¼ãã«ã®æ¦è¦","title":"ãã¼ãã« ããããã£","toolbar":"ãã¼ãã«","widthPc":"ãã¼ã»ã³ã","widthPx":"ãã¯ã»ã«","widthUnit":"ã¦ããã"},"undo":{"redo":"ããç´ã","undo":"å
ã«æ»ã"},"wsc":{"btnIgnore":"ç¡è¦","btnIgnoreAll":"ãã¹ã¦ç¡è¦","btnReplace":"ç½®æ","btnReplaceAll":"ãã¹ã¦ç½®æ","btnUndo":"ããç´ã","changeTo":"夿´","errorLoading":"ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¹ãã¹ãèªè¾¼ã¿ã¨ã©ã¼: %s.","ieSpellDownload":"ã¹
ãã«ãã§ãã«ã¼ãã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãããä»ãããã¦ã³ãã¼ããã¾ãã?","manyChanges":"ã¹ãã«ãã§ãã¯å®äº: %1 èªå¥å¤æ´ããã¾ãã","noChanges":"ã¹ãã«ãã§ãã¯å®äº: èªå¥ã¯å¤æ´ããã¾ããã§ãã","noMispell":"ã¹ãã«ãã§ãã¯å®äº: ã¹ãã«ã®èª¤ãã¯ããã¾ããã§ãã","noSuggestions":"- 該å½ãªã -","notAvailable":"ç³ã訳ããã¾ãããç¾å¨ãµã¼ãã¹ãå©ç¨ãããã¨ãã§ãã¾ãã","notInDic":"è¾æ¸ã«ããã¾ãã","oneChange":"ã¹ãã«ãã§ãã¯å®äº: ï¼èªå¥å¤æ´ããã¾ãã","progress":"ã¹ãã«ãã§ãã¯å¦çä¸...","title":"ã¹ãã«ãã§ãã¯","toolbar":"ã¹ãã«ãã§ãã¯"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ka.js b/share/static/RichText/lang/ka.js
new file mode 100644
index 0000000..0cb5163
--- /dev/null
+++ b/share/static/RichText/lang/ka.js
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.lang['ka']={"dir":"ltr","editor":"á¢áá¥á¡á¢áá¡ á áááá¥á¢áá á","common":{"editorHelp":"áááááá áá ALT 0-á¡ ááá®ááá áááá¡ ááá¡áá¦áááá","browseServer":"á¡áá ááá áá ááááááááá ááá","url":"URL","protocol":"áá áá¢ááááá","upload":"áá¢ááá ááá","uploadSubmit":"á¡áá ááá áá áááááááá","image":"á¡á£á ááá","flash":"Flash","form":"á¤áá áá","checkbox":"ááááá¨áááá¡ á¦ááááá","radio":"áááá á©áááá¡ á¦ááááá","textField":"á¢áá¥á¡á¢á£á á áááá","textarea":"á¢áá¥á¡á¢á£á á áá á","hiddenField":"áááá£áá áááá","button":"á¦ááááá","select":"áá á©áááá¡ áááá","imageButton":"á¡á£á áááááá á¦ááááá","notSet":"<áá áá¤áá á>","id":"Id","name":"á¡áá®áá
á","langDir":"áááá¡ ááááá áá£áááá","langDirLtr":"ááá áªá®ááááá ááá á¯áááá (LTR)","langDirRtl":"ááá á¯áááááá ááá áªá®ááá (RTL)","langCode":"áááá¡ áááá","longDescr":"áááá áá¦á¬áá áá¡ URL","cssClass":"CSS áááá¡á","advisoryTitle":"á¡áááá£á á","cssStyle":"CSS á¡á¢ááá","ok":"áááá®","cancel":"ááá£á¥áááá","close":"ááá®á£á áá","preview":"ááááá®áááá","resize":"ááá¬áá ááááá¡ á¨áá¡ááªáááááá","generalTab":"ááá¤áá áááªáá","advancedTab":"ááá¤áá ááááá£áá","validateNumberFailed":"áá¡ áááá¨ááááááá áá áá á ááªá®áá.","confirmNewPage":"áá áááá£áááá¢á¨á á§áááá á©áá£á¬áá ááá áªááááááá áááááá áááá. ááá á¬
áá£áááá£áá á®áá á á áá áá®ááá áááá ááá¡ á©áá¢ááá ááá áááááá?","confirmCancel":"áááááá áá ááá áááá¢á á á¨ááªáááááá, ááá á¬áá£áááá£ááá á®áá á á áá á¤ááá¯á áá¡ ááá®á£á áá áá¡á£á á?","options":"ááá áááá¢á ááá","target":"ááá®á¡ááá¡ áááááá","targetNew":"áá®ááá á¤ááá¯áá á (_blank)","targetTop":"áááá á¤ááá¯áá á (_top)","targetSelf":"ááááá á¤ááá¯áá á (_self)","targetParent":"áá¨ááááá á¤ááá¯áá á (_parent)","langDirLTR":"ááá áªá®ááááá ááá á¯áááá (LTR)","langDirRTL":"ááá á¯áááááá ááá áªá®ááá (RTL)","styles":"á¡á¢ááá","cssClasses":"CSS áááá¡á","width":"á¡ááááá","height":"á¡áááá¦áá","alig
n":"á¡á¬áá ááá","alignLeft":"ááá áªá®ááá","alignRight":"ááá á¯áááá","alignCenter":"á¨á£á","alignTop":"áááááá","alignMiddle":"á¨á£á","alignBottom":"á¥áááááá","invalidValue":"Invalid value.","invalidHeight":"á¡áááá¦áá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidWidth":"á¡ááááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTo
oltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, ááá£á¬áááááááá</span>"},"about":{"copy":"Copyright © $1. á§áááá á£á¤áááá áááªá£ááá.","dlgTitle":"CKEditor-áá¡ á¨áá¡áá®áá","help":"ááá®ááá áááá¡áááá¡ áá®áááá $1.","moreInfo":"áááªáááááá¡ ááá¤áá áááªááá¡áááá¡ áá¬áááá á©áááá¡ á¡ááá¢á¡:","title":"CKEditor-áá¡ á¨áá¡áá®áá","userGuide":"CKEditor-áá¡ áááá®ááá ááááá¡ á¡áá®áááá«á¦áááááá"},"basicstyles":{"bold":"áá¡á®áááá","italic":"ááá®á ááá","strike":"ááááá®ááá£áá","subscript":"ááááá¥á¡á","superscript":"á®áá áá¡á®á","underline":"ááá®ááá£áá"},"bidi":{"ltr":
"á¢áá¥á¡á¢áá¡ ááááá áá£áááá ááá áªá®ááááá ááá á¯áááá","rtl":"á¢áá¥á¡á¢áá¡ ááááá áá£áááá ááá á¯áááááá ááá áªá®ááá"},"blockquote":{"toolbar":"áªáá¢áá¢á"},"clipboard":{"copy":"áá¡áá","copyError":"áá¥áááá áá áá£ááá áá¡ á£á¡áá¤á áá®ááááá¡ ááá áááá¢á ááá áá áá«áááá áá¡ááá¡ áááá ááªááá¡ ááá¢áááá¢á£á áá áááá®áá áªááááááá¡ á¡áá¨á£áááááá¡. áááááá§áááá ááááááá¢á£á á áááá¡áááá¡ (Ctrl/Cmd+C).","cut":"ááááá á","cutError":"áá¥áááá áá áá£ááá áá¡ á£á¡áá¤á áá®ááááá¡ ááá áááá¢á ááá áá áá«áááá ááááá áá¡ áááá ááªááá¡ ááá¢áááá¢á£á á
á áááá®áá áªááááááá¡ á¡áá¨á£áááááá¡. áááááá§áááá ááááááá¢á£á á áááá¡áááá¡ (Ctrl/Cmd+X).","paste":"á©áá¡áá","pasteArea":"á©áá¡ááá¡ áá á","pasteMsg":"á©áá¡ááá áá áá áá¡ á¨ááááá ááááááá¢á£á áá¡ ááááá§áááááá (<strong>Ctrl/Cmd+V</strong>) áá áááááá áá OK-á¡","securityMsg":"áá¥áááá áá áá£ááá áá¡ á£á¡áá¤á áá®ááááá¡ ááá áááá¢á ááá áá áá«áááá clipboard-áá¡ áááááªáááááá¡ á¬áááááá¡ á£á¤ááááá¡. ááááá á£ááá á©áá¡ááá á¢áá¥á¡á¢á áá á¤ááá¯áá áá¨á.","title":"á©áá¡áá"},"colorbutton":{"auto":"ááá¢áááá¢á£á á","bgColorTitle":"á¤áááá¡ á¤áá á","colors":{"000":"á¨ááá","800000":"á
á£á¥á á¨ááááá¡á¤áá á","8B4513":"á§áááá¡á¤áá á","2F4F4F":"áááá£á á¯á áááªá áá¡á¤áá á","008080":"á©ááá¥á ááá áá£á á¯á","000080":"áá£á¥á áá£á á¯á","4B0082":"ááá¡ááááá¡á¤áá á","696969":"áá£á¥á áááªá áá¡á¤áá á","B22222":"ááá£á áá¡á¤áá á","A52A2A":"áá£á¥á á§áááá¡á¤áá á","DAA520":"ááá§áááááá","006400":"áá£á¥á áá¬áááá","40E0D0":"áªáá¡á¤áá á","0000CD":"áááááá áá áá£á á¯á","800080":"ááá¡á¤áá á","808080":"áááªá áá¡á¤áá á","F00":"á¬ááááá","FF8C00":"áá£á¥á á¡á¢áá¤áááá¡á¤áá á","FFD700":"áá¥á áá¡á¤áá á","008000":"áá¬áááá","0FF":"á¦áá áªáá¡á¤áá á","00F":"áá£á á¯á","EE82EE":"ááá¡á¤áá á","A9A9A9":"áááªá áááªá áá¡á¤áá á","F
FA07A":"á©ááá¥á ááá ááá ááá¡á¤áá á","FFA500":"á¡á¢áá¤áááá¡á¤áá á","FFFF00":"á§áááááá","00FF00":"áá£á á¯á","AFEEEE":"áªáá¡á¤áá á","ADD8E6":"á¦áá áá£á á¯á","DDA0DD":"á¦áá ááá¡á¤áá á","D3D3D3":"á¦áá áááªá áá¡á¤áá á","FFF0F5":"á¦áá ááá ááá¡á¤áá á","FAEBD7":"á¦áá á§áááá¡á¤áá á","FFFFE0":"áááááá á§áááááá","F0FFF0":"á¦áá áá¬áááá","F0FFFF":"á¦áá áªáá¡á¤áá á 2","F0F8FF":"á¦áá áªáá¡á¤áá á 3","E6E6FA":"á¦áá ááá¡á¤áá á 2","FFF":"áááá á"},"more":"ááá¢á á¤áá á...","panelTitle":"á¤áá ááá","textColorTitle":"á¢áá¥á¡á¢áá¡ á¤áá á"},"colordialog":{"clear":"ááá¡á£á¤áááááá","highlight":"á©áááááá","options":"á¤áá áá¡ ááá áááá¢á ááá","selected":"á
á á©áá£áá á¤áá á","title":"á¤áá áá¡ á¨ááªááá"},"templates":{"button":"ááá áááá","emptyListMsg":"(ááá áá áá áá áááá¡ááá¦áá á£áá)","insertOption":"áááááááá á á¨áááááá¡áá¡ á¨ááªááá","options":"ááá ááááá¡ ááá áááá¢á ááá","selectPromptMsg":"ááá á©ááá ááá áá á áááá¥á¢áá áá¡áááá¡","title":"ááá áááá"},"contextmenu":{"options":"áááá¢áá¥á¡á¢á£á á ááááá£á¡ ááá áááá¢á ááá"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"á¡áááá£á á","cssClassInputLabel":"CSS áááá¡ááá","edit":"Div-áá¡ á áááá¥á¢áá ááá","inlineStyleInputLabel":"áááááá áá£áá á¡á¢ááá","langDirLTRLabel":"ááá áªá®ááááá ááá á¯ááá᪠(LTR)","langDirLabel":"áááá¡ á
áááá áá£áááá","langDirRTLLabel":"ááá á¯áááááá ááá áªá®ááá (RTL)","languageCodeInputLabel":"áááá¡ áááá","remove":"Div-áá¡ á¬áá¨áá","styleSelectLabel":"á¡á¢ááá","title":"Div áááá¢ááááá áá¡ á¨áá¥ááá","toolbar":"Div áááá¢ááááá áá¡ á¨áá¥ááá"},"toolbar":{"toolbarCollapse":"á®ááá¡áá¬á§ááá ááááá¡ á¨áá¬ááá","toolbarExpand":"á®ááá¡áá¬á§ááá ááááá¡ ááááá¬ááá","toolbarGroups":{"document":"áááá£áááá¢á","clipboard":"Clipboard/ááá£á¥áááá","editing":"á áááá¥á¢áá ááá","forms":"á¤áá áááá","basicstyles":"á«áá ááááá á¡á¢ááááá","paragraph":"áááááªá","links":"ááá£áááá","insert":"á©áá¡áá","styles":"á¡á¢ááááá","colors":"á¤áá ááá","tools":"á®ááá
¡áá¬á§áááá"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"áááááá¢áá¡ ááá","eleTitle":"%1 ááááááá¢á"},"list":{"bulletedlist":"á¦áááááá á¡áá","numberedlist":"áááááááá ááá á¡áá"},"indent":{"indent":"ááá¢áá á¨áá¬ááá","outdent":"áááááááá á¨áá¬ááá"},"find":{"find":"á«áááá","findOptions":"Find Options","findWhat":"á¡áá«áááááá á¢áá¥á¡á¢á:","matchCase":"áááá áá ááá¢áá á áá¡ááááá¡ ááááá®áááá","matchCyclic":"áááá£áááá¢áá¡ ááááá¨á ááá¡áááá¡ ááá á ááááááá ááá¬á§ááá","matchWord":"ááááá á¡áá¢á§ááá¡ ááááá®áááá","notFoundMsg":"áááááááá£áá á¢áá¥á¡á¢á áá áááá«áááá.","replace":"á¨ááªááá","replaceAll":"
á§ááááá¡ á¨ááªááá","replaceSuccessMsg":"%1 ááá«áááááá á¨áááªáááá.","replaceWith":"á¨ááªáááá¡ á¢áá¥á¡á¢á:","title":"á«áááá áá á¨ááªááá"},"fakeobjects":{"anchor":"á¦á£áá","flash":"Flash ááááááªáá","hiddenfield":"áááá£áá áááá","iframe":"IFrame","unknown":"á£áªáááá ááááá¥á¢á"},"flash":{"access":"á¡áá ááá¢áá¡ á¬ááááá","accessAlways":"á§áááááááá¡","accessNever":"áá áá¡áá áá¡","accessSameDomain":"ááááá áááááá","alignAbsBottom":"á©áá á©áá¡ á¥áááááá ááá¬áááá¡ á¡á¬áá ááá á¢áá¥á¡á¢áá¡áááá¡","alignAbsMiddle":"á©áá á©áá¡ á¨á£á ááá¬áááá¡ á¡á¬áá ááá á¢áá¥á¡á¢áá¡áááá¡","alignBaseline":"á¡áááááá¡á á®áááá¡ á¡á¬áá ááá","alignTex
tTop":"á¢áá¥á¡á¢á ááááááá","bgcolor":"á¤áááá¡ á¤áá á","chkFull":"ááááá ááá áááá¡ ááá¨áááá","chkLoop":"á©ááªááááá","chkMenu":"Flash-áá¡ ááááá£á¡ ááá¨áááá","chkPlay":"ááá¢á ááá¨áááá","flashvars":"áªááááááá Flash-áá¡áááá¡","hSpace":"á°áá áá. á¡ááá áªá","properties":"Flash-áá¡ ááá áááá¢á ááá","propertiesTab":"ááá áááá¢á ááá","quality":"á®áá áá¡á®á","qualityAutoHigh":"ááá¦ááá (ááá¢áááá¢á£á á)","qualityAutoLow":"á«ááááá áááááá","qualityBest":"á¡áá£ááááá¡á","qualityHigh":"ááá¦ááá","qualityLow":"áááááá","qualityMedium":"á¡áá¨á£ááá","scale":"ááá¡á¨á¢áááá ááá","scaleAll":"á§ááááá¤á áá¡ á©áááááá","scaleFit":"áá£á¡á¢á
á©áá¡áá","scaleNoBorder":"á©áá á©áá¡ ááá áá¨á","title":"Flash-áá¡ ááá áááá¢á ááá","vSpace":"ááá á¢. á¡ááá áªá","validateHSpace":"á°áá ááááá¢ááá£á á á¡ááá áªá áá á£ááá áá§áá¡ áªáá áááá.","validateSrc":"URL áá á£ááá áá§áá¡ áªáá áááá.","validateVSpace":"ááá á¢ááááá£á á á¡ááá áªá áá á£ááá áá§áá¡ áªáá áááá.","windowMode":"á¤ááá¯á áá¡ á ááááá","windowModeOpaque":"ááá£ááááá áááá","windowModeTransparent":"ááááááá áááá","windowModeWindow":"á¤ááá¯áá á"},"font":{"fontSize":{"label":"áááá","voiceLabel":"á¢áá¥á¡á¢áá¡ áááá","panelTitle":"á¢áá¥á¡á¢áá¡ áááá"},"label":"á¤ááá¢á","panelTitle":"á¤ááá¢áá¡ á¡áá®ááá","voiceLabel":"á¤ááá¢á"},"f
orms":{"button":{"title":"á¦áááááá¡ ááá áááá¢á ááá","text":"á¢áá¥á¡á¢á","type":"á¢ááá","typeBtn":"á¦ááááá","typeSbm":"áááááááá","typeRst":"ááá¡á£á¤áááááá"},"checkboxAndRadio":{"checkboxTitle":"ááááá¨áááá¡ á¦áááááá¡ (Checkbox) ááá áááá¢á ááá","radioTitle":"áá¡áá á©ááá á¦áááááá¡ (Radio) ááá áááá¢á ááá","value":"á¢áá¥á¡á¢á","selected":"áá á©áá£áá"},"form":{"title":"á¤áá ááá¡ ááá áááá¢á ááá","menu":"á¤áá ááá¡ ááá áááá¢á ááá","action":"á¥áááááá","method":"áááááá","encoding":"ááááá ááá"},"hidden":{"title":"áááá£áá ááááá¡ ááá áááá¢á ááá","name":"á¡áá®ááá","value":"áááá¨ááááááá"},"select":{"title":"áá á©áááá¡ á
áááá¡ ááá áááá¢á ááá","selectInfo":"ááá¤áá áááªáá","opAvail":"á¨áá¡áá«áááááá ááá áááá¢ááá","value":"áááá¨ááááááá","size":"áááá","lines":"á®ááááá","chkMulti":"áá áááááááá áá á©áááááá¡ á¡áá¨á£ááááá","opText":"á¢áá¥á¡á¢á","opValue":"áááá¨ááááááá","btnAdd":"ááááá¢ááá","btnModify":"á¨ááªááá","btnUp":"ááááá","btnDown":"á¥ááááá","btnSetValue":"áááá á©áá£á áááá¨ááááááááá ááá§ááááá","btnDelete":"á¬áá¨áá"},"textarea":{"title":"á¢áá¥á¡á¢á£á á áá áá¡ ááá áááá¢á ááá","cols":"á¡ááá¢ááá","rows":"á¡á¢á áá¥ááááá"},"textfield":{"title":"á¢áá¥á¡á¢á£á á ááááá¡ ááá áááá¢á ááá","name":"á¡áá®á
áá","value":"áááá¨ááááááá","charWidth":"á¡ááááááá¡ áááá","maxChars":"áá¡ááááá¡ ááá¥á¡ááááá£á á ááááááá","type":"á¢ááá","typeText":"á¢áá¥á¡á¢á","typePass":"ááá ááá","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"á¤ááá ááá¢áá ááá","panelTitle":"á¤áá ááá¢áá ááá","tag_address":"ááá¡áááá áá","tag_div":"á©ááá£áááá ááá (DIV)","tag_h1":"á¡áááá£á á 1","tag_h2":"á¡áááá£á á 2","tag_h3":"á¡áááá£á á 3","tag_h4":"á¡áááá£á á 4","tag_h5":"á¡áááá£á á 5","tag_h6":"á¡áááá£á á 6","tag_p":"á©ááá£áááá ááá","tag_pre":"á¤áá ááá¢áá ááá£áá"},"horizontalrule":{"toolbar":"á°áá ááááá¢ááá£á á á®áááá¡ á©áá¡áá"},"ifra
me":{"border":"á©áá á©áá¡ ááááá©ááá","noUrl":"ááá áá¤áá iframe-áá¡ URL","scrolling":"ááááá®ááááá¡ ááááááá¡ ááá¨áááá","title":"IFrame-áá¡ ááá áááá¢á ááá","toolbar":"IFrame"},"image":{"alertUrl":"ááá áá¤áá á¡á£á áááá¡ URL","alt":"á¡ááááªááá á¢áá¥á¡á¢á","border":"á©áá á©á","btnUpload":"á¡áá ááá áá¡áááá¡ áááááááá","button2Img":"áá¡á£á á áá á©áá£áá á¡á£á áááááá á¦áááááá¡ ááááá¥áªááá á©ááá£áááá áá á¦áááááá?","hSpace":"á°áá ááááá¢ááá£á á á¡ááá áªá","img2Button":"áá¡á£á á áá á©áá£áá á©ááá£áááá ááá á¦áááááá¡ ááááá¥áªááá á¡á£á ááááá á¦áááááá?","infoTab":"á¡á£á áááá¡ ááá¤áá
ááªáá","linkTab":"ááá£áá","lockRatio":"áá áááá áªááá¡ á¨áááá á©á£áááá","menu":"á¡á£á áááá¡ ááá áááá¢á ááá","resetSize":"ááááá¡ áááá á£áááá","title":"á¡á£á áááá¡ ááá áááá¢á ááá","titleButton":"á¡á£á áááááá á¦áááááá¡ ááá áááá¢á ááá","upload":"áá¢ááá ááá","urlMissing":"á¡á£á áááá¡ URL áá áá á¨ááá¡ááá£áá.","vSpace":"ááá á¢ááááá£á á á¡ááá áªá","validateBorder":"á©áá á©á ááááá á ááªá®áá á£ááá áá§áá¡.","validateHSpace":"á°áá ááááá¢ááá£á á á¡ááá áªá ááááá á ááªá®áá á£ááá áá§áá¡.","validateVSpace":"ááá á¢ááááá£á á á¡ááá áªá ááááá á ááªá®áá á£ááá áá§áá¡."},"smiley":{"options":"á
¡ááªáááááá¡ ááá áááá¢á ááá","title":"á¡ááªáááááá¡ á©áá¡áá","toolbar":"á¡ááªááááááá"},"justify":{"block":"ááááá¡á¬áá ááá","center":"á¨á£áá¨á á¡á¬áá ááá","left":"ááá áªá®ááá á¡á¬áá ááá","right":"ááá á¯áááá á¡á¬áá ááá"},"link":{"acccessKey":"á¬áááááá¡ á¦ááááá","advanced":"ááá¬áá áááááá","advisoryContentType":"á¨áááááá¡áá¡ á¢ááá","advisoryTitle":"á¡áááá£á á","anchor":{"toolbar":"á¦á£áá","menu":"á¦á£ááá¡ á áááá¥á¢áá ááá","title":"á¦á£ááá¡ ááá áááá¢á ááá","name":"á¦á£áá£á¡ á¡áá®ááá","errorName":"ááá áá¤áá á¦á£ááá¡ á¡áá®ááá","remove":"Remove Anchor"},"anchorId":"ááááááá¢áá¡ Id-á","anchorName":"á¦á£ááá¡ á¡áá®áááá",
"charset":"ááááá ááá","cssClasses":"CSS áááá¡á","emailAddress":"ááá¤áá¡á¢áá¡ ááá¡áááá áááá","emailBody":"á¬áá áááá¡ á¢áá¥á¡á¢á","emailSubject":"á¬áá áááá¡ á¡áááá£á á","id":"Id","info":"ááá£ááá¡ ááá¤áá áááªáá","langCode":"áááá¡ áááá","langDir":"áááá¡ ááááá áá£áááá","langDirLTR":"ááá áªá®ááááá ááá á¯áááá (LTR)","langDirRTL":"ááá á¯áááááá ááá áªá®ááá (RTL)","menu":"ááá£ááá¡ á áááá¥á¢áá ááá","name":"á¡áá®ááá","noAnchors":"(áá áááá£áááá¢á¨á á¦á£áá áá áá)","noEmail":"ááá áá¤áá ááá¤áá¡á¢áá¡ ááá¡áááá áá","noUrl":"ááá áá¤áá ááá£ááá¡ URL","other":"<á¡á®áá>","popupDependent":"áááááááááá£áá (Netscape)",
"popupFeatures":"Popup á¤ááá¯á áá¡ ááá áááá¢á ááá","popupFullScreen":"ááááá ááá ááá (IE)","popupLeft":"ááá áªá®ááá áááááªáá","popupLocationBar":"áááááááªááá¡ áááá","popupMenuBar":"ááááá£á¡ áááá","popupResizable":"áªáááááááá ááááá","popupScrollBars":"ááááá®ááááá¡ áááááá","popupStatusBar":"á¡á¢áá¢á£á¡áá¡ áááá","popupToolbar":"á®ááá¡áá¬á§ááá áááá","popupTop":"áááá áááááªáá","rel":"áááá¨áá á","selectAnchor":"ááá á©ááá á¦á£áá","styles":"CSS á¡á¢ááá","tabIndex":"Tab-áá¡ ááááá¥á¡á","target":"ááá®á¡ááá¡ áááááá","targetFrame":"<frame>","targetFrameName":"Frame-áá¡ á¡áá®ááá","targetPopup":"<popup á¤ááá¯áá á>","targetPopupName":"Popup á¤ááá¯á á
á¡ á¡áá®ááá","title":"ááá£áá","toAnchor":"ááá£áá á¢áá¥á¡á¢á¨á á¦á£áááá","toEmail":"ááá¤áá¡á¢á","toUrl":"URL","toolbar":"ááá£áá","type":"ááá£ááá¡ á¢ááá","unlink":"ááá£ááá¡ ááá®á¡áá","upload":"áá¥áá©áá"},"liststyle":{"armenian":"á¡ááá®á£á á áááááááá áá","bulletedTitle":"á¦áááááááá á¡ááá¡ ááá áááá¢á ááá","circle":"á¬á áá¬áá á","decimal":"á ááªá®ááááá (1, 2, 3, ..)","decimalLeadingZero":"áá£ááá ááá¬á§ááá£áá á ááªá®ááááá (01, 02, 03, ..)","disc":"á¬á á","georgian":"á¥áá áá£áá áááááááá áá (áá, ááá, ááá, ..)","lowerAlpha":"ááá¢áá á áááááá£á á áá¡ááááá (a, b, c, d, e, ..)","lowerGreek":"ááá¢áá á ááá á«áá£áá áá¡ááááá
(ááá¤á, ááá¢á, áááá, ..)","lowerRoman":"á áááá£áá áááááááá ááªá ááá¢áá á áªáá¤á áááá (i, ii, iii, iv, v, ..)","none":"áá áá¤áá á","notset":"<áá áá¤áá á>","numberedTitle":"áááááááá ááá á¡ááá¡ ááá áááá¢á ááá","square":"ááááá áá¢á","start":"á¡áá¬á§áá¡á","type":"á¢ááá","upperAlpha":"áááá áááááá£á á áá¡ááááá (A, B, C, D, E, ..)","upperRoman":"á áááá£áá áááááááá áá áááá áªáá¤á áááá (I, II, III, IV, V, etc.)","validateStartNumber":"á¡ááá¡ á¡áá¬á§áá¡á ááááá á ááªá®áá á£ááá áá§áá¡."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"áááááááá","minimize":"ááááá¢áá ááááá"},"newpage":{"toolbar":"áá®ááá áááá
áá"},"pagebreak":{"alt":"áááá ááá¡ á¬á§ááá¢á","toolbar":"áááá ááá¡ á¬á§ááá¢á ááááááá¡áááá¡"},"pastetext":{"button":"áá®áááá á¢áá¥á¡á¢áá¡ á©áá¡áá","title":"áá®áááá á¢áá¥á¡á¢áá¡ á©áá¡áá"},"pastefromword":{"confirmCleanup":"á©áá¡áá¡áááá á¢áá¥á¡á¢á ááá ááááá áááááá¢ááááá¡ áááá¡ - áááááá ááá¡á á¬áááá¡á¬áá ááá¬ááááá?","error":"á¨ááá á¨ááªááááá¡ áááá ááá ááá®áá á®áá á¢áá¥á¡á¢áá¡ ááá¬ááááá","title":"ááá ááááá á©áá¡áá","toolbar":"ááá ááááá á©áá¡áá"},"preview":{"preview":"ááááá®áááá"},"print":{"toolbar":"áááááá"},"removeformat":{"toolbar":"á¤áá ááá¢áá áááá¡ ááá®á¡áá"},"save":{"toolba
r":"á©áá¬áá á"},"selectall":{"toolbar":"á§ááááá¤á áá¡ ááááá¨ááá"},"showblocks":{"toolbar":"áá ááááá¡ á©áááááá"},"sourcearea":{"toolbar":"áááááá"},"specialchar":{"options":"á¡áááªáááá£á á á¡ááááááá¡ ááá áááá¢á ááá","title":"á¡áááªáááá£á á á¡ááááááá¡ áá á©ááá","toolbar":"á¡áááªáááá£á á á¡ááááááá¡ á©áá¡áá"},"scayt":{"about":"SCAYT-áá¡ á¨áá¡áá®áá","aboutTab":"ááá¤áá áááªáá","addWord":"á¡áá¢á§ááá¡ ááááá¢ááá","allCaps":"áááá áá¡ááááá ááá¬áá ááá á¡áá¢á§ááááá¡ á£áá£áááááá§áá¤á","dic_create":"á¨áá¥ááá","dic_delete":"á¬áá¨áá","dic_field_name":"ááá¥á¡áááááá¡ á¡áá®ááá","dic_info":"áááááááá ááááá á
ááá®ááá ááááá¡ ááá¥á¡ááááá áááá®ááá Cookie-á¨á. áá£ááªá Cookie á¨ááá¦á£áá£ááá ááááá¨á. á ááªá ááá¥á¡áááááá¡ áááá ááááá áááá á¡áááááá áá¡ á¨ááá«áááá á¨áááááá®áá á©áááá¡ á¡áá ááá áá. á©áááá¡ á¡áá ááá áá ááá¥á¡ááááá¡ á¨áá¡áááá®áá á£ááá ááá£ááááá ááá¡á á¡áá®ááá. áᣠá£áá ááá¥áá ááá¥á¡ááááá, ááá áá¤áá ááá¡á á¡áá®ááá áá áááááá áá \"áááá á£ááááá¡\" á¦ááááá¡.","dic_rename":"ááááá á¥áááá","dic_restore":"áááá á£áááá","dictionariesTab":"ááá¥á¡ááááááá","disable":"SCAYT-áá¡ ááááá ááá","emptyDic":"ááá¥á¡ááááá
á¡ á¡áá¢á§áá áá á£ááá áá§áá¡ áªáá áááá.","enable":"SCAYT-áá¡ á©áá ááá","ignore":"á£áá£áááááá§áá¤á","ignoreAll":"á§ááááá¡ á£áá£áááááá§áá¤á","ignoreDomainNames":"áááááá£á á á¡áá®áááááá¡ á£áá£áááááá§áá¤á","langs":"ááááá","languagesTab":"ááááá","mixedCase":"á¨áá áá£áá áá¡áááááá á¡áá¢á§ááááá¡ á£áá£áááááá§áá¤á","mixedWithDigits":"áªáá¤á áááááá á¡áá¢á§ááááá¡ á£áá£áááááá§áá¤á","moreSuggestions":"ááá¢á á¨ááááááááááá","opera_title":"áá áá áá®áá ááááá ááá Opera-á¡ áááá ","options":"ááá áááá¢á ááá","optionsTab":"ááá áááá¢á ááá","title":"ááá ááá¬áá áá¡ á¨áááá¬áááá áá áá¤á
á¡áá¡","toggle":"SCAYT-áá¡ ááááá ááá","noSuggestions":"No suggestion"},"stylescombo":{"label":"á¡á¢ááááá","panelTitle":"á¤áá ááá¢áá áááá¡ á¡á¢ááááá","panelTitle1":"áá áá¡ á¡á¢ááááá","panelTitle2":"áááááá áá£áá á¡á¢ááááá","panelTitle3":"ááááá¥á¢áá¡ á¡á¢ááááá"},"table":{"border":"á©áá á©áá¡ áááá","caption":"á¡áááá£á á","cell":{"menu":"á£á¯á á","insertBefore":"á£á¯á áá¡ á©áá¡áá ááááááá","insertAfter":"á£á¯á áá¡ á©áá¡áá ááá á","deleteCell":"á£á¯á áááá¡ á¬áá¨áá","merge":"á£á¯á áááá¡ á¨ááá áááá","mergeRight":"á¨ááá áááá ááá á¯ááááá¡ááá","mergeDown":"á¨ááá áááá á¥ááááááá¡ááá","splitHorizontal":"ááá§áá¤á á°áá ááááá¢ááá£á áá"
,"splitVertical":"ááá§áá¤á ááá á¢ááááá£á áá","title":"á£á¯á áá¡ ááá áááá¢á ááá","cellType":"á£á¯á áá¡ á¢ááá","rowSpan":"á¡á¢á áá¥áááááá¡ ááááááá","colSpan":"á¡ááá¢áááá¡ ááááááá","wordWrap":"á¡á¢á áá¥áááá¡ ááááá¢ááá (Word Wrap)","hAlign":"á°áá ááááá¢ááá£á á á¡á¬áá ááá","vAlign":"ááá á¢ááááá£á á á¡á¬áá ááá","alignBaseline":"á«áá ááááá á®áááá¡ ááá¡á¬áá áá","bgColor":"á¤áááá¡ á¤áá á","borderColor":"á©áá á©áá¡ á¤áá á","data":"áááááªááááá","header":"á¡áááá£á á","yes":"áááá®","no":"áá á","invalidWidth":"á£á¯á áá¡ á¡ááááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidHeight":"á£á¯á áá¡ á¡ááá
á¦áá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidRowSpan":"á¡á¢á áá¥áááááá¡ á áááááááá ááááá á ááªá®áá á£ááá áá§áá¡.","invalidColSpan":"á¡ááá¢áááá¡ á áááááááá ááááá á ááªá®áá á£ááá áá§áá¡.","chooseColor":"áá á©ááá"},"cellPad":"á£á¯á áá¡ áááá (padding)","cellSpace":"á£á¯á áá¡ á¡ááá áªá (spacing)","column":{"menu":"á¡ááá¢á","insertBefore":"á¡ááá¢áá¡ á©áááá¢ááá á¬áá","insertAfter":"á¡ááá¢áá¡ á©áááá¢ááá ááá á","deleteColumn":"á¡ááá¢áááá¡ á¬áá¨áá"},"columns":"á¡ááá¢á","deleteTable":"áªá®á áááá¡ á¬áá¨áá","headers":"á¡áááá£á ááá","headersBoth":"áá ááá","headersColumn":"ááá áááá á¡ááá¢á","headersNone":"áá
áá¤áá á","headersRow":"ááá áááá á¡á¢á áá¥ááá","invalidBorder":"á©áá á©áá¡ áááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidCellPadding":"á£á¯á áá¡ áááá (padding) á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidCellSpacing":"á£á¯á áá¡ á¡ááá áªá (spacing) á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidCols":"á¡ááá¢áááá¡ á áááááááá áááááááá á ááªá®áá á£ááá áá§áá¡.","invalidHeight":"áªá®á áááá¡ á¡áááá¦áá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","invalidRows":"á¡á¢á áá¥áááááá¡ á áááááááá áááááááá á ááªá®áá á£ááá áá§áá¡.","invalidWidth":"áªá®á áááá
¡ á¡ááááá á ááªá®ááá á£ááá áá§áá¡ á¬áá ááááááááá.","menu":"áªá®á áááá¡ ááá áááá¢á ááá","row":{"menu":"á¡á¢á áá¥ááá","insertBefore":"á¡á¢á áá¥áááá¡ á©áááá¢ááá á¬áá","insertAfter":"á¡á¢á áá¥áááá¡ á©áááá¢ááá ááá á","deleteRow":"á¡á¢á áá¥áááááá¡ á¬áá¨áá"},"rows":"á¡á¢á áá¥ááá","summary":"á¨áá¯ááááá","title":"áªá®á áááá¡ ááá áááá¢á ááá","toolbar":"áªá®á ááá","widthPc":"áá ááªááá¢á","widthPx":"á¬áá á¢ááá","widthUnit":"á¡ááááá áá ááá£áá"},"undo":{"redo":"áááááá ááá","undo":"ááá£á¥áááá"},"wsc":{"btnIgnore":"á£áá£áááááá§áá¤á","btnIgnoreAll":"á§ááááá¡ á£áá£áááááá§áá¤á","btnReplace":"á¨ááªááá","btnRep
laceAll":"á§ááááá¡ á¨ááªááá","btnUndo":"ááá£á¥áááá","changeTo":"á¨ááªááááá","errorLoading":"á¡áá ááá¡áá¡ ááááá«áá®áááá¡ á¨ááªáááá: %s.","ieSpellDownload":"ááá ááá¬áá áá¡ á¨áááá¬áááá áá áá ááááá¡á¢áááá ááá£áá. á©ááááá¥áá©áá ááá¢áá ááá¢áááá?","manyChanges":"ááá ááá¬áá áá¡ á¨áááá¬áááá: %1 á¡áá¢á§áá á¨áááªáááá","noChanges":"ááá ááá¬áá áá¡ á¨áááá¬áááá: áá áá¤áá á á¨ááªááááá","noMispell":"ááá ááá¬áá áá¡ á¨áááá¬áááá: á¨ááªáááá áá áááá«áááá","noSuggestions":"- áá áá á¨ááááááááááá -","notAvailable":"á£áááªá áááá, áá¡ á¡áá ááá¡á ááááááá ááá£á¬á
ááááááá.","notInDic":"áá áá ááá¥á¡ááááá¨á","oneChange":"ááá ááá¬áá áá¡ á¨áááá¬áááá: áá áá á¡áá¢á§áá á¨áááªáááá","progress":"áááááááá áááá¡ ááá ááá¬áá áá¡ á¨áááá¬áááá...","title":"ááá ááá¬áá á","toolbar":"ááá ááá¬áá á"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/km.js b/share/static/RichText/lang/km.js
index 20e9eab..25f729e 100644
--- a/share/static/RichText/lang/km.js
+++ b/share/static/RichText/lang/km.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.km={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'áá¼á',newPage:'ááááááááá¸',save:'ááááá¶áá»á',preview:'áá¾ááá¶ááááá',cut:'áá¶áááá',copy:'á
ááááá',paste:'á
ááááá¶áá',print:'ááááá»ááá',underline:'áá·áááááá¶áááá¸áááááá¢áááá',bold:'á¢áááááá·ááá',italic:'á¢ááááááááá',selectAll:'áááá¾ááá¾ááá¶ááá¢áá',removeFormat:'áááá
áá áá¶ááá
áá¶',strike:'áá·áááááá¶áááá¶ááááááá¶áá¢áááá',subscript:'á¢áááááá¼á
ááááá',superscript:'á¢áááááá¼á
áá¾',horizontalrule:'ááááááááááá¶ááááááá',pagebreak:'áááááá áá¶ááááá¶á
áááááá',unlink:'áá
ááááá¶áá',undo:'áá¶áá¡á¾ááá·á',redo:'áááá¾á¡á¾ááá·á',common:{browseServer:'áá¾á',url:'URL',protocol:'áááá¼áá¼áá¼á',upload:'áá¶ááá',uploadSubmit:'ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶',image:'áá¼ááá¶á',flash:'Flash',form:'ááááá',checkbox:'áááá¢áááááá¾ááá¾á',radio:'ááá¼áá»ááááááááá¼á',textField:'áá½ááááááá¢ááááá',textarea:'ááááááááááá¢ááááá',hiddenField:'áá½ááá¶áá',button:'ááá¼áá»á',select:'áá½ááááá¾ááá¾á',imageButton:'ááá¼áá»ááá¼ááá¶á',notSet:'<áá·áááá>',id:'Id',name:'ááááá',langDir:'áá·ááá
áá¶áá¶',langDirLtr:'áá¸ááááááá
áááá¶á(LTR)',langDirRtl:'áá¸áááá¶ááá
ááááá(RTL)',langCode:'ááá
áá¼ááá¶áá¶',longDescr:'á¢áá·áááá¶á URL ááá',cssClass:'Stylesheet Classes',advisoryTitle:'á
ááááá¾á áááá¹áááá¶',cssStyle:'ááá¼á',ok:'ááááááá',cancel:'áá·áááááááá',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'áááá·áááááá',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context M
enu Options'},specialChar:{toolbar:'ááááááá¢áááááá·ááá',title:'áá¼á¢áááááá·ááá',options:'Special Character Options'},link:{toolbar:'áááááá/áááááá áááá¶áá',other:'<other>',menu:'áááááááááá¶áá',title:'áááá¶áá',info:'ááááá¶áá¢ááá¸áááá¶áá',target:'ááááá
',upload:'áá¶ááá',advanced:'áááá·áááááá',type:'áááááááááá¶áá',toUrl:'URL',toAnchor:'áá»áááá¶áá
áááá»ááááááááá',toEmail:'á¢áá¸ááá',targetFrame:'<á áááááá>',targetPopup:'<áá¸ááá¼á ááá>',targetFrameName:'áááááá ááááááááááá¶ááááá
',targetPopupName:'ááááááá¸ááá¼áááá',popupFeatures:'áááááááááááá¸ááá¼áááá',popupResizable:'Resizable',popupStatusBar:'ááá
¶ ááááá¶á',popupLocationBar:'ááá¶ áá¸áá¶áá',popupToolbar:'ááá¶ á©ááááá',popupMenuBar:'ááá¶ ááºáá»á',popupFullScreen:'á¢ááááá»áááá(IE)',popupScrollBars:'ááá¶ áá¶á',popupDependent:'á¢á¶ááááááá¾ (Netscape)',popupWidth:'ááá¹á',popupLeft:'áá¸áá¶áááá¶áááááá',popupHeight:'ááááá',popupTop:'áá¸áá¶áááá¶ááá¾',id:'Id',langDir:'áá·ááá
áá¶áá¶',langDirLTR:'áá¸ááááááá
áááá¶á(LTR)',langDirRTL:'áá¸áááá¶ááá
ááááá(RTL)',acccessKey:'áḠáááá¶ááá
á¼á',name:'ááááá',langCode:'áá·ááá
áá¶áá¶',tabIndex:'ááá Tab',advisoryTitle:'á
ááááá¾á áááá¹áááá¶',advisoryContentType:'ááááááá¢ááááá áááá¹áááá¶',cssClasses:'Stylesheet Classes',charset:'ááááá¼áá¢áááááá
áááááá¶áá',styles:'ááá¼á',selectAnchor:'áááá¾ááá¾ááá»áááá¶',anchorName:'áá¶áááááááááááá»áááá¶',anchorId:'áá¶á Id',emailAddress:'á¢áá¸ááá',emailSubject:'á
ááááá¾áá¢ááááá',emailBody:'á¢ááááá',noAnchors:'(No anchors available in the document)',noUrl:'áá¼áááááá á¢á¶ááááááá¶á URL',noEmail:'áá¼áááááá á¢á¶ááááááá¶á á¢áá¸ááá'},anchor:{toolbar:'áááááá/áááááá áá»áááá¶',menu:'áá¶áááááááá»áááá¶',title:'áá¶áááááááá»áááá¶',name:'ááááááá»ááááááá¶',errorName:'áá¼áááááá ááááááá»ááááááá¶'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must b
e a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'ááááááá',replace:'áááá½á',findWhat:'áááááááá¢ááá¸:',replaceWith:'áááá½ááá¶áá½á:',notFoundMsg:'áá¶áááááá áááá·ááá¾ááá á',matchCase:'áááááááá¼ááá',matchWord:'áááá¼ááá¶ááááá¶ááá¢áá',matchCyclic:'Match cyclic',replaceAll:'áááá½ááá¶ááá¢áá',replaceSuccessMsg:'%1
occurrence(s) replaced.'},table:{toolbar:'áá¶áá¶á',title:'áá¶áááááá áá¶áá¶á',menu:'áá¶áááááá áá¶áá¶á',deleteTable:'ááááá¶áá¶á',rows:'áá½áááááá',columns:'áá½ááá',border:'ááá áááá»á',align:'áá¶áááááááá¸áá¶áá',alignLeft:'áá¶áááááá',alignCenter:'ááááá¶á',alignRight:'áá¶ááááá¶á',width:'ááá¹á',widthPx:'áá¸áááá',widthPc:'áá¶ááá',widthUnit:'width unit',height:'ááááá',cellSpace:'áááá¶áááá',cellPad:'áááááá',caption:'á
ááááá¾á',summary:'ááá
áááá¸áááááá',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be
a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'áááááá',merge:'ááááá¼áááá',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSp
an:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'ááááá½áááááá'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'ááááá½ááá'}},button:{title:'áá¶áááááá ááá¼áá»á',text:'á¢ááááá(áááá)',type:'áááááá',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'áá¶áááááááááá¢áááááá¾ááá¾á',radioTitle:'áá¶ááááááááá¼áá»ááááááá',value:'áááá',selected:'áá¶ááááá¾ááá¾á'},form:{title:'áá¶ááááááááááá',menu:'áá¶ááááááááááá',action:'ááááááá¶á',method:'áá·áá¸',encoding:'Encoding'},select:{title:'áá¶áááááááá½ááááá¾ááá
¾á',selectInfo:'ááááá¶á',opAvail:'áá¶áááááááááá¾ááá¾á áááá¢á¶á
ááááááá¶á',value:'áááá',size:'ááá á',lines:'ááááá¶áá',chkMulti:'á¢áá»áááá¶áá¢áááááá¾ááá¾áá
ááá¾á',opText:'áá¶ááá',opValue:'áááá',btnAdd:'áááááá',btnModify:'áááá¶áááááá¼á',btnUp:'áá¾',btnDown:'ááááá',btnSetValue:'Set as selected value',btnDelete:'ááá'},textarea:{title:'áá¶áááááááááááááááááá¢ááááá',cols:'áá¼ááá',rows:'áá¼áááááá'},textfield:{title:'áá¶áááááááá½áá¢ááááá',name:'ááááá',value:'áááá',charWidth:'ááá¹á á¢áááá',maxChars:'á¢ááááá¢áá·ááá·áá¶',type:'áááááá',typeText:'áá¶ááá',typePass:'áá¶ááááááá¶áá'},hidden:{title:'
áá¶áááááááá½ááá¶áá',name:'ááááá',value:'áááá'},image:{title:'áá¶áááááááá¼ááá¶á',titleButton:'áá¶ááááááááá¼áá»ááá¼ááá¶á',menu:'áá¶áááááááá¼ááá¶á',infoTab:'ááááá¶áá¢ááá¸áá¼ááá¶á',btnUpload:'ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶',upload:'áá¶ááá',alt:'á¢ááááááááá½á',width:'ááá¹á',height:'ááááá',lockRatio:'á¢áááá¶á¡á»á',unlockRatio:'Unlock Ratio',resetSize:'áááááááá áá¡á¾ááá·á',border:'ááá»á',hSpace:'áááá¶áááá¹á',vSpace:'áááá¶ááááááá',align:'ááááááá¸áá¶áá',alignLeft:'áá¶ááááá',alignRight:'áá¶ááááá¶á',alertUrl:'áá¼áááááááá¶ááááááá¶ááááááá¼ááá¶á',linkTab:'áá
áá¶áá',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'áá¶áááááá Flash',propertiesTab:'Properties',title:'áá¶áááááá Flash',chkPlay:'áááááááááááááááááá',chkLoop:'á
ááá½ááá',chkMenu:'áááá á¶á ááºáá»ááááá Flash',chkFull:'Allow Fullscreen',scale:'ááá á',scaleAll:'áááá á¶ááá¶ááá¢áá',scaleNoBorder:'áá·ááááá á¶áááá»á',scaleFit:'áááá¼ááááá',access:'Script Access',accessAlways:'Always',accessSameDomain:
'Same domain',accessNever:'Never',align:'ááááááá¸áá¶áá',alignLeft:'áá¶ááááá',alignAbsBottom:'Abs Bottom',alignAbsMiddle:'Abs Middle',alignBaseline:'ááááá¶áááá¶áá¼ááááá¶á',alignBottom:'áá¶áááááá',alignMiddle:'ááááá¶á',alignRight:'áá¶ááááá¶á',alignTextTop:'áá¾á¢ááááá',alignTop:'áá¶ááá¾',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'ááááááááá¶áááááá',width:'ááá¹á',height:'ááááá',hSpace:'áááá¶áááá¹á',vSpace:'áááá¶ááááááá',validateSrc:'áá¼áááááá á¢á¶ááááááá¶á URL',validateWidth:'Width must b
e a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'áá·áá·áááá¢ááááá¶áá·áá»ááá',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'áááá¶ááááá»ááá
áá¶áá»áááá',changeTo:'áááá¶áááááá¼ááá
',btnIgnore:'áá·ááááá¶áááááá¼á',btnIgnoreAll:'áá·ááááá¶áááááá¼á áá¶ááá¢áá',btnReplace:'áááá½á',btnReplaceAll:'áááá½ááá¶ááá¢áá',btnUndo:'áá¶áá¡á¾ááá·á',noSuggestions:'- áááá¶ááááá¾á -',progress:'áááá»ááá·áá·áááá¢ááááá¶áá·áá»ááá...',noMispell:'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áááá¶á
ááá á»á',noChanges:'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá»ááá¶ááááá¶áááááá¼á',oneChange:'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá¶ááááá½ááááá¼á
áá¶ááááá¶áááááá¼á',manyChanges:'áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: %1 áá¶ááááá¶ááááá¶áááááá¼á',ieSpellDownload:'áá»ááá¶ááááááá·áá¸áá·áá·áááá¢ááááá¶áá·áá»ááá á áá¾á
áááá¶ááááá¸áá¶?'},smiley:{toolbar:'áá¼ááá¶á',title:'ááááá¼ááá¼ááá¶á',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ááááá¸áá¶á¢áááá',bulletedlist:'ááááá¸áá¶áááááááá¼á',indent:'ááá
ááááá¶áá
á¼áááááá¶áá',outdent:'ááááááá¶áá
á¼áááááá¶áá',justify:{left:'áááá¹áááááá',center:'áááá¹áááááá¶á',right:'áááá¹ááááá¶á',block:'áááá¹ááááá¶á'},blockquote:'Block Quote',clipboard:{title:'á
ááááá¶áá',cutError:'áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá áááâáá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá áá¶ááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+X) á',copyError:'áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá áááâáá·áá¢á¶á
á
ááá¾áááááá·áá¸áá¶áááááá¢ááááá á
áááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+C)á',pasteMsg:'áá¼áá
áááá¢ááááááá
áá¶áááááá»ááááá¢áááá¼á
áá¶ááááááááááááá¾áááá¶áá áḠâ(<STRONG>Ctrl/Cmd+V</STRONG>) á á¾áá
á»á
<STRONG>OK</STRONG> á',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'á
ááááá¶áááḠWord',title:'á
ááááá¶áááḠWord',error:'It was not possible to clean up the
pasted data due to an internal error'},pasteText:{button:'á
ááááá¶ááá¢ááááááááááá¶',title:'á
ááááá¶ááá¢ááááááááááá¶'},templates:{button:'á¯ááá¶ááááá¼',title:'á¯ááá¶ááááá¼ ááááá¢áááááá',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'áá¼ááááá¾ááá¾áá¯ááá¶ááááá¼ áá¾áááá¸áá¾ááá
áááá»ááááááá·áá¸áá¶áááááá¢ááááá<br>(á¢ááááááá¹ááá¶ááááá):',emptyListMsg:'(áá»ááá¶áá¯ááá¶ááááá¼áááá¼ááá¶áááááá)'},showBlocks:'Show Blocks',stylesCombo:{label:'ááá¼á',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'áá
áá¶',panelTitle:'áá
áá¶',tag_p:'Normal',tag_pre:'Formatted',ta
g_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'á ááá»á',voiceLabel:'Font',panelTitle:'á ááá»á'},fontSize:{label:'ááá á',voiceLabel:'Font Size',panelTitle:'ááá á'},colorButton:{textColorTitle:'áááá¢áááá',bgColorTitle:'ááááááááá¶áááááá',panelTitle:'Colors',auto:'áááááááááááá',more:'ááááááááááá..'},colors:{'000':'Black',800000:'Maroo
n','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word'
,emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rig
hts reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['km']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"áá¾á","url":"URL","protocol":"áááá¼áá¼áá¼á","upload":"áá¶ááá","uploadSubmit":"ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶","image":"áá¼ááá¶á","flash":"Flash","form":"ááááá","checkbox":"áááá¢áááááá¾ááá¾á","radio":"ááá¼áá»ááááááááá¼á","textField":"áá½ááááááá¢ááááá","textarea":"ááááááááááá¢ááááá","hiddenField":"áá½ááá¶áá","button":"ááá¼áá»á","select":"áá½ááááá¾ááá¾á","imageButton":"ááá¼áá»ááá¼ááá¶á","notSet":"<áá·áááá>","id":"Id","name":"ááááá","langDir":"áá·ááá
áá¶áá¶","langDirLtr":"áá¸ááááááá
áááá¶á(LTR)","langDirRtl":"áá¸áááá¶áá
á
ááááá(RTL)","langCode":"ááááá¼ááá¶áá¶","longDescr":"á¢áá·áááá¶á URL ááá","cssClass":"Stylesheet Classes","advisoryTitle":"á
ááááá¾á áááá¹áááá¶","cssStyle":"ááá¼á","ok":"ááááááá","cancel":"áá·áááááááá","close":"Close","preview":"áá¾ááá¶ááááá","resize":"Resize","generalTab":"General","advancedTab":"áááá·áááááá","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"ááááá
","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"áá¸ááááááá
áááá¶á(LTR)","langDirRTL":"á
á¸áááá¶ááá
ááááá(RTL)","styles":"ááá¼á","cssClasses":"Stylesheet Classes","width":"ááá¹á","height":"ááááá","align":"ááááááá¸áá¶áá","alignLeft":"áá¶ááááá","alignRight":"áá¶ááááá¶á","alignCenter":"ááááá¶á","alignTop":"áá¶ááá¾","alignMiddle":"ááááá¶á","alignBottom":"áá¶áááááá","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by se
mi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"á¢áááááá·ááá","italic":"á¢ááááááááá","strike":"áá·áááááá¶áááá¶ááááááá¶áá¢áááá","subscript":"á¢áááááá¼á
ááááá","superscript":"á¢áááááá¼á
áá¾","underline":"áá·áááááá¶áááá¸áááááá¢áááá"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"á
áá
ááá","copyError":"áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá áááâáá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá á
áááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+C)á","cut":"áá¶áááá","cutError":"áá¶áááááááá»áááááá¶ááááááááááá·áá¸áá»ááááááááááá¢ááá áááâáá·áá¢á¶á
áááá¾áááááá·áá¸áá¶áááááá¢ááááá áá¶ááá¢áááááááááááááááááááááááá¶áá¡á¾á á áá¼ááááá¾áááá¶ááááááá áá¸áá¼á
ááá (Ctrl/Cmd+X) á","paste":"á
ááááá¶áá","
pasteArea":"Paste Area","pasteMsg":"áá¼áá
áááá¢ááááááá
áá¶áááááá»ááááá¢áááá¼á
áá¶ááááááááááááá¾áááá¶áá áḠâ(<STRONG>Ctrl/Cmd+V</STRONG>) á á¾áá
á»á
<STRONG>OK</STRONG> á","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"á
ááááá¶áá"},"colorbutton":{"auto":"áááááááááááá","bgColorTitle":"ááááááááá¶áááááá","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gol
d","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"ááááááááááá..","panelTitle":"Colors","textColorTitle":"áááá¢áááá"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"á¯ááá¶ááááá¼","emptyListMsg":"(áá»ááá¶áá¯ááá¶ááááá¼áááá¼ááá¶áááááá)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"áá¼ááááá¾ááá¾áá¯ááá¶ááááá¼ áá¾áááá¸áá
¾ááá
áááá»ááááááá·áá¸áá¶áááááá¢ááááá<br>(á¢ááááááá¹ááá¶ááááá):","title":"á¯ááá¶ááááá¼ ááááá¢áááááá"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":
"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"ááááá¸áá¶áááááááá¼á","numberedlist":"ááááá¸áá¶á¢áááá"},"indent":{"indent":"áááááááá¶áá
á¼áááááá¶áá","outdent":"ááááááá¶áá
á¼áááááá¶áá"},"find":{"find":"ááááááá","findOptions":"Find Options","findWhat":"áááááááá¢ááá¸:","matchCase":"áááááááá¼ááá","matchCyclic":"Match cyclic","matchWord":"áááá¼ááá¶ááááá¶ááá¢áá","notFoundMsg":"áá¶áááááá áááá·ááá¾ááá á","replace":"áááá½á","replaceAll":"áááá½ááá¶ááá¢áá","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"áááá½ááá¶áá½á:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor
","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"ááááá¶áááá¶áá¼ááááá¶á","alignTextTop":"áá¾á¢ááááá","bgcolor":"ááááááááá¶áááááá","chkFull":"Allow Fullscreen","chkLoop":"á
ááá½ááá","chkMenu":"áááá á¶á ááºáá»ááááá Flash","chkPlay":"áááááááááááááááááá","flashvars":"Variables for Flash","hSpace":"áááá¶áááá¹á","properties":"áá¶áááááá Flash","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"ááá á","scaleAll":"á
ááá á¶ááá¶ááá¢áá","scaleFit":"áááá¼ááááá","scaleNoBorder":"áá·ááááá á¶áááá»á","title":"áá¶áááááá Flash","vSpace":"áááá¶ááááááá","validateHSpace":"HSpace must be a number.","validateSrc":"áá¼áááááá á¢á¶ááááááá¶á URL","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"ááá á","voiceLabel":"Font Size","panelTitle":"ááá á"},"label":"á ááá»á","panelTitle":"á ááá»á","voiceLabel":"á ááá»á"},"forms":{"button":{"title":"áá¶áááááá ááá¼áá»á","text":"á¢ááááá(áááá)","type":"áááááá","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"áá¶áááááááááá¢áááááá¾á
áá¾á","radioTitle":"áá¶ááááááááá¼áá»ááááááá","value":"áááá","selected":"áá¶ááááá¾ááá¾á"},"form":{"title":"áá¶ááááááááááá","menu":"áá¶ááááááááááá","action":"ááááááá¶á","method":"áá·áá¸","encoding":"Encoding"},"hidden":{"title":"áá¶áááááááá½ááá¶áá","name":"ááááá","value":"áááá"},"select":{"title":"áá¶áááááááá½ááááá¾ááá¾á","selectInfo":"ááááá¶á","opAvail":"áá¶áááááááááá¾ááá¾á áááá¢á¶á
ááááááá¶á","value":"áááá","size":"ááá á","lines":"ááááá¶áá","chkMulti":"á¢áá»áááá¶áá¢áááááá¾ááá¾áá
ááá¾á","opText":"áá¶ááá","opValue":"áááá","btnAdd":"áááááá","btnModify":"áááá¶áááááá¼á","btnUp":"áá¾
","btnDown":"ááááá","btnSetValue":"Set as selected value","btnDelete":"ááá"},"textarea":{"title":"áá¶áááááááááááááááááá¢ááááá","cols":"áá¼ááá","rows":"áá¼áááááá"},"textfield":{"title":"áá¶áááááááá½áá¢ááááá","name":"ááááá","value":"áááá","charWidth":"ááá¹á á¢áááá","maxChars":"á¢ááááá¢áá·ááá·áá¶","type":"áááááá","typeText":"áá¶ááá","typePass":"áá¶ááááááá¶áá","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"áá
áá¶","panelTitle":"áá
áá¶","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"ááááááá
áááá¶ááááááá"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"áá¼áááááááá¶ááááááá¶ááááááá¼ááá¶á","alt":"á¢ááááááááá½á","border":"ááá»á","btnUpload":"ááááá¼ááá
áá¶ááááá¶ááá¸áááááááááá¶","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"áááá¶áááá¹á","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ááááá¶áá¢ááá¸áá¼ááá¶á","linkTab":"áááá¶áá","lockRatio":"á¢áááá¶á¡á»á","menu":"áá¶áááááááá¼ááá¶á","resetSize":"áááááááá áá¡á¾ááá·á","title":"áá¶áááááááá¼ááá¶á","titleButton":"áá¶áá
ááááááá¼áá»ááá¼ááá¶á","upload":"áá¶ááá","urlMissing":"Image source URL is missing.","vSpace":"áááá¶ááááááá","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"ááááá¼ááá¼ááá¶á","toolbar":"áá¼ááá¶á"},"justify":{"block":"áááá¹ááááá¶á","center":"áááá¹áááááá¶á","left":"áááá¹áááááá","right":"áááá¹ááááá¶á"},"link":{"acccessKey":"áḠáááá¶ááá
á¼á","advanced":"áááá·áááááá","advisoryContentType":"ááááááá¢ááááá áááá¹áááá¶","advisoryTitle":"á
ááááá¾á áááá¹áááá¶","anchor":{"toolbar":"áááááá/áááááá áá»áááá¶","menu":"áá¶áááááááá»ááá
á¶","title":"áá¶áááááááá»áááá¶","name":"ááááááá»ááááááá¶","errorName":"áá¼áááááá ááááááá»ááááááá¶","remove":"Remove Anchor"},"anchorId":"áá¶á Id","anchorName":"áá¶áááááááááááá»áááá¶","charset":"ááááá¼áá¢áááááááááááá¶áá","cssClasses":"Stylesheet Classes","emailAddress":"á¢áá¸ááá","emailBody":"á¢ááááá","emailSubject":"á
ááááá¾áá¢ááááá","id":"Id","info":"ááááá¶áá¢ááá¸áááá¶áá","langCode":"áá·ááá
áá¶áá¶","langDir":"áá·ááá
áá¶áá¶","langDirLTR":"áá¸ááááááá
áááá¶á(LTR)","langDirRTL":"áá¸áááá¶ááá
ááááá(RTL)","menu":"áááááááááá¶áá","name":"ááááá","noAnchors":"(No anchors available in the document)","noEmail":"áá¼áááááá á
¢á¶ááááááá¶á á¢áá¸ááá","noUrl":"áá¼áááááá á¢á¶ááááááá¶á URL","other":"<other>","popupDependent":"á¢á¶ááááááá¾ (Netscape)","popupFeatures":"áááááááááááá¸ááá¼áááá","popupFullScreen":"á¢ááááá»áááá(IE)","popupLeft":"áá¸áá¶áááá¶áááááá","popupLocationBar":"ááá¶ áá¸áá¶áá","popupMenuBar":"ááá¶ ááºáá»á","popupResizable":"Resizable","popupScrollBars":"ááá¶ áá¶á","popupStatusBar":"ááá¶ ááááá¶á","popupToolbar":"ááá¶ á©ááááá","popupTop":"áá¸áá¶áááá¶ááá¾","rel":"Relationship","selectAnchor":"áááá¾ááá¾ááá»áááá¶","styles":"ááá¼á","tabIndex":"ááá Tab","target":"ááááá
","targetFrame":"<á áááááá>","targetFrameName":"áááááá ááááááááááá¶ááááá
","targetPopup":"<á
á¸ááá¼á ááá>","targetPopupName":"ááááááá¸ááá¼áááá","title":"áááá¶áá","toAnchor":"áá»áááá¶áá
áááá»ááááááááá","toEmail":"á¢áá¸ááá","toUrl":"URL","toolbar":"áááááá/áááááá áááá¶áá","type":"áááááááááá¶áá","unlink":"ááááááá¶áá","upload":"áá¶ááá"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlp
ha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"ááááááááá¸"},"pagebreak":{"alt":"Page Break","toolbar":"áááááá áá¶ááááá¶á
áááááá"},"pastetext":{"button":"á
ááááá¶ááá¢ááááááááááá¶","title":"á
ááááá¶ááá¢ááááááááááá¶"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"á
ááááá¶áááḠWord","toolbar":"á
ááááá¶áááḠWord"},"preview":{"preview":"áá¾ááá¶ááááá"},"print":{"toolbar":"ááááá»ááá
"},"removeformat":{"toolbar":"áááá
áá áá¶ááá
áá¶"},"save":{"toolbar":"ááááá¶áá»á"},"selectall":{"toolbar":"áááá¾ááá¾ááá¶ááá¢áá"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"áá¼á"},"specialchar":{"options":"Special Character Options","title":"áá¼á¢áááááá·ááá","toolbar":"ááááááá¢áááááá·ááá"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please
type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"ááá¼á","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"ááá áááá»á","caption":"á
ááááá¾á","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","d
eleteCell":"áááááá","merge":"ááááá¼áááá","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"áááááá","cellSpace":"áááá¶áááá","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ááááá½ááá"},"columns":"áá½áá
á","deleteTable":"ááááá¶áá¶á","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"áá¶áááááá áá¶áá¶á","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ááááá½áááááá"},"rows":"áá½áááááá","summary":"ááá
áááá¸áááááá","title":"áá¶áááááá áá¶áá¶á","toolbar":"áá¶áá¶á","widthPc":"áá¶ááá","widthPx":"áá¸áááá","widthUnit":"
width unit"},"undo":{"redo":"áááá¾á¡á¾ááá·á","undo":"áá¶áá¡á¾ááá·á"},"wsc":{"btnIgnore":"áá·ááááá¶áááááá¼á","btnIgnoreAll":"áá·ááááá¶áááááá¼á áá¶ááá¢áá","btnReplace":"áááá½á","btnReplaceAll":"áááá½ááá¶ááá¢áá","btnUndo":"áá¶áá¡á¾ááá·á","changeTo":"áááá¶áááááá¼ááá
","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"áá»ááá¶ááááááá·áá¸áá·áá·áááá¢ááááá¶áá·áá»ááá á áá¾á
áááá¶ááááá¸áá¶?","manyChanges":"áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: %1 áá¶ááááá¶ááááá¶áááááá¼á","noChanges":"áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá»ááá¶ááááá¶áááááá¼á","noMispell":
"áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áááá¶áááá á»á","noSuggestions":"- áááá¶ááááá¾á -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"áááá¶ááááá»ááá
áá¶áá»áááá","oneChange":"áá¶ááá·áá·áááá¢ááááá¶áá·áá»ááááá¶áá
áá: áá¶ááááá½ááááá¼á
áá¶ááááá¶áááááá¼á","progress":"áááá»ááá·áá·áááá¢ááááá¶áá·áá»ááá...","title":"Spell Check","toolbar":"áá·áá·áááá¢ááááá¶áá·áá»ááá"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ko.js b/share/static/RichText/lang/ko.js
index 4f8b616..a21de10 100644
--- a/share/static/RichText/lang/ko.js
+++ b/share/static/RichText/lang/ko.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ko={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'ìì¤',newPage:'ì 문ì',save:'ì ì¥í기',preview:'미리보기',cut:'ìë¼ë´ê¸°',copy:'ë³µì¬í기',paste:'ë¶ì¬ë£ê¸°',print:'ì¸ìí기',underline:'ë°ì¤',bold:'ì§íê²',italic:'ì´í
ë¦',selectAll:'ì ì²´ì í',removeFormat:'í¬ë§· ì§ì°ê¸°',strike:'ì·¨ìì ',subscript:'ìë 첨ì',superscript:'ì 첨ì',horizontalrule:'ìíì ì½ì
',pagebreak:'Insert Page Break for Printing',unlink:'ë§í¬ ìì ',undo:'ì·¨ì',redo:'ì¬ì¤í',common:{browseServer:'ìë² ë³´ê¸°',url:'URL',protocol:'íë¡í ì½',upload:'ì
ë¡ë',uploadSubmit:'ìë²ë¡ ì ì¡',image:'ì´ë¯¸ì§',flash:'íëì¬',form:'í¼',checkbox:'ì²´í¬ë°ì¤',radio:'ë¼ëì¤ë²í¼',textField:'ì
ë ¥íë',textarea:'ì
ë ¥ìì',hiddenField:'ì¨ê¹íë',button:'ë²í¼',select:'í¼ì¹¨ëª©ë¡',imageButton:'ì´ë¯¸ì§ë²í¼',notSet:'<ì¤ì ëì§ ì
ì>',id:'ID',name:'Name',langDir:'ì°ê¸° ë°©í¥',langDirLtr:'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',langDirRtl:'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',langCode:'ì¸ì´ ì½ë',longDescr:'URL ì¤ëª
',cssClass:'Stylesheet Classes',advisoryTitle:'Advisory Title',cssStyle:'Style',ok:'ì',cancel:'ìëì¤',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'ìì¸í',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:
'Context Menu Options'},specialChar:{toolbar:'í¹ì문ì ì½ì
',title:'í¹ì문ì ì í',options:'Special Character Options'},link:{toolbar:'ë§í¬ ì½ì
/ë³ê²½',other:'<기í>',menu:'ë§í¬ ìì ',title:'ë§í¬',info:'ë§í¬ ì ë³´',target:'íê²',upload:'ì
ë¡ë',advanced:'ìì¸í',type:'ë§í¬ ì¢
ë¥',toUrl:'URL',toAnchor:'ì±
ê°í¼',toEmail:'ì´ë©ì¼',targetFrame:'<íë ì>',targetPopup:'<íì
ì°½>',targetFrameName:'íê² íë ì ì´ë¦',targetPopupName:'íì
ì°½ ì´ë¦',popupFeatures:'íì
ì°½ ì¤ì ',popupResizable:'Resizable',popupStatusBar:'ìíë°',popupLocationBar:'주ìíìì¤',popupToolbar:'í´ë°',popupMenuBar:'ë©ë´ë°',popupFullScreen:'ì ì²´íë©´ (IE)',popupScrollBars:'ì¤í¬ë¡¤ë°',popupDependent:'Dependent (Netscape)',popupWidth:'ëë¹',popupLeft:'ì¼ìª½ ìì¹',popupHeight:'ëì´',popupTop:'ì쪽 ìì¹',id:'Id',langDir:'ì°ê¸° ë°©í¥',langDirLTR:'ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)',langDirRTL:'ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)',accce
ssKey:'ìì¸ì¤ í¤',name:'Name',langCode:'ì°ê¸° ë°©í¥',tabIndex:'í ìì',advisoryTitle:'Advisory Title',advisoryContentType:'Advisory Content Type',cssClasses:'Stylesheet Classes',charset:'Linked Resource Charset',styles:'Style',selectAnchor:'ì±
ê°í¼ ì í',anchorName:'ì±
ê°í¼ ì´ë¦',anchorId:'ì±
ê°í¼ ID',emailAddress:'ì´ë©ì¼ 주ì',emailSubject:'ì 목',emailBody:'ë´ì©',noAnchors:'(문ìì ì±
ê°í¼ê° ììµëë¤.)',noUrl:'ë§í¬ URLì ì
ë ¥íììì.',noEmail:'ì´ë©ì¼ì£¼ì를 ì
ë ¥íììì.'},anchor:{toolbar:'ì±
ê°í¼ ì½ì
/ë³ê²½',menu:'ì±
ê°í¼ ìì±',title:'ì±
ê°í¼ ìì±',name:'ì±
ê°í¼ ì´ë¦',errorName:'ì±
ê°í¼ ì´ë¦ì ì
ë ¥íììì.'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering'
,georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'찾기 & ë°ê¾¸ê¸°',find:'찾기',replace:'ë°ê¾¸ê¸°',findWhat:'ì°¾ì 문ìì´:',replaceWith:'ë°ê¿ 문ìì´:',notFoundMsg:'문ìì´ì ì°¾ì ì ììµëë¤.',matchCase:'ëì문ì 구ë¶',matchWord:'ì¨ì í ë¨ì´',matchCyclic:'Match cyclic',replaceAll:'모ë ë°ê¾¸ê¸°',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'í',title:'í ì¤ì ',menu:'í ì¤ì ',deleteTable:'í ìì ',rows:'ê°ë¡ì¤',columns:'ì¸ë¡ì¤',border:'í
ë리 í¬ê¸°',align:'ì ë ¬',alignLeft:'ì¼ìª½',alignCenter:'ê°ì´ë°',alignRight:'ì¤ë¥¸ìª½',width:'ë
ë¹',widthPx:'í½ì
',widthPc:'í¼ì¼í¸',widthUnit:'width unit',height:'ëì´',cellSpace:'ì
ê°ê²©',cellPad:'ì
ì¬ë°±',caption:'캡ì
',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'ì
/칸(Cell)',insertBefore:'ìì ì
/칸 ì½ì
',insertAfter:'ë¤ì ì
/칸 ì½ì
',deleteCell:'ì
ìì ',merge:'ì
í©ì¹ê¸°',mergeRight:'ì¤ë¥¸ìª½ ëì¹ê¸°',mergeDown:'ì¼ìª½ ëì¹ê¸°',splitHorizontal:'ìí ëë기',splitVertical:'ìì§ ëë기',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Co
lumns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'í(Row)',insertBefore:'ìì í ì½ì
',insertAfter:'ë¤ì í ì½ì
',deleteRow:'ê°ë¡ì¤ ìì '},column:{menu:'ì´(Column)',insertBefore:'ìì ì´ ì½ì
',insertAfter:'ë¤ì ì´ ì½ì
',deleteColumn:'ì¸ë¡ì¤ ìì '}},button:{title:'ë²í¼ ìì±',text:'ë²í¼ê¸ì(ê°)',type:'ë²í¼ì¢
ë¥',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'ì²´í¬ë°ì¤ ìì±',radioTitle:'ë¼ëì¤ë²í¼ ìì±',value:'ê°',selected:'ì íë¨'},form:{t
itle:'í¼ ìì±',menu:'í¼ ìì±',action:'ì¤íê²½ë¡(Action)',method:'ë°©ë²(Method)',encoding:'Encoding'},select:{title:'í¼ì¹¨ëª©ë¡ ìì±',selectInfo:'ì ë³´',opAvail:'ì íìµì
',value:'ê°',size:'ì¸ë¡í¬ê¸°',lines:'ì¤',chkMulti:'ì¬ë¬í목 ì í íì©',opText:'ì´ë¦',opValue:'ê°',btnAdd:'ì¶ê°',btnModify:'ë³ê²½',btnUp:'ìë¡',btnDown:'ìëë¡',btnSetValue:'ì íëê²ì¼ë¡ ì¤ì ',btnDelete:'ìì '},textarea:{title:'ì
ë ¥ìì ìì±',cols:'칸ì',rows:'ì¤ì'},textfield:{title:'ì
ë ¥íë ìì±',name:'ì´ë¦',value:'ê°',charWidth:'ê¸ì ëë¹',maxChars:'ìµë ê¸ìì',type:'ì¢
ë¥',typeText:'문ìì´',typePass:'ë¹ë°ë²í¸'},hidden:{title:'ì¨ê¹íë ìì±',name:'ì´ë¦',value:'ê°'},image:{title:'ì´ë¯¸ì§ ì¤ì ',titleButton:'ì´ë¯¸ì§ë²í¼ ìì±',menu:'ì´ë¯¸ì§ ì¤ì ',infoTab:'ì´ë¯¸ì§ ì ë³´',btnUpload:'ìë²ë¡ ì ì¡',upload:'ì
ë¡ë',alt:'ì´ë¯¸ì§ ì¤ëª
',width:'ëë¹',height:'ëì´',lockRatio:'ë¹ì¨ ì ì§',
unlockRatio:'Unlock Ratio',resetSize:'ìë í¬ê¸°ë¡',border:'í
ë리',hSpace:'ìíì¬ë°±',vSpace:'ìì§ì¬ë°±',align:'ì ë ¬',alignLeft:'ì¼ìª½',alignRight:'ì¤ë¥¸ìª½',alertUrl:'ì´ë¯¸ì§ URLì ì
ë ¥íììì',linkTab:'ë§í¬',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'íëì¬ ìì±',propertiesTab:'Properties',title:'íëì¬ ë±ë¡ì ë³´',chkPlay:'ìëì¬ì',chkLoop:'ë°ë³µ',chkMenu:'íëì¬ë©ë´ ê°ë¥',chkFull:'Allow Fullscreen',scale:'ìì',scaleAll:'모ë보기',scaleNoBorder:'ê²½ê³ì ìì',scaleFit:'ìììëì¡°ì ',access:'Scrip
t Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'ì ë ¬',alignLeft:'ì¼ìª½',alignAbsBottom:'ì¤ìë(Abs Bottom)',alignAbsMiddle:'ì¤ì¤ê°(Abs Middle)',alignBaseline:'기ì¤ì ',alignBottom:'ìë',alignMiddle:'ì¤ê°',alignRight:'ì¤ë¥¸ìª½',alignTextTop:'ê¸ììë¨',alignTop:'ì',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'ë°°ê²½ ìì',width:'ëë¹',height:'ëì´',hSpace:'ìíì¬ë°±',vSpace:'ìì§ì¬ë°±',validateSrc:'ë§í¬ URLì ì
ë ¥íììì.',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'ì² ìê²ì¬',title:'Spell Che
ck',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'ì¬ì ì ìë ë¨ì´',changeTo:'ë³ê²½í ë¨ì´',btnIgnore:'ê±´ëë',btnIgnoreAll:'모ë ê±´ëë',btnReplace:'ë³ê²½',btnReplaceAll:'모ë ë³ê²½',btnUndo:'ì·¨ì',noSuggestions:'- ì¶ì²ë¨ì´ ìì -',progress:'ì² ìê²ì¬ë¥¼ ì§íì¤ì
ëë¤...',noMispell:'ì² ìê²ì¬ ìë£: ì못ë ì² ìê° ììµëë¤.',noChanges:'ì² ìê²ì¬ ìë£: ë³ê²½ë ë¨ì´ê° ììµëë¤.',oneChange:'ì² ìê²ì¬ ìë£: ë¨ì´ê° ë³ê²½ëììµëë¤.',manyChanges:'ì² ìê²ì¬ ìë£: %1 ë¨ì´ê° ë³ê²½ëììµëë¤.',ieSpellDownload:'ì² ì ê²ì¬ê¸°ê° ì² ì¹ëì§ ìììµëë¤. ì§ê¸ ë¤ì´ë¡ëíìê² ìµëê¹?'},smiley:{toolbar:'ìì´ì½',title:'ìì´ì½ ì½ì
',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ìììë 목ë¡',bulletedlist:'ìììë 목ë¡',indent:'ë
¤ì¬ì°ê¸°',outdent:'ë´ì´ì°ê¸°',justify:{left:'ì¼ìª½ ì ë ¬',center:'ê°ì´ë° ì ë ¬',right:'ì¤ë¥¸ìª½ ì ë ¬',block:'ì쪽 ë§ì¶¤'},blockquote:'Block Quote',clipboard:{title:'ë¶ì¬ë£ê¸°',cutError:'ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ìë¼ë´ê¸° 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+X).',copyError:'ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ë³µì¬í기 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+C).',pasteMsg:'í¤ë³´ëì (<STRONG>Ctrl/Cmd+V</STRONG>) 를 ì´ì©í´ì ìììì ë¶ì¬ë£ê³ <STRONG>OK</STRONG> 를 ë르ì¸ì.',securityMsg:'ë¸ë¬ì°ì ë³´ì ì¤ì ì¼ë¡ ì¸í´, í´ë¦½ë³´ëì ìë£ë¥¼ ì§ì ì ê·¼í ì ììµëë¤. ì´ ì°½ì ë¤ì ë¶ì¬ë£ê¸° íììì¤.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'MS Word íììì ë¶
ì¬ë£ê¸°',title:'MS Word íììì ë¶ì¬ë£ê¸°',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°',title:'í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°'},templates:{button:'í
í릿',title:'ë´ì© í
í릿',options:'Template Options',insertOption:'íì¬ ë´ì© ë°ê¾¸ê¸°',selectPromptMsg:'ìëí°ìì ì¬ì©í í
í릿ì ì ííììì.<br>(ì§ê¸ê¹ì§ ìì±ë ë´ì©ì ì¬ë¼ì§ëë¤.):',emptyListMsg:'(í
íë¦¿ì´ ììµëë¤.)'},showBlocks:'Show Blocks',stylesCombo:{label:'ì¤íì¼',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'í¬ë§·',panelTitle:'í¬ë§·',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',
cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'í°í¸',voiceLabel:'Font',panelTitle:'í°í¸'},fontSize:{label:'ê¸ì í¬ê¸°',voiceLabel:'Font Size',panelTitle:'ê¸ì í¬ê¸°'},colorButton:{textColorTitle:'ê¸ì ìì',bgColorTitle:'ë°°ê²½ ìì',panelTitle:'Colors',auto:'기본ìì',more:'ììì í...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000
':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create
:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Too
lbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ko']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ìë² ë³´ê¸°","url":"URL","protocol":"íë¡í ì½","upload":"ì
ë¡ë","uploadSubmit":"ìë²ë¡ ì ì¡","image":"ì´ë¯¸ì§","flash":"íëì¬","form":"í¼","checkbox":"ì²´í¬ë°ì¤","radio":"ë¼ëì¤ë²í¼","textField":"ì
ë ¥íë","textarea":"ì
ë ¥ìì","hiddenField":"ì¨ê¹íë","button":"ë²í¼","select":"í¼ì¹¨ëª©ë¡","imageButton":"ì´ë¯¸ì§ë²í¼","notSet":"<ì¤ì ëì§ ìì>","id":"ID","name":"Name","langDir":"ì°ê¸° ë°©í¥","langDirLtr":"ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)","langDirRtl":"ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)","langCode":"ì¸ì´ ì½ë","longDescr":"URL ì¤ëª
","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"ì","cancel":"ìëì¤","close":"Close","preview":"미리보기","resize":"Resize","generalTab":"General","advancedTab":"ìì¸í","validateNumberFailed":"This value is not a number
.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"íê²","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)","langDirRTL":"ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"ëë¹","height":"ëì´","align":"ì ë ¬","alignLeft":"ì¼ìª½","alignRight":"ì¤ë¥¸ìª½","alignCenter":"ê°ì´ë°","alignTop":"ì","alignMiddle":"ì¤ê°","alignBottom":"ìë","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt,
or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"ì§íê²","italic":"ì´í
ë¦","strike":"ì·¨ìì ","subscript":"ìë 첨ì","superscript":"ì 첨ì","underline":"ë°ì¤"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from
right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"ë³µì¬í기","copyError":"ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ë³µì¬í기 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+C).","cut":"ìë¼ë´ê¸°","cutError":"ë¸ë¼ì°ì ì ë³´ìì¤ì ë문ì ìë¼ë´ê¸° 기ë¥ì ì¤íí ì ììµëë¤. í¤ë³´ë ëª
ë ¹ì ì¬ì©íììì. (Ctrl/Cmd+X).","paste":"ë¶ì¬ë£ê¸°","pasteArea":"Paste Area","pasteMsg":"í¤ë³´ëì (<STRONG>Ctrl/Cmd+V</STRONG>) 를 ì´ì©í´ì ìììì ë¶ì¬ë£ê³ <STRONG>OK</STRONG> 를 ë르ì¸ì.","securityMsg":"ë¸ë¬ì°ì ë³´ì ì¤ì ì¼ë¡ ì¸í´, í´ë¦½ë³´ëì ìë£ë¥¼ ì§ì ì ê·¼í ì ììµëë¤. ì´ ì°½ì ë¤ì ë¶ì¬ë£ê¸° íììì¤.","title":"ë¶ì¬ë£ê¸°"},"colorbutton":{"auto":"기본ìì","bgColorTitle":"ë°°ê²½ ìì","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy"
,"4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"ììì í...","panelTitle":"Colors","textColorTitle":"ê¸ì ìì"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"í
í릿","emptyListMsg":"(í
íë¦¿ì´ ììµëë¤.)","insertOption":"íì¬ ë´ì© ë
°ê¾¸ê¸°","options":"Template Options","selectPromptMsg":"ìëí°ìì ì¬ì©í í
í릿ì ì ííììì.<br>(ì§ê¸ê¹ì§ ìì±ë ë´ì©ì ì¬ë¼ì§ëë¤.):","title":"ë´ì© í
í릿"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors
":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"ìììë 목ë¡","numberedlist":"ìììë 목ë¡"},"indent":{"indent":"ë¤ì¬ì°ê¸°","outdent":"ë´ì´ì°ê¸°"},"find":{"find":"찾기","findOptions":"Find Options","findWhat":"ì°¾ì 문ìì´:","matchCase":"ëì문ì 구ë¶","matchCyclic":"Match cyclic","matchWord":"ì¨ì í ë¨ì´","notFoundMsg":"문ìì´ì ì°¾ì ì ììµëë¤.","replace":"ë°ê¾¸ê¸°","replaceAll":"모ë ë°ê¾¸ê¸°","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"ë°ê¿ 문ìì´:","title":"찾기 & ë°ê¾¸ê¸°"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"ì¤ìë(Abs Bottom)","alignAbsMiddle":"ì¤ì¤ê°(Abs M
iddle)","alignBaseline":"기ì¤ì ","alignTextTop":"ê¸ììë¨","bgcolor":"ë°°ê²½ ìì","chkFull":"Allow Fullscreen","chkLoop":"ë°ë³µ","chkMenu":"íëì¬ë©ë´ ê°ë¥","chkPlay":"ìëì¬ì","flashvars":"Variables for Flash","hSpace":"ìíì¬ë°±","properties":"íëì¬ ìì±","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"ìì","scaleAll":"모ë보기","scaleFit":"ìììëì¡°ì ","scaleNoBorder":"ê²½ê³ì ìì","title":"íëì¬ ë±ë¡ì ë³´","vSpace":"ìì§ì¬ë°±","validateHSpace":"HSpace must be a number.","validateSrc":"ë§í¬ URLì ì
ë ¥íììì.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"ê¸ì í¬ê¸°","voiceLabel":"Font Size","panelTitle
":"ê¸ì í¬ê¸°"},"label":"í°í¸","panelTitle":"í°í¸","voiceLabel":"í°í¸"},"forms":{"button":{"title":"ë²í¼ ìì±","text":"ë²í¼ê¸ì(ê°)","type":"ë²í¼ì¢
ë¥","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"ì²´í¬ë°ì¤ ìì±","radioTitle":"ë¼ëì¤ë²í¼ ìì±","value":"ê°","selected":"ì íë¨"},"form":{"title":"í¼ ìì±","menu":"í¼ ìì±","action":"ì¤íê²½ë¡(Action)","method":"ë°©ë²(Method)","encoding":"Encoding"},"hidden":{"title":"ì¨ê¹íë ìì±","name":"ì´ë¦","value":"ê°"},"select":{"title":"í¼ì¹¨ëª©ë¡ ìì±","selectInfo":"ì ë³´","opAvail":"ì íìµì
","value":"ê°","size":"ì¸ë¡í¬ê¸°","lines":"ì¤","chkMulti":"ì¬ë¬í목 ì í íì©","opText":"ì´ë¦","opValue":"ê°","btnAdd":"ì¶ê°","btnModify":"ë³ê²½","btnUp":"ìë¡","btnDown":"ìëë¡","btnSetValue":"ì íëê²ì¼ë¡ ì¤ì ","btnDelete":"ìì "},"textarea":{"title":"ì
ë ¥ìì ìì±","cols":"칸ì","rows":"ì¤ì
"},"textfield":{"title":"ì
ë ¥íë ìì±","name":"ì´ë¦","value":"ê°","charWidth":"ê¸ì ëë¹","maxChars":"ìµë ê¸ìì","type":"ì¢
ë¥","typeText":"문ìì´","typePass":"ë¹ë°ë²í¸","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"í¬ë§·","panelTitle":"í¬ë§·","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"ìíì ì½ì
"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"ì´ë¯¸ì§ URLì ì
ë ¥íììì","alt":"ì´ë¯¸ì§ ì¤ëª
","border":"í
ë리","btnUpload":"ìë²ë¡ ì ì¡","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"ì
íì¬ë°±","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ì´ë¯¸ì§ ì ë³´","linkTab":"ë§í¬","lockRatio":"ë¹ì¨ ì ì§","menu":"ì´ë¯¸ì§ ì¤ì ","resetSize":"ìë í¬ê¸°ë¡","title":"ì´ë¯¸ì§ ì¤ì ","titleButton":"ì´ë¯¸ì§ë²í¼ ìì±","upload":"ì
ë¡ë","urlMissing":"Image source URL is missing.","vSpace":"ìì§ì¬ë°±","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"ìì´ì½ ì½ì
","toolbar":"ìì´ì½"},"justify":{"block":"ì쪽 ë§ì¶¤","center":"ê°ì´ë° ì ë ¬","left":"ì¼ìª½ ì ë ¬","right":"ì¤ë¥¸ìª½ ì ë ¬"},"link":{"acccessKey":"ìì¸ì¤ í¤","advanced":"ìì¸í","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"ì±
ê°í¼ ì½ì
/ë³ê²½","menu":"ì±
ê°í¼ ìì±","title":"ì±
ê°í¼ ìì±","name":"ì±
ê°í¼ ì´
ë¦","errorName":"ì±
ê°í¼ ì´ë¦ì ì
ë ¥íììì.","remove":"Remove Anchor"},"anchorId":"ì±
ê°í¼ ID","anchorName":"ì±
ê°í¼ ì´ë¦","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"ì´ë©ì¼ 주ì","emailBody":"ë´ì©","emailSubject":"ì 목","id":"ID","info":"ë§í¬ ì ë³´","langCode":"ì°ê¸° ë°©í¥","langDir":"ì°ê¸° ë°©í¥","langDirLTR":"ì¼ìª½ìì ì¤ë¥¸ìª½ (LTR)","langDirRTL":"ì¤ë¥¸ìª½ìì ì¼ìª½ (RTL)","menu":"ë§í¬ ìì ","name":"Name","noAnchors":"(문ìì ì±
ê°í¼ê° ììµëë¤.)","noEmail":"ì´ë©ì¼ì£¼ì를 ì
ë ¥íììì.","noUrl":"ë§í¬ URLì ì
ë ¥íììì.","other":"<기í>","popupDependent":"Dependent (Netscape)","popupFeatures":"íì
ì°½ ì¤ì ","popupFullScreen":"ì ì²´íë©´ (IE)","popupLeft":"ì¼ìª½ ìì¹","popupLocationBar":"주ìíìì¤","popupMenuBar":"ë©ë´ë°","popupResizable":"Resizable","popupScrollBars":"ì¤í¬ë¡¤ë°","popupStatusBar":"ìíë°","popupToolbar":"í´ë°"
,"popupTop":"ì쪽 ìì¹","rel":"Relationship","selectAnchor":"ì±
ê°í¼ ì í","styles":"Style","tabIndex":"í ìì","target":"íê²","targetFrame":"<íë ì>","targetFrameName":"íê² íë ì ì´ë¦","targetPopup":"<íì
ì°½>","targetPopupName":"íì
ì°½ ì´ë¦","title":"ë§í¬","toAnchor":"ì±
ê°í¼","toEmail":"ì´ë©ì¼","toUrl":"URL","toolbar":"ë§í¬ ì½ì
/ë³ê²½","type":"ë§í¬ ì¢
ë¥","unlink":"ë§í¬ ìì ","upload":"ì
ë¡ë"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start"
:"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"ì 문ì"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°","title":"í
ì¤í¸ë¡ ë¶ì¬ë£ê¸°"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"MS Word íììì ë¶ì¬ë£ê¸°","toolbar":"MS Word íììì ë¶ì¬ë£ê¸°"},"preview":{"preview":"미리보기"},"print":{"toolbar":"ì¸ìí기"},"removeformat":{"toolbar":"í¬ë§· ì§ì°ê¸°"},"save":{"toolbar":"ì ì¥í기"},"selectall":{"toolbar":"ì ì²´ì í"
},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"ìì¤"},"specialchar":{"options":"Special Character Options","title":"í¹ì문ì ì í","toolbar":"í¹ì문ì ì½ì
"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Igno
re","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"ì¤íì¼","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"í
ë리 í¬ê¸°","caption":"캡ì
","cell":{"menu":"ì
/칸(Cell)","insertBefore":"ìì ì
/칸 ì½ì
","insertAfter":"ë¤ì ì
/칸 ì½ì
","deleteCell":"ì
ìì ","merge":"ì
í©ì¹ê¸°","mergeRight":"ì¤ë¥¸ìª½ ëì¹ê¸°","mergeDown":"ì¼ìª½ ëì¹ê¸°","splitHorizontal":"ìí ëë기","splitVertical":"ìì§ ëë기","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Ro
ws Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ì
ì¬ë°±","cellSpace":"ì
ê°ê²©","column":{"menu":"ì´(Column)","insertBefore":"ìì ì´ ì½ì
","insertAfter":"ë¤ì ì´ ì½ì
","deleteColumn":"ì¸ë¡ì¤ ìì "},"columns":"ì¸ë¡ì¤","deleteTable":"í ìì ","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be
a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"í ì¤ì ","row":{"menu":"í(Row)","insertBefore":"ìì í ì½ì
","insertAfter":"ë¤ì í ì½ì
","deleteRow":"ê°ë¡ì¤ ìì "},"rows":"ê°ë¡ì¤","summary":"Summary","title":"í ì¤ì ","toolbar":"í","widthPc":"í¼ì¼í¸","widthPx":"í½ì
","widthUnit":"width unit"},"undo":{"redo":"ì¬ì¤í","undo":"ì·¨ì"},"wsc":{"btnIgnore":"ê±´ëë","btnIgnoreAll":"모ë ê±´ëë","btnReplace":"ë³ê²½","btnReplaceAll":"모ë ë³ê²½","btnUndo":"ì·¨ì","changeTo":"ë³ê²½í ë¨ì´","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"ì² ì ê²ì¬ê¸°ê° ì² ì¹ëì§ ìììµëë¤. ì§ê¸ ë¤ì´ë¡ëíìê² ìµëê¹?","manyChanges":"ì² ìê²ì¬ ìë£: %1 ë¨ì´ê° ë³ê²½ëììµëë¤.
","noChanges":"ì² ìê²ì¬ ìë£: ë³ê²½ë ë¨ì´ê° ììµëë¤.","noMispell":"ì² ìê²ì¬ ìë£: ì못ë ì² ìê° ììµëë¤.","noSuggestions":"- ì¶ì²ë¨ì´ ìì -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"ì¬ì ì ìë ë¨ì´","oneChange":"ì² ìê²ì¬ ìë£: ë¨ì´ê° ë³ê²½ëììµëë¤.","progress":"ì² ìê²ì¬ë¥¼ ì§íì¤ì
ëë¤...","title":"Spell Check","toolbar":"ì² ìê²ì¬"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ku.js b/share/static/RichText/lang/ku.js
new file mode 100644
index 0000000..8b5e9e1
--- /dev/null
+++ b/share/static/RichText/lang/ku.js
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.lang['ku']={"dir":"rtl","editor":"Ø³ÛØ±ÙÙÙØ³ÛÛ Ø¯ÛÙÛ Ø¨ÛÙ¾ÛØª","common":{"editorHelp":"Ú©ÙÛÚ©Û ALT ÙÙÚ¯ÙÚµ 0 Ø¨Ú©Ù Ø¨Û ÛØ§Ø±Ù
ÙØªÛ","browseServer":"ÙÛÙØ§ÙÛ ÚØ§ÚÛ","url":"ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÛØ³ØªÛر","protocol":"Ù¾ÚÛØªÛÚ©ÛÚµ","upload":"بارکردÙ","uploadSubmit":"ÙØ§Ø±Ø¯ÙÛ Ø¨Û ÚØ§ÚÛ","image":"ÙÛÙÛ","flash":"ÙÙØ§Ø´","form":"Ø¯Ø§ÚØ´ØªÛ","checkbox":"خاÙÛÛ ÙÛØ´Ø§ÙکردÙ","radio":"جÛگرÛÙÛÛ Ø¯ÙÚ¯Ù
Û","textField":"خاÙÛÛ Ø¯ÛÙ","textarea":"ÚÙÙØ¨ÛØ±Û Ø¯ÛÙ","hiddenField":"شاردÙÛÙÛ Ø®Ø§ÙÛ","button":"دÙÚ¯Ù
Û","select":"ÙÛÚµØ¨ÚØ§Ø±Ø¯ÛÛ Ø®Ø§ÙÛ","imageButton":"دÙÚ¯Ù
ÛÛ ÙÛÙÛ","notSet":"<ÙÛÚ Ø¯Ø§ÙÛØ¯Ø±Ø§ÙÛ>","id":"ÙØ§Ø³ÙاÙ
Û","name":"ÙØ§Ù","langDir":"ئاراستÛÛ Ø²Ù
اÙ","langDirLtr":"ÚÛÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)","langDirRtl":"ÚØ§Ø³Øª Ø¨Û ÚÛÙ¾ (RTL)","langCode":"ÙÛÙ
Ø§Û Ø²Ù
اÙ","longDescr":"Ù¾ÛÙØ§Ø³ÛÛ Ø¯Ø±ÛÚÛ Ø¨ÛØ³ØªÛر","cssClass":
"Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÙÚÛ","advisoryTitle":"ÚØ§ÙÛÚÚ©Ø§Ø±Û Ø³ÛØ±Ø¯ÛÚ","cssStyle":"Ø´ÛÙØ§Ø²","ok":"باشÛ","cancel":"ÙÛÚµÙÛØ´Ø§ÙدÙ","close":"داخستÙ","preview":"Ù¾ÛØ´Ø¨ÛÙÛÙ","resize":"Ú¯ÛÚÛÙÛ Ø¦ÛÙØ¯Ø§Ø²Û","generalTab":"گشتÛ","advancedTab":"Ù¾ÙØ±ÙسÙÙØ¯ÙÙ","validateNumberFailed":"ئÛÙ
ÙØ±Ø®Û ÚÙ
Ø§Ø±Û ÙÛÙØ تکاÛÛ ÙØ±Ø®ÛÚ©Û ÚÙ
Ø§Ø±Û Ø¨ÙÙÙØ³Û.","confirmNewPage":"Ø³ÛØ±Ø¬ÛÙ
Ú¯ÛÚØ§ÙکارÛÛکا٠٠پÛÚ©ÙØ§ØªÛکاÙÛ ÙØ§ÙÛÙÙÛ ÙÛØ¯Ûست Ø¯ÛØ¯ÛÛ Ú¯ÛØ± Ø¨ÛØªÙ٠پاشکÛÙØªÛ ÙÛÚ©ÛÛ ÛÛÚ©ÛÙ
Ø¬Ø§Ø±Ø ØªÛ ÙÛØ± دڵÙÛØ§ÛÛ ÙÛکردÙÛÙÛÛ Ù¾ÛÙØ¬ÛرÛÚ©Û ÙÙÛØ","confirmCancel":"ÙÛÙØ¯ÛÙ ÙÛÚµØ¨ÚØ§Ø±Ø¯Û Ú¯ÛÚØ¯Ø±Ø§ÙÛ. ØªÛ Ø¯ÚµÙÛØ§ÛÛ ÙÙØ¯Ø§Ø®Ø³ØªÙÛ Ø¦ÛÙ
Ø¯ÛØ§ÙÛÚ¯ÛØ","options":"ÙÛÚµØ¨ÚØ§Ø±Ø¯Û","target":"ئاÙ
Ø§ÙØ¬","targetNew":"Ù¾ÛÙØ¬ÛرÛÛÙÚ©Û ÙÙÛ (_blank)","targetTop":"ÙÙÙØªÚ©ÛÛ Ù¾ÛÙØ¬ÛØ±Û (_top)","targetSelf":"Ù
ÛÙÛÙ
ا٠پÛÙØ¬ÛØ±Û (_self)","targetParent":"Ù¾ÛÙØ¬ÛرÛÛ Ø¨Ø§ÙØ§Ù (_parent)","langDirLTR":"ÚÛÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)","langDirRTL":"ÚØ§Ø³Øª Ø¨Û ÚÛÙ¾ (RTL)","styles":"Ø´ÛÙØ§Ø²","cssClasses":"Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÛÚÛ","width":"پاÙÛ","height":"درÛÚÛ","align":"ÚÛÚ©Ú©ÛØ±ÛÙÛ","alignLeft":"ÚÛÙ¾","alignRight":"ÚØ§Ø³Øª","alignCenter":"ÙØ§ÙÛÚØ§Ø³Øª","alignTop":"Ø³ÛØ±ÛÙÛ","alignMiddle":"ÙØ§ÙÛÙØ¯","alignBottom":"ÚÛØ±ÛÙÛ","invalidValue":"ÙØ±Ø®ÛÚ©Û ÙØ§Ø¯Ø±ÙÙØ³Øª.","invalidHeight":"درÛÚÛ Ø¯ÛØ¨Ûت ÚÙ
Ø§Ø±Û Ø¨ÛØª.","invalidWidth":"پاÙÛ Ø¯ÛØ¨Ûت ÚÙ
Ø§Ø±Û Ø¨ÛØª.","invalidCssLength":"ئÛÙ
ÙØ±Ø®ÛÛ Ø¯Ø±Ø§ÙÛ Ø¨Û Ø®Ø§ÙÛÛ \"%1\" Ø¯ÛØ¨Ûت ÚÙ
ارÛÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª ÛØ§Ù Ø¨Û ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦Ø§Ù
Ø±Ø§Ø²Û (px, %, in, cm, mm, em, ex, pt, ÛØ§Ù pc).","invalidHtmlLength":"ئÛÙ
ÙØ±Ø®ÛÛ Ø¯Ø±Ø§ÙÛ Ø¨Û Ø®Ø§ÙÛÛ \"%1\" Ø¯ÛØ¨Ûت ÚÙ
ارÛÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª ÛØ§Ù Ø¨Û ÙØ§ÙÙÛ
شاÙÛ Ø¦Ø§Ù
Ø±Ø§Ø²Û HTML (px ÛØ§Ù %).","invalidInlineStyle":"داÙÙÛ ÙØ±Ø®Û Ø´ÛÙØ§Ø²Û ÙØ§ÙÙÛÚµ Ø¯ÙØ¨Ûت Ù¾ÛÚ©ÙØ§ØªØ¨Ûت ÙÙÛÙÙ ÛØ§Ù Ø²ÛØ§ØªØ±Û Ø¯Ø§ÚØ´ØªÙ \"ÙØ§Ù : ÙØ±Ø®\", Ø¬ÛØ§Ú©Ø±Ø¯ÙÙÙÙÛ Ø¨ÙÙØ§Ø±ÛزÙÙØ®Ø§Úµ","cssLengthTooltip":"ÚÙ
ارÙÛÙ٠بÙÙÙØ³Ù Ø¨Û ÙØ±Ø®Û piksel ÛØ§Ù ئاÙ
رازÛÚ©Û Ø¯Ø±ÙÙØ³ØªÛ CSS (px, %, in, cm, mm, em, ex, pt, ÛØ§Ù pc).","unavailable":"%1<span class=\"cke_accessibility\">, ئاÙ
Ø§Ø¯Û ÙÛÛ</span>"},"about":{"copy":"Ù
اÙÛ ÙÙØ¨ÙرگرتÙÙÙÙÛ © $1. Ú¯Ø´ØªÛ Ù¾Ø§Ø±ÛØ²Ø±Ø§ÙÙ.","dlgTitle":"Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ CKEditor","help":"سÙÛØ±Û $1 Ø¨Ú©Ù Ø¨Û ÛØ§Ø±Ù
ÙØªÛ.","moreInfo":"Ø¨Û Ø²Ø§ÙÛØ§Ø±Û Ø²ÛØ§ØªØ±Û Ù
ÛÚµÙØª, تکاÛÙ Ø³ÙØ±Ø¯Ø§ÙÛ Ù
اڵپÙÚÙÚ©ÙÙ
ا٠بکÙ:","title":"Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ CKEditor","userGuide":"ÚÛÙ¾ÛØ´Ø§ÙØ¯ÙØ±Û CKEditors"},"basicstyles":{"bold":"ÙÛÚµÛÙ","italic":"ÙØ§Ø±","strike":"ÙÛØ¯Ø§Ù","subscript":"ÚÛØ±ÙÙÙØ³",
"superscript":"Ø³ÛØ±ÙÙÙØ³","underline":"ÚÛØ±ÙÛÚµ"},"bidi":{"ltr":"ئاراستÙÛ ÙÙÙØ³Ù ÙÙÚÙÙ¾ Ø¨Û ÚØ§Ø³Øª","rtl":"ئاراستÙÛ ÙÙÙØ³Ù ÙÙÚØ§Ø³Øª Ø¨Û ÚÙÙ¾"},"blockquote":{"toolbar":"Ø¨ÛØ±Ø¨ÛستکردÙÛ ÙØªÛÛ ÙÛØ±Ú¯ÛراÙ"},"clipboard":{"copy":"ÙÛØ¨ÛØ±Ú¯Ø±ÙØªÛÙÙ","copyError":"Ù¾Ø§Ø±ÛØ²Û ÙÛØ¨Ú¯ÛÚÛÚ©ÛØª ÚÛÚ¯ÙÙØ§Ø¯Ø§Øª Ø¨ÛØ³ÛرÙÙÙØ³ÛÚ©Û ÙÛ ÙÚ©Ø§ÙØ¯ÙÛ Ø¯ÛÙÛ Ø®Ûکار. تکاÛÛ ÙÛØ¨Ø±Û ئÛÙ
Û Ø¦ÛÙ
ÙÛØ±Ù
اÙÛ Ø¨ÛکاربÙÛÙÛ Ø¨ÛØ¯Ø§Ú¯Ø±ØªÙÛ Ú©ÙÛÙÛ (Ctrl/Cmd+C).","cut":"بÚÛÙ","cutError":"Ù¾Ø§Ø±ÛØ²Û ÙÛØ¨Ú¯ÛÚÛÚ©ÛØª ÚÛÚ¯ÙÙØ§Ø¯Ø§Øª Ø¨Û Ø³ÛØ±ÙÙÙØ³ÛÚ©Û ÙÙØ¨ÚÛÙÛ Ø®Ûکار. تکاÛÛ ÙÛØ¨Ø±Û ئÛÙ
Û Ø¦ÛÙ
ÙÛØ±Ù
اÙÛ Ø¨ÛکاربÙÛÙÛ Ø¨ÛØ¯Ø§Ú¯Ø±ØªÙÛ Ú©ÙÛÙÛ (Ctrl/Cmd+X).","paste":"ÙÚ©Ø§ÙØ¯Ù","pasteArea":"ÙØ§ÙÚÙÛ ÙÚ©Ø§ÙØ¯Ù","pasteMsg":"تکاÛ٠بÛÙÚ©ÛÙÙ ÙÙÙØ§ÙÙÙÙÛ Ø¦ÙÙ
سÙÙÙÙ ÙÙÚÛÛ ØªÙØ®ØªÙÚ©ÙÛÙÙ
Ú©ÙØª Ø¨ÙØ¨Ø§Ú©Ø§Ø±ÙÛÙØ§ÙÛ Ú©ÙÛÙÛ (<STRONG>Ctrl/Cmd+V</STRONG>) دÙÙØ§Û Ú©ÙÛÚ©Û Ø¨Ø§Ø´Ù Ø¨Ú©Ù.","securityMsg":"بÙÙÛÛ Ø´ÛÙÙÙ¾ÛØ¯Ø§ÙÛ Ù¾Ø§Ø±ÛØ²Û ÙÛØ¨Ú¯ÙÚÙÚ©ÙØªØ Ø³ÙØ±ÙÙÙØ³ÙÚ©Ù ÙØ§ØªÙاÙÛØª Ø¯ÙØ³ØªØ¨Ú¯ÙÛÙÙÛØª بÙÙÙÚµÚ¯ÛØ±Ø§ÙÙÚ©Ù ÚØ§Ø³ØªÙÙØ®Û. بÛÛÙ Ù¾ÛÙÛØ³ØªÙ دÙÙØ¨Ø§Ø±Ù بÛÙÚ©ÛÙÛØª ÙÙÙ
Ù¾ÙÙØ¬ÙرÙÛÙ.","title":"ÙÚ©Ø§ÙØ¯Ù"},"colorbutton":{"auto":"Ø®Ûکار","bgColorTitle":"ÚÙÙÚ¯Û Ù¾Ø§Ø´Ø¨ÙÙÙ
ا","colors":{"000":"ÚÙØ´","800000":"Ø³ÛØ±Ù Ù
اÚÙÙÙÛ","8B4513":"Ù
اÚÙÙÙÛ","2F4F4F":"سÙÙØ²Û تارÛÙ","008080":"سÙÙØ²Ù Ø´ÛÙ","000080":"Ø´ÛÙÛ ØªÛØ®","4B0082":"Ù
ÛØ±Û ØªÛØ®","696969":"ÚÙØ³Ø§Ø³Û ØªÛØ®","B22222":"Ø³ÛØ±Û ØªÛØ®","A52A2A":"ÙØ§ÙÙÛÛ","DAA520":"ÙØ§ÙÙÛÛ Ø¨Ø±ÛØ³Ú©Ùدار","006400":"سÙÙØ²Û ØªÛØ®","40E0D0":"Ø´ÛÙÛ ÙØ§ØªÛØ®Û Ø¨Ø±ÛØ³Ú©Ùدار","0000CD":"Ø´ÛÙÛ Ù
اÙ
ÙØ§ÙÙÙØ¯","800080":"Ù¾ÙÙ
بÙÛÛ","808080":"ÚÙØ³Ø§Ø³Û
","F00":"Ø³ÛØ±","FF8C00":"ÙØ§Ø±ÙÙØ¬Û ØªÛØ®","FFD700":"Ø²ÙØ±Ø¯","008000":"سÙÙØ²","0FF":"Ø´ÛÙÛ Ø¦Ø§Ø³Ù
اÙÛ","00F":"Ø´ÛÙ","EE82EE":"Ù¾ÙÙ
ÙÛÛ","A9A9A9":"ÚÙØ³Ø§Ø³Û ÙØ§ØªÛØ®","FFA07A":"ÙØ§Ø±ÙÙØ¬Û ÙØ§ØªÛØ®","FFA500":"ÙØ§Ø±ÙÙØ¬Û","FFFF00":"Ø²ÙØ±Ø¯","00FF00":"سÙÙØ²","AFEEEE":"Ø´ÛÙÛ ÙØ§ØªÛØ®","ADD8E6":"Ø´ÛÙÛ Ø²ÛØ± ÙØ§ØªÛØ®","DDA0DD":"Ù¾ÙÙ
ÙÛÛ ÙØ§ØªÛØ®","D3D3D3":"ÚÙØ³Ø§Ø³Û Ø¨Ø±ÛØ³Ú©Ùدار","FFF0F5":"Ø¬ÙØ±Ú¯Û Ø²ÛØ± ÙØ§ØªÛØ®","FAEBD7":"Ø¬ÙØ±Ú¯Û ÙØ§ØªÛØ®","FFFFE0":"Ø³Ù¾Û ÙØ§ØªÛØ®","F0FFF0":"ÙÙÙÚ¯ÙÛÙÛ ÙØ§ØªÛØ®","F0FFFF":"Ø´ÛÙÛÚ©Û Ø²ÛØ± ÙØ§ØªÛØ®","F0F8FF":"Ø´ÛÙÛÚ©Û Ø¦Ø§Ø³Ù
اÙÛ Ø²ÛØ± ÙØ§ØªÛØ®","E6E6FA":"Ø´ÛØ±Û","FFF":"سپÛ"},"more":"ÚÙÙÚ¯Û Ø²ÛØ§ØªØ±...","panelTitle":"ÚÙÙÚ¯ÙکاÙ","textColorTitle":"ÚÙÙÚ¯Û Ø¯ÙÙ"},"colordialog":{"clear":"پاککردÙÙÙÙ","highlight":"ÙÛØ´Ø§ÙکردÙ","options":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÚÙÙÚ¯ÙکاÙ","selected":"ÙÙÚµØ¨ÚØ§Ø±Ø¯Ø±Ø§",
"title":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÚÙÙÚ¯"},"templates":{"button":"ÚÙÙکار","emptyListMsg":"(ÙÛÚ ÚÙÙکارÛÙ Ø¯ÛØ§Ø±ÛÙÙکراÙÙ)","insertOption":"ÙÙØ´ÙÛÙ Ø¯Ø§ÙØ§ÙÛ Ø¦ÙÙ
Ù¾ÛÚ©ÙØ§ØªØ§ÙÙÛ Ø¦ÛØ³ØªØ§","options":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙکاÙÛ ÚÙÙکار","selectPromptMsg":"ÚÙÙکارÛÙ ÙÙڵبÚÛØ±Ù Ø¨Û Ú©Ø±Ø¯ÙÙÙÙÛ ÙÙ Ø³ÙØ±ÙÙÙØ³Ùر:","title":"Ù¾ÛÚ©ÙØ§ØªÙÛ ÚÙÙکار"},"contextmenu":{"options":"ÙÛÚµØ¨ÚØ§Ø±Ø¯ÛÛ ÙÛØ³ØªÛÛ Ú©ÙÛÚ©Û Ø¯ÛØ³ØªÛ ÚØ§Ø³Øª"},"div":{"IdInputLabel":"ÙØ§Ø³ÙاÙ
Ù","advisoryTitleInputLabel":"Ø³ÙØ±Ø¯ÛÚ","cssClassInputLabel":"Ø´ÛÙØ§Ø²Û ÚÛÙÛ Ù¾ÙÚÙ","edit":"ÚØ§Ú©Ø³Ø§Ø²Û Div","inlineStyleInputLabel":"Ø´ÛÙØ§Ø²Û ÙØ§ÙÙÛÚµ","langDirLTRLabel":"ÚÙÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)","langDirLabel":"ئاراستÙÛ Ø²Ù
اÙ","langDirRTLLabel":"ÚØ§Ø³Øª Ø¨Û ÚÙÙ¾ (RTL)","languageCodeInputLabel":"ÙÛÙ
Ø§Û Ø²Ù
اÙ","remove":"ÙØ§Ø¨Ø±Ø¯ÙÛ Div","styleSelectLabel":"Ø´ÛÙØ§Ø²","title":"داÙ
اÙÛ ÙÙØ®ÛÚ¯Ø±Û Div","toolbar":"Ø¯Ø§ÙØ§ÙÛ ÙÙØ®ÛÚ¯Ø±Û Div"},"toolbar":{"toolbarCollapse":"شاردÙÛÙÛ ÙÛÚµÛ ØªÙÙڵاÙ
راز","toolbarExpand":"ÙÛØ´Ø§ÙداÙÛ ÙÛÚµÛ ØªÙÙڵاÙ
راز","toolbarGroups":{"document":"Ù¾ÙÚÙ","clipboard":"بÚÛÙ/Ù¾ÙÙÚکردÙÙÙÙ","editing":"ÚØ§Ú©Ø³Ø§Ø²Û","forms":"Ø¯Ø§ÚØ´ØªÙ","basicstyles":"Ø´ÛÙØ§Ø²Û بÙÚÛÙÙÛÛ","paragraph":"بÚÚ¯Ù","links":"Ø¨ÙØ³ØªÙر","insert":"خستÙÙ ÙØ§Ù","styles":"Ø´ÛÙØ§Ø²","colors":"ÚÙÙÚ¯ÙکاÙ","tools":"ئاÙ
رازÙکاÙ"},"toolbars":"تÙÙÚµØ§ÛØ±Ø§Ø²Û Ø¯ÛØ³Ú©Ø§Ø±ÛÚ©ÛØ±"},"elementspath":{"eleLabel":"ÚÛÚÙÙÛ ØªÙØ®Ù
ÙکاÙ","eleTitle":"%1 ØªÙØ®Ù
"},"list":{"bulletedlist":"Ø¯Ø§ÙØ§Ù/ÙØ§Ø¨Ø±Ø¯ÙÛ Ø®Ø§ÚµÛ ÙÛØ³Øª","numberedlist":"Ø¯Ø§ÙØ§Ù/ÙØ§Ø¨Ø±Ø¯ÙÛ ÚÙ
ارÛÛ ÙÛØ³Øª"},"indent":{"indent":"Ø²ÛØ§Ø¯Ú©Ø±Ø¯ÙÛ Ø¨ÛØ´Ø§ÛÛ","outdent":"Ú©ÛÙ
کردÙÛÙÛÛ Ø¨ÛØ´Ø§ÛÛ"},"find":{"find":"Ú¯ÙÚØ§Ù","findOptions":"ÙÙÚµØ¨ÚØ§Ø±Ø¯
ÙکاÙÛ Ú¯ÙÚØ§Ù","findWhat":"Ú¯ÙÚØ§Ù Ø¨ÙØ¯ÙÙØ§Û:","matchCase":"Ø¬ÛØ§Ú©Ø±Ø¯ÙÙÙÙ ÙÙÙÛÙØ§Ù Ù¾ÛØªÛ Ú¯ÙÙØ±Ù٠بÚÙÙÙ","matchCyclic":"Ú¯ÙÚØ§Ù ÙÙÙÙÙ
ÙÙ Ù¾ÙÚÙÚ©Ù","matchWord":"تÙÙÙØ§ ÙÙÙ
ÙÙ ÙØ´ÙÚ©Ù","notFoundMsg":"ÙÛÚ Ø¯ÙÙÙ Ú¯ÙÚØ§ÙÛÙ ÙÙØ¯ÛزراÙÙ.","replace":"ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§Ù","replaceAll":"ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§ÙÛ ÙÙÙ
ÙÙÛ","replaceSuccessMsg":" Ù¾ÛØ´ÙاتÙ(Û) ÙÙØ¨Ø±Û Ø¯Ø§ÙØ±Ø§. %1","replaceWith":"ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§Ù بÙ:","title":"Ú¯ÙÚØ§Ù ÙÙ ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§Ù"},"fakeobjects":{"anchor":"ÙÙÙÚ¯ÙØ±","flash":"ÙÙØ§Ø´","hiddenfield":"شاردÙÙÙÙÛ Ø®Ø§ÙÙ","iframe":"ÙÙÚÙØ§Ø±ÚÛÙÙ","unknown":"Ø¨ÙØ±Ú©Ø§Ø±ÛÚ©Û ÙÙÙØ§Ø³Ø±Ø§Ù"},"flash":{"access":"Ø¯ÙØ³ØªÙ¾ÛÚ¯ÙÛØ´ØªÙÛ ÙÙÙØ³Ø±Ø§Ù","accessAlways":"ÙÙÙ
ÛØ´Ù","accessNever":"ÙÙØ±Ú¯Ûز","accessSameDomain":"ÙÙÙ
ا٠دÛÙ
ÙÛÙ","alignAbsBottom":"ÙÙ ÚÛØ±ÙÙÙ","alignAbsMiddle":"ÙÙÙØ§ÙÙÙØ¯","alignBas
eline":"ÙÛÚµÛØ¨ÙÛÚÛØª","alignTextTop":"دÙÙ ÙÙØ³ÙرÙÙÙ","bgcolor":"ÚÙÙÚ¯Û Ù¾Ø§Ø´Ø¨ÙÙÙ
ا","chkFull":"ÚÛÙ¾ÛØ¯Ø§Ù Ø¨Ù Ù¾Ú Ø¨ÙÙ¾ÚÛ Ø´Ø§Ø´Ù","chkLoop":"گرÛ","chkMenu":"ÚØ§ÙاککردÙÛ ÙÛØ³ØªÙÛ ÙÙØ§Ø´","chkPlay":"Ù¾ÛکردÙÛ ÛØ§Ù ÙÛØ¯Ø§ÙÛ Ø®Ûکار","flashvars":"Ú¯ÛÚØ§ÙÙÚ©Ø§Ù Ø¨Û ÙÙØ§Ø´","hSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ","properties":"خاسÛÙØªÛ ÙÙØ§Ø´","propertiesTab":"خاسÛÙØª","quality":"Ø¬ÛØ±Ø§ÛÙØªÛ","qualityAutoHigh":"Ø¨ÙØ±Ø²Û Ø®Ûکار","qualityAutoLow":"ÙØ²Ù
Û Ø®Ûکار","qualityBest":"باشترÛÙ","qualityHigh":"Ø¨ÙØ±Ø²Û","qualityLow":"ÙØ²Ù
","qualityMedium":"Ù
اÙ
ÙØ§ÙÙÙØ¯","scale":"Ù¾ÛÙØ§ÙÙ","scaleAll":"ÙÛØ´Ø§ÙداÙÛ ÙÙÙ
ÙÙ","scaleFit":"بÙÙØ±Ø¯Û بگÙÙØ¬Ûت","scaleNoBorder":"Ø¨Û Ù¾ÙØ±Ø§ÙÛØ²","title":"خاسÛÙØªÛ ÙÙØ§Ø´","vSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ","validateHSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","validateSrc":"
ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر ÙØ§Ø¨Ûت Ø®Ø§ÚµÛ Ø¨ÛØª","validateVSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","windowMode":"Ø´ÛÙØ§Ø²Û Ù¾ÙÙØ¬ÙرÙ","windowModeOpaque":"ÙØ§ÚÙÙÙ","windowModeTransparent":"ÚÛØ´Ù","windowModeWindow":"Ù¾ÙÙØ¬ÙرÙ"},"font":{"fontSize":{"label":"Ú¯ÙÙØ±ÙÛÛ","voiceLabel":"Ú¯ÙÙØ±ÙÛÛ ÙÛÙØª","panelTitle":"Ú¯ÙÙØ±ÙÛÛ ÙÛÙØª"},"label":"ÙÛÙØª","panelTitle":"ÙØ§ÙÛ ÙÛÙØª","voiceLabel":"ÙÛÙØª"},"forms":{"button":{"title":"خاسÛÙØªÛ دÙÚ¯Ù
Ù","text":"(ÙØ±Ø®Û) دÙÙ","type":"Ø¬ÛØ±","typeBtn":"دÙÚ¯Ù
Ù","typeSbm":"ÙØ§Ø±Ø¯Ù","typeRst":"ÚÛکخستÙÙÙÙ"},"checkboxAndRadio":{"checkboxTitle":"خاسÛÙØªÛ ÚÙÙØ§Ø±Ú¯ÛØ´Û Ù¾Ø´Ú©ÙÛÙ","radioTitle":"خاسÛÙØªÛ جÛگرÙÙÙÛ Ø¯ÙÚ¯Ù
Ù","value":"ÙØ±Ø®","selected":"ÙÙÚµØ¨ÚØ§Ø±Ø¯Ø±Ø§"},"form":{"title":"خاسÛÙØªÛ Ø¯Ø§ÚØ´ØªÙ","menu":"خاسÛÙØªÛ Ø¯Ø§ÚØ´ØªÙ","action":"کردار","method":"ÚÛÚ¯Ù","enc
oding":"بÙÚ©ÛØ¯Ú©Ùر"},"hidden":{"title":"خاسÛÙØªÛ خاÙÙÛ Ø´Ø§Ø±Ø¯Ø±Ø§ÙÙ","name":"ÙØ§Ù","value":"ÙØ±Ø®"},"select":{"title":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ Ø®Ø§Ø³ÛÙØªÛ خاÙÙ","selectInfo":"زاÙÛØ§Ø±Û","opAvail":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙØ¨ÙÙ","value":"ÙØ±Ø®","size":"Ú¯ÙÙØ±ÙÛÛ","lines":"ÙÛÚµÙکاÙ","chkMulti":"ÚÛØ¯Ø§Ù بÙÙØ±Ù ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù","opText":"دÙÙ","opValue":"ÙØ±Ø®","btnAdd":"Ø²ÛØ§Ø¯Ú©Ø±Ø¯Ù","btnModify":"Ú¯ÛÚØ§ÙکارÛ","btnUp":"Ø³ÙØ±ÙÙÙ","btnDown":"Ø®ÙØ§Ø±ÙÙÙ","btnSetValue":"دابÙÛ ÙÙÙ ÙØ±Ø®ÛÚ©Û ÙÙڵبÚÛØ±Ø¯Ø±Ø§Ù","btnDelete":"سÚÛÙÙÙÙ"},"textarea":{"title":"خاسÛÙØªÛ ÚÙÙØ¨ÙØ±Û Ø¯ÙÙ","cols":"Ø¦ÙØ³ØªÙÙÛÙکاÙ","rows":"ÚÛØ²ÙکاÙ"},"textfield":{"title":"خاسÛÙØªÛ خاÙÙÛ Ø¯ÙÙ","name":"ÙØ§Ù","value":"ÙØ±Ø®","charWidth":"پاÙÛ ÙÙÙØ³Ù","maxChars":"ئÙÙÙ¾ÙÚÛ ÙÙÙØ³Ù","type":"Ø¬ÛØ±","typeText":"دÙÙ","typePass":"Ù¾ÛÙ¾ÙÚÙÙØ´Ù","typeEmail":
"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ÚØ§Ø²Ø§ÙدÙÙÙÙ","panelTitle":"Ø¨ÙØ´Û ÚØ§Ø²Ø§ÙدÙÙÙÙ","tag_address":"ÙØ§ÙÙÛØ´Ø§Ù","tag_div":"(DIV)-Û Ø¦Ø§Ø³Ø§ÛÛ","tag_h1":"Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¡","tag_h2":"Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¢","tag_h3":"Ø³ÙØ±ÙÙÙØ³ÙÛ Ù£","tag_h4":"Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¤","tag_h5":"Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¥","tag_h6":"Ø³ÙØ±ÙÙÙØ³ÙÛ Ù¦","tag_p":"ئاساÛÛ","tag_pre":"Ø´ÛÙØ§Ø²Ú©Ø±Ø§Ù"},"horizontalrule":{"toolbar":"Ø¯Ø§ÙØ§ÙÛ ÙÛÙÛ Ø¦Ø§Ø³ÛÛÛ"},"iframe":{"border":"ÙÛØ´Ø§ÙداÙÛ ÙØ§Ú©Ûش٠بÙÚÙÙØ§Ø±Ø¯ÙÙØ±Û ÚÙÙØ§Ø±ÚÛÙÙ","noUrl":"تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر بÙÙÙØ³Ù Ø¨Û ÚÙÙØ§Ø±ÚÛÙÙ","scrolling":"ÚØ§ÙاککردÙÛ ÙØ§ØªÙÙÚÛÙ¾ÛکردÙ","title":"Ø¯ÛØ§ÙÛÚ¯Û ÚÙÙØ§Ø±ÚÛÙÙ","toolbar":"ÚÙÙØ§Ø±ÚÛÙÙ"},"image":{"alertUrl":"تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙØ±Û ÙÛÙ٠بÙÙÙØ³Ù","alt":"جÛگرÙÙÙÛ Ø¯
ÙÙ","border":"Ù¾ÙØ±Ø§ÙÛØ²","btnUpload":"ÙØ§Ø±Ø¯ÙÛ Ø¨Û ÚØ§ÚÙ","button2Img":"ØªÛ Ø¯ÙØªÙÙÛØª دÙÚ¯Ù
ÙÛ ÙÛÙÙÛ Ø¯ÛØ§Ø±Ûکرا٠بگÛÚÛØª Ø¨Û ÙÛÙÙÚ©Û Ø¦Ø§Ø³Ø§ÛÛØ","hSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ","img2Button":"ØªÛ Ø¯ÙØªÙÙÛØª ÙÛÙÙÛ Ø¯ÛØ§Ø±Ûکرا٠بگÛÚÛØª Ø¨Û Ø¯ÙÚ¯Ù
ÙÛ ÙÛÙÙØ","infoTab":"زاÙÛØ§Ø±Û ÙÛÙÙ","linkTab":"Ø¨ÙØ³ØªÙر","lockRatio":"داخستÙÛ ÚÛÚÙ","menu":"خاسÛÙØªÛ ÙÛÙÙ","resetSize":"ÚÛکخستÙÙÙÙÛ ÙÙØ¨Ø§Ø±Ù","title":"خاسÛÙØªÛ ÙÛÙÙ","titleButton":"خاسÛÙØªÛ دÙÚ¯Ù
ÙÛ ÙÛÙÙ","upload":"بارکردÙ","urlMissing":"Ø³ÙØ±ÚاÙÙÛ Ø¨ÙØ³ØªÙØ±Û ÙÛÙ٠بزرÙ","vSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ","validateBorder":"Ù¾ÙØ±Ø§ÙÛØ² Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ØªÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","validateHSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦Ø§Ø³ÛÛÛ Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ØªÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","validateVSpace":"Ø¨ÛØ´Ø§ÛÛ Ø¦ÙØ³ØªÙÙÛ Ø¯ÙØ¨Û
ت Ø¨ÙØªÙÙØ§ÙÛ ØªÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª."},"smiley":{"options":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ Ø²ÙØ±Ø¯ÙØ®ÙÙÙ","title":"Ø¯Ø§ÙØ§ÙÛ Ø²ÙØ±Ø¯ÙØ®ÙÙÙÛÙÙ","toolbar":"Ø²ÙØ±Ø¯ÙØ®ÙÙÙ"},"justify":{"block":"ÙØ§ÙستÙÙÙÛ","center":"ÙØ§ÙÙÚØ§Ø³Øª","left":"بÙÙÛÚµ کردÙÛ ÚÙÙ¾","right":"بÙÙÛÚµ کردÙÛ ÚØ§Ø³Øª"},"link":{"acccessKey":"Ú©ÙÛÙÛ Ø¯ÙØ³ØªÙ¾ÛÚ¯ÙÛØ´ØªÙ","advanced":"Ù¾ÛØ´Ú©ÙÙØªÙÙ","advisoryContentType":"Ø¬ÛØ±Û ÙØ§ÙÙÚÛÚ©Û ÚØ§ÙÛÚکار","advisoryTitle":"ÚØ§ÙÛÚÚ©Ø§Ø±Û Ø³ÙØ±Ø¯ÛÚ","anchor":{"toolbar":"Ø¯Ø§ÙØ§Ù/ÚØ§Ú©Ø³Ø§Ø²Û ÙÙÙÚ¯ÙØ±","menu":"ÚØ§Ú©Ø³Ø§Ø²Û ÙÙÙÚ¯ÙØ±","title":"خاسÛÙØªÛ ÙÙÙÚ¯ÙØ±","name":"ÙØ§ÙÛ ÙÙÙÚ¯ÙØ±","errorName":"تکاÛÙ ÙØ§ÙÛ ÙÙÙÚ¯ÙØ± بÙÙÙØ³Ù","remove":"ÙØ§Ø¨Ø±Ø¯ÙÛ ÙÙÙÚ¯ÙØ±"},"anchorId":"بÙÙ¾ÛÛ ÙØ§Ø³ÙاÙ
ÙÛ ØªÙØ®Ù
","anchorName":"بÙÙ¾ÛÛ ÙØ§ÙÛ ÙÙÙÚ¯ÙØ±","charset":"Ø¨ÛØ³ØªÛØ±Û Ø³ÛØ±ÚاÙÛÛ ÙÙÙØ³Ù","cssClasses":"Ø´ÛÙ
Ø§Ø²Û ÚÛÙÛ Ù¾ÙÚÙ","emailAddress":"ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦ÛÙ
ÙÛÙ","emailBody":"ÙØ§ÙÙÚÛÚ©Û ÙØ§Ù
Ù","emailSubject":"Ø¨Ø§Ø¨ÙØªÛ ÙØ§Ù
Ù","id":"ÙØ§Ø³ÙاÙ
Ù","info":"زاÙÛØ§Ø±Û Ø¨ÛØ³ØªÛر","langCode":"ÙÛÙ
Ø§Û Ø²Ù
اÙ","langDir":"ئاراستÙÛ Ø²Ù
اÙ","langDirLTR":"ÚÙÙ¾ Ø¨Û ÚØ§Ø³Øª (LTR)","langDirRTL":"ÚØ§Ø³Øª Ø¨Û ÚÙÙ¾ (RTL)","menu":"ÚØ§Ú©Ø³Ø§Ø²Û Ø¨ÛØ³ØªÛر","name":"ÙØ§Ù","noAnchors":"(ÙÛÚ Ø¬ÛØ±ÛÚ©Û ÙÙÙÚ¯ÙØ± ئاÙ
اد٠ÙÛÙ ÙÙÙ
Ù¾ÙÚÙÛÙ)","noEmail":"تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¦ÛÙ
ÙÛ٠بÙÙÙØ³Ù","noUrl":"تکاÛÙ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر بÙÙÙØ³Ù","other":"<ÙÛØªØ±>","popupDependent":"Ù¾ÛÙÙØ¨Ùسترا٠(Netscape)","popupFeatures":"خاسÛÙØªÛ Ù¾ÙÙØ¬ÙرÙÛ Ø³ÙØ±ÙÙÚµØ¯ÙØ±","popupFullScreen":"Ù¾Ú Ø¨ÙÙ¾ÚÛ Ø´Ø§Ø´Ù (IE)","popupLeft":"جÛÚ¯Ø§Û ÚÙÙ¾","popupLocationBar":"ÙÛÚµÛ ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر","popupMenuBar":"ÙÛÚµÛ ÙÛØ³ØªÙ","popupResizable":"ت
ÙØ§ÙØ§Û Ú¯ÛÚÛÙÛ ÙÙØ¨Ø§Ø±Ù","popupScrollBars":"ÙÛÚµÛ ÙØ§ØªÙÙÚÛÙ¾ÛکردÙ","popupStatusBar":"ÙÛÚµÛ Ø¯ÛØ®","popupToolbar":"ÙÛÚµÛ ØªÙÙڵاÙ
راز","popupTop":"جÛÚ¯Ø§Û Ø³ÙØ±ÙÙÙ","rel":"Ù¾ÙÛÙÙÙØ¯Û (rel)","selectAnchor":"ÙÙÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙÙÚ¯ÙØ±ÛÙ","styles":"Ø´ÛÙØ§Ø²","tabIndex":"Ø¨Ø§Ø²Ø¯ÙØ±Û ØªØ§Ø¨Û Ø¦ÛÙØ¯Ûکس","target":"ئاÙ
Ø§ÙØ¬","targetFrame":"<ÚÙÙØ§Ø±ÚÛÙÙ>","targetFrameName":"ÙØ§ÙÛ Ø¦Ø§Ù
Ø§ÙØ¬Û ÚÙÙØ§Ø±ÚÛÙÙ","targetPopup":"<Ù¾ÙÙØ¬ÙرÙÛ Ø³ÙØ±ÙÙÚµØ¯ÙØ±>","targetPopupName":"ÙØ§ÙÛ Ù¾ÙÙØ¬ÙرÙÛ Ø³ÙØ±ÙÙÚµØ¯ÙØ±","title":"Ø¨ÛØ³ØªÛر","toAnchor":"Ø¨ÙØ³ØªÙر Ø¨Û ÙÙÙÚ¯ÙØ± Ù٠دÙÙ","toEmail":"ئÛÙ
ÙÛÙ","toUrl":"ÙØ§ÙÙÛØ´Ø§ÙÛ Ø¨ÙØ³ØªÙر","toolbar":"Ø¯Ø§ÙØ§Ù/ÚÛکخستÙÛ Ø¨ÛØ³ØªÛر","type":"Ø¬ÛØ±Û Ø¨ÙØ³ØªÙر","unlink":"ÙØ§Ø¨Ø±Ø¯ÙÛ Ø¨ÛØ³ØªÛر","upload":"بارکردÙ"},"liststyle":{"armenian":"ئاراستÙÛ ÚÙ
ارÙÛ Ø¦ÙØ±Ù
ÙÙÛ","bullet
edTitle":"خاسÛÙØªÛ ÙÛØ³ØªÛ خاڵÛ","circle":"بازÙÙ","decimal":"ÚÙ
ار٠(1, 2, 3, ÙÙÙÛØªØ±.)","decimalLeadingZero":"ÚÙ
ار٠سÙÚÛ ÙÙÙ¾ÛØ´ÙÙÙ (01, 02, 03, ÙÙÙÛØªØ±.)","disc":"Ù¾ÙÙ¾Ú©Ù","georgian":"ئاراستÙÛ ÚÙ
ارÙÛ Ø¬ÛÚØ¬Û (an, ban, gan, ÙÙÙÛØªØ±.)","lowerAlpha":"ئÙÙÙØ§Ø¨ÛÛ Ø¨ÚÙÙÙ (a, b, c, d, e, ÙÙÙÛØªØ±.)","lowerGreek":"ÛÛÙØ§ÙÛ Ø¨ÚÙÙÙ (alpha, beta, gamma, ÙÙÙÛØªØ±.)","lowerRoman":"ÚÙ
ارÙÛ ÚÛÙ
Û Ø¨ÚÙÙÙ (i, ii, iii, iv, v, ÙÙÙÛØªØ±.)","none":"ÙÛÚ","notset":"<داÙÙÙØ¯Ø±Ø§ÙÙ>","numberedTitle":"خاسÛÙØªÛ ÙÛØ³ØªÛ ÚÙ
ارÙÛÛ","square":"ÚÙÙØ±Ø§Ú¯ÛØ´Ù","start":"Ø¯ÙØ³ØªÙ¾ÛکردÙ","type":"Ø¬ÛØ±","upperAlpha":"ئÙÙÙØ§Ø¨ÛÛ Ú¯ÙÙØ±Ù (A, B, C, D, E, ÙÙÙÛØªØ±.)","upperRoman":"ÚÙ
ارÙÛ ÚÛÙ
Û Ú¯ÙÙØ±Ù (I, II, III, IV, V, ÙÙÙÛØªØ±.)","validateStartNumber":"Ø¯ÙØ³ØªÙ¾ÛÚ©ÙØ±Û ÙÛØ³ØªÛ ÚÙ
ارÙÛÛ Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
ار٠بÛ
ت."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ئÛÙÙ¾ÙÚÛ Ú¯ÛÙØ±ÛÛÛ","minimize":"ئÛÙÙ¾ÛÚÛ Ø¨ÚÙÙÚ©Û"},"newpage":{"toolbar":"Ù¾ÛÚÛÛÛÚ©Û ÙÙÛ"},"pagebreak":{"alt":"پشÙÙÛ Ù¾ÛÚÛ","toolbar":"Ø¯Ø§ÙØ§ÙÛ Ù¾Ø´ÙÙÛ Ù¾ÛÚÛ Ø¨Û ÚØ§Ù¾Ú©Ø±Ø¯Ù"},"pastetext":{"button":"ÙÚ©Ø§ÙØ¯ÙÛ ÙÙ٠دÙÙÛ ÚÙÙÙ","title":"ÙÚ©Ø§ÙØ¯ÙÛ ÙÙ٠دÙÙÛ ÚÙÙÙ"},"pastefromword":{"confirmCleanup":"ئÙÙ
دÙÙÙÛ Ø¨ÙØªÙÙ
Ø§Û Ø¨ÛÙÚ©ÛÙÛ Ù¾ÛØ¯ÙÚÛØª ÙÙ word ÙÛÙØ±Ø§Ø¨Ûت. Ø¯ÙØªÙÙÛØª Ù¾Ø§Ú©Û Ø¨Ú©ÙÛÙÙ Ù¾ÛØ´ ئÙÙÙÛ Ø¨ÛÙÚ©ÛÙÛØ","error":"ÙÛÚ ÚÛÚ¯ÙÛÙÙ ÙÙØ¨ÙÙ ÙÙÙÚ©Ø§ÙØ¯ÙÛ Ø¯ÙÙÙک٠بÙÙÛÛ ÙÙÚµÙÚ©Û ÙØ§ÙÙØ®ÛÛÛ","title":"ÙÚ©Ø§ÙØ¯ÙÛ ÙÙÙØ§ÛÙÙ Word","toolbar":"ÙÚ©Ø§ÙØ¯ÙÛ ÙÙÚÛÛ Word"},"preview":{"preview":"Ù¾ÛØ´Ø¨ÛÙÛÙ"},"print":{"toolbar":"ÚØ§Ù¾Ú©Ø±Ø¯Ù"},"removeformat":{"toolbar":"ÙØ§Ø¨Ø±Ø¯ÙÛ Ø¯Ø§ÚØ´ØªÛÚ©Û"},"save":{"toolbar":"پاشÚ
©ÛÙØªÚ©Ø±Ø¯Ù"},"selectall":{"toolbar":"ÙÛØ´Ø§ÙکردÙÛ ÙÛÙ
ÙÙÛ"},"showblocks":{"toolbar":"ÙÛØ´Ø§ÙداÙÛ Ø¨ÛØ±Ø¨ÛستÛکاÙ"},"sourcearea":{"toolbar":"Ø³ÛØ±ÚاÙÛ"},"specialchar":{"options":"ÙÛÚµØ¨ÚØ§Ø±Ø¯ÛÛ ÙÙÙØ³ÛÛ ØªØ§ÛØ¨ÛتÛ","title":"ÙÛÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙÙØ³ÛÛ ØªØ§ÛØ¨ÛتÛ","toolbar":"Ø¯Ø§ÙØ§ÙÛÛ ÙÙÙØ³ÛÛ ØªØ§ÛØ¨ÛتÛ"},"scayt":{"about":"Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ SCAYT","aboutTab":"Ø¯ÙØ±Ø¨Ø§Ø±ÙÛ","addWord":"Ø²ÛØ§Ø¯Ú©Ø±Ø¯ÙÛ ÙÙØ´Ù","allCaps":"پشتگÙÛØ®Ø³ØªÙÛ ÙØ´Ø§ÙÙÛ Ù¾ÛÚ©ÙØ§ØªÙÙÙ ÙÙÙ¾ÛØªÛ Ú¯ÙÙØ±Ù","dic_create":"درÙÙØ³ØªÚ©Ø±Ø¯Ù","dic_delete":"سÚÛÙÙÙÙ","dic_field_name":"ÙØ§ÙÛ ÙÙØ±ÙÙÙÚ¯","dic_info":"ÙÙØ¨ÙÚÛÙÙØ¯Ø§ ÙÙØ±ÙÙÙÚ¯Û Ø¨ÙکارÙÛÙÙØ± Ú©Ûگاکرد٠کراÙÙ ÙÙ Ø´ÙکرÛÚ©Ù Cookie, ÙÙØ±ÚÛÙÛÙ Ø¨ÛØª Ø´ÙÚ©ÛØ±Ú©Ù سÙÙÙØ±Ø¯Ø§Ø± کراÙÙ ÙÙ ÙÙØ¨Ø§Ø±Ù Ú©ÛگاکردÙ.کاتÛÙ ÙÙØ±ÙÙÙÚ¯Û Ø¨ÙکارÙÛÙÙØ± Ú¯ÙÛØ´ØªÙ ئÙÙ
خاڵÙÛ Ú©ÙÙØ§ØªÙØ§ÙØ±Ûت Ø²ÛØ§ØªØ± Ú©ÛÚ¯Ø§Ú©Ø±Ø¯Ù Ø¨Ú©Ø±ÛØª ÙÙ Ø´ÙکرÛÚ©ÙØ ئÙÙØ³Ø§ ÙÙØ±ÙÙÙÚ¯ÙÚ©Ù Ù¾ÛÙÛØ³ØªÙ Ú©ÛÚ¯Ø§Ø¨Ú©Ø±ÛØª ÙÙ ÚØ§ÚÙÚ©ÙÛ Ø¦ÛÙ
Ù. Ø¨Û Ú©ÛگاکردÙÛ Ø²Ø§ÙÛØ§Ø±Û ØªØ§ÛØ¨ÙØªÛ ÙÙØ±ÙÙÙÚ¯ÙÚ©Ù ÙÙ ÚØ§ÚÙÚ©ÙÛ Ø¦ÛÙ
Ù, Ù¾ÛÙÛØ³ØªÙ ÙØ§ÙÛÙ ÙÙڵبÚÛØ±Ûت Ø¨Û ÙÙØ±ÙÙÙÚ¯ÙÚ©Ù. Ú¯ÙØ± ØªÛ ÙÙØ±ÙÙÙÚ¯ÛÚ©Û Ú©ÛÚ¯Ø§Ú©Ø±Ø§ÙØª ÙÙÛÙ, تکاÛÙ ÙØ§ÙÛ ÙÙØ±ÙÙÙÚ¯Ùک٠بÙÙÙØ³Ù ÙÙ Ú©ÙÛÚ©Û Ø¯ÙÚ¯Ù
ÙÛ Ú¯ÙÚØ§ÙدÙÙÙ٠بکÙ.","dic_rename":"Ú¯ÛÚÛÙÛ ÙØ§Ù","dic_restore":"Ú¯ÙÚØ§ÙدÙÙÙÙ","dictionariesTab":"ÙÙØ±ÙÙÙÚ¯ÙکاÙ","disable":"ÙØ§ÚØ§ÙØ§Ú©Ú©Ø±Ø¯ÙÛ SCAYT","emptyDic":"ÙØ§ÙÛ ÙÙØ±ÙÙÙÚ¯ ÙØ§Ø¨Ûت Ø®Ø§ÚµÛ Ø¨ÛØª.","enable":"ÚØ§ÙاککردÙÛ SCAYT","ignore":"پشتگÙÛØ®Ø³ØªÙ","ignoreAll":"پشتگÙÛØ®Ø³ØªÙÛ ÙÙÙ
ÙÙÛ","ignoreDomainNames":"پشتگÙÛØ®Ø³ØªÙÛ Ø¯ÛÙ
ÙÛÙ","langs":"زÙ
اÙÙکاÙ","languagesTab":"Ø
²Ù
اÙÙکاÙ","mixedCase":"پشتگÙÛØ®Ø³ØªÙÛ ÙØ´Ø§ÙÙÛ Ù¾ÛÚ©ÙØ§ØªÙÙÙ ÙÙÙ¾ÛØªÛ Ú¯ÙÙØ±Ù٠بÚÙÙÙ","mixedWithDigits":"پشتگÙÛØ®Ø³ØªÙÛ ÙØ´Ø§ÙÙÛ Ù¾ÛÚ©ÙØ§ØªÙÙÙ ÙÙÚÙ
ارÙ","moreSuggestions":"Ù¾ÛØ´ÙÛØ§Ø±Û Ø²ÛØ§ØªØ±","opera_title":"پشتÛÙØ§ÙÛ ÙÙکراÙÙ ÙÙÙØ§ÛÙÙ Opera","options":"ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù","optionsTab":"ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù","title":"پشکÙÛÙÛ ÙÙÙØ³Ù ÙÙÚ©Ø§ØªÛ ÙÙÙØ³ÛÙ","toggle":"Ú¯ÛÚÛÙÛ SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Ø´ÛÙØ§Ø²","panelTitle":"Ø´ÛÙØ§Ø²Û ÚØ§Ø²Ø§ÙدÙÙÙÙ","panelTitle1":"Ø´ÛÙØ§Ø²Û خشت","panelTitle2":"Ø´ÛÙØ§Ø²Û ÙØ§ÙÙÛÚµ","panelTitle3":"Ø´ÛÙØ§Ø²Û Ø¨ÙØ±Ú©Ø§Ø±"},"table":{"border":"Ú¯ÙÙØ±ÙÛÛ Ù¾ÙØ±Ø§ÙÛØ²","caption":"Ø³ÙØ±Ø¯ÛÚ","cell":{"menu":"خاÙÙ","insertBefore":"Ø¯Ø§ÙØ§ÙÛ Ø®Ø§ÙÙ ÙÙÙ¾ÛØ´","insertAfter":"Ø¯Ø§ÙØ§ÙÛ Ø®Ø§ÙÙ ÙÙپاش","deleteCell":"سÚÛÙÙÙÙÛ Ø®Ø§ÙÙ","merge":"تÛÚ©ÙÚµÚ©Ø
±Ø¯ÙÛ Ø®Ø§ÙÙ","mergeRight":"تÛÚ©ÙڵکردÙÛ ÙÙÚ¯ÙÚµ ÚØ§Ø³Øª","mergeDown":"تÛÚ©ÙڵکردÙÛ ÙÙÚ¯ÙÚµ Ø®ÙØ§Ø±ÙÙÙ","splitHorizontal":"Ø¯Ø§Ø¨ÙØ´Ú©Ø±Ø¯ÙÛ Ø®Ø§ÙÙÛ Ø¦Ø§Ø³ÛÛÛ","splitVertical":"Ø¯Ø§Ø¨ÙØ´Ú©Ø±Ø¯ÙÛ Ø®Ø§ÙÙÛ Ø¦ÙØ³ØªÙÙÛ","title":"خاسÛÙØªÛ خاÙÙ","cellType":"Ø¬ÛØ±Û خاÙÙ","rowSpan":"Ù
اÙÙÛ ÙÛÙØ§Ù ÚÛØ²","colSpan":"Ø¨Ø³ØªÛ Ø¦ÙØ³ØªÙÙÛ","wordWrap":"Ù¾ÛÚØ§ÙÙÙÙÛ ÙØ´Ù","hAlign":"ÚÛØ²Ú©Ø±Ø¯ÙÛ Ø¦Ø§Ø³ÛÛÛ","vAlign":"ÚÛØ²Ú©Ø±Ø¯ÙÛ Ø¦ÙØ³ØªÙÙÛ","alignBaseline":"ÙÛÚµÙØ¨ÙÙÚÙØª","bgColor":"ÚÙÙÚ¯Û Ù¾Ø§Ø´Ø¨ÙÙÙ
ا","borderColor":"ÚÙÙÚ¯Û Ù¾ÙØ±Ø§ÙÛØ²","data":"داتا","header":"Ø³ÙØ±Ù¾ÙÚÙ","yes":"بÙÚµÛ","no":"ÙÙØ®Ûر","invalidWidth":"پاÙÛ Ø®Ø§ÙÙ Ø¯ÙØ¨Ûت Ø¨ÙØªÙÙØ§ÙÛ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","invalidHeight":"درÛÚÛ Ø®Ø§ÙÙ Ø¨ÙØªÙÙØ§ÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","invalidRowSpan":"Ù
اÙÙÛ ÙÛÙØ§Ù ÚÛØ² Ø¨ÙØªÙÙØ§ÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª
.","invalidColSpan":"Ù
اÙÙÛ ÙÛÙØ§Ù Ø¦ÙØ³ØªÙÙÛ Ø¨ÙØªÙÙØ§ÙÛ Ø¯ÙØ¨Ûت ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","chooseColor":"ÙÙÚµØ¨ÚØ§Ø±Ø¯Ù"},"cellPad":"Ø¨ÛØ´Ø§ÛÛ ÙØ§ÙÙ¾ÛØ´","cellSpace":"Ø¨ÛØ´Ø§ÛÛ Ø®Ø§ÙÙ","column":{"menu":"Ø¦ÙØ³ØªÙÙ","insertBefore":"Ø¯Ø§ÙØ§ÙÛ Ø¦ÙØ³ØªÙÙ ÙÙÙ¾ÛØ´","insertAfter":"Ø¯Ø§ÙØ§ÙÛ Ø¦ÙØ³ØªÙÙÙ ÙÙپاش","deleteColumn":"سÚÛÙÙÙÙÛ Ø¦ÙØ³ØªÙÙÙ"},"columns":"ستÙÙÙÙکاÙ","deleteTable":"سÚÛÙÙÙÙÛ Ø®Ø´ØªÙ","headers":"Ø³ÙØ±Ù¾ÙÚÙ","headersBoth":"ÙÙØ±Ø¯ÙÙÙ","headersColumn":"ÛÙÚ©ÙÙ
Ø¦ÙØ³ØªÙÙÙ","headersNone":"ÙÛÚ","headersRow":"ÛÙÚ©ÙÙ
ÚÛØ²","invalidBorder":"ÚÙ
ارÙÛ Ù¾ÙØ±Ø§ÙÛØ² Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","invalidCellPadding":"ÙØ§ÙÙ¾ÛØ´Û خاÙÙ Ø¯ÙØ¨Ûت ÚÙ
ارÙÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª.","invalidCellSpacing":"Ø¨ÛØ´Ø§ÛÛ Ø®Ø§ÙÙ Ø¯ÙØ¨Ûت ÚÙ
ارÙÚ©Û Ø¯Ø±ÙÙØ³Øª Ø¨ÛØª.","invalidCols":"ÚÙ
ارÙÛ Ø¦ÙØ³ØªÙÙÙÛ Ø¯ÙØ¨Ûت Ú¯ÙÙØ±Ùتر Ø¨ÛØª
ÙÙÚÙ
ارÙÛ 0.","invalidHeight":"درÛÚÛ Ø®Ø´ØªÙ Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","invalidRows":"ÚÙ
ارÙÛ ÚÛØ² Ø¯ÙØ¨Ûت Ú¯ÙÙØ±Ùتر Ø¨ÛØª ÙÙÚÙ
ارÙÛ 0.","invalidWidth":"پاÙÛ Ø®Ø´ØªÙ Ø¯ÙØ¨Ûت تÙÙÙØ§ ÚÙ
Ø§Ø±Ù Ø¨ÛØª.","menu":"خاسÛÙØªÛ خشتÙ","row":{"menu":"ÚÛØ²","insertBefore":"Ø¯Ø§ÙØ§ÙÛ ÚÛØ² ÙÙÙ¾ÛØ´","insertAfter":"Ø¯Ø§ÙØ§ÙÛ ÚÛØ² ÙÙپاش","deleteRow":"سÚÛÙÙÙÙÛ ÚÛØ²"},"rows":"ÚÛØ²","summary":"Ú©ÙØ±ØªÙ","title":"خاسÛÙØªÛ خشتÙ","toolbar":"خشتÙ","widthPc":"ÙÙØ³Ùدا","widthPx":"ÙÛÙÙØ®Ø§Úµ - Ù¾ÛکسÙ","widthUnit":"پاÙÛ ÛÙÚ©Ù"},"undo":{"redo":"ÙÛÚµÚ¯ÛÚØ§ÙدÙÛÙÙ","undo":"Ù¾ÙÙÚکردÙÛÙÙ"},"wsc":{"btnIgnore":"پشتگÙÛ Ú©Ø±Ø¯Ù","btnIgnoreAll":"پشتگÙÛکردÙÛ ÙÙÙ
ÙÙÛ","btnReplace":"ÙÙØ¨Ø±ÛداÙÙ","btnReplaceAll":"ÙÙØ¨Ø±ÛØ¯Ø§ÙØ§ÙÛ ÙÙÙ
ÙÙÛ","btnUndo":"Ù¾ÙÙÚکردÙÙÙÙ","changeTo":"Ú¯ÛÚÛÙÛ Ø¨Û","errorLoading":
"ÙÙÚµÙ ÙÙÙÛÙØ§ÙÛ Ø¯Ø§Ø®ÙØ§Ø²ÛÙØ§Ù
ÙÛ Ø®Ø§ÙÙØ®ÛÛÛ ÚØ§ÚÙ: %s.","ieSpellDownload":"پشکÙÛÙÛ ÚÛÙÙÙØ³ داÙÙÙ
زراÙÙ. Ø¯ÙØªÙÙÛØª Ø¦ÛØ³ØªØ§ Ø¯Ø§ÛØ¨Ú¯Ø±Ûت?","manyChanges":"پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÙÙØ³Ùدا %1 Û ÙØ´Ùکا٠گÛÚØ¯Ø±Ø§","noChanges":"پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÙÛÚ ÙØ´ÙÛÙÙ ÙÛÚ¯ÛÚØ¯Ø±Ø§","noMispell":"پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÙÛÚ ÙÙÚµÙÛÙÚ©Û ÚÛÙÙÙØ³ ÙÙØ¯ÛزراÙÙ","noSuggestions":"- ÙÛÚ Ù¾ÛØ´ÙÛØ§Ø±ÛÙ -","notAvailable":"ببÙÙØ±ÙØ ÙÙÙ
Ú©Ø§ØªÙØ¯Ø§ ÚØ§ÚÙÚ©Ù ÙÙØ¨ÙØ±Ø¯ÙØ³ØªØ§ ÙÛÙ.","notInDic":"ÙÙÙÙØ±ÙÙÙÚ¯ داÙÛÙ","oneChange":"پشکÙÛÙÛ ÚÛÙÙÙØ³ Ú©ÛØªØ§Û ÙØ§Øª: ÛÙÙ ÙØ´Ù Ú¯ÛÚØ¯Ø±Ø§","progress":"پشکÙÛÙÛ ÚÛÙÙÙØ³ ÙÙØ¨ÙردÙÙØ§Ù
بÙÙ٠داÛÙ...","title":"پشکÙÛÙÛ ÚÛÙÙÙØ³","toolbar":"پشکÙÛÙÛ ÚÛÙÙÙØ³"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/lt.js b/share/static/RichText/lang/lt.js
index 9ff92eb..5490856 100644
--- a/share/static/RichText/lang/lt.js
+++ b/share/static/RichText/lang/lt.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.lt={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Å altinis',newPage:'Naujas puslapis',save:'IÅ¡saugoti',preview:'PeržiÅ«ra',cut:'IÅ¡kirpti',copy:'Kopijuoti',paste:'Ä®dÄti',print:'Spausdinti',underline:'Pabrauktas',bold:'Pusjuodis',italic:'Kursyvas',selectAll:'PažymÄti viskÄ
',removeFormat:'Panaikinti formatÄ
',strike:'Perbrauktas',subscript:'Apatinis indeksas',superscript:'VirÅ¡utinis indeksas',horizontalrule:'Ä®terpti horizontaliÄ
linijÄ
',pagebreak:'Ä®terpti puslapių skirtukÄ
',unlink:'Panaikinti nuorodÄ
',undo:'AtÅ¡aukti',redo:'Atstatyti',common:{browseServer:'NarÅ¡yti po serverį',url:'URL',protocol:'Protokolas',upload:'Siųsti',uploadSubmit:'Siųsti į serverį',image:'Vaizdas',flash:'Flash',form:'Forma',checkbox:'Žymimasis langelis',radio:'Žymimoji akutÄ',textField:'Teksto laukas',textarea:'Teksto sritis',hiddenField:'Nerodomas laukas',button:'Mygtukas',select:'Atrankos la
ukas',imageButton:'Vaizdinis mygtukas',notSet:'<nÄra nustatyta>',id:'Id',name:'Vardas',langDir:'Teksto kryptis',langDirLtr:'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',langDirRtl:'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',langCode:'Kalbos kodas',longDescr:'Ilgas apraÅ¡ymas URL',cssClass:'Stilių lentelÄs klasÄs',advisoryTitle:'KonsultacinÄ antraÅ¡tÄ',cssStyle:'Stilius',ok:'OK',cancel:'Nutraukti',close:'Close',preview:'Preview',generalTab:'Bendros savybÄs',advancedTab:'Papildomas',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet
Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Ä®terpti specialų simbolį',title:'Pasirinkite specialų simbolį',options:'Special Character Options'},link:{toolbar:'Ä®terpti/taisyti nuorodÄ
',other:'<kitas>',menu:'Taisyti nuorodÄ
',title:'Nuoroda',info:'Nuorodos informacija',target:'Paskirties vieta',upload:'Siųsti',advanced:'Papildomas',type:'Nuorodos tipas',toUrl:'URL',toAnchor:'ŽymÄ Å¡iame puslapyje',toEmail:'El.paÅ¡tas',targetFrame:'<kadras>',targetPopup:'<iÅ¡skleidžiamas langas>',targetFrameName:'Paskirties kadro vardas',targetPopupName:'Paskirties lango vardas',popupFeatures:'IÅ¡skleidžiamo lango savybÄs',popupResizable:'Resizable',popupStatusBar:'BÅ«senos juosta',popupLocationBar:'Adreso juosta',popupToolbar:'Mygtukų juosta',popupMenuBar:'Meniu juosta',popupFullScreen:'Visas ekranas (IE)',popupScrollBars:'Slinkties juostos',popupDependent:'Priklausomas (Netscap
e)',popupWidth:'Plotis',popupLeft:'KairÄ pozicija',popupHeight:'AukÅ¡tis',popupTop:'VirÅ¡utinÄ pozicija',id:'Id',langDir:'Teksto kryptis',langDirLTR:'IÅ¡ kairÄs į deÅ¡inÄ (LTR)',langDirRTL:'IÅ¡ deÅ¡inÄs į kairÄ (RTL)',acccessKey:'Prieigos raktas',name:'Vardas',langCode:'Teksto kryptis',tabIndex:'Tabuliavimo indeksas',advisoryTitle:'KonsultacinÄ antraÅ¡tÄ',advisoryContentType:'Konsultacinio turinio tipas',cssClasses:'Stilių lentelÄs klasÄs',charset:'Susietų iÅ¡teklių simbolių lentelÄ',styles:'Stilius',selectAnchor:'Pasirinkite žymÄ',anchorName:'Pagal žymÄs vardÄ
',anchorId:'Pagal žymÄs Id',emailAddress:'El.paÅ¡to adresas',emailSubject:'ŽinutÄs tema',emailBody:'ŽinutÄs turinys',noAnchors:'(Å iame dokumente žymių nÄra)',noUrl:'PraÅ¡ome įvesti nuorodos URL',noEmail:'PraÅ¡ome įvesti el.paÅ¡to adresÄ
'},anchor:{toolbar:'Ä®terpti/modifikuoti žymÄ',menu:'ŽymÄs savybÄs',title:'ŽymÄs savybÄs',name:'ŽymÄs vardas',errorName:'PraÅ¡ome įvesti žy
mÄs vardÄ
'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Surasti ir pakeisti',find:'Rasti',replace:'Pakeisti',findWhat:'Surasti tekstÄ
:',replaceWith:'Pakeisti tekstu:',notFoundMsg:'Nurodytas tekstas nerastas.',matchCase:'Skirti didžiÄ
sias ir mažÄ
sias raides',matchWord:'Atitikti pilnÄ
žodį',matchCyclic:'Match cyclic',repla
ceAll:'Pakeisti viskÄ
',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'LentelÄ',title:'LentelÄs savybÄs',menu:'LentelÄs savybÄs',deleteTable:'Å alinti lentelÄ',rows:'EilutÄs',columns:'Stulpeliai',border:'RÄmelio dydis',align:'Lygiuoti',alignLeft:'KairÄ',alignCenter:'CentrÄ
',alignRight:'DeÅ¡inÄ',width:'Plotis',widthPx:'taÅ¡kais',widthPc:'procentais',widthUnit:'width unit',height:'AukÅ¡tis',cellSpace:'Tarpas tarp langelių',cellPad:'Trapas nuo langelio rÄmo iki teksto',caption:'AntraÅ¡tÄ',summary:'Santrauka',headers:'AntraÅ¡tÄs',headersNone:'NÄra',headersColumn:'Pirmas stulpelis',headersRow:'Pirma eilutÄ',headersBoth:'Abu',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCel
lPadding:'Cell padding must be a number.',cell:{menu:'Langelis',insertBefore:'Ä®terpti langelį prieÅ¡',insertAfter:'Ä®terpti langelį po',deleteCell:'Å alinti langelius',merge:'Sujungti langelius',mergeRight:'Sujungti su deÅ¡ine',mergeDown:'Sujungti su apaÄia',splitHorizontal:'Skaidyti langelį horizontaliai',splitVertical:'Skaidyti langelį vertikaliai',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'EilutÄ',insertBefore:'Ä®terpti eilutÄ prieÅ¡',inser
tAfter:'Ä®terpti eilutÄ po',deleteRow:'Å alinti eilutes'},column:{menu:'Stulpelis',insertBefore:'Ä®terpti stulpelį prieÅ¡',insertAfter:'Ä®terpti stulpelį po',deleteColumn:'Å alinti stulpelius'}},button:{title:'Mygtuko savybÄs',text:'Tekstas (ReikÅ¡mÄ)',type:'Tipas',typeBtn:'Mygtukas',typeSbm:'Siųsti',typeRst:'IÅ¡valyti'},checkboxAndRadio:{checkboxTitle:'Žymimojo langelio savybÄs',radioTitle:'Žymimosios akutÄs savybÄs',value:'ReikÅ¡mÄ',selected:'PažymÄtas'},form:{title:'Formos savybÄs',menu:'Formos savybÄs',action:'Veiksmas',method:'Metodas',encoding:'Encoding'},select:{title:'Atrankos lauko savybÄs',selectInfo:'Informacija',opAvail:'Galimos parinktys',value:'ReikÅ¡mÄ',size:'Dydis',lines:'eiluÄių',chkMulti:'Leisti daugeriopÄ
atrankÄ
',opText:'Tekstas',opValue:'ReikÅ¡mÄ',btnAdd:'Ä®traukti',btnModify:'Modifikuoti',btnUp:'AukÅ¡tyn',btnDown:'Žemyn',btnSetValue:'Laikyti pažymÄta reikÅ¡me',btnDelete:'Trinti'},textarea:{title:'Teksto srities savybÄs',cols:'
Ilgis',rows:'Plotis'},textfield:{title:'Teksto lauko savybÄs',name:'Vardas',value:'ReikÅ¡mÄ',charWidth:'Ilgis simboliais',maxChars:'Maksimalus simbolių skaiÄius',type:'Tipas',typeText:'Tekstas',typePass:'Slaptažodis'},hidden:{title:'Nerodomo lauko savybÄs',name:'Vardas',value:'ReikÅ¡mÄ'},image:{title:'Vaizdo savybÄs',titleButton:'Vaizdinio mygtuko savybÄs',menu:'Vaizdo savybÄs',infoTab:'Vaizdo informacija',btnUpload:'Siųsti į serverį',upload:'Nusiųsti',alt:'Alternatyvus Tekstas',width:'Plotis',height:'AukÅ¡tis',lockRatio:'IÅ¡laikyti proporcijÄ
',unlockRatio:'Unlock Ratio',resetSize:'Atstatyti dydį',border:'RÄmelis',hSpace:'Hor.ErdvÄ',vSpace:'Vert.ErdvÄ',align:'Lygiuoti',alignLeft:'KairÄ',alignRight:'DeÅ¡inÄ',alertUrl:'PraÅ¡ome įvesti vaizdo URL',linkTab:'Nuoroda',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is mis
sing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash savybÄs',propertiesTab:'Properties',title:'Flash savybÄs',chkPlay:'Automatinis paleidimas',chkLoop:'Ciklas',chkMenu:'Leisti Flash meniu',chkFull:'Allow Fullscreen',scale:'Mastelis',scaleAll:'Rodyti visÄ
',scaleNoBorder:'Be rÄmelio',scaleFit:'Tikslus atitikimas',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Lygiuoti',alignLeft:'KairÄ',alignAbsBottom:'AbsoliuÄiÄ
apaÄiÄ
',alignAbsMiddle:'Absoliutų vidurį',alignBaseline:'ApatinÄ linijÄ
',alignBottom:'ApaÄiÄ
',alignMiddle:'Vidurį',alignRight:'DeÅ¡inÄ',alignTextTop:'Teksto viršūnÄ',alignTop:'ViršūnÄ',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',quality
Medium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Fono spalva',width:'Plotis',height:'AukÅ¡tis',hSpace:'Hor.ErdvÄ',vSpace:'Vert.ErdvÄ',validateSrc:'PraÅ¡ome įvesti nuorodos URL',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'RaÅ¡ybos tikrinimas',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Žodyne nerastas',changeTo:'Pakeisti į',btnIgnore:'Ignoruoti',btnIgnoreAll:'Ignoruoti visus',btnReplace:'Pakeisti',btnReplaceAll:'Pakeisti visus',btnUndo:'AtÅ¡aukti',noSuggestions:'- NÄra pasiÅ«lymų -',progress:'Vyksta raÅ¡ybos tikrinimas...',noMispell:'RaÅ¡ybos tikrinimas baigtas: Nerasta
raÅ¡ybos klaidų',noChanges:'RaÅ¡ybos tikrinimas baigtas: NÄra pakeistų žodžių',oneChange:'RaÅ¡ybos tikrinimas baigtas: Vienas žodis pakeistas',manyChanges:'RaÅ¡ybos tikrinimas baigtas: Pakeista %1 žodžių',ieSpellDownload:'RaÅ¡ybos tikrinimas neinstaliuotas. Ar JÅ«s norite jį dabar atsisiųsti?'},smiley:{toolbar:'Veideliai',title:'Ä®terpti veidelį',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Numeruotas sÄ
raÅ¡as',bulletedlist:'Suženklintas sÄ
raÅ¡as',indent:'Padidinti įtraukÄ
',outdent:'Sumažinti įtraukÄ
',justify:{left:'Lygiuoti kairÄ',center:'Centruoti',right:'Lygiuoti deÅ¡inÄ',block:'Lygiuoti abi puses'},blockquote:'Citata',clipboard:{title:'Ä®dÄti',cutError:'JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti iÅ¡kirpimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+X).',copyError:'JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡ka
i įvykdyti kopijavimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+C).',pasteMsg:'Žemiau esanÄiame įvedimo lauke įdÄkite tekstÄ
, naudodami klaviatÅ«rÄ
(<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtukÄ
<STRONG>OK</STRONG>.',securityMsg:'DÄl jÅ«sų narÅ¡yklÄs saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti dar kartÄ
į šį langÄ
.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Ä®dÄti iÅ¡ Word',title:'Ä®dÄti iÅ¡ Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Ä®dÄti kaip grynÄ
tekstÄ
',title:'Ä®dÄti kaip grynÄ
tekstÄ
'},templates:{button:'Å ablonai',title:'Turinio Å¡ablonai',options:'Template Options',insertOption:'Pakeisti dabartinį turinį pasirinktu Å¡ablonu',selectPromptMsg:'Pasirinkite norimÄ
Å¡ablonÄ
<br>(<b>
DÄmesio!</b> esamas turinys bus prarastas):',emptyListMsg:'(Å ablonų sÄ
raÅ¡as tuÅ¡Äias)'},showBlocks:'Rodyti blokus',stylesCombo:{label:'Stilius',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Å rifto formatas',panelTitle:'Å rifto formatas',tag_p:'Normalus',tag_pre:'Formuotas',tag_address:'Kreipinio',tag_h1:'AntraÅ¡tinis 1',tag_h2:'AntraÅ¡tinis 2',tag_h3:'AntraÅ¡tinis 3',tag_h4:'AntraÅ¡tinis 4',tag_h5:'AntraÅ¡tinis 5',tag_h6:'AntraÅ¡tinis 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Å rift
as',voiceLabel:'Font',panelTitle:'Šriftas'},fontSize:{label:'Šrifto dydis',voiceLabel:'Font Size',panelTitle:'Šrifto dydis'},colorButton:{textColorTitle:'Teksto spalva',bgColorTitle:'Fono spalva',panelTitle:'Colors',auto:'Automatinis',more:'Daugiau spalvų...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'
White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should s
pecify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['lt']={"dir":"ltr","editor":"Pilnas redaktorius","common":{"editorHelp":"Spauskite ALT 0 dÄl pagalbos","browseServer":"NarÅ¡yti po serverį","url":"URL","protocol":"Protokolas","upload":"Siųsti","uploadSubmit":"Siųsti į serverį","image":"Vaizdas","flash":"Flash","form":"Forma","checkbox":"Žymimasis langelis","radio":"Žymimoji akutÄ","textField":"Teksto laukas","textarea":"Teksto sritis","hiddenField":"Nerodomas laukas","button":"Mygtukas","select":"Atrankos laukas","imageButton":"Vaizdinis mygtukas","notSet":"<nÄra nustatyta>","id":"Id","name":"Vardas","langDir":"Teksto kryptis","langDirLtr":"IÅ¡ kairÄs į deÅ¡inÄ (LTR)","langDirRtl":"IÅ¡ deÅ¡inÄs į kairÄ (RTL)","langCode":"Kalbos kodas","longDescr":"Ilgas apraÅ¡ymas URL","cssClass":"Stilių lentelÄs klasÄs","advisoryTitle":"KonsultacinÄ antraÅ¡tÄ","cssStyle":"Stilius","ok":"OK","cancel":"Nutraukti","close":"Uždaryti","preview":"PeržiÅ«rÄti","resize":"Pavilkite, kad pakeistumÄte dydį","ge
neralTab":"Bendros savybÄs","advancedTab":"Papildomas","validateNumberFailed":"Å i reikÅ¡mÄ nÄra skaiÄius.","confirmNewPage":"Visas neiÅ¡saugotas turinys bus prarastas. Ar tikrai norite įkrauti naujÄ
puslapį?","confirmCancel":"Kai kurie parametrai pasikeitÄ. Ar tikrai norite užverti langÄ
?","options":"Parametrai","target":"TikslinÄ nuoroda","targetNew":"Naujas langas (_blank)","targetTop":"VirÅ¡utinis langas (_top)","targetSelf":"Esamas langas (_self)","targetParent":"Paskutinis langas (_parent)","langDirLTR":"IÅ¡ kairÄs į deÅ¡inÄ (LTR)","langDirRTL":"IÅ¡ deÅ¡inÄs į kairÄ (RTL)","styles":"Stilius","cssClasses":"Stilių klasÄs","width":"Plotis","height":"AukÅ¡tis","align":"Lygiuoti","alignLeft":"KairÄ","alignRight":"DeÅ¡inÄ","alignCenter":"CentrÄ
","alignTop":"ViršūnÄ","alignMiddle":"Vidurį","alignBottom":"ApaÄiÄ
","invalidValue":"Invalid value.","invalidHeight":"AukÅ¡tis turi bÅ«ti nurodytas skaiÄiais.","invalidWidth":"Plotis turi bÅ«ti nurodytas sk
aiÄiais.","invalidCssLength":"ReikÅ¡mÄ nurodyta \"%1\" laukui, turi bÅ«ti teigiamas skaiÄius su arba be tinkamo CSS matavimo vieneto (px, %, in, cm, mm, em, ex, pt arba pc).","invalidHtmlLength":"ReikÅ¡mÄ nurodyta \"%1\" laukui, turi bÅ«ti teigiamas skaiÄius su arba be tinkamo HTML matavimo vieneto (px arba %).","invalidInlineStyle":"ReikÅ¡mÄ nurodyta vidiniame stiliuje turi bÅ«ti sudaryta iÅ¡ vieno Å¡ių reikÅ¡mių \"vardas : reikÅ¡mÄ\", atskirta kabliataÅ¡kiais.","cssLengthTooltip":"Ä®veskite reikÅ¡mÄ pikseliais arba skaiÄiais su tinkamu CSS vienetu (px, %, in, cm, mm, em, ex, pt arba pc).","unavailable":"%1<span class=\"cke_accessibility\">, netinkamas</span>"},"about":{"copy":"Copyright © $1. Visos teiss saugomos.","dlgTitle":"Apie CKEditor","help":"Patikrinkite $1 dÄl pagalbos.","moreInfo":"DÄl licencijavimo apsilankykite mÅ«sų svetainÄje:","title":"Apie CKEditor","userGuide":"CKEditor Vartotojo Gidas"},"basicstyles":{"bold":"Pusjuodis","italic":"Kursy
vas","strike":"Perbrauktas","subscript":"Apatinis indeksas","superscript":"VirÅ¡utinis indeksas","underline":"Pabrauktas"},"bidi":{"ltr":"Tekstas iÅ¡ kairÄs į deÅ¡inÄ","rtl":"Tekstas iÅ¡ deÅ¡inÄs į kairÄ"},"blockquote":{"toolbar":"Citata"},"clipboard":{"copy":"Kopijuoti","copyError":"JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti kopijavimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+C).","cut":"IÅ¡kirpti","cutError":"JÅ«sų narÅ¡yklÄs saugumo nustatymai neleidžia redaktoriui automatiÅ¡kai įvykdyti iÅ¡kirpimo operacijų. Tam praÅ¡ome naudoti klaviatÅ«rÄ
(Ctrl/Cmd+X).","paste":"Ä®dÄti","pasteArea":"Ä®kelti dalį","pasteMsg":"Žemiau esanÄiame įvedimo lauke įdÄkite tekstÄ
, naudodami klaviatÅ«rÄ
(<STRONG>Ctrl/Cmd+V</STRONG>) ir paspauskite mygtukÄ
<STRONG>OK</STRONG>.","securityMsg":"DÄl jÅ«sų narÅ¡yklÄs saugumo nustatymų, redaktorius negali tiesiogiai pasiekti laikinosios atminties. Jums reikia nukopijuoti
dar kartÄ
į šį langÄ
.","title":"Ä®dÄti"},"colorbutton":{"auto":"Automatinis","bgColorTitle":"Fono spalva","colors":{"000":"Juoda","800000":"KaÅ¡toninÄ","8B4513":"Tamsiai ruda","2F4F4F":"Pilka tamsaus Å¡iferio","008080":"Teal","000080":"Karinis","4B0082":"Indigo","696969":"Tamsiai pilka","B22222":"Ugnies","A52A2A":"Ruda","DAA520":"Aukso","006400":"Tamsiai žalia","40E0D0":"Turquoise","0000CD":"VidutinÄ mÄlyna","800080":"VioletinÄ","808080":"Pilka","F00":"Raudona","FF8C00":"Tamsiai oranžinÄ","FFD700":"AuksinÄ","008000":"Žalia","0FF":"Žydra","00F":"MÄlyna","EE82EE":"VioletinÄ","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"OranžinÄ","FFFF00":"Geltona","00FF00":"Citrinų","AFEEEE":"Pale Turquoise","ADD8E6":"Å viesiai mÄlyna","DDA0DD":"Plum","D3D3D3":"Å viesiai pilka","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Å viesiai geltona","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"Balta"},"more":"Daugi
au spalvų...","panelTitle":"Spalva","textColorTitle":"Teksto spalva"},"colordialog":{"clear":"IÅ¡valyti","highlight":"ParyÅ¡kinti","options":"Spalvos nustatymai","selected":"Pasirinkta spalva","title":"Pasirinkite spalvÄ
"},"templates":{"button":"Å ablonai","emptyListMsg":"(Å ablonų sÄ
raÅ¡as tuÅ¡Äias)","insertOption":"Pakeisti dabartinį turinį pasirinktu Å¡ablonu","options":"Template Options","selectPromptMsg":"Pasirinkite norimÄ
Å¡ablonÄ
<br>(<b>DÄmesio!</b> esamas turinys bus prarastas):","title":"Turinio Å¡ablonai"},"contextmenu":{"options":"Kontekstinio meniu parametrai"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Patariamas pavadinimas","cssClassInputLabel":"Stilių klasÄs","edit":"Redaguoti Div","inlineStyleInputLabel":"Vidiniai stiliai","langDirLTRLabel":"IÅ¡ kairÄs į deÅ¡inÄ (LTR)","langDirLabel":"Kalbos nurodymai","langDirRTLLabel":"IÅ¡ deÅ¡inÄs į kairÄ (RTL)","languageCodeInputLabel":" Kalbos kodas","remove":"PaÅ¡alinti Div","styleSelectLa
bel":"Stilius","title":"Sukurti Div elementÄ
","toolbar":"Sukurti Div elementÄ
"},"toolbar":{"toolbarCollapse":"Apjungti įrankių juostÄ
","toolbarExpand":"IÅ¡plÄsti įrankių juostÄ
","toolbarGroups":{"document":"Dokumentas","clipboard":"AtmintinÄ/Atgal","editing":"Redagavimas","forms":"Formos","basicstyles":"Pagrindiniai stiliai","paragraph":"Paragrafas","links":"Nuorodos","insert":"Ä®terpti","styles":"Stiliai","colors":"Spalvos","tools":"Ä®rankiai"},"toolbars":"Redaktoriaus įrankiai"},"elementspath":{"eleLabel":"Elemento kelias","eleTitle":"%1 elementas"},"list":{"bulletedlist":"Suženklintas sÄ
raÅ¡as","numberedlist":"Numeruotas sÄ
raÅ¡as"},"indent":{"indent":"Padidinti įtraukÄ
","outdent":"Sumažinti įtraukÄ
"},"find":{"find":"Rasti","findOptions":"PaieÅ¡kos nustatymai","findWhat":"Surasti tekstÄ
:","matchCase":"Skirti didžiÄ
sias ir mažÄ
sias raides","matchCyclic":"Sutampantis cikliÅ¡kumas","matchWord":"Atitikti pilnÄ
žodį","notFoundMsg":"Nurodytas tekstas n
erastas.","replace":"Pakeisti","replaceAll":"Pakeisti viskÄ
","replaceSuccessMsg":"%1 sutapimas(ų) buvo pakeisti.","replaceWith":"Pakeisti tekstu:","title":"Surasti ir pakeisti"},"fakeobjects":{"anchor":"ŽymÄ","flash":"Flash animacija","hiddenfield":"PaslÄptas laukas","iframe":"IFrame","unknown":"Nežinomas objektas"},"flash":{"access":"Skripto priÄjimas","accessAlways":"Visada","accessNever":"Niekada","accessSameDomain":"Tas pats domenas","alignAbsBottom":"AbsoliuÄiÄ
apaÄiÄ
","alignAbsMiddle":"Absoliutų vidurį","alignBaseline":"ApatinÄ linijÄ
","alignTextTop":"Teksto viršūnÄ","bgcolor":"Fono spalva","chkFull":"Leisti per visÄ
ekranÄ
","chkLoop":"Ciklas","chkMenu":"Leisti Flash meniu","chkPlay":"Automatinis paleidimas","flashvars":"Flash kintamieji","hSpace":"Hor.ErdvÄ","properties":"Flash savybÄs","propertiesTab":"Nustatymai","quality":"KokybÄ","qualityAutoHigh":"AutomatiÅ¡kai Gera","qualityAutoLow":"AutomatiÅ¡kai Žema","qualityBest":"Geriausia","qualityH
igh":"Gera","qualityLow":"Žema","qualityMedium":"VidutinÄ","scale":"Mastelis","scaleAll":"Rodyti visÄ
","scaleFit":"Tikslus atitikimas","scaleNoBorder":"Be rÄmelio","title":"Flash savybÄs","vSpace":"Vert.ErdvÄ","validateHSpace":"HSpace turi bÅ«ti skaiÄius.","validateSrc":"PraÅ¡ome įvesti nuorodos URL","validateVSpace":"VSpace turi bÅ«ti skaiÄius.","windowMode":"Lango režimas","windowModeOpaque":"Nepermatomas","windowModeTransparent":"Permatomas","windowModeWindow":"Langas"},"font":{"fontSize":{"label":"Å rifto dydis","voiceLabel":"Å rifto dydis","panelTitle":"Å rifto dydis"},"label":"Å riftas","panelTitle":"Å riftas","voiceLabel":"Å riftas"},"forms":{"button":{"title":"Mygtuko savybÄs","text":"Tekstas (ReikÅ¡mÄ)","type":"Tipas","typeBtn":"Mygtukas","typeSbm":"Siųsti","typeRst":"IÅ¡valyti"},"checkboxAndRadio":{"checkboxTitle":"Žymimojo langelio savybÄs","radioTitle":"Žymimosios akutÄs savybÄs","value":"ReikÅ¡mÄ","selected":"PažymÄtas"},"form":{"title":"For
mos savybÄs","menu":"Formos savybÄs","action":"Veiksmas","method":"Metodas","encoding":"Kodavimas"},"hidden":{"title":"Nerodomo lauko savybÄs","name":"Vardas","value":"ReikÅ¡mÄ"},"select":{"title":"Atrankos lauko savybÄs","selectInfo":"Informacija","opAvail":"Galimos parinktys","value":"ReikÅ¡mÄ","size":"Dydis","lines":"eiluÄių","chkMulti":"Leisti daugeriopÄ
atrankÄ
","opText":"Tekstas","opValue":"ReikÅ¡mÄ","btnAdd":"Ä®traukti","btnModify":"Modifikuoti","btnUp":"AukÅ¡tyn","btnDown":"Žemyn","btnSetValue":"Laikyti pažymÄta reikÅ¡me","btnDelete":"Trinti"},"textarea":{"title":"Teksto srities savybÄs","cols":"Ilgis","rows":"Plotis"},"textfield":{"title":"Teksto lauko savybÄs","name":"Vardas","value":"ReikÅ¡mÄ","charWidth":"Ilgis simboliais","maxChars":"Maksimalus simbolių skaiÄius","type":"Tipas","typeText":"Tekstas","typePass":"Slaptažodis","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Å rifto forma
tas","panelTitle":"Å rifto formatas","tag_address":"Kreipinio","tag_div":"Normalus (DIV)","tag_h1":"AntraÅ¡tinis 1","tag_h2":"AntraÅ¡tinis 2","tag_h3":"AntraÅ¡tinis 3","tag_h4":"AntraÅ¡tinis 4","tag_h5":"AntraÅ¡tinis 5","tag_h6":"AntraÅ¡tinis 6","tag_p":"Normalus","tag_pre":"Formuotas"},"horizontalrule":{"toolbar":"Ä®terpti horizontaliÄ
linijÄ
"},"iframe":{"border":"Rodyti rÄmelį","noUrl":"Nurodykite iframe nuorodÄ
","scrolling":"Ä®jungti slankiklius","title":"IFrame nustatymai","toolbar":"IFrame"},"image":{"alertUrl":"PraÅ¡ome įvesti vaizdo URL","alt":"Alternatyvus Tekstas","border":"RÄmelis","btnUpload":"Siųsti į serverį","button2Img":"Ar norite mygtukÄ
paversti paprastu paveiksliuku?","hSpace":"Hor.ErdvÄ","img2Button":"Ar norite paveiksliukÄ
paversti mygtuku?","infoTab":"Vaizdo informacija","linkTab":"Nuoroda","lockRatio":"IÅ¡laikyti proporcijÄ
","menu":"Vaizdo savybÄs","resetSize":"Atstatyti dydį","title":"Vaizdo savybÄs","titleButton":"Vaizdinio mygtuko sa
vybÄs","upload":"Nusiųsti","urlMissing":"Paveiksliuko nuorodos nÄra.","vSpace":"Vert.ErdvÄ","validateBorder":"ReikÅ¡mÄ turi bÅ«ti sveikas skaiÄius.","validateHSpace":"ReikÅ¡mÄ turi bÅ«ti sveikas skaiÄius.","validateVSpace":"ReikÅ¡mÄ turi bÅ«ti sveikas skaiÄius."},"smiley":{"options":"Å ypsenÄlių nustatymai","title":"Ä®terpti veidelį","toolbar":"Veideliai"},"justify":{"block":"Lygiuoti abi puses","center":"Centruoti","left":"Lygiuoti kairÄ","right":"Lygiuoti deÅ¡inÄ"},"link":{"acccessKey":"Prieigos raktas","advanced":"Papildomas","advisoryContentType":"Konsultacinio turinio tipas","advisoryTitle":"KonsultacinÄ antraÅ¡tÄ","anchor":{"toolbar":"Ä®terpti/modifikuoti žymÄ","menu":"ŽymÄs savybÄs","title":"ŽymÄs savybÄs","name":"ŽymÄs vardas","errorName":"PraÅ¡ome įvesti žymÄs vardÄ
","remove":"PaÅ¡alinti žymÄ"},"anchorId":"Pagal žymÄs Id","anchorName":"Pagal žymÄs vardÄ
","charset":"Susietų iÅ¡teklių simbolių lentelÄ","cssClasses":"Stilių le
ntelÄs klasÄs","emailAddress":"El.paÅ¡to adresas","emailBody":"ŽinutÄs turinys","emailSubject":"ŽinutÄs tema","id":"Id","info":"Nuorodos informacija","langCode":"Teksto kryptis","langDir":"Teksto kryptis","langDirLTR":"IÅ¡ kairÄs į deÅ¡inÄ (LTR)","langDirRTL":"IÅ¡ deÅ¡inÄs į kairÄ (RTL)","menu":"Taisyti nuorodÄ
","name":"Vardas","noAnchors":"(Å iame dokumente žymių nÄra)","noEmail":"PraÅ¡ome įvesti el.paÅ¡to adresÄ
","noUrl":"PraÅ¡ome įvesti nuorodos URL","other":"<kitas>","popupDependent":"Priklausomas (Netscape)","popupFeatures":"IÅ¡skleidžiamo lango savybÄs","popupFullScreen":"Visas ekranas (IE)","popupLeft":"KairÄ pozicija","popupLocationBar":"Adreso juosta","popupMenuBar":"Meniu juosta","popupResizable":"Kintamas dydis","popupScrollBars":"Slinkties juostos","popupStatusBar":"BÅ«senos juosta","popupToolbar":"Mygtukų juosta","popupTop":"VirÅ¡utinÄ pozicija","rel":"SÄ
sajos","selectAnchor":"Pasirinkite žymÄ","styles":"Stilius","tabIndex":"Tabuliavim
o indeksas","target":"Paskirties vieta","targetFrame":"<kadras>","targetFrameName":"Paskirties kadro vardas","targetPopup":"<iÅ¡skleidžiamas langas>","targetPopupName":"Paskirties lango vardas","title":"Nuoroda","toAnchor":"ŽymÄ Å¡iame puslapyje","toEmail":"El.paÅ¡tas","toUrl":"Nuoroda","toolbar":"Ä®terpti/taisyti nuorodÄ
","type":"Nuorodos tipas","unlink":"Panaikinti nuorodÄ
","upload":"Siųsti"},"liststyle":{"armenian":"ArmÄniÅ¡ki skaitmenys","bulletedTitle":"Ženklelinio sÄ
raÅ¡o nustatymai","circle":"Apskritimas","decimal":"DeÅ¡imtainis (1, 2, 3, t.t)","decimalLeadingZero":"DeÅ¡imtainis su nuliu priekyje (01, 02, 03, t.t)","disc":"Diskas","georgian":"GruziniÅ¡ki skaitmenys (an, ban, gan, t.t)","lowerAlpha":"Mažosios Alpha (a, b, c, d, e, t.t)","lowerGreek":"Mažosios Graikų (alpha, beta, gamma, t.t)","lowerRoman":"Mažosios RomÄnų (i, ii, iii, iv, v, t.t)","none":"Niekas","notset":"<nenurodytas>","numberedTitle":"Skaitmeninio sÄ
rašo nustatymai","square":"Kvadra
tas","start":"Pradžia","type":"Rūšis","upperAlpha":"Didžiosios Alpha (A, B, C, D, E, t.t)","upperRoman":"Didžiosios RomÄnų (I, II, III, IV, V, t.t)","validateStartNumber":"SÄ
raÅ¡o pradžios skaitmuo turi bÅ«ti sveikas skaiÄius."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"IÅ¡didinti","minimize":"Sumažinti"},"newpage":{"toolbar":"Naujas puslapis"},"pagebreak":{"alt":"Puslapio skirtukas","toolbar":"Ä®terpti puslapių skirtukÄ
"},"pastetext":{"button":"Ä®dÄti kaip grynÄ
tekstÄ
","title":"Ä®dÄti kaip grynÄ
tekstÄ
"},"pastefromword":{"confirmCleanup":"Tekstas, kurį įkeliate yra kopijuojamas iÅ¡ Word. Ar norite jį iÅ¡valyti prieÅ¡ įkeliant?","error":"DÄl vidinių sutrikimų, nepavyko iÅ¡valyti įkeliamo teksto","title":"Ä®dÄti iÅ¡ Word","toolbar":"Ä®dÄti iÅ¡ Word"},"preview":{"preview":"PeržiÅ«ra"},"print":{"toolbar":"Spausdinti"},"removeformat":{"toolbar":"Panaikinti formatÄ
"},"save":{"toolbar":"Išsaugoti"},"selectall":{"toolbar"
:"PažymÄti viskÄ
"},"showblocks":{"toolbar":"Rodyti blokus"},"sourcearea":{"toolbar":"Å altinis"},"specialchar":{"options":"Specialaus simbolio nustatymai","title":"Pasirinkite specialų simbolį","toolbar":"Ä®terpti specialų simbolį"},"scayt":{"about":"Apie SCAYT","aboutTab":"Apie","addWord":"PridÄti žodį","allCaps":"Ignoruoti visas didžiÄ
sias raides","dic_create":"Sukurti","dic_delete":"IÅ¡trinti","dic_field_name":"Žodyno pavadinimas","dic_info":"Paprastai žodynas yra saugojamas sausainÄliuose (cookies), kurių dydis, bet kokiu atveju, yra apribotas. Esant sausainÄlių apimties perviÅ¡iui, viskas bus saugoma serveryje. Jei norite iÅ¡ kart viskÄ
saugoti serveryje, turite sugalvoti žodynui pavadinimÄ
. Jei jau turite žodynÄ
, įraÅ¡ykite pavadinimÄ
ir nuspauskite Atstatyti mygtukÄ
.","dic_rename":"Pervadinti","dic_restore":"Atstatyti","dictionariesTab":"Žodynai","disable":"IÅ¡jungti SCAYT","emptyDic":"Žodyno vardas neturÄtų bÅ«ti tuÅ¡Äias.","enable":"Ä®
jungti SCAYT","ignore":"Ignoruoti","ignoreAll":"Ignoruoti viskÄ
","ignoreDomainNames":"Ignoruoti domenų vardus","langs":"Kalbos","languagesTab":"Kalbos","mixedCase":"Ignoruoti maiÅ¡yto dydžio raides","mixedWithDigits":"Ignoruoti raides su skaiÄiais","moreSuggestions":"Daugiau patarimų","opera_title":"Nepalaikoma narÅ¡yklÄje Opera","options":"Parametrai","optionsTab":"Parametrai","title":"Tikrinti klaidas kai raÅ¡oma","toggle":"Perjungti SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stilius","panelTitle":"Stilių formatavimas","panelTitle1":"Blokų stiliai","panelTitle2":"Vidiniai stiliai","panelTitle3":"Objektų stiliai"},"table":{"border":"RÄmelio dydis","caption":"AntraÅ¡tÄ","cell":{"menu":"Langelis","insertBefore":"Ä®terpti langelį prieÅ¡","insertAfter":"Ä®terpti langelį po","deleteCell":"Å alinti langelius","merge":"Sujungti langelius","mergeRight":"Sujungti su deÅ¡ine","mergeDown":"Sujungti su apaÄia","splitHorizontal":"Skaidyti langelį hori
zontaliai","splitVertical":"Skaidyti langelį vertikaliai","title":"Cell nustatymai","cellType":"Cell rūšis","rowSpan":"EiluÄių Span","colSpan":"Stulpelių Span","wordWrap":"Sutraukti raides","hAlign":"Horizontalus lygiavimas","vAlign":"Vertikalus lygiavimas","alignBaseline":"ApatinÄ linija","bgColor":"Fono spalva","borderColor":"RÄmelio spalva","data":"Data","header":"AntraÅ¡tÄ","yes":"Taip","no":"Ne","invalidWidth":"ReikÅ¡mÄ turi bÅ«ti skaiÄius.","invalidHeight":"ReikÅ¡mÄ turi bÅ«ti skaiÄius.","invalidRowSpan":"ReikÅ¡mÄ turi bÅ«ti skaiÄius.","invalidColSpan":"ReikÅ¡mÄ turi bÅ«ti skaiÄius.","chooseColor":"Pasirinkite"},"cellPad":"Trapas nuo langelio rÄmo iki teksto","cellSpace":"Tarpas tarp langelių","column":{"menu":"Stulpelis","insertBefore":"Ä®terpti stulpelį prieÅ¡","insertAfter":"Ä®terpti stulpelį po","deleteColumn":"Å alinti stulpelius"},"columns":"Stulpeliai","deleteTable":"Å alinti lentelÄ","headers":"AntraÅ¡tÄs","headersBoth":"Abu","headersColu
mn":"Pirmas stulpelis","headersNone":"NÄra","headersRow":"Pirma eilutÄ","invalidBorder":"ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.","invalidCellPadding":"ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.","invalidCellSpacing":"ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.","invalidCols":"SkaiÄius turi bÅ«ti didesnis nei 0.","invalidHeight":"ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.","invalidRows":"SkaiÄius turi bÅ«ti didesnis nei 0.","invalidWidth":"ReikÅ¡mÄ turi bÅ«ti nurodyta skaiÄiumi.","menu":"LentelÄs savybÄs","row":{"menu":"EilutÄ","insertBefore":"Ä®terpti eilutÄ prieÅ¡","insertAfter":"Ä®terpti eilutÄ po","deleteRow":"Å alinti eilutes"},"rows":"EilutÄs","summary":"Santrauka","title":"LentelÄs savybÄs","toolbar":"LentelÄ","widthPc":"procentais","widthPx":"taÅ¡kais","widthUnit":"ploÄio vienetas"},"undo":{"redo":"Atstatyti","undo":"AtÅ¡aukti"},"wsc":{"btnIgnore":"Ignoruoti","btnIgnoreAll":"Ignoruoti visus","btnReplace":"Pakeisti","btnReplaceAll":"Pakeisti visus","btnU
ndo":"AtÅ¡aukti","changeTo":"Pakeisti į","errorLoading":"Klaida įkraunant servisÄ
: %s.","ieSpellDownload":"RaÅ¡ybos tikrinimas neinstaliuotas. Ar JÅ«s norite jį dabar atsisiųsti?","manyChanges":"RaÅ¡ybos tikrinimas baigtas: Pakeista %1 žodžių","noChanges":"RaÅ¡ybos tikrinimas baigtas: NÄra pakeistų žodžių","noMispell":"RaÅ¡ybos tikrinimas baigtas: Nerasta raÅ¡ybos klaidų","noSuggestions":"- NÄra pasiÅ«lymų -","notAvailable":"Atleiskite, Å¡iuo metu servisas neprieinamas.","notInDic":"Žodyne nerastas","oneChange":"RaÅ¡ybos tikrinimas baigtas: Vienas žodis pakeistas","progress":"Vyksta raÅ¡ybos tikrinimas...","title":"Tikrinti klaidas","toolbar":"RaÅ¡ybos tikrinimas"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/lv.js b/share/static/RichText/lang/lv.js
index e58fdf6..ce7c818 100644
--- a/share/static/RichText/lang/lv.js
+++ b/share/static/RichText/lang/lv.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.lv={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'HTML kods',newPage:'Jauna lapa',save:'SaglabÄt',preview:'PÄrskatÄ«t',cut:'Izgriezt',copy:'KopÄt',paste:'Ievietot',print:'DrukÄt',underline:'ApakÅ¡svÄ«tra',bold:'Treknu Å¡riftu',italic:'SlÄ«prakstÄ',selectAll:'IezÄ«mÄt visu',removeFormat:'NoÅemt stilus',strike:'PÄrsvÄ«trots',subscript:'ZemrakstÄ',superscript:'AugÅ¡rakstÄ',horizontalrule:'Ievietot horizontÄlu AtdalÄ«tÄjsvÄ«tru',pagebreak:'Ievietot lapas pÄrtraukumu',unlink:'NoÅemt hipersaiti',undo:'Atcelt',redo:'AtkÄrtot',common:{browseServer:'SkatÄ«t servera saturu',url:'URL',protocol:'Protokols',upload:'AugÅ¡upielÄdÄt',uploadSubmit:'NosÅ«tÄ«t serverim',image:'AttÄls',flash:'Flash',form:'Forma',checkbox:'AtzÄ«mÄÅ¡anas kastÄ«te',radio:'IzvÄles poga',textField:'Teksta rinda',textarea:'Teksta laukums',hiddenField:'PaslÄpta teksta rinda',button:'Poga',select:'IezÄ«mÄÅ¡anas
lauks',imageButton:'AttÄlpoga',notSet:'<nav iestatÄ«ts>',id:'Id',name:'Nosaukums',langDir:'Valodas lasīšanas virziens',langDirLtr:'No kreisÄs uz labo (LTR)',langDirRtl:'No labÄs uz kreiso (RTL)',langCode:'Valodas kods',longDescr:'Gara apraksta Hipersaite',cssClass:'Stilu saraksta klases',advisoryTitle:'KonsultatÄ«vs virsraksts',cssStyle:'Stils',ok:'DarÄ«ts!',cancel:'Atcelt',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'IzvÄrstais',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Clas
ses',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Ievietot speciÄlo simbolu',title:'Ievietot Ä«paÅ¡u simbolu',options:'Special Character Options'},link:{toolbar:'Ievietot/Labot hipersaiti',other:'<cits>',menu:'Labot hipersaiti',title:'Hipersaite',info:'Hipersaites informÄcija',target:'MÄrÄ·is',upload:'AugÅ¡upielÄdÄt',advanced:'IzvÄrstais',type:'Hipersaites tips',toUrl:'URL',toAnchor:'IezÄ«me Å¡ajÄ lapÄ',toEmail:'E-pasts',targetFrame:'<ietvars>',targetPopup:'<uznirstoÅ¡Ä logÄ>',targetFrameName:'MÄrÄ·a ietvara nosaukums',targetPopupName:'UznirstoÅ¡Ä loga nosaukums',popupFeatures:'UznirstoÅ¡Ä loga nosaukums Ä«pašības',popupResizable:'Resizable',popupStatusBar:'Statusa josla',popupLocationBar:'AtraÅ¡anÄs vietas josla',popupToolbar:'RÄ«ku josla',popupMenuBar:'IzvÄlnes josla',popupFullScreen:'PilnÄ ekrÄnÄ (IE)',popupScrollBars:'Ritjoslas',popupDependent:'AtkarÄ«gs (Netsc
ape)',popupWidth:'Platums',popupLeft:'KreisÄ koordinÄte',popupHeight:'Augstums',popupTop:'AugÅ¡ÄjÄ koordinÄte',id:'Id',langDir:'Valodas lasīšanas virziens',langDirLTR:'No kreisÄs uz labo (LTR)',langDirRTL:'No labÄs uz kreiso (RTL)',acccessKey:'Pieejas kods',name:'Nosaukums',langCode:'Valodas lasīšanas virziens',tabIndex:'CiļÅu indekss',advisoryTitle:'KonsultatÄ«vs virsraksts',advisoryContentType:'KonsultatÄ«vs satura tips',cssClasses:'Stilu saraksta klases',charset:'PievienotÄ resursa kodu tabula',styles:'Stils',selectAnchor:'IzvÄlÄties iezÄ«mi',anchorName:'PÄc iezÄ«mes nosaukuma',anchorId:'PÄc elementa ID',emailAddress:'E-pasta adrese',emailSubject:'ZiÅas tÄma',emailBody:'ZiÅas saturs',noAnchors:'(Å ajÄ dokumentÄ nav iezÄ«mju)',noUrl:'LÅ«dzu norÄdi hipersaiti',noEmail:'LÅ«dzu norÄdi e-pasta adresi'},anchor:{toolbar:'Ievietot/Labot iezÄ«mi',menu:'IezÄ«mes Ä«pašības',title:'IezÄ«mes Ä«pašības',name:'IezÄ«mes nosaukums',errorName:'LÅ«dzu norÄdiet
iezÄ«mes nosaukumu'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'MeklÄt',replace:'NomainÄ«t',findWhat:'MeklÄt:',replaceWith:'NomainÄ«t uz:',notFoundMsg:'NorÄdÄ«tÄ frÄze netika atrasta.',matchCase:'ReÄ£istrjÅ«tÄ«gs',matchWord:'JÄsakrÄ«t pilnÄ«bÄ',matchCyclic:'Match cyclic',replaceAll:'Aizvietot visu',
replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabula',title:'Tabulas Ä«pašības',menu:'Tabulas Ä«pašības',deleteTable:'DzÄst tabulu',rows:'Rindas',columns:'Kolonnas',border:'RÄmja izmÄrs',align:'Novietojums',alignLeft:'Pa kreisi',alignCenter:'CentrÄti',alignRight:'Pa labi',width:'Platums',widthPx:'pikseļos',widthPc:'procentuÄli',widthUnit:'width unit',height:'Augstums',cellSpace:'RÅ«tiÅu atstatums',cellPad:'RÅ«tiÅu nobÄ«de',caption:'LeÄ£enda',summary:'AnotÄcija',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Å Å
«na',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'DzÄst rÅ«tiÅas',merge:'Apvienot rÅ«tiÅas',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Rinda',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'DzÄst rindas'},column:{menu:'Kolonna',insertBefore:'Insert Column Before'
,insertAfter:'Insert Column After',deleteColumn:'DzÄst kolonnas'}},button:{title:'Pogas Ä«pašības',text:'Teksts (vÄrtÄ«ba)',type:'Tips',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'AtzÄ«mÄÅ¡anas kastÄ«tes Ä«pašības',radioTitle:'IzvÄles poga Ä«pašības',value:'VÄrtÄ«ba',selected:'IezÄ«mÄts'},form:{title:'Formas Ä«pašības',menu:'Formas Ä«pašības',action:'DarbÄ«ba',method:'Metode',encoding:'Encoding'},select:{title:'IezÄ«mÄÅ¡anas lauka Ä«pašības',selectInfo:'InformÄcija',opAvail:'PieejamÄs iespÄjas',value:'VÄrtÄ«ba',size:'IzmÄrs',lines:'rindas',chkMulti:'Atļaut vairÄkus iezÄ«mÄjumus',opText:'Teksts',opValue:'VÄrtÄ«ba',btnAdd:'Pievienot',btnModify:'Veikt izmaiÅas',btnUp:'AugÅ¡up',btnDown:'Lejup',btnSetValue:'Noteikt kÄ iezÄ«mÄto vÄrtÄ«bu',btnDelete:'DzÄst'},textarea:{title:'Teksta laukuma Ä«pašības',cols:'Kolonnas',rows:'Rindas'},textfield:{title:'Teksta rindas Ä«pašības',name:'Nosaukums',value:'VÄrtÄ«b
a',charWidth:'Simbolu platums',maxChars:'Simbolu maksimÄlais daudzums',type:'Tips',typeText:'Teksts',typePass:'Parole'},hidden:{title:'PaslÄptÄs teksta rindas Ä«pašības',name:'Nosaukums',value:'VÄrtÄ«ba'},image:{title:'AttÄla Ä«pašības',titleButton:'AttÄlpogas Ä«pašības',menu:'AttÄla Ä«pašības',infoTab:'InformÄcija par attÄlu',btnUpload:'NosÅ«tÄ«t serverim',upload:'AugÅ¡upielÄdÄt',alt:'AlternatÄ«vais teksts',width:'Platums',height:'Augstums',lockRatio:'NemainÄ«ga Augstuma/Platuma attiecÄ«ba',unlockRatio:'Unlock Ratio',resetSize:'Atjaunot sÄkotnÄjo izmÄru',border:'RÄmis',hSpace:'HorizontÄlÄ telpa',vSpace:'VertikÄlÄ telpa',align:'NolÄ«dzinÄt',alignLeft:'Pa kreisi',alignRight:'Pa labi',alertUrl:'LÅ«dzu norÄdÄ«t attÄla hipersaiti',linkTab:'Hipersaite',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',
validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Ä«pašības',propertiesTab:'Properties',title:'Flash Ä«pašības',chkPlay:'AutomÄtiska atskaÅoÅ¡ana',chkLoop:'NepÄrtraukti',chkMenu:'Atļaut Flash izvÄlni',chkFull:'Allow Fullscreen',scale:'MainÄ«t izmÄru',scaleAll:'RÄdÄ«t visu',scaleNoBorder:'Bez rÄmja',scaleFit:'PrecÄ«zs izmÄrs',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'NolÄ«dzinÄt',alignLeft:'Pa kreisi',alignAbsBottom:'AbsolÅ«ti apakÅ¡Ä',alignAbsMiddle:'AbsolÅ«ti vertikÄli centrÄts',alignBaseline:'PamatrindÄ',alignBottom:'ApakÅ¡Ä',alignMiddle:'VertikÄli centrÄts',alignRight:'Pa labi',alignTextTop:'Teksta augÅ¡Ä',alignTop:'AugÅ¡Ä',quality:'Quality',qualityBest:'Best',qualityHigh:'High',
qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Fona krÄsa',width:'Platums',height:'Augstums',hSpace:'HorizontÄlÄ telpa',vSpace:'VertikÄlÄ telpa',validateSrc:'LÅ«dzu norÄdi hipersaiti',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'PareizrakstÄ«bas pÄrbaude',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Netika atrasts vÄrdnÄ«cÄ',changeTo:'NomainÄ«t uz',btnIgnore:'IgnorÄt',btnIgnoreAll:'IgnorÄt visu',btnReplace:'Aizvietot',btnReplaceAll:'Aizvietot visu',btnUndo:'Atcelt',noSuggestions:'- Nav ieteikumu -',progress:'Notiek pareizrakstÄ«ba
s pÄrbaude...',noMispell:'PareizrakstÄ«bas pÄrbaude pabeigta: kļūdas netika atrastas',noChanges:'PareizrakstÄ«bas pÄrbaude pabeigta: nekas netika labots',oneChange:'PareizrakstÄ«bas pÄrbaude pabeigta: 1 vÄrds izmainÄ«ts',manyChanges:'PareizrakstÄ«bas pÄrbaude pabeigta: %1 vÄrdi tika mainÄ«ti',ieSpellDownload:'PareizrakstÄ«bas pÄrbaudÄ«tÄjs nav pievienots. Vai vÄlaties to lejupielÄdÄt tagad?'},smiley:{toolbar:'SmaidiÅi',title:'Ievietot smaidiÅu',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'NumurÄts saraksts',bulletedlist:'Izcelts saraksts',indent:'PalielinÄt atkÄpi',outdent:'SamazinÄt atkÄpi',justify:{left:'IzlÄ«dzinÄt pa kreisi',center:'IzlÄ«dzinÄt pret centru',right:'IzlÄ«dzinÄt pa labi',block:'IzlÄ«dzinÄt malas'},blockquote:'Block Quote',clipboard:{title:'Ievietot',cutError:'JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj editoram automÄtiski veikt izgrieÅ¡anas darbÄ«bu. LÅ«dzu,
izmantojiet (Ctrl/Cmd+X, lai veiktu Å¡o darbÄ«bu.',copyError:'JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj editoram automÄtiski veikt kopÄÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+C), lai veiktu Å¡o darbÄ«bu.',pasteMsg:'LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Ievietot no Worda',title:'Ievietot no Worda',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Ievietot kÄ vienkÄrÅ¡u tekstu',title:'Ievietot kÄ vienkÄrÅ¡u tekstu'},templates:{button:'Sagataves',title:'Satura saga
taves',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'LÅ«dzu, norÄdiet sagatavi, ko atvÄrt editorÄ<br>(patreizÄjie dati tiks zaudÄti):',emptyListMsg:'(Nav norÄdÄ«tas sagataves)'},showBlocks:'Show Blocks',stylesCombo:{label:'Stils',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'FormÄts',panelTitle:'FormÄts',tag_p:'NormÄls teksts',tag_pre:'FormatÄts teksts',tag_address:'Adrese',tag_h1:'Virsraksts 1',tag_h2:'Virsraksts 2',tag_h3:'Virsraksts 3',tag_h4:'Virsraksts 4',tag_h5:'Virsraksts 5',tag_h6:'Virsraksts 6',tag_div:'Rindkopa (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left t
o Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Å rifts',voiceLabel:'Font',panelTitle:'Å rifts'},fontSize:{label:'IzmÄrs',voiceLabel:'Font Size',panelTitle:'IzmÄrs'},colorButton:{textColorTitle:'Teksta krÄsa',bgColorTitle:'Fona krÄsa',panelTitle:'Colors',auto:'AutomÄtiska',more:'PlaÅ¡Äka palete...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',F
FFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dic
tionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['lv']={"dir":"ltr","editor":"BagÄtinÄtÄ teksta redaktors","common":{"editorHelp":"PalÄ«dzÄ«bai, nospiediet ALT 0 ","browseServer":"SkatÄ«t servera saturu","url":"URL","protocol":"Protokols","upload":"AugÅ¡upielÄdÄt","uploadSubmit":"NosÅ«tÄ«t serverim","image":"AttÄls","flash":"Flash","form":"Forma","checkbox":"AtzÄ«mÄÅ¡anas kastÄ«te","radio":"IzvÄles poga","textField":"Teksta rinda","textarea":"Teksta laukums","hiddenField":"PaslÄpta teksta rinda","button":"Poga","select":"IezÄ«mÄÅ¡anas lauks","imageButton":"AttÄlpoga","notSet":"<nav iestatÄ«ts>","id":"Id","name":"Nosaukums","langDir":"Valodas lasīšanas virziens","langDirLtr":"No kreisÄs uz labo (LTR)","langDirRtl":"No labÄs uz kreiso (RTL)","langCode":"Valodas kods","longDescr":"Gara apraksta Hipersaite","cssClass":"Stilu saraksta klases","advisoryTitle":"KonsultatÄ«vs virsraksts","cssStyle":"Stils","ok":"DarÄ«ts!","cancel":"Atcelt","close":"AizvÄrt","preview":"PriekÅ¡skatÄ«jums","resize":"MÄr
ogot","generalTab":"VispÄrÄ«gi","advancedTab":"IzvÄrstais","validateNumberFailed":"Å Ä« vÄrtÄ«ba nav skaitlis","confirmNewPage":"Jebkuras nesaglabÄtÄs izmaiÅas tiks zaudÄtas. Vai tieÅ¡Äm vÄlaties atvÄrt jaunu lapu?","confirmCancel":"Daži no uzstÄdÄ«jumiem ir mainÄ«ti. Vai tieÅ¡Äm vÄlaties aizvÄrt Å¡o dialogu?","options":"UzstÄdÄ«jumi","target":"MÄrÄ·is","targetNew":"Jauns logs (_blank)","targetTop":"VirsÄjais logs (_top)","targetSelf":"Tas pats logs (_self)","targetParent":"Avota logs (_parent)","langDirLTR":"Kreisais uz Labo (LTR)","langDirRTL":"Labais uz Kreiso (RTL)","styles":"Stils","cssClasses":"Stilu klases","width":"Platums","height":"Augstums","align":"NolÄ«dzinÄt","alignLeft":"Pa kreisi","alignRight":"Pa labi","alignCenter":"CentrÄti","alignTop":"AugÅ¡Ä","alignMiddle":"VertikÄli centrÄts","alignBottom":"ApakÅ¡Ä","invalidValue":"Nekorekta vÄrtÄ«ba","invalidHeight":"Augstumam jÄbÅ«t skaitlim.","invalidWidth":"Platumam jÄbÅ«t skaitlim","inval
idCssLength":"Laukam \"%1\" norÄdÄ«tajai vÄrtÄ«bai jÄbÅ«t pozitÄ«vam skaitlim ar vai bez korektÄm CSS mÄrvienÄ«bÄm (px, %, in, cm, mm, em, ex, pt, vai pc).","invalidHtmlLength":"Laukam \"%1\" norÄdÄ«tajai vÄrtÄ«bai jÄbÅ«t pozitÄ«vam skaitlim ar vai bez korektÄm HTML mÄrvienÄ«bÄm (px vai %).","invalidInlineStyle":"IekļautajÄ stilÄ norÄdÄ«tajai vÄrtÄ«bai jÄsastÄv no viena vai vairÄkiem pÄriem pÄc forma'ta \"nosaukums: vÄrtÄ«ba\", atdalÄ«tiem ar semikolu.","cssLengthTooltip":"Ievadiet vÄrtÄ«bu pikseļos vai skaitli ar derÄ«gu CSS mÄrvienÄ«bu (px, %, in, cm, mm, em, ex, pt, vai pc).","unavailable":"%1<span class=\"cke_accessibility\">, nav pieejams</span>"},"about":{"copy":"KopÄÅ¡anas tiesÄ«bas © $1. Visas tiesÄ«bas rezervÄtas.","dlgTitle":"Par CKEditor","help":"PÄrbaudiet $1 palÄ«dzÄ«bai.","moreInfo":"InformÄcijai par licenzÄÅ¡anu apmeklÄjiet mÅ«su mÄjas lapu:","title":"Par CKEditor","userGuide":"CKEditor LietotÄja pamÄcÄ«ba"},"basicstyles
":{"bold":"TrekninÄts","italic":"KursÄ«vs","strike":"PÄrsvÄ«trots","subscript":"ApakÅ¡rakstÄ","superscript":"AugÅ¡rakstÄ","underline":"PasvÄ«trots"},"bidi":{"ltr":"Teksta virziens no kreisÄs uz labo","rtl":"Teksta virziens no labÄs uz kreiso"},"blockquote":{"toolbar":"Bloka citÄts"},"clipboard":{"copy":"KopÄt","copyError":"JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj redaktoram automÄtiski veikt kopÄÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+C), lai veiktu Å¡o darbÄ«bu.","cut":"Izgriezt","cutError":"JÅ«su pÄrlÅ«kprogrammas drošības iestatÄ«jumi nepieļauj redaktoram automÄtiski veikt izgriezÅ¡anas darbÄ«bu. LÅ«dzu, izmantojiet (Ctrl/Cmd+X), lai veiktu Å¡o darbÄ«bu.","paste":"IelÄ«mÄt","pasteArea":"IelÄ«mÄÅ¡anas zona","pasteMsg":"LÅ«dzu, ievietojiet tekstu Å¡ajÄ laukumÄ, izmantojot klaviatÅ«ru (<STRONG>Ctrl/Cmd+V</STRONG>) un apstipriniet ar <STRONG>DarÄ«ts!</STRONG>.","securityMsg":"JÅ«su pÄrlÅ«ka drošības uzstÄdÄ«jumu dÄļ, nav ie
spÄjams tieÅ¡i piekļūt jÅ«su starpliktuvei. Jums jÄielÄ«mÄ atkÄrtoti Å¡ajÄ logÄ.","title":"Ievietot"},"colorbutton":{"auto":"AutomÄtiska","bgColorTitle":"Fona krÄsa","colors":{"000":"Melns","800000":"SarkanbrÅ«ns","8B4513":"Sedlu brÅ«ns","2F4F4F":"TumÅ¡as tÄfeles pelÄks","008080":"Zili-zaļš","000080":"JÅ«ras","4B0082":"Indigo","696969":"TumÅ¡i pelÄks","B22222":"ĶieÄ£eļsarkans","A52A2A":"BrÅ«ns","DAA520":"Zelta","006400":"TumÅ¡i zaļš","40E0D0":"TirkÄ«zs","0000CD":"VidÄji zils","800080":"Purpurs","808080":"PelÄks","F00":"Sarkans","FF8C00":"TumÅ¡i oranžs","FFD700":"Zelta","008000":"Zaļš","0FF":"TumÅ¡zils","00F":"Zils","EE82EE":"Violets","A9A9A9":"PelÄks","FFA07A":"GaiÅ¡i laÅ¡krÄsas","FFA500":"Oranžs","FFFF00":"Dzeltens","00FF00":"Laima","AFEEEE":"GaiÅ¡i tirkÄ«za","ADD8E6":"GaiÅ¡i zils","DDA0DD":"PlÅ«mju","D3D3D3":"GaiÅ¡i pelÄks","FFF0F5":"Lavandas sÄrts","FAEBD7":"AntÄ«ki balts","FFFFE0":"GaiÅ¡i dzeltens","F0FFF0":"Meduspile","F0FFFF":"Debesszils","
F0F8FF":"Alises zils","E6E6FA":"Lavanda","FFF":"Balts"},"more":"PlaÅ¡Äka palete...","panelTitle":"KrÄsa","textColorTitle":"Teksta krÄsa"},"colordialog":{"clear":"NotÄ«rÄ«t","highlight":"Paraugs","options":"KrÄsas uzstÄdÄ«jumi","selected":"IzvÄlÄtÄ krÄsa","title":"IzvÄlies krÄsu"},"templates":{"button":"Sagataves","emptyListMsg":"(Nav norÄdÄ«tas sagataves)","insertOption":"Aizvietot paÅ¡reizÄjo saturu","options":"Sagataves uzstÄdÄ«jumi","selectPromptMsg":"LÅ«dzu, norÄdiet sagatavi, ko atvÄrt editorÄ<br>(patreizÄjie dati tiks zaudÄti):","title":"Satura sagataves"},"contextmenu":{"options":"UznirstoÅ¡Äs izvÄlnes uzstÄdÄ«jumi"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"KonsultatÄ«vs virsraksts","cssClassInputLabel":"Stilu klases","edit":"Labot Div","inlineStyleInputLabel":"Iekļautais stils","langDirLTRLabel":"Kreisais uz Labo (LTR)","langDirLabel":"Valodas virziens","langDirRTLLabel":"Labais uz kreiso (RTL)","languageCodeInputLabel":"Valodas ko
ds","remove":"NoÅemt Div","styleSelectLabel":"Stils","title":"Izveidot div konteineri","toolbar":"Izveidot div konteineri"},"toolbar":{"toolbarCollapse":"AizvÄrt rÄ«kjoslu","toolbarExpand":"AtvÄrt rÄ«kjoslu","toolbarGroups":{"document":"Dokuments","clipboard":"Starpliktuve/Atcelt","editing":"LaboÅ¡ana","forms":"Formas","basicstyles":"Pamata stili","paragraph":"ParagrÄfs","links":"Saites","insert":"Ievietot","styles":"Stili","colors":"KrÄsas","tools":"RÄ«ki"},"toolbars":"Redaktora rÄ«kjoslas"},"elementspath":{"eleLabel":"Elementa ceļš","eleTitle":"%1 elements"},"list":{"bulletedlist":"Pievienot/NoÅemt vienkÄrÅ¡u sarakstu","numberedlist":"NumurÄts saraksts"},"indent":{"indent":"PalielinÄt atkÄpi","outdent":"SamazinÄt atkÄpi"},"find":{"find":"MeklÄt","findOptions":"MeklÄt uzstÄdÄ«jumi","findWhat":"MeklÄt:","matchCase":"ReÄ£istrjÅ«tÄ«gs","matchCyclic":"Sakrist cikliski","matchWord":"JÄsakrÄ«t pilnÄ«bÄ","notFoundMsg":"NorÄdÄ«tÄ frÄze netika atrasta.","repla
ce":"NomainÄ«t","replaceAll":"Aizvietot visu","replaceSuccessMsg":"%1 gadÄ«jums(i) aizvietoti","replaceWith":"NomainÄ«t uz:","title":"MeklÄt un aizvietot"},"fakeobjects":{"anchor":"IezÄ«me","flash":"Flash animÄcija","hiddenfield":"SlÄpts lauks","iframe":"Iframe","unknown":"NezinÄms objekts"},"flash":{"access":"Skripta pieeja","accessAlways":"VienmÄr","accessNever":"Nekad","accessSameDomain":"Tas pats domÄns","alignAbsBottom":"AbsolÅ«ti apakÅ¡Ä","alignAbsMiddle":"AbsolÅ«ti vertikÄli centrÄts","alignBaseline":"PamatrindÄ","alignTextTop":"Teksta augÅ¡Ä","bgcolor":"Fona krÄsa","chkFull":"PilnekrÄns","chkLoop":"NepÄrtraukti","chkMenu":"Atļaut Flash izvÄlni","chkPlay":"AutomÄtiska atskaÅoÅ¡ana","flashvars":"Flash mainÄ«gie","hSpace":"HorizontÄlÄ telpa","properties":"Flash Ä«pašības","propertiesTab":"UzstÄdÄ«jumi","quality":"KvalitÄte","qualityAutoHigh":"AutomÄtiski Augsta","qualityAutoLow":"AutomÄtiski Zema","qualityBest":"LabÄkÄ","qualityHigh":"Augsta"
,"qualityLow":"Zema","qualityMedium":"VidÄja","scale":"MainÄ«t izmÄru","scaleAll":"RÄdÄ«t visu","scaleFit":"PrecÄ«zs izmÄrs","scaleNoBorder":"Bez rÄmja","title":"Flash Ä«pašības","vSpace":"VertikÄlÄ telpa","validateHSpace":"Hspace jÄbÅ«t skaitlim","validateSrc":"LÅ«dzu norÄdi hipersaiti","validateVSpace":"Vspace jÄbÅ«t skaitlim","windowMode":"Loga režīms","windowModeOpaque":"NecaurspÄ«dÄ«gs","windowModeTransparent":"CaurspÄ«dÄ«gs","windowModeWindow":"Logs"},"font":{"fontSize":{"label":"IzmÄrs","voiceLabel":"Fonta izmeÅs","panelTitle":"IzmÄrs"},"label":"Å rifts","panelTitle":"Å rifts","voiceLabel":"Fonts"},"forms":{"button":{"title":"Pogas Ä«pašības","text":"Teksts (vÄrtÄ«ba)","type":"Tips","typeBtn":"Poga","typeSbm":"NosÅ«tÄ«t","typeRst":"Atcelt"},"checkboxAndRadio":{"checkboxTitle":"AtzÄ«mÄÅ¡anas kastÄ«tes Ä«pašības","radioTitle":"IzvÄles poga Ä«pašības","value":"VÄrtÄ«ba","selected":"IezÄ«mÄts"},"form":{"title":"Formas Ä«pašības","menu":"Forma
s Ä«pašības","action":"DarbÄ«ba","method":"Metode","encoding":"KodÄjums"},"hidden":{"title":"PaslÄptÄs teksta rindas Ä«pašības","name":"Nosaukums","value":"VÄrtÄ«ba"},"select":{"title":"IezÄ«mÄÅ¡anas lauka Ä«pašības","selectInfo":"InformÄcija","opAvail":"PieejamÄs iespÄjas","value":"VÄrtÄ«ba","size":"IzmÄrs","lines":"rindas","chkMulti":"Atļaut vairÄkus iezÄ«mÄjumus","opText":"Teksts","opValue":"VÄrtÄ«ba","btnAdd":"Pievienot","btnModify":"Veikt izmaiÅas","btnUp":"AugÅ¡up","btnDown":"Lejup","btnSetValue":"Noteikt kÄ iezÄ«mÄto vÄrtÄ«bu","btnDelete":"DzÄst"},"textarea":{"title":"Teksta laukuma Ä«pašības","cols":"Kolonnas","rows":"Rindas"},"textfield":{"title":"Teksta rindas Ä«pašības","name":"Nosaukums","value":"VÄrtÄ«ba","charWidth":"Simbolu platums","maxChars":"Simbolu maksimÄlais daudzums","type":"Tips","typeText":"Teksts","typePass":"Parole","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"lab
el":"FormÄts","panelTitle":"FormÄts","tag_address":"Adrese","tag_div":"Rindkopa (DIV)","tag_h1":"Virsraksts 1","tag_h2":"Virsraksts 2","tag_h3":"Virsraksts 3","tag_h4":"Virsraksts 4","tag_h5":"Virsraksts 5","tag_h6":"Virsraksts 6","tag_p":"NormÄls teksts","tag_pre":"FormatÄts teksts"},"horizontalrule":{"toolbar":"Ievietot horizontÄlu AtdalÄ«tÄjsvÄ«tru"},"iframe":{"border":"RÄdÄ«t rÄmi","noUrl":"NorÄdiet iframe adresi","scrolling":"Atļaut ritjoslas","title":"IFrame uzstÄdÄ«jumi","toolbar":"IFrame"},"image":{"alertUrl":"LÅ«dzu norÄdÄ«t attÄla hipersaiti","alt":"AlternatÄ«vais teksts","border":"RÄmis","btnUpload":"NosÅ«tÄ«t serverim","button2Img":"Vai vÄlaties pÄrveidot izvÄlÄto attÄla pogu uz attÄla?","hSpace":"HorizontÄlÄ telpa","img2Button":"Vai vÄlaties pÄrveidot izvÄlÄto attÄlu uz attÄla pogas?","infoTab":"InformÄcija par attÄlu","linkTab":"Hipersaite","lockRatio":"NemainÄ«ga Augstuma/Platuma attiecÄ«ba","menu":"AttÄla Ä«pašības","resetSize
":"Atjaunot sÄkotnÄjo izmÄru","title":"AttÄla Ä«pašības","titleButton":"AttÄlpogas Ä«pašības","upload":"AugÅ¡upielÄdÄt","urlMissing":"TrÅ«kst attÄla atraÅ¡anÄs adrese.","vSpace":"VertikÄlÄ telpa","validateBorder":"Apmalei jÄbÅ«t veselam skaitlim","validateHSpace":"HSpace jÄbÅ«t veselam skaitlim","validateVSpace":"VSpace jÄbÅ«t veselam skaitlim"},"smiley":{"options":"SmaidiÅu uzstÄdÄ«jumi","title":"Ievietot smaidiÅu","toolbar":"SmaidiÅi"},"justify":{"block":"IzlÄ«dzinÄt malas","center":"IzlÄ«dzinÄt pret centru","left":"IzlÄ«dzinÄt pa kreisi","right":"IzlÄ«dzinÄt pa labi"},"link":{"acccessKey":"Pieejas taustiÅÅ¡","advanced":"IzvÄrstais","advisoryContentType":"KonsultatÄ«vs satura tips","advisoryTitle":"KonsultatÄ«vs virsraksts","anchor":{"toolbar":"Ievietot/Labot iezÄ«mi","menu":"Labot iezÄ«mi","title":"IezÄ«mes uzstÄdÄ«jumi","name":"IezÄ«mes nosaukums","errorName":"LÅ«dzu norÄdiet iezÄ«mes nosaukumu","remove":"NoÅemt iezÄ«mi"},"anchorId":"PÄc e
lementa ID","anchorName":"PÄc iezÄ«mes nosaukuma","charset":"PievienotÄ resursa kodÄjums","cssClasses":"Stilu saraksta klases","emailAddress":"E-pasta adrese","emailBody":"ZiÅas saturs","emailSubject":"ZiÅas tÄma","id":"ID","info":"Hipersaites informÄcija","langCode":"Valodas kods","langDir":"Valodas lasīšanas virziens","langDirLTR":"No kreisÄs uz labo (LTR)","langDirRTL":"No labÄs uz kreiso (RTL)","menu":"Labot hipersaiti","name":"Nosaukums","noAnchors":"(Å ajÄ dokumentÄ nav iezÄ«mju)","noEmail":"LÅ«dzu norÄdi e-pasta adresi","noUrl":"LÅ«dzu norÄdi hipersaiti","other":"<cits>","popupDependent":"AtkarÄ«gs (Netscape)","popupFeatures":"UznirstoÅ¡Ä loga nosaukums Ä«pašības","popupFullScreen":"PilnÄ ekrÄnÄ (IE)","popupLeft":"KreisÄ koordinÄte","popupLocationBar":"AtraÅ¡anÄs vietas josla","popupMenuBar":"IzvÄlnes josla","popupResizable":"MÄrogojams","popupScrollBars":"Ritjoslas","popupStatusBar":"Statusa josla","popupToolbar":"RÄ«ku josla","popupTop":"Au
gÅ¡ÄjÄ koordinÄte","rel":"RelÄcija","selectAnchor":"IzvÄlÄties iezÄ«mi","styles":"Stils","tabIndex":"CiļÅu indekss","target":"MÄrÄ·is","targetFrame":"<ietvars>","targetFrameName":"MÄrÄ·a ietvara nosaukums","targetPopup":"<uznirstoÅ¡Ä logÄ>","targetPopupName":"UznirstoÅ¡Ä loga nosaukums","title":"Hipersaite","toAnchor":"IezÄ«me Å¡ajÄ lapÄ","toEmail":"E-pasts","toUrl":"Adrese","toolbar":"Ievietot/Labot hipersaiti","type":"Hipersaites tips","unlink":"NoÅemt hipersaiti","upload":"AugÅ¡upielÄdÄt"},"liststyle":{"armenian":"ArmÄÅu skaitļi","bulletedTitle":"VienkÄrÅ¡a saraksta uzstÄdÄ«jumi","circle":"Aplis","decimal":"DecimÄlie (1, 2, 3, utt)","decimalLeadingZero":"DecimÄlie ar nulli (01, 02, 03, utt)","disc":"Disks","georgian":"GruzÄ«Åu skaitļi (an, ban, gan, utt)","lowerAlpha":"Mazie alfabÄta (a, b, c, d, e, utt)","lowerGreek":"Mazie grieÄ·u (alfa, beta, gamma, utt)","lowerRoman":"Mazie romÄÅu (i, ii, iii, iv, v, utt)","none":"Nekas","notset":"<nav no
rÄdÄ«ts>","numberedTitle":"NumurÄta saraksta uzstÄdÄ«jumi","square":"KvadrÄts","start":"SÄkt","type":"Tips","upperAlpha":"Lielie alfabÄta (A, B, C, D, E, utt)","upperRoman":"Lielie romÄÅu (I, II, III, IV, V, utt)","validateStartNumber":"Saraksta sÄkuma numuram jÄbÅ«t veselam skaitlim"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"MaksimizÄt","minimize":"MinimizÄt"},"newpage":{"toolbar":"Jauna lapa"},"pagebreak":{"alt":"Lapas pÄrnesums","toolbar":"Ievietot lapas pÄrtraukumu drukai"},"pastetext":{"button":"Ievietot kÄ vienkÄrÅ¡u tekstu","title":"Ievietot kÄ vienkÄrÅ¡u tekstu"},"pastefromword":{"confirmCleanup":"Teksts, kuru vÄlaties ielÄ«mÄt, izskatÄs ir nokopÄts no Word. Vai vÄlaties to iztÄ«rÄ«t pirms ielÄ«mÄÅ¡anas?","error":"IekÅ¡Äjas kļūdas dÄļ, neizdevÄs iztÄ«rÄ«t ielÄ«mÄtos datus.","title":"Ievietot no Worda","toolbar":"Ievietot no Worda"},"preview":{"preview":"PriekÅ¡skatÄ«t"},"print":{"toolbar":"DrukÄt"},"removef
ormat":{"toolbar":"NoÅemt stilus"},"save":{"toolbar":"SaglabÄt"},"selectall":{"toolbar":"IezÄ«mÄt visu"},"showblocks":{"toolbar":"ParÄdÄ«t blokus"},"sourcearea":{"toolbar":"HTML kods"},"specialchar":{"options":"SpeciÄlo simbolu uzstÄdÄ«jumi","title":"Ievietot Ä«paÅ¡u simbolu","toolbar":"Ievietot speciÄlo simbolu"},"scayt":{"about":"Par SCAYT","aboutTab":"Par","addWord":"Pievienot vÄrdu","allCaps":"IgnorÄt vÄrdus ar lielajiem burtiem","dic_create":"Izveidot","dic_delete":"DzÄst","dic_field_name":"VÄrdnÄ«cas nosaukums","dic_info":"SÄkumÄ lietotÄja vÄrdnÄ«ca tiek glabÄta Cookie. DiemžÄl, Cookie ir ierobežots izmÄrs. Kad vÄrdnÄ«ca sasniegs izmÄru, ka to vairs nevar glabÄt Cookie, tÄ tiks noglabÄta uz servera. Lai saglabÄtu personÄ«go vÄrdnÄ«cu uz jÅ«su servera, jums jÄnorÄda tÄs nosaukums. Ja jÅ«s jau esiet noglabÄjuÅ¡i vÄrdnÄ«cu, lÅ«dzu ierakstiet tÄs nosaukum un nospiediet Atjaunot pogu.","dic_rename":"PÄrsaukt","dic_restore":"Atjaunot","dict
ionariesTab":"VÄrdnÄ«cas","disable":"AtslÄgt SCAYT","emptyDic":"VÄrdnÄ«cas nosaukums nevar bÅ«t tukÅ¡s.","enable":"IeslÄgt SCAYT","ignore":"IgnorÄt","ignoreAll":"IgnorÄt visu","ignoreDomainNames":"IgnorÄt domÄnu nosaukumus","langs":"Valodas","languagesTab":"Valodas","mixedCase":"IgnorÄt vÄrdus ar jauktu reÄ£istru burtiem","mixedWithDigits":"IgnorÄt vÄrdus ar skaitļiem","moreSuggestions":"VairÄk ieteikumi","opera_title":"Opera neatbalsta","options":"UzstÄdÄ«jumi","optionsTab":"UzstÄdÄ«jumi","title":"PÄrbaudÄ«t gramatiku rakstot","toggle":"PÄrslÄgt SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stils","panelTitle":"FormatÄÅ¡anas stili","panelTitle1":"Bloka stili","panelTitle2":"iekļautie stili","panelTitle3":"Objekta stili"},"table":{"border":"RÄmja izmÄrs","caption":"LeÄ£enda","cell":{"menu":"Å Å«na","insertBefore":"Pievienot šūnu pirms","insertAfter":"Pievienot šūnu pÄc","deleteCell":"DzÄst rÅ«tiÅas","merge":"Apvienot rÅ«tiÅas"
,"mergeRight":"Apvieno pa labi","mergeDown":"Apvienot uz leju","splitHorizontal":"SadalÄ«t šūnu horizontÄli","splitVertical":"SadalÄ«t šūnu vertikÄli","title":"Å Å«nas uzstÄdÄ«jumi","cellType":"Å Å«nas tips","rowSpan":"Apvienotas rindas","colSpan":"Apvienotas kolonas","wordWrap":"VÄrdu pÄrnese","hAlign":"HorizontÄlais novietojums","vAlign":"VertikÄlais novietojums","alignBaseline":"Pamatrinda","bgColor":"Fona krÄsa","borderColor":"RÄmja krÄsa","data":"Dati","header":"Virsraksts","yes":"JÄ","no":"NÄ","invalidWidth":"Å Å«nas platumam jÄbÅ«t skaitlim","invalidHeight":"Å Å«nas augstumam jÄbÅ«t skaitlim","invalidRowSpan":"Apvienojamo rindu skaitam jÄbÅ«t veselam skaitlim","invalidColSpan":"Apvienojamo kolonu skaitam jÄbÅ«t veselam skaitlim","chooseColor":"IzvÄlÄties"},"cellPad":"RÅ«tiÅu nobÄ«de","cellSpace":"RÅ«tiÅu atstatums","column":{"menu":"Kolonna","insertBefore":"Ievietot kolonu pirms","insertAfter":"Ievieto kolonu pÄc","deleteColumn":"DzÄst kolonn
as"},"columns":"Kolonnas","deleteTable":"DzÄst tabulu","headers":"Virsraksti","headersBoth":"Abi","headersColumn":"PirmÄ kolona","headersNone":"Nekas","headersRow":"PirmÄ rinda","invalidBorder":"RÄmju izmÄram jÄbÅ«t skaitlim","invalidCellPadding":"Å Å«nu atkÄpÄm jÄbÅ«t pozitÄ«vam skaitlim","invalidCellSpacing":"Å Å«nu atstarpÄm jÄbÅ«t pozitÄ«vam skaitlim","invalidCols":"Kolonu skaitam jÄbÅ«t lielÄkam par 0","invalidHeight":"Tabulas augstumam jÄbÅ«t skaitlim","invalidRows":"Rindu skaitam jÄbÅ«t lielÄkam par 0","invalidWidth":"Tabulas platumam jÄbÅ«t skaitlim","menu":"Tabulas Ä«pašības","row":{"menu":"Rinda","insertBefore":"Ievietot rindu pirms","insertAfter":"Ievietot rindu pÄc","deleteRow":"DzÄst rindas"},"rows":"Rindas","summary":"AnotÄcija","title":"Tabulas Ä«pašības","toolbar":"Tabula","widthPc":"procentuÄli","widthPx":"pikseļos","widthUnit":"platuma mÄrvienÄ«ba"},"undo":{"redo":"AtkÄrtot","undo":"Atcelt"},"wsc":{"btnIgnore":"IgnorÄt","btnIgno
reAll":"IgnorÄt visu","btnReplace":"Aizvietot","btnReplaceAll":"Aizvietot visu","btnUndo":"Atcelt","changeTo":"NomainÄ«t uz","errorLoading":"Kļūda ielÄdÄjot aplikÄcijas servisa adresi: %s.","ieSpellDownload":"PareizrakstÄ«bas pÄrbaudÄ«tÄjs nav pievienots. Vai vÄlaties to lejupielÄdÄt tagad?","manyChanges":"PareizrakstÄ«bas pÄrbaude pabeigta: %1 vÄrdi tika mainÄ«ti","noChanges":"PareizrakstÄ«bas pÄrbaude pabeigta: nekas netika labots","noMispell":"PareizrakstÄ«bas pÄrbaude pabeigta: kļūdas netika atrastas","noSuggestions":"- Nav ieteikumu -","notAvailable":"Atvainojiet, bet serviss Å¡obrÄ«d nav pieejams.","notInDic":"Netika atrasts vÄrdnÄ«cÄ","oneChange":"PareizrakstÄ«bas pÄrbaude pabeigta: 1 vÄrds izmainÄ«ts","progress":"Notiek pareizrakstÄ«bas pÄrbaude...","title":"PÄrbaudÄ«t gramatiku","toolbar":"PareizrakstÄ«bas pÄrbaude"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/mk.js b/share/static/RichText/lang/mk.js
new file mode 100644
index 0000000..dabdbfb
--- /dev/null
+++ b/share/static/RichText/lang/mk.js
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.lang['mk']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"<not set>","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"ÐпÑÑо","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to
this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field mu
st be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"cop
y":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Background Color","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"D
ark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"More Colors...","panelTitle":"Colors","textColorTitle":"Text Color"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templates","emptyListMsg":"(No templates defined)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Please select the template to open in the editor","title":"Conte
nt Templates"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numbere
dlist":"Insert/Remove Numbered List"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"find":{"find":"Find","findOptions":"Find Options","findWhat":"Find what:","matchCase":"Match case","matchCyclic":"Match cyclic","matchWord":"Match whole word","notFoundMsg":"The specified text was not found.","replace":"Replace","replaceAll":"Replace All","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Replace with:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs Bottom","alignAbsMiddle":"Abs Middle","alignBaseline":"Baseline","alignTextTop":"Text Top","bgcolor":"Background color","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play","flashvars":"Variables for Flash",
"hSpace":"HSpace","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"URL must not be empty.","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Size","voiceLabel":"Font Size","panelTitle":"Font Size"},"label":"Font","panelTitle":"Font Name","voiceLabel":"Font"},"forms":{"button":{"title":"Button Properties","text":"Text (Value)","type":"Type","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Checkbox Properties","radioTitle":"Radi
o Button Properties","value":"Value","selected":"Selected"},"form":{"title":"Form Properties","menu":"Form Properties","action":"Action","method":"Method","encoding":"Encoding"},"hidden":{"title":"Hidden Field Properties","name":"Name","value":"Value"},"select":{"title":"Selection Field Properties","selectInfo":"Select Info","opAvail":"Available Options","value":"Value","size":"Size","lines":"lines","chkMulti":"Allow multiple selections","opText":"Text","opValue":"Value","btnAdd":"Add","btnModify":"Modify","btnUp":"Up","btnDown":"Down","btnSetValue":"Set as selected value","btnDelete":"Delete"},"textarea":{"title":"Textarea Properties","cols":"Columns","rows":"Rows"},"textfield":{"title":"Text Field Properties","name":"Name","value":"Value","charWidth":"Character Width","maxChars":"Maximum Characters","type":"Type","typeText":"Text","typePass":"Password","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panel
Title":"Paragraph Format","tag_address":"Address","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Insert Horizontal Line"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Please type the image URL","alt":"Alternative Text","border":"Border","btnUpload":"Send it to the Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Image Info","linkTab":"Link","lockRatio":"Lock Ratio","menu":"Image Properties","resetSize":"Reset Size","title":"Image Properties","titleButton":"Image Button Properties","upload":"Upload","urlMissing":"Image source UR
L is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Insert a Smiley","toolbar":"Smiley"},"justify":{"block":"Justify","center":"Center","left":"Align Left","right":"Align Right"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Ri
ght (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"<other>","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":"<frame>","targetFrameName":"Target Frame Name","targetPopup":"<popup window>","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"liststyl
e":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"New Page"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Paste as plain text","title":"Paste as P
lain Text"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Paste from Word","toolbar":"Paste from Word"},"preview":{"preview":"Preview"},"print":{"toolbar":"Print"},"removeformat":{"toolbar":"Remove Format"},"save":{"toolbar":"Save"},"selectall":{"toolbar":"Select All"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Source"},"specialchar":{"options":"Special Character Options","title":"Select Special Character","toolbar":"Insert Special Character"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it can
not be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styles","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline
Styles","panelTitle3":"Object Styles"},"table":{"border":"Border size","caption":"Caption","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Delete Cells","merge":"Merge Cells","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Cell padding","cellSpace":"Cell spacing","column":{"menu":"Co
lumn","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Delete Columns"},"columns":"Columns","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Table Properties","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Delete Rows"},"rows":"Rows","summary":"Summary","title":"Table Properties","toolbar":"Table","widthPc":"percent","widthPx":"pixels","widthUnit":"width unit"},"undo":{"redo":"Redo","
undo":"Undo"},"wsc":{"btnIgnore":"Ignore","btnIgnoreAll":"Ignore All","btnReplace":"Replace","btnReplaceAll":"Replace All","btnUndo":"Undo","changeTo":"Change to","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Spell checker not installed. Do you want to download it now?","manyChanges":"Spell check complete: %1 words changed","noChanges":"Spell check complete: No words changed","noMispell":"Spell check complete: No misspellings found","noSuggestions":"- No suggestions -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Not in dictionary","oneChange":"Spell check complete: One word changed","progress":"Spell check in progress...","title":"Spell Check","toolbar":"Check Spelling"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/mn.js b/share/static/RichText/lang/mn.js
index 00e647e..8c9580b 100644
--- a/share/static/RichText/lang/mn.js
+++ b/share/static/RichText/lang/mn.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.mn={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Ðод',newPage:'Ð¨Ð¸Ð½Ñ Ñ
ÑÑдаÑ',save:'ХадгалаÑ
',preview:'УÑидÑлан Ñ
аÑаÑ
',cut:'ХайÑлаÑ
',copy:'Ð¥ÑÑлаÑ
',paste:'ÐÑÑлгаÑ
',print:'Ð¥ÑвлÑÑ
',underline:'ÐоогÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
',bold:'Тод бүдүүн',italic:'ÐалÑÑ',selectAll:'Ðүгдийг Ð½Ñ ÑонгоÑ
',removeFormat:'ФоÑÐ¼Ð°Ñ Ð°Ð²Ñ Ñ
аÑÑ
',strike:'ÐÑндÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
',subscript:'СÑÑÑÑ Ð±Ð¾Ð»Ð³Ð¾Ñ
',superscript:'ÐÑÑÑг болгоÑ
',horizontalrule:'Хөндлөн зÑÑÐ°Ð°Ñ Ð¾ÑÑÑлаÑ
',pagebreak:'Ð¥ÑÑÐ´Ð°Ñ ÑÑÑгааÑÐ»Ð°Ð³Ñ Ð¾ÑÑÑлаÑ
',unlink:'Ðинк Ð°Ð²Ñ Ñ
аÑÑ
',undo:'Ð¥Ò¯Ñингүй болгоÑ
',redo:'ӨмнөÑ
үйлдлÑÑ ÑÑÑгÑÑÑ
',common:{browseServer:'СеÑÐ²ÐµÑ Ñ
аÑÑÑлаÑ
',url:'URL',protocol:'ÐÑоÑоко
л',upload:'Ð¥ÑÑлаÑ
',uploadSubmit:'Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ',image:'ÐÑÑаг',flash:'ФлаÑ',form:'ФоÑм',checkbox:'ЧекбокÑ',radio:'Радио ÑовÑ',textField:'ТеÑ
Ñ ÑалбаÑ',textarea:'ТеÑ
Ñ Ð¾ÑÑин',hiddenField:'ÐÑÑÑ ÑалбаÑ',button:'ТовÑ',select:'Ð¡Ð¾Ð½Ð³Ð¾Ð³Ñ ÑалбаÑ',imageButton:'ÐÑÑагÑай ÑовÑ',notSet:'<ÐнооÑ
гүй>',id:'Id',name:'ÐÑÑ',langDir:'Ð¥Ñлний ÑиглÑл',langDirLtr:'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)',langDirRtl:'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)',langCode:'Ð¥Ñлний код',longDescr:'URL-Ñн ÑайлбаÑ',cssClass:'Stylesheet клаÑÑÑÑд',advisoryTitle:'ÐөвлөлдөÑ
гаÑÑиг',cssStyle:'ÐагваÑ',ok:'OK',cancel:'ÐолиÑ
',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'ÐÑмÑлÑ',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you wan
t to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'ÐнÑгой ÑÑмдÑÐ³Ñ Ð¾ÑÑÑлаÑ
',title:'ÐнÑгой ÑÑмдÑÐ³Ñ ÑонгоÑ
',options:'Special Character Options'},link:{toolbar:'Ðинк ÐÑÑÑлаÑ
/ÐаÑваÑлаÑ
',other:'<other>',menu:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°ÑваÑлаÑ
',title:'Ðинк',info:'Ðинкийн мÑдÑÑлÑл',target:'ÐайÑлал',upload:'Ð¥ÑÑлаÑ
',advanced:'ÐÑмÑлÑ',type:'Ðинкийн ÑÓ©Ñөл',toUrl:'URL',toAnchor:'ÐÐ½Ñ Ñ
ÑÑдаÑандаÑ
Ñ
олбооÑ',toEmail:'E-Mail',targetFrame:'<ÐгÑÑлаÑ
Ñ
Ò¯ÑÑÑ>',targetPopup:'<popup ÑонÑ
>',targetFrameName:'ÐÑиÑ
ÑÑемÑн нÑÑ',targetPopupName:'Popup ÑонÑ
Ð½Ñ Ð½ÑÑ',popupFeatures:'Popup ÑонÑ
Ð½Ñ Ð¾Ð½Ñлог',popupResizable:'Resizable',popupStatusBar:'СÑаÑÑÑ Ñ
ÑÑÑг',popupLocationBar:'Location Ñ
ÑÑÑг',popupToolbar:'ÐÐ°Ð³Ð°Ð¶Ð½Ñ Ñ
ÑÑÑг',popupMenuBar:'MeÐ½Ñ Ñ
ÑÑÑг',popupFullScreen:'ЦонÑ
дүүÑгÑÑ
(IE)',popupScrollBars:'СкÑол Ñ
ÑÑÑгүүд',popupDependent:'ХамааÑай (Netscape)',popupWidth:'Ó¨Ñгөн',popupLeft:'Ðүүн байÑлал',popupHeight:'ӨндөÑ',popupTop:'ÐÑÑд байÑлал',id:'Id',langDir:'Ð¥Ñлний ÑиглÑл',langDirLTR:'ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)',langDirRTL:'ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)',acccessKey:'ХолбоÑ
ÑүлÑ
Ò¯Ò¯Ñ',name:'ÐÑÑ',langCode:'Ð¥Ñлний ÑиглÑл',tabIndex:'Tab индекÑ',advisoryTitle:'ÐөвлөлдөÑ
гаÑÑиг'
,advisoryContentType:'ÐөвлөлдөÑ
ÑÓ©Ñлийн агÑÑлга',cssClasses:'Stylesheet клаÑÑÑÑд',charset:'ТÑмдÑÐ³Ñ Ð¾Ð½Ð¾Ð¾Ñ
нөөÑөд Ñ
олбогдÑон',styles:'ÐагваÑ',selectAnchor:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑонгоÑ
',anchorName:'ХолбооÑÑн нÑÑÑÑÑ',anchorId:'ÐлемÑÐ½Ñ Id-гааÑ',emailAddress:'E-Mail ХаÑг',emailSubject:'Message гаÑÑиг',emailBody:'Message-ийн агÑÑлга',noAnchors:'(ÐаÑÐ¸Ð¼Ñ Ð±Ð¸Ñиг Ñ
олбооÑгүй байна)',noUrl:'Ðинк URL-ÑÑ ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯',noEmail:'Ð-mail Ñ
аÑгаа ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯'},anchor:{toolbar:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÐÑÑÑлаÑ
/ÐаÑваÑлаÑ
',menu:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñинж ÑанаÑ',title:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñинж ÑанаÑ',name:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð½ÑÑ',errorName:'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ ÑÓ©Ñөл оÑÑÑлна ÑÑ'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateSta
rtNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Хай мөн ÐаÑж биÑ',find:'ХайÑ
',replace:'СолиÑ
',findWhat:'ХайÑ
үг/Ò¯ÑÑг:',replaceWith:'СолиÑ
үг:',notFoundMsg:'ХайÑан ÑекÑÑ Ð¾Ð»Ñонгүй.',matchCase:'ТÑнÑÑÑ
Ñөлөв',matchWord:'ТÑнÑÑÑ
бүÑÑн үг',matchCyclic:'Match cyclic',replaceAll:'Ðүгдийг Ð½Ñ Ð¡Ð¾Ð»Ð¸Ñ
',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Ð¥Ò¯ÑнÑÐ
³Ñ',title:'Ð¥Ò¯ÑнÑгÑ',menu:'Ð¥Ò¯ÑнÑгÑ',deleteTable:'Ð¥Ò¯ÑнÑÐ³Ñ ÑÑÑгаÑ
',rows:'ÐÓ©Ñ',columns:'Ðагана',border:'Ð¥Ò¯ÑÑÑний Ñ
ÑмжÑÑ',align:'ÐгнÑÑ',alignLeft:'Ðүүн Ñалд',alignCenter:'Төвд',alignRight:'ÐаÑÑÑн Ñалд',width:'Ó¨Ñгөн',widthPx:'ÑÑг',widthPc:'Ñ
ÑвÑ',widthUnit:'width unit',height:'ӨндөÑ',cellSpace:'ÐÒ¯Ñ
Ñ
ооÑондÑн зай (spacing)',cellPad:'ÐÒ¯Ñ
доÑоÑлоÑ
(padding)',caption:'ТайлбаÑ',summary:'ТайлбаÑ',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a
number.',cell:{menu:'ÐÒ¯Ñ
/зай',insertBefore:'ÐÒ¯Ñ
/зай өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
',insertAfter:'ÐÒ¯Ñ
/зай даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
',deleteCell:'ÐÒ¯Ñ
ÑÑÑгаÑ
',merge:'ÐÒ¯Ñ
нÑгÑÑÑ
',mergeRight:'ÐаÑÑÑн ÑÐ¸Ð¹Ñ Ð½ÑгÑгÑÑ
',mergeDown:'ÐÐ¾Ð¾Ñ Ð½ÑгÑгÑÑ
',splitHorizontal:'ÐÒ¯Ñ
/зайг боÑÐ¾Ð¾Ð³Ð¾Ð¾Ñ Ð½Ñ ÑÑÑгааÑлаÑ
',splitVertical:'ÐÒ¯Ñ
/зайг Ñ
Ó©Ð½Ð´Ð»Ó©Ð½Ð³Ó©Ó©Ñ Ð½Ñ ÑÑÑгааÑлаÑ
',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a
whole number.',chooseColor:'Choose'},row:{menu:'ÐÓ©Ñ',insertBefore:'ÐÓ©Ñ Ó©Ð¼Ð½Ó© Ð½Ñ Ð¾ÑÑÑлаÑ
',insertAfter:'ÐÓ©Ñ Ð´Ð°Ñаа Ð½Ñ Ð¾ÑÑÑлаÑ
',deleteRow:'ÐÓ©Ñ ÑÑÑгаÑ
'},column:{menu:'Ðагана',insertBefore:'Ðагана өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
',insertAfter:'Ðагана даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
',deleteColumn:'Ðагана ÑÑÑгаÑ
'}},button:{title:'ТовÑÐ½Ñ Ñинж ÑанаÑ',text:'ТÑкÑÑ (УÑга)',type:'ТөÑөл',typeBtn:'ТовÑ',typeSbm:'Submit',typeRst:'ÐолиÑ
'},checkboxAndRadio:{checkboxTitle:'ЧекбокÑÐ½Ñ Ñинж ÑанаÑ',radioTitle:'Радио ÑовÑÐ½Ñ Ñинж ÑанаÑ',value:'УÑга',selected:'СонгогдÑон'},form:{title:'ФоÑм Ñинж ÑанаÑ',menu:'ФоÑм Ñинж ÑанаÑ',action:'ҮйлдÑл',method:'ÐÑга',encoding:'Encoding'},select:{title:'Ð¡Ð¾Ð³Ð¾Ð³Ñ ÑалбаÑÑн Ñинж ÑанаÑ',selectInfo:'ÐÑдÑÑлÑл',opAvail:'ÐдвÑÑ
ÑÑй ÑонголÑ'
,value:'УÑга',size:'Ð¥ÑмжÑÑ',lines:'ÐÓ©Ñ',chkMulti:'Ðлон ÑÐ¾Ð½Ð³Ð¾Ð»Ñ Ð·Ó©Ð²ÑÓ©Ó©ÑÓ©Ñ
',opText:'ТÑкÑÑ',opValue:'УÑга',btnAdd:'ÐÑмÑÑ
',btnModify:'Ó¨Ó©ÑÑлөÑ
',btnUp:'ÐÑÑÑ',btnDown:'ÐооÑ',btnSetValue:'СонгогдÑан ÑÑга онооÑ
',btnDelete:'УÑÑгаÑ
'},textarea:{title:'ТекÑÑ Ð¾ÑÑÐ½Ñ Ñинж ÑанаÑ',cols:'Ðагана',rows:'ÐÓ©Ñ'},textfield:{title:'ТекÑÑ ÑалбаÑÑн Ñинж ÑанаÑ',name:'ÐÑÑ',value:'УÑга',charWidth:'ТÑмдÑгÑÑн Ó©Ñгөн',maxChars:'Хамгийн иÑ
ÑÑмдÑгÑ',type:'ТөÑөл',typeText:'ТекÑÑ',typePass:'ÐÑÑÑ Ò¯Ð³'},hidden:{title:'ÐÑÑÑ ÑалбаÑÑн Ñинж ÑанаÑ',name:'ÐÑÑ',value:'УÑга'},image:{title:'ÐÑÑаг',titleButton:'ÐÑÑган ÑовÑÐ½Ñ Ñинж ÑанаÑ',menu:'ÐÑÑаг',infoTab:'ÐÑÑÐ°Ð³Ð½Ñ Ð¼ÑдÑÑлÑл',btnUpload:'Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ',upload:'Ð¥ÑÑлаÑ
',alt:'Тайлб
Ð°Ñ ÑекÑÑ',width:'Ó¨Ñгөн',height:'ӨндөÑ',lockRatio:'Радио ÑүгжиÑ
',unlockRatio:'Unlock Ratio',resetSize:'Ñ
ÑмжÑÑ Ð´Ð°Ñ
ин онооÑ
',border:'Ð¥Ò¯ÑÑÑ',hSpace:'Хөндлөн зай',vSpace:'ÐоÑоо зай',align:'ÐгнÑÑ',alignLeft:'Ðүүн',alignRight:'ÐаÑÑÑн',alertUrl:'ÐÑÑÐ°Ð³Ð½Ñ URL-Ñн ÑÓ©Ñлийн Ñонгоно ÑÑ',linkTab:'Ðинк',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ',propertiesTab:'Properties',title:'Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ',chkPlay:'ÐвÑомаÑÐ°Ð°Ñ Ñог
лоÑ
',chkLoop:'ÐавÑаÑ
',chkMenu:'Ð¤Ð»Ð°Ñ ÑÑÑ Ð¸Ð´Ð²ÑÑ
жүүлÑÑ
',chkFull:'Allow Fullscreen',scale:'Ó¨ÑгөгÑгөÑ
',scaleAll:'Ðүгдийг Ñ
аÑÑÑлаÑ
',scaleNoBorder:'Ð¥Ò¯ÑÑÑгүй',scaleFit:'Яг ÑааÑÑÑлаÑ
',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'ÐгнÑÑ',alignLeft:'Ðүүн',alignAbsBottom:'Abs доод Ñалд',alignAbsMiddle:'Abs ÐÑнд Ñалд',alignBaseline:'Baseline',alignBottom:'Ðоод Ñалд',alignMiddle:'ÐÑнд Ñалд',alignRight:'ÐаÑÑÑн',alignTextTop:'ТекÑÑ Ð´ÑÑÑ',alignTop:'ÐÑÑд Ñалд',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Ð¤Ð¾Ð½Ð½Ñ Ó©Ð½Ð³Ó©',width:'Ó¨Ñгөн',height:
'ӨндөÑ',hSpace:'Хөндлөн зай',vSpace:'ÐоÑоо зай',validateSrc:'Ðинк URL-ÑÑ ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Үгийн дүÑÑÑ
ÑалгаÑ
',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Ð¢Ð¾Ð»Ñ Ð±Ð¸Ñиггүй',changeTo:'Ó¨Ó©ÑÑлөÑ
',btnIgnore:'ÐөвÑÓ©Ó©ÑÓ©Ñ
',btnIgnoreAll:'Ðүгдийг зөвÑÓ©Ó©ÑÓ©Ñ
',btnReplace:'ÐаÑж биÑиÑ
',btnReplaceAll:'Ðүгдийг ÐаÑж биÑиÑ
',btnUndo:'ÐÑÑааÑ
',noSuggestions:'- ТайлбаÑгүй -',progress:'ÐÒ¯ÑÑм Ñалгаж байгаа үйл ÑвÑ...',noMispell:'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: Ðлдаа олдÑонгүй',noChanges:'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: үг Ó©Ó
©ÑÑлөгдөөгүй',oneChange:'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: 1 үг Ó©Ó©ÑÑлөгдÑөн',manyChanges:'ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: %1 үг Ó©Ó©ÑÑлөгдÑөн',ieSpellDownload:'ÐÒ¯ÑÑм ÑÐ°Ð»Ð³Ð°Ð³Ñ ÑÑÑгаагүй байна. ТаÑаж аваÑ
Ñг Ñ
Ò¯ÑÑ Ð±Ð°Ð¹Ð½Ð° ÑÑ?'},smiley:{toolbar:'ТодоÑÑ
ойлолÑ',title:'ТодоÑÑ
Ð¾Ð¹Ð»Ð¾Ð»Ñ Ð¾ÑÑÑлаÑ
',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ÐÑгааÑлагдÑан жагÑаалÑ',bulletedlist:'ЦÑгÑÑй жагÑаалÑ',indent:'Ðогол Ð¼Ó©Ñ Ñ
аÑаÑ
',outdent:'Ðогол Ð¼Ó©Ñ Ð½ÑмÑÑ
',justify:{left:'Ðүүн Ñалд байÑлÑÑлаÑ
',center:'Төвд байÑлÑÑлаÑ
',right:'ÐаÑÑÑн Ñалд байÑлÑÑлаÑ
',block:'Ðлок Ñ
ÑлбÑÑÑÑÑ Ð±Ð°Ð¹ÑлÑÑлаÑ
'},blockquote:'ХайÑÑаглаÑ
',clipboard:{title:'ÐÑÑлгаÑ
',cutError:'Ð¢Ð°Ð½Ñ browser-Ñн Ñ
а
мгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
айÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+X) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.',copyError:'Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
ÑÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+C) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.',pasteMsg:'(<strong>Ctrl/Cmd+V</strong>) ÑовÑийг аÑиглан paste Ñ
Ð¸Ð¹Ð½Ñ Ò¯Ò¯. Ðөн <strong>OK</strong> даÑ.',securityMsg:'Ð¢Ð°Ð½Ñ Ò¯Ð·Ò¯Ò¯Ð»ÑгÑ/browser/-н Ñ
амгаалалÑÑн ÑоÑ
иÑÐ³Ð¾Ð¾Ð½Ð¾Ð¾Ñ Ð±Ð¾Ð»Ð¾Ð¾Ð´ editor clipboard өгөгдөлÑÒ¯Ò¯ ÑÑÑд Ñ
андаÑ
боломжгүй. ÐÐ½Ñ ÑонÑ
од даÑ
ин paste Ñ
ийÑ
ийг оÑолд.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?'
,toolbar:'Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
',title:'Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Plain Text-ÑÑÑ Ð±ÑÑлгаÑ
',title:'Plain Text-ÑÑÑ Ð±ÑÑлгаÑ
'},templates:{button:'ÐагваÑÑÑд',title:'ÐагваÑÑн агÑÑлга',options:'Template Options',insertOption:'Ðдоогийн агÑÑллагÑг даÑж биÑиÑ
',selectPromptMsg:'ÐагваÑÑг нÑÑж editor-ÑÒ¯Ò¯ Ñонгож оÑÑÑлна ÑÑ<br />(Ðдоогийн агÑÑллагÑг ÑÑÑаж магадгүй):',emptyListMsg:'(ÐÐ°Ð³Ð²Ð°Ñ ÑодоÑÑ
ойлогдоогүй байна)'},showBlocks:'Block-ÑÑдÑг үзүүлÑÑ
',stylesCombo:{label:'ÐагваÑ',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'ФоÑмаÑ',panelTitle:'ФоÑмаÑ',tag_p:'Ð¥Ñвийн',tag_pre:'Formatted',tag_address:'ХаÑг',tag_h
1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Paragraph (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ФонÑ',voiceLabel:'Font',panelTitle:'ФонÑ'},fontSize:{label:'Ð¥ÑмжÑÑ',voiceLabel:'Font Size',panelTitle:'Ð¥ÑмжÑÑ'},colorButton:{textColorTitle:'ФонÑÐ½Ñ Ó©Ð½Ð³Ó©',bgColorTitle:'Ð¤Ð¾Ð½Ð½Ñ Ó©Ð½Ð³Ó©',panelTitle:'Colors',auto:'ÐвÑомаÑааÑ',more:'ÐÑмÑÐ»Ñ Ó©Ð½Ð³Ó©Ð½Ò¯Ò¯Ð´...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy
','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignor
e All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor'
,flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['mn']={"dir":"ltr","editor":"Ð¥ÑлбÑÑÑ Ð±Ð¸ÑвÑÑ Ð±Ð¾Ð»Ð¾Ð²ÑÑÑÑлагÑ","common":{"editorHelp":"Press ALT 0 for help","browseServer":"СеÑÐ²ÐµÑ Ñ
аÑÑÑлаÑ
","url":"URL","protocol":"ÐÑоÑокол","upload":"Ð¥ÑÑлаÑ
","uploadSubmit":"Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ","image":"ÐÑÑаг","flash":"ФлаÑ","form":"ФоÑм","checkbox":"ЧекбокÑ","radio":"Радио ÑовÑ","textField":"ТеÑ
Ñ ÑалбаÑ","textarea":"ТеÑ
Ñ Ð¾ÑÑин","hiddenField":"ÐÑÑÑ ÑалбаÑ","button":"ТовÑ","select":"Ð¡Ð¾Ð½Ð³Ð¾Ð³Ñ ÑалбаÑ","imageButton":"ÐÑÑагÑай ÑовÑ","notSet":"<ÐнооÑ
гүй>","id":"Id","name":"ÐÑÑ","langDir":"Ð¥Ñлний ÑиглÑл","langDirLtr":"ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)","langDirRtl":"ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)","langCode":"Ð¥Ñлний код","longDescr":"URL-Ñн ÑайлбаÑ","cssClass":"Stylesheet клаÑÑÑÑд","advisoryTitle":"ÐөвлөлдөÑ
гаÑÑ
иг","cssStyle":"ÐагваÑ","ok":"OK","cancel":"ÐолиÑ
","close":"ХааÑ
","preview":"УÑидÑлан Ñ
аÑаÑ
","resize":"Resize","generalTab":"ÐÑөнÑ
ий","advancedTab":"ÐÑмÑлÑ","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"СонголÑ","target":"Ðай","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Ðүүн ÑÐ°Ð»Ð°Ð°Ñ Ð±Ð°ÑÑÑн ÑийÑÑÑ (LTR)","langDirRTL":"ÐаÑÑÑн ÑÐ°Ð»Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ ÑийÑÑÑ (RTL)","styles":"ÐагваÑ","cssClasses":"Stylesheet клаÑÑÑÑд","width":"Ó¨Ñгөн","height":"ӨндөÑ","align":"ÐгнÑÑ","alignLeft":"Ðүүн","alignRight":"ÐаÑÑÑн","alignCenter":"Төвд"
,"alignTop":"ÐÑÑд Ñалд","alignMiddle":"ÐÑнд Ñалд","alignBottom":"Ðоод Ñалд","invalidValue":"Invalid value.","invalidHeight":"Ó¨Ð½Ð´Ó©Ñ Ð½Ñ Ñоо байÑ
ÑÑÑой.","invalidWidth":"Ó¨Ñгөн Ð½Ñ Ñоо байÑ
ÑÑÑой.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved."
,"dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Тод бүдүүн","italic":"ÐалÑÑ","strike":"ÐÑндÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
","subscript":"СÑÑÑÑ Ð±Ð¾Ð»Ð³Ð¾Ñ
","superscript":"ÐÑÑÑг болгоÑ
","underline":"ÐоогÑÑÑ Ð½Ñ Ð·ÑÑааÑÑай болгоÑ
"},"bidi":{"ltr":"ÐүүнÑÑÑ Ð±Ð°ÑÑÑн ÑÐ¸Ð¹Ñ Ð±Ð¸ÑлÑг","rtl":"ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ ÑÐ¸Ð¹Ñ Ð±Ð¸ÑлÑг"},"blockquote":{"toolbar":"ÐÑлÑл Ñ
ÑÑÑг"},"clipboard":{"copy":"Ð¥ÑÑлаÑ
","copyError":"Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑÑн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
ÑÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+C) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.","cut":"ХайÑлаÑ
","cutError":"Ð¢Ð°Ð½Ñ browser-Ñн Ñ
амгаалалÑ
Ñн ÑоÑ
иÑгоо editor-д авÑомаÑÐ°Ð°Ñ Ñ
айÑлаÑ
үйлдÑлийг зөвÑÓ©Ó©ÑÓ©Ñ
гүй байна. (Ctrl/Cmd+X) ÑовÑÐ½Ñ Ñ
оÑлолÑг аÑиглана ÑÑ.","paste":"ÐÑÑлгаÑ
","pasteArea":"Paste Area","pasteMsg":"(<strong>Ctrl/Cmd+V</strong>) ÑовÑийг аÑиглан paste Ñ
Ð¸Ð¹Ð½Ñ Ò¯Ò¯. Ðөн <strong>OK</strong> даÑ.","securityMsg":"Ð¢Ð°Ð½Ñ Ò¯Ð·Ò¯Ò¯Ð»ÑгÑ/browser/-н Ñ
амгаалалÑÑн ÑоÑ
иÑÐ³Ð¾Ð¾Ð½Ð¾Ð¾Ñ Ð±Ð¾Ð»Ð¾Ð¾Ð´ editor clipboard өгөгдөлÑÒ¯Ò¯ ÑÑÑд Ñ
андаÑ
боломжгүй. ÐÐ½Ñ ÑонÑ
од даÑ
ин paste Ñ
ийÑ
ийг оÑолд.","title":"ÐÑÑлгаÑ
"},"colorbutton":{"auto":"ÐвÑомаÑааÑ","bgColorTitle":"ÐÑвÑгÑÑ Ó©Ð½Ð³Ó©","colors":{"000":"ХаÑ","800000":"Ð¥Ò¯ÑÑн","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark
Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"СааÑал","F00":"Улаан","FF8C00":"Dark Orange","FFD700":"ÐлÑ","008000":"Ðогоон","0FF":"ЦÑнÑ
ÑÑ","00F":"Ð¥Ó©Ñ
","EE82EE":"Ягаан","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Ð£Ð»Ð±Ð°Ñ ÑаÑ","FFFF00":"ШаÑ","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Ð¦Ð°Ð¹Ð²Ð°Ñ ÑааÑал","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"Цагаан"},"more":"ÐÑмÑÐ»Ñ Ó©Ð½Ð³Ó©Ð½Ò¯Ò¯Ð´...","panelTitle":"Өнгөнүүд","textColorTitle":"ÐиÑвÑÑийн өнгө"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"ÐагваÑÑÑд","emptyListMsg":"(ÐÐ°Ð³Ð²Ð°Ñ ÑодоÑÑ
ойлогдоогүй бай
на)","insertOption":"Ðдоогийн агÑÑллагÑг даÑж биÑиÑ
","options":"Template Options","selectPromptMsg":"ÐагваÑÑг нÑÑж editor-ÑÒ¯Ò¯ Ñонгож оÑÑÑлна ÑÑ<br />(Ðдоогийн агÑÑллагÑг ÑÑÑаж магадгүй):","title":"ÐагваÑÑн агÑÑлга"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"ÐөвлөлдөÑ
гаÑÑиг","cssClassInputLabel":"Stylesheet клаÑÑÑÑд","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Ðүүн ÑÐ°Ð»Ð°Ð°Ñ Ð±Ð°ÑÑÑн ÑиÑÑÑ (LTR)","langDirLabel":"Ð¥Ñлний ÑиглÑл","langDirRTLLabel":"ÐаÑÑÑн ÑÐ°Ð»Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ ÑиÑÑÑ (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"ÐагваÑ","title":"Div гÑдÑг Ñ
ÑÑÑг бий болгоÑ
","toolbar":"Div гÑдÑг Ñ
ÑÑÑг бий болгоÑ
"},"toolbar":{"toolbarColla
pse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"ХолбооÑÑÑд","insert":"ÐÑÑÑлаÑ
","styles":"ÐагваÑÑÑд","colors":"Ðнгөнүүд","tools":"Ð¥ÑÑÑгÑлүүд"},"toolbars":"ÐолоÑÑÑÑлагÑийн Ñ
ÑÑÑгÑлийн ÑамбаÑ"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"ЦÑгÑÑй жагÑаалÑ","numberedlist":"ÐÑгааÑлагдÑан жагÑаалÑ"},"indent":{"indent":"Ðогол Ð¼Ó©Ñ Ñ
аÑаÑ
","outdent":"Ðогол Ð¼Ó©Ñ Ð½ÑмÑÑ
"},"find":{"find":"ХайÑ
","findOptions":"ХайÑ
ÑонголÑÑÑд","findWhat":"ХайÑ
үг/Ò¯ÑÑг:","matchCase":"ТÑнÑÑÑ
Ñөлөв","matchCyclic":"Match cyclic","matchWord":"ТÑнÑÑÑ
бүÑÑн үг","notFoundMsg":"ХайÑан биÑвÑÑийг олÑ
онгүй.","replace":"ÐÑлÑÑлаÑ
","replaceAll":"Ðүгдийг Ð½Ñ ÑолиÑ
","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"СолиÑ
үг:","title":"Хайж оÑлÑÑлаÑ
"},"fakeobjects":{"anchor":"ÐангÑÑ","flash":"Flash Animation","hiddenfield":"ÐÑÑÑ ÑалбаÑ","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"ÐнÑлогÑÑд","accessNever":"Ð¥ÑзÑÑ Ñ Ò¯Ð³Ò¯Ð¹","accessSameDomain":"Ðайнга","alignAbsBottom":"Abs доод Ñалд","alignAbsMiddle":"Abs ÐÑнд Ñалд","alignBaseline":"Baseline","alignTextTop":"ТекÑÑ Ð´ÑÑÑ","bgcolor":"ÐÑвÑгÑÑ Ó©Ð½Ð³Ó©","chkFull":"Allow Fullscreen","chkLoop":"ÐавÑаÑ
","chkMenu":"Ð¤Ð»Ð°Ñ ÑÑÑ Ð¸Ð´Ð²ÑÑ
жүүлÑÑ
","chkPlay":"ÐвÑомаÑÐ°Ð°Ñ ÑоглоÑ
","flashvars":"Variables for Flash","hSpace":"Хөндлөн зай","properties":"Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ","propertiesTab":"Properties","quality":"Qualit
y","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Ó¨ÑгөгÑгөÑ
","scaleAll":"Ðүгдийг Ñ
аÑÑÑлаÑ
","scaleFit":"Яг ÑааÑÑÑлаÑ
","scaleNoBorder":"Ð¥Ò¯ÑÑÑгүй","title":"Ð¤Ð»Ð°Ñ Ñинж ÑанаÑ","vSpace":"ÐоÑоо зай","validateHSpace":"HSpace must be a number.","validateSrc":"Ðинк URL-ÑÑ ÑÓ©ÑÓ©Ð»Ð¶Ò¯Ò¯Ð»Ð½Ñ Ò¯Ò¯","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Ð¥ÑмжÑÑ","voiceLabel":"Ò®Ñгийн Ñ
ÑмжÑÑ","panelTitle":"Ò®Ñгийн Ñ
ÑмжÑÑ"},"label":"Ò®Ñгийн Ñ
ÑлбÑÑ","panelTitle":"ҮгÑийн Ñ
ÑлбÑÑийн нÑÑ","voiceLabel":"ҮгÑийн Ñ
ÑлбÑÑ"},"forms":{"button":{"title":"ТовÑÐ½Ñ Ñинж ÑанаÑ","text":"ТÑкÑÑ (УÑга)","typ
e":"ТөÑөл","typeBtn":"ТовÑ","typeSbm":"Submit","typeRst":"ÐолиÑ
"},"checkboxAndRadio":{"checkboxTitle":"ЧекбокÑÐ½Ñ Ñинж ÑанаÑ","radioTitle":"Радио ÑовÑÐ½Ñ Ñинж ÑанаÑ","value":"УÑга","selected":"СонгогдÑон"},"form":{"title":"ФоÑм Ñинж ÑанаÑ","menu":"ФоÑм Ñинж ÑанаÑ","action":"ҮйлдÑл","method":"ÐÑга","encoding":"Encoding"},"hidden":{"title":"ÐÑÑÑ ÑалбаÑÑн Ñинж ÑанаÑ","name":"ÐÑÑ","value":"УÑга"},"select":{"title":"Ð¡Ð¾Ð³Ð¾Ð³Ñ ÑалбаÑÑн Ñинж ÑанаÑ","selectInfo":"ÐÑдÑÑлÑл","opAvail":"ÐдвÑÑ
ÑÑй ÑонголÑ","value":"УÑга","size":"Ð¥ÑмжÑÑ","lines":"ÐÓ©Ñ","chkMulti":"Ðлон зүйл зÑÑÑг ÑонгоÑ
Ñг зөвÑÓ©Ó©ÑÓ©Ñ
","opText":"ТÑкÑÑ","opValue":"УÑга","btnAdd":"ÐÑмÑÑ
","btnModify":"Ó¨Ó©ÑÑлөÑ
","btnUp":"ÐÑÑÑ","btnDown":"ÐооÑ","btnSetValue":"СонгогдÑан ÑÑга он
ооÑ
","btnDelete":"УÑÑгаÑ
"},"textarea":{"title":"ТекÑÑ Ð¾ÑÑÐ½Ñ Ñинж ÑанаÑ","cols":"Ðагана","rows":"ÐÓ©Ñ"},"textfield":{"title":"ТекÑÑ ÑалбаÑÑн Ñинж ÑанаÑ","name":"ÐÑÑ","value":"УÑга","charWidth":"ТÑмдÑгÑÑн Ó©Ñгөн","maxChars":"Хамгийн иÑ
ÑÑмдÑгÑ","type":"ТөÑөл","typeText":"ТекÑÑ","typePass":"ÐÑÑÑ Ò¯Ð³","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ÐаÑаÑгаÑÑн загваÑ","panelTitle":"ÐаÑаÑгаÑÑн загваÑ","tag_address":"ХаÑг","tag_div":"Paragraph (DIV)","tag_h1":"ÐаÑÑиг 1","tag_h2":"ÐаÑÑиг 2","tag_h3":"ÐаÑÑиг 3","tag_h4":"ÐаÑÑиг 4","tag_h5":"ÐаÑÑиг 5","tag_h6":"ÐаÑÑиг 6","tag_p":"Ð¥Ñвийн","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"Хөндлөн зÑÑÐ°Ð°Ñ Ð¾ÑÑÑлаÑ
"},"iframe":{"border":"Show frame border","noUrl":"Please type
the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"ÐÑÑÐ°Ð³Ð½Ñ URL-Ñн ÑÓ©Ñлийн Ñонгоно ÑÑ","alt":"ÐÑÑгийг оÑлоÑ
биÑвÑÑ","border":"Ð¥Ò¯ÑÑÑ","btnUpload":"Үүнийг ÑеÑвÑÑÑÒ¯Ò¯ илгÑÑ","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Хөндлөн зай","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ÐÑÑÐ°Ð³Ð½Ñ Ð¼ÑдÑÑлÑл","linkTab":"ХолбооÑ","lockRatio":"Радио ÑүгжиÑ
","menu":"ÐÑÑаг","resetSize":"Ñ
ÑмжÑÑ Ð´Ð°Ñ
ин онооÑ
","title":"ÐÑÑаг","titleButton":"ÐÑÑган ÑовÑÐ½Ñ Ñинж ÑанаÑ","upload":"Ð¥ÑÑлаÑ
","urlMissing":"ÐÑÑгийн ÑÑ
ÑÑÑвалжийн Ñ
аÑг (URL) байÑ
гүй байна.","vSpace":"ÐоÑоо зай","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace mus
t be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"ТодоÑÑ
Ð¾Ð¹Ð»Ð¾Ð»Ñ Ð¾ÑÑÑлаÑ
","toolbar":"ТодоÑÑ
ойлолÑ"},"justify":{"block":"ТÑгÑлÑÑ
","center":"ÐоллÑÑлаÑ
","left":"Ðүүн Ñалд ÑÑлгаÑ
","right":"ÐаÑÑÑн Ñалд ÑÑлгаÑ
"},"link":{"acccessKey":"ХолбоÑ
ÑүлÑ
Ò¯Ò¯Ñ","advanced":"ÐÑмÑлÑ","advisoryContentType":"ÐөвлөлдөÑ
ÑÓ©Ñлийн агÑÑлга","advisoryTitle":"ÐөвлөлдөÑ
гаÑÑиг","anchor":{"toolbar":"ÐангÑÑ","menu":"ÐангÑÑг болоÑÑÑÑлаÑ
","title":"ÐангÑÑгийн Ñинж ÑанаÑ","name":"ÐангÑÑгийн нÑÑ","errorName":"ÐангÑÑгийн нÑÑийг оÑÑÑлна ÑÑ","remove":"ÐангÑÑг ÑÑÑгаÑ
"},"anchorId":"ÐлемÑнÑйн Id нÑÑÑÑÑ","anchorName":"ÐангÑÑгийн нÑÑÑÑÑ","charset":"ТÑмдÑÐ³Ñ Ð¾Ð½Ð¾Ð¾Ñ
нөөÑөд Ñ
олбогд
Ñон","cssClasses":"Stylesheet клаÑÑÑÑд","emailAddress":"Ð-ÑÑÑдангийн Ñ
аÑг","emailBody":"ÐÑÑваÑÐ½Ñ Ð¸Ñ
бие","emailSubject":"ÐÑÑваÑÐ½Ñ Ð³Ð°ÑÑиг","id":"Id","info":"ХолбооÑÑн ÑÑÑ
ай мÑдÑÑлÑл","langCode":"Ð¥Ñлний код","langDir":"Ð¥Ñлний ÑиглÑл","langDirLTR":"ÐүүнÑÑÑ Ð±Ð°ÑÑÑн (LTR)","langDirRTL":"ÐаÑÑÑÐ½Ð°Ð°Ñ Ð·Ò¯Ò¯Ð½ (RTL)","menu":"Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð·Ð°ÑваÑлаÑ
","name":"ÐÑÑ","noAnchors":"(ÐаÑÐ¸Ð¼Ñ Ð±Ð¸Ñиг зангÑÑгүй байна)","noEmail":"Ð-ÑÑÑдангий Ñ
аÑгаа ÑÐ¸Ð²Ð½Ñ Ò¯Ò¯","noUrl":"ХолбооÑÐ½Ñ URL Ñ
аÑгийг ÑÐ¸Ð²Ð½Ñ Ò¯Ò¯","other":"<other>","popupDependent":"ХамааÑай (Netscape)","popupFeatures":"Popup ÑонÑ
Ð½Ñ Ð¾Ð½Ñлог","popupFullScreen":"ЦонÑ
дүүÑгÑÑ
(Internet Explorer)","popupLeft":"Ðүүн байÑлал","popupLocationBar":"Location Ñ
ÑÑÑг","popupMenuBar":"ЦÑÑний ÑамбаÑ","popup
Resizable":"Resizable","popupScrollBars":"СкÑол Ñ
ÑÑÑгүүд","popupStatusBar":"СÑаÑÑÑ Ñ
ÑÑÑг","popupToolbar":"ÐÐ°Ð³Ð°Ð¶Ð½Ñ ÑамбаÑ","popupTop":"ÐÑÑд байÑлал","rel":"Relationship","selectAnchor":"ÐÑг зангÑÑг Ñонгоно ÑÑ","styles":"ÐагваÑ","tabIndex":"Tab индекÑ","target":"ÐайÑлал","targetFrame":"<ÐгÑÑлаÑ
Ñ
Ò¯ÑÑÑ>","targetFrameName":"ÐÑиÑ
ÑÑемÑн нÑÑ","targetPopup":"<popup ÑонÑ
>","targetPopupName":"Popup ÑонÑ
Ð½Ñ Ð½ÑÑ","title":"ХолбооÑ","toAnchor":"ÐÐ½Ñ Ð±Ð¸ÑвÑÑ Ð´ÑÑ
зангÑÑ ÑÑÑ Ð¾ÑиÑ
Ñ
олбооÑ","toEmail":"Ð-заÑ
иа","toUrl":"ÑаÑ
им Ñ
ÑÑдаÑÐ½Ñ Ñ
аÑг (URL)","toolbar":"ХолбооÑ","type":"Ðинкийн ÑÓ©Ñөл","unlink":"Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ð°Ð²Ñ Ñ
аÑÑ
","upload":"Ð¥ÑÑлаÑ
"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","d
ecimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"ТөÑөл","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ÐÑлгÑÑ Ð´Ò¯Ò¯ÑгÑÑ
","minimize":"ЦонÑ
Ñг багÑгаж Ñ
аÑÑÑлаÑ
"},"newpage":{"toolbar":"Ð¨Ð¸Ð½Ñ Ñ
ÑÑдаÑ"},"pagebreak":{"alt":"Page Break","toolbar":"Ð¥ÑÑÐ´Ð°Ñ ÑÑÑгааÑÐ»Ð°Ð³Ñ Ð¾ÑÑÑлаÑ
"},"pastetext":{"button":"Ðнгийн биÑвÑÑÑÑÑ Ð±ÑÑлгаÑ
","title":"Ðнгийн биÑвÑÑ
ÑÑÑ Ð±ÑÑлгаÑ
"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
","toolbar":"Word-Ð¾Ð¾Ñ Ð±ÑÑлгаÑ
"},"preview":{"preview":"УÑидÑлан Ñ
аÑаÑ
"},"print":{"toolbar":"Ð¥ÑвлÑÑ
"},"removeformat":{"toolbar":"ÐаÑаÑгаÑÑн загваÑÑг Ð°Ð²Ñ Ñ
аÑÑ
"},"save":{"toolbar":"ХадгалаÑ
"},"selectall":{"toolbar":"Ðүгдийг Ð½Ñ ÑонгоÑ
"},"showblocks":{"toolbar":"ХавÑангÑÑдÑг Ñ
аÑÑÑлаÑ
"},"sourcearea":{"toolbar":"Ðод"},"specialchar":{"options":"Special Character Options","title":"ÐнÑгой ÑÑмдÑÐ³Ñ ÑонгоÑ
","toolbar":"ÐнÑгой ÑÑмдÑÐ³Ñ Ð¾ÑÑÑлаÑ
"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Ðий болгоÑ
","
dic_delete":"УÑÑгаÑ
","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"ÐÑÑийг ÑолиÑ
","dic_restore":"Restore","dictionariesTab":"Ð¢Ð¾Ð»Ñ Ð±Ð¸Ñгүүд","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Ð¥Ñлүүд","languagesTab":"Ð¥Ñлүүд","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Ope
ra","options":"СонголÑ","optionsTab":"СонголÑ","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"ÐагваÑ","panelTitle":"ÐÐ°Ð³Ð²Ð°Ñ Ñ
ÑлбÑÑжүүлÑÑ
","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Ð¥Ò¯ÑÑÑний Ñ
ÑмжÑÑ","caption":"ТайлбаÑ","cell":{"menu":"ÐÒ¯Ñ
/зай","insertBefore":"ÐÒ¯Ñ
/зай өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
","insertAfter":"ÐÒ¯Ñ
/зай даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
","deleteCell":"ÐÒ¯Ñ
ÑÑÑгаÑ
","merge":"ÐÒ¯Ñ
нÑгÑÑÑ
","mergeRight":"ÐаÑÑÑн ÑÐ¸Ð¹Ñ Ð½ÑгÑгÑÑ
","mergeDown":"ÐÐ¾Ð¾Ñ Ð½ÑгÑгÑÑ
","splitHorizontal":"ÐÒ¯Ñ
/зайг боÑÐ¾Ð¾Ð³Ð¾Ð¾Ñ Ð½Ñ ÑÑÑгааÑлаÑ
","splitVertical":"ÐÒ¯Ñ
/зайг Ñ
Ó©Ð½Ð´Ð»Ó©Ð½Ð³Ó©Ó©Ñ Ð½Ñ ÑÑÑгааÑлаÑ
","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"
Word Wrap","hAlign":"Ð¥ÑвÑÑÑд ÑÑгÑлÑÑ
аÑга","vAlign":"ÐоÑоод ÑÑгÑлÑÑ
аÑга","alignBaseline":"Baseline","bgColor":"ÐÑвÑгÑÑ Ó©Ð½Ð³Ó©","borderColor":"Ð¥Ò¯ÑÑÑний өнгө","data":"Data","header":"Header","yes":"Тийм","no":"Үгүй","invalidWidth":"Ðүдний Ó©Ñгөн Ð½Ñ Ñоо байÑ
ÑÑÑой.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"СонгоÑ
"},"cellPad":"ÐÒ¯Ñ
доÑоÑлоÑ
(padding)","cellSpace":"ÐÒ¯Ñ
Ñ
ооÑондÑн зай (spacing)","column":{"menu":"Ðагана","insertBefore":"Ðагана өмнө Ð½Ñ Ð¾ÑÑÑлаÑ
","insertAfter":"Ðагана даÑаа Ð½Ñ Ð¾ÑÑÑлаÑ
","deleteColumn":"Ðагана ÑÑÑгаÑ
"},"columns":"Ðагана","deleteTable":"Ð¥Ò¯ÑнÑÐ³Ñ ÑÑÑгаÑ
","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNon
e":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Ð¥Ò¯ÑнÑгÑийн Ó©Ñгөн Ð½Ñ Ñоо байÑ
ÑÑÑой.","menu":"Ð¥Ò¯ÑнÑгÑ","row":{"menu":"ÐÓ©Ñ","insertBefore":"ÐÓ©Ñ Ó©Ð¼Ð½Ó© Ð½Ñ Ð¾ÑÑÑлаÑ
","insertAfter":"ÐÓ©Ñ Ð´Ð°Ñаа Ð½Ñ Ð¾ÑÑÑлаÑ
","deleteRow":"ÐÓ©Ñ ÑÑÑгаÑ
"},"rows":"ÐÓ©Ñ","summary":"ТайлбаÑ","title":"Ð¥Ò¯ÑнÑгÑ","toolbar":"Ð¥Ò¯ÑнÑгÑ","widthPc":"Ñ
ÑвÑ","widthPx":"ÑÑг","widthUnit":"Ó©Ñгөний нÑгж"},"undo":{"redo":"ӨмнөÑ
үйлдлÑÑ ÑÑÑгÑÑÑ
","undo":"Ð¥Ò¯Ñингүй болгоÑ
"},"wsc":{"btnIgnore":"ÐөвÑÓ©Ó©ÑÓ©Ñ
","btnIgnoreAll":"Ð
үгдийг зөвÑÓ©Ó©ÑÓ©Ñ
","btnReplace":"СолиÑ
","btnReplaceAll":"Ðүгдийг ÐаÑж биÑиÑ
","btnUndo":"ÐÑÑааÑ
","changeTo":"Ó¨Ó©ÑÑлөÑ
","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"ÐÒ¯ÑÑм ÑÐ°Ð»Ð³Ð°Ð³Ñ ÑÑÑгаагүй байна. ТаÑаж аваÑ
Ñг Ñ
Ò¯ÑÑ Ð±Ð°Ð¹Ð½Ð° ÑÑ?","manyChanges":"ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: %1 үг Ó©Ó©ÑÑлөгдÑөн","noChanges":"ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: үг Ó©Ó©ÑÑлөгдөөгүй","noMispell":"ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: Ðлдаа олдÑонгүй","noSuggestions":"- ТайлбаÑгүй -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Ð¢Ð¾Ð»Ñ Ð±Ð¸Ñиггүй","oneChange":"ÐÒ¯ÑÑм Ñалгаад дÑÑÑÑан: 1 үг Ó©Ó©ÑÑлөгдÑөн","progress":"ÐÒ¯ÑÑм Ñалгаж байгаа үйл ÑвÑ...","title":"Spell Check","toolbar":"Үгийн дүÑÑÑ
ÑалгаÑ
"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ms.js b/share/static/RichText/lang/ms.js
index 14ba2db..ebd8832 100644
--- a/share/static/RichText/lang/ms.js
+++ b/share/static/RichText/lang/ms.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ms={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Sumber',newPage:'Helaian Baru',save:'Simpan',preview:'Prebiu',cut:'Potong',copy:'Salin',paste:'Tampal',print:'Cetak',underline:'Underline',bold:'Bold',italic:'Italic',selectAll:'Pilih Semua',removeFormat:'Buang Format',strike:'Strike Through',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Masukkan Garisan Membujur',pagebreak:'Insert Page Break for Printing',unlink:'Buang Sambungan',undo:'Batalkan',redo:'Ulangkan',common:{browseServer:'Browse Server',url:'URL',protocol:'Protokol',upload:'Muat Naik',uploadSubmit:'Hantar ke Server',image:'Gambar',flash:'Flash',form:'Borang',checkbox:'Checkbox',radio:'Butang Radio',textField:'Text Field',textarea:'Textarea',hiddenField:'Field Tersembunyi',button:'Butang',select:'Field Pilihan',imageButton:'Butang Bergambar',notSet:'<tidak di set>',id:'Id',name:'Nama',langDir:'Arah Tulisan',lan
gDirLtr:'Kiri ke Kanan (LTR)',langDirRtl:'Kanan ke Kiri (RTL)',langCode:'Kod Bahasa',longDescr:'Butiran Panjang URL',cssClass:'Kelas-kelas Stylesheet',advisoryTitle:'Tajuk Makluman',cssStyle:'Stail',ok:'OK',cancel:'Batal',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Advanced',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Masukkan Huruf Istimew
a',title:'Sila pilih huruf istimewa',options:'Special Character Options'},link:{toolbar:'Masukkan/Sunting Sambungan',other:'<lain>',menu:'Sunting Sambungan',title:'Sambungan',info:'Butiran Sambungan',target:'Sasaran',upload:'Muat Naik',advanced:'Advanced',type:'Jenis Sambungan',toUrl:'URL',toAnchor:'Pautan dalam muka surat ini',toEmail:'E-Mail',targetFrame:'<bingkai>',targetPopup:'<tetingkap popup>',targetFrameName:'Nama Bingkai Sasaran',targetPopupName:'Nama Tetingkap Popup',popupFeatures:'Ciri Tetingkap Popup',popupResizable:'Resizable',popupStatusBar:'Bar Status',popupLocationBar:'Bar Lokasi',popupToolbar:'Toolbar',popupMenuBar:'Bar Menu',popupFullScreen:'Skrin Penuh (IE)',popupScrollBars:'Bar-bar skrol',popupDependent:'Bergantungan (Netscape)',popupWidth:'Lebar',popupLeft:'Posisi Kiri',popupHeight:'Tinggi',popupTop:'Posisi Atas',id:'Id',langDir:'Arah Tulisan',langDirLTR:'Kiri ke Kanan (LTR)',langDirRTL:'Kanan ke Kiri (RTL)',acccessKey:'Kunci Akses',name:'Nama',langCode:'
Arah Tulisan',tabIndex:'Indeks Tab ',advisoryTitle:'Tajuk Makluman',advisoryContentType:'Jenis Kandungan Makluman',cssClasses:'Kelas-kelas Stylesheet',charset:'Linked Resource Charset',styles:'Stail',selectAnchor:'Sila pilih pautan',anchorName:'dengan menggunakan nama pautan',anchorId:'dengan menggunakan ID elemen',emailAddress:'Alamat E-Mail',emailSubject:'Subjek Mesej',emailBody:'Isi Kandungan Mesej',noAnchors:'(Tiada pautan terdapat dalam dokumen ini)',noUrl:'Sila taip sambungan URL',noEmail:'Sila taip alamat e-mail'},anchor:{toolbar:'Masukkan/Sunting Pautan',menu:'Ciri-ciri Pautan',title:'Ciri-ciri Pautan',name:'Nama Pautan',errorName:'Sila taip nama pautan'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an,
ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Cari',replace:'Ganti',findWhat:'Perkataan yang dicari:',replaceWith:'Diganti dengan:',notFoundMsg:'Text yang dicari tidak dijumpai.',matchCase:'Padanan case huruf',matchWord:'Padana Keseluruhan perkataan',matchCyclic:'Match cyclic',replaceAll:'Ganti semua',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Jadual',title:'Ciri-ciri Jadual',menu:'Ciri-ciri Jadual',deleteTable:'Delete Table',rows:'Barisan',columns:'Jaluran',border:'Saiz Border',align:'Penjajaran',alignLeft:'Kiri',alignCenter:'Tengah',alignRight:'Kanan',width:'Lebar',widthPx:'piksel-piksel',widthPc:
'peratus',widthUnit:'width unit',height:'Tinggi',cellSpace:'Ruangan Antara Sel',cellPad:'Tambahan Ruang Sel',caption:'Keterangan',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Buangkan Sel-sel',merge:'Cantumkan Sel-sel',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap
:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'Buangkan Baris'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Buangkan Lajur'}},button:{title:'Ciri-ciri Butang',text:'Teks (Nilai)',type:'Jenis',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Ciri-ciri Checkbox',radioTitle:'Ciri-ciri Butang Radio',value:'Nilai',selected:'Dipilih'},form:{title:'Ciri-ciri Borang',menu:'Ciri-ciri
Borang',action:'Tindakan borang',method:'Cara borang dihantar',encoding:'Encoding'},select:{title:'Ciri-ciri Selection Field',selectInfo:'Select Info',opAvail:'Pilihan sediada',value:'Nilai',size:'Saiz',lines:'garisan',chkMulti:'Benarkan pilihan pelbagai',opText:'Teks',opValue:'Nilai',btnAdd:'Tambah Pilihan',btnModify:'Ubah Pilihan',btnUp:'Naik ke atas',btnDown:'Turun ke bawah',btnSetValue:'Set sebagai nilai terpilih',btnDelete:'Padam'},textarea:{title:'Ciri-ciri Textarea',cols:'Lajur',rows:'Baris'},textfield:{title:'Ciri-ciri Text Field',name:'Nama',value:'Nilai',charWidth:'Lebar isian',maxChars:'Isian Maksimum',type:'Jenis',typeText:'Teks',typePass:'Kata Laluan'},hidden:{title:'Ciri-ciri Field Tersembunyi',name:'Nama',value:'Nilai'},image:{title:'Ciri-ciri Imej',titleButton:'Ciri-ciri Butang Bergambar',menu:'Ciri-ciri Imej',infoTab:'Info Imej',btnUpload:'Hantar ke Server',upload:'Muat Naik',alt:'Text Alternatif',width:'Lebar',height:'Tinggi',lockRatio:'Tetapkan Nisbah',unl
ockRatio:'Unlock Ratio',resetSize:'Saiz Set Semula',border:'Border',hSpace:'Ruang Melintang',vSpace:'Ruang Menegak',align:'Jajaran',alignLeft:'Kiri',alignRight:'Kanan',alertUrl:'Sila taip URL untuk fail gambar',linkTab:'Sambungan',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash Properties',propertiesTab:'Properties',title:'Flash Properties',chkPlay:'Auto Play',chkLoop:'Loop',chkMenu:'Enable Flash Menu',chkFull:'Allow Fullscreen',scale:'Scale',scaleAll:'Show all',scaleNoBorder:'No Border',scaleFit:'Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDom
ain:'Same domain',accessNever:'Never',align:'Jajaran',alignLeft:'Kiri',alignAbsBottom:'Bawah Mutlak',alignAbsMiddle:'Pertengahan Mutlak',alignBaseline:'Garis Dasar',alignBottom:'Bawah',alignMiddle:'Pertengahan',alignRight:'Kanan',alignTextTop:'Atas Text',alignTop:'Atas',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Warna Latarbelakang',width:'Lebar',height:'Tinggi',hSpace:'Ruang Melintang',vSpace:'Ruang Menegak',validateSrc:'Sila taip sambungan URL',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Semak Ejaan',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',er
rorLoading:'Error loading application service host: %s.',notInDic:'Tidak terdapat didalam kamus',changeTo:'Tukarkan kepada',btnIgnore:'Biar',btnIgnoreAll:'Biarkan semua',btnReplace:'Ganti',btnReplaceAll:'Gantikan Semua',btnUndo:'Batalkan',noSuggestions:'- Tiada cadangan -',progress:'Pemeriksaan ejaan sedang diproses...',noMispell:'Pemeriksaan ejaan siap: Tiada salah ejaan',noChanges:'Pemeriksaan ejaan siap: Tiada perkataan diubah',oneChange:'Pemeriksaan ejaan siap: Satu perkataan telah diubah',manyChanges:'Pemeriksaan ejaan siap: %1 perkataan diubah',ieSpellDownload:'Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?'},smiley:{toolbar:'Smiley',title:'Masukkan Smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Senarai bernombor',bulletedlist:'Senarai tidak bernombor',indent:'Tambahkan Inden',outdent:'Kurangkan Inden',justify:{left:'Jajaran Kiri',center:'Jajaran Tengah',right:'Jajaran Kanan',block:'J
ajaran Blok'},blockquote:'Block Quote',clipboard:{title:'Tampal',cutError:'Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).',copyError:'Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).',pasteMsg:'Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Tampal dari Word',title:'Tampal dari Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Tampal sebagai text biasa',title:'Tampal sebagai text biasa'},templates:{
button:'Templat',title:'Templat Kandungan',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):',emptyListMsg:'(Tiada Templat Disimpan)'},showBlocks:'Show Blocks',stylesCombo:{label:'Stail',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Telah Diformat',tag_address:'Alamat',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Perenggan (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Righ
t (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font'},fontSize:{label:'Saiz',voiceLabel:'Font Size',panelTitle:'Saiz'},colorButton:{textColorTitle:'Warna Text',bgColorTitle:'Warna Latarbelakang',panelTitle:'Colors',auto:'Otomatik',more:'Warna lain-lain...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yello
w',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be sto
red on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ms']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protokol","upload":"Muat Naik","uploadSubmit":"Hantar ke Server","image":"Gambar","flash":"Flash","form":"Borang","checkbox":"Checkbox","radio":"Butang Radio","textField":"Text Field","textarea":"Textarea","hiddenField":"Field Tersembunyi","button":"Butang","select":"Field Pilihan","imageButton":"Butang Bergambar","notSet":"<tidak di set>","id":"Id","name":"Nama","langDir":"Arah Tulisan","langDirLtr":"Kiri ke Kanan (LTR)","langDirRtl":"Kanan ke Kiri (RTL)","langCode":"Kod Bahasa","longDescr":"Butiran Panjang URL","cssClass":"Kelas-kelas Stylesheet","advisoryTitle":"Tajuk Makluman","cssStyle":"Stail","ok":"OK","cancel":"Batal","close":"Close","preview":"Prebiu","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes t
o this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Sasaran","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","styles":"Stail","cssClasses":"Kelas-kelas Stylesheet","width":"Lebar","height":"Tinggi","align":"Jajaran","alignLeft":"Kiri","alignRight":"Kanan","alignCenter":"Tengah","alignTop":"Atas","alignMiddle":"Pertengahan","alignBottom":"Bawah","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\
" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strike Through","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipbo
ard":{"copy":"Salin","copyError":"Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+C).","cut":"Potong","cutError":"Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl/Cmd+X).","paste":"Tampal","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (<strong>Ctrl/Cmd+V</strong>) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Tampal"},"colorbutton":{"auto":"Otomatik","bgColorTitle":"Warna Latarbelakang","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0
000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Warna lain-lain...","panelTitle":"Colors","textColorTitle":"Warna Text"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Templat","emptyListMsg":"(Tiada Templat Disimpan)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):","title":"Temp
lat Kandungan"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Senarai tidak bernombor","numberedli
st":"Senarai bernombor"},"indent":{"indent":"Tambahkan Inden","outdent":"Kurangkan Inden"},"find":{"find":"Cari","findOptions":"Find Options","findWhat":"Perkataan yang dicari:","matchCase":"Padanan case huruf","matchCyclic":"Match cyclic","matchWord":"Padana Keseluruhan perkataan","notFoundMsg":"Text yang dicari tidak dijumpai.","replace":"Ganti","replaceAll":"Ganti semua","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Diganti dengan:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Bawah Mutlak","alignAbsMiddle":"Pertengahan Mutlak","alignBaseline":"Garis Dasar","alignTextTop":"Atas Text","bgcolor":"Warna Latarbelakang","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Enable Flash Menu","chkPlay":"Auto Play"
,"flashvars":"Variables for Flash","hSpace":"Ruang Melintang","properties":"Flash Properties","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Scale","scaleAll":"Show all","scaleFit":"Exact Fit","scaleNoBorder":"No Border","title":"Flash Properties","vSpace":"Ruang Menegak","validateHSpace":"HSpace must be a number.","validateSrc":"Sila taip sambungan URL","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Saiz","voiceLabel":"Font Size","panelTitle":"Saiz"},"label":"Font","panelTitle":"Font","voiceLabel":"Font"},"forms":{"button":{"title":"Ciri-ciri Butang","text":"Teks (Nilai)","type":"Jenis","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle
":"Ciri-ciri Checkbox","radioTitle":"Ciri-ciri Butang Radio","value":"Nilai","selected":"Dipilih"},"form":{"title":"Ciri-ciri Borang","menu":"Ciri-ciri Borang","action":"Tindakan borang","method":"Cara borang dihantar","encoding":"Encoding"},"hidden":{"title":"Ciri-ciri Field Tersembunyi","name":"Nama","value":"Nilai"},"select":{"title":"Ciri-ciri Selection Field","selectInfo":"Select Info","opAvail":"Pilihan sediada","value":"Nilai","size":"Saiz","lines":"garisan","chkMulti":"Benarkan pilihan pelbagai","opText":"Teks","opValue":"Nilai","btnAdd":"Tambah Pilihan","btnModify":"Ubah Pilihan","btnUp":"Naik ke atas","btnDown":"Turun ke bawah","btnSetValue":"Set sebagai nilai terpilih","btnDelete":"Padam"},"textarea":{"title":"Ciri-ciri Textarea","cols":"Lajur","rows":"Baris"},"textfield":{"title":"Ciri-ciri Text Field","name":"Nama","value":"Nilai","charWidth":"Lebar isian","maxChars":"Isian Maksimum","type":"Jenis","typeText":"Teks","typePass":"Kata Laluan","typeEmail":"Email","
typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format","tag_address":"Alamat","tag_div":"Perenggan (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Telah Diformat"},"horizontalrule":{"toolbar":"Masukkan Garisan Membujur"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Sila taip URL untuk fail gambar","alt":"Text Alternatif","border":"Border","btnUpload":"Hantar ke Server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Ruang Melintang","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Info Imej","linkTab":"Sambungan","lockRatio":"Tetapkan Nisbah","menu":"Ciri-ciri Imej","resetSize":"Saiz Set
Semula","title":"Ciri-ciri Imej","titleButton":"Ciri-ciri Butang Bergambar","upload":"Muat Naik","urlMissing":"Image source URL is missing.","vSpace":"Ruang Menegak","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Masukkan Smiley","toolbar":"Smiley"},"justify":{"block":"Jajaran Blok","center":"Jajaran Tengah","left":"Jajaran Kiri","right":"Jajaran Kanan"},"link":{"acccessKey":"Kunci Akses","advanced":"Advanced","advisoryContentType":"Jenis Kandungan Makluman","advisoryTitle":"Tajuk Makluman","anchor":{"toolbar":"Masukkan/Sunting Pautan","menu":"Ciri-ciri Pautan","title":"Ciri-ciri Pautan","name":"Nama Pautan","errorName":"Sila taip nama pautan","remove":"Remove Anchor"},"anchorId":"dengan menggunakan ID elemen","anchorName":"dengan menggunakan nama pautan","charset":"Linked Resource Charset","cssClasses":"Kelas-kelas Stylesheet"
,"emailAddress":"Alamat E-Mail","emailBody":"Isi Kandungan Mesej","emailSubject":"Subjek Mesej","id":"Id","info":"Butiran Sambungan","langCode":"Arah Tulisan","langDir":"Arah Tulisan","langDirLTR":"Kiri ke Kanan (LTR)","langDirRTL":"Kanan ke Kiri (RTL)","menu":"Sunting Sambungan","name":"Nama","noAnchors":"(Tiada pautan terdapat dalam dokumen ini)","noEmail":"Sila taip alamat e-mail","noUrl":"Sila taip sambungan URL","other":"<lain>","popupDependent":"Bergantungan (Netscape)","popupFeatures":"Ciri Tetingkap Popup","popupFullScreen":"Skrin Penuh (IE)","popupLeft":"Posisi Kiri","popupLocationBar":"Bar Lokasi","popupMenuBar":"Bar Menu","popupResizable":"Resizable","popupScrollBars":"Bar-bar skrol","popupStatusBar":"Bar Status","popupToolbar":"Toolbar","popupTop":"Posisi Atas","rel":"Relationship","selectAnchor":"Sila pilih pautan","styles":"Stail","tabIndex":"Indeks Tab ","target":"Sasaran","targetFrame":"<bingkai>","targetFrameName":"Nama Bingkai Sasaran","targetPopup":"<tetin
gkap popup>","targetPopupName":"Nama Tetingkap Popup","title":"Sambungan","toAnchor":"Pautan dalam muka surat ini","toEmail":"E-Mail","toUrl":"URL","toolbar":"Masukkan/Sunting Sambungan","type":"Jenis Sambungan","unlink":"Buang Sambungan","upload":"Muat Naik"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magi
cline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Helaian Baru"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Tampal sebagai text biasa","title":"Tampal sebagai text biasa"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Tampal dari Word","toolbar":"Tampal dari Word"},"preview":{"preview":"Prebiu"},"print":{"toolbar":"Cetak"},"removeformat":{"toolbar":"Buang Format"},"save":{"toolbar":"Simpan"},"selectall":{"toolbar":"Pilih Semua"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Sumber"},"specialchar":{"options":"Special Character Options","title":"Sila pilih huruf istimewa","toolbar":"Masukkan Huruf Istimewa"},"scayt":{"about":"About SCAYT","aboutTab":"About","a
ddWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions"
,"opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stail","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Saiz Border","caption":"Keterangan","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Buangkan Sel-sel","merge":"Cantumkan Sel-sel","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No
","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Tambahan Ruang Sel","cellSpace":"Ruangan Antara Sel","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Buangkan Lajur"},"columns":"Jaluran","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a numb
er.","menu":"Ciri-ciri Jadual","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"Buangkan Baris"},"rows":"Barisan","summary":"Summary","title":"Ciri-ciri Jadual","toolbar":"Jadual","widthPc":"peratus","widthPx":"piksel-piksel","widthUnit":"width unit"},"undo":{"redo":"Ulangkan","undo":"Batalkan"},"wsc":{"btnIgnore":"Biar","btnIgnoreAll":"Biarkan semua","btnReplace":"Ganti","btnReplaceAll":"Gantikan Semua","btnUndo":"Batalkan","changeTo":"Tukarkan kepada","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?","manyChanges":"Pemeriksaan ejaan siap: %1 perkataan diubah","noChanges":"Pemeriksaan ejaan siap: Tiada perkataan diubah","noMispell":"Pemeriksaan ejaan siap: Tiada salah ejaan","noSuggestions":"- Tiada cadangan -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Tidak terdapat didalam kamus","oneChange":"Pem
eriksaan ejaan siap: Satu perkataan telah diubah","progress":"Pemeriksaan ejaan sedang diproses...","title":"Spell Check","toolbar":"Semak Ejaan"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/nb.js b/share/static/RichText/lang/nb.js
index 022b7d0..79491aa 100644
--- a/share/static/RichText/lang/nb.js
+++ b/share/static/RichText/lang/nb.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.nb={dir:'ltr',editorTitle:'Rikteksteditor, %1, trykk ALT 0 for hjelp.',toolbar:'Verktøylinje',editor:'Rikteksteditor',source:'Kilde',newPage:'Ny Side',save:'Lagre',preview:'Forhåndsvis',cut:'Klipp ut',copy:'Kopier',paste:'Lim inn',print:'Skriv ut',underline:'Understrek',bold:'Fet',italic:'Kursiv',selectAll:'Merk alt',removeFormat:'Fjern format',strike:'Gjennomstrek',subscript:'Senket skrift',superscript:'Hevet skrift',horizontalrule:'Sett inn horisontal linje',pagebreak:'Sett inn sideskift',unlink:'Fjern lenke',undo:'Angre',redo:'Gjør om',common:{browseServer:'Bla igjennom server',url:'URL',protocol:'Protokoll',upload:'Last opp',uploadSubmit:'Send det til serveren',image:'Bilde',flash:'Flash',form:'Skjema',checkbox:'Avmerkingsboks',radio:'Alternativknapp',textField:'Tekstboks',textarea:'Tekstområde',hiddenField:'Skjult felt',button:'Knapp',select:'Rullegardinliste',imageButton:'Bildeknapp',notSet:'<ikke satt>',id:'Id',name:'Navn',langDir:'Språkretning',lan
gDirLtr:'Venstre til høyre (VTH)',langDirRtl:'Høyre til venstre (HTV)',langCode:'Språkkode',longDescr:'Utvidet beskrivelse',cssClass:'Stilarkklasser',advisoryTitle:'Tittel',cssStyle:'Stil',ok:'OK',cancel:'Avbryt',close:'Lukk',preview:'Forhåndsvis',generalTab:'Generelt',advancedTab:'Avansert',validateNumberFailed:'Denne verdien er ikke ett nummer',confirmNewPage:'Alle endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',confirmCancel:'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',options:'Valg',target:'Mål',targetNew:'Nytt vindu (_blank)',targetTop:'Hele vindu (_top)',targetSelf:'Samme vindu (_self)',targetParent:'Foreldrevindu (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, utilgjenglig</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Sett in
n spesielt tegn',title:'Velg spesielt tegn',options:'Special Character Options'},link:{toolbar:'Sett inn/Rediger lenke',other:'<other>',menu:'Rediger lenke',title:'Lenke',info:'Lenkeinfo',target:'Mål',upload:'Last opp',advanced:'Avansert',type:'Lenketype',toUrl:'URL',toAnchor:'Lenke til anker i teksten',toEmail:'E-post',targetFrame:'<ramme>',targetPopup:'<popup vindu>',targetFrameName:'Målramme',targetPopupName:'Navn på popup-vindus',popupFeatures:'Egenskaper for popup-vindu',popupResizable:'Skalérbar',popupStatusBar:'Statuslinje',popupLocationBar:'Adresselinje',popupToolbar:'Verktøylinje',popupMenuBar:'Menylinje',popupFullScreen:'Full skjerm (IE)',popupScrollBars:'Scrollbar',popupDependent:'Avhenging (Netscape)',popupWidth:'Bredde',popupLeft:'Venstre posisjon',popupHeight:'Høyde',popupTop:'Topp-posisjon',id:'Id',langDir:'Språkretning',langDirLTR:'Venstre til høyre (VTH)',langDirRTL:'Høyre til venstre (HTV)',acccessKey:'Aksessknapp',name:'Navn',langCode:'Språkretni
ng',tabIndex:'Tab Indeks',advisoryTitle:'Tittel',advisoryContentType:'Type',cssClasses:'Stilarkklasser',charset:'Lenket språkkart',styles:'Stil',selectAnchor:'Velg et anker',anchorName:'Anker etter navn',anchorId:'Element etter ID',emailAddress:'E-postadresse',emailSubject:'Meldingsemne',emailBody:'Melding',noAnchors:'(Ingen anker i dokumentet)',noUrl:'Vennligst skriv inn lenkens url',noEmail:'Vennligst skriv inn e-postadressen'},anchor:{toolbar:'Sett inn/Rediger anker',menu:'Egenskaper for anker',title:'Egenskaper for anker',name:'Ankernavn',errorName:'Vennligst skriv inn ankernavnet'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoma
n:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Søk og erstatt',find:'Søk',replace:'Erstatt',findWhat:'Søk etter:',replaceWith:'Erstatt med:',notFoundMsg:'Fant ikke søketeksten.',matchCase:'Skill mellom store og små bokstaver',matchWord:'Bare hele ord',matchCyclic:'Søk i hele dokumentet',replaceAll:'Erstatt alle',replaceSuccessMsg:'%1 tilfelle erstattet.'},table:{toolbar:'Tabell',title:'Egenskaper for tabell',menu:'Egenskaper for tabell',deleteTable:'Slett tabell',rows:'Rader',columns:'Kolonner',border:'Rammestørrelse',align:'Justering',alignLeft:'Venstre',alignCenter:'Midtjuster',alignRight:'Høyre',width:'Bredde',widthPx:'piksler',widthPc:'prosent',widthUnit:'Bredde-enhet',height:'Høyde',cellSpace:'Cellemarg',c
ellPad:'Cellepolstring',caption:'Tittel',summary:'Sammendrag',headers:'Overskrifter',headersNone:'Ingen',headersColumn:'Første kolonne',headersRow:'Første rad',headersBoth:'Begge',invalidRows:'Antall rader må være ett tall større enn 0.',invalidCols:'Antall kolonner må være ett tall større enn 0.',invalidBorder:'Rammestørrelse må være ett tall.',invalidWidth:'Tabellbredde må være ett nummer.',invalidHeight:'Tabellhøyde må være ett nummer.',invalidCellSpacing:'Cellemellomrom må være ett nummer.',invalidCellPadding:'Cellefyll må være ett nummer.',cell:{menu:'Celle',insertBefore:'Sett inn celle før',insertAfter:'Sett inn celle etter',deleteCell:'Slett celler',merge:'Slå sammen celler',mergeRight:'Slå sammen høyre',mergeDown:'Slå sammen ned',splitHorizontal:'Del celle horisontalt',splitVertical:'Del celle vertikalt',title:'Celleegenskaper',cellType:'Celletype',rowSpan:'Radspenn',colSpan:'Kolonnespenn',wordWrap:'Tekstbrytning',hAlign:'Horisontal justering
',vAlign:'Vertikal justering',alignTop:'Topp',alignMiddle:'Midten',alignBottom:'Bunnen',alignBaseline:'Grunnlinje',bgColor:'Bakgrunnsfarge',borderColor:'Rammefarge',data:'Data',header:'Overskrift',yes:'Ja',no:'Nei',invalidWidth:'Cellebredde må være ett nummer',invalidHeight:'Cellehøyde må være ett nummer',invalidRowSpan:'Radspenn må være ett nummer.',invalidColSpan:'Kolonnespenn må være ett nummer.',chooseColor:'Velg'},row:{menu:'Rader',insertBefore:'Sett inn rad før',insertAfter:'Sett inn rad etter',deleteRow:'Slett rader'},column:{menu:'Kolonne',insertBefore:'Sett inn kolonne før',insertAfter:'Sett inn kolonne etter',deleteColumn:'Slett kolonner'}},button:{title:'Egenskaper for knapp',text:'Tekst (verdi)',type:'Type',typeBtn:'Knapp',typeSbm:'Send',typeRst:'Nullstill'},checkboxAndRadio:{checkboxTitle:'Egenskaper for avmerkingsboks',radioTitle:'Egenskaper for alternativknapp',value:'Verdi',selected:'Valgt'},form:{title:'Egenskaper for skjema',menu:'Egenskaper for
skjema',action:'Handling',method:'Metode',encoding:'Encoding'},select:{title:'Egenskaper for rullegardinliste',selectInfo:'Info',opAvail:'Tilgjenglige alternativer',value:'Verdi',size:'Størrelse',lines:'Linjer',chkMulti:'Tillat flervalg',opText:'Tekst',opValue:'Verdi',btnAdd:'Legg til',btnModify:'Endre',btnUp:'Opp',btnDown:'Ned',btnSetValue:'Sett som valgt',btnDelete:'Slett'},textarea:{title:'Egenskaper for tekstområde',cols:'Kolonner',rows:'Rader'},textfield:{title:'Egenskaper for tekstfelt',name:'Navn',value:'Verdi',charWidth:'Tegnbredde',maxChars:'Maks antall tegn',type:'Type',typeText:'Tekst',typePass:'Passord'},hidden:{title:'Egenskaper for skjult felt',name:'Navn',value:'Verdi'},image:{title:'Bildeegenskaper',titleButton:'Egenskaper for bildeknapp',menu:'Bildeegenskaper',infoTab:'Bildeinformasjon',btnUpload:'Send det til serveren',upload:'Last opp',alt:'Alternativ tekst',width:'Bredde',height:'Høyde',lockRatio:'Lås forhold',unlockRatio:'Ikke lås forhold',resetSize
:'Tilbakestill størrelse',border:'Ramme',hSpace:'HMarg',vSpace:'VMarg',align:'Juster',alignLeft:'Venstre',alignRight:'Høyre',alertUrl:'Vennligst skriv bilde-urlen',linkTab:'Lenke',button2Img:'Vil du endre den valgte bildeknappen til ett vanlig bilde?',img2Button:'Vil du endre det valgte bildet til en bildeknapp?',urlMissing:'Bildets adresse mangler.',validateWidth:'Bredde må være ett nummer.',validateHeight:'Høyde må være ett nummer.',validateBorder:'Ramme må være ett nummer.',validateHSpace:'HSpace må være ett nummer.',validateVSpace:'VSpace må være ett nummer.'},flash:{properties:'Egenskaper for Flash-objekt',propertiesTab:'Egenskaper',title:'Flash-egenskaper',chkPlay:'Autospill',chkLoop:'Loop',chkMenu:'Slå på Flash-meny',chkFull:'Tillat fullskjerm',scale:'Skaler',scaleAll:'Vis alt',scaleNoBorder:'Ingen ramme',scaleFit:'Skaler til å passe',access:'Scripttilgang',accessAlways:'Alltid',accessSameDomain:'Samme domene',accessNever:'Aldri',align:'Juster',alignLe
ft:'Venstre',alignAbsBottom:'Abs bunn',alignAbsMiddle:'Abs midten',alignBaseline:'Bunnlinje',alignBottom:'Bunn',alignMiddle:'Midten',alignRight:'Høyre',alignTextTop:'Tekst topp',alignTop:'Topp',quality:'Kvalitet',qualityBest:'Best',qualityHigh:'Høy',qualityAutoHigh:'Auto Høy',qualityMedium:'Medium',qualityAutoLow:'Auto Lav',qualityLow:'Lav',windowModeWindow:'Vindu',windowModeOpaque:'Opaque',windowModeTransparent:'Gjennomsiktig',windowMode:'Vindu modus',flashvars:'Variabler for flash',bgcolor:'Bakgrunnsfarge',width:'Bredde',height:'Høyde',hSpace:'HMarg',vSpace:'VMarg',validateSrc:'Vennligst skriv inn lenkens url',validateWidth:'Bredde må være ett nummer.',validateHeight:'Høyde må være ett nummer',validateHSpace:'HSpace må være ett nummer.',validateVSpace:'VSpace må være ett nummer.'},spellCheck:{toolbar:'Stavekontroll',title:'Stavekontroll',notAvailable:'Beklager, tjenesten er utilgjenglig nå.',errorLoading:'Feil under lasting av applicationstjeneste tjener: %s.
',notInDic:'Ikke i ordboken',changeTo:'Endre til',btnIgnore:'Ignorer',btnIgnoreAll:'Ignorer alle',btnReplace:'Erstatt',btnReplaceAll:'Erstatt alle',btnUndo:'Angre',noSuggestions:'- Ingen forslag -',progress:'Stavekontroll pÃ¥gÃ¥r...',noMispell:'Stavekontroll fullført: ingen feilstavinger funnet',noChanges:'Stavekontroll fullført: ingen ord endret',oneChange:'Stavekontroll fullført: Ett ord endret',manyChanges:'Stavekontroll fullført: %1 ord endret',ieSpellDownload:'Stavekontroll er ikke installert. Vil du laste den ned nÃ¥?'},smiley:{toolbar:'Smil',title:'Sett inn smil',options:'Smiley Options'},elementsPath:{eleLabel:'Element-sti',eleTitle:'%1 element'},numberedlist:'Nummerert liste',bulletedlist:'Uordnet liste',indent:'Ãk nivÃ¥',outdent:'Senk nivÃ¥',justify:{left:'Venstrejuster',center:'Midtjuster',right:'Høyrejuster',block:'Blokkjuster'},blockquote:'Blockquote',clipboard:{title:'Lim inn',cutError:'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klippi
ng av tekst. Vennligst bruk snareveien (Ctrl+X).',copyError:'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',pasteMsg:'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',securityMsg:'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',pasteArea:'Innlimingsområde'},pastefromword:{confirmCleanup:'Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?',toolbar:'Lim inn fra Word',title:'Lim inn fra Word',error:'Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil'},pasteText:{button:'Lim inn som ren tekst',title:'Lim inn som ren tekst'},templates:{button:'Maler',title:'Innholdsmaler',options:'Template Options',insertOption:'Erstatt faktisk innold',selectPromptMsg:'Velg malen du vil åpn
e<br>(innholdet du har skrevet blir tapt!):',emptyListMsg:'(Ingen maler definert)'},showBlocks:'Vis blokker',stylesCombo:{label:'Stil',panelTitle:'Stilformater',panelTitle1:'Blokkstiler',panelTitle2:'Inlinestiler',panelTitle3:'Objektstiler'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatert',tag_address:'Adresse',tag_h1:'Tittel 1',tag_h2:'Tittel 2',tag_h3:'Tittel 3',tag_h4:'Tittel 4',tag_h5:'Tittel 5',tag_h6:'Tittel 6',tag_div:'Normal (DIV)'},div:{title:'Sett inn Div Container',toolbar:'Sett inn Div Container',cssClassInputLabel:'Stilark-klasser',styleSelectLabel:'Stil',IdInputLabel:'Id',languageCodeInputLabel:' Språk-kode',inlineStyleInputLabel:'Inlinestiler',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Språkretning',langDirLTRLabel:'Venstre til høyre (VTH)',langDirRTLLabel:'Høyre til venstre (HTV)',edit:'Rediger Div',remove:'Fjern Div'},font:{label:'Skrift',voiceLabel:'Font',panelTitle:'Skrift'},fontSize:{label:'Størrelse',voiceLab
el:'Font Størrelse',panelTitle:'Størrelse'},colorButton:{textColorTitle:'Tekstfarge',bgColorTitle:'Bakgrunnsfarge',panelTitle:'Farger',auto:'Automatisk',more:'Flere farger...'},colors:{'000':'Svart',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Marine','4B0082':'Indigo',696969:'Svak grå',B22222:'Fire Brick',A52A2A:'Brun',DAA520:'Golden Rod','006400':'Mørk grå','40E0D0':'Turkis','0000CD':'Medium Blå',800080:'Purple',808080:'Grå',F00:'Red',FF8C00:'Mørk oransje',FFD700:'gull','008000':'Grønn','0FF':'Cyan','00F':'Blå',EE82EE:'Fiolett',A9A9A9:'Mørk grå',FFA07A:'Light Salmon',FFA500:'Oransje',FFFF00:'gul','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Lys Blå',DDA0DD:'Plomme',D3D3D3:'Lys grå',FFF0F5:'Lavender Blush',FAEBD7:'Antikk-hvit',FFFFE0:'Lys gul',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'Hvit'},scayt:{title:'Stavekontroll mens du skriver',opera_title:'Not supported by Opera',enab
le:'Slå på SCAYT',disable:'Slå av SCAYT',about:'Om SCAYT',toggle:'Veksle SCAYT',options:'Valg',langs:'Språk',moreSuggestions:'Flere forslag',ignore:'Ignorer',ignoreAll:'Ignorer Alle',addWord:'Legg til ord',emptyDic:'Ordboknavn skal ikke være tom',optionsTab:'Valg',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Språk',dictionariesTab:'Ordbøker',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click
the Restore button.',aboutTab:'Om'},about:{title:'Om CKEditor',dlgTitle:'Om CKEditor',moreInfo:'For lisensieringsinformasjon vennligst besøk vÃ¥rt nettsted:',copy:'Copyright © $1. Alle rettigheter reservert.'},maximize:'Maksimer',minimize:'Minimer',fakeobjects:{anchor:'Anker',flash:'Flash Animasjon',div:'Sideskift',unknown:'Ukjent objekt'},resize:'Dra for Ã¥ skalere',colordialog:{title:'Velg farge',options:'Color Options',highlight:'Merk',selected:'Valgt',clear:'Tøm'},toolbarCollapse:'SlÃ¥ sammen verktøylinje',toolbarExpand:'Vis verktøylinje',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['nb']={"dir":"ltr","editor":"Rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla igjennom server","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage
":"Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc)."
,"invalidHtmlLength":"Den angitte verdien for feltet \"%1\" mÃ¥ være et positivt tall med eller uten en gyldig HTML-mÃ¥lingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil mÃ¥ bestÃ¥ av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>"},"about":{"copy":"Copyright © $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vÃ¥rt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"bidi":{"ltr":"Tekstretning fra venstre til høyre","rtl":"Tekstretning
fra høyre til venstre"},"blockquote":{"toolbar":"Sitatblokk"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteArea":"Innlimingsområde","pasteMsg":"Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.","securityMsg":"Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.","title":"Lim inn"},"colorbutton":{"auto":"Automatisk","bgColorTitle":"Bakgrunnsfarge","colors":{"000":"Svart","800000":"Rødbrun","8B4513":"Salbrun","2F4F4F":"Grønnsvart","008080":"Blågrønn","000080":"Marineblått","4B0082":"Indigo","696969":"Mørk grå","B
22222":"Mørkerød","A52A2A":"Brun","DAA520":"Lys brun","006400":"Mørk grønn","40E0D0":"Turkis","0000CD":"Medium blå","800080":"Purpur","808080":"Grå","F00":"Rød","FF8C00":"Mørk oransje","FFD700":"Gull","008000":"Grønn","0FF":"Cyan","00F":"Blå","EE82EE":"Fiolett","A9A9A9":"Svak grå","FFA07A":"Rosa-oransje","FFA500":"Oransje","FFFF00":"Gul","00FF00":"Lime","AFEEEE":"Svak turkis","ADD8E6":"Lys Blå","DDA0DD":"Plomme","D3D3D3":"Lys grå","FFF0F5":"Svak lavendelrosa","FAEBD7":"Antikk-hvit","FFFFE0":"Lys gul","F0FFF0":"Honningmelon","F0FFFF":"Svakt asurblått","F0F8FF":"Svak cyan","E6E6FA":"Lavendel","FFF":"Hvit"},"more":"Flere farger...","panelTitle":"Farger","textColorTitle":"Tekstfarge"},"colordialog":{"clear":"Tøm","highlight":"Merk","options":"Alternativer for farge","selected":"Valgt","title":"Velg farge"},"templates":{"button":"Maler","emptyListMsg":"(Ingen maler definert)","insertOption":"Erstatt gjeldende innhold","options":"Alternativer for mal","selectPromptM
sg":"Velg malen du vil åpne i redigeringsverktøyet:","title":"Innholdsmaler"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Tittel","cssClassInputLabel":"Stilark-klasser","edit":"Rediger Div","inlineStyleInputLabel":"Inlinestiler","langDirLTRLabel":"Venstre til høyre (VTH)","langDirLabel":"Språkretning","langDirRTLLabel":"Høyre til venstre (HTV)","languageCodeInputLabel":" Språkkode","remove":"Fjern Div","styleSelectLabel":"Stil","title":"Sett inn Div Container","toolbar":"Sett inn Div Container"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"elementspath":{"eleLabel"
:"Element-sti","eleTitle":"%1 element"},"list":{"bulletedlist":"Legg til/Fjern punktmerket liste","numberedlist":"Legg til/Fjern nummerert liste"},"indent":{"indent":"Ãk innrykk","outdent":"Reduser innrykk"},"find":{"find":"Søk","findOptions":"Søkealternativer","findWhat":"Søk etter:","matchCase":"Skill mellom store og smÃ¥ bokstaver","matchCyclic":"Søk i hele dokumentet","matchWord":"Bare hele ord","notFoundMsg":"Fant ikke søketeksten.","replace":"Erstatt","replaceAll":"Erstatt alle","replaceSuccessMsg":"%1 tilfelle(r) erstattet.","replaceWith":"Erstatt med:","title":"Søk og erstatt"},"fakeobjects":{"anchor":"Anker","flash":"Flash-animasjon","hiddenfield":"Skjult felt","iframe":"IFrame","unknown":"Ukjent objekt"},"flash":{"access":"Scripttilgang","accessAlways":"Alltid","accessNever":"Aldri","accessSameDomain":"Samme domene","alignAbsBottom":"Abs bunn","alignAbsMiddle":"Abs midten","alignBaseline":"Bunnlinje","alignTextTop":"Tekst topp","bgcolor":"Bakgrunnsfarge","ch
kFull":"Tillat fullskjerm","chkLoop":"Loop","chkMenu":"Slå på Flash-meny","chkPlay":"Autospill","flashvars":"Variabler for flash","hSpace":"HMarg","properties":"Egenskaper for Flash-objekt","propertiesTab":"Egenskaper","quality":"Kvalitet","qualityAutoHigh":"Auto høy","qualityAutoLow":"Auto lav","qualityBest":"Best","qualityHigh":"Høy","qualityLow":"Lav","qualityMedium":"Medium","scale":"Skaler","scaleAll":"Vis alt","scaleFit":"Skaler til å passe","scaleNoBorder":"Ingen ramme","title":"Flash-egenskaper","vSpace":"VMarg","validateHSpace":"HMarg må være et tall.","validateSrc":"Vennligst skriv inn lenkens url.","validateVSpace":"VMarg må være et tall.","windowMode":"Vindumodus","windowModeOpaque":"Opaque","windowModeTransparent":"Gjennomsiktig","windowModeWindow":"Vindu"},"font":{"fontSize":{"label":"Størrelse","voiceLabel":"Font Størrelse","panelTitle":"Størrelse"},"label":"Skrift","panelTitle":"Skrift","voiceLabel":"Font"},"forms":{"button":{"title":"Egenskaper f
or knapp","text":"Tekst (verdi)","type":"Type","typeBtn":"Knapp","typeSbm":"Send","typeRst":"Nullstill"},"checkboxAndRadio":{"checkboxTitle":"Egenskaper for avmerkingsboks","radioTitle":"Egenskaper for alternativknapp","value":"Verdi","selected":"Valgt"},"form":{"title":"Egenskaper for skjema","menu":"Egenskaper for skjema","action":"Handling","method":"Metode","encoding":"Encoding"},"hidden":{"title":"Egenskaper for skjult felt","name":"Navn","value":"Verdi"},"select":{"title":"Egenskaper for rullegardinliste","selectInfo":"Info","opAvail":"Tilgjenglige alternativer","value":"Verdi","size":"Størrelse","lines":"Linjer","chkMulti":"Tillat flervalg","opText":"Tekst","opValue":"Verdi","btnAdd":"Legg til","btnModify":"Endre","btnUp":"Opp","btnDown":"Ned","btnSetValue":"Sett som valgt","btnDelete":"Slett"},"textarea":{"title":"Egenskaper for tekstområde","cols":"Kolonner","rows":"Rader"},"textfield":{"title":"Egenskaper for tekstfelt","name":"Navn","value":"Verdi","charWidth":"
Tegnbredde","maxChars":"Maks antall tegn","type":"Type","typeText":"Tekst","typePass":"Passord","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"iframe":{"border":"Viss ramme rundt iframe","noUrl":"Vennligst skriv inn URL for iframe","scrolling":"Aktiver scrollefelt","title":"Egenskaper for IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Vennligst skriv bilde-urlen","alt":"Alternativ tekst","border":"Ramme","btnUpload":"Send det til serveren","button2Img":"Vil du endre den valgte bildeknappen til et vanlig bilde?","hSpace":"HMarg","img2Button":"Vil du endre det valgte bildet til en bildeknapp?
","infoTab":"Bildeinformasjon","linkTab":"Lenke","lockRatio":"Lås forhold","menu":"Bildeegenskaper","resetSize":"Tilbakestill størrelse","title":"Bildeegenskaper","titleButton":"Egenskaper for bildeknapp","upload":"Last opp","urlMissing":"Bildets adresse mangler.","vSpace":"VMarg","validateBorder":"Ramme må være et heltall.","validateHSpace":"HMarg må være et heltall.","validateVSpace":"VMarg må være et heltall."},"smiley":{"options":"Alternativer for smil","title":"Sett inn smil","toolbar":"Smil"},"justify":{"block":"Blokkjuster","center":"Midtstill","left":"Venstrejuster","right":"Høyrejuster"},"link":{"acccessKey":"Aksessknapp","advanced":"Avansert","advisoryContentType":"Type","advisoryTitle":"Tittel","anchor":{"toolbar":"Sett inn/Rediger anker","menu":"Egenskaper for anker","title":"Egenskaper for anker","name":"Ankernavn","errorName":"Vennligst skriv inn ankernavnet","remove":"Fjern anker"},"anchorId":"Element etter ID","anchorName":"Anker etter navn","charset
":"Lenket tegnsett","cssClasses":"Stilarkklasser","emailAddress":"E-postadresse","emailBody":"Melding","emailSubject":"Meldingsemne","id":"Id","info":"Lenkeinfo","langCode":"Språkkode","langDir":"Språkretning","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","menu":"Rediger lenke","name":"Navn","noAnchors":"(Ingen anker i dokumentet)","noEmail":"Vennligst skriv inn e-postadressen","noUrl":"Vennligst skriv inn lenkens URL","other":"<annen>","popupDependent":"Avhenging (Netscape)","popupFeatures":"Egenskaper for popup-vindu","popupFullScreen":"Fullskjerm (IE)","popupLeft":"Venstre posisjon","popupLocationBar":"Adresselinje","popupMenuBar":"Menylinje","popupResizable":"Skalerbar","popupScrollBars":"Scrollbar","popupStatusBar":"Statuslinje","popupToolbar":"Verktøylinje","popupTop":"Topp-posisjon","rel":"Relasjon (rel)","selectAnchor":"Velg et anker","styles":"Stil","tabIndex":"Tabindeks","target":"Mål","targetFrame":"<ramme>","targetFrameName":
"Målramme","targetPopup":"<popup-vindu>","targetPopupName":"Navn på popup-vindu","title":"Lenke","toAnchor":"Lenke til anker i teksten","toEmail":"E-post","toUrl":"URL","toolbar":"Sett inn/Rediger lenke","type":"Lenketype","unlink":"Fjern lenke","upload":"Last opp"},"liststyle":{"armenian":"Armensk nummerering","bulletedTitle":"Egenskaper for punktmerket liste","circle":"Sirkel","decimal":"Tall (1, 2, 3, osv.)","decimalLeadingZero":"Tall, med førstesiffer null (01, 02, 03, osv.)","disc":"Disk","georgian":"Georgisk nummerering (an, ban, gan, osv.)","lowerAlpha":"Alfabetisk, små (a, b, c, d, e, osv.)","lowerGreek":"Gresk, små (alpha, beta, gamma, osv.)","lowerRoman":"Romertall, små (i, ii, iii, iv, v, osv.)","none":"Ingen","notset":"<ikke satt>","numberedTitle":"Egenskaper for nummerert liste","square":"Firkant","start":"Start","type":"Type","upperAlpha":"Alfabetisk, store (A, B, C, D, E, osv.)","upperRoman":"Romertall, store (I, II, III, IV, V, osv.)","validateStartNumb
er":"Starten på listen må være et heltall."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"newpage":{"toolbar":"Ny side"},"pagebreak":{"alt":"Sideskift","toolbar":"Sett inn sideskift for utskrift"},"pastetext":{"button":"Lim inn som ren tekst","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"preview":{"preview":"Forhåndsvis"},"print":{"toolbar":"Skriv ut"},"removeformat":{"toolbar":"Fjern formatering"},"save":{"toolbar":"Lagre"},"selectall":{"toolbar":"Merk alt"},"showblocks":{"toolbar":"Vis blokker"},"sourcearea":{"toolbar":"Kilde"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"scay
t":{"about":"Om SCAYT","aboutTab":"Om","addWord":"Legg til ord","allCaps":"Ikke kontroller ord med kun store bokstaver","dic_create":"Opprett","dic_delete":"Slett","dic_field_name":"Ordboknavn","dic_info":"Brukerordboken lagres først i en informasjonskapsel på din maskin, men det er en begrensning på hvor mye som kan lagres her. Når ordboken blir for stor til å lagres i en informasjonskapsel, vil vi i stedet lagre ordboken på vår server. For å lagre din personlige ordbok på vår server, burde du velge et navn for ordboken din. Hvis du allerede har lagret en ordbok, vennligst skriv inn ordbokens navn og klikk på Gjenopprett-knappen.","dic_rename":"Gi nytt navn","dic_restore":"Gjenopprett","dictionariesTab":"Ordbøker","disable":"Slå av SCAYT","emptyDic":"Ordboknavn bør ikke være tom.","enable":"Slå på SCAYT","ignore":"Ignorer","ignoreAll":"Ignorer Alle","ignoreDomainNames":"Ikke kontroller domenenavn","langs":"Språk","languagesTab":"Språk","mixedCase":"Ikke k
ontroller ord med blandet små og store bokstaver","mixedWithDigits":"Ikke kontroller ord som inneholder tall","moreSuggestions":"Flere forslag","opera_title":"Ikke støttet av Opera","options":"Valg","optionsTab":"Valg","title":"Stavekontroll mens du skriver","toggle":"Veksle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal
justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.",
"invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"undo":{"redo":"Gjør om","undo":"Angre"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer alle","btnReplace":"Erstatt","btnReplaceAll":"Erstatt alle","btnUndo":"Angre","changeTo":"Endre til","errorLoading":"Feil under lasting av applikasjonstjenestetjener: %s.","ieSpellDownload":"Stavekontroll er ikke installert. Vil du laste den ned nå?","manyChanges":"Stavekontroll fullført: %1 ord endret","noChanges":"Stavekontroll fullført: ingen ord endret","noMispell":"Stavekontroll fullført: ingen feilstavinger funne
t","noSuggestions":"- Ingen forslag -","notAvailable":"Beklager, tjenesten er utilgjenglig nå.","notInDic":"Ikke i ordboken","oneChange":"Stavekontroll fullført: Ett ord endret","progress":"Stavekontroll pågår...","title":"Stavekontroll","toolbar":"Stavekontroll"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/nl.js b/share/static/RichText/lang/nl.js
index 7a34fb4..c84e481 100644
--- a/share/static/RichText/lang/nl.js
+++ b/share/static/RichText/lang/nl.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.nl={dir:'ltr',editorTitle:'Tekstverwerker, %1, druk op ALT 0 voor hulp.',toolbar:'Werkbalk',editor:'Tekstverwerker',source:'Code',newPage:'Nieuwe pagina',save:'Opslaan',preview:'Voorbeeld',cut:'Knippen',copy:'Kopiëren',paste:'Plakken',print:'Printen',underline:'Onderstreept',bold:'Vet',italic:'Schuingedrukt',selectAll:'Alles selecteren',removeFormat:'Opmaak verwijderen',strike:'Doorhalen',subscript:'Subscript',superscript:'Superscript',horizontalrule:'Horizontale lijn invoegen',pagebreak:'Pagina-einde invoegen',unlink:'Link verwijderen',undo:'Ongedaan maken',redo:'Opnieuw uitvoeren',common:{browseServer:'Bladeren op server',url:'URL',protocol:'Protocol',upload:'Upload',uploadSubmit:'Naar server verzenden',image:'Afbeelding',flash:'Flash',form:'Formulier',checkbox:'Aanvinkvakje',radio:'Selectievakje',textField:'Tekstveld',textarea:'Tekstvak',hiddenField:'Verborgen veld',button:'Knop',select:'Selectieveld',imageButton:'Afbeeldingsknop',notSet:'<niet ingevuld>',i
d:'Kenmerk',name:'Naam',langDir:'Schrijfrichting',langDirLtr:'Links naar rechts (LTR)',langDirRtl:'Rechts naar links (RTL)',langCode:'Taalcode',longDescr:'Lange URL-omschrijving',cssClass:'Stylesheet-klassen',advisoryTitle:'Aanbevolen titel',cssStyle:'Stijl',ok:'OK',cancel:'Annuleren',close:'Sluiten',preview:'Voorbeeld',generalTab:'Algemeen',advancedTab:'Geavanceerd',validateNumberFailed:'Deze waarde is geen geldig getal.',confirmNewPage:'Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?',confirmCancel:'Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?',options:'Opties',target:'Doel',targetNew:'Nieuw venster (_blank)',targetTop:'Hele venster (_top)',targetSelf:'Zelfde venster (_self)',targetParent:'Origineel venster (_parent)',langDirLTR:'Links naar rechts (LTR)',langDirRTL:'Rechts naar links (RTL)',styles:'Stijlen',cssClasses:'Stylesheet klassen',unavailable:'%1<span class="cke_accessibility">, nie
t beschikbaar</span>'},contextmenu:{options:'Context menu opties'},specialChar:{toolbar:'Speciaal teken invoegen',title:'Selecteer speciaal teken',options:'Speciale tekens opties'},link:{toolbar:'Link invoegen/wijzigen',other:'<ander>',menu:'Link wijzigen',title:'Link',info:'Linkomschrijving',target:'Doel',upload:'Upload',advanced:'Geavanceerd',type:'Linktype',toUrl:'URL',toAnchor:'Interne link in pagina',toEmail:'E-mail',targetFrame:'<frame>',targetPopup:'<popup window>',targetFrameName:'Naam doelframe',targetPopupName:'Naam popupvenster',popupFeatures:'Instellingen popupvenster',popupResizable:'Herschaalbaar',popupStatusBar:'Statusbalk',popupLocationBar:'Locatiemenu',popupToolbar:'Menubalk',popupMenuBar:'Menubalk',popupFullScreen:'Volledig scherm (IE)',popupScrollBars:'Schuifbalken',popupDependent:'Afhankelijk (Netscape)',popupWidth:'Breedte',popupLeft:'Positie links',popupHeight:'Hoogte',popupTop:'Positie boven',id:'Id',langDir:'Schrijfrichting',langDirLTR:'Links naar rec
hts (LTR)',langDirRTL:'Rechts naar links (RTL)',acccessKey:'Toegangstoets',name:'Naam',langCode:'Schrijfrichting',tabIndex:'Tabvolgorde',advisoryTitle:'Aanbevolen titel',advisoryContentType:'Aanbevolen content-type',cssClasses:'Stylesheet-klassen',charset:'Karakterset van gelinkte bron',styles:'Stijl',selectAnchor:'Kies een interne link',anchorName:'Op naam interne link',anchorId:'Op kenmerk interne link',emailAddress:'E-mailadres',emailSubject:'Onderwerp bericht',emailBody:'Inhoud bericht',noAnchors:'(Geen interne links in document gevonden)',noUrl:'Geef de link van de URL',noEmail:'Geef een e-mailadres'},anchor:{toolbar:'Interne link',menu:'Eigenschappen interne link',title:'Eigenschappen interne link',name:'Naam interne link',errorName:'Geef de naam van de interne link op'},list:{numberedTitle:'Eigenschappen genummerde lijst',bulletedTitle:'Eigenschappen lijst met opsommingstekens',type:'Type',start:'Start',validateStartNumber:'Starnummer van de lijst moet een heel nummer
zijn.',circle:'Cirkel',disc:'Schijf',square:'Vierkant',none:'Geen',notset:'<niet gezet>',armenian:'Armeense numering',georgian:'Greorgische numering (an, ban, gan, etc.)',lowerRoman:'Romeins kleine letters (i, ii, iii, iv, v, etc.)',upperRoman:'Romeins hoofdletters (I, II, III, IV, V, etc.)',lowerAlpha:'Kleine letters (a, b, c, d, e, etc.)',upperAlpha:'Hoofdletters (A, B, C, D, E, etc.)',lowerGreek:'Grieks kleine letters (alpha, beta, gamma, etc.)',decimal:'Cijfers (1, 2, 3, etc.)',decimalLeadingZero:'Cijfers beginnen met nul (01, 02, 03, etc.)'},findAndReplace:{title:'Zoeken en vervangen',find:'Zoeken',replace:'Vervangen',findWhat:'Zoeken naar:',replaceWith:'Vervangen met:',notFoundMsg:'De opgegeven tekst is niet gevonden.',matchCase:'Hoofdlettergevoelig',matchWord:'Hele woord moet voorkomen',matchCyclic:'Doorlopend zoeken',replaceAll:'Alles vervangen',replaceSuccessMsg:'%1 resulaten vervangen.'},table:{toolbar:'Tabel',title:'Eigenschappen tabel',menu:'Eigenschappen tabel'
,deleteTable:'Tabel verwijderen',rows:'Rijen',columns:'Kolommen',border:'Breedte rand',align:'Uitlijning',alignLeft:'Links',alignCenter:'Centreren',alignRight:'Rechts',width:'Breedte',widthPx:'pixels',widthPc:'procent',widthUnit:'eenheid breedte',height:'Hoogte',cellSpace:'Afstand tussen cellen',cellPad:'Ruimte in de cel',caption:'Naam',summary:'Samenvatting',headers:'Koppen',headersNone:'Geen',headersColumn:'Eerste kolom',headersRow:'Eerste rij',headersBoth:'Beide',invalidRows:'Het aantal rijen moet een getal zijn groter dan 0.',invalidCols:'Het aantal kolommen moet een getal zijn groter dan 0.',invalidBorder:'De rand breedte moet een getal zijn.',invalidWidth:'De tabel breedte moet een getal zijn.',invalidHeight:'De tabel hoogte moet een getal zijn.',invalidCellSpacing:'Afstand tussen cellen moet een getal zijn.',invalidCellPadding:'Ruimte in de cel moet een getal zijn.',cell:{menu:'Cel',insertBefore:'Voeg cel in voor',insertAfter:'Voeg cel in achter',deleteCell:'Cellen ve
rwijderen',merge:'Cellen samenvoegen',mergeRight:'Voeg samen naar rechts',mergeDown:'Voeg samen naar beneden',splitHorizontal:'Splits cellen horizontaal',splitVertical:'Splits cellen verticaal',title:'Cel eigenschappen',cellType:'Cel type',rowSpan:'Rijen samenvoegen',colSpan:'Kolommen samenvoegen',wordWrap:'Automatische terugloop',hAlign:'Horizontale uitlijning',vAlign:'Verticale uitlijning',alignTop:'Boven',alignMiddle:'Midden',alignBottom:'Onder',alignBaseline:'Basislijn',bgColor:'Achtergrondkleur',borderColor:'Kleur rand',data:'Inhoud',header:'Kop',yes:'Ja',no:'Nee',invalidWidth:'De celbreedte moet een getal zijn.',invalidHeight:'De celhoogte moet een getal zijn.',invalidRowSpan:'Rijen samenvoegen moet een heel getal zijn.',invalidColSpan:'Kolommen samenvoegen moet een heel getal zijn.',chooseColor:'Kies'},row:{menu:'Rij',insertBefore:'Voeg rij in voor',insertAfter:'Voeg rij in achter',deleteRow:'Rijen verwijderen'},column:{menu:'Kolom',insertBefore:'Voeg kolom in voor',i
nsertAfter:'Voeg kolom in achter',deleteColumn:'Kolommen verwijderen'}},button:{title:'Eigenschappen knop',text:'Tekst (waarde)',type:'Soort',typeBtn:'Knop',typeSbm:'Versturen',typeRst:'Leegmaken'},checkboxAndRadio:{checkboxTitle:'Eigenschappen aanvinkvakje',radioTitle:'Eigenschappen selectievakje',value:'Waarde',selected:'Geselecteerd'},form:{title:'Eigenschappen formulier',menu:'Eigenschappen formulier',action:'Actie',method:'Methode',encoding:'Codering'},select:{title:'Eigenschappen selectieveld',selectInfo:'Informatie',opAvail:'Beschikbare opties',value:'Waarde',size:'Grootte',lines:'Regels',chkMulti:'Gecombineerde selecties toestaan',opText:'Tekst',opValue:'Waarde',btnAdd:'Toevoegen',btnModify:'Wijzigen',btnUp:'Omhoog',btnDown:'Omlaag',btnSetValue:'Als geselecteerde waarde instellen',btnDelete:'Verwijderen'},textarea:{title:'Eigenschappen tekstvak',cols:'Kolommen',rows:'Rijen'},textfield:{title:'Eigenschappen tekstveld',name:'Naam',value:'Waarde',charWidth:'Breedte (tek
ens)',maxChars:'Maximum aantal tekens',type:'Soort',typeText:'Tekst',typePass:'Wachtwoord'},hidden:{title:'Eigenschappen verborgen veld',name:'Naam',value:'Waarde'},image:{title:'Eigenschappen afbeelding',titleButton:'Eigenschappen afbeeldingsknop',menu:'Eigenschappen afbeelding',infoTab:'Informatie afbeelding',btnUpload:'Naar server verzenden',upload:'Upload',alt:'Alternatieve tekst',width:'Breedte',height:'Hoogte',lockRatio:'Afmetingen vergrendelen',unlockRatio:'Afmetingen ontgrendelen',resetSize:'Afmetingen resetten',border:'Rand',hSpace:'HSpace',vSpace:'VSpace',align:'Uitlijning',alignLeft:'Links',alignRight:'Rechts',alertUrl:'Geef de URL van de afbeelding',linkTab:'Link',button2Img:'Wilt u de geselecteerde afbeeldingsknop vervangen door een eenvoudige afbeelding?',img2Button:'Wilt u de geselecteerde afbeelding vervangen door een afbeeldingsknop?',urlMissing:'De URL naar de afbeelding ontbreekt.',validateWidth:'Breedte moet een heel nummer zijn.',validateHeight:'Hoogte m
oet een heel nummer zijn.',validateBorder:'Rand moet een heel nummer zijn.',validateHSpace:'HSpace moet een heel nummer zijn.',validateVSpace:'VSpace moet een heel nummer zijn.'},flash:{properties:'Eigenschappen Flash',propertiesTab:'Eigenschappen',title:'Eigenschappen Flash',chkPlay:'Automatisch afspelen',chkLoop:'Herhalen',chkMenu:"Flashmenu's inschakelen",chkFull:'Schermvullend toestaan',scale:'Schaal',scaleAll:'Alles tonen',scaleNoBorder:'Geen rand',scaleFit:'Precies passend',access:'Script toegang',accessAlways:'Altijd',accessSameDomain:'Zelfde domeinnaam',accessNever:'Nooit',align:'Uitlijning',alignLeft:'Links',alignAbsBottom:'Absoluut-onder',alignAbsMiddle:'Absoluut-midden',alignBaseline:'Basislijn',alignBottom:'Beneden',alignMiddle:'Midden',alignRight:'Rechts',alignTextTop:'Boven tekst',alignTop:'Boven',quality:'Kwaliteit',qualityBest:'Beste',qualityHigh:'Hoog',qualityAutoHigh:'Automatisch hoog',qualityMedium:'Gemiddeld',qualityAutoLow:'Automatisch laag',qualityLow:'
Laag',windowModeWindow:'Venster',windowModeOpaque:'Ondoorzichtig',windowModeTransparent:'Doorzichtig',windowMode:'Venster modus',flashvars:'Variabelen voor Flash',bgcolor:'Achtergrondkleur',width:'Breedte',height:'Hoogte',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'Geef de link van de URL',validateWidth:'De breedte moet een getal zijn.',validateHeight:'De hoogte moet een getal zijn.',validateHSpace:'De HSpace moet een getal zijn.',validateVSpace:'De VSpace moet een getal zijn.'},spellCheck:{toolbar:'Spellingscontrole',title:'Spellingscontrole',notAvailable:'Excuses, deze dienst is momenteel niet beschikbaar.',errorLoading:'Er is een fout opgetreden bij het laden van de diesnt: %s.',notInDic:'Niet in het woordenboek',changeTo:'Wijzig in',btnIgnore:'Negeren',btnIgnoreAll:'Alles negeren',btnReplace:'Vervangen',btnReplaceAll:'Alles vervangen',btnUndo:'Ongedaan maken',noSuggestions:'-Geen suggesties-',progress:'Bezig met spellingscontrole...',noMispell:'Klaar met spellingscontro
le: geen fouten gevonden',noChanges:'Klaar met spellingscontrole: geen woorden aangepast',oneChange:'Klaar met spellingscontrole: één woord aangepast',manyChanges:'Klaar met spellingscontrole: %1 woorden aangepast',ieSpellDownload:'De spellingscontrole niet geïnstalleerd. Wilt u deze nu downloaden?'},smiley:{toolbar:'Smiley',title:'Smiley invoegen',options:'Smiley opties'},elementsPath:{eleLabel:'Elementenpad',eleTitle:'%1 element'},numberedlist:'Genummerde lijst',bulletedlist:'Opsomming',indent:'Inspringen vergroten',outdent:'Inspringen verkleinen',justify:{left:'Links uitlijnen',center:'Centreren',right:'Rechts uitlijnen',block:'Uitvullen'},blockquote:'Citaatblok',clipboard:{title:'Plakken',cutError:'De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.',copyError:'De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord
.',pasteMsg:'Plak de tekst in het volgende vak gebruik makend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op <strong>OK</strong>.',securityMsg:'Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.',pasteArea:'Plakgebied'},pastefromword:{confirmCleanup:'De tekst die u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de tekst opschonen voordat deze geplakt wordt?',toolbar:'Plakken als Word-gegevens',title:'Plakken als Word-gegevens',error:'Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout'},pasteText:{button:'Plakken als platte tekst',title:'Plakken als platte tekst'},templates:{button:'Sjablonen',title:'Inhoud sjabonen',options:'Template opties',insertOption:'Vervang de huidige inhoud',selectPromptMsg:'Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud
gaat verloren):',emptyListMsg:'(Geen sjablonen gedefinieerd)'},showBlocks:'Toon blokken',stylesCombo:{label:'Stijl',panelTitle:'Opmaakstijlen',panelTitle1:'Blok stijlen',panelTitle2:'In-line stijlen',panelTitle3:'Object stijlen'},format:{label:'Opmaak',panelTitle:'Opmaak',tag_p:'Normaal',tag_pre:'Met opmaak',tag_address:'Adres',tag_h1:'Kop 1',tag_h2:'Kop 2',tag_h3:'Kop 3',tag_h4:'Kop 4',tag_h5:'Kop 5',tag_h6:'Kop 6',tag_div:'Normaal (DIV)'},div:{title:'Div aanmaken',toolbar:'Div aanmaken',cssClassInputLabel:'Stylesheet klassen',styleSelectLabel:'Stijl',IdInputLabel:'Id',languageCodeInputLabel:' Taalcode',inlineStyleInputLabel:'Inline stijl',advisoryTitleInputLabel:'informatieve titel',langDirLabel:'Schrijfrichting',langDirLTRLabel:'Links naar rechts (LTR)',langDirRTLLabel:'Rechts naar links (RTL)',edit:'Div wijzigen',remove:'Div verwijderen'},font:{label:'Lettertype',voiceLabel:'Lettertype',panelTitle:'Lettertype'},fontSize:{label:'Lettergrootte',voiceLabel:'Lettergrootte',
panelTitle:'Lettergrootte'},colorButton:{textColorTitle:'Tekstkleur',bgColorTitle:'Achtergrondkleur',panelTitle:'Kleuren',auto:'Automatisch',more:'Meer kleuren...'},colors:{'000':'Zwart',800000:'Kastanjebruin','8B4513':'Chocoladebruin','2F4F4F':'Donkerleigrijs','008080':'Blauwgroen','000080':'Marine','4B0082':'Indigo',696969:'Donkergrijs',B22222:'Baksteen',A52A2A:'Bruin',DAA520:'Donkergeel','006400':'Donkergroen','40E0D0':'Turquoise','0000CD':'Middenblauw',800080:'Paars',808080:'Grijs',F00:'Rood',FF8C00:'Donkeroranje',FFD700:'Goud','008000':'Groen','0FF':'Cyaan','00F':'Blauw',EE82EE:'Violet',A9A9A9:'Donkergrijs',FFA07A:'Lichtzalm',FFA500:'Oranje',FFFF00:'Geel','00FF00':'Felgroen',AFEEEE:'Lichtturquoise',ADD8E6:'Lichtblauw',DDA0DD:'Pruim',D3D3D3:'Lichtgrijs',FFF0F5:'Linnen',FAEBD7:'Ivoor',FFFFE0:'Lichtgeel',F0FFF0:'Honingdauw',F0FFFF:'Azuur',F0F8FF:'Licht hemelsblauw',E6E6FA:'Lavendel',FFF:'Wit'},scayt:{title:'Controleer de spelling tijdens het typen',opera_title:'Niet onders
teund door Opera',enable:'SCAYT inschakelen',disable:'SCAYT uitschakelen',about:'Over SCAYT',toggle:'SCAYT in/uitschakelen',options:'Opties',langs:'Talen',moreSuggestions:'Meer suggesties',ignore:'Negeren',ignoreAll:'Alles negeren',addWord:'Woord toevoegen',emptyDic:'De naam van het woordenboek mag niet leeg zijn.',optionsTab:'Opties',allCaps:'Negeer woorden helemaal in hoofdletters',ignoreDomainNames:'Negeer domeinnamen',mixedCase:'Negeer woorden met hoofd- en kleine letters',mixedWithDigits:'Negeer woorden met cijfers',languagesTab:'Talen',dictionariesTab:'Woordenboeken',dic_field_name:'Naam woordenboek',dic_create:'Aanmaken',dic_restore:'Terugzetten',dic_delete:'Verwijderen',dic_rename:'Hernoemen',dic_info:'Initieel wordt het gebruikerswoordenboek opgeslagen in een cookie. Cookies zijn echter beperkt in grootte. Zodra het gebruikerswoordenboek het punt bereikt waarop het niet meer in een cookie opgeslagen kan worden, dan wordt het woordenboek op de server opgeslagen. Om j
e persoonlijke woordenboek op je eigen server op te slaan, moet je een mapnaam opgeven. Indien je al een woordenboek hebt opgeslagen, typ dan de naam en klik op de Terugzetten knop.',aboutTab:'Over'},about:{title:'Over CKEditor',dlgTitle:'Over CKEditor',moreInfo:'Voor licentie informatie, bezoek onze website:',copy:'Copyright © $1. Alle rechten voorbehouden.'},maximize:'Maximaliseren',minimize:'Minimaliseren',fakeobjects:{anchor:'Anker',flash:'Flash animatie',div:'Pagina einde',unknown:'Onbekend object'},resize:'Sleep om te herschalen',colordialog:{title:'Selecteer kleur',options:'Kleuropties',highlight:'Actief',selected:'Geselecteerd',clear:'Wissen'},toolbarCollapse:'Werkbalk inklappen',toolbarExpand:'Werkbalk uitklappen',bidi:{ltr:'Schrijfrichting van links naar rechts',rtl:'Schrijfrichting van rechts naar links'}};
+CKEDITOR.lang['nl']={"dir":"ltr","editor":"Tekstverwerker","common":{"editorHelp":"Druk ALT 0 voor hulp","browseServer":"Bladeren op server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Naar server verzenden","image":"Afbeelding","flash":"Flash","form":"Formulier","checkbox":"Aanvinkvakje","radio":"Selectievakje","textField":"Tekstveld","textarea":"Tekstvak","hiddenField":"Verborgen veld","button":"Knop","select":"Selectieveld","imageButton":"Afbeeldingsknop","notSet":"<niet ingevuld>","id":"Id","name":"Naam","langDir":"Schrijfrichting","langDirLtr":"Links naar rechts (LTR)","langDirRtl":"Rechts naar links (RTL)","langCode":"Taalcode","longDescr":"Lange URL-omschrijving","cssClass":"Stylesheet-klassen","advisoryTitle":"Adviserende titel","cssStyle":"Stijl","ok":"OK","cancel":"Annuleren","close":"Sluiten","preview":"Voorbeeld","resize":"Sleep om te herschalen","generalTab":"Algemeen","advancedTab":"Geavanceerd","validateNumberFailed":"Deze waarde is gee
n geldig getal.","confirmNewPage":"Alle aangebrachte wijzigingen gaan verloren. Weet u zeker dat u een nieuwe pagina wilt openen?","confirmCancel":"Enkele opties zijn gewijzigd. Weet u zeker dat u dit dialoogvenster wilt sluiten?","options":"Opties","target":"Doelvenster","targetNew":"Nieuw venster (_blank)","targetTop":"Hele venster (_top)","targetSelf":"Zelfde venster (_self)","targetParent":"Origineel venster (_parent)","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","styles":"Stijl","cssClasses":"Stylesheet klassen","width":"Breedte","height":"Hoogte","align":"Uitlijning","alignLeft":"Links","alignRight":"Rechts","alignCenter":"Centreren","alignTop":"Boven","alignMiddle":"Midden","alignBottom":"Onder","invalidValue":"Ongeldige waarde.","invalidHeight":"De hoogte moet een getal zijn.","invalidWidth":"De breedte moet een getal zijn.","invalidCssLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige CSS meeteenh
eid (px, %, in, cm, mm, em, ex, pt of pc).","invalidHtmlLength":"Waarde in veld \"%1\" moet een positief nummer zijn, met of zonder een geldige HTML meeteenheid (px of %).","invalidInlineStyle":"Waarde voor de online stijl moet bestaan uit een of meerdere tupels met het formaat \"naam : waarde\", gescheiden door puntkomma's.","cssLengthTooltip":"Geef een nummer in voor een waarde in pixels of geef een nummer in met een geldige CSS eenheid (px, %, in, cm, mm, em, ex, pt, of pc).","unavailable":"%1<span class=\"cke_accessibility\">, niet beschikbaar</span>"},"about":{"copy":"Copyright © $1. Alle rechten voorbehouden.","dlgTitle":"Over CKEditor","help":"Bekijk de $1 voor hulp.","moreInfo":"Voor licentie informatie, bezoek onze website:","title":"Over CKEditor","userGuide":"CKEditor gebruiksaanwijzing"},"basicstyles":{"bold":"Vet","italic":"Cursief","strike":"Doorhalen","subscript":"Subscript","superscript":"Superscript","underline":"Onderstreept"},"bidi":{"ltr":"Schrijfric
hting van links naar rechts","rtl":"Schrijfrichting van rechts naar links"},"blockquote":{"toolbar":"Citaatblok"},"clipboard":{"copy":"Kopiëren","copyError":"De beveiligingsinstelling van de browser verhinderen het automatisch kopiëren. Gebruik de sneltoets Ctrl/Cmd+C van het toetsenbord.","cut":"Knippen","cutError":"De beveiligingsinstelling van de browser verhinderen het automatisch knippen. Gebruik de sneltoets Ctrl/Cmd+X van het toetsenbord.","paste":"Plakken","pasteArea":"Plakgebied","pasteMsg":"Plak de tekst in het volgende vak gebruikmakend van uw toetsenbord (<strong>Ctrl/Cmd+V</strong>) en klik op OK.","securityMsg":"Door de beveiligingsinstellingen van uw browser is het niet mogelijk om direct vanuit het klembord in de editor te plakken. Middels opnieuw plakken in dit venster kunt u de tekst alsnog plakken in de editor.","title":"Plakken"},"colorbutton":{"auto":"Automatisch","bgColorTitle":"Achtergrondkleur","colors":{"000":"Zwart","800000":"Kastanjebruin","8B451
3":"Chocoladebruin","2F4F4F":"Donkerleigrijs","008080":"Blauwgroen","000080":"Marine","4B0082":"Indigo","696969":"Donkergrijs","B22222":"Baksteen","A52A2A":"Bruin","DAA520":"Donkergeel","006400":"Donkergroen","40E0D0":"Turquoise","0000CD":"Middenblauw","800080":"Paars","808080":"Grijs","F00":"Rood","FF8C00":"Donkeroranje","FFD700":"Goud","008000":"Groen","0FF":"Cyaan","00F":"Blauw","EE82EE":"Violet","A9A9A9":"Donkergrijs","FFA07A":"Lichtzalm","FFA500":"Oranje","FFFF00":"Geel","00FF00":"Felgroen","AFEEEE":"Lichtturquoise","ADD8E6":"Lichtblauw","DDA0DD":"Pruim","D3D3D3":"Lichtgrijs","FFF0F5":"Linnen","FAEBD7":"Ivoor","FFFFE0":"Lichtgeel","F0FFF0":"Honingdauw","F0FFFF":"Azuur","F0F8FF":"Licht hemelsblauw","E6E6FA":"Lavendel","FFF":"Wit"},"more":"Meer kleuren...","panelTitle":"Kleuren","textColorTitle":"Tekstkleur"},"colordialog":{"clear":"Wissen","highlight":"Actief","options":"Kleuropties","selected":"Geselecteerde kleur","title":"Selecteer kleur"},"templates":{"button":"Sjabl
onen","emptyListMsg":"(Geen sjablonen gedefinieerd)","insertOption":"Vervang de huidige inhoud","options":"Template opties","selectPromptMsg":"Selecteer het sjabloon dat in de editor geopend moet worden (de actuele inhoud gaat verloren):","title":"Inhoud sjablonen"},"contextmenu":{"options":"Contextmenu opties"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Adviserende titel","cssClassInputLabel":"Stylesheet klassen","edit":"Div wijzigen","inlineStyleInputLabel":"Inline stijl","langDirLTRLabel":"Links naar rechts (LTR)","langDirLabel":"Schrijfrichting","langDirRTLLabel":"Rechts naar links (RTL)","languageCodeInputLabel":" Taalcode","remove":"Div verwijderen","styleSelectLabel":"Stijl","title":"Div aanmaken","toolbar":"Div aanmaken"},"toolbar":{"toolbarCollapse":"Werkbalk inklappen","toolbarExpand":"Werkbalk uitklappen","toolbarGroups":{"document":"Document","clipboard":"Klembord/Ongedaan maken","editing":"Bewerken","forms":"Formulieren","basicstyles":"Basisstijlen","
paragraph":"Paragraaf","links":"Links","insert":"Invoegen","styles":"Stijlen","colors":"Kleuren","tools":"Toepassingen"},"toolbars":"Werkbalken"},"elementspath":{"eleLabel":"Elementenpad","eleTitle":"%1 element"},"list":{"bulletedlist":"Opsomming","numberedlist":"Genummerde lijst"},"indent":{"indent":"Inspringing vergroten","outdent":"Inspringing verkleinen"},"find":{"find":"Zoeken","findOptions":"Zoekopties","findWhat":"Zoeken naar:","matchCase":"Hoofdlettergevoelig","matchCyclic":"Doorlopend zoeken","matchWord":"Hele woord moet voorkomen","notFoundMsg":"De opgegeven tekst is niet gevonden.","replace":"Vervangen","replaceAll":"Alles vervangen","replaceSuccessMsg":"%1 resultaten vervangen.","replaceWith":"Vervangen met:","title":"Zoeken en vervangen"},"fakeobjects":{"anchor":"Interne link","flash":"Flash animatie","hiddenfield":"Verborgen veld","iframe":"IFrame","unknown":"Onbekend object"},"flash":{"access":"Script toegang","accessAlways":"Altijd","accessNever":"Nooit","acc
essSameDomain":"Zelfde domeinnaam","alignAbsBottom":"Absoluut-onder","alignAbsMiddle":"Absoluut-midden","alignBaseline":"Basislijn","alignTextTop":"Boven tekst","bgcolor":"Achtergrondkleur","chkFull":"Schermvullend toestaan","chkLoop":"Herhalen","chkMenu":"Flashmenu's inschakelen","chkPlay":"Automatisch afspelen","flashvars":"Variabelen voor Flash","hSpace":"HSpace","properties":"Eigenschappen Flash","propertiesTab":"Eigenschappen","quality":"Kwaliteit","qualityAutoHigh":"Automatisch hoog","qualityAutoLow":"Automatisch laag","qualityBest":"Beste","qualityHigh":"Hoog","qualityLow":"Laag","qualityMedium":"Gemiddeld","scale":"Schaal","scaleAll":"Alles tonen","scaleFit":"Precies passend","scaleNoBorder":"Geen rand","title":"Eigenschappen Flash","vSpace":"VSpace","validateHSpace":"De HSpace moet een getal zijn.","validateSrc":"De URL mag niet leeg zijn.","validateVSpace":"De VSpace moet een getal zijn.","windowMode":"Venster modus","windowModeOpaque":"Ondoorzichtig","windowModeTr
ansparent":"Doorzichtig","windowModeWindow":"Venster"},"font":{"fontSize":{"label":"Lettergrootte","voiceLabel":"Lettergrootte","panelTitle":"Lettergrootte"},"label":"Lettertype","panelTitle":"Lettertype","voiceLabel":"Lettertype"},"forms":{"button":{"title":"Eigenschappen knop","text":"Tekst (waarde)","type":"Soort","typeBtn":"Knop","typeSbm":"Versturen","typeRst":"Leegmaken"},"checkboxAndRadio":{"checkboxTitle":"Eigenschappen aanvinkvakje","radioTitle":"Eigenschappen selectievakje","value":"Waarde","selected":"Geselecteerd"},"form":{"title":"Eigenschappen formulier","menu":"Eigenschappen formulier","action":"Actie","method":"Methode","encoding":"Codering"},"hidden":{"title":"Eigenschappen verborgen veld","name":"Naam","value":"Waarde"},"select":{"title":"Eigenschappen selectieveld","selectInfo":"Informatie","opAvail":"Beschikbare opties","value":"Waarde","size":"Grootte","lines":"Regels","chkMulti":"Gecombineerde selecties toestaan","opText":"Tekst","opValue":"Waarde","btn
Add":"Toevoegen","btnModify":"Wijzigen","btnUp":"Omhoog","btnDown":"Omlaag","btnSetValue":"Als geselecteerde waarde instellen","btnDelete":"Verwijderen"},"textarea":{"title":"Eigenschappen tekstvak","cols":"Kolommen","rows":"Rijen"},"textfield":{"title":"Eigenschappen tekstveld","name":"Naam","value":"Waarde","charWidth":"Breedte (tekens)","maxChars":"Maximum aantal tekens","type":"Soort","typeText":"Tekst","typePass":"Wachtwoord","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Opmaak","panelTitle":"Opmaak","tag_address":"Adres","tag_div":"Normaal (DIV)","tag_h1":"Kop 1","tag_h2":"Kop 2","tag_h3":"Kop 3","tag_h4":"Kop 4","tag_h5":"Kop 5","tag_h6":"Kop 6","tag_p":"Normaal","tag_pre":"Met opmaak"},"horizontalrule":{"toolbar":"Horizontale lijn invoegen"},"iframe":{"border":"Framerand tonen","noUrl":"Geef de IFrame URL in","scrolling":"Scrollbalken inschakelen","title":"IFrame eigenschappen","toolbar":"IFrame"},"image":
{"alertUrl":"Geef de URL van de afbeelding","alt":"Alternatieve tekst","border":"Rand","btnUpload":"Naar server verzenden","button2Img":"Wilt u de geselecteerde afbeeldingsknop vervangen door een eenvoudige afbeelding?","hSpace":"HSpace","img2Button":"Wilt u de geselecteerde afbeelding vervangen door een afbeeldingsknop?","infoTab":"Informatie afbeelding","linkTab":"Link","lockRatio":"Afmetingen vergrendelen","menu":"Eigenschappen afbeelding","resetSize":"Afmetingen resetten","title":"Eigenschappen afbeelding","titleButton":"Eigenschappen afbeeldingsknop","upload":"Upload","urlMissing":"De URL naar de afbeelding ontbreekt.","vSpace":"VSpace","validateBorder":"Rand moet een heel nummer zijn.","validateHSpace":"HSpace moet een heel nummer zijn.","validateVSpace":"VSpace moet een heel nummer zijn."},"smiley":{"options":"Smiley opties","title":"Smiley invoegen","toolbar":"Smiley"},"justify":{"block":"Uitvullen","center":"Centreren","left":"Links uitlijnen","right":"Rechts uitlij
nen"},"link":{"acccessKey":"Toegangstoets","advanced":"Geavanceerd","advisoryContentType":"Aanbevolen content-type","advisoryTitle":"Adviserende titel","anchor":{"toolbar":"Interne link","menu":"Eigenschappen interne link","title":"Eigenschappen interne link","name":"Naam interne link","errorName":"Geef de naam van de interne link op","remove":"Interne link verwijderen"},"anchorId":"Op kenmerk interne link","anchorName":"Op naam interne link","charset":"Karakterset van gelinkte bron","cssClasses":"Stylesheet-klassen","emailAddress":"E-mailadres","emailBody":"Inhoud bericht","emailSubject":"Onderwerp bericht","id":"Id","info":"Linkomschrijving","langCode":"Taalcode","langDir":"Schrijfrichting","langDirLTR":"Links naar rechts (LTR)","langDirRTL":"Rechts naar links (RTL)","menu":"Link wijzigen","name":"Naam","noAnchors":"(Geen interne links in document gevonden)","noEmail":"Geef een e-mailadres","noUrl":"Geef de link van de URL","other":"<ander>","popupDependent":"Afhankelijk (
Netscape)","popupFeatures":"Instellingen popupvenster","popupFullScreen":"Volledig scherm (IE)","popupLeft":"Positie links","popupLocationBar":"Locatiemenu","popupMenuBar":"Menubalk","popupResizable":"Herschaalbaar","popupScrollBars":"Schuifbalken","popupStatusBar":"Statusbalk","popupToolbar":"Werkbalk","popupTop":"Positie boven","rel":"Relatie","selectAnchor":"Kies een interne link","styles":"Stijl","tabIndex":"Tabvolgorde","target":"Doelvenster","targetFrame":"<frame>","targetFrameName":"Naam doelframe","targetPopup":"<popupvenster>","targetPopupName":"Naam popupvenster","title":"Link","toAnchor":"Interne link in pagina","toEmail":"E-mail","toUrl":"URL","toolbar":"Link invoegen/wijzigen","type":"Linktype","unlink":"Link verwijderen","upload":"Upload"},"liststyle":{"armenian":"Armeense nummering","bulletedTitle":"Eigenschappen lijst met opsommingstekens","circle":"Cirkel","decimal":"Cijfers (1, 2, 3, etc.)","decimalLeadingZero":"Cijfers beginnen met nul (01, 02, 03, etc.)",
"disc":"Schijf","georgian":"Georgische nummering (an, ban, gan, etc.)","lowerAlpha":"Kleine letters (a, b, c, d, e, etc.)","lowerGreek":"Grieks kleine letters (alpha, beta, gamma, etc.)","lowerRoman":"Romeins kleine letters (i, ii, iii, iv, v, etc.)","none":"Geen","notset":"<niet gezet>","numberedTitle":"Eigenschappen genummerde lijst","square":"Vierkant","start":"Start","type":"Type","upperAlpha":"Hoofdletters (A, B, C, D, E, etc.)","upperRoman":"Romeinse hoofdletters (I, II, III, IV, V, etc.)","validateStartNumber":"Startnummer van de lijst moet een heel nummer zijn."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximaliseren","minimize":"Minimaliseren"},"newpage":{"toolbar":"Nieuwe pagina"},"pagebreak":{"alt":"Pagina-einde","toolbar":"Pagina-einde invoegen"},"pastetext":{"button":"Plakken als platte tekst","title":"Plakken als platte tekst"},"pastefromword":{"confirmCleanup":"De tekst die u plakte lijkt gekopieerd te zijn vanuit Word. Wilt u de t
ekst opschonen voordat deze geplakt wordt?","error":"Het was niet mogelijk om de geplakte tekst op te schonen door een interne fout","title":"Plakken als Word-gegevens","toolbar":"Plakken als Word-gegevens"},"preview":{"preview":"Voorbeeld"},"print":{"toolbar":"Printen"},"removeformat":{"toolbar":"Opmaak verwijderen"},"save":{"toolbar":"Opslaan"},"selectall":{"toolbar":"Alles selecteren"},"showblocks":{"toolbar":"Toon blokken"},"sourcearea":{"toolbar":"Code"},"specialchar":{"options":"Speciale tekens opties","title":"Selecteer speciaal teken","toolbar":"Speciaal teken invoegen"},"scayt":{"about":"Over SCAYT","aboutTab":"Over","addWord":"Woord toevoegen","allCaps":"Negeer woorden helemaal in hoofdletters","dic_create":"Aanmaken","dic_delete":"Verwijderen","dic_field_name":"Naam woordenboek","dic_info":"Initieel wordt het gebruikerswoordenboek opgeslagen in een cookie. Cookies zijn echter beperkt in grootte. Zodra het gebruikerswoordenboek het punt bereikt waarop het niet meer
in een cookie opgeslagen kan worden, dan wordt het woordenboek op de server opgeslagen. Om je persoonlijke woordenboek op je eigen server op te slaan, moet je een mapnaam opgeven. Indien je al een woordenboek hebt opgeslagen, typ dan de naam en klik op de Terugzetten knop.","dic_rename":"Hernoemen","dic_restore":"Terugzetten","dictionariesTab":"Woordenboeken","disable":"SCAYT uitschakelen","emptyDic":"De naam van het woordenboek mag niet leeg zijn.","enable":"SCAYT inschakelen","ignore":"Negeren","ignoreAll":"Alles negeren","ignoreDomainNames":"Negeer domeinnamen","langs":"Talen","languagesTab":"Talen","mixedCase":"Negeer woorden met hoofd- en kleine letters","mixedWithDigits":"Negeer woorden met cijfers","moreSuggestions":"Meer suggesties","opera_title":"Niet ondersteund door Opera","options":"Opties","optionsTab":"Opties","title":"Controleer de spelling tijdens het typen","toggle":"SCAYT in/uitschakelen","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stijl","pan
elTitle":"Opmaakstijlen","panelTitle1":"Blok stijlen","panelTitle2":"Inline stijlen","panelTitle3":"Object stijlen"},"table":{"border":"Breedte rand","caption":"Naam","cell":{"menu":"Cel","insertBefore":"Voeg cel in voor","insertAfter":"Voeg cel in achter","deleteCell":"Cellen verwijderen","merge":"Cellen samenvoegen","mergeRight":"Voeg samen naar rechts","mergeDown":"Voeg samen naar beneden","splitHorizontal":"Splits cellen horizontaal","splitVertical":"Splits cellen verticaal","title":"Cel eigenschappen","cellType":"Cel type","rowSpan":"Rijen samenvoegen","colSpan":"Kolommen samenvoegen","wordWrap":"Automatische terugloop","hAlign":"Horizontale uitlijning","vAlign":"Verticale uitlijning","alignBaseline":"Basislijn","bgColor":"Achtergrondkleur","borderColor":"Kleur rand","data":"Inhoud","header":"Kop","yes":"Ja","no":"Nee","invalidWidth":"De celbreedte moet een getal zijn.","invalidHeight":"De celhoogte moet een getal zijn.","invalidRowSpan":"Rijen samenvoegen moet een heel
getal zijn.","invalidColSpan":"Kolommen samenvoegen moet een heel getal zijn.","chooseColor":"Kies"},"cellPad":"Ruimte in de cel","cellSpace":"Afstand tussen cellen","column":{"menu":"Kolom","insertBefore":"Voeg kolom in voor","insertAfter":"Voeg kolom in achter","deleteColumn":"Kolommen verwijderen"},"columns":"Kolommen","deleteTable":"Tabel verwijderen","headers":"Koppen","headersBoth":"Beide","headersColumn":"Eerste kolom","headersNone":"Geen","headersRow":"Eerste rij","invalidBorder":"De rand breedte moet een getal zijn.","invalidCellPadding":"Ruimte in de cel moet een getal zijn.","invalidCellSpacing":"Afstand tussen cellen moet een getal zijn.","invalidCols":"Het aantal kolommen moet een getal zijn groter dan 0.","invalidHeight":"De tabelhoogte moet een getal zijn.","invalidRows":"Het aantal rijen moet een getal zijn groter dan 0.","invalidWidth":"De tabelbreedte moet een getal zijn.","menu":"Eigenschappen tabel","row":{"menu":"Rij","insertBefore":"Voeg rij in voor","
insertAfter":"Voeg rij in achter","deleteRow":"Rijen verwijderen"},"rows":"Rijen","summary":"Samenvatting","title":"Eigenschappen tabel","toolbar":"Tabel","widthPc":"procent","widthPx":"pixels","widthUnit":"eenheid breedte"},"undo":{"redo":"Opnieuw uitvoeren","undo":"Ongedaan maken"},"wsc":{"btnIgnore":"Negeren","btnIgnoreAll":"Alles negeren","btnReplace":"Vervangen","btnReplaceAll":"Alles vervangen","btnUndo":"Ongedaan maken","changeTo":"Wijzig in","errorLoading":"Er is een fout opgetreden bij het laden van de dienst: %s.","ieSpellDownload":"De spellingscontrole is niet geïnstalleerd. Wilt u deze nu downloaden?","manyChanges":"Klaar met spellingscontrole: %1 woorden aangepast","noChanges":"Klaar met spellingscontrole: geen woorden aangepast","noMispell":"Klaar met spellingscontrole: geen fouten gevonden","noSuggestions":"- Geen suggesties -","notAvailable":"Excuses, deze dienst is momenteel niet beschikbaar.","notInDic":"Niet in het woordenboek","oneChange":"Klaar met spel
lingscontrole: één woord aangepast","progress":"Bezig met spellingscontrole...","title":"Spellingscontrole","toolbar":"Spellingscontrole"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/no.js b/share/static/RichText/lang/no.js
index d28e6a6..4981655 100644
--- a/share/static/RichText/lang/no.js
+++ b/share/static/RichText/lang/no.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.no={dir:'ltr',editorTitle:'Rikteksteditor, %1, trykk ALT 0 for hjelp.',toolbar:'Verktøylinje',editor:'Rikteksteditor',source:'Kilde',newPage:'Ny Side',save:'Lagre',preview:'Forhåndsvis',cut:'Klipp ut',copy:'Kopier',paste:'Lim inn',print:'Skriv ut',underline:'Understrek',bold:'Fet',italic:'Kursiv',selectAll:'Merk alt',removeFormat:'Fjern format',strike:'Gjennomstrek',subscript:'Senket skrift',superscript:'Hevet skrift',horizontalrule:'Sett inn horisontal linje',pagebreak:'Sett inn sideskift',unlink:'Fjern lenke',undo:'Angre',redo:'Gjør om',common:{browseServer:'Bla igjennom server',url:'URL',protocol:'Protokoll',upload:'Last opp',uploadSubmit:'Send det til serveren',image:'Bilde',flash:'Flash',form:'Skjema',checkbox:'Avmerkingsboks',radio:'Alternativknapp',textField:'Tekstboks',textarea:'Tekstområde',hiddenField:'Skjult felt',button:'Knapp',select:'Rullegardinliste',imageButton:'Bildeknapp',notSet:'<ikke satt>',id:'Id',name:'Navn',langDir:'Språkretning',lan
gDirLtr:'Venstre til høyre (VTH)',langDirRtl:'Høyre til venstre (HTV)',langCode:'Språkkode',longDescr:'Utvidet beskrivelse',cssClass:'Stilarkklasser',advisoryTitle:'Tittel',cssStyle:'Stil',ok:'OK',cancel:'Avbryt',close:'Lukk',preview:'Forhåndsvis',generalTab:'Generelt',advancedTab:'Avansert',validateNumberFailed:'Denne verdien er ikke ett nummer',confirmNewPage:'Alle endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?',confirmCancel:'Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?',options:'Valg',target:'Mål',targetNew:'Nytt vindu (_blank)',targetTop:'Hele vindu (_top)',targetSelf:'Samme vindu (_self)',targetParent:'Foreldrevindu (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, utilgjenglig</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Sett in
n spesielt tegn',title:'Velg spesielt tegn',options:'Special Character Options'},link:{toolbar:'Sett inn/Rediger lenke',other:'<other>',menu:'Rediger lenke',title:'Lenke',info:'Lenkeinfo',target:'Mål',upload:'Last opp',advanced:'Avansert',type:'Lenketype',toUrl:'URL',toAnchor:'Lenke til anker i teksten',toEmail:'E-post',targetFrame:'<ramme>',targetPopup:'<popup vindu>',targetFrameName:'Målramme',targetPopupName:'Navn på popup-vindus',popupFeatures:'Egenskaper for popup-vindu',popupResizable:'Skalérbar',popupStatusBar:'Statuslinje',popupLocationBar:'Adresselinje',popupToolbar:'Verktøylinje',popupMenuBar:'Menylinje',popupFullScreen:'Full skjerm (IE)',popupScrollBars:'Scrollbar',popupDependent:'Avhenging (Netscape)',popupWidth:'Bredde',popupLeft:'Venstre posisjon',popupHeight:'Høyde',popupTop:'Topp-posisjon',id:'Id',langDir:'Språkretning',langDirLTR:'Venstre til høyre (VTH)',langDirRTL:'Høyre til venstre (HTV)',acccessKey:'Aksessknapp',name:'Navn',langCode:'Språkretni
ng',tabIndex:'Tab Indeks',advisoryTitle:'Tittel',advisoryContentType:'Type',cssClasses:'Stilarkklasser',charset:'Lenket språkkart',styles:'Stil',selectAnchor:'Velg et anker',anchorName:'Anker etter navn',anchorId:'Element etter ID',emailAddress:'E-postadresse',emailSubject:'Meldingsemne',emailBody:'Melding',noAnchors:'(Ingen anker i dokumentet)',noUrl:'Vennligst skriv inn lenkens url',noEmail:'Vennligst skriv inn e-postadressen'},anchor:{toolbar:'Sett inn/Rediger anker',menu:'Egenskaper for anker',title:'Egenskaper for anker',name:'Ankernavn',errorName:'Vennligst skriv inn ankernavnet'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoma
n:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Søk og erstatt',find:'Søk',replace:'Erstatt',findWhat:'Søk etter:',replaceWith:'Erstatt med:',notFoundMsg:'Fant ikke søketeksten.',matchCase:'Skill mellom store og små bokstaver',matchWord:'Bare hele ord',matchCyclic:'Søk i hele dokumentet',replaceAll:'Erstatt alle',replaceSuccessMsg:'%1 tilfelle erstattet.'},table:{toolbar:'Tabell',title:'Egenskaper for tabell',menu:'Egenskaper for tabell',deleteTable:'Slett tabell',rows:'Rader',columns:'Kolonner',border:'Rammestørrelse',align:'Justering',alignLeft:'Venstre',alignCenter:'Midtjuster',alignRight:'Høyre',width:'Bredde',widthPx:'piksler',widthPc:'prosent',widthUnit:'Bredde-enhet',height:'Høyde',cellSpace:'Cellemarg',c
ellPad:'Cellepolstring',caption:'Tittel',summary:'Sammendrag',headers:'Overskrifter',headersNone:'Ingen',headersColumn:'Første kolonne',headersRow:'Første rad',headersBoth:'Begge',invalidRows:'Antall rader må være ett tall større enn 0.',invalidCols:'Antall kolonner må være ett tall større enn 0.',invalidBorder:'Rammestørrelse må være ett tall.',invalidWidth:'Tabellbredde må være ett nummer.',invalidHeight:'Tabellhøyde må være ett nummer.',invalidCellSpacing:'Cellemellomrom må være ett nummer.',invalidCellPadding:'Cellefyll må være ett nummer.',cell:{menu:'Celle',insertBefore:'Sett inn celle før',insertAfter:'Sett inn celle etter',deleteCell:'Slett celler',merge:'Slå sammen celler',mergeRight:'Slå sammen høyre',mergeDown:'Slå sammen ned',splitHorizontal:'Del celle horisontalt',splitVertical:'Del celle vertikalt',title:'Celleegenskaper',cellType:'Celletype',rowSpan:'Radspenn',colSpan:'Kolonnespenn',wordWrap:'Tekstbrytning',hAlign:'Horisontal justering
',vAlign:'Vertikal justering',alignTop:'Topp',alignMiddle:'Midten',alignBottom:'Bunnen',alignBaseline:'Grunnlinje',bgColor:'Bakgrunnsfarge',borderColor:'Rammefarge',data:'Data',header:'Overskrift',yes:'Ja',no:'Nei',invalidWidth:'Cellebredde må være ett nummer',invalidHeight:'Cellehøyde må være ett nummer',invalidRowSpan:'Radspenn må være ett nummer.',invalidColSpan:'Kolonnespenn må være ett nummer.',chooseColor:'Velg'},row:{menu:'Rader',insertBefore:'Sett inn rad før',insertAfter:'Sett inn rad etter',deleteRow:'Slett rader'},column:{menu:'Kolonne',insertBefore:'Sett inn kolonne før',insertAfter:'Sett inn kolonne etter',deleteColumn:'Slett kolonner'}},button:{title:'Egenskaper for knapp',text:'Tekst (verdi)',type:'Type',typeBtn:'Knapp',typeSbm:'Send',typeRst:'Nullstill'},checkboxAndRadio:{checkboxTitle:'Egenskaper for avmerkingsboks',radioTitle:'Egenskaper for alternativknapp',value:'Verdi',selected:'Valgt'},form:{title:'Egenskaper for skjema',menu:'Egenskaper for
skjema',action:'Handling',method:'Metode',encoding:'Encoding'},select:{title:'Egenskaper for rullegardinliste',selectInfo:'Info',opAvail:'Tilgjenglige alternativer',value:'Verdi',size:'Størrelse',lines:'Linjer',chkMulti:'Tillat flervalg',opText:'Tekst',opValue:'Verdi',btnAdd:'Legg til',btnModify:'Endre',btnUp:'Opp',btnDown:'Ned',btnSetValue:'Sett som valgt',btnDelete:'Slett'},textarea:{title:'Egenskaper for tekstområde',cols:'Kolonner',rows:'Rader'},textfield:{title:'Egenskaper for tekstfelt',name:'Navn',value:'Verdi',charWidth:'Tegnbredde',maxChars:'Maks antall tegn',type:'Type',typeText:'Tekst',typePass:'Passord'},hidden:{title:'Egenskaper for skjult felt',name:'Navn',value:'Verdi'},image:{title:'Bildeegenskaper',titleButton:'Egenskaper for bildeknapp',menu:'Bildeegenskaper',infoTab:'Bildeinformasjon',btnUpload:'Send det til serveren',upload:'Last opp',alt:'Alternativ tekst',width:'Bredde',height:'Høyde',lockRatio:'Lås forhold',unlockRatio:'Ikke lås forhold',resetSize
:'Tilbakestill størrelse',border:'Ramme',hSpace:'HMarg',vSpace:'VMarg',align:'Juster',alignLeft:'Venstre',alignRight:'Høyre',alertUrl:'Vennligst skriv bilde-urlen',linkTab:'Lenke',button2Img:'Vil du endre den valgte bildeknappen til ett vanlig bilde?',img2Button:'Vil du endre det valgte bildet til en bildeknapp?',urlMissing:'Bildets adresse mangler.',validateWidth:'Bredde må være ett nummer.',validateHeight:'Høyde må være ett nummer.',validateBorder:'Ramme må være ett nummer.',validateHSpace:'HSpace må være ett nummer.',validateVSpace:'VSpace må være ett nummer.'},flash:{properties:'Egenskaper for Flash-objekt',propertiesTab:'Egenskaper',title:'Flash-egenskaper',chkPlay:'Autospill',chkLoop:'Loop',chkMenu:'Slå på Flash-meny',chkFull:'Tillat fullskjerm',scale:'Skaler',scaleAll:'Vis alt',scaleNoBorder:'Ingen ramme',scaleFit:'Skaler til å passe',access:'Scripttilgang',accessAlways:'Alltid',accessSameDomain:'Samme domene',accessNever:'Aldri',align:'Juster',alignLe
ft:'Venstre',alignAbsBottom:'Abs bunn',alignAbsMiddle:'Abs midten',alignBaseline:'Bunnlinje',alignBottom:'Bunn',alignMiddle:'Midten',alignRight:'Høyre',alignTextTop:'Tekst topp',alignTop:'Topp',quality:'Kvalitet',qualityBest:'Best',qualityHigh:'Høy',qualityAutoHigh:'Auto Høy',qualityMedium:'Medium',qualityAutoLow:'Auto Lav',qualityLow:'Lav',windowModeWindow:'Vindu',windowModeOpaque:'Opaque',windowModeTransparent:'Gjennomsiktig',windowMode:'Vindu modus',flashvars:'Variabler for flash',bgcolor:'Bakgrunnsfarge',width:'Bredde',height:'Høyde',hSpace:'HMarg',vSpace:'VMarg',validateSrc:'Vennligst skriv inn lenkens url',validateWidth:'Bredde må være ett nummer.',validateHeight:'Høyde må være ett nummer',validateHSpace:'HSpace må være ett nummer.',validateVSpace:'VSpace må være ett nummer.'},spellCheck:{toolbar:'Stavekontroll',title:'Stavekontroll',notAvailable:'Beklager, tjenesten er utilgjenglig nå.',errorLoading:'Feil under lasting av applicationstjeneste tjener: %s.
',notInDic:'Ikke i ordboken',changeTo:'Endre til',btnIgnore:'Ignorer',btnIgnoreAll:'Ignorer alle',btnReplace:'Erstatt',btnReplaceAll:'Erstatt alle',btnUndo:'Angre',noSuggestions:'- Ingen forslag -',progress:'Stavekontroll pÃ¥gÃ¥r...',noMispell:'Stavekontroll fullført: ingen feilstavinger funnet',noChanges:'Stavekontroll fullført: ingen ord endret',oneChange:'Stavekontroll fullført: Ett ord endret',manyChanges:'Stavekontroll fullført: %1 ord endret',ieSpellDownload:'Stavekontroll er ikke installert. Vil du laste den ned nÃ¥?'},smiley:{toolbar:'Smil',title:'Sett inn smil',options:'Smiley Options'},elementsPath:{eleLabel:'Element-sti',eleTitle:'%1 element'},numberedlist:'Nummerert liste',bulletedlist:'Uordnet liste',indent:'Ãk nivÃ¥',outdent:'Senk nivÃ¥',justify:{left:'Venstrejuster',center:'Midtjuster',right:'Høyrejuster',block:'Blokkjuster'},blockquote:'Blockquote',clipboard:{title:'Lim inn',cutError:'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk klippi
ng av tekst. Vennligst bruk snareveien (Ctrl+X).',copyError:'Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snareveien (Ctrl+C).',pasteMsg:'Vennligst lim inn i den følgende boksen med tastaturet (<STRONG>Ctrl+V</STRONG>) og trykk <STRONG>OK</STRONG>.',securityMsg:'Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må lime det igjen i dette vinduet.',pasteArea:'Innlimingsområde'},pastefromword:{confirmCleanup:'Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?',toolbar:'Lim inn fra Word',title:'Lim inn fra Word',error:'Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil'},pasteText:{button:'Lim inn som ren tekst',title:'Lim inn som ren tekst'},templates:{button:'Maler',title:'Innholdsmaler',options:'Template Options',insertOption:'Erstatt faktisk innold',selectPromptMsg:'Velg malen du vil åpn
e<br>(innholdet du har skrevet blir tapt!):',emptyListMsg:'(Ingen maler definert)'},showBlocks:'Vis blokker',stylesCombo:{label:'Stil',panelTitle:'Stilformater',panelTitle1:'Blokkstiler',panelTitle2:'Inlinestiler',panelTitle3:'Objektstiler'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatert',tag_address:'Adresse',tag_h1:'Tittel 1',tag_h2:'Tittel 2',tag_h3:'Tittel 3',tag_h4:'Tittel 4',tag_h5:'Tittel 5',tag_h6:'Tittel 6',tag_div:'Normal (DIV)'},div:{title:'Sett inn Div Container',toolbar:'Sett inn Div Container',cssClassInputLabel:'Stilark-klasser',styleSelectLabel:'Stil',IdInputLabel:'Id',languageCodeInputLabel:' Språk-kode',inlineStyleInputLabel:'Inlinestiler',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Språkretning',langDirLTRLabel:'Venstre til høyre (VTH)',langDirRTLLabel:'Høyre til venstre (HTV)',edit:'Rediger Div',remove:'Fjern Div'},font:{label:'Skrift',voiceLabel:'Font',panelTitle:'Skrift'},fontSize:{label:'Størrelse',voiceLab
el:'Font Størrelse',panelTitle:'Størrelse'},colorButton:{textColorTitle:'Tekstfarge',bgColorTitle:'Bakgrunnsfarge',panelTitle:'Farger',auto:'Automatisk',more:'Flere farger...'},colors:{'000':'Svart',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Marine','4B0082':'Indigo',696969:'Svak grå',B22222:'Fire Brick',A52A2A:'Brun',DAA520:'Golden Rod','006400':'Mørk grå','40E0D0':'Turkis','0000CD':'Medium Blå',800080:'Purple',808080:'Grå',F00:'Red',FF8C00:'Mørk oransje',FFD700:'gull','008000':'Grønn','0FF':'Cyan','00F':'Blå',EE82EE:'Fiolett',A9A9A9:'Mørk grå',FFA07A:'Light Salmon',FFA500:'Oransje',FFFF00:'gul','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Lys Blå',DDA0DD:'Plomme',D3D3D3:'Lys grå',FFF0F5:'Lavender Blush',FAEBD7:'Antikk-hvit',FFFFE0:'Lys gul',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'Hvit'},scayt:{title:'Stavekontroll mens du skriver',opera_title:'Not supported by Opera',enab
le:'Slå på SCAYT',disable:'Slå av SCAYT',about:'Om SCAYT',toggle:'Veksle SCAYT',options:'Valg',langs:'Språk',moreSuggestions:'Flere forslag',ignore:'Ignorer',ignoreAll:'Ignorer Alle',addWord:'Legg til ord',emptyDic:'Ordboknavn skal ikke være tom',optionsTab:'Valg',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Språk',dictionariesTab:'Ordbøker',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click
the Restore button.',aboutTab:'Om'},about:{title:'Om CKEditor',dlgTitle:'Om CKEditor',moreInfo:'For lisensieringsinformasjon vennligst besøk vÃ¥rt nettsted:',copy:'Copyright © $1. Alle rettigheter reservert.'},maximize:'Maksimer',minimize:'Minimer',fakeobjects:{anchor:'Anker',flash:'Flash Animasjon',div:'Sideskift',unknown:'Ukjent objekt'},resize:'Dra for Ã¥ skalere',colordialog:{title:'Velg farge',options:'Color Options',highlight:'Merk',selected:'Valgt',clear:'Tøm'},toolbarCollapse:'SlÃ¥ sammen verktøylinje',toolbarExpand:'Vis verktøylinje',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['no']={"dir":"ltr","editor":"Rikteksteditor","common":{"editorHelp":"Trykk ALT 0 for hjelp","browseServer":"Bla igjennom server","url":"URL","protocol":"Protokoll","upload":"Last opp","uploadSubmit":"Send det til serveren","image":"Bilde","flash":"Flash","form":"Skjema","checkbox":"Avmerkingsboks","radio":"Alternativknapp","textField":"Tekstboks","textarea":"Tekstområde","hiddenField":"Skjult felt","button":"Knapp","select":"Rullegardinliste","imageButton":"Bildeknapp","notSet":"<ikke satt>","id":"Id","name":"Navn","langDir":"Språkretning","langDirLtr":"Venstre til høyre (VTH)","langDirRtl":"Høyre til venstre (HTV)","langCode":"Språkkode","longDescr":"Utvidet beskrivelse","cssClass":"Stilarkklasser","advisoryTitle":"Tittel","cssStyle":"Stil","ok":"OK","cancel":"Avbryt","close":"Lukk","preview":"Forhåndsvis","resize":"Dra for å skalere","generalTab":"Generelt","advancedTab":"Avansert","validateNumberFailed":"Denne verdien er ikke et tall.","confirmNewPage
":"Alle ulagrede endringer som er gjort i dette innholdet vil bli tapt. Er du sikker på at du vil laste en ny side?","confirmCancel":"Noen av valgene har blitt endret. Er du sikker på at du vil lukke dialogen?","options":"Valg","target":"Mål","targetNew":"Nytt vindu (_blank)","targetTop":"Hele vindu (_top)","targetSelf":"Samme vindu (_self)","targetParent":"Foreldrevindu (_parent)","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","styles":"Stil","cssClasses":"Stilarkklasser","width":"Bredde","height":"Høyde","align":"Juster","alignLeft":"Venstre","alignRight":"Høyre","alignCenter":"Midtjuster","alignTop":"Topp","alignMiddle":"Midten","alignBottom":"Bunn","invalidValue":"Ugyldig verdi.","invalidHeight":"Høyde må være et tall.","invalidWidth":"Bredde må være et tall.","invalidCssLength":"Den angitte verdien for feltet \"%1\" må være et positivt tall med eller uten en gyldig CSS-målingsenhet (px, %, in, cm, mm, em, ex, pt, eller pc)."
,"invalidHtmlLength":"Den angitte verdien for feltet \"%1\" mÃ¥ være et positivt tall med eller uten en gyldig HTML-mÃ¥lingsenhet (px eller %).","invalidInlineStyle":"Verdi angitt for inline stil mÃ¥ bestÃ¥ av en eller flere sett med formatet \"navn : verdi\", separert med semikolon","cssLengthTooltip":"Skriv inn et tall for en piksel-verdi eller et tall med en gyldig CSS-enhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, utilgjenglig</span>"},"about":{"copy":"Copyright © $1. Alle rettigheter reservert.","dlgTitle":"Om CKEditor","help":"Se $1 for hjelp.","moreInfo":"For lisensieringsinformasjon, vennligst besøk vÃ¥rt nettsted:","title":"Om CKEditor","userGuide":"CKEditors brukerveiledning"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Gjennomstreking","subscript":"Senket skrift","superscript":"Hevet skrift","underline":"Understreking"},"bidi":{"ltr":"Tekstretning fra venstre til høyre","rtl":"Tekstretning
fra høyre til venstre"},"blockquote":{"toolbar":"Sitatblokk"},"clipboard":{"copy":"Kopier","copyError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk kopiering av tekst. Vennligst bruk snarveien (Ctrl/Cmd+C).","cut":"Klipp ut","cutError":"Din nettlesers sikkerhetsinstillinger tillater ikke automatisk utklipping av tekst. Vennligst bruk snarveien (Ctrl/Cmd+X).","paste":"Lim inn","pasteArea":"Innlimingsområde","pasteMsg":"Vennligst lim inn i følgende boks med tastaturet (<STRONG>Ctrl/Cmd+V</STRONG>) og trykk <STRONG>OK</STRONG>.","securityMsg":"Din nettlesers sikkerhetsinstillinger gir ikke redigeringsverktøyet direkte tilgang til utklippstavlen. Du må derfor lime det inn på nytt i dette vinduet.","title":"Lim inn"},"colorbutton":{"auto":"Automatisk","bgColorTitle":"Bakgrunnsfarge","colors":{"000":"Svart","800000":"Rødbrun","8B4513":"Salbrun","2F4F4F":"Grønnsvart","008080":"Blågrønn","000080":"Marineblått","4B0082":"Indigo","696969":"Mørk grå","B
22222":"Mørkerød","A52A2A":"Brun","DAA520":"Lys brun","006400":"Mørk grønn","40E0D0":"Turkis","0000CD":"Medium blå","800080":"Purpur","808080":"Grå","F00":"Rød","FF8C00":"Mørk oransje","FFD700":"Gull","008000":"Grønn","0FF":"Cyan","00F":"Blå","EE82EE":"Fiolett","A9A9A9":"Svak grå","FFA07A":"Rosa-oransje","FFA500":"Oransje","FFFF00":"Gul","00FF00":"Lime","AFEEEE":"Svak turkis","ADD8E6":"Lys Blå","DDA0DD":"Plomme","D3D3D3":"Lys grå","FFF0F5":"Svak lavendelrosa","FAEBD7":"Antikk-hvit","FFFFE0":"Lys gul","F0FFF0":"Honningmelon","F0FFFF":"Svakt asurblått","F0F8FF":"Svak cyan","E6E6FA":"Lavendel","FFF":"Hvit"},"more":"Flere farger...","panelTitle":"Farger","textColorTitle":"Tekstfarge"},"colordialog":{"clear":"Tøm","highlight":"Merk","options":"Alternativer for farge","selected":"Valgt","title":"Velg farge"},"templates":{"button":"Maler","emptyListMsg":"(Ingen maler definert)","insertOption":"Erstatt gjeldende innhold","options":"Alternativer for mal","selectPromptM
sg":"Velg malen du vil åpne i redigeringsverktøyet:","title":"Innholdsmaler"},"contextmenu":{"options":"Alternativer for høyreklikkmeny"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Tittel","cssClassInputLabel":"Stilark-klasser","edit":"Rediger Div","inlineStyleInputLabel":"Inlinestiler","langDirLTRLabel":"Venstre til høyre (VTH)","langDirLabel":"Språkretning","langDirRTLLabel":"Høyre til venstre (HTV)","languageCodeInputLabel":" Språkkode","remove":"Fjern Div","styleSelectLabel":"Stil","title":"Sett inn Div Container","toolbar":"Sett inn Div Container"},"toolbar":{"toolbarCollapse":"Skjul verktøylinje","toolbarExpand":"Vis verktøylinje","toolbarGroups":{"document":"Dokument","clipboard":"Utklippstavle/Angre","editing":"Redigering","forms":"Skjema","basicstyles":"Basisstiler","paragraph":"Avsnitt","links":"Lenker","insert":"Innsetting","styles":"Stiler","colors":"Farger","tools":"Verktøy"},"toolbars":"Verktøylinjer for editor"},"elementspath":{"eleLabel"
:"Element-sti","eleTitle":"%1 element"},"list":{"bulletedlist":"Legg til/Fjern punktmerket liste","numberedlist":"Legg til/Fjern nummerert liste"},"indent":{"indent":"Ãk innrykk","outdent":"Reduser innrykk"},"find":{"find":"Søk","findOptions":"Søkealternativer","findWhat":"Søk etter:","matchCase":"Skill mellom store og smÃ¥ bokstaver","matchCyclic":"Søk i hele dokumentet","matchWord":"Bare hele ord","notFoundMsg":"Fant ikke søketeksten.","replace":"Erstatt","replaceAll":"Erstatt alle","replaceSuccessMsg":"%1 tilfelle(r) erstattet.","replaceWith":"Erstatt med:","title":"Søk og erstatt"},"fakeobjects":{"anchor":"Anker","flash":"Flash-animasjon","hiddenfield":"Skjult felt","iframe":"IFrame","unknown":"Ukjent objekt"},"flash":{"access":"Scripttilgang","accessAlways":"Alltid","accessNever":"Aldri","accessSameDomain":"Samme domene","alignAbsBottom":"Abs bunn","alignAbsMiddle":"Abs midten","alignBaseline":"Bunnlinje","alignTextTop":"Tekst topp","bgcolor":"Bakgrunnsfarge","ch
kFull":"Tillat fullskjerm","chkLoop":"Loop","chkMenu":"Slå på Flash-meny","chkPlay":"Autospill","flashvars":"Variabler for flash","hSpace":"HMarg","properties":"Egenskaper for Flash-objekt","propertiesTab":"Egenskaper","quality":"Kvalitet","qualityAutoHigh":"Auto høy","qualityAutoLow":"Auto lav","qualityBest":"Best","qualityHigh":"Høy","qualityLow":"Lav","qualityMedium":"Medium","scale":"Skaler","scaleAll":"Vis alt","scaleFit":"Skaler til å passe","scaleNoBorder":"Ingen ramme","title":"Flash-egenskaper","vSpace":"VMarg","validateHSpace":"HMarg må være et tall.","validateSrc":"Vennligst skriv inn lenkens url.","validateVSpace":"VMarg må være et tall.","windowMode":"Vindumodus","windowModeOpaque":"Opaque","windowModeTransparent":"Gjennomsiktig","windowModeWindow":"Vindu"},"font":{"fontSize":{"label":"Størrelse","voiceLabel":"Font Størrelse","panelTitle":"Størrelse"},"label":"Skrift","panelTitle":"Skrift","voiceLabel":"Font"},"forms":{"button":{"title":"Egenskaper f
or knapp","text":"Tekst (verdi)","type":"Type","typeBtn":"Knapp","typeSbm":"Send","typeRst":"Nullstill"},"checkboxAndRadio":{"checkboxTitle":"Egenskaper for avmerkingsboks","radioTitle":"Egenskaper for alternativknapp","value":"Verdi","selected":"Valgt"},"form":{"title":"Egenskaper for skjema","menu":"Egenskaper for skjema","action":"Handling","method":"Metode","encoding":"Encoding"},"hidden":{"title":"Egenskaper for skjult felt","name":"Navn","value":"Verdi"},"select":{"title":"Egenskaper for rullegardinliste","selectInfo":"Info","opAvail":"Tilgjenglige alternativer","value":"Verdi","size":"Størrelse","lines":"Linjer","chkMulti":"Tillat flervalg","opText":"Tekst","opValue":"Verdi","btnAdd":"Legg til","btnModify":"Endre","btnUp":"Opp","btnDown":"Ned","btnSetValue":"Sett som valgt","btnDelete":"Slett"},"textarea":{"title":"Egenskaper for tekstområde","cols":"Kolonner","rows":"Rader"},"textfield":{"title":"Egenskaper for tekstfelt","name":"Navn","value":"Verdi","charWidth":"
Tegnbredde","maxChars":"Maks antall tegn","type":"Type","typeText":"Tekst","typePass":"Passord","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Avsnittsformat","tag_address":"Adresse","tag_div":"Normal (DIV)","tag_h1":"Overskrift 1","tag_h2":"Overskrift 2","tag_h3":"Overskrift 3","tag_h4":"Overskrift 4","tag_h5":"Overskrift 5","tag_h6":"Overskrift 6","tag_p":"Normal","tag_pre":"Formatert"},"horizontalrule":{"toolbar":"Sett inn horisontal linje"},"iframe":{"border":"Viss ramme rundt iframe","noUrl":"Vennligst skriv inn URL for iframe","scrolling":"Aktiver scrollefelt","title":"Egenskaper for IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Vennligst skriv bilde-urlen","alt":"Alternativ tekst","border":"Ramme","btnUpload":"Send det til serveren","button2Img":"Vil du endre den valgte bildeknappen til et vanlig bilde?","hSpace":"HMarg","img2Button":"Vil du endre det valgte bildet til en bildeknapp?
","infoTab":"Bildeinformasjon","linkTab":"Lenke","lockRatio":"Lås forhold","menu":"Bildeegenskaper","resetSize":"Tilbakestill størrelse","title":"Bildeegenskaper","titleButton":"Egenskaper for bildeknapp","upload":"Last opp","urlMissing":"Bildets adresse mangler.","vSpace":"VMarg","validateBorder":"Ramme må være et heltall.","validateHSpace":"HMarg må være et heltall.","validateVSpace":"VMarg må være et heltall."},"smiley":{"options":"Alternativer for smil","title":"Sett inn smil","toolbar":"Smil"},"justify":{"block":"Blokkjuster","center":"Midtstill","left":"Venstrejuster","right":"Høyrejuster"},"link":{"acccessKey":"Aksessknapp","advanced":"Avansert","advisoryContentType":"Type","advisoryTitle":"Tittel","anchor":{"toolbar":"Sett inn/Rediger anker","menu":"Egenskaper for anker","title":"Egenskaper for anker","name":"Ankernavn","errorName":"Vennligst skriv inn ankernavnet","remove":"Fjern anker"},"anchorId":"Element etter ID","anchorName":"Anker etter navn","charset
":"Lenket tegnsett","cssClasses":"Stilarkklasser","emailAddress":"E-postadresse","emailBody":"Melding","emailSubject":"Meldingsemne","id":"Id","info":"Lenkeinfo","langCode":"Språkkode","langDir":"Språkretning","langDirLTR":"Venstre til høyre (VTH)","langDirRTL":"Høyre til venstre (HTV)","menu":"Rediger lenke","name":"Navn","noAnchors":"(Ingen anker i dokumentet)","noEmail":"Vennligst skriv inn e-postadressen","noUrl":"Vennligst skriv inn lenkens URL","other":"<annen>","popupDependent":"Avhenging (Netscape)","popupFeatures":"Egenskaper for popup-vindu","popupFullScreen":"Fullskjerm (IE)","popupLeft":"Venstre posisjon","popupLocationBar":"Adresselinje","popupMenuBar":"Menylinje","popupResizable":"Skalerbar","popupScrollBars":"Scrollbar","popupStatusBar":"Statuslinje","popupToolbar":"Verktøylinje","popupTop":"Topp-posisjon","rel":"Relasjon (rel)","selectAnchor":"Velg et anker","styles":"Stil","tabIndex":"Tabindeks","target":"Mål","targetFrame":"<ramme>","targetFrameName":
"Målramme","targetPopup":"<popup-vindu>","targetPopupName":"Navn på popup-vindu","title":"Lenke","toAnchor":"Lenke til anker i teksten","toEmail":"E-post","toUrl":"URL","toolbar":"Sett inn/Rediger lenke","type":"Lenketype","unlink":"Fjern lenke","upload":"Last opp"},"liststyle":{"armenian":"Armensk nummerering","bulletedTitle":"Egenskaper for punktmerket liste","circle":"Sirkel","decimal":"Tall (1, 2, 3, osv.)","decimalLeadingZero":"Tall, med førstesiffer null (01, 02, 03, osv.)","disc":"Disk","georgian":"Georgisk nummerering (an, ban, gan, osv.)","lowerAlpha":"Alfabetisk, små (a, b, c, d, e, osv.)","lowerGreek":"Gresk, små (alpha, beta, gamma, osv.)","lowerRoman":"Romertall, små (i, ii, iii, iv, v, osv.)","none":"Ingen","notset":"<ikke satt>","numberedTitle":"Egenskaper for nummerert liste","square":"Firkant","start":"Start","type":"Type","upperAlpha":"Alfabetisk, store (A, B, C, D, E, osv.)","upperRoman":"Romertall, store (I, II, III, IV, V, osv.)","validateStartNumb
er":"Starten på listen må være et heltall."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimer","minimize":"Minimer"},"newpage":{"toolbar":"Ny side"},"pagebreak":{"alt":"Sideskift","toolbar":"Sett inn sideskift for utskrift"},"pastetext":{"button":"Lim inn som ren tekst","title":"Lim inn som ren tekst"},"pastefromword":{"confirmCleanup":"Teksten du limer inn ser ut til å være kopiert fra Word. Vil du renske den før du limer den inn?","error":"Det var ikke mulig å renske den innlimte teksten på grunn av en intern feil","title":"Lim inn fra Word","toolbar":"Lim inn fra Word"},"preview":{"preview":"Forhåndsvis"},"print":{"toolbar":"Skriv ut"},"removeformat":{"toolbar":"Fjern formatering"},"save":{"toolbar":"Lagre"},"selectall":{"toolbar":"Merk alt"},"showblocks":{"toolbar":"Vis blokker"},"sourcearea":{"toolbar":"Kilde"},"specialchar":{"options":"Alternativer for spesialtegn","title":"Velg spesialtegn","toolbar":"Sett inn spesialtegn"},"scay
t":{"about":"Om SCAYT","aboutTab":"Om","addWord":"Legg til ord","allCaps":"Ikke kontroller ord med kun store bokstaver","dic_create":"Opprett","dic_delete":"Slett","dic_field_name":"Ordboknavn","dic_info":"Brukerordboken lagres først i en informasjonskapsel på din maskin, men det er en begrensning på hvor mye som kan lagres her. Når ordboken blir for stor til å lagres i en informasjonskapsel, vil vi i stedet lagre ordboken på vår server. For å lagre din personlige ordbok på vår server, burde du velge et navn for ordboken din. Hvis du allerede har lagret en ordbok, vennligst skriv inn ordbokens navn og klikk på Gjenopprett-knappen.","dic_rename":"Gi nytt navn","dic_restore":"Gjenopprett","dictionariesTab":"Ordbøker","disable":"Slå av SCAYT","emptyDic":"Ordboknavn bør ikke være tom.","enable":"Slå på SCAYT","ignore":"Ignorer","ignoreAll":"Ignorer Alle","ignoreDomainNames":"Ikke kontroller domenenavn","langs":"Språk","languagesTab":"Språk","mixedCase":"Ikke k
ontroller ord med blandet små og store bokstaver","mixedWithDigits":"Ikke kontroller ord som inneholder tall","moreSuggestions":"Flere forslag","opera_title":"Ikke støttet av Opera","options":"Valg","optionsTab":"Valg","title":"Stavekontroll mens du skriver","toggle":"Veksle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"Stilformater","panelTitle1":"Blokkstiler","panelTitle2":"Inlinestiler","panelTitle3":"Objektstiler"},"table":{"border":"Rammestørrelse","caption":"Tittel","cell":{"menu":"Celle","insertBefore":"Sett inn celle før","insertAfter":"Sett inn celle etter","deleteCell":"Slett celler","merge":"Slå sammen celler","mergeRight":"Slå sammen høyre","mergeDown":"Slå sammen ned","splitHorizontal":"Del celle horisontalt","splitVertical":"Del celle vertikalt","title":"Celleegenskaper","cellType":"Celletype","rowSpan":"Radspenn","colSpan":"Kolonnespenn","wordWrap":"Tekstbrytning","hAlign":"Horisontal justering","vAlign":"Vertikal
justering","alignBaseline":"Grunnlinje","bgColor":"Bakgrunnsfarge","borderColor":"Rammefarge","data":"Data","header":"Overskrift","yes":"Ja","no":"Nei","invalidWidth":"Cellebredde må være et tall.","invalidHeight":"Cellehøyde må være et tall.","invalidRowSpan":"Radspenn må være et heltall.","invalidColSpan":"Kolonnespenn må være et heltall.","chooseColor":"Velg"},"cellPad":"Cellepolstring","cellSpace":"Cellemarg","column":{"menu":"Kolonne","insertBefore":"Sett inn kolonne før","insertAfter":"Sett inn kolonne etter","deleteColumn":"Slett kolonner"},"columns":"Kolonner","deleteTable":"Slett tabell","headers":"Overskrifter","headersBoth":"Begge","headersColumn":"Første kolonne","headersNone":"Ingen","headersRow":"Første rad","invalidBorder":"Rammestørrelse må være et tall.","invalidCellPadding":"Cellepolstring må være et positivt tall.","invalidCellSpacing":"Cellemarg må være et positivt tall.","invalidCols":"Antall kolonner må være et tall større enn 0.",
"invalidHeight":"Tabellhøyde må være et tall.","invalidRows":"Antall rader må være et tall større enn 0.","invalidWidth":"Tabellbredde må være et tall.","menu":"Egenskaper for tabell","row":{"menu":"Rader","insertBefore":"Sett inn rad før","insertAfter":"Sett inn rad etter","deleteRow":"Slett rader"},"rows":"Rader","summary":"Sammendrag","title":"Egenskaper for tabell","toolbar":"Tabell","widthPc":"prosent","widthPx":"piksler","widthUnit":"Bredde-enhet"},"undo":{"redo":"Gjør om","undo":"Angre"},"wsc":{"btnIgnore":"Ignorer","btnIgnoreAll":"Ignorer alle","btnReplace":"Erstatt","btnReplaceAll":"Erstatt alle","btnUndo":"Angre","changeTo":"Endre til","errorLoading":"Feil under lasting av applikasjonstjenestetjener: %s.","ieSpellDownload":"Stavekontroll er ikke installert. Vil du laste den ned nå?","manyChanges":"Stavekontroll fullført: %1 ord endret","noChanges":"Stavekontroll fullført: ingen ord endret","noMispell":"Stavekontroll fullført: ingen feilstavinger funne
t","noSuggestions":"- Ingen forslag -","notAvailable":"Beklager, tjenesten er utilgjenglig nå.","notInDic":"Ikke i ordboken","oneChange":"Stavekontroll fullført: Ett ord endret","progress":"Stavekontroll pågår...","title":"Stavekontroll","toolbar":"Stavekontroll"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/pl.js b/share/static/RichText/lang/pl.js
index 6dc1b37..9b04cff 100644
--- a/share/static/RichText/lang/pl.js
+++ b/share/static/RichText/lang/pl.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.pl={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'ŹródÅo dokumentu',newPage:'Nowa strona',save:'Zapisz',preview:'PodglÄ
d',cut:'Wytnij',copy:'Kopiuj',paste:'Wklej',print:'Drukuj',underline:'PodkreÅlenie',bold:'Pogrubienie',italic:'Kursywa',selectAll:'Zaznacz wszystko',removeFormat:'UsuÅ formatowanie',strike:'PrzekreÅlenie',subscript:'Indeks dolny',superscript:'Indeks górny',horizontalrule:'Wstaw poziomÄ
liniÄ',pagebreak:'Wstaw odstÄp',unlink:'UsuÅ hiperÅÄ
cze',undo:'Cofnij',redo:'Ponów',common:{browseServer:'PrzeglÄ
daj',url:'Adres URL',protocol:'ProtokóÅ',upload:'WyÅlij',uploadSubmit:'WyÅlij',image:'Obrazek',flash:'Flash',form:'Formularz',checkbox:'Pole wyboru (checkbox)',radio:'Pole wyboru (radio)',textField:'Pole tekstowe',textarea:'Obszar tekstowy',hiddenField:'Pole ukryte',button:'Przycisk',select:'Lista wyboru',imageButton:'Przycisk-obrazek',notSet:'<nie ustawione>'
,id:'Id',name:'Nazwa',langDir:'Kierunek tekstu',langDirLtr:'Od lewej do prawej (LTR)',langDirRtl:'Od prawej do lewej (RTL)',langCode:'Kod jÄzyka',longDescr:'DÅugi opis hiperÅÄ
cza',cssClass:'Nazwa klasy CSS',advisoryTitle:'Opis obiektu docelowego',cssStyle:'Styl',ok:'OK',cancel:'Anuluj',close:'Close',preview:'Preview',generalTab:'Ogólne',advancedTab:'Zaawansowane',validateNumberFailed:'Ta wartoÅÄ nie jest liczbÄ
.',confirmNewPage:'Wszystkie niezapisane zmiany zostanÄ
utracone. Czy na pewno wczytaÄ nowÄ
stronÄ?',confirmCancel:'Pewne opcje zostaÅy zmienione. Czy na pewno zamknÄ
Ä okno dialogowe?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, niedostÄpne</span>'},contextmenu:{option
s:'Context Menu Options'},specialChar:{toolbar:'Wstaw znak specjalny',title:'Wybierz znak specjalny',options:'Special Character Options'},link:{toolbar:'Wstaw/edytuj hiperÅÄ
cze',other:'<inny>',menu:'Edytuj hiperÅÄ
cze',title:'HiperÅÄ
cze',info:'Informacje ',target:'Cel',upload:'WyÅlij',advanced:'Zaawansowane',type:'Typ hiperÅÄ
cza',toUrl:'URL',toAnchor:'OdnoÅnik wewnÄ
trz strony',toEmail:'Adres e-mail',targetFrame:'<ramka>',targetPopup:'<wyskakujÄ
ce okno>',targetFrameName:'Nazwa Ramki Docelowej',targetPopupName:'Nazwa wyskakujÄ
cego okna',popupFeatures:'WÅaÅciwoÅci wyskakujÄ
cego okna',popupResizable:'Skalowalny',popupStatusBar:'Pasek statusu',popupLocationBar:'Pasek adresu',popupToolbar:'Pasek narzÄdzi',popupMenuBar:'Pasek menu',popupFullScreen:'PeÅny ekran (IE)',popupScrollBars:'Paski przewijania',popupDependent:'Okno zależne (Netscape)',popupWidth:'SzerokoÅÄ',popupLeft:'Pozycja w poziomie',popupHeight:'WysokoÅÄ',popupTop:'Pozycja w pionie',id:'Id',langDi
r:'Kierunek tekstu',langDirLTR:'Od lewej do prawej (LTR)',langDirRTL:'Od prawej do lewej (RTL)',acccessKey:'Klawisz dostÄpu',name:'Nazwa',langCode:'Kierunek tekstu',tabIndex:'Indeks tabeli',advisoryTitle:'Opis obiektu docelowego',advisoryContentType:'Typ MIME obiektu docelowego',cssClasses:'Nazwa klasy CSS',charset:'Kodowanie znaków obiektu docelowego',styles:'Styl',selectAnchor:'Wybierz etykietÄ',anchorName:'Wg etykiety',anchorId:'Wg identyfikatora elementu',emailAddress:'Adres e-mail',emailSubject:'Temat',emailBody:'TreÅÄ',noAnchors:'(W dokumencie nie zdefiniowano żadnych etykiet)',noUrl:'Podaj adres URL',noEmail:'Podaj adres e-mail'},anchor:{toolbar:'Wstaw/edytuj kotwicÄ',menu:'WÅaÅciwoÅci kotwicy',title:'WÅaÅciwoÅci kotwicy',name:'Nazwa kotwicy',errorName:'Wpisz nazwÄ kotwicy'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circ
le:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Znajdź i zamieÅ',find:'Znajdź',replace:'ZamieÅ',findWhat:'Znajdź:',replaceWith:'ZastÄ
p przez:',notFoundMsg:'Nie znaleziono szukanego hasÅa.',matchCase:'UwzglÄdnij wielkoÅÄ liter',matchWord:'CaÅe sÅowa',matchCyclic:'Cykliczne dopasowanie',replaceAll:'ZastÄ
p wszystko',replaceSuccessMsg:'%1 wystÄ
pieÅ zastÄ
pionych.'},table:{toolbar:'Tabela',title:'WÅaÅciwoÅci tabeli',menu:'WÅaÅciwoÅci tabeli',deleteTable:'UsuÅ tabelÄ',rows:'Liczba wierszy',column
s:'Liczba kolumn',border:'GruboÅÄ ramki',align:'Wyrównanie',alignLeft:'Do lewej',alignCenter:'Do Årodka',alignRight:'Do prawej',width:'SzerokoÅÄ',widthPx:'piksele',widthPc:'%',widthUnit:'width unit',height:'WysokoÅÄ',cellSpace:'OdstÄp pomiÄdzy komórkami',cellPad:'Margines wewnÄtrzny komórek',caption:'TytuÅ',summary:'Podsumowanie',headers:'NagÅowki',headersNone:'Brak',headersColumn:'Pierwsza kolumna',headersRow:'Pierwszy wiersz',headersBoth:'Oba',invalidRows:'Liczba wierszy musi byÄ liczbÄ
wiÄkszÄ
niż 0.',invalidCols:'Liczba kolumn musi byÄ liczbÄ
wiÄkszÄ
niż 0.',invalidBorder:'Liczba obramowaÅ musi byÄ liczbÄ
.',invalidWidth:'SzerokoÅÄ tabeli musi byÄ liczbÄ
.',invalidHeight:'WysokoÅÄ tabeli musi byÄ liczbÄ
.',invalidCellSpacing:'OdstÄp komórek musi byÄ liczbÄ
.',invalidCellPadding:'DopeÅnienie komórek musi byÄ liczbÄ
.',cell:{menu:'Komórka',insertBefore:'Wstaw komórkÄ z lewej',insertAfter:'Wstaw komórkÄ z prawej',deleteCell:'UsuÅ
komórki',merge:'PoÅÄ
cz komórki',mergeRight:'PoÅÄ
cz z komórkÄ
z prawej',mergeDown:'PoÅÄ
cz z komórkÄ
poniżej',splitHorizontal:'Podziel komórkÄ poziomo',splitVertical:'Podziel komórkÄ pionowo',title:'WÅaÅciwoÅci komórki',cellType:'Typ komórki',rowSpan:'Scalenie wierszy',colSpan:'Scalenie komórek',wordWrap:'Zawijanie sÅów',hAlign:'Wyrównanie poziome',vAlign:'Wyrównanie pionowe',alignTop:'Góra',alignMiddle:'Årodek',alignBottom:'DóÅ',alignBaseline:'Linia bazowa',bgColor:'Kolor tÅa',borderColor:'Kolor obramowania',data:'Dane',header:'NagÅowek',yes:'Tak',no:'Nie',invalidWidth:'SzerokoÅÄ komórki musi byÄ liczbÄ
.',invalidHeight:'WysokoÅÄ komórki musi byÄ liczbÄ
.',invalidRowSpan:'Scalenie wierszy musi byÄ liczbÄ
caÅkowitÄ
.',invalidColSpan:'Scalenie komórek musi byÄ liczbÄ
caÅkowitÄ
.',chooseColor:'Wybierz'},row:{menu:'Wiersz',insertBefore:'Wstaw wiersz powyżej',insertAfter:'Wstaw wiersz poniżej',deleteRow:'UsuŠwiersze'},column:{me
nu:'Kolumna',insertBefore:'Wstaw kolumnÄ z lewej',insertAfter:'Wstaw kolumnÄ z prawej',deleteColumn:'UsuÅ kolumny'}},button:{title:'WÅaÅciwoÅci przycisku',text:'Tekst (WartoÅÄ)',type:'Typ',typeBtn:'Przycisk',typeSbm:'WyÅlij',typeRst:'Wyzeruj'},checkboxAndRadio:{checkboxTitle:'WÅaÅciwoÅci pola wyboru (checkbox)',radioTitle:'WÅaÅciwoÅci pola wyboru (radio)',value:'WartoÅÄ',selected:'Zaznaczone'},form:{title:'WÅaÅciwoÅci formularza',menu:'WÅaÅciwoÅci formularza',action:'Akcja',method:'Metoda',encoding:'Kodowanie'},select:{title:'WÅaÅciwoÅci listy wyboru',selectInfo:'Informacje',opAvail:'DostÄpne opcje',value:'WartoÅÄ',size:'Rozmiar',lines:'linii',chkMulti:'Wielokrotny wybór',opText:'Tekst',opValue:'WartoÅÄ',btnAdd:'Dodaj',btnModify:'ZmieÅ',btnUp:'Do góry',btnDown:'Do doÅu',btnSetValue:'Ustaw wartoÅÄ zaznaczonÄ
',btnDelete:'UsuÅ'},textarea:{title:'WÅaÅciwoÅci obszaru tekstowego',cols:'Kolumnu',rows:'Wiersze'},textfield:{title:'WÅaÅciwoÅ
ci pola tekstowego',name:'Nazwa',value:'WartoÅÄ',charWidth:'SzerokoÅÄ w znakach',maxChars:'Max. szerokoÅÄ',type:'Typ',typeText:'Tekst',typePass:'HasÅo'},hidden:{title:'WÅaÅciwoÅci pola ukrytego',name:'Nazwa',value:'WartoÅÄ'},image:{title:'WÅaÅciwoÅci obrazka',titleButton:'WÅaÅciwoÅci przycisku obrazka',menu:'WÅaÅciwoÅci obrazka',infoTab:'Informacje o obrazku',btnUpload:'WyÅlij',upload:'WyÅlij',alt:'Tekst zastÄpczy',width:'SzerokoÅÄ',height:'WysokoÅÄ',lockRatio:'Zablokuj proporcje',unlockRatio:'Unlock Ratio',resetSize:'PrzywrÃ³Ä rozmiar',border:'Ramka',hSpace:'OdstÄp poziomy',vSpace:'OdstÄp pionowy',align:'Wyrównaj',alignLeft:'Do lewej',alignRight:'Do prawej',alertUrl:'Podaj adres obrazka.',linkTab:'HiperÅÄ
cze',button2Img:'Czy chcesz przekonwertowaÄ zaznaczony przycisk graficzny do zwykÅego obrazka?',img2Button:'Czy chcesz przekonwertowaÄ zaznaczony obrazek do przycisku graficznego?',urlMissing:'Podaj adres URL obrazka.',validateWidth:'Wi
dth must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'WÅaÅciwoÅci elementu Flash',propertiesTab:'WÅaÅciwoÅci',title:'WÅaÅciwoÅci elementu Flash',chkPlay:'Autoodtwarzanie',chkLoop:'PÄtla',chkMenu:'WÅÄ
cz menu',chkFull:'DopuÅÄ peÅny ekran',scale:'Skaluj',scaleAll:'Pokaż wszystko',scaleNoBorder:'Bez Ramki',scaleFit:'DokÅadne dopasowanie',access:'DostÄp skryptów',accessAlways:'Zawsze',accessSameDomain:'Ta sama domena',accessNever:'Nigdy',align:'Wyrównaj',alignLeft:'Do lewej',alignAbsBottom:'Do doÅu',alignAbsMiddle:'Do Årodka w pionie',alignBaseline:'Do linii bazowej',alignBottom:'Do doÅu',alignMiddle:'Do Årodka',alignRight:'Do prawej',alignTextTop:'Do góry tekstu',alignTop:'Do góry',quality:'JakoÅÄ',qualityBest:'Najlepsza',qualityHigh:'Wysoka',qualityAutoHigh:'Auto wys
oka',qualityMedium:'Årednia',qualityAutoLow:'Auto niska',qualityLow:'Niska',windowModeWindow:'Okno',windowModeOpaque:'Nieprzeźroczyste',windowModeTransparent:'Przeźroczyste',windowMode:'Tryb okna',flashvars:'Zmienne dla Flasha',bgcolor:'Kolor tÅa',width:'SzerokoÅÄ',height:'WysokoÅÄ',hSpace:'OdstÄp poziomy',vSpace:'OdstÄp pionowy',validateSrc:'Podaj adres URL',validateWidth:'SzerokoÅÄ musi byÄ liczbÄ
.',validateHeight:'WysokoÅÄ musi byÄ liczbÄ
.',validateHSpace:'OdstÄp poziomy musi byÄ liczbÄ
.',validateVSpace:'OdstÄp pionowy musi byÄ liczbÄ
.'},spellCheck:{toolbar:'Sprawdź pisowniÄ',title:'Sprawdź pisowniÄ',notAvailable:'Przepraszamy, ale usÅuga jest obecnie niedostÄpna.',errorLoading:'BÅÄ
d wczytywania hosta aplikacji usÅugi: %s.',notInDic:'SÅowa nie ma w sÅowniku',changeTo:'ZmieÅ na',btnIgnore:'Ignoruj',btnIgnoreAll:'Ignoruj wszystkie',btnReplace:'ZmieÅ',btnReplaceAll:'ZmieÅ wszystkie',btnUndo:'Cofnij',noSuggestions:'- Brak sugestii -',prog
ress:'Trwa sprawdzanie...',noMispell:'Sprawdzanie zakoÅczone: nie znaleziono bÅÄdów',noChanges:'Sprawdzanie zakoÅczone: nie zmieniono żadnego sÅowa',oneChange:'Sprawdzanie zakoÅczone: zmieniono jedno sÅowo',manyChanges:'Sprawdzanie zakoÅczone: zmieniono %l sÅów',ieSpellDownload:'SÅownik nie jest zainstalowany. Chcesz go ÅciÄ
gnÄ
Ä?'},smiley:{toolbar:'Emotikona',title:'Wstaw emotikonÄ',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'element %1'},numberedlist:'Lista numerowana',bulletedlist:'Lista wypunktowana',indent:'ZwiÄksz wciÄcie',outdent:'Zmniejsz wciÄcie',justify:{left:'Wyrównaj do lewej',center:'Wyrównaj do Årodka',right:'Wyrównaj do prawej',block:'Wyrównaj do lewej i prawej'},blockquote:'Cytat',clipboard:{title:'Wklej',cutError:'Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.',copyError:'Ustawienia bezpieczeÅstwa Twojej przeglÄ
da
rki nie pozwalajÄ
na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.',pasteMsg:'ProszÄ wkleiÄ w poniższym polu używajÄ
c klawiaturowego skrótu (<STRONG>Ctrl/Cmd+V</STRONG>) i kliknÄ
Ä <STRONG>OK</STRONG>.',securityMsg:'Zabezpieczenia przeglÄ
darki uniemożliwiajÄ
wklejenie danych bezpoÅrednio do edytora. ProszÄ dane wkleiÄ ponownie w tym okienku.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'Tekst, który chcesz wkleiÄ, prawdopodobnie pochodzi z programu Word. Czy chcesz go wyczyÅcic przed wklejeniem?',toolbar:'Wklej z Worda',title:'Wklej z Worda',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Wklej jako czysty tekst',title:'Wklej jako czysty tekst'},templates:{button:'Szablony',title:'Szablony zawartoÅci',options:'Template Options',insertOption:'ZastÄ
p aktualnÄ
zawartoÅÄ',selectPromptMsg:'Wybierz szablon do otwarcia w edytorze<br>(obecna zawartoÅÄ okna edytora zostanie
utracona):',emptyListMsg:'(Brak zdefiniowanych szablonów)'},showBlocks:'Pokaż bloki',stylesCombo:{label:'Styl',panelTitle:'Formatting Styles',panelTitle1:'Style blokowe',panelTitle2:'Style liniowe',panelTitle3:'Style obiektowe'},format:{label:'Format',panelTitle:'Format',tag_p:'Normalny',tag_pre:'Tekst sformatowany',tag_address:'Adres',tag_h1:'NagÅówek 1',tag_h2:'NagÅówek 2',tag_h3:'NagÅówek 3',tag_h4:'NagÅówek 4',tag_h5:'NagÅówek 5',tag_h6:'NagÅówek 6',tag_div:'Normalny (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Czcionka',voiceLabel:'Czcionka',panelTitle:'Czcionka'},fontSize:
{label:'Rozmiar',voiceLabel:'Rozmiar czcionki',panelTitle:'Rozmiar'},colorButton:{textColorTitle:'Kolor tekstu',bgColorTitle:'Kolor tÅa',panelTitle:'Colors',auto:'Automatycznie',more:'WiÄcej kolorów...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Sprawdź pisowniÄ podczas pisania (
SCAYT)',opera_title:'Not supported by Opera',enable:'WÅÄ
cz SCAYT',disable:'WyÅÄ
cz SCAYT',about:'Na temat SCAYT',toggle:'PrzeÅÄ
cz SCAYT',options:'Opcje',langs:'JÄzyki',moreSuggestions:'WiÄcej sugestii',ignore:'Ignoruj',ignoreAll:'Ignoruj wszystkie',addWord:'Dodaj sÅowo',emptyDic:'Nazwa sÅownika nie może byÄ pusta.',optionsTab:'Opcje',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'JÄzyki',dictionariesTab:'SÅowniki',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dicti
onary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Na temat SCAYT'},about:{title:'Na temat CKEditor',dlgTitle:'Na temat CKEditor',moreInfo:'Informacje na temat licencji można znaleÅºÄ na naszej stronie:',copy:'Copyright © $1. Wszelkie prawa zastrzeżone.'},maximize:'Maksymalizuj',minimize:'Minimalizuj',fakeobjects:{anchor:'Kotwica',flash:'Animacja Flash',div:'Separator stron',unknown:'Nieznany obiekt'},resize:'PrzeciÄ
gnij, aby zmieniÄ rozmiar',colordialog:{title:'Wybierz kolor',options:'Color Options',highlight:'Zaznacz',selected:'Wybrany',clear:'WyczyÅÄ'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['pl']={"dir":"ltr","editor":"Edytor tekstu sformatowanego","common":{"editorHelp":"W celu uzyskania pomocy naciÅnij ALT 0","browseServer":"PrzeglÄ
daj","url":"Adres URL","protocol":"ProtokóÅ","upload":"WyÅlij","uploadSubmit":"WyÅlij","image":"Obrazek","flash":"Flash","form":"Formularz","checkbox":"Pole wyboru (checkbox)","radio":"Przycisk opcji (radio)","textField":"Pole tekstowe","textarea":"Obszar tekstowy","hiddenField":"Pole ukryte","button":"Przycisk","select":"Lista wyboru","imageButton":"Przycisk graficzny","notSet":"<nie ustawiono>","id":"Id","name":"Nazwa","langDir":"Kierunek tekstu","langDirLtr":"Od lewej do prawej (LTR)","langDirRtl":"Od prawej do lewej (RTL)","langCode":"Kod jÄzyka","longDescr":"Adres URL dÅugiego opisu","cssClass":"Nazwa klasy CSS","advisoryTitle":"Opis obiektu docelowego","cssStyle":"Styl","ok":"OK","cancel":"Anuluj","close":"Zamknij","preview":"PodglÄ
d","resize":"PrzeciÄ
gnij, aby zmieniÄ rozmiar","generalTab":"Ogólne",
"advancedTab":"Zaawansowane","validateNumberFailed":"Ta wartoÅÄ nie jest liczbÄ
.","confirmNewPage":"Wszystkie niezapisane zmiany zostanÄ
utracone. Czy na pewno wczytaÄ nowÄ
stronÄ?","confirmCancel":"Pewne opcje zostaÅy zmienione. Czy na pewno zamknÄ
Ä okno dialogowe?","options":"Opcje","target":"Obiekt docelowy","targetNew":"Nowe okno (_blank)","targetTop":"Okno najwyżej w hierarchii (_top)","targetSelf":"To samo okno (_self)","targetParent":"Okno nadrzÄdne (_parent)","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","styles":"Style","cssClasses":"Klasy arkusza stylów","width":"SzerokoÅÄ","height":"WysokoÅÄ","align":"Wyrównaj","alignLeft":"Do lewej","alignRight":"Do prawej","alignCenter":"Do Årodka","alignTop":"Do góry","alignMiddle":"Do Årodka","alignBottom":"Do doÅu","invalidValue":"NieprawidÅowa wartoÅÄ.","invalidHeight":"WysokoÅÄ musi byÄ liczbÄ
.","invalidWidth":"SzerokoÅÄ musi byÄ liczbÄ
.","invalidCssLength":
"WartoÅÄ podana dla pola \"%1\" musi byÄ liczbÄ
dodatniÄ
bez jednostki lub z poprawnÄ
jednostkÄ
dÅugoÅci zgodnÄ
z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","invalidHtmlLength":"WartoÅÄ podana dla pola \"%1\" musi byÄ liczbÄ
dodatniÄ
bez jednostki lub z poprawnÄ
jednostkÄ
dÅugoÅci zgodnÄ
z HTML (px lub %).","invalidInlineStyle":"WartoÅÄ podana dla stylu musi skÅadaÄ siÄ z jednej lub wiÄkszej liczby krotek w formacie \"nazwa : wartoÅÄ\", rozdzielonych Årednikami.","cssLengthTooltip":"Wpisz liczbÄ dla wartoÅci w pikselach lub liczbÄ wraz z jednostkÄ
dÅugoÅci zgodnÄ
z CSS (px, %, in, cm, mm, em, ex, pt lub pc).","unavailable":"%1<span class=\"cke_accessibility\">, niedostÄpne</span>"},"about":{"copy":"Copyright © $1. Wszelkie prawa zastrzeżone.","dlgTitle":"Informacje o programie CKEditor","help":"Pomoc znajdziesz w $1.","moreInfo":"Informacje na temat licencji można znaleÅºÄ na naszej stronie:","title":"Informacje o programie CKEd
itor","userGuide":"podrÄczniku użytkownika programu CKEditor"},"basicstyles":{"bold":"Pogrubienie","italic":"Kursywa","strike":"PrzekreÅlenie","subscript":"Indeks dolny","superscript":"Indeks górny","underline":"PodkreÅlenie"},"bidi":{"ltr":"Kierunek tekstu od lewej strony do prawej","rtl":"Kierunek tekstu od prawej strony do lewej"},"blockquote":{"toolbar":"Cytat"},"clipboard":{"copy":"Kopiuj","copyError":"Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne kopiowanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+C.","cut":"Wytnij","cutError":"Ustawienia bezpieczeÅstwa Twojej przeglÄ
darki nie pozwalajÄ
na automatyczne wycinanie tekstu. Użyj skrótu klawiszowego Ctrl/Cmd+X.","paste":"Wklej","pasteArea":"Obszar wklejania","pasteMsg":"Wklej tekst w poniższym polu, używajÄ
c skrótu klawiaturowego (<STRONG>Ctrl/Cmd+V</STRONG>), i kliknij <STRONG>OK</STRONG>.","securityMsg":"Zabezpieczenia przeglÄ
darki uniemożliwiajÄ
wklejenie danych bezpoÅ
rednio do edytora. ProszÄ ponownie wkleiÄ dane w tym oknie.","title":"Wklej"},"colorbutton":{"auto":"Automatycznie","bgColorTitle":"Kolor tÅa","colors":{"000":"Czarny","800000":"Kasztanowy","8B4513":"Czekoladowy","2F4F4F":"Ciemnografitowy","008080":"Morski","000080":"Granatowy","4B0082":"Indygo","696969":"Ciemnoszary","B22222":"CzerwieŠżelazowa","A52A2A":"BrÄ
zowy","DAA520":"CiemnozÅoty","006400":"Ciemnozielony","40E0D0":"Turkusowy","0000CD":"Ciemnoniebieski","800080":"Purpurowy","808080":"Szary","F00":"Czerwony","FF8C00":"CiemnopomaraÅczowy","FFD700":"ZÅoty","008000":"Zielony","0FF":"Cyjan","00F":"Niebieski","EE82EE":"Fioletowy","A9A9A9":"Przygaszony szary","FFA07A":"Åososiowy","FFA500":"PomaraÅczowy","FFFF00":"ŻóÅty","00FF00":"Limonkowy","AFEEEE":"Bladoturkusowy","ADD8E6":"Jasnoniebieski","DDA0DD":"Åliwkowy","D3D3D3":"Jasnoszary","FFF0F5":"Jasnolawendowy","FAEBD7":"KremowobiaÅy","FFFFE0":"JasnożóÅty","F0FFF0":"Bladozielony","F0FFFF":"Jasnolazurowy","F0F
8FF":"JasnobÅÄkitny","E6E6FA":"Lawendowy","FFF":"BiaÅy"},"more":"WiÄcej kolorów...","panelTitle":"Kolory","textColorTitle":"Kolor tekstu"},"colordialog":{"clear":"WyczyÅÄ","highlight":"Zaznacz","options":"Opcje koloru","selected":"Wybrany","title":"Wybierz kolor"},"templates":{"button":"Szablony","emptyListMsg":"(Brak zdefiniowanych szablonów)","insertOption":"ZastÄ
p obecnÄ
zawartoÅÄ","options":"Opcje szablonów","selectPromptMsg":"Wybierz szablon do otwarcia w edytorze<br>(obecna zawartoÅÄ okna edytora zostanie utracona):","title":"Szablony zawartoÅci"},"contextmenu":{"options":"Opcje menu kontekstowego"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Opis obiektu docelowego","cssClassInputLabel":"Klasy arkusza stylów","edit":"Edytuj pojemnik Div","inlineStyleInputLabel":"Style liniowe","langDirLTRLabel":"Od lewej do prawej (LTR)","langDirLabel":"Kierunek tekstu","langDirRTLLabel":"Od prawej do lewej (RTL)","languageCodeInputLabel":"Kod jÄzyka","remo
ve":"UsuÅ pojemnik Div","styleSelectLabel":"Styl","title":"Utwórz pojemnik Div","toolbar":"Utwórz pojemnik Div"},"toolbar":{"toolbarCollapse":"ZwiÅ pasek narzÄdzi","toolbarExpand":"RozwiÅ pasek narzÄdzi","toolbarGroups":{"document":"Dokument","clipboard":"Schowek/Wstecz","editing":"Edycja","forms":"Formularze","basicstyles":"Style podstawowe","paragraph":"Akapit","links":"HiperÅÄ
cza","insert":"Wstawianie","styles":"Style","colors":"Kolory","tools":"NarzÄdzia"},"toolbars":"Paski narzÄdzi edytora"},"elementspath":{"eleLabel":"Åcieżka elementów","eleTitle":"element %1"},"list":{"bulletedlist":"Lista wypunktowana","numberedlist":"Lista numerowana"},"indent":{"indent":"ZwiÄksz wciÄcie","outdent":"Zmniejsz wciÄcie"},"find":{"find":"Znajdź","findOptions":"Opcje wyszukiwania","findWhat":"Znajdź:","matchCase":"UwzglÄdnij wielkoÅÄ liter","matchCyclic":"Cykliczne dopasowanie","matchWord":"CaÅe sÅowa","notFoundMsg":"Nie znaleziono szukanego hasÅa.","replace":"Za
mieÅ","replaceAll":"ZamieÅ wszystko","replaceSuccessMsg":"%1 wystÄ
pieÅ zastÄ
pionych.","replaceWith":"ZastÄ
p przez:","title":"Znajdź i zamieÅ"},"fakeobjects":{"anchor":"Kotwica","flash":"Animacja Flash","hiddenfield":"Pole ukryte","iframe":"IFrame","unknown":"Nieznany obiekt"},"flash":{"access":"DostÄp skryptów","accessAlways":"Zawsze","accessNever":"Nigdy","accessSameDomain":"Ta sama domena","alignAbsBottom":"Do doÅu","alignAbsMiddle":"Do Årodka w pionie","alignBaseline":"Do linii bazowej","alignTextTop":"Do góry tekstu","bgcolor":"Kolor tÅa","chkFull":"Zezwól na peÅny ekran","chkLoop":"PÄtla","chkMenu":"WÅÄ
cz menu","chkPlay":"Autoodtwarzanie","flashvars":"Zmienne obiektu Flash","hSpace":"OdstÄp poziomy","properties":"WÅaÅciwoÅci obiektu Flash","propertiesTab":"WÅaÅciwoÅci","quality":"JakoÅÄ","qualityAutoHigh":"Auto wysoka","qualityAutoLow":"Auto niska","qualityBest":"Najlepsza","qualityHigh":"Wysoka","qualityLow":"Niska","qualityMedium":"Årednia
","scale":"Skaluj","scaleAll":"Pokaż wszystko","scaleFit":"DokÅadne dopasowanie","scaleNoBorder":"Bez obramowania","title":"WÅaÅciwoÅci obiektu Flash","vSpace":"OdstÄp pionowy","validateHSpace":"OdstÄp poziomy musi byÄ liczbÄ
.","validateSrc":"Podaj adres URL","validateVSpace":"OdstÄp pionowy musi byÄ liczbÄ
.","windowMode":"Tryb okna","windowModeOpaque":"Nieprzezroczyste","windowModeTransparent":"Przezroczyste","windowModeWindow":"Okno"},"font":{"fontSize":{"label":"Rozmiar","voiceLabel":"Rozmiar czcionki","panelTitle":"Rozmiar"},"label":"Czcionka","panelTitle":"Czcionka","voiceLabel":"Czcionka"},"forms":{"button":{"title":"WÅaÅciwoÅci przycisku","text":"Tekst (WartoÅÄ)","type":"Typ","typeBtn":"Przycisk","typeSbm":"WyÅlij","typeRst":"WyczyÅÄ"},"checkboxAndRadio":{"checkboxTitle":"WÅaÅciwoÅci pola wyboru (checkbox)","radioTitle":"WÅaÅciwoÅci przycisku opcji (radio)","value":"WartoÅÄ","selected":"Zaznaczone"},"form":{"title":"WÅaÅciwoÅci formularz
a","menu":"WÅaÅciwoÅci formularza","action":"Akcja","method":"Metoda","encoding":"Kodowanie"},"hidden":{"title":"WÅaÅciwoÅci pola ukrytego","name":"Nazwa","value":"WartoÅÄ"},"select":{"title":"WÅaÅciwoÅci listy wyboru","selectInfo":"Informacje","opAvail":"DostÄpne opcje","value":"WartoÅÄ","size":"Rozmiar","lines":"wierszy","chkMulti":"Wielokrotny wybór","opText":"Tekst","opValue":"WartoÅÄ","btnAdd":"Dodaj","btnModify":"ZmieÅ","btnUp":"Do góry","btnDown":"Do doÅu","btnSetValue":"Ustaw jako zaznaczonÄ
","btnDelete":"UsuÅ"},"textarea":{"title":"WÅaÅciwoÅci obszaru tekstowego","cols":"Liczba kolumn","rows":"Liczba wierszy"},"textfield":{"title":"WÅaÅciwoÅci pola tekstowego","name":"Nazwa","value":"WartoÅÄ","charWidth":"SzerokoÅÄ w znakach","maxChars":"SzerokoÅÄ maksymalna","type":"Typ","typeText":"Tekst","typePass":"HasÅo","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTi
tle":"Format","tag_address":"Adres","tag_div":"Normalny (DIV)","tag_h1":"NagÅówek 1","tag_h2":"NagÅówek 2","tag_h3":"NagÅówek 3","tag_h4":"NagÅówek 4","tag_h5":"NagÅówek 5","tag_h6":"NagÅówek 6","tag_p":"Normalny","tag_pre":"Tekst sformatowany"},"horizontalrule":{"toolbar":"Wstaw poziomÄ
liniÄ"},"iframe":{"border":"Pokaż obramowanie obiektu IFrame","noUrl":"Podaj adres URL elementu IFrame","scrolling":"WÅÄ
cz paski przewijania","title":"WÅaÅciwoÅci elementu IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Podaj adres obrazka.","alt":"Tekst zastÄpczy","border":"Obramowanie","btnUpload":"WyÅlij","button2Img":"Czy chcesz przekonwertowaÄ zaznaczony przycisk graficzny do zwykÅego obrazka?","hSpace":"OdstÄp poziomy","img2Button":"Czy chcesz przekonwertowaÄ zaznaczony obrazek do przycisku graficznego?","infoTab":"Informacje o obrazku","linkTab":"HiperÅÄ
cze","lockRatio":"Zablokuj proporcje","menu":"WÅaÅciwoÅci obrazka","resetSize":"PrzywrÃ³Ä rozmiar","
title":"WÅaÅciwoÅci obrazka","titleButton":"WÅaÅciwoÅci przycisku graficznego","upload":"WyÅlij","urlMissing":"Podaj adres URL obrazka.","vSpace":"OdstÄp pionowy","validateBorder":"WartoÅÄ obramowania musi byÄ liczbÄ
caÅkowitÄ
.","validateHSpace":"WartoÅÄ odstÄpu poziomego musi byÄ liczbÄ
caÅkowitÄ
.","validateVSpace":"WartoÅÄ odstÄpu pionowego musi byÄ liczbÄ
caÅkowitÄ
."},"smiley":{"options":"Opcje emotikonów","title":"Wstaw emotikona","toolbar":"Emotikony"},"justify":{"block":"Wyjustuj","center":"WyÅrodkuj","left":"Wyrównaj do lewej","right":"Wyrównaj do prawej"},"link":{"acccessKey":"Klawisz dostÄpu","advanced":"Zaawansowane","advisoryContentType":"Typ MIME obiektu docelowego","advisoryTitle":"Opis obiektu docelowego","anchor":{"toolbar":"Wstaw/edytuj kotwicÄ","menu":"WÅaÅciwoÅci kotwicy","title":"WÅaÅciwoÅci kotwicy","name":"Nazwa kotwicy","errorName":"Wpisz nazwÄ kotwicy","remove":"UsuÅ kotwicÄ"},"anchorId":"Wg identyfikatora","a
nchorName":"Wg nazwy","charset":"Kodowanie znaków obiektu docelowego","cssClasses":"Nazwa klasy CSS","emailAddress":"Adres e-mail","emailBody":"TreÅÄ","emailSubject":"Temat","id":"Id","info":"Informacje ","langCode":"Kod jÄzyka","langDir":"Kierunek tekstu","langDirLTR":"Od lewej do prawej (LTR)","langDirRTL":"Od prawej do lewej (RTL)","menu":"Edytuj odnoÅnik","name":"Nazwa","noAnchors":"(W dokumencie nie zdefiniowano żadnych kotwic)","noEmail":"Podaj adres e-mail","noUrl":"Podaj adres URL","other":"<inny>","popupDependent":"Okno zależne (Netscape)","popupFeatures":"WÅaÅciwoÅci wyskakujÄ
cego okna","popupFullScreen":"PeÅny ekran (IE)","popupLeft":"Pozycja w poziomie","popupLocationBar":"Pasek adresu","popupMenuBar":"Pasek menu","popupResizable":"Skalowalny","popupScrollBars":"Paski przewijania","popupStatusBar":"Pasek statusu","popupToolbar":"Pasek narzÄdzi","popupTop":"Pozycja w pionie","rel":"Relacja","selectAnchor":"Wybierz kotwicÄ","styles":"Styl","tabIndex":
"Indeks kolejnoÅci","target":"Obiekt docelowy","targetFrame":"<ramka>","targetFrameName":"Nazwa ramki docelowej","targetPopup":"<wyskakujÄ
ce okno>","targetPopupName":"Nazwa wyskakujÄ
cego okna","title":"OdnoÅnik","toAnchor":"OdnoÅnik wewnÄ
trz strony (kotwica)","toEmail":"Adres e-mail","toUrl":"Adres URL","toolbar":"Wstaw/edytuj odnoÅnik","type":"Typ odnoÅnika","unlink":"UsuÅ odnoÅnik","upload":"WyÅlij"},"liststyle":{"armenian":"Numerowanie armeÅskie","bulletedTitle":"WÅaÅciwoÅci list wypunktowanych","circle":"KoÅo","decimal":"Liczby (1, 2, 3 itd.)","decimalLeadingZero":"Liczby z poczÄ
tkowym zerem (01, 02, 03 itd.)","disc":"OkrÄ
g","georgian":"Numerowanie gruziÅskie (an, ban, gan itd.)","lowerAlpha":"MaÅe litery (a, b, c, d, e itd.)","lowerGreek":"MaÅe litery greckie (alpha, beta, gamma itd.)","lowerRoman":"MaÅe cyfry rzymskie (i, ii, iii, iv, v itd.)","none":"Brak","notset":"<nie ustawiono>","numberedTitle":"WÅaÅciwoÅci list numerowanych","square":"Kwa
drat","start":"PoczÄ
tek","type":"Typ punktora","upperAlpha":"Duże litery (A, B, C, D, E itd.)","upperRoman":"Duże cyfry rzymskie (I, II, III, IV, V itd.)","validateStartNumber":"ListÄ musi rozpoczynaÄ liczba caÅkowita."},"magicline":{"title":"Wstaw nowy paragraf"},"maximize":{"maximize":"Maksymalizuj","minimize":"Minimalizuj"},"newpage":{"toolbar":"Nowa strona"},"pagebreak":{"alt":"Wstaw podziaÅ strony","toolbar":"Wstaw podziaÅ strony"},"pastetext":{"button":"Wklej jako czysty tekst","title":"Wklej jako czysty tekst"},"pastefromword":{"confirmCleanup":"Tekst, który chcesz wkleiÄ, prawdopodobnie pochodzi z programu Microsoft Word. Czy chcesz go wyczyÅciÄ przed wklejeniem?","error":"Wyczyszczenie wklejonych danych nie byÅo możliwe z powodu wystÄ
pienia bÅÄdu.","title":"Wklej z programu MS Word","toolbar":"Wklej z programu MS Word"},"preview":{"preview":"PodglÄ
d"},"print":{"toolbar":"Drukuj"},"removeformat":{"toolbar":"UsuÅ formatowanie"},"save":{"toolbar":"Za
pisz"},"selectall":{"toolbar":"Zaznacz wszystko"},"showblocks":{"toolbar":"Pokaż bloki"},"sourcearea":{"toolbar":"ŹródÅo dokumentu"},"specialchar":{"options":"Opcje znaków specjalnych","title":"Wybierz znak specjalny","toolbar":"Wstaw znak specjalny"},"scayt":{"about":"Informacje o SCAYT","aboutTab":"Informacje o SCAYT","addWord":"Dodaj sÅowo","allCaps":"Ignoruj wyrazy pisane dużymi literami","dic_create":"Utwórz","dic_delete":"UsuÅ","dic_field_name":"Nazwa sÅownika","dic_info":"PoczÄ
tkowo sÅownik użytkownika przechowywany jest w cookie. Pliki cookie majÄ
jednak ograniczonÄ
pojemnoÅÄ. JeÅli sÅownik użytkownika przekroczy wielkoÅÄ dopuszczalnÄ
dla pliku cookie, możliwe jest przechowanie go na naszym serwerze. W celu zapisania sÅownika na serwerze niezbÄdne jest nadanie mu nazwy. JeÅli sÅownik zostaÅ już zapisany na serwerze, wystarczy podaÄ jego nazwÄ i nacisnÄ
Ä przycisk PrzywróÄ.","dic_rename":"ZmieÅ nazwÄ","dic_restore":"PrzywróÄ","di
ctionariesTab":"SÅowniki","disable":"WyÅÄ
cz SCAYT","emptyDic":"Nazwa sÅownika nie może byÄ pusta.","enable":"WÅÄ
cz SCAYT","ignore":"Ignoruj","ignoreAll":"Ignoruj wszystkie","ignoreDomainNames":"Ignoruj nazwy domen","langs":"JÄzyki","languagesTab":"JÄzyki","mixedCase":"Ignoruj wyrazy pisane dużymi i maÅymi literami","mixedWithDigits":"Ignoruj wyrazy zawierajÄ
ce cyfry","moreSuggestions":"WiÄcej sugestii","opera_title":"Funkcja nie jest obsÅugiwana przez przeglÄ
darkÄ Opera","options":"Opcje","optionsTab":"Opcje","title":"Sprawdź pisowniÄ podczas pisania (SCAYT)","toggle":"PrzeÅÄ
cz SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Styl","panelTitle":"Style formatujÄ
ce","panelTitle1":"Style blokowe","panelTitle2":"Style liniowe","panelTitle3":"Style obiektowe"},"table":{"border":"GruboÅÄ obramowania","caption":"TytuÅ","cell":{"menu":"Komórka","insertBefore":"Wstaw komórkÄ z lewej","insertAfter":"Wstaw komórkÄ z prawej","deleteCell":"Usu
Å komórki","merge":"PoÅÄ
cz komórki","mergeRight":"PoÅÄ
cz z komórkÄ
z prawej","mergeDown":"PoÅÄ
cz z komórkÄ
poniżej","splitHorizontal":"Podziel komórkÄ poziomo","splitVertical":"Podziel komórkÄ pionowo","title":"WÅaÅciwoÅci komórki","cellType":"Typ komórki","rowSpan":"Scalenie wierszy","colSpan":"Scalenie komórek","wordWrap":"Zawijanie sÅów","hAlign":"Wyrównanie poziome","vAlign":"Wyrównanie pionowe","alignBaseline":"Linia bazowa","bgColor":"Kolor tÅa","borderColor":"Kolor obramowania","data":"Dane","header":"NagÅówek","yes":"Tak","no":"Nie","invalidWidth":"SzerokoÅÄ komórki musi byÄ liczbÄ
.","invalidHeight":"WysokoÅÄ komórki musi byÄ liczbÄ
.","invalidRowSpan":"Scalenie wierszy musi byÄ liczbÄ
caÅkowitÄ
.","invalidColSpan":"Scalenie komórek musi byÄ liczbÄ
caÅkowitÄ
.","chooseColor":"Wybierz"},"cellPad":"DopeÅnienie komórek","cellSpace":"OdstÄp pomiÄdzy komórkami","column":{"menu":"Kolumna","insertBefore":"Wstaw kolumnÄ z
lewej","insertAfter":"Wstaw kolumnÄ z prawej","deleteColumn":"UsuÅ kolumny"},"columns":"Liczba kolumn","deleteTable":"UsuÅ tabelÄ","headers":"NagÅówki","headersBoth":"Oba","headersColumn":"Pierwsza kolumna","headersNone":"Brak","headersRow":"Pierwszy wiersz","invalidBorder":"WartoÅÄ obramowania musi byÄ liczbÄ
.","invalidCellPadding":"DopeÅnienie komórek musi byÄ liczbÄ
dodatniÄ
.","invalidCellSpacing":"OdstÄp pomiÄdzy komórkami musi byÄ liczbÄ
dodatniÄ
.","invalidCols":"Liczba kolumn musi byÄ wiÄksza niż 0.","invalidHeight":"WysokoÅÄ tabeli musi byÄ liczbÄ
.","invalidRows":"Liczba wierszy musi byÄ wiÄksza niż 0.","invalidWidth":"SzerokoÅÄ tabeli musi byÄ liczbÄ
.","menu":"WÅaÅciwoÅci tabeli","row":{"menu":"Wiersz","insertBefore":"Wstaw wiersz powyżej","insertAfter":"Wstaw wiersz poniżej","deleteRow":"UsuÅ wiersze"},"rows":"Liczba wierszy","summary":"Podsumowanie","title":"WÅaÅciwoÅci tabeli","toolbar":"Tabela","widthPc":"%","widthPx":"
piksele","widthUnit":"jednostka szerokoÅci"},"undo":{"redo":"Ponów","undo":"Cofnij"},"wsc":{"btnIgnore":"Ignoruj","btnIgnoreAll":"Ignoruj wszystkie","btnReplace":"ZmieÅ","btnReplaceAll":"ZmieÅ wszystkie","btnUndo":"Cofnij","changeTo":"ZmieÅ na","errorLoading":"BÅÄ
d wczytywania hosta aplikacji usÅugi: %s.","ieSpellDownload":"SÅownik nie jest zainstalowany. Czy chcesz go pobraÄ?","manyChanges":"Sprawdzanie zakoÅczone: zmieniono %l sÅów","noChanges":"Sprawdzanie zakoÅczone: nie zmieniono żadnego sÅowa","noMispell":"Sprawdzanie zakoÅczone: nie znaleziono bÅÄdów","noSuggestions":"- Brak sugestii -","notAvailable":"Przepraszamy, ale usÅuga jest obecnie niedostÄpna.","notInDic":"SÅowa nie ma w sÅowniku","oneChange":"Sprawdzanie zakoÅczone: zmieniono jedno sÅowo","progress":"Trwa sprawdzanie...","title":"Sprawdź pisowniÄ","toolbar":"Sprawdź pisowniÄ"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/pt-br.js b/share/static/RichText/lang/pt-br.js
index 912899a..afea0cc 100644
--- a/share/static/RichText/lang/pt-br.js
+++ b/share/static/RichText/lang/pt-br.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['pt-br']={dir:'ltr',editorTitle:'Editor de Texto, %1, pressione ALT 0 para obter ajuda.',toolbar:'Barra de Ferramentas',editor:'Editor de Texto',source:'Código-Fonte',newPage:'Novo',save:'Salvar',preview:'Visualizar',cut:'Recortar',copy:'Copiar',paste:'Colar',print:'Imprimir',underline:'Sublinhado',bold:'Negrito',italic:'Itálico',selectAll:'Selecionar Tudo',removeFormat:'Remover Formatação',strike:'Tachado',subscript:'Subscrito',superscript:'Sobrescrito',horizontalrule:'Inserir Linha Horizontal',pagebreak:'Inserir Quebra de Página',unlink:'Remover Link',undo:'Desfazer',redo:'Refazer',common:{browseServer:'Localizar no Servidor',url:'URL',protocol:'Protocolo',upload:'Enviar ao Servidor',uploadSubmit:'Enviar para o Servidor',image:'Imagem',flash:'Flash',form:'Formulário',checkbox:'Caixa de Seleção',radio:'Botão de Opção',textField:'Caixa de Texto',textarea:'Ãrea de Texto',hiddenField:'Campo Oculto',button:'Botão',select:'Caixa de Listagem',imageButto
n:'Botão de Imagem',notSet:'<não ajustado>',id:'Id',name:'Nome',langDir:'Direção do idioma',langDirLtr:'Esquerda para Direita (LTR)',langDirRtl:'Direita para Esquerda (RTL)',langCode:'Idioma',longDescr:'Descrição da URL',cssClass:'Classe de CSS',advisoryTitle:'TÃtulo',cssStyle:'Estilos',ok:'OK',cancel:'Cancelar',close:'Fechar',preview:'Visualizar',generalTab:'Geral',advancedTab:'Avançado',validateNumberFailed:'Este valor não é um número.',confirmNewPage:'Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?',confirmCancel:'Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?',options:'Opções',target:'Destino',targetNew:'Nova Janela (_blank)',targetTop:'Janela de Cima (_top)',targetSelf:'Mesma Janela (_self)',targetParent:'Janela Pai (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_ac
cessibility">, indisponÃvel</span>'},contextmenu:{options:'Opções Menu de Contexto'},specialChar:{toolbar:'Inserir Caractere Especial',title:'Selecione um Caractere Especial',options:'Opções de Caractere Especial'},link:{toolbar:'Inserir/Editar Link',other:'<outro>',menu:'Editar Link',title:'Editar Link',info:'Informações',target:'Destino',upload:'Enviar ao Servidor',advanced:'Avançado',type:'Tipo de hiperlink',toUrl:'URL',toAnchor:'Ãncora nesta página',toEmail:'E-Mail',targetFrame:'<frame>',targetPopup:'<janela popup>',targetFrameName:'Nome do Frame de Destino',targetPopupName:'Nome da Janela Pop-up',popupFeatures:'Propriedades da Janela Pop-up',popupResizable:'Redimensionável',popupStatusBar:'Barra de Status',popupLocationBar:'Barra de Endereços',popupToolbar:'Barra de Ferramentas',popupMenuBar:'Barra de Menus',popupFullScreen:'Modo Tela Cheia (IE)',popupScrollBars:'Barras de Rolagem',popupDependent:'Dependente (Netscape)',popupWidth:'Largura',popupLeft:'Esquer
da',popupHeight:'Altura',popupTop:'Topo',id:'Id',langDir:'Direção do idioma',langDirLTR:'Esquerda para Direita (LTR)',langDirRTL:'Direita para Esquerda (RTL)',acccessKey:'Chave de Acesso',name:'Nome',langCode:'Direção do idioma',tabIndex:'Ãndice de Tabulação',advisoryTitle:'TÃtulo',advisoryContentType:'Tipo de Conteúdo',cssClasses:'Classe de CSS',charset:'Charset do Link',styles:'Estilos',selectAnchor:'Selecione uma âncora',anchorName:'Nome da âncora',anchorId:'Id da âncora',emailAddress:'Endereço E-Mail',emailSubject:'Assunto da Mensagem',emailBody:'Corpo da Mensagem',noAnchors:'(Não há âncoras no documento)',noUrl:'Por favor, digite o endereço do Link',noEmail:'Por favor, digite o endereço de e-mail'},anchor:{toolbar:'Inserir/Editar Ãncora',menu:'Formatar Ãncora',title:'Formatar Ãncora',name:'Nome da Ãncora',errorName:'Por favor, digite o nome da âncora'},list:{numberedTitle:'Propriedades da Lista Numerada',bulletedTitle:'Propriedades da Lista sem Nu
meros',type:'Tipo',start:'InÃcio',validateStartNumber:'List start number must be a whole number.',circle:'CÃrculo',disc:'Disco',square:'Quadrado',none:'Nenhum',notset:'<não definido>',armenian:'Numeração Armêna',georgian:'Numeração da Geórgia (an, ban, gan, etc.)',lowerRoman:'Numeração Romana minúscula (i, ii, iii, iv, v, etc.)',upperRoman:'Numeração Romana maiúscula (I, II, III, IV, V, etc.)',lowerAlpha:'Numeração Alfabética minúscula (a, b, c, d, e, etc.)',upperAlpha:'Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)',lowerGreek:'Numeração Grega minúscula (alpha, beta, gamma, etc.)',decimal:'Numeração Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Numeração Decimal com zeros (01, 02, 03, etc.)'},findAndReplace:{title:'Localizar e Substituir',find:'Localizar',replace:'Substituir',findWhat:'Procurar por:',replaceWith:'Substituir por:',notFoundMsg:'O texto especificado não foi encontrado.',matchCase:'Coincidir Maiúsculas/Minúsculas',matchWord
:'Coincidir a palavra inteira',matchCyclic:'Coincidir cÃclico',replaceAll:'Substituir Tudo',replaceSuccessMsg:'%1 ocorrência(s) substituÃda(s).'},table:{toolbar:'Tabela',title:'Formatar Tabela',menu:'Formatar Tabela',deleteTable:'Apagar Tabela',rows:'Linhas',columns:'Colunas',border:'Borda',align:'Alinhamento',alignLeft:'Esquerda',alignCenter:'Centralizado',alignRight:'Direita',width:'Largura',widthPx:'pixels',widthPc:'%',widthUnit:'unidade largura',height:'Altura',cellSpace:'Espaçamento',cellPad:'Margem interna',caption:'Legenda',summary:'Resumo',headers:'Cabeçalho',headersNone:'Nenhum',headersColumn:'Primeira coluna',headersRow:'Primeira linha',headersBoth:'Ambos',invalidRows:'O número de linhas tem que ser um número maior que 0.',invalidCols:'O número de colunas tem que ser um número maior que 0.',invalidBorder:'O tamanho da borda tem que ser um número.',invalidWidth:'A largura da tabela tem que ser um número.',invalidHeight:'A altura da tabela tem que ser um n
úmero.',invalidCellSpacing:'O espaçamento das células tem que ser um número.',invalidCellPadding:'A margem interna das células tem que ser um número.',cell:{menu:'Célula',insertBefore:'Inserir célula a esquerda',insertAfter:'Inserir célula a direita',deleteCell:'Remover Células',merge:'Mesclar Células',mergeRight:'Mesclar com célula a direita',mergeDown:'Mesclar com célula abaixo',splitHorizontal:'Dividir célula horizontalmente',splitVertical:'Dividir célula verticalmente',title:'Propriedades da célula',cellType:'Tipo de célula',rowSpan:'Linhas cobertas',colSpan:'Colunas cobertas',wordWrap:'Quebra de palavra',hAlign:'Alinhamento horizontal',vAlign:'Alinhamento vertical',alignTop:'Alinhar no topo',alignMiddle:'Centralizado verticalmente',alignBottom:'Alinhar na base',alignBaseline:'Patamar de alinhamento',bgColor:'Cor de fundo',borderColor:'Cor das bordas',data:'Dados',header:'Cabeçalho',yes:'Sim',no:'Não',invalidWidth:'A largura da célula tem que ser um n
úmero.',invalidHeight:'A altura da célula tem que ser um número.',invalidRowSpan:'Linhas cobertas tem que ser um número inteiro.',invalidColSpan:'Colunas cobertas tem que ser um número inteiro.',chooseColor:'Escolher'},row:{menu:'Linha',insertBefore:'Inserir linha acima',insertAfter:'Inserir linha abaixo',deleteRow:'Remover Linhas'},column:{menu:'Coluna',insertBefore:'Inserir coluna a esquerda',insertAfter:'Inserir coluna a direita',deleteColumn:'Remover Colunas'}},button:{title:'Formatar Botão',text:'Texto (Valor)',type:'Tipo',typeBtn:'Botão',typeSbm:'Enviar',typeRst:'Limpar'},checkboxAndRadio:{checkboxTitle:'Formatar Caixa de Seleção',radioTitle:'Formatar Botão de Opção',value:'Valor',selected:'Selecionado'},form:{title:'Formatar Formulário',menu:'Formatar Formulário',action:'Ação',method:'Método',encoding:'Codificação'},select:{title:'Formatar Caixa de Listagem',selectInfo:'Informações',opAvail:'Opções disponÃveis',value:'Valor',size:'Tamanho',line
s:'linhas',chkMulti:'Permitir múltiplas seleções',opText:'Texto',opValue:'Valor',btnAdd:'Adicionar',btnModify:'Modificar',btnUp:'Para cima',btnDown:'Para baixo',btnSetValue:'Definir como selecionado',btnDelete:'Remover'},textarea:{title:'Formatar Ãrea de Texto',cols:'Colunas',rows:'Linhas'},textfield:{title:'Formatar Caixa de Texto',name:'Nome',value:'Valor',charWidth:'Comprimento (em caracteres)',maxChars:'Número Máximo de Caracteres',type:'Tipo',typeText:'Texto',typePass:'Senha'},hidden:{title:'Formatar Campo Oculto',name:'Nome',value:'Valor'},image:{title:'Formatar Imagem',titleButton:'Formatar Botão de Imagem',menu:'Formatar Imagem',infoTab:'Informações da Imagem',btnUpload:'Enviar para o Servidor',upload:'Enviar',alt:'Texto Alternativo',width:'Largura',height:'Altura',lockRatio:'Travar Proporções',unlockRatio:'Destravar Proporções',resetSize:'Redefinir para o Tamanho Original',border:'Borda',hSpace:'HSpace',vSpace:'VSpace',align:'Alinhamento',alignLeft:'Esq
uerda',alignRight:'Direita',alertUrl:'Por favor, digite a URL da imagem.',linkTab:'Link',button2Img:'Deseja transformar o botão de imagem em uma imagem comum?',img2Button:'Deseja transformar a imagem em um botão de imagem?',urlMissing:'URL da imagem está faltando.',validateWidth:'A largura deve ser um número inteiro.',validateHeight:'A altura deve ser um número inteiro.',validateBorder:'A borda deve ser um número inteiro.',validateHSpace:'O HSpace deve ser um número inteiro.',validateVSpace:'O VSpace deve ser um número inteiro.'},flash:{properties:'Propriedades do Flash',propertiesTab:'Propriedades',title:'Propriedades do Flash',chkPlay:'Tocar Automaticamente',chkLoop:'Tocar Infinitamente',chkMenu:'Habilita Menu Flash',chkFull:'Permitir tela cheia',scale:'Escala',scaleAll:'Mostrar tudo',scaleNoBorder:'Sem Borda',scaleFit:'Escala Exata',access:'Acesso ao script',accessAlways:'Sempre',accessSameDomain:'Acessar Mesmo DomÃnio',accessNever:'Nunca',align:'Alinhamento',ali
gnLeft:'Esquerda',alignAbsBottom:'Inferior Absoluto',alignAbsMiddle:'Centralizado Absoluto',alignBaseline:'Baseline',alignBottom:'Inferior',alignMiddle:'Centralizado',alignRight:'Direita',alignTextTop:'Superior Absoluto',alignTop:'Superior',quality:'Qualidade',qualityBest:'Qualidade Melhor',qualityHigh:'Qualidade Alta',qualityAutoHigh:'Qualidade Alta Automática',qualityMedium:'Qualidade Média',qualityAutoLow:'Qualidade Baixa Automática',qualityLow:'Qualidade Baixa',windowModeWindow:'Janela',windowModeOpaque:'Opaca',windowModeTransparent:'Transparente',windowMode:'Modo da janela',flashvars:'Variáveis do Flash',bgcolor:'Cor do Plano de Fundo',width:'Largura',height:'Altura',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'Por favor, digite o endereço do link',validateWidth:'A largura tem que ser um número.',validateHeight:'A altura tem que ser um número',validateHSpace:'O HSpace tem que ser um número',validateVSpace:'O VSpace tem que ser um número.'},spellCheck:{toolbar:'
Verificar Ortografia',title:'Corretor Ortográfico',notAvailable:'Desculpe, o serviço não está disponÃvel no momento.',errorLoading:'Erro carregando servidor de aplicação: %s.',notInDic:'Não encontrada',changeTo:'Alterar para',btnIgnore:'Ignorar uma vez',btnIgnoreAll:'Ignorar Todas',btnReplace:'Alterar',btnReplaceAll:'Alterar Todas',btnUndo:'Desfazer',noSuggestions:'-sem sugestões de ortografia-',progress:'Verificação ortográfica em andamento...',noMispell:'Verificação encerrada: Não foram encontrados erros de ortografia',noChanges:'Verificação ortográfica encerrada: Não houve alterações',oneChange:'Verificação ortográfica encerrada: Uma palavra foi alterada',manyChanges:'Verificação ortográfica encerrada: %1 palavras foram alteradas',ieSpellDownload:'A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?'},smiley:{toolbar:'Emoticon',title:'Inserir Emoticon',options:'Opções de Emoticons'},elementsPath:{eleLab
el:'Caminho dos Elementos',eleTitle:'Elemento %1'},numberedlist:'Lista numerada',bulletedlist:'Lista sem números',indent:'Aumentar Recuo',outdent:'Diminuir Recuo',justify:{left:'Alinhar Esquerda',center:'Centralizar',right:'Alinhar Direita',block:'Justificado'},blockquote:'Citação',clipboard:{title:'Colar',cutError:'As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).',copyError:'As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).',pasteMsg:'Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.',securityMsg:'As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferência diretamente. Por favor cole o conteúdo man
ualmente nesta janela.',pasteArea:'Ãrea para Colar'},pastefromword:{confirmCleanup:'O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?',toolbar:'Colar do Word',title:'Colar do Word',error:'Não foi possÃvel limpar os dados colados devido a um erro interno'},pasteText:{button:'Colar como Texto sem Formatação',title:'Colar como Texto sem Formatação'},templates:{button:'Modelos de layout',title:'Modelo de layout de conteúdo',options:'Opções de Template',insertOption:'Substituir o conteúdo atual',selectPromptMsg:'Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):',emptyListMsg:'(Não foram definidos modelos de layout)'},showBlocks:'Mostrar blocos de código',stylesCombo:{label:'Estilo',panelTitle:'Estilos de Formatação',panelTitle1:'Estilos de bloco',panelTitle2:'Estilos de texto corrido',panelTitle3:'Estilos de objeto'},format:{label:'Formatação',panelT
itle:'Formatação',tag_p:'Normal',tag_pre:'Formatado',tag_address:'Endereço',tag_h1:'TÃtulo 1',tag_h2:'TÃtulo 2',tag_h3:'TÃtulo 3',tag_h4:'TÃtulo 4',tag_h5:'TÃtulo 5',tag_h6:'TÃtulo 6',tag_div:'Normal (DIV)'},div:{title:'Criar Container de DIV',toolbar:'Criar Container de DIV',cssClassInputLabel:'Classes de CSS',styleSelectLabel:'Estilo',IdInputLabel:'Id',languageCodeInputLabel:'Código de Idioma',inlineStyleInputLabel:'Estilo Inline',advisoryTitleInputLabel:'TÃtulo Consulta',langDirLabel:'Direção da Escrita',langDirLTRLabel:'Esquerda para Direita (LTR)',langDirRTLLabel:'Direita para Esquerda (RTL)',edit:'Editar Div',remove:'Remover Div'},font:{label:'Fonte',voiceLabel:'Fonte',panelTitle:'Fonte'},fontSize:{label:'Tamanho',voiceLabel:'Tamanho da fonte',panelTitle:'Tamanho'},colorButton:{textColorTitle:'Cor do Texto',bgColorTitle:'Cor do Plano de Fundo',panelTitle:'Cores',auto:'Automático',more:'Mais Cores...'},colors:{'000':'Preto',800000:'Foquete','8B4513':'Marro
m 1','2F4F4F':'Cinza 1','008080':'Cerceta','000080':'Azul Marinho','4B0082':'Ãndigo',696969:'Cinza 2',B22222:'Tijolo de Fogo',A52A2A:'Marrom 2',DAA520:'Vara Dourada','006400':'Verde Escuro','40E0D0':'Turquesa','0000CD':'Azul Médio',800080:'Roxo',808080:'Cinza 3',F00:'Vermelho',FF8C00:'Laranja Escuro',FFD700:'Dourado','008000':'Verde','0FF':'Ciano','00F':'Azul',EE82EE:'Violeta',A9A9A9:'Cinza Escuro',FFA07A:'Salmão Claro',FFA500:'Laranja',FFFF00:'Amarelo','00FF00':'Lima',AFEEEE:'Turquesa Pálido',ADD8E6:'Azul Claro',DDA0DD:'Ameixa',D3D3D3:'Cinza Claro',FFF0F5:'Lavanda 1',FAEBD7:'Branco Antiguidade',FFFFE0:'Amarelo Claro',F0FFF0:'Orvalho',F0FFFF:'Azure',F0F8FF:'Azul Alice',E6E6FA:'Lavanda 2',FFF:'Branco'},scayt:{title:'Correção ortográfica durante a digitação',opera_title:'Não suportado no Opera',enable:'Habilitar correção ortográfica durante a digitação',disable:'Desabilitar correção ortográfica durante a digitação',about:'Sobre a correção ortográfica dur
ante a digitação',toggle:'Ativar/desativar correção ortográfica durante a digitação',options:'Opções',langs:'Idiomas',moreSuggestions:'Mais sugestões',ignore:'Ignorar',ignoreAll:'Ignorar todas',addWord:'Adicionar palavra',emptyDic:'O nome do dicionário não deveria estar vazio.',optionsTab:'Opções',allCaps:'Ignorar palavras maiúsculas',ignoreDomainNames:'Ignorar nomes de domÃnio',mixedCase:'Ignorar palavras com maiúsculas e minúsculas misturadas',mixedWithDigits:'Ignorar palavras com números',languagesTab:'Idiomas',dictionariesTab:'Dicionários',dic_field_name:'Nome do Dicionário',dic_create:'Criar',dic_restore:'Restaurar',dic_delete:'Excluir',dic_rename:'Renomear',dic_info:'Inicialmente, o dicionário do usuário fica armazenado em um Cookie. Porém, Cookies tem tamanho limitado, portanto quand o dicionário do usuário atingir o tamanho limite poderá ser armazenado no nosso servidor. Para armazenar seu dicionário pessoal no nosso servidor deverá espec
ificar um nome para ele. Se já tiver um dicionário armazenado por favor especifique o seu nome e clique em Restaurar.',aboutTab:'Sobre'},about:{title:'Sobre o CKEditor',dlgTitle:'Sobre o CKEditor',moreInfo:'Para informações sobre a licença por favor visite o nosso site:',copy:'Copyright © $1. Todos os direitos reservados.'},maximize:'Maximizar',minimize:'Minimize',fakeobjects:{anchor:'Ãncora',flash:'Animação em Flash',div:'Quebra de página',unknown:'Objeto desconhecido'},resize:'Arraste para redimensionar',colordialog:{title:'Selecione uma cor',options:'Opções de Cor',highlight:'Grifar',selected:'Cor Selecionada',clear:'Limpar'},toolbarCollapse:'Diminuir Barra de Ferramentas',toolbarExpand:'Aumentar Barra de Ferramentas',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['pt-br']={"dir":"ltr","editor":"Editor de Texto","common":{"editorHelp":"Pressione ALT+0 para ajuda","browseServer":"Localizar no Servidor","url":"URL","protocol":"Protocolo","upload":"Enviar ao Servidor","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Seleção","radio":"Botão de Opção","textField":"Caixa de Texto","textarea":"Ãrea de Texto","hiddenField":"Campo Oculto","button":"Botão","select":"Caixa de Listagem","imageButton":"Botão de Imagem","notSet":"<não ajustado>","id":"Id","name":"Nome","langDir":"Direção do idioma","langDirLtr":"Esquerda para Direita (LTR)","langDirRtl":"Direita para Esquerda (RTL)","langCode":"Idioma","longDescr":"Descrição da URL","cssClass":"Classe de CSS","advisoryTitle":"TÃtulo","cssStyle":"Estilos","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Visualizar","resize":"Arraste para redimensionar","generalTab":"Geral","advancedTab":"Avançado"
,"validateNumberFailed":"Este valor não é um número.","confirmNewPage":"Todas as mudanças não salvas serão perdidas. Tem certeza de que quer abrir uma nova página?","confirmCancel":"Algumas opções foram alteradas. Tem certeza de que quer fechar a caixa de diálogo?","options":"Opções","target":"Destino","targetNew":"Nova Janela (_blank)","targetTop":"Janela de Cima (_top)","targetSelf":"Mesma Janela (_self)","targetParent":"Janela Pai (_parent)","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centralizado","alignTop":"Superior","alignMiddle":"Centralizado","alignBottom":"Inferior","invalidValue":"Valor inválido.","invalidHeight":"A altura tem que ser um número","invalidWidth":"A largura tem que ser um número.","invalidCssLength":"O valor do campo \"%1\" deve ser um n
úmero positivo opcionalmente seguido por uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"O valor do campo \"%1\" deve ser um número positivo opcionalmente seguido por uma válida unidade de medida de HTML (px or %).","invalidInlineStyle":"O valor válido para estilo deve conter uma ou mais tuplas no formato \"nome : valor\", separados por ponto e vÃrgula.","cssLengthTooltip":"Insira um número para valor em pixels ou um número seguido de uma válida unidade de medida de CSS (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, indisponÃvel</span>"},"about":{"copy":"Copyright © $1. Todos os direitos reservados.","dlgTitle":"Sobre o CKEditor","help":"Verifique o $1 para obter ajuda.","moreInfo":"Para informações sobre a licença por favor visite o nosso site:","title":"Sobre o CKEditor","userGuide":"Guia do Usuário do CKEditor"},"basicstyles":{"bold":"Negrito","italic":"Itá
lico","strike":"Tachado","subscript":"Subscrito","superscript":"Sobrescrito","underline":"Sublinhado"},"bidi":{"ltr":"Direção do texto da esquerda para a direita","rtl":"Direção do texto da direita para a esquerda"},"blockquote":{"toolbar":"Citação"},"clipboard":{"copy":"Copiar","copyError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de copiar automaticamente. Por favor, utilize o teclado para copiar (Ctrl/Cmd+C).","cut":"Recortar","cutError":"As configurações de segurança do seu navegador não permitem que o editor execute operações de recortar automaticamente. Por favor, utilize o teclado para recortar (Ctrl/Cmd+X).","paste":"Colar","pasteArea":"Ãrea para Colar","pasteMsg":"Transfira o link usado na caixa usando o teclado com (<STRONG>Ctrl/Cmd+V</STRONG>) e <STRONG>OK</STRONG>.","securityMsg":"As configurações de segurança do seu navegador não permitem que o editor acesse os dados da área de transferên
cia diretamente. Por favor cole o conteúdo manualmente nesta janela.","title":"Colar"},"colorbutton":{"auto":"Automático","bgColorTitle":"Cor do Plano de Fundo","colors":{"000":"Preto","800000":"Foquete","8B4513":"Marrom 1","2F4F4F":"Cinza 1","008080":"Cerceta","000080":"Azul Marinho","4B0082":"Ãndigo","696969":"Cinza 2","B22222":"Tijolo de Fogo","A52A2A":"Marrom 2","DAA520":"Vara Dourada","006400":"Verde Escuro","40E0D0":"Turquesa","0000CD":"Azul Médio","800080":"Roxo","808080":"Cinza 3","F00":"Vermelho","FF8C00":"Laranja Escuro","FFD700":"Dourado","008000":"Verde","0FF":"Ciano","00F":"Azul","EE82EE":"Violeta","A9A9A9":"Cinza Escuro","FFA07A":"Salmão Claro","FFA500":"Laranja","FFFF00":"Amarelo","00FF00":"Lima","AFEEEE":"Turquesa Pálido","ADD8E6":"Azul Claro","DDA0DD":"Ameixa","D3D3D3":"Cinza Claro","FFF0F5":"Lavanda 1","FAEBD7":"Branco Antiguidade","FFFFE0":"Amarelo Claro","F0FFF0":"Orvalho","F0FFFF":"Azure","F0F8FF":"Azul Alice","E6E6FA":"Lavanda 2","FFF":"Branco"},"
more":"Mais Cores...","panelTitle":"Cores","textColorTitle":"Cor do Texto"},"colordialog":{"clear":"Limpar","highlight":"Grifar","options":"Opções de Cor","selected":"Cor Selecionada","title":"Selecione uma Cor"},"templates":{"button":"Modelos de layout","emptyListMsg":"(Não foram definidos modelos de layout)","insertOption":"Substituir o conteúdo atual","options":"Opções de Template","selectPromptMsg":"Selecione um modelo de layout para ser aberto no editor<br>(o conteúdo atual será perdido):","title":"Modelo de layout de conteúdo"},"contextmenu":{"options":"Opções Menu de Contexto"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"TÃtulo Consulta","cssClassInputLabel":"Classes de CSS","edit":"Editar Div","inlineStyleInputLabel":"Estilo Inline","langDirLTRLabel":"Esquerda para Direita (LTR)","langDirLabel":"Direção da Escrita","langDirRTLLabel":"Direita para Esquerda (RTL)","languageCodeInputLabel":"Código de Idioma","remove":"Remover Div","styleSelectLa
bel":"Estilo","title":"Criar Container de DIV","toolbar":"Criar Container de DIV"},"toolbar":{"toolbarCollapse":"Diminuir Barra de Ferramentas","toolbarExpand":"Aumentar Barra de Ferramentas","toolbarGroups":{"document":"Documento","clipboard":"Clipboard/Desfazer","editing":"Edição","forms":"Formulários","basicstyles":"Estilos Básicos","paragraph":"Paragrafo","links":"Links","insert":"Inserir","styles":"Estilos","colors":"Cores","tools":"Ferramentas"},"toolbars":"Barra de Ferramentas do Editor"},"elementspath":{"eleLabel":"Caminho dos Elementos","eleTitle":"Elemento %1"},"list":{"bulletedlist":"Lista sem números","numberedlist":"Lista numerada"},"indent":{"indent":"Aumentar Recuo","outdent":"Diminuir Recuo"},"find":{"find":"Localizar","findOptions":"Opções","findWhat":"Procurar por:","matchCase":"Coincidir Maiúsculas/Minúsculas","matchCyclic":"Coincidir cÃclico","matchWord":"Coincidir a palavra inteira","notFoundMsg":"O texto especificado não foi encontrado.","rep
lace":"Substituir","replaceAll":"Substituir Tudo","replaceSuccessMsg":"%1 ocorrência(s) substituÃda(s).","replaceWith":"Substituir por:","title":"Localizar e Substituir"},"fakeobjects":{"anchor":"Ãncora","flash":"Animação em Flash","hiddenfield":"Campo Oculto","iframe":"IFrame","unknown":"Objeto desconhecido"},"flash":{"access":"Acesso ao script","accessAlways":"Sempre","accessNever":"Nunca","accessSameDomain":"Acessar Mesmo DomÃnio","alignAbsBottom":"Inferior Absoluto","alignAbsMiddle":"Centralizado Absoluto","alignBaseline":"Baseline","alignTextTop":"Superior Absoluto","bgcolor":"Cor do Plano de Fundo","chkFull":"Permitir tela cheia","chkLoop":"Tocar Infinitamente","chkMenu":"Habilita Menu Flash","chkPlay":"Tocar Automaticamente","flashvars":"Variáveis do Flash","hSpace":"HSpace","properties":"Propriedades do Flash","propertiesTab":"Propriedades","quality":"Qualidade","qualityAutoHigh":"Qualidade Alta Automática","qualityAutoLow":"Qualidade Baixa Automática","qual
ityBest":"Qualidade Melhor","qualityHigh":"Qualidade Alta","qualityLow":"Qualidade Baixa","qualityMedium":"Qualidade Média","scale":"Escala","scaleAll":"Mostrar tudo","scaleFit":"Escala Exata","scaleNoBorder":"Sem Borda","title":"Propriedades do Flash","vSpace":"VSpace","validateHSpace":"O HSpace tem que ser um número","validateSrc":"Por favor, digite o endereço do link","validateVSpace":"O VSpace tem que ser um número.","windowMode":"Modo da janela","windowModeOpaque":"Opaca","windowModeTransparent":"Transparente","windowModeWindow":"Janela"},"font":{"fontSize":{"label":"Tamanho","voiceLabel":"Tamanho da fonte","panelTitle":"Tamanho"},"label":"Fonte","panelTitle":"Fonte","voiceLabel":"Fonte"},"forms":{"button":{"title":"Formatar Botão","text":"Texto (Valor)","type":"Tipo","typeBtn":"Botão","typeSbm":"Enviar","typeRst":"Limpar"},"checkboxAndRadio":{"checkboxTitle":"Formatar Caixa de Seleção","radioTitle":"Formatar Botão de Opção","value":"Valor","selected":"Seleci
onado"},"form":{"title":"Formatar Formulário","menu":"Formatar Formulário","action":"Ação","method":"Método","encoding":"Codificação"},"hidden":{"title":"Formatar Campo Oculto","name":"Nome","value":"Valor"},"select":{"title":"Formatar Caixa de Listagem","selectInfo":"Informações","opAvail":"Opções disponÃveis","value":"Valor","size":"Tamanho","lines":"linhas","chkMulti":"Permitir múltiplas seleções","opText":"Texto","opValue":"Valor","btnAdd":"Adicionar","btnModify":"Modificar","btnUp":"Para cima","btnDown":"Para baixo","btnSetValue":"Definir como selecionado","btnDelete":"Remover"},"textarea":{"title":"Formatar Ãrea de Texto","cols":"Colunas","rows":"Linhas"},"textfield":{"title":"Formatar Caixa de Texto","name":"Nome","value":"Valor","charWidth":"Comprimento (em caracteres)","maxChars":"Número Máximo de Caracteres","type":"Tipo","typeText":"Texto","typePass":"Senha","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},
"format":{"label":"Formatação","panelTitle":"Formatação","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"TÃtulo 1","tag_h2":"TÃtulo 2","tag_h3":"TÃtulo 3","tag_h4":"TÃtulo 4","tag_h5":"TÃtulo 5","tag_h6":"TÃtulo 6","tag_p":"Normal","tag_pre":"Formatado"},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"iframe":{"border":"Mostra borda do iframe","noUrl":"Insira a URL do iframe","scrolling":"Abilita scrollbars","title":"Propriedade do IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Por favor, digite a URL da imagem.","alt":"Texto Alternativo","border":"Borda","btnUpload":"Enviar para o Servidor","button2Img":"Deseja transformar o botão de imagem em uma imagem comum?","hSpace":"HSpace","img2Button":"Deseja transformar a imagem em um botão de imagem?","infoTab":"Informações da Imagem","linkTab":"Link","lockRatio":"Travar Proporções","menu":"Formatar Imagem","resetSize":"Redefinir para o Tamanho Original","title":"Formatar Imagem","titleButto
n":"Formatar Botão de Imagem","upload":"Enviar","urlMissing":"URL da imagem está faltando.","vSpace":"VSpace","validateBorder":"A borda deve ser um número inteiro.","validateHSpace":"O HSpace deve ser um número inteiro.","validateVSpace":"O VSpace deve ser um número inteiro."},"smiley":{"options":"Opções de Emoticons","title":"Inserir Emoticon","toolbar":"Emoticon"},"justify":{"block":"Justificado","center":"Centralizar","left":"Alinhar Esquerda","right":"Alinhar Direita"},"link":{"acccessKey":"Chave de Acesso","advanced":"Avançado","advisoryContentType":"Tipo de Conteúdo","advisoryTitle":"TÃtulo","anchor":{"toolbar":"Inserir/Editar Ãncora","menu":"Formatar Ãncora","title":"Formatar Ãncora","name":"Nome da Ãncora","errorName":"Por favor, digite o nome da âncora","remove":"Remover Ãncora"},"anchorId":"Id da âncora","anchorName":"Nome da âncora","charset":"Charset do Link","cssClasses":"Classe de CSS","emailAddress":"Endereço E-Mail","emailBody":"Corpo da Me
nsagem","emailSubject":"Assunto da Mensagem","id":"Id","info":"Informações","langCode":"Direção do idioma","langDir":"Direção do idioma","langDirLTR":"Esquerda para Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","menu":"Editar Link","name":"Nome","noAnchors":"(Não há âncoras no documento)","noEmail":"Por favor, digite o endereço de e-mail","noUrl":"Por favor, digite o endereço do Link","other":"<outro>","popupDependent":"Dependente (Netscape)","popupFeatures":"Propriedades da Janela Pop-up","popupFullScreen":"Modo Tela Cheia (IE)","popupLeft":"Esquerda","popupLocationBar":"Barra de Endereços","popupMenuBar":"Barra de Menus","popupResizable":"Redimensionável","popupScrollBars":"Barras de Rolagem","popupStatusBar":"Barra de Status","popupToolbar":"Barra de Ferramentas","popupTop":"Topo","rel":"Tipo de Relação","selectAnchor":"Selecione uma âncora","styles":"Estilos","tabIndex":"Ãndice de Tabulação","target":"Destino","targetFrame":"<frame>","targe
tFrameName":"Nome do Frame de Destino","targetPopup":"<janela popup>","targetPopupName":"Nome da Janela Pop-up","title":"Editar Link","toAnchor":"Ãncora nesta página","toEmail":"E-Mail","toUrl":"URL","toolbar":"Inserir/Editar Link","type":"Tipo de hiperlink","unlink":"Remover Link","upload":"Enviar ao Servidor"},"liststyle":{"armenian":"Numeração Armêna","bulletedTitle":"Propriedades da Lista sem Numeros","circle":"CÃrculo","decimal":"Numeração Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Numeração Decimal com zeros (01, 02, 03, etc.)","disc":"Disco","georgian":"Numeração da Geórgia (an, ban, gan, etc.)","lowerAlpha":"Numeração Alfabética minúscula (a, b, c, d, e, etc.)","lowerGreek":"Numeração Grega minúscula (alpha, beta, gamma, etc.)","lowerRoman":"Numeração Romana minúscula (i, ii, iii, iv, v, etc.)","none":"Nenhum","notset":"<não definido>","numberedTitle":"Propriedades da Lista Numerada","square":"Quadrado","start":"InÃcio","type":"Tipo","upp
erAlpha":"Numeração Alfabética Maiúscula (A, B, C, D, E, etc.)","upperRoman":"Numeração Romana maiúscula (I, II, III, IV, V, etc.)","validateStartNumber":"O número inicial da lista deve ser um número inteiro."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximizar","minimize":"Minimize"},"newpage":{"toolbar":"Novo"},"pagebreak":{"alt":"Quebra de Página","toolbar":"Inserir Quebra de Página"},"pastetext":{"button":"Colar como Texto sem Formatação","title":"Colar como Texto sem Formatação"},"pastefromword":{"confirmCleanup":"O texto que você deseja colar parece ter sido copiado do Word. Você gostaria de remover a formatação antes de colar?","error":"Não foi possÃvel limpar os dados colados devido a um erro interno","title":"Colar do Word","toolbar":"Colar do Word"},"preview":{"preview":"Visualizar"},"print":{"toolbar":"Imprimir"},"removeformat":{"toolbar":"Remover Formatação"},"save":{"toolbar":"Salvar"},"selectall":{"toolbar":"S
elecionar Tudo"},"showblocks":{"toolbar":"Mostrar blocos de código"},"sourcearea":{"toolbar":"Código-Fonte"},"specialchar":{"options":"Opções de Caractere Especial","title":"Selecione um Caractere Especial","toolbar":"Inserir Caractere Especial"},"scayt":{"about":"Sobre a correção ortográfica durante a digitação","aboutTab":"Sobre","addWord":"Adicionar palavra","allCaps":"Ignorar palavras maiúsculas","dic_create":"Criar","dic_delete":"Excluir","dic_field_name":"Nome do Dicionário","dic_info":"Inicialmente, o dicionário do usuário fica armazenado em um Cookie. Porém, Cookies tem tamanho limitado, portanto quand o dicionário do usuário atingir o tamanho limite poderá ser armazenado no nosso servidor. Para armazenar seu dicionário pessoal no nosso servidor deverá especificar um nome para ele. Se já tiver um dicionário armazenado por favor especifique o seu nome e clique em Restaurar.","dic_rename":"Renomear","dic_restore":"Restaurar","dictionariesTab":"Dici
onários","disable":"Desabilitar correção ortográfica durante a digitação","emptyDic":"O nome do dicionário não deveria estar vazio.","enable":"Habilitar correção ortográfica durante a digitação","ignore":"Ignorar","ignoreAll":"Ignorar todas","ignoreDomainNames":"Ignorar nomes de domÃnio","langs":"Idiomas","languagesTab":"Idiomas","mixedCase":"Ignorar palavras com maiúsculas e minúsculas misturadas","mixedWithDigits":"Ignorar palavras com números","moreSuggestions":"Mais sugestões","opera_title":"Não suportado no Opera","options":"Opções","optionsTab":"Opções","title":"Correção ortográfica durante a digitação","toggle":"Ativar/desativar correção ortográfica durante a digitação","noSuggestions":"No suggestion"},"stylescombo":{"label":"Estilo","panelTitle":"Estilos de Formatação","panelTitle1":"Estilos de bloco","panelTitle2":"Estilos de texto corrido","panelTitle3":"Estilos de objeto"},"table":{"border":"Borda","caption":"Legenda","cell":{"me
nu":"Célula","insertBefore":"Inserir célula a esquerda","insertAfter":"Inserir célula a direita","deleteCell":"Remover Células","merge":"Mesclar Células","mergeRight":"Mesclar com célula a direita","mergeDown":"Mesclar com célula abaixo","splitHorizontal":"Dividir célula horizontalmente","splitVertical":"Dividir célula verticalmente","title":"Propriedades da célula","cellType":"Tipo de célula","rowSpan":"Linhas cobertas","colSpan":"Colunas cobertas","wordWrap":"Quebra de palavra","hAlign":"Alinhamento horizontal","vAlign":"Alinhamento vertical","alignBaseline":"Patamar de alinhamento","bgColor":"Cor de fundo","borderColor":"Cor das bordas","data":"Dados","header":"Cabeçalho","yes":"Sim","no":"Não","invalidWidth":"A largura da célula tem que ser um número.","invalidHeight":"A altura da célula tem que ser um número.","invalidRowSpan":"Linhas cobertas tem que ser um número inteiro.","invalidColSpan":"Colunas cobertas tem que ser um número inteiro.","chooseCol
or":"Escolher"},"cellPad":"Margem interna","cellSpace":"Espaçamento","column":{"menu":"Coluna","insertBefore":"Inserir coluna a esquerda","insertAfter":"Inserir coluna a direita","deleteColumn":"Remover Colunas"},"columns":"Colunas","deleteTable":"Apagar Tabela","headers":"Cabeçalho","headersBoth":"Ambos","headersColumn":"Primeira coluna","headersNone":"Nenhum","headersRow":"Primeira linha","invalidBorder":"O tamanho da borda tem que ser um número.","invalidCellPadding":"A margem interna das células tem que ser um número.","invalidCellSpacing":"O espaçamento das células tem que ser um número.","invalidCols":"O número de colunas tem que ser um número maior que 0.","invalidHeight":"A altura da tabela tem que ser um número.","invalidRows":"O número de linhas tem que ser um número maior que 0.","invalidWidth":"A largura da tabela tem que ser um número.","menu":"Formatar Tabela","row":{"menu":"Linha","insertBefore":"Inserir linha acima","insertAfter":"Inserir linha
abaixo","deleteRow":"Remover Linhas"},"rows":"Linhas","summary":"Resumo","title":"Formatar Tabela","toolbar":"Tabela","widthPc":"%","widthPx":"pixels","widthUnit":"unidade largura"},"undo":{"redo":"Refazer","undo":"Desfazer"},"wsc":{"btnIgnore":"Ignorar uma vez","btnIgnoreAll":"Ignorar Todas","btnReplace":"Alterar","btnReplaceAll":"Alterar Todas","btnUndo":"Desfazer","changeTo":"Alterar para","errorLoading":"Erro carregando servidor de aplicação: %s.","ieSpellDownload":"A verificação ortográfica não foi instalada. Você gostaria de realizar o download agora?","manyChanges":"Verificação ortográfica encerrada: %1 palavras foram alteradas","noChanges":"Verificação ortográfica encerrada: Não houve alterações","noMispell":"Verificação encerrada: Não foram encontrados erros de ortografia","noSuggestions":"-sem sugestões de ortografia-","notAvailable":"Desculpe, o serviço não está disponÃvel no momento.","notInDic":"Não encontrada","oneChange":"Verificação
ortográfica encerrada: Uma palavra foi alterada","progress":"Verificação ortográfica em andamento...","title":"Corretor Ortográfico","toolbar":"Verificar Ortografia"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/pt.js b/share/static/RichText/lang/pt.js
index 3ed6877..fbb2214 100644
--- a/share/static/RichText/lang/pt.js
+++ b/share/static/RichText/lang/pt.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.pt={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Fonte',newPage:'Nova Página',save:'Guardar',preview:'Pré-visualizar',cut:'Cortar',copy:'Copiar',paste:'Colar',print:'Imprimir',underline:'Sublinhado',bold:'Negrito',italic:'Itálico',selectAll:'Seleccionar Tudo',removeFormat:'Eliminar Formato',strike:'Rasurado',subscript:'Superior à Linha',superscript:'Inferior à Linha',horizontalrule:'Inserir Linha Horizontal',pagebreak:'Inserir Quebra de Página',unlink:'Eliminar Hiperligação',undo:'Anular',redo:'Repetir',common:{browseServer:'Navegar no Servidor',url:'URL',protocol:'Protocolo',upload:'Carregar',uploadSubmit:'Enviar para o Servidor',image:'Imagem',flash:'Flash',form:'Formulário',checkbox:'Caixa de Verificação',radio:'Botão de Opção',textField:'Campo de Texto',textarea:'Ãrea de Texto',hiddenField:'Campo Escondido',button:'Botão',select:'Caixa de Combinação',imageButton:'Bo
tão de Imagem',notSet:'<Não definido>',id:'Id',name:'Nome',langDir:'Orientação de idioma',langDirLtr:'Esquerda à Direita (LTR)',langDirRtl:'Direita a Esquerda (RTL)',langCode:'Código de Idioma',longDescr:'Descrição Completa do URL',cssClass:'Classes de Estilo de Folhas Classes',advisoryTitle:'TÃtulo',cssStyle:'Estilo',ok:'OK',cancel:'Cancelar',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Avançado',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span clas
s="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Inserir Caracter Especial',title:'Seleccione um caracter especial',options:'Special Character Options'},link:{toolbar:'Inserir/Editar Hiperligação',other:'<outro>',menu:'Editar Hiperligação',title:'Hiperligação',info:'Informação de Hiperligação',target:'Destino',upload:'Carregar',advanced:'Avançado',type:'Tipo de Hiperligação',toUrl:'URL',toAnchor:'Referência a esta página',toEmail:'E-Mail',targetFrame:'<Frame>',targetPopup:'<Janela de popup>',targetFrameName:'Nome do Frame Destino',targetPopupName:'Nome da Janela de Popup',popupFeatures:'CaracterÃsticas de Janela de Popup',popupResizable:'Resizable',popupStatusBar:'Barra de Estado',popupLocationBar:'Barra de localização',popupToolbar:'Barra de Ferramentas',popupMenuBar:'Barra de Menu',popupFullScreen:'Janela Completa (IE)',popupScrollBars:'Barras de deslocamento',popupDependent:'Dependente (Netsc
ape)',popupWidth:'Largura',popupLeft:'Posição Esquerda',popupHeight:'Altura',popupTop:'Posição Direita',id:'Id',langDir:'Orientação de idioma',langDirLTR:'Esquerda à Direita (LTR)',langDirRTL:'Direita a Esquerda (RTL)',acccessKey:'Chave de Acesso',name:'Nome',langCode:'Orientação de idioma',tabIndex:'Ãndice de Tubulação',advisoryTitle:'TÃtulo',advisoryContentType:'Tipo de Conteúdo',cssClasses:'Classes de Estilo de Folhas Classes',charset:'Fonte de caracteres vinculado',styles:'Estilo',selectAnchor:'Seleccionar una referência',anchorName:'Por Nome de Referência',anchorId:'Por ID de elemento',emailAddress:'Endereço de E-Mail',emailSubject:'TÃtulo de Mensagem',emailBody:'Corpo da Mensagem',noAnchors:'(Não há referências disponÃveis no documento)',noUrl:'Por favor introduza a hiperligação URL',noEmail:'Por favor introduza o endereço de e-mail'},anchor:{toolbar:' Inserir/Editar Ãncora',menu:'Propriedades da Ãncora',title:'Propriedades da Ãncora',name:'
Nome da Ãncora',errorName:'Por favor, introduza o nome da âncora'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Procurar',replace:'Substituir',findWhat:'Texto a Procurar:',replaceWith:'Substituir por:',notFoundMsg:'O texto especificado não foi encontrado.',matchCase:'Maiúsculas/Minúsculas',matchWord:'Co
incidir com toda a palavra',matchCyclic:'Match cyclic',replaceAll:'Substituir Tudo',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabela',title:'Propriedades da Tabela',menu:'Propriedades da Tabela',deleteTable:'Eliminar Tabela',rows:'Linhas',columns:'Colunas',border:'Tamanho do Limite',align:'Alinhamento',alignLeft:'Esquerda',alignCenter:'Centrado',alignRight:'Direita',width:'Largura',widthPx:'pixeis',widthPc:'percentagem',widthUnit:'width unit',height:'Altura',cellSpace:'Esp. e/células',cellPad:'Esp. interior',caption:'TÃtulo',summary:'Sumário',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a
number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Célula',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'Eliminar Célula',merge:'Unir Células',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Linha',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'E
liminar Linhas'},column:{menu:'Coluna',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'Eliminar Coluna'}},button:{title:'Propriedades do Botão',text:'Texto (Valor)',type:'Tipo',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Propriedades da Caixa de Verificação',radioTitle:'Propriedades do Botão de Opção',value:'Valor',selected:'Seleccionado'},form:{title:'Propriedades do Formulário',menu:'Propriedades do Formulário',action:'Acção',method:'Método',encoding:'Encoding'},select:{title:'Propriedades da Caixa de Combinação',selectInfo:'Informação',opAvail:'Opções PossÃveis',value:'Valor',size:'Tamanho',lines:'linhas',chkMulti:'Permitir selecções múltiplas',opText:'Texto',opValue:'Valor',btnAdd:'Adicionar',btnModify:'Modificar',btnUp:'Para cima',btnDown:'Para baixo',btnSetValue:'Definir um valor por defeito',btnDelete:'Apagar'},textarea:{title:'Propriedades da Ãrea de Texto',cols:'Colunas
',rows:'Linhas'},textfield:{title:'Propriedades do Campo de Texto',name:'Nome',value:'Valor',charWidth:'Tamanho do caracter',maxChars:'Nr. Máximo de Caracteres',type:'Tipo',typeText:'Texto',typePass:'Palavra-chave'},hidden:{title:'Propriedades do Campo Escondido',name:'Nome',value:'Valor'},image:{title:'Propriedades da Imagem',titleButton:'Propriedades do Botão de imagens',menu:'Propriedades da Imagem',infoTab:'Informação da Imagem',btnUpload:'Enviar para o Servidor',upload:'Carregar',alt:'Texto Alternativo',width:'Largura',height:'Altura',lockRatio:'Proporcional',unlockRatio:'Unlock Ratio',resetSize:'Tamanho Original',border:'Limite',hSpace:'Esp.Horiz',vSpace:'Esp.Vert',align:'Alinhamento',alignLeft:'Esquerda',alignRight:'Direita',alertUrl:'Por favor introduza o URL da imagem',linkTab:'Hiperligação',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'
Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Propriedades do Flash',propertiesTab:'Properties',title:'Propriedades do Flash',chkPlay:'Reproduzir automaticamente',chkLoop:'Loop',chkMenu:'Permitir Menu do Flash',chkFull:'Allow Fullscreen',scale:'Escala',scaleAll:'Mostrar tudo',scaleNoBorder:'Sem Limites',scaleFit:'Tamanho Exacto',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Alinhamento',alignLeft:'Esquerda',alignAbsBottom:'Abs inferior',alignAbsMiddle:'Abs centro',alignBaseline:'Linha de base',alignBottom:'Fundo',alignMiddle:'Centro',alignRight:'Direita',alignTextTop:'Topo do texto',alignTop:'Topo',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',
qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Cor de Fundo',width:'Largura',height:'Altura',hSpace:'Esp.Horiz',vSpace:'Esp.Vert',validateSrc:'Por favor introduza a hiperligação URL',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Verificação Ortográfica',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Não está num directório',changeTo:'Mudar para',btnIgnore:'Ignorar',btnIgnoreAll:'Ignorar Tudo',btnReplace:'Substituir',btnReplaceAll:'Substituir Tudo',btnUndo:'Anular',noSuggestions:'- Sem sugestões -',progress:'Verificação ortográfica em progressoâ¦',noMispell:'V
erificação ortográfica completa: não foram encontrados erros',noChanges:'Verificação ortográfica completa: não houve alteração de palavras',oneChange:'Verificação ortográfica completa: uma palavra alterada',manyChanges:'Verificação ortográfica completa: %1 palavras alteradas',ieSpellDownload:' Verificação ortográfica não instalada. Quer descarregar agora?'},smiley:{toolbar:'Emoticons',title:'Inserir um Emoticon',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Numeração',bulletedlist:'Marcas',indent:'Aumentar Avanço',outdent:'Diminuir Avanço',justify:{left:'Alinhar à Esquerda',center:'Alinhar ao Centro',right:'Alinhar à Direita',block:'Justificado'},blockquote:'Block Quote',clipboard:{title:'Colar',cutError:'A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).',copyError:'A configuração de segurança do
navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).',pasteMsg:'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Colar do Word',title:'Colar do Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Colar como Texto Simples',title:'Colar como Texto Simples'},templates:{button:'Modelos',title:'Modelo de Conteúdo',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será
perdido):',emptyListMsg:'(Sem modelos definidos)'},showBlocks:'Show Blocks',stylesCombo:{label:'Estilo',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Formato',panelTitle:'Formato',tag_p:'Normal',tag_pre:'Formatado',tag_address:'Endereço',tag_h1:'TÃtulo 1',tag_h2:'TÃtulo 2',tag_h3:'TÃtulo 3',tag_h4:'TÃtulo 4',tag_h5:'TÃtulo 5',tag_h6:'TÃtulo 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Tipo de Letra',voiceLabel:'Font',panelTitle:'Tipo de Letra'},fontSize:{label:'Tamanho',voiceLabel:'Fon
t Size',panelTitle:'Tamanho'},colorButton:{textColorTitle:'Cor do Texto',bgColorTitle:'Cor de Fundo',panelTitle:'Colors',auto:'Automático',more:'Mais Cores...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAY
T',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and cl
ick the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['pt']={"dir":"ltr","editor":"Editor de texto enriquecido","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Navegar no Servidor","url":"URL","protocol":"Protocolo","upload":"Carregar","uploadSubmit":"Enviar para o Servidor","image":"Imagem","flash":"Flash","form":"Formulário","checkbox":"Caixa de Verificação","radio":"Botão de Opção","textField":"Campo de Texto","textarea":"Ãrea de Texto","hiddenField":"Campo Escondido","button":"Botão","select":"Caixa de Combinação","imageButton":"Botão de Imagem","notSet":"<Não definido>","id":"Id","name":"Nome","langDir":"Orientação de idioma","langDirLtr":"Esquerda à Direita (LTR)","langDirRtl":"Direita a Esquerda (RTL)","langCode":"Código de Idioma","longDescr":"Descrição Completa do URL","cssClass":"Classes de Estilo de Folhas Classes","advisoryTitle":"TÃtulo","cssStyle":"Estilo","ok":"OK","cancel":"Cancelar","close":"Fechar","preview":"Pré-visualização","resize":"Arraste para redimension
ar","generalTab":"Geral","advancedTab":"Avançado","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Opções","target":"Alvo","targetNew":"Nova Janela (_blank)","targetTop":"Janela superior (_top)","targetSelf":"Mesma janela (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Esquerda à Direita (LTR)","langDirRTL":"Direita para Esquerda (RTL)","styles":"Estilo","cssClasses":"Classes de Estilo de Folhas Classes","width":"Largura","height":"Altura","align":"Alinhamento","alignLeft":"Esquerda","alignRight":"Direita","alignCenter":"Centrado","alignTop":"Topo","alignMiddle":"Centro","alignBottom":"Fundo","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified fo
r the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Negrito","italic":"Itálico","strike":"Rasurado","subscript":"Superior à Linha","sup
erscript":"Inferior à Linha","underline":"Sublinhado"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Bloco de citação"},"clipboard":{"copy":"Copiar","copyError":"A configuração de segurança do navegador não permite a execução automática de operações de copiar. Por favor use o teclado (Ctrl/Cmd+C).","cut":"Cortar","cutError":"A configuração de segurança do navegador não permite a execução automática de operações de cortar. Por favor use o teclado (Ctrl/Cmd+X).","paste":"Colar","pasteArea":"Paste Area","pasteMsg":"Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Colar"},"colorbutton":{"auto":"Automático","bgColorTitle":"Cor de Fundo","col
ors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Mais Cores...","panelTitle":"Colors","textColorTitle":"Cor do Texto"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select co
lor"},"templates":{"button":"Modelos","emptyListMsg":"(Sem modelos definidos)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Por favor, seleccione o modelo a abrir no editor<br>(o conteúdo actual será perdido):","title":"Modelo de Conteúdo"},"contextmenu":{"options":"Menu de opções de contexto"},"div":{"IdInputLabel":"ID","advisoryTitleInputLabel":"TÃtulo","cssClassInputLabel":"Classes de Estilo de Folhas Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Esquerda à Direita (LTR)","langDirLabel":"Orientação de idioma","langDirRTLLabel":"Direita a Esquerda (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Estilo","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Colapsar Barra","toolbarExpand":"Expandir Barra","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"F
orms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor de barras de ferramentas"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Marcas","numberedlist":"Numeração"},"indent":{"indent":"Aumentar Avanço","outdent":"Diminuir Avanço"},"find":{"find":"Procurar","findOptions":"Find Options","findWhat":"Texto a Procurar:","matchCase":"Maiúsculas/Minúsculas","matchCyclic":"Match cyclic","matchWord":"Coincidir com toda a palavra","notFoundMsg":"O texto especificado não foi encontrado.","replace":"Substituir","replaceAll":"Substituir Tudo","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Substituir por:","title":"Find and Replace"},"fakeobjects":{"anchor":" Inserir/Editar Ãncora","flash":"Flash Animation","hiddenfield":"Campo Escondido","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Ac
cess","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs inferior","alignAbsMiddle":"Abs centro","alignBaseline":"Linha de base","alignTextTop":"Topo do texto","bgcolor":"Cor de Fundo","chkFull":"Allow Fullscreen","chkLoop":"Loop","chkMenu":"Permitir Menu do Flash","chkPlay":"Reproduzir automaticamente","flashvars":"Variables for Flash","hSpace":"Esp.Horiz","properties":"Propriedades do Flash","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Escala","scaleAll":"Mostrar tudo","scaleFit":"Tamanho Exacto","scaleNoBorder":"Sem Limites","title":"Propriedades do Flash","vSpace":"Esp.Vert","validateHSpace":"HSpace must be a number.","validateSrc":"Por favor introduza a hiperligação URL","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaq
ue","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"Tamanho","voiceLabel":"Font Size","panelTitle":"Tamanho"},"label":"Tipo de Letra","panelTitle":"Tipo de Letra","voiceLabel":"Tipo de Letra"},"forms":{"button":{"title":"Propriedades do Botão","text":"Texto (Valor)","type":"Tipo","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Propriedades da Caixa de Verificação","radioTitle":"Propriedades do Botão de Opção","value":"Valor","selected":"Seleccionado"},"form":{"title":"Propriedades do Formulário","menu":"Propriedades do Formulário","action":"Acção","method":"Método","encoding":"Encoding"},"hidden":{"title":"Propriedades do Campo Escondido","name":"Nome","value":"Valor"},"select":{"title":"Propriedades da Caixa de Combinação","selectInfo":"Informação","opAvail":"Opções PossÃveis","value":"Valor","size":"Tamanho","lines":"linhas","chkMulti":"Permitir selecções múlt
iplas","opText":"Texto","opValue":"Valor","btnAdd":"Adicionar","btnModify":"Modificar","btnUp":"Para cima","btnDown":"Para baixo","btnSetValue":"Definir um valor por defeito","btnDelete":"Apagar"},"textarea":{"title":"Propriedades da Ãrea de Texto","cols":"Colunas","rows":"Linhas"},"textfield":{"title":"Propriedades do Campo de Texto","name":"Nome","value":"Valor","charWidth":"Tamanho do caracter","maxChars":"Nr. Máximo de Caracteres","type":"Tipo","typeText":"Texto","typePass":"Palavra-chave","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formato","panelTitle":"Formato","tag_address":"Endereço","tag_div":"Normal (DIV)","tag_h1":"TÃtulo 1","tag_h2":"TÃtulo 2","tag_h3":"TÃtulo 3","tag_h4":"TÃtulo 4","tag_h5":"TÃtulo 5","tag_h6":"TÃtulo 6","tag_p":"Normal","tag_pre":"Formatado"},"horizontalrule":{"toolbar":"Inserir Linha Horizontal"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL"
,"scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Por favor introduza o URL da imagem","alt":"Texto Alternativo","border":"Limite","btnUpload":"Enviar para o Servidor","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"Esp.Horiz","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"Informação da Imagem","linkTab":"Hiperligação","lockRatio":"Proporcional","menu":"Propriedades da Imagem","resetSize":"Tamanho Original","title":"Propriedades da Imagem","titleButton":"Propriedades do Botão de imagens","upload":"Carregar","urlMissing":"Image source URL is missing.","vSpace":"Esp.Vert","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Inserir um Emoticon","toolbar":"Emoticons"},"justify":{"block":"Justi
ficado","center":"Alinhar ao Centro","left":"Alinhar à Esquerda","right":"Alinhar à Direita"},"link":{"acccessKey":"Chave de Acesso","advanced":"Avançado","advisoryContentType":"Tipo de Conteúdo","advisoryTitle":"TÃtulo","anchor":{"toolbar":" Inserir/Editar Ãncora","menu":"Propriedades da Ãncora","title":"Propriedades da Ãncora","name":"Nome da Ãncora","errorName":"Por favor, introduza o nome da âncora","remove":"Remove Anchor"},"anchorId":"Por ID de elemento","anchorName":"Por Nome de Referência","charset":"Fonte de caracteres vinculado","cssClasses":"Classes de Estilo de Folhas Classes","emailAddress":"Endereço de E-Mail","emailBody":"Corpo da Mensagem","emailSubject":"TÃtulo de Mensagem","id":"ID","info":"Informação de Hiperligação","langCode":"Orientação de idioma","langDir":"Orientação de idioma","langDirLTR":"Esquerda à Direita (LTR)","langDirRTL":"Direita a Esquerda (RTL)","menu":"Editar Hiperligação","name":"Nome","noAnchors":"(Não há referÃ
ªncias disponÃveis no documento)","noEmail":"Por favor introduza o endereço de e-mail","noUrl":"Por favor introduza a hiperligação URL","other":"<outro>","popupDependent":"Dependente (Netscape)","popupFeatures":"CaracterÃsticas de Janela de Popup","popupFullScreen":"Janela Completa (IE)","popupLeft":"Posição Esquerda","popupLocationBar":"Barra de localização","popupMenuBar":"Barra de Menu","popupResizable":"Redimensionável","popupScrollBars":"Barras de deslocamento","popupStatusBar":"Barra de Estado","popupToolbar":"Barra de Ferramentas","popupTop":"Posição Direita","rel":"Relação","selectAnchor":"Seleccionar una referência","styles":"Estilo","tabIndex":"Ãndice de Tubulação","target":"Destino","targetFrame":"<Frame>","targetFrameName":"Nome do Frame Destino","targetPopup":"<Janela de popup>","targetPopupName":"Nome da Janela de Popup","title":"Hiperligação","toAnchor":"Referência a esta página","toEmail":"E-Mail","toUrl":"URL","toolbar":"Inserir/Editar
Hiperligação","type":"Tipo de Hiperligação","unlink":"Eliminar Hiperligação","upload":"Carregar"},"liststyle":{"armenian":"Numeração armênia","bulletedTitle":"Bulleted List Properties","circle":"CÃrculo","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disco","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"Nenhum","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Quadrado","start":"Iniciar","type":"Tipo","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximizar","minimize":"Minimizar"},"newpage":{"toolbar":"Nova Página"},"pagebrea
k":{"alt":"Quebra de página","toolbar":"Inserir Quebra de Página"},"pastetext":{"button":"Colar como Texto Simples","title":"Colar como Texto Simples"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Colar do Word","toolbar":"Colar do Word"},"preview":{"preview":"Pré-visualizar"},"print":{"toolbar":"Imprimir"},"removeformat":{"toolbar":"Eliminar Formato"},"save":{"toolbar":"Guardar"},"selectall":{"toolbar":"Seleccionar Tudo"},"showblocks":{"toolbar":"Exibir blocos"},"sourcearea":{"toolbar":"Fonte"},"specialchar":{"options":"Special Character Options","title":"Seleccione um caracter especial","toolbar":"Inserir Caracter Especial"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dict
ionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","t
oggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Estilo","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"Tamanho do Limite","caption":"TÃtulo","cell":{"menu":"Célula","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"Eliminar Célula","merge":"Unir Células","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Ro
ws span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Esp. interior","cellSpace":"Esp. e/células","column":{"menu":"Coluna","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"Eliminar Coluna"},"columns":"Colunas","deleteTable":"Eliminar Tabela","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"Nenhum","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"Propriedades da Tabela","row":{"menu":"Linha","insertBefore":"Insert Row Before","insertAfter":"Insert Ro
w After","deleteRow":"Eliminar Linhas"},"rows":"Linhas","summary":"Sumário","title":"Propriedades da Tabela","toolbar":"Tabela","widthPc":"percentagem","widthPx":"pixeis","widthUnit":"width unit"},"undo":{"redo":"Repetir","undo":"Anular"},"wsc":{"btnIgnore":"Ignorar","btnIgnoreAll":"Ignorar Tudo","btnReplace":"Substituir","btnReplaceAll":"Substituir Tudo","btnUndo":"Anular","changeTo":"Mudar para","errorLoading":"Error loading application service host: %s.","ieSpellDownload":" Verificação ortográfica não instalada. Quer descarregar agora?","manyChanges":"Verificação ortográfica completa: %1 palavras alteradas","noChanges":"Verificação ortográfica completa: não houve alteração de palavras","noMispell":"Verificação ortográfica completa: não foram encontrados erros","noSuggestions":"- Sem sugestões -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"Não está num directório","oneChange":"Verificação ortográfica completa: uma palavra al
terada","progress":"Verificação ortográfica em progressoâ¦","title":"Spell Check","toolbar":"Verificação Ortográfica"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ro.js b/share/static/RichText/lang/ro.js
index aa265fa..652ea4b 100644
--- a/share/static/RichText/lang/ro.js
+++ b/share/static/RichText/lang/ro.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ro={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Sursa',newPage:'PaginÄ nouÄ',save:'SalveazÄ',preview:'Previzualizare',cut:'Taie',copy:'CopiazÄ',paste:'AdaugÄ',print:'PrinteazÄ',underline:'Subliniat (underline)',bold:'ÃngroÅat (bold)',italic:'Ãnclinat (italic)',selectAll:'SelecteazÄ tot',removeFormat:'ÃnlÄturÄ formatarea',strike:'TÄiat (strike through)',subscript:'Indice (subscript)',superscript:'Putere (superscript)',horizontalrule:'InsereazÄ linie orizontÄ',pagebreak:'InsereazÄ separator de paginÄ (Page Break)',unlink:'ÃnlÄturÄ link (legÄturÄ web)',undo:'Starea anterioarÄ (undo)',redo:'Starea ulterioarÄ (redo)',common:{browseServer:'RÄsfoieÅte server',url:'URL',protocol:'Protocol',upload:'ÃncarcÄ',uploadSubmit:'Trimite la server',image:'Imagine',flash:'Flash',form:'Formular (Form)',checkbox:'BifÄ (Checkbox)',radio:'Buton radio (RadioButton)',textField:'Câ
mp text (TextField)',textarea:'SuprafaÅ£Ä text (Textarea)',hiddenField:'Câmp ascuns (HiddenField)',button:'Buton',select:'Câmp selecÅ£ie (SelectionField)',imageButton:'Buton imagine (ImageButton)',notSet:'<nesetat>',id:'Id',name:'Nume',langDir:'DirecÅ£ia cuvintelor',langDirLtr:'stânga-dreapta (LTR)',langDirRtl:'dreapta-stânga (RTL)',langCode:'Codul limbii',longDescr:'Descrierea lungÄ URL',cssClass:'Clasele cu stilul paginii (CSS)',advisoryTitle:'Titlul consultativ',cssStyle:'Stil',ok:'Bine',cancel:'Anulare',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Avansat',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'P
arent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'InsereazÄ caracter special',title:'SelecteazÄ caracter special',options:'Special Character Options'},link:{toolbar:'InsereazÄ/EditeazÄ link (legÄturÄ web)',other:'<alt>',menu:'EditeazÄ Link',title:'Link (LegÄturÄ web)',info:'InformaÅ£ii despre link (LegÄturÄ web)',target:'Å¢intÄ (Target)',upload:'ÃncarcÄ',advanced:'Avansat',type:'Tipul link-ului (al legÄturii web)',toUrl:'URL',toAnchor:'AncorÄ Ã®n aceastÄ paginÄ',toEmail:'E-Mail',targetFrame:'<frame>',targetPopup:'<fereastra popup>',targetFrameName:'Numele frame-ului Å£intÄ',targetPopupName:'Numele ferestrei popup',popupFeatures:'ProprietÄÅ£ile ferestrei popup',popupResizable:'Resizable',popupStatusBar:'Bara de status',popupLocationBar:
'Bara de locaÅ£ie',popupToolbar:'Bara de opÅ£iuni',popupMenuBar:'Bara de meniu',popupFullScreen:'Tot ecranul (Full Screen)(IE)',popupScrollBars:'Scroll Bars',popupDependent:'Dependent (Netscape)',popupWidth:'LÄÅ£ime',popupLeft:'PoziÅ£ia la stânga',popupHeight:'ÃnÄlÅ£ime',popupTop:'PoziÅ£ia la dreapta',id:'Id',langDir:'DirecÅ£ia cuvintelor',langDirLTR:'stânga-dreapta (LTR)',langDirRTL:'dreapta-stânga (RTL)',acccessKey:'Tasta de acces',name:'Nume',langCode:'DirecÅ£ia cuvintelor',tabIndex:'Indexul tabului',advisoryTitle:'Titlul consultativ',advisoryContentType:'Tipul consultativ al titlului',cssClasses:'Clasele cu stilul paginii (CSS)',charset:'Setul de caractere al resursei legate',styles:'Stil',selectAnchor:'SelectaÅ£i o ancorÄ',anchorName:'dupÄ numele ancorei',anchorId:'dupÄ Id-ul elementului',emailAddress:'AdresÄ de e-mail',emailSubject:'Subiectul mesajului',emailBody:'ConÅ£inutul mesajului',noAnchors:'(Nicio ancorÄ disponibilÄ Ã®n document)',noUrl:'VÄ rugÄm s
Ä scrieÅ£i URL-ul',noEmail:'VÄ rugÄm sÄ scrieÅ£i adresa de e-mail'},anchor:{toolbar:'InsereazÄ/EditeazÄ ancorÄ',menu:'ProprietÄÅ£i ancorÄ',title:'ProprietÄÅ£i ancorÄ',name:'Numele ancorei',errorName:'VÄ rugÄm scrieÅ£i numele ancorei'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'GÄseÅte Åi înlocuieÅte',find:'GÄse
Åte',replace:'ÃnlocuieÅte',findWhat:'GÄseÅte:',replaceWith:'ÃnlocuieÅte cu:',notFoundMsg:'Textul specificat nu a fost gÄsit.',matchCase:'DeosebeÅte majuscule de minuscule (Match case)',matchWord:'Doar cuvintele întregi',matchCyclic:'Match cyclic',replaceAll:'ÃnlocuieÅte tot',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabel',title:'ProprietÄÅ£ile tabelului',menu:'ProprietÄÅ£ile tabelului',deleteTable:'Återge tabel',rows:'Linii',columns:'Coloane',border:'MÄrimea marginii',align:'Aliniament',alignLeft:'Stânga',alignCenter:'Centru',alignRight:'Dreapta',width:'LÄÅ£ime',widthPx:'pixeli',widthPc:'procente',widthUnit:'width unit',height:'ÃnÄlÅ£ime',cellSpace:'SpaÅ£iu între celule',cellPad:'SpaÅ£iu în cadrul celulei',caption:'Titlu (Caption)',summary:'Rezumat',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'N
umber of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'CelulÄ',insertBefore:'InsereazÄ celulÄ Ã®nainte',insertAfter:'InsereazÄ celulÄ dupÄ',deleteCell:'Återge celule',merge:'UneÅte celule',mergeRight:'UneÅte la dreapta',mergeDown:'UneÅte jos',splitHorizontal:'Ãmparte celula pe orizontalÄ',splitVertical:'Ãmparte celula pe verticalÄ',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.
',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Linie',insertBefore:'InsereazÄ linie înainte',insertAfter:'InsereazÄ linie dupÄ',deleteRow:'Återge linii'},column:{menu:'ColoanÄ',insertBefore:'InsereazÄ coloanÄ Ã®nainte',insertAfter:'InsereazÄ coloanÄ dupÄ',deleteColumn:'Återge celule'}},button:{title:'ProprietÄÅ£i buton',text:'Text (Valoare)',type:'Tip',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'ProprietÄÅ£i bifÄ (Checkbox)',radioTitle:'ProprietÄÅ£i buton radio (Radio Button)',value:'Valoare',selected:'Selectat'},form:{title:'ProprietÄÅ£i formular (Form)',menu:'ProprietÄÅ£i formular (Form)',action:'AcÅ£iune',method:'MetodÄ',encoding:'Encoding'},select:{title:'ProprietÄÅ£i câmp selecÅ£ie (Selection Field)',selectInfo:'InformaÅ£ii',opAvail:'OpÅ£iuni disponibile',value:'Valoare',si
ze:'MÄrime',lines:'linii',chkMulti:'Permite selecÅ£ii multiple',opText:'Text',opValue:'Valoare',btnAdd:'AdaugÄ',btnModify:'ModificÄ',btnUp:'Sus',btnDown:'Jos',btnSetValue:'SeteazÄ ca valoare selectatÄ',btnDelete:'Återge'},textarea:{title:'ProprietÄÅ£i suprafaÅ£Ä text (Textarea)',cols:'Coloane',rows:'Linii'},textfield:{title:'ProprietÄÅ£i câmp text (Text Field)',name:'Nume',value:'Valoare',charWidth:'LÄrgimea caracterului',maxChars:'Caractere maxime',type:'Tip',typeText:'Text',typePass:'ParolÄ'},hidden:{title:'ProprietÄÅ£i câmp ascuns (Hidden Field)',name:'Nume',value:'Valoare'},image:{title:'ProprietÄÅ£ile imaginii',titleButton:'ProprietÄÅ£i buton imagine (Image Button)',menu:'ProprietÄÅ£ile imaginii',infoTab:'InformaÅ£ii despre imagine',btnUpload:'Trimite la server',upload:'ÃncarcÄ',alt:'Text alternativ',width:'LÄÅ£ime',height:'ÃnÄlÅ£ime',lockRatio:'PÄstreazÄ proporÅ£iile',unlockRatio:'Unlock Ratio',resetSize:'ReseteazÄ mÄrimea',border:'Margine',hS
pace:'HSpace',vSpace:'VSpace',align:'Aliniere',alignLeft:'Stânga',alignRight:'Dreapta',alertUrl:'VÄ rugÄm sÄ scrieÅ£i URL-ul imaginii',linkTab:'Link (LegÄturÄ web)',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ProprietÄÅ£ile flash-ului',propertiesTab:'Properties',title:'ProprietÄÅ£ile flash-ului',chkPlay:'RuleazÄ automat',chkLoop:'RepetÄ (Loop)',chkMenu:'ActiveazÄ meniul flash',chkFull:'Allow Fullscreen',scale:'ScalÄ',scaleAll:'AratÄ tot',scaleNoBorder:'FÄrÄ margini (No border)',scaleFit:'PotriveÅte',access:'Script Access',accessAlways:'Always',accessSa
meDomain:'Same domain',accessNever:'Never',align:'Aliniere',alignLeft:'Stânga',alignAbsBottom:'Jos absolut (Abs Bottom)',alignAbsMiddle:'Mijloc absolut (Abs Middle)',alignBaseline:'Linia de jos (Baseline)',alignBottom:'Jos',alignMiddle:'Mijloc',alignRight:'Dreapta',alignTextTop:'Text sus',alignTop:'Sus',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Coloarea fundalului',width:'LÄÅ£ime',height:'ÃnÄlÅ£ime',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'VÄ rugÄm sÄ scrieÅ£i URL-ul',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'VerificÄ text',title:'Spell Check',notAvailable:'Sorry
, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Nu e în dicÅ£ionar',changeTo:'SchimbÄ Ã®n',btnIgnore:'IgnorÄ',btnIgnoreAll:'IgnorÄ toate',btnReplace:'ÃnlocuieÅte',btnReplaceAll:'ÃnlocuieÅte tot',btnUndo:'Starea anterioarÄ (undo)',noSuggestions:'- FÄrÄ sugestii -',progress:'Verificarea textului în desfÄÅurare...',noMispell:'Verificarea textului terminatÄ: Nicio greÅealÄ gÄsitÄ',noChanges:'Verificarea textului terminatÄ: Niciun cuvânt modificat',oneChange:'Verificarea textului terminatÄ: Un cuvânt modificat',manyChanges:'Verificarea textului terminatÄ: 1% cuvinte modificate',ieSpellDownload:'Unealta pentru verificat textul (Spell checker) neinstalatÄ. DoriÅ£i sÄ o descÄrcaÅ£i acum?'},smiley:{toolbar:'FigurÄ expresivÄ (Emoticon)',title:'InsereazÄ o figurÄ expresivÄ (Emoticon)',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ListÄ numerot
atÄ',bulletedlist:'ListÄ cu puncte',indent:'CreÅte indentarea',outdent:'Scade indentarea',justify:{left:'Aliniere la stânga',center:'Aliniere centralÄ',right:'Aliniere la dreapta',block:'Aliniere în bloc (Block Justify)'},blockquote:'Citat',clipboard:{title:'AdaugÄ',cutError:'SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de tÄiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+X).',copyError:'SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de copiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+C).',pasteMsg:'VÄ rugÄm adÄugaÅ£i în cÄsuÅ£a urmÄtoare folosind tastatura (<STRONG>Ctrl/Cmd+V</STRONG>) Åi apÄsaÅ£i <STRONG>OK</STRONG>.',securityMsg:'Din cauza setÄrilor de securitate ale programului dvs. cu care navigaÅ£i pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui sÄ adÄ
ugaÅ£i din nou datele în aceastÄ fereastrÄ.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'AdaugÄ din Word',title:'AdaugÄ din Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'AdaugÄ ca text simplu (Plain Text)',title:'AdaugÄ ca text simplu (Plain Text)'},templates:{button:'Template-uri (Åabloane)',title:'Template-uri (Åabloane) de conÅ£inut',options:'Template Options',insertOption:'ÃnlocuieÅte cuprinsul actual',selectPromptMsg:'VÄ rugÄm selectaÅ£i template-ul (Åablonul) ce se va deschide în editor<br>(conÅ£inutul actual va fi pierdut):',emptyListMsg:'(Niciun template (Åablon) definit)'},showBlocks:'AratÄ blocurile',stylesCombo:{label:'Stil',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Formatare',panelTi
tle:'Formatare',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font'},fontSize:{label:'MÄrime',voiceLabel:'Font Size',panelTitle:'MÄrime'},colorButton:{textColorTitle:'Culoarea textului',bgColorTitle:'Coloarea fundalului',panelTitle:'Colors',auto:'Automatic',more:'Mai multe culori...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','
008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',option
sTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize'
,fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ro']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"ApasÄ ALT 0 pentru ajutor","browseServer":"RÄsfoieÅte server","url":"URL","protocol":"Protocol","upload":"ÃncarcÄ","uploadSubmit":"Trimite la server","image":"Imagine","flash":"Flash","form":"Formular (Form)","checkbox":"BifÄ (Checkbox)","radio":"Buton radio (RadioButton)","textField":"Câmp text (TextField)","textarea":"SuprafaÅ£Ä text (Textarea)","hiddenField":"Câmp ascuns (HiddenField)","button":"Buton","select":"Câmp selecÅ£ie (SelectionField)","imageButton":"Buton imagine (ImageButton)","notSet":"<nesetat>","id":"Id","name":"Nume","langDir":"DirecÅ£ia cuvintelor","langDirLtr":"stânga-dreapta (LTR)","langDirRtl":"dreapta-stânga (RTL)","langCode":"Codul limbii","longDescr":"Descrierea lungÄ URL","cssClass":"Clasele cu stilul paginii (CSS)","advisoryTitle":"Titlul consultativ","cssStyle":"Stil","ok":"OK","cancel":"Anulare","close":"Ãnchide","preview":"Previzualizare","resize":
"Trage pentru a redimensiona","generalTab":"General","advancedTab":"Avansat","validateNumberFailed":"AceastÄ valoare nu este un numÄr.","confirmNewPage":"Orice modificÄri nesalvate ale acestui conÈinut, vor fi pierdute. Sigur doriÈi încÄrcarea unei noi pagini?","confirmCancel":"Câteva opÈiuni au fost schimbate. Sigur doriÈi sÄ Ã®nchideÈi dialogul?","options":"OpÈiuni","target":"ÈintÄ","targetNew":"FereastrÄ nouÄ (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Ãn aceeaÈi fereastrÄ (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Stânga spre Dreapta (LTR)","langDirRTL":"Dreapta spre Stânga (RTL)","styles":"Stil","cssClasses":"Stylesheet Classes","width":"LÄÅ£ime","height":"ÃnÄlÅ£ime","align":"Aliniere","alignLeft":"MÄreÈte Bara","alignRight":"Dreapta","alignCenter":"Centru","alignTop":"Sus","alignMiddle":"Mijloc","alignBottom":"Jos","invalidValue":"Invalid value.","invalidHeight":"ÃnÄlÈimea trebuie sÄ fie un numÄr.","i
nvalidWidth":"LÄÈimea trebuie sÄ fie un numÄr.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bo
ld":"ÃngroÅat (bold)","italic":"Ãnclinat (italic)","strike":"TÄiat (strike through)","subscript":"Indice (subscript)","superscript":"Putere (superscript)","underline":"Subliniat (underline)"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Citat"},"clipboard":{"copy":"CopiazÄ","copyError":"SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de copiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+C).","cut":"Taie","cutError":"SetÄrile de securitate ale navigatorului (browser) pe care îl folosiÅ£i nu permit editorului sÄ execute automat operaÅ£iunea de tÄiere. VÄ rugÄm folosiÅ£i tastatura (Ctrl/Cmd+X).","paste":"AdaugÄ","pasteArea":"SuprafaÈa de adÄugare","pasteMsg":"VÄ rugÄm adÄugaÅ£i în cÄsuÅ£a urmÄtoare folosind tastatura (<strong>Ctrl/Cmd+V</strong>) Åi apÄsaÅ£i OK","securityMsg":"Din cauza setÄrilor de securi
tate ale programului dvs. cu care navigaÅ£i pe internet (browser), editorul nu poate accesa direct datele din clipboard. Va trebui sÄ adÄugaÅ£i din nou datele în aceastÄ fereastrÄ.","title":"AdaugÄ"},"colorbutton":{"auto":"Automatic","bgColorTitle":"Coloarea fundalului","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew
","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Mai multe culori...","panelTitle":"Colors","textColorTitle":"Culoarea textului"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Template-uri (Åabloane)","emptyListMsg":"(Niciun template (Åablon) definit)","insertOption":"ÃnlocuieÅte cuprinsul actual","options":"OpÈiuni Èabloane","selectPromptMsg":"VÄ rugÄm selectaÅ£i template-ul (Åablonul) ce se va deschide în editor<br>(conÅ£inutul actual va fi pierdut):","title":"Template-uri (Åabloane) de conÅ£inut"},"contextmenu":{"options":"OpÈiuni Meniu Contextual"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Titlul consultativ","cssClassInputLabel":"Clasele cu stilul paginii (CSS)","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"stânga-dreapta (LTR)","langDirLabel":"DirecÅ£ia cuvintelor","langDi
rRTLLabel":"dreapta-stânga (RTL)","languageCodeInputLabel":"Codul limbii","remove":"Remove Div","styleSelectLabel":"Stil","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"MicÈoreazÄ Bara","toolbarExpand":"MÄreÈte Bara","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"EditeazÄ bara de unelte"},"elementspath":{"eleLabel":"Calea elementelor","eleTitle":"%1 element"},"list":{"bulletedlist":"InsereazÄ / EliminÄ ListÄ cu puncte","numberedlist":"InsereazÄ / EliminÄ ListÄ numerotatÄ"},"indent":{"indent":"CreÅte indentarea","outdent":"Scade indentarea"},"find":{"find":"GÄseÅte","findOptions":"Find Options","findWhat":"GÄseÅte:","matchCase":"DeosebeÅte majuscule de minuscule (Match case)","matchCyclic":"PotriveÈte ci
clic","matchWord":"Doar cuvintele întregi","notFoundMsg":"Textul specificat nu a fost gÄsit.","replace":"ÃnlocuieÅte","replaceAll":"ÃnlocuieÅte tot","replaceSuccessMsg":"%1 cÄutÄri înlocuite.","replaceWith":"ÃnlocuieÅte cu:","title":"GÄseÅte Åi înlocuieÅte"},"fakeobjects":{"anchor":"InsereazÄ/EditeazÄ ancorÄ","flash":"Flash Animation","hiddenfield":"Câmp ascuns (HiddenField)","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Acces script","accessAlways":"Ãntotdeauna","accessNever":"NiciodatÄ","accessSameDomain":"AcelaÈi domeniu","alignAbsBottom":"Jos absolut (Abs Bottom)","alignAbsMiddle":"Mijloc absolut (Abs Middle)","alignBaseline":"Linia de jos (Baseline)","alignTextTop":"Text sus","bgcolor":"Coloarea fundalului","chkFull":"Permite pe tot ecranul","chkLoop":"RepetÄ (Loop)","chkMenu":"ActiveazÄ meniul flash","chkPlay":"RuleazÄ automat","flashvars":"Variabile pentru flash","hSpace":"HSpace","properties":"ProprietÄÅ£ile flashului","p
ropertiesTab":"ProprietÄÈi","quality":"Calitate","qualityAutoHigh":"Auto înaltÄ","qualityAutoLow":"Auto JoasÄ","qualityBest":"Cea mai bunÄ","qualityHigh":"ÃnaltÄ","qualityLow":"JoasÄ","qualityMedium":"Medie","scale":"ScalÄ","scaleAll":"AratÄ tot","scaleFit":"PotriveÅte","scaleNoBorder":"FÄrÄ bordurÄ (No border)","title":"ProprietÄÅ£ile flashului","vSpace":"VSpace","validateHSpace":"Hspace trebuie sÄ fie un numÄr.","validateSrc":"VÄ rugÄm sÄ scrieÅ£i URL-ul","validateVSpace":"VSpace trebuie sÄ fie un numÄr","windowMode":"Mod fereastrÄ","windowModeOpaque":"OpacÄ","windowModeTransparent":"TransparentÄ","windowModeWindow":"FereastrÄ"},"font":{"fontSize":{"label":"MÄrime","voiceLabel":"Font Size","panelTitle":"MÄrime"},"label":"Font","panelTitle":"Font","voiceLabel":"Font"},"forms":{"button":{"title":"ProprietÄÅ£i buton","text":"Text (Valoare)","type":"Tip","typeBtn":"Buton","typeSbm":"Trimite","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"
ProprietÄÅ£i bifÄ (Checkbox)","radioTitle":"ProprietÄÅ£i buton radio (Radio Button)","value":"Valoare","selected":"Selectat"},"form":{"title":"ProprietÄÅ£i formular (Form)","menu":"ProprietÄÅ£i formular (Form)","action":"AcÅ£iune","method":"MetodÄ","encoding":"Encodare"},"hidden":{"title":"ProprietÄÅ£i câmp ascuns (Hidden Field)","name":"Nume","value":"Valoare"},"select":{"title":"ProprietÄÅ£i câmp selecÅ£ie (Selection Field)","selectInfo":"InformaÅ£ii","opAvail":"OpÅ£iuni disponibile","value":"Valoare","size":"MÄrime","lines":"linii","chkMulti":"Permite selecÅ£ii multiple","opText":"Text","opValue":"Valoare","btnAdd":"AdaugÄ","btnModify":"ModificÄ","btnUp":"Sus","btnDown":"Jos","btnSetValue":"SeteazÄ ca valoare selectatÄ","btnDelete":"Återge"},"textarea":{"title":"ProprietÄÅ£i suprafaÅ£Ä text (Textarea)","cols":"Coloane","rows":"Linii"},"textfield":{"title":"ProprietÄÅ£i câmp text (Text Field)","name":"Nume","value":"Valoare","charWidth":"LÄrgimea carac
terului","maxChars":"Caractere maxime","type":"Tip","typeText":"Text","typePass":"ParolÄ","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formatare","panelTitle":"Formatare","tag_address":"AdresÄ","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatat"},"horizontalrule":{"toolbar":"InsereazÄ linie orizontalÄ"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"VÄ rugÄm sÄ scrieÅ£i URL-ul imaginii","alt":"Text alternativ","border":"Margine","btnUpload":"Trimite la server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoT
ab":"InformaÅ£ii despre imagine","linkTab":"Link (LegÄturÄ web)","lockRatio":"PÄstreazÄ proporÅ£iile","menu":"ProprietÄÅ£ile imaginii","resetSize":"ReseteazÄ mÄrimea","title":"ProprietÄÅ£ile imaginii","titleButton":"ProprietÄÅ£i buton imagine (Image Button)","upload":"ÃncarcÄ","urlMissing":"Sursa URL a imaginii lipseÈte.","vSpace":"VSpace","validateBorder":"Bordura trebuie sÄ fie un numÄr întreg.","validateHSpace":"Hspace trebuie sÄ fie un numÄr întreg.","validateVSpace":"Vspace trebuie sÄ fie un numÄr întreg."},"smiley":{"options":"OpÈiuni figuri expresive","title":"InsereazÄ o figurÄ expresivÄ (Emoticon)","toolbar":"FigurÄ expresivÄ (Emoticon)"},"justify":{"block":"Aliniere în bloc (Block Justify)","center":"Aliniere centralÄ","left":"Aliniere la stânga","right":"Aliniere la dreapta"},"link":{"acccessKey":"Tasta de acces","advanced":"Avansat","advisoryContentType":"Tipul consultativ al titlului","advisoryTitle":"Titlul consultativ","anchor":{"
toolbar":"InsereazÄ/EditeazÄ ancorÄ","menu":"ProprietÄÅ£i ancorÄ","title":"ProprietÄÅ£i ancorÄ","name":"Numele ancorei","errorName":"VÄ rugÄm scrieÅ£i numele ancorei","remove":"EliminÄ ancora"},"anchorId":"dupÄ Id-ul elementului","anchorName":"dupÄ numele ancorei","charset":"Setul de caractere al resursei legate","cssClasses":"Clasele cu stilul paginii (CSS)","emailAddress":"AdresÄ de e-mail","emailBody":"OpÈiuni Meniu Contextual","emailSubject":"Subiectul mesajului","id":"Id","info":"InformaÅ£ii despre link (LegÄturÄ web)","langCode":"DirecÅ£ia cuvintelor","langDir":"DirecÅ£ia cuvintelor","langDirLTR":"stânga-dreapta (LTR)","langDirRTL":"dreapta-stânga (RTL)","menu":"EditeazÄ Link","name":"Nume","noAnchors":"(Nicio ancorÄ disponibilÄ Ã®n document)","noEmail":"VÄ rugÄm sÄ scrieÅ£i adresa de e-mail","noUrl":"VÄ rugÄm sÄ scrieÅ£i URL-ul","other":"<alt>","popupDependent":"Dependent (Netscape)","popupFeatures":"ProprietÄÅ£ile ferestrei popup","popupFu
llScreen":"Tot ecranul (Full Screen)(IE)","popupLeft":"PoziÅ£ia la stânga","popupLocationBar":"Bara de locaÅ£ie","popupMenuBar":"Bara de meniu","popupResizable":"Redimensionabil","popupScrollBars":"Bare de derulare","popupStatusBar":"Bara de status","popupToolbar":"Bara de opÅ£iuni","popupTop":"PoziÅ£ia la dreapta","rel":"RelaÈie","selectAnchor":"SelectaÅ£i o ancorÄ","styles":"Stil","tabIndex":"Indexul tabului","target":"Å¢intÄ (Target)","targetFrame":"<frame>","targetFrameName":"Numele frameului Å£intÄ","targetPopup":"<fereastra popup>","targetPopupName":"Numele ferestrei popup","title":"Link (LegÄturÄ web)","toAnchor":"AncorÄ Ã®n aceastÄ paginÄ","toEmail":"E-Mail","toUrl":"URL","toolbar":"InsereazÄ/EditeazÄ link (legÄturÄ web)","type":"Tipul link-ului (al legÄturii web)","unlink":"ÃnlÄturÄ link (legÄturÄ web)","upload":"ÃncarcÄ"},"liststyle":{"armenian":"Numerotare armenianÄ","bulletedTitle":"ProprietÄÈile listei cu simboluri","circle":"Cerc","deci
mal":"Decimale (1, 2, 3, etc.)","decimalLeadingZero":"Decimale cu zero în faÈÄ (01, 02, 03, etc.)","disc":"Disc","georgian":"Numerotare georgianÄ (an, ban, gan, etc.)","lowerAlpha":"Litere mici (a, b, c, d, e, etc.)","lowerGreek":"Litere greceÈti mici (alpha, beta, gamma, etc.)","lowerRoman":"Cifre romane mici (i, ii, iii, iv, v, etc.)","none":"Nimic","notset":"<nesetat>","numberedTitle":"ProprietÄÈile listei numerotate","square":"PÄtrat","start":"Start","type":"Tip","upperAlpha":"Litere mari (A, B, C, D, E, etc.)","upperRoman":"Cifre romane mari (I, II, III, IV, V, etc.)","validateStartNumber":"Ãnceputul listei trebuie sÄ fie un numÄr întreg."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"MÄreÈte","minimize":"MicÈoreazÄ"},"newpage":{"toolbar":"PaginÄ nouÄ"},"pagebreak":{"alt":"Page Break","toolbar":"InsereazÄ separator de paginÄ (Page Break)"},"pastetext":{"button":"AdaugÄ ca text simplu (Plain Text)","title":"AdaugÄ ca text si
mplu (Plain Text)"},"pastefromword":{"confirmCleanup":"Textul pe care doriÈi sÄ-l lipiÈi este din Word. DoriÈi curÄÈarea textului înante de a-l adÄuga?","error":"Nu a fost posibilÄ curÄÈarea datelor adÄugate datoritÄ unei erori interne","title":"AdaugÄ din Word","toolbar":"AdaugÄ din Word"},"preview":{"preview":"Previzualizare"},"print":{"toolbar":"PrinteazÄ"},"removeformat":{"toolbar":"ÃnlÄturÄ formatarea"},"save":{"toolbar":"SalveazÄ"},"selectall":{"toolbar":"SelecteazÄ tot"},"showblocks":{"toolbar":"AratÄ blocurile"},"sourcearea":{"toolbar":"Sursa"},"specialchar":{"options":"OpÈiuni caractere speciale","title":"SelecteazÄ caracter special","toolbar":"InsereazÄ caracter special"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are lim
ited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"For
matarea stilurilor","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"MÄrimea marginii","caption":"Titlu (Caption)","cell":{"menu":"CelulÄ","insertBefore":"InsereazÄ celulÄ Ã®nainte","insertAfter":"InsereazÄ celulÄ dupÄ","deleteCell":"Återge celule","merge":"UneÅte celule","mergeRight":"UneÅte la dreapta","mergeDown":"UneÅte jos","splitHorizontal":"Ãmparte celula pe orizontalÄ","splitVertical":"Ãmparte celula pe verticalÄ","title":"ProprietÄÈi celulÄ","cellType":"Tipul celulei","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Aliniament orizontal","vAlign":"Aliniament vertical","alignBaseline":"Baseline","bgColor":"Culoare fundal","borderColor":"Culoare bordurÄ","data":"Data","header":"Antet","yes":"Da","no":"Nu","invalidWidth":"LÄÈimea celulei trebuie sÄ fie un numÄr.","invalidHeight":"ÃnÄlÈimea celulei trebuie sÄ fie un numÄr.","invalidRowSpan":"Rows span m
ust be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Alege"},"cellPad":"SpaÅ£iu în cadrul celulei","cellSpace":"SpaÅ£iu între celule","column":{"menu":"ColoanÄ","insertBefore":"InsereazÄ coloanÄ Ã®nainte","insertAfter":"InsereazÄ coloanÄ dupÄ","deleteColumn":"Återge celule"},"columns":"Coloane","deleteTable":"Återge tabel","headers":"Antente","headersBoth":"Ambele","headersColumn":"Prima coloanÄ","headersNone":"Nimic","headersRow":"Primul rând","invalidBorder":"Dimensiunea bordurii trebuie sÄ aibe un numÄr.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"SpaÈierea celului trebuie sÄ fie un numÄr pozitiv.","invalidCols":"NumÄrul coloanelor trebuie sÄ fie mai mare decât 0.","invalidHeight":"Table height must be a number.","invalidRows":"NumÄrul rândurilor trebuie sÄ fie mai mare decât 0.","invalidWidth":"LÄÈimea tabelului trebuie sÄ fie un numÄr.","menu":"ProprietÄÅ£ile
tabelului","row":{"menu":"Rând","insertBefore":"InsereazÄ rând înainte","insertAfter":"InsereazÄ rând dupÄ","deleteRow":"Återge rânduri"},"rows":"Rânduri","summary":"Rezumat","title":"ProprietÄÅ£ile tabelului","toolbar":"Tabel","widthPc":"procente","widthPx":"pixeli","widthUnit":"unitate lÄÈime"},"undo":{"redo":"Starea ulterioarÄ (redo)","undo":"Starea anterioarÄ (undo)"},"wsc":{"btnIgnore":"IgnorÄ","btnIgnoreAll":"IgnorÄ toate","btnReplace":"ÃnlocuieÅte","btnReplaceAll":"ÃnlocuieÅte tot","btnUndo":"Starea anterioarÄ (undo)","changeTo":"SchimbÄ Ã®n","errorLoading":"Eroare în lansarea aplicaÈiei service host %s.","ieSpellDownload":"Unealta pentru verificat textul (Spell checker) neinstalatÄ. DoriÅ£i sÄ o descÄrcaÅ£i acum?","manyChanges":"Verificarea textului terminatÄ: 1% cuvinte modificate","noChanges":"Verificarea textului terminatÄ: Niciun cuvânt modificat","noMispell":"Verificarea textului terminatÄ: Nicio greÅealÄ gÄsitÄ","noSuggestio
ns":"- FÄrÄ sugestii -","notAvailable":"ScuzaÈi, dar serviciul nu este disponibil momentan.","notInDic":"Nu e în dicÅ£ionar","oneChange":"Verificarea textului terminatÄ: Un cuvânt modificat","progress":"Verificarea textului în desfÄÅurare...","title":"Spell Check","toolbar":"VerificÄ scrierea textului"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ru.js b/share/static/RichText/lang/ru.js
index fbd990c..334568a 100644
--- a/share/static/RichText/lang/ru.js
+++ b/share/static/RichText/lang/ru.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.ru={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'ÐÑÑоÑник',newPage:'ÐÐ¾Ð²Ð°Ñ ÑÑÑаниÑа',save:'СоÑ
ÑаниÑÑ',preview:'ÐÑедваÑиÑелÑнÑй пÑоÑмоÑÑ',cut:'ÐÑÑезаÑÑ',copy:'ÐопиÑоваÑÑ',paste:'ÐÑÑавиÑÑ',print:'ÐеÑаÑÑ',underline:'ÐодÑеÑкнÑÑÑй',bold:'ÐиÑнÑй',italic:'ÐÑÑÑив',selectAll:'ÐÑделиÑÑ Ð²Ñе',removeFormat:'УбÑаÑÑ ÑоÑмаÑиÑование',strike:'ÐаÑеÑкнÑÑÑй',subscript:'ÐодÑÑÑоÑнÑй индекÑ',superscript:'ÐадÑÑÑоÑнÑй индекÑ',horizontalrule:'ÐÑÑавиÑÑ Ð³Ð¾ÑизонÑалÑнÑÑ Ð»Ð¸Ð½Ð¸Ñ',pagebreak:'ÐÑÑавиÑÑ ÑазÑÑв ÑÑÑаниÑÑ',unlink:'УбÑаÑÑ ÑÑÑлкÑ',undo:'ÐÑмениÑÑ',redo:'ÐовÑоÑиÑÑ',common:{browseServer:'ÐÑоÑмоÑÑеÑÑ Ð½Ð° ÑеÑвеÑе',url:'URL',protocol:'ÐÑоÑ
окол',upload:'ÐакаÑаÑÑ',uploadSubmit:'ÐоÑлаÑÑ Ð½Ð° ÑеÑвеÑ',image:'ÐзобÑажение',flash:'Flash',form:'ФоÑма',checkbox:'Ð¤Ð»Ð°Ð³Ð¾Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°',radio:'Ðнопка вÑбоÑа',textField:'ТекÑÑовое поле',textarea:'ТекÑÑÐ¾Ð²Ð°Ñ Ð¾Ð±Ð»Ð°ÑÑÑ',hiddenField:'СкÑÑÑое поле',button:'Ðнопка',select:'СпиÑок',imageButton:'Ðнопка Ñ Ð¸Ð·Ð¾Ð±Ñажением',notSet:'<не опÑеделено>',id:'ÐденÑиÑикаÑоÑ',name:'ÐмÑ',langDir:'ÐапÑавление ÑзÑка',langDirLtr:'Слева на пÑаво (LTR)',langDirRtl:'СпÑава на лево (RTL)',langCode:'ЯзÑк',longDescr:'Ðлинное опиÑание URL',cssClass:'ÐлаÑÑ CSS',advisoryTitle:'Ðаголовок',cssStyle:'СÑÐ¸Ð»Ñ CSS',ok:'ÐÐ',cancel:'ÐÑмена',close:'Close',preview:'Preview',generalTab:'ÐнÑоÑмаÑиÑ',advancedTab:'РаÑÑиÑеннÑй',validateNumberFailed:'ÐÑо знаÑ
ение не ÑвлÑеÑÑÑ ÑиÑлом.',confirmNewPage:'ÐÑе неÑоÑ
ÑаненнÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑÑеÑÑнÑ. ÐÑ ÑвеÑенÑ, ÑÑо Ñ
оÑиÑе пеÑейÑи на дÑÑгÑÑ ÑÑÑаниÑÑ?',confirmCancel:'ÐекоÑоÑÑе опÑии бÑли измененÑ. ÐÑ ÑвеÑенÑ, ÑÑо Ñ
оÑиÑе закÑÑÑÑ Ð´Ð¸Ð°Ð»Ð¾Ð³?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, недоÑÑÑпно</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'ÐÑÑавиÑÑ ÑпеÑиалÑнÑй Ñимвол',title:'ÐÑбеÑиÑе ÑпеÑиалÑнÑй Ñимвол',options:'Special Character Options'},link:{toolbar:'ÐÑÑави
ÑÑ/РедакÑиÑоваÑÑ ÑÑÑлкÑ',other:'<дÑÑгой>',menu:'ÐÑÑавиÑÑ ÑÑÑлкÑ',title:'СÑÑлка',info:'ÐнÑоÑмаÑÐ¸Ñ ÑÑÑлки',target:'ЦелÑ',upload:'ÐакаÑаÑÑ',advanced:'РаÑÑиÑеннÑй',type:'Тип ÑÑÑлки',toUrl:'URL',toAnchor:'ЯкоÑÑ Ð½Ð° ÑÑÑ ÑÑÑаниÑÑ',toEmail:'Ðл. поÑÑа',targetFrame:'<ÑÑейм>',targetPopup:'<вÑплÑваÑÑее окно>',targetFrameName:'ÐÐ¼Ñ Ñелевого ÑÑейма',targetPopupName:'ÐÐ¼Ñ Ð²ÑплÑваÑÑего окна',popupFeatures:'СвойÑÑва вÑплÑваÑÑего окна',popupResizable:'ÐзменÑемÑй ÑазмеÑ',popupStatusBar:'СÑÑока ÑоÑÑоÑниÑ',popupLocationBar:'ÐÐ°Ð½ÐµÐ»Ñ Ð»Ð¾ÐºÐ°Ñии',popupToolbar:'ÐÐ°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',popupMenuBar:'ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ',popupFullScreen:'ÐолнÑй ÑкÑан (IE)',popupScrollBars:'ÐолоÑÑ Ð¿ÑокÑÑÑки',popupDependent:'ÐавиÑимÑй (
Netscape)',popupWidth:'ШиÑина',popupLeft:'ÐозиÑÐ¸Ñ Ñлева',popupHeight:'ÐÑÑоÑа',popupTop:'ÐозиÑÐ¸Ñ ÑвеÑÑ
Ñ',id:'Id',langDir:'ÐапÑавление ÑзÑка',langDirLTR:'Слева напÑаво (LTR)',langDirRTL:'СпÑава налево (RTL)',acccessKey:'ÐоÑÑÑÐ°Ñ ÐºÐ»Ð°Ð²Ð¸Ñа',name:'ÐмÑ',langCode:'Ðод ÑзÑка',tabIndex:'ÐоÑледоваÑелÑноÑÑÑ Ð¿ÐµÑеÑ
ода',advisoryTitle:'Ðаголовок',advisoryContentType:'Тип ÑодеÑжимого',cssClasses:'ÐлаÑÑ CSS',charset:'ÐодиÑовка',styles:'СÑÐ¸Ð»Ñ CSS',selectAnchor:'ÐÑбеÑиÑе ÑкоÑÑ',anchorName:'Ðо имени ÑкоÑÑ',anchorId:'Ðо иденÑиÑикаÑоÑÑ ÑлеменÑа',emailAddress:'ÐдÑÐµÑ Ñл. поÑÑÑ',emailSubject:'Ðаголовок ÑообÑениÑ',emailBody:'Тело ÑообÑениÑ',noAnchors:'(ÐÐµÑ ÑкоÑей доÑÑÑпнÑÑ
в ÑÑом докÑменÑе)',noUrl:'ÐожалÑйÑ
Ñа, введиÑе URL ÑÑÑлки',noEmail:'ÐожалÑйÑÑа, введиÑе адÑÐµÑ Ñл. поÑÑÑ'},anchor:{toolbar:'ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑкоÑÑ',menu:'СвойÑÑва ÑкоÑÑ',title:'СвойÑÑва ÑкоÑÑ',name:'ÐÐ¼Ñ ÑкоÑÑ',errorName:'ÐожалÑйÑÑа, введиÑе Ð¸Ð¼Ñ ÑкоÑÑ'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'
Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'ÐайÑи и замениÑÑ',find:'ÐайÑи',replace:'ÐамениÑÑ',findWhat:'ÐайÑи:',replaceWith:'ÐамениÑÑ Ð½Ð°:',notFoundMsg:'УказаннÑй ÑекÑÑ Ð½Ðµ найден.',matchCase:'УÑиÑÑваÑÑ ÑегиÑÑÑ',matchWord:'ТолÑко Ñлово Ñеликом',matchCyclic:'ÐаÑинаÑÑ Ñ Ð½Ð°Ñала поÑле доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñа',replaceAll:'ÐамениÑÑ Ð²Ñе',replaceSuccessMsg:'%1 Ñовпадение(й) заменено.'},table:{toolbar:'ТаблиÑа',title:'СвойÑÑва ÑаблиÑÑ',menu:'СвойÑÑва ÑаблиÑÑ',deleteTable:'УдалиÑÑ ÑаблиÑÑ',rows:'СÑÑоки',columns:'Ðолонки',border:'Ð Ð°Ð·Ð¼ÐµÑ Ð±Ð¾ÑдÑÑа',align:'ÐÑÑавнивание',alignLeft:'Слева',alignCenter:'Ðо ÑенÑÑÑ',alignRight:'СпÑава',width:'ШиÑина',widthPx:'пикÑелей',widthPc:'пÑоÑенÑов',width
Unit:'width unit',height:'ÐÑÑоÑа',cellSpace:'ÐÑомежÑÑок (spacing)',cellPad:'ÐÑÑÑÑп (padding)',caption:'Ðаголовок',summary:'РезÑме',headers:'Ðаголовки',headersNone:'ÐеÑ',headersColumn:'ÐеÑвÑй ÑÑолбеÑ',headersRow:'ÐеÑÐ²Ð°Ñ ÑÑÑока',headersBoth:'Ðба ваÑианÑа',invalidRows:'ЧиÑло ÑÑÑок должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.',invalidCols:'ЧиÑло ÑÑолбÑов должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.',invalidBorder:'ШиÑина боÑдÑÑа должна бÑÑÑ ÑиÑлом.',invalidWidth:'ШиÑина ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.',invalidHeight:'ÐÑÑоÑа ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.',invalidCellSpacing:'Ð Ð°Ð·Ð¼ÐµÑ Ð¿ÑомежÑÑков (cellspacing) Ð¼ÐµÐ¶Ð´Ñ ÑÑейками Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑиÑлом.',invalidCellPadding:'ÐÑÑÑÑÐ¿Ñ Ð²Ð½ÑÑÑи ÑÑеек (cellpadding) Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑиÑлом.',cell:{menu:'
ЯÑейка',insertBefore:'ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ Ð´Ð¾',insertAfter:'ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ Ð¿Ð¾Ñле',deleteCell:'УдалиÑÑ ÑÑейки',merge:'ÐбÑединиÑÑ ÑÑейки',mergeRight:'ÐбÑединиÑÑ Ñ Ð¿Ñавой',mergeDown:'ÐбÑединиÑÑ Ñ Ð½Ð¸Ð¶Ð½ÐµÐ¹',splitHorizontal:'РазбиÑÑ ÑÑÐµÐ¹ÐºÑ Ð³Ð¾ÑизонÑалÑно',splitVertical:'РазбиÑÑ ÑÑÐµÐ¹ÐºÑ Ð²ÐµÑÑикалÑно',title:'СвойÑÑва ÑÑейки',cellType:'Тип ÑÑейки',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'ÐеÑÐµÐ½Ð¾Ñ Ð¿Ð¾ Ñловам',hAlign:'ÐÑÑавнивание по гоÑизонÑали',vAlign:'ÐÑÑавнивание по веÑÑикали',alignTop:'Ðо веÑÑ
Ñ',alignMiddle:'ÐоÑеÑедине',alignBottom:'Ðо низÑ',alignBaseline:'Ðо базовой линии',bgColor:'Ð¦Ð²ÐµÑ Ñона',borderColor:'Ð¦Ð²ÐµÑ Ð³ÑаниÑÑ',data:'ÐаннÑе',header:'Ðаголовок',yes:'Ðа',no:'ÐеÑ
',invalidWidth:'ШиÑина ÑÑейки должна бÑÑÑ ÑиÑлом.',invalidHeight:'ÐÑÑоÑа ÑÑейки должна бÑÑÑ ÑиÑлом.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'ÐÑбеÑиÑе'},row:{menu:'СÑÑока',insertBefore:'ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ Ð´Ð¾',insertAfter:'ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ Ð¿Ð¾Ñле',deleteRow:'УдалиÑÑ ÑÑÑоки'},column:{menu:'Ðолонка',insertBefore:'ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð´Ð¾',insertAfter:'ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð¿Ð¾Ñле',deleteColumn:'УдалиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸'}},button:{title:'СвойÑÑва кнопки',text:'ТекÑÑ (ÐнаÑение)',type:'Тип',typeBtn:'Ðнопка',typeSbm:'ÐÑпÑавиÑÑ',typeRst:'СбÑоÑиÑÑ'},checkboxAndRadio:{checkboxTitle:'СвойÑÑва Ñлаговой кнопки',radioTitle:'СвойÑÑва кнопки вÑбоÑа',value:'ÐнаÑение'
,selected:'ÐÑбÑаннаÑ'},form:{title:'СвойÑÑва ÑоÑмÑ',menu:'СвойÑÑва ÑоÑмÑ',action:'ÐейÑÑвие',method:'ÐеÑод',encoding:'ÐодиÑовка'},select:{title:'СвойÑÑва ÑпиÑка',selectInfo:'ÐнÑоÑмаÑиÑ',opAvail:'ÐоÑÑÑпнÑе ваÑианÑÑ',value:'ÐнаÑение',size:'РазмеÑ',lines:'линии',chkMulti:'РазÑеÑиÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑвеннÑй вÑбоÑ',opText:'ТекÑÑ',opValue:'ÐнаÑение',btnAdd:'ÐобавиÑÑ',btnModify:'ÐодиÑиÑиÑоваÑÑ',btnUp:'ÐвеÑÑ
',btnDown:'Ðниз',btnSetValue:'УÑÑановиÑÑ ÐºÐ°Ðº вÑбÑанное знаÑение',btnDelete:'УдалиÑÑ'},textarea:{title:'СвойÑÑва ÑекÑÑовой облаÑÑи',cols:'Ðолонки',rows:'СÑÑоки'},textfield:{title:'СвойÑÑва ÑекÑÑового полÑ',name:'ÐмÑ',value:'ÐнаÑение',charWidth:'ШиÑина',maxChars:'ÐакÑ. кол-во ÑимволÐ
¾Ð²',type:'Тип',typeText:'ТекÑÑ',typePass:'ÐаÑолÑ'},hidden:{title:'СвойÑÑва ÑкÑÑÑого полÑ',name:'ÐмÑ',value:'ÐнаÑение'},image:{title:'СвойÑÑва изобÑажениÑ',titleButton:'СвойÑÑва кнопки Ñ Ð¸Ð·Ð¾Ð±Ñажением',menu:'СвойÑÑва изобÑажениÑ',infoTab:'ÐнÑоÑмаÑÐ¸Ñ Ð¾ изобÑажении',btnUpload:'ÐÑпÑавиÑÑ Ð½Ð° ÑеÑвеÑ',upload:'ÐакаÑаÑÑ',alt:'ÐлÑÑеÑнаÑивнÑй ÑекÑÑ',width:'ШиÑина',height:'ÐÑÑоÑа',lockRatio:'СоÑ
ÑанÑÑÑ Ð¿ÑопоÑÑии',unlockRatio:'Unlock Ratio',resetSize:'СбÑоÑиÑÑ ÑазмеÑ',border:'ÐоÑдÑÑ',hSpace:'ÐоÑизонÑалÑнÑй оÑÑÑÑп',vSpace:'ÐеÑÑикалÑнÑй оÑÑÑÑп',align:'ÐÑÑавнивание',alignLeft:'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',alignRight:'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',alertUrl:'ÐожалÑйÑÑа, введиÑе URL изобÑажениÑ',l
inkTab:'СÑÑлка',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'ÐÑÑÑÑÑÑвÑÐµÑ URL каÑÑинки.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'СвойÑÑва Flash',propertiesTab:'СвойÑÑва',title:'СвойÑÑва Flash',chkPlay:'ÐвÑо пÑоигÑÑвание',chkLoop:'ÐовÑоÑ',chkMenu:'ÐклÑÑиÑÑ Ð¼ÐµÐ½Ñ Flash',chkFull:'ÑазÑеÑиÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑаннÑй Ñежим',scale:'ÐаÑÑÑабиÑоваÑÑ',scaleAll:'ÐоказÑваÑÑ Ð²Ñе',scaleNoBorder:'Ðез боÑдÑÑа',scaleFit:'ТоÑное Ñовпадение',access:'ÐблаÑÑÑ Ð´Ð¾ÑÑÑпа ÑкÑипÑа',accessAlways:'Ð
Ñегда',accessSameDomain:'Ð¢Ð¾Ñ Ð¶Ðµ домен',accessNever:'Ðикогда',align:'ÐÑÑавнивание',alignLeft:'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',alignAbsBottom:'ÐÐ±Ñ Ð¿Ð¾Ð½Ð¸Ð·Ñ',alignAbsMiddle:'ÐÐ±Ñ Ð¿Ð¾ÑеÑедине',alignBaseline:'Ðо базовой линии',alignBottom:'ÐонизÑ',alignMiddle:'ÐоÑеÑедине',alignRight:'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',alignTextTop:'ТекÑÑ Ð½Ð°Ð²ÐµÑÑ
Ñ',alignTop:'Ðо веÑÑ
Ñ',quality:'ÐаÑеÑÑво',qualityBest:'ÐÑÑÑее',qualityHigh:'ÐÑÑокое',qualityAutoHigh:'ÐÑÑокое (авÑо)',qualityMedium:'СÑеднее',qualityAutoLow:'Ðизкое (авÑо)',qualityLow:'Ðизкое',windowModeWindow:'Ðкно',windowModeOpaque:'ÐепÑозÑаÑнÑй',windowModeTransparent:'ÐÑозÑаÑнÑй',windowMode:'ÐконнÑй Ñежим',flashvars:'ÐеÑеменнÑе Ð´Ð»Ñ Flash',bgcolor:'Ð¦Ð²ÐµÑ Ñона',width:'ШиÑина',height:'ÐÑÑоÑа',hSpace:'ÐоÑизонÑалÑнÑ
й оÑÑÑÑп',vSpace:'ÐеÑÑикалÑнÑй оÑÑÑÑп',validateSrc:'ÐожалÑйÑÑа, введиÑе URL ÑÑÑлки',validateWidth:'ШиÑина задаеÑÑÑ ÑиÑлом.',validateHeight:'ÐÑÑоÑа задаеÑÑÑ ÑиÑлом.',validateHSpace:'ÐоÑизонÑалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.',validateVSpace:'ÐеÑÑикалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.'},spellCheck:{toolbar:'ÐÑовеÑиÑÑ Ð¾ÑÑогÑаÑиÑ',title:'ÐÑовеÑка пÑавопиÑаниÑ',notAvailable:'ÐзвиниÑе, ÑеÑÐ²Ð¸Ñ ÑейÑÐ°Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен.',errorLoading:'ÐÑибка пÑи загÑÑзке ÑлÑжебного Ñ
оÑÑа пÑиложениÑ: %s.',notInDic:'ÐÐµÑ Ð² ÑловаÑе',changeTo:'ÐамениÑÑ Ð½Ð°',btnIgnore:'ÐгноÑиÑоваÑÑ',btnIgnoreAll:'ÐгноÑиÑоваÑÑ Ð²Ñе',btnReplace:'ÐамениÑÑ',btnReplaceAll:'ÐамениÑÑ Ð²Ñе',btnUndo:'ÐÑмениÑÑ',noSugg
estions:'- ÐÐµÑ Ð¿Ñедположений -',progress:'ÐÐ´ÐµÑ Ð¿ÑовеÑка оÑÑогÑаÑии...',noMispell:'ÐÑовеÑка оÑÑогÑаÑии законÑена: оÑибок не найдено',noChanges:'ÐÑовеÑка оÑÑогÑаÑии законÑена: ни одного Ñлова не изменено',oneChange:'ÐÑовеÑка оÑÑогÑаÑии законÑена: одно Ñлово изменено',manyChanges:'ÐÑовеÑка оÑÑогÑаÑии законÑена: 1% Ñлов изменено',ieSpellDownload:'ÐодÑÐ»Ñ Ð¿ÑовеÑки оÑÑогÑаÑии не ÑÑÑановлен. ХоÑиÑе ÑкаÑаÑÑ ÐµÐ³Ð¾ ÑейÑаÑ?'},smiley:{toolbar:'Смайлик',title:'ÐÑÑавиÑÑ Ñмайлик',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 ÑлеменÑ'},numberedlist:'ÐÑмеÑованнÑй ÑпиÑок',bulletedlist:'ÐаÑкиÑованнÑй ÑпиÑок',indent:'УвелиÑиÑÑ
оÑÑÑÑп',outdent:'УменÑÑиÑÑ Ð¾ÑÑÑÑп',justify:{left:'Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ',center:'Ðо ÑенÑÑÑ',right:'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',block:'Ðо ÑиÑине'},blockquote:'ЦиÑаÑа',clipboard:{title:'ÐÑÑавиÑÑ',cutError:'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не позволÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑеÑки вÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии вÑÑезаниÑ. ÐожалÑйÑÑа, иÑполÑзÑйÑе клавиаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+X).',copyError:'ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не позволÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑеÑки вÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии копиÑованиÑ. ÐожалÑйÑÑа, иÑполÑзÑйÑе клавиаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+C).',pasteMsg:'ÐожалÑйÑÑа, вÑÑавÑÑе ÑекÑÑ Ð² пÑÑмоÑголÑник, иÑполÑзÑÑ ÑÐ
¾ÑеÑание ÐºÐ»Ð°Ð²Ð¸Ñ (<STRONG>Ctrl/Cmd+V</STRONG>), и нажмиÑе <STRONG>OK</STRONG>.',securityMsg:'Ðо пÑиÑине наÑÑÑоек безопаÑноÑÑи бÑаÑзеÑа, ÑедакÑÐ¾Ñ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑпа к даннÑм бÑÑеÑа обмена напÑÑмÑÑ. Ðам необÑ
одимо вÑÑавиÑÑ ÑекÑÑ Ñнова в ÑÑо окно.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'ТекÑÑ, коÑоÑÑй Ð²Ñ Ñ
оÑиÑе вÑÑавиÑÑ, поÑ
ож на копиÑÑемÑй из Word. ÐÑ Ñ
оÑиÑе оÑиÑÑиÑÑ ÐµÐ³Ð¾ пеÑед вÑÑавкой?',toolbar:'ÐÑÑавиÑÑ Ð¸Ð· Word',title:'ÐÑÑавиÑÑ Ð¸Ð· Word',error:'Ðевозможно оÑиÑÑиÑÑ Ð²ÑÑавленнÑе даннÑе из-за внÑÑÑенней оÑибки'},pasteText:{button:'ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ',title:'ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ'},templates:{button:'ШаблонÑ',title:'Шабло
Ð½Ñ ÑодеÑжимого',options:'Template Options',insertOption:'ÐамениÑÑ ÑекÑÑее ÑодеÑжание',selectPromptMsg:'ÐожалÑйÑÑа, вÑбеÑеÑе Ñаблон Ð´Ð»Ñ Ð¾ÑкÑÑÑÐ¸Ñ Ð² ÑедакÑоÑе<br>(ÑекÑÑее ÑодеÑжимое бÑÐ´ÐµÑ Ð¿Ð¾ÑеÑÑно):',emptyListMsg:'(Ðи одного Ñаблона не опÑеделено)'},showBlocks:'ÐоказаÑÑ Ð±Ð»Ð¾ÐºÐ¸',stylesCombo:{label:'СÑилÑ',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'СÑили обÑекÑа'},format:{label:'ФоÑмаÑиÑование',panelTitle:'ФоÑмаÑиÑование',tag_p:'ÐоÑмалÑнÑй',tag_pre:'ФоÑмаÑиÑованнÑй',tag_address:'ÐдÑеÑ',tag_h1:'Ðаголовок 1',tag_h2:'Ðаголовок 2',tag_h3:'Ðаголовок 3',tag_h4:'Ðаголовок 4',tag_h5:'Ðаголовок 5',tag_h6:'Ðаголовок 6',tag_div:'ÐоÑмалÑнÑй (DIV)'},di
v:{title:'СоздаÑÑ Div-конÑейнеÑ',toolbar:'СоздаÑÑ Div-конÑейнеÑ',cssClassInputLabel:'ÐлаÑÑÑ ÑаблиÑÑ ÑÑилей',styleSelectLabel:'СÑилÑ',IdInputLabel:'Id',languageCodeInputLabel:'Ðод ÑзÑка',inlineStyleInputLabel:'ÐокалÑнÑй ÑÑилÑ',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'ÐапÑавление пиÑÑма',langDirLTRLabel:'Слева напÑаво (LTR)',langDirRTLLabel:'СпÑава налево (RTL)',edit:'РедакÑиÑоваÑÑ Div',remove:'УбÑаÑÑ Div'},font:{label:'ШÑиÑÑ',voiceLabel:'ШÑиÑÑ',panelTitle:'ШÑиÑÑ'},fontSize:{label:'РазмеÑ',voiceLabel:'Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа',panelTitle:'РазмеÑ'},colorButton:{textColorTitle:'Ð¦Ð²ÐµÑ ÑекÑÑа',bgColorTitle:'Ð¦Ð²ÐµÑ Ñона',panelTitle:'Colors',auto:'ÐвÑомаÑиÑеÑкий',more:'ЦвеÑа...'},colors:{'000':'ЧеÑнÑй',800000:'ÐоÑдовÑй','8B4513':'СÑаÑой кожи','2F4F4
F':'ТемнÑй ÑиневаÑо-ÑеÑÑй','008080':'ЧайнÑй','000080':'Темно-ÑиниÑй','4B0082':'Ðндиго',696969:'ÐÑÑзно-ÑеÑÑй',B22222:'ÐгнеÑпоÑнÑй киÑпиÑ',A52A2A:'ÐоÑиÑневÑй',DAA520:'ÐÑаÑное золоÑо','006400':'Темно-зеленÑй','40E0D0':'ÐиÑÑзовÑй','0000CD':'Синий',800080:'ÐÑÑпÑÑнÑй',808080:'СеÑÑй',F00:'ÐÑаÑнÑй',FF8C00:'Темно-оÑанжевÑй',FFD700:'ÐолоÑой','008000':'ÐеленÑй','0FF':'ÐоÑÑкой волнÑ','00F':'ÐолÑбой',EE82EE:'ФиолеÑовÑй',A9A9A9:'Темно-ÑеÑÑй',FFA07A:'СвеÑлÑй оÑанжево-ÑозовÑй',FFA500:'ÐÑанжевÑй',FFFF00:'ÐелÑÑй','00FF00':'ÐзвеÑÑковÑй',AFEEEE:'Ðледно-биÑÑзовÑй',ADD8E6:'СвелÑо-Ñиний',DDA0DD:'СливовÑй',D3D3D3:'СвеÑло-ÑеÑÑй',FFF0F5:'ÐледнÑй Ñозово-лиловÑй ',FAEBD7:'ÐнÑиÑнÑй
белÑй',FFFFE0:'СвеÑло-желÑÑй',F0FFF0:'Свежего меда',F0FFFF:'ÐазÑÑÑ',F0F8FF:'Ðледно-голÑбой',E6E6FA:'Ðледно-лиловÑй',FFF:'ÐелÑй'},scayt:{title:'ÐÑовеÑка ÐÑÑогÑаÑии по ÐеÑе Ðвода',opera_title:'Not supported by Opera',enable:'ÐклÑÑиÑÑ ÐÐÐÐ',disable:'ÐÑклÑÑиÑÑ ÐÐÐÐ',about:'Ð ÐÐÐÐ',toggle:'ÐеÑеклÑÑиÑÑ ÐÐÐÐ',options:'ÐаÑÑÑойки',langs:'ЯзÑки',moreSuggestions:'ÐолÑÑе ваÑианÑов',ignore:'ÐÑопÑÑÑиÑÑ',ignoreAll:'ÐÑопÑÑÑиÑÑ Ð²ÑÑ',addWord:'ÐобавиÑÑ Ñлово',emptyDic:'ÐÐ¼Ñ ÑловаÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ Ð½Ðµ пÑÑÑÑм.',optionsTab:'ÐаÑÑÑойки',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'ЯзÑки',dictionariesTab:'СловаÑи',dic_field_name:'D
ictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Ð ÑловаÑÑÑ
'},about:{title:'РпÑогÑамме CKEditor',dlgTitle:'РпÑогÑамме CKEditor',moreInfo:'Ðо вопÑоÑам лиÑензиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑаÑайÑеÑÑ Ð½Ð° Ð½Ð°Ñ ÑайÑ:',copy:'Copyright © $1. ÐÑе пÑава заÑиÑенÑ.'},maximize:'ÐакÑимизиÑоваÑÑ',minimize:'ÐинимизиÑоваÑÑ',fakeobjects:{anchor:'ЯкоÑÑ',flash:'Flash-анимаÑиÑ',div:'РазÑÑв ÑÑÑаниÑÑ
',unknown:'ÐеизвеÑÑнÑй обÑекÑ'},resize:'ÐеÑеÑаÑиÑе Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑа',colordialog:{title:'ÐÑбеÑиÑе ÑвеÑ',options:'Color Options',highlight:'ÐÑделиÑÑ',selected:'ÐÑбÑанное',clear:'ÐÑиÑÑиÑÑ'},toolbarCollapse:'СвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',toolbarExpand:'РазвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['ru']={"dir":"ltr","editor":"ÐизÑалÑнÑй ÑедакÑÐ¾Ñ ÑекÑÑа","common":{"editorHelp":"нажмиÑе ALT-0 Ð´Ð»Ñ Ð¾ÑкÑÑÑÐ¸Ñ ÑпÑавки","browseServer":"ÐÑÐ±Ð¾Ñ Ð½Ð° ÑеÑвеÑе","url":"СÑÑлка","protocol":"ÐÑоÑокол","upload":"ÐагÑÑзка","uploadSubmit":"ÐагÑÑзиÑÑ Ð½Ð° ÑеÑвеÑ","image":"ÐзобÑажение","flash":"Flash","form":"ФоÑма","checkbox":"Ð¤Ð»Ð°Ð³Ð¾Ð²Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°","radio":"Ðнопка вÑбоÑа","textField":"ТекÑÑовое поле","textarea":"ÐногоÑÑÑоÑное ÑекÑÑовое поле","hiddenField":"СкÑÑÑое поле","button":"Ðнопка","select":"СпиÑок вÑбоÑа","imageButton":"ÐзобÑажение-кнопка","notSet":"<не Ñказано>","id":"ÐденÑиÑикаÑоÑ","name":"ÐмÑ","langDir":"ÐапÑавление ÑекÑÑа","langDirLtr":"Слева напÑаво (LTR)","langDirRtl":"СпÑава налево
(RTL)","langCode":"Ðод ÑзÑка","longDescr":"Ðлинное опиÑание ÑÑÑлки","cssClass":"ÐлаÑÑ CSS","advisoryTitle":"Ðаголовок","cssStyle":"СÑилÑ","ok":"ÐÐ","cancel":"ÐÑмена","close":"ÐакÑÑÑÑ","preview":"ÐÑедпÑоÑмоÑÑ","resize":"ÐеÑеÑаÑиÑе Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑазмеÑа","generalTab":"ÐÑновное","advancedTab":"ÐополниÑелÑно","validateNumberFailed":"ÐÑо знаÑение не ÑвлÑеÑÑÑ ÑиÑлом.","confirmNewPage":"ÐеÑоÑ
ÑанÑннÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð¿Ð¾ÑеÑÑнÑ! ÐÑ Ð´ÐµÐ¹ÑÑвиÑелÑно желаеÑе пеÑейÑи на дÑÑгÑÑ ÑÑÑаниÑÑ?","confirmCancel":"ÐекоÑоÑÑе паÑамеÑÑÑ Ð±Ñли измененÑ. ÐÑ ÑвеÑенÑ, ÑÑо желаеÑе закÑÑÑÑ Ð±ÐµÐ· ÑоÑ
ÑанениÑ?","options":"ÐаÑамеÑÑÑ","target":"ЦелÑ","targetNew":"Ðовое окно (_blank)","targetTop":"Ð
лавное окно (_top)","targetSelf":"ТекÑÑее окно (_self)","targetParent":"РодиÑелÑÑкое окно (_parent)","langDirLTR":"Слева напÑаво (LTR)","langDirRTL":"СпÑава налево (RTL)","styles":"СÑилÑ","cssClasses":"ÐлаÑÑÑ CSS","width":"ШиÑина","height":"ÐÑÑоÑа","align":"ÐÑÑавнивание","alignLeft":"Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ","alignRight":"Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ","alignCenter":"Ðо ÑенÑÑÑ","alignTop":"Ðо веÑÑ
Ñ","alignMiddle":"Ðо ÑеÑедине","alignBottom":"Ðо низÑ","invalidValue":"ÐедопÑÑÑимое знаÑение.","invalidHeight":"ÐÑÑоÑа задаеÑÑÑ ÑиÑлом.","invalidWidth":"ШиÑина задаеÑÑÑ ÑиÑлом.","invalidCssLength":"ÐнаÑение, Ñказанное в поле \"%1\", должно бÑÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑм ÑелÑм ÑиÑлом. ÐопÑÑкаеÑÑÑ Ñказание ÐµÐ´Ð¸Ð½Ð¸Ñ Ð¼ÐµÑÑ CSS (px,
%, in, cm, mm, em, ex, pt или pc).","invalidHtmlLength":"ÐнаÑение, Ñказанное в поле \"%1\", должно бÑÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑм ÑелÑм ÑиÑлом. ÐопÑÑкаеÑÑÑ Ñказание ÐµÐ´Ð¸Ð½Ð¸Ñ Ð¼ÐµÑÑ HTML (px или %).","invalidInlineStyle":"ÐнаÑение, Ñказанное Ð´Ð»Ñ ÑÑÐ¸Ð»Ñ ÑлеменÑа, должно ÑоÑÑоÑÑÑ Ð¸Ð· одной или неÑколÑкиÑ
Ð¿Ð°Ñ Ð´Ð°Ð½Ð½ÑÑ
в ÑоÑмаÑе \"паÑамеÑÑ : знаÑение\", ÑазделÑннÑÑ
ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой.","cssLengthTooltip":"ÐведиÑе знаÑение в пикÑелÑÑ
, либо ÑиÑло Ñ ÐºÐ¾ÑÑекÑной единиÑей меÑÑ CSS (px, %, in, cm, mm, em, ex, pt или pc).","unavailable":"%1<span class=\"cke_accessibility\">, недоÑÑÑпно</span>"},"about":{"copy":"Copyright © $1. ÐÑе пÑава заÑиÑенÑ.","dlgTitle":"Ð CKEditor","help":"$1 ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð´ÑÐ
¾Ð±Ð½ÑÑ ÑпÑÐ°Ð²ÐºÑ Ð¿Ð¾ иÑполÑзованиÑ.","moreInfo":"ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о лиÑензии, пожалÑйÑÑа, пеÑейдиÑе на Ð½Ð°Ñ ÑайÑ:","title":"Ð CKEditor","userGuide":"Ð ÑководÑÑво полÑзоваÑÐµÐ»Ñ CKEditor"},"basicstyles":{"bold":"ÐолÑжиÑнÑй","italic":"ÐÑÑÑив","strike":"ÐаÑеÑкнÑÑÑй","subscript":"ÐодÑÑÑоÑнÑй индекÑ","superscript":"ÐадÑÑÑоÑнÑй индекÑ","underline":"ÐодÑеÑкнÑÑÑй"},"bidi":{"ltr":"ÐапÑавление ÑекÑÑа Ñлева напÑаво","rtl":"ÐапÑавление ÑекÑÑа ÑпÑава налево"},"blockquote":{"toolbar":"ЦиÑаÑа"},"clipboard":{"copy":"ÐопиÑоваÑÑ","copyError":"ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не ÑазÑеÑаÑÑ ÑедакÑоÑÑ Ð²ÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии по копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑекÑÑа. ÐожÐ
°Ð»ÑйÑÑа, иÑполÑзÑйÑе Ð´Ð»Ñ ÑÑого клавиаÑÑÑÑ (Ctrl/Cmd+C).","cut":"ÐÑÑезаÑÑ","cutError":"ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не ÑазÑеÑаÑÑ ÑедакÑоÑÑ Ð²ÑполнÑÑÑ Ð¾Ð¿ÐµÑаÑии по вÑÑезке ÑекÑÑа. ÐожалÑйÑÑа, иÑполÑзÑйÑе Ð´Ð»Ñ ÑÑого клавиаÑÑÑÑ (Ctrl/Cmd+X).","paste":"ÐÑÑавиÑÑ","pasteArea":"Ðона Ð´Ð»Ñ Ð²ÑÑавки","pasteMsg":"ÐожалÑйÑÑа, вÑÑавÑÑе ÑекÑÑ Ð² Ð·Ð¾Ð½Ñ Ð½Ð¸Ð¶Ðµ, иÑполÑзÑÑ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ (<strong>Ctrl/Cmd+V</strong>) и нажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ \"OK\".","securityMsg":"ÐаÑÑÑойки безопаÑноÑÑи ваÑего бÑаÑзеÑа не ÑазÑеÑаÑÑ ÑедакÑоÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ð¾Ð±ÑаÑаÑÑÑÑ Ðº бÑÑеÑÑ Ð¾Ð±Ð¼ÐµÐ½Ð°. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÑÑавиÑÑ ÑекÑÑ Ñнова в ÑÑо окно.","title":"ÐÑÑавиÑÑ"},"c
olorbutton":{"auto":"ÐвÑомаÑиÑеÑки","bgColorTitle":"Ð¦Ð²ÐµÑ Ñона","colors":{"000":"ЧÑÑнÑй","800000":"ÐоÑдовÑй","8B4513":"Ðожано-коÑиÑневÑй","2F4F4F":"ТемнÑй ÑиневаÑо-ÑеÑÑй","008080":"Сине-зелÑнÑй","000080":"ТÑмно-Ñиний","4B0082":"Ðндиго","696969":"ТÑмно-ÑеÑÑй","B22222":"ÐиÑпиÑнÑй","A52A2A":"ÐоÑиÑневÑй","DAA520":"ÐолоÑиÑÑо-беÑÑзовÑй","006400":"Темно-зелÑнÑй","40E0D0":"ÐиÑÑзовÑй","0000CD":"УмеÑенно Ñиний","800080":"ÐÑÑпÑÑнÑй","808080":"СеÑÑй","F00":"ÐÑаÑнÑй","FF8C00":"Темно-оÑанжевÑй","FFD700":"ÐолоÑиÑÑÑй","008000":"ÐелÑнÑй","0FF":"ÐаÑилÑковÑй","00F":"Синий","EE82EE":"ФиолеÑовÑй","A9A9A9":"ТÑÑкло-ÑеÑÑй","FFA07A":"СвеÑло-лоÑоÑевÑй","FFA500":"ÐÑанжевÑй","FFFF00":"ÐÑлÑÑй","00FF00":"ÐаймÐ
°","AFEEEE":"Ðледно-Ñиний","ADD8E6":"СвелÑо-голÑбой","DDA0DD":"СливовÑй","D3D3D3":"СвеÑло-ÑеÑÑй","FFF0F5":"Розово-лавандовÑй","FAEBD7":"ÐнÑиÑнÑй белÑй","FFFFE0":"СвеÑло-жÑлÑÑй","F0FFF0":"ÐедвÑной ÑоÑÑ","F0FFFF":"ÐазÑÑнÑй","F0F8FF":"Ðледно-голÑбой","E6E6FA":"ÐавандовÑй","FFF":"ÐелÑй"},"more":"ÐÑÑ ÑвеÑа...","panelTitle":"ЦвеÑа","textColorTitle":"Ð¦Ð²ÐµÑ ÑекÑÑа"},"colordialog":{"clear":"ÐÑиÑÑиÑÑ","highlight":"Ðод кÑÑÑоÑом","options":"ÐаÑÑÑойки ÑвеÑа","selected":"ÐÑбÑаннÑй ÑвеÑ","title":"ÐÑбеÑиÑе ÑвеÑ"},"templates":{"button":"ШаблонÑ","emptyListMsg":"(не опÑеделено ни одного Ñаблона)","insertOption":"ÐамениÑÑ ÑекÑÑее ÑодеÑжимое","options":"ÐаÑамеÑÑÑ Ñаблона","selectPromptMsg":"ÐожалÑйÑÑа,
вÑбеÑиÑе, какой Ñаблон ÑледÑÐµÑ Ð¾ÑкÑÑÑÑ Ð² ÑедакÑоÑе","title":"Ð¨Ð°Ð±Ð»Ð¾Ð½Ñ ÑодеÑжимого"},"contextmenu":{"options":"ÐаÑамеÑÑÑ ÐºÐ¾Ð½ÑекÑÑного менÑ"},"div":{"IdInputLabel":"ÐденÑиÑикаÑоÑ","advisoryTitleInputLabel":"Ðаголовок","cssClassInputLabel":"ÐлаÑÑÑ CSS","edit":"РедакÑиÑоваÑÑ ÐºÐ¾Ð½ÑейнеÑ","inlineStyleInputLabel":"СÑÐ¸Ð»Ñ ÑлеменÑа","langDirLTRLabel":"Слева напÑаво (LTR)","langDirLabel":"ÐапÑавление ÑекÑÑа","langDirRTLLabel":"СпÑава налево (RTL)","languageCodeInputLabel":"Ðод ÑзÑка","remove":"УдалиÑÑ ÐºÐ¾Ð½ÑейнеÑ","styleSelectLabel":"СÑилÑ","title":"СоздаÑÑ Div-конÑейнеÑ","toolbar":"СоздаÑÑ Div-конÑейнеÑ"},"toolbar":{"toolbarCollapse":"СвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов","toolbarExpand":"РазвеÑнÑÑÑ Ð¿Ð°Ð½ÐµÐ»Ñ Ð¸
нÑÑÑÑменÑов","toolbarGroups":{"document":"ÐокÑменÑ","clipboard":"ÐÑÑÐµÑ Ð¾Ð±Ð¼ÐµÐ½Ð° / ÐÑмена дейÑÑвий","editing":"ÐоÑÑекÑиÑовка","forms":"ФоÑмÑ","basicstyles":"ÐÑоÑÑÑе ÑÑили","paragraph":"ÐбзаÑ","links":"СÑÑлки","insert":"ÐÑÑавка","styles":"СÑили","colors":"ЦвеÑа","tools":"ÐнÑÑÑÑменÑÑ"},"toolbars":"Ðанели инÑÑÑÑменÑов ÑедакÑоÑа"},"elementspath":{"eleLabel":"ÐÑÑÑ ÑлеменÑов","eleTitle":"ÐÐ»ÐµÐ¼ÐµÐ½Ñ %1"},"list":{"bulletedlist":"ÐÑÑавиÑÑ / ÑдалиÑÑ Ð¼Ð°ÑкиÑованнÑй ÑпиÑок","numberedlist":"ÐÑÑавиÑÑ / ÑдалиÑÑ Ð½ÑмеÑованнÑй ÑпиÑок"},"indent":{"indent":"УвелиÑиÑÑ Ð¾ÑÑÑÑп","outdent":"УменÑÑиÑÑ Ð¾ÑÑÑÑп"},"find":{"find":"ÐайÑи","findOptions":"ÐпÑии поиÑка","findWhat":"ÐайÑи:","matchCase":"УÑиÑÑваÑÑ ÑегиÑÑÑ","match
Cyclic":"Ðо вÑÐµÐ¼Ñ ÑекÑÑÑ","matchWord":"ТолÑко Ñлово Ñеликом","notFoundMsg":"ÐÑкомÑй ÑекÑÑ Ð½Ðµ найден.","replace":"ÐамениÑÑ","replaceAll":"ÐамениÑÑ Ð²ÑÑ","replaceSuccessMsg":"УÑпеÑно заменено %1 Ñаз(а).","replaceWith":"ÐамениÑÑ Ð½Ð°:","title":"ÐоиÑк и замена"},"fakeobjects":{"anchor":"ЯкоÑÑ","flash":"Flash анимаÑиÑ","hiddenfield":"СкÑÑÑое поле","iframe":"iFrame","unknown":"ÐеизвеÑÑнÑй обÑекÑ"},"flash":{"access":"ÐоÑÑÑп к ÑкÑипÑам","accessAlways":"ÐÑегда","accessNever":"Ðикогда","accessSameDomain":"Ð Ñом же домене","alignAbsBottom":"Ðо Ð½Ð¸Ð·Ñ ÑекÑÑа","alignAbsMiddle":"Ðо ÑеÑедине ÑекÑÑа","alignBaseline":"Ðо базовой линии","alignTextTop":"Ðо веÑÑ
Ñ ÑекÑÑа","bgcolor":"Ð¦Ð²ÐµÑ Ñона","chkFull":"РазÑеÑиÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑкÑаннÑй
Ñежим","chkLoop":"ÐовÑоÑÑÑÑ","chkMenu":"ÐклÑÑиÑÑ Ð¼ÐµÐ½Ñ Flash","chkPlay":"ÐвÑомаÑиÑеÑкое воÑпÑоизведение","flashvars":"ÐеÑеменнÑе Ð´Ð»Ñ Flash","hSpace":"ÐоÑиз. оÑÑÑÑп","properties":"СвойÑÑва Flash","propertiesTab":"СвойÑÑва","quality":"ÐаÑеÑÑво","qualityAutoHigh":"ÐапÑÑк на вÑÑоком","qualityAutoLow":"ÐапÑÑк на низком","qualityBest":"ÐÑÑÑее","qualityHigh":"ÐÑÑокое","qualityLow":"Ðизкое","qualityMedium":"СÑеднее","scale":"ÐаÑÑÑабиÑоваÑÑ","scaleAll":"ÐÑопоÑÑионалÑно","scaleFit":"ÐаполнÑÑÑ","scaleNoBorder":"ÐаÑ
одиÑÑ Ð·Ð° гÑаниÑÑ","title":"СвойÑÑва Flash","vSpace":"ÐеÑÑик. оÑÑÑÑп","validateHSpace":"ÐоÑизонÑалÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.","validateSrc":"ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²Ð²ÐµÑÑи ÑÑÑлкÑ","validateVSpace":"ÐеÑÑÐ
¸ÐºÐ°Ð»ÑнÑй оÑÑÑÑп задаеÑÑÑ ÑиÑлом.","windowMode":"ÐзаимодейÑÑвие Ñ Ð¾ÐºÐ½Ð¾Ð¼","windowModeOpaque":"ÐепÑозÑаÑнÑй","windowModeTransparent":"ÐÑозÑаÑнÑй","windowModeWindow":"ÐбÑÑнÑй"},"font":{"fontSize":{"label":"РазмеÑ","voiceLabel":"Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа","panelTitle":"Ð Ð°Ð·Ð¼ÐµÑ ÑÑиÑÑа"},"label":"ШÑиÑÑ","panelTitle":"ШÑиÑÑ","voiceLabel":"ШÑиÑÑ"},"forms":{"button":{"title":"СвойÑÑва кнопки","text":"ТекÑÑ (ÐнаÑение)","type":"Тип","typeBtn":"Ðнопка","typeSbm":"ÐÑпÑавка","typeRst":"СбÑоÑ"},"checkboxAndRadio":{"checkboxTitle":"СвойÑÑва Ñлаговой кнопки","radioTitle":"СвойÑÑва кнопки вÑбоÑа","value":"ÐнаÑение","selected":"ÐÑбÑано"},"form":{"title":"СвойÑÑва ÑоÑмÑ","menu":"СвойÑÑва ÑоÑмÑ","action":"ÐейÑÑвие","method":"ÐеÑод","encoding":"Ðо
диÑовка"},"hidden":{"title":"СвойÑÑва ÑкÑÑÑого полÑ","name":"ÐмÑ","value":"ÐнаÑение"},"select":{"title":"СвойÑÑва ÑпиÑка вÑбоÑа","selectInfo":"ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑпиÑке вÑбоÑа","opAvail":"ÐоÑÑÑпнÑе ваÑианÑÑ","value":"ÐнаÑение","size":"РазмеÑ","lines":"ÑÑÑок(и)","chkMulti":"РазÑеÑиÑÑ Ð²ÑÐ±Ð¾Ñ Ð½ÐµÑколÑкиÑ
ваÑианÑов","opText":"ТекÑÑ","opValue":"ÐнаÑение","btnAdd":"ÐобавиÑÑ","btnModify":"ÐзмениÑÑ","btnUp":"ÐоднÑÑÑ","btnDown":"ÐпÑÑÑиÑÑ","btnSetValue":"ÐомеÑиÑÑ ÐºÐ°Ðº вÑбÑанное","btnDelete":"УдалиÑÑ"},"textarea":{"title":"СвойÑÑва многоÑÑÑоÑного ÑекÑÑового полÑ","cols":"Ðолонок","rows":"СÑÑок"},"textfield":{"title":"СвойÑÑва ÑекÑÑового полÑ","name":"ÐмÑ","value":"ÐнаÑение","charWidth":"ШиÑин
а Ð¿Ð¾Ð»Ñ (в ÑимволаÑ
)","maxChars":"ÐакÑ. колиÑеÑÑво Ñимволов","type":"Тип ÑодеÑжимого","typeText":"ТекÑÑ","typePass":"ÐаÑолÑ","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ФоÑмаÑиÑование","panelTitle":"ФоÑмаÑиÑование","tag_address":"ÐдÑеÑ","tag_div":"ÐбÑÑное (div)","tag_h1":"Ðаголовок 1","tag_h2":"Ðаголовок 2","tag_h3":"Ðаголовок 3","tag_h4":"Ðаголовок 4","tag_h5":"Ðаголовок 5","tag_h6":"Ðаголовок 6","tag_p":"ÐбÑÑное","tag_pre":"ÐоноÑиÑинное"},"horizontalrule":{"toolbar":"ÐÑÑавиÑÑ Ð³Ð¾ÑизонÑалÑнÑÑ Ð»Ð¸Ð½Ð¸Ñ"},"iframe":{"border":"ÐоказаÑÑ Ð³ÑаниÑÑ ÑÑейма","noUrl":"ÐожалÑйÑÑа, введиÑе ÑÑÑÐ»ÐºÑ ÑÑейма","scrolling":"ÐÑобÑажаÑÑ Ð¿Ð¾Ð»Ð¾ÑÑ Ð¿ÑокÑÑÑки","title":"Св
ойÑÑва iFrame","toolbar":"iFrame"},"image":{"alertUrl":"ÐожалÑйÑÑа, введиÑе ÑÑÑÐ»ÐºÑ Ð½Ð° изобÑажение","alt":"ÐлÑÑеÑнаÑивнÑй ÑекÑÑ","border":"ÐÑаниÑа","btnUpload":"ÐагÑÑзиÑÑ Ð½Ð° ÑеÑвеÑ","button2Img":"ÐÑ Ð¶ÐµÐ»Ð°ÐµÑе пÑеобÑазоваÑÑ ÑÑо изобÑажение-ÐºÐ½Ð¾Ð¿ÐºÑ Ð² обÑÑное изобÑажение?","hSpace":"ÐоÑиз. оÑÑÑÑп","img2Button":"ÐÑ Ð¶ÐµÐ»Ð°ÐµÑе пÑеобÑазоваÑÑ ÑÑо обÑÑное изобÑажение в изобÑажение-кнопкÑ?","infoTab":"ÐаннÑе об изобÑажении","linkTab":"СÑÑлка","lockRatio":"СоÑ
ÑанÑÑÑ Ð¿ÑопоÑÑии","menu":"СвойÑÑва изобÑажениÑ","resetSize":"ÐеÑнÑÑÑ Ð¾Ð±ÑÑнÑе ÑазмеÑÑ","title":"СвойÑÑва изобÑажениÑ","titleButton":"СвойÑÑва изобÑажениÑ-кнопки","upload":"ÐагÑÑзиÑÑ","urlMi
ssing":"Ðе Ñказана ÑÑÑлка на изобÑажение.","vSpace":"ÐеÑÑик. оÑÑÑÑп","validateBorder":"Ð Ð°Ð·Ð¼ÐµÑ Ð³ÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ Ð·Ð°Ð´Ð°Ð½ ÑиÑлом.","validateHSpace":"ÐоÑизонÑалÑнÑй оÑÑÑÑп должен бÑÑÑ Ð·Ð°Ð´Ð°Ð½ ÑиÑлом.","validateVSpace":"ÐеÑÑикалÑнÑй оÑÑÑÑп должен бÑÑÑ Ð·Ð°Ð´Ð°Ð½ ÑиÑлом."},"smiley":{"options":"ÐÑÐ±Ð¾Ñ Ñмайла","title":"ÐÑÑавиÑÑ Ñмайл","toolbar":"СмайлÑ"},"justify":{"block":"Ðо ÑиÑине","center":"Ðо ÑенÑÑÑ","left":"Ðо Ð»ÐµÐ²Ð¾Ð¼Ñ ÐºÑаÑ","right":"Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ"},"link":{"acccessKey":"ÐлавиÑа доÑÑÑпа","advanced":"ÐополниÑелÑно","advisoryContentType":"Тип ÑодеÑжимого","advisoryTitle":"Ðаголовок","anchor":{"toolbar":"ÐÑÑавиÑÑ / ÑедакÑиÑоваÑÑ ÑкоÑÑ","menu":"ÐзмениÑÑ ÑкоÑÑ","title":"СвойÑÑ
ва ÑкоÑÑ","name":"ÐÐ¼Ñ ÑкоÑÑ","errorName":"ÐожалÑйÑÑа, введиÑе Ð¸Ð¼Ñ ÑкоÑÑ","remove":"УдалиÑÑ ÑкоÑÑ"},"anchorId":"Ðо иденÑиÑикаÑоÑÑ","anchorName":"Ðо имени","charset":"ÐодиÑовка ÑеÑÑÑÑа","cssClasses":"ÐлаÑÑÑ CSS","emailAddress":"Email адÑеÑ","emailBody":"ТекÑÑ ÑообÑениÑ","emailSubject":"Тема ÑообÑениÑ","id":"ÐденÑиÑикаÑоÑ","info":"ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑÑÑлке","langCode":"Ðод ÑзÑка","langDir":"ÐапÑавление ÑекÑÑа","langDirLTR":"Слева напÑаво (LTR)","langDirRTL":"СпÑава налево (RTL)","menu":"РедакÑиÑоваÑÑ ÑÑÑлкÑ","name":"ÐмÑ","noAnchors":"(РдокÑменÑе Ð½ÐµÑ Ð½Ð¸ одного ÑкоÑÑ)","noEmail":"ÐожалÑйÑÑа, введиÑе email адÑеÑ","noUrl":"ÐожалÑйÑÑа, введиÑе ÑÑÑлкÑ","other":"<дÑÑгой>","popupDependent"
:"ÐавиÑимое (Netscape)","popupFeatures":"ÐаÑамеÑÑÑ Ð²ÑплÑваÑÑего окна","popupFullScreen":"ÐолноÑкÑанное (IE)","popupLeft":"ÐÑÑÑÑп Ñлева","popupLocationBar":"ÐÐ°Ð½ÐµÐ»Ñ Ð°Ð´ÑеÑа","popupMenuBar":"ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ","popupResizable":"ÐзменÑемÑй ÑазмеÑ","popupScrollBars":"ÐолоÑÑ Ð¿ÑокÑÑÑки","popupStatusBar":"СÑÑока ÑоÑÑоÑниÑ","popupToolbar":"ÐÐ°Ð½ÐµÐ»Ñ Ð¸Ð½ÑÑÑÑменÑов","popupTop":"ÐÑÑÑÑп ÑвеÑÑ
Ñ","rel":"ÐÑноÑение","selectAnchor":"ÐÑбеÑиÑе ÑкоÑÑ","styles":"СÑилÑ","tabIndex":"ÐоÑледоваÑелÑноÑÑÑ Ð¿ÐµÑеÑ
ода","target":"ЦелÑ","targetFrame":"<ÑÑейм>","targetFrameName":"ÐÐ¼Ñ Ñелевого ÑÑейма","targetPopup":"<вÑплÑваÑÑее окно>","targetPopupName":"ÐÐ¼Ñ Ð²ÑплÑваÑÑего окна","title":"СÑÑлка","toAnchor":"СÑÑлка на ÑкоÑÑ Ð² ÑекÑÑе",
"toEmail":"Email","toUrl":"СÑÑлка","toolbar":"ÐÑÑавиÑÑ/РедакÑиÑоваÑÑ ÑÑÑлкÑ","type":"Тип ÑÑÑлки","unlink":"УбÑаÑÑ ÑÑÑлкÑ","upload":"ÐагÑÑзка"},"liststyle":{"armenian":"ÐÑмÑнÑÐºÐ°Ñ Ð½ÑмеÑаÑиÑ","bulletedTitle":"СвойÑÑва маÑкиÑованного ÑпиÑка","circle":"ÐÑÑг","decimal":"ÐеÑÑÑиÑнÑе (1, 2, 3, и Ñ.д.)","decimalLeadingZero":"ÐеÑÑÑиÑнÑе Ñ Ð²ÐµÐ´ÑÑим нÑлÑм (01, 02, 03, и Ñ.д.)","disc":"ÐкÑÑжноÑÑÑ","georgian":"ÐÑÑзинÑÐºÐ°Ñ Ð½ÑмеÑаÑÐ¸Ñ (ани, бани, гани, и Ñ.д.)","lowerAlpha":"СÑÑоÑнÑе лаÑинÑкие (a, b, c, d, e, и Ñ.д.)","lowerGreek":"СÑÑоÑнÑе гÑеÑеÑкие (алÑÑа, беÑа, гамма, и Ñ.д.)","lowerRoman":"СÑÑоÑнÑе ÑимÑкие (i, ii, iii, iv, v, и Ñ.д.)","none":"ÐеÑ","notset":"<не Ñказано>","numberedTitle":"СвойÑÑва нÑмеÑоÐ
²Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑпиÑка","square":"ÐвадÑаÑ","start":"ÐаÑÐ¸Ð½Ð°Ñ Ñ","type":"Тип","upperAlpha":"ÐаглавнÑе лаÑинÑкие (A, B, C, D, E, и Ñ.д.)","upperRoman":"ÐаглавнÑе ÑимÑкие (I, II, III, IV, V, и Ñ.д.)","validateStartNumber":"ÐеÑвÑй Ð½Ð¾Ð¼ÐµÑ ÑпиÑка должен бÑÑÑ Ð·Ð°Ð´Ð°Ð½ обÑÑнÑм ÑелÑм ÑиÑлом."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"РазвеÑнÑÑÑ","minimize":"СвеÑнÑÑÑ"},"newpage":{"toolbar":"ÐÐ¾Ð²Ð°Ñ ÑÑÑаниÑа"},"pagebreak":{"alt":"РазÑÑв ÑÑÑаниÑÑ","toolbar":"ÐÑÑавиÑÑ ÑазÑÑв ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¿ÐµÑаÑи"},"pastetext":{"button":"ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ","title":"ÐÑÑавиÑÑ ÑолÑко ÑекÑÑ"},"pastefromword":{"confirmCleanup":"ТекÑÑ, коÑоÑÑй Ð²Ñ Ð¶ÐµÐ»Ð°ÐµÑе вÑÑавиÑÑ, по вÑей видимоÑÑи, бÑл ÑкопиÑован из Word.
СледÑÐµÑ Ð»Ð¸ оÑиÑÑиÑÑ ÐµÐ³Ð¾ пеÑед вÑÑавкой?","error":"Ðевозможно оÑиÑÑиÑÑ Ð²ÑÑавленнÑе даннÑе из-за внÑÑÑенней оÑибки","title":"ÐÑÑавиÑÑ Ð¸Ð· Word","toolbar":"ÐÑÑавиÑÑ Ð¸Ð· Word"},"preview":{"preview":"ÐÑедваÑиÑелÑнÑй пÑоÑмоÑÑ"},"print":{"toolbar":"ÐеÑаÑÑ"},"removeformat":{"toolbar":"УбÑаÑÑ ÑоÑмаÑиÑование"},"save":{"toolbar":"СоÑ
ÑаниÑÑ"},"selectall":{"toolbar":"ÐÑделиÑÑ Ð²Ñе"},"showblocks":{"toolbar":"ÐÑобÑажаÑÑ Ð±Ð»Ð¾ÐºÐ¸"},"sourcearea":{"toolbar":"ÐÑÑоÑник"},"specialchar":{"options":"ÐÑÐ±Ð¾Ñ ÑпеÑиалÑного Ñимвола","title":"ÐÑбеÑиÑе ÑпеÑиалÑнÑй Ñимвол","toolbar":"ÐÑÑавиÑÑ ÑпеÑиалÑнÑй Ñимвол"},"scayt":{"about":"Ð SCAYT","aboutTab":"Ð SCAYT","addWord":"ÐобавиÑÑ Ñлово","allCaps":"ÐгноÑиÑоваÑÑ Ñло
ва из заглавнÑÑ
бÑкв","dic_create":"СоздаÑÑ","dic_delete":"УдалиÑÑ","dic_field_name":"Ðазвание ÑловаÑÑ","dic_info":"ÐзнаÑалÑно, полÑзоваÑелÑÑкий ÑловаÑÑ Ñ
ÑаниÑÑÑ Ð² cookie, коÑоÑÑе огÑаниÑÐµÐ½Ñ Ð² ÑазмеÑе. Ðогда ÑловаÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²ÑÑаÑÑÐ°ÐµÑ Ð´Ð¾ ÑазмеÑов, ÑÑо его невозможно Ñ
ÑаниÑÑ Ð² cookie, он пеÑеноÑиÑÑÑ Ð½Ð° Ñ
Ñанение на Ð½Ð°Ñ ÑеÑвеÑ. ЧÑÐ¾Ð±Ñ ÑоÑ
ÑаниÑÑ Ð²Ð°Ñ ÑловаÑÑ Ð½Ð° наÑем ÑеÑвеÑе, вам ÑледÑÐµÑ ÑказаÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ваÑего ÑловаÑÑ. ÐÑли Ñ Ð²Ð°Ñ Ñже бÑл ÑловаÑÑ, коÑоÑÑй Ð²Ñ ÑоÑ
ÑанÑли на наÑем ÑеÑвеÑе, Ñо ÑкажиÑе здеÑÑ ÐµÐ³Ð¾ название и нажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ ÐоÑÑÑановиÑÑ.","dic_rename":"ÐеÑеименоваÑÑ","d
ic_restore":"ÐоÑÑÑановиÑÑ","dictionariesTab":"СловаÑи","disable":"ÐÑклÑÑиÑÑ SCAYT","emptyDic":"ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑказаÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ÑловаÑÑ.","enable":"ÐклÑÑиÑÑ SCAYT","ignore":"ÐÑопÑÑÑиÑÑ","ignoreAll":"ÐÑопÑÑÑиÑÑ Ð²ÑÑ","ignoreDomainNames":"ÐгноÑиÑоваÑÑ Ð´Ð¾Ð¼ÐµÐ½Ð½Ñе имена","langs":"ЯзÑки","languagesTab":"ЯзÑки","mixedCase":"ÐгноÑиÑоваÑÑ Ñлова из бÑкв в Ñазном ÑегиÑÑÑе","mixedWithDigits":"ÐгноÑиÑоваÑÑ Ñлова, ÑодеÑжаÑие ÑиÑÑÑ","moreSuggestions":"ÐÑÑ Ð²Ð°ÑианÑÑ","opera_title":"Ðе поддеÑживаеÑÑÑ Opera","options":"ÐаÑÑÑойки","optionsTab":"ÐаÑамеÑÑÑ","title":"ÐÑовеÑка оÑÑогÑаÑии по меÑе ввода (SCAYT)","toggle":"ÐеÑеклÑÑиÑÑ SCAYT","noSuggestions":"ÐÐµÑ Ð²Ð°ÑианÑов"},"stylescombo":{"label":"СÑили","panelTitle":"
СÑили ÑоÑмаÑиÑованиÑ","panelTitle1":"СÑили блока","panelTitle2":"СÑили ÑлеменÑа","panelTitle3":"СÑили обÑекÑа"},"table":{"border":"Ð Ð°Ð·Ð¼ÐµÑ Ð³ÑаниÑ","caption":"Ðаголовок","cell":{"menu":"ЯÑейка","insertBefore":"ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ Ñлева","insertAfter":"ÐÑÑавиÑÑ ÑÑÐµÐ¹ÐºÑ ÑпÑава","deleteCell":"УдалиÑÑ ÑÑейки","merge":"ÐбÑединиÑÑ ÑÑейки","mergeRight":"ÐбÑединиÑÑ Ñ Ð¿Ñавой","mergeDown":"ÐбÑединиÑÑ Ñ Ð½Ð¸Ð¶Ð½ÐµÐ¹","splitHorizontal":"РазделиÑÑ ÑÑÐµÐ¹ÐºÑ Ð¿Ð¾ гоÑизонÑали","splitVertical":"РазделиÑÑ ÑÑÐµÐ¹ÐºÑ Ð¿Ð¾ веÑÑикали","title":"СвойÑÑва ÑÑейки","cellType":"Тип ÑÑейки","rowSpan":"ÐбÑединÑÐµÑ ÑÑÑок","colSpan":"ÐбÑединÑÐµÑ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº","wordWrap":"ÐеÑÐµÐ½Ð¾Ñ Ð¿Ð¾ Ñловам","hAlign":"ÐоÑизонÑалÑное вÑÑ
авнивание","vAlign":"ÐеÑÑикалÑное вÑÑавнивание","alignBaseline":"Ðо базовой линии","bgColor":"Ð¦Ð²ÐµÑ Ñона","borderColor":"Ð¦Ð²ÐµÑ Ð³ÑаниÑ","data":"ÐаннÑе","header":"Ðаголовок","yes":"Ðа","no":"ÐеÑ","invalidWidth":"ШиÑина ÑÑейки должна бÑÑÑ ÑиÑлом.","invalidHeight":"ÐÑÑоÑа ÑÑейки должна бÑÑÑ ÑиÑлом.","invalidRowSpan":"ÐолиÑеÑÑво обÑединÑемÑÑ
ÑÑÑок должно бÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑиÑлом.","invalidColSpan":"ÐолиÑеÑÑво обÑединÑемÑÑ
колонок должно бÑÑÑ Ð·Ð°Ð´Ð°Ð½Ð¾ ÑиÑлом.","chooseColor":"ÐÑбеÑиÑе"},"cellPad":"ÐнÑÑÑенний оÑÑÑÑп ÑÑеек","cellSpace":"ÐнеÑний оÑÑÑÑп ÑÑеек","column":{"menu":"Ðолонка","insertBefore":"ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ñлева","insertAfter":"ÐÑÑавиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÑ ÑпÑава"
,"deleteColumn":"УдалиÑÑ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ¸"},"columns":"Ðолонки","deleteTable":"УдалиÑÑ ÑаблиÑÑ","headers":"Ðаголовки","headersBoth":"СвеÑÑ
Ñ Ð¸ Ñлева","headersColumn":"ÐÐµÐ²Ð°Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°","headersNone":"Ðез заголовков","headersRow":"ÐеÑÑ
нÑÑ ÑÑÑока","invalidBorder":"Ð Ð°Ð·Ð¼ÐµÑ Ð³ÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ ÑиÑлом.","invalidCellPadding":"ÐнÑÑÑенний оÑÑÑÑп ÑÑеек (cellpadding) должен бÑÑÑ ÑиÑлом.","invalidCellSpacing":"ÐнеÑний оÑÑÑÑп ÑÑеек (cellspacing) должен бÑÑÑ ÑиÑлом.","invalidCols":"ÐолиÑеÑÑво ÑÑолбÑов должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.","invalidHeight":"ÐÑÑоÑа ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.","invalidRows":"ÐолиÑеÑÑво ÑÑÑок должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 0.","invalidWidth":"ШиÑина ÑаблиÑÑ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ ÑиÑлом.","menu":"СÐ
²Ð¾Ð¹ÑÑва ÑаблиÑÑ","row":{"menu":"СÑÑока","insertBefore":"ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ ÑвеÑÑ
Ñ","insertAfter":"ÐÑÑавиÑÑ ÑÑÑÐ¾ÐºÑ ÑнизÑ","deleteRow":"УдалиÑÑ ÑÑÑоки"},"rows":"СÑÑоки","summary":"ÐÑоги","title":"СвойÑÑва ÑаблиÑÑ","toolbar":"ТаблиÑа","widthPc":"пÑоÑенÑов","widthPx":"пикÑелей","widthUnit":"единиÑа измеÑениÑ"},"undo":{"redo":"ÐовÑоÑиÑÑ","undo":"ÐÑмениÑÑ"},"wsc":{"btnIgnore":"ÐÑопÑÑÑиÑÑ","btnIgnoreAll":"ÐÑопÑÑÑиÑÑ Ð²ÑÑ","btnReplace":"ÐамениÑÑ","btnReplaceAll":"ÐамениÑÑ Ð²ÑÑ","btnUndo":"ÐÑмениÑÑ","changeTo":"ÐзмениÑÑ Ð½Ð°","errorLoading":"ÐÑоизоÑла оÑибка пÑи подклÑÑении к ÑеÑвеÑÑ Ð¿ÑовеÑки оÑÑогÑаÑии: %s.","ieSpellDownload":"ÐодÑÐ»Ñ Ð¿ÑовеÑки оÑÑогÑаÑии не ÑÑÑановлен. ХоÑиÑе ÑкаÑÐ
°ÑÑ ÐµÐ³Ð¾?","manyChanges":"ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. Ðзменено Ñлов: %1","noChanges":"ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. Ðе изменено ни одного Ñлова","noMispell":"ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. ÐÑибок не найдено","noSuggestions":"- ÐаÑианÑÑ Ð¾ÑÑÑÑÑÑвÑÑÑ -","notAvailable":"ÐзвиниÑе, но в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑеÑÐ²Ð¸Ñ Ð½ÐµÐ´Ð¾ÑÑÑпен.","notInDic":"ÐÑÑÑÑÑÑвÑÐµÑ Ð² ÑловаÑе","oneChange":"ÐÑовеÑка оÑÑогÑаÑии завеÑÑена. Ðзменено одно Ñлово","progress":"ÐÑÑогÑаÑÐ¸Ñ Ð¿ÑовеÑÑеÑÑÑ...","title":"ÐÑовеÑка оÑÑогÑаÑии","toolbar":"ÐÑовеÑиÑÑ Ð¾ÑÑогÑаÑиÑ"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/sk.js b/share/static/RichText/lang/sk.js
index 6b00738..485c46c 100644
--- a/share/static/RichText/lang/sk.js
+++ b/share/static/RichText/lang/sk.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.sk={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Zdroj',newPage:'Nová stránka',save:'UložiÅ¥',preview:'Náhľad',cut:'Vystrihnúť',copy:'KopÃrovaÅ¥',paste:'VložiÅ¥',print:'TlaÄ',underline:'PodÄiarknuté',bold:'TuÄné',italic:'KurzÃva',selectAll:'VybraÅ¥ vÅ¡etko',removeFormat:'OdstrániÅ¥ formátovanie',strike:'PreÄiarknuté',subscript:'Dolný index',superscript:'Horný index',horizontalrule:'VložiÅ¥ vodorovnú Äiaru',pagebreak:'VložiÅ¥ oddeľovaÄ stránky',unlink:'OdstrániÅ¥ odkaz',undo:'Späť',redo:'Znovu',common:{browseServer:'PrechádzaÅ¥ server',url:'URL',protocol:'Protokol',upload:'OdoslaÅ¥',uploadSubmit:'OdoslaÅ¥ na server',image:'Obrázok',flash:'Flash',form:'Formulár',checkbox:'ZaÅ¡krtávacie polÃÄko',radio:'PrepÃnaÄ',textField:'Textové pole',textarea:'Textová oblasÅ¥',hiddenField:'Skryté pole',button:'TlaÄidlo',select:'Rozbaľovacà zoznam',imageButton:
'Obrázkové tlaÄidlo',notSet:'<nenastavené>',id:'Id',name:'Meno',langDir:'Orientácia jazyka',langDirLtr:'Zľava doprava (LTR)',langDirRtl:'Sprava doľava (RTL)',langCode:'Kód jazyka',longDescr:'Dlhý popis URL',cssClass:'Trieda Å¡týlu',advisoryTitle:'Pomocný titulok',cssStyle:'Å týl',ok:'OK',cancel:'ZruÅ¡iÅ¥',close:'Close',preview:'Preview',generalTab:'Hlavné',advancedTab:'RozÅ¡Ãrené',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailab
le</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'VložiÅ¥ Å¡peciálne znaky',title:'Výber Å¡peciálneho znaku',options:'Special Character Options'},link:{toolbar:'VložiÅ¥/zmeniÅ¥ odkaz',other:'<iný>',menu:'ZmeniÅ¥ odkaz',title:'Odkaz',info:'Informácie o odkaze',target:'Cieľ',upload:'OdoslaÅ¥',advanced:'RozÅ¡Ãrené',type:'Typ odkazu',toUrl:'URL',toAnchor:'Kotva v tejto stránke',toEmail:'E-Mail',targetFrame:'<rámec>',targetPopup:'<vyskakovacie okno>',targetFrameName:'Meno rámu cieľa',targetPopupName:'Názov vyskakovacieho okna',popupFeatures:'Vlastnosti vyskakovacieho okna',popupResizable:'Resizable',popupStatusBar:'Stavový riadok',popupLocationBar:'Panel umiestnenia',popupToolbar:'Panel nástrojov',popupMenuBar:'Panel ponuky',popupFullScreen:'Celá obrazovka (IE)',popupScrollBars:'PosuvnÃky',popupDependent:'ZávislosÅ¥ (Netscape)',popupWidth:'Å Ãrka',popupLeft:'Ľavý okraj',popupHeight:'Výška',popupTop:'Horný okraj',id:'Id',langD
ir:'Orientácia jazyka',langDirLTR:'Zľava doprava (LTR)',langDirRTL:'Sprava doľava (RTL)',acccessKey:'PrÃstupový kľúÄ',name:'Meno',langCode:'Orientácia jazyka',tabIndex:'Poradie prvku',advisoryTitle:'Pomocný titulok',advisoryContentType:'Pomocný typ obsahu',cssClasses:'Trieda Å¡týlu',charset:'Priradená znaková sada',styles:'Å týl',selectAnchor:'VybraÅ¥ kotvu',anchorName:'Podľa mena kotvy',anchorId:'Podľa Id objektu',emailAddress:'E-Mailová adresa',emailSubject:'Predmet správy',emailBody:'Telo správy',noAnchors:'(V stránke nie je definovaná žiadna kotva)',noUrl:'Zadajte prosÃm URL odkazu',noEmail:'Zadajte prosÃm e-mailovú adresu'},anchor:{toolbar:'VložiÅ¥/zmeniÅ¥ kotvu',menu:'Vlastnosti kotvy',title:'Vlastnosti kotvy',name:'Meno kotvy',errorName:'Zadajte prosÃm meno kotvy'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',
circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'NájsÅ¥ a nahradiÅ¥',find:'HľadaÅ¥',replace:'NahradiÅ¥',findWhat:'Äo hľadaÅ¥:',replaceWith:'ÄÃm nahradiÅ¥:',notFoundMsg:'Hľadaný text nebol nájdený.',matchCase:'RozliÅ¡ovaÅ¥ malé/veľké pÃsmená',matchWord:'Len celé slová',matchCyclic:'Match cyclic',replaceAll:'NahradiÅ¥ vÅ¡etko',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabuľka',title:'Vlastnosti tabuľky',menu:'Vlastnosti tabuľky',deleteTable:'VymazaÅ¥ tabuľku',rows:'Riad
ky',columns:'Stĺpce',border:'OhraniÄenie',align:'Zarovnanie',alignLeft:'Vľavo',alignCenter:'Na stred',alignRight:'Vpravo',width:'Å Ãrka',widthPx:'pixelov',widthPc:'percent',widthUnit:'width unit',height:'Výška',cellSpace:'VzdialenosÅ¥ buniek',cellPad:'Odsadenie obsahu',caption:'Popis',summary:'Prehľad',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Bunka',insertBefore:'VložiÅ¥ bunku pred',insertAfter:'VložiÅ¥ bunku za',deleteCell:'VymazaÅ¥ bunky',merge:'ZlúÄiÅ¥ bunky',mergeRight:'ZlúÄiÅ¥ doprava',mergeDown:'ZlúÄiÅ¥ dole',split
Horizontal:'RozdeliÅ¥ bunky horizontálne',splitVertical:'RozdeliÅ¥ bunky vertikálne',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Riadok',insertBefore:'VložiÅ¥ riadok za',insertAfter:'VložiÅ¥ riadok pred',deleteRow:'VymazaÅ¥ riadok'},column:{menu:'Stĺpec',insertBefore:'VložiÅ¥ stĺpec za',insertAfter:'VložiÅ¥ stĺpec pred',deleteColumn:'ZmazaÅ¥ stĺpec'}},button:{title:'Vlastnosti tlaÄidla',text:'Text',type:'Typ',typeBtn:'TlaÄidlo',typeSbm:'Odo
slaÅ¥',typeRst:'VymazaÅ¥'},checkboxAndRadio:{checkboxTitle:'Vlastnosti zaÅ¡krtávacieho polÃÄka',radioTitle:'Vlastnosti prepÃnaÄa',value:'Hodnota',selected:'Vybrané'},form:{title:'Vlastnosti formulára',menu:'Vlastnosti formulára',action:'Akcie',method:'Metóda',encoding:'Encoding'},select:{title:'Vlastnosti rozbaľovacieho zoznamu',selectInfo:'Info',opAvail:'Dostupné možnosti',value:'Hodnota',size:'VeľkosÅ¥',lines:'riadkov',chkMulti:'PovoliÅ¥ viacnásobný výber',opText:'Text',opValue:'Hodnota',btnAdd:'PridaÅ¥',btnModify:'ZmeniÅ¥',btnUp:'Hore',btnDown:'Dole',btnSetValue:'NastaviÅ¥ ako vybranú hodnotu',btnDelete:'ZmazaÅ¥'},textarea:{title:'Vlastnosti textovej oblasti',cols:'Stĺpce',rows:'Riadky'},textfield:{title:'Vlastnosti textového poľa',name:'Názov',value:'Hodnota',charWidth:'Å Ãrka pola (znakov)',maxChars:'Maximálny poÄet znakov',type:'Typ',typeText:'Text',typePass:'Heslo'},hidden:{title:'Vlastnosti skrytého poľa',name:'Názov',value:'Hodnota'},image
:{title:'Vlastnosti obrázku',titleButton:'Vlastnosti obrázkového tlaÄidla',menu:'Vlastnosti obrázku',infoTab:'Informácie o obrázku',btnUpload:'OdoslaÅ¥ na server',upload:'OdoslaÅ¥',alt:'AlternatÃvny text',width:'Å Ãrka',height:'Výška',lockRatio:'Zámok',unlockRatio:'Unlock Ratio',resetSize:'Pôvodná veľkosÅ¥',border:'Okraje',hSpace:'H-medzera',vSpace:'V-medzera',align:'Zarovnanie',alignLeft:'Vľavo',alignRight:'Vpravo',alertUrl:'Zadajte prosÃm URL obrázku',linkTab:'Odkaz',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Vlastnosti Flashu',propertiesTab:'Prop
erties',title:'Vlastnosti Flashu',chkPlay:'Automatické prehrávanie',chkLoop:'Opakovanie',chkMenu:'PovoliÅ¥ Flash Menu',chkFull:'Allow Fullscreen',scale:'Mierka',scaleAll:'ZobraziÅ¥ mierku',scaleNoBorder:'Bez okrajov',scaleFit:'RoztiahnuÅ¥ na celé',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'Zarovnanie',alignLeft:'Vľavo',alignAbsBottom:'Ãplne dole',alignAbsMiddle:'Do stredu',alignBaseline:'Na základÅu',alignBottom:'Dole',alignMiddle:'Na stred',alignRight:'Vpravo',alignTextTop:'Na horný okraj textu',alignTop:'Nahor',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Farba pozadia',width:'Å Ãrka',height:'Výška',hSpace:'H-medzera',vSpace:'V-medzera',validateSrc:
'Zadajte prosÃm URL odkazu',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Kontrola pravopisu',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Nie je v slovnÃku',changeTo:'ZmeniÅ¥ na',btnIgnore:'IgnorovaÅ¥',btnIgnoreAll:'IgnorovaÅ¥ vÅ¡etko',btnReplace:'PrepÃsat',btnReplaceAll:'PrepÃsat vÅ¡etko',btnUndo:'Späť',noSuggestions:'- Žiadny návrh -',progress:'Prebieha kontrola pravopisu...',noMispell:'Kontrola pravopisu dokonÄená: bez chýb',noChanges:'Kontrola pravopisu dokonÄená: žiadne slová nezmenené',oneChange:'Kontrola pravopisu dokonÄená: zmenené jedno slovo',manyChanges:'Kontrola pravopisu dokonÄená: zmenených %1 slov',ieSpellDownload:'Kontrola pravopisu nie je naiÅ¡talovaná. Chcete ju hneÄ stiahnuÅ¥?'},smiley:{toolbar:'
SmajlÃky',title:'Vkladanie smajlÃkov',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ÄÃslovanie',bulletedlist:'Odrážky',indent:'ZväÄÅ¡iÅ¥ odsadenie',outdent:'ZmenÅ¡iÅ¥ odsadenie',justify:{left:'ZarovnaÅ¥ vľavo',center:'ZarovnaÅ¥ na stred',right:'ZarovnaÅ¥ vpravo',block:'ZarovnaÅ¥ do bloku'},blockquote:'Citácia',clipboard:{title:'VložiÅ¥',cutError:'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre vystrihnutie zvoleného textu do schránky. ProsÃm vystrihnite zvolený text do schránky pomocou klávesnice (Ctrl/Cmd+X).',copyError:'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru spustiÅ¥ funkciu pre kopÃrovanie zvoleného textu do schránky. ProsÃm skopÃrujte zvolený text do schránky pomocou klávesnice (Ctrl/Cmd+C).',pasteMsg:'ProsÃm vložte nasledovný rámÄek použitÃm klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stlaÄte <STRONG>OK</STRONG>.'
,securityMsg:'BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru pristupovaÅ¥ priamo k datám v schránke. MusÃte ich vložiÅ¥ znovu do tohto okna.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'VložiÅ¥ z Wordu',title:'VložiÅ¥ z Wordu',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'VložiÅ¥ ako Äistý text',title:'VložiÅ¥ ako Äistý text'},templates:{button:'Å ablóny',title:'Å ablóny obsahu',options:'Template Options',insertOption:'NahradiÅ¥ aktuálny obsah',selectPromptMsg:'ProsÃm vyberte Å¡ablóny na otvorenie v editore<br>(súšasný obsah bude stratený):',emptyListMsg:'(žiadne Å¡ablóny nenájdené)'},showBlocks:'UkázaÅ¥ bloky',stylesCombo:{label:'Å týl',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:
{label:'Formát',panelTitle:'Formát',tag_p:'Normálny',tag_pre:'Formátovaný',tag_address:'Adresa',tag_h1:'Nadpis 1',tag_h2:'Nadpis 2',tag_h3:'Nadpis 3',tag_h4:'Nadpis 4',tag_h5:'Nadpis 5',tag_h6:'Nadpis 6',tag_div:'Odsek (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'PÃsmo',voiceLabel:'Font',panelTitle:'PÃsmo'},fontSize:{label:'VeľkosÅ¥',voiceLabel:'Font Size',panelTitle:'VeľkosÅ¥'},colorButton:{textColorTitle:'Farba textu',bgColorTitle:'Farba pozadia',panelTitle:'Colors',auto:'Automaticky',more:'Viac farieb...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark
Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be
empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minim
ize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['sk']={"dir":"ltr","editor":"Editor formátovaného textu","common":{"editorHelp":"StlaÄte ALT 0 pre nápovedu","browseServer":"PrechádzaÅ¥ server","url":"URL","protocol":"Protokol","upload":"OdoslaÅ¥","uploadSubmit":"OdoslaÅ¥ na server","image":"Obrázok","flash":"Flash","form":"Formulár","checkbox":"ZaÅ¡krtávacie polÃÄko","radio":"PrepÃnaÄ","textField":"Textové pole","textarea":"Textová oblasÅ¥","hiddenField":"Skryté pole","button":"TlaÄidlo","select":"Rozbaľovacà zoznam","imageButton":"Obrázkové tlaÄidlo","notSet":"<nenastavené>","id":"Id","name":"Meno","langDir":"Orientácia jazyka","langDirLtr":"Zľava doprava (LTR)","langDirRtl":"Sprava doľava (RTL)","langCode":"Kód jazyka","longDescr":"Dlhý popis URL","cssClass":"Trieda Å¡týlu","advisoryTitle":"Pomocný titulok","cssStyle":"Å týl","ok":"OK","cancel":"ZruÅ¡iÅ¥","close":"Zatvorit","preview":"Náhľad","resize":"ZmeniÅ¥ veľkosÅ¥","generalTab":"Hlavné","advancedTab":"RozÅ¡Ãrené","v
alidateNumberFailed":"Hodnota nieje ÄÃslo.","confirmNewPage":"Prajete si naÄÃtat novú stránku? VÅ¡etky neuložené zmeny budú stratené. ","confirmCancel":"Niektore možnosti boli zmenené. Naozaj chcete zavrieÅ¥ okno?","options":"Možnosti","target":"Cieľ","targetNew":"Nové okno (_blank)","targetTop":"NajvrchnejÅ¡ie okno (_top)","targetSelf":"To isté okno (_self)","targetParent":"RodiÄovské okno (_parent)","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","styles":"Å týl","cssClasses":"Triedy Å¡týlu","width":"Å Ãrka","height":"Výška","align":"Zarovnanie","alignLeft":"Vľavo","alignRight":"Vpravo","alignCenter":"Na stred","alignTop":"Nahor","alignMiddle":"Na stred","alignBottom":"Dole","invalidValue":"Neplatná hodnota.","invalidHeight":"Výška musà byÅ¥ ÄÃslo.","invalidWidth":"Å Ãrka musà byÅ¥ ÄÃslo.","invalidCssLength":"Å pecifikovaná hodnota pre pole \"%1\" musà byÅ¥ kladné ÄÃslo s alebo bez platnej CSS mernej jednotky (
px, %, in, cm, mm, em, ex, pt alebo pc).","invalidHtmlLength":"Å pecifikovaná hodnota pre pole \"%1\" musà byÅ¥ kladné ÄÃslo s alebo bez platnej HTML mernej jednotky (px alebo %).","invalidInlineStyle":"Zadaná hodnota pre inline Å¡týl musà pozostávaÅ¥ s jedného, alebo viac dvojÃc formátu \"názov: hodnota\", oddelených bodkoÄiarkou.","cssLengthTooltip":"Vložte ÄÃslo pre hodnotu v pixeloch alebo ÄÃslo so správnou CSS jednotou (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedostupný</span>"},"about":{"copy":"Copyright © $1. VÅ¡etky práva vyhradené.","dlgTitle":"O CKEditor-e","help":"ZaÅ¡krtnite $1 pre pomoc.","moreInfo":"Pre informácie o licenciách, prosÃme, navÅ¡tÃvte naÅ¡u web stránku:","title":"O CKEditor-e","userGuide":"PoužÃvateľská prÃruÄka KCEditor-a"},"basicstyles":{"bold":"TuÄné","italic":"KurzÃva","strike":"PreÄiarknuté","subscript":"Dolný index","superscript":"Horný index",
"underline":"PodÄiarknuté"},"bidi":{"ltr":"Smer textu zľava doprava","rtl":"Smer textu sprava doľava"},"blockquote":{"toolbar":"Citácia"},"clipboard":{"copy":"KopÃrovaÅ¥","copyError":"BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru automaticky spustiÅ¥ operáciu kopÃrovania. ProsÃm, použite na to klávesnicu (Ctrl/Cmd+C).","cut":"Vystrihnúť","cutError":"BezpeÄnostné nastavenia Vášho prehliadaÄa nedovoľujú editoru automaticky spustiÅ¥ operáciu vystrihnutia. ProsÃm, použite na to klávesnicu (Ctrl/Cmd+X).","paste":"VložiÅ¥","pasteArea":"Miesto pre vloženie","pasteMsg":"ProsÃm, vložte nasledovný rámÄek použitÃm klávesnice (<STRONG>Ctrl/Cmd+V</STRONG>) a stlaÄte OK.","securityMsg":"Kvôli vaÅ¡im bezpeÄnostným nastaveniam prehliadaÄa editor nie je schopný pristupovaÅ¥ k vaÅ¡ej schránke na kopÃrovanie priamo. Vložte to preto do tohto okna.","title":"VložiÅ¥"},"colorbutton":{"auto":"Automaticky","bgColorTitle":"Farba pozad
ia","colors":{"000":"Äierna","800000":"Maroon","8B4513":"Sedlová hnedá","2F4F4F":"Tmavo bridlicovo sivá","008080":"Modrozelená","000080":"Tmavomodrá","4B0082":"Indigo","696969":"Tmavá sivá","B22222":"OhÅová tehlová","A52A2A":"Hnedá","DAA520":"Zlatobyľ","006400":"Tmavá zelená","40E0D0":"Tyrkysová","0000CD":"Stredná modrá","800080":"Purpurová","808080":"Sivá","F00":"Äervená","FF8C00":"Tmavá oranžová","FFD700":"Zlatá","008000":"Zelená","0FF":"Azúrová","00F":"Modrá","EE82EE":"Fialová","A9A9A9":"Tmavá sivá","FFA07A":"Svetlo lososová","FFA500":"Oranžová","FFFF00":"Žltá","00FF00":"Vápenná","AFEEEE":"Svetlo tyrkysová","ADD8E6":"Svetlo modrá","DDA0DD":"Slivková","D3D3D3":"Svetlo sivá","FFF0F5":"Levanduľovo Äervená","FAEBD7":"Antická biela","FFFFE0":"Svetlo žltá","F0FFF0":"Medová","F0FFFF":"Azúrová","F0F8FF":"Alicovo modrá","E6E6FA":"Levanduľová","FFF":"Biela"},"more":"Viac farieb...","panelTitle":"Farby","textColorTitle":"Farba
textu"},"colordialog":{"clear":"VyÄistiÅ¥","highlight":"ZvýrazniÅ¥","options":"Možnosti farby","selected":"Vybraná farba","title":"Vyberte farbu"},"templates":{"button":"Å ablóny","emptyListMsg":"(Žiadne Å¡ablóny nedefinované)","insertOption":"NahradiÅ¥ aktuálny obsah","options":"Možnosti Å¡ablóny","selectPromptMsg":"ProsÃm vyberte Å¡ablónu na otvorenie v editore","title":"Å ablóny obsahu"},"contextmenu":{"options":"Možnosti kontextového menu"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Pomocný titulok","cssClassInputLabel":"Triedy Å¡týlu","edit":"UpraviÅ¥ Div","inlineStyleInputLabel":"Inline Å¡týl","langDirLTRLabel":"Zľava doprava (LTR)","langDirLabel":"Smer jazyka","langDirRTLLabel":"Zprava doľava (RTL)","languageCodeInputLabel":"Kód jazyka","remove":"OdstrániÅ¥ Div","styleSelectLabel":"Å týl","title":"VytvoriÅ¥ Div kontajner","toolbar":"VytvoriÅ¥ Div kontajner"},"toolbar":{"toolbarCollapse":"ZbaliÅ¥ liÅ¡tu nástrojov","toolbarExpand":"Ro
zbaliÅ¥ liÅ¡tu nástrojov","toolbarGroups":{"document":"Dokument","clipboard":"Schránka pre kopÃrovanie/Späť","editing":"Upravovanie","forms":"Formuláre","basicstyles":"Základné Å¡týly","paragraph":"Odstavec","links":"Odkazy","insert":"VložiÅ¥","styles":"Å týly","colors":"Farby","tools":"Nástroje"},"toolbars":"LiÅ¡ty nástrojov editora"},"elementspath":{"eleLabel":"Cesta prvkov","eleTitle":"%1 prvok"},"list":{"bulletedlist":"VložiÅ¥/OdstrániÅ¥ zoznam s odrážkami","numberedlist":"VložiÅ¥/OdstrániÅ¥ ÄÃslovaný zoznam"},"indent":{"indent":"ZväÄÅ¡iÅ¥ odsadenie","outdent":"ZmenÅ¡iÅ¥ odsadenie"},"find":{"find":"HľadaÅ¥","findOptions":"NájsÅ¥ možnosti","findWhat":"Äo hľadaÅ¥:","matchCase":"RozliÅ¡ovaÅ¥ malé a veľké pÃsmená","matchCyclic":"CykliÅ¥ zhodu","matchWord":"Len celé slová","notFoundMsg":"Hľadaný text nebol nájdený.","replace":"NahradiÅ¥","replaceAll":"NahradiÅ¥ vÅ¡etko","replaceSuccessMsg":"%1 výskyt(ov) nahradených.","replaceWith":"Ä
Ãm nahradiÅ¥:","title":"NájsÅ¥ a nahradiÅ¥"},"fakeobjects":{"anchor":"Kotva","flash":"Flash animácia","hiddenfield":"Skryté pole","iframe":"IFrame","unknown":"Neznámy objekt"},"flash":{"access":"PrÃstup skriptu","accessAlways":"Vždy","accessNever":"Nikdy","accessSameDomain":"Rovnaká doména","alignAbsBottom":"Ãplne dole","alignAbsMiddle":"Do stredu","alignBaseline":"Na základnú Äiaru","alignTextTop":"Na horný okraj textu","bgcolor":"Farba pozadia","chkFull":"PovoliÅ¥ zobrazenie na celú obrazovku (fullscreen)","chkLoop":"Opakovanie","chkMenu":"PovoliÅ¥ Flash Menu","chkPlay":"Automatické prehrávanie","flashvars":"Premenné pre Flash","hSpace":"H-medzera","properties":"Vlastnosti Flashu","propertiesTab":"Vlastnosti","quality":"Kvalita","qualityAutoHigh":"Automaticky vysoká","qualityAutoLow":"Automaticky nÃzka","qualityBest":"NajlepÅ¡ia","qualityHigh":"Vysoká","qualityLow":"NÃzka","qualityMedium":"Stredná","scale":"Mierka","scaleAll":"ZobraziÅ¥ vÅ¡etko","sc
aleFit":"RoztiahnuÅ¥, aby sedelo presne","scaleNoBorder":"Bez okrajov","title":"Vlastnosti Flashu","vSpace":"V-medzera","validateHSpace":"H-medzera musà byÅ¥ ÄÃslo.","validateSrc":"URL nesmie byÅ¥ prázdne.","validateVSpace":"V-medzera musà byÅ¥ ÄÃslo","windowMode":"Mód okna","windowModeOpaque":"Nepriehľadný","windowModeTransparent":"Priehľadný","windowModeWindow":"Okno"},"font":{"fontSize":{"label":"VeľkosÅ¥","voiceLabel":"VeľkosÅ¥ pÃsma","panelTitle":"VeľkosÅ¥ pÃsma"},"label":"Font","panelTitle":"Názov fontu","voiceLabel":"Font"},"forms":{"button":{"title":"Vlastnosti tlaÄidla","text":"Text (Hodnota)","type":"Typ","typeBtn":"TlaÄidlo","typeSbm":"OdoslaÅ¥","typeRst":"ResetovaÅ¥"},"checkboxAndRadio":{"checkboxTitle":"Vlastnosti zaÅ¡krtávacieho polÃÄka","radioTitle":"Vlastnosti prepÃnaÄa (radio button)","value":"Hodnota","selected":"Vybrané (selected)"},"form":{"title":"Vlastnosti formulára","menu":"Vlastnosti formulára","action":"Akcia (action)","m
ethod":"Metóda (method)","encoding":"Kódovanie (encoding)"},"hidden":{"title":"Vlastnosti skrytého poľa","name":"Názov (name)","value":"Hodnota"},"select":{"title":"Vlastnosti rozbaľovacieho zoznamu","selectInfo":"Informácie o výbere","opAvail":"Dostupné možnosti","value":"Hodnota","size":"VeľkosÅ¥","lines":"riadkov","chkMulti":"PovoliÅ¥ viacnásobný výber","opText":"Text","opValue":"Hodnota","btnAdd":"PridaÅ¥","btnModify":"UpraviÅ¥","btnUp":"Hore","btnDown":"Dole","btnSetValue":"NastaviÅ¥ ako vybranú hodnotu","btnDelete":"VymazaÅ¥"},"textarea":{"title":"Vlastnosti textovej oblasti (textarea)","cols":"Stĺpcov","rows":"Riadkov"},"textfield":{"title":"Vlastnosti textového poľa","name":"Názov (name)","value":"Hodnota","charWidth":"Å Ãrka poľa (podľa znakov)","maxChars":"Maximálny poÄet znakov","type":"Typ","typeText":"Text","typePass":"Heslo","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Formá
t","panelTitle":"Formát","tag_address":"Adresa","tag_div":"Normálny (DIV)","tag_h1":"Nadpis 1","tag_h2":"Nadpis 2","tag_h3":"Nadpis 3","tag_h4":"Nadpis 4","tag_h5":"Nadpis 5","tag_h6":"Nadpis 6","tag_p":"Normálny","tag_pre":"Formátovaný"},"horizontalrule":{"toolbar":"VložiÅ¥ vodorovnú Äiaru"},"iframe":{"border":"ZobraziÅ¥ rám frame-u","noUrl":"ProsÃm, vložte URL iframe","scrolling":"PovoliÅ¥ skrolovanie","title":"Vlastnosti IFrame","toolbar":"IFrame"},"image":{"alertUrl":"Zadajte prosÃm URL obrázka","alt":"AlternatÃvny text","border":"Rám (border)","btnUpload":"OdoslaÅ¥ to na server","button2Img":"Chcete zmeniÅ¥ vybrané obrázkové tlaÄidlo na jednoduchý obrázok?","hSpace":"H-medzera","img2Button":"Chcete zmeniÅ¥ vybraný obrázok na obrázkové tlaÄidlo?","infoTab":"Informácie o obrázku","linkTab":"Odkaz","lockRatio":"Pomer zámky","menu":"Vlastnosti obrázka","resetSize":"Pôvodná veľkosÅ¥","title":"Vlastnosti obrázka","titleButton":"Vlastnosti obr
ázkového tlaÄidla","upload":"NahraÅ¥","urlMissing":"Chýba URL zdroja obrázka.","vSpace":"V-medzera","validateBorder":"Rám (border) musà byÅ¥ celé ÄÃslo.","validateHSpace":"H-medzera musà byÅ¥ celé ÄÃslo.","validateVSpace":"V-medzera musà byÅ¥ celé ÄÃslo."},"smiley":{"options":"Možnosti smajlÃkov","title":"VložiÅ¥ smajlÃka","toolbar":"SmajlÃky"},"justify":{"block":"ZarovnaÅ¥ do bloku","center":"ZarovnaÅ¥ na stred","left":"ZarovnaÅ¥ vľavo","right":"ZarovnaÅ¥ vpravo"},"link":{"acccessKey":"PrÃstupový kľúÄ","advanced":"RozÅ¡Ãrené","advisoryContentType":"Pomocný typ obsahu","advisoryTitle":"Pomocný titulok","anchor":{"toolbar":"Kotva","menu":"UpraviÅ¥ kotvu","title":"Vlastnosti kotvy","name":"Názov kotvy","errorName":"Zadajte prosÃm názov kotvy","remove":"OdstrániÅ¥ kotvu"},"anchorId":"Podľa Id objektu","anchorName":"Podľa mena kotvy","charset":"Priradená znaková sada","cssClasses":"Triedy Å¡týlu","emailAddress":"E-Mailová adresa","email
Body":"Telo správy","emailSubject":"Predmet správy","id":"Id","info":"Informácie o odkaze","langCode":"Orientácia jazyka","langDir":"Orientácia jazyka","langDirLTR":"Zľava doprava (LTR)","langDirRTL":"Sprava doľava (RTL)","menu":"UpraviÅ¥ odkaz","name":"Názov","noAnchors":"(V dokumente nie sú dostupné žiadne kotvy)","noEmail":"Zadajte prosÃm e-mailovú adresu","noUrl":"Zadajte prosÃm URL odkazu","other":"<iný>","popupDependent":"ZávislosÅ¥ (Netscape)","popupFeatures":"Vlastnosti vyskakovacieho okna","popupFullScreen":"Celá obrazovka (IE)","popupLeft":"Ľavý okraj","popupLocationBar":"Panel umiestnenia (location bar)","popupMenuBar":"Panel ponuky (menu bar)","popupResizable":"Meniteľná veľkosÅ¥ (resizable)","popupScrollBars":"PosuvnÃky (scroll bars)","popupStatusBar":"Stavový riadok (status bar)","popupToolbar":"Panel nástrojov (toolbar)","popupTop":"Horný okraj","rel":"VzÅ¥ah (rel)","selectAnchor":"VybraÅ¥ kotvu","styles":"Å týl","tabIndex":"Poradie
prvku (tab index)","target":"Cieľ","targetFrame":"<rámec>","targetFrameName":"Názov rámu cieľa","targetPopup":"<vyskakovacie okno>","targetPopupName":"Názov vyskakovacieho okna","title":"Odkaz","toAnchor":"Odkaz na kotvu v texte","toEmail":"E-mail","toUrl":"URL","toolbar":"Odkaz","type":"Typ odkazu","unlink":"OdstrániÅ¥ odkaz","upload":"NahraÅ¥"},"liststyle":{"armenian":"Arménske ÄÃslovanie","bulletedTitle":"Vlastnosti odrážkového zoznamu","circle":"Kruh","decimal":"ÄÃselné (1, 2, 3, atÄ.)","decimalLeadingZero":"ÄÃselné s nulou (01, 02, 03, atÄ.)","disc":"Disk","georgian":"Gregoriánske ÄÃslovanie (an, ban, gan, atÄ.)","lowerAlpha":"Malé latinské (a, b, c, d, e, atÄ.)","lowerGreek":"Malé grécke (alfa, beta, gama, atÄ.)","lowerRoman":"Malé rÃmske (i, ii, iii, iv, v, atÄ.)","none":"NiÄ","notset":"<nenastavené>","numberedTitle":"Vlastnosti ÄÃselného zoznamu","square":"Å tvorec","start":"ZaÄiatok","type":"Typ","upperAlpha":"Veľké latinskÃ
© (A, B, C, D, E, atÄ.)","upperRoman":"Veľké rÃmske (I, II, III, IV, V, atÄ.)","validateStartNumber":"ZaÄiatoÄné ÄÃslo ÄÃselného zoznamu musà byÅ¥ celé ÄÃslo."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"MaximalizovaÅ¥","minimize":"MinimalizovaÅ¥"},"newpage":{"toolbar":"Nová stránka"},"pagebreak":{"alt":"Zalomenie strany","toolbar":"VložiÅ¥ oddeľovaÄ stránky pre tlaÄ"},"pastetext":{"button":"VložiÅ¥ ako Äistý text","title":"VložiÅ¥ ako Äistý text"},"pastefromword":{"confirmCleanup":"Vkladaný text vyzerá byÅ¥ skopÃrovaný z Wordu. Chcete ho automaticky vyÄistiÅ¥ pred vkladanÃm?","error":"Nebolo možné vyÄistiÅ¥ vložené dáta kvôli internej chybe","title":"VložiÅ¥ z Wordu","toolbar":"VložiÅ¥ z Wordu"},"preview":{"preview":"Náhľad"},"print":{"toolbar":"TlaÄ"},"removeformat":{"toolbar":"OdstrániÅ¥ formátovanie"},"save":{"toolbar":"UložiÅ¥"},"selectall":{"toolbar":"VybraÅ¥ vÅ¡etko"},"showblocks":{"toolbar"
:"UkázaÅ¥ bloky"},"sourcearea":{"toolbar":"Zdroj"},"specialchar":{"options":"Možnosti Å¡peciálneho znaku","title":"Výber Å¡peciálneho znaku","toolbar":"VložiÅ¥ Å¡peciálny znak"},"scayt":{"about":"O KPPP (Kontrola pravopisu poÄas pÃsania)","aboutTab":"O","addWord":"PridaÅ¥ slovo","allCaps":"IgnorovaÅ¥ slová pÃsané veľkými pÃsmenami","dic_create":"VytvoriÅ¥","dic_delete":"VymazaÅ¥","dic_field_name":"Názov slovnÃka","dic_info":"SpoÄiatku je užÃvateľský slovnÃk uložený v cookie. Cookie vÅ¡ak majú obmedzenú veľkosÅ¥. KeÄ užÃvateľský slovnÃk narastie do bodu, kedy nemôže byÅ¥ uložený v cookie, potom musà byÅ¥ slovnÃk uložený na naÅ¡om serveri. Pre uloženie vášho osobného slovnÃka na náš server by ste mali zadaÅ¥ názov pre váš slovnÃk. Ak už máte uložený slovnÃk, prosÃme, napÃÅ¡te jeho názov a kliknite tlaÄidlo ObnoviÅ¥.","dic_rename":"PremenovaÅ¥","dic_restore":"ObnoviÅ¥","dictionariesTab":"SlovnÃky","disable":"Zakáza
Å¥ KPPP (Kontrola pravopisu poÄas pÃsania)","emptyDic":"Názov slovnÃka by nemal byÅ¥ prázdny.","enable":"PovoliÅ¥ KPPP (Kontrola pravopisu poÄas pÃsania)","ignore":"IgnorovaÅ¥","ignoreAll":"IgnorovaÅ¥ vÅ¡etko","ignoreDomainNames":"IznorovaÅ¥ názvy domén","langs":"Jazyky","languagesTab":"Jazyky","mixedCase":"IgnorovaÅ¥ slová so smieÅ¡anými veľkými a malými pÃsmenami","mixedWithDigits":"IgnorovaÅ¥ slová s ÄÃslami","moreSuggestions":"Viac návrhov","opera_title":"Nepodporované Operou","options":"Možnosti","optionsTab":"Možnosti","title":"Kontrola pravopisu poÄas pÃsania","toggle":"Prepnúť KPPP (Kontrola pravopisu poÄas pÃsania)","noSuggestions":"No suggestion"},"stylescombo":{"label":"Å týly","panelTitle":"Formátovanie Å¡týlov","panelTitle1":"Å týly bloku","panelTitle2":"Vnútroriadkové (inline) Å¡týly","panelTitle3":"Å týly objeku"},"table":{"border":"Å Ãrka rámu (border)","caption":"Popis","cell":{"menu":"Bunka","insertBefore":"VložiÅ¥ bu
nku pred","insertAfter":"VložiÅ¥ bunku za","deleteCell":"VymazaÅ¥ bunky","merge":"ZlúÄiÅ¥ bunky","mergeRight":"ZlúÄiÅ¥ doprava","mergeDown":"ZlúÄiÅ¥ dole","splitHorizontal":"RozdeliÅ¥ bunky horizontálne","splitVertical":"RozdeliÅ¥ bunky vertikálne","title":"Vlastnosti bunky","cellType":"Typ bunky","rowSpan":"Rozsah riadkov","colSpan":"Rozsah stĺpcov","wordWrap":"Zalomovanie riadkov","hAlign":"Horizontálne zarovnanie","vAlign":"Vertikálne zarovnanie","alignBaseline":"Základná Äiara (baseline)","bgColor":"Farba pozadia","borderColor":"Farba rámu","data":"Dáta","header":"HlaviÄka","yes":"Ãno","no":"Nie","invalidWidth":"Å Ãrka bunky musà byÅ¥ ÄÃslo.","invalidHeight":"Výška bunky musà byÅ¥ ÄÃslo.","invalidRowSpan":"Rozsah riadkov musà byÅ¥ celé ÄÃslo.","invalidColSpan":"Rozsah stĺpcov musà byÅ¥ celé ÄÃslo.","chooseColor":"VybraÅ¥"},"cellPad":"Odsadenie obsahu (cell padding)","cellSpace":"VzdialenosÅ¥ buniek (cell spacing)","column":{"menu":"St
ĺpec","insertBefore":"VložiÅ¥ stĺpec pred","insertAfter":"VložiÅ¥ stĺpec po","deleteColumn":"ZmazaÅ¥ stĺpce"},"columns":"Stĺpce","deleteTable":"VymazaÅ¥ tabuľku","headers":"HlaviÄka","headersBoth":"Obe","headersColumn":"Prvý stĺpec","headersNone":"Žiadne","headersRow":"Prvý riadok","invalidBorder":"Å irka rámu musà byÅ¥ ÄÃslo.","invalidCellPadding":"Odsadenie v bunkách (cell padding) musà byÅ¥ kladné ÄÃslo.","invalidCellSpacing":"Medzera mädzi bunkami (cell spacing) musà byÅ¥ kladné ÄÃslo.","invalidCols":"PoÄet stĺpcov musà byÅ¥ ÄÃslo väÄÅ¡ie ako 0.","invalidHeight":"Výška tabuľky musà byÅ¥ ÄÃslo.","invalidRows":"PoÄet riadkov musà byÅ¥ ÄÃslo väÄÅ¡ie ako 0.","invalidWidth":"Å irka tabuľky musà byÅ¥ ÄÃslo.","menu":"Vlastnosti tabuľky","row":{"menu":"Riadok","insertBefore":"VložiÅ¥ riadok pred","insertAfter":"VložiÅ¥ riadok po","deleteRow":"VymazaÅ¥ riadky"},"rows":"Riadky","summary":"Prehľad","title":"Vlastnosti tabuľky",
"toolbar":"Tabuľka","widthPc":"percent","widthPx":"pixelov","widthUnit":"jednotka Å¡Ãrky"},"undo":{"redo":"Znovu","undo":"Späť"},"wsc":{"btnIgnore":"IgnorovaÅ¥","btnIgnoreAll":"IgnorovaÅ¥ vÅ¡etko","btnReplace":"PrepÃsat","btnReplaceAll":"PrepÃsat vÅ¡etko","btnUndo":"Späť","changeTo":"ZmeniÅ¥ na","errorLoading":"Chyba pri naÄÃtanà slovnÃka z adresy: %s.","ieSpellDownload":"Kontrola pravopisu nie je naiÅ¡talovaná. Chcete ju teraz stiahnuÅ¥?","manyChanges":"Kontrola pravopisu dokonÄená: Bolo zmenených %1 slov","noChanges":"Kontrola pravopisu dokonÄená: Neboli zmenené žiadne slová","noMispell":"Kontrola pravopisu dokonÄená: Neboli nájdené žiadne chyby pravopisu","noSuggestions":"- Žiadny návrh -","notAvailable":"PrepáÄte, ale služba je momentálne nedostupná.","notInDic":"Nie je v slovnÃku","oneChange":"Kontrola pravopisu dokonÄená: Bolo zmenené jedno slovo","progress":"Prebieha kontrola pravopisu...","title":"SkontrolovaÅ¥ pravopis","toolbar"
:"Kontrola pravopisu"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/sl.js b/share/static/RichText/lang/sl.js
index e1c768a..57b6db9 100644
--- a/share/static/RichText/lang/sl.js
+++ b/share/static/RichText/lang/sl.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.sl={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Izvorna koda',newPage:'Nova stran',save:'Shrani',preview:'Predogled',cut:'Izreži',copy:'Kopiraj',paste:'Prilepi',print:'Natisni',underline:'PodÄrtano',bold:'Krepko',italic:'LežeÄe',selectAll:'Izberi vse',removeFormat:'Odstrani oblikovanje',strike:'PreÄrtano',subscript:'Podpisano',superscript:'Nadpisano',horizontalrule:'Vstavi vodoravno Ärto',pagebreak:'Vstavi prelom strani',unlink:'Odstrani povezavo',undo:'Razveljavi',redo:'Ponovi',common:{browseServer:'Prebrskaj na strežniku',url:'URL',protocol:'Protokol',upload:'Prenesi',uploadSubmit:'PoÅ¡lji na strežnik',image:'Slika',flash:'Flash',form:'Obrazec',checkbox:'Potrditveno polje',radio:'Izbirno polje',textField:'Vnosno polje',textarea:'Vnosno obmoÄje',hiddenField:'Skrito polje',button:'Gumb',select:'Spustni seznam',imageButton:'Gumb s sliko',notSet:'<ni postavljen>',id:'Id',name:'Im
e',langDir:'Smer jezika',langDirLtr:'Od leve proti desni (LTR)',langDirRtl:'Od desne proti levi (RTL)',langCode:'Oznaka jezika',longDescr:'Dolg opis URL-ja',cssClass:'Razred stilne predloge',advisoryTitle:'Predlagani naslov',cssStyle:'Slog',ok:'V redu',cancel:'PrekliÄi',close:'Close',preview:'Preview',generalTab:'SploÅ¡no',advancedTab:'Napredno',validateNumberFailed:'Ta vrednost ni Å¡tevilo.',confirmNewPage:'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali gotovo želiÅ¡ naložiti novo stran?',confirmCancel:'Nekaj možnosti je bilo spremenjenih. Ali gotovo želiÅ¡ zapreti okno?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, nedosegljiv</span>'},contextmenu:{options:'Context Menu Opt
ions'},specialChar:{toolbar:'Vstavi posebni znak',title:'Izberi posebni znak',options:'Special Character Options'},link:{toolbar:'Vstavi/uredi povezavo',other:'<drug>',menu:'Uredi povezavo',title:'Povezava',info:'Podatki o povezavi',target:'Cilj',upload:'Prenesi',advanced:'Napredno',type:'Vrsta povezave',toUrl:'URL',toAnchor:'Zaznamek na tej strani',toEmail:'Elektronski naslov',targetFrame:'<okvir>',targetPopup:'<pojavno okno>',targetFrameName:'Ime ciljnega okvirja',targetPopupName:'Ime pojavnega okna',popupFeatures:'ZnaÄilnosti pojavnega okna',popupResizable:'Spremenljive velikosti',popupStatusBar:'Vrstica stanja',popupLocationBar:'Naslovna vrstica',popupToolbar:'Orodna vrstica',popupMenuBar:'Menijska vrstica',popupFullScreen:'Celozaslonska slika (IE)',popupScrollBars:'Drsniki',popupDependent:'Podokno (Netscape)',popupWidth:'Å irina',popupLeft:'Lega levo',popupHeight:'ViÅ¡ina',popupTop:'Lega na vrhu',id:'Id',langDir:'Smer jezika',langDirLTR:'Od leve proti desni (LTR)',lang
DirRTL:'Od desne proti levi (RTL)',acccessKey:'Vstopno geslo',name:'Ime',langCode:'Smer jezika',tabIndex:'Å tevilka tabulatorja',advisoryTitle:'Predlagani naslov',advisoryContentType:'Predlagani tip vsebine (content-type)',cssClasses:'Razred stilne predloge',charset:'Kodna tabela povezanega vira',styles:'Slog',selectAnchor:'Izberi zaznamek',anchorName:'Po imenu zaznamka',anchorId:'Po ID-ju elementa',emailAddress:'Elektronski naslov',emailSubject:'Predmet sporoÄila',emailBody:'Vsebina sporoÄila',noAnchors:'(V tem dokumentu ni zaznamkov)',noUrl:'Vnesite URL povezave',noEmail:'Vnesite elektronski naslov'},anchor:{toolbar:'Vstavi/uredi zaznamek',menu:'Lastnosti zaznamka',title:'Lastnosti zaznamka',name:'Ime zaznamka',errorName:'Prosim vnesite ime zaznamka'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',n
one:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Najdi in zamenjaj',find:'Najdi',replace:'Zamenjaj',findWhat:'Najdi:',replaceWith:'Zamenjaj z:',notFoundMsg:'Navedeno besedilo ni bilo najdeno.',matchCase:'Razlikuj velike in male Ärke',matchWord:'Samo cele besede',matchCyclic:'Primerjaj znake v cirilici',replaceAll:'Zamenjaj vse',replaceSuccessMsg:'%1 pojavitev je bilo zamenjano.'},table:{toolbar:'Tabela',title:'Lastnosti tabele',menu:'Lastnosti tabele',deleteTable:'IzbriÅ¡i tabelo',rows:'Vrstice',columns:'Stolpci',border:'Velikost obrobe',align:'Poravnav
a',alignLeft:'Levo',alignCenter:'Sredinsko',alignRight:'Desno',width:'Å irina',widthPx:'pik',widthPc:'procentov',widthUnit:'width unit',height:'ViÅ¡ina',cellSpace:'Razmik med celicami',cellPad:'Polnilo med celicami',caption:'Naslov',summary:'Povzetek',headers:'Glave',headersNone:'Brez',headersColumn:'Prvi stolpec',headersRow:'Prva vrstica',headersBoth:'Oboje',invalidRows:'Å tevilo vrstic mora biti veÄje od 0.',invalidCols:'Å tevilo stolpcev mora biti veÄje od 0.',invalidBorder:'Å irina obrobe mora biti Å¡tevilo.',invalidWidth:'Å irina tabele mora biti Å¡tevilo.',invalidHeight:'ViÅ¡ina tabele mora biti Å¡tevilo.',invalidCellSpacing:'Razmik med celicami mora biti Å¡tevilo.',invalidCellPadding:'Zamik celic mora biti Å¡tevilo',cell:{menu:'Celica',insertBefore:'Vstavi celico pred',insertAfter:'Vstavi celico za',deleteCell:'IzbriÅ¡i celice',merge:'Združi celice',mergeRight:'Združi desno',mergeDown:'Druži navzdol',splitHorizontal:'Razdeli celico vodoravno',splitVertical:'Razde
li celico navpiÄno',title:'Lastnosti celice',cellType:'Vrsta celice',rowSpan:'Razpon vrstic',colSpan:'Razpon stolpcev',wordWrap:'Prelom besedila',hAlign:'Vodoravna poravnava',vAlign:'NavpiÄna poravnava',alignTop:'Vrh',alignMiddle:'Sredina',alignBottom:'Dno',alignBaseline:'Osnovnica',bgColor:'Barva ozadja',borderColor:'Barva obrobe',data:'Podatki',header:'Glava',yes:'Da',no:'Ne',invalidWidth:'Å irina celice mora biti Å¡tevilo.',invalidHeight:'ViÅ¡ina celice mora biti Å¡tevilo.',invalidRowSpan:'Razpon vrstic mora biti celo Å¡tevilo.',invalidColSpan:'Razpon stolpcev mora biti celo Å¡tevilo.',chooseColor:'Izberi'},row:{menu:'Vrstica',insertBefore:'Vstavi vrstico pred',insertAfter:'Vstavi vrstico za',deleteRow:'IzbriÅ¡i vrstice'},column:{menu:'Stolpec',insertBefore:'Vstavi stolpec pred',insertAfter:'Vstavi stolpec za',deleteColumn:'IzbriÅ¡i stolpce'}},button:{title:'Lastnosti gumba',text:'Besedilo (Vrednost)',type:'Tip',typeBtn:'Gumb',typeSbm:'Potrdi',typeRst:'Ponastavi'},check
boxAndRadio:{checkboxTitle:'Lastnosti potrditvenega polja',radioTitle:'Lastnosti izbirnega polja',value:'Vrednost',selected:'Izbrano'},form:{title:'Lastnosti obrazca',menu:'Lastnosti obrazca',action:'Akcija',method:'Metoda',encoding:'Kodiranje znakov'},select:{title:'Lastnosti spustnega seznama',selectInfo:'Podatki',opAvail:'Razpoložljive izbire',value:'Vrednost',size:'Velikost',lines:'vrstic',chkMulti:'Dovoli izbor veÄih vrstic',opText:'Besedilo',opValue:'Vrednost',btnAdd:'Dodaj',btnModify:'Spremeni',btnUp:'Gor',btnDown:'Dol',btnSetValue:'Postavi kot privzeto izbiro',btnDelete:'IzbriÅ¡i'},textarea:{title:'Lastnosti vnosnega obmoÄja',cols:'Stolpcev',rows:'Vrstic'},textfield:{title:'Lastnosti vnosnega polja',name:'Ime',value:'Vrednost',charWidth:'Dolžina',maxChars:'NajveÄje Å¡tevilo znakov',type:'Tip',typeText:'Besedilo',typePass:'Geslo'},hidden:{title:'Lastnosti skritega polja',name:'Ime',value:'Vrednost'},image:{title:'Lastnosti slike',titleButton:'Lastnosti gumba s sl
iko',menu:'Lastnosti slike',infoTab:'Podatki o sliki',btnUpload:'PoÅ¡lji na strežnik',upload:'PoÅ¡lji',alt:'Nadomestno besedilo',width:'Å irina',height:'ViÅ¡ina',lockRatio:'Zakleni razmerje',unlockRatio:'Unlock Ratio',resetSize:'Ponastavi velikost',border:'Obroba',hSpace:'Vodoravni razmik',vSpace:'NavpiÄni razmik',align:'Poravnava',alignLeft:'Levo',alignRight:'Desno',alertUrl:'Vnesite URL slike',linkTab:'Povezava',button2Img:'ŽeliÅ¡ pretvoriti izbrani gumb s sliko v preprosto sliko?',img2Button:'ŽeliÅ¡ pretvoriti izbrano sliko v gumb s sliko?',urlMissing:'Manjka vir (URL) slike.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Lastnosti Flash',propertiesTab:'Lastnosti',title:'Lastnosti Flash',chkPlay:'Samodejno predvajaj',chkLoop:'Ponavljanje',chkMenu:'OmogoÄi Fla
sh Meni',chkFull:'Dovoli celozaslonski naÄin',scale:'PoveÄava',scaleAll:'Pokaži vse',scaleNoBorder:'Brez obrobe',scaleFit:'NatanÄno prileganje',access:'Dostop skript',accessAlways:'Vedno',accessSameDomain:'Samo ista domena',accessNever:'Nikoli',align:'Poravnava',alignLeft:'Levo',alignAbsBottom:'Popolnoma na dno',alignAbsMiddle:'Popolnoma v sredino',alignBaseline:'Na osnovno Ärto',alignBottom:'Na dno',alignMiddle:'V sredino',alignRight:'Desno',alignTextTop:'Besedilo na vrh',alignTop:'Na vrh',quality:'Kakovost',qualityBest:'NajviÅ¡ja',qualityHigh:'Visoka',qualityAutoHigh:'Samodejno visoka',qualityMedium:'Srednja',qualityAutoLow:'Samodejno nizka',qualityLow:'Nizka',windowModeWindow:'Okno',windowModeOpaque:'Motno',windowModeTransparent:'Prosojno',windowMode:'Vrsta okna',flashvars:'Spremenljivke za Flash',bgcolor:'Barva ozadja',width:'Å irina',height:'ViÅ¡ina',hSpace:'Vodoravni razmik',vSpace:'NavpiÄni razmik',validateSrc:'Vnesite URL povezave',validateWidth:'Å irina mora b
iti Å¡tevilo.',validateHeight:'ViÅ¡ina mora biti Å¡tevilo.',validateHSpace:'Vodoravni razmik mora biti Å¡tevilo.',validateVSpace:'NavpiÄni razmik mora biti Å¡tevilo.'},spellCheck:{toolbar:'Preveri Ärkovanje',title:'Ärkovalnik',notAvailable:'Oprostite, storitev trenutno ni dosegljiva.',errorLoading:'Napaka pri nalaganju storitve programa na naslovu %s.',notInDic:'Ni v slovarju',changeTo:'Spremeni v',btnIgnore:'Prezri',btnIgnoreAll:'Prezri vse',btnReplace:'Zamenjaj',btnReplaceAll:'Zamenjaj vse',btnUndo:'Razveljavi',noSuggestions:'- Ni predlogov -',progress:'Preverjanje Ärkovanja se izvaja...',noMispell:'Ärkovanje je konÄano: Brez napak',noChanges:'Ärkovanje je konÄano: Nobena beseda ni bila spremenjena',oneChange:'Ärkovanje je konÄano: Spremenjena je bila ena beseda',manyChanges:'Ärkovanje je konÄano: Spremenjenih je bilo %1 besed',ieSpellDownload:'Ärkovalnik ni nameÅ¡Äen. Ali ga želite prenesti sedaj?'},smiley:{toolbar:'SmeÅ¡ko',title:'Vstavi smeÅ¡ka',options:'
Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'OÅ¡tevilÄen seznam',bulletedlist:'OznaÄen seznam',indent:'PoveÄaj zamik',outdent:'ZmanjÅ¡aj zamik',justify:{left:'Leva poravnava',center:'Sredinska poravnava',right:'Desna poravnava',block:'Obojestranska poravnava'},blockquote:'Citat',clipboard:{title:'Prilepi',cutError:'Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',copyError:'Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).',pasteMsg:'Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',securityMsg:'Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odložiÅ¡Äa. Vsebino odložiÅ¡Äa ponovno prilepite v to okno.',pasteArea:'Paste Area'},pastefromword:{confirmCleanu
p:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Prilepi iz Worda',title:'Prilepi iz Worda',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Prilepi kot golo besedilo',title:'Prilepi kot golo besedilo'},templates:{button:'Predloge',title:'Vsebinske predloge',options:'Template Options',insertOption:'Zamenjaj trenutno vsebino',selectPromptMsg:'Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):',emptyListMsg:'(Ni pripravljenih predlog)'},showBlocks:'Prikaži ograde',stylesCombo:{label:'Slog',panelTitle:'Formatting Styles',panelTitle1:'Slogi odstavkov',panelTitle2:'Slogi besedila',panelTitle3:'Slogi objektov'},format:{label:'Oblika',panelTitle:'Oblika',tag_p:'Navaden',tag_pre:'Oblikovan',tag_address:'Napis',tag_h1:'Naslov 1',tag_h2:'Naslov 2',tag_h3:'Naslov 3',tag_h4:'Naslov 4',tag_h5:'Naslov 5',tag_h6:'Naslov 6',tag_div:'Nava
den (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Pisava',voiceLabel:'Pisava',panelTitle:'Pisava'},fontSize:{label:'Velikost',voiceLabel:'Velikost',panelTitle:'Velikost'},colorButton:{textColorTitle:'Barva besedila',bgColorTitle:'Barva ozadja',panelTitle:'Colors',auto:'Samodejno',more:'VeÄ barv...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',8080
80:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Ärkovanje med tipkanjem',opera_title:'Not supported by Opera',enable:'OmogoÄi SCAYT',disable:'OnemogoÄi SCAYT',about:'O storitvi SCAYT',toggle:'Preklopi SCAYT',options:'Možnosti',langs:'Jeziki',moreSuggestions:'VeÄ predlogov',ignore:'Prezri',ignoreAll:'Prezri vse',addWord:'Dodaj besedo',emptyDic:'Ime slovarja ne more biti prazno.',optionsTab:'Možnosti',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Jeziki',di
ctionariesTab:'Slovarji',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'O storitvi'},about:{title:'O programu CKEditor',dlgTitle:'O programu CKEditor',moreInfo:'Za informacijo o licenci prostim obiÅ¡Äite naÅ¡o spletno stran:',copy:'Copyright © $1. Vse pravice pridržane.'},maximize:'Maksimiraj',minimize:'Minimiraj',fakeobjects:{anchor:'Sidro',flash:'Flash animacija',div:'Prelom strani',unknown:'Neznan objekt'},resize:'Potegni za spremembo velikosti',colordialog:{title:'Izberi barvo
',options:'Color Options',highlight:'Poudarjeno',selected:'Izbrano',clear:'PoÄisti'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['sl']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Prebrskaj na strežniku","url":"URL","protocol":"Protokol","upload":"Prenesi","uploadSubmit":"PoÅ¡lji na strežnik","image":"Slika","flash":"Flash","form":"Obrazec","checkbox":"Potrditveno polje","radio":"Izbirno polje","textField":"Vnosno polje","textarea":"Vnosno obmoÄje","hiddenField":"Skrito polje","button":"Gumb","select":"Spustni seznam","imageButton":"Gumb s sliko","notSet":"<ni postavljen>","id":"Id","name":"Ime","langDir":"Smer jezika","langDirLtr":"Od leve proti desni (LTR)","langDirRtl":"Od desne proti levi (RTL)","langCode":"Oznaka jezika","longDescr":"Dolg opis URL-ja","cssClass":"Razred stilne predloge","advisoryTitle":"Predlagani naslov","cssStyle":"Slog","ok":"V redu","cancel":"PrekliÄi","close":"Close","preview":"Predogled","resize":"Potegni za spremembo velikosti","generalTab":"SploÅ¡no","advancedTab":"Napredno","validateNumberFailed"
:"Ta vrednost ni število.","confirmNewPage":"Vse neshranjene spremembe te vsebine bodo izgubljene. Ali gotovo želiš naložiti novo stran?","confirmCancel":"Nekaj možnosti je bilo spremenjenih. Ali gotovo želiš zapreti okno?","options":"Možnosti","target":"Cilj","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","styles":"Slog","cssClasses":"Razred stilne predloge","width":"Širina","height":"Višina","align":"Poravnava","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredinsko","alignTop":"Na vrh","alignMiddle":"V sredino","alignBottom":"Na dno","invalidValue":"Invalid value.","invalidHeight":"Višina mora biti število.","invalidWidth":"Širina mora biti število.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement
unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, nedosegljiv</span>"},"about":{"copy":"Copyright © $1. Vse pravice pridržane.","dlgTitle":"O programu CKEditor","help":"Check $1 for help.","moreInfo":"Za informacijo o licenci prostim obiÅ¡Äite naÅ¡o spletno stran:","title":"O programu CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Krepko","italic":"LežeÄe","strike":"PreÄrtano","subscript":"Podpisano","superscript":"Nadpisano","underline":"PodÄrtano"},"bidi":{"ltr":"Text
direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Citat"},"clipboard":{"copy":"Kopiraj","copyError":"Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega kopiranja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+C).","cut":"Izreži","cutError":"Varnostne nastavitve brskalnika ne dopuÅ¡Äajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).","paste":"Prilepi","pasteArea":"Paste Area","pasteMsg":"Prosim prilepite v sleÄi okvir s pomoÄjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.","securityMsg":"Zaradi varnostnih nastavitev vaÅ¡ega brskalnika urejevalnik ne more neposredno dostopati do odložiÅ¡Äa. Vsebino odložiÅ¡Äa ponovno prilepite v to okno.","title":"Prilepi"},"colorbutton":{"auto":"Samodejno","bgColorTitle":"Barva ozadja","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy
","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"VeÄ barv...","panelTitle":"Colors","textColorTitle":"Barva besedila"},"colordialog":{"clear":"PoÄisti","highlight":"Poudarjeno","options":"Color Options","selected":"Izbrano","title":"Izberi barvo"},"templates":{"button":"Predloge","emptyListMsg":"(Ni pripravljenih predlog)","insertOption":"Zamenjaj trenutno vseb
ino","options":"Template Options","selectPromptMsg":"Izberite predlogo, ki jo želite odpreti v urejevalniku<br>(trenutna vsebina bo izgubljena):","title":"Vsebinske predloge"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Predlagani naslov","cssClassInputLabel":"Razred stilne predloge","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Od leve proti desni (LTR)","langDirLabel":"Smer jezika","langDirRTLLabel":"Od desne proti levi (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Slog","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","to
ols":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"OznaÄen seznam","numberedlist":"OÅ¡tevilÄen seznam"},"indent":{"indent":"PoveÄaj zamik","outdent":"ZmanjÅ¡aj zamik"},"find":{"find":"Najdi","findOptions":"Find Options","findWhat":"Najdi:","matchCase":"Razlikuj velike in male Ärke","matchCyclic":"Primerjaj znake v cirilici","matchWord":"Samo cele besede","notFoundMsg":"Navedeno besedilo ni bilo najdeno.","replace":"Zamenjaj","replaceAll":"Zamenjaj vse","replaceSuccessMsg":"%1 pojavitev je bilo zamenjano.","replaceWith":"Zamenjaj z:","title":"Najdi in zamenjaj"},"fakeobjects":{"anchor":"Sidro","flash":"Flash animacija","hiddenfield":"Skrito polje","iframe":"IFrame","unknown":"Neznan objekt"},"flash":{"access":"Dostop skript","accessAlways":"Vedno","accessNever":"Nikoli","accessSameDomain":"Samo ista domena","alignAbsBottom":"Popolnoma na dno","alignAbsMiddle":"Popolnoma v sredino","alignB
aseline":"Na osnovno Ärto","alignTextTop":"Besedilo na vrh","bgcolor":"Barva ozadja","chkFull":"Dovoli celozaslonski naÄin","chkLoop":"Ponavljanje","chkMenu":"OmogoÄi Flash Meni","chkPlay":"Samodejno predvajaj","flashvars":"Spremenljivke za Flash","hSpace":"Vodoravni razmik","properties":"Lastnosti Flash","propertiesTab":"Lastnosti","quality":"Kakovost","qualityAutoHigh":"Samodejno visoka","qualityAutoLow":"Samodejno nizka","qualityBest":"NajviÅ¡ja","qualityHigh":"Visoka","qualityLow":"Nizka","qualityMedium":"Srednja","scale":"PoveÄava","scaleAll":"Pokaži vse","scaleFit":"NatanÄno prileganje","scaleNoBorder":"Brez obrobe","title":"Lastnosti Flash","vSpace":"NavpiÄni razmik","validateHSpace":"Vodoravni razmik mora biti Å¡tevilo.","validateSrc":"Vnesite URL povezave","validateVSpace":"NavpiÄni razmik mora biti Å¡tevilo.","windowMode":"Vrsta okna","windowModeOpaque":"Motno","windowModeTransparent":"Prosojno","windowModeWindow":"Okno"},"font":{"fontSize":{"label":"Veliko
st","voiceLabel":"Velikost","panelTitle":"Velikost"},"label":"Pisava","panelTitle":"Pisava","voiceLabel":"Pisava"},"forms":{"button":{"title":"Lastnosti gumba","text":"Besedilo (Vrednost)","type":"Tip","typeBtn":"Gumb","typeSbm":"Potrdi","typeRst":"Ponastavi"},"checkboxAndRadio":{"checkboxTitle":"Lastnosti potrditvenega polja","radioTitle":"Lastnosti izbirnega polja","value":"Vrednost","selected":"Izbrano"},"form":{"title":"Lastnosti obrazca","menu":"Lastnosti obrazca","action":"Akcija","method":"Metoda","encoding":"Kodiranje znakov"},"hidden":{"title":"Lastnosti skritega polja","name":"Ime","value":"Vrednost"},"select":{"title":"Lastnosti spustnega seznama","selectInfo":"Podatki","opAvail":"Razpoložljive izbire","value":"Vrednost","size":"Velikost","lines":"vrstic","chkMulti":"Dovoli izbor veÄih vrstic","opText":"Besedilo","opValue":"Vrednost","btnAdd":"Dodaj","btnModify":"Spremeni","btnUp":"Gor","btnDown":"Dol","btnSetValue":"Postavi kot privzeto izbiro","btnDelete":"Izb
riÅ¡i"},"textarea":{"title":"Lastnosti vnosnega obmoÄja","cols":"Stolpcev","rows":"Vrstic"},"textfield":{"title":"Lastnosti vnosnega polja","name":"Ime","value":"Vrednost","charWidth":"Dolžina","maxChars":"NajveÄje Å¡tevilo znakov","type":"Tip","typeText":"Besedilo","typePass":"Geslo","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Oblika","panelTitle":"Oblika","tag_address":"Napis","tag_div":"Navaden (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Navaden","tag_pre":"Oblikovan"},"horizontalrule":{"toolbar":"Vstavi vodoravno Ärto"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Vnesite URL slike","alt":"Nadomestno besedilo","border":"Obroba","btnUpload":"PoÅ¡lji na strežnik","button2Img":"ŽeliÅ¡
pretvoriti izbrani gumb s sliko v preprosto sliko?","hSpace":"Vodoravni razmik","img2Button":"ŽeliÅ¡ pretvoriti izbrano sliko v gumb s sliko?","infoTab":"Podatki o sliki","linkTab":"Povezava","lockRatio":"Zakleni razmerje","menu":"Lastnosti slike","resetSize":"Ponastavi velikost","title":"Lastnosti slike","titleButton":"Lastnosti gumba s sliko","upload":"PoÅ¡lji","urlMissing":"Manjka vir (URL) slike.","vSpace":"NavpiÄni razmik","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Vstavi smeÅ¡ka","toolbar":"SmeÅ¡ko"},"justify":{"block":"Obojestranska poravnava","center":"Sredinska poravnava","left":"Leva poravnava","right":"Desna poravnava"},"link":{"acccessKey":"Vstopno geslo","advanced":"Napredno","advisoryContentType":"Predlagani tip vsebine (content-type)","advisoryTitle":"Predlagani naslov","anchor":{"toolbar":"Vstavi/uredi zaz
namek","menu":"Lastnosti zaznamka","title":"Lastnosti zaznamka","name":"Ime zaznamka","errorName":"Prosim vnesite ime zaznamka","remove":"Remove Anchor"},"anchorId":"Po ID-ju elementa","anchorName":"Po imenu zaznamka","charset":"Kodna tabela povezanega vira","cssClasses":"Razred stilne predloge","emailAddress":"Elektronski naslov","emailBody":"Vsebina sporoÄila","emailSubject":"Predmet sporoÄila","id":"Id","info":"Podatki o povezavi","langCode":"Smer jezika","langDir":"Smer jezika","langDirLTR":"Od leve proti desni (LTR)","langDirRTL":"Od desne proti levi (RTL)","menu":"Uredi povezavo","name":"Ime","noAnchors":"(V tem dokumentu ni zaznamkov)","noEmail":"Vnesite elektronski naslov","noUrl":"Vnesite URL povezave","other":"<drug>","popupDependent":"Podokno (Netscape)","popupFeatures":"ZnaÄilnosti pojavnega okna","popupFullScreen":"Celozaslonska slika (IE)","popupLeft":"Lega levo","popupLocationBar":"Naslovna vrstica","popupMenuBar":"Menijska vrstica","popupResizable":"Spreme
nljive velikosti","popupScrollBars":"Drsniki","popupStatusBar":"Vrstica stanja","popupToolbar":"Orodna vrstica","popupTop":"Lega na vrhu","rel":"Relationship","selectAnchor":"Izberi zaznamek","styles":"Slog","tabIndex":"Å tevilka tabulatorja","target":"Cilj","targetFrame":"<okvir>","targetFrameName":"Ime ciljnega okvirja","targetPopup":"<pojavno okno>","targetPopupName":"Ime pojavnega okna","title":"Povezava","toAnchor":"Zaznamek na tej strani","toEmail":"Elektronski naslov","toUrl":"URL","toolbar":"Vstavi/uredi povezavo","type":"Vrsta povezave","unlink":"Odstrani povezavo","upload":"Prenesi"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":
"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maksimiraj","minimize":"Minimiraj"},"newpage":{"toolbar":"Nova stran"},"pagebreak":{"alt":"Page Break","toolbar":"Vstavi prelom strani"},"pastetext":{"button":"Prilepi kot golo besedilo","title":"Prilepi kot golo besedilo"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Prilepi iz Worda","toolbar":"Prilepi iz Worda"},"preview":{"preview":"Predogled"},"print":{"toolbar":"Natisni"},"removeformat":{"toolba
r":"Odstrani oblikovanje"},"save":{"toolbar":"Shrani"},"selectall":{"toolbar":"Izberi vse"},"showblocks":{"toolbar":"Prikaži ograde"},"sourcearea":{"toolbar":"Izvorna koda"},"specialchar":{"options":"Special Character Options","title":"Izberi posebni znak","toolbar":"Vstavi posebni znak"},"scayt":{"about":"O storitvi SCAYT","aboutTab":"O storitvi","addWord":"Dodaj besedo","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Slovarji","dis
able":"OnemogoÄi SCAYT","emptyDic":"Ime slovarja ne more biti prazno.","enable":"OmogoÄi SCAYT","ignore":"Prezri","ignoreAll":"Prezri vse","ignoreDomainNames":"Ignore Domain Names","langs":"Jeziki","languagesTab":"Jeziki","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"VeÄ predlogov","opera_title":"Not supported by Opera","options":"Možnosti","optionsTab":"Možnosti","title":"Ärkovanje med tipkanjem","toggle":"Preklopi SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Slog","panelTitle":"Formatting Styles","panelTitle1":"Slogi odstavkov","panelTitle2":"Slogi besedila","panelTitle3":"Slogi objektov"},"table":{"border":"Velikost obrobe","caption":"Naslov","cell":{"menu":"Celica","insertBefore":"Vstavi celico pred","insertAfter":"Vstavi celico za","deleteCell":"IzbriÅ¡i celice","merge":"Združi celice","mergeRight":"Združi desno","mergeDown":"Druži navzdol","splitHorizontal":"Razdeli celico vodorav
no","splitVertical":"Razdeli celico navpiÄno","title":"Lastnosti celice","cellType":"Vrsta celice","rowSpan":"Razpon vrstic","colSpan":"Razpon stolpcev","wordWrap":"Prelom besedila","hAlign":"Vodoravna poravnava","vAlign":"NavpiÄna poravnava","alignBaseline":"Osnovnica","bgColor":"Barva ozadja","borderColor":"Barva obrobe","data":"Podatki","header":"Glava","yes":"Da","no":"Ne","invalidWidth":"Å irina celice mora biti Å¡tevilo.","invalidHeight":"ViÅ¡ina celice mora biti Å¡tevilo.","invalidRowSpan":"Razpon vrstic mora biti celo Å¡tevilo.","invalidColSpan":"Razpon stolpcev mora biti celo Å¡tevilo.","chooseColor":"Izberi"},"cellPad":"Polnilo med celicami","cellSpace":"Razmik med celicami","column":{"menu":"Stolpec","insertBefore":"Vstavi stolpec pred","insertAfter":"Vstavi stolpec za","deleteColumn":"IzbriÅ¡i stolpce"},"columns":"Stolpci","deleteTable":"IzbriÅ¡i tabelo","headers":"Glave","headersBoth":"Oboje","headersColumn":"Prvi stolpec","headersNone":"Brez","headersRow":"Pr
va vrstica","invalidBorder":"Å irina obrobe mora biti Å¡tevilo.","invalidCellPadding":"Zamik celic mora biti Å¡tevilo","invalidCellSpacing":"Razmik med celicami mora biti Å¡tevilo.","invalidCols":"Å tevilo stolpcev mora biti veÄje od 0.","invalidHeight":"ViÅ¡ina tabele mora biti Å¡tevilo.","invalidRows":"Å tevilo vrstic mora biti veÄje od 0.","invalidWidth":"Å irina tabele mora biti Å¡tevilo.","menu":"Lastnosti tabele","row":{"menu":"Vrstica","insertBefore":"Vstavi vrstico pred","insertAfter":"Vstavi vrstico za","deleteRow":"IzbriÅ¡i vrstice"},"rows":"Vrstice","summary":"Povzetek","title":"Lastnosti tabele","toolbar":"Tabela","widthPc":"procentov","widthPx":"pik","widthUnit":"width unit"},"undo":{"redo":"Ponovi","undo":"Razveljavi"},"wsc":{"btnIgnore":"Prezri","btnIgnoreAll":"Prezri vse","btnReplace":"Zamenjaj","btnReplaceAll":"Zamenjaj vse","btnUndo":"Razveljavi","changeTo":"Spremeni v","errorLoading":"Napaka pri nalaganju storitve programa na naslovu %s.","ieSpellDownloa
d":"Ärkovalnik ni nameÅ¡Äen. Ali ga želite prenesti sedaj?","manyChanges":"Ärkovanje je konÄano: Spremenjenih je bilo %1 besed","noChanges":"Ärkovanje je konÄano: Nobena beseda ni bila spremenjena","noMispell":"Ärkovanje je konÄano: Brez napak","noSuggestions":"- Ni predlogov -","notAvailable":"Oprostite, storitev trenutno ni dosegljiva.","notInDic":"Ni v slovarju","oneChange":"Ärkovanje je konÄano: Spremenjena je bila ena beseda","progress":"Preverjanje Ärkovanja se izvaja...","title":"Ärkovalnik","toolbar":"Preveri Ärkovanje"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/sr-latn.js b/share/static/RichText/lang/sr-latn.js
index f9783b7..0bc17a0 100644
--- a/share/static/RichText/lang/sr-latn.js
+++ b/share/static/RichText/lang/sr-latn.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['sr-latn']={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Kôd',newPage:'Nova stranica',save:'SaÄuvaj',preview:'Izgled stranice',cut:'Iseci',copy:'Kopiraj',paste:'Zalepi',print:'Å tampa',underline:'PodvuÄeno',bold:'Podebljano',italic:'Kurziv',selectAll:'OznaÄi sve',removeFormat:'Ukloni formatiranje',strike:'Precrtano',subscript:'Indeks',superscript:'Stepen',horizontalrule:'Unesi horizontalnu liniju',pagebreak:'Insert Page Break for Printing',unlink:'Ukloni link',undo:'Poni�ti akciju',redo:'Ponovi akciju',common:{browseServer:'Pretraži server',url:'URL',protocol:'Protokol',upload:'PoÅ¡alji',uploadSubmit:'PoÅ¡alji na server',image:'Slika',flash:'FleÅ¡',form:'Forma',checkbox:'Polje za potvrdu',radio:'Radio-dugme',textField:'Tekstualno polje',textarea:'Zona teksta',hiddenField:'Skriveno polje',button:'Dugme',select:'Izborno polje',imageButton:'Dugme sa slikom',notSet:'<nije postavljeno>
',id:'Id',name:'Naziv',langDir:'Smer jezika',langDirLtr:'S leva na desno (LTR)',langDirRtl:'S desna na levo (RTL)',langCode:'Kôd jezika',longDescr:'Pun opis URL',cssClass:'Stylesheet klase',advisoryTitle:'Advisory naslov',cssStyle:'Stil',ok:'OK',cancel:'Otkaži',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Napredni tagovi',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Optio
ns'},specialChar:{toolbar:'Unesi specijalni karakter',title:'Odaberite specijalni karakter',options:'Special Character Options'},link:{toolbar:'Unesi/izmeni link',other:'<оÑÑало>',menu:'Izmeni link',title:'Link',info:'Link Info',target:'Meta',upload:'PoÅ¡alji',advanced:'Napredni tagovi',type:'Vrsta linka',toUrl:'URL',toAnchor:'Sidro na ovoj stranici',toEmail:'E-Mail',targetFrame:'<okvir>',targetPopup:'<popup prozor>',targetFrameName:'Naziv odrediÅ¡nog frejma',targetPopupName:'Naziv popup prozora',popupFeatures:'MoguÄnosti popup prozora',popupResizable:'Resizable',popupStatusBar:'Statusna linija',popupLocationBar:'Lokacija',popupToolbar:'Toolbar',popupMenuBar:'Kontekstni meni',popupFullScreen:'Prikaz preko celog ekrana (IE)',popupScrollBars:'Scroll bar',popupDependent:'Zavisno (Netscape)',popupWidth:'Å irina',popupLeft:'Od leve ivice ekrana (px)',popupHeight:'Visina',popupTop:'Od vrha ekrana (px)',id:'Id',langDir:'Smer jezika',langDirLTR:'S leva na desno (LTR)',langDir
RTL:'S desna na levo (RTL)',acccessKey:'Pristupni taster',name:'Naziv',langCode:'Smer jezika',tabIndex:'Tab indeks',advisoryTitle:'Advisory naslov',advisoryContentType:'Advisory vrsta sadržaja',cssClasses:'Stylesheet klase',charset:'Linked Resource Charset',styles:'Stil',selectAnchor:'Odaberi sidro',anchorName:'Po nazivu sidra',anchorId:'Po Id-ju elementa',emailAddress:'E-Mail adresa',emailSubject:'Naslov',emailBody:'Sadržaj poruke',noAnchors:'(Nema dostupnih sidra)',noUrl:'Unesite URL linka',noEmail:'Otkucajte adresu elektronske pote'},anchor:{toolbar:'Unesi/izmeni sidro',menu:'Osobine sidra',title:'Osobine sidra',name:'Ime sidra',errorName:'Unesite ime sidra'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an,
ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'Pretraga',replace:'Zamena',findWhat:'Pronadi:',replaceWith:'Zameni sa:',notFoundMsg:'Traženi tekst nije pronaÄen.',matchCase:'Razlikuj mala i velika slova',matchWord:'Uporedi cele reci',matchCyclic:'Match cyclic',replaceAll:'Zameni sve',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabela',title:'Osobine tabele',menu:'Osobine tabele',deleteTable:'Delete Table',rows:'Redova',columns:'Kolona',border:'VeliÄina okvira',align:'Ravnanje',alignLeft:'Levo',alignCenter:'Sredina',alignRight:'Desno',width:'Å irina',widthPx:'piksela',widthPc:'procenata',widthUnit:'
width unit',height:'Visina',cellSpace:'Äelijski prostor',cellPad:'Razmak Äelija',caption:'Naslov tabele',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'ObriÅ¡i Äelije',merge:'Spoj celije',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizonta
l Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'ObriÅ¡i redove'},column:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'ObriÅ¡i kolone'}},button:{title:'Osobine dugmeta',text:'Tekst (vrednost)',type:'Tip',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'Osobine polja za potvrdu',radioTitle:'Osobine radio-dugmeta',value:'Vrednost',selected:'OznaÄeno'},form:{title:'Osobine forme',menu:'Osobine forme',action:'Akcija',m
ethod:'Metoda',encoding:'Encoding'},select:{title:'Osobine izbornog polja',selectInfo:'Info',opAvail:'Dostupne opcije',value:'Vrednost',size:'VeliÄina',lines:'linija',chkMulti:'Dozvoli viÅ¡estruku selekciju',opText:'Tekst',opValue:'Vrednost',btnAdd:'Dodaj',btnModify:'Izmeni',btnUp:'Gore',btnDown:'Dole',btnSetValue:'Podesi kao oznaÄenu vrednost',btnDelete:'ObriÅ¡i'},textarea:{title:'Osobine zone teksta',cols:'Broj kolona',rows:'Broj redova'},textfield:{title:'Osobine tekstualnog polja',name:'Naziv',value:'Vrednost',charWidth:'Å irina (karaktera)',maxChars:'Maksimalno karaktera',type:'Tip',typeText:'Tekst',typePass:'Lozinka'},hidden:{title:'Osobine skrivenog polja',name:'Naziv',value:'Vrednost'},image:{title:'Osobine slika',titleButton:'Osobine dugmeta sa slikom',menu:'Osobine slika',infoTab:'Info slike',btnUpload:'PoÅ¡alji na server',upload:'PoÅ¡alji',alt:'Alternativni tekst',width:'Å irina',height:'Visina',lockRatio:'ZakljuÄaj odnos',unlockRatio:'Unlock Ratio',resetSize:'
Resetuj veliÄinu',border:'Okvir',hSpace:'HSpace',vSpace:'VSpace',align:'Ravnanje',alignLeft:'Levo',alignRight:'Desno',alertUrl:'Unesite URL slike',linkTab:'Link',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Osobine fleÅ¡a',propertiesTab:'Properties',title:'Osobine fleÅ¡a',chkPlay:'Automatski start',chkLoop:'Ponavljaj',chkMenu:'UkljuÄi fleÅ¡ meni',chkFull:'Allow Fullscreen',scale:'Skaliraj',scaleAll:'Prikaži sve',scaleNoBorder:'Bez ivice',scaleFit:'Popuni povrÅ¡inu',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:
'Ravnanje',alignLeft:'Levo',alignAbsBottom:'Abs dole',alignAbsMiddle:'Abs sredina',alignBaseline:'Bazno',alignBottom:'Dole',alignMiddle:'Sredina',alignRight:'Desno',alignTextTop:'Vrh teksta',alignTop:'Vrh',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Boja pozadine',width:'Å irina',height:'Visina',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'Unesite URL linka',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Proveri spelovanje',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Nije u reÄniku',
changeTo:'Izmeni',btnIgnore:'IgnoriÅ¡i',btnIgnoreAll:'IgnoriÅ¡i sve',btnReplace:'Zameni',btnReplaceAll:'Zameni sve',btnUndo:'Vrati akciju',noSuggestions:'- Bez sugestija -',progress:'Provera spelovanja u toku...',noMispell:'Provera spelovanja zavrÅ¡ena: greÅ¡ke nisu pronadene',noChanges:'Provera spelovanja zavrÅ¡ena: Nije izmenjena nijedna rec',oneChange:'Provera spelovanja zavrÅ¡ena: Izmenjena je jedna reÄ',manyChanges:'Provera spelovanja zavrÅ¡ena: %1 reÄ(i) je izmenjeno',ieSpellDownload:'Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?'},smiley:{toolbar:'Smajli',title:'Unesi smajlija',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Nabrojiva lista',bulletedlist:'Nenabrojiva lista',indent:'UveÄaj levu marginu',outdent:'Smanji levu marginu',justify:{left:'Levo ravnanje',center:'Centriran tekst',right:'Desno ravnanje',block:'Obostrano ravnanje'},blockquote:'Block Quote',clipboard:{title:'Z
alepi',cutError:'Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+X).',copyError:'Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+C).',pasteMsg:'Molimo Vas da zalepite unutar donje povrine koristeÄi tastaturnu preÄicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Zalepi iz Worda',title:'Zalepi iz Worda',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Zalepi k
ao Äist tekst',title:'Zalepi kao Äist tekst'},templates:{button:'Obrasci',title:'Obrasci za sadržaj',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):',emptyListMsg:'(Nema definisanih obrazaca)'},showBlocks:'Show Blocks',stylesCombo:{label:'Stil',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Format',panelTitle:'Format',tag_p:'Normal',tag_pre:'Formatirano',tag_address:'Adresa',tag_h1:'Naslov 1',tag_h2:'Naslov 2',tag_h3:'Naslov 3',tag_h4:'Naslov 4',tag_h5:'Naslov 5',tag_h6:'Naslov 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advi
sory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Font',voiceLabel:'Font',panelTitle:'Font'},fontSize:{label:'VeliÄina fonta',voiceLabel:'Font Size',panelTitle:'VeliÄina fonta'},colorButton:{textColorTitle:'Boja teksta',bgColorTitle:'Boja pozadine',panelTitle:'Colors',auto:'Automatski',more:'ViÅ¡e boja...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plu
m',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictiona
ry grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['sr-latn']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Pretraži server","url":"URL","protocol":"Protokol","upload":"Pošalji","uploadSubmit":"Pošalji na server","image":"Slika","flash":"Fleš","form":"Forma","checkbox":"Polje za potvrdu","radio":"Radio-dugme","textField":"Tekstualno polje","textarea":"Zona teksta","hiddenField":"Skriveno polje","button":"Dugme","select":"Izborno polje","imageButton":"Dugme sa slikom","notSet":"<nije postavljeno>","id":"Id","name":"Naziv","langDir":"Smer jezika","langDirLtr":"S leva na desno (LTR)","langDirRtl":"S desna na levo (RTL)","langCode":"Kôd jezika","longDescr":"Pun opis URL","cssClass":"Stylesheet klase","advisoryTitle":"Advisory naslov","cssStyle":"Stil","ok":"OK","cancel":"Otkaži","close":"Close","preview":"Izgled stranice","resize":"Resize","generalTab":"General","advancedTab":"Napredni tagovi","validateNumberFailed":"This value is not a number.","confir
mNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"Meta","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","styles":"Stil","cssClasses":"Stylesheet klase","width":"Å irina","height":"Visina","align":"Ravnanje","alignLeft":"Levo","alignRight":"Desno","alignCenter":"Sredina","alignTop":"Vrh","alignMiddle":"Sredina","alignBottom":"Dole","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value
specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Podebljano","italic":"Kurziv","strike":"Precrtano","subscript":"Indeks","superscript":"Stepen","underline":"PodvuÄeno"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Blo
ck Quote"},"clipboard":{"copy":"Kopiraj","copyError":"Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog kopiranja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+C).","cut":"Iseci","cutError":"Sigurnosna podeÅ¡avanja VaÅ¡eg pretraživaÄa ne dozvoljavaju operacije automatskog isecanja teksta. Molimo Vas da koristite preÄicu sa tastature (Ctrl/Cmd+X).","paste":"Zalepi","pasteArea":"Paste Area","pasteMsg":"Molimo Vas da zalepite unutar donje povrine koristeÄi tastaturnu preÄicu (<STRONG>Ctrl/Cmd+V</STRONG>) i da pritisnete <STRONG>OK</STRONG>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Zalepi"},"colorbutton":{"auto":"Automatski","bgColorTitle":"Boja pozadine","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B00
82":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"Više boja...","panelTitle":"Colors","textColorTitle":"Boja teksta"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"Obrasci","emptyListMsg":"(Nema definisanih obrazaca)","insertOption":"Replace actual contents","op
tions":"Template Options","selectPromptMsg":"Molimo Vas da odaberete obrazac koji ce biti primenjen na stranicu (trenutni sadržaj ce biti obrisan):","title":"Obrasci za sadržaj"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"T
ools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"Nenabrojiva lista","numberedlist":"Nabrojiva lista"},"indent":{"indent":"UveÄaj levu marginu","outdent":"Smanji levu marginu"},"find":{"find":"Pretraga","findOptions":"Find Options","findWhat":"Pronadi:","matchCase":"Razlikuj mala i velika slova","matchCyclic":"Match cyclic","matchWord":"Uporedi cele reci","notFoundMsg":"Traženi tekst nije pronaÄen.","replace":"Zamena","replaceAll":"Zameni sve","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Zameni sa:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs dole","alignAbsMiddle":"Abs sredina","alignBaseline":"Bazno","alignTextTop":"Vrh tekst
a","bgcolor":"Boja pozadine","chkFull":"Allow Fullscreen","chkLoop":"Ponavljaj","chkMenu":"UkljuÄi fleÅ¡ meni","chkPlay":"Automatski start","flashvars":"Variables for Flash","hSpace":"HSpace","properties":"Osobine fleÅ¡a","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"Skaliraj","scaleAll":"Prikaži sve","scaleFit":"Popuni povrÅ¡inu","scaleNoBorder":"Bez ivice","title":"Osobine fleÅ¡a","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"Unesite URL linka","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"VeliÄina fonta","voiceLabel":"Font Size","panelTitle":"VeliÄina fonta"},"label":"Font","panelTitle":"Font","voiceLabel":"Font"},"forms":{"button":{"titl
e":"Osobine dugmeta","text":"Tekst (vrednost)","type":"Tip","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"Osobine polja za potvrdu","radioTitle":"Osobine radio-dugmeta","value":"Vrednost","selected":"OznaÄeno"},"form":{"title":"Osobine forme","menu":"Osobine forme","action":"Akcija","method":"Metoda","encoding":"Encoding"},"hidden":{"title":"Osobine skrivenog polja","name":"Naziv","value":"Vrednost"},"select":{"title":"Osobine izbornog polja","selectInfo":"Info","opAvail":"Dostupne opcije","value":"Vrednost","size":"VeliÄina","lines":"linija","chkMulti":"Dozvoli viÅ¡estruku selekciju","opText":"Tekst","opValue":"Vrednost","btnAdd":"Dodaj","btnModify":"Izmeni","btnUp":"Gore","btnDown":"Dole","btnSetValue":"Podesi kao oznaÄenu vrednost","btnDelete":"ObriÅ¡i"},"textarea":{"title":"Osobine zone teksta","cols":"Broj kolona","rows":"Broj redova"},"textfield":{"title":"Osobine tekstualnog polja","name":"Naziv","value":"Vrednost","c
harWidth":"Širina (karaktera)","maxChars":"Maksimalno karaktera","type":"Tip","typeText":"Tekst","typePass":"Lozinka","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Format","panelTitle":"Format","tag_address":"Adresa","tag_div":"Normal (DIV)","tag_h1":"Naslov 1","tag_h2":"Naslov 2","tag_h3":"Naslov 3","tag_h4":"Naslov 4","tag_h5":"Naslov 5","tag_h6":"Naslov 6","tag_p":"Normal","tag_pre":"Formatirano"},"horizontalrule":{"toolbar":"Unesi horizontalnu liniju"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"Unesite URL slike","alt":"Alternativni tekst","border":"Okvir","btnUpload":"Pošalji na server","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"
Info slike","linkTab":"Link","lockRatio":"ZakljuÄaj odnos","menu":"Osobine slika","resetSize":"Resetuj veliÄinu","title":"Osobine slika","titleButton":"Osobine dugmeta sa slikom","upload":"PoÅ¡alji","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"Unesi smajlija","toolbar":"Smajli"},"justify":{"block":"Obostrano ravnanje","center":"Centriran tekst","left":"Levo ravnanje","right":"Desno ravnanje"},"link":{"acccessKey":"Pristupni taster","advanced":"Napredni tagovi","advisoryContentType":"Advisory vrsta sadržaja","advisoryTitle":"Advisory naslov","anchor":{"toolbar":"Unesi/izmeni sidro","menu":"Osobine sidra","title":"Osobine sidra","name":"Ime sidra","errorName":"Unesite ime sidra","remove":"Remove Anchor"},"anchorId":"Po Id-ju elementa","anchorName":"Po nazivu sidra
","charset":"Linked Resource Charset","cssClasses":"Stylesheet klase","emailAddress":"E-Mail adresa","emailBody":"Sadržaj poruke","emailSubject":"Naslov","id":"Id","info":"Link Info","langCode":"Smer jezika","langDir":"Smer jezika","langDirLTR":"S leva na desno (LTR)","langDirRTL":"S desna na levo (RTL)","menu":"Izmeni link","name":"Naziv","noAnchors":"(Nema dostupnih sidra)","noEmail":"Otkucajte adresu elektronske pote","noUrl":"Unesite URL linka","other":"<оÑÑало>","popupDependent":"Zavisno (Netscape)","popupFeatures":"MoguÄnosti popup prozora","popupFullScreen":"Prikaz preko celog ekrana (IE)","popupLeft":"Od leve ivice ekrana (px)","popupLocationBar":"Lokacija","popupMenuBar":"Kontekstni meni","popupResizable":"Resizable","popupScrollBars":"Scroll bar","popupStatusBar":"Statusna linija","popupToolbar":"Toolbar","popupTop":"Od vrha ekrana (px)","rel":"Relationship","selectAnchor":"Odaberi sidro","styles":"Stil","tabIndex":"Tab indeks","target":"Meta","targetFrame"
:"<okvir>","targetFrameName":"Naziv odredišnog frejma","targetPopup":"<popup prozor>","targetPopupName":"Naziv popup prozora","title":"Link","toAnchor":"Sidro na ovoj stranici","toEmail":"E-Mail","toUrl":"URL","toolbar":"Unesi/izmeni link","type":"Vrsta linka","unlink":"Ukloni link","upload":"Pošalji"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List
start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Nova stranica"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Zalepi kao Äist tekst","title":"Zalepi kao Äist tekst"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Zalepi iz Worda","toolbar":"Zalepi iz Worda"},"preview":{"preview":"Izgled stranice"},"print":{"toolbar":"Å tampa"},"removeformat":{"toolbar":"Ukloni formatiranje"},"save":{"toolbar":"SaÄuvaj"},"selectall":{"toolbar":"OznaÄi sve"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Kôd"},"specialchar":{"options":"Special Character Options","title":"Odaberite specijalni karakter","toolbar":"Unesi specijalni k
arakter"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"I
gnore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Stil","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"VeliÄina okvira","caption":"Naslov tabele","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ObriÅ¡i Äelije","merge":"Spoj celije","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Bord
er Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Razmak Äelija","cellSpace":"Äelijski prostor","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ObriÅ¡i kolone"},"columns":"Kolona","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number gre
ater than 0.","invalidWidth":"Table width must be a number.","menu":"Osobine tabele","row":{"menu":"Row","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ObriÅ¡i redove"},"rows":"Redova","summary":"Summary","title":"Osobine tabele","toolbar":"Tabela","widthPc":"procenata","widthPx":"piksela","widthUnit":"width unit"},"undo":{"redo":"Ponovi akciju","undo":"Poni�ti akciju"},"wsc":{"btnIgnore":"IgnoriÅ¡i","btnIgnoreAll":"IgnoriÅ¡i sve","btnReplace":"Zameni","btnReplaceAll":"Zameni sve","btnUndo":"Vrati akciju","changeTo":"Izmeni","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"Provera spelovanja nije instalirana. Da li želite da je skinete sa Interneta?","manyChanges":"Provera spelovanja zavrÅ¡ena: %1 reÄ(i) je izmenjeno","noChanges":"Provera spelovanja zavrÅ¡ena: Nije izmenjena nijedna rec","noMispell":"Provera spelovanja zavrÅ¡ena: greÅ¡ke nisu pronadene","noSuggestions":"- Bez sugestija -","notAvailable":"So
rry, but service is unavailable now.","notInDic":"Nije u reÄniku","oneChange":"Provera spelovanja zavrÅ¡ena: Izmenjena je jedna reÄ","progress":"Provera spelovanja u toku...","title":"Spell Check","toolbar":"Proveri spelovanje"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/sr.js b/share/static/RichText/lang/sr.js
index a180fa5..30cd8d2 100644
--- a/share/static/RichText/lang/sr.js
+++ b/share/static/RichText/lang/sr.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.sr={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Kôд',newPage:'Ðова ÑÑÑаниÑа',save:'СаÑÑваÑ',preview:'Ðзглед ÑÑÑаниÑе',cut:'ÐÑеÑи',copy:'ÐопиÑаÑ',paste:'Ðалепи',print:'ШÑампа',underline:'ÐодвÑÑено',bold:'ÐодебÑано',italic:'ÐÑÑзив',selectAll:'ÐзнаÑи Ñве',removeFormat:'Уклони ÑоÑмаÑиÑаÑе',strike:'ÐÑеÑÑÑано',subscript:'ÐндекÑ',superscript:'СÑепен',horizontalrule:'УнеÑи Ñ
оÑизонÑÐ°Ð»Ð½Ñ Ð»Ð¸Ð½Ð¸ÑÑ',pagebreak:'Insert Page Break for Printing',unlink:'Уклони линк',undo:'ÐониÑÑи акÑиÑÑ',redo:'Ðонови акÑиÑÑ',common:{browseServer:'ÐÑеÑÑажи ÑеÑвеÑ',url:'УРÐ',protocol:'ÐÑоÑокол',upload:'ÐоÑаÑи',uploadSubmit:'ÐоÑаÑи на ÑеÑвеÑ',image:'Слика',flash:'Ð¤Ð»ÐµÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ',fo
rm:'ФоÑма',checkbox:'ÐоÑе за поÑвÑдÑ',radio:'Радио-дÑгме',textField:'ТекÑÑÑално поÑе',textarea:'Ðона ÑекÑÑа',hiddenField:'СкÑивено поÑе',button:'ÐÑгме',select:'ÐзбоÑно поÑе',imageButton:'ÐÑгме Ñа Ñликом',notSet:'<ниÑе поÑÑавÑено>',id:'Ðд',name:'Ðазив',langDir:'Ð¡Ð¼ÐµÑ Ñезика',langDirLtr:'С лева на деÑно (LTR)',langDirRtl:'С деÑна на лево (RTL)',langCode:'Kôд Ñезика',longDescr:'ÐÑн Ð¾Ð¿Ð¸Ñ Ð£Ð Ð',cssClass:'Stylesheet клаÑе',advisoryTitle:'Advisory наÑлов',cssStyle:'СÑил',ok:'OK',cancel:'OÑкажи',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'ÐапÑедни Ñагови',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are
you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'УнеÑи ÑпеÑиÑални каÑакÑеÑ',title:'ÐдабеÑиÑе ÑпеÑиÑални каÑакÑеÑ',options:'Special Character Options'},link:{toolbar:'УнеÑи/измени линк',other:'<other>',menu:'ÐÑомени линк',title:'Ðинк',info:'Ðинк инÑо',target:'MeÑa',upload:'ÐоÑаÑи',advanced:'ÐапÑедни Ñагови',type:'ÐÑÑÑа линка',toUrl:'URL',toAnchor:'СидÑо на Ð¾Ð²Ð¾Ñ ÑÑÑаниÑи',toEmail:'EлекÑÑонÑка поÑÑа',targetFrame:'<оквиÑ>',tar
getPopup:'<иÑкаÑÑÑи пÑозоÑ>',targetFrameName:'Ðазив одÑедиÑног ÑÑеÑма',targetPopupName:'Ðазив иÑкаÑÑÑег пÑозоÑа',popupFeatures:'ÐогÑÑноÑÑи иÑкаÑÑÑег пÑозоÑа',popupResizable:'Resizable',popupStatusBar:'СÑаÑÑÑна линиÑа',popupLocationBar:'ÐокаÑиÑа',popupToolbar:'Toolbar',popupMenuBar:'ÐонÑекÑÑни мени',popupFullScreen:'ÐÑиказ пÑеко Ñелог екÑана (ÐE)',popupScrollBars:'СкÑол баÑ',popupDependent:'ÐавиÑно (Netscape)',popupWidth:'ШиÑина',popupLeft:'Ðд леве ивиÑе екÑана (пикÑела)',popupHeight:'ÐиÑина',popupTop:'Ðд вÑÑ
а екÑана (пикÑела)',id:'Id',langDir:'Ð¡Ð¼ÐµÑ Ñезика',langDirLTR:'С лева на деÑно (LTR)',langDirRTL:'С деÑна на лево (RTL)',acccessKey:'ÐÑиÑÑÑпни ÑаÑÑеÑ',name:'Ðазив',langCode:'Ð¡Ð¼ÐµÑ Ñезика',tabIndex:'ТаÐ
± индекÑ',advisoryTitle:'Advisory наÑлов',advisoryContentType:'Advisory вÑÑÑа ÑадÑжаÑа',cssClasses:'Stylesheet клаÑе',charset:'Linked Resource Charset',styles:'СÑил',selectAnchor:'ÐдабеÑи ÑидÑо',anchorName:'Ðо Ð½Ð°Ð·Ð¸Ð²Ñ ÑидÑа',anchorId:'Ðo Ðд-jÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñа',emailAddress:'ÐдÑеÑа елекÑÑонÑке поÑÑе',emailSubject:'ÐаÑлов',emailBody:'СадÑÐ¶Ð°Ñ Ð¿Ð¾ÑÑке',noAnchors:'(Ðема доÑÑÑпниÑ
ÑидÑа)',noUrl:'УнеÑиÑе УРРлинка',noEmail:'ÐÑкÑÑаÑÑе адÑеÑÑ ÐµÐ»ÐµÐºÑÑонÑке поÑÑе'},anchor:{toolbar:'УнеÑи/измени ÑидÑо',menu:'ÐÑобине ÑидÑа',title:'ÐÑобине ÑидÑа',name:'Ðме ÑидÑа',errorName:'Ðолимо ÐÐ°Ñ Ð´Ð° ÑнеÑеÑе име ÑидÑа'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start nu
mber must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'ÐÑеÑÑага',replace:'Ðамена',findWhat:'ÐÑонаÑи:',replaceWith:'Ðамени Ñа:',notFoundMsg:'ТÑажени ÑекÑÑ Ð½Ð¸Ñе пÑонаÑен.',matchCase:'РазликÑÑ Ð²ÐµÐ»Ð¸ÐºÐ° и мала Ñлова',matchWord:'УпоÑеди Ñеле ÑеÑи',matchCyclic:'Match cyclic',replaceAll:'Ðамени Ñве',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Табел
а',title:'ÐÑобине Ñабеле',menu:'ÐÑобине Ñабеле',deleteTable:'Delete Table',rows:'Редова',columns:'Kолона',border:'ÐелиÑина оквиÑа',align:'РавнаÑе',alignLeft:'Ðево',alignCenter:'СÑедина',alignRight:'ÐеÑно',width:'ШиÑина',widthPx:'пикÑела',widthPc:'пÑоÑенаÑа',widthUnit:'width unit',height:'ÐиÑина',cellSpace:'ÐелиÑÑки пÑоÑÑоÑ',cellPad:'Размак ÑелиÑа',caption:'ÐаÑлов Ñабеле',summary:'Summary',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell paddi
ng must be a number.',cell:{menu:'Cell',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'ÐбÑиÑи ÑелиÑе',merge:'Ð¡Ð¿Ð¾Ñ ÑелиÑе',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Row',insertBefore:'Insert Row Before',insertAfter:'Insert Row After',deleteRow:'ÐбÑиÑи Ñедове'},c
olumn:{menu:'Column',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'ÐбÑиÑи колоне'}},button:{title:'ÐÑобине дÑгмеÑа',text:'ТекÑÑ (вÑедноÑÑ)',type:'Tип',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'ÐÑобине поÑа за поÑвÑдÑ',radioTitle:'ÐÑобине Ñадио-дÑгмеÑа',value:'ÐÑедноÑÑ',selected:'ÐзнаÑено'},form:{title:'ÐÑобине ÑоÑме',menu:'ÐÑобине ÑоÑме',action:'AкÑиÑа',method:'MеÑода',encoding:'Encoding'},select:{title:'ÐÑобине избоÑног поÑа',selectInfo:'ÐнÑо',opAvail:'ÐоÑÑÑпне опÑиÑе',value:'ÐÑедноÑÑ',size:'ÐелиÑина',lines:'линиÑа',chkMulti:'Ðозволи виÑеÑÑÑÑÐºÑ ÑелекÑиÑÑ',opText:'ТекÑÑ',opValue:'ÐÑедноÑÑ',btnAdd:'ÐодаÑ',btnModify:'Ðзмени',btnUp:'ÐоÑе',btnDown:'Ðоле',btn
SetValue:'ÐодеÑи као ознаÑÐµÐ½Ñ Ð²ÑедноÑÑ',btnDelete:'ÐбÑиÑи'},textarea:{title:'ÐÑобине зоне ÑекÑÑа',cols:'ÐÑÐ¾Ñ ÐºÐ¾Ð»Ð¾Ð½Ð°',rows:'ÐÑÐ¾Ñ Ñедова'},textfield:{title:'ÐÑобине ÑекÑÑÑалног поÑа',name:'Ðазив',value:'ÐÑедноÑÑ',charWidth:'ШиÑина (каÑакÑеÑа)',maxChars:'ÐакÑимално каÑакÑеÑа',type:'Тип',typeText:'ТекÑÑ',typePass:'Ðозинка'},hidden:{title:'ÐÑобине ÑкÑивеног поÑа',name:'Ðазив',value:'ÐÑедноÑÑ'},image:{title:'ÐÑобине Ñлика',titleButton:'ÐÑобине дÑгмеÑа Ñа Ñликом',menu:'ÐÑобине Ñлика',infoTab:'ÐнÑо Ñлике',btnUpload:'ÐоÑаÑи на ÑеÑвеÑ',upload:'ÐоÑаÑи',alt:'ÐлÑеÑнаÑивни ÑекÑÑ',width:'ШиÑина',height:'ÐиÑина',lockRatio:'ÐакÑÑÑÐ°Ñ Ð¾Ð´Ð½Ð¾Ñ',unlockRatio:'Unlock Ratio',resetSize:'РеÑеÑÑÑ Ð²Ð
µÐ»Ð¸ÑинÑ',border:'ÐквиÑ',hSpace:'HSpace',vSpace:'VSpace',align:'РавнаÑе',alignLeft:'Ðево',alignRight:'ÐеÑно',alertUrl:'УнеÑиÑе УРРÑлике',linkTab:'Ðинк',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ÐÑобине ФлеÑа',propertiesTab:'Properties',title:'ÐÑобине ÑлеÑа',chkPlay:'ÐÑÑомаÑÑки ÑÑаÑÑ',chkLoop:'ÐонавÑаÑ',chkMenu:'УкÑÑÑи ÑÐ»ÐµÑ Ð¼ÐµÐ½Ð¸',chkFull:'Allow Fullscreen',scale:'СкалиÑаÑ',scaleAll:'ÐÑикажи Ñве',scaleNoBorder:'Ðез ивиÑе',scaleFit:'ÐоÐ
¿Ñни повÑÑинÑ',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'РавнаÑе',alignLeft:'Ðево',alignAbsBottom:'Abs доле',alignAbsMiddle:'Abs ÑÑедина',alignBaseline:'Ðазно',alignBottom:'Ðоле',alignMiddle:'СÑедина',alignRight:'ÐеÑно',alignTextTop:'ÐÑÑ
ÑекÑÑа',alignTop:'ÐÑÑ
',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'ÐоÑа позадине',width:'ШиÑина',height:'ÐиÑина',hSpace:'HSpace',vSpace:'VSpace',validateSrc:'УнеÑиÑе УРРлинка',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace m
ust be a number.'},spellCheck:{toolbar:'ÐÑовеÑи ÑпеловаÑе',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'ÐиÑе Ñ ÑеÑникÑ',changeTo:'Ðзмени',btnIgnore:'ÐгноÑиÑи',btnIgnoreAll:'ÐгноÑиÑи Ñве',btnReplace:'Ðамени',btnReplaceAll:'Ðамени Ñве',btnUndo:'ÐÑаÑи акÑиÑÑ',noSuggestions:'- Ðез ÑÑгеÑÑиÑа -',progress:'ÐÑовеÑа ÑпеловаÑа Ñ ÑокÑ...',noMispell:'ÐÑовеÑа ÑпеловаÑа завÑÑена: гÑеÑке ниÑÑ Ð¿ÑонаÑене',noChanges:'ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐиÑе измеÑена ниÑедна ÑеÑ',oneChange:'ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐзмеÑена Ñе Ñедна ÑеÑ',manyChanges:'ÐÑовеÑа ÑпеловаÑа завÑÑена: %1 ÑеÑ(и) Ñе измеÑено',ieSpellDownload:'ÐÑов
еÑа ÑпеловаÑа ниÑе инÑÑалиÑана. Ðа ли желиÑе да Ñе ÑкинеÑе Ñа ÐнÑеÑнеÑа?'},smiley:{toolbar:'СмаÑли',title:'УнеÑи ÑмаÑлиÑа',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ÐабÑоÑÐ¸Ð²Ñ Ð»Ð¸ÑÑÑ',bulletedlist:'ÐенабÑоÑива лиÑÑа',indent:'УвеÑÐ°Ñ Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ',outdent:'СмаÑи Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ',justify:{left:'Ðево ÑавнаÑе',center:'ЦенÑÑиÑан ÑекÑÑ',right:'ÐеÑно ÑавнаÑе',block:'ÐбоÑÑÑано ÑавнаÑе'},blockquote:'Block Quote',clipboard:{title:'Ðалепи',cutError:'СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког иÑеÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+X).',copyError:'Сиг
ÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког копиÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+C).',pasteMsg:'Ðолимо ÐÐ°Ñ Ð´Ð° залепиÑе ÑнÑÑÐ°Ñ Ð´Ð¾Ñе повÑÑине коÑиÑÑеÑи ÑаÑÑаÑÑÑÐ½Ñ Ð¿ÑеÑиÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>) и да пÑиÑиÑнеÑе <STRONG>OK</STRONG>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Ðалепи из Worda',title:'Ðалепи из Worda',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'
Ðалепи као ÑиÑÑ ÑекÑÑ',title:'Ðалепи као ÑиÑÑ ÑекÑÑ'},templates:{button:'ÐбÑаÑÑи',title:'ÐбÑаÑÑи за ÑадÑжаÑ',options:'Template Options',insertOption:'Replace actual contents',selectPromptMsg:'Ðолимо ÐÐ°Ñ Ð´Ð° одабеÑеÑе обÑÐ°Ð·Ð°Ñ ÐºÐ¾Ñи Ñе биÑи пÑимеÑен на ÑÑÑаниÑÑ (ÑÑенÑÑни ÑадÑÐ¶Ð°Ñ Ñе биÑи обÑиÑан):',emptyListMsg:'(Ðема деÑиниÑаниÑ
обÑазаÑа)'},showBlocks:'Show Blocks',stylesCombo:{label:'СÑил',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'ФоÑмаÑ',panelTitle:'ФоÑмаÑ',tag_p:'Normal',tag_pre:'Formatirano',tag_address:'Adresa',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container'
,cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ФонÑ',voiceLabel:'Font',panelTitle:'ФонÑ'},fontSize:{label:'ÐелиÑина ÑонÑа',voiceLabel:'Font Size',panelTitle:'ÐелиÑина ÑонÑа'},colorButton:{textColorTitle:'ÐоÑа ÑекÑÑа',bgColorTitle:'ÐоÑа позадине',panelTitle:'Colors',auto:'ÐÑÑомаÑÑки',more:'ÐиÑе боÑа...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',
808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictiona
riesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',sele
cted:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['sr']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"ÐÑеÑÑажи ÑеÑвеÑ","url":"УРÐ","protocol":"ÐÑоÑокол","upload":"ÐоÑаÑи","uploadSubmit":"ÐоÑаÑи на ÑеÑвеÑ","image":"Слика","flash":"Ð¤Ð»ÐµÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ","form":"ФоÑма","checkbox":"ÐоÑе за поÑвÑдÑ","radio":"Радио-дÑгме","textField":"ТекÑÑÑално поÑе","textarea":"Ðона ÑекÑÑа","hiddenField":"СкÑивено поÑе","button":"ÐÑгме","select":"ÐзбоÑно поÑе","imageButton":"ÐÑгме Ñа Ñликом","notSet":"<ниÑе поÑÑавÑено>","id":"Ðд","name":"Ðазив","langDir":"Ð¡Ð¼ÐµÑ Ñезика","langDirLtr":"С лева на деÑно (LTR)","langDirRtl":"С деÑна на лево (RTL)","langCode":"Kôд Ñезика","longDescr":"ÐÑн Ð¾Ð¿Ð¸Ñ Ð£Ð Ð","cssClass":"Stylesheet клаÑе","advisoryTitle":"Advisory наÑлÐ
¾Ð²","cssStyle":"СÑил","ok":"OK","cancel":"OÑкажи","close":"Close","preview":"Ðзглед ÑÑÑаниÑе","resize":"Resize","generalTab":"General","advancedTab":"ÐапÑедни Ñагови","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you sure to close the dialog?","options":"Options","target":"MeÑa","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"С лева на деÑно (LTR)","langDirRTL":"С деÑна на лево (RTL)","styles":"СÑил","cssClasses":"Stylesheet клаÑе","width":"ШиÑина","height":"ÐиÑина","align":"РавнаÑе","alignLeft":"Ðево","alignRight":"ÐеÑно","alignCenter":"СÑедина","alignTop":"ÐÑÑ
","alignMiddle":"СÑе
дина","alignBottom":"Ðоле","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please vi
sit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"ÐодебÑано","italic":"ÐÑÑзив","strike":"ÐÑеÑÑÑано","subscript":"ÐндекÑ","superscript":"СÑепен","underline":"ÐодвÑÑено"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"ÐопиÑаÑ","copyError":"СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког копиÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑиÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+C).","cut":"ÐÑеÑи","cutError":"СигÑÑноÑна подеÑаваÑа ÐаÑег пÑеÑÑаживаÑа не дозвоÑаваÑÑ Ð¾Ð¿ÐµÑаÑиÑе аÑÑомаÑÑког иÑеÑаÑа ÑекÑÑа. Ðолимо ÐÐ°Ñ Ð´Ð° коÑиÑÑиÑе пÑеÑи
ÑÑ Ñа ÑаÑÑаÑÑÑе (Ctrl/Cmd+X).","paste":"Ðалепи","pasteArea":"Paste Area","pasteMsg":"Ðолимо ÐÐ°Ñ Ð´Ð° залепиÑе ÑнÑÑÐ°Ñ Ð´Ð¾Ñе повÑÑине коÑиÑÑеÑи ÑаÑÑаÑÑÑÐ½Ñ Ð¿ÑеÑиÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>) и да пÑиÑиÑнеÑе <STRONG>OK</STRONG>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Ðалепи"},"colorbutton":{"auto":"ÐÑÑомаÑÑки","bgColorTitle":"ÐоÑа позадине","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000
":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"ÐиÑе боÑа...","panelTitle":"Colors","textColorTitle":"ÐоÑа ÑекÑÑа"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"ÐбÑаÑÑи","emptyListMsg":"(Ðема деÑиниÑаниÑ
обÑазаÑа)","insertOption":"Replace actual contents","options":"Template Options","selectPromptMsg":"Ðолимо ÐÐ°Ñ Ð´Ð° одабеÑеÑе обÑÐ°Ð·Ð°Ñ ÐºÐ¾Ñи Ñе биÑи пÑимеÑен на ÑÑÑаниÑÑ (ÑÑенÑÑни ÑадÑÐ¶Ð°Ñ Ñе б
иÑи обÑиÑан):","title":"ÐбÑаÑÑи за ÑадÑжаÑ"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list
":{"bulletedlist":"ÐенабÑоÑива лиÑÑа","numberedlist":"ÐабÑоÑÐ¸Ð²Ñ Ð»Ð¸ÑÑÑ"},"indent":{"indent":"УвеÑÐ°Ñ Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ","outdent":"СмаÑи Ð»ÐµÐ²Ñ Ð¼Ð°ÑгинÑ"},"find":{"find":"ÐÑеÑÑага","findOptions":"Find Options","findWhat":"ÐÑонаÑи:","matchCase":"РазликÑÑ Ð²ÐµÐ»Ð¸ÐºÐ° и мала Ñлова","matchCyclic":"Match cyclic","matchWord":"УпоÑеди Ñеле ÑеÑи","notFoundMsg":"ТÑажени ÑекÑÑ Ð½Ð¸Ñе пÑонаÑен.","replace":"Ðамена","replaceAll":"Ðамени Ñве","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"Ðамени Ñа:","title":"Find and Replace"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"Abs доле","alignAbsMiddle":"Abs ÑÑ
едина","alignBaseline":"Ðазно","alignTextTop":"ÐÑÑ
ÑекÑÑа","bgcolor":"ÐоÑа позадине","chkFull":"Allow Fullscreen","chkLoop":"ÐонавÑаÑ","chkMenu":"УкÑÑÑи ÑÐ»ÐµÑ Ð¼ÐµÐ½Ð¸","chkPlay":"ÐÑÑомаÑÑки ÑÑаÑÑ","flashvars":"Variables for Flash","hSpace":"HSpace","properties":"ÐÑобине ФлеÑа","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"СкалиÑаÑ","scaleAll":"ÐÑикажи Ñве","scaleFit":"ÐопÑни повÑÑинÑ","scaleNoBorder":"Ðез ивиÑе","title":"ÐÑобине ÑлеÑа","vSpace":"VSpace","validateHSpace":"HSpace must be a number.","validateSrc":"УнеÑиÑе УРРлинка","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow
":"Window"},"font":{"fontSize":{"label":"ÐелиÑина ÑонÑа","voiceLabel":"Font Size","panelTitle":"ÐелиÑина ÑонÑа"},"label":"ФонÑ","panelTitle":"ФонÑ","voiceLabel":"ФонÑ"},"forms":{"button":{"title":"ÐÑобине дÑгмеÑа","text":"ТекÑÑ (вÑедноÑÑ)","type":"Tип","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"ÐÑобине поÑа за поÑвÑдÑ","radioTitle":"ÐÑобине Ñадио-дÑгмеÑа","value":"ÐÑедноÑÑ","selected":"ÐзнаÑено"},"form":{"title":"ÐÑобине ÑоÑме","menu":"ÐÑобине ÑоÑме","action":"AкÑиÑа","method":"MеÑода","encoding":"Encoding"},"hidden":{"title":"ÐÑобине ÑкÑивеног поÑа","name":"Ðазив","value":"ÐÑедноÑÑ"},"select":{"title":"ÐÑобине избоÑног поÑа","selectInfo":"ÐнÑо","opAvail":"ÐоÑÑÑпне опÑиÑе","value":"ÐÑедноÑÑ","si
ze":"ÐелиÑина","lines":"линиÑа","chkMulti":"Ðозволи виÑеÑÑÑÑÐºÑ ÑелекÑиÑÑ","opText":"ТекÑÑ","opValue":"ÐÑедноÑÑ","btnAdd":"ÐодаÑ","btnModify":"Ðзмени","btnUp":"ÐоÑе","btnDown":"Ðоле","btnSetValue":"ÐодеÑи као ознаÑÐµÐ½Ñ Ð²ÑедноÑÑ","btnDelete":"ÐбÑиÑи"},"textarea":{"title":"ÐÑобине зоне ÑекÑÑа","cols":"ÐÑÐ¾Ñ ÐºÐ¾Ð»Ð¾Ð½Ð°","rows":"ÐÑÐ¾Ñ Ñедова"},"textfield":{"title":"ÐÑобине ÑекÑÑÑалног поÑа","name":"Ðазив","value":"ÐÑедноÑÑ","charWidth":"ШиÑина (каÑакÑеÑа)","maxChars":"ÐакÑимално каÑакÑеÑа","type":"Тип","typeText":"ТекÑÑ","typePass":"Ðозинка","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ФоÑмаÑ","panelTitle":"ФоÑмаÑ","tag_address":"Adresa","tag_div":"Normal (DIV)","tag_h1":"Heading 1","tag_h2":"
Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatirano"},"horizontalrule":{"toolbar":"УнеÑи Ñ
оÑизонÑÐ°Ð»Ð½Ñ Ð»Ð¸Ð½Ð¸ÑÑ"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"УнеÑиÑе УРРÑлике","alt":"ÐлÑеÑнаÑивни ÑекÑÑ","border":"ÐквиÑ","btnUpload":"ÐоÑаÑи на ÑеÑвеÑ","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"HSpace","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"ÐнÑо Ñлике","linkTab":"Ðинк","lockRatio":"ÐакÑÑÑÐ°Ñ Ð¾Ð´Ð½Ð¾Ñ","menu":"ÐÑобине Ñлика","resetSize":"РеÑеÑÑÑ Ð²ÐµÐ»Ð¸ÑинÑ","title":"ÐÑобине Ñлика","titleButton":"ÐÑобине дÑгмеÑа Ñа ÑлиÐ
ºÐ¾Ð¼","upload":"ÐоÑаÑи","urlMissing":"Image source URL is missing.","vSpace":"VSpace","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"УнеÑи ÑмаÑлиÑа","toolbar":"СмаÑли"},"justify":{"block":"ÐбоÑÑÑано ÑавнаÑе","center":"ЦенÑÑиÑан ÑекÑÑ","left":"Ðево ÑавнаÑе","right":"ÐеÑно ÑавнаÑе"},"link":{"acccessKey":"ÐÑиÑÑÑпни ÑаÑÑеÑ","advanced":"ÐапÑедни Ñагови","advisoryContentType":"Advisory вÑÑÑа ÑадÑжаÑа","advisoryTitle":"Advisory наÑлов","anchor":{"toolbar":"УнеÑи/измени ÑидÑо","menu":"ÐÑобине ÑидÑа","title":"ÐÑобине ÑидÑа","name":"Ðме ÑидÑа","errorName":"Ðолимо ÐÐ°Ñ Ð´Ð° ÑнеÑеÑе име ÑидÑа","remove":"Remove Anchor"},"anchorId":"Ðo Ðд-jÑ Ð
µÐ»ÐµÐ¼ÐµÐ½Ñа","anchorName":"Ðо Ð½Ð°Ð·Ð¸Ð²Ñ ÑидÑа","charset":"Linked Resource Charset","cssClasses":"Stylesheet клаÑе","emailAddress":"ÐдÑеÑа елекÑÑонÑке поÑÑе","emailBody":"СадÑÐ¶Ð°Ñ Ð¿Ð¾ÑÑке","emailSubject":"ÐаÑлов","id":"Ðд","info":"Ðинк инÑо","langCode":"Ð¡Ð¼ÐµÑ Ñезика","langDir":"Ð¡Ð¼ÐµÑ Ñезика","langDirLTR":"С лева на деÑно (LTR)","langDirRTL":"С деÑна на лево (RTL)","menu":"ÐÑомени линк","name":"Ðазив","noAnchors":"(Ðема доÑÑÑпниÑ
ÑидÑа)","noEmail":"ÐÑкÑÑаÑÑе адÑеÑÑ ÐµÐ»ÐµÐºÑÑонÑке поÑÑе","noUrl":"УнеÑиÑе УРРлинка","other":"<other>","popupDependent":"ÐавиÑно (Netscape)","popupFeatures":"ÐогÑÑноÑÑи иÑкаÑÑÑег пÑозоÑа","popupFullScreen":"ÐÑиказ пÑеко Ñелог екÑана (ÐE)","popupLeft":"Ðд леве ивиÑе екÑана (пикÑела)","popu
pLocationBar":"ÐокаÑиÑа","popupMenuBar":"ÐонÑекÑÑни мени","popupResizable":"Resizable","popupScrollBars":"СкÑол баÑ","popupStatusBar":"СÑаÑÑÑна линиÑа","popupToolbar":"Toolbar","popupTop":"Ðд вÑÑ
а екÑана (пикÑела)","rel":"Relationship","selectAnchor":"ÐдабеÑи ÑидÑо","styles":"СÑил","tabIndex":"Таб индекÑ","target":"MeÑa","targetFrame":"<оквиÑ>","targetFrameName":"Ðазив одÑедиÑног ÑÑеÑма","targetPopup":"<иÑкаÑÑÑи пÑозоÑ>","targetPopupName":"Ðазив иÑкаÑÑÑег пÑозоÑа","title":"Ðинк","toAnchor":"СидÑо на Ð¾Ð²Ð¾Ñ ÑÑÑаниÑи","toEmail":"EлекÑÑонÑка поÑÑа","toUrl":"УРÐ","toolbar":"УнеÑи/измени линк","type":"ÐÑÑÑа линка","unlink":"Уклони линк","upload":"ÐоÑаÑи"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Ci
rcle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"Ðова ÑÑÑаниÑа"},"pagebreak":{"alt":"Page Break","toolbar":"Insert Page Break for Printing"},"pastetext":{"button":"Ðалепи као ÑиÑÑ ÑекÑÑ","title":"Ðалепи као ÑиÑÑ ÑекÑÑ"},"pastefromword":{"conf
irmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"Ðалепи из Worda","toolbar":"Ðалепи из Worda"},"preview":{"preview":"Ðзглед ÑÑÑаниÑе"},"print":{"toolbar":"ШÑампа"},"removeformat":{"toolbar":"Уклони ÑоÑмаÑиÑаÑе"},"save":{"toolbar":"СаÑÑваÑ"},"selectall":{"toolbar":"ÐзнаÑи Ñве"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"Kôд"},"specialchar":{"options":"Special Character Options","title":"ÐдабеÑиÑе ÑпеÑиÑални каÑакÑеÑ","toolbar":"УнеÑи ÑпеÑиÑални каÑакÑеÑ"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is store
d in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylesc
ombo":{"label":"СÑил","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"ÐелиÑина оквиÑа","caption":"ÐаÑлов Ñабеле","cell":{"menu":"Cell","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ÐбÑиÑи ÑелиÑе","merge":"Ð¡Ð¿Ð¾Ñ ÑелиÑе","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a
whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"Размак ÑелиÑа","cellSpace":"ÐелиÑÑки пÑоÑÑоÑ","column":{"menu":"Column","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ÐбÑиÑи колоне"},"columns":"Kолона","deleteTable":"Delete Table","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"ÐÑобине Ñабеле","row":{"menu":"Row","insertBefore":"Insert Row Before","
insertAfter":"Insert Row After","deleteRow":"ÐбÑиÑи Ñедове"},"rows":"Редова","summary":"Summary","title":"ÐÑобине Ñабеле","toolbar":"Табела","widthPc":"пÑоÑенаÑа","widthPx":"пикÑела","widthUnit":"width unit"},"undo":{"redo":"Ðонови акÑиÑÑ","undo":"ÐониÑÑи акÑиÑÑ"},"wsc":{"btnIgnore":"ÐгноÑиÑи","btnIgnoreAll":"ÐгноÑиÑи Ñве","btnReplace":"Ðамени","btnReplaceAll":"Ðамени Ñве","btnUndo":"ÐÑаÑи акÑиÑÑ","changeTo":"Ðзмени","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"ÐÑовеÑа ÑпеловаÑа ниÑе инÑÑалиÑана. Ðа ли желиÑе да Ñе ÑкинеÑе Ñа ÐнÑеÑнеÑа?","manyChanges":"ÐÑовеÑа ÑпеловаÑа завÑÑена: %1 ÑеÑ(и) Ñе измеÑено","noChanges":"ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐиÑе измеÑена ниÑедна ÑеÑ"
,"noMispell":"ÐÑовеÑа ÑпеловаÑа завÑÑена: гÑеÑке ниÑÑ Ð¿ÑонаÑене","noSuggestions":"- Ðез ÑÑгеÑÑиÑа -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"ÐиÑе Ñ ÑеÑникÑ","oneChange":"ÐÑовеÑа ÑпеловаÑа завÑÑена: ÐзмеÑена Ñе Ñедна ÑеÑ","progress":"ÐÑовеÑа ÑпеловаÑа Ñ ÑокÑ...","title":"Spell Check","toolbar":"ÐÑовеÑи ÑпеловаÑе"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/sv.js b/share/static/RichText/lang/sv.js
index 4a7ba14..06bfdda 100644
--- a/share/static/RichText/lang/sv.js
+++ b/share/static/RichText/lang/sv.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.sv={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'Källa',newPage:'Ny sida',save:'Spara',preview:'Förhandsgranska',cut:'Klipp ut',copy:'Kopiera',paste:'Klistra in',print:'Skriv ut',underline:'Understruken',bold:'Fet',italic:'Kursiv',selectAll:'Markera allt',removeFormat:'Radera formatering',strike:'Genomstruken',subscript:'Nedsänkta tecken',superscript:'Upphöjda tecken',horizontalrule:'Infoga horisontal linje',pagebreak:'Infoga sidbrytning',unlink:'Radera länk',undo:'Ã
ngra',redo:'Gör om',common:{browseServer:'Bläddra på server',url:'URL',protocol:'Protokoll',upload:'Ladda upp',uploadSubmit:'Skicka till server',image:'Bild',flash:'Flash',form:'Formulär',checkbox:'Kryssruta',radio:'Alternativknapp',textField:'Textfält',textarea:'Textruta',hiddenField:'Dolt fält',button:'Knapp',select:'Flervalslista',imageButton:'Bildknapp',notSet:'<ej angivet>',id:'Id',name:'Namn',langDir:'Språk
riktning',langDirLtr:'Vänster till Höger (VTH)',langDirRtl:'Höger till Vänster (HTV)',langCode:'Språkkod',longDescr:'URL-beskrivning',cssClass:'Stylesheet class',advisoryTitle:'Titel',cssStyle:'Style',ok:'OK',cancel:'Avbryt',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'Avancerad',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'Klistra in ut
ökat tecken',title:'Välj utökat tecken',options:'Special Character Options'},link:{toolbar:'Infoga/Redigera länk',other:'<annan>',menu:'Redigera länk',title:'Länk',info:'Länkinformation',target:'Mål',upload:'Ladda upp',advanced:'Avancerad',type:'Länktyp',toUrl:'URL',toAnchor:'Ankare i sidan',toEmail:'E-post',targetFrame:'<ram>',targetPopup:'<popup-fönster>',targetFrameName:'Målets ramnamn',targetPopupName:'Popup-fönstrets namn',popupFeatures:'Popup-fönstrets egenskaper',popupResizable:'Resizable',popupStatusBar:'Statusfält',popupLocationBar:'Adressfält',popupToolbar:'Verktygsfält',popupMenuBar:'Menyfält',popupFullScreen:'Helskärm (endast IE)',popupScrollBars:'Scrolllista',popupDependent:'Beroende (endest Netscape)',popupWidth:'Bredd',popupLeft:'Position från vänster',popupHeight:'Höjd',popupTop:'Position från sidans topp',id:'Id',langDir:'Språkriktning',langDirLTR:'Vänster till Höger (VTH)',langDirRTL:'Höger till Vänster (HTV)',acccessKey:'Behörig
hetsnyckel',name:'Namn',langCode:'SprÃ¥kriktning',tabIndex:'Tabindex',advisoryTitle:'Titel',advisoryContentType:'InnehÃ¥llstyp',cssClasses:'Stylesheet class',charset:'Teckenuppställning',styles:'Style',selectAnchor:'Välj ett ankare',anchorName:'efter ankarnamn',anchorId:'efter objektid',emailAddress:'E-postadress',emailSubject:'Ãmne',emailBody:'InnehÃ¥ll',noAnchors:'(Inga ankare kunde hittas)',noUrl:'Var god ange länkens URL',noEmail:'Var god ange E-postadress'},anchor:{toolbar:'Infoga/Redigera ankarlänk',menu:'Egenskaper för ankarlänk',title:'Egenskaper för ankarlänk',name:'Ankarnamn',errorName:'Var god ange ett ankarnamn'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'L
ower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Sök och ersätt',find:'Sök',replace:'Ersätt',findWhat:'Sök efter:',replaceWith:'Ersätt med:',notFoundMsg:'Angiven text kunde ej hittas.',matchCase:'Skiftläge',matchWord:'Inkludera hela ord',matchCyclic:'Match cyclic',replaceAll:'Ersätt alla',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'Tabell',title:'Tabellegenskaper',menu:'Tabellegenskaper',deleteTable:'Radera tabell',rows:'Rader',columns:'Kolumner',border:'Kantstorlek',align:'Justering',alignLeft:'Vänster',alignCenter:'Centrerad',alignRight:'Höger',width:'Bredd',widthPx:'pixlar',widthPc:'procent',widthUnit:'width unit',height:'Höjd',cellSpace:'Cel
lavstånd',cellPad:'Cellutfyllnad',caption:'Rubrik',summary:'Sammanfattning',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalidCellPadding:'Cell padding must be a number.',cell:{menu:'Cell',insertBefore:'Lägg till Cell Före',insertAfter:'Lägg till Cell Efter',deleteCell:'Radera celler',merge:'Sammanfoga celler',mergeRight:'Sammanfoga Höger',mergeDown:'Sammanfoga Ner',splitHorizontal:'Dela Cell Horisontellt',splitVertical:'Dela Cell Vertikalt',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical
Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'Rad',insertBefore:'Lägg till Rad Före',insertAfter:'Lägg till Rad Efter',deleteRow:'Radera rad'},column:{menu:'Kolumn',insertBefore:'Lägg till Kolumn Före',insertAfter:'Lägg till Kolumn Efter',deleteColumn:'Radera kolumn'}},button:{title:'Egenskaper för knapp',text:'Text (Värde)',type:'Typ',typeBtn:'Knapp',typeSbm:'Skicka',typeRst:'Ã
terställ'},checkboxAndRadio:{checkboxTitle:'Egenskaper för kryssruta',radioTitle:'Egenskaper för alternativknapp',value:'Värde',selected:'Vald'},form:{title:'Egenskaper för formulär',menu:'Egenskaper för formulär',ac
tion:'Funktion',method:'Metod',encoding:'Encoding'},select:{title:'Egenskaper för flervalslista',selectInfo:'Information',opAvail:'Befintliga val',value:'Värde',size:'Storlek',lines:'Linjer',chkMulti:'Tillåt flerval',opText:'Text',opValue:'Värde',btnAdd:'Lägg till',btnModify:'Redigera',btnUp:'Upp',btnDown:'Ner',btnSetValue:'Markera som valt värde',btnDelete:'Radera'},textarea:{title:'Egenskaper för textruta',cols:'Kolumner',rows:'Rader'},textfield:{title:'Egenskaper för textfält',name:'Namn',value:'Värde',charWidth:'Teckenbredd',maxChars:'Max antal tecken',type:'Typ',typeText:'Text',typePass:'Lösenord'},hidden:{title:'Egenskaper för dolt fält',name:'Namn',value:'Värde'},image:{title:'Bildegenskaper',titleButton:'Egenskaper för bildknapp',menu:'Bildegenskaper',infoTab:'Bildinformation',btnUpload:'Skicka till server',upload:'Ladda upp',alt:'Alternativ text',width:'Bredd',height:'Höjd',lockRatio:'Lås höjd/bredd förhållanden',unlockRatio:'Unlock Ratio',resetS
ize:'Ã
terställ storlek',border:'Kant',hSpace:'Horis. marginal',vSpace:'Vert. marginal',align:'Justering',alignLeft:'Vänster',alignRight:'Höger',alertUrl:'Var god och ange bildens URL',linkTab:'Länk',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flashegenskaper',propertiesTab:'Properties',title:'Flashegenskaper',chkPlay:'Automatisk uppspelning',chkLoop:'Upprepa/Loopa',chkMenu:'Aktivera Flashmeny',chkFull:'Allow Fullscreen',scale:'Skala',scaleAll:'Visa allt',scaleNoBorder:'Ingen ram',scaleFit:'Exakt passning',access:'Script Access',accessAlways:'Always',accessSameDom
ain:'Same domain',accessNever:'Never',align:'Justering',alignLeft:'Vänster',alignAbsBottom:'Absolut nederkant',alignAbsMiddle:'Absolut centrering',alignBaseline:'Baslinje',alignBottom:'Nederkant',alignMiddle:'Mitten',alignRight:'Höger',alignTextTop:'Text överkant',alignTop:'Ãverkant',quality:'Quality',qualityBest:'Best',qualityHigh:'High',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'Bakgrundsfärg',width:'Bredd',height:'Höjd',hSpace:'Horis. marginal',vSpace:'Vert. marginal',validateSrc:'Var god ange länkens URL',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'Stavningskontroll',title:'Spell Check',notAvailable:'Sorry, but service is
unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'Saknas i ordlistan',changeTo:'Ãndra till',btnIgnore:'Ignorera',btnIgnoreAll:'Ignorera alla',btnReplace:'Ersätt',btnReplaceAll:'Ersätt alla',btnUndo:'Ã
ngra',noSuggestions:'- Förslag saknas -',progress:'Stavningskontroll pÃ¥gÃ¥r...',noMispell:'Stavningskontroll slutförd: Inga stavfel pÃ¥träffades.',noChanges:'Stavningskontroll slutförd: Inga ord rättades.',oneChange:'Stavningskontroll slutförd: Ett ord rättades.',manyChanges:'Stavningskontroll slutförd: %1 ord rättades.',ieSpellDownload:'Stavningskontrollen är ej installerad. Vill du göra det nu?'},smiley:{toolbar:'Smiley',title:'Infoga smiley',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'Numrerad lista',bulletedlist:'Punktlista',indent:'Ãka indrag',outdent:'Minska indrag',justify:{left:'Vänsterjustera',center:'Centrera',right:'Högerjustera',block:'Justera till margi
naler'},blockquote:'Block Quote',clipboard:{title:'Klistra in',cutError:'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl/Cmd+X) istället.',copyError:'Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl/Cmd+C) istället',pasteMsg:'Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl/Cmd+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.',securityMsg:'På grund av din webläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'Klistra in från Word',title:'Klistra in från Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Klistra in som vanlig text',title:'Klistra in som vanlig text'},
templates:{button:'Sidmallar',title:'Sidmallar',options:'Template Options',insertOption:'Ersätt aktuellt innehåll',selectPromptMsg:'Var god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):',emptyListMsg:'(Ingen mall är vald)'},showBlocks:'Show Blocks',stylesCombo:{label:'Anpassad stil',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'Teckenformat',panelTitle:'Teckenformat',tag_p:'Normal',tag_pre:'Formaterad',tag_address:'Adress',tag_h1:'Rubrik 1',tag_h2:'Rubrik 2',tag_h3:'Rubrik 3',tag_h4:'Rubrik 4',tag_h5:'Rubrik 5',tag_h6:'Rubrik 6',tag_div:'Normal (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRL
abel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'Typsnitt',voiceLabel:'Font',panelTitle:'Typsnitt'},fontSize:{label:'Storlek',voiceLabel:'Font Size',panelTitle:'Storlek'},colorButton:{textColorTitle:'Textfärg',bgColorTitle:'Bakgrundsfärg',panelTitle:'Colors',auto:'Automatisk',more:'Fler färger...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique W
hite',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then
the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['sv']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Tryck ALT 0 för hjälp","browseServer":"Bläddra på server","url":"URL","protocol":"Protokoll","upload":"Ladda upp","uploadSubmit":"Skicka till server","image":"Bild","flash":"Flash","form":"Formulär","checkbox":"Kryssruta","radio":"Alternativknapp","textField":"Textfält","textarea":"Textruta","hiddenField":"Dolt fält","button":"Knapp","select":"Flervalslista","imageButton":"Bildknapp","notSet":"<ej angivet>","id":"Id","name":"Namn","langDir":"Språkriktning","langDirLtr":"Vänster till Höger (VTH)","langDirRtl":"Höger till Vänster (HTV)","langCode":"Språkkod","longDescr":"URL-beskrivning","cssClass":"Stilmall","advisoryTitle":"Titel","cssStyle":"Stilmall","ok":"OK","cancel":"Avbryt","close":"Stäng","preview":"Förhandsgranska","resize":"Dra för att ändra storlek","generalTab":"Allmänt","advancedTab":"Avancerad","validateNumberFailed":"Värdet är inte ett nummer.","confirmNewPa
ge":"Alla ändringar i innehÃ¥llet kommer att förloras. Ãr du säker pÃ¥ att du vill ladda en ny sida?","confirmCancel":"NÃ¥gra av de alternativ har ändrats. Ãr du säker pÃ¥ att stänga dialogrutan?","options":"Alternativ","target":"MÃ¥l","targetNew":"Nytt fönster (_blank)","targetTop":"Ãversta fönstret (_top)","targetSelf":"Samma fönster (_self)","targetParent":"FöregÃ¥ende fönster (_parent)","langDirLTR":"Vänster till höger (LTR)","langDirRTL":"Höger till vänster (RTL)","styles":"Stil","cssClasses":"Stilmallar","width":"Bredd","height":"Höjd","align":"Justering","alignLeft":"Vänster","alignRight":"Höger","alignCenter":"Centrerad","alignTop":"Ãverkant","alignMiddle":"Mitten","alignBottom":"Nederkant","invalidValue":"Felaktigt värde.","invalidHeight":"Höjd mÃ¥ste vara ett nummer.","invalidWidth":"Bredd mÃ¥ste vara ett nummer.","invalidCssLength":"Värdet för fältet \"%1\" mÃ¥ste vara ett positivt nummer med eller utan CSS-mätenheter (px, %, in, cm, mm
, em, ex, pt, eller pc).","invalidHtmlLength":"rdet för fältet \"%1\" mÃ¥ste vara ett positivt nummer med eller utan godkända HTML-mätenheter (px eller %).","invalidInlineStyle":"Det angivna värdet för style mÃ¥ste innehÃ¥lla en eller flera tupler separerade med semikolon i följande format: \"name : value\"","cssLengthTooltip":"Ange ett nummer i pixlar eller ett nummer men godkänd CSS-mätenhet (px, %, in, cm, mm, em, ex, pt, eller pc).","unavailable":"%1<span class=\"cke_accessibility\">, Ej tillgänglig</span>"},"about":{"copy":"Copyright © $1. Alla rättigheter reserverade.","dlgTitle":"Om CKEditor","help":"Se $1 för hjälp.","moreInfo":"För information av licenciering besök vÃ¥r hemsida:","title":"Om CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Fet","italic":"Kursiv","strike":"Genomstruken","subscript":"Nedsänkta tecken","superscript":"Upphöjda tecken","underline":"Understruken"},"bidi":{"ltr":"Text riktning frÃ¥n vänster till
höger","rtl":"Text riktning från höger till vänster"},"blockquote":{"toolbar":"Blockcitat"},"clipboard":{"copy":"Kopiera","copyError":"Säkerhetsinställningar i Er webläsare tillåter inte åtgården Kopiera. Använd (Ctrl/Cmd+C) istället","cut":"Klipp ut","cutError":"Säkerhetsinställningar i Er webläsare tillåter inte åtgården Klipp ut. Använd (Ctrl/Cmd+X) istället.","paste":"Klistra in","pasteArea":"Paste Area","pasteMsg":"Var god och klistra in Er text i rutan nedan genom att använda (<STRONG>Ctrl/Cmd+V</STRONG>) klicka sen på <STRONG>OK</STRONG>.","securityMsg":"På grund av din webbläsares säkerhetsinställningar kan verktyget inte få åtkomst till urklippsdatan. Var god och använd detta fönster istället.","title":"Klistra in"},"colorbutton":{"auto":"Automatisk","bgColorTitle":"Bakgrundsfärg","colors":{"000":"Svart","800000":"Rödbrun","8B4513":"Mörkbrun","2F4F4F":"Skiffergrå","008080":"Kricka","000080":"Marinblå","4B0082":"Indigo","696969":"M
örkgrå","B22222":"Tegelsten","A52A2A":"Brun","DAA520":"Mörk guld","006400":"Mörkgrön","40E0D0":"Turkos","0000CD":"Medium blå","800080":"Lila","808080":"Grå","F00":"Röd","FF8C00":"Mörkorange","FFD700":"Guld","008000":"Grön","0FF":"Turkos","00F":"Blå","EE82EE":"Violett","A9A9A9":"Matt grå","FFA07A":"Laxrosa","FFA500":"Orange","FFFF00":"Gul","00FF00":"Lime","AFEEEE":"Ljusturkos","ADD8E6":"Ljusblå","DDA0DD":"Plommon","D3D3D3":"Ljusgrå","FFF0F5":"Ljus lavender","FAEBD7":"Antikvit","FFFFE0":"Ljusgul","F0FFF0":"Honung","F0FFFF":"Azurblå","F0F8FF":"Aliceblå","E6E6FA":"Lavender","FFF":"Vit"},"more":"Fler färger...","panelTitle":"Färger","textColorTitle":"Textfärg"},"colordialog":{"clear":"Rensa","highlight":"Markera","options":"Färgalternativ","selected":"Vald färg","title":"Välj färg"},"templates":{"button":"Sidmallar","emptyListMsg":"(Ingen mall är vald)","insertOption":"Ersätt aktuellt innehåll","options":"Inställningar för mall","selectPromptMsg":"Var
god välj en mall att använda med editorn<br>(allt nuvarande innehåll raderas):","title":"Sidmallar"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Rådgivande titel","cssClassInputLabel":"Stilmallar","edit":"Redigera Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Vänster till Höger (LTR)","langDirLabel":"Språkriktning","langDirRTLLabel":"Höger till vänster (RTL)","languageCodeInputLabel":" Språkkod","remove":"Ta bort Div","styleSelectLabel":"Stil","title":"Skapa Div container","toolbar":"Skapa Div container"},"toolbar":{"toolbarCollapse":"Dölj verktygsfält","toolbarExpand":"Visa verktygsfält","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Redigera verktygsfält"},"elementspath":{"eleLab
el":"Elementets sökväg","eleTitle":"%1 element"},"list":{"bulletedlist":"Punktlista","numberedlist":"Numrerad lista"},"indent":{"indent":"Ãka indrag","outdent":"Minska indrag"},"find":{"find":"Sök","findOptions":"Find Options","findWhat":"Sök efter:","matchCase":"Skiftläge","matchCyclic":"Matcha cykliska","matchWord":"Inkludera hela ord","notFoundMsg":"Angiven text kunde ej hittas.","replace":"Ersätt","replaceAll":"Ersätt alla","replaceSuccessMsg":"%1 förekomst(er) ersatta.","replaceWith":"Ersätt med:","title":"Sök och ersätt"},"fakeobjects":{"anchor":"Ankare","flash":"Flashanimation","hiddenfield":"Gömt fält","iframe":"iFrame","unknown":"Okänt objekt"},"flash":{"access":"Script-tillgÃ¥ng","accessAlways":"Alltid","accessNever":"Aldrig","accessSameDomain":"Samma domän","alignAbsBottom":"Absolut nederkant","alignAbsMiddle":"Absolut centrering","alignBaseline":"Baslinje","alignTextTop":"Text överkant","bgcolor":"Bakgrundsfärg","chkFull":"TillÃ¥t helskärm","ch
kLoop":"Upprepa/Loopa","chkMenu":"Aktivera Flashmeny","chkPlay":"Automatisk uppspelning","flashvars":"Variabler för Flash","hSpace":"Horis. marginal","properties":"Flashegenskaper","propertiesTab":"Egenskaper","quality":"Kvalitet","qualityAutoHigh":"Auto Hög","qualityAutoLow":"Auto Låg","qualityBest":"Bäst","qualityHigh":"Hög","qualityLow":"Låg","qualityMedium":"Medium","scale":"Skala","scaleAll":"Visa allt","scaleFit":"Exakt passning","scaleNoBorder":"Ingen ram","title":"Flashegenskaper","vSpace":"Vert. marginal","validateHSpace":"HSpace måste vara ett nummer.","validateSrc":"Var god ange länkens URL","validateVSpace":"VSpace måste vara ett nummer.","windowMode":"Fönsterläge","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Fönster"},"font":{"fontSize":{"label":"Storlek","voiceLabel":"Teckenstorlek","panelTitle":"Storlek"},"label":"Typsnitt","panelTitle":"Typsnitt","voiceLabel":"Typsnitt"},"forms":{"button":{"title":"Egenskap
er för knapp","text":"Text (värde)","type":"Typ","typeBtn":"Knapp","typeSbm":"Skicka","typeRst":"Ã
terställ"},"checkboxAndRadio":{"checkboxTitle":"Egenskaper för kryssruta","radioTitle":"Egenskaper för alternativknapp","value":"Värde","selected":"Vald"},"form":{"title":"Egenskaper för formulär","menu":"Egenskaper för formulär","action":"Funktion","method":"Metod","encoding":"Kodning"},"hidden":{"title":"Egenskaper för dolt fält","name":"Namn","value":"Värde"},"select":{"title":"Egenskaper för flervalslista","selectInfo":"Information","opAvail":"Befintliga val","value":"Värde","size":"Storlek","lines":"Linjer","chkMulti":"Tillåt flerval","opText":"Text","opValue":"Värde","btnAdd":"Lägg till","btnModify":"Redigera","btnUp":"Upp","btnDown":"Ner","btnSetValue":"Markera som valt värde","btnDelete":"Radera"},"textarea":{"title":"Egenskaper för textruta","cols":"Kolumner","rows":"Rader"},"textfield":{"title":"Egenskaper för textfält","name":"Namn","value":"Vä
rde","charWidth":"Teckenbredd","maxChars":"Max antal tecken","type":"Typ","typeText":"Text","typePass":"Lösenord","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Teckenformat","panelTitle":"Teckenformat","tag_address":"Adress","tag_div":"Normal (DIV)","tag_h1":"Rubrik 1","tag_h2":"Rubrik 2","tag_h3":"Rubrik 3","tag_h4":"Rubrik 4","tag_h5":"Rubrik 5","tag_h6":"Rubrik 6","tag_p":"Normal","tag_pre":"Formaterad"},"horizontalrule":{"toolbar":"Infoga horisontal linje"},"iframe":{"border":"Visa ramkant","noUrl":"Skriv in URL för iFrame","scrolling":"Aktivera rullningslister","title":"iFrame Egenskaper","toolbar":"iFrame"},"image":{"alertUrl":"Var god och ange bildens URL","alt":"Alternativ text","border":"Kant","btnUpload":"Skicka till server","button2Img":"Vill du omvandla den valda bildknappen på en enkel bild?","hSpace":"Horis. marginal","img2Button":"Vill du omvandla den valda bildknappen på en enkel bild?","infoTa
b":"Bildinformation","linkTab":"Länk","lockRatio":"LÃ¥s höjd/bredd förhÃ¥llanden","menu":"Bildegenskaper","resetSize":"Ã
terställ storlek","title":"Bildegenskaper","titleButton":"Egenskaper för bildknapp","upload":"Ladda upp","urlMissing":"Bildkällans URL saknas.","vSpace":"Vert. marginal","validateBorder":"Kantlinje måste vara ett heltal.","validateHSpace":"HSpace måste vara ett heltal.","validateVSpace":"VSpace måste vara ett heltal."},"smiley":{"options":"Smileyinställningar","title":"Infoga smiley","toolbar":"Smiley"},"justify":{"block":"Justera till marginaler","center":"Centrera","left":"Vänsterjustera","right":"Högerjustera"},"link":{"acccessKey":"Behörighetsnyckel","advanced":"Avancerad","advisoryContentType":"Innehållstyp","advisoryTitle":"Titel","anchor":{"toolbar":"Infoga/Redigera ankarlänk","menu":"Egenskaper för ankarlänk","title":"Egenskaper för ankarlänk","name":"Ankarnamn","errorName":"Var god ange ett ankarnamn","remove":"Radera ankare"},"
anchorId":"efter objektid","anchorName":"efter ankarnamn","charset":"Teckenuppställning","cssClasses":"Stylesheet class","emailAddress":"E-postadress","emailBody":"InnehÃ¥ll","emailSubject":"Ãmne","id":"Id","info":"Länkinformation","langCode":"SprÃ¥kriktning","langDir":"SprÃ¥kriktning","langDirLTR":"Vänster till höger (VTH)","langDirRTL":"Höger till vänster (HTV)","menu":"Redigera länk","name":"Namn","noAnchors":"(Inga ankare kunde hittas)","noEmail":"Var god ange E-postadress","noUrl":"Var god ange länkens URL","other":"<annan>","popupDependent":"Beroende (endast Netscape)","popupFeatures":"Popup-fönstrets egenskaper","popupFullScreen":"Helskärm (endast IE)","popupLeft":"Position frÃ¥n vänster","popupLocationBar":"Adressfält","popupMenuBar":"Menyfält","popupResizable":"Resizable","popupScrollBars":"Scrolllista","popupStatusBar":"Statusfält","popupToolbar":"Verktygsfält","popupTop":"Position frÃ¥n sidans topp","rel":"FörhÃ¥llande","selectAnchor":"Välj ett a
nkare","styles":"Stilmall","tabIndex":"Tabindex","target":"Mål","targetFrame":"<ram>","targetFrameName":"Målets ramnamn","targetPopup":"<popup-fönster>","targetPopupName":"Popup-fönstrets namn","title":"Länk","toAnchor":"Ankare i sidan","toEmail":"E-post","toUrl":"URL","toolbar":"Infoga/Redigera länk","type":"Länktyp","unlink":"Radera länk","upload":"Ladda upp"},"liststyle":{"armenian":"Armenisk numrering","bulletedTitle":"Egenskaper för punktlista","circle":"Cirkel","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal nolla (01, 02, 03, etc.)","disc":"Disk","georgian":"Georgisk numrering (an, ban, gan, etc.)","lowerAlpha":"Alpha gemener (a, b, c, d, e, etc.)","lowerGreek":"Grekiska gemener (alpha, beta, gamma, etc.)","lowerRoman":"Romerska gemener (i, ii, iii, iv, v, etc.)","none":"Ingen","notset":"<ej angiven>","numberedTitle":"Egenskaper för punktlista","square":"Fyrkant","start":"Start","type":"Typ","upperAlpha":"Alpha versaler (A, B, C, D, E, etc.
)","upperRoman":"Romerska versaler (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximera","minimize":"Minimera"},"newpage":{"toolbar":"Ny sida"},"pagebreak":{"alt":"Sidbrytning","toolbar":"Infoga sidbrytning"},"pastetext":{"button":"Klistra in som vanlig text","title":"Klistra in som vanlig text"},"pastefromword":{"confirmCleanup":"Texten du vill klistra in verkar vara kopierad från Word. Vill du rensa innan du klistrar?","error":"Det var inte möjligt att städa upp den inklistrade data på grund av ett internt fel","title":"Klistra in från Word","toolbar":"Klistra in från Word"},"preview":{"preview":"Förhandsgranska"},"print":{"toolbar":"Skriv ut"},"removeformat":{"toolbar":"Radera formatering"},"save":{"toolbar":"Spara"},"selectall":{"toolbar":"Markera allt"},"showblocks":{"toolbar":"Visa block"},"sourcearea":{"toolbar":"Källa"},"specialchar":{"optio
ns":"Special Character Options","title":"Välj utökat tecken","toolbar":"Klistra in utökat tecken"},"scayt":{"about":"Om SCAYT","aboutTab":"Om","addWord":"Lägg till ord","allCaps":"Ignorera alla ord med enbart versaler","dic_create":"Skapa","dic_delete":"Ta bort","dic_field_name":"Ordlistans namn","dic_info":"Inledningsvis lagras ordlistan i en cookie. När ordlista växer till en punkt där det inte kan lagras i en cookie, lagras den pÃ¥ vÃ¥r server. För att lagra din personliga ordlista pÃ¥ vÃ¥r server du ska ange ett namn för din ordbok. Om du redan har en lagrad ordbok, skriv namnet och klicka pÃ¥ knappen Ã
terställ.","dic_rename":"Byt namn","dic_restore":"Ã
terställ","dictionariesTab":"Ordlistor","disable":"Inaktivera SCAYT","emptyDic":"Ordlistans namn får ej vara tomt.","enable":"Aktivera SCAYT","ignore":"Ignorera","ignoreAll":"Ignorera alla","ignoreDomainNames":"Ignorera domännamn","langs":"Språk","languagesTab":"Språk","mixedCase":"Ignorera ord med blandat
shiftläge","mixedWithDigits":"Ignorera ord med nummer","moreSuggestions":"Fler förslag","opera_title":"Stöds ej av Opera","options":"Inställningar","optionsTab":"Inställningar","title":"Stavningskontroll medan du skriver","toggle":"Växla SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Anpassad stil","panelTitle":"Formatmallar","panelTitle1":"Blockstil","panelTitle2":"Inbäddad stil","panelTitle3":"Objektets stil"},"table":{"border":"Kantstorlek","caption":"Rubrik","cell":{"menu":"Cell","insertBefore":"Lägg till cell före","insertAfter":"Lägg till cell efter","deleteCell":"Radera celler","merge":"Sammanfoga celler","mergeRight":"Sammanfoga höger","mergeDown":"Sammanfoga ner","splitHorizontal":"Dela cell horisontellt","splitVertical":"Dela cell vertikalt","title":"Egenskaper för cell","cellType":"Celltyp","rowSpan":"Rad spann","colSpan":"Kolumnen spann","wordWrap":"Radbrytning","hAlign":"Horisontell justering","vAlign":"Vertikal justering","alignBas
eline":"Baslinje","bgColor":"Bakgrundsfärg","borderColor":"Ramfärg","data":"Data","header":"Rubrik","yes":"Ja","no":"Nej","invalidWidth":"Cellens bredd måste vara ett nummer.","invalidHeight":"Cellens höjd måste vara ett nummer.","invalidRowSpan":"Radutvidgning måste vara ett heltal.","invalidColSpan":"Kolumn måste vara ett heltal.","chooseColor":"Välj"},"cellPad":"Cellutfyllnad","cellSpace":"Cellavstånd","column":{"menu":"Kolumn","insertBefore":"Lägg till kolumn före","insertAfter":"Lägg till kolumn efter","deleteColumn":"Radera kolumn"},"columns":"Kolumner","deleteTable":"Radera tabell","headers":"Rubriker","headersBoth":"Båda","headersColumn":"Första kolumnen","headersNone":"Ingen","headersRow":"Första raden","invalidBorder":"Ram måste vara ett nummer.","invalidCellPadding":"Luft i cell måste vara ett nummer.","invalidCellSpacing":"Luft i cell måste vara ett nummer.","invalidCols":"Antal kolumner måste vara ett nummer större än 0.","invalidHeight":"Ta
bellens höjd mÃ¥ste vara ett nummer.","invalidRows":"Antal rader mÃ¥ste vara större än 0.","invalidWidth":"Tabell mÃ¥ste vara ett nummer.","menu":"Tabellegenskaper","row":{"menu":"Rad","insertBefore":"Lägg till Rad Före","insertAfter":"Lägg till rad efter","deleteRow":"Radera rad"},"rows":"Rader","summary":"Sammanfattning","title":"Tabellegenskaper","toolbar":"Tabell","widthPc":"procent","widthPx":"pixlar","widthUnit":"enhet bredd"},"undo":{"redo":"Gör om","undo":"Ã
ngra"},"wsc":{"btnIgnore":"Ignorera","btnIgnoreAll":"Ignorera alla","btnReplace":"Ersätt","btnReplaceAll":"Ersätt alla","btnUndo":"Ã
ngra","changeTo":"Ãndra till","errorLoading":"Tjänsten är ej tillgänglig: %s.","ieSpellDownload":"Stavningskontrollen är ej installerad. Vill du göra det nu?","manyChanges":"Stavningskontroll slutförd: %1 ord rättades.","noChanges":"Stavningskontroll slutförd: Inga ord rättades.","noMispell":"Stavningskontroll slutförd: Inga stavfel pÃ¥träffades.","noSuggestions
":"- Förslag saknas -","notAvailable":"Tyvärr är tjänsten ej tillgänglig nu","notInDic":"Saknas i ordlistan","oneChange":"Stavningskontroll slutförd: Ett ord rättades.","progress":"Stavningskontroll pågår...","title":"Kontrollera stavning","toolbar":"Stavningskontroll"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/th.js b/share/static/RichText/lang/th.js
index ce2df47..2c6738f 100644
--- a/share/static/RichText/lang/th.js
+++ b/share/static/RichText/lang/th.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.th={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'à¸à¸¹à¸£à¸«à¸±à¸ª HTML',newPage:'สรà¹à¸²à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¹à¸«à¸¡à¹',save:'à¸à¸±à¸à¸à¸¶à¸',preview:'à¸à¸¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸±à¸§à¸à¸¢à¹à¸²à¸',cut:'à¸à¸±à¸',copy:'สำà¹à¸à¸²',paste:'วาà¸',print:'สัà¹à¸à¸à¸´à¸¡à¸à¹',underline:'à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¹à¸à¹',bold:'à¸à¸±à¸§à¸«à¸à¸²',italic:'à¸à¸±à¸§à¹à¸à¸µà¸¢à¸',selectAll:'à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸',removeFormat:'ลà¹à¸²à¸à¸£à¸¹à¸à¹à¸à¸',strike:'à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¸à¸±à¸',subscript:'à¸à¸±à¸§à¸«à¹à¸à¸¢',superscript:'à¸à¸±à¸§à¸¢à¸',horizontalrule:'à¹à¸à¸£à¸à¹à¸ªà¹à¸à¸à¸±à¹à¸à¸à¸£à¸£à¸à¸±à¸',pagebreak:'à¹à¸à¸£à¸à¸à¸±à¸§à¹à¸à¹à¸à¸«à¸à¹à¸² Page Break',unlink:'ลภลิà¸à¸à¹',undo:'ยà¸à¹à¸¥à¸´à¸à¸à¸³à¸ªà¸±à¹à¸',redo:'à¸à¸³à¸à¹à¸³à¸à¸³à¸ªà
¸±à¹à¸',common:{browseServer:'à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸¥à¹à¸à¸±à¸à¹à¸«à¸¥à¸',url:'à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸ URL',protocol:'à¹à¸à¸£à¹à¸à¸à¸à¸¥',upload:'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',uploadSubmit:'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)',image:'รูà¸à¸ าà¸',flash:'à¹à¸à¸¥à¹ Flash',form:'à¹à¸à¸à¸à¸à¸£à¹à¸¡',checkbox:'à¹à¸à¹à¸à¸à¹à¸à¸',radio:'à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸',textField:'à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹',textarea:'à¹à¸à¹à¸à¸à¹à¹à¸à¹à¸£à¸µà¸¢',hiddenField:'ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',button:'à¸à¸¸à¹à¸¡',select:'à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',imageButton:'à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸',notSet:'<à¹à¸¡à¹à¸£à¸°à¸à¸¸>',id:'à¹à¸à¸à¸µ',name:'à¸à¸·à¹à¸',langDir:'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',langDirLtr:'à¸
าà¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',langDirRtl:'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',langCode:'รหัสภาษา',longDescr:'à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¸à¸£à¸°à¸à¸à¸ URL',cssClass:'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',advisoryTitle:'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',cssStyle:'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',ok:'à¸à¸à¸¥à¸',cancel:'ยà¸à¹à¸¥à¸´à¸',close:'Close',preview:'Preview',generalTab:'General',advancedTab:'à¸à¸±à¹à¸à¸ªà¸¹à¸',validateNumberFailed:'This value is not a number.',confirmNewPage:'Any unsaved changes to this content will be lost. Are you sure you want to load new page?',confirmCancel:'Some of the options have been changed. Are you sure to close the dialog?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',
langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, unavailable</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©',title:'à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©',options:'Special Character Options'},link:{toolbar:'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ ลิà¸à¸à¹',other:'<à¸à¸·à¹à¸ à¹>',menu:'à¹à¸à¹à¹à¸ ลิà¸à¸à¹',title:'ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸§à¹à¸ à¸à¸µà¹à¸¡à¸¥à¹ รูà¸à¸ าภหรืà¸à¹à¸à¸¥à¹à¸à¸·à¹à¸à¹',info:'รายละà¹à¸à¸µà¸¢à¸',target:'à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸¥à¸´à¸à¸à¹',upload:'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',advanced:'à¸à¸±à¹à¸à¸ªà¸¹à¸',type:'à¸à¸£à¸°à¹à¸ à¸à¸à¸à¸à¸¥à¸´à¸à¸à¹',toUrl:'URL',toAnchor:'à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)',toEmail:'สà¹à¸à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)',targetFrame:'<à¹
à¸à¸´à¸à¹à¸à¹à¸à¸£à¸¡>',targetPopup:'<à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)>',targetFrameName:'à¸à¸·à¹à¸à¸à¸²à¸£à¹à¹à¸à¹à¸à¹à¸à¸£à¸¡',targetPopupName:'ระà¸à¸¸à¸à¸·à¹à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)',popupFeatures:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)',popupResizable:'Resizable',popupStatusBar:'à¹à¸ªà¸à¸à¹à¸à¸à¸ªà¸à¸²à¸à¸°',popupLocationBar:'à¹à¸ªà¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸¥à¹',popupToolbar:'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸',popupMenuBar:'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¡à¸à¸¹',popupFullScreen:'à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (IE5.5++ à¹à¸à¹à¸²à¸à¸±à¹à¸)',popupScrollBars:'à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¥à¸·à¹à¸à¸',popupDependent:'à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (Netscape)',popupWidth:'à¸à¸§à¹à¸²à¸',popupLeft:'à¸à¸´à¸à¸±à¸à¸à¹à¸²à¸¢ (Left Position)',popupHeight:'สูà¸',popupTop:'à¸à¸´à¸à¸±à¸à¸à¸ (Top Positio
n)',id:'Id',langDir:'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',langDirLTR:'à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)',langDirRTL:'à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)',acccessKey:'à¹à¸à¸à¹à¸à¸ª à¸à¸µà¸¢à¹',name:'à¸à¸·à¹à¸',langCode:'à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา',tabIndex:'ลำà¸à¸±à¸à¸à¸à¸ à¹à¸à¹à¸',advisoryTitle:'à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',advisoryContentType:'à¸à¸à¸´à¸à¸à¸à¸à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³',cssClasses:'à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',charset:'ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£',styles:'ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥',selectAnchor:'ระà¸à¸¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)',anchorName:'à¸à¸·à¹à¸',anchorId:'à¹à¸à¸à¸µ',emailAddress:'à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)',emailSubject:'หัวà¹à¸£à¸·à¹à¸à¸',emailBody:
'à¸à¹à¸à¸à¸§à¸²à¸¡',noAnchors:'(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¸ ายà¹à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹)',noUrl:'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)',noEmail:'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸¡à¸¥à¹ (E-mail)'},anchor:{toolbar:'à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor',menu:'รายละà¹à¸à¸µà¸¢à¸ Anchor',title:'รายละà¹à¸à¸µà¸¢à¸ Anchor',name:'à¸à¸·à¹à¸ Anchor',errorName:'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸·à¹à¸à¸à¸à¸ Anchor'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV
, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'Find and Replace',find:'à¸à¹à¸à¸«à¸²',replace:'à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¸à¸à¸µà¹',findWhat:'à¸à¹à¸à¸«à¸²à¸à¸³à¸§à¹à¸²:',replaceWith:'à¹à¸à¸à¸à¸µà¹à¸à¹à¸§à¸¢:',notFoundMsg:'à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸µà¹à¸à¹à¸à¸«à¸².',matchCase:'à¸à¸±à¸§à¹à¸«à¸à¹-à¹à¸¥à¹à¸ à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸',matchWord:'à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸à¸à¸¸à¸à¸à¸³',matchCyclic:'Match cyclic',replaceAll:'à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹à¸à¸',replaceSuccessMsg:'%1 occurrence(s) replaced.'},table:{toolbar:'à¸à¸²à¸£à¸²à¸',title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸',menu:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸',deleteTable:'ลà¸à¸à¸²à¸£à¸²à¸'
,rows:'à¹à¸à¸§',columns:'สà¸à¸¡à¸à¹',border:'à¸à¸à¸²à¸à¹à¸ªà¹à¸à¸à¸à¸',align:'à¸à¸²à¸£à¸à¸±à¸à¸à¸³à¹à¸«à¸à¹à¸',alignLeft:'à¸à¸´à¸à¸à¹à¸²à¸¢',alignCenter:'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',alignRight:'à¸à¸´à¸à¸à¸§à¸²',width:'à¸à¸§à¹à¸²à¸',widthPx:'à¸à¸¸à¸à¸ªà¸µ',widthPc:'à¹à¸à¸à¸£à¹à¹à¸à¹à¸',widthUnit:'width unit',height:'สูà¸',cellSpace:'ระยะà¹à¸à¸§à¸à¸à¸à¸',cellPad:'ระยะà¹à¸à¸§à¸à¸±à¹à¸',caption:'หัวà¹à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸²à¸£à¸²à¸',summary:'สรุà¸à¸à¸§à¸²à¸¡',headers:'Headers',headersNone:'None',headersColumn:'First column',headersRow:'First Row',headersBoth:'Both',invalidRows:'Number of rows must be a number greater than 0.',invalidCols:'Number of columns must be a number greater than 0.',invalidBorder:'Border size must be a number.',invalidWidth:'Table width must be a number.',invalidHeight:'Table height must be a number.',invalidCellSpacing:'Cell spacing must be a number.',invalid
CellPadding:'Cell padding must be a number.',cell:{menu:'à¸à¹à¸à¸à¸à¸²à¸£à¸²à¸',insertBefore:'Insert Cell Before',insertAfter:'Insert Cell After',deleteCell:'ลà¸à¸à¹à¸à¸',merge:'à¸à¸ªà¸²à¸à¸à¹à¸à¸',mergeRight:'Merge Right',mergeDown:'Merge Down',splitHorizontal:'Split Cell Horizontally',splitVertical:'Split Cell Vertically',title:'Cell Properties',cellType:'Cell Type',rowSpan:'Rows Span',colSpan:'Columns Span',wordWrap:'Word Wrap',hAlign:'Horizontal Alignment',vAlign:'Vertical Alignment',alignTop:'Top',alignMiddle:'Middle',alignBottom:'Bottom',alignBaseline:'Baseline',bgColor:'Background Color',borderColor:'Border Color',data:'Data',header:'Header',yes:'Yes',no:'No',invalidWidth:'Cell width must be a number.',invalidHeight:'Cell height must be a number.',invalidRowSpan:'Rows span must be a whole number.',invalidColSpan:'Columns span must be a whole number.',chooseColor:'Choose'},row:{menu:'à¹à¸à¸§',insertBefore:'Insert Row Before',insertAfter:'Insert Row
After',deleteRow:'ลà¸à¹à¸à¸§'},column:{menu:'à¸à¸à¸¥à¸±à¸¡à¸à¹',insertBefore:'Insert Column Before',insertAfter:'Insert Column After',deleteColumn:'ลà¸à¸ªà¸à¸¡à¸à¹'}},button:{title:'รายละà¹à¸à¸µà¸¢à¸à¸à¸à¸ à¸à¸¸à¹à¸¡',text:'à¸à¹à¸à¸à¸§à¸²à¸¡ (à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£)',type:'à¸à¹à¸à¸à¸§à¸²à¸¡',typeBtn:'Button',typeSbm:'Submit',typeRst:'Reset'},checkboxAndRadio:{checkboxTitle:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸',radioTitle:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸',value:'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',selected:'à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸'},form:{title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡',menu:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡',action:'à¹à¸à¸à¸à¸±à¹à¸',method:'à¹à¸¡à¸à¸à¸',encoding:'Encoding'},select:{title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
',selectInfo:'à¸à¸´à¸à¹à¸',opAvail:'รายà¸à¸²à¸£à¸à¸±à¸§à¹à¸¥à¸·à¸à¸',value:'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',size:'à¸à¸à¸²à¸',lines:'à¸à¸£à¸£à¸à¸±à¸',chkMulti:'à¹à¸¥à¸·à¸à¸à¸«à¸¥à¸²à¸¢à¸à¹à¸²à¹à¸à¹',opText:'à¸à¹à¸à¸à¸§à¸²à¸¡',opValue:'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',btnAdd:'à¹à¸à¸´à¹à¸¡',btnModify:'à¹à¸à¹à¹à¸',btnUp:'à¸à¸',btnDown:'ลà¹à¸²à¸',btnSetValue:'à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸',btnDelete:'ลà¸'},textarea:{title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¹à¸à¹à¸£à¸µà¸¢',cols:'สà¸à¸¡à¸ à¹',rows:'à¹à¸à¸§'},textfield:{title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹',name:'à¸à¸·à¹à¸',value:'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£',charWidth:'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',maxChars:'à¸à¸³à¸à¸§à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸ªà¸¹à¸à¸ªà¸¸à¸',type:'à¸à¸à¸´à¸',typeText:'à¸à¹à¸à¸à¸§à¸²à¸¡',typePass:'รหัสà¸à¹à¸²à¸'},hidden:{title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à
¸à¸´à¸à¸à¸ ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹',name:'à¸à¸·à¹à¸',value:'à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£'},image:{title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸',titleButton:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸',menu:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸',infoTab:'à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸£à¸¹à¸à¸ าà¸',btnUpload:'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)',upload:'à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹',alt:'à¸à¸³à¸à¸£à¸°à¸à¸à¸à¸£à¸¹à¸à¸ าà¸',width:'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',height:'à¸à¸§à¸²à¸¡à¸ªà¸¹à¸',lockRatio:'à¸à¸³à¸«à¸à¸à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ à¸à¸§à¹à¸²à¸-สูภà¹à¸à¸à¸à¸à¸à¸µà¹',unlockRatio:'Unlock Ratio',resetSize:'à¸à¸³à¸«à¸à¸à¸£à¸¹à¸à¹à¸à¹à¸²à¸à¸à¸²à¸à¸à¸£à¸´à¸',border:'à¸à¸à¸²à¸à¸à¸à¸à¸£à¸¹à¸',hSpace:'ระยะà¹à¸à¸§à¸à¸à
¸',vSpace:'ระยะà¹à¸à¸§à¸à¸±à¹à¸',align:'à¸à¸²à¸£à¸à¸±à¸à¸§à¸²à¸',alignLeft:'à¸à¸´à¸à¸à¹à¸²à¸¢',alignRight:'à¸à¸´à¸à¸à¸§à¸²',alertUrl:'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸à¹à¸à¸¥à¹à¸£à¸¹à¸à¸ าภ(URL)',linkTab:'ลิà¹à¸à¸à¹',button2Img:'Do you want to transform the selected image button on a simple image?',img2Button:'Do you want to transform the selected image on a image button?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash',propertiesTab:'Properties',title:'à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash',chkPlay:'à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ Auto Play'
,chkLoop:'à¹à¸¥à¹à¸à¸§à¸à¸£à¸à¸ Loop',chkMenu:'à¹à¸«à¹à¹à¸à¹à¸à¸²à¸à¹à¸¡à¸à¸¹à¸à¸à¸ Flash',chkFull:'Allow Fullscreen',scale:'à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ Scale',scaleAll:'à¹à¸ªà¸à¸à¹à¸«à¹à¹à¸«à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸ Show all',scaleNoBorder:'à¹à¸¡à¹à¹à¸ªà¸à¸à¹à¸ªà¹à¸à¸à¸à¸ No Border',scaleFit:'à¹à¸ªà¸à¸à¹à¸«à¹à¸à¸à¸à¸µà¸à¸±à¸à¸à¸·à¹à¸à¸à¸µà¹ Exact Fit',access:'Script Access',accessAlways:'Always',accessSameDomain:'Same domain',accessNever:'Never',align:'à¸à¸²à¸£à¸à¸±à¸à¸§à¸²à¸',alignLeft:'à¸à¸´à¸à¸à¹à¸²à¸¢',alignAbsBottom:'à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸à¸ªà¸¸à¸',alignAbsMiddle:'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',alignBaseline:'à¸à¸´à¸à¸à¸£à¸£à¸à¸±à¸',alignBottom:'à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸',alignMiddle:'à¸à¸¶à¹à¸à¸à¸¥à¸²à¸à¹à¸à¸§à¸à¸±à¹à¸',alignRight:'à¸à¸´à¸à¸à¸§à¸²',alignTextTop:'à¹à¸à¹à¸à¸±à¸§à¸à¸±à¸à¸©à¸£',alignTop:'à¸à¸à¸ªà¸¸à¸',quality:'Quality',qualityBest:'Best',qualityHigh:'High
',qualityAutoHigh:'Auto High',qualityMedium:'Medium',qualityAutoLow:'Auto Low',qualityLow:'Low',windowModeWindow:'Window',windowModeOpaque:'Opaque',windowModeTransparent:'Transparent',windowMode:'Window mode',flashvars:'Variables for Flash',bgcolor:'สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸',width:'à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸',height:'à¸à¸§à¸²à¸¡à¸ªà¸¹à¸',hSpace:'ระยะà¹à¸à¸§à¸à¸à¸',vSpace:'ระยะà¹à¸à¸§à¸à¸±à¹à¸',validateSrc:'à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)',validateWidth:'Width must be a number.',validateHeight:'Height must be a number.',validateHSpace:'HSpace must be a number.',validateVSpace:'VSpace must be a number.'},spellCheck:{toolbar:'à¸à¸£à¸§à¸à¸à¸²à¸£à¸ªà¸°à¸à¸à¸à¸³',title:'Spell Check',notAvailable:'Sorry, but service is unavailable now.',errorLoading:'Error loading application service host: %s.',notInDic:'à¹à¸¡à¹à¸à¸à¹à¸à¸à¸´à¸à¸à¸±à¸à¸à¸²à¸£à¸µ',changeTo:'à¹à¸à¹à¹
à¸à¹à¸à¹à¸',btnIgnore:'ยà¸à¹à¸§à¹à¸',btnIgnoreAll:'ยà¸à¹à¸§à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸',btnReplace:'à¹à¸à¸à¸à¸µà¹',btnReplaceAll:'à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸',btnUndo:'ยà¸à¹à¸¥à¸´à¸',noSuggestions:'- à¹à¸¡à¹à¸¡à¸µà¸à¸³à¹à¸à¸°à¸à¸³à¹à¸à¹ -',progress:'à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸...',noMispell:'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸à¸à¸à¸³à¸ªà¸°à¸à¸à¸à¸´à¸',noChanges:'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¹à¸à¸³à¹à¸à¹',oneChange:'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸à¹à¹à¸1à¸à¸³',manyChanges:'à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸:: à¹à¸à¹à¹à¸ %1 à¸à¸³',ieSpellDownload:'à¹à¸¡à¹à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸°à¸à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸. à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸«à¸¡à¸à¸£à¸±
à¸?'},smiley:{toolbar:'รูà¸à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹',title:'à¹à¸à¸£à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 element'},numberedlist:'ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸',bulletedlist:'ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹',indent:'à¹à¸à¸´à¹à¸¡à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²',outdent:'ลà¸à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²',justify:{left:'à¸à¸±à¸à¸à¸´à¸à¸à¹à¸²à¸¢',center:'à¸à¸±à¸à¸à¸¶à¹à¸à¸à¸¥à¸²à¸',right:'à¸à¸±à¸à¸à¸´à¸à¸à¸§à¸²',block:'à¸à¸±à¸à¸à¸à¸à¸µà¸«à¸à¹à¸²à¸à¸£à¸°à¸à¸²à¸©'},blockquote:'Block Quote',clipboard:{title:'วาà¸',cutError:'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸
¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ X à¸à¸£à¹à¸à¸¡à¸à¸±à¸).',copyError:'à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸³à¹à¸à¸²à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ C à¸à¸£à¹à¸à¸¡à¸à¸±à¸).',pasteMsg:'à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸µà¸¢à¹à¸à¸à¸£à¹à¸à¹à¸à¹à¸²à¸à¸±à¹à¸ à¹à¸à¸¢à¸à¸à¸à¸¸à¹à¸¡ (<strong>Ctrl/Cmd à¹à¸¥à¸° V</strong>)à¸à¸£à¹à¸à¸¡à¹à¸à¸±à¸ à¹à¸¥à¸°à¸à¸ <strong>OK</strong>.',securityMsg:'Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.',pasteArea:'Paste Area'},pastefromword:{confirm
Cleanup:'The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?',toolbar:'วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸',title:'วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²',title:'วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²'},templates:{button:'à¹à¸à¸¡à¹à¸à¸¥à¸',title:'à¹à¸à¸¡à¹à¸à¸¥à¸à¸à¸à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹',options:'Template Options',insertOption:'à¹à¸à¸à¸à¸µà¹à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸',selectPromptMsg:'à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸ à¹à¸à¸¡à¹à¸à¸¥à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¹à¸à¹à¹à¸à¹à¸à¸à¸µà¸à¸´à¸à¹à¸à¸à¸£à¹<br />(à¹à¸à¸·à¹à¸à¸«à¸²à¸ªà¹à¸§à¸à¸à¸µà¹à¸à¸°à¸«à¸²à¸
¢à¹à¸):',emptyListMsg:'(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸³à¸«à¸à¸à¹à¸à¸¡à¹à¸à¸¥à¸)'},showBlocks:'Show Blocks',stylesCombo:{label:'ลัà¸à¸©à¸à¸°',panelTitle:'Formatting Styles',panelTitle1:'Block Styles',panelTitle2:'Inline Styles',panelTitle3:'Object Styles'},format:{label:'รูà¸à¹à¸à¸',panelTitle:'รูà¸à¹à¸à¸',tag_p:'Normal',tag_pre:'Formatted',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Paragraph (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'à¹à¸à¸à¸à¸±à¸à
¸©à¸£',voiceLabel:'Font',panelTitle:'à¹à¸à¸à¸à¸±à¸à¸©à¸£'},fontSize:{label:'à¸à¸à¸²à¸',voiceLabel:'Font Size',panelTitle:'à¸à¸à¸²à¸'},colorButton:{textColorTitle:'สีà¸à¸±à¸§à¸à¸±à¸à¸©à¸£',bgColorTitle:'สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸',panelTitle:'Colors',auto:'สีà¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´',more:'à¹à¸¥à¸·à¸à¸à¸ªà¸µà¸à¸·à¹à¸à¹...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FF
FFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Spell Check As You Type',opera_title:'Not supported by Opera',enable:'Enable SCAYT',disable:'Disable SCAYT',about:'About SCAYT',toggle:'Toggle SCAYT',options:'Options',langs:'Languages',moreSuggestions:'More suggestions',ignore:'Ignore',ignoreAll:'Ignore All',addWord:'Add Word',emptyDic:'Dictionary name should not be empty.',optionsTab:'Options',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Languages',dictionariesTab:'Dictionaries',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dict
ionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'About'},about:{title:'About CKEditor',dlgTitle:'About CKEditor',moreInfo:'For licensing information please visit our web site:',copy:'Copyright © $1. All rights reserved.'},maximize:'Maximize',minimize:'Minimize',fakeobjects:{anchor:'Anchor',flash:'Flash Animation',div:'Page Break',unknown:'Unknown Object'},resize:'Drag to resize',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['th']={"dir":"ltr","editor":"Rich Text Editor","common":{"editorHelp":"Press ALT 0 for help","browseServer":"à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸¥à¹à¸à¸±à¸à¹à¸«à¸¥à¸","url":"à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸ URL","protocol":"à¹à¸à¸£à¹à¸à¸à¸à¸¥","upload":"à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹","uploadSubmit":"à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)","image":"รูà¸à¸ าà¸","flash":"à¹à¸à¸¥à¹ Flash","form":"à¹à¸à¸à¸à¸à¸£à¹à¸¡","checkbox":"à¹à¸à¹à¸à¸à¹à¸à¸","radio":"à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸","textField":"à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹","textarea":"à¹à¸à¹à¸à¸à¹à¹à¸à¹à¸£à¸µà¸¢","hiddenField":"ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹","button":"à¸à¸¸à¹à¸¡","select":"à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸","imageButton":"à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸","notSet":"<à¹à¸¡à¹à¸£à
¸°à¸à¸¸>","id":"à¹à¸à¸à¸µ","name":"à¸à¸·à¹à¸","langDir":"à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา","langDirLtr":"à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)","langDirRtl":"à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)","langCode":"รหัสภาษา","longDescr":"à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¸à¸£à¸°à¸à¸à¸ URL","cssClass":"à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","advisoryTitle":"à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³","cssStyle":"ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","ok":"à¸à¸à¸¥à¸","cancel":"ยà¸à¹à¸¥à¸´à¸","close":"Close","preview":"à¸à¸¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸±à¸§à¸à¸¢à¹à¸²à¸","resize":"Resize","generalTab":"General","advancedTab":"à¸à¸±à¹à¸à¸ªà¸¹à¸","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"Some of the options have been changed. Are you
sure to close the dialog?","options":"Options","target":"à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸¥à¸´à¸à¸à¹","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)","langDirRTL":"à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)","styles":"ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","cssClasses":"à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","width":"à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸","height":"à¸à¸§à¸²à¸¡à¸ªà¸¹à¸","align":"à¸à¸²à¸£à¸à¸±à¸à¸§à¸²à¸","alignLeft":"à¸à¸´à¸à¸à¹à¸²à¸¢","alignRight":"à¸à¸´à¸à¸à¸§à¸²","alignCenter":"à¸à¸¶à¹à¸à¸à¸¥à¸²à¸","alignTop":"à¸à¸à¸ªà¸¸à¸","alignMiddle":"à¸à¸¶à¹à¸à¸à¸¥à¸²à¸à¹à¸à¸§à¸à¸±à¹à¸","alignBottom":"à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Wi
dth must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, unavailable</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"à¸à¸±à¸§à¸«à¸à¸²","ita
lic":"à¸à¸±à¸§à¹à¸à¸µà¸¢à¸","strike":"à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¸à¸±à¸","subscript":"à¸à¸±à¸§à¸«à¹à¸à¸¢","superscript":"à¸à¸±à¸§à¸¢à¸","underline":"à¸à¸±à¸§à¸à¸µà¸à¹à¸ªà¹à¸à¹à¸à¹"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"Block Quote"},"clipboard":{"copy":"สำà¹à¸à¸²","copyError":"à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸³à¹à¸à¸²à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ C à¸à¸£à¹à¸à¸¡à¸à¸±à¸).","cut":"à¸à¸±à¸","cutError":"à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸£à¸°à¸à¸±à¸à¸
วามà¸à¸¥à¸à¸à¸ ัย. à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸§à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸ (à¸à¸à¸à¸¸à¹à¸¡ Ctrl/Cmd à¹à¸¥à¸°à¸à¸±à¸§ X à¸à¸£à¹à¸à¸¡à¸à¸±à¸).","paste":"วาà¸","pasteArea":"Paste Area","pasteMsg":"à¸à¸£à¸¸à¸à¸²à¹à¸à¹à¸à¸µà¸¢à¹à¸à¸à¸£à¹à¸à¹à¸à¹à¸²à¸à¸±à¹à¸ à¹à¸à¸¢à¸à¸à¸à¸¸à¹à¸¡ (<strong>Ctrl/Cmd à¹à¸¥à¸° V</strong>)à¸à¸£à¹à¸à¸¡à¹à¸à¸±à¸ à¹à¸¥à¸°à¸à¸ <strong>OK</strong>.","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"วาà¸"},"colorbutton":{"auto":"สีà¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´","bgColorTitle":"สีà¸à¸·à¹à¸à¸«à¸¥à¸±à¸","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"
Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"à¹à¸¥à¸·à¸à¸à¸ªà¸µà¸à¸·à¹à¸à¹...","panelTitle":"Colors","textColorTitle":"สีà¸à¸±à¸§à¸à¸±à¸à¸©à¸£"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"à¹à¸à¸¡à¹à¸à¸¥à¸","emptyListMsg":"(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸³à¸«à¸à¸à¹à¸à¸¡à¹à¸à¸¥à¸)","insertOption":"à¹à¸à¸
à¸à¸µà¹à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸","options":"Template Options","selectPromptMsg":"à¸à¸£à¸¸à¸à¸²à¹à¸¥à¸·à¸à¸ à¹à¸à¸¡à¹à¸à¸¥à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¹à¸à¹à¹à¸à¹à¸à¸à¸µà¸à¸´à¸à¹à¸à¸à¸£à¹<br />(à¹à¸à¸·à¹à¸à¸«à¸²à¸ªà¹à¸§à¸à¸à¸µà¹à¸à¸°à¸«à¸²à¸¢à¹à¸):","title":"à¹à¸à¸¡à¹à¸à¸¥à¸à¸à¸à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"à¹à¸à¸à¸µ","advisoryTitleInputLabel":"à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³","cssClassInputLabel":"à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)","langDirLabel":"à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา","langDirRTLLabel":"à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)","languageCodeInputLabel":" Language Code","r
emove":"Remove Div","styleSelectLabel":"ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 element"},"list":{"bulletedlist":"ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹","numberedlist":"ลำà¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸"},"indent":{"indent":"à¹à¸à¸´à¹à¸¡à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²","outdent":"ลà¸à¸£à¸°à¸¢à¸°à¸¢à¹à¸à¸«à¸à¹à¸²"},"find":{"find":"à¸à¹à¸à¸«à¸²","findOptions":"Find Options","findWhat":"à¸à¹à¸à¸«à¸²à¸à¸³à¸§à¹à¸²:","matchCase
":"à¸à¸±à¸§à¹à¸«à¸à¹-à¹à¸¥à¹à¸ à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸","matchCyclic":"Match cyclic","matchWord":"à¸à¹à¸à¸à¸à¸£à¸à¸à¸±à¸à¸à¸¸à¸à¸à¸³","notFoundMsg":"à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸µà¹à¸à¹à¸à¸«à¸².","replace":"à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¸à¸à¸µà¹","replaceAll":"à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹à¸à¸","replaceSuccessMsg":"%1 occurrence(s) replaced.","replaceWith":"à¹à¸à¸à¸à¸µà¹à¸à¹à¸§à¸¢:","title":"Find and Replace"},"fakeobjects":{"anchor":"à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor","flash":"Flash Animation","hiddenfield":"ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹","iframe":"IFrame","unknown":"Unknown Object"},"flash":{"access":"Script Access","accessAlways":"Always","accessNever":"Never","accessSameDomain":"Same domain","alignAbsBottom":"à¸à¸´à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸à¸ªà¸¸à¸","alignAbsMiddle":"à¸à¸¶à¹à¸à¸à¸¥à¸²à¸","alignBaseline":"à¸à¸´à¸à¸à¸£à¸£à¸à¸±à¸","alignTextTop":"à¹à¸à¹à¸à¸±à¸§à¸à¸±à¸à¸©à¸£","bgcolor":"สี
à¸à¸·à¹à¸à¸«à¸¥à¸±à¸","chkFull":"Allow Fullscreen","chkLoop":"à¹à¸¥à¹à¸à¸§à¸à¸£à¸à¸ Loop","chkMenu":"à¹à¸«à¹à¹à¸à¹à¸à¸²à¸à¹à¸¡à¸à¸¹à¸à¸à¸ Flash","chkPlay":"à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ Auto Play","flashvars":"Variables for Flash","hSpace":"ระยะà¹à¸à¸§à¸à¸à¸","properties":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash","propertiesTab":"Properties","quality":"Quality","qualityAutoHigh":"Auto High","qualityAutoLow":"Auto Low","qualityBest":"Best","qualityHigh":"High","qualityLow":"Low","qualityMedium":"Medium","scale":"à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ Scale","scaleAll":"à¹à¸ªà¸à¸à¹à¸«à¹à¹à¸«à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸ Show all","scaleFit":"à¹à¸ªà¸à¸à¹à¸«à¹à¸à¸à¸à¸µà¸à¸±à¸à¸à¸·à¹à¸à¸à¸µà¹ Exact Fit","scaleNoBorder":"à¹à¸¡à¹à¹à¸ªà¸à¸à¹à¸ªà¹à¸à¸à¸à¸ No Border","title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¹à¸à¸¥à¹ Flash","vSpace":"ระยะà¹à¸à¸§à¸à¸±à¹à¸","validateHSpace":"HSpace must be
a number.","validateSrc":"à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)","validateVSpace":"VSpace must be a number.","windowMode":"Window mode","windowModeOpaque":"Opaque","windowModeTransparent":"Transparent","windowModeWindow":"Window"},"font":{"fontSize":{"label":"à¸à¸à¸²à¸","voiceLabel":"Font Size","panelTitle":"à¸à¸à¸²à¸"},"label":"à¹à¸à¸à¸à¸±à¸à¸©à¸£","panelTitle":"à¹à¸à¸à¸à¸±à¸à¸©à¸£","voiceLabel":"à¹à¸à¸à¸à¸±à¸à¸©à¸£"},"forms":{"button":{"title":"รายละà¹à¸à¸µà¸¢à¸à¸à¸à¸ à¸à¸¸à¹à¸¡","text":"à¸à¹à¸à¸à¸§à¸²à¸¡ (à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£)","type":"à¸à¹à¸à¸à¸§à¸²à¸¡","typeBtn":"Button","typeSbm":"Submit","typeRst":"Reset"},"checkboxAndRadio":{"checkboxTitle":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸","radioTitle":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸£à¸à¸´à¹à¸à¸à¸±à¸à¸à¸à¸","value":"à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£","selected":"à¹à¸¥à¸·à¸à¸
à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸"},"form":{"title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡","menu":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸à¸£à¹à¸¡","action":"à¹à¸à¸à¸à¸±à¹à¸","method":"à¹à¸¡à¸à¸à¸","encoding":"Encoding"},"hidden":{"title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ ฮิà¸à¹à¸à¸à¸à¸´à¸¥à¸à¹","name":"à¸à¸·à¹à¸","value":"à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£"},"select":{"title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸","selectInfo":"à¸à¸´à¸à¹à¸","opAvail":"รายà¸à¸²à¸£à¸à¸±à¸§à¹à¸¥à¸·à¸à¸","value":"à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£","size":"à¸à¸à¸²à¸","lines":"à¸à¸£à¸£à¸à¸±à¸","chkMulti":"à¹à¸¥à¸·à¸à¸à¸«à¸¥à¸²à¸¢à¸à¹à¸²à¹à¸à¹","opText":"à¸à¹à¸à¸à¸§à¸²à¸¡","opValue":"à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£","btnAdd":"à¹à¸à¸´à¹à¸¡","btnModify":"à¹à¸à¹à¹à¸","btnUp":"à¸à¸","btnDown":"ลà¹à¸²à¸","btnSetValue":"à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à
¸´à¹à¸¡à¸à¹à¸","btnDelete":"ลà¸"},"textarea":{"title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¹à¸à¹à¸£à¸µà¸¢","cols":"สà¸à¸¡à¸ à¹","rows":"à¹à¸à¸§"},"textfield":{"title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¹à¸à¹à¸à¸à¹à¸à¸´à¸¥à¸à¹","name":"à¸à¸·à¹à¸","value":"à¸à¹à¸²à¸à¸±à¸§à¹à¸à¸£","charWidth":"à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸","maxChars":"à¸à¸³à¸à¸§à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸ªà¸¹à¸à¸ªà¸¸à¸","type":"à¸à¸à¸´à¸","typeText":"à¸à¹à¸à¸à¸§à¸²à¸¡","typePass":"รหัสà¸à¹à¸²à¸","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"รูà¸à¹à¸à¸","panelTitle":"รูà¸à¹à¸à¸","tag_address":"Address","tag_div":"Paragraph (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3","tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Normal","tag_pre":"Formatted"},"horizontalrule":{"toolbar":"à¹à¸à¸£à¸à¹à¸ªà¹à¸à¸à¸±à¹à¸à¸à¸£
รà¸à¸±à¸"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸à¹à¸à¸¥à¹à¸£à¸¹à¸à¸ าภ(URL)","alt":"à¸à¸³à¸à¸£à¸°à¸à¸à¸à¸£à¸¹à¸à¸ าà¸","border":"à¸à¸à¸²à¸à¸à¸à¸à¸£à¸¹à¸","btnUpload":"à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸µà¹à¹à¸à¸£à¸·à¹à¸à¸à¹à¸¡à¹à¸à¹à¸²à¸¢ (à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹)","button2Img":"Do you want to transform the selected image button on a simple image?","hSpace":"ระยะà¹à¸à¸§à¸à¸à¸","img2Button":"Do you want to transform the selected image on a image button?","infoTab":"à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸£à¸¹à¸à¸ าà¸","linkTab":"ลิà¹à¸à¸à¹","lockRatio":"à¸à¸³à¸«à¸à¸à¸à¸±à¸à¸£à¸²à¸ªà¹à¸§à¸ à¸à¸§à¹à¸²à¸-สูภà¹à¸à¸à¸à¸à¸à¸µà¹","me
nu":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸","resetSize":"à¸à¸³à¸«à¸à¸à¸£à¸¹à¸à¹à¸à¹à¸²à¸à¸à¸²à¸à¸à¸£à¸´à¸","title":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ รูà¸à¸ าà¸","titleButton":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸¸à¹à¸¡à¹à¸à¸à¸£à¸¹à¸à¸ าà¸","upload":"à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹","urlMissing":"Image source URL is missing.","vSpace":"ระยะà¹à¸à¸§à¸à¸±à¹à¸","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"options":"Smiley Options","title":"à¹à¸à¸£à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹","toolbar":"รูà¸à¸ªà¸·à¹à¸à¸à¸²à¸£à¸¡à¸à¹"},"justify":{"block":"à¸à¸±à¸à¸à¸à¸à¸µà¸«à¸à¹à¸²à¸à¸£à¸°à¸à¸²à¸©","center":"à¸à¸±à¸à¸à¸¶à¹à¸à¸à¸¥à¸²à¸","left":"à¸à¸±à¸à¸à¸´à¸à¸à¹à¸²à¸¢","right":"à¸à¸±à¸à¸à¸´à¸à¸à¸§à¸²"},"link":{"acccessKey":"à¹à¸à¸à¹à¸à¸ª
à¸à¸µà¸¢à¹","advanced":"à¸à¸±à¹à¸à¸ªà¸¹à¸","advisoryContentType":"à¸à¸à¸´à¸à¸à¸à¸à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³","advisoryTitle":"à¸à¸³à¹à¸à¸£à¸´à¹à¸à¸à¸³","anchor":{"toolbar":"à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ Anchor","menu":"รายละà¹à¸à¸µà¸¢à¸ Anchor","title":"รายละà¹à¸à¸µà¸¢à¸ Anchor","name":"à¸à¸·à¹à¸ Anchor","errorName":"à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸·à¹à¸à¸à¸à¸ Anchor","remove":"Remove Anchor"},"anchorId":"à¹à¸à¸à¸µ","anchorName":"à¸à¸·à¹à¸","charset":"ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£","cssClasses":"à¸à¸¥à¸²à¸ªà¸à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸«à¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","emailAddress":"à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)","emailBody":"à¸à¹à¸à¸à¸§à¸²à¸¡","emailSubject":"หัวà¹à¸£à¸·à¹à¸à¸","id":"à¹à¸à¸à¸µ","info":"รายละà¹à¸à¸µà¸¢à¸","langCode":"à¸à¸²à¸£à¹à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา","langDir":"à¸à¸²à¸£à¹
à¸à¸µà¸¢à¸-à¸à¹à¸²à¸à¸ าษา","langDirLTR":"à¸à¸²à¸à¸à¹à¸²à¸¢à¹à¸à¸à¸§à¸² (LTR)","langDirRTL":"à¸à¸²à¸à¸à¸§à¸²à¸¡à¸²à¸à¹à¸²à¸¢ (RTL)","menu":"à¹à¸à¹à¹à¸ ลิà¸à¸à¹","name":"à¸à¸·à¹à¸","noAnchors":"(ยัà¸à¹à¸¡à¹à¸¡à¸µà¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¸ ายà¹à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹)","noEmail":"à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸¡à¸¥à¹ (E-mail)","noUrl":"à¸à¸£à¸¸à¸à¸²à¸£à¸°à¸à¸¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸à¸à¸à¸à¹à¸¥à¸à¹ (URL)","other":"<à¸à¸·à¹à¸ à¹>","popupDependent":"à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (Netscape)","popupFeatures":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)","popupFullScreen":"à¹à¸ªà¸à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (IE5.5++ à¹à¸à¹à¸²à¸à¸±à¹à¸)","popupLeft":"à¸à¸´à¸à¸±à¸à¸à¹à¸²à¸¢ (Left Position)","popupLocationBar":"à¹à¸ªà¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸¥à¹","popupMenuBar":"à¹à¸ªà¸à¸à¹à¸à¸
à¹à¸¡à¸à¸¹","popupResizable":"Resizable","popupScrollBars":"à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¥à¸·à¹à¸à¸","popupStatusBar":"à¹à¸ªà¸à¸à¹à¸à¸à¸ªà¸à¸²à¸à¸°","popupToolbar":"à¹à¸ªà¸à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸","popupTop":"à¸à¸´à¸à¸±à¸à¸à¸ (Top Position)","rel":"Relationship","selectAnchor":"ระà¸à¸¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)","styles":"ลัà¸à¸©à¸à¸°à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥","tabIndex":"ลำà¸à¸±à¸à¸à¸à¸ à¹à¸à¹à¸","target":"à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸¥à¸´à¸à¸à¹","targetFrame":"<à¹à¸à¸´à¸à¹à¸à¹à¸à¸£à¸¡>","targetFrameName":"à¸à¸·à¹à¸à¸à¸²à¸£à¹à¹à¸à¹à¸à¹à¸à¸£à¸¡","targetPopup":"<à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)>","targetPopupName":"ระà¸à¸¸à¸à¸·à¹à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¹à¸ (Pop-up)","title":"ลิà¸à¸à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸§à¹à¸ à¸à¸µà¹à¸¡à¸¥à¹ รูà¸à¸ าภหรืà¸à¹à¸à¸¥à¹à¸à¸·à¹à¸à¹","toAn
chor":"à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸ (Anchor)","toEmail":"สà¹à¸à¸à¸µà¹à¸¡à¸¥à¹ (E-Mail)","toUrl":"à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¹à¸²à¸à¸à¸´à¸ URL","toolbar":"à¹à¸à¸£à¸/à¹à¸à¹à¹à¸ ลิà¸à¸à¹","type":"à¸à¸£à¸°à¹à¸ à¸à¸à¸à¸à¸¥à¸´à¸à¸à¹","unlink":"ลภลิà¸à¸à¹","upload":"à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","georgian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III
, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Maximize","minimize":"Minimize"},"newpage":{"toolbar":"สรà¹à¸²à¸à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¹à¸«à¸¡à¹"},"pagebreak":{"alt":"Page Break","toolbar":"à¹à¸à¸£à¸à¸à¸±à¸§à¹à¸à¹à¸à¸«à¸à¹à¸² Page Break"},"pastetext":{"button":"วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²","title":"วาà¸à¹à¸à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸£à¸£à¸¡à¸à¸²"},"pastefromword":{"confirmCleanup":"The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?","error":"It was not possible to clean up the pasted data due to an internal error","title":"วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸","toolbar":"วาà¸à¸ªà¸³à¹à¸à¸²à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¹à¸§à¸´à¸£à¹à¸"},"preview":{"preview":"à¸à¸¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸à¸±à¸§à¸à
¸¢à¹à¸²à¸"},"print":{"toolbar":"สัà¹à¸à¸à¸´à¸¡à¸à¹"},"removeformat":{"toolbar":"ลà¹à¸²à¸à¸£à¸¹à¸à¹à¸à¸"},"save":{"toolbar":"à¸à¸±à¸à¸à¸¶à¸"},"selectall":{"toolbar":"à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸"},"showblocks":{"toolbar":"Show Blocks"},"sourcearea":{"toolbar":"à¸à¸¹à¸£à¸«à¸±à¸ª HTML"},"specialchar":{"options":"Special Character Options","title":"à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©","toolbar":"à¹à¸à¸£à¸à¸à¸±à¸§à¸à¸±à¸à¸©à¸£à¸à¸´à¹à¸¨à¸©"},"scayt":{"about":"About SCAYT","aboutTab":"About","addWord":"Add Word","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name f
or your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"Dictionaries","disable":"Disable SCAYT","emptyDic":"Dictionary name should not be empty.","enable":"Enable SCAYT","ignore":"Ignore","ignoreAll":"Ignore All","ignoreDomainNames":"Ignore Domain Names","langs":"Languages","languagesTab":"Languages","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"More suggestions","opera_title":"Not supported by Opera","options":"Options","optionsTab":"Options","title":"Spell Check As You Type","toggle":"Toggle SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"ลัà¸à¸©à¸à¸°","panelTitle":"Formatting Styles","panelTitle1":"Block Styles","panelTitle2":"Inline Styles","panelTitle3":"Object Styles"},"table":{"border":"à¸à¸à¸²à¸à¹à¸ªà¹à¸à¸à¸à¸","caption":"หัวà¹à¸£à¸·à¹à¸à¸à¸à¸à
¸à¸à¸²à¸£à¸²à¸","cell":{"menu":"à¸à¹à¸à¸à¸à¸²à¸£à¸²à¸","insertBefore":"Insert Cell Before","insertAfter":"Insert Cell After","deleteCell":"ลà¸à¸à¹à¸à¸","merge":"à¸à¸ªà¸²à¸à¸à¹à¸à¸","mergeRight":"Merge Right","mergeDown":"Merge Down","splitHorizontal":"Split Cell Horizontally","splitVertical":"Split Cell Vertically","title":"Cell Properties","cellType":"Cell Type","rowSpan":"Rows Span","colSpan":"Columns Span","wordWrap":"Word Wrap","hAlign":"Horizontal Alignment","vAlign":"Vertical Alignment","alignBaseline":"Baseline","bgColor":"Background Color","borderColor":"Border Color","data":"Data","header":"Header","yes":"Yes","no":"No","invalidWidth":"Cell width must be a number.","invalidHeight":"Cell height must be a number.","invalidRowSpan":"Rows span must be a whole number.","invalidColSpan":"Columns span must be a whole number.","chooseColor":"Choose"},"cellPad":"ระยะà¹à¸à¸§à¸à¸±à¹à¸","cellSpace":"ระยะà¹à¸à¸§à¸à¸à¸à¸","column":
{"menu":"à¸à¸à¸¥à¸±à¸¡à¸à¹","insertBefore":"Insert Column Before","insertAfter":"Insert Column After","deleteColumn":"ลà¸à¸ªà¸à¸¡à¸à¹"},"columns":"สà¸à¸¡à¸à¹","deleteTable":"ลà¸à¸à¸²à¸£à¸²à¸","headers":"Headers","headersBoth":"Both","headersColumn":"First column","headersNone":"None","headersRow":"First Row","invalidBorder":"Border size must be a number.","invalidCellPadding":"Cell padding must be a positive number.","invalidCellSpacing":"Cell spacing must be a positive number.","invalidCols":"Number of columns must be a number greater than 0.","invalidHeight":"Table height must be a number.","invalidRows":"Number of rows must be a number greater than 0.","invalidWidth":"Table width must be a number.","menu":"à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸","row":{"menu":"à¹à¸à¸§","insertBefore":"Insert Row Before","insertAfter":"Insert Row After","deleteRow":"ลà¸à¹à¸à¸§"},"rows":"à¹à¸à¸§","summary":"สรุà¸à¸à¸§à¸²à¸¡","title":"à¸à¸¸
à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ à¸à¸²à¸£à¸²à¸","toolbar":"à¸à¸²à¸£à¸²à¸","widthPc":"à¹à¸à¸à¸£à¹à¹à¸à¹à¸","widthPx":"à¸à¸¸à¸à¸ªà¸µ","widthUnit":"width unit"},"undo":{"redo":"à¸à¸³à¸à¹à¸³à¸à¸³à¸ªà¸±à¹à¸","undo":"ยà¸à¹à¸¥à¸´à¸à¸à¸³à¸ªà¸±à¹à¸"},"wsc":{"btnIgnore":"ยà¸à¹à¸§à¹à¸","btnIgnoreAll":"ยà¸à¹à¸§à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸","btnReplace":"à¹à¸à¸à¸à¸µà¹","btnReplaceAll":"à¹à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸","btnUndo":"ยà¸à¹à¸¥à¸´à¸","changeTo":"à¹à¸à¹à¹à¸à¹à¸à¹à¸","errorLoading":"Error loading application service host: %s.","ieSpellDownload":"à¹à¸¡à¹à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸°à¸à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸. à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸«à¸¡à¸à¸£à¸±à¸?","manyChanges":"à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸:: à¹à¸à¹à¹à¸ %1 à¸à¸³","noChanges":"à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¹à¸
à¹à¸à¸³à¹à¸à¹","noMispell":"à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸¡à¹à¸à¸à¸à¸³à¸ªà¸°à¸à¸à¸à¸´à¸","noSuggestions":"- à¹à¸¡à¹à¸¡à¸µà¸à¸³à¹à¸à¸°à¸à¸³à¹à¸à¹ -","notAvailable":"Sorry, but service is unavailable now.","notInDic":"à¹à¸¡à¹à¸à¸à¹à¸à¸à¸´à¸à¸à¸±à¸à¸à¸²à¸£à¸µ","oneChange":"à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸: à¹à¸à¹à¹à¸1à¸à¸³","progress":"à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸ªà¸°à¸à¸...","title":"Spell Check","toolbar":"à¸à¸£à¸§à¸à¸à¸²à¸£à¸ªà¸°à¸à¸à¸à¸³"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/tr.js b/share/static/RichText/lang/tr.js
index 1e62d4e..825796e 100644
--- a/share/static/RichText/lang/tr.js
+++ b/share/static/RichText/lang/tr.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.tr={dir:'ltr',editorTitle:'Zengin metin editörü, %1, yardım için ALT 0 tuÅuna basın.',toolbar:'Toolbar',editor:'Zengin Metin Editörü',source:'Kaynak',newPage:'Yeni Sayfa',save:'Kaydet',preview:'Ãn İzleme',cut:'Kes',copy:'Kopyala',paste:'YapıÅtır',print:'Yazdır',underline:'Altı Ãizgili',bold:'Kalın',italic:'İtalik',selectAll:'Tümünü Seç',removeFormat:'Biçimi Kaldır',strike:'Ãstü Ãizgili',subscript:'Alt Simge',superscript:'Ãst Simge',horizontalrule:'Yatay Satır Ekle',pagebreak:'Sayfa Sonu Ekle',unlink:'Köprü Kaldır',undo:'Geri Al',redo:'Tekrarla',common:{browseServer:'Sunucuyu Gez',url:'URL',protocol:'Protokol',upload:'KarÅıya Yükle',uploadSubmit:'Sunucuya Yolla',image:'Resim',flash:'Flash',form:'Form',checkbox:'Onay Kutusu',radio:'Seçenek DüÄmesi',textField:'Metin GiriÅi',textarea:'Ãok Satırlı Metin',hiddenField:'Gizli Veri',button:'DüÄme',select:'Seçim Menüsü',imageButton:'Resimli DüÄme',notSet:'<tanımlanmamıÅ
>',id:'Kimlik',name:'Ad',langDir:'Dil Yönü',langDirLtr:'Soldan SaÄa (LTR)',langDirRtl:'SaÄdan Sola (RTL)',langCode:'Dil Kodlaması',longDescr:'Uzun Tanımlı URL',cssClass:'Biçem Sayfası Sınıfları',advisoryTitle:'DanıÅma BaÅlıÄı',cssStyle:'Biçem',ok:'Tamam',cancel:'İptal',close:'Kapat',preview:'Ãn gösterim',generalTab:'Genel',advancedTab:'GeliÅmiÅ',validateNumberFailed:'Bu deÄer sayı deÄildir.',confirmNewPage:'İceriÄiniz kayıt edilmediÄinden dolayı kaybolacaktır. Yeni bir sayfa yüklemek istediÄinize eminsiniz?',confirmCancel:'Bazı seçenekler deÄiÅmiÅtir. Dialog penceresini kapatmak istediÄinize eminmisiniz?',options:'Seçenekler',target:'Hedef',targetNew:'Yeni Pencere (_blank)',targetTop:'Enüst Pencere (_top)',targetSelf:'Aynı Pencere (_self)',targetParent:'Ana Pencere (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility
">, hazır deÄildir</span>'},contextmenu:{options:'İçerik Menüsü Seçenekleri'},specialChar:{toolbar:'Ãzel Karakter Ekle',title:'Ãzel Karakter Seç',options:'Ãzel Karakter Seçenekleri'},link:{toolbar:'Link Ekle/Düzenle',other:'<diÄer>',menu:'Link Düzenle',title:'Link',info:'Link Bilgisi',target:'Hedef',upload:'KarÅıya Yükle',advanced:'GeliÅmiÅ',type:'Link Türü',toUrl:'URL',toAnchor:'Bu sayfada çapa',toEmail:'E-Posta',targetFrame:'<çerçeve>',targetPopup:'<yeni açılan pencere>',targetFrameName:'Hedef Ãerçeve Adı',targetPopupName:'Yeni Açılan Pencere Adı',popupFeatures:'Yeni Açılan Pencere Ãzellikleri',popupResizable:'Resizable',popupStatusBar:'Durum ÃubuÄu',popupLocationBar:'Yer ÃubuÄu',popupToolbar:'Araç ÃubuÄu',popupMenuBar:'Menü ÃubuÄu',popupFullScreen:'Tam Ekran (IE)',popupScrollBars:'Kaydırma Ãubukları',popupDependent:'BaÄımlı (Netscape)',popupWidth:'GeniÅlik',popupLeft:'Sola Göre Konum',popupHeight:'Yükseklik',popupTop:
'Yukarıya Göre Konum',id:'Id',langDir:'Dil Yönü',langDirLTR:'Soldan SaÄa (LTR)',langDirRTL:'SaÄdan Sola (RTL)',acccessKey:'EriÅim TuÅu',name:'Ad',langCode:'Dil Yönü',tabIndex:'Sekme İndeksi',advisoryTitle:'DanıÅma BaÅlıÄı',advisoryContentType:'DanıÅma İçerik Türü',cssClasses:'Biçem Sayfası Sınıfları',charset:'BaÄlı Kaynak Karakter Gurubu',styles:'Biçem',selectAnchor:'BaÄlantı Seç',anchorName:'BaÄlantı Adı ile',anchorId:'Eleman Kimlik Numarası ile',emailAddress:'E-Posta Adresi',emailSubject:'İleti Konusu',emailBody:'İleti Gövdesi',noAnchors:'(Bu belgede hiç çapa yok)',noUrl:"Lütfen Link URL'sini yazın",noEmail:'Lütfen E-posta adresini yazın'},anchor:{toolbar:'BaÄlantı Ekle/Düzenle',menu:'BaÄlantı Ãzellikleri',title:'BaÄlantı Ãzellikleri',name:'BaÄlantı Adı',errorName:'Lütfen baÄlantı için ad giriniz'},list:{numberedTitle:'SayılandırılmıŠListe Ãzellikleri',bulletedTitle:'Simgeli Liste Ãzellikleri',type:'Tip
i',start:'BaÅla',validateStartNumber:'List start number must be a whole number.',circle:'Daire',disc:'Disk',square:'Kare',none:'Yok',notset:'<ayarlanmamıÅ>',armenian:'Ermenice sayılandırma',georgian:'Gürcüce numaralandırma (an, ban, gan, vs.)',lowerRoman:'Küçük Roman (i, ii, iii, iv, v, vs.)',upperRoman:'Büyük Roman (I, II, III, IV, V, vs.)',lowerAlpha:'Küçük Alpha (a, b, c, d, e, vs.)',upperAlpha:'Büyük Alpha (A, B, C, D, E, vs.)',lowerGreek:'Küçük Greek (alpha, beta, gamma, vs.)',decimal:'Ondalık (1, 2, 3, vs.)',decimalLeadingZero:'BaÅı sıfırlı ondalık (01, 02, 03, vs.)'},findAndReplace:{title:'Bul ve DeÄiÅtir',find:'Bul',replace:'DeÄiÅtir',findWhat:'Aranan:',replaceWith:'Bununla deÄiÅtir:',notFoundMsg:'Belirtilen yazı bulunamadı.',matchCase:'Büyük/küçük harf duyarlı',matchWord:'Kelimenin tamamı uysun',matchCyclic:'EÅleÅen döngü',replaceAll:'Tümünü DeÄiÅtir',replaceSuccessMsg:'%1 bulunanlardan deÄiÅtirildi.'},table:{too
lbar:'Tablo',title:'Tablo Ãzellikleri',menu:'Tablo Ãzellikleri',deleteTable:'Tabloyu Sil',rows:'Satırlar',columns:'Sütunlar',border:'Kenar KalınlıÄı',align:'Hizalama',alignLeft:'Sol',alignCenter:'Merkez',alignRight:'SaÄ',width:'GeniÅlik',widthPx:'piksel',widthPc:'yüzde',widthUnit:'geniÅlik birimi',height:'Yükseklik',cellSpace:'Izgara kalınlıÄı',cellPad:'Izgara yazı arası',caption:'BaÅlık',summary:'Ãzet',headers:'BaÅlıklar',headersNone:'Yok',headersColumn:'İlk Sütun',headersRow:'İlk Satır',headersBoth:'Her İkisi',invalidRows:'Satır sayısı 0 sayısından büyük olmalıdır.',invalidCols:'Sütün sayısı 0 sayısından büyük olmalıdır.',invalidBorder:'Ãerceve büyüklüklüÄü sayı olmalıdır.',invalidWidth:'Tablo geniÅliÄi sayı olmalıdır.',invalidHeight:'Tablo yüksekliÄi sayı olmalıdır.',invalidCellSpacing:'Hücre boÅluÄu (spacing) sayı olmalıdır.',invalidCellPadding:'Hücre aralıÄı (padding) sayı olmalıdır.',cell:
{menu:'Hücre',insertBefore:'Hücre Ekle - Ãnce',insertAfter:'Hücre Ekle - Sonra',deleteCell:'Hücre Sil',merge:'Hücreleri BirleÅtir',mergeRight:'BirleÅtir - SaÄdaki İle ',mergeDown:'BirleÅtir - AÅaÄıdaki İle ',splitHorizontal:'Hücreyi Yatay Böl',splitVertical:'Hücreyi Dikey Böl',title:'Hücre Ãzellikleri',cellType:'Hücre Tipi',rowSpan:'Satırlar Mesafesi (Span)',colSpan:'Sütünlar Mesafesi (Span)',wordWrap:'Kelime Kaydırma',hAlign:'DüÅey Hizalama',vAlign:'YataÅ Hizalama',alignTop:'Ãst',alignMiddle:'Orta',alignBottom:'Alt',alignBaseline:'Tabana',bgColor:'Arkaplan Rengi',borderColor:'Ãerçeve Rengi',data:'Veri',header:'BaÅlık',yes:'Evet',no:'Hayır',invalidWidth:'Hücre geniÅliÄi sayı olmalıdır.',invalidHeight:'Hücre yüksekliÄi sayı olmalıdır.',invalidRowSpan:'Satırların mesafesi tam sayı olmalıdır.',invalidColSpan:'Sütünların mesafesi tam sayı olmalıdır.',chooseColor:'Seçiniz'},row:{menu:'Satır',insertBefore:'Satır Ekle - Ã
nce',insertAfter:'Satır Ekle - Sonra',deleteRow:'Satır Sil'},column:{menu:'Sütun',insertBefore:'Kolon Ekle - Ãnce',insertAfter:'Kolon Ekle - Sonra',deleteColumn:'Sütun Sil'}},button:{title:'DüÄme Ãzellikleri',text:'Metin (DeÄer)',type:'Tip',typeBtn:'DüÄme',typeSbm:'Gönder',typeRst:'Sıfırla'},checkboxAndRadio:{checkboxTitle:'Onay Kutusu Ãzellikleri',radioTitle:'Seçenek DüÄmesi Ãzellikleri',value:'DeÄer',selected:'Seçili'},form:{title:'Form Ãzellikleri',menu:'Form Ãzellikleri',action:'İÅlem',method:'Yöntem',encoding:'Kodlama'},select:{title:'Seçim Menüsü Ãzellikleri',selectInfo:'Bilgi',opAvail:'Mevcut Seçenekler',value:'DeÄer',size:'Boyut',lines:'satır',chkMulti:'Ãoklu seçime izin ver',opText:'Metin',opValue:'DeÄer',btnAdd:'Ekle',btnModify:'Düzenle',btnUp:'Yukarı',btnDown:'AÅaÄı',btnSetValue:'Seçili deÄer olarak ata',btnDelete:'Sil'},textarea:{title:'Ãok Satırlı Metin Ãzellikleri',cols:'Sütunlar',rows:'Satırlar'},textfield:{tit
le:'Metin GiriÅi Ãzellikleri',name:'Ad',value:'DeÄer',charWidth:'Karakter GeniÅliÄi',maxChars:'En Fazla Karakter',type:'Tür',typeText:'Metin',typePass:'Åifre'},hidden:{title:'Gizli Veri Ãzellikleri',name:'Ad',value:'DeÄer'},image:{title:'Resim Ãzellikleri',titleButton:'Resimli DüÄme Ãzellikleri',menu:'Resim Ãzellikleri',infoTab:'Resim Bilgisi',btnUpload:'Sunucuya Yolla',upload:'KarÅıya Yükle',alt:'Alternatif Yazı',width:'GeniÅlik',height:'Yükseklik',lockRatio:'Oranı Kilitle',unlockRatio:'Kilitli Oran',resetSize:'Boyutu BaÅa Döndür',border:'Kenar',hSpace:'Yatay BoÅluk',vSpace:'Dikey BoÅluk',align:'Hizalama',alignLeft:'Sol',alignRight:'SaÄ',alertUrl:"Lütfen resmin URL'sini yazınız",linkTab:'Köprü',button2Img:'Seçili resim butonunu basit resime çevirmek istermisiniz?',img2Button:'Seçili olan resimi, resimli butona çevirmek istermisiniz?',urlMissing:'Resmin URL kaynaÄı eksiktir.',validateWidth:'GeniÅlik tam sayı olmalıdır.',validateHeigh
t:'Yükseklik tam sayı olmalıdır.',validateBorder:'Ãerçeve tam sayı olmalıdır.',validateHSpace:'HSpace tam sayı olmalıdır.',validateVSpace:'VSpace tam sayı olmalıdır.'},flash:{properties:'Flash Ãzellikleri',propertiesTab:'Ãzellikler',title:'Flash Ãzellikleri',chkPlay:'Otomatik Oynat',chkLoop:'Döngü',chkMenu:'Flash Menüsünü Kullan',chkFull:'Tam ekrana İzinver',scale:'Boyutlandır',scaleAll:'Hepsini Göster',scaleNoBorder:'Kenar Yok',scaleFit:'Tam SıÄdır',access:'Kod İzni',accessAlways:'Herzaman',accessSameDomain:'Aynı domain',accessNever:'Asla',align:'Hizalama',alignLeft:'Sol',alignAbsBottom:'Tam Altı',alignAbsMiddle:'Tam Ortası',alignBaseline:'Taban Ãizgisi',alignBottom:'Alt',alignMiddle:'Orta',alignRight:'SaÄ',alignTextTop:'Yazı Tepeye',alignTop:'Tepe',quality:'Kalite',qualityBest:'En iyi',qualityHigh:'Yüksek',qualityAutoHigh:'Otomatik Yükseklik',qualityMedium:'Orta',qualityAutoLow:'Otomatik DüÅüklük',qualityLow:'DüÅük',windowModeWi
ndow:'Pencere',windowModeOpaque:'Opak',windowModeTransparent:'Åeffaf',windowMode:'Pencere modu',flashvars:'Flash DeÄerleri',bgcolor:'Arka Renk',width:'GeniÅlik',height:'Yükseklik',hSpace:'Yatay BoÅluk',vSpace:'Dikey BoÅluk',validateSrc:"Lütfen köprü URL'sini yazın",validateWidth:'GeniÅlik bir sayı olmalıdır.',validateHeight:'Yükseklik sayı olmalıdır.',validateHSpace:'HSpace sayı olmalıdır.',validateVSpace:'VSpace sayı olmalıdır.'},spellCheck:{toolbar:'Yazım Denetimi',title:'Yazımı Denetle',notAvailable:'Ãzügünüz, bu servis Åuanda hizmet dıÅıdır.',errorLoading:'Uygulamada yüklerken hata oluÅtu: %s.',notInDic:'Sözlükte Yok',changeTo:'Åuna deÄiÅtir:',btnIgnore:'Yoksay',btnIgnoreAll:'Tümünü Yoksay',btnReplace:'DeÄiÅtir',btnReplaceAll:'Tümünü DeÄiÅtir',btnUndo:'Geri Al',noSuggestions:'- Ãneri Yok -',progress:'Yazım denetimi iÅlemde...',noMispell:'Yazım denetimi tamamlandı: YanlıŠyazıma rastlanmadı',noChanges:'Yazım d
enetimi tamamlandı: Hiçbir kelime deÄiÅtirilmedi',oneChange:'Yazım denetimi tamamlandı: Bir kelime deÄiÅtirildi',manyChanges:'Yazım denetimi tamamlandı: %1 kelime deÄiÅtirildi',ieSpellDownload:'Yazım denetimi yüklenmemiÅ. Åimdi yüklemek ister misiniz?'},smiley:{toolbar:'İfade',title:'İfade Ekle',options:'İfade Seçenekleri'},elementsPath:{eleLabel:'Elementlerin yolu',eleTitle:'%1 element'},numberedlist:'Numaralı Liste',bulletedlist:'Simgeli Liste',indent:'Sekme Arttır',outdent:'Sekme Azalt',justify:{left:'Sola Dayalı',center:'OrtalanmıÅ',right:'SaÄa Dayalı',block:'İki Kenara YaslanmıÅ'},blockquote:'Blok OluÅtur',clipboard:{title:'YapıÅtır',cutError:'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+X) tuÅlarını kullanın.',copyError:'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+C)
tuÅlarını kullanın.',pasteMsg:'Lütfen aÅaÄıdaki kutunun içine yapıÅtırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.',securityMsg:'Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya eriÅimine izin vermiyor. Bu pencere içine tekrar yapıÅtırmalısınız..',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:"YapıÅtırmaya çalıÅtıÄınız metin Word'den kopyalanmıÅtır. YapıÅtırmadan önce silmek istermisiniz?",toolbar:"Word'den YapıÅtır",title:"Word'den YapıÅtır",error:'YapıÅtırmadaki veri bilgisi hata düzelene kadar silinmeyecektir'},pasteText:{button:'Düz Metin Olarak YapıÅtır',title:'Düz Metin Olarak YapıÅtır'},templates:{button:'Åablonlar',title:'İçerik Åablonları',options:'Åablon Seçenekleri',insertOption:'Mevcut içerik ile deÄiÅtir',selectPromptMsg:'Düzenleyicide açmak için lütfen bir Åablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.
):',emptyListMsg:'(Belirli bir Åablon seçilmedi)'},showBlocks:'Blokları Göster',stylesCombo:{label:'Biçem',panelTitle:'Stilleri Düzenliyor',panelTitle1:'Blok Stilleri',panelTitle2:'Inline Stilleri',panelTitle3:'Nesne Stilleri'},format:{label:'Biçim',panelTitle:'Biçim',tag_p:'Normal',tag_pre:'Biçimli',tag_address:'Adres',tag_h1:'BaÅlık 1',tag_h2:'BaÅlık 2',tag_h3:'BaÅlık 3',tag_h4:'BaÅlık 4',tag_h5:'BaÅlık 5',tag_h6:'BaÅlık 6',tag_div:'Paragraf (DIV)'},div:{title:'Div İçeriÄi OluÅtur',toolbar:'Div İçeriÄi OluÅtur',cssClassInputLabel:'Stilltipi Sınıfı',styleSelectLabel:'Stil',IdInputLabel:'Id',languageCodeInputLabel:' Dil Kodu',inlineStyleInputLabel:'Inline Stili',advisoryTitleInputLabel:'Tavsiye BaÅlıÄı',langDirLabel:'Dil Yönü',langDirLTRLabel:'Soldan saÄa (LTR)',langDirRTLLabel:'SaÄdan sola (RTL)',edit:'Div Düzenle',remove:'Div Kaldır'},font:{label:'Yazı Türü',voiceLabel:'Font',panelTitle:'Yazı Türü'},fontSize:{label:'Boyut',vo
iceLabel:'Font Size',panelTitle:'Boyut'},colorButton:{textColorTitle:'Yazı Rengi',bgColorTitle:'Arka Renk',panelTitle:'Renkler',auto:'Otomatik',more:'DiÄer renkler...'},colors:{'000':'Siyah',800000:'Kestane','8B4513':'Koyu Kahverengi','2F4F4F':'Koyu KurÅuni Gri','008080':'Teal','000080':'Mavi','4B0082':'Ãivit Mavisi',696969:'Silik Gri',B22222:'AteÅ TuÄlası',A52A2A:'Kahverengi',DAA520:'Altun Sırık','006400':'Koyu YeÅil','40E0D0':'Turkuaz','0000CD':'Orta Mavi',800080:'Pembe',808080:'Gri',F00:'Kırmızı',FF8C00:'Koyu Portakal',FFD700:'Altın','008000':'YeÅil','0FF':'Ciyan','00F':'Mavi',EE82EE:'MenekÅe',A9A9A9:'Koyu Gri',FFA07A:'Açık Sarımsı',FFA500:'Portakal',FFFF00:'Sarı','00FF00':'Açık YeÅil',AFEEEE:'Sönük Turkuaz',ADD8E6:'Açık Mavi',DDA0DD:'Mor',D3D3D3:'Açık Gri',FFF0F5:'Eflatun Pembe',FAEBD7:'Antik Beyaz',FFFFE0:'Açık Sarı',F0FFF0:'Balsarısı',F0FFFF:'Gök Mavisi',F0F8FF:'Reha Mavi',E6E6FA:'Eflatun',FFF:'Beyaz'},scayt:{title:'GirmiÅ olduÄunu
z kelime denetimi',opera_title:'Opera tarafından desteklenmemektedir',enable:'SCAYT etkinleÅtir',disable:'SCAYT pasifleÅtir',about:'SCAYT hakkında',toggle:'SCAYT deÄiÅtir',options:'Seçenekler',langs:'Diller',moreSuggestions:'Daha fazla öneri',ignore:'Yoksay',ignoreAll:'Tümünü Yoksay',addWord:'Kelime Ekle',emptyDic:'Sözlük adı boÅ olamaz.',optionsTab:'Seçenekler',allCaps:'Tüm büyük küçük kelimeleri yoksay',ignoreDomainNames:'Domain adlarını yoksay',mixedCase:'KarıÅık büyüklük ile Sözcükler yoksay',mixedWithDigits:'Sayılarla Kelimeler yoksay',languagesTab:'Diller',dictionariesTab:'Sözlükler',dic_field_name:'Sözlük adı',dic_create:'OluÅtur',dic_restore:'Geri al',dic_delete:'Sil',dic_rename:'Yeniden adlandır',dic_info:"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To
store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type it's name and click the Restore button.",aboutTab:'Hakkında'},about:{title:'CKEditor Hakkında',dlgTitle:'CKEditor Hakkında',moreInfo:'Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:',copy:'Copyright © $1. Tüm hakları saklıdır.'},maximize:'Büyült',minimize:'Küçült',fakeobjects:{anchor:'BaÄlantı',flash:'Flash Animasyonu',div:'Sayfa Kesimi',unknown:'Bilinmeyen Nesne'},resize:'Boyutlandırmak için sürükle',colordialog:{title:'Renk seç',options:'Renk Seçenekleri',highlight:'İÅaretle',selected:'SeçilmiÅ',clear:'Temizle'},toolbarCollapse:"Toolbar'ı topla",toolbarExpand:"Toolbar'ı aç",bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['tr']={"dir":"ltr","editor":"Zengin Metin Editörü","common":{"editorHelp":"Yardım için ALT 0 tuÅuna basın","browseServer":"Sunucuyu Gez","url":"URL","protocol":"Protokol","upload":"KarÅıya Yükle","uploadSubmit":"Sunucuya Yolla","image":"Resim","flash":"Flash","form":"Form","checkbox":"Onay Kutusu","radio":"Seçenek DüÄmesi","textField":"Metin GiriÅi","textarea":"Ãok Satırlı Metin","hiddenField":"Gizli Veri","button":"DüÄme","select":"Seçim Menüsü","imageButton":"Resimli DüÄme","notSet":"<tanımlanmamıÅ>","id":"Kimlik","name":"Ad","langDir":"Dil Yönü","langDirLtr":"Soldan SaÄa (LTR)","langDirRtl":"SaÄdan Sola (RTL)","langCode":"Dil Kodlaması","longDescr":"Uzun Tanımlı URL","cssClass":"Biçem Sayfası Sınıfları","advisoryTitle":"DanıÅma BaÅlıÄı","cssStyle":"Biçem","ok":"Tamam","cancel":"İptal","close":"Kapat","preview":"Ãn gösterim","resize":"Boyutlandırmak için sürükle","generalTab":"Genel","advancedTab":"GeliÅmiÅ
","validateNumberFailed":"Bu deÄer sayı deÄildir.","confirmNewPage":"İceriÄiniz kayıt edilmediÄinden dolayı kaybolacaktır. Yeni bir sayfa yüklemek istediÄinize eminsiniz?","confirmCancel":"Bazı seçenekler deÄiÅmiÅtir. Dialog penceresini kapatmak istediÄinize eminmisiniz?","options":"Seçenekler","target":"Hedef","targetNew":"Yeni Pencere (_blank)","targetTop":"Enüst Pencere (_top)","targetSelf":"Aynı Pencere (_self)","targetParent":"Ana Pencere (_parent)","langDirLTR":"Soldan SaÄa (LTR)","langDirRTL":"SaÄdan Sola (RTL)","styles":"Stil","cssClasses":"Stil sayfası Sınıfı","width":"GeniÅlik","height":"Yükseklik","align":"Hizalama","alignLeft":"Sol","alignRight":"SaÄ","alignCenter":"Merkez","alignTop":"Tepe","alignMiddle":"Orta","alignBottom":"Alt","invalidValue":"Geçersiz deÄer.","invalidHeight":"Yükseklik sayı olmalıdır.","invalidWidth":"GeniÅlik bir sayı olmalıdır.","invalidCssLength":"BelirttiÄiniz sayı \"%1\" alanı için pozitif bir
sayı CSS birim deÄeri olmalıdır (px, %, in, cm, mm, em, ex, pt, veya pc).","invalidHtmlLength":"BelirttiÄiniz sayı \"%1\" alanı için pozitif bir sayı HTML birim deÄeri olmalıdır (px veya %).","invalidInlineStyle":"Noktalı virgülle ayrılmıÅ: \"deÄer adı,\" inline stil için belirtilen deÄer biçiminde bir veya daha fazla dizilerden oluÅmalıdır.","cssLengthTooltip":"Pikseller için bir numara girin veya geçerli bir CSS numarası (px, %, in, cm, mm, em, ex, pt, veya pc).","unavailable":"%1<span class=\"cke_accessibility\">, hazır deÄildir</span>"},"about":{"copy":"Copyright © $1. Tüm hakları saklıdır.","dlgTitle":"CKEditor Hakkında","help":"Yardım için $1 kontrol edin.","moreInfo":"Lisanslama hakkında daha fazla bilgi almak için lütfen sitemizi ziyaret edin:","title":"CKEditor Hakkında","userGuide":"CKEditor Kullanıcı Kılavuzu"},"basicstyles":{"bold":"Kalın","italic":"İtalik","strike":"Ãstü Ãizgili","subscript":"Alt Simge","sup
erscript":"Ãst Simge","underline":"Altı Ãizgili"},"bidi":{"ltr":"Metin yönü soldan saÄa","rtl":"Metin yönü saÄdan sola"},"blockquote":{"toolbar":"Blok OluÅtur"},"clipboard":{"copy":"Kopyala","copyError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kopyalama iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+C) tuÅlarını kullanın.","cut":"Kes","cutError":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin otomatik kesme iÅlemine izin vermiyor. İÅlem için (Ctrl/Cmd+X) tuÅlarını kullanın.","paste":"YapıÅtır","pasteArea":"YapıÅtırma Alanı","pasteMsg":"Lütfen aÅaÄıdaki kutunun içine yapıÅtırın. (<STRONG>Ctrl/Cmd+V</STRONG>) ve <STRONG>Tamam</STRONG> butonunu tıklayın.","securityMsg":"Gezgin yazılımınızın güvenlik ayarları düzenleyicinin direkt olarak panoya eriÅimine izin vermiyor. Bu pencere içine tekrar yapıÅtırmalısınız..","title":"YapıÅtır"},"colorbutton":{"auto":"Otomatik","bgColor
Title":"Arka Renk","colors":{"000":"Siyah","800000":"Kestane","8B4513":"Koyu Kahverengi","2F4F4F":"Koyu KurÅuni Gri","008080":"Teal","000080":"Mavi","4B0082":"Ãivit Mavisi","696969":"Silik Gri","B22222":"AteÅ TuÄlası","A52A2A":"Kahverengi","DAA520":"Altun Sırık","006400":"Koyu YeÅil","40E0D0":"Turkuaz","0000CD":"Orta Mavi","800080":"Pembe","808080":"Gri","F00":"Kırmızı","FF8C00":"Koyu Portakal","FFD700":"Altın","008000":"YeÅil","0FF":"Ciyan","00F":"Mavi","EE82EE":"MenekÅe","A9A9A9":"Koyu Gri","FFA07A":"Açık Sarımsı","FFA500":"Portakal","FFFF00":"Sarı","00FF00":"Açık YeÅil","AFEEEE":"Sönük Turkuaz","ADD8E6":"Açık Mavi","DDA0DD":"Mor","D3D3D3":"Açık Gri","FFF0F5":"Eflatun Pembe","FAEBD7":"Antik Beyaz","FFFFE0":"Açık Sarı","F0FFF0":"Balsarısı","F0FFFF":"Gök Mavisi","F0F8FF":"Reha Mavi","E6E6FA":"Eflatun","FFF":"Beyaz"},"more":"DiÄer renkler...","panelTitle":"Renkler","textColorTitle":"Yazı Rengi"},"colordialog":{"clear":"Temizle","highlight":
"İÅaretle","options":"Renk Seçenekleri","selected":"SeçilmiÅ","title":"Renk seç"},"templates":{"button":"Åablonlar","emptyListMsg":"(Belirli bir Åablon seçilmedi)","insertOption":"Mevcut içerik ile deÄiÅtir","options":"Åablon Seçenekleri","selectPromptMsg":"Düzenleyicide açmak için lütfen bir Åablon seçin.<br>(hali hazırdaki içerik kaybolacaktır.):","title":"İçerik Åablonları"},"contextmenu":{"options":"İçerik Menüsü Seçenekleri"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Tavsiye BaÅlıÄı","cssClassInputLabel":"Stilltipi Sınıfı","edit":"Div Düzenle","inlineStyleInputLabel":"Inline Stili","langDirLTRLabel":"Soldan saÄa (LTR)","langDirLabel":"Dil Yönü","langDirRTLLabel":"SaÄdan sola (RTL)","languageCodeInputLabel":" Dil Kodu","remove":"Div Kaldır","styleSelectLabel":"Stil","title":"Div İçeriÄi OluÅtur","toolbar":"Div İçeriÄi OluÅtur"},"toolbar":{"toolbarCollapse":"Araç çubuklarını topla","toolbarExpand":"Araç
çubuklarını aç","toolbarGroups":{"document":"Belge","clipboard":"Pano/Geri al","editing":"Düzenleme","forms":"Formlar","basicstyles":"Temel Stiller","paragraph":"Paragraf","links":"BaÄlantılar","insert":"Ekle","styles":"Stiller","colors":"Renkler","tools":"Araçlar"},"toolbars":"Araç çubukları Editörü"},"elementspath":{"eleLabel":"Elementlerin yolu","eleTitle":"%1 elementi"},"list":{"bulletedlist":"Simgeli Liste","numberedlist":"Numaralı Liste"},"indent":{"indent":"Sekme Arttır","outdent":"Sekme Azalt"},"find":{"find":"Bul","findOptions":"Seçenekleri Bul","findWhat":"Aranan:","matchCase":"Büyük/küçük harf duyarlı","matchCyclic":"EÅleÅen döngü","matchWord":"Kelimenin tamamı uysun","notFoundMsg":"Belirtilen yazı bulunamadı.","replace":"DeÄiÅtir","replaceAll":"Tümünü DeÄiÅtir","replaceSuccessMsg":"%1 bulunanlardan deÄiÅtirildi.","replaceWith":"Bununla deÄiÅtir:","title":"Bul ve DeÄiÅtir"},"fakeobjects":{"anchor":"BaÄlantı","flash":"Fl
ash Animasyonu","hiddenfield":"Gizli Alan","iframe":"IFrame","unknown":"Bilinmeyen Nesne"},"flash":{"access":"Kod İzni","accessAlways":"Herzaman","accessNever":"Asla","accessSameDomain":"Aynı domain","alignAbsBottom":"Tam Altı","alignAbsMiddle":"Tam Ortası","alignBaseline":"Taban Ãizgisi","alignTextTop":"Yazı Tepeye","bgcolor":"Arka Renk","chkFull":"Tam ekrana İzinver","chkLoop":"Döngü","chkMenu":"Flash Menüsünü Kullan","chkPlay":"Otomatik Oynat","flashvars":"Flash DeÄerleri","hSpace":"Yatay BoÅluk","properties":"Flash Ãzellikleri","propertiesTab":"Ãzellikler","quality":"Kalite","qualityAutoHigh":"Otomatik Yükseklik","qualityAutoLow":"Otomatik DüÅüklük","qualityBest":"En iyi","qualityHigh":"Yüksek","qualityLow":"DüÅük","qualityMedium":"Orta","scale":"Boyutlandır","scaleAll":"Hepsini Göster","scaleFit":"Tam SıÄdır","scaleNoBorder":"Kenar Yok","title":"Flash Ãzellikleri","vSpace":"Dikey BoÅluk","validateHSpace":"HSpace sayı olmalıdır.","valid
ateSrc":"Lütfen köprü URL'sini yazın","validateVSpace":"VSpace sayı olmalıdır.","windowMode":"Pencere modu","windowModeOpaque":"Opak","windowModeTransparent":"Åeffaf","windowModeWindow":"Pencere"},"font":{"fontSize":{"label":"Boyut","voiceLabel":"Font Size","panelTitle":"Boyut"},"label":"Yazı Türü","panelTitle":"Yazı Türü","voiceLabel":"Font"},"forms":{"button":{"title":"DüÄme Ãzellikleri","text":"Metin (DeÄer)","type":"Tip","typeBtn":"DüÄme","typeSbm":"Gönder","typeRst":"Sıfırla"},"checkboxAndRadio":{"checkboxTitle":"Onay Kutusu Ãzellikleri","radioTitle":"Seçenek DüÄmesi Ãzellikleri","value":"DeÄer","selected":"Seçili"},"form":{"title":"Form Ãzellikleri","menu":"Form Ãzellikleri","action":"İÅlem","method":"Yöntem","encoding":"Kodlama"},"hidden":{"title":"Gizli Veri Ãzellikleri","name":"Ad","value":"DeÄer"},"select":{"title":"Seçim Menüsü Ãzellikleri","selectInfo":"Bilgi","opAvail":"Mevcut Seçenekler","value":"DeÄer","size":"Boyut",
"lines":"satır","chkMulti":"Ãoklu seçime izin ver","opText":"Metin","opValue":"DeÄer","btnAdd":"Ekle","btnModify":"Düzenle","btnUp":"Yukarı","btnDown":"AÅaÄı","btnSetValue":"Seçili deÄer olarak ata","btnDelete":"Sil"},"textarea":{"title":"Ãok Satırlı Metin Ãzellikleri","cols":"Sütunlar","rows":"Satırlar"},"textfield":{"title":"Metin GiriÅi Ãzellikleri","name":"Ad","value":"DeÄer","charWidth":"Karakter GeniÅliÄi","maxChars":"En Fazla Karakter","type":"Tür","typeText":"Metin","typePass":"Åifre","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Biçim","panelTitle":"Biçim","tag_address":"Adres","tag_div":"Paragraf (DIV)","tag_h1":"BaÅlık 1","tag_h2":"BaÅlık 2","tag_h3":"BaÅlık 3","tag_h4":"BaÅlık 4","tag_h5":"BaÅlık 5","tag_h6":"BaÅlık 6","tag_p":"Normal","tag_pre":"Biçimli"},"horizontalrule":{"toolbar":"Yatay Satır Ekle"},"iframe":{"border":"Ãerceve sınırlarını göster","noUrl
":"Lütfen IFrame köprü (URL) baÄlantısını yazın","scrolling":"Kaydırma çubuklarını aktif et","title":"IFrame Ãzellikleri","toolbar":"IFrame"},"image":{"alertUrl":"Lütfen resmin URL'sini yazınız","alt":"Alternatif Yazı","border":"Kenar","btnUpload":"Sunucuya Yolla","button2Img":"Seçili resim butonunu basit resime çevirmek istermisiniz?","hSpace":"Yatay BoÅluk","img2Button":"Seçili olan resimi, resimli butona çevirmek istermisiniz?","infoTab":"Resim Bilgisi","linkTab":"Köprü","lockRatio":"Oranı Kilitle","menu":"Resim Ãzellikleri","resetSize":"Boyutu BaÅa Döndür","title":"Resim Ãzellikleri","titleButton":"Resimli DüÄme Ãzellikleri","upload":"KarÅıya Yükle","urlMissing":"Resmin URL kaynaÄı eksiktir.","vSpace":"Dikey BoÅluk","validateBorder":"Ãerçeve tam sayı olmalıdır.","validateHSpace":"HSpace tam sayı olmalıdır.","validateVSpace":"VSpace tam sayı olmalıdır."},"smiley":{"options":"İfade Seçenekleri","title":"İfade Ekle","tool
bar":"İfade"},"justify":{"block":"İki Kenara YaslanmıÅ","center":"OrtalanmıÅ","left":"Sola Dayalı","right":"SaÄa Dayalı"},"link":{"acccessKey":"EriÅim TuÅu","advanced":"GeliÅmiÅ","advisoryContentType":"DanıÅma İçerik Türü","advisoryTitle":"DanıÅma BaÅlıÄı","anchor":{"toolbar":"BaÄlantı Ekle/Düzenle","menu":"BaÄlantı Ãzellikleri","title":"BaÄlantı Ãzellikleri","name":"BaÄlantı Adı","errorName":"Lütfen baÄlantı için ad giriniz","remove":"BaÄlantıyı Kaldır"},"anchorId":"Eleman Kimlik Numarası ile","anchorName":"BaÄlantı Adı ile","charset":"BaÄlı Kaynak Karakter Gurubu","cssClasses":"Biçem Sayfası Sınıfları","emailAddress":"E-Posta Adresi","emailBody":"İleti Gövdesi","emailSubject":"İleti Konusu","id":"Id","info":"Link Bilgisi","langCode":"Dil Yönü","langDir":"Dil Yönü","langDirLTR":"Soldan SaÄa (LTR)","langDirRTL":"SaÄdan Sola (RTL)","menu":"Link Düzenle","name":"Ad","noAnchors":"(Bu belgede hiç çapa yok)","noE
mail":"Lütfen E-posta adresini yazın","noUrl":"Lütfen Link URL'sini yazın","other":"<diÄer>","popupDependent":"BaÄımlı (Netscape)","popupFeatures":"Yeni Açılan Pencere Ãzellikleri","popupFullScreen":"Tam Ekran (IE)","popupLeft":"Sola Göre Konum","popupLocationBar":"Yer ÃubuÄu","popupMenuBar":"Menü ÃubuÄu","popupResizable":"Resizable","popupScrollBars":"Kaydırma Ãubukları","popupStatusBar":"Durum ÃubuÄu","popupToolbar":"Araç ÃubuÄu","popupTop":"Yukarıya Göre Konum","rel":"İliÅki","selectAnchor":"BaÄlantı Seç","styles":"Biçem","tabIndex":"Sekme İndeksi","target":"Hedef","targetFrame":"<çerçeve>","targetFrameName":"Hedef Ãerçeve Adı","targetPopup":"<yeni açılan pencere>","targetPopupName":"Yeni Açılan Pencere Adı","title":"Link","toAnchor":"Bu sayfada çapa","toEmail":"E-Posta","toUrl":"URL","toolbar":"Link Ekle/Düzenle","type":"Link Türü","unlink":"Köprü Kaldır","upload":"KarÅıya Yükle"},"liststyle":{"armenian":"Ermenice say
ılandırma","bulletedTitle":"Simgeli Liste Ãzellikleri","circle":"Daire","decimal":"Ondalık (1, 2, 3, vs.)","decimalLeadingZero":"BaÅı sıfırlı ondalık (01, 02, 03, vs.)","disc":"Disk","georgian":"Gürcüce numaralandırma (an, ban, gan, vs.)","lowerAlpha":"Küçük Alpha (a, b, c, d, e, vs.)","lowerGreek":"Küçük Greek (alpha, beta, gamma, vs.)","lowerRoman":"Küçük Roman (i, ii, iii, iv, v, vs.)","none":"Yok","notset":"<ayarlanmamıÅ>","numberedTitle":"SayılandırılmıŠListe Ãzellikleri","square":"Kare","start":"BaÅla","type":"Tipi","upperAlpha":"Büyük Alpha (A, B, C, D, E, vs.)","upperRoman":"Büyük Roman (I, II, III, IV, V, vs.)","validateStartNumber":"Liste baÅlangıcı tam sayı olmalıdır."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Büyült","minimize":"Küçült"},"newpage":{"toolbar":"Yeni Sayfa"},"pagebreak":{"alt":"Sayfa Sonu","toolbar":"Sayfa Sonu Ekle"},"pastetext":{"button":"Düz Metin Olarak YapıÅtır","ti
tle":"Düz Metin Olarak YapıÅtır"},"pastefromword":{"confirmCleanup":"YapıÅtırmaya çalıÅtıÄınız metin Word'den kopyalanmıÅtır. YapıÅtırmadan önce silmek istermisiniz?","error":"YapıÅtırmadaki veri bilgisi hata düzelene kadar silinmeyecektir","title":"Word'den YapıÅtır","toolbar":"Word'den YapıÅtır"},"preview":{"preview":"Ãn İzleme"},"print":{"toolbar":"Yazdır"},"removeformat":{"toolbar":"Biçimi Kaldır"},"save":{"toolbar":"Kaydet"},"selectall":{"toolbar":"Tümünü Seç"},"showblocks":{"toolbar":"Blokları Göster"},"sourcearea":{"toolbar":"Kaynak"},"specialchar":{"options":"Ãzel Karakter Seçenekleri","title":"Ãzel Karakter Seç","toolbar":"Ãzel Karakter Ekle"},"scayt":{"about":"SCAYT'ı hakkında","aboutTab":"Hakkında","addWord":"Kelime Ekle","allCaps":"Tüm büyük küçük kelimeleri yoksay","dic_create":"OluÅtur","dic_delete":"Sil","dic_field_name":"Sözlük adı","dic_info":"BaÅlangıçta Kullanıcı SözlüÄü bir çerezde sakl
anır. Ancak, Ãerezler boyutu sınırlıdır. Kullanıcı SözlüÄü, çerezin içinde saklanamayacaÄı bir noktada, bizim sunucularımızın içindeki sözlükte saklanabilir. Bizim sunucu üzerinde kiÅisel Sözlük saklamanız için, SözlüÄe bir ad belirtmelisiniz. EÄer zaten bir saklı Sözlük varsa, lütfen adını yazın ve Geri Yükle düÄmesini tıklayın.","dic_rename":"Yeniden adlandır","dic_restore":"Geri al","dictionariesTab":"Sözlükler","disable":"SCAYT'ı pasifleÅtir","emptyDic":"Sözlük adı boÅ olamaz.","enable":"SCAYT'ı etkinleÅtir","ignore":"Yoksay","ignoreAll":"Tümünü Yoksay","ignoreDomainNames":"Domain adlarını yoksay","langs":"Diller","languagesTab":"Diller","mixedCase":"KarıÅık büyüklük ile Sözcükler yoksay","mixedWithDigits":"Sayılarla Kelimeler yoksay","moreSuggestions":"Daha fazla öneri","opera_title":"Opera tarafından desteklenmemektedir","options":"Seçenekler","optionsTab":"Seçenekler","title":"GirmiÅ olduÄunuz
kelime denetimi","toggle":"SCAYT'ı deÄiÅtir","noSuggestions":"No suggestion"},"stylescombo":{"label":"Biçem","panelTitle":"Stilleri Düzenliyor","panelTitle1":"Blok Stilleri","panelTitle2":"Inline Stilleri","panelTitle3":"Nesne Stilleri"},"table":{"border":"Kenar KalınlıÄı","caption":"BaÅlık","cell":{"menu":"Hücre","insertBefore":"Hücre Ekle - Ãnce","insertAfter":"Hücre Ekle - Sonra","deleteCell":"Hücre Sil","merge":"Hücreleri BirleÅtir","mergeRight":"BirleÅtir - SaÄdaki İle ","mergeDown":"BirleÅtir - AÅaÄıdaki İle ","splitHorizontal":"Hücreyi Yatay Böl","splitVertical":"Hücreyi Dikey Böl","title":"Hücre Ãzellikleri","cellType":"Hücre Tipi","rowSpan":"Satırlar Mesafesi (Span)","colSpan":"Sütünlar Mesafesi (Span)","wordWrap":"Kelime Kaydırma","hAlign":"DüÅey Hizalama","vAlign":"YataÅ Hizalama","alignBaseline":"Tabana","bgColor":"Arkaplan Rengi","borderColor":"Ãerçeve Rengi","data":"Veri","header":"BaÅlık","yes":"Evet","no":"Hayır","
invalidWidth":"Hücre geniÅliÄi sayı olmalıdır.","invalidHeight":"Hücre yüksekliÄi sayı olmalıdır.","invalidRowSpan":"Satırların mesafesi tam sayı olmalıdır.","invalidColSpan":"Sütünların mesafesi tam sayı olmalıdır.","chooseColor":"Seçiniz"},"cellPad":"Izgara yazı arası","cellSpace":"Izgara kalınlıÄı","column":{"menu":"Sütun","insertBefore":"Kolon Ekle - Ãnce","insertAfter":"Kolon Ekle - Sonra","deleteColumn":"Sütun Sil"},"columns":"Sütunlar","deleteTable":"Tabloyu Sil","headers":"BaÅlıklar","headersBoth":"Her İkisi","headersColumn":"İlk Sütun","headersNone":"Yok","headersRow":"İlk Satır","invalidBorder":"Ãerceve büyüklüklüÄü sayı olmalıdır.","invalidCellPadding":"Hücre aralıÄı (padding) sayı olmalıdır.","invalidCellSpacing":"Hücre boÅluÄu (spacing) sayı olmalıdır.","invalidCols":"Sütün sayısı 0 sayısından büyük olmalıdır.","invalidHeight":"Tablo yüksekliÄi sayı olmalıdır.","invalidRows":"Satır s
ayısı 0 sayısından büyük olmalıdır.","invalidWidth":"Tablo geniÅliÄi sayı olmalıdır.","menu":"Tablo Ãzellikleri","row":{"menu":"Satır","insertBefore":"Satır Ekle - Ãnce","insertAfter":"Satır Ekle - Sonra","deleteRow":"Satır Sil"},"rows":"Satırlar","summary":"Ãzet","title":"Tablo Ãzellikleri","toolbar":"Tablo","widthPc":"yüzde","widthPx":"piksel","widthUnit":"geniÅlik birimi"},"undo":{"redo":"Tekrarla","undo":"Geri Al"},"wsc":{"btnIgnore":"Yoksay","btnIgnoreAll":"Tümünü Yoksay","btnReplace":"DeÄiÅtir","btnReplaceAll":"Tümünü DeÄiÅtir","btnUndo":"Geri Al","changeTo":"Åuna deÄiÅtir:","errorLoading":"Uygulamada yüklerken hata oluÅtu: %s.","ieSpellDownload":"Yazım denetimi yüklenmemiÅ. Åimdi yüklemek ister misiniz?","manyChanges":"Yazım denetimi tamamlandı: %1 kelime deÄiÅtirildi","noChanges":"Yazım denetimi tamamlandı: Hiçbir kelime deÄiÅtirilmedi","noMispell":"Yazım denetimi tamamlandı: YanlıŠyazıma rastlanmadı","noSug
gestions":"- Ãneri Yok -","notAvailable":"Ãzügünüz, bu servis Åuanda hizmet dıÅıdır.","notInDic":"Sözlükte Yok","oneChange":"Yazım denetimi tamamlandı: Bir kelime deÄiÅtirildi","progress":"Yazım denetimi iÅlemde...","title":"Yazımı Denetle","toolbar":"Yazım Denetimi"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/ug.js b/share/static/RichText/lang/ug.js
new file mode 100644
index 0000000..0d0578d
--- /dev/null
+++ b/share/static/RichText/lang/ug.js
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.lang['ug']={"dir":"rtl","editor":"تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ","common":{"editorHelp":"ALT+0 ÙÙ Ø¨ÛØ³ÙÙ¾ ÙØ§Ø±Ø¯ÛÙ
ÙÙ ÙÛØ±ÛÚ","browseServer":"ÙÛØ±Ø³ÙØªÙØ´ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙر","url":"Ø¦ÛØ³ÙÙ Ú¾ÛØ¬Ø¬Ûت","protocol":"ÙÛÙÙØ´ÙÙ
","upload":"ÙÛÙÙÛ","uploadSubmit":"Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرغا ÙÛÙÙÛ","image":"Ø³ÛØ±Ûت","flash":"Flash","form":"Ø¬ÛØ¯ÛÛÙ","checkbox":"ÙÛÙ¾ تاÙÙØ§Ø´ راÙ
ÙÙØ³Ù","radio":"ÙÛÙÙÛ ØªØ§ÙÙØ§Ø´ تÙÙ¾ÚÙØ³Ù","textField":"ÙÛÙÙÛ ÙÛØ± تÛÙÙØ³Øª","textarea":"ÙÛÙ¾ ÙÛØ± تÛÙÙØ³Øª","hiddenField":"ÙÙØ´ÛرÛÙ Ø¯Ø§Ø¦ÙØ±Û","button":"تÙÙ¾ÚØ§","select":"ØªÙØ²ÙÙ
/ØªÙØ²ÙÙ
ÙÙÙ","imageButton":"Ø³ÛØ±Ûت Ø¯Ø§Ø¦ÙØ±Û","notSet":"â¹ØªÛÚØ´ÛÙÙ
ÙÚ¯ÛÙâº","id":"ID","name":"ئات","langDir":"تÙÙ ÙÛÙÙÙÙØ´Ù","langDirLtr":"سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)","langDirRtl":"ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)","langCode":"تÙÙ ÙÙØ¯Ù","longDescr":"تÛپسÙÙÙÙ ÚÛØ´ÛÙØ¯Ûر
ÛØ´ Ø¦Ø§Ø¯Ø±ÛØ³Ù","cssClass":"Ø¦ÛØ³ÙÛØ¨ Ø®ÙÙÙÙÙÚ Ø¦Ø§ØªÙ","advisoryTitle":"Ù
Ø§ÛØ²Û","cssStyle":"ÙÛØ± ئÙÚÙØ¯ÙÙÙ Ø¦ÛØ³ÙÛØ¨Ù","ok":"Ø¬ÛØ²Ù
ÙÛ","cancel":"ÛØ§Ø² ÙÛÚ","close":"ØªØ§ÙØ§","preview":"Ø¦Ø§ÙØ¯ÙÙ ÙÛØ²Ûت","resize":"ÚÙÚÙÛÙÙÙÙ Ø¦ÛØ²Ú¯Ûرت","generalTab":"Ø¦Ø§Ø¯ÛØªØªÙÙÙ","advancedTab":"ئاÙÙÙ","validateNumberFailed":"سا٠پÙÚÙÙ
ÙØ¯Ø§ ÙÙØ±Ú¯ÛØ²ÛØ´ Ø²ÛØ±Ûر","confirmNewPage":"ÙÛÛÛØªØªÙÙÙ Ù¾ÛØªÛÙ Ù
ÛØ²Ù
ÛÙ٠ساÙÙØ§ÙÙ
ÙØ¯ÙØ ÙÛÚÙ Ù¾ÛØªÛÙ ÙÛØ±Ø§Ù
Ø³ÙØ²Ø","confirmCancel":"ÙÙØ³Ù
ÛÙ Ø¦ÛØ²Ú¯ÛØ±ØªÙØ´ ساÙÙØ§ÙÙ
ÙØ¯ÙØ Ø¨Û Ø³ÛØ²ÙÛØ´ÙÛÙÙ ØªØ§ÙØ§Ù
Ø³ÙØ²Ø","options":"تاÙÙØ§ÙÙ
ا","target":"ÙÙØ´Ø§Ù ÙÛØ²ÙÛÙ","targetNew":"ÙÛÚÙ ÙÛØ²ÙÛÙ (_blank)","targetTop":"Ù¾ÛØªÛÙ Ø¨ÛØª (_top)","targetSelf":"Ù
ÛØ²ÙÛØ± ÙÛØ²ÙÛÙ (_self)","targetParent":"ئاتا ÙÛØ²ÙÛÙ (_parent)","langDirLTR":"سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)","langDirRTL":"ئÙÚ
دÙ٠سÙÙØºØ§ (RTL)","styles":"Ø¦ÛØ³ÙÛØ¨Ùار","cssClasses":"Ø¦ÛØ³ÙÛØ¨ Ø®ÙÙÙÙØ±Ù","width":"ÙÛÚÙÙÙ","height":"ئÛÚ¯ÙØ²ÙÙÙ","align":"ØªÙØºØ±ÙÙÙÙÙØ´Ù","alignLeft":"سÙÙ","alignRight":"ئÙÚ","alignCenter":"Ø¦ÙØªØªÛرا","alignTop":"Ø¦ÛØ³ØªÙ","alignMiddle":"Ø¦ÙØªØªÛرا","alignBottom":"ئاستÙ","invalidValue":"Invalid value.","invalidHeight":"ئÛÚ¯ÙØ²ÙÙÙ ÚÙÙÛÙ
رÛÙÛÙ
Ù¾ÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù Ø²ÛØ±Ûر","invalidWidth":"ÙÛÚÙÙÙ ÚÙÙÛÙ
رÛÙÛÙ
Ù¾ÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù Ø²ÛØ±Ûر","invalidCssLength":"Ø¨Û Ø³ÛØ² بÛÙÙÙÙ ÚÙÙÛÙ
Ù
ÛÛØ§Ù¾Ù٠بÙÙØºØ§Ù CSS Ø¦ÛØ²ÛÙÙÛÙ ÙÙÙ
Ù
ÙØªÙ بÙÙÛØ´Ù Ø²ÛØ±ÛØ±Ø Ø¨ÙØ±ÙÙÙÙ (px, %, in, cm, mm, em, ex, pt ÙØ§ÙÙ pc)","invalidHtmlLength":"Ø¨Û Ø³ÛØ² بÛÙÙÙÙ ÚÙÙÛÙ
Ø¨ÙØ±ÙÙÙ
Û HTML Ø¦ÛØ²ÛÙÙÛÙ ÙÙÙ
Ù
ÙØªÙ بÙÙÛØ´Ù ÙÛØ±ÛÙ. Ø¦ÛØ² ئÙÚÙÚ¯Û Ø¦Ø§ÙÙØ¯ÙØºØ§Ù Ø¨ÙØ±ÙÙÙ (px ÙØ§ÙÙ %)","invalidInlineStyl
e":"ئÙÚÙÙ Ø¨Ø§ØºÙØ§ÙÙ
ا Ø¦ÛØ³ÙÛØ¨Ù ÚÙÙÛÙ
ÚÛÙÙØªÙÙÙ Ù¾ÛØ´ بÙÙÛÙ Ø¦Ø§ÙØ±ÙÙØºØ§Ù Ø¨ÙØ± ÙØ§ÙÙ ÙÛÙ¾ «خاسÙÙ٠ئاتÙ:خاسÙÙÙ ÙÙÙ
Ù
ÙØªÙ» Ù¾ÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù ÙØ§Ø²ÙÙ
","cssLengthTooltip":"Ø¨Û Ø³ÛØ² بÛÙÙÙÙ Ø¨ÙØ±ÙÙÙ
Û CSS Ø¦ÛØ²ÛÙÙÛÙ ÙÙÙ
Ù
ÙØªÙ بÙÙÛØ´Ù ÙÛØ±ÛÙ. Ø¦ÛØ² ئÙÚÙÚ¯Û Ø¦Ø§ÙÙØ¯ÙØºØ§Ù Ø¨ÙØ±ÙÙÙ (px, %, in, cm, mm, em, ex, pt ÙØ§ÙÙ pc)","unavailable":"%1<span class=\\\\\"cke_accessibility\\\\\">Ø Ø¦ÙØ´ÙÛØªÙÙÙ٠بÙÙÙ
Ø§ÙØ¯Û</span>"},"about":{"copy":"Copyright © $1. ÙÛØ´Ø± Ú¾ÙÙÛÙÙØºØ§ ئÙÚ¯Û","dlgTitle":"CKEditor Ú¾ÛÙÙÙØ¯Û","help":"$1 Ù٠زÙÙØ§Ø±Ûت ÙÙÙÙÙ¾ ÙØ§Ø±Ø¯ÛÙ
Ú¯Û Ø¦ÛØ±ÙØ´ÙÚ","moreInfo":"ØªÙØ± ØªÛØ±Ø§ÙÙÙ
ÙØ²Ù٠زÙÙØ§Ø±Ûت ÙÙÙÙÙ¾ ÙÛÙÙØ´ÙÙ
Ú¯Û Ø¦Ø§Ø¦ÙØª ØªÛØ®ÙÙ
Û ÙÛÙ¾ ئÛÚÛØ±ØºØ§ Ø¦ÛØ±ÙØ´ÙÚ","title":"CKEditor Ú¾ÛÙÙÙØ¯Û","userGuide":"CKEditor Ø¦ÙØ´ÙÛØªÙÛÚÙ ÙÙÙÙØ§ÙÙ
ÙØ³Ù
"},"basicstyles":{"bold":"تÙÙ
","italic":"ÙØ§ÙتÛ","strike":"ئÛÚÛØ±ÛØ´ Ø³ÙØ²ÙÙÙ","subscript":"تÛÛÛ٠ئÙÙØ¯ÛÙØ³","superscript":"ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙØ³","underline":"Ø¦Ø§Ø³ØªÙ Ø³ÙØ²ÙÙ"},"bidi":{"ltr":"تÛÙÙØ³Øª ÙÛÙÙÙÙØ´Ù سÙÙØ¯Ù٠ئÙÚØºØ§","rtl":"تÛÙÙØ³Øª ÙÛÙÙÙÙØ´Ù ئÙÚØ¯Ù٠سÙÙØºØ§"},"blockquote":{"toolbar":"بÛÙÛÙ ÙÛÙÙÙ"},"clipboard":{"copy":"ÙÛØ´Ø± Ú¾ÙÙÛÙÙØºØ§ ئÙÚ¯Û Ø¨ÛÙÚ¯ÙØ³Ù","copyError":"ØªÙØ± ÙÛØ±Ú¯ÛÚÙØ²ÙÙÚ Ø¨ÙØ®ÛØªÛØ±ÙÙ٠تÛÚØ´ÙÙ٠تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚÙÙÚ ÙÛÚÛØ± Ù
ÛØ´ØºÛÙØ§ØªÙÙÙ Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ Ø¦ÙØ¬Ø±Ø§ ÙÙÙÙØ´Ùغا ÙÙÙ ÙÙÙÙ
Ø§ÙØ¯ÛØ Ú¾ÛØ±Ù¾ØªØ§Ø®ØªØ§ ØªÛØ² ÙÛÙÛÙ¾ÙØ§ (Ctrl/Cmd+C) ئارÙÙÙÙ٠تاÙ
اÙ
ÙØ§Ú","cut":"ÙÛØ³","cutError":"ØªÙØ± ÙÛØ±Ú¯ÛÚÙØ²ÙÙÚ Ø¨ÙØ®ÛØªÛØ±ÙÙ٠تÛÚØ´ÙÙ٠تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚÙÙÚ ÙÛØ³ Ù
ÛØ´ØºÛÙØ§ØªÙÙÙ Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ Ø¦ÙØ¬Ø±Ø§ ÙÙÙÙØ´Ùغا ÙÙÙ ÙÙ
ÙÙ
Ø§ÙØ¯ÛØ Ú¾ÛØ±Ù¾ØªØ§Ø®ØªØ§ ØªÛØ² ÙÛÙÛÙ¾ÙØ§ (Ctrl/Cmd+X) ئارÙÙÙÙ٠تاÙ
اÙ
ÙØ§Ú","paste":"ÚØ§Ù¾Ùا","pasteArea":"ÚØ§Ù¾Ùاش Ø¯Ø§Ø¦ÙØ±ÙسÙ","pasteMsg":"Ú¾ÛØ±Ù¾ØªØ§Ø®ØªØ§ ØªÛØ² ÙÛÙÛÙ¾ÙØ§ (<STRONG>Ctrl/Cmd+V</STRONG>) ÙÙ Ø¦ÙØ´ÙÙØªÙÙ¾ Ù
ÛØ²Ù
ÛÙÙ٠تÛÛÛÙØ¯ÙÙ٠راÙ
ÙÙØºØ§ ÙÛÚÛØ±ÛÚØ Ø¦Ø§ÙØ¯ÙÙ <STRONG>Ø¬ÛØ²Ù
ÙÛ</STRONG>ÙÙ Ø¨ÛØ³ÙÚ","securityMsg":"ØªÙØ±ÙÛØ±Ú¯ÛÚÙØ²ÙÙÚ Ø¨ÙØ®ÛØªÛØ±ÙÙ٠تÛÚØ´ÙÙ٠سÛÛÛØ¨ÙدÙÙ Ø¨Û ØªÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ ÚØ§Ù¾Ùاش ØªØ§Ø®ØªÙØ³ÙدÙÙÙ Ù
ÛØ²Ù
ÛÙÙ٠بÙÛØ§Ø³ØªÛ زÙÙØ§Ø±Ûت ÙÙÙØ§ÙÙ
Ø§ÙØ¯ÛØ Ø¨Û ÙÛØ²ÙÛÙØªÛ ÙØ§Ùتا Ø¨ÙØ± ÙÛØªÙÙ
ÚØ§Ù¾ÙÙØ´ÙÚÙØ² ÙÛØ±ÛÙ.","title":"ÚØ§Ù¾Ùا"},"colorbutton":{"auto":"Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ","bgColorTitle":"تÛÚ¯ÙÙ٠رÛÚÚ¯Ù","colors":{"000":"ÙØ§Ø±Ø§","800000":"ÙÙØ²ØºÛÚ Ø³ÛØ±ÙÙ","8B4513":"تÙÙ ÙÙÚÛØ±","2F4F4F":"ÙØ§Ø±Ø§Ù
تÛÙ ÙÛØ´ÙÙ","008080":"ÙÛÙÛØ´ ÙÛØ´ÙÙ"
,"000080":"ÙØ§Ø±Ø§Ù
تÛÙ ÙÛÙ","4B0082":"ÙÛÙÛØ´ ÙÛÙØ±ÛÚ","696969":"ÙØ§Ø±Ø§Ù
تÛÙ ÙÛÙØ±ÛÚ","B22222":"Ø®ÙØ´ ÙÙØ²ÙÙ","A52A2A":"ÙÙÚÛØ±","DAA520":"Ø¦Ø§ÙØªÛÙ Ø³ÛØ±ÙÙ","006400":"تÙÙ ÙÛØ´ÙÙ","40E0D0":"ÙÛÙÛÚ ÙÛØ´ÙÙ","0000CD":"Ø¦ÙØªØªÛراھا٠ÙÛÙ","800080":"بÙÙÛپشÛ","808080":"ÙÛÙØ±ÛÚ","F00":"ÙÙØ²ÙÙ","FF8C00":"تÙÙ ÙÙØ²ØºÛÚ Ø³ÛØ±ÙÙ","FFD700":"Ø¦Ø§ÙØªÛÙ","008000":"ÙÛØ´ÙÙ","0FF":"ÙÛØ´ÙÙ ÙÛÙ","00F":"ÙÛÙ","EE82EE":"ÙÙØ²ØºÛÚ Ø¨ÙÙÛپشÛ","A9A9A9":"تÙÙ ÙÛÙØ±ÛÚ","FFA07A":"ÙØ§Ûا ÚÛÚÙÙÙ Ø³ÛØ±ÙÙ","FFA500":"ÙÙØ²ØºÛÚ Ø³ÛØ±ÙÙ","FFFF00":"Ø³ÛØ±ÙÙ","00FF00":"Lime","AFEEEE":"Ø³ÛØ³ Ú¾Ø§ÛØ§ رÛÚ","ADD8E6":"ئÙÚÛÙ ÙÛÙ","DDA0DD":"ÙÙØ²ØºÛÚ Ø¨ÙÙÛپشÛ","D3D3D3":"Ø³ÛØ³ ÙÛÙÛÚ ÙÛÙØ±ÛÚ","FFF0F5":"Ø³ÛØ³ ÙÙØ²ØºÛÚ Ø¨ÙÙÛپشÛ","FAEBD7":"Antique White","FFFFE0":"Ø³ÛØ³ Ø³ÛØ±ÙÙ","F0FFF0":"Honeydew","F0FFFF":"ئاسÙ
ا٠ÙÛÙÙ","F0F8FF"
:"Ø³ÛØ³ ÙÛÙ","E6E6FA":"Ø³ÛØ³ بÙÙÛپشÛ","FFF":"ئاÙ"},"more":"Ø¨Ø§Ø´ÙØ§ رÛÚ","panelTitle":"رÛÚ","textColorTitle":"تÛÙÙØ³Øª رÛÚÚ¯Ù"},"colordialog":{"clear":"تازÙÙØ§","highlight":"ÙÙØ±Ûت","options":"رÛÚ ØªØ§ÙÙØ§ÙÙ
ÙØ³Ù","selected":"رÛÚ ØªØ§ÙÙØ§Ú","title":"رÛÚ ØªØ§ÙÙØ§Ú"},"templates":{"button":"ÙÛÙÙÙ¾","emptyListMsg":"(ÙÛÙÙÙ¾ ÙÙÙ)","insertOption":"ÙÛÛÛØªØªÙÙÙ Ù
ÛØ²Ù
ÛÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±","options":"ÙÛÙÙÙ¾ تاÙÙØ§ÙÙ
ÙØ³Ù","selectPromptMsg":"تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚÙÙÚ Ù
ÛØ²Ù
ÛÙ ÙÛÙÙÙ¾ÙÙ٠تاÙÙØ§Ú:","title":"Ù
ÛØ²Ù
ÛÙ ÙÛÙÙÙ¾Ù"},"contextmenu":{"options":"ÙÙØ³Ùا ÙÙÙ ØªÙØ²ÙÙ
ÙÙ٠تاÙÙØ§ÙÙ
ÙØ³Ù"},"div":{"IdInputLabel":"ID","advisoryTitleInputLabel":"Ù
Ø§ÛØ²Û","cssClassInputLabel":"Ø¦ÛØ³ÙÛØ¨ تÙÙ¾ÙÙÙÚ Ø¦Ø§ØªÙ","edit":"DIV تÛÚ¾Ø±ÙØ±","inlineStyleInputLabel":"ÙÛØ± ئÙÚÙØ¯ÙÙÙ Ø¦ÛØ³ÙÛØ¨Ù","langDirLTRLabel":"سÙÙØ¯Ù٠ئÙÚØºØ§ (
LTR)","langDirLabel":"تÙÙ ÙÛÙÙÙÙØ´Ù","langDirRTLLabel":"ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)","languageCodeInputLabel":"تÙÙ ÙÙØ¯Ù","remove":"DIV ÚÙÙÙØ±ÙÛÛØª","styleSelectLabel":"Ø¦ÛØ³ÙÛØ¨","title":"DIV ÙØ§Úا ÙÛØ±","toolbar":"DIV ÙØ§Úا ÙÛØ±"},"toolbar":{"toolbarCollapse":"ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§ÙÙÙ ÙØ§ØªÙا","toolbarExpand":"ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§ÙÙÙ ÙØ§Ù","toolbarGroups":{"document":"Ù¾ÛØªÛÙ","clipboard":"ÚØ§Ù¾Ùاش ØªØ§Ø®ØªÙØ³Ù/ÙÛÙÙÛØ§Ù","editing":"تÛÚ¾Ø±ÙØ±","forms":"Ø¬ÛØ¯ÛÛÙ","basicstyles":"ئاساسÙÙ Ø¦ÛØ³ÙÛØ¨","paragraph":"ئابزاس","links":"ئÛÙØ§ÙÙ
ا","insert":"ÙÙØ³ØªÛر","styles":"Ø¦ÛØ³ÙÛØ¨","colors":"رÛÚ","tools":"ÙÙØ±Ø§Ù"},"toolbars":"ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù"},"elementspath":{"eleLabel":"ئÛÙÛÙ
ÛÙØª ÙÙÙÙ","eleTitle":"%1 ئÛÙÛÙ
ÛÙØª"},"list":{"bulletedlist":"ØªÛØ± بÛÙÚ¯Û ØªÙØ²ÙÙ
Ù","numberedlist":"ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ± ØªÙØ²ÙÙ
Ù"},"indent":{"indent":"تارØ
§Ùت","outdent":"ÙÛÚÛÙØª"},"find":{"find":"Ø¦ÙØ²Ø¯Û","findOptions":"Ø¦ÙØ²Ø¯ÛØ´ تاÙÙØ§ÙÙ
ÙØ³Ù","findWhat":"Ø¦ÙØ²Ø¯Û:","matchCase":"ÚÙÚ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ÙÙ Ù¾ÛØ±ÙÙÛÙØ¯Ûر","matchCyclic":"ئاÙÙØ§ÙÙ
ا Ù
اسÙÙØ´ÙØ´","matchWord":"Ù¾ÛØªÛÙ Ø³ÛØ² Ù
اسÙÙØ´ÙØ´","notFoundMsg":"بÛÙÚ¯ÙÙÛÙÚ¯Û٠تÛÙÙØ³ØªÙ٠تاپاÙÙ
ÙØ¯Ù","replace":"ئاÙÙ
Ø§Ø´ØªÛØ±","replaceAll":"Ú¾ÛÙ
Ù
ÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±","replaceSuccessMsg":"جÛÙ
ئ٠%1 Ø¬Ø§ÙØ¯ÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±ÛØ´ تاÙ
اÙ
ÙØ§ÙدÙ","replaceWith":"ئاÙÙ
Ø§Ø´ØªÛØ±:","title":"Ø¦ÙØ²Ø¯ÛÙ¾ ئاÙÙ
Ø§Ø´ØªÛØ±"},"fakeobjects":{"anchor":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§","flash":"Flash جاÙÙØ§ÙØ¯ÛØ±ÛÙ
","hiddenfield":"ÙÙØ´ÛرÛÙ Ø¯Ø§Ø¦ÙØ±Û","iframe":"IFrame","unknown":"ÙÙÚÛÙ ÙÛÚ"},"flash":{"access":"ÙÙÙÙØ§Ø²Ù
ا زÙÙØ§Ø±ÛتÙÛ ÙÙÙ ÙÙÙ","accessAlways":"Ú¾ÛÙ
ÙØ´Û","accessNever":"Ú¾ÛØ±Ú¯Ùز","accessSameDomain":"Ø¦ÙØ®Ø´Ø§Ø´ Ø¯Ø§Ø¦ÙØ
±ÙدÛ","alignAbsBottom":"Ù
ÛØªÙÛ٠ئاستÙ","alignAbsMiddle":"Ù
ÛØªÙÛÙ Ø¦ÙØªØªÛرا","alignBaseline":"ئاساسÙÙ Ø³ÙØ²ÙÙ","alignTextTop":"تÛÙÙØ³Øª Ø¦ÛØ³ØªÙدÛ","bgcolor":"تÛÚ¯ÙÙ٠رÛÚÚ¯Ù","chkFull":"Ù¾ÛØªÛ٠ئÛÙØ±Ø§ÙÙÙ ÙÙØ²ØºØ§Øª","chkLoop":"دÛÛØ±ÙÙ","chkMenu":"Flash ØªÙØ²ÙÙ
ÙÙÙÙÙ ÙÙØ²ØºØ§Øª","chkPlay":"Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ ÚØ§Ù","flashvars":"Flash Ø¦ÛØ²Ú¯ÛرگÛÚÙ","hSpace":"ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙ","properties":"Flash خاسÙÙÙ","propertiesTab":"خاسÙÙÙ","quality":"سÛÙ¾ÛØª","qualityAutoHigh":"ÙÛÙÙØ±Ù (ئاپتÙÙ
اتÙÙ)","qualityAutoLow":"تÛÛÛÙ (ئاپتÙÙ
اتÙÙ)","qualityBest":"ئÛÚ ÙØ§Ø®Ø´Ù","qualityHigh":"ÙÛÙÙØ±Ù","qualityLow":"تÛÛÛÙ","qualityMedium":"Ø¦ÙØªØªÛرا (ئاپتÙÙ
اتÙÙ)","scale":"ÙÙØ³Ø¨ÙتÙ","scaleAll":"Ú¾ÛÙ
Ù
ÙÙÙ ÙÛØ±Ø³Ûت","scaleFit":"ÙÛØªØ¦ÙÙ Ù
اسÙÙØ´ÙØ´","scaleNoBorder":"Ú¯ÙØ±ÛÛÙ ÙÙÙ","title":"Ù
Ø§ÛØ²Û
","vSpace":"بÙÙÙØºØ§ ئارÙÙÙÙ","validateHSpace":"ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","validateSrc":"Ø¦ÛØ³ÙÙ Ú¾ÛØ¬Ø¬Ûت Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ","validateVSpace":"بÙÙÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","windowMode":"ÙÛØ²ÙÛ٠ھاÙÙØªÙ","windowModeOpaque":"Ø®ÙØ±Û","windowModeTransparent":"Ø³ÛØ²ÛÙ","windowModeWindow":"ÙÛØ²ÙÛÙ Ú¯ÛÛØ¯ÙسÙ"},"font":{"fontSize":{"label":"ÚÙÚÙÛÙÙ","voiceLabel":"Ø®ÛØª ÚÙÚÙÛÙÙ","panelTitle":"ÚÙÚÙÛÙÙ"},"label":"Ø®ÛØª ÙÛØ³Ø®Ø§","panelTitle":"Ø®ÛØª ÙÛØ³Ø®Ø§","voiceLabel":"Ø®ÛØª ÙÛØ³Ø®Ø§"},"forms":{"button":{"title":"تÙÙ¾ÚØ§ خاسÙÙÙÙ","text":"بÛÙÚ¯Û (ÙÙÙ
Ù
ÛØª)","type":"تÙÙ¾Ù","typeBtn":"تÙÙ¾ÚØ§","typeSbm":"ØªØ§Ù¾Ø´ÛØ±","typeRst":"Ø¦ÛØ³ÙÙÚ¯Û ÙØ§ÙØªÛØ±"},"checkboxAndRadio":{"checkboxTitle":"ÙÛÙ¾ تاÙÙØ§Ø´ خاسÙÙÙÙ","radioTitle":"تا٠تاÙÙØ§Ø´ تÙÙ¾ÚØ§ خاسÙÙÙÙ","value":"تا
ÙÙÙØºØ§Ù ÙÙÙ
Ù
ÛØª","selected":"تاÙÙØ§ÙغاÙ"},"form":{"title":"Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ","menu":"Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ","action":"Ù
ÛØ´ØºÛÙØ§Øª","method":"Ø¦ÛØ³ÛÙ","encoding":"Ø¬ÛØ¯ÛÛÙ ÙÙØ¯ÙÙÙÙØ´Ù"},"hidden":{"title":"ÙÙØ´ÛرÛÙ Ø¯Ø§Ø¦ÙØ±Û خاسÙÙÙÙ","name":"ئات","value":"Ø¯ÛØ³ÙÛÙ¾ÙÙ ÙÙÙ
Ù
ÙØªÙ"},"select":{"title":"Ø¬ÛØ¯ÛÛÙ/ØªÙØ²ÙÙ
خاسÙÙÙÙ","selectInfo":"ئÛÚÛØ± تاÙÙØ§Ú","opAvail":"تاÙÙØ§Ø´ ØªÛØ±ÙÙØ±Ù","value":"ÙÙÙ
Ù
ÛØª","size":"ئÛÚ¯ÙØ²ÙÙÙÙ","lines":"ÙÛØ±","chkMulti":"ÙÛÙ¾ تاÙÙØ§Ø´ÚاÙ","opText":"تاÙÙØ§ÙÙ
ا تÛÙÙØ³ØªÙ","opValue":"تاÙÙØ§ÙÙ
ا ÙÙÙ
Ù
ÙØªÙ","btnAdd":"ÙÙØ´","btnModify":"Ø¦ÛØ²Ú¯Ûرت","btnUp":"Ø¦ÛØ³ØªÙÚ¯Û","btnDown":"Ø¦Ø§Ø³ØªÙØºØ§","btnSetValue":"Ø¯ÛØ³ÙÛÙ¾Ù٠تاÙÙØ§ÙÙ
ا ÙÙÙ
Ù
ÙØªÙÚ¯Û ØªÛÚØ´Û","btnDelete":"ئÛÚÛØ±"},"textarea":{"title":" ÙÛÙ¾ ÙÛØ±ÙÛ٠تÛÙÙØ³Øª خاسÙÙÙÙ","cols":"Ú¾ÛØ±Ù¾ ÙÛ
ÚÙÙÙÙ","rows":"ÙÛØ± ساÙÙ"},"textfield":{"title":"تا٠ÙÛØ±ÙÛ٠تÛÙÙØ³Øª خاسÙÙÙÙ","name":"ئات","value":"Ø¯ÛØ³ÙÛÙ¾ÙÙ ÙÙÙ
Ù
ÙØªÙ","charWidth":"Ú¾ÛØ±Ù¾ ÙÛÚÙÙÙÙ","maxChars":"ئÛÚ ÙÛÙ¾ Ú¾ÛØ±Ù¾ ساÙÙ","type":"تÙÙ¾Ù","typeText":"تÛÙÙØ³Øª","typePass":"ئÙÙ
","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Ù¾ÙÚÙÙ
","panelTitle":"Ù¾ÙÚÙÙ
","tag_address":"Ø¦Ø§Ø¯Ø±ÛØ³","tag_div":"ئابزاس (DIV)","tag_h1":"Ù
Ø§ÛØ²Û 1","tag_h2":"Ù
Ø§ÛØ²Û 2","tag_h3":"Ù
Ø§ÛØ²Û 3","tag_h4":"Ù
Ø§ÛØ²Û 4","tag_h5":"Ù
Ø§ÛØ²Û 5","tag_h6":"Ù
Ø§ÛØ²Û 6","tag_p":"Ø¦Ø§Ø¯ÛØªØªÙÙÙ","tag_pre":"ØªÙØ²ÙÙØºØ§Ù Ù¾ÙÚÙÙ
"},"horizontalrule":{"toolbar":"ØªÙØºØ±Ø§ Ø³ÙØ²ÙÙ ÙÙØ³ØªÛر"},"iframe":{"border":"ÙØ§ÙدÛÙ Ú¯ÙØ±ÛÛÙÙÙØ±ÙÙÙ ÙÛØ±Ø³Ûت","noUrl":"ÙØ§ÙدÛÙÙÙÚ Ø¦Ø§Ø¯Ø±ÛØ³Ù(Url)ÙÙ ÙÙØ±Ú¯ÛزÛÚ","scrolling":"دÙÙ
ÙÙÙÙ
ا Ø³ÛØ±Ú¯ÛÚÙÛ
ÙÙÙ ÙÙÙ","title":"IFrame خاسÙÙÙ","toolbar":"IFrame "},"image":{"alertUrl":"Ø³ÛØ±Ûت Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ","alt":"تÛÙÙØ³Øª ئاÙÙ
Ø§Ø´ØªÛØ±","border":"Ú¯ÙØ±ÛÛÙ ÚÙÚÙÛÙÙ","btnUpload":"Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرغا ÙÛÙÙÛ","button2Img":"ÙÛÛÛØªØªÙÙ٠تÙÙ¾ÚÙÙÙ Ø³ÛØ±ÛتÙÛ Ø¦ÛØ²Ú¯ÛرتÛÙ
Ø³ÙØ²Ø","hSpace":"ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙÙ","img2Button":"ÙÛÛÛØªØªÙÙÙ Ø³ÛØ±ÛتÙ٠تÙÙ¾ÚÙØºØ§ Ø¦ÛØ²Ú¯ÛرتÛÙ
Ø³ÙØ²Ø","infoTab":"Ø³ÛØ±Ûت","linkTab":"ئÛÙØ§ÙÙ
ا","lockRatio":"ÙÙØ³Ø¨ÛتÙÙ ÙÛÙÛÙ¾ÙØ§","menu":"Ø³ÛØ±Ûت خاسÙÙÙÙ","resetSize":"Ø¦ÛØ³ÙÙ ÚÙÚÙÛÙ","title":"Ø³ÛØ±Ûت خاسÙÙÙÙ","titleButton":"Ø³ÛØ±Ûت Ø¯Ø§Ø¦ÙØ±Û خاسÙÙÙÙ","upload":"ÙÛÙÙÛ","urlMissing":"Ø³ÛØ±ÛتÙÙÚ Ø¦ÛØ³ÙÙ Ú¾ÛØ¬Ø¬Ûت Ø¦Ø§Ø¯Ø±ÛØ³Ù ÙÛÙ
","vSpace":"بÙÙÙØºØ§ ئارÙÙÙÙÙ","validateBorder":"Ú¯ÙØ±ÛÛÙ ÚÙÚÙÛÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","validateHSpac
e":"ØªÙØºØ±ÙØ³ÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û","validateVSpace":"بÙÙÙØºØ§ ئارÙÙÙÙ ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û"},"smiley":{"options":"ÚÙØ±Ø§Ù ئÙÙ¾Ø§Ø¯Û Ø³ÙÙØ¨ÛÙÚ¯Û ØªØ§ÙÙØ§ÙÙ
ÙØ³Ù","title":"ÚÙØ±Ø§Ù ئÙÙ¾Ø§Ø¯Û Ø³ÙÙØ¨ÛÙÚ¯Û ÙÙØ³ØªÛر","toolbar":"ÚÙØ±Ø§Ù ئÙپادÛ"},"justify":{"block":"ئÙÙÙÙ ØªÛØ±ÛپتÙÙ ØªÙØºØ±ÙÙØ§","center":"Ø¦ÙØªØªÛØ±ÙØºØ§ ØªÙØºØ±ÙÙØ§","left":"سÙÙØºØ§ ØªÙØºØ±ÙÙØ§","right":"ئÙÚØºØ§ ØªÙØºØ±ÙÙØ§"},"link":{"acccessKey":"زÙÙØ§Ø±Ûت ÙÛÙÛÙ¾ÙØ§","advanced":"ئاÙÙÙ","advisoryContentType":"Ù
ÛØ²Ù
Û٠تÙÙ¾Ù","advisoryTitle":"Ù
Ø§ÛØ²Û","anchor":{"toolbar":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ÙØ³Ù ÙÙØ³ØªÛر/تÛÚ¾Ø±ÙØ±ÙÛ","menu":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ا خاسÙÙÙÙ","title":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ا خاسÙÙÙÙ","name":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئاتÙ","errorName":
"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئاتÙÙÙ ÙÙØ±Ú¯ÛزÛÚ","remove":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÚÛØ±"},"anchorId":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ID س٠بÙÙÙÚÛ","anchorName":"ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئات٠بÙÙÙÚÛ","charset":"Ú¾ÛØ±Ù¾ ÙÙØ¯ÙÙÙÙØ´Ù","cssClasses":"Ø¦ÛØ³ÙÛØ¨ Ø®ÙÙ٠ئاتÙ","emailAddress":"Ø¦Ø§Ø¯Ø±ÛØ³","emailBody":"Ù
ÛØ²Ù
ÛÙ","emailSubject":"Ù
Ø§ÛØ²Û","id":"ID","info":"ئÛÙØ§ÙÙ
ا ئÛÚÛØ±Ù","langCode":"تÙÙ ÙÙØ¯Ù","langDir":"تÙÙ ÙÛÙÙÙÙØ´Ù","langDirLTR":"سÙÙØ¯Ù٠ئÙÚØºØ§ (LTR)","langDirRTL":"ئÙÚØ¯Ù٠سÙÙØºØ§ (RTL)","menu":"ئÛÙØ§ÙÙ
ا تÛÚ¾Ø±ÙØ±","name":"ئات","noAnchors":"(Ø¨Û Ù¾ÛØªÛÙØªÛ Ø¦ÙØ´ÙÛØªÙÙÙ٠بÙÙÙØ¯Ùغا٠ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ÙÙÙ)","noEmail":"ئÛÙØ®Ûت Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ","noUrl":"ئÛÙØ§ÙÙ
ا Ø¦Ø§Ø¯Ø±ÛØ³ÙÙÙ ÙÙØ±Ú¯ÛزÛÚ","other":"â¹Ø¨Ø§Ø´Ùاâº","popupDependent":"تÛÛÛ (NS)","popupFeatures":"ÙØ§Ú
ÙÙØ´ ÙÛØ²ÙÛ٠خاسÙÙÙÙ","popupFullScreen":"Ù¾ÛØªÛ٠ئÛÙØ±Ø§Ù (IE)","popupLeft":"سÙÙ","popupLocationBar":"Ø¦Ø§Ø¯Ø±ÛØ³ Ø¨Ø§ÙØ¯Ø§Ù","popupMenuBar":"ØªÙØ²ÙÙ
ÙÙÙ Ø¨Ø§ÙØ¯Ø§Ù","popupResizable":"ÚÙÚÙÛÙÙ Ø¦ÛØ²Ú¯ÛØ±ØªÙØ´ÚاÙ","popupScrollBars":"دÙÙ
ÙÙÙÙ
ا Ø³ÛØ±Ú¯ÛÚ","popupStatusBar":"ھاÙÛØª Ø¨Ø§ÙØ¯Ø§Ù","popupToolbar":"ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù","popupTop":"ئÙÚ","rel":"باغÙÙÙÙØ´","selectAnchor":"Ø¨ÙØ± ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ تاÙÙØ§Ú","styles":"ÙÛØ± ئÙÚÙØ¯ÙÙÙ Ø¦ÛØ³ÙÛØ¨Ù","tabIndex":"Tab ØªÛØ±ØªÙÙ¾Ù","target":"ÙÙØ´Ø§Ù","targetFrame":"â¹ÙØ§ÙØ¯ÛÙâº","targetFrameName":"ÙÙØ´Ø§Ù ÙØ§ÙدÛ٠ئاتÙ","targetPopup":"â¹ÙاÚÙÙØ´ ÙÛØ²ÙÛÙâº","targetPopupName":"ÙØ§ÚÙÙØ´ ÙÛØ²ÙÛ٠ئاتÙ","title":"ئÛÙØ§ÙÙ
ا","toAnchor":"Ø¨ÛØª ئÙÚÙØ¯ÙÙÙ ÙÛÚÚ¯ÛØ±ÙÙÙ ÙÛÙØªØ§ ئÛÙØ§ÙÙ
ÙØ³Ù","toEmail":"ئÛÙØ®Ûت","toUrl":"Ø¦Ø§Ø¯Ø±ÛØ³","toolbar":"ئÛÙØ§ÙÙ
ا ÙÙ
Ø³ØªÛØ±/تÛÚ¾Ø±ÙØ±ÙÛ","type":"ئÛÙØ§ÙÙ
ا تÙÙ¾Ù","unlink":"ئÛÙØ§ÙÙ
ا بÙÙØ§Ø± ÙÙÙ","upload":"ÙÛÙÙÛ"},"liststyle":{"armenian":"ÙÛØ¯ÙÙ
ÙÙ Ø¦ÛØ±Ù
ÙÙÙÙÛ ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ±Ù Ø´ÛÙÙÙ","bulletedTitle":"ØªÛØ± بÛÙÚ¯Û ØªÙØ²ÙÙ
خاسÙÙÙÙ","circle":"Ø¨ÙØ´ ÚÛÙ
Ø¨ÛØ±","decimal":"سا٠(1, 2, 3 ÙØ§ØªØ§Ø±ÙÙÙ)","decimalLeadingZero":"ÙÛÙØ¯ÙÙ Ø¨Ø§Ø´ÙØ§Ùغا٠سا٠بÛÙÚ¯Û (01, 02, 03 ÙØ§ØªØ§Ø±ÙÙÙ)","disc":"تÙÙØ¯ÛرÛÙØºØ§Ù ÚÛÙ
Ø¨ÛØ±","georgian":"ÙÛØ¯ÙÙ
ÙÙ Ø¬ÙØ±Ø¬ÙÙÛ ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ±Ù Ø´ÛÙÙÙ (an, ban, gan ÙØ§ØªØ§Ø±ÙÙÙ)","lowerAlpha":"ئÙÙÚ¯ÙÙØ²ÚÛ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ (a, b, c, d, e ÙØ§ØªØ§Ø±ÙÙÙ)","lowerGreek":"گرÛÙÚÛ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ (alpha, beta, gamma ÙØ§ØªØ§Ø±ÙÙÙ)","lowerRoman":"ÙÙÚÙÙ Ú¾ÛØ±Ù¾ÙÙ٠رÙÙ
رÛÙÙÙ
Ù (i, ii, iii, iv, v ÙØ§ØªØ§Ø±ÙÙÙ)","none":"بÛÙÚ¯Û ÙÙÙ","notset":"â¹ØªÛÚØ´ÛÙÙ
ÙÚ¯ÛÙâº","numberedTitle":"ØªÛØ±ØªÙ
Ù¾ ÙÙÙ
ÛØ± ØªÙØ²ÙÙ
خاسÙÙÙÙ","square":"تÙÙØ¯ÛرÛÙØºØ§Ù ØªÛØª ÚØ§Ø³Ø§","start":"باشÙÙÙÙØ´ ÙÙÙ
ÛØ±Ù","type":"بÛÙÚ¯Û ØªÙÙ¾Ù","upperAlpha":"ئÙÙÚ¯ÙÙØ²ÚÛ ÚÙÚ Ú¾ÛØ±Ù¾ (A, B, C, D, E ÙØ§ØªØ§Ø±ÙÙÙ)","upperRoman":"ÚÙÚ Ú¾ÛØ±Ù¾ÙÙ٠رÙÙ
رÛÙÙÙ
Ù (I, II, III, IV, V ÙØ§ØªØ§Ø±ÙÙÙ)","validateStartNumber":"ØªÙØ²ÙÙ
باشÙÙÙÙØ´ ØªÛØ±ØªÙÙ¾ ÙÙÙ
ÛØ±Ù ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠پÙÚÙÙ
ÙØ¯Ø§ بÙÙÛØ´Ù ÙØ§Ø²ÙÙ
"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ÚÙÚØ§Ùت","minimize":"ÙÙÚÙÙÙÛØª"},"newpage":{"toolbar":"ÙÛÚÙ Ø¨ÛØª"},"pagebreak":{"alt":"Ø¨ÛØª Ø¦Ø§ÙØ±ÙغÛÚ","toolbar":"Ø¨ÛØª Ø¦Ø§ÙØ±ÙغÛÚ ÙÙØ³ØªÛر"},"pastetext":{"button":"Ù¾ÙÚÙÙ
Ù ÙÙ٠تÛÙÙØ³Øª سÛÙ¾ÙØªÙØ¯Û ÚØ§Ù¾Ùا","title":"Ù¾ÙÚÙÙ
Ù ÙÙ٠تÛÙÙØ³Øª سÛÙ¾ÙØªÙØ¯Û ÚØ§Ù¾Ùا"},"pastefromword":{"confirmCleanup":"Ø³ÙØ² ÚØ§Ù¾ÙÙÙ
اÙÚ٠بÙÙØºØ§Ù Ù
ÛØ²Ù
ÛÙ MS Word
تÙÙ ÙÛÙÚ¯ÛÙØ¯ÛÙ ÙÙÙÙØ¯ÛØ MS Word Ù¾ÙÚÙÙ
ÙÙ٠تازÙÙÙÛÛØªÙÛÙØ¯ÙÙ ÙÛÙÙÙ Ø¦Ø§ÙØ¯ÙÙ ÚØ§Ù¾ÙاÙ
Ø¯ÛØ","error":"ئÙÚÙ٠خاتاÙÙ٠سÛÛÛØ¨ÙدÙÙ ÚØ§Ù¾ÙØ§ÙØ¯Ùغا٠ساÙÙÙÙ Ù
ÛÙÛÙ
اتÙ٠تازÙÙÙÙØ§ÙÙ
Ø§ÙØ¯Û","title":"MS Word تÙÙ ÚØ§Ù¾Ùا","toolbar":"MS Word تÙÙ ÚØ§Ù¾Ùا"},"preview":{"preview":"Ø¦Ø§ÙØ¯ÙÙ ÙÛØ²Ûت"},"print":{"toolbar":"باس "},"removeformat":{"toolbar":"Ù¾ÙÚÙÙ
ÙÙ ÚÙÙÙØ±ÙÛÛØª"},"save":{"toolbar":"ساÙÙØ§"},"selectall":{"toolbar":"Ú¾ÛÙ
Ù
ÙÙ٠تاÙÙØ§"},"showblocks":{"toolbar":"بÛÙÛÙÙÙ ÙÛØ±Ø³Ûت"},"sourcearea":{"toolbar":"Ù
ÛÙØ¨Û"},"specialchar":{"options":"Ø¦Ø§ÙØ§Ú¾ÙØ¯Û Ú¾ÛØ±Ù¾ تاÙÙØ§ÙÙ
ÙØ³Ù","title":"Ø¦Ø§ÙØ§Ú¾ÙØ¯Û Ú¾ÛØ±Ù¾ تاÙÙØ§Ú","toolbar":"Ø¦Ø§ÙØ§Ú¾ÙØ¯Û Ú¾ÛØ±Ù¾ ÙÙØ³ØªÛر"},"scayt":{"about":"Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ Ú¾ÛÙÙÙØ¯Û","aboutTab":"Ú¾ÛÙÙÙØ¯Û","addWord":"Ø³ÛØ² ÙÙØ´","allCaps":"Ú
ÙÚ Ú¾ÛØ±Ù¾ØªÛ ÙÛØ²ÙÙØºØ§Ù Ú¾ÛÙ
Ù
Û Ø³ÛØ²Ú¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا","dic_create":"ÙÛØ±","dic_delete":"ئÛÚÛØ±","dic_field_name":"ÙÛØºÛت ئاتÙ","dic_info":"باشÙÙÙÙØ´ØªØ§ Ø¦ÙØ´ÙÛØªÙÛÚÙ ÙÛØºÙت٠Cookie غا ساÙÙÙÙÙØ¯Û ئÛÙ
Ù
ا Cookie ÙÙÚ Ø³ÙØºÙÙ
Ù ÚÛÙÙÙ٠بÙÙØºØ§ÚÙØ§Ø Ø¦ÙØ´ÙÛØªÙÛÚÙ ÙÛØºÙت٠ÙÛÙ¾ÙÙÙÙ¾ Cookie ÚÛÙÙÙÙ
ÙØ³ÙدÙÙ Ø¦ÛØ´ÙÙ¾ ÙÛØªÙÛÙØ¯Û ساÙÙÙØºÙÙ٠بÙÙÙ
Ø§ÙØ¯ÛØ Ø¨Û ÚØ§ØºØ¯Ø§ ÙÛØºÙتÙÚÙØ²ÙÙ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ
ÙØ²ØºØ§ ساÙÙÙØ³ÙÚÙØ² بÙÙÙØ¯Û. Ø´ÛØ®Ø³ÙÙ ÙÛØºÙتÙÚÙØ²ÙÙ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ
ÙØ²ØºØ§ ساÙÙÙÙ
اÙÚ٠بÙÙØ³ÙÚÙØ² ÙÛØºÙتÙÚÙØ²Ú¯Û ئاتتÙÙ Ø¨ÙØ±ÙÙ ÙÙÙÛÚØ ئÛÚ¯ÛØ± Ù
ÛÙØ§Ø²ÙÙ
ØªÛØ±ÙÙ
ÙØ²Ø¯Ø§ Ø³ÙØ²ÙÙÚ ÙÛØºÙتÙÚÙØ²Ø¯ÙÙ Ø¨ÙØ±Ø³Ù بÙÙØ³Ø§ ÙÛØºÛت ئاتÙÙÙ ÙÙØ±Ú¯ÛزÛÙ¾ Ø¦ÛØ³ÙÙÚ¯Û ÙØ§ÙØªÛØ± تÙÙ¾ÚÙØ³ÙÙÙ Ø¨ÛØ³ÙÚ.","dic_rename":"ئات Ø
¦ÛØ²Ú¯ÛØ±Øª","dic_restore":"Ø¦ÛØ³ÙÙÚ¯Û ÙÛÙØªÛر","dictionariesTab":"ÙÛØºÛت","disable":"Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ÙÙ ÚÛÙÙÛ","emptyDic":"ÙÛØºÛت Ø¦Ø§ØªÙ Ø¨ÙØ´ ÙØ§ÙÙ
Ø§ÙØ¯Û","enable":"Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ÙÙ ÙÙØ²ØºØ§Øª","ignore":"Ù¾ÛØ±Ûا ÙÙÙÙ
ا","ignoreAll":"Ú¾ÛÙ
Ù
ÙØ³ÙÚ¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا","ignoreDomainNames":"Ø¯Ø§Ø¦ÙØ±Û Ø¦Ø§ØªÙØºØ§ Ù¾ÛØ±Ûا ÙÙÙÙ
ا","langs":"تÙÙ","languagesTab":"تÙÙ","mixedCase":"ÚÙÚ ÙÙÚÙÙ Ú¾ÛØ±Ù¾ بÙÙÛ٠ئارÙÙØ§Ø´ ÙÛØ²ÙÙØºØ§Ù Ø³ÛØ²Ú¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا","mixedWithDigits":"سا٠بار Ø³ÛØ²Ú¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا","moreSuggestions":"ØªÛØ®ÙÙ
Û ÙÛÙ¾ ئÙÙ
ÙØ§ تÛÛØ³ÙÙÛØ³Ù","opera_title":"Opera ØªÙØ±ÙÛØ±Ú¯ÛÙÙ ÙÙÙÙÙÙ
Ø§ÙØ¯Û","options":"تاÙÙØ§ÙÙ
ا","optionsTab":"تاÙÙØ§ÙÙ
ا","title":"Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´Ûر","toggle":"Ø´ÛØ¦Ø§Ù ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ÙÙ ÛØ§ÙÙØªÙÙÙ ØªÙØ®ØªØ§Øª/ÙÙ
زغات","noSuggestions":"No suggestion"},"stylescombo":{"label":"Ø¦ÛØ³ÙÛØ¨","panelTitle":"Ø¦ÛØ³ÙÛØ¨","panelTitle1":"بÛÙÛÙ Ø¯ÛØ±ÙØ¬ÙØ³ÙدÙÙ٠ئÛÙÛÙ
ÛÙØª Ø¦ÛØ³ÙÛØ¨Ù","panelTitle2":"ئÙÚÙÙ Ø¨Ø§ØºÙØ§ÙÙ
ا ئÛÙÛÙ
ÛÙØª Ø¦ÛØ³ÙÛØ¨Ù","panelTitle3":"ÙÛÚ (Object) ئÛÙÛÙ
ÛÙØª Ø¦ÛØ³ÙÛØ¨Ù"},"table":{"border":"Ú¯ÙØ±ÛÛÙ","caption":"Ù
Ø§ÛØ²Û","cell":{"menu":"ÙØ§ØªÛÙÚÛ","insertBefore":"سÙÙØºØ§ ÙØ§ØªÛÙÚÛ ÙÙØ³ØªÛر","insertAfter":"ئÙÚØºØ§ ÙØ§ØªÛÙÚÛ ÙÙØ³ØªÛر","deleteCell":"ÙÛØªÛÙÚÛ Ø¦ÛÚÛØ±","merge":"ÙØ§ØªÛÙÚÛ Ø¨ÙØ±ÙÛØ´ØªÛر","mergeRight":"ÙØ§ØªÛÙÚÙÙ٠ئÙÚØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر","mergeDown":"ÙØ§ØªÛÙÚÙÙÙ Ø¦Ø§Ø³ØªÙØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر","splitHorizontal":"ÙØ§ØªÛÙÚÙÙÙ ØªÙØºØ±ÙØ³ÙØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر","splitVertical":"ÙØ§ØªÛÙÚÙÙ٠بÙÙÙØºØ§ Ø¨ÙØ±ÙÛØ´ØªÛر","title":"ÙØ§ØªÛÙÚÛ Ø®Ø§Ø³ÙÙÙÙ","cellType":"ÙØ§ØªÛÙÚÛ ØªÙÙ¾Ù","rowSpan":"بÙÙ
ÙØºØ§ ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù ÙÛØ± ساÙÙ","colSpan":"ØªÙØºØ±ÙØ³ÙØºØ§ ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù Ø¦ÙØ³ØªÙ٠ساÙÙ","wordWrap":"Ø¦ÛØ²ÙÛÙÙØ¯ÙÙ ÙÛØ± ÙØ§ØªÙا","hAlign":"ØªÙØºØ±ÙØ³ÙØºØ§ ØªÙØºØ±ÙÙØ§","vAlign":"بÙÙÙØºØ§ ØªÙØºØ±ÙÙØ§","alignBaseline":"ئاساسÙÙ Ø³ÙØ²ÙÙ","bgColor":"تÛÚ¯ÙÙ٠رÛÚÚ¯Ù","borderColor":"Ú¯ÙØ±ÛÛ٠رÛÚÚ¯Ù","data":"ساÙÙÙÙ Ù
ÛÙÛÙ
ات","header":"Ø¬ÛØ¯ÛÛ٠باشÙ","yes":"Ú¾ÛØ¦Û","no":"ÙØ§Ù","invalidWidth":"ÙØ§ØªÛÙÚÛ ÙÛÚÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","invalidHeight":"ÙØ§ØªÛÙÚÛ Ø¦ÛÚ¯ÙØ²ÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","invalidRowSpan":"ÙÛØ± ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û ","invalidColSpan":"Ø¦ÙØ³ØªÙÙ ÚØ§Øª Ø¦Ø§Ø±ÙØ³Ù ÚÙÙÛÙ
Ù¾ÛØªÛ٠سا٠بÙÙÙØ¯Û","chooseColor":"تاÙÙØ§Ú"},"cellPad":"ÙØ§Ù ئارÙÙÙÙ","cellSpace":"ئارÙÙÙÙ","column":{"menu":"Ø¦ÙØ³ØªÙÙ","insertBefore":"سÙÙØºØ§ Ø¦ÙØ³ØªÙÙ ÙÙØ
³ØªÛر","insertAfter":"ئÙÚØºØ§ Ø¦ÙØ³ØªÙÙ ÙÙØ³ØªÛر","deleteColumn":"Ø¦ÙØ³ØªÙ٠ئÛÚÛØ±"},"columns":"Ø¦ÙØ³ØªÙ٠ساÙÙ","deleteTable":"Ø¬ÛØ¯ÛÛ٠ئÛÚÛØ±","headers":"Ù
Ø§ÛØ²Û ÙØ§ØªÛÙÚÛ","headersBoth":"Ø¨ÙØ±ÙÙÚÙ Ø¦ÙØ³ØªÙÙ ÛÛ Ø¨ÙØ±ÙÙÚÙ ÙÛØ±","headersColumn":"Ø¨ÙØ±ÙÙÚÙ Ø¦ÙØ³ØªÙÙ","headersNone":"ÙÙÙ","headersRow":"Ø¨ÙØ±ÙÙÚÙ ÙÛØ±","invalidBorder":"Ú¯ÙØ±ÛÛ٠تÙÙ
ÙÛÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","invalidCellPadding":"ÙØ§ØªÛÙÚÙÚ¯Û ÚÙÙÛÙ
سا٠تÙÙØ¯ÛرÛÙÙØ¯Û","invalidCellSpacing":"ÙØ§ØªÛÙÚÛ Ø¦Ø§Ø±ÙÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","invalidCols":"بÛÙÚ¯ÙÙÛÙÚ¯ÛÙ ÙÛØ± ساÙÙ ÚÙÙÛÙ
ÙÛÙØ¯ÙÙ ÚÙÚ Ø¨ÙÙÙØ¯Û","invalidHeight":"Ø¬ÛØ¯ÛÛ٠ئÛÚ¯ÙØ²ÙÙÙÙ ÚÙÙÛÙ
سا٠بÙÙÙØ¯Û","invalidRows":"بÛÙÚ¯ÙÙÛÙÚ¯ÛÙ Ø¦ÙØ³ØªÙ٠ساÙÙ ÚÙÙÛÙ
ÙÛÙØ¯ÙÙ ÚÙÚ Ø¨ÙÙÙØ¯Û","invalidWidth":"Ø¬ÛØ¯ÛÛÙ ÙÛÚÙÙÙÙ ÚÙÙÛÙ
سا٠بÙ
ÙÙØ¯Û","menu":"Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ","row":{"menu":"ÙÛØ±","insertBefore":"Ø¦ÛØ³ØªÙÚ¯Û ÙÛØ± ÙÙØ³ØªÛر","insertAfter":"Ø¦Ø§Ø³ØªÙØºØ§ ÙÛØ± ÙÙØ³ØªÛر","deleteRow":"ÙÛØ± ئÛÚÛØ±"},"rows":"ÙÛØ± ساÙÙ","summary":"Ø¦ÛØ²ÛÙØ¯Û","title":"Ø¬ÛØ¯ÛÛ٠خاسÙÙÙÙ","toolbar":"Ø¬ÛØ¯ÛÛÙ","widthPc":"Ù¾ÙØ±Ø³ÛÙØª","widthPx":"Ù¾ÙÙØ³ÛÙ","widthUnit":"ÙÛÚÙÙÙ Ø¨ÙØ±ÙÙÙÙ"},"undo":{"redo":"ÙØ§ÙتÙÙØ§ ","undo":"ÙÛÙÙÛØ§Ù"},"wsc":{"btnIgnore":"Ù¾ÛØ±Ûا ÙÙÙÙ
ا","btnIgnoreAll":"Ú¾ÛÙ
Ù
ÙÚ¯Û Ù¾ÛØ±Ûا ÙÙÙÙ
ا","btnReplace":"ئاÙÙ
Ø§Ø´ØªÛØ±","btnReplaceAll":"Ú¾ÛÙ
Ù
ÙÙ٠ئاÙÙ
Ø§Ø´ØªÛØ±","btnUndo":"ÙÛÙÙÛØ§Ù","changeTo":"Ø¦ÛØ²Ú¯Ûرت","errorLoading":"ÙØ§Ø²ÙÙ
ÙÙÙ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ ÙÛÙÙÙÚ¯ÛÙØ¯Û خاتاÙÙÙ ÙÛØ±ÛÙØ¯Ù: %s.","ieSpellDownload":"ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ ÙÙØ³ØªÛرÙ
ÙØ³Ù ØªÛØ®Ù Ø¦ÙØ±ÙÙØªÙÙÙ
ÙØºØ§ÙØ Ú¾Ø§Ø²ÙØ±Ùا ÚÛØ´ÛرÛÙ
Ø³ÙØ²Ø","manyChanges":
"ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: %1 Ø³ÛØ²ÙÙ Ø¦ÛØ²Ú¯ÛرتتÙ","noChanges":"ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: Ú¾ÛÚÙØ§ÙØ¯Ø§Ù Ø³ÛØ²ÙÙ Ø¦ÛØ²Ú¯ÛرتÙ
ÙØ¯Ù","noMispell":"ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: ئÙÙ
ÙØ§ خاتاÙÙÙ٠باÙÙØ§ÙÙ
ÙØ¯Ù","noSuggestions":"-تÛÙÙÙÙ¾ ÙÙÙ-","notAvailable":"ÙÛÚÛØ±ÛÚØ Ù
ÛÙØ§Ø²ÙÙ
ÛØªÙرÙÙ ÛØ§ÙتÙÙÚÛ Ø¦ÙØ´ÙÛØªÙÙÙ٠بÙÙÙ
Ø§ÙØ¯Û","notInDic":"ÙÛØºÛØªØªÛ ÙÙÙ","oneChange":"ئÙÙ
ÙØ§ تÛÙØ´ÛØ±ÛØ´ تاÙ
اÙ
: Ø¨ÙØ± Ø³ÛØ²ÙÙ Ø¦ÛØ²Ú¯ÛرتتÙ","progress":"ئÙÙ
ÙØ§ تÛÙØ´ÛرÛÛØ§ØªÙدÛâ¦","title":"ئÙÙ
ÙØ§ تÛÙØ´Ûر","toolbar":"ئÙÙ
ÙØ§ تÛÙØ´Ûر"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/uk.js b/share/static/RichText/lang/uk.js
index 0455036..4260f5e 100644
--- a/share/static/RichText/lang/uk.js
+++ b/share/static/RichText/lang/uk.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.uk={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'ÐжеÑело',newPage:'Ðова ÑÑоÑÑнка',save:'ÐбеÑегÑи',preview:'ÐопеÑеднÑй пеÑеглÑд',cut:'ÐиÑÑзаÑи',copy:'ÐопÑÑваÑи',paste:'ÐÑÑавиÑи',print:'ÐÑÑк',underline:'ÐÑдкÑеÑлений',bold:'ÐиÑний',italic:'ÐÑÑÑив',selectAll:'ÐидÑлиÑи вÑе',removeFormat:'ÐÑибÑаÑи ÑоÑмаÑÑваннÑ',strike:'ÐакÑеÑлений',subscript:'ÐÑдÑÑдковий ÑндекÑ',superscript:'ÐадÑÑдковий индекÑ',horizontalrule:'ÐÑÑавиÑи гоÑизонÑалÑÐ½Ñ Ð»ÑнÑÑ',pagebreak:'ÐÑÑавиÑи ÑозÑивÑи ÑÑоÑÑнки',unlink:'ÐниÑиÑи поÑиланнÑ',undo:'ÐовеÑнÑÑи',redo:'ÐовÑоÑиÑи',common:{browseServer:'ÐеÑедивиÑиÑÑ Ð½Ð° ÑеÑвеÑÑ',url:'URL',protocol:'ÐÑоÑокол
',upload:'ÐакаÑаÑи',uploadSubmit:'ÐадÑÑлаÑи на ÑеÑвеÑ',image:'ÐобÑаженнÑ',flash:'Flash',form:'ФоÑма',checkbox:'Флагова кнопка',radio:'Ðнопка вибоÑÑ',textField:'ТекÑÑове поле',textarea:'ТекÑÑова облаÑÑÑ',hiddenField:'ÐÑиÑ
оване поле',button:'Ðнопка',select:'СпиÑок',imageButton:'Ðнопка Ñз зобÑаженнÑм',notSet:'<не визнаÑено>',id:'ÐденÑиÑÑкаÑоÑ',name:"Ðм'Ñ",langDir:'ÐапÑÑмок мови',langDirLtr:'ÐлÑва на пÑаво (LTR)',langDirRtl:'ÐпÑава на лÑво (RTL)',langCode:'Ðова',longDescr:'Ðовгий Ð¾Ð¿Ð¸Ñ URL',cssClass:'ÐÐ»Ð°Ñ CSS',advisoryTitle:'Ðаголовок',cssStyle:'СÑÐ¸Ð»Ñ CSS',ok:'ÐÐ',cancel:'СкаÑÑваÑи',close:'Close',preview:'Preview',generalTab:'ÐагалÑна',advancedTab:'РозÑиÑений',validateNumberFailed:'ÐнаÑÐµÐ½Ð½Ñ Ð½Ðµ Ñ ÑиÑлом.',con
firmNewPage:'ÐÑÑ Ð½Ðµ збеÑÐµÐ¶ÐµÐ½Ñ Ð·Ð¼Ñни бÑдÑÑÑ Ð²ÑÑаÑенÑ. Ðи впевненÑ, Ñо Ñ
оÑеÑе заванÑажиÑи Ð½Ð¾Ð²Ñ ÑÑоÑÑнкÑ?',confirmCancel:'ÐеÑÐºÑ Ð¾Ð¿ÑÑÑ Ð±Ñли змÑненÑ. ÐакÑиÑи вÑкно?',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, не доÑÑÑпне</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'ÐÑÑавиÑи ÑпеÑÑалÑний Ñимвол',title:'ÐбеÑÑÑÑ ÑпеÑÑалÑний Ñимвол',options:'Special Character Options'},link:{toolbar:'ÐÑÑавиÑи/РедагÑваÑи поÑиланнÑ',other:'<ÑнÑий>',menu:'ÐÑÑавиÑи поÑиланнÑ',ti
tle:'ÐоÑиланнÑ',info:'ÐнÑоÑмаÑÑÑ Ð¿Ð¾ÑиланнÑ',target:'ЦÑлÑ',upload:'ÐакаÑаÑи',advanced:'РозÑиÑений',type:'Тип поÑиланнÑ',toUrl:'URL',toAnchor:'ЯкÑÑ Ð½Ð° ÑÑ ÑÑоÑÑнкÑ',toEmail:'Ðл. поÑÑа',targetFrame:'<ÑÑейм>',targetPopup:'<ÑпливаÑÑе вÑкно>',targetFrameName:"Ðм'Ñ Ñелевого ÑÑейма",targetPopupName:"Ðм'Ñ ÑпливаÑÑого вÑкна",popupFeatures:'ÐлаÑÑивоÑÑÑ ÑпливаÑÑого вÑкна',popupResizable:'ÐаÑÑÑабоване',popupStatusBar:'СÑÑока ÑÑаÑÑÑÑ',popupLocationBar:'ÐÐ°Ð½ÐµÐ»Ñ Ð»Ð¾ÐºÐ°ÑÑÑ',popupToolbar:'ÐÐ°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв',popupMenuBar:'ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ',popupFullScreen:'Ðовний екÑан (IE)',popupScrollBars:'ÐолоÑи пÑокÑÑÑки',popupDependent:'Ðалежний (Netscape)',popupWidth:'ШиÑина',popupLeft:'ÐозиÑÑÑ Ð·Ð»Ñва',popupHeight:'ÐиÑоÑа',pop
upTop:'ÐозиÑÑÑ Ð·Ð²ÐµÑÑ
Ñ',id:'ÐденÑиÑÑкаÑÐ¾Ñ (Id)',langDir:'ÐапÑÑмок мови',langDirLTR:'ÐлÑва на пÑаво (LTR)',langDirRTL:'ÐпÑава на лÑво (RTL)',acccessKey:'ÐаÑÑÑа клавÑÑа',name:"Ðм'Ñ",langCode:'ÐапÑÑмок мови',tabIndex:'ÐоÑлÑдовнÑÑÑÑ Ð¿ÐµÑеÑ
одÑ',advisoryTitle:'Ðаголовок',advisoryContentType:'Тип вмÑÑÑÑ',cssClasses:'ÐÐ»Ð°Ñ CSS',charset:'ÐодиÑовка',styles:'СÑÐ¸Ð»Ñ CSS',selectAnchor:'ÐбеÑÑÑÑ ÑкÑÑ',anchorName:"Ðа Ñм'Ñм ÑкоÑÑ",anchorId:'Ðа ÑденÑиÑÑкаÑоÑом елеменÑа',emailAddress:'ÐдÑеÑа ел. поÑÑи',emailSubject:'Тема лиÑÑа',emailBody:'ТÑло повÑдомленнÑ',noAnchors:'(ÐÐµÐ¼Ð°Ñ ÑкоÑÑв доÑÑÑпниÑ
в ÑÑÐ¾Ð¼Ñ Ð´Ð¾ÐºÑменÑÑ)',noUrl:'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ URL поÑиланнÑ',noEmail:'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ Ð°Ð´ÑеÑ
Ñл. поÑÑÑ'},anchor:{toolbar:'ÐÑÑавиÑи/РедагÑваÑи ÑкÑÑ',menu:'ÐлаÑÑивоÑÑÑ ÑкоÑÑ',title:'ÐлаÑÑивоÑÑÑ ÑкоÑÑ',name:"Ðм'Ñ ÑкоÑÑ",errorName:"ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ Ñм'Ñ ÑкоÑÑ"},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1, 2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'ÐнайÑи Ñ Ð·Ð°Ð¼Ñ
ниÑи',find:'ÐоÑÑк',replace:'ÐамÑна',findWhat:'ШÑкаÑи:',replaceWith:'ÐамÑниÑи на:',notFoundMsg:'Ðказаний ÑекÑÑ Ð½Ðµ знайдений.',matchCase:'ÐÑаÑ
овÑваÑи ÑегÑÑÑÑ',matchWord:'ÐбÑг ÑÑлиÑ
ÑлÑв',matchCyclic:'ЦиклÑÑна замÑна',replaceAll:'ÐамÑниÑи вÑе',replaceSuccessMsg:'%1 ÑпÑвпадÑнÑ(Ñ) замÑнено.'},table:{toolbar:'ТаблиÑÑ',title:'ÐлаÑÑивоÑÑÑ ÑаблиÑÑ',menu:'ÐлаÑÑивоÑÑÑ ÑаблиÑÑ',deleteTable:'ÐидалиÑи ÑаблиÑÑ',rows:'СÑÑоки',columns:'Ðолонки',border:'РозмÑÑ Ð±Ð¾ÑдÑÑа',align:'ÐиÑÑвнÑваннÑ',alignLeft:'ÐлÑва',alignCenter:'Ðо ÑенÑÑÑ',alignRight:'ÐпÑава',width:'ШиÑина',widthPx:'пÑкÑелÑв',widthPc:'вÑдÑоÑкÑв',widthUnit:'width unit',height:'ÐиÑоÑа',cellSpace:'ÐÑомÑжок (spacing)',cellPad:'ÐÑдÑÑÑп (padding)',caption:'
Ðаголовок',summary:'РезÑме',headers:'Ðаголовки',headersNone:'Ðодного',headersColumn:'ÐеÑÑа колонка',headersRow:'ÐеÑÑий ÑÑдок',headersBoth:'Ðбидва',invalidRows:'ÐÑлÑкÑÑÑÑ ÑÑдкÑв повинна бÑÑи ÑиÑлом бÑлÑÑе за 0.',invalidCols:'ÐÑлÑкÑÑÑÑ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº повинна бÑÑи ÑиÑлом бÑлÑÑе за 0.',invalidBorder:'РозмÑÑ Ð±Ð¾ÑдÑÑа повинен бÑÑи ÑиÑлом.',invalidWidth:'ШиÑина ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑиÑлом.',invalidHeight:'ÐиÑоÑа ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑиÑлом.',invalidCellSpacing:'ÐÑомÑжок (spacing) комÑÑки повинен бÑÑи ÑиÑлом.',invalidCellPadding:'ÐÑдÑÑÑп (padding) комÑÑки повинен бÑÑи ÑиÑлом.',cell:{menu:'ÐÑеÑедок',insertBefore:'ÐÑÑавиÑи комÑÑÐºÑ Ð´Ð¾',insertAfter:'ÐÑÑавиÑи комÑÑкÑ
пÑÑлÑ',deleteCell:'ÐидалиÑи комÑÑки',merge:"Ðб'ÑднаÑи комÑÑки",mergeRight:"Ðб'ÑднаÑи зпÑава",mergeDown:"Ðб'ÑднаÑи до низÑ",splitHorizontal:'РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ гоÑизонÑалÑ',splitVertical:'РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ веÑÑикалÑ',title:'ÐлаÑÑивоÑÑÑ ÐºÐ¾Ð¼ÑÑки',cellType:'Тип комÑÑки',rowSpan:'ÐбÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑдкÑв (Rows Span)',colSpan:'ÐбÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑовпÑикÑв (Columns Span)',wordWrap:'ÐвÑо згоÑÑÐ°Ð½Ð½Ñ ÑекÑÑÑ (Word Wrap)',hAlign:'ÐоÑизонÑалÑне виÑÑвнÑваннÑ',vAlign:'ÐеÑÑикалÑне виÑÑвнÑваннÑ',alignTop:'Ðо веÑÑ
Ñ',alignMiddle:'ÐоÑеÑединÑ',alignBottom:'Ðо низÑ',alignBaseline:'Ðо базовÑй лÑнÑÑ',bgColor:'ÐолÑÑ ÑонÑ',borderColor:'ÐолÑÑ Ð±Ð¾ÑдÑÑÑ',data:'ÐанÑ',header:'Ðаголовок',yes:'Так',no:'
ÐÑ',invalidWidth:'ШиÑина комÑÑки повинна бÑÑи ÑиÑлом.',invalidHeight:'ÐиÑоÑа комÑÑки повинна бÑÑи ÑиÑлом.',invalidRowSpan:'ÐÑлÑкÑÑÑÑ Ð¾Ð±ÑднÑваниÑ
ÑÑдкÑв повинна бÑÑи ÑÑлим ÑиÑлом.',invalidColSpan:'ÐÑлÑкÑÑÑÑ Ð¾Ð±ÑднÑваниÑ
ÑÑовпÑикÑв повинна бÑÑи ÑÑлим ÑиÑлом.',chooseColor:'Choose'},row:{menu:'Ð Ñдок',insertBefore:'ÐÑÑавиÑи ÑÑдок до',insertAfter:'ÐÑÑавиÑи ÑÑдок пÑÑлÑ',deleteRow:'ÐидалиÑи ÑÑÑоки'},column:{menu:'Ðолонка',insertBefore:'ÐÑÑавиÑи ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð´Ð¾',insertAfter:'ÐÑÑавиÑи ÐºÐ¾Ð»Ð¾Ð½ÐºÑ Ð¿ÑÑлÑ',deleteColumn:'ÐидалиÑи колонки'}},button:{title:'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸',text:'ТекÑÑ (ÐнаÑеннÑ)',type:'Тип',typeBtn:'Ðнопка',typeSbm:'ÐÑдпÑавиÑи',typeRst:'СкинÑÑи'},checkboxAn
dRadio:{checkboxTitle:'ÐлаÑÑивоÑÑÑ ÑÐ»Ð°Ð³Ð¾Ð²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸',radioTitle:'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ вибоÑÑ',value:'ÐнаÑеннÑ',selected:'ÐбÑана'},form:{title:'ÐлаÑÑивоÑÑÑ ÑоÑми',menu:'ÐлаÑÑивоÑÑÑ ÑоÑми',action:'ÐÑÑ',method:'ÐеÑод',encoding:'ÐодÑваннÑ'},select:{title:'ÐлаÑÑивоÑÑÑ ÑпиÑкÑ',selectInfo:'ÐнÑо',opAvail:'ÐоÑÑÑÐ¿Ð½Ñ Ð²Ð°ÑÑанÑи',value:'ÐнаÑеннÑ',size:'РозмÑÑ',lines:'лÑнÑÑ',chkMulti:'ÐозволиÑи обÑÐ°Ð½Ð½Ñ Ð´ÐµÐºÑлÑкоÑ
позиÑÑй',opText:'ТекÑÑ',opValue:'ÐнаÑеннÑ',btnAdd:'ÐобавиÑи',btnModify:'ÐмÑниÑи',btnUp:'ÐгоÑÑ',btnDown:'Ðниз',btnSetValue:'ÐÑÑановиÑи Ñк вибÑане знаÑеннÑ',btnDelete:'ÐидалиÑи'},textarea:{title:'ÐлаÑÑивоÑÑÑ ÑекÑÑÐ¾Ð²Ð¾Ñ Ð¾Ð±Ð»Ð°ÑÑÑ',cols:'Ðолонки',rows:'СÑÑоки'},textfield:{title:'ÐлаÑ
ÑивоÑÑÑ ÑекÑÑового полÑ',name:"Ðм'Ñ",value:'ÐнаÑеннÑ',charWidth:'ШиÑина',maxChars:'ÐакÑ. кÑл-ÑÑ ÑимволÑв',type:'Тип',typeText:'ТекÑÑ',typePass:'ÐаÑолÑ'},hidden:{title:'ÐлаÑÑивоÑÑÑ Ð¿ÑиÑ
ованого полÑ',name:"Ðм'Ñ",value:'ÐнаÑеннÑ'},image:{title:'ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ',titleButton:'ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñз зобÑаженнÑм',menu:'ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ',infoTab:'ÐнÑоÑмаÑÑÑ Ð¿Ñо изобÑажении',btnUpload:'ÐадÑÑлаÑи на ÑеÑвеÑ',upload:'ÐакаÑаÑи',alt:'ÐлÑÑеÑнаÑивний ÑекÑÑ',width:'ШиÑина',height:'ÐиÑоÑа',lockRatio:'ÐбеÑегÑи пÑопоÑÑÑÑ',unlockRatio:'Unlock Ratio',resetSize:'СкинÑÑи ÑозмÑÑ',border:'ÐоÑдÑÑ',hSpace:'ÐоÑизонÑалÑний вÑдÑÑÑп',vSpace:'ÐеÑÑикалÑний вÑдÑÑÑп',al
ign:'ÐиÑÑвнÑваннÑ',alignLeft:'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',alignRight:'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',alertUrl:'ÐÑÐ´Ñ Ð»Ð°Ñка, введÑÑÑ URL зобÑаженнÑ',linkTab:'ÐоÑиланнÑ',button2Img:'Ðи Ñ
оÑеÑе пеÑеÑвоÑиÑи обÑÐ°Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÑ-зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° пÑоÑÑе зобÑаженнÑ?',img2Button:'Ðи Ñ
оÑеÑе пеÑеÑвоÑиÑи обÑане зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° кнопкÑ-зобÑаженнÑ?',urlMissing:'Image source URL is missing.',validateWidth:'Width must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'ÐлаÑÑивоÑÑÑ Flash',propertiesTab:'ÐлаÑÑивоÑÑÑ',title:'ÐлаÑÑивоÑÑÑ Flash',chkPlay:'ÐвÑо пÑогÑаваннÑ',chkLoop:'ÐаÑиклиÑи',chkMenu:'ÐозволиÑи м
ÐµÐ½Ñ Flash',chkFull:'ÐозволиÑи повноекÑанний пеÑеглÑд',scale:'ÐаÑÑÑаб',scaleAll:'ÐоказаÑи вÑÑ',scaleNoBorder:'Ðез Ñамки',scaleFit:'ÐÑйÑний ÑозмÑÑ',access:'ÐоÑÑÑп до ÑкÑипÑа',accessAlways:'Ðавжди',accessSameDomain:'Ð Ñого ж домена',accessNever:'ÐÑколи',align:'ÐиÑÑвнÑваннÑ',alignLeft:'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',alignAbsBottom:'ÐÐ±Ñ Ð¿Ð¾ низÑ',alignAbsMiddle:'ÐÐ±Ñ Ð¿Ð¾ ÑеÑединÑ',alignBaseline:'Ðо базовÑй лÑнÑÑ',alignBottom:'Ðо низÑ',alignMiddle:'Ðо ÑеÑединÑ',alignRight:'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',alignTextTop:'ТекÑÑ Ð½Ð° веÑÑ
Ñ',alignTop:'Ðо веÑÑ
Ñ',quality:'ЯкÑÑÑÑ',qualityBest:'ÐÑдмÑнна',qualityHigh:'ÐиÑока',qualityAutoHigh:'ÐвÑо вÑдмÑнна',qualityMedium:'СеÑеднÑ',qualityAutoLow:'ÐвÑо низÑка',qualityLow:'ÐизÑка',windowModeWindow:'ÐÑкно
',windowModeOpaque:'ÐепÑозоÑÑÑÑÑ (Opaque)',windowModeTransparent:'ÐÑозоÑÑÑÑÑ (Transparent)',windowMode:'Режим вÑкна',flashvars:'ÐмÑÐ½Ð½Ñ Flash',bgcolor:'ÐолÑÑ ÑонÑ',width:'ШиÑина',height:'ÐиÑоÑа',hSpace:'ÐоÑизонÑалÑний вÑдÑÑÑп',vSpace:'ÐеÑÑикалÑний вÑдÑÑÑп',validateSrc:'ÐÑÐ´Ñ Ð»Ð°Ñка, занеÑÑÑÑ URL поÑиланнÑ',validateWidth:'ШиÑина повинна бÑÑи ÑиÑлом.',validateHeight:'ÐиÑоÑа повинна бÑÑи ÑиÑлом.',validateHSpace:'HSpace повинна бÑÑи ÑиÑлом.',validateVSpace:'VSpace повинна бÑÑи ÑиÑлом.'},spellCheck:{toolbar:'ÐеÑевÑÑиÑи оÑÑогÑаÑÑÑ',title:'ÐеÑевÑÑка оÑÑогÑаÑÑÑ',notAvailable:'ÐибаÑÑе, але ÑеÑвÑÑ Ð½Ð°ÑÐ°Ð·Ñ Ð½ÐµÐ´Ð¾ÑÑÑпний.',errorLoading:'Ðомилка заванÑÐ°Ð¶ÐµÐ½Ð½Ñ : %s.',notInDic:'Ðе Ð¼Ð°Ñ Ð² ÑловниÐ
ºÑ',changeTo:'ÐамÑниÑи на',btnIgnore:'ÐгноÑÑваÑи',btnIgnoreAll:'ÐгноÑÑваÑи вÑе',btnReplace:'ÐамÑниÑи',btnReplaceAll:'ÐамÑниÑи вÑе',btnUndo:'Ðазад',noSuggestions:'- ÐÐµÐ¼Ð°Ñ Ð¿ÑипÑÑÐµÐ½Ñ -',progress:'ÐиконÑÑÑÑÑÑ Ð¿ÐµÑевÑÑка оÑÑогÑаÑÑÑ...',noMispell:'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: помилок не знайдено',noChanges:'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: жодне Ñлово не змÑнено',oneChange:'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: змÑнено одно Ñлово',manyChanges:'ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: 1% ÑлÑв змÑнено',ieSpellDownload:'ÐодÑÐ»Ñ Ð¿ÐµÑевÑÑки оÑÑогÑаÑÑÑ Ð½Ðµ вÑÑановлено. ÐажаÑÑн заванÑажиÑи його заÑаз?'},smiley:{toolbar:'Смайлик',title:'ÐÑÑавиÑи ÑмайÐ
»Ð¸Ðº',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 елеменÑ'},numberedlist:'ÐÑмеÑований ÑпиÑок',bulletedlist:'ÐаÑкований ÑпиÑок',indent:'ÐбÑлÑÑиÑи вÑдÑÑÑп',outdent:'ÐменÑиÑи вÑдÑÑÑп',justify:{left:'Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ',center:'Ðо ÑенÑÑÑ',right:'Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ',block:'Ðо ÑиÑинÑ'},blockquote:'ЦиÑаÑа',clipboard:{title:'ÐÑÑавиÑи',cutError:'ÐаÑÑÑойки безпеки ваÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ Ð²Ð¸ÑÑзÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+X).',copyError:'ÐаÑÑÑойки безпеки ваÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ ÐºÐ¾Ð¿ÑÑванÐ
½Ñ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+C).',pasteMsg:'ÐÑÐ´Ñ Ð»Ð°Ñка, вÑÑавÑе з бÑÑеÑа обмÑÐ½Ñ Ð² ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ, коÑиÑÑÑÑÑиÑÑ ÐºÐ¾Ð¼Ð±ÑнаÑÑÑÑ ÐºÐ»Ð°Ð²ÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>) Ñа наÑиÑнÑÑÑ <STRONG>OK</STRONG>.',securityMsg:"РедакÑÐ¾Ñ Ð½Ðµ може оÑÑимаÑи пÑÑмий доÑÑÑп до бÑÑеÑÑ Ð¾Ð±Ð¼ÑÐ½Ñ Ñ Ð·Ð²'ÑÐ·ÐºÑ Ð· налаÑÑÑваннÑми ваÑого бÑаÑзеÑа. Ðам поÑÑÑбно вÑÑавиÑи ÑнÑоÑмаÑÑÑ Ð¿Ð¾Ð²ÑоÑно в Ñе вÑкно.",pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'ТекÑÑ, Ñо ви Ñ
оÑеÑе вÑÑавиÑи, ÑÑ
ожий на копÑйований з Word. Ðи Ñ
оÑеÑе оÑиÑÑиÑи його пеÑед вÑÑавкоÑ?',toolbar:'ÐÑÑавиÑи з Word',title:'ÐÑÑавиÑи з Word',error:'It was not possible to clean up the pas
ted data due to an internal error'},pasteText:{button:'ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ',title:'ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ'},templates:{button:'Шаблони',title:'Шаблони змÑÑÑÑ',options:'Template Options',insertOption:'ÐамÑниÑи поÑоÑний вмÑÑÑ',selectPromptMsg:'ÐбеÑÑÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, Ñаблон Ð´Ð»Ñ Ð²ÑдкÑиÑÑÑ Ð² ÑедакÑоÑÑ<br>(поÑоÑний змÑÑÑ Ð±Ñде вÑÑаÑено):',emptyListMsg:'(Ðе визнаÑено жодного ÑаблонÑ)'},showBlocks:'ÐоказÑваÑи блоки',stylesCombo:{label:'СÑилÑ',panelTitle:'Formatting Styles',panelTitle1:'Block ÑÑилÑ',panelTitle2:'Inline ÑÑилÑ',panelTitle3:'Object ÑÑилÑ'},format:{label:'ФоÑмаÑÑваннÑ',panelTitle:'ФоÑмаÑÑваннÑ',tag_p:'ÐоÑмалÑний',tag_pre:'ФоÑмаÑований',tag_address:'ÐдÑеÑа',tag_h1:'Ðаголовок 1',tag_h2:'Ðаголовок 2',ta
g_h3:'Ðаголовок 3',tag_h4:'Ðаголовок 4',tag_h5:'Ðаголовок 5',tag_h6:'Ðаголовок 6',tag_div:'ÐоÑмалÑний (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'ШÑиÑÑ',voiceLabel:'ШÑиÑÑ',panelTitle:'ШÑиÑÑ'},fontSize:{label:'РозмÑÑ',voiceLabel:'РозмÑÑ ÑÑиÑÑа',panelTitle:'РозмÑÑ'},colorButton:{textColorTitle:'ÐолÑÑ ÑекÑÑÑ',bgColorTitle:'ÐолÑÑ ÑонÑ',panelTitle:'Colors',auto:'ÐвÑомаÑиÑний',more:'ÐолÑоÑи...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate
Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'ÐеÑеÑÑÑка оÑÑогÑаÑÑÑ Ð¿Ð¾ мÑÑÑ Ð½Ð°Ð±Ð¾ÑÑ',opera_title:'Not supported by Opera',enable:'ÐклÑÑиÑи SCAYT',disable:'ÐÑдклÑÑиÑи SCAYT',about:'ÐÑо SCAYT',toggle:'ÐеÑемкнÑÑи SCAYT',options:'ÐпÑÑÑ',langs:'Ðови',moreSuggestions:'ÐÑлÑÑе пÑопозиÑÑй',igno
re:'ÐгноÑÑваÑи',ignoreAll:'ÐгноÑÑваÑи вÑÑ',addWord:'ÐодаÑи Ñлово',emptyDic:'Ðазва Ñловника повинна бÑÑи заповнена.',optionsTab:'ÐпÑÑÑ',allCaps:'Ignore All-Caps Words',ignoreDomainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'Ðови',dictionariesTab:'Словники',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'ÐÑо'},about:{title:
'ÐÑо CKEditor',dlgTitle:'ÐÑо CKEditor',moreInfo:'Щодо ÑнÑоÑмаÑÑÑ Ð· лÑÑензÑÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÑÑайÑе до наÑого ÑайÑÑ:',copy:'Copyright © $1. ÐÑÑ Ð¿Ñава заÑÑеÑежено.'},maximize:'ÐакÑимÑзÑваÑи',minimize:'Minimize',fakeobjects:{anchor:'ЯкÑÑ',flash:'Flash анÑмаÑÑÑ',div:'РозÑив ÑÑоÑÑнки',unknown:'ÐевÑдомий об`ÑкÑ'},resize:'ÐеÑеÑÑвайÑе Ð´Ð»Ñ Ð·Ð¼Ñни ÑозмÑÑÑ',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['uk']={"dir":"ltr","editor":"ТекÑÑовий ÑедакÑоÑ","common":{"editorHelp":"наÑиÑнÑÑÑ ALT 0 Ð´Ð»Ñ Ð´Ð¾Ð²Ñдки","browseServer":"ÐглÑд","url":"URL","protocol":"ÐÑоÑокол","upload":"ÐадÑÑлаÑи","uploadSubmit":"ÐадÑÑлаÑи на ÑеÑвеÑ","image":"ÐобÑаженнÑ","flash":"Flash","form":"ФоÑма","checkbox":"ÐалоÑка","radio":"Ðнопка вибоÑÑ","textField":"ТекÑÑове поле","textarea":"ТекÑÑова облаÑÑÑ","hiddenField":"ÐÑиÑ
оване поле","button":"Ðнопка","select":"СпиÑок","imageButton":"Ðнопка Ñз зобÑаженнÑм","notSet":"<не визнаÑено>","id":"ÐденÑиÑÑкаÑоÑ","name":"Ðм'Ñ","langDir":"ÐапÑÑмок мови","langDirLtr":"ÐлÑва напÑаво (LTR)","langDirRtl":"СпÑава налÑво (RTL)","langCode":"Ðод мови","longDescr":"Ðовгий Ð¾Ð¿Ð¸Ñ URL","cssClass":"ÐÐ»Ð°Ñ CSS","ad
visoryTitle":"Ðаголовок","cssStyle":"СÑÐ¸Ð»Ñ CSS","ok":"ÐÐ","cancel":"СкаÑÑваÑи","close":"ÐакÑиÑи","preview":"ÐопеÑеднÑй пеÑеглÑд","resize":"ÐоÑÑгнÑÑÑ Ð´Ð»Ñ Ð·Ð¼Ñни ÑозмÑÑÑв","generalTab":"ÐÑновне","advancedTab":"ÐодаÑкове","validateNumberFailed":"ÐнаÑÐµÐ½Ð½Ñ Ð½Ðµ Ñ ÑÑлим ÑиÑлом.","confirmNewPage":"ÐÑÑ Ð½ÐµÐ·Ð±ÐµÑÐµÐ¶ÐµÐ½Ñ Ð·Ð¼Ñни бÑдÑÑÑ Ð²ÑÑаÑенÑ. Ðи впевненÑ, Ñо Ñ
оÑеÑе заванÑажиÑи Ð½Ð¾Ð²Ñ ÑÑоÑÑнкÑ?","confirmCancel":"ÐеÑÐºÑ Ð¾Ð¿ÑÑÑ Ð·Ð¼Ñнено. ÐакÑиÑи вÑкно без збеÑÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð¼Ñн?","options":"ÐпÑÑÑ","target":"ЦÑлÑ","targetNew":"Ðове вÑкно (_blank)","targetTop":"ÐоÑоÑне вÑкно (_top)","targetSelf":"ÐоÑоÑний ÑÑейм/вÑкно (_self)","targetParent":"ÐаÑÑкÑвÑÑкий ÑÑейм/вÑкно (_parent)","langDirLTR":"ÐлÑва напÑÐ
°Ð²Ð¾ (LTR)","langDirRTL":"СпÑава налÑво (RTL)","styles":"СÑÐ¸Ð»Ñ CSS","cssClasses":"ÐÐ»Ð°Ñ CSS","width":"ШиÑина","height":"ÐиÑоÑа","align":"ÐиÑÑвнÑваннÑ","alignLeft":"Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ","alignRight":"Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ","alignCenter":"Ðо ÑенÑÑÑ","alignTop":"Ðо веÑÑ
нÑÐ¾Ð¼Ñ ÐºÑаÑ","alignMiddle":"Ðо ÑеÑединÑ","alignBottom":"Ðо нижнÑÐ¾Ð¼Ñ ÐºÑаÑ","invalidValue":"Invalid value.","invalidHeight":"ÐиÑоÑа повинна бÑÑи ÑÑлим ÑиÑлом.","invalidWidth":"ШиÑина повинна бÑÑи ÑÑлим ÑиÑлом.","invalidCssLength":"ÐнаÑеннÑ, вказане Ð´Ð»Ñ \"%1\" в Ð¿Ð¾Ð»Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð¾ бÑÑи позиÑивним ÑиÑлом або без дÑйÑного вимÑÑÑ CSS Ð±Ð»Ð¾ÐºÑ (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"ÐнаÑеннÑ, вказане Ð´Ð»Ñ \"%1\" в Ð¿Ð¾Ð»Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð¾ бÑÑи позиÑÐ
¸Ð²Ð½Ð¸Ð¼ ÑиÑлом або без дÑйÑного вимÑÑÑ HTML Ð±Ð»Ð¾ÐºÑ (px or %).","invalidInlineStyle":"ÐнаÑеннÑ, вказане Ð´Ð»Ñ Ð²Ð±Ñдованого ÑÑÐ¸Ð»Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ðµ ÑкладаÑиÑÑ Ð· одного Ñи кÑлÑкоÑ
коÑÑежÑв Ñ ÑоÑмаÑÑ \"Ñм'Ñ : знаÑеннÑ\", ÑоздÑлениÑ
кÑÐ°Ð¿ÐºÐ¾Ñ Ð· комоÑ.","cssLengthTooltip":"ÐведÑÑÑ Ð½Ð¾Ð¼ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ Ð² пÑкÑелÑÑ
або ÑиÑло з дÑйÑÐ½Ð¾Ñ Ð¾Ð´Ð¸Ð½Ð¸ÑÑ CSS (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, не доÑÑÑпне</span>"},"about":{"copy":"Copyright © $1. ÐÑÑ Ð¿Ñава заÑÑеÑежено.","dlgTitle":"ÐÑо CKEditor","help":"ÐеÑевÑÑÑе $1 Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¸.","moreInfo":"Щодо ÑнÑоÑмаÑÑÑ Ð· лÑÑензÑÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÑÑайÑе на Ð½Ð°Ñ ÑайÑ:","title":"ÐÑо CKEditor","userGuide":"ÐнÑÑÑÑкÑÑÑ ÐоÑ
иÑÑÑваÑа Ð´Ð»Ñ CKEditor"},"basicstyles":{"bold":"ÐиÑний","italic":"ÐÑÑÑив","strike":"ÐакÑеÑлений","subscript":"ÐижнÑй ÑндекÑ","superscript":"ÐеÑÑ
нÑй ÑндекÑ","underline":"ÐÑдкÑеÑлений"},"bidi":{"ltr":"ÐапÑÑмок ÑекÑÑÑ Ð·Ð»Ñва напÑаво","rtl":"ÐапÑÑмок ÑекÑÑÑ ÑпÑава налÑво"},"blockquote":{"toolbar":"ЦиÑаÑа"},"clipboard":{"copy":"ÐопÑÑваÑи","copyError":"ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ ÐаÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опеÑаÑÑÑ ÐºÐ¾Ð¿ÑÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+C).","cut":"ÐиÑÑзаÑи","cutError":"ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ ÐаÑого бÑаÑзеÑа не дозволÑÑÑÑ ÑедакÑоÑÑ Ð°Ð²ÑомаÑиÑно виконÑваÑи опе
ÑаÑÑÑ Ð²Ð¸ÑÑзÑваннÑ. ÐÑÐ´Ñ Ð»Ð°Ñка, викоÑиÑÑовÑйÑе клавÑаÑÑÑÑ Ð´Ð»Ñ ÑÑого (Ctrl/Cmd+X)","paste":"ÐÑÑавиÑи","pasteArea":"ÐблаÑÑÑ Ð²ÑÑавки","pasteMsg":"ÐÑÐ´Ñ Ð»Ð°Ñка, вÑÑавÑе ÑнÑоÑмаÑÑÑ Ð· бÑÑеÑа обмÑÐ½Ñ Ð² ÑÑ Ð¾Ð±Ð»Ð°ÑÑÑ, коÑиÑÑÑÑÑиÑÑ ÐºÐ¾Ð¼Ð±ÑнаÑÑÑÑ ÐºÐ»Ð°Ð²ÑÑ (<STRONG>Ctrl/Cmd+V</STRONG>), Ñа наÑиÑнÑÑÑ <STRONG>OK</STRONG>.","securityMsg":"РедакÑÐ¾Ñ Ð½Ðµ може оÑÑимаÑи пÑÑмий доÑÑÑп до бÑÑеÑÑ Ð¾Ð±Ð¼ÑÐ½Ñ Ñ Ð·Ð²'ÑÐ·ÐºÑ Ð· налаÑÑÑваннÑми ÐаÑого бÑаÑзеÑа. Ðам поÑÑÑбно вÑÑавиÑи ÑнÑоÑмаÑÑÑ Ð² Ñе вÑкно.","title":"ÐÑÑавиÑи"},"colorbutton":{"auto":"ÐвÑо","bgColorTitle":"ÐолÑÑ ÑонÑ","colors":{"000":"ЧоÑний","800000":"ÐоÑдовий","8B4513":"ÐоÑиÑневий","2F4F4F":"Темний ÑÑÑо-зелений",
"008080":"ÐоÑÑÑÐºÐ¾Ñ Ñ
вилÑ","000080":"Сливовий","4B0082":"Ðндиго","696969":"ТемноÑÑÑий","B22222":"ТемноÑеÑвоний","A52A2A":"ÐаÑÑановий","DAA520":"Ðежевий","006400":"Темнозелений","40E0D0":"ÐÑÑÑзовий","0000CD":"ТемноÑинÑй","800080":"ÐÑÑпÑÑний","808080":"СÑÑий","F00":"ЧеÑвоний","FF8C00":"ТемнооÑанжевий","FFD700":"ÐовÑий","008000":"Ðелений","0FF":"СинÑо-зелений","00F":"СинÑй","EE82EE":"ФÑолеÑовий","A9A9A9":"СвÑÑлоÑÑÑий","FFA07A":"Рожевий","FFA500":"ÐÑанжевий","FFFF00":"ЯÑкÑавожовÑий","00FF00":"СалаÑовий","AFEEEE":"СвÑÑлобÑÑÑзовий","ADD8E6":"ÐлакиÑний","DDA0DD":"СвÑÑлоÑÑолеÑовий","D3D3D3":"СÑÑблÑÑÑий","FFF0F5":"СвÑÑлоÑожевий","FAEBD7":"СвÑÑлооÑанжевий","FFFFE0":"СвÑÑложовÑий
","F0FFF0":"СвÑÑлозелений","F0FFFF":"СвÑÑлий ÑинÑо-зелений","F0F8FF":"СвÑÑлоблакиÑний","E6E6FA":"Ðавандовий","FFF":"ÐÑлий"},"more":"ÐолÑоÑи...","panelTitle":"ÐолÑоÑи","textColorTitle":"ÐолÑÑ ÑекÑÑÑ"},"colordialog":{"clear":"ÐÑиÑÑиÑи","highlight":"ÐолÑÑ, на Ñкий вказÑÑ ÐºÑÑÑоÑ","options":"ÐпÑÑÑ ÐºÐ¾Ð»ÑоÑÑв","selected":"ÐбÑаний колÑÑ","title":"ÐбÑаÑи колÑÑ"},"templates":{"button":"Шаблони","emptyListMsg":"(Ðе знайдено жодного ÑаблонÑ)","insertOption":"ÐамÑниÑи поÑоÑний вмÑÑÑ","options":"ÐпÑÑÑ ÑаблонÑ","selectPromptMsg":"ÐбеÑÑÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, Ñаблон Ð´Ð»Ñ Ð²ÑдкÑиÑÑÑ Ð² ÑедакÑоÑÑ<br>(поÑоÑний змÑÑÑ Ð±Ñде вÑÑаÑено):","title":"Шаблони змÑÑÑÑ"},"contextmenu":{"options":"ÐпÑÑÑ ÐºÐ¾Ð½ÑекÑÑ
ного менÑ"},"div":{"IdInputLabel":"ÐденÑиÑÑкаÑоÑ","advisoryTitleInputLabel":"ÐмÑÑÑ Ð²Ð¸Ð¿Ð»Ð¸Ð²Ð°ÑÑÐ¾Ñ Ð¿Ñдказки","cssClassInputLabel":"ÐÐ»Ð°Ñ CSS","edit":"РедагÑваÑи блок","inlineStyleInputLabel":"ÐпиÑаний ÑÑилÑ","langDirLTRLabel":"ÐлÑва напÑаво (LTR)","langDirLabel":"ÐапÑÑмок мови","langDirRTLLabel":"СпÑава налÑво (RTL)","languageCodeInputLabel":"Ðод мови","remove":"ÐидалиÑи блок","styleSelectLabel":"СÑÐ¸Ð»Ñ CSS","title":"СÑвоÑиÑи блок-конÑейнеÑ","toolbar":"СÑвоÑиÑи блок-конÑейнеÑ"},"toolbar":{"toolbarCollapse":"ÐгоÑнÑÑи Ð¿Ð°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв","toolbarExpand":"РозгоÑнÑÑи Ð¿Ð°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв","toolbarGroups":{"document":"ÐокÑменÑ","clipboard":"ÐÑÑÐµÑ Ð¾Ð±Ð¼ÑÐ½Ñ / СкаÑÑваÑи","editing":"РедагÑваннÑ","forms":"ФоÑми","basicsty
les":"ÐÑновний СÑилÑ","paragraph":"ÐаÑагÑаÑ","links":"ÐоÑиланнÑ","insert":"ÐÑÑавиÑи","styles":"СÑилÑ","colors":"ÐолÑоÑи","tools":"ÐнÑÑÑÑменÑи"},"toolbars":"ÐÐ°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв ÑедакÑоÑа"},"elementspath":{"eleLabel":"ШлÑÑ
","eleTitle":"%1 елеменÑ"},"list":{"bulletedlist":"ÐаÑкÑÑований ÑпиÑок","numberedlist":"ÐÑмеÑований ÑпиÑок"},"indent":{"indent":"ÐбÑлÑÑиÑи вÑдÑÑÑп","outdent":"ÐменÑиÑи вÑдÑÑÑп"},"find":{"find":"ÐоÑÑк","findOptions":"ÐаÑамеÑÑи ÐоÑÑкÑ","findWhat":"ШÑкаÑи:","matchCase":"ÐÑаÑ
овÑваÑи ÑегÑÑÑÑ","matchCyclic":"ЦиклÑÑна замÑна","matchWord":"ÐбÑг ÑÑлиÑ
ÑлÑв","notFoundMsg":"Ðказаний ÑекÑÑ Ð½Ðµ знайдено.","replace":"ÐамÑна","replaceAll":"ÐамÑниÑи вÑе","replaceSuccessMsg":"%1 ÑпÑвпадÑнÑ(нÑ)
замÑнено.","replaceWith":"ÐамÑниÑи на:","title":"ÐнайÑи Ñ Ð·Ð°Ð¼ÑниÑи"},"fakeobjects":{"anchor":"ЯкÑÑ","flash":"Flash-анÑмаÑÑÑ","hiddenfield":"ÐÑиÑ
Ð¾Ð²Ð°Ð½Ñ ÐолÑ","iframe":"IFrame","unknown":"ÐевÑдомий об'ÑкÑ"},"flash":{"access":"ÐоÑÑÑп до ÑкÑипÑа","accessAlways":"Ðавжди","accessNever":"ÐÑколи","accessSameDomain":"Ð Ñого ж домена","alignAbsBottom":"Ðо нижнÑÐ¾Ð¼Ñ ÐºÑÐ°Ñ (abs)","alignAbsMiddle":"Ðо ÑеÑÐµÐ´Ð¸Ð½Ñ (abs)","alignBaseline":"Ðо базовÑй лÑнÑÑ","alignTextTop":"ТекÑÑ Ð¿Ð¾ веÑÑ
нÑÐ¾Ð¼Ñ ÐºÑаÑ","bgcolor":"ÐолÑÑ ÑонÑ","chkFull":"ÐозволиÑи повноекÑанний пеÑеглÑд","chkLoop":"ЦиклÑÑно","chkMenu":"ÐозволиÑи Ð¼ÐµÐ½Ñ Flash","chkPlay":"ÐвÑопÑогÑаваннÑ","flashvars":"ÐмÑÐ½Ð½Ñ Flash","hSpace":"ÐоÑиз. вÑдÑÑÑп","properties":"ÐлаÑÑивоÑÑÑ Flash"
,"propertiesTab":"ÐлаÑÑивоÑÑÑ","quality":"ЯкÑÑÑÑ","qualityAutoHigh":"ÐвÑом. вÑдмÑнна","qualityAutoLow":"ÐвÑом. низÑка","qualityBest":"ÐÑдмÑнна","qualityHigh":"ÐиÑока","qualityLow":"ÐизÑка","qualityMedium":"СеÑеднÑ","scale":"ÐаÑÑÑаб","scaleAll":"ÐоказаÑи вÑе","scaleFit":"ÐоÑ. ÑозмÑÑ","scaleNoBorder":"Ðез Ñамки","title":"ÐлаÑÑивоÑÑÑ Flash","vSpace":"ÐеÑÑ. вÑдÑÑÑп","validateHSpace":"ÐоÑиз. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.","validateSrc":"ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ URL поÑиланнÑ","validateVSpace":"ÐеÑÑ. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.","windowMode":"ÐÑконний Ñежим","windowModeOpaque":"ÐепÑозоÑÑÑÑÑ","windowModeTransparent":"ÐÑозоÑÑÑÑÑ","windowModeWindow":"ÐÑкно"},"font":{"fontSize":{"label":"РозмÑÑ","voiceLabel":"РозмÑ
Ñ ÑÑиÑÑÑ","panelTitle":"РозмÑÑ"},"label":"ШÑиÑÑ","panelTitle":"ШÑиÑÑ","voiceLabel":"ШÑиÑÑ"},"forms":{"button":{"title":"ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸","text":"ÐнаÑеннÑ","type":"Тип","typeBtn":"Ðнопка (button)","typeSbm":"ÐадÑÑлаÑи (submit)","typeRst":"ÐÑиÑÑиÑи (reset)"},"checkboxAndRadio":{"checkboxTitle":"ÐлаÑÑивоÑÑÑ Ð³Ð°Ð»Ð¾Ñки","radioTitle":"ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ вибоÑÑ","value":"ÐнаÑеннÑ","selected":"ÐбÑана"},"form":{"title":"ÐлаÑÑивоÑÑÑ ÑоÑми","menu":"ÐлаÑÑивоÑÑÑ ÑоÑми","action":"ÐÑÑ","method":"ÐеÑод","encoding":"ÐодÑваннÑ"},"hidden":{"title":"ÐлаÑÑивоÑÑÑ Ð¿ÑиÑ
ованого полÑ","name":"Ðм'Ñ","value":"ÐнаÑеннÑ"},"select":{"title":"ÐлаÑÑивоÑÑÑ ÑпиÑкÑ","selectInfo":"ÐнÑо","opAvail":"ÐоÑÑÑÐ¿Ð½Ñ Ð²Ð°ÑÑанÑи","value":"ÐнаÑеннÑ","size":"ÐÑлÑ
кÑÑÑÑ","lines":"видимиÑ
позиÑÑй Ñ ÑпиÑкÑ","chkMulti":"СпиÑок з мÑлÑÑивибоÑом","opText":"ТекÑÑ","opValue":"ÐнаÑеннÑ","btnAdd":"ÐобавиÑи","btnModify":"ÐмÑниÑи","btnUp":"ÐгоÑÑ","btnDown":"Ðниз","btnSetValue":"ÐÑÑановиÑи Ñк обÑане знаÑеннÑ","btnDelete":"ÐидалиÑи"},"textarea":{"title":"ÐлаÑÑивоÑÑÑ ÑекÑÑÐ¾Ð²Ð¾Ñ Ð¾Ð±Ð»Ð°ÑÑÑ","cols":"СÑовбÑÑ","rows":"Ð Ñдки"},"textfield":{"title":"ÐлаÑÑивоÑÑÑ ÑекÑÑового полÑ","name":"Ðм'Ñ","value":"ÐнаÑеннÑ","charWidth":"ШиÑина","maxChars":"ÐакÑ. к-ÑÑ ÑимволÑв","type":"Тип","typeText":"ТекÑÑ","typePass":"ÐаÑолÑ","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"ФоÑмаÑÑваннÑ","panelTitle":"ФоÑмаÑÑÐ²Ð°Ð½Ð½Ñ Ð¿Ð°ÑагÑаÑа","tag_address":"ÐдÑеÑа","ta
g_div":"ÐоÑмалÑний (div)","tag_h1":"Ðаголовок 1","tag_h2":"Ðаголовок 2","tag_h3":"Ðаголовок 3","tag_h4":"Ðаголовок 4","tag_h5":"Ðаголовок 5","tag_h6":"Ðаголовок 6","tag_p":"ÐоÑмалÑний","tag_pre":"ФоÑмаÑований"},"horizontalrule":{"toolbar":"ÐоÑизонÑалÑна лÑнÑÑ"},"iframe":{"border":"ÐоказаÑи Ñамки ÑÑеймÑ","noUrl":"ÐÑÐ´Ñ Ð»Ð°Ñка введÑÑÑ Ð¿Ð¾ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð´Ð»Ñ IFrame","scrolling":"УвÑмкнÑÑи пÑокÑÑÑкÑ","title":"ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ IFrame","toolbar":"IFrame"},"image":{"alertUrl":"ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ URL зобÑаженнÑ","alt":"ÐлÑÑеÑнаÑивний ÑекÑÑ","border":"Рамка","btnUpload":"ÐадÑÑлаÑи на ÑеÑвеÑ","button2Img":"ÐажаÑÑе пеÑеÑвоÑиÑи обÑÐ°Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÑ-зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° пÑоÑÑе зобÑаженнÑ?","hSpace":"ÐоÑи
з. вÑдÑÑÑп","img2Button":"ÐажаÑÑе пеÑеÑвоÑиÑи обÑане зобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° кнопкÑ-зобÑаженнÑ?","infoTab":"ÐнÑоÑмаÑÑÑ Ð¿Ñо зобÑаженнÑ","linkTab":"ÐоÑиланнÑ","lockRatio":"ÐбеÑегÑи пÑопоÑÑÑÑ","menu":"ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ","resetSize":"ÐÑиÑÑиÑи Ð¿Ð¾Ð»Ñ ÑозмÑÑÑв","title":"ÐлаÑÑивоÑÑÑ Ð·Ð¾Ð±ÑаженнÑ","titleButton":"ÐлаÑÑивоÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñз зобÑаженнÑм","upload":"ÐадÑÑлаÑи","urlMissing":"ÐкажÑÑÑ URL зобÑаженнÑ.","vSpace":"ÐеÑÑ. вÑдÑÑÑп","validateBorder":"ШиÑина Ñамки повинна бÑÑи ÑÑлим ÑиÑлом.","validateHSpace":"ÐоÑиз. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом.","validateVSpace":"ÐеÑÑ. вÑдÑÑÑп повинен бÑÑи ÑÑлим ÑиÑлом."},"smiley":{"options":"ÐпÑÑÑ ÑмайликÑв","
title":"ÐÑÑавиÑи Ñмайлик","toolbar":"Смайлик"},"justify":{"block":"Ðо ÑиÑинÑ","center":"Ðо ÑенÑÑÑ","left":"Ðо лÑÐ²Ð¾Ð¼Ñ ÐºÑаÑ","right":"Ðо пÑÐ°Ð²Ð¾Ð¼Ñ ÐºÑаÑ"},"link":{"acccessKey":"ÐаÑÑÑа клавÑÑа","advanced":"ÐодаÑкове","advisoryContentType":"Тип вмÑÑÑÑ","advisoryTitle":"Ðаголовок","anchor":{"toolbar":"ÐÑÑавиÑи/РедагÑваÑи ÑкÑÑ","menu":"ÐлаÑÑивоÑÑÑ ÑкоÑÑ","title":"ÐлаÑÑивоÑÑÑ ÑкоÑÑ","name":"Ðм'Ñ ÑкоÑÑ","errorName":"ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ Ñм'Ñ ÑкоÑÑ","remove":"ÐÑибÑаÑи ÑкÑÑ"},"anchorId":"Ðа ÑденÑиÑÑкаÑоÑом елеменÑÑ","anchorName":"Ðа Ñм'Ñм елеменÑÑ","charset":"ÐодÑваннÑ","cssClasses":"ÐÐ»Ð°Ñ CSS","emailAddress":"ÐдÑеÑа ел. поÑÑи","emailBody":"ТÑло повÑдомленнÑ","emailSubject":"Тема лиÑÑа","id":"ÐденÑÐ
¸ÑÑкаÑоÑ","info":"ÐнÑоÑмаÑÑÑ Ð¿Ð¾ÑиланнÑ","langCode":"Ðод мови","langDir":"ÐапÑÑмок мови","langDirLTR":"ÐлÑва напÑаво (LTR)","langDirRTL":"СпÑава налÑво (RTL)","menu":"ÐÑÑавиÑи поÑиланнÑ","name":"Ðм'Ñ","noAnchors":"(Ð ÑÑÐ¾Ð¼Ñ Ð´Ð¾ÐºÑменÑÑ Ð½ÐµÐ¼Ð°Ñ ÑкоÑÑв)","noEmail":"ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ Ð°Ð´ÑÐµÑ ÐµÐ». поÑÑи","noUrl":"ÐÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ URL поÑиланнÑ","other":"<ÑнÑий>","popupDependent":"Ðалежний (Netscape)","popupFeatures":"ÐлаÑÑивоÑÑÑ Ð²Ð¸Ð¿Ð»Ð¸Ð²Ð°ÑÑого вÑкна","popupFullScreen":"Ðовний екÑан (IE)","popupLeft":"ÐозиÑÑÑ Ð·Ð»Ñва","popupLocationBar":"ÐÐ°Ð½ÐµÐ»Ñ Ð»Ð¾ÐºÐ°ÑÑÑ","popupMenuBar":"ÐÐ°Ð½ÐµÐ»Ñ Ð¼ÐµÐ½Ñ","popupResizable":"ÐаÑÑÑабоване","popupScrollBars":"СÑÑÑÑки пÑокÑÑÑки","popupStatusBar":"Ð Ñдок ÑÑаÑÑÑÑ","popupToolbar":
"ÐÐ°Ð½ÐµÐ»Ñ ÑнÑÑÑÑменÑÑв","popupTop":"ÐозиÑÑÑ Ð·Ð²ÐµÑÑ
Ñ","rel":"Ðв'Ñзок","selectAnchor":"ÐбеÑÑÑÑ ÑкÑÑ","styles":"СÑÐ¸Ð»Ñ CSS","tabIndex":"ÐоÑлÑдовнÑÑÑÑ Ð¿ÐµÑеÑ
одÑ","target":"ЦÑлÑ","targetFrame":"<ÑÑейм>","targetFrameName":"Ðм'Ñ ÑÑлÑового ÑÑеймÑ","targetPopup":"<випливаÑÑе вÑкно>","targetPopupName":"Ðм'Ñ Ð²Ð¸Ð¿Ð»Ð¸Ð²Ð°ÑÑого вÑкна","title":"ÐоÑиланнÑ","toAnchor":"ЯкÑÑ Ð½Ð° ÑÑ ÑÑоÑÑнкÑ","toEmail":"Ðл. поÑÑа","toUrl":"URL","toolbar":"ÐÑÑавиÑи/РедагÑваÑи поÑиланнÑ","type":"Тип поÑиланнÑ","unlink":"ÐидалиÑи поÑиланнÑ","upload":"ÐадÑÑлаÑи"},"liststyle":{"armenian":"ÐÑÑменÑÑка нÑмеÑаÑÑÑ","bulletedTitle":"ÐпÑÑÑ Ð¼Ð°Ñкованого ÑпиÑкÑ","circle":"ÐÑлÑÑе","decimal":"ÐеÑÑÑÐºÐ¾Ð²Ñ (1, 2, 3 Ñ Ñ.д.)","decimalLeadingZero":"ÐеÑÑ
ÑÐºÐ¾Ð²Ñ Ð· нÑлем (01, 02, 03 Ñ Ñ.д.)","disc":"ÐÑÑжеÑок","georgian":"ÐÑÑзинÑÑка нÑмеÑаÑÑÑ (an, ban, gan Ñ Ñ.д.)","lowerAlpha":"ÐÐ°Ð»Ñ Ð»Ð°Ñ. бÑкви (a, b, c, d, e Ñ Ñ.д.)","lowerGreek":"ÐÐ°Ð»Ñ Ð³Ñ. бÑкви (алÑÑа, беÑа, гамма Ñ Ñ.д.)","lowerRoman":"ÐÐ°Ð»Ñ ÑимÑÑÐºÑ (i, ii, iii, iv, v Ñ Ñ.д.)","none":"Ðема","notset":"<не вказано>","numberedTitle":"ÐпÑÑÑ Ð½ÑмеÑованого ÑпиÑкÑ","square":"ÐвадÑаÑик","start":"ÐоÑаÑи з...","type":"Тип","upperAlpha":"ÐÐµÐ»Ð¸ÐºÑ Ð»Ð°Ñ. бÑкви (A, B, C, D, E Ñ Ñ.д.)","upperRoman":"ÐÐµÐ»Ð¸ÐºÑ ÑимÑÑÐºÑ (I, II, III, IV, V Ñ Ñ.д.)","validateStartNumber":"ÐоÑаÑковий Ð½Ð¾Ð¼ÐµÑ ÑпиÑÐºÑ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ бÑÑи ÑÑлим ÑиÑлом."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"ÐакÑимÑзÑваÑи","minimize":"ÐÑнÑмÑзÑваÑи"},"newpage":{"toolb
ar":"Ðова ÑÑоÑÑнка"},"pagebreak":{"alt":"РозÑив СÑоÑÑнки","toolbar":"ÐÑÑавиÑи ÑозÑив ÑÑоÑÑнки"},"pastetext":{"button":"ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ","title":"ÐÑÑавиÑи ÑÑлÑки ÑекÑÑ"},"pastefromword":{"confirmCleanup":"ТекÑÑ, Ñо Ðи намагаÑÑеÑÑ Ð²ÑÑавиÑи, ÑÑ
ожий на ÑкопÑйований з Word. ÐажаÑÑе оÑиÑÑиÑи його ÑоÑмаÑÑÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑед вÑÑавлÑннÑм?","error":"Ðеможливо оÑиÑÑиÑи ÑоÑмаÑÑÐ²Ð°Ð½Ð½Ñ ÑеÑез внÑÑÑÑÑÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÑ.","title":"ÐÑÑавиÑи з Word","toolbar":"ÐÑÑавиÑи з Word"},"preview":{"preview":"ÐопеÑеднÑй пеÑеглÑд"},"print":{"toolbar":"ÐÑÑк"},"removeformat":{"toolbar":"ÐÑиÑÑиÑи ÑоÑмаÑÑваннÑ"},"save":{"toolbar":"ÐбеÑегÑи"},"selectall":{"toolbar":"ÐидÑлиÑи вÑе"},"showblocks":{"toolbar":"ÐокаÐ
·ÑваÑи блоки"},"sourcearea":{"toolbar":"ÐжеÑело"},"specialchar":{"options":"ÐпÑÑÑ","title":"ÐбеÑÑÑÑ ÑпеÑÑалÑний Ñимвол","toolbar":"СпеÑÑалÑний Ñимвол"},"scayt":{"about":"ÐÑо SCAYT","aboutTab":"ÐÑо SCAYT","addWord":"ÐодаÑи Ñлово","allCaps":"ÐÑопÑÑÑиÑи пÑопиÑÐ½Ñ Ñлова","dic_create":"СÑвоÑиÑи","dic_delete":"ÐидалиÑи","dic_field_name":"Ðазва Ñловника","dic_info":"Як пÑавило, коÑиÑÑÑваÑÑÐºÑ Ñловники збеÑÑгаÑÑÑÑÑ Ñ cookie-ÑайлаÑ
. Ðднак, cookie-Ñайли маÑÑÑ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° ÑозмÑÑ. ЯкÑо коÑиÑÑÑваÑÑкий Ñловник зÑоÑÑÐ°Ñ Ð² обÑÑÐ·Ñ Ð½Ð°ÑÑÑлÑки, Ñо вже не може бÑÑи збеÑежений Ñ cookie-ÑайлÑ, ÑÐ¾Ð´Ñ Ð¹Ð¾Ð³Ð¾ можна збеÑегÑи на наÑÐ¾Ð¼Ñ ÑеÑвеÑÑ. Щоб збеÑегÑи ÐÐ°Ñ Ð¿ÐµÑÑо
налÑний Ñловник на наÑÐ¾Ð¼Ñ ÑеÑвеÑÑ Ð½ÐµÐ¾Ð±Ñ
Ñдно вказаÑи Ð½Ð°Ð·Ð²Ñ Ñловника. ЯкÑо Ðи вже збеÑÑгали Ñловник на ÑеÑвеÑÑ, бÑÐ´Ñ Ð»Ð°Ñка, вкажÑÑÑ Ð½Ð°Ð·Ð²Ñ Ð·Ð±ÐµÑеженого Ñловника Ñ Ð½Ð°ÑиÑнÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÑ ÐÑдновиÑи.","dic_rename":"ÐеÑейменÑваÑи","dic_restore":"ÐÑдновиÑи","dictionariesTab":"Словники","disable":"ÐимкнÑÑи SCAYT","emptyDic":"Ðазва Ñловника повинна бÑÑи вказана.","enable":"ÐвÑмкнÑÑи SCAYT","ignore":"ÐÑопÑÑÑиÑи","ignoreAll":"ÐÑопÑÑÑиÑи вÑÑ","ignoreDomainNames":"ÐÑопÑÑÑиÑи Ð´Ð¾Ð¼ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸","langs":"Ðови","languagesTab":"Ðови","mixedCase":"ÐÑопÑÑÑиÑи Ñлова Ð·Ñ Ð·Ð¼ÑÑаним ÑегÑÑÑÑом","mixedWithDigits":"ÐÑопÑÑÑиÑи Ñлова, Ñо мÑÑÑÑÑÑ ÑиÑÑи","moreSuggestions":"
ÐÑлÑÑе ваÑÑанÑÑв","opera_title":"Ðе пÑдÑÑимÑÑÑÑÑÑ Ð² Opera","options":"ÐпÑÑÑ","optionsTab":"ÐпÑÑÑ","title":"ÐеÑеÑÑÑка оÑÑогÑаÑÑÑ Ð¿Ð¾ мÑÑÑ Ð½Ð°Ð±Ð¾ÑÑ","toggle":"ÐеÑемкнÑÑи SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"СÑилÑ","panelTitle":"СÑÐ¸Ð»Ñ ÑоÑмаÑÑваннÑ","panelTitle1":"ÐлоÑÐ½Ñ ÑÑилÑ","panelTitle2":"Ð ÑÐ´ÐºÐ¾Ð²Ñ ÑÑилÑ","panelTitle3":"Ðб'ÑкÑÐ½Ñ ÑÑилÑ"},"table":{"border":"РозмÑÑ Ñамки","caption":"Ðаголовок ÑаблиÑÑ","cell":{"menu":"ÐомÑÑки","insertBefore":"ÐÑÑавиÑи комÑÑÐºÑ Ð¿ÐµÑед","insertAfter":"ÐÑÑавиÑи комÑÑÐºÑ Ð¿ÑÑлÑ","deleteCell":"ÐидалиÑи комÑÑки","merge":"Ðб'ÑднаÑи комÑÑки","mergeRight":"Ðб'ÑднаÑи ÑпÑава","mergeDown":"Ðб'ÑднаÑи донизÑ","splitHorizontal":"РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ гоÑиÐ
·Ð¾Ð½ÑалÑ","splitVertical":"РоздÑлиÑи комÑÑÐºÑ Ð¿Ð¾ веÑÑикалÑ","title":"ÐлаÑÑивоÑÑÑ ÐºÐ¾Ð¼ÑÑки","cellType":"Тип комÑÑки","rowSpan":"Ðб'ÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑдкÑв","colSpan":"Ðб'ÑÐ´Ð½Ð°Ð½Ð½Ñ ÑÑовпÑÑв","wordWrap":"ÐвÑопеÑенеÑÐµÐ½Ð½Ñ ÑекÑÑÑ","hAlign":"ÐоÑиз. виÑÑвнÑваннÑ","vAlign":"ÐеÑÑ. виÑÑвнÑваннÑ","alignBaseline":"Ðо базовÑй лÑнÑÑ","bgColor":"ÐолÑÑ ÑонÑ","borderColor":"ÐолÑÑ Ñамки","data":"ÐанÑ","header":"Ðаголовок","yes":"Так","no":"ÐÑ","invalidWidth":"ШиÑина комÑÑки повинна бÑÑи ÑÑлим ÑиÑлом.","invalidHeight":"ÐиÑоÑа комÑÑки повинна бÑÑи ÑÑлим ÑиÑлом.","invalidRowSpan":"ÐÑлÑкÑÑÑÑ Ð¾Ð±'ÑднÑваниÑ
ÑÑдкÑв повинна бÑÑи ÑÑлим ÑиÑлом.","invalidColSpan":"ÐÑлÑкÑÑÑÑ Ð¾Ð±'ÑднÑваниÑ
Ñ
ÑовбÑÑв повинна бÑÑи ÑÑлим ÑиÑлом.","chooseColor":"ÐбÑаÑи"},"cellPad":"ÐнÑÑÑ. вÑдÑÑÑп","cellSpace":"ÐÑомÑжок","column":{"menu":"СÑовбÑÑ","insertBefore":"ÐÑÑавиÑи ÑÑовбеÑÑ Ð¿ÐµÑед","insertAfter":"ÐÑÑавиÑи ÑÑовбеÑÑ Ð¿ÑÑлÑ","deleteColumn":"ÐидалиÑи ÑÑовбÑÑ"},"columns":"СÑовбÑÑ","deleteTable":"ÐидалиÑи ÑаблиÑÑ","headers":"Ðаголовки ÑÑовбÑÑв/ÑÑдкÑв","headersBoth":"СÑовбÑÑ Ñ ÑÑдки","headersColumn":"СÑовбÑÑ","headersNone":"Ðез заголовкÑв","headersRow":"Ð Ñдки","invalidBorder":"РозмÑÑ Ñамки повинен бÑÑи ÑÑлим ÑиÑлом.","invalidCellPadding":"ÐнÑÑÑ. вÑдÑÑÑп комÑÑки повинен бÑÑи ÑÑлим ÑиÑлом.","invalidCellSpacing":"ÐÑомÑжок мÑж комÑÑками повинен бÑÑи ÑÑлим ÑиÑлом.","invalidCols"
:"ÐÑлÑкÑÑÑÑ ÑÑовбÑÑв повинна бÑÑи бÑлÑÑÐ¾Ñ 0.","invalidHeight":"ÐиÑоÑа ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑÑлим ÑиÑлом.","invalidRows":"ÐÑлÑкÑÑÑÑ ÑÑдкÑв повинна бÑÑи бÑлÑÑÐ¾Ñ 0.","invalidWidth":"ШиÑина ÑаблиÑÑ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° бÑÑи ÑÑлим ÑиÑлом.","menu":"ÐлаÑÑивоÑÑÑ ÑаблиÑÑ","row":{"menu":"Ð Ñдки","insertBefore":"ÐÑÑавиÑи ÑÑдок пеÑед","insertAfter":"ÐÑÑавиÑи ÑÑдок пÑÑлÑ","deleteRow":"ÐидалиÑи ÑÑдки"},"rows":"Ð Ñдки","summary":"ÐеÑалÑний Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ ÑаблиÑÑ","title":"ÐлаÑÑивоÑÑÑ ÑаблиÑÑ","toolbar":"ТаблиÑÑ","widthPc":"вÑдÑоÑкÑв","widthPx":"пÑкÑелÑв","widthUnit":"ÐдиниÑÑ Ð²Ð¸Ð¼ÑÑ."},"undo":{"redo":"ÐовÑоÑиÑи","undo":"ÐовеÑнÑÑи"},"wsc":{"btnIgnore":"ÐÑопÑÑÑиÑи","btnIgnoreAll":"ÐÑоÐ
¿ÑÑÑиÑи вÑе","btnReplace":"ÐамÑниÑи","btnReplaceAll":"ÐамÑниÑи вÑе","btnUndo":"Ðазад","changeTo":"ÐамÑниÑи на","errorLoading":"Ðомилка заванÑÐ°Ð¶ÐµÐ½Ð½Ñ : %s.","ieSpellDownload":"ÐодÑÐ»Ñ Ð¿ÐµÑевÑÑки оÑÑогÑаÑÑÑ Ð½Ðµ вÑÑановлено. ÐажаÑÑе заванÑажиÑи його заÑаз?","manyChanges":"ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: 1% ÑлÑв(ова) змÑнено","noChanges":"ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: жодне Ñлово не змÑнено","noMispell":"ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: помилок не знайдено","noSuggestions":"- Ð½ÐµÐ¼Ð°Ñ Ð²Ð°ÑÑанÑÑв -","notAvailable":"ÐибаÑÑе, але ÑеÑвÑÑ Ð½Ð°ÑÐ°Ð·Ñ Ð½ÐµÐ´Ð¾ÑÑÑпний.","notInDic":"ÐÐµÐ¼Ð°Ñ Ð² ÑловникÑ","oneChange":"ÐеÑевÑÑÐºÑ Ð¾ÑÑогÑаÑÑÑ Ð·Ð°Ð²ÐµÑÑено: змÑнено
одне Ñлово","progress":"ÐиконÑÑÑÑÑÑ Ð¿ÐµÑевÑÑка оÑÑогÑаÑÑÑ...","title":"ÐеÑевÑÑка оÑÑогÑаÑÑÑ","toolbar":"ÐеÑевÑÑиÑи оÑÑогÑаÑÑÑ"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/vi.js b/share/static/RichText/lang/vi.js
index b7c3f7f..eebd3ff 100644
--- a/share/static/RichText/lang/vi.js
+++ b/share/static/RichText/lang/vi.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.vi={dir:'ltr',editorTitle:'Bá» soạn thảo, %1, nhấn ALT + 0 Äá» xem hưá»ng dẫn.',toolbar:'Thanh công cụ',editor:'Bá» soạn thảo',source:'Mã HTML',newPage:'Trang má»i',save:'Lưu',preview:'Xem trưá»c',cut:'Cắt',copy:'Sao chép',paste:'Dán',print:'In',underline:'Gạch chân',bold:'Äáºm',italic:'Nghiêng',selectAll:'Chá»n tất cả',removeFormat:'Xoá Äá»nh dạng',strike:'Gạch xuyên ngang',subscript:'Chá» sá» dưá»i',superscript:'Chá» sá» trên',horizontalrule:'Chèn ÄÆ°á»ng phân cách ngang',pagebreak:'Chèn ngắt trang',unlink:'Xoá liên kết',undo:'Khôi phục thao tác',redo:'Là m lại thao tác',common:{browseServer:'Duyá»t trên máy chá»§',url:'URL',protocol:'Giao thức',upload:'Tải lên',uploadSubmit:'Tải lên máy chá»§',image:'Hình ảnh',flash:'Flash',form:'Biá»u mẫu',checkbox:'Nút kiá»m',radio:'Nút chá»n',textField:'Trưá»ng vÄn bản',textarea:'Vùng vÄn bản',hiddenField:'Trưá»ng á
º©n',button:'Nút',select:'à chá»n',imageButton:'Nút hình ảnh',notSet:'<không thiết láºp>',id:'Äá»nh danh',name:'Tên',langDir:'Hưá»ng ngôn ngữ',langDirLtr:'Trái sang phải (LTR)',langDirRtl:'Phải sang trái (RTL)',langCode:'Mã ngôn ngữ',longDescr:'Mô tả URL',cssClass:'Lá»p Stylesheet',advisoryTitle:'Nhan Äá» hưá»ng dẫn',cssStyle:'Kiá»u (style)',ok:'Äá»ng ý',cancel:'Bá» qua',close:'Äóng',preview:'Xem trưá»c',generalTab:'Tab chung',advancedTab:'Tab má» rá»ng',validateNumberFailed:'Giá trá» nà y không phải là sá».',confirmNewPage:'Má»i thay Äá»i không ÄÆ°á»£c lưu lại, ná»i dung nà y sẽ bá» mất. Bạn có chắc chắn muá»n tải má»t trang má»i?',confirmCancel:'Má»t và i tùy chá»n Äã bá» thay Äá»i. Bạn có chắc chắn muá»n Äóng há»p thoại?',options:'Tùy chá»n',target:'ÄÃch Äến',targetNew:'Cá»a sá» má»i (_blank)',targetTop:'Cá»a sá» trên cùng (_top)',targetSelf:'Tại trang (
_self)',targetParent:'Cá»a sá» cha (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, không có</span>'},contextmenu:{options:'Tùy chá»n menu bá» xung'},specialChar:{toolbar:'Chèn ký tá»± Äặc biá»t',title:'Hãy chá»n ký tá»± Äặc biá»t',options:'Tùy chá»n các ký tá»± Äặc biá»t'},link:{toolbar:'Chèn/Sá»a liên kết',other:'<khác>',menu:'Sá»a liên kết',title:'Liên kết',info:'Thông tin liên kết',target:'ÄÃch',upload:'Tải lên',advanced:'Má» rá»ng',type:'Kiá»u liên kết',toUrl:'URL',toAnchor:'Neo trong trang nà y',toEmail:'Thư Äiá»n tá»',targetFrame:'<khung>',targetPopup:'<cá»a sá» popup>',targetFrameName:'Tên khung ÄÃch',targetPopupName:'Tên cá»a sá» Popup',popupFeatures:'Äặc Äiá»m cá»§a cá»a sá» Popup',popupResizable:'Có thá» thay Äá»i kÃch cỡ',popupStatusBar:'Thanh trạng thái',po
pupLocationBar:'Thanh vá» trÃ',popupToolbar:'Thanh công cụ',popupMenuBar:'Thanh Menu',popupFullScreen:'Toà n mà n hình (IE)',popupScrollBars:'Thanh cuá»n',popupDependent:'Phụ thuá»c (Netscape)',popupWidth:'Rá»ng',popupLeft:'Vá» trà bên trái',popupHeight:'Cao',popupTop:'Vá» trà phÃa trên',id:'Äá»nh danh',langDir:'Hưá»ng ngôn ngữ',langDirLTR:'Trái sang phải (LTR)',langDirRTL:'Phải sang trái (RTL)',acccessKey:'PhÃm há» trợ truy cáºp',name:'Tên',langCode:'Mã ngôn ngữ',tabIndex:'Chá» sá» cá»§a Tab',advisoryTitle:'Nhan Äá» hưá»ng dẫn',advisoryContentType:'Ná»i dung hưá»ng dẫn',cssClasses:'Lá»p Stylesheet',charset:'Bảng mã cá»§a tà i nguyên ÄÆ°á»£c liên kết Äến',styles:'Kiá»u (style)',selectAnchor:'Chá»n má»t Äiá»m neo',anchorName:'Theo tên Äiá»m neo',anchorId:'Theo Äá»nh danh thà nh phần',emailAddress:'Thư Äiá»n tá»',emailSubject:'Tiêu Äá» thông Äiá»p',emailBody:'Ná»i dung thông Äiá»p',noA
nchors:'(Không có Äiá»m neo nà o trong tà i liá»u)',noUrl:'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết (URL)',noEmail:'Hãy ÄÆ°a và o Äá»a chá» thư Äiá»n tá»'},anchor:{toolbar:'Chèn/Sá»a Äiá»m neo',menu:'Thuá»c tÃnh Äiá»m neo',title:'Thuá»c tÃnh Äiá»m neo',name:'Tên cá»§a Äiá»m neo',errorName:'Hãy nháºp và o tên cá»§a Äiá»m neo'},list:{numberedTitle:'Thuá»c tÃnh danh sách có thứ tá»±',bulletedTitle:'Thuá»c tÃnh danh sách không thứ tá»±',type:'Kiá»u loại',start:'Bắt Äầu',validateStartNumber:'List start number must be a whole number.',circle:'Khuyên tròn',disc:'Hình ÄÄ©a',square:'Hình vuông',none:'Không gì cả',notset:'<không thiết láºp>',armenian:'Sá» theo kiá»u Armenian',georgian:'Sá» theo kiá»u Georgian (an, ban, gan...)',lowerRoman:'Sá» La Mã kiá»u thưá»ng (i, ii, iii, iv, v...)',upperRoman:'Sá» La Mã kiá»u HOA (I, II, III, IV, V...)',lowerAlpha:'Kiá»u abc thưá»ng (a, b, c, d, e...)',upperAlph
a:'Kiá»u ABC HOA (A, B, C, D, E...)',lowerGreek:'Kiá»u Hy Lạp (alpha, beta, gamma...)',decimal:'Kiá»u sá» (1, 2, 3 ...)',decimalLeadingZero:'Kiá»u sá» (01, 02, 03...)'},findAndReplace:{title:'Tìm kiếm và thay thế',find:'Tìm kiếm',replace:'Thay thế',findWhat:'Tìm chuá»i:',replaceWith:'Thay bằng:',notFoundMsg:'Không tìm thấy chuá»i cần tìm.',matchCase:'Phân biá»t chữ hoa/thưá»ng',matchWord:'Giá»ng toà n bá» từ',matchCyclic:'Giá»ng má»t phần',replaceAll:'Thay thế tất cả',replaceSuccessMsg:'%1 vá» trà Äã ÄÆ°á»£c thay thế.'},table:{toolbar:'Bảng',title:'Thuá»c tÃnh bảng',menu:'Thuá»c tÃnh bảng',deleteTable:'Xóa bảng',rows:'Sá» hà ng',columns:'Sá» cá»t',border:'KÃch thưá»c ÄÆ°á»ng viá»n',align:'Canh lá»',alignLeft:'Trái',alignCenter:'Giữa',alignRight:'Phải',width:'Rá»ng',widthPx:'Äiá»m ảnh (px)',widthPc:'Phần trÄm (%)',widthUnit:'ÄÆ¡n vá»',height:'Chiá»u cao',cellSpace:'Khoảng cách
giữa các ô',cellPad:'Khoảng Äá»m giữ ô và ná»i dung',caption:'Äầu Äá»',summary:'Tóm lược',headers:'Äầu Äá»',headersNone:'Không có',headersColumn:'Cá»t Äầu tiên',headersRow:'Hà ng Äầu tiên',headersBoth:'Cả hai',invalidRows:'Sá» lượng hà ng phải là má»t sá» lá»n hÆ¡n 0.',invalidCols:'Sá» lượng cá»t phải là má»t sá» lá»n hÆ¡n 0.',invalidBorder:'KÃch cỡ cá»§a ÄÆ°á»ng biên phải là má»t sá» nguyên.',invalidWidth:'Chiá»u rá»ng cá»§a bảng phải là má»t sá» nguyên.',invalidHeight:'Chiá»u cao cá»§a bảng phải là má»t sá» nguyên.',invalidCellSpacing:'Khoảng cách giữa các ô phải là má»t sá» nguyên.',invalidCellPadding:'Khoảng Äá»m giữa ô và ná»i dung phải là má»t sá» nguyên.',cell:{menu:'Ã',insertBefore:'Chèn ô PhÃa trưá»c',insertAfter:'Chèn ô PhÃa sau',deleteCell:'Xoá ô',merge:'Kết hợp ô',mergeRight:'Kết hợp sang phải',mergeDown:'Kết hợp xuá»n
g dưá»i',splitHorizontal:'Phân tách ô theo chiá»u ngang',splitVertical:'Phân tách ô theo chiá»u dá»c',title:'Thuá»c tÃnh cá»§a ô',cellType:'Kiá»u cá»§a ô',rowSpan:'Kết hợp hà ng',colSpan:'Kết hợp cá»t',wordWrap:'Chữ liá»n hà ng',hAlign:'Canh lá» ngang',vAlign:'Canh lá» dá»c',alignTop:'Trên cùng',alignMiddle:'ChÃnh giữa',alignBottom:'Dưá»i cùng',alignBaseline:'ÄÆ°á»ng cÆ¡ sá»',bgColor:'Mà u ná»n',borderColor:'Mà u viá»n',data:'Dữ liá»u',header:'Äầu Äá»',yes:'Có',no:'Không',invalidWidth:'Chiá»u rá»ng cá»§a ô phải là má»t sá» nguyên.',invalidHeight:'Chiá»u cao cá»§a ô phải là má»t sá» nguyên.',invalidRowSpan:'Sá» hà ng kết hợp phải là má»t sá» nguyên.',invalidColSpan:'Sá» cá»t kết hợp phải là má»t sá» nguyên.',chooseColor:'Chá»n mà u'},row:{menu:'Hà ng',insertBefore:'Chèn hà ng phÃa trưá»c',insertAfter:'Chèn hà ng phÃa sau',deleteRow:'Xoá hà ng'},column:{menu:'Cá»t',insertBefo
re:'Chèn cá»t phÃa trưá»c',insertAfter:'Chèn cá»t phÃa sau',deleteColumn:'Xoá cá»t'}},button:{title:'Thuá»c tÃnh cá»§a nút',text:'Chuá»i hiá»n thá» (giá trá»)',type:'Kiá»u',typeBtn:'Nút bấm',typeSbm:'Nút gá»i',typeRst:'Nút nháºp lại'},checkboxAndRadio:{checkboxTitle:'Thuá»c tÃnh nút kiá»m',radioTitle:'Thuá»c tÃnh nút chá»n',value:'Giá trá»',selected:'ÄÆ°á»£c chá»n'},form:{title:'Thuá»c tÃnh biá»u mẫu',menu:'Thuá»c tÃnh biá»u mẫu',action:'Hà nh Äá»ng',method:'Phương thức',encoding:'Bảng mã'},select:{title:'Thuá»c tÃnh ô chá»n',selectInfo:'Thông tin',opAvail:'Các tùy chá»n có thá» sá» dụng',value:'Giá trá»',size:'KÃch cỡ',lines:'dòng',chkMulti:'Cho phép chá»n nhiá»u',opText:'VÄn bản',opValue:'Giá trá»',btnAdd:'Thêm',btnModify:'Thay Äá»i',btnUp:'Lên',btnDown:'Xuá»ng',btnSetValue:'Giá trá» ÄÆ°á»£c chá»n',btnDelete:'Nút xoá'},textarea:{title:'Thuá»c tÃnh vùng vÄn bản',cols:'Sá»
cá»t',rows:'Sá» hà ng'},textfield:{title:'Thuá»c tÃnh trưá»ng vÄn bản',name:'Tên',value:'Giá trá»',charWidth:'Äá» rá»ng cá»§a ký tá»±',maxChars:'Sá» ký tá»± tá»i Äa',type:'Kiá»u',typeText:'Ký tá»±',typePass:'Máºt khẩu'},hidden:{title:'Thuá»c tÃnh trưá»ng ẩn',name:'Tên',value:'Giá trá»'},image:{title:'Thuá»c tÃnh cá»§a ảnh',titleButton:'Thuá»c tÃnh nút cá»§a ảnh',menu:'Thuá»c tÃnh cá»§a ảnh',infoTab:'Thông tin cá»§a ảnh',btnUpload:'Tải lên máy chá»§',upload:'Tải lên',alt:'Chú thÃch ảnh',width:'Chiá»u rá»ng',height:'chiá»u cao',lockRatio:'Giữ nguyên tá»· lá»',unlockRatio:'Phá bá» tá»· lá»',resetSize:'KÃch thưá»c gá»c',border:'ÄÆ°á»ng viá»n',hSpace:'Khoảng Äá»m ngang',vSpace:'Khoảng Äá»m dá»c',align:'Vá» trÃ',alignLeft:'Bên trái',alignRight:'Bên phải',alertUrl:'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn cá»§a ảnh',linkTab:'Tab liên kết',button2Img:'Bạn có muá»n chuyá»n nút bấm bằn
g ảnh ÄÆ°á»£c chá»n thà nh ảnh?',img2Button:'Bạn có muá»n chuyá»n Äá»i ảnh ÄÆ°á»£c chá»n thà nh nút bấm bằng ảnh?',urlMissing:'Thiếu ÄÆ°á»ng dẫn hình ảnh',validateWidth:'Chiá»u rá»ng cá»§a ảnh phải là má»t sá» nguyên dương',validateHeight:'Chiá»u cao cá»§a ảnh phải là má»t sá» nguyên dương',validateBorder:'Chiá»u rá»ng cá»§a ÄÆ°á»ng viá»n phải là má»t sá» nguyên dương',validateHSpace:'Khoảng Äá»m ngang phải là má»t sá» nguyên dương',validateVSpace:'Khoảng Äá»m dá»c phải là má»t sá» nguyên dương'},flash:{properties:'Thuá»c tÃnh Flash',propertiesTab:'Thuá»c tÃnh',title:'Thuá»c tÃnh Flash',chkPlay:'Tá»± Äá»ng chạy',chkLoop:'Lặp',chkMenu:'Cho phép báºt menu cá»§a Flash',chkFull:'Cho phép toà n mà n hình',scale:'Tá»· lá»',scaleAll:'Hiá»n thá» tất cả',scaleNoBorder:'Không ÄÆ°á»ng viá»n',scaleFit:'Vừa vặn',access:'Truy cáºp mã',accessAlways:'Luôn luôn',ac
cessSameDomain:'Cùng tên miá»n',accessNever:'Không bao giá»',align:'Vá» trÃ',alignLeft:'Trái',alignAbsBottom:'Dưá»i tuyá»t Äá»i',alignAbsMiddle:'Giữa tuyá»t Äá»i',alignBaseline:'ÄÆ°á»ng cÆ¡ sá»',alignBottom:'Dưá»i',alignMiddle:'Giữa',alignRight:'Phải',alignTextTop:'PhÃa trên chữ',alignTop:'Trên',quality:'Chất lượng',qualityBest:'Tá»t nhất',qualityHigh:'Cao',qualityAutoHigh:'Cao tá»± Äá»ng',qualityMedium:'Trung bình',qualityAutoLow:'Thấp tá»± Äá»ng',qualityLow:'Thấp',windowModeWindow:'Cá»a sá»',windowModeOpaque:'Má» Äục',windowModeTransparent:'Trong suá»t',windowMode:'Chế Äá» cá»a sá»',flashvars:'Các biến sá» dà nh cho Flash',bgcolor:'Mà u ná»n',width:'Rá»ng',height:'Cao',hSpace:'Khoảng Äá»m ngang',vSpace:'Khoảng Äá»m dá»c',validateSrc:'Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết',validateWidth:'Chiá»u rá»ng phải là sá» nguyên.',validateHeight:'Chiá»u cao phải là sá» nguyên.',validateHSp
ace:'Khoảng Äá»m ngang phải là sá» nguyên.',validateVSpace:'Khoảng Äá»m dá»c phải là sá» nguyên.'},spellCheck:{toolbar:'Kiá»m tra chÃnh tả',title:'Kiá»m tra chÃnh tả',notAvailable:'Xin lá»i, dá»ch vụ nà y hiá»n tại không có.',errorLoading:'Lá»i khi Äang nạp dá»ch vụ ứng dụng: %s.',notInDic:'Không có trong từ Äiá»n',changeTo:'Chuyá»n thà nh',btnIgnore:'Bá» qua',btnIgnoreAll:'Bá» qua tất cả',btnReplace:'Thay thế',btnReplaceAll:'Thay thế tất cả',btnUndo:'Phục há»i lại',noSuggestions:'- Không ÄÆ°a ra gợi ý vá» từ -',progress:'Äang tiến hà nh kiá»m tra chÃnh tả...',noMispell:'Hoà n tất kiá»m tra chÃnh tả: Không có lá»i chÃnh tả',noChanges:'Hoà n tất kiá»m tra chÃnh tả: Không có từ nà o ÄÆ°á»£c thay Äá»i',oneChange:'Hoà n tất kiá»m tra chÃnh tả: Má»t từ Äã ÄÆ°á»£c thay Äá»i',manyChanges:'Hoà n tất kiá»m tra chÃnh tả: %1 từ Äã ÄÆ°á»£c thay Äá»i
',ieSpellDownload:'Chức nÄng kiá»m tra chÃnh tả chưa ÄÆ°á»£c cà i Äặt. Bạn có muá»n tải vá» ngay bây giá»?'},smiley:{toolbar:'Hình biá»u lá» cảm xúc (mặt cưá»i)',title:'Chèn hình biá»u lá» cảm xúc (mặt cưá»i)',options:'Tùy chá»n hình biá»u lá» cảm xúc'},elementsPath:{eleLabel:'Nhãn thà nh phần',eleTitle:'%1 thà nh phần'},numberedlist:'Danh sách có thứ tá»±',bulletedlist:'Danh sách không thứ tá»±',indent:'Dá»ch và o trong',outdent:'Dá»ch ra ngoà i',justify:{left:'Canh trái',center:'Canh giữa',right:'Canh phải',block:'Canh Äá»u'},blockquote:'Khá»i trÃch dẫn',clipboard:{title:'Dán',cutError:'Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh cắt. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+X).',copyError:'Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh
sao chép. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+C).',pasteMsg:'Hãy dán ná»i dung và o trong khung bên dưá»i, sá» dụng tá» hợp phÃm (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn và o nút <STRONG>Äá»ng ý</STRONG>.',securityMsg:'Do thiết láºp bảo máºt cá»§a trình duyá»t nên trình biên táºp không thá» truy cáºp trá»±c tiếp và o ná»i dung Äã sao chép. Bạn cần phải dán lại ná»i dung và o cá»a sá» nà y.',pasteArea:'Khu vá»±c dán'},pastefromword:{confirmCleanup:'VÄn bản bạn muá»n dán có kèm Äá»nh dạng cá»§a Word. Bạn có muá»n loại bá» Äá»nh dạng Word trưá»c khi dán?',toolbar:'Dán vá»i Äá»nh dạng Word',title:'Dán vá»i Äá»nh dạng Word',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'Dán theo Äá»nh dạng vÄn bản thuần',title:'Dán theo Äá»nh dạng vÄn bản thuần'},templates:{button:'Mẫu dá»±ng sẵn',title:'Ná»i du
ng Mẫu dá»±ng sẵn',options:'Tùy chá»n mẫu dá»±ng sẵn',insertOption:'Thay thế ná»i dung hiá»n tại',selectPromptMsg:'Hãy chá»n mẫu dá»±ng sẵn Äá» má» trong trình biên táºp<br>(ná»i dung hiá»n tại sẽ bá» mất):',emptyListMsg:'(Không có mẫu dá»±ng sẵn nà o ÄÆ°á»£c Äá»nh nghÄ©a)'},showBlocks:'Hiá»n thá» các khá»i',stylesCombo:{label:'Kiá»u',panelTitle:'Phong cách Äá»nh dạng',panelTitle1:'Kiá»u khá»i',panelTitle2:'Kiá»u trá»±c tiếp',panelTitle3:'Kiá»u Äá»i tượng'},format:{label:'Äá»nh dạng',panelTitle:'Äá»nh dạng',tag_p:'Bình thưá»ng (P)',tag_pre:'Äã thiết láºp',tag_address:'Address',tag_h1:'Heading 1',tag_h2:'Heading 2',tag_h3:'Heading 3',tag_h4:'Heading 4',tag_h5:'Heading 5',tag_h6:'Heading 6',tag_div:'Bình thưá»ng (DIV)'},div:{title:'Tạo khá»i các thà nh phần',toolbar:'Tạo khá»i các thà nh phần',cssClassInputLabel:'Các lá»p CSS',styleSelectLabel:'Kiá»u (style)',IdInputLabel:'Äá»
nh danh (id)',languageCodeInputLabel:'Mã ngôn ngữ',inlineStyleInputLabel:'Kiá»u ná»i dòng',advisoryTitleInputLabel:'Nhan Äá» hưá»ng dẫn',langDirLabel:'Hưá»ng ngôn ngữ',langDirLTRLabel:'Trái sang phải (LTR)',langDirRTLLabel:'Phải qua trái (RTL)',edit:'Chá»nh sá»a',remove:'Xóa bá»'},font:{label:'Phông',voiceLabel:'Phông',panelTitle:'Phông'},fontSize:{label:'Cỡ chữ',voiceLabel:'KÃch cỡ phông',panelTitle:'Cỡ chữ'},colorButton:{textColorTitle:'Mà u chữ',bgColorTitle:'Mà u ná»n',panelTitle:'Mà u sắc',auto:'Tá»± Äá»ng',more:'Mà u khác...'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'Brown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',E
E82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'Kiá»m tra chÃnh tả ngay khi gõ chữ (SCAYT)',opera_title:'Không há» trợ trên trình duyá»t Opera',enable:'Báºt SCAYT',disable:'Tắt SCAYT',about:'Thông tin vá» SCAYT',toggle:'Báºt tắt SCAYT',options:'Tùy chá»n',langs:'Ngôn ngữ',moreSuggestions:'Äá» xuất thêm',ignore:'Bá» qua',ignoreAll:'Bá» qua tất cả',addWord:'Thêm từ',emptyDic:'Tên cá»§a từ Äiá»n không ÄÆ°á»£c Äá» trá»ng.',optionsTab:'Tùy chá»n',allCaps:'Không phân biá»t chữ HOA chữ thưá»ng',ignoreDomainNames:'Bá» qua tên miá»n',mixedCase:'Không phân biá»t loại chữ',mixedWithDigits:'Không phân biá»t chữ và s
á»',languagesTab:'Tab ngôn ngữ',dictionariesTab:'Từ Äiá»n',dic_field_name:'Tên từ Äiá»n',dic_create:'Tạo',dic_restore:'Phục há»i',dic_delete:'Xóa',dic_rename:'Thay tên',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'Thông tin'},about:{title:'Thông tin vá» CKEditor',dlgTitle:'Thông tin vá» CKEditor',moreInfo:'Vui lòng ghé thÄm trang web cá»§a chúng tôi Äá» có thông tin vá» giấy phép:',copy:'Bản quyá»n © $1. Giữ toà n quyá»n.'},maximize:'Phóng to tá»i Äa',minimize:'Thu nhá»',fakeobjects:{anchor:'Äiá»m neo',flash:'Flash',div:'Ngắt trang',unknown:'
Äá»i tượng không rõ rà ng'},resize:'Kéo rê Äá» thay Äá»i kÃch cỡ',colordialog:{title:'Chá»n mà u',options:'Color Options',highlight:'Mà u chá»n',selected:'Mà u Äã chá»n',clear:'Xóa bá»'},toolbarCollapse:'Thu gá»n thanh công cụ',toolbarExpand:'Má» rá»ng thnah công cụ',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['vi']={"dir":"ltr","editor":"Bá» soạn thảo","common":{"editorHelp":"Nhấn ALT + 0 Äá» ÄÆ°á»£c giúp Äỡ","browseServer":"Duyá»t trên máy chá»§","url":"URL","protocol":"Giao thức","upload":"Tải lên","uploadSubmit":"Tải lên máy chá»§","image":"Hình ảnh","flash":"Flash","form":"Biá»u mẫu","checkbox":"Nút kiá»m","radio":"Nút chá»n","textField":"Trưá»ng vÄn bản","textarea":"Vùng vÄn bản","hiddenField":"Trưá»ng ẩn","button":"Nút","select":"à chá»n","imageButton":"Nút hình ảnh","notSet":"<không thiết láºp>","id":"Äá»nh danh","name":"Tên","langDir":"Hưá»ng ngôn ngữ","langDirLtr":"Trái sang phải (LTR)","langDirRtl":"Phải sang trái (RTL)","langCode":"Mã ngôn ngữ","longDescr":"Mô tả URL","cssClass":"Lá»p Stylesheet","advisoryTitle":"Nhan Äá» hưá»ng dẫn","cssStyle":"Kiá»u (style)","ok":"Äá»ng ý","cancel":"Bá» qua","close":"Äóng","preview":"Xem trưá»c","resize":"Kéo rê Äá» thay
Äá»i kÃch cỡ","generalTab":"Tab chung","advancedTab":"Tab má» rá»ng","validateNumberFailed":"Giá trá» nà y không phải là sá».","confirmNewPage":"Má»i thay Äá»i không ÄÆ°á»£c lưu lại, ná»i dung nà y sẽ bá» mất. Bạn có chắc chắn muá»n tải má»t trang má»i?","confirmCancel":"Má»t và i tùy chá»n Äã bá» thay Äá»i. Bạn có chắc chắn muá»n Äóng há»p thoại?","options":"Tùy chá»n","target":"ÄÃch Äến","targetNew":"Cá»a sá» má»i (_blank)","targetTop":"Cá»a sá» trên cùng (_top)","targetSelf":"Tại trang (_self)","targetParent":"Cá»a sá» cha (_parent)","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","styles":"Kiá»u","cssClasses":"Lá»p CSS","width":"Chiá»u rá»ng","height":"chiá»u cao","align":"Vá» trÃ","alignLeft":"Trái","alignRight":"Phải","alignCenter":"Giữa","alignTop":"Trên","alignMiddle":"Giữa","alignBottom":"Dưá»i","invalidValue":"Invalid value.","invalidHeight
":"Chiá»u cao phải là sá» nguyên.","invalidWidth":"Chiá»u rá»ng phải là sá» nguyên.","invalidCssLength":"Giá trá» quy Äá»nh cho trưá»ng \"%1\" phải là má»t sá» dương có hoặc không có má»t ÄÆ¡n vá» Äo CSS hợp lá» (px, %, in, cm, mm, em, ex, pt, hoặc pc).","invalidHtmlLength":"Giá trá» quy Äá»nh cho trưá»ng \"%1\" phải là má»t sá» dương có hoặc không có má»t ÄÆ¡n vá» Äo HTML hợp lá» (px hoặc %).","invalidInlineStyle":"Giá trá» quy Äá»nh cho kiá»u ná»i tuyến phải bao gá»m má»t hoặc nhiá»u dữ liá»u vá»i Äá»nh dạng \"tên:giá trá»\", cách nhau bằng dấu chấm phẩy.","cssLengthTooltip":"Nháºp má»t giá trá» theo pixel hoặc má»t sá» vá»i má»t ÄÆ¡n vá» CSS hợp lá» (px, %, in, cm, mm, em, ex, pt, hoặc pc).","unavailable":"%1<span class=\"cke_accessibility\">, không có</span>"},"about":{"copy":"Bản quyá»n © $1. Giữ toà n quyá»n.","dlgTitle":"Thông tin vá» C
KEditor","help":"Kiá»m tra $1 Äá» ÄÆ°á»£c giúp Äỡ.","moreInfo":"Vui lòng ghé thÄm trang web cá»§a chúng tôi Äá» có thông tin vá» giấy phép:","title":"Thông tin vá» CKEditor","userGuide":"Hưá»ng dẫn sá» dụng CKEditor"},"basicstyles":{"bold":"Äáºm","italic":"Nghiêng","strike":"Gạch xuyên ngang","subscript":"Chá» sá» dưá»i","superscript":"Chá» sá» trên","underline":"Gạch chân"},"bidi":{"ltr":"VÄn bản hưá»ng từ trái sang phải","rtl":"VÄn bản hưá»ng từ phải sang trái"},"blockquote":{"toolbar":"Khá»i trÃch dẫn"},"clipboard":{"copy":"Sao chép","copyError":"Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh sao chép. Hãy sá» dụng bà n phÃm cho lá»nh nà y (Ctrl/Cmd+C).","cut":"Cắt","cutError":"Các thiết láºp bảo máºt cá»§a trình duyá»t không cho phép trình biên táºp tá»± Äá»ng thá»±c thi lá»nh cắt. Hãy sá» dụng bà n
phÃm cho lá»nh nà y (Ctrl/Cmd+X).","paste":"Dán","pasteArea":"Khu vá»±c dán","pasteMsg":"Hãy dán ná»i dung và o trong khung bên dưá»i, sá» dụng tá» hợp phÃm (<STRONG>Ctrl/Cmd+V</STRONG>) và nhấn và o nút <STRONG>Äá»ng ý</STRONG>.","securityMsg":"Do thiết láºp bảo máºt cá»§a trình duyá»t nên trình biên táºp không thá» truy cáºp trá»±c tiếp và o ná»i dung Äã sao chép. Bạn cần phải dán lại ná»i dung và o cá»a sá» nà y.","title":"Dán"},"colorbutton":{"auto":"Tá»± Äá»ng","bgColorTitle":"Mà u ná»n","colors":{"000":"Äen","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Nâu","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Xám","F00":"Äá»","FF8C00":"Dark Orange","FFD700":"Và ng","008000":"Xanh lá cây","0FF":"Cyan","00F":"Xanh da
trá»i","EE82EE":"TÃm","A9A9A9":"Xám tá»i","FFA07A":"Light Salmon","FFA500":"Mà u cam","FFFF00":"Và ng","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"Trắng"},"more":"Mà u khác...","panelTitle":"Mà u sắc","textColorTitle":"Mà u chữ"},"colordialog":{"clear":"Xóa bá»","highlight":"Mà u chá»n","options":"Tùy chá»n mà u","selected":"Mà u Äã chá»n","title":"Chá»n mà u"},"templates":{"button":"Mẫu dá»±ng sẵn","emptyListMsg":"(Không có mẫu dá»±ng sẵn nà o ÄÆ°á»£c Äá»nh nghÄ©a)","insertOption":"Thay thế ná»i dung hiá»n tại","options":"Tùy chá»n mẫu dá»±ng sẵn","selectPromptMsg":"Hãy chá»n mẫu dá»±ng sẵn Äá» má» trong trình biên táºp<br>(ná»i dung hiá»n tại sẽ bá» mất):","title":"Ná»i dung Mẫu dá»±ng sáº
µn"},"contextmenu":{"options":"Tùy chá»n menu bá» xung"},"div":{"IdInputLabel":"Äá»nh danh (id)","advisoryTitleInputLabel":"Nhan Äá» hưá»ng dẫn","cssClassInputLabel":"Các lá»p CSS","edit":"Chá»nh sá»a","inlineStyleInputLabel":"Kiá»u ná»i dòng","langDirLTRLabel":"Trái sang phải (LTR)","langDirLabel":"Hưá»ng ngôn ngữ","langDirRTLLabel":"Phải qua trái (RTL)","languageCodeInputLabel":"Mã ngôn ngữ","remove":"Xóa bá»","styleSelectLabel":"Kiá»u (style)","title":"Tạo khá»i các thà nh phần","toolbar":"Tạo khá»i các thà nh phần"},"toolbar":{"toolbarCollapse":"Thu gá»n thanh công cụ","toolbarExpand":"Má» rá»ng thnah công cụ","toolbarGroups":{"document":"Tà i liá»u","clipboard":"Clipboard/Undo","editing":"Chá»nh sá»a","forms":"Bảng biá»u","basicstyles":"Kiá»u cÆ¡ bản","paragraph":"Äoạn","links":"Liên kết","insert":"Chèn","styles":"Kiá»u","colors":"Mà u sắc","tools":"Công cụ"},"toolbars":"Thanh công cụ"},"e
lementspath":{"eleLabel":"Nhãn thà nh phần","eleTitle":"%1 thà nh phần"},"list":{"bulletedlist":"Chèn/Xoá Danh sách không thứ tá»±","numberedlist":"Chèn/Xoá Danh sách có thứ tá»±"},"indent":{"indent":"Dá»ch và o trong","outdent":"Dá»ch ra ngoà i"},"find":{"find":"Tìm kiếm","findOptions":"Tìm tùy chá»n","findWhat":"Tìm chuá»i:","matchCase":"Phân biá»t chữ hoa/thưá»ng","matchCyclic":"Giá»ng má»t phần","matchWord":"Giá»ng toà n bá» từ","notFoundMsg":"Không tìm thấy chuá»i cần tìm.","replace":"Thay thế","replaceAll":"Thay thế tất cả","replaceSuccessMsg":"%1 vá» trà Äã ÄÆ°á»£c thay thế.","replaceWith":"Thay bằng:","title":"Tìm kiếm và thay thế"},"fakeobjects":{"anchor":"Äiá»m neo","flash":"Flash","hiddenfield":"Trưá»ng ẩn","iframe":"IFrame","unknown":"Äá»i tượng không rõ rà ng"},"flash":{"access":"Truy cáºp mã","accessAlways":"Luôn luôn","accessNever":"Không bao giá»","accessSameDomain":"CÃ
¹ng tên miá»n","alignAbsBottom":"Dưá»i tuyá»t Äá»i","alignAbsMiddle":"Giữa tuyá»t Äá»i","alignBaseline":"ÄÆ°á»ng cÆ¡ sá»","alignTextTop":"PhÃa trên chữ","bgcolor":"Mà u ná»n","chkFull":"Cho phép toà n mà n hình","chkLoop":"Lặp","chkMenu":"Cho phép báºt menu cá»§a Flash","chkPlay":"Tá»± Äá»ng chạy","flashvars":"Các biến sá» dà nh cho Flash","hSpace":"Khoảng Äá»m ngang","properties":"Thuá»c tÃnh Flash","propertiesTab":"Thuá»c tÃnh","quality":"Chất lượng","qualityAutoHigh":"Cao tá»± Äá»ng","qualityAutoLow":"Thấp tá»± Äá»ng","qualityBest":"Tá»t nhất","qualityHigh":"Cao","qualityLow":"Thấp","qualityMedium":"Trung bình","scale":"Tá»· lá»","scaleAll":"Hiá»n thá» tất cả","scaleFit":"Vừa vặn","scaleNoBorder":"Không ÄÆ°á»ng viá»n","title":"Thuá»c tÃnh Flash","vSpace":"Khoảng Äá»m dá»c","validateHSpace":"Khoảng Äá»m ngang phải là sá» nguyên.","validateSrc":"Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên ká
º¿t","validateVSpace":"Khoảng Äá»m dá»c phải là sá» nguyên.","windowMode":"Chế Äá» cá»a sá»","windowModeOpaque":"Má» Äục","windowModeTransparent":"Trong suá»t","windowModeWindow":"Cá»a sá»"},"font":{"fontSize":{"label":"Cỡ chữ","voiceLabel":"KÃch cỡ phông","panelTitle":"Cỡ chữ"},"label":"Phông","panelTitle":"Phông","voiceLabel":"Phông"},"forms":{"button":{"title":"Thuá»c tÃnh cá»§a nút","text":"Chuá»i hiá»n thá» (giá trá»)","type":"Kiá»u","typeBtn":"Nút bấm","typeSbm":"Nút gá»i","typeRst":"Nút nháºp lại"},"checkboxAndRadio":{"checkboxTitle":"Thuá»c tÃnh nút kiá»m","radioTitle":"Thuá»c tÃnh nút chá»n","value":"Giá trá»","selected":"ÄÆ°á»£c chá»n"},"form":{"title":"Thuá»c tÃnh biá»u mẫu","menu":"Thuá»c tÃnh biá»u mẫu","action":"Hà nh Äá»ng","method":"Phương thức","encoding":"Bảng mã"},"hidden":{"title":"Thuá»c tÃnh trưá»ng ẩn","name":"Tên","value":"Giá trá»"},"select":{"title":"Thuá
»c tÃnh ô chá»n","selectInfo":"Thông tin","opAvail":"Các tùy chá»n có thá» sá» dụng","value":"Giá trá»","size":"KÃch cỡ","lines":"dòng","chkMulti":"Cho phép chá»n nhiá»u","opText":"VÄn bản","opValue":"Giá trá»","btnAdd":"Thêm","btnModify":"Thay Äá»i","btnUp":"Lên","btnDown":"Xuá»ng","btnSetValue":"Giá trá» ÄÆ°á»£c chá»n","btnDelete":"Nút xoá"},"textarea":{"title":"Thuá»c tÃnh vùng vÄn bản","cols":"Sá» cá»t","rows":"Sá» hà ng"},"textfield":{"title":"Thuá»c tÃnh trưá»ng vÄn bản","name":"Tên","value":"Giá trá»","charWidth":"Äá» rá»ng cá»§a ký tá»±","maxChars":"Sá» ký tá»± tá»i Äa","type":"Kiá»u","typeText":"Ký tá»±","typePass":"Máºt khẩu","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"Äá»nh dạng","panelTitle":"Äá»nh dạng","tag_address":"Address","tag_div":"Bình thưá»ng (DIV)","tag_h1":"Heading 1","tag_h2":"Heading 2","tag_h3":"Heading 3",
"tag_h4":"Heading 4","tag_h5":"Heading 5","tag_h6":"Heading 6","tag_p":"Bình thưá»ng (P)","tag_pre":"Äã thiết láºp"},"horizontalrule":{"toolbar":"Chèn ÄÆ°á»ng phân cách ngang"},"iframe":{"border":"Hiá»n thá» viá»n khung","noUrl":"Vui lòng nháºp Äá»a chá» iframe","scrolling":"KÃch hoạt thanh cuá»n","title":"Thuá»c tÃnh iframe","toolbar":"Iframe"},"image":{"alertUrl":"Hãy ÄÆ°a và o ÄÆ°á»ng dẫn cá»§a ảnh","alt":"Chú thÃch ảnh","border":"ÄÆ°á»ng viá»n","btnUpload":"Tải lên máy chá»§","button2Img":"Bạn có muá»n chuyá»n nút bấm bằng ảnh ÄÆ°á»£c chá»n thà nh ảnh?","hSpace":"Khoảng Äá»m ngang","img2Button":"Bạn có muá»n chuyá»n Äá»i ảnh ÄÆ°á»£c chá»n thà nh nút bấm bằng ảnh?","infoTab":"Thông tin cá»§a ảnh","linkTab":"Tab liên kết","lockRatio":"Giữ nguyên tá»· lá»","menu":"Thuá»c tÃnh cá»§a ảnh","resetSize":"KÃch thưá»c gá»c","title":"Thuá»c tÃnh cá»§a ảnh","titleButton":"Thuá»
c tÃnh nút cá»§a ảnh","upload":"Tải lên","urlMissing":"Thiếu ÄÆ°á»ng dẫn hình ảnh","vSpace":"Khoảng Äá»m dá»c","validateBorder":"Chiá»u rá»ng cá»§a ÄÆ°á»ng viá»n phải là má»t sá» nguyên dương","validateHSpace":"Khoảng Äá»m ngang phải là má»t sá» nguyên dương","validateVSpace":"Khoảng Äá»m dá»c phải là má»t sá» nguyên dương"},"smiley":{"options":"Tùy chá»n hình biá»u lá» cảm xúc","title":"Chèn hình biá»u lá» cảm xúc (mặt cưá»i)","toolbar":"Hình biá»u lá» cảm xúc (mặt cưá»i)"},"justify":{"block":"Canh Äá»u","center":"Canh giữa","left":"Canh trái","right":"Canh phải"},"link":{"acccessKey":"PhÃm há» trợ truy cáºp","advanced":"Má» rá»ng","advisoryContentType":"Ná»i dung hưá»ng dẫn","advisoryTitle":"Nhan Äá» hưá»ng dẫn","anchor":{"toolbar":"Chèn/Sá»a Äiá»m neo","menu":"Thuá»c tÃnh Äiá»m neo","title":"Thuá»c tÃnh Äiá»m neo","name":"Tên cá»§a Äiá»m neo","e
rrorName":"Hãy nháºp và o tên cá»§a Äiá»m neo","remove":"Xóa neo"},"anchorId":"Theo Äá»nh danh thà nh phần","anchorName":"Theo tên Äiá»m neo","charset":"Bảng mã cá»§a tà i nguyên ÄÆ°á»£c liên kết Äến","cssClasses":"Lá»p Stylesheet","emailAddress":"Thư Äiá»n tá»","emailBody":"Ná»i dung thông Äiá»p","emailSubject":"Tiêu Äá» thông Äiá»p","id":"Äá»nh danh","info":"Thông tin liên kết","langCode":"Mã ngôn ngữ","langDir":"Hưá»ng ngôn ngữ","langDirLTR":"Trái sang phải (LTR)","langDirRTL":"Phải sang trái (RTL)","menu":"Sá»a liên kết","name":"Tên","noAnchors":"(Không có Äiá»m neo nà o trong tà i liá»u)","noEmail":"Hãy ÄÆ°a và o Äá»a chá» thư Äiá»n tá»","noUrl":"Hãy ÄÆ°a và o ÄÆ°á»ng dẫn liên kết (URL)","other":"<khác>","popupDependent":"Phụ thuá»c (Netscape)","popupFeatures":"Äặc Äiá»m cá»§a cá»a sá» Popup","popupFullScreen":"Toà n mà n hình (IE)","popupLeft":"Vá» trà bên trái","pop
upLocationBar":"Thanh vá» trÃ","popupMenuBar":"Thanh Menu","popupResizable":"Có thá» thay Äá»i kÃch cỡ","popupScrollBars":"Thanh cuá»n","popupStatusBar":"Thanh trạng thái","popupToolbar":"Thanh công cụ","popupTop":"Vá» trà phÃa trên","rel":"Quan há»","selectAnchor":"Chá»n má»t Äiá»m neo","styles":"Kiá»u (style)","tabIndex":"Chá» sá» cá»§a Tab","target":"ÄÃch","targetFrame":"<khung>","targetFrameName":"Tên khung ÄÃch","targetPopup":"<cá»a sá» popup>","targetPopupName":"Tên cá»a sá» Popup","title":"Liên kết","toAnchor":"Neo trong trang nà y","toEmail":"Thư Äiá»n tá»","toUrl":"URL","toolbar":"Chèn/Sá»a liên kết","type":"Kiá»u liên kết","unlink":"Xoá liên kết","upload":"Tải lên"},"liststyle":{"armenian":"Sá» theo kiá»u Armenian","bulletedTitle":"Thuá»c tÃnh danh sách không thứ tá»±","circle":"Khuyên tròn","decimal":"Kiá»u sá» (1, 2, 3 ...)","decimalLeadingZero":"Kiá»u sá» (01, 02, 03...)","disc":"Hình Ä
Ä©a","georgian":"Sá» theo kiá»u Georgian (an, ban, gan...)","lowerAlpha":"Kiá»u abc thưá»ng (a, b, c, d, e...)","lowerGreek":"Kiá»u Hy Lạp (alpha, beta, gamma...)","lowerRoman":"Sá» La Mã kiá»u thưá»ng (i, ii, iii, iv, v...)","none":"Không gì cả","notset":"<không thiết láºp>","numberedTitle":"Thuá»c tÃnh danh sách có thứ tá»±","square":"Hình vuông","start":"Bắt Äầu","type":"Kiá»u loại","upperAlpha":"Kiá»u ABC HOA (A, B, C, D, E...)","upperRoman":"Sá» La Mã kiá»u HOA (I, II, III, IV, V...)","validateStartNumber":"Sá» bắt Äầu danh sách phải là má»t sá» nguyên."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"Phóng to tá»i Äa","minimize":"Thu nhá»"},"newpage":{"toolbar":"Trang má»i"},"pagebreak":{"alt":"Ngắt trang","toolbar":"Chèn ngắt trang"},"pastetext":{"button":"Dán theo Äá»nh dạng vÄn bản thuần","title":"Dán theo Äá»nh dạng vÄn bản thuần"},"pastefromword":{"confirmCle
anup":"VÄn bản bạn muá»n dán có kèm Äá»nh dạng cá»§a Word. Bạn có muá»n loại bá» Äá»nh dạng Word trưá»c khi dán?","error":"Không thá» Äá» là m sạch các dữ liá»u dán do má»t lá»i ná»i bá»","title":"Dán vá»i Äá»nh dạng Word","toolbar":"Dán vá»i Äá»nh dạng Word"},"preview":{"preview":"Xem trưá»c"},"print":{"toolbar":"In"},"removeformat":{"toolbar":"Xoá Äá»nh dạng"},"save":{"toolbar":"Lưu"},"selectall":{"toolbar":"Chá»n tất cả"},"showblocks":{"toolbar":"Hiá»n thá» các khá»i"},"sourcearea":{"toolbar":"Mã HTML"},"specialchar":{"options":"Tùy chá»n các ký tá»± Äặc biá»t","title":"Hãy chá»n ký tá»± Äặc biá»t","toolbar":"Chèn ký tá»± Äặc biá»t"},"scayt":{"about":"Thông tin vá» SCAYT","aboutTab":"Thông tin","addWord":"Thêm từ","allCaps":"Không phân biá»t chữ HOA chữ thưá»ng","dic_create":"Tạo","dic_delete":"Xóa","dic_field_name":"Tên từ Äiá»n","dic_info":"Ban Äầu, tá»
« Äiá»n ngưá»i dùng ÄÆ°á»£c lưu trữ trong má»t cookie. Tuy nhiên, kÃch thưá»c cookie bá» giá»i hạn. Khi ngưá»i sá» dụng từ Äiá»n phát triá»n Äến Äiá»m không thá» ÄÆ°á»£c lưu trữ trong cookie, từ Äiá»n sẽ ÄÆ°á»£c lưu trữ trên máy chá»§ cá»§a chúng tôi. Äá» lưu trữ từ Äiá»n cá nhân cá»§a bạn trên máy chá»§ cá»§a chúng tôi, bạn nên xác Äá»nh má»t tên cho từ Äiá»n cá»§a bạn. Nếu bạn Äã có má»t cuá»n từ Äiá»n ÄÆ°á»£c lưu trữ, xin vui lòng gõ tên cá»§a nó và nhấn và o nút Khôi phục.","dic_rename":"Thay tên","dic_restore":"Phục há»i","dictionariesTab":"Từ Äiá»n","disable":"Tắt SCAYT","emptyDic":"Tên cá»§a từ Äiá»n không ÄÆ°á»£c Äá» trá»ng.","enable":"Báºt SCAYT","ignore":"Bá» qua","ignoreAll":"Bá» qua tất cả","ignoreDomainNames":"Bá» qua tên miá»n","langs":"Ngôn ngữ","languagesTab":"Tab ngôn ngữ","mixedCase":"Không phân biá»t loại
chữ","mixedWithDigits":"Không phân biá»t chữ và sá»","moreSuggestions":"Äá» xuất thêm","opera_title":"Không há» trợ trên trình duyá»t Opera","options":"Tùy chá»n","optionsTab":"Tùy chá»n","title":"Kiá»m tra chÃnh tả ngay khi gõ chữ (SCAYT)","toggle":"Báºt tắt SCAYT","noSuggestions":"No suggestion"},"stylescombo":{"label":"Kiá»u","panelTitle":"Phong cách Äá»nh dạng","panelTitle1":"Kiá»u khá»i","panelTitle2":"Kiá»u trá»±c tiếp","panelTitle3":"Kiá»u Äá»i tượng"},"table":{"border":"KÃch thưá»c ÄÆ°á»ng viá»n","caption":"Äầu Äá»","cell":{"menu":"Ã","insertBefore":"Chèn ô PhÃa trưá»c","insertAfter":"Chèn ô PhÃa sau","deleteCell":"Xoá ô","merge":"Kết hợp ô","mergeRight":"Kết hợp sang phải","mergeDown":"Kết hợp xuá»ng dưá»i","splitHorizontal":"Phân tách ô theo chiá»u ngang","splitVertical":"Phân tách ô theo chiá»u dá»c","title":"Thuá»c tÃnh cá»§a ô","cellType":"Kiá»u cá»§a ô","r
owSpan":"Kết hợp hà ng","colSpan":"Kết hợp cá»t","wordWrap":"Chữ liá»n hà ng","hAlign":"Canh lá» ngang","vAlign":"Canh lá» dá»c","alignBaseline":"ÄÆ°á»ng cÆ¡ sá»","bgColor":"Mà u ná»n","borderColor":"Mà u viá»n","data":"Dữ liá»u","header":"Äầu Äá»","yes":"Có","no":"Không","invalidWidth":"Chiá»u rá»ng cá»§a ô phải là má»t sá» nguyên.","invalidHeight":"Chiá»u cao cá»§a ô phải là má»t sá» nguyên.","invalidRowSpan":"Sá» hà ng kết hợp phải là má»t sá» nguyên.","invalidColSpan":"Sá» cá»t kết hợp phải là má»t sá» nguyên.","chooseColor":"Chá»n mà u"},"cellPad":"Khoảng Äá»m giữ ô và ná»i dung","cellSpace":"Khoảng cách giữa các ô","column":{"menu":"Cá»t","insertBefore":"Chèn cá»t phÃa trưá»c","insertAfter":"Chèn cá»t phÃa sau","deleteColumn":"Xoá cá»t"},"columns":"Sá» cá»t","deleteTable":"Xóa bảng","headers":"Äầu Äá»","headersBoth":"Cả hai","headersColumn":"Cá»t Äầu tiên"
,"headersNone":"Không có","headersRow":"Hà ng Äầu tiên","invalidBorder":"KÃch cỡ cá»§a ÄÆ°á»ng biên phải là má»t sá» nguyên.","invalidCellPadding":"Khoảng Äá»m giữa ô và ná»i dung phải là má»t sá» nguyên.","invalidCellSpacing":"Khoảng cách giữa các ô phải là má»t sá» nguyên.","invalidCols":"Sá» lượng cá»t phải là má»t sá» lá»n hÆ¡n 0.","invalidHeight":"Chiá»u cao cá»§a bảng phải là má»t sá» nguyên.","invalidRows":"Sá» lượng hà ng phải là má»t sá» lá»n hÆ¡n 0.","invalidWidth":"Chiá»u rá»ng cá»§a bảng phải là má»t sá» nguyên.","menu":"Thuá»c tÃnh bảng","row":{"menu":"Hà ng","insertBefore":"Chèn hà ng phÃa trưá»c","insertAfter":"Chèn hà ng phÃa sau","deleteRow":"Xoá hà ng"},"rows":"Sá» hà ng","summary":"Tóm lược","title":"Thuá»c tÃnh bảng","toolbar":"Bảng","widthPc":"Phần trÄm (%)","widthPx":"Äiá»m ảnh (px)","widthUnit":"ÄÆ¡n vá»"},"undo":{"redo":"Là m lại thao
tác","undo":"Khôi phục thao tác"},"wsc":{"btnIgnore":"Bá» qua","btnIgnoreAll":"Bá» qua tất cả","btnReplace":"Thay thế","btnReplaceAll":"Thay thế tất cả","btnUndo":"Phục há»i lại","changeTo":"Chuyá»n thà nh","errorLoading":"Lá»i khi Äang nạp dá»ch vụ ứng dụng: %s.","ieSpellDownload":"Chức nÄng kiá»m tra chÃnh tả chưa ÄÆ°á»£c cà i Äặt. Bạn có muá»n tải vá» ngay bây giá»?","manyChanges":"Hoà n tất kiá»m tra chÃnh tả: %1 từ Äã ÄÆ°á»£c thay Äá»i","noChanges":"Hoà n tất kiá»m tra chÃnh tả: Không có từ nà o ÄÆ°á»£c thay Äá»i","noMispell":"Hoà n tất kiá»m tra chÃnh tả: Không có lá»i chÃnh tả","noSuggestions":"- Không ÄÆ°a ra gợi ý vá» từ -","notAvailable":"Xin lá»i, dá»ch vụ nà y hiá»n tại không có.","notInDic":"Không có trong từ Äiá»n","oneChange":"Hoà n tất kiá»m tra chÃnh tả: Má»t từ Äã ÄÆ°á»£c thay Äá»i","progress":"Äang tiến hà nh kiá»m tra ch
Ãnh tả...","title":"Kiá»m tra chÃnh tả","toolbar":"Kiá»m tra chÃnh tả"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/zh-cn.js b/share/static/RichText/lang/zh-cn.js
index 4a6e6b7..11d1ddc 100644
--- a/share/static/RichText/lang/zh-cn.js
+++ b/share/static/RichText/lang/zh-cn.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang['zh-cn']={dir:'ltr',editorTitle:'æè§å³æå¾ç¼è¾å¨, %1, æ ALT+0 æ¥ç帮å©ã',toolbar:'å·¥å
·æ ',editor:'æè§å³æå¾ç¼è¾å¨',source:'æºç ',newPage:'æ°å»º',save:'ä¿å',preview:'é¢è§',cut:'åªå',copy:'å¤å¶',paste:'ç²è´´',print:'æå°',underline:'ä¸å线',bold:'å ç²',italic:'徿',selectAll:'å
¨é',removeFormat:'æ¸
餿 ¼å¼',strike:'å é¤çº¿',subscript:'䏿 ',superscript:'䏿 ',horizontalrule:'æå
¥æ°´å¹³çº¿',pagebreak:'æå
¥å页符',unlink:'åæ¶è¶
龿¥',undo:'æ¤æ¶',redo:'éå',common:{browseServer:'æµè§æå¡å¨',url:'æºæä»¶',protocol:'åè®®',upload:'ä¸ä¼ ',uploadSubmit:'ä¸ä¼ å°æå¡å¨ä¸',image:'å¾è±¡',flash:'Flash',form:'表å',checkbox:'å¤éæ¡',radio:'åéæé®',textField:'åè¡ææ¬',textarea:'å¤è¡ææ¬',hiddenField:'éèå',button:'æé®',select:'å表/èå',imageButton:'å¾åå',notSet:'<没æè®¾ç½®>',id:'ID',name:'åç§°',langDir:'è¯è¨æ¹å',langDirLtr:'ä»å·¦å°å
³ (LTR)',langDirRtl:'ä»å³å°å·¦ (RTL)',langCode:'è¯è¨ä»£ç ',longDescr:'详ç»è¯´æå°å',cssClass:'æ ·å¼ç±»åç§°',advisoryTitle:'æ é¢',cssStyle:'è¡å
æ ·å¼',ok:'ç¡®å®',cancel:'åæ¶',close:'å
³é',preview:'é¢è§',generalTab:'常è§',advancedTab:'é«çº§',validateNumberFailed:'éè¦è¾å
¥æ°åæ ¼å¼',confirmNewPage:'å½åææ¡£å
容æªä¿å,æ¯å¦ç¡®è®¤æ°å»ºææ¡£ï¼',confirmCancel:'é¨åä¿®æ¹å°æªä¿åï¼æ¯å¦ç¡®è®¤å
³éå¯¹è¯æ¡ï¼',options:'é项',target:'ç®æ çªå£',targetNew:'æ°çªå£ (_blank)',targetTop:'æ´é¡µ (_top)',targetSelf:'æ¬çªå£ (_self)',targetParent:'ç¶çªå£ (_parent)',langDirLTR:'ä»å·¦å°å³ (LTR)',langDirRTL:'ä»å³å°å·¦ (RTL)',styles:'æ ·å¼',cssClasses:'æ ·å¼ç±»',unavailable:'%1<span class="cke_accessibility">, ä¸å¯ç¨</span>'},contextmenu:{options:'å¿«æ·èåé项'},specialChar:{toolbar:'æå
¥ç¹æ®ç¬¦å·',title:'éæ©ç¹æ®ç¬¦å·',options:'ç¹æ®ç¬¦å·é项'},link:{toolbar:'æå
¥/ç¼è¾è¶
龿¥',other:'<
å
¶ä»>',menu:'ç¼è¾è¶
龿¥',title:'è¶
龿¥',info:'è¶
龿¥ä¿¡æ¯',target:'ç®æ ',upload:'ä¸ä¼ ',advanced:'é«çº§',type:'è¶
龿¥ç±»å',toUrl:'å°å',toAnchor:'页å
éç¹é¾æ¥',toEmail:'çµåé®ä»¶',targetFrame:'<æ¡æ¶>',targetPopup:'<å¼¹åºçªå£>',targetFrameName:'ç®æ æ¡æ¶åç§°',targetPopupName:'å¼¹åºçªå£åç§°',popupFeatures:'å¼¹åºçªå£å±æ§',popupResizable:'å¯ç¼©æ¾',popupStatusBar:'ç¶ææ ',popupLocationBar:'å°åæ ',popupToolbar:'å·¥å
·æ ',popupMenuBar:'èåæ ',popupFullScreen:'å
¨å± (IE)',popupScrollBars:'æ»å¨æ¡',popupDependent:'ä¾é (NS)',popupWidth:'宽',popupLeft:'å·¦',popupHeight:'é«',popupTop:'å³',id:'ID',langDir:'è¯è¨æ¹å',langDirLTR:'ä»å·¦å°å³ (LTR)',langDirRTL:'ä»å³å°å·¦ (RTL)',acccessKey:'访é®é®',name:'åç§°',langCode:'è¯è¨ä»£ç ',tabIndex:'Tab 鮿¬¡åº',advisoryTitle:'æ é¢',advisoryContentType:'å
容类å',cssClasses:'æ ·å¼ç±»åç§°',charset:'å符ç¼ç ',styles:'è¡å
æ ·å¼',selectAnchor:'é
æ©ä¸ä¸ªéç¹',anchorName:'æéç¹åç§°',anchorId:'æéç¹ ID',emailAddress:'å°å',emailSubject:'主é¢',emailBody:'å
容',noAnchors:'(æ¤ææ¡£æ²¡æå¯ç¨çéç¹)',noUrl:'请è¾å
¥è¶
龿¥å°å',noEmail:'请è¾å
¥çµåé®ä»¶å°å'},anchor:{toolbar:'æå
¥/ç¼è¾éç¹é¾æ¥',menu:'éç¹é¾æ¥å±æ§',title:'éç¹é¾æ¥å±æ§',name:'éç¹åç§°',errorName:'请è¾å
¥éç¹åç§°'},list:{numberedTitle:'ç¼å·åè¡¨å±æ§',bulletedTitle:'项ç®åè¡¨å±æ§',type:'æ è®°ç±»å',start:'å¼å§åºå·',validateStartNumber:'å表å¼å§åºå·å¿
é¡»ä¸ºæ´æ°æ ¼å¼',circle:'空å¿å',disc:'å®å¿å',square:'å®å¿æ¹å',none:'æ æ è®°',notset:'<没æè®¾ç½®>',armenian:'ä¼ ç»çäºç¾å°¼äºç¼å·æ¹å¼',georgian:'ä¼ ç»ç乿²»äºç¼å·æ¹å¼(an, ban, gan, ç)',lowerRoman:'å°åç½é©¬æ°å(i, ii, iii, iv, v, ç)',upperRoman:'大åç½é©¬æ°å(I, II, III, IV, V, ç)',lowerAlpha:'å°åè±æåæ¯(a, b, c, d, e, ç)',upperAlpha:'大åè±æåæ¯(A, B,
C, D, E, ç)',lowerGreek:'å°åå¸è
忝(alpha, beta, gamma, ç)',decimal:'æ°å (1, 2, 3, ç)',decimalLeadingZero:'0å¼å¤´çæ°åæ è®°(01, 02, 03, ç)'},findAndReplace:{title:'æ¥æ¾åæ¿æ¢',find:'æ¥æ¾',replace:'æ¿æ¢',findWhat:'æ¥æ¾:',replaceWith:'æ¿æ¢:',notFoundMsg:'æå®ææ¬æ²¡ææ¾å°',matchCase:'åºå大å°å',matchWord:'å
¨åå¹é
',matchCyclic:'循ç¯å¹é
',replaceAll:'å
¨é¨æ¿æ¢',replaceSuccessMsg:'å
±å®æ %1 夿¿æ¢.'},table:{toolbar:'è¡¨æ ¼',title:'è¡¨æ ¼å±æ§',menu:'è¡¨æ ¼å±æ§',deleteTable:'å é¤è¡¨æ ¼',rows:'è¡æ°',columns:'åæ°',border:'è¾¹æ¡',align:'对é½',alignLeft:'左对é½',alignCenter:'å±
ä¸',alignRight:'å³å¯¹é½',width:'宽度',widthPx:'åç´ ',widthPc:'ç¾åæ¯',widthUnit:'宽度åä½',height:'é«åº¦',cellSpace:'é´è·',cellPad:'è¾¹è·',caption:'æ é¢',summary:'æè¦',headers:'æ é¢åå
æ ¼',headersNone:'æ ',headersColumn:'第ä¸å',headersRow:'第ä¸è¡',headersBoth:'第ä¸åå第ä¸è¡',invalidRo
ws:'æå®çåæ°å¿
须大äºé¶',invalidCols:'æå®çè¡æ°å¿
须大äºé¶',invalidBorder:'è¾¹æ¡ç²ç»å¿
须为æ°åæ ¼å¼',invalidWidth:'è¡¨æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼',invalidHeight:'è¡¨æ ¼é«åº¦å¿
须为æ°åæ ¼å¼',invalidCellSpacing:'åå
æ ¼é´è·å¿
须为æ°åæ ¼å¼',invalidCellPadding:'åå
æ ¼å¡«å
å¿
须为æ°åæ ¼å¼',cell:{menu:'åå
æ ¼',insertBefore:'å¨å·¦ä¾§æå
¥åå
æ ¼',insertAfter:'å¨å³ä¾§æå
¥åå
æ ¼',deleteCell:'å é¤åå
æ ¼',merge:'åå¹¶åå
æ ¼',mergeRight:'åå³åå¹¶åå
æ ¼',mergeDown:'åä¸åå¹¶åå
æ ¼',splitHorizontal:'æ°´å¹³æååå
æ ¼',splitVertical:'åç´æååå
æ ¼',title:'åå
æ ¼å±æ§',cellType:'åå
æ ¼ç±»å',rowSpan:'çºµè·¨è¡æ°',colSpan:'æ¨ªè·¨åæ°',wordWrap:'èªå¨æ¢è¡',hAlign:'水平对é½',vAlign:'åç´å¯¹é½',alignTop:'顶端',alignMiddle:'ä¸é´',alignBottom:'åºé¨',alignBaseline:'åºçº¿',bgColor:'èæ¯é¢è²',borderColor:'è¾¹æ¡é¢è²',data:'æ°æ®',header:'表头',yes:'æ¯',no:
'å¦',invalidWidth:'åå
æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼',invalidHeight:'åå
æ ¼é«åº¦å¿
须为æ°åæ ¼å¼',invalidRowSpan:'è¡è·¨åº¦å¿
é¡»ä¸ºæ´æ°æ ¼å¼',invalidColSpan:'å跨度å¿
é¡»ä¸ºæ´æ°æ ¼å¼',chooseColor:'éæ©'},row:{menu:'è¡',insertBefore:'å¨ä¸æ¹æå
¥è¡',insertAfter:'å¨ä¸æ¹æå
¥è¡',deleteRow:'å é¤è¡'},column:{menu:'å',insertBefore:'å¨å·¦ä¾§æå
¥å',insertAfter:'å¨å³ä¾§æå
¥å',deleteColumn:'å é¤å'}},button:{title:'æé®å±æ§',text:'æ ç¾(å¼)',type:'ç±»å',typeBtn:'æé®',typeSbm:'æäº¤',typeRst:'é设'},checkboxAndRadio:{checkboxTitle:'å¤éæ¡å±æ§',radioTitle:'åéæé®å±æ§',value:'éå®å¼',selected:'å·²å¾é'},form:{title:'表å屿§',menu:'表å屿§',action:'å¨ä½',method:'æ¹æ³',encoding:'表åç¼ç '},select:{title:'èå/åè¡¨å±æ§',selectInfo:'éæ©ä¿¡æ¯',opAvail:'å¯é项',value:'å¼',size:'é«åº¦',lines:'è¡',chkMulti:'å
许å¤é',opText:'éé¡¹ææ¬',opValue:'é项å¼',btnAdd:'æ·»å '
,btnModify:'ä¿®æ¹',btnUp:'ä¸ç§»',btnDown:'ä¸ç§»',btnSetValue:'设为åå§éå®',btnDelete:'å é¤'},textarea:{title:'å¤è¡ææ¬å±æ§',cols:'å符宽度',rows:'è¡æ°'},textfield:{title:'åè¡ææ¬å±æ§',name:'åç§°',value:'åå§å¼',charWidth:'å符宽度',maxChars:'æå¤å符æ°',type:'ç±»å',typeText:'ææ¬',typePass:'å¯ç '},hidden:{title:'éèå屿§',name:'åç§°',value:'åå§å¼'},image:{title:'å¾è±¡å±æ§',titleButton:'å¾åå屿§',menu:'å¾è±¡å±æ§',infoTab:'å¾è±¡',btnUpload:'ä¸ä¼ å°æå¡å¨ä¸',upload:'ä¸ä¼ ',alt:'æ¿æ¢ææ¬',width:'宽度',height:'é«åº¦',lockRatio:'é宿¯ä¾',unlockRatio:'ä¸é宿¯ä¾',resetSize:'åå§å°ºå¯¸',border:'è¾¹æ¡å¤§å°',hSpace:'æ°´å¹³é´è·',vSpace:'åç´é´è·',align:'坹齿¹å¼',alignLeft:'左对é½',alignRight:'å³å¯¹é½',alertUrl:'请è¾å
¥å¾è±¡å°å',linkTab:'龿¥',button2Img:'ç¡®å®è¦æå½åæé®æ¹å为å¾åå?',img2Button:'ç¡®å®è¦æå½åå¾åæ¹å为æé®å?',url
Missing:'缺å°å¾åæºæä»¶å°å',validateWidth:'å¾å宽度å¿
é¡»ä¸ºæ´æ°æ ¼å¼',validateHeight:'å¾åé«åº¦å¿
é¡»ä¸ºæ´æ°æ ¼å¼',validateBorder:'è¾¹æ¡å¤§å°å¿
é¡»ä¸ºæ´æ°æ ¼å¼',validateHSpace:'æ°´å¹³é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼',validateVSpace:'åç´é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼'},flash:{properties:'Flash 屿§',propertiesTab:'屿§',title:'æ é¢',chkPlay:'èªå¨ææ¾',chkLoop:'循ç¯',chkMenu:'å¯ç¨ Flash èå',chkFull:'å¯ç¨å
¨å±',scale:'缩æ¾',scaleAll:'å
¨é¨æ¾ç¤º',scaleNoBorder:'æ è¾¹æ¡',scaleFit:'ä¸¥æ ¼å¹é
',access:'å
è®¸èæ¬è®¿é®',accessAlways:'æ»æ¯',accessSameDomain:'åå',accessNever:'ä»ä¸',align:'坹齿¹å¼',alignLeft:'左对é½',alignAbsBottom:'ç»å¯¹åºé¨',alignAbsMiddle:'ç»å¯¹å±
ä¸',alignBaseline:'åºçº¿',alignBottom:'åºé¨',alignMiddle:'å±
ä¸',alignRight:'å³å¯¹é½',alignTextTop:'ææ¬ä¸æ¹',alignTop:'顶端',quality:'è´¨é',qualityBest:'æå¥½',qualityHigh:'é«',qualityAutoHigh:'é«(èªå¨)',qualityMedium:'ä¸(èªå
¨)',qualityAutoLow:'ä½(èªå¨)',qualityLow:'ä½',windowModeWindow:'çªä½',windowModeOpaque:'ä¸éæ',windowModeTransparent:'éæ',windowMode:'çªä½æ¨¡å¼',flashvars:'Flash åé',bgcolor:'èæ¯é¢è²',width:'宽度',height:'é«åº¦',hSpace:'æ°´å¹³é´è·',vSpace:'åç´é´è·',validateSrc:'请è¾å
¥æºæä»¶å°å',validateWidth:'宽度å¿
须为æ°åæ ¼å¼',validateHeight:'é«åº¦å¿
须为æ°åæ ¼å¼',validateHSpace:'æ°´å¹³é´è·å¿
须为æ°åæ ¼å¼',validateVSpace:'åç´é´è·å¿
须为æ°åæ ¼å¼'},spellCheck:{toolbar:'æ¼åæ£æ¥',title:'æ¼åæ£æ¥',notAvailable:'æ±æ, æå¡ç®åæä¸å¯ç¨',errorLoading:'å è½½åºè¯¥æå¡ä¸»æºæ¶åºé: %s.',notInDic:'没æå¨åå
¸é',changeTo:'æ´æ¹ä¸º',btnIgnore:'忽ç¥',btnIgnoreAll:'å
¨é¨å¿½ç¥',btnReplace:'æ¿æ¢',btnReplaceAll:'å
¨é¨æ¿æ¢',btnUndo:'æ¤æ¶',noSuggestions:'- 没æå»ºè®® -',progress:'æ£å¨è¿è¡æ¼åæ£æ¥...',noMispell:'æ¼åæ£æ¥å®æ: 没æåç°æ¼åé误',noChanges:'æ¼åæ£æ
¥å®æ: æ²¡ææ´æ¹ä»»ä½åè¯',oneChange:'æ¼åæ£æ¥å®æ: æ´æ¹äºä¸ä¸ªåè¯',manyChanges:'æ¼åæ£æ¥å®æ: æ´æ¹äº %1 个åè¯',ieSpellDownload:'æ¼åæ£æ¥æä»¶è¿æ²¡å®è£
, ä½ æ¯å¦æ³ç°å¨å°±ä¸è½½?'},smiley:{toolbar:'表æ
符',title:'æå
¥è¡¨æ
徿 ',options:'表æ
徿 é项'},elementsPath:{eleLabel:'å
ç´ è·¯å¾',eleTitle:'%1 å
ç´ '},numberedlist:'ç¼å·å表',bulletedlist:'项ç®å表',indent:'å¢å 缩è¿é',outdent:'åå°ç¼©è¿é',justify:{left:'左对é½',center:'å±
ä¸',right:'å³å¯¹é½',block:'两端对é½'},blockquote:'åå¼ç¨',clipboard:{title:'ç²è´´',cutError:'æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡åªåæä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+X)æ¥å®æ',copyError:'æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡å¤å¶æä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+C)æ¥å®æ',pasteMsg:'请使ç¨é®çå¿«æ·é®(<STRONG>Ctrl/Cmd+V</STRONG>)æå
容ç²è´´å°ä¸é¢çæ¹æ¡éï¼åæ <STRONG>ç¡®å®
</STRONG>',securityMsg:'å ä¸ºä½ çæµè§å¨çå®å
¨è®¾ç½®åå , æ¬ç¼è¾å¨ä¸è½ç´æ¥è®¿é®ä½ çåªè´´æ¿å
容, ä½ éè¦å¨æ¬çªå£éæ°ç²è´´ä¸æ¬¡',pasteArea:'ç²è´´åºå'},pastefromword:{confirmCleanup:'æ¨è¦ç²è´´çå
容好忝æ¥èª MS Word, æ¯å¦è¦æ¸
é¤ MS Word æ ¼å¼ååç²è´´?',toolbar:'ä» MS Word ç²è´´',title:'ä» MS Word ç²è´´',error:'ç±äºå
é¨éè¯¯æ æ³æ¸
çè¦ç²è´´çæ°æ®'},pasteText:{button:'ç²è´´ä¸ºæ æ ¼å¼ææ¬',title:'ç²è´´ä¸ºæ æ ¼å¼ææ¬'},templates:{button:'模æ¿',title:'å
容模æ¿',options:'模æ¿é项',insertOption:'æ¿æ¢å½åå
容',selectPromptMsg:'è¯·éæ©ç¼è¾å¨å
容模æ¿:',emptyListMsg:'(æ²¡ææ¨¡æ¿)'},showBlocks:'æ¾ç¤ºåºå',stylesCombo:{label:'æ ·å¼',panelTitle:'æ ·å¼',panelTitle1:'å级å
ç´ æ ·å¼',panelTitle2:'å
èå
ç´ æ ·å¼',panelTitle3:'对象å
ç´ æ ·å¼'},format:{label:'æ ¼å¼',panelTitle:'æ ¼å¼',tag_p:'æ®é',tag_pre:'å·²ç¼ææ ¼å¼',tag_address:'å°å',tag_h1:'æ é¢ 1',ta
g_h2:'æ é¢ 2',tag_h3:'æ é¢ 3',tag_h4:'æ é¢ 4',tag_h5:'æ é¢ 5',tag_h6:'æ é¢ 6',tag_div:'段è½(DIV)'},div:{title:'å建 DIV 容å¨',toolbar:'å建 DIV 容å¨',cssClassInputLabel:'æ ·å¼ç±»åç§°',styleSelectLabel:'æ ·å¼',IdInputLabel:'ID',languageCodeInputLabel:'è¯è¨ä»£ç ',inlineStyleInputLabel:'è¡å
æ ·å¼',advisoryTitleInputLabel:'æ é¢',langDirLabel:'è¯è¨æ¹å',langDirLTRLabel:'ä»å·¦å°å³ (LTR)',langDirRTLLabel:'ä»å³å°å·¦ (RTL)',edit:'ç¼è¾ DIV',remove:'ç§»é¤ DIV'},font:{label:'åä½',voiceLabel:'åä½',panelTitle:'åä½'},fontSize:{label:'大å°',voiceLabel:'æå大å°',panelTitle:'大å°'},colorButton:{textColorTitle:'ææ¬é¢è²',bgColorTitle:'èæ¯é¢è²',panelTitle:'é¢è²',auto:'èªå¨',more:'å
¶å®é¢è²...'},colors:{'000':'é»',800000:'è¤çº¢','8B4513':'æ·±è¤','2F4F4F':'墨绿','008080':'绿æ¾ç³','000080':'æµ·åè','4B0082':'éè',696969:'æç°',B22222:'ç 红',A52A2A:'è¤',DAA520:'éé»','006400':'深绿','40E0D0':'èç»
¿','0000CD':'ä¸è',800080:'ç´«',808080:'ç°',F00:'红',FF8C00:'æ·±æ©',FFD700:'é','008000':'绿','0FF':'é','00F':'è',EE82EE:'ç´«ç½å
°',A9A9A9:'æ·±ç°',FFA07A:'亮æ©',FFA500:'æ©',FFFF00:'é»','00FF00':'水绿',AFEEEE:'ç²è',ADD8E6:'亮è',DDA0DD:'æ¢
红',D3D3D3:'æ·¡ç°',FFF0F5:'淡紫红',FAEBD7:'å¤è£ç½',FFFFE0:'æ·¡é»',F0FFF0:'èç½',F0FFFF:'天è',F0F8FF:'æ·¡è',E6E6FA:'æ·¡ç´«',FFF:'ç½'},scayt:{title:'峿¶æ¼åæ£æ¥',opera_title:'䏿¯æ Opera æµè§å¨',enable:'å¯ç¨å³æ¶æ¼åæ£æ¥',disable:'ç¦ç¨å³æ¶æ¼åæ£æ¥',about:'å
³äºå³æ¶æ¼åæ£æ¥',toggle:'æå/å¯ç¨å³æ¶æ¼åæ£æ¥',options:'é项',langs:'è¯è¨',moreSuggestions:'æ´å¤æ¼å建议',ignore:'忽ç¥',ignoreAll:'å
¨é¨å¿½ç¥',addWord:'æ·»å åè¯',emptyDic:'åå
¸åä¸åºä¸ºç©º.',optionsTab:'é项',allCaps:'å¿½ç¥ææå¤§ååè¯',ignoreDomainNames:'忽ç¥åå',mixedCase:'忽ç¥å¤§å°åæ··åçåè¯',mixedWithDigits:'忽ç¥å¸¦æ°åçåè¯',languagesTab:'è¯è
¨',dictionariesTab:'åå
¸',dic_field_name:'åå
¸åç§°',dic_create:'å建',dic_restore:'è¿å',dic_delete:'å é¤',dic_rename:'éå½å',dic_info:'ä¸å¼å§ç¨æ·è¯å
¸å¨åå¨ Cookie ä¸, 使¯ Cookies ç容鿝æéç, å½ç¨æ·è¯å
¸å¢é¿å°è¶
åº Cookie éå¶æ¶å°±æ æ³åå¨åäº, è¿æ¶æ¨å¯ä»¥å°è¯å
¸å¨å尿们çæå¡å¨ä¸. è¦ææ¨ç个人è¯å
¸å°å¨å尿们çæå¡å¨ä¸çè¯, éè¦ä¸ºæ¨çè¯å
¸æå®ä¸ä¸ªåç§°, 妿æ¨å¨æä»¬çæå¡å¨ä¸å·²ç»æå¨åæä¸ä¸ªè¯å
¸, 请è¾å
¥è¯å
¸åç§°å¹¶æè¿åæé®.',aboutTab:'å
³äº'},about:{title:'å
³äºCKEditor',dlgTitle:'å
³äºCKEditor',moreInfo:'è®¿é®æä»¬çç½ç«ä»¥è·åæ´å¤å
³äºåè®®çä¿¡æ¯',copy:'Copyright © $1. All rights reserved.'},maximize:'å
¨å±',minimize:'æå°å',fakeobjects:{anchor:'éç¹',flash:'Flash å¨ç»',div:'å页',unknown:'æªç¥å¯¹è±¡'},resize:'ææ½ä»¥æ¹å尺寸',colordialog:{title:'éæ©é¢è²',options:'é¢è²é项',highligh
t:'é«äº®',selected:'éæ©é¢è²',clear:'æ¸
é¤'},toolbarCollapse:'æå å·¥å
·æ ',toolbarExpand:'å±å¼å·¥å
·æ ',bidi:{ltr:'æåæ¹å为ä»å·¦è³å³',rtl:'æåæ¹å为ä»å³è³å·¦'}};
+CKEDITOR.lang['zh-cn']={"dir":"ltr","editor":"æè§å³æå¾ç¼è¾å¨","common":{"editorHelp":"æ ALT+0 è·å¾å¸®å©","browseServer":"æµè§æå¡å¨","url":"æºæä»¶","protocol":"åè®®","upload":"ä¸ä¼ ","uploadSubmit":"ä¸ä¼ å°æå¡å¨ä¸","image":"å¾è±¡","flash":"Flash","form":"表å","checkbox":"å¤éæ¡","radio":"åéæé®","textField":"åè¡ææ¬","textarea":"å¤è¡ææ¬","hiddenField":"éèå","button":"æé®","select":"å表/èå","imageButton":"å¾åå","notSet":"<没æè®¾ç½®>","id":"ID","name":"åç§°","langDir":"è¯è¨æ¹å","langDirLtr":"ä»å·¦å°å³ (LTR)","langDirRtl":"ä»å³å°å·¦ (RTL)","langCode":"è¯è¨ä»£ç ","longDescr":"详ç»è¯´æå°å","cssClass":"æ ·å¼ç±»åç§°","advisoryTitle":"æ é¢","cssStyle":"è¡å
æ ·å¼","ok":"ç¡®å®","cancel":"åæ¶","close":"å
³é","preview":"é¢è§","resize":"ææ½ä»¥æ¹å尺寸","generalTab":"常è§","advancedTab":"é«çº§","validateNumberFailed":"éè¦è¾å
¥æ°åæ ¼å¼","confirmNewPage":"
å½åææ¡£å
容æªä¿å,æ¯å¦ç¡®è®¤æ°å»ºææ¡£ï¼","confirmCancel":"é¨åä¿®æ¹å°æªä¿åï¼æ¯å¦ç¡®è®¤å
³éå¯¹è¯æ¡ï¼","options":"é项","target":"ç®æ çªå£","targetNew":"æ°çªå£ (_blank)","targetTop":"æ´é¡µ (_top)","targetSelf":"æ¬çªå£ (_self)","targetParent":"ç¶çªå£ (_parent)","langDirLTR":"ä»å·¦å°å³ (LTR)","langDirRTL":"ä»å³å°å·¦ (RTL)","styles":"æ ·å¼","cssClasses":"æ ·å¼ç±»","width":"宽度","height":"é«åº¦","align":"坹齿¹å¼","alignLeft":"左对é½","alignRight":"å³å¯¹é½","alignCenter":"å±
ä¸","alignTop":"顶端","alignMiddle":"å±
ä¸","alignBottom":"åºé¨","invalidValue":"æ æçå¼ã","invalidHeight":"é«åº¦å¿
须为æ°åæ ¼å¼","invalidWidth":"宽度å¿
须为æ°åæ ¼å¼","invalidCssLength":"è¯¥åæ®µå¿
须为åå¼çCSSé¿åº¦å¼ï¼å
æ¬åä½(px, %, in, cm, mm, em, ex, pt æ pc)","invalidHtmlLength":"è¯¥åæ®µå¿
须为åå¼çHTMLé¿åº¦å¼ï¼å
æ¬åä½(px æ %)","invalidInlineStyle":"å
èæ ·å¼å¿
é¡»ä¸ºæ ¼å¼
æ¯ä»¥åå·åéçä¸ä¸ªæå¤ä¸ªâ屿§å : 屿§å¼â","cssLengthTooltip":"è¯¥åæ®µå¿
须为åå¼çCSSé¿åº¦å¼ï¼å
æ¬åä½(px, %, in, cm, mm, em, ex, pt æ pc)","unavailable":"%1<span class=\"cke_accessibility\">, ä¸å¯ç¨</span>"},"about":{"copy":"Copyright © $1. çæææã","dlgTitle":"å
³äºCKEditor","help":"è¯·è®¿é® $1 以è·å帮å©.","moreInfo":"è®¿é®æä»¬çç½ç«ä»¥è·åæ´å¤å
³äºåè®®çä¿¡æ¯","title":"å
³äºCKEditor","userGuide":"CKEditor ç¨æ·å导"},"basicstyles":{"bold":"å ç²","italic":"徿","strike":"å é¤çº¿","subscript":"䏿 ","superscript":"䏿 ","underline":"ä¸å线"},"bidi":{"ltr":"æåæ¹å为ä»å·¦è³å³","rtl":"æåæ¹å为ä»å³è³å·¦"},"blockquote":{"toolbar":"åå¼ç¨"},"clipboard":{"copy":"å¤å¶","copyError":"æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼è¾å¨èªå¨æ§è¡å¤å¶æä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+C)æ¥å®æ","cut":"åªå","cutError":"æ¨çæµè§å¨å®å
¨è®¾ç½®ä¸å
许ç¼
è¾å¨èªå¨æ§è¡åªåæä½, 请使ç¨é®çå¿«æ·é®(Ctrl/Cmd+X)æ¥å®æ","paste":"ç²è´´","pasteArea":"ç²è´´åºå","pasteMsg":"请使ç¨é®çå¿«æ·é®(<STRONG>Ctrl/Cmd+V</STRONG>)æå
容ç²è´´å°ä¸é¢çæ¹æ¡éï¼åæ <STRONG>ç¡®å®</STRONG>","securityMsg":"å 为æ¨çæµè§å¨çå®å
¨è®¾ç½®åå , æ¬ç¼è¾å¨ä¸è½ç´æ¥è®¿é®æ¨çåªè´´æ¿å
容, ä½ éè¦å¨æ¬çªå£éæ°ç²è´´ä¸æ¬¡ã","title":"ç²è´´"},"colorbutton":{"auto":"èªå¨","bgColorTitle":"èæ¯é¢è²","colors":{"000":"é»","800000":"è¤çº¢","8B4513":"æ·±è¤","2F4F4F":"墨绿","008080":"绿æ¾ç³","000080":"æµ·åè","4B0082":"éè","696969":"æç°","B22222":"ç 红","A52A2A":"è¤","DAA520":"éé»","006400":"深绿","40E0D0":"è绿","0000CD":"ä¸è","800080":"ç´«","808080":"ç°","F00":"红","FF8C00":"æ·±æ©","FFD700":"é","008000":"绿","0FF":"é","00F":"è","EE82EE":"ç´«ç½å
°","A9A9A9":"æ·±ç°","FFA07A":"亮æ©","FFA500":"æ©","FFFF00":"é»","00FF00":"水绿","AFEEEE":"ç²è"
,"ADD8E6":"亮è","DDA0DD":"æ¢
红","D3D3D3":"æ·¡ç°","FFF0F5":"淡紫红","FAEBD7":"å¤è£ç½","FFFFE0":"æ·¡é»","F0FFF0":"èç½","F0FFFF":"天è","F0F8FF":"æ·¡è","E6E6FA":"æ·¡ç´«","FFF":"ç½"},"more":"å
¶å®é¢è²...","panelTitle":"é¢è²","textColorTitle":"ææ¬é¢è²"},"colordialog":{"clear":"æ¸
é¤","highlight":"é«äº®","options":"é¢è²é项","selected":"éæ©é¢è²","title":"éæ©é¢è²"},"templates":{"button":"模æ¿","emptyListMsg":"(æ²¡ææ¨¡æ¿)","insertOption":"æ¿æ¢å½åå
容","options":"模æ¿é项","selectPromptMsg":"è¯·éæ©ç¼è¾å¨å
容模æ¿:","title":"å
容模æ¿"},"contextmenu":{"options":"å¿«æ·èåé项"},"div":{"IdInputLabel":"ID","advisoryTitleInputLabel":"æ é¢","cssClassInputLabel":"æ ·å¼ç±»åç§°","edit":"ç¼è¾ DIV","inlineStyleInputLabel":"è¡å
æ ·å¼","langDirLTRLabel":"ä»å·¦å°å³ (LTR)","langDirLabel":"è¯è¨æ¹å","langDirRTLLabel":"ä»å³å°å·¦ (RTL)","languageCodeInputLabel":"è¯è¨ä»£ç ","remove":"ç§»é¤ DIV","sty
leSelectLabel":"æ ·å¼","title":"å建 DIV 容å¨","toolbar":"å建 DIV 容å¨"},"toolbar":{"toolbarCollapse":"æå å·¥å
·æ ","toolbarExpand":"å±å¼å·¥å
·æ ","toolbarGroups":{"document":"ææ¡£","clipboard":"åªè´´æ¿/æ¤é","editing":"ç¼è¾","forms":"表å","basicstyles":"åºæ¬æ ¼å¼","paragraph":"段è½","links":"龿¥","insert":"æå
¥","styles":"æ ·å¼","colors":"é¢è²","tools":"å·¥å
·"},"toolbars":"å·¥å
·æ "},"elementspath":{"eleLabel":"å
ç´ è·¯å¾","eleTitle":"%1 å
ç´ "},"list":{"bulletedlist":"项ç®å表","numberedlist":"ç¼å·å表"},"indent":{"indent":"å¢å 缩è¿é","outdent":"åå°ç¼©è¿é"},"find":{"find":"æ¥æ¾","findOptions":"æ¥æ¾é项","findWhat":"æ¥æ¾:","matchCase":"åºå大å°å","matchCyclic":"循ç¯å¹é
","matchWord":"å
¨åå¹é
","notFoundMsg":"æå®ææ¬æ²¡ææ¾å°","replace":"æ¿æ¢","replaceAll":"å
¨é¨æ¿æ¢","replaceSuccessMsg":"å
±å®æ %1 夿¿æ¢.","replaceWith":"æ¿æ¢:","title":"æ¥æ¾åæ¿æ¢"},"fakeobjects
":{"anchor":"éç¹","flash":"Flash å¨ç»","hiddenfield":"éèå","iframe":"IFrame","unknown":"æªç¥å¯¹è±¡"},"flash":{"access":"å
è®¸èæ¬è®¿é®","accessAlways":"æ»æ¯","accessNever":"ä»ä¸","accessSameDomain":"åå","alignAbsBottom":"ç»å¯¹åºé¨","alignAbsMiddle":"ç»å¯¹å±
ä¸","alignBaseline":"åºçº¿","alignTextTop":"ææ¬ä¸æ¹","bgcolor":"èæ¯é¢è²","chkFull":"å¯ç¨å
¨å±","chkLoop":"循ç¯","chkMenu":"å¯ç¨ Flash èå","chkPlay":"èªå¨ææ¾","flashvars":"Flash åé","hSpace":"æ°´å¹³é´è·","properties":"Flash 屿§","propertiesTab":"屿§","quality":"è´¨é","qualityAutoHigh":"é«(èªå¨)","qualityAutoLow":"ä½(èªå¨)","qualityBest":"æå¥½","qualityHigh":"é«","qualityLow":"ä½","qualityMedium":"ä¸(èªå¨)","scale":"缩æ¾","scaleAll":"å
¨é¨æ¾ç¤º","scaleFit":"ä¸¥æ ¼å¹é
","scaleNoBorder":"æ è¾¹æ¡","title":"æ é¢","vSpace":"åç´é´è·","validateHSpace":"æ°´å¹³é´è·å¿
须为æ°åæ ¼å¼","validateSrc":"请è¾å
¥æºæä»¶å°å","valid
ateVSpace":"åç´é´è·å¿
须为æ°åæ ¼å¼","windowMode":"çªä½æ¨¡å¼","windowModeOpaque":"ä¸éæ","windowModeTransparent":"éæ","windowModeWindow":"çªä½"},"font":{"fontSize":{"label":"大å°","voiceLabel":"æå大å°","panelTitle":"大å°"},"label":"åä½","panelTitle":"åä½","voiceLabel":"åä½"},"forms":{"button":{"title":"æé®å±æ§","text":"æ ç¾(å¼)","type":"ç±»å","typeBtn":"æé®","typeSbm":"æäº¤","typeRst":"é设"},"checkboxAndRadio":{"checkboxTitle":"å¤éæ¡å±æ§","radioTitle":"åéæé®å±æ§","value":"éå®å¼","selected":"å·²å¾é"},"form":{"title":"表å屿§","menu":"表å屿§","action":"å¨ä½","method":"æ¹æ³","encoding":"表åç¼ç "},"hidden":{"title":"éèå屿§","name":"åç§°","value":"åå§å¼"},"select":{"title":"èå/åè¡¨å±æ§","selectInfo":"éæ©ä¿¡æ¯","opAvail":"å¯é项","value":"å¼","size":"é«åº¦","lines":"è¡","chkMulti":"å
许å¤é","opText":"éé¡¹ææ¬","opValue":"é项å¼","btnAdd
":"æ·»å ","btnModify":"ä¿®æ¹","btnUp":"ä¸ç§»","btnDown":"ä¸ç§»","btnSetValue":"设为åå§éå®","btnDelete":"å é¤"},"textarea":{"title":"å¤è¡ææ¬å±æ§","cols":"å符宽度","rows":"è¡æ°"},"textfield":{"title":"åè¡ææ¬å±æ§","name":"åç§°","value":"åå§å¼","charWidth":"å符宽度","maxChars":"æå¤å符æ°","type":"ç±»å","typeText":"ææ¬","typePass":"å¯ç ","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"æ ¼å¼","panelTitle":"æ ¼å¼","tag_address":"å°å","tag_div":"段è½(DIV)","tag_h1":"æ é¢ 1","tag_h2":"æ é¢ 2","tag_h3":"æ é¢ 3","tag_h4":"æ é¢ 4","tag_h5":"æ é¢ 5","tag_h6":"æ é¢ 6","tag_p":"æ®é","tag_pre":"å·²ç¼ææ ¼å¼"},"horizontalrule":{"toolbar":"æå
¥æ°´å¹³çº¿"},"iframe":{"border":"æ¾ç¤ºæ¡æ¶è¾¹æ¡","noUrl":"请è¾å
¥æ¡æ¶ç URL","scrolling":"å
许æ»å¨æ¡","title":"IFrame 屿§","toolbar":"IFrame"},"image":{"alertUrl":"请è¾å
¥å¾è±¡å°å","alt"
:"æ¿æ¢ææ¬","border":"è¾¹æ¡å¤§å°","btnUpload":"ä¸ä¼ å°æå¡å¨ä¸","button2Img":"ç¡®å®è¦æå½åæé®æ¹å为å¾åå?","hSpace":"æ°´å¹³é´è·","img2Button":"ç¡®å®è¦æå½åå¾åæ¹å为æé®å?","infoTab":"å¾è±¡","linkTab":"龿¥","lockRatio":"é宿¯ä¾","menu":"å¾è±¡å±æ§","resetSize":"åå§å°ºå¯¸","title":"å¾è±¡å±æ§","titleButton":"å¾åå屿§","upload":"ä¸ä¼ ","urlMissing":"缺å°å¾åæºæä»¶å°å","vSpace":"åç´é´è·","validateBorder":"è¾¹æ¡å¤§å°å¿
é¡»ä¸ºæ´æ°æ ¼å¼","validateHSpace":"æ°´å¹³é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼","validateVSpace":"åç´é´è·å¿
é¡»ä¸ºæ´æ°æ ¼å¼"},"smiley":{"options":"表æ
徿 é项","title":"æå
¥è¡¨æ
徿 ","toolbar":"表æ
符"},"justify":{"block":"两端对é½","center":"å±
ä¸","left":"左对é½","right":"å³å¯¹é½"},"link":{"acccessKey":"访é®é®","advanced":"é«çº§","advisoryContentType":"å
容类å","advisoryTitle":"æ é¢","anchor":{"toolbar":"æå
¥/ç¼è¾éç¹é¾æ¥","menu":"é
ç¹é¾æ¥å±æ§","title":"éç¹é¾æ¥å±æ§","name":"éç¹åç§°","errorName":"请è¾å
¥éç¹åç§°","remove":"å é¤éç¹"},"anchorId":"æéç¹ ID","anchorName":"æéç¹åç§°","charset":"å符ç¼ç ","cssClasses":"æ ·å¼ç±»åç§°","emailAddress":"å°å","emailBody":"å
容","emailSubject":"主é¢","id":"ID","info":"è¶
龿¥ä¿¡æ¯","langCode":"è¯è¨ä»£ç ","langDir":"è¯è¨æ¹å","langDirLTR":"ä»å·¦å°å³ (LTR)","langDirRTL":"ä»å³å°å·¦ (RTL)","menu":"ç¼è¾è¶
龿¥","name":"åç§°","noAnchors":"(æ¤ææ¡£æ²¡æå¯ç¨çéç¹)","noEmail":"请è¾å
¥çµåé®ä»¶å°å","noUrl":"请è¾å
¥è¶
龿¥å°å","other":"<å
¶ä»>","popupDependent":"ä¾é (NS)","popupFeatures":"å¼¹åºçªå£å±æ§","popupFullScreen":"å
¨å± (IE)","popupLeft":"å·¦","popupLocationBar":"å°åæ ","popupMenuBar":"èåæ ","popupResizable":"å¯ç¼©æ¾","popupScrollBars":"æ»å¨æ¡","popupStatusBar":"ç¶ææ ","popupToolbar":"å·¥å
·æ ","popupTop":"å³","rel":"å
³è","selectAnchor":"é
æ©ä¸ä¸ªéç¹","styles":"è¡å
æ ·å¼","tabIndex":"Tab 鮿¬¡åº","target":"ç®æ ","targetFrame":"<æ¡æ¶>","targetFrameName":"ç®æ æ¡æ¶åç§°","targetPopup":"<å¼¹åºçªå£>","targetPopupName":"å¼¹åºçªå£åç§°","title":"è¶
龿¥","toAnchor":"页å
éç¹é¾æ¥","toEmail":"çµåé®ä»¶","toUrl":"å°å","toolbar":"æå
¥/ç¼è¾è¶
龿¥","type":"è¶
龿¥ç±»å","unlink":"åæ¶è¶
龿¥","upload":"ä¸ä¼ "},"liststyle":{"armenian":"ä¼ ç»çäºç¾å°¼äºç¼å·æ¹å¼","bulletedTitle":"项ç®åè¡¨å±æ§","circle":"空å¿å","decimal":"æ°å (1, 2, 3, ç)","decimalLeadingZero":"0å¼å¤´çæ°åæ è®°(01, 02, 03, ç)","disc":"å®å¿å","georgian":"ä¼ ç»ç乿²»äºç¼å·æ¹å¼(an, ban, gan, ç)","lowerAlpha":"å°åè±æåæ¯(a, b, c, d, e, ç)","lowerGreek":"å°åå¸è
忝(alpha, beta, gamma, ç)","lowerRoman":"å°åç½é©¬æ°å(i, ii, iii, iv, v, ç)","none":"æ æ è®°","notset":"<没æè®¾ç½®>","numberedTitle":"ç¼å·åè¡¨å±æ§","square":"å®å¿æ
¹å","start":"å¼å§åºå·","type":"æ è®°ç±»å","upperAlpha":"大åè±æåæ¯(A, B, C, D, E, ç)","upperRoman":"大åç½é©¬æ°å(I, II, III, IV, V, ç)","validateStartNumber":"å表å¼å§åºå·å¿
é¡»ä¸ºæ´æ°æ ¼å¼"},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"å
¨å±","minimize":"æå°å"},"newpage":{"toolbar":"æ°å»º"},"pagebreak":{"alt":"å页符","toolbar":"æå
¥å页符"},"pastetext":{"button":"ç²è´´ä¸ºæ æ ¼å¼ææ¬","title":"ç²è´´ä¸ºæ æ ¼å¼ææ¬"},"pastefromword":{"confirmCleanup":"æ¨è¦ç²è´´çå
容好忝æ¥èª MS Word, æ¯å¦è¦æ¸
é¤ MS Word æ ¼å¼ååç²è´´?","error":"ç±äºå
é¨éè¯¯æ æ³æ¸
çè¦ç²è´´çæ°æ®","title":"ä» MS Word ç²è´´","toolbar":"ä» MS Word ç²è´´"},"preview":{"preview":"é¢è§"},"print":{"toolbar":"æå°"},"removeformat":{"toolbar":"æ¸
餿 ¼å¼"},"save":{"toolbar":"ä¿å"},"selectall":{"toolbar":"å
¨é"},"showblocks":{"toolbar":"æ¾ç¤ºåºå"},"sourcearea":{"toolbar":"æºç "}
,"specialchar":{"options":"ç¹æ®ç¬¦å·é项","title":"éæ©ç¹æ®ç¬¦å·","toolbar":"æå
¥ç¹æ®ç¬¦å·"},"scayt":{"about":"å
³äºå³æ¶æ¼åæ£æ¥","aboutTab":"å
³äº","addWord":"æ·»å åè¯","allCaps":"å¿½ç¥ææå¤§ååè¯","dic_create":"å建","dic_delete":"å é¤","dic_field_name":"åå
¸åç§°","dic_info":"ä¸å¼å§ç¨æ·è¯å
¸å¨åå¨ Cookie ä¸, 使¯ Cookies ç容鿝æéç, å½ç¨æ·è¯å
¸å¢é¿å°è¶
åº Cookie éå¶æ¶å°±æ æ³åå¨åäº, è¿æ¶æ¨å¯ä»¥å°è¯å
¸å¨å尿们çæå¡å¨ä¸. è¦ææ¨ç个人è¯å
¸å°å¨å尿们çæå¡å¨ä¸çè¯, éè¦ä¸ºæ¨çè¯å
¸æå®ä¸ä¸ªåç§°, 妿æ¨å¨æä»¬çæå¡å¨ä¸å·²ç»æå¨åæä¸ä¸ªè¯å
¸, 请è¾å
¥è¯å
¸åç§°å¹¶æè¿åæé®.","dic_rename":"éå½å","dic_restore":"è¿å","dictionariesTab":"åå
¸","disable":"ç¦ç¨å³æ¶æ¼åæ£æ¥","emptyDic":"åå
¸åä¸åºä¸ºç©º.","enable":"å¯ç¨å³æ¶æ¼åæ£æ¥","ignore":"忽ç¥","ignoreAll":"å
¨é¨å¿½ç¥","ignoreDomainNames
":"忽ç¥åå","langs":"è¯è¨","languagesTab":"è¯è¨","mixedCase":"忽ç¥å¤§å°åæ··åçåè¯","mixedWithDigits":"忽ç¥å¸¦æ°åçåè¯","moreSuggestions":"æ´å¤æ¼å建议","opera_title":"䏿¯æ Opera æµè§å¨","options":"é项","optionsTab":"é项","title":"峿¶æ¼åæ£æ¥","toggle":"æå/å¯ç¨å³æ¶æ¼åæ£æ¥","noSuggestions":"No suggestion"},"stylescombo":{"label":"æ ·å¼","panelTitle":"æ ·å¼","panelTitle1":"å级å
ç´ æ ·å¼","panelTitle2":"å
èå
ç´ æ ·å¼","panelTitle3":"对象å
ç´ æ ·å¼"},"table":{"border":"è¾¹æ¡","caption":"æ é¢","cell":{"menu":"åå
æ ¼","insertBefore":"å¨å·¦ä¾§æå
¥åå
æ ¼","insertAfter":"å¨å³ä¾§æå
¥åå
æ ¼","deleteCell":"å é¤åå
æ ¼","merge":"åå¹¶åå
æ ¼","mergeRight":"åå³åå¹¶åå
æ ¼","mergeDown":"åä¸åå¹¶åå
æ ¼","splitHorizontal":"æ°´å¹³æååå
æ ¼","splitVertical":"åç´æååå
æ ¼","title":"åå
æ ¼å±æ§","cellType":"åå
æ ¼ç±»å","rowSpan":"çºµè·¨è¡æ°","colSp
an":"æ¨ªè·¨åæ°","wordWrap":"èªå¨æ¢è¡","hAlign":"水平对é½","vAlign":"åç´å¯¹é½","alignBaseline":"åºçº¿","bgColor":"èæ¯é¢è²","borderColor":"è¾¹æ¡é¢è²","data":"æ°æ®","header":"表头","yes":"æ¯","no":"å¦","invalidWidth":"åå
æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼","invalidHeight":"åå
æ ¼é«åº¦å¿
须为æ°åæ ¼å¼","invalidRowSpan":"è¡è·¨åº¦å¿
é¡»ä¸ºæ´æ°æ ¼å¼","invalidColSpan":"å跨度å¿
é¡»ä¸ºæ´æ°æ ¼å¼","chooseColor":"éæ©"},"cellPad":"è¾¹è·","cellSpace":"é´è·","column":{"menu":"å","insertBefore":"å¨å·¦ä¾§æå
¥å","insertAfter":"å¨å³ä¾§æå
¥å","deleteColumn":"å é¤å"},"columns":"åæ°","deleteTable":"å é¤è¡¨æ ¼","headers":"æ é¢åå
æ ¼","headersBoth":"第ä¸åå第ä¸è¡","headersColumn":"第ä¸å","headersNone":"æ ","headersRow":"第ä¸è¡","invalidBorder":"è¾¹æ¡ç²ç»å¿
须为æ°åæ ¼å¼","invalidCellPadding":"åå
æ ¼å¡«å
å¿
须为æ°åæ ¼å¼","invalidCellSpacing":"åå
æ ¼é´è·å¿
须为æ°åæ ¼å¼","inval
idCols":"æå®çè¡æ°å¿
须大äºé¶","invalidHeight":"è¡¨æ ¼é«åº¦å¿
须为æ°åæ ¼å¼","invalidRows":"æå®çåæ°å¿
须大äºé¶","invalidWidth":"è¡¨æ ¼å®½åº¦å¿
须为æ°åæ ¼å¼","menu":"è¡¨æ ¼å±æ§","row":{"menu":"è¡","insertBefore":"å¨ä¸æ¹æå
¥è¡","insertAfter":"å¨ä¸æ¹æå
¥è¡","deleteRow":"å é¤è¡"},"rows":"è¡æ°","summary":"æè¦","title":"è¡¨æ ¼å±æ§","toolbar":"è¡¨æ ¼","widthPc":"ç¾åæ¯","widthPx":"åç´ ","widthUnit":"宽度åä½"},"undo":{"redo":"éå","undo":"æ¤æ¶"},"wsc":{"btnIgnore":"忽ç¥","btnIgnoreAll":"å
¨é¨å¿½ç¥","btnReplace":"æ¿æ¢","btnReplaceAll":"å
¨é¨æ¿æ¢","btnUndo":"æ¤æ¶","changeTo":"æ´æ¹ä¸º","errorLoading":"å è½½åºè¯¥æå¡ä¸»æºæ¶åºé: %s.","ieSpellDownload":"æ¼åæ£æ¥æä»¶è¿æ²¡å®è£
, æ¨æ¯å¦æ³ç°å¨å°±ä¸è½½?","manyChanges":"æ¼åæ£æ¥å®æ: æ´æ¹äº %1 个åè¯","noChanges":"æ¼åæ£æ¥å®æ: æ²¡ææ´æ¹ä»»ä½åè¯","noMispell":"æ¼åæ£æ¥å®æ: 没æåç°æ¼åé误","noSug
gestions":"- 没æå»ºè®® -","notAvailable":"æ±æ, æå¡ç®åæä¸å¯ç¨","notInDic":"没æå¨åå
¸é","oneChange":"æ¼åæ£æ¥å®æ: æ´æ¹äºä¸ä¸ªåè¯","progress":"æ£å¨è¿è¡æ¼åæ£æ¥...","title":"æ¼åæ£æ¥","toolbar":"æ¼åæ£æ¥"}};
\ No newline at end of file
diff --git a/share/static/RichText/lang/zh.js b/share/static/RichText/lang/zh.js
index 1cf8a3c..bf4ae64 100644
--- a/share/static/RichText/lang/zh.js
+++ b/share/static/RichText/lang/zh.js
@@ -1,6 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.lang.zh={dir:'ltr',editorTitle:'Rich text editor, %1, press ALT 0 for help.',toolbar:'Toolbar',editor:'Rich Text Editor',source:'åå§ç¢¼',newPage:'éæ°æªæ¡',save:'å²å',preview:'é 覽',cut:'åªä¸',copy:'è¤è£½',paste:'è²¼ä¸',print:'åå°',underline:'åºç·',bold:'ç²é«',italic:'æé«',selectAll:'å
¨é¸',removeFormat:'æ¸
餿 ¼å¼',strike:'åªé¤ç·',subscript:'䏿¨',superscript:'䏿¨',horizontalrule:'æå
¥æ°´å¹³ç·',pagebreak:'æå
¥åé 符è',unlink:'ç§»é¤è¶
é£çµ',undo:'復å',redo:'éè¤',common:{browseServer:'ç覽伺æå¨ç«¯',url:'URL',protocol:'éè¨åå®',upload:'ä¸å³',uploadSubmit:'ä¸å³è³ä¼ºæå¨',image:'å½±å',flash:'Flash',form:'表å®',checkbox:'æ ¸åæ¹å¡',radio:'é¸é
æé',textField:'æåæ¹å¡',textarea:'æååå',hiddenField:'é±èæ¬ä½',button:'æé',select:'æ¸
å®/é¸å®',imageButton:'å½±åæé',notSet:'<å°æªè¨å®>',id:'ID',name:'å稱',langDir:'èªè¨æ¹å',langDirLtr:'ç±å·¦èå³ (LTR)',
langDirRtl:'ç±å³èå·¦ (RTL)',langCode:'èªè¨ä»£ç¢¼',longDescr:'詳細 URL',cssClass:'樣å¼è¡¨é¡å¥',advisoryTitle:'æ¨é¡',cssStyle:'樣å¼',ok:'確å®',cancel:'åæ¶',close:'Close',preview:'Preview',generalTab:'ä¸è¬',advancedTab:'é²é',validateNumberFailed:'éè¦è¼¸å
¥æ¸åæ ¼å¼',confirmNewPage:'ç¾åçä¿®æ¹å°æªå²åï¼è¦éæ°æªæ¡ï¼',confirmCancel:'é¨ä»½é¸é
å°æªå²åï¼è¦ééå°è©±çï¼',options:'Options',target:'Target',targetNew:'New Window (_blank)',targetTop:'Topmost Window (_top)',targetSelf:'Same Window (_self)',targetParent:'Parent Window (_parent)',langDirLTR:'Left to Right (LTR)',langDirRTL:'Right to Left (RTL)',styles:'Style',cssClasses:'Stylesheet Classes',unavailable:'%1<span class="cke_accessibility">, å·²éé</span>'},contextmenu:{options:'Context Menu Options'},specialChar:{toolbar:'æå
¥ç¹æ®ç¬¦è',title:'è«é¸æç¹æ®ç¬¦è',options:'Special Character Options'},link:{toolbar:'æå
¥/編輯è¶
é£çµ',other:'<å
¶ä»>'
,menu:'編輯è¶
é£çµ',title:'è¶
é£çµ',info:'è¶
é£çµè³è¨',target:'ç®æ¨',upload:'ä¸å³',advanced:'é²é',type:'è¶
飿¥é¡å',toUrl:'URL',toAnchor:'æ¬é é¨é»',toEmail:'é»åéµä»¶',targetFrame:'<æ¡æ¶>',targetPopup:'<快顯è¦çª>',targetFrameName:'ç®æ¨æ¡æ¶å稱',targetPopupName:'快顯è¦çªå稱',popupFeatures:'快顯è¦çªå±¬æ§',popupResizable:'å¯ç¸®æ¾',popupStatusBar:'çæ
å',popupLocationBar:'ç¶²åå',popupToolbar:'å·¥å
·å',popupMenuBar:'é¸å®å',popupFullScreen:'å
¨è¢å¹ (IE)',popupScrollBars:'æ²è»¸',popupDependent:'å¾å±¬ (NS)',popupWidth:'寬',popupLeft:'å·¦',popupHeight:'é«',popupTop:'å³',id:'ID',langDir:'èªè¨æ¹å',langDirLTR:'ç±å·¦èå³ (LTR)',langDirRTL:'ç±å³èå·¦ (RTL)',acccessKey:'ååéµ',name:'å稱',langCode:'èªè¨æ¹å',tabIndex:'å®ä½é åº',advisoryTitle:'æ¨é¡',advisoryContentType:'å
§å®¹é¡å',cssClasses:'樣å¼è¡¨é¡å¥',charset:'é£çµè³æºä¹ç·¨ç¢¼',styles:'樣å¼',selectAnchor:'è«é¸æé¨é»'
,anchorName:'ä¾é¨é»å稱',anchorId:'ä¾å
ä»¶ ID',emailAddress:'é»åéµä»¶',emailSubject:'éµä»¶ä¸»æ¨',emailBody:'éµä»¶å
§å®¹',noAnchors:'(æ¬æä»¶å°ç¡å¯ç¨ä¹é¨é»)',noUrl:'è«è¼¸å
¥æ¬²é£çµç URL',noEmail:'è«è¼¸å
¥é»åéµä»¶ä½å'},anchor:{toolbar:'æå
¥/編輯é¨é»',menu:'é¨é»å±¬æ§',title:'é¨é»å±¬æ§',name:'é¨é»å稱',errorName:'è«è¼¸å
¥é¨é»å稱'},list:{numberedTitle:'Numbered List Properties',bulletedTitle:'Bulleted List Properties',type:'Type',start:'Start',validateStartNumber:'List start number must be a whole number.',circle:'Circle',disc:'Disc',square:'Square',none:'None',notset:'<not set>',armenian:'Armenian numbering',georgian:'Georgian numbering (an, ban, gan, etc.)',lowerRoman:'Lower Roman (i, ii, iii, iv, v, etc.)',upperRoman:'Upper Roman (I, II, III, IV, V, etc.)',lowerAlpha:'Lower Alpha (a, b, c, d, e, etc.)',upperAlpha:'Upper Alpha (A, B, C, D, E, etc.)',lowerGreek:'Lower Greek (alpha, beta, gamma, etc.)',decimal:'Decimal (1,
2, 3, etc.)',decimalLeadingZero:'Decimal leading zero (01, 02, 03, etc.)'},findAndReplace:{title:'å°æ¾èå代',find:'å°æ¾',replace:'å代',findWhat:'å°æ¾:',replaceWith:'å代:',notFoundMsg:'æªæ¾å°æå®çæåã',matchCase:'大å°å¯«é ç¸ç¬¦',matchWord:'å
¨åç¸ç¬¦',matchCyclic:'å¾ªç°æç´¢',replaceAll:'å
¨é¨å代',replaceSuccessMsg:'å
±å®æ %1 次å代'},table:{toolbar:'è¡¨æ ¼',title:'è¡¨æ ¼å±¬æ§',menu:'è¡¨æ ¼å±¬æ§',deleteTable:'åªé¤è¡¨æ ¼',rows:'忏',columns:'æ¬æ¸',border:'éæ¡',align:'å°é½',alignLeft:'é å·¦å°é½',alignCenter:'ç½®ä¸',alignRight:'é å³å°é½',width:'寬度',widthPx:'åç´ ',widthPc:'ç¾åæ¯',widthUnit:'width unit',height:'é«åº¦',cellSpace:'éè·',cellPad:'å
§è·',caption:'æ¨é¡',summary:'æè¦',headers:'æ¨é¡',headersNone:'ç¡æ¨é¡',headersColumn:'ç¬¬ä¸æ¬',headersRow:'第ä¸å',headersBoth:'ç¬¬ä¸æ¬å第ä¸å',invalidRows:'å¿
é æä¸ææ´å¤çå',invalidCols:'å¿
é æä¸ææ´å¤çæ¬',invalidBo
rder:'鿡大å°å¿
é çºæ¸åæ ¼å¼',invalidWidth:'è¡¨æ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼',invalidHeight:'è¡¨æ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼',invalidCellSpacing:'å²åæ ¼éè·å¿
é çºæ¸åæ ¼å¼',invalidCellPadding:'å²åæ ¼å
§è·å¿
é çºæ¸åæ ¼å¼',cell:{menu:'å²åæ ¼',insertBefore:'åå·¦æå
¥å²åæ ¼',insertAfter:'å峿å
¥å²åæ ¼',deleteCell:'åªé¤å²åæ ¼',merge:'åä½µå²åæ ¼',mergeRight:'åå³åä½µå²åæ ¼',mergeDown:'åä¸åä½µå²åæ ¼',splitHorizontal:'æ©«ååå²å²åæ ¼',splitVertical:'縱ååå²å²åæ ¼',title:'å²åæ ¼å±¬æ§',cellType:'å²åæ ¼é¡å¥',rowSpan:'å²åæ ¼åæ¸',colSpan:'å²åæ ¼æ¬æ¸',wordWrap:'èªåæè¡',hAlign:'æ°´å¹³å°é½',vAlign:'åç´å°é½',alignTop:'åä¸å°é½',alignMiddle:'ç½®ä¸å°é½',alignBottom:'åä¸å°é½',alignBaseline:'åºç·å°é½',bgColor:'èæ¯é¡è²',borderColor:'éæ¡é¡è²',data:'æ¸æ',header:'æ¨é¡',yes:'æ¯',no:'å¦',invalidWidth:'å²åæ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼',invalidH
eight:'å²åæ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼',invalidRowSpan:'å²åæ ¼åæ¸å¿
é çºæ´æ¸æ ¼å¼',invalidColSpan:'å²åæ ¼æ¬æ¸åº¦å¿
é çºæ´æ¸æ ¼å¼',chooseColor:'Choose'},row:{menu:'å',insertBefore:'å䏿å
¥å',insertAfter:'å䏿å
¥å',deleteRow:'åªé¤å'},column:{menu:'æ¬',insertBefore:'åå·¦æå
¥æ¬',insertAfter:'å峿å
¥æ¬',deleteColumn:'åªé¤æ¬'}},button:{title:'æé屬æ§',text:'顯示æå (å¼)',type:'é¡å',typeBtn:'æé (Button)',typeSbm:'éåº (Submit)',typeRst:'éè¨ (Reset)'},checkboxAndRadio:{checkboxTitle:'æ ¸åæ¹å¡å±¬æ§',radioTitle:'é¸é
æé屬æ§',value:'é¸åå¼',selected:'å·²é¸å'},form:{title:'表å®å±¬æ§',menu:'表å®å±¬æ§',action:'åä½',method:'æ¹æ³',encoding:'表å®ç·¨ç¢¼'},select:{title:'æ¸
å®/é¸å®å±¬æ§',selectInfo:'è³è¨',opAvail:'å¯ç¨é¸é
',value:'å¼',size:'大å°',lines:'è¡',chkMulti:'å¯å¤é¸',opText:'顯示æå',opValue:'é¸åå¼',btnAdd:'æ°å¢',btnModify:'ä¿®æ¹',btnUp:'ä¸ç§»
',btnDown:'ä¸ç§»',btnSetValue:'è¨çºé è¨å¼',btnDelete:'åªé¤'},textarea:{title:'æååå屬æ§',cols:'åå
寬度',rows:'忏'},textfield:{title:'æåæ¹å¡å±¬æ§',name:'å稱',value:'å¼',charWidth:'åå
寬度',maxChars:'æå¤åå
æ¸',type:'é¡å',typeText:'æå',typePass:'å¯ç¢¼'},hidden:{title:'é±èæ¬ä½å±¬æ§',name:'å稱',value:'å¼'},image:{title:'å½±å屬æ§',titleButton:'å½±åæé屬æ§',menu:'å½±å屬æ§',infoTab:'å½±åè³è¨',btnUpload:'ä¸å³è³ä¼ºæå¨',upload:'ä¸å³',alt:'æ¿ä»£æå',width:'寬度',height:'é«åº¦',lockRatio:'çæ¯ä¾',unlockRatio:'Unlock Ratio',resetSize:'éè¨çºå大å°',border:'éæ¡',hSpace:'æ°´å¹³è·é¢',vSpace:'åç´è·é¢',align:'å°é½',alignLeft:'é å·¦å°é½',alignRight:'é å³å°é½',alertUrl:'è«è¼¸å
¥å½±å URL',linkTab:'è¶
é£çµ',button2Img:'è¦æå½±åæéæ¹æå½±ååï¼',img2Button:'è¦æå½±åæ¹æå½±åæéåï¼',urlMissing:'Image source URL is missing.',validateWidth:'Widt
h must be a whole number.',validateHeight:'Height must be a whole number.',validateBorder:'Border must be a whole number.',validateHSpace:'HSpace must be a whole number.',validateVSpace:'VSpace must be a whole number.'},flash:{properties:'Flash 屬æ§',propertiesTab:'屬æ§',title:'Flash 屬æ§',chkPlay:'èªåææ¾',chkLoop:'éè¤',chkMenu:'éåé¸å®',chkFull:'ååå
¨è¢å¹é¡¯ç¤º',scale:'縮æ¾',scaleAll:'å
¨é¨é¡¯ç¤º',scaleNoBorder:'ç¡éæ¡',scaleFit:'精確符å',access:'å
許è
³æ¬è¨ªå',accessAlways:'æ°¸é ',accessSameDomain:'ç¸ååå',accessNever:'æ°¸ä¸',align:'å°é½',alignLeft:'é å·¦å°é½',alignAbsBottom:'çµå°ä¸æ¹',alignAbsMiddle:'çµå°ä¸é',alignBaseline:'åºæºç·',alignBottom:'é ä¸å°é½',alignMiddle:'ç½®ä¸å°é½',alignRight:'é å³å°é½',alignTextTop:'æå䏿¹',alignTop:'é ä¸å°é½',quality:'è³ªç´ ',qualityBest:'æå¥½',qualityHigh:'é«',qualityAutoHigh:'é«ï¼èªåï¼',qualityMedium:'ä¸ï¼èªåï¼',qualityAutoLow:'ä½ï¼èª
åï¼',qualityLow:'ä½',windowModeWindow:'è¦çª',windowModeOpaque:'ä¸éæ',windowModeTransparent:'éæ',windowMode:'è¦çªæ¨¡å¼',flashvars:'Flash è®æ¸',bgcolor:'èæ¯é¡è²',width:'寬度',height:'é«åº¦',hSpace:'æ°´å¹³è·é¢',vSpace:'åç´è·é¢',validateSrc:'è«è¼¸å
¥æ¬²é£çµç URL',validateWidth:'寬度å¿
é çºæ¸åæ ¼å¼',validateHeight:'é«åº¦å¿
é çºæ¸åæ ¼å¼',validateHSpace:'æ°´å¹³éè·å¿
é çºæ¸åæ ¼å¼',validateVSpace:'åç´éè·å¿
é çºæ¸åæ ¼å¼'},spellCheck:{toolbar:'æ¼å檢æ¥',title:'æ¼å檢æ¥',notAvailable:'æ±æï¼æåç®åæ«ä¸å¯ç¨',errorLoading:'ç¡æ³è¯ç³»ä¾æå¨: %s.',notInDic:'ä¸å¨åå
¸ä¸',changeTo:'æ´æ¹çº',btnIgnore:'忽ç¥',btnIgnoreAll:'å
¨é¨å¿½ç¥',btnReplace:'å代',btnReplaceAll:'å
¨é¨å代',btnUndo:'復å',noSuggestions:'- ç¡å»ºè°å¼ -',progress:'é²è¡æ¼å檢æ¥ä¸â¦',noMispell:'æ¼å檢æ¥å®æï¼æªç¼ç¾æ¼åé¯èª¤',noChanges:'æ¼å檢æ¥å®æï¼æªæ´æ¹ä»»ä½å®å',oneChange:
'æ¼å檢æ¥å®æï¼æ´æ¹äº 1 åå®å',manyChanges:'æ¼å檢æ¥å®æï¼æ´æ¹äº %1 åå®å',ieSpellDownload:'å°æªå®è£æ¼å檢æ¥å
ä»¶ãæ¨æ¯å¦æ³è¦ç¾å¨ä¸è¼ï¼'},smiley:{toolbar:'表æ
符è',title:'æå
¥è¡¨æ
符è',options:'Smiley Options'},elementsPath:{eleLabel:'Elements path',eleTitle:'%1 å
ç´ '},numberedlist:'ç·¨èæ¸
å®',bulletedlist:'é
ç®æ¸
å®',indent:'å¢å 縮æ',outdent:'æ¸å°ç¸®æ',justify:{left:'é å·¦å°é½',center:'ç½®ä¸',right:'é å³å°é½',block:'å·¦å³å°é½'},blockquote:'å¼ç¨æå',clipboard:{title:'è²¼ä¸',cutError:'ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡åªä¸åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+X) åªä¸ã',copyError:'ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡è¤è£½åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+C) è¤è£½ã',pasteMsg:'è«ä½¿ç¨å¿«æ·éµ (<strong>Ctrl/Cmd+V</strong>) è²¼å°ä¸æ¹ååä¸ä¸¦æä¸ <strong>確å®</strong>',securityMsg:'å çºç覽å¨çå®å
¨æ§è¨å®ï¼æ
¬ç·¨è¼¯å¨ç¡æ³ç´æ¥å忍çåªè²¼ç°¿è³æï¼è«æ¨èªè¡å¨æ¬è¦çªé²è¡è²¼ä¸åä½ã',pasteArea:'Paste Area'},pastefromword:{confirmCleanup:'æ¨æ³è²¼ä¸çæå似乿¯èª Word è¤è£½èä¾ï¼è«åæ¨æ¯å¦è¦å
æ¸
é¤ Word çæ ¼å¼å¾åè¡è²¼ä¸ï¼',toolbar:'èª Word è²¼ä¸',title:'èª Word è²¼ä¸',error:'It was not possible to clean up the pasted data due to an internal error'},pasteText:{button:'è²¼çºç´æåæ ¼å¼',title:'è²¼çºç´æåæ ¼å¼'},templates:{button:'樣ç',title:'å
§å®¹æ¨£ç',options:'Template Options',insertOption:'å代åæå
§å®¹',selectPromptMsg:'è«é¸ææ¬²éåçæ¨£ç<br> (åæçå
§å®¹å°æè¢«æ¸
é¤):',emptyListMsg:'(ç¡æ¨£ç)'},showBlocks:'顯示åå¡',stylesCombo:{label:'樣å¼',panelTitle:'Formatting Styles',panelTitle1:'å¡ç´å
ç´ æ¨£å¼',panelTitle2:'å
§è¯å
ç´ æ¨£å¼',panelTitle3:'ç©ä»¶å
ç´ æ¨£å¼'},format:{label:'æ ¼å¼',panelTitle:'æ ¼å¼',tag_p:'ä¸è¬',tag_pre:'å·²æ ¼å¼å',tag_address:'ä½å',tag_h1
:'æ¨é¡ 1',tag_h2:'æ¨é¡ 2',tag_h3:'æ¨é¡ 3',tag_h4:'æ¨é¡ 4',tag_h5:'æ¨é¡ 5',tag_h6:'æ¨é¡ 6',tag_div:'ä¸è¬ (DIV)'},div:{title:'Create Div Container',toolbar:'Create Div Container',cssClassInputLabel:'Stylesheet Classes',styleSelectLabel:'Style',IdInputLabel:'Id',languageCodeInputLabel:' Language Code',inlineStyleInputLabel:'Inline Style',advisoryTitleInputLabel:'Advisory Title',langDirLabel:'Language Direction',langDirLTRLabel:'Left to Right (LTR)',langDirRTLLabel:'Right to Left (RTL)',edit:'Edit Div',remove:'Remove Div'},font:{label:'åé«',voiceLabel:'åé«',panelTitle:'åé«'},fontSize:{label:'大å°',voiceLabel:'æå大å°',panelTitle:'大å°'},colorButton:{textColorTitle:'æåé¡è²',bgColorTitle:'èæ¯é¡è²',panelTitle:'Colors',auto:'èªå',more:'æ´å¤é¡è²â¦'},colors:{'000':'Black',800000:'Maroon','8B4513':'Saddle Brown','2F4F4F':'Dark Slate Gray','008080':'Teal','000080':'Navy','4B0082':'Indigo',696969:'Dark Gray',B22222:'Fire Brick',A52A2A:'B
rown',DAA520:'Golden Rod','006400':'Dark Green','40E0D0':'Turquoise','0000CD':'Medium Blue',800080:'Purple',808080:'Gray',F00:'Red',FF8C00:'Dark Orange',FFD700:'Gold','008000':'Green','0FF':'Cyan','00F':'Blue',EE82EE:'Violet',A9A9A9:'Dim Gray',FFA07A:'Light Salmon',FFA500:'Orange',FFFF00:'Yellow','00FF00':'Lime',AFEEEE:'Pale Turquoise',ADD8E6:'Light Blue',DDA0DD:'Plum',D3D3D3:'Light Grey',FFF0F5:'Lavender Blush',FAEBD7:'Antique White',FFFFE0:'Light Yellow',F0FFF0:'Honeydew',F0FFFF:'Azure',F0F8FF:'Alice Blue',E6E6FA:'Lavender',FFF:'White'},scayt:{title:'峿æ¼å¯«æª¢æ¥',opera_title:'Not supported by Opera',enable:'åç¨å³ææ¼å¯«æª¢æ¥',disable:'éé峿æ¼å¯«æª¢æ¥',about:'鿼峿æ¼å¯«æª¢æ¥',toggle:'åç¨ï¼éé峿æ¼å¯«æª¢æ¥',options:'é¸é
',langs:'èªè¨',moreSuggestions:'æ´å¤æ¼å¯«å»ºè°',ignore:'忽ç¥',ignoreAll:'å
¨é¨å¿½ç¥',addWord:'æ·»å å®è©',emptyDic:'åå
¸å䏿çºç©º.',optionsTab:'é¸é
',allCaps:'Ignore All-Caps Words',ignoreDom
ainNames:'Ignore Domain Names',mixedCase:'Ignore Words with Mixed Case',mixedWithDigits:'Ignore Words with Numbers',languagesTab:'èªè¨',dictionariesTab:'åå
¸',dic_field_name:'Dictionary name',dic_create:'Create',dic_restore:'Restore',dic_delete:'Delete',dic_rename:'Rename',dic_info:'Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already have a stored dictionary, please type its name and click the Restore button.',aboutTab:'éæ¼'},about:{title:'éæ¼ CKEditor',dlgTitle:'éæ¼ CKEditor',moreInfo:'訪åæåçç¶²ç«ä»¥ç²åæ´å¤éæ¼åè°çä¿¡æ¯',copy:'Copyright © $1. All rights reserved.'},maximize:'æå¤§å',minimize:'Minimize',fakeobjects:{anchor:'é¨é»',flash:'Flash åç«',div:'
åé ',unknown:'䏿ç©ä»¶'},resize:'ææ½æ¹è®å¤§å°',colordialog:{title:'Select color',options:'Color Options',highlight:'Highlight',selected:'Selected Color',clear:'Clear'},toolbarCollapse:'Collapse Toolbar',toolbarExpand:'Expand Toolbar',bidi:{ltr:'Text direction from left to right',rtl:'Text direction from right to left'}};
+CKEDITOR.lang['zh']={"dir":"ltr","editor":"坿æ¬ç·¨è¼¯å¨","common":{"editorHelp":"æ ALT+0 以ç²å¾å¹«å©","browseServer":"ç覽伺æå¨ç«¯","url":"URL","protocol":"éè¨åå®","upload":"ä¸å³","uploadSubmit":"ä¸å³è³ä¼ºæå¨","image":"å½±å","flash":"Flash","form":"表å®","checkbox":"æ ¸åæ¹å¡","radio":"é¸é
æé","textField":"æåæ¹å¡","textarea":"æååå","hiddenField":"é±èæ¬ä½","button":"æé","select":"æ¸
å®/é¸å®","imageButton":"å½±åæé","notSet":"<å°æªè¨å®>","id":"ID","name":"å稱","langDir":"èªè¨æ¹å","langDirLtr":"ç±å·¦èå³ (LTR)","langDirRtl":"ç±å³èå·¦ (RTL)","langCode":"èªè¨ä»£ç¢¼","longDescr":"詳細 URL","cssClass":"樣å¼è¡¨é¡å¥","advisoryTitle":"æ¨é¡","cssStyle":"樣å¼","ok":"確å®","cancel":"åæ¶","close":"å
³é","preview":"é¢è§","resize":"ææ½æ¹è®å¤§å°","generalTab":"ä¸è¬","advancedTab":"é²é","validateNumberFailed":"éè¦è¼¸å
¥æ¸åæ ¼å¼","confirmNewPage":"ç¾åçä¿®æ
¹å°æªå²åï¼è¦éæ°æªæ¡ï¼","confirmCancel":"é¨ä»½é¸é
å°æªå²åï¼è¦ééå°è©±çï¼","options":"é项","target":"ç®æ ","targetNew":"æ°çªå£(_blank)","targetTop":"æ´é¡µ(_top)","targetSelf":"æ¬çªå£(_self)","targetParent":"ç¶çªå£(_parent)","langDirLTR":"ç±å·¦èå³ (LTR)","langDirRTL":"ç±å³èå·¦ (RTL)","styles":"樣å¼","cssClasses":"樣å¼è¡¨é¡å¥","width":"寬度","height":"é«åº¦","align":"å°é½","alignLeft":"é å·¦å°é½","alignRight":"é å³å°é½","alignCenter":"ç½®ä¸","alignTop":"é ä¸å°é½","alignMiddle":"ç½®ä¸å°é½","alignBottom":"é ä¸å°é½","invalidValue":"Invalid value.","invalidHeight":"é«åº¦å¿
é çºæ¸åæ ¼å¼","invalidWidth":"寬度å¿
é çºæ¸åæ ¼å¼","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without
a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1<span class=\"cke_accessibility\">, å·²éé</span>"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"éæ¼ CKEditor","help":"Check $1 for help.","moreInfo":"訪åæåçç¶²ç«ä»¥ç²åæ´å¤éæ¼åè°çä¿¡æ¯","title":"éæ¼ CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"ç²é«","italic":"æé«","strike":"åªé¤ç·","subscript":"䏿¨","superscript":"䏿¨","underline":"åºç·"},"bidi":{"ltr":"Text direction from left to right","rtl":"Text direction from right to left"},"blockquote":{"toolbar":"å¼ç¨æå"},"clipboard":{"copy":"è¤è£½","copyError":"ç覽å¨çå®å
¨æ§è
¨å®ä¸å
許編輯å¨èªåå·è¡è¤è£½åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+C) è¤è£½ã","cut":"åªä¸","cutError":"ç覽å¨çå®å
¨æ§è¨å®ä¸å
許編輯å¨èªåå·è¡åªä¸åä½ãè«ä½¿ç¨å¿«æ·éµ (Ctrl/Cmd+X) åªä¸ã","paste":"è²¼ä¸","pasteArea":"Paste Area","pasteMsg":"è«ä½¿ç¨å¿«æ·éµ (<strong>Ctrl/Cmd+V</strong>) è²¼å°ä¸æ¹ååä¸ä¸¦æä¸ <strong>確å®</strong>","securityMsg":"å çºç覽å¨çå®å
¨æ§è¨å®ï¼æ¬ç·¨è¼¯å¨ç¡æ³ç´æ¥å忍çåªè²¼ç°¿è³æï¼è«æ¨èªè¡å¨æ¬è¦çªé²è¡è²¼ä¸åä½ã","title":"è²¼ä¸"},"colorbutton":{"auto":"èªå","bgColorTitle":"èæ¯é¡è²","colors":{"000":"Black","800000":"Maroon","8B4513":"Saddle Brown","2F4F4F":"Dark Slate Gray","008080":"Teal","000080":"Navy","4B0082":"Indigo","696969":"Dark Gray","B22222":"Fire Brick","A52A2A":"Brown","DAA520":"Golden Rod","006400":"Dark Green","40E0D0":"Turquoise","0000CD":"Medium Blue","800080":"Purple","808080":"Gray","F00":"Red","FF8C00":"Dark Orange","FFD
700":"Gold","008000":"Green","0FF":"Cyan","00F":"Blue","EE82EE":"Violet","A9A9A9":"Dim Gray","FFA07A":"Light Salmon","FFA500":"Orange","FFFF00":"Yellow","00FF00":"Lime","AFEEEE":"Pale Turquoise","ADD8E6":"Light Blue","DDA0DD":"Plum","D3D3D3":"Light Grey","FFF0F5":"Lavender Blush","FAEBD7":"Antique White","FFFFE0":"Light Yellow","F0FFF0":"Honeydew","F0FFFF":"Azure","F0F8FF":"Alice Blue","E6E6FA":"Lavender","FFF":"White"},"more":"æ´å¤é¡è²â¦","panelTitle":"Colors","textColorTitle":"æåé¡è²"},"colordialog":{"clear":"Clear","highlight":"Highlight","options":"Color Options","selected":"Selected Color","title":"Select color"},"templates":{"button":"樣ç","emptyListMsg":"(ç¡æ¨£ç)","insertOption":"å代åæå
§å®¹","options":"Template Options","selectPromptMsg":"è«é¸ææ¬²éåçæ¨£ç<br> (åæçå
§å®¹å°æè¢«æ¸
é¤):","title":"å
§å®¹æ¨£ç"},"contextmenu":{"options":"Context Menu Options"},"div":{"IdInputLabel":"Id","advisoryTitleInputLabel":"Advisory Title
","cssClassInputLabel":"Stylesheet Classes","edit":"Edit Div","inlineStyleInputLabel":"Inline Style","langDirLTRLabel":"Left to Right (LTR)","langDirLabel":"Language Direction","langDirRTLLabel":"Right to Left (RTL)","languageCodeInputLabel":" Language Code","remove":"Remove Div","styleSelectLabel":"Style","title":"Create Div Container","toolbar":"Create Div Container"},"toolbar":{"toolbarCollapse":"æå å·¥å
·æ ","toolbarExpand":"å±å¼å·¥å
·æ ","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"編輯å¨å·¥å
·æ¬"},"elementspath":{"eleLabel":"Elements path","eleTitle":"%1 å
ç´ "},"list":{"bulletedlist":"é
ç®æ¸
å®","numberedlist":"ç·¨èæ¸
å®"},"indent":{"indent":"å¢å 縮æ","outdent":"æ¸å°ç¸®æ"},"find":{"find":"å°æ¾","findOptions":"Find Options","findWhat
":"å°æ¾:","matchCase":"大å°å¯«é ç¸ç¬¦","matchCyclic":"å¾ªç°æç´¢","matchWord":"å
¨åç¸ç¬¦","notFoundMsg":"æªæ¾å°æå®çæåã","replace":"å代","replaceAll":"å
¨é¨å代","replaceSuccessMsg":"å
±å®æ %1 次å代","replaceWith":"å代:","title":"å°æ¾èå代"},"fakeobjects":{"anchor":"é¨é»","flash":"Flash åç«","hiddenfield":"é±èæ¬ä½","iframe":"IFrame","unknown":"䏿ç©ä»¶"},"flash":{"access":"å
許è
³æ¬è¨ªå","accessAlways":"æ°¸é ","accessNever":"æ°¸ä¸","accessSameDomain":"ç¸ååå","alignAbsBottom":"çµå°ä¸æ¹","alignAbsMiddle":"çµå°ä¸é","alignBaseline":"åºæºç·","alignTextTop":"æå䏿¹","bgcolor":"èæ¯é¡è²","chkFull":"ååå
¨è¢å¹é¡¯ç¤º","chkLoop":"éè¤","chkMenu":"éåé¸å®","chkPlay":"èªåææ¾","flashvars":"Flash è®æ¸","hSpace":"æ°´å¹³è·é¢","properties":"Flash 屬æ§","propertiesTab":"屬æ§","quality":"è³ªç´ ","qualityAutoHigh":"é«ï¼èªåï¼","qualityAutoLow":"ä½ï¼èªåï¼","quality
Best":"æå¥½","qualityHigh":"é«","qualityLow":"ä½","qualityMedium":"ä¸ï¼èªåï¼","scale":"縮æ¾","scaleAll":"å
¨é¨é¡¯ç¤º","scaleFit":"精確符å","scaleNoBorder":"ç¡éæ¡","title":"Flash 屬æ§","vSpace":"åç´è·é¢","validateHSpace":"æ°´å¹³éè·å¿
é çºæ¸åæ ¼å¼","validateSrc":"è«è¼¸å
¥æ¬²é£çµç URL","validateVSpace":"åç´éè·å¿
é çºæ¸åæ ¼å¼","windowMode":"è¦çªæ¨¡å¼","windowModeOpaque":"ä¸éæ","windowModeTransparent":"éæ","windowModeWindow":"è¦çª"},"font":{"fontSize":{"label":"大å°","voiceLabel":"æå大å°","panelTitle":"大å°"},"label":"åé«","panelTitle":"åé«","voiceLabel":"åé«"},"forms":{"button":{"title":"æé屬æ§","text":"顯示æå (å¼)","type":"é¡å","typeBtn":"æé (Button)","typeSbm":"éåº (Submit)","typeRst":"éè¨ (Reset)"},"checkboxAndRadio":{"checkboxTitle":"æ ¸åæ¹å¡å±¬æ§","radioTitle":"é¸é
æé屬æ§","value":"é¸åå¼","selected":"å·²é¸å"},"form":{"title":"表å®å±¬æ§","m
enu":"表å®å±¬æ§","action":"åä½","method":"æ¹æ³","encoding":"表å®ç·¨ç¢¼"},"hidden":{"title":"é±èæ¬ä½å±¬æ§","name":"å稱","value":"å¼"},"select":{"title":"æ¸
å®/é¸å®å±¬æ§","selectInfo":"è³è¨","opAvail":"å¯ç¨é¸é
","value":"å¼","size":"大å°","lines":"è¡","chkMulti":"å¯å¤é¸","opText":"顯示æå","opValue":"é¸åå¼","btnAdd":"æ°å¢","btnModify":"ä¿®æ¹","btnUp":"ä¸ç§»","btnDown":"ä¸ç§»","btnSetValue":"è¨çºé è¨å¼","btnDelete":"åªé¤"},"textarea":{"title":"æååå屬æ§","cols":"åå
寬度","rows":"忏"},"textfield":{"title":"æåæ¹å¡å±¬æ§","name":"å稱","value":"å¼","charWidth":"åå
寬度","maxChars":"æå¤åå
æ¸","type":"é¡å","typeText":"æå","typePass":"å¯ç¢¼","typeEmail":"Email","typeSearch":"Search","typeTel":"Telephone Number","typeUrl":"URL"}},"format":{"label":"æ ¼å¼","panelTitle":"æ ¼å¼","tag_address":"ä½å","tag_div":"ä¸è¬ (DIV)","tag_h1":"æ¨é¡ 1","tag_h2":"æ¨é¡ 2","tag_h3":"æ¨é¡
3","tag_h4":"æ¨é¡ 4","tag_h5":"æ¨é¡ 5","tag_h6":"æ¨é¡ 6","tag_p":"ä¸è¬","tag_pre":"å·²æ ¼å¼å"},"horizontalrule":{"toolbar":"æå
¥æ°´å¹³ç·"},"iframe":{"border":"Show frame border","noUrl":"Please type the iframe URL","scrolling":"Enable scrollbars","title":"IFrame Properties","toolbar":"IFrame"},"image":{"alertUrl":"è«è¼¸å
¥å½±å URL","alt":"æ¿ä»£æå","border":"éæ¡","btnUpload":"ä¸å³è³ä¼ºæå¨","button2Img":"è¦æå½±åæéæ¹æå½±ååï¼","hSpace":"æ°´å¹³è·é¢","img2Button":"è¦æå½±åæ¹æå½±åæéåï¼","infoTab":"å½±åè³è¨","linkTab":"è¶
é£çµ","lockRatio":"çæ¯ä¾","menu":"å½±å屬æ§","resetSize":"éè¨çºå大å°","title":"å½±å屬æ§","titleButton":"å½±åæé屬æ§","upload":"ä¸å³","urlMissing":"Image source URL is missing.","vSpace":"åç´è·é¢","validateBorder":"Border must be a whole number.","validateHSpace":"HSpace must be a whole number.","validateVSpace":"VSpace must be a whole number."},"smiley":{"option
s":"Smiley Options","title":"æå
¥è¡¨æ
符è","toolbar":"表æ
符è"},"justify":{"block":"å·¦å³å°é½","center":"ç½®ä¸","left":"é å·¦å°é½","right":"é å³å°é½"},"link":{"acccessKey":"ååéµ","advanced":"é²é","advisoryContentType":"å
§å®¹é¡å","advisoryTitle":"æ¨é¡","anchor":{"toolbar":"æå
¥/編輯é¨é»","menu":"é¨é»å±¬æ§","title":"é¨é»å±¬æ§","name":"é¨é»å稱","errorName":"è«è¼¸å
¥é¨é»å稱","remove":"Remove Anchor"},"anchorId":"ä¾å
ä»¶ ID","anchorName":"ä¾é¨é»å稱","charset":"é£çµè³æºä¹ç·¨ç¢¼","cssClasses":"樣å¼è¡¨é¡å¥","emailAddress":"é»åéµä»¶","emailBody":"éµä»¶å
§å®¹","emailSubject":"éµä»¶ä¸»æ¨","id":"ID","info":"è¶
é£çµè³è¨","langCode":"èªè¨æ¹å","langDir":"èªè¨æ¹å","langDirLTR":"ç±å·¦èå³ (LTR)","langDirRTL":"ç±å³èå·¦ (RTL)","menu":"編輯è¶
é£çµ","name":"å稱","noAnchors":"(æ¬æä»¶å°ç¡å¯ç¨ä¹é¨é»)","noEmail":"è«è¼¸å
¥é»åéµä»¶ä½å","noUrl":"è«è¼¸å
¥æ¬²é£çµç URL","ot
her":"<å
¶ä»>","popupDependent":"å¾å±¬ (NS)","popupFeatures":"快顯è¦çªå±¬æ§","popupFullScreen":"å
¨è¢å¹ (IE)","popupLeft":"å·¦","popupLocationBar":"ç¶²åå","popupMenuBar":"é¸å®å","popupResizable":"å¯ç¸®æ¾","popupScrollBars":"æ²è»¸","popupStatusBar":"çæ
å","popupToolbar":"å·¥å
·å","popupTop":"å³","rel":"Relationship","selectAnchor":"è«é¸æé¨é»","styles":"樣å¼","tabIndex":"å®ä½é åº","target":"ç®æ¨","targetFrame":"<æ¡æ¶>","targetFrameName":"ç®æ¨æ¡æ¶å稱","targetPopup":"<快顯è¦çª>","targetPopupName":"快顯è¦çªå稱","title":"è¶
é£çµ","toAnchor":"æ¬é é¨é»","toEmail":"é»åéµä»¶","toUrl":"URL","toolbar":"æå
¥/編輯è¶
é£çµ","type":"è¶
飿¥é¡å","unlink":"ç§»é¤è¶
é£çµ","upload":"ä¸å³"},"liststyle":{"armenian":"Armenian numbering","bulletedTitle":"Bulleted List Properties","circle":"Circle","decimal":"Decimal (1, 2, 3, etc.)","decimalLeadingZero":"Decimal leading zero (01, 02, 03, etc.)","disc":"Disc","geor
gian":"Georgian numbering (an, ban, gan, etc.)","lowerAlpha":"Lower Alpha (a, b, c, d, e, etc.)","lowerGreek":"Lower Greek (alpha, beta, gamma, etc.)","lowerRoman":"Lower Roman (i, ii, iii, iv, v, etc.)","none":"None","notset":"<not set>","numberedTitle":"Numbered List Properties","square":"Square","start":"Start","type":"Type","upperAlpha":"Upper Alpha (A, B, C, D, E, etc.)","upperRoman":"Upper Roman (I, II, III, IV, V, etc.)","validateStartNumber":"List start number must be a whole number."},"magicline":{"title":"Insert paragraph here"},"maximize":{"maximize":"æå¤§å","minimize":"æå°å"},"newpage":{"toolbar":"éæ°æªæ¡"},"pagebreak":{"alt":"åé 符è","toolbar":"æå
¥åé 符è"},"pastetext":{"button":"è²¼çºç´æåæ ¼å¼","title":"è²¼çºç´æåæ ¼å¼"},"pastefromword":{"confirmCleanup":"æ¨æ³è²¼ä¸çæå似乿¯èª Word è¤è£½èä¾ï¼è«åæ¨æ¯å¦è¦å
æ¸
é¤ Word çæ ¼å¼å¾åè¡è²¼ä¸ï¼","error":"It was not possible to clean up the pasted
data due to an internal error","title":"èª Word è²¼ä¸","toolbar":"èª Word è²¼ä¸"},"preview":{"preview":"é 覽"},"print":{"toolbar":"åå°"},"removeformat":{"toolbar":"æ¸
餿 ¼å¼"},"save":{"toolbar":"å²å"},"selectall":{"toolbar":"å
¨é¸"},"showblocks":{"toolbar":"顯示åå¡"},"sourcearea":{"toolbar":"åå§ç¢¼"},"specialchar":{"options":"Special Character Options","title":"è«é¸æç¹æ®ç¬¦è","toolbar":"æå
¥ç¹æ®ç¬¦è"},"scayt":{"about":"鿼峿æ¼å¯«æª¢æ¥","aboutTab":"éæ¼","addWord":"æ·»å å®è©","allCaps":"Ignore All-Caps Words","dic_create":"Create","dic_delete":"Delete","dic_field_name":"Dictionary name","dic_info":"Initially the User Dictionary is stored in a Cookie. However, Cookies are limited in size. When the User Dictionary grows to a point where it cannot be stored in a Cookie, then the dictionary may be stored on our server. To store your personal dictionary on our server you should specify a name for your dictionary. If you already h
ave a stored dictionary, please type its name and click the Restore button.","dic_rename":"Rename","dic_restore":"Restore","dictionariesTab":"åå
¸","disable":"éé峿æ¼å¯«æª¢æ¥","emptyDic":"åå
¸å䏿çºç©º.","enable":"åç¨å³ææ¼å¯«æª¢æ¥","ignore":"忽ç¥","ignoreAll":"å
¨é¨å¿½ç¥","ignoreDomainNames":"Ignore Domain Names","langs":"èªè¨","languagesTab":"èªè¨","mixedCase":"Ignore Words with Mixed Case","mixedWithDigits":"Ignore Words with Numbers","moreSuggestions":"æ´å¤æ¼å¯«å»ºè°","opera_title":"Not supported by Opera","options":"é¸é
","optionsTab":"é¸é
","title":"峿æ¼å¯«æª¢æ¥","toggle":"åç¨ï¼éé峿æ¼å¯«æª¢æ¥","noSuggestions":"No suggestion"},"stylescombo":{"label":"樣å¼","panelTitle":"Formatting Styles","panelTitle1":"å¡ç´å
ç´ æ¨£å¼","panelTitle2":"å
§è¯å
ç´ æ¨£å¼","panelTitle3":"ç©ä»¶å
ç´ æ¨£å¼"},"table":{"border":"éæ¡","caption":"æ¨é¡","cell":{"menu":"å²åæ ¼","insertBefore":"åå·¦æå
¥å²åæ ¼","ins
ertAfter":"å峿å
¥å²åæ ¼","deleteCell":"åªé¤å²åæ ¼","merge":"åä½µå²åæ ¼","mergeRight":"åå³åä½µå²åæ ¼","mergeDown":"åä¸åä½µå²åæ ¼","splitHorizontal":"æ©«ååå²å²åæ ¼","splitVertical":"縱ååå²å²åæ ¼","title":"å²åæ ¼å±¬æ§","cellType":"å²åæ ¼é¡å¥","rowSpan":"å²åæ ¼åæ¸","colSpan":"å²åæ ¼æ¬æ¸","wordWrap":"èªåæè¡","hAlign":"æ°´å¹³å°é½","vAlign":"åç´å°é½","alignBaseline":"åºç·å°é½","bgColor":"èæ¯é¡è²","borderColor":"éæ¡é¡è²","data":"æ¸æ","header":"æ¨é¡","yes":"æ¯","no":"å¦","invalidWidth":"å²åæ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼","invalidHeight":"å²åæ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼","invalidRowSpan":"å²åæ ¼åæ¸å¿
é çºæ´æ¸æ ¼å¼","invalidColSpan":"å²åæ ¼æ¬æ¸åº¦å¿
é çºæ´æ¸æ ¼å¼","chooseColor":"Choose"},"cellPad":"å
§è·","cellSpace":"éè·","column":{"menu":"æ¬","insertBefore":"åå·¦æå
¥æ¬","insertAfter":"å峿å
¥æ¬","deleteColumn":"åªé¤æ¬"},"columns":"æ
¬æ¸","deleteTable":"åªé¤è¡¨æ ¼","headers":"æ¨é¡","headersBoth":"ç¬¬ä¸æ¬å第ä¸å","headersColumn":"ç¬¬ä¸æ¬","headersNone":"ç¡æ¨é¡","headersRow":"第ä¸å","invalidBorder":"鿡大å°å¿
é çºæ¸åæ ¼å¼","invalidCellPadding":"å²åæ ¼å
§è·å¿
é çºæ¸åæ ¼å¼","invalidCellSpacing":"å²åæ ¼éè·å¿
é çºæ¸åæ ¼å¼","invalidCols":"å¿
é æä¸ææ´å¤çæ¬","invalidHeight":"è¡¨æ ¼é«åº¦å¿
é çºæ¸åæ ¼å¼","invalidRows":"å¿
é æä¸ææ´å¤çå","invalidWidth":"è¡¨æ ¼å¯¬åº¦å¿
é çºæ¸åæ ¼å¼","menu":"è¡¨æ ¼å±¬æ§","row":{"menu":"å","insertBefore":"å䏿å
¥å","insertAfter":"å䏿å
¥å","deleteRow":"åªé¤å"},"rows":"忏","summary":"æè¦","title":"è¡¨æ ¼å±¬æ§","toolbar":"è¡¨æ ¼","widthPc":"ç¾åæ¯","widthPx":"åç´ ","widthUnit":"width unit"},"undo":{"redo":"éè¤","undo":"復å"},"wsc":{"btnIgnore":"忽ç¥","btnIgnoreAll":"å
¨é¨å¿½ç¥","btnReplace":"å代","btnReplaceAll":"å
¨é¨å代","btnUndo":"復å","change
To":"æ´æ¹çº","errorLoading":"ç¡æ³è¯ç³»ä¾æå¨: %s.","ieSpellDownload":"å°æªå®è£æ¼å檢æ¥å
ä»¶ãæ¨æ¯å¦æ³è¦ç¾å¨ä¸è¼ï¼","manyChanges":"æ¼å檢æ¥å®æï¼æ´æ¹äº %1 åå®å","noChanges":"æ¼å檢æ¥å®æï¼æªæ´æ¹ä»»ä½å®å","noMispell":"æ¼å檢æ¥å®æï¼æªç¼ç¾æ¼åé¯èª¤","noSuggestions":"- ç¡å»ºè°å¼ -","notAvailable":"æ±æï¼æåç®åæ«ä¸å¯ç¨","notInDic":"ä¸å¨åå
¸ä¸","oneChange":"æ¼å檢æ¥å®æï¼æ´æ¹äº 1 åå®å","progress":"é²è¡æ¼å檢æ¥ä¸â¦","title":"æ¼å檢æ¥","toolbar":"æ¼å檢æ¥"}};
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/a11yhelp.js b/share/static/RichText/plugins/a11yhelp/dialogs/a11yhelp.js
index ef5329b..4bf2d3c 100644
--- a/share/static/RichText/plugins/a11yhelp/dialogs/a11yhelp.js
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/a11yhelp.js
@@ -1,7 +1,10 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('a11yHelp',function(a){var b=a.lang.accessibilityHelp,c=CKEDITOR.tools.getNextNumber(),d={8:'BACKSPACE',9:'TAB',13:'ENTER',16:'SHIFT',17:'CTRL',18:'ALT',19:'PAUSE',20:'CAPSLOCK',27:'ESCAPE',33:'PAGE UP',34:'PAGE DOWN',35:'END',36:'HOME',37:'LEFT ARROW',38:'UP ARROW',39:'RIGHT ARROW',40:'DOWN ARROW',45:'INSERT',46:'DELETE',91:'LEFT WINDOW KEY',92:'RIGHT WINDOW KEY',93:'SELECT KEY',96:'NUMPAD 0',97:'NUMPAD 1',98:'NUMPAD 2',99:'NUMPAD 3',100:'NUMPAD 4',101:'NUMPAD 5',102:'NUMPAD 6',103:'NUMPAD 7',104:'NUMPAD 8',105:'NUMPAD 9',106:'MULTIPLY',107:'ADD',109:'SUBTRACT',110:'DECIMAL POINT',111:'DIVIDE',112:'F1',113:'F2',114:'F3',115:'F4',116:'F5',117:'F6',118:'F7',119:'F8',120:'F9',121:'F10',122:'F11',123:'F12',144:'NUM LOCK',145:'SCROLL LOCK',186:'SEMI-COLON',187:'EQUAL SIGN',188:'COMMA',189:'DASH',190:'PERIOD',191:'FORWARD SLASH',192:'GRAVE ACCENT',219:'OPEN BRACKET',220:'BACK SLASH',221:'CLOSE BRAKET',222:'SINGLE QUOTE'};d[CKEDITOR.ALT]='ALT';d[CKEDI
TOR.SHIFT]='SHIFT';d[CKEDITOR.CTRL]='CTRL';var e=[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL];function f(j){var k,l,m=[];for(var n=0;n<e.length;n++){l=e[n];k=j/e[n];if(k>1&&k<=2){j-=l;m.push(d[l]);}}m.push(d[j]||String.fromCharCode(j));return m.join('+');};var g=/\$\{(.*?)\}/g;function h(j,k){var l=a.config.keystrokes,m,n=l.length;for(var o=0;o<n;o++){m=l[o];if(m[1]==k)break;}return f(m[0]);};function i(){var j='<div class="cke_accessibility_legend" role="document" aria-labelledby="cke_'+c+'_arialbl" tabIndex="-1">%1</div>'+'<span id="cke_'+c+'_arialbl" class="cke_voice_label">'+b.contents+' </span>',k='<h1>%1</h1><dl>%2</dl>',l='<dt>%1</dt><dd>%2</dd>',m=[],n=b.legend,o=n.length;for(var p=0;p<o;p++){var q=n[p],r=[],s=q.items,t=s.length;for(var u=0;u<t;u++){var v=s[u],w;w=l.replace('%1',v.name).replace('%2',v.legend.replace(g,h));r.push(w);}m.push(k.replace('%1',q.name).replace('%2',r.join('')));}return j.replace('%1',m.join(''));};return{title:b.title,minWidth:600,minHeight:
400,contents:[{id:'info',label:a.lang.common.generalTab,expand:true,elements:[{type:'html',id:'legends',focus:function(){},html:i()+'<style type="text/css">'+'.cke_accessibility_legend'+'{'+'width:600px;'+'height:400px;'+'padding-right:5px;'+'overflow-y:auto;'+'overflow-x:hidden;'+'}'+'.cke_accessibility_legend h1'+'{'+'font-size: 20px;'+'border-bottom: 1px solid #AAA;'+'margin: 5px 0px 15px;'+'}'+'.cke_accessibility_legend dl'+'{'+'margin-left: 5px;'+'}'+'.cke_accessibility_legend dt'+'{'+'font-size: 13px;'+'font-weight: bold;'+'}'+'.cke_accessibility_legend dd'+'{'+'white-space:normal;'+'margin:10px'+'}'+'</style>'}]}],buttons:[CKEDITOR.dialog.cancelButton]};
-});
+CKEDITOR.dialog.add("a11yHelp",function(j){var l=j.lang.a11yhelp,m=CKEDITOR.tools.getNextId(),d={8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSE",20:"CAPSLOCK",27:"ESCAPE",33:"PAGE UP",34:"PAGE DOWN",35:"END",36:"HOME",37:"LEFT ARROW",38:"UP ARROW",39:"RIGHT ARROW",40:"DOWN ARROW",45:"INSERT",46:"DELETE",91:"LEFT WINDOW KEY",92:"RIGHT WINDOW KEY",93:"SELECT KEY",96:"NUMPAD 0",97:"NUMPAD 1",98:"NUMPAD 2",99:"NUMPAD 3",100:"NUMPAD 4",101:"NUMPAD 5",102:"NUMPAD 6",103:"NUMPAD 7",
+104:"NUMPAD 8",105:"NUMPAD 9",106:"MULTIPLY",107:"ADD",109:"SUBTRACT",110:"DECIMAL POINT",111:"DIVIDE",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NUM LOCK",145:"SCROLL LOCK",186:"SEMI-COLON",187:"EQUAL SIGN",188:"COMMA",189:"DASH",190:"PERIOD",191:"FORWARD SLASH",192:"GRAVE ACCENT",219:"OPEN BRACKET",220:"BACK SLASH",221:"CLOSE BRAKET",222:"SINGLE QUOTE"};d[CKEDITOR.ALT]="ALT";d[CKEDITOR.SHIFT]="SHIFT";d[CKEDITOR.CTRL]="CTRL";
+var e=[CKEDITOR.ALT,CKEDITOR.SHIFT,CKEDITOR.CTRL],n=/\$\{(.*?)\}/g,q=function(){var o=j.keystrokeHandler.keystrokes,f={},b;for(b in o)f[o[b]]=b;return function(b,g){var a;if(f[g]){a=f[g];for(var h,i,k=[],c=0;c<e.length;c++)i=e[c],h=a/e[c],1<h&&2>=h&&(a-=i,k.push(d[i]));k.push(d[a]||String.fromCharCode(a));a=k.join("+")}else a=b;return a}}();return{title:l.title,minWidth:600,minHeight:400,contents:[{id:"info",label:j.lang.common.generalTab,expand:!0,elements:[{type:"html",id:"legends",style:"white-space:normal;",
+focus:function(){this.getElement().focus()},html:function(){for(var d='<div class="cke_accessibility_legend" role="document" aria-labelledby="'+m+'_arialbl" tabIndex="-1">%1</div><span id="'+m+'_arialbl" class="cke_voice_label">'+l.contents+" </span>",f=[],b=l.legend,j=b.length,g=0;g<j;g++){for(var a=b[g],h=[],i=a.items,k=i.length,c=0;c<k;c++){var e=i[c],p=e.legend.replace(n,q);p.match(n)||h.push("<dt>%1</dt><dd>%2</dd>".replace("%1",e.name).replace("%2",p))}f.push("<h1>%1</h1><dl>%2</dl>".replace("%1",
+a.name).replace("%2",h.join("")))}return d.replace("%1",f.join(""))}()+'<style type="text/css">.cke_accessibility_legend{width:600px;height:400px;padding-right:5px;overflow-y:auto;overflow-x:hidden;}.cke_browser_quirks .cke_accessibility_legend,.cke_browser_ie6 .cke_accessibility_legend{height:390px}.cke_accessibility_legend *{white-space:normal;}.cke_accessibility_legend h1{font-size: 20px;border-bottom: 1px solid #AAA;margin: 5px 0px 15px;}.cke_accessibility_legend dl{margin-left: 5px;}.cke_accessibility_legend dt{font-size: 13px;font-weight: bold;}.cke_accessibility_legend dd{margin:10px}</style>'}]}],
+buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/_translationstatus.txt b/share/static/RichText/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
new file mode 100644
index 0000000..e7c92d0
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/_translationstatus.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+
+cs.js Found: 30 Missing: 0
+cy.js Found: 30 Missing: 0
+da.js Found: 12 Missing: 18
+de.js Found: 30 Missing: 0
+el.js Found: 25 Missing: 5
+eo.js Found: 30 Missing: 0
+fa.js Found: 30 Missing: 0
+fi.js Found: 30 Missing: 0
+fr.js Found: 30 Missing: 0
+gu.js Found: 12 Missing: 18
+he.js Found: 30 Missing: 0
+it.js Found: 30 Missing: 0
+mk.js Found: 5 Missing: 25
+nb.js Found: 30 Missing: 0
+nl.js Found: 30 Missing: 0
+no.js Found: 30 Missing: 0
+pt-br.js Found: 30 Missing: 0
+ro.js Found: 6 Missing: 24
+tr.js Found: 30 Missing: 0
+ug.js Found: 27 Missing: 3
+vi.js Found: 6 Missing: 24
+zh-cn.js Found: 30 Missing: 0
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ar.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ar.js
new file mode 100644
index 0000000..280f80a
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ar.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ar",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"عاÙ
",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/bg.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/bg.js
new file mode 100644
index 0000000..1950e9a
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/bg.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","bg",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ÐбÑо",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ca.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ca.js
new file mode 100644
index 0000000..2e269ef
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ca.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ca",{title:"Instruccions d'Accessibilitat",contents:"Continguts de l'Ajuda. Per tancar aquest quadre de dià leg premi ESC.",legend:[{name:"General",items:[{name:"Editor de barra d'eines",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor de quadre de dià leg",
+legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},{name:"Editor de menú contextual",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
+{name:"Editor de caixa de llista",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor de barra de ruta de l'element",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
+{name:"Ordres",items:[{name:"Desfer ordre",legend:"Premi ${undo}"},{name:"Refer ordre",legend:"Premi ${redo}"},{name:"Ordre negreta",legend:"Prem ${bold}"},{name:"Ordre cursiva",legend:"Prem ${italic}"},{name:"Ordre subratllat",legend:"Prem ${underline}"},{name:"Ordre enllaç",legend:"Prem ${link}"},{name:"Ordre amagar barra d'eines",legend:"Prem ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Ajuda d'accessibilitat",legend:"Prem ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/cs.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/cs.js
new file mode 100644
index 0000000..e0891be
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/cs.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","cs",{title:"Instrukce pro pÅÃstupnost",contents:"Obsah nápovÄdy. Pro uzavÅenà tohoto dialogu stisknÄte klávesu ESC.",legend:[{name:"Obecné",items:[{name:"Panel nástrojů editoru",legend:"StisknÄte${toolbarFocus} k procházenà panelu nástrojů. PÅejdÄte na dalšà a pÅedchozà skupiny pomocà TAB a SHIFT-TAB. PÅechod na dalšà a pÅedchozà tlaÄÃtko panelu nástrojů je pomocà ŠIPKA VPRAVO nebo Å IPKA VLEVO. StisknutÃm mezernÃku nebo klávesy ENTER tlaÄÃtko aktivujete."},{name:"Dialogové okno editoru",
+legend:"UvnitÅ dialogového okna stisknÄte TAB pro pÅesunutà na dalšà pole, stisknÄte SHIFT + TAB pro pÅesun na pÅedchozà pole, stisknÄte ENTER pro odeslánà dialogu, stisknÄte ESC pro jeho zruÅ¡enÃ. Pro dialogová okna, která majà mnoho karet stisknÄte ALT + F10 pr oprocházenà seznamu karet. Pak se pÅesuÅte na dalšà kartu pomocà TAB nebo Å IPKA VPRAVO. Pro pÅesun na pÅedchozà stisknÄte SHIFT + TAB nebo Å IPKA VLEVO. StisknÄte MEZERNÃK nebo ENTER pro vybránà stránky karet."},{name:"Kontextové menu editoru",
+legend:"StisknÄte ${contextMenu} nebo klávesu APPLICATION k otevÅenà kontextového menu. Pak se pÅesuÅte na dalšà možnost menu pomocà TAB nebo Å IPKY DOLÅ®. PÅesuÅte se na pÅedchozà možnost pomocà SHIFT+TAB nebo Å IPKY NAHORU. StisknÄte MEZERNÃK nebo ENTER pro zvolenà možnosti menu. Podmenu souÄasné možnosti otevÅete pomocà MEZERNÃKU nebo ENTER Äi Å IPKY DOLEVA. Kontextové menu uzavÅete stiskem ESC."},{name:"RámeÄek seznamu editoru",legend:"UvnitÅ rámeÄku seznamu se pÅesunete na dalšà položku menu pomocà TAB nebo Å IPKA DOLÅ®. Na pÅedchozà položku se pÅesunete SHIFT + TAB nebo Å IPKA NAHORU. StisknÄte MEZERNÃK nebo ENTER pro zvolenà možnosti seznamu. StisknÄte ESC pro uzavÅenà seznamu."},
+{name:"LiÅ¡ta cesty prvku v editoru",legend:"StisknÄte ${elementsPathFocus} pro procházenà liÅ¡ty cesty prvku. Na dalšà tlaÄÃtko prvku se pÅesunete pomocà TAB nebo Å IPKA VPRAVO. Na pÅedchozà položku se pÅesunete pomocà SHIFT + TAB nebo Å IPKA VLEVO. StisknÄte MEZERNÃK nebo ENTER pro vybránà prvku v editoru."}]},{name:"PÅÃkazy",items:[{name:" PÅÃkaz ZpÄt",legend:"StisknÄte ${undo}"},{name:" PÅÃkaz Znovu",legend:"StisknÄte ${redo}"},{name:" PÅÃkaz TuÄné",legend:"StisknÄte ${bold}"},{name:" PÅÃkaz KurzÃva",
+legend:"StisknÄte ${italic}"},{name:" PÅÃkaz PodtrženÃ",legend:"StisknÄte ${underline}"},{name:" PÅÃkaz Odkaz",legend:"StisknÄte ${link}"},{name:" PÅÃkaz Skrýt panel nástrojů",legend:"StisknÄte ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",
+legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" NápovÄda pÅÃstupnosti",legend:"StisknÄte ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/cy.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/cy.js
new file mode 100644
index 0000000..547e77c
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/cy.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","cy",{title:"Canllawiau Hygyrchedd",contents:"Cynnwys Cymorth. I gau y deialog hwn, pwyswch ESC.",legend:[{name:"Cyffredinol",items:[{name:"Bar Offer y Golygydd",legend:"Pwyswch $ {toolbarFocus} i fynd at y bar offer. Symudwch i'r grŵp bar offer nesaf a blaenorol gyda TAB a SHIFT-TAB. Symudwch i'r botwm bar offer nesaf a blaenorol gyda SAETH DDE neu SAETH CHWITH. Pwyswch SPACE neu ENTER i wneud botwm y bar offer yn weithredol."},{name:"Deialog y Golygydd",legend:"Tu mewn i'r deialog, pwyswch TAB i fynd i'r maes nesaf ar y deialog, pwyswch SHIFT + TAB i symud i faes blaenorol, pwyswch ENTER i gyflwyno'r deialog, pwyswch ESC i ddiddymu'r deialog. Ar gyfer deialogau sydd â thudalennau aml-tab, pwyswch ALT + F10 i lywio'r tab-restr. Yna symudwch i'r tab nesaf gyda TAB neu SAETH DDE. Symudwch i dab blaenorol gyda SHIFT + TAB neu'r SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis y dudalen tab."},
+{name:"Dewislen Cyd-destun y Golygydd",legend:"Pwyswch $ {contextMenu} neu'r ALLWEDD 'APPLICATION' i agor y ddewislen cyd-destun. Yna symudwch i'r opsiwn ddewislen nesaf gyda'r TAB neu'r SAETH I LAWR. Symudwch i'r opsiwn blaenorol gyda SHIFT + TAB neu'r SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn ddewislen. Agorwch is-dewislen yr opsiwn cyfredol gyda SPACE neu ENTER neu SAETH DDE. Ewch yn ôl i'r eitem ar y ddewislen uwch gydag ESC neu SAETH CHWITH. Ceuwch y ddewislen cyd-destun gydag ESC."},
+{name:"Blwch Rhestr y Golygydd",legend:"Tu mewn rhestr-bocs, ewch i'r eitem rhestr nesaf gyda TAB neu'r SAETH I LAWR. Symudwch i restr eitem flaenorol gyda SHIFT + TAB neu SAETH I FYNY. Pwyswch SPACE neu ENTER i ddewis yr opsiwn o'r rhestr. Pwyswch ESC i gau'r rhestr."},{name:"Bar Llwybr Elfen y Golygydd",legend:"Pwyswch $ {elementsPathFocus} i fynd i'r elfennau llwybr bar. Symudwch i fotwm yr elfen nesaf gyda TAB neu SAETH DDE. Symudwch i fotwm blaenorol gyda SHIFT + TAB neu SAETH CHWITH. Pwyswch SPACE neu ENTER i ddewis yr elfen yn y golygydd."}]},
+{name:"Gorchmynion",items:[{name:"Gorchymyn dadwneud",legend:"Pwyswch ${undo}"},{name:"Gorchymyn ailadrodd",legend:"Pwyswch ${redo}"},{name:"Gorchymyn Bras",legend:"Pwyswch ${bold}"},{name:"Gorchymyn italig",legend:"Pwyswch ${italig}"},{name:"Gorchymyn tanlinellu",legend:"Pwyso ${underline}"},{name:"Gorchymyn dolen",legend:"Pwyswch ${link}"},{name:"Gorchymyn Cwympo'r Dewislen",legend:"Pwyswch ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Cymorth Hygyrchedd",legend:"Pwyswch ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/da.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/da.js
new file mode 100644
index 0000000..fa0c807
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/da.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","da",{title:"Tilgængelighedsinstrukser",contents:"Onlinehjælp. For at lukke dette vindue klik ESC",legend:[{name:"Generelt",items:[{name:"Editor værktøjslinje",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Kommandoer",items:[{name:"Fortryd kommando",legend:"Klik på ${undo}"},{name:"Gentag kommando",legend:"Klik ${redo}"},{name:" Bold command",legend:"Klik ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Klik ${underline}"},{name:" Link command",legend:"Klik ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Kilk ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/de.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/de.js
new file mode 100644
index 0000000..70ecde1
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/de.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","de",{title:"Barrierefreiheitinformationen",contents:"Hilfeinhalt. Um den Dialog zu schliessen die Taste 'ESC' drücken.",legend:[{name:"Allgemein",items:[{name:"Editor Symbolleiste",legend:"Drücken Sie ${toolbarFocus} auf der Symbolleiste. Gehen Sie zur nächsten oder vorherigen Symbolleistengruppe mit TAB und SHIFT-TAB. Gehen Sie zur nächsten oder vorherigen Symbolleiste auf die Schaltfläche mit dem RECHTS- oder LINKS-Pfeil. Drücken Sie die Leertaste oder Eingabetaste, um die Schaltfläche in der Symbolleiste aktivieren."},
+{name:"Editor Dialog",legend:"Innerhalb des Dialogs drücken Sie TAB um zum nächsten Dialogfeld zu gelangen, drücken Sie SHIFT-TAG um zum vorherigen Feld zu wechseln, drücken Sie ENTER um den Dialog abzusenden und ESC um den Dialog zu abzubrechen. Um zwischen den Reitern innerhalb eines Dialogs zu wechseln drücken sie ALT-F10. Um zum nächsten Reiter zu gelangen können Sie TAB oder die rechte Pfeiltaste. Zurück gelangt man mit SHIFT-TAB oder der linken Pfeiltaste. Mit der Leertaste oder Enter kann man den Reiter auswählen."},
+{name:"Editor Kontextmenü",legend:"Dürcken Sie ${contextMenu} oder die Anwendungstaste um das Kontextmenü zu öffnen. Man kann die Pfeiltasten zum Wechsel benutzen. Mit der Leertaste oder der Enter-Taste kann man den Menüpunkt aufrufen. Schliessen Sie das Kontextmenü mit der ESC-Taste."},{name:"Editor Listen",legend:"Innerhalb einer Listenbox kann man mit der TAB-Taste oder den Pfeilrunter-Taste den nächsten Menüeintrag wählen. Mit der Shift-TAB Tastenkombination oder der Pfeilhoch-Taste gelangt man zum vorherigen Menüpunkt. Mit der Leertaste oder Enter kann man den Menüpunkt auswählen. Drücken Sie ESC zum Verlassen des Menüs."},
+{name:"Editor Elementpfadleiste",legend:"Drücken Sie ${elementsPathFocus} um sich durch die Pfadleiste zu bewegen. Um zum nächsten Element zu gelangen drücken Sie TAB oder die Pfeilrechts-Taste. Zum vorherigen Element gelangen Sie mit der SHIFT-TAB oder der Pfeillinks-Taste. Drücken Sie die Leertaste oder Enter um das Element auszuwählen."}]},{name:"Befehle",items:[{name:"Wiederholen Befehl",legend:"Drücken Sie ${undo}"},{name:"Rückgängig Befehl",legend:"Drücken Sie ${redo}"},{name:"Fettschrift Befehl",
+legend:"Drücken Sie ${bold}"},{name:"Italic Befehl",legend:"Drücken Sie ${italic}"},{name:"Unterstreichung Befehl",legend:"Drücken Sie ${underline}"},{name:"Link Befehl",legend:"Drücken Sie ${link}"},{name:"Symbolleiste zuammenklappen Befehl",legend:"Drücken Sie ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Eingabehilfen",legend:"Drücken Sie ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/el.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/el.js
new file mode 100644
index 0000000..cbf7e6d
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/el.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","el",{title:"ÎÎ´Î·Î³Î¯ÎµÏ Î ÏοÏβαÏιμÏÏηÏαÏ",contents:"ΠεÏιεÏÏμενα ÎοήθειαÏ. ΠαÏήÏÏε ESC για κλείÏιμο.",legend:[{name:"Îενικά",items:[{name:"ÎÏγαλειοθήκη ÎÏεξεÏγαÏÏή",legend:"ΠαÏήÏÏε ${toolbarFocus} για να ÏεÏιηγηθείÏε ÏÏην γÏαμμή εÏγαλείÏν. ÎεÏακινηθείÏε ανάμεÏα ÏÏÎ¹Ï Î¿Î¼Î¬Î´ÎµÏ ÏÎ·Ï Î³ÏÎ±Î¼Î¼Î®Ï ÎµÏγαλείÏν με TAB και Shift-TAB. ÎεÏακινηθείÏε ανάμεÏα ÏÏα κοÏ
μÏία εÏγαλείÏν με ÎÎÎΠκαι ÎΡÎΣΤÎΡΠÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΠή ENTER για να ενεÏγοÏοιήÏεÏε Ïο ενεÏÎ³Ï ÎºÎ¿Ï
μÏί εÏγαλείοÏ
."},{name:"ΠαÏάθÏ
Ïο ÎιαλÏγοÏ
ÎÏεξεÏγαÏÏή",
+legend:"ÎÎÏα Ïε Îνα ÏαÏάθÏ
Ïο διαλÏγοÏ
, ÏαÏήÏÏε TAB για να μεÏαβείÏε ÏÏο εÏÏμενο Ïεδίο ή SHIFT + TAB για να μεÏαβείÏε ÏÏο ÏÏοηγοÏμενο. ΠαÏήÏÏε ENTER για να Ï
ÏοβάλεÏε Ïην ÏÏÏμα. ΠαÏήÏÏε ESC για να ακÏ
ÏÏÏεÏε Ïην διαδικαÏία ÏÎ·Ï ÏÏÏμαÏ. Îια ÏαÏάθÏ
Ïα διαλÏγÏν ÏοÏ
ÎÏοÏ
ν ÏολλÎÏ ÏÎµÎ»Î¯Î´ÎµÏ Ïε καÏÏÎÎ»ÎµÏ ÏαÏήÏÏε ALT + F10 για να μεÏαβείÏε ÏÏην λίÏÏα ÏÏν καÏÏÎλÏν. ΣÏην ÏÏ
νÎÏεια μÏοÏείÏε να μεÏαβείÏε ÏÏην εÏÏμενη καÏÏÎλα ÏαÏÏνÏÎ±Ï TAB ή RIGHT ARROW. ÎÏοÏείÏε να μεÏαβείÏε ÏÏην ÏÏοηγοÏμενη καÏÏÎλα ÏαÏÏνÏÎ±Ï SHIFT + TAB ή LEFT ARROW. ΠαÏήÏÏε SPACE ή ENTER για να εÏιλÎξεÏε Ïην καÏÏÎλα για ÏÏοβολή."},
+{name:"ÎναδÏ
Ïμενο ÎÎµÎ½Î¿Ï ÎÏεξεÏγαÏÏή",legend:"ΠαÏήÏÏε ${contextMenu} ή APPLICATION KEY για να ανοίξεÏε Ïο αναδÏ
Ïμενο μενοÏ. ÎεÏά μεÏακινηθείÏε ÏÏην εÏÏμενη εÏιλογή ÏοÏ
Î¼ÎµÎ½Î¿Ï Î¼Îµ TAB ή ÎÎΤΩ ÎÎÎÎÎÎ. ÎεÏακινηθείÏε ÏÏην ÏÏοηγοÏμενη εÏιλογή με SHIFT+TAB ή Î ÎÎΩ ÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΣΤÎÎΠή ENTER για να εÏιλÎξεÏε Ïο ÏÏÎÏÏν ÏÏοιÏείο. ÎνοίξÏε Ïο αναδÏ
Ïμενο Î¼ÎµÎ½Î¿Ï ÏÎ·Ï ÏÏÎÏοÏ
ÏÎ±Ï ÎµÏÎ¹Î»Î¿Î³Î®Ï Î¼Îµ ÎÎÎΣΤÎÎΠή ENTER ή ÎÎÎÎ ÎÎÎÎÎÎ. ÎεÏαβείÏε ÏίÏÏ ÏÏο αÏÏÎ¹ÎºÏ ÏÏοιÏείο Î¼ÎµÎ½Î¿Ï Î¼Îµ ESC ή ÎΡÎΣΤÎΡΠÎÎÎÎÎÎ. ÎλείÏÏε Ïο αναδÏ
Ïμενο Î¼ÎµÎ½Î¿Ï Î¼Îµ ESC."},
+{name:"ÎοÏ
Ïί ÎίÏÏÎ±Ï ÎÏεξεÏγαÏÏÏν",legend:"ÎÎÏα Ïε Îνα κοÏ
Ïί λίÏÏαÏ, μεÏακινηθείÏε ÏÏο εÏÏμενο ÏÏοιÏείο με TAB ή ÎÎΤΩ ÎÎÎÎÎÎ. ÎεÏακινηθείÏε ÏÏο ÏÏοηγοÏμενο ÏÏοιÏείο με SHIFT + TAB ή Î ÎÎΩ ÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΣΤÎÎΠή ENTER για να εÏιλÎξεÏε Îνα ÏÏοιÏείο. ΠαÏήÏÏε ESC για να κλείÏεÏε Ïο κοÏ
Ïί ÏÎ·Ï Î»Î¯ÏÏαÏ."},{name:"ÎÏάÏα ÎιαδÏομÏν ΣÏοιÏείÏν ÎÏεξεÏγαÏÏή",legend:"ΠαÏήÏÏε ${elementsPathFocus} για να ÏεÏιηγηθείÏε ÏÏην μÏάÏα διαδÏομÏν ÏÏοιÏείÏν ÏοÏ
εÏεξεÏγαÏÏή. ÎεÏακινηθείÏε ÏÏο κοÏ
μÏί ÏοÏ
εÏÏμενοÏ
ÏÏοιÏείοÏ
με Ïο TAB ή Ïο ÎÎÎÎ ÎÎÎÎÎÎ. ÎεÏακινηθείÏε ÏÏο κοÏ
μÏί ÏοÏ
ÏÏοηγοÏμενοÏ
ÏÏοιÏε
ίοÏ
με Ïο SHIFT+TAB ή Ïο ÎΡÎΣΤÎΡΠÎÎÎÎÎÎ. ΠαÏήÏÏε ÎÎÎΣΤÎÎΠή ENTER για να εÏιλÎξεÏε Ïο ÏÏοιÏείο ÏÏον εÏεξεÏγαÏÏή."}]},
+{name:"ÎνÏολÎÏ",items:[{name:" ÎνÏολή αναίÏεÏηÏ",legend:"ΠαÏήÏÏε ${undo}"},{name:" ÎνÏολή εÏανάληÏηÏ",legend:"ΠαÏήÏÏε ${redo}"},{name:" ÎνÏολή ÎνÏÎ¿Î½Î·Ï Î³ÏαÏήÏ",legend:"ΠαÏήÏÏε ${bold}"},{name:" ÎνÏολή ÏÎ»Î¬Î³Î¹Î±Ï Î³ÏαÏήÏ",legend:"ΠαÏήÏÏε ${italic}"},{name:" ÎνÏολή Ï
ÏογÏάμμιÏηÏ",legend:"ΠαÏήÏÏε ${underline}"},{name:" ÎνÏολή ÏÏ
νδÎÏμοÏ
",legend:"ΠαÏήÏÏε ${link}"},{name:" ÎνÏολή ΣÏμÏÏÎ·Î¾Î·Ï ÎÏγαλειοθήκηÏ",legend:"ΠαÏήÏÏε ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Îοήθεια Î ÏοÏβαÏιμÏÏηÏαÏ",legend:"ΠαÏήÏÏε ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/en.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/en.js
new file mode 100644
index 0000000..0124a3c
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/en.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","en",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/eo.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/eo.js
new file mode 100644
index 0000000..eed3898
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/eo.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","eo",{title:"Uzindikoj pri atingeblo",contents:"Helpilenhavo. Por fermi tiun dialogon, premu la ESKAPAN klavon.",legend:[{name:"Äeneralaĵoj",items:[{name:"Ilbreto de la redaktilo",legend:"Premu ${toolbarFocus} por atingi la ilbreton. MoviÄu al la sekva aÅ antaÅa grupoj de la ilbreto per la klavoj TABA kaj MAJUSKLIGA-TABA. MoviÄu al la sekva aÅ antaÅa butonoj de la ilbreto per la klavoj SAGO DEKSTREN kaj SAGO MALDEKSTREN. Premu la SPACETklavon aÅ la ENENklavon por aktivigi la ilbretbutonon."},
+{name:"Redaktildialogo",legend:"En dialogo, premu la TABAN klavon por navigi al la sekva dialogkampo, premu la MAJUSKLIGAN + TABAN klavojn por reveni al la antaÅa kampo, premu la ENENklavon por sendi la dialogon, premu la ESKAPAN klavon por nuligi la dialogon. Por dialogoj kun pluraj retpaÄoj sub langetoj, premu ALT + F10 por navigi al la langetlisto. Poste moviÄu al la sekva langeto per la klavo TABA aÅ SAGO DEKSTREN. MoviÄu al la antaÅa langeto per la klavoj MAJUSKLIGA + TABA aÅ SAGO MALDEKSTREN. Premu la SPACETklavon aÅ la ENENklavon por selekti la langetretpaÄon."},
+{name:"Kunteksta menuo de la redaktilo",legend:"Premu ${contextMenu} aÅ entajpu la KLAVKOMBINAÄ´ON por malfermi la kuntekstan menuon. Poste moviÄu al la sekva opcio de la menuo per la klavoj TABA aÅ SAGO SUBEN. MoviÄu al la antaÅa opcio per la klavoj MAJUSKLGA + TABA aÅ SAGO SUPREN. Premu la SPACETklavon aÅ ENENklavon por selekti la menuopcion. Malfermu la submenuon de la kuranta opcio per la SPACETklavo aÅ la ENENklavo aÅ la SAGO DEKSTREN. Revenu al la elemento de la patra menuo per la klavoj ESKAPA aÅ SAGO MALDEKSTREN. Fermu la kuntekstan menuon per la ESKAPA klavo."},
+{name:"Fallisto de la redaktilo",legend:"En fallisto, moviÄu al la sekva listelemento per la klavoj TABA aÅ SAGO SUBEN. MoviÄu al la antaÅa listelemento per la klavoj MAJUSKLIGA + TABA aÅ SAGO SUPREN. Premu la SPACETklavon aÅ ENENklavon por selekti la opcion en la listo. Premu la ESKAPAN klavon por fermi la falmenuon."},{name:"Breto indikanta la vojon al la redaktilelementoj",legend:"Premu ${elementsPathFocus} por navigi al la breto indikanta la vojon al la redaktilelementoj. MoviÄu al la butono de la sekva elemento per la klavoj TABA aÅ SAGO DEKSTREN. MoviÄu al la butono de la antaÅa elemento per la klavoj MAJUSKLIGA + TABA aÅ SAGO MALDEKSTREN. Premu la SPACETklavon aÅ ENENklavon por selekti la elementon en la redaktilo."}]},
+{name:"Komandoj",items:[{name:"Komando malfari",legend:"Premu ${undo}"},{name:"Komando refari",legend:"Premu ${redo}"},{name:"Komando grasa",legend:"Premu ${bold}"},{name:"Komando kursiva",legend:"Premu ${italic}"},{name:"Komando substreki",legend:"Premu ${underline}"},{name:"Komando ligilo",legend:"Premu ${link}"},{name:"Komando faldi la ilbreton",legend:"Premu ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Helpilo pri atingeblo",legend:"Premu ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/es.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/es.js
new file mode 100644
index 0000000..877dc8c
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/es.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","es",{title:"Instrucciones de acceso",contents:"Ayuda. Para cerrar presione ESC.",legend:[{name:"General",items:[{name:"Barra de herramientas del editor",legend:'Presiona ${toolbarFocus} para navegar por la barra de herramientas. Para moverse por los distintos grupos de herramientas usa las teclas TAB y MAY-TAB. Para moverse por las distintas herramientas usa FLECHA DERECHA o FECHA IZQUIERDA. Presiona "espacio" o "intro" para activar la herramienta.'},{name:"Editor de diálogo",
+legend:"Dentro de un cuadro de diálogo, presione la tecla TAB para desplazarse al campo siguiente del cuadro de diálogo, pulse SHIFT + TAB para desplazarse al campo anterior, pulse ENTER para presentar cuadro de diálogo, pulse la tecla ESC para cancelar el diálogo. Para los diálogos que tienen varias páginas, presione ALT + F10 para navegar a la pestaña de la lista. Luego pasar a la siguiente pestaña con TAB o FLECHA DERECHA. Para ir a la ficha anterior con SHIFT + TAB o FLECHA IZQUIERDA. Presione ESPACIO o ENTRAR para seleccionar la página de ficha."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/et.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/et.js
new file mode 100644
index 0000000..5e95b6a
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/et.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","et",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ãldine",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/fa.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/fa.js
new file mode 100644
index 0000000..4b182de
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/fa.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","fa",{title:"Ø¯Ø³ØªÙØ±Ø§ÙعÙ
ÙÙØ§Û دسترسÛ",contents:"راÙÙÙ
Ø§Û ÙÙØ±Ø³Øª Ù
Ø·Ø§ÙØ¨. Ø¨Ø±Ø§Û Ø¨Ø³ØªÙ Ø§Û٠کادر Ù
ØØ§ÙØ±ÙØ§Û ESC را ÙØ´Ø§Ø± دÙÛØ¯.",legend:[{name:"عÙ
ÙÙ
Û",items:[{name:"ÙÙØ§Ø± ابزار ÙÛØ±Ø§Ûشگر",legend:"${toolbarFocus} را Ø¨Ø±Ø§Û Ø¨Ø§Ø² کرد٠ÙÙØ§Ø± ابزار Ø¨ÙØ´Ø§Ø±Ûد. با Ú©ÙÛØ¯ Tab Ù Shif-Tab در Ù
جÙ
ÙØ¹Ù ÙÙØ§Ø± ابزار Ø¨Ø¹Ø¯Û Ù ÙØ¨ÙÛ ØØ±Ú©Øª Ú©ÙÛØ¯. Ø¨Ø±Ø§Û ØØ±Ú©Øª در Ú©ÙÛØ¯ ÙÙØ§Ø± ابزار ÙØ¨ÙÛ Ù Ø¨Ø¹Ø¯Û Ø¨Ø§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª Ù ÚÙ¾ جابجا Ø´ÙÛØ¯. Ú©ÙÛØ¯ Space ÛØ§ Enter را Ø¨Ø±Ø§Û ÙØ¹Ø§Ù کرد٠کÙÛØ¯ ÙÙØ§Ø± ابزار Ø¨ÙØ´Ø§Ø±Ûد."},{name:"Ù¾ÙØ¬Ø±Ù Ù
ØØ§ÙØ±ÙØ§Û ÙÛØ±Ø§Ûشگر",
+legend:"در داخ٠ÛÚ© Ù¾ÙØ¬Ø±Ù Ù
ØØ§ÙØ±ÙØ§ÛØ Ú©ÙÛØ¯ Tab را Ø¨ÙØ´Ø§Ø±Ûد تا Ø¨Ù Ù¾ÙØ¬Ø±ÙÛ Ø¨Ø¹Ø¯Û Ø¨Ø±ÙÛØ¯Ø Shift+Tab Ø¨Ø±Ø§Û ØØ±Ú©Øª ب٠ÙÛÙØ¯ ÙØ¨ÙÛØ ÙØ´Ø±Ø¯Ù Enter Ø¨Ø±Ø§Û Ø«Ø¨Øª Ø§Ø·ÙØ§Ø¹Ø§Øª Ù¾ÙØ¬Ø±ÙØ ÙØ´Ø±Ø¯Ù Esc Ø¨Ø±Ø§Û ÙØºÙ Ù¾ÙØ¬Ø±Ù Ù
ØØ§ÙØ±ÙØ§Û Ù Ø¨Ø±Ø§Û Ù¾ÙØ¬Ø±ÙÙØ§ÛÛ Ú©Ù ÚÙØ¯ÛÙ Ø¨Ø±Ú¯Ù Ø¯Ø§Ø±ÙØ¯Ø ÙØ´Ø±Ø¯Ù Alt+F10 Ø¬ÙØª Ø±ÙØªÙ ب٠Tab-List. در ÙÙØ§Ûت ØØ±Ú©Øª Ø¨Ù Ø¨Ø±Ú¯Ù Ø¨Ø¹Ø¯Û Ø¨Ø§ Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª. ØØ±Ú©Øª Ø¨Ù Ø¨Ø±Ú¯Ù ÙØ¨ÙÛ Ø¨Ø§ Shift+Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û ÚÙ¾. ÙØ´Ø±Ø¯Ù Space ÛØ§ Enter Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ ÛÚ© برگÙ."},{name:"Ù
ÙÙÛ Ù
تÙÛ ÙÛØ±Ø§Ûشگر",legend:"${contextMenu} ÛØ§ Ú©ÙÛØ¯ Ø¨Ø±ÙØ§Ù
ÙÙØ§Û Ú©Ø§Ø±Ø¨Ø±Ø¯Û Ø±Ø§ Ø¨Ø±Ø§Û Ø¨Ø§Ø² کرد٠Ù
ÙÙÛ Ù
ت٠را Ø¨ÙØ´Ø§Ø±Ûد. سپس Ù
ÛØªÙاÙÛØ¯ Ø¨Ø±Ø§Û ØØ±Ú©Øª ب٠گزÛÙÙ Ø¨Ø¹Ø¯Û Ù
Ù٠با Ú©ÙÛØ¯ Tab Ù ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ù¾Ø§ÛÛÙ Ø
¬Ø§Ø¨Ø¬Ø§ Ø´ÙÛØ¯. ØØ±Ú©Øª ب٠گزÛÙÙ ÙØ¨ÙÛ Ø¨Ø§ Shift+Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø¨Ø§ÙØ§. ÙØ´Ø±Ø¯Ù Space ÛØ§ Enter Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ ÛÚ© گزÛÙ٠از Ù
ÙÙ. باز Ú©Ø±Ø¯Ù Ø²ÛØ± شاخ٠گزÛÙÙ Ù
ÙÙ Ø¬Ø§Ø±Û Ø¨Ø§ Ú©ÙÛØ¯ Space ÛØ§ Enter Ù ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª Ù ÚÙ¾. بازگشت ب٠Ù
ÙÙÛ ÙØ§Ùد با Ú©ÙÛØ¯ Esc ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û ÚÙ¾. بست٠Ù
ÙÙÛ Ù
ت٠با Esc."},
+{name:"جعب٠ÙÙØ±Ø³Øª ÙÛØ±Ø§Ûشگر",legend:"در داخ٠جعب٠ÙÛØ³ØªØ ÙÙÙ
دÙÙ
از اÙÙØ§Ù
ÙÛØ³Øª Ø¨Ø¹Ø¯Û Ø±Ø§ با TAB Ù ÛØ§ Arrow Down ØØ±Ú©Øª دÙÛØ¯. Ø§ÙØªÙا٠ب٠ÙÙÙ
دÙÙ
از اÙÙØ§Ù
ÙÛØ³Øª ÙØ¨ÙÛ Ø±Ø§ با SHIFT + TAB ÛØ§ UP ARROW. Ú©ÙÛØ¯ Space ÛØ§ ENTER را Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ گزÛÙÙ ÙÛØ³Øª Ø¨ÙØ´Ø§Ø±Ûد. Ú©ÙÛØ¯ ESC را Ø¨Ø±Ø§Û Ø¨Ø³ØªÙ Ø¬Ø¹Ø¨Ù ÙÛØ³Øª Ø¨ÙØ´Ø§Ø±Ûد."},{name:"ÙÛØ±Ø§Ûشگر Ø¹ÙØµØ± ÙÙØ§Ø± راÙ",legend:"Ø¨Ø±Ø§Û Ø±ÙØªÙ ب٠Ù
Ø³ÛØ± Ø¹ÙØ§ØµØ± ${elementsPathFocus} را Ø¨ÙØ´Ø§Ø±Ûد. ØØ±Ú©Øª ب٠کÙÛØ¯ Ø¹ÙØµØ± Ø¨Ø¹Ø¯Û Ø¨Ø§ Ú©ÙÛØ¯ Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û Ø±Ø§Ø³Øª. برگشت ب٠کÙÛØ¯ ÙØ¨ÙÛ Ø¨Ø§ Shift+Tab ÛØ§ Ú©ÙÛØ¯ Ø¬ÙØªÙÙ
Ø§Û ÚÙ¾. ÙØ´Ø±Ø¯Ù Space ÛØ§ Enter Ø¨Ø±Ø§Û Ø§ÙØªØ®Ø§Ø¨ ÛÚ© Ø¹ÙØµØ± در ÙÛØ±Ø§Ûشگر."}]},
+{name:"ÙØ±Ù
اÙÙØ§",items:[{name:"بازگشت ÙØ±Ù
اÙ",legend:"ÙØ´Ø±Ø¯Ù ${undo}"},{name:"Ø§ÙØ¬Ø§Ù
Ù
جدد ÙØ±Ù
اÙ",legend:"ÙØ´Ø±Ø¯Ù ${redo}"},{name:"ÙØ±Ù
ا٠Ù
ت٠درشت",legend:"ÙØ´Ø±Ø¯Ù ${bold}"},{name:"ÙØ±Ù
ا٠Ù
ت٠کج",legend:"ÙØ´Ø±Ø¯Ù ${italic}"},{name:"ÙØ±Ù
ا٠Ù
ØªÙ Ø²ÛØ±Ø®Ø·Ø¯Ø§Ø±",legend:"ÙØ´Ø±Ø¯Ù ${underline}"},{name:"ÙØ±Ù
ا٠پÛÙÙØ¯",legend:"ÙØ´Ø±Ø¯Ù ${link}"},{name:"بست٠ÙÙØ§Ø± ابزار ÙØ±Ù
اÙ",legend:"ÙØ´Ø±Ø¯Ù ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"راÙÙÙ
Ø§Û Ø¯Ø³ØªØ±Ø³Û",legend:"ÙØ´Ø±Ø¯Ù ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/fi.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/fi.js
new file mode 100644
index 0000000..e0b7558
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/fi.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","fi",{title:"Saavutettavuus ohjeet",contents:"Ohjeen sisällöt. Sulkeaksesi tämän dialogin paina ESC.",legend:[{name:"Yleinen",items:[{name:"Editorin työkalupalkki",legend:"Paina ${toolbarFocus} siirtyäksesi työkalupalkkiin. Siirry seuraavaan ja edelliseen työkalupalkin ryhmään TAB ja SHIFT-TAB näppäimillä. Siirry seuraavaan ja edelliseen työkalupainikkeeseen käyttämällä NUOLI OIKEALLE tai NUOLI VASEMMALLE näppäimillä. Paina VÃLILYÃNTI tai ENTER näppäintä aktivoidaksesi työkalupainikkeen."},
+{name:"Editorin dialogi",legend:"Dialogin sisällä, painamalla TAB siirryt seuraavaan dialogin kenttään, painamalla SHIFT+TAB siirryt aiempaan kenttään, painamalla ENTER lähetät dialogin, painamalla ESC peruutat dialogin. Dialogeille joissa on useita välilehtiä, paina ALT+F10 siirtyäksesi välillehtilistaan. Siirtyäksesi seuraavaan välilehteen paina TAB tai NUOLI OIKEALLE. Siirry edelliseen välilehteen painamalla SHIFT+TAB tai nuoli vasemmalle. Paina VÃLILYÃNTI tai ENTER valitaksesi välilehden."},{name:"Editorin oheisvalikko",
+legend:"Paina ${contextMenu} tai SOVELLUSPAINIKETTA avataksesi oheisvalikon. Liiku seuraavaan valikon vaihtoehtoon TAB tai NUOLI ALAS näppäimillä. Siirry edelliseen vaihtoehtoon SHIFT+TAB tai NUOLI YLÃS näppäimillä. Paina VÃLILYÃNTI tai ENTER valitaksesi valikon kohdan. Avataksesi nykyisen kohdan alivalikon paina VÃLILYÃNTI tai ENTER tai NUOLI OIKEALLE painiketta. Siirtyäksesi takaisin valikon ylemmälle tasolle paina ESC tai NUOLI vasemmalle. Oheisvalikko suljetaan ESC painikkeella."},{name:"Editorin listalaatikko",
+legend:"Listalaatikon sisällä siirry seuraavaan listan kohtaan TAB tai NUOLI ALAS painikkeilla. Siirry edelliseen listan kohtaan SHIFT+TAB tai NUOLI YLÃS painikkeilla. Paina VÃLILYÃNTI tai ENTER valitaksesi listan vaihtoehdon. Paina ESC sulkeaksesi listalaatikon."},{name:"Editorin elementtipolun palkki",legend:"Paina ${elementsPathFocus} siirtyäksesi elementtipolun palkkiin. Siirry seuraavaan elementtipainikkeeseen TAB tai NUOLI OIKEALLE painikkeilla. Siirry aiempaan painikkeeseen SHIFT+TAB tai NUOLI VASEMMALLE painikkeilla. Paina VÃLILYÃNTI tai ENTER valitaksesi elementin editorissa."}]},
+{name:"Komennot",items:[{name:"Peruuta komento",legend:"Paina ${undo}"},{name:"Tee uudelleen komento",legend:"Paina ${redo}"},{name:"Lihavoi komento",legend:"Paina ${bold}"},{name:"Kursivoi komento",legend:"Paina ${italic}"},{name:"Alleviivaa komento",legend:"Paina ${underline}"},{name:"Linkki komento",legend:"Paina ${link}"},{name:"Pienennä työkalupalkki komento",legend:"Paina ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Saavutettavuus ohjeet",legend:"Paina ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/fr.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/fr.js
new file mode 100644
index 0000000..1d2a58a
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/fr.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","fr",{title:"Instructions pour l'accessibilité",contents:"Contenu de l'aide. Pour fermer ce dialogue, appuyez sur la touche ESC (Echappement).",legend:[{name:"Général",items:[{name:"Barre d'outils de l'éditeur",legend:"Appuyer sur ${toolbarFocus} pour accéder à la barre d'outils. Se déplacer vers les groupes suivant ou précédent de la barre d'outil avec les touches TAB et SHIFT-TAB. Se déplacer vers les boutons suivant ou précédent de la barre d'outils avec les touches FLECHE DROITE et FLECHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRER pour activer le bouton de barre d'outils."},
+{name:"Dialogue de léditeur",legend:"A l'intérieur d'un dialogue, appuyer sur la touche TAB pour naviguer jusqu'au champ de dalogue suivant, appuyez sur les touches SHIFT + TAB pour revenir au champ précédent, appuyez sur la touche ENTRER pour soumettre le dialogue, appuyer sur la touche ESC pour annuler le dialogue. Pour les dialogues avec plusieurs pages d'onglets, appuyer sur ALT + F10 pour naviguer jusqu'à la liste des onglets. Puis se déplacer vers l'onglet suivant avec la touche TAB ou FLECHE DROITE. Se déplacer vers l'onglet précédent avec les touches SHIFT + TAB ou FLECHE GAUCHE. Appuyer sur la barre d'espace ou la touche ENTRER pour sélectionner la page de l'onglet."},
+{name:"Menu contextuel de l'éditeur",legend:"Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l'option suivante du menu avec les touches TAB ou FLECHE BAS. Se déplacer vers l'option précédente avec les touches SHIFT+TAB ou FLECHE HAUT. appuyer sur la BARRE D'ESPACE ou la touche ENTREE pour sélectionner l'option du menu. Oovrir le sous-menu de l'option courante avec la BARRE D'ESPACE ou les touches ENTREE ou FLECHE DROITE. Revenir à l'élément de menu parent avec les touches ESC ou FLECHE GAUCHE. Fermer le menu contextuel avec ESC."},
+{name:"Zone de liste en menu déroulant de l'éditeur",legend:"A l'intérieur d'une liste en menu déroulant, se déplacer vers l'élément suivant de la liste avec les touches TAB ou FLECHE BAS. Se déplacer vers l'élément précédent de la liste avec les touches SHIFT + TAB ou FLECHE HAUT. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'option dans la liste. Appuyer sur ESC pour fermer le menu déroulant."},{name:"Barre d'emplacement des éléments de léditeur",legend:"Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d'emplacement des éléments de léditeur. Se déplacer vers le bouton d'élément suivant avec les touches TAB ou FLECHE DROITE. Se déplacer vers le bouton d'élément précédent avec les touches SHIFT+TAB ou FLECHE GAUCHE. Appuyer sur la BARRE D'ESPACE ou sur ENTREE pour sélectionner l'élément dans l'éditeur."}]},
+{name:"Commandes",items:[{name:" Commande défaire",legend:"Appuyer sur ${undo}"},{name:" Commande refaire",legend:"Appuyer sur ${redo}"},{name:" Commande gras",legend:"Appuyer sur ${bold}"},{name:" Commande italique",legend:"Appuyer sur ${italic}"},{name:" Commande souligné",legend:"Appuyer sur ${underline}"},{name:" Commande lien",legend:"Appuyer sur ${link}"},{name:" Commande enrouler la barre d'outils",legend:"Appuyer sur ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Aide Accessibilité",legend:"Appuyer sur ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/gu.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/gu.js
new file mode 100644
index 0000000..23ea2c4
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/gu.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","gu",{title:"àªàªà«àªà«àª·à«àª¬àª¿àª²àª¿àªà« નૠવિàªàª¤à«",contents:"હà«àª²à«àªª. ઠબàªàª§ àªàª°àªµàª¾ ESC દબાવà«.",legend:[{name:"àªàª¨àª°àª²",items:[{name:"àªàª¡àª¿àªàª° àªà«àª²àª¬àª¾àª°",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"àªàª¡àª¿àªàª° ડાયલà«àª",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"àªàª®àª¾àªàª¡àª¸",items:[{name:"àª
નà«àª¡à«àª àªàª®àª¾àªàª¡",legend:"$ દબાવૠ{undo}"},{name:"ફરૠàªàª°à« àªàª®àª¾àªàª¡",legend:"$ દબાવૠ{redo}"},{name:"બà«àª²à«àª¦àª¨à« àªàª®àª¾àªàª¡",legend:"$ દબાવૠ{bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/he.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/he.js
new file mode 100644
index 0000000..34bceac
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/he.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","he",{title:"××ר××ת × ××ש×ת",contents:"××ר××ת × ××ש×ת. ×ס×××¨× ×××¥ ×סק××פ (ESC).",legend:[{name:"××××",items:[{name:"סר×× ×××××",legend:"×××¥ ×¢× ${toolbarFocus} ××× ×× ××× ×סר×× ×××××. ×¢××ר ××פת×ר ××× ×¢× ×קש ×××× (TAB) ×× ××¥ ש××××. ×¢××ר ××פת×ר ××§××× ×¢× ×קש ×ש××¤× (SHIFT) + ××× (TAB) ×× ××¥ ××× ×. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××פע×× ×ת ××פת×ר ×× ××ר."},{name:"×××××××× (×××× ×ת תש×××)",legend:"×ת×× ××××××, ×××¥ ××× (TAB) ××× ×× ××× ×ש×× ×××, ×××¥ ש××¤× (SHIFT) + ××× (TAB) ××× ×× ××× ×ש×× ××§×××, ×××¥ ×× ×ר (ENTER) ××× ×ש××× ×ת ×××××××, ×××¥ ×סק××פ (ESC) ××× ××××. ×ת×× ×××××××× ××¢×× ×ספר ××××× (×ש×× ××ת), ×××¥ ××× (ALT) + F10 ××× ××
××× ×ש×רת ××××××. × ××× ×××× ××× ×¢× ××× (TAB) ×× ××¥ ש××××. ×¢××ר ×××× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××× ×¡ ××××."},
+{name:"תפר×× ××קשר (Context Menu)",legend:"×××¥ ${contextMenu} ×× APPLICATION KEY××× ×פת×× ×ת תפר×× ××קשר. ×¢××ר ××פשר×ת ×××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ××פשר×ת ××§×××ת ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ×××¢××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××פשר×ת. ×¤×ª× ×ת תת ×תפר×× (Sub-menu) ×©× ××פשר×ת ×× ××××ת ×¢× ×¨××× ×× ×× ×ר (ENTER) ×× ××¥ ש××××. ×××ר ×תפר×× ××× ×¢× ×סק××פ (ESC) ×× ××¥ ש××××. ס××ר ×ת תפר×× ××קשר ×¢× ×סק××פ (ESC)."},{name:"תפר×××× ×¦×¤×× (List boxes)",legend:"×ת×× ×ª×¤×¨×× ×¦×£, ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ×תפר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) or ××¥ ×¢××××. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"×¢×¥ ×××× ××× (Elements Path)",legend:"×××¥ ${elementsPathFocus} ××× ×× ××× ××¢×¥ ××××× ×××. ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××× ×. ×¢××ר ×פר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××××× × ××¢×ר×."}]},{name:"פק×××ת",items:[{name:" ××××× ×¦×¢× ××ר××",legend:"×××¥ ${undo}"},{name:" ×××¨× ×¢× ×¦×¢× ××ר××",legend:"×××¥ ${redo}"},{name:" ×××ש×",legend:"×××¥ ${bold}"},{name:" ×××××",legend:"×××¥ ${italic}"},{name:" ××ספת ×§× ×ª×ת××",legend:"×××¥ ${underline}"},{name:" ××ספת ××× ×§",
+legend:"×××¥ ${link}"},{name:" ×××××¥ סר×× ×××××",legend:"×××¥ ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" ××ר××ת × ××ש×ת",legend:"×××¥ ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/hi.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/hi.js
new file mode 100644
index 0000000..4a8f179
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/hi.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","hi",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"सामानà¥à¤¯",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/hr.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/hr.js
new file mode 100644
index 0000000..b8ff14a
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/hr.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","hr",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"OpÄenito",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/hu.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/hu.js
new file mode 100644
index 0000000..f3bd161
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/hu.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","hu",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ãltalános",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/it.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/it.js
new file mode 100644
index 0000000..e734f7d
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/it.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","it",{title:"Istruzioni di Accessibilità ",contents:"Contenuti di Aiuto. Per chiudere questa finestra premi ESC.",legend:[{name:"Generale",items:[{name:"Barra degli strumenti Editor",legend:"Premi ${toolbarFocus} per navigare fino alla barra degli strumenti. Muoviti tra i gruppi della barra degli strumenti con i tasti Tab e Maiusc-Tab. Spostati tra il successivo ed il precedente pulsante della barra degli strumenti usando le frecce direzionali Destra e Sinistra. Premi Spazio o Invio per attivare il pulsante della barra degli strumenti."},
+{name:"Finestra Editor",legend:"All'interno di una finestra di dialogo, premi Tab per navigare fino al campo successivo della finestra di dialogo, premi Maiusc-Tab per tornare al campo precedente, premi Invio per inviare la finestra di dialogo, premi Esc per uscire. Per le finestre che hanno schede multiple, premi Alt+F10 per navigare nella lista delle schede. Quindi spostati alla scheda successiva con il tasto Tab oppure con la Freccia Destra. Torna alla scheda precedente con Maiusc+Tab oppure con la Freccia Sinistra. Premi Spazio o Invio per scegliere la scheda."},
+{name:"Menù contestuale Editor",legend:"Premi ${contextMenu} o TASTO APPLICAZIONE per aprire il menu contestuale. Dunque muoviti all'opzione successiva del menu con il tasto TAB o con la Freccia Sotto. Muoviti all'opzione precedente con MAIUSC+TAB o con Freccia Sopra. Premi SPAZIO o INVIO per scegliere l'opzione di menu. Apri il sottomenu dell'opzione corrente con SPAZIO o INVIO oppure con la Freccia Destra. Torna indietro al menu superiore con ESC oppure Freccia Sinistra. Chiudi il menu contestuale con ESC."},
+{name:"Box Lista Editor",legend:"Dentro un box-lista, muoviti al prossimo elemento della lista con TAB o con la Freccia direzionale giù. Spostati all'elemento precedente con MAIUSC+TAB oppure con Freccia direzionale sopra. Premi SPAZIO o INVIO per scegliere l'opzione della lista. Premi ESC per chiudere il box-lista."},{name:"Barra percorso elementi editor",legend:"Premi ${elementsPathFocus} per navigare tra gli elementi della barra percorso. Muoviti al prossimo pulsante di elemento con TAB o la Freccia direzionale destra. Muoviti al pulsante precedente con MAIUSC+TAB o la Freccia Direzionale Sinistra. Premi SPAZIO o INVIO per scegliere l'elemento nell'editor."}]},
+{name:"Comandi",items:[{name:" Annulla comando",legend:"Premi ${undo}"},{name:" Ripeti comando",legend:"Premi ${redo}"},{name:" Comando Grassetto",legend:"Premi ${bold}"},{name:" Comando Corsivo",legend:"Premi ${italic}"},{name:" Comando Sottolineato",legend:"Premi ${underline}"},{name:" Comando Link",legend:"Premi ${link}"},{name:" Comando riduci barra degli strumenti",legend:"Premi ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Aiuto Accessibilità ",legend:"Premi ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ja.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ja.js
new file mode 100644
index 0000000..28cd800
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ja.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ja",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"å
¨è¬",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ku.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ku.js
new file mode 100644
index 0000000..c85c682
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ku.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ku",{title:"ÚÛÙÙ
Ø§Û ÙÛØ¨ÛØ±Ø¯ÛØ³ØªØ¯Ø§Ø¨ÙÙÙ",contents:"Ù¾ÛÚ©ÙØ§ØªÛÛ ÛØ§Ø±Ù
ÛØªÛ. Ú©ÙÛÙ ESC Ø¨Û Ø¯Ø§Ø®Ø³ØªÙÛ Ø¦ÛÙ
Ø¯ÛØ§ÙÛÚ¯Ù.",legend:[{name:"گشتÛ",items:[{name:"تÙÙڵاÙ
Ø±Ø§Ø²Û Ø¯ÙâØ³ØªÙØ§Ø±ÛÙÙâØ±",legend:"Ú©ÙÛÙ ${toolbarFocus} Ø¨Û ÚØ§Ø¨ÛØ±Û ØªÙÙڵاÙ
راز. Ø¨Û Ú¯ÙØ§Ø³ØªÙÛÙÛÛ Ù¾ÛØ´ÙÙ Ø¯Ø§ÙØ§ØªÙÙÛ Ú¯Ø±ÙÙÙ¾Û ØªÙÙڵاÙ
Ø±Ø§Ø²Û Ø¯Ø§Ú¯Ø±ØªÙÛ Ú©ÙÛÙÛ TAB ÙÙâÚ¯ÙâÚµâ SHIFT-TAB. Ø¨Û Ú¯ÙØ§Ø³ØªÙÛÙÛÛ Ù¾ÛØ´ÙÙ Ø¯Ø§ÙØ§ØªÙÙÛ Ø¯ÙÙÚ¯Ù
ÛÛ ØªÙÙڵاÙ
Ø±Ø§Ø²Û ÙÛÚÛÛ Ú©ÙÛÙÛ ØªÛØ±Û Ø¯ÛØ³ØªÛ ÚØ§Ø³Øª ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û Ø¯ÛØ³ØªÛ ÚÛÙ¾. Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û ÚØ§ÙاککردÙÛ Ø¯ÙÙÚ¯Ù
ÛÛ ØªÙÙڵاÙ
راز."},{name:"Ø¯ÛØ§ÙÛÚ¯Û Ø¯ÙâØ³ØªÙØ§Ø±ÛÙÙâØ±",
+legend:"ÙÛÙÛÙ
اÙکاتدا Ú©ÛØªÛ ÙÛØ¯ÛاÙÛÚ¯Û, Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB Ø¨Û ÚØ§Ø¨ÛØ±Û Ø®Ø§ÙÛÛ Ø¯ÛØ§ÙÛÚ¯ÛÚ©Û ØªØ±, داگرتÙÛ Ú©ÙÛÙÛ SHIFT + TAB Ø¨Û Ú¯ÙØ§Ø³ØªÙÛÙÛÛ Ø¨Û Ø®Ø§ÙÛÛ Ù¾ÛØ´ÙÙØªØ±, Ú©ÙÛÙÛ Ú©ÙÛÙÛ ENTER Ø¨Û ÚØ§Ø²ÛکردÙÛ Ø¯ÛØ§ÙÛÚ¯ÛÚ©Û, Ú©ÙÛÙÛ Ú©ÙÛÙÛ ESC Ø¨Û ÙÛÚµÙÛØ´Ø§ÙدÙÛÙÛÛ Ø¯ÛØ§ÙÛÚ¯ÛÚ©Û. Ø¨Û Ø¯ÛØ§ÙÛÚ¯Û ÙÛØ¨Ø§Ø²Ø¯ÛØ±Û (تابÛ) Ø²ÛØ§ØªØ±, Ú©ÙÛÙÛ Ú©ÙÛÙÛ ALT + F10 Ø¨Û ÚØ§Ø¨ÙâØ±Û ÙÛØ³ØªÛ بازدÙâØ±ÙâکاÙ. Ø¨Û ÚÙÙÙÙâ Ø¨Ø§Ø²Ø¯ÙâØ±Û ØªØ§Ø¨Û Ø¯Ø§ÙØ§ØªÙÙ Ú©ÙÛÙÛ Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª. بÛÚÙÙÙÙâ Ø¨Ø§Ø²Ø¯ÙâØ±Û ØªØ§Ø¨Û Ù¾ÛØ´Ù٠داگرتÙÛ Ú©ÙÛÙÛ SHIFT + TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚÙâÙ¾. Ú©ÙÛÛ Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙÛ Ø¨Ø§Ø²Ø¯ÙâØ± (تاب)."},
+{name:"Ù¾ÛÚØ³ØªÛ سÙâØ±ÙÙÙØ³ÙâØ±",legend:"Ú©ÙÛÙ ${contextMenu} ÛØ§Ù دÙÚ¯Ù
ÙâÛ ÙÛØ³ØªÙâ(Menu) Ø¨Û Ú©Ø±Ø¯ÙÙâÙÙâÛ ÙÛØ³ØªÙâÛ Ø¯ÙâÙ. Ø¨Û ÚÙÙÙÙâ ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛÙâÚ©Û ØªØ± ÙÙâ ÙÛØ³ØªÙâ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâØ®ÙØ§Ø±ÙâÙÙâ Ø¨Û ÚÙÙÙ Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ Ù¾ÛØ´ÙÙ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SHIFT+TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâ Ø³ÙâØ±ÙâÙÙ. داگرتÙÛ Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙÛ ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³ØªÙâ. Ø¨Û Ú©Ø±Ø¯ÙÙâÙÙâÛ ÙÙÛ ÚÛØ± ÙÛØ³ØªÙâ ÙÙâÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³ØªÙâ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª. Ø¨Û Ú¯ÙâÚØ§ÙÙâÙÙ Ø¨Û Ø³ÙâØ±ÙâÙÙâÛ ÙÛØ³ØªÙâ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ ESC ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚÙâÙ¾. Ø¨Û Ø¯Ø§Ø®Ø³ØªÙÛ ÙÛØ³ØªÙâ
Ú©ÙÛÙÛ Ú©ÙÛÙÛ ESC بکÙ."},
+{name:"ÙÛØ³ØªÛ سÙÙÙÙÛ Ø³ÙâØ±ÙÙÙØ³ÙâØ±",legend:"ÙÙâÙØ§Ù سÙÙÙÛ ÙÛØ³Øª, ÚÛÙ Ø¨Û ÙÙâÚµÙØ¨ÚاردÙâÛ ÙÛØ³ØªÛÚ©Û ØªØ± Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâØ®ÙØ§Ø±. ÚÙÙÙ Ø¨Û ÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³ØªÛ Ù¾ÛØ´ÙÙ Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SHIFT + TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û ÚÙÙ ÙÙâØ³ÙâØ±ÙâÙÙâ. Ú©ÙÛÚ©Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û Ø¯ÛØ§Ø±ÛکردÙÛ âÙÙâÚµØ¨ÚØ§Ø±Ø¯ÙâÛ ÙÛØ³Øª. Ú©ÙÛÚ©Û Ú©ÙÛÙÛ ESC Ø¨Û Ø¯Ø§Ø®Ø³ØªÙÛ Ø³ÙÙÙÛ ÙÛØ³Øª."},{name:"تÙÙڵاÙ
Ø±Ø§Ø²Û ØªÙØ®Ù
",legend:"Ú©ÙÛÙ ${elementsPathFocus} Ø¨Û ÚØ§Ø¨ÙâØ±Û ØªÙÙڵاÙ
Ø±Ø§Ø²Û ØªÙØ®Ù
ÙâکاÙ. ÚÙÙÙ Ø¨Û Ø¯ÙÚ¯Ù
ÙâÛ ØªÙØ®Ù
ÛÚ©Û ØªØ± Ú©ÙÛÚ©Û Ú©ÙÛÙÛ TAB ÛØ§Ù Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª. ÚÙÙÙ Ø¨Û Ø¯ÙÚ¯Ù
ÙâÛ ØªÙØ®Ù
Û Ù¾ÛØ´ÙÙ Ú©ÙÛÙÛ SHIFT+TAB ÛØ§Ù Ú©ÙÛÚ©Û Ú©ÙÛÙÛ ØªÛØ±Û دÙâØ³ØªÛ ÚÙâÙ¾. داگرتÙ
Û Ú©ÙÛÙÛ SPACE ÛØ§Ù ENTER Ø¨Û Ø¯ÛØ§Ø±ÛکردÙÛ ØªÙØ®Ù
ÙâÚ©Ùâ ÙÙâØ³ÙâØ±ÙÙÙØ³Ù."}]},
+{name:"ÙÙâØ±Ù
اÙÙâکاÙ",items:[{name:"ÙÙâØ±Ù
اÙÛ Ù¾ÙÙÚکردÙÙâÙÙ",legend:"Ú©ÙÛÙ ${undo}"},{name:"ÙÙâØ±Ù
اÙÛ ÙÙâÚµÚ¯ÙâÚØ§ÙÙâÙÙ",legend:"Ú©ÙÛÙ ${redo}"},{name:"ÙÙâØ±Ù
اÙÛ Ø¯ÙâÙÛ ÙÙâÚµÙâÙ",legend:"Ú©ÙÛÙ ${bold}"},{name:"ÙÙâØ±Ù
اÙÛ Ø¯ÙâÙÛ ÙØ§Ø±",legend:"Ú©ÙÛÙ ${italic}"},{name:"ÙÙâØ±Ù
اÙÛ ÚÛØ±ÙÛÚµ",legend:"Ú©ÙÛÙ ${underline}"},{name:"ÙÙâØ±Ù
اÙÛ Ø¨ÙâØ³ØªÙâØ±",legend:"Ú©ÙÛÙ ${link}"},{name:"شاردÙâÙÙâÙÙâÛ ØªÙÙڵاÙ
راز",legend:"Ú©ÙÛÙ ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"دÙâØ³ØªÙ¾ÛÚ¯ÙâÛØ´ØªÙÛ ÛØ§Ø±Ù
ÙâØªÛ",legend:"Ú©ÙÛÙ ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/lt.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/lt.js
new file mode 100644
index 0000000..1cbb428
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/lt.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","lt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Bendros savybÄs",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/lv.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/lv.js
new file mode 100644
index 0000000..d93a754
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/lv.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","lv",{title:"PieejamÄ«bas instrukcija",contents:"PalÄ«dzÄ«bas saturs. Lai aizvÄrtu ciet Å¡o dialogu nospiediet ESC.",legend:[{name:"Galvenais",items:[{name:"Redaktora rÄ«kjosla",legend:"Nospiediet ${toolbarFocus} lai pÄrvietotos uz rÄ«kjoslu. Lai pÄrvietotos uz nÄkoÅ¡o vai iepriekÅ¡Äjo rÄ«kjoslas grupu izmantojiet pogu TAB un SHIFT+TAB. Lai pÄrvietotos uz nÄkoÅ¡o vai iepriekÅ¡Äjo rÄ«kjoslas pogu izmantojiet Kreiso vai Labo bultiÅu. Nospiediet Atstarpi vai ENTER lai aktivizÄtu rÄ«kjosla pogu."},
+{name:"Redaktora dialoga logs",legend:"Dialoga logÄ nospiediet pogu TAB lai pÄrvietotos uz nÄkoÅ¡o dialoga loga lauku, nospiediet SHIFT+TAB lai atgrieztos iepriekÅ¡ÄjÄ laukÄ, nospiediet ENTER lai apstiprinÄtu dialoga datus, nospiediet ESC lai aizvÄrtu Å¡o dialogu. Dialogam kuram ir vairÄkas cilnes, nospiediet ALT+F10 lai pÄrvietotos uz nepiecieÅ¡amo cilni. Lai pÄrvietotos uz nÄkoÅ¡o cilni izmantojiet pogu TAB vai Labo bultiÅu. Lai pÄrvietotos uz iepriekÅ¡Äjo cilni nospiediet SHIFT+TAB vai kreiso bultiÅu. Nospiediet SPACE vai ENTER lai izvÄlÄtos lapas cilni."},
+{name:"Redaktora satura izvÄle",legend:"Nospiediet ${contextMenu} vai APPLICATION KEY lai atvÄrtu satura izvÄlni. Lai pÄrvietotos uz nÄkoÅ¡o izvÄlnes opciju izmantojiet pogu TAB vai pogu BultiÅu uz leju. Lai pÄrvietotos uz iepriekÅ¡Äjo opciju izmantojiet SHIFT+TAB vai pogu BultiÅa uz augÅ¡u. Nospiediet SPACE vai ENTER lai izvelÄtos izvÄlnes opciju. Atveriet tekoÅ¡ajÄ opcija apakÅ¡izvÄlni ar SAPCE vai ENTER ka ari to var izdarÄ«t ar Labo bultiÅu. Lai atgrieztos atpakaļ uz sakuma izvÄlni nospiediet ESC vai Kreiso bultiÅu. Lai aizvÄrtu ciet izvÄlnes saturu nospiediet ESC."},
+{name:"Redaktora saraksta lauks",legend:"Saraksta laukÄ, lai pÄrvietotos uz nÄkoÅ¡o saraksta elementu nospiediet TAB vai pogu BultiÅa uz leju. Lai pÄrvietotos uz iepriekÅ¡Äjo saraksta elementu nospiediet SHIFT+TAB vai pogu BultiÅa uz augÅ¡u. Nospiediet SPACE vai ENTER lai izvÄlÄtos saraksta opcijas. Nospiediet ESC lai aizvÄrtu saraksta lauku. "},{name:"Redaktora elementa ceļa josla",legend:"Nospiediet ${elementsPathFocus} lai pÄrvietotos uz elementa ceļa joslu. Lai pÄrvietotos uz nÄkoÅ¡o elementa pogu izmantojiet TAB vai Labo bultiÅu. Lai pÄrvietotos uz iepriekÅ¡Äjo elementa pogu izmantojiet SHIFT + TAB vai Kreiso bultiÅu. Nospiediet SPACE vai ENTER lai izvÄlÄtos elementu redaktorÄ."}]},
+{name:"Komandas",items:[{name:"Komanda atcelt darbÄ«bu",legend:"Nospiediet ${undo}"},{name:"Komanda atkÄrtot darbÄ«bu",legend:"Nospiediet ${redo}"},{name:"Treknraksta komanda",legend:"Nospiediet ${bold}"},{name:"KursÄ«va komanda",legend:"Nospiediet ${italic}"},{name:"ApakÅ¡svÄ«tras komanda ",legend:"Nospiediet ${underline}"},{name:"Hipersaites komanda",legend:"Nospiediet ${link}"},{name:"RÄ«kjoslas aizvÄrÅ¡anas komanda",legend:"Nospiediet ${toolbarCollapse}"},{name:" Access previous focus space command",
+legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Pieejamības palīdzība",legend:"Nospiediet ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/mk.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/mk.js
new file mode 100644
index 0000000..9353161
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/mk.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","mk",{title:"ÐнÑÑÑÑкÑии за пÑиÑÑапноÑÑ",contents:"СодÑжина на Ð´ÐµÐ»Ð¾Ñ Ð·Ð° помоÑ. Ðа да го заÑвоÑиÑе Ð¾Ð²Ð¾Ñ Ð´Ð¸ÑÐ°Ð»Ð¾Ñ Ð¿ÑиÑиÑнеÑе ESC.",legend:[{name:"ÐпÑÑо",items:[{name:"Ðени за едиÑоÑоÑ",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"ÐиÑÐ°Ð»Ð¾Ñ Ð·Ð° едиÑоÑоÑ",
+legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},
+{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},
+{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/mn.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/mn.js
new file mode 100644
index 0000000..f9588d6
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/mn.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","mn",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ÐÑөнÑ
ий",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/nb.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/nb.js
new file mode 100644
index 0000000..7bb3de5
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/nb.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","nb",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for Ã¥ lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for Ã¥ navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT-TAB. Flytt til neste og forrige verktøylinjeknapp med HÃYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ aktivere verktøylinjeknappen."},{name:"Dialog for editor",
+legend:"Mens du er i en dialog, trykk TAB for Ã¥ navigere til neste dialogfelt, press SHIFT + TAB for Ã¥ flytte til forrige felt, trykk ENTER for Ã¥ akseptere dialogen, trykk ESC for Ã¥ avbryte dialogen. For dialoger med flere faner, trykk ALT + F10 for Ã¥ navigere til listen over faner. GÃ¥ til neste fane med TAB eller HÃYRE PILTAST. GÃ¥ til forrige fane med SHIFT + TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge fanen."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for Ã¥ Ã¥pne kontekstmeny. GÃ¥ til neste alternativ i menyen med TAB eller PILTAST NED. GÃ¥ til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for Ã¥ velge menyalternativet. Ã
pne undermenyen pÃ¥ valgt alternativ med MELLOMROM eller ENTER eller HÃYRE PILTAST. GÃ¥ tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
+{name:"Listeboks for editor",legend:"I en listeboks, gÃ¥ til neste alternativ i listen med TAB eller PILTAST NED. GÃ¥ til forrige alternativ i listen med SHIFT + TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for Ã¥ velge alternativet i listen. Trykk ESC for Ã¥ lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for Ã¥ navigere til verktøylinjen som viser elementsti. GÃ¥ til neste elementknapp med TAB eller HÃYRE PILTAST. GÃ¥ til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge elementet i editoren."}]},
+{name:"Kommandoer",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Link",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/nl.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/nl.js
new file mode 100644
index 0000000..524cdfd
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/nl.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","nl",{title:"Toegankelijkheidsinstructies",contents:"Help inhoud. Druk op ESC om dit dialoog te sluiten.",legend:[{name:"Algemeen",items:[{name:"Werkbalk tekstverwerker",legend:"Druk op ${toolbarFocus} om naar de werkbalk te navigeren. Om te schakelen naar de volgende en vorige werkbalkgroep, gebruik TAB en SHIFT+TAB. Om te schakelen naar de volgende en vorige werkbalkknop, gebruik de PIJL RECHTS en PIJL LINKS. Druk op SPATIE of ENTER om een werkbalkknop te activeren."},
+{name:"Dialoog tekstverwerker",legend:"In een dialoogvenster, druk op TAB om te navigeren naar het volgende veld. Druk op SHIFT+TAB om naar het vorige veld te navigeren. Druk op ENTER om het dialoogvenster te verzenden. Druk op ESC om het dialoogvenster te sluiten. Voor dialoogvensters met meerdere tabbladen, druk op ALT+F10 om naar de tabset te navigeren. Schakel naar het volgende tabblad met TAB of PIJL RECHTS. Schakel naar het vorige tabblad met SHIFT+TAB of PIJL LINKS. Druk op SPATIE of ENTER om het tabblad te selecteren."},
+{name:"Contextmenu tekstverwerker",legend:"Druk op ${contextMenu} of APPLICATION KEY om het contextmenu te openen. Schakel naar de volgende menuoptie met TAB of PIJL OMLAAG. Schakel naar de vorige menuoptie met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om een menuoptie te selecteren. Op een submenu van de huidige optie met SPATIE, ENTER of PIJL RECHTS. Ga terug naar de bovenliggende menuoptie met ESC of PIJL LINKS. Sluit het contextmenu met ESC."},{name:"Keuzelijst tekstverwerker",legend:"In een keuzelijst, schakel naar het volgende item met TAB of PIJL OMLAAG. Schakel naar het vorige item met SHIFT+TAB of PIJL OMHOOG. Druk op SPATIE of ENTER om het item te selecteren. Druk op ESC om de keuzelijst te sluiten."},
+{name:"Elementenpad werkbalk tekstverwerker",legend:"Druk op ${elementsPathFocus} om naar het elementenpad te navigeren. Om te schakelen naar het volgende element, gebruik TAB of PIJL RECHTS. Om te schakelen naar het vorige element, gebruik SHIFT+TAB or PIJL LINKS. Druk op SPATIE of ENTER om een element te selecteren in de tekstverwerker."}]},{name:"Opdrachten",items:[{name:"Ongedaan maken opdracht",legend:"Druk op ${undo}"},{name:"Opnieuw uitvoeren opdracht",legend:"Druk op ${redo}"},{name:"Vetgedrukt opdracht",
+legend:"Druk up ${bold}"},{name:"Cursief opdracht",legend:"Druk op ${italic}"},{name:"Onderstrepen opdracht",legend:"Druk op ${underline}"},{name:"Link opdracht",legend:"Druk op ${link}"},{name:"Werkbalk inklappen opdracht",legend:"Druk op ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Toegankelijkheidshulp",legend:"Druk op ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/no.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/no.js
new file mode 100644
index 0000000..dfb8493
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/no.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","no",{title:"Instruksjoner for tilgjengelighet",contents:"Innhold for hjelp. Trykk ESC for Ã¥ lukke denne dialogen.",legend:[{name:"Generelt",items:[{name:"Verktøylinje for editor",legend:"Trykk ${toolbarFocus} for Ã¥ navigere til verktøylinjen. Flytt til neste og forrige verktøylinjegruppe med TAB og SHIFT-TAB. Flytt til neste og forrige verktøylinjeknapp med HÃYRE PILTAST og VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ aktivere verktøylinjeknappen."},{name:"Dialog for editor",
+legend:"Mens du er i en dialog, trykk TAB for Ã¥ navigere til neste dialogfelt, press SHIFT + TAB for Ã¥ flytte til forrige felt, trykk ENTER for Ã¥ akseptere dialogen, trykk ESC for Ã¥ avbryte dialogen. For dialoger med flere faner, trykk ALT + F10 for Ã¥ navigere til listen over faner. GÃ¥ til neste fane med TAB eller HÃYRE PILTAST. GÃ¥ til forrige fane med SHIFT + TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge fanen."},{name:"Kontekstmeny for editor",legend:"Trykk ${contextMenu} eller MENYKNAPP for Ã¥ Ã¥pne kontekstmeny. GÃ¥ til neste alternativ i menyen med TAB eller PILTAST NED. GÃ¥ til forrige alternativ med SHIFT+TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for Ã¥ velge menyalternativet. Ã
pne undermenyen pÃ¥ valgt alternativ med MELLOMROM eller ENTER eller HÃYRE PILTAST. GÃ¥ tilbake til overordnet menyelement med ESC eller VENSTRE PILTAST. Lukk kontekstmenyen med ESC."},
+{name:"Listeboks for editor",legend:"I en listeboks, gÃ¥ til neste alternativ i listen med TAB eller PILTAST NED. GÃ¥ til forrige alternativ i listen med SHIFT + TAB eller PILTAST OPP. Trykk MELLOMROM eller ENTER for Ã¥ velge alternativet i listen. Trykk ESC for Ã¥ lukke listeboksen."},{name:"Verktøylinje for elementsti",legend:"Trykk ${elementsPathFocus} for Ã¥ navigere til verktøylinjen som viser elementsti. GÃ¥ til neste elementknapp med TAB eller HÃYRE PILTAST. GÃ¥ til forrige elementknapp med SHIFT+TAB eller VENSTRE PILTAST. Trykk MELLOMROM eller ENTER for Ã¥ velge elementet i editoren."}]},
+{name:"Kommandoer",items:[{name:"Angre",legend:"Trykk ${undo}"},{name:"Gjør om",legend:"Trykk ${redo}"},{name:"Fet tekst",legend:"Trykk ${bold}"},{name:"Kursiv tekst",legend:"Trykk ${italic}"},{name:"Understreking",legend:"Trykk ${underline}"},{name:"Link",legend:"Trykk ${link}"},{name:"Skjul verktøylinje",legend:"Trykk ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Hjelp for tilgjengelighet",legend:"Trykk ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/pl.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/pl.js
new file mode 100644
index 0000000..7bbc9e4
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/pl.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","pl",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Ogólne",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/pt-br.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/pt-br.js
new file mode 100644
index 0000000..cc8d4f4
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/pt-br.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","pt-br",{title:"Instruções de Acessibilidade",contents:"Conteúdo da Ajuda. Para fechar este diálogo pressione ESC.",legend:[{name:"Geral",items:[{name:"Barra de Ferramentas do Editor",legend:"Pressione ${toolbarFocus} para navegar para a barra de ferramentas. Mova para o anterior ou próximo grupo de ferramentas com TAB e SHIFT-TAB. Mova para o anterior ou próximo botão com SETA PARA DIREITA or SETA PARA ESQUERDA. Pressione ESPAÃO ou ENTER para ativar o botão da barra de ferramentas."},
+{name:"Diálogo do Editor",legend:"Dentro de um diálogo, pressione TAB para navegar para o próximo campo, pressione SHIFT + TAB para mover para o campo anterior, pressione ENTER para enviar o diálogo, pressione ESC para cancelar o diálogo. Para diálogos que tem múltiplas abas, pressione ALT + F10 para navegar para a lista de abas, então mova para a próxima aba com SHIFT + TAB ou SETA PARA ESQUERDA. Pressione ESPAÃO ou ENTER para selecionar a aba."},{name:"Menu de Contexto do Editor",legend:"Pressione ${contextMenu} ou TECLA DE MENU para abrir o menu de contexto, então mova para a próxima opção com TAB ou SETA PARA BAIXO. Mova para a anterior com SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÃO ou ENTER para selecionar a opção do menu. Abra o submenu da opção atual com ESPAÃO ou ENTER ou SETA PARA DIREITA. Volte para o menu pai com ESC ou SETA PARA ESQUERDA. Feche o menu de contexto com ESC."},
+{name:"Caixa de Lista do Editor",legend:"Dentro de uma caixa de lista, mova para o próximo item com TAB ou SETA PARA BAIXO. Mova para o item anterior com SHIFT + TAB ou SETA PARA CIMA. Pressione ESPAÃO ou ENTER para selecionar uma opção na lista. Pressione ESC para fechar a caixa de lista."},{name:"Barra de Caminho do Elementos do Editor",legend:"Pressione ${elementsPathFocus} para a barra de caminho dos elementos. Mova para o próximo botão de elemento com TAB ou SETA PARA DIREITA. Mova para o botão anterior com SHIFT+TAB ou SETA PARA ESQUERDA. Pressione ESPAÃO ou ENTER para selecionar o elemento no editor."}]},
+{name:"Comandos",items:[{name:" Comando Desfazer",legend:"Pressione ${undo}"},{name:" Comando Refazer",legend:"Pressione ${redo}"},{name:" Comando Negrito",legend:"Pressione ${bold}"},{name:" Comando Itálico",legend:"Pressione ${italic}"},{name:" Comando Sublinhado",legend:"Pressione ${underline}"},{name:" Comando Link",legend:"Pressione ${link}"},{name:" Comando Fechar Barra de Ferramentas",legend:"Pressione ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Ajuda de Acessibilidade",legend:"Pressione ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/pt.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/pt.js
new file mode 100644
index 0000000..08e50f8
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/pt.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","pt",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Geral",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ro.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ro.js
new file mode 100644
index 0000000..e4794d2
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ro.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ro",{title:"InstrucÈiuni de accesibilitate",contents:"Cuprins. Pentru a închide acest dialog, apÄsaÈi tasta ESC.",legend:[{name:"General",items:[{name:"EditeazÄ bara.",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Dialog editor",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor meniu contextual",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ru.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ru.js
new file mode 100644
index 0000000..cf0fce5
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ru.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ru",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ÐÑновное",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/sk.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/sk.js
new file mode 100644
index 0000000..1093ed9
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/sk.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","sk",{title:"InÅ¡trukcie prÃstupnosti",contents:"Pomocný obsah. Pre zatvorenie tohto okna, stlaÄte ESC.",legend:[{name:"VÅ¡eobecne",items:[{name:"LiÅ¡ta nástrojov editora",legend:"StlaÄte ${toolbarFocus} pre navigáciu na liÅ¡tu nástrojov. Medzi ÄalÅ¡ou a predchádzajúcou liÅ¡tou nástrojov sa pohybujete s TAB a SHIFT-TAB. Medzi ÄalÅ¡Ãm a predchádzajúcim tlaÄidlom na liÅ¡te nástrojov sa pohybujete s pravou Å¡Ãpkou a ľavou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre aktiváciu tlaÄidla liÅ¡ty nástrojov."},
+{name:"Editorový dialóg",legend:"V dialogu, stlaÄte TAB pre navigáciu na ÄalÅ¡ie dialógové pole, stlaÄte STIFT + TAB pre presun na predchádzajúce pole, stlaÄte ENTER pre odoslanie dialógu, stlaÄte ESC pre zruÅ¡enie dialógu. Pre dialógy, ktoré majú viac záložiek, stlaÄte ALT + F10 pre navigácou do zoznamu záložiek. Potom sa posúvajte k ÄalÅ¡ej žáložke pomocou TAB alebo pravou Å¡Ãpkou. Pre presun k predchádzajúcej záložke, stlaÄte SHIFT + TAB alebo ľavú Å¡Ãpku. StlaÄte medzernÃk alebo ENTER pre vybranie záložky."},
+{name:"Editorové kontextové menu",legend:"StlaÄte ${contextMenu} alebo APPLICATION KEY pre otvorenie kontextového menu. Potom sa presúvajte na ÄalÅ¡ie možnosti menu s TAB alebo dolnou Å¡Ãpkou. Presunte sa k predchádzajúcej možnosti s SHIFT + TAB alebo hornou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre výber možnosti menu. Otvorte pod-menu danej možnosti s medzernÃkom, alebo ENTER, alebo pravou Å¡Ãpkou. Vráťte sa späť do položky rodiÄovského menu s ESC alebo ľavou Å¡Ãpkou. Zatvorte kontextové menu s ESC."},
+{name:"Editorov box zoznamu",legend:"V boxe zoznamu, presuÅte sa na ÄalÅ¡iu položku v zozname s TAB alebo dolnou Å¡Ãpkou. PresuÅte sa k predchádzajúcej položke v zozname so SHIFT + TAB alebo hornou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre výber možnosti zoznamu. StlaÄte ESC pre zatvorenie boxu zoznamu."},{name:"Editorove pásmo cesty prvku",legend:"StlaÄte ${elementsPathFocus} pre navigovanie na pásmo cesty elementu. PresuÅte sa na tlaÄidlo ÄalÅ¡ieho prvku s TAB alebo pravou Å¡Ãpkou. PresuÅte sa k predchádzajúcemu tlaÄidlu s SHIFT + TAB alebo ľavou Å¡Ãpkou. StlaÄte medzernÃk alebo ENTER pre výber prvku v editore."}]},
+{name:"PrÃkazy",items:[{name:"VrátiÅ¥ prÃkazy",legend:"StlaÄte ${undo}"},{name:"Nanovo vrátiÅ¥ prÃkaz",legend:"StlaÄte ${redo}"},{name:"PrÃkaz na stuÄnenie",legend:"StlaÄte ${bold}"},{name:"PrÃkaz na kurzÃvu",legend:"StlaÄte ${italic}"},{name:"PrÃkaz na podÄiarknutie",legend:"StlaÄte ${underline}"},{name:"PrÃkaz na odkaz",legend:"StlaÄte ${link}"},{name:"PrÃkaz na zbalenie liÅ¡ty nástrojov",legend:"StlaÄte ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:"Pomoc prÃstupnosti",legend:"StlaÄte ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/sl.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/sl.js
new file mode 100644
index 0000000..d6ad1c4
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/sl.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","sl",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"Splošno",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/sv.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/sv.js
new file mode 100644
index 0000000..cf50e4b
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/sv.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","sv",{title:"Hjälpmedelsinstruktioner",contents:"HjälpinnehÃ¥ll. För att stänga denna dialogruta trycker du pÃ¥ ESC.",legend:[{name:"Allmänt",items:[{name:"Editor verktygsfält",legend:"Tryck pÃ¥ $ {toolbarFocus} för att navigera till verktygsfältet. Flytta till nästa och föregÃ¥ende verktygsfältsgrupp med TAB och SHIFT-TAB. Flytta till nästa och föregÃ¥ende knapp i verktygsfältet med HÃGERPIL eller VÃNSTERPIL. Tryck Space eller ENTER för att aktivera knappen i verktygsfältet."},
+{name:"Dialogeditor",legend:"Inuti en dialogruta, tryck TAB för att navigera till nästa fält i dialogrutan. Du trycker SKIFT + TAB för att flytta till föregÃ¥ende fält. Tryck ENTER för att skicka. Du avbryter och stänger dialogen med ESC. För dialogrutor som har flera flikar, tryck ALT + F10 navigera till fliklistan. Flytta sedan till nästa flik med HÃGERPIL. Flytta till föregÃ¥ende flik med SHIFT + TAB eller VÃNSTERPIL. Tryck Space eller ENTER för att välja fliken."},{name:"Editor för innehÃ¥llsmeny",
+legend:"Tryck pÃ¥ $ {contextMenu} eller PROGRAMTANGENTEN för att öppna snabbmenyn. Flytta sedan till nästa menyalternativ med TAB eller NEDPIL. Flytta till föregÃ¥ende alternativ med SHIFT + TABB eller UPPIL. Tryck Space eller ENTER för att välja menyalternativ. Ãppna undermeny av nuvarande alternativ med SPACE eller ENTER eller HÃGERPIL. GÃ¥ tillbaka till överordnade menyalternativ med ESC eller VÃNSTERPIL. Stäng snabbmenyn med ESC."},{name:"Editor för List Box",legend:"Inuti en list-box, gÃ¥ till nästa listobjekt med TAB eller NEDPIL. Flytta till föregÃ¥ende listobjekt med SHIFT + TAB eller UPPIL. Tryck Space eller ENTER för att välja listan alternativet. Tryck ESC för att stänga listan-boxen."},
+{name:"Editor för elementens sökväg",legend:"Tryck pÃ¥ $ {elementsPathFocus} för att navigera till verktygsfältet för elementens sökvägar. Flytta till nästa elementknapp med TAB eller HÃGERPIL. Flytta till föregÃ¥ende knapp med SKIFT + TAB eller VÃNSTERPIL. Tryck Space eller ENTER för att välja element i redigeraren."}]},{name:"Kommandon",items:[{name:"Kommandot Ã¥ngra",legend:"Tryck pÃ¥ ${undo}"},{name:"Kommandot gör om",legend:"Tryck pÃ¥ ${redo}"},{name:"Kommandot fet stil",legend:"Tryck pÃ¥ ${bold}"},
+{name:"Kommandot kursiv",legend:"Tryck på ${italic}"},{name:"Kommandot understruken",legend:"Tryck på ${underline}"},{name:"kommandot länk",legend:"Tryck på ${link}"},{name:"Verktygsfält Dölj kommandot",legend:"Tryck på ${toolbarCollapse}"},{name:"Hjälp om hjälpmedel",legend:"Tryck på $ {a11yHelp}"},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/tr.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/tr.js
new file mode 100644
index 0000000..bef899b
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/tr.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","tr",{title:"EriÅilebilirlik Talimatları",contents:"Yardım içeriÄi. Bu pencereyi kapatmak için ESC tuÅuna basın.",legend:[{name:"Genel",items:[{name:"Araç ÃubuÄu Editörü",legend:"Araç çubuÄunda gezinmek için ${toolbarFocus} basın. TAB ve SHIFT-TAB ile önceki ve sonraki araç çubuÄu grubuna taÅıyın. SAÄ OK veya SOL OK ile önceki ve sonraki bir araç çubuÄu düÄmesini hareket ettirin. SPACE tuÅuna basın veya araç çubuÄu düÄmesini etkinleÅtirmek için ENTER tuÅna basın."},
+{name:"Dialog Editörü",legend:"Dialog penceresi içinde, sonraki iletiÅim alanına gitmek için SEKME tuÅuna basın, önceki alana geçmek için SHIFT + TAB tuÅuna basın, pencereyi göndermek için ENTER tuÅuna basın, dialog penceresini iptal etmek için ESC tuÅuna basın. Birden çok sekme sayfaları olan diyalogların, sekme listesine gitmek için ALT + F10 tuÅlarına basın. Sonra TAB veya SAÄ OK sonraki sekmeye taÅıyın. SHIFT + TAB veya SOL OK ile önceki sekmeye geçin. Sekme sayfayı seçmek için SPACE veya ENTER tuÅuna basın."},
+{name:"İçerik Menü Editörü",legend:"İçerik menüsünü açmak için ${contextMenu} veya UYGULAMA TUÅU'na basın. Daha sonra SEKME veya AÅAÄI OK ile bir sonraki menü seçeneÄi taÅıyın. SHIFT + TAB veya YUKARI OK ile önceki seçeneÄe gider. Menü seçeneÄini seçmek için SPACE veya ENTER tuÅuna basın. Seçili seçeneÄin alt menüsünü SPACE ya da ENTER veya SAÄ OK açın. Ãst menü öÄesini geçmek için ESC veya SOL OK ile geri dönün. ESC ile baÄlam menüsünü kapatın."},{name:"Liste Kutusu Editörü",legend:"Liste kutusu içinde, bir sonraki liste öÄesine SEKME VEYA AÅAÄI OK ile taÅıyın. SHIFT + TAB veya YUKARI önceki liste öÄesi taÅıyın. Liste seçeneÄi seçmek için SPACE veya ENTER tuÅuna basın. Liste kutusunu kapatmak için ESC tuÅuna basın."},
+{name:"Element Yol ÃubuÄu Editörü",legend:"Elementlerin yol çubuÄunda gezinmek için ${ElementsPathFocus} basın. SEKME veya SAÄ OK ile sonraki element düÄmesine taÅıyın. SHIFT + TAB veya SOL OK önceki düÄmeye hareket ettirin. Editör içindeki elementi seçmek için ENTER veya SPACE tuÅuna basın."}]},{name:"Komutlar",items:[{name:"Komutu geri al",legend:"${undo} basın"},{name:" Tekrar komutu uygula",legend:"${redo} basın"},{name:" Kalın komut",legend:"${bold} basın"},{name:" İtalik komutu",legend:"${italic} basın"},
+{name:" Alttan çizgi komutu",legend:"${underline} basın"},{name:" BaÄlantı komutu",legend:"${link} basın"},{name:" Araç çubuÄu Toplama komutu",legend:"${toolbarCollapse} basın"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:"EriÅilebilirlik Yardımı",legend:"${a11yHelp} basın"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/ug.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ug.js
new file mode 100644
index 0000000..c6c174f
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/ug.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","ug",{title:"ÙÙØ´ÛÙ
ÚÛ ÚÛØ´ÛÙØ¯ÛØ±ÛØ´",contents:"ÙØ§Ø±Ø¯ÛÙ
Ù
ÛØ²Ù
ÛÙÙ. Ø¨Û Ø³ÛØ²ÙÛØ´ÙÛÙÙ ÙØ§Ù¾Ù
اÙÚ٠بÙÙØ³ÙÚÙØ² ESC ÙÙ Ø¨ÛØ³ÙÚ.",legend:[{name:"Ø¦Ø§Ø¯ÛØªØªÙÙÙ",items:[{name:"ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù تÛÚ¾Ø±ÙØ±",legend:"${toolbarFocus} Ø¨ÛØ³ÙÙØ³Ø§ ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§ÙÙØ§ ÙÛØªÛÙÙÛÙØ¯ÛØ TAB ÙØ§ÙÙ SHIFT+TAB ئارÙÙÙÙÙ ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù Ú¯ÛØ±ÛÙ¾Ù¾ÙØ³Ù تاÙÙÙÙÙØ¯ÛØ Ø¦ÙÚ Ø³ÙÙ ÙØ§ ئÙÙØªØ§ تÙÙ¾ÚØ§ تاÙÙÙÙÙØ¯ÛØ Ø¨ÙØ´ÙÛÙ ÙØ§ÙÙ Enter ÙÛÙÛÙ¾ÙÙØ³Ùدا تاÙÙØ§Ùغا٠تÙÙ¾ÚÙÙÙ ÙÙÙÙÙÙÙØ¯Û."},{name:"تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ Ø³ÛØ²ÙÛØ´ÙÛØ³Ù",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab wit
h TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ ØªÙÙ Ù
ÛÚ¾ÙØª ØªÙØ²ÙÙ
ÙÙÙÙ",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ ØªÙØ²ÙÙ
Ù",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚ Ø¦ÛÙÛÙ
ÛÙØª ÙÙÙ Ø¨Ø§ÙØ¯Ø§Ù",legend:"${elementsPathFocus} Ø¨ÛØ³ÙÙØ³Ø§ ئÛÙÛÙ
ÛÙØª ÙÙÙ Ø¨Ø§ÙØ¯Ø§ÙÙØ§ ÙÛØªÛÙÙÛÙØ¯ÛØ TAB ÙØ§Ù٠ئÙÚ ÙØ§ ئÙÙØªØ§ ÙÛÙÙÙÙ٠ئÛÙÛÙ
ÛÙØª تاÙÙÙÙÙØ¯ÛØ SHIFT+TAB ÙØ§Ù٠سÙÙ ÙØ§ ئÙÙØªØ§ Ø¦Ø§ÙØ¯ÙÙÙ٠ئÛÙÛÙ
ÛÙØª تاÙÙÙÙÙØ¯ÛØ Ø¨ÙØ´ÙÛÙ ÙØ§ÙÙ Enter ÙÛÙÛÙ¾ÙÙØ³Ùدا تÛÚ¾Ø±ÙØ±ÙÙÚ¯ÛÚØªÙÙ٠ئÛÙÛÙ
ÛÙØª تاÙÙÙÙÙØ¯Û."}]},{name:"بÛÙØ±ÛÙ",items:[{name:"بÛÙØ±ÛÙØªÙÙ ÙÛÙÙÛØ§Ù",legend:"${undo} ÙÙ Ø¨ÛØ³ÙÚ"},{name:"ÙØ§ÙتÙÙØ§Ø´ بÛÙØ±ÛÙÙ",legend:"${redo} ÙÙ Ø¨ÛØ³ÙÚ"},{name:"تÙÙ
ÙÙØªÙØ´ بÛÙØ±ÛÙÙ",legend:"${bold} ÙÙ Ø¨ÛØ³ÙÚ"},{name:"ÙØ§ÙØªÛ Ø¨ÛÙØ±ÛÙÙ",legend:"${italic} ÙÙ Ø¨ÛØ³ÙÚ"},
+{name:"Ø¦Ø§Ø³ØªÙ Ø³ÙØ²Ù٠بÛÙØ±ÛÙÙ",legend:"${underline} ÙÙ Ø¨ÛØ³ÙÚ"},{name:"ئÛÙØ§ÙÙ
ا بÛÙØ±ÛÙÙ",legend:"${link} ÙÙ Ø¨ÛØ³ÙÚ"},{name:"ÙÙØ±Ø§Ù Ø¨Ø§ÙØ¯Ø§Ù ÙØ§ØªÙاش بÛÙØ±ÛÙÙ",legend:"${toolbarCollapse} ÙÙ Ø¨ÛØ³ÙÚ"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:"ØªÙØ³Ø§ÙØºÛØ³Ùز ÙØ§ÙÙÚ¾Û ÚÛØ´ÛÙØ¯ÛØ±ÛØ´Ù",legend:"${a11yHelp} ÙÙ Ø¨ÛØ³ÙÚ"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/uk.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/uk.js
new file mode 100644
index 0000000..2451e8c
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/uk.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","uk",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"ÐÑновне",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/vi.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/vi.js
new file mode 100644
index 0000000..e23f1f0
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/vi.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","vi",{title:"Accessibility Instructions",contents:"Ná»i dung Há» trợ. Nhấn ESC Äá» Äóng há»p thoại.",legend:[{name:"Chung",items:[{name:"Thanh công cụ soạn th",legend:"Nhấn ${toolbarFocus} Äá» Äiá»u hưá»ng Äến thanh công cụ. Nhấn TAB và SHIFT-TAB Äá» chuyá»n Äến nhóm thanh công cụ khác. Nhấn MŨI TÃN PHẢI hoặc MŨI TÃN TRÃI Äá» chuyá»n sang nút khác trên thanh công cụ. Nhấn PHÃM CÃCH hoặc ENTER Äá» kÃch hoạt nút trên thanh công c."},{name:"Há»p thoại Biên t",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."},
+{name:"Trình ÄÆ¡n Ngữ cảnh cBá» soạn thảo",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."},
+{name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command",
+legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},
+{name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/dialogs/lang/zh-cn.js b/share/static/RichText/plugins/a11yhelp/dialogs/lang/zh-cn.js
new file mode 100644
index 0000000..ef3a2db
--- /dev/null
+++ b/share/static/RichText/plugins/a11yhelp/dialogs/lang/zh-cn.js
@@ -0,0 +1,7 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("a11yhelp","zh-cn",{title:"è¾
å©è¯´æ",contents:"帮å©å
容ãè¦å
³éæ¤å¯¹è¯æ¡è¯·æ ESC é®ã",legend:[{name:"常è§",items:[{name:"ç¼è¾å¨å·¥å
·æ ",legend:"æ ${toolbarFocus} 导èªå°å·¥å
·æ ï¼ä½¿ç¨ TAB 鮿 SHIFT+TAB ç»åé®éæ©å·¥å
·æ ç»ï¼ä½¿ç¨å·¦å³ç®å¤´é®éæ©æé®ï¼æç©ºæ ¼é®æå车é®ä»¥åºç¨éä¸çæé®ã"},{name:"ç¼è¾å¨å¯¹è¯æ¡",legend:"å¨å¯¹è¯æ¡å
ï¼TAB é®ç§»å¨å°ä¸ä¸ä¸ªå段ï¼SHIFT + TAB ç»åé®ç§»å¨å°ä¸ä¸ä¸ªå段ï¼ENTER é®æäº¤å¯¹è¯æ¡ï¼ESC é®åæ¶å¯¹è¯æ¡ãå¯¹äºæå¤æ ç¾çå¯¹è¯æ¡ï¼ç¨ALT + F10æ¥ç§»å°æ ç¾å表ãç¶åç¨ TAB 鮿è
åå³ç®å¤´æ¥ç§»å¨å°ä¸ä¸ä¸ªæ ç¾ï¼SHIFT + TAB ç»å鮿è
åå·¦ç®å¤´ç§»å¨å°ä¸ä¸ä¸ªæ ç¾ãç¨ SPACE 鮿è
ENTER é®éæ©æ ç¾ã"},{name:"ç¼è¾å¨ä¸ä¸æèå",legend:"ç¨ ${contextMenu}æè
åºç¨ç¨åºé® æå¼ä¸ä¸æèåãç¶åç¨ TAB 鮿è
ä¸ç®å¤´é®æ¥ç§»å¨å°ä¸ä¸ä¸ªèåé¡
¹ï¼SHIFT + TAB ç»å鮿è
ä¸ç®å¤´é®ç§»å¨å°ä¸ä¸ä¸ªèå项ãç¨ SPACE 鮿è
ENTER é®éæ©èå项ãç¨ SPACE é®ï¼ENTER 鮿è
å³ç®å¤´é®æå¼åèåãè¿åèåç¨ ESC 鮿è
å·¦ç®å¤´é®ãç¨ ESC é®å
³éä¸ä¸æèåã"},
+{name:"ç¼è¾å¨å表æ¡",legend:"å¨å表æ¡ä¸ï¼ç§»å°ä¸ä¸åè¡¨é¡¹ç¨ TAB 鮿è
ä¸ç®å¤´é®ãç§»å°ä¸ä¸å表项ç¨SHIFT + TAB ç»å鮿è
ä¸ç®å¤´é®ï¼ç¨ SPACE 鮿è
ENTER é®éæ©å表项ãç¨ ESC 鮿¶èµ·å表æ¡ã"},{name:"ç¼è¾å¨å
ç´ è·¯å¾æ ",legend:"æ ${elementsPathFocus} 以导èªå°å
ç´ è·¯å¾æ ï¼ä½¿ç¨ TAB 鮿å³ç®å¤´é®éæ©ä¸ä¸ä¸ªå
ç´ ï¼ä½¿ç¨ SHIFT+TAB ç»å鮿左ç®å¤´é®éæ©ä¸ä¸ä¸ªå
ç´ ï¼æç©ºæ ¼é®æå车é®ä»¥éå®ç¼è¾å¨éçå
ç´ ã"}]},{name:"å½ä»¤",items:[{name:" æ¤æ¶å½ä»¤",legend:"æ ${undo}"},{name:" éåå½ä»¤",legend:"æ ${redo}"},{name:" å ç²å½ä»¤",legend:"æ ${bold}"},{name:" 徿å½ä»¤",legend:"æ ${italic}"},{name:" ä¸å线å½ä»¤",legend:"æ ${underline}"},{name:" 龿¥å½ä»¤",legend:"æ ${link}"},{name:" å·¥å
·æ æå å½ä»¤",legend:"æ ${toolbarCollapse}"},
+{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" æ éç¢è®¾è®¡è¯´æ",legend:"æ ${a11yHelp}"}]}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/a11yhelp/lang/en.js b/share/static/RichText/plugins/a11yhelp/lang/en.js
deleted file mode 100644
index bffdad4..0000000
--- a/share/static/RichText/plugins/a11yhelp/lang/en.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang('a11yhelp','en',{accessibilityHelp:{title:'Accessibility Instructions',contents:'Help Contents. To close this dialog press ESC.',legend:[{name:'General',items:[{name:'Editor Toolbar',legend:'Press ${toolbarFocus} to navigate to the toolbar. Move to next toolbar button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button.'},{name:'Editor Dialog',legend:'Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page.'},{name:'Editor Context Menu',legend:'Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB
or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option wtih SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC.'},{name:'Editor List Box',legend:'Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.'},{name:'Editor Element Path Bar',legend:'Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor.'}]},{name:'Commands',items:[{name:' Undo command',legend:'Press ${undo}'},{name:' Redo command',legend:'Press ${redo}'},{name:' Bold command',legend:'Press ${bold}'},{name:' Italic command',legend:'Press ${italic}'},{
name:' Underline command',legend:'Press ${underline}'},{name:' Link command',legend:'Press ${link}'},{name:' Toolbar Collapse command',legend:'Press ${toolbarCollapse}'},{name:' Accessibility Help',legend:'Press ${a11yHelp}'}]}]}});
diff --git a/share/static/RichText/plugins/a11yhelp/lang/he.js b/share/static/RichText/plugins/a11yhelp/lang/he.js
deleted file mode 100644
index e77cb8f..0000000
--- a/share/static/RichText/plugins/a11yhelp/lang/he.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang('a11yhelp','he',{accessibilityHelp:{title:'××ר××ת × ××ש×ת',contents:'××ר××ת × ××ש×ת. ×ס×××¨× ×××¥ ×סק××פ (ESC).',legend:[{name:'××××',items:[{name:'סר×× ×××××',legend:'×××¥ ×¢× ${toolbarFocus} ××× ×× ××× ×סר×× ×××××. ×¢××ר ××פת×ר ××× ×¢× ×קש ×××× (TAB) ×× ××¥ ש××××. ×¢××ר ××פת×ר ××§××× ×¢× ×קש ×ש××¤× (SHIFT) + ××× (TAB) ×× ××¥ ××× ×. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××פע×× ×ת ××פת×ר ×× ××ר.'},{name:'×××××××× (×××× ×ת תש×××)',legend:'×ת×× ××××××, ×××¥ ××× (TAB) ××× ×× ××× ×ש×× ×××, ×××¥ ש××¤× (SHIFT) + ××× (TAB) ××× ×× ××× ×ש×× ××§×××, ×××¥ ×× ×ר (ENTER) ××× ×ש××× ×ת ×××××××, ×××¥ ×סק××פ (ESC) ××× ××××. ×ת×× ×××××××× ××¢×× ×ספר ××××× (×ש×× ××ת), ×××¥ ××× (ALT
) + F10 ××× ×× ××× ×ש×רת ××××××. × ××× ×××× ××× ×¢× ××× (TAB) ×× ××¥ ש××××. ×¢××ר ×××× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××× ×¡ ××××.'},{name:'תפר×× ××קשר (Context Menu)',legend:'×××¥ ${contextMenu} ×× APPLICATION KEY××× ×פת×× ×ת תפר×× ××קשר. ×¢××ר ××פשר×ת ×××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ××פשר×ת ××§×××ת ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ×××¢××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××פשר×ת. ×¤×ª× ×ת תת ×תפר×× (Sub-menu) ×©× ××פשר×ת ×× ××××ת ×¢× ×¨××× ×× ×× ×ר (ENTER) ×× ××¥ ש××××. ×××ר ×תפר×× ××× ×¢× ×סק××פ (ESC) ×× ××¥ ש××××. ס××ר ×ת תפר×× ××קשר ×¢× ×סק××פ (ESC).'},{name:'תפר×××× ×¦×¤×× (List boxes)',legend:'×ת×
× ×ª×¤×¨×× ×¦×£, ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ×תפר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) or ××¥ ×¢××××. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.'},{name:'×¢×¥ ×××× ××× (Elements Path)',legend:'×××¥ ${elementsPathFocus} ××× ×× ××× ××¢×¥ ××××× ×××. ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××× ×. ×¢××ר ×פר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××××× × ××¢×ר×.'}]},{name:'פק×××ת',items:[{name:' ××××× ×¦×¢× ××ר××',legend:'×××¥ ${undo}'},{name:' ×××¨× ×¢× ×¦×¢× ××ר××',legend:'×××¥ ${redo}'},{name:' ×××ש×',legend:'×××¥ ${bold}'},{name:' ×××××',legend:'×××¥ ${italic}'},{name:' ××ספת ×§× ×ª×ת××',legend:'×××¥ ${underline}'},{name:' ××ספת ××× ×§',legend:'×××¥ ${l
ink}'},{name:' ×××××¥ סר×× ×××××',legend:'×××¥ ${toolbarCollapse}'},{name:' ××ר××ת × ××ש×ת',legend:'×××¥ ${a11yHelp}'}]}]}});CKEDITOR.plugins.setLang('a11yhelp','he',{accessibilityHelp:{title:'××ר××ת × ××ש×ת',contents:'××ר××ת × ××ש×ת. ×ס×××¨× ×××¥ ×סק××פ (ESC).',legend:[{name:'××××',items:[{name:'סר×× ×××××',legend:'×××¥ ×¢× ${toolbarFocus} ××× ×× ××× ×סר×× ×××××. ×¢××ר ××פת×ר ××× ×¢× ×קש ×××× (TAB) ×× ××¥ ש××××. ×¢××ר ××פת×ר ××§××× ×¢× ×קש ×ש××¤× (SHIFT) + ××× (TAB) ×× ××¥ ××× ×. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××פע×× ×ת ××פת×ר ×× ××ר.'},{name:'×××××××× (×××× ×ת תש×××)',legend:'×ת×× ××××××, ×××¥ ××× (TAB) ××× ×× ××× ×ש×× ×××, ×××¥ ש××¤× (SHIFT) + ××× (TAB) ××× ×× ××× ×ש×× ××§×××, ×××¥ ×× ×ר (ENTER) ××× ×ש××× ×
ת ×××××××, ×××¥ ×סק××פ (ESC) ××× ××××. ×ת×× ×××××××× ××¢×× ×ספר ××××× (×ש×× ××ת), ×××¥ ××× (ALT) + F10 ××× ×× ××× ×ש×רת ××××××. × ××× ×××× ××× ×¢× ××× (TAB) ×× ××¥ ש××××. ×¢××ר ×××× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××× ×¡ ××××.'},{name:'תפר×× ××קשר (Context Menu)',legend:'×××¥ ${contextMenu} ×× APPLICATION KEY××× ×פת×× ×ת תפר×× ××קשר. ×¢××ר ××פשר×ת ×××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ××פשר×ת ××§×××ת ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ×××¢××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××פשר×ת. ×¤×ª× ×ת תת ×תפר×× (Sub-menu) ×©× ××פשר×ת ×× ××××ת ×¢× ×¨××× ×× ×× ×ר (ENTER) ×× ××¥ ש××××. ×××ר ×תפר×× ××× ×¢× ×סק××
פ (ESC) ×× ××¥ ש××××. ס××ר ×ת תפר×× ××קשר ×¢× ×סק××פ (ESC).'},{name:'תפר×××× ×¦×¤×× (List boxes)',legend:'×ת×× ×ª×¤×¨×× ×¦×£, ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××××. ×¢××ר ×תפר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) or ××¥ ×¢××××. Press SPACE or ENTER to select the list option. Press ESC to close the list-box.'},{name:'×¢×¥ ×××× ××× (Elements Path)',legend:'×××¥ ${elementsPathFocus} ××× ×× ××× ××¢×¥ ××××× ×××. ×¢××ר ×פר×× ××× ×¢× ××× (TAB) ×× ××¥ ××× ×. ×¢××ר ×פר×× ××§××× ×¢× ×©××¤× (SHIFT) + ××× (TAB) ×× ××¥ ש××××. ×××¥ ר××× ×× ×× ×ר (ENTER) ××× ××××ר ×ת ××××× × ××¢×ר×.'}]},{name:'פק×××ת',items:[{name:' ××××× ×¦×¢× ××ר××',legend:'×××¥ ${undo}'},{name:' ×××¨× ×¢× ×¦×¢× ××ר××',legend:'×××¥ ${redo}'},{name:' ×××ש×',legend:'×××¥ ${bold}'},{name:'
×××××',legend:'×××¥ ${italic}'},{name:' ××ספת ×§× ×ª×ת××',legend:'×××¥ ${underline}'},{name:' ××ספת ××× ×§',legend:'×××¥ ${link}'},{name:' ×××××¥ סר×× ×××××',legend:'×××¥ ${toolbarCollapse}'},{name:' ××ר××ת × ××ש×ת',legend:'×××¥ ${a11yHelp}'}]}]}});
diff --git a/share/static/RichText/plugins/about/dialogs/about.js b/share/static/RichText/plugins/about/dialogs/about.js
index 8065ba4..3d9156b 100644
--- a/share/static/RichText/plugins/about/dialogs/about.js
+++ b/share/static/RichText/plugins/about/dialogs/about.js
@@ -1,6 +1,6 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('about',function(a){var b=a.lang.about;return{title:CKEDITOR.env.ie?b.dlgTitle:b.title,minWidth:390,minHeight:230,contents:[{id:'tab1',label:'',title:'',expand:true,padding:0,elements:[{type:'html',html:'<style type="text/css">.cke_about_container{color:#000 !important;padding:10px 10px 0;margin-top:5px}.cke_about_container p{margin: 0 0 10px;}.cke_about_container .cke_about_logo{height:81px;background-color:#fff;background-image:url('+CKEDITOR.plugins.get('about').path+'dialogs/logo_ckeditor.png);'+'background-position:center; '+'background-repeat:no-repeat;'+'margin-bottom:10px;'+'}'+'.cke_about_container a'+'{'+'cursor:pointer !important;'+'color:blue !important;'+'text-decoration:underline !important;'+'}'+'</style>'+'<div class="cke_about_container">'+'<div class="cke_about_logo"></div>'+'<p>'+'CKEditor '+CKEDITOR.version+' (revision '+CKEDITOR.revision+')<br>'+'<a href="http://ckeditor.com/">http://ckeditor.com</a>'+'</p>'+'<p>'+b.moreInfo+'<br>'+'<
a href="http://ckeditor.com/license">http://ckeditor.com/license</a>'+'</p>'+'<p>'+b.copy.replace('$1','<a href="http://cksource.com/">CKSource</a> - Frederico Knabben')+'</p>'+'</div>'}]}],buttons:[CKEDITOR.dialog.cancelButton]};});
+CKEDITOR.dialog.add("about",function(a){a=a.lang.about;return{title:CKEDITOR.env.ie?a.dlgTitle:a.title,minWidth:390,minHeight:230,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'<style type="text/css">.cke_about_container{color:#000 !important;padding:10px 10px 0;margin-top:5px}.cke_about_container p{margin: 0 0 10px;}.cke_about_container .cke_about_logo{height:81px;background-color:#fff;background-image:url('+CKEDITOR.plugins.get("about").path+'dialogs/logo_ckeditor.png);background-position:center; background-repeat:no-repeat;margin-bottom:10px;}.cke_about_container a{cursor:pointer !important;color:#00B2CE !important;text-decoration:underline !important;}</style><div class="cke_about_container"><div class="cke_about_logo"></div><p>CKEditor '+
+CKEDITOR.version+" (revision "+CKEDITOR.revision+')<br><a href="http://ckeditor.com/">http://ckeditor.com</a></p><p>'+a.help.replace("$1",'<a href="http://docs.ckeditor.com/user">'+a.userGuide+"</a>")+"</p><p>"+a.moreInfo+'<br><a href="http://ckeditor.com/about/license">http://ckeditor.com/about/license</a></p><p>'+a.copy.replace("$1",'<a href="http://cksource.com/">CKSource</a> - Frederico Knabben')+"</p></div>"}]}],buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/autogrow/plugin.js b/share/static/RichText/plugins/autogrow/plugin.js
deleted file mode 100644
index a399376..0000000
--- a/share/static/RichText/plugins/autogrow/plugin.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function(){var a=function(b){var c=b.document,d=b.window.getViewPaneSize().height,e;if(CKEDITOR.env.ie)e=c.getBody().$.scrollHeight+24;else e=c.getDocumentElement().$.offsetHeight;var f=b.config.autoGrow_minHeight,g=b.config.autoGrow_maxHeight;f==undefined&&(b.config.autoGrow_minHeight=f=200);if(f)e=Math.max(e,f);if(g)e=Math.min(e,g);if(e!=d){e=b.fire('autoGrow',{currentHeight:d,newHeight:e}).newHeight;b.resize(b.container.getStyle('width'),e,true);}};CKEDITOR.plugins.add('autogrow',{init:function(b){for(var c in {contentDom:1,key:1,selectionChange:1,insertElement:1})b.on(c,function(d){if(d.editor.mode=='wysiwyg')setTimeout(function(){a(d.editor);},100);});}});})();
diff --git a/share/static/RichText/plugins/clipboard/dialogs/paste.js b/share/static/RichText/plugins/clipboard/dialogs/paste.js
index 22b7975..8f94a71 100644
--- a/share/static/RichText/plugins/clipboard/dialogs/paste.js
+++ b/share/static/RichText/plugins/clipboard/dialogs/paste.js
@@ -1,7 +1,11 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('paste',function(a){var b=a.lang.clipboard,c=CKEDITOR.env.isCustomDomain();function d(e){var f=new CKEDITOR.dom.document(e.document),g=f.$;f.getById('cke_actscrpt').remove();CKEDITOR.env.ie?g.body.contentEditable='true':g.designMode='on';if(CKEDITOR.env.ie&&CKEDITOR.env.version<8)f.getWindow().on('blur',function(){g.selection.empty();});f.on('keydown',function(h){var i=h.data,j=i.getKeystroke(),k;switch(j){case 27:this.hide();k=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(true);k=1;}k&&i.preventDefault();},this);a.fire('ariaWidget',new CKEDITOR.dom.element(e.frameElement));};return{title:b.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;var e='<html dir="'+a.config.contentsLangDirection+'"'+' lang="'+(a.config.contentsLanguage||a.langCode)+'">'+'<head><style>body { margin: 3px; height: 95%; } </style></head><body>'+'<script id="cke_actscrpt" type=
"text/javascript">'+'window.parent.CKEDITOR.tools.callFunction( '+CKEDITOR.tools.addFunction(d,this)+', this );'+'</script></body>'+'</html>',f=CKEDITOR.dom.element.createFromHtml('<iframe class="cke_pasteframe" frameborder="0" allowTransparency="true"'+(c?" src=\"javascript:void((function(){document.open();document.domain='"+document.domain+"';"+'document.close();'+'})())"':'')+' role="region"'+' aria-label="'+b.pasteArea+'"'+' aria-describedby="'+this.getContentElement('general','pasteMsg').domId+'"'+' aria-multiple="true"'+'></iframe>');f.on('load',function(j){j.removeListener();var k=f.getFrameDocument().$;k.open();if(c)k.domain=document.domain;k.write(e);k.close();},this);f.setCustomData('dialog',this);var g=this.getContentElement('general','editing_area'),h=g.getElement();h.setHtml('');h.append(f);if(CKEDITOR.env.ie){var i=CKEDITOR.dom.element.createFromHtml('<span tabindex="-1" style="position:absolute;" role="presentation"></span>');i.on('focus',function(){f.$.conte
ntWindow.focus();});h.append(i);g.focus=function(){i.focus();this.fire('focus');};}g.getInputElement=function(){return f;};if(CKEDITOR.env.ie){h.setStyle('display','block');h.setStyle('height',f.$.offsetHeight+2+'px');}},onHide:function(){if(CKEDITOR.env.ie)this.getParentEditor().document.getBody().$.contentEditable='true';},onLoad:function(){if((CKEDITOR.env.ie7Compat||CKEDITOR.env.ie6Compat)&&a.lang.dir=='rtl')this.parts.contents.setStyle('overflow','hidden');},onOk:function(){var e=this.getContentElement('general','editing_area').getElement(),f=e.getElementsByTag('iframe').getItem(0),g=this.getParentEditor(),h=f.$.contentWindow.document.body.innerHTML;
-setTimeout(function(){g.fire('paste',{html:h});},0);},contents:[{id:'general',label:a.lang.common.generalTab,elements:[{type:'html',id:'securityMsg',html:'<div style="white-space:normal;width:340px;">'+b.securityMsg+'</div>'},{type:'html',id:'pasteMsg',html:'<div style="white-space:normal;width:340px;">'+b.pasteMsg+'</div>'},{type:'html',id:'editing_area',style:'width: 100%; height: 100%;',html:'',focus:function(){var e=this.getInputElement().$.contentWindow;setTimeout(function(){e.focus();},500);}}]}]};});
+CKEDITOR.dialog.add("paste",function(c){function g(a){var b=new CKEDITOR.dom.document(a.document),d=b.getBody(),e=b.getById("cke_actscrpt");e&&e.remove();d.setAttribute("contenteditable",!0);if(CKEDITOR.env.ie&&8>CKEDITOR.env.version)b.getWindow().on("blur",function(){b.$.selection.empty()});b.on("keydown",function(a){var a=a.data,b;switch(a.getKeystroke()){case 27:this.hide();b=1;break;case 9:case CKEDITOR.SHIFT+9:this.changeFocus(1),b=1}b&&a.preventDefault()},this);c.fire("ariaWidget",new CKEDITOR.dom.element(a.frameElement));
+b.getWindow().getFrame().removeCustomData("pendingFocus")&&d.focus()}var f=c.lang.clipboard,h=CKEDITOR.env.isCustomDomain();c.on("pasteDialogCommit",function(a){a.data&&c.fire("paste",{type:"auto",dataValue:a.data})},null,null,1E3);return{title:f.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?370:350,minHeight:CKEDITOR.env.quirks?250:245,onShow:function(){this.parts.dialog.$.offsetHeight;this.setupContent();this.parts.title.setHtml(this.customTitle||f.title);this.customTitle=null},onLoad:function(){(CKEDITOR.env.ie7Compat||
+CKEDITOR.env.ie6Compat)&&"rtl"==c.lang.dir&&this.parts.contents.setStyle("overflow","hidden")},onOk:function(){this.commitContent()},contents:[{id:"general",label:c.lang.common.generalTab,elements:[{type:"html",id:"securityMsg",html:'<div style="white-space:normal;width:340px">'+f.securityMsg+"</div>"},{type:"html",id:"pasteMsg",html:'<div style="white-space:normal;width:340px">'+f.pasteMsg+"</div>"},{type:"html",id:"editing_area",style:"width:100%;height:100%",html:"",focus:function(){var a=this.getInputElement(),
+b=a.getFrameDocument().getBody();!b||b.isReadOnly()?a.setCustomData("pendingFocus",1):b.focus()},setup:function(){var a=this.getDialog(),b='<html dir="'+c.config.contentsLangDirection+'" lang="'+(c.config.contentsLanguage||c.langCode)+'"><head><style>body{margin:3px;height:95%}</style></head><body><script id="cke_actscrpt" type="text/javascript">window.parent.CKEDITOR.tools.callFunction('+CKEDITOR.tools.addFunction(g,a)+",this);<\/script></body></html>",d=CKEDITOR.dom.element.createFromHtml('<iframe class="cke_pasteframe" frameborder="0" allowTransparency="true" src="'+
+(CKEDITOR.env.air?"javascript:void(0)":h?"javascript:void((function(){document.open();document.domain='"+document.domain+"';document.close();})())\"":"")+'" role="region" aria-label="'+f.pasteArea+'" aria-describedby="'+a.getContentElement("general","pasteMsg").domId+'" aria-multiple="true"></iframe>');d.on("load",function(a){a.removeListener();a=d.getFrameDocument();a.write(b);c.focusManager.add(a.getBody());CKEDITOR.env.air&&g.call(this,a.getWindow().$)},a);d.setCustomData("dialog",a);a=this.getElement();
+a.setHtml("");a.append(d);if(CKEDITOR.env.ie){var e=CKEDITOR.dom.element.createFromHtml('<span tabindex="-1" style="position:absolute" role="presentation"></span>');e.on("focus",function(){d.$.contentWindow.focus()});a.append(e);this.focus=function(){e.focus();this.fire("focus")}}this.getInputElement=function(){return d};CKEDITOR.env.ie&&(a.setStyle("display","block"),a.setStyle("height",d.$.offsetHeight+2+"px"))},commit:function(){var a=this.getDialog().getParentEditor(),b=this.getInputElement().getFrameDocument().getBody(),
+d=b.getBogus(),c;d&&d.remove();c=b.getHtml();setTimeout(function(){a.fire("pasteDialogCommit",c)},0)}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/colordialog/dialogs/colordialog.js b/share/static/RichText/plugins/colordialog/dialogs/colordialog.js
index 7c6cf8b..840cd4b 100644
--- a/share/static/RichText/plugins/colordialog/dialogs/colordialog.js
+++ b/share/static/RichText/plugins/colordialog/dialogs/colordialog.js
@@ -1,7 +1,13 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('colordialog',function(a){var b=CKEDITOR.dom.element,c=CKEDITOR.document,d=CKEDITOR.tools,e=a.lang.colordialog,f;function g(){return{type:'html',html:' '};};function h(){c.getById(w).removeStyle('background-color');f.getContentElement('picker','selectedColor').setValue('');};function i(y){if(!(y instanceof CKEDITOR.dom.event))y=new CKEDITOR.dom.event(y);var z=y.getTarget(),A;if(z.getName()=='a'&&(A=z.getChild(0).getHtml()))f.getContentElement('picker','selectedColor').setValue(A);};function j(y){if(!(y instanceof CKEDITOR.dom.event))y=y.data;var z=y.getTarget(),A;if(z.getName()=='a'&&(A=z.getChild(0).getHtml())){c.getById(u).setStyle('background-color',A);c.getById(v).setHtml(A);}};function k(){c.getById(u).removeStyle('background-color');c.getById(v).setHtml(' ');};var l=d.addFunction(k),m=i,n=CKEDITOR.tools.addFunction(m),o=j,p=k,q=CKEDITOR.tools.addFunction(function(y){y=new CKEDITOR.dom.event(y);var z=y.getTarget(),A,B,C=y.getKeystroke(),D=a
.lang.dir=='rtl';switch(C){case 38:if(A=z.getParent().getParent().getPrevious()){B=A.getChild([z.getParent().getIndex(),0]);B.focus();p(y,z);o(y,B);}y.preventDefault();break;case 40:if(A=z.getParent().getParent().getNext()){B=A.getChild([z.getParent().getIndex(),0]);if(B&&B.type==1){B.focus();p(y,z);o(y,B);}}y.preventDefault();break;case 32:m(y);y.preventDefault();break;case D?37:39:if(A=z.getParent().getNext()){B=A.getChild(0);if(B.type==1){B.focus();p(y,z);o(y,B);y.preventDefault(true);}else p(null,z);}else if(A=z.getParent().getParent().getNext()){B=A.getChild([0,0]);if(B&&B.type==1){B.focus();p(y,z);o(y,B);y.preventDefault(true);}else p(null,z);}break;case D?39:37:if(A=z.getParent().getPrevious()){B=A.getChild(0);B.focus();p(y,z);o(y,B);y.preventDefault(true);}else if(A=z.getParent().getParent().getPrevious()){B=A.getLast().getChild(0);B.focus();p(y,z);o(y,B);y.preventDefault(true);}else p(null,z);break;default:return;}});function r(){var y=['00','33','66','99','cc','ff'
];function z(E,F){for(var G=E;G<E+3;G++){var H=s.$.insertRow(-1);for(var I=F;I<F+3;I++)for(var J=0;J<6;J++)A(H,'#'+y[I]+y[J]+y[G]);}};function A(E,F){var G=new b(E.insertCell(-1));G.setAttribute('class','ColorCell');G.setStyle('background-color',F);G.setStyle('width','15px');G.setStyle('height','15px');var H=G.$.cellIndex+1+18*E.rowIndex;G.append(CKEDITOR.dom.element.createFromHtml('<a href="javascript: void(0);" role="option" aria-posinset="'+H+'"'+' aria-setsize="'+234+'"'+' style="cursor: pointer;display:block;width:100%;height:100% " title="'+CKEDITOR.tools.htmlEncode(F)+'"'+' onkeydown="CKEDITOR.tools.callFunction( '+q+', event, this )"'+' onclick="CKEDITOR.tools.callFunction('+n+', event, this ); return false;"'+' tabindex="-1"><span class="cke_voice_label">'+F+'</span> </a>',CKEDITOR.document));
-};z(0,0);z(3,0);z(0,3);z(3,3);var B=s.$.insertRow(-1);for(var C=0;C<6;C++)A(B,'#'+y[C]+y[C]+y[C]);for(var D=0;D<12;D++)A(B,'#000000');};var s=new b('table');r();var t=function(y){return CKEDITOR.tools.getNextId()+'_'+y;},u=t('hicolor'),v=t('hicolortext'),w=t('selhicolor'),x=t('color_table_label');return{title:e.title,minWidth:360,minHeight:220,onLoad:function(){f=this;},contents:[{id:'picker',label:e.title,accessKey:'I',elements:[{type:'hbox',padding:0,widths:['70%','10%','30%'],children:[{type:'html',html:'<table role="listbox" aria-labelledby="'+x+'" onmouseout="CKEDITOR.tools.callFunction( '+l+' );">'+s.getHtml()+'</table>'+'<span id="'+x+'" class="cke_voice_label">'+e.options+'</span>',onLoad:function(){var y=CKEDITOR.document.getById(this.domId);y.on('mouseover',j);},focus:function(){var y=this.getElement().getElementsByTag('a').getItem(0);y.focus();}},g(),{type:'vbox',padding:0,widths:['70%','5%','25%'],children:[{type:'html',html:'<span>'+e.highlight+'</span>\t\t\t\t\
t\t\t\t\t\t\t\t<div id="'+u+'" style="border: 1px solid; height: 74px; width: 74px;"></div>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+v+'"> </div><span>'+e.selected+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+w+'" style="border: 1px solid; height: 20px; width: 74px;"></div>'},{type:'text',label:e.selected,labelStyle:'display:none',id:'selectedColor',style:'width: 74px',onChange:function(){try{c.getById(w).setStyle('background-color',this.getValue());}catch(y){h();}}},g(),{type:'button',id:'clear',style:'margin-top: 5px',label:e.clear,onClick:h}]}]}]}]};});
+CKEDITOR.dialog.add("colordialog",function(t){function n(){f.getById(o).removeStyle("background-color");p.getContentElement("picker","selectedColor").setValue("");j&&j.removeAttribute("aria-selected");j=null}function u(a){var a=a.data.getTarget(),b;if("td"==a.getName()&&(b=a.getChild(0).getHtml()))j=a,j.setAttribute("aria-selected",!0),p.getContentElement("picker","selectedColor").setValue(b)}function y(a){for(var a=a.replace(/^#/,""),b=0,c=[];2>=b;b++)c[b]=parseInt(a.substr(2*b,2),16);return"#"+
+(165<=0.2126*c[0]+0.7152*c[1]+0.0722*c[2]?"000":"fff")}function v(a){!a.name&&(a=new CKEDITOR.event(a));var b=!/mouse/.test(a.name),c=a.data.getTarget(),e;if("td"==c.getName()&&(e=c.getChild(0).getHtml()))q(a),b?g=c:w=c,b&&(c.setStyle("border-color",y(e)),c.setStyle("border-style","dotted")),f.getById(k).setStyle("background-color",e),f.getById(l).setHtml(e)}function q(a){if(a=!/mouse/.test(a.name)&&g){var b=a.getChild(0).getHtml();a.setStyle("border-color",b);a.setStyle("border-style","solid")}!g&&
+!w&&(f.getById(k).removeStyle("background-color"),f.getById(l).setHtml(" "))}function z(a){var b=a.data,c=b.getTarget(),e=b.getKeystroke(),d="rtl"==t.lang.dir;switch(e){case 38:if(a=c.getParent().getPrevious())a=a.getChild([c.getIndex()]),a.focus();b.preventDefault();break;case 40:if(a=c.getParent().getNext())(a=a.getChild([c.getIndex()]))&&1==a.type&&a.focus();b.preventDefault();break;case 32:case 13:u(a);b.preventDefault();break;case d?37:39:if(a=c.getNext())1==a.type&&(a.focus(),b.preventDefault(!0));
+else if(a=c.getParent().getNext())if((a=a.getChild([0]))&&1==a.type)a.focus(),b.preventDefault(!0);break;case d?39:37:if(a=c.getPrevious())a.focus(),b.preventDefault(!0);else if(a=c.getParent().getPrevious())a=a.getLast(),a.focus(),b.preventDefault(!0)}}var r=CKEDITOR.dom.element,f=CKEDITOR.document,h=t.lang.colordialog,p,x={type:"html",html:" "},j,g,w,m=function(a){return CKEDITOR.tools.getNextId()+"_"+a},k=m("hicolor"),l=m("hicolortext"),o=m("selhicolor"),i;(function(){function a(a,d){for(var s=
+a;s<a+3;s++){var e=new r(i.$.insertRow(-1));e.setAttribute("role","row");for(var f=d;f<d+3;f++)for(var g=0;6>g;g++)b(e.$,"#"+c[f]+c[g]+c[s])}}function b(a,c){var b=new r(a.insertCell(-1));b.setAttribute("class","ColorCell");b.setAttribute("tabIndex",-1);b.setAttribute("role","gridcell");b.on("keydown",z);b.on("click",u);b.on("focus",v);b.on("blur",q);b.setStyle("background-color",c);b.setStyle("border","1px solid "+c);b.setStyle("width","14px");b.setStyle("height","14px");var d=m("color_table_cell");
+b.setAttribute("aria-labelledby",d);b.append(CKEDITOR.dom.element.createFromHtml('<span id="'+d+'" class="cke_voice_label">'+c+"</span>",CKEDITOR.document))}i=CKEDITOR.dom.element.createFromHtml('<table tabIndex="-1" aria-label="'+h.options+'" role="grid" style="border-collapse:separate;" cellspacing="0"><caption class="cke_voice_label">'+h.options+'</caption><tbody role="presentation"></tbody></table>');i.on("mouseover",v);i.on("mouseout",q);var c="00 33 66 99 cc ff".split(" ");a(0,0);a(3,0);a(0,
+3);a(3,3);var e=new r(i.$.insertRow(-1));e.setAttribute("role","row");for(var d=0;6>d;d++)b(e.$,"#"+c[d]+c[d]+c[d]);for(d=0;12>d;d++)b(e.$,"#000000")})();return{title:h.title,minWidth:360,minHeight:220,onLoad:function(){p=this},onHide:function(){n();var a=g.getChild(0).getHtml();g.setStyle("border-color",a);g.setStyle("border-style","solid");f.getById(k).removeStyle("background-color");f.getById(l).setHtml(" ");g=null},contents:[{id:"picker",label:h.title,accessKey:"I",elements:[{type:"hbox",
+padding:0,widths:["70%","10%","30%"],children:[{type:"html",html:"<div></div>",onLoad:function(){CKEDITOR.document.getById(this.domId).append(i)},focus:function(){(g||this.getElement().getElementsByTag("td").getItem(0)).focus()}},x,{type:"vbox",padding:0,widths:["70%","5%","25%"],children:[{type:"html",html:"<span>"+h.highlight+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+k+'" style="border: 1px solid; height: 74px; width: 74px;"></div>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+l+'"> </div><span>'+h.selected+
+'</span>\t\t\t\t\t\t\t\t\t\t\t\t<div id="'+o+'" style="border: 1px solid; height: 20px; width: 74px;"></div>'},{type:"text",label:h.selected,labelStyle:"display:none",id:"selectedColor",style:"width: 74px",onChange:function(){try{f.getById(o).setStyle("background-color",this.getValue())}catch(a){n()}}},x,{type:"button",id:"clear",style:"margin-top: 5px",label:h.clear,onClick:n}]}]}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/dialog/dialogDefinition.js b/share/static/RichText/plugins/dialog/dialogDefinition.js
index b07ba78..2cb5d24 100644
--- a/share/static/RichText/plugins/dialog/dialogDefinition.js
+++ b/share/static/RichText/plugins/dialog/dialogDefinition.js
@@ -1,4 +1,4 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
diff --git a/share/static/RichText/plugins/div/dialogs/div.js b/share/static/RichText/plugins/div/dialogs/div.js
index 45dc226..0c26a56 100644
--- a/share/static/RichText/plugins/div/dialogs/div.js
+++ b/share/static/RichText/plugins/div/dialogs/div.js
@@ -1,8 +1,9 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function(){function a(d,e,f){if(!e.is||!e.getCustomData('block_processed')){e.is&&CKEDITOR.dom.element.setMarker(f,e,'block_processed',true);d.push(e);}};function b(d){var e=[],f=d.getChildren();for(var g=0;g<f.count();g++){var h=f.getItem(g);if(!(h.type===CKEDITOR.NODE_TEXT&&/^[ \t\n\r]+$/.test(h.getText())))e.push(h);}return e;};function c(d,e){var f=(function(){var p=CKEDITOR.tools.extend({},CKEDITOR.dtd.$blockLimit);delete p.div;if(d.config.div_wrapTable){delete p.td;delete p.th;}return p;})(),g=CKEDITOR.dtd.div;function h(p){var q=new CKEDITOR.dom.elementPath(p).elements,r;for(var s=0;s<q.length;s++){if(q[s].getName() in f){r=q[s];break;}}return r;};function i(){this.foreach(function(p){if(/^(?!vbox|hbox)/.test(p.type)){if(!p.setup)p.setup=function(q){p.setValue(q.getAttribute(p.id)||'');};if(!p.commit)p.commit=function(q){var r=this.getValue();if('dir'==p.id&&q.getComputedStyle('direction')==r)return;if(r)q.setAttribute(p.id,r);else q.removeAttribute(p.id);};}});};fun
ction j(p){var q=[],r={},s=[],t,u=p.document.getSelection(),v=u.getRanges(),w=u.createBookmarks(),x,y,z=p.config.enterMode==CKEDITOR.ENTER_DIV?'div':'p';for(x=0;x<v.length;x++){y=v[x].createIterator();while(t=y.getNextParagraph()){if(t.getName() in f){var A,B=t.getChildren();for(A=0;A<B.count();A++)a(s,B.getItem(A),r);}else{while(!g[t.getName()]&&t.getName()!='body')t=t.getParent();a(s,t,r);}}}CKEDITOR.dom.element.clearAllMarkers(r);var C=l(s),D,E,F;for(x=0;x<C.length;x++){var G=C[x][0];D=G.getParent();for(A=1;A<C[x].length;A++)D=D.getCommonAncestor(C[x][A]);F=new CKEDITOR.dom.element('div',p.document);for(A=0;A<C[x].length;A++){G=C[x][A];while(!G.getParent().equals(D))G=G.getParent();C[x][A]=G;}var H=null;for(A=0;A<C[x].length;A++){G=C[x][A];if(!(G.getCustomData&&G.getCustomData('block_processed'))){G.is&&CKEDITOR.dom.element.setMarker(r,G,'block_processed',true);if(!A)F.insertBefore(G);F.append(G);}}CKEDITOR.dom.element.clearAllMarkers(r);q.push(F);}u.selectBookmarks(w);re
turn q;};function k(p){var q=new CKEDITOR.dom.elementPath(p.getSelection().getStartElement()),r=q.blockLimit,s=r&&r.getAscendant('div',true);return s;};function l(p){var q=[],r=null,s,t;for(var u=0;u<p.length;u++){t=p[u];var v=h(t);if(!v.equals(r)){r=v;q.push([]);}q[q.length-1].push(t);}return q;};function m(p){var q=this.getDialog(),r=q._element&&q._element.clone()||new CKEDITOR.dom.element('div',d.document);this.commit(r,true);p=[].concat(p);var s=p.length,t;for(var u=0;u<s;u++){t=q.getContentElement.apply(q,p[u].split(':'));
-t&&t.setup&&t.setup(r,true);}};var n={},o=[];return{title:d.lang.div.title,minWidth:400,minHeight:165,contents:[{id:'info',label:d.lang.common.generalTab,title:d.lang.common.generalTab,elements:[{type:'hbox',widths:['50%','50%'],children:[{id:'elementStyle',type:'select',style:'width: 100%;',label:d.lang.div.styleSelectLabel,'default':'',items:[[d.lang.common.notSet,'']],onChange:function(){m.call(this,['info:class','advanced:dir','advanced:style']);},setup:function(p){for(var q in n)n[q].checkElementRemovable(p,true)&&this.setValue(q);},commit:function(p){var q;if(q=this.getValue()){var r=n[q],s=p.getCustomData('elementStyle')||'';r.applyToObject(p);p.setCustomData('elementStyle',s+r._.definition.attributes.style);}}},{id:'class',type:'text',label:d.lang.common.cssClass,'default':''}]}]},{id:'advanced',label:d.lang.common.advancedTab,title:d.lang.common.advancedTab,elements:[{type:'vbox',padding:1,children:[{type:'hbox',widths:['50%','50%'],children:[{type:'text',id:'id',la
bel:d.lang.common.id,'default':''},{type:'text',id:'lang',label:d.lang.link.langCode,'default':''}]},{type:'hbox',children:[{type:'text',id:'style',style:'width: 100%;',label:d.lang.common.cssStyle,'default':'',commit:function(p){var q=this.getValue()+(p.getCustomData('elementStyle')||'');p.setAttribute('style',q);}}]},{type:'hbox',children:[{type:'text',id:'title',style:'width: 100%;',label:d.lang.common.advisoryTitle,'default':''}]},{type:'select',id:'dir',style:'width: 100%;',label:d.lang.common.langDir,'default':'',items:[[d.lang.common.notSet,''],[d.lang.common.langDirLtr,'ltr'],[d.lang.common.langDirRtl,'rtl']]}]}]}],onLoad:function(){i.call(this);var p=this,q=this.getContentElement('info','elementStyle');d.getStylesSet(function(r){var s;if(r)for(var t=0;t<r.length;t++){var u=r[t];if(u.element&&u.element=='div'){s=u.name;n[s]=new CKEDITOR.style(u);q.items.push([s,s]);q.add(s,s);}}q[q.items.length>1?'enable':'disable']();setTimeout(function(){q.setup(p._element);},0);})
;},onShow:function(){if(e=='editdiv'){var p=k(d);p&&this.setupContent(this._element=p);}},onOk:function(){if(e=='editdiv')o=[this._element];else o=j(d,true);var p=o.length;for(var q=0;q<p;q++){this.commitContent(o[q]);!o[q].getAttribute('style')&&o[q].removeAttribute('style');}this.hide();},onHide:function(){if(e=='editdiv')this._element.removeCustomData('elementStyle');delete this._element;}};};CKEDITOR.dialog.add('creatediv',function(d){return c(d,'creatediv');});CKEDITOR.dialog.add('editdiv',function(d){return c(d,'editdiv');
-});})();
+(function(){function p(a,k,o){if(!k.is||!k.getCustomData("block_processed"))k.is&&CKEDITOR.dom.element.setMarker(o,k,"block_processed",!0),a.push(k)}function n(a,k){function o(){this.foreach(function(d){if(/^(?!vbox|hbox)/.test(d.type)&&(d.setup||(d.setup=function(c){d.setValue(c.getAttribute(d.id)||"",1)}),!d.commit))d.commit=function(c){var a=this.getValue();"dir"==d.id&&c.getComputedStyle("direction")==a||(a?c.setAttribute(d.id,a):c.removeAttribute(d.id))}})}var n=function(){var d=CKEDITOR.tools.extend({},
+CKEDITOR.dtd.$blockLimit);a.config.div_wrapTable&&(delete d.td,delete d.th);return d}(),q=CKEDITOR.dtd.div,l={},m=[];return{title:a.lang.div.title,minWidth:400,minHeight:165,contents:[{id:"info",label:a.lang.common.generalTab,title:a.lang.common.generalTab,elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"elementStyle",type:"select",style:"width: 100%;",label:a.lang.div.styleSelectLabel,"default":"",items:[[a.lang.common.notSet,""]],onChange:function(){var d=["info:elementStyle","info:class",
+"advanced:dir","advanced:style"],c=this.getDialog(),h=c._element&&c._element.clone()||new CKEDITOR.dom.element("div",a.document);this.commit(h,!0);for(var d=[].concat(d),b=d.length,i,e=0;e<b;e++)(i=c.getContentElement.apply(c,d[e].split(":")))&&i.setup&&i.setup(h,!0)},setup:function(a){for(var c in l)l[c].checkElementRemovable(a,!0)&&this.setValue(c,1)},commit:function(a){var c;(c=this.getValue())?l[c].applyToObject(a):a.removeAttribute("style")}},{id:"class",type:"text",label:a.lang.common.cssClass,
+"default":""}]}]},{id:"advanced",label:a.lang.common.advancedTab,title:a.lang.common.advancedTab,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"id",label:a.lang.common.id,"default":""},{type:"text",id:"lang",label:a.lang.common.langCode,"default":""}]},{type:"hbox",children:[{type:"text",id:"style",style:"width: 100%;",label:a.lang.common.cssStyle,"default":"",commit:function(a){a.setAttribute("style",this.getValue())}}]},{type:"hbox",children:[{type:"text",
+id:"title",style:"width: 100%;",label:a.lang.common.advisoryTitle,"default":""}]},{type:"select",id:"dir",style:"width: 100%;",label:a.lang.common.langDir,"default":"",items:[[a.lang.common.notSet,""],[a.lang.common.langDirLtr,"ltr"],[a.lang.common.langDirRtl,"rtl"]]}]}]}],onLoad:function(){o.call(this);var d=this,c=this.getContentElement("info","elementStyle");a.getStylesSet(function(a){var b;if(a)for(var i=0;i<a.length;i++){var e=a[i];e.element&&"div"==e.element&&(b=e.name,l[b]=new CKEDITOR.style(e),
+c.items.push([b,b]),c.add(b,b))}c[1<c.items.length?"enable":"disable"]();setTimeout(function(){d._element&&c.setup(d._element)},0)})},onShow:function(){"editdiv"==k&&this.setupContent(this._element=CKEDITOR.plugins.div.getSurroundDiv(a))},onOk:function(){if("editdiv"==k)m=[this._element];else{var d=[],c={},h=[],b,i=a.getSelection(),e=i.getRanges(),l=i.createBookmarks(),g,j;for(g=0;g<e.length;g++)for(j=e[g].createIterator();b=j.getNextParagraph();)if(b.getName()in n){var f=b.getChildren();for(b=0;b<
+f.count();b++)p(h,f.getItem(b),c)}else{for(;!q[b.getName()]&&!b.equals(e[g].root);)b=b.getParent();p(h,b,c)}CKEDITOR.dom.element.clearAllMarkers(c);e=[];g=null;for(j=0;j<h.length;j++)b=h[j],f=a.elementPath(b).blockLimit,a.config.div_wrapTable&&f.is(["td","th"])&&(f=a.elementPath(f.getParent()).blockLimit),f.equals(g)||(g=f,e.push([])),e[e.length-1].push(b);for(g=0;g<e.length;g++){f=e[g][0];h=f.getParent();for(b=1;b<e[g].length;b++)h=h.getCommonAncestor(e[g][b]);j=new CKEDITOR.dom.element("div",a.document);
+for(b=0;b<e[g].length;b++){for(f=e[g][b];!f.getParent().equals(h);)f=f.getParent();e[g][b]=f}for(b=0;b<e[g].length;b++)if(f=e[g][b],!f.getCustomData||!f.getCustomData("block_processed"))f.is&&CKEDITOR.dom.element.setMarker(c,f,"block_processed",!0),b||j.insertBefore(f),j.append(f);CKEDITOR.dom.element.clearAllMarkers(c);d.push(j)}i.selectBookmarks(l);m=d}d=m.length;for(c=0;c<d;c++)this.commitContent(m[c]),!m[c].getAttribute("style")&&m[c].removeAttribute("style");this.hide()},onHide:function(){"editdiv"==
+k&&this._element.removeCustomData("elementStyle");delete this._element}}}CKEDITOR.dialog.add("creatediv",function(a){return n(a,"creatediv")});CKEDITOR.dialog.add("editdiv",function(a){return n(a,"editdiv")})})();
\ No newline at end of file
diff --git a/share/static/RichText/images/spacer.gif b/share/static/RichText/plugins/fakeobjects/images/spacer.gif
similarity index 100%
rename from share/static/RichText/images/spacer.gif
rename to share/static/RichText/plugins/fakeobjects/images/spacer.gif
diff --git a/share/static/RichText/plugins/find/dialogs/find.js b/share/static/RichText/plugins/find/dialogs/find.js
index ac4d573..3851d20 100644
--- a/share/static/RichText/plugins/find/dialogs/find.js
+++ b/share/static/RichText/plugins/find/dialogs/find.js
@@ -1,9 +1,24 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){var a;function b(i){return i.type==CKEDITOR.NODE_TEXT&&i.getLength()>0&&(!a||!i.isReadOnly());};function c(i){return!(i.type==CKEDITOR.NODE_ELEMENT&&i.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)));};var d=function(){var i=this;return{textNode:i.textNode,offset:i.offset,character:i.textNode?i.textNode.getText().charAt(i.offset):null,hitMatchBoundary:i._.matchBoundary};},e=['find','replace'],f=[['txtFindFind','txtFindReplace'],['txtFindCaseChk','txtReplaceCaseChk'],['txtFindWordChk','txtReplaceWordChk'],['txtFindCyclic','txtReplaceCyclic']];function g(i){var j,k,l,m;j=i==='find'?1:0;k=1-j;var n,o=f.length;for(n=0;n<o;n++){l=this.getContentElement(e[j],f[n][j]);m=this.getContentElement(e[k],f[n][k]);m.setValue(l.getValue());}};var h=function(i,j){var k=new CKEDITOR.style(CKEDITOR.tools.extend({fullMatch:true,childRule:function(){return false;}},i.config.find_highlight)),l=function(x,y){var z=new CKEDITOR.dom.walker(x);z.gu
ard=y?c:null;z.evaluator=b;z.breakOnFalse=true;this._={matchWord:y,walker:z,matchBoundary:false};};l.prototype={next:function(){return this.move();},back:function(){return this.move(true);},move:function(x){var z=this;var y=z.textNode;if(y===null)return d.call(z);z._.matchBoundary=false;if(y&&x&&z.offset>0){z.offset--;return d.call(z);}else if(y&&z.offset<y.getLength()-1){z.offset++;return d.call(z);}else{y=null;while(!y){y=z._.walker[x?'previous':'next'].call(z._.walker);if(z._.matchWord&&!y||z._.walker._.end)break;if(!y&&!c(z._.walker.current))z._.matchBoundary=true;}z.textNode=y;if(y)z.offset=x?y.getLength()-1:0;else z.offset=0;}return d.call(z);}};var m=function(x,y){this._={walker:x,cursors:[],rangeLength:y,highlightRange:null,isMatched:false};};m.prototype={toDomRange:function(){var x=new CKEDITOR.dom.range(i.document),y=this._.cursors;if(y.length<1){var z=this._.walker.textNode;if(z)x.setStartAfter(z);else return null;}else{var A=y[0],B=y[y.length-1];x.setStart(A.text
Node,A.offset);x.setEnd(B.textNode,B.offset+1);}return x;},updateFromDomRange:function(x){var A=this;var y,z=new l(x);A._.cursors=[];do{y=z.next();if(y.character)A._.cursors.push(y);}while(y.character)A._.rangeLength=A._.cursors.length;},setMatched:function(){this._.isMatched=true;},clearMatched:function(){this._.isMatched=false;},isMatched:function(){return this._.isMatched;},highlight:function(){var A=this;if(A._.cursors.length<1)return;if(A._.highlightRange)A.removeHighlight();var x=A.toDomRange(),y=x.createBookmark();
-k.applyToRange(x);x.moveToBookmark(y);A._.highlightRange=x;var z=x.startContainer;if(z.type!=CKEDITOR.NODE_ELEMENT)z=z.getParent();z.scrollIntoView();A.updateFromDomRange(x);},removeHighlight:function(){var y=this;if(!y._.highlightRange)return;var x=y._.highlightRange.createBookmark();k.removeFromRange(y._.highlightRange);y._.highlightRange.moveToBookmark(x);y.updateFromDomRange(y._.highlightRange);y._.highlightRange=null;},isReadOnly:function(){if(!this._.highlightRange)return 0;return this._.highlightRange.startContainer.isReadOnly();},moveBack:function(){var z=this;var x=z._.walker.back(),y=z._.cursors;if(x.hitMatchBoundary)z._.cursors=y=[];y.unshift(x);if(y.length>z._.rangeLength)y.pop();return x;},moveNext:function(){var z=this;var x=z._.walker.next(),y=z._.cursors;if(x.hitMatchBoundary)z._.cursors=y=[];y.push(x);if(y.length>z._.rangeLength)y.shift();return x;},getEndCharacter:function(){var x=this._.cursors;if(x.length<1)return null;return x[x.length-1].character;},get
NextCharacterRange:function(x){var y,z,A=this._.cursors;if((y=A[A.length-1])&&y.textNode)z=new l(n(y));else z=this._.walker;return new m(z,x);},getCursors:function(){return this._.cursors;}};function n(x,y){var z=new CKEDITOR.dom.range();z.setStart(x.textNode,y?x.offset:x.offset+1);z.setEndAt(i.document.getBody(),CKEDITOR.POSITION_BEFORE_END);return z;};function o(x){var y=new CKEDITOR.dom.range();y.setStartAt(i.document.getBody(),CKEDITOR.POSITION_AFTER_START);y.setEnd(x.textNode,x.offset);return y;};var p=0,q=1,r=2,s=function(x,y){var z=[-1];if(y)x=x.toLowerCase();for(var A=0;A<x.length;A++){z.push(z[A]+1);while(z[A+1]>0&&x.charAt(A)!=x.charAt(z[A+1]-1))z[A+1]=z[z[A+1]-1]+1;}this._={overlap:z,state:0,ignoreCase:!!y,pattern:x};};s.prototype={feedCharacter:function(x){var y=this;if(y._.ignoreCase)x=x.toLowerCase();for(;;){if(x==y._.pattern.charAt(y._.state)){y._.state++;if(y._.state==y._.pattern.length){y._.state=0;return r;}return q;}else if(!y._.state)return p;else y._.sta
te=y._.overlap[y._.state];}return null;},reset:function(){this._.state=0;}};var t=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,u=function(x){if(!x)return true;var y=x.charCodeAt(0);return y>=9&&y<=13||y>=8192&&y<=8202||t.test(x);},v={searchRange:null,matchRange:null,find:function(x,y,z,A,B,C){var L=this;if(!L.matchRange)L.matchRange=new m(new l(L.searchRange),x.length);else{L.matchRange.removeHighlight();L.matchRange=L.matchRange.getNextCharacterRange(x.length);}var D=new s(x,!y),E=p,F='%';while(F!==null){L.matchRange.moveNext();
-while(F=L.matchRange.getEndCharacter()){E=D.feedCharacter(F);if(E==r)break;if(L.matchRange.moveNext().hitMatchBoundary)D.reset();}if(E==r){if(z){var G=L.matchRange.getCursors(),H=G[G.length-1],I=G[0],J=new l(o(I),true),K=new l(n(H),true);if(!(u(J.back().character)&&u(K.next().character)))continue;}L.matchRange.setMatched();if(B!==false)L.matchRange.highlight();return true;}}L.matchRange.clearMatched();L.matchRange.removeHighlight();if(A&&!C){L.searchRange=w(true);L.matchRange=null;return arguments.callee.apply(L,Array.prototype.slice.call(arguments).concat([true]));}return false;},replaceCounter:0,replace:function(x,y,z,A,B,C,D){var I=this;a=1;var E=false;if(I.matchRange&&I.matchRange.isMatched()&&!I.matchRange._.isReplaced&&!I.matchRange.isReadOnly()){I.matchRange.removeHighlight();var F=I.matchRange.toDomRange(),G=i.document.createText(z);if(!D){var H=i.getSelection();H.selectRanges([F]);i.fire('saveSnapshot');}F.deleteContents();F.insertNode(G);if(!D){H.selectRanges([F]);
i.fire('saveSnapshot');}I.matchRange.updateFromDomRange(F);if(!D)I.matchRange.highlight();I.matchRange._.isReplaced=true;I.replaceCounter++;E=true;}else E=I.find(y,A,B,C,!D);a=0;return E;}};function w(x){var y,z=i.getSelection(),A=i.document.getBody();if(z&&!x){y=z.getRanges()[0].clone();y.collapse(true);}else{y=new CKEDITOR.dom.range();y.setStartAt(A,CKEDITOR.POSITION_AFTER_START);}y.setEndAt(A,CKEDITOR.POSITION_BEFORE_END);return y;};return{title:i.lang.findAndReplace.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:165,buttons:[CKEDITOR.dialog.cancelButton],contents:[{id:'find',label:i.lang.findAndReplace.find,title:i.lang.findAndReplace.find,accessKey:'',elements:[{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtFindFind',label:i.lang.findAndReplace.findWhat,isChanged:false,labelLayout:'horizontal',accessKey:'F'},{type:'button',align:'left',style:'width:100%',label:i.lang.findAndReplace.find,onClick:function(){var x=this.getDialog();if
(!v.find(x.getValueOf('find','txtFindFind'),x.getValueOf('find','txtFindCaseChk'),x.getValueOf('find','txtFindWordChk'),x.getValueOf('find','txtFindCyclic')))alert(i.lang.findAndReplace.notFoundMsg);}}]},{type:'vbox',padding:0,children:[{type:'checkbox',id:'txtFindCaseChk',isChanged:false,style:'margin-top:28px',label:i.lang.findAndReplace.matchCase},{type:'checkbox',id:'txtFindWordChk',isChanged:false,label:i.lang.findAndReplace.matchWord},{type:'checkbox',id:'txtFindCyclic',isChanged:false,'default':true,label:i.lang.findAndReplace.matchCyclic}]}]},{id:'replace',label:i.lang.findAndReplace.replace,accessKey:'M',elements:[{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtFindReplace',label:i.lang.findAndReplace.findWhat,isChanged:false,labelLayout:'horizontal',accessKey:'F'},{type:'button',align:'left',style:'width:100%',label:i.lang.findAndReplace.replace,onClick:function(){var x=this.getDialog();
-if(!v.replace(x,x.getValueOf('replace','txtFindReplace'),x.getValueOf('replace','txtReplace'),x.getValueOf('replace','txtReplaceCaseChk'),x.getValueOf('replace','txtReplaceWordChk'),x.getValueOf('replace','txtReplaceCyclic')))alert(i.lang.findAndReplace.notFoundMsg);}}]},{type:'hbox',widths:['230px','90px'],children:[{type:'text',id:'txtReplace',label:i.lang.findAndReplace.replaceWith,isChanged:false,labelLayout:'horizontal',accessKey:'R'},{type:'button',align:'left',style:'width:100%',label:i.lang.findAndReplace.replaceAll,isChanged:false,onClick:function(){var x=this.getDialog(),y;v.replaceCounter=0;v.searchRange=w(true);if(v.matchRange){v.matchRange.removeHighlight();v.matchRange=null;}i.fire('saveSnapshot');while(v.replace(x,x.getValueOf('replace','txtFindReplace'),x.getValueOf('replace','txtReplace'),x.getValueOf('replace','txtReplaceCaseChk'),x.getValueOf('replace','txtReplaceWordChk'),false,true)){}if(v.replaceCounter){alert(i.lang.findAndReplace.replaceSuccessMsg.rep
lace(/%1/,v.replaceCounter));i.fire('saveSnapshot');}else alert(i.lang.findAndReplace.notFoundMsg);}}]},{type:'vbox',padding:0,children:[{type:'checkbox',id:'txtReplaceCaseChk',isChanged:false,label:i.lang.findAndReplace.matchCase},{type:'checkbox',id:'txtReplaceWordChk',isChanged:false,label:i.lang.findAndReplace.matchWord},{type:'checkbox',id:'txtReplaceCyclic',isChanged:false,'default':true,label:i.lang.findAndReplace.matchCyclic}]}]}],onLoad:function(){var x=this,y,z,A=false;this.on('hide',function(){A=false;});this.on('show',function(){A=true;});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(B){return function(C){B.call(x,C);var D=x._.tabs[C],E,F,G;F=C==='find'?'txtFindFind':'txtFindReplace';G=C==='find'?'txtFindWordChk':'txtReplaceWordChk';y=x.getContentElement(C,F);z=x.getContentElement(C,G);if(!D.initialized){E=CKEDITOR.document.getById(y._.inputId);D.initialized=true;}if(A)g.call(this,C);};});},onShow:function(){v.searchRange=w();this.selectPage(j)
;},onHide:function(){var x;if(v.matchRange&&v.matchRange.isMatched()){v.matchRange.removeHighlight();i.focus();x=v.matchRange.toDomRange();if(x)i.getSelection().selectRanges([x]);}delete v.matchRange;},onFocus:function(){if(j=='replace')return this.getContentElement('replace','txtFindReplace');else return this.getContentElement('find','txtFindFind');}};};CKEDITOR.dialog.add('find',function(i){return h(i,'find');});CKEDITOR.dialog.add('replace',function(i){return h(i,'replace');});})();
+(function(){function y(c){return c.type==CKEDITOR.NODE_TEXT&&0<c.getLength()&&(!o||!c.isReadOnly())}function s(c){return!(c.type==CKEDITOR.NODE_ELEMENT&&c.isBlockBoundary(CKEDITOR.tools.extend({},CKEDITOR.dtd.$empty,CKEDITOR.dtd.$nonEditable)))}var o,t=function(){return{textNode:this.textNode,offset:this.offset,character:this.textNode?this.textNode.getText().charAt(this.offset):null,hitMatchBoundary:this._.matchBoundary}},u=["find","replace"],p=[["txtFindFind","txtFindReplace"],["txtFindCaseChk",
+"txtReplaceCaseChk"],["txtFindWordChk","txtReplaceWordChk"],["txtFindCyclic","txtReplaceCyclic"]],n=function(c,g){function n(a,b){var d=c.createRange();d.setStart(a.textNode,b?a.offset:a.offset+1);d.setEndAt(c.editable(),CKEDITOR.POSITION_BEFORE_END);return d}function q(a){var b=c.getSelection(),d=c.editable();b&&!a?(a=b.getRanges()[0].clone(),a.collapse(!0)):(a=c.createRange(),a.setStartAt(d,CKEDITOR.POSITION_AFTER_START));a.setEndAt(d,CKEDITOR.POSITION_BEFORE_END);return a}var v=new CKEDITOR.style(CKEDITOR.tools.extend({attributes:{"data-cke-highlight":1},
+fullMatch:1,ignoreReadonly:1,childRule:function(){return 0}},c.config.find_highlight,!0)),l=function(a,b){var d=this,c=new CKEDITOR.dom.walker(a);c.guard=b?s:function(a){!s(a)&&(d._.matchBoundary=!0)};c.evaluator=y;c.breakOnFalse=1;a.startContainer.type==CKEDITOR.NODE_TEXT&&(this.textNode=a.startContainer,this.offset=a.startOffset-1);this._={matchWord:b,walker:c,matchBoundary:!1}};l.prototype={next:function(){return this.move()},back:function(){return this.move(!0)},move:function(a){var b=this.textNode;
+if(null===b)return t.call(this);this._.matchBoundary=!1;if(b&&a&&0<this.offset)this.offset--;else if(b&&this.offset<b.getLength()-1)this.offset++;else{for(b=null;!b&&!(b=this._.walker[a?"previous":"next"].call(this._.walker),this._.matchWord&&!b||this._.walker._.end););this.offset=(this.textNode=b)?a?b.getLength()-1:0:0}return t.call(this)}};var r=function(a,b){this._={walker:a,cursors:[],rangeLength:b,highlightRange:null,isMatched:0}};r.prototype={toDomRange:function(){var a=c.createRange(),b=this._.cursors;
+if(1>b.length){var d=this._.walker.textNode;if(d)a.setStartAfter(d);else return null}else d=b[0],b=b[b.length-1],a.setStart(d.textNode,d.offset),a.setEnd(b.textNode,b.offset+1);return a},updateFromDomRange:function(a){var b=new l(a);this._.cursors=[];do a=b.next(),a.character&&this._.cursors.push(a);while(a.character);this._.rangeLength=this._.cursors.length},setMatched:function(){this._.isMatched=!0},clearMatched:function(){this._.isMatched=!1},isMatched:function(){return this._.isMatched},highlight:function(){if(!(1>
+this._.cursors.length)){this._.highlightRange&&this.removeHighlight();var a=this.toDomRange(),b=a.createBookmark();v.applyToRange(a);a.moveToBookmark(b);this._.highlightRange=a;b=a.startContainer;b.type!=CKEDITOR.NODE_ELEMENT&&(b=b.getParent());b.scrollIntoView();this.updateFromDomRange(a)}},removeHighlight:function(){if(this._.highlightRange){var a=this._.highlightRange.createBookmark();v.removeFromRange(this._.highlightRange);this._.highlightRange.moveToBookmark(a);this.updateFromDomRange(this._.highlightRange);
+this._.highlightRange=null}},isReadOnly:function(){return!this._.highlightRange?0:this._.highlightRange.startContainer.isReadOnly()},moveBack:function(){var a=this._.walker.back(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.unshift(a);b.length>this._.rangeLength&&b.pop();return a},moveNext:function(){var a=this._.walker.next(),b=this._.cursors;a.hitMatchBoundary&&(this._.cursors=b=[]);b.push(a);b.length>this._.rangeLength&&b.shift();return a},getEndCharacter:function(){var a=this._.cursors;
+return 1>a.length?null:a[a.length-1].character},getNextCharacterRange:function(a){var b,d;d=this._.cursors;d=(b=d[d.length-1])&&b.textNode?new l(n(b)):this._.walker;return new r(d,a)},getCursors:function(){return this._.cursors}};var w=function(a,b){var d=[-1];b&&(a=a.toLowerCase());for(var c=0;c<a.length;c++)for(d.push(d[c]+1);0<d[c+1]&&a.charAt(c)!=a.charAt(d[c+1]-1);)d[c+1]=d[d[c+1]-1]+1;this._={overlap:d,state:0,ignoreCase:!!b,pattern:a}};w.prototype={feedCharacter:function(a){for(this._.ignoreCase&&
+(a=a.toLowerCase());;){if(a==this._.pattern.charAt(this._.state))return this._.state++,this._.state==this._.pattern.length?(this._.state=0,2):1;if(this._.state)this._.state=this._.overlap[this._.state];else return 0}return null},reset:function(){this._.state=0}};var z=/[.,"'?!;: \u0085\u00a0\u1680\u280e\u2028\u2029\u202f\u205f\u3000]/,x=function(a){if(!a)return!0;var b=a.charCodeAt(0);return 9<=b&&13>=b||8192<=b&&8202>=b||z.test(a)},e={searchRange:null,matchRange:null,find:function(a,b,d,f,e,A){this.matchRange?
+(this.matchRange.removeHighlight(),this.matchRange=this.matchRange.getNextCharacterRange(a.length)):this.matchRange=new r(new l(this.searchRange),a.length);for(var i=new w(a,!b),j=0,k="%";null!==k;){for(this.matchRange.moveNext();k=this.matchRange.getEndCharacter();){j=i.feedCharacter(k);if(2==j)break;this.matchRange.moveNext().hitMatchBoundary&&i.reset()}if(2==j){if(d){var h=this.matchRange.getCursors(),m=h[h.length-1],h=h[0],g=c.createRange();g.setStartAt(c.editable(),CKEDITOR.POSITION_AFTER_START);
+g.setEnd(h.textNode,h.offset);h=g;m=n(m);h.trim();m.trim();h=new l(h,!0);m=new l(m,!0);if(!x(h.back().character)||!x(m.next().character))continue}this.matchRange.setMatched();!1!==e&&this.matchRange.highlight();return!0}}this.matchRange.clearMatched();this.matchRange.removeHighlight();return f&&!A?(this.searchRange=q(1),this.matchRange=null,arguments.callee.apply(this,Array.prototype.slice.call(arguments).concat([!0]))):!1},replaceCounter:0,replace:function(a,b,d,f,e,g,i){o=1;a=0;if(this.matchRange&&
+this.matchRange.isMatched()&&!this.matchRange._.isReplaced&&!this.matchRange.isReadOnly()){this.matchRange.removeHighlight();b=this.matchRange.toDomRange();d=c.document.createText(d);if(!i){var j=c.getSelection();j.selectRanges([b]);c.fire("saveSnapshot")}b.deleteContents();b.insertNode(d);i||(j.selectRanges([b]),c.fire("saveSnapshot"));this.matchRange.updateFromDomRange(b);i||this.matchRange.highlight();this.matchRange._.isReplaced=!0;this.replaceCounter++;a=1}else a=this.find(b,f,e,g,!i);o=0;return a}},
+f=c.lang.find;return{title:f.title,resizable:CKEDITOR.DIALOG_RESIZE_NONE,minWidth:350,minHeight:170,buttons:[CKEDITOR.dialog.cancelButton],contents:[{id:"find",label:f.find,title:f.find,accessKey:"",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindFind",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFind",align:"left",style:"width:100%",label:f.find,onClick:function(){var a=this.getDialog();e.find(a.getValueOf("find","txtFindFind"),
+a.getValueOf("find","txtFindCaseChk"),a.getValueOf("find","txtFindWordChk"),a.getValueOf("find","txtFindCyclic"))||alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),style:"margin-top:29px",children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtFindCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtFindWordChk",isChanged:!1,label:f.matchWord},{type:"checkbox",id:"txtFindCyclic",isChanged:!1,"default":!0,label:f.matchCyclic}]}]}]},{id:"replace",
+label:f.replace,accessKey:"M",elements:[{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtFindReplace",label:f.findWhat,isChanged:!1,labelLayout:"horizontal",accessKey:"F"},{type:"button",id:"btnFindReplace",align:"left",style:"width:100%",label:f.replace,onClick:function(){var a=this.getDialog();e.replace(a,a.getValueOf("replace","txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),a.getValueOf("replace",
+"txtReplaceCyclic"))||alert(f.notFoundMsg)}}]},{type:"hbox",widths:["230px","90px"],children:[{type:"text",id:"txtReplace",label:f.replaceWith,isChanged:!1,labelLayout:"horizontal",accessKey:"R"},{type:"button",id:"btnReplaceAll",align:"left",style:"width:100%",label:f.replaceAll,isChanged:!1,onClick:function(){var a=this.getDialog();e.replaceCounter=0;e.searchRange=q(1);e.matchRange&&(e.matchRange.removeHighlight(),e.matchRange=null);for(c.fire("saveSnapshot");e.replace(a,a.getValueOf("replace",
+"txtFindReplace"),a.getValueOf("replace","txtReplace"),a.getValueOf("replace","txtReplaceCaseChk"),a.getValueOf("replace","txtReplaceWordChk"),!1,!0););e.replaceCounter?(alert(f.replaceSuccessMsg.replace(/%1/,e.replaceCounter)),c.fire("saveSnapshot")):alert(f.notFoundMsg)}}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(f.findOptions),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"txtReplaceCaseChk",isChanged:!1,label:f.matchCase},{type:"checkbox",id:"txtReplaceWordChk",isChanged:!1,
+label:f.matchWord},{type:"checkbox",id:"txtReplaceCyclic",isChanged:!1,"default":!0,label:f.matchCyclic}]}]}]}],onLoad:function(){var a=this,b,c=0;this.on("hide",function(){c=0});this.on("show",function(){c=1});this.selectPage=CKEDITOR.tools.override(this.selectPage,function(f){return function(e){f.call(a,e);var g=a._.tabs[e],i;i="find"===e?"txtFindWordChk":"txtReplaceWordChk";b=a.getContentElement(e,"find"===e?"txtFindFind":"txtFindReplace");a.getContentElement(e,i);g.initialized||(CKEDITOR.document.getById(b._.inputId),
+g.initialized=!0);if(c){var j,e="find"===e?1:0,g=1-e,k,h=p.length;for(k=0;k<h;k++)i=this.getContentElement(u[e],p[k][e]),j=this.getContentElement(u[g],p[k][g]),j.setValue(i.getValue())}}})},onShow:function(){e.searchRange=q();var a=this.getParentEditor().getSelection().getSelectedText(),b=this.getContentElement(g,"find"==g?"txtFindFind":"txtFindReplace");b.setValue(a);b.select();this.selectPage(g);this[("find"==g&&this._.editor.readOnly?"hide":"show")+"Page"]("replace")},onHide:function(){var a;e.matchRange&&
+e.matchRange.isMatched()&&(e.matchRange.removeHighlight(),c.focus(),(a=e.matchRange.toDomRange())&&c.getSelection().selectRanges([a]));delete e.matchRange},onFocus:function(){return"replace"==g?this.getContentElement("replace","txtFindReplace"):this.getContentElement("find","txtFindFind")}}};CKEDITOR.dialog.add("find",function(c){return n(c,"find")});CKEDITOR.dialog.add("replace",function(c){return n(c,"replace")})})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/flash/dialogs/flash.js b/share/static/RichText/plugins/flash/dialogs/flash.js
index 61b8288..7066f25 100644
--- a/share/static/RichText/plugins/flash/dialogs/flash.js
+++ b/share/static/RichText/plugins/flash/dialogs/flash.js
@@ -1,9 +1,23 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){var a=1,b=2,c=4,d={id:[{type:a,name:'id'}],classid:[{type:a,name:'classid'}],codebase:[{type:a,name:'codebase'}],pluginspage:[{type:c,name:'pluginspage'}],src:[{type:b,name:'movie'},{type:c,name:'src'}],name:[{type:c,name:'name'}],align:[{type:a,name:'align'}],title:[{type:a,name:'title'},{type:c,name:'title'}],'class':[{type:a,name:'class'},{type:c,name:'class'}],width:[{type:a,name:'width'},{type:c,name:'width'}],height:[{type:a,name:'height'},{type:c,name:'height'}],hSpace:[{type:a,name:'hSpace'},{type:c,name:'hSpace'}],vSpace:[{type:a,name:'vSpace'},{type:c,name:'vSpace'}],style:[{type:a,name:'style'},{type:c,name:'style'}],type:[{type:c,name:'type'}]},e=['play','loop','menu','quality','scale','salign','wmode','bgcolor','base','flashvars','allowScriptAccess','allowFullScreen'];for(var f=0;f<e.length;f++)d[e[f]]=[{type:c,name:e[f]},{type:b,name:e[f]}];e=['allowFullScreen','play','loop','menu'];for(f=0;f<e.length;f++)d[e[f]][0]['default']=d[e[f]][1]['default']=
true;function g(i,j,k){var q=this;var l=d[q.id];if(!l)return;var m=q instanceof CKEDITOR.ui.dialog.checkbox;for(var n=0;n<l.length;n++){var o=l[n];switch(o.type){case a:if(!i)continue;if(i.getAttribute(o.name)!==null){var p=i.getAttribute(o.name);if(m)q.setValue(p.toLowerCase()=='true');else q.setValue(p);return;}else if(m)q.setValue(!!o['default']);break;case b:if(!i)continue;if(o.name in k){p=k[o.name];if(m)q.setValue(p.toLowerCase()=='true');else q.setValue(p);return;}else if(m)q.setValue(!!o['default']);break;case c:if(!j)continue;if(j.getAttribute(o.name)){p=j.getAttribute(o.name);if(m)q.setValue(p.toLowerCase()=='true');else q.setValue(p);return;}else if(m)q.setValue(!!o['default']);}}};function h(i,j,k){var s=this;var l=d[s.id];if(!l)return;var m=s.getValue()==='',n=s instanceof CKEDITOR.ui.dialog.checkbox;for(var o=0;o<l.length;o++){var p=l[o];switch(p.type){case a:if(!i)continue;var q=s.getValue();if(m||n&&q===p['default'])i.removeAttribute(p.name);else i.setAttribu
te(p.name,q);break;case b:if(!i)continue;q=s.getValue();if(m||n&&q===p['default']){if(p.name in k)k[p.name].remove();}else if(p.name in k)k[p.name].setAttribute('value',q);else{var r=CKEDITOR.dom.element.createFromHtml('<cke:param></cke:param>',i.getDocument());r.setAttributes({name:p.name,value:q});if(i.getChildCount()<1)r.appendTo(i);else r.insertBefore(i.getFirst());}break;case c:if(!j)continue;q=s.getValue();if(m||n&&q===p['default'])j.removeAttribute(p.name);else j.setAttribute(p.name,q);}}};CKEDITOR.dialog.add('flash',function(i){var j=!i.config.flashEmbedTagOnly,k=i.config.flashAddEmbedTag||i.config.flashEmbedTagOnly,l,m='<div>'+CKEDITOR.tools.htmlEncode(i.lang.common.preview)+'<br>'+'<div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div>'+'<div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';
-return{title:i.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){var z=this;z.fakeImage=z.objectNode=z.embedNode=null;l=new CKEDITOR.dom.element('embed',i.document);var n=z.getSelectedElement();if(n&&n.getAttribute('_cke_real_element_type')&&n.getAttribute('_cke_real_element_type')=='flash'){z.fakeImage=n;var o=i.restoreRealElement(n),p=null,q=null,r={};if(o.getName()=='cke:object'){p=o;var s=p.getElementsByTag('embed','cke');if(s.count()>0)q=s.getItem(0);var t=p.getElementsByTag('param','cke');for(var u=0,v=t.count();u<v;u++){var w=t.getItem(u),x=w.getAttribute('name'),y=w.getAttribute('value');r[x]=y;}}else if(o.getName()=='cke:embed')q=o;z.objectNode=p;z.embedNode=q;z.setupContent(p,q,r,n);}},onOk:function(){var x=this;var n=null,o=null,p=null;if(!x.fakeImage){if(j){n=CKEDITOR.dom.element.createFromHtml('<cke:object></cke:object>',i.document);var q={classid:'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',codebase:'http://download.macromedia.com/pub/shockwave/cabs
/flash/swflash.cab#version=6,0,40,0'};n.setAttributes(q);}if(k){o=CKEDITOR.dom.element.createFromHtml('<cke:embed></cke:embed>',i.document);o.setAttributes({type:'application/x-shockwave-flash',pluginspage:'http://www.macromedia.com/go/getflashplayer'});if(n)o.appendTo(n);}}else{n=x.objectNode;o=x.embedNode;}if(n){p={};var r=n.getElementsByTag('param','cke');for(var s=0,t=r.count();s<t;s++)p[r.getItem(s).getAttribute('name')]=r.getItem(s);}var u={},v={};x.commitContent(n,o,p,u,v);var w=i.createFakeElement(n||o,'cke_flash','flash',true);w.setAttributes(v);w.setStyles(u);if(x.fakeImage){w.replace(x.fakeImage);i.getSelection().selectElement(w);}else i.insertElement(w);},onHide:function(){if(this.preview)this.preview.setHtml('');},contents:[{id:'info',label:i.lang.common.generalTab,accessKey:'I',elements:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['280px','110px'],align:'right',children:[{id:'src',type:'text',label:i.lang.common.url,required:true,validate:CKEDITOR.dia
log.validate.notEmpty(i.lang.flash.validateSrc),setup:g,commit:h,onLoad:function(){var n=this.getDialog(),o=function(p){l.setAttribute('src',p);n.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(l.getAttribute('src'))+'" type="application/x-shockwave-flash"></embed>');};n.preview=n.getContentElement('info','preview').getElement().getChild(3);this.on('change',function(p){if(p.data&&p.data.value)o(p.data.value);});this.getInputElement().on('change',function(p){o(this.getValue());},this);
-}},{type:'button',id:'browse',filebrowser:'info:src',hidden:true,style:'display:inline-block;margin-top:10px;',label:i.lang.common.browseServer}]}]},{type:'hbox',widths:['25%','25%','25%','25%','25%'],children:[{type:'text',id:'width',style:'width:95px',label:i.lang.flash.width,validate:CKEDITOR.dialog.validate.integer(i.lang.flash.validateWidth),setup:function(n,o,p,q){g.apply(this,arguments);if(q){var r=parseInt(q.$.style.width,10);if(!isNaN(r))this.setValue(r);}},commit:function(n,o,p,q){h.apply(this,arguments);if(this.getValue())q.width=this.getValue()+'px';}},{type:'text',id:'height',style:'width:95px',label:i.lang.flash.height,validate:CKEDITOR.dialog.validate.integer(i.lang.flash.validateHeight),setup:function(n,o,p,q){g.apply(this,arguments);if(q){var r=parseInt(q.$.style.height,10);if(!isNaN(r))this.setValue(r);}},commit:function(n,o,p,q){h.apply(this,arguments);if(this.getValue())q.height=this.getValue()+'px';}},{type:'text',id:'hSpace',style:'width:95px',label:i.l
ang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(i.lang.flash.validateHSpace),setup:g,commit:h},{type:'text',id:'vSpace',style:'width:95px',label:i.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(i.lang.flash.validateVSpace),setup:g,commit:h}]},{type:'vbox',children:[{type:'html',id:'preview',style:'width:95%;',html:m}]}]},{id:'Upload',hidden:true,filebrowser:'uploadButton',label:i.lang.common.upload,elements:[{type:'file',id:'upload',label:i.lang.common.upload,size:38},{type:'fileButton',id:'uploadButton',label:i.lang.common.uploadSubmit,filebrowser:'info:src','for':['Upload','upload']}]},{id:'properties',label:i.lang.flash.propertiesTab,elements:[{type:'hbox',widths:['50%','50%'],children:[{id:'scale',type:'select',label:i.lang.flash.scale,'default':'',style:'width : 100%;',items:[[i.lang.common.notSet,''],[i.lang.flash.scaleAll,'showall'],[i.lang.flash.scaleNoBorder,'noborder'],[i.lang.flash.scaleFit,'exactfit']],setup:g,commit:h},{id:'allowScriptAcc
ess',type:'select',label:i.lang.flash.access,'default':'',style:'width : 100%;',items:[[i.lang.common.notSet,''],[i.lang.flash.accessAlways,'always'],[i.lang.flash.accessSameDomain,'samedomain'],[i.lang.flash.accessNever,'never']],setup:g,commit:h}]},{type:'hbox',widths:['50%','50%'],children:[{id:'wmode',type:'select',label:i.lang.flash.windowMode,'default':'',style:'width : 100%;',items:[[i.lang.common.notSet,''],[i.lang.flash.windowModeWindow,'window'],[i.lang.flash.windowModeOpaque,'opaque'],[i.lang.flash.windowModeTransparent,'transparent']],setup:g,commit:h},{id:'quality',type:'select',label:i.lang.flash.quality,'default':'high',style:'width : 100%;',items:[[i.lang.common.notSet,''],[i.lang.flash.qualityBest,'best'],[i.lang.flash.qualityHigh,'high'],[i.lang.flash.qualityAutoHigh,'autohigh'],[i.lang.flash.qualityMedium,'medium'],[i.lang.flash.qualityAutoLow,'autolow'],[i.lang.flash.qualityLow,'low']],setup:g,commit:h}]},{type:'hbox',widths:['50%','50%'],children:[{id:'a
lign',type:'select',label:i.lang.flash.align,'default':'',style:'width : 100%;',items:[[i.lang.common.notSet,''],[i.lang.flash.alignLeft,'left'],[i.lang.flash.alignAbsBottom,'absBottom'],[i.lang.flash.alignAbsMiddle,'absMiddle'],[i.lang.flash.alignBaseline,'baseline'],[i.lang.flash.alignBottom,'bottom'],[i.lang.flash.alignMiddle,'middle'],[i.lang.flash.alignRight,'right'],[i.lang.flash.alignTextTop,'textTop'],[i.lang.flash.alignTop,'top']],setup:g,commit:function(n,o,p,q,r){var s=this.getValue();
-h.apply(this,arguments);s&&(r.align=s);}},{type:'html',html:'<div></div>'}]},{type:'fieldset',label:CKEDITOR.tools.htmlEncode(i.lang.flash.flashvars),children:[{type:'vbox',padding:0,children:[{type:'checkbox',id:'menu',label:i.lang.flash.chkMenu,'default':true,setup:g,commit:h},{type:'checkbox',id:'play',label:i.lang.flash.chkPlay,'default':true,setup:g,commit:h},{type:'checkbox',id:'loop',label:i.lang.flash.chkLoop,'default':true,setup:g,commit:h},{type:'checkbox',id:'allowFullScreen',label:i.lang.flash.chkFull,'default':true,setup:g,commit:h}]}]}]},{id:'advanced',label:i.lang.common.advancedTab,elements:[{type:'hbox',widths:['45%','55%'],children:[{type:'text',id:'id',label:i.lang.common.id,setup:g,commit:h},{type:'text',id:'title',label:i.lang.common.advisoryTitle,setup:g,commit:h}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',id:'bgcolor',label:i.lang.flash.bgcolor,setup:g,commit:h},{type:'text',id:'class',label:i.lang.common.cssClass,setup:g,commit:h}]},{t
ype:'text',id:'style',label:i.lang.common.cssStyle,setup:g,commit:h}]}]};});})();
+(function(){function b(a,b,c){var k=n[this.id];if(k)for(var f=this instanceof CKEDITOR.ui.dialog.checkbox,e=0;e<k.length;e++){var d=k[e];switch(d.type){case g:if(!a)continue;if(null!==a.getAttribute(d.name)){a=a.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case o:if(!a)continue;if(d.name in c){a=c[d.name];f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"]);break;case i:if(!b)continue;
+if(b.getAttribute(d.name)){a=b.getAttribute(d.name);f?this.setValue("true"==a.toLowerCase()):this.setValue(a);return}f&&this.setValue(!!d["default"])}}}function c(a,b,c){var k=n[this.id];if(k)for(var f=""===this.getValue(),e=this instanceof CKEDITOR.ui.dialog.checkbox,d=0;d<k.length;d++){var h=k[d];switch(h.type){case g:if(!a||"data"==h.name&&b&&!a.hasAttribute("data"))continue;var l=this.getValue();f||e&&l===h["default"]?a.removeAttribute(h.name):a.setAttribute(h.name,l);break;case o:if(!a)continue;
+l=this.getValue();if(f||e&&l===h["default"])h.name in c&&c[h.name].remove();else if(h.name in c)c[h.name].setAttribute("value",l);else{var p=CKEDITOR.dom.element.createFromHtml("<cke:param></cke:param>",a.getDocument());p.setAttributes({name:h.name,value:l});1>a.getChildCount()?p.appendTo(a):p.insertBefore(a.getFirst())}break;case i:if(!b)continue;l=this.getValue();f||e&&l===h["default"]?b.removeAttribute(h.name):b.setAttribute(h.name,l)}}}for(var g=1,o=2,i=4,n={id:[{type:g,name:"id"}],classid:[{type:g,
+name:"classid"}],codebase:[{type:g,name:"codebase"}],pluginspage:[{type:i,name:"pluginspage"}],src:[{type:o,name:"movie"},{type:i,name:"src"},{type:g,name:"data"}],name:[{type:i,name:"name"}],align:[{type:g,name:"align"}],"class":[{type:g,name:"class"},{type:i,name:"class"}],width:[{type:g,name:"width"},{type:i,name:"width"}],height:[{type:g,name:"height"},{type:i,name:"height"}],hSpace:[{type:g,name:"hSpace"},{type:i,name:"hSpace"}],vSpace:[{type:g,name:"vSpace"},{type:i,name:"vSpace"}],style:[{type:g,
+name:"style"},{type:i,name:"style"}],type:[{type:i,name:"type"}]},m="play loop menu quality scale salign wmode bgcolor base flashvars allowScriptAccess allowFullScreen".split(" "),j=0;j<m.length;j++)n[m[j]]=[{type:i,name:m[j]},{type:o,name:m[j]}];m=["allowFullScreen","play","loop","menu"];for(j=0;j<m.length;j++)n[m[j]][0]["default"]=n[m[j]][1]["default"]=!0;CKEDITOR.dialog.add("flash",function(a){var g=!a.config.flashEmbedTagOnly,i=a.config.flashAddEmbedTag||a.config.flashEmbedTagOnly,k,f="<div>"+
+CKEDITOR.tools.htmlEncode(a.lang.common.preview)+'<br><div id="cke_FlashPreviewLoader'+CKEDITOR.tools.getNextNumber()+'" style="display:none"><div class="loading"> </div></div><div id="cke_FlashPreviewBox'+CKEDITOR.tools.getNextNumber()+'" class="FlashPreviewBox"></div></div>';return{title:a.lang.flash.title,minWidth:420,minHeight:310,onShow:function(){this.fakeImage=this.objectNode=this.embedNode=null;k=new CKEDITOR.dom.element("embed",a.document);var e=this.getSelectedElement();if(e&&e.data("cke-real-element-type")&&
+"flash"==e.data("cke-real-element-type")){this.fakeImage=e;var d=a.restoreRealElement(e),h=null,b=null,c={};if("cke:object"==d.getName()){h=d;d=h.getElementsByTag("embed","cke");0<d.count()&&(b=d.getItem(0));for(var d=h.getElementsByTag("param","cke"),g=0,i=d.count();g<i;g++){var f=d.getItem(g),j=f.getAttribute("name"),f=f.getAttribute("value");c[j]=f}}else"cke:embed"==d.getName()&&(b=d);this.objectNode=h;this.embedNode=b;this.setupContent(h,b,c,e)}},onOk:function(){var e=null,d=null,b=null;if(this.fakeImage)e=
+this.objectNode,d=this.embedNode;else if(g&&(e=CKEDITOR.dom.element.createFromHtml("<cke:object></cke:object>",a.document),e.setAttributes({classid:"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",codebase:"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"})),i)d=CKEDITOR.dom.element.createFromHtml("<cke:embed></cke:embed>",a.document),d.setAttributes({type:"application/x-shockwave-flash",pluginspage:"http://www.macromedia.com/go/getflashplayer"}),e&&d.appendTo(e);
+if(e)for(var b={},c=e.getElementsByTag("param","cke"),f=0,j=c.count();f<j;f++)b[c.getItem(f).getAttribute("name")]=c.getItem(f);c={};f={};this.commitContent(e,d,b,c,f);e=a.createFakeElement(e||d,"cke_flash","flash",!0);e.setAttributes(f);e.setStyles(c);this.fakeImage?(e.replace(this.fakeImage),a.getSelection().selectElement(e)):a.insertElement(e)},onHide:function(){this.preview&&this.preview.setHtml("")},contents:[{id:"info",label:a.lang.common.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,
+children:[{type:"hbox",widths:["280px","110px"],align:"right",children:[{id:"src",type:"text",label:a.lang.common.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(a.lang.flash.validateSrc),setup:b,commit:c,onLoad:function(){var a=this.getDialog(),b=function(b){k.setAttribute("src",b);a.preview.setHtml('<embed height="100%" width="100%" src="'+CKEDITOR.tools.htmlEncode(k.getAttribute("src"))+'" type="application/x-shockwave-flash"></embed>')};a.preview=a.getContentElement("info","preview").getElement().getChild(3);
+this.on("change",function(a){a.data&&a.data.value&&b(a.data.value)});this.getInputElement().on("change",function(){b(this.getValue())},this)}},{type:"button",id:"browse",filebrowser:"info:src",hidden:!0,style:"display:inline-block;margin-top:10px;",label:a.lang.common.browseServer}]}]},{type:"hbox",widths:["25%","25%","25%","25%","25%"],children:[{type:"text",id:"width",style:"width:95px",label:a.lang.common.width,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",
+a.lang.common.width)),setup:b,commit:c},{type:"text",id:"height",style:"width:95px",label:a.lang.common.height,validate:CKEDITOR.dialog.validate.htmlLength(a.lang.common.invalidHtmlLength.replace("%1",a.lang.common.height)),setup:b,commit:c},{type:"text",id:"hSpace",style:"width:95px",label:a.lang.flash.hSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateHSpace),setup:b,commit:c},{type:"text",id:"vSpace",style:"width:95px",label:a.lang.flash.vSpace,validate:CKEDITOR.dialog.validate.integer(a.lang.flash.validateVSpace),
+setup:b,commit:c}]},{type:"vbox",children:[{type:"html",id:"preview",style:"width:95%;",html:f}]}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:a.lang.common.upload,elements:[{type:"file",id:"upload",label:a.lang.common.upload,size:38},{type:"fileButton",id:"uploadButton",label:a.lang.common.uploadSubmit,filebrowser:"info:src","for":["Upload","upload"]}]},{id:"properties",label:a.lang.flash.propertiesTab,elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"scale",type:"select",label:a.lang.flash.scale,
+"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.scaleAll,"showall"],[a.lang.flash.scaleNoBorder,"noborder"],[a.lang.flash.scaleFit,"exactfit"]],setup:b,commit:c},{id:"allowScriptAccess",type:"select",label:a.lang.flash.access,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.accessAlways,"always"],[a.lang.flash.accessSameDomain,"samedomain"],[a.lang.flash.accessNever,"never"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"wmode",
+type:"select",label:a.lang.flash.windowMode,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.windowModeWindow,"window"],[a.lang.flash.windowModeOpaque,"opaque"],[a.lang.flash.windowModeTransparent,"transparent"]],setup:b,commit:c},{id:"quality",type:"select",label:a.lang.flash.quality,"default":"high",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.flash.qualityBest,"best"],[a.lang.flash.qualityHigh,"high"],[a.lang.flash.qualityAutoHigh,"autohigh"],
+[a.lang.flash.qualityMedium,"medium"],[a.lang.flash.qualityAutoLow,"autolow"],[a.lang.flash.qualityLow,"low"]],setup:b,commit:c}]},{type:"hbox",widths:["50%","50%"],children:[{id:"align",type:"select",label:a.lang.common.align,"default":"",style:"width : 100%;",items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.flash.alignAbsBottom,"absBottom"],[a.lang.flash.alignAbsMiddle,"absMiddle"],[a.lang.flash.alignBaseline,"baseline"],[a.lang.common.alignBottom,"bottom"],[a.lang.common.alignMiddle,
+"middle"],[a.lang.common.alignRight,"right"],[a.lang.flash.alignTextTop,"textTop"],[a.lang.common.alignTop,"top"]],setup:b,commit:function(a,b,f,g,i){var j=this.getValue();c.apply(this,arguments);j&&(i.align=j)}},{type:"html",html:"<div></div>"}]},{type:"fieldset",label:CKEDITOR.tools.htmlEncode(a.lang.flash.flashvars),children:[{type:"vbox",padding:0,children:[{type:"checkbox",id:"menu",label:a.lang.flash.chkMenu,"default":!0,setup:b,commit:c},{type:"checkbox",id:"play",label:a.lang.flash.chkPlay,
+"default":!0,setup:b,commit:c},{type:"checkbox",id:"loop",label:a.lang.flash.chkLoop,"default":!0,setup:b,commit:c},{type:"checkbox",id:"allowFullScreen",label:a.lang.flash.chkFull,"default":!0,setup:b,commit:c}]}]}]},{id:"advanced",label:a.lang.common.advancedTab,elements:[{type:"hbox",children:[{type:"text",id:"id",label:a.lang.common.id,setup:b,commit:c}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",id:"bgcolor",label:a.lang.flash.bgcolor,setup:b,commit:c},{type:"text",id:"class",
+label:a.lang.common.cssClass,setup:b,commit:c}]},{type:"text",id:"style",validate:CKEDITOR.dialog.validate.inlineStyle(a.lang.common.invalidInlineStyle),label:a.lang.common.cssStyle,setup:b,commit:c}]}]}})})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/button.js b/share/static/RichText/plugins/forms/dialogs/button.js
index 6fb73d1..f4c6465 100644
--- a/share/static/RichText/plugins/forms/dialogs/button.js
+++ b/share/static/RichText/plugins/forms/dialogs/button.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('button',function(a){return{title:a.lang.button.title,minWidth:350,minHeight:150,onShow:function(){var d=this;delete d.button;var b=d.getParentEditor().getSelection().getSelectedElement();if(b&&b.getName()=='input'){var c=b.getAttribute('type');if(c=='button'||c=='reset'||c=='submit'){d.button=b;d.setupContent(b);}}},onOk:function(){var b,c=this.button,d=!c;if(d){b=this.getParentEditor();c=b.document.createElement('input');}if(d)b.insertElement(c);this.commitContent({element:c});},contents:[{id:'info',label:a.lang.button.title,title:a.lang.button.title,elements:[{id:'_cke_saved_name',type:'text',label:a.lang.common.name,'default':'',setup:function(b){this.setValue(b.getAttribute('_cke_saved_name')||b.getAttribute('name')||'');},commit:function(b){var c=b.element;if(this.getValue())c.setAttribute('_cke_saved_name',this.getValue());else{c.removeAttribute('_cke_saved_name');c.removeAttribute('name');}}},{id:'value',type:'text',label:a.lang.button.text,access
Key:'V','default':'',setup:function(b){this.setValue(b.getAttribute('value')||'');},commit:function(b){var c=b.element;if(this.getValue())c.setAttribute('value',this.getValue());else c.removeAttribute('value');}},{id:'type',type:'select',label:a.lang.button.type,'default':'button',accessKey:'T',items:[[a.lang.button.typeBtn,'button'],[a.lang.button.typeSbm,'submit'],[a.lang.button.typeRst,'reset']],setup:function(b){this.setValue(b.getAttribute('type')||'');},commit:function(b){var c=b.element;if(CKEDITOR.env.ie){var d=c.getAttribute('type'),e=this.getValue();if(e!=d){var f=CKEDITOR.dom.element.createFromHtml('<input type="'+e+'"></input>',a.document);c.copyAttributes(f,{type:1});f.replace(c);a.getSelection().selectElement(f);b.element=f;}}else c.setAttribute('type',this.getValue());}}]}]};});
+CKEDITOR.dialog.add("button",function(b){function d(a){var b=this.getValue();b?(a.attributes[this.id]=b,"name"==this.id&&(a.attributes["data-cke-saved-name"]=b)):(delete a.attributes[this.id],"name"==this.id&&delete a.attributes["data-cke-saved-name"])}return{title:b.lang.forms.button.title,minWidth:350,minHeight:150,onShow:function(){delete this.button;var a=this.getParentEditor().getSelection().getSelectedElement();a&&a.is("input")&&a.getAttribute("type")in{button:1,reset:1,submit:1}&&(this.button=
+a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.button,d=!b,c=b?CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]:new CKEDITOR.htmlParser.element("input");this.commitContent(c);var e=new CKEDITOR.htmlParser.basicWriter;c.writeHtml(e);c=CKEDITOR.dom.element.createFromHtml(e.getHtml(),a.document);d?a.insertElement(c):(c.replace(b),a.getSelection().selectElement(c))},contents:[{id:"info",label:b.lang.forms.button.title,title:b.lang.forms.button.title,elements:[{id:"name",
+type:"text",label:b.lang.common.name,"default":"",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:d},{id:"value",type:"text",label:b.lang.forms.button.text,accessKey:"V","default":"",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:d},{id:"type",type:"select",label:b.lang.forms.button.type,"default":"button",accessKey:"T",items:[[b.lang.forms.button.typeBtn,"button"],[b.lang.forms.button.typeSbm,"submit"],[b.lang.forms.button.typeRst,
+"reset"]],setup:function(a){this.setValue(a.getAttribute("type")||"")},commit:d}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/checkbox.js b/share/static/RichText/plugins/forms/dialogs/checkbox.js
index 5370cae..40ea00a 100644
--- a/share/static/RichText/plugins/forms/dialogs/checkbox.js
+++ b/share/static/RichText/plugins/forms/dialogs/checkbox.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('checkbox',function(a){return{title:a.lang.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){var c=this;delete c.checkbox;var b=c.getParentEditor().getSelection().getSelectedElement();if(b&&b.getAttribute('type')=='checkbox'){c.checkbox=b;c.setupContent(b);}},onOk:function(){var b,c=this.checkbox,d=!c;if(d){b=this.getParentEditor();c=b.document.createElement('input');c.setAttribute('type','checkbox');}if(d)b.insertElement(c);this.commitContent({element:c});},contents:[{id:'info',label:a.lang.checkboxAndRadio.checkboxTitle,title:a.lang.checkboxAndRadio.checkboxTitle,startupFocus:'txtName',elements:[{id:'txtName',type:'text',label:a.lang.common.name,'default':'',accessKey:'N',setup:function(b){this.setValue(b.getAttribute('_cke_saved_name')||b.getAttribute('name')||'');},commit:function(b){var c=b.element;if(this.getValue())c.setAttribute('_cke_saved_name',this.getValue());else{c.removeAttribute('_cke_saved_name');c.removeAttribute
('name');}}},{id:'txtValue',type:'text',label:a.lang.checkboxAndRadio.value,'default':'',accessKey:'V',setup:function(b){var c=b.getAttribute('value');this.setValue(CKEDITOR.env.ie&&c=='on'?'':c);},commit:function(b){var c=b.element,d=this.getValue();if(d&&!(CKEDITOR.env.ie&&d=='on'))c.setAttribute('value',d);else if(CKEDITOR.env.ie){var e=new CKEDITOR.dom.element('input',c.getDocument());c.copyAttributes(e,{value:1});e.replace(c);a.getSelection().selectElement(e);b.element=e;}else c.removeAttribute('value');}},{id:'cmbSelected',type:'checkbox',label:a.lang.checkboxAndRadio.selected,'default':'',accessKey:'S',value:'checked',setup:function(b){this.setValue(b.getAttribute('checked'));},commit:function(b){var c=b.element;if(CKEDITOR.env.ie){var d=!!c.getAttribute('checked'),e=!!this.getValue();if(d!=e){var f=CKEDITOR.dom.element.createFromHtml('<input type="checkbox"'+(e?' checked="checked"':'')+'/>',a.document);c.copyAttributes(f,{type:1,checked:1});f.replace(c);a.getSelectio
n().selectElement(f);b.element=f;}}else{var g=this.getValue();if(g)c.setAttribute('checked','checked');else c.removeAttribute('checked');}}}]}]};});
+CKEDITOR.dialog.add("checkbox",function(d){return{title:d.lang.forms.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){delete this.checkbox;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"checkbox"==a.getAttribute("type")&&(this.checkbox=a,this.setupContent(a))},onOk:function(){var a,b=this.checkbox;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","checkbox"),a.insertElement(b));this.commitContent({element:b})},contents:[{id:"info",
+label:d.lang.forms.checkboxAndRadio.checkboxTitle,title:d.lang.forms.checkboxAndRadio.checkboxTitle,startupFocus:"txtName",elements:[{id:"txtName",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",label:d.lang.forms.checkboxAndRadio.value,
+"default":"",accessKey:"V",setup:function(a){a=a.getAttribute("value");this.setValue(CKEDITOR.env.ie&&"on"==a?"":a)},commit:function(a){var b=a.element,c=this.getValue();c&&!(CKEDITOR.env.ie&&"on"==c)?b.setAttribute("value",c):CKEDITOR.env.ie?(c=new CKEDITOR.dom.element("input",b.getDocument()),b.copyAttributes(c,{value:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c):b.removeAttribute("value")}},{id:"cmbSelected",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",
+accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=!!b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="checkbox"'+(e?' checked="checked"':"")+"/>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/form.js b/share/static/RichText/plugins/forms/dialogs/form.js
index e0b42fa..4a8e710 100644
--- a/share/static/RichText/plugins/forms/dialogs/form.js
+++ b/share/static/RichText/plugins/forms/dialogs/form.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('form',function(a){var b={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.form.title,minWidth:350,minHeight:200,onShow:function(){var e=this;delete e.form;var c=e.getParentEditor().getSelection().getStartElement(),d=c&&c.getAscendant('form',true);if(d){e.form=d;e.setupContent(d);}},onOk:function(){var c,d=this.form,e=!d;if(e){c=this.getParentEditor();d=c.document.createElement('form');d.append(c.document.createElement('br'));}if(e)c.insertElement(d);this.commitContent(d);},onLoad:function(){function c(e){this.setValue(e.getAttribute(this.id)||'');};function d(e){var f=this;if(f.getValue())e.setAttribute(f.id,f.getValue());else e.removeAttribute(f.id);};this.foreach(function(e){if(b[e.id]){e.setup=c;e.commit=d;}});},contents:[{id:'info',label:a.lang.form.title,title:a.lang.form.title,elements:[{id:'txtName',type:'text',label:a.lang.common.name,'default':'',accessKey:'N',setup:function(c){this.setValue(c.getAttribute('_cke_saved_name')||c.get
Attribute('name')||'');},commit:function(c){if(this.getValue())c.setAttribute('_cke_saved_name',this.getValue());else{c.removeAttribute('_cke_saved_name');c.removeAttribute('name');}}},{id:'action',type:'text',label:a.lang.form.action,'default':'',accessKey:'T'},{type:'hbox',widths:['45%','55%'],children:[{id:'id',type:'text',label:a.lang.common.id,'default':'',accessKey:'I'},{id:'enctype',type:'select',label:a.lang.form.encoding,style:'width:100%',accessKey:'E','default':'',items:[[''],['text/plain'],['multipart/form-data'],['application/x-www-form-urlencoded']]}]},{type:'hbox',widths:['45%','55%'],children:[{id:'target',type:'select',label:a.lang.common.target,style:'width:100%',accessKey:'M','default':'',items:[[a.lang.common.notSet,''],[a.lang.common.targetNew,'_blank'],[a.lang.common.targetTop,'_top'],[a.lang.common.targetSelf,'_self'],[a.lang.common.targetParent,'_parent']]},{id:'method',type:'select',label:a.lang.form.method,accessKey:'M','default':'GET',items:[['GET'
,'get'],['POST','post']]}]}]}]};});
+CKEDITOR.dialog.add("form",function(a){var d={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.forms.form.title,minWidth:350,minHeight:200,onShow:function(){delete this.form;var b=this.getParentEditor().elementPath().contains("form",1);b&&(this.form=b,this.setupContent(b))},onOk:function(){var b,a=this.form,c=!a;c&&(b=this.getParentEditor(),a=b.document.createElement("form"),!CKEDITOR.env.ie&&a.append(b.document.createElement("br")));c&&b.insertElement(a);this.commitContent(a)},onLoad:function(){function a(b){this.setValue(b.getAttribute(this.id)||
+"")}function e(a){this.getValue()?a.setAttribute(this.id,this.getValue()):a.removeAttribute(this.id)}this.foreach(function(c){d[c.id]&&(c.setup=a,c.commit=e)})},contents:[{id:"info",label:a.lang.forms.form.title,title:a.lang.forms.form.title,elements:[{id:"txtName",type:"text",label:a.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",
+!1),a.removeAttribute("name"))}},{id:"action",type:"text",label:a.lang.forms.form.action,"default":"",accessKey:"T"},{type:"hbox",widths:["45%","55%"],children:[{id:"id",type:"text",label:a.lang.common.id,"default":"",accessKey:"I"},{id:"enctype",type:"select",label:a.lang.forms.form.encoding,style:"width:100%",accessKey:"E","default":"",items:[[""],["text/plain"],["multipart/form-data"],["application/x-www-form-urlencoded"]]}]},{type:"hbox",widths:["45%","55%"],children:[{id:"target",type:"select",
+label:a.lang.common.target,style:"width:100%",accessKey:"M","default":"",items:[[a.lang.common.notSet,""],[a.lang.common.targetNew,"_blank"],[a.lang.common.targetTop,"_top"],[a.lang.common.targetSelf,"_self"],[a.lang.common.targetParent,"_parent"]]},{id:"method",type:"select",label:a.lang.forms.form.method,accessKey:"M","default":"GET",items:[["GET","get"],["POST","post"]]}]}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/hiddenfield.js b/share/static/RichText/plugins/forms/dialogs/hiddenfield.js
index d75c13c..52485a6 100644
--- a/share/static/RichText/plugins/forms/dialogs/hiddenfield.js
+++ b/share/static/RichText/plugins/forms/dialogs/hiddenfield.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('hiddenfield',function(a){return{title:a.lang.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){var e=this;delete e.hiddenField;var b=e.getParentEditor(),c=b.getSelection(),d=c.getSelectedElement();if(d&&d.getAttribute('_cke_real_element_type')&&d.getAttribute('_cke_real_element_type')=='hiddenfield'){e.hiddenField=d;d=b.restoreRealElement(e.hiddenField);e.setupContent(d);c.selectElement(e.hiddenField);}},onOk:function(){var g=this;var b=g.getValueOf('info','_cke_saved_name'),c=g.getValueOf('info','value'),d=g.getParentEditor(),e=CKEDITOR.env.ie?d.document.createElement('<input name="'+CKEDITOR.tools.htmlEncode(b)+'">'):d.document.createElement('input');e.setAttribute('type','hidden');g.commitContent(e);var f=d.createFakeElement(e,'cke_hidden','hiddenfield');if(!g.hiddenField)d.insertElement(f);else{f.replace(g.hiddenField);d.getSelection().selectElement(f);}return true;},contents:[{id:'info',label:a.lang.hidden.title,title:a.lang
.hidden.title,elements:[{id:'_cke_saved_name',type:'text',label:a.lang.hidden.name,'default':'',accessKey:'N',setup:function(b){this.setValue(b.getAttribute('_cke_saved_name')||b.getAttribute('name')||'');},commit:function(b){if(this.getValue())b.setAttribute('name',this.getValue());else b.removeAttribute('name');}},{id:'value',type:'text',label:a.lang.hidden.value,'default':'',accessKey:'V',setup:function(b){this.setValue(b.getAttribute('value')||'');},commit:function(b){if(this.getValue())b.setAttribute('value',this.getValue());else b.removeAttribute('value');}}]}]};});
+CKEDITOR.dialog.add("hiddenfield",function(d){return{title:d.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){delete this.hiddenField;var a=this.getParentEditor(),b=a.getSelection(),c=b.getSelectedElement();c&&(c.data("cke-real-element-type")&&"hiddenfield"==c.data("cke-real-element-type"))&&(this.hiddenField=c,c=a.restoreRealElement(this.hiddenField),this.setupContent(c),b.selectElement(this.hiddenField))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name");
+this.getValueOf("info","value");var b=this.getParentEditor(),a=CKEDITOR.env.ie&&!(8<=CKEDITOR.document.$.documentMode)?b.document.createElement('<input name="'+CKEDITOR.tools.htmlEncode(a)+'">'):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title,
+elements:[{id:"_cke_saved_name",type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()):
+a.removeAttribute("value")}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/radio.js b/share/static/RichText/plugins/forms/dialogs/radio.js
index 9bfcacc..947da83 100644
--- a/share/static/RichText/plugins/forms/dialogs/radio.js
+++ b/share/static/RichText/plugins/forms/dialogs/radio.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('radio',function(a){return{title:a.lang.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){var c=this;delete c.radioButton;var b=c.getParentEditor().getSelection().getSelectedElement();if(b&&b.getName()=='input'&&b.getAttribute('type')=='radio'){c.radioButton=b;c.setupContent(b);}},onOk:function(){var b,c=this.radioButton,d=!c;if(d){b=this.getParentEditor();c=b.document.createElement('input');c.setAttribute('type','radio');}if(d)b.insertElement(c);this.commitContent({element:c});},contents:[{id:'info',label:a.lang.checkboxAndRadio.radioTitle,title:a.lang.checkboxAndRadio.radioTitle,elements:[{id:'name',type:'text',label:a.lang.common.name,'default':'',accessKey:'N',setup:function(b){this.setValue(b.getAttribute('_cke_saved_name')||b.getAttribute('name')||'');},commit:function(b){var c=b.element;if(this.getValue())c.setAttribute('_cke_saved_name',this.getValue());else{c.removeAttribute('_cke_saved_name');c.removeAttribute('name');}}},
{id:'value',type:'text',label:a.lang.checkboxAndRadio.value,'default':'',accessKey:'V',setup:function(b){this.setValue(b.getAttribute('value')||'');},commit:function(b){var c=b.element;if(this.getValue())c.setAttribute('value',this.getValue());else c.removeAttribute('value');}},{id:'checked',type:'checkbox',label:a.lang.checkboxAndRadio.selected,'default':'',accessKey:'S',value:'checked',setup:function(b){this.setValue(b.getAttribute('checked'));},commit:function(b){var c=b.element;if(!CKEDITOR.env.ie){if(this.getValue())c.setAttribute('checked','checked');else c.removeAttribute('checked');}else{var d=c.getAttribute('checked'),e=!!this.getValue();if(d!=e){var f=CKEDITOR.dom.element.createFromHtml('<input type="radio"'+(e?' checked="checked"':'')+'></input>',a.document);c.copyAttributes(f,{type:1,checked:1});f.replace(c);a.getSelection().selectElement(f);b.element=f;}}}}]}]};});
+CKEDITOR.dialog.add("radio",function(d){return{title:d.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&("input"==a.getName()&&"radio"==a.getAttribute("type"))&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"));c&&a.insertElement(b);this.commitContent({element:b})},
+contents:[{id:"info",label:d.lang.forms.checkboxAndRadio.radioTitle,title:d.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:d.lang.forms.checkboxAndRadio.value,"default":"",
+accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(!CKEDITOR.env.ie&&!CKEDITOR.env.opera)this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked");
+else{var c=b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('<input type="radio"'+(e?' checked="checked"':"")+"></input>",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/select.js b/share/static/RichText/plugins/forms/dialogs/select.js
index 8a6f774..e5e2a38 100644
--- a/share/static/RichText/plugins/forms/dialogs/select.js
+++ b/share/static/RichText/plugins/forms/dialogs/select.js
@@ -1,9 +1,20 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('select',function(a){function b(k,l,m,n,o){k=j(k);var p;if(n)p=n.createElement('OPTION');else p=document.createElement('OPTION');if(k&&p&&p.getName()=='option'){if(CKEDITOR.env.ie){if(!isNaN(parseInt(o,10)))k.$.options.add(p.$,o);else k.$.options.add(p.$);p.$.innerHTML=l.length>0?l:'';p.$.value=m;}else{if(o!==null&&o<k.getChildCount())k.getChild(o<0?0:o).insertBeforeMe(p);else k.append(p);p.setText(l.length>0?l:'');p.setValue(m);}}else return false;return p;};function c(k){k=j(k);var l=g(k);for(var m=k.getChildren().count()-1;m>=0;m--){if(k.getChild(m).$.selected)k.getChild(m).remove();}h(k,l);};function d(k,l,m,n){k=j(k);if(l<0)return false;var o=k.getChild(l);o.setText(m);o.setValue(n);return o;};function e(k){k=j(k);while(k.getChild(0)&&k.getChild(0).remove()){}};function f(k,l,m){k=j(k);var n=g(k);if(n<0)return false;var o=n+l;o=o<0?0:o;o=o>=k.getChildCount()?k.getChildCount()-1:o;if(n==o)return false;var p=k.getChild(n),q=p.getText(),r=p.getValue();p
.remove();p=b(k,q,r,!m?null:m,o);h(k,o);return p;};function g(k){k=j(k);return k?k.$.selectedIndex:-1;};function h(k,l){k=j(k);if(l<0)return null;var m=k.getChildren().count();k.$.selectedIndex=l>=m?m-1:l;return k;};function i(k){k=j(k);return k?k.getChildren():false;};function j(k){if(k&&k.domId&&k.getInputElement().$)return k.getInputElement();else if(k&&k.$)return k;return false;};return{title:a.lang.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){var n=this;delete n.selectBox;n.setupContent('clear');var k=n.getParentEditor().getSelection().getSelectedElement();if(k&&k.getName()=='select'){n.selectBox=k;n.setupContent(k.getName(),k);var l=i(k);for(var m=0;m<l.count();m++)n.setupContent('option',l.getItem(m));}},onOk:function(){var k=this.getParentEditor(),l=this.selectBox,m=!l;if(m)l=k.document.createElement('select');this.commitContent(l);if(m){k.insertElement(l);if(CKEDITOR.env.ie){var n=k.getSelection(),o=n.createBookma
rks();setTimeout(function(){n.selectBookmarks(o);},0);}}},contents:[{id:'info',label:a.lang.select.selectInfo,title:a.lang.select.selectInfo,accessKey:'',elements:[{id:'txtName',type:'text',widths:['25%','75%'],labelLayout:'horizontal',label:a.lang.common.name,'default':'',accessKey:'N',align:'center',style:'width:350px',setup:function(k,l){if(k=='clear')this.setValue(this['default']||'');else if(k=='select')this.setValue(l.getAttribute('_cke_saved_name')||l.getAttribute('name')||'');},commit:function(k){if(this.getValue())k.setAttribute('_cke_saved_name',this.getValue());
-else{k.removeAttribute('_cke_saved_name');k.removeAttribute('name');}}},{id:'txtValue',type:'text',widths:['25%','75%'],labelLayout:'horizontal',label:a.lang.select.value,style:'width:350px','default':'',className:'cke_disabled',onLoad:function(){this.getInputElement().setAttribute('readOnly',true);},setup:function(k,l){if(k=='clear')this.setValue('');else if(k=='option'&&l.getAttribute('selected'))this.setValue(l.$.value);}},{type:'hbox',widths:['175px','170px'],align:'center',children:[{id:'txtSize',type:'text',align:'center',labelLayout:'horizontal',label:a.lang.select.size,'default':'',accessKey:'S',style:'width:175px',validate:function(){var k=CKEDITOR.dialog.validate.integer(a.lang.common.validateNumberFailed);return this.getValue()===''||k.apply(this);},setup:function(k,l){if(k=='select')this.setValue(l.getAttribute('size')||'');if(CKEDITOR.env.webkit)this.getInputElement().setStyle('width','86px');},commit:function(k){if(this.getValue())k.setAttribute('size',this.get
Value());else k.removeAttribute('size');}},{type:'html',html:'<span>'+CKEDITOR.tools.htmlEncode(a.lang.select.lines)+'</span>'}]},{type:'html',html:'<span>'+CKEDITOR.tools.htmlEncode(a.lang.select.opAvail)+'</span>'},{type:'hbox',widths:['115px','115px','100px'],align:'top',children:[{type:'vbox',children:[{id:'txtOptName',type:'text',label:a.lang.select.opText,style:'width:115px',setup:function(k,l){if(k=='clear')this.setValue('');}},{type:'select',id:'cmbName',label:'',title:'',size:5,style:'width:115px;height:75px',items:[],onChange:function(){var k=this.getDialog(),l=k.getContentElement('info','cmbValue'),m=k.getContentElement('info','txtOptName'),n=k.getContentElement('info','txtOptValue'),o=g(this);h(l,o);m.setValue(this.getValue());n.setValue(l.getValue());},setup:function(k,l){if(k=='clear')e(this);else if(k=='option')b(this,l.getText(),l.getText(),this.getDialog().getParentEditor().document);},commit:function(k){var l=this.getDialog(),m=i(this),n=i(l.getContentEleme
nt('info','cmbValue')),o=l.getContentElement('info','txtValue').getValue();e(k);for(var p=0;p<m.count();p++){var q=b(k,m.getItem(p).getValue(),n.getItem(p).getValue(),l.getParentEditor().document);if(n.getItem(p).getValue()==o){q.setAttribute('selected','selected');q.selected=true;}}}}]},{type:'vbox',children:[{id:'txtOptValue',type:'text',label:a.lang.select.opValue,style:'width:115px',setup:function(k,l){if(k=='clear')this.setValue('');}},{type:'select',id:'cmbValue',label:'',size:5,style:'width:115px;height:75px',items:[],onChange:function(){var k=this.getDialog(),l=k.getContentElement('info','cmbName'),m=k.getContentElement('info','txtOptName'),n=k.getContentElement('info','txtOptValue'),o=g(this);
-h(l,o);m.setValue(l.getValue());n.setValue(this.getValue());},setup:function(k,l){var n=this;if(k=='clear')e(n);else if(k=='option'){var m=l.getValue();b(n,m,m,n.getDialog().getParentEditor().document);if(l.getAttribute('selected')=='selected')n.getDialog().getContentElement('info','txtValue').setValue(m);}}}]},{type:'vbox',padding:5,children:[{type:'button',style:'',label:a.lang.select.btnAdd,title:a.lang.select.btnAdd,style:'width:100%;',onClick:function(){var k=this.getDialog(),l=k.getParentEditor(),m=k.getContentElement('info','txtOptName'),n=k.getContentElement('info','txtOptValue'),o=k.getContentElement('info','cmbName'),p=k.getContentElement('info','cmbValue');b(o,m.getValue(),m.getValue(),k.getParentEditor().document);b(p,n.getValue(),n.getValue(),k.getParentEditor().document);m.setValue('');n.setValue('');}},{type:'button',label:a.lang.select.btnModify,title:a.lang.select.btnModify,style:'width:100%;',onClick:function(){var k=this.getDialog(),l=k.getContentElement('
info','txtOptName'),m=k.getContentElement('info','txtOptValue'),n=k.getContentElement('info','cmbName'),o=k.getContentElement('info','cmbValue'),p=g(n);if(p>=0){d(n,p,l.getValue(),l.getValue());d(o,p,m.getValue(),m.getValue());}}},{type:'button',style:'width:100%;',label:a.lang.select.btnUp,title:a.lang.select.btnUp,onClick:function(){var k=this.getDialog(),l=k.getContentElement('info','cmbName'),m=k.getContentElement('info','cmbValue');f(l,-1,k.getParentEditor().document);f(m,-1,k.getParentEditor().document);}},{type:'button',style:'width:100%;',label:a.lang.select.btnDown,title:a.lang.select.btnDown,onClick:function(){var k=this.getDialog(),l=k.getContentElement('info','cmbName'),m=k.getContentElement('info','cmbValue');f(l,1,k.getParentEditor().document);f(m,1,k.getParentEditor().document);}}]}]},{type:'hbox',widths:['40%','20%','40%'],children:[{type:'button',label:a.lang.select.btnSetValue,title:a.lang.select.btnSetValue,onClick:function(){var k=this.getDialog(),l=k.get
ContentElement('info','cmbValue'),m=k.getContentElement('info','txtValue');m.setValue(l.getValue());}},{type:'button',label:a.lang.select.btnDelete,title:a.lang.select.btnDelete,onClick:function(){var k=this.getDialog(),l=k.getContentElement('info','cmbName'),m=k.getContentElement('info','cmbValue'),n=k.getContentElement('info','txtOptName'),o=k.getContentElement('info','txtOptValue');c(l);c(m);n.setValue('');o.setValue('');}},{id:'chkMulti',type:'checkbox',label:a.lang.select.chkMulti,'default':'',accessKey:'M',value:'checked',setup:function(k,l){if(k=='select')this.setValue(l.getAttribute('multiple'));
-if(CKEDITOR.env.webkit)this.getElement().getParent().setStyle('vertical-align','middle');},commit:function(k){if(this.getValue())k.setAttribute('multiple',this.getValue());else k.removeAttribute('multiple');}}]}]}]};});
+CKEDITOR.dialog.add("select",function(c){function h(a,b,e,d,c){a=f(a);d=d?d.createElement("OPTION"):document.createElement("OPTION");if(a&&d&&"option"==d.getName())CKEDITOR.env.ie?(isNaN(parseInt(c,10))?a.$.options.add(d.$):a.$.options.add(d.$,c),d.$.innerHTML=0<b.length?b:"",d.$.value=e):(null!==c&&c<a.getChildCount()?a.getChild(0>c?0:c).insertBeforeMe(d):a.append(d),d.setText(0<b.length?b:""),d.setValue(e));else return!1;return d}function m(a){for(var a=f(a),b=g(a),e=a.getChildren().count()-1;0<=
+e;e--)a.getChild(e).$.selected&&a.getChild(e).remove();i(a,b)}function n(a,b,e,d){a=f(a);if(0>b)return!1;a=a.getChild(b);a.setText(e);a.setValue(d);return a}function k(a){for(a=f(a);a.getChild(0)&&a.getChild(0).remove(););}function j(a,b,e){var a=f(a),d=g(a);if(0>d)return!1;b=d+b;b=0>b?0:b;b=b>=a.getChildCount()?a.getChildCount()-1:b;if(d==b)return!1;var d=a.getChild(d),c=d.getText(),o=d.getValue();d.remove();d=h(a,c,o,!e?null:e,b);i(a,b);return d}function g(a){return(a=f(a))?a.$.selectedIndex:-1}
+function i(a,b){a=f(a);if(0>b)return null;var e=a.getChildren().count();a.$.selectedIndex=b>=e?e-1:b;return a}function l(a){return(a=f(a))?a.getChildren():!1}function f(a){return a&&a.domId&&a.getInputElement().$?a.getInputElement():a&&a.$?a:!1}return{title:c.lang.forms.select.title,minWidth:CKEDITOR.env.ie?460:395,minHeight:CKEDITOR.env.ie?320:300,onShow:function(){delete this.selectBox;this.setupContent("clear");var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"select"==a.getName()){this.selectBox=
+a;this.setupContent(a.getName(),a);for(var a=l(a),b=0;b<a.count();b++)this.setupContent("option",a.getItem(b))}},onOk:function(){var a=this.getParentEditor(),b=this.selectBox,e=!b;e&&(b=a.document.createElement("select"));this.commitContent(b);if(e&&(a.insertElement(b),CKEDITOR.env.ie)){var d=a.getSelection(),c=d.createBookmarks();setTimeout(function(){d.selectBookmarks(c)},0)}},contents:[{id:"info",label:c.lang.forms.select.selectInfo,title:c.lang.forms.select.selectInfo,accessKey:"",elements:[{id:"txtName",
+type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.common.name,"default":"",accessKey:"N",style:"width:350px",setup:function(a,b){"clear"==a?this.setValue(this["default"]||""):"select"==a&&this.setValue(b.data("cke-saved-name")||b.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",widths:["25%","75%"],labelLayout:"horizontal",label:c.lang.forms.select.value,
+style:"width:350px","default":"",className:"cke_disabled",onLoad:function(){this.getInputElement().setAttribute("readOnly",!0)},setup:function(a,b){"clear"==a?this.setValue(""):"option"==a&&b.getAttribute("selected")&&this.setValue(b.$.value)}},{type:"hbox",widths:["175px","170px"],children:[{id:"txtSize",type:"text",labelLayout:"horizontal",label:c.lang.forms.select.size,"default":"",accessKey:"S",style:"width:175px",validate:function(){var a=CKEDITOR.dialog.validate.integer(c.lang.common.validateNumberFailed);
+return""===this.getValue()||a.apply(this)},setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("size")||"");CKEDITOR.env.webkit&&this.getInputElement().setStyle("width","86px")},commit:function(a){this.getValue()?a.setAttribute("size",this.getValue()):a.removeAttribute("size")}},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.lines)+"</span>"}]},{type:"html",html:"<span>"+CKEDITOR.tools.htmlEncode(c.lang.forms.select.opAvail)+"</span>"},{type:"hbox",widths:["115px",
+"115px","100px"],children:[{type:"vbox",children:[{id:"txtOptName",type:"text",label:c.lang.forms.select.opText,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbName",label:"",title:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(this.getValue());a.setValue(b.getValue())},
+setup:function(a,b){"clear"==a?k(this):"option"==a&&h(this,b.getText(),b.getText(),this.getDialog().getParentEditor().document)},commit:function(a){var b=this.getDialog(),e=l(this),d=l(b.getContentElement("info","cmbValue")),c=b.getContentElement("info","txtValue").getValue();k(a);for(var f=0;f<e.count();f++){var g=h(a,e.getItem(f).getValue(),d.getItem(f).getValue(),b.getParentEditor().document);d.getItem(f).getValue()==c&&(g.setAttribute("selected","selected"),g.selected=!0)}}}]},{type:"vbox",children:[{id:"txtOptValue",
+type:"text",label:c.lang.forms.select.opValue,style:"width:115px",setup:function(a){"clear"==a&&this.setValue("")}},{type:"select",id:"cmbValue",label:"",size:5,style:"width:115px;height:75px",items:[],onChange:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),e=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue"),d=g(this);i(b,d);e.setValue(b.getValue());a.setValue(this.getValue())},setup:function(a,b){if("clear"==a)k(this);else if("option"==
+a){var e=b.getValue();h(this,e,e,this.getDialog().getParentEditor().document);"selected"==b.getAttribute("selected")&&this.getDialog().getContentElement("info","txtValue").setValue(e)}}}]},{type:"vbox",padding:5,children:[{type:"button",id:"btnAdd",style:"",label:c.lang.forms.select.btnAdd,title:c.lang.forms.select.btnAdd,style:"width:100%;",onClick:function(){var a=this.getDialog();a.getParentEditor();var b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info",
+"cmbName"),c=a.getContentElement("info","cmbValue");h(d,b.getValue(),b.getValue(),a.getParentEditor().document);h(c,e.getValue(),e.getValue(),a.getParentEditor().document);b.setValue("");e.setValue("")}},{type:"button",id:"btnModify",label:c.lang.forms.select.btnModify,title:c.lang.forms.select.btnModify,style:"width:100%;",onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","txtOptName"),e=a.getContentElement("info","txtOptValue"),d=a.getContentElement("info","cmbName"),a=a.getContentElement("info",
+"cmbValue"),c=g(d);0<=c&&(n(d,c,b.getValue(),b.getValue()),n(a,c,e.getValue(),e.getValue()))}},{type:"button",id:"btnUp",style:"width:100%;",label:c.lang.forms.select.btnUp,title:c.lang.forms.select.btnUp,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,-1,a.getParentEditor().document);j(c,-1,a.getParentEditor().document)}},{type:"button",id:"btnDown",style:"width:100%;",label:c.lang.forms.select.btnDown,title:c.lang.forms.select.btnDown,
+onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue");j(b,1,a.getParentEditor().document);j(c,1,a.getParentEditor().document)}}]}]},{type:"hbox",widths:["40%","20%","40%"],children:[{type:"button",id:"btnSetValue",label:c.lang.forms.select.btnSetValue,title:c.lang.forms.select.btnSetValue,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbValue");a.getContentElement("info","txtValue").setValue(b.getValue())}},
+{type:"button",id:"btnDelete",label:c.lang.forms.select.btnDelete,title:c.lang.forms.select.btnDelete,onClick:function(){var a=this.getDialog(),b=a.getContentElement("info","cmbName"),c=a.getContentElement("info","cmbValue"),d=a.getContentElement("info","txtOptName"),a=a.getContentElement("info","txtOptValue");m(b);m(c);d.setValue("");a.setValue("")}},{id:"chkMulti",type:"checkbox",label:c.lang.forms.select.chkMulti,"default":"",accessKey:"M",value:"checked",setup:function(a,b){"select"==a&&this.setValue(b.getAttribute("multiple"));
+CKEDITOR.env.webkit&&this.getElement().getParent().setStyle("vertical-align","middle")},commit:function(a){this.getValue()?a.setAttribute("multiple",this.getValue()):a.removeAttribute("multiple")}}]}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/textarea.js b/share/static/RichText/plugins/forms/dialogs/textarea.js
index 1c85c5f..a7b50d7 100644
--- a/share/static/RichText/plugins/forms/dialogs/textarea.js
+++ b/share/static/RichText/plugins/forms/dialogs/textarea.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('textarea',function(a){return{title:a.lang.textarea.title,minWidth:350,minHeight:150,onShow:function(){var c=this;delete c.textarea;var b=c.getParentEditor().getSelection().getSelectedElement();if(b&&b.getName()=='textarea'){c.textarea=b;c.setupContent(b);}},onOk:function(){var b,c=this.textarea,d=!c;if(d){b=this.getParentEditor();c=b.document.createElement('textarea');}this.commitContent(c);if(d)b.insertElement(c);},contents:[{id:'info',label:a.lang.textarea.title,title:a.lang.textarea.title,elements:[{id:'_cke_saved_name',type:'text',label:a.lang.common.name,'default':'',accessKey:'N',setup:function(b){this.setValue(b.getAttribute('_cke_saved_name')||b.getAttribute('name')||'');},commit:function(b){if(this.getValue())b.setAttribute('_cke_saved_name',this.getValue());else{b.removeAttribute('_cke_saved_name');b.removeAttribute('name');}}},{id:'cols',type:'text',label:a.lang.textarea.cols,'default':'',accessKey:'C',style:'width:50px',validate:CKEDITOR.dial
og.validate.integer(a.lang.common.validateNumberFailed),setup:function(b){var c=b.hasAttribute('cols')&&b.getAttribute('cols');this.setValue(c||'');},commit:function(b){if(this.getValue())b.setAttribute('cols',this.getValue());else b.removeAttribute('cols');}},{id:'rows',type:'text',label:a.lang.textarea.rows,'default':'',accessKey:'R',style:'width:50px',validate:CKEDITOR.dialog.validate.integer(a.lang.common.validateNumberFailed),setup:function(b){var c=b.hasAttribute('rows')&&b.getAttribute('rows');this.setValue(c||'');},commit:function(b){if(this.getValue())b.setAttribute('rows',this.getValue());else b.removeAttribute('rows');}}]}]};});
+CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title,
+elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),
+setup:function(a){this.setValue(a.hasAttribute("cols")&&a.getAttribute("cols")||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){this.setValue(a.hasAttribute("rows")&&a.getAttribute("rows")||"")},commit:function(a){this.getValue()?a.setAttribute("rows",
+this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/forms/dialogs/textfield.js b/share/static/RichText/plugins/forms/dialogs/textfield.js
index 0755349..263bc19 100644
--- a/share/static/RichText/plugins/forms/dialogs/textfield.js
+++ b/share/static/RichText/plugins/forms/dialogs/textfield.js
@@ -1,7 +1,10 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('textfield',function(a){var b={value:1,size:1,maxLength:1},c={text:1,password:1};return{title:a.lang.textfield.title,minWidth:350,minHeight:150,onShow:function(){var e=this;delete e.textField;var d=e.getParentEditor().getSelection().getSelectedElement();if(d&&d.getName()=='input'&&(c[d.getAttribute('type')]||!d.getAttribute('type'))){e.textField=d;e.setupContent(d);}},onOk:function(){var d,e=this.textField,f=!e;if(f){d=this.getParentEditor();e=d.document.createElement('input');e.setAttribute('type','text');}if(f)d.insertElement(e);this.commitContent({element:e});},onLoad:function(){var d=function(f){var g=f.hasAttribute(this.id)&&f.getAttribute(this.id);this.setValue(g||'');},e=function(f){var g=f.element,h=this.getValue();if(h)g.setAttribute(this.id,h);else g.removeAttribute(this.id);};this.foreach(function(f){if(b[f.id]){f.setup=d;f.commit=e;}});},contents:[{id:'info',label:a.lang.textfield.title,title:a.lang.textfield.title,elements:[{type:'hbox',width
s:['50%','50%'],children:[{id:'_cke_saved_name',type:'text',label:a.lang.textfield.name,'default':'',accessKey:'N',setup:function(d){this.setValue(d.getAttribute('_cke_saved_name')||d.getAttribute('name')||'');},commit:function(d){var e=d.element;if(this.getValue())e.setAttribute('_cke_saved_name',this.getValue());else{e.removeAttribute('_cke_saved_name');e.removeAttribute('name');}}},{id:'value',type:'text',label:a.lang.textfield.value,'default':'',accessKey:'V'}]},{type:'hbox',widths:['50%','50%'],children:[{id:'size',type:'text',label:a.lang.textfield.charWidth,'default':'',accessKey:'C',style:'width:50px',validate:CKEDITOR.dialog.validate.integer(a.lang.common.validateNumberFailed)},{id:'maxLength',type:'text',label:a.lang.textfield.maxChars,'default':'',accessKey:'M',style:'width:50px',validate:CKEDITOR.dialog.validate.integer(a.lang.common.validateNumberFailed)}],onLoad:function(){if(CKEDITOR.env.ie7Compat)this.getElement().setStyle('zoom','100%');}},{id:'type',type:'s
elect',label:a.lang.textfield.type,'default':'text',accessKey:'M',items:[[a.lang.textfield.typeText,'text'],[a.lang.textfield.typePass,'password']],setup:function(d){this.setValue(d.getAttribute('type'));},commit:function(d){var e=d.element;if(CKEDITOR.env.ie){var f=e.getAttribute('type'),g=this.getValue();if(f!=g){var h=CKEDITOR.dom.element.createFromHtml('<input type="'+g+'"></input>',a.document);e.copyAttributes(h,{type:1});h.replace(e);a.getSelection().selectElement(h);d.element=h;}}else e.setAttribute('type',this.getValue());
-}}]}]};});
+CKEDITOR.dialog.add("textfield",function(b){function e(a){var a=a.element,c=this.getValue();c?a.setAttribute(this.id,c):a.removeAttribute(this.id)}function f(a){this.setValue(a.hasAttribute(this.id)&&a.getAttribute(this.id)||"")}var g={email:1,password:1,search:1,tel:1,text:1,url:1};return{title:b.lang.forms.textfield.title,minWidth:350,minHeight:150,onShow:function(){delete this.textField;var a=this.getParentEditor().getSelection().getSelectedElement();if(a&&"input"==a.getName()&&(g[a.getAttribute("type")]||
+!a.getAttribute("type")))this.textField=a,this.setupContent(a)},onOk:function(){var a=this.getParentEditor(),c=this.textField,b=!c;b&&(c=a.document.createElement("input"),c.setAttribute("type","text"));c={element:c};b&&a.insertElement(c.element);this.commitContent(c);b||a.getSelection().selectElement(c.element)},onLoad:function(){this.foreach(function(a){if(a.getValue&&(a.setup||(a.setup=f),!a.commit))a.commit=e})},contents:[{id:"info",label:b.lang.forms.textfield.title,title:b.lang.forms.textfield.title,
+elements:[{type:"hbox",widths:["50%","50%"],children:[{id:"_cke_saved_name",type:"text",label:b.lang.forms.textfield.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:b.lang.forms.textfield.value,"default":"",accessKey:"V",commit:function(a){if(CKEDITOR.env.ie&&
+!this.getValue()){var c=a.element,d=new CKEDITOR.dom.element("input",b.document);c.copyAttributes(d,{value:1});d.replace(c);a.element=d}else e.call(this,a)}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"size",type:"text",label:b.lang.forms.textfield.charWidth,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)},{id:"maxLength",type:"text",label:b.lang.forms.textfield.maxChars,"default":"",accessKey:"M",style:"width:50px",
+validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}],onLoad:function(){CKEDITOR.env.ie7Compat&&this.getElement().setStyle("zoom","100%")}},{id:"type",type:"select",label:b.lang.forms.textfield.type,"default":"text",accessKey:"M",items:[[b.lang.forms.textfield.typeEmail,"email"],[b.lang.forms.textfield.typePass,"password"],[b.lang.forms.textfield.typeSearch,"search"],[b.lang.forms.textfield.typeTel,"tel"],[b.lang.forms.textfield.typeText,"text"],[b.lang.forms.textfield.typeUrl,
+"url"]],setup:function(a){this.setValue(a.getAttribute("type"))},commit:function(a){var c=a.element;if(CKEDITOR.env.ie){var d=c.getAttribute("type"),e=this.getValue();d!=e&&(d=CKEDITOR.dom.element.createFromHtml('<input type="'+e+'"></input>',b.document),c.copyAttributes(d,{type:1}),d.replace(c),a.element=d)}else c.setAttribute("type",this.getValue())}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/icons.png b/share/static/RichText/plugins/icons.png
new file mode 100644
index 0000000..f21247b
Binary files /dev/null and b/share/static/RichText/plugins/icons.png differ
diff --git a/share/static/RichText/plugins/iframe/dialogs/iframe.js b/share/static/RichText/plugins/iframe/dialogs/iframe.js
new file mode 100644
index 0000000..df59c28
--- /dev/null
+++ b/share/static/RichText/plugins/iframe/dialogs/iframe.js
@@ -0,0 +1,10 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+(function(){function c(b){var c=this instanceof CKEDITOR.ui.dialog.checkbox;b.hasAttribute(this.id)&&(b=b.getAttribute(this.id),c?this.setValue(e[this.id]["true"]==b.toLowerCase()):this.setValue(b))}function d(b){var c=""===this.getValue(),a=this instanceof CKEDITOR.ui.dialog.checkbox,d=this.getValue();c?b.removeAttribute(this.att||this.id):a?b.setAttribute(this.id,e[this.id][d]):b.setAttribute(this.att||this.id,d)}var e={scrolling:{"true":"yes","false":"no"},frameborder:{"true":"1","false":"0"}};
+CKEDITOR.dialog.add("iframe",function(b){var f=b.lang.iframe,a=b.lang.common,e=b.plugins.dialogadvtab;return{title:f.title,minWidth:350,minHeight:260,onShow:function(){this.fakeImage=this.iframeNode=null;var a=this.getSelectedElement();a&&(a.data("cke-real-element-type")&&"iframe"==a.data("cke-real-element-type"))&&(this.fakeImage=a,this.iframeNode=a=b.restoreRealElement(a),this.setupContent(a))},onOk:function(){var a;a=this.fakeImage?this.iframeNode:new CKEDITOR.dom.element("iframe");var c={},d=
+{};this.commitContent(a,c,d);a=b.createFakeElement(a,"cke_iframe","iframe",!0);a.setAttributes(d);a.setStyles(c);this.fakeImage?(a.replace(this.fakeImage),b.getSelection().selectElement(a)):b.insertElement(a)},contents:[{id:"info",label:a.generalTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{id:"src",type:"text",label:a.url,required:!0,validate:CKEDITOR.dialog.validate.notEmpty(f.noUrl),setup:c,commit:d}]},{type:"hbox",children:[{id:"width",type:"text",style:"width:100%",labelLayout:"vertical",
+label:a.width,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.width)),setup:c,commit:d},{id:"height",type:"text",style:"width:100%",labelLayout:"vertical",label:a.height,validate:CKEDITOR.dialog.validate.htmlLength(a.invalidHtmlLength.replace("%1",a.height)),setup:c,commit:d},{id:"align",type:"select","default":"",items:[[a.notSet,""],[a.alignLeft,"left"],[a.alignRight,"right"],[a.alignTop,"top"],[a.alignMiddle,"middle"],[a.alignBottom,"bottom"]],style:"width:100%",
+labelLayout:"vertical",label:a.align,setup:function(a,b){c.apply(this,arguments);if(b){var d=b.getAttribute("align");this.setValue(d&&d.toLowerCase()||"")}},commit:function(a,b,c){d.apply(this,arguments);this.getValue()&&(c.align=this.getValue())}}]},{type:"hbox",widths:["50%","50%"],children:[{id:"scrolling",type:"checkbox",label:f.scrolling,setup:c,commit:d},{id:"frameborder",type:"checkbox",label:f.border,setup:c,commit:d}]},{type:"hbox",widths:["50%","50%"],children:[{id:"name",type:"text",label:a.name,
+setup:c,commit:d},{id:"title",type:"text",label:a.advisoryTitle,setup:c,commit:d}]},{id:"longdesc",type:"text",label:a.longDescr,setup:c,commit:d}]},e&&e.createAdvancedTab(b,{id:1,classes:1,styles:1})]}})})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/iframe/images/placeholder.png b/share/static/RichText/plugins/iframe/images/placeholder.png
new file mode 100644
index 0000000..b40c7b2
Binary files /dev/null and b/share/static/RichText/plugins/iframe/images/placeholder.png differ
diff --git a/share/static/RichText/plugins/iframedialog/plugin.js b/share/static/RichText/plugins/iframedialog/plugin.js
deleted file mode 100644
index e977c4d..0000000
--- a/share/static/RichText/plugins/iframedialog/plugin.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add('iframedialog',{requires:['dialog'],onLoad:function(){CKEDITOR.dialog.addIframe=function(a,b,c,d,e,f){var g={type:'iframe',src:c,width:'100%',height:'100%'};if(typeof f=='function')g.onContentLoad=f;var h={title:b,minWidth:d,minHeight:e,contents:[{id:'iframe',label:b,expand:true,elements:[g]}]};return this.add(a,function(){return h;});};(function(){var a=function(b,c,d){if(arguments.length<3)return;var e=this._||(this._={}),f=c.onContentLoad&&CKEDITOR.tools.bind(c.onContentLoad,this),g=CKEDITOR.tools.cssLength(c.width),h=CKEDITOR.tools.cssLength(c.height);e.frameId=CKEDITOR.tools.getNextNumber()+'_iframe';b.on('load',function(){var k=CKEDITOR.document.getById(e.frameId),l=k.getParent();l.setStyles({width:g,height:h});});var i={src:'%2',id:e.frameId,frameborder:0,allowtransparency:true},j=[];if(typeof c.onContentLoad=='function')i.onload='CKEDITOR.tools.callFunction(%1);';CKEDITOR.ui.dialog.uiElement.call(this,b,c,j,'iframe',{width:g,height:h},i,'');d.pus
h('<div style="width:'+g+';height:'+h+';" id="'+this.domId+'"></div>');j=j.join('');b.on('show',function(){var k=CKEDITOR.document.getById(e.frameId),l=k.getParent(),m=CKEDITOR.tools.addFunction(f),n=j.replace('%1',m).replace('%2',CKEDITOR.tools.htmlEncode(c.src));l.setHtml(n);});};a.prototype=new CKEDITOR.ui.dialog.uiElement();CKEDITOR.dialog.addUIElement('iframe',{build:function(b,c,d){return new a(b,c,d);}});})();}});
diff --git a/share/static/RichText/plugins/image/dialogs/image.js b/share/static/RichText/plugins/image/dialogs/image.js
index 76eeadf..35903de 100644
--- a/share/static/RichText/plugins/image/dialogs/image.js
+++ b/share/static/RichText/plugins/image/dialogs/image.js
@@ -1,13 +1,41 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){var a=function(b,c){var d=1,e=2,f=4,g=8,h=/^\s*(\d+)((px)|\%)?\s*$/i,i=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,j=/^\d+px$/,k=function(){var C=this.getValue(),D=this.getDialog(),E=C.match(h);if(E){if(E[2]=='%')p(D,false);C=E[1];}if(D.lockRatio){var F=D.originalElement;if(F.getCustomData('isReady')=='true')if(this.id=='txtHeight'){if(C&&C!='0')C=Math.round(F.$.width*(C/F.$.height));if(!isNaN(C))D.setValueOf('info','txtWidth',C);}else{if(C&&C!='0')C=Math.round(F.$.height*(C/F.$.width));if(!isNaN(C))D.setValueOf('info','txtHeight',C);}}l(D);},l=function(C){if(!C.originalElement||!C.preview)return 1;C.commitContent(f,C.preview);return 0;};function m(){var C=arguments,D=this.getContentElement('advanced','txtdlgGenStyle');D&&D.commit.apply(D,C);this.foreach(function(E){if(E.commit&&E.id!='txtdlgGenStyle')E.commit.apply(E,C);});};var n;function o(C){if(n)return;n=1;var D=this.getDialog(),E=D.imageElement;if(E){this.commit(d,E);C=[].concat(C);var F=C.length,G;for(var H=0;H<F;H++)
{G=D.getContentElement.apply(D,C[H].split(':'));G&&G.setup(d,E);}}n=0;};var p=function(C,D){var E=C.originalElement;if(!E)return null;var F=CKEDITOR.document.getById(w);if(E.getCustomData('isReady')=='true'){if(D=='check'){var G=C.getValueOf('info','txtWidth'),H=C.getValueOf('info','txtHeight'),I=E.$.width*1000/E.$.height,J=G*1000/H;C.lockRatio=false;if(!G&&!H)C.lockRatio=true;else if(!isNaN(I)&&!isNaN(J))if(Math.round(I)==Math.round(J))C.lockRatio=true;}else if(D!=undefined)C.lockRatio=D;else C.lockRatio=!C.lockRatio;}else if(D!='check')C.lockRatio=false;if(C.lockRatio)F.removeClass('cke_btn_unlocked');else F.addClass('cke_btn_unlocked');var K=C._.editor.lang.image,L=K[C.lockRatio?'unlockRatio':'lockRatio'];F.setAttribute('title',L);F.getFirst().setText(L);return C.lockRatio;},q=function(C){var D=C.originalElement;if(D.getCustomData('isReady')=='true'){C.setValueOf('info','txtWidth',D.$.width);C.setValueOf('info','txtHeight',D.$.height);}l(C);},r=function(C,D){if(C!=d)retur
n;function E(J,K){var L=J.match(h);if(L){if(L[2]=='%'){L[1]+='%';p(F,false);}return L[1];}return K;};var F=this.getDialog(),G='',H=this.id=='txtWidth'?'width':'height',I=D.getAttribute(H);if(I)G=E(I,G);G=E(D.getStyle(H),G);this.setValue(G);},s,t=function(){var C=this.originalElement;C.setCustomData('isReady','true');C.removeListener('load',t);C.removeListener('error',u);C.removeListener('abort',u);CKEDITOR.document.getById(y).setStyle('display','none');if(!this.dontResetSize)q(this);if(this.firstLoad)CKEDITOR.tools.setTimeout(function(){p(this,'check');
-},0,this);this.firstLoad=false;this.dontResetSize=false;},u=function(){var E=this;var C=E.originalElement;C.removeListener('load',t);C.removeListener('error',u);C.removeListener('abort',u);var D=CKEDITOR.getUrl(b.skinPath+'images/noimage.png');if(E.preview)E.preview.setAttribute('src',D);CKEDITOR.document.getById(y).setStyle('display','none');p(E,false);},v=function(C){return CKEDITOR.tools.getNextId()+'_'+C;},w=v('btnLockSizes'),x=v('btnResetSize'),y=v('ImagePreviewLoader'),z=v('ImagePreviewBox'),A=v('previewLink'),B=v('previewImage');return{title:c=='image'?b.lang.image.title:b.lang.image.titleButton,minWidth:420,minHeight:310,onShow:function(){var I=this;I.imageElement=false;I.linkElement=false;I.imageEditMode=false;I.linkEditMode=false;I.lockRatio=true;I.dontResetSize=false;I.firstLoad=true;I.addLink=false;var C=I.getParentEditor(),D=I.getParentEditor().getSelection(),E=D.getSelectedElement(),F=E&&E.getAscendant('a');CKEDITOR.document.getById(y).setStyle('display','none'
);s=new CKEDITOR.dom.element('img',C.document);I.preview=CKEDITOR.document.getById(B);I.originalElement=C.document.createElement('img');I.originalElement.setAttribute('alt','');I.originalElement.setCustomData('isReady','false');if(F){I.linkElement=F;I.linkEditMode=true;var G=F.getChildren();if(G.count()==1){var H=G.getItem(0).getName();if(H=='img'||H=='input'){I.imageElement=G.getItem(0);if(I.imageElement.getName()=='img')I.imageEditMode='img';else if(I.imageElement.getName()=='input')I.imageEditMode='input';}}if(c=='image')I.setupContent(e,F);}if(E&&E.getName()=='img'&&!E.getAttribute('_cke_realelement')||E&&E.getName()=='input'&&E.getAttribute('type')=='image'){I.imageEditMode=E.getName();I.imageElement=E;}if(I.imageEditMode){I.cleanImageElement=I.imageElement;I.imageElement=I.cleanImageElement.clone(true,true);I.setupContent(d,I.imageElement);p(I,true);}else I.imageElement=C.document.createElement('img');if(!CKEDITOR.tools.trim(I.getValueOf('info','txtUrl'))){I.preview.re
moveAttribute('src');I.preview.setStyle('display','none');}},onOk:function(){var D=this;if(D.imageEditMode){var C=D.imageEditMode;if(c=='image'&&C=='input'&&confirm(b.lang.image.button2Img)){C='img';D.imageElement=b.document.createElement('img');D.imageElement.setAttribute('alt','');b.insertElement(D.imageElement);}else if(c!='image'&&C=='img'&&confirm(b.lang.image.img2Button)){C='input';D.imageElement=b.document.createElement('input');D.imageElement.setAttributes({type:'image',alt:''});b.insertElement(D.imageElement);
-}else{D.imageElement=D.cleanImageElement;delete D.cleanImageElement;}}else{if(c=='image')D.imageElement=b.document.createElement('img');else{D.imageElement=b.document.createElement('input');D.imageElement.setAttribute('type','image');}D.imageElement.setAttribute('alt','');}if(!D.linkEditMode)D.linkElement=b.document.createElement('a');D.commitContent(d,D.imageElement);D.commitContent(e,D.linkElement);if(!D.imageElement.getAttribute('style'))D.imageElement.removeAttribute('style');if(!D.imageEditMode){if(D.addLink){if(!D.linkEditMode){b.insertElement(D.linkElement);D.linkElement.append(D.imageElement,false);}else b.insertElement(D.imageElement);}else b.insertElement(D.imageElement);}else if(!D.linkEditMode&&D.addLink){b.insertElement(D.linkElement);D.imageElement.appendTo(D.linkElement);}else if(D.linkEditMode&&!D.addLink){b.getSelection().selectElement(D.linkElement);b.insertElement(D.imageElement);}},onLoad:function(){var D=this;if(c!='image')D.hidePage('Link');var C=D._.el
ement.getDocument();D.addFocusable(C.getById(x),5);D.addFocusable(C.getById(w),5);D.commitContent=m;},onHide:function(){var C=this;if(C.preview)C.commitContent(g,C.preview);if(C.originalElement){C.originalElement.removeListener('load',t);C.originalElement.removeListener('error',u);C.originalElement.removeListener('abort',u);C.originalElement.remove();C.originalElement=false;}delete C.imageElement;},contents:[{id:'info',label:b.lang.image.infoTab,accessKey:'I',elements:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['280px','110px'],align:'right',children:[{id:'txtUrl',type:'text',label:b.lang.common.url,required:true,onChange:function(){var C=this.getDialog(),D=this.getValue();if(D.length>0){C=this.getDialog();var E=C.originalElement;C.preview.removeStyle('display');E.setCustomData('isReady','false');var F=CKEDITOR.document.getById(y);if(F)F.setStyle('display','');E.on('load',t,C);E.on('error',u,C);E.on('abort',u,C);E.setAttribute('src',D);s.setAttribute('src',D);C.pr
eview.setAttribute('src',s.$.src);l(C);}else if(C.preview){C.preview.removeAttribute('src');C.preview.setStyle('display','none');}},setup:function(C,D){if(C==d){var E=D.getAttribute('_cke_saved_src')||D.getAttribute('src'),F=this;this.getDialog().dontResetSize=true;F.setValue(E);F.setInitValue();}},commit:function(C,D){var E=this;if(C==d&&(E.getValue()||E.isChanged())){D.setAttribute('_cke_saved_src',decodeURI(E.getValue()));D.setAttribute('src',decodeURI(E.getValue()));}else if(C==g){D.setAttribute('src','');D.removeAttribute('src');
-}},validate:CKEDITOR.dialog.validate.notEmpty(b.lang.image.urlMissing)},{type:'button',id:'browse',style:'display:inline-block;margin-top:10px;',align:'center',label:b.lang.common.browseServer,hidden:true,filebrowser:'info:txtUrl'}]}]},{id:'txtAlt',type:'text',label:b.lang.image.alt,accessKey:'T','default':'',onChange:function(){l(this.getDialog());},setup:function(C,D){if(C==d)this.setValue(D.getAttribute('alt'));},commit:function(C,D){var E=this;if(C==d){if(E.getValue()||E.isChanged())D.setAttribute('alt',E.getValue());}else if(C==f)D.setAttribute('alt',E.getValue());else if(C==g)D.removeAttribute('alt');}},{type:'hbox',widths:['140px','240px'],children:[{type:'vbox',padding:10,children:[{type:'hbox',widths:['70%','30%'],children:[{type:'vbox',padding:1,children:[{type:'text',width:'40px',id:'txtWidth',labelLayout:'horizontal',label:b.lang.image.width,onKeyUp:k,onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:function(){var C=this.getValue().match(i);i
f(!C)alert(b.lang.image.validateWidth);return!!C;},setup:r,commit:function(C,D,E){var F=this.getValue();if(C==d){if(F)D.setStyle('width',CKEDITOR.tools.cssLength(F));else if(!F&&this.isChanged())D.removeStyle('width');!E&&D.removeAttribute('width');}else if(C==f){var G=F.match(h);if(!G){var H=this.getDialog().originalElement;if(H.getCustomData('isReady')=='true')D.setStyle('width',H.$.width+'px');}else D.setStyle('width',CKEDITOR.tools.cssLength(F));}else if(C==g){D.removeAttribute('width');D.removeStyle('width');}}},{type:'text',id:'txtHeight',width:'40px',labelLayout:'horizontal',label:b.lang.image.height,onKeyUp:k,onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:function(){var C=this.getValue().match(i);if(!C)alert(b.lang.image.validateHeight);return!!C;},setup:r,commit:function(C,D,E){var F=this.getValue();if(C==d){if(F)D.setStyle('height',CKEDITOR.tools.cssLength(F));else if(!F&&this.isChanged())D.removeStyle('height');if(!E&&C==d)D.removeAttribute(
'height');}else if(C==f){var G=F.match(h);if(!G){var H=this.getDialog().originalElement;if(H.getCustomData('isReady')=='true')D.setStyle('height',H.$.height+'px');}else D.setStyle('height',CKEDITOR.tools.cssLength(F));}else if(C==g){D.removeAttribute('height');D.removeStyle('height');}}}]},{type:'html',style:'margin-top:10px;width:40px;height:40px;',onLoad:function(){var C=CKEDITOR.document.getById(x),D=CKEDITOR.document.getById(w);if(C){C.on('click',function(E){q(this);E.data.preventDefault();},this.getDialog());C.on('mouseover',function(){this.addClass('cke_btn_over');
-},C);C.on('mouseout',function(){this.removeClass('cke_btn_over');},C);}if(D){D.on('click',function(E){var J=this;var F=p(J),G=J.originalElement,H=J.getValueOf('info','txtWidth');if(G.getCustomData('isReady')=='true'&&H){var I=G.$.height/G.$.width*H;if(!isNaN(I)){J.setValueOf('info','txtHeight',Math.round(I));l(J);}}E.data.preventDefault();},this.getDialog());D.on('mouseover',function(){this.addClass('cke_btn_over');},D);D.on('mouseout',function(){this.removeClass('cke_btn_over');},D);}},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.unlockRatio+'" class="cke_btn_locked" id="'+w+'" role="button"><span class="cke_label">'+b.lang.image.unlockRatio+'</span></a>'+'<a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.resetSize+'" class="cke_btn_reset" id="'+x+'" role="button"><span class="cke_label">'+b.lang.image.resetSize+'</span></a>'+'</div>'}]},{type:'vbox',padding:1,children:[{type:'text',id:'txtBorder',width:'60px',labelLayout:'horiz
ontal',label:b.lang.image.border,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateBorder),setup:function(C,D){if(C==d){var E,F=D.getStyle('border-width');F=F&&F.match(/^(\d+px)(?: \1 \1 \1)?$/);E=F&&parseInt(F[1],10);isNaN(parseInt(E,10))&&(E=D.getAttribute('border'));this.setValue(E);}},commit:function(C,D,E){var F=parseInt(this.getValue(),10);if(C==d||C==f){if(!isNaN(F)){D.setStyle('border-width',CKEDITOR.tools.cssLength(F));D.setStyle('border-style','solid');}else if(!F&&this.isChanged()){D.removeStyle('border-width');D.removeStyle('border-style');D.removeStyle('border-color');}if(!E&&C==d)D.removeAttribute('border');}else if(C==g){D.removeAttribute('border');D.removeStyle('border-width');D.removeStyle('border-style');D.removeStyle('border-color');}}},{type:'text',id:'txtHSpace',width:'60px',labelLayout:'horizontal',label:b.lang.image.hSpace,'de
fault':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateHSpace),setup:function(C,D){if(C==d){var E,F,G,H=D.getStyle('margin-left'),I=D.getStyle('margin-right');H=H&&H.match(j);I=I&&I.match(j);F=parseInt(H,10);G=parseInt(I,10);E=F==G&&F;isNaN(parseInt(E,10))&&(E=D.getAttribute('hspace'));this.setValue(E);}},commit:function(C,D,E){var F=parseInt(this.getValue(),10);if(C==d||C==f){if(!isNaN(F)){D.setStyle('margin-left',CKEDITOR.tools.cssLength(F));
-D.setStyle('margin-right',CKEDITOR.tools.cssLength(F));}else if(!F&&this.isChanged()){D.removeStyle('margin-left');D.removeStyle('margin-right');}if(!E&&C==d)D.removeAttribute('hspace');}else if(C==g){D.removeAttribute('hspace');D.removeStyle('margin-left');D.removeStyle('margin-right');}}},{type:'text',id:'txtVSpace',width:'60px',labelLayout:'horizontal',label:b.lang.image.vSpace,'default':'',onKeyUp:function(){l(this.getDialog());},onChange:function(){o.call(this,'advanced:txtdlgGenStyle');},validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateVSpace),setup:function(C,D){if(C==d){var E,F,G,H=D.getStyle('margin-top'),I=D.getStyle('margin-bottom');H=H&&H.match(j);I=I&&I.match(j);F=parseInt(H,10);G=parseInt(I,10);E=F==G&&F;isNaN(parseInt(E,10))&&(E=D.getAttribute('vspace'));this.setValue(E);}},commit:function(C,D,E){var F=parseInt(this.getValue(),10);if(C==d||C==f){if(!isNaN(F)){D.setStyle('margin-top',CKEDITOR.tools.cssLength(F));D.setStyle('margin-bottom',CKEDITOR
.tools.cssLength(F));}else if(!F&&this.isChanged()){D.removeStyle('margin-top');D.removeStyle('margin-bottom');}if(!E&&C==d)D.removeAttribute('vspace');}else if(C==g){D.removeAttribute('vspace');D.removeStyle('margin-top');D.removeStyle('margin-bottom');}}},{id:'cmbAlign',type:'select',labelLayout:'horizontal',widths:['35%','65%'],style:'width:90px',label:b.lang.image.align,'default':'',items:[[b.lang.common.notSet,''],[b.lang.image.alignLeft,'left'],[b.lang.image.alignRight,'right']],onChange:function(){l(this.getDialog());o.call(this,'advanced:txtdlgGenStyle');},setup:function(C,D){if(C==d){var E=D.getStyle('float');switch(E){case 'inherit':case 'none':E='';}!E&&(E=(D.getAttribute('align')||'').toLowerCase());this.setValue(E);}},commit:function(C,D,E){var F=this.getValue();if(C==d||C==f){if(F)D.setStyle('float',F);else D.removeStyle('float');if(!E&&C==d){F=(D.getAttribute('align')||'').toLowerCase();switch(F){case 'left':case 'right':D.removeAttribute('align');}}}else if(C
==g)D.removeStyle('float');}}]}]},{type:'vbox',height:'250px',children:[{type:'html',style:'width:95%;',html:'<div>'+CKEDITOR.tools.htmlEncode(b.lang.common.preview)+'<br>'+'<div id="'+y+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div>'+'<div id="'+z+'" class="ImagePreviewBox"><table><tr><td>'+'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'">'+'<img id="'+B+'" alt="" /></a>'+(b.config.image_previewText||'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque e
gestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.')+'</td></tr></table></div></div>'}]}]}]},{id:'Link',label:b.lang.link.title,padding:0,elements:[{id:'txtUrl',type:'text',label:b.lang.common.url,style:'width: 100%','default':'',setup:function(C,D){if(C==e){var E=D.getAttribute('_cke_saved_href');
-if(!E)E=D.getAttribute('href');this.setValue(E);}},commit:function(C,D){var E=this;if(C==e)if(E.getValue()||E.isChanged()){D.setAttribute('_cke_saved_href',decodeURI(E.getValue()));D.setAttribute('href','javascript:void(0)/*'+CKEDITOR.tools.getNextNumber()+'*/');if(E.getValue()||!b.config.image_removeLinkByEmptyURL)E.getDialog().addLink=true;}}},{type:'button',id:'browse',filebrowser:{action:'Browse',target:'Link:txtUrl',url:b.config.filebrowserImageBrowseLinkUrl||b.config.filebrowserBrowseUrl},style:'float:right',hidden:true,label:b.lang.common.browseServer},{id:'cmbTarget',type:'select',label:b.lang.common.target,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.targetNew,'_blank'],[b.lang.common.targetTop,'_top'],[b.lang.common.targetSelf,'_self'],[b.lang.common.targetParent,'_parent']],setup:function(C,D){if(C==e)this.setValue(D.getAttribute('target'));},commit:function(C,D){if(C==e)if(this.getValue()||this.isChanged())D.setAttribute('target',this.getValue());
}}]},{id:'Upload',hidden:true,filebrowser:'uploadButton',label:b.lang.image.upload,elements:[{type:'file',id:'upload',label:b.lang.image.btnUpload,style:'height:40px',size:38},{type:'fileButton',id:'uploadButton',filebrowser:'info:txtUrl',label:b.lang.image.btnUpload,'for':['Upload','upload']}]},{id:'advanced',label:b.lang.common.advancedTab,elements:[{type:'hbox',widths:['50%','25%','25%'],children:[{type:'text',id:'linkId',label:b.lang.common.id,setup:function(C,D){if(C==d)this.setValue(D.getAttribute('id'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('id',this.getValue());}},{id:'cmbLangDir',type:'select',style:'width : 100px;',label:b.lang.common.langDir,'default':'',items:[[b.lang.common.notSet,''],[b.lang.common.langDirLtr,'ltr'],[b.lang.common.langDirRtl,'rtl']],setup:function(C,D){if(C==d)this.setValue(D.getAttribute('dir'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('dir',this.getValue())
;}},{type:'text',id:'txtLangCode',label:b.lang.common.langCode,'default':'',setup:function(C,D){if(C==d)this.setValue(D.getAttribute('lang'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('lang',this.getValue());}}]},{type:'text',id:'txtGenLongDescr',label:b.lang.common.longDescr,setup:function(C,D){if(C==d)this.setValue(D.getAttribute('longDesc'));},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('longDesc',this.getValue());}},{type:'hbox',widths:['50%','50%'],children:[{type:'text',id:'txtGenClass',label:b.lang.common.cssClass,'default':'',setup:function(C,D){if(C==d)this.setValue(D.getAttribute('class'));
-},commit:function(C,D){if(C==d)if(this.getValue()||this.isChanged())D.setAttribute('class',this.getValue());}},{type:'text',id:'txtGenTitle',label:b.lang.common.advisoryTitle,'default':'',onChange:function(){l(this.getDialog());},setup:function(C,D){if(C==d)this.setValue(D.getAttribute('title'));},commit:function(C,D){var E=this;if(C==d){if(E.getValue()||E.isChanged())D.setAttribute('title',E.getValue());}else if(C==f)D.setAttribute('title',E.getValue());else if(C==g)D.removeAttribute('title');}}]},{type:'text',id:'txtdlgGenStyle',label:b.lang.common.cssStyle,'default':'',setup:function(C,D){if(C==d){var E=D.getAttribute('style');if(!E&&D.$.style.cssText)E=D.$.style.cssText;this.setValue(E);var F=D.$.style.height,G=D.$.style.width,H=(F?F:'').match(h),I=(G?G:'').match(h);this.attributesInStyle={height:!!H,width:!!I};}},onChange:function(){o.call(this,['info:cmbFloat','info:cmbAlign','info:txtVSpace','info:txtHSpace','info:txtBorder','info:txtWidth','info:txtHeight']);l(this);
},commit:function(C,D){if(C==d&&(this.getValue()||this.isChanged()))D.setAttribute('style',this.getValue());}}]}]};};CKEDITOR.dialog.add('image',function(b){return a(b,'image');});CKEDITOR.dialog.add('imagebutton',function(b){return a(b,'imagebutton');});})();
+(function(){var r=function(c,j){function r(){var a=arguments,b=this.getContentElement("advanced","txtdlgGenStyle");b&&b.commit.apply(b,a);this.foreach(function(b){b.commit&&"txtdlgGenStyle"!=b.id&&b.commit.apply(b,a)})}function i(a){if(!s){s=1;var b=this.getDialog(),d=b.imageElement;if(d){this.commit(f,d);for(var a=[].concat(a),e=a.length,c,g=0;g<e;g++)(c=b.getContentElement.apply(b,a[g].split(":")))&&c.setup(f,d)}s=0}}var f=1,k=/^\s*(\d+)((px)|\%)?\s*$/i,v=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,o=/^\d+px$/,
+w=function(){var a=this.getValue(),b=this.getDialog(),d=a.match(k);d&&("%"==d[2]&&l(b,!1),a=d[1]);b.lockRatio&&(d=b.originalElement,"true"==d.getCustomData("isReady")&&("txtHeight"==this.id?(a&&"0"!=a&&(a=Math.round(d.$.width*(a/d.$.height))),isNaN(a)||b.setValueOf("info","txtWidth",a)):(a&&"0"!=a&&(a=Math.round(d.$.height*(a/d.$.width))),isNaN(a)||b.setValueOf("info","txtHeight",a))));g(b)},g=function(a){if(!a.originalElement||!a.preview)return 1;a.commitContent(4,a.preview);return 0},s,l=function(a,
+b){if(!a.getContentElement("info","ratioLock"))return null;var d=a.originalElement;if(!d)return null;if("check"==b){if(!a.userlockRatio&&"true"==d.getCustomData("isReady")){var e=a.getValueOf("info","txtWidth"),c=a.getValueOf("info","txtHeight"),d=1E3*d.$.width/d.$.height,f=1E3*e/c;a.lockRatio=!1;!e&&!c?a.lockRatio=!0:!isNaN(d)&&!isNaN(f)&&Math.round(d)==Math.round(f)&&(a.lockRatio=!0)}}else void 0!=b?a.lockRatio=b:(a.userlockRatio=1,a.lockRatio=!a.lockRatio);e=CKEDITOR.document.getById(p);a.lockRatio?
+e.removeClass("cke_btn_unlocked"):e.addClass("cke_btn_unlocked");e.setAttribute("aria-checked",a.lockRatio);CKEDITOR.env.hc&&e.getChild(0).setHtml(a.lockRatio?CKEDITOR.env.ie?"â ":"â£":CKEDITOR.env.ie?"â¡":"â¢");return a.lockRatio},x=function(a){var b=a.originalElement;if("true"==b.getCustomData("isReady")){var d=a.getContentElement("info","txtWidth"),e=a.getContentElement("info","txtHeight");d&&d.setValue(b.$.width);e&&e.setValue(b.$.height)}g(a)},y=function(a,b){function d(a,b){var d=a.match(k);return d?
+("%"==d[2]&&(d[1]+="%",l(e,!1)),d[1]):b}if(a==f){var e=this.getDialog(),c="",g="txtWidth"==this.id?"width":"height",h=b.getAttribute(g);h&&(c=d(h,c));c=d(b.getStyle(g),c);this.setValue(c)}},t,q=function(){var a=this.originalElement;a.setCustomData("isReady","true");a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);CKEDITOR.document.getById(m).setStyle("display","none");this.dontResetSize||x(this);this.firstLoad&&CKEDITOR.tools.setTimeout(function(){l(this,"check")},
+0,this);this.dontResetSize=this.firstLoad=!1},h=function(){var a=this.originalElement;a.removeListener("load",q);a.removeListener("error",h);a.removeListener("abort",h);a=CKEDITOR.getUrl(CKEDITOR.plugins.get("image").path+"images/noimage.png");this.preview&&this.preview.setAttribute("src",a);CKEDITOR.document.getById(m).setStyle("display","none");l(this,!1)},n=function(a){return CKEDITOR.tools.getNextId()+"_"+a},p=n("btnLockSizes"),u=n("btnResetSize"),m=n("ImagePreviewLoader"),A=n("previewLink"),
+z=n("previewImage");return{title:c.lang.image["image"==j?"title":"titleButton"],minWidth:420,minHeight:360,onShow:function(){this.linkEditMode=this.imageEditMode=this.linkElement=this.imageElement=!1;this.lockRatio=!0;this.userlockRatio=0;this.dontResetSize=!1;this.firstLoad=!0;this.addLink=!1;var a=this.getParentEditor(),b=a.getSelection(),d=(b=b&&b.getSelectedElement())&&a.elementPath(b).contains("a",1);CKEDITOR.document.getById(m).setStyle("display","none");t=new CKEDITOR.dom.element("img",a.document);
+this.preview=CKEDITOR.document.getById(z);this.originalElement=a.document.createElement("img");this.originalElement.setAttribute("alt","");this.originalElement.setCustomData("isReady","false");if(d){this.linkElement=d;this.linkEditMode=!0;var c=d.getChildren();if(1==c.count()){var g=c.getItem(0).getName();if("img"==g||"input"==g)this.imageElement=c.getItem(0),"img"==this.imageElement.getName()?this.imageEditMode="img":"input"==this.imageElement.getName()&&(this.imageEditMode="input")}"image"==j&&
+this.setupContent(2,d)}if(b&&"img"==b.getName()&&!b.data("cke-realelement")||b&&"input"==b.getName()&&"image"==b.getAttribute("type"))this.imageEditMode=b.getName(),this.imageElement=b;this.imageEditMode?(this.cleanImageElement=this.imageElement,this.imageElement=this.cleanImageElement.clone(!0,!0),this.setupContent(f,this.imageElement)):this.imageElement=a.document.createElement("img");l(this,!0);CKEDITOR.tools.trim(this.getValueOf("info","txtUrl"))||(this.preview.removeAttribute("src"),this.preview.setStyle("display",
+"none"))},onOk:function(){if(this.imageEditMode){var a=this.imageEditMode;"image"==j&&"input"==a&&confirm(c.lang.image.button2Img)?(this.imageElement=c.document.createElement("img"),this.imageElement.setAttribute("alt",""),c.insertElement(this.imageElement)):"image"!=j&&"img"==a&&confirm(c.lang.image.img2Button)?(this.imageElement=c.document.createElement("input"),this.imageElement.setAttributes({type:"image",alt:""}),c.insertElement(this.imageElement)):(this.imageElement=this.cleanImageElement,delete this.cleanImageElement)}else"image"==
+j?this.imageElement=c.document.createElement("img"):(this.imageElement=c.document.createElement("input"),this.imageElement.setAttribute("type","image")),this.imageElement.setAttribute("alt","");this.linkEditMode||(this.linkElement=c.document.createElement("a"));this.commitContent(f,this.imageElement);this.commitContent(2,this.linkElement);this.imageElement.getAttribute("style")||this.imageElement.removeAttribute("style");this.imageEditMode?!this.linkEditMode&&this.addLink?(c.insertElement(this.linkElement),
+this.imageElement.appendTo(this.linkElement)):this.linkEditMode&&!this.addLink&&(c.getSelection().selectElement(this.linkElement),c.insertElement(this.imageElement)):this.addLink?this.linkEditMode?c.insertElement(this.imageElement):(c.insertElement(this.linkElement),this.linkElement.append(this.imageElement,!1)):c.insertElement(this.imageElement)},onLoad:function(){"image"!=j&&this.hidePage("Link");var a=this._.element.getDocument();this.getContentElement("info","ratioLock")&&(this.addFocusable(a.getById(u),
+5),this.addFocusable(a.getById(p),5));this.commitContent=r},onHide:function(){this.preview&&this.commitContent(8,this.preview);this.originalElement&&(this.originalElement.removeListener("load",q),this.originalElement.removeListener("error",h),this.originalElement.removeListener("abort",h),this.originalElement.remove(),this.originalElement=!1);delete this.imageElement},contents:[{id:"info",label:c.lang.image.infoTab,accessKey:"I",elements:[{type:"vbox",padding:0,children:[{type:"hbox",widths:["280px",
+"110px"],align:"right",children:[{id:"txtUrl",type:"text",label:c.lang.common.url,required:!0,onChange:function(){var a=this.getDialog(),b=this.getValue();if(0<b.length){var a=this.getDialog(),d=a.originalElement;a.preview.removeStyle("display");d.setCustomData("isReady","false");var c=CKEDITOR.document.getById(m);c&&c.setStyle("display","");d.on("load",q,a);d.on("error",h,a);d.on("abort",h,a);d.setAttribute("src",b);t.setAttribute("src",b);a.preview.setAttribute("src",t.$.src);g(a)}else a.preview&&
+(a.preview.removeAttribute("src"),a.preview.setStyle("display","none"))},setup:function(a,b){if(a==f){var d=b.data("cke-saved-src")||b.getAttribute("src");this.getDialog().dontResetSize=!0;this.setValue(d);this.setInitValue()}},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())?(b.data("cke-saved-src",this.getValue()),b.setAttribute("src",this.getValue())):8==a&&(b.setAttribute("src",""),b.removeAttribute("src"))},validate:CKEDITOR.dialog.validate.notEmpty(c.lang.image.urlMissing)},{type:"button",
+id:"browse",style:"display:inline-block;margin-top:10px;",align:"center",label:c.lang.common.browseServer,hidden:!0,filebrowser:"info:txtUrl"}]}]},{id:"txtAlt",type:"text",label:c.lang.image.alt,accessKey:"T","default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("alt"))},commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("alt",this.getValue()):4==a?b.setAttribute("alt",this.getValue()):8==a&&b.removeAttribute("alt")}},
+{type:"hbox",children:[{id:"basic",type:"vbox",children:[{type:"hbox",widths:["50%","50%"],children:[{type:"vbox",padding:1,children:[{type:"text",width:"40px",id:"txtWidth",label:c.lang.common.width,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],10)))||alert(c.lang.common.invalidWidth);return a},setup:y,commit:function(a,b,d){var c=this.getValue();a==f?(c?b.setStyle("width",CKEDITOR.tools.cssLength(c)):
+b.removeStyle("width"),!d&&b.removeAttribute("width")):4==a?c.match(k)?b.setStyle("width",CKEDITOR.tools.cssLength(c)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("width",a.$.width+"px")):8==a&&(b.removeAttribute("width"),b.removeStyle("width"))}},{type:"text",id:"txtHeight",width:"40px",label:c.lang.common.height,onKeyUp:w,onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:function(){var a=this.getValue().match(v);(a=!!(a&&0!==parseInt(a[1],
+10)))||alert(c.lang.common.invalidHeight);return a},setup:y,commit:function(a,b,d){var c=this.getValue();a==f?(c?b.setStyle("height",CKEDITOR.tools.cssLength(c)):b.removeStyle("height"),!d&&b.removeAttribute("height")):4==a?c.match(k)?b.setStyle("height",CKEDITOR.tools.cssLength(c)):(a=this.getDialog().originalElement,"true"==a.getCustomData("isReady")&&b.setStyle("height",a.$.height+"px")):8==a&&(b.removeAttribute("height"),b.removeStyle("height"))}}]},{id:"ratioLock",type:"html",style:"margin-top:30px;width:40px;height:40px;",
+onLoad:function(){var a=CKEDITOR.document.getById(u),b=CKEDITOR.document.getById(p);a&&(a.on("click",function(a){x(this);a.data&&a.data.preventDefault()},this.getDialog()),a.on("mouseover",function(){this.addClass("cke_btn_over")},a),a.on("mouseout",function(){this.removeClass("cke_btn_over")},a));b&&(b.on("click",function(a){l(this);var b=this.originalElement,c=this.getValueOf("info","txtWidth");if(b.getCustomData("isReady")=="true"&&c){b=b.$.height/b.$.width*c;if(!isNaN(b)){this.setValueOf("info",
+"txtHeight",Math.round(b));g(this)}}a.data&&a.data.preventDefault()},this.getDialog()),b.on("mouseover",function(){this.addClass("cke_btn_over")},b),b.on("mouseout",function(){this.removeClass("cke_btn_over")},b))},html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.lockRatio+'" class="cke_btn_locked" id="'+p+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+c.lang.image.lockRatio+'</span></a><a href="javascript:void(0)" tabindex="-1" title="'+c.lang.image.resetSize+
+'" class="cke_btn_reset" id="'+u+'" role="button"><span class="cke_label">'+c.lang.image.resetSize+"</span></a></div>"}]},{type:"vbox",padding:1,children:[{type:"text",id:"txtBorder",width:"60px",label:c.lang.image.border,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateBorder),setup:function(a,b){if(a==f){var d;d=(d=(d=b.getStyle("border-width"))&&d.match(/^(\d+px)(?: \1 \1 \1)?$/))&&
+parseInt(d[1],10);isNaN(parseInt(d,10))&&(d=b.getAttribute("border"));this.setValue(d)}},commit:function(a,b,d){var c=parseInt(this.getValue(),10);a==f||4==a?(isNaN(c)?!c&&this.isChanged()&&b.removeStyle("border"):(b.setStyle("border-width",CKEDITOR.tools.cssLength(c)),b.setStyle("border-style","solid")),!d&&a==f&&b.removeAttribute("border")):8==a&&(b.removeAttribute("border"),b.removeStyle("border-width"),b.removeStyle("border-style"),b.removeStyle("border-color"))}},{type:"text",id:"txtHSpace",
+width:"60px",label:c.lang.image.hSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateHSpace),setup:function(a,b){if(a==f){var d,c;d=b.getStyle("margin-left");c=b.getStyle("margin-right");d=d&&d.match(o);c=c&&c.match(o);d=parseInt(d,10);c=parseInt(c,10);d=d==c&&d;isNaN(parseInt(d,10))&&(d=b.getAttribute("hspace"));this.setValue(d)}},commit:function(a,b,c){var e=parseInt(this.getValue(),
+10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-left"),b.removeStyle("margin-right")):(b.setStyle("margin-left",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-right",CKEDITOR.tools.cssLength(e))),!c&&a==f&&b.removeAttribute("hspace")):8==a&&(b.removeAttribute("hspace"),b.removeStyle("margin-left"),b.removeStyle("margin-right"))}},{type:"text",id:"txtVSpace",width:"60px",label:c.lang.image.vSpace,"default":"",onKeyUp:function(){g(this.getDialog())},onChange:function(){i.call(this,
+"advanced:txtdlgGenStyle")},validate:CKEDITOR.dialog.validate.integer(c.lang.image.validateVSpace),setup:function(a,b){if(a==f){var c,e;c=b.getStyle("margin-top");e=b.getStyle("margin-bottom");c=c&&c.match(o);e=e&&e.match(o);c=parseInt(c,10);e=parseInt(e,10);c=c==e&&c;isNaN(parseInt(c,10))&&(c=b.getAttribute("vspace"));this.setValue(c)}},commit:function(a,b,c){var e=parseInt(this.getValue(),10);a==f||4==a?(isNaN(e)?!e&&this.isChanged()&&(b.removeStyle("margin-top"),b.removeStyle("margin-bottom")):
+(b.setStyle("margin-top",CKEDITOR.tools.cssLength(e)),b.setStyle("margin-bottom",CKEDITOR.tools.cssLength(e))),!c&&a==f&&b.removeAttribute("vspace")):8==a&&(b.removeAttribute("vspace"),b.removeStyle("margin-top"),b.removeStyle("margin-bottom"))}},{id:"cmbAlign",type:"select",widths:["35%","65%"],style:"width:90px",label:c.lang.common.align,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.alignLeft,"left"],[c.lang.common.alignRight,"right"]],onChange:function(){g(this.getDialog());i.call(this,
+"advanced:txtdlgGenStyle")},setup:function(a,b){if(a==f){var c=b.getStyle("float");switch(c){case "inherit":case "none":c=""}!c&&(c=(b.getAttribute("align")||"").toLowerCase());this.setValue(c)}},commit:function(a,b,c){var e=this.getValue();if(a==f||4==a){if(e?b.setStyle("float",e):b.removeStyle("float"),!c&&a==f)switch(e=(b.getAttribute("align")||"").toLowerCase(),e){case "left":case "right":b.removeAttribute("align")}}else 8==a&&b.removeStyle("float")}}]}]},{type:"vbox",height:"250px",children:[{type:"html",
+id:"htmlPreview",style:"width:95%;",html:"<div>"+CKEDITOR.tools.htmlEncode(c.lang.common.preview)+'<br><div id="'+m+'" class="ImagePreviewLoader" style="display:none"><div class="loading"> </div></div><div class="ImagePreviewBox"><table><tr><td><a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+A+'"><img id="'+z+'" alt="" /></a>'+(c.config.image_previewText||"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, in tempus te
llus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris.")+
+"</td></tr></table></div></div>"}]}]}]},{id:"Link",label:c.lang.image.linkTab,padding:0,elements:[{id:"txtUrl",type:"text",label:c.lang.common.url,style:"width: 100%","default":"",setup:function(a,b){if(2==a){var c=b.data("cke-saved-href");c||(c=b.getAttribute("href"));this.setValue(c)}},commit:function(a,b){if(2==a&&(this.getValue()||this.isChanged())){var d=decodeURI(this.getValue());b.data("cke-saved-href",d);b.setAttribute("href",d);if(this.getValue()||!c.config.image_removeLinkByEmptyURL)this.getDialog().addLink=
+!0}}},{type:"button",id:"browse",filebrowser:{action:"Browse",target:"Link:txtUrl",url:c.config.filebrowserImageBrowseLinkUrl},style:"float:right",hidden:!0,label:c.lang.common.browseServer},{id:"cmbTarget",type:"select",label:c.lang.common.target,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.targetNew,"_blank"],[c.lang.common.targetTop,"_top"],[c.lang.common.targetSelf,"_self"],[c.lang.common.targetParent,"_parent"]],setup:function(a,b){2==a&&this.setValue(b.getAttribute("target")||
+"")},commit:function(a,b){2==a&&(this.getValue()||this.isChanged())&&b.setAttribute("target",this.getValue())}}]},{id:"Upload",hidden:!0,filebrowser:"uploadButton",label:c.lang.image.upload,elements:[{type:"file",id:"upload",label:c.lang.image.btnUpload,style:"height:40px",size:38},{type:"fileButton",id:"uploadButton",filebrowser:"info:txtUrl",label:c.lang.image.btnUpload,"for":["Upload","upload"]}]},{id:"advanced",label:c.lang.common.advancedTab,elements:[{type:"hbox",widths:["50%","25%","25%"],
+children:[{type:"text",id:"linkId",label:c.lang.common.id,setup:function(a,b){a==f&&this.setValue(b.getAttribute("id"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("id",this.getValue())}},{id:"cmbLangDir",type:"select",style:"width : 100px;",label:c.lang.common.langDir,"default":"",items:[[c.lang.common.notSet,""],[c.lang.common.langDirLtr,"ltr"],[c.lang.common.langDirRtl,"rtl"]],setup:function(a,b){a==f&&this.setValue(b.getAttribute("dir"))},commit:function(a,
+b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("dir",this.getValue())}},{type:"text",id:"txtLangCode",label:c.lang.common.langCode,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("lang"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("lang",this.getValue())}}]},{type:"text",id:"txtGenLongDescr",label:c.lang.common.longDescr,setup:function(a,b){a==f&&this.setValue(b.getAttribute("longDesc"))},commit:function(a,b){a==f&&(this.getValue()||
+this.isChanged())&&b.setAttribute("longDesc",this.getValue())}},{type:"hbox",widths:["50%","50%"],children:[{type:"text",id:"txtGenClass",label:c.lang.common.cssClass,"default":"",setup:function(a,b){a==f&&this.setValue(b.getAttribute("class"))},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("class",this.getValue())}},{type:"text",id:"txtGenTitle",label:c.lang.common.advisoryTitle,"default":"",onChange:function(){g(this.getDialog())},setup:function(a,b){a==f&&this.setValue(b.getAttribute("title"))},
+commit:function(a,b){a==f?(this.getValue()||this.isChanged())&&b.setAttribute("title",this.getValue()):4==a?b.setAttribute("title",this.getValue()):8==a&&b.removeAttribute("title")}}]},{type:"text",id:"txtdlgGenStyle",label:c.lang.common.cssStyle,validate:CKEDITOR.dialog.validate.inlineStyle(c.lang.common.invalidInlineStyle),"default":"",setup:function(a,b){if(a==f){var c=b.getAttribute("style");!c&&b.$.style.cssText&&(c=b.$.style.cssText);this.setValue(c);var e=b.$.style.height,c=b.$.style.width,
+e=(e?e:"").match(k),c=(c?c:"").match(k);this.attributesInStyle={height:!!e,width:!!c}}},onChange:function(){i.call(this,"info:cmbFloat info:cmbAlign info:txtVSpace info:txtHSpace info:txtBorder info:txtWidth info:txtHeight".split(" "));g(this)},commit:function(a,b){a==f&&(this.getValue()||this.isChanged())&&b.setAttribute("style",this.getValue())}}]}]}};CKEDITOR.dialog.add("image",function(c){return r(c,"image")});CKEDITOR.dialog.add("imagebutton",function(c){return r(c,"imagebutton")})})();
\ No newline at end of file
diff --git a/share/static/RichText/skins/office2003/images/noimage.png b/share/static/RichText/plugins/image/images/noimage.png
similarity index 100%
rename from share/static/RichText/skins/office2003/images/noimage.png
rename to share/static/RichText/plugins/image/images/noimage.png
diff --git a/share/static/RichText/plugins/link/dialogs/anchor.js b/share/static/RichText/plugins/link/dialogs/anchor.js
index 91391f6..4c5153c 100644
--- a/share/static/RichText/plugins/link/dialogs/anchor.js
+++ b/share/static/RichText/plugins/link/dialogs/anchor.js
@@ -1,6 +1,8 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('anchor',function(a){var b=function(c,d,e){var g=this;g.editMode=true;g.editObj=e;var f=g.editObj.getAttribute('name');if(f)g.setValueOf('info','txtName',f);else g.setValueOf('info','txtName','');};return{title:a.lang.anchor.title,minWidth:300,minHeight:60,onOk:function(){var f=this;var c=f.getValueOf('info','txtName'),d=CKEDITOR.env.ie?a.document.createElement('<a name="'+CKEDITOR.tools.htmlEncode(c)+'">'):a.document.createElement('a');if(f.editMode){f.editObj.copyAttributes(d,{name:1});f.editObj.moveChildren(d);}d.removeAttribute('_cke_saved_name');d.setAttribute('name',c);var e=a.createFakeElement(d,'cke_anchor','anchor');if(!f.editMode)a.insertElement(e);else{e.replace(f.fakeObj);a.getSelection().selectElement(e);}return true;},onShow:function(){var e=this;e.editObj=false;e.fakeObj=false;e.editMode=false;var c=a.getSelection(),d=c.getSelectedElement();if(d&&d.getAttribute('_cke_real_element_type')&&d.getAttribute('_cke_real_element_type')=='anchor'){e
.fakeObj=d;d=a.restoreRealElement(e.fakeObj);b.apply(e,[a,c,d]);c.selectElement(e.fakeObj);}e.getContentElement('info','txtName').focus();},contents:[{id:'info',label:a.lang.anchor.title,accessKey:'I',elements:[{type:'text',id:'txtName',label:a.lang.anchor.name,required:true,validate:function(){if(!this.getValue()){alert(a.lang.anchor.errorName);return false;}return true;}}]}]};});
+CKEDITOR.dialog.add("anchor",function(c){var d=function(a){this._.selectedElement=a;this.setValueOf("info","txtName",a.data("cke-saved-name")||"")};return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=c.document.createElement("a",{attributes:a}),c.createFakeElement(a,"cke_anchor","anchor").replace(this._.selectedElement)):
+this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(CKEDITOR.plugins.link.synAnchorSelector&&(a["class"]="cke_anchor_empty"),CKEDITOR.plugins.link.emptyAnchorFix&&(a.contenteditable="false",a["data-cke-editable"]=1),a=c.document.createElement("a",{attributes:a}),CKEDITOR.plugins.link.fakeAnchor&&(a=c.createFakeElement(a,"cke_anchor","anchor")),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",
+attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement();if(b)CKEDITOR.plugins.link.fakeAnchor?((a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b))&&d.call(this,a),this._.selectedElement=b):b.is("a")&&b.hasAttribute("name")&&d.call(this,b);else if(b=CKEDITOR.plugins.link.getSelectedLink(c))d.call(this,b),a.selectElement(b);this.getContentElement("info","txtName").focus()},contents:[{id:"info",
+label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/link/dialogs/link.js b/share/static/RichText/plugins/link/dialogs/link.js
index 82467f0..33533b5 100644
--- a/share/static/RichText/plugins/link/dialogs/link.js
+++ b/share/static/RichText/plugins/link/dialogs/link.js
@@ -1,11 +1,36 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('link',function(a){var b=CKEDITOR.plugins.link,c=function(){var C=this.getDialog(),D=C.getContentElement('target','popupFeatures'),E=C.getContentElement('target','linkTargetName'),F=this.getValue();if(!D||!E)return;D=D.getElement();D.hide();E.setValue('');switch(F){case 'frame':E.setLabel(a.lang.link.targetFrameName);E.getElement().show();break;case 'popup':D.show();E.setLabel(a.lang.link.targetPopupName);E.getElement().show();break;default:E.setValue(F);E.getElement().hide();break;}},d=function(){var C=this.getDialog(),D=['urlOptions','anchorOptions','emailOptions'],E=this.getValue(),F=C.definition.getContents('upload'),G=F&&F.hidden;if(E=='url'){if(a.config.linkShowTargetTab)C.showPage('target');if(!G)C.showPage('upload');}else{C.hidePage('target');if(!G)C.hidePage('upload');}for(var H=0;H<D.length;H++){var I=C.getContentElement('info',D[H]);if(!I)continue;I=I.getElement().getParent().getParent();if(D[H]==E+'Options')I.show();else I.hide();}},e=/^javasc
ript:/,f=/^mailto:([^?]+)(?:\?(.+))?$/,g=/subject=([^;?:@&=$,\/]*)/,h=/body=([^;?:@&=$,\/]*)/,i=/^#(.*)$/,j=/^((?:http|https|ftp|news):\/\/)?(.*)$/,k=/^(_(?:self|top|parent|blank))$/,l=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,m=/^javascript:([^(]+)\(([^)]+)\)$/,n=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,o=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,p=function(C,D){var E=D&&(D.getAttribute('_cke_saved_href')||D.getAttribute('href'))||'',F,G,H,I,J={};if(F=E.match(e))if(y=='encode')E=E.replace(l,function(Z,aa,ab){return 'mailto:'+String.fromCharCode.apply(String,aa.split(','))+(ab&&w(ab));});else if(y)E.replace(m,function(Z,aa,ab){if(aa==z.name){J.type='email';var ac=J.email={},ad=/[^,\s]+/g,ae=/(^')|('$)/g,af=ab.match(ad),ag=af.length,ah,ai;for(var aj=0;aj<ag;aj++){ai=decodeURIComponent(w(af[aj].replace(ae,'')));ah=z.params[aj].toLowerCase();ac[ah]=ai;}ac.address=[ac.name,ac
.domain].join('@');}});if(!J.type)if(H=E.match(i)){J.type='anchor';J.anchor={};J.anchor.name=J.anchor.id=H[1];}else if(G=E.match(f)){var K=E.match(g),L=E.match(h);J.type='email';var M=J.email={};M.address=G[1];K&&(M.subject=decodeURIComponent(K[1]));L&&(M.body=decodeURIComponent(L[1]));}else if(E&&(I=E.match(j))){J.type='url';J.url={};J.url.protocol=I[1];J.url.url=I[2];}else J.type='url';if(D){var N=D.getAttribute('target');J.target={};J.adv={};if(!N){var O=D.getAttribute('_cke_pa_onclick')||D.getAttribute('onclick'),P=O&&O.match(n);
-if(P){J.target.type='popup';J.target.name=P[1];var Q;while(Q=o.exec(P[2])){if(Q[2]=='yes'||Q[2]=='1')J.target[Q[1]]=true;else if(isFinite(Q[2]))J.target[Q[1]]=Q[2];}}}else{var R=N.match(k);if(R)J.target.type=J.target.name=N;else{J.target.type='frame';J.target.name=N;}}var S=this,T=function(Z,aa){var ab=D.getAttribute(aa);if(ab!==null)J.adv[Z]=ab||'';};T('advId','id');T('advLangDir','dir');T('advAccessKey','accessKey');T('advName','name');T('advLangCode','lang');T('advTabIndex','tabindex');T('advTitle','title');T('advContentType','type');T('advCSSClasses','class');T('advCharset','charset');T('advStyles','style');}var U=C.document.getElementsByTag('img'),V=new CKEDITOR.dom.nodeList(C.document.$.anchors),W=J.anchors=[];for(var X=0;X<U.count();X++){var Y=U.getItem(X);if(Y.getAttribute('_cke_realelement')&&Y.getAttribute('_cke_real_element_type')=='anchor')W.push(C.restoreRealElement(Y));}for(X=0;X<V.count();X++)W.push(V.getItem(X));for(X=0;X<W.length;X++){Y=W[X];W[X]={name:Y.get
Attribute('name'),id:Y.getAttribute('id')};}this._.selectedElement=D;return J;},q=function(C,D){if(D[C])this.setValue(D[C][this.id]||'');},r=function(C){return q.call(this,'target',C);},s=function(C){return q.call(this,'adv',C);},t=function(C,D){if(!D[C])D[C]={};D[C][this.id]=this.getValue()||'';},u=function(C){return t.call(this,'target',C);},v=function(C){return t.call(this,'adv',C);};function w(C){return C.replace(/\\'/g,"'");};function x(C){return C.replace(/'/g,'\\$&');};var y=a.config.emailProtection||'';if(y&&y!='encode'){var z={};y.replace(/^([^(]+)\(([^)]+)\)$/,function(C,D,E){z.name=D;z.params=[];E.replace(/[^,\s]+/g,function(F){z.params.push(F);});});}function A(C){var D,E=z.name,F=z.params,G,H;D=[E,'('];for(var I=0;I<F.length;I++){G=F[I].toLowerCase();H=C[G];I>0&&D.push(',');D.push("'",H?x(encodeURIComponent(C[G])):'',"'");}D.push(')');return D.join('');};function B(C){var D,E=C.length,F=[];for(var G=0;G<E;G++){D=C.charCodeAt(G);F.push(D);}return 'String.fromChar
Code('+F.join(',')+')';};return{title:a.lang.link.title,minWidth:350,minHeight:230,contents:[{id:'info',label:a.lang.link.info,title:a.lang.link.info,elements:[{id:'linkType',type:'select',label:a.lang.link.type,'default':'url',items:[[a.lang.link.toUrl,'url'],[a.lang.link.toAnchor,'anchor'],[a.lang.link.toEmail,'email']],onChange:d,setup:function(C){if(C.type)this.setValue(C.type);},commit:function(C){C.type=this.getValue();}},{type:'vbox',id:'urlOptions',children:[{type:'hbox',widths:['25%','75%'],children:[{id:'protocol',type:'select',label:a.lang.common.protocol,'default':'http://',items:[['http://â','http://'],['https://â','https://'],['ftp://â','ftp://'],['news://â','news://'],[a.lang.link.other,'']],setup:function(C){if(C.url)this.setValue(C.url.protocol||'');
-},commit:function(C){if(!C.url)C.url={};C.url.protocol=this.getValue();}},{type:'text',id:'url',label:a.lang.common.url,required:true,onLoad:function(){this.allowOnChange=true;},onKeyUp:function(){var H=this;H.allowOnChange=false;var C=H.getDialog().getContentElement('info','protocol'),D=H.getValue(),E=/^(http|https|ftp|news):\/\/(?=.)/gi,F=/^((javascript:)|[#\/\.\?])/gi,G=E.exec(D);if(G){H.setValue(D.substr(G[0].length));C.setValue(G[0].toLowerCase());}else if(F.test(D))C.setValue('');H.allowOnChange=true;},onChange:function(){if(this.allowOnChange)this.onKeyUp();},validate:function(){var C=this.getDialog();if(C.getContentElement('info','linkType')&&C.getValueOf('info','linkType')!='url')return true;if(this.getDialog().fakeObj)return true;var D=CKEDITOR.dialog.validate.notEmpty(a.lang.link.noUrl);return D.apply(this);},setup:function(C){this.allowOnChange=false;if(C.url)this.setValue(C.url.url);this.allowOnChange=true;},commit:function(C){this.onChange();if(!C.url)C.url={};
C.url.url=this.getValue();this.allowOnChange=false;}}],setup:function(C){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().show();}},{type:'button',id:'browse',hidden:'true',filebrowser:'info:url',label:a.lang.common.browseServer}]},{type:'vbox',id:'anchorOptions',width:260,align:'center',padding:0,children:[{type:'fieldset',id:'selectAnchorText',label:a.lang.link.selectAnchor,setup:function(C){if(C.anchors.length>0)this.getElement().show();else this.getElement().hide();},children:[{type:'hbox',id:'selectAnchor',children:[{type:'select',id:'anchorName','default':'',label:a.lang.link.anchorName,style:'width: 100%;',items:[['']],setup:function(C){var F=this;F.clear();F.add('');for(var D=0;D<C.anchors.length;D++){if(C.anchors[D].name)F.add(C.anchors[D].name);}if(C.anchor)F.setValue(C.anchor.name);var E=F.getDialog().getContentElement('info','linkType');if(E&&E.getValue()=='email')F.focus();},commit:function(C){if(!C.anchor)C.anchor={};C.anchor.name=thi
s.getValue();}},{type:'select',id:'anchorId','default':'',label:a.lang.link.anchorId,style:'width: 100%;',items:[['']],setup:function(C){var E=this;E.clear();E.add('');for(var D=0;D<C.anchors.length;D++){if(C.anchors[D].id)E.add(C.anchors[D].id);}if(C.anchor)E.setValue(C.anchor.id);},commit:function(C){if(!C.anchor)C.anchor={};C.anchor.id=this.getValue();}}],setup:function(C){if(C.anchors.length>0)this.getElement().show();else this.getElement().hide();}}]},{type:'html',id:'noAnchors',style:'text-align: center;',html:'<div role="label" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(a.lang.link.noAnchors)+'</div>',focus:true,setup:function(C){if(C.anchors.length<1)this.getElement().show();
-else this.getElement().hide();}}],setup:function(C){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().hide();}},{type:'vbox',id:'emailOptions',padding:1,children:[{type:'text',id:'emailAddress',label:a.lang.link.emailAddress,required:true,validate:function(){var C=this.getDialog();if(!C.getContentElement('info','linkType')||C.getValueOf('info','linkType')!='email')return true;var D=CKEDITOR.dialog.validate.notEmpty(a.lang.link.noEmail);return D.apply(this);},setup:function(C){if(C.email)this.setValue(C.email.address);var D=this.getDialog().getContentElement('info','linkType');if(D&&D.getValue()=='email')this.select();},commit:function(C){if(!C.email)C.email={};C.email.address=this.getValue();}},{type:'text',id:'emailSubject',label:a.lang.link.emailSubject,setup:function(C){if(C.email)this.setValue(C.email.subject);},commit:function(C){if(!C.email)C.email={};C.email.subject=this.getValue();}},{type:'textarea',id:'emailBody',label:a.lang.link.emailBod
y,rows:3,'default':'',setup:function(C){if(C.email)this.setValue(C.email.body);},commit:function(C){if(!C.email)C.email={};C.email.body=this.getValue();}}],setup:function(C){if(!this.getDialog().getContentElement('info','linkType'))this.getElement().hide();}}]},{id:'target',label:a.lang.link.target,title:a.lang.link.target,elements:[{type:'hbox',widths:['50%','50%'],children:[{type:'select',id:'linkTargetType',label:a.lang.common.target,'default':'notSet',style:'width : 100%;',items:[[a.lang.common.notSet,'notSet'],[a.lang.link.targetFrame,'frame'],[a.lang.link.targetPopup,'popup'],[a.lang.common.targetNew,'_blank'],[a.lang.common.targetTop,'_top'],[a.lang.common.targetSelf,'_self'],[a.lang.common.targetParent,'_parent']],onChange:c,setup:function(C){if(C.target)this.setValue(C.target.type);c.call(this);},commit:function(C){if(!C.target)C.target={};C.target.type=this.getValue();}},{type:'text',id:'linkTargetName',label:a.lang.link.targetFrameName,'default':'',setup:function(
C){if(C.target)this.setValue(C.target.name);},commit:function(C){if(!C.target)C.target={};C.target.name=this.getValue().replace(/\W/gi,'');}}]},{type:'vbox',width:260,align:'center',padding:2,id:'popupFeatures',children:[{type:'fieldset',label:a.lang.link.popupFeatures,children:[{type:'hbox',children:[{type:'checkbox',id:'resizable',label:a.lang.link.popupResizable,setup:r,commit:u},{type:'checkbox',id:'status',label:a.lang.link.popupStatusBar,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'location',label:a.lang.link.popupLocationBar,setup:r,commit:u},{type:'checkbox',id:'toolbar',label:a.lang.link.popupToolbar,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'menubar',label:a.lang.link.popupMenuBar,setup:r,commit:u},{type:'checkbox',id:'fullscreen',label:a.lang.link.popupFullScreen,setup:r,commit:u}]},{type:'hbox',children:[{type:'checkbox',id:'scrollbars',label:a.lang.link.popupScrollBars,setup:r,commit:u},{type:'checkbox',id:'dependent',labe
l:a.lang.link.popupDependent,setup:r,commit:u}]},{type:'hbox',children:[{type:'text',widths:['30%','70%'],labelLayout:'horizontal',label:a.lang.link.popupWidth,id:'width',setup:r,commit:u},{type:'text',labelLayout:'horizontal',widths:['55%','45%'],label:a.lang.link.popupLeft,id:'left',setup:r,commit:u}]},{type:'hbox',children:[{type:'text',labelLayout:'horizontal',widths:['30%','70%'],label:a.lang.link.popupHeight,id:'height',setup:r,commit:u},{type:'text',labelLayout:'horizontal',label:a.lang.link.popupTop,widths:['55%','45%'],id:'top',setup:r,commit:u}]}]}]}]},{id:'upload',label:a.lang.link.upload,title:a.lang.link.upload,hidden:true,filebrowser:'uploadButton',elements:[{type:'file',id:'upload',label:a.lang.common.upload,style:'height:40px',size:29},{type:'fileButton',id:'uploadButton',label:a.lang.common.uploadSubmit,filebrowser:'info:url','for':['upload','upload']}]},{id:'advanced',label:a.lang.link.advanced,title:a.lang.link.advanced,elements:[{type:'vbox',padding:1,chi
ldren:[{type:'hbox',widths:['45%','35%','20%'],children:[{type:'text',id:'advId',label:a.lang.link.id,setup:s,commit:v},{type:'select',id:'advLangDir',label:a.lang.link.langDir,'default':'',style:'width:110px',items:[[a.lang.common.notSet,''],[a.lang.link.langDirLTR,'ltr'],[a.lang.link.langDirRTL,'rtl']],setup:s,commit:v},{type:'text',id:'advAccessKey',width:'80px',label:a.lang.link.acccessKey,maxLength:1,setup:s,commit:v}]},{type:'hbox',widths:['45%','35%','20%'],children:[{type:'text',label:a.lang.link.name,id:'advName',setup:s,commit:v},{type:'text',label:a.lang.link.langCode,id:'advLangCode',width:'110px','default':'',setup:s,commit:v},{type:'text',label:a.lang.link.tabIndex,id:'advTabIndex',width:'80px',maxLength:5,setup:s,commit:v}]}]},{type:'vbox',padding:1,children:[{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:a.lang.link.advisoryTitle,'default':'',id:'advTitle',setup:s,commit:v},{type:'text',label:a.lang.link.advisoryContentType,'default':'',id:'ad
vContentType',setup:s,commit:v}]},{type:'hbox',widths:['45%','55%'],children:[{type:'text',label:a.lang.link.cssClasses,'default':'',id:'advCSSClasses',setup:s,commit:v},{type:'text',label:a.lang.link.charset,'default':'',id:'advCharset',setup:s,commit:v}]},{type:'hbox',children:[{type:'text',label:a.lang.link.styles,'default':'',id:'advStyles',setup:s,commit:v}]}]}]}],onShow:function(){var F=this;
-F.fakeObj=false;var C=F.getParentEditor(),D=C.getSelection(),E=null;if((E=b.getSelectedLink(C))&&E.hasAttribute('href'))D.selectElement(E);else if((E=D.getSelectedElement())&&E.is('img')&&E.getAttribute('_cke_real_element_type')&&E.getAttribute('_cke_real_element_type')=='anchor'){F.fakeObj=E;E=C.restoreRealElement(F.fakeObj);D.selectElement(F.fakeObj);}else E=null;F.setupContent(p.apply(F,[C,E]));},onOk:function(){var C={href:'javascript:void(0)/*'+CKEDITOR.tools.getNextNumber()+'*/'},D=[],E={href:C.href},F=this,G=this.getParentEditor();this.commitContent(E);switch(E.type||'url'){case 'url':var H=E.url&&E.url.protocol!=undefined?E.url.protocol:'http://',I=E.url&&E.url.url||'';C._cke_saved_href=I.indexOf('/')===0?I:H+I;break;case 'anchor':var J=E.anchor&&E.anchor.name,K=E.anchor&&E.anchor.id;C._cke_saved_href='#'+(J||K||'');break;case 'email':var L,M=E.email,N=M.address;switch(y){case '':case 'encode':var O=encodeURIComponent(M.subject||''),P=encodeURIComponent(M.body||''),Q
=[];O&&Q.push('subject='+O);P&&Q.push('body='+P);Q=Q.length?'?'+Q.join('&'):'';if(y=='encode'){L=["javascript:void(location.href='mailto:'+",B(N)];Q&&L.push("+'",x(Q),"'");L.push(')');}else L=['mailto:',N,Q];break;default:var R=N.split('@',2);M.name=R[0];M.domain=R[1];L=['javascript:',A(M)];}C._cke_saved_href=L.join('');break;}if(E.target)if(E.target.type=='popup'){var S=["window.open(this.href, '",E.target.name||'',"', '"],T=['resizable','status','location','toolbar','menubar','fullscreen','scrollbars','dependent'],U=T.length,V=function(ah){if(E.target[ah])T.push(ah+'='+E.target[ah]);};for(var W=0;W<U;W++)T[W]=T[W]+(E.target[T[W]]?'=yes':'=no');V('width');V('left');V('height');V('top');S.push(T.join(','),"'); return false;");C._cke_pa_onclick=S.join('');}else{if(E.target.type!='notSet'&&E.target.name)C.target=E.target.name;else D.push('target');D.push('_cke_pa_onclick','onclick');}if(E.adv){var X=function(ah,ai){var aj=E.adv[ah];if(aj)C[ai]=aj;else D.push(ai);};if(this._.se
lectedElement)X('advId','id');X('advLangDir','dir');X('advAccessKey','accessKey');X('advName','name');X('advLangCode','lang');X('advTabIndex','tabindex');X('advTitle','title');X('advContentType','type');X('advCSSClasses','class');X('advCharset','charset');X('advStyles','style');}if(!this._.selectedElement){var Y=G.getSelection(),Z=Y.getRanges(true);if(Z.length==1&&Z[0].collapsed){var aa=new CKEDITOR.dom.text(E.type=='email'?E.email.address:C._cke_saved_href,G.document);Z[0].insertNode(aa);Z[0].selectNodeContents(aa);Y.selectRanges(Z);
-}var ab=new CKEDITOR.style({element:'a',attributes:C});ab.type=CKEDITOR.STYLE_INLINE;ab.apply(G.document);if(E.adv&&E.adv.advId){var ac=this.getParentEditor().document.$.getElementsByTagName('a');for(W=0;W<ac.length;W++){if(ac[W].href==C.href){ac[W].id=E.adv.advId;break;}}}}else{var ad=this._.selectedElement,ae=ad.getAttribute('_cke_saved_href'),af=ad.getHtml();if(CKEDITOR.env.ie&&C.name!=ad.getAttribute('name')){var ag=new CKEDITOR.dom.element('<a name="'+CKEDITOR.tools.htmlEncode(C.name)+'">',G.document);Y=G.getSelection();ad.moveChildren(ag);ad.copyAttributes(ag,{name:1});ag.replace(ad);ad=ag;Y.selectElement(ad);}ad.setAttributes(C);ad.removeAttributes(D);if(ae==af||E.type=='email'&&af.indexOf('@')!=-1)ad.setHtml(E.type=='email'?E.email.address:C._cke_saved_href);if(ad.getAttribute('name'))ad.addClass('cke_anchor');else ad.removeClass('cke_anchor');if(this.fakeObj)G.createFakeElement(ad,'cke_anchor','anchor').replace(this.fakeObj);delete this._.selectedElement;}},onLoad:f
unction(){if(!a.config.linkShowAdvancedTab)this.hidePage('advanced');if(!a.config.linkShowTargetTab)this.hidePage('target');},onFocus:function(){var C=this.getContentElement('info','linkType'),D;if(C&&C.getValue()=='url'){D=this.getContentElement('info','url');D.select();}}};});
+CKEDITOR.dialog.add("link",function(n){var p,q;function r(a){return a.replace(/'/g,"\\$&")}function t(a){var g,c=p,d,e;g=[q,"("];for(var b=0;b<c.length;b++)d=c[b].toLowerCase(),e=a[d],0<b&&g.push(","),g.push("'",e?r(encodeURIComponent(a[d])):"","'");g.push(")");return g.join("")}function u(a){for(var g,c=a.length,d=[],e=0;e<c;e++)g=a.charCodeAt(e),d.push(g);return"String.fromCharCode("+d.join(",")+")"}function v(a){return(a=a.getAttribute("class"))?a.replace(/\s*(?:cke_anchor_empty|cke_anchor)(?:\s*$)?/g,
+""):""}var w=CKEDITOR.plugins.link,s=function(){var a=this.getDialog(),g=a.getContentElement("target","popupFeatures"),a=a.getContentElement("target","linkTargetName"),c=this.getValue();if(g&&a)switch(g=g.getElement(),g.hide(),a.setValue(""),c){case "frame":a.setLabel(n.lang.link.targetFrameName);a.getElement().show();break;case "popup":g.show();a.setLabel(n.lang.link.targetPopupName);a.getElement().show();break;default:a.setValue(c),a.getElement().hide()}},x=/^javascript:/,y=/^mailto:([^?]+)(?:\?(.+))?$/,
+z=/subject=([^;?:@&=$,\/]*)/,A=/body=([^;?:@&=$,\/]*)/,B=/^#(.*)$/,C=/^((?:http|https|ftp|news):\/\/)?(.*)$/,D=/^(_(?:self|top|parent|blank))$/,E=/^javascript:void\(location\.href='mailto:'\+String\.fromCharCode\(([^)]+)\)(?:\+'(.*)')?\)$/,F=/^javascript:([^(]+)\(([^)]+)\)$/,G=/\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*/,H=/(?:^|,)([^=]+)=(\d+|yes|no)/gi,I=function(a,g){var c=g&&(g.data("cke-saved-href")||g.getAttribute("href"))||"",d,e,b=
+{};c.match(x)&&("encode"==o?c=c.replace(E,function(a,c,b){return"mailto:"+String.fromCharCode.apply(String,c.split(","))+(b&&b.replace(/\\'/g,"'"))}):o&&c.replace(F,function(a,c,d){if(c==q){b.type="email";for(var a=b.email={},c=/(^')|('$)/g,d=d.match(/[^,\s]+/g),e=d.length,g,f,h=0;h<e;h++)g=decodeURIComponent,f=d[h].replace(c,"").replace(/\\'/g,"'"),f=g(f),g=p[h].toLowerCase(),a[g]=f;a.address=[a.name,a.domain].join("@")}}));if(!b.type)if(d=c.match(B))b.type="anchor",b.anchor={},b.anchor.name=b.anchor.id=
+d[1];else if(d=c.match(y)){e=c.match(z);c=c.match(A);b.type="email";var f=b.email={};f.address=d[1];e&&(f.subject=decodeURIComponent(e[1]));c&&(f.body=decodeURIComponent(c[1]))}else c&&(e=c.match(C))?(b.type="url",b.url={},b.url.protocol=e[1],b.url.url=e[2]):b.type="url";if(g){d=g.getAttribute("target");b.target={};b.adv={};if(d)d.match(D)?b.target.type=b.target.name=d:(b.target.type="frame",b.target.name=d);else if(d=(d=g.data("cke-pa-onclick")||g.getAttribute("onclick"))&&d.match(G)){b.target.type=
+"popup";for(b.target.name=d[1];c=H.exec(d[2]);)("yes"==c[2]||"1"==c[2])&&!(c[1]in{height:1,width:1,top:1,left:1})?b.target[c[1]]=!0:isFinite(c[2])&&(b.target[c[1]]=c[2])}d=function(a,c){var d=g.getAttribute(c);null!==d&&(b.adv[a]=d||"")};d("advId","id");d("advLangDir","dir");d("advAccessKey","accessKey");b.adv.advName=g.data("cke-saved-name")||g.getAttribute("name")||"";d("advLangCode","lang");d("advTabIndex","tabindex");d("advTitle","title");d("advContentType","type");CKEDITOR.plugins.link.synAnchorSelector?
+b.adv.advCSSClasses=v(g):d("advCSSClasses","class");d("advCharset","charset");d("advStyles","style");d("advRel","rel")}d=b.anchors=[];var h;if(CKEDITOR.plugins.link.emptyAnchorFix){f=a.document.getElementsByTag("a");c=0;for(e=f.count();c<e;c++)if(h=f.getItem(c),h.data("cke-saved-name")||h.hasAttribute("name"))d.push({name:h.data("cke-saved-name")||h.getAttribute("name"),id:h.getAttribute("id")})}else{f=new CKEDITOR.dom.nodeList(a.document.$.anchors);c=0;for(e=f.count();c<e;c++)h=f.getItem(c),d[c]=
+{name:h.getAttribute("name"),id:h.getAttribute("id")}}if(CKEDITOR.plugins.link.fakeAnchor){f=a.document.getElementsByTag("img");c=0;for(e=f.count();c<e;c++)(h=CKEDITOR.plugins.link.tryRestoreFakeAnchor(a,f.getItem(c)))&&d.push({name:h.getAttribute("name"),id:h.getAttribute("id")})}this._.selectedElement=g;return b},j=function(a){a.target&&this.setValue(a.target[this.id]||"")},k=function(a){a.adv&&this.setValue(a.adv[this.id]||"")},l=function(a){a.target||(a.target={});a.target[this.id]=this.getValue()||
+""},m=function(a){a.adv||(a.adv={});a.adv[this.id]=this.getValue()||""},o=n.config.emailProtection||"";o&&"encode"!=o&&(q=p=void 0,o.replace(/^([^(]+)\(([^)]+)\)$/,function(a,b,c){q=b;p=[];c.replace(/[^,\s]+/g,function(a){p.push(a)})}));var i=n.lang.common,b=n.lang.link;return{title:b.title,minWidth:350,minHeight:230,contents:[{id:"info",label:b.info,title:b.info,elements:[{id:"linkType",type:"select",label:b.type,"default":"url",items:[[b.toUrl,"url"],[b.toAnchor,"anchor"],[b.toEmail,"email"]],onChange:function(){var a=
+this.getDialog(),b=["urlOptions","anchorOptions","emailOptions"],c=this.getValue(),d=a.definition.getContents("upload"),d=d&&d.hidden;if(c=="url"){n.config.linkShowTargetTab&&a.showPage("target");d||a.showPage("upload")}else{a.hidePage("target");d||a.hidePage("upload")}for(d=0;d<b.length;d++){var e=a.getContentElement("info",b[d]);if(e){e=e.getElement().getParent().getParent();b[d]==c+"Options"?e.show():e.hide()}}a.layout()},setup:function(a){a.type&&this.setValue(a.type)},commit:function(a){a.type=
+this.getValue()}},{type:"vbox",id:"urlOptions",children:[{type:"hbox",widths:["25%","75%"],children:[{id:"protocol",type:"select",label:i.protocol,"default":"http://",items:[["http://â","http://"],["https://â","https://"],["ftp://â","ftp://"],["news://â","news://"],[b.other,""]],setup:function(a){a.url&&this.setValue(a.url.protocol||"")},commit:function(a){if(!a.url)a.url={};a.url.protocol=this.getValue()}},{type:"text",id:"url",label:i.url,required:!0,onLoad:function(){this.allowOnChange=true},onKeyUp:function(){this.allowOnChange=
+false;var a=this.getDialog().getContentElement("info","protocol"),b=this.getValue(),c=/^((javascript:)|[#\/\.\?])/i,d=/^(http|https|ftp|news):\/\/(?=.)/i.exec(b);if(d){this.setValue(b.substr(d[0].length));a.setValue(d[0].toLowerCase())}else c.test(b)&&a.setValue("");this.allowOnChange=true},onChange:function(){if(this.allowOnChange)this.onKeyUp()},validate:function(){var a=this.getDialog();if(a.getContentElement("info","linkType")&&a.getValueOf("info","linkType")!="url")return true;if(/javascript\:/.test(this.getValue())){alert(i.invalidValue);
+return false}return this.getDialog().fakeObj?true:CKEDITOR.dialog.validate.notEmpty(b.noUrl).apply(this)},setup:function(a){this.allowOnChange=false;a.url&&this.setValue(a.url.url);this.allowOnChange=true},commit:function(a){this.onChange();if(!a.url)a.url={};a.url.url=this.getValue();this.allowOnChange=false}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().show()}},{type:"button",id:"browse",hidden:"true",filebrowser:"info:url",label:i.browseServer}]},
+{type:"vbox",id:"anchorOptions",width:260,align:"center",padding:0,children:[{type:"fieldset",id:"selectAnchorText",label:b.selectAnchor,setup:function(a){a.anchors.length>0?this.getElement().show():this.getElement().hide()},children:[{type:"hbox",id:"selectAnchor",children:[{type:"select",id:"anchorName","default":"",label:b.anchorName,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");for(var b=0;b<a.anchors.length;b++)a.anchors[b].name&&this.add(a.anchors[b].name);a.anchor&&
+this.setValue(a.anchor.name);(a=this.getDialog().getContentElement("info","linkType"))&&a.getValue()=="email"&&this.focus()},commit:function(a){if(!a.anchor)a.anchor={};a.anchor.name=this.getValue()}},{type:"select",id:"anchorId","default":"",label:b.anchorId,style:"width: 100%;",items:[[""]],setup:function(a){this.clear();this.add("");for(var b=0;b<a.anchors.length;b++)a.anchors[b].id&&this.add(a.anchors[b].id);a.anchor&&this.setValue(a.anchor.id)},commit:function(a){if(!a.anchor)a.anchor={};a.anchor.id=
+this.getValue()}}],setup:function(a){a.anchors.length>0?this.getElement().show():this.getElement().hide()}}]},{type:"html",id:"noAnchors",style:"text-align: center;",html:'<div role="note" tabIndex="-1">'+CKEDITOR.tools.htmlEncode(b.noAnchors)+"</div>",focus:!0,setup:function(a){a.anchors.length<1?this.getElement().show():this.getElement().hide()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}},{type:"vbox",id:"emailOptions",padding:1,children:[{type:"text",
+id:"emailAddress",label:b.emailAddress,required:!0,validate:function(){var a=this.getDialog();return!a.getContentElement("info","linkType")||a.getValueOf("info","linkType")!="email"?true:CKEDITOR.dialog.validate.notEmpty(b.noEmail).apply(this)},setup:function(a){a.email&&this.setValue(a.email.address);(a=this.getDialog().getContentElement("info","linkType"))&&a.getValue()=="email"&&this.select()},commit:function(a){if(!a.email)a.email={};a.email.address=this.getValue()}},{type:"text",id:"emailSubject",
+label:b.emailSubject,setup:function(a){a.email&&this.setValue(a.email.subject)},commit:function(a){if(!a.email)a.email={};a.email.subject=this.getValue()}},{type:"textarea",id:"emailBody",label:b.emailBody,rows:3,"default":"",setup:function(a){a.email&&this.setValue(a.email.body)},commit:function(a){if(!a.email)a.email={};a.email.body=this.getValue()}}],setup:function(){this.getDialog().getContentElement("info","linkType")||this.getElement().hide()}}]},{id:"target",label:b.target,title:b.target,elements:[{type:"hbox",
+widths:["50%","50%"],children:[{type:"select",id:"linkTargetType",label:i.target,"default":"notSet",style:"width : 100%;",items:[[i.notSet,"notSet"],[b.targetFrame,"frame"],[b.targetPopup,"popup"],[i.targetNew,"_blank"],[i.targetTop,"_top"],[i.targetSelf,"_self"],[i.targetParent,"_parent"]],onChange:s,setup:function(a){a.target&&this.setValue(a.target.type||"notSet");s.call(this)},commit:function(a){if(!a.target)a.target={};a.target.type=this.getValue()}},{type:"text",id:"linkTargetName",label:b.targetFrameName,
+"default":"",setup:function(a){a.target&&this.setValue(a.target.name)},commit:function(a){if(!a.target)a.target={};a.target.name=this.getValue().replace(/\W/gi,"")}}]},{type:"vbox",width:"100%",align:"center",padding:2,id:"popupFeatures",children:[{type:"fieldset",label:b.popupFeatures,children:[{type:"hbox",children:[{type:"checkbox",id:"resizable",label:b.popupResizable,setup:j,commit:l},{type:"checkbox",id:"status",label:b.popupStatusBar,setup:j,commit:l}]},{type:"hbox",children:[{type:"checkbox",
+id:"location",label:b.popupLocationBar,setup:j,commit:l},{type:"checkbox",id:"toolbar",label:b.popupToolbar,setup:j,commit:l}]},{type:"hbox",children:[{type:"checkbox",id:"menubar",label:b.popupMenuBar,setup:j,commit:l},{type:"checkbox",id:"fullscreen",label:b.popupFullScreen,setup:j,commit:l}]},{type:"hbox",children:[{type:"checkbox",id:"scrollbars",label:b.popupScrollBars,setup:j,commit:l},{type:"checkbox",id:"dependent",label:b.popupDependent,setup:j,commit:l}]},{type:"hbox",children:[{type:"text",
+widths:["50%","50%"],labelLayout:"horizontal",label:i.width,id:"width",setup:j,commit:l},{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:b.popupLeft,id:"left",setup:j,commit:l}]},{type:"hbox",children:[{type:"text",labelLayout:"horizontal",widths:["50%","50%"],label:i.height,id:"height",setup:j,commit:l},{type:"text",labelLayout:"horizontal",label:b.popupTop,widths:["50%","50%"],id:"top",setup:j,commit:l}]}]}]}]},{id:"upload",label:b.upload,title:b.upload,hidden:!0,filebrowser:"uploadButton",
+elements:[{type:"file",id:"upload",label:i.upload,style:"height:40px",size:29},{type:"fileButton",id:"uploadButton",label:i.uploadSubmit,filebrowser:"info:url","for":["upload","upload"]}]},{id:"advanced",label:b.advanced,title:b.advanced,elements:[{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",id:"advId",label:b.id,setup:k,commit:m},{type:"select",id:"advLangDir",label:b.langDir,"default":"",style:"width:110px",items:[[i.notSet,""],[b.langDirLTR,"ltr"],
+[b.langDirRTL,"rtl"]],setup:k,commit:m},{type:"text",id:"advAccessKey",width:"80px",label:b.acccessKey,maxLength:1,setup:k,commit:m}]},{type:"hbox",widths:["45%","35%","20%"],children:[{type:"text",label:b.name,id:"advName",setup:k,commit:m},{type:"text",label:b.langCode,id:"advLangCode",width:"110px","default":"",setup:k,commit:m},{type:"text",label:b.tabIndex,id:"advTabIndex",width:"80px",maxLength:5,setup:k,commit:m}]}]},{type:"vbox",padding:1,children:[{type:"hbox",widths:["45%","55%"],children:[{type:"text",
+label:b.advisoryTitle,"default":"",id:"advTitle",setup:k,commit:m},{type:"text",label:b.advisoryContentType,"default":"",id:"advContentType",setup:k,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.cssClasses,"default":"",id:"advCSSClasses",setup:k,commit:m},{type:"text",label:b.charset,"default":"",id:"advCharset",setup:k,commit:m}]},{type:"hbox",widths:["45%","55%"],children:[{type:"text",label:b.rel,"default":"",id:"advRel",setup:k,commit:m},{type:"text",label:b.styles,
+"default":"",id:"advStyles",validate:CKEDITOR.dialog.validate.inlineStyle(n.lang.common.invalidInlineStyle),setup:k,commit:m}]}]}]}],onShow:function(){var a=this.getParentEditor(),b=a.getSelection(),c=null;(c=w.getSelectedLink(a))&&c.hasAttribute("href")?b.selectElement(c):c=null;this.setupContent(I.apply(this,[a,c]))},onOk:function(){var a={},b=[],c={},d=this.getParentEditor();this.commitContent(c);switch(c.type||"url"){case "url":var e=c.url&&c.url.protocol!=void 0?c.url.protocol:"http://",i=c.url&&
+CKEDITOR.tools.trim(c.url.url)||"";a["data-cke-saved-href"]=i.indexOf("/")===0?i:e+i;break;case "anchor":e=c.anchor&&c.anchor.id;a["data-cke-saved-href"]="#"+(c.anchor&&c.anchor.name||e||"");break;case "email":var f=c.email,e=f.address;switch(o){case "":case "encode":var i=encodeURIComponent(f.subject||""),h=encodeURIComponent(f.body||""),f=[];i&&f.push("subject="+i);h&&f.push("body="+h);f=f.length?"?"+f.join("&"):"";if(o=="encode"){e=["javascript:void(location.href='mailto:'+",u(e)];f&&e.push("+'",
+r(f),"'");e.push(")")}else e=["mailto:",e,f];break;default:e=e.split("@",2);f.name=e[0];f.domain=e[1];e=["javascript:",t(f)]}a["data-cke-saved-href"]=e.join("")}if(c.target)if(c.target.type=="popup"){for(var e=["window.open(this.href, '",c.target.name||"","', '"],j=["resizable","status","location","toolbar","menubar","fullscreen","scrollbars","dependent"],i=j.length,f=function(a){c.target[a]&&j.push(a+"="+c.target[a])},h=0;h<i;h++)j[h]=j[h]+(c.target[j[h]]?"=yes":"=no");f("width");f("left");f("height");
+f("top");e.push(j.join(","),"'); return false;");a["data-cke-pa-onclick"]=e.join("");b.push("target")}else{c.target.type!="notSet"&&c.target.name?a.target=c.target.name:b.push("target");b.push("data-cke-pa-onclick","onclick")}if(c.adv){e=function(d,e){var f=c.adv[d];f?a[e]=f:b.push(e)};e("advId","id");e("advLangDir","dir");e("advAccessKey","accessKey");c.adv.advName?a.name=a["data-cke-saved-name"]=c.adv.advName:b=b.concat(["data-cke-saved-name","name"]);e("advLangCode","lang");e("advTabIndex","tabindex");
+e("advTitle","title");e("advContentType","type");e("advCSSClasses","class");e("advCharset","charset");e("advStyles","style");e("advRel","rel")}e=d.getSelection();a.href=a["data-cke-saved-href"];if(this._.selectedElement){d=this._.selectedElement;i=d.data("cke-saved-href");f=d.getHtml();d.setAttributes(a);d.removeAttributes(b);c.adv&&(c.adv.advName&&CKEDITOR.plugins.link.synAnchorSelector)&&d.addClass(d.getChildCount()?"cke_anchor":"cke_anchor_empty");if(i==f||c.type=="email"&&f.indexOf("@")!=-1)d.setHtml(c.type==
+"email"?c.email.address:a["data-cke-saved-href"]);e.selectElement(d);delete this._.selectedElement}else{e=e.getRanges(1)[0];if(e.collapsed){d=new CKEDITOR.dom.text(c.type=="email"?c.email.address:a["data-cke-saved-href"],d.document);e.insertNode(d);e.selectNodeContents(d)}d=new CKEDITOR.style({element:"a",attributes:a});d.type=CKEDITOR.STYLE_INLINE;d.applyToRange(e);e.select()}},onLoad:function(){n.config.linkShowAdvancedTab||this.hidePage("advanced");n.config.linkShowTargetTab||this.hidePage("target")},
+onFocus:function(){var a=this.getContentElement("info","linkType");if(a&&a.getValue()=="url"){a=this.getContentElement("info","url");a.select()}}}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/link/images/anchor.gif b/share/static/RichText/plugins/link/images/anchor.gif
deleted file mode 100644
index 5aa797b..0000000
Binary files a/share/static/RichText/plugins/link/images/anchor.gif and /dev/null differ
diff --git a/share/static/RichText/plugins/link/images/anchor.png b/share/static/RichText/plugins/link/images/anchor.png
new file mode 100644
index 0000000..5025df5
Binary files /dev/null and b/share/static/RichText/plugins/link/images/anchor.png differ
diff --git a/share/static/RichText/plugins/liststyle/dialogs/liststyle.js b/share/static/RichText/plugins/liststyle/dialogs/liststyle.js
index d95e54d..40becff 100644
--- a/share/static/RichText/plugins/liststyle/dialogs/liststyle.js
+++ b/share/static/RichText/plugins/liststyle/dialogs/liststyle.js
@@ -1,7 +1,10 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){function a(d,e){var f;try{f=d.getSelection().getRanges()[0];}catch(g){return null;}f.shrink(CKEDITOR.SHRINK_TEXT);return f.getCommonAncestor().getAscendant(e,true);};var b={a:'lower-alpha',A:'upper-alpha',i:'lower-roman',I:'upper-roman',1:'decimal',disc:'disc',circle:'circle',square:'square'};function c(d,e){if(e=='bulletedListStyle')return{title:d.lang.list.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:'info',accessKey:'I',elements:[{type:'select',label:d.lang.list.type,id:'type',style:'width: 150px; margin: auto;',items:[[d.lang.list.notset,''],[d.lang.list.circle,'circle'],[d.lang.list.disc,'disc'],[d.lang.list.square,'square']],setup:function(g){var h=g.getStyle('list-style-type')||b[g.getAttribute('type')]||g.getAttribute('type')||'';this.setValue(h);},commit:function(g){var h=this.getValue();if(h)g.setStyle('list-style-type',h);else g.removeStyle('list-style-type');}}]}],onShow:function(){var g=this.getParentEditor(),h=a(g,'ul');h&&this.setupContent
(h);},onOk:function(){var g=this.getParentEditor(),h=a(g,'ul');h&&this.commitContent(h);}};else if(e=='numberedListStyle'){var f=[[d.lang.list.notset,''],[d.lang.list.lowerRoman,'lower-roman'],[d.lang.list.upperRoman,'upper-roman'],[d.lang.list.lowerAlpha,'lower-alpha'],[d.lang.list.upperAlpha,'upper-alpha'],[d.lang.list.decimal,'decimal']];if(!CKEDITOR.env.ie||CKEDITOR.env.version>7)f.concat([[d.lang.list.armenian,'armenian'],[d.lang.list.decimalLeadingZero,'decimal-leading-zero'],[d.lang.list.georgian,'georgian'],[d.lang.list.lowerGreek,'lower-greek']]);return{title:d.lang.list.numberedTitle,minWidth:300,minHeight:50,contents:[{id:'info',accessKey:'I',elements:[{type:'hbox',widths:['25%','75%'],children:[{label:d.lang.list.start,type:'text',id:'start',validate:CKEDITOR.dialog.validate.integer(d.lang.list.validateStartNumber),setup:function(g){var h=g.getAttribute('start')||1;h&&this.setValue(h);},commit:function(g){g.setAttribute('start',this.getValue());}},{type:'select',
label:d.lang.list.type,id:'type',style:'width: 100%;',items:f,setup:function(g){var h=g.getStyle('list-style-type')||b[g.getAttribute('type')]||g.getAttribute('type')||'';this.setValue(h);},commit:function(g){var h=this.getValue();if(h)g.setStyle('list-style-type',h);else g.removeStyle('list-style-type');}}]}]}],onShow:function(){var g=this.getParentEditor(),h=a(g,'ol');h&&this.setupContent(h);},onOk:function(){var g=this.getParentEditor(),h=a(g,'ol');h&&this.commitContent(h);}};}};CKEDITOR.dialog.add('numberedListStyle',function(d){return c(d,'numberedListStyle');
-});CKEDITOR.dialog.add('bulletedListStyle',function(d){return c(d,'bulletedListStyle');});})();
+(function(){function d(c,d){var b;try{b=c.getSelection().getRanges()[0]}catch(f){return null}b.shrink(CKEDITOR.SHRINK_TEXT);return c.elementPath(b.getCommonAncestor()).contains(d,1)}function e(c,e){var b=c.lang.liststyle;if("bulletedListStyle"==e)return{title:b.bulletedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"select",label:b.type,id:"type",align:"center",style:"width:150px",items:[[b.notset,""],[b.circle,"circle"],[b.disc,"disc"],[b.square,"square"]],setup:function(a){this.setValue(a.getStyle("list-style-type")||
+h[a.getAttribute("type")]||a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ul"))&&this.commitContent(a)}};if("numberedListStyle"==e){var g=[[b.notset,""],[b.lowerRoman,"lower-roman"],[b.upperRoman,"upper-roman"],[b.lowerAlpha,"lower-alpha"],[b.upperAlpha,"upper-alpha"],
+[b.decimal,"decimal"]];(!CKEDITOR.env.ie||7<CKEDITOR.env.version)&&g.concat([[b.armenian,"armenian"],[b.decimalLeadingZero,"decimal-leading-zero"],[b.georgian,"georgian"],[b.lowerGreek,"lower-greek"]]);return{title:b.numberedTitle,minWidth:300,minHeight:50,contents:[{id:"info",accessKey:"I",elements:[{type:"hbox",widths:["25%","75%"],children:[{label:b.start,type:"text",id:"start",validate:CKEDITOR.dialog.validate.integer(b.validateStartNumber),setup:function(a){this.setValue(a.getFirst(f).getAttribute("value")||
+a.getAttribute("start")||1)},commit:function(a){var b=a.getFirst(f),c=b.getAttribute("value")||a.getAttribute("start")||1;a.getFirst(f).removeAttribute("value");var d=parseInt(this.getValue(),10);isNaN(d)?a.removeAttribute("start"):a.setAttribute("start",d);a=b;b=c;for(d=isNaN(d)?1:d;(a=a.getNext(f))&&b++;)a.getAttribute("value")==b&&a.setAttribute("value",d+b-c)}},{type:"select",label:b.type,id:"type",style:"width: 100%;",items:g,setup:function(a){this.setValue(a.getStyle("list-style-type")||h[a.getAttribute("type")]||
+a.getAttribute("type")||"")},commit:function(a){var b=this.getValue();b?a.setStyle("list-style-type",b):a.removeStyle("list-style-type")}}]}]}],onShow:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.setupContent(a)},onOk:function(){var a=this.getParentEditor();(a=d(a,"ol"))&&this.commitContent(a)}}}}var f=function(c){return c.type==CKEDITOR.NODE_ELEMENT&&c.is("li")},h={a:"lower-alpha",A:"upper-alpha",i:"lower-roman",I:"upper-roman",1:"decimal",disc:"disc",circle:"circle",square:"square"};
+CKEDITOR.dialog.add("numberedListStyle",function(c){return e(c,"numberedListStyle")});CKEDITOR.dialog.add("bulletedListStyle",function(c){return e(c,"bulletedListStyle")})})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/magicline/images/icon.png b/share/static/RichText/plugins/magicline/images/icon.png
new file mode 100644
index 0000000..b5de5ba
Binary files /dev/null and b/share/static/RichText/plugins/magicline/images/icon.png differ
diff --git a/share/static/RichText/plugins/pastefromword/filter/default.js b/share/static/RichText/plugins/pastefromword/filter/default.js
index 922fa66..769760a 100644
--- a/share/static/RichText/plugins/pastefromword/filter/default.js
+++ b/share/static/RichText/plugins/pastefromword/filter/default.js
@@ -1,10 +1,31 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){var a=CKEDITOR.htmlParser.fragment.prototype,b=CKEDITOR.htmlParser.element.prototype;a.onlyChild=b.onlyChild=function(){var h=this.children,i=h.length,j=i==1&&h[0];return j||null;};b.removeAnyChildWithName=function(h){var i=this.children,j=[],k;for(var l=0;l<i.length;l++){k=i[l];if(!k.name)continue;if(k.name==h){j.push(k);i.splice(l--,1);}j=j.concat(k.removeAnyChildWithName(h));}return j;};b.getAncestor=function(h){var i=this.parent;while(i&&!(i.name&&i.name.match(h)))i=i.parent;return i;};a.firstChild=b.firstChild=function(h){var i;for(var j=0;j<this.children.length;j++){i=this.children[j];if(h(i))return i;else if(i.name){i=i.firstChild(h);if(i)return i;}}return null;};b.addStyle=function(h,i,j){var n=this;var k,l='';if(typeof i=='string')l+=h+':'+i+';';else{if(typeof h=='object')for(var m in h){if(h.hasOwnProperty(m))l+=m+':'+h[m]+';';}else l+=h;j=i;}if(!n.attributes)n.attributes={};k=n.attributes.style||'';k=(j?[l,k]:[k,l]).join(';');n.attributes.style=k.repla
ce(/^;|;(?=;)/,'');};CKEDITOR.dtd.parentOf=function(h){var i={};for(var j in this){if(j.indexOf('$')==-1&&this[j][h])i[j]=1;}return i;};var c=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i,d=/^(?:\b0[^\s]*\s*){1,4}$/,e=0,f;CKEDITOR.plugins.pastefromword={utils:{createListBulletMarker:function(h,i){var j=new CKEDITOR.htmlParser.element('cke:listbullet'),k;if(!h){h='decimal';k='ol';}else if(h[2]){if(!isNaN(h[1]))h='decimal';else if(/^[a-z]+$/.test(h[1]))h='lower-alpha';else if(/^[A-Z]+$/.test(h[1]))h='upper-alpha';else h='decimal';k='ol';}else{if(/[l\u00B7\u2002]/.test(h[1]))h='disc';else if(/[\u006F\u00D8]/.test(h[1]))h='circle';else if(/[\u006E\u25C6]/.test(h[1]))h='square';else h='disc';k='ul';}j.attributes={'cke:listtype':k,style:'list-style-type:'+h+';'};j.add(new CKEDITOR.htmlParser.text(i));return j;},isListBulletIndicator:function(h){var i=h.attributes&&h.attributes.style;if(/mso-list\s*:\s*Ignore/i.test(i))return true;},isContainin
gOnlySpaces:function(h){var i;return(i=h.onlyChild())&&/^(:?\s| )+$/.test(i.value);},resolveList:function(h){var i=h.attributes,j;if((j=h.removeAnyChildWithName('cke:listbullet'))&&j.length&&(j=j[0])){h.name='cke:li';if(i.style)i.style=CKEDITOR.plugins.pastefromword.filters.stylesFilter([['text-indent'],['line-height'],[/^margin(:?-left)?$/,null,function(m){var n=m.split(' ');m=n[3]||n[1]||n[0];m=parseInt(m,10);if(!e&&f&&m>f)e=m-f;i['cke:margin']=f=m;}]])(i.style,h)||'';var k=j.attributes,l=k.style;h.addStyle(l);
-CKEDITOR.tools.extend(i,k);return true;}return false;},convertToPx:(function(){var h=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;margin:0px;padding:0px;border:0px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(h);return function(i){if(c.test(i)){h.setStyle('width',i);return h.$.clientWidth+'px';}return i;};})(),getStyleComponents:(function(){var h=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(h);return function(i,j,k){h.setStyle(i,j);var l={},m=k.length;for(var n=0;n<m;n++)l[k[n]]=h.getStyle(k[n]);return l;};})(),listDtdParents:CKEDITOR.dtd.parentOf('ol')},filters:{flattenList:function(h){var i=h.attributes,j=h.parent,k,l=1;while(j){j.attributes&&j.attributes['cke:list']&&l++;j=j.parent;}switch(i.type){case 'a':k='lower-alpha';break;}var m=h.children,n;for(var o=0;o<m.length;o++){n=m[o];var p=n.attribut
es;if(n.name in CKEDITOR.dtd.$listItem){var q=n.children,r=q.length,s=q[r-1];if(s.name in CKEDITOR.dtd.$list){m.splice(o+1,0,s);s.parent=h;if(!--q.length)m.splice(o,1);}n.name='cke:li';p['cke:indent']=l;f=0;p['cke:listtype']=h.name;k&&n.addStyle('list-style-type',k,true);}}delete h.name;i['cke:list']=1;},assembleList:function(h){var i=h.children,j,k,l,m,n,o,p,q,r;for(var s=0;s<i.length;s++){j=i[s];if('cke:li'==j.name){j.name='li';k=j;l=k.attributes;m=k.attributes['cke:listtype'];n=parseInt(l['cke:indent'],10)||e&&Math.ceil(l['cke:margin']/e)||1;l.style&&(l.style=CKEDITOR.plugins.pastefromword.filters.stylesFilter([['list-style-type',m=='ol'?'decimal':'disc']])(l.style)||'');if(!p){p=new CKEDITOR.htmlParser.element(m);p.add(k);i[s]=p;}else{if(n>r){p=new CKEDITOR.htmlParser.element(m);p.add(k);o.add(p);}else if(n<r){var t=r-n,u;while(t--&&(u=p.parent))p=u.parent;p.add(k);}else p.add(k);i.splice(s--,1);}o=k;r=n;}else p=null;}e=0;},falsyFilter:function(h){return false;},stylesFi
lter:function(h,i){return function(j,k){var l=[];j.replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(n,o,p){o=o.toLowerCase();o=='font-family'&&(p=p.replace(/["']/g,''));var q,r,s,t;for(var u=0;u<h.length;u++){if(h[u]){q=h[u][0];r=h[u][1];s=h[u][2];t=h[u][3];if(o.match(q)&&(!r||p.match(r))){o=t||o;i&&(s=s||p);if(typeof s=='function')s=s(p,k,o);if(s&&s.push)o=s[0],s=s[1];if(typeof s=='string')l.push([o,s]);return;}}}!i&&l.push([o,p]);});for(var m=0;m<l.length;m++)l[m]=l[m].join(':');return l.length?l.join(';')+';':false;
-};},elementMigrateFilter:function(h,i){return function(j){var k=i?new CKEDITOR.style(h,i)._.definition:h;j.name=k.element;CKEDITOR.tools.extend(j.attributes,CKEDITOR.tools.clone(k.attributes));j.addStyle(CKEDITOR.style.getStyleText(k));};},styleMigrateFilter:function(h,i){var j=this.elementMigrateFilter;return function(k,l){var m=new CKEDITOR.htmlParser.element(null),n={};n[i]=k;j(h,n)(m);m.children=l.children;l.children=[m];};},bogusAttrFilter:function(h,i){if(i.name.indexOf('cke:')==-1)return false;},applyStyleFilter:null},getRules:function(h){var i=CKEDITOR.dtd,j=CKEDITOR.tools.extend({},i.$block,i.$listItem,i.$tableContent),k=h.config,l=this.filters,m=l.falsyFilter,n=l.stylesFilter,o=l.elementMigrateFilter,p=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),q=this.utils.createListBulletMarker,r=l.flattenList,s=l.assembleList,t=this.utils.isListBulletIndicator,u=this.utils.isContainingOnlySpaces,v=this.utils.resolveList,w=this.utils.convertToPx,x=this.util
s.getStyleComponents,y=this.utils.listDtdParents,z=k.pasteFromWordRemoveFontStyles!==false,A=k.pasteFromWordRemoveStyles!==false;return{elementNames:[[/meta|link|script/,'']],root:function(B){B.filterChildren();s(B);},elements:{'^':function(B){var C;if(CKEDITOR.env.gecko&&(C=l.applyStyleFilter))C(B);},$:function(B){var C=B.name||'',D=B.attributes;if(C in j&&D.style)D.style=n([[/^(:?width|height)$/,null,w]])(D.style)||'';if(C.match(/h\d/)){B.filterChildren();if(v(B))return;o(k['format_'+C])(B);}else if(C in i.$inline){B.filterChildren();if(u(B))delete B.name;}else if(C.indexOf(':')!=-1&&C.indexOf('cke')==-1){B.filterChildren();if(C=='v:imagedata'){var E=B.attributes['o:href'];if(E)B.attributes.src=E;B.name='img';return;}delete B.name;}if(C in y){B.filterChildren();s(B);}},style:function(B){if(CKEDITOR.env.gecko){var C=B.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/),D=C&&C[1],E={};if(D){D.replace(/[\n\r]/g,'').replace(/(.+?)\{(.+?)\}/g,function(F,G,H){G=
G.split(',');var I=G.length,J;for(var K=0;K<I;K++)CKEDITOR.tools.trim(G[K]).replace(/^(\w+)(\.[\w-]+)?$/g,function(L,M,N){M=M||'*';N=N.substring(1,N.length);if(N.match(/MsoNormal/))return;if(!E[M])E[M]={};if(N)E[M][N]=H;else E[M]=H;});});l.applyStyleFilter=function(F){var G=E['*']?'*':F.name,H=F.attributes&&F.attributes['class'],I;if(G in E){I=E[G];if(typeof I=='object')I=I[H];I&&F.addStyle(I,true);}};}}return false;},p:function(B){B.filterChildren();if(v(B))return;if(k.enterMode==CKEDITOR.ENTER_BR){delete B.name;B.add(new CKEDITOR.htmlParser.element('br'));
-}else o(k['format_'+(k.enterMode==CKEDITOR.ENTER_P?'p':'div')])(B);},div:function(B){var C=B.onlyChild();if(C&&C.name=='table'){var D=B.attributes;C.attributes=CKEDITOR.tools.extend(C.attributes,D);D.style&&C.addStyle(D.style);var E=new CKEDITOR.htmlParser.element('div');E.addStyle('clear','both');B.add(E);delete B.name;}},td:function(B){if(B.getAncestor('thead'))B.name='th';},ol:r,ul:r,dl:r,font:function(B){if(!CKEDITOR.env.gecko&&t(B.parent)){delete B.name;return;}B.filterChildren();var C=B.attributes,D=C.style,E=B.parent;if('font'==E.name){CKEDITOR.tools.extend(E.attributes,B.attributes);D&&E.addStyle(D);delete B.name;}else{D=D||'';if(C.color){C.color!='#000000'&&(D+='color:'+C.color+';');delete C.color;}if(C.face){D+='font-family:'+C.face+';';delete C.face;}if(C.size){D+='font-size:'+(C.size>3?'large':C.size<3?'small':'medium')+';';delete C.size;}B.name='span';B.addStyle(D);}},span:function(B){if(!CKEDITOR.env.gecko&&t(B.parent))return false;B.filterChildren();if(u(B)){d
elete B.name;return null;}if(!CKEDITOR.env.gecko&&t(B)){var C=B.firstChild(function(J){return J.value||J.name=='img';}),D=C&&(C.value||'l.'),E=D.match(/^([^\s]+?)([.)]?)$/);return q(E,D);}var F=B.children,G=B.attributes,H=G&&G.style,I=F&&F[0];if(H)G.style=n([['line-height'],[/^font-family$/,null,!z?p(k.font_style,'family'):null],[/^font-size$/,null,!z?p(k.fontSize_style,'size'):null],[/^color$/,null,!z?p(k.colorButton_foreStyle,'color'):null],[/^background-color$/,null,!z?p(k.colorButton_backStyle,'color'):null]])(H,B)||'';return null;},b:o(k.coreStyles_bold),i:o(k.coreStyles_italic),u:o(k.coreStyles_underline),s:o(k.coreStyles_strike),sup:o(k.coreStyles_superscript),sub:o(k.coreStyles_subscript),a:function(B){var C=B.attributes;if(C&&!C.href&&C.name)delete B.name;},'cke:listbullet':function(B){if(B.getAncestor(/h\d/)&&!k.pasteFromWordNumberedHeadingToList)delete B.name;}},attributeNames:[[/^onmouse(:?out|over)/,''],[/^onload$/,''],[/(?:v|o):\w+/,''],[/^lang/,'']],attributes
:{style:n(A?[[/^margin$|^margin-(?!bottom|top)/,null,function(B,C,D){if(C.name in {p:1,div:1}){var E=k.contentsLangDirection=='ltr'?'margin-left':'margin-right';if(D=='margin')B=x(D,B,[E])[E];else if(D!=E)return null;if(B&&!d.test(B))return[E,B];}return null;}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(B,C){if(C.name=='img')return B;}],[/^width|height$/,null,function(B,C){if(C.name in {table:1,td:1,th:1,img:1})return B;}]]:[[/^mso-/],[/-color$/,null,function(B){if(B=='transparent')return false;
-if(CKEDITOR.env.gecko)return B.replace(/-moz-use-text-color/g,'transparent');}],[/^margin$/,d],['text-indent','0cm'],['page-break-before'],['tab-stops'],['display','none'],z?[/font-?/]:null],A),width:function(B,C){if(C.name in i.$tableContent)return false;},border:function(B,C){if(C.name in i.$tableContent)return false;},'class':m,bgcolor:m,valign:A?m:function(B,C){C.addStyle('vertical-align',B);return false;}},comment:!CKEDITOR.env.ie?function(B,C){var D=B.match(/<img.*?>/),E=B.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);if(E){var F=E[1]||D&&'l.',G=F&&F.match(/>([^\s]+?)([.)]?)</);return q(G,F);}if(CKEDITOR.env.gecko&&D){var H=CKEDITOR.htmlParser.fragment.fromHtml(D[0]).children[0],I=C.previous,J=I&&I.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/),K=J&&J[1];K&&(H.attributes.src=K);return H;}return false;}:m};}};var g=function(){this.dataFilter=new CKEDITOR.htmlParser.filter();};g.prototype={toHtml:function(h){var i=CKEDITOR.htmlParser.fragment.fromHtml(h,false)
,j=new CKEDITOR.htmlParser.basicWriter();i.writeHtml(j,this.dataFilter);return j.getHtml(true);}};CKEDITOR.cleanWord=function(h,i){if(CKEDITOR.env.gecko)h=h.replace(/(<!--\[if[^<]*?\])-->([\S\s]*?)<!--(\[endif\]-->)/gi,'$1$2$3');var j=new g(),k=j.dataFilter;k.addRules(CKEDITOR.plugins.pastefromword.getRules(i));i.fire('beforeCleanWord',{filter:k});try{h=j.toHtml(h,false);}catch(l){alert(i.lang.pastefromword.error);}h=h.replace(/cke:.*?".*?"/g,'');h=h.replace(/style=""/g,'');h=h.replace(/<span>/g,'');return h;};})();
+(function(){function z(a){for(var a=a.toUpperCase(),b=A.length,c=0,d=0;d<b;++d)for(var e=A[d],f=e[1].length;a.substr(0,f)==e[1];a=a.substr(f))c+=e[0];return c}function B(a){for(var a=a.toUpperCase(),b=C.length,c=1,d=1;0<a.length;d*=b)c+=C.indexOf(a.charAt(a.length-1))*d,a=a.substr(0,a.length-1);return c}var D=CKEDITOR.htmlParser.fragment.prototype,v=CKEDITOR.htmlParser.element.prototype;D.onlyChild=v.onlyChild=function(){var a=this.children;return 1==a.length&&a[0]||null};v.removeAnyChildWithName=
+function(a){for(var b=this.children,c=[],d,e=0;e<b.length;e++)d=b[e],d.name&&(d.name==a&&(c.push(d),b.splice(e--,1)),c=c.concat(d.removeAnyChildWithName(a)));return c};v.getAncestor=function(a){for(var b=this.parent;b&&(!b.name||!b.name.match(a));)b=b.parent;return b};D.firstChild=v.firstChild=function(a){for(var b,c=0;c<this.children.length;c++)if(b=this.children[c],a(b)||b.name&&(b=b.firstChild(a)))return b;return null};v.addStyle=function(a,b,c){var d="";if("string"==typeof b)d+=a+":"+b+";";else{if("object"==
+typeof a)for(var e in a)a.hasOwnProperty(e)&&(d+=e+":"+a[e]+";");else d+=a;c=b}this.attributes||(this.attributes={});a=this.attributes.style||"";a=(c?[d,a]:[a,d]).join(";");this.attributes.style=a.replace(/^;|;(?=;)/,"")};v.getStyle=function(a){var b=this.attributes.style;if(b)return b=CKEDITOR.tools.parseCssText(b,1),b[a]};CKEDITOR.dtd.parentOf=function(a){var b={},c;for(c in this)-1==c.indexOf("$")&&this[c][a]&&(b[c]=1);return b};var H=/^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i,
+E=/^(?:\b0[^\s]*\s*){1,4}$/,y={ol:{decimal:/\d+/,"lower-roman":/^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$/,"upper-roman":/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"lower-alpha":/^[a-z]+$/,"upper-alpha":/^[A-Z]+$/},ul:{disc:/[l\u00B7\u2002]/,circle:/[\u006F\u00D8]/,square:/[\u006E\u25C6]/}},A=[[1E3,"M"],[900,"CM"],[500,"D"],[400,"CD"],[100,"C"],[90,"XC"],[50,"L"],[40,"XL"],[10,"X"],[9,"IX"],[5,"V"],[4,"IV"],[1,"I"]],C="ABCDEFGHIJKLMNOPQRSTUVWXYZ",w=0,o=null,x,F=CKEDITOR.plugins.pastefromword=
+{utils:{createListBulletMarker:function(a,b){var c=new CKEDITOR.htmlParser.element("cke:listbullet");c.attributes={"cke:listsymbol":a[0]};c.add(new CKEDITOR.htmlParser.text(b));return c},isListBulletIndicator:function(a){if(/mso-list\s*:\s*Ignore/i.test(a.attributes&&a.attributes.style))return!0},isContainingOnlySpaces:function(a){var b;return(b=a.onlyChild())&&/^(:?\s| )+$/.test(b.value)},resolveList:function(a){var b=a.attributes,c;if((c=a.removeAnyChildWithName("cke:listbullet"))&&c.length&&
+(c=c[0]))return a.name="cke:li",b.style&&(b.style=F.filters.stylesFilter([["text-indent"],["line-height"],[/^margin(:?-left)?$/,null,function(a){a=a.split(" ");a=CKEDITOR.tools.convertToPx(a[3]||a[1]||a[0]);!w&&(null!==o&&a>o)&&(w=a-o);o=a;b["cke:indent"]=w&&Math.ceil(a/w)+1||1}],[/^mso-list$/,null,function(a){var a=a.split(" "),c=Number(a[0].match(/\d+/)),a=Number(a[1].match(/\d+/));1==a&&(c!==x&&(b["cke:reset"]=1),x=c);b["cke:indent"]=a}]])(b.style,a)||""),b["cke:indent"]||(o=0,b["cke:indent"]=
+1),CKEDITOR.tools.extend(b,c.attributes),!0;x=o=w=null;return!1},getStyleComponents:function(){var a=CKEDITOR.dom.element.createFromHtml('<div style="position:absolute;left:-9999px;top:-9999px;"></div>',CKEDITOR.document);CKEDITOR.document.getBody().append(a);return function(b,c,d){a.setStyle(b,c);for(var b={},c=d.length,e=0;e<c;e++)b[d[e]]=a.getStyle(d[e]);return b}}(),listDtdParents:CKEDITOR.dtd.parentOf("ol")},filters:{flattenList:function(a,b){var b="number"==typeof b?b:1,c=a.attributes,d;switch(c.type){case "a":d=
+"lower-alpha";break;case "1":d="decimal"}for(var e=a.children,f,h=0;h<e.length;h++)if(f=e[h],f.name in CKEDITOR.dtd.$listItem){var g=f.attributes,i=f.children,m=i[i.length-1];m.name in CKEDITOR.dtd.$list&&(a.add(m,h+1),--i.length||e.splice(h--,1));f.name="cke:li";c.start&&!h&&(g.value=c.start);F.filters.stylesFilter([["tab-stops",null,function(a){(a=a.split(" ")[1].match(H))&&(o=CKEDITOR.tools.convertToPx(a[0]))}],1==b?["mso-list",null,function(a){a=a.split(" ");a=Number(a[0].match(/\d+/));a!==x&&
+(g["cke:reset"]=1);x=a}]:null])(g.style);g["cke:indent"]=b;g["cke:listtype"]=a.name;g["cke:list-style-type"]=d}else if(f.name in CKEDITOR.dtd.$list){arguments.callee.apply(this,[f,b+1]);e=e.slice(0,h).concat(f.children).concat(e.slice(h+1));a.children=[];f=0;for(i=e.length;f<i;f++)a.add(e[f])}delete a.name;c["cke:list"]=1},assembleList:function(a){for(var b=a.children,c,d,e,f,h,g,a=[],i,m,j,l,k,r,p=0;p<b.length;p++)if(c=b[p],"cke:li"==c.name)if(c.name="li",d=c.attributes,j=(j=d["cke:listsymbol"])&&
+j.match(/^(?:[(]?)([^\s]+?)([.)]?)$/),l=k=r=null,d["cke:ignored"])b.splice(p--,1);else{d["cke:reset"]&&(g=f=h=null);e=Number(d["cke:indent"]);e!=f&&(m=i=null);if(j){if(m&&y[m][i].test(j[1]))l=m,k=i;else for(var s in y)for(var t in y[s])if(y[s][t].test(j[1]))if("ol"==s&&/alpha|roman/.test(t)){if(i=/roman/.test(t)?z(j[1]):B(j[1]),!r||i<r)r=i,l=s,k=t}else{l=s;k=t;break}!l&&(l=j[2]?"ol":"ul")}else l=d["cke:listtype"]||"ol",k=d["cke:list-style-type"];m=l;i=k||("ol"==l?"decimal":"disc");k&&k!=("ol"==l?
+"decimal":"disc")&&c.addStyle("list-style-type",k);if("ol"==l&&j){switch(k){case "decimal":r=Number(j[1]);break;case "lower-roman":case "upper-roman":r=z(j[1]);break;case "lower-alpha":case "upper-alpha":r=B(j[1])}c.attributes.value=r}if(g){if(e>f)a.push(g=new CKEDITOR.htmlParser.element(l)),g.add(c),h.add(g);else{if(e<f){f-=e;for(var n;f--&&(n=g.parent);)g=n.parent}g.add(c)}b.splice(p--,1)}else a.push(g=new CKEDITOR.htmlParser.element(l)),g.add(c),b[p]=g;h=c;f=e}else g&&(g=f=h=null);for(p=0;p<a.length;p++)if(g=
+a[p],s=g.children,i=i=void 0,t=g.children.length,n=i=void 0,b=/list-style-type:(.*?)(?:;|$)/,f=CKEDITOR.plugins.pastefromword.filters.stylesFilter,i=g.attributes,!b.exec(i.style)){for(h=0;h<t;h++)if(i=s[h],i.attributes.value&&Number(i.attributes.value)==h+1&&delete i.attributes.value,i=b.exec(i.attributes.style))if(i[1]==n||!n)n=i[1];else{n=null;break}if(n){for(h=0;h<t;h++)i=s[h].attributes,i.style&&(i.style=f([["list-style-type"]])(i.style)||"");g.addStyle("list-style-type",n)}}x=o=w=null},falsyFilter:function(){return!1},
+stylesFilter:function(a,b){return function(c,d){var e=[];(c||"").replace(/"/g,'"').replace(/\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g,function(c,g,f){g=g.toLowerCase();"font-family"==g&&(f=f.replace(/["']/g,""));for(var m,j,l,k=0;k<a.length;k++)if(a[k]&&(c=a[k][0],m=a[k][1],j=a[k][2],l=a[k][3],g.match(c)&&(!m||f.match(m)))){g=l||g;b&&(j=j||f);"function"==typeof j&&(j=j(f,d,g));j&&j.push&&(g=j[0],j=j[1]);"string"==typeof j&&e.push([g,j]);return}!b&&e.push([g,f])});for(var f=0;f<e.length;f++)e[f]=
+e[f].join(":");return e.length?e.join(";")+";":!1}},elementMigrateFilter:function(a,b){return a?function(c){var d=b?(new CKEDITOR.style(a,b))._.definition:a;c.name=d.element;CKEDITOR.tools.extend(c.attributes,CKEDITOR.tools.clone(d.attributes));c.addStyle(CKEDITOR.style.getStyleText(d))}:function(){}},styleMigrateFilter:function(a,b){var c=this.elementMigrateFilter;return a?function(d,e){var f=new CKEDITOR.htmlParser.element(null),h={};h[b]=d;c(a,h)(f);f.children=e.children;e.children=[f]}:function(){}},
+bogusAttrFilter:function(a,b){if(-1==b.name.indexOf("cke:"))return!1},applyStyleFilter:null},getRules:function(a){var b=CKEDITOR.dtd,c=CKEDITOR.tools.extend({},b.$block,b.$listItem,b.$tableContent),d=a.config,e=this.filters,a=e.falsyFilter,f=e.stylesFilter,h=e.elementMigrateFilter,g=CKEDITOR.tools.bind(this.filters.styleMigrateFilter,this.filters),i=this.utils.createListBulletMarker,m=e.flattenList,j=e.assembleList,l=this.utils.isListBulletIndicator,k=this.utils.isContainingOnlySpaces,r=this.utils.resolveList,
+p=function(a){a=CKEDITOR.tools.convertToPx(a);return isNaN(a)?a:a+"px"},s=this.utils.getStyleComponents,t=this.utils.listDtdParents,n=!1!==d.pasteFromWordRemoveFontStyles,o=!1!==d.pasteFromWordRemoveStyles;return{elementNames:[[/meta|link|script/,""]],root:function(a){a.filterChildren();j(a)},elements:{"^":function(a){var b;CKEDITOR.env.gecko&&(b=e.applyStyleFilter)&&b(a)},$:function(a){var u=a.name||"",e=a.attributes;u in c&&e.style&&(e.style=f([[/^(:?width|height)$/,null,p]])(e.style)||"");if(u.match(/h\d/)){a.filterChildren();
+if(r(a))return;h(d["format_"+u])(a)}else if(u in b.$inline)a.filterChildren(),k(a)&&delete a.name;else if(-1!=u.indexOf(":")&&-1==u.indexOf("cke")){a.filterChildren();if("v:imagedata"==u){if(u=a.attributes["o:href"])a.attributes.src=u;a.name="img";return}delete a.name}u in t&&(a.filterChildren(),j(a))},style:function(a){if(CKEDITOR.env.gecko){var a=(a=a.onlyChild().value.match(/\/\* Style Definitions \*\/([\s\S]*?)\/\*/))&&a[1],b={};a&&(a.replace(/[\n\r]/g,"").replace(/(.+?)\{(.+?)\}/g,function(a,
+c,d){for(var c=c.split(","),a=c.length,q=0;q<a;q++)CKEDITOR.tools.trim(c[q]).replace(/^(\w+)(\.[\w-]+)?$/g,function(a,c,q){c=c||"*";q=q.substring(1,q.length);q.match(/MsoNormal/)||(b[c]||(b[c]={}),q?b[c][q]=d:b[c]=d)})}),e.applyStyleFilter=function(a){var c=b["*"]?"*":a.name,q=a.attributes&&a.attributes["class"];c in b&&(c=b[c],"object"==typeof c&&(c=c[q]),c&&a.addStyle(c,!0))})}return!1},p:function(a){if(/MsoListParagraph/i.exec(a.attributes["class"])||a.getStyle("mso-list")){var b=a.firstChild(function(a){return a.type==
+CKEDITOR.NODE_TEXT&&!k(a.parent)});(b=b&&b.parent)&&b.addStyle("mso-list","Ignore")}a.filterChildren();r(a)||(d.enterMode==CKEDITOR.ENTER_BR?(delete a.name,a.add(new CKEDITOR.htmlParser.element("br"))):h(d["format_"+(d.enterMode==CKEDITOR.ENTER_P?"p":"div")])(a))},div:function(a){var b=a.onlyChild();if(b&&"table"==b.name){var c=a.attributes;b.attributes=CKEDITOR.tools.extend(b.attributes,c);c.style&&b.addStyle(c.style);b=new CKEDITOR.htmlParser.element("div");b.addStyle("clear","both");a.add(b);delete a.name}},
+td:function(a){a.getAncestor("thead")&&(a.name="th")},ol:m,ul:m,dl:m,font:function(a){if(l(a.parent))delete a.name;else{a.filterChildren();var b=a.attributes,c=b.style,d=a.parent;"font"==d.name?(CKEDITOR.tools.extend(d.attributes,a.attributes),c&&d.addStyle(c),delete a.name):(c=c||"",b.color&&("#000000"!=b.color&&(c+="color:"+b.color+";"),delete b.color),b.face&&(c+="font-family:"+b.face+";",delete b.face),b.size&&(c+="font-size:"+(3<b.size?"large":3>b.size?"small":"medium")+";",delete b.size),a.name=
+"span",a.addStyle(c))}},span:function(a){if(l(a.parent))return!1;a.filterChildren();if(k(a))return delete a.name,null;if(l(a)){var b=a.firstChild(function(a){return a.value||"img"==a.name}),c=(b=b&&(b.value||"l."))&&b.match(/^(?:[(]?)([^\s]+?)([.)]?)$/);if(c)return b=i(c,b),(a=a.getAncestor("span"))&&/ mso-hide:\s*all|display:\s*none /.test(a.attributes.style)&&(b.attributes["cke:ignored"]=1),b}if(c=(b=a.attributes)&&b.style)b.style=f([["line-height"],[/^font-family$/,null,!n?g(d.font_style,"family"):
+null],[/^font-size$/,null,!n?g(d.fontSize_style,"size"):null],[/^color$/,null,!n?g(d.colorButton_foreStyle,"color"):null],[/^background-color$/,null,!n?g(d.colorButton_backStyle,"color"):null]])(c,a)||"";b.style||delete b.style;CKEDITOR.tools.isEmpty(b)&&delete a.name;return null},b:h(d.coreStyles_bold),i:h(d.coreStyles_italic),u:h(d.coreStyles_underline),s:h(d.coreStyles_strike),sup:h(d.coreStyles_superscript),sub:h(d.coreStyles_subscript),a:function(a){var b=a.attributes;b&&!b.href&&b.name?delete a.name:
+CKEDITOR.env.webkit&&(b.href&&b.href.match(/file:\/\/\/[\S]+#/i))&&(b.href=b.href.replace(/file:\/\/\/[^#]+/i,""))},"cke:listbullet":function(a){a.getAncestor(/h\d/)&&!d.pasteFromWordNumberedHeadingToList&&delete a.name}},attributeNames:[[/^onmouse(:?out|over)/,""],[/^onload$/,""],[/(?:v|o):\w+/,""],[/^lang/,""]],attributes:{style:f(o?[[/^list-style-type$/,null],[/^margin$|^margin-(?!bottom|top)/,null,function(a,b,c){if(b.name in{p:1,div:1}){b="ltr"==d.contentsLangDirection?"margin-left":"margin-right";
+if("margin"==c)a=s(c,a,[b])[b];else if(c!=b)return null;if(a&&!E.test(a))return[b,a]}return null}],[/^clear$/],[/^border.*|margin.*|vertical-align|float$/,null,function(a,b){if("img"==b.name)return a}],[/^width|height$/,null,function(a,b){if(b.name in{table:1,td:1,th:1,img:1})return a}]]:[[/^mso-/],[/-color$/,null,function(a){if("transparent"==a)return!1;if(CKEDITOR.env.gecko)return a.replace(/-moz-use-text-color/g,"transparent")}],[/^margin$/,E],["text-indent","0cm"],["page-break-before"],["tab-stops"],
+["display","none"],n?[/font-?/]:null],o),width:function(a,c){if(c.name in b.$tableContent)return!1},border:function(a,c){if(c.name in b.$tableContent)return!1},"class":a,bgcolor:a,valign:o?a:function(a,b){b.addStyle("vertical-align",a);return!1}},comment:!CKEDITOR.env.ie?function(a,b){var c=a.match(/<img.*?>/),d=a.match(/^\[if !supportLists\]([\s\S]*?)\[endif\]$/);return d?(d=(c=d[1]||c&&"l.")&&c.match(/>(?:[(]?)([^\s]+?)([.)]?)</),i(d,c)):CKEDITOR.env.gecko&&c?(c=CKEDITOR.htmlParser.fragment.fromHtml(c[0]).children[0],
+(d=(d=(d=b.previous)&&d.value.match(/<v:imagedata[^>]*o:href=['"](.*?)['"]/))&&d[1])&&(c.attributes.src=d),c):!1}:a}}},G=function(){this.dataFilter=new CKEDITOR.htmlParser.filter};G.prototype={toHtml:function(a){var a=CKEDITOR.htmlParser.fragment.fromHtml(a),b=new CKEDITOR.htmlParser.basicWriter;a.writeHtml(b,this.dataFilter);return b.getHtml(!0)}};CKEDITOR.cleanWord=function(a,b){CKEDITOR.env.gecko&&(a=a.replace(/(<\!--\[if[^<]*?\])--\>([\S\s]*?)<\!--(\[endif\]--\>)/gi,"$1$2$3"));CKEDITOR.env.webkit&&
+(a=a.replace(/(class="MsoListParagraph[^>]+><\!--\[if !supportLists\]--\>)([^<]+<span[^<]+<\/span>)(<\!--\[endif\]--\>)/gi,"$1<span>$2</span>$3"));var c=new G,d=c.dataFilter;d.addRules(CKEDITOR.plugins.pastefromword.getRules(b));b.fire("beforeCleanWord",{filter:d});try{a=c.toHtml(a)}catch(e){alert(b.lang.pastefromword.error)}a=a.replace(/cke:.*?".*?"/g,"");a=a.replace(/style=""/g,"");return a=a.replace(/<span>/g,"")}})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/pastetext/dialogs/pastetext.js b/share/static/RichText/plugins/pastetext/dialogs/pastetext.js
deleted file mode 100644
index e68c78c..0000000
--- a/share/static/RichText/plugins/pastetext/dialogs/pastetext.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function(){CKEDITOR.dialog.add('pastetext',function(a){return{title:a.lang.pasteText.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?368:350,minHeight:240,onShow:function(){this.getContentElement('general','content').getInputElement().setValue('');},onOk:function(){var b=this.getContentElement('general','content').getInputElement().getValue(),c=this.getParentEditor();setTimeout(function(){c.fire('paste',{text:b});},0);},contents:[{label:a.lang.common.generalTab,id:'general',elements:[{type:'html',id:'pasteMsg',html:'<div style="white-space:normal;width:340px;">'+a.lang.clipboard.pasteMsg+'</div>'},{type:'textarea',id:'content',className:'cke_pastetext',onLoad:function(){var b=this.getDialog().getContentElement('general','pasteMsg').getElement(),c=this.getElement().getElementsByTag('textarea').getItem(0);c.setAttribute('aria-labelledby',b.$.id);c.setStyle('direction',a.config.contentsLangDirection);},focus:function(){this.getElement().focus();}}]}]};});})();
diff --git a/share/static/RichText/plugins/preview/preview.html b/share/static/RichText/plugins/preview/preview.html
new file mode 100644
index 0000000..d6c4937
--- /dev/null
+++ b/share/static/RichText/plugins/preview/preview.html
@@ -0,0 +1,10 @@
+<script>
+
+var doc = document;
+doc.open();
+doc.write( window.opener._cke_htmlToLoad );
+doc.close();
+
+delete window.opener._cke_htmlToLoad;
+
+</script>
diff --git a/share/static/RichText/plugins/scayt/LICENSE.md b/share/static/RichText/plugins/scayt/LICENSE.md
new file mode 100644
index 0000000..844ab4d
--- /dev/null
+++ b/share/static/RichText/plugins/scayt/LICENSE.md
@@ -0,0 +1,28 @@
+Software License Agreement
+==========================
+
+**CKEditor SCAYT Plugin**
+Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+* GNU General Public License Version 2 or later (the "GPL"):
+ http://www.gnu.org/licenses/gpl.html
+
+* GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
+ http://www.gnu.org/licenses/lgpl.html
+
+* Mozilla Public License Version 1.1 or later (the "MPL"):
+ http://www.mozilla.org/MPL/MPL-1.1.html
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
+
+Sources of Intellectual Property Included in this plugin
+--------------------------------------------------------
+
+Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
diff --git a/share/static/RichText/plugins/scayt/README.md b/share/static/RichText/plugins/scayt/README.md
new file mode 100644
index 0000000..0f51958
--- /dev/null
+++ b/share/static/RichText/plugins/scayt/README.md
@@ -0,0 +1,25 @@
+CKEditor SCAYT Plugin
+=====================
+
+This plugin brings Spell Check As You Type (SCAYT) into CKEditor.
+
+SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
+
+Installation
+------------
+
+1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation.
+2. Enable the "scayt" plugin in the CKEditor configuration file (config.js):
+
+ config.extraPlugins = 'scayt';
+
+That's all. SCAYT will appear on the editor toolbar and will be ready to use.
+
+License
+-------
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
+
+Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
diff --git a/share/static/RichText/plugins/scayt/dialogs/options.js b/share/static/RichText/plugins/scayt/dialogs/options.js
index 37297f2..c243e9f 100644
--- a/share/static/RichText/plugins/scayt/dialogs/options.js
+++ b/share/static/RichText/plugins/scayt/dialogs/options.js
@@ -1,8 +1,19 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('scaytcheck',function(a){var b=true,c,d=CKEDITOR.document,e=[],f,g=[],h=false,i=['dic_create,dic_restore','dic_rename,dic_delete'],j=['mixedCase','mixedWithDigits','allCaps','ignoreDomainNames'];function k(){return document.forms.optionsbar.options;};function l(){return document.forms.languagesbar.scayt_lang;};function m(x,y){if(!x)return;var z=x.length;if(z==undefined){x.checked=x.value==y.toString();return;}for(var A=0;A<z;A++){x[A].checked=false;if(x[A].value==y.toString())x[A].checked=true;}};var n=[{id:'options',label:a.lang.scayt.optionsTab,elements:[{type:'html',id:'options',html:'<form name="optionsbar"><div class="inner_options">\t<div class="messagebox"></div>\t<div style="display:none;">\t\t<input type="checkbox" name="options" id="allCaps" />\t\t<label for="allCaps" id="label_allCaps"></label>\t</div>\t<div style="display:none;">\t\t<input name="options" type="checkbox" id="ignoreDomainNames" />\t\t<label for="ignoreDomainNames" id="label_ig
noreDomainNames"></label>\t</div>\t<div style="display:none;">\t<input name="options" type="checkbox" id="mixedCase" />\t\t<label for="mixedCase" id="label_mixedCase"></label>\t</div>\t<div style="display:none;">\t\t<input name="options" type="checkbox" id="mixedWithDigits" />\t\t<label for="mixedWithDigits" id="label_mixedWithDigits"></label>\t</div></div></form>'}]},{id:'langs',label:a.lang.scayt.languagesTab,elements:[{type:'html',id:'langs',html:'<form name="languagesbar"><div class="inner_langs">\t<div class="messagebox"></div>\t <div style="float:left;width:45%;margin-left:5px;" id="scayt_lcol" ></div> <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol"></div></div></form>'}]},{id:'dictionaries',label:a.lang.scayt.dictionariesTab,elements:[{type:'html',style:'',id:'dictionaries',html:'<form name="dictionarybar"><div class="inner_dictionary" style="text-align:left; white-space:normal; width:320px; overflow: hidden;">\t<div style="margin:5px auto; w
idth:80%;white-space:normal; overflow:hidden;" id="dic_message"> </div>\t<div style="margin:5px auto; width:80%;white-space:normal;"> <span class="cke_dialog_ui_labeled_label" >Dictionary name</span><br>\t\t<span class="cke_dialog_ui_labeled_content" >\t\t\t<div class="cke_dialog_ui_input_text">\t\t\t\t<input id="dic_name" type="text" class="cke_dialog_ui_input_text"/>\t\t</div></span></div>\t\t<div style="margin:5px auto; width:80%;white-space:normal;">\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create">\t\t\t\t</a>\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete">\t\t\t\t</a>\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename">\t\t\t\t</a>\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore">\t\t\t\t</a>\t\t</div>\t<div style="margin:5px auto; width:95%;white-space:n
ormal;" id="dic_info"></div></div></form>'}]},{id:'about',label:a.lang.scayt.aboutTab,elements:[{type:'html',id:'about',style:'margin: 5px 5px;',html:'<div id="scayt_about"></div>'}]}],o={title:a.lang.scayt.title,minWidth:360,minHeight:220,onShow:function(){var x=this;
-x.data=a.fire('scaytDialog',{});x.options=x.data.scayt_control.option();x.sLang=x.data.scayt_control.sLang;if(!x.data||!x.data.scayt||!x.data.scayt_control){alert('Error loading application service');x.hide();return;}var y=0;if(b)x.data.scayt.getCaption(a.langCode||'en',function(z){if(y++>0)return;c=z;q.apply(x);r.apply(x);b=false;});else r.apply(x);x.selectPage(x.data.tab);},onOk:function(){var x=this.data.scayt_control;x.option(this.options);var y=this.chosed_lang;x.setLang(y);x.refresh();},onCancel:function(){var x=k();for(f in x)x[f].checked=false;m(l(),'');},contents:g},p=CKEDITOR.plugins.scayt.getScayt(a);e=CKEDITOR.plugins.scayt.uiTabs;for(f in e){if(e[f]==1)g[g.length]=n[f];}if(e[2]==1)h=true;var q=function(){var x=this,y=x.data.scayt.getLangList(),z=['dic_create','dic_delete','dic_rename','dic_restore'],A=j,B;if(h){for(B=0;B<z.length;B++){var C=z[B];d.getById(C).setHtml('<span class="cke_dialog_ui_button">'+c['button_'+C]+'</span>');}d.getById('dic_info').setHtml(c.
dic_info);}if(e[0]==1)for(B in A){var D='label_'+A[B],E=d.getById(D);if('undefined'!=typeof E&&'undefined'!=typeof c[D]&&'undefined'!=typeof x.options[A[B]]){E.setHtml(c[D]);var F=E.getParent();F.$.style.display='block';}}var G='<p><img src="'+window.scayt.getAboutInfo().logoURL+'" /></p>'+'<p>'+c.version+window.scayt.getAboutInfo().version.toString()+'</p>'+'<p>'+c.about_throwt_copy+'</p>';d.getById('scayt_about').setHtml(G);var H=function(R,S){var T=d.createElement('label');T.setAttribute('for','cke_option'+R);T.setHtml(S[R]);if(x.sLang==R)x.chosed_lang=R;var U=d.createElement('div'),V=CKEDITOR.dom.element.createFromHtml('<input id="cke_option'+R+'" type="radio" '+(x.sLang==R?'checked="checked"':'')+' value="'+R+'" name="scayt_lang" />');V.on('click',function(){this.$.checked=true;x.chosed_lang=R;});U.append(V);U.append(T);return{lang:S[R],code:R,radio:U};},I=[];if(e[1]==1){for(B in y.rtl)I[I.length]=H(B,y.ltr);for(B in y.ltr)I[I.length]=H(B,y.ltr);I.sort(function(R,S){ret
urn S.lang>R.lang?-1:1;});var J=d.getById('scayt_lcol'),K=d.getById('scayt_rcol');for(B=0;B<I.length;B++){var L=B<I.length/2?J:K;L.append(I[B].radio);}}var M={};M.dic_create=function(R,S,T){var U=T[0]+','+T[1],V=c.err_dic_create,W=c.succ_dic_create;window.scayt.createUserDictionary(S,function(X){v(U);u(T[1]);W=W.replace('%s',X.dname);t(W);},function(X){V=V.replace('%s',X.dname);s(V+'( '+(X.message||'')+')');});};M.dic_rename=function(R,S){var T=c.err_dic_rename||'',U=c.succ_dic_rename||'';window.scayt.renameUserDictionary(S,function(V){U=U.replace('%s',V.dname);
-w(S);t(U);},function(V){T=T.replace('%s',V.dname);w(S);s(T+'( '+(V.message||'')+' )');});};M.dic_delete=function(R,S,T){var U=T[0]+','+T[1],V=c.err_dic_delete,W=c.succ_dic_delete;window.scayt.deleteUserDictionary(function(X){W=W.replace('%s',X.dname);v(U);u(T[0]);w('');t(W);},function(X){V=V.replace('%s',X.dname);s(V);});};M.dic_restore=x.dic_restore||(function(R,S,T){var U=T[0]+','+T[1],V=c.err_dic_restore,W=c.succ_dic_restore;window.scayt.restoreUserDictionary(S,function(X){W=W.replace('%s',X.dname);v(U);u(T[1]);t(W);},function(X){V=V.replace('%s',X.dname);s(V);});});function N(R){var S=d.getById('dic_name').getValue();if(!S){s(' Dictionary name should not be empty. ');return false;}try{var T=id=R.data.getTarget().getParent(),U=T.getId();M[U].apply(null,[T,S,i]);}catch(V){s(' Dictionary error. ');}return true;};var O=(i[0]+','+i[1]).split(','),P;for(B=0,P=O.length;B<P;B+=1){var Q=d.getById(O[B]);if(Q)Q.on('click',N,this);}},r=function(){var x=this;if(e[0]==1){var y=k();for
(var z=0,A=y.length;z<A;z++){var B=y[z].id,C=d.getById(B);if(C){y[z].checked=false;if(x.options[B]==1)y[z].checked=true;if(b)C.on('click',function(){x.options[this.getId()]=this.$.checked?1:0;});}}}if(e[1]==1){var D=d.getById('cke_option'+x.sLang);m(D.$,x.sLang);}if(h){window.scayt.getNameUserDictionary(function(E){var F=E.dname;v(i[0]+','+i[1]);if(F){d.getById('dic_name').setValue(F);u(i[1]);}else u(i[0]);},function(){d.getById('dic_name').setValue('');});t('');}};function s(x){d.getById('dic_message').setHtml('<span style="color:red;">'+x+'</span>');};function t(x){d.getById('dic_message').setHtml('<span style="color:blue;">'+x+'</span>');};function u(x){x=String(x);var y=x.split(',');for(var z=0,A=y.length;z<A;z+=1)d.getById(y[z]).$.style.display='inline';};function v(x){x=String(x);var y=x.split(',');for(var z=0,A=y.length;z<A;z+=1)d.getById(y[z]).$.style.display='none';};function w(x){d.getById('dic_name').$.value=x;};return o;});
+CKEDITOR.dialog.add("scaytcheck",function(j){function w(){return"undefined"!=typeof document.forms["optionsbar_"+a]?document.forms["optionsbar_"+a].options:[]}function x(b,a){if(b){var e=b.length;if(void 0==e)b.checked=b.value==a.toString();else for(var d=0;d<e;d++)b[d].checked=!1,b[d].value==a.toString()&&(b[d].checked=!0)}}function n(b){f.getById("dic_message_"+a).setHtml('<span style="color:red;">'+b+"</span>")}function o(b){f.getById("dic_message_"+a).setHtml('<span style="color:blue;">'+b+"</span>")}
+function p(b){for(var b=(""+b).split(","),a=0,e=b.length;a<e;a+=1)f.getById(b[a]).$.style.display="inline"}function q(b){for(var b=(""+b).split(","),a=0,e=b.length;a<e;a+=1)f.getById(b[a]).$.style.display="none"}function r(b){f.getById("dic_name_"+a).$.value=b}var s=!0,h,f=CKEDITOR.document,a=j.name,l=CKEDITOR.plugins.scayt.getUiTabs(j),g,t=[],u=0,m=["dic_create_"+a+",dic_restore_"+a,"dic_rename_"+a+",dic_delete_"+a],v=["mixedCase","mixedWithDigits","allCaps","ignoreDomainNames"];g=j.lang.scayt;var z=
+[{id:"options",label:g.optionsTab,elements:[{type:"html",id:"options",html:'<form name="optionsbar_'+a+'"><div class="inner_options">\t<div class="messagebox"></div>\t<div style="display:none;">\t\t<input type="checkbox" name="options" id="allCaps_'+a+'" />\t\t<label for="allCaps" id="label_allCaps_'+a+'"></label>\t</div>\t<div style="display:none;">\t\t<input name="options" type="checkbox" id="ignoreDomainNames_'+a+'" />\t\t<label for="ignoreDomainNames" id="label_ignoreDomainNames_'+a+'"></label>\t</div>\t<div style="display:none;">\t<input name="options" type="checkbox" id="mixedCase_'+
+a+'" />\t\t<label for="mixedCase" id="label_mixedCase_'+a+'"></label>\t</div>\t<div style="display:none;">\t\t<input name="options" type="checkbox" id="mixedWithDigits_'+a+'" />\t\t<label for="mixedWithDigits" id="label_mixedWithDigits_'+a+'"></label>\t</div></div></form>'}]},{id:"langs",label:g.languagesTab,elements:[{type:"html",id:"langs",html:'<form name="languagesbar_'+a+'"><div class="inner_langs">\t<div class="messagebox"></div>\t <div style="float:left;width:45%;margin-left:5px;" id="scayt_lcol_'+
+a+'" ></div> <div style="float:left;width:45%;margin-left:15px;" id="scayt_rcol_'+a+'"></div></div></form>'}]},{id:"dictionaries",label:g.dictionariesTab,elements:[{type:"html",style:"",id:"dictionaries",html:'<form name="dictionarybar_'+a+'"><div class="inner_dictionary" style="text-align:left; white-space:normal; width:320px; overflow: hidden;">\t<div style="margin:5px auto; width:80%;white-space:normal; overflow:hidden;" id="dic_message_'+a+'"> </div>\t<div style="margin:5px auto; width:80%;white-space:normal;"> <span class="cke_dialog_ui_labeled_label" >Dictionary name</span><br>\t\t<span class="cke_dialog_ui_labeled_content" >\t\t\t<div class="cke_dialog_ui_input_text">\t\t\t\t<input id="dic_name_'+
+a+'" type="text" class="cke_dialog_ui_input_text"/>\t\t</div></span></div>\t\t<div style="margin:5px auto; width:80%;white-space:normal;">\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_create_'+a+'">\t\t\t\t</a>\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_delete_'+a+'">\t\t\t\t</a>\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_rename_'+a+'">\t\t\t\t</a>\t\t\t<a style="display:none;" class="cke_dialog_ui_button" href="javascript:void(0)" id="dic_restore_'+
+a+'">\t\t\t\t</a>\t\t</div>\t<div style="margin:5px auto; width:95%;white-space:normal;" id="dic_info_'+a+'"></div></div></form>'}]},{id:"about",label:g.aboutTab,elements:[{type:"html",id:"about",style:"margin: 5px 5px;",html:'<div id="scayt_about_'+a+'"></div>'}]}],B={title:g.title,minWidth:360,minHeight:220,onShow:function(){var b=this;b.data=j.fire("scaytDialog",{});b.options=b.data.scayt_control.option();b.chosed_lang=b.sLang=b.data.scayt_control.sLang;if(!b.data||!b.data.scayt||!b.data.scayt_control)alert("Error loading application service"),
+b.hide();else{var a=0;s?b.data.scayt.getCaption(j.langCode||"en",function(e){0<a++||(h=e,A.apply(b),y.apply(b),s=!1)}):y.apply(b);b.selectPage(b.data.tab)}},onOk:function(){var a=this.data.scayt_control;a.option(this.options);a.setLang(this.chosed_lang);a.refresh()},onCancel:function(){var b=w(),f;for(f in b)b[f].checked=!1;b="undefined"!=typeof document.forms["languagesbar_"+a]?document.forms["languagesbar_"+a].scayt_lang:[];x(b,"")},contents:t};CKEDITOR.plugins.scayt.getScayt(j);for(g=0;g<l.length;g++)1==
+l[g]&&(t[t.length]=z[g]);1==l[2]&&(u=1);var A=function(){function b(b){var c=f.getById("dic_name_"+a).getValue();if(!c)return n(" Dictionary name should not be empty. "),!1;try{var d=b.data.getTarget().getParent(),e=/(dic_\w+)_[\w\d]+/.exec(d.getId())[1];j[e].apply(null,[d,c,m])}catch(C){n(" Dictionary error. ")}return!0}var k=this,e=k.data.scayt.getLangList(),d=["dic_create","dic_delete","dic_rename","dic_restore"],g=[],i=[],c;if(u){for(c=0;c<d.length;c++)g[c]=d[c]+"_"+a,f.getById(g[c]).setHtml('<span class="cke_dialog_ui_button">'+
+h["button_"+d[c]]+"</span>");f.getById("dic_info_"+a).setHtml(h.dic_info)}if(1==l[0])for(c in v)d="label_"+v[c],g=f.getById(d+"_"+a),"undefined"!=typeof g&&("undefined"!=typeof h[d]&&"undefined"!=typeof k.options[v[c]])&&(g.setHtml(h[d]),g.getParent().$.style.display="block");d='<p><img src="'+window.scayt.getAboutInfo().logoURL+'" /></p><p>'+h.version+window.scayt.getAboutInfo().version.toString()+"</p><p>"+h.about_throwt_copy+"</p>";f.getById("scayt_about_"+a).setHtml(d);d=function(a,b){var c=f.createElement("label");
+c.setAttribute("for","cke_option"+a);c.setHtml(b[a]);k.sLang==a&&(k.chosed_lang=a);var d=f.createElement("div"),e=CKEDITOR.dom.element.createFromHtml('<input id="cke_option'+a+'" type="radio" '+(k.sLang==a?'checked="checked"':"")+' value="'+a+'" name="scayt_lang" />');e.on("click",function(){this.$.checked=true;k.chosed_lang=a});d.append(e);d.append(c);return{lang:b[a],code:a,radio:d}};if(1==l[1]){for(c in e.rtl)i[i.length]=d(c,e.ltr);for(c in e.ltr)i[i.length]=d(c,e.ltr);i.sort(function(a,b){return b.lang>
+a.lang?-1:1});e=f.getById("scayt_lcol_"+a);d=f.getById("scayt_rcol_"+a);for(c=0;c<i.length;c++)(c<i.length/2?e:d).append(i[c].radio)}var j={dic_create:function(a,b,c){var d=c[0]+","+c[1],e=h.err_dic_create,f=h.succ_dic_create;window.scayt.createUserDictionary(b,function(a){q(d);p(c[1]);f=f.replace("%s",a.dname);o(f)},function(a){e=e.replace("%s",a.dname);n(e+"( "+(a.message||"")+")")})},dic_rename:function(a,b){var c=h.err_dic_rename||"",d=h.succ_dic_rename||"";window.scayt.renameUserDictionary(b,
+function(a){d=d.replace("%s",a.dname);r(b);o(d)},function(a){c=c.replace("%s",a.dname);r(b);n(c+"( "+(a.message||"")+" )")})},dic_delete:function(a,b,c){var d=c[0]+","+c[1],e=h.err_dic_delete,f=h.succ_dic_delete;window.scayt.deleteUserDictionary(function(a){f=f.replace("%s",a.dname);q(d);p(c[0]);r("");o(f)},function(a){e=e.replace("%s",a.dname);n(e)})}};j.dic_restore=k.dic_restore||function(a,b,c){var d=c[0]+","+c[1],e=h.err_dic_restore,f=h.succ_dic_restore;window.scayt.restoreUserDictionary(b,function(a){f=
+f.replace("%s",a.dname);q(d);p(c[1]);o(f)},function(a){e=e.replace("%s",a.dname);n(e)})};i=(m[0]+","+m[1]).split(",");c=0;for(e=i.length;c<e;c+=1)if(d=f.getById(i[c]))d.on("click",b,this)},y=function(){var b=this;if(1==l[0])for(var g=w(),e=0,d=g.length;e<d;e++){var h=g[e].id,i=f.getById(h);if(i&&(g[e].checked=!1,1==b.options[h.split("_")[0]]&&(g[e].checked=!0),s))i.on("click",function(){b.options[this.getId().split("_")[0]]=this.$.checked?1:0})}1==l[1]&&(g=f.getById("cke_option"+b.sLang),x(g.$,b.sLang));
+u&&(window.scayt.getNameUserDictionary(function(b){b=b.dname;q(m[0]+","+m[1]);if(b){f.getById("dic_name_"+a).setValue(b);p(m[1])}else p(m[0])},function(){f.getById("dic_name_"+a).setValue("")}),o(""))};return B});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/scayt/dialogs/toolbar.css b/share/static/RichText/plugins/scayt/dialogs/toolbar.css
index cbfa844..ecabdac 100644
--- a/share/static/RichText/plugins/scayt/dialogs/toolbar.css
+++ b/share/static/RichText/plugins/scayt/dialogs/toolbar.css
@@ -1,6 +1,71 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-a{text-decoration:none;padding:2px 4px 4px 6px;display:block;border-width:1px;border-style:solid;margin:0;}a.cke_scayt_toogle:hover,a.cke_scayt_toogle:focus,a.cke_scayt_toogle:active{border-color:#316ac5;background-color:#dff1ff;color:#000;cursor:pointer;margin:0;}a.cke_scayt_toogle{color:#316ac5;border-color:#fff;}.scayt_enabled a.cke_scayt_item{color:#316ac5;border-color:#fff;margin:0;}.scayt_disabled a.cke_scayt_item{color:gray;border-color:#fff;}.scayt_enabled a.cke_scayt_item:hover,.scayt_enabled a.cke_scayt_item:focus,.scayt_enabled a.cke_scayt_item:active{border-color:#316ac5;background-color:#dff1ff;color:#000;cursor:pointer;}.scayt_disabled a.cke_scayt_item:hover,.scayt_disabled a.cke_scayt_item:focus,.scayt_disabled a.cke_scayt_item:active{border-color:gray;background-color:#dff1ff;color:gray;cursor:no-drop;}.cke_scayt_set_on,.cke_scayt_set_off{display:none;}.scayt_enabled .cke_scayt_set_on{display:none;}.scayt_disabled .cke_scayt_set_on{display:inline;}.scayt_disa
bled .cke_scayt_set_off{display:none;}.scayt_enabled .cke_scayt_set_off{display:inline;}
+a
+{
+ text-decoration:none;
+ padding: 2px 4px 4px 6px;
+ display : block;
+ border-width: 1px;
+ border-style: solid;
+ margin : 0px;
+}
+
+a.cke_scayt_toogle:hover,
+a.cke_scayt_toogle:focus,
+a.cke_scayt_toogle:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+ color : #000;
+ cursor: pointer;
+ margin : 0px;
+}
+a.cke_scayt_toogle {
+ color : #316ac5;
+ border-color: #fff;
+}
+.scayt_enabled a.cke_scayt_item {
+ color : #316ac5;
+ border-color: #fff;
+ margin : 0px;
+}
+.scayt_disabled a.cke_scayt_item {
+ color : gray;
+ border-color : #fff;
+}
+.scayt_enabled a.cke_scayt_item:hover,
+.scayt_enabled a.cke_scayt_item:focus,
+.scayt_enabled a.cke_scayt_item:active
+{
+ border-color: #316ac5;
+ background-color: #dff1ff;
+ color : #000;
+ cursor: pointer;
+}
+.scayt_disabled a.cke_scayt_item:hover,
+.scayt_disabled a.cke_scayt_item:focus,
+.scayt_disabled a.cke_scayt_item:active
+{
+ border-color: gray;
+ background-color: #dff1ff;
+ color : gray;
+ cursor: no-drop;
+}
+.cke_scayt_set_on, .cke_scayt_set_off
+{
+ display: none;
+}
+.scayt_enabled .cke_scayt_set_on
+{
+ display: none;
+}
+.scayt_disabled .cke_scayt_set_on
+{
+ display: inline;
+}
+.scayt_disabled .cke_scayt_set_off
+{
+ display: none;
+}
+.scayt_enabled .cke_scayt_set_off
+{
+ display: inline;
+}
diff --git a/share/static/RichText/plugins/smiley/dialogs/smiley.js b/share/static/RichText/plugins/smiley/dialogs/smiley.js
index f61c3b8..21ab252 100644
--- a/share/static/RichText/plugins/smiley/dialogs/smiley.js
+++ b/share/static/RichText/plugins/smiley/dialogs/smiley.js
@@ -1,7 +1,10 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('smiley',function(a){var b=a.config,c=a.lang.smiley,d=b.smiley_images,e=b.smiley_columns||8,f,g,h=function(o){var p=o.data.getTarget(),q=p.getName();if(q=='a')p=p.getChild(0);else if(q!='img')return;var r=p.getAttribute('cke_src'),s=p.getAttribute('title'),t=a.document.createElement('img',{attributes:{src:r,_cke_saved_src:r,title:s,alt:s}});a.insertElement(t);g.hide();o.data.preventDefault();},i=CKEDITOR.tools.addFunction(function(o,p){o=new CKEDITOR.dom.event(o);p=new CKEDITOR.dom.element(p);var q,r,s=o.getKeystroke(),t=a.lang.dir=='rtl';switch(s){case 38:if(q=p.getParent().getParent().getPrevious()){r=q.getChild([p.getParent().getIndex(),0]);r.focus();}o.preventDefault();break;case 40:if(q=p.getParent().getParent().getNext()){r=q.getChild([p.getParent().getIndex(),0]);if(r)r.focus();}o.preventDefault();break;case 32:h({data:o});o.preventDefault();break;case t?37:39:case 9:if(q=p.getParent().getNext()){r=q.getChild(0);r.focus();o.preventDefault(true);}el
se if(q=p.getParent().getParent().getNext()){r=q.getChild([0,0]);if(r)r.focus();o.preventDefault(true);}break;case t?39:37:case CKEDITOR.SHIFT+9:if(q=p.getParent().getPrevious()){r=q.getChild(0);r.focus();o.preventDefault(true);}else if(q=p.getParent().getParent().getPrevious()){r=q.getLast().getChild(0);r.focus();o.preventDefault(true);}break;default:return;}}),j=CKEDITOR.tools.getNextId()+'_smiley_emtions_label',k=['<div><span id="'+j+'" class="cke_voice_label">'+c.options+'</span>','<table role="listbox" aria-labelledby="'+j+'" style="width:100%;height:100%" cellspacing="2" cellpadding="2"',CKEDITOR.env.ie&&CKEDITOR.env.quirks?' style="position:absolute;"':'','><tbody>'],l=d.length;for(f=0;f<l;f++){if(f%e===0)k.push('<tr>');var m='cke_smile_label_'+f+'_'+CKEDITOR.tools.getNextNumber();k.push('<td class="cke_dark_background cke_centered" style="vertical-align: middle;"><a href="javascript:void(0)" role="option"',' aria-posinset="'+(f+1)+'"',' aria-setsize="'+l+'"',' aria-l
abelledby="'+m+'"',' class="cke_smile cke_hand" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ',i,', event, this );">','<img class="cke_hand" title="',b.smiley_descriptions[f],'" cke_src="',CKEDITOR.tools.htmlEncode(b.smiley_path+d[f]),'" alt="',b.smiley_descriptions[f],'"',' src="',CKEDITOR.tools.htmlEncode(b.smiley_path+d[f]),'"',CKEDITOR.env.ie?" onload=\"this.setAttribute('width', 2); this.removeAttribute('width');\" ":'','><span id="'+m+'" class="cke_voice_label">'+b.smiley_descriptions[f]+'</span>'+'</a>','</td>');
-if(f%e==e-1)k.push('</tr>');}if(f<e-1){for(;f<e-1;f++)k.push('<td></td>');k.push('</tr>');}k.push('</tbody></table></div>');var n={type:'html',html:k.join(''),onLoad:function(o){g=o.sender;},focus:function(){var o=this.getElement().getElementsByTag('a').getItem(0);o.focus();},onClick:h,style:'width: 100%; border-collapse: separate;'};return{title:a.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:'tab1',label:'',title:'',expand:true,padding:0,elements:[n]}],buttons:[CKEDITOR.dialog.cancelButton]};});
+CKEDITOR.dialog.add("smiley",function(f){for(var e=f.config,a=f.lang.smiley,h=e.smiley_images,g=e.smiley_columns||8,i,k=function(j){var c=j.data.getTarget(),b=c.getName();if("a"==b)c=c.getChild(0);else if("img"!=b)return;var b=c.getAttribute("cke_src"),a=c.getAttribute("title"),c=f.document.createElement("img",{attributes:{src:b,"data-cke-saved-src":b,title:a,alt:a,width:c.$.width,height:c.$.height}});f.insertElement(c);i.hide();j.data.preventDefault()},n=CKEDITOR.tools.addFunction(function(a,c){var a=
+new CKEDITOR.dom.event(a),c=new CKEDITOR.dom.element(c),b;b=a.getKeystroke();var d="rtl"==f.lang.dir;switch(b){case 38:if(b=c.getParent().getParent().getPrevious())b=b.getChild([c.getParent().getIndex(),0]),b.focus();a.preventDefault();break;case 40:if(b=c.getParent().getParent().getNext())(b=b.getChild([c.getParent().getIndex(),0]))&&b.focus();a.preventDefault();break;case 32:k({data:a});a.preventDefault();break;case d?37:39:if(b=c.getParent().getNext())b=b.getChild(0),b.focus(),a.preventDefault(!0);
+else if(b=c.getParent().getParent().getNext())(b=b.getChild([0,0]))&&b.focus(),a.preventDefault(!0);break;case d?39:37:if(b=c.getParent().getPrevious())b=b.getChild(0),b.focus(),a.preventDefault(!0);else if(b=c.getParent().getParent().getPrevious())b=b.getLast().getChild(0),b.focus(),a.preventDefault(!0)}}),d=CKEDITOR.tools.getNextId()+"_smiley_emtions_label",d=['<div><span id="'+d+'" class="cke_voice_label">'+a.options+"</span>",'<table role="listbox" aria-labelledby="'+d+'" style="width:100%;height:100%;border-collapse:separate;" cellspacing="2" cellpadding="2"',
+CKEDITOR.env.ie&&CKEDITOR.env.quirks?' style="position:absolute;"':"","><tbody>"],l=h.length,a=0;a<l;a++){0===a%g&&d.push('<tr role="presentation">');var m="cke_smile_label_"+a+"_"+CKEDITOR.tools.getNextNumber();d.push('<td class="cke_dark_background cke_centered" style="vertical-align: middle;" role="presentation"><a href="javascript:void(0)" role="option"',' aria-posinset="'+(a+1)+'"',' aria-setsize="'+l+'"',' aria-labelledby="'+m+'"',' class="cke_smile cke_hand" tabindex="-1" onkeydown="CKEDITOR.tools.callFunction( ',
+n,', event, this );">','<img class="cke_hand" title="',e.smiley_descriptions[a],'" cke_src="',CKEDITOR.tools.htmlEncode(e.smiley_path+h[a]),'" alt="',e.smiley_descriptions[a],'"',' src="',CKEDITOR.tools.htmlEncode(e.smiley_path+h[a]),'"',CKEDITOR.env.ie?" onload=\"this.setAttribute('width', 2); this.removeAttribute('width');\" ":"",'><span id="'+m+'" class="cke_voice_label">'+e.smiley_descriptions[a]+"</span></a>","</td>");a%g==g-1&&d.push("</tr>")}if(a<g-1){for(;a<g-1;a++)d.push("<td></td>");d.push("</tr>")}d.push("</tbody></table></div>");
+e={type:"html",id:"smileySelector",html:d.join(""),onLoad:function(a){i=a.sender},focus:function(){var a=this;setTimeout(function(){a.getElement().getElementsByTag("a").getItem(0).focus()},0)},onClick:k,style:"width: 100%; border-collapse: separate;"};return{title:f.lang.smiley.title,minWidth:270,minHeight:120,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[e]}],buttons:[CKEDITOR.dialog.cancelButton]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/smiley/images/embarrassed_smile.gif b/share/static/RichText/plugins/smiley/images/embarrassed_smile.gif
new file mode 100644
index 0000000..d9cedc5
Binary files /dev/null and b/share/static/RichText/plugins/smiley/images/embarrassed_smile.gif differ
diff --git a/share/static/RichText/plugins/smiley/images/tongue_smile.gif b/share/static/RichText/plugins/smiley/images/tongue_smile.gif
new file mode 100644
index 0000000..b2e657f
Binary files /dev/null and b/share/static/RichText/plugins/smiley/images/tongue_smile.gif differ
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/_translationstatus.txt b/share/static/RichText/plugins/specialchar/dialogs/lang/_translationstatus.txt
new file mode 100644
index 0000000..8df716d
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/_translationstatus.txt
@@ -0,0 +1,20 @@
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+
+cs.js Found: 118 Missing: 0
+cy.js Found: 118 Missing: 0
+de.js Found: 118 Missing: 0
+el.js Found: 16 Missing: 102
+eo.js Found: 118 Missing: 0
+et.js Found: 31 Missing: 87
+fa.js Found: 24 Missing: 94
+fi.js Found: 23 Missing: 95
+fr.js Found: 118 Missing: 0
+hr.js Found: 23 Missing: 95
+it.js Found: 118 Missing: 0
+nb.js Found: 118 Missing: 0
+nl.js Found: 118 Missing: 0
+no.js Found: 118 Missing: 0
+tr.js Found: 118 Missing: 0
+ug.js Found: 39 Missing: 79
+zh-cn.js Found: 118 Missing: 0
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/ca.js b/share/static/RichText/plugins/specialchar/dialogs/lang/ca.js
new file mode 100644
index 0000000..4704fef
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/ca.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","ca",{euro:"SÃmbol d'euro",lsquo:"Signe de cometa simple esquerra",rsquo:"Signe de cometa simple dreta",ldquo:"Signe de cometa doble esquerra",rdquo:"Signe de cometa doble dreta",ndash:"Guió",mdash:"Guió baix",iexcl:"Signe d'exclamació inversa",cent:"SÃmbol de percentatge",pound:"SÃmbol de lliura",curren:"SÃmbol de moneda",yen:"SÃmbol de Yen",brvbar:"Broken bar",sect:"Section sign",uml:"Dièresi",copy:"SÃmbol de Copyright",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
+not:"Not sign",reg:"SÃmbol registrat",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
+Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
+Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
+Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
+aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
+ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
+yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
+trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/cs.js b/share/static/RichText/plugins/specialchar/dialogs/lang/cs.js
new file mode 100644
index 0000000..78856a2
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/cs.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","cs",{euro:"Znak eura",lsquo:"PoÄáteÄnà uvozovka jednoduchá",rsquo:"Koncová uvozovka jednoduchá",ldquo:"PoÄáteÄnà uvozovka dvojitá",rdquo:"Koncová uvozovka dvojitá",ndash:"En pomlÄka",mdash:"Em pomlÄka",iexcl:"Obrácený vykÅiÄnÃk",cent:"Znak centu",pound:"Znak libry",curren:"Znak mÄny",yen:"Znak jenu",brvbar:"PÅeruÅ¡ená svislá Äára",sect:"Znak oddÃlu",uml:"PÅehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených uvozovek vlevo",
+not:"Logistický zápor",reg:"Znak registrace",macr:"PomlÄka nad",deg:"Znak stupnÄ",sup2:"Dvojka jako hornà index",sup3:"Trojka jako hornà index",acute:"Äárka nad vpravo",micro:"Znak mikro",para:"Znak odstavce",middot:"TeÄka uprostÅed",cedil:"Ocásek vlevo",sup1:"JedniÄka jako hornà index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených uvozovek vpravo",frac14:"ObyÄejný zlomek jedna Ätvrtina",frac12:"ObyÄejný zlomek jedna polovina",frac34:"ObyÄejný zlomek tÅi Ätvrtiny",iquest:"Znak obráceného otaznÃku",
+Agrave:"Velké pÃsmeno latinky A s Äárkou nad vlevo",Aacute:"Velké pÃsmeno latinky A s Äárkou nad vpravo",Acirc:"Velké pÃsmeno latinky A s vokánÄm",Atilde:"Velké pÃsmeno latinky A s tildou",Auml:"Velké pÃsmeno latinky A s dvÄma teÄkami",Aring:"Velké pÃsmeno latinky A s kroužkem nad",AElig:"Velké pÃsmeno latinky Ae",Ccedil:"Velké pÃsmeno latinky C s ocáskem vlevo",Egrave:"Velké pÃsmeno latinky E s Äárkou nad vlevo",Eacute:"Velké pÃsmeno latinky E s Äárkou nad vpravo",Ecirc:"Velké pÃsmeno latinky E s vokánÄm",
+Euml:"Velké pÃsmeno latinky E s dvÄma teÄkami",Igrave:"Velké pÃsmeno latinky I s Äárkou nad vlevo",Iacute:"Velké pÃsmeno latinky I s Äárkou nad vpravo",Icirc:"Velké pÃsmeno latinky I s vokánÄm",Iuml:"Velké pÃsmeno latinky I s dvÄma teÄkami",ETH:"Velké pÃsmeno latinky Eth",Ntilde:"Velké pÃsmeno latinky N s tildou",Ograve:"Velké pÃsmeno latinky O s Äárkou nad vlevo",Oacute:"Velké pÃsmeno latinky O s Äárkou nad vpravo",Ocirc:"Velké pÃsmeno latinky O s vokánÄm",Otilde:"Velké pÃsmeno latinky O s tildou",
+Ouml:"Velké pÃsmeno latinky O s dvÄma teÄkami",times:"Znak násobenÃ",Oslash:"Velké pÃsmeno latinky O pÅeÅ¡krtnuté",Ugrave:"Velké pÃsmeno latinky U s Äárkou nad vlevo",Uacute:"Velké pÃsmeno latinky U s Äárkou nad vpravo",Ucirc:"Velké pÃsmeno latinky U s vokánÄm",Uuml:"Velké pÃsmeno latinky U s dvÄma teÄkami",Yacute:"Velké pÃsmeno latinky Y s Äárkou nad vpravo",THORN:"Velké pÃsmeno latinky Thorn",szlig:"Malé pÃsmeno latinky ostré s",agrave:"Malé pÃsmeno latinky a s Äárkou nad vlevo",aacute:"Malé pÃsmeno latinky a s Äárkou nad vpravo",
+acirc:"Malé pÃsmeno latinky a s vokánÄm",atilde:"Malé pÃsmeno latinky a s tildou",auml:"Malé pÃsmeno latinky a s dvÄma teÄkami",aring:"Malé pÃsmeno latinky a s kroužkem nad",aelig:"Malé pÃsmeno latinky ae",ccedil:"Malé pÃsmeno latinky c s ocáskem vlevo",egrave:"Malé pÃsmeno latinky e s Äárkou nad vlevo",eacute:"Malé pÃsmeno latinky e s Äárkou nad vpravo",ecirc:"Malé pÃsmeno latinky e s vokánÄm",euml:"Malé pÃsmeno latinky e s dvÄma teÄkami",igrave:"Malé pÃsmeno latinky i s Äárkou nad vlevo",iacute:"Malé pÃsmeno latinky i s Äárkou nad vpravo",
+icirc:"Malé pÃsmeno latinky i s vokánÄm",iuml:"Malé pÃsmeno latinky i s dvÄma teÄkami",eth:"Malé pÃsmeno latinky eth",ntilde:"Malé pÃsmeno latinky n s tildou",ograve:"Malé pÃsmeno latinky o s Äárkou nad vlevo",oacute:"Malé pÃsmeno latinky o s Äárkou nad vpravo",ocirc:"Malé pÃsmeno latinky o s vokánÄm",otilde:"Malé pÃsmeno latinky o s tildou",ouml:"Malé pÃsmeno latinky o s dvÄma teÄkami",divide:"Znak dÄlenÃ",oslash:"Malé pÃsmeno latinky o pÅeÅ¡krtnuté",ugrave:"Malé pÃsmeno latinky u s Äárkou nad vlevo",
+uacute:"Malé pÃsmeno latinky u s Äárkou nad vpravo",ucirc:"Malé pÃsmeno latinky u s vokánÄm",uuml:"Malé pÃsmeno latinky u s dvÄma teÄkami",yacute:"Malé pÃsmeno latinky y s Äárkou nad vpravo",thorn:"Malé pÃsmeno latinky thorn",yuml:"Malé pÃsmeno latinky y s dvÄma teÄkami",OElig:"Velká ligatura latinky OE",oelig:"Malá ligatura latinky OE",372:"Velké pÃsmeno latinky W s vokánÄm",374:"Velké pÃsmeno latinky Y s vokánÄm",373:"Malé pÃsmeno latinky w s vokánÄm",375:"Malé pÃsmeno latinky y s vokánÄm",sbquo:"Dolnà 9 uvozovka jednoduchá",
+8219:"Hornà obrácená 9 uvozovka jednoduchá",bdquo:"Dolnà 9 uvozovka dvojitá",hellip:"TrojteÄkový úvod",trade:"Obchodnà znaÄka",9658:"Äerný ukazatel smÄÅujÃcà vpravo",bull:"KoleÄko",rarr:"Å ipka vpravo",rArr:"Dvojitá Å¡ipka vpravo",hArr:"Dvojitá Å¡ipka vlevo a vpravo",diams:"Äerné piky",asymp:"TémÄÅ se rovná"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/cy.js b/share/static/RichText/plugins/specialchar/dialogs/lang/cy.js
new file mode 100644
index 0000000..19b86d6
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/cy.js
@@ -0,0 +1,14 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","cy",{euro:"Arwydd yr Ewro",lsquo:"Dyfynnod chwith unigol",rsquo:"Dyfynnod dde unigol",ldquo:"Dyfynnod chwith dwbl",rdquo:"Dyfynnod dde dwbl",ndash:"Cysylltnod en",mdash:"Cysylltnod em",iexcl:"Ebychnod gwrthdro",cent:"Arwydd sent",pound:"Arwydd punt",curren:"Arwydd arian cyfred",yen:"Arwydd yen",brvbar:"Bar toriedig",sect:"Arwydd adran",uml:"Didolnod",copy:"Arwydd hawlfraint",ordf:"Dangosydd benywaidd",laquo:"Dyfynnod dwbl ar ongl i'r chwith",not:"Arwydd Nid",
+reg:"Arwydd cofrestredig",macr:"Macron",deg:"Arwydd gradd",sup2:"Dau uwchsgript",sup3:"Tri uwchsgript",acute:"Acen ddyrchafedig",micro:"Arwydd micro",para:"Arwydd pilcrow",middot:"Dot canol",cedil:"Sedila",sup1:"Un uwchsgript",ordm:"Dangosydd gwrywaidd",raquo:"Dyfynnod dwbl ar ongl i'r dde",frac14:"Ffracsiwn cyffredin un cwarter",frac12:"Ffracsiwn cyffredin un hanner",frac34:"Ffracsiwn cyffredin tri chwarter",iquest:"Marc cwestiwn gwrthdroëdig",Agrave:"Priflythyren A Lladinaidd gydag acen ddisgynedig",
+Aacute:"Priflythyren A Lladinaidd gydag acen ddyrchafedig",Acirc:"Priflythyren A Lladinaidd gydag acen grom",Atilde:"Priflythyren A Lladinaidd gyda thild",Auml:"Priflythyren A Lladinaidd gyda didolnod",Aring:"Priflythyren A Lladinaidd gyda chylch uwchben",AElig:"Priflythyren à Lladinaidd",Ccedil:"Priflythyren C Lladinaidd gyda sedila",Egrave:"Priflythyren E Lladinaidd gydag acen ddisgynedig",Eacute:"Priflythyren E Lladinaidd gydag acen ddyrchafedig",Ecirc:"Priflythyren E Lladinaidd gydag acen grom",
+Euml:"Priflythyren E Lladinaidd gyda didolnod",Igrave:"Priflythyren I Lladinaidd gydag acen ddisgynedig",Iacute:"Priflythyren I Lladinaidd gydag acen ddyrchafedig",Icirc:"Priflythyren I Lladinaidd gydag acen grom",Iuml:"Priflythyren I Lladinaidd gyda didolnod",ETH:"Priflythyren Eth",Ntilde:"Priflythyren N Lladinaidd gyda thild",Ograve:"Priflythyren O Lladinaidd gydag acen ddisgynedig",Oacute:"Priflythyren O Lladinaidd gydag acen ddyrchafedig",Ocirc:"Priflythyren O Lladinaidd gydag acen grom",Otilde:"Priflythyren O Lladinaidd gyda thild",
+Ouml:"Priflythyren O Lladinaidd gyda didolnod",times:"Arwydd lluosi",Oslash:"Priflythyren O Lladinaidd gyda strôc",Ugrave:"Priflythyren U Lladinaidd gydag acen ddisgynedig",Uacute:"Priflythyren U Lladinaidd gydag acen ddyrchafedig",Ucirc:"Priflythyren U Lladinaidd gydag acen grom",Uuml:"Priflythyren U Lladinaidd gyda didolnod",Yacute:"Priflythyren Y Lladinaidd gydag acen ddyrchafedig",THORN:"Priflythyren Thorn",szlig:"Llythyren s fach Lladinaidd siarp ",agrave:"Llythyren a fach Lladinaidd gydag acen ddisgynedig",
+aacute:"Llythyren a fach Lladinaidd gydag acen ddyrchafedig",acirc:"Llythyren a fach Lladinaidd gydag acen grom",atilde:"Llythyren a fach Lladinaidd gyda thild",auml:"Llythyren a fach Lladinaidd gyda didolnod",aring:"Llythyren a fach Lladinaidd gyda chylch uwchben",aelig:"Llythyren æ fach Lladinaidd",ccedil:"Llythyren c fach Lladinaidd gyda sedila",egrave:"Llythyren e fach Lladinaidd gydag acen ddisgynedig",eacute:"Llythyren e fach Lladinaidd gydag acen ddyrchafedig",ecirc:"Llythyren e fach Lladinaidd gydag acen grom",
+euml:"Llythyren e fach Lladinaidd gyda didolnod",igrave:"Llythyren i fach Lladinaidd gydag acen ddisgynedig",iacute:"Llythyren i fach Lladinaidd gydag acen ddyrchafedig",icirc:"Llythyren i fach Lladinaidd gydag acen grom",iuml:"Llythyren i fach Lladinaidd gyda didolnod",eth:"Llythyren eth fach",ntilde:"Llythyren n fach Lladinaidd gyda thild",ograve:"Llythyren o fach Lladinaidd gydag acen ddisgynedig",oacute:"Llythyren o fach Lladinaidd gydag acen ddyrchafedig",ocirc:"Llythyren o fach Lladinaidd gydag acen grom",
+otilde:"Llythyren o fach Lladinaidd gyda thild",ouml:"Llythyren o fach Lladinaidd gyda didolnod",divide:"Arwydd rhannu",oslash:"Llyth",ugrave:"Llythyren u fach Lladinaidd gydag acen ddisgynedig",uacute:"Llythyren u fach Lladinaidd gydag acen ddyrchafedig",ucirc:"Llythyren u fach Lladinaidd gydag acen grom",uuml:"Llythyren u fach Lladinaidd gyda didolnod",yacute:"Llythyren y fach Lladinaidd gydag acen ddisgynedig",thorn:"Llythyren o fach Lladinaidd gyda strôc",yuml:"Llythyren y fach Lladinaidd gyda didolnod",
+OElig:"Priflythyren cwlwm OE Lladinaidd ",oelig:"Priflythyren cwlwm oe Lladinaidd ",372:"Priflythyren W gydag acen grom",374:"Priflythyren Y gydag acen grom",373:"Llythyren w fach gydag acen grom",375:"Llythyren y fach gydag acen grom",sbquo:"Dyfynnod sengl 9-isel",8219:"Dyfynnod sengl 9-uchel cildro",bdquo:"Dyfynnod dwbl 9-isel",hellip:"Coll geiriau llorweddol",trade:"Arwydd marc masnachol",9658:"Pwyntydd du i'r dde",bull:"Bwled",rarr:"Saeth i'r dde",rArr:"Saeth ddwbl i'r dde",hArr:"Saeth ddwbl i'r chwith",
+diams:"Siwt diemwnt du",asymp:"Bron yn hafal iddo"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/de.js b/share/static/RichText/plugins/specialchar/dialogs/lang/de.js
new file mode 100644
index 0000000..6def78b
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/de.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","de",{euro:"Euro Zeichen",lsquo:"Hochkomma links",rsquo:"Hochkomma rechts",ldquo:"Anführungszeichen links",rdquo:"Anführungszeichen rechts",ndash:"kleiner Strich",mdash:"mittlerer Strich",iexcl:"invertiertes Ausrufezeichen",cent:"Cent",pound:"Pfund",curren:"Währung",yen:"Yen",brvbar:"gestrichelte Linie",sect:"§ Zeichen",uml:"Diäresis",copy:"Copyright",ordf:"Feminine ordinal Anzeige",laquo:"Nach links zeigenden Doppel-Winkel Anführungszeichen",not:"Not-Zeichen",
+reg:"Registriert",macr:"Längezeichen",deg:"Grad",sup2:"Hoch 2",sup3:"Hoch 3",acute:"Akzentzeichen ",micro:"Micro",para:"Pilcrow-Zeichen",middot:"Mittelpunkt",cedil:"Cedilla",sup1:"Hoch 1",ordm:"Männliche Ordnungszahl Anzeige",raquo:"Nach rechts zeigenden Doppel-Winkel Anführungszeichen",frac14:"ein Viertel",frac12:"Hälfte",frac34:"Dreiviertel",iquest:"Umgekehrtes Fragezeichen",Agrave:"Lateinischer Buchstabe A mit AkzentGrave",Aacute:"Lateinischer Buchstabe A mit Akutakzent",Acirc:"Lateinischer Buchstabe A mit Zirkumflex",
+Atilde:"Lateinischer Buchstabe A mit Tilde",Auml:"Lateinischer Buchstabe A mit Trema",Aring:"Lateinischer Buchstabe A mit Ring oben",AElig:"Lateinischer Buchstabe Ã",Ccedil:"Lateinischer Buchstabe C mit Cedille",Egrave:"Lateinischer Buchstabe E mit AkzentGrave",Eacute:"Lateinischer Buchstabe E mit Akutakzent",Ecirc:"Lateinischer Buchstabe E mit Zirkumflex",Euml:"Lateinischer Buchstabe E Trema",Igrave:"Lateinischer Buchstabe I mit AkzentGrave",Iacute:"Lateinischer Buchstabe I mit Akutakzent",Icirc:"Lateinischer Buchstabe I mit Zirkumflex",
+Iuml:"Lateinischer Buchstabe I mit Trema",ETH:"Lateinischer Buchstabe Eth",Ntilde:"Lateinischer Buchstabe N mit Tilde",Ograve:"Lateinischer Buchstabe O mit AkzentGrave",Oacute:"Lateinischer Buchstabe O mit Akutakzent",Ocirc:"Lateinischer Buchstabe O mit Zirkumflex",Otilde:"Lateinischer Buchstabe O mit Tilde",Ouml:"Lateinischer Buchstabe O mit Trema",times:"Multiplikation",Oslash:"Lateinischer Buchstabe O durchgestrichen",Ugrave:"Lateinischer Buchstabe U mit Akzentgrave",Uacute:"Lateinischer Buchstabe U mit Akutakzent",
+Ucirc:"Lateinischer Buchstabe U mit Zirkumflex",Uuml:"Lateinischer Buchstabe a mit Trema",Yacute:"Lateinischer Buchstabe a mit Akzent",THORN:"Lateinischer Buchstabe mit Dorn",szlig:"Kleiner lateinischer Buchstabe scharfe s",agrave:"Kleiner lateinischer Buchstabe a mit Accent grave",aacute:"Kleiner lateinischer Buchstabe a mit Akut",acirc:"Lateinischer Buchstabe a mit Zirkumflex",atilde:"Lateinischer Buchstabe a mit Tilde",auml:"Kleiner lateinischer Buchstabe a mit Trema",aring:"Kleiner lateinischer Buchstabe a mit Ring oben",
+aelig:"Lateinischer Buchstabe æ",ccedil:"Kleiner lateinischer Buchstabe c mit Cedille",egrave:"Kleiner lateinischer Buchstabe e mit Accent grave",eacute:"Kleiner lateinischer Buchstabe e mit Akut",ecirc:"Kleiner lateinischer Buchstabe e mit Zirkumflex",euml:"Kleiner lateinischer Buchstabe e mit Trema",igrave:"Kleiner lateinischer Buchstabe i mit AkzentGrave",iacute:"Kleiner lateinischer Buchstabe i mit Akzent",icirc:"Kleiner lateinischer Buchstabe i mit Zirkumflex",iuml:"Kleiner lateinischer Buchstabe i mit Trema",
+eth:"Kleiner lateinischer Buchstabe eth",ntilde:"Kleiner lateinischer Buchstabe n mit Tilde",ograve:"Kleiner lateinischer Buchstabe o mit Accent grave",oacute:"Kleiner lateinischer Buchstabe o mit Akzent",ocirc:"Kleiner lateinischer Buchstabe o mit Zirkumflex",otilde:"Lateinischer Buchstabe i mit Tilde",ouml:"Kleiner lateinischer Buchstabe o mit Trema",divide:"Divisionszeichen",oslash:"Kleiner lateinischer Buchstabe o durchgestrichen",ugrave:"Kleiner lateinischer Buchstabe u mit Accent grave",uacute:"Kleiner lateinischer Buchstabe u mit Akut",
+ucirc:"Kleiner lateinischer Buchstabe u mit Zirkumflex",uuml:"Kleiner lateinischer Buchstabe u mit Trema",yacute:"Kleiner lateinischer Buchstabe y mit Akut",thorn:"Kleiner lateinischer Buchstabe Dorn",yuml:"Kleiner lateinischer Buchstabe y mit Trema",OElig:"Lateinischer Buchstabe Ligatur OE",oelig:"Kleiner lateinischer Buchstabe Ligatur OE",372:"Lateinischer Buchstabe W mit Zirkumflex",374:"Lateinischer Buchstabe Y mit Zirkumflex",373:"Kleiner lateinischer Buchstabe w mit Zirkumflex",375:"Kleiner lateinischer Buchstabe y mit Zirkumflex",
+sbquo:"Tiefergestelltes Komma",8219:"Rumgedrehtes Komma",bdquo:"Doppeltes Anführungszeichen unten",hellip:"horizontale Auslassungspunkte",trade:"Handelszeichen",9658:"Dreickspfeil rechts",bull:"Bullet",rarr:"Pfeil rechts",rArr:"Doppelpfeil rechts",hArr:"Doppelpfeil links",diams:"Karo",asymp:"Ungefähr"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/el.js b/share/static/RichText/plugins/specialchar/dialogs/lang/el.js
new file mode 100644
index 0000000..73496fd
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/el.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","el",{euro:"ΣÏμβολο ÎÏ
ÏÏ",lsquo:"ÎÏιÏÏεÏÏÏ ÏαÏακÏήÏÎ±Ï Î¼Î¿Î½Î¿Ï ÎµÎ¹ÏαγÏγικοÏ",rsquo:"ÎεξιÏÏ ÏαÏακÏήÏÎ±Ï Î¼Î¿Î½Î¿Ï ÎµÎ¹ÏαγÏγικοÏ",ldquo:"ÎÏιÏÏεÏÏÏ ÏαÏακÏήÏÎ±Ï Î´Î¹ÏÎ»Î¿Ï ÎµÎ¹ÏαγÏγικοÏ",rdquo:"ÎεξιÏÏ ÏαÏακÏήÏÎ±Ï Î´Î¹ÏÎ»Î¿Ï ÎµÎ¹ÏαγÏγικοÏ",ndash:"ΠαÏλα en",mdash:"ΠαÏλα em",iexcl:"ÎνάÏοδο θαÏ
μαÏÏικÏ",cent:"ΣÏμβολο ΣενÏ",pound:"ΣÏμβολο λίÏαÏ",curren:"ΣÏμβολο ÏÏ
ναλλαγμαÏÎ¹ÎºÎ®Ï Î¼Î¿Î½Î¬Î´Î±Ï",yen:"ΣÏμβολο ÎιÎν",brvbar:"ΣÏαÏμÎνη μÏάÏα",sect:"ΣÏμβολο ÏμήμαÏοÏ",uml:"ÎιαίÏεÏη",copy:"ΣÏμβολο ÏνεÏ
μαÏικÏν δικαιÏμάÏÏν",
+ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",
+iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",
+Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",
+Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",
+acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",
+icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",
+ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",
+bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/en.js b/share/static/RichText/plugins/specialchar/dialogs/lang/en.js
new file mode 100644
index 0000000..fdecfd2
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/en.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","en",{euro:"Euro sign",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
+not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
+Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
+Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
+Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
+aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
+ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
+yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
+trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/eo.js b/share/static/RichText/plugins/specialchar/dialogs/lang/eo.js
new file mode 100644
index 0000000..1a56c0b
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/eo.js
@@ -0,0 +1,12 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","eo",{euro:"EÅrosigno",lsquo:"Supra 6-citilo",rsquo:"Supra 9-citilo",ldquo:"Supra 66-citilo",rdquo:"Supra 99-citilo",ndash:"Streketo",mdash:"Substreko",iexcl:"Renversita krisigno",cent:"Cendosigno",pound:"Pundosigno",curren:"Monersigno",yen:"Enosigno",brvbar:"Rompita vertikala streko",sect:"Kurba paragrafo",uml:"Tremao",copy:"Kopirajtosigno",ordf:"Adjektiva numerfinaĵo",laquo:"Duobla malplio-citilo",not:"Negohoko",reg:"Registrita marko",macr:"Superstreko",deg:"Gradosigno",
+sup2:"Supra indico 2",sup3:"Supra indico 3",acute:"Dekstra korno",micro:"Mikrosigno",para:"Rekta paragrafo",middot:"Meza punkto",cedil:"Zoeto",sup1:"Supra indico 1",ordm:"Substantiva numerfinaĵo",raquo:"Duobla plio-citilo",frac14:"Kvaronosigno",frac12:"Duonosigno",frac34:"Trikvaronosigno",iquest:"renversita demandosigno",Agrave:"Latina Äeflitero A kun liva korno",Aacute:"Latina Äeflitero A kun dekstra korno",Acirc:"Latina Äeflitero A kun Äapelo",Atilde:"Latina Äeflitero A kun tildo",Auml:"Latina Äeflitero A kun tremao",
+Aring:"Latina Äeflitero A kun superringo",AElig:"Latina Äeflitera ligaturo Ã",Ccedil:"Latina Äeflitero C kun zoeto",Egrave:"Latina Äeflitero E kun liva korno",Eacute:"Latina Äeflitero E kun dekstra korno",Ecirc:"Latina Äeflitero E kun Äapelo",Euml:"Latina Äeflitero E kun tremao",Igrave:"Latina Äeflitero I kun liva korno",Iacute:"Latina Äeflitero I kun dekstra korno",Icirc:"Latina Äeflitero I kun Äapelo",Iuml:"Latina Äeflitero I kun tremao",ETH:"Latina Äeflitero islanda edo",Ntilde:"Latina Äeflitero N kun tildo",
+Ograve:"Latina Äeflitero O kun liva korno",Oacute:"Latina Äeflitero O kun dekstra korno",Ocirc:"Latina Äeflitero O kun Äapelo",Otilde:"Latina Äeflitero O kun tildo",Ouml:"Latina Äeflitero O kun tremao",times:"Multipliko",Oslash:"Latina Äeflitero O trastrekita",Ugrave:"Latina Äeflitero U kun liva korno",Uacute:"Latina Äeflitero U kun dekstra korno",Ucirc:"Latina Äeflitero U kun Äapelo",Uuml:"Latina Äeflitero U kun tremao",Yacute:"Latina Äeflitero Y kun dekstra korno",THORN:"Latina Äeflitero islanda dorno",
+szlig:"Latina etlitero germana sozo (akra s)",agrave:"Latina etlitero a kun liva korno",aacute:"Latina etlitero a kun dekstra korno",acirc:"Latina etlitero a kun Äapelo",atilde:"Latina etlitero a kun tildo",auml:"Latina etlitero a kun tremao",aring:"Latina etlitero a kun superringo",aelig:"Latina etlitera ligaturo æ",ccedil:"Latina etlitero c kun zoeto",egrave:"Latina etlitero e kun liva korno",eacute:"Latina etlitero e kun dekstra korno",ecirc:"Latina etlitero e kun Äapelo",euml:"Latina etlitero e kun tremao",
+igrave:"Latina etlitero i kun liva korno",iacute:"Latina etlitero i kun dekstra korno",icirc:"Latina etlitero i kun Äapelo",iuml:"Latina etlitero i kun tremao",eth:"Latina etlitero islanda edo",ntilde:"Latina etlitero n kun tildo",ograve:"Latina etlitero o kun liva korno",oacute:"Latina etlitero o kun dekstra korno",ocirc:"Latina etlitero o kun Äapelo",otilde:"Latina etlitero o kun tildo",ouml:"Latina etlitero o kun tremao",divide:"Dividosigno",oslash:"Latina etlitero o trastrekita",ugrave:"Latina etlitero u kun liva korno",
+uacute:"Latina etlitero u kun dekstra korno",ucirc:"Latina etlitero u kun Äapelo",uuml:"Latina etlitero u kun tremao",yacute:"Latina etlitero y kun dekstra korno",thorn:"Latina etlitero islanda dorno",yuml:"Latina etlitero y kun tremao",OElig:"Latina Äeflitera ligaturo Å",oelig:"Latina etlitera ligaturo Å",372:"Latina Äeflitero W kun Äapelo",374:"Latina Äeflitero Y kun Äapelo",373:"Latina etlitero w kun Äapelo",375:"Latina etlitero y kun Äapelo",sbquo:"Suba 9-citilo",8219:"Supra renversita 9-citilo",
+bdquo:"Suba 99-citilo",hellip:"Tripunkto",trade:"Varmarka signo",9658:"Nigra sago dekstren",bull:"Bulmarko",rarr:"Sago dekstren",rArr:"Duobla sago dekstren",hArr:"Duobla sago maldekstren",diams:"Nigra kvadrato",asymp:"PreskaÅ egala"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/et.js b/share/static/RichText/plugins/specialchar/dialogs/lang/et.js
new file mode 100644
index 0000000..3a619cc
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/et.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","et",{euro:"Euromärk",lsquo:"Alustav ühekordne jutumärk",rsquo:"Lõpetav ühekordne jutumärk",ldquo:"Alustav kahekordne jutumärk",rdquo:"Lõpetav kahekordne jutumärk",ndash:"Enn-kriips",mdash:"Emm-kriips",iexcl:"Pööratud hüüumärk",cent:"Sendimärk",pound:"Naela märk",curren:"Valuutamärk",yen:"Jeeni märk",brvbar:"Katkestatud kriips",sect:"Lõigu märk",uml:"Täpid",copy:"Autoriõiguse märk",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
+not:"Ei-märk",reg:"Registered sign",macr:"Macron",deg:"Kraadimärk",sup2:"Ãlaindeks kaks",sup3:"Ãlaindeks kolm",acute:"Acute accent",micro:"Mikro-märk",para:"Pilcrow sign",middot:"Keskpunkt",cedil:"Cedilla",sup1:"Ãlaindeks üks",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
+Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Ladina suur A tildega",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
+Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Täppidega ladina suur O",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
+Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Kandilise katusega suur ladina U",Uuml:"Täppidega ladina suur U",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Ladina väike terav s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Kandilise katusega ladina väike a",atilde:"Tildega ladina väike a",auml:"Täppidega ladina väike a",aring:"Latin small letter a with ring above",
+aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",
+ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",
+thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",
+bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/fa.js b/share/static/RichText/plugins/specialchar/dialogs/lang/fa.js
new file mode 100644
index 0000000..493e580
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/fa.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","fa",{euro:"ÙØ´Ø§Ù ÛÙØ±Ù",lsquo:"Ø¹ÙØ§Ù
ت ÙÙÙ ÙÙÙ ØªÚ©Û ÚÙ¾",rsquo:"Ø¹ÙØ§Ù
ت ÙÙÙ ÙÙÙ ØªÚ©Û Ø±Ø§Ø³Øª",ldquo:"Ø¹ÙØ§Ù
ت Ø¯ÙØªØ§ÛÛ ÙÙÙ ÙÙÙ ÚÙ¾",rdquo:"Ø¹ÙØ§Ù
ت Ø¯ÙØªØ§ÛÛ ÙÙÙ ÙÙ٠راست",ndash:"خط ØªÛØ±Ù En",mdash:"خط ØªÛØ±Ù Em",iexcl:"Ø¹ÙØ§Ù
ت Ú¯Ø°Ø§Ø±Û Ø¨Ù Ø¹ÙÙØ§Ù Ø¹ÙØ§Ù
ت تعجب ÙØ§Ø±ÙÙÙ",cent:"ÙØ´Ø§Ù Ø³ÙØª",pound:"ÙØ´Ø§Ù Ù¾ÙÙØ¯",curren:"ÙØ´Ø§Ù ارز",yen:"ÙØ´Ø§Ù ÛÙ",brvbar:"ÙÙØ§Ø± شکستÙ",sect:"ÙØ´Ø§Ù بخش",uml:"Diaeresis",copy:"ÙØ´Ø§Ù Ú©Ù¾Û Ø±Ø§ÛØª",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",not:"Ø¹ÙØ§Ù
ت ثبت ÙØ´Ø¯Ù",
+reg:"Ø¹ÙØ§Ù
ت ثبت شدÙ",macr:"Macron",deg:"ÙØ´Ø§Ù درجÙ",sup2:"Ø¨Ø§ÙØ§ÙÙÛØ³ دÙ",sup3:"Ø¨Ø§ÙØ§ÙÙÛØ³ سÙ",acute:"ÙÙØ¬Ù غÙÛØ¸",micro:"ÙØ´Ø§Ù Ù
اÛکرÙ",para:"Pilcrow sign",middot:"ÙÙØ·Ù Ù
ÛØ§ÙÛ",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"ÙØ´Ø§Ù زاÙÛÙâØ¯Ø§Ø± Ø¯ÙØªØ§ÛÛ ÙÙÙ ÙÙ٠راست ÚÛÙ",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",
+Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",
+Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",
+Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",
+aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",
+ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",
+thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",
+bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Ø¬ÙØªâÙÙ
Ø§Û Ø¯ÙØªØ§ÛÛ ÚÙ¾ ب٠راست",diams:"Black diamond suit",asymp:"ØªÙØ±Ûبا برابر با"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/fi.js b/share/static/RichText/plugins/specialchar/dialogs/lang/fi.js
new file mode 100644
index 0000000..cee518a
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/fi.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","fi",{euro:"Euron merkki",lsquo:"Vasen yksittäinen lainausmerkki",rsquo:"Oikea yksittäinen lainausmerkki",ldquo:"Vasen kaksoislainausmerkki",rdquo:"Oikea kaksoislainausmerkki",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Sentin merkki",pound:"Punnan merkki",curren:"Valuuttamerkki",yen:"Yenin merkki",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
+not:"Not sign",reg:"Rekisteröity merkki",macr:"Macron",deg:"Asteen merkki",sup2:"Yläindeksi kaksi",sup3:"Yläindeksi kolme",acute:"Acute accent",micro:"Mikron merkki",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Yläindeksi yksi",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Ylösalaisin oleva kysymysmerkki",Agrave:"Latin capital letter A with grave accent",
+Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
+Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Kertomerkki",Oslash:"Latin capital letter O with stroke",
+Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
+aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
+ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Jakomerkki",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
+yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
+trade:"Tavaramerkki merkki",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Nuoli oikealle",rArr:"Kaksoisnuoli oikealle",hArr:"Kaksoisnuoli oikealle ja vasemmalle",diams:"Black diamond suit",asymp:"Noin"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/fr.js b/share/static/RichText/plugins/specialchar/dialogs/lang/fr.js
new file mode 100644
index 0000000..0a80c07
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/fr.js
@@ -0,0 +1,11 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","fr",{euro:"Symbole Euro",lsquo:"Guillemet simple ouvrant",rsquo:"Guillemet simple fermant",ldquo:"Guillemet double ouvrant",rdquo:"Guillemet double fermant",ndash:"Tiret haut",mdash:"Tiret bas underscore",iexcl:"Point d'exclamation inversé",cent:"Symbole Cent",pound:"Symbole Livre Sterling",curren:"Symbole monétaire",yen:"Symbole Yen",brvbar:"Barre verticale scindée",sect:"Section",uml:"Tréma",copy:"Symbole Copyright",ordf:"Indicateur ordinal féminin",laquo:"Guillemet français ouvrant",
+not:"Crochet de négation",reg:"Marque déposée",macr:"Macron",deg:"Degré",sup2:"Exposant 2",sup3:"\\tExposant 3",acute:"Accent aigu",micro:"Omicron",para:"Paragraphe",middot:"Point médian",cedil:"Cédille",sup1:"\\tExposant 1",ordm:"Indicateur ordinal masculin",raquo:"Guillemet français fermant",frac14:"Un quart",frac12:"Un demi",frac34:"Trois quarts",iquest:"Point d'interrogation inversé",Agrave:"A majuscule accent grave",Aacute:"A majuscule accent aigu",Acirc:"A majuscule accent circonflexe",Atilde:"A majuscule avec caron",
+Auml:"A majuscule tréma",Aring:"A majuscule avec un rond au-dessus",AElig:"à majuscule ligaturés",Ccedil:"C majuscule cédille",Egrave:"E majuscule accent grave",Eacute:"E majuscule accent aigu",Ecirc:"E majuscule accent circonflexe",Euml:"E majuscule tréma",Igrave:"I majuscule accent grave",Iacute:"I majuscule accent aigu",Icirc:"I majuscule accent circonflexe",Iuml:"I majuscule tréma",ETH:"Lettre majuscule islandaise ED",Ntilde:"N majuscule avec caron",Ograve:"O majuscule accent grave",Oacute:"O majuscule accent aigu",
+Ocirc:"O majuscule accent circonflexe",Otilde:"O majuscule avec caron",Ouml:"O majuscule tréma",times:"Multiplication",Oslash:"O majuscule barré",Ugrave:"U majuscule accent grave",Uacute:"U majuscule accent aigu",Ucirc:"U majuscule accent circonflexe",Uuml:"U majuscule tréma",Yacute:"Y majuscule accent aigu",THORN:"Lettre islandaise Thorn majuscule",szlig:"Lettre minuscule allemande s dur",agrave:"a minuscule accent grave",aacute:"a minuscule accent aigu",acirc:"a minuscule accent circonflexe",atilde:"a minuscule avec caron",
+auml:"a minuscule tréma",aring:"a minuscule avec un rond au-dessus",aelig:"æ minuscule ligaturés",ccedil:"c minuscule cédille",egrave:"e minuscule accent grave",eacute:"e minuscule accent aigu",ecirc:"e minuscule accent circonflexe",euml:"e minuscule tréma",igrave:"i minuscule accent grave",iacute:"i minuscule accent aigu",icirc:"i minuscule accent circonflexe",iuml:"i minuscule tréma",eth:"Lettre minuscule islandaise ED",ntilde:"n minuscule avec caron",ograve:"o minuscule accent grave",oacute:"o minuscule accent aigu",
+ocirc:"o minuscule accent circonflexe",otilde:"o minuscule avec caron",ouml:"o minuscule tréma",divide:"Division",oslash:"o minuscule barré",ugrave:"u minuscule accent grave",uacute:"u minuscule accent aigu",ucirc:"u minuscule accent circonflexe",uuml:"u minuscule tréma",yacute:"y minuscule accent aigu",thorn:"Lettre islandaise thorn minuscule",yuml:"y minuscule tréma",OElig:"ligature majuscule latine Å",oelig:"ligature minuscule latine Å",372:"W majuscule accent circonflexe",374:"Y majuscule accent circonflexe",
+373:"w minuscule accent circonflexe",375:"y minuscule accent circonflexe",sbquo:"Guillemet simple fermant (anglais)",8219:"Guillemet-virgule supérieur culbuté",bdquo:"Guillemet-virgule double inférieur",hellip:"Points de suspension",trade:"Marque commerciale (trade mark)",9658:"Flèche noire pointant vers la droite",bull:"Gros point médian",rarr:"Flèche vers la droite",rArr:"Double flèche vers la droite",hArr:"Double flèche vers la gauche",diams:"Carreau noir",asymp:"Presque égal"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/he.js b/share/static/RichText/plugins/specialchar/dialogs/lang/he.js
new file mode 100644
index 0000000..17ee34f
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/he.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","he",{euro:"××ר×",lsquo:"Left single quotation mark",rsquo:"Right single quotation mark",ldquo:"Left double quotation mark",rdquo:"Right double quotation mark",ndash:"En dash",mdash:"Em dash",iexcl:"Inverted exclamation mark",cent:"Cent sign",pound:"Pound sign",curren:"Currency sign",yen:"Yen sign",brvbar:"Broken bar",sect:"Section sign",uml:"Diaeresis",copy:"Copyright sign",ordf:"Feminine ordinal indicator",laquo:"Left-pointing double angle quotation mark",
+not:"Not sign",reg:"Registered sign",macr:"Macron",deg:"Degree sign",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Middle dot",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Right-pointing double angle quotation mark",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",
+Aacute:"Latin capital letter A with acute accent",Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",
+Iacute:"Latin capital letter I with acute accent",Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",
+Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",
+aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",
+ntilde:"Latin small letter n with tilde",ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",
+yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",
+trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/hr.js b/share/static/RichText/plugins/specialchar/dialogs/lang/hr.js
new file mode 100644
index 0000000..94f49fc
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/hr.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","hr",{euro:"Euro znak",lsquo:"Lijevi jednostruki navodnik",rsquo:"Desni jednostruki navodnik",ldquo:"Lijevi dvostruki navodnik",rdquo:"Desni dvostruki navodnik",ndash:"En crtica",mdash:"Em crtica",iexcl:"Naopaki uskliÄnik",cent:"Cent znak",pound:"Funta znak",curren:"Znak valute",yen:"Yen znak",brvbar:"Potrgana preÄka",sect:"Znak odjeljka",uml:"Diaeresis",copy:"Copyright znak",ordf:"Feminine ordinal indicator",laquo:"Lijevi dvostruki uglati navodnik",not:"Not znak",
+reg:"Registered znak",macr:"Macron",deg:"Stupanj znak",sup2:"Superscript two",sup3:"Superscript three",acute:"Acute accent",micro:"Micro sign",para:"Pilcrow sign",middot:"Srednja toÄka",cedil:"Cedilla",sup1:"Superscript one",ordm:"Masculine ordinal indicator",raquo:"Desni dvostruku uglati navodnik",frac14:"Vulgar fraction one quarter",frac12:"Vulgar fraction one half",frac34:"Vulgar fraction three quarters",iquest:"Naopaki upitnik",Agrave:"Veliko latinsko slovo A s akcentom",Aacute:"Latin capital letter A with acute accent",
+Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",
+Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"Latin capital letter O with grave accent",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",
+Uacute:"Latin capital letter U with acute accent",Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",
+aelig:"Latin small letter æ",ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"Latin small letter n with tilde",
+ograve:"Latin small letter o with grave accent",oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",
+thorn:"Latin small letter thorn",yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",
+bull:"Bullet",rarr:"Rightwards arrow",rArr:"Rightwards double arrow",hArr:"Left right double arrow",diams:"Black diamond suit",asymp:"Almost equal to"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/it.js b/share/static/RichText/plugins/specialchar/dialogs/lang/it.js
new file mode 100644
index 0000000..b08b24d
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/it.js
@@ -0,0 +1,14 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","it",{euro:"Simbolo Euro",lsquo:"Virgoletta singola sinistra",rsquo:"Virgoletta singola destra",ldquo:"Virgolette aperte",rdquo:"Virgolette chiuse",ndash:"Trattino",mdash:"Trattino lungo",iexcl:"Punto esclavamativo invertito",cent:"Simbolo Cent",pound:"Simbolo Sterlina",curren:"Simbolo Moneta",yen:"Simbolo Yen",brvbar:"Barra interrotta",sect:"Simbolo di sezione",uml:"Dieresi",copy:"Simbolo Copyright",ordf:"Indicatore ordinale femminile",laquo:"Virgolette basse aperte",
+not:"Nessun segno",reg:"Simbolo Registrato",macr:"Macron",deg:"Simbolo Grado",sup2:"Apice Due",sup3:"Apice Tre",acute:"Accento acuto",micro:"Simbolo Micro",para:"Simbolo Paragrafo",middot:"Punto centrale",cedil:"Cediglia",sup1:"Apice Uno",ordm:"Indicatore ordinale maschile",raquo:"Virgolette basse chiuse",frac14:"Frazione volgare un quarto",frac12:"Frazione volgare un mezzo",frac34:"Frazione volgare tre quarti",iquest:"Punto interrogativo invertito",Agrave:"Lettera maiuscola latina A con accento grave",
+Aacute:"Lettera maiuscola latina A con accento acuto",Acirc:"Lettera maiuscola latina A con accento circonflesso",Atilde:"Lettera maiuscola latina A con tilde",Auml:"Lettera maiuscola latina A con dieresi",Aring:"Lettera maiuscola latina A con anello sopra",AElig:"Lettera maiuscola latina AE",Ccedil:"Lettera maiuscola latina C con cediglia",Egrave:"Lettera maiuscola latina E con accento grave",Eacute:"Lettera maiuscola latina E con accento acuto",Ecirc:"Lettera maiuscola latina E con accento circonflesso",
+Euml:"Lettera maiuscola latina E con dieresi",Igrave:"Lettera maiuscola latina I con accento grave",Iacute:"Lettera maiuscola latina I con accento acuto",Icirc:"Lettera maiuscola latina I con accento circonflesso",Iuml:"Lettera maiuscola latina I con dieresi",ETH:"Lettera maiuscola latina Eth",Ntilde:"Lettera maiuscola latina N con tilde",Ograve:"Lettera maiuscola latina O con accento grave",Oacute:"Lettera maiuscola latina O con accento acuto",Ocirc:"Lettera maiuscola latina O con accento circonflesso",
+Otilde:"Lettera maiuscola latina O con tilde",Ouml:"Lettera maiuscola latina O con dieresi",times:"Simbolo di moltiplicazione",Oslash:"Lettera maiuscola latina O barrata",Ugrave:"Lettera maiuscola latina U con accento grave",Uacute:"Lettera maiuscola latina U con accento acuto",Ucirc:"Lettera maiuscola latina U con accento circonflesso",Uuml:"Lettera maiuscola latina U con accento circonflesso",Yacute:"Lettera maiuscola latina Y con accento acuto",THORN:"Lettera maiuscola latina Thorn",szlig:"Lettera latina minuscola doppia S",
+agrave:"Lettera minuscola latina a con accento grave",aacute:"Lettera minuscola latina a con accento acuto",acirc:"Lettera minuscola latina a con accento circonflesso",atilde:"Lettera minuscola latina a con tilde",auml:"Lettera minuscola latina a con dieresi",aring:"Lettera minuscola latina a con anello superiore",aelig:"Lettera minuscola latina ae",ccedil:"Lettera minuscola latina c con cediglia",egrave:"Lettera minuscola latina e con accento grave",eacute:"Lettera minuscola latina e con accento acuto",
+ecirc:"Lettera minuscola latina e con accento circonflesso",euml:"Lettera minuscola latina e con dieresi",igrave:"Lettera minuscola latina i con accento grave",iacute:"Lettera minuscola latina i con accento acuto",icirc:"Lettera minuscola latina i con accento circonflesso",iuml:"Lettera minuscola latina i con dieresi",eth:"Lettera minuscola latina eth",ntilde:"Lettera minuscola latina n con tilde",ograve:"Lettera minuscola latina o con accento grave",oacute:"Lettera minuscola latina o con accento acuto",
+ocirc:"Lettera minuscola latina o con accento circonflesso",otilde:"Lettera minuscola latina o con tilde",ouml:"Lettera minuscola latina o con dieresi",divide:"Simbolo di divisione",oslash:"Lettera minuscola latina o barrata",ugrave:"Lettera minuscola latina u con accento grave",uacute:"Lettera minuscola latina u con accento acuto",ucirc:"Lettera minuscola latina u con accento circonflesso",uuml:"Lettera minuscola latina u con dieresi",yacute:"Lettera minuscola latina y con accento acuto",thorn:"Lettera minuscola latina thorn",
+yuml:"Lettera minuscola latina y con dieresi",OElig:"Legatura maiuscola latina OE",oelig:"Legatura minuscola latina oe",372:"Lettera maiuscola latina W con accento circonflesso",374:"Lettera maiuscola latina Y con accento circonflesso",373:"Lettera minuscola latina w con accento circonflesso",375:"Lettera minuscola latina y con accento circonflesso",sbquo:"Singola virgoletta bassa low-9",8219:"Singola virgoletta bassa low-9 inversa",bdquo:"Doppia virgoletta bassa low-9",hellip:"Ellissi orizzontale",
+trade:"Simbolo TM",9658:"Puntatore nero rivolto verso destra",bull:"Punto",rarr:"Freccia verso destra",rArr:"Doppia freccia verso destra",hArr:"Doppia freccia sinistra destra",diams:"Simbolo nero diamante",asymp:"Quasi uguale a"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/ku.js b/share/static/RichText/plugins/specialchar/dialogs/lang/ku.js
new file mode 100644
index 0000000..235d952
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/ku.js
@@ -0,0 +1,14 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","ku",{euro:"ÙÛØ´Ø§ÙÙâÛ ÛÛØ±Û",lsquo:"ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û ØªØ§Ú©Û ÚÙâÙ¾",rsquo:"ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û ØªØ§Ú©Û ÚØ§Ø³Øª",ldquo:"ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û دÙÙÙÛÙØ¯ÙâÛ ÚÙâÙ¾",rdquo:"ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø³ÙâØ±ÙÙÚÛØ±Û دÙÙÙÛÙØ¯ÙâÛ ÚØ§Ø³Øª",ndash:"تÙâÙÙâÚµÛ Ú©ÙØ±Øª",mdash:"تÙâÙÙâÚµÛ Ø¯Ø±ÛÚ",iexcl:"ÙÛØ´Ø§ÙÙâÛ ÙÙâÚµÙâÙÚ¯ÛÚÛ Ø³ÙâØ±Ø³ÙÚÙ
ÛÙÙâØ±",cent:"ÙÛØ´Ø§ÙÙâÛ Ø³ÙâÙØª",pound:"ÙÛØ´Ø§ÙÙâÛ Ù¾Ø§ÙÙâÙØ¯",curren:"ÙÛØ´Ø§ÙÙâÛ Ø¯Ø±Ø§Ù",yen:"ÙÛØ´Ø§ÙÙâÛ ÛÙâÙÛ ÚØ§Ù¾ÛÙÛ",brvbar:"Ø´Ø±ÛØªÛ ئÙâØ³ØªÙÙÙÛ Ù¾ÚÚØ§Ù",sect:"ÙÛØ´Ø§ÙÙâÛ Ø¯ÙÙ s ÙÙâØ³ÙâØ±ÛÙâÙ",
+uml:"خاڵ",copy:"ÙÛØ´Ø§ÙÙâÛ Ù
اÙÛ ÚØ§Ù¾",ordf:"ÙÛÚµ ÙÙâØ³ÙâØ± Ù¾ÛØªÛ a",laquo:"دÙÙ ØªÛØ±Û بÙâØ¯ÙÙØ§ÛÙâÚ©Û ÚÙâÙ¾",not:"ÙÛØ´Ø§ÙÙâÛ ÙÙâØ®ÛØ±",reg:"ÙÛØ´Ø§ÙÙâÛ R ÙÙâÙØ§Ù بازÙÙâØ¯Ø§",macr:"Ù
اکÚÙÙÙ",deg:"ÙÛØ´Ø§ÙÙâÛ Ù¾ÙÙ",sup2:"سÙâØ±ÙÙÙØ³Û دÙÙ",sup3:"سÙâØ±ÙÙÙØ³Û سÛ",acute:"ÙØ§Ø±Û تÛÚ",micro:"ÙÛØ´Ø§ÙÙâÛ u Ù٠درÛÚÛ ÚÙâÙ¾Û Ø®ÙØ§Ø±ÙÙ",para:"ÙÛØ´Ø§ÙÙâÛÙ¾ÙâÚÙâگراÙ",middot:"ÙØ§ÙÙâÚØ§Ø³ØªÛ خاڵ",cedil:"ÙÛØ´Ø§ÙÙâÛ c ÚÛØ± ÚÙÙکرÙâ",sup1:"سÙâØ±ÙÙÙØ³Û ÛÙâÙ",ordm:"ÙÛÚµ ÙÙâÚÛØ± Ù¾ÛØªÛ o",raquo:"دÙÙ ØªÛØ±Û بÙâØ¯ÙÙØ§ÛÙâÚ©Û ÚØ§Ø³Øª",frac14:"ÛÙâÙ ÙÙâØ³ÙâØ± ÚÙÙØ§Ø±",frac12:"ÛÙâÙ ÙÙâØ³ÙâØ± دÙÙ",
+frac34:"Ø³Û ÙÙâØ³ÙâØ± ÚÙÙØ§Ø±",iquest:"ÙÛÙ
Ø§Û ÙÙâÚµÙâÙÚ¯ÛØ±Û Ù¾Ø±Ø³ÛØ§Ø±",Agrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",Aacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",Acirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Atilde:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ",Auml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ A-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Aring:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã
",AElig:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã",Ccedil:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ C-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÛØ± ÚÙÙکرÙâ",Egrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",
+Eacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",Ecirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Euml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Igrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",Iacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",Icirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Iuml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ I-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",ETH:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ E-Û Ú¯ÙâÙØ±ÙâÛ",Ntilde:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ N-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ",Ograve:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",
+Oacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",Ocirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Otilde:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ",Ouml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ O-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",times:"ÙÛØ´Ø§ÙÙâÛ ÙÛکداÙ",Oslash:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã ÙÙâÚ¯ÙâÚµ ÙÛÙ
Ø§Û Ø¯Úµ ÙÙâØ³ØªØ§Ù",Ugrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",Uacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",Ucirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",Uuml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ U-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",
+Yacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Y-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",THORN:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ø¯ÚÚ©Û Ú¯ÙâÙØ±Ù",szlig:"Ù¾ÛØªÛ ÙØ§ØªÙÛ ÙÙÙ٠تÛÚÛ s",agrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",aacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",acirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",atilde:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ",auml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ a-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",aring:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ã¥-Û Ø¨ÚÙÙÙ",aelig:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ã¦-Û Ø¨ÚÙÙÙ",ccedil:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ c-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÛØ± ÚÙÙکرÙâ",egrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",
+eacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",ecirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",euml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",igrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",iacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",icirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",iuml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ i-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",eth:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ e-Û Ø¨ÚÙÙÙ",ntilde:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ n-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ",ograve:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",
+oacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",ocirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",otilde:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ زÙâÚÙâ",ouml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ o-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",divide:"ÙÛØ´Ø§ÙÙâÛ Ø¯Ø§Ø¨ÙâØ´",oslash:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ã¸ ÙÙâÚ¯ÙâÚµ ÙÛÙ
Ø§Û Ø¯Úµ ÙÙâØ³ØªØ§Ù",ugrave:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ÙØ§Ø±",uacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",ucirc:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",uuml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ u-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",
+yacute:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ y-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÚÙÙÙ
ÙâØªØ¯Ø§Ø±Û ØªÛÚ",thorn:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ø¯ÚÚ©Û Ø¨ÚÙÙÙ",yuml:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ y-Û Ø¨ÚÙÙÙ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",OElig:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ú¯ÙâÙØ±ÙâÛ Ù¾ÛÚ©ÙâÙÙâÙÙÙØ³Ø±Ø§ÙÛ OE",oelig:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Ø¨ÚÙÙÚ©Û Ù¾ÛÚ©ÙâÙÙâÙÙÙØ³Ø±Ø§ÙÛ oe",372:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ W-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",374:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ Y-Û Ú¯ÙâÙØ±Ùâ ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",373:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ w-Û Ø¨ÚÙÙÚ©Û ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",375:"Ù¾ÛØªÛ ÙØ§ØªÛÙÛ y-Û Ø¨ÚÙÙÚ©Û ÙÙâÚ¯ÙâÚµ ÙÛØ´Ø§ÙÙâ ÙÙâØ³ÙâØ±Û",sbquo:"ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ ÙØ²Ù
",8219:"ÙÛØ´Ø§ÙÙâÛ ÙØ§Ø±ÛزÙâÛ Ø¨ÙâØ±Ø²Û Ù¾ÛÚÙâÙØ§ÙÙ",
+bdquo:"دÙÙ ÙØ§Ø±ÛزÙâÛ ØªÙâÙÛØ´ ÛÙâÙ",hellip:"ئاسÛÛÛ Ø¨Ø§Ø²ÙÙ",trade:"ÙÛØ´Ø§ÙÙâÛ Ø¨Ø§Ø²Ø±Ú¯Ø§ÙÛ",9658:"ئاراستÙâÛ ÚÙâØ´Û Ø¯ÙâØ³ØªÛ ÚØ§Ø³Øª",bull:"ÙÛØ´ÙâÙ",rarr:"ØªÛØ±Û دÙâØ³ØªÛ ÚØ§Ø³Øª",rArr:"دÙÙØªÛØ±Û Ø¯ÙâØ³ØªÛ ÚØ§Ø³Øª",hArr:"دÙÙ ØªÛØ±Û ÚØ§Ø³Øª Ù ÚÙâÙ¾",diams:"ÚÙâØ´Û Ù¾Ø§ÙڵاÙÙâÛÛ",asymp:"ÙÛØ´Ø§ÙÙâÛ ÛÙâکساÙÙ"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/lv.js b/share/static/RichText/plugins/specialchar/dialogs/lang/lv.js
new file mode 100644
index 0000000..f7a8250
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/lv.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","lv",{euro:"Euro zÄ«me",lsquo:"KreisÄ vienkÄrtÄ«ga pÄdiÅa",rsquo:"LabÄ vienkÄrtÄ«ga pÄdiÅa",ldquo:"KreisÄ dubult pÄdiÅa",rdquo:"LabÄ dubult pÄdiÅa",ndash:"En svÄ«tra",mdash:"Em svÄ«tra",iexcl:"Apgriezta izsaukuma zÄ«me",cent:"Centu naudas zÄ«me",pound:"SterliÅu mÄrciÅu naudas zÄ«me",curren:"ValÅ«tas zÄ«me",yen:"Jenu naudas zÄ«me",brvbar:"VertikÄla pÄrrauta lÄ«nija",sect:"ParagrÄfa zÄ«me",uml:"Diakritiska zÄ«me",copy:"AutortiesÄ«bu zÄ«me",ordf:"Sievišķas kÄrtas rÄdÄ«tÄjs",
+laquo:"KreisÄ dubult stÅ«ra pÄdiÅu zÄ«me",not:"NeparakstÄ«ts",reg:"ReÄ£istrÄta zÄ«me",macr:"GarumzÄ«me",deg:"GrÄdu zÄ«me",sup2:"AugÅ¡raksts divi",sup3:"AugÅ¡raksts trÄ«s",acute:"AkÅ«ta uzsvara zÄ«me",micro:"Mikro zÄ«me",para:"Rindkopas zÄ«me ",middot:"VidÄjs punkts",cedil:"ÄÄ·Ä«tis zem burta",sup1:"AugÅ¡raksts viens",ordm:"VÄ«rišķīgas kÄrtas rÄdÄ«tÄjs",raquo:"LabÄ dubult stÅ«ra pÄdiÅu zÄ«me",frac14:"VulgÄra frakcija 1/4",frac12:"VulgÄra frakcija 1/2",frac34:"VulgÄra frakcija 3/4",iquest:"Apgriezta jautÄjuma zÄ«me",Agrave:"Lielais latÄ«Åu burts A ar uzsvara zÄ«mi",
+Aacute:"Lielais latÄ«Åu burts A ar akÅ«tu uzsvara zÄ«mi",Acirc:"Lielais latÄ«Åu burts A ar diakritisku zÄ«mi",Atilde:"Lielais latÄ«Åu burts A ar tildi ",Auml:"Lielais latÄ«Åu burts A ar diakritisko zÄ«mi",Aring:"Lielais latÄ«Åu burts A ar aplÄ«ti augÅ¡Ä",AElig:"Lielais latÄ«Åu burts Ã",Ccedil:"Lielais latÄ«Åu burts C ar ÄÄ·Ä«ti zem burta",Egrave:"Lielais latÄ«Åu burts E ar apostrofu",Eacute:"Lielais latÄ«Åu burts E ar akÅ«tu uzsvara zÄ«mi",Ecirc:"Lielais latÄ«Åu burts E ar diakritisko zÄ«mi",Euml:"Lielais latÄ«Åu burts E ar diakritisko zÄ«mi",
+Igrave:"Lielais latÄ«Åu burts I ar uzsvaras zÄ«mi",Iacute:"Lielais latÄ«Åu burts I ar akÅ«tu uzsvara zÄ«mi",Icirc:"Lielais latÄ«Åu burts I ar diakritisko zÄ«mi",Iuml:"Lielais latÄ«Åu burts I ar diakritisko zÄ«mi",ETH:"Lielais latÄ«Åu burts Eth",Ntilde:"Lielais latÄ«Åu burts N ar tildi",Ograve:"Lielais latÄ«Åu burts O ar uzsvara zÄ«mi",Oacute:"Lielais latÄ«Åu burts O ar akÅ«to uzsvara zÄ«mi",Ocirc:"Lielais latÄ«Åu burts O ar diakritisko zÄ«mi",Otilde:"Lielais latÄ«Åu burts O ar tildi",Ouml:"Lielais latÄ«Åu burts O ar diakritisko zÄ«mi",
+times:"ReizinÄÅ¡anas zÄ«me ",Oslash:"Lielais latÄ«Åu burts O ar iesvÄ«trojumu",Ugrave:"Lielais latÄ«Åu burts U ar uzsvaras zÄ«mi",Uacute:"Lielais latÄ«Åu burts U ar akÅ«to uzsvars zÄ«mi",Ucirc:"Lielais latÄ«Åu burts U ar diakritisko zÄ«mi",Uuml:"Lielais latÄ«Åu burts U ar diakritisko zÄ«mi",Yacute:"Lielais latÄ«Åu burts Y ar akÅ«to uzsvaras zÄ«mi",THORN:"Lielais latÄ«Åu burts torn",szlig:"Mazs latÄ«Åu burts ar ligatÅ«ru",agrave:"Mazs latÄ«Åu burts a ar uzsvara zÄ«mi",aacute:"Mazs latÄ«Åu burts a ar akÅ«to uzsvara zÄ«mi",
+acirc:"Mazs latÄ«Åu burts a ar diakritisko zÄ«mi",atilde:"Mazs latÄ«Åu burts a ar tildi",auml:"Mazs latÄ«Åu burts a ar diakritisko zÄ«mi",aring:"Mazs latÄ«Åu burts a ar aplÄ«ti augÅ¡Ä",aelig:"Mazs latÄ«Åu burts æ",ccedil:"Mazs latÄ«Åu burts c ar ÄÄ·Ä«ti zem burta",egrave:"Mazs latÄ«Åu burts e ar uzsvara zÄ«mi ",eacute:"Mazs latÄ«Åu burts e ar akÅ«tu uzsvara zÄ«mi",ecirc:"Mazs latÄ«Åu burts e ar diakritisko zÄ«mi",euml:"Mazs latÄ«Åu burts e ar diakritisko zÄ«mi",igrave:"Mazs latÄ«Åu burts i ar uzsvara zÄ«mi ",iacute:"Mazs latÄ«Åu burts i ar akÅ«tu uzsvara zÄ«mi",
+icirc:"Mazs latÄ«Åu burts i ar diakritisko zÄ«mi",iuml:"Mazs latÄ«Åu burts i ar diakritisko zÄ«mi",eth:"Mazs latÄ«Åu burts eth",ntilde:"Mazs latÄ«Åu burts n ar tildi",ograve:"Mazs latÄ«Åu burts o ar uzsvara zÄ«mi ",oacute:"Mazs latÄ«Åu burts o ar akÅ«tu uzsvara zÄ«mi",ocirc:"Mazs latÄ«Åu burts o ar diakritisko zÄ«mi",otilde:"Mazs latÄ«Åu burts o ar tildi",ouml:"Mazs latÄ«Åu burts o ar diakritisko zÄ«mi",divide:"Dalīšanas zÄ«me",oslash:"Mazs latÄ«Åu burts o ar iesvÄ«trojumu",ugrave:"Mazs latÄ«Åu burts u ar uzsvara zÄ«mi ",
+uacute:"Mazs latÄ«Åu burts u ar akÅ«tu uzsvara zÄ«mi",ucirc:"Mazs latÄ«Åu burts u ar diakritisko zÄ«mi",uuml:"Mazs latÄ«Åu burts u ar diakritisko zÄ«mi",yacute:"Mazs latÄ«Åu burts y ar akÅ«tu uzsvaras zÄ«mi",thorn:"Mazs latÄ«Åu burts torns",yuml:"Mazs latÄ«Åu burts y ar diakritisko zÄ«mi",OElig:"Liela latÄ«Åu ligatÅ«ra OE",oelig:"Maza latÄ«Åu ligatÅ«ra oe",372:"Liels latÄ«Åu burts W ar diakritisko zÄ«mi ",374:"Liels latÄ«Åu burts Y ar diakritisko zÄ«mi ",373:"Mazs latÄ«Åu burts w ar diakritisko zÄ«mi ",375:"Mazs latÄ«Åu burts y ar diakritisko zÄ«mi ",
+sbquo:"Mazas-9 vienkÄrtÄ«gas pÄdiÅas",8219:"Lielas-9 vienkÄrtÄ«gas apgrieztas pÄdiÅas",bdquo:"Mazas-9 dubultas pÄdiÅas",hellip:"HorizontÄli daudzpunkti",trade:"PreÄu zÄ«mes zÄ«me",9658:"Melns pa labi pagriezts radÄ«tÄjs",bull:"Lode",rarr:"Bulta pa labi",rArr:"Dubulta Bulta pa labi",hArr:"Bulta pa kreisi",diams:"Dubulta Bulta pa kreisi",asymp:"GandrÄ«z vienÄds ar"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/nb.js b/share/static/RichText/plugins/specialchar/dialogs/lang/nb.js
new file mode 100644
index 0000000..2758992
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/nb.js
@@ -0,0 +1,11 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","nb",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn",
+reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde",
+Auml:"Stor A med tøddel",Aring:"Stor Ã
",AElig:"Stor Ã",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel",
+times:"Multiplikasjonstegn",Oslash:"Stor Ã",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten Ã¥",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent",
+ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks",
+uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil",
+rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/nl.js b/share/static/RichText/plugins/specialchar/dialogs/lang/nl.js
new file mode 100644
index 0000000..5838991
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/nl.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","nl",{euro:"Euro-teken",lsquo:"Linker enkel aanhalingsteken",rsquo:"Rechter enkel aanhalingsteken",ldquo:"Linker dubbel aanhalingsteken",rdquo:"Rechter dubbel aanhalingsteken",ndash:"En dash",mdash:"Em dash",iexcl:"Omgekeerd uitroepteken",cent:"Cent-teken",pound:"Pond-teken",curren:"Valuta-teken",yen:"Yen-teken",brvbar:"Gebroken streep",sect:"Paragraaf-teken",uml:"Trema",copy:"Copyright-teken",ordf:"Vrouwelijk ordinaal",laquo:"Linker guillemet",not:"Ongelijk-teken",
+reg:"Geregistreerd handelsmerk-teken",macr:"Macron",deg:"Graden-teken",sup2:"Superscript twee",sup3:"Superscript drie",acute:"Accent aigu",micro:"Mico-teken",para:"Alinea-teken",middot:"Halfhoge punt",cedil:"Cedille",sup1:"Superscript een",ordm:"Mannelijk ordinaal",raquo:"Rechter guillemet",frac14:"Breuk kwart",frac12:"Breuk half",frac34:"Breuk driekwart",iquest:"Omgekeerd vraagteken",Agrave:"Latijnse hoofdletter A met een accent grave",Aacute:"Latijnse hoofdletter A met een accent aigu",Acirc:"Latijnse hoofdletter A met een circonflexe",
+Atilde:"Latijnse hoofdletter A met een tilde",Auml:"Latijnse hoofdletter A met een trema",Aring:"Latijnse hoofdletter A met een corona",AElig:"Latijnse hoofdletter Ã",Ccedil:"Latijnse hoofdletter C met een cedille",Egrave:"Latijnse hoofdletter E met een accent grave",Eacute:"Latijnse hoofdletter E met een accent aigu",Ecirc:"Latijnse hoofdletter E met een circonflexe",Euml:"Latijnse hoofdletter E met een trema",Igrave:"Latijnse hoofdletter I met een accent grave",Iacute:"Latijnse hoofdletter I met een accent aigu",
+Icirc:"Latijnse hoofdletter I met een circonflexe",Iuml:"Latijnse hoofdletter I met een trema",ETH:"Latijnse hoofdletter Eth",Ntilde:"Latijnse hoofdletter N met een tilde",Ograve:"Latijnse hoofdletter O met een accent grave",Oacute:"Latijnse hoofdletter O met een accent aigu",Ocirc:"Latijnse hoofdletter O met een circonflexe",Otilde:"Latijnse hoofdletter O met een tilde",Ouml:"Latijnse hoofdletter O met een trema",times:"Maal-teken",Oslash:"Latijnse hoofdletter O met een schuine streep",Ugrave:"Latijnse hoofdletter U met een accent grave",
+Uacute:"Latijnse hoofdletter U met een accent aigu",Ucirc:"Latijnse hoofdletter U met een circonflexe",Uuml:"Latijnse hoofdletter U met een trema",Yacute:"Latijnse hoofdletter Y met een accent aigu",THORN:"Latijnse hoofdletter Thorn",szlig:"Latijnse kleine ringel-s",agrave:"Latijnse kleine letter a met een accent grave",aacute:"Latijnse kleine letter a met een accent aigu",acirc:"Latijnse kleine letter a met een circonflexe",atilde:"Latijnse kleine letter a met een tilde",auml:"Latijnse kleine letter a met een trema",
+aring:"Latijnse kleine letter a met een corona",aelig:"Latijnse kleine letter æ",ccedil:"Latijnse kleine letter c met een cedille",egrave:"Latijnse kleine letter e met een accent grave",eacute:"Latijnse kleine letter e met een accent aigu",ecirc:"Latijnse kleine letter e met een circonflexe",euml:"Latijnse kleine letter e met een trema",igrave:"Latijnse kleine letter i met een accent grave",iacute:"Latijnse kleine letter i met een accent aigu",icirc:"Latijnse kleine letter i met een circonflexe",
+iuml:"Latijnse kleine letter i met een trema",eth:"Latijnse kleine letter eth",ntilde:"Latijnse kleine letter n met een tilde",ograve:"Latijnse kleine letter o met een accent grave",oacute:"Latijnse kleine letter o met een accent aigu",ocirc:"Latijnse kleine letter o met een circonflexe",otilde:"Latijnse kleine letter o met een tilde",ouml:"Latijnse kleine letter o met een trema",divide:"Deel-teken",oslash:"Latijnse kleine letter o met een schuine streep",ugrave:"Latijnse kleine letter u met een accent grave",
+uacute:"Latijnse kleine letter u met een accent aigu",ucirc:"Latijnse kleine letter u met een circonflexe",uuml:"Latijnse kleine letter u met een trema",yacute:"Latijnse kleine letter y met een accent aigu",thorn:"Latijnse kleine letter thorn",yuml:"Latijnse kleine letter y met een trema",OElig:"Latijnse hoofdletter Å",oelig:"Latijnse kleine letter Å",372:"Latijnse hoofdletter W met een circonflexe",374:"Latijnse hoofdletter Y met een circonflexe",373:"Latijnse kleine letter w met een circonflexe",
+375:"Latijnse kleine letter y met een circonflexe",sbquo:"Lage enkele aanhalingsteken",8219:"Hoge omgekeerde enkele aanhalingsteken",bdquo:"Lage dubbele aanhalingsteken",hellip:"Beletselteken",trade:"Trademark-teken",9658:"Zwarte driehoek naar rechts",bull:"Bullet",rarr:"Pijl naar rechts",rArr:"Dubbele pijl naar rechts",hArr:"Dubbele pijl naar links",diams:"Zwart ruitje",asymp:"Benaderingsteken"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/no.js b/share/static/RichText/plugins/specialchar/dialogs/lang/no.js
new file mode 100644
index 0000000..dadc22e
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/no.js
@@ -0,0 +1,11 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","no",{euro:"Eurosymbol",lsquo:"Venstre enkelt anførselstegn",rsquo:"Høyre enkelt anførselstegn",ldquo:"Venstre dobbelt anførselstegn",rdquo:"Høyre anførsesltegn",ndash:"Kort tankestrek",mdash:"Lang tankestrek",iexcl:"Omvendt utropstegn",cent:"Centsymbol",pound:"Pundsymbol",curren:"Valutategn",yen:"Yensymbol",brvbar:"Brutt loddrett strek",sect:"Paragraftegn",uml:"Tøddel",copy:"Copyrighttegn",ordf:"Feminin ordensindikator",laquo:"Venstre anførselstegn",not:"Negasjonstegn",
+reg:"Registrert varemerke-tegn",macr:"Makron",deg:"Gradsymbol",sup2:"Hevet totall",sup3:"Hevet tretall",acute:"Akutt aksent",micro:"Mikrosymbol",para:"Avsnittstegn",middot:"Midtstilt prikk",cedil:"Cedille",sup1:"Hevet ettall",ordm:"Maskulin ordensindikator",raquo:"Høyre anførselstegn",frac14:"Fjerdedelsbrøk",frac12:"Halvbrøk",frac34:"Tre fjerdedelers brøk",iquest:"Omvendt spørsmålstegn",Agrave:"Stor A med grav aksent",Aacute:"Stor A med akutt aksent",Acirc:"Stor A med cirkumfleks",Atilde:"Stor A med tilde",
+Auml:"Stor A med tøddel",Aring:"Stor Ã
",AElig:"Stor Ã",Ccedil:"Stor C med cedille",Egrave:"Stor E med grav aksent",Eacute:"Stor E med akutt aksent",Ecirc:"Stor E med cirkumfleks",Euml:"Stor E med tøddel",Igrave:"Stor I med grav aksent",Iacute:"Stor I med akutt aksent",Icirc:"Stor I med cirkumfleks",Iuml:"Stor I med tøddel",ETH:"Stor Edd/stungen D",Ntilde:"Stor N med tilde",Ograve:"Stor O med grav aksent",Oacute:"Stor O med akutt aksent",Ocirc:"Stor O med cirkumfleks",Otilde:"Stor O med tilde",Ouml:"Stor O med tøddel",
+times:"Multiplikasjonstegn",Oslash:"Stor Ã",Ugrave:"Stor U med grav aksent",Uacute:"Stor U med akutt aksent",Ucirc:"Stor U med cirkumfleks",Uuml:"Stor U med tøddel",Yacute:"Stor Y med akutt aksent",THORN:"Stor Thorn",szlig:"Liten dobbelt-s/Eszett",agrave:"Liten a med grav aksent",aacute:"Liten a med akutt aksent",acirc:"Liten a med cirkumfleks",atilde:"Liten a med tilde",auml:"Liten a med tøddel",aring:"Liten Ã¥",aelig:"Liten æ",ccedil:"Liten c med cedille",egrave:"Liten e med grav aksent",eacute:"Liten e med akutt aksent",
+ecirc:"Liten e med cirkumfleks",euml:"Liten e med tøddel",igrave:"Liten i med grav aksent",iacute:"Liten i med akutt aksent",icirc:"Liten i med cirkumfleks",iuml:"Liten i med tøddel",eth:"Liten edd/stungen d",ntilde:"Liten n med tilde",ograve:"Liten o med grav aksent",oacute:"Liten o med akutt aksent",ocirc:"Liten o med cirkumfleks",otilde:"Liten o med tilde",ouml:"Liten o med tøddel",divide:"Divisjonstegn",oslash:"Liten ø",ugrave:"Liten u med grav aksent",uacute:"Liten u med akutt aksent",ucirc:"Liten u med cirkumfleks",
+uuml:"Liten u med tøddel",yacute:"Liten y med akutt aksent",thorn:"Liten thorn",yuml:"Liten y med tøddel",OElig:"Stor ligatur av O og E",oelig:"Liten ligatur av o og e",372:"Stor W med cirkumfleks",374:"Stor Y med cirkumfleks",373:"Liten w med cirkumfleks",375:"Liten y med cirkumfleks",sbquo:"Enkelt lavt 9-anførselstegn",8219:"Enkelt høyt reversert 9-anførselstegn",bdquo:"Dobbelt lavt 9-anførselstegn",hellip:"Ellipse",trade:"Varemerkesymbol",9658:"Svart høyrevendt peker",bull:"Tykk interpunkt",rarr:"Høyrevendt pil",
+rArr:"Dobbel høyrevendt pil",hArr:"Dobbel venstrevendt pil",diams:"Svart ruter",asymp:"Omtrent likhetstegn"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/pt-br.js b/share/static/RichText/plugins/specialchar/dialogs/lang/pt-br.js
new file mode 100644
index 0000000..98b8409
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/pt-br.js
@@ -0,0 +1,11 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","pt-br",{euro:"Euro",lsquo:"Aspas simples esquerda",rsquo:"Aspas simples direita",ldquo:"Aspas duplas esquerda",rdquo:"Aspas duplas direita",ndash:"Traço",mdash:"Travessão",iexcl:"Ponto de exclamação invertido",cent:"Cent",pound:"Cerquilha",curren:"Dinheiro",yen:"Yen",brvbar:"Bara interrompida",sect:"SÃmbolo de Parágrafo",uml:"Trema",copy:"Direito de Cópia",ordf:"Indicador ordinal feminino",laquo:"Aspas duplas angulares esquerda",not:"Negação",reg:"Marca Registrada",
+macr:"Mácron",deg:"Grau",sup2:"2 Superscrito",sup3:"3 Superscrito",acute:"Acento agudo",micro:"Micro",para:"Pé de mosca",middot:"Ponto mediano",cedil:"Cedilha",sup1:"1 Superscrito",ordm:"Indicador ordinal masculino",raquo:"Aspas duplas angulares direita",frac14:"Um quarto",frac12:"Um meio",frac34:"Três quartos",iquest:"Interrogação invertida",Agrave:"A maiúsculo com acento grave",Aacute:"A maiúsculo com acento agudo",Acirc:"A maiúsculo com acento circunflexo",Atilde:"A maiúsculo com til",Auml:"A maiúsculo com trema",
+Aring:"A maiúsculo com anel acima",AElig:"à maiúsculo",Ccedil:"à maiúlculo",Egrave:"E maiúsculo com acento grave",Eacute:"E maiúsculo com acento agudo",Ecirc:"E maiúsculo com acento circumflexo",Euml:"E maiúsculo com trema",Igrave:"I maiúsculo com acento grave",Iacute:"I maiúsculo com acento agudo",Icirc:"I maiúsculo com acento circunflexo",Iuml:"I maiúsculo com crase",ETH:"Eth maiúsculo",Ntilde:"N maiúsculo com til",Ograve:"O maiúsculo com acento grave",Oacute:"O maiúsculo com acento agudo",Ocirc:"O maiúsculo com acento circunflexo",
+Otilde:"O maiúsculo com til",Ouml:"O maiúsculo com trema",times:"Multiplicação",Oslash:"Diâmetro",Ugrave:"U maiúsculo com acento grave",Uacute:"U maiúsculo com acento agudo",Ucirc:"U maiúsculo com acento circunflexo",Uuml:"U maiúsculo com trema",Yacute:"Y maiúsculo com acento agudo",THORN:"Thorn maiúsculo",szlig:"Eszett minúsculo",agrave:"a minúsculo com acento grave",aacute:"a minúsculo com acento agudo",acirc:"a minúsculo com acento circunflexo",atilde:"a minúsculo com til",auml:"a minúsculo com trema",
+aring:"a minúsculo com anel acima",aelig:"æ minúsculo",ccedil:"ç minúsculo",egrave:"e minúsculo com acento grave",eacute:"e minúsculo com acento agudo",ecirc:"e minúsculo com acento circunflexo",euml:"e minúsculo com trema",igrave:"i minúsculo com acento grave",iacute:"i minúsculo com acento agudo",icirc:"i minúsculo com acento circunflexo",iuml:"i minúsculo com trema",eth:"eth minúsculo",ntilde:"n minúsculo com til",ograve:"o minúsculo com acento grave",oacute:"o minúsculo com acento agudo",ocirc:"o minúsculo com acento circunflexo",
+otilde:"o minúsculo com til",ouml:"o minúsculo com trema",divide:"Divisão",oslash:"o minúsculo com cortado ou diâmetro",ugrave:"u minúsculo com acento grave",uacute:"u minúsculo com acento agudo",ucirc:"u minúsculo com acento circunflexo",uuml:"u minúsculo com trema",yacute:"y minúsculo com acento agudo",thorn:"thorn minúsculo",yuml:"y minúsculo com trema",OElig:"Ligação tipográfica OE maiúscula",oelig:"Ligação tipográfica oe minúscula",372:"W maiúsculo com acento circunflexo",374:"Y maiúsculo com acento circunflexo",
+373:"w minúsculo com acento circunflexo",375:"y minúsculo com acento circunflexo",sbquo:"Aspas simples inferior direita",8219:"Aspas simples superior esquerda",bdquo:"Aspas duplas inferior direita",hellip:"Reticências",trade:"Trade mark",9658:"Ponta de seta preta para direita",bull:"Ponto lista",rarr:"Seta para direita",rArr:"Seta dupla para direita",hArr:"Seta dupla direita e esquerda",diams:"Ouros",asymp:"Aproximadamente"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/sk.js b/share/static/RichText/plugins/specialchar/dialogs/lang/sk.js
new file mode 100644
index 0000000..8e3898a
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/sk.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","sk",{euro:"Znak eura",lsquo:"Ľavá jednoduchá úvodzovka",rsquo:"Pravá jednoduchá úvodzovka",ldquo:"Pravá dvojitá úvodzovka",rdquo:"Pravá dvojitá úvodzovka",ndash:"En pomlÄka",mdash:"Em pomlÄka",iexcl:"Obrátený výkriÄnÃk",cent:"Znak centu",pound:"Znak libry",curren:"Znak meny",yen:"Znak jenu",brvbar:"PreruÅ¡ená zvislá Äiara",sect:"Znak odseku",uml:"Prehláska",copy:"Znak copyrightu",ordf:"Ženský indikátor rodu",laquo:"Znak dvojitých lomených úvodzoviek vľavo",not:"Logistický zápor",
+reg:"Znak registrácie",macr:"PomlÄka nad",deg:"Znak stupÅa",sup2:"Dvojka ako horný index",sup3:"Trojka ako horný index",acute:"DĺžeÅ",micro:"Znak mikro",para:"Znak odstavca",middot:"Bodka uprostred",cedil:"Chvost vľavo",sup1:"Jednotka ako horný index",ordm:"Mužský indikátor rodu",raquo:"Znak dvojitých lomených úvodzoviek vpravo",frac14:"ObyÄajný zlomok jedna Å¡tvrtina",frac12:"ObyÄajný zlomok jedna polovica",frac34:"ObyÄajný zlomok tri Å¡tvrtiny",iquest:"OtoÄený otáznik",Agrave:"Veľké pÃsmeno latinky A s accentom",
+Aacute:"Veľké pÃsmeno latinky A s dĺžÅom",Acirc:"Veľké pÃsmeno latinky A s mäkÄeÅom",Atilde:"Veľké pÃsmeno latinky A s tildou",Auml:"Veľké pÃsmeno latinky A s dvoma bodkami",Aring:"Veľké pÃsmeno latinky A s krúžkom nad",AElig:"Veľké pÃsmeno latinky Ã",Ccedil:"Veľké pÃsmeno latinky C s chvostom vľavo",Egrave:"Veľké pÃsmeno latinky E s accentom",Eacute:"Veľké pÃsmeno latinky E s dĺžÅom",Ecirc:"Veľké pÃsmeno latinky E s mäkÄeÅom",Euml:"Veľké pÃsmeno latinky E s dvoma bodkami",Igrave:"Veľké pÃsmeno latinky I s accentom",
+Iacute:"Veľké pÃsmeno latinky I s dĺžÅom",Icirc:"Veľké pÃsmeno latinky I s mäkÄeÅom",Iuml:"Veľké pÃsmeno latinky I s dvoma bodkami",ETH:"Veľké pÃsmeno latinky Eth",Ntilde:"Veľké pÃsmeno latinky N s tildou",Ograve:"Veľké pÃsmeno latinky O s accentom",Oacute:"Veľké pÃsmeno latinky O s dĺžÅom",Ocirc:"Veľké pÃsmeno latinky O s mäkÄeÅom",Otilde:"Veľké pÃsmeno latinky O s tildou",Ouml:"Veľké pÃsmeno latinky O s dvoma bodkami",times:"Znak násobenia",Oslash:"Veľké pÃsmeno latinky O preÅ¡krtnuté",Ugrave:"Veľké pÃsmeno latinky U s accentom",
+Uacute:"Veľké pÃsmeno latinky U s dĺžÅom",Ucirc:"Veľké pÃsmeno latinky U s mäkÄeÅom",Uuml:"Veľké pÃsmeno latinky U s dvoma bodkami",Yacute:"Veľké pÃsmeno latinky Y s dĺžÅom",THORN:"Veľké pÃsmeno latinky Thorn",szlig:"Malé pÃsmeno latinky ostré s",agrave:"Malé pÃsmeno latinky a s accentom",aacute:"Malé pÃsmeno latinky a s dĺžÅom",acirc:"Malé pÃsmeno latinky a s mäkÄeÅom",atilde:"Malé pÃsmeno latinky a s tildou",auml:"Malé pÃsmeno latinky a s dvoma bodkami",aring:"Malé pÃsmeno latinky a s krúžkom nad",
+aelig:"Malé pÃsmeno latinky æ",ccedil:"Malé pÃsmeno latinky c s chvostom vľavo",egrave:"Malé pÃsmeno latinky e s accentom",eacute:"Malé pÃsmeno latinky e s dĺžÅom",ecirc:"Malé pÃsmeno latinky e s mäkÄeÅom",euml:"Malé pÃsmeno latinky e s dvoma bodkami",igrave:"Malé pÃsmeno latinky i s accentom",iacute:"Malé pÃsmeno latinky i s dĺžÅom",icirc:"Malé pÃsmeno latinky i s mäkÄeÅom",iuml:"Malé pÃsmeno latinky i s dvoma bodkami",eth:"Malé pÃsmeno latinky eth",ntilde:"Malé pÃsmeno latinky n s tildou",ograve:"Malé pÃsmeno latinky o s accentom",
+oacute:"Malé pÃsmeno latinky o s dĺžÅom",ocirc:"Malé pÃsmeno latinky o s mäkÄeÅom",otilde:"Malé pÃsmeno latinky o s tildou",ouml:"Malé pÃsmeno latinky o s dvoma bodkami",divide:"Znak delenia",oslash:"Malé pÃsmeno latinky o preÅ¡krtnuté",ugrave:"Malé pÃsmeno latinky u s accentom",uacute:"Malé pÃsmeno latinky u s dĺžÅom",ucirc:"Malé pÃsmeno latinky u s mäkÄeÅom",uuml:"Malé pÃsmeno latinky u s dvoma bodkami",yacute:"Malé pÃsmeno latinky y s dĺžÅom",thorn:"Malé pÃsmeno latinky thorn",yuml:"Malé pÃsmeno latinky y s dvoma bodkami",
+OElig:"Veľká ligatúra latinky OE",oelig:"Malá ligatúra latinky OE",372:"Veľké pÃsmeno latinky W s mäkÄeÅom",374:"Veľké pÃsmeno latinky Y s mäkÄeÅom",373:"Malé pÃsmeno latinky w s mäkÄeÅom",375:"Malé pÃsmeno latinky y s mäkÄeÅom",sbquo:"Dolná jednoduchá 9-úvodzovka",8219:"Horná jednoduchá otoÄená 9-úvodzovka",bdquo:"Dolná dvojitá 9-úvodzovka",hellip:"Trojbodkový úvod",trade:"Znak ibchodnej znaÄky",9658:"Äierny ukazovateľ smerujúci vpravo",bull:"Kruh",rarr:"Å Ãpka vpravo",rArr:"Dvojitá Å¡ipka vpravo",
+hArr:"Dvojitá Å¡ipka vľavo a vpravo",diams:"Äierne piky",asymp:"Skoro sa rovná"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/sv.js b/share/static/RichText/plugins/specialchar/dialogs/lang/sv.js
new file mode 100644
index 0000000..773c31b
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/sv.js
@@ -0,0 +1,11 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","sv",{euro:"Eurotecken",lsquo:"Enkelt vänster citattecken",rsquo:"Enkelt höger citattecken",ldquo:"Dubbelt vänster citattecken",rdquo:"Dubbelt höger citattecken",ndash:"Snedstreck",mdash:"Långt tankstreck",iexcl:"Inverterad utropstecken",cent:"Centtecken",pound:"Pundtecken",curren:"Valutatecken",yen:"Yentecken",brvbar:"Brutet lodrätt streck",sect:"Paragraftecken",uml:"Diaeresis",copy:"Upphovsrättstecken",ordf:"Feminit ordningstalsindikator",laquo:"Vänsterställt dubbelt vinkelcitationstecken",
+not:"Icke-tecken",reg:"Registrerad",macr:"Macron",deg:"Grader",sup2:"Upphöjt två",sup3:"Upphöjt tre",acute:"Akut accent",micro:"Mikrotecken",para:"Alinea",middot:"Centrerad prick",cedil:"Cedilj",sup1:"Upphöjt en",ordm:"Maskulina ordningsändelsen",raquo:"Högerställt dubbelt vinkelcitationstecken",frac14:"Bråktal - en kvart",frac12:"Bråktal - en halv",frac34:"Bråktal - tre fjärdedelar",iquest:"Inverterat frågetecken",Agrave:"Stort A med grav accent",Aacute:"Stort A med akutaccent",Acirc:"Stort A med circumflex",
+Atilde:"Stort A med tilde",Auml:"Stort A med diaresis",Aring:"Stort A med ring ovan",AElig:"Stort Ã",Ccedil:"Stort C med cedilj",Egrave:"Stort E med grav accent",Eacute:"Stort E med aktuaccent",Ecirc:"Stort E med circumflex",Euml:"Stort E med diaeresis",Igrave:"Stort I med grav accent",Iacute:"Stort I med akutaccent",Icirc:"Stort I med circumflex",Iuml:"Stort I med diaeresis",ETH:"Stort Eth",Ntilde:"Stort N med tilde",Ograve:"Stort O med grav accent",Oacute:"Stort O med aktuaccent",Ocirc:"Stort O med circumflex",
+Otilde:"Stort O med tilde",Ouml:"Stort O med diaeresis",times:"Multiplicera",Oslash:"Stor Ã",Ugrave:"Stort U med grav accent",Uacute:"Stort U med akutaccent",Ucirc:"Stort U med circumflex",Uuml:"Stort U med diaeresis",Yacute:"Stort Y med akutaccent",THORN:"Stort Thorn",szlig:"Litet dubbel-s/Eszett",agrave:"Litet a med grav accent",aacute:"Litet a med akutaccent",acirc:"Litet a med circumflex",atilde:"Litet a med tilde",auml:"Litet a med diaeresis",aring:"Litet a med ring ovan",aelig:"Bokstaven æ",
+ccedil:"Litet c med cedilj",egrave:"Litet e med grav accent",eacute:"Litet e med akutaccent",ecirc:"Litet e med circumflex",euml:"Litet e med diaeresis",igrave:"Litet i med grav accent",iacute:"Litet i med akutaccent",icirc:"LItet i med circumflex",iuml:"Litet i med didaeresis",eth:"Litet eth",ntilde:"Litet n med tilde",ograve:"LItet o med grav accent",oacute:"LItet o med akutaccent",ocirc:"Litet o med circumflex",otilde:"LItet o med tilde",ouml:"Litet o med diaeresis",divide:"Division",oslash:"ø",
+ugrave:"Litet u med grav accent",uacute:"Litet u med akutaccent",ucirc:"LItet u med circumflex",uuml:"Litet u med diaeresis",yacute:"Litet y med akutaccent",thorn:"Litet thorn",yuml:"Litet y med diaeresis",OElig:"Stor ligatur av OE",oelig:"Liten ligatur av oe",372:"Stort W med circumflex",374:"Stort Y med circumflex",373:"Litet w med circumflex",375:"Litet y med circumflex",sbquo:"Enkelt lågt 9-citationstecken",8219:"Enkelt högt bakvänt 9-citationstecken",bdquo:"Dubbelt lågt 9-citationstecken",hellip:"Horisontellt uteslutningstecken",
+trade:"Varumärke",9658:"Svart högervänd pekare",bull:"Listpunkt",rarr:"Högerpil",rArr:"Dubbel högerpil",hArr:"Dubbel vänsterpil",diams:"Svart ruter",asymp:"Ungefär lika med"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/tr.js b/share/static/RichText/plugins/specialchar/dialogs/lang/tr.js
new file mode 100644
index 0000000..5c79517
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/tr.js
@@ -0,0 +1,12 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","tr",{euro:"Euro iÅareti",lsquo:"Sol tek tırnak iÅareti",rsquo:"SaÄ tek tırnak iÅareti",ldquo:"Sol çift tırnak iÅareti",rdquo:"SaÄ Ã§ift tırnak iÅareti",ndash:"En tire",mdash:"Em tire",iexcl:"Ters ünlem iÅareti",cent:"Cent iÅareti",pound:"Pound iÅareti",curren:"Para birimi iÅareti",yen:"Yen iÅareti",brvbar:"Kırık bar",sect:"Bölüm iÅareti",uml:"İki sesli harfin ayrılması",copy:"Telif hakkı iÅareti",ordf:"DiÅil sıralı gösterge",laquo:"Sol-iÅaret çift açı tırnak iÅareti",
+not:"Not iÅareti",reg:"Kayıtlı iÅareti",macr:"Makron",deg:"Derece iÅareti",sup2:"İkili üstsimge",sup3:"Ãçlü üstsimge",acute:"Aksan iÅareti",micro:"Mikro iÅareti",para:"Pilcrow iÅareti",middot:"Orta nokta",cedil:"Kedilla",sup1:"Ãstsimge",ordm:"Eril sıralı gösterge",raquo:"SaÄ iÅaret çift açı tırnak iÅareti",frac14:"BayaÄı kesrin dörtte biri",frac12:"BayaÄı kesrin bir yarım",frac34:"BayaÄı kesrin dörtte üç",iquest:"Ters soru iÅareti",Agrave:"Aksanlı latin harfi",Aacute:"AÅırı aksanıyla Latin harfi",
+Acirc:"Ãarpık Latin harfi",Atilde:"Tilde latin harfi",Auml:"Sesli harf ayrılımlıı latin harfi",Aring:"Halkalı latin büyük A harfi",AElig:"Latin büyük à harfi",Ccedil:"Latin büyük C harfi ile kedilla",Egrave:"Aksanlı latin büyük E harfi",Eacute:"AÅırı vurgulu latin büyük E harfi",Ecirc:"Ãarpık latin büyük E harfi",Euml:"Sesli harf ayrılımlıı latin büyük E harfi",Igrave:"Aksanlı latin büyük I harfi",Iacute:"AÅırı aksanlı latin büyük I harfi",Icirc:"Ãarpık latin büyük I harfi",Iuml:"Sesli harf ayrılımlıı latin büyük I harfi",
+ETH:"Latin büyük Eth harfi",Ntilde:"Tildeli latin büyük N harfi",Ograve:"Aksanlı latin büyük O harfi",Oacute:"AÅırı aksanlı latin büyük O harfi",Ocirc:"Ãarpık latin büyük O harfi",Otilde:"Tildeli latin büyük O harfi",Ouml:"Sesli harf ayrılımlı latin büyük O harfi",times:"Ãarpma iÅareti",Oslash:"Vurgulu latin büyük O harfi",Ugrave:"Aksanlı latin büyük U harfi",Uacute:"AÅırı aksanlı latin büyük U harfi",Ucirc:"Ãarpık latin büyük U harfi",Uuml:"Sesli harf ayrılımlı latin büyük U harfi",Yacute:"AÅırı aksanlı latin büyük Y harfi",
+THORN:"Latin büyük Thorn harfi",szlig:"Latin küçük keskin s harfi",agrave:"Aksanlı latin küçük a harfi",aacute:"AÅırı aksanlı latin küçük a harfi",acirc:"Ãarpık latin küçük a harfi",atilde:"Tildeli latin küçük a harfi",auml:"Sesli harf ayrılımlı latin küçük a harfi",aring:"Halkalı latin küçük a harfi",aelig:"Latin büyük æ harfi",ccedil:"Kedillalı latin küçük c harfi",egrave:"Aksanlı latin küçük e harfi",eacute:"AÅırı aksanlı latin küçük e harfi",ecirc:"Ãarpık latin küçük e harfi",euml:"Sesli harf ayrılımlı latin küçük e harfi",
+igrave:"Aksanlı latin küçük i harfi",iacute:"AÅırı aksanlı latin küçük i harfi",icirc:"Ãarpık latin küçük i harfi",iuml:"Sesli harf ayrılımlı latin küçük i harfi",eth:"Latin küçük eth harfi",ntilde:"Tildeli latin küçük n harfi",ograve:"Aksanlı latin küçük o harfi",oacute:"AÅırı aksanlı latin küçük o harfi",ocirc:"Ãarpık latin küçük o harfi",otilde:"Tildeli latin küçük o harfi",ouml:"Sesli harf ayrılımlı latin küçük o harfi",divide:"Bölme iÅareti",oslash:"Vurgulu latin küçük o harfi",ugrave:"Aksanlı latin küçük u harfi",
+uacute:"AÅırı aksanlı latin küçük u harfi",ucirc:"Ãarpık latin küçük u harfi",uuml:"Sesli harf ayrılımlı latin küçük u harfi",yacute:"AÅırı aksanlı latin küçük y harfi",thorn:"Latin küçük thorn harfi",yuml:"Sesli harf ayrılımlı latin küçük y harfi",OElig:"Latin büyük baÄlı OE harfi",oelig:"Latin küçük baÄlı oe harfi",372:"Ãarpık latin büyük W harfi",374:"Ãarpık latin büyük Y harfi",373:"Ãarpık latin küçük w harfi",375:"Ãarpık latin küçük y harfi",sbquo:"Tek düÅük-9 tırnak iÅareti",8219:"Tek yüksek-ters-9 tırnak iÅareti",
+bdquo:"Ãift düÅük-9 tırnak iÅareti",hellip:"Yatay elips",trade:"Marka tescili iÅareti",9658:"Siyah saÄ iÅaret iÅaretçisi",bull:"Koyu nokta",rarr:"SaÄa doÄru ok",rArr:"SaÄa doÄru çift ok",hArr:"Sol, saÄ Ã§ift ok",diams:"Siyah elmas takımı",asymp:"Hemen hemen eÅit"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/ug.js b/share/static/RichText/plugins/specialchar/dialogs/lang/ug.js
new file mode 100644
index 0000000..5330acc
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/ug.js
@@ -0,0 +1,13 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","ug",{euro:"ÙØ§Ûر٠بÛÙÚ¯ÙØ³Ù",lsquo:"ÙØ§ÙØ§Ú Ù¾ÛØ´ سÙÙ",rsquo:"ÙØ§ÙØ§Ú Ù¾ÛØ´ ئÙÚ",ldquo:"ÙÙØ´ Ù¾ÛØ´ سÙÙ",rdquo:"ÙÙØ´ Ù¾ÛØ´ ئÙÚ",ndash:"Ø³ÙØ²ÙÙÚÛ",mdash:"Ø³ÙØ²ÙÙ",iexcl:"ئÛÙØ¯ÛØ´",cent:"تÙÙÙ٠بÛÙÚ¯ÙØ³Ù",pound:"ÙÙÙØ¯ Ø³ØªÛØ±ÙÙÚ",curren:"Ù¾Û٠بÛÙÚ¯ÙØ³Ù",yen:"ÙØ§Ù¾ÙÙÙÙÛ ÙÙÙÙ",brvbar:"Ø¦ÛØ²ÛÙ Ø¨Ø§ÙØ¯Ø§Ù",sect:"پاراگرا٠بÛÙÚ¯ÙØ³Ù",uml:"تاÛÛØ´ Ø¦Ø§ÙØ±ÙØ´ بÛÙÚ¯ÙØ³Ù",copy:"ÙÛØ´Ø± Ú¾ÙÙÛÙ٠بÛÙÚ¯ÙØ³Ù",ordf:"Feminine ordinal indicator",laquo:"ÙÙØ´ ØªÙØ±Ùا٠سÙÙ",not:"غÛÙØ±Ù بÛÙÚ¯Û",reg:"Ø®ÛØªÙÛØªÙÛÙ ØªØ§ÛØ§Ø± Ù
ارÙÙØ³Ù",macr:"Ø³ÙØ²ÛØ´ بÛÙÚ¯ÙØ³Ù",
+deg:"Ú¯ÙØ±Ø§Ø¯Ûس بÛÙÚ¯ÙØ³Ù",sup2:"ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙÙØ³ 2",sup3:"ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙÙØ³ 3",acute:"Ø¦ÛØ±ØºÛ بÛÙÚ¯ÙØ³Ù",micro:"Micro sign",para:"ئابزاس بÛÙÚ¯ÙØ³Ù",middot:"Ø¦ÙØªØªÛرا ÚÛÙÙØª",cedil:"Ø¦Ø§Ø³ØªÙØºØ§ ÙÙØ´ÛÙÙØ¯Ùغا٠بÛÙÚ¯Û",sup1:"ÙÛÙÙØ±Ù ئÙÙØ¯ÛÙÙØ³ 1",ordm:"Masculine ordinal indicator",raquo:"ÙÙØ´ ØªÙØ±Ùا٠ئÙÚ",frac14:"ئاددÙÙ ÙÛØ³Ùر ØªÛØªØªÙÙ Ø¨ÙØ±",frac12:"ئاددÙÙ ÙÛØ³Ùر ئÙÙÙÙØ¯ÙÙ Ø¨ÙØ±",frac34:"ئاددÙÙ ÙÛØ³Ùر ئÛÚØªÙÙ ØªÛØ±Øª",iquest:"Inverted question mark",Agrave:"Latin capital letter A with grave accent",Aacute:"Latin capital letter A with acute accent",
+Acirc:"Latin capital letter A with circumflex",Atilde:"Latin capital letter A with tilde",Auml:"Latin capital letter A with diaeresis",Aring:"Latin capital letter A with ring above",AElig:"Latin Capital letter Ã",Ccedil:"Latin capital letter C with cedilla",Egrave:"Latin capital letter E with grave accent",Eacute:"Latin capital letter E with acute accent",Ecirc:"Latin capital letter E with circumflex",Euml:"Latin capital letter E with diaeresis",Igrave:"Latin capital letter I with grave accent",Iacute:"Latin capital letter I with acute accent",
+Icirc:"Latin capital letter I with circumflex",Iuml:"Latin capital letter I with diaeresis",ETH:"Latin capital letter Eth",Ntilde:"Latin capital letter N with tilde",Ograve:"ÙÙØ´ Ù¾ÛØ´ ئÙÚ",Oacute:"Latin capital letter O with acute accent",Ocirc:"Latin capital letter O with circumflex",Otilde:"Latin capital letter O with tilde",Ouml:"Latin capital letter O with diaeresis",times:"Multiplication sign",Oslash:"Latin capital letter O with stroke",Ugrave:"Latin capital letter U with grave accent",Uacute:"Latin capital letter U with acute accent",
+Ucirc:"Latin capital letter U with circumflex",Uuml:"Latin capital letter U with diaeresis",Yacute:"Latin capital letter Y with acute accent",THORN:"Latin capital letter Thorn",szlig:"Latin small letter sharp s",agrave:"Latin small letter a with grave accent",aacute:"Latin small letter a with acute accent",acirc:"Latin small letter a with circumflex",atilde:"Latin small letter a with tilde",auml:"Latin small letter a with diaeresis",aring:"Latin small letter a with ring above",aelig:"Latin small letter æ",
+ccedil:"Latin small letter c with cedilla",egrave:"Latin small letter e with grave accent",eacute:"Latin small letter e with acute accent",ecirc:"Latin small letter e with circumflex",euml:"Latin small letter e with diaeresis",igrave:"Latin small letter i with grave accent",iacute:"Latin small letter i with acute accent",icirc:"Latin small letter i with circumflex",iuml:"Latin small letter i with diaeresis",eth:"Latin small letter eth",ntilde:"تÙÙ Ù
ÙÙÙØ§Ù Ø³ÙØ¦Ø§Ù بÛÙÚ¯ÙØ³Ù",ograve:"Latin small letter o with grave accent",
+oacute:"Latin small letter o with acute accent",ocirc:"Latin small letter o with circumflex",otilde:"Latin small letter o with tilde",ouml:"Latin small letter o with diaeresis",divide:"Division sign",oslash:"Latin small letter o with stroke",ugrave:"Latin small letter u with grave accent",uacute:"Latin small letter u with acute accent",ucirc:"Latin small letter u with circumflex",uuml:"Latin small letter u with diaeresis",yacute:"Latin small letter y with acute accent",thorn:"Latin small letter thorn",
+yuml:"Latin small letter y with diaeresis",OElig:"Latin capital ligature OE",oelig:"Latin small ligature oe",372:"Latin capital letter W with circumflex",374:"Latin capital letter Y with circumflex",373:"Latin small letter w with circumflex",375:"Latin small letter y with circumflex",sbquo:"Single low-9 quotation mark",8219:"Single high-reversed-9 quotation mark",bdquo:"Double low-9 quotation mark",hellip:"Horizontal ellipsis",trade:"Trade mark sign",9658:"Black right-pointing pointer",bull:"Bullet",
+rarr:"ئÙÚ ÙØ§ ئÙÙ",rArr:"ئÙÚ ÙÙØ´ Ø³ÙØ²ÙÙ ÙØ§ ئÙÙ",hArr:"ئÙÚ Ø³ÙÙ ÙÙØ´ Ø³ÙØ²ÙÙ ÙØ§ ئÙÙ",diams:"ئÛÙÛ٠غÙÚ",asymp:"ØªÛØ®Ù
ÙÙÛ٠تÛÚ"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/lang/zh-cn.js b/share/static/RichText/plugins/specialchar/dialogs/lang/zh-cn.js
new file mode 100644
index 0000000..6452804
--- /dev/null
+++ b/share/static/RichText/plugins/specialchar/dialogs/lang/zh-cn.js
@@ -0,0 +1,9 @@
+/*
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧å
符å·",lsquo:"å·¦åå¼å·",rsquo:"å³åå¼å·",ldquo:"å·¦åå¼å·",rdquo:"å³åå¼å·",ndash:"çå线",mdash:"ç ´æå·",iexcl:"ç«ç¿»å¹å·",cent:"å叿 è®°",pound:"è±éæ è®°",curren:"è´§å¸æ è®°",yen:"æ¥å
æ è®°",brvbar:"é´ææ¡",sect:"èæ è®°",uml:"åé³ç¬¦",copy:"çææææ è®°",ordf:"é´æ§é¡ºåºæç¤ºç¬¦",laquo:"å·¦æåå°å¼å·",not:"éæ è®°",reg:"æ³¨åæ è®°",macr:"é¿é³ç¬¦",deg:"度æ è®°",sup2:"䏿 äº",sup3:"䏿 ä¸",acute:"éé³ç¬¦",micro:"微符",para:"æ®µè½æ è®°",middot:"ä¸é´ç¹",cedil:"ä¸å 符",sup1:"䏿 ä¸",ordm:"鳿§é¡ºåºæç¤ºç¬¦",raquo:"峿åå°å¼å·",frac14:"æ®éåæ°ååä¹ä¸",frac12:"æ®éåæ°äºåä¹ä¸",frac34:"æ®éåæ°ååä¹ä¸",iquest:"ç«ç¿»é®å·",
+Agrave:"带æé³ç¬¦çæä¸æå¤§å忝 A",Aacute:"带éé³ç¬¦çæä¸æå¤§å忝 A",Acirc:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝 A",Atilde:"带é¢å符çæä¸æå¤§å忝 A",Auml:"带åé³ç¬¦çæä¸æå¤§å忝 A",Aring:"带ä¸ååçæä¸æå¤§å忝 A",AElig:"æä¸æå¤§å忝 Ae",Ccedil:"带ä¸å 符çæä¸æå¤§å忝 C",Egrave:"带æé³ç¬¦çæä¸æå¤§å忝 E",Eacute:"带éé³ç¬¦çæä¸æå¤§å忝 E",Ecirc:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝 E",Euml:"带åé³ç¬¦çæä¸æå¤§å忝 E",Igrave:"带æé³ç¬¦çæä¸æå¤§å忝 I",Iacute:"带éé³ç¬¦çæä¸æå¤§å忝 I",Icirc:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝 I",Iuml:"带åé³ç¬¦çæä¸æå¤§å忝 I",ETH:"æä¸æå¤§å忝 Eth",Ntilde:"带é¢å符çæä¸æå¤§å忝 N",Ograve:"带æé³ç¬¦çæä¸æå¤§å忝 O",Oacute:"带éé³ç¬¦çæä¸æå¤§å忝 O",Ocirc:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝 O",Otilde:"带é¢å符ç
æä¸æå¤§å忝 O",
+Ouml:"带åé³ç¬¦çæä¸æå¤§å忝 O",times:"ä¹å·",Oslash:"带ç²çº¿çæä¸æå¤§å忝 O",Ugrave:"带æé³ç¬¦çæä¸æå¤§å忝 U",Uacute:"带éé³ç¬¦çæä¸æå¤§å忝 U",Ucirc:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝 U",Uuml:"带åé³ç¬¦çæä¸æå¤§å忝 U",Yacute:"带æé³ç¬¦çæä¸æå¤§å忝 Y",THORN:"æä¸æå¤§å忝 Thorn",szlig:"æä¸æå°å忝æ¸
é³ S",agrave:"带æé³ç¬¦çæä¸æå°å忝 A",aacute:"带éé³ç¬¦çæä¸æå°å忝 A",acirc:"å¸¦æ¬æç¬¦çæä¸æå°å忝 A",atilde:"带é¢å符çæä¸æå°å忝 A",auml:"带åé³ç¬¦çæä¸æå°å忝 A",aring:"带ä¸ååçæä¸æå°å忝 A",aelig:"æä¸æå°å忝 Ae",ccedil:"带ä¸å 符çæä¸æå°å忝 C",egrave:"带æé³ç¬¦çæä¸æå°å忝 E",eacute:"带éé³ç¬¦çæä¸æå°å忝 E",ecirc:"å¸¦æ¬æç¬¦çæä¸æå°å忝 E",euml:"带åé³ç¬¦çæä¸æå°å忝 E",igrave:"带æé³ç
¬¦çæä¸æå°å忝 I",
+iacute:"带éé³ç¬¦çæä¸æå°å忝 I",icirc:"å¸¦æ¬æç¬¦çæä¸æå°å忝 I",iuml:"带åé³ç¬¦çæä¸æå°å忝 I",eth:"æä¸æå°å忝 Eth",ntilde:"带é¢å符çæä¸æå°å忝 N",ograve:"带æé³ç¬¦çæä¸æå°å忝 O",oacute:"带éé³ç¬¦çæä¸æå°å忝 O",ocirc:"å¸¦æ¬æç¬¦çæä¸æå°å忝 O",otilde:"带é¢å符çæä¸æå°å忝 O",ouml:"带åé³ç¬¦çæä¸æå°å忝 O",divide:"é¤å·",oslash:"带ç²çº¿çæä¸æå°å忝 O",ugrave:"带æé³ç¬¦çæä¸æå°å忝 U",uacute:"带éé³ç¬¦çæä¸æå°å忝 U",ucirc:"å¸¦æ¬æç¬¦çæä¸æå°å忝 U",uuml:"带åé³ç¬¦çæä¸æå°å忝 U",yacute:"带æé³ç¬¦çæä¸æå°å忝 Y",thorn:"æä¸æå°å忝 Thorn",yuml:"带åé³ç¬¦çæä¸æå°å忝 Y",OElig:"æä¸æå¤§åè¿å Oe",oelig:"æä¸æå°åè¿å Oe",372:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝 W",374:"å¸¦æ¬æç¬¦çæä¸æå¤§å忝
Y",
+373:"å¸¦æ¬æç¬¦çæä¸æå°å忝 W",375:"å¸¦æ¬æç¬¦çæä¸æå°å忝 Y",sbquo:"åä¸ 9 å½¢å¼å·",8219:"å髿¨ªç¿» 9 å½¢å¼å·",bdquo:"åä¸ 9 å½¢å¼å·",hellip:"æ°´å¹³çç¥å·",trade:"åæ æ å¿",9658:"å®å¿å³ææé",bull:"å éå·",rarr:"åå³ç®å¤´",rArr:"åå³å线ç®å¤´",hArr:"å·¦å³å线ç®å¤´",diams:"å®å¿æ¹å纸ç",asymp:"约çäº"});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/specialchar/dialogs/specialchar.js b/share/static/RichText/plugins/specialchar/dialogs/specialchar.js
index df8f288..acaea0c 100644
--- a/share/static/RichText/plugins/specialchar/dialogs/specialchar.js
+++ b/share/static/RichText/plugins/specialchar/dialogs/specialchar.js
@@ -1,7 +1,14 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('specialchar',function(a){var b,c=a.lang.specialChar,d=function(k){var l=a.getSelection(),m=l.getRanges(true),n,o;a.fire('saveSnapshot');for(var p=m.length-1;p>=0;p--){n=m[p];n.deleteContents();o=CKEDITOR.dom.element.createFromHtml(k);n.insertNode(o);}if(n){n.moveToPosition(o,CKEDITOR.POSITION_AFTER_END);n.select();}a.fire('saveSnapshot');},e=function(k){var l,m;if(k.data)l=k.data.getTarget();else l=new CKEDITOR.dom.element(k);if(l.getName()=='a'&&(m=l.getChild(0).getHtml())){l.removeClass('cke_light_background');b.hide();if(CKEDITOR.env.gecko)d(m);else a.insertHtml(m);}},f=CKEDITOR.tools.addFunction(e),g,h=function(k,l){var m;l=l||k.data.getTarget();if(l.getName()=='span')l=l.getParent();if(l.getName()=='a'&&(m=l.getChild(0).getHtml())){if(g)i(null,g);var n=b.getContentElement('info','htmlPreview').getElement();b.getContentElement('info','charPreview').getElement().setHtml(m);n.setHtml(CKEDITOR.tools.htmlEncode(m));l.getParent().addClass('cke_light_backg
round');g=l;}},i=function(k,l){l=l||k.data.getTarget();if(l.getName()=='span')l=l.getParent();if(l.getName()=='a'){b.getContentElement('info','charPreview').getElement().setHtml(' ');b.getContentElement('info','htmlPreview').getElement().setHtml(' ');l.getParent().removeClass('cke_light_background');g=undefined;}},j=CKEDITOR.tools.addFunction(function(k){k=new CKEDITOR.dom.event(k);var l=k.getTarget(),m,n,o=k.getKeystroke(),p=a.lang.dir=='rtl';switch(o){case 38:if(m=l.getParent().getParent().getPrevious()){n=m.getChild([l.getParent().getIndex(),0]);n.focus();i(null,l);h(null,n);}k.preventDefault();break;case 40:if(m=l.getParent().getParent().getNext()){n=m.getChild([l.getParent().getIndex(),0]);if(n&&n.type==1){n.focus();i(null,l);h(null,n);}}k.preventDefault();break;case 32:e({data:k});k.preventDefault();break;case p?37:39:case 9:if(m=l.getParent().getNext()){n=m.getChild(0);if(n.type==1){n.focus();i(null,l);h(null,n);k.preventDefault(true);}else i(null,l);}else i
f(m=l.getParent().getParent().getNext()){n=m.getChild([0,0]);if(n&&n.type==1){n.focus();i(null,l);h(null,n);k.preventDefault(true);}else i(null,l);}break;case p?39:37:case CKEDITOR.SHIFT+9:if(m=l.getParent().getPrevious()){n=m.getChild(0);n.focus();i(null,l);h(null,n);k.preventDefault(true);}else if(m=l.getParent().getParent().getPrevious()){n=m.getLast().getChild(0);n.focus();i(null,l);h(null,n);k.preventDefault(true);}else i(null,l);break;default:return;}});return{title:c.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,chars:['!','"','#','$','%','&',"'",'(',')','*','+','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','[',']','^','_','`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','{','|','}','~','€(EURO SIGN)','‘(LEFT
SINGLE QUOTATION MARK)','’(RIGHT SINGLE QUOTATION MARK)','“(LEFT DOUBLE QUOTATION MARK)','”(RIGHT DOUBLE QUOTATION MARK)','–(EN DASH)','—(EM DASH)','¡(INVERTED EXCLAMATION MARK)','¢(CENT SIGN)','£(POUND SIGN)','¤(CURRENCY SIGN)','¥(YEN SIGN)','¦(BROKEN BAR)','§(SECTION SIGN)','¨(DIAERESIS)','©(COPYRIGHT SIGN)','ª(FEMININE ORDINAL INDICATOR)','«(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','¬(NOT SIGN)','®(REGISTERED SIGN)','¯(MACRON)','°(DEGREE SIGN)','±(PLUS-MINUS SIGN)','²(SUPERSCRIPT TWO)','³(SUPERSCRIPT THREE)','´(ACUTE ACCENT)','µ(MICRO SIGN)','¶(PILCROW SIGN)','·(MIDDLE DOT)','¸(CEDILLA)','¹(SUPERSCRIPT ONE)','º(MASCULINE ORDINAL INDICATOR)','»(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','¼(VULGAR FRACTION ONE QUARTER)','½(VULGAR FRACTION ONE HALF)','¾(VULGAR FRACTION THREE QUARTE
RS)','¿(INVERTED QUESTION MARK)','À(LATIN CAPITAL LETTER A WITH GRAVE)','Á(LATIN CAPITAL LETTER A WITH ACUTE)','Â(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','Ã(LATIN CAPITAL LETTER A WITH TILDE)','Ä(LATIN CAPITAL LETTER A WITH DIAERESIS)','Å(LATIN CAPITAL LETTER A WITH RING ABOVE)','Æ(LATIN CAPITAL LETTER AE)','Ç(LATIN CAPITAL LETTER C WITH CEDILLA)','È(LATIN CAPITAL LETTER E WITH GRAVE)','É(LATIN CAPITAL LETTER E WITH ACUTE)','Ê(LATIN CAPITAL LETTER E WITH CIRCUMFLEX)','Ë(LATIN CAPITAL LETTER E WITH DIAERESIS)','Ì(LATIN CAPITAL LETTER I WITH GRAVE)','Í(LATIN CAPITAL LETTER I WITH ACUTE)','Î(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','Ï(LATIN CAPITAL LETTER I WITH DIAERESIS)','Ð(LATIN CAPITAL LETTER ETH)','Ñ(LATIN CAPITAL LETTER N WITH TILDE)','Ò(LATIN CAPITAL LETTER O WITH GRAVE)','Ó(LATIN CAPITAL LETTER O WITH ACUTE)','Ô(LATIN CAPITAL LETTE
R O WITH CIRCUMFLEX)','Õ(LATIN CAPITAL LETTER O WITH TILDE)','Ö(LATIN CAPITAL LETTER O WITH DIAERESIS)','×(MULTIPLICATION SIGN)','Ø(LATIN CAPITAL LETTER O WITH STROKE)','Ù(LATIN CAPITAL LETTER U WITH GRAVE)','Ú(LATIN CAPITAL LETTER U WITH ACUTE)','Û(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','Ü(LATIN CAPITAL LETTER U WITH DIAERESIS)','Ý(LATIN CAPITAL LETTER Y WITH ACUTE)','Þ(LATIN CAPITAL LETTER THORN)','ß(LATIN SMALL LETTER SHARP S)','à(LATIN SMALL LETTER A WITH GRAVE)','á(LATIN SMALL LETTER A WITH ACUTE)','â(LATIN SMALL LETTER A WITH CIRCUMFLEX)','ã(LATIN SMALL LETTER A WITH TILDE)','ä(LATIN SMALL LETTER A WITH DIAERESIS)','å(LATIN SMALL LETTER A WITH RING ABOVE)','æ(LATIN SMALL LETTER AE)','ç(LATIN SMALL LETTER C WITH CEDILLA)','è(LATIN SMALL LETTER E WITH GRAVE)','é(LATIN SMALL LETTER E WITH ACUTE)','ê(LATIN SMALL LETTER E WITH CIRCUMF
LEX)','ë(LATIN SMALL LETTER E WITH DIAERESIS)','ì(LATIN SMALL LETTER I WITH GRAVE)','í(LATIN SMALL LETTER I WITH ACUTE)','î(LATIN SMALL LETTER I WITH CIRCUMFLEX)','ï(LATIN SMALL LETTER I WITH DIAERESIS)','ð(LATIN SMALL LETTER ETH)','ñ(LATIN SMALL LETTER N WITH TILDE)','ò(LATIN SMALL LETTER O WITH GRAVE)','ó(LATIN SMALL LETTER O WITH ACUTE)','ô(LATIN SMALL LETTER O WITH CIRCUMFLEX)','õ(LATIN SMALL LETTER O WITH TILDE)','ö(LATIN SMALL LETTER O WITH DIAERESIS)','÷(DIVISION SIGN)','ø(LATIN SMALL LETTER O WITH STROKE)','ù(LATIN SMALL LETTER U WITH GRAVE)','ú(LATIN SMALL LETTER U WITH ACUTE)','û(LATIN SMALL LETTER U WITH CIRCUMFLEX)','ü(LATIN SMALL LETTER U WITH DIAERESIS)','ü(LATIN SMALL LETTER U WITH DIAERESIS)','ý(LATIN SMALL LETTER Y WITH ACUTE)','þ(LATIN SMALL LETTER THORN)','ÿ(LATIN SMALL LETTER Y WITH DIAERESIS)','Œ(LATIN CAPITAL LIGAT
URE OE)','œ(LATIN SMALL LIGATURE OE)','Ŵ(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)','Ŷ(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','ŵ(LATIN SMALL LETTER W WITH CIRCUMFLEX)','ŷ(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','‚(SINGLE LOW-9 QUOTATION MARK)','‛(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','„(DOUBLE LOW-9 QUOTATION MARK)','…(HORIZONTAL ELLIPSIS)','™(TRADE MARK SIGN)','►(BLACK RIGHT-POINTING POINTER)','•(BULLET)','→(RIGHTWARDS ARROW)','⇒(RIGHTWARDS DOUBLE ARROW)','⇔(LEFT RIGHT DOUBLE ARROW)','♦(BLACK DIAMOND SUIT)','≈(ALMOST EQUAL TO)'],onLoad:function(){var k=this.definition.charColumns,l=this.definition.chars,m=CKEDITOR.tools.getNextId()+'_specialchar_table_label',n=['<table role="listbox" aria-labelledby="'+m+'"'+' style="width: 320px; height: 100%; border-collapse: separate;"'+' align="center" cellspacing="2" cellpadding="2" border="0">'],o=0,p=l.length,q,r;
-while(o<p){n.push('<tr>');for(var s=0;s<k;s++,o++){if(q=l[o]){r='';q=q.replace(/\((.*?)\)/,function(u,v){r=v;return '';});r=r||q;var t='cke_specialchar_label_'+o+'_'+CKEDITOR.tools.getNextNumber();n.push('<td class="cke_dark_background" style="cursor: default" role="presentation"><a href="javascript: void(0);" role="option" aria-posinset="'+(o+1)+'"',' aria-setsize="'+p+'"',' aria-labelledby="'+t+'"',' style="cursor: inherit; display: block; height: 1.25em; margin-top: 0.25em; text-align: center;" title="',CKEDITOR.tools.htmlEncode(r),'" onkeydown="CKEDITOR.tools.callFunction( '+j+', event, this )"'+' onclick="CKEDITOR.tools.callFunction('+f+', this); return false;"'+' tabindex="-1">'+'<span style="margin: 0 auto;cursor: inherit">'+q+'</span>'+'<span class="cke_voice_label" id="'+t+'">'+r+'</span></a>');}else n.push('<td class="cke_dark_background"> ');n.push('</td>');}n.push('</tr>');}n.push('</tbody></table>','<span id="'+m+'" class="cke_voice_label">'+c.options+'</sp
an>');this.getContentElement('info','charContainer').getElement().setHtml(n.join(''));},contents:[{id:'info',label:a.lang.common.generalTab,title:a.lang.common.generalTab,padding:0,align:'top',elements:[{type:'hbox',align:'top',widths:['320px','90px'],children:[{type:'html',id:'charContainer',html:'',onMouseover:h,onMouseout:i,focus:function(){var k=this.getElement().getElementsByTag('a').getItem(0);setTimeout(function(){k.focus();h(null,k);},0);},onShow:function(){var k=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){k.focus();h(null,k);},0);},onLoad:function(k){b=k.sender;}},{type:'hbox',align:'top',widths:['100%'],children:[{type:'vbox',align:'top',children:[{type:'html',html:'<div></div>'},{type:'html',id:'charPreview',className:'cke_dark_background',style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div> </div>'},{type:'html',id:'ht
mlPreview',className:'cke_dark_background',style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:'<div> </div>'}]}]}]}]}]};});
+CKEDITOR.dialog.add("specialchar",function(i){var e,l=i.lang.specialchar,k=function(c){var b,c=c.data?c.data.getTarget():new CKEDITOR.dom.element(c);if("a"==c.getName()&&(b=c.getChild(0).getHtml()))c.removeClass("cke_light_background"),e.hide(),c=i.document.createElement("span"),c.setHtml(b),i.insertText(c.getText())},m=CKEDITOR.tools.addFunction(k),j,g=function(c,b){var a,b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());if("a"==b.getName()&&(a=b.getChild(0).getHtml())){j&&d(null,j);
+var f=e.getContentElement("info","htmlPreview").getElement();e.getContentElement("info","charPreview").getElement().setHtml(a);f.setHtml(CKEDITOR.tools.htmlEncode(a));b.getParent().addClass("cke_light_background");j=b}},d=function(c,b){b=b||c.data.getTarget();"span"==b.getName()&&(b=b.getParent());"a"==b.getName()&&(e.getContentElement("info","charPreview").getElement().setHtml(" "),e.getContentElement("info","htmlPreview").getElement().setHtml(" "),b.getParent().removeClass("cke_light_background"),
+j=void 0)},n=CKEDITOR.tools.addFunction(function(c){var c=new CKEDITOR.dom.event(c),b=c.getTarget(),a;a=c.getKeystroke();var f="rtl"==i.lang.dir;switch(a){case 38:if(a=b.getParent().getParent().getPrevious())a=a.getChild([b.getParent().getIndex(),0]),a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 40:if(a=b.getParent().getParent().getNext())if((a=a.getChild([b.getParent().getIndex(),0]))&&1==a.type)a.focus(),d(null,b),g(null,a);c.preventDefault();break;case 32:k({data:c});c.preventDefault();
+break;case f?37:39:if(a=b.getParent().getNext())a=a.getChild(0),1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);else if(a=b.getParent().getParent().getNext())(a=a.getChild([0,0]))&&1==a.type?(a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):d(null,b);break;case f?39:37:(a=b.getParent().getPrevious())?(a=a.getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):(a=b.getParent().getParent().getPrevious())?(a=a.getLast().getChild(0),a.focus(),d(null,b),g(null,a),c.preventDefault(!0)):
+d(null,b)}});return{title:l.title,minWidth:430,minHeight:280,buttons:[CKEDITOR.dialog.cancelButton],charColumns:17,onLoad:function(){for(var c=this.definition.charColumns,b=i.config.specialChars,a=CKEDITOR.tools.getNextId()+"_specialchar_table_label",f=['<table role="listbox" aria-labelledby="'+a+'" style="width: 320px; height: 100%; border-collapse: separate;" align="center" cellspacing="2" cellpadding="2" border="0">'],d=0,g=b.length,h,e;d<g;){f.push('<tr role="presentation">');for(var j=0;j<c;j++,
+d++){if(h=b[d]){h instanceof Array?(e=h[1],h=h[0]):(e=h.replace("&","").replace(";","").replace("#",""),e=l[e]||h);var k="cke_specialchar_label_"+d+"_"+CKEDITOR.tools.getNextNumber();f.push('<td class="cke_dark_background" style="cursor: default" role="presentation"><a href="javascript: void(0);" role="option" aria-posinset="'+(d+1)+'"',' aria-setsize="'+g+'"',' aria-labelledby="'+k+'"',' class="cke_specialchar" title="',CKEDITOR.tools.htmlEncode(e),'" onkeydown="CKEDITOR.tools.callFunction( '+n+
+', event, this )" onclick="CKEDITOR.tools.callFunction('+m+', this); return false;" tabindex="-1"><span style="margin: 0 auto;cursor: inherit">'+h+'</span><span class="cke_voice_label" id="'+k+'">'+e+"</span></a>")}else f.push('<td class="cke_dark_background"> ');f.push("</td>")}f.push("</tr>")}f.push("</tbody></table>",'<span id="'+a+'" class="cke_voice_label">'+l.options+"</span>");this.getContentElement("info","charContainer").getElement().setHtml(f.join(""))},contents:[{id:"info",label:i.lang.common.generalTab,
+title:i.lang.common.generalTab,padding:0,align:"top",elements:[{type:"hbox",align:"top",widths:["320px","90px"],children:[{type:"html",id:"charContainer",html:"",onMouseover:g,onMouseout:d,focus:function(){var c=this.getElement().getElementsByTag("a").getItem(0);setTimeout(function(){c.focus();g(null,c)},0)},onShow:function(){var c=this.getElement().getChild([0,0,0,0,0]);setTimeout(function(){c.focus();g(null,c)},0)},onLoad:function(c){e=c.sender}},{type:"hbox",align:"top",widths:["100%"],children:[{type:"vbox",
+align:"top",children:[{type:"html",html:"<div></div>"},{type:"html",id:"charPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:28px;height:40px;width:70px;padding-top:9px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",html:"<div> </div>"},{type:"html",id:"htmlPreview",className:"cke_dark_background",style:"border:1px solid #eeeeee;font-size:14px;height:20px;width:70px;padding-top:2px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;text-align:center;",
+html:"<div> </div>"}]}]}]}]}]}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/styles/styles/default.js b/share/static/RichText/plugins/styles/styles/default.js
deleted file mode 100644
index ddead5b..0000000
--- a/share/static/RichText/plugins/styles/styles/default.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.stylesSet.add('default',[{name:'Blue Title',element:'h3',styles:{color:'Blue'}},{name:'Red Title',element:'h3',styles:{color:'Red'}},{name:'Marker: Yellow',element:'span',styles:{'background-color':'Yellow'}},{name:'Marker: Green',element:'span',styles:{'background-color':'Lime'}},{name:'Big',element:'big'},{name:'Small',element:'small'},{name:'Typewriter',element:'tt'},{name:'Computer Code',element:'code'},{name:'Keyboard Phrase',element:'kbd'},{name:'Sample Text',element:'samp'},{name:'Variable',element:'var'},{name:'Deleted Text',element:'del'},{name:'Inserted Text',element:'ins'},{name:'Cited Work',element:'cite'},{name:'Inline Quotation',element:'q'},{name:'Language: RTL',element:'span',attributes:{dir:'rtl'}},{name:'Language: LTR',element:'span',attributes:{dir:'ltr'}},{name:'Image on Left',element:'img',attributes:{style:'padding: 5px; margin-right: 5px',border:'2',align:'left'}},{name:'Image on Right',element:'img',attributes:{style:'padding: 5px; margin-lef
t: 5px',border:'2',align:'right'}},{name:'Borderless Table',element:'table',styles:{'border-style':'hidden','background-color':'#E6E6FA'}},{name:'Square Bulleted List',element:'ul',styles:{'list-style-type':'square'}}]);
diff --git a/share/static/RichText/plugins/table/dialogs/table.js b/share/static/RichText/plugins/table/dialogs/table.js
index 4e2b338..01d9e38 100644
--- a/share/static/RichText/plugins/table/dialogs/table.js
+++ b/share/static/RichText/plugins/table/dialogs/table.js
@@ -1,9 +1,20 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){var a=/^(\d+(?:\.\d+)?)(px|%)$/,b=/^(\d+(?:\.\d+)?)px$/,c=function(e){var f=this.id;if(!e.info)e.info={};e.info[f]=this.getValue();};function d(e,f){var g=function(i){return new CKEDITOR.dom.element(i,e.document);},h=e.plugins.dialogadvtab;return{title:e.lang.table.title,minWidth:310,minHeight:CKEDITOR.env.ie?310:280,onLoad:function(){var i=this,j=i.getContentElement('advanced','advStyles');if(j)j.on('change',function(k){var l=this.getStyle('width',''),m=i.getContentElement('info','txtWidth'),n=i.getContentElement('info','cmbWidthType'),o=1;if(l){o=l.length<3||l.substr(l.length-1)!='%';l=parseInt(l,10);}m&&m.setValue(l,true);n&&n.setValue(o?'pixels':'percents',true);var p=this.getStyle('height',''),q=i.getContentElement('info','txtHeight');p&&(p=parseInt(p,10));q&&q.setValue(p,true);});},onShow:function(){var q=this;var i=e.getSelection(),j=i.getRanges(),k=null,l=q.getContentElement('info','txtRows'),m=q.getContentElement('info','txtCols'),n=q.getContentElement('
info','txtWidth'),o=q.getContentElement('info','txtHeight');if(f=='tableProperties'){if(k=i.getSelectedElement())k=k.getAscendant('table',true);else if(j.length>0){if(CKEDITOR.env.webkit)j[0].shrink(CKEDITOR.NODE_ELEMENT);var p=j[0].getCommonAncestor(true);k=p.getAscendant('table',true);}q._.selectedElement=k;}if(k){q.setupContent(k);l&&l.disable();m&&m.disable();}else{l&&l.enable();m&&m.enable();}n&&n.onChange();o&&o.onChange();},onOk:function(){var D=this;if(D._.selectedElement)var i=e.getSelection(),j=i.createBookmarks();var k=D._.selectedElement||g('table'),l=D,m={};D.commitContent(m,k);if(m.info){var n=m.info;if(!D._.selectedElement){var o=k.append(g('tbody')),p=parseInt(n.txtRows,10)||0,q=parseInt(n.txtCols,10)||0;for(var r=0;r<p;r++){var s=o.append(g('tr'));for(var t=0;t<q;t++){var u=s.append(g('td'));if(!CKEDITOR.env.ie)u.append(g('br'));}}}var v=n.selHeaders;if(!k.$.tHead&&(v=='row'||v=='both')){var w=new CKEDITOR.dom.element(k.$.createTHead());o=k.getElementsByTag(
'tbody').getItem(0);var x=o.getElementsByTag('tr').getItem(0);for(r=0;r<x.getChildCount();r++){var y=x.getChild(r);if(y.type==CKEDITOR.NODE_ELEMENT&&!y.hasAttribute('_cke_bookmark')){y.renameNode('th');y.setAttribute('scope','col');}}w.append(x.remove());}if(k.$.tHead!==null&&!(v=='row'||v=='both')){w=new CKEDITOR.dom.element(k.$.tHead);o=k.getElementsByTag('tbody').getItem(0);var z=o.getFirst();while(w.getChildCount()>0){x=w.getFirst();for(r=0;r<x.getChildCount();r++){var A=x.getChild(r);if(A.type==CKEDITOR.NODE_ELEMENT){A.renameNode('td');
-A.removeAttribute('scope');}}x.insertBefore(z);}w.remove();}if(!D.hasColumnHeaders&&(v=='col'||v=='both'))for(s=0;s<k.$.rows.length;s++){A=new CKEDITOR.dom.element(k.$.rows[s].cells[0]);A.renameNode('th');A.setAttribute('scope','row');}if(D.hasColumnHeaders&&!(v=='col'||v=='both'))for(r=0;r<k.$.rows.length;r++){s=new CKEDITOR.dom.element(k.$.rows[r]);if(s.getParent().getName()=='tbody'){A=new CKEDITOR.dom.element(s.$.cells[0]);A.renameNode('td');A.removeAttribute('scope');}}var B=[];if(n.txtHeight)k.setStyle('height',CKEDITOR.tools.cssLength(n.txtHeight));else k.removeStyle('height');if(n.txtWidth){var C=n.cmbWidthType||'pixels';k.setStyle('width',n.txtWidth+(C=='pixels'?'px':'%'));}else k.removeStyle('width');if(!k.getAttribute('style'))k.removeAttribute('style');}if(!D._.selectedElement)e.insertElement(k);else i.selectBookmarks(j);return true;},contents:[{id:'info',label:e.lang.table.title,elements:[{type:'hbox',widths:[null,null],styles:['vertical-align:top'],children:[{t
ype:'vbox',padding:0,children:[{type:'text',id:'txtRows','default':3,label:e.lang.table.rows,required:true,style:'width:5em',validate:function(){var i=true,j=this.getValue();i=i&&CKEDITOR.dialog.validate.integer()(j)&&j>0;if(!i){alert(e.lang.table.invalidRows);this.select();}return i;},setup:function(i){this.setValue(i.$.rows.length);},commit:c},{type:'text',id:'txtCols','default':2,label:e.lang.table.columns,required:true,style:'width:5em',validate:function(){var i=true,j=this.getValue();i=i&&CKEDITOR.dialog.validate.integer()(j)&&j>0;if(!i){alert(e.lang.table.invalidCols);this.select();}return i;},setup:function(i){this.setValue(i.$.rows[0].cells.length);},commit:c},{type:'html',html:' '},{type:'select',id:'selHeaders','default':'',label:e.lang.table.headers,items:[[e.lang.table.headersNone,''],[e.lang.table.headersRow,'row'],[e.lang.table.headersColumn,'col'],[e.lang.table.headersBoth,'both']],setup:function(i){var j=this.getDialog();j.hasColumnHeaders=true;for(var k
=0;k<i.$.rows.length;k++){if(i.$.rows[k].cells[0].nodeName.toLowerCase()!='th'){j.hasColumnHeaders=false;break;}}if(i.$.tHead!==null)this.setValue(j.hasColumnHeaders?'both':'row');else this.setValue(j.hasColumnHeaders?'col':'');},commit:c},{type:'text',id:'txtBorder','default':1,label:e.lang.table.border,style:'width:3em',validate:CKEDITOR.dialog.validate.number(e.lang.table.invalidBorder),setup:function(i){this.setValue(i.getAttribute('border')||'');},commit:function(i,j){if(this.getValue())j.setAttribute('border',this.getValue());
-else j.removeAttribute('border');}},{id:'cmbAlign',type:'select','default':'',label:e.lang.table.align,items:[[e.lang.common.notSet,''],[e.lang.table.alignLeft,'left'],[e.lang.table.alignCenter,'center'],[e.lang.table.alignRight,'right']],setup:function(i){this.setValue(i.getAttribute('align')||'');},commit:function(i,j){if(this.getValue())j.setAttribute('align',this.getValue());else j.removeAttribute('align');}}]},{type:'vbox',padding:0,children:[{type:'hbox',widths:['5em'],children:[{type:'text',id:'txtWidth',style:'width:5em',label:e.lang.table.width,'default':500,validate:CKEDITOR.dialog.validate.number(e.lang.table.invalidWidth),onLoad:function(){var i=this.getDialog().getContentElement('info','cmbWidthType'),j=i.getElement(),k=this.getInputElement(),l=k.getAttribute('aria-labelledby');k.setAttribute('aria-labelledby',[l,j.$.id].join(' '));},onChange:function(){var i=this.getDialog().getContentElement('advanced','advStyles');if(i){var j=this.getValue();if(j)j+=this.getD
ialog().getContentElement('info','cmbWidthType').getValue()=='percents'?'%':'px';i.updateStyle('width',j);}},setup:function(i){var j=a.exec(i.$.style.width);if(j)this.setValue(j[1]);else this.setValue('');},commit:c},{id:'cmbWidthType',type:'select',label:e.lang.table.widthUnit,labelStyle:'visibility:hidden','default':'pixels',items:[[e.lang.table.widthPx,'pixels'],[e.lang.table.widthPc,'percents']],setup:function(i){var j=a.exec(i.$.style.width);if(j)this.setValue(j[2]=='px'?'pixels':'percents');},onChange:function(){this.getDialog().getContentElement('info','txtWidth').onChange();},commit:c}]},{type:'hbox',widths:['5em'],children:[{type:'text',id:'txtHeight',style:'width:5em',label:e.lang.table.height,'default':'',validate:CKEDITOR.dialog.validate.number(e.lang.table.invalidHeight),onLoad:function(){var i=this.getDialog().getContentElement('info','htmlHeightType'),j=i.getElement(),k=this.getInputElement(),l=k.getAttribute('aria-labelledby');k.setAttribute('aria-labelledby'
,[l,j.$.id].join(' '));},onChange:function(){var i=this.getDialog().getContentElement('advanced','advStyles');if(i){var j=this.getValue();i.updateStyle('height',j&&j+'px');}},setup:function(i){var j=b.exec(i.$.style.height);if(j)this.setValue(j[1]);},commit:c},{id:'htmlHeightType',type:'html',html:'<div><br />'+e.lang.table.widthPx+'</div>'}]},{type:'html',html:' '},{type:'text',id:'txtCellSpace',style:'width:3em',label:e.lang.table.cellSpace,'default':1,validate:CKEDITOR.dialog.validate.number(e.lang.table.invalidCellSpacing),setup:function(i){this.setValue(i.getAttribute('cellSpacing')||'');
-},commit:function(i,j){if(this.getValue())j.setAttribute('cellSpacing',this.getValue());else j.removeAttribute('cellSpacing');}},{type:'text',id:'txtCellPad',style:'width:3em',label:e.lang.table.cellPad,'default':1,validate:CKEDITOR.dialog.validate.number(e.lang.table.invalidCellPadding),setup:function(i){this.setValue(i.getAttribute('cellPadding')||'');},commit:function(i,j){if(this.getValue())j.setAttribute('cellPadding',this.getValue());else j.removeAttribute('cellPadding');}}]}]},{type:'html',align:'right',html:''},{type:'vbox',padding:0,children:[{type:'text',id:'txtCaption',label:e.lang.table.caption,setup:function(i){var j=i.getElementsByTag('caption');if(j.count()>0){var k=j.getItem(0);k=k.getChild(0)&&k.getChild(0).getText()||'';k=CKEDITOR.tools.trim(k);this.setValue(k);}},commit:function(i,j){var k=this.getValue(),l=j.getElementsByTag('caption');if(k){if(l.count()>0){l=l.getItem(0);l.setHtml('');}else{l=new CKEDITOR.dom.element('caption',e.document);if(j.getChildCo
unt())l.insertBefore(j.getFirst());else l.appendTo(j);}l.append(new CKEDITOR.dom.text(k,e.document));}else if(l.count()>0)for(var m=l.count()-1;m>=0;m--)l.getItem(m).remove();}},{type:'text',id:'txtSummary',label:e.lang.table.summary,setup:function(i){this.setValue(i.getAttribute('summary')||'');},commit:function(i,j){if(this.getValue())j.setAttribute('summary',this.getValue());else j.removeAttribute('summary');}}]}]},h&&h.createAdvancedTab(e)]};};CKEDITOR.dialog.add('table',function(e){return d(e,'table');});CKEDITOR.dialog.add('tableProperties',function(e){return d(e,'tableProperties');});})();
+(function(){function r(a){for(var f=0,l=0,k=0,m,e=a.$.rows.length;k<e;k++){m=a.$.rows[k];for(var d=f=0,c,b=m.cells.length;d<b;d++)c=m.cells[d],f+=c.colSpan;f>l&&(l=f)}return l}function o(a){return function(){var f=this.getValue(),f=!!(CKEDITOR.dialog.validate.integer()(f)&&0<f);f||(alert(a),this.select());return f}}function n(a,f){var l=function(e){return new CKEDITOR.dom.element(e,a.document)},n=a.editable(),m=a.plugins.dialogadvtab;return{title:a.lang.table.title,minWidth:310,minHeight:CKEDITOR.env.ie?
+310:280,onLoad:function(){var e=this,a=e.getContentElement("advanced","advStyles");if(a)a.on("change",function(){var a=this.getStyle("width",""),b=e.getContentElement("info","txtWidth");b&&b.setValue(a,!0);a=this.getStyle("height","");(b=e.getContentElement("info","txtHeight"))&&b.setValue(a,!0)})},onShow:function(){var e=a.getSelection(),d=e.getRanges(),c,b=this.getContentElement("info","txtRows"),h=this.getContentElement("info","txtCols"),p=this.getContentElement("info","txtWidth"),g=this.getContentElement("info",
+"txtHeight");"tableProperties"==f&&((e=e.getSelectedElement())&&e.is("table")?c=e:0<d.length&&(CKEDITOR.env.webkit&&d[0].shrink(CKEDITOR.NODE_ELEMENT),c=a.elementPath(d[0].getCommonAncestor(!0)).contains("table",1)),this._.selectedElement=c);c?(this.setupContent(c),b&&b.disable(),h&&h.disable()):(b&&b.enable(),h&&h.enable());p&&p.onChange();g&&g.onChange()},onOk:function(){var e=a.getSelection(),d=this._.selectedElement&&e.createBookmarks(),c=this._.selectedElement||l("table"),b={};this.commitContent(b,
+c);if(b.info){b=b.info;if(!this._.selectedElement)for(var h=c.append(l("tbody")),f=parseInt(b.txtRows,10)||0,g=parseInt(b.txtCols,10)||0,i=0;i<f;i++)for(var j=h.append(l("tr")),k=0;k<g;k++){var m=j.append(l("td"));CKEDITOR.env.ie||m.append(l("br"))}f=b.selHeaders;if(!c.$.tHead&&("row"==f||"both"==f)){j=new CKEDITOR.dom.element(c.$.createTHead());h=c.getElementsByTag("tbody").getItem(0);h=h.getElementsByTag("tr").getItem(0);for(i=0;i<h.getChildCount();i++)g=h.getChild(i),g.type==CKEDITOR.NODE_ELEMENT&&
+!g.data("cke-bookmark")&&(g.renameNode("th"),g.setAttribute("scope","col"));j.append(h.remove())}if(null!==c.$.tHead&&!("row"==f||"both"==f)){j=new CKEDITOR.dom.element(c.$.tHead);h=c.getElementsByTag("tbody").getItem(0);for(k=h.getFirst();0<j.getChildCount();){h=j.getFirst();for(i=0;i<h.getChildCount();i++)g=h.getChild(i),g.type==CKEDITOR.NODE_ELEMENT&&(g.renameNode("td"),g.removeAttribute("scope"));h.insertBefore(k)}j.remove()}if(!this.hasColumnHeaders&&("col"==f||"both"==f))for(j=0;j<c.$.rows.length;j++)g=
+new CKEDITOR.dom.element(c.$.rows[j].cells[0]),g.renameNode("th"),g.setAttribute("scope","row");if(this.hasColumnHeaders&&!("col"==f||"both"==f))for(i=0;i<c.$.rows.length;i++)j=new CKEDITOR.dom.element(c.$.rows[i]),"tbody"==j.getParent().getName()&&(g=new CKEDITOR.dom.element(j.$.cells[0]),g.renameNode("td"),g.removeAttribute("scope"));b.txtHeight?c.setStyle("height",b.txtHeight):c.removeStyle("height");b.txtWidth?c.setStyle("width",b.txtWidth):c.removeStyle("width");c.getAttribute("style")||c.removeAttribute("style")}if(this._.selectedElement)try{e.selectBookmarks(d)}catch(n){}else a.insertElement(c),
+setTimeout(function(){var e=new CKEDITOR.dom.element(c.$.rows[0].cells[0]),b=a.createRange();b.moveToPosition(e,CKEDITOR.POSITION_AFTER_START);b.select()},0)},contents:[{id:"info",label:a.lang.table.title,elements:[{type:"hbox",widths:[null,null],styles:["vertical-align:top"],children:[{type:"vbox",padding:0,children:[{type:"text",id:"txtRows","default":3,label:a.lang.table.rows,required:!0,controlStyle:"width:5em",validate:o(a.lang.table.invalidRows),setup:function(e){this.setValue(e.$.rows.length)},
+commit:k},{type:"text",id:"txtCols","default":2,label:a.lang.table.columns,required:!0,controlStyle:"width:5em",validate:o(a.lang.table.invalidCols),setup:function(e){this.setValue(r(e))},commit:k},{type:"html",html:" "},{type:"select",id:"selHeaders","default":"",label:a.lang.table.headers,items:[[a.lang.table.headersNone,""],[a.lang.table.headersRow,"row"],[a.lang.table.headersColumn,"col"],[a.lang.table.headersBoth,"both"]],setup:function(e){var a=this.getDialog();a.hasColumnHeaders=!0;for(var c=
+0;c<e.$.rows.length;c++){var b=e.$.rows[c].cells[0];if(b&&"th"!=b.nodeName.toLowerCase()){a.hasColumnHeaders=!1;break}}null!==e.$.tHead?this.setValue(a.hasColumnHeaders?"both":"row"):this.setValue(a.hasColumnHeaders?"col":"")},commit:k},{type:"text",id:"txtBorder","default":1,label:a.lang.table.border,controlStyle:"width:3em",validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidBorder),setup:function(a){this.setValue(a.getAttribute("border")||"")},commit:function(a,d){this.getValue()?d.setAttribute("border",
+this.getValue()):d.removeAttribute("border")}},{id:"cmbAlign",type:"select","default":"",label:a.lang.common.align,items:[[a.lang.common.notSet,""],[a.lang.common.alignLeft,"left"],[a.lang.common.alignCenter,"center"],[a.lang.common.alignRight,"right"]],setup:function(a){this.setValue(a.getAttribute("align")||"")},commit:function(a,d){this.getValue()?d.setAttribute("align",this.getValue()):d.removeAttribute("align")}}]},{type:"vbox",padding:0,children:[{type:"hbox",widths:["5em"],children:[{type:"text",
+id:"txtWidth",controlStyle:"width:5em",label:a.lang.common.width,title:a.lang.common.cssLengthTooltip,"default":500>n.getSize("width")?"100%":500,getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.width)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("width",this.getValue())},setup:function(a){this.setValue(a.getStyle("width"))},commit:k}]},{type:"hbox",widths:["5em"],children:[{type:"text",
+id:"txtHeight",controlStyle:"width:5em",label:a.lang.common.height,title:a.lang.common.cssLengthTooltip,"default":"",getValue:q,validate:CKEDITOR.dialog.validate.cssLength(a.lang.common.invalidCssLength.replace("%1",a.lang.common.height)),onChange:function(){var a=this.getDialog().getContentElement("advanced","advStyles");a&&a.updateStyle("height",this.getValue())},setup:function(a){(a=a.getStyle("height"))&&this.setValue(a)},commit:k}]},{type:"html",html:" "},{type:"text",id:"txtCellSpace",
+controlStyle:"width:3em",label:a.lang.table.cellSpace,"default":1,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellSpacing),setup:function(a){this.setValue(a.getAttribute("cellSpacing")||"")},commit:function(a,d){this.getValue()?d.setAttribute("cellSpacing",this.getValue()):d.removeAttribute("cellSpacing")}},{type:"text",id:"txtCellPad",controlStyle:"width:3em",label:a.lang.table.cellPad,"default":1,validate:CKEDITOR.dialog.validate.number(a.lang.table.invalidCellPadding),setup:function(a){this.setValue(a.getAttribute("cellPadding")||
+"")},commit:function(a,d){this.getValue()?d.setAttribute("cellPadding",this.getValue()):d.removeAttribute("cellPadding")}}]}]},{type:"html",align:"right",html:""},{type:"vbox",padding:0,children:[{type:"text",id:"txtCaption",label:a.lang.table.caption,setup:function(a){this.enable();a=a.getElementsByTag("caption");if(0<a.count()){var a=a.getItem(0),d=a.getFirst(CKEDITOR.dom.walker.nodeType(CKEDITOR.NODE_ELEMENT));d&&!d.equals(a.getBogus())?(this.disable(),this.setValue(a.getText())):(a=CKEDITOR.tools.trim(a.getText()),
+this.setValue(a))}},commit:function(e,d){if(this.isEnabled()){var c=this.getValue(),b=d.getElementsByTag("caption");if(c)0<b.count()?(b=b.getItem(0),b.setHtml("")):(b=new CKEDITOR.dom.element("caption",a.document),d.getChildCount()?b.insertBefore(d.getFirst()):b.appendTo(d)),b.append(new CKEDITOR.dom.text(c,a.document));else if(0<b.count())for(c=b.count()-1;0<=c;c--)b.getItem(c).remove()}}},{type:"text",id:"txtSummary",label:a.lang.table.summary,setup:function(a){this.setValue(a.getAttribute("summary")||
+"")},commit:function(a,d){this.getValue()?d.setAttribute("summary",this.getValue()):d.removeAttribute("summary")}}]}]},m&&m.createAdvancedTab(a)]}}var q=CKEDITOR.tools.cssLength,k=function(a){var f=this.id;a.info||(a.info={});a.info[f]=this.getValue()};CKEDITOR.dialog.add("table",function(a){return n(a,"table")});CKEDITOR.dialog.add("tableProperties",function(a){return n(a,"tableProperties")})})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/tableresize/plugin.js b/share/static/RichText/plugins/tableresize/plugin.js
deleted file mode 100644
index 5af17c6..0000000
--- a/share/static/RichText/plugins/tableresize/plugin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function(){var a=CKEDITOR.tools.cssLength,b=CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks||CKEDITOR.env.version<7);function c(k){return CKEDITOR.env.ie?k.$.clientWidth:parseInt(k.getComputedStyle('width'),10);};function d(k,l){var m=k.getComputedStyle('border-'+l+'-width'),n={thin:'0px',medium:'1px',thick:'2px'};if(m.indexOf('px')<0)if(m in n&&k.getComputedStyle('border-style')!='none')m=n[m];else m=0;return parseInt(m,10);};function e(k){var l=k.$.rows,m=0,n,o,p;for(var q=0,r=l.length;q<r;q++){p=l[q];n=p.cells.length;if(n>m){m=n;o=p;}}return o;};function f(k){var l=[],m=-1,n=k.getComputedStyle('direction')=='rtl',o=e(k),p=new CKEDITOR.dom.element(k.$.tBodies[0]),q=p.getDocumentPosition();for(var r=0,s=o.cells.length;r<s;r++){var t=new CKEDITOR.dom.element(o.cells[r]),u=o.cells[r+1]&&new CKEDITOR.dom.element(o.cells[r+1]);m+=t.$.colSpan||1;var v,w,x,y,z=t.getDocumentPosition().x;n?w=z+d(t,'left'):v=z+t.$.offsetWidth-d(t,'right');if(u){z=u.getDocumentPosition
().x;n?v=z+u.$.offsetWidth-d(u,'right'):w=z+d(u,'left');}else{z=k.getDocumentPosition().x;n?v=z:w=z+k.$.offsetWidth;}x=Math.max(w-v,3);y=Math.max(Math.round(7-x/2),0);l.push({table:k,index:m,x:v,y:q.y,width:x,height:p.$.offsetHeight,padding:y,rtl:n});}return l;};function g(k,l){for(var m=0,n=k.length;m<n;m++){var o=k[m],p=o.padding;if(l>=o.x-p&&l<=o.x+o.width+p)return o;}return null;};function h(k){(k.data||k).preventDefault();};function i(k){var l,m,n,o,p,q,r,s,t,u;function v(){l=null;q=0;o=0;m.removeListener('mouseup',A);n.removeListener('mousedown',z);n.removeListener('mousemove',B);m.getBody().setStyle('cursor','auto');b?n.remove():n.hide();};function w(){var D=l.index,E=CKEDITOR.tools.buildTableMap(l.table),F=[],G=[],H=Number.MAX_VALUE,I=H,J=l.rtl;for(var K=0,L=E.length;K<L;K++){var M=E[K],N=M[D+(J?1:0)],O=M[D+(J?0:1)];N=N&&new CKEDITOR.dom.element(N);O=O&&new CKEDITOR.dom.element(O);if(!N||!O||!N.equals(O)){N&&(H=Math.min(H,c(N)));O&&(I=Math.min(I,c(O)));F.push(N);G.pu
sh(O);}}r=F;s=G;t=l.x-H;u=l.x+I;n.setOpacity(0.5);p=parseInt(n.getStyle('left'),10);q=0;o=1;n.on('mousemove',B);m.on('dragstart',h);};function x(){o=0;n.setOpacity(0);q&&y();var D=l.table;setTimeout(function(){D.removeCustomData('_cke_table_pillars');},0);m.removeListener('dragstart',h);};function y(){var D=l.rtl,E=D?s.length:r.length;for(var F=0;F<E;F++){var G=r[F],H=s[F],I=l.table;CKEDITOR.tools.setTimeout(function(J,K,L,M,N,O){J&&J.setStyle('width',a(Math.max(K+O,0)));L&&L.setStyle('width',a(Math.max(M-O,0)));if(N)I.setStyle('width',a(N+O*(D?-1:1)));
-},0,this,[G,G&&c(G),H,H&&c(H),(!G||!H)&&c(I)+d(I,'left')+d(I,'right'),q]);}};function z(D){h(D);w();m.on('mouseup',A,this);};function A(D){D.removeListener();x();};function B(D){C(D.data.$.clientX);};m=k.document;n=CKEDITOR.dom.element.createFromHtml('<div cke_temp=1 contenteditable=false unselectable=on style="position:absolute;cursor:col-resize;filter:alpha(opacity=0);opacity:0;padding:0;background-color:#004;background-image:none;border:0px none;z-index:10"></div>',m);if(!b)m.getDocumentElement().append(n);this.attachTo=function(D){if(o)return;if(b){m.getBody().append(n);q=0;}l=D;n.setStyles({width:a(D.width),height:a(D.height),left:a(D.x),top:a(D.y)});b&&n.setOpacity(0.25);n.on('mousedown',z,this);m.getBody().setStyle('cursor','col-resize');n.show();};var C=this.move=function(D){if(!l)return 0;var E=l.padding;if(!o&&(D<l.x-E||D>l.x+l.width+E)){v();return 0;}var F=D-Math.round(n.$.offsetWidth/2);if(o){if(F==t||F==u)return 1;F=Math.max(F,t);F=Math.min(F,u);q=F-p;}n.setStyl
e('left',a(F));return 1;};};function j(k){var l=k.data.getTarget();if(k.name=='mouseout'){if(!l.is('table'))return;var m=new CKEDITOR.dom.element(k.data.$.relatedTarget||k.data.$.toElement);while(m&&m.$&&!m.equals(l)&&!m.is('body'))m=m.getParent();if(!m||m.equals(l))return;}l.getAscendant('table',true).removeCustomData('_cke_table_pillars');k.removeListener();};CKEDITOR.plugins.add('tableresize',{requires:['tabletools'],init:function(k){k.on('contentDom',function(){var l;k.document.getBody().on('mousemove',function(m){m=m.data;if(l&&l.move(m.$.clientX)){h(m);return;}var n=m.getTarget(),o,p;if(!n.is('table')&&!n.getAscendant('tbody',true))return;o=n.getAscendant('table',true);if(!(p=o.getCustomData('_cke_table_pillars'))){o.setCustomData('_cke_table_pillars',p=f(o));o.on('mouseout',j);o.on('mousedown',j);}var q=g(p,m.$.clientX);if(q){!l&&(l=new i(k));l.attachTo(q);}});});}});})();
diff --git a/share/static/RichText/plugins/tabletools/dialogs/tableCell.js b/share/static/RichText/plugins/tabletools/dialogs/tableCell.js
index 225eccc..2c4e865 100644
--- a/share/static/RichText/plugins/tabletools/dialogs/tableCell.js
+++ b/share/static/RichText/plugins/tabletools/dialogs/tableCell.js
@@ -1,8 +1,16 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('cellProperties',function(a){var b=a.lang.table,c=b.cell,d=a.lang.common,e=CKEDITOR.dialog.validate,f=/^(\d+(?:\.\d+)?)(px|%)$/,g=/^(\d+(?:\.\d+)?)px$/,h=CKEDITOR.tools.bind,i={type:'html',html:' '};function j(k,l){var m=function(){var q=this;o(q);l(q,q._.parentDialog);q._.parentDialog.changeFocus(true);},n=function(){o(this);this._.parentDialog.changeFocus();},o=function(q){q.removeListener('ok',m);q.removeListener('cancel',n);},p=function(q){q.on('ok',m);q.on('cancel',n);};a.execCommand(k);if(a._.storedDialogs.colordialog)p(a._.storedDialogs.colordialog);else CKEDITOR.on('dialogDefinition',function(q){if(q.data.name!=k)return;var r=q.data.definition;q.removeListener();r.onLoad=CKEDITOR.tools.override(r.onLoad,function(s){return function(){p(this);r.onLoad=s;if(typeof s=='function')s.call(this);};});});};return{title:c.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?550:480,minHeight:CKEDITOR.env.ie?CKEDITOR.env.quirks?180:150:140,contents:[{id:
'info',label:c.title,accessKey:'I',elements:[{type:'hbox',widths:['40%','5%','40%'],children:[{type:'vbox',padding:0,children:[{type:'hbox',widths:['70%','30%'],children:[{type:'text',id:'width',label:b.width,widths:['71%','29%'],labelLayout:'horizontal',validate:e.number(c.invalidWidth),onLoad:function(){var k=this.getDialog().getContentElement('info','widthType'),l=k.getElement(),m=this.getInputElement(),n=m.getAttribute('aria-labelledby');m.setAttribute('aria-labelledby',[n,l.$.id].join(' '));},setup:function(k){var l=parseInt(k.getAttribute('width'),10),m=parseInt(k.getStyle('width'),10);!isNaN(l)&&this.setValue(l);!isNaN(m)&&this.setValue(m);},commit:function(k){var l=parseInt(this.getValue(),10),m=this.getDialog().getValueOf('info','widthType');if(!isNaN(l))k.setStyle('width',l+m);else k.removeStyle('width');k.removeAttribute('width');},'default':''},{type:'select',id:'widthType',labelLayout:'horizontal',widths:['0%','100%'],label:a.lang.table.widthUnit,labelStyle:'dis
play:none','default':'px',items:[[b.widthPx,'px'],[b.widthPc,'%']],setup:function(k){var l=f.exec(k.getStyle('width')||k.getAttribute('width'));if(l)this.setValue(l[2]);}}]},{type:'hbox',widths:['70%','30%'],children:[{type:'text',id:'height',label:b.height,'default':'',widths:['71%','29%'],labelLayout:'horizontal',validate:e.number(c.invalidHeight),onLoad:function(){var k=this.getDialog().getContentElement('info','htmlHeightType'),l=k.getElement(),m=this.getInputElement(),n=m.getAttribute('aria-labelledby');m.setAttribute('aria-labelledby',[n,l.$.id].join(' '));
-},setup:function(k){var l=parseInt(k.getAttribute('height'),10),m=parseInt(k.getStyle('height'),10);!isNaN(l)&&this.setValue(l);!isNaN(m)&&this.setValue(m);},commit:function(k){var l=parseInt(this.getValue(),10);if(!isNaN(l))k.setStyle('height',CKEDITOR.tools.cssLength(l));else k.removeStyle('height');k.removeAttribute('height');}},{id:'htmlHeightType',type:'html',html:b.widthPx}]},i,{type:'select',id:'wordWrap',labelLayout:'horizontal',label:c.wordWrap,widths:['50%','50%'],'default':'yes',items:[[c.yes,'yes'],[c.no,'no']],setup:function(k){var l=k.getAttribute('noWrap'),m=k.getStyle('white-space');if(m=='nowrap'||l)this.setValue('no');},commit:function(k){if(this.getValue()=='no')k.setStyle('white-space','nowrap');else k.removeStyle('white-space');k.removeAttribute('noWrap');}},i,{type:'select',id:'hAlign',labelLayout:'horizontal',label:c.hAlign,widths:['50%','50%'],'default':'',items:[[d.notSet,''],[b.alignLeft,'left'],[b.alignCenter,'center'],[b.alignRight,'right']],setup
:function(k){var l=k.getAttribute('align'),m=k.getStyle('text-align');this.setValue(m||l||'');},commit:function(k){var l=this.getValue();if(l)k.setStyle('text-align',l);else k.removeStyle('text-align');k.removeAttribute('align');}},{type:'select',id:'vAlign',labelLayout:'horizontal',label:c.vAlign,widths:['50%','50%'],'default':'',items:[[d.notSet,''],[c.alignTop,'top'],[c.alignMiddle,'middle'],[c.alignBottom,'bottom'],[c.alignBaseline,'baseline']],setup:function(k){var l=k.getAttribute('vAlign'),m=k.getStyle('vertical-align');switch(m){case 'top':case 'middle':case 'bottom':case 'baseline':break;default:m='';}this.setValue(m||l||'');},commit:function(k){var l=this.getValue();if(l)k.setStyle('vertical-align',l);else k.removeStyle('vertical-align');k.removeAttribute('vAlign');}}]},i,{type:'vbox',padding:0,children:[{type:'select',id:'cellType',label:c.cellType,labelLayout:'horizontal',widths:['50%','50%'],'default':'td',items:[[c.data,'td'],[c.header,'th']],setup:function(k){
this.setValue(k.getName());},commit:function(k){k.renameNode(this.getValue());}},i,{type:'text',id:'rowSpan',label:c.rowSpan,labelLayout:'horizontal',widths:['50%','50%'],'default':'',validate:e.integer(c.invalidRowSpan),setup:function(k){var l=parseInt(k.getAttribute('rowSpan'),10);if(l&&l!=1)this.setValue(l);},commit:function(k){var l=parseInt(this.getValue(),10);if(l&&l!=1)k.setAttribute('rowSpan',this.getValue());else k.removeAttribute('rowSpan');}},{type:'text',id:'colSpan',label:c.colSpan,labelLayout:'horizontal',widths:['50%','50%'],'default':'',validate:e.integer(c.invalidColSpan),setup:function(k){var l=parseInt(k.getAttribute('colSpan'),10);
-if(l&&l!=1)this.setValue(l);},commit:function(k){var l=parseInt(this.getValue(),10);if(l&&l!=1)k.setAttribute('colSpan',this.getValue());else k.removeAttribute('colSpan');}},i,{type:'hbox',padding:0,widths:['80%','20%'],children:[{type:'text',id:'bgColor',label:c.bgColor,labelLayout:'horizontal',widths:['70%','30%'],'default':'',setup:function(k){var l=k.getAttribute('bgColor'),m=k.getStyle('background-color');this.setValue(m||l);},commit:function(k){var l=this.getValue();if(l)k.setStyle('background-color',this.getValue());else k.removeStyle('background-color');k.removeAttribute('bgColor');}},{type:'button',id:'bgColorChoose',label:c.chooseColor,style:'margin-left: 10px',onClick:function(){var k=this;j('colordialog',function(l){k.getDialog().getContentElement('info','bgColor').setValue(l.getContentElement('picker','selectedColor').getValue());});}}]},i,{type:'hbox',padding:0,widths:['80%','20%'],children:[{type:'text',id:'borderColor',label:c.borderColor,labelLayout:'horizon
tal',widths:['70%','30%'],'default':'',setup:function(k){var l=k.getAttribute('borderColor'),m=k.getStyle('border-color');this.setValue(m||l);},commit:function(k){var l=this.getValue();if(l)k.setStyle('border-color',this.getValue());else k.removeStyle('border-color');k.removeAttribute('borderColor');}},{type:'button',id:'borderColorChoose',label:c.chooseColor,style:'margin-left: 10px',onClick:function(){var k=this;j('colordialog',function(l){k.getDialog().getContentElement('info','borderColor').setValue(l.getContentElement('picker','selectedColor').getValue());});}}]}]}]}]}],onShow:function(){var k=this;k.cells=CKEDITOR.plugins.tabletools.getSelectedCells(k._.editor.getSelection());k.setupContent(k.cells[0]);},onOk:function(){var q=this;var k=q._.editor.getSelection(),l=k.createBookmarks(),m=q.cells;for(var n=0;n<m.length;n++)q.commitContent(m[n]);k.selectBookmarks(l);var o=k.getStartElement(),p=new CKEDITOR.dom.elementPath(o);q._.editor._.selectionPreviousPath=p;q._.editor.
fire('selectionChange',{selection:k,path:p,element:o});}};});
+CKEDITOR.dialog.add("cellProperties",function(f){var g=f.lang.table,c=g.cell,d=f.lang.common,h=CKEDITOR.dialog.validate,j=/^(\d+(?:\.\d+)?)(px|%)$/,e={type:"html",html:" "},k="rtl"==f.lang.dir,i=f.plugins.colordialog;return{title:c.title,minWidth:CKEDITOR.env.ie&&CKEDITOR.env.quirks?450:410,minHeight:CKEDITOR.env.ie&&(CKEDITOR.env.ie7Compat||CKEDITOR.env.quirks)?230:220,contents:[{id:"info",label:c.title,accessKey:"I",elements:[{type:"hbox",widths:["40%","5%","40%"],children:[{type:"vbox",padding:0,
+children:[{type:"hbox",widths:["70%","30%"],children:[{type:"text",id:"width",width:"100px",label:d.width,validate:h.number(c.invalidWidth),onLoad:function(){var a=this.getDialog().getContentElement("info","widthType").getElement(),b=this.getInputElement(),c=b.getAttribute("aria-labelledby");b.setAttribute("aria-labelledby",[c,a.$.id].join(" "))},setup:function(a){var b=parseInt(a.getAttribute("width"),10),a=parseInt(a.getStyle("width"),10);!isNaN(b)&&this.setValue(b);!isNaN(a)&&this.setValue(a)},
+commit:function(a){var b=parseInt(this.getValue(),10),c=this.getDialog().getValueOf("info","widthType");isNaN(b)?a.removeStyle("width"):a.setStyle("width",b+c);a.removeAttribute("width")},"default":""},{type:"select",id:"widthType",label:f.lang.table.widthUnit,labelStyle:"visibility:hidden","default":"px",items:[[g.widthPx,"px"],[g.widthPc,"%"]],setup:function(a){(a=j.exec(a.getStyle("width")||a.getAttribute("width")))&&this.setValue(a[2])}}]},{type:"hbox",widths:["70%","30%"],children:[{type:"text",
+id:"height",label:d.height,width:"100px","default":"",validate:h.number(c.invalidHeight),onLoad:function(){var a=this.getDialog().getContentElement("info","htmlHeightType").getElement(),b=this.getInputElement(),c=b.getAttribute("aria-labelledby");b.setAttribute("aria-labelledby",[c,a.$.id].join(" "))},setup:function(a){var b=parseInt(a.getAttribute("height"),10),a=parseInt(a.getStyle("height"),10);!isNaN(b)&&this.setValue(b);!isNaN(a)&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),
+10);isNaN(b)?a.removeStyle("height"):a.setStyle("height",CKEDITOR.tools.cssLength(b));a.removeAttribute("height")}},{id:"htmlHeightType",type:"html",html:"<br />"+g.widthPx}]},e,{type:"select",id:"wordWrap",label:c.wordWrap,"default":"yes",items:[[c.yes,"yes"],[c.no,"no"]],setup:function(a){var b=a.getAttribute("noWrap");("nowrap"==a.getStyle("white-space")||b)&&this.setValue("no")},commit:function(a){"no"==this.getValue()?a.setStyle("white-space","nowrap"):a.removeStyle("white-space");a.removeAttribute("noWrap")}},
+e,{type:"select",id:"hAlign",label:c.hAlign,"default":"",items:[[d.notSet,""],[d.alignLeft,"left"],[d.alignCenter,"center"],[d.alignRight,"right"]],setup:function(a){var b=a.getAttribute("align");this.setValue(a.getStyle("text-align")||b||"")},commit:function(a){var b=this.getValue();b?a.setStyle("text-align",b):a.removeStyle("text-align");a.removeAttribute("align")}},{type:"select",id:"vAlign",label:c.vAlign,"default":"",items:[[d.notSet,""],[d.alignTop,"top"],[d.alignMiddle,"middle"],[d.alignBottom,
+"bottom"],[c.alignBaseline,"baseline"]],setup:function(a){var b=a.getAttribute("vAlign"),a=a.getStyle("vertical-align");switch(a){case "top":case "middle":case "bottom":case "baseline":break;default:a=""}this.setValue(a||b||"")},commit:function(a){var b=this.getValue();b?a.setStyle("vertical-align",b):a.removeStyle("vertical-align");a.removeAttribute("vAlign")}}]},e,{type:"vbox",padding:0,children:[{type:"select",id:"cellType",label:c.cellType,"default":"td",items:[[c.data,"td"],[c.header,"th"]],
+setup:function(a){this.setValue(a.getName())},commit:function(a){a.renameNode(this.getValue())}},e,{type:"text",id:"rowSpan",label:c.rowSpan,"default":"",validate:h.integer(c.invalidRowSpan),setup:function(a){(a=parseInt(a.getAttribute("rowSpan"),10))&&1!=a&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("rowSpan",this.getValue()):a.removeAttribute("rowSpan")}},{type:"text",id:"colSpan",label:c.colSpan,"default":"",validate:h.integer(c.invalidColSpan),
+setup:function(a){(a=parseInt(a.getAttribute("colSpan"),10))&&1!=a&&this.setValue(a)},commit:function(a){var b=parseInt(this.getValue(),10);b&&1!=b?a.setAttribute("colSpan",this.getValue()):a.removeAttribute("colSpan")}},e,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"bgColor",label:c.bgColor,"default":"",setup:function(a){var b=a.getAttribute("bgColor");this.setValue(a.getStyle("background-color")||b)},commit:function(a){this.getValue()?a.setStyle("background-color",this.getValue()):
+a.removeStyle("background-color");a.removeAttribute("bgColor")}},i?{type:"button",id:"bgColorChoose","class":"colorChooser",label:c.chooseColor,onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){f.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info","bgColor").setValue(a);this.focus()},this)}}:e]},e,{type:"hbox",padding:0,widths:["60%","40%"],children:[{type:"text",id:"borderColor",label:c.borderColor,"default":"",setup:function(a){var b=
+a.getAttribute("borderColor");this.setValue(a.getStyle("border-color")||b)},commit:function(a){this.getValue()?a.setStyle("border-color",this.getValue()):a.removeStyle("border-color");a.removeAttribute("borderColor")}},i?{type:"button",id:"borderColorChoose","class":"colorChooser",label:c.chooseColor,style:(k?"margin-right":"margin-left")+": 10px",onLoad:function(){this.getElement().getParent().setStyle("vertical-align","bottom")},onClick:function(){f.getColorFromDialog(function(a){a&&this.getDialog().getContentElement("info",
+"borderColor").setValue(a);this.focus()},this)}}:e]}]}]}]}],onShow:function(){this.cells=CKEDITOR.plugins.tabletools.getSelectedCells(this._.editor.getSelection());this.setupContent(this.cells[0])},onOk:function(){for(var a=this._.editor.getSelection(),b=a.createBookmarks(),c=this.cells,d=0;d<c.length;d++)this.commitContent(c[d]);this._.editor.forceNextSelectionCheck();a.selectBookmarks(b);this._.editor.selectionChange()}}});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/templates/dialogs/templates.css b/share/static/RichText/plugins/templates/dialogs/templates.css
new file mode 100644
index 0000000..e226d79
--- /dev/null
+++ b/share/static/RichText/plugins/templates/dialogs/templates.css
@@ -0,0 +1,84 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+.cke_tpl_list
+{
+ border: #dcdcdc 2px solid;
+ background-color: #ffffff;
+ overflow-y: auto;
+ overflow-x: hidden;
+ width: 100%;
+ height: 220px;
+}
+
+.cke_tpl_item
+{
+ margin: 5px;
+ padding: 7px;
+ border: #eeeeee 1px solid;
+ *width: 88%;
+}
+
+.cke_tpl_preview
+{
+ border-collapse: separate;
+ text-indent:0;
+ width: 100%;
+}
+.cke_tpl_preview td
+{
+ padding: 2px;
+ vertical-align: middle;
+}
+.cke_tpl_preview .cke_tpl_preview_img
+{
+ width: 100px;
+}
+.cke_tpl_preview span
+{
+ white-space: normal;
+}
+
+.cke_tpl_title
+{
+ font-weight: bold;
+}
+
+.cke_tpl_list a:hover .cke_tpl_item,
+.cke_tpl_list a:focus .cke_tpl_item,
+.cke_tpl_list a:active .cke_tpl_item
+{
+ border: #ff9933 1px solid;
+ background-color: #fffacd;
+}
+
+.cke_tpl_list a:hover *,
+.cke_tpl_list a:focus *,
+.cke_tpl_list a:active *
+{
+ cursor: pointer;
+}
+
+/* IE6 contextual selectors childs won't get :hover transition until,
+ the hover style of the link itself contains certain CSS declarations.*/
+.cke_browser_ie6 .cke_tpl_list a:active,
+.cke_browser_ie6 .cke_tpl_list a:hover,
+.cke_browser_ie6 .cke_tpl_list a:focus
+{
+ background-position: 0 0;
+}
+
+.cke_hc .cke_tpl_list a:hover .cke_tpl_item,
+.cke_hc .cke_tpl_list a:focus .cke_tpl_item,
+.cke_hc .cke_tpl_list a:active .cke_tpl_item
+{
+ border-width: 3px;
+}
+
+.cke_tpl_empty, .cke_tpl_loading
+{
+ text-align: center;
+ padding: 5px;
+}
diff --git a/share/static/RichText/plugins/templates/dialogs/templates.js b/share/static/RichText/plugins/templates/dialogs/templates.js
index e1124a2..390fdb6 100644
--- a/share/static/RichText/plugins/templates/dialogs/templates.js
+++ b/share/static/RichText/plugins/templates/dialogs/templates.js
@@ -1,7 +1,10 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-(function(){var a=CKEDITOR.document;CKEDITOR.dialog.add('templates',function(b){function c(i,j){i.setHtml('');for(var k=0;k<j.length;k++){var l=CKEDITOR.getTemplates(j[k]),m=l.imagesPath,n=l.templates,o=n.length;for(var p=0;p<o;p++){var q=n[p],r=d(q,m);r.setAttribute('aria-posinset',p+1);r.setAttribute('aria-setsize',o);i.append(r);}}};function d(i,j){var k=CKEDITOR.dom.element.createFromHtml('<a href="javascript:void(0)" tabIndex="-1" role="option" ><div class="cke_tpl_item"></div></a>'),l='<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';if(i.image&&j)l+='<td class="cke_tpl_preview_img"><img src="'+CKEDITOR.getUrl(j+i.image)+'"'+(CKEDITOR.env.ie6Compat?' onload="this.width=this.width"':'')+' alt="" title=""></td>';l+='<td style="white-space:normal;"><span class="cke_tpl_title">'+i.title+'</span><br/>';if(i.description)l+='<span>'+i.description+'</span>';l+='</td></tr></table>';k.getFirst().setHtml(l);k.on('click',function(){e(i.html);});return
k;};function e(i){var j=CKEDITOR.dialog.getCurrent(),k=j.getValueOf('selectTpl','chkInsertOpt');if(k){b.on('contentDom',function(l){l.removeListener();j.hide();var m=new CKEDITOR.dom.range(b.document);m.moveToElementEditStart(b.document.getBody());m.select(true);setTimeout(function(){b.fire('saveSnapshot');},0);});b.fire('saveSnapshot');b.setData(i);}else{b.insertHtml(i);j.hide();}};function f(i){var j=i.data.getTarget(),k=g.equals(j);if(k||g.contains(j)){var l=i.data.getKeystroke(),m=g.getElementsByTag('a'),n;if(m){if(k)n=m.getItem(0);else switch(l){case 40:n=j.getNext();break;case 38:n=j.getPrevious();break;case 13:case 32:j.fire('click');}if(n){n.focus();i.data.preventDefault();}}}};CKEDITOR.skins.load(b,'templates');var g,h='cke_tpl_list_label_'+CKEDITOR.tools.getNextNumber();return{title:b.lang.templates.title,minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:'selectTpl',label:b.lang.templates.title,elements:[{type:'vbox',padding:5,children:[{type:'html',html
:'<span>'+b.lang.templates.selectPromptMsg+'</span>'},{id:'templatesList',type:'html',focus:true,html:'<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="'+h+'">'+'<div class="cke_tpl_loading"><span></span></div>'+'</div>'+'<span class="cke_voice_label" id="'+h+'">'+b.lang.templates.options+'</span>'},{id:'chkInsertOpt',type:'checkbox',label:b.lang.templates.insertOption,'default':b.config.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var i=this.getContentElement('selectTpl','templatesList');
-g=i.getElement();CKEDITOR.loadTemplates(b.config.templates_files,function(){var j=b.config.templates.split(',');if(j.length){c(g,j);i.focus();}else g.setHtml('<div class="cke_tpl_empty"><span>'+b.lang.templates.emptyListMsg+'</span>'+'</div>');});this._.element.on('keydown',f);},onHide:function(){this._.element.removeListener('keydown',f);}};});})();
+(function(){CKEDITOR.dialog.add("templates",function(c){function o(a,b){var k=CKEDITOR.dom.element.createFromHtml('<a href="javascript:void(0)" tabIndex="-1" role="option" ><div class="cke_tpl_item"></div></a>'),d='<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';a.image&&b&&(d+='<td class="cke_tpl_preview_img"><img src="'+CKEDITOR.getUrl(b+a.image)+'"'+(CKEDITOR.env.ie6Compat?' onload="this.width=this.width"':"")+' alt="" title=""></td>');d+='<td style="white-space:normal;"><span class="cke_tpl_title">'+
+a.title+"</span><br/>";a.description&&(d+="<span>"+a.description+"</span>");k.getFirst().setHtml(d+"</td></tr></table>");k.on("click",function(){p(a.html)});return k}function p(a){var b=CKEDITOR.dialog.getCurrent();b.getValueOf("selectTpl","chkInsertOpt")?(c.fire("saveSnapshot"),c.setData(a,function(){b.hide();var a=c.createRange();a.moveToElementEditStart(c.editable());a.select();setTimeout(function(){c.fire("saveSnapshot")},0)})):(c.insertHtml(a),b.hide())}function i(a){var b=a.data.getTarget(),
+c=g.equals(b);if(c||g.contains(b)){var d=a.data.getKeystroke(),f=g.getElementsByTag("a"),e;if(f){if(c)e=f.getItem(0);else switch(d){case 40:e=b.getNext();break;case 38:e=b.getPrevious();break;case 13:case 32:b.fire("click")}e&&(e.focus(),a.data.preventDefault())}}}var h=CKEDITOR.plugins.get("templates");CKEDITOR.document.appendStyleSheet(CKEDITOR.getUrl(h.path+"dialogs/templates.css"));var g,h="cke_tpl_list_label_"+CKEDITOR.tools.getNextNumber(),f=c.lang.templates,l=c.config;return{title:c.lang.templates.title,
+minWidth:CKEDITOR.env.ie?440:400,minHeight:340,contents:[{id:"selectTpl",label:f.title,elements:[{type:"vbox",padding:5,children:[{id:"selectTplText",type:"html",html:"<span>"+f.selectPromptMsg+"</span>"},{id:"templatesList",type:"html",focus:!0,html:'<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="'+h+'"><div class="cke_tpl_loading"><span></span></div></div><span class="cke_voice_label" id="'+h+'">'+f.options+"</span>"},{id:"chkInsertOpt",type:"checkbox",label:f.insertOption,
+"default":l.templates_replaceContent}]}]}],buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var a=this.getContentElement("selectTpl","templatesList");g=a.getElement();CKEDITOR.loadTemplates(l.templates_files,function(){var b=(l.templates||"default").split(",");if(b.length){var c=g;c.setHtml("");for(var d=0,h=b.length;d<h;d++)for(var e=CKEDITOR.getTemplates(b[d]),i=e.imagesPath,e=e.templates,n=e.length,j=0;j<n;j++){var m=o(e[j],i);m.setAttribute("aria-posinset",j+1);m.setAttribute("aria-setsize",
+n);c.append(m)}a.focus()}else g.setHtml('<div class="cke_tpl_empty"><span>'+f.emptyListMsg+"</span></div>")});this._.element.on("keydown",i)},onHide:function(){this._.element.removeListener("keydown",i)}}})})();
\ No newline at end of file
diff --git a/share/static/RichText/plugins/templates/templates/default.js b/share/static/RichText/plugins/templates/templates/default.js
index 9ed80b0..51a4d9a 100644
--- a/share/static/RichText/plugins/templates/templates/default.js
+++ b/share/static/RichText/plugins/templates/templates/default.js
@@ -1,6 +1,6 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.addTemplates('default',{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath('templates')+'templates/images/'),templates:[{title:'Image and Title',image:'template1.gif',description:'One main image with a title and text that surround the image.',html:'<h3><img style="margin-right: 10px" height="100" width="100" align="left"/>Type the title here</h3><p>Type the text here</p>'},{title:'Strange Template',image:'template2.gif',description:'A template that defines two colums, each one with a title, and some text.',html:'<table cellspacing="0" cellpadding="0" style="width:100%" border="0"><tr><td style="width:50%"><h3>Title 1</h3></td><td></td><td style="width:50%"><h3>Title 2</h3></td></tr><tr><td>Text 1</td><td></td><td>Text 2</td></tr></table><p>More text goes here.</p>'},{title:'Text and Table',image:'template3.gif',description:'A title with some text and a table.',html:'<div style="width: 80%"><h3>Title goes here</h3><table style="width:150px;float: right" cellspacing=
"0" cellpadding="0" border="1"><caption style="border:solid 1px black"><strong>Table title</strong></caption></tr><tr><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td></tr></table><p>Type the text here</p></div>'}]});
+CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'<h3><img style="margin-right: 10px" height="100" width="100" align="left"/>Type the title here</h3><p>Type the text here</p>'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.",
+html:'<table cellspacing="0" cellpadding="0" style="width:100%" border="0"><tr><td style="width:50%"><h3>Title 1</h3></td><td></td><td style="width:50%"><h3>Title 2</h3></td></tr><tr><td>Text 1</td><td></td><td>Text 2</td></tr></table><p>More text goes here.</p>'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'<div style="width: 80%"><h3>Title goes here</h3><table style="width:150px;float: right" cellspacing="0" cellpadding="0" border="1"><caption style="border:solid 1px black"><strong>Table title</strong></caption></tr><tr><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td></tr></table><p>Type the text here</p></div>'}]});
\ No newline at end of file
diff --git a/share/static/RichText/plugins/uicolor/dialogs/uicolor.js b/share/static/RichText/plugins/uicolor/dialogs/uicolor.js
deleted file mode 100644
index 563e8c9..0000000
--- a/share/static/RichText/plugins/uicolor/dialogs/uicolor.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.dialog.add('uicolor',function(a){var b,c,d,e=a.getUiColor(),f='cke_uicolor_picker'+CKEDITOR.tools.getNextNumber();function g(j){if(/^#/.test(j))j=window.YAHOO.util.Color.hex2rgb(j.substr(1));c.setValue(j,true);c.refresh(f);};function h(j,k){if(k||b._.contents.tab1.livePeview.getValue())a.setUiColor(j);b._.contents.tab1.configBox.setValue('config.uiColor = "#'+c.get('hex')+'"');};d={id:'yuiColorPicker',type:'html',html:"<div id='"+f+"' class='cke_uicolor_picker' style='width: 360px; height: 200px; position: relative;'></div>",onLoad:function(j){var k=CKEDITOR.getUrl('plugins/uicolor/yui/');c=new window.YAHOO.widget.ColorPicker(f,{showhsvcontrols:true,showhexcontrols:true,images:{PICKER_THUMB:k+'assets/picker_thumb.png',HUE_THUMB:k+'assets/hue_thumb.png'}});if(e)g(e);c.on('rgbChange',function(){b._.contents.tab1.predefined.setValue('');h('#'+c.get('hex'));});var l=new CKEDITOR.dom.nodeList(c.getElementsByTagName('input'));for(var m=0;m<l.count();m++)l.getItem(m).addCl
ass('cke_dialog_ui_input_text');}};var i=true;return{title:a.lang.uicolor.title,minWidth:360,minHeight:320,onLoad:function(){b=this;this.setupContent();if(CKEDITOR.env.ie7Compat)b.parts.contents.setStyle('overflow','hidden');},contents:[{id:'tab1',label:'',title:'',expand:true,padding:0,elements:[d,{id:'tab1',type:'vbox',children:[{id:'livePeview',type:'checkbox',label:a.lang.uicolor.preview,'default':1,onLoad:function(){i=true;},onChange:function(){if(i)return;var j=this.getValue(),k=j?'#'+c.get('hex'):e;h(k,true);}},{type:'hbox',children:[{id:'predefined',type:'select','default':'',label:a.lang.uicolor.predefined,items:[[''],['Light blue','#9AB8F3'],['Sand','#D2B48C'],['Metallic','#949AAA'],['Purple','#C2A3C7'],['Olive','#A2C980'],['Happy green','#9BD446'],['Jezebel Blue','#14B8C4'],['Burn','#FF893A'],['Easy red','#FF6969'],['Pisces 3','#48B4F2'],['Aquarius 5','#487ED4'],['Absinthe','#A8CF76'],['Scrambled Egg','#C7A622'],['Hello monday','#8E8D80'],['Lovely sunshine','#F1E8
B1'],['Recycled air','#B3C593'],['Down','#BCBCA4'],['Mark Twain','#CFE91D'],['Specks of dust','#D1B596'],['Lollipop','#F6CE23']],onChange:function(){var j=this.getValue();if(j){g(j);h(j);CKEDITOR.document.getById('predefinedPreview').setStyle('background',j);}else CKEDITOR.document.getById('predefinedPreview').setStyle('background','');},onShow:function(){var j=a.getUiColor();if(j)this.setValue(j);}},{id:'predefinedPreview',type:'html',html:'<div id="cke_uicolor_preview" style="border: 1px solid black; padding: 3px; width: 30px;"><div id="predefinedPreview" style="width: 30px; height: 30px;"> </div></div>'}]},{id:'configBox',type:'text',label:a.lang.uicolor.config,onShow:function(){var j=a.getUiColor();
-if(j)this.setValue('config.uiColor = "'+j+'"');}}]}]}],buttons:[CKEDITOR.dialog.okButton]};});
diff --git a/share/static/RichText/plugins/uicolor/lang/en.js b/share/static/RichText/plugins/uicolor/lang/en.js
deleted file mode 100644
index e8c8515..0000000
--- a/share/static/RichText/plugins/uicolor/lang/en.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.setLang('uicolor','en',{uicolor:{title:'UI Color Picker',preview:'Live preview',config:'Paste this string into your config.js file',predefined:'Predefined color sets'}});
diff --git a/share/static/RichText/plugins/uicolor/plugin.js b/share/static/RichText/plugins/uicolor/plugin.js
deleted file mode 100644
index 403ecaa..0000000
--- a/share/static/RichText/plugins/uicolor/plugin.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.plugins.add('uicolor',{requires:['dialog'],lang:['en'],init:function(a){if(CKEDITOR.env.ie6Compat)return;a.addCommand('uicolor',new CKEDITOR.dialogCommand('uicolor'));a.ui.addButton('UIColor',{label:a.lang.uicolor.title,command:'uicolor',icon:this.path+'uicolor.gif'});CKEDITOR.dialog.add('uicolor',this.path+'dialogs/uicolor.js');CKEDITOR.scriptLoader.load(CKEDITOR.getUrl('plugins/uicolor/yui/yui.js'));a.element.getDocument().appendStyleSheet(CKEDITOR.getUrl('plugins/uicolor/yui/assets/yui.css'));}});
diff --git a/share/static/RichText/plugins/uicolor/uicolor.gif b/share/static/RichText/plugins/uicolor/uicolor.gif
deleted file mode 100644
index ec33de6..0000000
Binary files a/share/static/RichText/plugins/uicolor/uicolor.gif and /dev/null differ
diff --git a/share/static/RichText/plugins/uicolor/yui/assets/hue_bg.png b/share/static/RichText/plugins/uicolor/yui/assets/hue_bg.png
deleted file mode 100644
index d9bcdeb..0000000
Binary files a/share/static/RichText/plugins/uicolor/yui/assets/hue_bg.png and /dev/null differ
diff --git a/share/static/RichText/plugins/uicolor/yui/assets/hue_thumb.png b/share/static/RichText/plugins/uicolor/yui/assets/hue_thumb.png
deleted file mode 100644
index 14d5db4..0000000
Binary files a/share/static/RichText/plugins/uicolor/yui/assets/hue_thumb.png and /dev/null differ
diff --git a/share/static/RichText/plugins/uicolor/yui/assets/picker_mask.png b/share/static/RichText/plugins/uicolor/yui/assets/picker_mask.png
deleted file mode 100644
index f8d9193..0000000
Binary files a/share/static/RichText/plugins/uicolor/yui/assets/picker_mask.png and /dev/null differ
diff --git a/share/static/RichText/plugins/uicolor/yui/assets/picker_thumb.png b/share/static/RichText/plugins/uicolor/yui/assets/picker_thumb.png
deleted file mode 100644
index 78445a2..0000000
Binary files a/share/static/RichText/plugins/uicolor/yui/assets/picker_thumb.png and /dev/null differ
diff --git a/share/static/RichText/plugins/uicolor/yui/assets/yui.css b/share/static/RichText/plugins/uicolor/yui/assets/yui.css
deleted file mode 100644
index c63ce7c..0000000
--- a/share/static/RichText/plugins/uicolor/yui/assets/yui.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.yui-h-slider,.yui-v-slider{position:relative;}.yui-h-slider .yui-slider-thumb,.yui-v-slider .yui-slider-thumb{position:absolute;cursor:default;}.yui-skin-sam .yui-h-slider{background:url(bg-h.gif) no-repeat 5px 0;height:28px;width:228px;}.yui-skin-sam .yui-h-slider .yui-slider-thumb{top:4px;}.yui-skin-sam .yui-v-slider{background:url(bg-v.gif) no-repeat 12px 0;height:228px;width:48px;}.cke_uicolor_picker .yui-picker-panel{background:#e3e3e3;border-color:#888;}.cke_uicolor_picker .yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.cke_uicolor_picker .yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.cke_uicolor_picker .yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.cke_uicolor_picker .yui-picker{position:relative;}.cke_uicolor_picker .yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolu
te;}.cke_uicolor_picker .yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.cke_uicolor_picker .yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .cke_uicolor_picker .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='picker_mask.png',sizingMethod='scale');}.cke_uicolor_picker .yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.cke_uicolor_picker .yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.cke_uicolor_picker .yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.cke_uicolor_picker .yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.cke
_uicolor_picker .yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.cke_uicolor_picker .yui-picker-controls .hd{background:transparent;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls .bd{height:100px;border-width:0!important;}.cke_uicolor_picker .yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.cke_uicolor_picker .yui-picker-controls li{padding:2px;list-style:none;margin:0;}.cke_uicolor_picker .yui-picker-controls input{font-size:.85em;width:2.4em;}.cke_uicolor_picker .yui-picker-hex-controls{clear:both;padding:2px;}.cke_uicolor_picker .yui-picker-hex-controls input{width:4.6em;}.cke_uicolor_picker .yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;}
diff --git a/share/static/RichText/plugins/uicolor/yui/yui.js b/share/static/RichText/plugins/uicolor/yui/yui.js
deleted file mode 100644
index 6ddd12b..0000000
--- a/share/static/RichText/plugins/uicolor/yui/yui.js
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/*jsl:ignoreall*/
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:0},B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B
.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=A[0];}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}A=B.match(/Caja\/([^\s]*)/);if(A&&A[1]){C.caja=parseFloat(A[1]);}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,F="[object Array]",C="[object Function]",A=Object.prototype,E=["toString","valueOf"
],D={isArray:function(G){return A.toString.apply(G)===F;},isBoolean:function(G){return typeof G==="boolean";},isFunction:function(G){return A.toString.apply(G)===C;},isNull:function(G){return G===null;},isNumber:function(G){return typeof G==="number"&&isFinite(G);},isObject:function(G){return(G&&(typeof G==="object"||B.isFunction(G)))||false;},isString:function(G){return typeof G==="string";},isUndefined:function(G){return typeof G==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(I,H){var G,K,J;for(G=0;G<E.length;G=G+1){K=E[G];J=H[K];if(B.isFunction(J)&&J!=A[K]){I[K]=J;}}}:function(){},extend:function(J,K,I){if(!K||!J){throw new Error("extend failed, please check that "+"all dependencies are included.");}var H=function(){},G;H.prototype=K.prototype;J.prototype=new H();J.prototype.constructor=J;J.superclass=K.prototype;if(K.prototype.constructor==A.constructor){K.prototype.constructor=K;}if(I){for(G in I){if(B.hasOwnProperty(I,G)){J.prototype[G]=I[G];}}B._IEEnumFix(J.pro
totype,I);}},augmentObject:function(K,J){if(!J||!K){throw new Error("Absorb failed, verify dependencies.");}var G=arguments,I,L,H=G[2];if(H&&H!==true){for(I=2;I<G.length;I=I+1){K[G[I]]=J[G[I]];}}else{for(L in J){if(H||!(L in K)){K[L]=J[L];}}B._IEEnumFix(K,J);}},augmentProto:function(J,I){if(!I||!J){throw new Error("Augment failed, verify dependencies.");}var G=[J.prototype,I.prototype],H;for(H=2;H<arguments.length;H=H+1){G.push(arguments[H]);}B.augmentObject.apply(this,G);},dump:function(G,L){var I,K,N=[],O="{...}",H="f(){...}",M=", ",J=" => ";if(!B.isObject(G)){return G+"";}else{if(G instanceof Date||("nodeType" in G&&"tagName" in G)){return G;}else{if(B.isFunction(G)){return H;}}}L=(B.isNumber(L))?L:3;if(B.isArray(G)){N.push("[");for(I=0,K=G.length;I<K;I=I+1){if(B.isObject(G[I])){N.push((L>0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}if(N.length>1){N.pop();}N.push("]");}else{N.push("{");for(I in G){if(B.hasOwnProperty(G,I)){N.push(I+J);if(B.isObject(G[I])){N.push(
(L>0)?B.dump(G[I],L-1):O);}else{N.push(G[I]);}N.push(M);}}if(N.length>1){N.pop();}N.push("}");}return N.join("");},substitute:function(V,H,O){var L,K,J,R,S,U,Q=[],I,M="dump",P=" ",G="{",T="}",N;for(;;){L=V.lastIndexOf(G);if(L<0){break;}K=V.indexOf(T,L);if(L+1>=K){break;}I=V.substring(L+1,K);R=I;U=null;J=R.indexOf(P);if(J>-1){U=R.substring(J+1);R=R.substring(0,J);}S=H[R];if(O){S=O(R,S,U);}if(B.isObject(S)){if(B.isArray(S)){S=B.dump(S,parseInt(U,10));}else{U=U||"";N=U.indexOf(M);if(N>-1){U=U.substring(4);}if(S.toString===A.toString||N>-1){S=B.dump(S,parseInt(U,10));}else{S=S.toString();}}}else{if(!B.isString(S)&&!B.isNumber(S)){S="~-"+Q.length+"-~";Q[Q.length]=I;}}V=V.substring(0,L)+S+V.substring(K+1);}for(L=Q.length-1;L>=0;L=L-1){V=V.replace(new RegExp("~-"+L+"-~"),"{"+Q[L]+"}","g");}return V;},trim:function(G){try{return G.replace(/^\s+|\s+$/g,"");}catch(H){return G;}},merge:function(){var J={},H=arguments,G=H.length,I;for(I=0;I<G;I=I+1){B.augmentObject(J,H[I],true);}return
J;},later:function(N,H,O,J,K){N=N||0;H=H||{};var I=O,M=J,L,G;if(B.isString(O)){I=H[O];}if(!I){throw new TypeError("method undefined");}if(!B.isArray(M)){M=[J];}L=function(){I.apply(H,M);};G=(K)?setInterval(L,N):setTimeout(L,N);return{interval:K,cancel:function(){if(this.interval){clearInterval(G);}else{clearTimeout(G);}}};},isValue:function(G){return(B.isObject(G)||B.isString(G)||B.isNumber(G)||B.isBoolean(G));}};B.hasOwnProperty=(A.hasOwnProperty)?function(G,H){return G&&G.hasOwnProperty(H);}:function(G,H){return !B.isUndefined(G[H])&&G.constructor.prototype[H]!==G[H];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.7.0",build:"1796"});(function(){YAHOO.env._id_counter=YAHOO.env._id_counter||0;var E=YAHOO.util,L=YAHOO.lang,m=YAHOO.env.ua,A=YAHOO.lang.trim,d={},h={},N=/^t(?:able|d|h)$/i,X=/color$/i,K=window.document,W=K.documentElement,e="ownerDocument",n="d
efaultView",v="documentElement",t="compatMode",b="offsetLeft",P="offsetTop",u="offsetParent",Z="parentNode",l="nodeType",C="tagName",O="scrollLeft",i="scrollTop",Q="getBoundingClientRect",w="getComputedStyle",a="currentStyle",M="CSS1Compat",c="BackCompat",g="class",F="className",J="",B=" ",s="(?:^|\\s)",k="(?= |$)",U="g",p="position",f="fixed",V="relative",j="left",o="top",r="medium",q="borderLeftWidth",R="borderTopWidth",D=m.opera,I=m.webkit,H=m.gecko,T=m.ie;E.Dom={CUSTOM_ATTRIBUTES:(!W.hasAttribute)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},get:function(y){var AA,Y,z,x,G;if(y){if(y[l]||y.item){return y;}if(typeof y==="string"){AA=y;y=K.getElementById(y);if(y&&y.id===AA){return y;}else{if(y&&K.all){y=null;Y=K.all[AA];for(x=0,G=Y.length;x<G;++x){if(Y[x].id===AA){return Y[x];}}}}return y;}if(y.DOM_EVENTS){y=y.get("element");}if("length" in y){z=[];for(x=0,G=y.length;x<G;++x){z[z.length]=E.Dom.get(y[x]);}return z;}return y;}return null;},getComputedStyle:func
tion(G,Y){if(window[w]){return G[e][n][w](G,null)[Y];}else{if(G[a]){return E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){return function(G,y){y=(y==="float")?y="cssFloat":E.Dom._toCamel(y);var x=G.style[y],Y;if(!x){Y=G[e][n][w](G,null);if(Y){x=Y[y];}}return x;};}else{if(W[a]){return function(G,y){var x;switch(y){case"opacity":x=100;try{x=G.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(z){try{x=G.filters("alpha").opacity;}catch(Y){}}return x/100;case"float":y="styleFloat";default:y=E.Dom._toCamel(y);x=G[a]?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.Dom.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){switch(x){case"opacity":if(L.isString(Y.style.filter)){Y.style.filter="alpha(opacity="+y*100+")";if(!Y[a]||!Y[a].hasLayout){Y.style.zoom=1;}}break;case"float":x="style
Float";default:Y.style[x]=y;}}else{}};}else{return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){if(x=="float"){x="cssFloat";}Y.style[x]=y;}else{}};}}(),getXY:function(G){return E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getStyle(G,"display")!=="none"&&E.Dom._inDoc(G));},_getXY:function(){if(K[v][Q]){return function(y){var z,Y,AA,AF,AE,AD,AC,G,x,AB=Math.floor,AG=false;if(E.Dom._canPosition(y)){AA=y[Q]();AF=y[e];z=E.Dom.getDocumentScrollLeft(AF);Y=E.Dom.getDocumentScrollTop(AF);AG=[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=2;AD=2;AC=AF[t];G=S(AF[v],q);x=S(AF[v],R);if(m.ie===6){if(AC!==c){AE=0;AD=0;}}if((AC==c)){if(G!==r){AE=parseInt(G,10);}if(x!==r){AD=parseInt(x,10);}}AG[0]-=AE;AG[1]-=AD;}if((Y||z)){AG[0]+=z;AG[1]+=Y;}AG[0]=AB(AG[0]);AG[1]=AB(AG[1]);}else{}return AG;};}else{return function(y){var x,Y,AA,AB,AC,z=false,G=y;if(E.Dom._canPosition(y)){z=[y[b],y[P]];x=E.Dom.getDocumentScrollLeft(y[e]);Y=E.Dom.getDocumentScrollTop(y[e]);AC=((H||m.we
bkit>519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b
];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AB=L.trim(AB);AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=G[y];}}if(AE){E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return E.Dom.batch(Y,E.Dom._hasClass,G);},
_hasClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom.getAttribute(x,F)||J;if(Y.exec){G=Y.test(y);}else{G=Y&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom.getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom.getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom.getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom.getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});
-},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom.getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return
G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z<AA;++z){if(Y(G[z])){if(AE){x=G[z];break;}else{x[x.length]=G[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return x;},getElementBy:function(x,G,Y){return E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z){var y=[],Y=(z)?AA:window;x=(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB){if(x[C]||x.length===undefined){return AB.call(Y,x,AA);}for(var G=0;G<x.length;++G){y[y.length]=AB.call(Y,x[G],AA);}}else{return false;}return y;},getDocumentHeight:function(){var Y=(K[t]!=M||I)?K.body.scrollHeight:W.scrollHeight,G=Math.max(Y,E.Dom.getViewportHeight());return G;},getDocumentWidth:function(){var Y=(K[t]!=M||I)?K.body.scrollWidth:W.scrollWidth,G=Math.max(Y,E.Dom.getViewportWidth());return G;},getViewportHeight:function(){var G=self.innerHeight,Y=K[t];if((Y||T)&&!D){G=(Y==M)?W.clientHeight:K.body.clientHeigh
t;}return G;},getViewportWidth:function(){var G=self.innerWidth,Y=K[t];if(Y||T){G=(Y==M)?W.clientWidth:K.body.clientWidth;}return G;},getAncestorBy:function(G,Y){while((G=G[Z])){if(E.Dom._testElement(G,Y)){return G;}}return null;},getAncestorByClassName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return E.Dom.hasClass(y,G);};return E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return y[C]&&y[C].toUpperCase()==G.toUpperCase();};return E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getPreviousSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=G.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getNextSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getNextSiblingBy(G);},getF
irstChildBy:function(G,x){var Y=(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return null;}var Y=(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=E.Dom.get(G);return E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var x=E.Dom.getFirstChildBy(Y,y),G=x?[x]:[];E.Dom.getNextSiblingBy(x,function(z){if(!y||y(z)){G[G.length]=z;}return false;});return G;},getChildren:function(G){G=E.Dom.get(G);if(!G){}return E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=G||K;return Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:function(G){G=G||K;return Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}ret
urn G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return G[Z].insertBefore(Y,G.nextSibling);}else{return G[Z].appendChild(Y);}},getClientRegion:function(){var x=E.Dom.getDocumentScrollTop(),Y=E.Dom.getDocumentScrollLeft(),y=E.Dom.getViewportWidth()+Y,G=E.Dom.getViewportHeight()+x;return new E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;Y.setAttribute(G,x);},getAttribute:function(Y,G){G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;return Y.getAttribute(G);},_toCamel:function(Y){var x=d;function G(y,z){return z.toUpperCase();}return x[Y]||(x[Y]=Y.indexOf("-")===-1?Y:Y.replace(/-([a-z])/gi,G));},_getClassRegex:function(Y){var G;if(Y!==undefined){if(Y.exec){G=Y;}else{G=h[Y];if(!G){Y=Y.replace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=h[Y]=new RegExp(s+Y+k,U);}}}return G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\?\|\[\]\{\}])/g},_testElement:functio
n(G,Y){return G&&G[l]==1&&(!Y||Y(G));},_calcBorders:function(x,y){var Y=parseInt(E.Dom[w](x,R),10)||0,G=parseInt(E.Dom[w](x,q),10)||0;if(H){if(N.test(x[C])){Y=0;G=0;}}y[0]+=G;y[1]+=Y;return y;}};var S=E.Dom[w];if(m.opera){E.Dom[w]=function(Y,G){var x=S(Y,G);if(X.test(G)){x=E.Dom.Color.toRGB(x);}return x;};}if(m.webkit){E.Dom[w]=function(Y,G){var x=S(Y,G);if(x==="rgba(0, 0, 0, 0)"){x="transparent";}return x;};}})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this.y=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this.x=B;this[0]=B;this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bo
ttom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);
-}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWi
dth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,
b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuch
sia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.7.0",build:"1796"});YAHOO.util.CustomEvent=function(D,C,B,A){this.type=D;this.scope=C||window;this.silent=B;this.signature=A||YAHO
O.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(A,B,C){if(!A){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(A,B,C);}this.subscribers.push(new YAHOO.util.Subscriber(A,B,C));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!th
is.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.conta
ins=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(S,O,Q,R,P){var M=(YAHOO.lang.isString(S))?[S]:S;for(va
r N=0;N<M.length;N=N+1){F.push({id:M[N],fn:O,obj:Q,overrideContext:R,checkReady:P});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(P,M,N,O){this.onAvailable(P,M,N,O,true);},onDOMReady:function(M,N,O){if(this.DOMReady){setTimeout(function(){var P=window;if(O){if(O===true){P=N;}else{P=O;}}M.call(P,"DOMReady",[],N);},0);}else{this.DOMReadyEvent.subscribe(M,N,O);}},_addListener:function(O,M,Y,S,W,b){if(!Y||!Y.call){return false;}if(this._isValidCollection(O)){var Z=true;for(var T=0,V=O.length;T<V;++T){Z=this.on(O[T],M,Y,S,W)&&Z;}return Z;}else{if(YAHOO.lang.isString(O)){var R=this.getEl(O);if(R){O=R;}else{this.onAvailable(O,function(){YAHOO.util.Event.on(O,M,Y,S,W);});return true;}}}if(!O){return false;}if("unload"==M&&S!==this){J[J.length]=[O,M,Y,S,W];return true;}var N=O;if(W){if(W===true){N=S;}else{N=W;}}var P=function(c){return Y.call(N,YAHOO.util.Event.getEvent(c,O),S);};var a=[O,M,Y,P,N,S,W];var U=I.length;I[U]=a;if(this.useLegacyEvent(O,M)){var Q=this.
getLegacyIndex(O,M);if(Q==-1||O!=G[Q][0]){Q=G.length;B[O.id+M]=Q;G[Q]=[O,M,O["on"+M]];E[Q]=[];O["on"+M]=function(c){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(c),Q);};}E[Q].push(a);}else{try{this._simpleAdd(O,M,P,b);}catch(X){this.lastError=X;this.removeListener(O,M,Y);return false;}}return true;},addListener:function(N,Q,M,O,P){return this._addListener(N,Q,M,O,P,false);},addFocusListener:function(N,M,O,P){return this._addListener(N,K,M,O,P,true);},removeFocusListener:function(N,M){return this.removeListener(N,K,M);},addBlurListener:function(N,M,O,P){return this._addListener(N,L,M,O,P,true);},removeBlurListener:function(N,M){return this.removeListener(N,L,M);},fireLegacyEvent:function(R,P){var T=true,M,V,U,N,S;V=E[P].slice();for(var O=0,Q=V.length;O<Q;++O){U=V[O];if(U&&U[this.WFN]){N=U[this.ADJ_SCOPE];S=U[this.WFN].call(N,R);T=(T&&S);}}M=G[P];if(M&&M[2]){M[2](R);}return T;},getLegacyIndex:function(N,O){var M=this.generateId(N)+O;if(typeof B[M]=="undefined"){r
eturn -1;}else{return B[M];}},useLegacyEvent:function(M,N){return(this.webkit&&this.webkit<419&&("click"==N||"dblclick"==N));},removeListener:function(N,M,V){var Q,T,X;if(typeof N=="string"){N=this.getEl(N);}else{if(this._isValidCollection(N)){var W=true;for(Q=N.length-1;Q>-1;Q--){W=(this.removeListener(N[Q],M,V)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[3];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q<T;++Q){X=O[Q];if(X&&X[this.EL]==N&&X[this.TYPE]==M&&X[this.FN]==V){O.splice(Q,1);break;}}}}else{try{this._simpleRemove(N,M,R[this.WFN],false);}catch(U){this.lastError=U;return false;}}delete I[S][this.WFN];delete I[S][this.FN];
-I.splice(S,1);return true;},getTarget:function(O,N){var M=O.target||O.srcElement;return this.resolveTextNode(M);},resolveTextNode:function(N){try{if(N&&3==N.nodeType){return N.parentNode;}}catch(M){}return N;},getPageX:function(N){var M=N.pageX;if(!M&&0!==M){M=N.clientX||0;if(this.isIE){M+=this._getScrollLeft();}}return M;},getPageY:function(M){var N=M.pageY;if(!N&&0!==N){N=M.clientY||0;if(this.isIE){N+=this._getScrollTop();}}return N;},getXY:function(M){return[this.getPageX(M),this.getPageY(M)];},getRelatedTarget:function(N){var M=N.relatedTarget;if(!M){if(N.type=="mouseout"){M=N.toElement;}else{if(N.type=="mouseover"){M=N.fromElement;}}}return this.resolveTextNode(M);},getTime:function(O){if(!O.time){var N=new Date().getTime();try{O.time=N;}catch(M){this.lastError=M;return N;}}return O.time;},stopEvent:function(M){this.stopPropagation(M);this.preventDefault(M);},stopPropagation:function(M){if(M.stopPropagation){M.stopPropagation();}else{M.cancelBubble=true;}},preventDefaul
t:function(M){if(M.preventDefault){M.preventDefault();}else{M.returnValue=false;}},getEvent:function(O,M){var N=O||window.event;if(!N){var P=this.getEvent.caller;while(P){N=P.arguments[0];if(N&&Event==N.constructor){break;}P=P.caller;}}return N;},getCharCode:function(N){var M=N.keyCode||N.charCode||0;if(YAHOO.env.ua.webkit&&(M in D)){M=D[M];}return M;},_getCacheIndex:function(Q,R,P){for(var O=0,N=I.length;O<N;O=O+1){var M=I[O];if(M&&M[this.FN]==P&&M[this.EL]==Q&&M[this.TYPE]==R){return O;}}return -1;},generateId:function(M){var N=M.id;if(!N){N="yuievtautoid-"+A;++A;M.id=N;}return N;},_isValidCollection:function(N){try{return(N&&typeof N!=="string"&&N.length&&!N.tagName&&!N.alert&&typeof N[0]!=="undefined");}catch(M){return false;}},elCache:{},getEl:function(M){return(typeof M==="string")?document.getElementById(M):M;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(N){if(!H){H=true;var M=YAHOO.util.Event;M._ready();M._tryPrelo
adAttach();}},_ready:function(N){var M=YAHOO.util.Event;if(!M.DOMReady){M.DOMReady=true;M.DOMReadyEvent.fire();M._simpleRemove(document,"DOMContentLoaded",M._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;if(this._interval){clearInterval(this._interval);this._interval=null;}return;}if(this.locked){return;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.locked=true;var S=!H;if(!S){S=(C>0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.overrideContext){if(W.overrideContext===true){U=W.obj;}else{U=W.overrideContext;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N<M;N=N+1){Q=F[N];if(Q){P=this.getEl(Q.id);if(P){if(Q.checkReady){if(H||P.nextSibling||!S){O.push(Q);F[N]=null;}}else{T(P,Q);F[N]=null;}}else{R.push(Q);}}}for(N=0,M=O.length;N<M;N=N+1){Q=O[N];T(this.getEl(Q.id),Q);}C--;if(S){for(N=F.length-1;N>-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{if(this._interval){clearInterval(this._interval);this._
interval=null;}}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this.removeListener(O,N.type,N.fn);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P<M;++P){this.purgeElement(O.childNodes[P],R,T);}}},getListeners:function(O,M){var R=[],N;if(!M){N=[I,J];}else{if(M==="unload"){N=[J];}else{N=[I];}}var T=(YAHOO.lang.isString(O))?this.getEl(O):O;for(var Q=0;Q<N.length;Q=Q+1){var V=N[Q];if(V){for(var S=0,U=V.length;S<U;++S){var P=V[S];if(P&&P[this.EL]===T&&(!M||M===P[this.TYPE])){R.push({type:P[this.TYPE],fn:P[this.FN],obj:P[this.OBJ],adjust:P[this.OVERRIDE],scope:P[this.ADJ_SCOPE],index:S});}}}}return(R.length)?R:null;},_unload:function(T){var N=YAHOO.util.Event,Q,P,O,S,R,U=J.slice(),M;for(Q=0,S=J.length;Q<S;++Q){O=U[Q];if(O){M=window;if(O[N.ADJ_SCOPE]){if(O[N.ADJ_SCOPE]===true){M=O[N.UNLOAD_OBJ];}else{M=O[N.ADJ_SCOPE];}}O[N.FN].call(M,N.getEvent(T,O[
N.EL]),O[N.UNLOAD_OBJ]);U[Q]=null;}}O=null;M=null;J=null;if(I){for(P=I.length-1;P>-1;P--){O=I[P];if(O){N.removeListener(O[N.EL],O[N.TYPE],O[N.FN],P);}}O=null;}G=null;N._simpleRemove(window,"unload",N._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}(
);(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
-/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
-if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);
-}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].overrideContext);}}}return I[G];},fireEvent:function(E,D,A,C){th
is.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(
J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.7.0",build:"1796"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.7.0", build: "1796"});
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom;return{useShim:false,_shimActive:false,_shimState:false,_debugShim:false,_createShim:function(){var C=document.createElement("div");C.id="yui-ddm-shim";if(document.body.firstChild){document.body.insertBefore(C,document.body.firstChild);}else{document.body.appendChild(C);}C.style.display="none";C.style.backgroundColor="red";C.style.position="absolute";C.style.zIndex="99999";B.setStyle(C,"opacity","0");this._shim=C;A.on(C,"mouseup",this.handleMouseUp,this,true);A.on(C,"mousemove",this.handleMouseMove,this,true);A.on(window,"scroll",this._sizeShim,this,true);},_sizeShim:function(){if(this._shimActive){var C=this._shim;C.style.height=B.getDocumentHeight()+"px";C.style.width=B.getDocumentWidth()+"px";C.style.top="0";C.style.left="0";}},_activateShim:function(){if(this.useShim){if(!this._shim){this._createShim();}this._shimActive=true;var C=this._shim,D="0";if(this._debugShim){D="
.5";}B.setStyle(C,"opacity",D);this._sizeShim();C.style.display="block";}},_deactivateShim:function(){this._shim.style.display="none";this._shimActive=false;},_shim:null,ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(E,D){for(var F in this.ids){for(var C in this.ids[F]){var G=this.ids[F][C];if(!this.isTypeOfDD(G)){continue;}G[E].apply(G,D);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(C){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locatio
nCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(D,C){if(!this.initialized){this.init();}if(!this.ids[C]){this.ids[C]={};}this.ids[C][D.id]=D;},removeDDFromGroup:function(E,C){if(!this.ids[C]){this.ids[C]={};}var D=this.ids[C];if(D&&D[E.id]){delete D[E.id];}},_remove:function(E){for(var D in E.groups){if(D){var C=this.ids[D];if(C&&C[E.id]){delete C[E.id];}}}delete this.handleIds[E.id];},regHandle:function(D,C){if(!this.handleIds[D]){this.handleIds[D]={};}this.handleIds[D][C]=C;},isDragDrop:function(C){return(this.getDDById(C))?true:false;},getRelated:function(H,D){var G=[];for(var F in H.groups){for(var E in this.ids[F]){var C=this.ids[F][E];if(!this.isTypeOfDD(C)){continue;}if(!D||C.isTarget){G[G.length]=C;}}}return G;},isLegalTarget:function(G,F){var D=this.getRelated(G,true);for(var E=0,C=D.length;E<C;++E){if(D[E].id==F.id){return true;}}return false;},isTypeOfDD:
function(C){return(C&&C.__ygDragDrop);},isHandle:function(D,C){return(this.handleIds[D]&&this.handleIds[D][C]);},getDDById:function(D){for(var C in this.ids){if(this.ids[C][D]){return this.ids[C][D];}}return null;},handleMouseDown:function(E,D){this.currentTarget=YAHOO.util.Event.getTarget(E);this.dragCurrent=D;var C=D.getEl();this.startX=YAHOO.util.Event.getPageX(E);this.startY=YAHOO.util.Event.getPageY(E);this.deltaX=this.startX-C.offsetLeft;this.deltaY=this.startY-C.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var F=YAHOO.util.DDM;F.startDrag(F.startX,F.startY);F.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(C,E){if(this.dragCurrent&&this.dragCurrent.useShim){this._shimState=this.useShim;this.useShim=true;}this._activateShim();clearTimeout(this.clickTimeout);var D=this.dragCurrent;if(D&&D.events.b4StartDrag){D.b4StartDrag(C,E);D.fireEvent("b4StartDragEvent",{x:C,y:E});}if(D&&D.events.startDrag){D.startDrag(C,E);D.fireEvent("st
artDragEvent",{x:C,y:E});}this.dragThreshMet=true;},handleMouseUp:function(C){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.fromTimeout=false;this.handleMouseMove(C);}this.fromTimeout=false;this.fireEvents(C,true);}else{}this.stopDrag(C);this.stopEvent(C);}},stopEvent:function(C){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(C);}if(this.preventDefault){YAHOO.util.Event.preventDefault(C);}},stopDrag:function(E,D){var C=this.dragCurrent;if(C&&!D){if(this.dragThreshMet){if(C.events.b4EndDrag){C.b4EndDrag(E);C.fireEvent("b4EndDragEvent",{e:E});}if(C.events.endDrag){C.endDrag(E);C.fireEvent("endDragEvent",{e:E});}}if(C.events.mouseUp){C.onMouseUp(E);C.fireEvent("mouseUpEvent",{e:E});}}if(this._shimActive){this._deactivateShim();if(this.dragCurrent&&this.dragCurrent.useShim){this.useShim=this._shimState;this._shimState=false;}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(F){var C=this.dragCur
rent;if(C){if(YAHOO.util.Event.isIE&&!F.button){this.stopEvent(F);return this.handleMouseUp(F);}else{if(F.clientX<0||F.clientY<0){}}if(!this.dragThreshMet){var E=Math.abs(this.startX-YAHOO.util.Event.getPageX(F));var D=Math.abs(this.startY-YAHOO.util.Event.getPageY(F));if(E>this.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(V,L){var a=this.dragCurrent;if(!a||a.isLocked()||a.dragOnly){return;}var N=YAHOO.util.Event.getPageX(V),M=YAHOO.util.Event.getPageY(V),P=new YAHOO.util.Point(N,M),K=a.getTargetCoord(P.x,P.y),F=a.getDragEl(),E=["out","over","drop","enter"],U=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},Q=[],c={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var S in this
.dragOvers){var d=this.dragOvers[S];if(!this.isTypeOfDD(d)){continue;
-}if(!this.isOverTarget(P,d,this.mode,U)){c.outEvts.push(d);}I[S]=true;delete this.dragOvers[S];}for(var R in a.groups){if("string"!=typeof R){continue;}for(S in this.ids[R]){var G=this.ids[R][S];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=a){if(this.isOverTarget(P,G,this.mode,U)){D[R]=true;if(L){c.dropEvts.push(G);}else{if(!I[G.id]){c.enterEvts.push(G);}else{c.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:c.outEvts,enter:c.enterEvts,over:c.overEvts,drop:c.dropEvts,point:P,draggedRegion:U,sourceRegion:this.locationCache[a.id],validDrop:L};for(var C in D){Q.push(C);}if(L&&!c.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(V);a.fireEvent("invalidDropEvent",{e:V});}}for(S=0;S<E.length;S++){var Y=null;if(c[E[S]+"Evts"]){Y=c[E[S]+"Evts"];}if(Y&&Y.length){var H=E[S].charAt(0).toUpperCase()+E[S].substr(1),X="onDrag"+H,J="b4Drag"+H,O="drag"+H+"Event",W="drag"+H;if(this.mode){if(a.events[J]
){a[J](V,Y,Q);a.fireEvent(J+"Event",{event:V,info:Y,group:Q});}if(a.events[W]){a[X](V,Y,Q);a.fireEvent(O,{event:V,info:Y,group:Q});}}else{for(var Z=0,T=Y.length;Z<T;++Z){if(a.events[J]){a[J](V,Y[Z].id,Q[0]);a.fireEvent(J+"Event",{event:V,info:Y[Z].id,group:Q[0]});}if(a.events[W]){a[X](V,Y[Z].id,Q[0]);a.fireEvent(O,{event:V,info:Y[Z].id,group:Q[0]});}}}}}},getBestMatch:function(E){var G=null;var D=E.length;if(D==1){G=E[0];}else{for(var F=0;F<D;++F){var C=E[F];if(this.mode==this.INTERSECT&&C.cursorIsOver){G=C;break;}else{if(!G||!G.overlap||(C.overlap&&G.overlap.getArea()<C.overlap.getArea())){G=C;}}}}return G;},refreshCache:function(D){var F=D||this.ids;for(var C in F){if("string"!=typeof C){continue;}for(var E in this.ids[C]){var G=this.ids[C][E];if(this.isTypeOfDD(G)){var H=this.getLocation(G);if(H){this.locationCache[G.id]=H;}else{delete this.locationCache[G.id];}}}}},verifyEl:function(D){try{if(D){var C=D.offsetParent;if(C){return true;}}}catch(E){}return false;},getLocati
on:function(H){if(!this.isTypeOfDD(H)){return null;}var F=H.getEl(),K,E,D,M,L,N,C,J,G;try{K=YAHOO.util.Dom.getXY(F);}catch(I){}if(!K){return null;}E=K[0];D=E+F.offsetWidth;M=K[1];L=M+F.offsetHeight;N=M-H.padding[0];C=D+H.padding[1];J=L+H.padding[2];G=E-H.padding[3];return new YAHOO.util.Region(N,C,J,G);},isOverTarget:function(K,C,E,F){var G=this.locationCache[C.id];if(!G||!this.useCache){G=this.getLocation(C);this.locationCache[C.id]=G;}if(!G){return false;}C.cursorIsOver=G.contains(K);var J=this.dragCurrent;if(!J||(!E&&!J.constrainX&&!J.constrainY)){return C.cursorIsOver;}C.overlap=null;if(!F){var H=J.getTargetCoord(K.x,K.y);var D=J.getDragEl();F=new YAHOO.util.Region(H.y,H.x+D.offsetWidth,H.y+D.offsetHeight,H.x);}var I=F.intersect(G);if(I){C.overlap=I;return(E)?true:C.cursorIsOver;}else{return false;}},_onUnload:function(D,C){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCa
che:{},getElWrapper:function(D){var C=this.elementCache[D];if(!C||!C.el){C=this.elementCache[D]=new this.ElementWrapper(YAHOO.util.Dom.get(D));}return C;},getElement:function(C){return YAHOO.util.Dom.get(C);},getCss:function(D){var C=YAHOO.util.Dom.get(D);return(C)?C.style:null;},ElementWrapper:function(C){this.el=C||null;this.id=this.el&&C.id;this.css=this.el&&C.style;},getPosX:function(C){return YAHOO.util.Dom.getX(C);},getPosY:function(C){return YAHOO.util.Dom.getY(C);},swapNode:function(E,C){if(E.swapNode){E.swapNode(C);}else{var F=C.parentNode;var D=C.nextSibling;if(D==E){F.insertBefore(E,C);}else{if(C==E.nextSibling){F.insertBefore(C,E);}else{E.parentNode.replaceChild(C,E);F.insertBefore(E,D);}}}},getScroll:function(){var E,C,F=document.documentElement,D=document.body;if(F&&(F.scrollTop||F.scrollLeft)){E=F.scrollTop;C=F.scrollLeft;}else{if(D){E=D.scrollTop;C=D.scrollLeft;}else{}}return{top:E,left:C};},getStyle:function(D,C){return YAHOO.util.Dom.getStyle(D,C);},getScro
llTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(C,E){var D=YAHOO.util.Dom.getXY(E);YAHOO.util.Dom.setXY(C,D);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(D,C){return(D-C);},_timeoutCount:0,_addListeners:function(){var C=YAHOO.util.DDM;if(YAHOO.util.Event&&document){C._onLoad();}else{if(C._timeoutCount>2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototy
pe={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:funct
ion(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);
-}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.
config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this
.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.
mouseDown){H=this.fireEvent("mouseDownEvent",J);}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="str
ing"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+
C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint
;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);
-}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDe
lta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScroll
Left();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return;}var
F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle
(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DD
M.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.7.0",build:"1796"});/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-(function(){var B=YAHOO.util.Dom.getXY,A=YAHOO.util.Event,D=Array.prototype.slice;function C(G,E,F,H){C.ANIM_AVAIL=(!YAHOO.lang.isUndefined(YAHOO.util.Anim));if(G){this.init(G,E,true);this.initSlider(H);this.initThumb(F);}}YAHOO.lang.augmentObject(C,{getHorizSlider:function(F,G,I,H,E){return new C(F,F,new YAHOO.widget.SliderThumb(G,F,I,H,0,0,E),"horiz");},getVertSlider:function(G,H,E,I,F){return new C(G,G,new YAHOO.widget.SliderThumb(H,G,0,0,E,I,F),"vert");},getSliderRegion:function(G,H,J,I,E,K,F){return new C(G,G,new YAHOO.widget.SliderThumb(H,G,J,I,E,K,F),"region");},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(C,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(E){this.type=E;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=C.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncremen
t=20;this.moveComplete=true;this.animationDuration=0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0];},initThumb:function(F){var E=this;this.thumb=F;F.cacheBetweenDrags=true;if(F._isHoriz&&F.xTicks&&F.xTicks.length){this.tickPause=Math.round(360/F.xTicks.length);}else{if(F.yTicks&&F.yTicks.length){this.tickPause=Math.round(360/F.yTicks.length);}}F.onAvailable=function(){return E.setStartSliderState();};F.onMouseDown=function(){E._mouseDown=true;return E.focus();};F.startDrag=function(){E._slideStart();};F.onDrag=function(){E.fireEvents(true);};F.onMouseUp=function(){E.thumbMouseUp();};},onAvailable:function(){this._bindKeyEvents();},_bindKeyEvents:function(){A.on(this.id,"keydown",this.handleKeyDown,this,true);A.on(this.id,"keypress",this.handleKeyPress,this,true);},handleKeyPress:function(F){if(this.enableKeys){var E=A.getCharCode(F);switch(E){case 37:case 38:case 39:case 40:case 36:case 35:A.preventDefault(
F);break;default:}}},handleKeyDown:function(J){if(this.enableKeys){var G=A.getCharCode(J),F=this.thumb,H=this.getXValue(),E=this.getYValue(),I=true;switch(G){case 37:H-=this.keyIncrement;break;case 38:E-=this.keyIncrement;break;case 39:H+=this.keyIncrement;break;case 40:E+=this.keyIncrement;break;case 36:H=F.leftConstraint;E=F.topConstraint;break;case 35:H=F.rightConstraint;E=F.bottomConstraint;break;default:I=false;}if(I){if(F._isRegion){this._setRegionValue(C.SOURCE_KEY_EVENT,H,E,true);}else{this._setValue(C.SOURCE_KEY_EVENT,(F._isHoriz?H:E),true);}A.stopEvent(J);}}},setStartSliderState:function(){this.setThumbCenterPoint();this.baselinePos=B(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion){if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null;}else{this.setRegionValue(0,0,true,true,true);}}else{if(this.deferredSetValue){this._setValue.apply
(this,this.deferredSetValue);this.deferredSetValue=null;}else{this.setValue(0,true,true,true);}}},setThumbCenterPoint:function(){var E=this.thumb.getEl();if(E){this.thumbCenterPoint={x:parseInt(E.offsetWidth/2,10),y:parseInt(E.offsetHeight/2,10)};}},lock:function(){this.thumb.lock();this.locked=true;},unlock:function(){this.thumb.unlock();this.locked=false;},thumbMouseUp:function(){this._mouseDown=false;if(!this.isLocked()&&!this.moveComplete){this.endMove();}},onMouseUp:function(){this._mouseDown=false;if(this.backgroundEnabled&&!this.isLocked()&&!this.moveComplete){this.endMove();}},getThumb:function(){return this.thumb;},focus:function(){this.valueChangeSource=C.SOURCE_UI_EVENT;var E=this.getEl();if(E.focus){try{E.focus();}catch(F){}}this.verifyOffset();return !this.isLocked();},onChange:function(E,F){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue();},getXValue:function(){return this.thumb.getXValue();},getYValue:functio
n(){return this.thumb.getYValue();},setValue:function(){var E=D.call(arguments);E.unshift(C.SOURCE_SET_VALUE);return this._setValue.apply(this,E);},_setValue:function(I,L,G,H,E){var F=this.thumb,K,J;if(!F.available){this.deferredSetValue=arguments;return false;}if(this.isLocked()&&!H){return false;}if(isNaN(L)){return false;}if(F._isRegion){return false;}this._silent=E;this.valueChangeSource=I||C.SOURCE_SET_VALUE;F.lastOffset=[L,L];this.verifyOffset(true);this._slideStart();if(F._isHoriz){K=F.initPageX+L+this.thumbCenterPoint.x;this.moveThumb(K,F.initPageY,G);}else{J=F.initPageY+L+this.thumbCenterPoint.y;this.moveThumb(F.initPageX,J,G);}return true;},setRegionValue:function(){var E=D.call(arguments);E.unshift(C.SOURCE_SET_VALUE);return this._setRegionValue.apply(this,E);},_setRegionValue:function(F,J,H,I,G,K){var L=this.thumb,E,M;if(!L.available){this.deferredSetRegionValue=arguments;return false;}if(this.isLocked()&&!G){return false;}if(isNaN(J)){return false;}if(!L._isRegi
on){return false;}this._silent=K;this.valueChangeSource=F||C.SOURCE_SET_VALUE;L.lastOffset=[J,H];this.verifyOffset(true);this._slideStart();E=L.initPageX+J+this.thumbCenterPoint.x;M=L.initPageY+H+this.thumbCenterPoint.y;this.moveThumb(E,M,I);return true;},verifyOffset:function(F){var G=B(this.getEl()),E=this.thumb;if(!this.thumbCenterPoint||!this.thumbCenterPoint.x){this.setThumbCenterPoint();}if(G){if(G[0]!=this.baselinePos[0]||G[1]!=this.baselinePos[1]){this.setInitPosition();this.baselinePos=G;E.initPageX=this.initPageX+E.startOffset[0];E.initPageY=this.initPageY+E.startOffset[1];E.deltaSetXY=null;this.resetThumbConstraints();return false;}}return true;},moveThumb:function(K,J,I,G){var L=this.thumb,M=this,F,E,H;if(!L.available){return;}L.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);E=L.getTargetCoord(K,J);F=[Math.round(E.x),Math.round(E.y)];if(this.animate&&L._graduated&&!I){this.lock();this.curCoord=B(this.thumb.getEl());this.curCoord=[Math.round(this.curCoo
rd[0]),Math.round(this.curCoord[1])];setTimeout(function(){M.moveOneTick(F);
-},this.tickPause);}else{if(this.animate&&C.ANIM_AVAIL&&!I){this.lock();H=new YAHOO.util.Motion(L.id,{points:{to:F}},this.animationDuration,YAHOO.util.Easing.easeOut);H.onComplete.subscribe(function(){M.unlock();if(!M._mouseDown){M.endMove();}});H.animate();}else{L.setDragElPos(K,J);if(!G&&!this._mouseDown){this.endMove();}}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart();this.fireEvent("slideStart");}this._sliding=true;}},_slideEnd:function(){if(this._sliding&&this.moveComplete){var E=this._silent;this._sliding=false;this._silent=false;this.moveComplete=false;if(!E){this.onSlideEnd();this.fireEvent("slideEnd");}}},moveOneTick:function(F){var H=this.thumb,G=this,I=null,E,J;if(H._isRegion){I=this._getNextX(this.curCoord,F);E=(I!==null)?I[0]:this.curCoord[0];I=this._getNextY(this.curCoord,F);J=(I!==null)?I[1]:this.curCoord[1];I=E!==this.curCoord[0]||J!==this.curCoord[1]?[E,J]:null;}else{if(H._isHoriz){I=this._getNextX(this.curCoord,F);}else{I=t
his._getNextY(this.curCoord,F);}}if(I){this.curCoord=I;this.thumb.alignElWithMouse(H.getEl(),I[0]+this.thumbCenterPoint.x,I[1]+this.thumbCenterPoint.y);if(!(I[0]==F[0]&&I[1]==F[1])){setTimeout(function(){G.moveOneTick(F);},this.tickPause);}else{this.unlock();if(!this._mouseDown){this.endMove();}}}else{this.unlock();if(!this._mouseDown){this.endMove();}}},_getNextX:function(E,F){var H=this.thumb,J,G=[],I=null;if(E[0]>F[0]){J=H.tickSize-this.thumbCenterPoint.x;G=H.getTargetCoord(E[0]-J,E[1]);I=[G.x,G.y];}else{if(E[0]<F[0]){J=H.tickSize+this.thumbCenterPoint.x;G=H.getTargetCoord(E[0]+J,E[1]);I=[G.x,G.y];}else{}}return I;},_getNextY:function(E,F){var H=this.thumb,J,G=[],I=null;if(E[1]>F[1]){J=H.tickSize-this.thumbCenterPoint.y;G=H.getTargetCoord(E[0],E[1]-J);I=[G.x,G.y];}else{if(E[1]<F[1]){J=H.tickSize+this.thumbCenterPoint.y;G=H.getTargetCoord(E[0],E[1]+J);I=[G.x,G.y];}else{}}return I;},b4MouseDown:function(E){if(!this.backgroundEnabled){return false;}this.thumb.autoOffset();th
is.resetThumbConstraints();},onMouseDown:function(F){if(!this.backgroundEnabled||this.isLocked()){return false;}this._mouseDown=true;var E=A.getPageX(F),G=A.getPageY(F);this.focus();this._slideStart();this.moveThumb(E,G);},onDrag:function(F){if(this.backgroundEnabled&&!this.isLocked()){var E=A.getPageX(F),G=A.getPageY(F);this.moveThumb(E,G,true,true);this.fireEvents();}},endMove:function(){this.unlock();this.fireEvents();this.moveComplete=true;this._slideEnd();},resetThumbConstraints:function(){var E=this.thumb;E.setXConstraint(E.leftConstraint,E.rightConstraint,E.xTickSize);E.setYConstraint(E.topConstraint,E.bottomConstraint,E.xTickSize);},fireEvents:function(G){var F=this.thumb,I,H,E;if(!G){F.cachePosition();}if(!this.isLocked()){if(F._isRegion){I=F.getXValue();H=F.getYValue();if(I!=this.previousX||H!=this.previousY){if(!this._silent){this.onChange(I,H);this.fireEvent("change",{x:I,y:H});}}this.previousX=I;this.previousY=H;}else{E=F.getValue();if(E!=this.previousVal){if(!t
his._silent){this.onChange(E);this.fireEvent("change",E);}}this.previousVal=E;}}},toString:function(){return("Slider ("+this.type+") "+this.id);}});YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);YAHOO.widget.Slider=C;})();YAHOO.widget.SliderThumb=function(G,B,E,D,A,F,C){if(G){YAHOO.widget.SliderThumb.superclass.constructor.call(this,G,B);this.parentElId=B;}this.isTarget=false;this.tickSize=C;this.maintainOffset=true;this.initSlider(E,D,A,F,C);this.scroll=false;};YAHOO.extend(YAHOO.widget.SliderThumb,YAHOO.util.DD,{startOffset:null,dragOnly:true,_isHoriz:false,_prevVal:0,_graduated:false,getOffsetFromParent0:function(C){var A=YAHOO.util.Dom.getXY(this.getEl()),B=C||YAHOO.util.Dom.getXY(this.parentElId);return[(A[0]-B[0]),(A[1]-B[1])];},getOffsetFromParent:function(H){var A=this.getEl(),E,I,F,B,K,D,C,J,G;if(!this.deltaOffset){I=YAHOO.util.Dom.getXY(A);F=H||YAHOO.util.Dom.getXY(this.parentElId);E=[(I[0]-F[0]),(I[1]-F[1])];B=parseInt(YAHOO.util.Dom.getStyle(A,"left"),10);K=
parseInt(YAHOO.util.Dom.getStyle(A,"top"),10);D=B-E[0];C=K-E[1];if(isNaN(D)||isNaN(C)){}else{this.deltaOffset=[D,C];}}else{J=parseInt(YAHOO.util.Dom.getStyle(A,"left"),10);G=parseInt(YAHOO.util.Dom.getStyle(A,"top"),10);E=[J+this.deltaOffset[0],G+this.deltaOffset[1]];}return E;},initSlider:function(D,C,A,E,B){this.initLeft=D;this.initRight=C;this.initUp=A;this.initDown=E;this.setXConstraint(D,C,B);this.setYConstraint(A,E,B);if(B&&B>1){this._graduated=true;}this._isHoriz=(D||C);this._isVert=(A||E);this._isRegion=(this._isHoriz&&this._isVert);},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize=0;this._graduated=false;},getValue:function(){return(this._isHoriz)?this.getXValue():this.getYValue();},getXValue:function(){if(!this.available){return 0;}var A=this.getOffsetFromParent();if(YAHOO.lang.isNumber(A[0])){this.lastOffset=A;return(A[0]-this.startOffset[0]);}else{return(this.lastOffset[0]-this.startOffset[0]);}},getYValue:function(){
if(!this.available){return 0;}var A=this.getOffsetFromParent();if(YAHOO.lang.isNumber(A[1])){this.lastOffset=A;return(A[1]-this.startOffset[1]);}else{return(this.lastOffset[1]-this.startOffset[1]);}},toString:function(){return"SliderThumb "+this.id;},onChange:function(A,B){}});(function(){var A=YAHOO.util.Event,B=YAHOO.widget;function C(I,F,H,D){var G=this,J={min:false,max:false},E,K;this.minSlider=I;this.maxSlider=F;this.activeSlider=I;this.isHoriz=I.thumb._isHoriz;E=this.minSlider.thumb.onMouseDown;K=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){G.activeSlider=G.minSlider;E.apply(this,arguments);};this.maxSlider.thumb.onMouseDown=function(){G.activeSlider=G.maxSlider;K.apply(this,arguments);};this.minSlider.thumb.onAvailable=function(){I.setStartSliderState();J.min=true;if(J.max){G.fireEvent("ready",G);}};this.maxSlider.thumb.onAvailable=function(){F.setStartSliderState();J.max=true;if(J.min){G.fireEvent("ready",G);}};I.onMouseDown=F.onMouseD
own=function(L){return this.backgroundEnabled&&G._handleMouseDown(L);
-};I.onDrag=F.onDrag=function(L){G._handleDrag(L);};I.onMouseUp=F.onMouseUp=function(L){G._handleMouseUp(L);};I._bindKeyEvents=function(){G._bindKeyEvents(this);};F._bindKeyEvents=function(){};I.subscribe("change",this._handleMinChange,I,this);I.subscribe("slideStart",this._handleSlideStart,I,this);I.subscribe("slideEnd",this._handleSlideEnd,I,this);F.subscribe("change",this._handleMaxChange,F,this);F.subscribe("slideStart",this._handleSlideStart,F,this);F.subscribe("slideEnd",this._handleSlideEnd,F,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);D=YAHOO.lang.isArray(D)?D:[0,H];D[0]=Math.min(Math.max(parseInt(D[0],10)|0,0),H);D[1]=Math.max(Math.min(parseInt(D[1],10)|0,H),0);if(D[0]>D[1]){D.splice(0,2,D[1],D[0]);}this.minVal=D[0];this.maxVal=D[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true);}C.prototype={minVal:-1,maxVal:-1,minRa
nge:0,_handleSlideStart:function(E,D){this.fireEvent("slideStart",D);},_handleSlideEnd:function(E,D){this.fireEvent("slideEnd",D);},_handleDrag:function(D){B.Slider.prototype.onDrag.call(this.activeSlider,D);},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue();},_handleMaxChange:function(){this.activeSlider=this.maxSlider;this.updateValue();},_bindKeyEvents:function(D){A.on(D.id,"keydown",this._handleKeyDown,this,true);A.on(D.id,"keypress",this._handleKeyPress,this,true);},_handleKeyDown:function(D){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments);},_handleKeyPress:function(D){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments);},setValues:function(H,K,I,E,J){var F=this.minSlider,M=this.maxSlider,D=F.thumb,L=M.thumb,N=this,G={min:false,max:false};if(D._isHoriz){D.setXConstraint(D.leftConstraint,L.rightConstraint,D.tickSize);L.setXConstraint(D.leftConstraint,L.rightConstraint,L.tickSize);}else{D.setYConstraint(D.t
opConstraint,L.bottomConstraint,D.tickSize);L.setYConstraint(D.topConstraint,L.bottomConstraint,L.tickSize);}this._oneTimeCallback(F,"slideEnd",function(){G.min=true;if(G.max){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});this._oneTimeCallback(M,"slideEnd",function(){G.max=true;if(G.min){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});F.setValue(H,I,E,false);M.setValue(K,I,E,false);},setMinValue:function(F,H,I,E){var G=this.minSlider,D=this;this.activeSlider=G;D=this;this._oneTimeCallback(G,"slideEnd",function(){D.updateValue(E);setTimeout(function(){D._cleanEvent(G,"slideEnd");},0);});G.setValue(F,H,I);},setMaxValue:function(D,H,I,F){var G=this.maxSlider,E=this;this.activeSlider=G;this._oneTimeCallback(G,"slideEnd",function(){E.updateValue(F);setTimeout(function(){E._cleanEvent(G,"slideEnd");},0);});G.setValue(D,H,I);},updateValue:function(J){var E=this.minSlide
r.getValue(),K=this.maxSlider.getValue(),F=false,D,M,H,I,L,G;if(E!=this.minVal||K!=this.maxVal){F=true;D=this.minSlider.thumb;M=this.maxSlider.thumb;H=this.isHoriz?"x":"y";G=this.minSlider.thumbCenterPoint[H]+this.maxSlider.thumbCenterPoint[H];I=Math.max(K-G-this.minRange,0);L=Math.min(-E-G-this.minRange,0);if(this.isHoriz){I=Math.min(I,M.rightConstraint);D.setXConstraint(D.leftConstraint,I,D.tickSize);M.setXConstraint(L,M.rightConstraint,M.tickSize);}else{I=Math.min(I,M.bottomConstraint);D.setYConstraint(D.leftConstraint,I,D.tickSize);M.setYConstraint(L,M.bottomConstraint,M.tickSize);}}this.minVal=E;this.maxVal=K;if(F&&!J){this.fireEvent("change",this);}},selectActiveSlider:function(H){var E=this.minSlider,D=this.maxSlider,J=E.isLocked()||!E.backgroundEnabled,G=D.isLocked()||!E.backgroundEnabled,F=YAHOO.util.Event,I;if(J||G){this.activeSlider=J?D:E;}else{if(this.isHoriz){I=F.getPageX(H)-E.thumb.initPageX-E.thumbCenterPoint.x;}else{I=F.getPageY(H)-E.thumb.initPageY-E.thumbCe
nterPoint.y;}this.activeSlider=I*2>D.getValue()+E.getValue()?D:E;}},_handleMouseDown:function(D){if(!D._handled){D._handled=true;this.selectActiveSlider(D);return B.Slider.prototype.onMouseDown.call(this.activeSlider,D);}else{return false;}},_handleMouseUp:function(D){B.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments);},_oneTimeCallback:function(F,D,E){F.subscribe(D,function(){F.unsubscribe(D,arguments.callee);E.apply({},[].slice.apply(arguments));});},_cleanEvent:function(K,E){var J,I,D,G,H,F;if(K.__yui_events&&K.events[E]){for(I=K.__yui_events.length;I>=0;--I){if(K.__yui_events[I].type===E){J=K.__yui_events[I];break;}}if(J){H=J.subscribers;F=[];G=0;for(I=0,D=H.length;I<D;++I){if(H[I]){F[G++]=H[I];}}J.subscribers=F;}}}};YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);B.Slider.getHorizDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,G,0,0,F),E=new B.SliderThumb(K,H,0,G,0,0,F);return new C(new B.Slider(H,H,I,"horiz"),new B.Slider(H,H,E,"horiz"),
G,D);};B.Slider.getVertDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,0,0,G,F),E=new B.SliderThumb(K,H,0,0,0,G,F);return new B.DualSlider(new B.Slider(H,H,I,"vert"),new B.Slider(H,H,E,"vert"),G,D);};YAHOO.widget.DualSlider=C;})();YAHOO.register("slider",YAHOO.widget.Slider,{version:"2.7.0",build:"1796"});/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,setter:null,getter:null,validator:null,getValue:function(){var A=this.value;if(this.getter){A=this.getter.call(this.owner,this.name);}return A;},setValue:function(F,B){var E,A=this.owner,C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.setter){F=this.setter.call(A,F,this.name);if(F===undefined){}}if(this.method){this.method.call(A,F,this.name);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};if(C){this._written=false;}this._initialConfig=this._initialConfig||{};for(va
r A in B){if(B.hasOwnProperty(A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig,true);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B||!this._configs.hasOwnProperty(C)){return null;}return B.getValue();},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var C=[],B;for(B in this._configs){if(A.hasOwnProperty(this._configs,B)&&!A.isUndefined(this._configs[B])){C[C.length]=B;}}return C;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._co
nfigs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs||{};var F=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(F.hasOwnProperty(E[D])){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)
){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var B=YAHOO.util.Dom,C=YAHOO.util.AttributeProvider;var A=function(D,E){this.init.apply(this,arguments);};A.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"focus":true,"blur":true,"submit":true,"change":true};A.prototype={DOM_EVENTS:null,DEFAULT_HTML_SETTER:
function(F,D){var E=this.get("element");if(E){E[D]=F;}},DEFAULT_HTML_GETTER:function(D){var E=this.get("element"),F;if(E){F=E[D];}return F;},appendChild:function(D){D=D.get?D.get("element"):D;return this.get("element").appendChild(D);},getElementsByTagName:function(D){return this.get("element").getElementsByTagName(D);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(D,E){D=D.get?D.get("element"):D;E=(E&&E.get)?E.get("element"):E;return this.get("element").insertBefore(D,E);},removeChild:function(D){D=D.get?D.get("element"):D;return this.get("element").removeChild(D);},replaceChild:function(D,E){D=D.get?D.get("element"):D;E=E.get?E.get("element"):E;return this.get("element").replaceChild(D,E);},initAttributes:function(D){},addListener:function(H,G,I,F){var E=this.get("element")||this.get("id");F=F||this;var D=this;if(!this._events[H]){if(E&&this.DOM_EVENTS[H]){YAHOO.util.Event.addListener(E,H,function(J){if(J.srcElement&&!J.target)
{J.target=J.srcElement;}D.fireEvent(H,J);},I,F);}this.createEvent(H,this);}return YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){return this.addListener.apply(this,arguments);},subscribe:function(){return this.addListener.apply(this,arguments);},removeListener:function(E,D){return this.unsubscribe.apply(this,arguments);},addClass:function(D){B.addClass(this.get("element"),D);},getElementsByClassName:function(E,D){return B.getElementsByClassName(E,D,this.get("element"));},hasClass:function(D){return B.hasClass(this.get("element"),D);},removeClass:function(D){return B.removeClass(this.get("element"),D);},replaceClass:function(E,D){return B.replaceClass(this.get("element"),E,D);},setStyle:function(E,D){return B.setStyle(this.get("element"),E,D);},getStyle:function(D){return B.getStyle(this.get("element"),D);},fireQueue:function(){var E=this._queue;for(var F=0,D=E.length;F<D;++F){this[E[F][0]].apply(this,E[F][1]);}},appendTo:function(E,F){E=(E
.get)?E.get("element"):B.get(E);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:E});
-F=(F&&F.get)?F.get("element"):B.get(F);var D=this.get("element");if(!D){return false;}if(!E){return false;}if(D.parent!=E){if(F){E.insertBefore(D,F);}else{E.appendChild(D);}}this.fireEvent("appendTo",{type:"appendTo",target:E});return D;},get:function(D){var F=this._configs||{},E=F.element;if(E&&!F[D]&&!YAHOO.lang.isUndefined(E.value[D])){this._setHTMLAttrConfig(D);}return C.prototype.get.call(this,D);},setAttributes:function(J,G){var E={},H=this._configOrder;for(var I=0,D=H.length;I<D;++I){if(J[H[I]]!==undefined){E[H[I]]=true;this.set(H[I],J[H[I]],G);}}for(var F in J){if(J.hasOwnProperty(F)&&!E[F]){this.set(F,J[F],G);}}},set:function(E,G,D){var F=this.get("element");if(!F){this._queue[this._queue.length]=["set",arguments];if(this._configs[E]){this._configs[E].value=G;}return;}if(!this._configs[E]&&!YAHOO.lang.isUndefined(F[E])){this._setHTMLAttrConfig(E);}return C.prototype.set.apply(this,arguments);},setAttributeConfig:function(D,E,F){this._configOrder.push(D);C.prototype.
setAttributeConfig.apply(this,arguments);},createEvent:function(E,D){this._events[E]=true;return C.prototype.createEvent.apply(this,arguments);},init:function(E,D){this._initElement(E,D);},destroy:function(){var D=this.get("element");YAHOO.util.Event.purgeElement(D,true);this.unsubscribeAll();if(D&&D.parentNode){D.parentNode.removeChild(D);}this._queue=[];this._events={};this._configs={};this._configOrder=[];},_initElement:function(F,E){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];E=E||{};E.element=E.element||F||null;var H=false;var D=A.DOM_EVENTS;this.DOM_EVENTS=this.DOM_EVENTS||{};for(var G in D){if(D.hasOwnProperty(G)){this.DOM_EVENTS[G]=D[G];}}if(typeof E.element==="string"){this._setHTMLAttrConfig("id",{value:E.element});}if(B.get(E.element)){H=true;this._initHTMLElement(E);this._initContent(E);}YAHOO.util.Event.onAvailable(E.element,function(){if(!H){this._initHTMLElement(E);}this.fireEvent("available",{
type:"available",target:B.get(E.element)});},this,true);YAHOO.util.Event.onContentReady(E.element,function(){if(!H){this._initContent(E);}this.fireEvent("contentReady",{type:"contentReady",target:B.get(E.element)});},this,true);},_initHTMLElement:function(D){this.setAttributeConfig("element",{value:B.get(D.element),readOnly:true});},_initContent:function(D){this.initAttributes(D);this.setAttributes(D,true);this.fireQueue();},_setHTMLAttrConfig:function(D,F){var E=this.get("element");F=F||{};F.name=D;F.setter=F.setter||this.DEFAULT_HTML_SETTER;F.getter=F.getter||this.DEFAULT_HTML_GETTER;F.value=F.value||E[D];this._configs[D]=new YAHOO.util.Attribute(F,this);}};YAHOO.augment(A,C);YAHOO.util.Element=A;})();YAHOO.register("element",YAHOO.util.Element,{version:"2.7.0",build:"1796"});/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-YAHOO.util.Color=function(){var A="0",B=YAHOO.lang.isArray,C=YAHOO.lang.isNumber;return{real2dec:function(D){return Math.min(255,Math.round(D*256));},hsv2rgb:function(H,O,M){if(B(H)){return this.hsv2rgb.call(this,H[0],H[1],H[2]);}var D,I,L,G=Math.floor((H/60)%6),J=(H/60)-G,F=M*(1-O),E=M*(1-J*O),N=M*(1-(1-J)*O),K;switch(G){case 0:D=M;I=N;L=F;break;case 1:D=E;I=M;L=F;break;case 2:D=F;I=M;L=N;break;case 3:D=F;I=E;L=M;break;case 4:D=N;I=F;L=M;break;case 5:D=M;I=F;L=E;break;}K=this.real2dec;return[K(D),K(I),K(L)];},rgb2hsv:function(D,H,I){if(B(D)){return this.rgb2hsv.apply(this,D);}D/=255;H/=255;I/=255;var G,L,E=Math.min(Math.min(D,H),I),J=Math.max(Math.max(D,H),I),K=J-E,F;switch(J){case E:G=0;break;case D:G=60*(H-I)/K;if(H<I){G+=360;}break;case H:G=(60*(I-D)/K)+120;break;case I:G=(60*(D-H)/K)+240;break;}L=(J===0)?0:1-(E/J);F=[Math.round(G),L,J];return F;},rgb2hex:function(F,E,D){if(B(F)){return this.rgb2hex.apply(this,F);}var G=this.dec2hex;return G(F)+G(E)+G(D);},dec2hex:functi
on(D){D=parseInt(D,10)|0;D=(D>255||D<0)?0:D;return(A+D.toString(16)).slice(-2).toUpperCase();},hex2dec:function(D){return parseInt(D,16);},hex2rgb:function(D){var E=this.hex2dec;return[E(D.slice(0,2)),E(D.slice(2,4)),E(D.slice(4,6))];},websafe:function(F,E,D){if(B(F)){return this.websafe.apply(this,F);}var G=function(H){if(C(H)){H=Math.min(Math.max(0,H),255);var I,J;for(I=0;I<256;I=I+51){J=I+51;if(H>=I&&H<=J){return(H-I>25)?J:I;}}}return H;};return[G(F),G(E),G(D)];}};}();(function(){var J=0,F=YAHOO.util,C=YAHOO.lang,D=YAHOO.widget.Slider,B=F.Color,E=F.Dom,I=F.Event,A=C.substitute,H="yui-picker";function G(L,K){J=J+1;K=K||{};if(arguments.length===1&&!YAHOO.lang.isString(L)&&!L.nodeName){K=L;L=K.element||null;}if(!L&&!K.element){L=this._createHostElement(K);}G.superclass.constructor.call(this,L,K);this.initPicker();}YAHOO.extend(G,YAHOO.util.Element,{ID:{R:H+"-r",R_HEX:H+"-rhex",G:H+"-g",G_HEX:H+"-ghex",B:H+"-b",B_HEX:H+"-bhex",H:H+"-h",S:H+"-s",V:H+"-v",PICKER_BG:H+"-bg",PICK
ER_THUMB:H+"-thumb",HUE_BG:H+"-hue-bg",HUE_THUMB:H+"-hue-thumb",HEX:H+"-hex",SWATCH:H+"-swatch",WEBSAFE_SWATCH:H+"-websafe-swatch",CONTROLS:H+"-controls",RGB_CONTROLS:H+"-rgb-controls",HSV_CONTROLS:H+"-hsv-controls",HEX_CONTROLS:H+"-hex-controls",HEX_SUMMARY:H+"-hex-summary",CONTROLS_LABEL:H+"-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered",SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"\u00B0",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv",RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols
",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var K=document.createElement("div");if(this.CSS.BASE){K.className=this.CSS.BASE;}return K;},_updateHueSlider:function(){var K=this.get(this.OPT.PICKER_SIZE),L=this.get(this.OPT.HUE);L=K-Math.round(L/360*K);if(L===K){L=0;}this.hueSlider.setValue(L,this.skipAnim);},_updatePickerSlider:function(){var L=this.get(this.OPT.PICKER_SIZE),M=this.get(this.OPT.SATURATION),K=this.get(this.OPT.VALUE);M=Math.round(M*L/100);K=Math.round(L-(K*L/100));this.pickerSlider.setRegionValue(M,K,this.skipAnim);},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider();},setValue:function(L,K){K=(K)||false;this.set(this.OPT.RGB,L,K);this._updateSliders();},hueSlider:null,pickerSlider:null,_getH:function(){var
K=this.get(this.OPT.PICKER_SIZE),L=(K-this.hueSlider.getValue())/K;L=Math.round(L*360);return(L===360)?0:L;},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE);},_getV:function(){var K=this.get(this.OPT.PICKER_SIZE);return(K-this.pickerSlider.getYValue())/K;},_updateSwatch:function(){var M=this.get(this.OPT.RGB),O=this.get(this.OPT.WEBSAFE),N=this.getElement(this.ID.SWATCH),L=M.join(","),K=this.get(this.OPT.TXT);E.setStyle(N,"background-color","rgb("+L+")");N.title=A(K.CURRENT_COLOR,{"rgb":"#"+this.get(this.OPT.HEX)});N=this.getElement(this.ID.WEBSAFE_SWATCH);L=O.join(",");E.setStyle(N,"background-color","rgb("+L+")");N.title=A(K.CLOSEST_WEBSAFE,{"rgb":"#"+B.rgb2hex(O)});},_getValuesFromSliders:function(){this.set(this.OPT.RGB,B.hsv2rgb(this._getH(),this._getS(),this._getV()));},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION);this.getElement(t
his.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=B.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=B.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=B.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX);},_onHueSliderChange:function(N){var L=this._getH(),K=B.hsv2rgb(L,1,1),M="rgb("+K.join(",")+")";this.set(this.OPT.HUE,L,true);E.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",M);if(this.hueSlider.valueChangeSource!==D.SOURCE_SET_VALUE){this._getValuesFromSliders();}this._updateFormFields();this._updateSwatch();},_onPickerSliderChange:function(M){var L=this._getS(),K=this._getV();this.set(this.OPT.SATURATION,Math.round(L*100),true);this.set(this.OPT.VALUE,Math.round(K*100
),true);if(this.pickerSlider.valueChangeSource!==D.SOURCE_SET_VALUE){this._getValuesFromSliders();
-}this._updateFormFields();this._updateSwatch();},_getCommand:function(K){var L=I.getCharCode(K);if(L===38){return 3;}else{if(L===13){return 6;}else{if(L===40){return 4;}else{if(L>=48&&L<=57){return 1;}else{if(L>=97&&L<=102){return 2;}else{if(L>=65&&L<=70){return 2;}else{if("8, 9, 13, 27, 37, 39".indexOf(L)>-1||K.ctrlKey||K.metaKey){return 5;}else{return 0;}}}}}}}},_useFieldValue:function(L,K,N){var M=K.value;if(N!==this.OPT.HEX){M=parseInt(M,10);}if(M!==this.get(N)){this.set(N,M);}},_rgbFieldKeypress:function(M,K,O){var N=this._getCommand(M),L=(M.shiftKey)?10:1;switch(N){case 6:this._useFieldValue.apply(this,arguments);break;case 3:this.set(O,Math.min(this.get(O)+L,255));this._updateFormFields();break;case 4:this.set(O,Math.max(this.get(O)-L,0));this._updateFormFields();break;default:}},_hexFieldKeypress:function(L,K,N){var M=this._getCommand(L);if(M===6){this._useFieldValue.apply(this,arguments);}},_hexOnly:function(L,K){var M=this._getCommand(L);switch(M){case 6:case 5:cas
e 1:break;case 2:if(K!==true){break;}default:I.stopEvent(L);return false;}},_numbersOnly:function(K){return this._hexOnly(K,true);},getElement:function(K){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[K]];},_createElements:function(){var N,M,P,O,L,K=this.get(this.OPT.IDS),Q=this.get(this.OPT.TXT),S=this.get(this.OPT.IMAGES),R=function(U,V){var W=document.createElement(U);if(V){C.augmentObject(W,V,true);}return W;},T=function(U,V){var W=C.merge({autocomplete:"off",value:"0",size:3,maxlength:3},V);W.name=W.id;return new R(U,W);};L=this.get("element");N=new R("div",{id:K[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});M=new R("div",{id:K[this.ID.PICKER_THUMB],className:"yui-picker-thumb"});P=new R("img",{src:S.PICKER_THUMB});M.appendChild(P);N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});M=new R("div",{id:K[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"})
;P=new R("img",{src:S.HUE_THUMB});M.appendChild(P);N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.CONTROLS],className:"yui-picker-controls"});L.appendChild(N);L=N;N=new R("div",{className:"hd"});M=new R("a",{id:K[this.ID.CONTROLS_LABEL],href:"#"});N.appendChild(M);L.appendChild(N);N=new R("div",{className:"bd"});L.appendChild(N);L=N;N=new R("ul",{id:K[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});M=new R("li");M.appendChild(document.createTextNode(Q.R+" "));O=new T("input",{id:K[this.ID.R],className:"yui-picker-r"});M.appendChild(O);N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.G+" "));O=new T("input",{id:K[this.ID.G],className:"yui-picker-g"});M.appendChild(O);N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.B+" "));O=new T("input",{id:K[this.ID.B],className:"yui-picker-b"});M.appendChild(O);N.appendChild(M);L.appendChild(N);N=new R("ul",{id:K[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls
"});M=new R("li");M.appendChild(document.createTextNode(Q.H+" "));O=new T("input",{id:K[this.ID.H],className:"yui-picker-h"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.DEG));N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.S+" "));O=new T("input",{id:K[this.ID.S],className:"yui-picker-s"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.PERCENT));N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.V+" "));O=new T("input",{id:K[this.ID.V],className:"yui-picker-v"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.PERCENT));N.appendChild(M);L.appendChild(N);N=new R("ul",{id:K[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});M=new R("li",{id:K[this.ID.R_HEX]});N.appendChild(M);M=new R("li",{id:K[this.ID.G_HEX]});N.appendChild(M);M=new R("li",{id:K[this.ID.B_HEX]});N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});N.appendC
hild(document.createTextNode(Q.HEX+" "));M=new T("input",{id:K[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});N.appendChild(M);L.appendChild(N);L=this.get("element");N=new R("div",{id:K[this.ID.SWATCH],className:"yui-picker-swatch"});L.appendChild(N);N=new R("div",{id:K[this.ID.WEBSAFE_SWATCH],className:"yui-picker-websafe-swatch"});L.appendChild(N);},_attachRGBHSV:function(L,K){I.on(this.getElement(L),"keydown",function(N,M){M._rgbFieldKeypress(N,this,K);},this);I.on(this.getElement(L),"keypress",this._numbersOnly,this,true);I.on(this.getElement(L),"blur",function(N,M){M._useFieldValue(N,this,K);},this);},_updateRGB:function(){var K=[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)];this.set(this.OPT.RGB,K);this._updateSliders();},_initElements:function(){var O=this.OPT,N=this.get(O.IDS),L=this.get(O.ELEMENTS),K,M,P;for(K in this.ID){if(C.hasOwnProperty(this.ID,K)){N[this.ID[K]]=N[K];}}M=E.get(N[this.ID.PICKER_BG]);if(!M){this._createEle
ments();}else{}for(K in N){if(C.hasOwnProperty(N,K)){M=E.get(N[K]);P=E.generateId(M);N[K]=P;N[N[K]]=P;L[P]=M;}}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true);},_initSliders:function(){var K=this.ID,L=this.get(this.OPT.PICKER_SIZE);this.hueSlider=D.getVertSlider(this.getElement(K.HUE_BG),this.getElement(K.HUE_THUMB),0,L);this.pickerSlider=D.getSliderRegion(this.getElement(K.PICKER_BG),this.getElement(K.PICKER_THUMB),0,L,0,L);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE));},_bindUI:function(){var K=this.ID,L=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);I.on(this.getElement(K.WEBSAFE_SWATCH),"click",function(M){this.setValue(this.get(L.WEBSAFE));},this,true);I.on(this.getElement(K.CONTROLS_LABEL),"click",function(M){this.set(L.SHOW_CONTROLS,!this.get(L.SHOW_CONTROLS));I.preventDefault(M);},this,true);this._attachRGBHSV(K.R,L.RED);this.
_attachRGBHSV(K.G,L.GREEN);this._attachRGBHSV(K.B,L.BLUE);this._attachRGBHSV(K.H,L.HUE);
-this._attachRGBHSV(K.S,L.SATURATION);this._attachRGBHSV(K.V,L.VALUE);I.on(this.getElement(K.HEX),"keydown",function(N,M){M._hexFieldKeypress(N,this,L.HEX);},this);I.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);I.on(this.getElement(this.ID.HEX),"blur",function(N,M){M._useFieldValue(N,this,L.HEX);},this);},syncUI:function(K){this.skipAnim=K;this._updateRGB();this.skipAnim=false;},_updateRGBFromHSV:function(){var L=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100],K=B.hsv2rgb(L);this.set(this.OPT.RGB,K);this._updateSliders();},_updateHex:function(){var N=this.get(this.OPT.HEX),K=N.length,O,M,L;if(K===3){O=N.split("");for(M=0;M<K;M=M+1){O[M]=O[M]+O[M];}N=O.join("");}if(N.length!==6){return false;}L=B.hex2rgb(N);this.setValue(L);},_hideShowEl:function(M,K){var L=(C.isString(M)?this.getElement(M):M);E.setStyle(L,"display",(K)?"":"none");},initAttributes:function(K){K=K||{};G.superclass.initAttributes.call(this,K);this.se
tAttributeConfig(this.OPT.PICKER_SIZE,{value:K.size||this.DEFAULT.PICKER_SIZE});this.setAttributeConfig(this.OPT.HUE,{value:K.hue||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.SATURATION,{value:K.saturation||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.VALUE,{value:C.isNumber(K.value)?K.value:100,validator:C.isNumber});this.setAttributeConfig(this.OPT.RED,{value:C.isNumber(K.red)?K.red:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.GREEN,{value:C.isNumber(K.green)?K.green:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.BLUE,{value:C.isNumber(K.blue)?K.blue:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.HEX,{value:K.hex||"FFFFFF",validator:C.isString});this.setAttributeConfig(this.OPT.RGB,{value:K.rgb||[255,255,255],method:function(O){this.set(this.OPT.RED,O[0],true);this.set(this.OPT.GREEN,O[1],true);this.set(this.OPT.BLUE,O[2],true);var Q=B.websafe(O),P=B.rgb2hex(O),N=B.rgb2hsv(O);this.set(this.OPT.WEBSAFE,Q,tr
ue);this.set(this.OPT.HEX,P,true);if(N[1]){this.set(this.OPT.HUE,N[0],true);}this.set(this.OPT.SATURATION,Math.round(N[1]*100),true);this.set(this.OPT.VALUE,Math.round(N[2]*100),true);},readonly:true});this.setAttributeConfig(this.OPT.CONTAINER,{value:null,method:function(N){if(N){N.showEvent.subscribe(function(){this.pickerSlider.focus();},this,true);}}});this.setAttributeConfig(this.OPT.WEBSAFE,{value:K.websafe||[255,255,255]});var M=K.ids||C.merge({},this.ID),L;if(!K.ids&&J>1){for(L in M){if(C.hasOwnProperty(M,L)){M[L]=M[L]+J;}}}this.setAttributeConfig(this.OPT.IDS,{value:M,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:K.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:K.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:C.isBoolean(K.showcontrols)?K.showcontrols:true,method:function(N){var O=E.getElementsByClassName("bd","
div",this.getElement(this.ID.CONTROLS))[0];this._hideShowEl(O,N);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=(N)?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS;}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:C.isBoolean(K.showrgbcontrols)?K.showrgbcontrols:true,method:function(N){this._hideShowEl(this.ID.RGB_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:C.isBoolean(K.showhsvcontrols)?K.showhsvcontrols:false,method:function(N){this._hideShowEl(this.ID.HSV_CONTROLS,N);if(N&&this.get(this.OPT.SHOW_HEX_SUMMARY)){this.set(this.OPT.SHOW_HEX_SUMMARY,false);}}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:C.isBoolean(K.showhexcontrols)?K.showhexcontrols:false,method:function(N){this._hideShowEl(this.ID.HEX_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:C.isBoolean(K.showwebsafe)?K.showwebsafe:true,method:function(N){this._hideShowEl(this.ID.WEBSAFE_SWATCH,N);}});this.setAtt
ributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:C.isBoolean(K.showhexsummary)?K.showhexsummary:true,method:function(N){this._hideShowEl(this.ID.HEX_SUMMARY,N);if(N&&this.get(this.OPT.SHOW_HSV_CONTROLS)){this.set(this.OPT.SHOW_HSV_CONTROLS,false);}}});this.setAttributeConfig(this.OPT.ANIMATE,{value:C.isBoolean(K.animate)?K.animate:true,method:function(N){if(this.pickerSlider){this.pickerSlider.animate=N;this.hueSlider.animate=N;}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements();}});YAHOO.widget.ColorPicker=G;})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.
7.0",build:"1796"});
-
-/*
-Copyright (c) 2009, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.7.0
-*/
-(function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,F,E){var D=this.getEl();if(this.patterns.noNegatives.test(C)){F=(F>0)?F:0;}if("style" in D){B.Dom.setStyle(D,C,F+E);}else{if(C in D){D[C]=F;}}},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if("style" in E){if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0)
.toUpperCase()+D[0].substr(1)];}else{G=0;}}else{if(C in E){G=E[C];}}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;
this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M
in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F==-1){return false;}G._onComplete.fire();B.splice(F,1);A-
=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]==H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C
=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";A.DEFAULT_BGCOLOR="#fff";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.e
xec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
-}return null;};B.getAttribute=function(E){var G=this.getEl();if(this.patterns.color.test(E)){var I=YAHOO.util.Dom.getStyle(G,E);var H=this;if(this.patterns.transparent.test(I)){var F=YAHOO.util.Dom.getAncestorBy(G,function(J){return !H.patterns.transparent.test(I);});if(F){I=C.Dom.getStyle(F,E);}else{I=A.DEFAULT_BGCOLOR;}}}else{I=D.getAttribute.call(this,E);}return I;};B.doMethod=function(F,J,G){var I;if(this.patterns.color.test(F)){I=[];for(var H=0,E=J.length;H<E;++H){I[H]=D.doMethod.call(this,F,J[H],G[H]);}I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}else{I=D.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(F){D.setRuntimeAttribute.call(this,F);if(this.patterns.color.test(F)){var H=this.attributes;var J=this.parseColor(this.runtimeAttributes[F].start);var G=this.parseColor(this.runtimeAttributes[F].end);if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){G=this.parseColor(H[F].by);for(var I=0,E=J.length;I<E;+
+I){G[I]=J[I]+G[I];}}this.runtimeAttributes[F].start=J;this.runtimeAttributes[F].end=G;}};C.ColorAnim=A;})();
-/*
-TERMS OF USE - EASING EQUATIONS
-Open source under the BSD License.
-Copyright 2001 Robert Penner All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B
,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*
(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var A=function(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}};A.NAME="Motion";var E=YAHOO.util;YAHOO.extend(A,E.ColorAnim);var F=A.superclass;var C=A.prototype;C.patterns.points=/^points$/i;C.setAttribute=function(G,I,H){if(this.patterns.points.test(G)){H=H||"px";F.setAttribute.call(this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAttribute.call(this,G,I,H);}};C.getAttribute=function(G){if(this.patterns.points.test(G)){var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}else{H=F.getAttribute.call(this,G);}return H;};C.doMethod=function(G,K,H){var J=null;if(this.patterns.points.test(G)){var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;J=E.Bezier.getPosition(this.runtimeAttributes[G],I);}else{J=F.doMethod.cal
l(this,G,K,H);}return J;};C.setRuntimeAttribute=function(P){if(this.patterns.points.test(P)){var H=this.getEl();var J=this.attributes;var G;var L=J["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] instanceof Array)){L=[L];}else{var K=[];for(M=0,O=L.length;M<O;++M){K[M]=L[M];}L=K;}if(E.Dom.getStyle(H,"position")=="static"){E.Dom.setStyle(H,"position","relative");}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);
-}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[thi
s.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.7.0",build:"1799"});
diff --git a/share/static/RichText/plugins/wsc/LICENSE.md b/share/static/RichText/plugins/wsc/LICENSE.md
new file mode 100644
index 0000000..6096de2
--- /dev/null
+++ b/share/static/RichText/plugins/wsc/LICENSE.md
@@ -0,0 +1,28 @@
+Software License Agreement
+==========================
+
+**CKEditor WSC Plugin**
+Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice:
+
+* GNU General Public License Version 2 or later (the "GPL"):
+ http://www.gnu.org/licenses/gpl.html
+
+* GNU Lesser General Public License Version 2.1 or later (the "LGPL"):
+ http://www.gnu.org/licenses/lgpl.html
+
+* Mozilla Public License Version 1.1 or later (the "MPL"):
+ http://www.mozilla.org/MPL/MPL-1.1.html
+
+You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice.
+
+Sources of Intellectual Property Included in this plugin
+--------------------------------------------------------
+
+Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission.
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
diff --git a/share/static/RichText/plugins/wsc/README.md b/share/static/RichText/plugins/wsc/README.md
new file mode 100644
index 0000000..346e2ab
--- /dev/null
+++ b/share/static/RichText/plugins/wsc/README.md
@@ -0,0 +1,25 @@
+CKEditor WebSpellChecker Plugin
+===============================
+
+This plugin brings Web Spell Checker (WSC) into CKEditor.
+
+WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution.
+
+Installation
+------------
+
+1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation.
+2. Enable the "wsc" plugin in the CKEditor configuration file (config.js):
+
+ config.extraPlugins = 'wsc';
+
+That's all. WSC will appear on the editor toolbar and will be ready to use.
+
+License
+-------
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
+
+Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/).
diff --git a/share/static/RichText/plugins/wsc/dialogs/ciframe.html b/share/static/RichText/plugins/wsc/dialogs/ciframe.html
index 6409ce7..292297d 100644
--- a/share/static/RichText/plugins/wsc/dialogs/ciframe.html
+++ b/share/static/RichText/plugins/wsc/dialogs/ciframe.html
@@ -1,49 +1,49 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
--->
-<html>
-<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <script type="text/javascript">
-
-function gup( name )
-{
- name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ;
- var regexS = '[\\?&]' + name + '=([^&#]*)' ;
- var regex = new RegExp( regexS ) ;
- var results = regex.exec( window.location.href ) ;
-
- if ( results )
- return results[ 1 ] ;
- else
- return '' ;
-}
-
-var interval;
-
-function sendData2Master()
-{
- var destination = window.parent.parent ;
- try
- {
- if ( destination.XDTMaster )
- {
- var t = destination.XDTMaster.read( [ gup( 'cmd' ), gup( 'data' ) ] ) ;
- window.clearInterval( interval ) ;
- }
- }
- catch (e) {}
-}
-
-function onLoad()
-{
- interval = window.setInterval( sendData2Master, 100 );
-}
-
-</script>
-</head>
-<body onload="onLoad()"><p></p></body>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!--
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <script type="text/javascript">
+
+function gup( name )
+{
+ name = name.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' ) ;
+ var regexS = '[\\?&]' + name + '=([^&#]*)' ;
+ var regex = new RegExp( regexS ) ;
+ var results = regex.exec( window.location.href ) ;
+
+ if ( results )
+ return results[ 1 ] ;
+ else
+ return '' ;
+}
+
+var interval;
+
+function sendData2Master()
+{
+ var destination = window.parent.parent ;
+ try
+ {
+ if ( destination.XDTMaster )
+ {
+ var t = destination.XDTMaster.read( [ gup( 'cmd' ), gup( 'data' ) ] ) ;
+ window.clearInterval( interval ) ;
+ }
+ }
+ catch (e) {}
+}
+
+function onLoad()
+{
+ interval = window.setInterval( sendData2Master, 100 );
+}
+
+</script>
+</head>
+<body onload="onLoad()"><p></p></body>
+</html>
diff --git a/share/static/RichText/plugins/wsc/dialogs/tmpFrameset.html b/share/static/RichText/plugins/wsc/dialogs/tmpFrameset.html
index c7f7ab5..88e1afe 100644
--- a/share/static/RichText/plugins/wsc/dialogs/tmpFrameset.html
+++ b/share/static/RichText/plugins/wsc/dialogs/tmpFrameset.html
@@ -1,52 +1,52 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-<!--
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
--->
-<html>
-<head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <script type="text/javascript">
-
-function doLoadScript( url )
-{
- if ( !url )
- return false ;
-
- var s = document.createElement( "script" ) ;
- s.type = "text/javascript" ;
- s.src = url ;
- document.getElementsByTagName( "head" )[ 0 ].appendChild( s ) ;
-
- return true ;
-}
-
-var opener;
-function tryLoad()
-{
- opener = window.parent;
-
- // get access to global parameters
- var oParams = window.opener.oldFramesetPageParams;
-
- // make frameset rows string prepare
- var sFramesetRows = ( parseInt( oParams.firstframeh, 10 ) || '30') + ",*," + ( parseInt( oParams.thirdframeh, 10 ) || '150' ) + ',0' ;
- document.getElementById( 'itFrameset' ).rows = sFramesetRows ;
-
- // dynamic including init frames and crossdomain transport code
- // from config sproxy_js_frameset url
- var addScriptUrl = oParams.sproxy_js_frameset ;
- doLoadScript( addScriptUrl ) ;
-}
-
- </script>
-</head>
-
-<frameset id="itFrameset" onload="tryLoad();" border="0" rows="30,*,*,0">
- <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="2" src="" name="navbar"></frame>
- <frame scrolling="auto" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="0" src="" name="mid"></frame>
- <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="bot"></frame>
- <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="spellsuggestall"></frame>
-</frameset>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!--
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+-->
+<html>
+<head>
+ <title></title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <script type="text/javascript">
+
+function doLoadScript( url )
+{
+ if ( !url )
+ return false ;
+
+ var s = document.createElement( "script" ) ;
+ s.type = "text/javascript" ;
+ s.src = url ;
+ document.getElementsByTagName( "head" )[ 0 ].appendChild( s ) ;
+
+ return true ;
+}
+
+var opener;
+function tryLoad()
+{
+ opener = window.parent;
+
+ // get access to global parameters
+ var oParams = window.opener.oldFramesetPageParams;
+
+ // make frameset rows string prepare
+ var sFramesetRows = ( parseInt( oParams.firstframeh, 10 ) || '30') + ",*," + ( parseInt( oParams.thirdframeh, 10 ) || '150' ) + ',0' ;
+ document.getElementById( 'itFrameset' ).rows = sFramesetRows ;
+
+ // dynamic including init frames and crossdomain transport code
+ // from config sproxy_js_frameset url
+ var addScriptUrl = oParams.sproxy_js_frameset ;
+ doLoadScript( addScriptUrl ) ;
+}
+
+ </script>
+</head>
+
+<frameset id="itFrameset" onload="tryLoad();" border="0" rows="30,*,*,0">
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="2" src="" name="navbar"></frame>
+ <frame scrolling="auto" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="0" src="" name="mid"></frame>
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="bot"></frame>
+ <frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="spellsuggestall"></frame>
+</frameset>
+</html>
diff --git a/share/static/RichText/plugins/wsc/dialogs/wsc.css b/share/static/RichText/plugins/wsc/dialogs/wsc.css
index 345399c..e163948 100644
--- a/share/static/RichText/plugins/wsc/dialogs/wsc.css
+++ b/share/static/RichText/plugins/wsc/dialogs/wsc.css
@@ -1,6 +1,82 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-html,body{background-color:transparent;margin:0;padding:0;}body{padding:10px;}body,td,input,select,textarea{font-size:11px;font-family:'Microsoft Sans Serif',Arial,Helvetica,Verdana;}.midtext{padding:0;margin:10px;}.midtext p{padding:0;margin:10px;}.Button{border:#737357 1px solid;color:#3b3b1f;background-color:#c7c78f;}.PopupTabArea{color:#737357;background-color:#e3e3c7;}.PopupTitleBorder{border-bottom:#d5d59d 1px solid;}.PopupTabEmptyArea{padding-left:10px;border-bottom:#d5d59d 1px solid;}.PopupTab,.PopupTabSelected{border-right:#d5d59d 1px solid;border-top:#d5d59d 1px solid;border-left:#d5d59d 1px solid;padding:3px 5px 3px 5px;color:#737357;}.PopupTab{margin-top:1px;border-bottom:#d5d59d 1px solid;cursor:pointer;}.PopupTabSelected{font-weight:bold;cursor:default;padding-top:4px;border-bottom:#f1f1e3 1px solid;background-color:#f1f1e3;}
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+html, body
+{
+ background-color: transparent;
+ margin: 0px;
+ padding: 0px;
+}
+
+body
+{
+ padding: 10px;
+}
+
+body, td, input, select, textarea
+{
+ font-size: 11px;
+ font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana;
+}
+
+.midtext
+{
+ padding:0px;
+ margin:10px;
+}
+
+.midtext p
+{
+ padding:0px;
+ margin:10px;
+}
+
+.Button
+{
+ border: #737357 1px solid;
+ color: #3b3b1f;
+ background-color: #c7c78f;
+}
+
+.PopupTabArea
+{
+ color: #737357;
+ background-color: #e3e3c7;
+}
+
+.PopupTitleBorder
+{
+ border-bottom: #d5d59d 1px solid;
+}
+.PopupTabEmptyArea
+{
+ padding-left: 10px;
+ border-bottom: #d5d59d 1px solid;
+}
+
+.PopupTab, .PopupTabSelected
+{
+ border-right: #d5d59d 1px solid;
+ border-top: #d5d59d 1px solid;
+ border-left: #d5d59d 1px solid;
+ padding: 3px 5px 3px 5px;
+ color: #737357;
+}
+
+.PopupTab
+{
+ margin-top: 1px;
+ border-bottom: #d5d59d 1px solid;
+ cursor: pointer;
+}
+
+.PopupTabSelected
+{
+ font-weight: bold;
+ cursor: default;
+ padding-top: 4px;
+ border-bottom: #f1f1e3 1px solid;
+ background-color: #f1f1e3;
+}
diff --git a/share/static/RichText/plugins/wsc/dialogs/wsc.js b/share/static/RichText/plugins/wsc/dialogs/wsc.js
index cb9594e..6b39b00 100644
--- a/share/static/RichText/plugins/wsc/dialogs/wsc.js
+++ b/share/static/RichText/plugins/wsc/dialogs/wsc.js
@@ -1,7 +1,11 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
+ Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.html or http://ckeditor.com/license
*/
-
-CKEDITOR.dialog.add('checkspell',function(a){var b=CKEDITOR.tools.getNextNumber(),c='cke_frame_'+b,d='cke_data_'+b,e='cke_error_'+b,f,g=document.location.protocol||'http:',h=a.lang.spellCheck.notAvailable,i='<textarea style="display: none" id="'+d+'"'+' rows="10"'+' cols="40">'+' </textarea><div'+' id="'+e+'"'+' style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;">'+'</div><iframe'+' src=""'+' style="width:485px;background-color:#f1f1e3;height:380px"'+' frameborder="0"'+' name="'+c+'"'+' id="'+c+'"'+' allowtransparency="1">'+'</iframe>',j=a.config.wsc_customLoaderScript||g+'//loader.spellchecker.net/sproxy_fck/sproxy.php'+'?plugin=fck2'+'&customerid='+a.config.wsc_customerId+'&cmd=script&doc=wsc&schema=22';if(a.config.wsc_customLoaderScript)h+='<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">'+a.lang.spellCheck.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+'</p
>';function k(m,n){var o=0;return function(){if(typeof window.doSpell=='function'){if(typeof f!='undefined')window.clearInterval(f);l(m);}else if(o++==180)window._cancelOnError(n);};};window._cancelOnError=function(m){if(typeof window.WSC_Error=='undefined'){CKEDITOR.document.getById(c).setStyle('display','none');var n=CKEDITOR.document.getById(e);n.setStyle('display','block');n.setHtml(m||a.lang.spellCheck.notAvailable);}};function l(m){var n=new window._SP_FCK_LangCompare(),o=CKEDITOR.getUrl(a.plugins.wsc.path+'dialogs/'),p=o+'tmpFrameset.html';window.gFCKPluginName='wsc';n.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:d,lang:a.config.wsc_lang||n.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang||n.getSPLangCode(a.langCode),winType:c,onCancel:function(){m.hide();},onFinish:function(q){a.focus();m.getParentEditor().setData(q.value);m.hide();},staticFrame:p,framesetPath:p,iframePath:o+'ciframe.html',schemaURI:o+'wsc.css',userDictionaryName:a.config.wsc
_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(','),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(e).setStyle('display','none');CKEDITOR.document.getById(c).setStyle('display','block');};return{title:a.config.wsc_dialogTitle||a.lang.spellCheck.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var m=this.getContentElement('general','content').getElement();m.setHtml(i);if(typeof window.doSpell!='function')CKEDITOR.document.getHead().append(CKEDITOR.document.createElement('script',{attributes:{type:'text/javascript',src:j}}));
-var n=a.getData();CKEDITOR.document.getById(d).setValue(n);f=window.setInterval(k(this,h),250);},onHide:function(){window.ooo=undefined;window.int_framsetLoaded=undefined;window.framesetLoaded=undefined;window.is_window_opened=false;},contents:[{id:'general',label:a.config.wsc_dialogTitle||a.lang.spellCheck.title,padding:0,elements:[{type:'html',id:'content',style:'width:485;height:380px',html:'<div></div>'}]}]};});
+CKEDITOR.dialog.add("checkspell",function(a){function c(a,c){var d=0;return function(){"function"==typeof window.doSpell?("undefined"!=typeof e&&window.clearInterval(e),j(a)):180==d++&&window._cancelOnError(c)}}function j(c){var f=new window._SP_FCK_LangCompare,b=CKEDITOR.getUrl(a.plugins.wsc.path+"dialogs/"),e=b+"tmpFrameset.html";window.gFCKPluginName="wsc";f.setDefaulLangCode(a.config.defaultLanguage);window.doSpell({ctrl:g,lang:a.config.wsc_lang||f.getSPLangCode(a.langCode),intLang:a.config.wsc_uiLang||
+f.getSPLangCode(a.langCode),winType:d,onCancel:function(){c.hide()},onFinish:function(b){a.focus();c.getParentEditor().setData(b.value);c.hide()},staticFrame:e,framesetPath:e,iframePath:b+"ciframe.html",schemaURI:b+"wsc.css",userDictionaryName:a.config.wsc_userDictionaryName,customDictionaryName:a.config.wsc_customDictionaryIds&&a.config.wsc_customDictionaryIds.split(","),domainName:a.config.wsc_domainName});CKEDITOR.document.getById(h).setStyle("display","none");CKEDITOR.document.getById(d).setStyle("display",
+"block")}var b=CKEDITOR.tools.getNextNumber(),d="cke_frame_"+b,g="cke_data_"+b,h="cke_error_"+b,e,b=document.location.protocol||"http:",i=a.lang.wsc.notAvailable,k='<textarea style="display: none" id="'+g+'" rows="10" cols="40"> </textarea><div id="'+h+'" style="display:none;color:red;font-size:16px;font-weight:bold;padding-top:160px;text-align:center;z-index:11;"></div><iframe src="" style="width:100%;background-color:#f1f1e3;" frameborder="0" name="'+d+'" id="'+d+'" allowtransparency="1"></iframe>',
+l=a.config.wsc_customLoaderScript||b+"//loader.webspellchecker.net/sproxy_fck/sproxy.php?plugin=fck2&customerid="+a.config.wsc_customerId+"&cmd=script&doc=wsc&schema=22";a.config.wsc_customLoaderScript&&(i+='<p style="color:#000;font-size:11px;font-weight: normal;text-align:center;padding-top:10px">'+a.lang.wsc.errorLoading.replace(/%s/g,a.config.wsc_customLoaderScript)+"</p>");window._cancelOnError=function(c){if("undefined"==typeof window.WSC_Error){CKEDITOR.document.getById(d).setStyle("display",
+"none");var b=CKEDITOR.document.getById(h);b.setStyle("display","block");b.setHtml(c||a.lang.wsc.notAvailable)}};return{title:a.config.wsc_dialogTitle||a.lang.wsc.title,minWidth:485,minHeight:380,buttons:[CKEDITOR.dialog.cancelButton],onShow:function(){var b=this.getContentElement("general","content").getElement();b.setHtml(k);b.getChild(2).setStyle("height",this._.contentSize.height+"px");"function"!=typeof window.doSpell&&CKEDITOR.document.getHead().append(CKEDITOR.document.createElement("script",
+{attributes:{type:"text/javascript",src:l}}));b=a.getData();CKEDITOR.document.getById(g).setValue(b);e=window.setInterval(c(this,i),250)},onHide:function(){window.ooo=void 0;window.int_framsetLoaded=void 0;window.framesetLoaded=void 0;window.is_window_opened=!1},contents:[{id:"general",label:a.config.wsc_dialogTitle||a.lang.wsc.title,padding:0,elements:[{type:"html",id:"content",html:""}]}]}});
+CKEDITOR.dialog.on("resize",function(a){var a=a.data,c=a.dialog;"checkspell"==c._.name&&((c=(c=c.getContentElement("general","content").getElement())&&c.getChild(2))&&c.setSize("height",a.height),c&&c.setSize("width",a.width))});
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/dialog.css b/share/static/RichText/skins/kama/dialog.css
index b18eea4..a1e9fa9 100644
--- a/share/static/RichText/skins/kama/dialog.css
+++ b/share/static/RichText/skins/kama/dialog.css
@@ -1,9 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-body .cke_dialog{visibility:visible;}.cke_skin_kama table.cke_dialog.cke_browser_gecko{display:block;}.cke_skin_kama .cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;position:relative;_position:static;}.cke_skin_kama .cke_dialog_tl,.cke_skin_kama .cke_dialog_tr,.cke_skin_kama .cke_dialog_tc,.cke_skin_kama .cke_dialog_bl,.cke_skin_kama .cke_dialog_br,.cke_skin_kama .cke_dialog_bc,.cke_skin_kama .cke_dialog_ml,.cke_skin_kama .cke_dialog_mr{display:none;}.cke_skin_kama .cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee;}.cke_skin_kama .cke_browser_iequirks .cke_dialog_title,.cke_skin_kama .cke_browser_ie6 .cke_dialog_title,.cke_skin_kama .cke_browser_ie7 .cke_dialog_title{margin-bottom:22px;}.cke_skin_kama .cke_browser_iequirks.cke_single_page .cke_dialog_title,.cke_skin_kama .cke_browser_ie6.cke_singl
e_page .cke_dialog_title,.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_title{margin-bottom:10px;}.cke_skin_kama .cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:none;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px;}.cke_skin_kama .cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:none;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;}.cke_skin_kama .cke_rtl .cke_dialog_footer{text-align:left;}.cke_skin_kama .cke_dialog_tabs{height:23px;display:inline-block;_display:block;margin-left:10px;margin-right:10px;margin-top:11px;position:abso
lute;z-index:2;}.cke_skin_kama .cke_browser_iequirks .cke_dialog_tabs,.cke_skin_kama .cke_browser_ie6 .cke_dialog_tabs,.cke_skin_kama .cke_browser_ie7 .cke_dialog_tabs{top:33px;}.cke_skin_kama .cke_rtl .cke_dialog_tabs{right:10px;}.cke_skin_kama a.cke_dialog_tab,.cke_skin_kama a:link.cke_dialog_tab,.cke_skin_kama a:active.cke_dialog_tab,.cke_skin_kama a:hover.cke_dialog_tab,.cke_skin_kama a:visited.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer;}.cke_skin_kama .cke_browser_gecko18 a.cke_dialog_tab,.cke_skin_kama .cke_browser_gecko18 a:link.cke_dialog_tab,.cke_skin_kama .cke_browser_gecko18 a:active.cke_dialog_tab,.cke_skin_kama .cke_browser_gecko18 a:hover.cke_dialog_tab,.cke_skin_kama .cke_browser_gecko18 a:visited.cke_dialog_tab{display:inline;position:relative;top:6px;}.cke_skin_kama a:hover.cke_dialog_tab{background-co
lor:#f1f1e3;}.cke_skin_kama .cke_hc a:hover.cke_dialog_tab{padding:2px 6px!important;border-width:3px;}.cke_skin_kama a.cke_dialog_tab_selected,.cke_skin_kama a:link.cke_dialog_tab_selected,.cke_skin_kama a:active.cke_dialog_tab_selected,.cke_skin_kama a:hover.cke_dialog_tab_selected,.cke_skin_kama a:visited.cke_dialog_tab_selected{background-position:0 -1279px;cursor:default;}.cke_skin_kama .cke_hc a.cke_dialog_tab_selected,.cke_skin_kama .cke_hc a:link.cke_dialog_tab_selected,.cke_skin_kama .cke_hc a:active.cke_dialog_tab_selected,.cke_skin_kama .cke_hc a:hover.cke_dialog_tab_selected,.cke_skin_kama .cke_hc a:visited.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px;}.cke_skin_kama .cke_single_page .cke_dialog_tabs{display:none;}.cke_skin_kama .cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px;}.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_contents{margin-top:0;position:relative;margin-bottom:-22px;}.cke_skin_kama .cke_dial
og_ui_vbox table,.cke_skin_kama .cke_dialog_ui_hbox table{margin:auto;}.cke_skin_kama .cke_dialog_ui_vbox_child{padding:5px 0;}.cke_skin_kama input.cke_dialog_ui_input_text,.cke_skin_kama input.cke_dialog_ui_input_password{background-color:white;border:none;padding:0;width:100%;height:14px;}
-.cke_skin_kama div.cke_dialog_ui_input_text,.cke_skin_kama div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_kama .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px;}.cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password{border-width:0;}.cke_skin_kama .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,.cke_skin_kama .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_password{border-width:1px;}.cke_skin_kama textarea.cke_dialog_ui_input_textarea{background-color:white;border:none;padding:0;width:100%;_width:99%;overflow:auto;resize:none;}.cke_skin_kama div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_kama div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default;}.cke_skin_kama .cke_dialog_ui_hbox{width:100%;}.cke_skin_
kama .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_dialog_ui_hbox_child,.cke_skin_kama .cke_dialog_ui_hbox_last{vertical-align:top;}.cke_skin_kama .cke_ltr .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px;}.cke_skin_kama .cke_rtl .cke_dialog_ui_hbox_first,.cke_skin_kama .cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px;}.cke_skin_kama a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;_background:none;padding:5px 0;text-align:center;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button{padding:0;}.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button span{width:70px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span{width:100px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span
,.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button span{padding:5px 15px;text-align:center;color:#3b3b1f;background:#53D9F0 none;display:inline-block;cursor:default;}.cke_skin_kama .cke_browser_webkit a.cke_dialog_ui_button span.cke_dialog_ui_button{margin:0;}.cke_skin_kama .cke_browser_webkit a.cke_dialog_ui_button{display:inline-block;padding-top:3px;padding-bottom:2px;margin:2px 0;}.cke_skin_kama a.cke_dialog_ui_button_ok span,.cke_skin_kama a.cke_dialog_ui_button_cancel span{padding-right:20px;padding-left:20px;}.cke_skin_kama a.cke_dialog_ui_button_ok{background-position:0 -1143px;}.cke_skin_kama a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1219px;}.cke_skin_kama .cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1219px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_ok span,.cke_skin_kama .cke_browser_ie6 a.cke_dialo
g_ui_button_ok span{background-color:#B8E834;margin-right:0;}.cke_skin_kama a.cke_dialog_ui_button_cancel{background-position:0 -1104px;}.cke_skin_kama a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1245px;}.cke_skin_kama .cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1245px;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_cancel span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_cancel span{background-color:#F65D20;}.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_cancel span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_cancel span,.cke_skin_kama .cke_browser_iequirks a.cke_dialog_ui_button_ok span,.cke_skin_kama .cke_browser_ie6 a.cke_dialog_ui_button_ok span{background-image:none;}.cke_skin_kama span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px;+margin:2px 0;}.cke_skin_kama .cke
_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button{display:block;}.cke_skin_kama a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3;}
-.cke_skin_kama a:hover.cke_dialog_ui_button,.cke_skin_kama a:focus.cke_dialog_ui_button,.cke_skin_kama a:active.cke_dialog_ui_button{background-position:0 -1179px;}.cke_skin_kama .cke_hc a:hover.cke_dialog_ui_button,.cke_skin_kama .cke_hc a:focus.cke_dialog_ui_button,.cke_skin_kama .cke_hc a:active.cke_dialog_ui_button{border-width:2px;}.cke_skin_kama .cke_browser_iequirks a:hover.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a:focus.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_iequirks a:active.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a:hover.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a:focus.cke_dialog_ui_button span,.cke_skin_kama .cke_browser_ie6 a:active.cke_dialog_ui_button span{background-image:none;background:#F7A922;}.cke_skin_kama .cke_dialog_footer_buttons{display:inline-table;margin-right:12px;margin-left:12px;width:auto;position:relative;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons{disp
lay:inline;}.cke_skin_kama .cke_dialog_footer_buttons span.cke_dialog_ui_button{margin:7px 0;width:60px;text-align:center;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons a.cke_dialog_ui_button{display:block;padding:0;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button{padding-bottom:5px;padding-top:6px;margin-bottom:0;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons .cke_dialog_ui_button_ok .cke_dialog_ui_button{background-position:right -1214px;}.cke_skin_kama .cke_browser_gecko18 .cke_dialog_footer_buttons .cke_dialog_ui_button_cancel .cke_dialog_ui_button{background-position:right -1242px;}.cke_skin_kama strong{font-weight:bold;}.cke_skin_kama .cke_dialog .cke_dialog_body .cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;_background-image:url(images/s
prites_ie6.png);}.cke_skin_kama .cke_dialog_close_button span{display:none;}.cke_skin_kama .cke_dialog_close_button:hover{background-position:0 -1045px;}.cke_skin_kama .cke_ltr .cke_dialog_close_button{right:10px;}.cke_skin_kama .cke_browser_ie8.cke_rtl .cke_dialog_close_button{left:8px;}.cke_skin_kama .cke_rtl .cke_dialog_close_button{left:10px;}.cke_skin_kama .cke_browser_ie7.cke_rtl .cke_dialog_close_button{left:16px;top:0;}.cke_skin_kama .cke_browser_ie7.cke_rtl .cke_dialog_close_button{position:absolute;left:10px;top:5px;}.cke_skin_kama .cke_browser_ie7.cke_single_page .cke_dialog_footer{margin-top:22px;}.cke_skin_kama .cke_browser_ie6 .cke_dialog_close_button,.cke_skin_kama .cke_browser_iequirks .cke_dialog_close_button{top:7px;}.cke_skin_kama .cke_browser_ie7.cke_ltr .cke_dialog_close_button{margin-top:0;}.cke_skin_kama .cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white;}.cke_skin_kama .cke_dialog_ui_input_file{width:100%;height:25px;}.cke_ski
n_kama .cke_dialog .cke_dark_background{background-color:#eaead1;}.cke_skin_kama .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_kama .cke_dialog .cke_centered{text-align:center;}.cke_skin_kama .cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px;}.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_reset{float:left;}.cke_skin_kama .cke_dialog a.cke_btn_locked,.cke_skin_kama .cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px;}.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_locked,.cke_skin_kama .cke_rtl .cke_dialog a.cke_btn_unlocked{float:right;}.cke_skin_kama .cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif);}.cke_skin_kama .cke_dialog .cke_btn_over{border:outset 1px;curso
r:pointer;}.cke_skin_kama .cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:160px;width:230px;padding:2px;background-color:white;}
-.cke_skin_kama .cke_dialog .ImagePreviewBox table td{white-space:normal;}.cke_skin_kama .cke_browser_iequirks .cke_dialog_page_contents{_position:absolute;}.cke_skin_kama .cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4;}.cke_skin_kama .cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white;}.cke_skin_kama .cke_dialog .cke_pastetext{width:346px;height:170px;}.cke_skin_kama .cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none;}.cke_skin_kama .cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black;}.cke_skin_kama .cke_dialog .cke_dark_background{text-align:center;background-color:#eaead1;font-size:14px;}.cke_skin_kama .cke_dialog .cke_light_background{text-align:center;background
-color:#ffffbe;}.cke_skin_kama .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_kama .cke_disabled{color:#a0a0a0;}.cke_skin_kama .cke_hc .cke_dialog_title,.cke_skin_kama .cke_hc .cke_dialog_tabs,.cke_skin_kama .cke_hc .cke_dialog_contents,.cke_skin_kama .cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid;}.cke_skin_kama .cke_hc .cke_dialog_title{border-top:1px solid;}.cke_skin_kama .cke_hc .cke_dialog_footer{border-bottom:1px solid;}.cke_skin_kama .cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px;}.cke_skin_kama .cke_dialog_body .cke_label{display:none;}.cke_skin_kama .cke_dialog_body label.cke_required{font-weight:bold;}.cke_skin_kama .cke_hc .cke_dialog_body .cke_label{display:inline;}.cke_skin_kama .cke_hc a.cke_btn_locked,.cke_skin_kama .cke_hc a.cke_btn_unlocked,.cke_skin_kama .cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;}.cke_skin_kama .cke_rtl.cke_hc a.cke_b
tn_locked,.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_unlocked,.cke_skin_kama .cke_rtl.cke_hc a.cke_btn_reset{float:right;}.cke_skin_kama a.cke_smile img{border:2px solid #eaead1;}.cke_skin_kama a.cke_smile:focus img,.cke_skin_kama a.cke_smile:active img,.cke_skin_kama a.cke_smile:hover img{border-color:#C7C78F;}.cke_skin_kama .cke_hc .cke_dialog_tabs a,.cke_skin_kama .cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white;}
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-ri
ght-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{backg
round-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.c
ke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{width:60px;padding:5px 20px 5px;display
:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_
footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_
rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:poi
nter}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus
img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/dialog_ie.css b/share/static/RichText/skins/kama/dialog_ie.css
new file mode 100644
index 0000000..417587e
--- /dev/null
+++ b/share/static/RichText/skins/kama/dialog_ie.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-ri
ght-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{backg
round-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.c
ke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{width:60px;padding:5px 20px 5px;display
:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_
footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_
rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:poi
nter}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus
img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialo
g_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/dialog_ie7.css b/share/static/RichText/skins/kama/dialog_ie7.css
new file mode 100644
index 0000000..2ef47c0
--- /dev/null
+++ b/share/static/RichText/skins/kama/dialog_ie7.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-ri
ght-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{backg
round-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.c
ke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{width:60px;padding:5px 20px 5px;display
:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_
footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_
rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:poi
nter}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus
img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialo
g_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_single_page .cke_dialog_footer{margin-top:22px}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{top:33px}.cke_dialog_footer_buttons{position:static;margin-top:7px;margin-right:24px}.cke_rtl .cke_dialog_footer_buttons{margin-right:0;margin-left:24px}.cke_rtl .cke_dialog_close_button{margin-top:0;position:absolute;left:10px;top:5px}span.cke_dialog_ui_buttonm{margin:2px 0}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid transparent!important}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{position:absolute}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{height:14px;position:relative}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/dialog_ie8.css b/share/static/RichText/skins/kama/dialog_ie8.css
new file mode 100644
index 0000000..1f2c564
--- /dev/null
+++ b/share/static/RichText/skins/kama/dialog_ie8.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-ri
ght-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{backg
round-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.c
ke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{width:60px;padding:5px 20px 5px;display
:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_
footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_
rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:poi
nter}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus
img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialo
g_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_rtl .cke_dialog_footer_buttons td{padding-left:2px}.cke_rtl .cke_dialog_close_button{left:8px}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/dialog_iequirks.css b/share/static/RichText/skins/kama/dialog_iequirks.css
new file mode 100644
index 0000000..220af50
--- /dev/null
+++ b/share/static/RichText/skins/kama/dialog_iequirks.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-ri
ght-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{backg
round-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.c
ke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{width:60px;padding:5px 20px 5px;display
:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_
footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_
rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:poi
nter}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus
img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialo
g_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_dialog_title{margin-bottom:22px}.cke_dialog_page_contents{position:absolute}.cke_single_page .cke_dialog_title{margin-bottom:10px}.cke_dialog_close_button{top:27px;background-image:url(images/sprites_ie6.png)}.cke_dialog_footer .cke_resizer{margin-top:27px}.cke_dialog_tabs{display:block;top:33px;margin-top:33px}.cke_rtl .cke_dialog_ui_labeled_content{_width:95%}a.cke_dialog_ui_button{background:0;padding:0}a.cke_dialog_ui_button span{width:70px;padding:5px 15px;text-align:center;color:#3b3b1f;background:#53d9f0 none;display:inline-block;cursor:default}a.cke_dialog_ui_button_ok span{background-image:none;background-color:#b8e834;margin-right:0}a.cke_dialog_ui_button_cancel span{background-image:none;background-color:#f65d20;margin-right:0}a.cke_dialog_ui_button:hover span,a.cke_dialog_ui_button:focus span,a.cke_dialog_ui_button:active span{background-image:none;background:#f7a922}div.cke_dialog
_ui_input_password,textarea.cke_dialog_ui_input_textarea{width:99%}.cke_dialog_ui_checkbox_input,.cke_dialog_ui_ratio_input,.cke_btn_reset,.cke_btn_locked,.cke_btn_unlocked{border:1px solid red!important;filter:chroma(color=red)}.cke_dialog_ui_focused,.cke_btn_over{border:1px dotted #696969!important}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/dialog_opera.css b/share/static/RichText/skins/kama/dialog_opera.css
new file mode 100644
index 0000000..f37e9e6
--- /dev/null
+++ b/share/static/RichText/skins/kama/dialog_opera.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;border:solid 1px #ddd;padding:5px;background-color:#fff;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:14px;padding:3px 3px 8px;cursor:move;position:relative;border-bottom:1px solid #eee}.cke_dialog_contents{background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;overflow:auto;padding:17px 10px 5px 10px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;border-top-left-radius:5px;border-top-right-radius:5px;margin-top:22px}.cke_dialog_contents_body{overflow:auto;padding:17px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;background-color:#ebebeb;border:solid 1px #fff;border-bottom:0;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-ri
ght-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.cke_rtl .cke_dialog_footer{text-align:left}.cke_dialog_footer .cke_resizer{margin-top:24px}.cke_dialog_footer .cke_resizer_ltr{border-right-color:#ccc}.cke_dialog_footer .cke_resizer_rtl{border-left-color:#ccc}.cke_hc .cke_dialog_footer .cke_resizer{margin-bottom:1px}.cke_hc .cke_dialog_footer .cke_resizer_ltr{margin-right:1px}.cke_hc .cke_dialog_footer .cke_resizer_rtl{margin-left:1px}.cke_dialog_tabs{height:23px;display:inline-block;margin-left:10px;margin-right:10px;margin-top:11px;position:absolute;z-index:2}.cke_rtl .cke_dialog_tabs{right:10px}a.cke_dialog_tab{background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1323px;background-color:#ebebeb;height:14px;padding:4px 8px;display:inline-block;cursor:pointer}a.cke_dialog_tab:hover{background-color:#f1f1e3}.cke_hc a.cke_dialog_tab:hover{padding:2px 6px!important;border-width:3px}a.cke_dialog_tab_selected{backg
round-position:0 -1279px;cursor:default}.cke_hc a.cke_dialog_tab_selected{padding:2px 6px!important;border-width:3px}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:10px}.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:0 -1022px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px}.cke_dialog_close_button span{display:none}.cke_dialog_close_button:hover{background-position:0 -1045px}.cke_ltr .cke_dialog_close_button{right:10px}.cke_rtl .cke_dialog_close_button{left:10px}.cke_dialog_close_button{top:7px}div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.c
ke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password{background-color:white;border:0;padding:0;width:100%;height:14px}div.cke_dialog_ui_input_text,div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0}textarea.cke_dialog_ui_input_textarea{background-color:white;border:0;padding:0;width:100%;overflow:auto;resize:none}div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0}a.cke_dialog_ui_button{border-collapse:separate;cursor:default;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent url(images/sprites.png) repeat-x scroll 0 -1069px;text-align:center;display:inline-block}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{width:60px;padding:5px 20px 5px;display
:inline-block}a.cke_dialog_ui_button_ok{background-position:0 -1144px}a.cke_dialog_ui_button_ok span{background:transparent url(images/sprites.png) no-repeat scroll right -1216px}.cke_rtl a.cke_dialog_ui_button_ok span{background-position:left -1216px}a.cke_dialog_ui_button_cancel{background-position:0 -1105px}a.cke_dialog_ui_button_cancel span{background:transparent url(images/sprites.png) no-repeat scroll right -1242px}.cke_rtl a.cke_dialog_ui_button_cancel span{background-position:left -1242px}span.cke_dialog_ui_button{padding:2px 10px;text-align:center;color:#222;display:inline-block;cursor:default;min-width:60px}a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1180px}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border-width:2px}.cke_dialog_
footer_buttons{display:inline-table;margin:6px 12px 0 12px;width:auto;position:relative}.cke_dialog_footer_buttons span.cke_dialog_ui_button{text-align:center}.cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_dialog .cke_dark_background{background-color:#eaead1}.cke_dialog .cke_light_background{background-color:#ffffbe}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_
rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif)}.cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer}.cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black}.cke_dialog .cke_hand{cursor:poi
nter}.cke_disabled{color:#a0a0a0}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_tabs,.cke_hc .cke_dialog_contents,.cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid}.cke_hc .cke_dialog_title{border-top:1px solid}.cke_hc .cke_dialog_footer{border-bottom:1px solid}.cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;margin-bottom:auto;cursor:default}.cke_dialog_body label.cke_required{font-weight:bold}.cke_hc .cke_dialog_body .cke_label{display:inline;cursor:inherit}.cke_hc a.cke_btn_locked,.cke_hc a.cke_btn_unlocked,.cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;padding:0 2px}.cke_rtl.cke_hc a.cke_btn_locked,.cke_rtl.cke_hc a.cke_btn_unlocked,.cke_rtl.cke_hc a.cke_btn_reset{float:right}.cke_hc a.cke_btn_locked .cke_icon{display:inline}a.cke_smile img{border:2px solid #eaead1}a.cke_smile:focus
img,a.cke_smile:active img,a.cke_smile:hover img{border-color:#c7c78f}.cke_hc .cke_dialog_tabs a,.cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white}.cke_hc .ImagePreviewBox{width:260px}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_dialog_ui_checkbox_input:focus,.cke_dialog_ui_radio_input:focus,.cke_dialog_ui_input_select:focus,.cke_btn_over{outline:1px dotted #696969}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity=0);width:100%;height:100%}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password{padding-left:2px}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/editor.css b/share/static/RichText/skins/kama/editor.css
index 4871e26..4edcdaa 100644
--- a/share/static/RichText/skins/kama/editor.css
+++ b/share/static/RichText/skins/kama/editor.css
@@ -1,12 +1,5 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_kama *,.cke_skin_kama a:hover,.cke_skin_kama a:link,.cke_skin_kama a:visited,.cke_skin_kama a:active{margin:0;padding:0;border:0;background:transparent;text-decoration:none;font:normal normal normal 100% Sans-Serif;width:auto;height:auto;border-collapse:collapse;text-align:left;vertical-align:baseline;white-space:nowrap;cursor:auto;color:#000;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif;}.cke_skin_kama .cke_rtl *,.cke_skin_kama .cke_rtl a:hover,.cke_skin_kama .cke_rtl a:link,.cke_skin_kama .cke_rtl a:visited,.cke_skin_kama .cke_rtl a:active,.cke_rtl .cke_skin_kama *,.cke_rtl .cke_skin_kama a:hover,.cke_rtl .cke_skin_kama a:link,.cke_rtl .cke_skin_kama a:visited,.cke_rtl .cke_skin_kama a:active{text-align:right;}.cke_skin_kama iframe{vertical-align:inherit;}.cke_skin_kama textarea{white-space:pre;}.cke_skin_kama .cke_browser_gecko textarea{cursor:text;}.cke_skin_kama .cke_browser_gecko textarea[disabled]{cursor:default;}.cke_skin_kama input[t
ype="text"],.cke_skin_kama input[type="password"]{cursor:text;}.cke_skin_kama input[type="text"][disabled],.cke_skin_kama input[type="password"][disabled]{cursor:default;}.cke_skin_kama fieldset{padding:10px;border:2px groove #E0DFE3;}.cke_skin_kama{display:block;}span.cke_skin_kama{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #D3D3D3;padding:5px;}.cke_skin_kama span.cke_browser_webkit,.cke_skin_kama span.cke_browser_gecko18{display:block;}.cke_skin_kama .cke_wrapper{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-color:#d3d3d3;background-image:url(images/sprites.png);background-repeat:repeat-x;background-position:0 -1950px;display:block;_display:inline-block;padding:5px;}.cke_shared .cke_skin_kama .cke_wrapper{padding-bottom:0;}.cke_skin_kama .cke_browser_ie6 .cke_wrapper,.cke_skin_kama .cke_browser_iequirks .cke_wrapper{background-image:none;}.cke_skin_kama .cke_editor{display:inline-table;width:100%;}.ck
e_skin_kama .ltr .cke_browser_ie iframe{margin-right:-10px;}.cke_skin_kama .rtl .cke_browser_ie iframe{margin-left:-10px;}.cke_skin_kama .cke_browser_opera .cke_editor.cke_skin_kama .cke_resizer{display:table;}.cke_skin_kama .cke_contents{margin:5px;}.cke_skin_kama .cke_hc .cke_contents{border:1px solid black;}.cke_skin_kama .cke_contents iframe{background-color:#fff;}.cke_skin_kama .cke_focus{outline:auto 5px -webkit-focus-ring-color;}.cke_skin_kama textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre;}.cke_skin_kama .cke_browser_iequirks textarea.cke_source{_white-space:normal;}.cke_skin_kama .cke_resizer{width:12px;height:12px;margin-top:9px;display:block;float:right;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1428px;background-repeat:no-repeat;cursor:se-resize;}.cke_skin_kama .cke_rtl .cke_resizer{cursor:sw-resize;background-position:0 -1455px;float:
left;}.cke_skin_kama .cke_resizer_horizontal,.cke_skin_kama .cke_rtl .cke_resizer_horizontal{cursor:e-resize;}.cke_skin_kama .cke_resizer_vertical,.cke_skin_kama .cke_rtl .cke_resizer_vertical{cursor:n-resize;}.cke_skin_kama .cke_maximized .cke_resizer{display:none;}.cke_skin_kama .cke_browser_ie6 .cke_contents textarea,.cke_skin_kama .cke_browser_ie7 .cke_contents textarea{position:absolute;}.cke_skin_kama .cke_browser_ie.cke_browser_quirks .cke_contents iframe{position:absolute;top:0;}.cke_skin_kama .cke_browser_ie6 .cke_editor,.cke_skin_kama .cke_browser_ie7 .cke_editor{display:inline-block;}.cke_skin_kama .cke_browser_ie6 .cke_editor,.cke_shared .cke_skin_kama .cke_browser_ie7 .cke_wrapper{padding-bottom:5px;}.cke_skin_kama .cke_voice_label{display:none;}.cke_skin_kama legend.cke_voice_label{display:none;}.cke_skin_kama .cke_browser_ie legend.cke_voice_label{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_kama .cke_panel{border:1px solid #8f8f
73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}.cke_skin_kama .cke_contextmenu{margin:0;}
-.cke_skin_kama .cke_panel iframe{width:100%;height:100%;}html.cke_skin_kama_container{overflow:auto;overflow-x:hidden;}body.cke_panel_frame{overflow:auto;}.cke_panel_frame .cke_label{display:none;}ul.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap;}li.cke_panel_listItem{margin:0;}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;}* html .cke_panel_listItem a{width:100%;color:#000;}*:first-child+html .cke_panel_listItem a{color:#000;}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff;}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff;}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0;}.cke_panel_grouptitle{fon
t-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px;}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px;}.cke_skin_kama .cke_button_textcolor_panel,.cke_skin_kama .cke_button_bgcolor_panel{width:150px;height:135px;}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000;}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left;}.cke_rtl span.cke_colorbox{float:right;}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;}.cke_rtl a.cke_colorbox{float:right;}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;backg
round-color:#dff1ff;}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer;}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff;}@media print{.cke_skin_kama .cke_toolbox{display:none;}}.cke_skin_kama .cke_browser_webkit .cke_toolbox,.cke_skin_kama .cke_browser_webkit .cke_toolbox>span{white-space:normal;}.cke_skin_kama .cke_toolbox{clear:both;padding-bottom:1px;}.cke_skin_kama a.cke_toolbox_collapser,.cke_skin_kama a:hover.cke_toolbox_collapser{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:3px -1366px;background-repeat:no-repeat;width:11px;height:11px;float:right;border:1px outset #D3D3D3;margin:11px 0 2px;cursor:pointer;}.cke_skin_kama .cke_rtl a.cke_toolbox_collapser,.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser{float:left;}.cke_skin_k
ama a.cke_toolbox_collapser span{display:none;}.cke_skin_kama .cke_hc a.cke_toolbox_collapser span{font-size:10px;font-weight:bold;font-family:Arial;display:inline;}.cke_skin_kama a.cke_toolbox_collapser_min,.cke_skin_kama a:hover.cke_toolbox_collapser_min{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:4px -1387px;background-repeat:no-repeat;margin:2px 4px;}.cke_skin_kama .cke_rtl a.cke_toolbox_collapser_min,.cke_skin_kama .cke_rtl a:hover.cke_toolbox_collapser_min{background-position:4px -1408px;}.cke_skin_kama .cke_toolbar{display:inline;}.cke_skin_kama .cke_separator{display:none;}.cke_skin_kama .cke_break{font-size:0;clear:left;}.cke_skin_kama .cke_rtl .cke_break{clear:right;}.cke_skin_kama .cke_toolbar_start{display:none;}.cke_skin_kama .cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);backgrou
nd-repeat:repeat-x;background-position:0 -500px;float:left;margin-right:6px;margin-bottom:5px;padding:2px;display:inline;}.cke_skin_kama .cke_rtl .cke_toolgroup{float:right;margin-right:0;margin-left:6px;}
-.cke_skin_kama .cke_toolgroup{display:block;height:22px;}.cke_skin_kama .cke_button a,.cke_skin_kama .cke_button a:hover,.cke_skin_kama .cke_button a:focus,.cke_skin_kama .cke_button a:active,.cke_skin_kama .cke_button a.cke_off{border-radius:3px;outline:none;padding:2px 4px;height:18px;display:inline-block;cursor:default;}.cke_skin_kama .cke_button a,.cke_skin_kama .cke_button a.cke_off{filter:alpha(opacity=70);opacity:.70;-moz-border-radius:3px;-webkit-border-radius:3px;}.cke_skin_kama .cke_hc .cke_button a,.cke_skin_kama .cke_hc .cke_button a.cke_off{opacity:1.0;filter:alpha(opacity=100);border:1px solid white;}.cke_skin_kama .cke_button a.cke_on{background-color:#a3d7ff;filter:alpha(opacity=100);opacity:1;padding:2px 4px;}.cke_skin_kama .cke_hc .cke_button a.cke_on{padding:0 2px!important;border-width:3px;}.cke_skin_kama .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie a:hover.cke_button .cke_disabled *{filter:alpha(opacity=30);opacity:.3;}.cke_skin_kama .cke_
hc .cke_button a.cke_disabled *,.cke_skin_kama .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *{filter:alpha(opacity=60);opacity:.6;}.cke_skin_kama .cke_button a:hover.cke_on,.cke_skin_kama .cke_button a:focus.cke_on,.cke_skin_kama .cke_button a:active.cke_on,.cke_skin_kama .cke_button a:hover.cke_off,.cke_skin_kama .cke_button a:focus.cke_off,.cke_skin_kama .cke_button a:active.cke_off{filter:alpha(opacity=100);opacity:1;padding:2px 4px;}.cke_skin_kama .cke_button a:hover,.cke_skin_kama .cke_button a:focus,.cke_skin_kama .cke_button a:active{background-color:#dff1ff;}.cke_skin_kama .cke_button a:hover.cke_on,.cke_skin_kama .cke_button a:focus.cke_on,.cke_skin_kama .cke_button a:active.cke_on{background-color:#86caff;}.cke_skin_kama .cke_hc .cke_button a:hover,.cke_skin_kama .cke_hc .cke_button a:focus,.cke_skin_kama .cke_hc .cke_button a:active{padding:0 2px!important;border-width:3px;}.cke_skin_kama .cke_button .cke_icon{background-image:url(icons.png);background-
position:100px;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;display:inline-block;float:left;cursor:default;}.cke_skin_kama .cke_rtl .cke_button .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_kama .cke_rtl .cke_button .cke_icon{float:right;}.cke_skin_kama .cke_button .cke_label{cursor:default;display:none;padding-left:3px;line-height:18px;vertical-align:middle;float:left;}.cke_skin_kama .cke_rtl .cke_button .cke_label{padding-left:0;padding-right:3px;float:right;}.cke_skin_kama .cke_hc .cke_button .cke_label{padding:0;display:inline-block;}.cke_skin_kama .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_kama .cke_accessibility{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_kama .cke_button .cke_buttonarrow{display:inline-block;height:17px;width:8px;background-position:2px -1469px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;float:left;cursor:de
fault;}.cke_skin_kama .cke_rtl .cke_button .cke_buttonarrow{background-position:0 -1469px;float:right;}.cke_skin_kama .cke_browser_gecko .cke_toolbar,.cke_skin_kama .cke_browser_gecko .cke_button a,.cke_skin_kama .cke_browser_gecko .cke_button a.cke_off,.cke_skin_kama .cke_browser_gecko .cke_button .cke_icon,.cke_skin_kama .cke_browser_gecko .cke_button .cke_buttonarrow,.cke_skin_kama .cke_browser_gecko .cke_separator,.cke_skin_kama .cke_browser_gecko .cke_toolbar_start{display:block;float:left;}.cke_skin_kama .cke_browser_gecko.cke_hc .cke_button .cke_icon{display:none;}.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_toolbar,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button a,.cke_skin_kama .cke_browser_gecko .cke_rtl.cke_button a.cke_off,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_icon,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_buttonarrow,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_toolbar_start{float:right;}.cke_skin_kama .cke_br
owser_gecko .cke_button .cke_label,.cke_skin_kama .cke_browser_gecko .cke_break{float:left;}.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_button .cke_label,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_break{float:right;}
-.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_icon,.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_label,.cke_skin_kama .cke_browser_ie .cke_rtl .cke_button .cke_buttonarrow{float:none;}.cke_skin_kama .cke_browser_webkit .cke_toolbar{float:left;}.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_toolbar{float:right;}.cke_skin_kama .cke_browser_ie8 .cke_button .cke_label,.cke_skin_kama .cke_browser_opera .cke_button .cke_label,.cke_skin_kama .cke_browser_webkit .cke_button .cke_label{line-height:20px;}.cke_skin_kama .cke_browser_opera.cke_browser_quirks .cke_button .cke_label,.cke_skin_kama .cke_browser_iequirks .cke_button .cke_label{line-height:17px;}.cke_skin_kama .cke_browser_ie .cke_rcombo,.cke_skin_kama .cke_browser_ie .cke_rcombo *{cursor:default;}.cke_skin_kama .cke_browser_ie .cke_toolbox{padding-bottom:5px;_padding-bottom:6px;}.cke_shared .cke_skin_kama .cke_browser_ie .cke_toolbox{padding-bottom:0;}.cke_skin_kama .cke_contextmenu{padding:2px;}.cke
_skin_kama .cke_menuitem a{display:block;}.cke_skin_kama .cke_menuitem span{cursor:default;}.cke_skin_kama .cke_menuitem a:hover,.cke_skin_kama .cke_menuitem a:focus,.cke_skin_kama .cke_menuitem a:active{background-color:#D3D3D3;display:block;}.cke_hc .cke_menuitem a:hover,.cke_hc .cke_menuitem a:focus,.cke_hc .cke_menuitem a:active{border:2px solid;}.cke_skin_kama .cke_menuitem .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;background-color:transparent;width:16px;height:16px;float:left;}.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_kama .cke_menuitem .cke_disabled .cke_icon{filter:alpha(opacity=70);opacity:.70;}.cke_skin_kama .cke_menuitem .cke_icon_wrapper{background-color:#D3D3D3;border:solid 4px #D3D3D3;width:16px;height:16px;float:left;filter:alpha(opacity=70);opacity:.70;clear:both;}.cke_rtl .cke_skin_kama .cke_menuitem .cke_icon_wrapper{float:right;}.cke_skin_kama .cke_me
nuitem a:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper{background-color:#9d9d9d;border:solid 4px #9d9d9d;filter:alpha(opacity=70);opacity:.70;}.cke_skin_kama .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active.cke_disabled .cke_icon_wrapper{background-color:#D3D3D3;border:solid 4px #D3D3D3;}.cke_skin_kama .cke_menuitem .cke_label{display:block;padding-right:3px;padding-top:5px;padding-left:4px;height:19px;margin-left:24px;background-color:#fff;}.cke_skin_kama .cke_frameLoaded .cke_menuitem .cke_label{filter:alpha(opacity=70);opacity:.70;}.cke_rtl .cke_skin_kama .cke_menuitem .cke_label{padding-right:0;margin-left:0;padding-left:3px;margin-right:28px;}.cke_skin_kama .cke_menuitem a.cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.30;}.cke_skin_kama .cke_menuitem a:hover .cke
_label,.cke_skin_kama .cke_menuitem a:focus .cke_label,.cke_skin_kama .cke_menuitem a:active .cke_label{background-color:#D3D3D3;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label{background-color:transparent;}.cke_skin_kama .cke_menuseparator{background-color:#D3D3D3;height:2px;filter:alpha(opacity=70);opacity:.70;_font-size:0;}.cke_skin_kama .cke_menuarrow{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1411px;background-repeat:no-repeat;height:5px;width:3px;float:right;margin-right:2px;margin-top:3px;}.cke_rtl .cke_skin_kama .cke_menuarrow{float:left;margin-right:0;margin-left:2px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1390px;background-repeat:no-repeat;}.cke_skin_kama .cke_menuarrow span{display:none;}.cke_hc
.cke_skin_kama .cke_menuarrow{width:auto;margin-top:0;}.cke_hc .cke_skin_kama .cke_menuarrow span{display:inline;}.cke_browser_ie.cke_ltr .cke_skin_kama .cke_menuarrow{position:absolute;right:2px;}
-.cke_browser_ie.cke_rtl .cke_skin_kama .cke_menuarrow{position:absolute;left:2px;}.cke_skin_kama .cke_rcombo{display:inline;}.cke_skin_kama .cke_rcombopanel{border:1px solid #8F8F73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;height:auto;_height:100px;}.cke_skin_kama .cke_rcombo a,.cke_skin_kama .cke_rcombo a:active,.cke_skin_kama .cke_rcombo a:hover{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:repeat-x;background-position:0 -100px;border-bottom:1px solid #DAD9D9;border-right:1px solid #DAD9D9;float:left;padding:2px;height:21px;margin-right:6px;}.cke_skin_kama .cke_rtl .cke_rcombo a,.cke_skin_kama .cke_rtl .cke_rcombo a:active,.cke_skin_kama .cke_rtl .cke_rcombo a:hover{float:right;margin-right:0;margin-left:6px;}.cke_skin_kama .cke_hc .cke_rcombo a{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_kama .cke_
rcombo .cke_label{display:none;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity=70);opacity:.70;}.cke_skin_kama .cke_rtl .cke_rcombo .cke_label{margin-right:0;margin-left:5px;}.cke_skin_kama .cke_rcombo .cke_inline_label{line-height:21px;font-style:italic;color:#666;}.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton{vertical-align:top;}.cke_skin_kama .cke_hc .cke_rcombo .cke_label{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_kama .cke_rcombo .cke_text{filter:alpha(opacity=70);opacity:.70;height:21px;line-height:21px;width:60px;text-overflow:ellipsis;overflow:hidden;display:inline-block;margin:0 2px 0 4px;cursor:default;}.cke_skin_kama .cke_rtl .cke_rcombo .cke_text{margin:0 4px 0 2px;}.cke_skin_kama .cke_rcombo .cke_openbutton{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -68px;background-repeat:no-repeat;display:inline-block;width:17px;height:19px;margin:1px 2px;background-repeat:no
-repeat;}.cke_skin_kama .cke_rcombo .cke_openbutton span{display:none;}.cke_skin_kama .cke_hc .cke_rcombo .cke_openbutton span{display:inline;}.cke_skin_kama .cke_browser_iequirks .cke_rcombo .cke_openbutton{margin-bottom:0;}.cke_skin_kama .cke_rcombo .cke_off a:hover .cke_text,.cke_skin_kama .cke_rcombo .cke_off a:focus .cke_text,.cke_skin_kama .cke_rcombo .cke_off a:active .cke_text,.cke_skin_kama .cke_rcombo .cke_on .cke_text{border-color:#316ac5;filter:alpha(opacity=100);opacity:1;}.cke_skin_kama .cke_rcombo .cke_off a:hover .cke_openbutton,.cke_skin_kama .cke_rcombo .cke_off a:focus .cke_openbutton,.cke_skin_kama .cke_rcombo .cke_off a:active .cke_openbutton,.cke_skin_kama .cke_rcombo .cke_on .cke_openbutton{border-color:#316ac5;background-color:#dff1ff;}.cke_skin_kama .cke_rcombo .cke_on .cke_text{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;}.cke_skin_kama .cke_rcombo .cke_on .cke_openbutton{-moz-border-radius-bottomr
ight:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}.cke_skin_kama .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.3;}.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=70);opacity:.7;}.cke_skin_kama .cke_rcombo .cke_disabled .cke_text,.cke_skin_kama .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=50);opacity:.5;}.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_text,.cke_skin_kama .cke_hc .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=80);opacity:.8;}.cke_skin_kama .cke_rcombo .cke_disabled .cke_text{color:#fff;}.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_openbutton,.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_webkit .cke_rcombo .cke_openbutton{display:block;float:left;}.cke_skin_kama .cke_browser_gecko .cke_rcombo .cke_label,.cke_skin_kama .cke_browser_webkit .cke
_rcombo .cke_label{float:left;}.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_label,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_gecko .cke_rtl .cke_rcombo .cke_openbutton,.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton{float:right;}
-.cke_skin_kama .cke_browser_ie7 .cke_rcombo .cke_text{line-height:18px;}.cke_skin_kama .cke_browser_ie6 .cke_rcombo .cke_text,.cke_skin_kama .cke_browser_iequirks .cke_rcombo .cke_text{height:auto;line-height:17px;}.cke_skin_kama .cke_rtl .cke_rcombo .cke_font .cke_text,.cke_skin_kama .cke_rtl .cke_rcombo .cke_fontSize .cke_text{direction:ltr;}@media print{.cke_path{display:none;}}.cke_skin_kama .cke_path{display:inline-block;float:left;margin-top:5px;}.cke_skin_kama .cke_rtl .cke_path{float:right;}.cke_shared .cke_skin_kama .cke_path{_width:100%;margin:0 0 5px;}.cke_skin_kama .cke_path a,.cke_skin_kama .cke_path .cke_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;}.cke_skin_kama .cke_path .cke_empty{visibility:hidden;}.cke_skin_kama .cke_rtl .cke_path a,.cke_skin_kama .cke_rtl .cke_path cke_empty{float:right;}.cke_skin_kama .cke_path a:hover,.cke_skin_kama .cke_path a:focus,.cke_skin_kama .cke_path a:active{background-color:#dff1ff;padd
ing:1px 4px 0;outline:none;color:#000;}.cke_skin_kama .cke_browser_ie .cke_rtl .cke_path a,.cke_skin_kama .cke_browser_ie .cke_rtl .cke_path .cke_empty{float:none;}.cke_skin_kama .cke_path .cke_label{display:none;}.cke_skin_kama .cke_button_source .cke_icon{background-position:0 0;}.cke_skin_kama .cke_button_newpage .cke_icon{background-position:0 -48px;}.cke_skin_kama .cke_button_preview .cke_icon{background-position:0 -64px;}.cke_skin_kama .cke_button_cut .cke_icon{background-position:0 -96px;}.cke_skin_kama .cke_button_copy .cke_icon{background-position:0 -112px;}.cke_skin_kama .cke_button_paste .cke_icon{background-position:0 -128px;}.cke_skin_kama .cke_button_pastetext .cke_icon{background-position:0 -144px;}.cke_skin_kama .cke_button_find .cke_icon{background-position:0 -240px;}.cke_skin_kama .cke_button_replace .cke_icon{background-position:0 -256px;}.cke_skin_kama .cke_button_selectAll .cke_icon{background-position:0 -272px;}.cke_skin_kama .cke_button_removeFormat .c
ke_icon{background-position:0 -288px;}.cke_skin_kama .cke_button_bold .cke_icon{background-position:0 -304px;}.cke_skin_kama .cke_button_italic .cke_icon{background-position:0 -320px;}.cke_skin_kama .cke_button_underline .cke_icon{background-position:0 -336px;}.cke_skin_kama .cke_button_strike .cke_icon{background-position:0 -352px;}.cke_skin_kama .cke_button_subscript .cke_icon{background-position:0 -368px;}.cke_skin_kama .cke_button_superscript .cke_icon{background-position:0 -384px;}.cke_skin_kama .cke_button_table .cke_icon{background-position:0 -608px;}.cke_skin_kama .cke_button_horizontalrule .cke_icon{background-position:0 -624px;}.cke_skin_kama .cke_button_smiley .cke_icon{background-position:0 -640px;}.cke_skin_kama .cke_button_link .cke_icon{background-position:0 -528px;}.cke_skin_kama .cke_button_unlink .cke_icon{background-position:0 -544px;}.cke_skin_kama .cke_button_anchor .cke_icon{background-position:0 -560px;}.cke_skin_kama .cke_button_image .cke_icon{backgr
ound-position:0 -576px;}.cke_skin_kama .cke_button_flash .cke_icon{background-position:0 -592px;}.cke_skin_kama .cke_button_specialchar .cke_icon{background-position:0 -656px;}.cke_skin_kama .cke_button_pagebreak .cke_icon{background-position:0 -672px;}.cke_skin_kama .cke_button_print .cke_icon{background-position:0 -176px;}.cke_skin_kama .cke_button_checkspell .cke_icon,.cke_skin_kama .cke_button_scayt .cke_icon{background-position:0 -192px;}.cke_skin_kama .cke_button_pagebreak .cke_icon{background-position:0 -672px;}.cke_skin_kama .cke_button_textcolor .cke_icon{background-position:0 -704px;}.cke_skin_kama .cke_button_bgcolor .cke_icon{background-position:0 -720px;}.cke_skin_kama .cke_button_form .cke_icon{background-position:0 -752px;}.cke_skin_kama .cke_button_checkbox .cke_icon{background-position:0 -768px;}.cke_skin_kama .cke_button_radio .cke_icon{background-position:0 -784px;}.cke_skin_kama .cke_button_textfield .cke_icon{background-position:0 -800px;}.cke_skin_kama
.cke_button_textarea .cke_icon{background-position:0 -816px;}.cke_skin_kama .cke_button_showblocks .cke_icon{background-position:0 -1136px;}
-.cke_skin_kama .cke_button_select .cke_icon{background-position:0 -832px;}.cke_skin_kama .cke_button_button .cke_icon{background-position:0 -848px;}.cke_skin_kama .cke_button_imagebutton .cke_icon{background-position:0 -864px;}.cke_skin_kama .cke_button_hiddenfield .cke_icon{background-position:0 -880px;}.cke_skin_kama .cke_button_undo .cke_icon{background-position:0 -208px;}.cke_skin_kama .cke_rtl .cke_button_undo .cke_icon{background-position:0 -224px;}.cke_skin_kama .cke_button_redo .cke_icon{background-position:0 -224px;}.cke_skin_kama .cke_rtl .cke_button_redo .cke_icon{background-position:0 -208px;}.cke_skin_kama .cke_button_templates .cke_icon{background-position:0 -80px;}.cke_skin_kama .cke_button_numberedlist .cke_icon{background-position:0 -400px;}.cke_skin_kama .cke_button_bulletedlist .cke_icon{background-position:0 -416px;}.cke_skin_kama .cke_mixed_dir_content .cke_button_numberedlist .cke_icon{background-position:0 -1217px;}.cke_skin_kama .cke_mixed_dir_content
.cke_button_bulletedlist .cke_icon{background-position:0 -1233px;}.cke_skin_kama .cke_button_outdent .cke_icon{background-position:0 -432px;}.cke_skin_kama .cke_button_indent .cke_icon{background-position:0 -448px;}.cke_skin_kama .cke_mixed_dir_content .cke_button_indent .cke_icon{background-position:0 -1265px;}.cke_skin_kama .cke_mixed_dir_content .cke_button_outdent .cke_icon{background-position:0 -1249px;}.cke_skin_kama .cke_button_justifyleft .cke_icon{background-position:0 -464px;}.cke_skin_kama .cke_button_justifycenter .cke_icon{background-position:0 -480px;}.cke_skin_kama .cke_button_justifyright .cke_icon{background-position:0 -496px;}.cke_skin_kama .cke_button_justifyblock .cke_icon{background-position:0 -512px;}.cke_skin_kama .cke_button_blockquote .cke_icon{background-position:0 -1152px;}.cke_skin_kama .cke_button_creatediv .cke_icon{background-position:0 -1168px;}.cke_skin_kama .cke_button_editdiv .cke_icon{background-position:0 -1184px;}.cke_skin_kama .cke_but
ton_removediv .cke_icon{background-position:0 -1200px;}.cke_skin_kama .cke_button_flash .cke_icon{background-position:0 -592px;}.cke_skin_kama .cke_button_pastefromword .cke_icon{background-position:0 -160px;}.cke_skin_kama .cke_button_save .cke_icon{background-position:0 -32px;}.cke_skin_kama .cke_button_about .cke_icon{background-position:0 -736px;}.cke_skin_kama .cke_button_maximize .cke_icon{background-position:0 -1040px;}.cke_skin_kama .cke_button_editdiv .cke_icon{background-position:0 -1184px;}.cke_skin_kama .cke_button_bidirtl .cke_icon{background-position:0 -1072px;}.cke_skin_kama .cke_button_bidiltr .cke_icon{background-position:0 -1056px;}.cke_skin_kama .cke_button_source .cke_label{display:inline;}.cke_skin_kama .cke_styles_panel{width:150px;height:170px;}.cke_skin_kama .cke_format_panel{width:150px;height:170px;}.cke_skin_kama .cke_font_panel{width:150px;height:170px;}.cke_skin_kama .cke_fontSize_panel{height:170px;}.cke_skin_kama .cke_fontSize .cke_text{width:2
5px;}.cke_skin_kama .cke_browser_iequirks .cke_fontSize .cke_text{width:32px;}html .cke_skin_kama{visibility:inherit;}html.cke_skin_kama_container{visibility:visible;}
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_
all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.
cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-rad
ius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_sele
cted a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,
a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0
;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:le
ft;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{
margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:ac
tive{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubu
tton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;
float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_
open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Cou
rier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_but
ton__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_ico
n,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button_
_indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenf
ield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke
_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.pn
g) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromwor
d_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke
_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__un
do_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/editor_ie.css b/share/static/RichText/skins/kama/editor_ie.css
new file mode 100644
index 0000000..2c20d93
--- /dev/null
+++ b/share/static/RichText/skins/kama/editor_ie.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_
all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.
cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-rad
ius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_sele
cted a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,
a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0
;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:le
ft;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{
margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:ac
tive{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubu
tton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;
float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_
open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Cou
rier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:a
ctive{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bid
irtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(i
cons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{bac
kground: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{bac
kground: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__te
xtfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-
repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(i
cons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_i
con{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{backgro
und: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/editor_ie7.css b/share/static/RichText/skins/kama/editor_ie7.css
new file mode 100644
index 0000000..e197672
--- /dev/null
+++ b/share/static/RichText/skins/kama/editor_ie7.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_
all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.
cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-rad
ius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_sele
cted a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,
a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0
;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:le
ft;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{
margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:ac
tive{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubu
tton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;
float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_
open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Cou
rier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:a
ctive{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,{display:inline-block;vertical-align:top}.cke_toolbox{display:inline-block;padding-bottom:5px;height:100%}.cke_rtl .cke_toolbox{padding-bottom:0}.cke_toolbar{margin-bottom:5px}.cke_rtl .cke_toolbar{margin-bottom:0}.cke_toolgroup{height:22px}a.cke_button{float:none;vertical-align:top}.cke_toolbar_
separator{display:inline-block;float:none;vertical-align:top}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_rtl .cke_button_arrow{padding-top:8px;margin-right:2px}.cke_rtl .cke_combo_inlinelabel{display:table-cell;vertical-align:middle;padding-bottom:8px}.cke_menubutton{display:block;height:24px}.cke_menubutton_inner{display:block;position:relative}.cke_menubutton_icon{height:16px;width:16px}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:inline-block}.cke_menubutton_label{width:auto;vertical-align:top;line-height:24px;height:24px;margin:0 10px 0 0}.cke_menuarrow{width:3px;height:5px;padding:0;position:absolute;right:8px;top:11px;background-position:0 -1411px}.cke_rtl .cke_menubutton_icon{position:absolute;right:0;top:0}.cke_rtl .cke_menubutton_label{float:right;clear:both;margin:0 24px 0 10px}.cke_hc .cke_rtl .cke_menubutton_label{margin-right:0}.cke_rtl .cke_menuarrow{le
ft:8px;right:auto;background-position:0 -1390px}.cke_hc .cke_menuarrow{top:5px;padding:0 5px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password{position:relative}.cke_wysiwyg_div{padding-top:0!important;padding-bottom:0!important}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-re
peat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.
cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px
!important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120p
x !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no
-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__
link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}
.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0
-2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !i
mportant;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/editor_ie8.css b/share/static/RichText/skins/kama/editor_ie8.css
new file mode 100644
index 0000000..59e0df5
--- /dev/null
+++ b/share/static/RichText/skins/kama/editor_ie8.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_
all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.
cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-rad
ius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_sele
cted a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,
a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0
;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:le
ft;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{
margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:ac
tive{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubu
tton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;
float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_
open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Cou
rier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:a
ctive{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-
repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.
cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.pn
g) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -105
6px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_
content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px !important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_
icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: url(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__
pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png)
no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png
) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/editor_iequirks.css b/share/static/RichText/skins/kama/editor_iequirks.css
new file mode 100644
index 0000000..464ce43
--- /dev/null
+++ b/share/static/RichText/skins/kama/editor_iequirks.css
@@ -0,0 +1,5 @@
+/*
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}.cke_reset_all,.cke_reset_all *{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_
all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.cke_chrome{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;border:1px solid #d3d3d3;padding:5px}.cke_hc.cke_chrome{padding:2px}.cke_inner{display:block;-moz-border-radius:5px;-webkit-border-radius:5px;-webkit-touch-callout:none;border-radius:5px;background:#d3d3d3 url(images/sprites.png) repeat-x 0 -1950px;background:-webkit-gradient(linear,0 -15,0 40,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-webkit-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-o-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:-ms-linear-gradient(top,#fff -15px,#d3d3d3 40px);background:linear-gradient(top,#fff -15px,#d3d3d3 40px);padding:5px}.cke_float{background:#fff}.cke_float .cke_inner{padding-bottom:0}.cke_hc .cke_contents{border:1px solid black}.
cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_resizer{width:0;height:0;overflow:hidden;border-width:12px 12px 0 12px;border-color:transparent #efefef transparent transparent;border-style:dashed solid dashed dashed;margin:10px 0 0;font-size:0;float:right;vertical-align:bottom;cursor:se-resize;opacity:.8}.cke_resizer_ltr{margin-left:-12px}.cke_resizer_rtl{float:left;border-color:transparent transparent transparent #efefef;border-style:dashed dashed dashed solid;margin-right:-12px;cursor:sw-resize}.cke_hc .cke_resizer{width:10px;height:10px;border:1px solid #fff;margin-left:0}.cke_hc .cke_resizer_rtl{margin-right:0}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.cke_panel{visibility:visible;border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-rad
ius:3px}.cke_menu_panel{padding:2px;margin:0}.cke_combopanel{border:1px solid #8f8f73;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-family:Arial,Verdana,sans-serif;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap}.cke_panel_listItem{margin:0}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}* html .cke_panel_listItem a{width:100%;color:#000}*:first-child+html .cke_panel_listItem a{color:#000}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff}.cke_hc .cke_panel_listItem.cke_sele
cted a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;width:12px;height:12px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,
a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;float:left;margin:0 6px 5px 0;padding:2px;background:url(images/sprites.png) repeat-x 0 -500px;background:-webkit-gradient(linear,0 0,0 100,from(#fff),to(#d3d3d3));background:-moz-linear-gradient(top,#fff,#d3d3d3 100px);background:-webkit-linear-gradient(top,#fff,#d3d3d3 100px);background:-o-linear-gradient(top,#fff,#d3d3d3 100px);background:-ms-linear-gradient(top,#fff,#d3d3d3 100px);background:linear-gradient(top,#fff,#d3d3d3 100px)}.cke_hc .cke_toolgroup{padding-right:0
;margin-right:4px}.cke_rtl .cke_toolgroup{float:right;margin-left:6px;margin-right:0}.cke_rtl.cke_hc .cke_toolgroup{padding-left:0;margin-left:4px}a.cke_button{display:inline-block;height:18px;padding:2px 4px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;outline:0;cursor:default;float:left;border:0}.cke_rtl .cke_button{float:right}.cke_hc .cke_button{border:1px solid black;padding:3px 5px;margin:-2px 4px 0 -2px}.cke_rtl.cke_hc .cke_button{margin:-2px -2px 0 4px}.cke_button_on{background-color:#a3d7ff}.cke_hc .cke_button_on{border-width:3px;padding:1px 3px}.cke_button_off{opacity:.7}.cke_button_disabled{opacity:.3}a.cke_button_on:hover,a.cke_button_on:focus,a.cke_button_on:active{background-color:#86caff}.cke_hc a.cke_button:hover{background:black}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background-color:#dff1ff;opacity:1}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:le
ft;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:16px;vertical-align:middle;float:left;cursor:default}.cke_hc .cke_button_label{padding:0;display:inline-block}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_button_arrow{display:inline-block;margin:7px 0 0 1px;width:0;height:0;border-width:3px;border-color:#2f2f2f transparent transparent transparent;border-style:solid dashed dashed dashed;cursor:default;vertical-align:middle}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:0 -2px 0 3px;width:auto;border:0}.cke_rtl.cke_hc .cke_button_arrow{margin:0 3px 0 -2px}.cke_toolbar_separator{float:left;border-left:solid 1px #d3d3d3;margin:3px 2px 0;height:16px}.cke_rtl .cke_toolbar_separator{border-right:solid 1px #d3d3d3;border-left:0;float:right}.cke_hc .cke_toolbar_separator{
margin-left:0;width:3px}.cke_rtl.cke_hc .cke_toolbar_separator{margin:3px 0 0 2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}.cke_toolbox_collapser{width:12px;height:11px;float:right;border:1px outset #d3d3d3;margin:11px 0 0;font-size:0;cursor:default;text-align:center}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_rtl .cke_toolbox_collapser{float:left}.cke_hc .cke_toolbox_collapser{border-width:1px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;border-width:3px;border-style:solid;border-color:transparent transparent #2f2f2f}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin:4px 2px 0 0;border-color:#2f2f2f transparent transparent}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0;margin-right:2px}.cke_menubutton{display:block}.cke_menuitem span{cursor:default}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:ac
tive{background-color:#d3d3d3;display:block}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#d3d3d3;opacity:.70;filter:alpha(opacity=70);padding:4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#9d9d9d}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_menubutton:hover,.cke_menubu
tton:focus,.cke_menubutton:active{background-color:#d3d3d3}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d3d3d3;height:2px;filter:alpha(opacity=70);opacity:.70}.cke_menuarrow{background-image:url(images/sprites.png);background-position:0 -1400px;background-repeat:no-repeat;padding:0 5px}.cke_rtl .cke_menuarrow{background-image:url(images/sprites.png);background-position:7px -1380px;background-repeat:no-repeat}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left}.cke_rtl .cke_combo{float:right}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px;filter:alpha(opacity = 70);opacity:.7}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_button{display:inline-block;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:url(images/sprites.png) 0 -100px repeat-x;
float:left;padding:2px 4px 2px 6px;height:22px;margin:0 5px 5px 0;background:-moz-linear-gradient(bottom,#fff,#d3d3d3 100px);background:-webkit-gradient(linear,left bottom,left -100,from(#fff),to(#d3d3d3))}.cke_combo_off .cke_combo_button:hover,.cke_combo_off .cke_combo_button:focus,.cke_combo_off .cke_combo_button:active{background:#dff1ff;outline:0}.cke_rtl .cke_combo_button{float:right;margin-left:5px;margin-right:0}.cke_hc .cke_combo_button{border:1px solid black;padding:1px 3px 1px 3px}.cke_hc .cke_rtl .cke_combo_button{border:1px solid black}.cke_combo_text{line-height:24px;text-overflow:ellipsis;overflow:hidden;color:#666;float:left;cursor:default;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right}.cke_combo_inlinelabel{font-style:italic;opacity:.70}.cke_combo_off .cke_combo_button:hover .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:active .cke_combo_inlinelabel,.cke_combo_off .cke_combo_button:focus .cke_combo_inlinelabel{opacity:1}.cke_combo_
open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 3px;width:5px}.cke_combo_arrow{margin:9px 0 0;float:left;opacity:.70;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #2f2f2f}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:4px}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{margin-top:5px;float:left}.cke_path_item,.cke_path_empty{display:inline-block;float:left;padding:1px 4px 0;color:#60676a;cursor:default;text-decoration:none;outline:0;border:0}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#efefef;opacity:.7;color:#000}.cke_button__source_label{display:inline}.cke_combo__fontsize .cke_combo_text{width:30px}.cke_combopanel__fontsize{width:120px}.cke_source{font-family:'Cou
rier New',Monospace;font-size:small;background-color:#fff;white-space:pre}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button_off{filter:alpha(opacity = 70)}.cke_button_on{filter:alpha(opacity = 100)}.cke_button_disabled{filter:alpha(opacity = 30)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_hc .cke_button_arrow{margin-top:5px}.cke_combo_inlinelabel{filter:alpha(opacity = 70)}.cke_combo_button_off:hover .cke_combo_inlinelabel{filter:alpha(opacity = 100)}.cke_combo_button_disabled .cke_combo_inlinelabel,.cke_combo_button_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:2px outset #efefef}.cke_toolbox_collapser .cke_arrow{margin:0 1px 1px 1px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-left:2px}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:a
ctive{filter:alpha(opacity = 70)}.cke_resizer{filter:alpha(opacity = 80)}.cke_hc .cke_resizer{filter:none;font-size:28px}.cke_menuarrow{position:absolute;right:2px}.cke_rtl .cke_menuarrow{position:absolute;left:2px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first{padding-left:10px!important}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *{float:none}.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon,.cke_rtl .cke_button_arrow{vertical-align:top;display:inline-block}.cke_toolgroup,.cke_combo_button,.cke_combo_arrow,.cke_button_arrow,.cke_toolbox_collapser,.cke_resizer{background-image:url(images/sprites_ie6.png)}.cke_toolgroup{background-color:#fff;display:inline-block;padding:2px}.cke_inner{pad
ding-top:2px;background-color:#d3d3d3;background-image:none}.cke_toolbar{margin:2px 0}.cke_rtl .cke_toolbar{margin-bottom:-1px;margin-top:-1px}.cke_toolbar_separator{vertical-align:top}.cke_toolbox{width:100%;float:left;padding-bottom:4px}.cke_rtl .cke_toolbox{margin-top:2px;margin-bottom:-4px}.cke_combo_button{background-color:#fff}.cke_rtl .cke_combo_button{padding-right:6px;padding-left:0}.cke_combo_text{line-height:21px}.cke_ltr .cke_combo_open{margin-left:-3px}.cke_combo_arrow{background-position:2px -1467px;margin:2px 0 0;border:0;width:8px;height:13px}.cke_rtl .cke_button_arrow{background-position-x:0}.cke_toolbox_collapser .cke_arrow{display:block;visibility:hidden;font-size:0;color:transparent;border:0}.cke_button_arrow{background-position:2px -1467px;margin:0;border:0;width:8px;height:15px}.cke_ltr .cke_button_arrow{background-position:0 -1467px;margin-left:-3px}.cke_toolbox_collapser{background-position:3px -1367px}.cke_toolbox_collapser_min{background-position:4p
x -1387px;margin:2px 0 0}.cke_rtl .cke_toolbox_collapser_min{background-position:4px -1408px}.cke_resizer{background-position:0 -1427px;width:12px;height:12px;border:0;margin:9px 0 0;vertical-align:baseline}.cke_dialog_tabs{position:absolute;top:38px;left:0}.cke_dialog_body{clear:both;margin-top:20px}a.cke_dialog_ui_button{background:url(images/sprites.png) repeat_x 0 _ 1069px}a.cke_dialog_ui_button:hover,a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{background-position:0 -1179px}a.cke_dialog_ui_button_ok{background:url(images/sprites.png) repeat_x 0 _ 1144px}a.cke_dialog_ui_button_cancel{background:url(images/sprites.png) repeat_x 0 _ 1105px}a.cke_dialog_ui_button_ok span,a.cke_dialog_ui_button_cancel span{background-image:none}.cke_menubutton_label{height:25px}.cke_menuarrow{background-image:url(images/sprites_ie6.png)}.cke_menuitem .cke_icon,.cke_button_icon,.cke_menuitem .cke_disabled .cke_icon,.cke_button_disabled .cke_button_icon{filter:}.cke_menuseparator
{font-size:0}.cke_colorbox{font-size:0}.cke_source{white-space:normal}.cke_button__about_icon{background: url(icons.png) no-repeat 0 -0px !important;}.cke_button__bold_icon{background: url(icons.png) no-repeat 0 -32px !important;}.cke_button__italic_icon{background: url(icons.png) no-repeat 0 -64px !important;}.cke_button__strike_icon{background: url(icons.png) no-repeat 0 -96px !important;}.cke_button__subscript_icon{background: url(icons.png) no-repeat 0 -128px !important;}.cke_button__superscript_icon{background: url(icons.png) no-repeat 0 -160px !important;}.cke_button__underline_icon{background: url(icons.png) no-repeat 0 -192px !important;}.cke_button__bidiltr_icon{background: url(icons.png) no-repeat 0 -224px !important;}.cke_button__bidirtl_icon{background: url(icons.png) no-repeat 0 -256px !important;}.cke_button__blockquote_icon{background: url(icons.png) no-repeat 0 -288px !important;}.cke_rtl .cke_button__copy_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cop
y_icon{background: url(icons.png) no-repeat 0 -320px !important;}.cke_ltr .cke_button__copy_icon{background: url(icons.png) no-repeat 0 -352px !important;}.cke_rtl .cke_button__cut_icon,.cke_mixed_dir_content .cke_rtl .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -384px !important;}.cke_ltr .cke_button__cut_icon{background: url(icons.png) no-repeat 0 -416px !important;}.cke_rtl .cke_button__paste_icon,.cke_mixed_dir_content .cke_rtl .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -448px !important;}.cke_ltr .cke_button__paste_icon{background: url(icons.png) no-repeat 0 -480px !important;}.cke_button__bgcolor_icon{background: url(icons.png) no-repeat 0 -512px !important;}.cke_button__textcolor_icon{background: url(icons.png) no-repeat 0 -544px !important;}.cke_rtl .cke_button__templates_icon,.cke_mixed_dir_content .cke_rtl .cke_button__templates_icon{background: url(icons.png) no-repeat 0 -576px !important;}.cke_ltr .cke_button__templates_icon{ba
ckground: url(icons.png) no-repeat 0 -608px !important;}.cke_button__creatediv_icon{background: url(icons.png) no-repeat 0 -640px !important;}.cke_rtl .cke_button__bulletedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -672px !important;}.cke_ltr .cke_button__bulletedlist_icon{background: url(icons.png) no-repeat 0 -704px !important;}.cke_rtl .cke_button__numberedlist_icon,.cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -736px !important;}.cke_ltr .cke_button__numberedlist_icon{background: url(icons.png) no-repeat 0 -768px !important;}.cke_rtl .cke_button__indent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -800px !important;}.cke_ltr .cke_button__indent_icon{background: url(icons.png) no-repeat 0 -832px !important;}.cke_rtl .cke_button__outdent_icon,.cke_mixed_dir_content .cke_rtl .cke_button__outdent_
icon{background: url(icons.png) no-repeat 0 -864px !important;}.cke_ltr .cke_button__outdent_icon{background: url(icons.png) no-repeat 0 -896px !important;}.cke_rtl .cke_button__find_icon,.cke_mixed_dir_content .cke_rtl .cke_button__find_icon{background: url(icons.png) no-repeat 0 -928px !important;}.cke_ltr .cke_button__find_icon{background: url(icons.png) no-repeat 0 -960px !important;}.cke_button__replace_icon{background: url(icons.png) no-repeat 0 -992px !important;}.cke_button__flash_icon{background: url(icons.png) no-repeat 0 -1024px !important;}.cke_button__button_icon{background: url(icons.png) no-repeat 0 -1056px !important;}.cke_button__checkbox_icon{background: url(icons.png) no-repeat 0 -1088px !important;}.cke_button__form_icon{background: url(icons.png) no-repeat 0 -1120px !important;}.cke_button__hiddenfield_icon{background: url(icons.png) no-repeat 0 -1152px !important;}.cke_button__imagebutton_icon{background: url(icons.png) no-repeat 0 -1184px !important;}.
cke_button__radio_icon{background: url(icons.png) no-repeat 0 -1216px !important;}.cke_rtl .cke_button__select_icon,.cke_mixed_dir_content .cke_rtl .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1248px !important;}.cke_ltr .cke_button__select_icon{background: url(icons.png) no-repeat 0 -1280px !important;}.cke_rtl .cke_button__textarea_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1312px !important;}.cke_ltr .cke_button__textarea_icon{background: url(icons.png) no-repeat 0 -1344px !important;}.cke_rtl .cke_button__textfield_icon,.cke_mixed_dir_content .cke_rtl .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1376px !important;}.cke_ltr .cke_button__textfield_icon{background: url(icons.png) no-repeat 0 -1408px !important;}.cke_button__horizontalrule_icon{background: url(icons.png) no-repeat 0 -1440px !important;}.cke_button__iframe_icon{background: url(icons.png) no-repeat 0 -1472px
!important;}.cke_button__image_icon{background: url(icons.png) no-repeat 0 -1504px !important;}.cke_button__smiley_icon{background: url(icons.png) no-repeat 0 -1536px !important;}.cke_button__justifyblock_icon{background: url(icons.png) no-repeat 0 -1568px !important;}.cke_button__justifycenter_icon{background: url(icons.png) no-repeat 0 -1600px !important;}.cke_button__justifyleft_icon{background: url(icons.png) no-repeat 0 -1632px !important;}.cke_button__justifyright_icon{background: url(icons.png) no-repeat 0 -1664px !important;}.cke_rtl .cke_button__anchor_icon,.cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1696px !important;}.cke_ltr .cke_button__anchor_icon{background: url(icons.png) no-repeat 0 -1728px !important;}.cke_button__link_icon{background: url(icons.png) no-repeat 0 -1760px !important;}.cke_button__unlink_icon{background: url(icons.png) no-repeat 0 -1792px !important;}.cke_button__maximize_icon{background: u
rl(icons.png) no-repeat 0 -1824px !important;}.cke_rtl .cke_button__newpage_icon,.cke_mixed_dir_content .cke_rtl .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1856px !important;}.cke_ltr .cke_button__newpage_icon{background: url(icons.png) no-repeat 0 -1888px !important;}.cke_rtl .cke_button__pagebreak_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1920px !important;}.cke_ltr .cke_button__pagebreak_icon{background: url(icons.png) no-repeat 0 -1952px !important;}.cke_rtl .cke_button__pastetext_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -1984px !important;}.cke_ltr .cke_button__pastetext_icon{background: url(icons.png) no-repeat 0 -2016px !important;}.cke_rtl .cke_button__pastefromword_icon,.cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon{background: url(icons.png) no-repeat 0 -2048px !important;}.cke_ltr .cke_button__pastefr
omword_icon{background: url(icons.png) no-repeat 0 -2080px !important;}.cke_rtl .cke_button__preview_icon,.cke_mixed_dir_content .cke_rtl .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2112px !important;}.cke_ltr .cke_button__preview_icon{background: url(icons.png) no-repeat 0 -2144px !important;}.cke_button__print_icon{background: url(icons.png) no-repeat 0 -2176px !important;}.cke_button__removeformat_icon{background: url(icons.png) no-repeat 0 -2208px !important;}.cke_button__save_icon{background: url(icons.png) no-repeat 0 -2240px !important;}.cke_button__selectall_icon{background: url(icons.png) no-repeat 0 -2272px !important;}.cke_rtl .cke_button__showblocks_icon,.cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2304px !important;}.cke_ltr .cke_button__showblocks_icon{background: url(icons.png) no-repeat 0 -2336px !important;}.cke_rtl .cke_button__source_icon,.cke_mixed_dir_content .cke_rtl .cke_butt
on__source_icon{background: url(icons.png) no-repeat 0 -2368px !important;}.cke_ltr .cke_button__source_icon{background: url(icons.png) no-repeat 0 -2400px !important;}.cke_button__specialchar_icon{background: url(icons.png) no-repeat 0 -2432px !important;}.cke_button__scayt_icon{background: url(icons.png) no-repeat 0 -2464px !important;}.cke_button__table_icon{background: url(icons.png) no-repeat 0 -2496px !important;}.cke_rtl .cke_button__redo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2528px !important;}.cke_ltr .cke_button__redo_icon{background: url(icons.png) no-repeat 0 -2560px !important;}.cke_rtl .cke_button__undo_icon,.cke_mixed_dir_content .cke_rtl .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2592px !important;}.cke_ltr .cke_button__undo_icon{background: url(icons.png) no-repeat 0 -2624px !important;}.cke_button__spellchecker_icon{background: url(icons.png) no-repeat 0 -2656px !important;}
\ No newline at end of file
diff --git a/share/static/RichText/skins/kama/icons.png b/share/static/RichText/skins/kama/icons.png
index a9846c0..a2a3857 100644
Binary files a/share/static/RichText/skins/kama/icons.png and b/share/static/RichText/skins/kama/icons.png differ
diff --git a/share/static/RichText/skins/kama/icons_rtl.png b/share/static/RichText/skins/kama/icons_rtl.png
deleted file mode 100644
index 0b242b1..0000000
Binary files a/share/static/RichText/skins/kama/icons_rtl.png and /dev/null differ
diff --git a/share/static/RichText/skins/kama/readme.md b/share/static/RichText/skins/kama/readme.md
new file mode 100644
index 0000000..eaaa301
--- /dev/null
+++ b/share/static/RichText/skins/kama/readme.md
@@ -0,0 +1,40 @@
+"Kama" Skin
+====================
+
+"Kama" is the default skin of CKEditor 3.x.
+It's been ported to CKEditor 4 and fully featured.
+
+For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK)
+documentation.
+
+Directory Structure
+-------------------
+
+CSS parts:
+- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance,
+- **mainui.css**: the file contains styles of entire editor outline structures,
+- **toolbar.css**: the file contains styles of the editor toolbar space (top),
+- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar,
+- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded
+until the first panel open up,
+- **elementspath.css**: the file contains styles of the editor elements path bar (bottom),
+- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down,
+it's not loaded until the first menu open up,
+- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open,
+- **reset.css**: the file defines the basis of style resets among all editor UI spaces,
+- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference,
+- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks.
+
+Other parts:
+- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature,
+- **icons/**: contains all skin defined icons,
+- **images/**: contains a fill general used images.
+
+License
+-------
+
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html).
+
+See LICENSE.md for more information.
diff --git a/share/static/RichText/skins/kama/skin.js b/share/static/RichText/skins/kama/skin.js
deleted file mode 100644
index 936edc1..0000000
--- a/share/static/RichText/skins/kama/skin.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.skins.add('kama',(function(){var a=[],b='cke_ui_color';if(CKEDITOR.env.ie&&CKEDITOR.env.version<7)a.push('icons.png','images/sprites_ie6.png','images/dialog_sides.gif');return{preload:a,editor:{css:['editor.css']},dialog:{css:['dialog.css']},templates:{css:['templates.css']},margins:[0,0,0,0],init:function(c){if(c.config.width&&!isNaN(c.config.width))c.config.width-=12;var d=[],e=/\$color/g,f='/* UI Color Support */.cke_skin_kama .cke_menuitem .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover .cke_label,.cke_skin_kama .cke_menuitem a:focus .cke_label,.cke_skin_kama .cke_menuitem a:active .cke_label{\tbackground-color: $color !important;}.cke_skin_kama .ck
e_menuitem a.cke_disabled:hover .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_label{\tbackground-color: transparent !important;}.cke_skin_kama .cke_menuitem a.cke_disabled:hover .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:focus .cke_icon_wrapper,.cke_skin_kama .cke_menuitem a.cke_disabled:active .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuitem a.cke_disabled .cke_icon_wrapper{\tbackground-color: $color !important;\tborder-color: $color !important;}.cke_skin_kama .cke_menuseparator{\tbackground-color: $color !important;}.cke_skin_kama .cke_menuitem a:hover,.cke_skin_kama .cke_menuitem a:focus,.cke_skin_kama .cke_menuitem a:active{\tbackground-color: $color !important;}';if(CKEDITOR.env.webkit){f=f.split('}').slice(0,-1);for(var g=0;g<f.length;g++)f[g]=f[g].split('{');}function h(k){var l=k.getById(b);if(!l){
l=k.getHead().append('style');l.setAttribute('id',b);l.setAttribute('type','text/css');}return l;};function i(k,l,m){var n,o,p;for(var q=0;q<k.length;q++){if(CKEDITOR.env.webkit)for(o=0;o<l.length;o++){p=l[o][1];for(n=0;n<m.length;n++)p=p.replace(m[n][0],m[n][1]);k[q].$.sheet.addRule(l[o][0],p);}else{p=l;for(n=0;n<m.length;n++)p=p.replace(m[n][0],m[n][1]);if(CKEDITOR.env.ie)k[q].$.styleSheet.cssText+=p;else k[q].$.innerHTML+=p;}}};var j=/\$color/g;CKEDITOR.tools.extend(c,{uiColor:null,getUiColor:function(){return this.uiColor;
-},setUiColor:function(k){var l,m=h(CKEDITOR.document),n='.cke_editor_'+CKEDITOR.tools.escapeCssSelector(c.name),o=[n+' .cke_wrapper',n+'_dialog .cke_dialog_contents',n+'_dialog a.cke_dialog_tab',n+'_dialog .cke_dialog_footer'].join(','),p='background-color: $color !important;';if(CKEDITOR.env.webkit)l=[[o,p]];else l=o+'{'+p+'}';return(this.setUiColor=function(q){var r=[[j,q]];c.uiColor=q;i([m],l,r);i(d,f,r);})(k);}});c.on('menuShow',function(k){var l=k.data[0],m=l.element.getElementsByTag('iframe').getItem(0).getFrameDocument();if(!m.getById('cke_ui_color')){var n=h(m);d.push(n);var o=c.getUiColor();if(o)i([n],f,[[j,o]]);}});if(c.config.uiColor)c.setUiColor(c.config.uiColor);}};})());(function(){CKEDITOR.dialog?a():CKEDITOR.on('dialogPluginReady',a);function a(){CKEDITOR.dialog.on('resize',function(b){var c=b.data,d=c.width,e=c.height,f=c.dialog,g=f.parts.contents;if(c.skin!='kama')return;g.setStyles({width:d+'px',height:e+'px'});setTimeout(function(){var h=f.parts.dialog.ge
tChild([0,0,0]),i=h.getChild(0),j=h.getChild(2);j.setStyle('width',i.$.offsetWidth+'px');j=h.getChild(7);j.setStyle('width',i.$.offsetWidth-28+'px');j=h.getChild(4);j.setStyle('height',i.$.offsetHeight-31-14+'px');j=h.getChild(5);j.setStyle('height',i.$.offsetHeight-31-14+'px');},100);});};})();
diff --git a/share/static/RichText/skins/kama/templates.css b/share/static/RichText/skins/kama/templates.css
deleted file mode 100644
index 1c6b195..0000000
--- a/share/static/RichText/skins/kama/templates.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_kama .cke_tpl_list{border:#dcdcdc 2px solid;background-color:#fff;overflow-y:auto;overflow-x:hidden;width:100%;height:220px;}.cke_skin_kama .cke_tpl_item{margin:5px;padding:7px;border:#eee 1px solid;*width:88%;}.cke_skin_kama .cke_tpl_preview{border-collapse:separate;text-indent:0;width:100%;}.cke_skin_kama .cke_tpl_preview td{padding:2px;vertical-align:middle;}.cke_skin_kama .cke_tpl_preview .cke_tpl_preview_img{width:100px;}.cke_skin_kama .cke_tpl_preview span{white-space:normal;}.cke_skin_kama .cke_tpl_title{font-weight:bold;}.cke_skin_kama .cke_tpl_list a:active .cke_tpl_item,.cke_skin_kama .cke_tpl_list a:hover .cke_tpl_item,.cke_skin_kama .cke_tpl_list a:focus .cke_tpl_item{border:#f93 1px solid;background-color:#fffacd;}.cke_skin_kama .cke_tpl_list a:active *,.cke_skin_kama .cke_tpl_list a:hover *,.cke_skin_kama .cke_tpl_list a:focus *{cursor:pointer;}.cke_skin_kama .cke_browser_ie6 .cke_tpl_list a:active,.cke_skin_kama .cke_browser_ie6 .cke_tpl_list a:hover
,.cke_skin_kama .cke_browser_ie6 .cke_tpl_list a:focus{background-position:0 0;}.cke_skin_kama .cke_hc .cke_tpl_list a:active .cke_tpl_item,.cke_skin_kama .cke_hc .cke_tpl_list a:hover .cke_tpl_item,.cke_skin_kama .cke_hc .cke_tpl_list a:focus .cke_tpl_item{border-width:3px;}.cke_skin_kama .cke_tpl_empty,.cke_tpl_loading{text-align:center;padding:5px;}
diff --git a/share/static/RichText/skins/office2003/dialog.css b/share/static/RichText/skins/office2003/dialog.css
deleted file mode 100644
index 4ab12b7..0000000
--- a/share/static/RichText/skins/office2003/dialog.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-body .cke_dialog{visibility:visible;}.cke_skin_office2003 table.cke_dialog.cke_browser_gecko{display:block;}.cke_skin_office2003 .cke_dialog_body{margin-left:16px;margin-right:16px;margin-top:2px;margin-bottom:20px;z-index:1;position:relative;_position:static;}.cke_skin_office2003 .cke_dialog_tl,.cke_skin_office2003 .cke_dialog_tr,.cke_skin_office2003 .cke_dialog_tc,.cke_skin_office2003 .cke_dialog_bl,.cke_skin_office2003 .cke_dialog_br,.cke_skin_office2003 .cke_dialog_bc{background-image:url(images/sprites.png);background-repeat:no-repeat;position:absolute;_background-image:url(images/sprites_ie6.png);_z-index:-1;}.cke_skin_office2003 .cke_dialog_tl{background-position:-16px -16px;height:16px;width:16px;top:0;left:0;}.cke_skin_office2003 .cke_rtl .cke_dialog_tl{background-position:-16px -397px;}.cke_skin_office2003 .cke_dialog_tr{background-position:-16px -76px;height:16px;width:16px;top:0;right:0;}.cke_skin_office2003 .cke_rtl .cke_dialog_tr{background-position:-16px -457p
x;}.cke_skin_office2003 .cke_dialog_tc{background-position:0 -136px;background-repeat:repeat-x;height:16px;top:0;left:16px;right:16px;}.cke_skin_office2003 .cke_dialog_bl{background-position:-16px -196px;height:51px;width:30px;bottom:0;left:0;}.cke_skin_office2003 .cke_rtl .cke_dialog_bl{background-position:-16px -517px;}.cke_skin_office2003 .cke_dialog_br{background-position:-16px -263px;height:51px;width:30px;bottom:0;right:0;}.cke_skin_office2003 .cke_rtl .cke_dialog_br{background-position:-16px -584px;}.cke_skin_office2003 .cke_dialog_bc{background-position:0 -330px;background-repeat:repeat-x;height:51px;bottom:0;left:30px;right:30px;}.cke_skin_office2003 .cke_dialog_ml,.cke_skin_office2003 .cke_dialog_mr{background-image:url(images/dialog_sides.png);background-repeat:repeat-y;position:absolute;width:16px;top:16px;bottom:51px;_background-image:url(images/dialog_sides.gif);_top:auto;}.cke_skin_office2003 .cke_rtl .cke_dialog_ml,.cke_skin_office2003 .cke_rtl .cke_dialog_mr
{background-image:url(images/dialog_sides_rtl.png);_background-image:url(images/dialog_sides.gif);}.cke_skin_office2003 .cke_dialog_ml{background-position:0 0;left:0;}.cke_skin_office2003 .cke_dialog_mr{background-position:-16px 0;right:0;}.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_ml,.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_mr{margin-top:3px;}.cke_skin_office2003 .cke_dialog_title{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -678px;background-repeat:repeat-x;font-weight:bold;font-size:14pt;color:#0E3460;background-color:#8db1ff;padding:3px 10px 26px 10px;cursor:move;position:relative;}.cke_skin_office2003 .cke_browser_ie.cke_rtl .cke_dialog_title{position:static!important;unicode-bidi:bidi-override;}.cke_skin_office2003 .cke_dialog_contents{background-color:#f7f8fd;border:#2b66c9 1px solid;overflow:auto;padding:5px 10px;}.cke_skin_office2003 .cke_dialog_footer{background-color:#8db1ff;
text-align:right;}.cke_skin_office2003 .cke_rtl .cke_dialog_footer{text-align:left;}.cke_skin_office2003 .cke_dialog_tabs{height:23px;background-color:#8db1ff;display:inline-block;margin-left:10px;margin-right:10px;margin-top:-23px;position:absolute;z-index:2;}.cke_skin_office2003 .cke_rtl .cke_dialog_tabs{right:10px;}.cke_skin_office2003 a.cke_dialog_tab,.cke_skin_office2003 a:link.cke_dialog_tab,.cke_skin_office2003 a:active.cke_dialog_tab,.cke_skin_office2003 a:hover.cke_dialog_tab,.cke_skin_office2003 a:visited.cke_dialog_tab{color:#0E3460;border-left:1px solid #2b66c9;border-right:1px solid #2b66c9;border-top:1px solid #2b66c9;height:14px;padding:4px 5px;display:inline-block;cursor:pointer;}.cke_skin_office2003 .cke_browser_gecko18 a.cke_dialog_tab,.cke_skin_office2003 .cke_browser_gecko18 a:link.cke_dialog_tab,.cke_skin_office2003 .cke_browser_gecko18 a:active.cke_dialog_tab,.cke_skin_office2003 .cke_browser_gecko18 a:hover.cke_dialog_tab,.cke_skin_office2003 .cke_brow
ser_gecko18 a:visited.cke_dialog_tab{display:inline;position:relative;top:6px;}.cke_skin_office2003 a:hover.cke_dialog_tab{background-color:#f7f8fd;}
-.cke_skin_office2003 .cke_hc a:hover.cke_dialog_tab{padding:2px 3px!important;border-width:3px;}.cke_skin_office2003 a.cke_dialog_tab_selected,.cke_skin_office2003 a:link.cke_dialog_tab_selected,.cke_skin_office2003 a:active.cke_dialog_tab_selected,.cke_skin_office2003 a:hover.cke_dialog_tab_selected,.cke_skin_office2003 a:visited.cke_dialog_tab_selected{border-bottom:1px solid #f7f8fd;background-color:#f7f8fd;font-weight:bold;cursor:default;}.cke_skin_office2003 .cke_hc a.cke_dialog_tab_selected,.cke_skin_office2003 .cke_hc a:link.cke_dialog_tab_selected,.cke_skin_office2003 .cke_hc a:active.cke_dialog_tab_selected,.cke_skin_office2003 .cke_hc a:hover.cke_dialog_tab_selected,.cke_skin_office2003 .cke_hc a:visited.cke_dialog_tab_selected{padding:2px 3px!important;border-width:3px;}.cke_skin_office2003 .cke_single_page .cke_dialog_tabs{display:none;}.cke_skin_office2003 .cke_hc .cke_dialog_tabs a,.cke_skin_office2003 .cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opaci
ty=100);border:1px solid white;}.cke_skin_office2003 .cke_single_page .cke_dialog_title{padding-bottom:3px;}.cke_skin_office2003 .cke_dialog_ui_vbox table,.cke_skin_office2003 .cke_dialog_ui_hbox table{margin:auto;}.cke_skin_office2003 .cke_dialog_ui_vbox_child{padding:5px 0;}.cke_skin_office2003 input.cke_dialog_ui_input_text,.cke_skin_office2003 input.cke_dialog_ui_input_password{background-color:white;border:none;padding:0;width:100%;height:14px;}.cke_skin_office2003 div.cke_dialog_ui_input_text,.cke_skin_office2003 div.cke_dialog_ui_input_password{background-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_office2003 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px;}.cke_skin_office2003 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,.cke_skin_office2003 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password{border-width:0;}.cke_skin_office2003 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,.cke_skin_office2003 .cke
_browser_gecko18.cke_hc div.cke_dialog_ui_input_password{border-width:1px;}.cke_skin_office2003 textarea.cke_dialog_ui_input_textarea{background-color:white;border:none;padding:0;width:100%;_width:99%;overflow:auto;resize:none;}.cke_skin_office2003 div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_office2003 div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default;}.cke_skin_office2003 .cke_dialog_ui_hbox{width:100%;}.cke_skin_office2003 .cke_dialog_ui_hbox_first,.cke_skin_office2003 .cke_dialog_ui_hbox_child,.cke_skin_office2003 .cke_dialog_ui_hbox_last{vertical-align:top;}.cke_skin_office2003 .cke_ltr .cke_dialog_ui_hbox_first,.cke_skin_office2003 .cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px;}.cke_skin_office2003 .cke_rtl .cke_dialog_ui_hbox_first,.cke_skin_office2003 .cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px;}.cke_skin_office2003 a.cke_dialog_ui_button{border-colla
pse:separate;cursor:default;}.cke_skin_office2003 span.cke_dialog_ui_button{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -678px;background-repeat:repeat-x;border:#0E3460 1px solid;padding:2px 10px;text-align:center;color:#0E3460;background-color:#8db1ff;display:inline-block;cursor:default;}.cke_skin_office2003 .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button{display:block;}.cke_skin_office2003 a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3;}.cke_skin_office2003 a:focus span.cke_dialog_ui_button,.cke_skin_office2003 a:active span.cke_dialog_ui_button{background-color:#8db1ff;}.cke_skin_office2003 .cke_hc a:focus span.cke_dialog_ui_button,.cke_skin_office2003 .cke_hc a:active span.cke_dialog_ui_button{border-width:2px;}.cke_skin_office2003 .cke_dialog_footer_buttons{display:inline-table;margin-right:12px;margin-left:12px;width:auto;
position:relative;}.cke_skin_office2003 .cke_browser_gecko18 .cke_dialog_footer_buttons{display:inline;}.cke_skin_office2003 .cke_dialog_footer_buttons span.cke_dialog_ui_button{width:60px;margin:7px 0;}
-.cke_skin_office2003 strong{font-weight:bold;}.cke_skin_office2003 a.cke_dialog_close_button,.cke_skin_office2003 a:hover.cke_dialog_close_button,.cke_skin_office2003 .cke_browser_ie6 a.cke_dialog_close_button,.cke_skin_office2003 .cke_browser_ie6 a:hover.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:-20px -655px;position:absolute;cursor:pointer;text-align:center;height:21px;width:21px;top:4px;_background-image:url(images/sprites_ie6.png);}.cke_skin_office2003 a.cke_dialog_close_button span{display:none;}.cke_skin_office2003 .cke_ltr a.cke_dialog_close_button{right:10px;_right:22px;}.cke_skin_office2003 .cke_rtl a.cke_dialog_close_button,.cke_skin_office2003 .cke_rtl a:hover.cke_dialog_close_button{left:10px;_left:16px;_top:6px;}.cke_skin_office2003 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,.cke_skin_office2003 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button{position:relative;float:left;marg
in-top:-55px;margin-left:-7px;}.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,.cke_skin_office2003 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button{margin-top:-32px;}.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,.cke_skin_office2003 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button{margin-top:0;}.cke_skin_office2003 .cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white;}.cke_skin_office2003 .cke_dialog_ui_input_file{width:100%;height:25px;}.cke_skin_office2003 .cke_dialog .cke_dark_background{background-color:#eaead1;}.cke_skin_office2003 .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_office2003 .cke_dialog .cke_centered{text-align:center;}.cke_skin_office2003 .cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-s
ize:1px;}.cke_skin_office2003 .cke_rtl .cke_dialog a.cke_btn_reset{float:left;}.cke_skin_office2003 .cke_dialog a.cke_btn_locked,.cke_skin_office2003 .cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px;}.cke_skin_office2003 .cke_rtl .cke_dialog a.cke_btn_locked,.cke_skin_office2003 .cke_rtl .cke_dialog a.cke_btn_unlocked{float:right;}.cke_skin_office2003 .cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif);}.cke_skin_office2003 .cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer;}.cke_skin_office2003 .cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:160px;width:230px;padding:2px;background-color:white;}.cke_skin_office2003 .cke_dialog .ImagePreviewBox table td{white-space:normal;}.cke_skin_office2003 .cke_browser_iequirks .cke_dialog_page_contents{_position:absolute;}.c
ke_skin_office2003 .cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4;}.cke_skin_office2003 .cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white;}.cke_skin_office2003 .cke_dialog .cke_pastetext{width:346px;height:170px;}.cke_skin_office2003 .cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none;}.cke_skin_office2003 .cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black;}.cke_skin_office2003 .cke_dialog .cke_dark_background{text-align:center;background-color:#eaead1;font-size:14px;}.cke_skin_office2003 .cke_dialog .cke_light_background{text-align:center;background-color:#ffffbe;}.cke_skin_office2003 .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_office2003 .cke_disabled{color:
#a0a0a0;}.cke_skin_office2003 .cke_hc .cke_dialog_title,.cke_skin_office2003 .cke_hc .cke_dialog_tabs,.cke_skin_office2003 .cke_hc .cke_dialog_contents,.cke_skin_office2003 .cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid;}
-.cke_skin_office2003 .cke_hc .cke_dialog_title{border-top:1px solid;}.cke_skin_office2003 .cke_hc .cke_dialog_footer{border-bottom:1px solid;}.cke_skin_office2003 .cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px;}.cke_skin_office2003 .cke_dialog_body .cke_label{display:none;}.cke_skin_office2003 .cke_dialog_body label.cke_required{font-weight:bold;}.cke_skin_office2003 .cke_hc .cke_dialog_body .cke_label{display:inline;}.cke_skin_office2003 .cke_hc a.cke_btn_locked,.cke_skin_office2003 .cke_hc a.cke_btn_unlocked,.cke_skin_office2003 .cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;}.cke_skin_office2003 .cke_rtl.cke_hc a.cke_btn_locked,.cke_skin_office2003 .cke_rtl.cke_hc a.cke_btn_unlocked,.cke_skin_office2003 .cke_rtl.cke_hc a.cke_btn_reset{float:right;}
diff --git a/share/static/RichText/skins/office2003/editor.css b/share/static/RichText/skins/office2003/editor.css
deleted file mode 100644
index 5bb165b..0000000
--- a/share/static/RichText/skins/office2003/editor.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_office2003 *,.cke_skin_office2003 a:hover,.cke_skin_office2003 a:link,.cke_skin_office2003 a:visited,.cke_skin_office2003 a:active{margin:0;padding:0;border:0;background:transparent;text-decoration:none;font:normal normal normal 100% Sans-Serif;width:auto;height:auto;border-collapse:collapse;text-align:left;vertical-align:baseline;white-space:nowrap;cursor:auto;color:#000;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_skin_office2003 .cke_rtl *,.cke_skin_office2003 .cke_rtl a:hover,.cke_skin_office2003 .cke_rtl a:link,.cke_skin_office2003 .cke_rtl a:visited,.cke_skin_office2003 .cke_rtl a:active,.cke_rtl .cke_skin_office2003 *,.cke_rtl .cke_skin_office2003 a:hover,.cke_rtl .cke_skin_office2003 a:link,.cke_rtl .cke_skin_office2003 a:visited,.cke_rtl .cke_skin_office2003 a:active{text-align:right;}.cke_skin_office2003 iframe{vertical-align:inherit;}.cke_skin_office2003 textarea{white-space:pre;}.cke_skin_office2003 .cke_browse
r_gecko textarea{cursor:text;}.cke_skin_office2003 .cke_browser_gecko textarea[disabled]{cursor:default;}.cke_skin_office2003 input[type="text"],.cke_skin_office2003 input[type="password"]{cursor:text;}.cke_skin_office2003 input[type="text"][disabled],.cke_skin_office2003 input[type="password"][disabled]{cursor:default;}.cke_skin_office2003 fieldset{padding:10px;border:2px groove #E0DFE3;}.cke_skin_office2003 .cke_editor{display:inline-table;width:100%;}.cke_skin_office2003 span.cke_browser_webkit,.cke_skin_office2003 span.cke_browser_gecko18{display:block;}.cke_skin_office2003,.cke_skin_office2003 .cke_wrapper{display:block;}.cke_skin_office2003 .cke_top,.cke_skin_office2003 .cke_bottom,.cke_shared .cke_skin_office2003{background-color:#f7f8fd;}.cke_skin_office2003 .cke_top{border-top:solid 1px #fafaf5;border-left:solid 1px #fafaf5;border-right:solid 1px #696969;border-bottom:solid 2px #696969;}.cke_skin_office2003 .cke_rtl .cke_top{border-left:solid 1px #696969;border-righ
t:solid 1px #fafaf5;}.cke_skin_office2003 .cke_bottom{border-left:solid 1px #696969;border-right:solid 1px #696969;border-bottom:solid 1px #696969;}.cke_skin_office2003 .cke_contents{border:solid 1px #696969;background-color:white;}.cke_skin_office2003 .cke_focus{outline:auto 5px -webkit-focus-ring-color;}.cke_skin_office2003 textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;white-space:pre;background-color:#fff;}.cke_skin_office2003 .cke_browser_iequirks textarea.cke_source{_white-space:normal;}.cke_skin_office2003 .cke_resizer{width:12px;height:12px;margin-top:16px;display:block;float:right;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -1088px;background-repeat:no-repeat;cursor:se-resize;}.cke_skin_office2003 .cke_rtl .cke_resizer{cursor:sw-resize;background-position:0 -1115px;float:left;}.cke_skin_office2003 .cke_resizer_horizontal,.cke_skin_office2003 .cke_rtl .cke_resizer_horizontal{cur
sor:e-resize;}.cke_skin_office2003 .cke_resizer_vertical,.cke_skin_office2003 .cke_rtl .cke_resizer_vertical{cursor:n-resize;}.cke_skin_office2003 .cke_maximized .cke_resizer{display:none;}.cke_skin_office2003 .cke_browser_ie6 .cke_contents textarea,.cke_skin_office2003 .cke_browser_ie7 .cke_contents textarea{position:absolute;}.cke_skin_office2003 .cke_voice_label{display:none;}.cke_skin_office2003 legend.cke_voice_label{display:none;}.cke_skin_office2003 .cke_browser_ie legend.cke_voice_label{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_office2003 .cke_panel{border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}.cke_skin_office2003 .cke_panel iframe{width:100%;height:100%;}cke_skin_office2003 .cke_panel_frame .cke_label{display:none;}html.cke_skin_office2003_container{overflow:auto;overflow-x:hidden;}body.cke_panel_frame{overflow:auto;}ul.cke
_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap;}li.cke_panel_listItem{margin:0;}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;}
-* html .cke_panel_listItem a{width:100%;color:#000;}*:first-child+html .cke_panel_listItem a{color:#000;}.cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff;}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff;}.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0;}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px;}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px;}.cke_skin_office2003 .cke_button_textcolor_panel,.cke_skin_office2003 .ck
e_button_bgcolor_panel{width:150px;height:135px;}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000;}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left;}.cke_rtl span.cke_colorbox{float:right;}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;}.cke_rtl a.cke_colorbox{float:right;}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff;}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer;}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff;}@media print{.cke_skin_office2003 .cke_toolbox{display:none;}}.cke_skin_office2003 .cke_browser_webkit .cke_toolbox,.cke_skin_office2003 .cke_browser_
webkit .cke_toolbox>span{white-space:normal;}.cke_skin_office2003 .cke_toolbox{clear:both;padding-bottom:1px;}.cke_skin_office2003 a.cke_toolbox_collapser,.cke_skin_office2003 a:hover.cke_toolbox_collapser{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:3px -1026px;background-repeat:no-repeat;width:11px;height:11px;float:right;border:outset 1px;margin:11px 2px 2px;cursor:pointer;}.cke_skin_office2003 .cke_rtl a.cke_toolbox_collapser,.cke_skin_office2003 .cke_rtl a:hover.cke_toolbox_collapser{float:left;}.cke_skin_office2003 a.cke_toolbox_collapser span{display:none;}.cke_skin_office2003 .cke_hc a.cke_toolbox_collapser span{font-size:10px;font-weight:bold;font-family:Arial;display:inline;}.cke_skin_office2003 a.cke_toolbox_collapser_min,.cke_skin_office2003 a:hover.cke_toolbox_collapser_min{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:4px -1047px;background
-repeat:no-repeat;margin:2px;}.cke_skin_office2003 .cke_rtl a.cke_toolbox_collapser_min,.cke_skin_office2003 .cke_rtl a:hover.cke_toolbox_collapser_min{background-position:4px -1068px;}.cke_skin_office2003 .cke_toolbar{background-color:#d6dff7;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -962px;background-repeat:repeat-x;display:inline-block;float:left;!height:28px;!line-height:28px;}.cke_skin_office2003 .cke_rtl .cke_toolbar{float:right;}.cke_skin_office2003 .cke_toolgroup{display:inline-block;float:left;height:28px;}.cke_skin_office2003 .cke_browser_ie .cke_toolgroup{#float:none;#display:inline;}.cke_skin_office2003 .cke_rtl .cke_toolgroup{float:right;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolgroup{#float:none;}.cke_skin_office2003 .cke_separator{display:inline-block;float:left;border-left:solid 1px #B2CBFF;margin:6px 2px;height:16px;}.cke_skin_office2003 .cke_browser_ie .cke_separator{#float:non
e;#display:inline;}.cke_skin_office2003 .cke_rtl .cke_separator{float:right;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_separator{#float:none;}
-.cke_skin_office2003 .cke_break{clear:left;}.cke_skin_office2003 .cke_rtl .cke_break{clear:right;}.cke_skin_office2003 .cke_toolbar_start{display:inline-block;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;background-position:-27px -765px;width:10px;height:28px;float:left;}.cke_skin_office2003 .cke_browser_ie .cke_toolbar_start{#float:none;#display:inline;}.cke_skin_office2003 .cke_rtl .cke_toolbar_start{background-position:-27px -816px;float:right;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_start{#float:none;}.cke_skin_office2003 .cke_toolbar_end{display:inline-block;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;background-position:-29px -861px;width:4px;height:28px;float:left;}.cke_skin_office2003 .cke_browser_ie .cke_toolbar_end{#float:none;#display:inline;}.cke_skin_office2003 .cke_rtl .cke_toolbar_end{background-positio
n:-29px -907px;float:right;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_end{#float:none;}.cke_skin_office2003 .cke_button a,.cke_skin_office2003 .cke_button a:hover,.cke_skin_office2003 .cke_button a:focus,.cke_skin_office2003 .cke_button a:active,.cke_skin_office2003 .cke_button a.cke_off{border:solid 1px transparent;border-radius:3px;outline:none;padding-top:2px;padding-left:4px;padding-right:4px;padding-bottom:2px;margin-top:2px;height:18px;vertical-align:top;_border:none;_margin:3px 1px 1px 1px;cursor:default;display:inline-block;}.cke_skin_office2003 .cke_button a,.cke_skin_office2003 .cke_button a.cke_off{filter:alpha(opacity=70);opacity:.70;-moz-border-radius:3px;-webkit-border-radius:3px;}.cke_skin_office2003 .cke_hc .cke_button a,.cke_skin_office2003 .cke_hc .cke_button a.cke_off{opacity:1.0;filter:alpha(opacity=100);_border:1px solid transparent;}.cke_skin_office2003 .cke_button a.cke_on{border:solid 1px #316ac5;background-color:#c1d2ee;filter:alpha(
opacity=100);opacity:1;_margin:2px 0 0 0;}.cke_skin_office2003 .cke_hc .cke_button a:hover,.cke_skin_office2003 .cke_hc .cke_button a:focus,.cke_skin_office2003 .cke_hc .cke_button a:active{padding:0 2px!important;border-width:3px;}.cke_skin_office2003 .cke_button a.cke_disabled *,.cke_skin_office2003 .cke_browser_ie a:hover.cke_button .cke_disabled *{filter:alpha(opacity=30);opacity:.3;}.cke_skin_office2003 .cke_hc .cke_button a.cke_disabled *,.cke_skin_office2003 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled *{filter:alpha(opacity=60);opacity:.6;}.cke_skin_office2003 .cke_button a:hover,.cke_skin_office2003 .cke_button a:focus,.cke_skin_office2003 .cke_button a:active{border:solid 1px #316ac5;background-color:#dff1ff;filter:alpha(opacity=100);opacity:1;vertical-align:top;_margin:2px 0 0 0;padding:2px 4px;}.cke_skin_office2003 .cke_button .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;margin-top:1px;width:16px;heigh
t:16px;display:inline-block;cursor:default;}.cke_skin_office2003 .cke_rtl .cke_button .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_office2003 .cke_button .cke_label{display:none;padding-left:3px;cursor:default;vertical-align:middle;_background-image:url(images/sprites_ie6.png);_background-position:0 -970px;_background-repeat:repeat-x;}.cke_skin_office2003 .cke_button a:hover .cke_label{_background-color:#dff1ff;_background-image:none;}.cke_skin_office2003 .cke_button a.cke_on .cke_label{_background-color:#c1d2ee;_background-image:none;}.cke_skin_office2003 .cke_hc .cke_button .cke_label{padding:0;display:inline-block;}.cke_skin_office2003 .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_office2003 .cke_accessibility{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_office2003 .cke_button .cke_buttonarrow{display:inline-block;height:18px;width:8px;background-position:2px -1004px;background-image:url(images/sprites.png);_background-im
age:url(images/sprites_ie6.png);background-repeat:no-repeat;cursor:default;}.cke_skin_office2003 .cke_rtl .cke_button .cke_buttonarrow{background-position:0 -1004px;}
-.cke_skin_office2003 .cke_browser_gecko18 .cke_toolbar,.cke_skin_office2003 .cke_browser_gecko18 .cke_button a,.cke_skin_office2003 .cke_browser_gecko18 .cke_button a.cke_off,.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_icon,.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_buttonarrow,.cke_skin_office2003 .cke_browser_gecko18 .cke_separator,.cke_skin_office2003 .cke_browser_gecko18 .cke_toolbar_start,.cke_skin_office2003 .cke_browser_gecko18 .cke_toolbar_end{display:block;float:left;}.cke_skin_office2003 .cke_browser_gecko18 .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_toolbar,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button a,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button a.cke_off,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button .cke_icon,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button .cke_buttonarrow,.cke_skin_office2003 .cke_browser_g
ecko18 .cke_rtl .cke_separator,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_toolbar_start,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_toolbar_end{float:right;}.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_label,.cke_skin_office2003 .cke_browser_gecko18 .cke_break{float:left;}.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl span.cke_inline_label{float:right;}.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_button .cke_label,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_break{float:right;}.cke_skin_office2003 .cke_browser_gecko18 .cke_separator{margin-top:4px;}.cke_skin_office2003 .cke_browser_gecko18 .cke_button .cke_label{padding-top:3px;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolgroup,.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_separator,.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_start,.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_toolbar_end{float:none;}.cke_skin_office2003 .cke
_browser_ie8 .cke_toolbar,.cke_skin_office2003 .cke_browser_ie8 .cke_toolgroup{vertical-align:top;}.cke_skin_office2003 .cke_browser_iequirks.cke_browser_ie8 .cke_toolbar,.cke_skin_office2003 .cke_browser_iequirks.cke_browser_ie8 .cke_toolgroup{vertical-align:baseline;}.cke_skin_office2003 .cke_browser_iequirks .cke_separator{vertical-align:text-bottom;}.cke_skin_office2003 .cke_browser_ie .cke_rcombo,.cke_skin_office2003 .cke_browser_ie .cke_rcombo *{cursor:default;}.cke_skin_office2003 .cke_contextmenu{padding:2px;}.cke_skin_office2003 .cke_menuitem a{display:block;}.cke_skin_office2003 .cke_menuitem span{cursor:default;}.cke_skin_office2003 .cke_menuitem a:hover,.cke_skin_office2003 .cke_menuitem a:focus,.cke_skin_office2003 .cke_menuitem a:active{background-color:#8db1ff;display:block;}.cke_hc .cke_menuitem a:hover,.cke_hc .cke_menuitem a:focus,.cke_hc .cke_menuitem a:active{border:2px solid;}.cke_skin_office2003 .cke_menuitem .cke_icon{background-image:url(icons.png);ba
ckground-position:100px;background-repeat:no-repeat;background-color:transparent;width:16px;height:16px;float:left;}.cke_rtl .cke_skin_office2003 .cke_menuitem .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_office2003 .cke_menuitem .cke_disabled .cke_icon{filter:alpha(opacity=70);opacity:.70;}.cke_skin_office2003 .cke_menuitem .cke_icon_wrapper{background-color:#f7f8fd;border:solid 4px #f7f8fd;width:16px;height:16px;float:left;filter:alpha(opacity=70);opacity:.70;clear:both;}.cke_rtl .cke_skin_office2003 .cke_menuitem .cke_icon_wrapper{float:right;}.cke_skin_office2003 .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_office2003 .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_office2003 .cke_menuitem a:active .cke_icon_wrapper{background-color:#9d9d9d;border:solid 4px #9d9d9d;filter:alpha(opacity=70);opacity:.70;}.cke_skin_office2003 .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,.cke_skin_office2003 .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,.cke
_skin_office2003 .cke_menuitem a:active.cke_disabled .cke_icon_wrapper{background-color:#f7f8fd;border:solid 4px #f7f8fd;}.cke_skin_office2003 .cke_menuitem .cke_label{display:block;padding-right:3px;padding-top:5px;padding-left:4px;height:19px;margin-left:24px;background-color:#fff;}
-.cke_skin_office2003 .cke_frameLoaded .cke_menuitem .cke_label{filter:alpha(opacity=70);opacity:.70;}.cke_rtl .cke_skin_office2003 .cke_menuitem .cke_label{padding-right:0;margin-left:0;padding-left:3px;margin-right:28px;}.cke_skin_office2003 .cke_menuitem a.cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.30;}.cke_skin_office2003 .cke_menuitem a:hover .cke_label,.cke_skin_office2003 .cke_menuitem a:focus .cke_label,.cke_skin_office2003 .cke_menuitem a:active .cke_label{background-color:#8db1ff;}.cke_skin_office2003 .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_office2003 .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_office2003 .cke_menuitem a.cke_disabled:active .cke_label{background-color:transparent;}.cke_skin_office2003 .cke_menuseparator{background-color:#f7f8fd;height:2px;filter:alpha(opacity=70);opacity:.70;_font-size:0;}.cke_skin_office2003 .cke_menuarrow{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.pn
g);background-position:0 -1071px;background-repeat:no-repeat;height:5px;width:3px;float:right;margin-right:2px;margin-top:3px;}.cke_rtl .cke_skin_office2003 .cke_menuarrow{float:left;margin-right:0;margin-left:2px;background-position:0 -1050px;}.cke_skin_office2003 .cke_menuarrow span{display:none;}.cke_hc .cke_skin_office2003 .cke_menuarrow{width:auto;margin-top:0;}.cke_hc .cke_skin_office2003 .cke_menuarrow span{display:inline;}.cke_browser_ie.cke_ltr .cke_skin_office2003 .cke_menuarrow{position:absolute;right:2px;}.cke_browser_ie.cke_rtl .cke_skin_office2003 .cke_menuarrow{position:absolute;left:2px;}.cke_skin_office2003 .cke_rcombo{display:inline-block;margin-left:2px;margin-right:2px;margin-top:2px;vertical-align:top;float:left;}.cke_skin_office2003 .cke_browser_ie .cke_rcombo{#float:none;#display:inline;}.cke_skin_office2003 .cke_rtl .cke_rcombo{float:right;}.cke_skin_office2003 .cke_browser_ie .cke_rcombo{#float:none;}.cke_skin_office2003 .cke_rcombopanel{border:1px s
olid #316ac5;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;}.cke_skin_office2003 .cke_rcombo a{display:inline-block;float:left;filter:alpha(opacity=70);opacity:.70;}.cke_skin_office2003 .cke_rtl .cke_rcombo a{float:right;}.cke_skin_office2003 .cke_hc .cke_rcombo a{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_office2003 .cke_rcombo .cke_label{display:inline-block;float:left;cursor:default;line-height:24px;height:24px;vertical-align:top;padding-left:4px;padding-right:5px;filter:alpha(opacity=70);opacity:.70;_background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);_background-position:0 -962px;_background-repeat:repeat-x;}.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_label{float:right;padding-right:4px;padding-left:5px;}.cke_skin_office2003 .cke_hc .cke_rcombo .cke_label{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_office2003 .cke_rcombo .cke_inline_label{color:#fff;}.cke_skin_office2003 .cke_rcomb
o .cke_text{border:1px solid #8f8f73;background-color:#fff;height:14px;width:60px;padding-top:4px;padding-bottom:4px;padding-left:5px;padding-right:5px;text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:top;cursor:default;}.cke_skin_office2003 .cke_ltr .cke_rcombo .cke_text{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;}.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_text{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;}.cke_skin_office2003 .cke_browser_iequirks .cke_rcombo .cke_text{height:22px;}.cke_skin_office2003 .cke_rcombo .cke_openbutton{display:inline-block;background-position:5px -1002px;background-image:url(images/sprites.png);background-image:ur
l(images/sprites_ie6.png);background-repeat:no-repeat;border-top:1px solid #8f8f73;border-bottom:1px solid #8f8f73;width:14px;height:22px;}.cke_skin_office2003 .cke_rcombo .cke_openbutton span{display:none;}
-.cke_skin_office2003 .cke_hc .cke_rcombo .cke_openbutton span{display:inline;}.cke_skin_office2003 .cke_ltr .cke_rcombo .cke_openbutton{border-right:1px solid #8f8f73;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;}.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_openbutton{border-left:1px solid #8f8f73;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;}.cke_skin_office2003 .cke_rcombo .cke_off a:hover,.cke_skin_office2003 .cke_rcombo .cke_off a:focus,.cke_skin_office2003 .cke_rcombo .cke_off a:active,.cke_skin_office2003 .cke_rcombo .cke_on a{filter:alpha(opacity=100);opacity:1;}.cke_skin_office2003 .cke_rcombo .cke_off a:hover .cke_text,.cke_skin_office2003 .cke_rcombo .cke_off a:f
ocus .cke_text,.cke_skin_office2003 .cke_rcombo .cke_off a:active .cke_text,.cke_skin_office2003 .cke_rcombo .cke_on .cke_text{border-color:#316ac5;}.cke_skin_office2003 .cke_rcombo .cke_off a:hover .cke_openbutton,.cke_skin_office2003 .cke_rcombo .cke_off a:focus .cke_openbutton,.cke_skin_office2003 .cke_rcombo .cke_off a:active .cke_openbutton,.cke_skin_office2003 .cke_rcombo .cke_on .cke_openbutton{border-color:#316ac5;background-color:#dff1ff;}.cke_skin_office2003 .cke_rcombo .cke_on .cke_text{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;}.cke_skin_office2003 .cke_rcombo .cke_on .cke_openbutton{-moz-border-radius-bottomright:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;}.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.3;}.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=70);opacity:.7;}.cke_skin_office2003 .cke_rcombo .
cke_disabled .cke_text,.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=50);opacity:.5;}.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_text,.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=80);opacity:.8;}.cke_skin_office2003 .cke_rcombo .cke_disabled .cke_text{color:#fff;}.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo,.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo .cke_label,.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo .cke_text,.cke_skin_office2003 .cke_browser_gecko18 .cke_rcombo .cke_openbutton,.cke_skin_office2003 .cke_browser_webkit .cke_rcombo .cke_label,.cke_skin_office2003 .cke_browser_webkit .cke_rcombo .cke_text,.cke_skin_office2003 .cke_browser_webkit .cke_rcombo .cke_openbutton{display:block;float:left;}.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_label,.cke_skin_of
fice2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_text,.cke_skin_office2003 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_openbutton,.cke_skin_office2003 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,.cke_skin_office2003 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,.cke_skin_office2003 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton{float:right;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_rcombo,.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_rcombo a,.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_rcombo .cke_label{float:none;}.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_font .cke_text,.cke_skin_office2003 .cke_rtl .cke_rcombo .cke_fontSize .cke_text{direction:ltr;}@media print{.cke_path{display:none;}}.cke_skin_office2003 .cke_path{padding:3px 3px 0 3px;display:inline-block;float:left;}.cke_skin_office2003 .cke_rtl .cke_path{float:right;}.cke_skin_office2003 .cke_path a,.cke_skin_office2003 .cke_path .cke_empty{display:inline-bloc
k;float:left;border:solid 1px #f7f8fd;background-color:#f7f8fd;padding-top:1px;padding-bottom:1px;padding-left:4px;padding-right:4px;margin-bottom:3px;cursor:default;}
-.cke_skin_office2003 .cke_path .cke_empty{visibility:hidden;}.cke_skin_office2003 .cke_rtl .cke_path a,.cke_skin_office2003 .cke_rtl .cke_path cke_empty{float:right;}.cke_skin_office2003 .cke_path a:hover,.cke_skin_office2003 .cke_path a:focus,.cke_skin_office2003 .cke_path a:active{border:solid 1px #316ac5;background-color:#dff1ff;padding-top:1px;padding-bottom:1px;padding-left:4px;padding-right:4px;outline:none;}.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_path a,.cke_skin_office2003 .cke_browser_ie .cke_rtl .cke_path .cke_empty{float:none;}.cke_skin_office2003 .cke_path .cke_label{display:none;}.cke_skin_office2003 .cke_button_source .cke_icon{background-position:0 0;}.cke_skin_office2003 .cke_button_newpage .cke_icon{background-position:0 -48px;}.cke_skin_office2003 .cke_button_preview .cke_icon{background-position:0 -64px;}.cke_skin_office2003 .cke_button_cut .cke_icon{background-position:0 -96px;}.cke_skin_office2003 .cke_button_copy .cke_icon{background-position
:0 -112px;}.cke_skin_office2003 .cke_button_paste .cke_icon{background-position:0 -128px;}.cke_skin_office2003 .cke_button_pastetext .cke_icon{background-position:0 -144px;}.cke_skin_office2003 .cke_button_find .cke_icon{background-position:0 -240px;}.cke_skin_office2003 .cke_button_replace .cke_icon{background-position:0 -256px;}.cke_skin_office2003 .cke_button_selectAll .cke_icon{background-position:0 -272px;}.cke_skin_office2003 .cke_button_removeFormat .cke_icon{background-position:0 -288px;}.cke_skin_office2003 .cke_button_bold .cke_icon{background-position:0 -304px;}.cke_skin_office2003 .cke_button_italic .cke_icon{background-position:0 -320px;}.cke_skin_office2003 .cke_button_underline .cke_icon{background-position:0 -336px;}.cke_skin_office2003 .cke_button_strike .cke_icon{background-position:0 -352px;}.cke_skin_office2003 .cke_button_subscript .cke_icon{background-position:0 -368px;}.cke_skin_office2003 .cke_button_superscript .cke_icon{background-position:0 -384px;
}.cke_skin_office2003 .cke_button_table .cke_icon{background-position:0 -608px;}.cke_skin_office2003 .cke_button_horizontalrule .cke_icon{background-position:0 -624px;}.cke_skin_office2003 .cke_button_smiley .cke_icon{background-position:0 -640px;}.cke_skin_office2003 .cke_button_link .cke_icon{background-position:0 -528px;}.cke_skin_office2003 .cke_button_unlink .cke_icon{background-position:0 -544px;}.cke_skin_office2003 .cke_button_anchor .cke_icon{background-position:0 -560px;}.cke_skin_office2003 .cke_button_image .cke_icon{background-position:0 -576px;}.cke_skin_office2003 .cke_button_flash .cke_icon{background-position:0 -592px;}.cke_skin_office2003 .cke_button_specialchar .cke_icon{background-position:0 -656px;}.cke_skin_office2003 .cke_button_pagebreak .cke_icon{background-position:0 -672px;}.cke_skin_office2003 .cke_button_print .cke_icon{background-position:0 -176px;}.cke_skin_office2003 .cke_button_checkspell .cke_icon,.cke_skin_office2003 .cke_button_scayt .cke_
icon{background-position:0 -192px;}.cke_skin_office2003 .cke_button_pagebreak .cke_icon{background-position:0 -672px;}.cke_skin_office2003 .cke_button_textcolor .cke_icon{background-position:0 -704px;}.cke_skin_office2003 .cke_button_bgcolor .cke_icon{background-position:0 -720px;}.cke_skin_office2003 .cke_button_form .cke_icon{background-position:0 -752px;}.cke_skin_office2003 .cke_button_checkbox .cke_icon{background-position:0 -768px;}.cke_skin_office2003 .cke_button_radio .cke_icon{background-position:0 -784px;}.cke_skin_office2003 .cke_button_textfield .cke_icon{background-position:0 -800px;}.cke_skin_office2003 .cke_button_textarea .cke_icon{background-position:0 -816px;}.cke_skin_office2003 .cke_button_showblocks .cke_icon{background-position:0 -1136px;}.cke_skin_office2003 .cke_button_select .cke_icon{background-position:0 -832px;}.cke_skin_office2003 .cke_button_button .cke_icon{background-position:0 -848px;}.cke_skin_office2003 .cke_button_imagebutton .cke_icon{bac
kground-position:0 -864px;}.cke_skin_office2003 .cke_button_hiddenfield .cke_icon{background-position:0 -880px;}.cke_skin_office2003 .cke_button_undo .cke_icon{background-position:0 -208px;}
-.cke_skin_office2003 .cke_rtl .cke_button_undo .cke_icon{background-position:0 -224px;}.cke_skin_office2003 .cke_button_redo .cke_icon{background-position:0 -224px;}.cke_skin_office2003 .cke_rtl .cke_button_redo .cke_icon{background-position:0 -208px;}.cke_skin_office2003 .cke_button_templates .cke_icon{background-position:0 -80px;}.cke_skin_office2003 .cke_button_numberedlist .cke_icon{background-position:0 -400px;}.cke_skin_office2003 .cke_button_bulletedlist .cke_icon{background-position:0 -416px;}.cke_skin_office2003 .cke_mixed_dir_content .cke_button_numberedlist .cke_icon{background-position:0 -1217px;}.cke_skin_office2003 .cke_mixed_dir_content .cke_button_bulletedlist .cke_icon{background-position:0 -1233px;}.cke_skin_office2003 .cke_button_outdent .cke_icon{background-position:0 -432px;}.cke_skin_office2003 .cke_button_indent .cke_icon{background-position:0 -448px;}.cke_skin_office2003 .cke_mixed_dir_content .cke_button_indent .cke_icon{background-position:0 -1265px
;}.cke_skin_office2003 .cke_mixed_dir_content .cke_button_outdent .cke_icon{background-position:0 -1249px;}.cke_skin_office2003 .cke_button_justifyleft .cke_icon{background-position:0 -464px;}.cke_skin_office2003 .cke_button_justifycenter .cke_icon{background-position:0 -480px;}.cke_skin_office2003 .cke_button_justifyright .cke_icon{background-position:0 -496px;}.cke_skin_office2003 .cke_button_justifyblock .cke_icon{background-position:0 -512px;}.cke_skin_office2003 .cke_button_blockquote .cke_icon{background-position:0 -1152px;}.cke_skin_office2003 .cke_button_flash .cke_icon{background-position:0 -592px;}.cke_skin_office2003 .cke_button_pastefromword .cke_icon{background-position:0 -160px;}.cke_skin_office2003 .cke_button_save .cke_icon{background-position:0 -32px;}.cke_skin_office2003 .cke_button_about .cke_icon{background-position:0 -736px;}.cke_skin_office2003 .cke_button_maximize .cke_icon{background-position:0 -1040px;}.cke_skin_office2003 .cke_button_creatediv .cke_
icon{background-position:0 -1168px;}.cke_skin_office2003 .cke_button_editdiv .cke_icon{background-position:0 -1184px;}.cke_skin_office2003 .cke_button_removediv .cke_icon{background-position:0 -1200px;}.cke_skin_office2003 .cke_button_bidirtl .cke_icon{background-position:0 -1072px;}.cke_skin_office2003 .cke_button_bidiltr .cke_icon{background-position:0 -1056px;}.cke_skin_office2003 .cke_button_source .cke_label{display:inline;}.cke_skin_office2003 .cke_styles_panel{width:150px;height:170px;}.cke_skin_office2003 .cke_format_panel{width:150px;height:170px;}.cke_skin_office2003 .cke_font_panel{width:150px;height:170px;}.cke_skin_office2003 .cke_fontSize_panel{height:170px;}.cke_skin_office2003 .cke_fontSize .cke_text{width:20px;}.cke_skin_office2003 .cke_browser_iequirks .cke_fontSize .cke_text{width:32px;}html .cke_skin_office2003{visibility:inherit;}html.cke_skin_office2003_container{visibility:visible;}
diff --git a/share/static/RichText/skins/office2003/icons.png b/share/static/RichText/skins/office2003/icons.png
deleted file mode 100644
index a9846c0..0000000
Binary files a/share/static/RichText/skins/office2003/icons.png and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/icons_rtl.png b/share/static/RichText/skins/office2003/icons_rtl.png
deleted file mode 100644
index 0b242b1..0000000
Binary files a/share/static/RichText/skins/office2003/icons_rtl.png and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/images/dialog_sides.gif b/share/static/RichText/skins/office2003/images/dialog_sides.gif
deleted file mode 100644
index 5840d01..0000000
Binary files a/share/static/RichText/skins/office2003/images/dialog_sides.gif and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/images/dialog_sides.png b/share/static/RichText/skins/office2003/images/dialog_sides.png
deleted file mode 100644
index 7da9821..0000000
Binary files a/share/static/RichText/skins/office2003/images/dialog_sides.png and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/images/dialog_sides_rtl.png b/share/static/RichText/skins/office2003/images/dialog_sides_rtl.png
deleted file mode 100644
index 24fe13a..0000000
Binary files a/share/static/RichText/skins/office2003/images/dialog_sides_rtl.png and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/images/sprites.png b/share/static/RichText/skins/office2003/images/sprites.png
deleted file mode 100644
index a6d3a72..0000000
Binary files a/share/static/RichText/skins/office2003/images/sprites.png and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/images/sprites_ie6.png b/share/static/RichText/skins/office2003/images/sprites_ie6.png
deleted file mode 100644
index 94073b2..0000000
Binary files a/share/static/RichText/skins/office2003/images/sprites_ie6.png and /dev/null differ
diff --git a/share/static/RichText/skins/office2003/skin.js b/share/static/RichText/skins/office2003/skin.js
deleted file mode 100644
index e80e112..0000000
--- a/share/static/RichText/skins/office2003/skin.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.skins.add('office2003',(function(){var a=[];if(CKEDITOR.env.ie&&CKEDITOR.env.version<7)a.push('icons.png','images/sprites_ie6.png','images/dialog_sides.gif');return{preload:a,editor:{css:['editor.css']},dialog:{css:['dialog.css']},templates:{css:['templates.css']},margins:[0,14,18,14]};})());(function(){CKEDITOR.dialog?a():CKEDITOR.on('dialogPluginReady',a);function a(){CKEDITOR.dialog.on('resize',function(b){var c=b.data,d=c.width,e=c.height,f=c.dialog,g=f.parts.contents;if(c.skin!='office2003')return;g.setStyles({width:d+'px',height:e+'px'});if(!CKEDITOR.env.ie)return;var h=function(){var i=f.parts.dialog.getChild([0,0,0]),j=i.getChild(0),k=i.getChild(2);k.setStyle('width',j.$.offsetWidth+'px');k=i.getChild(7);k.setStyle('width',j.$.offsetWidth-28+'px');k=i.getChild(4);k.setStyle('height',j.$.offsetHeight-31-14+'px');k=i.getChild(5);k.setStyle('height',j.$.offsetHeight-31-14+'px');};setTimeout(h,100);if(b.editor.lang.dir=='rtl')setTimeout(h,1000);});};})();
diff --git a/share/static/RichText/skins/office2003/templates.css b/share/static/RichText/skins/office2003/templates.css
deleted file mode 100644
index 73ebf7d..0000000
--- a/share/static/RichText/skins/office2003/templates.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_office2003 .cke_tpl_list{border:#dcdcdc 2px solid;background-color:#fff;overflow:auto;width:100%;height:220px;}.cke_skin_office2003 .cke_tpl_item{margin:5px;padding:7px;border:#eee 1px solid;*width:88%;}.cke_skin_office2003 .cke_tpl_preview{border-collapse:separate;text-indent:0;width:100%;}.cke_skin_office2003 .cke_tpl_preview td{padding:2px;vertical-align:middle;}.cke_skin_office2003 .cke_tpl_preview .cke_tpl_preview_img{width:100px;}.cke_skin_office2003 .cke_tpl_preview span{white-space:normal;}.cke_skin_office2003 .cke_tpl_title{font-weight:bold;}.cke_skin_office2003 .cke_tpl_list a:active .cke_tpl_item,.cke_skin_office2003 .cke_tpl_list a:hover .cke_tpl_item,.cke_skin_office2003 .cke_tpl_list a:focus .cke_tpl_item{border:#f93 1px solid!important;background-color:#fffacd!important;}.cke_skin_office2003 .cke_tpl_list a:active *,.cke_skin_office2003 .cke_tpl_list a:hover *,.cke_skin_office2003 .cke_tpl_list a:focus *{cursor:pointer;}.cke_skin_office2003 .cke_brow
ser_ie6 .cke_tpl_list a:active,.cke_skin_office2003 .cke_browser_ie6 .cke_tpl_list a:hover,.cke_skin_office2003 .cke_browser_ie6 .cke_tpl_list a:focus{background-position:0 0;}.cke_skin_office2003 .cke_tpl_list a:active .cke_tpl_item,.cke_skin_office2003 .cke_tpl_list a:hover .cke_tpl_item,.cke_skin_office2003 .cke_tpl_list a:focus .cke_tpl_item{border-width:3px;}.cke_skin_office2003 .cke_tpl_empty,.cke_tpl_loading{text-align:center;padding:5px;}
diff --git a/share/static/RichText/skins/v2/dialog.css b/share/static/RichText/skins/v2/dialog.css
deleted file mode 100644
index 3d41708..0000000
--- a/share/static/RichText/skins/v2/dialog.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-body .cke_dialog{visibility:visible;}.cke_skin_v2 table.cke_dialog.cke_browser_gecko{display:block;}.cke_skin_v2 .cke_dialog_body{margin-left:16px;margin-right:16px;margin-top:2px;margin-bottom:20px;z-index:1;position:relative;_position:static;}.cke_skin_v2 .cke_dialog_tl,.cke_skin_v2 .cke_dialog_tr,.cke_skin_v2 .cke_dialog_tc,.cke_skin_v2 .cke_dialog_bl,.cke_skin_v2 .cke_dialog_br,.cke_skin_v2 .cke_dialog_bc{background-image:url(images/sprites.png);background-repeat:no-repeat;position:absolute;_background-image:url(images/sprites_ie6.png);_z-index:-1;}.cke_skin_v2 .cke_dialog_tl{background-position:-16px -16px;height:16px;width:16px;top:0;left:0;}.cke_skin_v2 .cke_rtl .cke_dialog_tl{background-position:-16px -397px;}.cke_skin_v2 .cke_dialog_tr{background-position:-16px -76px;height:16px;width:16px;top:0;right:0;}.cke_skin_v2 .cke_rtl .cke_dialog_tr{background-position:-16px -457px;}.cke_skin_v2 .cke_dialog_tc{background-position:0 -136px;background-repeat:repeat-x;height:16
px;top:0;left:16px;right:16px;}.cke_skin_v2 .cke_dialog_bl{background-position:-16px -196px;height:51px;width:30px;bottom:0;left:0;}.cke_skin_v2 .cke_rtl .cke_dialog_bl{background-position:-16px -517px;}.cke_skin_v2 .cke_dialog_br{background-position:-16px -263px;height:51px;width:30px;bottom:0;right:0;}.cke_skin_v2 .cke_rtl .cke_dialog_br{background-position:-16px -584px;}.cke_skin_v2 .cke_dialog_bc{background-position:0 -330px;background-repeat:repeat-x;height:51px;bottom:0;left:30px;right:30px;}.cke_skin_v2 .cke_dialog_ml,.cke_skin_v2 .cke_dialog_mr{background-image:url(images/dialog_sides.png);background-repeat:repeat-y;position:absolute;width:16px;top:16px;bottom:51px;_background-image:url(images/dialog_sides.gif);_top:auto;}.cke_skin_v2 .cke_rtl .cke_dialog_ml,.cke_skin_v2 .cke_rtl .cke_dialog_mr{background-image:url(images/dialog_sides_rtl.png);_background-image:url(images/dialog_sides.gif);}.cke_skin_v2 .cke_dialog_ml{background-position:0 0;left:0;}.cke_skin_v2 .cke
_dialog_mr{background-position:-16px 0;right:0;}.cke_skin_v2 .cke_browser_iequirks .cke_dialog_ml,.cke_skin_v2 .cke_browser_iequirks .cke_dialog_mr{margin-top:3px;}.cke_skin_v2 .cke_dialog_title{font-weight:bold;font-size:14pt;color:#737357;background-color:#e3e3c7;padding:3px 10px 26px 10px;cursor:move;position:relative;}.cke_skin_v2 .cke_browser_ie.cke_rtl .cke_dialog_title{position:static!important;unicode-bidi:bidi-override;}.cke_skin_v2 .cke_dialog_contents{background-color:#f1f1e3;border:#d5d59d 1px solid;overflow:auto;padding:5px 10px;}.cke_skin_v2 .cke_dialog_footer{background-color:#e3e3c7;text-align:right;}.cke_skin_v2 .cke_rtl .cke_dialog_footer{text-align:left;}.cke_skin_v2 .cke_dialog_tabs{height:23px;background-color:#e3e3c7;display:inline-block;margin-left:10px;margin-right:10px;margin-top:-23px;position:absolute;z-index:2;}.cke_skin_v2 .cke_rtl .cke_dialog_tabs{right:10px;}.cke_skin_v2 a.cke_dialog_tab,.cke_skin_v2 a:link.cke_dialog_tab,.cke_skin_v2 a:active.
cke_dialog_tab,.cke_skin_v2 a:hover.cke_dialog_tab,.cke_skin_v2 a:visited.cke_dialog_tab{color:#737357;border-left:1px solid #d5d59d;border-right:1px solid #d5d59d;border-top:1px solid #d5d59d;height:14px;padding:4px 5px;display:inline-block;cursor:pointer;}.cke_skin_v2 .cke_browser_gecko18 a.cke_dialog_tab,.cke_skin_v2 .cke_browser_gecko18 a:link.cke_dialog_tab,.cke_skin_v2 .cke_browser_gecko18 a:active.cke_dialog_tab,.cke_skin_v2 .cke_browser_gecko18 a:hover.cke_dialog_tab,.cke_skin_v2 .cke_browser_gecko18 a:visited.cke_dialog_tab{display:inline;position:relative;top:6px;}.cke_skin_v2 a:hover.cke_dialog_tab{background-color:#f1f1e3;}.cke_skin_v2 .cke_hc a:hover.cke_dialog_tab{padding:2px 3px!important;border-width:3px;}.cke_skin_v2 a.cke_dialog_tab_selected,.cke_skin_v2 a:link.cke_dialog_tab_selected,.cke_skin_v2 a:active.cke_dialog_tab_selected,.cke_skin_v2 a:hover.cke_dialog_tab_selected,.cke_skin_v2 a:visited.cke_dialog_tab_selected{border-bottom:1px solid #f1f1e3;backg
round-color:#f1f1e3;font-weight:bold;cursor:default;}.cke_skin_v2 .cke_hc a.cke_dialog_tab_selected,.cke_skin_v2 .cke_hc a:link.cke_dialog_tab_selected,.cke_skin_v2 .cke_hc a:active.cke_dialog_tab_selected,.cke_skin_v2 .cke_hc a:hover.cke_dialog_tab_selected,.cke_skin_v2 .cke_hc a:visited.cke_dialog_tab_selected{padding:2px 3px!important;border-width:3px;}
-.cke_skin_v2 .cke_hc .cke_dialog_tabs a,.cke_skin_v2 .cke_hc .cke_dialog_footer a{opacity:1.0;filter:alpha(opacity=100);border:1px solid white;}.cke_skin_v2 .cke_single_page .cke_dialog_tabs{display:none;}.cke_skin_v2 .cke_single_page .cke_dialog_title{padding-bottom:3px;}.cke_skin_v2 .cke_dialog_ui_vbox table,.cke_skin_v2 .cke_dialog_ui_hbox table{margin:auto;}.cke_skin_v2 .cke_dialog_ui_vbox_child{padding:5px 0;}.cke_skin_v2 input.cke_dialog_ui_input_text,.cke_skin_v2 input.cke_dialog_ui_input_password{background-color:white;border:none;padding:0;width:100%;height:14px;}.cke_skin_v2 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_text,.cke_skin_v2 .cke_browser_gecko.cke_hc div.cke_dialog_ui_input_password{border-width:0;}.cke_skin_v2 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_text,.cke_skin_v2 .cke_browser_gecko18.cke_hc div.cke_dialog_ui_input_password{border-width:1px;}.cke_skin_v2 div.cke_dialog_ui_input_text,.cke_skin_v2 div.cke_dialog_ui_input_password{back
ground-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_v2 .cke_browser_ie.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px;}.cke_skin_v2 textarea.cke_dialog_ui_input_textarea{background-color:white;border:none;padding:0;width:100%;_width:99%;overflow:auto;resize:none;}.cke_skin_v2 div.cke_dialog_ui_input_textarea{background-color:white;border:1px solid #a0a0a0;padding:1px 0;}.cke_skin_v2 div.cke_disabled .cke_dialog_ui_labeled_content *{background-color:#a0a0a0;cursor:default;}.cke_skin_v2 .cke_dialog_ui_hbox{width:100%;}.cke_skin_v2 .cke_dialog_ui_hbox_first,.cke_skin_v2 .cke_dialog_ui_hbox_child,.cke_skin_v2 .cke_dialog_ui_hbox_last{vertical-align:top;}.cke_skin_v2 .cke_ltr .cke_dialog_ui_hbox_first,.cke_skin_v2 .cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px;}.cke_skin_v2 .cke_rtl .cke_dialog_ui_hbox_first,.cke_skin_v2 .cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px;}.cke_skin_v2 a.cke_dialog_ui_button{border-collapse:separate;cursor:default
;}.cke_skin_v2 span.cke_dialog_ui_button{border:#737357 1px solid;padding:2px 10px;text-align:center;color:#3b3b1f;background-color:#c7c78f;display:inline-block;cursor:default;}.cke_skin_v2 .cke_browser_gecko18 .cke_dialog_footer_buttons span.cke_dialog_ui_button{display:block;}.cke_skin_v2 a.cke_dialog_ui_button span.cke_disabled{border:#898980 1px solid;color:#5e5e55;background-color:#c5c5b3;}.cke_skin_v2 a:focus span.cke_dialog_ui_button,.cke_skin_v2 a:active span.cke_dialog_ui_button{background-color:#e3e3c7;}.cke_skin_v2 .cke_hc a:focus span.cke_dialog_ui_button,.cke_skin_v2 .cke_hc a:active span.cke_dialog_ui_button{border-width:2px;}.cke_skin_v2 .cke_dialog_footer_buttons{display:inline-table;margin-right:12px;margin-left:12px;width:auto;position:relative;}.cke_skin_v2 .cke_browser_gecko18 .cke_dialog_footer_buttons{display:inline;}.cke_skin_v2 .cke_dialog_footer_buttons span.cke_dialog_ui_button{width:60px;margin:7px 0;}.cke_skin_v2 strong{font-weight:bold;}.cke_skin
_v2 a.cke_dialog_close_button,.cke_skin_v2 a:hover.cke_dialog_close_button,.cke_skin_v2 .cke_browser_ie6 a.cke_dialog_close_button,.cke_skin_v2 .cke_browser_ie6 a:hover.cke_dialog_close_button{background-image:url(images/sprites.png);background-repeat:no-repeat;background-position:-16px -651px;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:5px;_background-image:url(images/sprites_ie6.png);}.cke_skin_v2 a.cke_dialog_close_button span{display:none;}.cke_skin_v2 a:hover.cke_dialog_close_button{background-position:-16px -687px;}.cke_skin_v2 .cke_ltr a.cke_dialog_close_button,.cke_skin_v2 .cke_ltr a:hover.cke_dialog_close_button{right:10px;_right:22px;}.cke_skin_v2 .cke_rtl a.cke_dialog_close_button,.cke_skin_v2 .cke_rtl a:hover.cke_dialog_close_button{left:10px;_left:16px;_top:7px;}.cke_skin_v2 .cke_browser_ie6.cke_rtl a.cke_dialog_close_button,.cke_skin_v2 .cke_browser_ie6.cke_rtl a:hover.cke_dialog_close_button{position:relative;float:left;margin
-top:-55px;margin-left:-7px;}.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a.cke_dialog_close_button,.cke_skin_v2 .cke_browser_iequirks.cke_rtl.cke_single_page a:hover.cke_dialog_close_button{margin-top:-32px;}
-.cke_skin_v2 .cke_browser_iequirks.cke_ltr a.cke_dialog_close_button,.cke_skin_v2 .cke_browser_iequirks.cke_ltr a:hover.cke_dialog_close_button{margin-top:0;}.cke_skin_v2 .cke_dialog_ui_input_select{border:1px solid #a0a0a0;background-color:white;}.cke_skin_v2 .cke_dialog_ui_input_file{width:100%;height:25px;}.cke_skin_v2 .cke_dialog .cke_dark_background{background-color:#eaead1;}.cke_skin_v2 .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_v2 .cke_dialog .cke_centered{text-align:center;}.cke_skin_v2 .cke_dialog a.cke_btn_reset{float:right;background-position:0 -32px;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:1px none;font-size:1px;}.cke_skin_v2 .cke_rtl .cke_dialog a.cke_btn_reset{float:left;}.cke_skin_v2 .cke_dialog a.cke_btn_locked,.cke_skin_v2 .cke_dialog a.cke_btn_unlocked{float:left;background-position:0 0;background-image:url(images/mini.gif);width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-siz
e:1px;}.cke_skin_v2 .cke_rtl .cke_dialog a.cke_btn_locked,.cke_skin_v2 .cke_rtl .cke_dialog a.cke_btn_unlocked{float:right;}.cke_skin_v2 .cke_dialog a.cke_btn_unlocked{background-position:0 -16px;background-image:url(images/mini.gif);}.cke_skin_v2 .cke_dialog .cke_btn_over{border:outset 1px;cursor:pointer;}.cke_skin_v2 .cke_dialog .ImagePreviewBox{border:2px ridge black;overflow:scroll;height:160px;width:230px;padding:2px;background-color:white;}.cke_skin_v2 .cke_dialog .ImagePreviewBox table td{white-space:normal;}.cke_skin_v2 .cke_browser_iequirks .cke_dialog_page_contents{_position:absolute;}.cke_skin_v2 .cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity=90);background-color:#e4e4e4;}.cke_skin_v2 .cke_dialog .FlashPreviewBox{white-space:normal;border:2px ridge black;overflow:auto;height:160px;width:390px;padding:2px;background-color:white;}.cke_skin_v2 .cke_di
alog .cke_pastetext{width:346px;height:170px;}.cke_skin_v2 .cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none;}.cke_skin_v2 .cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid black;}.cke_skin_v2 .cke_dialog .cke_dark_background{text-align:center;background-color:#eaead1;font-size:14px;}.cke_skin_v2 .cke_dialog .cke_light_background{text-align:center;background-color:#ffffbe;}.cke_skin_v2 .cke_dialog .cke_hand{cursor:pointer;}.cke_skin_v2 .cke_disabled{color:#a0a0a0;}.cke_skin_v2 .cke_hc .cke_dialog_title,.cke_skin_v2 .cke_hc .cke_dialog_tabs,.cke_skin_v2 .cke_hc .cke_dialog_contents,.cke_skin_v2 .cke_hc .cke_dialog_footer{border-left:1px solid;border-right:1px solid;}.cke_skin_v2 .cke_hc .cke_dialog_title{border-top:1px solid;}.cke_skin_v2 .cke_hc .cke_dialog_footer{border-bottom:1px solid;}.cke_skin_v2 .cke_hc .cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;t
op:3px;}.cke_skin_v2 .cke_dialog_body .cke_label{display:none;}.cke_skin_v2 .cke_dialog_body label.cke_required{font-weight:bold;}.cke_skin_v2 .cke_hc .cke_dialog_body .cke_label{display:inline;}.cke_skin_v2 .cke_hc a.cke_btn_locked,.cke_skin_v2 .cke_hc a.cke_btn_unlocked,.cke_skin_v2 .cke_hc a.cke_btn_reset{border-style:solid;float:left;width:auto;height:auto;}.cke_skin_v2 .cke_rtl.cke_hc a.cke_btn_locked,.cke_skin_v2 .cke_rtl.cke_hc a.cke_btn_unlocked,.cke_skin_v2 .cke_rtl.cke_hc a.cke_btn_reset{float:right;}.cke_skin_v2 a.cke_smile img{border:2px solid #eaead1;}.cke_skin_v2 a.cke_smile:focus img,.cke_skin_v2 a.cke_smile:active img,.cke_skin_v2 a.cke_smile:hover img{border-color:#C7C78F;}
diff --git a/share/static/RichText/skins/v2/editor.css b/share/static/RichText/skins/v2/editor.css
deleted file mode 100644
index 0d3c502..0000000
--- a/share/static/RichText/skins/v2/editor.css
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_v2 *,.cke_skin_v2 a:hover,.cke_skin_v2 a:link,.cke_skin_v2 a:visited,.cke_skin_v2 a:active{margin:0;padding:0;border:0;background:transparent;text-decoration:none;font:normal normal normal 100% Sans-Serif;width:auto;height:auto;border-collapse:collapse;text-align:left;vertical-align:baseline;white-space:nowrap;cursor:auto;color:#000;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_skin_v2 .cke_rtl *,.cke_skin_v2 .cke_rtl a:hover,.cke_skin_v2 .cke_rtl a:link,.cke_skin_v2 .cke_rtl a:visited,.cke_skin_v2 .cke_rtl a:active,.cke_rtl .cke_skin_v2 *,.cke_rtl .cke_skin_v2 a:hover,.cke_rtl .cke_skin_v2 a:link,.cke_rtl .cke_skin_v2 a:visited,.cke_rtl .cke_skin_v2 a:active{text-align:right;}.cke_skin_v2 iframe{vertical-align:inherit;}.cke_skin_v2 textarea{white-space:pre;}.cke_skin_v2 .cke_browser_gecko textarea{cursor:text;}.cke_skin_v2 .cke_browser_gecko textarea[disabled]{cursor:default;}.cke_skin_v2 input[type="text"],.cke_skin_v2 in
put[type="password"]{cursor:text;}.cke_skin_v2 input[type="text"][disabled],.cke_skin_v2 input[type="password"][disabled]{cursor:default;}.cke_skin_v2 fieldset{padding:10px;border:2px groove #E0DFE3;}.cke_skin_v2 .cke_editor{display:inline-table;width:100%;}.cke_skin_v2{display:block;}.cke_skin_v2 span.cke_browser_webkit,.cke_skin_v2 span.cke_browser_gecko18{display:block;}.cke_skin_v2 .cke_wrapper{display:block;}.cke_skin_v2 .cke_browser_opera .cke_editor{display:table;}.cke_skin_v2 .cke_top,.cke_skin_v2 .cke_bottom,.cke_shared .cke_skin_v2{background-color:#efefde;}.cke_skin_v2 .cke_top{border-top:solid 1px #fafaf5;border-left:solid 1px #fafaf5;border-right:solid 1px #696969;border-bottom:solid 2px #696969;}.cke_skin_v2 .cke_rtl .cke_top{border-left:solid 1px #696969;border-right:solid 1px #fafaf5;}.cke_skin_v2 .cke_bottom{border-left:solid 1px #696969;border-right:solid 1px #696969;border-bottom:solid 1px #696969;}.cke_skin_v2 .cke_contents{border:solid 1px #696969;backgr
ound-color:white;}.cke_skin_v2 .cke_focus{outline:auto 5px -webkit-focus-ring-color;}.cke_skin_v2 textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre;}.cke_skin_v2 .cke_browser_iequirks textarea.cke_source{_white-space:normal;}.cke_skin_v2 .cke_resizer{width:12px;height:12px;margin-top:16px;display:block;float:right;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -801px;background-repeat:no-repeat;cursor:se-resize;}.cke_skin_v2 .cke_rtl .cke_resizer{cursor:sw-resize;background-position:0 -828px;float:left;}.cke_skin_v2 .cke_resizer_horizontal,.cke_skin_v2 .cke_rtl .cke_resizer_horizontal{cursor:e-resize;}.cke_skin_v2 .cke_resizer_vertical,.cke_skin_v2 .cke_rtl .cke_resizer_vertical{cursor:n-resize;}.cke_skin_v2 .cke_maximized .cke_resizer{display:none;}.cke_skin_v2 .cke_browser_ie6 .cke_contents textarea,.cke_skin_v2 .cke_browser_ie7 .cke_contents textarea{p
osition:absolute;}.cke_skin_v2 .cke_voice_label{display:none;}.cke_skin_v2 legend.cke_voice_label{display:none;}.cke_skin_v2 .cke_browser_ie legend.cke_voice_label{position:absolute;display:block;width:0;height:0;overflow:hidden;}.cke_skin_v2 .cke_panel{border:1px solid #8f8f73;background-color:#fff;width:120px;height:100px;overflow:hidden;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}.cke_skin_v2 .cke_panel iframe{width:100%;height:100%;}.cke_skin_v2 .cke_panel_frame .cke_label{display:none;}html.cke_skin_v2_container{overflow:auto;overflow-x:hidden;}body.cke_panel_frame{overflow:auto;}ul.cke_panel_list{list-style-type:none;margin:3px;padding:0;white-space:nowrap;}li.cke_panel_listItem{margin:0;}.cke_panel_listItem a{padding:2px;display:block;border:1px solid #fff;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis;}* html .cke_panel_listItem a{width:100%;color:#000;}*:first-child+html .cke_panel_listItem a{color:#000;}.
cke_panel_listItem.cke_selected a{border:1px solid #ccc;background-color:#e9f5ff;}.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{border-color:#316ac5;background-color:#dff1ff;}
-.cke_hc .cke_panel_listItem.cke_selected a,.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border-width:3px;padding:0;}.cke_panel_grouptitle{font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;font-weight:bold;white-space:nowrap;background-color:#dcdcdc;color:#000;margin:0;padding:3px;}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:3px;margin-bottom:3px;}.cke_skin_v2 .cke_button_textcolor_panel,.cke_skin_v2 .cke_button_bgcolor_panel{width:150px;height:135px;}.cke_colorblock{padding:3px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif;}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000;}span.cke_colorbox{width:10px;height:10px;border:#808080 1px solid;float:left;}.cke_rtl span.cke_colorbox{floa
t:right;}a.cke_colorbox{border:#fff 1px solid;padding:2px;float:left;}.cke_rtl a.cke_colorbox{float:right;}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{border:#316ac5 1px solid;background-color:#dff1ff;}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:2px;display:block;cursor:pointer;}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{border:#316ac5 1px solid;background-color:#dff1ff;}@media print{.cke_skin_v2 .cke_toolbox{display:none;}}.cke_skin_v2 .cke_browser_webkit .cke_toolbox,.cke_skin_v2 .cke_browser_webkit .cke_toolbox>span{white-space:normal;}.cke_skin_v2 .cke_toolbox{clear:both;padding-bottom:1px;}.cke_skin_v2 a.cke_toolbox_collapser,.cke_skin_v2 a:hover.cke_toolbox_collapser{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:3px -739px;background-repeat:no-repeat;width:11px;height:11px;float:rig
ht;border:outset 1px;margin:11px 2px 2px;cursor:pointer;}.cke_skin_v2 a.cke_toolbox_collapser span{display:none;}.cke_skin_v2 .cke_hc a.cke_toolbox_collapser span{font-size:10px;font-weight:bold;font-family:Arial;display:inline;}.cke_skin_v2 .cke_rtl a.cke_toolbox_collapser,.cke_skin_v2 .cke_rtl a:hover.cke_toolbox_collapser{float:left;}.cke_skin_v2 a.cke_toolbox_collapser_min,.cke_skin_v2 a:hover.cke_toolbox_collapser_min{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:4px -760px;background-repeat:no-repeat;margin:2px;}.cke_skin_v2 .cke_rtl a.cke_toolbox_collapser_min,.cke_skin_v2 .cke_rtl a:hover.cke_toolbox_collapser_min{background-position:4px -781px;}.cke_skin_v2 .cke_toolbar{padding-top:1px;padding-bottom:1px;display:inline-block;float:left;}.cke_skin_v2 .cke_rtl .cke_toolbar{float:right;}.cke_skin_v2 .cke_toolgroup{display:inline-block;float:left;}.cke_skin_v2 .cke_browser_ie .cke_toolgroup{#float:none;#displa
y:inline;}.cke_skin_v2 .cke_rtl .cke_toolgroup{float:right;}.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolgroup{#float:none;}.cke_skin_v2 .cke_separator{display:inline-block;float:left;border-left:solid 1px #999;margin:4px 2px;height:16px;}.cke_skin_v2 .cke_browser_ie .cke_separator{#float:none;#display:inline;}.cke_skin_v2 .cke_rtl .cke_separator{float:right;}.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_separator{#float:none;}.cke_skin_v2 .cke_break{clear:left;}.cke_skin_v2 .cke_rtl .cke_break{clear:right;}.cke_skin_v2 .cke_toolbar_start{display:inline-block;background-image:url(images/toolbar_start.gif);background-repeat:no-repeat;margin:4px 2px 0 2px;width:3px;height:20px;float:left;}.cke_skin_v2 .cke_browser_ie .cke_toolbar_start{#float:none;#display:inline;}.cke_skin_v2 .cke_rtl .cke_toolbar_start{float:right;}.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_start{#float:none;}.cke_skin_v2 .cke_toolbar_end{display:inline-block;float:left;}.cke_skin_v2 .cke_browser_ie .
cke_toolbar_end{#float:none;#display:inline;}.cke_skin_v2 .cke_rtl .cke_toolbar_end{float:right;}.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_end{#float:none;}
-.cke_skin_v2 .cke_button a,.cke_skin_v2 .cke_button a:hover,.cke_skin_v2 .cke_button a:focus,.cke_skin_v2 .cke_button a:active,.cke_skin_v2 .cke_button a.cke_off{border:solid 1px #efefde;display:inline-block;border-radius:3px;outline:none;padding-top:2px;padding-left:4px;padding-right:4px;padding-bottom:2px;height:18px;cursor:default;}.cke_skin_v2 .cke_button a,.cke_skin_v2 .cke_button a.cke_off{background-color:#efefde;filter:alpha(opacity=70);opacity:.70;-moz-border-radius:3px;-webkit-border-radius:3px;}.cke_skin_v2 .cke_hc .cke_button a,.cke_skin_v2 .cke_hc .cke_button a.cke_off{opacity:1.0;filter:alpha(opacity=100);}.cke_skin_v2 .cke_button a.cke_on{border:solid 1px #316ac5;background-color:#a3d7ff;filter:alpha(opacity=100);opacity:1;}.cke_skin_v2 .cke_button a.cke_disabled *,.cke_skin_v2 .cke_browser_ie a:hover.cke_button .cke_disabled *{filter:alpha(opacity=30);opacity:.3;}.cke_skin_v2 .cke_hc .cke_button a.cke_disabled *,.cke_skin_v2 .cke_browser_ie.cke_hc a:hover.cke
_button .cke_disabled *{filter:alpha(opacity=60);opacity:.6;}.cke_skin_v2 .cke_button a:hover,.cke_skin_v2 .cke_button a:focus,.cke_skin_v2 .cke_button a:active{border:solid 1px #316ac5;background-color:#dff1ff;padding:2px 4px;}.cke_skin_v2 .cke_hc .cke_button a:hover,.cke_skin_v2 .cke_hc .cke_button a:focus,.cke_skin_v2 .cke_hc .cke_button a:active{padding:0 2px!important;border-width:3px;}.cke_skin_v2 .cke_button .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;display:inline-block;cursor:default;}.cke_skin_v2 .cke_rtl .cke_button .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_v2 .cke_button .cke_label{cursor:default;display:none;padding-left:3px;vertical-align:middle;}.cke_skin_v2 .cke_hc .cke_button .cke_label{padding:0;display:inline-block;}.cke_skin_v2 .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_v2 .cke_accessibility{position:absolute;display:block;width:0;height:0;
overflow:hidden;}.cke_skin_v2 .cke_button .cke_buttonarrow{display:inline-block;height:17px;width:8px;background-position:2px -717px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;cursor:default;}.cke_skin_v2 .cke_rtl .cke_button .cke_buttonarrow{background-position:0 -717px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);}.cke_skin_v2 .cke_browser_gecko18 .cke_toolbar,.cke_skin_v2 .cke_browser_gecko18 .cke_button a,.cke_skin_v2 .cke_browser_gecko18 .cke_button a.cke_off,.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_icon,.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_buttonarrow,.cke_skin_v2 .cke_browser_gecko18 .cke_separator,.cke_skin_v2 .cke_browser_gecko18 .cke_toolbar_start{display:block;float:left;}.cke_skin_v2 .cke_browser_gecko18 .cke_hc .cke_button .cke_icon{display:none;}.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_toolbar,.cke_skin_v2 .cke_browser
_gecko18 .cke_rtl .cke_button a,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button a.cke_off,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button .cke_icon,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button .cke_buttonarrow,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_separator,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_toolbar_start{float:right;}.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_label,.cke_skin_v2 .cke_browser_gecko18 .cke_break{float:left;}.cke_skin_v2 .cke_browser_gecko18 .cke_rtl span.cke_inline_label{float:right;}.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_button .cke_label,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_break{float:right;}.cke_skin_v2 .cke_browser_gecko18 .cke_separator{margin-top:4px;}.cke_skin_v2 .cke_browser_gecko18 .cke_button .cke_label{padding-top:3px;}.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolgroup,.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_separator,.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_s
tart,.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_toolbar_end{float:none;}.cke_skin_v2 .cke_browser_ie8 .cke_toolbar,.cke_skin_v2 .cke_browser_ie8 .cke_toolgroup{vertical-align:top;}
-.cke_skin_v2 .cke_browser_iequirks.cke_browser_ie8 .cke_toolbar,.cke_skin_v2 .cke_browser_iequirks.cke_browser_ie8 .cke_toolgroup{vertical-align:baseline;}.cke_skin_v2 .cke_browser_ie .cke_rcombo,.cke_skin_v2 .cke_browser_ie .cke_rcombo *{cursor:default;}.cke_skin_v2 .cke_contextmenu{padding:2px;}.cke_skin_v2 .cke_menuitem a{display:block;}.cke_skin_v2 .cke_menuitem span{cursor:default;}.cke_skin_v2 .cke_menuitem a:hover,.cke_skin_v2 .cke_menuitem a:focus,.cke_skin_v2 .cke_menuitem a:active{background-color:#8f8f73;display:block;}.cke_hc .cke_menuitem a:hover,.cke_hc .cke_menuitem a:focus,.cke_hc .cke_menuitem a:active{border:2px solid;}.cke_skin_v2 .cke_menuitem .cke_icon{background-image:url(icons.png);background-position:100px;background-repeat:no-repeat;background-color:transparent;width:16px;height:16px;float:left;}.cke_rtl .cke_skin_v2 .cke_menuitem .cke_icon{background-image:url(icons_rtl.png);}.cke_skin_v2 .cke_menuitem .cke_disabled .cke_icon{filter:alpha(opacity=70
);opacity:.70;}.cke_skin_v2 .cke_menuitem .cke_icon_wrapper{background-color:#e3e3c7;border:solid 4px #e3e3c7;width:16px;height:16px;float:left;filter:alpha(opacity=70);opacity:.70;clear:both;}.cke_rtl .cke_skin_v2 .cke_menuitem .cke_icon_wrapper{float:right;}.cke_skin_v2 .cke_menuitem a:hover .cke_icon_wrapper,.cke_skin_v2 .cke_menuitem a:focus .cke_icon_wrapper,.cke_skin_v2 .cke_menuitem a:active .cke_icon_wrapper{background-color:#9d9d9d;border:solid 4px #9d9d9d;filter:alpha(opacity=70);opacity:.70;}.cke_skin_v2 .cke_menuitem a:hover.cke_disabled .cke_icon_wrapper,.cke_skin_v2 .cke_menuitem a:focus.cke_disabled .cke_icon_wrapper,.cke_skin_v2 .cke_menuitem a:active.cke_disabled .cke_icon_wrapper{background-color:#e3e3c7;border:solid 4px #e3e3c7;}.cke_skin_v2 .cke_menuitem .cke_label{display:block;padding-right:3px;padding-top:5px;padding-left:4px;height:19px;margin-left:24px;background-color:#fff;}.cke_skin_v2 .cke_frameLoaded .cke_menuitem .cke_label{filter:alpha(opacity=
70);opacity:.70;}.cke_rtl .cke_skin_v2 .cke_menuitem .cke_label{padding-right:0;margin-left:0;padding-left:3px;margin-right:28px;}.cke_skin_v2 .cke_menuitem a.cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.30;}.cke_skin_v2 .cke_menuitem a:hover .cke_label,.cke_skin_v2 .cke_menuitem a:focus .cke_label,.cke_skin_v2 .cke_menuitem a:active .cke_label{background-color:#8f8f73;color:white;}.cke_skin_v2 .cke_menuitem a.cke_disabled:hover .cke_label,.cke_skin_v2 .cke_menuitem a.cke_disabled:focus .cke_label,.cke_skin_v2 .cke_menuitem a.cke_disabled:active .cke_label{background-color:transparent;color:black;}.cke_skin_v2 .cke_menuseparator{background-color:#e3e3c7;height:2px;filter:alpha(opacity=70);opacity:.70;_font-size:0;}.cke_skin_v2 .cke_menuarrow{background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-position:0 -784px;background-repeat:no-repeat;height:5px;width:3px;float:right;margin-right:2px;margin-top:3px;}.cke_rtl .cke_
skin_v2 .cke_menuarrow{float:left;margin-right:0;margin-left:2px;background-position:0 -763px;}.cke_skin_v2 .cke_menuarrow span{display:none;}.cke_hc .cke_skin_v2 .cke_menuarrow{width:auto;margin-top:0;}.cke_hc .cke_skin_v2 .cke_menuarrow span{display:inline;}.cke_browser_ie.cke_ltr .cke_skin_v2 .cke_menuarrow{position:absolute;right:2px;}.cke_browser_ie.cke_rtl .cke_skin_v2 .cke_menuarrow{position:absolute;left:2px;}.cke_skin_v2 .cke_rcombo{display:inline-block;margin-left:2px;margin-right:2px;margin-top:2px;vertical-align:top;float:left;}.cke_skin_v2 .cke_browser_ie .cke_rcombo{#float:none;#display:inline;}.cke_skin_v2 .cke_rtl .cke_rcombo{float:right;}.cke_skin_v2 .cke_browser_ie .cke_rcombo{#float:none;}.cke_skin_v2 .cke_rcombopanel{border:1px solid #316ac5;-moz-border-radius-topleft:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;}.cke_skin_v2 .cke_rcombo a{display:inline-block;float:left;filter:alpha(opacity=70);opacity:.70;}.cke_skin_v2 .cke_rtl .cke_rcomb
o a{float:right;}.cke_skin_v2 .cke_hc .cke_rcombo a{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_v2 .cke_rcombo .cke_label{display:inline-block;float:left;line-height:24px;height:22px;vertical-align:top;padding-left:4px;padding-right:5px;filter:alpha(opacity=70);opacity:.70;background-color:#f1f1e3;cursor:default;}
-.cke_skin_v2 .cke_rtl .cke_rcombo .cke_label{float:right;padding-right:4px;padding-left:5px;}.cke_skin_v2 .cke_hc .cke_rcombo .cke_label{filter:alpha(opacity=100);opacity:1.0;}.cke_skin_v2 .cke_rcombo .cke_inline_label{color:#fff;}.cke_skin_v2 .cke_rcombo .cke_text{border:1px solid #8f8f73;background-color:#fff;height:12px;width:60px;padding-top:4px;padding-bottom:4px;padding-left:5px;padding-right:5px;text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:top;cursor:default;}.cke_skin_v2 .cke_ltr .cke_rcombo .cke_text{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;}.cke_skin_v2 .cke_rtl .cke_rcombo .cke_text{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;}.c
ke_skin_v2 .cke_browser_iequirks .cke_rcombo .cke_text{height:22px;}.cke_skin_v2 .cke_rcombo .cke_openbutton{display:inline-block;background-position:5px -715px;background-image:url(images/sprites.png);_background-image:url(images/sprites_ie6.png);background-repeat:no-repeat;border-top:1px solid #8f8f73;border-bottom:1px solid #8f8f73;width:14px;height:20px;}.cke_skin_v2 .cke_rcombo .cke_openbutton span{display:none;}.cke_skin_v2 .cke_hc .cke_rcombo .cke_openbutton span{display:inline;}.cke_skin_v2 .cke_ltr .cke_rcombo .cke_openbutton{border-right:1px solid #8f8f73;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;}.cke_skin_v2 .cke_rtl .cke_rcombo .cke_openbutton{border-left:1px solid #8f8f73;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-
border-bottom-left-radius:3px;border-bottom-left-radius:3px;}.cke_skin_v2 .cke_rcombo .cke_off a:hover,.cke_skin_v2 .cke_rcombo .cke_off a:focus,.cke_skin_v2 .cke_rcombo .cke_off a:active,.cke_skin_v2 .cke_rcombo .cke_on a{filter:alpha(opacity=100);opacity:1;}.cke_skin_v2 .cke_rcombo .cke_off a:hover .cke_text,.cke_skin_v2 .cke_rcombo .cke_off a:focus .cke_text,.cke_skin_v2 .cke_rcombo .cke_off a:active .cke_text,.cke_skin_v2 .cke_rcombo .cke_on .cke_text{border-color:#316ac5;}.cke_skin_v2 .cke_rcombo .cke_off a:hover .cke_openbutton,.cke_skin_v2 .cke_rcombo .cke_off a:focus .cke_openbutton,.cke_skin_v2 .cke_rcombo .cke_off a:active .cke_openbutton,.cke_skin_v2 .cke_rcombo .cke_on .cke_openbutton{border-color:#316ac5;background-color:#dff1ff;}.cke_skin_v2 .cke_rcombo .cke_on .cke_text{-moz-border-radius-bottomleft:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;}.cke_skin_v2 .cke_rcombo .cke_on .cke_openbutton{-moz-border-radius-bottomright:0;-webkit-border
-bottom-right-radius:0;border-bottom-right-radius:0;}.cke_skin_v2 .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=30);opacity:.3;}.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_label{filter:alpha(opacity=70);opacity:.7;}.cke_skin_v2 .cke_rcombo .cke_disabled .cke_text,.cke_skin_v2 .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=50);opacity:.5;}.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_text,.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_openbutton{filter:alpha(opacity=80);opacity:.8;}.cke_skin_v2 .cke_rcombo .cke_disabled .cke_text{color:#fff;}.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo,.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo .cke_label,.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo .cke_text,.cke_skin_v2 .cke_browser_gecko18 .cke_rcombo .cke_openbutton,.cke_skin_v2 .cke_browser_webkit .cke_rcombo .cke_label,.cke_skin_v2 .cke_browser_webkit .cke_rcombo .cke_text,.cke_skin_v2 .cke_browser_webkit .cke_rcombo .cke_openbutton{di
splay:block;float:left;}.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_label,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_text,.cke_skin_v2 .cke_browser_gecko18 .cke_rtl .cke_rcombo .cke_openbutton,.cke_skin_v2 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_label,.cke_skin_v2 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_text,.cke_skin_v2 .cke_browser_webkit .cke_rtl .cke_rcombo .cke_openbutton{float:right;}
-.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_rcombo,.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_rcombo a,.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_rcombo .cke_label{float:none;}.cke_skin_v2 .cke_browser_iequirks .cke_rcombo .cke_openbutton{height:22px;}.cke_skin_v2 .cke_rtl .cke_rcombo .cke_font .cke_text,.cke_skin_v2 .cke_rtl .cke_rcombo .cke_fontSize .cke_text{direction:ltr;}@media print{.cke_path{display:none;}}.cke_skin_v2 .cke_path{padding:3px 3px 0 3px;display:inline-block;float:left;}.cke_skin_v2 .cke_rtl .cke_path{float:right;}.cke_skin_v2 .cke_path a,.cke_skin_v2 .cke_path .cke_empty{display:inline-block;float:left;border:solid 1px #efefde;background-color:#efefde;padding-top:1px;padding-bottom:1px;padding-left:4px;padding-right:4px;margin-bottom:3px;cursor:default;}.cke_skin_v2 .cke_path .cke_empty{visibility:hidden;}.cke_skin_v2 .cke_rtl .cke_path a,.cke_skin_v2 .cke_rtl .cke_path cke_empty{float:right;}.cke_skin_v2 .cke_path a:hover,.cke_skin_v2 .cke_path a:focus,.
cke_skin_v2 .cke_path a:active{border:solid 1px #316ac5;background-color:#dff1ff;padding-top:1px;padding-bottom:1px;padding-left:4px;padding-right:4px;outline:none;}.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_path a,.cke_skin_v2 .cke_browser_ie .cke_rtl .cke_path .cke_empty{float:none;}.cke_skin_v2 .cke_path .cke_label{display:none;}.cke_skin_v2 .cke_button_source .cke_icon{background-position:0 0;}.cke_skin_v2 .cke_button_newpage .cke_icon{background-position:0 -48px;}.cke_skin_v2 .cke_button_preview .cke_icon{background-position:0 -64px;}.cke_skin_v2 .cke_button_cut .cke_icon{background-position:0 -96px;}.cke_skin_v2 .cke_button_copy .cke_icon{background-position:0 -112px;}.cke_skin_v2 .cke_button_paste .cke_icon{background-position:0 -128px;}.cke_skin_v2 .cke_button_pastetext .cke_icon{background-position:0 -144px;}.cke_skin_v2 .cke_button_find .cke_icon{background-position:0 -240px;}.cke_skin_v2 .cke_button_replace .cke_icon{background-position:0 -256px;}.cke_skin_v2 .cke
_button_selectAll .cke_icon{background-position:0 -272px;}.cke_skin_v2 .cke_button_removeFormat .cke_icon{background-position:0 -288px;}.cke_skin_v2 .cke_button_bold .cke_icon{background-position:0 -304px;}.cke_skin_v2 .cke_button_italic .cke_icon{background-position:0 -320px;}.cke_skin_v2 .cke_button_underline .cke_icon{background-position:0 -336px;}.cke_skin_v2 .cke_button_strike .cke_icon{background-position:0 -352px;}.cke_skin_v2 .cke_button_subscript .cke_icon{background-position:0 -368px;}.cke_skin_v2 .cke_button_superscript .cke_icon{background-position:0 -384px;}.cke_skin_v2 .cke_button_table .cke_icon{background-position:0 -608px;}.cke_skin_v2 .cke_button_horizontalrule .cke_icon{background-position:0 -624px;}.cke_skin_v2 .cke_button_smiley .cke_icon{background-position:0 -640px;}.cke_skin_v2 .cke_button_link .cke_icon{background-position:0 -528px;}.cke_skin_v2 .cke_button_unlink .cke_icon{background-position:0 -544px;}.cke_skin_v2 .cke_button_anchor .cke_icon{backg
round-position:0 -560px;}.cke_skin_v2 .cke_button_image .cke_icon{background-position:0 -576px;}.cke_skin_v2 .cke_button_flash .cke_icon{background-position:0 -592px;}.cke_skin_v2 .cke_button_specialchar .cke_icon{background-position:0 -656px;}.cke_skin_v2 .cke_button_pagebreak .cke_icon{background-position:0 -672px;}.cke_skin_v2 .cke_button_print .cke_icon{background-position:0 -176px;}.cke_skin_v2 .cke_button_checkspell .cke_icon,.cke_skin_v2 .cke_button_scayt .cke_icon{background-position:0 -192px;}.cke_skin_v2 .cke_button_pagebreak .cke_icon{background-position:0 -672px;}.cke_skin_v2 .cke_button_textcolor .cke_icon{background-position:0 -704px;}.cke_skin_v2 .cke_button_bgcolor .cke_icon{background-position:0 -720px;}.cke_skin_v2 .cke_button_form .cke_icon{background-position:0 -752px;}.cke_skin_v2 .cke_button_checkbox .cke_icon{background-position:0 -768px;}.cke_skin_v2 .cke_button_radio .cke_icon{background-position:0 -784px;}.cke_skin_v2 .cke_button_textfield .cke_icon
{background-position:0 -800px;}.cke_skin_v2 .cke_button_textarea .cke_icon{background-position:0 -816px;}.cke_skin_v2 .cke_button_showblocks .cke_icon{background-position:0 -1136px;}
-.cke_skin_v2 .cke_button_select .cke_icon{background-position:0 -832px;}.cke_skin_v2 .cke_button_button .cke_icon{background-position:0 -848px;}.cke_skin_v2 .cke_button_imagebutton .cke_icon{background-position:0 -864px;}.cke_skin_v2 .cke_button_hiddenfield .cke_icon{background-position:0 -880px;}.cke_skin_v2 .cke_button_undo .cke_icon{background-position:0 -208px;}.cke_skin_v2 .cke_rtl .cke_button_undo .cke_icon{background-position:0 -224px;}.cke_skin_v2 .cke_button_redo .cke_icon{background-position:0 -224px;}.cke_skin_v2 .cke_rtl .cke_button_redo .cke_icon{background-position:0 -208px;}.cke_skin_v2 .cke_button_templates .cke_icon{background-position:0 -80px;}.cke_skin_v2 .cke_button_numberedlist .cke_icon{background-position:0 -400px;}.cke_skin_v2 .cke_button_bulletedlist .cke_icon{background-position:0 -416px;}.cke_skin_v2 .cke_mixed_dir_content .cke_button_numberedlist .cke_icon{background-position:0 -1217px;}.cke_skin_v2 .cke_mixed_dir_content .cke_button_bulletedlist
.cke_icon{background-position:0 -1233px;}.cke_skin_v2 .cke_button_outdent .cke_icon{background-position:0 -432px;}.cke_skin_v2 .cke_button_indent .cke_icon{background-position:0 -448px;}.cke_skin_v2 .cke_mixed_dir_content .cke_button_indent .cke_icon{background-position:0 -1265px;}.cke_skin_v2 .cke_mixed_dir_content .cke_button_outdent .cke_icon{background-position:0 -1249px;}.cke_skin_v2 .cke_button_justifyleft .cke_icon{background-position:0 -464px;}.cke_skin_v2 .cke_button_justifycenter .cke_icon{background-position:0 -480px;}.cke_skin_v2 .cke_button_justifyright .cke_icon{background-position:0 -496px;}.cke_skin_v2 .cke_button_justifyblock .cke_icon{background-position:0 -512px;}.cke_skin_v2 .cke_button_blockquote .cke_icon{background-position:0 -1152px;}.cke_skin_v2 .cke_button_flash .cke_icon{background-position:0 -592px;}.cke_skin_v2 .cke_button_pastefromword .cke_icon{background-position:0 -160px;}.cke_skin_v2 .cke_button_save .cke_icon{background-position:0 -32px;}.c
ke_skin_v2 .cke_button_about .cke_icon{background-position:0 -736px;}.cke_skin_v2 .cke_button_maximize .cke_icon{background-position:0 -1040px;}.cke_skin_v2 .cke_button_creatediv .cke_icon{background-position:0 -1168px;}.cke_skin_v2 .cke_button_editdiv .cke_icon{background-position:0 -1184px;}.cke_skin_v2 .cke_button_removediv .cke_icon{background-position:0 -1200px;}.cke_skin_v2 .cke_button_bidirtl .cke_icon{background-position:0 -1072px;}.cke_skin_v2 .cke_button_bidiltr .cke_icon{background-position:0 -1056px;}.cke_skin_v2 .cke_button_source .cke_label{display:inline;display:inline-block;}.cke_skin_v2 .cke_styles_panel{width:150px;height:170px;}.cke_skin_v2 .cke_format_panel{width:150px;height:170px;}.cke_skin_v2 .cke_font_panel{width:150px;height:170px;}.cke_skin_v2 .cke_fontSize_panel{height:170px;}.cke_skin_v2 .cke_fontSize .cke_text{width:20px;}.cke_skin_v2 .cke_browser_iequirks .cke_fontSize .cke_text{width:32px;}html .cke_skin_v2{visibility:inherit;}html.cke_skin_v2_
container{visibility:visible;}
diff --git a/share/static/RichText/skins/v2/icons.png b/share/static/RichText/skins/v2/icons.png
deleted file mode 100644
index a9846c0..0000000
Binary files a/share/static/RichText/skins/v2/icons.png and /dev/null differ
diff --git a/share/static/RichText/skins/v2/icons_rtl.png b/share/static/RichText/skins/v2/icons_rtl.png
deleted file mode 100644
index 0b242b1..0000000
Binary files a/share/static/RichText/skins/v2/icons_rtl.png and /dev/null differ
diff --git a/share/static/RichText/skins/v2/images/mini.gif b/share/static/RichText/skins/v2/images/mini.gif
deleted file mode 100644
index 54d9107..0000000
Binary files a/share/static/RichText/skins/v2/images/mini.gif and /dev/null differ
diff --git a/share/static/RichText/skins/v2/images/noimage.png b/share/static/RichText/skins/v2/images/noimage.png
deleted file mode 100644
index 1598113..0000000
Binary files a/share/static/RichText/skins/v2/images/noimage.png and /dev/null differ
diff --git a/share/static/RichText/skins/v2/images/sprites.png b/share/static/RichText/skins/v2/images/sprites.png
deleted file mode 100644
index 982717b..0000000
Binary files a/share/static/RichText/skins/v2/images/sprites.png and /dev/null differ
diff --git a/share/static/RichText/skins/v2/images/sprites_ie6.png b/share/static/RichText/skins/v2/images/sprites_ie6.png
deleted file mode 100644
index 4389b65..0000000
Binary files a/share/static/RichText/skins/v2/images/sprites_ie6.png and /dev/null differ
diff --git a/share/static/RichText/skins/v2/skin.js b/share/static/RichText/skins/v2/skin.js
deleted file mode 100644
index dbc56d5..0000000
--- a/share/static/RichText/skins/v2/skin.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.skins.add('v2',(function(){var a=[];if(CKEDITOR.env.ie&&CKEDITOR.env.version<7)a.push('icons.png','images/sprites_ie6.png','images/dialog_sides.gif');return{preload:a,editor:{css:['editor.css']},dialog:{css:['dialog.css']},templates:{css:['templates.css']},margins:[0,14,18,14]};})());(function(){CKEDITOR.dialog?a():CKEDITOR.on('dialogPluginReady',a);function a(){CKEDITOR.dialog.on('resize',function(b){var c=b.data,d=c.width,e=c.height,f=c.dialog,g=f.parts.contents;if(c.skin!='v2')return;g.setStyles({width:d+'px',height:e+'px'});if(!CKEDITOR.env.ie)return;setTimeout(function(){var h=f.parts.dialog.getChild([0,0,0]),i=h.getChild(0),j=h.getChild(2);j.setStyle('width',i.$.offsetWidth+'px');j=h.getChild(7);j.setStyle('width',i.$.offsetWidth-28+'px');j=h.getChild(4);j.setStyle('height',i.$.offsetHeight-31-14+'px');j=h.getChild(5);j.setStyle('height',i.$.offsetHeight-31-14+'px');},100);});};})();
diff --git a/share/static/RichText/skins/v2/templates.css b/share/static/RichText/skins/v2/templates.css
deleted file mode 100644
index c3abe54..0000000
--- a/share/static/RichText/skins/v2/templates.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-.cke_skin_v2 .cke_tpl_list{border:#dcdcdc 2px solid;background-color:#fff;overflow:auto;width:100%;height:220px;}.cke_skin_v2 .cke_tpl_item{margin:5px;padding:7px;border:#eee 1px solid;*width:88%;}.cke_skin_v2 .cke_tpl_preview{border-collapse:separate;text-indent:0;width:100%;}.cke_skin_v2 .cke_tpl_preview td{padding:2px;vertical-align:middle;}.cke_skin_v2 .cke_tpl_preview .cke_tpl_preview_img{width:100px;}.cke_skin_v2 .cke_tpl_preview span{white-space:normal;}.cke_skin_v2 .cke_tpl_title{font-weight:bold;}.cke_skin_v2 .cke_tpl_list a:active .cke_tpl_item,.cke_skin_v2 .cke_tpl_list a:hover .cke_tpl_item,.cke_skin_v2 .cke_tpl_list a:focus .cke_tpl_item{border:#f93 1px solid!important;background-color:#fffacd!important;}.cke_skin_v2 .cke_tpl_list a:active *,.cke_skin_v2 .cke_tpl_list a:hover *,.cke_skin_v2 .cke_tpl_list a:focus *{cursor:pointer;}.cke_skin_v2 .cke_browser_ie6 .cke_tpl_list a:active,.cke_skin_v2 .cke_browser_ie6 .cke_tpl_list a:hover,.cke_skin_v2 .cke_browser_ie6
.cke_tpl_list a:focus{background-position:0 0;}.cke_skin_v2 .cke_tpl_list a:active .cke_tpl_item,.cke_skin_v2 .cke_tpl_list a:hover .cke_tpl_item,.cke_skin_v2 .cke_tpl_list a:focus .cke_tpl_item{border-width:3px;}.cke_skin_v2 .cke_tpl_empty,.cke_tpl_loading{text-align:center;padding:5px;}
diff --git a/share/static/RichText/styles.js b/share/static/RichText/styles.js
new file mode 100644
index 0000000..e4feb3e
--- /dev/null
+++ b/share/static/RichText/styles.js
@@ -0,0 +1,112 @@
+/**
+ * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.html or http://ckeditor.com/license
+ */
+
+// This file contains style definitions that can be used by CKEditor plugins.
+//
+// The most common use for it is the "stylescombo" plugin, which shows a combo
+// in the editor toolbar, containing all styles. Other plugins instead, like
+// the div plugin, use a subset of the styles on their feature.
+//
+// If you don't have plugins that depend on this file, you can simply ignore it.
+// Otherwise it is strongly recommended to customize this file to match your
+// website requirements and design properly.
+
+CKEDITOR.stylesSet.add( 'default', [
+ /* Block Styles */
+
+ // These styles are already available in the "Format" combo ("format" plugin),
+ // so they are not needed here by default. You may enable them to avoid
+ // placing the "Format" combo in the toolbar, maintaining the same features.
+ /*
+ { name: 'Paragraph', element: 'p' },
+ { name: 'Heading 1', element: 'h1' },
+ { name: 'Heading 2', element: 'h2' },
+ { name: 'Heading 3', element: 'h3' },
+ { name: 'Heading 4', element: 'h4' },
+ { name: 'Heading 5', element: 'h5' },
+ { name: 'Heading 6', element: 'h6' },
+ { name: 'Preformatted Text',element: 'pre' },
+ { name: 'Address', element: 'address' },
+ */
+
+ { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
+ { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
+ {
+ name: 'Special Container',
+ element: 'div',
+ styles: {
+ padding: '5px 10px',
+ background: '#eee',
+ border: '1px solid #ccc'
+ }
+ },
+
+ /* Inline Styles */
+
+ // These are core styles available as toolbar buttons. You may opt enabling
+ // some of them in the Styles combo, removing them from the toolbar.
+ // (This requires the "stylescombo" plugin)
+ /*
+ { name: 'Strong', element: 'strong', overrides: 'b' },
+ { name: 'Emphasis', element: 'em' , overrides: 'i' },
+ { name: 'Underline', element: 'u' },
+ { name: 'Strikethrough', element: 'strike' },
+ { name: 'Subscript', element: 'sub' },
+ { name: 'Superscript', element: 'sup' },
+ */
+
+ { name: 'Marker: Yellow', element: 'span', styles: { 'background-color': 'Yellow' } },
+ { name: 'Marker: Green', element: 'span', styles: { 'background-color': 'Lime' } },
+
+ { name: 'Big', element: 'big' },
+ { name: 'Small', element: 'small' },
+ { name: 'Typewriter', element: 'tt' },
+
+ { name: 'Computer Code', element: 'code' },
+ { name: 'Keyboard Phrase', element: 'kbd' },
+ { name: 'Sample Text', element: 'samp' },
+ { name: 'Variable', element: 'var' },
+
+ { name: 'Deleted Text', element: 'del' },
+ { name: 'Inserted Text', element: 'ins' },
+
+ { name: 'Cited Work', element: 'cite' },
+ { name: 'Inline Quotation', element: 'q' },
+
+ { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
+ { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
+
+ /* Object Styles */
+
+ {
+ name: 'Styled image (left)',
+ element: 'img',
+ attributes: { 'class': 'left' }
+ },
+
+ {
+ name: 'Styled image (right)',
+ element: 'img',
+ attributes: { 'class': 'right' }
+ },
+
+ {
+ name: 'Compact table',
+ element: 'table',
+ attributes: {
+ cellpadding: '5',
+ cellspacing: '0',
+ border: '1',
+ bordercolor: '#ccc'
+ },
+ styles: {
+ 'border-collapse': 'collapse'
+ }
+ },
+
+ { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
+ { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }
+]);
+
diff --git a/share/static/RichText/themes/default/theme.js b/share/static/RichText/themes/default/theme.js
deleted file mode 100644
index 483001b..0000000
--- a/share/static/RichText/themes/default/theme.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-CKEDITOR.themes.add('default',(function(){function a(b,c){var d,e;e=b.config.sharedSpaces;e=e&&e[c];e=e&&CKEDITOR.document.getById(e);if(e){var f='<span class="cke_shared"><span class="'+b.skinClass+' cke_editor_'+b.name+'">'+'<span class="'+CKEDITOR.env.cssClass+'">'+'<span class="cke_wrapper cke_'+b.lang.dir+'">'+'<span class="cke_editor">'+'<div class="cke_'+c+'">'+'</div></span></span></span></span></span>',g=e.append(CKEDITOR.dom.element.createFromHtml(f,e.getDocument()));if(e.getCustomData('cke_hasshared'))g.hide();else e.setCustomData('cke_hasshared',1);d=g.getChild([0,0,0,0]);b.on('focus',function(){for(var h=0,i,j=e.getChildren();i=j.getItem(h);h++){if(i.type==CKEDITOR.NODE_ELEMENT&&!i.equals(g)&&i.hasClass('cke_shared'))i.hide();}g.show();});b.on('destroy',function(){g.remove();});}return d;};return{build:function(b,c){var d=b.name,e=b.element,f=b.elementMode;if(!e||f==CKEDITOR.ELEMENT_MODE_NONE)return;if(f==CKEDITOR.ELEMENT_MODE_REPLACE)e.hide();var g=b.fire('them
eSpace',{space:'top',html:''}).html,h=b.fire('themeSpace',{space:'contents',html:''}).html,i=b.fireOnce('themeSpace',{space:'bottom',html:''}).html,j=h&&b.config.height,k=b.config.tabIndex||b.element.getAttribute('tabindex')||0;if(!h)j='auto';else if(!isNaN(j))j+='px';var l='',m=b.config.width;if(m){if(!isNaN(m))m+='px';l+='width: '+m+';';}var n=g&&a(b,'top'),o=a(b,'bottom');n&&(n.setHtml(g),g='');o&&(o.setHtml(i),i='');var p=CKEDITOR.dom.element.createFromHtml(['<span id="cke_',d,'" onmousedown="return false;" class="',b.skinClass,' cke_editor_',d,'" dir="',b.lang.dir,'" title="',CKEDITOR.env.gecko?' ':'','" lang="',b.langCode,'"'+(CKEDITOR.env.webkit?' tabindex="'+k+'"':'')+' role="application"'+' aria-labelledby="cke_',d,'_arialbl"'+(l?' style="'+l+'"':'')+'>'+'<span id="cke_',d,'_arialbl" class="cke_voice_label">'+b.lang.editor+'</span>'+'<span class="',CKEDITOR.env.cssClass,'" role="presentation"><span class="cke_wrapper cke_',b.lang.dir,'" role="presentation"><table cl
ass="cke_editor" border="0" cellspacing="0" cellpadding="0" role="presentation"><tbody><tr',g?'':' style="display:none"',' role="presentation"><td id="cke_top_',d,'" class="cke_top" role="presentation">',g,'</td></tr><tr',h?'':' style="display:none"',' role="presentation"><td id="cke_contents_',d,'" class="cke_contents" style="height:',j,'" role="presentation">',h,'</td></tr><tr',i?'':' style="display:none"',' role="presentation"><td id="cke_bottom_',d,'" class="cke_bottom" role="presentation">',i,'</td></tr></tbody></table><style>.',b.skinClass,'{visibility:hidden;}</style></span></span></span>'].join(''));
-p.getChild([1,0,0,0,0]).unselectable();p.getChild([1,0,0,0,2]).unselectable();if(f==CKEDITOR.ELEMENT_MODE_REPLACE)p.insertAfter(e);else e.append(p);b.container=p;p.disableContextMenu();b.fireOnce('themeLoaded');b.fireOnce('uiReady');},buildDialog:function(b){var c=CKEDITOR.tools.getNextNumber(),d=CKEDITOR.dom.element.createFromHtml(['<div class="cke_editor_'+b.name.replace('.','\\.')+'_dialog cke_skin_',b.skinName,'" dir="',b.lang.dir,'" lang="',b.langCode,'" role="dialog" aria-labelledby="%title#"><table class="cke_dialog',' '+CKEDITOR.env.cssClass,' cke_',b.lang.dir,'" style="position:absolute" role="presentation"><tr><td role="presentation"><div class="%body" role="presentation"><div id="%title#" class="%title" role="presentation"></div><a id="%close_button#" class="%close_button" href="javascript:void(0)" title="'+b.lang.common.close+'" role="button"><span class="cke_label">X</span></a>'+'<div id="%tabs#" class="%tabs" role="tablist"></div>'+'<table class="%contents" rol
e="presentation"><tr>'+'<td id="%contents#" class="%contents" role="presentation"></td>'+'</tr></table>'+'<div id="%footer#" class="%footer" role="presentation"></div>'+'</div>'+'<div id="%tl#" class="%tl"></div>'+'<div id="%tc#" class="%tc"></div>'+'<div id="%tr#" class="%tr"></div>'+'<div id="%ml#" class="%ml"></div>'+'<div id="%mr#" class="%mr"></div>'+'<div id="%bl#" class="%bl"></div>'+'<div id="%bc#" class="%bc"></div>'+'<div id="%br#" class="%br"></div>'+'</td></tr>'+'</table>',CKEDITOR.env.ie?'':'<style>.cke_dialog{visibility:hidden;}</style>','</div>'].join('').replace(/#/g,'_'+c).replace(/%/g,'cke_dialog_')),e=d.getChild([0,0,0,0,0]),f=e.getChild(0),g=e.getChild(1);f.unselectable();g.unselectable();return{element:d,parts:{dialog:d.getChild(0),title:f,close:g,tabs:e.getChild(2),contents:e.getChild([3,0,0,0]),footer:e.getChild(4)}};},destroy:function(b){var c=b.container;c.clearCustomData();b.element.clearCustomData();if(c)c.remove();if(b.elementMode==CKEDITOR.ELEMEN
T_MODE_REPLACE)b.element.show();delete b.element;}};})());CKEDITOR.editor.prototype.getThemeSpace=function(a){var b='cke_'+a,c=this._[b]||(this._[b]=CKEDITOR.document.getById(b+'_'+this.name));return c;};CKEDITOR.editor.prototype.resize=function(a,b,c,d){var e=this.container,f=CKEDITOR.document.getById('cke_contents_'+this.name),g=d?e.getChild(1):e;CKEDITOR.env.webkit&&g.setStyle('display','none');g.setSize('width',a,true);if(CKEDITOR.env.webkit){g.$.offsetWidth;g.setStyle('display','');}var h=c?0:(g.$.offsetHeight||0)-(f.$.clientHeight||0);
-f.setStyle('height',Math.max(b-h,0)+'px');this.fire('resize');};CKEDITOR.editor.prototype.getResizable=function(){return this.container.getChild(1);};
commit 02bb63619b4d84221166bab70a0eac753eac8b21
Author: sunnavy <sunnavy at bestpractical.com>
Date: Tue Feb 12 08:19:37 2013 +0800
restore our customization for ckeditor
diff --git a/share/static/RichText/config.js b/share/static/RichText/config.js
index a6faf18..1969e6e 100644
--- a/share/static/RichText/config.js
+++ b/share/static/RichText/config.js
@@ -7,4 +7,40 @@ CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'fr';
// config.uiColor = '#AADC6E';
+ config.toolbar = 'Full';
+
+config.toolbar_Full =
+[
+ ['Cut','Copy','Paste','PasteText','PasteFromWord'],
+ ['Undo','Redo','-','-','SelectAll','RemoveFormat'],
+ ['Table','HorizontalRule','SpecialChar'],
+ '/',
+ ['Bold','Italic','Underline','Strike'],
+ ['NumberedList','BulletedList','-','Outdent','Indent'],
+ ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
+ '/',
+ ['Format','Font','FontSize'],
+ ['TextColor'],
+ ['Link']
+];
+
+config.enterMode = CKEDITOR.ENTER_BR;
+config.shiftEnterMode = CKEDITOR.ENTER_P;
+config.enableTabKeyTools = true;
+config.htmlEncodeOutput = false;
+
+config.disableNativeSpellChecker = false;
+config.browserContextMenuOnCtrl = true;
+
+
+config.toolbarStartupExpanded = false;
+config.font_names =
+ 'Arial/Arial, Helvetica, sans-serif;' +
+ 'Courier New/Courier New, Courier, monospace;' +
+ 'Georgia/Georgia, serif;' +
+ 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +
+ 'Tahoma/Tahoma, Geneva, sans-serif;' +
+ 'Times New Roman/Times New Roman, Times, serif;' +
+ 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +
+ 'Verdana/Verdana, Geneva, sans-serif';
};
diff --git a/share/static/RichText/contents.css b/share/static/RichText/contents.css
index a5e5fd4..9ccb993 100644
--- a/share/static/RichText/contents.css
+++ b/share/static/RichText/contents.css
@@ -13,7 +13,7 @@ body
color: #333;
/* Remove the background color to make it transparent */
- background-color: #fff;
+ background-color: transparent;
margin: 20px;
}
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list